基于分层的编码方法、装置和设备的制作方法

文档序号:7769338阅读:231来源:国知局
基于分层的编码方法、装置和设备的制作方法
【专利摘要】本发明公开了一种基于分层的编码方法、装置和设备,属于计算机【技术领域】。所述方法包括:获取待编码图像,确定所述待编码图像的至少一个最大编码单元;获取每个最大编码单元所包括的最少两层中各个编码单元的预测单元的整数像素运动估计信息;根据获取到的所述各个编码单元的预测单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次;对所述可选层次内的编码单元进行编码。本发明减少了HEVC在编码过程中的计算量,降低了计算占用的时间,有利于硬件实现时逻辑资源的减少和硬件流水线设计。
【专利说明】基于分层的编码方法、装置和设备
【技术领域】
[0001]本发明涉及计算机【技术领域】,特别涉及一种基于分层的编码方法、装置和设备。
【背景技术】
[0002]HEVC (High Efficiency Video Coding,高效视频编码)是正在研究的新一代视频压缩标准,主要针对高清和超高清的视频图像,其核心目标是在H.264/AVC high profile的基础上,对高分辨率/高保真的视频图像压缩效率提高一倍,即在保证相同视频图像质量的前提下,视频流的码率减少50%。在提高压缩效率的同时,可以允许编码端恰当提高复杂度。HEVC主要是在原H.264/AVC的编码框架上,提出更先进的改进技术,这些技术包括:扩展的编码单元尺寸、基于块的更灵活的帧间/帧内预测方式、大尺寸块的变换、新的熵编码方法、更加复杂的内插滤波器等。但是,由于在进行HEVC编码时所涉及到的CU (CodingUnit,编码单元)的层次较多,导致计算复杂度特别大,所以如何有效地减少CU的层次从而达到减少预测编码的复杂度是HEVC的关键。
[0003]现有的HEVC编码中,在进行⑶的预测时,首先进行该⑶的SKIP跳跃模式编码,如果发现该模式下的RDCost (Rate-Distortion Cost,率失真代价)小于某一阈值,贝U不进行该⑶的其他PU (Prediction Unit,预测单元)和模式的预测。做完该⑶的本层预测之后,如果发现该CU为SKIP编码模式,则不进入下一层的CU划分及预测编码。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005]在使用SKIP跳跃模式编码进行CU层次简化时,每个LCU(Largest Coding Unit,最大编码单元)的预测编码的计算量不一样,计算所用的时间不可控。某些情况下,CU层次过多,编码预测的计算量及时间过大,使得实现时过多占用逻辑资源,也使得硬件流水线设计的复杂度过高。

【发明内容】

