一种宏块模式的快速选择方法

文档序号:7646676阅读:196来源:国知局
专利名称:一种宏块模式的快速选择方法
技术领域
本发明涉及一种视频信息处理过程中宏块模式的快速选择方法,特别是一
种适用于P-slice的宏块模式的快速选择方法。
背景技术
AVS (Audio-Video Standard)数字音视频编解码技术标准,是我国数字 电视、高清晰度视盘、流媒体和多媒体等数字音视频产业的共同基础技术标准, 代表了当前国际先进水平。H. 264是由IS0/IEC与ITU-T组成的联合视频组 (JVT)制定的新一代视频压縮编码标准,基于先期的视频压縮标准,H. 264引入 了很多先进的技术,也是目前国际公认的先进视频技术标准之一。
P-slice是AVS、 H. 264等标准中最为常用的一种slice, AVS、 H. 264及近 年来广泛应用的其它视频编解码标准对P-slice都是采用以宏块 (macro-block)为基本单位的编解码方式。从现有技术来看,对于宏块模式 的选择主要有以下一些方法(1)采用率失真优化(RDO: Rate-Distortion Optimization)方法计算各种宏块模式的率失真代价(RDCost : Rate-Distortion Cost),并将率失真代价最小的模式当作最终编码模式,这 种方法提高了编码效率和图像质量,但它需对每一种可能的宏块模式进行率失 真优化计算,使得计算量急剧增加。(2)根据运动搜索计算代价函数值,选取 值最小的那种宏块模式作为最终模式,这种方法能够良好的保证解码后的图 像质量,但是计算量也很大,使运动估计成为整个视频编码最费时的部分之 一。(3)采用宏块图像的细节程度来对Inter模式的宏块进行子块的划分,从 而决定inter宏块的最终模式(inter宏块的子块类型),该方法的计算量小,
但不易于在帧内编码(intra)或者帧间编码(inter)模式上作出选择,从而 不能有效地选择出p-slice的宏块模式。(最接近的现有技术是不是第3种?)

发明内容
为了加快视频压縮计算速度,实现视频实时压縮,本发明提供了一种针对 P-slice宏块模式的快速选择方法。
本发明的技术方案是 一种宏块模式的快速选择方法,该方法包括步骤 步骤l,开始时根据片内存储器的大小确定连续宏块的大小,把一帧中的所有
宏块划分为若干连续的16X16宏块,每个连续宏块中的所有宏块都处于一帧 中同一行上,并分配所需的片内缓冲区;步骤2,把当前帧和参考帧中对于连 续宏块进行模式选择所需要的亮度、色度数据复制到片内缓冲区;步骤3,对 连续宏块中每个宏块的模式进行计算以确定每个宏块的最终模式;步骤4,若 当前连续宏块中所有宏块模式处理完,则结束当前连续宏块模式选择过程;否 则回到步骤l继续进行。
进一步的,在步骤3中对每个连续宏块中的当前宏块进行16X16模式的 整像素运动估计,并对于每个连续宏块中的所有宏块模式的计算进行连续的循 环处理,其间不对宏块进行变换、量化、重建、变长编码等操作。
本发明的有益效果是由于把一帧中的所有宏块划分为若干连续宏块,每 个连续宏块中的所有宏块都处于一帧中同一行上,并把模式选择所需要的亮 度、色度数据复制到片内缓冲区内,减少了数据的交换,使得数据访问的速度 加快,加快了视频压縮的计算速度。在选择模式时不需要对宏块进行变换、量 化、重建、变长编码等操作,使得计算复杂度大为减少,进一步的加快了视频 压縮的计算速度。


