• 検索結果がありません。

PV 2

N/A
N/A
Protected

Academic year: 2021

シェア "PV 2"

Copied!
41
0
0

読み込み中.... (全文を見る)

全文

(1)

今更聞けない

ビデオコーデックの話

野生の男

(2)

講演のテーマ

ゲーム開発における動画作成需要の高まり PV、ゲーム内ムービーの作成 動画サイトへのアップロード 高画質な物を作成する工程を調べるのは大変 一つにまとめよう 2

(3)

動画とは

文字通り「動く」「画」 フレームごとに画が切り替わっていく デジタル動画は静止画の集まり gifアニメは複数の画像ファイルから作られる 3

(4)

ここで疑問

「gifは普通の画像ファイルより容量が大きいけど flvとかmp4はそんなに大きくないよ?」

!コーデックのおかげ

(5)

エンコーダー(符号化器)とデコーダー(復号化器) から成る圧縮規格 画像コーデック、音声コーデック、動画← コーデック(CODEC)は圧縮(COmp~)と 伸張(DEComp~)を組み合わせた専門用語

コーデックとは

5

(6)

.gifより軽い.mp4?

基本的に.mp4の動画は同じ画質、 解像度のgif動画よりもファイルサイズが小さい !gifよりも複雑な処理で圧縮しているから 昔はMotion JPEGという各フレームをJPEGで 保存する動画形式もあった 6

(7)

.mp4(MPEG-4)とは

それ自体はただのファイルコンテナ

Moving Picture Experts Group(MPEG) が規定しているファイル格納フォーマット

動画ファイルも音声ファイルも格納できる

(8)

一般的な

.mp4動画の中身は

動画コーデック:H.264  (MPEG4-‐‑‒AVC) AVC  =  Advanced  Video  Coding

先進的  動画  符号化 ⾳音声コーデック:AAC  

AAC  =  Advanced  Audio  Coding 先進的  ⾳音響  符号化

(9)

H.264がやってること

空間変換 フレーム間予測 4分の1画素精度の動き補償 イントラ予測 エントロピー符号化 9

(10)

ヤバい

(11)

動画圧縮のトレードオフ

積み重なった偉い人達の研究の成果のおかげで、 画質とファイルサイズのトレードオフはほぼ無い 圧縮率と速度でトレードオフが起きる

(12)

コーデックの使い分け

用途 圧縮速度 圧縮率 画質 キャプチャ 動画編集 インターネット インゲーム 最速 二の次 非劣化 速い方が良い それなり ほぼ非劣化 遅くても良い 高い方が良い なるべく 遅くても良い 高い方が良い 高い方が良い 12

(13)

1弾:キャプチャ

30∼60fpsで動くゲームの映像を漏らさず リアルタイムでコピーして圧縮する 速度が足りないとフレームドロップが起き、 撮った映像が実際よりカクカクになる 更に速度が足りないとゲーム自体も遅くなる 後々の圧縮で画質が下がるので、 この段階では画質も劣化させたくない 13

(14)

速度と画質が両方必要

じゃあ圧縮せずに撮ろう

(15)

は?

(16)

×まちがい

無圧縮は非常に容量が増える 1画素RGB24bit(3バイト) 毎フレーム律儀にキャプチャ 640x480x3バイト×60fps=53MB/s これだけ大きいとHDDへの書き込みも余計な負荷に そもそも容量が足りない 16

(17)

可逆圧縮コーデックを使う

可逆圧縮とは? 「圧縮」しても「逆」に戻すことが「可」能 エンコード前とデコード後の内容が一致 劣化する物は非可逆圧縮 ほぼ無圧縮の1/2未満のサイズに 17

(18)

コラム:可逆圧縮コーデックの例

Huffyuv 古くからある可逆圧縮コーデック 名前通り”Huff”man符号とYUV色空間への変換 などによって可逆圧縮を行う 有名だが、マルチコア・SIMD最適化ビルドが無いため 現在利用するのは非推奨 対応した派生ビルドもあるが、通常版と互換性が無いため 受け渡しに使う場合は非推奨 もしくはどうせフリーソフトなので両方のPCに入れる 18

