CN113645465B - 一种基于hevc的帧间cu深度估计方法及装置 - Google Patents
一种基于hevc的帧间cu深度估计方法及装置 Download PDFInfo
- Publication number
- CN113645465B CN113645465B CN202110902094.1A CN202110902094A CN113645465B CN 113645465 B CN113645465 B CN 113645465B CN 202110902094 A CN202110902094 A CN 202110902094A CN 113645465 B CN113645465 B CN 113645465B
- Authority
- CN
- China
- Prior art keywords
- current
- value
- satd
- determining
- inter
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种基于HEVC的帧间CU深度估计方法及装置,该方法包括:获取当前CU的预编码结果,并根据所述预编码结果确定当前CU的时空复杂度;确定时空复杂度阈值;将所述时空复杂度与所述时空复杂度阈值进行比较,并根据所述比较的结果以及当前CU的大小确定当前CU的帧间最小深度估计值。从而绕过CU的浅层划分,减少不必要的RDO决策,使得编码速度提升的同时保证一定的编码质量。
Description
技术领域
本申请实施例涉及视频处理技术领域,尤其涉及一种基于HEVC的帧间CU深度估计方法及装置。
背景技术
HEVC(High Efficiency Video Coding,是一种新的视频压缩标准)延续了传统的“预测+变换”混合编码框架,相比以往的标准引入了四叉树机制进行块划分,同时引出了CTU(coding tree unit,编码树单元)、CU(coding unit,编码单元)、PU(prediction unit,预测单元)、TU(transform unit,变换单元)四个概念。
CU作为编码单元,其大小需要从顶层的CTU递归划分至最小(8x8),从而决策出编码代价最小的划分方式。对编码代价的计算,严格意义上需要按“预测->变换->量化->熵编码->反量化->反变换->计算失真和编码bit数”的全流程走完整个编码过程,这其中还涉及到预测中PU模式的选择,变换中TU划分模式的选择。因此,随着CTU大小及允许的最大划分深度的提高,要决策出最优划分方式就需要遍历计算所有划分方式下的编码代价,即使采用简化的失真和bit估计算法代替真实编码过程,计算量仍很可观。
因此,HEVC引入的基于四叉树的CU划分技术有效地提升了编码效率,但同时大幅提高了编码复杂度,降低了编码速度,为了支持HEVC编码的实际应用,加速CU划分成为优化编码速度的一个重要环节。相比帧内编码,帧间编码需要更多的运动估计和模式判决,因此具有更高的复杂度,另外视频序列中通常90%以上都是帧间编码帧,所以对帧间CU划分进行优化会获得更明显的速度提升。进一步分析现有编码器的编码流程及特点,可将优化点更精确地定位在精确估计当前CU的最小划分深度,从而绕过不必要的浅层划分的RDO(RateDistortion Opitimization,率失真优化)计算。
在相关技术中,对帧间CU最小划分深度的估计,主要使用当前CU的在参考帧中的匹配CU的划分深度来进行决策,根据匹配CU获取的当前待编码CU的最小深度具有一定指导意义,这需要当前待编码CU与其匹配CU之间内容具有一定相关性做为前提,当内容剧烈变化导致当前待编码CU与参考帧的匹配CU之间相关性降低时,这种方法将产生较大误差,从而造成一定编码速度或质量损失。
发明内容
本申请提供一种基于HEVC的帧间CU深度估计方法及装置,以提升帧间CU深度估计的准确度。
第一方面,本申请实施例提供了一种基于HEVC的帧间CU深度估计方法,所述方法包括:
获取当前CU的预编码结果,并根据所述预编码结果确定当前CU的时空复杂度;
确定时空复杂度阈值;
将所述时空复杂度与所述时空复杂度阈值进行比较,并根据所述比较的结果以及当前CU的大小确定当前CU的帧间最小深度估计值。
第二方面,本申请实施例还提供了一种基于HEVC的帧间CU深度估计装置,所述装置包括:
时空复杂度确定单元,用于获取当前CU的预编码结果,并根据所述预编码结果确定当前CU的时空复杂度;
时空复杂度阈值确定单元,用于确定时空复杂度阈值;
帧间最小深度估计值确定单元,用于将所述时空复杂度与所述时空复杂度阈值进行比较,并根据所述比较的结果以及当前CU的大小确定当前CU的帧间最小深度估计值。
第三方面,本申请实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面的方法。
本申请具有如下有益效果:
在本实施例中,可以根据预编码结果来确定当前CU的时空复杂度,未增加额外的运算量,而当前CU的时空复杂度与其划分深度有强相关性,根据当前CU的时空复杂度可以精确估计帧间CU最小深度,从而绕过CU的浅层划分,减少不必要的RDO决策,使得编码速度提升的同时保证一定的编码质量。本实施例相比于265原生算法,在18个1080p测试序列上有3.26%的速度提升,bdrate损失为0.3%。
附图说明
图1是本申请实施例一提供的一种基于HEVC的帧间CU深度估计方法实施例的流程图;
图2是本申请实施例一提供的某个视频序列中编码为P的一帧图像的示意图;
图3是本申请实施例一提供的SATD图示意图;
图4是本申请实施例二提供的一种基于HEVC的帧间CU深度估计装置实施例的结构框图;
图5是本申请实施例三提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
实施例一
图1为本申请实施例一提供的一种基于HEVC的帧间CU深度估计方法实施例的流程图。本实施例可以应用于编码器中,如x265编码器,或者vvc等具有块划分机制的编码器,本实施例对此不作限定。以下实施例以编码器为x265编码器为例进行说明。
HEVC延续了传统的“预测+变换”混合编码框架,相比以往的标准引入了四叉树机制进行块划分,同时规定了CTU、CU、PU、TU四个概念。
块划分的基本单元为CTU,CTU的大小可取16x16、32x32、64x64,通常包含一个亮度块和两个色度块,是在编码过程中的独立编码树单元,CTU的大小在编码前指定,并在SPS(Sequence Paramater Set,序列参数集)中传输至解码端。CTU可以递归划分为不同大小的CU(coding unit),CU的大小可取8x8、16x16、32x32、64x64。
编码的预测过程中,需要在CU级别决策预测模式prediction mode,并将一个CU的预测模式传输在码流中。而PU是进行预测的基本单元,对于帧内编码,PU有Part_2Nx2N和Part_NxN两种模式,而对于帧间编码,PU则有Part_2Nx2N、Part_NxN、Part_2NxN、Part_Nx2N、Part_2NxnU、Part_2NxnD、Part_nLx2N、Part_nRx2N 8种模式可选。
TU(transform unit)是进行变换的单元,在编码的变换阶段,一个CU可以按照四叉树结构递归划分成多个TU,TU的大小可以取4x4、8x8、16x16、32x32。
HEVC的编码单元为CU,而CU大小需要从顶层的CTU递归划分至最小(8x8),从而决策出编码代价最小的划分方式。对编码代价的计算,严格意义上需要按“预测->变换->量化->熵编码->反量化->反变换->计算失真和编码bit数”的全流程走完整个编码过程,这其中还涉及到预测中PU模式的选择,变换中TU划分模式的选择。因此,随着CTU大小及允许的最大划分深度的提高,要决策出最优划分方式就需要遍历计算所有划分方式下的编码代价,即使采用简化的失真和bit估计算法代替真实编码过程,计算量仍很可观。尤其是对于帧间编码,一方面视频序列中P、B帧占多数,另一方面由于P、B帧需要在参考帧上做运动估计,无疑增加了巨大的运算量。然而并不是所有CU的划分深度都需要RDO过程去决策,分析HEVC编码视频每帧的CU大小分布以及图像内容就可以发现其实RDO决策出的CU划分深度是有规律可循的:
1、对于帧内编码图像,纹理相对复杂的区域倾向于划分为较小的CU,纹理相对平坦的区域倾向于划分为较大的CU。
2、对于帧间编码图像,运动相对剧烈(或在参考帧上难以找到匹配块)的区域倾向于划分为较小的CU,运动相对平缓(或在参考帧上能够较容易找到匹配块)的区域倾向于划分为较大的CU。
基于以上分析,可以总结为时空复杂度越高,CU划分深度越深,反之则越浅。因此如果能够依据其他信息快速预测出当前CU的划分深度,而不依赖一层层的RDO计算,将会大幅提升编码速度。具体的,假如当前CU时空复杂度较高,那么可以直接进入深度划分(比如CU直接划分为8x8大小,如果CTU大小为64x64则对应CU深度为3),绕过浅层(0-2层)的RDO决策;如果当前CU时空复杂度较低,那么可以直接进入浅层划分(如CU直接作为64x64块编码)绕过后续深层RDO决策。
由于HEVC定义了Merge和Skip两种编码模式,CU编码开始时会先检查是否满足这两种模式的编码条件,其中Skip模式是编码残差为0的模式,通常情况下时空复杂度较低的CU会较高概率命中Skip模式,因此想通过识别较低时空复杂度的CU来绕过深层划分来提升编码速度,这一部分的优化空间已经很小。
基于此,本申请实施例提供了一种HEVC帧间CU深度估计方法来精确估计帧间CU的最小划分深度,绕过CU的浅层划分,从而减少不必要的RDO决策,达到提高编码速度且保证一定的编码质量的目的。
如图1所示,本实施例可以包括如下步骤:
步骤110,获取当前CU的预编码结果,并根据所述预编码结果确定当前CU的时空复杂度。
其中,时空复杂度用于反映CU划分在时间和空间上的复杂度。对于帧间的CU划分,需要找出能够精确描述其时空复杂度的变量,然后再依据时空复杂度大小判决当前CU的划分深度。然而,由于帧间编码与帧内编码方式不同,帧内划分的复杂度主要依赖纹理信息,帧间划分的复杂度则取决于运动估计后是否能找到精确的匹配块,所以不能用单一的图像纹理信息表征帧间CU的时空复杂度大小。
在一种实施例中,步骤110进一步可以包括如下步骤:
步骤110-1,获取预编码阶段产生的当前视频帧对应的SATD图。
其中,SATD图为对当前视频帧进行1/2下采样构成半分辨率图像,并将该半分辨率图像划分成多个宏块后,计算的每个宏块的SATD值构成的图像。
在实现中,在预编码阶段可以采用look-ahead模块生成当前视频帧对应的SATD图,并从look-ahead模块中获得该SATD图。具体的,look-ahead模块为x265编码器中的模块,在正式编码之前look-ahead模块会完成一个半分辨率图像的预编码,用以决策帧类型,预编码过程是在半分辨率图像上,以固定宏块(8x8块)大小完成运动估计和SATD(sum ofabsolute transformed differences,绝对变换误差和)计算,相比正式编码省略了DCT(Discrete Cosine Transform,离散余弦变换)变换、量化以及熵编码过程。在实现时,look-ahead模块将当前帧进行1/2下采样构成半分辨率图像lowres,将lowres划分为8x8的宏块,对每个宏块计算帧内SATD和帧间SATD,帧间SATD的计算需要完成运动估计、运动补偿、最后对预测块和原始编码块的差值进行哈达玛变换,对哈达玛变换后结果的绝对值求和即得到当前宏块的帧间SATD值。然后采用帧内SATD和帧间SATD填充对应位置的宏块得到SATD图。
其中,帧间SATD计算时所选择的参考帧可以为参考帧列表中与当前帧最接近的一帧。HEVC中可以维护两个参考帧列表list0和list1,其中存放当前帧的前向参考帧和后向参考帧以及长期参考帧。通常情况下list0中参考帧排列情况为:降序排列的前向参考帧+升序排列的后向参考帧+长期参考帧;list1中参考帧排列情况为:升序排列的后向参考帧+降序排列的前向参考帧+长期参考帧。因此,list0中第1帧是当前帧最临近的前向参考帧,list1中第1帧是当前帧最临近的后向参考帧。如果当前帧为P帧,其SATD图由list0中第1帧与当前帧计算所得;如果当前帧为B帧,其SATD图由list0中第1帧和list1中第1帧结合当前帧计算所得。
look-ahead模块在计算得到当前宏块的SATD值以后,则可以将其存放在帧级数据结构m_lowres.lowresCosts[ref0][ref1][idx]中,其中,lowresCosts是一个三维数组,假设b为当前帧poc(图像序列号),p0为当前帧的前向参考帧poc,p1为当前帧的后向参考帧poc,则ref0=b–p0,表示当前帧与前向参考帧的poc距离;ref1=p1–b,表示当前帧与后向参考帧的poc距离;idx为当前宏块索引号。而参考帧的poc存放在slice级数据结构m_refPOCList[list][idx_poc]中,其中list=0表示前向参考列表,list=1为后向参考列表;idx_poc为参考帧索引号。
对于帧间编码,look-ahead模块计算所得的帧间SATD值可以用于反应宏块的时空复杂度。例如,如图2以及图3所示,图2为某个视频序列中编码为P的一帧图像,图3为该帧图像的SATD图(该SATD图是将每个8x8宏块用其相应位置半分辨率图像(lowres)的SATD值填充所得)。SATD图上给出了当前帧的CU划分情况,图上某区域灰度越高说明其对应lowres区域SATD值越大,可以看出,SATD值较高的区域基本是场上运动员,他们本身是运动剧烈的时间复杂度高的区域,同时他们的服装相比内容单一的场地也具有较高的空间复杂度,所以选择SATD值来表征内容的时空复杂度是合理的。同时也可以注意到,SATD值较高的区域,由编码器的RDO模块决策出的划分粒度也比SATD值较低的区域小,即时空复杂度越高,越需要划分得更细致。因此,当前CU的时空复杂度可以用其对应的半分辨率SATD值表征。
步骤110-2,根据当前CU的大小和起始位置,在所述SATD图中确定对应位置的一个或多个目标宏块。
在确定SATD图以后,则可以在该SATD图中定位当前CU对应区域的目标宏块。由于look-ahead模块是基于半分辨率图像的8x8宏块计算帧间SATD,因此当CU起始位置为(x0,y0)、大小为64x64时,对应SATD图中起始位置为(x0/2,y0/2)的4x4个目标宏块;当CU大小为32x32时,对应SATD图中2x2个目标宏块,依次类推。
步骤110-3,将所述一个或多个目标宏块的帧间SATD值作为当前CU的预编码结果。
当确定一个或多个目标宏块以后,则该一个或多个目标宏块对应的帧间SATD值作为当前CU的预编码结果。
在一种实施例中,在步骤110-3之前,步骤110还可以包括如下步骤:
在所述SATD图中分别获取所述目标宏块对应的宏块信息;从所述宏块信息中提取出所述目标宏块对应的帧间SATD值。
在实际中,在SATD图中,每个宏块的宏块信息除了可以包括帧间SATD值以外,还可以包括当前宏块运动估计所用参考列表标识、帧内SATD值等。当确定目标宏块并获得其对应的宏块信息以后,则可以从该宏块信息中提取出帧间SATD值。在本实施例中,使用look-ahead模块计算的帧间SATD值作为当前CU帧间编码时的时空复杂度表征,一方面未增加额外的运算量,另一方面尽管SATD值是在半分辨率图像计算所得,但对比现有算法中使用当前CU的匹配CU深度信息,SATD值的使用表现出了更好的性能。
步骤120,确定时空复杂度阈值。
在一种实施例中,步骤120进一步可以包括如下步骤:
确定当前CU的量化参数QP值;当所述QP值小于第二预设阈值时,则将所述时空复杂度阈值设定为指定设定值;当所述QP值大于或等于第二预设阈值时,则基于所述QP值、所述第二预设阈值以及所述指定设定值,确定时空复杂度阈值。
具体的,时空复杂度阈值Thsh_satd的取值可以依据大量视频的P、B帧SATD值及其划分深度统计得出,对8bit视频可以确定其时空复杂度阈值的基础值为指定设定值(例如400)。
此外,由于编码过程中的量化参数QP值是变化的,但SATD图总是一致的(只要确定了需要获取的当前帧的参考帧,所获取的SATD图不随编码参数不同而变化),当QP增大时,作为大尺寸CU和作为小尺寸CU做运动补偿后都极有可能被量化为全零块,这时编码器更倾向于将此CU作为大尺寸块编码,因此在确定Thsh_satd时同样要考虑到QP的影响,使得QP增大时适当增大阈值Thsh_satd,使得绕过浅层划分的条件适当收缩。
在该步骤中,通过预先设定第二预设阈值,并将QP与该第二预设阈值比较,如果当前QP值小于该第二预设阈值,则可以直接将Thsh_satd确定为指定设定值;否则,则可以适当增大Thsh_satd,具体的可以通过计算当前QP值与第二预设阈值的差距,并根据该差距来增大指定设定值,得到Thsh_satd。例如,可以采用如下公式确定Thsh_satd:
其中,qp为当前的QP值。其中,将第二预设阈值取值为28,将指定设定值取值为400,是根据经验确定的值,本领域技术人员可以根据实际需求来设定两者均是可以的,本实施例对此不作限定。
步骤130,将所述时空复杂度与所述时空复杂度阈值进行比较,并根据所述比较的结果以及当前CU的大小确定当前CU的帧间最小深度估计值。
在一种实施例中,步骤130进一步可以包括如下步骤:
分别将各目标宏块的帧间SATD值与所述时空复杂度阈值进行比较;若所有目标宏块的比较结果均不满足设定条件,则将当前CU的帧间最小深度估计值设定为与当前CU的大小对应的指定值;若任一所述目标宏块的比较结果满足设定条件,则将当前CU的帧间最小深度估计值设定为与当前CU的大小对应的指定值加1。
通过将当前CU的帧间最小深度估计值加1,可以绕过当前深度的RDO计算,达到提高编码速度的目的。
其中,若当前CU的大小为64x64,则指定值为0;若当前CU的大小为32x32,则指定值为1;若当前CU的大小为16x16,则指定值为2。
另外,若当前CU的大小为8x8,则当前CU的帧间最小深度估计值设定为3。
在一种实施例中,可以采用如下方式将各目标宏块的帧间SATD值与所述时空复杂度阈值进行比较,得到比较结果:
若当前CU的大小为64x64,则判断各目标宏块的帧间SATD值是否大于所述时空复杂度阈值,若是,则确定对应的比较结果满足设定条件;若否,则确定对应的比较结果不满足设定条件;若当前CU的大小为32x32或16x16,则判断各目标宏块的帧间SATD值是否大于所述时空复杂度阈值且小于第一预设阈值,若是,则确定对应的比较结果满足设定条件;若否,则确定对应的比较结果不满足设定条件。
具体的,如果当前CU的大小为64x64,则在SATD图的相应位置有4x4个目标宏块,循环遍历这4x4个目标宏块的帧间SATD值,如果有一个满足条件SATD_curr>Thsh_satd,则将当前CU的帧间最小深度估计值设置为minDepth=1,否则minDepth=0。
如果当前CU的大小为32x32,则在SATD图的相应位置有2x2个目标宏块,循环遍历这2x2个目标宏块的帧间SATD值,如果有一个满足条件1200>SATD_curr>Thsh_satd,则将当前CU的帧间最小深度估计值设置为minDepth=2,否则minDepth=1。
如果当前CU的大小为16x16,则在SATD图的相应位置有1个目标宏块,如果该目标宏块的帧间SATD值满足条件1200>SATD_curr>Thsh_satd,则将当前CU的帧间最小深度估计值设置为minDepth=3,否则minDepth=2。
如果当前CU的大小为8x8,则将当前CU的帧间最小深度估计值设置为minDepth=3。
其中,SATD_curr=m_lowres.lowresCosts[ref0][ref1][idx]&LOWRES_COST_MASK,
idx=(mby+i)*maxBlocksInRow+mbx+j;0<i,j<4;
其中,idx为半分辨率图像上8x8宏块索引号;mbx、mby为半分辨率图像上8x8宏块的地址(即该地址为(mbx,mby)),而mbx=cuPelx>>4,mby=cuPely>>4,(cuPelx,cuPely)为当前CU的起始地址;maxBlocksInRow为半分辨率图像上每行宏块数;i、j为循环条件,在CU的大小为64x64时i、j为0到4,在CU的大小为32x32时i、j为0到2;ref0为当前帧与前向参考帧的poc距离;ref1为当前帧与后向参考帧的poc距离;lowresCosts[ref0][ref1][idx]表示目标宏块在SATD图中的位置;m_lowres.lowresCosts[ref0][ref1][idx]表示目标宏块的宏块信息;LOWRES_COST_MASK用于去掉m_lowres.lowresCosts[ref0][ref1][idx]中的非帧间SATD值信息,例如,假设m_lowres.lowresCosts[ref0][ref1][idx]采用2字节表示,一共16位,第16位代表当前宏块运动估计所用参考列表标识,则可以将最高位第16位去除,剩下的15位作为帧间SATD值。
需要说明的是,若当前CU的大小为32x32或16x16,判断条件中添加第一预设阈值(即1200)是考虑到对于运动剧烈的视频,无论将CU划分到多小,在参考帧上也很难找到匹配块,这时编码器倾向于将这样的区域编码为较大的Intra块,这种区域Look-ahead过程通常体现为计算出较大SATD,量级接近Intra SATD,所以为SATD_curr添加一个上限是为了使得编码器能够将时空复杂度过高的区域有机会编码成大块intra块。
另外,还需要说明的是,本实施例中所使用SATD不仅限于Look-ahead过程计算的SATD值,对Look-ahead过程计算的SATD值添加cutree分析所得qp_offset相关修正,或者依据半分辨率图像自行计算8x8宏块的SAD值同样可实现类似效果。
当得到当前CU的帧间最小深度估计值minDepth以后,如果minDepth大于当前CU的划分深度时,当前深度CU的所有模式决策均被绕过,直接进入Split模式进行下一个深度的判断。
在本实施例中,可以根据预编码结果来确定当前CU的时空复杂度,未增加额外的运算量,而当前CU的时空复杂度与其划分深度有强相关性,根据当前CU的时空复杂度可以精确估计帧间CU最小深度,从而绕过CU的浅层划分,减少不必要的RDO决策,使得编码速度提升的同时保证一定的编码质量。本实施例相比于265原生算法,在18个1080p测试序列上有3.26%的速度提升,bdrate损失为0.3%。
实施例二
图4为本申请实施例二提供的一种基于HEVC的帧间CU深度估计装置实施例的结构框图,可以包括如下单元:
时空复杂度确定单元410,用于获取当前CU的预编码结果,并根据所述预编码结果确定当前CU的时空复杂度;
时空复杂度阈值确定单元420,用于确定时空复杂度阈值;
帧间最小深度估计值确定单元430,用于将所述时空复杂度与所述时空复杂度阈值进行比较,并根据所述比较的结果以及当前CU的大小确定当前CU的帧间最小深度估计值。
在一种实施例中,所述时空复杂度确定单元410可以包括如下子单元:
SATD图获取子单元,用于获取预编码阶段产生的当前视频帧对应的SATD图,所述SATD图为对当前视频帧进行1/2下采样构成半分辨率图像,并将该半分辨率图像划分成多个宏块后,计算的每个宏块的SATD值构成的图像,所述SATD值包括帧间SATD值;
目标宏块确定子单元,用于根据当前CU的大小和起始位置,在所述SATD图中确定对应位置的一个或多个目标宏块;
预编码结果确定子单元,用于将所述一个或多个目标宏块的帧间SATD值作为当前CU的预编码结果。
在一种实施例中,所述时空复杂度确定单元410还用于:
在所述SATD图中分别获取所述目标宏块对应的宏块信息;
从所述宏块信息中提取出所述目标宏块对应的帧间SATD值。
在一种实施例中,所述帧间最小深度估计值确定单元430可以包括如下子单元:
比较子单元,用于分别将各目标宏块的帧间SATD值与所述时空复杂度阈值进行比较;
帧间最小深度估计值确定子单元,用于若所有目标宏块的比较结果均不满足设定条件,则将当前CU的帧间最小深度估计值设定为与当前CU的大小对应的指定值;若任一所述目标宏块的比较结果满足设定条件,则将当前CU的帧间最小深度估计值设定为与当前CU的大小对应的指定值加1。
在一种实施例中,若当前CU的大小为64x64,则指定值为0;
若当前CU的大小为32x32,则指定值为1;
若当前CU的大小为16x16,则指定值为2。
在一种实施例中,所述帧间最小深度估计值确定单元430还用于:
若当前CU的大小为8x8,则当前CU的帧间最小深度估计值设定为3。
在一种实施例中,所述比较子单元具体用于:
若当前CU的大小为64x64,则判断各目标宏块的帧间SATD值是否大于所述时空复杂度阈值,若是,则确定对应的比较结果满足设定条件;若否,则确定对应的比较结果不满足设定条件;
若当前CU的大小为32x32或16x16,则判断各目标宏块的帧间SATD值是否大于所述时空复杂度阈值且小于第一预设阈值,若是,则确定对应的比较结果满足设定条件;若否,则确定对应的比较结果不满足设定条件。
在一种实施例中,所述时空复杂度阈值确定单元420具体用于:
确定当前CU的量化参数QP值;
当所述QP值小于第二预设阈值时,则将所述时空复杂度阈值设定为指定设定值;
当所述QP值大于或等于第二预设阈值时,则基于所述QP值、所述第二预设阈值以及所述指定设定值,确定时空复杂度阈值。
需要说明的是,本申请实施例所提供的上述一种基于HEVC的帧间CU深度估计装置可执行本申请实施例一所提供的一种基于HEVC的帧间CU深度估计方法,具备执行方法相应的功能模块和有益效果。
实施例三
图5为本申请实施例三提供的一种电子设备的结构示意图,如图5所示,该电子设备包括处理器510、存储器520、输入装置530和输出装置540;电子设备中处理器510的数量可以是一个或多个,图5中以一个处理器510为例;电子设备中的处理器510、存储器520、输入装置530和输出装置540可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器520作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的方法对应的程序指令/模块。处理器510通过运行存储在存储器520中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的方法。
存储器520可主要包括存储程序区和存储数据区,其中,存储程序区
可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器520可进一步包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏等显示设备。
实施例四
本申请实施例四还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由服务器的处理器执行时用于执行实施例一中任一实施例中的方法。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (10)
1.一种基于HEVC的帧间CU深度估计方法,其特征在于,所述方法包括:
获取当前CU的预编码结果,并根据所述预编码结果确定当前CU的时空复杂度;
确定时空复杂度阈值;
将所述时空复杂度与所述时空复杂度阈值进行比较,并根据所述比较的结果以及当前CU的大小确定当前CU的帧间最小深度估计值;
所述将所述时空复杂度与所述时空复杂度阈值进行比较,并根据所述比较的结果以及当前CU的大小确定当前CU的帧间最小深度估计值,包括:
分别将各目标宏块的帧间SATD值与所述时空复杂度阈值进行比较;
所述分别将各目标宏块的帧间SATD值与所述时空复杂度阈值进行比较,包括:
若当前CU的大小为64x64,则判断各目标宏块的帧间SATD值是否大于所述时空复杂度阈值,若是,则确定对应的比较结果满足设定条件;若否,则确定对应的比较结果不满足设定条件。
2.根据权利要求1所述的方法,其特征在于,所述获取当前CU的预编码结果,并根据所述预编码结果确定当前CU的时空复杂度,包括:
获取预编码阶段产生的当前视频帧对应的SATD图,所述SATD图为对当前视频帧进行1/2下采样构成半分辨率图像,并将该半分辨率图像划分成多个宏块后,计算的每个宏块的SATD值构成的图像,所述SATD值包括帧间SATD值;
根据当前CU的大小和起始位置,在所述SATD图中确定对应位置的一个或多个目标宏块;
将所述一个或多个目标宏块的帧间SATD值作为当前CU的预编码结果。
3.根据权利要求2所述的方法,其特征在于,在所述根据所述预编码结果中确定当前CU的时空复杂度之前,还包括:
在所述SATD图中分别获取所述目标宏块对应的宏块信息;
从所述宏块信息中提取出所述目标宏块对应的帧间SATD值。
4.根据权利要求2或3所述的方法,其特征在于,所述将所述时空复杂度与所述时空复杂度阈值进行比较,并根据所述比较的结果以及当前CU的大小确定当前CU的帧间最小深度估计值,包括:
若所有目标宏块的比较结果均不满足设定条件,则将当前CU的帧间最小深度估计值设定为与当前CU的大小对应的指定值;
若任一所述目标宏块的比较结果满足设定条件,则将当前CU的帧间最小深度估计值设定为与当前CU的大小对应的指定值加1。
5.根据权利要求4所述的方法,其特征在于,若当前CU的大小为64x64,则指定值为0;
若当前CU的大小为32x32,则指定值为1;
若当前CU的大小为16x16,则指定值为2。
6.根据权利要求4所述的方法,其特征在于,所述分别将各目标宏块的帧间SATD值与所述时空复杂度阈值进行比较,还包括:
若当前CU的大小为32x32或16x16,则判断各目标宏块的帧间SATD值是否大于所述时空复杂度阈值且小于第一预设阈值,若是,则确定对应的比较结果满足设定条件;若否,则确定对应的比较结果不满足设定条件。
7.根据权利要求1-3任一项所述的方法,其特征在于,所述确定时空复杂度阈值,包括:
确定当前CU的量化参数QP值;
当所述QP值小于第二预设阈值时,则将所述时空复杂度阈值设定为指定设定值;
当所述QP值大于或等于第二预设阈值时,则基于所述QP值、所述第二预设阈值以及所述指定设定值,确定时空复杂度阈值。
8.一种基于HEVC的帧间CU深度估计装置,其特征在于,所述装置包括:
时空复杂度确定单元,用于获取当前CU的预编码结果,并根据所述预编码结果确定当前CU的时空复杂度;
时空复杂度阈值确定单元,用于确定时空复杂度阈值;
帧间最小深度估计值确定单元,用于将所述时空复杂度与所述时空复杂度阈值进行比较,并根据所述比较的结果以及当前CU的大小确定当前CU的帧间最小深度估计值;
所述帧间最小深度估计值确定单元包括如下子单元:
比较子单元,用于分别将各目标宏块的帧间SATD值与所述时空复杂度阈值进行比较;
所述比较子单元具体用于:
若当前CU的大小为64x64,则判断各目标宏块的帧间SATD值是否大于所述时空复杂度阈值,若是,则确定对应的比较结果满足设定条件;若否,则确定对应的比较结果不满足设定条件。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110902094.1A CN113645465B (zh) | 2021-08-06 | 2021-08-06 | 一种基于hevc的帧间cu深度估计方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110902094.1A CN113645465B (zh) | 2021-08-06 | 2021-08-06 | 一种基于hevc的帧间cu深度估计方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113645465A CN113645465A (zh) | 2021-11-12 |
CN113645465B true CN113645465B (zh) | 2023-10-13 |
Family
ID=78419902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110902094.1A Active CN113645465B (zh) | 2021-08-06 | 2021-08-06 | 一种基于hevc的帧间cu深度估计方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113645465B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108712647A (zh) * | 2018-05-17 | 2018-10-26 | 哈尔滨工业大学 | 一种用于hevc的cu划分方法 |
CN110139099A (zh) * | 2019-04-08 | 2019-08-16 | 中南大学 | 基于预编码和编码satd值加权的帧间预测模式选择方法 |
CN112637592A (zh) * | 2020-12-11 | 2021-04-09 | 百果园技术(新加坡)有限公司 | 一种视频预测编码的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10003792B2 (en) * | 2013-05-27 | 2018-06-19 | Microsoft Technology Licensing, Llc | Video encoder for images |
-
2021
- 2021-08-06 CN CN202110902094.1A patent/CN113645465B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108712647A (zh) * | 2018-05-17 | 2018-10-26 | 哈尔滨工业大学 | 一种用于hevc的cu划分方法 |
CN110139099A (zh) * | 2019-04-08 | 2019-08-16 | 中南大学 | 基于预编码和编码satd值加权的帧间预测模式选择方法 |
CN112637592A (zh) * | 2020-12-11 | 2021-04-09 | 百果园技术(新加坡)有限公司 | 一种视频预测编码的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113645465A (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102436983B1 (ko) | 비디오 신호 처리 방법 및 장치 | |
KR102107091B1 (ko) | 적응적인 영상 부호화 방법 및 장치 | |
KR102220396B1 (ko) | 비디오 신호 처리 방법 및 장치 | |
CA2655970A1 (en) | Video data management | |
CN112637591B (zh) | 一种视频预测编码的方法及装置 | |
KR102558803B1 (ko) | 잔차 신호에 대한 예측 방법 및 장치 | |
KR101902700B1 (ko) | Hevc 부호화 장치 및 그것을 이용한 화면 내 예측 부호화 처리 방법 | |
CN114630133A (zh) | 影像解码方法、编码图像的方法及设备 | |
CN113645465B (zh) | 一种基于hevc的帧间cu深度估计方法及装置 | |
CN108156458B (zh) | 一种确定编码模式方法及装置 | |
CN116567232A (zh) | 图像块的划分方法、视频编码方法、装置以及设备 | |
KR100657277B1 (ko) | 매크로블록 타입 결정 방법 | |
KR102333745B1 (ko) | 비디오 신호 처리 방법 및 장치 | |
Zhai et al. | Multi-scale and Bi-path Method Based on Image Entropy and CNN for Fast CU Partition in VVC | |
Wang et al. | Fast Multiple Frame Selection For H. 265/HEVC Standard Based On Data Mining | |
CN118042136A (zh) | 编解码方法和装置 | |
KR20180121340A (ko) | 압축 영역에서 야간 영상의 장면 전환 검출 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |