智能家居基于Blackfin533的H.264编码数字视频应用方案

发布时间:2014-11-29 阅读量:901 来源: 我爱方案网 作者:

【导读】随着计算机网络和多媒体技术的发展,数字视频的应用越来越广泛,如DVD、网络会议服务、数字电视等。在这些视频处理与通信中,有效的视频编码是其关键技术。

H.264/AVC是ITU-T视频编码专家组和ISO/IEC运动图像专家组联合提出的最新一代的视频编码标准。H.264具有许多优良的性能[1]:压缩比更高,与现有编码标准(H.263、MPEG-4 Simple Profile)相比,在相同视频质量下,能节省大约50%的码流,图像质量更好,适应性更广,能较好地满足实时(视频会议)及非实时(存储、广播等)等各种应用。在DSP上实现H.264的实时编码具有较大的工程意义及经济价值。

1 H.264标准简介及DSP平台

1.1 H.264标准简介


H.264是ITU-T和ISO/IEC联合制定的最新的视频编码标准,于1997年由ITU-T提出,2003年3月形成最终标准草案。它包含了视频压缩领域的许多最新研究成果,主要采用了下面的技术:

(1) 将编码分为编码层VCL(Video Coding Layer)和传输层NAL(Network Abstraction Layer)。将编码层和传输层分离,有利于H.264的扩展。

(2) H.264采用了空域内的帧内预测,共两种预测模式:intra16×16和intra4×4。其中intra16×16有四种预测方式,intra4×4有九种预测方式。

(3) 对于帧间预测,增加了预测模式,共七种预测模式。预测块从16×16可以最小细分为4×4。

(4) 增加了参考帧的数目,使预测更为准确。

(5) 将去块效应滤波放在编码环内,提高图像的主观质量。

(6) B帧可以作为参考帧,同时将图像的解码顺序与显示顺序分离。

(7) 采用整系数变换,提高变换速度。

(8) 采用CAVLC、CABAC等新的熵编码方法以提高编码效果。

(9) 提高了码流的抗误码能力,如对编码数据进行分割,一帧图像可以灵活地分为几个slice等。

1.2 基于Blackfin533的DSP平台


Blackfin533是ADI公司Blackfin系列中的一款高性能视频处理芯片。其主频最高能达600MHz,每秒可处理1200M次乘加运算。具有大量针对视频的专用指令,可以并行处理多条指令。

从总体上看,Blackfin533分为内核和系统接口两大部分。内核指处理器、L1存储器、事件控制器、内核定时器等;系统接口指SPORT接口、PPI接口、SPI接口、外部存储控制器、DMA控制器及与它们接口的外部资源等。

Blackfin533开发平台原理图如图1所示。摄像头输出的模拟视频信号经7113视频芯片转化为数字信号,此信号从Blackfin533的PPI接口进入Blackfin533,压缩后的码流由PCI桥传给PC机。此系统通过Flash启动,编码过程中的原始图像、参考帧及其他变量存储在SDRAM中。

图2为H.264编码系统的视频输入模块。7113芯片从视频端子读入摄像头输出的模拟信号,通过并口将数字信号输出给Blackfin533。Blackfin533通过I2C总线对7113进行配置,使其输出YUV模式、ITU656模式及增强ITU656模式等。
智能家居基于Blackfin533的H.264编码数字视频应用方案

图1 Blackfin533平台总体框架图

智能家居基于Blackfin533的H.264编码数字视频应用方案
      
图2 视频输入模块
         
智能家居基于Blackfin533的H.264编码数字视频应用方案            
图3 H.264编码模块图

 

2 H.264编码器的优化

2.1 总体优化


总体优化主要包括两部分内容:程序模块化的设计及数据结构的设计。

程序模块化设计时,既要考虑模块的独立性,又要考虑模块的完整性。笔者的H.264的模块关系图如图3所示。视频输入模块负责图像序列的读取,从PPI口进入的图像首先保存到外部存储器,再进行编码。读入的图像经帧间模式选择和帧内模式选择模块,得到每个宏块的预测模式。整系数变换、量化模块对预测后的残差进行整系数变换及量化处理。量化后的系数经过扫描后,在编码模块中进行UVLC编码。最后由写码流模块输出。其中,去块效应滤波模块对反量化、整系数逆变换后的重建图像进行滤波;图像缓存管理模块负责管理对参考图像的存取。从图3中可以看出,整系数变换与量化结合在一起作为一个模块。主要因为:一方面H.264中,量化和整系数变换本身就部分结合在一起;另一方面这样可以在寄存器中一起完成变换、量化,有助于减少数据的存储次数和读取时间。对于反量化、整系数逆变换,采用相似的设计思路。

