同樣是H.264/AVC的編碼標準,實際上壓縮出來的大小與品質還是會有很大的差異而造成這些差異的因素有很多樓主題到的B frame,實際上是以雙向去預測畫面內容的編碼方式再H.264中,除了B frame之外還有I frame以及P frame所謂的I frame是指畫面內(intra frame)的編碼,並未考慮畫面與畫面間的相似度(或稱關聯性,correlation)就類似單張圖片的壓縮,只是使用的壓縮技術和JPEG非常不同就是了至於P frame,就是單方向預測畫面的內容舉例來說,在時間為t的畫面已經用I frame編碼完成,在t+1的畫面編碼器會參考在時間點為t的I frame以編碼的畫面,去找出t和t+1這兩張畫面的關聯性如果這兩張畫面幾乎一樣,則代表畫面的變動性很小,t+1這張畫面所需的編碼資訊就很小有沒有B frame會差很多?第一,在H.264原始的規格中,去尋找兩張畫面間的關聯性的演算法極其複雜而B frame是參考前後兩張畫面,所以複雜度會高於P frame許多,也需要更多的記憶體來儲存編碼資訊對硬體實現上會增加難度第二,如果沒有B frame,壓縮的大小會差很多?如果編碼器的參數(量化品質,影片大小,運動向量估測範圍....)都相同的話以我的印象(看paper的),沒有B frame的話並不會讓影片編碼後大小增加到一倍那麼多連P frame都取消才會大幅增加編碼的位元率如果有興趣,可以去下載H.264 reference software JM自己做測試解釋了這麼多,對於canon H.264檔案肥大的問題除了取消B frame之外,還有更多可能的因素為了降低演算法的複雜度,以降低晶片的功率,H.264原始演算法一定有更多部分被精簡預設的編碼品質可能也比較高,諸多因素才造成檔案相對肥大
centerseed wrote:同樣是H.264/A...(恕刪) 感謝您專業的回答.您提到的Canon 的DiGIC 4壓縮法則的使用上, 在Dpreview上有人討論過了,Dpreview上關於Canon DiGIC 4壓縮法則討論danperth用了H264visa來分析Canon 5D的影片檔, 發現他是有I-frame及P-frame的. 而欠缺B-frame的能力則是Canon自己在日經上承認的.依您的專業意見, 我相信Canon DiGIC 4這顆影像處理引擎有可能在本身運算能量嚴重不足的情況下, 更精簡了其他重要的關鍵因素, 讓他的壓縮效率如此的差勁.Canon 是可以繼續聲稱他的DiGIC 4擁有H.264的壓縮能力, 但是是非常違背消費者期望的H.264壓縮. 高效率的壓縮軟體兩個原則就是畫質的不因壓縮而大幅劣化和檔案大小的大幅度縮減, Canon的DiGIC 4的H.264壓縮效率(檔案縮小)搞得跟Motion JPEG差不多. 這算甚麼?
或許在相同的檔案大小上,H.264還是可以比MJPEG有更好的影像品質也或者canon在預設的壓縮品質就比較高,造成檔案的肥大在編碼上,常常某些影片下即使差了5到10dB,在不特別注意的情形下也不會發現品質有大量的下降(在做演算法階段的快速演算法時,降超過0.2dB就已經不太好了)但是會造成檔案大小的差別當然,影響檔案大小的因素實在很多也牽涉到硬體層面(沒有實際接觸,不過想起來就很複雜)如果canon的H.264畫質沒有特別突出,那其影像處理能力似乎有待加強不過看大家對無敵兔的錄影畫質也有著很高的評價這是不是就不同家廠商對視訊壓縮採取不同的方式,所造成的差異性呢?