1、如何做高清视频 1 一,HDTV 的概念 要解释 HDTV,我们首先要了解 DTV。DTV 是一种数字电视技术,是目前传统模拟电视技术的接班人。所谓的数字电视,是指从演播室到发射、传输、接收过程中的所有环节都是使用数字电视信号,或对该系统所有的信号传播都是通过由二进制数字所构成的数字流来 完成的。数字信号的传播速率为每秒 19.39 兆字节,如此大的数据流传输速度保证了数字电视的高清晰度,克服了模拟电视的先天不足。同时,由于数字电视可以允许几种制式信号的同时存在,因此每个数字频道下又可分为若干个子频道,能够满足以后频道不断增多的 需求。HDTV 是 DTV 标准中最高的一种,即 High De
2、finision TV,故而称为 HDTV。 二,HDTV 中要求音、视频信号达到哪些标准? HDTV 规定了视频必须至少具备 720 线非交错式(720p,即常说的逐行)或 1080 线交错式隔行(1080i,即常说的隔行)扫描(DVD 标准为 480 线),屏幕纵横比为16:9。音频输出为 5.1 声道(杜比数字格式),同时能兼容接收其它较低格式的 信号并进行数字化处理重放。 HDTV 有三种显示格式,分别是:720P(1280720P,非交错式),1080 i(19201080i,交错式),1080P( 19201080i,非交错式),其中网络上流传的以720P 和 1080 i 最为常
3、见,而在微软 WMV-HD 站点上1080P 的样片相对较多。 三,如何收看 HDTV 节目? 目前有两种方式可欣赏到 HDTV 节目。一种是在电视上实时收看 HDTV,需要满足两个条件,首先是电视可接收到HDTV 信号,这需要额外添加相关的硬件,其次是电视符合 HDTV 标准,主要是指电视的分辨率和接收端口而言。 另一种是在电脑上通过软件播放。目前我国只有极少部分地区可接收到 HDTV 数字信号,而且 HDTV 电视的价格仍高高在上,不是普通消费者所能承受的。因此,在网络中找寻 HDTC 源,下载后在个人电脑上播放,成了大多数HDTV 迷们的一个尝鲜方法。 四,哪些是可用于电脑播放的 HDT
4、V 文件? 网络中流传的 HDTV 主要以两类文件的方式存在,一类是经过 MPEG-2 标准压缩,以.tp 和.ts 为后缀的视频流文件,一类是经过 WMV-HD (Windows Media Video High Definition)标准压缩过的.wmv 文件,还有少数文件后缀为.avi 或.mpg ,其性质与 .wmv 是完全一样的。 HDTV 文件都比较大,即使是经过重新编码过后的.wmv 文件也非同小可。以一部普通电影的时间长度来计算,.wmv文件将会有 4G 以上,而同样时间长度的.tp 和.ts 文件能达到 8G 以上,有的甚至达到 20 多 G。因此,除了通过文件后缀名,还可以
5、通过文 件大小来判断是否为 HDTV 文件。 五,如何在个人电脑上播放 HDTV 节目? 对于.wmv 文件,只要系统安装了 Windows Media Player 9 或更高版本,就可以正常播放,一些播放软件的最新版本已经开始支持 WMV-HD,如 WINDVD6 等,也可以直接使用这些软件播放 HDTV。有些 HDTV 文件在压缩过程中采用了其它标准的编码格式,就需要安装对应的解码器,遇到 Windows Media Player 9 不能正常播放时,可以再安装ffdshow,它带有各种最常用的解码器。 播放以.tp 和.ts 为后缀的视频流文件要稍微麻烦一点,因为文件中分别包含有 AC
6、3 音频信息和 MPEG-2 视频信息。好在现下有已经不少专门播放.tp 和.ts 文件的软件问世了,Moonlight-Elecard MPEG Player 就是其中一款比较常见的支持 HDTV 播放的软件,目前最新的版本为 2.x。安装完后,也可以运行其它播放软件来调用 Moonlight- Elecard MPEG Player 的解码器进行播放。 六,如何鉴别 HDTV 的显示格式? 目前我们无法仅从文件名称、大小上来判定一个 HDTV 文件的显示格式是 720P 还是 1080i,或是 1080P,但是有不少软件可以在播放时显示影片的图像信息,如WINDVD、zplay 等,在软件
7、的控制面板中选择对应的选项就可以看到详细的信息。 七,为什么我只能看到图像,却听不到声音? 这是因为未安装 AC3 音频解码器,导致 HDTV 文件中的音频信息不能被正确识别的原因。解决的方法是下载并安装对应的音频解码器,常用的有 AC3Filter,这些音、视频解码器只需安装一次即可,播放 HDTV 文件时系统会自动调用,而不必每次播 放的时候都打开其控制界面。 八,为什么我播放 HDTV 时会出现丢帧现象? 在家用电脑上播放 HDTV,对其硬件配置要求较高,主要是与 CPU、显存、内存紧紧相关,如果这三样中有一样性能过低,就会产生一些播放问题。播放 HDTV 时会出现丢帧现象是显存容量不够
8、造成的,尤其是在播放 1080 i 格式HDTV 的时候,19201080 的像素量,需要足够大的显存才能满足其数据吞吐,因此显存至少需要 64M 以上,建议128M。由于是 2D 显示,所以对显卡核心的运算能力要求反而不是很高。 九,为什么我播放 HDTV 时会经常出现画面和语音停顿的现象? 一些采用了 WMV-HD 重新编码的 HDTV 文件,因为有着较高的压缩率,在播放时就需要非常高的 CPU 运算能力来进行实时解码,一般来说 P4 2.0G/AMD 2000+ 以上及同级别的 CPU 可达到这个要求。同时,由于 HDTV 的数据流较大,需要足够的内存来支持,推荐在 256M 以上。如果
9、你的电脑满足不了这样的配置,就可能会在播放过程中产生画面与语音不同步、画面经常停顿、爆音等现象。严重的话甚至无法顺利观看。如果 这种现象不太严重,则可以通过优化系统和一些小技巧来改善。 十,如何优化系统以保证顺利地播放 HDTV? 除非你的电脑硬件配置的确很强,否则就很可能需要对系统进行一些优化,以便可以顺利地播放 HDTV。首先是在播放 HDTV 前关闭所有没有用的后台程序或进程,尽量增加系统的空闲资源为播放 HDTV 服务;其次是选择一款占用系统资源较低的软件来播放 HDTV 。Windows Media Player、WINDVD 等软件占用系统资源较多,在硬件配置本就不高的系统上会影响
10、 HDTV 的播放效果,这时可以选择使用 BSPlayer。 BSPlayer 是一款免费软件,最大的特点就是占用系统资源很小,尤其在播放 HDTV 文件时,与其它几个资源占用大户相比效果更为明显。另外,运行播放软件后立即打开任务管理器(仅在 Windows 2000/XP 中有效),将播放软件的进程级别设置为最高,这样也可以为 HDTV 的播放调用更多的系统资源。除此之外,安装更高版本的 DirectX,也能更好地支持 HDTV 的播放。 十一,还有什么其它的技巧? 如果你的 PC 可以流利地播放 HDTV,那么你唯一会感到遗憾的,可能就是抱怨显示器太小和音箱太不够劲了。音箱的问题没有好的方
11、法可以解决,必竟 PC 音箱和家庭影院的音箱两者是不可同比的,然而我们可以通过调高显示器的分辨率来提高画面的清晰度和细节感。 现在主流的显示器为 17 寸纯平 CRT(因为改变标准分辨率只会给 LCD 带来负面影响,因此这种方法只针对普通的 CRT 显示器),中低档的 17 寸显示器很难达到 16001200 以上的分辨率,即使达到了其水平扫描率也在 60Hz 以下,但是请不要忘了,电视 信号的水平扫描率也就是在这个水平上。 720P 的水平扫描率为 60Hz, 1080i 则有 50Hz 和 60Hz 两种,分别为我国和美国地区的标准。也就是说,即使你在显示器水平扫描率为 60Hz 的状态下
12、全屏观看 HDTV 或 DVD 等其它视频,你是感觉不到晃眼的 ,这主要是由于人眼对于动态和静态物体的感应不同造成的。因此你可以在观看 HDTV 的时候,放心地将显示器水平扫描率设为 60Hz,进而将分辨率调高,平时使用再调回标准分辨率即可。 存放 HDTV 文件的硬盘分区必须转换为 NTFS 格式,因为一部 HDTV 电影通常是几个 4.3GB 的视频文件组成(为了方便刻录在 DVD 上面),而 FAT32 是无法管理 2GB 以上的文件的,因此务必转换分区格式。 H.264 JVT(Joint Video Team,视频联合工作组)于2001 年 12 月在泰国 Pattaya 成立。它由
13、 ITU-T 和 ISO 两个国际标准化组织的有关视频编码的专家联合组成。JVT的工作目标是制定一个新的视频编码标准,以实现视频的高压缩比、高图像质量、良好的网络适应性等目标。目前JVT 的工作已被 ITU-T 接纳,新的视频压缩编码标准称为H.264 标准,该标准也被 ISO 接纳,称为 AVC(Advanced Video Coding)标准,是 MPEG-4 的第 10 部分。 H.264 标准可分为三档: 基本档次(其简单版本,应用面广); 主要档次(采用了多项提高图像质量和增加压缩比的技术措施,可用于 SDTV、HDTV 和 DVD 等); 扩展档次(可用于各种网络的视频流传输)。
14、H.264 不仅比 H.263 和 MPEG-4 节约了 50的码率,而且对网络传输具有更好的支持功能。它引入了面向 IP 包的编码机制,有利于网络中的分组传输,支持网络中视频的流媒体传输。H.264 具有较强的抗误码特性,可适应丢包率高、干扰严重的无线信道中的视频传输。H.264 支持不同网络资源下的分级编码传输,从而获得平稳的图像质量。H.264 能适应于不同网络中的视频传输,网络亲和性好。 H.261 是最早出现的视频编码建议,目的是规范 ISDN 网上的会议电视和可视电话应用中的视频编码技术。它采用的算法结合了可减少时间冗余的帧间预测和可减少空间冗余的 DCT 变换的混合编码方法。和
15、ISDN 信道相匹配,其输出码率是 p64kbit/s。p 取值较小时,只能传清晰度不太高的图像,适合于面对面的电视电话;p 取值较大时(如 p6),可以传输清晰度较好的会议电视图像。H.263 建议的是低码率图像压缩标准,在技术上是 H.261 的改进和扩充,支持码率小于 64kbit/s 的应用。但实质上 H.263 以及后来的 H.263+和 H.263+已发展成支持全码率应用的建议,从它支持众多的图像格式这一点就可看出,如 Sub-QCIF、QCIF、CIF 、4CIF 甚至 16CIF 等格式。 MPEG-1 标准的码率为 1.2Mbit/s 左右,可提供 30 帧CIF(35228
16、8 )质量的图像,是为 CD-ROM 光盘的视频存储和播放所制定的。MPEG-l 标准视频编码部分的基本算法与 H.261/H.263 相似,也采用运动补偿的帧间预测、二维 DCT、 VLC 游程编码等措施。此外还引入了帧内帧(I)、预测帧(P )、双向预测帧( B)和直流帧(D)等概念,进一步提高了编码效率。在 MPEG-1 的基础上,MPEG-2标准在提高图像分辨率、兼容数字电视等方面做了一些改进,例如它的运动矢量的精度为半像素;在编码运算中(如运动估计和 DCT)区分“帧”和“场”;引入了编码的可分级性技术,如空间可分级性、时间可分级性和信噪比可分级性等。近年推出的 MPEG-4 标准引
17、入了基于视听对象(AVO :Audio-Visual Object)的编码,大大提高了视频通信的交互能力和编码效率。 MPEG-4 中还采用了一些新的技术,如形状编码、自适应 DCT、任意形状视频对象编码等。但是 MPEG-4 的基本视频编码器还是属于和 H.263 相似的一类混合编码器。 总之,H.261 建议是视频编码的经典之作,H.263 是其发展,并将逐步在实际上取而代之,主要应用于通信方面,但H.263 众多的选项往往令使用者无所适从。MPEG 系列标准从针对存储媒体的应用发展到适应传输媒体的应用,其核心视频编码的基本框架是和 H.261 一致的,其中引人注目的 MPEG-4 的“
18、基于对象的编码”部分由于尚有技术障碍,目前还难以普遍应用。因此,在此基础上发展起来的新的视频编码建议 H.264 克服了两者的弱点,在混合编码的框架下引入了新的编码方式,提高了编码效率,面向实际应用。同时,它是两大国际标准化组织的共同制定的,其应用前景应是不言而喻的。 JVT 的 H.264 H.264 是 ITU-T 的 VCEG(视频编码专家组)和 ISO/IEC的 MPEG(活动图像编码专家组)的联合视频组(JVT:joint video team)开发的一个新的数字视频编码标准,它既是 ITU-T 的 H.264,又是 ISO/IEC 的 MPEG-4 的第 10 部分。1998 年
19、1 月份开始草案征集,1999 年 9 月,完成第一个草案,2001 年 5 月制定了其测试模式 TML-8,2002 年 6 月的 JVT 第 5 次会议通过了 H.264 的 FCD板。 2003 年 3 月正式发布。 H.264 和以前的标准一样,也是 DPCM 加变换编码的混合编码模式。但它采用“ 回归基本”的简洁设计,不用众多的选项,获得比 H.263+好得多的压缩性能;加强了对各种信道的适应能力,采用“ 网络友好”的结构和语法,有利于对误码和丢包的处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传输(存储)场合的需求;它的基本系统是开放的,使用无需版权。 在技术上,H.2
20、64 标准中有多个闪光之处,如统一的 VLC符号编码,高精度、多模式的位移估计,基于 44 块的整数变换、分层的编码语法等。这些措施使得 H.264 算法具有很的高编码效率,在相同的重建图像质量下,能够比H.263 节约 50左右的码率。H.264 的码流结构网络适应性强,增加了差错恢复能力,能够很好地适应 IP 和无线网络的应用。 H.264 的技术亮点 (1) 分层设计 H.264 的算法在概念上可以分为两层:视频编码层(VCL:Video Coding Layer)负责高效的视频内容表示,网络提取层( NAL:Network Abstraction Layer)负责以网络所要求的恰当的方
21、式对数据进行打包和传送。在 VCL 和NAL 之间定义了一个基于分组方式的接口,打包和相应的信令属于 NAL 的一部分。这样,高编码效率和网络友好性的任务分别由 VCL 和 NAL 来完成。 VCL 层包括基于块的运动补偿混合编码和一些新特性。与前面的视频编码标准一样,H.264 没有把前处理和后处理等功能包括在草案中,这样可以增加标准的灵活性。 NAL 负责使用下层网络的分段格式来封装数据,包括组帧、逻辑信道的信令、定时信息的利用或序列结束信号等。例如, NAL 支持视频在电路交换信道上的传输格式,支持视频在 Internet 上利用 RTP/UDP/IP 传输的格式。NAL 包括自己的头部
22、信息、段结构信息和实际载荷信息,即上层的VCL 数据。(如果采用数据分割技术,数据可能由几个部分组成)。 (2) 高精度、多模式运动估计 H.264 支持 1/4 或 1/8 像素精度的运动矢量。在 1/4 像素精度时可使用 6 抽头滤波器来减少高频噪声,对于 1/8 像素精度的运动矢量,可使用更为复杂的 8 抽头的滤波器。在进行运动估计时,编码器还可选择“ 增强”内插滤波器来提高预测的效果。 在 H.264 的运动预测中,一个宏块(MB)可以按图 2 被分为不同的子块,形成 7 种不同模式的块尺寸。这种多模式的灵活和细致的划分,更切合图像中实际运动物体的形状,大大提高了运动估计的精确程度。在
23、这种方式下,在每个宏块中可以包含有 1、2 、4、8 或 16 个运动矢量。 在 H.264 中,允许编码器使用多于一帧的先前帧用于运动估计,这就是所谓的多帧参考技术。例如 2 帧或 3 帧刚刚编码好的参考帧,编码器将选择对每个目标宏块能给出更好的预测帧,并为每一宏块指示是哪一帧被用于预测。 (3) 44 块的整数变换 H.264 与先前的标准相似,对残差采用基于块的变换编码,但变换是整数操作而不是实数运算,其过程和 DCT 基本相似。这种方法的优点在于:在编码器中和解码器中允许精度相同的变换和反变换,便于使用简单的定点运算方式。也就是说,这里没有“ 反变换误差”。变换的单位是 44 块,而不
24、是以往常用的 88 块。由于用于变换块的尺寸缩小,运动物体的划分更精确,这样,不但变换计算量比较小,而且在运动物体边缘处的衔接误差也大为减小。为了使小尺寸块的变换方式对图像中较大面积的平滑区域不产生块之间的灰度差异,可对帧内宏块亮度数据的 16 个 44 块的DC 系数(每个小块一个,共 16 个)进行第二次 44 块的变换,对色度数据的 4 个 44 块的 DC 系数(每个小块一个,共 4 个)进行 22 块的变换。 H.264 为了提高码率控制的能力,量化步长的变化的幅度控制在 12.5%左右,而不是以不变的增幅变化。变换系数幅度的归一化被放在反量化过程中处理以减少计算的复杂性。为了强调彩
25、色的逼真性,对色度系数采用了较小量化步长。(4) 统一的 VLC H.264 中熵编码有两种方法,一种是对所有的待编码的符号采用统一的 VLC(UVLC :Universal VLC),另一种是采用内容自适应的二进制算术编码(CABAC:Context-Adaptive Binary Arithmetic Coding)。CABAC 是可选项,其编码性能比 UVLC 稍好,但计算复杂度也高。UVLC 使用一个长度无限的码字集,设计结构非常有规则,用相同的码表可以对不同的对象进行编码。这种方法很容易产生一个码字,而解码器也很容易地识别码字的前缀,UVLC 在发生比特错误时能快速获得重同步。 图
26、3 显示了码字的语法。这里,x0, x1,x2,是 INFO比特,并且为 0 或 1。图 4 列出了前 9 种码字。如:第 4号码字包含 INFO01,这一码字的设计是为快速再同步而经过优化的,以防止误码。 (5) 帧内预测 在先前的 H.26x 系列和 MPEG-x 系列标准中,都是采用的帧间预测的方式。在 H.264 中,当编码 Intra 图像时可用帧内预测。对于每个 44 块(除了边缘块特别处置以外),每个像素都可用 17 个最接近的先前已编码的像素的不同加权和(有的权值可为 0)来预测,即此像素所在块的左上角的 17 个像素。显然,这种帧内预测不是在时间上,而是在空间域上进行的预测编
27、码算法,可以除去相邻块之间的空间冗余度,取得更为有效的压缩。 如图 4 所示, 44 方块中 a、b、.、p 为 16 个待预测的像素点,而 A、B、.、P 是已编码的像素。如 m 点的值可以由(J2KL2)/ 4 式来预测,也可以由(A+B+C+D+I+J+K+L)/ 8 式来预测,等等。按照所选取的预测参考的点不同,亮度共有 9 类不同的模式,但色度的帧内预测只有 1 类模式。 (6) 面向 IP 和无线环境 H.264 草案中包含了用于差错消除的工具,便于压缩视频在误码、丢包多发环境中传输,如移动信道或 IP 信道中传输的健壮性。 为了抵御传输差错,H.264 视频流中的时间同步可以通过
28、采用帧内图像刷新来完成,空间同步由条结构编码(slice structured coding)来支持。同时为了便于误码以后的再同步,在一幅图像的视频数据中还提供了一定的重同步点。另外,帧内宏块刷新和多参考宏块允许编码器在决定宏块模式的时候不仅可以考虑编码效率,还可以考虑传输信道的特性。 除了利用量化步长的改变来适应信道码率外,在 H.264 中,还常利用数据分割的方法来应对信道码率的变化。从总体上说,数据分割的概念就是在编码器中生成具有不同优先级的视频数据以支持网络中的服务质量 QoS。例如采用基于语法的数据分割(syntax-based data partitioning)方法,将每帧数据的
29、按其重要性分为几部分,这样允许在缓冲区溢出时丢弃不太重要的信息。还可以采用类似的时间数据分割(temporal data partitioning)方法,通过在 P 帧和 B帧中使用多个参考帧来完成。 在无线通信的应用中,我们可以通过改变每一帧的量化精度或空间/时间分辨率来支持无线信道的大比特率变化。可是,在多播的情况下,要求编码器对变化的各种比特率进行响应是不可能的。因此,不同于 MPEG-4 中采用的精细分级编码 FGS(Fine Granular Scalability)的方法(效率比较低),H.264 采用流切换的 SP 帧来代替分级编码。 H.264 的性能测试 TML-8 为 H.
30、264 的测试模式,用它来对 H.264 的视频编码效率进行比较和测试。测试结果所提供的 PSNR 已清楚地表明,相对于 MPEG-4(ASP : Advanced Simple Profile)和 H.263+(HLP:High Latency Profile)的性能,H.264 的结果具有明显的优越性,如图 5 所示。 H.264 的 PSNR 比 MPEG-4(ASP)和 H.263+(HLP)明显要好,在 6 种速率的对比测试中,H.264 的 PSNR 比MPEG-4(ASP)平均要高 2dB,比 H.263(HLP)平均要高 3dB。6 个测试速率及其相关的条件分别为:32 kbi
31、t/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格式。 实现难度 对每个考虑实际应用的工程师而言,在关注 H.264 的优越性能的同时必然会衡量其实现难度。从总体上说,H.264 性能的改进是以增加复杂性为代价而获得的。目前全球也只有中国杭州海康威视数字技术有限公司在安防领域实现了H.264 的实际应用,这一次我们走到了世界的前端!