VBR
基本上影片壓縮的方式可分為VBR、ABR、CBR、CQ、CRF共5種,只有VBR需要經過多次pass,其餘只要1 pass即可完成。
VBR的1st pass工作是分析影片,確認影片每一幀的「複雜度」(complexity),在分析完過整部影片後,可以算出複雜度與設定影片檔案大小的比例,然後調整這個比例,讓所每一幀得到相對應的量化區間(Qquantizer),就可以在2nd pass時,精準地控制影片的檔案大小。
ABR
ABR的好處是可以在單一pass的情況下,控制影片大小,筆者也感到疑惑,為什麼它可以在沒有分析影片的情況下,掌控輸出影片的大小。
在壓縮影片時,為了要計算動態補償,都會預先讀取「未來」的幾張畫面(通常以1/2解析度進行),以決定「現在」處理中的畫面,該如何進行動態補償。在這個過程中,可以偷偷計算影片的複雜度,並在處理完每一畫面後,將這畫面所造成的檔案大小累加,就可以即時調整往後的資料流量,以控制輸出檔案大小。
但是ABR有個限制,就是在影片開頭和結尾附近的片段,沒辦法計算得很精準。在開頭時因為不知道「中段」會發生什麼事,說不定畫面很單純,也可能是複雜度爆表,因此在開頭的部分通常不會特別調整資料流量。在結尾的部分則是因為生米煮成熟飯,如果前面已經把儲存空間用光,結尾只能隨便壓縮一番,況且也沒有足夠的預讀畫面,來計算複雜度。