中国视频在线(www.chinavideoonline.com)致力于收集各种流媒体相关的技术资料,以及流媒体常识和应用方案,力求为广大朋友了解学习和使用流媒体技术提供帮助
基于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)
将结果放在A0与A1中,如下表所示
所以只需要使用一条指令就可完成4个字节的绝对差运算。而且根据引导地址寄存器(Index Register)I0,I1的不同可以依次取不同的4个字节。其指令为:
SAA(r1:0,r3:2) | | r0=[I0++] | | r2=[I1++];
在循环中不停的累加,而且在同一时钟周期可并行处理运算和地址内容的更新,这样就大大节约了时间。
除此之外,Blackfin的许多汇编指令都可以方便的针对视频处理。如BYTEOP16P就实现4个对应单元的加(Quad_8_Bit_Add),BYTEOP16M(Quad_8_bit_Subtract)实现4个对应单元减。BYTEOP1P就实现4个对应单元的平均值。此外还有高低位互换,位截取和拼接的指令在数据压缩和解压时可以方便的写入读出。
以8×8一维快速DCT变换为例,采用chen算法,采用大量并行操作以及合适的单指令。Blankfin计算完整块只需要293个时钟周期,也就是只需要不到1微秒的时间,大大快于一般的DSP运算时间。
输入:R0.H=f (0) R0.L=f(1) R1.L=f(2) R1.H=f(3) R2.L=f(4)
R2.H=f(5) R3.H=f(6) R3.L=f(7)
输出:R2.H=F(1) R2.L=F(7) R4.H=F(5) R4.L=F(3 ) R5.H=F(4) R5.L=F(0)
R6.H=F(2) R6.L=F(6)
第一级蝶形运算:
R0 = R0+|+R3 , R3 =R0 -|- R3 (ASR) | | R1.L= W[I0++];
R1 = R1 +|+ R2 , R2=R1 -|- R2(ASR CO) | | NOP | | R7 = [ I3 ++ ];
/*并行指令实现四个蝶形运算,R7内放的是下一级所需要的系数 */
第二级蝶形运算:
R0 = R0 +|+ R1 , R1 = R0 -|- R1;
/*并行指令实现上区两个蝶形运算 */
LSETUP(ROW_START, ROW_END) LC1=P2 >>1; /*需循环8列 */
A1 = R3.H * R7.L , A0 = R3.H * R7.L | | NOP | | W[I0]=R3.L;
R4.H=(A1-=R2.L*R7.L),R4.L=(A0+= R2.L * R7.L)| | R7=[I3++];
/*下区R2.H与R3.L不动,R2.L与R3.H作蝶形运算并乘以系数*/
/*R7取下一次所需的两个系数*/
第三级蝶形运算:
A1 = R0.L * R7.L , A0 = R0.L * R7.L | | NOP | | R3.H = W[I1++];
R5.H=(A1-=R0.H*R7.L),R5.L=(A0+= R0.H * R7.L)| | R7=[I3++];
/*并行指令实现上区两个蝶形运算(一次计算结果) */
A1 = R1.L * R7.L , A0 = R1.L * R7.L | | NOP | | W[P0++P3]=R5.L| | R2.L=W[I0];
R2=R2 +|+ R4 ,R4 = R2 -|- R4 | | I0 += 4| | R3.L=W[I1--];
R6.H=(A1+=R0.H*R7.L),R6.L=(A0-= R1.H * R7.L)| | I0 +=4| |R7=[I3++];
/*作下区两个的蝶形运算,其中R2.L的值即原R3.L的值,这样处理为结构上更方便*/
第四级蝶形运算:
A1 = R2.H * R7.L , A0 = R2.L * R7.L | | W[P0++P3]=R6.H | | R0=[I0++];
R2.H=(A1+=R2.L*R7.L),R2.L=(A0-= R2.H * R7.L)| | W[P0++P3]| |R7=[I3++];
/*下区一组蝶形运算,并将结果放入目标矩阵*/
A1 = R4.H * R7.L , A0 = R4.L * R7.L | | NOP | | W[P0++P2]=R6.L;
R4.H=(A1+=R4.L*R7.L),R4.L=(A0-=R4.H* R7.L)| | W[P0++P4]=R2.L| |R1.L=[I0++];
/*下区另一组蝶形运算,并将结果放入目标矩阵*/
第一级蝶形运算:
R0 = R0+|+R3 , R3 =R0 -|- R3 (ASR) | | W[P1++P3]=R2.H;
R1 = R1 +|+ R2 , R2=R1 -|- R2(ASR CO) | |W[P1++P3]=R4.L | R7=[I3++];
ROW_END: R0=R0 +|+ R1,R1= R0-|- R1 | | W[P1++P5]=R4.H || NOP;
//作下一列的第一级运算,并将上一列结果完全放入矩阵,再次循环
从以上程序可以发现,无论从结构的紧凑和对称性,还是指令的针对性,都可算是相当合理。
仅用几条并行指令,就能把数据的变换、运算、存储很好的完成。从中可见Blackfin的信号处理方面独特的优势。 当然主要的程序处理还是以C语言为主,但是对一些具有大运算量的循环执行的部分用汇编语言优化,可以大大提高执行的速度,以达到优化程序的目的。
四.实验结果和结论
整个系统使用VISUAL DSP++进行开发,用EZ_ICE 通过JTAG接口进行仿真。在PAL SQ Pixel QCIF格式(384×288)视频进行测试。采集的帧率为25fps,当只进行帧内编码平均压缩一帧时间为30ms左右,压缩比在量化步长为6时约为50倍。当同时压缩帧内和帧间编码时,平均一帧时间为45ms左右,运动幅度小的视频序列压缩比为60倍左右。当对IVOP 、PVOP、BVOP同时编码,平均压缩一帧需60ms左右,平均压缩比为40倍左右。从中可得出结论,用Blackfin实现MPEG4编解码方案是可行的。它能有效解决传输数据瓶颈问题。如果对算法再进行适当的优化应该可以满足视频传输的要求。而且用Blackfin进行视频编解码操作是经济的。
关键词: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)
将结果放在A0与A1中,如下表所示
所以只需要使用一条指令就可完成4个字节的绝对差运算。而且根据引导地址寄存器(Index Register)I0,I1的不同可以依次取不同的4个字节。其指令为:
SAA(r1:0,r3:2) | | r0=[I0++] | | r2=[I1++];
在循环中不停的累加,而且在同一时钟周期可并行处理运算和地址内容的更新,这样就大大节约了时间。
除此之外,Blackfin的许多汇编指令都可以方便的针对视频处理。如BYTEOP16P就实现4个对应单元的加(Quad_8_Bit_Add),BYTEOP16M(Quad_8_bit_Subtract)实现4个对应单元减。BYTEOP1P就实现4个对应单元的平均值。此外还有高低位互换,位截取和拼接的指令在数据压缩和解压时可以方便的写入读出。
以8×8一维快速DCT变换为例,采用chen算法,采用大量并行操作以及合适的单指令。Blankfin计算完整块只需要293个时钟周期,也就是只需要不到1微秒的时间,大大快于一般的DSP运算时间。
输入:R0.H=f (0) R0.L=f(1) R1.L=f(2) R1.H=f(3) R2.L=f(4)
R2.H=f(5) R3.H=f(6) R3.L=f(7)
输出:R2.H=F(1) R2.L=F(7) R4.H=F(5) R4.L=F(3 ) R5.H=F(4) R5.L=F(0)
R6.H=F(2) R6.L=F(6)
第一级蝶形运算:
R0 = R0+|+R3 , R3 =R0 -|- R3 (ASR) | | R1.L= W[I0++];
R1 = R1 +|+ R2 , R2=R1 -|- R2(ASR CO) | | NOP | | R7 = [ I3 ++ ];
/*并行指令实现四个蝶形运算,R7内放的是下一级所需要的系数 */
第二级蝶形运算:
R0 = R0 +|+ R1 , R1 = R0 -|- R1;
/*并行指令实现上区两个蝶形运算 */
LSETUP(ROW_START, ROW_END) LC1=P2 >>1; /*需循环8列 */
A1 = R3.H * R7.L , A0 = R3.H * R7.L | | NOP | | W[I0]=R3.L;
R4.H=(A1-=R2.L*R7.L),R4.L=(A0+= R2.L * R7.L)| | R7=[I3++];
/*下区R2.H与R3.L不动,R2.L与R3.H作蝶形运算并乘以系数*/
/*R7取下一次所需的两个系数*/
第三级蝶形运算:
A1 = R0.L * R7.L , A0 = R0.L * R7.L | | NOP | | R3.H = W[I1++];
R5.H=(A1-=R0.H*R7.L),R5.L=(A0+= R0.H * R7.L)| | R7=[I3++];
/*并行指令实现上区两个蝶形运算(一次计算结果) */
A1 = R1.L * R7.L , A0 = R1.L * R7.L | | NOP | | W[P0++P3]=R5.L| | R2.L=W[I0];
R2=R2 +|+ R4 ,R4 = R2 -|- R4 | | I0 += 4| | R3.L=W[I1--];
R6.H=(A1+=R0.H*R7.L),R6.L=(A0-= R1.H * R7.L)| | I0 +=4| |R7=[I3++];
/*作下区两个的蝶形运算,其中R2.L的值即原R3.L的值,这样处理为结构上更方便*/
第四级蝶形运算:
A1 = R2.H * R7.L , A0 = R2.L * R7.L | | W[P0++P3]=R6.H | | R0=[I0++];
R2.H=(A1+=R2.L*R7.L),R2.L=(A0-= R2.H * R7.L)| | W[P0++P3]| |R7=[I3++];
/*下区一组蝶形运算,并将结果放入目标矩阵*/
A1 = R4.H * R7.L , A0 = R4.L * R7.L | | NOP | | W[P0++P2]=R6.L;
R4.H=(A1+=R4.L*R7.L),R4.L=(A0-=R4.H* R7.L)| | W[P0++P4]=R2.L| |R1.L=[I0++];
/*下区另一组蝶形运算,并将结果放入目标矩阵*/
第一级蝶形运算:
R0 = R0+|+R3 , R3 =R0 -|- R3 (ASR) | | W[P1++P3]=R2.H;
R1 = R1 +|+ R2 , R2=R1 -|- R2(ASR CO) | |W[P1++P3]=R4.L | R7=[I3++];
ROW_END: R0=R0 +|+ R1,R1= R0-|- R1 | | W[P1++P5]=R4.H || NOP;
//作下一列的第一级运算,并将上一列结果完全放入矩阵,再次循环
从以上程序可以发现,无论从结构的紧凑和对称性,还是指令的针对性,都可算是相当合理。
仅用几条并行指令,就能把数据的变换、运算、存储很好的完成。从中可见Blackfin的信号处理方面独特的优势。 当然主要的程序处理还是以C语言为主,但是对一些具有大运算量的循环执行的部分用汇编语言优化,可以大大提高执行的速度,以达到优化程序的目的。
四.实验结果和结论
整个系统使用VISUAL DSP++进行开发,用EZ_ICE 通过JTAG接口进行仿真。在PAL SQ Pixel QCIF格式(384×288)视频进行测试。采集的帧率为25fps,当只进行帧内编码平均压缩一帧时间为30ms左右,压缩比在量化步长为6时约为50倍。当同时压缩帧内和帧间编码时,平均一帧时间为45ms左右,运动幅度小的视频序列压缩比为60倍左右。当对IVOP 、PVOP、BVOP同时编码,平均压缩一帧需60ms左右,平均压缩比为40倍左右。从中可得出结论,用Blackfin实现MPEG4编解码方案是可行的。它能有效解决传输数据瓶颈问题。如果对算法再进行适当的优化应该可以满足视频传输的要求。而且用Blackfin进行视频编解码操作是经济的。
(C) 2004-2006 中国视频在线 技术支持:梦想家网络工作室
