H.264视频解码器在C6416 DSP上的实现
多媒体通信终端设备具有广泛的应用前景,可以应用于视频会议、可视电话、PDA、数字电视等各个领域,所以高效、实用的多媒体终端设备一直是通信领域研究的主要方向之一。
多媒体通信终端的实现主要有两点:一方面需要快速、稳定的处理器作为多媒体信号处理的平台,另一方面需要适合多媒体通信的协议标准和软件算法,尤其是对音视频信号的压缩处理算法。两者的结合才能产生高效的多媒体通信设备。目前,随着数字信号处理器(DSP)的高速发展,为实现高效的音视频信号处理提供了可能性;另一方面,最新的低码率视频压缩标准H.264的出台,提供了适合通信的视频标准和算法指导。因此,将两者结合,把H.264算法在DSP上实现,对于多媒体通信的研究具有一定的意义和价值。
本文介绍了H.264解码器算法的DSP实现。在设计中,采用了ATEME公司的网络视频开发平台(NVDK C6416)作为DSP处理平台,实现了H.264的优化解码算法。对于QCIF视频序列,解码速度达50~60帧/秒。
1 网络视频开发平台NVDK简介
NVDK是TI的第三方ATEME公司推出的基于TI C6400系列DSP评估开发套件,是一款适用于图像、视频信号处理的高速DSP开发平台[1]。该套件为诸如视频基础设施及网络化视频设备等高级视频应用制造商提供了方便,提高了数字视频应用项目的开发速度。
1.1 NVDK C6416体系结构
NVDK C6416由TMS320C6416 DSP内核、10/100 Mbps 的以太网子卡、音频/视频接口盒、PCI总线、存储器单元、扩展接口及独立电源等构成。其功能结构框图如图1所示。
1.2 NVDK C6416的主要特点
NVDK作为网络及视频开发套件,把很多音视频接口及网络接口直接做在板卡上,给采用TI C6000系列DSP芯片作为处理单元的开发用户提供了便利的前端平台。它为项目演示、算法实现、原型制作、数据仿真、FPGA开发和软件优化提供了完整的DSP开发平台。其主要特点如下:
·C6416 DSP内核:600MHz时钟频率及8指令并行结构,最高可以达到4800MIPS的处理能力。
·视频特点:在输入端,NVDK能够捕获PAL制或NTSC制的模拟视频信号,可以采用复合视频(CVBS)或者S-video视频信号输入,输入模拟视频信号被数字化为YUV422数字视频格式。在输出端,NVDK在支持复合视频(CVBS)以及S-Video输出的同时,还提供了SVGA输出模式,可以直接将信号输出到显示器上。就图像尺寸而言,视频采集提供FULL、CIF和QCIF三种图像格式,视频输出提供FULL和CIF两种图像格式。
·音频特点:提供两路双声道音频输出,CD音质的输入输出立体声接口,另外还提供一路单声道的麦克风输入。
·主接口:提供了PCI接口,允许与PC机相连。该板既可以以PCI模式运行,也可以单独脱机工作。
·网络接口:以太网接口为视频码流的网络传输带来了方便。
·外部扩展存储器:256M 64位宽扩展内存SDRAMA和8M 32位宽扩展内存SDRAMB及4MB FLASH ROM提供了足够的内存空间和灵活的内存分配方案。
2 H.264视频压缩标准
H.264是由ITU-T 视频编码专家组(VCEG)和ISO/IEC移动图像专家组(MPEG)共同提出的最新国际视频编码标准。它在H.261、H.263视频压缩标准的基础上,进行了进一步的改进和扩展。其目的是为了进一步降低编码码率,提高压缩效率,同时提供一个友好的网络接口,使得视频码流更适合在网络上传送[2]。由于该标准可以提供更低的码率,所以更适合应用于多媒体通信领域。
H.264主要有以下新特点:
·网络适配层NAL(Network Abstraction Layer)。
传统的视频编码编完的视频码流在任何应用领域下(无论用于存储、传输等)都是统一的码流模式,视频码流仅有视频编码层(Video Coding Layer)。而H.264根据不同应用增加不同的NAL片头,以适应不同的网络应用环境,减少码流的传输差错。
·帧内预测编码模式(Intra Prediction Coding)。
帧内预测编码合理地利用了I帧的空间冗余度,从而大大降低了I帧的编码码流。
·自适应块大小编码模式(Adaptive Block Size Coding)。
H.264允许使用16×16、16×8、8×16、8×8、8×4、4×8、4×4等子块预测和编码模式,采用更小的块和自适应编码的方式,使得预测残差的数据量减少,进一步降低了码率。
·高精度亚像素运动估计(High precision sub-pel Motion Estimation)。
- RedHatLinux新手入门教程(5)(11-12)
- 内核中的互斥之我见(11-12)
- VxWorks中怎么从Flash BOOT(11-15)
- 在Linux系统中批量建立用户的shell (04-08)
- Redhat和服务器相关软件站点全搜集(04-15)
- 安全多方位 Linux系统守护进程详解(04-16)