fc2ブログ
 

AMV4ビデオコーデック 内部仕様でみるAMV4とAMV2MTの違い

AMV4とAMV2MTの違いを内部仕様で比較しながら、AMV4ビデオコーデックがどんなコーデックになるか紹介します。

表1.AMVビデオコーデックの内部仕様
 AMV2MTAMV4
 Y2標準可逆Y3標準DY2標準可逆DY3高圧縮可逆
圧縮パターン4648
参照箇所1112
参照距離遠い遠い近い近い
二次圧縮無し無し無し有り
画質可逆非可逆可逆可逆
マルチスレッド最大8最大8非対応1非対応1
拡張命令SSE2SSE2SSE4.1
AVX2.0
SSE4.1
AVX2.0
黄色は変更箇所

表2.性能
 AMV2MTAMV4
 Y2標準可逆Y3標準DY2標準可逆DY3高圧縮可逆
圧縮効果低い高い Y2より高いY3より高い
処理速度SSE速い普通Y2より速いY3とほぼ同じ
処理速度AVX2--もっとも速いY2より速い



【圧縮パターン】
「どのように圧縮するか」といった圧縮パターンの数。
パターン数が多いほど好条件で圧縮できる可能性があがるため高い圧縮効果が得られます。

【参照箇所】
基本的には左に位置する画素、または1フレーム前の同じ位置の画素のどちらか一方を参照して処理します。
DY3ではキーフレームの場合、左と上の二箇所、差分フレームの場合は左と1フレーム前の同じ位置の二箇所を参照して処理します。
参照箇所が多いほど好条件を選択できるため高い圧縮効果が得られます。

【参照距離】
フレーム内の画素を参照する際の距離(何画素離れたデータを参照するか)です。
近いデータを参照するほどデータの相関関係が強まるため圧縮効果が高くなります。
Y2,Y3では最大で8画素離れたデータを参照します。遠いデータを参照してしまうため圧縮効果は低めになります。
DY2,DY3は常に隣の画素を参照するため、参照距離は常に1となり、高い圧縮効果が得られます。

【二次圧縮】
一度圧縮したデータを再度圧縮します。主に動きの少ない部分や単調なデータの圧縮効果が非常に高くなります。
処理がとても遅くなるためAMV2MTでは処理速度より圧縮効果を優先するY4高圧縮にのみ適用していましたが、AMV4では大幅に処理速度が向上するためDY3に適用しました。

【画質】
AMV4ではDY3も可逆になります。

【マルチスレッド】
CPUリソースを複数使うことで処理時間を短くします。その代りCPUへの負荷は増えます。
AMV2MTはマルチスレッドで処理することができましたが、マルチスレッドで処理するメリットはありませんでした。
AMV4はさらに処理速度が向上するためシングルスレッドでも十分リアルタイム処理が可能となります。そのためマルチスレッドでの処理を廃止します。

【拡張命令】
AMV2MTはSSE2までの拡張命令を使って処理します。
AMV4はSSE版とAVX2版があり、SSE版はSSE4.1までの拡張命令を使って処理します。
AVX2版はAVX2までの拡張命令を使って処理します。


内部仕様で比較するとDY2とY2は参照距離が違うだけですが、参照距離が短くなるだけでも10%から20%ほど圧縮効果が向上します。

一方、DY3はY3と比べ大幅に処理が増えます。
(1) 圧縮パターンの増加
(2) 参照箇所の増加
(3) より近いデータを参照する (これも同じレジスタ内のデータを参照するため処理が増えます)
(4) 二次圧縮の適用

これらの効果によりDY3は非可逆圧縮のY3より高い圧縮効果が得られます。
これだけ処理が増えると、処理に時間がかかりパフォーマンスが低下するところですが、SSE版のDY3でもY3とほぼ同じかほんの少し早く処理することができます。
そして、AVX2版のDY3はY2よりも早く処理でき、非常に高いパフォーマンスを発揮します。


YUY2に関しては一通り動作するところまできました、仕様もほぼ固まりましたので、次回は(まだ開発途中ですが)簡単なベンチマークテストを行いおおよその処理速度、圧縮効果を紹介します。

※ 記事の内容は開発中のものです。公開時の仕様と異なる場合があります。
最終的な仕様については、公開時の記事を見てください。
関連記事


コメントの投稿

No title

ちょうどHaswellに買い替えたとこなので
楽しみに待ってます。
 
 
あまラボへようこそ
このブログでは自作ソフトの最新情報やtips、PC動画に関する話題を掲載していきます。各記事へは下にあるカテゴリからアクセスして下さい。

ファイルのダウンロードはホームページの方でお願い致します。

質問・要望・不具合報告はこちら
アマレコTV
アマミキ!
アマレココ
アマレコ・ライト
ファンタジーリモート
AMVコーデック



ホームページ
カテゴリ
最新コメント
カレンダー
04 | 2022/05 | 06
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
最新記事
最新トラックバック
ブログ内タグ

アマレコTV ビデオキャプチャ AMVコーデック アマレコVR Oculus アマレココ Quest アマミキ! コーデック gQuest SC500 動画配信 Pico GO ファンタジーリモート 4K アマレコライト プラグイン G2 AMV4 oculus ライブ機能 SC512 Unity AVX2 デスクトップキャプチャ Passthrough リモートソフト FAQ 質問コーナー DirectShow ニコニコ動画 120Hz HDキャプチャ 遅延 可変再生速度 レゴ 解説動画 組み換え VR LEGO XL2420T GV-USB2 2 倍速液晶 AMV2MT 液晶モニター アマステ ベンチマーク デインターレース Intensity VRonVR PS4 パススルー機能 Meta Pro MonsterX3A designs VideoKeeper2 XCAPTURE-1 Alternate AVX インストール GV-USB SD-USB2CAP4 RDT233WX-Z 32ZP2 31006 ffmpeg Rift WindowsMR 60fps 背景透過 31024 T2 画像処理 RGBキャプチャ UtVideo Shadow Play RYZEN Haswell 電源オプション MP3 HDCP MonsterXU3.0R HDMI ゲームスムーズモード 音遅延 LameACM HT 倍速補完処理 31021 フィギュア ハイパースレッディングテクノロジー MPC NVEnc OBS QSV モノステ DirectShowFilter プレビュー 擬似NTSCキャプチャ Livetube AtomでHDキャプチャ キャプチャーツール シンクライアント イベント SD-USB2CUP4 IntensityPro 32ZP32 額縁遅延 REGZA 液晶テレビ 倍速駆動 DC-HD1 リプレイ機能 音ズレ ZP3 GV-USB3 passthrough APIパススルー機能 API 検証 60Hz 新アマレコVR 新プレイヤー機能 AMPlayer Robust Video Hand Tracking 2.0 SkyBox ファイルマネージャプラス Matting python pytorch 90Hz Windows キャプチャカード 可逆圧縮 GPU使用率 SKnet SSE オーバーレイ XCapture-1 Kabelake LAVFilters Preferred フレーム間圧縮 VRコントローラー MR VR動画 SteamVR Filter Tweaker 録画 

ブログ内検索
月別アーカイブ
アマレココに関するリンク
お世話になっているソフトのリンク
RSSリンクの表示
管理画面
  • 管理画面