Board logo

标题: 基于Blackfin ADSP-21535实现MPEG4视频编解码的实现[转帖] [打印本页]

作者: chenyqiu    时间: 2005-11-14 13:24     标题: 基于Blackfin ADSP-21535实现MPEG4视频编解码的实现[转帖]

摘 要:本文分析了基于Blackfin ADSP-21535实现MPEG4视频编解码的实用性与可行性。
关键词:Blackfin MPEG4

一.Blackfin ADSP-21535介绍
Blackfin系列ADSP 是美国模拟器件公司推出的最新的DSP。ADSP-21535是其中的一种。作为ADI公司的新产品,它在性能、特点上的优势显而易见。
1. 采用双16位乘法累加器MAC(Multiply Accumulate Cycle)的改进型哈佛结构。
2. 在一个时钟周期内能够并行完成两个操作数的运算。
3.支持8比特、16比特、32比特整型的运算以及16比特、32比特浮点型的操作。
4.两个循环计数器,可作循环嵌套操作。
5.两个DAG(Data Address Generater),而且能产生位翻转的地址,以满足数字信号处理
中如FFT的运算。
6.具有600MHZ的核内时钟,300MHZ主频。
采用双MAC的结构具有正交的类似RISC的微处理器指令集,使单指令多数据和多媒体操作都引入单指令结构。这样的DSP芯片结构不但易于编程,可以快速的信号处理和多媒体的处理,而且方便的扩展USB、PCI I/O、UART、SPORT等接口(见图1)。非常适合对视频读入,处理以及传输。而且与其他的DSP相比Blackfin对于实时处理数字信号能够更加方便快捷(见表1)。
表1:典型算法处理时间 算法类型 时间 时钟周期
256点复数FFT 0.0106ms 3176
FIR 滤波器(per Tap) 13.33ns 4
IIR 滤波器(per Biquad) 20ns 6

 

 

 

 

 

 

 

 

 

 

 

 

基于以上特点,Blackfin作为兼有DSP的快速信号处理的特点和强大的

 

外部接口功能,非常适合于实现视频的编解码并进一步制作成标准的视频捕获压缩卡。下文将对基于Blackfin的MPEG4编解码应用进行详细说明。

二.实现MPEG4编解码的具体方案
用ADSP-21535芯片实现MPEG4视频编解码,包括硬件平台设计和MPEG4压缩软件实现两大部分。整个系统包括视频采集单元,MPEG4编解码单元,数据存储单元,逻辑控制单元、视频显示单元等。采集采用Conexant公司的Bt829,数据存储采用CYPRESS的SRAMCY7C104133,视频显示单元采用ADI公司的ADV7175完成。总体结构如图2所示。

 

 

 

 

 

 

 

 

 

 

 

系统的视频采集通过Bt829完成,经过FIFO1缓冲,Bt829依*内部时钟控制自动向FIFO1写数据,当FIFO1半满时,向DSP中断请求,采用DMA方式读入。DSP对数据压缩处理,当FIFO2半空时,向21535申请中断并向FIFO2中写数据。CPLD 产生行场同步信号,依*本身时钟读出FIFO2数据经过D/A转换输出到CRT显示。

三.MPEG4视频编解码器软件
1. MPEG4 概述
MPEG4是基于AV对象多媒体数据压缩标准。其主要内容包括系统流、视频流和音频流。
系统流主要定义表示视听场景信息,码流语法和语意及解码过程。视频流包括视频数据、静态纹理数据、2-D网格数和人脸活动参数四个内容。音频流主要包括合成的语音编码、高质量低码率传输编码、复杂音轨编码等。
本文主要对视频流数据作编解码对象。MPEG4视频编解码是基于VOP(Video Object Plane)进行的,VOP从类型上看包括帧内VOP(IVOP: Intra VOP),帧间前向因果VOP(PVOP:Inter Prediction VOP)、帧间双向非因果预测VOP(BVOP: Inter Bidirectional Prediction VOP),全景灵影VOP(SVOP: Sprite VOP)。从内容上看分形状信息、运动信息、纹理信息;从空间上看由若干个16×16的宏块(MB)组成,又可分成4个8×8的亮度块(Block)和2个8×8的色差块。
2. MPEG4编解码主要内容
对于不同类型的VOP,IVOP只用本身信息编码,PVOP利用过去参考信息运动补偿进行编码,BVOP利用过去和将来的参考VOP进行双向运动补偿编码。SVOP是一系列运动图象的静止背景,编码时采用IVOP,传输时只传一次,恢复时叠加上去即可。
对于不同内容的VOP,VOP形状信息编码只在宏块进行。二值形状信息编码算法是基于邻近信息的算术编码。灰度形状信息可采用运动补偿和DCT变换等算法。VOP运动信息(PVOP,BVOP) 既可在MB级也可在Block级进行,采用运动估计与运动补偿算法;VOP 纹理信息则是本身视频数据与运动预测数据差值,纹理信息编码采用基于DCT变换的编码方案:DCT、量化、游程编码、Huffman编码等过程。
3.MPEG4视频编解码
首先是编码的准备:对于384×288的VOP,图象采样点都在矩形内部,所以不含形
状信息编码。图像数据编码格式采用YUV 4:2:0 的格式,即每采样4个亮度样本,对应采样1个红色差和一个蓝色差。而且因为BVOP是双向预测编码的,必须参考PVOP编码完成才能开始编码,所以还需要分离IVOP,PVOP,BVOP。然后分别对他们编码和解码。
(1) IVOP编码:主要包括编码头、图象分割、块编码、生成码流几个部分。帧内编码主要基于块进行,所以图像被分割成16×16宏块,每个宏块又分成4个8*8的亮度块Y块、1个色差U块和1个色差V块。然后进行块编码:DCT变换、量化、交直流预测等。最后进行一维扫描游程编码和Huffman 编码。
(2) VOP编码:主要包括编码头、运动估计、PVOP图象纹理编码、运动向量编码。运动估计主要实现图像搜索和图像的运动向量以决定运动类型和运动方式。纹理编码则主要运动补偿和残差编码。
(3) BVOP的编码:支持基于宏块的运动估计和交织的场运动估计,它也允许采用H.263中类似的直接运动估计。所以它的估计模式有:向前模式、向后模式、双向模式、直接模式。其纹理编码和运动向量编码与PVOP类似。
4.BlackFin在MPEG4编解码中的优势
Blackfin的时钟频率,硬件结构与指令系统都可以大大优化程序的运行速度。 Blackfin ADSP-21535在一个时钟周期内可并行完成:单指令累加器或算术逻辑单元的操作;两个32位数据的传送;两个指针的更新;两个硬件循环的内容更新。
从它的硬件结构与指令系统来看,它对与视频的处理有许多快捷的实现方式。例如在MPEG4运动搜索中是使用条块匹配,需要进行VOP范围内点的搜索。匹配使当前的图像与预测图像的绝对差值和,即SAD(Sum Of Absolute Difference)最小。


SAD越小,预测就越准确。Blackfin对于SAD的计算,有专门的硬件指令对应,使搜索的速度大大加快。ADSP-21535提供两种指令形式:
SAA(src_reg_0,src_reg_1) 和SAA(src_reg_0,src_reg_1) (R)


 

[此贴子已经被作者于2005-11-14 13:24:57编辑过]






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0