更新时间:2022-07-26 11:38
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.264基于空间域的帧内预测相比,VC-l在预测精度和效率方面相对H.264低一些,但技术成熟,易于实现。
VC-1在宏块划分上只有2种:16×16和8×8。虽然VC-1的块尺寸没有H.264完整,但明显的减小了计算量。
VC-1支持支持两种内插运算:1/2像素的Bilinear内插运算和1/4像素的Bicubic内插运算。
VC-l的帧间预测参考帧仅由前I帧的重建帧所组成,减小了缓存容量,使编解码器的复杂性大为降低。VC-l的B帧预测编码采用前向、后向运动估计和补偿的方式,为提高编码性能主要采取了三个措施。
B帧编码位置只与两个参考帧相关,而与时间无关;采用B帧的帧内编码方案,在出现场景切换时提高了编码的效率;运动矢量采用前向预测前向、后向预测后向的原则,并分别缓存运动矢量,改善了缓存质量,提高了运动矢量的连续性。
VC-l使用的滤波器采用了两项技术:一是采用了环路滤波器,二是采用了重叠平滑技术。
在进行环路滤波操作时每隔4个像素进行一次,加快了处理速度,同时在设计时对平滑区域比较敏感,有利于改善图像效果;采用重叠平滑技术可以消除块对应的真实边界和由量化导致的伪边界造成的环路滤波失真。
VC-l变换的基本单元没有采用固定的矩阵,而是采用自适应变换,共有8×8、8×4、4×8、4×4四种尺寸,对帧内采用4×4,对帧间采用其中任何一种,虽然提高了变换的效果,但结构较复杂。
VC-l同时允许使用死区量化器和常规均匀量化器,在大步长下采用死区量化器,而在小步长下采用均匀量化器,此外量化还考虑图像中的噪声和码率控制参数调整等因素。这种灵活措施可使VC-l不管在高码率下还是在低码率下都能保持良好的率失真性能。
VC-1采用简单的自适应变长编码方案,但采用多码表来提高编码效率,即对运动矢量和编码块的模板信息采用多码表中的一个,其他信息则采用比特平面编码。