CN113424530A - 图像处理装置和方法 - Google Patents

图像处理装置和方法 Download PDF

Info

Publication number
CN113424530A
CN113424530A CN201980085078.9A CN201980085078A CN113424530A CN 113424530 A CN113424530 A CN 113424530A CN 201980085078 A CN201980085078 A CN 201980085078A CN 113424530 A CN113424530 A CN 113424530A
Authority
CN
China
Prior art keywords
prediction
unit
bio
vpu
size
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
CN201980085078.9A
Other languages
English (en)
Other versions
CN113424530B (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.)
Sony Group Corp
Original Assignee
Sony Group 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 Sony Group Corp filed Critical Sony Group Corp
Publication of CN113424530A publication Critical patent/CN113424530A/zh
Application granted granted Critical
Publication of CN113424530B publication Critical patent/CN113424530B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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
    • H04N19/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/567Motion estimation based on rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本技术涉及使得能够减小缓冲器大小的图像处理装置和方法。图像处理装置将用于计算用于确定是否执行双向预测的成本的处理单元分割为各自具有与VPDU大小相当或者小于或等于VPDU大小的大小的分割处理单元,并且使用基于分割处理单元计算的成本来执行确定。本技术可以应用于编码装置或解码装置。

Description

图像处理装置和方法
技术领域
本技术涉及图像处理装置和方法,特别地涉及实现缓冲器大小的减小的图像处理装置和方法。
背景技术
作为AVC/H.264和HEVC/H.265的后继,已经开发了作为下一代编解码器的VVC标准。
在采用高达128×128的大CU(编码单元)的VVC标准中,特别地,考虑到在HW解码器实现方式中电路规模和功耗的增加,还引入了VPDU(虚拟流水线数据单元)的概念。
VPDU大小是允许在每个流水线阶段进行平滑处理的缓冲器大小。VPDU大小通常被设置为TU(变换单元)的最大大小。
在VVC中,最大TU大小为64×64,并且假设同样适用于VPDU。在VVC中,一个CU对应于一个PU,并且因此需要对大于VPDU的PU执行帧间预测处理。即使在这种情况下,也可以将PU分割成虚拟vPU(虚拟PU)以进行处理。VVC与VPDU一致,并且能够以合理的HW资源实现,直到采用了稍后描述的BIO(双向光流)。
光流方法是一种图像处理方法,其用于检测运动图像中的对象的运动,以由此估计对象将在某个时间段内移动的方向。采用光流方法作为选项的编解码器帧间预测提高了编码效率。术语“BIO”基于以下事实:光流方法用于Bi预测(双向预测)中,其中以帧为单位参考时间上连续的帧(参见非专利文献1)。
在通常Bi预测中,由于在最佳MV与预测的MV(PMV)之间存在差异,因此对差分MV(MVD)进行编码。另一方面,在采用BIO的Bi预测中,如下所示获得与通常Bi预测中的结果相当的结果:通过光流方法,针对利用预测的MV(PMV)生成的预测块获得梯度(G)和速度(V)。在这种情况下,可以不需要或消除差分MV(MVD)的编码,使得编码效率被提高(参见非专利文献2)。
同时,在BIO中获得的梯度(G)和速度(V)的计算成本非常高。因此,例如,在作为梯度(G)和速度(V)的计算的结果,由于小的绝对值而与通过通常Bi预测获得的预测值几乎没有差异的情况下,在成本效益方面特别需要降低。
已经提出了在BIO方面的各种减小方法。在一种减小方法中,在生成块时计算L0预测块和L1预测块的SAD(绝对差之和),并且在SAD值下降到某个阈值以下的情况下不应用BIO并且执行通常Bi预测。
这是基于速度(V)小并且因此在SAD值小时BIO不是很有效的趋势,并且实现了提前终止,即,在预期效果不佳的情况下消除高成本计算。
引用列表
非专利文献
非专利文献1:Jianle Chen,Yan Ye,Seung Hwan Kim,"Algorithm descriptionfor Versatile Video Coding and Test Model 3(VTM 3),"[online],September 24,2018,Experts Team(JVET),[retrieved on December 21,2018],Internet,<http//phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L1002-v1.zip>
非专利文献2:Xiaoyu Xiu,Yuwen He,Yan Ye,"CE9-related Complexityreduction and bit-width control for bi-directional optical flow(BIO),"[online],September 24,2018,Experts Team(JVET),[retrieved on December 21,2018],Internet,<http//phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L0256-v3.zip>
发明内容
技术问题
在应用上述BIO方面的减小方法的情况下,针对整个PU计算L0和L1预测块的SAD以与阈值进行比较,从而确定是否应用BIO处理,并且该处理然后分支。因此,在对大于VPDU的PU执行帧间预测的情况下,难以将PU虚拟地分割成多个vPU。
在这种情况下,作为梯度计算或速度计算所需的缓冲器,需要比PU稍大的区域,其结果是,包括BIO的帧间预测处理单元需要大的缓冲器资源。
鉴于这样的情况而做出了本技术,并且本技术实现了缓冲器大小的减小。
问题的解决方案
根据本技术的一方面,提供了一种图像处理装置,该图像处理装置包括:控制单元,其被配置成将处理单元分割成分割处理单元,所述分割处理单元中的每一个与VPDU大小相当或等于或小于VPDU大小,处理单元用于计算用于确定是否执行双向预测的成本;以及确定单元,其被配置成通过使用基于分割处理单元计算的成本来进行确定。
根据本技术的一方面,处理单元被分割成分割处理单元,分割处理单元中的每一个与VPDU大小相当或等于或小于VPDU大小,该处理单元用于计算用于确定是否执行双向预测的成本,并且通过使用基于分割处理单元计算的成本来进行确定。
附图说明
[图1]图1是示出在不引入VPDU的情况下构造流水线的示例的图。
[图2]图2是示出作为图1的情况下的帧间PU处理之一的Bi预测的流程图。
[图3]图3是示出通过引入VPDU高效地构造流水线的示例的图。
[图4]图4是示出作为图3的情况下的帧间PU处理之一的Bi预测的流程图。
[图5]图5是示出示例性通常Bi预测的图。
[图6]图6是示出采用BIO的示例性Bi预测的图。
[图7]图7是示出通常Bi预测中的示例性2块分割的图。
[图8]图8是示出采用BIO的Bi预测中的示例性2块分割的图。
[图9]图9是示出根据本技术的实施方式的编码装置的配置示例的框图。
[图10]图10是示出由编码装置进行的编码处理的细节的流程图。
[图11]图11是示出由编码装置进行的编码处理的细节的流程图,其是图10的继续。
[图12]图12是示出应用本公开内容的解码装置的实施方式的配置示例的框图。
[图13]图13是示出由解码装置进行的解码处理的细节的流程图。
[图14]图14是示出帧间预测单元的配置示例的框图。
[图15]图15是示出相关技术的包括BIO的Bi预测的流程图。
[图16]图16是示出相关技术的包括BIO的Bi预测的流程图,其是图15的继续。
[图17]图17是示出根据本技术的第一实施方式的包括BIO的Bi预测的流程图。
[图18]图18是示出根据本技术的第一实施方式的包括BIO的Bi预测的流程图,其是图17的继续。
[图19]图19是示出PU大小、vPU编号以及处理位置和大小之间的对应关系的图。
[图20]图20是示出相关技术的操作与根据本技术的第一实施方式的操作之间的比较的图。
[图21]图21是示出相关技术的操作与根据本技术的第一实施方式的操作之间的比较的图。
[图22]图22是示出在PU大于VPDU的情况下vPU编号为0的BIO确定结果也用于另一vPU的示例的图。
[图23]图23是示出在PU大于VPDU的情况下vPU编号为0的BIO确定结果也用于另一vPU的示例的图。
[图24]图24是示出图22和图23的情况下的包括BIO的Bi预测的流程图。
[图25]图25是示出图22和图23的情况下的包括BIO的Bi预测的流程图,其是图24的继续。
[图26]图26是示出利用每个vPU中的部分SAD值确定是否应用BIO的示例的图。
[图27]图27是示出利用每个vPU中的部分SAD值确定是否应用BIO的示例的另一图。
[图28]图28是示出确定用于确定每个vPU中的BIO_vPU_ON的部分SAD计算区域的处理的流程图。
[图29]图29是示出确定用于确定每个vPU中的BIO_vPU_ON的部分SAD计算区域的处理的流程图,其是图28的继续。
[图30]图30是示出作为根据本技术的第二实施方式的操作示例的由帧间预测单元51执行的包括BIO的Bi预测的流程图。
[图31]图31是示出作为根据本技术的第二实施方式的操作示例的由帧间预测单元51执行的包括BIO的Bi预测的流程图,其是图30的继续。
[图32]图32是示出BIO_MAX_SAD_BLOCK_SIZE和sPU之间的对应关系的图。
[图33]图33是示出作为根据本技术的第三实施方式的操作示例的由帧间预测单元51执行的包括BIO的Bi预测的流程图。
[图34]图34是示出作为根据本技术的第三实施方式的操作示例的由帧间预测单元51执行的包括BIO的Bi预测的流程图,其是图33的继续。
[图35]图35是示出BIO_MAX_SAD_BLOCK_SIZE为2的情况下的用于计算每个PU中的SAD的示例性区域的图。
[图36]图36是示出BIO_MAX_SAD_BLOCK_SIZE为2的情况下的用于计算每个PU中的SAD的示例性区域的另一图。
[图37]图37是示出作为根据本技术的第四实施方式的操作示例的由帧间预测单元51执行的包括BIO的Bi预测的流程图。
[图38]图38是示出作为根据本技术的第四实施方式的操作示例的由帧间预测单元51执行的包括BIO的Bi预测的流程图,其是图37的继续。
[图39]图39是示出作为根据本技术的第五实施方式的操作示例的由帧间预测单元51执行的包括BIO的Bi预测的流程图。
[图40]图40是示出作为根据本技术的第五实施方式的操作示例的由帧间预测单元51执行的包括BIO的Bi预测的流程图,其是图39的继续。
[图41]图41是示出计算机的配置示例的框图。
具体实施方式
现在,描述用于实施本技术的模式。按顺序描述以下项目。
0.概述
1.第一实施方式(具有vPU的示例性分割)
2.第二实施方式(具有标志的示例性操作共享)
3.第三实施方式(具有sPU的示例性分割)
4.第四实施方式(禁止使用BIO的示例)
5.第五实施方式(始终应用BIO的示例)
6.第六实施方式(计算机)
<0.概述>
作为AVC/H.264和HEVC/H.265的后继,已经开发了作为下一代编解码器的VVC标准。
在采用高达128×128的大CU(编码单元)的VVC标准中,特别地,考虑到在HW解码器实现方式中电路规模和功耗的增加,还引入了VPDU(虚拟流水线数据单元)的概念。
VPDU大小是允许在每个流水线阶段进行平滑处理的缓冲器大小。VPDU大小通常被设置为TU(变换单元)的最大大小。
在VVC中,最大TU大小为64×64,并且假设同样适用于VPDU。在VVC中,一个CU对应于一个PU,并且因此需要对大于VPDU的PU执行帧间预测处理。即使在这种情况下,也可以将PU分割成虚拟vPU(虚拟PU)以进行处理。VVC与VPDU一致,并且已经能够以合理的HW资源实现,因为如图1至图4所示,仅使用小的缓冲器,直到采用了稍后描述的BIO(双向光流)。
<未引入VPDU的示例性流水线>
图1是示出在不引入VPDU的情况下构造流水线的示例的图。
在图1的上部中,示出了CU、帧间PU和TU的块。
最大CU大小为128×128。最大帧间PU大小为128×128。在VVC中,一个CU对应于一个PU。TU包括TU0至TU3,每个TU的最大大小为64×64。TU大小是VPDU大小。
如图1的上部所示,通过将由帧间PU处理生成的帧间PU和由TU处理获得的TU相加在一起获得CU。
在图1的下部,示出了包括帧间PU处理、TU处理和局部解码处理的流水线。
在流水线中,并行地执行帧间PU处理和对TU0至TU3的处理,并且当两个处理过程都完成时,对CU的局部解码处理开始。因此,帧间PU处理需要128×128的缓冲器,并且TU处理需要128×128的缓冲器以满足PU。
图2是示出作为图1的情况下的帧间PU处理之一的Bi预测(双向预测)的流程图。
在步骤S1中,获取帧间预测参数。
在步骤S2中,生成L0预测块。
在步骤S3中,生成L1预测块。
在步骤S4中,从L0预测块和L1预测块生成Bi预测块PU。
注意,在步骤S2至S4中,需要PU大小作为最大缓冲器大小。
<引入VPDU的示例性流水线>
图3是示出通过引入VPDU高效地构造流水线的示例的图。
注意,在图3中,适当地省略了与图1的描述中的那些共同的点。
在图3的上部,示出了CU、帧间PU和TU的块。与图1不同,由于PU虚拟地被分割成要处理的vPU,因此CU包括分割部CU(0)至CU(3)。PU包括虚拟vPU(0)至vPU(3)。
在图3的下部,示出了包括帧间PU处理、TU处理和局部解码处理的流水线。
在流水线中,并行地执行对帧间PU中的vPU(0)至vPU(3)的处理以及对TU0至TU3的处理。因此,当对vPU(0)的处理和对TU0的处理完成时,对CU(0)的局部解码处理开始。当对vPU(1)的处理和对TU1的处理完成时,对CU(1)的局部解码处理开始。当对vPU(2)的处理和对TU2的处理完成时,对CU(2)的局部解码处理开始。当对vPU(3)的处理和对TU3的处理完成时,对CU(3)的局部解码处理开始。
利用以这种方式构造的流水线,在帧间PU处理中64×64的缓冲器是足够了,并且在TU处理中,具有64×64的大小的缓冲器足以满足vPU。
图4是示出作为图3的情况下的帧间PU处理之一的Bi预测的流程图。
在步骤S11中,获取帧间预测参数。
在步骤S12中,获取在PU中包括的vPU的数目。
在步骤S13中,将0设置为vPU编号。
在步骤S14中,确定vPU编号是否小于vPU的数目。在步骤S14中确定vPU编号小于vPU的数目的情况下,处理进行至步骤S15。
在步骤S15中,根据vPU编号获取vPU在PU中的位置和大小。
在步骤S16中,生成vPU区域中的L0预测块。
在步骤S17中,生成vPU区域中的L1预测块。
在步骤S18中,从L0预测块和L1预测块生成Bi预测块vPU。
在步骤S19中,使vPU编号递增。之后,处理返回到步骤S14,并且重复稍后的处理。
此外,在步骤S14中确定vPU编号等于或大于vPU的数目的情况下,Bi预测结束。
注意,在步骤S16至S17中,小于PU大小的VPDU大小对于最大缓冲器大小而言是足够的。
光流方法是一种图像处理方法,其用于检测运动图像中的对象的运动,以由此估计对象将在某个时间段内移动的方向。采用光流方法作为选项的编解码器帧间预测提高了编码效率。术语“BIO”基于以下事实:在Bi预测中使用光流方法,其中,以帧为单位参考时间上连续的帧。
<示例性通常Bi预测>
图5是示出示例性通常Bi预测的图。
在图5中,从左至右延伸的箭头按显示顺序表示时间。此外,图5示出了针对图片B上的Bi预测块的Bi预测值获得L0方向上的参考平面0和L1方向上的参考平面1上的最佳MV的示例。对于下面的图同样也是如此。
Bi预测值对应于参考平面0上的L0预测块的像素L0和参考平面1上的L1预测块的像素L1,并且因此从(L0+L1)/2获得Bi预测值。
如图5所示,在通常Bi预测中,最佳MV(MV_L0和MV_L1)与预测的MV(MVP_L0和MVP_L1)不同,并且因此需要对差分MV(MVD_L0和MVD_L1)进行编码。
<采用BIO的示例性Bi预测>
图6是示出采用BIO的示例性Bi预测的图。
图6示出了针对用预测的MV(MVP_L0和MVP_L1)生成的预测块通过光流方法获得梯度(G)和速度(V)的示例作为采用BIO的Bi预测。针对预测块通过光流方法获得梯度(G)和速度(V),使得获得与通常Bi预测中的结果相当的结果。
在采用BIO的Bi预测的情况下,预测的MV(MVP_L0和MVP_L1)被直接用作MV(MV_L0和MV_L1),并且因此不需要对差分MV(MVD_L0和MVD_L1)进行编码,这意味着编码效率得到提高。
Bi预测值几乎对应于参考平面0上的L0预测块的像素L0'和参考平面1上的L1预测块的像素L1',并且因此从(L0'+L1'+B)/2获得Bi预测值。即,需要根据L0预测块和L1预测块计算梯度(G:Gx和Gy)和速度(V:Vx和Vy),从而获得校正值B=Vx*Gx+Vy*Gy。
<Bi预测中的示例性2块分割>
图7是示出通常Bi预测中的示例性2块分割的图。
在通常Bi预测中,存在两个块,使得如图7所示,获得关于两个块和两个差分MV(MVD)的块分割信息。因此,需要对关于两个块和两个差分MV(MVD)的块分割信息进行编码。
<采用BIO的Bi预测中的示例性2块分割>
图8是示出采用BIO的Bi预测中的示例性2块分割的图。
在采用BIO的Bi预测中,即使当存在两个块时,如图8所示,在无需对块进行分割的情况下通过光流方法获得梯度(G)和速度(V),使得获得与通常Bi预测中的结果相当的结果。
如以上所述,在图8的采用BIO的Bi预测中,在图7的Bi预测中需要的对块分割信息的编码可以是不需要的或被消除,并且在图7的Bi预测中需要的对差分MV(MVD)的编码可以是不需要的或被消除,其结果是可以提高编码效率。
同时,在BIO中获得的梯度(G)和速度(V)的计算成本非常高。因此,例如,在作为梯度(G)和速度(V)的计算的结果,由于小的绝对值而与通过通常Bi预测获得的预测值几乎没有差异的情况下,在成本效益方面特别需要降低。
已经提出了在BIO方面的各种减小方法。在一种减小方法中,在生成块时计算L0预测块和L1预测块的SAD(绝对差之和),并且在SAD值下降到某个阈值以下的情况下不应用BIO并且执行通常Bi预测。
这是基于速度(V)小并且因此在SAD值小时BIO不是很有效的趋势,并且实现了提前终止,即,在预期效果不佳的情况下消除高成本计算。
在应用上述BIO方面的减小方法的情况下,针对整个PU计算L0和L1预测块的SAD以与阈值进行比较,从而确定是否应用BIO处理并且该处理然后分支。因此,在对大于VPDU的PU执行帧间预测的情况下,难以将PU虚拟地分割成多个vPU。
在这种情况下,作为梯度计算或速度计算所需的缓冲器,需要比PU稍大的区域,其结果是,包括BIO的帧间预测处理单元需要大的缓冲器资源。
此外,在通过HW实现BIO方面的减小的情况下,由于包括BIO的帧间预测的流水线延迟与TU处理的流水线延迟之间的大差异,因此难以实现维持吞吐量的HW实现方式。
因此,在本技术中,将用于确定是否执行诸如BIO的双向预测的成本的计算中的处理单元(例如,PU)分割成分割处理单位,所述分割处理单位中的每一个与VPDU大小相当(例如,vPU)或者等于或小于VPDU大小(例如,稍后描述的sPU),并且通过使用基于分割处理单元计算的成本进行确定。注意,与VPDU大小相当的大小意味着略大于VPDU大小的大小。
注意,本文中,关于块大小,“A大于B”意味着“A的水平大小大于B的水平大小”或“A的垂直大小大于B的垂直大小。”
此外,关于块大小,“A等于或小于B”意味着“A的水平大小等于或小于B的水平大小,并且A的垂直大小等于或小于B的垂直大小。”
现在,详细描述本技术。
<1.第一实施方式(具有vPU的示例性分割)>
<编码装置的配置示例>
图9是示出根据本技术的实施方式的编码装置的配置示例的框图。
图9的编码装置1包括A/D转换单元31、画面重排缓冲器32、计算单元33、正交变换单元34、量化单元35、无损编码单元36、累积缓冲器37、逆量化单元38、逆正交变换单元39以及加法单元40。此外,编码装置1包括:去块滤波器41、自适应偏移滤波器42、自适应环路滤波器43、帧存储器44、开关45、帧内预测单元46、运动预测/补偿单元47、预测图像选择单元48以及速率控制单元49。
A/D转换单元31对所输入的以帧为单位的图像执行A/D转换以进行编码。A/D转换单元31将转换之后的现在是数字信号的图像输出至画面重排缓冲器32,并且将数字信号存储在画面重排缓冲器32中。
画面重排缓冲器32基于GOP结构将按显示顺序存储的以帧为单位的图像重排为编码顺序。画面重排缓冲器32将重排的图像输出至计算单元33、帧内预测单元46以及运动预测/补偿单元47。
计算单元33从自画面重排缓冲器32提供的图像中减去自预测图像选择单元48提供的预测图像,以由此执行编码。计算单元33将作为减法的结果而获得的图像作为残差信息(差分)输出至正交变换单元34。注意,在没有从预测图像选择单元48提供预测图像的情况下,计算单元图33将从画面重排缓冲器32读出的图像作为残差信息直接输出至正交变换单元34。
正交变换单元34对来自计算单元33的残差信息执行正交变换处理。正交变换单元34将作为正交变换处理的结果获得的图像输出至量化单元35。
量化单元35对从正交变换单元34提供的作为正交变换处理的结果获得的图像进行量化。量化单元35将作为量化的结果获得的量化值输出至无损编码单元36。
无损编码单元36从帧内预测单元46获取作为指示最佳帧内预测模式的信息的帧内预测模式信息。此外,无损编码单元36从运动预测/补偿单元47获取帧间预测模式信息(其是指示最佳帧间预测模式的信息)和诸如运动信息和参考图像信息的帧间预测参数。
此外,无损编码单元36从自适应偏移滤波器42获取与偏移滤波器有关的偏移滤波器信息,并且从自适应环路滤波器43获取滤波器系数。
无损编码单元36对从量化单元35提供的量化值执行无损编码,例如可变长度编码(例如,CAVLC(上下文自适应可变长度编码))或算术编码(例如,CABAC(上下文自适应二进制算术编码))。
此外,无损编码单元36对帧内预测模式信息或帧间预测模式信息、帧间预测参数、偏移滤波器信息或滤波器系数进行无损编码,作为与编码相关联的编码信息。无损编码单元36将经无损编码的编码信息和量化值作为编码数据输出至累积缓冲器37,并且在累积缓冲器37中累积信息和量化值。
累积缓冲器37暂时存储从无损编码单元36提供的编码数据。此外,累积缓冲器37将存储的编码数据作为编码流输出至后续级。
此外,从量化单元35输出的量化值还被输入至逆量化单元38。逆量化单元38对量化值进行逆量化,并且将作为逆量化的结果获得的正交变换处理结果输出至逆正交变换单元39。
逆正交变换单元39对从逆量化单元38提供的正交变换处理结果执行逆正交变换处理。逆正交变换的示例包括IDCT(逆离散余弦变换)和IDST(逆离散正弦变换)。逆正交变换单元39将作为逆正交变换处理的结果获得的残差信息输出至加法单元40。
加法单元40将从逆正交变换单元39提供的残差信息与从预测图像选择单元48提供的预测图像相加,由此执行解码。加法单元40将解码图像输出至去块滤波器41和帧存储器44。
去块滤波器41对从加法单元40提供的解码图像执行消除块变形的去块滤波处理。去块滤波器41将作为去块滤波处理的结果获得的图像输出至自适应偏移滤波器42。
自适应偏移滤波器42对作为由去块滤波器41进行的去块滤波处理的结果获得的图像执行主要消除振铃(ringing)的自适应偏移滤波(SAO(样本自适应偏移))处理。
自适应偏移滤波器42将作为自适应偏移滤波处理的结果获得的图像输出至自适应环路滤波器43。此外,自适应偏移滤波器42将指示自适应偏移滤波处理的类型和偏移的信息作为偏移滤波器信息提供给无损编码单元36。
自适应环路滤波器43包括例如二维维纳滤波器。自适应环路滤波器43对作为自适应偏移滤波处理的结果获得的图像执行自适应环路滤波(ALF)处理。
自适应环路滤波器43将作为自适应环路滤波处理的结果获得的图像输出至帧存储器44。此外,自适应环路滤波器43将在自适应环路滤波处理中所使用的滤波器系数输出至无损编码单元36。
帧存储器44累积从自适应环路滤波器43提供的图像和从加法单元40提供的图像。在累积在帧存储器44中的未经受滤波处理的图像中,与CU相邻的图像作为周边图像通过开关45被输出至帧内预测单元46。同时,累积在帧存储器44中的经受滤波处理的图像作为参考图像通过开关45被输出至运动预测/补偿单元47。
帧内预测单元46通过使用通过开关45从帧存储器44读出的周边图像,以PU为单位在所有候选帧内预测模式下执行帧内预测处理。
此外,帧内预测单元46基于从画面重排缓冲器32读出的图像和通过帧内预测处理生成的预测图像来计算所有候选帧内预测模式下的RD成本。帧内预测单元46将具有最小的所计算的RD成本的帧内预测模式确定为最佳帧内预测模式。
帧内预测单元46将在最佳帧内预测模式下生成的预测图像输出至预测图像选择单元48。当被通知已选择在最佳帧内预测模式下生成的预测图像时,帧内预测单元46将帧内预测模式信息输出至无损编码单元36。注意,帧内预测模式是指示PU大小、预测方向等的模式。
运动预测/补偿单元47在所有候选帧间预测模式下执行运动预测/补偿处理。运动预测/补偿单元47包括帧间预测单元51,该帧间预测单元51被配置成补偿预测运动以生成预测图像。
运动预测/补偿单元47基于从画面重排缓冲器32提供的图像和通过开关45从帧存储器44读出的参考图像,在所有候选帧间预测模式下检测运动信息(运动矢量)。
运动预测/补偿单元47将与所检测到的运动信息对应的帧中的PU位置、PU大小、预测方向、参考图像信息、运动信息等作为帧间预测参数提供给帧间预测单元51。
帧间预测单元51例如通过使用从运动预测/补偿单元47提供的帧间预测参数,通过包括BIO处理的Bi预测来生成预测图像。
运动预测/补偿单元47基于从画面重排缓冲器32提供的图像和由帧间预测单元51生成的预测图像来计算所有候选帧间预测模式下的RD成本。运动预测/补偿单元47将具有最小RD成本的帧间预测模式确定为最佳帧间预测模式。
所确定的最佳帧间预测模式下的RD成本和预测图像被输出至预测图像选择单元48。所确定的最佳帧间预测模式下的帧间预测参数被输出至无损编码单元36。
预测图像选择单元48确定从帧内预测单元46提供的最佳帧内预测模式和从运动预测/补偿单元47提供的最佳帧间预测模式中具有较小RD成本的一个模式作为最佳预测模式。然后,预测图像选择单元48将最佳预测模式下的预测图像输出至计算单元33和加法单元40。
速率控制单元49基于累积在累积缓冲器37中的编码数据来控制由量化单元35进行的量化操作的速率,使得既不发生上溢也不发生下溢。
<编码装置的操作>
图10和图11是示出由编码装置进行的编码处理的细节的流程图。
在图10的步骤S31中,A/D转换单元31对所输入的以帧为单位的图像执行A/D转换以进行编码。A/D转换单元31将转换之后的现在是数字信号的图像输出至画面重排缓冲器32,并且将数字信号存储在画面重排缓冲器32中。
在步骤S32中,画面重排缓冲器32基于GOP结构将以显示顺序存储的帧图像重排为编码顺序。画面重排缓冲器32将以帧为单位的重排的图像输出至计算单元33、帧内预测单元46以及运动预测/补偿单元47。
在步骤S33中,帧内预测单元46在所有候选帧内预测模式下执行帧内预测处理。此外,帧内预测单元46基于从画面重排缓冲器32读出的图像和通过帧内预测处理生成的预测图像来计算所有候选帧内预测模式下的RD成本。帧内预测单元46将具有最小RD成本的帧内预测模式确定为最佳帧内预测模式。帧内预测单元46将在最佳帧内预测模式下生成的预测图像输出至预测图像选择单元48。
在步骤S34中,运动预测/补偿单元47在所有候选帧间预测模式下执行运动预测/补偿处理。
运动预测/补偿单元47基于从画面重排缓冲器32提供的图像和通过开关45从帧存储器44读出的参考图像,在所有候选帧间预测模式下检测运动信息(运动矢量)。
帧间预测单元51例如通过使用从运动预测/补偿单元47提供的帧间预测参数,通过包括BIO处理的Bi预测来生成预测图像。
运动预测/补偿单元47基于从画面重排缓冲器32提供的图像和由帧间预测单元51生成的预测图像来计算所有候选帧间预测模式下的RD成本。运动预测/补偿单元47将具有最小RD成本的帧间预测模式确定为最佳帧间预测模式。
所确定的最佳帧间预测模式下的RD成本和预测图像被输出至预测图像选择单元48。所确定的最佳帧间预测模式下的帧间预测参数被输出至无损编码单元36。
在步骤S35中,预测图像选择单元48将最佳帧内预测模式和最佳帧间预测模式中具有较小RD成本的一个模式确定为最佳预测模式。然后,预测图像选择单元48将最佳预测模式下的预测图像输出至计算单元33和加法单元40。
在步骤S36中,预测图像选择单元48确定最佳预测模式是否为最佳帧间预测模式。在步骤S36中确定最佳预测模式是最佳帧间预测模式的情况下,预测图像选择单元48向运动预测/补偿单元47通知在最佳帧间预测模式下生成的预测图像被选择。
然后,在步骤S37中,运动预测/补偿单元47将帧间预测模式信息和帧间预测参数输出至无损编码单元36。此后,处理进行至步骤S39。
同时,在步骤S36中最佳预测模式是最佳帧内预测模式的情况下,预测图像选择单元48向帧内预测单元46通知在最佳帧内预测模式下生成的预测图像被选择。然后,在步骤S38中,帧内预测单元46将帧内预测模式信息输出至无损编码单元36。此后,处理进行至步骤S39。
在步骤S39中,计算单元33从自画面重排缓冲器32提供的图像中减去自预测图像选择单元48提供的预测图像,以由此执行编码。计算单元33将作为减法的结果获得的图像作为残差信息输出至正交变换单元34。
在步骤S40中,正交变换单元34对残差信息执行正交变换处理。正交变换单元34将作为正交变换处理的结果获得的正交变换处理结果输出至量化单元35。
在步骤S41中,量化单元35对从正交变换单元34提供的正交变换处理结果进行量化。量化单元35将作为量化的结果获得的量化值输出至无损编码单元36和逆量化单元38。
在图11的步骤S42中,逆量化单元38对来自量化单元35的量化值进行逆量化。逆量化单元38将作为逆量化的结果而获得的正交变换处理结果输出至逆正交变换单元39。
在步骤S43中,逆正交变换单元39对正交变换处理结果执行逆正交变换处理。逆正交变换单元39将作为逆正交变换处理的结果获得的残差信息输出至加法单元40。
在步骤S44中,加法单元40将从逆正交变换单元39提供的残差信息与从预测图像选择单元48提供的预测图像相加,以由此执行解码。加法单元40将解码图像输出至去块滤波器41和帧存储器44。
在步骤S45中,去块滤波器41对从加法单元40提供的图像执行去块滤波处理。去块滤波器41将作为去块滤波处理的结果而获得的图像输出至自适应偏移滤波器42。
在步骤S46中,自适应偏移滤波器42对作为去块滤波处理的结果获得的图像执行自适应偏移滤波处理。自适应偏移滤波器42将作为自适应偏移滤波处理的结果获得的图像输出至自适应环路滤波器43。此外,自适应偏移滤波器42将偏移滤波器信息输出至无损编码单元36。
在步骤S47中,自适应环路滤波器43对作为自适应偏移滤波处理的结果获得的图像执行自适应环路滤波处理。自适应环路滤波器43将作为自适应环路滤波处理的结果获得的图像输出至帧存储器44。此外,自适应环路滤波器43将在自适应环路滤波处理中所使用的滤波器系数输出至无损编码单元36。
在步骤S48中,帧存储器44累积从自适应环路滤波器43提供的图像和从加法单元40提供的图像。在累积在帧存储器44中的未经受滤波处理的图像中,与CU相邻的图像作为周边图像通过开关45被输出至帧内预测单元46。同时,累积在帧存储器44中的经受滤波处理的图像作为参考图像通过开关45被输出至运动预测/补偿单元47。
在步骤S49中,无损编码单元36对帧内预测模式信息或帧间预测模式信息、帧间预测参数、偏移滤波器信息或滤波器系数进行无损编码,作为编码信息。
在步骤S50中,无损编码单元36对从量化单元35提供的量化值执行无损编码。然后,无损编码单元36根据通过步骤S49中的处理无损编码的编码信息和无损编码的量化值来生成编码数据,并且将编码数据输出至累积缓冲器37。
在步骤S51中,累积缓冲器37暂时累积从无损编码单元36提供的编码数据。
在步骤S52中,速率控制单元49基于累积在累积缓冲器37中的编码数据来控制由量化单元35进行的量化操作的速率,使得既不发生上溢也不发生下溢。此后,编码处理结束。
注意,在图10和图11的编码处理中,为了简单描述起见,始终执行帧内预测处理和运动预测/补偿处理,但是实际上,取决于图片类型等,可以仅执行帧内预测处理和运动预测/补偿处理中的一个处理。
<解码装置的配置示例>
图12是示出应用本公开内容的解码装置的实施方式的配置示例的框图,该解码装置对从图9的编码装置发送的编码流进行解码。
图12的解码单元101包括累积缓冲器131、无损解码单元132、逆量化单元133、逆正交变换单元134、加法单元135、去块滤波器136、自适应偏移滤波器137、自适应环路滤波器138以及画面重排缓冲器139。此外,解码装置101包括D/A转换单元140、帧存储器141、开关142、帧内预测单元143、帧间预测单元51和开关144。
解码装置101的累积缓冲器131接收从图9的编码装置1作为编码流发送的编码数据,并且累积该编码数据。累积缓冲器131将所累积的编码数据输出至无损解码单元132。
无损解码单元132对来自累积缓冲器131的编码数据执行诸如可变长度解码或算术解码的无损解码,以由此获得量化值和编码信息。无损解码单元132将量化值输出至逆量化单元133。编码信息包括帧内预测模式信息、帧间预测模式信息、帧间预测参数、偏移滤波器信息、滤波器系数等。
此外,无损解码单元132将帧内预测模式信息等输出至帧内预测单元143。无损解码单元132将帧间预测参数、帧间预测模式信息等输出至帧间预测单元51。
无损解码单元132将帧内预测模式信息或帧间预测模式信息输出至开关144。无损解码单元132将偏移滤波器信息输出至自适应偏移滤波器137。无损解码单元132将滤波器系数输出至自适应滤波器138。
逆量化单元133、逆正交变换单元134、加法单元135、去块滤波器136、自适应偏移滤波器137、自适应环路滤波器138、帧存储器141、开关142、帧内预测单元143和帧间预测单元51执行与图9的逆量化单元38、逆正交变换单元39、加法单元40、去块滤波器41、自适应偏移滤波器42、自适应环路滤波器43、帧存储器44、开关45、帧内预测单元46和运动预测/补偿单元47的处理过程类似的处理过程。由此,图像被解码。
具体地,像图9的逆量化单元38那样配置逆量化单元133。逆量化单元133对来自无损解码单元132的量化值进行逆量化。逆量化单元133将作为逆量化的结果获得的正交变换处理结果输出至逆正交变换单元134。
像图9的逆正交变换单元39那样配置逆正交变换单元134。逆正交变换单元134对从逆量化单元133提供的正交变换处理结果执行逆正交变换处理。逆正交变换单元134将作为逆正交变换处理的结果获得的残差信息输出至加法单元135。
加法单元135将从逆正交变换单元134提供的残差信息与从开关144提供的预测图像相加在一起,以由此执行解码。加法单元135将解码图像输出至去块滤波器136和帧存储器141。
去块滤波器136对从加法单元135提供的图像执行去块滤波处理,并且将作为去块滤波处理的结果获得的图像输出至自适应偏移滤波器137。
自适应偏移滤波器137通过使用由来自无损解码单元132的偏移滤波器信息指示的偏移,来对作为去块滤波处理的结果获得的图像执行由偏移滤波器信息指示的类型的自适应偏移滤波处理。自适应偏移滤波器137将作为自适应偏移滤波处理的结果获得的图像输出至自适应环路滤波器138。
自适应环路滤波器138通过使用从无损解码单元132提供的滤波器系数,对从自适应偏移滤波器137提供的图像执行自适应环路滤波处理。自适应环路滤波器138将作为自适应环路滤波处理的结果获得的图像输出至帧存储器141和画面重排缓冲器139。
画面重排缓冲器139以帧为单位存储作为自适应环路滤波处理的结果获得的图像。画面重排缓冲器139将按编码顺序的以帧为单位的图像重排为原始显示顺序,并且将结果输出至D/A转换单元140。
D/A转换单元140对从画面重排缓冲器139提供的以帧为单位的图像执行D/A转换,并且输出结果。
帧存储器141累积作为自适应环路滤波处理的结果获得的图像和从加法单元135提供的图像。在累积在帧存储器141中的未经受滤波处理的图像中,与CU相邻的图像作为周边图像通过开关142被提供给帧内预测单元143。同时,累积在帧存储器141中的经受滤波处理的图像作为参考图像通过开关142被输出至帧间预测单元51。
帧内预测单元143通过使用通过开关142从帧存储器141读出的周边图像,在由从无损解码单元132提供的帧内预测模式信息指示的最佳帧内预测模式下执行帧内预测处理。帧内预测单元143将这样生成的预测图像输出至开关144。
像图9中的帧间预测单元那样配置帧间预测单元51。帧间预测单元51通过使用从无损解码单元132提供的帧间预测参数,在由帧间预测模式信息指示的最佳帧间预测模式下执行帧间预测,以由此生成预测图像。
帧间预测单元51通过开关142从帧存储器141读出由参考图像信息指定的参考图像,该参考图像信息是从无损解码单元132提供的帧间预测参数。帧间预测单元51例如通过使用运动信息和读出的参考图像,来利用包括BIO处理的Bi预测生成预测图像,该运动信息是从无损解码单元132提供的帧间预测参数。所生成的预测图像被输出至开关144。
在已经从无损解码单元132提供帧内预测模式信息的情况下,开关144将从帧内预测单元143提供的预测图像输出至加法单元135。同时,在已经从无损解码单元132提供帧间预测模式信息的情况下,开关144将从帧间预测单元51提供的预测图像输出至加法单元135。
<解码装置的操作>
图13是示出由解码装置进行的解码处理的细节的流程图。
在图13的步骤S131中,解码装置101的累积缓冲器131接收从未示出的先前级提供的以帧为单位的编码数据,并且累积该编码数据。累积缓冲器131将所累积的编码数据输出至无损解码单元132。
在步骤S132中,无损解码单元132对来自累积缓冲器131的编码数据进行无损解码以获得量化值和编码信息。无损解码单元132将量化值输出至逆量化单元133。
无损解码单元132将帧内预测模式信息等输出至帧内预测单元143。无损解码单元132将帧间预测参数、帧间预测模式信息等输出至帧间预测单元51。
此外,无损解码单元132将帧内预测模式信息或帧间预测模式信息输出至开关144。无损解码单元132将偏移滤波器信息提供给自适应偏移滤波器137,并且将滤波器系数输出至自适应环路滤波器138。
在步骤S133中,逆量化单元133对从无损解码单元132提供的量化值进行逆量化。逆量化单元133将作为逆量化的结果而获得的正交变换处理结果输出至逆正交变换单元134。
在步骤S134中,逆正交变换单元134对从逆量化单元133提供的正交变换处理结果执行逆正交变换处理。
在步骤S135中,帧间预测单元51确定是否从无损解码单元132提供了帧间预测模式信息。在步骤S135中确定提供了帧间预测模式信息的情况下,处理进行至步骤S136。
在步骤S136中,帧间预测单元51基于从无损解码单元132提供的参考图像规格信息来读出参考图像,并且通过使用运动信息和参考图像来在由帧间预测模式信息指示的最佳帧间预测模式下执行运动补偿处理。例如,帧间预测单元51利用包括BIO处理的Bi预测来生成预测图像。帧间预测单元51通过开关144将生成的预测图像输出至加法单元135。此后,处理进行至步骤S138。
同时,在步骤S135中确定未提供帧间预测模式信息的情况下,即,在将帧内预测模式信息提供给帧内预测单元143的情况下,处理进行至步骤S137。
在步骤S137中,帧内预测单元143通过使用通过开关142从帧存储器141读取的周边图像,在由帧内预测模式信息指示的帧内预测模式下执行帧内预测处理。帧内预测单元143通过开关144将作为帧内预测处理的结果生成的预测图像输出至加法单元135。此后,处理进行至步骤S138。
在步骤S138中,加法单元135将从逆正交变换单元134提供的残差信息和从开关144提供的预测图像相加在一起,以由此执行解码。加法单元135将解码图像输出至去块滤波器136和帧存储器141。
在步骤S139中,去块滤波器136对从加法单元135提供的图像执行去块滤波处理以移除块变形。去块滤波器136将作为去块滤波处理的结果而获得的图像输出至自适应偏移滤波器137。
在步骤S140中,自适应偏移滤波器137基于从无损解码单元132提供的偏移滤波器信息,对作为去块滤波处理的结果获得的图像执行自适应偏移滤波处理。自适应偏移滤波器137将作为自适应偏移滤波处理的结果获得的图像输出至自适应环路滤波器138。
在步骤S141中,自适应环路滤波器138通过使用从无损解码单元132提供的滤波器系数,对从自适应偏移滤波器137提供的图像执行自适应环路滤波处理。自适应环路滤波器138将作为自适应环路滤波处理的结果获得的图像提供给帧存储器141和画面重排缓冲器139。
在步骤S142中,帧存储器141累积从加法单元135提供的图像和从自适应环路滤波器138提供的图像。在累积在帧存储器141中的未经受滤波处理的图像中,与CU相邻的图像作为周边图像通过开关142被提供给帧内预测单元143。同时,累积在帧存储器141中的经受滤波处理的图像作为参考图像通过开关142被提供给帧间预测单元51。
在步骤S143中,画面重排缓冲器139以帧为单位存储从自适应环路滤波器138提供的图像。画面重排缓冲器139将按编码顺序的以帧为单位的图像重排为原始显示顺序,并且将结果输出至D/A转换单元140。
在步骤S144中,D/A转换单元140对作为自适应环路滤波处理的结果获得的图像执行D/A转换,并且输出结果。
<帧间预测单元的配置示例>
图14是示出帧间预测单元的配置示例的框图。
在图14中,帧间预测单元51包括帧间预测控制单元201、L0预测块生成单元202、L1预测块生成单元203、BIO成本计算单元204、BIO应用确定单元205、Bi预测块生成单元206、包括BIO处理的Bi预测块生成单元207、Bi预测块选择单元208和预测块选择单元209。
在编码装置1的情况下,帧间预测控制单元201从运动预测/补偿单元47(在解码装置101的情况下从无损解码单元132)接收帧间预测参数。
帧间预测参数包括帧中的PU位置、PU大小、预测方向(设置L0、L1和Bi中的任何一个)、参考图像信息、运动信息等。
帧间预测控制单元201包括例如CPU(中央处理单元)或微处理器。帧间预测控制单元201通过CPU执行预定程序以基于帧间预测参数的内容来控制这些单元。
帧间预测控制单元201将L0预测参数提供给L0预测块生成单元202,由此控制L0预测块生成单元202。L0预测参数包括PU位置、PU大小、参考图像信息REFIDX_L0和运动信息MV_L0。
帧间预测控制单元201将L1预测参数提供给L1预测块生成单元203,由此控制L1预测块生成单元203。L1预测参数包括PU位置、PU大小、参考图像信息REFIDX_L1和运动信息MV_L1。
帧间预测控制单元201将Bi预测参数提供给BIO成本计算单元204、Bi预测块生成单元206和包括BIO处理的Bi预测块生成单元207,由此控制BIO成本计算单元204、Bi预测块生成单元206和包括BIO处理的Bi预测块生成单元207。Bi预测参数包括PU大小等。
帧间预测控制单元201将BIO阈值提供给BIO应用确定单元205,由此控制BIO应用确定单元205。
帧间预测控制单元201将预测方向提供给预测块选择单元209,由此控制预测块选择单元209。
L0预测块生成单元202在预测方向是L0或Bi时操作。L0预测块生成单元202基于从帧间预测控制单元201提供的L0预测参数来访问帧存储器44,以由此根据参考图像生成L0预测图像。将所生成的L0预测图像从L0预测块生成单元202提供给BIO成本计算单元204、BIO应用确定单元205、Bi预测块生成单元206、包括BIO处理的Bi预测块生成单元207和预测块选择单元209。
L1预测块生成单元203在预测方向是L1或Bi时操作。L1预测块生成单元203基于从帧间预测控制单元201提供的L1预测参数来访问帧存储器44,以由此根据参考图像生成L1预测图像。将所生成的L1预测图像从L1预测块生成单元203提供给BIO成本计算单元204、BIO应用确定单元205、Bi预测块生成单元206、包括BIO处理的Bi预测块生成单元207和预测块选择单元209。
BIO成本计算单元204在预测方向是Bi时操作。BIO成本计算单元204基于从帧间预测控制单元201提供的Bi预测参数,计算从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像的SAD。将计算的SAD从BIO成本计算单元204提供给BIO应用确定单元205。
BIO应用确定单元205在预测方向为Bi时操作。BIO应用确定单元205将从帧间预测控制单元201提供的BIO阈值与从BIO成本计算单元204提供的SAD进行比较,从而确定BIO_ON标志。当SAD大于BIO阈值时,将BIO_ON标志确定为指示应用BIO的BIO_ON=1,并且当SAD小于BIO阈值时,将BIO_ON标志确定为指示禁止应用BIO的BIO_ON=0。
将所确定的BIO_ON标志从BIO应用确定单元205提供给Bi预测块生成单元206、包括BIO处理的Bi预测块生成单元207和Bi预测块选择单元208。
当预测方向为Bi并且BIO_ON=0成立时,Bi预测块生成单元206基于从BIO应用确定单元205提供的BIO_ON标志进行操作。Bi预测块生成单元206基于从帧间预测控制单元201提供的Bi预测参数,根据从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像来生成Bi预测图像。将所生成的Bi预测图像从Bi预测块生成单元206提供给Bi预测块选择单元208。
当预测方向为Bi并且BIO_ON=1成立时,包括BIO处理的Bi预测块生成单元207基于从BIO应用确定单元205提供的BIO_ON标志进行操作。Bi预测块生成单元206基于从帧间预测控制单元201提供的Bi预测参数,根据从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像来生成包括BIO处理的Bi预测图像。将所生成的包括BIO处理的Bi预测图像从包括BIO处理的Bi预测块生成单元207提供给Bi预测块选择单元208。
Bi预测块选择单元208基于从BIO应用确定单元205提供的BIO_ON标志来选择Bi预测图像。Bi预测块选择单元208在BIO_ON=0成立的情况下,选择从Bi预测块生成单元206提供的Bi预测图像,并且在BIO_ON=1成立的情况下,选择从包括BIO处理的Bi预测块生成单元207提供的包括BIO处理的Bi预测图像。将所选择的Bi预测图像从Bi预测块选择单元208提供给预测块选择单元209。
预测块选择单元209基于从帧间预测控制单元201提供的预测方向来选择预测图像,并且将所选择的预测图像作为帧间预测的预测图像输出至在随后的级的图9的预测图像选择单元48(或图12的开关144)。
预测块选择单元209在预测方向是L0的情况下选择从L0预测块生成单元202提供的L0预测图像,并且在预测方向是L1的情况下选择从L1预测块生成单元203提供的L1预测图像。在预测方向是Bi的情况下,预测块选择单元209选择从Bi预测块选择单元208提供的Bi预测图像。
<帧间预测单元的操作示例>
图15和图16是示出由帧间预测单元51执行的包括BIO的Bi预测的流程图。
注意,该处理是与稍后描述的本技术的包括BIO的Bi预测处理相比的相关技术的包括BIO的Bi预测处理。此外,该包括BIO的Bi预测处理是在编码侧和解码侧执行的处理、是图10的步骤S34中的运动预测/补偿处理的一部分,并且是图13的步骤S136中的帧间预测处理的一部分。
在图15的步骤S301中,帧间预测控制单元201获取从运动预测/补偿单元47提供的帧间预测参数。注意,在解码装置101的情况下,从无损解码单元132提供帧间预测参数。
帧间预测参数包括帧中的PU位置、PU大小、预测方向(设置了L0、L1和Bi中的任何一个)、参考图像信息、运动信息等。
帧间预测控制单元201将L0预测参数提供给L0预测块生成单元202。L0预测参数包括PU位置、PU大小、参考图像信息REFIDX_L0和运动信息MV_L0。帧间预测控制单元201将L1预测参数提供给L1预测块生成单元203。L1预测参数包括PU位置、PU大小、参考图像信息REFIDX_L1和运动信息MV_L1。
帧间预测控制单元201将Bi预测参数提供给BIO成本计算单元204、Bi预测块生成单元206和包括BIO处理的Bi预测块生成单元207。Bi预测参数是指示PU大小的信息。
帧间预测控制单元201将BIO阈值提供给BIO应用确定单元205。帧间预测控制单元201将预测方向提供给预测块选择单元209,从而控制预测块选择单元209。
在步骤S302中,L0预测块生成单元202基于从帧间预测控制单元201提供的L0预测参数来访问帧存储器44,从而根据参考图像生成L0预测图像。注意,在解码装置101的情况下,通过访问帧存储器141来参考该参考图像。
在步骤S303中,L1预测块生成单元203基于从帧间预测控制单元201提供的L1预测参数来访问帧存储器44,从而根据参考图像生成L1预测图像。
在步骤S302和步骤S303的处理中的最大缓冲器大小是PU'大小。PU'大小表示对应于PU大小并且略大于PU大小的大小。
在步骤S304中,BIO成本计算单元204以4×4为单位计算从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像的SAD。将以4×4为单位计算的SAD累积,使得获取作为SAD之和的SAD_4×4块。
在步骤S305中,BIO成本计算单元204以PU为单位计算从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像的SAD。将以PU为单位计算的SAD累积,使得获取作为SAD之和的SAD_PU。将所获取的SAD_PU从BIO成本计算单元204提供给BIO应用确定单元205。
在步骤S306中,BIO应用确定单元205基于SAD_PU>=BIO threshold_PU来确定BIO_PU_ON标志。从BIO成本计算单元204提供SAD_PU并且从帧间预测控制单元201提供BIOthreshold_PU。将所确定的BIO_PU_ON标志从BIO应用确定单元205提供给Bi预测块生成单元206、包括BIO处理的Bi预测块生成单元207和Bi预测块选择单元208。
当SAD大于BIO阈值时,将BIO_PU_ON标志确定为BIO_PU_ON=1,其指示应用BIO,并且当SAD小于BIO阈值时,将BIO_PU_ON标志确定为BIO_PU_ON=0,其指示禁止应用BIO。
在步骤S307中,Bi预测块生成单元206和包括BIO处理的Bi预测块生成单元207确定BIO_PU_ON标志是否为1。
在步骤S307中确定BIO_PU_ON标志不为1的情况下,处理进行至步骤S308。
在步骤S308中,Bi预测块生成单元206根据从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像来生成Bi预测块PU。将生成的Bi预测块PU从Bi预测块生成单元206提供给Bi预测块选择单元208。之后包括BIO的Bi预测处理结束。
在步骤S308的处理中的最大缓冲器大小是PU大小。
同时,在步骤S307中确定BIO_PU_ON标志为1的情况下,处理进行至步骤S309。
在步骤S309至步骤S320中,包括BIO处理的Bi预测块生成单元207执行生成包括BIO处理的Bi预测图像的处理。
在步骤S309中,包括BIO处理的Bi预测块生成单元207根据从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像来计算多个梯度。在步骤S309的处理中的最大缓冲器大小是9个PU'的总大小。
在步骤S310中,包括BIO处理的Bi预测块生成单元207获取PU中包括的4×4块的数目。
在步骤S311中,包括BIO处理的Bi预测块生成单元207将0设置为4×4块编号。
在图16的步骤S312中,包括BIO处理的Bi预测块生成单元207确定4×4块编号是否小于4×4块的数目。
在步骤S312中确定4×4块编号小于4×4块的数目的情况下,处理进行至步骤S313。
在步骤S313中,包括BIO处理的Bi预测块生成单元207根据4×4块编号获取PU中的位置和SAD_4×4。
在步骤S314中,包括BIO处理的Bi预测块生成单元207基于SAD_4×4>=BIOthreshold_4×4来确定BIO_4×4_ON。
在步骤S315中,包括BIO处理的Bi预测块生成单元207确定BIO_4×4_ON标志是否为1。
在步骤S315中确定BIO_4×4_ON标志不为1的情况下,处理进行至步骤S316。
在步骤S316中,包括BIO处理的Bi预测块生成单元207根据4×4块编号的区域中的L0预测图像和L1预测图像生成Bi预测值。
在步骤S315中确定BIO_4×4_ON标志为1的情况下,处理进行至步骤S317。
在步骤S317中,包括BIO处理的Bi预测块生成单元207根据4×4块编号的区域中的多个梯度来计算速度。
在步骤S318中,包括BIO处理的Bi预测块生成单元207根据4×4块编号的区域中的L0预测图像、L1预测图像、梯度和速度生成BIO预测值。
在步骤S316和步骤S318之后,处理进行到步骤S319。
在步骤S319中,包括BIO处理的Bi预测块生成单元207将4×4块编号的位置处的预测值存储在缓冲器中。在步骤319的处理中的最大缓冲器大小是PU大小。
在步骤S320中,包括BIO处理的Bi预测块生成单元207使4×4块编号递增。之后,处理返回步骤S312,并且重复后面的处理。
在步骤S308之后或者在步骤S312中确定4×4块编号不小于4×4块的数目的情况下,包括BIO的Bi预测结束。
注意,在上面描述的包括BIO的Bi处理中,在步骤S305中针对整个PU计算L0预测块和L1预测块的SAD,在步骤S306中将SAD与阈值进行比较以确定是否应用BIO处理,并且在步骤S307中处理分支。
因此,在对大于VPDU的PU执行帧间预测的情况下,难以将PU虚拟地分割成多个vPU。因此,在步骤S302、S303和S309中所需的缓冲器需要比PU大小稍大的PU'大小,以实现步骤S309中的梯度计算和步骤S317中的速度计算。最大PU'大小是通过将PU水平大小和PU垂直大小加2获得的130×130的大小。
此外,在步骤S308中,需要具有PU大小的缓冲器。这意味着包括BIO的帧间预测单元51需要大的缓冲器资源。
此外,在需要该缓冲器的帧间预测单元51由HW(硬件)实现的情况下,由于包括BIO的帧间预测的流水线延迟与TU处理的流水线延迟之间的较大差异,难以实现维持吞吐量的HW实现方式。
这影响编码侧和解码侧两者。在编码侧,这可以通过诸如总是将CU分割成64×64或更小的自限制过程来避免。然而,期望一种解决方案以确保编码侧的自由度。在需要满足标准的解码侧,大HW资源是必不可少的。
因此,如上所述,在本技术中,在用于确定是否执行双向预测例如BIO的成本的计算中的处理单元被分割成分割处理单元,所述分割处理单元中的每一个与VPDU大小相当或者等于或小于VPDU大小,并且通过使用基于分割处理单元计算的成本进行确定。
与VPDU大小相当的大小是指略大于VPDU大小的VPDU'大小。
<帧间预测单元的操作示例>
图17和图18是示出作为根据本技术的第一实施方式的操作示例的由帧间预测单元51执行的包括BIO的Bi预测的流程图。
在图17和图18中示出了编码装置1的情况,并且由于在解码装置101的情况下执行类似处理,所以省略了其描述。
在步骤S401中,帧间预测控制单元201获取从运动预测/补偿单元47提供的帧间预测参数。
在步骤S402中,帧间预测控制单元201获取PU中包括的vPU的数目。即,在PU大于VPDU的情况下,将PU虚拟分割成多个vPU。在PU为128×128的情况下,将4设置为vPU的数目。在PU为128×64或64×128的情况下,将2设置为vPU的数目。在PU为64×64或更小的情况下,将1设置为vPU的数目。在vPU的数目为1的情况下,不对PU进行虚拟分割,并且基本执行与图15和图16的处理类似的处理。
在步骤S403中,帧间预测控制单元201将0设置为首先处理的vPU编号。
在步骤S404中,帧间预测控制单元201确定vPU编号是否小于vPU的数目。
在步骤S404中确定vPU编号小于vPU的数目的情况下,处理进行至步骤S405。
在步骤S405中,帧间预测控制单元201根据PU大小和vPU编号获取指示要处理的PU中的区域的vPU的位置和大小。
图19是示出PU大小、vPU编号与处理位置和大小之间的对应关系的图。
当PU大小为128×128并且vPU编号为0时,处理位置在左上方并且大小为64×64。当vPU编号为1时,处理位置在右上方并且大小为64×64。当vPU编号为2时,处理位置在左下方并且大小为64×64。当vPU编号为3时,处理位置在右下方并且大小为64×64。
当PU大小为128×64并且vPU编号为0时,处理位置在左边并且大小为64×64。当vPU编号为1时,处理位置在右边并且大小为64×64。
当PU大小为64×128并且vPU编号为0时,处理位置在顶部并且大小为64×64。当vPU编号为1时,处理位置在底部并且大小为64×64。
当PU大小为64×64或更小并且vPU编号为0时,处理位置为PU本身。
返回图17,将在步骤S405中获取的vPU的位置和大小提供给L0预测块生成单元202和L1预测块生成单元203。
在步骤S406中,L0预测块生成单元202在vPU编号的区域中生成L0预测块。
在步骤S407中,L1预测块生成单元203在vPU编号的区域中生成L1预测块。
例如,步骤406和S407的处理中的最大缓冲器大小是包括步骤S413中的梯度计算和步骤S421中的速度计算所需的稍大区域的VPDU'大小。VPDU'大小表示上述与VPDU大小相当的大小,该VPDU'大小是略大于VPDU大小的大小。例如,VPDU'大小是通过将水平大小和垂直大小加2而获得的66×66。
在后续级的BIO应用的确定中,使用高达VPDU大小的SAD值,并且因此用于存储在此生成的L0预测块和L1预测块的缓冲器大小可以基于VPDU大小。
在步骤S408中,BIO成本计算单元204以vPU中的4×4为单位计算从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像的SAD。将以4×4为单位计算的SAD累积,使得获取作为SAD之和的SAD_4×4块。
为了按4×4块单元(其是速度计算中的单元)确定是否应用BIO,从而针对后续级的无效情况实现提前终止,需要存储该SAD_4×4块。然而,用于存储SAD_4×4块的缓冲器大小可以减小到图15的步骤S304中的大小的1/4。
在步骤S409中,BIO成本计算单元204以vPU为单位计算从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像的SAD。累积以vPU为单位计算的SAD,使得获取作为SAD之和的SAD_vPU。将所获取的SAD_vPU从BIO成本计算单元204提供给BIO应用确定单元205。
在步骤S410中,BIO应用确定单元205基于SAD_vPU>=BIO threshold_vPU来确定BIO_vPU_ON标志。从BIO成本计算单元204提供SAD_vPU并且从帧间预测控制单元201提供BIO threshold_vPU。BIO threshold_vPU是通过将BIO threshold_PU缩放为基于在步骤S405中获得的vPU大小的值而获得的值。
将所确定的BIO_vPU_ON标志从BIO应用确定单元205提供给Bi预测块生成单元206、包括BIO处理的Bi预测块生成单元207和Bi预测块选择单元208。
在步骤S411中,Bi预测块生成单元206和包括BIO处理的Bi预测块生成单元207确定BIO_vPU_ON标志是否为1。
在步骤S411中确定BIO_vPU_ON标志不为1的情况下,由于BIO对整个vPU无效,因此处理进行至步骤S412。
在步骤S412中,Bi预测块生成单元206根据从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像来生成Bi预测块vPU。所生成的Bi预测块vPU存储在缓冲器中,并且从Bi预测块生成单元206提供给Bi预测块选择单元208。
在以HW实现方式构造流水线的情况下,与vPU帧间预测并行执行以VPDU为单位的TU处理,并且因此可以在该定时处开始下一个处理。因此,这里准备的存储Bi预测的缓冲器具有最大VPDU大小是足够的。之后,处理进行到图18的步骤S425。
同时,在步骤S411中确定BIO_vPU_ON标志为1的情况下,处理进行至步骤S413。
在步骤S413中,包括BIO处理的Bi预测块生成单元207根据从L0预测块生成单元202提供的L0预测块和从L1预测块生成单元203提供的L1预测块来计算多个梯度。
在步骤S413中,根据L0预测块和L1预测块计算9种类型的中间参数。计算L0预测块与L1预测块之间的变化量,以及每个预测块中的像素值的水平或垂直变化量。这些统称为“梯度”。需要通过与预测块一样多的像素来计算梯度,并且因此在这里需要的缓冲器具有最多9个VPDU'的总大小是足够的。
在图18的步骤S414中,包括BIO处理的Bi预测块生成单元207获取vPU中包括的4×4块的数目。例如,在vPU为64×64的情况下,4×4块的数目为256。在光流中,当以像素为单位获得速度以计算预测值时,实现了最高预测精度。然而,这需要大规模的计算。在BIO中,考虑到性能和成本的平衡折衷,以4×4块为单位计算速度。
在步骤S415中,包括BIO处理的Bi预测块生成单元207将0设置为首先处理的4×4块编号。
在步骤S416中,包括BIO处理的Bi预测块生成单元207确定4×4块编号是否小于4×4块的数目。
在步骤S416中确定4×4块编号小于4×4块的数目的情况下,处理进行至步骤S417。
在步骤S417中,包括BIO处理的Bi预测块生成单元207根据4×4块编号获取vPU中的位置和SAD_4×4。以光栅扫描顺序处理4×4块。
在步骤S418中,包括BIO处理的Bi预测块生成单元207基于SAD_4×4>=BIOthreshold_4×4来确定BIO_4×4_ON。
在步骤S419中,包括BIO处理的Bi预测块生成单元207确定BIO_4×4_ON标志是否为1。
在步骤S419中确定BIO_4×4_ON标志不为1的情况下,因为BIO没有被预期为对4×4块有效,所以处理进行至步骤S420。
在步骤S420中,包括BIO处理的Bi预测块生成单元207计算4×4块编号的区域中的L0预测图像与L1预测图像的平均值,从而生成Bi预测值。
在步骤S419中确定BIO_4×4_ON标志为1的情况下,处理进行至步骤S421。
在步骤S421中,包括BIO处理的Bi预测块生成单元207根据4×4块编号的区域中的多个梯度来计算速度。
在步骤S422中,包括BIO处理的Bi预测块生成单元207根据4×4块编号的区域中的L0预测图像、L1预测图像、梯度和速度来生成BIO预测值。
在步骤S420和步骤S422之后,处理进行至步骤S423。
在步骤S423中,包括BIO处理的Bi预测块生成单元207将4×4块编号的位置处的在步骤S420或步骤S422中生成的预测值存储在缓冲器中。步骤423的处理中的最大缓冲器大小为VPDU大小。该缓冲器可以是在S412的处理中使用的缓冲器。
在步骤S424中,包括BIO处理的Bi预测块生成单元207使4×4块编号递增。之后,处理返回步骤S416,并且重复后面的处理。
在步骤S412之后,或者在步骤S416中确定4×4块编号等于或大于4×4块的数目的情况下,处理进行至步骤S425。
在步骤S425中,帧间预测控制单元201使vPU编号递增。处理返回至步骤S404,并且重复后面的处理。
在步骤S404中确定vPU编号等于或大于vPU的数目的情况下,包括BIO处理的Bi预测结束。
图20和图21是示出相关技术的操作与根据本技术的第一实施方式的操作之间的比较的图。
在图20的上部中,在CU(PU)为128×128并且VPDU=64×64成立的情况下,针对首先计算SAD以用于BIO应用确定的范围示出了相关技术的操作和根据本技术的第一实施方式的操作。在CU(PU)为128×128的情况下,将CU(PU)分割成四个vPU,四个vPU是用于BIO_vPU_ON确定的SAD计算区域。
在图20的下部中,在CU(PU)为128×64并且VPDU=64×64成立的情况下,针对首先计算SAD以用于BIO应用确定的范围示出了相关技术的操作和根据本技术的第一实施方式的操作。在CU(PU)为128×64的情况下,将CU(PU)分割成左vPU和右vPU两个,左vPU和右vPU是用于BIO_vPU_ON确定的SAD计算区域。
在图21的上部中,在CU(PU)为64×128并且VPDU=64×64成立的情况下,针对首先计算SAD以用于BIO应用确定的范围示出了相关技术的操作和根据本技术的第一实施方式的操作。在CU(PU)为64×128的情况下,将CU(PU)分割成顶部vPU和底部vPU两个,顶部vPU和底部vPU是用于BIO_vPU_ON确定的SAD计算区域。
在图21的下部中,在CU(PU)为64×64或更小并且VPDU=64×64成立的情况下,针对首先计算SAD以用于BIO应用确定的范围示出了相关技术的操作和根据本技术的第一实施方式的操作。在CU(PU)为64×64或更小的情况下,不分割CU(PU)并且CU(PU)包括单个vPU,单个vPU是用于BIO_vPU_ON确定的SAD计算区域。
在相关技术的操作中,需要整个PU的SAD,并且因此需要预先准备并且存储大的L0预测块和大的L1预测块。另一方面,在本技术中,在比VPDU大的PU中,针对通过虚拟分割PU而获得的每个vPU确定是否应用BIO,并且因此可以减小预先准备和存储的用于L0预测块和L1预测块的缓冲器的大小。
此外,图17的步骤S412、S413和图18的步骤S423中使用的缓冲器可以减少到图15的步骤S308、S309和图16的步骤S319中使用的缓冲器的1/4。
作为在解码侧生成两个预测块并且通过成本计算进行确定从而提高帧间预测例如BIO的编码效率的工具,存在FRUC(帧速率上变换)和DMVR(解码器侧运动矢量细化)。在FRUC和DMVR中,生成大于PU大小的L0预测块和L1预测块,并且出于MV校正而非BIO中的提前终止的目的来计算SAD或类似成本。
在PU大于VPDU的情况下,需要与本技术类似的处理。同样在FRUC和DMVR中,如在本技术中那样,可以如下处理PU大于VPDU的情况:将PU虚拟分割成多个vPU,并且针对每个vPU执行MV校正。
上面描述的相关技术操作中对整个PU的SAD计算和BIO应用确定以及本技术中对每个vPU的SAD计算和BIO应用确定通常主要是为了实现提前终止,并且因此可以实现进一步的减小。
<第一修改示例>
在上述第一实施方式中,描述了在PU大于VPDU的情况下,将PU虚拟分割成多个vPU,并且针对每个vPU计算SAD以确定是否应用BIO的示例。PU的vPU最初包含在同一PU中,并且因此可以想到某个部分趋势类似于不同部分的趋势。
图22和图23是示出作为第一修改示例的示例的图,在该示例中,在PU大于VPDU的情况下,在上述趋势的前提下,vPU编号为0的BIO确定结果也用于其他vPU。
在图22的上部中,示出了在CU(PU)为128×128并且VPDU=64×64成立的情况下,首先计算SAD以用于BIO应用确定的范围。在CU(PU)为128×128的情况下,通过将CU(PU)分割成4个而获得的作为用于BIO_vPU_ON确定的SAD计算区域的vPU中,计算在左上方的vPU(vPU编号=0)的SAD,并且复制vPU编号为0的vPU的结果,并且将其用于剩余vPU(右上方、左下方、右上方)。
在图22的下部中,示出了在CU(PU)为128×64并且VPDU=64×64成立的情况下,首先计算SAD以用于BIO应用确定的范围。在CU(PU)为128×64的情况下,通过将CU(PU)分割成两个而获得的作为用于BIO_vPU_ON确定的SAD计算区域的vPU中,计算左边的vPU(vPU编号=0)的SAD,并且复制vPU编号为0的vPU的结果,并且将其用于其他vPU(右边)。
在图23的上部中,示出了在CU(PU)为64×128并且VPDU=64×64成立的情况下,首先计算SAD以用于BIO应用确定的范围。在CU(PU)为128×64的情况下,通过将CU(PU)分割成两个而获得的作为用于BIO_vPU_ON确定的SAD计算区域的vPU中,计算在顶部的vPU(vPU编号=0)的SAD,并且复制vPU编号为0的vPU的结果,并且将其用于其他vPU(底部)。
在图23的下部中,示出了在CU(PU)为64×64或更小并且VPDU=64×64成立的情况下,首先计算SAD以用于BIO应用确定的范围。在CU(PU)为64×64或更小的情况下,不分割CU(PU)并且CU(PU)包括单个vPU作为用于BIO_vPU_ON确定的SAD计算区域。
<帧间预测单元的操作示例>
图24和图25是示出在图23的情况下包括BIO的Bi预测的流程图。
在图24的步骤S501至S508和图25的步骤S510至S526中,执行与图17和图18的步骤S401至S425中的处理基本类似的处理,并且因此适当地省略其冗余的描述。
在图25的步骤S508中,BIO成本计算单元204以vPU中的4×4为单位计算从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像的SAD。将以4×4为单位计算的SAD累积,使得获取作为SAD之和的SAD_4×4块。
在步骤S509中,BIO成本计算单元204确定vPU编号是否为0。
在步骤S509中确定vPU编号为0的情况下,处理进行至步骤S510。
在步骤S510中,BIO成本计算单元204以vPU为单位计算从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像的SAD。累积以vPU为单位计算的SAD,使得获取作为SAD之和的SAD_vPU。将所获取的SAD_vPU从BIO成本计算单元204提供给BIO应用确定单元205。
在步骤S511中,BIO应用确定单元205基于SAD_vPU>=BIO threshold_vPU来确定BIO_vPU_ON标志。从BIO成本计算单元204提供SAD_vPU并且从帧间预测控制单元201提供BIO threshold_vPU。之后,处理进行至步骤S512。
同时,在确定vPU编号不为0的情况下,处理跳过步骤S510和S511并且进行至步骤S512。
如上所述,在PU中,仅对于在光栅扫描顺序中首先定位的vPU执行vPU的SAD累积和BIO确定,因此可以减少与提前终止相关的处理和处理所花费的时间。
<第二修改示例>
图26和图27是示出作为第二修改示例的示例的图,在该示例中,利用每个vPU中的部分SAD值来确定是否应用BIO。
在图26的上部中,示出了在CU(PU)为128×128并且VPDU=64×64成立的情况下,首先计算SAD以用于BIO应用确定的范围。在CU(PU)为128×128的情况下,针对通过将CU(PU)分割成两个而获得的作为用于BIO_vPU_ON确定的SAD计算区域的每个vPU的左上部分区域(32×32)计算SAD。
在图26的下部中,示出了在CU(PU)为128×64并且VPDU=64×64成立的情况下,首先计算SAD以用于BIO应用确定的范围。在CU(PU)为128×64的情况下,针对通过将CU(PU)分割成两个而获得的作为用于BIO_vPU_ON确定的SAD计算区域的每个vPU的左上部分区域(32×32)计算SAD。
在图27的上部中,示出了在CU(PU)为64×128并且VPDU=64×64成立的情况下,首先计算SAD以用于BIO应用确定的范围。在CU(PU)为64×128的情况下,针对通过将CU(PU)分割成两个而获得的作为用于BIO_vPU_ON确定的SAD计算区域的每个vPU的左上部分区域(32×32)计算SAD。
在图27的下部中,示出了在CU(PU)为64×64或更小并且VPDU=64×64成立的情况下,首先计算SAD以用于BIO应用确定的范围。在CU(PU)为64×64或更小的情况下,针对未被分割并且包括vPU作为用于BIO_vPU_ON确定的SAD计算区域的CU(PU)的左上部分区域(32×32)计算SAD。
如上所述,图26和图27示出了在每个vPU的左上1/4区域中确定是否应用BIO的示例。考虑到与以HW构造流水线的情况的兼容性,使用左上1/4区域。这是因为当准备了左上1/4区域中的L0预测块和L1预测块时,BIO应用确定变得可行。
仅针对每个vPU的部分区域确定是否应用BIO,使得在流水线级上准备的缓冲器可以被减少到小于VPDU大小。
注意,部分区域具有任意大小,并且例如可以针对具有0×0大小的部分区域执行成本(SAD)计算。即,0意味着不计算成本并且跳过提前终止。
此外,可以动态地改变每个vPU中的用于计算用于确定BIO_vPU_ON所需的SAD的区域。
<帧间预测单元的操作示例>
图28和图29是示出确定每个vPU中的用于BIO_vPU_ON确定的部分SAD计算区域的处理的流程图。
在图28和图29中,用于生成L0预测块和L1预测块的两个MV被划分成四个,即水平分量和垂直分量,并且在假设距参考位置最远的区域具有不准确的运动信息的情况下,确定BIO的校正对于这样的区域是否有效。例如,该处理在图25的步骤S509之前进行。在这种情况下,可以想到以下流程:在步骤S509中,确定vPU编号是否对应于安装区域,并且仅对所设置的区域执行步骤S510和S511中的处理。
在步骤S601中,帧间预测控制单元201获取L0预测的MVL0x和MVL0y以及L1预测的MVL1x和MVL1y。
在步骤S602中,帧间预测控制单元201选择四个MV中具有最大绝对值的一个MV,并且将该MV代入MV_MAX。
在步骤S603中,帧间预测控制单元201确定|MV_MAX|<MV_threshold是否成立。
在步骤S603中确定|MV_MAX|<MV_threshold成立的情况下,处理进行至步骤S604。
在步骤S604中,帧间预测控制单元201将vPU的中心部分设置为SAD计算区域。
在步骤S605中,帧间预测控制单元201确定PU大小<vPU大小是否成立。
在步骤S605中确定PU大小<vPU大小成立的情况下,处理进行至步骤S606。
在步骤S606中,帧间预测控制单元201确定水平大小=水平PU大小/2并且垂直大小=垂直PU大小/2成立。
在步骤S605中确定PU大小<vPU大小不成立的情况下,处理进行至步骤S607。
在步骤S607中,帧间预测控制单元201确定水平大小=水平vPU大小/2并且垂直大小=垂直vPU大小/2成立。
同时,在步骤S603中确定|MV_MAX|<MV_threshold不成立的情况下,处理进行至步骤S608。
在步骤S608中,帧间预测控制单元201确定MV_MAX==MVL0x||MV_MAX==MVL1x是否成立。
在步骤S608中确定MV_MAX==MVL0x||MV_MAX==MVL1x成立的情况下,处理进行至步骤S609。
在步骤S609中,帧间预测控制单元201确定MV_MAX是否小于0。
在步骤S609中确定MV_MAX小于0的情况下,处理进行至步骤S610。
在步骤S610中,帧间预测控制单元201将vPU的左部设置为SAD计算区域。
在步骤S609中确定MV_MAX等于或大于0的情况下,处理进行至步骤S611。
在步骤S611中,帧间预测控制单元201将vPU的右部设置为SAD计算区域。
在步骤S610或S611之后,处理进行至步骤S612。
在步骤S612中,帧间预测控制单元201确定PU大小<vPU大小是否成立。
在步骤S612中确定PU大小<vPU大小成立的情况下,处理进行至步骤S613。
在步骤S613中,帧间预测控制单元201确定水平大小=水平PU大小/4并且垂直大小=垂直PU大小成立。
在步骤S612中确定PU大小<vPU大小不成立的情况下,处理进行至步骤S614。
在步骤S614中,帧间预测控制单元201确定水平大小=水平vPU大小/4并且垂直大小=垂直vPU大小成立。
此外,在步骤S608中确定MV_MAX==MVL0x||MV_MAX==MVL1x不成立的情况下,处理进行至步骤S615。
在步骤S615中,帧间预测控制单元201确定MV_MAX<0是否成立。
在步骤S615中确定MV_MAX<0成立的情况下,处理进行至步骤S616。
在步骤S616中,帧间预测控制单元201将vPU的上部设置为SAD计算区域。
在步骤S615中确定MV_MAX<0不成立的情况下,处理进行至步骤S617。
在步骤S617中,帧间预测控制单元201将vPU的下部设置为SAD计算区域。
在步骤S616或S617之后,处理进行至步骤S618。
在步骤S618中,帧间预测控制单元201确定PU大小<vPU大小是否成立。
在步骤S618中确定PU大小<vPU大小成立的情况下,处理进行至步骤S619。
在步骤S619中,帧间预测控制单元201确定水平大小=水平PU大小并且垂直大小=垂直PU大小/4成立。
在步骤S618中确定PU大小<vPU大小不成立的情况下,处理进行至步骤S620。
在步骤S620中,帧间预测控制单元201确定水平大小=水平vPU大小并且垂直大小=垂直vPU大小/4成立。
在步骤S606、步骤S607、步骤S613、步骤S614、步骤S619和步骤S620之后,处理进行至图29的步骤S621。
在步骤S621中,帧间预测控制单元201确定水平大小<4是否成立。
在步骤S621中确定水平大小<4成立的情况下,处理进行至步骤S622。
在步骤S622中,帧间预测控制单元201确定水平大小=4成立,并且处理进行至步骤S623。
在步骤S621中确定水平大小<4不成立的情况下,处理跳过步骤S622并且进行至步骤S623。
在步骤S623中,帧间预测控制单元201确定垂直大小<4是否成立。
在步骤S623中确定垂直大小<4成立的情况下,处理进行至步骤S624。
在步骤S624中,帧间预测控制单元201确定垂直大小=4成立,并且确定用于BIO_vPU_ON确定的部分SAD计算区域的处理结束。
在步骤S623中确定垂直大小<4不成立的情况下,处理跳过步骤S624,并且确定用于BIO_vPU_ON确定的部分SAD计算区域的处理结束。
如所描述的针对部分区域计算SAD以确定是否应用BIO的处理也可以应用于FRUC和DMVR。然而,在FRUC和DMVR中,用于BIO中的提前终止的SAD或类似成本的计算和其后的确定直接反映在帧间预测准确度中。因此,存在为省略成本计算而支付的费用高的可能性,并且因此可以说,针对部分区域计算SAD以确定是否应用BIO的处理是BIO独有的处理。
<2.第二实施方式(与标志共享的示例性操作)>
在第二实施方式中,如在第一实施方式中那样,在PU大于VPDU的情况下,将PU虚拟分割成vPU,并且以vPU为单位执行处理。
在第二实施方式中,与第一实施方式不同,1比特的BIO_PU_ON标志被包括在编码装置1与解码装置101之间发送/接收的比特流中,使得可以共享编码装置1的操作和解码装置101的操作。
<帧间预测单元的操作示例>
图30和图31是示出作为根据本技术的第二实施方式的操作示例的由帧间预测单元51执行的包括BIO的Bi预测的流程图。
在图30的步骤S701至S708以及图31的步骤S715至S728中,执行与图17的步骤S401至S408以及图18的步骤S412至S425中的处理基本类似的处理,因此适当地省略其冗余的描述。
在图30的步骤S708中,BIO成本计算单元204以vPU中的4×4为单位计算从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像的SAD。累积以4×4为单位计算的SAD,使得获取作为SAD之和的SAD_4×4块。
在步骤S709中,帧间预测控制单元201确定vPU的数目是否为1。
在步骤S709中确定vPU的数目为1的情况下,处理进行至步骤S710。在步骤S710和S711中,执行与以PU为单位执行的处理类似的处理。
在步骤S710中,BIO成本计算单元204以vPU为单位计算从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像的SAD。累积以vPU为单位计算的SAD,使得获取作为SAD之和的SAD_PU。将所获取的SAD_PU从BIO成本计算单元204提供给BIO应用确定单元205。
在步骤S711中,BIO应用确定单元205基于SAD_PU>=BIO threshold_PU确定BIO_PU_ON标志。从BIO成本计算单元204提供SAD_PU并且从帧间预测控制单元201提供BIOthreshold_PU。之后,处理进行至步骤S714。
在步骤S709中确定vPU编号不为1的情况下,处理进行至步骤S712。
在步骤S712中,帧间预测控制单元201确定vPU编号是否为0。
在步骤S709中确定vPU编号为0的情况下,处理进行至步骤S713。
在步骤S713中,帧间预测控制单元201设置BIO_PU_ON。在编码装置1的情况下,例如设置根据运动估计(ME)结果确定的BIO_PU_ON。在解码装置101的情况下,设置从流获取的BIO_PU_ON。
在步骤S712中确定vPU编号不为0的情况下,处理跳过步骤S713并且进行至图31的步骤S714。
在步骤S714中,确定BIO_PU_ON标志是否为1。
在步骤S714中确定BIO_PU_ON标志不为1的情况下,由于BIO对整个PU无效,处理进行至步骤S715。
在步骤S715中,Bi预测块生成单元206根据从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像生成Bi预测块vPU。所生成的Bi预测块vPU被存储在缓冲器中,并且从Bi预测块生成单元206提供给Bi预测块选择单元208。
同时,在步骤S714中确定BIO_PU_ON标志为1的情况下,处理进行至步骤S716。
在步骤S716中,包括BIO处理的Bi预测块生成单元207根据从L0预测块生成单元202提供的L0预测块和从L1预测块生成单元203提供的L1预测块来计算多个梯度。
如上所述,当BIO_PU_ON标志包括在比特流中时,可以共享编码装置1的操作和解码装置101的操作。
注意,由于在比特流中包括标志而引起的编码效率的劣化被关注,因此BIO_PU_ON标志不包括在所有层中,而是仅在PU大于VPDU的情况下被包括,使得1比特的值相对较小。在PU不大于VPDU的情况下,如图30的步骤S709至S713所示,如在第一实施方式中那样以PU为单位计算SAD值并且确定是否应用BIO。
在BIO_PU_ON标志被包括在比特流中的情况下,编码装置1可以自由地将0或1设置为BIO_PU_ON标志。当编码装置1是足够高性能的装置时,可以采用下述确定方法:利用0和1的BIO_PU_ON标志执行运动补偿,并且确定BIO_PU_ON标志中提供有利结果的一个BIO_PU_ON标志。此外,可以采用下述确定方法:在PU大小为128×128时将BIO_PU_ON标志设置为0,否则将BIO_PU_ON标志设置为1。
同时,在解码装置101中,以PU大于VPDU的Bi预测模式在CU的PU层上对BIO_PU_ON标志进行解码,使得当vPU编号为0时,在步骤S713中获取BIO_PU_ON标志,并且处理继续。在已经设置了BIO_PU_ON标志的vPU编号为1或更大的vPU中,处理跳过步骤S713,并且从步骤S712进行至步骤S714。
类似于上述第二实施方式的方法可以应用于FRUC和DMVR,但是将第二实施方式应用于FRUC或DMVR基本毫无意义。这是因为用于MV校正的数据包括在比特流中实质上意味着差分MV(MVD)被编码。
<3.第三实施方式(具有sPU的示例性分割)>
在第三实施方式中,虚拟分割大小不同于第一实施方式的虚拟分割大小。在PU大于VPDU的情况下,将PU虚拟分割成sPU,并且以sPU为单位执行处理。
即,由于计算SAD以确定是否应用BIO的处理单元是不跨越VPDU边界并且等于或小于VPDU大小的任何单元,因此在第三实施方式中,将PU虚拟分割成具有单独给定信息的多个sPU,并且针对每个sPU确定是否应用BIO。
为了给出信息,诸如BIO_MAX_SAD_BLOCK_SIZE的变量被添加至并且包括在要由编码装置1和解码装置101共享的比特流中。
图32是示出BIO_MAX_SAD_BLOCK_SIZE和sPU之间的对应关系的图。
在BIO_MAX_SAD_BLOCK_SIZE为1的情况下,sPU大小为8×8。在BIO_MAX_SAD_BLOCK_SIZE为2的情况下,sPU大小为16×16。在BIO_MAX_SAD_BLOCK_SIZE为3的情况下,sPU大小为32×32。在BIO_MAX_SAD_BLOCK_SIZE为4的情况下,sPU大小为64×64。
可以将BIO_MAX_SAD_BLOCK_SIZE的值设置为基于编码装置1的性能的任何值,或者可以预先确定为用作标准的简况/级别(profile/level)约束。存在取决于要处理的图片大小来设置BIO_MAX_SAD_BLOCK_SIZE的级别约束,即,例如,对于SD或更小,将BIO_MAX_SAD_BLOCK_SIZE设置为0;对于HD,将BIO_MAX_SAD_BLOCK_SIZE设置为1;对于4K,将BIO_MAX_SAD_BLOCK_SIZE设置为2;对于8K,将BIO_MAX_SAD_BLOCK_SIZE设置为3。
<帧间预测单元的操作示例>
图33和图34是示出作为根据本技术的第三实施方式的操作示例的由帧间预测单元51执行的包括BIO的Bi预测的流程图。
注意,在图33和图34的步骤S801至S825中,尽管用与vPU大小不同的sPU来代替vPU,但是执行与图17和图18的步骤S401至S425中的处理基本相似的处理,因此适当地省略其冗余的描述。
图35和图36是示出在BIO_MAX_SAD_BLOCK_SIZE为2的情况下每个PU中的用于计算SAD的示例性区域的图。
在图35的上部中,示出了在CU(PU)为128×128,VPDU=64×64成立,并且BIO_MAX_SAD_BLOCK_SIZE为2(sPU=32×32)的情况下用于计算sPU的SAD的区域。在图35的上部的情况下,PU被分割成16个不跨越VPDU边界的sPU。
在图35的下部中,示出了在CU(PU)为128×64,VPDU=64×64成立,并且BIO_MAX_SAD_BLOCK_SIZE为2(sPU=32×32)的情况下用于计算sPU的SAD的区域。在图35的下部的情况下,PU被分割成八个不跨越VPDU边界的sPU。
在图36的上部中,示出了在CU(PU)为64×128,VPDU=64×64成立,并且BIO_MAX_SAD_BLOCK_SIZE为2(sPU=32×32)的情况下用于计算sPU的SAD的区域。在图36的上部的情况下,PU被分割成八个不跨越VPDU边界的sPU。
在图36的下部中,示出了在CU(PU)为64×64或更小,VPDU=64×64成立,并且BIO_MAX_SAD_BLOCK_SIZE为2(sPU=32×32)的情况下用于计算sPU的SAD的区域。在图36的上部的情况下,PU被分割成四个不跨越VPDU边界的sPU。
如上所述,在本技术的第三实施方式中,PU被虚拟地分割成具有单独给定信息的多个sPU,并且针对每个sPU确定是否应用BIO。由此,与通过使用vPU的情况下的缓冲器大小相比,可以进一步减小缓冲器大小。
<4.第四实施方式(禁止使用BIO的示例)>
在第四实施方式中,在PU大于VPDU的情况下,限制BIO的使用。由此,能够减小缓冲器大小。
<帧间预测单元的操作示例>
图37和图38是示出作为根据本技术的第四实施方式的操作示例的由帧间预测单元51执行的包括BIO的Bi预测的流程图。
在图37的步骤S901至S907和图38的S926中,执行与图17的步骤S401至S407和图18的S425中的处理基本类似的处理,并且因此适当地省略其冗余的描述。此外,在图37和图38的步骤S909至S925中,执行与图15和图16的步骤S304至S320中的处理基本类似的处理,并且因此适当地省略其冗余的描述。
在步骤S907中,L1预测块生成单元203生成vPU编号的区域中的L1预测块。
在步骤S908中,帧间预测控制单元201确定1<vPU的数目是否成立。
在步骤S908中确定1<vPU的数目不成立的情况下,处理进行至步骤S909。在vPU的数目为1,即vPU=PU成立的情况下,步骤S909之后的处理与图15的步骤S309之后的处理类似。
在步骤S908中确定1<vPU的数目成立的情况下,处理进行至图38的步骤S913。
此外,在步骤S912中确定BIO_vPU_ON标志不为1的情况下,由于BIO对整个vPU无效,处理进行至步骤S913。
在步骤S913中,Bi预测块生成单元206根据从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像来生成Bi预测块vPU。所生成的Bi预测块vPU被存储在缓冲器中,并且从Bi预测块生成单元206提供给Bi预测块选择单元208。
如上所述,在图37和图38中,在步骤S907至S913之间,添加步骤S908作为条件分支步骤,以确定是否存在多个vPU,即,PU是否大于VPDU。
在PU大于VPDU的情况下,处理从步骤S908进行至步骤S913中的通常Bi预测,在步骤S913中不使用BIO并且不必针对整个PU计算SAD值,并且因此,如图4所示,可以将PU分割成要处理的虚拟vPU。
在步骤S908中的分支之后的步骤S909至S925中的处理与相关技术的包括BIO的Bi预测中的处理(图15和图16的S304至S320)类似。然而,在PU等于或小于VPDU的情况下,处理进行至步骤S909,并且因此针对整个PU的SAD计算仅使用等于或小于VPDU的资源。
<5.第五实施方式(始终应用BIO的示例)>
在第五实施方式中,在PU大于VPDU的情况下,总是应用BIO以减小缓冲器大小。
<帧间预测单元的操作示例>
图39和图40是示出作为根据本技术的第五实施方式的操作示例的由帧间预测单元51执行的包括BIO的Bi预测的流程图。
在图39的步骤S1001至S1008和图40的步骤S1026中,执行与图17的步骤S401至S408和图18的步骤S425中的处理基本类似的处理,并且因此适当地省略其冗余的描述。此外,在图39和图40的步骤S1014至S1025中,执行与图15和图16的步骤S309至S320中的处理基本类似的处理,并且因此适当地省略其冗余的描述。
在步骤S1008中,BIO成本计算单元204以vPU中的4×4为单位计算从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像的SAD。累积以4×4为单位计算的SAD,使得获取作为SAD之和的SAD_4×4块。
在步骤S1009中,帧间预测控制单元201确定1<vPU的数目是否成立。
在步骤S1009中确定1<vPU的数目不成立的情况下,处理进行至步骤S1010。
在步骤S1010中,BIO成本计算单元204以PU为单位计算从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像的SAD。累积以PU为单位计算的SAD,使得获取作为SAD之和的SAD_PU。将所获取的SAD_PU从BIO成本计算单元204提供给BIO应用确定单元205。
在步骤S1011中,BIO应用确定单元205基于SAD_PU>=BIO threshold_PU来确定BIO_PU_ON标志。从BIO成本计算单元204提供SAD_PU并且从帧间预测控制单元201提供BIOthreshold_PU。
在步骤S1012中,确定BIO_PU_ON标志是否为1。
在步骤S1012中确定BIO_PU_ON标志不为1的情况下,由于BIO对整个vPU无效,处理进行到图40的步骤S1013。
在步骤S1013中,Bi预测块生成单元206根据从L0预测块生成单元202提供的L0预测图像和从L1预测块生成单元203提供的L1预测图像来生成Bi预测块vPU。所生成的Bi预测块vPU被存储在缓冲器中,并且从Bi预测块生成单元206提供给Bi预测块选择单元208。
在步骤S1012中确定BIO_PU_ON标志为1的情况下,处理进行到图40的步骤S1014。
此外,在步骤S1009中确定1<vPU的数目成立的情况下,处理进行至步骤S1014。
在步骤S1014和后续步骤中,执行类似于图15的步骤S309至S320中的BIO处理。
如上所述,在图39和图40中,在步骤S1009中,添加了用于确定是否存在多个vPU,即PU是否大于VPDU的条件分支。
在PU大于VPDU的情况下,处理绕开S1010至S1012中的SAD计算至阈值确定以进行到步骤S1014和后续步骤中的BIO应用处理,使得针对整个PU的SAD计算是不必要的,并且因此,如图4所示,PU可以被分割成要处理的虚拟vPU。
在PU等于或小于VPDU的情况下,处理进行到步骤S1010至S1012,并且因此针对整个PU的SAD计算仅使用等于或小于VPDU的资源。
注意,由于以下原因,第五实施方式不适用于FRUC和DMVR。因为BIO中的SAD计算是为了提前终止的目的,所以可以如第五实施方式中那样使用诸如PU大小的另一准则来避免成本计算。然而,FRUC和DMVR中的成本计算是MV校正中的关键处理,并且难以避免。
如上所述,根据本技术,用于确定是否执行诸如BIO的双向预测的成本计算中的处理单元被分割成分割处理单元,所述分割处理单元中的每一个与VPDU大小(例如,vPU)相当或等于或小于VPDU大小(例如,sPU),并且通过使用基于分割处理单元而计算的成本来进行确定。由此,能够减小缓冲器大小。
可以用BIO实现VVC,使得各种缓冲器的必要大小可以减小到相关技术的缓冲器大小的1/4。
此外,可以优化HW配置,使得可以用缓冲器来实现BIO,其中一些缓冲器的大小比相关技术的大小的1/4小得多。
<6.第六实施方式(计算机)>
<计算机的配置示例>
可以由硬件或软件来执行上述的一系列处理过程。在由软件执行一系列处理过程的情况下,配置软件的程序从程序记录介质安装在并入专用硬件中的计算机或通用个人计算机上。
图41是示出计算机的硬件的配置示例的框图,该计算机被配置成利用程序执行上述一系列处理过程。
CPU(中央处理单元)301、ROM(只读存储器)302和RAM(随机存取存储器)303通过总线304相互连接。
输入/输出接口305还连接至总线304。输入/输出接口305连接至包括键盘、鼠标等的输入单元306以及包括显示器、扬声器等的输出单元307。此外,输入/输出接口305连接至包括硬盘、非易失性存储器等的存储单元308、包括网络接口等的通信单元309以及被配置成驱动可移除介质311的驱动器310。
在如上所述配置的计算机中,例如,CPU 301通过输入/输出接口305和总线304将存储在存储单元308中的程序加载到RAM 303中,并且执行程序以执行上述一系列处理过程。
例如,可以将由CPU 301执行的程序记录在可移除介质311上以被安装在存储单元308上。替选地,程序可以经由诸如局域网、因特网或数字卫星广播的有线或无线传输介质来提供以被安装在存储单元308上。
注意,对于由计算机执行的程序,可以按本文中描述的顺序按时间顺序或并行地执行程序的处理过程。替选地,可以在适当的时刻例如当调用程序时执行处理过程。
注意,本文中的系统意味着一组多个部件(装置、模块(部分)等),而不管所有部件是否在同一壳体中。因此,容纳在单独的壳体中并且经由网络彼此连接的多个装置,以及其中多个模块容纳在单个壳体中的单个装置都是系统。
注意,本文中描述的效果仅是示例性的而非限制性的,并且可以提供其他效果。
本技术的实施方式不限于上述实施方式,并且可以在不脱离本技术的主旨的情况下进行各种修改。
例如,本技术可以实现为云计算,其中由多个装置经由网络使单个功能被共享和处理。
此外,可以由单个装置执行或者由多个装置共享和执行上述流程图的步骤。
此外,在单个步骤中包括多个处理过程的情况下,可以由单个装置执行或者由多个装置共享和执行单个步骤中包括的多个处理过程。
<配置的组合示例>
本技术还可以采用以下配置。
(1)
一种图像处理装置,包括:
控制单元,其被配置成将处理单元分割成分割处理单元,所述分割处理单元中的每一个均与VPDU大小相当或者等于或小于所述VPDU大小,所述处理单元用于计算用于确定是否执行双向预测的成本;以及
确定单元,其被配置成通过使用基于所述分割处理单元而计算的所述成本来进行所述确定。
(2)
根据项目(1)所述的图像处理装置,其中,
所述确定单元通过使用按所述分割处理单元中的每一个计算的所述成本来进行所述确定。
(3)
根据项目(1)所述的图像处理装置,其中,
所述确定单元通过使用针对所述分割处理单元中的第一分割处理单元计算的所述成本,对所述分割处理单元中的所述第一分割处理单元进行所述确定,并且通过使用对所述分割处理单元中的所述第一分割处理单元的确定结果对所述分割处理单元中的其他分割处理单元进行所述确定。
(4)
根据项目(1)所述的图像处理装置,其中,
所述确定单元通过使用针对所述分割处理单元中的部分区域中的每一个计算的所述成本,来对所述分割处理单元中的每一个进行所述确定。
(5)
根据项目(1)所述的图像处理装置,其中,
所述确定单元基于对所述分割处理单元中的每一个设置的标志,对所述分割处理单元中的每一个进行所述确定,所述标志指示是否执行所述双向预测。
(6)
根据项目(1)至(5)中任一项所述的图像处理装置,其中,
所述双向预测包括采用BIO的双向预测。
(7)
根据项目(1)或(2)所述的图像处理装置,其中,
所述双向预测包括采用FRUC或DMVR的双向预测。
(8)
一种用于使图像处理装置进行以下操作的图像处理方法:
将处理单元分割成分割处理单元,所述分割处理单元中的每一个均与VPDU大小相当或者等于或小于所述VPDU大小,所述处理单元用于计算用于确定是否执行双向预测的成本;以及
通过使用基于所述分割处理单元而计算的所述成本来进行所述确定。
附图标记列表
1:编码装置
36:无损编码单元
47:运动预测/补偿单元
51:帧间预测单元
101:解码装置
132:无损解码单元
201:帧间预测控制单元
202:L0预测块生成单元
203:L1预测块生成单元
204:BIO成本计算单元
205:BIO应用确定单元
206:Bi预测块生成单元
207:包括BIO处理的Bi预测块生成单元
208:Bi预测块选择单元
209:预测块选择单元

