H.263是由ITU-T制定的视频会议用的低码率视频编码标准,属于视频编解码器。H.263最初设计为基于H.324的系统进行传输(即基于公共交换电话网和其它基于电路交换的网络进行视频会议和视频电话)。后来发现H.263也可以成功的应用于
H.323(基于RTP/IP网络的视频会议系统)、H.320(基于综合业务数字网的视频会议系统)、RTSP(流式媒体传输系统)和SIP(基于因特网的视频会议)。
定义
H.263是国际电联
ITU-T的一个标准草案,是为低码流通信而设计的。但实际上这个标准可用在很宽的码流范围,而非只用于低码流应用,它在许多应用中可以认为被用于取代
H.261。H.263的
编码算法与H.261一样,但做了一些改善和改变,以提高性能和纠错能力。
H.263标准在低
码率下能够提供比H.261更好的图像效果,两者的区别有:
1、H.263的
运动补偿使用半
像素精度,而H.261则用全像素精度和环路
滤波;
2、
数据流层次结构的某些部分在H.263中是可选的,使得编解码可以配置成更低的数据率或更好的纠错能力;
3、H.263包含四个可协商的选项以改善性能;
4、H.263采用无限制的运动
向量以及基于语法的算术
编码;
5、采用事先预测和与
MPEG中的P-B帧一样的帧预测方法;
6、H.263支持5种
分辨率,即除了支持H.261中所支持的
QCIF和
CIF外,还支持
SQCIF、4CIF和16CIF,SQCIF相当于QCIF一半的分辨率,而4CIF和16CIF分别为CIF的4倍和16倍。
1998年IUT-T推出的H.263+是H.263建议的第2版,H.263+标准在保证原H.263标准核心句法和语义不变的基础上,提供了12个新的可协商模式和其他特征,从而保证了可以在各种信道(尤其是无线信道)不同的品质保证QoS(Quality of Service,服务质量)需求下进行可靠的通信,且只需要用H.261一半的码率就可以获得同H.261标准相当的解码图像质量。
与H.263标准相比,H.263+标准主要有以下几个方面的改进。
H.263++标准在H.263+基础上增加了三个选项,主要是为了增强码流在恶劣信道上的抗误码能力和提高编码效率。
基本概念
2. 应用
视频会议和视频电信有很广泛的程序应用,包括:
桌面环境或室内环境下的
会议系统通过Internet或电话线路实现的视频通信电子监视和操作运程医疗(在运程进行医学咨询和诊断) 基于计算机的培训与教育 在每种应用中,视频信息(也许与音频信息一块儿)被通过电信通讯联接传输,包括网络,电话线路,ISDN和广播的形式.视频有宽频的特征 (比如说每秒很多字节)这些,这些应用就需要对视频进行压缩或是进行
编码来在传输之前降低带宽值.
3. 视频编解码
在源端视频信息帧被捕捉并被通过视频
编码器进行编码。压缩的注被通过网络或是电信联接传输走,并在
视频解码端进行解码。解码过的帧就可以被显示了。
4. 视频编解码器
现在已经有很多的
视频编码的标准,它们每个都是为了特定的应用而设定:比如说,JPEG是为静态图片设定的,MPEG2是为数字电视信号设定的 ,H.261是为ISDN
视频会议系统设定。H.263是特别面向低
码率的
视频编码而设定的(通常只有20-30kbps或更高) H.263标准指明了对于视频编码和解码器的需求。它不描述
编码器和解码器自身:取而代之的是,它指明了编码流的格式与内容。一个典型的解码器和
编码器被在这时描述出不。我们跳过过了很多的H.263的细节,比如说语法和
编码模式。
4.1 H.263编码器
运动估计和补偿:降低带宽的第一步就是从当前帧中减去之前传输的帧,这样只有差值或叫剩余值才被编码并传输。这就意味着帧中没有变化的内容就不被
编码。我们通过试图对于前而帧的内容的移动进行估计并补偿这个运动值来实现更高的压缩比。
运动估计模块通过在当前帧中和在前些帧中周围的区域比较每个16*16的
像素块(宏块),并试图找到一个匹配的帧。匹配的区域从当前的宏块位置中由
运动补偿模块删除掉。如果
运动估计和补偿过程很有效率的话,剩余的宏块应该只包含很少量的信息。
离散余弦变换(DCT) :DCT把一块
像素像素块上(而不是一个一维的信号)进行操作,它尤其长于把块中的能量压缩到一系列的系数中去。这就意味着,通过很少量的DCT系数,我们就可以重建一个原始
像素块的拷贝。
量化:对于一个典型的
像素块来说,用DCT得到的大多数的系数都是接近于0的。量化器模块降低了每个系数的准确性,这样近似于0的值就被置 0,而且只有一些非0值留下来了。实际操作中,我们通过整数级因子来划分系数值,并截去结果。很重要的一点是我们在量化过程中“扔掉”了一些信息。
熵编码:一个熵编码器(比如说Huffman编码器)把常出现的值用更短的二进制码来表示,并且把不常出现的值用长一些的二进制码进行表示。 H.263中的
熵编码是基于这个技术的,并被用来压缩量化后的DCT系数的。这个结果是一个序列的变长二进制。这些码组合起来用来同步和控制信息(比如重建
运动补偿的
参考帧时需要的运动
向量),用以进成
编码的H.263码流。 帧
存储当前帧必须被
存储掉,这样,它才可以在下一帧
编码的时候被用做
参考帧。我们不是简单地把当前存存储起来,而是把重标量化的量化因子,用逆DCT操作后的反变换以及用来重建一帧的加到
运动补偿的参考块信息存放在存储区中。这就确保了在
编码器端帧存储区中的内容与在解码器的存储区中的内容是相同的。当下一帧被
编码的时候,
运动估计使用帧存储区中的内容来决定
运动补偿的最佳匹配区域。
4.2 H.263解码器
熵解码:为了解压出系数值和运动
向量信息,组成H.263码流的变长的
编码被进行解码 重调节这是量化过程的反过程:系数被乘以一个在编码端量化器同样的标量因子.然而,因为量化器丢弃了小的因子,重调节之后的系数值不再同原始的系数值相等. 逆DCT IDCT是DCT过程的反变换.它构建了一块采样值:它们对应于编码器端
运动补偿生成的差值. 运动补偿 差值被加到前一帧来重建区域信息.运动向量信息用来选择正确的区域(在编码器中使用相同的
参考帧).结果是一个原始帧的重建:注意它将与原始帧不同,因为量化过程是有损的.也就是说
图像的质量会比原始帧差一些.重建的帧被放于一个帧存储区,而且它被用于对下一个接收到的帧进行运动补偿.
5. 实现问题
在实时情形下开发一个可以有效工作的
视频编码和编码器时,有很多问题是要被说明的,包括:
码率控制 实际的通信
信道对于每秒钟它们可以处理的能力有限度.在很多种情形下,码率是一个定值(比如说POTS,IDSN等) H.263编码器的基础是对于每个编码的帧生成一个变的码值.如果
运动估计/补偿过程工作正常的话,那么就有更少的非0系数被用来编码. 然而,如果运动估计工作不那么正常的话(比如说当视频场景中包括复杂的运动时),就会有很多的非0系数来被编码.这样编码的值会增加. 为了映射这个可变的码率值到一个CBR(固定码率值)信道,编码器必须进行码率控制.编码器计算编码器输出的码率.如果它太高的话,它会通过增加标量化因子来提高
压缩率:这会导致更高的压缩比(码率会更低),但也同时在解码器给出了更低的画质.如果码率下降的话,编码 器就通过降低量化器的标量化因子来进行压缩.这样会在解码端造成更高的友率和更佳的画质. 同步 编码器和解码器必须是同步的,特别是如果视频信号与
音频信号视频会议),H.324(基于POTS的视频电信)和H.323(LAN或基于IP的视频会议)这样的标准解决掉了.H.263提供了这些标准的视频编码方法.音频编码被很多标准所支持,包括G.723.1等.另外,相关的标准包含了像复用(H.223)和信号机制(H.245)
5.2 软件实现
像
运动估计,变长编/解码和DCT这样的函数需要很大的处理能力来实现.然而,最近的上理器的发展,使得在Pentium级处理器实时地编解 H.263
视频变可可能. 一个软件实现必须是高度优化的,来达到有效的
视频质量(比如说,每秒多于10帧,352*288
像素每帧).这包括了一系列的操作比如说在计算密集处使用快速算法,最小化移动或拷贝操作并解开循环.在一些情况下,汇编代码会进一步加速运行(比如说使用Inter的MMX指令集) 5.3 硬件实现 对于高清晰的视频来说或当强大的处理器不存在的时候,硬件实现就是这个时候的解决方案了.一个典型的CODEC会对计算密集的部分使用专门的逻辑来进行处理(比如说运动估计/补偿,DCT,量化器和
熵编码),它们使用控制模块来定制事件顺序,并记录编码解码的参数.一个可编程的控制器是更佳的,因为很多的编码参数(比如说
码率控制算法)可以通过适应不同的环境来进行修改或是调整.最近,一个 Intellectual Property中心对H.263提出了一个实现.一个逻辑核心是VHDL或者Verilog的设计,它可以与其他的功能块想组合而成为一个 ASIC或FPGA的一部分.
基于之前的
视频编码国际标准(
H.261,
MPEG-1和
H.262/
MPEG-2),H.263的性能有了革命性的提高。它的第一版于
1995年完成,在所有
码率下都优于之前的
H.261。之后还有在
1998年增加了新的功能的第二版H.263+,或者叫H.263v2,以及在
2000年完成的第三版H.263++,即H.263v3。早期的H.263 新增以下的附加(annexes):
Annex A - Inverse transform accuracy spe
cification
Annex B - Hypothetical Reference Decoder
Annex C - Considerations for Multipoint
Annex D - Unrestricted Motion Vector mode
Annex E - Syntax-based Arithmetic Coding mode
Annex F - Advanced Prediction mode
Annex G - PB-frames mode
Annex H - Forward Error Correction for coded video signal
在H.263之后,
ITU-T(在与
MPEG的合作下)的下一代
视频编解码器是
H.264,或者叫
AVC以及
MPEG-4第10部分。由于H.264在性能上超越了H.263很多,现在通常认为H.263是一个过时的标准(虽然它的开发完成并不是很久以前的事情)。大多数新的
视频会议产品都已经支持了H.264
视频编解码器,就像以前支持H.263和H.261一样。
版本
H.263v2(通常也叫做H.263+或者
1998年版H.263)是
ITU-T H.263
视频编码标准第二版的非正式名称。 它保持了原先版本H.263的所有技术,但是通过增加了几个附录显著的提高了
编码效率并提供了其它的一些能力,例如增强了抵抗传输
信道的数据丢失的能力(Robustness)。
1998年版的H.263新增如下的附加(annexes):
Annex I - Advanced INTRA Coding mode
Annex J - Deblocking Filter mode
Annex K - Slice Structured mode
Annex L - Supplemental Enhancement Information Spe
cification
Annex M - Improved PB-frames mode
Annex N - Reference Picture Selection mode
Annex O - Temporal, SNR, and Spatial Scalability mode
Annex P - Reference picture resampling
Annex Q - Reduced-Resolution Update mode (see implementors' guide correction as noted below)
Annex R - Independent Segment Decoding mode
Annex S - Alternative INTER VLC mode
Annex T - Modified Quantization mode
Annex X - Profiles and levels definition