﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客--文章分类-视频处理</title><link>http://www.cppblog.com/guanchanghui/category/2635.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 21 May 2008 14:38:27 GMT</lastBuildDate><pubDate>Wed, 21 May 2008 14:38:27 GMT</pubDate><ttl>60</ttl><item><title>H.264简介</title><link>http://www.cppblog.com/guanchanghui/articles/12685.html</link><dc:creator>asdfastone</dc:creator><author>asdfastone</author><pubDate>Mon, 18 Sep 2006 07:56:00 GMT</pubDate><guid>http://www.cppblog.com/guanchanghui/articles/12685.html</guid><description><![CDATA[
		<div class="postText">
				<p align="left">H.264/MPEG-4 AVC（H.264）是1995年自MPEG-2视频压缩标准发布以后的最新、最有前途的视频压缩标准。H.264是由ITU-T和ISO/IEC的联合开发组共同开发的最新国际视频编码标准。通过该标准，在同等图象质量下的压缩效率比以前的标准提高了2倍以上，因此，H.264被普遍认为是最有影响力的行业标准。<?XML:NAMESPACE PREFIX = O /?><o:p></o:p></p>
				<h2>一、H.264的发展历史<o:p></o:p></h2>
				<p align="left">　　H.264在1997年ITU的视频编码专家组（Video Coding Experts Group）提出时被称为H<?XML:NAMESPACE PREFIX = ST1 /?><st1:chmetcnv unitname="l" sourcevalue=".26" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">.26L</st1:chmetcnv>，在ITU与ISO合作研究后被称为MPEG4 Part10（MPEG4 AVC）或H.264（JVT）。<o:p></o:p></p>
				<p align="left">
						<o:p>
								<?XML:NAMESPACE PREFIX = V /?>
								<v:shapetype>
										<v:stroke joinstyle="miter">
										</v:stroke>
										<v:formulas>
												<v:f eqn="if lineDrawn pixelLineWidth 0">
												</v:f>
												<v:f eqn="sum @0 1 0">
												</v:f>
												<v:f eqn="sum 0 0 @1">
												</v:f>
												<v:f eqn="prod @2 1 2">
												</v:f>
												<v:f eqn="prod @3 21600 pixelWidth">
												</v:f>
												<v:f eqn="prod @3 21600 pixelHeight">
												</v:f>
												<v:f eqn="sum @0 0 1">
												</v:f>
												<v:f eqn="prod @6 1 2">
												</v:f>
												<v:f eqn="prod @7 21600 pixelWidth">
												</v:f>
												<v:f eqn="sum @8 21600 0">
												</v:f>
												<v:f eqn="prod @7 21600 pixelHeight">
												</v:f>
												<v:f eqn="sum @10 21600 0">
												</v:f>
										</v:formulas>
										<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect">
										</v:path>
										<o:lock v:ext="edit" aspectratio="t">
										</o:lock>
								</v:shapetype>
								<v:shape>
										<v:imagedata>
										</v:imagedata>
								</v:shape>
						</o:p>
				</p>
				<div align="center">
						<table cellspacing="5" cellpadding="0" border="0">
								<tbody>
										<tr>
												<td>
														<p align="left">
																<v:shapetype>
																		<v:stroke joinstyle="miter">
																		</v:stroke>
																		<v:formulas>
																				<v:f eqn="if lineDrawn pixelLineWidth 0">
																				</v:f>
																				<v:f eqn="sum @0 1 0">
																				</v:f>
																				<v:f eqn="sum 0 0 @1">
																				</v:f>
																				<v:f eqn="prod @2 1 2">
																				</v:f>
																				<v:f eqn="prod @3 21600 pixelWidth">
																				</v:f>
																				<v:f eqn="prod @3 21600 pixelHeight">
																				</v:f>
																				<v:f eqn="sum @0 0 1">
																				</v:f>
																				<v:f eqn="prod @6 1 2">
																				</v:f>
																				<v:f eqn="prod @7 21600 pixelWidth">
																				</v:f>
																				<v:f eqn="sum @8 21600 0">
																				</v:f>
																				<v:f eqn="prod @7 21600 pixelHeight">
																				</v:f>
																				<v:f eqn="sum @10 21600 0">
																				</v:f>
																		</v:formulas>
																		<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect">
																		</v:path>
																		<o:lock v:ext="edit" aspectratio="t">
																		</o:lock>
																</v:shapetype>
																<o:p>
																</o:p>
														</p>
												</td>
										</tr>
								</tbody>
						</table>
				</div>
				<h3>
						<font face="Times New Roman">H.264</font>的高级技术背景<o:p></o:p></h3>
				<p align="left">H.264标准的主要目标是：与其它现有的视频编码标准相比，在相同的带宽下提供更加优秀的图象质量。<o:p></o:p></p>
				<p align="left">而，H.264与以前的国际标准如H.263和MPEG-4相比，最大的优势体现在以下四个方面：<o:p></o:p></p>
				<p align="left">1． 将每个视频帧分离成由像素组成的块，因此视频帧的编码处理的过程可以达到块的级别。<o:p></o:p></p>
				<p align="left">2． 采用空间冗余的方法，对视频帧的一些原始块进行空间预测、转换、优化和熵编码（可变长编码）。<o:p></o:p></p>
				<p align="left">3． 对连续帧的不同块采用临时存放的方法，这样，只需对连续帧中有改变的部分进行编码。该算法采用运动预测和运动补偿来完成。对某些特定的块，在一个或多个已经进行了编码的帧执行搜索来决定块的运动向量，并由此在后面的编码和解码中预测主块。<o:p></o:p></p>
				<p align="left">4． 采用剩余空间冗余技术，对视频帧里的残留块进行编码。例如：对于源块和相应预测块的不同，再次采用转换、优化和熵编码。<o:p></o:p></p>
				<h3>
						<font face="Times New Roman">H.264</font>的特征和高级优势<o:p></o:p></h3>
				<p align="left">H.264是国际标准化组织（ISO）和国际电信联盟（ITU）共同提出的继MPEG4之后的新一代数字视频压缩格式，它即保留了以往压缩技术的优点和精华又具有其他压缩技术无法比拟的许多优点。<o:p></o:p></p>
				<p align="left">1．低码流（Low Bit Rate）：和MPEG2和MPEG4 ASP等压缩技术相比，在同等图像质量下，采用H.264技术压缩后的数据量只有MPEG2的1/8，MPEG4的1/3。<o:p></o:p></p>
				<p align="left">显然，H.264压缩技术的采用将大大节省用户的下载时间和数据流量收费。<o:p></o:p></p>
				<p align="left">2．高质量的图象：H.264能提供连续、流畅的高质量图象（DVD质量）。<o:p></o:p></p>
				<p align="left">3．容错能力强：H.264提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具。<o:p></o:p></p>
				<p align="left">4．网络适应性强：H.264提供了网络适应层（Network Adaptation Layer）, 使得H.264的文件能容易地在不同网络上传输（例如互联网，CDMA，GPRS，WCDMA，CDMA2000等）。<o:p></o:p></p>
				<h2>二、H.264标准概述<o:p></o:p></h2>
				<p align="left">H.264和以前的标准一样，也是DPCM加变换编码的混合编码模式。但它采用“回归基本”的简洁设计，不用众多的选项，获得比H.263++好得多的压缩性能；加强了对各种信道的适应能力，采用“网络友好”的结构和语法，有利于对误码和丢包的处理；应用目标范围较宽，以满足不同速率、不同解析度以及不同传输（存储）场合的需求。<o:p></o:p></p>
				<p align="left">技术上，它集中了以往标准的优点，并吸收了标准制定中积累的经验。与H.263 v2(H.263+)或MPEG-4简单类(Simple Profile)相比，H.264在使用与上述编码方法类似的最佳编码器时，在大多数码率下最多可节省50%的码率。H.264在所有码率下都能持续提供较高的视频质量。H.264能工作在低延时模式以适应实时通信的应用(如视频会议)，同时又能很好地工作在没有延时限制的应用，如视频存储和以服务器为基础的视频流式应用。H.264提供包传输网中处理包丢失所需的工具，以及在易误码的无线网中处理比特误码的工具。<o:p></o:p></p>
				<p align="left">在系统层面上，H.264提出了一个新的概念，在视频编码层(Video Coding Layer, VCL)和网络提取层(Network Abstraction Layer, NAL)之间进行概念性分割，前者是视频内容的核心压缩内容之表述，后者是通过特定类型网络进行递送的表述，这样的结构便于信息的封装和对信息进行更好的优先级控制。H.264的系统编码框图如图1所示。 图1 H.264系统框图<o:p></o:p></p>
				<p align="left">
						<o:p>
						</o:p>
				</p>
				<h2>三、H.264标准的关键技术<o:p></o:p></h2>
				<p align="left">      1.帧内预测编码<o:p></o:p></p>
				<p align="left">帧内编码用来缩减图像的空间冗余。为了提高H.264帧内编码的效率，在给定帧中充分利用相邻宏块的空间相关性，相邻的宏块通常含有相似的属性。因此，在对一给定宏块编码时，首先可以根据周围的宏块预测（典型的是根据左上角的宏块，因为此宏块已经被编码处理），然后对预测值与实际值的差值进行编码，这样，相对于直接对该帧编码而言，可以大大减小码率。<o:p></o:p></p>
				<p align="left">H.264提供6种模式进行4×4像素宏块预测，包括1种直流预测和5种方向预测，如图2所示。在图中，相邻块的A到I共9个像素均已经被编码，可以被用以预测，如果我们选择模式4，那么，a、b、c、d4个像素被预测为与E相等的值，e、f、g、h4个像素被预测为与F相等的值，对于图像中含有很少空间信息的平坦区，H.264也支持16×16的帧内编码。 图2 帧内编码模式<o:p></o:p></p>
				<p align="left">2.帧间预测编码<o:p></o:p></p>
				<p align="left">帧间预测编码利用连续帧中的时间冗余来进行运动估计和补偿。H.264的运动补偿支持以往的视频编码标准中的大部分关键特性，而且灵活地添加了更多的功能，除了支持P帧、B帧外，H.264还支持一种新的流间传送帧——SP帧，如图3所示。码流中包含SP帧后，能在有类似内容但有不同码率的码流之间快速切换，同时支持随机接入和快速回放模式。图3 SP-帧示意图H.264的运动估计有以下4个特性。<o:p></o:p></p>
				<p align="left">(1)不同大小和形状的宏块分割<o:p></o:p></p>
				<p align="left">对每一个16×16像素宏块的运动补偿可以采用不同的大小和形状，H.264支持7种模式，如图4所示。小块模式的运动补偿为运动详细信息的处理提高了性能，减少了方块效应，提高了图像的质量。图4 宏块分割方法<o:p></o:p></p>
				<p align="left">(2)高精度的亚像素运动补偿<o:p></o:p></p>
				<p align="left">在H.263中采用的是半像素精度的运动估计，而在H.264中可以采用1/4或者1/8像素精度的运动估值。在要求相同精度的情况下，H.264使用1/4或者1/8像素精度的运动估计后的残差要比H.263采用半像素精度运动估计后的残差来得小。这样在相同精度下，H.264在帧间编码中所需的码率更小。<o:p></o:p></p>
				<p align="left">(3)多帧预测<o:p></o:p></p>
				<p align="left">H.264提供可选的多帧预测功能，在帧间编码时，可选5个不同的参考帧，提供了更好的纠错性能，这样更可以改善视频图像质量。这一特性主要应用于以下场合：周期性的运动、平移运动、在两个不同的场景之间来回变换摄像机的镜头。<o:p></o:p></p>
				<p align="left">(4)去块滤波器<o:p></o:p></p>
				<p align="left">H.264定义了自适应去除块效应的滤波器，这可以处理预测环路中的水平和垂直块边缘，大大减少了方块效应。<o:p></o:p></p>
				<p align="left">3.整数变换<o:p></o:p></p>
				<p align="left">在变换方面，H.264使用了基于4×4像素块的类似于DCT的变换，但使用的是以整数为基础的空间变换，不存在反变换，因为取舍而存在误差的问题，变换矩阵如图5所示。与浮点运算相比，整数DCT变换会引起一些额外的误差，但因为DCT变换后的量化也存在量化误差，与之相比，整数DCT变换引起的量化误差影响并不大。此外，整数DCT变换还具有减少运算量和复杂度，有利于向定点DSP移植的优点。<o:p></o:p></p>
				<p align="left">4.量化<o:p></o:p></p>
				<p align="left">H.264中可选32种不同的量化步长，这与H.263中有31个量化步长很相似，但是在H.264中，步长是以12.5%的复合率递进的，而不是一个固定常数。<br />在H.264中，变换系数的读出方式也有两种：之字形(Zigzag)扫描和双扫描，如图6所示。大多数情况下使用简单的之字形扫描；双扫描仅用于使用较小量化级的块内，有助于提高编码效率。图6 变换系数的读出方式<o:p></o:p></p>
				<p align="left">5.熵编码<o:p></o:p></p>
				<p align="left">视频编码处理的最后一步就是熵编码，在H.264中采用了两种不同的熵编码方法：通用可变长编码（UVLC）和基于文本的自适应二进制算术编码（CABAC）。<br />在H.263等标准中，根据要编码的数据类型如变换系数、运动矢量等，采用不同的VLC码表。H.264中的UVLC码表提供了一个简单的方法，不管符号表述什么类型的数据，都使用统一变字长编码表。其优点是简单；缺点是单一的码表是从概率统计分布模型得出的，没有考虑编码符号间的相关性，在中高码率时效果不是很好。<br />因此，H.264中还提供了可选的CABAC方法。算术编码使编码和解码两边都能使用所有句法元素(变换系数、运动矢量)的概率模型。为了提高算术编码的效率，通过内容建模的过程，使基本概率模型能适应随视频帧而改变的统计特性。内容建模提供了编码符号的条件概率估计，利用合适的内容模型，存在于符号间的相关性可以通过选择目前要编码符号邻近的已编码符号的相应概率模型来去除，不同的句法元素通常保持不同的模型。<o:p></o:p></p>
				<h2>四、H.264在视频会议中的应用<o:p></o:p></h2>
				<p align="left">目前，大多数的视频会议系统均采用H.261或H.263视频编码标准，而H.264的出现，使得在同等速率下，H.264能够比H.263减小50%的码率。也就是说，用户即使是只利用 384kbit/s的带宽，就可以享受H.263下高达 768kbit/s的高质量视频服务。H.264 不但有助于节省庞大开支，还可以提高资源的使用效率，同时令达到商业质量的视频会议服务拥有更多的潜在客户。<o:p></o:p></p>
				<p align="left">目前，已经有少数几家厂商的视频会议产品支持H.264协议，厂商们致力于普及H.264这个全新的业界标准。随着其它视频会议方案厂商陆续效仿他们的做法，我们必将能全面体验H.264视频服务的优势。</p>
				<br />
				<br />
				<p id="TBPingURL">Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=673966</p>
		</div>
		<div class="postFoot">
				<script src="http://localhost:82/PromoteIcon.aspx?id=673966">
				</script>