数据结构的设计是H.264编码的重要组成部分。合理的数据结构既有利于提高数据访问的速度又有利于程序的不同平台的移植。主要有以下原则:尽可能连续存放数据,这样有利于用DMA方式对数据进行读取;每种数据结构完成相对简单的功能,这样便于对不同数据结构的数据进行管理。如表示帧间模式的InterMode、帧内模式的IntraMode需要放在片内存储器中以加快读取速度,而参考帧的数据ImgData由于数据太大则需要放在片外存储器中;尽可能使用短的数据类型,节省DSP的存储空间。

2.2 各程序模块的优化

各程序模块的优化主要指各模块的C代码优化及部分代码的汇编优化。

C代码的优化对H.264编码器有着重要意义,它既有利于提高编码的速度,又有利于编码器的跨平台移植。C代码优化有下面的原则:

(1) 使编码器代码线性化,这样有利于DSP的流水线满负荷运行,更充分地发挥DSP的数据处理能力。

(2) 取消循环中的数据依赖。数据依赖是指后面指令的输入数据依赖于前面指令的输出数据。许多DSP芯片都提供了硬件循环指令,Blackfin533有两个硬件循环器,可提供两层的硬件循环。硬件循环实现了零开销的循环判断,能大大提高循环指令的执行速度,然而数据依赖的存在会阻止硬件循环的使用。所以要尽可能消除循环中的数据依赖。

(3) 将除法转化为乘法或查表方式。Blackfin533提供了硬件乘法器,但没有硬件除法器。执行除法指令会花费几十或上百个指令周期。将除法转化为乘法或查表,能大大减少这种开销。

(4) 减少对片外存储器的访问次数。片外存储器相对于片内存储器是低速设备,片外存储器的读取时间是片内存储器的几倍至十几倍。对于片外存储器的数据要做到一次读取,完成多次计算。

Blackfin芯片的开发环境VisualDSP本身已经带有汇编器,但由于种种原因,对于某些运算量大、调用频繁的函数仍需要进行手动汇编优化。进行汇编优化时,应注意以下几点:

(1) 节省寄存器资源。Blackfin533提供了8个32位数据寄存器以及一系列的地址寄存器。对于这些寄存器,应尽可能做到一个寄存器多次使用;同时在能用较短的数据类型的情况下用短的数据类型,如能用short则不用int,这样每个32位寄存器可以作为两个16位寄存器使用,相当于增加了寄存器的数量。

(2) 使用专用指令。Blackfin533提供了求最大值、最小值、绝对值、CLIP及大量视频专用指令,通过使用这些指令,能大大提高代码的执行速度。

(3) 使用并行指令。对于大多数指令都存在相对应的并行指令,如一条运算指令可以并行两条数据读取指令。并行指令的使用能成倍提高代码的执行速度。

(4) 将内层循环展开等。

对于不同的图像帧(I、P),各模块所占的比例各不相同。对于I帧,帧内模式选择和去块效应滤波占较大的比例;对于P帧,帧间模式选择则占较大的比例。总之,模式选择及去块效应滤波是H.264编码的瓶颈,需要对这两部分进行优化。

进行模式选择时会调用绝对差值求和函数(SAD)及hadamard变换后再绝对值求和函数(SATD)。这两个函数虽然较简单,但调用较频繁,对这两个函数进行汇编优化,能较大提高模式选择的速度。对于绝对差值求和函数(SAD),通过使用Blackfin的专用视频指令SAA,可以大大提高运算速度,具体见汇编优化统计表1和表2。

表1 优化前后函数所占时钟周期数对比表
       
优化函数     优化前(时钟周期数)     优化后(时钟周期数)     提高倍数
SAD     1385     55     25
SATD     1964     84     23
GetStrength     50214     4983     10
EdgeLoopY     61227     5032     12
EdgeLoopUV     52110     4173     12

表2 优化后的H.264各模块性能
     
占用时间(时钟周期数M)     所占比例
模式选择(包含插值)     11.26     53.6%
变换、量化     1.87     8.9%
反量化、反变换     1.93     9.2%
编码(UVLC)     0.90     4.3%
去块效应滤波     2.73     13%
其他     2.31     11%

表3 压缩后的CIF图像的质量

H.264编码器

视频序列

(100帧)     平均峰值信噪比PSNR(dB)     码率(kbit/s)
亮度Y     色度U     色度V      
Foreman     36.57     41.23     43.39     503
Shanlin     34.00     39.95     41.30     1035
tempete     30.47     35.81     37.60     1059
mobile     30.58     34.48     34.24     1587

去块效应滤波在编码中占有较大的比重。主要包括:计算滤波强度和行列滤波两部分,需要针对这两个子模块进行优化。去块效应滤波中有较多的判断语句,判断语句会打断DSP的流水线,使DSP不能充分发挥其性能,优化时应尽可能将判断转移到循环外面去,以提高执行效率。同时去块效应滤波需要频繁地访问待滤波数据,减少对这些数据的访问次数也能较大地提高去块效应滤波的速度。

