2010-03-26 103 views
18

我非常困惑,知道編解碼器內部會發生什麼。我想了解音頻編碼器和解碼器中的元素。如果你能給我提供一些鏈接,我可以找到一些好的學習材料,會很開心。從哪裏開始學習音頻或視頻編解碼器?

準確地說,我想知道編解碼器如何解析媒體文件。

+0

谷歌它..堆棧溢出不會幫助。 – raj 2010-03-26 11:06:27

+0

你有沒有探索過維基百科? – SteelBytes 2010-03-26 11:06:55

+0

探索了維基,能夠找到可用的編解碼器,但我正在探索給定的媒體文件如何識別編解碼器以及如何發揮相同。 – Vamsi 2010-03-30 04:57:49

回答

2

我通過了解了MPEG4格式定好位在MPEG4解碼器上工作。視頻和音頻有許多不同的參考(和開源實現)編碼器和解碼器。所以,打開這本書 - 從維基百科開始:它有很好的總結和鏈接(如果你很幸運的話「打開規範」)。然後擊中來源。

有很多不同的方式來編碼東西(許多涉及某種形式的壓縮,也是有損或無損的),並且整個問題通常還因複雜的框架容器和「sub格式」。

玩得開心。

  • 狄拉克:http://diracvideo.org/specifications/
  • MPEG-4:http://en.wikipedia.org/wiki/MPEG-4
  • JPEG:HTTP:// JPEG .ORG /公/ jfif.pdf
22

你的標題問起A/V壓縮,但你的意見有關分析媒體文件&識別它的編解碼器會談的其餘部分。這些是非常不同的任務:由不同組織實施的&,由大多數多媒體庫中的不同API執行,並且首先要求非常不同的技能組。

A/V文件格式與任何其他文件格式都沒有太大差別,而其他文件格式只是formal grammars。解析,驗證和生成的對象圖在概念上與其他語法沒有區別 - 實際上,它們往往比在標準CS課程中遇到的語法(編譯器,有限自動機)簡單得多。該AVI file format是一種過時的在這一點上,但我還是建議你從那裏,因爲:

  • 今天的許多更復雜的格式,像AVI的全部或部分,或者至少假設你熟悉它基本結構
  • AVI是稱爲RIFF,多媒體格式更大的家庭,你會在其他許多地方such as WAVs找到使用中的一員

編解碼器,同時,一些最複雜的算法,你」很可能在「消費者」軟件中找到。他們非常重視學術界和大公司(包括他們龐大的專利圖書館)的發展。要在編解碼器精通你需要知道的至少最基礎的:

如果你已經有一個體面的背景(例如,你已經採取了「工程師數學」的課型的一個或兩個本科層次),那麼我說的吧;許多最好的A的/ V編解碼器是開源:

  • x264(MPEG-4第10部分,也稱爲AVC)
  • LAME(MPEG-1層3,也稱爲MP3)
  • Xvid(MPEG-4第2部分,同作爲Divx和其他許多人)
  • Vorbis(替代方案中,無專利音頻編解碼器)
  • Dirac(替代方案中,基於小波無專利視頻編解碼器轉換)
9

一般來說,視頻壓縮涉及扔掉儘可能多的信息儘管對最終用戶的觀看體驗具有最小的影響。例如,使用二次採樣的YUV而不是RGB可以將視頻尺寸直接剪切一半。這是可能的,因爲人眼對顏色不敏感而不是亮度。在YUV中,Y值是亮度,U和V值表示顏色。因此,您可以丟棄一些減小文件大小的顏色信息,而觀衆不會注意到任何區別。

之後,大多數壓縮技術特別利用了2個冗餘。第一個是時間冗餘第二個是空間冗餘

時間冗餘注意到視頻序列中的連續幀非常相似。通常情況下,視頻大約爲每秒20-30幀,而在1/30秒內沒有什麼變化。拿起任何DVD並暫停播放,然後將其移動到一幀,並注意兩張圖像的相似程度。因此,而不是獨立地編碼每個幀,MPEG-4(和其他壓縮標準)僅編碼連續幀之間的差異(使用motion estimation找到幀之間的差)

空間冗餘利用這樣的事實的優點是,在一般來說,跨圖像分佈的顏色往往是相當低的頻率。我的意思是說,相鄰的像素傾向於具有相似的顏色。例如,在穿着紅色跳線的圖像中,代表跳線的所有像素顏色都非常相似。可以使用DCT將像素值轉換爲頻率空間,其中一些低頻信息可以被丟棄。然後,當執行反向DCT(在解碼期間)時,圖像現在沒有被丟棄的低頻信息。

要查看扔掉這些信息的效果,請打開MS繪畫並繪製一系列重疊的水平和垂直黑線。將圖像保存爲JPEG(也使用DCT進行壓縮)。現在放大圖案,注意線條的邊緣如何不再尖銳,並且有點模糊。這是因爲一些信息(從黑色到白色的過渡)在壓縮過程中被丟棄。閱讀this對於一個很好的圖片說明

爲進一步閱讀,this book是相當不錯的,如果有點沉重的數學。