[0006]为了解决简化CU层次的问题,本发明实施例提供了一种基于分层的编码方法、装置和设备。
[0007]第一方面,提供了一种基于分层的编码方法,所述方法包括:
[0008]获取待编码图像,确定所述待编码图像的至少一个最大编码单兀;
[0009]获取每个最大编码单元所包括的最少两层中各个编码单元的预测单元的整数像素运动估计信息;
[0010]根据获取到的所述各个编码单元的预测单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次;
[0011 ] 对所述可选层次内的编码单元进行编码。
[0012]结合第一方面,在第一方面的第一种可能实现方式中,根据获取到的所述各个编码单元的预测单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次包括:[0013]根据所述整数像素运动估计信息,获取每个编码单元的预测单元的整数像素运动估计信息的最小值,将获取的所述最小值作为相应编码单元的整数像素运动估计信息;
[0014]根据获取到的各个编码单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次。
[0015]结合第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,根据获取到的各个编码单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次,包括:
[0016]根据获取到的各个编码单元的整数像素运动估计信息,确定所选择的层数;
[0017]将每层的各个编码单元的整数像素运动估计信息相加,得到每层的层信息;
[0018]对所述每层的层信息进行比较,根据预设规则和所述层数确定所述至少一个最大编码单元的可选层次。
[0019]结合第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,对所述每层的层信息进行比较,根据预设规则和所述层数确定所述至少一个最大编码单元的可选层次,包括:
[0020]对所述每层的层信息进行比较,根据预设规则和所述层数确定各个层次中至少一个层次作为所述至少一个最大编码单元的可选层次。
[0021]结合第一方面,在第一方面的第四种可能实现方式中,根据获取到的所述各个编码单元的预测单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次,包括:
[0022]根据获取到的各个编码单元的整数像素运动估计信息,确定所选择的层数;
[0023]对所述每个编码单元以及其包括的编码单元的整数像素运动估计信息进行比较,根据预设规则选择各个编码单元的层次并进行组合;
[0024]对组合后的层次中各个编码单元的整数像素运动估计信息和所述所选择的层数所对应的层次中各个编码单元的整数像素运动估计信息进行比较,确定所述至少一个最大编码单元的可选层次。
[0025]结合第一方面,在第一方面的第五种可能实现方式中,所述整数像素运动估计信息包括以下至少一项:运动矢量、预测运动矢量、绝对误差和、运动矢量误差、绝对误差和代价。
[0026]第二方面,提供了一种基于分层的编码装置,所述装置包括:
[0027]最大编码单元获取模块,用于获取待编码图像,确定所述待编码图像的至少一个最大编码单元;
[0028]估计信息获取模块,用于获取每个最大编码单元所包括的最少两层中各个编码单元的预测单元的整数像素运动估计信息;
[0029]可选层次获取模块,用于根据获取到的所述各个编码单元的预测单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次;
[0030]编码模块,用于对所述可选层次内的编码单元进行编码。
[0031]结合第二方面,在第二方面的第一种可能实现方式中,所述可选层次获取模块包括:
[0032]整数像素运动估计信息获取单元,用于根据所述整数像素运动估计信息,获取每个编码单元的预测单元的整数像素运动估计信息的最小值,将获取的所述最小值作为相应编码单元的整数像素运动估计信息;
[0033]可选层次确定单元,用于根据获取到的各个编码单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次。
[0034]结合第二方面的第一种可能实现方式,在第二方面的第二种可能实现方式中,所述可选层次确定单元包括:
[0035]层数确定子单元,用于根据获取到的各个编码单元的整数像素运动估计信息,确定所选择的层数;
[0036]层信息获取子单元,用于将每层的各个编码单元的整数像素运动估计信息相加,得到每层的层信息;
[0037]可选层次确定子单元,用于对所述每层的层信息进行比较,根据预设规则和所述层数确定所述至少一个最大编码单元的可选层次。
[0038]结合第二方面的第二种可能实现方式,在第二方面的第三种可能实现方式中,所述可选层次确定子单元用于对所述每层的层信息进行比较,根据预设规则和所述层数确定各个层次中至少一个层次作为所述至少一个最大编码单元的可选层次。
[0039]结合第二方面,在第二方面的第四种可能实现方式中,所述可选层次获取模块用于根据获取到的各个编码单元的整数像素运动估计信息,确定所选择的层数;对所述每个编码单元以及其包括的编码单元的整数像素运动估计信息进行比较,根据预设规则选择各个编码单元的层次并进行组合;对组合后的层次中各个编码单元的整数像素运动估计信息和所述所选择的层数所对应的层次中各个编码单元的整数像素运动估计信息进行比较,确定所述至少一个最大编码单元的可选层次。
[0040]结合第二方面,在第二方面的第五种可能实现方式中,所述整数像素运动估计信息包括以下至少一项:运动矢量、预测运动矢量、绝对误差和、运动矢量误差、绝对误差和代价。
[0041]第三方面,提供了一种编码设备,所述编码设备包括:处理器和编码器,
[0042]所述处理器用于获取待编码图像,确定所述待编码图像的至少一个最大编码单元;获取每个最大编码单元所包括的最少两层中各个编码单元的预测单元的整数像素运动估计信息;根据获取到的所述各个编码单元的预测单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次;
[0043]所述编码器用于对所述可选层次内的编码单元进行编码。
[0044]本发明实施例提供的技术方案带来的有益效果是:
[0045]本发明通过获取待编码图像,确定所述待编码图像的至少一个最大编码单元;获取每个最大编码单元所包括的最少两层中各个编码单元的预测单元的整数像素运动估计信息;根据获取到的所述整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次,对所述可选层次内的编码单元进行编码。采用本发明实施例提供的技术方案,可以有效减少最大编码单元的层次,从而减少了 HEVC在编码过程中的计算量,降低了计算占用的时间,有利于硬件实现时逻辑资源的减少和硬件流水线设计。
【专利附图】

