動画などデータの圧縮には、『非圧縮』『可逆圧縮』『非可逆圧縮』の3つの圧縮方法があります。
市販の動画編集ソフトであれば、そもそも保存できる動画形式が2~3種類に制限されていることが多く、動画の保存やエンコードに関して悩むことはあまりありません。
しかし、『AviUti』などのWindowsにインストールされている外部コーデックが利用できるソフトで編集を行った場合、いろんなコーデックを導入していると様々な保存形式が選べるため「種類がありすぎてどの形式で保存したら良いか分からない」という人もいるでしょう。
また『非圧縮』『可逆圧縮』『非可逆圧縮』の違いがわかりにくくて、どのコーデックを使ったら良いのか分からないというケースもあるはず。
ですので、『非圧縮』動画と『可逆圧縮』『非可逆圧縮』それぞれのコーデックを使った動画の違い、代表的なコーデック、場面に応じた使い分け方を簡単に解説してみましょう。
非圧縮動画と、可逆圧縮・非可逆圧縮コーデックを使った動画の違い
非圧縮(無圧縮)
特定のコーデックを使わず、エンコード(圧縮処理)を行わなずに出力した動画です。
画像で言うとBMP形式(※1)、音声だとリニアPCM形式のwavファイルなどが該当します。
『解像度、使用している色数、音声や動画の場合は記録時間(フレーム数)が同じ』場合、内容が異なったファイルでも『ファイルサイズがピッタリ同じ』になるのが特徴です。
AviUtlなど保存時にエンコード形式を選べるソフトで動画を保存する際、コーデック選択画面にて『未圧縮』と記されたものを指定することで、非圧縮動画を作成できます。
エンコードを行わないので比較的短い時間(実再生時間の1/2~3/4程度)で動画を保存することができますが、FullHD(1980×1080)で4分程度の動画でも『42GB』もの容量を必要とします。
ですのでHDDやSSDなどのストレージに充分な空き容量がないと、保存することすら難しい場合があります。
厳密に言うと可逆圧縮処理されたBMP画像というのも一応存在しますが、レアケースなので今回の説明では例外としています。
可逆圧縮
動画の再生あるいは読み込み時に、元の画質をそのまま再現できるものを指します。
画像で言うとPNGやGIF形式、音声だとFLACやApple Lossless、アーカイブファイルのzipや7zやcab等々、圧縮前の内容を完全に復元できるものが該当します。
動画の可逆圧縮の場合、色空間にRGBかYUVを選択することで色の間引きするかどうかを決められるので、YUVを選択した場合は厳密に言うと色数が減っているのですが人間の目では判別できませんし、YUVでも画素単位(1ドットずつ)の画質は元通り再現されます。
- Huffyuv
- Ut Video (Ut Video Codec Suite)
- AMVビデオコーデック(一部非可逆にも対応)
非可逆圧縮
再生あるいは読み込み時に、『エンコード前の画質と全く同じ通りには再現できない』ものを指します。
画像で言うとJPEG形式、音声だとMP3形式やAAC形式やVorbis(ogg)形式などが該当します。
元の画質に戻すことができないというデメリットと引き替えに、可逆圧縮よりもさらにファイルサイズを小さくできるというメリットがあります。
そのメリットがデメリットを大きく上回るので我々が普段見る動画ファイルやストリーミング配信動画のほとんどは非可逆圧縮を採用しています。
- MPEG-4 AVC(H.264)
- MPEG-2
- VC-1(WMV9)
- VP9
- AV1
『非圧縮』『可逆圧縮』『非可逆圧縮』動画の使い分け方
一般的な非可逆圧縮された動画は、動画編集ソフトで『読み込み』と『保存』を繰り返すだけで、どんなに高画質設定で保存してもほんの少しずつ劣化していきます。
例えば、同じ非可逆圧縮方式のJPEG画像を1枚読み込み、なんの編集もしないで『保存>読み込み>保存>読み込み>保存』と繰り返すだけでも、ファイルサイズが減っていく事が確認できます。
その状態のJPEG画像と元の画像とを比較すれば、ぼやけやにじみなどの画質の劣化も肉眼で分かるでしょう。
上の画像は1枚の画像を画像編集ソフトで20回ほど読み込みと保存を繰り返したものです。
パッと見はあまり違いがわかりませんが、よく見ると耳のふち部分や背景のぼやけ具合が強くなっているのがわかります。
動画ファイルも同様に非可逆圧縮コーデックを使用して読み込みと保存を繰り返した場合、少しずつですが画質が劣化していくのは避けられません。
ですので動画の編集を行う場合、編集中はこまめに動画を保存せず、編集の工程を『プロジェクトファイル』として保存し、『全ての編集工程(プロジェクト)を済ませた後に非可逆圧縮コーデックで最終保存する』という形が一般的です。
ですが一旦視聴して「やはり動画の加工、演出を変更したい」と思った場合、また最初から工程を作り直す必要が出てきます。
そういう場面を想定し、最低限の編集(切り貼り、トリミング)などを済ませた動画を別途保存しておくと、加工や演出など編集のやり直しがし易くなります。
こういうときに可逆圧縮コーデックを利用します。
切りの良いところまで編集を終わらせた動画を途中保存しておくと、再度編集が必要になったとき画質を維持した状態で途中から編集を行うことができるので非常に便利です。
ちなみに可逆圧縮コーデックを使用せず、『非圧縮(未圧縮)』で保存しても同じ事はできるのですが冒頭にも書いたとおり、ファイルサイズが非常に大きくなるので実用的ではありません。
理論上圧縮をせずに動画を保存した方が早く動画の保存が終わりそうですが、ストレージの書き込み速度に限界があるため(例え書き込み速度の早いSSDに保存したとしても)ファイルが巨大になりすぎる『非圧縮』よりも『Ut Video』などで圧縮を掛けた方が実際の保存終了までの時間は短くて済みます。
●以下は同じ動画をAviUtlで読み込み、各形式で保存(エンコード)が終了したときのファイルサイズと終了までの時間を計測した結果です。
動画
- 記録時間4分00秒(30FPS 7201フレーム)
- 音声無し
PC
- CPU AMD Ryzen1600 6コア12スレッド 3.2GHz
- メモリ32GB
使用ソフト
AviUtl ver1.00
結果 | ||
保存形式 | ファイルサイズ | 掛かった時間 |
非圧縮 | 41.7GB (44,796,121,080byte) |
2分43秒 |
UTVideo RGB VCM | 11.9GB (12,794,481,344byte) |
1分36秒 |
UTVideo YUV420 BT.601 VCM | 6.0GB (6,417,190,460byte) |
1分28秒 |
Huffyuv_v2.1.1 MultiThreading Patch v1.0 マルチスレッド無効時 |
8.0GB (8,592,781,312byte) |
1分38秒 |
Huffyuv_v2.1.1 MultiThreading Patch v1.0 マルチスレッド有効時 |
8.0GB (8,616,959,356byte) |
1分16秒 |
非可逆圧縮コーデック(H.264)を使用してエンコードした場合の参考例 | ||
拡張x264出力(GUI)EX 高画質設定使用時 | 246MB (258,280,508byte) |
11分30秒 |
上記の結果を見ても分かるとおり動画ファイルを編集中に一時保存をする場合には『非圧縮』よりも早く保存できストレージに優しい『可逆圧縮コーデック』を使い、動画を完成品として保存、アップロード、配布する場合には『非可逆圧縮コーデック』を用いるという使い分けをするのが良いでしょう。
上記例ではHuffyuvのブランチ版のマルチスレッド機能を使うことで保存時間を短縮することができましたが、同梱ドキュメントにて注意書きがなされているとおりマルチスレッドを有効にすると一部のプレイヤーでは再生できない場合がありました。
当環境ではMPC-BE(x64)、VLCでは再生できず、MPC-HC&LAV splitter(x86)、Qonoha&LAV splitter(x86)なら再生可でした。
AviUtlでの読み込み&保存は問題ないようですが、自前デコーダーを持ったVLCなどのプレイヤーなどでは読み込めない場合もあるので、中間ファイルのテスト視聴を外部プレイヤーなどで行うのであればHuffyuvのマルチスレッド機能を使わないか、UT Videoなどを使う方が良いかもしれません。
最終的に保存する場合どの非可逆圧縮コーデックを使ったら良いのかというのは、目的によって異なります。
再生したい機器に対応している動画形式といっても「最新のデジタルガジェットならMP4コンテナに入れたMPEG-4 AVC(H.264)」、「少し前のデジタルフォトフレームやメディアプレイヤーならMPEG-4(H.263)ベースのDivXやXvid」、「DVDメディアならオーサリング前にMPEG-2」でエンコード…などなど状況によって様々です。
これといった目的がないなら汎用性が高くなるよう『動画をMPEG-4 AVC(H.264)』『音声をaac』『コンテナをmp4』にして保存しておくのが一番無難ではあると言えるでしょう。
Windows、MacOS、Android、iOSとOSを問わず再生できますし、画質もサイズもエンコード時間も細かく調整が可能です。
Intel QSVによるハードウェアエンコードを利用してH.264形式の動画にエンコードをするなら画質の低下と引き替えに、爆速でエンコードすることもできるでしょう。
まとめ
「特定の機器で動画を再生したい」という目的でない限り、『どうしても可逆圧縮、あるいは非可逆圧縮のコーデックを使わなければいけない』ということはありません。
デスクトップキャプチャーは、他の作業をしている様を撮影しながら記録していくのでエンコード負荷が低くパソコンの動作低下の起きにくい『可逆圧縮コーデック』を用いた方が良いのですが、長時間撮影など動画ファイルの肥大化でストレージを圧迫する可能性が高い場合、充分な画質に設定した負荷の低いMotionJPEGなどの非可逆圧縮コーデックを使い動画ファイルの肥大化を抑えるという方法をとっても構わないのです。
パソコンのストレージ容量、CPUのコア数や動作周波数などエンコード負荷や保存にかかる時間は各パソコンの性能で異なります。
いくつかのコーデックを実際に使ってみて、どの方法が自分のパソコン、そして目的に最適かを利用者自身が見極める必要はあるでしょう。