SAD()的函数原型及其汇编代码[2]:
for(i=0;i<16*16;i++)
result +=abs( *pSrc++ - *pRef++);
LSETUP(row_start,row_end) LC0=P1;  //利用Blackfin的硬件循环实现SAD的循环
row_start:
R3 = [I1++]; //读取数据
SAA(R1:0,R3:2) || R1= [I0++] || R2= [I1++]; //计算R1:0和R3:2的SAD
SAA(R1:0,R3:2)(R) || R0= [I0++] || R3= [I1++]; //执行SAA的同时,读取数据
SAA(R1:0,R3:2) || R1= [I0++] || R2= [I1++];
row_end:SAA(R1:0,R3:2)(R) || R0=[I0++] || R2= [I1++];

3 实验结果


笔者使用600MHz时钟的Blackfin533,对于低、中运动复杂度的图像序列,能够实现25帧/秒的实时编码;对于高运动复杂度的图像序列,能实现20帧/秒左右的准实时编码。其各模块所占时间比例见表2。

编码器的性能指标如下:1个参考帧;帧间模式采用16×16、16×8、8×16、8×8模式;帧内模式对16×16采用4种预测模式,对于4×4采用9种预测模式;1/4像素的运动估计;熵编码采用CAVLC编码方式。

表3为不同图像序列压缩效果的比较。每种序列压缩100帧图像,采用IPPPP....的编码模式。综上所述,在Blkfin533平台上实现了H.264的CIF图像的准实时编码。该系统具有码流低、延时小、图像质量高等优点。

相关文章

智能家居嵌入式设备的静止图像编码设计方案

应用于智能家居高清数字电视的适配均衡器GS1504设计方案

智能家居数字机顶盒关键技术及交互应用方案
相关资讯
AI引爆芯片扩产潮:2028年全球12英寸晶圆月产能将破1100万片

国际半导体产业协会(SEMI)最新报告指出,生成式AI需求的爆发正推动全球芯片制造产能加速扩张。预计至2028年,全球12英寸晶圆月产能将达1,110万片,2024-2028年复合增长率达7%。其中,7nm及以下先进制程产能增速尤为显著,将从2024年的每月85万片增至2028年的140万片,年复合增长率14%(行业平均的2倍),占全球总产能比例提升至12.6%。

高通双轨代工战略落地,三星2nm制程首获旗舰芯片订单

据供应链消息确认,高通新一代旗舰芯片骁龙8 Elite Gen 2(代号SM8850)将首次采用双轨代工策略:台积电负责基于N3P(3nm增强版)工艺的通用版本,供应主流安卓厂商;而三星则承接其2nm工艺(SF2)专属版本,专供2026年三星Galaxy S26系列旗舰机。此举标志着高通打破台积电独家代工依赖,三星先进制程首次打入头部客户供应链。

美光2025Q3财报:HBM驱动创纪录营收,技术领先加速市占扩张

在AI算力需求爆发性增长的浪潮下,存储巨头美光科技交出超预期答卷。其2025财年第三季度营收达93亿美元,创历史新高,其中高带宽内存(HBM)业务以环比50%的增速成为核心引擎。凭借全球首款12层堆叠HBM3E的量产突破,美光不仅获得AMD、英伟达等头部客户订单,更计划在2025年末将HBM市占率提升至24%,直逼行业双寡头。随着下一代HBM4基于1β制程的性能优势验证完成,一场由技术迭代驱动的存储市场格局重构已然开启。

对标TI TAS6424!HFDA90D以DAM诊断功能破局车载音频安全设计

随着汽车智能化升级,高保真低延迟高集成度的音频系统成为智能座舱的核心需求。意法半导体(ST)推出的HFDA80D和HFDA90D车规级D类音频功放,以2MHz高频开关技术数字输入接口及先进诊断功能,为车载音频设计带来突破性解决方案。

村田量产全球首款0805尺寸10μF/50V车规MLCC,突破车载电路小型化瓶颈

随着汽车智能化电动化进程加速,自动驾驶(AD)和高级驾驶辅助系统(ADAS)等关键技术模块已成为现代车辆标配。这些系统依赖于大量高性能电子控制单元(ECU)和传感器,导致车内电子元件数量激增。作为电路稳压滤波的核心元件,多层片式陶瓷电容器(MLCC)的需求随之水涨船高,尤其是在集成电路(IC)周边,对大容量电容的需求尤为迫切。然而,有限的电路板空间与日益增长的元件数量及性能要求形成了尖锐矛盾,元件的高性能化与小型化成为行业亟待攻克的关键难题。