文章目录
- 简介
- 格式
- H.26X
- H.261
- H.263
- H.264/AVC
- NALU Header
- NALU Payload
- SODB
- RBSP
- EBSP
- MPEG-X
- MPEG-1
- MPEG-2
- MPEG-4
- MPEG-7
- MPEG-21
简介
视频是可以理解为连续的图像序列。获取的一帧即为一幅图像,在每一帧的数据中,所有的内容都是静止的。为什么看起来是运用的呢,是由于人眼的视觉暂留效应。即当图像序列以一定的速率播放时,我们看到的就是动作连续的视频。由于连续的帧之间相似性极高,为便于储存传输,我们需要对原始的视频进行编码压缩,以去除空间、时间维度的冗余。
视频压缩技术是计算机处理视频的前提。视频信号数字化后数据带宽很高,通常在20MB/秒以上,因此计算机很难对之进行保存和处理。采用压缩技术通常数据带宽降到1-10MB/秒,这样就可以将视频信号保存在计算机中并作相应的处理。常用的算法是由ISO制订的,即JPEG和MPEG算法。JPEG是静态图像压缩标准,适用于连续色调彩色或灰度图像,它包括两部分:一是基于DPCM(空间线性预测)技术的无失真编码,一是基于DCT(离散余弦变换)和哈夫曼编码的有失真算法,前者压缩比很小,主要应用的是后一种算法。在非线性编辑中最常用的是MJPEG算法,即Motion JPEG。它是将视频信号50帧/秒(PAL制式)变为25帧/秒,然后按照25帧/秒的速度使用JPEG算法对每一帧压缩。通常压缩倍数在3.5-5倍时可以达到Betacam的图像质量。MPEG算法是适用于动态视频的压缩算法,它除了对单幅图像进行编码外还利用图像序列中的相关原则,将冗余去掉,这样可以大大提高视频的压缩比。前MPEG-I用于VCD节目中,MPEG-II用于VOD、DVD节目中。AVS音视频编码是中国支持制订的新一代编码标准,压缩效率比MPEG-2增加了一倍以上,能够使用更小的带宽传输同样的内容。AVS已经成为国际上三大视频编码标准之一,AVS标准在广电总局正式全面推广,率先在广电行业普及。
格式
H.26X
这里所说的H.26X并不是指26X这种编码格式,而是对H.26一系列的总称。例如,H.263、H.264和H.261这三种主要的编码格式。其中,H.264的使用是最广泛的。那这里着重介绍H.264这种编码格式。
H.261
H.261标准是为ISDN设计,主要针对实时编码和解码设计,压缩和解压缩的信号延时不超过150ms,码率px64kbps(p=1~30)。H.261标准主要采用运动补偿的帧间预测、DCT变换、自适应量化、熵编码等压缩技术。只有I帧和P帧,没有B帧,运动估计精度只精确到像素级。支持两种图像扫描格式:QCIF和CIF。
H.263
H.263标准是甚低码率的图像编码国际标准,它一方面以H.261为基础,以混合编码为核心,其基本原理框图和H.261十分相似,原始数据和码流组织也相似;另一方面,H.263也吸收了MPEG等其它一些国际标准中有效、合理的部分,如:半像素精度的运动估计、PB帧预测等,使它性能优于H.261。H.263使用的位率可小于64Kb/s,且传输比特率可不固定(变码率)。H.263支持多种分辨率:SQCIF(128x96)、 QCIF、CIF、4CIF、16CIF。
H.264/AVC
频压缩国际标准主要有由ITU-T制定的H.261、H.262、H.263、H.264和由MPEG制定的MPEG-1、MPEG-2、MPEG-4,其中H.262/MPEG-2和H.264/MPEG-4 AVC由ITU-T与MPEG联合制定。从简单来说H.264就是一种视频编码技术,与微软的WMV9都属于同一种技术也就是压缩动态图像数据的“编解码器”程序。H264的主要目标是:
1. 高的视频压缩比,当初提出的指标约为H.263的2倍,都已基本实现;
2. 良好的网络亲和性,即可适用于各种传输网络。
为此,H.264 的功能分为两层,即视频编码层(VCL)和网络提取层(NAL)。VCL 数据即编码处理的输出,它表示被压缩编码后的视频数据序列。在VCL 数据传输或存储之前,这些编码的VCL 数据,先被映射或封装进NAL 单元中。这里乎听起来就很复杂了,但是究其根本是H264本身就是用了一套复杂的编码/压缩规则来达到相同码率下压缩率高且图像质量高、同时具有网络亲和性的目的。VCL是管理H264视频数据层,对应实现目标1。如果抛开H264压缩算法细节来看,VCL其实可以总结为以下3步:
1. 压缩:预测(帧内预测和帧间预测)-> DCT变化和量化 -> 比特流编码;
2. 切分数据,主要为了第三步;
3. 包装成NAL。
NAL,Network Abstraction Layer,这部分和H264压缩算法无关,当时设计出NAL的目的就是为了获得网络亲和性,即对应实现目标2。直白一点讲:NAL就是为了包装VCL,以达到更好网络传输效果。NAL的组成单元是NALU,NALU由报头和数据两个部分组成:
1. Header:一般存储标志信息,譬如NALU的类型。
2. Payload:存储了真正的VCL数据。
NALU Header
NALU 的报头主要是三部分组成:forbidden_zero_bit、nal_ref_idc 和 nal_unit_type;这三者所占的空间分别为1 bit、2 bit和5 bit。
forbidden_zero_bit:我的理解是NALU的错误情况,置1时标志当前NALU 出现故障,不处理该NALU;正常的情况下,该标志位应为0。
nal_ref_idc:指示当前NALU的优先级,或者说重要性,数值越大表明越重要。
nal_unit_type:表示NALU的类型。
NALU Payload
这里的payload 是指NALU 所包含的数据信息。通常来讲,NALU的内容会被定义为三种形式:
1. NALU = NALU Header + SODB
2. NALU = NALU Header + RBSP
3. NALU = NALU Header + EBSP
SODB
原始数据比特流,就是最原始的编码/压缩得到的数据。
RBSP
原始字节序列载荷。RBSP = SODB + RBSP Trailing Bits。引入RBSP Trailing Bits做8位字节补齐。
EBSP
扩展字节序列载荷。EBSP为RBSP插入防竞争字节(0x03)。H264会插入一个叫做StartCode的字节串来分割NALU。可是如果RBSP种也包括了StartCode(0x000001或0x00000001)怎么办呢?所以衍生了防止竞争字节(0x03)。
MPEG-X
MPEG(Moving Picture Experts Group,动态图像专家组)是ISO(International Standardization Organization,国际标准化组织)与IEC(International Electrotechnical Commission,国际电工委员会)于1988年成立的专门针对运动图像和语音压缩制定国际标准的组织。MPEG标准主要有以下五个,MPEG-1、MPEG-2、MPEG-4、MPEG-7及MPEG-21等。该组织专门负责为CD建立视频和音频标准,而成员都是为视频、音频及系统领域的技术专家。及后,他们成功将声音和影像的记录脱离了传统的模拟方式,建立了ISO/IEC11172压缩编码标准,并制定出MPEG-格式,令视听传播方面进入了数码化时代。因此,大家现时泛指的MPEG-X版本,就是由ISO 所制定而发布的视频、音频、数据的压缩标准。MPEG标准的视频压缩编码技术主要利用了具有运动补偿的帧间压缩编码技术以减小时间冗余度,利用DCT技术以减小图像的空间冗余度,利用熵编码则在信息表示方面减小了统计冗余度。这几种技术的综合运用,大大增强了压缩性能。
MPEG-1
MPEG-1是一种早期的视频编码,质量比较差,主要用于 CD-ROM 存储视频,国内最为大家熟悉的就 是 VCD(Video CD),它的视频编码就是采用 MPEG-1。另外,MPEG-1作为ISO/IEC11172正式发布。它是为CD光盘介质定制的视频和音频压缩格式。一张70分钟的CD光盘传输速率大约在1.4Mbps。而 MPEG-1采用了块方式的运动补偿、离散余弦变换(DCT)、量化等技术,并为1.2Mbps传输速率进行了优化。MPEG-1音频分三层,就是MPEG-1 Layer I, II, III,其中第三层协议也就是MPEG- 1 Layer 3,简称MP3。MP3目前已经成为广泛流传的音频压缩技术。
MPEG-1的缺点:
1. 1个音频压缩系统限于两个通道(立体声) 。
2. 没有为隔行扫描视频提供标准化支持,且压缩率差。
3. 只有一个标准化的“profile” (约束参数比特流),不适应更高分辨率的视频。MPEG - 1可以支持4k的视频,但难以提供更高分辨率的视频编码并且标识硬件的支持能力。
4. 支持只有一个颜色空间,4:2:0。
MPEG-2
MPEG-2通常用来为广播信号提供视频和音频编码, 包括卫星电视、有线电视等。MPEG-2经过少量修改后,也成为DVD产品的内核技术,同时作为ISO/IEC 13818正式发布。与MPEG-1标准相比,MPEG-2标准具有更高的图像质量、更多的图像格式和传输码率的图像压缩标准。MPEG-2标准不是MPEG-1的简单升级,而是在传输和系统方面做了更加详细的规定和进一步的完善。它是针对标准数字电视和高清晰电视在各种应用下的压缩方案,传输速率在3 Mbit/s~10 Mbit/s之间。
MPEG-2的编码图像被分为三类,分别称为I帧,P帧和B帧。
1、I帧图像,或称帧内(Intra)图像,参考图像,相当于一个固定图像,且独立于其它的图像类型。每个图像组群由此类型的图像开始。采用帧内压缩编码技术减少空间冗余,不参照其它图像。
2、P帧图像,或称预测(Predicted)图像,通过参照前面靠近它的I或P图像预测得到。P图像减少了空间和时间冗余信息,相比I图像可以有更大的压缩码率。
3、B帧图像,或称双向预测图像,根据临近的前几帧、本帧、后几帧的I或者P图像预测得到,仅记录本帧与前后帧的不同之处。相比I和P图像可以有更大的压缩码率。
MPEG-2的编码码流分为六个层次。为更好地表示编码数据,MPEG-2用句法规定了一个层次性结构。它分为六层,自上到下分别是:图像序列层、图像组(GOP)、图像、宏块条、宏块、块。
MPEG-4
MPEG-4是一套用于音频、视频信息的压缩编码标准, MPEG-4格式的主要用途在于网上流媒体、光碟、 语音传送以及电视广播。MPEG-4作为ISO/IEC 14496正式发布。最初MPEG-4的主要目的是用于低比特率下的视频通信,但是作为一个多媒体的编码标准,它的范围最后得到了扩展。在技术方面MPEG-4允许不同的软件/硬件开发商创建多媒体对象来提供更好的适应性、灵活性,为数字电视,动态图像,互联网等业务提供更好的质量。
MPEG-4提供范围从每秒几k比特到每秒数十兆比特的,它具有下面功能:
1. 改善MPEG-2的编码效率
2. 提供混合媒体数据(视频,音频,语音)的编码能力
3. 差错容忍使得内容稳定传输
4. 提供受众视听场景的互动能力,MPEG-4终端用户提供不同的对象支持各种互动要求
5. MPEG-4对传输数据网是透明的,它可以兼容各种网络
在MPEG-4制定之前,MPEG-1、MPEG-2、H.261、H.263都是采用第一代压缩编码技术,着眼于图像信号的统计特性来设计编码器,属于波形编码的范畴。第一代压缩编码方案把视频序列按时间先后分为一系列帧,每一帧图像又分成宏块以进行运动补偿和编码,这种编码方案存在以下缺陷:
将图像固定地分成相同大小的块,在高压缩比的情况下会出现严重的块效应,即马赛克效应;
不能对图像内容进行访问、编辑和回放等操作;
未充分利用人类视觉系统(HVS,Human Visual System)的特性。
&esmp;AV对象(AVO,Audio Visual Object)是MPEG-4为支持基于内容编码而提出的重要概念。对象是指在一个场景中能够访问和操纵的实体,对象的划分可根据其独特的纹理、运动、形状、模型和高层语义为依据。AV对象是听觉、视觉、或者视听内容的表示单元,其基本单位是原始AV对象,它可以是自然的或合成的声音、图像。原始AV对象具有高效编码、高效存储与传输以及可交互操作的特性,它又可进一步组成复合AV对象。因此MPEG-4标准的基本内容就是对AV对象进行高效编码、组织、存储与传输。AV对象的提出,使多媒体通信具有高度交互及高效编码的能力,AV对象编码就是MPEG-4的核心编码技术。MPEG-4实现基于内容交互的首要任务就是把视频/图像分割成不同对象或者把运动对象从背景中分离出来,然后针对不同对象采用相应编码方法,以实现高效压缩。因此视频对象提取即视频对象分割,是MPEG-4视频编码的关键技术,也是新一代视频编码的研究热点和难点。MPEG-4不仅可提供高压缩率,同时也可实现更好的多媒体内容互动性及全方位的存取性,它采用开放的编码系统,可随时加入新的编码算法模块,同时也可根据不同应用需求现场配置解码器,以支持多种多媒体应用。
MPEG-7
MPEG-7标准被称为“多媒体内容描述接口”,为各类多媒体信息提供一种标准化的描述,这种描述将与内容本身有关,允许快速和有效地查询用户感兴趣的资料。它将扩展现有内容识别专用解决方案的有限能力,特别是它还包括了更多的数据类型。MPEG-7 主要定义了七种颜色描述符:颜色空间、主颜色、颜色的量化、颜色直方图、颜色布局、颜色结构、对颜色的特征和结构进行描述。
1. 颜色空间 —— 该描述符主要用于其它基于颜色的描述
2. 颜色量化 —— 该描述符定义了颜色空间的均匀量化。量化产生的维(bin)的数目是可配置的,这样使得各种应用具有更大的灵活性。
3. 主颜色 —— 该描述符最适用于表示局部(对象或图像区域)特征,几种颜色就足以表达我们感兴趣区域的颜色信息。
4. 颜色直方图 —— 该描述符将用于静态图像的可伸缩颜色描述符扩展到对视频片段或静态图像集合的颜色描述。在 Haar 变换之前,用附加的两个比特定义如何计算颜色直方图,是均值、中值还是相交。
5. 颜色布局 —— 该描述符以一种紧凑的形式,有效的表达了颜色的空间分布。这种紧凑性以很小的计算代价,带来高速的浏览和检索。它提供图像与图像的匹配和超高速的片断与片断的匹配,这些匹配要求大量相似性计算的重复。
6. 颜色结构 —— 该描述符是一个颜色特征描述符,它既包括颜色内容信息(类似于颜色直方图),又包括内容的结构信息。它的主要功能是图像与图像的匹配,主要用于静态图像检索,在这里一幅图像可能由一个单一矩形或者任意形状、可能是非连通的区域组成。提取的方法是:通过考虑一个 8×8 像素的结构化元素中的所有颜色,将颜色结构信息加入该描述符中,而不是单独考虑每个像素。
7. 可伸缩颜色,该描述符是 HSV 颜色空间的颜色直方图(用 Haar 变换编码)。根据维的数目和比特表示的精度,它的二进制表示在一定数据速率范围内是可伸缩的。这个描述符主要用于图像与图像的匹配和基于颜色特征的检索,检索的精度随着描述中使用的比特数目的增加而增加。
MPEG-7 推荐了三种纹理描述符,同质纹理描述符(HomogenousTexture Descriptors)、纹理浏览描述符(Texture Browsing Descriptors)和边缘直方图描述符(Edge HistogramDescriptors)。
1. 同质纹理描述符 —— 主要用于大量相似图案的搜索和浏览。同质纹理描述符使用 62 个数字(每一个都量化为 8bits)提供了纹理信息的量化表示。这62 个数字的计算方法是:将图像用一组带有方向和尺度参数的 Gabor 滤波器进行滤波,一共是六个方向和五个尺度。一共得到 30 个滤波结果,每一个滤波结果频率域的一阶矩和二阶矩就是两个描述数字。
2. 纹理浏览描述符 —— 描述纹理的感知特性。计算方法和同质纹理描述符类似,首先使用一组带有方向和尺度参数的 Gobor 滤波器进行滤波,然后通过分析滤波结果,找到纹理主要的方向。接着分析滤波后的图像沿着这两个(第二个主方向是可选的)主方向投影,来确定纹理的规则性和稀疏性。最多只需要 12 比特。同质纹理描述符和浏览描述符提供了表示相似纹理区域(Homogeneous Texture Regions)的多尺度方法。
3. 边缘直方图描述符 —— 描述了 5 种边缘(4 种方向边缘和一种无方向边缘)的空间分布统计。主要目标在于图像与图像的匹配(通过示例或草图),特别是边缘分布不规则的自然图像。如果边缘直方图描述符与其它描述符如颜色直方图相结合,将可以显著提高图像检索的性能。
MPEG-7 定义了三种形状描述符:基于区域的形状(RegionShape)、基于轮廓的形状(Contour Shape)和三维形状(Shape 3D)。
1. 基于区域的形状 —— 一个对象的形状可能只包括一个单一区域,也有可能包括多个区域,同时在对象中还可能有一些孔。基于区域的形状描述符充分利用了一个帧内组成形状的所有像素,它可以描述任何形状,不但可以描述有一个单一连通区域的简单形状,而且可以描述有对象中一些孔或几个不向连区域组成的复杂形状。基于区域的形状描述符不仅能够有效描述不同目标形状,而且对于沿对象边界的较小变形具有一定的健壮性。
2. 基于轮廓的形状 —— 基于轮廓的形状描述符提取了目标和区域基于轮廓获得的形状,一般采用曲率空间表示形状信息,这种形状描述符反映了人的感知特性,又称为曲率尺度空间(Curvature Scale-space,CSS)表示,它由轮廓的曲率尺度空间表达式构成,该表达式具有如下重要特征:
1. 较好的提取了形状特有特征,并能用于相似性检索;
2. 反映了人类视觉系统的感知性,具有良好的概括性;
3. 对于不是很明显的运动、形状的部风重叠、投影变换均具有健壮性;
4. 表达式简洁。
3. 三维形状 —— 考虑到多媒体技术、虚拟世界和增强现实技术的持续发展,三维内容也成为当今多媒体信息系统的普遍特征。大多数情况下,三维信息是用多边形网格来表示的。MPEG-4的 SNHC 组研究这个问题并开发了有效的三维网格模型编码技术。在 MPEG-7 标准的框架中,要求对三维信息实现智能的基于内容的提取,用以查找、检索和浏览三维模型库。三维形状特征描述符对三维网格模型进行本质的形状描述,它善于挖掘三维表面的局部特征。
MPEG-21
MPEG-21标准的正式名称为“多媒体框架”或者“数字视听框架”,它致力于为多媒体传输和使用定义一个标准化的、可互操作的和高度自动化的开放框架,这个框架考虑到了DRM(Digital Rights Management,数字版权管理)的要求、对象化的多媒体接入以及使用不同的网络和终端进行传输等问题,这种框架还会在一种互操作的模式下为用户提供更丰富的信息。
MPEG-21的适用环境是不同的网络和终端,MPEG-21的行为主体是广大用户,规范的动作是“使用”,作用的客体是数字项,MPEG-21作用的过程中形成了多媒体内容传送链和价值传送链。下面对这几个概念予以简单解释。
1. 用户:用户是一个广义的概念,可以是世界各地的个人、消费者、团体、组织、公司、政府以及其他标准化组织和主体。从技术上讲,MPEG-21认为内容的提供者和消费者同样都是MPEG-21的用户。用户可以各种方式“使用”内容。
2. 使用:MPEG-21提供了一个多媒体框架供一个用户与另一用户进行数字信息的交互,所涉及的各方均为用户。这里所指的相互作用即为对内容的“使用”,它包括内容创建、提供、存档、评价、增强、递送、聚集、传输、发表、零售、消费、定购、管制,以及上述事务的推进和管理等。
3. 数字项:MPEG-21的数字项是一个结构化的数字对象,是按标准进行表达、标记并带有描述性的数据。数字项是数字资源及其相关内容(包括图像、图形、动画、数据文件、音频、视频等)的集合。它是MPEG-21框架中传送和交易的最基本单元,是用户关联的目的。
4. 多媒体内容传送链:包含内容创建、生产、传送和消费等诸多环节。为了支持上述功能,内容必须被标识、描述、管理和保护;内容的传输和递送是在异构终端和网络上进行的,在此过程中事件将会发生并且需要报告。这样的报告包括可靠的传送、个人数据的管理、用户隐私的优先考虑和对交易的管理。伴随着内容传送链的是抽象的价值传送链,表现在内容的传送过程中其价值也可能发生变化或转移。
MPEG-21包括多项技术,其中最为主要的是以下几项:
1. 数字项声明:是用于声明数字项的一种统一而灵活的抽象和互操作机制。
2. 数字项标识和描述:是一种用于标识和描述任一实体的框架,不管它的属性、类型或粒度如何。
3. 内容的管理和使用:是一种接口和协议,用于保证通过内容分配和消费价值链来创建、制作、存储、传送和使用内容。
4. 知识产权的管理和保护:用于确保内容在通过网络和设备时得到持久和可靠的保护。
5. 终端和网络:可以为用户提供贯穿终端和网络所进行的交互、透明的内容存取能力。
6. 内容表示:解决如何表示媒体资源问题,使得内容可以被无“缝”地传送和消费。
7. 事件报告:是多媒体框架和用户之间的一种法则和接口,利用它可以使用户准确地了解在框架中发生的所有可报告事件的性能。