论文部分内容阅读
【摘 要】随着社会不断发展进步,视频技术广泛应用于日常生活与专业领域之中。MPEG-4视频编码技术为其中一种常用技术,本文阐述应用BF561处理器完成MPEG-4 SP框架层次下视频编码系统的实现过程。首先,运用纯C语言实现编码功能,可通过建立的软件完成算法研究、修改,并将其作为DSP移植的根本,实现在DSP的开发。其次,应用集成调试环境Visual DSP 4.5++完成后续开发,最终达到编码目标。
【关键词】DSP;MPEG-4;编码
1.Visual DSP 4.5++
Visual DSP 4.5 ++拥有强大的编辑功能与高效的工程管理能力,还具有优秀的调试控制能力与可视效果。其调试媒介能够应用软件进行模拟,也能够用硬件应用JTAG在EZKIT评估板上,还能够应用USB口实现调试。Visual DSP4.5++调试器具有优秀的绘图功能,能够清晰展现数据,促进工作效率。此外,其统计学特性能够实现在不中断程序的情况下获取代码运行情况,更精准的改进程序性能。
2.MPEG-4 SP编码系统整体设计
MPEG-4 SP框架结构高效、容错高的特点,十分适合运用在数字电视、多媒体监控等低功耗系统中,属嵌入式系统开发的主要技術。本次设计MPEG-4 SP应用混合编码框架,编码原理框架如图1。
系统的硬件平台如图2
设计开发流程如下,第一,应用VC 6.0新建“encode-PC”,利用Xvidcorl.0.2构建编码器。第二,构建纯C代码,实现源代码修改。注意,输入为.yuv文件,输出为.m4v 文件。第三,于PC平台,删减不需要的代码,调节函数数,将常用小函数写入,完成准备工作。第四,于Visual DSP 4.5++,架构工程组,调节函数存放位置。第五,反复完成编译、修缮、调试,构建可应用于DSP的程序。第六,将输入转变为摄像头,输出转变为SDRAM缓存。第七,应用Visual DSP4.5++M优化方案,选择正确的编译选项。第八,结合统计窗口,调整LDF中的存储器规模,重设L1存储SRAM于Cache大小,再对相应变量的位置进行调节。第九,实现BF561在宏块层上的并行处理。第十,完善汇编级代码。第十一,将处理好的二进制文件转移到Flash完成调试。
3.软件移植
主要目的在于调整代码适用于BF561,使其能够应用于DSP。流程如下,第一,于VisualDSP4.5++,新建项目组,并构建corea、coreb、sml2、sml3四个项目,分别代表内核A、B与存储空间L1、L2。第二,将源代码转移到对应项目,随后反复进行编译修改。第三,于VisualDSP 4.5++进行数据读写,确保程序正常运行,再改写输入输出模式,除去不需要函数,输入转为从PPI0由A/D转成的数据,输出转为输出缓冲区。
4.双核DSP宏块层并行结构设计
4.1并行性分析
视频编码算法中并行性分析分两种,其一,可并行计算,其数据流明确、运算简便、相关性弱。其二,不可并行计算,其运算控制与数据相关性强。通过并行处理视频压缩能够有效应对计算量大的情况。以下对MPEG-4进行并行分析,优化设计,MPEG-4图像编码囊括I、P、B-VOP,其中B-VOP未应用于MPEG-4 SP。MPEG-4的层次由上至下分作块层、宏块层、条层、视频对象层、视频对象平面组层,按照上述次序进行编码,于宏块以外的各层添加起始码与头标,构建MPEG-4基本码流。结合并行特点,从块层开始考虑并行性,块层两核之间进行运动补偿将产生强烈的相关特性,需传递信息量巨大,效率不高;而宏块层与并行粒度最适,在16*16宏块,实现并行性能够达到很好的效率,但编码依赖于前一宏块,所以需采用科学通信方式,解决该问题;条层能取得媒体并行运算处理机制,通过MPEG引进SLICE,是指能够单独进行编码;以更粗糙层进行考虑,能够用VOG实现并行处理,不过,GOP无法彻底排除I-VOP、P-VOP、B-VOP间的强依靠性,若设VOP为IBBPBBPBBPBB能够得知,最终帧的编码一定会依靠下一VOG的首帧,因此同样产生相关性,综上,采取宏块层实现并行性处理是最有效的方式。
4.2BF561并行性算法
BF561双核有大量硬件资源支持,可单独运行,避免BF561两个核通信频繁降低效率,结合MPEG-4编码标准,应用宏块层进行并行处理。依据MPEGY编码步骤,处理视频数据,并存在SDRAM,由BF561经过DMA读取16*16个宏块相对的Y、Cb、Cr,如图3,根据4:2:0格式实现双核编码,最后输入至存储空间。
综合BF561双核对称特性及Ⅲ级存储优点,发挥DMA强大功能,设计有效的编码流程,具体流程如图4。该流程特点在于核A进行流程操控,核B实现运算,结构相对简洁,利于编写与维护。为了充分发挥双核性能,采用L2传递信息与数据,A核增加控制DMA与处理全局信息的功能。
4.3并行编码存在问题及解决方法
(1)宏块编码相关性
宏块编码中,DC值根据上一宏块DC值当作偏量,不影响A核,其所需DC值已经记录在前一循环中。B核不相同,其相对的B、C、D亮度块不受影响。不过,E、F色差块需要的DC值存储在A核,且处于运算中,因此,可以在L2划分3个储存变量,只要A核实现A、E、F编码,将DC值记录到相应变量,编到B核对应位置,就能从L2传递。由于,A核编码起始时间早,两核运算能力差不多,相对于L1,L2读取速度下降1/2,牺牲速率存在限制,但能更有效地完成编码。另一种解决方式为,B核直接应用前循环储存的DC,相关度强,DC偏差自然小,不会降低运算效率,不过会产生一定的偏差,降低质量。
(2)同步信号
两个核同时处理宏块的过程中,应用储存于L2的变量作为同步的信号。其中,由于两个核可能随时处理上述变量,当另一个核读取时,可能产生读取的内容为储存在核里的变量的副本,导致读取值与实际值不同,运行处理错误的问题,因此,变量储存类别需要采用volatile限定符进行处理。如添加volatile限定词,每当读取变量值,转而读取L2储存空间的实际值,保障并行工作运行无误。
5.结束语
综上所述,实现MPEG-4编码技术在DSP上的运用,需要充分结合应用Visual DSP 4.5++环境实现初步的设计编码,需要了解并掌握MPEG-4 SP框架编码程序原理,从而实现编码系统的整体设计,通过语言的转换将软件移植入DSP,实现基础的技术构建。结合实际情况,了解到视频编码运行计算量庞大,通过对比分析,得出采用宏块层并行结构能够更有效地实现视频编码技术目标,并对编码过程中产生的问题提出相应的处理办法、采取对应的解决措施,以完成视频编码技术的实现。
参考文献:
[1]张小华,占妮.MPEG-4视频编码技术的研究及实现[J].自动化与仪器仪表,2009,{4}(04):97-98+114.
[2]石献. 基于DSP的MPEG-4视频编码技术研究与实现[D].中南大学,2008.
[3]张立东,熊磊,张雄,毕笃彦. MPEG-4标准中的视频编码关键技术及软件实现[A]. 中国体视学学会图像分析分会、中国航空学会信号与信息处理分会、陕西省图象与图形学学会、陕西省信号处理学会.信号与信息处理技术——第一届信号与信息处理联合学术会议论文集[C].中国体视学学会图像分析分会、中国航空学会信号与信息处理分会、陕西省图象与图形学学会、陕西省信号处理学会:中国体视学学会,2002:5.
【关键词】DSP;MPEG-4;编码
1.Visual DSP 4.5++
Visual DSP 4.5 ++拥有强大的编辑功能与高效的工程管理能力,还具有优秀的调试控制能力与可视效果。其调试媒介能够应用软件进行模拟,也能够用硬件应用JTAG在EZKIT评估板上,还能够应用USB口实现调试。Visual DSP4.5++调试器具有优秀的绘图功能,能够清晰展现数据,促进工作效率。此外,其统计学特性能够实现在不中断程序的情况下获取代码运行情况,更精准的改进程序性能。
2.MPEG-4 SP编码系统整体设计
MPEG-4 SP框架结构高效、容错高的特点,十分适合运用在数字电视、多媒体监控等低功耗系统中,属嵌入式系统开发的主要技術。本次设计MPEG-4 SP应用混合编码框架,编码原理框架如图1。
系统的硬件平台如图2
设计开发流程如下,第一,应用VC 6.0新建“encode-PC”,利用Xvidcorl.0.2构建编码器。第二,构建纯C代码,实现源代码修改。注意,输入为.yuv文件,输出为.m4v 文件。第三,于PC平台,删减不需要的代码,调节函数数,将常用小函数写入,完成准备工作。第四,于Visual DSP 4.5++,架构工程组,调节函数存放位置。第五,反复完成编译、修缮、调试,构建可应用于DSP的程序。第六,将输入转变为摄像头,输出转变为SDRAM缓存。第七,应用Visual DSP4.5++M优化方案,选择正确的编译选项。第八,结合统计窗口,调整LDF中的存储器规模,重设L1存储SRAM于Cache大小,再对相应变量的位置进行调节。第九,实现BF561在宏块层上的并行处理。第十,完善汇编级代码。第十一,将处理好的二进制文件转移到Flash完成调试。
3.软件移植
主要目的在于调整代码适用于BF561,使其能够应用于DSP。流程如下,第一,于VisualDSP4.5++,新建项目组,并构建corea、coreb、sml2、sml3四个项目,分别代表内核A、B与存储空间L1、L2。第二,将源代码转移到对应项目,随后反复进行编译修改。第三,于VisualDSP 4.5++进行数据读写,确保程序正常运行,再改写输入输出模式,除去不需要函数,输入转为从PPI0由A/D转成的数据,输出转为输出缓冲区。
4.双核DSP宏块层并行结构设计
4.1并行性分析
视频编码算法中并行性分析分两种,其一,可并行计算,其数据流明确、运算简便、相关性弱。其二,不可并行计算,其运算控制与数据相关性强。通过并行处理视频压缩能够有效应对计算量大的情况。以下对MPEG-4进行并行分析,优化设计,MPEG-4图像编码囊括I、P、B-VOP,其中B-VOP未应用于MPEG-4 SP。MPEG-4的层次由上至下分作块层、宏块层、条层、视频对象层、视频对象平面组层,按照上述次序进行编码,于宏块以外的各层添加起始码与头标,构建MPEG-4基本码流。结合并行特点,从块层开始考虑并行性,块层两核之间进行运动补偿将产生强烈的相关特性,需传递信息量巨大,效率不高;而宏块层与并行粒度最适,在16*16宏块,实现并行性能够达到很好的效率,但编码依赖于前一宏块,所以需采用科学通信方式,解决该问题;条层能取得媒体并行运算处理机制,通过MPEG引进SLICE,是指能够单独进行编码;以更粗糙层进行考虑,能够用VOG实现并行处理,不过,GOP无法彻底排除I-VOP、P-VOP、B-VOP间的强依靠性,若设VOP为IBBPBBPBBPBB能够得知,最终帧的编码一定会依靠下一VOG的首帧,因此同样产生相关性,综上,采取宏块层实现并行性处理是最有效的方式。
4.2BF561并行性算法
BF561双核有大量硬件资源支持,可单独运行,避免BF561两个核通信频繁降低效率,结合MPEG-4编码标准,应用宏块层进行并行处理。依据MPEGY编码步骤,处理视频数据,并存在SDRAM,由BF561经过DMA读取16*16个宏块相对的Y、Cb、Cr,如图3,根据4:2:0格式实现双核编码,最后输入至存储空间。
综合BF561双核对称特性及Ⅲ级存储优点,发挥DMA强大功能,设计有效的编码流程,具体流程如图4。该流程特点在于核A进行流程操控,核B实现运算,结构相对简洁,利于编写与维护。为了充分发挥双核性能,采用L2传递信息与数据,A核增加控制DMA与处理全局信息的功能。
4.3并行编码存在问题及解决方法
(1)宏块编码相关性
宏块编码中,DC值根据上一宏块DC值当作偏量,不影响A核,其所需DC值已经记录在前一循环中。B核不相同,其相对的B、C、D亮度块不受影响。不过,E、F色差块需要的DC值存储在A核,且处于运算中,因此,可以在L2划分3个储存变量,只要A核实现A、E、F编码,将DC值记录到相应变量,编到B核对应位置,就能从L2传递。由于,A核编码起始时间早,两核运算能力差不多,相对于L1,L2读取速度下降1/2,牺牲速率存在限制,但能更有效地完成编码。另一种解决方式为,B核直接应用前循环储存的DC,相关度强,DC偏差自然小,不会降低运算效率,不过会产生一定的偏差,降低质量。
(2)同步信号
两个核同时处理宏块的过程中,应用储存于L2的变量作为同步的信号。其中,由于两个核可能随时处理上述变量,当另一个核读取时,可能产生读取的内容为储存在核里的变量的副本,导致读取值与实际值不同,运行处理错误的问题,因此,变量储存类别需要采用volatile限定符进行处理。如添加volatile限定词,每当读取变量值,转而读取L2储存空间的实际值,保障并行工作运行无误。
5.结束语
综上所述,实现MPEG-4编码技术在DSP上的运用,需要充分结合应用Visual DSP 4.5++环境实现初步的设计编码,需要了解并掌握MPEG-4 SP框架编码程序原理,从而实现编码系统的整体设计,通过语言的转换将软件移植入DSP,实现基础的技术构建。结合实际情况,了解到视频编码运行计算量庞大,通过对比分析,得出采用宏块层并行结构能够更有效地实现视频编码技术目标,并对编码过程中产生的问题提出相应的处理办法、采取对应的解决措施,以完成视频编码技术的实现。
参考文献:
[1]张小华,占妮.MPEG-4视频编码技术的研究及实现[J].自动化与仪器仪表,2009,{4}(04):97-98+114.
[2]石献. 基于DSP的MPEG-4视频编码技术研究与实现[D].中南大学,2008.
[3]张立东,熊磊,张雄,毕笃彦. MPEG-4标准中的视频编码关键技术及软件实现[A]. 中国体视学学会图像分析分会、中国航空学会信号与信息处理分会、陕西省图象与图形学学会、陕西省信号处理学会.信号与信息处理技术——第一届信号与信息处理联合学术会议论文集[C].中国体视学学会图像分析分会、中国航空学会信号与信息处理分会、陕西省图象与图形学学会、陕西省信号处理学会:中国体视学学会,2002:5.