资料介绍
目前,音视频技术日新月异,其中,视频实时编码传输极具代表性。在视频压缩算法领域,新一代视频压缩标准H.264以其优异的压缩性能和图像质量使视频实时编码传输技术的实现成为可能。但该标准的计算复杂度高,用一般的图像处理芯片难以达到实时编解码的要求,它需要快速、稳定的处理器作为硬件平台。ADSP-BF561是ADI公司推出的高性能多媒体处理器。其主要特点是具有两个ADSP-BF533处理器核心(以下简称核心A和核心B),最高时钟频率达到600MHz,其内部采用哈佛总线结构,存储模型层次化。其典型应用模式是A核运行嵌入式操作系统,B核运行多媒体处理算法,如H.264。本文提出了一套采用ADSP-BF561芯片实现H.264视频压缩算法的设计方案,结合该DSP平台对算法进行了针对性的优化,充分发挥了ADSP-BF561强大的处理能力。
1 算法介绍
1.1 H.264编码模型框架
H.264以其高压缩比、高图像质量和良好的网络亲和性广受业界欢迎。在同等质量条件下,H.264的数据压缩比比MPEG-2高2~3倍,比MPEG-4高1.5~2倍。其需要的带宽只有MPEG-4的50%, MPEG-2的12.5%。
H.264标准采用分层体系结构,系统分为:视频编码层VCL(Video CodingLayer),负责高效的数字视频压缩;网络抽象层NAL(Network AbstractionLayer),负责对数据进行打包和传送。H.264编码图像通常分为三种类型:I帧、P帧、B帧。I帧为帧内编码帧,其编码不依赖于已编码的图像数据。P帧为前向预测帧,B帧为双向预测帧,编码时都需要根据参考帧进行运动估计。同时,H.264在提高图像传输容错性方面做了大量工作,重新定义了适于图像的结构划分。在编码时,图像帧各部分被划分到多个Slice结构中,每个Slice都可以被独立编码,不受其他部分影响。Slice由图像最基本的结构——宏块组成,每个宏块包含一个16×16的亮度块和两个8×8的色度块。H.264标准的整体编码框图如图1所示。编码过程中,原始数据进入编码器后,当采用帧内编码时,首先选择相应的帧内预测模式进行帧内预测,随后对实际值和预测值之间的差值进行变换、量化和嫡编码,同时编码后的码流经过反量化和反变换之后重构预测残差图像,再与预测值相加得出重构帧,得出的结果经过去块滤波器平滑后送入帧存储器。采用帧间编码时,输入的图像块首先在参考帧中进行运动估计,得到运动矢量。运动估计后的残差图像经整数变换、量化和嫡编码后与运动矢量一起送入信道传输。同时另一路码流以相同的方式重构后,经去块滤波后送入帧存储器作为下一帧编码的参考图像。
1.2 H.264关键技术
1.2.1 帧内预测
H.264引入了帧内预测以提高压缩效率。帧内预测编码就是利用周围邻近的像素值来预测当前的像素值,然后对预测误差进行编码。这种预测是基于块的。对于亮度分量,块的大小可以在16×16和4×4之间选择,16×16有4种预测模式,4×4有9种预测模式;对于色度分量,预测是对整个8×8块进行的,有4种预测模式。
1.2.2 帧间预测
帧间预测时所用块的大小可变。假设基于块的运动模型,其块内的所有像素都做了相同的平移,在运动比较剧烈或者运动物体的边缘外,这一假设会与实际出入较大,从而导致较大的预测误差,这时减小块的大小可以使假设在小块中依然成立。另外小块所造成的块效应相对也小,因此,小块可以提高预测的效果。H.264一共采用了7种方式对一个宏块进行分割,每种方式下块的大小和形状都不相同,编码器可以根据图像的内容选择最好的预测模式。与仅使用16x16块进行预测相比,使用不同大小和形状的块可以使码率节约15%以上。
同时,帧内预测采用了更精细的预测精度,H.264中亮度分量的运动矢量使用1/4像素精度。色度分量的运动矢量使用1/8像素精度。
1.2.3 多帧参考
H.264支持多帧参考预测,最多可以有5个在当前帧之前的解码帧作为参考帧产生对当前帧的预测,提高H.264解码器的错误恢复能力。
1.2.4 整数变换
H.264对残差图像的4×4整数变换技术,采用定点运算来代替以往DCT变换中的浮点运算。以降低编码时间,同时也更适合硬件平台的移植。
1.2.5 熵编码
H.264支持两种熵编码方法,即CAVLC(基于上下文的自适应可变长编码)和CABAC(基于上下文的自适应算术编码)。其中CAVLC的抗差错能力比较高,但编码效率比CABAC低;而CABAC的编码效率强,但需要的计算量和存储容量更大。
1.2.6 去方块滤波
去方块滤波的作用是消除经反量化和反变换后重建图像中由于预测误差产生的块效应,从而改善图像的主观质量和预测误差。经过滤波后的图像将根据需要放在缓存中用于帧间预测,而不是仅仅用来改善主观质量,因此该滤波器位于解码环中。对于帧内预测,使用的是未经过滤波的重建图像。
2 算法实现
2.1 平台选择
2.1.1 ADSP-BF561芯片介绍
ADSP-BF561是Blackfin系列中的一款高性能定点DSP视频处理芯片。其主频最高可达750MHz,内核包含2个16位乘法器MAC、2个40位累加器ALU、4个8位视频ALU,以及1个40位移位器。该芯片中的两套数据地址产生器(DAG)可为同时从存储器存取双操作数提供地址,每秒可处理1 200兆次乘加运算。芯片带有专用的视频信号处理指令以及100KB的片内L1存储器(16KB的指令Cache,16 KB的指令SRAM,64 KB的数据Cache/SRAM,4 KB的临时数据SRAM)、128KB的片内L2存储器SRAM,同时具有动态电源管理功能。此外,Blackfin处理器还包括丰富的外设接口,包括EBIU接口(4个128 MBSDRAM接口,4个1MB异步存储器接口)、3个定时/计数器、1个UART、1个SPI接口、2个同步串行接口和1路并行外设接口(支持ITU-656数据格式)等。Blackfin处理器在结构上充分体现了对媒体应用(特别是视频应用)算法的支持。
2.1.2 ADSP-561 EZkite
ADSP-BF561视频编码器平台采用ADI公司的ADSP-BF561 EZ-kitLite评估板。此评估板包括1块ADSP-BF561处理器、32 MB SDRAM和4 MBFlash,板中的AD-V1836音频编解码器可外接4输入/6输出音频接口;而ADV7183视频解码器和ADV7171视频编码器则可外接3输入/3输出视频接口。此外,该评估板还包括1个UART接口、1个USB调试接口和1个JTAG调试接口。摄像头输入的模拟视频信号经视频芯片ADV7183A转化为数字信号,此信号从ADSP-BF561的PPI1(并行外部接口)进入ADSP-BF561芯片进行压缩,压缩后的码流则经ADV7179转换后从ADSP-BF561的PPI2口输出。此系统可通过Flash加载程序,并支持串口及网络传输。编码过程中的原始图像、参考帧等数据可存储在SDRAM中。
1 算法介绍
1.1 H.264编码模型框架
H.264以其高压缩比、高图像质量和良好的网络亲和性广受业界欢迎。在同等质量条件下,H.264的数据压缩比比MPEG-2高2~3倍,比MPEG-4高1.5~2倍。其需要的带宽只有MPEG-4的50%, MPEG-2的12.5%。
H.264标准采用分层体系结构,系统分为:视频编码层VCL(Video CodingLayer),负责高效的数字视频压缩;网络抽象层NAL(Network AbstractionLayer),负责对数据进行打包和传送。H.264编码图像通常分为三种类型:I帧、P帧、B帧。I帧为帧内编码帧,其编码不依赖于已编码的图像数据。P帧为前向预测帧,B帧为双向预测帧,编码时都需要根据参考帧进行运动估计。同时,H.264在提高图像传输容错性方面做了大量工作,重新定义了适于图像的结构划分。在编码时,图像帧各部分被划分到多个Slice结构中,每个Slice都可以被独立编码,不受其他部分影响。Slice由图像最基本的结构——宏块组成,每个宏块包含一个16×16的亮度块和两个8×8的色度块。H.264标准的整体编码框图如图1所示。编码过程中,原始数据进入编码器后,当采用帧内编码时,首先选择相应的帧内预测模式进行帧内预测,随后对实际值和预测值之间的差值进行变换、量化和嫡编码,同时编码后的码流经过反量化和反变换之后重构预测残差图像,再与预测值相加得出重构帧,得出的结果经过去块滤波器平滑后送入帧存储器。采用帧间编码时,输入的图像块首先在参考帧中进行运动估计,得到运动矢量。运动估计后的残差图像经整数变换、量化和嫡编码后与运动矢量一起送入信道传输。同时另一路码流以相同的方式重构后,经去块滤波后送入帧存储器作为下一帧编码的参考图像。
1.2 H.264关键技术
1.2.1 帧内预测
H.264引入了帧内预测以提高压缩效率。帧内预测编码就是利用周围邻近的像素值来预测当前的像素值,然后对预测误差进行编码。这种预测是基于块的。对于亮度分量,块的大小可以在16×16和4×4之间选择,16×16有4种预测模式,4×4有9种预测模式;对于色度分量,预测是对整个8×8块进行的,有4种预测模式。
1.2.2 帧间预测
帧间预测时所用块的大小可变。假设基于块的运动模型,其块内的所有像素都做了相同的平移,在运动比较剧烈或者运动物体的边缘外,这一假设会与实际出入较大,从而导致较大的预测误差,这时减小块的大小可以使假设在小块中依然成立。另外小块所造成的块效应相对也小,因此,小块可以提高预测的效果。H.264一共采用了7种方式对一个宏块进行分割,每种方式下块的大小和形状都不相同,编码器可以根据图像的内容选择最好的预测模式。与仅使用16x16块进行预测相比,使用不同大小和形状的块可以使码率节约15%以上。
同时,帧内预测采用了更精细的预测精度,H.264中亮度分量的运动矢量使用1/4像素精度。色度分量的运动矢量使用1/8像素精度。
1.2.3 多帧参考
H.264支持多帧参考预测,最多可以有5个在当前帧之前的解码帧作为参考帧产生对当前帧的预测,提高H.264解码器的错误恢复能力。
1.2.4 整数变换
H.264对残差图像的4×4整数变换技术,采用定点运算来代替以往DCT变换中的浮点运算。以降低编码时间,同时也更适合硬件平台的移植。
1.2.5 熵编码
H.264支持两种熵编码方法,即CAVLC(基于上下文的自适应可变长编码)和CABAC(基于上下文的自适应算术编码)。其中CAVLC的抗差错能力比较高,但编码效率比CABAC低;而CABAC的编码效率强,但需要的计算量和存储容量更大。
1.2.6 去方块滤波
去方块滤波的作用是消除经反量化和反变换后重建图像中由于预测误差产生的块效应,从而改善图像的主观质量和预测误差。经过滤波后的图像将根据需要放在缓存中用于帧间预测,而不是仅仅用来改善主观质量,因此该滤波器位于解码环中。对于帧内预测,使用的是未经过滤波的重建图像。
2 算法实现
2.1 平台选择
2.1.1 ADSP-BF561芯片介绍
ADSP-BF561是Blackfin系列中的一款高性能定点DSP视频处理芯片。其主频最高可达750MHz,内核包含2个16位乘法器MAC、2个40位累加器ALU、4个8位视频ALU,以及1个40位移位器。该芯片中的两套数据地址产生器(DAG)可为同时从存储器存取双操作数提供地址,每秒可处理1 200兆次乘加运算。芯片带有专用的视频信号处理指令以及100KB的片内L1存储器(16KB的指令Cache,16 KB的指令SRAM,64 KB的数据Cache/SRAM,4 KB的临时数据SRAM)、128KB的片内L2存储器SRAM,同时具有动态电源管理功能。此外,Blackfin处理器还包括丰富的外设接口,包括EBIU接口(4个128 MBSDRAM接口,4个1MB异步存储器接口)、3个定时/计数器、1个UART、1个SPI接口、2个同步串行接口和1路并行外设接口(支持ITU-656数据格式)等。Blackfin处理器在结构上充分体现了对媒体应用(特别是视频应用)算法的支持。
2.1.2 ADSP-561 EZkite
ADSP-BF561视频编码器平台采用ADI公司的ADSP-BF561 EZ-kitLite评估板。此评估板包括1块ADSP-BF561处理器、32 MB SDRAM和4 MBFlash,板中的AD-V1836音频编解码器可外接4输入/6输出音频接口;而ADV7183视频解码器和ADV7171视频编码器则可外接3输入/3输出视频接口。此外,该评估板还包括1个UART接口、1个USB调试接口和1个JTAG调试接口。摄像头输入的模拟视频信号经视频芯片ADV7183A转化为数字信号,此信号从ADSP-BF561的PPI1(并行外部接口)进入ADSP-BF561芯片进行压缩,压缩后的码流则经ADV7179转换后从ADSP-BF561的PPI2口输出。此系统可通过Flash加载程序,并支持串口及网络传输。编码过程中的原始图像、参考帧等数据可存储在SDRAM中。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- EE-265使用ADSP-BF561 Blackfin®处理器标志针模拟PCM接口
- EE-272在ADSP-BF561 Blackfin®处理器上管理多个DXE
- ADSP-BF561黑线Processor硬件参考
- 适用于ADSP-BF561 Blackfin处理器的EZ-KIT Lite
- EE-314:启动ADSP-BF561 Blackfin®处理器
- ADSP-BF561黑体-欧美/SUV-Processor硬件参考
- ADSP-BF561 Blackfin版本0.3、0.5异常列表 0次下载
- EE-293:评估ADSP-BF561 Blackfin®处理器的功耗
- EE-265:使用ADSP-BF561 Blackfin®处理器标志针模拟PCM接口
- EE-272:在ADSP-BF561 Blackfin®处理器上管理多个DXE
- AN-813: ADSP-BF533/ADSP-BF561 Blackn®处理器与高速并行ADC接口
- 基于ADSP-BF561的嵌入式键盘设计与实现
- H.264视频编码在DM642上的实现与优化
- 基于ADSP-BF561的H.263编解码器实现
- 基于ADSP-BF561 的数字摄像系统设计
- 基于H.264实现最优重叠块匹配加权窗的系数设计 3311次阅读
- 用于实现并行处理加速硬件的H.264算法的改进和优化 2149次阅读
- 基于H.264解码芯片的FPGA原型验证平台实现视频控制模块的设计 2408次阅读
- 基于DE2开发板和NiosII处理器实现H.264编码器的设计 2312次阅读
- 基于BlackfinBF533处理器对H.264去方块滤波器性能进行优化 1231次阅读
- 矽海达科技SUE1 H.264编码模块介绍 1783次阅读
- 矽海达科技SUE2 H.264编码模块介绍 1846次阅读
- 矽海达科技SUE3 SDI H.264编码模块介绍 2030次阅读
- 矽海达科技SHD2低延时H264解码板介绍 2495次阅读
- 锐尔威视科技H.264百万USB摄像头模组规格 2876次阅读
- Blackfin系列处理器在网络多媒体中的应用及介绍 6025次阅读
- FFMPEG视频编解码流程 H.264硬件编解码实现 1.8w次阅读
- H.264和AVS核心技术分析 1500次阅读
- 基于ADSP-BF561的宽带信息终端设计 1260次阅读
- AVS视频标准和H.264核心技术的区别 1856次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多