概要 製品一覧 サポート Blog

DropBox H.264 可逆圧縮の詳細

image

 

Olga Krovyakova著 - 2023 年 10 月 6 日に修正、2019 年 4 月 3 日に作成。

ZOND 265を無料で試す

数週間前、Dropbox のエンジニアが人気テレビ番組の Pied Piper アルゴリズムを再作成したという記事に遭遇しました。 Dropbox は H.264 および JPEG ファイル用の可逆圧縮アルゴリズムを開発し、私たちのチームはこのソリューションを評価し、具体的な詳細を収集することに取り組みました。

目を半分にして、再圧縮された H.264 ファイルは H.264 ではなくなり、一時的なストレージとしてのみ使用できることに気付きました。さらに、この圧縮方法は、ファイルがコーダーとして CAVLC を使用した場合、またはファイルが最大サイズの PU および TU ブロックでコーディングされた場合という 2 つの条件下で効果的になる可能性があります。どちらの条件も、H.264 コーデックが最大速度コーディングに設定されている場合にのみ満たされます。

パイドパイパープロジェクトについて

ビデオもその一つです 最も重い したがって、ビデオ処理、転送、ストレージ サービスが実行可能なソリューションとして圧縮を考慮する必要があるのも不思議ではありません。ただし、いくつかの選択肢があります。 2015 年 8 月、DropBox は、H.264 標準ビデオ ファイル用のオリジナルではあるが不完全なアルゴリズムという、この問題に対する自社のビジョンを発表しました。同社は顧客のファイルのストレージに主に焦点を当てています。平均的なユーザーは、これらのファイルがどのように保存されているかについてはほとんど気にしません。重要なのは、まったく同じファイルをそのまま、つまりアップロードされた方法でダウンロードすることです。したがって、DropBox アルゴリズムはロスレスアルゴリズムです。その上、  圧縮の結果はソース形式のビデオ ファイルではありません

私たちの記事は、さまざまなファイル形式の圧縮におけるこのアルゴリズムの効率を評価することを目的としています。この目的のために、Solveig Multimedia のを使用します。  ゾンド265、  補助ツールとしての H.264 および H.265 ビデオ ファイルのアナライザー。

この記事に関連するすべてのファイル (Linux Ubuntu x64 12.04 用にコンパイルされたコンプレッサーの実行可能ファイル、テスト ビデオ ファイル) は、次の方法でダウンロードできます。  リンク
image

の効率の推定 パイドパイパー プロジェクトコンプレッサー

コンプレッサーのソース コードとテスト ファイルは、次の場所から入手できます。   GitHub 。まず、コンプレッサーをコンパイルし、テスト ファイルを推定します。その後、実際のビデオ ファイルに対する効果を測定します。

圧縮

具体的なガイドライン パイドパイパー コンプレッサーのコンパイルは Linux でのみ使用できます。実際、これは単一のファイル「piedpiper_make」スクリプトです。したがって、Linux Ubuntu x64 をロードし、3 つのコマンドを入力する必要があります。

cd ./lossless264
./piedpiper_make

コンパイル後、現在のフォルダーに圧縮ファイルがあるかどうかを確認します。

  • h264dec – 圧縮および解凍の実行可能ファイル
  • so.0、libopenh264.so – 動的補助ライブラリとそれへのリンク。

次のコマンドで圧縮を実行した場合:

./h264dec ./ソースファイル.264 ./宛先ファイル.pip、

減圧:

./h264dec ./圧縮ファイル.pip ./解凍ファイル.264。

圧縮出力はソースと同じ形式のファイルではなく、.pip ファイルの配列であることに注意してください。
 

パイドパイパー テストファイル

