h264 で完全にロスレス エンコーディングを行うことは可能ですか? ロスレスとは、一連のフレームをフィードしてエンコードし、エンコードされたビデオからすべてのフレームを抽出すると、入力とまったく同じフレームがピクセルごと、フレームごとに取得されることを意味します. それは実際に可能ですか?次の例を見てください。
一連のフレームを生成し、イメージ シーケンスを非圧縮 AVI にエンコードし (virtualdub などを使用)、ロスレス h264 を適用します (ヘルプ ファイルでは、設定 --qp 0 を設定するとロスレス圧縮が行われると記載されていますが、つまり、プロセスのどの時点でも損失がないか、量子化だけが無損失であることを意味します)。その後、mplayer などを使用して、結果の h264 ビデオからフレームを抽出できます。
最初に Handbrake で試してみましたが、ロスレス エンコーディングをサポートしていないことがわかりました。x264 を試しましたが、クラッシュします。ソース AVI ファイルが YV12 ではなく RGB 色空間にあることが原因である可能性があります。一連の YV12 ビットマップをフィードする方法と、とにかく x264 にどのような形式でフィードするかがわからないため、試すことさえできません。
要約すると、それがそこからの道があるかどうか知りたいこと
一連のロスレス ビットマップ (任意の色空間) -> 何らかの変換 -> h264 エンコード -> h264 デコード -> 何らかの変換 -> 元の一連のロスレス ビットマップ
これを達成する方法があれば?
編集:ロスレスH264があまり意味をなさないことについて、非常に有効な点があります。圧縮されていないクリップと、H264 で高レートで圧縮された別のクリップの違いを (私の目だけで) 見分ける方法がないことは十分承知していますが、用途がないわけではないと思います。たとえば、ファイルを保存するたびに大量のスペースを使用したり、品質を低下させたり、エンコードに多くの時間を費やしたりすることなく、編集用のビデオを保存するのに役立つ場合があります。
更新 2:x264 がクラッシュしなくなりました。avisynth またはロスレス yv12 ラガリスのいずれかをソースとして使用できます (色空間圧縮の警告を回避するため)。ただし、 --qp 0 と rgb または yv12 ソースを使用しても、最小限ではあるが存在するいくつかの違いがあります。ロスレス予測コーディング (--qp 0) で見つけたすべての情報は、エンコーディング全体がロスレスであるべきだと主張しているため、これは厄介です。しかし、私はこれを検証できません。