一种基于DSP平台的快速H_264编码算法的设计
- 格式:pdf
- 大小:936.99 KB
- 文档页数:3
基于DSP的H.264编码器的电路设计(2)算法级优化举行算法级优化时。
应使VC环境下的纯C版本与CCS下的版本同步更新,VC版本运行正确,既可以保证算法理论上的正确,又可以加快工作速度并削减问题的产生。
该算法优化工作主要有以下几点:①运动估算法的挑选:X264编码器提供3种可选的整像素运动估算法:X264_ME_ESA(全搜寻法)、X264_ME_HEX(六边形搜寻法)、X264_ME_DIA(小菱形搜寻法)。
在VC环境下用法纯C版本代码对同一视频序列用法3种不同的搜寻办法举行编码。
对照3种搜寻办法在编码速度、峰值信噪比(PSNR)、码率方面的性能。
对照之下X264_ME_ESA算法的峰值信噪比最高,X264_ME_HEX次之,X264_ME_DIA最低,但互相之间的质量差别并不大,码率差别也很小,但编码速度却有显然差距,X264_ME_DIA较前两者在编码速度上有显然的优势。
经比较,挑选用法X264_ME_DIA运动估量算法。
②帧内预测模式的改进:在X264的帧内预测流程中加入提前终止模式挑选的条件,改进算法的流程。
举行16×16宏块帧内模式搜寻时,在当前模式的开销小于已搜寻过的模式的最小开销的一半时,终止16×16帧内预测模式挑选,以当前模式为最佳16×16帧内预测模式。
对4×4块也加入相同的条件,并且若当前4×4块帧内预测模式的预测开销比相应的最佳16×16块帧内预测模式的开销的1/16还要小,则终止4×4块的帧内预测模式挑选,以当前预测模式作为最佳4×4块的帧内预测模式。
改进后的帧内预测主体流程3所示,灰色部分为加入的判定条件。
帧间预测模式的改进:将当前的16×16宏块划分为4个8×8宏块,分离预测其运动矢量,然后以左右相邻、上下相邻的2个8×8块的运动矢量的差值和阈值相比较为依据,判定是否举行16×8、8×16等分块模式的预测,最后挑选开销最小的划分模式为最佳帧间划分模式。
H.264视频编码器在DSP上的实现与优化摘要:在DM642EVM平台上实现了H.264视频编码器,并从内存分配、Cache优化、代码优化以及汇编程序级优化等几个方面对编码器进行了优化。
实验结果表明,优化后的编码器能保持较高的图象质量和压缩效率,并具有较好的实时性能。
1引言H.264/AVC是ITU-T视频编码专家组和ISO/IEC运动图象专家组联合提出的新一代视频编码标准。
在相同的条件下,与MPEG-1、MPEG-2、H.263、MPEG-4等标准相比,H.264/AVC能够减少50%的码流。
但是,H.264的高编摘要:在DM642EVM平台上实现了 H.264视频编码器,并从内存分配、Cache优化、代码优化以及汇编程序级优化等几个方面对编码器进行了优化。
实验结果表明,优化后的编码器能保持较高的图象质量和压缩效率,并具有较好的实时性能。
1 引言H.264/AVC是ITU-T视频编码专家组和ISO/IEC运动图象专家组联合提出的新一代视频编码标准。
在相同的条件下,与MPEG-1、MPEG-2、H.263、MPEG-4等标准相比,H.264/AVC能够减少50%的码流。
但是,H.264的高编码效率是以高运算量和高复杂度为代价的。
本文采用具有较高运算速度和较强数据处理能力的DM642 EVM作为H.264视频编码器实现和优化的DSP硬件平台,实现了 H.264视频编码算法,并对算法程序进行了综合优化。
实验结果表明,经过优化的 H.264视频编码器能保持较高的图象质量和压缩效率,并具有较好的实时性能。
2 H.264视频编码技术及DM642 EVM开发平台2.1 H264视频编码技术H.264压缩算法采用与H.263和MPEG-4类似的基于块的混和编码方法,采用帧内(Intra)和帧间(Inter)两种编码模式。
为了提高编码效率、压缩比和图象质量,H.264采用了许多新的编码技术,这些技术主要有:⑴ H.264标准压缩系统由视频编码层(VCL,Video Coding Layer)和网络抽象层(NAL,Network Abstrac ti on Layer)两部分组成。
一种基于DSP的视频转码器设计来源:《中国多媒体通信》浏览:1534次文/北京邮电大学通信网络综合研究所陈涛刘勇摘要:介绍了转码技术的原理,针对不同的应用场合分析了转码器的各种实现结构,并提出了在设计转码器时应主要考虑的方面。
结合作者所做的实际工作,提出了一种利用DSP实现转码器的方法。
同时,具体介绍了实现转码器时所采用的硬件和软件结构。
利用实验数据分析了转码器的性能,进而验证了所设计转码器的可行性。
最后,展望了未来网络技术和数字多媒体技术的发展,并提出视频转码技术将成为今后视频应用领域中的热点与主流。
关键词:转码器 DSP 码率转码 H.264自20世纪90年代以来,伴随着网络技术和数字多媒体技术的迅速发展,音视频编码技术开始走进人们的生活,音视频编码技术发展迅速,多媒体通信技术逐渐呈现了越来越重要的价值。
在音视频编码技术快速发展的过程中,各个标准组织针对不同的多媒体应用建立了多种视音频编码标准。
如ITU-T和MPEG组织联合针对低比特率双向视频传输应用环境所制定的H.264视频编码标准;MPEG 组织面向广播级高质量视频应用环境所制定的MPEG-2视频编码标准以及面向流媒体和交互式多媒体应用环境所制定的MPEG-4视频编码标准等。
在许多实时应用中,需要根据不同的多媒体应用终端以各种不同的编码参数将视频数据压缩成为各种不同的编码格式。
而这些实时应用通常要求视频数据在各种编码格式之间实现动态实时转换。
而音视频转码技术正是在这样的背景下应运而生的。
视频转码对压缩的视频码流进行端到端的处理,使得转码后的压缩码流更能适应传输信道带宽以及接收端的要求。
视频转码技术能够灵活地支持多种媒体格式,并且具有较高运算能力、低成本和灵活等的特点。
它已成为数字多媒体服务发展的一项重要技术。
鉴于此,本文对转码技术的主要原理、模块及其特点,以及其中采用的主要技术进行了分析介绍,并在此基础上提出了一种利用DSP实现转码器的设计方法。
基于DSP的H.264/AVC视频编码器实现作者:钟川桃杨国辉来源:《中国教育技术装备》2008年第08期摘要DSP 的迅速发展使图像信息的传递范围不断扩大,实时数字视频压缩的应用也越来越广泛,在DSP上用软件实现视频压缩成为数字视频压缩标准应用的一个亮点。
基于此,文章对H. 264/AVC视频编码器的DSP实现做一些探索。
关键词 H.264/AVC;视频编码器;DSP中图分类号 TP393.03 文献标识码 A 文章编号 1671-489X(2008)08-0094-031 高速实时数字信号处理系统1.1 高速实时数字信号处理的概述信号处理是一门涉及许多学科而又广泛应用于许多领域的新兴学科,其本质是信息的变换和提取,是将信息从各种噪声、干扰的环境中提取出来,并变换为一种便于为人或机器所使用的形式。
实时指的是系统必须在有限的时间内对外部输入信号完成指定的处理,即信号处理的速度必须大于等于输入信号的更新速度,而且从信号输入到经过处理后信号输出延迟必须足够小。
数字信号处理就是用数学的方法对信号进行变换,以获取有用信息。
高速实时数字信号处理是信号处理中的一个特殊分支,它的主要特点是高速处理和实时处理,被广泛地应用于工业和军事的关键领域,如对雷达信号的处理、对通信基站信号的处理等。
数字信号处理的主要缺点是处理量随处理精度、信息量的增加而成倍增长,解决这一问题的方法是研究高速运行的数字信号处理系统。
在高速实时数字信号处理系统的实现中,首先要采用先进设计软件来保证系统设计的正确性,其主要特征就是采用电子设计自动化(EDA)软件进行优化设计,系统的核心是高速DSP技术。
1.2 高速实时DSP系统的构成一个典型的高速实时数字信号处理系统除了核心的DSP技术外,还需要配合大量的外围电路。
它可以由一个DSP及外围总线组成,也可由多个DSP组成,这完全取决于DSP处理的要求。
一个DSP系统分为前向通道和后向通道,它的主要任务是将前向通道输出的信号按照一定的算法进行处理,然后将处理的结果以数据流的形式输出给后向通道。
一种基于DSP平台的快速H.264编码算法的设计视频压缩编码标准H.264/A VC是由ISO/IEC和ITU-T组成的联合视频专家组(JVT)制定的,他引进了一系列先进的视频编码技术,如4×4整数变换、空域内的帧内预测,多参考帧与多种大小块的帧间预测技术等,标准一经推出,就以其高效的压缩性能和友好的网络特性受到业界的广泛推崇。
特别是在2004年7月JVT组织做了重要的保真度范围扩展的补充后,更加扩大了标准的应用范围,但同时巨大的运算量却成为其广泛应用的瓶颈。
考虑到H.264协议实现的复杂度,本文的思路是:一方面提高硬件处理速度和能力,采用TI公司最新的数字媒体处理器Davinci TMS320DM6446 DSP芯片作为H.264编码器实现的硬件平台,另一方面提高算法效率。
最后提出一个基于这个芯片的嵌入式H.264编码器的设计方案。
1 硬件平台1.1 Davinci DM6446芯片介绍DM6446采用DSP+ARM的双内核结构(内核图见图1),其中的DSP芯片的CPU 时钟频率可达594 MHz,ARM的引入可以释放DSP在控制方面的部分功能,使DSP专门进行数据处理的工作。
芯片采用增强型的哈佛结构总线,其CPU内部有2个数据通道,8个32 b的功能单元,2个通用寄存器组(A和B),可同时执行8条32 b长指令。
如果能充分利用这8个功能单元,总字长为256 b的指令包同时分配到8个并行处理单元,在完全流水的情况下,该芯片的指令吞吐量将达到594×8=4 752 MIPS。
处理器具有双16 b扩充功能,芯片能在一个周期内完成双16 b的乘法、加减法、比较、移位等操作。
该芯片内部支持两级Cache,其中第一级32 kB的程序缓存器L1P,80 kB的数据缓存器L1D,而第二级的Cache 大小是可配置的64 kB,芯片自动完成这两级Cache之间数据一致性的维护。
有了这两级Cache的支持将使CPU的执行速度大大加快。
基于DSP TMS320DM642的H.264视频编码的实现和优
化
安向阳;沈庭芝
【期刊名称】《微计算机信息》
【年(卷),期】2005(21)07Z
【摘要】阐述了低码率视频编码国际标准H.264的主要内容.重点讨论了
H.264编码在DSPTMS320DM642上的实现和优化。
【总页数】3页(P128-130)
【作者】安向阳;沈庭芝
【作者单位】北京理工大学
【正文语种】中文
【中图分类】TN949.197
【相关文献】
1.基于TMS320DM642 DSP的MPEG-4视频编码器优化 [J], 王钢;王世刚
2.基于高速DSP的H.264视频编码器的实现和优化 [J], 魏哲;蔡灿辉
3.基于DSP TMS320DM642的XVID视频编码的实现 [J], 浦学东;崔金钟
4.基于DSP TMS320DM642的H.264视频编码的实现和优化 [J], 安向阳;沈庭芝
5.基于DSP的四路H.264视频编码器的实现与优化 [J], 张新安
因版权原因,仅展示原文概要,查看原文内容请购买。
基于ARM和DSP的H.264视频解码终端的设计随着消费电子产品的快速更新,要求移动终端支持越来越多的功能、协议、算法等,而视频应用无疑是其中应用最为广泛的领域之一,H.264视频标准作为一种压缩效率高、网络亲和力强的视频压缩标准,是近年来视频处理领域研究的热点。
本文首先介绍了在当前移动终端中的视频解码常用方案以及不足之处,对于H.264编解码技术在移动终端中的应用,本文采用基于ARM和DSP双处理器的架构,设计并实现了H.264的视频解码的终端,该终端能运行开放式操作系统;能够通过驱动软件协调两个处理器间的工作;具备对H.264编码的qcif视频序列的实时解码的能力。
本文为简化开发流程,将设计工作分成了ARM模块与DSP模块两部分分别进行。
在ARM模块部分,本文完成了底层启动代码BootLoader的原理分析与关键代码说明,并将嵌入式领域常用的BootLoader——U-Boot移植到三星公司的ARM 处理器——S3C2410上,接下来本文将Linux2.6内核成功移植到该平台上并能够被BootLoader引导和运行。
为适应网络方面的应用,本文还在Linux系统中移植了PPP的拨号协议并编写相关的无线网络拨号脚本和应用GPRS/GSM无线模块进行测试。
在上述平台软件完成的基础之上,本文根据Linux字符设备驱动开发的流程,开发了在ARM+Linux环境下用于与DSP处理器通信的HPI(主机接口)的接口驱动程序,文中详述了HPI接口的接口原理、硬件连接、驱动程序的设计思路及其关键代码。
在DSP模块部分,本文在介绍了H.264视频编解码技术的框架并着重分析了H.264解码部分的关键技术之后,将JVT的H.264编解码参考模型JM8.6的解码程序移植到本文所采用的DSP平台上,并针对DSP平台的特点对低效的算法和程序进行代码和算法的优化、内存管理的优化、采用编译器选型的项目级优化等,使经过优化的解码程序能够达到实时解码的目的或要求,并能通过HPI硬件接口和HPI驱动程序与ARM模块的Linux操作系统进行视频数据的传输。
课程名称:《基于DSP的H.264编码器的实现与优化》学生姓名:程超才学号:P6*******院系:电气工程与自动化学院班级:2007级邮箱:adchchca@2008年十一月份对我来说真的是很幸运的一月,因为经本专业同学推荐、介绍我有幸参加了国家级大学生创新实验项目,即《基于DSP的H.264编码器的实现与优化》。
那时的我用懵懂无知来形容简直一点也不为过,因为我只是在大一时学过C语言,平时只是用来做一些简单的测试程序,没有真正的应用到实践当中。
电子学类的基础课程中也只是《电路分析》,对理论知识还没有很好的掌握,头脑中也几乎没有任何工程经验。
所幸的是,在两位06学长的帮助下,我从基本的较为实用的课程,比如模电、数电、单片机、微机原理等学起,并在较短的时间内对这些课程都有了一个初步了解,为下一步进行创新实验项目的深入研究奠定了的基础。
由于进入大学时间尚短,理论功底还不够扎实。
所以,在开始的一个多月,我并未涉及到过多的与整个系统相关的专业知识的学习,只是在两位学长的指导下学习一些基础的理论,并总结、归纳课题所要实现的要求,仔细列举课题所要实现的性能指标,明确编码器的设计任务,并充分利用笃行北楼A518创新实验室的有力条件进行初期项目中电路的测试。
有时一个简单的外围电路甚至于会花费数个小时的时间,然而这些都是值得的,因为没有探索就没有收获,没有尝试就没有发现。
在初期项目研究的过程中,我遇到了大量的专业词汇,通过查阅项目中涉及到的专业名词我的专业词汇量又大大的丰富了,并且又接触了很多新东西,因为我在查阅大量文献的同时,也会由此问题引发出一系列其它问题。
每每如此,我都会仔细的把这些问题记录下来。
正是通过这样的学习,一个月下来,我对整个项目框架有了一个系统的认识,对每个模块的功能与设计有了一个大致的了解。
接下来的一个月,我在继续学习基础知识的同时开始学习H.264视频压缩编解码的基本原理与具体实现,了解各种不同视频压缩编码标准如H.261,H.263,MPEG-4在我们生活中的应用领域及现阶段的发展状况,并与所用到的H.264视频压缩编码标准进行比较,进一步加深对H.264编码的实现方法和结构体系框架的理解。
基于Trimedia DSP的H.264解码算法优化
林冰;冯艳;李学明
【期刊名称】《计算机工程与应用》
【年(卷),期】2005(041)031
【摘要】H.264是最新的视频编码标准,具有非常优良的编码性能,但它的算法复杂度也很高,很难满足实时应用的需要.论文详细分析了影响H.264解码速度的因素,提出了基于Trimedia DSP平台的优化方案.该方案通过缩减不必要的判断、避免频繁的内存访问、优化内存的分配与使用、合理使用循环展开以及采用DSP专用指令等方法来提高H.264解码算法的运算速度.测试结果表明:优化后的代码运行速度平均提高了8倍,在主频为200MHz的Trimedia DSP上能实时解码CIF格式的H.264基本码流.
【总页数】6页(P41-45,89)
【作者】林冰;冯艳;李学明
【作者单位】北京邮电大学信息工程学院,北京,100876;北京邮电大学信息工程学院,北京,100876;北京邮电大学信息工程学院,北京,100876
【正文语种】中文
【中图分类】TP391
【相关文献】
1.基于DSP的H.264解码器优化设计 [J], 胡宏华;谌德荣
2.基于码头分组的H.264变长解码算法优化 [J], 李江波;陈冒银;王忠辉
3.基于MMX/SSE/SSE2的H.264解码器关键算法优化 [J], 张琦;万枫丹;段柯;吴镇扬
4.基于DSP的H.264视频编解码器的研究及实现 [J], 崔强
5.基于DSP的H.264/AVC解码器运动补偿模块的优化 [J], 姜峰;尚书林;梁利平因版权原因,仅展示原文概要,查看原文内容请购买。
毕业设计开题报告计算机科学与技术基于MIPS平台的H.264编码器设计及优化研究一、选题的背景与意义选题背景:在多媒体技术和网络与移动通信的飞速发展下,图像压缩编码技术不仅在理论研究中已经取得重大进步,而且在实际应用中也得到了很多成果。
图像和视频信号数字化可以避免远距离传输中产生的累计失真,数字化存储可以高保真还原,并且容易借助计算机等设备进行灵活处理和管理。
近年来,图像编码技术得到了迅速发展和广泛应用,国际标准化组织(ISO)和国际电工委员会(IEC)制定了关于静止图像的编码标准JPEG/JPEG2000,关于活动图像的编码标准MPEG-1,MPEG-2,MPEG-4(2),MPEG-4(10)等,以及国际电信联盟(ITU)制定了视频编码标准H.26X系列。
这些融合了各种优良性能算法的编码标准都有一个共同的不断追求的目标,即在尽可能小的编码容量下获得尽可能好的图像质量。
H.264编码是由ITU-T和ISO/IEC共同推出的新视频编码国际标准,在H.26X发展初期,VCEG从实时性和图像质量等方面为其制定了一下要求:(1)约束码率的图像质量相同的比特率和采用相同方法优化的编码器条件下,h.264的帧率能达MPEG-4标准simple profile的两倍,即相同图片质量条件下h.264能节省一半带宽。
(2)延时限制H.264强调在实时的环境的应用,拥有低延迟的模式以应用于实时会话服务。
(3)复杂度一个标准的复杂度是和计算复杂度以及存储器大小密切相关的,出于对复杂度的考虑,H.264从编码器处理和质量方面规定baseline、main、和X三个类及多个等级,从而适用于不同的应用范围。
(4)差错恢复应用于实时环境下时,应当具备防止误码扩散的机制。
(5)语法定义采用简单的语法定义。
(6)网络友好性将整体视频编码数据按照视频编码层(VCL)和网络抽象层(NAL)进行概念性分割,以此将视频压缩和网络传输功能进行有效的分割。
一种基于DSP 平台的快速H 1264编码算法的设计周冬跃,肖万能,苏成悦,梁 力(广东工业大学 广东广州 510006)摘 要:H 1264协议是最先进的视频编码标准,但其算法复杂度也是超常的。
为了解决这个问题,提出一种采用TI 公司的最新多媒体处理器Davinci DM6446为核心的硬件平台,而在算法上提出了新的基于拉各朗日(Lagrange )的快速算法,充分利用中间结果,预先排除一些可能性小的预测模式,然后快速完成对运动估计的判决和模式选择的优化处理。
实验结果表明:该方法可以有效地解决实时性差的问题,实现具有参考价值的H.264编码器。
关键词:DM6446;编码器;率失真优化;视频压缩;拉各朗日中图分类号:TN91918 文献标识码:B 文章编号:1004373X (2008)0311903Design of F ast H.264Coding Arithmetic B ased on DSP PlatformZHOU Dongyue ,XIAO Wanneng ,SU Chengyue ,L IAN G Li(Guangdong University of Technology ,Guangzhou ,510006,China )Abstract :Although H.264is the most advanced video encoding standard ,realizing of the video encoder arithmetic is very complex.In order to solve this problem ,based on the DSP chip of TI ′S TMS320DM6446,it designs an arithmetic of H.264en 2coder based on fast arithmetic.Intermediate computing results are used to reduce the predicting modes.And the opti 2mal mode is selected.Experimental results show that the paper can solve the problem and realize video encoder of H.264.K eywords :DM6446;encoder ;RDO ;video compress ;Lagrange收稿日期:20070831基金项目:国家自然科学基金项目(20471018,10547109);广东工业大学校博士启动基金(053028);广东工业大学校青年基金(072034) 视频压缩编码标准H 1264/AVC 是由ISO/IEC 和ITU -T 组成的联合视频专家组(J V T )制定的,他引进了一系列先进的视频编码技术,如4×4整数变换、空域内的帧内预测,多参考帧与多种大小块的帧间预测技术等,标准一经推出,就以其高效的压缩性能和友好的网络特性受到业界的广泛推崇。
特别是在2004年7月J V T 组织做了重要的保真度范围扩展的补充后,更加扩大了标准的应用范围,但同时巨大的运算量却成为其广泛应用的瓶颈。
考虑到H 1264协议实现的复杂度,本文的思路是:一方面提高硬件处理速度和能力,采用TI 公司最新的数字媒体处理器Davinci TMS320DM6446DSP 芯片作为H 1264编码器实现的硬件平台,另一方面提高算法效率。
最后提出一个基于这个芯片的嵌入式H 1264编码器的设计方案。
1 硬件平台1.1 Davinci DM6446芯片介绍DM6446采用DSP +ARM 的双内核结构(内核图见图1),其中的DSP 芯片的CPU 时钟频率可达594M Hz[1],ARM 的引入可以释放DSP 在控制方面的部分功能,使DSP 专门进行数据处理的工作。
芯片采用增强型的哈佛结构总线,其CPU 内部有2个数据通道,8个32b 的功能单元,2个通用寄存器组(A 和B ),可同时执行8条32b 长指令。
如果能充分利用这8个功能单元,总字长为256b 的指令包同时分配到8个并行处理单元,在完全流水的情况下,该芯片的指令吞吐量将达到594×8=4752MIPS 。
处理器具有双16b 扩充功能,芯片能在一个周期内完成双16b 的乘法、加减法、比较、移位等操作。
该芯片内部支持两级Cache ,其中第一级32kB 的程序缓存器L1P ,80kB 的数据缓存器L1D ,而第二级的Cache 大小是可配置的64kB ,芯片自动完成这两级Cache 之间数据一致性的维护。
有了这两级Cache 的支持将使CPU 的执行速度大大加快。
Davinci DM6446具有专用的视频图像处理子系统。
视频处理子系统包括1个视频前端和1个视频末端,视频前端的输入接口用于接受外部传感器或视频译码器输出的B T.656等图像输入信息;视频末端输出接口输出图像,实现图像本地重现。
视频前端输入(VPFE )接口由1个CCD 控制器(CCDC ),1个预处理器,柱状模块,自动曝光/白平衡/聚焦模块(H3A )和寄存器组成。
CCD 控制器可以与视频解码器CMOS 传感器或电荷耦合装置连接。
预处理器是一个实时的图形处理器。
1.2 H 1264编码器硬件平台本系统的平台核心处理芯片为Davinci DM6446,如图2所示,片外RAM 选取两片DDR 并联成32位的数据911《现代电子技术》2008年第3期总第266期 测试・测量・自动化宽度,空间为256MB 。
模拟视频信号在“VIDEO IN ”引入后经过解码芯片TVP5146变换为数字信号后输入TMS320DM6446芯片中进行处理,H.264编码处理后的码流可以通过视频末端输出保存在本地硬盘上,以方便调试检查。
或者可以通过10/100M 以太网物理层接口输出,进行网络传输。
同时,本地的重构图像可以通过TMS320DM6446芯片内部OSD 模块和编码模块D/A 变换后直接显示输出。
图1 DM6446内核功能框图图2 H.264编码器硬件平台2 H 1264编码器结构与编码流程2.1 H 1264编码器结构如图3所示输入的图像以宏块为单位进入编码器中,根据图像变化的快慢选择帧内或帧间预测编码。
如果选择帧内预测编码,首先判断当前待编码块中是否包含很多的细节,再决定是否要把帧进行再分割。
接着以重建帧μF ′n 中的块为参考,结合当前块周围块的预测模式,选择当前块的最佳预测模式。
最后由重建帧μF ′n 中相应块和当前块选定的预测模式得到当前块的预测值。
按照上述方法,对图像中的每一宏块作出帧内预测,进而得到一帧图像的预测值P 。
如果选择帧间预测编码,当前输入帧F n 和前一帧(参考帧)F n -1被送到运动估计器(ME ),通过块搜索,匹配可以得到当前帧中的各宏块相对于参考帧中对应宏块的偏移量,也就是常说的运动矢量。
图3 H 1264编码器结构框图接着,参考帧F n -1和刚得到的运动矢量MV 被送到运动补偿器(MC ),通过计算得到帧间预测值P;当前帧F n 和帧预测值P 相减,得到残差D n ,经过变换,量化后产生一组量化后的变换系数X ,再经过熵编码,与解码所需的一些边信息(如预测模式量化参数,运动矢量等)一起组成一个压缩后的码流,经NAL (网络自适应层)供传输和存储[2]。
2.2 编码器编码流程如图4所示为H 1264编码器主流程。
对输入的一帧图像首先进行单元划分:以宏块为基本单元进行划分,再由若干宏块在组合成Slice ,由Slice 再组合成Slice Group ,这样每个宏块所属的Slice 和Slice Group 也就确定了。
再判断输入的一帧图像是I -Frame 还是P -Frame 。
在以上工作完成后,也就可以对每个宏块进行编码了。
在对每个宏块都编码完成后,还需要对重构图像进行1/4象素精度插值处理、参考帧缓冲区插入处理等工作。
至此,编码一帧的工作才算完成。
3 运动估计模式快速率失真决策为了减少图像序列的时间冗余,达到更好压缩效果的目的,H 1264/AVC 编码方案采用运动补偿技术和预测。
即由先前已编码的一个或多个帧产生当前编码帧的一种预测模式,然后再进行预测编码。
且采用了一种可变块尺寸的运动预测模式[3],亮度块尺寸的范围从16×16变化到4×4,其中包含很多可选模式,形成了一种树形结构的运动预测。
对于I 帧(包含帧内4×4、帧内16×16),对P 帧(包含帧内4×4、帧内16×16、SKIP 模式、帧间16×16、帧间16×8、帧间8×16、帧间8×8、帧间8×4、帧间4×8)同时还为P 帧和B 帧提供了特殊的SKIP 模式,总共11种模式。
这些可选模式的存在使得编码方式更加灵活,编码精度相对于固定尺寸块预测要高很多。
然而,可选的帧问预测模式增加了,必然会使得运算复杂度增加,因此有必要采用一种高效的决策方法来选取块尺寸组合方式,使得编码效率和编码质量均佳。
21自动化技术周冬跃等:一种基于DSP 平台的快速H 1264编码算法的设计图4 H.264编码流程框图3.1 拉各朗日代价函数引入拉各朗日代价函数如下:J =[D (s i ,m )+λ・R (s i ,m )](1)其中D 表示重构恢复图像相对于原始图像间的失真;R (s i ,m )表示对宏块编码后数据及相关参数在码流中所占用的比特数,一般由编码统计得到,但对于SKIP 模式,比特数默认为1比特;λ表示模式选择时所使用的拉各朗日乘积因子。
对于运动估计,可使用拉各朗日代价函数作为选择运动矢量的判决标准。
根据式(1)得到对一个采样块s i 进行ME 判决的代价函数为下:m i =arg min m ∈M[D (s i ,m )+λ・R (s i ,m )](2) 该式返回产生最小代价值的最佳匹配运动矢量m i ,其中M 指各种可能编码模式的集合,m 为当前选定模式,式(2)中R (s i ,m )是运动矢量(m x ,m y )所要传输(按熵编码)的比特数。
D (s i ,m )表示对图像宏块的预测误差,对于该预测误差的计算有两种方案:当预测误差选择是绝对误差时用(SAD )表示,如式(3);当预测误差选择是平方差时,则用SSD 表示,如式(4)中:SAD (s i ,m )=∑(x ,y ∈A i )s[x ,y ,t]- s ′[x -m x ,y -m y ,t -m t ](3)SSD (s i ,m )=∑(x ,y ∈A i )s[x ,y ,t]- s ′[x -m x ,y -m y ,t -m t ]2(4)其中A 为当前编码宏块。