公开/公告号CN102137257A
专利类型发明专利
公开/公告日2011-07-27
原文格式PDF
申请/专利权人 北京声迅电子有限公司;
申请/专利号CN201110049520.8
发明设计人 谭政;
申请日2011-03-01
分类号H04N7/26(20060101);H04N7/50(20060101);
代理机构11002 北京路浩知识产权代理有限公司;
代理人王莹
地址 100094 北京市海淀区永丰基地丰贤中路7号(孵化楼)4层
入库时间 2023-12-18 02:51:52
法律状态公告日
法律状态信息
法律状态
2016-07-20
专利权人的姓名或者名称、地址的变更 IPC(主分类):H04N7/26 变更前: 变更后: 申请日:20110301
专利权人的姓名或者名称、地址的变更
2013-05-08
授权
授权
2011-09-07
实质审查的生效 IPC(主分类):H04N7/26 申请日:20110301
实质审查的生效
2011-07-27
公开
公开
技术领域
本发明涉及视频编码技术领域,特别涉及一种基于TMS320DM642芯片的嵌入式H.264编码方法。
背景技术
随着数字技术与网络技术的发展,安防监控领域的视频技术也进入了数字化与网络化阶段,这使得传统监控系统中视频图像的传输与管理实现了统一。视频实现数字化最初是从硬盘录像机开始的,视频压缩技术是硬盘录像机最核心的技术。目前在视频监控领域,主流的压缩标准采用H.264,资料显示H.264视频压缩标准以其高效率的编码效率和传输性能,在视频监控领域得到了广泛应用。其最终制定的标准在2003年已经被ISO/IEC(作为MPEG-4的第十部分)和ITU-T(H.264草案)同时支持。随着视频压缩技术的普及以及对监控要求的提高,如何最大程度的发挥编码芯片的性能,实现最大路数的视频压缩编码并以低廉的成本提供优质的服务成为安防行业关注的热点。
TMS320DM642(以下简称DM642)是TI-C6000平台上的高性能定点DSP(Digital Signal Processing)芯片,DM642系列芯片因其基于TI公司开发的第二代高性能VLIW(甚长指令字)结构,而成为数字媒体处理的最佳芯片选择。C64X系列DSP与6000系列DSP平台是代码兼容的。DM642在600MHz时钟下的运算速度可高达每秒4800百万条指令(MIPS),可以提供节省时间的高速DSP编程。DM642能灵活对高速控制器和队列处理器数值操作。DM642处理器有64个32位字长的通用寄存器和8个独立的功能单元。DM642可以每周期处理4个32位的积之和运算,每秒即可有2400百万积之和运算,或者是每周期8个8位的积之和运算即每秒4800百万积之和运算。DM642同样有面向应用的硬件逻辑,片上存储器,以及其他的同6000系列DSP相似的片上外设。DM642使用两级基于缓存的结构,并拥有强大而多样的外设。1级程序缓存(L1P)是128Kbit的直接映射的缓冲区,1级数据缓存(L1D)是128Kbit的设置相关联的2块缓冲区。2级存储器/缓存包括2Mbit的程序数据存储空间。2级存储器可以配置为映射存储区、缓冲区,或者两者的结合。DM642片内资源,如图1所示,主要有以下几个方面:
1、动态内存存取(DMA)部分:这部分使用外中断的形式,可以在不打断CPU的情况下进行工作,即可以与CPU并行。
2、L2部分:可配置部分,共有256Kbit,可按照不同比例配置Cache和SRAM。
3、L1部分:分为L1D和L1P两部分,各有16Kbit。
4、片内寄存器:64个片内寄存器。
H.264规定了三种档次,每个档次支持一组特定的编码功能,并支持一类特定的应用,具体如图2所示。
1、基本档次:利用I片和P片支持帧内和帧间编码,支持利用基于上下文的自适应的变长编码进行的熵编码(CAVLC)。主要用于可视电话、会议电视、无线通信等实时视频通信;
2、主要档次:支持隔行视频,采用B片的帧间编码和采用加权预测的帧内编码;支持利用基于上下文的自适应的算术编码(CABAC)。主要用于数字广播电视与数字视频存储;
3、扩展档次:支持码流之间有效的切换(SP和SI片)、改进误码性能(数据分割),但不支持隔行视频和CABAC。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何实现对监控视频实现高效地视频编码。
(二)技术方案
为解决上述技术问题,本发明提供了一种基于TMS320DM642的H.264编码方法,包括以下步骤:
S1:利用TMS320DM642芯片中快速直接内存存取QDMA的并行性,采用条带、宏块两级数据搬移的方式并行地实现输入数据和输出重建数据的传输和编码,对输入数据进行帧内或帧间预测,得到预测图像;
S2:以片内运动搜索窗和片内插值结构实现所述预测图像的帧间预测和运动补偿;
S3:将运动补偿的残差结果进行整数离散余弦变换,并将编码结果按照不同的量化参数进行量化并保存;
S4:将量化的结果按照基于上下文自适应的变长编码进行编码,然后将保存的数据进行反量化和反整数离散余弦变换,得到变换后的结果,将所述变换后的结果保存在重建数据乒块或重建数据乓块中;
S5:对所述变换后的结果进行滤波,并将滤波后的数据通过芯片集成的QDMA搬运到片外空间。
其中,所述步骤S1具体包括:
使用芯片集成的QDMA将下一次CPU编码时需要的待编码数据放在图像源乒块或图像源乓块中;
可选择性的将运动搜索窗数据放在运动搜索窗乒块或运动搜索窗乓块中,同时CPU对图像源乓块或图像源乒块进行编码,按照顺序在运动搜索窗乓块或运动搜索窗乒块内预测,或帧内预测,得到绝对误差和最小的预测图像。
其中,所述步骤S5中的滤波为采用乒乓结构的环路滤波。
其中,所述帧间预测同时支持P片前向预测和B片双向预测,所述帧间预测中的块划分模式统一为16×16,亮度运动向量精度为1/2像素,色度运动向量精度为1/4像素。
其中,帧内预测时对于亮度分量的INTRA4×4和INTRA16×16选取相同的预测模式,分别为垂直预测、水平预测、直流预测或平面预测,色度分量选取的亮度分量相同的预测模式。
其中,所述整数离散余弦变换采用4×4整数离散余弦变换,针对INTRA16×16模式下亮度直流系数进行4×4Hadamard变换,针对所有色度块直流系数,采用2×2Hadamard变换。
其中,量化时,量化参数值越小对应图像质量越好,所述量化参数值分别为:15、20、25、30、35、40。
其中,所述片内环路滤波采用自适应边界级环路滤波,对所有4×4块间的边界进行滤波,边界强度参数值为0到4之间。
(三)有益效果
本发明具有如下有益效果:
1、融合后的H.264的监控档次是根据监控应用量身打造的基于H.264的实用档次,该实用档次在基本档次功能的基础上,还包括了主要档次中,支持隔行视频和采用B片的帧间编码的功能,以该实用档次实现的H.264编码器,使用更加灵活,编码效率高,码率低,更适合监控需求。
2、本发明提出的编码主体框架是针对监控视频特点,兼顾性能和质量的综合框架,该框架利用TMS320DM642芯片中QDMA的并行性,采用条带、宏块两级数据搬移的方式并行地实现输入数据和输出数据的传输和编码,在满足监控图像质量需求的情况下,最大程度的提高了编码效率。
3、本发明提出的编码方案中的片内运动搜索窗,片内插值结构以及片内重建和滤波方式,可以在有限的片内空间完成视频海量数据的处理,最大程度的节省了视频编码的内存需求,可以满足8~10路CIF图像编码的内存需求。
4、按照本发明提出的编码方案设计实现的编码器,经优化后可以实现8路CIF图像的实时编码,达到监控领域的先进水平。
附图说明
图1是DM642片内资源示意框图;
图2是H.264档次示意框图;
图3是本发明实施例的一种基于TMS320DM642芯片的嵌入式H.264编码方法流程图;
图4是P帧数据搬移结构示意框图;
图5是用于片内数据重建和环路滤波的数据结构示意框图;
图6是用于片内运动搜索和插值的数据结构示意框图;
图7是整数样本、二分之一样本的位置示意框图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本文提出的编码方案,在满足H.264基本档次的基础上,对现有的编码方法进行了筛选和重新组合,并根据监控领域的特殊要求,选取主要档次中对监控领域实用的功能进行融合,实现满足监控需求的H.264监控档次。
本发明提出的编码主体框架采用H.264视频编码的常用的结构,其中I帧编码,P帧编码和B帧编码使用的主要技术包括数据搬移并行编码、帧内(Intra)预测、帧间(Inter)预测和运动补偿、变换处理、量化处理、去块效应滤波和熵编码等关键技术。数据搬移并行编码是指利用芯片其中的增强型直接内存存取结构进行待编码数据和重建数据的片内片外搬运,芯片核心处理器(CPU)进行编码工作,从而实现在时间上的并行操作。并通过调整数据搬移速度和处理器编码速度达到编码效率最佳值。帧内预测是指利用当前帧中已经编码宏块的信息对当前编码宏块进行预测的一种方式,在空间域进行,其基本原理就是利用相邻像素的空间相关性,根据已经重建的相邻块的一些像素来实现对当前编码块的预测。帧间预测编码使用运动估计和运动补偿技术,通过去除有效帧之间的时间冗余来提高编码效率并通过增加运动估计的灵活性和功能来改进运动估计的效率。变换编码是指将空间域的图像变换到频域,将图像的低频和高频分离,产生相关性很小的一些变换系数,并对其进行压缩编码。量化是指在不降低视觉效果的前提下减少图像编码长度,减少视觉恢复中不必要的信息。去块效应滤波是指去除H.264编解码算法带来的方块效应,去块效应滤波模块包含在整个编解码过程中,即重建后的图像经去块效应滤波后将放入帧存中作为参考帧供后续待编码帧使用。这样做不仅改善了图像质量,而且能够进一步提高帧间预测的编码效率。熵编码是指利用信源的统计特性进行码率压缩的编码。本发明所述数据搬移并行编码为基于自主设计的乒乓数据结构体的数据搬移和编码方法。数据结构分为图像源乒块、图像源乓块、重建数据乒块、重建数据乓块、运动搜索窗乒块和运动搜索窗乓块六个部分。
具体来说,本发明所述的监控档次在利用I片、P片支持帧内和帧间编码的基础上同时支持采用B片的帧间编码来满足带宽受限的监控应用大幅度的控制码率,在时间轴上实现一定程度的可伸缩编码,支持利用基于上下文的自适应的变长编码进行的熵编码(CAVLC),针对监控领域数字与模拟设备并存,隔行扫描与逐行扫描并存的现状,同时支持隔行视频和逐行视频的编码,即同时满足场编码和帧编码。经过融合的H.264监控档次,经实践证明更能满足监控领域的应用。
图3为本发明的主要编码流程图,包括:
步骤S301,利用TMS320DM642芯片中快速直接内存存取(QuickDirect Memory Access,QDMA)的并行性,利用乒乓数据结构为基础,条带、宏块两级数据搬移的方式并行地实现输入数据及输出重建数据的传输和编码,对输入数据进行帧内或帧间预测,得到预测图像。具体步骤如图4所示:
使用芯片集成的QDMA将下一次CPU编码时需要的待编码数据放在图像源乒块(或图像源乓块)中。
可选择性的将运动搜索窗数据放在运动搜索窗乒块(或运动搜索窗乓块)中,同时CPU对图像源乓块(或图像源乒块)进行编码,按照顺序进行帧间预测即在运动搜索窗乓块(或运动搜索窗乒块)内预测或帧内预测,得到绝对误差和最小的预测图像。
步骤S302,以片内运动搜索窗和片内插值结构实现所述预测图像的帧间预测和运动补偿;
步骤S303,将运动补偿的残差结果进行整数离散余弦变换,并将编码结果按照不同的量化参数进行量化并保存;
步骤S304,将量化的结果按照基于上下文自适应的变长编码进行编码。然后将保存的数据进行反量化和反整数离散余弦变换,得到变换后的结果,将所述变换后的结果保存在重建数据乒块或重建数据乓块中;
步骤S305,对所述变换后的结果进行滤波,并将滤波后的数据通过芯片集成的QDMA搬运到片外空间。
其中,滤波的过程使用如图5所示的结构,在完成帧内预测,变换量化,数据重建的基础上,进一步实现片内环路滤波。一般环路滤波实现在整个图像编码后,对于DM642来说,这样做会导致图像数据在片内和片外的反复传递,反复的从片外读取数据会极大的增加DSP等待的时间,影像编码的效率。针对这个问题,本文对片内重建缓冲区进行了新的设计用于实现与编码同步进行的片内环路滤波。采用乒乓结构,分别定义为Ping_REC和Pong_REC,以亮度为例,Ping_REC的环路滤波操作步骤(Pong_REC的操作步骤类似):
(1)在Ping_REC中数据完成重建后读取Pong_REC(存储左边已重建宏块的数据)中块3,7,11,15,到Ping_REC的块left0,left1,left2,left3作为左侧待滤波数据。
(2)读取片内保存的上一宏块行对应宏块的后4行数据到Ping_REC的块up0,up1,up2,up3中作为上方待滤波数据。
(3)读取片内保存的当前宏块左上角的4×4块到Ping_REC的块upleft作为左上方待滤波数据。
(4)进行环路滤波。
(5)以(0,28)为起点,将32×20的数据以QDMA的方式传递到片外对应地址中。
(6)乒乓位置互换,重复进行操作。
其中重建数据滤波需要的数据和运动搜索需要的数据全部保存在重建数据乒块(重建数据乓块)中,这个数据结构体的设计如图6所示,整像素搜索范围为38×38,半像素的搜索范围为40×40。该部分用于完成帧间预测和运动补偿,搜索窗采用乒乓结构,即定义两个相同的数据结构交替执行。运动搜索需要的半像素数据,如图7所示,通过如下方法获得:
为了计算标记为b的半样点位置上的样点值,首先应该通过对临近的整数位置样点进行水平方向6拍滤波,计算得到中间值b1。为了计算半样点位置上的样点值h,首先应该通过对临近的整数位置样点进行垂直方向6拍滤波,计算得到中间值h1:
b1=(E-5×F+20×G+20×H-5×I+J)
h1=(A-5×C+20×G+20×M-5×R+T)
b和h的最终预测值应该通过下列式子得到:
b=Clip1((b1+16)>>5)
h=Clip1((h1+16)>>5)
为了计算半样点位置上的样点值j(图7中带字母的方格表示采样点),首先应该通过对临近的半整数位置样点进行水平或垂直方向(二者得到的结果相等)6拍滤波,计算得到中间值j1:
j1=cc-5×dd+20×h1+20×m1-5×ee+ff,或
j1=aa-5×bb+20×b1+20×s1-5×gg+hh
其中,中间值aa、bb、gg、s1和hh应该使用与b1相同的方法进行水平6拍滤波导出,cc、dd、ee、m1和ff应该使用与h1相同的方法进行水平6拍滤波导出。j的最终预测值应该通过下式得到:
j=Clip1((j1+512)>>10)
Clip 1(x)=Clip3(0,255,x)
最终预测值s和m应该采用与b和h相同的导出方法根据s1和m1按照下式得到:
s=Clip1((s1+16)>>5)
m=Clip1((m1+16)>>5)。
在整个编码过程中,帧内预测为计算的统一和便于优化,对于亮度分量的INTRA4×4和INTRA16×16选取相同的预测模式,分别为垂直预测、水平预测、DC预测和PLANE预测,色度分量选取的亮度分量相同的预测模式。
所述帧间预测同时支持P片的前向预测和B片的双向预测,帧间预测中的块划分模式统一为16×16,亮度运动向量精度为二分之一像素,色度运动向量精度为四分之一像素。
所述变换量化采用4×4整数DCT变换,针对INTRA16×16模式下亮度DC系数进行4×4Hadamard变换,针对所有色度块DC系数,采用2×2Hadamard变换。
所述量化采用标量量化技术,它将每个图像样点编码映射成较小的数值。量化参数值根据监控领域的实际需求,设置为15、20、25、30、35、40,数值越小对应图像质量越好,依次对应:好,较好,好,一般,较差,差。
所述去块滤波采用自适应边界级环路滤波,对所有4×4块间的边界进行滤波,边界强度参数值在0到4之间。
所述熵编码采用一种变长码(Variable Length Code,VLC),对宏块的编码模式和运动向量采用统一的指数哥伦布编码(Exp Golomb),对量化系数采用上下文自适应的变长编码(ContextAdaptive Variable Length Coding,CAVLC)。
本发明通过面向应用的视频编码方案设计实现的编码器,能够全天24小时对原始视频数据最大可实现8路CIF实时编码,图像主客观质量较好,能满足多种应用需求,实现了本发明的目的。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
机译: 基于H.264的可伸缩编码方法,该方法使用基于帧大小的图层的不同预测结构来执行运动补偿
机译: H.264 / AVC编码器的基于无缝上下文的自适应二进制算术编码及其编码方法
机译: H.264 / AVC编码器的基于无缝上下文的自适应二进制算术编码及其编码方法