Claims (8)

1.一种图像处理装置,包括:
控制单元,其被配置成将处理单元分割成分割处理单元,所述分割处理单元中的每一个均与VPDU大小相当或者等于或小于所述VPDU大小,所述处理单元用于计算用于确定是否执行双向预测的成本;以及
确定单元,其被配置成通过使用基于所述分割处理单元而计算的所述成本来进行所述确定。
2.根据权利要求1所述的图像处理装置,其中,
所述确定单元通过使用按所述分割处理单元中的每一个计算的所述成本来进行所述确定。
3.根据权利要求1所述的图像处理装置,其中,
所述确定单元通过使用针对所述分割处理单元中的第一分割处理单元计算的所述成本,对所述分割处理单元中的所述第一分割处理单元进行所述确定,并且通过使用对所述分割处理单元中的所述第一分割处理单元的确定结果对所述分割处理单元中的其他分割处理单元进行所述确定。
4.根据权利要求1所述的图像处理装置,其中,
所述确定单元通过使用针对所述分割处理单元中的部分区域中的每一个计算的所述成本,来对所述分割处理单元中的每一个进行所述确定。
5.根据权利要求1所述的图像处理装置,其中,
所述确定单元基于对所述分割处理单元中的每一个设置的标志,对所述分割处理单元中的每一个进行所述确定,所述标志指示是否执行所述双向预测。
6.根据权利要求1所述的图像处理装置,其中,
所述双向预测包括采用BIO的双向预测。
7.根据权利要求1所述的图像处理装置,其中,
所述双向预测包括采用FRUC或DMVR的双向预测。
8.一种用于使图像处理装置进行以下操作的图像处理方法:
将处理单元分割成分割处理单元,所述分割处理单元中的每一个均与VPDU大小相当或者等于或小于所述VPDU大小,所述处理单元用于计算用于确定是否执行双向预测的成本;以及
通过使用基于所述分割处理单元而计算的所述成本来进行所述确定。
CN201980085078.9A 2018-12-28 2019-12-16 图像处理装置和方法 Active CN113424530B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018-248147 2018-12-28
JP2018248147 2018-12-28
PCT/JP2019/049090 WO2020137643A1 (ja) 2018-12-28 2019-12-16 画像処理装置および方法

