数字电视的视频压缩技术
发布网友
发布时间:2022-04-20 19:49
我来回答
共3个回答
懂视网
时间:2022-04-12 14:39
(在这里,只考虑到帧(frame)的情况,对于场(field),相互场对(complementary field pair)暂不作考虑) 1.图像序列号 POC (picture order count)解码过程. picture order count ,在解B slice时,用来决定参考picture初始化顺序; 在解时间直接模式(temporal direct
(在这里,只考虑到帧(frame)的情况,对于场(field),相互场对(complementary field pair)暂不作考虑)
1.图像序列号POC(picture order count)解码过程.
picture order count ,在解B slice时,用来决定参考picture初始化顺序; 在解时间直接模式(temporal direct mode)下的运动矢量,不直接模式(implicit mode)下的B slice权预测(weighted prediction),和解码器一致性检测(conformance checking)时,用来表现帧和场之间picture 顺序不同).
--每一个编码帧和两个picture order count 相关.称为TopFieldOrderCnt 和 BottomFieldOrderCnt,各自对应于top field 和 bottom field.
Topfiieldordercnt 和BottomFieldOrderCnt通过调用POC解码过程得到的. POC 有三种类型(type 0,1,2).
对于picx:
PicOrderCnt(picx)=min(TopFieldOrderCnt,BottomFieldOrderCnt)
DiffPicOrderCnt( pica, picb ) = PicOrderCnt( pica ) - PicOrderCnt( picb )
这三种类型的解码过程在标准的8.2.1.1, 8.2.1.2, and 8.2.1.3.
2.宏块(macroblock)到slice group映射的解码过程
这个过程时在每个slice 开始时调用的.得到MbToSliceGroupMap(宏块到所属帧组的映射表).
slice group 有6种映射模式(8.2.2.1—8.2.2.8),分别用于不同的情况编码.例如电视广播,背景相对稳定,只需传送人的头像部分的slice宏块就行了,可以选slice type 2.
3.slice 数据划分(data partition)解码过程
输入:
--slice 数据划分a层(layer)rbsp,
--当类别3(category 3)中语法元素在slice 数据中出现,slice 数据划分b层rbsp有和a层一样的slice_id.
--当类别4中的语法元素在slice数据中出现,slice数据划分c层rbsp有和a层一样的slice_id.
输出:编码slice.
当不使用slice 数据划分,编码slice表现为rbsp没有分割,包含slice 头,slice数据语法结构包含类别2,3,4中所有语法元素,宏块数据.
当使用slice数据划分,每一个类别中的语法元素分离在不同的nal单元.解码过程处理slice数据划分过程和没有划分时是等价的.
注释:语法分类3和解i,si宏块残差数据有关,4中和解p,b中的残差数据相关,2中包含所有和解码宏块相关的语法元素.
4.参考picture 列表创建的解码过程
对于P,SP帧,使用Refpiclist0,对于B使用RefPicList0,RefPicList1.
解码的参考画面(picture) 标记为使用短(short-term) 参考帧或长(long-term)参考帧两种.
短解码的参考画面通过frame_num指定,长解码的参考画面通过long term frame index 指定.
如果LongTermEntry( RefPicListx[ i ] )==1,表示是长参考帧,于LongTermPicNum相联系.
如果LongTermEntry( RefPicListx[ i ] )==0,表示是短参考帧,于PicNum相联系.
修改的参考画面数量在表(list) RefPicList0中是num_ref_idx_l0_active_minus1 + 1,在RefPicList1中是num_ref_idx_l1_active_minus1 + 1,一个参考画面可以有多个所有在流改的参考画面表RefPicList0, RefPicList1.
4.1 picture numbers 获取过程
if( framenum > frame_num )
FrameNumWrap = FrameNum – MaxFrameNum
else
FrameNumWrap = FrameNum
PicNum = FrameNumWrap
LongTermPicNum = LongTermFrameIdx
4.2 参考画面表初始化过程
对于P,SP
RefPicList0:
short-term (降序), long-term(升序),null
对于B
RefPicList0
short-term(降序) ,short-term(升序) , long-term(升序) , null
第一部分PicOrderCnt(frm )< PicOrderCnt( currpic )
第二部分PicOrderCnt(frm)> PicOrderCnt( currpic )
RefPicList1
short-term(升序) ,short-term(降序) , long-term(升序), null
第一部分PicOrderCnt(frm )> PicOrderCnt( currpic )
第二部分PicOrderCnt(frm)
4.3参考画面表重排序过程
对于短画面(short-term picture)
reordering_of_pic_nums_idc等于 0,或1
首先求出 PicNumLX
for( cIdx = num_ref_idx_lx_active_minus1 + 1; cIdx > refidxLX; cIdx-- )
RefPicListX[ cIdx ] = RefPicListX[ cIdx – 1]
RefPicListX[ refIdxLX++ ] = PicNumLX
nIdx = refIdxLX
for( cIdx = refIdxLX; cIdx <= num_ref_idx_lx_active_minus1 + 1; cIdx++ )
if( LongTermEntry( refPicListx[ cIdx ] ) | | RefPicListX[ cIdx ] != picnumlx )
RefPicListX[ nIdx++ ] = RefPicListX[ cIdx ]
对于长画面(long-term picture)
reordering_of_pic_nums_idc等于 2
for( cIdx = num_ref_idx_lx_active_minus1 + 1; cIdx > refidxLX; cIdx-- )
RefPicListX[ cIdx ] = RefPicListX[ cIdx – 1]
RefPicListX[ refIdxLX++ ] = LongTermPicNum
nIdx = refIdxLX
for( cIdx = refIdxLX; cIdx <= num_ref_idx_lx_active_minus1 + 1; cIdx++ )
if( !LongTermEntry( RefPicListX[ cIdx ] ) | | RefPicListX[ cIdx ] != LongTermPicNum )
RefPicListX[ nIdx++ ] = RefPicListX[ cIdx ]
5.解码的参考画面标记过程(marking process)
nal_ref_idc 不等于0的解码画面, 作为参考画面, 标记为短参考帧或长参考帧. 对于解码参考帧,它的两个场的标记和帧相同. 标记为长参考帧, 用LongTermFrameIdx标识,标记为短参考帧或长参考帧的帧或相互的参考场对,可以作为帧间预测的参考帧, 直到帧标记为不使用为参考帧(unused for reference).
画面标记为不使用参考帧(unused for reference),可以通过使用滑动窗口(slice windows)参考画面标记过程,一种先进先出的机制,或自适应存储画面标记过程(adaptive memory control reference picture marking process),一种自定义的自适应标记过程.
在解码过程中short-term 参考画面,使用picnum指定,long-term 参考画面使用LongTermPicNum.
热心网友
时间:2022-04-12 11:47
论文题目是:数字电视接收机的视频压缩技术
帮写内容:(1)选题依据及研究意义;
(2) 选题研究现状;
(3)研究内容(包括基本思路、框架、主要研究方式、方法
等)
一共是三点,请大家教一下我这三点该怎么写?!
注明:论文我已经写好了:下面是论文提纲(含论文选题、论文主体框架)
论文选题:数字电视接收机的视频压缩技术
第一章:绪论
一、数字电视的发展及视频压缩的必要性;
二、视频图象数字压缩的客观依据;
三、数字电视与接收机(机顶盒);
四、电视信号模数转换标准;
第二章:数字电视机顶盒技术
一、什么是数字电视机顶盒;
二、数字电视机顶盒的基本原理;
三、数字电视机顶盒的结构;
四、数字电视机顶盒的主要技术;
第三章:视频压缩编码技术
一 空间或时间性编码;
二. 加权;
三. 遍历(Scannng);
四. 熵编码;
五. 空间性编码器;
六. 时间性编码;
七. 运动补偿;
八. 双向编码;
九. I、P 和B 画面;
十. MPEG 压缩器;
十一. 预处理;
十二. 类和级;
十三. 小波;
第四章:视频图象压缩标准
一、H.261标准;
二、JPEG标准;
三、MPEG-1压缩编码标准;
四、MPEG-2压缩编码标准;
五、MPEG-4压缩编码标准;
结束语 ;
参考文献 ;
问题补充:题目是学校帮我选择的! 大家可以帮忙把这三点写一下吗? 我真不知道该怎么写! 或者大家帮我写前两点也好了~ 谢谢帮我忙的所有朋友! 拜托各位了!我开题16号就要交了
看看这个能不能帮您!
一、如何选择问题
我一起萦绕于怀的,是在写博士论文开题报告的一年多时间里,导师薛澜教授反复追问的一个问题:“你的 puzzle 是什么?”多少次我不假思索地回答“我的问题就是,中国的半导体产业为什么发展不起来。”薛老师问题以其特有的储蓄,笑而不答。我在心中既恼火又懊丧:这么简单的道理,这么明显的答案,到底哪儿不对了?!
奥妙就在于提出问题的“层次”。不同于*研究报告,学术文章聚集理论层面、解决理论问题。理论是由一系列前设和术语构造的逻辑体系。特定领域的理论有其特定的概念、范畴和研究范式。只有在相同的概念、视角和范式下,理论才能够对话;只有通过对话,理论才能够发展。极少有硕博论文是创造新理论的,能这样当然最好,但难度很大。我们多数是在既有理论的基础上加以发展,因此,在提出问题时,要以“内行”看得懂的术语和明确的逻辑来表述。审视我最初提出的问题“中国半导体产业为什么发展不起来”,这仅仅是对现象的探询,而非有待求证的理论命题。我的理论命题是:“中国产业*过程是精英主导的共识过程吗?”在这个命题中,“*过程”、“精英*”、“共识诉求”三个术语勾勒出研究的理论大体范围和视角。
其次,选择问题是一个“剥笋”的过程。理论问题总是深深地隐藏在纷繁复杂的现实背后,而发现理论问题,则需要运用理论思维的能力。理论思维的训练是一个长期积累的过程。不过初学者也不必望而却步,大体上可以分“三步走”:第一步,先划定一个“兴趣范围”,如半导体产业、信息产业、农村医疗、高等教育*等,广泛浏览相关的媒体报道、*文献和学术文章,找到其中的“症结”或“热点”。第二步,总结以往的研究者大体从哪些理论视角来分析“症结”或“热点”、运用了哪些理论工具,如公共财政的视角、社会冲突范式等。第三步,考察问题的可研究性,也就是我们自己的研究空间和研究的可行性。例如,西方的理论是否无法解释中国的问题?或者同一个问题能否用不同的理论来解释?或者理论本身的前提假设、逻辑推演是否存在缺陷?通过回答这些问题,我们找到自己研究的立足点。不过还要注意我们研究在规定的一到两年时间内,是否可能完成?资料获取是否可行?等等。
最后,如何陈述问题?陈述问题实质上就是凝练核心观点的过程。观点应当来自对现实问题的思考和总结,而不是为了套理论而“削足适履”。中国的*、经济和社会发展充满动态的、丰富的景象,如何才能用恰当的术语、准确的逻辑表述出来呢?雄心勃勃的初学者往往提出宏伟的概念或框架,但我的建议是尽可能缩小研究范围、明确研究对象,从而理清对象的内存逻辑,保证能在有限的时间内完成规范的学
术论文。如“中国半导体产业*研究”就是一个非常含糊的陈述,我们可以从几个方面来收缩话题:( 1 )时间:从 1980 年到 2000 年;( 2 )对象:*的叛乱者和决策行为,而不是市场、企业、治理结构等;( 3 )视角:*和*理论中的精英研究;( 4 )案例: 908 工程、 909 工程、 13 号文件和《电子振兴》,这是发生在 1980 - 2000 年间半导体*领域的两个重大工程和两个重要文件。通过这样的明确界定,我们将目光集中在“*过程”、“精英”、“共识”几个显而易见的概念上,问题也就水落石出了。同时,问题清楚了,我们在筛选信息和资料时也就有了明确的标准,在这个“信息冗余”的时代,能够大大提高研究效率。
二、 如何做文献综述
首先需要将“文献综述( Literature Review) ”与“背景描述 (Backupground Description) ”区分开来。我们在选择研究问题的时候,需要了解该问题产生的背景和来龙去脉,如“中国半导体产业的发展历程”、“国外*发展半导体产业的*和问题”等等,这些内容属于“背景描述”,关注的是现实层面的问题,严格讲不是“文献综述”,关注的是现实层面问题,严格讲不是“文献综述”。“文献综述”是对学术观点和理论方法的整理。其次,文献综述是评论性的( Review 就是“评论”的意思),因此要带着作者本人批判的眼光 (critical thinking) 来归纳和评论文献,而不仅仅是相关领域学术研究的“堆砌”。评论的主线,要按照问题展开,也就是说,别的学者是如何看待和解决你提出的问题的,他们的方法和理论是否有什么缺陷?要是别的学者已经很完美地解决了你提出的问题,那就没有重复研究的必要了。
清楚了文献综述的意涵,现来说说怎么做文献综述。虽说,尽可能广泛地收集资料是负责任的研究态度,但如果缺乏标准,就极易将人引入文献的泥沼。
技巧一:瞄准主流。主流文献,如该领域的核心期刊、经典著作、专职部门的研究报告、重要化合物的观点和论述等,是做文献综述的“必修课”。而多数大众媒体上的相关报道或言论,虽然多少有点价值,但时间精力所限,可以从简。怎样摸清该领域的主流呢?建议从以下几条途径入手:一是图书馆的中外学术期刊,找到一两篇“经典”的文章后“顺藤摸瓜”,留意它们的参考文献。质量较高的学术文章,通常是不会忽略该领域的主流、经典文献的。二是利用学校图书馆的“中国期刊网”、“外文期刊数据库检索”和外文过刊阅览室,能够查到一些较为早期的经典文献。三是国家图书馆,有些上世纪七八十年代甚至更早出版的社科图书,学校图书馆往往没有收藏,但是国图却是一本不少(国内出版的所有图书都要送缴国家图书馆),不仅如此,国图还收藏了很多研究中国*和*的外文书籍,从互联网上可以轻松查询到。
技巧二:随时整理,如对文献进行分类,记录文献信息和藏书地点。做博士论文的时间很长,有的文献看过了当时不一定有用,事后想起来却找不着了,所以有时记录是很有必要的。罗仆人就积累有一份研究中国*过程的书单,还特别记录了图书分类号码和藏书地点。同时,对于特别重要的文献,不妨做一个读书笔记,摘录其中的重要观点和论述。这样一步一个脚印,到真正开始写论文时就积累了大量“干货”,可以随时享用。
技巧三:要按照问题来组织文献综述。看过一些文献以后,我们有很强烈的愿望要把自己看到的东西都陈述出来,像“竹筒倒豆子”一样,洋洋洒洒,蔚为壮观。仿佛一定要向读者证明自己劳苦功高。我写过十多万字的文献综述,后来发觉真正有意义的不过数千字。文献综述就像是在文献的丛林中开辟道路,这条道路本来就是要指向我们所要解决的问题,当然是直线距离最短、最省事,但是一路上风景颇多,迷恋风景的人便往往绕行于迤逦的丛林中,反面“乱花渐欲迷人眼”,“曲径通幽”不知所终了。因此,在做文献综述时,头脑时刻要清醒:我要解决什么问题,人家是怎么解决问题的,说的有没有道理,就行了。
三、如何撰写开题报告
问题清楚了,文献综述也做过了,开题报告便呼之欲出。事实也是如此,一个清晰的问题,往往已经隐含着论文的基本结论;对现有文献的缺点的评论,也基本暗含着改进的方向。开题报告就是要把这些暗含的结论、论证结论的逻辑推理,清楚地展现出来。
写开题报告的目的,是要请老师和专家帮我们判断一下:这个问题有没有研究价值、这个研究方法有没有可能奏效、这个论证逻辑有没有明显缺陷。因此,开题报告的主要内容,就要按照“研究目的和意义”、“文献综述和理论空间”、“基本论点和研究方法”、“资料收集方法和工作步骤”这样几个方面展开。其中,“基本论点和研究方法”是重点,许多人往往花费大量笔墨铺陈文献综述,但一谈到自己的研究方法时但寥寥数语、一掠而过。这样的话,评审老师怎么能判断出你的研究前景呢?又怎么能对你的研究方法给予切实的指导和建议呢?
对于不同的选题,研究方法有很大的差异。一个严谨规范的学术研究,必须以严谨规范的方法为支撑。在博士生课程的日常教学中,有些老师致力于传授研究方法;有的则突出讨论方*的问题。这都有利于我们每一个人提高自己对研究方法的认识、理解、选择与应用,并具体实施于自己的论文工作中。
热心网友
时间:2022-04-12 13:05
本文作者王军先生,电子科技大学通信与信息工程学院通信抗干扰技术重点实验室助教、硕士;吴军蹄女士,通信与信息工程学院教授。
3 视频压缩标准
视频编码标准主要由ITU-T和ISO/IEC开发。前者已经发布了视频会议标准H.261、 H.262、 H.263,并且准备进行远期编码标准H.263L的开发,以期望获得更大的编码效率。ISO/IEC的标准系列是大家熟悉的MPEG家族。包括:
(1)MPEG-1(1988~1992),可以提供最高达1.5Mbps的数字视频,只支持逐行扫描;
(2)MPEG-2(1990~1994),支持的带宽范围从2Mbps到超过20Mbps,MPEG-2后向兼容MPEG-1,但增加了对隔行扫描的支持,并有更大的伸缩性和灵活性;
(3)MPEG-4(1994~1998),支持逐行扫描和隔行扫描,是基于视频对象的编码标准,通过对象识别提供了空间的可伸缩性;
(4)MPEG-7(1996~2000),是多媒体内容描述接口,与前述标准集中在音频/视频内容的编码和表示不同,它集中在对多媒体内容的描述。
除了上述通用标准外,还存在很多专用格式,比较流行的有:C-Cube的M-JPEG、Intel的IVI(tm)(Indeo Video Interactive)、Apple的QuickTime(tm)、Microsoft的 Media Player(tm)和RealNetworks的RealPlayer(tm)。
二 数字视频传输
根据承载网络的变化和视频服务的区别,可以将数字视频的传输分为四类:数字电视、宽带视频通信、Internet视频流通信、蜂窝移动视频通信。
虽然这四种通信体系下对视频通信的协议和服务有不同的要求,但对于实时应用下述几点是必须满足的:(1)传输必须*在一定时限内完成;(2)必须对端到端的抖动建议*;(3)必须有相应的同步机制;(4)在分组网络中应当有较高的优先级。
1 数字电视广播
欧洲走在了全球DVB开发最前面,将其采纳为数字电视DTV的标准;在美国,ATSC采用了HDTV;在亚太地区,日本采用了基于DVB和ATSC的ISDB-T,澳大利亚采用了DVB,韩国则采用了ATSC标准,我国也在制定数字电视的标准,并进行了现场试验。下面我们以欧洲的DTV标准为主分别介绍DTV系统规范和传输技术。
a.DTV系统规范
根据传输系统的不同,DTV系统分为三类:陆基系统 DTV-T、卫星系统 DTV-S、有线系统 DTV-C。这三类DTV系统虽然各有不同,但也有公共的特性,MPEG-2视频和音频编码系统是所有DTV系统的基础。系统采用MPEG-2将数据压缩并组装成分组,称为净荷。对净荷采用Reed-Solomon前向纠错编码,降低信号传输中引入的误码。
卫星系统采用单载波信号,采用外部编码的同时,内部加入了打孔卷积编码,从而又增加了一层误码纠错能力,根据带宽的变化和采用的特定设备,编码数据是可调整的,信号采用QPSK方式调制。
陆基系统联合使用码正交频分复用 COFDM或者QPSK或QAM进行射频调制,采用了和卫星系统相似的打孔卷积编码。
有线系统采用了QAM调制方案,不需要附加的内部编码来降低误码,系统优化采用64-QAM。
b. DTV系统传输结构
DTV系统广播和接收的基本结构由三个子系统构成:
(1)信源编码和压缩子系统,通过ADC接受模拟视频和音频信号并将其转换成数字比特流,然后通过MPEG-2进行压缩,并加入控制和辅助数据;
(2)服务复用和传递子系统,复用将视频和音频及辅助数据流联合构成长188字节的分组,并加上标记,分组构成单个数据流,采用MPEG-2传递系统语法控制这些复用任务;
(3)传输子系统,包括对复用数据流的信道编码和调制。
2 宽带视频通信
这里讨论的宽带视频通信主要是指基于宽带核心网络和宽带接入技术的MPEG-2视频通信。为了满足实时视频通信对带宽的需求,核心网络通常采用宽带光纤网络,可以是ATM或者基于MPLS的宽带IP与ATM的结合,最后一公里的宽带接入的方法有光纤到户、光纤到楼双绞线到户及ADSL,最近也提出了宽带无线接入技术。通常,来自多个链路的数据业务在数字用户线路接入复用器(DSLAM)汇总。DSLAM将ATM业务路由到家中的ADSL接收器单元,同时,滤掉低频段的旧电话业务POTS 。在MPEG-2视频的情形下,ATM边界设备减轻信元的时延抖动的能力至关重要。ATM必须应付数据传输的需要并提供管理每个视频流的功能,特别要满足按序提取视频分组的要求。为了补偿网络传输延时,ATM网络边界设备必须精心设计以处理MPEG交换和抖动管理。本地MPEG-2视频流通过数字视频广播异步串行接口传输。ATM边界设备将MPEG-2多节目传输流(MPTS)或单节目传输流(SPTS)拆解到节目层并最终到分组标记(PID)层。在PID层,不同的节目流可以重新排序并复用进另外的MPTS。在ATM边界接收端,另外的边界设备管理ATM信元流,并重构SPTS或MPTS。本地的服务分布网络负责在本地的UTP网络分发视频内容。功能强大的MPEG-2压缩算法结合智能的ATM边界设备允许最后接入利用DSL技术作为视频分发的接入机制。(未完待续)
相关信息:
1.前言
数字视频产品需求近些年出现猛增。主流应用包括视频通信、安全监控与工业自动化,而最热门的要算娱乐应用,如 DVD、HDTV、卫星电视、高清 (HD) 机顶盒、因特网视频流、数码相机与 HD 摄像机、视频光盘库 (video jukebox)、高端显示器(LCD、等离子显示器、DLP)以及个人摄像机等。众多精彩的新应用目前也处于设计或前期部署中,例如针对家庭与手持设备及地面/卫星标准(DVB-T、DVB-H、DMB)的高清 DVD(蓝光/HD-DVD)和数字视频广播、高清视频电话、数码相机以及 IP 机顶盒。由于手持终端计算能力的提高以及电池技术与高速无线连接的发展,最终产品的移动性与集成性也在不断提高。
视频压缩是所有令人振奋的、新型视频产品的重要动力。压缩-解压(编解码)算法可以实现数字视频的存储与传输。典型的编解码器要么采用行业标准,如 MPEG2、MPEG4、H.264/AVC 与 AVS,要么采用专有算法,如 On2、Real Video、Nancy与Windows Media Video (WMV) 等。WMV 是个例外——它最初是微软公司的专有算法,而现在则以 VC-1 的新名称在业界实现了标准化。编解码技术在过去十年中不断改进。最新的编解码技术(H.264/AVC 与 VC-1)代表着第三代视频压缩技术。这两种编解码技术利用如可编程 DSP 与ASIC 等低成本 IC 的处理能力,都能够达到极高的压缩比。不过,为具体应用选择正确的编解码器并优化其实时处理仍然是一项巨大的挑战。最佳的设计必须权衡压缩效率及可用的计算能力。此外,如何在计算能力有限的情况下获得最佳压缩效率也是一门大学问。
在本文中,我们首先概述视频编码的主要概念,同时介绍传统压缩标准。然后我们重点介绍其中包括 H.264/AVC、WMV9/VC-1与AVS 等在内的最新编解码技术的功能,此外,还将深入探讨压缩能力与复杂性之间的权衡。最后,讨论市场中可能会影响主流视频编解码器未来的实时处理与主要趋势。
数字视频的主要挑战在于原始或未压缩的视频需要存储或传输大量数据。例如,标准清晰度的 NTSC 视频的数字化一般是每秒 30 帧速率,采用 4:2:2 YcrCb 及 720(480,其要求超过 165Mbps 的数据速率。保存 90 分钟的视频需要 110GB 空间,或者说超过标准 DVD-R 存储容量的 25 倍。即使是视频流应用中常用的低分辨率视频(如:CIF:352x288 4:2:0、30 帧/秒)也需要超过 36.5Mbps 的数据速率,这是 ADSL 或 3G 无线等宽带网络速度的许多倍。目前的宽带网可提供 1~10Mbps 的持续传输能力。显然数字视频的存储或传输需要采用压缩技术。
视频压缩的目的是对数字视频进行编码——在保持视频质量的同时占用尽可能少的空间。编解码技术理论依据为信息理论的数学原理。不过,开发实用的编解码技术需要艺术性的精心考虑。
3. 压缩权衡
在选择数字视频系统的编解码技术时需要考虑诸多因素。主要因素包括应用的视频质量要求、传输通道或存储介质所处的环境(速度、时延、错误特征)以及源内容的格式。同样重要的还有预期分辨率、目标比特率、色彩深度、每秒帧数以及内容和显示是逐行扫描还是隔行扫描。压缩通常需要在应用的视频质量要求与其他需求之间做出取舍。首先,用途是存储还是单播、多播、双向通信或广播?对于存储应用,到底有多少可用的存储容量以及存储时间需要多久?对于存储之外的应用,最高比特率是多少?对于双向视频通信,时延容差或容许的端到端系统延迟是多少?如果不是双向通信,内容需要在脱机状态提前完成编码还是需要实时编码?网络或存储介质的容错能力如何?根据基本目标应用,不同压缩标准以不同方式处理这些问题的权衡。
另一方面是需要权衡编解码实时处理的成本。如 H.264/AVC 或 WMV9/VC-1等能够实现较高压缩比的新算法需要更高的处理能力,这会影响编解码器件的成本、系统功耗以及系统内存。
4. 标准化机构
在视频编解码技术定义方面有两大标准机构。国际电信联盟 (ITU) 致力于电信应用,已经开发了用于低比特率视频电话的 H.26x 标准,其中包括 H.261、H.262、H.263 与 H.264;国际标准化组织 (ISO) 主要针对消费类应用,已经针对运动图像压缩定义了 MPEG 标准。MPEG 标准包括 MPEG1、MPEG2 与 MPEG4。图 1 说明了视频编解码标准的发展历程。
MPEG 与 ISO 根据基本目标应用往往做出稍有不同的取舍。有时它们也会开展合作,如:联合视频小组 (JVT),该小组定义了 H.264 编解码技术,这种技术在 MPEG 系列中又被称为 MPEG4-Part 10 或 MPEG4 高级视频编解码 (AVC)。我们在本文中将这种联合标准称为 H.264/AVC。同样,H.262 对应 MPEG2,而 H.263 基本规范类 (Baseline Profile) 技术在原理方面与 MPEG4 简单类 (Simple Profile) 编解码技术存在较多重复。
标准对编解码技术的普及至关重要。出于规模经济原因,用户根据可承受的标准寻找相应产品。由于能够保障厂商之间的互操作性,业界乐意在标准方面进行投资。而由于自己的内容可以获得较长的生命周期及广泛的需求,内容提供商也对标准青睐有加。尽管几乎所有视频标准都是针对少数特定应用的,但是在能够适用的情况下,它们在其他应用中也能发挥优势。
图1:ITU 与 MPEG 标准的发展历程 [10]
为了实现更好的压缩及获得新的市场机遇,ITU 与 MPEG 一直在不断发展压缩技术和开发新标准。中国最近开发了一种称为 AVS 的国家视频编码标准,我们在后面也会做一介绍。目前正在开发的标准包括 ITU/MPEG 联合可扩展视频编码 (Joint Scalable Video Coding)(对 H264/ AVC 的修订)和MPEG 多视角视频编码 (Multi-view Video Coding)。另外,为了满足新的应用需求,现有标准也在不断发展。例如,H.264 最近定义了一种称为高精度拓展 (Fidelity Range Extensions) 的新模式,以满足新的市场需求,如专业数字编辑、HD-DVD 与无损编码等。
除了 ITU 与 ISO 开发的行业标准以外,还出现了几种专用于因特网流媒体应用、广受欢迎的专有解决方案,其中包括 Real Networks Real Video (RV10)、Microsoft Windows Media Video 9 (WMV9) 系列、ON2 VP6 以及 Nancy。由于这些格式在内容中得到了广泛应用,因此专有编解码技术可以成为业界标准。2003 年 9 月,微软公司向电影与电视工程师学会 (SMPTE) 提议在该机构的支持下实现 WMV9 位流与语法的标准化。该提议得到了采纳,现在 WMV9 已经被 SMPTE 作为 VC-1 实现标准化。
5. 视频编码原理
我们感兴趣的所有视频标准都采用基于模块的处理方式。每个宏模块一般包含 4 个 8(8 的光度块和 2 个 8(8 的色度块(4:2:0 色度格式)。视频编码基于运动补偿预测(MC),变换与量化及熵编码。图 2 说明的是一种典型的、基于运动补偿的视频编解码技术。在运动补偿中,通过预测与最新编码的("参考")视频帧处于同一区域的视频帧中各宏模块的像素来实现压缩。例如,背景区域通常在各帧之间保持不变,因此不需要在每个帧中重新传输。运动估计 (ME) 是确定当前帧——即与它最相似的参考帧的 16(16 区域中每个 MB 的过程。ME 通常是视频压缩中最消耗性能的功能。有关当前帧中各模块最相似区域相对位置的信息("运动矢量")被发送至解码器。
MC 之后的残差部分分为 8(8 的模块,各模块综合利用变换编码、量化编码与可变长度编码技术进行编码。变换编码(如:离散余弦变换或 DCT)利用残差信号中的空间冗余。量化编码可以消除感知冗余 (perceptual rendancy) 并且降低编码残差信号所需要的数据量。可变长度编码利用残差系数的统计性质。通过 MC 进行的冗余消除过程在解码器中以相反过程进行,来自参考帧的预测数据与编码后的残差数据结合在一起产生对原始视频帧的再现 。
图 2:标准运动补偿视频编码
在视频编解码器中,单个帧可以采用三个模式中的一个进行编码 —— 即 I、P 或 B 帧模式(见图 3)。几个称为 Intra (I) 的帧单独编码,无需参考任何其他帧(无运动补偿)。某些帧可以利用 MC 编码,以前一个帧为参考(前向预测)。这些帧称为预测帧 (P)。
B 帧或双向预测帧通过之前的帧以及当前帧的后续帧进行预测。B 帧的优势是能够匹配堵塞在采用前向预测的上一帧中的背景区域。双向预测通过平衡前向及后向预测可以降低噪声。在编码器中采用这种功能会要求更多处理量,因为必须同时针对前向及后向预测执行 ME,而这会明显使运动估计计算需求加倍。为了保存两个参考帧,编码器与解码器都需要更多内存。B 帧工具需要更复杂的数据流,因为相对采集及显示顺序而言,帧不按顺序解码。这个特点会增加时延,因此不适合实时性较高的应用。B 帧不用于预测,因此可以针对某些应用进行取舍。例如,在低帧速应用中可以跳过它们而不会影响随后 I 与 P 帧的解码。
图3:I、P 与 B 帧间预测图示
6. 传统视频编码标准
H.261
ITU 编制的 H.261[2] 标准是第一个主流视频压缩标准。它主要针对双工视频会议应用,是为支持 40kpbs~2Mbps 的 ISDN 网络而设计的。H.261 支持 352(288 (CIF) 及 176(144 (QCIF) 分辨率,色度分辨率二次采样为 4:2:0。由于可视电话需要同步实时编解码,因此复杂性设计得较低。由于主要用于对延迟敏感的双向视频,因此 H.261 仅允许采用 I 与 P 帧,而不允许 B 帧。
H.261 采用基于块的 DCT 进行残差信号的变换编码。DCT 把像素的每个 8(8 块映射到频域,产生 64 个频率成分(第一个系数称为 DC,其他的称为 AC)。为了量化 DCT 系数,H.261 在所有 AC 系数中采用固定的线性量化。量化后的系数进行行程编码,其可以按非零系数描述量化的频率,后面跟随一串零系数,在最后一个非零值之后以块代码结束。最后,可变长度编码 (Huffman) 将运行级别对 (run-level pair) 转换成可变长度编码 (VLC),其比特长度已针对典型概率分布进行过优化。
基于标准块的编码最终产生模块化视频。H.261 标准利用环路滤波避免这种现象。在模块边缘采用的简单 2D FIR 滤波器用于平滑参考帧中的量化效应。必须同时在编码器及解码器中精确地对每个比特应用上述滤波。
MPEG-1
MPEG-1[3] 是 ISO 开发的第一个视频压缩算法。主要应用是数字媒体上动态图像与音频的存储与检索,如速率为 1.15Mbps、采用 SIF 分辨率(352(240 - 29.97fps 或者 352(288 - 25 fps)的VCD。MPEG-1 与 H.261 相似,不过编码器一般需要更高的性能,以便支持电影内容的较高运动性而不是典型的可视电话功能。
与 H.261 相比,MPEG1 允许采用 B 帧。另外它还采用自适应感知量化,也就是说,对每个频段采用单独的量化比例因子(或等步长),以便优化人们的视觉感受。MPEG-1 仅支持逐行视频,因此新标准——MPEG2 已经开始做出努力,同时支持分辨率及比特率更高的逐行与隔行视频。
MPEG-2/H.262
MPEG-2[4] 专门针对数字电视而开发,很快成为了迄今最成功的视频压缩标准。MPEG-2 既能够满足标准逐行视频的需求(其中视频序列由一系列按一定时间间隔采集的帧构成),又能够满足电视领域常用的隔行视频的需求。隔行视频交替采集及显示图像中两组交替的像素(每组称为一个场)。这种方式尤其适合电视显示器的物理特性。MPEG2 支持标准的电视分辨率,其中包括:针对美国和日本采用的 NTSC 制式隔行 720(480 分辨率,每秒 60 场,以及欧洲和其他国家采用的PAL 制式的 720(576 分辨率,每秒 50 场。
MPEG-2 建立在 MPEG-1 基础之上,并具备扩展功能,能支持隔行视频及更宽的运动补偿范围。由于高分辨率视频是非常重要的应用,因此 MPEG-2 支持的搜索范围远远大于 MPEG-1。与之前的标准相比,它显著提高了运动估计的性能要求,并充分利用更宽搜索范围与更高分辨率优势的编码器需要比 H.261 和 MPEG-1 高得多的处理能力。MPEG2 中的隔行编码工具包含优化运动补偿的能力,同时支持基于场和基于帧的预测,而且同时支持基于场和基于帧的 DCT/IDCT。MPEG-2 在 30:1 左右的压缩比时运行良好。MPEG-2 在 4-8Mbps 时达到的质量适合消费类视频应用,因此它很快在许多应用中得到普及,如:数字卫星电视、数字有线电视、DVD 以及后来的高清电视等。
另外,MPEG-2 增加了分级视频编码工具,以支持多层视频编码,即:时域分级、空域分级、SNR 分级以及数据分割。尽管 MPEG-2 中针对分级视频应用定义了相关类别 (profile),不过支持单层编码的主类 (Main Profile) 是当今大众市场中得到广泛应用的唯一 MPEG-2 类。MPEG-2 通常称为 MPEG-2 主类。
MPEG-2 解码最初对于通用处理器及 DSP 具有很高的处理要求。优化的固定功能 MPEG-2 解码器开发已问世,由于使用量较高,成本已逐渐降低。MPEG2 证明低成本芯片解决方案的供应是视频编解码标准成功和普及的关键。
H.263
H.263[5] 在 H.261 之后得到开发,主要是为了以更低的比特率实现更高的质量。其主要目标之一是基于普通 28.8Kbps 电话调制解调器的视频。目标分辨率是 SQCIF (128(96)~CIF (352(288)。其基本原理与 H.261 大同小异。
H.263 的运动矢量在两个方向上允许是 1/2 的倍数(“半像素”),参考图像以数字方式内插到更高的分辨率。这种方法可以提高 MC 精度及压缩比。MV 可采用更大的范围。为不同方案提供许多新的选项,包括:
* 4 个运动矢量——每个块采用一个运动矢量,而非整个 MB 采用单个运动矢量。
* 3D VLC:Huffman 编码——将块结束 (EOB) 指示符与每个运行级别对结合在一起。这种功能主要用于低比特率,这时大多时候只有一、两个编码系数。
尽管存在这些功能,但是仍然很难在普通电话线上实现理想的视频质量,而且目前基于标准调制解调器的可视电话仍然是一个难题。不过,由于 H.263 一般情况下可提供优于 H.261 的效率,它成为了电视会议首选的算法,但是,为了兼容旧系统,仍然需要支持 H.261。H.263 逐渐发展成为了 H.263+,其增加了可选的附件,为提高压缩并实现分组网的鲁棒性提供支持。H.263 及其附件构成了 MPEG-4 中许多编码工具的核心。
MPEG-4
MPEG-4[6] 由 ISO 提出,以延续 MPEG-2 的成功。一些早期的目标包括:提高容错能力以支持无线网、对低比特率应用进行更好的支持、实现各种新工具以支持图形对象及视频之间的融合。大部分图形功能并未在产品中受到重视,相关实施主要集中在改善低比特率压缩及提高容错性上。.
MPEG-4 简化类 (SP) 以H.263为基础,为改善压缩增加了新的工具,包括:
* 无*的运动矢量:支持对象部分超出帧边界时的预测。
* 可变块大小运动补偿:可以在 16(16 或 8(8 粒度下进行运动补偿。
* 上下文自适应帧内 DCT DC/AC 预测:可以通过当前块的左右相邻块预测 DC/AC DCT 系数。
* 扩展量化 AC 系数的动态范围,支持高清视频:从 H.263 的 [-127:127] 到 [-2047, 2047]。
增加了容错功能,以支持丢包情况下的恢复,包括:
* 片断重同步 (Slice Resynchronization):在图像内建立片断 (slice),以便在出现错误后更快速的进行重新同步。与 MPEG-2 数据包大小不同,MPEG4 数据包大小与用于描述 MB 的比特数量脱离了联系。因此,不管每个 MB 的信息量多少,都可以在位流中按相同间隔进行重新同步。
* 数据分割:这种模式允许利用唯一的运动边界标记将视频数据包中的数据分割成运动部分和 DCT 数据部分。这样就可以实现对运动矢量数据更严格的检查。如果出现错误,我们可以更清楚地了解错误之处,从而避免在发现错误情况下抛弃所有运动数据。
* 可逆 VLC:VLC 编码表允许后向及前向解码。在遇到错误时,可以在下一个slice进行同步,或者开始编码并且返回到出现错误之处。
* 新预测 (NEWPRED):主要用于在实时应用中实现快速错误恢复,这些应用中的解码器在出现丢包情况下采用逆向通道向解码器请求补充信息。
MPEG-4 高级简化类 (ASP) 以简化类为基础,增加了与 MPEG-2 类似的 B 帧及隔行工具(用于Level 4 及以上级别)。另外它还增加了四分之一像素运动补偿及用于全局运动补偿的选项。MPEG-4 高级简化类比简化类的处理性能要求更高,而且复杂性与编码效率都高于 MPEG-2。
MPEG-4 最初用于因特网数据流,例如,已经被 Apple 的 QuickTime 播放器采用。MPEG-4 简化类目前在移动数据流中得到广泛应用。MPEG-4 ASP 是已经流行的专有 DivX 编解码器的基石。
工具与压缩增益
当我们查看 H.261、MPEG1、MPEG2 与 H.263 视频编解码技术中引入的功能时,明显可以发现几种基本技巧提供了大部分压缩增益。图 4 说明这些技巧及其相关效果。与 4 个运动矢量以及四分之一像素运动补偿等工具相比,运动补偿(整数像素与半像素)的效果显然更为突出。
图 4:基本技巧的效果:1) 无 MC;2) 增加 Skip 模式构成 CR 编码器;3) 仅允许零 MV;4) 允许整数像素 MC;5) 允许半像素 MC;6) 允许 4-MV;7) 允许四分之一像素MC。如欲了解有关详细说明,敬请参见 [7]。
7. H.264/ MPEG4-AVC
视频编码技术在过去几年最重要的发展之一是由 ITU 和 ISO/IEC 的联合视频小组 (JVT) 开发了 H.264/MPEG-4 AVC[8] 标准。在发展过程中,业界为这种新标准取了许多不同的名称。ITU 在 1997 年开始利用重要的新编码工具处理 H.26L(长期),结果令人鼓舞,于是 ISO 决定联手 ITU 组建 JVT 并采用一个通用的标准。因此,大家有时会听到有人将这项标准称为 JVT,尽管它并非正式名称。ITU 在 2003 年 5 月批准了新的 H.264 标准。ISO 在 2003 年 10 月以 MPEG-4 Part 10、高级视频编码或 AVC 的名称批准了该标准。
H.264/AVC 在压缩效率方面取得了巨大突破,一般情况下达到 MPEG-2 及 MPEG-4 简化类压缩效率的大约 2 倍。在 JVT 进行的正式测试中 [9],H.264 在 85 个测试案例中有 78% 的案例实现 1.5 倍以上的编码效率提高,77% 的案例中达到 2 倍以上,部分案例甚至高达 4 倍。H.264 实现的改进创造了新的市场机遇,如:
* 600Kbps 的 VHS 品质视频。可以通过 ADSL 线路实现视频点播。
* 高清晰电影无需新的激光头即可适应普通 DVD。
H.264 标准化时支持三个类别:基本类、主类及扩展类。后来一项称为高保真范围扩展 (FRExt) 的修订引入了称为高级类的 4 个附加类。在初期主要是基本类和主类引起了大家的兴趣。基本类降低了计算及系统内存需求,而且针对低时延进行了优化。由于 B 帧的内在时延以及 CABAC 的计算复杂性,因此它不包括这两者。基本类非常适合可视电话应用以及其他需要低成本实时编码的应用。
主类提供的压缩效率最高,但其要求的处理能力也比基本类高许多,因此使其难以用于低成本实时编码和低时延应用。广播与内容存储应用对主类最感兴趣,它们是为了尽可能以最低的比特率获得最高的视频质量。
尽管 H.264 采用与旧标准相同的主要编码功能,不过它还具有许多与旧标准不同的新功能,它们一起实现了编码效率的提高。图 5 的编码器框图总结了其主要差别,概述如下:
帧内预测与编码:H.264 采用空域帧内预测技术来预测相邻块邻近像素的 Intra-MB 中的像素。它对预测残差信号和预测模式进行编码,而不是编码块中的实际像素。这样可以显著提高帧内编码效率。
帧间预测与编码:H.264 中的帧间编码采用了旧标准的主要功能,同时也增加了灵活性及可操作性,包括适用于多种功能的几种块大小选项,如:运动补偿、四分之一像素运动补偿、多参考帧、通用 (generalized) 双向预测和自适应环路去块。
可变矢量块大小:允许采用不同块大小执行运动补偿。可以为小至 4(4 的块传输单个运动矢量,因此在双向预测情况下可以为单个 MB 传输多达 32 个运动矢量。另外还支持 16(8、8(16、8(8、8(4 和 4(8 的块大小。降低块大小可以提高运动细节的处理能力,因而提高主观质量感受,包括消除较大的块化失真。
四分之一像素运动估计:通过允许半像素和四分之一像素运动矢量分辨率可以改善运动补偿。
多参考帧预测:16 个不同的参考帧可以用于帧间编码,从而可以改善视频质量的主观感受并提高编码效率。提供多个参考帧还有助于提高 H.264 位流的容错能力。值得注意的是,这种特性会增加编码器与解码器的内存需求,因为必须在内存中保存多个参考帧。
自适应环路去块滤波器:H.264 采用一种自适应解块滤波器,它会在预测回路内