MPEG4がデータを圧縮する方法を簡単に説明できます。私は主にビデオに興味があります。私はそれに異なる標準や部品があることを知っています。 MPEG4の圧縮方式があれば、圧倒的に優れた圧縮方式を探しています。MPEG4圧縮はどのように機能しますか?
答えて
MPEG-4は巨大な標準であり、可能な高い圧縮率を達成するために多くの技術を採用しています。
一般に、ビデオ圧縮は、エンドユーザーの視聴経験に与える影響を最小限に抑えながら、可能な限り多くの情報を放棄することに関係しています。たとえば、RGBの代わりにサブサンプリングされたYUVを使用すると、ビデオサイズが半減します。人間の目は明るさよりも色に敏感ではないので、これは可能です。 YUVでは、Y値は明るさであり、UおよびV値は色を表す。したがって、色の情報の一部を捨てて、ファイルのサイズを小さくすることができます。
その後、ほとんどの圧縮技術は特に2つの冗長性を利用します。第1は時間的冗長性であり、第2は空間的冗長性である。
時間的冗長性は、ビデオシーケンスの連続するフレームが非常に似ていることを示しています。通常、ビデオは毎秒20〜30フレームのオーダーであり、1/30秒では何も変化がありません。 DVDを取り出して一時停止し、1つのフレームでそれを動かし、2つの画像がどれほど似ているかをメモします。したがって、MPEG-4(および他の圧縮規格)は、連続フレーム間の差異を符号化するだけである(フレーム間の差異を見つけるためにmotion estimationを使用する)。
空間的な冗長性は、画像間の色の広がりは、かなり低い頻度である傾向がある。これは、隣接するピクセルが類似の色を持つ傾向があることを意味します。たとえば、あなたが赤いジャンパーを着ているイメージでは、あなたのジャンパーを表すすべてのピクセルが非常に似た色になります。 DCTを使用してピクセル値を周波数空間に変換することができます。周波数空間では、いくつかの高周波情報を取り除くことができます。次に、逆DCTが実行されるとき(復号化中)、画像は、捨て去られた高周波情報をもたない。
高周波情報を捨てる効果を確認するには、MSペイントを開き、一連の重なっている水平および垂直の黒線を描きます。画像をJPEG(圧縮用にDCTも使用)として保存します。パターンを拡大して、線のエッジがはっきりとはっきりしていないことに気付き、ちょっとぼやけています。これは、圧縮中にいくつかの高周波情報(黒から白への遷移)が捨てられているためです。Read this for an explanation with nice pictures
さらなる読書のために、this bookは数学で少し重い場合はかなり良いです。
MPEG4は、ビデオを圧縮するためにさまざまな手法を使用しています。
まだウィキペディアを見ていない場合は、これは良いstarting pointになります。
また、これらの技術をより詳細に説明するIEEEからの記事もあります。
MPEG4は、discrete cosine transformのバリエーションと、後続のフレームに必要なデータ量を削減するさまざまな動き補正技術(これが役立ちますとモーション予測と考えることができます)を使用しています。 This pageには、プレーンなMPEG4で何が行われているかの概要があります。
JPEGで使用される技術と全く同じではありません。
シャープエッジには確かに高い周波数が含まれています。高周波を低減または除去すると、エッジのシャープネスが低下します。鋭いエッジを含む細かいディテールは、高周波除去で除去されます - 2つの小さなオブジェクトを解決する能力は高い周波数で取り除かれます。
- 1. Zipファイルの圧縮はどのように機能しますか?
- 2. zlibの圧縮機能は何もしていません。どうして?
- 3. どのように圧縮画像を使用しますか?
- 4. 圧縮ドメインでの動き検出(JPEG/Mpeg4/H264)
- 5. クリックイベント/機能を圧縮する
- 6. JSON APIのAmazon EC2インスタンスで圧縮/圧縮解除が機能しない
- 7. PS/PDFはどのようにビットマップを保存し、圧縮しますか?
- 8. 水銀はどのようにリポジトリ内のファイルを圧縮しますか?
- 9. Opera Turboはどのようにデータ(キャッシュ)を圧縮しますか?
- 10. Quartzはテクスチャ圧縮をどのように処理しますか?
- 11. 圧縮ヘッダーを設定し、圧縮してヘッダーを圧縮しますか?
- 12. logstash kv {}機能はどのように機能しますか?
- 13. WatchKit:ディクテーション機能はどのように機能しますか?
- 14. 機能はどのように機能しますか?
- 15. http圧縮はviewstateも圧縮しますか?
- 16. favicon.icoのgzip圧縮をどのように有効にしますか?
- 17. コードを圧縮し、スイッチ機能を置き換えます(javascript)
- 18. MVCページの圧縮フィルタが機能しません。
- 19. UrlrewrittenページのIIS 6圧縮が機能しません。
- 20. スプリットボリュームの圧縮をJavaでどのように解凍しますか?
- 21. JavascriptでYIU圧縮プログラムでjavascriptを圧縮しているかどうかを検出します。
- 22. Internet Explorerでのgzip圧縮が機能しないのはなぜですか?
- 23. jpegイメージを圧縮率4 bpp以下で圧縮するにはどうしたらいいですか?
- 24. IIS 8.5でgzip圧縮が機能しないのはなぜですか?
- 25. PySparkで2つのRDDをどのように圧縮できますか?
- 26. チタン製作後のサイズをどのように圧縮できますか?
- 27. 同様の行をどのように圧縮できますか?
- 28. $ watchのコール機能は一度にどのように機能しますか?
- 29. array_udiff()、array_uintersect()などはどのように機能しますか?
- 30. AWS CloudFrontの自動圧縮が機能しない
シャープなエッジは繰り返さないため、高周波ではありません。実際にはすべての周波数を一度に合計しています。そのため、DCT圧縮や一部の画像リサイザでは、線をぼかすのではなくノイズを追加することがあります。 –
イメージ全体に対してDCT(Discrete Cosine Transform)が実行されないようにする必要があります。画像は8×8または16×16ピクセルブロックに分割され、DCTは各ブロックで実行されます。これは、大きな画像ではDCTの性能が急激に低下するためです。 MPEGはストリーミングされなければならないので、復号化は非常に高速でなければならない。 – rcz