(19)

おすすめキャプチャソフト

Fraps シェアウェア(37ドル)・老舗の動画キャプチャ DXtory シェアウェア(3600円)・更新が頻繁でWin8対応 両方とも独自コーデックを利用しており、 高速かつ非劣化かつ簡単操作でキャプチャが可能 19

(20)

アマ何とかは?

フリーだが以下の理由により非推奨 Windows Vista/7/8非サポート !このせいで録画自体が上級者向けになっている OpenGL/DirectX10以降非対応 有料の独自コーデックが64bit非対応 !64bitの動画編集ソフトで直接読めない 20

(21)

キャプチャまとめ

速い方が良いけど無圧縮はデメリットの方が 大きいので、可逆圧縮コーデックを使う

FrapsかDXtoryを使えば不自由しない

(22)

2弾:動画編集

PVなどの動画編集や、 その素材となるファイルの扱い キャプチャほどのエンコード速度は必要無いが、 モチベーションが下がらない程度の速度と 非劣化もしくはそれに近い高画質が必要 22

(23)

おすすめコーデック

Utvideo Codec 国産でフリー。ニコマスPが編集作業の為に開発 現在はMac版も出て最強に近い Lagarith Codec 海外産フリー。Utvideoより数%良く縮む 可逆圧縮の数%=数百MB単位なので結構重要 23

(24)

コラム:ファイルの受け渡し時

素材はなるべく高画質で渡したい! キャプチャしたままのファイルは凄まじく大きい FrapsやDXtoryは独自コーデックなので、 ソフトを相手の人にも入れてもらう必要がある LagarithもしくはH.264高ビットレートなど、 高画質で容量の小さくなるコーデックに変換する 24

(25)

3弾:インターネット

Youtube、ニコニコ動画、Vimeoなど インターネットの動画サイトに投稿する場合 上記3サイトはどれも.mp4(H.264/AAC)が標準 となっているのでこれを対象に 25

(26)

H.264の圧縮設定

プロファイルによって、同じビットレートでも 圧縮処理が大きく変わる Baseline シンプルなフレーム予測とエントロピー符号化 Main Baselineに重み付け予測などの処理を追加 High Mainに8x8画素離散コサイン変換、量子化行列等を追加 26

(27)

じゃあ

High/高ビットレートで良いの?

ところがどっこい ニコニコ動画にはエコノミーモードが存在 現在はBaseline、29.97fps 画質が激しく落ち、 元が60fpsの場合カクカクにもなる ポータブル機器などはMainまで対応のものが多い 27

(28)

エコノミー回避のススメ

Main/Highでビットレートを詰めた方が エコノミー化された動画よりも高画質になる 現在の上限は445kbps(445440bps)(音声含) 445440bpsピッタリという訳では無いので 再生テスト必須 28

(29)

 コラム:

H.264のレベルについて

H.264では、動画の解像度とフレームレートによる 秒間ブロックサイズによってレベルが定められている 参考:MobileHackerz ニコニコ動画の推奨はLevel 3.1で、これは 720x480@80fps、1280x720@30fpsまで対象 60fpsの場合は1280x720以上のゲームでも 低解像度にリサイズするのが必須 29

(30)

音声コーデックは?

一般的にAACと言えば、 iTunesなどにも使われるAAC-LCが主流だが、 極低ビットレートの場合はHE-AACを使った方が ノイズが少なく綺麗に聴こえる 48kbpsでも不快なノイズはほぼ聴こえない LC=Low Complexity HE=High Efficiency 30

(31)

コラム:

つんでれんこ

名前はふざけているけど優秀なソフト 質問対話形式で.mp4のエンコード設定を行える 必要ソフトを自動インストールしてくれる エコノミー回避、HE-AAC、Youtubeにも対応 最終版が9個(!?)出ており、今後問題が出た場合は 派生の夏蓮根の方を使用することを推奨 31