【附图说明】[0046]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0047]图1是本发明实施例中提供的一种基于分层的编码方法流程图;
[0048]图2a是本发明实施例中提供的一种基于分层的编码方法流程图;
[0049]图2b是本发明实施例中提供的一种CU树状结构示意图;
[0050]图2c是本发明实施例中提供的一种CU的划分示意图;
[0051]图2d是本发明实施例中提供的一种CU的划分示意图;
[0052]图2e是本发明实施例中提供的一种LCU层次选择示意图;
[0053]图2f是本发明实施例中提供的一种LCU层次选择示意图;
[0054]图2g是本发明实施例中提供的一种LCU层次选择示意图;
[0055]图2h是本发明实施例中提供的一种LCU层次选择示意图;
[0056]图2i是本发明实施例中提供的一种LCU层次选择示意图;
[0057]图2j是本发明实施例中提供的一种LCU层次选择示意图;
[0058]图2k是本发明实施例中提供的一种HEVC编码的流程图;
[0059]图3是本发明实施例中提供的一种基于分层的编码方法流程图;
[0060]图4是本发明实施例中提供的一种基于分层的编码装置结构示意图;
[0061]图5是本发明实施例中提供的一种编码设备结构示意图。
【具体实施方式】
[0062]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0063]图1是本发明实施例中提供的一种基于分层的编码方法流程图。参见图1,该方法包括:
[0064]101:获取待编码图像,确定该待编码图像的至少一个最大编码单兀;
[0065]其中,待编码图像是此次待编码视频中的任意一帧图像,若待编码图像是此次待编码视频中的第一次编码的帧图像,则不进行本发明实施例中的编码单元层次的确定,若待编码图像不是此次待编码视频中的第一次编码的帧图像,则需要根据此次待编码视频中的已编码图像,获取待编码图像中编码单元的整数像素运动估计信息。
[0066]其中,待编码图像可以包括至少一个最大编码单元,最大编码单元可根据待编码图像的大小和实际需求进行选取,如最大编码单元可选取为32X32、64X64、128X128等,在本实施例中仅以最大编码单元为64X64为例进行说明。
[0067]102:获取每个最大编码单元所包括的最少两层中各个编码单元的预测单元的整数像素运动估计信息;
[0068]每个最大编码单元可以包括多个编码单元,每个编码单元对应多个预测单元,预测单元是该编码单元根据可能的划分方式划分得到的单元。
[0069]103:根据获取到的该各个编码单元的预测单元的整数像素运动估计信息,确定该至少一个最大编码单元的可选层次。[0070]104:对该可选层次内的编码单元进行编码。
[0071]本发明通过获取待编码图像,确定该待编码图像的至少一个最大编码单元;获取最大编码单元所包括的最少两层中各个编码单元的预测单元的整数像素运动估计信息;根据获取到的该整数像素运动估计信息,确定该至少一个最大编码单元的可选层次,对该可选层次内的编码单元进行编码。采用本发明实施例提供的技术方案,可以有效减少最大编码单元的层次,从而减少了 HEVC在编码过程中的计算量,降低了计算占用的时间,有利于硬件实现时逻辑资源的减少和硬件流水线设计。
[0072]图2a是本发明实施例中提供的一种基于分层的编码方法流程图,参见图2a,该方法包括:
[0073]201:获取待编码图像,确定该待编码图像的至少一个最大编码单元;
[0074]该步骤201与步骤101同理,在此不再赘述。
[0075]202:获取最大编码单元所包括的每层中各个编码单元的预测单元的整数像素运动估计信息;
[0076]本发明实施例仅以获取每层中各个编码单元的预测单元的整数像素运动估计信息,而在实际应用中,可以获取最少两层中各个编码单元的预测单元的整数像素运动估计信息。
[0077]在该步骤202中,是对每个最大编码单元均进行的处理,在本发明实施例中,为了便于描述,下述内容仅以获取其中一个最大编码单元所包括的每层中各个编码单元的预测单元的整数像素运动估计信息为例进行说明。
[0078]每个IXU (Largest Coding Unit,最大编码单元)包含多个⑶层,每个⑶层包含多个CU,而每个CU对应多个PU (Prediction Unit,预测单元),例如,当LCU为64X 64 (CU的大小单位为像素,在此仅以该形式简写),S⑶(Smallest Coding Unit,最小编码单兀)为8 X 8时,LCU包括4个CU层:各个CU层的CU大小分别为64X 64、32 X 32、16 X 16、8 X 8。图2b是本发明实施例中提供的一种⑶树状结构示意图,参照图2b,I个IXU (64X 64)可以划分为 I 个 64X64 的 CU、4 个 32X32 的 CU、16 个 16X16 的 CU、64 个 8X8 的 CU。
[0079]在编码过程的预测阶段,预测可以分为帧内(intra)预测和帧间(inter)预测,帧内预测后可去除帧内编码的空间冗余,而帧间预测则可去除时间上的冗余,即在对一个CU进行预测时,需要遍历每种可能的 PU( Intra2NX 2N、IntraNX N、Inter2NX 2N、Inter2NX N、InterNX2N、InterNXN)。图2c是本发明实施例中提供的一种IXU的划分示意图,从图中可以看出,I个IXU64X64可以划分成4个⑶32X 32,I个⑶32X 32可以划分成4个⑶16X 16,I个⑶16X16可以划分成4个⑶8X8。帧内预测的I3U划分可以为2NX2N、NXN,帧间预测的PU又可以划分为2NX2N、2NXN、NX2N、NXN及非对称的PU。⑶在变换及量化阶段可以划分成TU,根据TU的深度信息,对于大的TU又可以划分成小的TU。
[0080]对待编码图像中IXU包含的各个⑶的的整数像素运动估计的基本思想是:将待编码图像分成多个互不重叠的CU,并且认为每个CU的PU内所有像素的位移量都相同,然后在每个PU对应的已编码图像中的参考帧中的特定搜索范围内,根据一定的匹配准则找出与当前PU最相似的编码单元,即匹配编码单元。通过对该每层的各个CU的PU进行整数像素运动估计获取整数像素运动估计信息,其中,整数像素运动估计信息包括以下至少一项:MV (Motion Vector,运动矢量)、MVP (Motion Vector of Prediction,预测运动矢量)、SAD (Sum of Absolute Difference,绝对差和)、MVD (运动矢量误差)、SAD_Cost (Sum ofAbsolute Difference Cost,绝对误差和代价)等。其中,MV是参考巾贞中匹配编码单元相对于当前帧中的PU的偏移量,MVP是预测运动矢量,SAD是PU与预测编码单元中的每个像素的差值的绝对值的和,MVD是两个矢量间的差值,即MV与MVP的差值;SAD_Cost根据公式SAD_Cost=SAD+lambdaXMVD计算得到。在实际应用过程中,可以采用整数像素运动估计信息中的一种信息或者多种信息对最大编码单元层次进行选择,优选地,本发明实施例的整数像素运动估计信息选取为绝对误差和代价,即SAD_Cost。
[0081]203:根据该整数像素运动估计信息,获取每个编码单元的预测单元的整数像素运动估计信息的最小值,将获取的该最小值作为相应编码单元的整数像素运动估计信息;
[0082]由于每个⑶包括多个预测单元(Prediction Unit,预测单元),所以需要获取每个编码单元的预测单元的整数像素运动估计信息的最小值作为相应编码单元的整数像素运动估计信息。
[0083]在对PU进行整数像素运动估计后,获取的整数像素运动估计信息,根据获取的PU的整数像素运动估计信息获取其对应的⑶的整数像素运动估计信息。由于本发明实施例的整数像素运动估计信息选取为绝对误差和代价,所以比较PU的绝对误差和代价,获取每个⑶对应的I3U的绝对误差和代价的最小值,将该最小值作为⑶的绝对误差和代价。由于一个CU可以划分成几种不同的PU,而每个PU可能由几个部分组成,所以将每个的几个部分的SAD_Cost (PU)组合相加就可以得到每个⑶对应的一个PU的SAD_Cost (⑶),这样一个⑶往往可以对应几个不同的SAD_Cost。
[0084]图2d是本发明实施例中提供的一种⑶的划分示意图,参见图2d,一个⑶存在NXN的划分时,最多有4种PU划分方式,即当CU为最小编码单元时,CU存在4种PU划分方式,分别为2NX2N、2NXN、NX2N、NXN,当⑶不为最小编码单元时,⑶存在图中前3种PU划分方式,分别为2NX2N、2NXN、NX2N。计算⑶对应的每个I3U的各个部分对应的SAD_Cost (PU),并将之组合相加得到SAD_Cost (CU),可以得到一个CU对应的各个SAD_Cost (CU),从获得的各个SAD_Cost (CU)中选择一个最小的SAD_Cost (CU)作为该CU的SAD_Costmin(CU),以⑶存在4种I3U划分方式为例说明SAD_Costmin(⑶)的计算过程,具体计算公式如下:
[0085]SAD_Cost2NX2N (CU) =SAD_Cost (PUO);
[0086]SAD_Cost2NXN (CU) =SAD_Cost (PUO) +SAD_Cost (PUl);
[0087]SAD_CostNX2N (CU) =SAD_Cost (PUO) +SAD_Cost (PUl);
[0088]SAD_CostNXN(CU) =SAD_Cost (PUO) +SAD_Cost (PUl) +SAD_Cost (PU2) +SAD_Cost (PU3);
[0089]SAD_Costmin (CU) =min (SAD_Cost2NX2N, SAD_Cost2NXN, SAD_CostNX2N, SAD_CostNXN);
[0090]其中,SAD_Cost2NX2N(CU)、SAD_Cost2NXN(CU)、SAD_CostNX2N(CU)、SAD_CostNXN(CU)分别代表⑶对应的4种PU的划分方式对应的绝对误差和代价,SAD_Costmin(⑶)是从⑶对应的4种PU的划分方式对应的绝对误差和代价中获取最小值作为该CU的绝对误差和代价。
[0091]204:根据获取到的各个编码单元的整数像素运动估计信息,确定所选择的层数;
[0092]其中,选择的层数可以选择为小于等于最大层次数,如当IXU为64X64时,包括4层⑶,可选的层数可以为1、2、3、4。具体地,根据获取的各个编码单元的整数像素运动估计信息,可以获取一个总的信息量,根据总信息量的大小动态地改变选择层次的数目,当总的信息量较大时,可以选择较少的层次数目,当总的信息量较小时,可以选择较多的层次数目。本实施例中所指的信息量主要是指SAD_Cost,实际中还可以为其他整数像素运动估计信息或这些信息的组合。
[0093]205:将每层的各个编码单元的整数像素运动估计信息相加,得到每层的层信息;
[0094]其中,每层的层信息可以根据各个编码单元的整数像素运动估计信息相加获取,由于整数像素运动估计信息可以选取本发明实施例中提供的任一信息或多种信息的组合,所以每层的层信息也可以为根据任一信息或多种信息的组合相加获取的信息,本发明实施例对此不作具体限定。优选地,本实施例中采用绝对误差和代价作为整数像素运动估计信息,将每层的各个编码单元的绝对误差和代价进行求和运算,得到LCU每层的层信息。具体地,将每层CU的SAD_Costmin (CU)组合相加,得到LCU每层的SAD_Cost (LCU),本发明实施例仅以IXU为64 X 64为例进行说明,在对每层⑶的SAD_Costmin(⑶)组合相加后,可获得IXU对应的4个SAD_Cost (LCU),具体计算公式如下所示:
[0095]SAD_CostCU64X64 (LCU) = Σ n[SAD_Costmin(CU64X64) ] ;n=l;
[0096]SAD_CostCU32X32 (LCU)= Σ n[SAD_Costmin(CU32 X 32) ] ;n=4;
[0097]SAD_Costcul6X16 (LCU)= Σ n[SAD_Costmin(CU16X 16) ] ;n=16;
[0098]SAD_CostCU8X8 (LCU) = Σ n [SAD_Costmin (CU8 X 8) ] ; n=64;
[0099]其中,SAD_CostCU64X64 (LCU)是LCU的第一层的绝对误差和代价,SAD_Costcu32x32 (LCU)是LCU的第二层的4个CU组合后的绝对误差和代价,SAD_Costcul6X16 (LCU)是IXU的第三层的16个⑶组合后的绝对误差和代价,SAD_CostCU8X8 (IXU)是IXU的第四层的64个⑶组合后的绝对误差和 代价。在获取IXU四层SAD_Cost (IXU)值后,可以根据该层信息用于确定编码单元的层次。
[0100]206:对该每层的层信息进行比较,根据预设规则和该层数确定该至少一个最大编码单元的可选层次;
[0101]具体地,对该每层的层信息进行比较,根据预设规则和该层数确定各个层次中至少一个层次作为该至少一个最大编码单元的可选层次。其中,预设规则是指根据该每层的层信息和确定的选择的层数,确定该最大编码单元的层次。本发明实施例以选择的最大编码单元层次数目为3为例进行说明,当采用IXU为64X64时,包括4层⑶,相应地层次选择有两种方式:(一)第一层、第二层和第三层;(二)第二层、第三层和第四层。由于两种方式中都包含第二层和第三层,所以具体选择哪种方式,只需要比较第一层和第四层的层信息即可,当第一层的层信息小于第四层的层信息时,采用第一种方式,反之,采用第二种方式。通过步骤205获取了 IXU对应的4个绝对误差和代价,即SAD-Costai64x64 (IXU)、SAD_Costcu32x32 (LCU)、SAD_Costcul6X16 (LCU)和 SAD_Cost⑶8X8 (LCU)。当 SAD_Cost 的比特数较小时,最大编码单元层次数目选择3层,此时,比较第一层的SADJ^stai64x64 (LCU)和第四层的 SAD_Cost⑶8X8(LCU),如果 SAD_C0stCU64X64 (LCU) <=SAD_COStCU8X8 (LCU),则 CU 层次选择为⑶64X64、⑶32X32、⑶16X16 (高3层),在后续的编码处理中需要遍历的⑶为图2e中虚线框中的 CU ;如果 SAD_CostCU64X64 (LCU) >SAD_CostCU8X8 (LCU),则 CU 层次选择为 CU32 X 32、⑶16X 16、⑶8X8 (低3层),需要遍历的⑶为图2f虚线框中的⑶。[0102]进一步地,为了使本领域技术人员更好地理解根据预设规则确定该至少一个最大编码单元的层次的过程,本发明实施例以选择的最大编码单元层次数目为2为例进行说明,当米用IXU为64X64时,包括4层⑶,相应地层次选择有三种方式:(一)第一层和第二层;(二)第二层和第三层;(三)第三层和第四层。此时需要比较两次,得出层信息最小的方式作为最大编码单元层次的方式。具体地,首先,比较方式(一)和方式(二),方式(一)和方式(二)都包含第二层,所以只需要比较第一层和第三层的层信息,得出一种层信息较小的方式;然后,再将得到的层信息较小的方式和方式(三)进行比较,得出层信息最小的方式作为最大编码单元层次的方式。若该方式是方式(一),则需要将第一层和第二层的用于每层的层信息进行相加,与第三层和第四层的层信息的和进行比较,得出层信息最小的方式作为最大编码单元层次的方式;若该方式是方式(二),由于方式(二)和方式(三)都包含第三层,所以只需要比较第二层和第四层的层信息,得出层信息最小的方式作为最大编码单元层次的方式。具体的比较过程这里不再赘述,这三种方式对应的⑶层次如图2g、2h和2i所示。
[0103]207:根据确定的该至少一个最大编码单元的可选层次进行其他编码步骤。
[0104]具体地,根据确定的该至少一个最大编码单元的层次进行预测模式的遍历及编码,编码步骤中也可以根据该整数像素运动估计信息,对预测模式进一步地选择。由于在本发明实施例中通过对最大编码单元的层次进行确定,获得了丰富的整数像素运动估计信息,该信息可以在一定程度上反映编码单元的信息量的多少,所以,在确定最大编码单元的可选层次之后,这些信息还可以用于其他后续的预测模式的遍历及编码。图2k是本发明实施例中提供的一种HEVC编码的流程图,图中的前两个步骤是本发明实施例中使用整数像素运动估计确定最大编码单元层次的过程,后面的步骤使用本发明实施例中确定的层次进行预测模式的遍历及编码等步骤,由于在后面的步骤中仍然会进行预测,所以可以直接使用本发明实施例中获得的整数像素运动估计信息。
[0105]采用本发明实施例提供的技术方案,可以有效减少最大编码单元的层次,从而减少了 HEVC在编码过程中的计算量,降低了计算占用的时间,有利于硬件实现时逻辑资源的减少和硬件流水线设计。
[0106]图3是本发明实施例中提供的一种基于分层的编码方法流程图,在本发明实施例中,备选层的整数像素运动估计信息小于其他方式。参见图3,该方法包括:
[0107]301:获取待编码图像,确定该待编码图像的至少一个最大编码单兀;
[0108]其中,待编码图像是此次待编码视频中的任意一帧图像,若待编码图像是此次待编码视频中的第一次编码的帧图像,则不进行本发明实施例中的编码单元层次的确定,反之,若待编码图像不是此次待编码视频中的第一次编码的帧图像,则需要根据此次待编码视频中的已编码图像,获取待编码图像中编码单元的整数像素运动估计信息。
[0109]其中,最大编码单元可根据图像的大小和实际需求进行选取,如最大编码单元可选取为32X32、64X64、128X128等,在本实施例中仅以最大编码单元为64X64为例进行说明。
[0110]302:根据该整数像素运动估计信息,获取每个编码单元的预测单元的整数像素运动估计信息的最小值,将获取的该最小值作为相应编码单元的整数像素运动估计信息;
[0111]该步骤302和步骤202相同,此处不再赘述。[0112]303:根据该整数像素运动估计信息,获取每个编码单元的预测单元的整数像素运动估计信息的最小值,将获取的该最小值作为相应编码单元的整数像素运动估计信息;
[0113]该步骤303和步骤203相同,此处不再赘述。
[0114]304:根据获取到的各个编码单元的整数像素运动估计信息,确定所选择的层数;
[0115]其中,选择的层数可以选择为小于等于最大层次数,如当IXU为64X64时,包括4层⑶,可选的层数可以为1、2、3、4。具体地,根据获取的各个编码单元的整数像素运动估计信息,可以获取一个总的信息量,根据总信息量的大小动态地改变选择层次的数目,当总的信息量较大时,可以选择较少的层次数目,当总的信息量较小时,可以选择较多的层次数目。本实施例中所指的信息量主要是指SAD_Cost,实际中还可以为其他整数像素运动估计信息或这些信息的组合。
[0116]305:对该每个编码单元以及其包括的编码单元的整数像素运动估计信息进行比较,根据预设规则选择各个编码单元的层次并进行组合;
[0117]其中,预设规则是指根据各个编码单元以及其包括的编码单元的整数像素运动估计信息和确定的选择的层数,确定各个编码单元的层次并进行组合。具体地,根据确定的选择的层数,第二层的每个编码单元从第二层的各个编码单元及其包括的编码单元开始进行层次组合。
[0118]在本发明实施例中,以选择的最大编码单元层数为2为例进行说明,当LCU为64X64时,IXU包含4层⑶,则可以进行层次组合的层次包括:⑶32X32、⑶16X16、⑶8 X 8,当选择的层数为2时,对于每个⑶32 X 32,层次组合可以为:第二层和第三层,或第三层和第四层。具体地,根据每个⑶对应的SAD_Costmin(CU)计算每个⑶32X32内部的层次组合。每个⑶32 X` 32内部的层次组合包括两种方式:(一)⑶32 X 32和⑶16 X 16 ; (二)⑶16 X 16和⑶8 X 8。分别计算第(一)方式和第(二)方式的绝对误差和代价,通过比较得出绝对误差和代价较小的方式作为⑶32 X 32的内部层次组合方式。⑶32 X 32和⑶16 X 16组合的绝对误差和代价记为SAD_Costa,⑶16 X 16和⑶8 X 8组合的绝对误差和代价记为SAD_Costb,具体计算公式如下:
[0119]SAD_Costa=min (SAD_Costmin(CU32 X 32), E4SADj^ostn1in(CUieXie));
[0120]SAD_Costb= Σ 16[min (SAD-Costniin (CU16 X 16),Σ 4SAD_Costmin(CU8 X 8))];
[0121]如果SAD_Costa〈=SAD_Costb,则该CU32X32的层次组合为第(一)方式,即CU32 X 32和CU16 X 16,否则该CU32 X 32的层次组合为第(二)方式,即CU16 X 16和CU8 X 8。
[0122]306:对组合后的层次中各个编码单元的整数像素运动估计信息和该所选择的层数所对应的层次中各个编码单元的整数像素运动估计信息进行比较,确定该至少一个最大编码单元的可选层次;
[0123]在根据预设规则获取组合的层次后,该层次组合可以作为最大编码单元选取的层次的方式之一,另外,还有一种方式,第一层和其相邻层组合成的层次。即确定的最大编码单元的层次仅有两种方式:(一)第一层和其相邻的层次组成的层次,具体根据选择的层次数确定;(二)组合后的层次,由第二层以下各相邻层组成的层次。
[0124]在步骤305中的例子的基础上,确定了⑶32X32的层次组合,并根据层次组合的编码单元的整数像素运动估计信息计算出了 CU32X32层次组合后的整数像素运动估计信息,该步骤306比较方式(一)和方式(二)的整数像素运动估计信息,确定一种方式作为至少一个最大编码单元的层次。以LCU为64 X 64,选择层次数目为2层为例进行说明,此时,层次选择有两种方式:(一)第一层和第二层;(二)组合后的层次;其中,组合后的层次是根据具体的编码单元的整数像素运动估计信息变化的,组合后的层次可以为第二层和第三层的组合,或第三层和第四层的组合。确定最大编码单元的编码层次的方式只需比较方式(一)和方式(二)的整数像素估计信息,找出整数像素估计信息较小的方式作为层次选择的方式。⑶64 X 64和⑶32 X 32组合的绝对误差代价记为SAD_CostQ (IXU),⑶32 X 32和⑶16 X 16组合的绝对误差代价记为SAD-Cost1 (IXU),具体计算公式如下:
[0125]SAD_Cost0 (LCU) = Σ ! [min (SAD_Costmin (CU64 X 64),
[0126]Σ JAD-Costniin(CU32X32))];
[0127]SAD-Cost1(LCU)= Σ 4 [min (SAD_Costa, SAD_Costb)];
[0128]如果SADjostci(LCU) GSADjost1 (LCU),则该LCU的层次选择为第(一)方式,即⑶64X64和⑶32X 32,否则该LCU的层次选择为第(二)方式,即⑶32X 32和⑶16X 16,或 CU16X 16 和 CU8X8,具体每个 CU32X 32 选择 CU32X 32 和 CU16X 16 还是 CU16X 16 和CU8X8,取决于 SAD_Costa 和 SAD_Costb。即如果 SAD_Costa〈=SAD_Costb,则该 CU32X32 的层次选择为⑶32 X 32和⑶16 X 16,否则该⑶32 X 32的层次选择为⑶16 X 16和⑶8 X 8。
[0129]由于本实施例中的第(二)方式的整数像素运动估计信息小于第(一)方式的整数像素运动估计信息,所以IXU的层次选择为方式(二),例如第一个⑶32 X 32选择⑶32 X 32和CU16X16,第二个CU32X32选择⑶16 X 16和CU8X8,其他的⑶32 X 32不做限定,那么需要遍历的CU为图2j中的虚线框中的CU。
[0130]307:根据确定的该 至少一个最大编码单元的可选层次进行其他编码步骤。
[0131]具体地,根据确定的该至少一个最大编码单元的层次中的编码单元进行预测模式的遍历及编码,编码步骤中也可以根据该整数像素运动估计信息,对预测模式进一步地选择。由于在本发明实施例中通过对最大编码单元的层次进行确定,获得了丰富的整数像素运动估计信息,该信息可以在一定程度上反映编码单元的信息量的多少,所以,在确定最大编码单元的层次之后,这些信息还可以用于其他后续的预测模式的遍历及编码。图2k是本发明实施例中提供的一种HEVC编码的流程图,图中的前两个步骤是本发明实施例中使用整数像素运动估计确定最大编码单元层次的过程,后面的步骤使用本发明实施例中确定的层次进行预测模式的遍历及编码等步骤,由于在后面的步骤中仍然会进行预测,所以可以直接使用本发明实施例中获得的整数像素运动估计信息。
[0132]采用本发明实施例提供的技术方案,可以有效减少最大编码单元的层次,从而减少了 HEVC在编码过程中的计算量,降低了计算占用的时间,有利于硬件实现时逻辑资源的减少和硬件流水线设计。进一步地,通过使用备选层的层次组合确定最大编码单元的可选层次,增加了层次选择的灵活性。
[0133]图4是本发明实施例提供的一种基于分层的编码装置的结构示意图。参见图4,该装置包括:
[0134]最大编码单兀获取模块401,用于获取待编码图像,确定该待编码图像的至少一个最大编码单元;
[0135]估计信息获取模块402,用于获取每个最大编码单元所包括的最少两层中各个编码单元的预测单元的整数像素运动估计信息;[0136]可选层次获取模块403,用于根据获取到的该各个编码单元的预测单元的整数像素运动估计信息,确定该至少一个最大编码单元的可选层次;
[0137]编码模块404,用于对该可选层次内的编码单元进行编码。
[0138]可选地,该可选层次获取模块402包括:
[0139]整数像素运动估计信息获取单元,用于根据该整数像素运动估计信息,获取每个编码单元的预测单元的整数像素运动估计信息的最小值,将获取的该最小值作为相应编码单元的整数像素运动估计信息;
[0140]可选层次确定单元,用于根据获取到的各个编码单元的整数像素运动估计信息,确定该至少一个最大编码单元的可选层次。
[0141]可选地,该可选层次确定单元包括:
[0142]层数确定子单元,用于根据获取到的各个编码单元的整数像素运动估计信息,确定所选择的层数;
[0143]层信息获取子单元,用于将每层的各个编码单元的整数像素运动估计信息相加,得到每层的层信息;
[0144]可选层次确定子单元,用于对该每层的层信息进行比较,根据预设规则和该层数确定该至少一个最大编码单元的可选层次。
[0145]可选地,该可选层次确定子单元用于对该每层的层信息进行比较,根据预设规则和该层数确定各个层次中至少一个层次作为该至少一个最大编码单元的可选层次。
[0146]可选地,在本发明实施例的另一实施例中,该可选层次获取模块402用于根据获取到的各个编码单元的整数像素运动估计信息,确定所选择的层数;对该每个编码单元以及其包括的编码单元的整数像素运动估计信息进行比较,根据预设规则选择各个编码单元的层次并进行组合;对组合后的层次中各个编码单元的整数像素运动估计信息和该所选择的层数所对应的层次中各个编码单元的整数像素运动估计信息进行比较,确定该至少一个最大编码单元的可选层次。
[0147]可选地,该整数像素运动估计信息包括以下至少一项:运动矢量、预测运动矢量、绝对误差和、运动矢量误差、绝对误差和代价。
[0148]需要说明的是:上述实施例提供的基于分层的编码装置在基于分层的编码时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于分层的编码装置与基于分层的编码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0149]图5是本发明实施例提供的一种编码设备结构示意图。参见图5,该编码设备包括:处理器501和编码器502,
[0150]该处理器501用于获取待编码图像,确定该待编码图像的至少一个最大编码单元;获取每个最大编码单元所包括的最少两层中各个编码单元的预测单元的整数像素运动估计信息;根据获取到的该各个编码单元的预测单元的整数像素运动估计信息,确定该至少一个最大编码单元的可选层次;
[0151]该编码器502用于对该可选层次内的编码单元进行编码。
[0152]可选地,该处理器501用于根据该整数像素运动估计信息,获取每个编码单元的预测单元的整数像素运动估计信息的最小值,将获取的该最小值作为相应编码单元的整数像素运动估计信息;
[0153]根据获取到的各个编码单元的整数像素运动估计信息,确定该至少一个最大编码单元的可选层次。
[0154]可选地,该处理器501用于根据获取到的各个编码单元的整数像素运动估计信息,确定所选择的层数;
[0155]将每层的各个编码单元的整数像素运动估计信息相加,得到每层的层信息;
[0156]对该每层的层信息进行比较,根据预设规则和该层数确定该至少一个最大编码单元的可选层次。
[0157]可选地,该处理器501用于对该每层的层信息进行比较,根据预设规则和该层数确定各个层次中至少一个层次作为该至少一个最大编码单元的可选层次。
[0158]可选地,该处理器501用于根据获取到的各个编码单元的整数像素运动估计信息,确定所选择的层数;
[0159]对该每个编码单元以及其包括的编码单元的整数像素运动估计信息进行比较,根据预设规则选择各个编码单元的层次并进行组合;
[0160]对组合后的层次中各个编码单元的整数像素运动估计信息和该所选择的层数所对应的层次中各个编码单元的整数像素运动估计信息进行比较,确定该至少一个最大编码单元的可选层次。
[0161]可选地,该整数像素运动估计信息包括以下至少一项:运动矢量、预测运动矢量、绝对误差和、运动矢量误差、绝对误差和代价。
[0162]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0163]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于分层的编码方法,其特征在于,所述方法包括: 获取待编码图像,确定所述待编码图像的至少一个最大编码单元; 获取每个最大编码单元所包括的最少两层中各个编码单元的预测单元的整数像素运动估计信息; 根据获取到的所述各个编码单元的预测单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次; 对所述可选层次内的编码单元进行编码。
2.如权利要求1所述的方法,其特征在于,根据获取到的所述各个编码单元的预测单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次包括: 根据所述整数像素运动估计信息,获取每个编码单元的预测单元的整数像素运动估计信息的最小值,将获取的所述最小值作为相应编码单元的整数像素运动估计信息; 根据获取到的各个编码单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次。
3.如权利要求2所述的方法,其特征在于,根据获取到的各个编码单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次,包括: 根据获取到的各个编码单元的整数像素运动估计信息,确定所选择的层数; 将每层的各个编码单元的整数像素运动估计信息相加,得到每层的层信息; 对所述每层的层信息进行比较,根据预设规则和所述层数确定所述至少一个最大编码单元的可选层次。
4.如权利要求3所述的方法,其特征在于,对所述每层的层信息进行比较,根据预设规则和所述层数确定所述至少一个最大编码单元的可选层次,包括: 对所述每层的层信息进行比较,根据预设规则和所述层数确定各个层次中至少一个层次作为所述至少一个最大编码单元的可选层次。
5.如权利要求1所述的方法,其特征在于,根据获取到的所述各个编码单元的预测单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次,包括: 根据获取到的各个编码单元的整数像素运动估计信息,确定所选择的层数; 对所述每个编码单元以及其包括的编码单元的整数像素运动估计信息进行比较,根据预设规则选择各个编码单元的层次并进行组合; 对组合后的层次中各个编码单元的整数像素运动估计信息和所述所选择的层数所对应的层次中各个编码单元的整数像素运动估计信息进行比较,确定所述至少一个最大编码单元的可选层次。
6.如权利要求1所述的方法,其特征在于,所述整数像素运动估计信息包括以下至少一项:运动矢量、预测运动矢量、绝对误差和、运动矢量误差、绝对误差和代价。
7.一种基于分层的编码装置,其特征在于,所述装置包括: 最大编码单元获取模块,用于获取待编码图像,确定所述待编码图像的至少一个最大编码单元; 估计信息获取模块,用于获取每个最大编码单元所包括的最少两层中各个编码单元的预测单元的整数像素运动估计信息; 可选层次获取模块,用于根据获取到的所述各个编码单元的预测单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次; 编码模块,用于对所述可选层次内的编码单元进行编码。
8.如权利要求7所述的装置,其特征在于,所述可选层次获取模块包括: 整数像素运动估计信息获取单元,用于根据所述整数像素运动估计信息,获取每个编码单元的预测单元的整数像素运动估计信息的最小值,将获取的所述最小值作为相应编码单元的整数像素运动估计信息; 可选层次确定单元,用于根据获取到的各个编码单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次。
9.如权利要求8所述的装置,其特征在于,所述可选层次确定单元包括: 层数确定子单元,用于根据获取到的各个编码单元的整数像素运动估计信息,确定所选择的层数; 层信息获取子单元,用于将每层的各个编码单元的整数像素运动估计信息相加,得到每层的层信息; 可选层次确定子单元,用于对所述每层的层信息进行比较,根据预设规则和所述层数确定所述至少一个最大编码单元的可选层次。
10.如权利要求9所述的装置,其特征在于,所述可选层次确定子单元用于对所述每层的层信息进行比较,根据预设规则和所述层数确定各个层次中至少一个层次作为所述至少一个最大编码单元的可选层次。
11.如权利要求7所述的装置,其特征在于,所述可选层次获取模块用于根据获取到的各个编码单元的整数像素运动估计信息,确定所选择的层数;对所述每个编码单元以及其包括的编码单元的整数像素运动估计信息进行比较,根据预设规则选择各个编码单元的层次并进行组合;对组合后的层次中各个编码单元的整数像素运动估计信息和所述所选择的层数所对应的层次中各个编码单元的整数像素运动估计信息进行比较,确定所述至少一个最大编码单元的可选层次。
12.如权利要求8所述的装置,其特征在于,所述整数像素运动估计信息包括以下至少一项:运动矢量、预测运动矢量、绝对误差和、运动矢量误差、绝对误差和代价。
13.—种编码设备,其特征在于,所述编码设备包括:处理器和编码器, 所述处理器用于获取待编码图像,确定所述待编码图像的至少一个最大编码单元;获取每个最大编码单元所包括的最少两层中各个编码单元的预测单元的整数像素运动估计信息;根据获取到的所述各个编码单元的预测单元的整数像素运动估计信息,确定所述至少一个最大编码单元的可选层次; 所述编码器用于对所述可选层次内的编码单元进行编码。
【文档编号】H04N19/103GK103491371SQ201310398821
【公开日】2014年1月1日 申请日期:2013年9月4日 优先权日:2013年9月4日
【发明者】黄立磊, 赖昌材 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1