Git リポジトリによると、DropBox チームは次のファイルをテスト素材として使用しました: 「black.264」、「tibby.264」、「walk.264」、「BA1_FT_C.264」、「BAMQ2_JVC_C.264」。これらを Zond にアップロードします。 265 を実行し、同じ方法で圧縮されていることを確認します (Zond 265 のスクリーンショットを参照)  ビットストリーム タブ、写真。 「tibby.264」ファイルの場合は 1 ~ 3)。ファイルの主なプロパティは、CAVLC の使用 (PPS、entropy_coding_mode_flag: 0) と B フレームなし (SPS、max_num_reorder_frames: 0) です。効率テストのために最初の 3 つのファイルを選択しました。

image

写真。 1.「tibby.264」ファイルのシーケンス パラメーター セット (SPS) ブロック

image

写真。 2.「tibby.264」ファイルのピクチャパラメータセットブロック

image

写真。 3.「tibby.264」ファイルのビデオストリーム構造

その他のテストファイル

ユーザーは、ビデオ ファイルを取得するために、カメラ (携帯電話など) でビデオを撮影したり、多数のビデオ サービス (YouTube、VK、Vimeo、Facebook など) からダウンロードしたり、または次のツールを使用したりすることができます。録音機能を備えたソフトウェア。

通常の携帯電話ビデオクリップとして「VID_20150917_131139.264」ファイルを選択します。前のサンプルと同様に、これには B フレームが含まれていませんが、算術コーダーとして CAVLC ではなく CABAC が使用されています。コンプレッサーは YouTube ファイルに対してエラーを返すため (B フレームが含まれ、CABAC が使用されます)、これらのファイルはテスト フレームワークの後に残しておきます。

再コーディング対応ソフトウェアを選択する場合、   ffmpeg  コンソールユーティリティ (「libx264」モジュール)。さらに言えば、圧縮は「超高速」プリセットでのみ可能であり、「超高速」プリセットでは結果が得られないことがわかります。テストファイルは「tractor-ultrafast.264」、「tractor-superfast.264」です。

前述のファイルの他に、表にはさらに 3 つのサンプルが含まれています。後者は、提案されたアルゴリズムが有効な「CABAC」オプションと最大サイズの PU および TU ブロックでのコーディングの効率を維持するかどうかを判断するために使用されます:「black-cabac.264」、「tibby-cabac.264」、および「tibby-cabac」 -最大ブロック数」。

試験結果

テスト結果を表 1 および 2 に示します。PU および TU ブロックの定量的データは、Zond 265 ソフトウェアを使用して収集されました ( Stream Stats  タブ)。写真。図 4 は、「tibby.264」ファイル データのスクリーンショットを示しています。

image

写真。 4. PU および TU は、「tibby.264」ファイルのデータをブロックします

表 1.笛吹き男 コンプレッサー。効率テストの結果。

image

表 2.笛吹き男 コンプレッサー。効率テストの結果。

image

上の表が示すように、現在のバージョンの パイドパイパー このアルゴリズムは、ファイルがコーダーとして CAVLC を使用する場合、またはファイルが最大サイズの PU および TU ブロックでコーディングされている場合の 2 つのシナリオでのみ機能します。これらのシナリオでは、H.264 コーデックによる最大速度のコーディングが必要です。どうやら、これらすべてはかなり大きなファイルに要約されるようです。によって作成されたファイルは次のとおりです。   ffmpeg   libx264 を使用したコーデック、「超高速」プリセットがオン。

今のところはそれだけです。私たちのチームとともにこの調査に時間を割いていただいたことに感謝いたします。フィードバックをお待ちしております。

ZOND 265を無料で試す

著者について

image Olga Krovyakova は、2010 年から Solveig Multimedia のテクニカル サポート マネージャーを務めています。

彼女は、ビデオ スプリッター、HyperCam、WMP トリマー プラグイン、AVI Trimmer+、TriMP4 などの会社製品に関する多くのテキストおよびビデオ ガイドラインの著者です。

彼女は毎日プログラムを使って作業しているため、プログラムがどのように機能するかをよく知っています。 ご質問がある場合は、 support@solveigmm.com経由で Olga までお問い合わせください。彼女は喜んでお手伝いします!