VC-1
VC-1
VC-1,全名VC-1視訊編解碼器(Video Codec 1),是微軟所開發的視頻編解碼系統。2003年提出標準化申請,最早名字是VC-9。2006年4月正式通過成為標準。微軟是在2003年9月遞交VC-1編碼格式(開發代號Corona)的,VC-1基於微軟Windows Media Video 9(WMV9)格式,而WMV9格式現在已經成為VC-1標準的實際執行部分。直到2006年初,活動圖像和電視工程師協會(SMPTE)才正式頒布了由微軟提出並開發的VC-1視頻編碼標準,VC-1被頒布為標準后,SMPTE仍會收取授權費,微軟則可從專利中獲取一定的版稅。
VC-1是最後被認可的高清編碼格式,不過因為有微軟的後台,所以這種編碼格式不能小窺。相對於MPEG2,VC-1的壓縮比更高,但相對於H.264而言,編碼解碼的計算則要稍小一些,目前來看,VC-1可能是一個比較好的平衡,輔以微軟的支持,應該是一隻不可忽視的力量。一般來說,VC-1多為“.wmv”後綴,但這都不是絕對的,具體的編碼格式還是要通過軟體來查詢。
總的來說,從壓縮比上來看,H.264的壓縮比率更高一些,也就是同樣的視頻,通過H.264編碼演演算法壓出來的視頻容量要比VC-1的更小,但是VC-1 格式的視頻在解碼計算方面則更小一些,一般通過高性能的CPU就可以很流暢的觀看高清視頻。相信這也是目前NVIDIA Geforce 8系列顯卡不能完全解碼VC-1視頻的主要原因。
VC-l的編碼結構也是基於塊的運動補償混合編碼結構,但與H.264編碼結構有些不同(圖2),VC-l在頻率域中進行幀內預測;另外,VC-l的熵編碼採用的是自適應變長編碼。
VC-l的幀內預測採用傳統MPEG標準的預測模式,即在頻率域內進行幀內預測,在反量化前和重疊平滑化之後採用8×8塊的DC係數與AC係數的預測。
與H.246基於空間域的幀內預測相比,VC-l在預測精度和效率方面相對H.264低一些,但技術成熟,易於實現。
VC-1在宏塊劃分上只有2種:16×16和8×8。雖然VC-1的塊尺寸沒有H.264完整,但明顯的減小了計算量。
VC-1支持支持兩種內插運算:1/2像素的Bilinear內插運算和1/4像素的Bicubic內插運算。
B幀編碼位置只與兩個參考幀相關,而與時間無關;採用B幀的幀內編碼方案,在出現場景切換時提高了編碼的效率;運動矢量採用前向預測前向、後向預測後向的原則,並分別緩存運動矢量,改善了緩存質量,提高了運動矢量的連續性。
VC-l使用的濾波器採用了兩項技術:一是採用了環路濾波器,二是採用了重疊平滑技術。
在進行環路濾波操作時每隔4個像素進行一次,加快了處理速度,同時在設計時對平滑區域比較敏感,有利於改善圖像效果;採用重疊平滑技術可以消除塊對應的真實邊界和由量化導致的偽邊界造成的環路濾波失真。
VC-l變換的基本單元沒有採用固定的矩陣,而是採用自適應變換,共有8×8、8×4、4×8、4×4四種尺寸,對幀內採用4×4,對幀間採用其中任何一種,雖然提高了變換的效果,但結構較複雜。
VC-l同時允許使用死區量化器和常規均勻量化器,在大步長下採用死區量化器,而在小步長下採用均勻量化器,此外量化還考慮圖像中的雜訊和碼率控制參數調整等因素。這種靈活措施可使VC-l不管在高碼率下還是在低碼率下都能保持良好的率失真性能。
VC-1採用簡單的自適應變長編碼方案,但採用多碼錶來提高編碼效率,即對運動矢量和編碼塊的模板信息採用多碼錶中的一個,其他信息則採用比特平面編碼。