Publications (2)

Publication Number Publication Date
CN113424530A true CN113424530A (zh) 2021-09-21
CN113424530B CN113424530B (zh) 2024-05-24

Family

ID=

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050089235A1 (en) * 2003-10-28 2005-04-28 Satoshi Sakaguchi Intra-picture prediction coding method
US20110002385A1 (en) * 2009-07-01 2011-01-06 Canon Kabushiki Kaisha Image coding apparatus, control method therefor and computer program
CN103843344A (zh) * 2011-10-07 2014-06-04 索尼公司 图像处理装置和方法
CN105981383A (zh) * 2014-02-12 2016-09-28 明达半导体股份有限公司 视频处理方法及装置
US20170347102A1 (en) * 2016-05-25 2017-11-30 Arris Enterprises Llc Weighted angular prediction for intra coding
JP2018029347A (ja) * 2017-09-19 2018-02-22 ソニー株式会社 画像処理装置および方法
CN108781294A (zh) * 2016-02-05 2018-11-09 联发科技股份有限公司 用于视频编解码的基于双向预测光流技术的运动补偿方法及装置
WO2018212110A1 (ja) * 2017-05-19 2018-11-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US20180376166A1 (en) * 2017-06-23 2018-12-27 Qualcomm Incorporated Memory-bandwidth-efficient design for bi-directional optical flow (bio)

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050089235A1 (en) * 2003-10-28 2005-04-28 Satoshi Sakaguchi Intra-picture prediction coding method
US20110002385A1 (en) * 2009-07-01 2011-01-06 Canon Kabushiki Kaisha Image coding apparatus, control method therefor and computer program
CN103843344A (zh) * 2011-10-07 2014-06-04 索尼公司 图像处理装置和方法
CN105981383A (zh) * 2014-02-12 2016-09-28 明达半导体股份有限公司 视频处理方法及装置
CN108781294A (zh) * 2016-02-05 2018-11-09 联发科技股份有限公司 用于视频编解码的基于双向预测光流技术的运动补偿方法及装置
US20170347102A1 (en) * 2016-05-25 2017-11-30 Arris Enterprises Llc Weighted angular prediction for intra coding
WO2018212110A1 (ja) * 2017-05-19 2018-11-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US20180376166A1 (en) * 2017-06-23 2018-12-27 Qualcomm Incorporated Memory-bandwidth-efficient design for bi-directional optical flow (bio)
JP2018029347A (ja) * 2017-09-19 2018-02-22 ソニー株式会社 画像処理装置および方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CHIH-WEI HSU ET AL: "CE1-related: Constraint for binary and ternary partitions", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 11TH MEETING: LJUBLJANA, SI, 10–18 JULY 2018, JVET-K0556-V2, pages 1 - 3 *
HUANBANG CHEN ET AL: "CE9-related: BDOF buffer reduction and enabling VPDU based application", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 13TH MEETING: MARRAKECH, MA, 9–18 JAN. 2019,JVET-M0890-V2, pages 1 - 3 *
KENJI KONDO ET AL: "CE9-2.2: On early termination of BDOF", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 14TH MEETING: GENEVA, CH, 19–27 MARCH 2019,JVET-N0187, pages 1 - 8 *
KENJI KONDO,ET AL: "CE9-related: On early termination for BIO", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 13TH MEETING: MARRAKECH, MA, 9–18 JAN. 2019,JVET-M0073, pages 1 - 5 *
XIAOYU XIU, ET AL: "CE9-related: Complexity reduction and bit-width control for bi-directional optical flow (BIO)", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 12TH MEETING: MACAO, CN, 3–12 OCT. 2018,JVET-L0256_V2, pages 1 - 15 *

