こんにちは!
エージェンテックのウルシバラです。
いつも弊社の製品をご愛顧いただきありがとうございます。
弊社ではYouTubeを利用して動画での情報提供をしています。 「百聞は一見に如かず」のことわざのとおり、見ることで理解を深めることができる動画は、使い方にもよりますが、有用なツールとなりますよね。
今回のブログでは、「動画を再生したい」と題して、動画の世界に関する情報を2回に分けてお伝えできればと思います。
動画の仕組
動画の仕組はよくパラパラ漫画に例えられますが、複数枚の静止画を高速で切り替えることで、人間の目に錯覚をおこし、静止画が動いているように見せる表現形式です。
フレームレート・ビットレート
動画を構成するひとつひとつの画像(コマ)は「フレーム」と呼ばれ、1秒間に表示するフレームの数を「フレームレート(fps)」と呼んでいます。地上波のテレビ放送では、30(29.97)fpsが使われています。
フレームレートは低すぎるとコマ毎の動きの変化が大きくなるため、カクカクとした動きになりますが、高すぎるとフレーム処理の負荷も高くなるため、処理性能が低い端末では滑らかに処理ができなかったり、再生できない場合もあります。
また、1秒間に処理するビット数を「ビットレート(bps)」と呼び、動画ビットレートは解像度・色調・フレームレートから算出できます。
さて、仮にシンプルなパラパラ漫画の仕組で動画ファイルを作成したとすると、どれ位のサイズになるか試算してみましょう。
動画のファイルサイズを計算する
画像はビットマップ(bmp)形式のトゥルーカラー(24bit)、解像度はフルHD(1920×1080)、フレームレートは30fpsで再生時間を1分と仮定すると、1画像あたり約6.2MB(=1920×1080×3)、1秒あたり約187MBとなり、1分の動画で約11GBのファイル容量になってしまいます。
また、この例での動画ビットレートを計算すると約1.5Gbpsになります。
もし、本当にこの形式の動画ファイルが一般的であれば、ダウンロードにかかる時間は長く、再生負荷も高そうで、動画再生は簡易にできるものではなくなりそうですね。。。
コーデックの登場
このように動画ファイルを作成しようとすると、どうしても容量が大きくなってくるため、画質の劣化を抑えつつデータ容量を圧縮・伸張する技術研究、実用化が行われています。
エンコードとデコード
このような、データ圧縮・伸張の技術は総称として「コーデック」と呼ばれ、圧縮は「エンコード」、伸張は「デコード」と呼ばれています。
実際のエンコード・デコード処理は、専用ICチップ等のハードウェア、又はソフトウェアによって実行されますが、それらは「エンコーダー」・「デコーダー」と呼ばれています。
コーデックは動画だけでなく、画像や音声を対象にしたものがあり、実用化されている多くのコーデックが存在します。
コーデックの種類
主な動画コーデックとしては、以下のようなものがあります。
名称 | 特徴 |
---|---|
H.264 / MPEG-4 AVC | 画質も比較的高く主流な動画コーデックです。 ABook製品も動画ファイルをこの形式に変換して扱っています。 |
H.265 / HEVC | H.264の後継となる動画コーデックでH.264と同等画質をより小さいファイルサイズで扱うことができます。 iPhoneのカメラ設定で高効率を選択するとこの形式になります。 |
VP9 | Googleが提供する動画コーデックで、H.265と同等の性能を持ちます。 YouTubeに投稿された動画ファイルはこの形式に変換されるようです。 |
他にも数多くのコーデックが存在しますので、興味がある方はWikipediaのコーデックのページを参照してみてください。
作成した動画を再生させるには
さて、動画ファイルは一般的にカメラ撮影したものを、動画オーサリングのソフトウェア等で編集・保存することで作成していきます。
特定の動画コーデックの動画ファイルを作成したい場合、動画オーサリングソフト(又はその端末内)に対応エンコーダーがあれば作成は可能です。
ただし、その動画ファイルを再生する際には、そのコーデックに対応するデコーダーが再生端末側に用意されている必要があります。
このため、汎用的ではないコーデックで動画ファイルを作成すると、再生環境によってはそのコーデックに対応しておらず、動画を再生することができないケースも発生します。
ABook製品は自動変換
ABook製品に登録した動画ファイルの動画コーデックがH.264/MPEG4-AVC形式でない、又は、音声コーデックがAAC形式でない場合は、動画ファイルを自動変換し製品内部で利用することで、「端末側にコーデックがないため再生できない」という状況を回避しています。
なお、mp4等のファイル形式を「コンテナフォーマット」と呼びますが、動画コーデックと「コンテナフォーマット」は1対1の関係ではないため、動画ファイルの拡張子からだけでは、動画コーデックは判断できないので注意が必要です。
動画コーデックはH.264/MPEG4-AVC形式に統一しているし、これで安心。・・・実は、それでも動画を再生できない状況が発生することがあるのです。
H.264/MPEG4-AVC形式の動画
H.264/MPEG4-AVC(以降、H.264と表記します)はITU-TとISO/IECで技術規格が規定されています。
H.264の詳細技術に興味のある方は、英語で800ページほどありますが、規格資料をダウンロードして参照してみてください。
H.264の「プロファイル」と「レベル」
「プロファイル」では主に動画圧縮に関連する機能の利用範囲が定義され、その集合体毎に「ベースラインプロファイル(BP)」「メインプロファイル(MP)」「ハイプロファイル(HP)」といった名称がつけられています。
一方、「レベル」では主に処理負荷や使用メモリ量の上限が定義され、その集合体毎に「3.1」「4.1」「5.1」といった数値での名称がつけられています。
ここまでに紹介してきた用語との関連では、「レベル」の値によって、再生可能な解像度とフレームレートの上限が決まり、「レベル」と「プロファイル」により動画ビットレートの上限が決まります。
H.264の動画が再生できない理由
より高い「プロファイル」、「レベル」で作成した動画は、一般的により高い再生品質になりますが、動画再生する端末側のデコーダー(動画再生仕様)にも同じ、あるいは上位の「プロファイル」、「レベル」の再生能力がない場合、動画を再生することができません。
例えば、「レベル」、「プロファイル」毎の対応可能な解像度・最大フレームレート、最大動画ビットレートは、H.264を紹介したWikipediaに一例が紹介されていますが、端末側の動画再生仕様で定義された「レベル」で対応可能な解像度・最大フレームレート以上で作成された動画ファイルはその端末では再生することができないのです。
これが、H.264形式の動画でも再生ができない原因の1つで、端末側の再生仕様に依存してしまうため、動画ファイル自体を端末側での対応上限に収まるように変換してあげる必要があります。
なお、先に紹介したH.264規格資料内の「Table A-6 – Maximum frame rates (frames per second) for some example frame sizes」には、より多くの「レベル」毎の対応可能な解像度・最大フレームレートの例が紹介されていますので参考にしてください。
終わりに
さて、今回は動画を扱う際によく出てくる用語と動画再生に関する情報を中心にお伝えしました。次回はもう少し実践的な情報をお伝えしたいと考えています。
それでは、また、次回をお楽しみに!
情報の正確さに欠く部分がありましたら平にご容赦ください。m(_ _)m
コメント