(32)

コラム:ニコニコ以外

YoutubeとVimeoはフルHDにも対応しており ビットレートの制約も少ないが どちらも30fpsまでしか対応していないので アップロードする場合は画質重視で 32

(33)

インターネット動画まとめ

実質.mp4(H.264/AAC)一択 エコノミー回避をするかしないかは良く検討する エンコード初心者はまずつんでれんこを使う YoutubeやVimeoは30fpsになることを考慮 33

(34)

4弾:インゲームムービー

ゲーム中で再生する動画 DirectShowで使われるコーデックは完全に環境依存で ffdshowなどで置き換えられる可能性があり、 それによるバグが起こり得る MSはゲーム開発においてDirectShowを非推奨API指定 Media Foundationが現在の推奨API(だがVista以降) 万全を期すならゲームプログラム側でデコーダを搭載 34

(35)

まとめ

キャプチャはFrapsかDXtoryで 動画編集素材には可逆圧縮コーデックを インターネットに上げる動画はx264で作成 ゲーム内ムービー再生は結構修羅の道 35

(36)

会場での

Q&A(1)

デコード搭載とは具体的には? 動画ファイルの読み込み →デコードしてフレームを取り出す →フレームバッファやテクスチャにレンダリング といった処理を実装すること 36

(37)

会場での

Q&A(2)

ゲームに直接組み込めるデコーダの例とは? MPEG系(H.264)は特許のため基本全てアウト Ogg Theora・On2 VP8などのオープンソース Binkなどのゲーム用動画ミドルウェアもある 37

(38)

会場での

Q&A(3)

エコノミーモードの詳細を知りたい 平日18∼26時、休日12∼26時の ピークタイムに実施される一般会員向けの帯域制限 ビットレートの高い動画だけエコノミーモードの動画が 一般会員に再生されてしまう Baseline/Level3.0、360kbps、29.970fps AAC-LC 約64kbps と無視できないレベルの低画質・低音質になる 一般会員の割合はアクティブユーザのおよそ2/3 ほとんどの視聴者が低画質の方だけで判断してしまうことを 未然に防ぐためにエコノミー回避を行うのはかなり効果あり 38

(39)

会場での

Q&A(4)

H.265(HEVC)が出たらそっちの方が良い? 対応しているエンコーダ・デコーダがまだ無い 今週規格として承認されたばかり H.265を用いる4K・8K放送開始が早まったので これから順次出てくると思われる 39

(40)

会場での

Q&A(5)

コーデックのソースコードは公開されている? Utvideo,Lagarith,x264,VP8などは ソースが公開されており、 マルチコア・SIMD(SSE/AVX)対応アセンブリ も付属しているので並列化の参考にも 40

(41)

おまけ:インターレース

動画を奇数段目と偶数段目で交互に表示する PCモニタはプログレッシブ(一括表示)なので インターレース動画を再生すると描画されない段が 縞ノイズのように見えてしまう PCゲームの場合は録画素材がプログレッシブなので、 設定を間違えない限りこの問題は起きない 起きるとエコノミー並に醜くなるので 編集ソフトの設定に注意 41

参照

関連したドキュメント

日時  9 月 12 日(月) 午前 9:30–12:30. 会場  S

3 当社は、当社に登録された会員 ID 及びパスワードとの同一性を確認した場合、会員に

② 特別な接種体制を確保した場合(通常診療とは別に、接種のための

ある周波数帯域を時間軸方向で複数に分割し,各時分割された周波数帯域をタイムスロット

※規制部門の値上げ申 請(平成24年5月11 日)時の燃料費水準 で見直しを実施して いるため、その時点 で確定していた最新

現時点の航続距離は、EVと比べると格段に 長く、今後も水素タンクの高圧化等の技術開

※規制部門の値上げ申 請(平成24年5月11 日)時の燃料費水準 で見直しを実施して いるため、その時点 で確定していた最新

■実 施 日:平成 26 年8月8日~9月 18