[<a href="javascript:StorePage()">点击此处收藏本文</a>]   rstevens (小马哥)发表于 2006年04月23日 15:20:00 </div>
		<link href="http://blog.csdn.net/rstevens/Services/Pingback.aspx" rel="pingback" />
		<!--<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:dc="http://purl.org/dc/elements/1.1/"xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><rdf:Descriptionrdf:about="http://blog.csdn.net/rstevens/archive/2006/04/23/673966.aspx"dc:identifier="http://blog.csdn.net/rstevens/archive/2006/04/23/673966.aspx"dc:title="H.264简介"trackback:ping="http://tb.blog.csdn.net/TrackBack.aspx?PostId=673966" /></rdf:RDF>-->
		<script><![CDATA[unction hide(){showComment();}]]&gt;</script>
		<br />
		<div class="post">
				<div class="postTitle">相关文章：</div>
				<ul class="postText">
						<li>
								<a href="http://blog.csdn.net/quanming1119/archive/2006/04/24/675599.aspx" target="_blank">H.264简介</a> 2006-04-24 <a href="http://blog.csdn.net/quanming1119/" target="_blank">quanming1119</a></li>
						<li>
								<a href="http://blog.csdn.net/a10002/archive/2004/12/09/210570.aspx" target="_blank">视频编码标准的发展：从H.261到H.264</a> 2004-12-09 <a href="http://blog.csdn.net/a10002/" target="_blank">a10002</a></li>
						<li>
								<a href="http://blog.csdn.net/taoyinzhou/archive/2006/02/09/595466.aspx" target="_blank">H.264编码技术 </a>2006-02-09 <a href="http://blog.csdn.net/taoyinzhou/" target="_blank">taoyinzhou</a></li>
						<li>
								<a href="http://blog.csdn.net/winne_ll/archive/2004/08/04/60712.aspx" target="_blank">MPEG-4视频编码核心思想及技术研究</a> 2004-08-04 <a href="http://blog.csdn.net/winne_ll/" target="_blank">winne_ll</a></li>
						<li>
								<a href="http://blog.csdn.net/bd_lyy791128/archive/2006/04/04/650860.aspx" target="_blank">视频压缩编码问与答</a> 2006-04-04 <a href="http://blog.csdn.net/bd_lyy791128/" target="_blank">bd_lyy791128</a></li>
				</ul>
		</div>
