任何人都可以用簡單明瞭的方式解釋MPEG4如何工作來壓縮數據。我最感興趣的是視頻。我知道有不同的標準或部分。我只是尋找主流的整體壓縮方法,如果有MPEG4的壓縮方法。MPEG4壓縮如何工作?
回答
MPEG-4是一個巨大的標準,並採用多種技術來實現高壓縮率,這是可以勝任的。
一般來說,視頻壓縮涉及扔掉儘可能多的信息可能同時具有對最終用戶的觀看體驗的影響最小。例如,使用二次採樣的YUV而不是RGB可以將視頻尺寸直接剪切一半。這是可能的,因爲人眼對顏色不敏感而不是亮度。在YUV中,Y值是亮度,U和V值表示顏色。因此,您可以丟棄一些減少文件大小的顏色信息,而觀衆不會注意到任何區別。
之後,大多數壓縮技術特別利用了2個冗餘。第一個是時間冗餘,第二個是空間冗餘。
時間冗餘注意到視頻序列中的連續幀非常相似。通常情況下,視頻大約爲每秒20-30幀,而在1/30秒內沒有什麼變化。拿起任何DVD並暫停播放,然後將其移動到一幀,並注意兩張圖像的相似程度。因此,MPEG-4(和其他壓縮標準)不是獨立編碼每個幀,而是僅編碼連續幀之間的差異(使用motion estimation找出幀之間的差異)。
空間冗餘利用了這樣的事實:遍佈圖像的色彩趨向於相當低的頻率。我的意思是說,相鄰的像素傾向於具有相似的顏色。例如,在穿着紅色跳線的圖像中,代表跳線的所有像素顏色都非常相似。可以使用DCT將像素值轉換爲頻率空間,其中可以丟棄一些高頻信息。然後,當執行反向DCT(在解碼期間)時,圖像現在沒有被丟棄的高頻信息。
要查看扔掉高頻信息的影響,開MS油漆和繪製一系列重疊的水平和垂直黑線的。將圖像保存爲JPEG(也使用DCT進行壓縮)。現在放大圖案,注意線條的邊緣如何不再尖銳,並且有點模糊。這是因爲一些高頻信息(從黑色到白色的過渡)在壓縮過程中被丟棄。Read this for an explanation with nice pictures
對於進一步閱讀,this book是相當不錯的,如果有點沉重的數學。
像任何其他流行的視頻編解碼器一樣,MPEG4使用discrete cosine transform和各種運動補償技術(如果有幫助,您可以將其視爲運動預測)的變體,以減少後續幀所需的數據量。 This page概述了普通MPEG4的功能。
這與JPEG使用的技術並不完全不一樣。
鋒利的邊緣肯定包含高頻率。減少或消除高頻會降低邊緣的清晰度。包括尖銳邊緣在內的精細細節可以高頻移除 - 可以解決2個小物體被高頻移除 - 然後您只能看到一個。
- 1. 將壓縮幀寫入mpeg4 chuncks C++
- 2. LZMA壓縮方法如何工作?
- 3. Zip文件壓縮如何工作?
- 4. KOA-壓縮不工作
- 5. 壓縮域中的運動檢測(JPEG/Mpeg4/H264)
- 6. Tomcat和壓縮:CSS/JS壓縮工作...有時
- 7. Django的multivaluefield&multiwidget - 壓縮和/或解壓縮不工作
- 8. 壓縮正在工作,但解壓縮不是
- 9. 如何解壓縮壓縮的內核
- 10. Jammit壓縮工作在開發模式,但不是作爲壓縮JS
- 11. Gzip壓縮不工作通過HTTPS
- 12. 的zlib壓縮在java中不工作
- 13. 啓用gzip壓縮不工作
- 14. 在socket.io,壓縮perMessageDeflate不工作
- 15. PNG壓縮在opencart不工作
- 16. npm安裝不工作gzipped壓縮包
- 17. Express.js壓縮模塊不工作
- 18. rsync壓縮及其工作原理
- 19. 如何壓縮viewstate
- 20. 如何壓縮流?
- 21. 如何壓縮javascript?
- 22. 如何壓縮UIImage?
- 23. 如何壓縮CSS
- 24. 如何測試日誌壓縮是否在卡夫卡工作?
- 25. 澄清的壓縮/歸檔文件是如何工作的
- 26. Google的Page Speed無損圖像壓縮是如何工作的?
- 27. 如何在IIS7中獲得gzip壓縮的工作?
- 28. 如何移動文件到壓縮解壓縮,拉鍊CMD工具
- 29. 7zip的自解壓壓縮文件不工作
- 30. 代碼壓縮工具
尖銳的邊緣不是高頻的,因爲它們不重複。它們實際上是每個頻率的總和,這就是爲什麼DCT壓縮和某些圖像縮放會在線條周圍增加噪點而不是模糊它們。 – 2009-04-28 02:03:39