基于Blackfin533的H.264编码
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图像的准实时编码。该系统具有码流低、延时小、图像质量高等优点。
参考文献
1 Draft ITU-T recommendation and final draft international stan- dard of joint
video specification (ITU-T Rec. H.264/ISO/IEC 14 496-10 AVC. in Joint Video Team (JVT)
of ISO/IEC MPEG and ITU-T VCEG, JVTG050, 2003
2 AD Inc. Blackfin processor instruction set reference.Rev 3.0,June 2004:417~421,487~492
- DVI与HDMI:视频传输的数字化革命(08-15)
- 大规模IPTV点播系统解决方案(08-18)
- 数字音视频编解码技术标准AVS(08-19)
- 嵌入式设备的静止图像编码(08-18)
- 全球手机电视三大技术标准对比分析(08-19)
- 高清标准:入主中国,到底谁家?(08-20)