标题：监控视频压缩编解码
介绍
（一）、M-JPEG 
M-JPEG（Motion- Join Photographic Experts Group）技术即运动静止图像（或逐帧）压缩技术，广泛应用于非线性编辑领域可精确到帧编辑和多层图像处理，把运动的视频序列作为连续的静止图像来处理，这种压缩方式单独完整地压缩每一帧，在编辑过程中可随机存储每一帧，可进行精确到帧的编辑，此外M-JPEG的压缩和解压缩是对称的，可由相同的硬件和软件实现。但M-JPEG只对帧内的空间冗余进行压缩。不对帧间的时间冗余进行压缩，故压缩效率不高。采用M-JPEG数字压缩格式，当压缩比7:1时，可提供相当于Betecam SP质量图像的节目。 
JPEG标准所根据的算法是基于DCT（离散余弦变换）和可变长编码。JPEG的关键技术有变换编码、量化、差分编码、运动补偿、霍夫曼编码和游程编码等 
M-JPEG的优点是：可以很容易做到精确到帧的编辑、设备比较成熟。缺点是压缩效率不高。 
此外，M-JPEG这种压缩方式并不是一个完全统一的压缩标准，不同厂家的编解码器和存储方式并没有统一的规定格式。这也就是说，每个型号的视频服务器或编码板有自己的M-JPEG版本，所以在服务器之间的数据传输、非线性制作网络向服务器的数据传输都根本是不可能的。
（二）、MPEG系列标准 
MPEG是活动图像专家组(Moving Picture Exports Group)的缩写，于1988年成立，是为数字视/音频制定压缩标准的专家组，目前已拥有300多名成员，包括IBM、SUN、BBC、NEC、INTEL、AT&T等世界知名公司。MPEG组织最初得到的授权是制定用于“活动图像”编码的各种标准，随后扩充为“及其伴随的音频”及其组合编码。后来针对不同的应用需求，解除了“用于数字存储媒体”的限制，成为现在制定“活动图像和音频编码”标准的组织。MPEG组织制定的各个标准都有不同的目标和应用，目前已提出MPEG-1、MPEG-2、MPEG-4、MPEG-7和MPEG-21标准。 
1．MPEG-1标准 
MPEG-1标准于1993年8月公布，用于传输1.5Mbps数据传输率的数字存储媒体运动图像及其伴音的编码。该标准包括五个部分： 
第一部分说明了如何根据第二部分（视频）以及第三部分（音频）的规定，对音频和视频进行复合编码。第四部分说明了检验解码器或编码器的输出比特流符合前三部分规定的过程。第五部分是一个用完整的C语言实现的编码和解码器。 
该标准从颁布的那一刻起，MPEG-1取得一连串的成功，如VCD和MP3的大量使用，Windows95以后的版本都带有一个MPEG-1软件解码器，可携式MPEG-1摄像机等等。
2．MPEG-2标准 
MPEG组织于1994年推出MPEG-2压缩标准，以实现视/音频服务与应用互操作的可能性。　MPEG-2标准是针对标准数字电视和高清晰度电视在各种应用下的压缩方案和系统层的详细规定，编码码率从每秒3兆比特～100兆比特，标准的正式规范在ISO/IEC13818中。MPEG-2不是MPEG-1的简单升级，MPEG-2在系统和传送方面作了更加详细的规定和进一步的完善。MPEG-2特别适用于广播级的数字电视的编码和传送，被认定为SDTV和HDTV的编码标准。 
MPEG-2图像压缩的原理是利用了图像中的两种特性：空间相关性和时间相关性。这两种相关性使得图像中存在大量的冗余信息。如果我们能将这些冗余信息去除，只保留少量非相关信息进行传输，就可以大大节省传输频带。而接收机利用这些非相关信息，按照一定的解码算法，可以在保证一定的图像质量的前提下恢复原始图像。一个好的压缩编码方案就是能够最大限度地去除图像中的冗余信息。 
MPEG-2的编码图像被分为三类，分别称为I帧，P帧和B帧。 
I帧图像采用帧内编码方式，即只利用了单帧图像内的空间相关性，而没有利用时间相关性。P帧和B帧图像采用帧间编码方式，即同时利用了空间和时间上的相关性。P帧图像只采用前向时间预测，可以提高压缩效率和图像质量。P帧图像中可以包含帧内编码的部分，即P帧中的每一个宏块可以是前向预测，也可以是帧内编码。B帧图像采用双向时间预测，可以大大提高压缩倍数。 
MPEG-2的编码码流分为六个层次。为更好地表示编码数据，MPEG-2用句法规定了一个层次性结构。它分为六层，自上到下分别是：图像序列层、图像组(GOP)、图像、宏块条、宏块、块。 
MPEG-2标准在广播电视领域中的主要应用如下： 
（1）视音频资料的保存 
一直以来，电视节目、音像资料等都是用磁带保存的。这种方式有很多弊端：易损，占地大，成本高，难于重新使用。更重要的是难以长期保存，难以查找、难以共享。随着计算机技术和视频压缩技术的发展，高速宽带计算机网络以及大容量数据存储系统给电视台节目的网络化存储、查询、共享、交流提供了可能。 
采用MPEG-2压缩编码的DVD视盘，给资料保存带来了新的希望。电视节目、音像资料等可通过MPEG-2编码系统编码，保存到低成本的CD-R光盘或高容量的可擦写DVD-RAM上，也可利用DVD编著软件(如Daikin Scenarist NT、Spruce DVDMaestro等)制作成标准的DVD视盘，既可节约开支，也可节省存放空间。 
（2）电视节目的非线性编辑系统及其网络 
在非线性编辑系统中，节目素材是以数字压缩方式存储、制作和播出的, 视频压缩技术是非线性编辑系统的技术基础。目前主要有M-JPEG和MPEG-2两种数字压缩格式。 
M-JPEG技术即运动静止图像（或逐帧）压缩技术，可进行精确到帧的编辑，但压缩效率不高。 
MPEG-2采用帧间压缩的方式，只需进行I帧的帧内压缩处理，B帧和P帧通过侦测获得，因此 ，传输和运算的数据大多由帧之间的时间相关性得到，相对来说，数据量小，可以实现较高的压缩比。随着逐帧编辑问题的解决，MPEG-2将广泛应用于非线性编辑系统，并大大地降低编辑成本，同时MPEG-2的解压缩是标准的,不同厂家设计的压缩器件压缩的数据可由其他厂家设计解压缩器来解压缩,这一点保证了各厂家的设备之间能完全兼容。 
由于采用MPEG-2 IBP视频压缩技术，数据量成倍减少，降低了存储成本，提高了数据传输速度，减少了对计算机总线和网络带宽的压力，可采用纯以太网组建非线性编辑网络系统已成为可能，而在目前以太网是最为成熟的网络，系统管理比较完善，价格也比较低廉。 
基于MPEG-2的非线性编辑系统及非线性编辑网络将成为未来的发展方向。 
（3）卫星传输 
MPEG-2已经通过ISO认可，并在广播领域获得广泛的应用，如数字卫星视频广播(DVB-S)、DVD视盘和视频会议等。目前，全球有数以千万计的DVB-S用户，DVB-S信号采用MPEG-2压缩格式编码，通过卫星或微波进行传输，在用户端经MPEG-2卫星接收解码器解码，以供用户观看。此外，采用MPEG-2压缩编码技术，还可以进行远程电视新闻或节目的传输和交流。 
（4）电视节目的播出 
在整个电视技术中播出是一个承上启下的环节，对播出系统进行数字化改造是非常必要的，其中最关键一步就是构建硬盘播出系统。MPEG-2硬盘自动播出系统因编播简便、储存容量大、视频指标高等优点，而为人们所青睐。但以往MPEG-2播出设备因非常昂贵，而只有少量使用。随着MPEG-2技术的发展和相关产品成本的下降，MPEG-2硬盘自动系统播出可望得到普及。 
3．MPEG-4标准 
运动图像专家组MPEG 于1999年2月正式公布了MPEG-4（ISO/IEC14496）标准第一版本。同年年底MPEG-4第二版亦告底定，且于2000年年初正式成为国际标准。 
MPEG-4与MPEG-1和MPEG-2有很大的不同。MPEG-4不只是具体压缩算法，它是针对数字电视、交互式绘图应用（影音合成内容）、交互式多媒体（WWW、资料撷取与分散）等整合及压缩技术的需求而制定的国际标准。MPEG-4标准将众多的多媒体应用集成于一个完整的框架内，旨在为多媒体通信及应用环境提供标准的算法及工具，从而建立起一种能被多媒体传输、存储、检索等应用领域普遍采用的统一数据格式。 
MPEG-4的编码理念是：MPEG-4标准同以前标准的最显著的差别在于它是采用基于对象的编码理念，即在编码时将一幅景物分成若干在时间和空间上相互联系的视频音频对象，分别编码后，再经过复用传输到接收端，然后再对不同的对象分别解码，从而组合成所需要的视频和音频。这样既方便我们对不同的对象采用不同的编码方法和表示方法，又有利于不同数据类型间的融合，并且这样也可以方便的实现对于各种对象的操作及编辑。例如，我们可以将一个卡通人物放在真实的场景中，或者将真人置于一个虚拟的演播室里，还可以在互联网上方便的实现交互，根据自己的需要有选择的组合各种视频音频以及图形文本对象。 
MPEG-4系统的一般框架是：对自然或合成的视听内容的表示；对视听内容数据流的管理，如多点、同步、缓冲管理等；对灵活性的支持和对系统不同部分的配置。
与MPEG-1、MPEG-2相比，MPEG-4具有如下独特的优点： 
（1） 基于内容的交互性 
MPEG-4提供了基于内容的多媒体数据访问工具，如索引、超级链接、上下载、删除等。利用这些工具，用户可以方便地从多媒体数据库中有选择地获取自己所需的与对象有关的内容，并提供了内容的操作和位流编辑功能，可应用于交互式家庭购物，淡入淡出的数字化效果等。MPEG-4提供了高效的自然或合成的多媒体数据编码方法。它可以把自然场景或对象组合起来成为合成的多媒体数据。 
（2）高效的压缩性 
MPEG-4基于更高的编码效率。同已有的或即将形成的其它标准相比，在相同的比特率下，它基于更高的视觉听觉质量，这就使得在低带宽的信道上传送视频、音频成为可能。同时MPEG-4还能对同时发生的数据流进行编码。一个场景的多视角或多声道数据流可以高效、同步地合成为最终数据流。这可用于虚拟三维游戏、三维电影、飞行仿真练习等 
（3）通用的访问性 
MPEG-4提供了易出错环境的鲁棒性，来保证其在许多无线和有线网络以及存储介质中的应用，此外，MPEG-4还支持基于内容的的可分级性，即把内容、质量、复杂性分成许多小块来满足不同用户的不同需求，支持具有不同带宽，不同存储容量的传输信道和接收端。 
这些特点无疑会加速多媒体应用的发展，从中受益的应用领域有：因特网多媒体应用；广播电视；交互式视频游戏；实时可视通信；交互式存储媒体应用；演播室技术及电视后期制作；采用面部动画技术的虚拟会议；多媒体邮件；移动通信条件下的多媒体应用；远程视频监控；通过ATM网络等进行的远程数据库业务等。MPEG-4主要应用如下： 
（1）应用于因特网视音频广播 
由于上网人数与日俱增，传统电视广播的观众逐渐减少，随之而来的便是广告收入的减少，所以现在的固定式电视广播最终将转向基于TCP/IP的因特网广播，观众的收看方式也由简单的遥控器选择频道转为网上视频点播。视频点播的概念不是先把节目下载到硬盘，然后再播放，而是流媒体视频（streaming video），点击即观看，边传输边播放。 
现在因特网中播放视音频的有：Real Networks公司的 Real Media，微软公司的 Windows Media，苹果公司的 QuickTime，它们定义的视音频格式互不兼容，有可能导致媒体流中难以控制的混乱，而MPEG-4为因特网视频应用提供了一系列的标准工具，使视音频码流具有规范一致性。因此在因特网播放视音频采用MPEG-4，应该说是一个安全的选择。 
（2）应用于无线通信 
MPEG-4高效的码率压缩，交互和分级特性尤其适合于在窄带移动网上实现多媒体通信，未来的手机将变成多媒体移动接收机，不仅可以打移动电视电话、移动上网，还可以移动接收多媒体广播和收看电视。 
（3）应用于静止图像压缩 
静止图像（图片）在因特网中大量使用，现在网上的图片压缩多采用JPEG技术。MPEG-4中的静止图像（纹理）压缩是基于小波变换的，在同样质量条件下，压缩后的文件大小约是JPEG压缩文件的十分之一。把因特网上使用的JPEG图片转换成MPEG-4格式，可以大幅度提高图片在网络中的传输速度。 
（4）应用于电视电话 
传统用于窄带电视电话业务的压缩编码标准，如H261，采用帧内压缩、帧间压缩、减少象素和抽帧等办法来降低码率，但编码效率和图像质量都难以令人满意。MPEG-4的压缩编码可以做到以极低码率传送质量可以接受的声像信号，使电视电话业务可以在窄带的公用电话网上实现。 
（5）应用于计算机图形、动画与仿真 
MPEG-4特殊的编码方式和强大的交互能力，使得基于MPEG-4的计算机图形和动画可以从各种来源的多媒体数据库中获取素材，并实时组合出所需要的结果。因而未来的计算机图形可以在MPEG-4语法所允许的范围内向所希望的方向无限发展，产生出今天无法想象的动画及仿真效果。
（6）应用于电子游戏 
MPEG-4可以进行自然图像与声音同人工合成的图像与声音的混合编码，在编码方式上具有前所未有的灵活性，并且能及时从各种来源的多媒体数据库中调用素材。这可以在将来产生象电影一样的电子游戏，实现极高自由度的交互式操作。
（三）H.264 
H.264是ITU-T的VCEG（视频编码专家组）和ISO/IEC的MPEG（活动图像编码专家组）的联合视频组（JVT：joint video team）开发的一个新的数字视频编码标准，它既是ITU-T的H.264，又是ISO/IEC的MPEG-4的第10 部分。1998年1月份开始草案征集，1999年9月，完成第一个草案，2001年5月制定了其测试模式TML-8，2002年6月的 JVT第5次会议通过了H.264的FCD板。2003年3月正式发布。
H.264和以前的标准一样，也是DPCM加变换编码的混合编码模式。但它采用"回归基本"的简洁设计，不用众多的选项，获得比H.263++好得多的压缩性能；加强了对各种信道的适应能力，采用"网络友好"的结构和语法，有利于对误码和丢包的处理；应用目标范围较宽，以满足不同速率、不同解析度以及不同传输（存储）场合的需求；它的基本系统是开放的，使用无需版权。
在技术上，H.264标准中有多个闪光之处，如统一的VLC符号编码，高精度、多模式的位移估计，基于4×4块的整数变换、分层的编码语法等。这些措施使得H.264算法具有很的高编码效率，在相同的重建图像质量下，能够比H.263节约50%左右的码率。H.264的码流结构网络适应性强，增加了差错恢复能力，能够很好地适应IP和无线网络的应用。三、H.264的技术亮点1、分层设计H.264的算法在概念上可以分为两层：视频编码层（VCL：Video Coding Layer）负责高效的视频内容表示，网络提取层（NAL：Network Abstraction Layer）负责以网络所要求的恰当的方式对数据进行打包和传送。在VCL和NAL之间定义了一个基于分组方式的接口，打包和相应的信令属于NAL的一部分。这样，高编码效率和网络友好性的任务分别由VCL和NAL来完成。
VCL层包括基于块的运动补偿混合编码和一些新特性。与前面的视频编码标准一样，H.264没有把前处理和后处理等功能包括在草案中，这样可以增加标准的灵活性。
NAL负责使用下层网络的分段格式来封装数据，包括组帧、逻辑信道的信令、定时信息的利用或序列结束信号等。例如，NAL支持视频在电路交换信道上的传输格式，支持视频在Internet上利用RTP/UDP/IP传输的格式。NAL包括自己的头部信息、段结构信息和实际载荷信息，即上层的VCL数据。（如果采用数据分割技术，数据可能由几个部分组成）。2、高精度、多模式运动估计H.264支持1/4或1/8像素精度的运动矢量。在1/4像素精度时可使用6抽头滤波器来减少高频噪声，对于1/8像素精度的运动矢量，可使用更为复杂的8抽头的滤波器。在进行运动估计时，编码器还可选择"增强"内插滤波器来提高预测的效果。
在H.264的运动预测中，一个宏块（MB）可以按图2被分为不同的子块，形成7种不同模式的块尺寸。这种多模式的灵活和细致的划分，更切合图像中实际运动物体的形状，大大提高了运动估计的精确程度。在这种方式下，在每个宏块中可以包含有1、2、4、8或16个运动矢量。
在H.264中，允许编码器使用多于一帧的先前帧用于运动估计，这就是所谓的多帧参考技术。例如2帧或3帧刚刚编码好的参考帧，编码器将选择对每个目标宏块能给出更好的预测帧，并为每一宏块指示是哪一帧被用于预测。3、4×4块的整数变换H.264与先前的标准相似，对残差采用基于块的变换编码，但变换是整数操作而不是实数运算，其过程和DCT基本相似。这种方法的优点在于：在编码器中和解码器中允许精度相同的变换和反变换，便于使用简单的定点运算方式。也就是说，这里没有"反变换误差"。 变换的单位是4×4块，而不是以往常用的8×8块。由于用于变换块的尺寸缩小，运动物体的划分更精确，这样，不但变换计算量比较小，而且在运动物体边缘处的衔接误差也大为减小。为了使小尺寸块的变换方式对图像中较大面积的平滑区域不产生块之间的灰度差异，可对帧内宏块亮度数据的16个4×4块的DC系数（每个小块一个，共16个）进行第二次4×4块的变换，对色度数据的4个4×4块的DC系数（每个小块一个，共4个）进行2×2块的变换。
H.264为了提高码率控制的能力，量化步长的变化的幅度控制在12.5%左右，而不是以不变的增幅变化。变换系数幅度的归一化被放在反量化过程中处理以减少计算的复杂性。为了强调彩色的逼真性，对色度系数采用了较小量化步长。4、统一的VLCH.264中熵编码有两种方法，一种是对所有的待编码的符号采用统一的VLC（UVLC ：Universal VLC），另一种是采用内容自适应的二进制算术编码（CABAC：Context-Adaptive Binary Arithmetic Coding）。CABAC是可选项，其编码性能比UVLC稍好，但计算复杂度也高。UVLC使用一个长度无限的码字集，设计结构非常有规则，用相同的码表可以对不同的对象进行编码。这种方法很容易产生一个码字，而解码器也很容易地识别码字的前缀，UVLC在发生比特错误时能快速获得重同步。5、帧内预测在先前的H.26x系列和MPEG-x系列标准中，都是采用的帧间预测的方式。在H.264中，当编码Intra图像时可用帧内预测。对于每个4×4块（除了边缘块特别处置以外），每个像素都可用17个最接近的先前已编码的像素的不同加权和（有的权值可为0）来预测，即此像素所在块的左上角的17个像素。显然，这种帧内预测不是在时间上，而是在空间域上进行的预测编码算法，可以除去相邻块之间的空间冗余度，取得更为有效的压缩。
如图4所示，4×4方块中a、b、...、p为16 个待预测的像素点，而A、B、...、P是已编码的像素。如m点的值可以由（J+2K+L+2）/ 4 式来预测，也可以由（A+B+C+D+I+J+K+L）/ 8 式来预测，等等。按照所选取的预测参考的点不同，亮度共有9类不同的模式，但色度的帧内预测只有4类模式。6、面向IP和无线环境H.264 草案中包含了用于差错消除的工具，便于压缩视频在误码、丢包多发环境中传输，如移动信道或IP信道中传输的健壮性。
为了抵御传输差错，H.264视频流中的时间同步可以通过采用帧内图像刷新来完成，空间同步由条结构编码（slice structured coding）来支持。同时为了便于误码以后的再同步，在一幅图像的视频数据中还提供了一定的重同步点。另外，帧内宏块刷新和多参考宏块允许编码器在决定宏块模式的时候不仅可以考虑编码效率，还可以考虑传输信道的特性。
除了利用量化步长的改变来适应信道码率外，在H.264中，还常利用数据分割的方法来应对信道码率的变化。从总体上说，数据分割的概念就是在编码器中生成具有不同优先级的视频数据以支持网络中的服务质量QoS。例如采用基于语法的数据分割（syntax-based data partitioning）方法，将每帧数据的按其重要性分为几部分，这样允许在缓冲区溢出时丢弃不太重要的信息。还可以采用类似的时间数据分割（temporal data partitioning）方法，通过在P帧和B帧中使用多个参考帧来完成。
在无线通信的应用中，我们可以通过改变每一帧的量化精度或空间/时间分辨率来支持无线信道的大比特率变化。可是，在多播的情况下，要求编码器对变化的各种比特率进行响应是不可能的。因此，不同于MPEG-4中采用的精细分级编码FGS（Fine Granular Scalability）的方法（效率比较低），H.264采用流切换的SP帧来代替分级编码。　
四、H.264的性能比较
TML-8为H.264的测试模式，用它来对H.264的视频编码效率进行比较和测试。测试结果所提供的PSNR已清楚地表明，相对于MPEG-4（ASP：Advanced Simple Profile）和H.263++（HLP：High Latency Profile）的性能，H.264的结果具有明显的优越性。
H.264的PSNR比MPEG-4（ASP）和H.263++（HLP）明显要好，在6种速率的对比测试中，H.264的PSNR比MPEG-4（ASP）平均要高2dB，比H.263（HLP）平均要高3dB。6个测试速率及其相关的条件分别为：32 kbit/s速率、10f/s帧率和QCIF格式；64 kbit/s速率、15f/s帧率和QCIF格式；128kbit/s速率、15f/s帧率和CIF格式；256kbit/s速率、15f/s帧率和QCIF格式；512 kbit/s速率、30f/s帧率和CIF格式；1024 kbit/s速率、30f/s帧率和CIF格式。