图1示出了根据本发明实施例的一种宏块模式的快速选择方法的流程图; 图2示出了 4个8X8亮度子块的编号方式。
具体实施例方式
下面结合附图和实施例为例对本发明进行进一步说明
在AVS标准中,宏块模式分为帧间编码(inter)模式和帧内编码(intra) 模式,帧间编码模式又可按照子块尺寸划分为16X16、 16X8、 8X16、 8X8 模式,而P—slice中的跳过模式是帧间编码模式的一种特殊模式。帧内编码 模式中每个8 X 8亮度子块包含5种预测模式,每个8 X 8色度子块包含4种预 测模式。编码器通过对运动估计值、细节度值等参数的计算来对宏块的模式进 行选择。
在本实施例中,选用美国德州仪器(TI)公司的TMS320DM64x系列多媒体 处理芯片作为本实施例的硬件平台。德州仪器(TI)公司的TMS320DM64x系列 多媒体处理芯片,适合于数字媒体应用,函64x片上具有一级缓存(cache)和 可配置RAM/Cache,以及64个32位通用寄存器,这些存储空间保证了大规 模音视频处理程序高效快速地运行。 一级缓存分为程序cache和数据cache两 种,访问速度快。可配置RAM/Cache可以把它分割为片内存储器(ISRAM)和 二级缓存,片内存储器(ISRAM)可以存放程序和数据,访问速度快。二级缓 存也是一种高速cache,可提高程序和数据的访问速度。DM64x所应用的EDMA 控制器具有64个独立DMA通道,其传输配置信息保存在RAM中,能够同时处 理多个DMA传输任务。DMA传输只需要DSP核最小程度地介入,从而有效地提 高了系统的处理速度。在本实施例中选用AVS标准的P — SLICE进行模式选择。
如图1所示的流程图给出了本实施例的具体过程
步骤1,初始时根据DSP有效的片内存储器(ISRAM)的大小确定连续宏块 的大小,并分配所需的片内缓冲区等。连续宏块的大小(其包含的宏块个数) 是根据能用的ISRAM的大小和运动向量的取值范围决定
一般地,设连续宏块的大小为L,运动向量的取值范围为-N +N,有效的
ISRAM的大小为M。字节,参考帧数为l帧,则
<formula>formula see original document page 10</formula>
根据计算出的连续宏块的大小L从而确定实际所需的片内缓冲区大小M (字节),
M=2X (16XL + 2N) X (16 + 2N) + (L + l) X16X26 步骤2,把当前帧和参考帧中对于连续宏块进行模式选择所需要的亮度、 色度数据通过DMA的方式复制到片内缓冲区。这些数据包含当前帧的连续宏 块中的亮度、色度数据,以及连续宏块边界的上一行数据和左边数据;参考帧 中对应位置的亮度、色度数据。
步骤3,连续宏块中每个宏块的模式计算。
步骤3. 1,对连续宏块中当前宏块进行16X16模式的整像素运动估计。 确定连续宏块中当前宏块的位置,并运用本单位专利1的方法进行16X16
块模式的快速运动估计计算,设运动估计完成后得到的运动向量为MVi二(MVXi, MVYJ,残差值为SAD1="Z,,-Ll。其中J^和L分别为当前帧和参考帧中第
(i, j)位置的像素值。
步骤3. 2,根据运动估计结果判断当前宏块的初始模式是否为Intra模式? 确定一个阀值T。= 16 X (max (min(40, q) , 24))2,其中q为量化参数。当SADt〉
T。时,把当前宏块的初始模式作为Intra模式,进行到步骤3.8;否则,进行
到下一步骤3.3。
步骤3.3,判断当前宏块是否为SKIP模式?
确定一个阀值L二256 X (max (min (6, q/6) , 4))2,其中q为量化参数。当SADK L,且MV,等于运动向量的预测值时,把当前宏块的初始模式作为SKIP模式, 进行到步骤3.8;否则,进行到下一步骤3.4。
步骤3.4,当前宏块的初始模式为16X16
确定一个阀值T2=768X (max(min(16,q/3),8)),其中q为量化参数。当 SADX T2,把当前宏块的初始模式作为16X16模式,进行到步骤3.8;否则, 进行到下一步骤3.5。
步骤3. 5,计算当前宏块中4个8 X8亮度子块的细节度,确定其初始inter 模式。
4个8X8亮度子块的编号如下图2所示。
对于每个8X8子块,首先计算每个像素点(x,y)的V, (x,y), Vy (x, y) 和G (x,y)值,其计算方法如下
设像素点(x,y)的值为F (x,y),
<formula>formula see original document page 11</formula>设第i个8X8子块的细节度为Di(i=0, 1, 2, 3)。确定一个阀值1=1024 X(max(min(14,q/3),6)),其中q为量化参数。然后把Di二值化
'L0 A"
当前宏块的初始inter模式计算方法如下
(a) 如果4个DSi中至多有1个为1,则前宏块的初始inter模式为16X 16模式;
(b) 如果4个DSi中至少有3个为1,则前宏块的初始inter模式为8X8
模式;
(c)如果4个DSi中恰好有2个为1时
(cl)如果DSo二DSi-l或者DS2二DS3二1,则前宏块的初始inter模式为 16X8模式;
(c2)如果DS。=DS2=1或者DS,=DS3 = 1,则前宏块的初始inter模式为8 X16模式;
(c3)如果DS。 = DS3 = 1或者DSi二DS2二l,令Vx=|; l;r,(x,力,Vy=
产0 x=0
I; IX(x,力,当V,Vy时,则前宏块的初始inter模式为16X8模式;当V^Vy
时,则前宏块的初始inter模式为8X16模式。
步骤3. 6:对当前宏块的初始inter模式进行整像素运动估计。 对当前宏块的每个亮度子块(由初始inter模式决定,如初始inter模式 为16X8,则两个亮度子块均为16X8子块)按照步骤3. 1的方式进行整像素 运动估计,设所有亮度子块的运动估计残差值之和SAD2。
步骤3.7:对当前宏块的亮度进行Intra预测,并计算其初始模式。 对当前宏块中每个8X8亮度子块进行预测,预测时上边界和左边界的像 素都取当前帧的像素(不取重建帧的像素),残差值最小的预测模式作为8X8 亮度子块的预测模式,四个8X8亮度子块的最小残差值之和记为SAD3 (也称 象素值绝对差和,Sum of Absolute Difference,简称SAD)。
(a) :如果SAD2〉SAD"并且SAD, SAD3,则前宏块的初始模式修改为Intra 模式;
(b) :如果SAD2〉 SAD"并且SAD^SAD3,则前宏块的初始模式修改为16X 16 inter模式;(c) :如果SAD^ SAD"并且SAD2〉SAD3,则前宏块的初始模式修改为Intra 模式;
(d) :如果SAD^ SAD"并且SAD^SAD3,则前宏块的初始模式不变; 步骤3.8:确定当前宏块的最终模式。
(a) 如由步骤3. 2得到的当前宏块的初始模式为Intra模式,则当前宏 块的最终模式为Intra模式。
其每个8X8亮度子块和色度子块的最终预测模式方法如下 先由该子块在当前帧中的边界值计算出各种模式的预测值,然后计算预测
值和当前子块的残差值,最后把残差值最小的预测模式作为该子块的最终预测模式。
(b) 由步骤3.3得到的当前宏块的初始模式为SKIP模式,则当前宏块的 最终模式为SKIP模式。
(c) 由步骤3.4得到的当前宏块的初始模式为16X16inter模式,则当 前宏块的最终模式为16X16 inter模式,并进行子像素运动估计,得到最终 的运动向量。
(d) 如由步骤3.7得到的当前宏块的初始模式为inter模式,则当前宏 块的最终模式就为初始模式,并进行子像素运动估计,得到最终的运动向量;; 如由步骤3. 7得到的当前宏块的初始模式为intra模式,则把每个亮度子块的 预测残差值最小的预测模式作为该亮度子块的最终预测模式,色度子块的最终 预测模式的计算方法与本步骤中的情形(a)相同。
步骤3. 9,当前连续宏块中所有宏块处理完?
如果当前连续宏块中所有宏块模式处理完,则进行到步骤4;否则回到步 骤3. l继续进行。
步骤4,结束当前连续宏块模式选择过程。
本实施例以德州仪器(TI)公司的TMS320DM64x系列多媒体处理芯片对AVS 标准的P-slice的模式选择来说明本发明的原理,本领域的普通技术人员将会 意识到,其它任何视频压縮标准和任何类似硬件平台对本发明的技术方案的应 用,尽管这里未明确描述和示出,都应包括在本发明的保护范围内。而且,这 里所述的示例和公式和函数出于帮助读者理解本发明的原理,应被理解为并不 局限于这样的特别陈述的示例和条件。
权利要求
1.一种宏块模式的快速选择方法,其特征在于,该方法包括步骤步骤1,开始时根据片内存储器的大小确定连续宏块的大小,把一帧中的所有宏块划分为若干连续的16×16宏块,每个连续宏块中的所有宏块都处于一帧中同一行上,并分配所需的片内缓冲区;步骤2,把当前帧和参考帧中对于连续宏块进行模式选择所需要的亮度、色度数据复制到片内缓冲区;步骤3,对连续宏块中每个宏块的模式进行计算以确定每个宏块的最终模式;步骤4,若当前连续宏块中所有宏块模式处理完,则结束当前连续宏块模式选择过程;否则回到步骤1继续进行。
2. 根据权利要求1所述的宏块模式的快速选择方法,其特征在于,步骤3包 括步骤步骤3. 1,对连续宏块中当前宏块进行16X16模式的整像素运动估计; 步骤3. 2,根据运动估计结果判断当前宏块的初始模式是否为Intra模式,若是,则把当前宏块的初始模式作为Intra模式,转到步骤3. 8,若不是,则进行步骤3.3,判断当前宏块的初始模式是否为SKIP模式,若是,则把当前宏 块的初始模式作为SKIP模式,转到步骤3.8,若不是,则进行步骤3.4,判断当前宏块的初始模式是否为16X16模式,若是,则把当前 宏块的初始模式作为16X16模式,转到步骤3.8,若不是,则进行步骤3.5,计算当前宏块中4个8X8亮度子块的细节度,确定其初始帧间 编码(inter)模式。步骤3. 6,对当前宏块的初始帧间编码(inter)模式进行整像素运动估计; 步骤3.7,对当前宏块的亮度进行帧内编码(Intra)模式预测,并计算其 初始模式;步骤3.8,确定当前宏块的最终模式。
3.根据权利要求2所述的宏块模式的快速选择方法,其特征在于,步骤3.5 包括步骤对于每个8X8子块,首先计算每个像素点(x,y)的V, (x,y), Vy (x, y) 和G(x,y)值,则8X8子块的细节度为^ ^G(x,力,设第i个8X8子块的细节度为Di (i =0, 1 , 2, 3)。确定一个阀值T3= 1024X (max (min(14, q/3) , 6)), 其中q为量化参数。然后把Di二值化若(a)如果4个DSi中至多有1个为1,则当前宏块的初始inter模式为16 X16模式;或,(b) 如果4个DSi中至少有3个为1,则当前宏块的初始inter模式为8 X8模式;或,(c) 如果4个DSi中恰好有2个为1时,则当前宏块的初始inter模式为 16X8模式或8X16模式;
4.根据权利要求3所述的宏块模式的快速选择方法,其特征在于,步骤3. 5 中的步骤(c)包括以下步骤之一 (cl)如果DS。二DSf1或者DS2=DS3 = 1,则前宏块的初始inter模式为16X8模式;或,(c2)如果DS。=DS2=1或者DS,二DS3二1,则前宏块的初始inter模式为8 X16模式;或,(c3)如果DS。 = DS3 = 1或者DS,二DS2二1,令Vx=|] f]^(x,力,Vy =产0 jc=0i堂K(x,W,当"Vy时,则前宏块的初始inter模式为16X8模式;当VxsVy少=0 义=0时,则前宏块的初始inter模式为8X16模式。
5. 根据权利要求2所述的宏块模式的快速选择方法,其特征在于,步骤3.7 包括以下步骤对当前宏块中每个8X8亮度子块进行预测,预测时上边界和左边界的像 素都取当前帧的像素(不取重建帧的像素),残差值最小的预测模式作为8X8 亮度子块的预测模式,四个8X8亮度子块的最小残差值之和记为SAD3,若(a) 如果SAD2〉 SAD1,并且SAD1〉 SAD3,则前宏块的初始模式修改为Intra 模式;(b) 如果SAD2〉 SAD1,并且SAD1 SAD3,则前宏块的初始模式修改为16X 16 inter模式j(c) 如果SAD2 SAD1,并且SAD2〉SAD3,则前宏块的初始模式修改为Intra 模式;(d) 如果SAD2 SAD1,并且SAD2 SAD3,则前宏块的初始模式不变;
6. 根据权利要求2所述的宏块模式的快速选择方法,其特征在于,步骤3.8 包括以下步骤之一(a)如由步骤3.2得到的当前宏块的初始模式为Intra模式,则当前宏块的最终模式为Intra模式;其每个8X8亮度子块和色度子块的最终预测模式 方法如下先由该子块在当前帧中的边界值计算出各种模式的预测值,然后计算预测 值和当前子块的残差值,最后把残差值最小的预测模式作为该子块的最终预测模式5或赘(b) 由步骤3.3得到的当前宏块的初始模式为SKIP模式,则当前宏块的 最终模式为SKIP模式;或,(c) 由步骤3.4得到的当前宏块的初始模式为16X16 inter模式,则当 前宏块的最终模式为16X16 inter模式,并进行子像素运动估计,得到最终 的运动向量;或,(d) 由步骤3.7得到的当前宏块的初始模式为inter模式,则当前宏块 的最终模式就为初始模式,并进行子像素运动估计,得到最终的运动向量;如 由步骤3. 7得到的当前宏块的初始模式为intra模式,则把每个亮度子块的预 测残差值最小的预测模式作为该亮度子块的最终预测模式,色度子块的最终预 测模式的计算方法与步骤(a)相同。
7.根据权利要求1一6任一项所述的宏块模式的快速选择方法,其特征在于,步骤1中宏块的大小L为L =Mo—416—64N—8N2 928+64N,片内缓冲区M的大小为M二2X (16XL+2N) X (16+2N) + (L+l) X16X26,运动向量的 取值范围为-N +N。
8.根据权利要求1一6任一项所述的宏块模式的快速选择方法,其特征在于, 步骤1中的存储器为DSP的片内存储器(ISRAM)。
9.根据权利要求1一6任一项所述的宏块模式的快速选择方法,其特征在于,步骤2中数据复制到片内缓冲区的方式为直接存储器访问(DMA)方式。
全文摘要
本发明涉及一种视频信息处理过程中宏块模式的快速选择方法,特别是一种适用于P-slice的宏块模式的快速选择方法。包括步骤步骤1,开始时根据片内存储器的大小确定连续宏块的大小,把一帧中的所有宏块划分为若干连续的16×16宏块,每个连续宏块中的所有宏块都处于一帧中同一行上,并分配所需的片内缓冲区;步骤2,把当前帧和参考帧中对于连续宏块进行模式选择所需要的亮度、色度数据复制到片内缓冲区;步骤3,对连续宏块中每个宏块的模式进行计算以确定每个宏块的最终模式;步骤4,若当前连续宏块中所有宏块模式处理完,则结束当前连续宏块模式选择过程;否则回到步骤1继续进行。本发明的技术方案可以有效的加快视频压缩计算速度,实现视频实时压缩。
文档编号H04N7/24GK101170688SQ200710050618
公开日2008年4月30日 申请日期2007年11月26日 优先权日2007年11月26日
发明者何明耘, 卢光辉, 崔金钟, 蔡洪斌, 陈雷霆 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1