web-dev-qa-db-ja.com

圧縮されたビデオをデコードして、圧縮されていない元の形式に戻すことはできますか?

以下は ffmpegドキュメント で言及されています。

ffmpegは、libavformatライブラリ(デマルチプレクサを含む)を呼び出して、入力ファイルを読み取り、それらからエンコードされたデータを含むパケットを取得します...エンコードされたパケットは、デコーダに渡されます...デコーダは、非圧縮フレーム(生のビデオ/ PCMオーディオ/ ...)を生成します。 )フィルタリングによりさらに処理できます...

つまり、h.264のようなすべての圧縮形式/コーデックから、元の大きなサイズのビデオをいつでも抽出できるということですか?

16
flipper

ビデオ圧縮は通常、「 lossless とは対照的に、「 lossy " = "。

これは、データを圧縮し、その後解凍することで、目的に応じて(うまくいけば)受け入れられるオリジナルの近似値になることを意味します。

人間は画像の細部を知覚するのが得意ではないため、非可逆圧縮技術を使用して画像やビデオを保存することは、通常は問題ありません。たとえば、脳はコンテキストのみから多くの詳細を埋めることができます(目は小さな領域しかないため) "high resolution")の中央にあり、私たちの目は赤や青よりも緑の強度に敏感です(これはRGB565での割り当てを説明しています)。

だから、あなたが言うとき:

つまり、mp4のようなすべての圧縮形式から元の大きなサイズのビデオをいつでも抽出できるということですか?

あなたは一つの質問をしているが、誤解のために多くの余地を残している。

  • 非可逆技法を使用して圧縮されたビデオから、元のピクセル完璧な画像を抽出できますか?
    • いいえ
  • 高品質で、静止画像として使用できる損失のある技術を使用して圧縮されたビデオの単一フレームを抽出できますか?
    • たぶんそうではない-シーン内の動きはより多くのアーティファクトを引き起こしますが、静的なシーンは通常、時間の経過とともに見た目が良くなります。
  • 人間には「リーズナブル」に見える元のサイズの画像を抽出できますか?
    • はい-"reasonable"の定義に対して

この不完全な結果の画像には、「 Compression Artifacts 」が含まれます。以下の誇張された例に示すように:

good / 100% JPEG

bad / 5% JPEG


コメントもオーディオ品質に重点を置いているため、まったく同じことが起こります。ただし、オーディオは帯域幅が大幅に低いメディアであるため、ロスレスコーデックを実用的にすることができます(例 [〜#〜] flac [〜#〜] )。

PCM/WAV→MP3→PCMから変換すると、MP3エンコード/デコードプロセスによって導入されたアーティファクトを持つ出力PCMファイルが生成されます-これらは削除できません。

さらに、コーデックを連結すると、それぞれが独自のアーティファクトを導入できるようになり、コーデックが適用される順序が出力に大きな影響を与える可能性があります。

PCM→MP3→OGG vorbis→Opusの変換は、PCM→Opusととは異なります。これは、中間コーデックのそれぞれに損失があるためです。

これを別の 誇張された例 として提示するサンプルオーディオファイルを作成しました。これは、「Tonight」による「The 69 Eyes」の最初の〜30秒で、次のチェーンの間で5秒ごとに交互に表示されます:

  • CD→FLAC→オーパス
  • CD→FLAC→MP3→Vorbis→Opus

ここでの効果は劇的で、高周波数(つまり、ハイハット)がオーディオからほぼ完全に削除され、特にチャンネル(左/右)の相互作用が最初に顕著になります。

compare

48
Attie

一般的に codecs の短い答え:
任意の lossless codec like [〜# 〜] flac [〜#〜] または Zip は逆にすることができます丁度。
すべての lossyコーデック -- [〜# 〜] jpeg [〜#〜] または MP3 は元に戻せません丁度。

この原則は video codecs にも有効です。
ここに HuffYUV は、ロスレスビデオコーデックの例です。
そして x264 は、非可逆ビデオコーデックの例です。

15
zx485

つまり、mp4のようなすべての圧縮形式から元の大きなサイズのビデオをいつでも抽出できるということですか?

いいえ、あなたはその文章を誤解しています。

圧縮されたテキストを読み取ったり、Zipで圧縮されたファイルを先に解凍せずに読み取ったりできないのと同じように、圧縮された画像を表示することはできません。画像を表示するには、何とかして画像を非圧縮でピクセル単位で表す必要があります。

これは、非圧縮画像が元の画像と同じになることを意味するものではありません。これは、使用するコーデックによって異なります。私の知る限り、一般的に使用されるロスレスコーデックはありません。非可逆コーデックは、通常の状況下で非圧縮ビデオを区別できないように、オリジナルを十分に忠実に表現することを目的としています。予測された解像度とフレームレートで再生した場合。圧縮された静止画(つまり、framerate = 0)を見ると、圧縮中のビットレートが実際に高く設定されていない(つまり、生成される出力ファイルが大きすぎる)場合を除いて、アーティファクトが確実に表示されます( この答え 私の)。


ちなみに、MP4はfile形式にすぎません。圧縮データがファイルにどのように格納されているかを示しますが、どのように圧縮されたかは判断しません。 MP4はさまざまなコーデックで動作します。 H.264は、おそらくMP4で使用される最も人気のあるビデオコーデックですが、それについて私を引用しないでください。オーディオは通常AACで圧縮されていると思います。

4
gronostaj

これはよくある失敗です。

非可逆形式から可逆形式に変換することはできますが、損傷が生じます

ロスレス出力ファイルには、ロッシー形式が気に入らない理由であるすべての損傷(妥協された詳細、追加されたアーティファクト)が表示されます。あなたはそれを取り戻すことはできません。

唯一のオプションは、発行元に連絡して、元のロスレスファイルがまだ残っているかどうかを確認し、どういうわけかそれらをアップロードしてもかまいません。

拡張ボタン のようなものはありません。 警告:TVtropes