CN104980737A - 帧间模式选择方法 - Google Patents

帧间模式选择方法 Download PDF

Info

Publication number
CN104980737A
CN104980737A CN201410128908.0A CN201410128908A CN104980737A CN 104980737 A CN104980737 A CN 104980737A CN 201410128908 A CN201410128908 A CN 201410128908A CN 104980737 A CN104980737 A CN 104980737A
Authority
CN
China
Prior art keywords
mentioned
cost
sub
partition unit
macroblock partition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410128908.0A
Other languages
English (en)
Other versions
CN104980737B (zh
Inventor
李杰明
董火新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yangzhi Electronic Technology Chengdu Co ltd
Original Assignee
Ali Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ali Corp filed Critical Ali Corp
Priority to CN201410128908.0A priority Critical patent/CN104980737B/zh
Publication of CN104980737A publication Critical patent/CN104980737A/zh
Application granted granted Critical
Publication of CN104980737B publication Critical patent/CN104980737B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明提供一种帧间模式选择方法。基于整像素运动估计的结果,针对8×8子宏块单元来判断其小于8×8的划分,之后再执行分数像素运动估计,藉以获得8×8子宏块单元的第一代价。并且,基于整像素运动估计的结果,针对8×8子宏块单元执行分数像素运动估计,藉以获得8×8子宏块单元的第二代价。基于上述第一代价及第二代价来获得8×8子宏块单元的最佳代价。另外,基于整像素运动估计的结果,针对大于8×8的宏块分割单元执行分数像素运动估计,藉以获得大于8×8的宏块分割单元各自的第三代价。藉此,自最佳代价与第三代价中选择最小值来作为最佳帧间模式。

Description

帧间模式选择方法
技术领域
本发明是有关于一种视频编码技术,且特别是有关于一种帧间模式选择方法。
背景技术
H.264编码器中,帧间模式的编码运算量通常会占据整个编码器80%以上的运算量。帧间编码的核心运算部分为运动估计(motion estimation),其占用最多的逻辑与时钟资源(clock resource)。一般而言,帧间模式的运动估计包括整像素运动估计(integer pixel motion estimation,IME)和分数像素运动估计(fractional pixel motion estimation,FME)。
在进行整像素运动估计时,首先要计算运动矢量预测值(motion vectorprediction,MVP)。而在分数像素运动估计中,对于P帧(P frame)而言,每个宏块(macro block,MB)要搜索41个运动矢量(motion vector,MV),而对于B帧(B frame)而言,每个宏块要搜索82个运动矢量。
在处理B帧的时候,若搜索82个运动矢量,则处理一个宏块需要1200时钟周期(cycles),但是这样的速度并无法满足1080p即时编码的性能要求。另外,通过统计发现,8×8以下子块划分的搜索最耗时,大约占据整个分数像素编码时间的70%。为了提高编码速度,一般X264编码器对于B帧不做8×8以下的运动搜索。如此一来,规格上便缺少了8×8以下子块的编码,对于细节较多的图像画质有较大的损失。
发明内容
本发明提供一种帧间模式选择方法,利用整像素运动估计的结果,预判断尺寸小于8×8的划分,从而减少所需分数像素运动估计的运算时间,同时编码的图像质量亦与原来的相近。
本发明的帧间模式选择方法包括下列步骤(a)~(i)。(a)划分宏块以获得尺寸16×16、16×8及8×16的宏块分割单元以及尺寸8×8的子宏块单元。(b)对每一个8×8子宏块单元进行划分以获得8×4、4×8及4×4的第一子宏块分割单元与8×8的第二子宏块分割单元。(c)对于上述每一个16×16、16×8及8×16宏块分割单元以及每一个8×4、4×8及4×4第一子宏块分割单元和每一个8×8第二子宏块分割单元,分别执行整像素运动估计。(d)基于上述整像素运动估计的结果,获得每一个8×8子宏块单元内的最佳第一子宏块分割单元。(e)对于每一个8×8子宏块单元的最佳第一子宏块分割单元执行分数像素运动估计,获得每一个每一个子宏块单元的第一代价。(f)基于上述整像素运动估计的结果,分别对于每一个8×8子宏块单元划分而得的8×8第二子宏块分割单元执行上述分数像素运动估计,以获得每一个8×8子宏块单元的第二代价。(g)基于每一个8×8子宏块单元的第一代价与第二代价,而获得以8×8子宏块单元来划分16×16宏块的最佳代价。(h)对每一个16×16、16×8及8×16宏块分割单元执行上述分数像素运动估计,获得上述尺寸16×16、16×8及8×16分别对应的多个第三代价。(i)自上述最佳代价与上述多个第三代价中选择最小值。
在本发明的一实施例中,上述步骤(d)还包括:基于上述整像素运动估计的结果,分别计算上述第一子宏块分割单元为上述尺寸4×8、8×4及4×4的多个整像素代价和SUM_IME(4×8)、SUM_IME(8×4)及SUM_IME(4×4);以及选择上述整像素代价和SUM_IME(4×8)、SUM_IME(8×4)及SUM_IME(4×4)中的最小值,以上述最小值对应的尺寸作为第一最佳尺寸,并以上述第一最佳尺寸对应的上述第一子宏块分割单元作为上述最佳第一子宏块分割单元。在此,以ImeCost_0(4×8)、ImeCost_1(4×8)表示在尺寸为4×8的两个第一子宏块分割单元的整像素代价,以ImeCost_0(8×4)、ImeCost_1(8×4)表示尺寸为8×4的两个第一子宏块分割单元的整像素代价,以ImeCost_0(4×4)~ImeCost_3(4×4)表示尺寸为4×4的四个第一子宏块分割单元的整像素代价,则SUM_IME(4×8)、SUM_IME(8×4)及SUM_IME(4×4)如下所示:
SUM_IME(4×8)=ImeCost_0(4×8)+ImeCost_1(4×8);
SUM_IME(8×4)=ImeCost_0(8×4)+ImeCost_1(8×4);以及
SUM_IME(4×4)=ImeCost_0(4×4)+ImeCost_1(4×4)+ImeCost_2(4×4)+ImeCost_3(4×4)。
在本发明的一实施例中,基于上述整像素运动估计的结果,分别计算上述第一子宏块分割单元的上述多个整像素代价和的步骤还包括:当上述帧间模式选择方法用于B帧,分别获得每一个第一子宏块分割单元在List0方向及List1方向的上述整像素代价和;以及当上述帧间模式选择方法用于P帧,获得每一个第一子宏块分割单元在List0方向的整像素代价和。
在本发明的一实施例中,上述步骤(e)包括:针对以第一最佳尺寸划分8×8子宏块单元而获得的最佳第一子宏块分割单元,执行分数像素运动估计,而获得多个分数像素代价;以及将上述多个分数像素代价相加,以获得第一代价。
在本发明的一实施例中,在上述步骤(f)中,当上述帧间模式选择方法用于B帧,对每一个8×8第二子宏块分割单元执行分数像素运动估计,获得每一个8×8第二子宏块分割单元在List0方向、List1方向以及双向三者的预测代价;以及自上述三个预测代价中选择最小值作为第二代价。另外,在上述步骤(f)中,当帧间模式选择方法用于P帧,对于每一个8×8第二子宏块分割单元执行分数像素运动估计,获得每一个8×8第二子宏块分割单元在List0方向的代价作为第二代价。
在本发明的一实施例中,上述步骤(g)包括:分别在四个8×8子宏块单元中,选择第一代价与第二代价中的最小值,藉此获得四个最小代价BestCost_0(8×8)、BestCost_1(8×8)、BestCost_2(8×8)以及BestCost_3(8×8),并将上述四个最小代价加总而获得最佳代价SumCost(8×8),即
SumCost(8×8)=BestCost_0(8×8)+BestCost_1(8×8)+BestCost_2(8×8)+BestCost_3(8×8)。
在本发明的一实施例中,上述步骤(h)包括:(h-1)基于对宏块分割单元执行分数像素运动估计的结果,分别获得每一个宏块分割单元的尺寸为16×16、16×8及8×16的最佳预测代价;以及(h-2)基于上述最佳预测代价,分别获得尺寸为16×16、16×8及8×16的宏块分割单元的第三代价3rd_cost(16×16)、3rd_cost(16×8)及3rd_cost(8×16)。在此,以block_cost(16×16)表示尺寸为16×16的一个宏块分割单元的最佳预测代价,以block_cost_0(16×8)及block_cost_1(16×8)表示尺寸为16×8的两个宏块分割单元的最佳预测代价,以block_cost_0(8×16)及block_cost_1(8×16)表示尺寸为8×16的两个宏块分割单元的最佳预测代价,则3rd_cost(16×16)、3rd_cost(16×8)及3rd_cost(8×16)如下所示:
3rd_cost(16×16)=block_cost(16×16);
3rd_cost(16×8)=block_cost_0(16×8)+block_cost_1(16×8);
3rd_cost(8×16)=block_cost_0(8×16)+block_cost_1(8×16)。
在本发明的一实施例中,在上述步骤(h-1)中,当帧间模式选择方法用于B帧,分别对尺寸为16×16、16×8及8×16的宏块分割单元执行分数像素运动估计,而分别获得每一个宏块分割单元在List0方向、List1方向以及双向三者的预测代价;以及自上述三个预测代价选择最小值作为每一个宏块分割单元的最佳预测代价。另外,在上述步骤(h-1)中,当帧间模式选择方法用于P帧,分别对尺寸为16×16、16×8及8×16的宏块分割单元执行分数像素运动估计,而获得每一个宏块分割单元在List0方向的代价作为每一个宏块分割单元的最佳预测代价。
在本发明的一实施例中,上述步骤(c)还包括:计算运动矢量预测值,以基于上述运动矢量预测值来执行上述整像素运动估计。
基于上述,在上述帧间编码中对所有尺寸的子块皆进行搜索,使得编码后的图像质量能够与原始质量的相近。并且,利用整像素运动估计的结果,预判断尺寸小于8×8的划分,进而减少在尺寸小于8×8所需分数像素运动估计的运算时间。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1是依照本发明一实施例的帧间模式选择方法的流程图。
图2是依照本发明一实施例的宏块划分的示意图。
图3是依照本发明一实施例的计算8×8子宏块单元的最佳代价的流程图。
图4是依照本发明一实施例的计算宏块分割单元的第三代价的流程图。
附图标记说明
S1~S5:宏块分割单元
SU1~SU4:子宏块单元
MU0:第二子宏块分割单元
MU1~MU8:第一子宏块分割单元
S105~S145:帧间模式选择方法的各步骤
S31~S35、S311~S344:计算8×8子宏块单元的最佳代价各步骤
S401~S432:计算宏块分割单元的第三代价各步骤
具体实施方式
图1是依照本发明一实施例的帧间模式选择方法的流程图。在此,本实施例的帧间模式选择方法可藉由具有运算能力的电子装置来执行。例如,电子装置中具有一编码器,由此编码器来执行下述步骤。
在步骤S105中,划分宏块以获得多个宏块分割单元以及多个子宏块单元。并且,在步骤S110中,对各子宏块单元进行划分以获得多个第一子宏块分割单元与多个第二子宏块分割单元。在H.264编码标准中,一个宏块(macro block)能被划分成一个16×16、或两个16×8、或两个8×16、或者四个8×8的子块(subblock)。而每一个8×8的子块又可以进一步划分为一个8×8、或两个8×4、或两个4×8、或四个4×4的子块。在此,对于由宏块所划分出的子块中,将尺寸为16×16、16×8及8×16的子块称为宏块分割单元,将尺寸为8×8的子块称为子宏块单元。并且,对于进一步由子宏块单元所划分出的子块中,将尺寸为8×4、4×8及4×4的子块称为第一子宏块分割单元,将尺寸8×8的子块称为第二子宏块分割单元。
底下搭配图式来进行说明。图2是依照本发明一实施例的宏块划分的示意图。请参照图2,每一个16×16宏块,可选择以尺寸16×16、16×8及8×16进行划分而获得宏块分割单元S1~S5,以尺寸8×8进行划分而获得子宏块单元SU1~SU4。而每一个子宏块单元SU1~SU4还可以进一步以尺寸8×4、4×8及4×4进行划分而获得第一子宏块分割单元MU1~MU8,或者以尺寸8×8进行划分而获得第二子宏块分割单元MU0。
接着,在步骤S115中,对于宏块分割单元S1~S5以及每一个子宏块单元SU1~SU4的第一子宏块分割单元MU1~MU8和第二子宏块分割单元MU0,分别执行整像素运动估计(integer pixel motion estimation,IME)。具体而言,可先计算16×16宏块的运动矢量预测值(motion vector prediction,MVP),之后再基于上述运动矢量预测值来对41个子块(包括1个16×16、2个16×8与2个8×16的宏块分割单元;4个8×8的第二子宏块分割单元;以及8个8×4、8个4×8与16个4×4的第一子宏块分割单元)执行整像素运动估计。另外,当帧间模式选择方法用于B帧,则会获得82个最佳的整像素估计值和对应的代价(cost)。而当帧间模式选择方法用于P帧,则会获得41个最佳的整像素估计值和对应的代价。
在此,帧间模式的编码包括整像素运动估计(IME)和分数像素运动估计(fractional pixel motion estimation,FME)以及模式的选择(mode decision)。整像素运动估计通过比较每个搜索位置的代价,而搜索出每个子块的最佳匹配位置。而代价可以是依据绝对误差和(sum of absolute difference,SAD)与运动矢量码率失真成本(motion vector rate-distortion cost,MVCOST)而获得。例如,cost=SAD+MVCOST,然,上述仅为举例说明,并不以此为限。而分数像素运动估计在整像素搜索的基础上,可搜索周边的9个分数像素点,选择代价最小的点作为最佳的匹配位置。
在获得各个子块的整像素运动估计的结果之后,基于整像素运动估计的结果,在步骤S120~S135中判断尺寸8×8以下的划分,并且在步骤S140中判断尺寸16×16、16×8、8×16的划分。即,在步骤S120与步骤S125中求出小于8×8(不包括8×8)划分对应的代价,在步骤S130中求出8×8划分对应的代价,并且在步骤S140中求出大于8×8划分对应的代价。然而,在此并不限制步骤S120、步骤S130及步骤S140三者的执行顺序。
在步骤S120中,基于整像素运动估计的结果,获得各子宏块单元SU1~SU4内的最佳第一子宏块分割单元。接着,在步骤S125中,对于各子宏块单元SU1~SU4的最佳第一子宏块分割单元执行分数像素运动估计,获得各子宏块单元SU1~SU4的第一代价。也就是说,先基于整像素运动估计的结果来预判断小于8×8(8×4、4×8及4×4)的划分,而获得子宏块单元SU1~SU4各自的最佳第一子宏块分割单元BestSub_SU1、BestSub_SU2、BestSub_SU3、BestSub_SU4。之后,再针对各最佳第一子宏块分割单元执行分数像素运动估计,藉此来计算第一代价SU1_1stCost、SU2_1stCost、SU3_1stCost及SU4_1stCost。
而在步骤S130中,基于整像素运动估计的结果,分别对于各子宏块单元SU1~SU4内的第二子宏块分割单元MU0执行分数像素运动估计,以获得各子宏块单元SU1~SU4的第二代价SU1_2ndCost、SU2_2ndCost、SU3_2ndCost及SU4_2ndCost。
在步骤S135中,基于各子宏块单元的第一代价与第二代价,而获得以子宏块单元来划分宏块的最佳代价,例如以SumCost(8×8)代表最佳代价。
详细地说,图3是依照本发明一实施例的计算8×8子宏块单元的最佳代价的流程图。请参照图3,步骤S31~S34分别代表判断子宏块单元SU1~SU4各自最佳代价的步骤。其中,步骤S31包括步骤S311~S314,步骤S32包括步骤S321~S324,步骤33包括步骤S331~S334,步骤S34包括步骤S341~S344。
以步骤S31而言,在步骤S311中,基于整像素运动估计的结果而获得子宏块单元SU1的最佳第一子宏块分割单元BestSub_SU1。具体而言,针对子宏块单元SU1,分别计算尺寸4×8、8×4及4×4的整像素代价和SUM_IME(4×8)、SUM_IME(8×4)及SUM_IME(4×4)。自整像素代价和SUM_IME(4×8)、SUM_IME(8×4)及SUM_IME(4×4)中选择最小值,以上述最小值对应的尺寸作为第一最佳尺寸,并以上述第一最佳尺寸对应的第一子宏块分割单元作为最佳第一子宏块分割单元。整像素代价和的运算如底下式1-1所示:
(式1-1)
SUM_IME(4×8)=ImeCost_0(4×8)+ImeCost_1(4×8);
SUM_IME(8×4)=ImeCost_0(8×4)+ImeCost_1(8×4);
SUM_IME(4×4)=ImeCost_0(4×4)+ImeCost_1(4×4)+ImeCost_2(4×4)+ImeCost_3(4×4)。
上述ImeCost_0(4×8)、ImeCost_1(4×8)表示在尺寸为4×8的两个第一子宏块分割单元(MU3、MU4)的整像素代价,上述ImeCost_0(8×4)、ImeCost_1(8×4)表示尺寸为8×4的两个第一子宏块分割单元(MU1、MU2)的整像素代价,上述ImeCost_0(4×4)~ImeCost_3(4×4)表示尺寸为4×4的四个第一子宏块分割单元(MU5~MU8)的整像素代价。
上述式1-1适用于当帧间模式选择方法用于P帧的情况下,即,在P帧中,获得各第一子宏块分割单元在List0方向的整像素代价和SUM_IME(4×8)、SUM_IME(8×4)及SUM_IME(4×4),之后,选择其中的最小值对应的尺寸作为第一最佳尺寸。例如,假设SUM_IME(4×4)为最小值,则以尺寸4×4作为第一最佳尺寸。
接着,在步骤S312中,基于分数像素运动估计,获得子宏块分割单元SU1的第一代价SU1_1stCost。详细地说,针对以第一最佳尺寸划分子宏块单元SU1所获得的多个第一子宏块分割单元执行分数像素运动估计,而获得多个分数像素代价。并且,将上述多个分数像素代价相加,以获得第一代价SU1_1stCost。例如,假设第一最佳尺寸为4×4,则对第一子宏块分割单元MU5~MU8执行分数像素运动估计,而获得四个分数像素代价。之后,将这四个分数像素代价相加而获得第一代价SU1_1stCost。
另外,在步骤S313中,基于整像素运动估计的结果,对于第二子宏块分割单元MU0执行分数像素运动估计,获得第二子宏块分割单元MU0在List0方向的代价,以此代价作为子宏块单元SU1的第二代价SU1_2ndCost。
之后,在步骤S314中,自第一代价SU1_1stCost与第二代价SU1_2ndCost取出最小值作为子宏块单元SU1的最小代价BestCost_0(8×8)。
以上所述是在帧间模式选择方法用于P帧的情况下所执行。另外,倘若帧间模式选择方法用于B帧,则会针对List0方向及List1方向来进行计算。详细地说,在步骤S311中,会分别获得各第一子宏块分割单元在List0方向及List1方向的上述整像素代价和,如底下式1-2所示:
(式1-2)
SUM_IME(4×8)L0=ImeCost_0(4×8)L0+ImeCost_1(4×8)L0;
SUM_IME(4×8)L1=ImeCost_0(4×8)L1+ImeCost_1(4×8)L1;
SUM_IME(8×4)L0=ImeCost_0(8×4)L0+ImeCost_1(8×4)L0;
SUM_IME(8×4)L1=ImeCost_0(8×4)L1+ImeCost_1(8×4)L1;
SUM_IME(4×4)L0=ImeCost_0(4×4)L0+ImeCost_1(4×4)L0+ImeCost_2(4×4)L0+ImeCost_3(4×4)L0;
SUM_IME(4×4)L1=ImeCost_0(4×4)L1+ImeCost_1(4×4)L1+ImeCost_2(4×4)L1+ImeCost_3(4×4)L1。
上述式1-2中,标示有L0的值表示是在list0方向所获得,而标示有L1的值则表示在list1方向所获得。在获得整像素代价和之后,于上述六个值中选择最小值。例如,假设SUM_IME(8×4)L0为最小值,则以尺寸8×4且为list0方向的第一子宏块分割单元来作为最佳第一子宏块分割单元BestSub_SU1。接着,在步骤S312中,基于分数像素运动估计,获得子宏块分割单元SU1的第一代价SU1_1stCost。
而当帧间模式选择方法用于B帧,在步骤S313中,对第二子宏块分割单元MU0执行分数像素运动估计,获得第二子宏块分割单元MU0在List0方向、List1方向以及双向三者的预测代价,并且自三个预测代价中选择最小值作为子宏块单元SU1的第二代价SU1_2ndCost。同样地,在B帧的情况下,在步骤S314中,自第一代价SU1_1stCost与第二代价SU1_2ndCost取出最小值作为子宏块单元SU1的最小代价BestCost_0(8×8)。
以此类推,步骤S32、S33及S34的详细流程皆与步骤S31相似,关于步骤S321~S324、步骤S331~S334、步骤S341~S344的相关流程可参照上述步骤S311~S314。在步骤S321、S331、S341中分别获得子宏块单元SU2、SU3、SU4的最佳第一子宏块分割单元BestSub_SU2、BestSub_SU3、BestSub_SU4。并且,在步骤S322、S332、S342中分别获得子宏块单元SU2、SU3、SU4的第一代价SU2_1stCost、SU3_1stCost、SU4_1stCost。在步骤S323、S333、S343中分别获得子宏块单元SU2、SU3、SU4的第二代价SU2_2ndCost、SU3_2ndCost、SU4_2ndCost。据此,在步骤S324、S334、S344中,分别获得子宏块单元SU2的最小代价BestCost_1(8×8)、子宏块单元SU3的最小代价BestCost_2(8×8)、子宏块单元SU4的最小代价BestCost_3(8×8)。
然后,在步骤S35中,将上述四个最小代价加总,获得最佳代价SumCost(8×8),如底下式2所示:
(式2)
SumCost(8×8)=BestCost_0(8×8)+BestCost_1(8×8)+BestCost_2(8×8)+BestCost_3(8×8)。
返回图1,在步骤S140中,基于整像素运动估计,对各宏块分割单元执行分数像素运动估计,获得尺寸16×16、16×8及8×16分别对应的第三代价。例如,分别以3rd_cost(16×16)、3rd_cost(16×8)及3rd_cost(8×16)来表示尺寸为16×16、16×8及8×16的宏块分割单元的第三代价。
详细地说,图4是依照本发明一实施例的计算宏块分割单元的第三代价的流程图。请参照图4,在步骤S401中,基于整像素运动估计的结果,对每个宏块分割单元S1~S5执行分数像素运动估计。
接着,在步骤S411、S421、S431中,基于分数像素运动估计的结果,分别获得宏块分割单元S1、S2与S3、S4与S5的最佳预测代价。并且,在步骤S412、S422、S432中,通过加和运算,分别获得尺寸为16×16、16×8及8×16对应的第三代价3rd_cost(16×16)、3rd_cost(16×8)及3rd_cost(8×16),如底下式3所示:
(式3)
3rd_cost(16×16)=block_cost(16×16);
3rd_cost(16×8)=block_cost_0(16×8)+block_cost_1(16×8);
3rd_cost(8×16)=block_cost_0(8×16)+block_cost_1(8×16)。
上述block_cost(16×16)表示尺寸为16×16的一个宏块分割单元的最佳预测代价,block_cost_0(16×8)及block_cost_1(16×8)表示尺寸为16×8的宏块分割单元S2、S3的最佳预测代价,上述block_cost_0(8×16)及上述block_cost_1(8×16)表示尺寸为8×16的宏块分割单元S4、S5的最佳预测代价。
当帧间模式选择方法用于B帧,则对宏块分割单元S1~S5执行分数像素运动估计,而分别获得宏块分割单元S1~S5各自在List0方向、List1方向以及双向三者的预测代价,并且自上述三个预测代价选择最小值作为各宏块分割单元的最佳预测代价。当帧间模式选择方法用于P帧,分别对宏块分割单元S1~S5执行分数像素运动估计,而获得宏块分割单元S1~S5在List0方向的代价,并且以此代价作为每一上述宏块分割单元的最佳预测代价。
返回图1,在获得划分尺寸为16×16、16×8及8×16对应的第三代价3rd_cost(16×16)、3rd_cost(16×8)及3rd_cost(8×16),以及划分尺寸为8×8对应的最佳代价SumCost(8×8)之后,在步骤S145中,自最佳代价SumCost(8×8)与第三代价3rd_cost(16×16)、3rd_cost(16×8)及3rd_cost(8×16)中选择最小值,而以此最小值来作为最佳帧间模式。
综上所述,上述实施例中可对所有尺寸的子块皆进行搜索,使得编码后的图像质量能够与原始质量的相近。并且,利用整像素运动估计的结果,预判断尺寸小于8×8的划分,进而减少在尺寸小于8×8所需分数像素运动估计的运算时间。不论是在P帧或是B帧的模式下,皆可对8×8以下的子块进行编码,可支持所有尺寸子块的编码。藉此,每个宏块大概可在600个时钟周期(cycles)内完成,可实现1080p实时编码的要求,并且在画质及码率方面皆有明显的改善。并且,上述帧间模式选择方法采用分数像素运动估计的结果做模式选择,并且所有尺寸的子块皆采用绝对误差和(SAD)与运动矢量码率失真成本(MVCOST)来执行整像素运动估计及分数像素运动估计。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视后附的权利要求所界定者为准。

Claims (11)

1.一种帧间模式选择方法,包括:
(a)划分宏块以获得多个宏块分割单元以及多个子宏块单元,其中上述宏块的尺寸为16×16,上述多个宏块分割单元的尺寸包括16×16、16×8及8×16,上述多个子宏块单元的尺寸为8×8;
(b)对每一上述子宏块单元进行划分以获得多个第一子宏块分割单元与多个第二子宏块分割单元,其中上述多个第一子宏块分割单元的尺寸包括8×4、4×8及4×4,上述多个第二子宏块分割单元的尺寸为8×8;
(c)对于上述多个宏块分割单元以及上述多个第一子宏块分割单元和上述多个第二子宏块分割单元,分别执行整像素运动估计;
(d)基于上述整像素运动估计的结果,获得每一上述子宏块单元内的最佳第一子宏块分割单元;
(e)对于上述每一子宏块单元的最佳第一子宏块分割单元执行分数像素运动估计,获得每一上述子宏块单元的第一代价;
(f)基于上述整像素运动估计的结果,分别对于上述多个子宏块单元内的第二子宏块分割单元执行上述分数像素运动估计,以获得每一上述子宏块单元的第二代价;
(g)基于每一上述子宏块单元的上述第一代价与上述第二代价,而获得以上述子宏块单元来划分上述宏块的最佳代价;
(h)对每一上述宏块分割单元执行上述分数像素运动估计,获得上述尺寸16×16、16×8及8×16分别对应的多个第三代价;以及
(i)自上述最佳代价与上述多个第三代价中选择最小值。
2.如权利要求1所述的帧间模式选择方法,其特征在于,上述步骤(d)还包括:
基于上述整像素运动估计的结果,分别计算上述第一子宏块分割单元为上述尺寸4×8、8×4及4×4的多个整像素代价和SUM_IME(4×8)、SUM_IME(8×4)及SUM_IME(4×4);以及
选择上述整像素代价和SUM_IME(4×8)、SUM_IME(8×4)及SUM_IME(4×4)中的最小值,以上述最小值对应的尺寸作为第一最佳尺寸,并以上述第一最佳尺寸对应的上述第一子宏块分割单元作为上述最佳第一子宏块分割单元;
其中
SUM_IME(4×8)=ImeCost_0(4×8)+ImeCost_1(4×8);
SUM_IME(8×4)=ImeCost_0(8×4)+ImeCost_1(8×4);以及
SUM_IME(4×4)=ImeCost_0(4×4)+ImeCost_1(4×4)+ImeCost_2(4×4)+ImeCost_3(4×4);
上述ImeCost_0(4×8)、上述ImeCost_1(4×8)表示在尺寸为4×8的两个上述第一子宏块分割单元的整像素代价,上述ImeCost_0(8×4)、上述ImeCost_1(8×4)表示尺寸为8×4的两个上述第一子宏块分割单元的整像素代价,上述ImeCost_0(4×4)~上述ImeCost_3(4×4)表示尺寸为4×4的四个上述第一子宏块分割单元的整像素代价。
3.如权利要求2所述的帧间模式选择方法,其特征在于,基于上述整像素运动估计的结果,分别计算上述第一子宏块分割单元的上述多个整像素代价和的步骤还包括:
当上述帧间模式选择方法用于B帧,分别获得每一上述第一子宏块分割单元在List0方向及List1方向的上述整像素代价和;以及
当上述帧间模式选择方法用于P帧,获得每一上述第一子宏块分割单元在List0方向的整像素代价和。
4.如权利要求2所述的帧间模式选择方法,其特征在于,上述步骤(e)包括:
针对以上述第一最佳尺寸划分上述子宏块单元而获得的多个上述最佳第一子宏块分割单元,执行上述分数像素运动估计,而获得多个分数像素代价;以及
将上述多个分数像素代价相加,以获得上述第一代价。
5.如权利要求1所述的帧间模式选择方法,其特征在于,上述步骤(f)包括:
当上述帧间模式选择方法用于B帧,对每一上述第二子宏块分割单元执行上述分数像素运动估计,获得每一上述第二子宏块分割单元在List0方向、List1方向以及双向三者的预测代价;以及
自上述三个预测代价中选择最小值作为上述第二代价。
6.如权利要求5所述的帧间模式选择方法,其特征在于,上述步骤(f)包括:
当上述帧间模式选择方法用于P帧,对于上述每一第二子宏块分割单元执行上述分数像素运动估计,获得每一上述第二子宏块分割单元在List0方向的代价作为上述第二代价。
7.如申请专利范围第1项所述的帧间模式选择方法,其中上述步骤(g)包括:
分别在四个上述子宏块单元中,选择上述第一代价与上述第二代价中的最小值,借此获得四个最小代价BestCost_0(8×8)、BestCost_1(8×8)、BestCost_2(8×8)以及BestCost_3(8×8),并将上述四个最小代价加总而获得上述最佳代价SumCost(8×8),其中
SumCost(8×8)=BestCost_0(8×8)+BestCost_1(8×8)+BestCost_2(8×8)+BestCost_3(8×8)。
8.如权利要求1所述的帧间模式选择方法,其特征在于,上述步骤(h)包括:
(h-1)基于对上述多个宏块分割单元执行上述分数像素运动估计的结果,分别获得每一上述多个宏块分割单元的上述尺寸为16×16、16×8及8×16的多个最佳预测代价;以及
(h-2)基于上述最佳预测代价,分别获得尺寸为16×16、16×8及8×16的上述宏块分割单元的第三代价3rd_cost(16×16)、3rd_cost(16×8)及3rd_cost(8×16),
其中
3rd_cost(16×16)=block_cost(16×16);
3rd_cost(16×8)=block_cost_0(16×8)+block_cost_1(16×8);
3rd_cost(8×16)=block_cost_0(8×16)+block_cost_1(8×16);
上述block_cost(16×16)表示尺寸为16×16的一个上述宏块分割单元的最佳预测代价,上述block_cost_0(16×8)及上述block_cost_1(16×8)表示尺寸为16×8的两个上述宏块分割单元的最佳预测代价,上述block_cost_0(8×16)及上述block_cost_1(8×16)表示尺寸为8×16的两个上述宏块分割单元的最佳预测代价。
9.如权利要求8所述的帧间模式选择方法,其特征在于,上述步骤(h-1)还包括:
当上述帧间模式选择方法用于B帧,分别对上述尺寸为16×16、16×8及8×16的上述多个宏块分割单元执行上述分数像素运动估计,而分别获得每一上述多个宏块分割单元在List0方向、List1方向以及双向三者的预测代价;以及
自上述三个预测代价选择最小值作为每一上述宏块分割单元的最佳预测代价。
10.如权利要求8所述的帧间模式选择方法,其特征在于,上述步骤(h-1)还包括:
当上述帧间模式选择方法用于P帧,分别对上述尺寸为16×16、16×8及8×16的上述多个宏块分割单元执行上述分数像素运动估计,而获得每一上述多个宏块分割单元在List0方向的代价作为每一上述宏块分割单元的最佳预测代价。
11.如权利要求1所述的帧间模式选择方法,其特征在于,上述步骤(c)还包括:
计算运动矢量预测值,以基于上述运动矢量预测值来执行上述整像素运动估计。
CN201410128908.0A 2014-04-01 2014-04-01 帧间模式选择方法 Active CN104980737B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410128908.0A CN104980737B (zh) 2014-04-01 2014-04-01 帧间模式选择方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410128908.0A CN104980737B (zh) 2014-04-01 2014-04-01 帧间模式选择方法

Publications (2)

Publication Number Publication Date
CN104980737A true CN104980737A (zh) 2015-10-14
CN104980737B CN104980737B (zh) 2018-04-13

Family

ID=54276769

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410128908.0A Active CN104980737B (zh) 2014-04-01 2014-04-01 帧间模式选择方法

Country Status (1)

Country Link
CN (1) CN104980737B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106101701A (zh) * 2016-08-08 2016-11-09 传线网络科技(上海)有限公司 基于h.264的帧间编码模式选择方法及装置
CN107920254A (zh) * 2016-10-11 2018-04-17 北京金山云网络技术有限公司 一种针对b帧的运动估计方法、装置及视频编码器
WO2020140216A1 (zh) * 2019-01-02 2020-07-09 北京大学 视频处理方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030123547A1 (en) * 2002-01-02 2003-07-03 Samsung Electronics Co., Ltd. Apparatus of motion estimation and mode decision and method thereof
CN1933600A (zh) * 2006-09-08 2007-03-21 清华大学 用于h.264/avc编码器的运动估计方法
CN101754022A (zh) * 2008-12-01 2010-06-23 三星电子株式会社 低复杂度的运动估计方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030123547A1 (en) * 2002-01-02 2003-07-03 Samsung Electronics Co., Ltd. Apparatus of motion estimation and mode decision and method thereof
CN1933600A (zh) * 2006-09-08 2007-03-21 清华大学 用于h.264/avc编码器的运动估计方法
CN101754022A (zh) * 2008-12-01 2010-06-23 三星电子株式会社 低复杂度的运动估计方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106101701A (zh) * 2016-08-08 2016-11-09 传线网络科技(上海)有限公司 基于h.264的帧间编码模式选择方法及装置
CN106101701B (zh) * 2016-08-08 2019-05-14 传线网络科技(上海)有限公司 基于h.264的帧间编码模式选择方法及装置
CN107920254A (zh) * 2016-10-11 2018-04-17 北京金山云网络技术有限公司 一种针对b帧的运动估计方法、装置及视频编码器
CN107920254B (zh) * 2016-10-11 2019-08-30 北京金山云网络技术有限公司 一种针对b帧的运动估计方法、装置及视频编码器
WO2020140216A1 (zh) * 2019-01-02 2020-07-09 北京大学 视频处理方法和装置

Also Published As

Publication number Publication date
CN104980737B (zh) 2018-04-13

Similar Documents

Publication Publication Date Title
CN111385569B (zh) 一种编解码方法及其设备
JP7004782B2 (ja) 画像予測方法および関連装置
CN104363451B (zh) 图像预测方法及相关装置
CN111093074A (zh) 子块运动矢量预测中基于多个信息的运动候选推导
JP5490823B2 (ja) 画像の系列を表すストリームを復号化する方法、画像の系列を符号化する方法及び符号化データ構造
TW202021356A (zh) 高效的仿射Merge運動向量推導
TWI699997B (zh) 動態影像預測解碼裝置及動態影像預測解碼方法
CN110312132A (zh) 一种编解码方法、装置及其设备
CN105847795A (zh) 管线化架构的视讯编码系统的帧内块复制方法与装置
WO2016155070A1 (zh) 一种面向多纹理多深度视频的相邻视差矢量获取方法
JP2010504010A (ja) ビデオシーケンスにおけるデータ圧縮方法
CN104704832A (zh) 用于预测运动矢量和视差矢量的图像处理方法和设备
CN102752588A (zh) 使用空间缩放预测的视频编解码方法
CN113597767A (zh) 预测方法、编码器、解码器及计算机存储介质
CN104980737A (zh) 帧间模式选择方法
KR100947447B1 (ko) 다시점 동영상 부호화에서 고속 모드 결정 방법 및 장치
CN109660811A (zh) 一种快速的hevc帧间编码方法
Kao et al. A memory-efficient and highly parallel architecture for variable block size integer motion estimation in H. 264/AVC
CN114727114B (zh) 运动矢量的确定方法和装置
CN105306952B (zh) 一种降低边信息生成计算复杂度的方法
CN114007078B (zh) 一种运动信息候选列表的构建方法、装置及其设备
CN103796026A (zh) 一种基于双参考帧的运动估计方法
JP6390275B2 (ja) 符号化回路、符号化方法
KR102007377B1 (ko) 고성능 hevc 부호기를 위한 움직임 추정 시스템 및 방법
KR101078525B1 (ko) 다중시점 영상의 부호화 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201105

Address after: 206, block a, Ziguang information port, No. 13, Langshan Road, North District, Science Park, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: Yangzhi Electronic Technology (China) Co.,Ltd.

Address before: 6 / F, 1 Jinshan 8th Street, Hsinchu, Taiwan, China

Patentee before: ALI CORPORATION

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220805

Address after: Room 2702, unit 3, building 1, No. 333, Jiqing Third Road, Chengdu high tech Zone, China (Sichuan) pilot Free Trade Zone, Chengdu, Sichuan 610095

Patentee after: Yangzhi Electronic Technology (Chengdu) Co.,Ltd.

Address before: Room 206, block a, Ziguang information port, No.13, Langshan Road, North District, Science Park, Nanshan District, Shenzhen, Guangdong 518052

Patentee before: Yangzhi Electronic Technology (China) Co.,Ltd.