<img src ="http://www.cppblog.com/guanchanghui/aggbug/12685.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guanchanghui/" target="_blank">asdfastone</a> 2006-09-18 15:56 <a href="http://www.cppblog.com/guanchanghui/articles/12685.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MPEG-4视频编码核心思想及技术研究</title><link>http://www.cppblog.com/guanchanghui/articles/12684.html</link><dc:creator>asdfastone</dc:creator><author>asdfastone</author><pubDate>Mon, 18 Sep 2006 07:52:00 GMT</pubDate><guid>http://www.cppblog.com/guanchanghui/articles/12684.html</guid><description><![CDATA[1 引言  
<p>　　当今时代，信息技术和计算机互联网飞速发展，在此背景下，多媒体信息已成为人类获取信息的最主要载体，同时也成为电子信息领域技术开发和研究的热点。多媒体信息经数字化处理后具有易于加密、抗干扰能力强、可再生中继等优点，但同时也伴随海量数据的产生，这对信息存储设备及通信网络均提出了很高要求，从而成为阻碍人们有效获取和使用信息的重大瓶颈。 </p><p>　　因此研究高效的多媒体数据压缩编码方法，以压缩形式存储和传输数字化的多媒体信息具有重要意义。作为多媒体技术的核心及关键，多媒体数据压缩编码近年来在技术及应用方面都取得了长足进展，它的进步和完善正深刻影响着现代社会的方方面面。</p> 　 2 视频编码研究与MPEG标准演进 <br /><p> 　人类获取的信息中70%来自于视觉，视频信息在多媒体信息中占有重要地位；同时视频数据冗余度最大，经压缩处理后的视频质量高低是决定多媒体服务质量的关键因素。因此数字视频技术是多媒体应用的核心技术，对视频编码的研究已成为信息技术领域的热门话题。 <br /></p>   　视频编码的研究课题主要有数据压缩比、压缩/解压速度及快速实现算法三方面内容。以压缩/解压后数据与压缩前原始数据是否完全一致作为衡量标准，可将数据压缩划分为无失真压缩（即可逆压缩）和有失真压缩（即不可逆压缩）两类。  
<p>　　传统压缩编码建立在仙农信息论基础之上的，以经典集合论为工具，用概率统计模型来描述信源，其压缩思想基于数据统计，因此只能去除数据冗余，属于低层压缩编码的范畴。 </p><p>　　伴随着视频编码相关学科及新兴学科的迅速发展，新一代数据压缩技术不断诞生并日益成熟，其编码思想由基于像素和像素块转变为基于内容  （content-based）。它突破了仙农信息论框架的束缚，充分考虑了人眼视觉特性及信源特性，通过去除内容冗余来实现数据压缩，可分为基于对象（object-based）和基于语义（semantics-based）两种，前者属于中层压缩编码，后者属于高层压缩编码。 </p><p> 　　与此同时，视频编码相关标准的制定也日臻完善。视频编码标准主要由ITU-T和ISO/IEC开发。ITU-T发布的视频标准有H.261、  H.262、 H.263、 H.263+、H.263++，ISO/IEC公布的MPEG系列标准有MPEG-1、 MPEG-2 、MPEG-4 和 MPEG-7，并且计划公布MPEG-21。 </p><p>　　 MPEG即Moving Picture Expert Group（运动图像专家组），它是专门从事制定多媒体视音频压缩编码标准的国际组织。 MPEG系列标准已成为国际上影响最大的多媒体技术标准，其中MPEG-1和MPEG-2是采用以仙农信息论为基础的预测编码、变换编码、熵编码及运动补偿等第一代数据压缩编码技术；MPEG-4（ISO/IEC 14496）则是基于第二代压缩编码技术制定的国际标准，它以视听媒体对象为基本单元，采用基于内容的压缩编码，以实现数字视音频、图形合成应用及交互式多媒体的集成。MPEG系列标准对VCD、DVD等视听消费电子及数字电视和高清晰度电视（DTV&amp;&amp;HDTV）、多媒体通信等信息产业的发展产生了巨大而深远的影响。</p>　 3 MPEG-4视频编码核心思想及关键技术<br />　　 3.1 核心思想 <br /><p>　　在MPEG-4制定之前，MPEG-1、MPEG-2、H.261、H.263都是采用第一代压缩编码技术，着眼于图像信号的统计特性来设计编码器，属于波形编码的范畴。第一代压缩编码方案把视频序列按时间先后分为一系列帧，每一帧图像又分成宏块以进行运动补偿和编码，这种编码方案存在以下缺陷：  </p>　　 将图像固定地分成相同大小的块，在高压缩比的情况下会出现严重的块效应，即马赛克效应； 　　<br /> 　　不能对图像内容进行访问、编辑和回放等操作；　　<br />　　未充分利用人类视觉系统（HVS，Human Visual System）的特性。<br /><br /> 　　　MPEG-4则代表了基于模型/对象的第二代压缩编码技术，它充分利用了人眼视觉特性，抓住了图像信息传输的本质，从轮廓、纹理思路出发，支持基于视觉内容的交互功能，这适应了多媒体信息的应用由播放型转向基于内容的访问、检索及操作的发展趋势。 <br />　　 
<p> 　　AV对象（AVO，Audio Visual Object）是MPEG-4为支持基于内容编码而提出的重要概念。对象是指在一个场景中能够访问和操纵的实体，对象的划分可根据其独特的纹理、运动、形状、模型和高层语义为依据。在MPEG-4中所见的视音频已不再是过去MPEG-1、MPEG-2中图像帧的概念，而是一个个视听场景（AV场景），这些不同的AV场景由不同的AV对象组成。AV对象是听觉、视觉、或者视听内容的表示单元，其基本单位是原始AV对象，它可以是自然的或合成的声音、图像。原始AV对象具有高效编码、高效存储与传输以及可交互操作的特性，它又可进一步组成复合AV对象。因此 MPEG-4标准的基本内容就是对AV对象进行高效编码、组织、存储与传输。AV对象的提出，使多媒体通信具有高度交互及高效编码的能力，AV对象编码就是MPEG-4的核心编码技术。 </p>　　MPEG-4不仅可提供高压缩率，同时也可实现更好的多媒体内容互动性及全方位的存取性，它采用开放的编码系统，可随时加入新的编码算法模块，同时也可根据不同应用需求现场配置解码器，以支持多种多媒体应用。 　　<br /><br />　　MPEG-4 采用了新一代视频编码技术，它在视频编码发展史上第一次把编码对象从图像帧拓展到具有实际意义的任意形状视频对象，从而实现了从基于像素的传统编码向基于对象和内容的现代编码的转变，因而引领着新一代智能图像编码的发展潮流。<br /><br />　　 3.2 关键技术 <br /><p>　　　　MPEG-4除采用第一代视频编码的核心技术，如变换编码、运动估计与运动补偿、量化、熵编码外，还提出了一些新的有创见性的关键技术，并在第一代视频编码技术基础上进行了卓有成效的完善和改进。下面重点介绍其中的一些关键技术。 </p>　　    1. 视频对象提取技术　<br />　　　　 MPEG-4实现基于内容交互的首要任务就是把视频/图像分割成不同对象或者把运动对象从背景中分离出来，然后针对不同对象采用相应编码方法，以实现高效压缩。因此视频对象提取即视频对象分割，是MPEG-4视频编码的关键技术，也是新一代视频编码的研究热点和难点。 
<p>　　　　视频对象分割涉及对视频内容的分析和理解，这与人工智能、图像理解、模式识别和神经网络等学科有密切联系。目前人工智能的发展还不够完善，计算机还不具有观察、识别、理解图像的能力；同时关于计算机视觉的研究也表明要实现正确的图像分割需要在更高层次上对视频内容进行理解。因此，尽管MPEG- 4 框架已经制定，但至今仍没有通用的有效方法去根本解决视频对象分割问题，视频对象分割被认为是一个具有挑战性的难题，基于语义的分割则更加困难。  </p><p>　　　　目前进行视频对象分割的一般步骤是：先对原始视频/图像数据进行简化以利于分割，这可通过低通滤波、中值滤波、形态滤波来完成；然后对视频/图像数据进行特征提取，可以是颜色、纹理、运动、帧差、位移帧差乃至语义等特征；再基于某种均匀性标准来确定分割决策，根据所提取特征将视频数据归类；最后是进行相关后处理，以实现滤除噪声及准确提取边界。 </p><p>　　　　在视频分割中基于数学形态理论的分水岭（watershed）算法被广泛使用，它又称水线算法，其基本过程是连续腐蚀二值图像，由图像简化、标记提取、决策、后处理四个阶段构成。分水岭算法具有运算简单、性能优良，能够较好提取运动对象轮廓、准确得到运动物体边缘的优点。但分割时需要梯度信息，对噪声较敏感，且未利用帧间信息，通常会产生图像过度分割。 </p><br />　　　　2. VOP视频编码技术<br />　　　　视频对象平面（VOP，Video Object Plane）是视频对象（VO）在某一时刻的采样，VOP是MPEG-4视频编码的核心概念。 MPEG-4在编码过程中针对不同VO采用不同的编码策略，即对前景VO的压缩编码尽可能保留细节和平滑；对背景VO则采用高压缩率的编码策略，甚至不予传输而在解码端由其他背景拼接而成。这种基于对象的视频编码不仅克服了第一代视频编码中高压缩率编码所产生的方块效应，而且使用户可与场景交互，从而既提高了压缩比，又实现了基于内容的交互，为视频编码提供了广阔的发展空间。<br /> <br />　 　　MPEG-4支持任意形状图像与视频的编解码。对于任意形状视频对象。对于极低比特率实时应用，如可视电话、会议电视，MPEG-4则采用VLBV （Very Low Bit-rate Video，极低比特率视频）核进行编码。 <br /><p>　　　　传统的矩形图在MPEG-4中被看作是VO的一种特例，这正体现了传统编码与基于内容编码在MPEG-4中的统一。VO概念的引入，更加符合人脑对视觉信息的处理方式，并使视频信号的处理方式从数字化进展到智能化，从而提高了视频信号的交互性和灵活性，使得更广泛的视频应用及更多的内容交互成为可能。因此VOP视频编码技术被誉为视频信号处理技术从数字化进入智能化的初步探索。 </p>　　　　3. 视频编码可分级性技术 　<br />　　　　随着因特网业务的巨大增长，在速率起伏很大的IP（Internet Protocol）网络及具有不同传输特性的异构网络上进行视频传输的要求和应用越来越多。在这种背景下，视频分级编码的重要性日益突出，其应用非常广泛，且具有很高的理论研究及实际应用价值，因此受到人们的极大关注。 &lt;&gt;　　<br />　　　　视频编码的可分级性（scalability）是指码率的可调整性，即视频数据只压缩一次，却能以多个帧率、空间分辨率或视频质量进行解码，从而可支持多种类型用户的各种不同应用要求。 &lt;&gt;　　<br />　　　　MPEG-4通过视频对象层（VOL，Video Object Layer）数据结构来实现分级编码。MPEG-4提供了两种基本分级工具，即时域分级（Temporal Scalability）和空域分级（Spatial Scalability），此外还支持时域和空域的混合分级。每一种分级编码都至少有两层VOL，低层称为基本层，高层称为增强层。基本层提供了视频序列的基本信息，增强层提供了视频序列更高的分辨率和细节。 &lt;&gt;　　<br />　　　　在随后增补的视频流应用框架中，MPEG-4提出了FGS（Fine Granularity Scalable，精细可伸缩性）视频编码算法以及 PFGS（Progressive Fine Granularity Scalable，渐进精细可伸缩性）视频编码算法。  
<p>　　　　FGS编码实现简单，可在编码速率、显示分辨率、内容、解码复杂度等方面提供灵活的自适应和可扩展性，且具有很强的带宽自适应能力和抗误码性能。但还存在编码效率低于非可扩展编码及接收端视频质量非最优两个不足。 </p><p>　　　　PFGS则是为改善FGS编码效率而提出的视频编码算法，其基本思想是在增强层图像编码时使用前一帧重建的某个增强层图像为参考进行运动补偿，以使运动补偿更加有效，从而提高编码效率。 </p><p>　　　　4. 运动估计与运动补偿技术 </p>　　　　MPEG-4采用I-VOP、P-VOP、B-VOP三种帧格式来表征不同的运动补偿类型。它采用了H.263中的半像素搜索（half pixel searching）技术和重叠运动补偿（overlapped motion  compensation)技术，同时又引入重复填充（repetitive padding）技术和修改的块（多边形）匹配（modified block  （polygon）matching）技术以支持任意形状的VOP区域。 　<br />　　　　此外，为提高运动估计算法精度，MPEG-4采用了MVFAST （Motion Vector Field Adaptive Search Technique）和改进的PMVFAST （Predictive MVFAST）方法用于运动估计。对于全局运动估计，则采用了基于特征的快速顽健的FFRGMET（Feature- based Fast and Robust Global Motion Estimation  Technique）方法。 　<br />　　　　在MPEG-4视频编码中，运动估计相当耗时，对编码的实时性影响很大。因此这里特别强调快速算法。运动估计方法主要有像素递归法和块匹配法两大类，前者复杂度很高，实际中应用较少，后者则在H.263和MPEG中广泛采用。在块匹配法中，重点研究块匹配准则及搜索方法。目前有三种常用的匹配准则：   
<p>　　　　（1）绝对误差和（SAD, Sum of Absolute Difference）准则； </p><p>　　　　（2）均方误差（MSE, Mean Square Error）准则； </p><p>　　　　（3）归一化互相关函数（NCCF, Normalized Cross Correlation  Function）准则。 </p>　　　在上述三种准则中，SAD准则具有不需乘法运算、实现简单方便的优点而使用最多，但应清楚匹配准则的选用对匹配结果影响不大。 <br /><br /><p>　　　　在选取匹配准则后就应进行寻找最优匹配点的搜索工作。最简单、最可靠的方法是全搜索法（FS, Full Search），但计算量太大，不便于实时实现。因此快速搜索法应运而生，主要有交叉搜索法、二维对数法和钻石搜索法，其中钻石搜索法被MPEG-4校验模型（VM,  Verification Model）所采纳，下面详细介绍。 </p>　　　钻石搜索（DS, Diamond Search）法以搜索模板形状而得名，具有简单、鲁棒、高效的特点，是现有性能最优的快速搜索算法之一。其基本思想是利用搜索模板的形状和大小对运动估计算法速度及精度产生重要影响的特性。在搜索最优匹配点时，选择小的搜索模板可能会陷入局部最优，选择大的搜索模板则可能无法找到最优点。因此DS算法针对视频图像中运动矢量的基本规律，选用了两种形状大小的搜索模板。  
<p>       大钻石搜索模板（LDSP, Large Diamond Search Pattern），包含9个候选位置； </p><p>　　小钻石搜索模板（SDSP, Small Diamond Search Pattern），包含5个候选位置。 </p><p>　　<br />　　　　DS算法搜索过程如下：开始阶段先重复使用大钻石搜索模板，直到最佳匹配块落在大钻石中心。由于LDSP步长大，因而搜索范围广，可实现粗定位，使搜索不会陷于局部最小，当粗定位结束后，可认为最优点就在LDSP 周围8 个点所围菱形区域中。然后再使用小钻石搜索模板来实现最佳匹配块的准确定位，以不产生较大起伏，从而提高运动估计精度。 　　<br />　　　　 此外Sprite视频编码技术也在MPEG-4中应用广泛，作为其核心技术之一。Sprite又称镶嵌图或背景全景图，是指一个视频对象在视频序列中所有出现部分经拼接而成的一幅图像。利用Sprite可以直接重构该视频对象或对其进行预测补偿编码。 　<br />　　　　Sprite视频编码可视为一种更为先进的运动估计和补偿技术，它能够克服基于固定分块的传统运动估计和补偿技术的不足，MPEG-4正是采用了将传统分块编码技术与Sprite编码技术相结合的策略。　<br /><br /><br />　　 4 结束语 　<br />　　　　多媒体数据压缩编码的发展趋势是基于内容的压缩，这实际上是信息处理的高级阶段，更加向人自身的信息处理方式靠近。人的信息处理并不是基于信号的，而是基于一个比较抽象的、能够直接进行记忆和处理的方式。  </p><p>　　　　MPEG-4作为新一代多媒体数据压缩编码的典型代表，它第一次提出了基于内容、基于对象的压缩编码思想。它要求对自然或合成视听对象作更多分析甚至是理解，这正是信息处理的高级阶段，因而代表了现代数据压缩编码技术的发展方向。 </p><p>　　　　MPEG-4实现了从矩形帧到VOP的转变以及基于像素的传统编码向基于对象和内容的现代编码的转变，这正体现了传统视频编码与新一代视频编码的有机统一。基于内容的交互性是MPEG-4的核心思想，这对于视频编码技术的发展方向及广泛应用都具有特别重要的意义。 <br />                </p><p id="TBPingURL">Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=673966</p><div class="postFoot"><script src="http://localhost:82/PromoteIcon.aspx?id=673966"></script>
[<a href="javascript:StorePage()">点击此处收藏本文</a>]   rstevens (小马哥)发表于 2006年04月23日 15:20:00 </div><p></p><link href="http://blog.csdn.net/rstevens/Services/Pingback.aspx" rel="pingback" /><!--<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:dc="http://purl.org/dc/elements/1.1/"xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><rdf:Descriptionrdf:about="http://blog.csdn.net/rstevens/archive/2006/04/23/673966.aspx"dc:identifier="http://blog.csdn.net/rstevens/archive/2006/04/23/673966.aspx"dc:title="H.264简介"trackback:ping="http://tb.blog.csdn.net/TrackBack.aspx?PostId=673966" /></rdf:RDF>--><script><![CDATA[unction hide(){showComment();}]]&gt;</script><br /><div class="post"><div class="postTitle">相关文章：</div><ul class="postText"><li><a href="http://blog.csdn.net/quanming1119/archive/2006/04/24/675599.aspx" target="_blank">H.264简介</a> 2006-04-24 <a href="http://blog.csdn.net/quanming1119/" target="_blank">quanming1119</a></li><li><a href="http://blog.csdn.net/a10002/archive/2004/12/09/210570.aspx" target="_blank">视频编码标准的发展：从H.261到H.264</a> 2004-12-09 <a href="http://blog.csdn.net/a10002/" target="_blank">a10002</a></li><li><a href="http://blog.csdn.net/taoyinzhou/archive/2006/02/09/595466.aspx" target="_blank">H.264编码技术 </a>2006-02-09 <a href="http://blog.csdn.net/taoyinzhou/" target="_blank">taoyinzhou</a></li><li><a href="http://blog.csdn.net/winne_ll/archive/2004/08/04/60712.aspx" target="_blank">MPEG-4视频编码核心思想及技术研究</a> 2004-08-04 <a href="http://blog.csdn.net/winne_ll/" target="_blank">winne_ll</a></li><li><a href="http://blog.csdn.net/bd_lyy791128/archive/2006/04/04/650860.aspx" target="_blank">视频压缩编码问与答</a> 2006-04-04 <a href="http://blog.csdn.net/bd_lyy791128/" target="_blank">bd_lyy791128</a></li></ul></div><img src ="http://www.cppblog.com/guanchanghui/aggbug/12684.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guanchanghui/" target="_blank">asdfastone</a> 2006-09-18 15:52 <a href="http://www.cppblog.com/guanchanghui/articles/12684.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>