Also Published As

Publication number Publication date
JP2024038146A (ja) 2024-03-19
MX2021007180A (es) 2021-08-05
EP3905676A4 (en) 2022-10-26
WO2020137643A1 (ja) 2020-07-02
JPWO2020137643A1 (ja) 2021-11-11
SG11202103292TA (en) 2021-04-29
US20220070447A1 (en) 2022-03-03
JP7414008B2 (ja) 2024-01-16
CA3120750A1 (en) 2020-07-02
JP2024023955A (ja) 2024-02-21
EP3905676A1 (en) 2021-11-03
US20240129459A1 (en) 2024-04-18
BR112021012260A2 (pt) 2021-08-31
AU2019417255A1 (en) 2021-06-10

Similar Documents

Publication Publication Date Title
CN112585966B (zh) 以基于历史的运动向量为基础的帧间预测方法及其装置
US11343541B2 (en) Signaling for illumination compensation
US11082713B2 (en) Method and apparatus for global motion compensation in video coding system
CN112929659B (zh) 用于对图像进行编码或解码的方法和设备
CN110121883B (zh) 在图像编码系统中对图像进行解码的方法和装置
KR101684209B1 (ko) 동화상 복호 장치, 동화상 부호화 장치, 동화상 복호 방법, 및 동화상 부호화 방법
CN113853794A (zh) 用于多个工具的互相排斥设定
CN107005692B (zh) 对视频信号进行解码或编码的方法及设备
JP6272759B2 (ja) 映像情報通知方法及び装置、並びにこれを利用した復号方法及び装置
CN111031323A (zh) 视频信号处理方法
JP2024038146A (ja) 画像符号化装置および方法
WO2019194497A1 (ko) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
JP6962193B2 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化プログラムを記憶する記録媒体
CN113424530B (zh) 图像处理装置和方法
JPWO2019064934A1 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化プログラム
US20230128882A1 (en) Dc down-scaled weighted cost function for image/video coding
WO2023193769A1 (en) Implicit multi-pass decoder-side motion vector refinement
WO2024022146A1 (en) Using mulitple reference lines for prediction
KR20210001768A (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