CN112567755B - 使用合并模式的译码方法、设备、*** - Google Patents

使用合并模式的译码方法、设备、*** Download PDF

Info

Publication number
CN112567755B
CN112567755B CN201980053398.6A CN201980053398A CN112567755B CN 112567755 B CN112567755 B CN 112567755B CN 201980053398 A CN201980053398 A CN 201980053398A CN 112567755 B CN112567755 B CN 112567755B
Authority
CN
China
Prior art keywords
mer
block
current
candidate
coding block
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
Application number
CN201980053398.6A
Other languages
English (en)
Other versions
CN112567755A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN112567755A publication Critical patent/CN112567755A/zh
Application granted granted Critical
Publication of CN112567755B publication Critical patent/CN112567755B/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/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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/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/513Processing of motion vectors
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/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/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/96Tree 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

一种用于标记候选译码块对于译码树单元(CTU)内的当前译码块的合并估计的可用性的装置和方法,该CTU包括多个译码块。最初将候选译码块标记为可用。在候选译码块的预定义位置包括在扩展合并估计区域(MER)内时,将候选译码块标记为不可用。扩展MER包括当前译码块所在的当前MER以及与当前MER邻接的另一MER的至少一部分。预定义位置可以是候选译码块的角的左上或右下(像素)位置。根据预定义位置和当前译码块的角的位置之间的位置关系,确定候选译码块是否位于扩展MER内,该角是左上角、左下角、或右下角。译码块可以基于处理顺序进行贴标签并使用滑动窗口进行分组。在候选译码块和当前译码块在同一组中时,将候选译码块标记为不可用。

Description

使用合并模式的译码方法、设备、***
技术领域
本申请(公开)的实施例总体上涉及视频译码领域,更具体地,涉及使用合并模式的帧间预测的领域。
背景技术
即使描述较短的视频,所需的视频数据量也可能很大,这可能会导致在带宽容量有限的通信网络上流式传输或以其他方式传送数据时产生困难。因此,视频数据在现代电信网络上传送之前通常会被压缩。因为存储资源可能有限,所以在视频存储在存储设备上时,视频的尺寸也可能是个问题。在传输或存储之前,视频数据通常在源处由视频压缩设备使用软件和/或硬件进行编码,从而减少表示数字视频图像所需的数据量。然后,压缩数据在目的地处由对视频数据进行解码的视频解压缩设备接收。由于网络资源有限且对更高视频质量的需求不断增长,需要一种在几乎不牺牲图像质量的情况下提高压缩率的改进的压缩和解压缩技术。高效视频译码是ISO/IEC运动图像专家组和ITU-T视频译码专家组作为ISO/IEC 23008-2 MPEG-H Part 2或ITU-T H.265发布的最新视频压缩技术,并且在相同视频质量级别下,数据压缩率可以提高约一倍,或者可以在相同码率下显著提高视频质量。HEVC开发并采用了几种译码工具,其中一种是合并模式,该模式在帧间预测中用于从空间或时间候选块中估计当前预测块的适当运动矢量(motion vector,MV)。具体而言,在HEVC的合并模式(merge mode)中,合并模式由两部分组成:
第一部分:
合并列表构建,对于待预测的当前块,包括:
(1)***空间候选的运动信息:通过依次检查候选A1(在当前块的左边界的底部)、B1(在上边界的右侧)、B0(在右上方对角邻接)、A0(在左下方对角邻接)、以及B2(在左上方对角邻接),以在合并列表中***最多四个候选;
(2)从两个时间共址块中导出一个时间合并候选;
(3)附加合并候选,包括合并的双向预测候选;以及
(4)零运动矢量候选。
第二部分:
索引信令,选择合并列表中的一个条目作为当前块的运动信息并将其信令通知解码侧,以相应地导出当前预测块的MV。
在HEVC中引入并行合并估计级别,该合并估计级别指示区域,其中,可以通过检查候选块是否位于该合并估计区域(merge estimation region,MER)中来独立导出合并候选列表。同一MER中的候选块不包括在合并候选列表中。因此,在构建列表时不需要该候选块的运动数据。在该级别为例如32时,因为同一32×32MER中所有的合并候选均未***列表,所以32×32区域中所有的预测单元可以并行地构建合并候选列表。
如图6所示,存在具有7个CU(正方形)和10个PU(正方形或矩形)的CTU划分。因为第一PU0的所有潜在合并候选都在第一32×32MER之外,所以这些合并候选都可用。对于第二MER,在该MER内部的合并估计应该独立时,PU 2-6的合并候选列表不能包括来自这些PU的运动数据。因此,例如在看PU5时,没有可用的合并候选,因此未将合并候选***合并候选列表中。在那种情况下,PU5的合并列表仅由时间候选(如果可用)和零MV候选组成。为了使编码器能够权衡并行性和译码效率,并行合并估计级别是自适应的,并在图像参数集中作为log2_parallel_merge_level_minus2信令通知。
在HEVC中,使用四叉树(quad tree,QT)划分,上述划分通常将产生满足以下条件之一的划分(其中N为4、8、16、32、或64)。译码块的所有样本都包含在NxN区域中。NxN区域的所有样本都包含在译码块中。然而,在通用视频译码(versatile video coding,VVC)的最新发展中,由于使用新的划分模式,例如允许二叉树(binary-tree,BT)和三叉树(triple-tree,TT)划分并且允许非正方形划分,并且对候选块是否属于MER的检查不再准确适用,因此不能始终满足合并模式所依赖的那些条件,并且译码性能特别是并行处理劣化,合并估计将受到严重影响。
发明内容
本发明的实施例由独立权利要求的特征限定,并且实施例的其他有利实施方式由从属权利要求的特征限定。
在整个本公开中,术语“候选块”、“潜在候选块”、“候选译码块”、“潜在候选预测块”、以及“潜在候选译码块”被同义地使用。类似地,术语“当前块”、“当前预测块”、以及“当前译码块”也被同义地使用。类似地,术语“译码树单元(coding tree unit,CTU)”和“译码树块(coding tree block,CTB)”也被同义地使用。
本申请(或本公开)的实施例提供了用于对图像进行编码和解码的帧间预测装置和方法,上述装置和方法可以减轻甚至消除上述问题。
根据本公开的一方面,提供了一种用于标记候选译码块对于译码树单元(CTU)内的当前译码块的合并估计的可用性的装置,其中,该装置包括:处理电路,用于:将候选译码块标记为可用;在候选译码块的预定义位置包括在扩展合并估计区域(merge estimationregion,MER)内时,将候选译码块标记为不可用,其中,扩展MER包括当前译码块所在的当前MER以及与当前MER邻接的另一MER的至少一部分。
这可以提供以下优点:即使由于使用BT和/或TT而将CTU划分为不规则图案(非正方形译码块),也可以对候选块执行合并估计,从而可以在候选块被标记为不可用时并行处理该候选块。此外,使用扩展MER可以提供优点:扩展MER中的候选块可以部分覆盖当前块的当前MER。特别是在QT与BT和/或TT划分混合时,使合并估计更灵活。
在一个示例性实施方式中,可以最初将候选译码块标记为可用。这表示在合并估计之前,所有候选译码块都可用于预测当前译码块(默认设置/初始化)。换句话说,在构建当前译码块的合并候选列表之前,将候选块标记为可用。
在另一示例性实施方式中,将候选块标记为可用与条件标记相关。这表示不满足将候选块标记为不可用的条件(MER条件),则将候选块标记为可用。
以上两个示例性实施方式对于将候选块标记为可用或不可用的顺序而言为替代方案。第一示例性实施例是在后续检查MER条件之前默认地将候选块标记为可用的选项。第二示例性实施例是根据是否满足一个或多个MER条件对候选块进行可用-不可用标记的选项。
在第三示例性实施方式中,可以最初将候选块标记为可用或不可用。在这种情况下,如果满足MER条件,则可以将最初标记为可用的候选块标记为不可用。进而,如果不满足MER条件,则可以将最初标记为不可用的候选块标记为可用。
根据本公开的一方面,标记候选译码块包括:获取当前译码块的左上像素的坐标(X,Y);获取候选译码块中的特定点的坐标(X2,Y2)作为预定义位置;通过将特定点的坐标和左上像素的坐标进行比较,确定特定点是否位于扩展MER内;如果特定点位于扩展MER内,则将候选译码块标记为不可用。
候选块和/或当前块的特定点和/或角的坐标系可以沿水平轴(x方向/轴)从左(负x)到右(正x)并沿垂直轴(y方向/轴,重力轴)从上(负y)到下(正y)。坐标x,y可以以像素为单位。像素也指样本。这表示x=10和/或y=-5的值对应于沿x轴正方向(右)10像素/样本并沿y轴负方向(上)5像素/样本。
根据本公开的一方面,该特定点是候选译码块的左上像素,确定该特定点是否位于扩展MER内包括:如果满足以下任何条件,则将候选译码块标记为不可用:如果[X-1,Y]和[X,Y]在当前MER中,并且X2<X,Y2>=Y;或如果[X,Y-1]和[X,Y]在当前MER中,并且Y2<Y,X2>=X;或如果[X-1,Y-1]和[X,Y]在当前MER中,并且Y2<Y,X2<X。
根据本公开的一方面,该特定点是候选译码块的右下像素,确定该特定点是否位于扩展MER内包括:如果满足以下任何条件,则将候选译码块标记为不可用:如果[X-1,Y]和[X,Y]在当前MER中,并且X2<X,Y2>=Y;或如果[X,Y-1]和[X,Y]在当前MER中,并且Y2<Y,X2>=X;或如果[X-1,Y-1]和[X,Y]在当前MER中,并且Y2<Y,X2<X。
由于MER条件不仅检查特定点和当前块角之间的位置关系,还检查当前块角(X,Y)及其移位一个像素/样本后的位置之间的位置关系,所以这可以提供更准确地执行合并估计的优点。此外,使用左上像素或右下像素作为特定点可以提供使合并估计更灵活的优点。
本发明的以下任何方面可以提供相同或相似的优点。
根据本公开的一方面,标记候选译码块包括:获取当前译码块的角的坐标(x,y);获取特定点的坐标(x+a,y+b)作为预定义位置,其中,a∈(-1,0,1),b∈(-1,0,1),a和b是根据特定点和角之间的相对位置关系选择的;对于一个候选译码块,从(-1,0,1)中选择一个值作为a,从(-1,0,1)中选择一个值作为b;如果floor((x+a)/mer_width)等于floor(x/mer_width),或如果floor((y+b)/mer_width)等于floor(y/mer_height),则将候选译码块标记为不可用,其中,mer_width是当前MER的宽度,mer_height是当前MER的高度。
floor(向下取整)函数将实数X作为输入,并输出小于或等于X的最大整数。
根据本公开的一方面,候选译码块与当前译码块的角相邻,并且当前译码块的角是左下角,候选译码块位于当前译码块的左方,a=-1,b=0;或当前译码块的角是左下角,候选译码块位于当前译码块的左下方,a=-1,b=1;或当前译码块的角是左上角,候选译码块位于当前译码块的左上方,a=-1,b=-1;或当前译码块的角是右上角,候选译码块位于当前译码块的右上方,a=1,b=-1;或当前译码块的角是右上角,候选译码块位于当前译码块的上方,a=0,b=-1。
根据本公开的一方面,标记候选译码块包括:获取当前译码块的角的坐标(x,y);获取特定点的坐标(x+a,y+b)作为预定义位置,其中,潜在候选译码块与当前译码块的角相邻,并且a∈(-1,0,1),b∈(-1,0,1),其中,a和b不均等于0或1,并且a和b是根据特定点和角之间的相对位置关系选择的,对于一个候选译码块,从(-1,0,1)中选择一个值作为a,从(-1,0,1)中选择一个值作为b;如果floor((x+a)/mer_width)等于floor(x/mer_width),并且floor((y+b)/mer_height)>=floor(y/mer_height),或如果floor((y+b)/mer_height)等于floor(y/mer_height),并且floor((x+a)/mer_width)>=floor(x/mer_width),则将候选译码块标记为不可用,其中,mer_height是当前MER的高度,mer_width是当前MER的宽度。
这可以提供以下优点:通过根据与当前块相邻的候选块之间的位置关系选择a和/或b的值来提高合并估计的精度。此外,与一个或两个轴向相关的MER条件可以提供使合并估计更灵活的优点。这表示例如,关于BT和/或TT划分,无论是以均质(homogeneous)还是非均质(non-homogeneous)方式对CTU进行水平或垂直划分,都可以对合并估计进行调优。
根据本公开的一方面,标记候选译码块包括:获取当前译码块的角的坐标(x,y);获取特定点的坐标(x1,y1)作为预定义位置,其中,特定点是候选译码块的右下角或左上角;如果floor(x1/mer_width)等于floor(x/mer_width),或如果floor(y1/mer_height)等于floor(y/mer_height),则将候选译码块标记为不可用,其中,mer_height是当前MER的高度,mer_width是当前MER的宽度。
根据本公开的一方面,标记候选译码块包括:获取当前译码块的角的坐标(x,y);获取特定点的坐标(x1,y1)作为预定义位置,其中,特定点是候选译码块的右下角或左上角;如果floor(x1/mer_width)等于floor(x/mer_width),并且floor(y1/mer_height)>=floor(y/mer_height),或如果floor(y1/mer_height)等于floor(y/mer_height),并且floor(x1/mer_width)>=floor(x/mer_width),则将候选译码块标记为不可用,其中,mer_height是当前MER的高度,mer_width是当前MER的宽度。
根据本公开的一方面,标记候选译码块包括:获取当前译码块的角的坐标(X,Y);获取特定点的坐标(X2,Y2)作为预定义位置,其中,特定点是候选译码块的右下角;如果满足以下任何条件,则将候选译码块标记为不可用:如果floor(X2/mer_width)等于floor(X/mer_width),并且floor(Y2/mer_height)>=floor(Y/mer_height);和/或如果floor(Y2/mer_height)等于floor(Y/mer_height),并且floor(X2/mer_width)>=floor(X/mer_width);其中,mer_height是当前MER的高度,mer_width是当前MER的宽度。
根据本公开的一方面,标记候选译码块包括:获取当前译码块的角的坐标(X,Y);获取特定点的坐标(X2,Y2)作为预定义位置,其中,特定点是候选译码块的右下角;如果满足以下任何条件,则将候选译码块标记为不可用:如果X2/mer_width等于X/mer_width,并且Y2/mer_height>=Y/mer_height;和/或如果Y2/mer_height等于Y/mer_height,并且X2/mer_width>=X/mer_width;其中,mer_height是当前MER的高度,mer_width是当前MER的宽度。
根据本公开的一方面,标记候选译码块包括:获取当前译码块的角的坐标(X,Y);获取特定点的坐标(X2,Y2)作为预定义位置,其中,特定点是候选译码块的右下角;如果满足以下任何条件,则将候选译码块标记为不可用:如果X2>>log2_mer_width等于X>>log2_mer_width,并且Y2>>log2_mer_height>=Y>>log2_mer_height;和/或如果Y2>>log2_mer_height等于Y>>log2_mer_height,并且X2>>log2_mer_width>=X>>log2_mer_width;其中,log2_mer_height是当前MER的高度的二进制对数,log2_mer_width是当前MER的宽度的二进制对数。
运算符“>>”表示算术右移运算(arithmetic right-shift operation)。本公开的以上不同方面的各种形式的MER条件可以提供以下优点:特别是在以混合方式使用QT、TT、和/或BT的情况下,针对使用的划分模式调整和优化合并估计。
根据本公开的一方面,提供了一种用于标记候选译码块对于译码树单元(CTU)内的当前译码块的合并估计的可用性的装置,其中,该装置包括:处理电路,用于:将候选译码块标记为可用;基于处理顺序,对包括当前译码块和候选译码块的CTU的译码块贴标签;通过应用长度为K的滑动窗口形成一组译码块;确定候选译码块和当前译码块是否属于同一组译码块;如果候选译码块和当前译码块属于同一组译码块,则将该候选译码块标记为不可用。
将候选块标记为可用是指最初将块标记为可用。这表示在合并估计开始时,可以默认地将所有候选块标记为可用于当前译码块的预测。
根据本公开的一方面,贴标签包括:使用等于或大于零的整数递增地对译码块贴标签,并且K与处理顺序相关。
例如,假设处理顺序为A–>B–>C–>D–>E–>F,则可以用递增的整数以1为增量将6个译码块贴标签为{0,1,2,3,4,5}。例如,对于长度为K=3的滑动窗口,可以基于整数标签和K将6个译码块分为两组,第一组包括译码块{0,1,2},第二组包括译码块{3,4,5}。
这可以提供以下优点:使用译码块的处理顺序快速地对候选块执行合并估计。因此,这是在由于使用BT和/或TT而对CTU进行不规则划分时,在VVC中并行地执行译码块的合并估计的替代方案。
在这种情况下,MER区域基于包括一个或多个译码块的组,这些译码块作为一个组形成基于处理顺序贴标签形成的MER区域。
根据本公开的一方面,贴标签包括:使用译码块的跨越面积(spanning area)递增地对译码块贴标签,其中,跨越面积是基于译码块包含的样本数计数的,并且K与面积相关。
参考以上示例,这表示滑动窗口的长度K现在与面积相关,例如,K=128对应于该区域的像素/样本数。例如,将(像素/样本)面积用作图18所示的每个译码块的标签。对于这些译码块,结合处理顺序A–>B–>C–>D–>E–>F,具有标签64、96、128的译码块形成第一组,具有标签192、224、256的块形成第二组。
在这种情况下,MER区域基于包括一个或多个译码块的组,这些译码块作为一个组形成基于(像素)面积贴标签形成的MER区域。这可以提供以下优点:MER区域在覆盖区域方面更均衡。这表示通过使用基于像素面积的长度为K的滑动窗口,可以创建包含大约相同数量的样本的并行处理区域。然而,区域中的样本数可能并不总是完全相同。因此,使用“区域”K可以提供更简单且因此更廉价的硬件实现的优点。
根据本公开的一方面,处理电路还用于:从标记为可用的候选译码块中导出运动矢量候选(motion vector candidate,MVC);通过参考MVC对当前译码块进行编码。
根据本公开的一方面,提供了一种用于对译码树单元(CTU)内的当前译码块进行编码的编码器,该编码器包括用于生成预测候选列表的候选列表生成器、预测单元、以及压缩单元,候选列表生成器包括根据本公开的以上任何方面的用于标记候选译码块对于CTU内的当前译码块的合并估计的可用性的装置;预测单元用于根据生成的列表中的至少一个预测候选确定当前译码块的预测;压缩单元用于使用当前译码块的预测对当前译码块进行编码。
根据本公开的一方面,提供了一种用于对译码树单元(CTU)内的当前译码块进行解码的解码器,该解码器包括用于生成预测候选列表的候选列表生成器、预测单元、以及解压缩单元,候选列表生成器包括根据本公开的以上任何方面的用于标记候选译码块对于CTU内的当前译码块的合并估计的可用性的装置;预测单元用于根据生成的列表中的至少一个预测候选确定当前译码块的预测;解压缩单元用于使用当前译码块的预测对当前译码块进行解码。
根据本公开的一方面,根据本公开的以上任何方面的编码器和/或解码器,该预测候选列表是运动矢量(motion vector,MV)列表。
该列表可以是以特定方向、平面、和/或DC定向的帧内预测模式的列表。
根据本公开的一方面,提供了一种用于标记候选译码块对于译码树单元(CTU)内的当前译码块的合并估计的可用性的方法,该方法包括以下步骤:将候选译码块标记为可用;在候选译码块的预定义位置包括在扩展合并估计区域(MER)内时,将候选译码块标记为不可用,其中,扩展MER包括当前译码块所在的当前MER以及与当前MER邻接的另一MER的至少一部分。
根据本公开的一方面,提供了一种用于标记候选译码块对于译码树单元(CTU)内的当前译码块的合并估计的可用性的方法,该方法包括以下步骤:将候选译码块标记为可用;基于处理顺序,对包括当前译码块和候选译码块的CTU的译码块贴标签;通过应用长度为K的滑动窗口形成一组译码块;确定候选译码块和当前译码块是否属于同一组译码块;如果候选译码块和当前译码块属于同一组译码块,则将候选译码块标记为不可用。
根据本公开的一方面,提供了一种用于存储程序的计算机可读非暂时性介质,该程序包括指令,该指令在处理器上执行时使处理器执行根据前述方法中的任何一种的方法。
通过以上提供的本公开,可以在合并估计期间并行处理更多译码块,因此提高了译码/解码技术特别是VVC的性能。
为了清楚起见,在本公开的范围内,前述实施例中的任何实施例可以与其他前述实施例中的任何一个或多个实施例组合以创建新的实施例。
通过结合附图和权利要求的以下具体实施方式,将更清楚地理解这些特征和其他特征。
附图说明
为了更透彻地理解本公开,现在结合附图和具体实施方式参考以下简要描述,在附图中,相似的附图标记表示相似的部分:
图1A是示出可以实现本发明实施例的示例译码***的框图。
图1B是示出可以实现本发明实施例的另一示例译码***的框图。
图2是示出可以实现本发明实施例的示例视频编码器的框图。
图3是示出可以实现本发明实施例的视频解码器的示例的框图。
图4是网络设备的示意图。
图5是根据示例性实施例的可以用作图1A中的源设备12和/或目的地设备14的装置500的简化框图。
图6示出了合并估计期间基于MER的候选块可用性状态。
图7至图9是基于VVC中允许的划分模式的划分结果。
图10示出了使用四叉树-二叉树(QTBT)结构的块划分的示例的图。
图11示出了与图10的使用QTBT结构的块划分对应的树结构的示例的图。
图11a示出了水平三叉树划分类型的示例的图。
图11b示出了垂直三叉树划分类型的示例的图。
图12示出了空间域和时间域中的潜在合并估计译码块。
图13示出了本公开的象限划分的示例的图。
图14示出了应用本公开的MER的块划分的示例的图。
图15是示出根据本公开的对潜在合并估计译码块的可用性检查的工作流程。
图16示出了应用图15的可用性检查的贴标签的块划分的示例的图。
图17是示出根据本公开的对潜在合并估计译码块的可用性检查的工作流程。
图18示出了应用图17的可用性检查的贴标签的块划分的示例的图。
图19示出了与当前块及其空间相邻块有关的示例。
图20示出了与第六解决方案有关的示例。
图20A示出了落入当前块周围的相邻块将被标记为不可用的示例。
图20B示出了落入当前块周围的相邻块将被标记为不可用的另一示例。
图21示出了进行合并估计以消除并行处理限制的示例。
图22示出了确定相邻块的可用性的示例
图23示出了解决方案12的流程图的示例。
具体实施方式
在以下描述中,参考了附图,这些附图形成了本公开的一部分,并且通过说明的方式示出了本发明的实施例的特定方面或其中可以使用本发明的实施例的特定方面。应该理解,本发明的实施例可以用在其他方面,并且包括在附图中未示出的结构或逻辑变化。因此,以下具体实施方式不应被视为限制性的,并且本发明的范围由所附权利要求限定。
例如,应当理解,与所描述的方法有关的公开对于配置为执行该方法的相应设备或***也可以成立,反之亦然。例如,如果描述了一个或多个特定的方法步骤,则对应的设备可以包括一个或多个单元(例如,功能单元)以执行所述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元各自执行多个步骤中的一个或多个),即使这样的一个或多个单元未在附图中明确描述或示出。另一方面,例如,如果基于一个或多个单元(例如,功能单元)来描述特定装置,则相应的方法可以包括执行一个或多个单元的功能的一个步骤(例如,执行一个或多个单元的功能的一个步骤,或分别执行一个或多个单元的功能的多个步骤),即使在附图中没有明确地描述或示出这样的一个或多个步骤。此外,应理解,除非另外特别指出,否则本文描述的各种示例性实施例和/或方面的特征可以彼此组合。
首先应理解,虽然以下提供了一个或多个实施例的示例性实施方式,但是公开的***和/或方法可以使用任何数量的当前已知或现有的技术实现。本公开不应限于以下示出的示例性实施方式、附图、以及技术,包括本文示出和描述的示例性设计和实施方式,而是可以在所附权利要求的范围及其等同物的全部范围内进行修改。
如前所述,当不再像HEVC中那样基于QT划分对译码块进行划分时,而是像VVC中那样基于BT或TT进行划分时,因为使用BT和/或TT产生的编码块的新划分图案不再符合依赖于译码块的方形图案划分的HEVC条件,所以合并模式的HEVC条件可能不再合适和/或可能不再满足。换句话说,非正方形图案不符合HEVC条件,因此不再能够准确地执行对候选块(即候选译码块)是否属于MER的检查,或者在最坏的情况下甚至无法进行这种检查。因此,译码性能特别是合并估计的并行处理可能严重劣化。
为了说明结合BT和/或TT划分在VVC中应用HEVC条件时出现的上述冲突,选择了三种不同场景来示例性示出HEVC中的基于MER的合并估计如何影响通用视频译码(versatilevideo coding,VVC)中的合并估计的并行性。
场景1:
图7示出了基于VVC中允许的划分模式的划分结果。如果blk1(A)的左上样本和blk2(B)的左上样本在同一MER(N×N网格)中,则在处理顺序为blk1→blk2的情况下,将blk1的运动信息设置为不可用于blk2的预测。基于HEVC中基于MER的估计,译码块A、B、C、D的四种预测依赖性为:
可以从B预测C。
可以从C预测D。
可以从A预测B。
无法从A预测C。
然而,基于HEVC,在进行顺序为A→B→C→D的情况下,这些译码块对中的任何一对均不能并行处理。
根据HEVC规则,如果两个块的左上角坐标在同一MER中,则认为这两个块在同一MER中。因为块B和块A在不同的MER中,所以可以从块A预测块B。因此,块B需要等待块A可用,所以不能并行处理块A和块B。因为块C和块D在不同的MER中,所以可以从块C预测块D。因此,不能并行处理块C和块D。因为块A和块C在同一MER中,所以无法从块A预测块C。然而,因为可以从块B预测块C,并且可以从块A预测块B,所以仍然不能并行处理C和A。因此,在场景1中,无法并行处理那些译码块,这将耗费更多的译码时间对那些译码块中的每个译码块进行合并估计。
场景2:
图8示出了基于VVC中允许的划分模式的另一划分结果,其中,在处理顺序为A→B→C→D→E→F的情况下,只有译码块A和译码块B可以并行处理。根据HEVC规则,如果两个块的左上角坐标在同一MER中,则认为这两个块在同一MER中。因此,译码块C和译码块E可以并行处理。相比之下,在这种情况2中,因为可以从译码块D预测译码块E,并且可以从译码块C预测译码块D,这导致后一个译码块将等待,直到根据处理顺序的前一个译码块的MV可用为止,所以虽然译码块C和译码块E在同一MER中,但是不能并行处理译码块C和译码块E。因此,在场景2中,限制了对那些译码块的并行处理,这仍将耗费更多的译码时间对那些译码块进行合并估计。
场景3:
图9示出了基于VVC中允许的划分模式的另一划分结果,其中,每对译码块均不能并行处理。基于HEVC规则,不能从译码块A预测译码块C,但是因为可以从译码块B预测译码块C,并且可以从译码块A预测译码块B,所以仍不能并行处理译码块C和译码块A。基于HEVC规则,不能从译码块B预测译码块D,但是因为可以从译码块B预测译码块C,并且可以从译码块C预测译码块D,所以仍不能并行处理译码块B和译码块D。因此,类似于场景2,在场景3中,无法并行处理那些译码块,这将耗费更多的译码时间对那些译码块中的每个译码块进行合并估计。
本公开提供了一种由解码设备实现的译码方法,该方法用于标记潜在候选译码块对于当前译码块的合并估计的可用性。该方法包括:获取潜在候选译码块中的特定点的坐标和当前译码块的左上像素的坐标;通过将潜在候选译码块中的特定点的坐标和当前译码块的左上像素的坐标进行比较,确定潜在候选译码块中的特定点的坐标是否位于当前译码块的左上像素所在的合并估计区域(MER)内,其中,该坐标系由指向右手方向并标记为X的水平轴和指向重力方向并标记为Y的垂直轴组成,潜在候选译码块中的特定点的坐标表示为(X2,Y2),当前译码块的左上像素的坐标表示为(X,Y);如果潜在候选译码块中的特定点的坐标位于合并估计区域(MER)内,则将潜在候选译码块标记为不可用。
潜在候选译码块中的特定点是潜在候选译码块的左上像素或右下像素,根据以下任何规则确定潜在候选译码块中的特定点的坐标是否位于MER内:如果[X-1,Y]和[X,Y]在MER中,并且X2<X,Y2>=Y,则将潜在候选译码块设置为不可用;如果[X,Y-1]和[X,Y]在MER中,并且Y2<Y,X2>=X,则将潜在候选译码块设置为不可用;如果[X-1,Y-1]和[X,Y]在MER中,并且Y2<Y和X2<X,则将潜在候选译码块设置为不可用。
本公开还提供一种由解码设备实现的译码方法,该方法用于标记潜在候选译码块对于当前译码块的合并估计的可用性,该方法包括:基于处理顺序递增地对译码块贴标签;对译码块应用长度为K的滑动窗口以形成一组译码块;确定潜在候选译码块和当前译码块是否属于同一组译码块;在潜在候选译码块和当前译码块属于同一组译码块时,将潜在候选译码块标记为不可用。或者,可以通过基于处理顺序使用从零开始的自然数或通过基于处理顺序使用译码块的跨越面积来递增地对译码块贴标签,并且译码块的跨越面积是基于译码块包含的像素数计数的。
本公开提供一种用于标记潜在候选译码块对于当前译码块的合并估计的可用性的装置和方法。
该方法包括:基于预定义原则,自适应地获取当前译码块的坐标(x,y)和潜在候选译码块中的特定点的坐标,该预定义原则是基于潜在候选译码块内和当前译码块内的两个相应点的接近度做出的,其中,潜在候选译码块中的特定点的坐标是(x1,y1),如果floor(x1/mer_width)等于floor(x/mer_width),或如果floor(y1/mer_height)等于floor(y/mer_height),则将潜在候选译码块标记为不可用,其中,mer_width是合并估计区域(MER)的宽度,mer_height是MER的高度,该函数将实数X作为输入,并输出小于或等于X的最大整数。
具体地,该方法包括:获取当前译码块的角的坐标(x,y)和潜在候选译码块中的特定点的坐标,其中,潜在候选译码块中的特定点的坐标是(x+a,y+b),a∈(-1,0,1),b∈(-1,0,1),a和b是根据潜在候选译码块和当前译码块之间的相对位置关系选择的,对于一个潜在候选译码块,从(-1,0,1)中选择一个值作为a,从(-1,0,1)中选择一个值作为b;如果floor((x+a)/mer_width)等于floor(x/mer_width),或如果floor((y+b)/mer_height)等于floor(y/mer_height),则将潜在候选译码块标记为不可用,其中,mer_width是合并估计区域(MER)的宽度,mer_height是MER的高度,该函数将实数X作为输入,并输出小于或等于X的最大整数。
或者,本公开还提供一种由解码设备实现的译码方法,该方法用于标记潜在候选译码块对于当前译码块的合并估计的可用性。该方法包括:获取当前译码块的角的坐标(x,y)和潜在候选译码块中的特定点的坐标,其中,潜在候选译码块中的特定点的坐标是潜在候选译码块的右下角或潜在候选译码块的左上角的坐标(x1,y1);如果floor(x1/mer_width)等于floor(x/mer_width)或如果floor(y1/mer_height)等于floor(y/mer_height),则将潜在候选译码块标记为不可用,其中,mer_width是合并估计区域(MER)的宽度,mer_height是MER的高度,该函数将实数X作为输入,并输出小于或等于X的最大整数。
或者,可以将用于将潜在候选译码块标记为不可用的条件扩展为:如果floor((x+a)/mer_width)等于floor(x/mer_width)并且floor((y+b)/mer_height)>=floor(y/mer_height);或如果floor((y+b)/mer_height)等于floor(y/mer_height)并且floor((x+a)/mer_width)>=floor(x/mer_width)。
或者,可以将用于将潜在候选译码块标记为不可用的条件扩展为:如果floor(x1/mer_width)等于floor(x/mer_width)并且floor(y1/mer_height)>=floor(y/mer_height);或如果floor(y1/mer_height)等于floor(y/mer_height)并且floor(x1/mer_width)>=floor(x/mer_width)。
或者,本公开还提供了一种由编码/解码设备实现的译码方法,该方法用于标记潜在候选译码块对于当前译码块的合并估计的可用性。该方法包括:获取当前译码块的角的坐标(x,y)和潜在候选译码块中的特定点的坐标,其中,潜在候选译码块中的特定点的坐标是(x+a,y+b),a∈(-1,0,1),b∈(-1,0,1),a和b是根据潜在候选译码块和当前译码块之间的相对位置关系选择的,对于一个潜在候选译码块,从(-1,0,1)中选择一个值作为a,从(-1,0,1)中选择一个值作为b;在(x,y)和(x+a,y+b)位于一个合并估计区域(MER)内,并且当前译码块的cqtDepth大于或等于阈值时,将潜在候选译码块标记为不可用,其中,cqtDepth是决定当前译码块所属的译码树块的四叉树划分深度的参数。或者,如果潜在候选译码块来自历史列表,则潜在候选译码块中的特定点的坐标是潜在候选译码块的左上角或潜在候选译码块的右下角的坐标(x1,y1)。
图1A是示出可以利用双向预测技术的示例译码***10的框图。如图1A所示,译码***10包括源设备12,该源设备12提供编码视频数据,该编码视频数据稍后将由目的地设备14进行解码。具体而言,源设备12可以通过计算机可读介质16向目的地设备14提供视频数据。源设备12和目的地设备14可以包括以下多种设备中的任何设备,包括台式电脑、笔记本电脑(即膝上型电脑)、平板电脑、机顶盒、“智能”电话等手机、“智能”平板、电视机、照相机、显示设备、数字媒体播放器、视频游戏机、视频流设备等。在一些情况下,可以配备源设备12和目的地设备14用于无线通信。
目的地设备14可以通过计算机可读介质16接收待解码的编码视频数据。计算机可读介质16可以包括能够将编码视频数据从源设备12转移到目的地设备14的任何类型的介质或设备。在一个示例中,计算机可读介质16可以包括通信介质,以使源设备12能够直接向目的地设备14实时发送编码视频数据。编码视频数据可以根据无线通信协议等通信标准进行调制,并且可以发送到目的地设备14。通信介质可以包括任何无线通信介质或有线通信介质,例如射频(radio frequency,RF)频谱或一个或多个物理传输线。通信介质可以形成局域网、广域网、或诸如互联网之类的全球网络等分组网络的一部分。通信介质可以包括路由器、交换机、基站、或可用于促进源设备12到目的地设备14的通信的任何其他设备。
在一些示例中,编码数据可以从输出接口22输出到存储设备。类似地,可以通过输入接口从存储设备访问编码数据。存储设备可以包括多种分布式或本地访问的数据存储介质中的任何一种,例如硬盘驱动器、蓝光光盘、数字视频光盘(digital video disk,DVD)、光盘只读存储器(compact disc read-only memory,CD-ROM)、闪存、易失性或非易失性存储器、或用于存储编码视频数据的任何其他合适的数字存储介质。在另一示例中,存储设备可以对应于文件服务器或可存储由源设备12生成的编码视频的另一中间存储设备。目的地设备14可通过流式传输或下载从存储设备中访问存储的视频数据。文件服务器可以是能够存储编码视频数据并将编码视频数据发送到目的地设备14的任何类型的服务器。示例文件服务器包括网络服务器(例如用于网站)、文件传输协议(file transfer protocol,FTP)服务器、网络附加存储(network attached storage,NAS)设备、或本地磁盘驱动器。目的地设备14可以通过包括互联网连接在内的任何标准数据连接来访问编码视频数据。这些数据连接可以包括适合于访问存储在文件服务器上的编码视频数据的无线信道(例如Wi-Fi连接)、有线连接(例如数字用户线路(digital subscriber line,DSL)、电缆调制解调器等)、或无线信道和有线连接的组合。来自存储设备的编码视频数据的传输可以是流式传输、下载传输、或流式传输和下载传输的组合。
本公开的技术不限于无线应用或设置。这些技术可应用于视频译码以支持各种多媒体应用中的任何一种,例如空中电视广播、有线电视传输、***传输、互联网流式视频传输,例如基于HTTP的动态自适应流式传输(dynamic adaptive streaming over HTTP,DASH)、编码到数据存储介质上的数字视频、存储在数据存储介质上的数字视频的解码、或其他应用。在一些示例中,译码***10可以用于支持单向或双向视频传输,以支持视频流式传输、视频回放、视频广播、和/或视频电话等应用。
在图1A的示例中,源设备12包括视频源18、视频编码器20、以及输出接口22。目的地设备14包括输入接口28、视频解码器30、以及显示设备32。根据本公开,源设备12中的视频编码器200和/或目的地设备14中的视频解码器300可以用于应用双向预测技术。在其他示例中,源设备和目的地设备可以包括其他组件或布置。例如,源设备12可以从外部摄像机等外部视频源接收视频数据。同样,目的地设备14可以与外部显示设备连接,而不包括集成显示设备。
图1A所示的译码***10仅是一个示例。双向预测技术可以由任何数字视频编码和/或解码设备来执行。尽管本发明的技术通常由视频译码设备执行,但这些技术还可以由通常称为“CODEC”的视频编码器/解码器执行。此外,本公开的技术也可以由视频预处理器执行。视频编码器和/或解码器可以是图形处理器(graphics processing unit,GPU)或类似设备。
源设备12和目的地设备14仅是以下这种译码设备的示例:其中,源设备12生成编码视频数据以传输到目的地设备14。在一些示例中,源设备12和目的地设备14可以以基本对称的方式操作,使得源设备12和目的地设备14各自包括视频编码组件和视频解码组件。因此,译码***10可以支持视频设备12与视频设备14之间的单向或双向视频传输,例如以进行视频流式传输、视频回放、视频广播、或视频电话。
源设备12中的视频源18可以包括视频捕获设备(例如摄像机)、包含先前捕获的视频的视频档案库、和/或用于从视频内容提供商接收视频的视频馈送接口。在另一替代方案中,视频源18可以生成基于计算机图形的数据作为源视频,或者生成直播视频、存档视频、以及计算机生成视频的组合。
在一些情况下,当视频源18是摄像机时,源设备12和目的地设备14可以形成所谓的拍照手机或视频手机。然而,如上所述,本公开中描述的技术通常可以应用于视频译码,并且可以应用于无线应用和/或有线应用。在每种情况下,可以由视频编码器20对捕获、预捕获、或计算机生成的视频进行编码。然后,可以由输出接口22将编码视频信息输出到计算机可读介质16上。
计算机可读介质16可以包括无线广播或有线网络传输等暂时性介质,或硬盘、闪存驱动器、光盘、数字视频光盘、蓝光光盘、或其他计算机可读介质等存储介质(即非暂时性存储介质)。在一些示例中,网络服务器(未示出)可以从源设备12接收编码视频数据并且例如通过网络传输将编码视频数据提供给目的地设备14。类似地,光盘冲压设施等媒体生产设施的计算设备可以从源设备12接收编码视频数据,并且产生包含该编码视频数据的光盘。因此,在各种示例中,计算机可读介质16可理解为包括各种形式的一个或多个计算机可读介质。
目的地设备14的输入接口28从计算机可读介质16接收信息。计算机可读介质16的信息可以包括由视频编码器20定义并由视频解码器30使用的语法信息,该语法信息包括描述块和其他编码单元(例如图像组(group of picture,GOP))的特征和/或处理的语法元素。显示设备32向用户显示解码视频数据,并且可以包括多种显示设备中的任何一种,例如阴极射线管(cathode ray tube,CRT)、液晶显示器(liquid crystal display,LCD)、等离子显示器、有机发光二极管(organic light emitting diode,OLED)显示器、或其他类型的显示设备。
视频编码器200和视频解码器300可以根据目前正在开发的高效视频译码(highefficiency video coding,HEVC)标准等视频译码标准操作,并且可以符合HEVC测试模型(HEVC test model,HM)。或者,视频编码器200和视频解码器300的操作可以根据其他专有或行业标准,例如国际电信联盟电信标准化部门(international telecommunicationsunion telecommunication standardization sector,ITU-T)的H.264标准(或称为运动图像专家组(motion picture expert group,MPEG)-4,第10部分,高级视频编码(advancedvideo coding,AVC),H.265/HEVC)或这些标准的扩展。然而,本公开的技术不限于任何特定的译码标准。视频译码标准的其他示例包括MPEG-2和ITU-T H.263。尽管在图1A中未示出,但是在一些方面,视频编码器200和视频解码器300可以分别与音频编码器和音频解码器集成并且可以包括适当的复用器-解复用器(multiplexer-demultiplexer,MUX-DEMUX)单元或其他硬件及软件,以对公共数据流或单独数据流中的音频和视频进行编码处理。如果适用,MUX-DEMUX单元可以符合ITU H.223复用器协议或用户数据报协议(user datagramprotocol,UDP)等其他协议。
视频编码器200和视频解码器300可以各自实施为各种合适的编码器电路中的任何一种,例如一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)、离散逻辑、软件、硬件、固件、或其任何组合。当这些技术部分地在软件中实施时,设备可以将软件的指令存储在合适的非暂时性计算机可读介质中,并且使用一个或多个处理器在硬件中执行这些指令,从而执行本公开的技术。视频编码器200和视频解码器300可以各自包括在一个或多个编码器或解码器中,其中,这两者中的任何一个可以作为组合式编码器/解码器(combined encoder/decoder,CODEC)的一部分集成在相应设备中。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器、和/或蜂窝电话等无线通信设备。
图1B是根据示例性实施例的包括图2的编码器200和/或图3的解码器300的示例视频译码***40的直观图。***40可以实现本申请的技术,例如帧间预测中的合并估计。在所示的实施方式中,视频译码***40可以包括成像设备41、视频编码器20、视频解码器300(和/或经由处理单元46的逻辑电路47实现的视频译码器)、天线42、一个或多个处理器43、一个或多个存储器44、和/或显示设备45。
如图所示,成像设备41、天线42、处理单元46、逻辑电路47、视频编码器20、视频解码器30、处理器43、存储器44、和/或显示设备45可能能够相互通信。如所讨论的,虽然示出了视频编码器200和视频解码器30,但是在各种实际情况下,视频译码***40可以只包括视频编码器200或只包括视频解码器300。
如图所示,在一些示例中,视频译码***40可以包括天线42。天线42可以用于例如发送或接收视频数据的编码位流。此外,在一些示例中,视频译码***40可以包括显示设备45。显示设备45可以用于呈现视频数据。如图所示,在一些示例中,逻辑电路54可以经由处理单元46实现。处理单元46可以包括专用集成电路(ASIC)逻辑、图形处理器、通用处理器等。视频译码***40还可以包括可选的处理器43,类似地,处理器43可以包括专用集成电路(ASIC)逻辑、图形处理器、通用处理器等。在一些示例中,逻辑电路54可以经由硬件、视频译码专用硬件等实现,并且处理器43可以实现通用软件、操作***等。此外,存储器44可以是任何类型的存储器,例如易失性存储器(例如,静态随机存取存储器(static randomaccess memory,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)等)、或非易失性存储器(例如闪存等)等。在非限制性示例中,存储器44可以由高速缓存存储器实现。在一些示例中,逻辑电路54可以访问存储器44(例如用于实现图像缓冲区)。在其他示例中,逻辑电路47和/或处理单元46可以包括用于实现图像缓冲区等的存储器(例如高速缓存等)。
在一些示例中,经由逻辑电路实现的视频编码器200可以包括图像缓冲区(例如经由处理单元46或存储器44)和图形处理单元(例如经由处理单元46)。图形处理单元可以通信地耦合到图像缓冲区。图形处理单元可以包括如经由逻辑电路47实现的视频编码器200,以实现如关于图2所讨论的各种模块和/或本文描述的任何其他编码器***或子***。逻辑电路可以用于执行本文所讨论的各种操作。
视频解码器300可以以与经由逻辑电路47实现的方式相似的方式实现,以实现如关于图3的解码器300所讨论的各种模块和/或本文描述的任何其他解码器***或子***。在一些示例中,视频解码器300可以经由逻辑电路实现,逻辑电路可以包括图像缓冲区(例如经由处理单元46或存储器44)和图形处理单元(例如经由处理单元46)。图形处理单元可以通信地耦合到图像缓冲区。图形处理单元可以包括如经由逻辑电路47实现的视频解码器300,以实现如关于图3所讨论的各种模块和/或本文描述的任何其他解码器***或子***。
在一些示例中,视频译码***40的天线42可以用于接收视频数据的编码位流。如所讨论的,编码位流可以包括与如本文所讨论的与视频帧编码关联的数据、指示符、索引值、模式选择数据等,例如与译码划分关联的数据(例如,变换系数或量化的变换系数、(如所讨论的)可选指示符、和/或定义译码划分的数据)。视频译码***40还可以包括视频解码器300,视频解码器300耦合到天线42并且用于对编码位流进行解码。显示设备45用于呈现视频帧。
图2是示出可以实现本申请的技术的视频编码器200的示例的框图。视频编码器200可对视频切片内的视频块执行帧内编码和帧间编码。帧内编码依靠空间预测来减少或消除给定视频帧或图像内视频中的空间冗余。帧间编码依靠时间预测来减少或消除视频序列的相邻帧或图像内视频中的时间冗余。帧内模式(I模式)可以指几种基于空间的译码模式中的任何一种。诸如单向预测(uni-directional prediction)(P模式)或双向预测(bi-prediction)(B模式)之类的帧间模式可以指几种基于时间的译码模式中的任何一种。
图2示出了用于实现本公开的技术的示例视频编码器200的示意性/概念性框图。在图2的示例中,视频编码器200包括残差计算单元204、变换处理单元206、量化单元208、反量化单元210、以及逆变换处理单元212、重建单元214、缓冲区216、环路滤波器单元220、解码图像缓冲区(decoded picture buffer,DPB)230、预测处理单元260、以及熵编码单元270。预测处理单元260可以包括帧间估计242、帧间预测单元244、帧内估计252、帧内预测单元254、以及模式选择单元262。帧间预测单元244还可以包括运动补偿单元(未示出)。如图2所示的视频编码器200还可以称为混合视频编码器或根据混合视频译码的视频编码器。
例如,残差计算单元204、变换处理单元206、量化单元208、预测处理单元260、以及熵编码单元270形成编码器200的前向信号路径,而例如反量化单元210、逆变换处理单元212、重建单元214、缓冲区216、环路滤波器220、解码图像缓冲区(DBP)230、预测处理单元260形成编码器的反向信号路径,其中,编码器的反向信号路径对应于解码器的信号路径(参见图3中的解码器300)。
编码器200用于例如通过输入202接收图像201或图像201的块203,例如形成视频或视频序列的图像序列中的图像。图像块203还可以称为当前图像块和待编码图像块,并且图像201可以称为当前图像和待编码图像(特别是在视频译码中,以将当前图像与其他图像区分,例如,其他图像是同一视频序列中的先前编码的和/或解码的图像,该视频序列即包括当前图像的视频序列)。
划分
编码器200的实施例可以包括划分单元(图2中未示出),划分单元用于将图像201划分为多个块(例如与块203类似的块),通常划分为多个非重叠块。划分单元可以用于对视频序列中的所有图像使用相同的块尺寸和定义块尺寸的相应网格,或者用于改变图像或图像组或图像子集之间的块尺寸,并将每个图像划分为相应的块。
在HEVC和其他视频译码规范中,为了生成图像的编码表示,可以生成一组译码树单元(CTU)。每个CTU可以包括亮度样本的译码树块,色度样本的两个对应译码树块、以及用于对译码树块的样本进行译码的语法结构。在单色图像或具有三个单独的颜色平面(colorplane)的图像中,CTU可以包括单个译码树块和用于对译码树块的样本进行译码的语法结构。译码树块可以是N×N的样本块。CTU也可以称为“树块”或“最大译码单元”(largestcoding unit,LCU)。HEVC的CTU可能大致类似于诸如H.264/AVC等其他标准的宏块(macroblock)。然而,CTU不必限于特定尺寸,并且可以包括一个或多个译码单元(codingunit,CU)。切片可以包括以光栅扫描顺序连续排序的整数数量的CTU。
在HEVC中,使用表示为译码树的四叉树结构将CTU拆分为CU,以适应各种局部特征。在CU级别决定是使用图像间(时间)预测还是图像内(空间)预测对图像区域进行译码。CU可以包括具有亮度样本阵列、Cb样本阵列、以及Cr样本阵列的图像的亮度样本的译码块和色度样本的两个对应译码块、以及用于对译码块的样本进行译码的语法结构。在单色图像或具有三个单独的颜色平面的图像中,CU可以包括单个译码块和用于对译码块的样本进行译码的语法结构。译码块是N×N的样本块。在一些示例中,CU可以与CTU尺寸相同。每个CU以一种译码模式进行译码,该译码模式可以是例如帧内译码模式或帧间译码模式。也可能是其他译码模式。编码器200接收视频数据。编码器200可以对视频数据的图像的切片中的每个CTU进行编码。作为CTU编码的一部分,编码器200的预测处理单元260或另一处理单元(包括但不限于图2所示的编码器200的单元)可以执行划分,以将CTU的CTB分为越来越小的块203。较小的块可以是CU的译码块。
位流内的语法数据也可以定义CTU的尺寸。切片包括按译码顺序的多个连续CTU。视频帧或视频图像或视频图片可以划分为一个或多个切片。如上所述,每个树块可以根据四叉树拆分为译码单元(CU)。通常,四叉树数据结构包括一个节点每CU,其中根节点对应于树块(例如CTU)。如果CU拆分为四个子CU,则对应于该CU的节点包括四个子节点,每个子节点对应于一个子CU。四叉树结构中的多个节点包括叶节点和非叶节点。在树结构中,叶节点没有子节点(即叶节点不再进一步拆分)。非叶节点包括树结构的根节点。对于多个节点中每个相应的非根节点,相应的非根节点对应于与相应的非根节点的树结构中的父节点对应的CU的子CU。在树结构中,每个相应的非叶节点具有一个或多个子节点。
四叉树数据结构的每个节点可以为相应的CU提供语法数据。例如,四叉树中的节点可以包括拆分标志,该拆分标志指示对应于该节点的CU是否拆分为子CU。可以递归地对CU的语法元素进行定义,并且可以取决于CU是否拆分为子CU。如果CU未被进一步拆分,则其称为叶CU。如果CU块被进一步拆分,则其通常可以称为非叶CU。如图2所示,每个划分级别均为四叉树拆分(拆分为四个子CU)。黑色CU是叶节点(即未被进一步拆分的块)的示例。
CU的目的与H.264标准的宏块相似,不同之处在于CU没有尺寸区分。例如,树块可以被拆分为四个子节点(也称为子CU),每个子节点可以是父节点并且可以拆分为另外四个子节点。最终,未拆分子节点(称为四叉树的叶节点)包括译码节点,也称为叶CU。与编码位流关联的语法数据可以定义树块可以被拆分的最大次数(称为最大CU深度),并且还可以定义译码节点的最小尺寸。因此,位流也可以定义最小译码单元(smallest coding unit,SCU)。在HEVC上下文中,术语“块”用于指代CU、PU、或TU中的任何一个,或者在其他标准上下文中,用于指代类似的数据结构(例如在H.264/AVC中,用于指代宏块和子块)。
在HEVC中,可以根据PU拆分类型将每个CU进一步分为一个、两个、或四个PU。在一个PU内部,应用相同的预测过程并基于PU将相关信息发送到解码器。在通过应用基于PU拆分类型的预测过程获取了残差块之后,可以根据类似于用于CU的译码树的另一四叉树结构将CU划分为变换单元(transform unit,TU)。HEVC结构的关键特征之一是其具有多个划分概念,包括CU、PU、TU。PU可以划分为非正方形形状。例如,与CU关联的语法数据还可以描述将CU划分为一个或多个PU。TU的形状可以是正方形或非正方形(例如矩形),例如,与CU关联的语法数据可以描述根据四叉树将CU划分为一个或多个TU。对于CU是进行跳过模式(skipmode)编码还是直接模式(direct mode)编码、帧内预测模式编码、还是帧间预测模式编码,划分模式可以不同。
VVC(通用视频译码)消除了PU概念和TU概念的分离,并且支持更灵活的CU划分形状。CU的尺寸对应于译码节点的尺寸,并且其形状可以是正方形或非正方形(例如,矩形)。CU的尺寸的范围可以为4×4像素(或8×8像素)至最大为128×128像素或更大(例如256×256像素)的树块尺寸。
在编码器200生成用于CU的预测块(例如亮度、Cb、Cr预测块)之后,编码器200可以生成用于CU的残差块。例如,编码器100可以生成用于CU的亮度残差块。CU的亮度残差块中的每个样本指示CU的预测亮度块中的亮度样本与CU的原始亮度译码块中的对应样本之间的差。此外,编码器200可以生成用于CU的Cb残差块。CU的Cb残差块中的每个样本可以指示CU的预测Cb块中的Cb样本与CU的原始Cb译码块中的对应样本之间的差。编码器100还可以生成用于CU的Cr残差块。CU的Cr残差块中的每个样本可以指示CU的预测Cr块中的Cr样本与CU的原始Cr译码块中的对应样本之间的差。
在一些示例中,编码器100不对变换块应用变换。在这种示例中,编码器200可以以与变换系数相同的方式处理残差样本值。因此,在编码器100不应用变换的示例中,以下对变换系数和系数块的讨论可以适用于残差样本的变换块。
在产生系数块(例如亮度系数块、Cb系数块、或Cr系数块)之后,编码器200可以对系数块进行量化,以尽可能减少用于表示系数块的数据量,从而潜在地提供进一步的压缩。量化通常是指将一系列值压缩为单个值的过程。在编码器200对系数块进行量化之后,编码器200可以对指示量化的变换系数的语法元素进行熵编码。例如,编码器200可以对指示量化的变换系数的语法元素执行上下文自适应二进制算术译码(context-adaptive binaryarithmetic coding,CABAC)或其他熵译码技术。
编码器200可以输出编码图像数据271的位流,其包括形成编码图像和相关数据的表示的位序列。因此,位流包括视频数据的编码表示。
在J.An等人的“下一代视频译码的块划分结构(Block partitioning structurefor next generation video coding)”,国际电信联盟,COM16-C966,2015年9月(以下简称“VCEG提案COM16-C966”)中,提出了用于HEVC之后的未来视频译码标准的四叉树-二叉树(quad-tree-binary-tree,QTBT))划分技术。仿真表明,提出的QTBT结构比使用的HEVC中的四叉树结构更高效。在HEVC中,对小型块的帧间预测进行限制以减少对运动补偿的存储器访问,因此对于4×8和8×4块,不支持双向预测,对于4×4块,不支持帧间预测。在JEM的QTBT中,已消除这些限制。
在QTBT中,CU的形状可以是正方形或矩形。如图10所示,首先通过四叉树结构对译码树单元(CTU)进行划分。可以通过二叉树结构进一步划分四叉树叶节点。在二叉树拆分中,有两种拆分类型:对称水平拆分和对称垂直拆分。在各种情况下,通过在水平或垂直方向上沿中间对节点进行划分来拆分节点。二叉树叶节点称为译码单元(CU),该分割用于预测和变换处理而无需任何进一步的划分。这表示在QTBT译码块结构中,CU、PU、TU的块尺寸相同。CU有时由不同颜色分量的译码块(coding block,CB)组成,例如对于4:2:0色度格式的P切片和B切片,一个CU包含一个亮度CB和两个色度CB,有时由单个分量的CB组成,例如对于I切片,一个CU只包含一个亮度CB或只包含两个色度CB。
针对QTBT划分方案定义了以下参数。
–CTU尺寸:四叉树的根节点尺寸,与HEVC中的概念相同
–MinQTSize:允许的最小四叉树叶节点尺寸
–MaxBTSize:允许的最大二叉树根节点尺寸
–MaxBTDepth:允许的最大二叉树深度
–MinBTSize:允许的最小二叉树叶节点尺寸
在QTBT划分结构的一个示例中,CTU尺寸设置为128×128亮度样本,并且具有两个相应的64×64色度样本块,MinQTSize设置为16×16,MaxBTSize设置为64×64,MinBTSize(对于宽度和高度)设置为4×4,MaxBTDepth设置为4。首先将四叉树划分应用于CTU,以生成四叉树叶节点。四叉树叶节点的尺寸可以从16×16(即MinQTSize)到128×128(即CTU尺寸)。在四叉树节点的尺寸等于MinQTSize时,不再考虑其他四叉树。如果叶四叉树节点为128×128,则由于其尺寸超过了MaxBTSize(即64×64),因此不会由二叉树进一步拆分。否则,叶四叉树节点可以由二叉树进一步划分。因此,四叉树叶节点也是二叉树的根节点,并且其二叉树深度为0。在二叉树深度达到MaxBTDepth(即4)时,不考虑进一步的拆分。在二叉树节点的宽度等于MinBTSize(即4)时,不考虑进一步的水平拆分。类似地,在二叉树节点的高度等于MinBTSize时,不考虑进一步的垂直拆分。通过预测和变换处理来进一步处理二叉树的叶节点而无需任何进一步的划分。在JEM中,最大CTU尺寸为256×256个亮度样本。例如,可以通过执行预测过程和变换过程对二叉树的叶节点(CU)进行进一步处理,而无需任何进一步的划分。
图10示出了使用QTBT划分技术划分的块30(例如CTB)的示例。如图10所示,使用QTBT划分技术,通过每个块的中心对称地拆分每个块。
图11示出了对应于图11的块划分的树结构。图11中的实线表示四叉树拆分,虚线表示二叉树拆分。在一个示例中,在二叉树的每个拆分(即非叶)节点中,信令通知语法元素(例如标志)以指示执行的拆分的类型(例如水平拆分或垂直拆分),其中,0指示水平拆分,1指示垂直拆分。对于四叉树拆分,因为四叉树拆分始终是将块水平和垂直地拆分为尺寸相等的4个子块,所以无需指示拆分类型。
如图11所示,在节点50处,使用QT划分将块30分为图10所示的四个块31、32、33、34。块34没有被进一步拆分,因此是叶节点。在节点52处,使用BT划分将块31进一步拆分为两个块。如图11所示,节点52被标记为1,指示垂直拆分。这样,在节点52处的拆分产生块37以及包括块35和36的块。块35和36由节点54处的进一步垂直拆分而产生。在节点56处,使用BT划分将块32进一步拆分为两个块38和39。
在节点58处,使用QT划分将块33分为4个尺寸相等的块。块43和44从此QT划分产生,并且不再进一步拆分。在节点60处,首先使用垂直二叉树拆分来拆分左上块,从而得到块40和右垂直块。然后使用水平二叉树拆分将右垂直块拆分为块41和42。在节点62处使用水平二叉树拆分,将从节点58处的四叉树拆分产生的右下块拆分为块45和46。如图11所示,节点62被标记为0,指示水平拆分。
此外,QTBT方案支持亮度和色度具有单独的QTBT结构的能力。当前,对于P切片和B切片,一个CTU中的亮度CTB和色度CTB可以共享同一QTBT结构。然而,对于I切片,通过QTBT结构将亮度CTB划分为CU,并且可以通过另一QTBT结构将色度CTB划分为色度CU。这表示I切片中的CU由亮度分量的译码块或两个色度分量的译码块组成,并且P切片或B切片中的CU由所有三个颜色分量的译码块组成。
编码器200对QTBT结构应用率失真优化(rate-distortion optimization,RDO)过程,以确定块划分。
此外,公开号为20170208336的美国专利申请中提出了一种称为多类型树(multi-type-tree,MTT)的块划分结构,用于代替基于QT、BT、和/或QTBT的CU结构。MTT划分结构仍是递归树结构。在MTT中,使用多个(例如三个或三个以上的)不同划分结构。例如,根据MTT技术,在树结构的每个深度处,可以将三个或三个以上的不同划分结构用于树结构的每个相应的非叶节点。
树结构中节点的深度可以是指从节点到树结构的根的路径的长度(例如,拆分次数)。划分结构通常可以指一个块可以划分为多少个不同的块。例如,划分结构可以是将一个块划分为四个块的四叉树划分结构,将一个块划分为两个块的二叉树划分结构,或是将一个块划分为三个块的三叉树划分结构。此外,三叉树划分结构可以不通过中心来划分块。划分结构可以具有多种不同的划分类型。划分类型可以另外定义如何划分块,包括对称划分或非对称划分、均匀划分或非均匀划分、和/或水平划分或垂直划分。
在MTT中,在树结构的每个深度处,编码器200可以用于使用三个或三个以上的划分结构之一中的特定划分类型来进一步拆分子树。例如,编码器100可以用于从QT、BT、三叉树(triple-tree,TT)、以及其他划分结构中确定特定划分类型。在一个示例中,QT划分结构可以包括正方形四叉树或矩形四叉树划分类型。编码器200可以通过在水平和垂直方向上沿中心将块划分为四个尺寸相等的正方形块,以使用正方形四叉树划分来划分正方形块。同样,编码器200可以通过在水平和垂直方向上沿中心将矩形块划分为四个尺寸相等的矩形块,以使用矩形四叉树划分来划分矩形(例如非正方形)块。
BT划分结构可以包括水平对称二叉树、垂直对称二叉树、水平非对称二叉树、或垂直非对称二叉树划分类型中的至少一种。对于水平对称二叉树划分类型,编码器200可以用于在水平方向上沿块的中心将块拆分为两个尺寸相同的对称块。对于垂直对称二叉树划分类型,编码器200可以用于在垂直方向上沿块的中心将块拆分为两个尺寸相同的对称块。对于水平非对称二叉树划分类型,编码器100可以用于在水平方向上将块拆分为两个尺寸不同的块。例如,类似于PART_2N×nU或PART_2N×nD划分类型,一个块的尺寸可以是父块的1/4,另一个块的尺寸可以是父块的3/4。对于垂直非对称二叉树划分类型,编码器100可以用于在垂直方向上将块拆分为两个尺寸不同的块。例如,类似于PART_nL×2N或PART_nR×2N划分类型,一个块的尺寸可以是父块的1/4,另一个块的尺寸可以是父块的3/4。在其他示例中,非对称二叉树划分类型可以将父块划分为尺寸不同的部分。例如,一个子块可以是父块的3/8,另一个子块可以是父块的5/8。当然,这种划分类型可以是垂直划分也可以是水平划分。
TT划分结构与QT结构或BT结构的区别在于,TT划分结构不会沿中心拆分块。块的中心区域一起保留在同一子块中。与产生四个块的QT或产生两个块的二叉树不同,根据TT划分结构的拆分产生三个块。根据TT划分结构的示例划分类型包括(水平和垂直)对称划分类型以及(水平和垂直)非对称划分类型。此外,根据TT划分结构的对称划分类型可以是非平均/非均匀或平均/均匀的。根据TT划分结构的非对称划分类型是非平均/非均匀的。在一个示例中,TT划分结构可以包括以下划分类型中的至少一种:水平平均/均匀对称三叉树、垂直平均/均匀对称三叉树、水平非平均/非均匀对称三叉树、垂直非平均/非均匀对称三叉树、水平非平均/非均匀非对称三叉树、或垂直非平均/非均匀非对称三叉树划分类型。
通常,非平均/非均匀对称三叉树划分类型是关于块的中心线对称的划分类型,但是所得的三个块中至少一个与其他两个块的尺寸不同。一个优选的示例是,侧块的尺寸为该块的尺寸的1/4,中心块的尺寸为该块的尺寸的1/2。平均/均匀对称三叉树划分类型是关于块的中心线对称的划分类型,并且所得的块的尺寸均相同。如果块的高度或宽度(取决于垂直或水平拆分)是3的倍数,则可以进行这种划分。非平均/非均匀非对称三叉树划分类型是关于块的中心线非对称的划分类型,并且其中至少一个所得的块与其他两个块的尺寸不同。
图11a是示出示例水平三叉树划分类型的概念图。图11b是示出示例垂直三叉树划分类型的概念图。在图11a和图11b中,h表示亮度或色度样本中的块的高度,w表示亮度或色度样本中的块的宽度。
注意,块的各个中心线不代表块的边界(即三叉树划分不通过中心线拆分块)。但是,中心线用于描述特定划分类型相对于原始块的中心线是对称的还是非对称的。中心线也沿拆分方向。
如图11a所示,使用水平平均/均匀对称划分类型划分块71。水平平均/均匀对称划分类型产生相对于块71的中心线对称的上半部分和下半部分。水平平均/均匀对称划分类型产生三个尺寸相等的子块,每个子块的高度为h/3,宽度为w。在块71的高度可以被3整除时,可以使用水平平均/均匀对称划分类型。
使用水平非平均/非均匀对称划分类型划分块73。水平非平均/非均匀对称划分类型产生相对于块73的中心线对称的上半部分和下半部分。水平非平均/非均匀对称划分类型产生两个尺寸相等的块(例如高度为h/4的顶部块和底部块)和尺寸不同的中心块(例如高度为h/2的中心块)。在一个示例中,根据水平非平均/非均匀对称划分类型,中心块的面积等于顶部和底部块的面积之和。在一些示例中,对于高度是2的幂(例如2、4、8、16、32等)的块,水平非平均/非均匀对称划分类型可能是优选的。
使用水平非平均/非均匀非对称划分类型划分块75。水平非平均/非均匀非对称划分类型不会产生相对于块75的中心线对称的上半部分和下半部分(即,上半部分和下半部分是非对称的)。在图11a的示例中,水平非平均/非均匀非对称划分类型产生高度为h/4的顶部块、高度为3h/8的中心块、以及高度为3h/8的底部块。当然,可以使用其他非对称排布。
如图11b所示,使用垂直平均/均匀对称划分类型划分块81。垂直平均/均匀对称划分类型产生相对于块81的中心线对称的左半部分和右半部分。垂直平均/均匀对称划分类型产生三个尺寸相等的子块,每个子块的宽度为w/3,高度为h。在块81的宽度可以被3整除时,可以使用垂直平均/均匀对称划分类型。
使用垂直非平均/非均匀对称划分类型划分块83。垂直非平均/非均匀对称划分类型产生相对于块83的中心线对称的左半部分和右半部分。垂直非平均/非均匀对称划分类型产生相对于83的中心线对称的左半部分和右半部分。垂直非平均/非均匀对称划分类型产生两个尺寸相等的块(例如宽度为w/4的左块和右块)和尺寸不同的中心块(例如宽度为w/2的中心块)。在一个示例中,根据垂直非平均/非均匀对称划分类型,中心块的面积等于左块和右块的面积之和。在一些示例中,对于宽度是2的幂(例如2、4、8、16、32等)的块,垂直非平均/非均匀对称划分类型可能是优选的。
使用垂直非平均/非均匀非对称划分类型划分块85。垂直非平均/非均匀非对称划分类型不会产生相对于块85的中心线对称的左半部分和右半部分(即,左半部分和右半部分是非对称的)。在图11b的示例中,垂直非平均/非均匀非对称划分类型产生宽度为w/4的左块、宽度为3w/8的中心块、以及宽度为3w/8的右块。当然,可以使用其他非对称排布。
在(例如在子树节点处)将块划分为非对称三叉树划分类型的示例中,编码器200和/或解码器300可以进行限制,使得三个划分中的两个划分的尺寸相同。这种限制可以对应于编码器200在对视频数据进行编码时需要遵守的限制。此外,在一些示例中,编码器200和解码器300可以进行限制,使得在根据非对称三叉树划分类型进行划分时,两个划分的面积之和等于其余划分的面积。
在一些示例中,编码器200可以用于针对QT、BT、以及TT划分结构中的每个划分结构从所有前述划分类型中进行选择。在其他示例中,编码器200可以用于只从前述划分类型的子集中确定划分类型。例如,上面讨论的划分类型的子集(或其他划分类型)可以用于特定块尺寸或用于四叉树结构的特定深度。支持的划分类型的子集可以在位流中信令通知,以供解码器200使用,或者可以进行预定义,以便编码器200和解码器300可以确定这些子集而无需任何信令。
在其他示例中,对于所有CTU中的所有深度,支持的划分类型的数量可以是固定的。即,编码器200和解码器300可以预配置为针对CTU的任何深度使用相同数量的划分类型。在其他示例中,支持的划分类型的数量可以变化,并且可以取决于深度、切片类型、或其他先前编码的信息。在一个示例中,在树结构的深度0或深度1处,只使用QT划分结构。在大于1的深度处,可以使用QT、BT、以及TT划分结构中的每个划分结构。
在一些示例中,编码器200和/或解码器300可以对支持的划分类型应用预配置的约束,以避免对视频图像的特定区域或CTU的区域进行重复划分。在一个示例中,在使用非对称划分类型拆分块时,编码器200和/或解码器300可以配置为不进一步拆分从当前块拆分出的最大子块。例如,在根据非对称划分类型(类似于PART_2N×nU划分类型)拆分正方形块时,所有子块中最大的子块(类似于PART_2N×nU划分类型的最大子块)是上述叶节点并且无法进一步拆分。然而,可以进一步拆分较小的子块(类似于PART_2N×nU划分类型的较小的子块)。
作为可以对支持的划分类型应用约束以避免对特定区域进行重复划分的另一示例,在使用非对称划分类型划分块时,从当前块拆分出的最大子块不能在同一方向上进行进一步拆分。例如,在使用非对称划分类型(类似于PART_2N×nU划分类型)拆分正方形块时,编码器200和/或解码器300可以配置为不在水平方向上拆分所有子块中的大型子块(类似于PART_2N×nU划分类型的最大子块)。
作为可以对支持的划分类型应用约束以避免进一步拆分的困难的另一示例,编码器200和/或解码器300可以配置为在块的宽度/高度不是2的幂时(例如在宽度高度不是2、4、8、16等时),不再在水平或垂直方向上拆分块。
以上示例描述了编码器200配置为如何执行MTT划分。然后,解码器300还可以应用与编码器200执行的相同的MTT划分。在一些示例中,可以通过在解码器300处应用相同的预定义规则集来确定编码器200如何划分视频数据的图像。然而,在许多情况下,编码器200可以基于用于正在译码的视频数据的特定图像的率失真标准来确定将使用的特定划分结构和划分类型。这样,为了使解码器300能够确定特定图像的划分,编码器200可以在指示如何划分图像以及图像的CTU的编码位流中信令通知语法元素。解码器200可以解析这种语法元素并且相应地划分图像和CTU。
在一个示例中,视频编码器200的预测处理单元260可以用于执行上述划分技术的任何组合,特别是用于运动估计,并且稍后将描述细节。
与图像201一样,块203也是或也可以视为具有强度值(样本值)的样本的二维阵列或矩阵,但是比图像201的维度小。换句话说,块203例如可以包括一个样本阵列(例如在单色图像201情况下的亮度阵列)或三个样本阵列(例如,在彩色图像201情况下的一个亮度阵列和两个色度阵列)或任何其他数量和/或种类的阵列,这取决于所应用的颜色格式。块203的水平方向和垂直方向(或轴)上的样本数量定义了块203的尺寸。
如图2所示的编码器200用于逐块地对图像201进行编码,例如,按块203执行编码和预测。
残差计算
残差计算单元204用于例如通过逐个样本(逐个像素)地从图像块203的样本值减去预测块265的样本值以获取样本域中的残差块205,基于图像块203和预测块265(关于预测块265的其他细节在后文提供)计算残差块205。
变换
变换处理单元206用于对残差块205的样本值应用变换(例如离散余弦变换(discrete cosine transform,DCT)或离散正弦变换(discrete sine transform,DST))以获取变换域中的变换系数207。变换系数207也可以称为变换残差系数并表示变换域中的残差块205。
变换处理单元206可以用于应用DCT/DST的整数近似,例如HEVC/H.265指定的变换。与正交DCT变换相比,这种整数近似通常按特定因子缩放。为了保留由正向和逆向变换处理的残差块的范数,将附加缩放因子用作变换过程的一部分。缩放因子通常基于某些约束条件来选择,例如缩放因子是用于移位运算的2的幂、变换系数的位深、准确度与实现成本之间的权衡等。例如,可以为由解码器300处的逆变换处理单元212执行的逆变换(以及例如由编码器20处的逆变换处理单元212执行的相应逆变换)指定特定缩放因子,并且可以相应地指定例如由编码器200处的变换处理单元206执行的前向变换的相应缩放因子。
量化
量化单元208用于例如通过应用标量量化或矢量量化来对变换系数207进行量化以获取量化变换系数209。量化变换系数209还可以称为量化残差系数209。量化过程可以降低与一些或全部变换系数207关联的位深。例如,在量化期间,n位的变换系数可以向下取整到m位的变换系数,其中n大于m。通过调节量化参数(quantization parameter,QP)可以修改量化程度。例如,对于标量量化,可以应用不同的缩放比例以实现更精细的或更粗略的量化。较小的量化步长对应于较精细的量化,而较大的量化步长对应于较粗略的量化。量化参数(QP)可以指示适用的量化步长。例如,量化参数可以是适用量化步长的预定义集合的索引。例如,小量化参数可以对应于精细量化(小量化步长),而大量化参数可以对应于粗略量化(大量化步长),或反之亦然。量化可以包括除以量化步长,相应的或逆去量化(例如,通过反量化210执行)可以包括乘以量化步长。根据一些标准(例如HEVC)的实施例可以用于使用量化参数以确定量化步长。一般地,可以使用包括除法的等式的定点近似(fixed pointapproximation)基于量化参数来计算量化步长。可以为量化和去量化引入附加缩放因子,以恢复残差块的范数,由于在用于量化步长和量化参数的方程的定点近似中使用了缩放,因此该范数可能会经过了修改。在一个示例实施方式中,可以组合逆变换的缩放和去量化。或者,可以使用自定义的量化表,并例如在位流中将该表从编码器发送到解码器。量化是有损操作,其中损失随着量化步长的增大而增大。
反量化单元210用于,通过基于或使用与量化单元208相同的量化步长来应用量化单元208所应用的量化方案的逆方案,对量化系数应用量化单元208的反量化以获取去量化系数211。去量化系数211还可以称为去量化残差系数211,并对应于变换系数207(虽然由于量化的损失而通常不等于变换系数)。
逆变换处理单元212用于应用变换处理单元206所应用的变换的逆变换(例如,逆离散余弦变换或逆离散正弦变换)以获取样本域中的逆变换块213。逆变换块213也可以称为逆变换去量化块213或逆变换残差块213。
重建单元214(例如求和器214)用于例如通过将重建残差块213的样本值与预测块265的样本值相加,将逆变换块213(即重建残差块213)与预测块265相加,以获取样本域中的重建块215。
可选地,缓冲区单元216(或简称“缓冲区”216)(例如行缓冲区216)用于例如为帧内预测缓冲或存储重建块215和各个样本值。在其他实施例中,编码器可以用于将存储在缓冲区单元216中的未滤波的重建块和/或各个样本值用于任何类型的估计和/或预测,例如帧内预测。
编码器200的实施例可以用于使得例如缓冲区单元216不仅用于存储用于帧内预测254的重建块215,而且还用于环路滤波器单元220(图2中未示出),和/或使得例如缓冲区单元216和解码图像缓冲区单元230形成一个缓冲区。其他实施例可以用于将滤波块221和/或来自解码图像缓冲区230的块或样本(图2中均未示出)用作帧内预测254的输入或基础。
环路滤波器单元220(或简称“环路滤波器”220)用于对重建块215进行滤波以获取滤波块221,例如用于平滑像素过渡或以其他方式提高视频质量。环路滤波器单元220旨在表示一个或多个环路滤波器,例如去块滤波器(de-blocking filter)、样本自适应偏移(sample-adaptive offset,SAO)滤波器或其他滤波器,例如双边滤波器或自适应环路滤波器(adaptive loop filter,ALF)或锐化或平滑滤波器或协同滤波器。虽然图2所示的环路滤波器单元220是环内滤波器(in-loop filter),但在其他配置中,环路滤波器单元220可以实现为后环路滤波器(post-loop filter)。滤波块221也可以称为滤波重建块221。在环路滤波器单元220对重建的译码块执行滤波操作之后,解码图像缓冲区230可以存储重建的译码块。
编码器200(分别为环路滤波器单元220)的实施例可以用于例如直接地或经由熵编码单元270或任何其他熵译码单元进行熵编码后输出环路滤波器参数(例如样本自适应偏移信息),从而例如解码器300可以接收并应用相同的环路滤波器参数进行解码。
解码图像缓冲区(decoded picture buffer,DPB)230可以是存储参考图像数据的参考图像存储器,用于视频编码器20对视频数据进行编码。DPB 230可以由多种存储设备中的任何一种形成,例如动态随机存取存储器(dynamic random access memory,DRAM),包括同步DRAM(synchronous DRAM,SDRAM)、磁阻RAM(magnetoresistive RAM,MRAM)、电阻RAM(resistive RAM,RRAM)或其他类型的存储设备。DPB 230和缓冲区216可以由同一存储设备或单独的存储设备提供。在一些示例中,解码图像缓冲区(DPB)230用于存储滤波块221。解码图像缓冲区230还可以用于存储同一当前图像或不同图像(例如先前重建的图像)的其他先前的滤波块,例如,先前的重建和滤波块221,并且可以提供完整的先前重建的(即解码的)图像(和对应的参考块和样本)和/或部分重建的当前图像(和对应的参考块和样本),例如用于帧间预测。在一些示例中,如果对重建块215进行了重建但未进行环内滤波,则解码图像缓冲区(DPB)230用于存储重建块215。
预测处理单元260(也称为块预测处理单元260)用于接收或获取块203(当前图像201的当前块203)和重建图像数据,例如来自缓冲区216的相同(当前)图像的参考样本和/或来自解码图像缓冲区230中的一个或多个先前解码图像的参考图像数据231,并且处理这种数据以进行预测,即提供预测块265,预测块265可以是帧间预测块245或帧内预测块255。
模式选择单元262可以用于选择预测模式(例如帧内预测模式或帧间预测模式)和/或对应的预测块245或255用作预测块265,以用于残差块205的计算和重建块215的重建。
模式选择单元262的实施例可以用于选择预测模式(例如从预测处理单元260支持的模式中选择),该预测模式提供最佳匹配,或者换句话说,提供最小残差(最小残差意味着更好的压缩以进行传输或存储),或最小的信令开销(最小的信令开销意味着更好的压缩以进行传输或存储),或者同时考虑或平衡两者。模式选择单元262可以用于基于率失真优化(rate distortion optimization,RDO)确定预测模式,即,选择提供最小率失真优化或相关率失真至少满足预测模式选择标准的预测模式。
在下文中,将更详细地说明由示例编码器200执行的预测处理(例如由预测处理单元260执行)和模式选择(例如由模式选择单元262执行)。
如上所述,编码器200用于从一组(预定)预测模式中确定或选择最佳或最优预测模式。该组预测模式可以包括例如帧内预测模式和/或帧间预测模式。
该组帧内预测模式可以包括例如H.265中所定义的35个不同的帧内预测模式,例如非方向性模式(如DC(或平均)模式和平面模式)或方向性模式,或者可以包括例如最新的H.266中定义的67个不同的帧内预测模式,例如非方向性模式(如DC(或平均)模式和平面模式)或方向性模式。
该组帧间预测模式(或可能的帧间预测模式)取决于可用参考图像(即,例如存储在DBP 230中的先前至少部分解码的图像)和其他帧间预测参数,例如,是使用整个参考图像还是仅使用参考图像的一部分(例如,当前块的区域周围的搜索窗口区域)来搜索最佳匹配参考块,和/或例如是否应用像素插值,例如半像素和/或四分之一像素插值。
除了以上预测模式之外,还可以应用跳过模式和/或直接模式。
预测处理单元260还可以用于例如通过迭代地使用四叉树划分(QT)、二叉树划分(BT)、或三叉树划分(TT)、或其任意组合,将块203划分为更小的块划分或子块,并且例如对每个块划分或子块执行预测,其中,模式选择包括选择划分块203的树结构和应用于每个块划分或子块的预测模式。
帧间预测单元244可以包括运动估计(motion estimation,ME)单元和运动补偿(motion compensation,MC)单元(图2中未示出)。运动估计单元用于接收或获取图像块203(当前图像201的当前图像块203)和解码图像331或至少一个或多个先前重建块(例如一个或多个其他/不同的先前解码图像331的重建块)以进行运动估计。例如,视频序列可以包括当前图像和先前解码图像331,或换句话说,当前图像和先前解码图像331可以是(或形成)形成视频序列的图像序列的一部分。例如,编码器200可以用于从多个其他图像中的相同或不同图像中的多个参考块中选择参考块,并将参考图像(或参考图像索引等)和/或参考块的位置(x、y坐标)和当前块的位置之间的偏移(空间偏移)作为帧间预测参数提供给运动估计单元(图2中未示出)。该偏移也称为运动矢量(motion vector,MV)。合并是HEVC中使用并且继承到VVC的重要运动估计工具。为了执行合并估计,首先要构建合并候选列表,在合并候选列表中,每个候选包含所有运动数据,这些运动数据包括与是使用一个还是两个参考图像列表有关的信息以及每个列表的参考索引和运动矢量。
合并候选列表是基于以下候选构建的:(a)从五个空间相邻块中导出的最多四个空间合并候选;(b)从两个时间共址块中导出的一个时间合并候选;(c)其他合并候选,包括组合的双向预测候选和零运动矢量候选。
合并候选列表中的第一候选在空间上相邻。根据图12的右半部分,通过按顺序依次检查A1、B1、B0、A0、B2,将最多四个候选***合并列表。
不仅检查译码块是否可用并且包含运动信息,还需要在将译码块的所有运动数据作为合并候选之前执行一些其他的冗余检查。针对以下两种不同目的,这些冗余检查可以分为两类:(a)避免在列表中包含具有冗余运动数据的候选;(b)防止合并可以由可能会产生冗余语法的其他方式表示的两个划分。
在N是空间合并候选的数量时,完整的冗余检查将由
Figure GDA0002941550190000231
次运动数据比较组成。在有五个潜在空间合并候选的情况下,将需要进行十次运动数据比较,以确保合并列表中的所有候选具有不同的运动数据。在HEVC的发展过程中,对冗余运动数据的检查已减少至子集,从而可以在保持译码效率的同时显著简化比较逻辑。在最终设计中,对每个候选执行的比较不超过两次,因此总共进行了五次比较。给定顺序{A1,B1,B0,A0,B2},B0只检查B1,A0只检查A1,B2只检查A1和B1。在划分冗余检查的实施例中,通过选择候选B1,将2N×N划分的底部PU与顶部PU合并。这将使得一个CU包括具有相同运动数据的两个PU,这两个PU可以等效地信令通知为2N×2N CU。总而言之,此检查适用于矩形和非对称划分2N×N、2N×nU、2N×nD、N×2N、nR×2N、以及nL×2N的所有第二PU。注意,对于空间合并候选,只执行冗余检查,并且按原样从候选块中复制运动数据。因此,这里不需要运动矢量缩放。
时间合并候选的运动矢量的导出与TMVP相同。由于合并候选包括所有运动数据,并且TMVP只是一个运动矢量,所以整个运动数据的导出仅取决于切片类型。对于双向预测切片,针对每个参考图像列表导出TMVP。根据每个列表的TMVP的可用性,将预测类型设置为双向预测或TMVP可用的列表。所有相关参考图像索引均设置为零。因此,对于单向预测切片,只有列表0的TMVP与等于零的参考图像索引一起导出。
在至少一个TMVP可用并且时间合并候选被添加到列表时,不执行冗余检查。这使得合并列表构建独立于共址图像,从而提高了错误恢复能力。考虑时间合并候选将是冗余的而因此不包括在合并候选列表中的这种情况。在丢失共址图像的情况下,解码器无法导出时间候选,因此无法检查其是否冗余。所有后续候选的索引编制都会由此受到影响。
为了解析鲁棒性,合并候选列表的长度是固定的。在添加空间和时间合并候选之后,可能会出现列表未达到固定长度的情况。为了补偿与非长度自适应列表索引信令一起出现的译码效率损失,生成附加候选。根据切片类型,使用最多两种候选来完全填充列表:(a)组合双向预测候选;(b)零运动矢量候选。
在双向预测切片中,可以通过将一个候选的参考图像列表0运动数据与另一候选的列表1运动数据组合,以基于现有候选生成附加候选。这通过从一个候选(例如第一候选)复制Δx0、Δy0、Δt0并从另一候选(例如第二候选)复制Δx1、Δy1、Δt1来完成。预定义不同组合,并在表1.1中给出。
表1.1
Figure GDA0002941550190000241
当在添加组合双向预测候选后列表仍然不完整时,或者对于单向预测切片,将计算零运动矢量候选以完成列表。所有零运动矢量候选对于单向预测切片具有一个零置换运动矢量(zero displacement motion vector),对于双向预测切片具有两个零置换运动矢量。参考索引设置为零,并针对每个附加候选增加一,直到达到参考索引的最大数量。如果是这种情况并且仍缺少附加候选,则使用等于零的参考索引创建这些候选。对于所有附加候选,因为事实证明省略冗余检查不会导致译码效率损失,所以不执行这些检查。
对于在图像间预测模式下译码的每个PU,所谓的merge_flag指示使用块合并来导出运动数据。merge_idx进一步确定提供MCP所需的所有运动数据的合并列表中的候选。除此PU级别信令外,还在切片头中信令通知合并列表中候选的数量。因为默认值为5,所以其表示为与5的差(five_minus_max_num_merge_cand)。这样,使用较短的码字0信令通知5,然而对于仅使用1个候选,使用较长的码字4信令通知。关于对合并候选列表构建过程的影响,虽然该过程在列表包含最大数量的合并候选之后终止,但是整个过程保持不变。在初始设计中,合并索引译码的最大值由列表中可用的空间和时间候选数量给出。在例如只有两个候选可用时,可以有效地将索引译码为标志。但是为了解析合并索引,需要构建整个合并候选列表以获知实际的候选数量。假设由于传输错误而导致相邻块不可用,则无法再解析合并索引。
HEVC中的块合并概念的关键应用是其与跳过模式的结合。在先前的视频译码标准中,跳过模式用于针对块指示运动数据是推断出的而非显式信令通知的,并且预测残差为零,即,未传输变换系数。在HEVC中,在图像间预测切片中的每个CU的起始处,信令通知skip_flag,skip_flag暗示以下内容:(a)CU仅包含一个PU(2N×2N划分类型);(b)合并模式用于导出运动数据(merge_flag等于1);(c)位流中没有残差数据。
在HEVC中引入指示区域的并行合并估计级别,在该区域中,可以通过检查候选块是否位于该合并估计区域(MER)中来独立导出合并候选列表。同一MER中的候选块不包括在合并候选列表中。因此,在列表构建时不需要其运动数据。在该级别为例如32时,因为同一32×32MER中所有的合并候选均未***列表,所以32×32区域中所有的预测单元可以并行地构建合并候选列表。如图6所示,存在具有7个CU和10个PU的CTU划分。因为第一PU0的所有潜在合并候选都在第一32×32MER之外,所以这些合并候选都可用。对于第二MER,在该MER内部的合并估计应该独立时,PU 2-6的合并候选列表不能包括来自这些PU的运动数据。因此,例如在看PU5时,没有可用的合并候选,因此未将合并候选***合并候选列表中。在那种情况下,PU5的合并列表仅由时间候选(如果可用)和零MV候选组成。为了使编码器能够权衡并行性和译码效率,并行合并估计级别是自适应的,并在图像参数集中作为log2_parallel_merge_level_minus2信令通知。
然而,如前所述,因为VVC引入了更多划分模式,这导致不规则(非正方形)译码块阻碍了译码块合并估计的并行处理,因此HEVC中使用的并行合并估计级别已不再有效。
本公开提供了用于解决上述问题的几种解决方案。
根据第一实施例,提供了一种用于标记候选译码块对于译码树单元(CTU)内的当前译码块的合并估计的可用性的装置。将候选(译码)块标记为可用。在候选译码块的预定义位置包括在扩展合并估计区域(MER)内时,将该候选块标记为不可用,其中,扩展MER包括当前译码块所在的当前MER以及与当前MER邻接的另一MER的至少一部分。
这表示最初,即,在合并估计开始时,例如默认地将相应块标记为可用于当前译码块的预测。换句话说,在构建当前译码块的合并候选列表之前,将该候选块标记为可用。
术语“不可用”是指标记为不可用的候选块不用于当前译码块的预测。因此,当前译码块对候选块与处理顺序有关的依赖性不存在或不再存在。因此,将候选块标记为不可用破坏了候选块与当前块之间的依赖性,并且可以并行处理候选块。
根据实施例,标记候选译码块包括:获取当前译码块的左上像素的坐标(X,Y)。获取候选译码块中的特定点的坐标(X2,Y2)作为预定义位置。然后通过将特定点的坐标和左上像素的坐标进行比较,确定特定点是否位于扩展MER内。如果特定点位于扩展MER内,则将候选块标记为不可用。
在该实施例中,如HEVC和/或VVC中常见的,将当前译码块的左上像素位置用作参考位置。然而,当前译码块内的任何其他合适位置可以用作参考。
候选块的预定义位置可以位于候选块的特定位置以优化合并估计,特别是增加不可用候选块的数量。如以下实施例(解决方案)中所讨论的,这增强了并行处理。
解决方案1
根据实施例,特定点是候选译码块的左上像素。确定特定点是否位于扩展MER内包括:如果满足以下任何条件,则将候选译码块标记为不可用:
-如果[X-1,Y]和[X,Y]在当前MER中,并且X2<X,Y2>=Y;或
-如果[X,Y-1]和[X,Y]在当前MER中,并且Y2<Y,X2>=X;或
-如果[X-1,Y-1]和[X,Y]在当前MER中,并且Y2<Y,X2<X。
这在图13中示出,图13示出了应用上述实施例的场景。图13所示的块是将进行合并估计的当前译码块。粗虚线是当前译码块的MER的边界,细虚线是用于方便参考图13中位置的辅助线。在解决方案1中,提供了一组新的MER条件。在应用新的MER条件之前,假设当前块的左上角坐标为[X,Y],第二块的左上角坐标为[X2,Y2]。第二块也称为候选(译码)块。最初将第二块标记/设置为可用于预测,这表示第二块与当前块在同一图像中,并且在同一切片中,并且是帧间预测的块。这表示第二块/候选块通常可以用于当前(译码)块的预测。然后,上述MER条件为:
假设[X,Y]是当前块的左上角坐标。
假设[X2,Y2]是第二块的左上角坐标。
首先将第二块设置为“可用于预测”。
如果[X-1,Y]和[X,Y]在同一MER中,并且X2<X,Y2>=Y,则将第二块的运动信息候选设置为不可用于预测(象限1)。
如果[X,Y-1]和[X,Y]在同一MER中,并且Y2<Y,X2>=X,则将第二块的运动信息候选设置为不可用于预测(象限2)。
如果[X-1,Y-1]和[X,Y]在同一MER中,并且Y2<Y,X2<X,则将第二块的运动信息候选设置为不可用于预测(象限3)。
词语“同一”是指当前MER,即包括当前译码块的MER。此外,象限1、2、3对应于扩展MER,并且以上条件测试候选/第二块是否在扩展MER内。
注意,在整个申请中,假设x的值沿水平x轴从左到右增大。此外,y的值沿垂直y轴(即重力轴)从上到下增大。
通过这些新的MER条件,如果满足其中一个条件,则将第二块设置为不可用于预测,从而可以打破当前块与第二块(即候选)之间与处理顺序有关的依赖性。这允许以并行方式处理当前块和第二块,从而克服了上面讨论的技术问题。
注意,新的MER条件打破了当前块与第二块之间的直接和间接依赖性。换句话说,如果块的处理顺序给出为第二块→第三块→当前块,则新的MER条件不仅打破了当前块与第二块之间的预测依赖性,而且还打破了第三块与当前块之间的依赖性。以下实施例可以例示新MER条件如何起作用。
在VVC中,合并估计方案主要从HEVC继承,空间域中将用于从中导出MV以构建用于当前译码块的帧间预测的MV候选列表的潜在候选译码块(换句话说,同一图像内的块)与图12所示的那些块基本上相同。即,在当前块的合并估计期间,将依次检查块A1、A0、B1、B0、B2以构建候选列表。构建当前块的候选列表的基本规则是,首先构建空间候选列表,然后构建时间候选列表,最后构建附加合并候选。
通过按顺序依次检查块A1、B1、B0、A0、B2,以及从A1、B1、B0、A0、B2导出的最多四个空间合并候选,来构建空间候选列表。
更具体地,基于以下规则构建空间候选列表。
(a)在当前候选译码块是译码块A1时,基于解决方案1或以下解决方案2~4检查译码块A1的可用性,并且在译码块A1未标记为不可用(即A1标记为可用)时,则将译码块A1的MV添加到运动矢量列表中;
(b)在当前候选译码块为译码块B1时,基于解决方案1或以下解决方案2~4检查译码块B1的可用性,并且在译码块B1未标记为不可用(即B1标记为可用)时,将译码块B1的MV添加到运动矢量列表中;
(c)在当前候选译码块为译码块B0时,基于解决方案1或以下解决方案2~4检查译码块B0的可用性,并且在译码块B0未标记为不可用(即B0标记为可用),并且MV不同于已添加到运动矢量列表的译码块B1的MV时,将译码块B0的运动矢量预测器添加到运动矢量列表;
(d)在当前候选译码块为译码块A0时,基于解决方案1或以下解决方案2~4检查译码块A0的可用性,并且在译码块A0未标记为不可用(即A0标记为可用),并且MV不同于已添加到运动矢量列表的译码块A1的MV时,将译码块A0的MV添加到运动矢量列表;以及
(e)在当前候选译码块为译码块B2时,基于解决方案1或以下解决方案2~4检查译码块B2的可用性,并且在译码块B2未标记为不可用(即B2标记为可用),并且MV不同于已添加到运动矢量列表的译码块A1的MV并且不同于已添加到运动矢量列表的译码块B1的MV时,将译码块B2的MV添加到运动矢量列表。
空间候选列表是从两个时间共址块中导出的。
附加合并候选包括组合双向预测候选和零运动矢量候选。
只要建立了合并候选列表,就可以如下基于候选列表中包括的每个MV进行合并估计:使用率失真优化(rate distortion optimization,RDO)规则或其他措施找到最佳MV作为当前译码块的MV或MV预测器,将合并候选列表内的MV的索引添加到位流中以使解码侧获知用于对当前块进行帧间预测的MV。应注意,空间合并候选的数量不限于HEVC中使用的4个,该数量可以改变并且在位流中信令通知解码侧。此外,用于建立当前译码块的空间候选列表的潜在候选译码块不是固定的,并且可以基于观察到的任何正增益而改变。
图14示出了尺寸为16×16的图像块的划分结果,虚线表示尺寸为8×8的MER网格。图像块被划分为译码块A~F,这些块的处理顺序为A→B→C→D→F。在图14中,块A、B、F的左上角坐标分别标记为(0,0)、(4,0)、(12,8)。块A的右下角坐标标记为(3,15)。宽度和高度也在图中示出。基于本公开的新MER条件,由于左上角坐标在同一MER中,因此现在可以与块A并行地处理块B。这通过使用新MER条件将块A的运动信息标记为不可用于块B的预测的这一事实来保证。因此,块B的处理不需要等待块A的运动信息变得可用,从而可以同时处理这两个块。
此外,还可以根据以下规则并行处理块C和块E:“如果[X-1,Y]和[X,Y]在同一MER中,并且X2<X,Y2>=Y,则将第二块的运动信息候选设置为不可用于预测(象限1)。”在该规则中,由于处理顺序,块E是当前块,块C是第二块。因此,块C和块D均设置为不可用于块E的预测。因为不存在直接和间接依赖性,所以这表示块E现在可以与块C并行处理。因此,可以并行处理块A至块F中的几对块,这可以节省运动估计所耗费的时间,特别是节省候选列表构建所耗费的时间。
可以如下表示解决方案1的替代实施方式。新的MER条件为:
假设[X,Y]是当前块的左上角坐标。
假设[X2,Y2]是第二块的左上角坐标。
首先将第二块设置为“可用于预测”。
如果[X-1,Y]和[X,Y]在同一MER中,并且X2<X,Y2>=Y,则将第二块的运动信息候选设置为不可用于预测。
如果[X,Y-1]和[X,Y]在同一MER中,并且Y2<Y,X2>=X,则将第二块的运动信息候选设置为不可用于预测。
如果[X-1,Y-1]和[X,Y]在同一MER中,则将第二块的运动信息候选设置为不可用于预测。
该替代实施方式在逻辑上与先前的实施方式相同,并且使得相同的相邻块被标记为不可用于预测。这是因为,由于相邻块始终在当前块之前,因此由于条件Y2>=Y和X2>=X不能同时成立,所以对于X、X2、Y、Y2的所有可能值,此替代实施方式产生相同的逻辑结果。
可以如下表示解决方案1的第三替代实施方式。新的MER条件为:
假设[X,Y]是当前块的左上角坐标。
假设[X2,Y2]是第二块的左上角坐标。
首先将第二块设置为“可用于预测”。
如果floor(X2/mer_width)等于floor(X/mer_width)并且floor(Y2/mer_height)>=floor(Y/mer_height),则将第二块的运动信息候选设置为不可用于预测。
如果floor(Y2/mer_height)等于floor(Y/mer_height)并且floor(X2/mer_width)>=floor(X/mer_width),则将第二块的运动信息候选设置为不可用于预测。
mer_width是合并估计区域的宽度,mer_heigth是合并估计区域的高度。floor函数是将实数x作为输入,并输出小于或等于x的最大整数的函数。
应注意,第三替代实施方式与前两个实施方式不同。
解决方案2
根据实施例,该特定点是候选译码块的右下像素,确定特定点是否位于扩展MER内包括:如果满足以下任何条件,则将候选译码块标记为不可用:
-如果[X-1,Y]和[X,Y]在当前MER中,并且X2<X,Y2>=Y;或
-如果[X,Y-1]和[X,Y]在当前MER中,并且Y2<Y,X2>=X;或
-如果[X-1,Y-1]和[X,Y]在当前MER中,并且Y2<Y,X2<X。
基于与图13所示相同的划分,解决方案2可以提供更多并行处理块。新的MER条件为:
·假设[X,Y]是当前块的左上角坐标。
·假设[X2,Y2]是第二块的右下角坐标。
·首先将第二相邻块设置为可用于预测。
·如果[X-1,Y]和[X,Y]在同一MER中,并且X2<X,Y2>=Y,则将第二块的运动信息候选设置为不可用于预测。
·如果[X,Y-1]和[X,Y]在同一MER中,并且Y2<Y,X2>=X,则将第二块的运动信息候选设置为不可用于预测。
·如果[X-1,Y-1]和[X,Y]在同一MER中,并且Y2<Y,X2<X,则将第二块的运动信息候选设置为不可用于预测。
与解决方案1相比,解决方案2使用第二块的右下角坐标而不是第二块的左上角坐标进行可用性标记,这可以增加可以并行处理的块的数量。
基于解决方案2的实施例可以基于与图14所示相同的划分进行详细描述。基于本公开的解决方案2的新MER,因为与第二块的左上角坐标相比,右下角坐标覆盖了更多区域,所以除了可以并行处理A-B和C-E以外,还可以并行处理A-D、D-F。应注意,因为B&D、C&D、C&F、B&C、E&F对不属于同一MER,所以不能并行处理这些对。
解决方案1和解决方案2可以概括为一种用于标记用于预测当前译码块的潜在候选译码块的可用性的方法,该方法包括:
确定潜在候选块中的特定参考点(第二块中的特定点的坐标)是否位于与当前块相同的MER中;
如果是,则将潜在候选块标记为不可用于当前块的帧间预测;
独立于潜在候选块,对当前块进行编码/解码。
总而言之,应注意,可以基于不同要求选择特定参考点,例如,在解决方案1中,特定参考点是第二块的左上角坐标,在解决方案2中,特定参考点是第二块的右下角坐标。或者,特定参考点也可以是第二块的中点、第二块的右上角坐标、或第二块的左下角坐标。
可以如下表示解决方案2的替代实施方式。新的MER条件为:
假设[X,Y]是当前块的左上角坐标。
假设[X2,Y2]是第二块的右下角坐标。
首先将第二块设置为“可用于预测”。
如果[X-1,Y]和[X,Y]在同一MER中,并且X2<X,Y2>=Y,则将第二块的运动信息候选设置为不可用于预测。
如果[X,Y-1]和[X,Y]在同一MER中,并且Y2<Y,X2>=X,则将第二块的运动信息候选设置为不可用于预测。
如果[X-1,Y-1]和[X,Y]在同一MER中,则将第二块的运动信息候选设置为不可用于预测。
该替代实施方式在逻辑上与先前的实施方式相同,并且使得相同的相邻块被标记为不可用于预测。这是因为,由于相邻块始终在当前块之前,因此条件Y2>=Y和X2>=X不能同时成立。因此对于X、X2、Y、Y2的所有可能值,此替代实施方式产生相同的逻辑结果。
可以如下表示解决方案2的第三替代实施方式。新的MER条件为:
假设[X,Y]是当前块的左上角坐标。
假设[X2,Y2]是第二块的右下角坐标。
首先将第二块设置为“可用于预测”。
如果floor(X2/mer_width)等于floor(X/mer_width)并且floor(Y2/mer_height)>=floor(Y/mer_height),则将第二块的运动信息候选设置为不可用于预测。
如果floor(Y2/mer_height)等于floor(Y/mer_height)并且floor(X2/mer_width)>=floor(X/mer_width),则将第二块的运动信息候选设置为不可用于预测。
其中,mer_width是合并估计区域的宽度,mer_heigth是合并估计区域的高度,floor是将实数x作为输入,并输出小于或等于x的最大整数的函数。
如果相邻块必须在空间上与当前块邻接,则第三替代方案与解决方案2的前两个替代方案相同。例如,在H.265/HEVC视频译码标准中就是这种情况。然而,如果对于当前块,可以从空间上不邻接的相邻块预测运动矢量,则相比于解决方案2的前两个替代方案,第三替代实施方式可以提供更好的压缩性能。这种能够从相邻块预测运动信息的情况在作为以下的输入文件的现有技术文件JVET-K0104中例示:ITU-T SG 16WP 3和ISO/IEC JTC 1/SC29/WG 11的联合视频专家组(joint video experts team,JVET),第11次会议:卢布尔雅那,SI,2018年7月10日至18日。将稍后在本申请中说明现有技术中介绍的技术。
解决方案3
根据实施例,提供了一种用于标记候选译码块对于译码树单元(CTU)内的当前译码块的合并估计的可用性的装置。(最初)将候选译码块标记为可用。基于处理顺序,对包括当前块和候选块的CTU的译码块贴标签。通过应用长度为K的滑动窗口形成一组译码块。确定候选译码块和当前译码块是否属于同一组译码块;如果候选译码块和当前译码块属于同一组译码块,则将候选译码块标记为不可用。
在本申请的实施例中,最初将候选译码块标记为可用是可选步骤,包括该步骤以描述在未将候选块标记为不可用时的过程。本申请的实施例描述了将候选译码块标记为不可用的条件,并且如果未将译码块标记为不可用,则其被标记为可用(候选译码块被标记为可用或不可用)。换句话说,将译码块标记为可用的处理步骤的顺序可以在(最初)将译码块标记为不可用之前或之后。如果最初将候选译码块标记为可用,则如果其与当前译码块属于同一扩展MER(或MER),则候选块的标记将改变(从可用变为不可用)。在确定候选译码块与当前块不属于同一扩展MER(或MER)之后将该候选块标记为可用(因此不被标记为不可用)的情况下,此步骤顺序将产生相同的结果。
解决方案3是一种在不使用与候选块相对于当前块的位置有关的直接测试的情况下,标记(潜在)候选块的可用性的不同方法。然而,MER可以解释为由于对译码块进行分组而形成,其中每个组内的块创建该组的MER。因此,本文应根据组(即MER)的成员关系来理解MER。
该方法包括:根据编码器和解码器中的处理顺序,将K个译码块分组在一起,其中,K为大于或等于2的整数;如果潜在候选译码块和当前译码块分组在一个(即同一)组中,则将潜在候选译码块标记为不可用于当前译码块的预测;独立于潜在候选译码块,对当前译码块进行编码/解码。
解决方案4的具体工作流程图如图15所示。步骤S3中的不等式“floor(Label(blk_current)/K)>floor(Label(blk_neighbor)/K)”中的floor函数是将实数x作为输入,并输出小于或等于x的最大整数的函数。K描述了用于对译码块进行分组的窗口尺寸。不等式条件将块分组为由K个块组成的组。可以基于floor函数将潜在候选译码块(blk_neighbor)标记为不可用或可用于当前译码块的预测。
根据实施例,贴标签包括:使用等于或大于零的整数递增地对译码块贴标签。在这种情况下,滑动窗口的长度K与处理顺序相关。
以下示例进一步说明了这一点。例如,如果当前块和相邻块在不同的组中,则选择图15中的右分支。如果这两个块在同一组中,则选择左分支。例如,假设K=5,Label(blk_current)=33,Label(blk_neigbour)=32。在这种情况下,将前一步中使用的floor函数的不等式评估为假并且选择左分支。这些计算步骤如下:
Floor((33-1)/5)>?Floor((32-1)/5)
Floor(6.4)>?Floor(6.2)
6>?6
否。
然后,在步骤S4中将潜在候选译码块标记为不可用之后,可以独立于不可用的潜在候选译码块来处理当前译码块。因为解决方案3破坏了当前译码块和不可用的潜在候选译码块之间的依赖性。如果候选块和当前块在不同的组中,则将该候选块标记为可用(步骤S5)。
最后,在步骤S6中对每个块(当前译码块)进行处理之后,计数器C加1,即C=C+1(步骤S7)。因此,在步骤S8中,根据编码器和解码器中的处理顺序对译码块贴标签,因为编码器和解码器中的处理顺序相同,所以编码器和解码器中的贴标签将相同。在步骤S1中,进行到下一候选块,并且对所有候选块重复上述步骤。
下面详细描述根据解决方案3的示例性实施例,如图16所示。根据解决方案3,根据所有译码块的处理顺序将这些译码块标记为0~5。处理窗口(由长度K定义)根据编码器和解码器中的处理顺序将译码块分组在一起。例如,如果K等于3,则将块{0,1,2}分组在一起,并将块{3,4,5}分组在一起。根据本公开,如果当前块和相邻块属于同一组,则将该相邻块标记为不可用于当前块的处理期间的预测。这表示相邻块的运动信息不用于预测当前块的运动信息。另一方面,如果当前块和译码块不属于同一组,则将相邻块设置为可用于当前块的预测。
在上面的示例(K=3)中,无法从块3和块4预测块5。然而,例如可以从块2预测块5。应注意,解决方案3中的规则还允许从块1和块0预测块5。然而,根据合并列表构建规则,块1和块0通常不作为用于预测的候选,这参考图12进行了解释。
解决方案3提供了一种新的可用性标记方法,该方法通过检查是否将任何译码块分组在当前译码块的同一组中来标记译码块,这是消除上述技术问题的另一方法。
解决方案4
根据实施例,贴标签包括:使用译码块的跨越面积递增地对译码块贴标签,其中,跨越面积是基于译码块包含的像素/样本数计数的。在这种情况下,滑动窗口的长度K与面积相关。
解决方案4类似于解决方案3,不同之处在于,对每个译码块的贴标签是基于译码块的处理顺序和译码块所跨越的面积进行的。解决方案4的具体工作流程图如图17所示。图17中的工作流程与图15中的工作流程相同,因此相同的步骤在此不再赘述。解决方案4和解决方案3的不同之处在于计数步骤(步骤S7),特别是在于步骤“增大计数器,C=C+w*h”,这表示译码块由其跨越面积、其包含的像素/样本来标记。
参考图18,按处理顺序的第一块的宽度等于4,高度等于16。因此,假设计数器在开始时位于C=0,将其标记为C=0+w*h=64。给定K等于128,将标签为64、96、128的块分组在一起,并将块192、224、256一起分组在第二组中。之后如解决方案3中那样,如果相邻块和当前块在同一组中,则不能从相邻块的运动信息预测当前块。
与解决方案3相比,解决方案4产生的合并估计区域在覆盖面积方面更均衡。换句话说,在解决方案4中,滑动窗口创建包含大致相同数量的样本的并行处理区域。注意,区域中的样本数不总是完全相同。因此,解决方案4的硬件实现比解决方案3的硬件实现容易。
MER确定
根据解决方案1和解决方案2,可以将合并估计区域确定为在-x和-y方向上的尺寸为N×M的划分的固定网格。换句话说,视频图像可以使用尺寸相同的N×M矩形进行划分,每个矩形代表合并估计区域。
根据解决方案3和解决方案4,可以将合并估计区域确定为正整数K,正整数K表示合并估计区域内的译码块的数量或样本量。
正整数N、M、K可以是编码在位流中的数字,该位流优选地在诸如序列参数集或图像参数集之类的参数集中。
可以使用变换操作(transformation operation)将数字N、M、K编码在位流中,该变换操作的逆存在并且由解码器所知。例如,可以使用以2为底的对数运算对这些数字进行编码,并且该对数运算的逆定义为以2为底的幂。
或者,数字N、M、K可以具有预定值。在这种情况下,可以将指示编码在位流中,该指示用于指示根据预定值的表在N、M、K的预定值之间进行选择。
解决方案5
解决方案5提供了一种协调解决方案1~4与基于历史的运动矢量预测的选项。在作为以下的输入文件的JVET-K0104中提出了基于历史的运动矢量预测:ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET),第11次会议:卢布尔雅那,SI,2018年7月10日至18日。提出了一种基于历史的MVP(history-based MVP,HMVP)方法,其中,将HMVP候选定义为先前译码的块的运动信息。
在编码/解码过程期间将维护具有多个HMVP候选的表。在遇到新切片时,清空该表。每当存在帧间译码块,则将关联的运动信息添加到表的最后一个条目作为新HMVP候选。上图中描述了整个译码流程。HMVP候选可以在合并候选列表构建过程中使用。表中从最后一个条目到第一个条目的所有HMVP候选均***在TMVP候选之后。对HMVP候选应用修剪。
一旦可用合并候选的总数达到信令通知的最大允许合并候选,则终止合并候选列表构建过程。类似地,HMVP候选也可以在AMVP候选列表构建过程中使用。将表中最后K个HMVP候选的运动矢量***在TMVP候选之后。仅将具有与AMVP目标参考图像相同的参考图像的HMVP候选用于构建AMVP候选列表。对HMVP候选应用修剪。优选地,将K设置为4。
HMVP允许从非邻接的空间相邻块进行运动矢量预测。例如,根据HMVP,因为块A的运动信息将与HMVP候选一起存储在上述表中,所以如图14所示的块F可以从块A预测运动信息。在这种情况下,解决方案1至4无需更改即可应用于表中存储的候选。
作为实施例,除了运动信息之外,块的左上角坐标或右下角坐标也需与表条目关联存储,以便应用解决方案1和解决方案2中给出的规则。
或者,本公开进一步公开了以下实施例(解决方案),这些实施例使合并估计的并行处理更灵活。
类似于先前的实施例,可以使用不同形式的MER条件检查候选块的特定点是否位于扩展MER中。该检查或各个MER测试的结果取决于特定点与当前译码块(例如角)的位置之间的位置关系。然后根据是否满足条件将候选块标记为不可用。这将由以下实施例进一步例示。
根据实施例,标记候选译码块包括:获取当前译码块的角的坐标(x,y);获取特定点的坐标(x+a,y+b)作为预定义位置,其中,a∈(-1,0,1),b∈(-1,0,1),a和b是根据特定点和角之间的相对位置关系选择的;对于一个候选译码块,从(-1,0,1)中选择一个值作为a,从(-1,0,1)中选择一个值作为b;如果floor((x+a)/mer_width)等于floor(x/mer_width);或如果floor((y+b)/mer_width)等于floor(y/mer_height),则将候选译码块标记为不可用,其中,mer_width是当前MER的宽度,mer_height是当前MER的高度。
这表示,根据当前块的角之一和候选块的(a,b)参数化位置,当前块和候选块在空间上相邻。
根据实施例,候选译码块与当前译码块的角相邻,并且
-当前译码块的角是左下角,候选译码块位于当前译码块的左方,a=-1,b=0;或
-当前译码块的角是左下角,候选译码块位于当前译码块的左下方,a=-1,b=1;或
-当前译码块的角是左上角,候选译码块位于当前译码块的左上方,a=-1,b=-1;或
-当前译码块的角是右上角,候选译码块位于当前译码块的右上方,a=1,b=-1;或
-当前译码块的角是右上角,候选译码块位于当前译码块的上方,a=0,b=-1。
因此,候选的(a,b)值取决于当前块的位置是左下角还是右上角以及候选块相对于该角的位置。
候选块和当前块之间的各种位置关系可以如下所示。作为共同基础,做出以下假设,以便于通过例示实施例来理解本公开。
如图19所示,以当前块及其空间相邻块为例。空间相邻块的正式定义如下。注意,在本文中Coord1是指当前译码块,Coord2是指候选块。
假设当前块的左上(左上角)坐标、右上(右上角)坐标、左下(左下角)坐标分别由Pos1=(x1,y1)、Pos2=(x2,y2)、Pos3=(x3,y3)表示,其中(x,y)是–x和–y方向上的坐标。Pos1.x表示Pos1的–x坐标,Pos1.y表示Pos1的–y坐标。
左空间相邻块(A1)定义为包含点PosA1=(x3-1,y3)的块。左下空间相邻块(A0)定义为包含点PosA0=(x3-1,y3+1)的块。左上空间相邻块(B2)定义为包含点PosB2=(x1-1,y1-1)的块。上空间相邻块(B1)定义为包含点PosB1=(x2,y2-1)的块。右上空间相邻块(B0)定义为包含点PosB0=(x2+1,y2-1)的块。
根据实施例,标记候选译码块包括:获取当前译码块的角的坐标(x,y);获取特定点的坐标(x+a,y+b)作为预定义位置,其中,潜在候选译码块与当前译码块的角相邻,并且a∈(-1,0,1),b∈(-1,0,1),其中,a和b不均等于0或1,并且a和b是根据特定点和角之间的相对位置关系选择的;对于一个候选译码块,从(-1,0,1)中选择一个值作为a,从(-1,0,1)中选择一个值作为b;并且
-如果floor((x+a)/mer_width)等于floor(x/mer_width),并且floor((y+b)/mer_height)>=floor(y/mer_height),或
-如果floor((y+b)/mer_height)等于floor(y/mer_height),并且floor((x+a)/mer_width)>=floor(x/mer_width),则将候选译码块标记为不可用
其中,mer_height是当前MER的高度,mer_width是当前MER的宽度。
基于图19所示的假设,第六解决方案如图20所示。
解决方案6
Mer_width定义MER区域的宽度,Mer_heigth定义MER区域的高度。
新的MER条件:
根据待检查的相邻块;
如果相邻块为A1,则将Coord1设置为等于Pos3,将Coord2设置为等于PosA1
如果相邻块为A0,则将Coord1设置为等于Pos3,将Coord2设置为等于PosA0
如果相邻块为B0,则将Coord1设置为等于Pos2,将Coord2设置为等于PosB0
如果相邻块为B1,则将Coord1设置为等于Pos2,将Coord2设置为等于PosB1
如果相邻块为B2,则将Coord1设置为等于Pos1,将Coord2设置为等于PosB2。
如果以下两个条件均成立,则将相邻块设置为不可用于当前块的预测。
·floor(Coord2.x/mer_width)等于floor(Coord1.x/mer_width)
·floor(Coord2.y/mer_height)>=floor(Coord1.y/mer_height)
或者,如果以下两个条件均成立,则将相邻块设置为不可用于当前块的预测。
·floor(Coord2.y/mer_height)等于floor(Coord1.y/mer_height)
·floor(Coord2.x/mer_width)>=floor(Coord1.x/mer_width)
注意:floor函数是将实数X作为输入,并输出小于或等于X的最大整数的函数。
注意:在整个本公开中,坐标x从左到右增大。坐标y从上到下增大。
注意:假设一个过程在设置可用于当前块的预测的相邻块的本发明过程之前。例如,在本发明之前的过程可以是检查相邻块是否在图像边界内、或其是否在同一切片内、按译码顺序,相邻块是否在当前块之前等。
相邻块A0,…,B2是示例性的空间相邻位置。本发明可应用于任何其他空间相邻排布以及空间非相邻排布。
考虑到条件Coord2.x>=Coord1.x和Coord2.y>=Coord1.y不能同时成立,可能存在逻辑上与解决方案6相同的实施方式。可以如下表示解决方案6的一种替代实施方式:
新的MER条件:
根据待检查的相邻块;
如果相邻块为A1,则将Coord1设置为等于Pos3,将Coord2设置为等于PosA1
如果相邻块为A0,则将Coord1设置为等于Pos3,将Coord2设置为等于PosA0
如果相邻块为B0,则将Coord1设置为等于Pos2,将Coord2设置为等于PosB0
如果相邻块为B1,则将Coord1设置为等于Pos2,将Coord2设置为等于PosB1
如果相邻块为B2,则将Coord1设置为等于Pos1,将Coord2设置为等于PosB2。
如果以下两个条件均成立,则将相邻块设置为不可用于当前块的预测。
·floor(Coord2.x/mer_width)等于floor(Coord1.x/mer_width),
·Coord2.y/mer_height>=Coord1.y/mer_height
或者,如果以下两个条件均成立,则将相邻块设置为不可用于当前块的预测:
·floor(Coord2.y/mer_height)等于floor(Coord1.y/mer_height)
·Coord2.x/mer_width>=Coord1.x/mer_width
或者,如果以下条件成立,则将相邻块设置为不可用于当前块的预测:
·Coord2与Coord1在同一合并估计区域内。
图20A和图20B示出了相邻块落入当前块周围并且因此将被标记为不可用的示例。
解决方案7
解决方案7是将解决方案6用于基于历史的运动矢量预测的协调解决方案,如“CE4相关:基于历史的运动矢量预测(CE4-related:History-based Motion VectorPrediction)”中所公开的,可能存在以下情况:某些相邻块在空间上可能不与当前块邻接。换句话说,参考技术中描述的方法从可能不与当前块邻接的块构建运动矢量列表。
在这种情况下,解决方案7如下所示:
Mer_width定义MER区域的宽度,Mer_heigth定义MER区域的高度。
新的MER条件,根据待检查的相邻块;
如果相邻块属于基于历史的候选列表,则将Coord2设置为等于相邻块的右下角坐标,将Coord1设置为等于当前块的左上角坐标。或者,可以使用相邻块的左上角坐标而非相邻块的右下角坐标。更具体地,将Coord2设置为等于相邻块的左上角坐标,将Coord1设置为等于当前块的左上角坐标。
如果以下两个条件均成立,则将相邻块设置为不可用于当前块的预测。
·floor(Coord2.x/mer_width)等于floor(Coord1.x/mer_width)
·floor(Coord2.y/mer_height)>=floor(Coord1.y/mer_height)
如果以下两个条件均成立,则将相邻块设置为不可用于当前块的预测。
·floor(Coord2.y/mer_height)等于floor(Coord1.y/mer_height)
·floor(Coord2.x/mer_width)>=floor(Coord1.x/mer_width)
解决方案8
如图21所示,为了进一步改善并行性,进行合并估计以消除并行处理限制。在图21中,块A既是当前块的左相邻块(A1)又是当前块的左上相邻块(B2)。根据先前的解决方案,在将块A视为左相邻块(使用Pos3、PosA1对)时,将块A设置为不可用于预测。然而,在将块A视为左上相邻块(使用Pos1、PosB2对)时,将块A设置为可用于预测。最后,由于块A的运动信息用作当前块的预测器,因此无法并行处理块A和当前块。
图22中示出了解决方案8,示出了用于确定相邻块的可用性的新规则,该规则的详细描述如下。
Mer_width定义MER区域的宽度,Mer_heigth定义MER区域的高度。
新的MER条件:
根据待检查的相邻块;
如果相邻块为A1,则将Coord1设置为等于pos3,将Coord2设置为等于PosA1
如果相邻块为A0,则将Coord1设置为等于pos3,将Coord2设置为等于PosA0
如果相邻块为B0,则将Coord1设置为等于pos2,将Coord2设置为等于PosB0
如果相邻块为B1,则将Coord1设置为等于pos2,将Coord2设置为等于PosB1
如果相邻块为B2,则将Coord1设置为等于pos1,将Coord2设置为等于PosB2
如果以下条件成立,则将相邻块设置为不可用于当前块的预测。
·floor(Coord2.x/mer_width)等于floor(Coord1.x/mer_width)
如果以下条件成立,则将相邻块设置为不可用于当前块的预测。
·floor(Coord2.y/mer_height)等于floor(Coord1.y/mer_height)
解决方案9
解决方案9用于采用CTU(译码树单元)划分的限制。根据视频译码标准草案“通用视频译码(草案2)”,可以使用四叉树拆分、二进制拆分、或三进制拆分将图像帧划分为块(文件:JVET-K1001-v4,可通过@http://phenix.it-sudparis.eu/jvet访问)。拆分操作从CTB(译码树块)开始,并且使用四叉树拆分、二进制拆分、或三进制拆分将CTB分层地划分为译码块。定义以下内容:
四叉树(quadtree):一种树,其中,一个父节点可以拆分为四个子节点,每个子节点均可以成为父节点以进行另一次拆分。
多类型树(multi-type tree):一种树,其中,一个父节点可以使用二进制拆分以拆分为两个子节点,也可以使用三进制拆分以拆分为三个子节点,每个节点均可以成为父节点以再次拆分为两个或三个子节点。
该文件中施加了以下限制:二进制拆分或三进制拆分之后,不能在子节点中进行四叉树拆分。
如果执行四叉树拆分以生成子节点,则在父节点的子节点中,四叉树划分深度或cqtDepth会增大。同样,如果执行二进制或三进制拆分,则mttDepth会增大。
在解决方案9中,下面提供了新的相邻块可用性检查规则。
新的MER条件:
根据待检查的相邻块;
如果相邻块为A1,则将Coord1设置为等于pos3,将Coord2设置为等于PosA1
如果相邻块为A0,则将Coord1设置为等于pos3,将Coord2设置为等于PosA0
如果相邻块为B0,则将Coord1设置为等于pos2,将Coord2设置为等于PosB0
如果相邻块为B1,则将Coord1设置为等于pos2,将Coord2设置为等于PosB1
如果相邻块为B2,则将Coord1设置为等于pos1,将Coord2设置为等于PosB2
如果以下两个条件均成立,则将相邻块设置为不可用于当前块的预测。
·Coord2和Coord 1在同一MER中。
·当前块的cqtDepth大于或等于阈值(qtDepthThr)。
注意:阈值是整数,例如0、1、2。
下面提供了解决方案9的示例性实施例,如图22所示。因为在执行了1次四叉树拆分之后,执行了3次二进制拆分以生成块A和块B,所以对于块A和块B,cqtDepth等于1,mttdepth等于3。因为在执行了2次四叉树拆分之后,执行了1次二进制拆分以生成块C,所以对于块C,cqtDepth等于2,mttdepth等于1。因为在执行了2次四叉树拆分之后,执行了2次二进制拆分以生成块D和块E,所以对于块D和块E,cqtDepth等于2,mttdepth等于2。
根据该示例,阈值设置为等于2。这表示至少需要执行2次四叉树拆分(cqtDepth>=2),以便并行处理当前块和相邻块。
在左侧的示例中,因为块A和块B在同一MER中,所以虽然块B的cqtDepth为1,但是块B(当前块)不能与块A(相邻块)并行处理。
因为块E的cqtDepth等于2(等于阈值),所以块E(当前块)可以与块C和块D(相邻块)并行处理。注意:如前所述,JVET-K1001禁止在二进制拆分或三进制拆分之后进行四叉树拆分。
解决方案10是将解决方案9用于基于历史的运动矢量预测的协调解决方案,如“CE4相关:基于历史的运动矢量预测”中所公开的,可能存在以下情况:某些相邻块在空间上可能不与当前块邻接。换句话说,参考技术中描述的方法从可能不与当前块邻接的块构建运动矢量列表。
解决方案10,
新的MER条件:
根据待检查的相邻块;
如果相邻块属于基于历史的候选列表,则将Coord2设置为等于相邻块的左上角坐标,将Coord1设置为等于当前块的左上角坐标。或者,将Coord2设置为等于相邻块的右下角坐标,将Coord1设置为等于当前块的左上角坐标。
如果以下条件成立,则将相邻块设置为不可用于当前块的预测。
·Coord2和Coord 1在同一MER中。
·当前块的cqtDepth大于或等于阈值(qtDepthThr)。
有利地,在解决方案9和解决方案10中,四叉树深度阈值(qtDepthThr)和MER(合并估计区域)的尺寸优选地遵循下式:
·MER的宽度=(CTB的宽度)/2qtDepthThr
·MER的高度=(CTB的高度)/2qtDepthThr
有利地,由于在现有技术文件JVET-K1001-v4中,将译码树块的宽度和高度定义为相等,因此根据解决方案1至10中的上式,MER的宽度和高度相等。
有利地,在解决方案9和解决方案10中:
MER的qtDepthThr和/或尺寸可以在诸如序列参数集、图像参数集、切片头等参数集中信令通知。
有利地,在解决方案1至10中,如果当前块是使用合并模式译码的,则将相邻块设置为不可用于当前块的预测。
有利地,在解决方案1至10中,如果当前块是使用仿射合并模式(affine mergemode)译码的,则将相邻块设置为不可用于当前块的预测。
有利地,在解决方案1至10中,如果当前块是使用未信令通知运动矢量差的帧间预测模式译码的,则将相邻块设置为不可用于当前块的预测。注意,用于当前块的帧间预测的运动矢量由运动矢量预测器和运动矢量差之和给出。根据本发明,如果当前块是使用未信令通知运动矢量差并且推断该运动矢量差的长度为零的帧间预测模式译码的,则将相邻块设置为不可用于当前块的预测。
有利地,在解决方案1至10中,如果当前块是使用运动矢量差只能具有预定义值的帧间预测模式译码的,则将相邻块设置为不可用于当前块的预测。例如,在以下的文件JVET-K0115“J0024中的CE4最终运动矢量表达式(测试4.2.9)(CE4 Ultimate motionvector expression in J0024(Test 4.2.9))”中例示了这种帧间预测模式:ITU-T SG16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET),第11次会议:卢布尔雅那,SI,2018年7月10日至18日。在本文件中,例示了帧间预测模式,其中,运动矢量差不能具有任意值。相反,运动矢量差只能采用特定的预定义值。如果当前译码块是使用该帧间预测模式译码的,则采用解决方案1至10是有利的。在文件JVET-K0115中,还提到了在使用了合并模式对当前块进行译码时,将采用所提出的方法。
解决方案11
根据实施例,标记候选译码块包括:获取当前译码块的角的坐标(x,y);获取特定点的坐标(x1,y1)作为预定义位置,其中,该特定点为候选译码块的右下角或左上角;
-如果floor(x1/mer_width)等于floor(x/mer_width);或
-如果floor(y1/mer_height)等于floor(y/mer_height),则将候选译码块标记为不可用,
其中,mer_height是当前MER的高度,mer_width是当前MER的宽度。
如以下实施例所示,可以进一步扩展/修改两个MER条件中的每个条件。
根据实施例,标记候选译码块包括:获取当前译码块的角的坐标(x,y);获取特定点的坐标(x1,y1)作为预定义位置,其中,该特定点为候选译码块的右下角或左上角;
-如果floor(x1/mer_width)等于floor(x/mer_width),并且floor(y1/mer_height)>=floor(y/mer_height);或
-如果floor(y1/mer_height)等于floor(y/mer_height),并且floor(x1/mer_width)>=floor(x/mer_width);则将候选译码块标记为不可用,
其中,mer_height是当前MER的高度,mer_width是当前MER的宽度。
新的MER条件:
根据实施例,标记候选译码块包括:获取当前译码块的角的坐标(X,Y);获取特定点的坐标(X2,Y2)作为预定义位置,其中,该特定点为候选译码块的右下角;如果满足以下任何条件,则将候选译码块标记为不可用:
-如果floor(X2/mer_width)等于floor(X/mer_width),并且floor(Y2/mer_height)>=floor(Y/mer_height);和/或
-如果floor(Y2/mer_height)等于floor(Y/mer_height),并且floor(X2/mer_width)>=floor(X/mer_width);
其中,mer_height是当前MER的高度,mer_width是当前MER的宽度。
假设[X,Y]是当前块的左上角坐标。
假设[X2,Y2]是第二块的右下角坐标。
假设MER区域的宽度由MER_width给出,MER区域的高度由MER_height给出。
如果floor(X2/MER_width)等于floor(X/MER_width)并且Y2>=Y,则将第二块的运动信息候选设置为不可用于预测。
如果floor(Y2/MER_height)等于floor(Y/MER_height)并且X2>=X,则将第二块的运动信息候选设置为不可用于预测。
如果floor(Y2/MER_height)等于floor(Y/MER_height),并且floor(X2/MER_width)等于floor(X/MER_width),则将第二块的运动信息候选设置为不可用于预测。
解决方案11可以通过以下替代方式实现:
如果floor(X2/MER_width)等于floor(X/MER_width),并且floor(Y2/MER_height)>=floor(Y/MER_height),则将第二块的运动信息候选设置为不可用于预测。
如果floor(X2/MER_width)等于floor(X/MER_width),并且floor(Y2/MER_Height)>=floor(Y/MER_height),则将第二块的运动信息候选设置为不可用于预测。
先前过程可能已将相邻块设置为可用/不可用于预测。本发明修改了这种设置。如果只有邻接空间相邻块用于运动矢量预测(类似于H.265/HEVC视频译码标准的情况),则此解决方案实际上与解决方案2相同。然而,如果例如在现有技术“CE4相关:基于历史的运动矢量预测”中使用非邻接空间相邻块,则相对于解决方案2,本解决方案10将提高译码增益。
作为示例,解决方案11通过以下形式应用于VVC。
根据并行合并估计的相邻块可用性的导出过程
此过程的输入是:
当前亮度译码块的左上样本相对于当前图像的左上亮度样本的亮度位置(xCb,yCb),
相邻亮度译码块内相对于当前图像的左上亮度样本的亮度位置(xNb,yNb),
指示相邻块的可用性的变量availableFlag。
此过程的输出是修改的availableFlag。将xNbBR和yNbBR设置为等于CbPosX[xNb][yNb]+CbWidth[xNb][yNb]]–1和CbPosY[xNb][yNb]+CbHeight[xNb][yNb]]–1,其表示相邻块的右下像素。
如果变量availableFlag等于1,并且如果满足以下任何条件,则将availableFlag设置为等于0,这表示相邻亮度译码块不可用:
xCb>>Log2ParMrgLevel等于xNbBR>>Log2ParMrgLevel,并且yNbBR>>Log2ParMrgLevel大于或等于yCb>>Log2ParMrgLevel,
yCb>>Log2ParMrgLevel等于yNbBR>>Log2ParMrgLevel,并且xNbBR>>Log2ParMrgLevel大于或等于xCb>>Log2ParMrgLevel。
也可以在不使用floor函数的情况下表示MER条件。
根据实施例,标记候选译码块包括:获取当前译码块的角的坐标(X,Y);获取特定点的坐标(X2,Y2)作为预定义位置,其中,该特定点为候选译码块的右下角;如果满足以下任何条件,则将候选译码块标记为不可用:
-如果X2/mer_width等于X/mer_width,并且Y2/mer_height>=Y/mer_height;和/或
-如果Y2/mer_height等于Y/mer_height,并且X2/mer_width>=X/mer_width,
其中,mer_height是当前MER的高度,mer_width是当前MER的宽度。
根据实施例,标记候选译码块包括:获取当前译码块的角的坐标(X,Y);获取特定点的坐标(X2,Y2)作为预定义位置,其中,该特定点为候选译码块的右下角;如果满足以下任何条件,则将候选译码块标记为不可用:
-如果X2>>log2_mer_width等于X>>log2_mer_width,并且Y2>>log2_mer_height>=Y>>log2_mer_height;和/或
-如果Y2>>log2_mer_height等于Y>>log2_mer_height,并且X2>>log2_mer_width>=X>>log2_mer_width;
其中,log2_mer_height是当前MER的高度的二进制对数,log2_mer_width是当前MER的宽度的二进制对数。
在VVC中,可以使用二叉树、三叉树、以及四叉树拆分将译码树块(CTB)递归地拆分为越来越小的译码块。如果使用四叉树拆分来拆分译码块(父级),则会生成4个子块。如果使用三进制拆分来拆分译码块(父级),则会生成3个子块。类似地,二进制拆分之后会生成2个子块。被拆分的块称为父块,而生成的划分称为子块。递归地建立子-父块关系,直到决定不再进一步拆分子块。在这种情况下,所得的子块称为叶块(或可以称为叶节点)。将拆分决定***位流中。作为拆分过程的结果,CTB被拆分为一个或多个尺寸和形状不同的叶节点。对于不同的子块,拆分操作的总数(从CTB开始)可能不同。
解决方案12:
根据解决方案12,如果同时满足以下两个条件,则将两个叶块视为在同一合并估计区域中:
两个叶块属于同一父块(或父块的父块,或父块的父块的父块等),并且
同一父块的尺寸小于阈值。
如果两个叶块视为在同一合并估计区域中,则将按译码顺序的第一叶块的运动信息设置为不可用于第二块的预测。否则,将第一叶块的运动信息设置为可用于第一块的预测。
注意,由于递归拆分过程,叶块可能具有在不同的层级(直接父级、父级的父级等)的多个父块。根据解决方案12,如果(在任何层级)存在至少一个父块包含两个叶块,则将其(这两个叶块)视为属于同一父块。此外,对于这两个叶块,层级可能不同,这表示对于这两个叶块,从父块开始为了获取叶块而进行的拆分操作的次数可能不同。
根据一个特定实施方式,尺寸阈值被计算为父译码块内的像素样本的数量,其被计算为该译码块的宽度乘以该译码块的高度。根据解决方案12的另一实施方式,阈值是正整数,并且块的尺寸是基于块的宽度计算的。根据解决方案12的第三特定实施方式,阈值是正整数,并且块的尺寸是基于块的高度计算的。通常,块的尺寸是基于块的宽度和高度计算的,同时考虑块的宽度和高度。
解决方案13:
根据解决方案13,如果同时满足以下两个条件,则将两个叶块视为在同一合并估计区域中:
这两个叶块属于同一父块(或递归地,父块的父块、或父块的父块的父块等),并且
为了获取父块而执行的拆分操作的次数大于阈值。
如果两个叶块视为在同一合并估计区域中,则将按译码顺序的第一块的运动信息设置为不可用于第二块的预测。否则,将第一块的运动信息设置为可用于第一块的预测。
根据解决方案13,基于为了获取父块而执行的四叉树、二叉树、三叉树拆分操作的次数执行阈值比较。例如,假设为了获取父块而执行的四叉树拆分操作的次数由qtDepthThr表示,执行的二叉树和三叉树拆分操作的次数由mttDepth共同表示(使用的术语qtDepth和mttDepth是根据可以从网站http://phenix.it-sudparis.eu/jvet上获取的文件JVET-L1001-v1,通用视频译码(草案3)。qtDepth表示四叉树划分深度,并且等于为了获取块而执行的四叉树拆分操作的次数。mttDepth表示多类型树划分深度,并且等于为了获取块而执行的二叉树和三叉树拆分操作的次数)。然后根据解决方案13,如果qtDepth加K乘以mttDepth大于指定阈值(qtDepth+K×mttDepth>Thr),则属于同一父块的任何两个叶块视为在同一MER中。
K和Thr可以是整数0、1、2、…、K,并且阈值可以是预定的,或者可以在位流中信令通知。在一个优选实施方式中,K具有预定值2。换句话说,Thr可以包括在位流中,并且K可以是正整数或是零。
可以使用图10和图11解释四叉树、二叉树、以及三叉树拆分操作的计数。例如,通过对块50进行一次四叉树拆分获取块34。根据图11,块34是叶块,并且是通过一次四叉树拆分操作以及零次三进制拆分操作和零次二进制拆分操作获取的。
根据图11,块45是通过两次四叉树拆分操作和一次二叉树拆分操作获取的。首先使用四叉树拆分来拆分块50(即CTB)以获取块58,使用四叉树拆分来拆分块58以获取块62,最后使用二进制拆分来拆分块62以获取块45。
注意,拆分操作的次数是相对于视为拆分操作的起点的译码树块(CTB)计数的。
解决方案12的解释:图23示出了解决方案12的流程图。注意,假设块1按译码顺序在块2之前。根据解决方案12,首先分别在步骤(S3、S5)和步骤(S4、S6)中以递归方式确定块1和块2的小于指定阈值“Thr”的父块。parent1.1表示块1的父块,parent1.2表示parent1.1的父块,依此类推。类似地,parent2.1表示块2的父块。
如果步骤S7中测试的结果是,块1的父块与块2的父块相同(步骤S8),并且父块的尺寸小于Thr,则将块1的运动信息设置为不可用于块2的预测(步骤S10)。如果块1的父块与块2的父块不同(步骤S9),则将块1的运动信息设置为可用于块2的预测(步骤S11)。
类似地,图23也可以用于解释解决方案13,其中,尺寸比较由基于为了获取父块而执行的四叉树、二叉树、以及三叉树拆分操作的次数的比较代替。
在一个示例中,通过qtDepth+K×mttDepth>Thr来实现拆分操作功能以获取大于阈值的parentCand块,qtDepth表示为了获取parentCand而执的四叉树拆分操作的次数,mttDepth表示为了获取parentCand而执行的二进制拆分和三进制拆分操作的次数,Thr是阈值。
在第二示例中,通过“四叉树拆分的次数+K×二叉树拆分的次数+M×三叉树拆分的次数>Thr”来实现拆分操作功能以获取大于阈值的parentCand块,Thr是阈值。
在当前块和候选块具有相同的父块时被标记为不可用的候选块的运动信息不用于当前块的预测。
类似地,如果候选块被标记为不可用并且当前块是使用合并预测模式预测的,则候选块的运动信息不用于预测。
根据实施例,从标记为可用的候选译码块中导出运动矢量候选(MVC);并且通过参考MVC对当前译码块进行译码。
根据实施例,提供了一种用于对译码树单元(CTU)内的当前译码块进行编码的编码器,该编码器包括:用于生成预测候选列表的候选列表生成器,该候选列表生成器包括根据前述任一实施例的用于标记候选译码块对于CTU内的当前译码块的合并估计的可用性的装置;预测单元,用于根据生成的列表中的至少一个预测候选确定当前译码块的预测;压缩单元,用于使用当前译码块的预测对当前译码块进行编码。
根据实施例,提供了一种用于对译码树单元(CTU)内的当前译码块进行解码的解码器,该解码器包括:用于生成预测候选列表的候选列表生成器,该候选列表生成器包括根据前述任一实施例的用于标记候选译码块对于CTU内的当前译码块的合并估计的可用性的装置;预测单元,用于根据生成的列表中的至少一个预测候选确定当前译码块的预测;解压缩单元,用于使用当前译码块的预测对当前译码块进行解码。
根据根据前述任一实施例的编码器和/或解码器,预测候选列表是运动矢量(MV)列表。
根据实施例,提供了一种用于标记候选译码块对于译码树单元(CTU)内的当前译码块的合并估计的可用性的方法,该方法包括以下步骤:将候选译码块标记为可用,在候选译码块的预定义位置包括在扩展合并估计区域(MER)内时,将候选译码块标记为不可用,其中,扩展MER包括当前译码块所在的当前MER以及与当前MER邻接的另一MER的至少一部分。
根据实施例,提供了一种用于标记候选译码块对于译码树单元(CTU)内的当前译码块的合并估计的可用性的方法,该方法包括以下步骤:将候选译码块标记为可用;基于处理顺序,对包括当前译码块和候选译码块的CTU的译码块贴标签;通过应用长度为K的滑动窗口形成一组译码块;确定候选译码块和当前译码块是否属于同一组译码块;如果候选译码块和当前译码块属于同一组译码块,则将该候选译码块标记为不可用。
根据实施例,提供了一种用于存储程序的计算机可读非暂时性介质,该程序包括指令,上述指令在处理器上执行时使处理器执行根据以上任一实施例的方法。
运动补偿单元用于获取(例如接收)帧间预测参数,并用于基于或使用帧间预测参数执行帧间预测以获取帧间预测块245。由运动补偿单元(图2中未示出)执行的运动补偿可以涉及基于由运动估计确定的运动/块矢量取得或生成预测块,可能执行子像素精度的插值。插值滤波可以从已知像素样本生成额外的像素样本,因此潜在地增加了可以用于对图像块进行编码的候选预测块的数量。在接收到当前图像块的PU的运动矢量后,运动补偿单元246可以将运动矢量所指向的预测块放置于参考图像列表之一中。运动补偿单元246还可以生成与上述块和视频切片关联的语法元素,以供视频解码器300在对视频切片的图像块进行解码时使用。
帧内预测单元254用于获取(例如接收)图像块203(当前图像块)和用于帧内估计的相同图像的一个或多个先前重建的块,例如重建的相邻块。编码器200可以例如用于从多个(预定的)帧内预测模式中选择帧内预测模式。
算术右移运算的定义如下:
x>>y将x的二进制补码整数表示(two's complement integer representation)算术右移y个二进制位。只有y为非负整数值时才有这个函数定义。右移结果是移进最高有效位(most significant bit,MSB)的位的值应等于移位运算之前x的MSB。
可以如下定义二进制对数:
二进制对数log2(n)是将数字2求幂以获取值n的上述幂。
如果x=log2(n),则2x=n
根据以上定义,下式成立:
floor(X/mer_width)=X>log2_mer_width,其中,log2_mer_width是mer_width的二进制对数。
编码器200的实施例可以用于基于优化标准选择帧内预测模式,例如基于最小残差(例如,以选择提供与当前图像块203最相似的预测块255的帧内预测模式),或基于最小率失真。
帧内预测单元254还用于基于帧内预测参数(例如选择的帧内预测模式)确定帧内预测块255。在任何情况下,在选择用于块的帧内预测模式之后,帧内预测单元254还用于向熵编码单元270提供帧内预测参数,即,指示选择的用于块的帧内预测模式的信息。在一个示例中,帧内预测单元254可以用于执行稍后描述的帧内预测技术的任何组合。
熵编码单元270用于对量化残差系数209、帧间预测参数、帧内预测参数、和/或环路滤波器参数单独或共同地应用(或不应用)熵编码算法或方法(例如,变长编码(variablelength coding,VLC)、上下文自适应VLC方案(context adaptive VLC scheme,CAVLC)、算术编码方案、上下文自适应二进制算术编码(context adaptive binary arithmeticcoding,CABAC)、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmetic coding,SBAC)、概率间隔划分熵(probability intervalpartitioning entropy,PIPE)编码或另一熵编码方法或技术),以获取编码图像数据21,编码图像数据21可以以编码位流21的形式由输出272输出。编码位流21可以发送到视频解码器30,或存档以供后续传输或由视频解码器30提取。熵编码单元270还可以用于对正在编码的当前视频切片的其他语法元素进行熵编码。
视频解码器200的其他结构变形形式可以用于对视频流进行编码。例如,对于某些块或帧,基于非变换的编码器200可以直接量化残差信号,无需变换处理单元206。在另一实施方式中,编码器200可以使量化单元208和反量化单元210组合为单个单元。
图3示出了用于实现本申请的技术的示例性视频解码器300。视频解码器300用于接收例如由编码器200进行编码的编码图像数据(例如编码位流)271以获取解码图像331。在解码过程期间,视频解码器300从视频编码器200接收视频数据,例如表示编码视频切片的图像块以及关联的语法元素的编码位流。
在图3的示例中,解码器300包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如求和器314)、缓冲区316、环路滤波器320、解码图像缓冲区330、以及预测处理单元360。预测处理单元360可以包括帧间预测单元344、帧内预测单元354、以及模式选择单元362。在一些示例中,视频解码器300可以执行与相对图2的视频编码器200所述的编码通道互易的解码通道。
熵解码单元304用于对编码图像数据271执行熵解码,以获取例如量化系数309和/或解码的译码参数(图3中未示出),例如(解码的)以下中的任何或全部:帧间预测参数、帧内预测参数、环路滤波器参数、和/或其他语法元素。熵解码单元304还用于将帧间预测参数、帧内预测参数、和/或其他语法元素转发到预测处理单元360。视频解码器300可以接收视频切片级和/或视频块级语法元素。
反量化单元310可以在功能上等同于反量化单元110,逆变换处理单元312可以在功能上等同于逆变换处理单元112,重建单元314可以在功能上等同于重建单元114,缓冲区316可以在功能上等同于缓冲区116,环路滤波器320可以在功能上等同于环路滤波器120,解码图像缓冲区330可以在功能上等同于解码图像缓冲区130。
预测处理单元360可以包括帧间预测单元344和帧内预测单元354,其中,帧间预测单元344可以在功能上类似于帧间预测单元144,帧内预测单元354可以在功能上类似于帧内预测单元154。预测处理单元360通常用于执行块预测和/或从编码数据21获取预测块365,并且例如从熵解码单元304(显式或隐式地)接收或获取与预测相关的参数和/或与选择的预测模式有关的信息。
在视频切片被译码为帧内译码(I)切片时,预测处理单元360的帧内预测单元354用于基于信令通知的帧内预测模式和来自当前帧或图像的先前解码的块的数据生成当前视频切片的图像块的预测块365。在视频帧被译码为帧间译码(即,B或P)切片时,预测处理单元360的帧间预测单元344(例如运动补偿单元)用于基于从熵解码单元304接收到的运动矢量和其他语法元素产生当前视频切片的视频块的预测块365。对于帧间预测,可以从参考图像列表之一中的参考图像之一产生预测块。视频解码器300可以基于存储在DPB 330中的参考图像使用默认构建技术来构建参考帧列表:列表0和列表1。
预测处理单元360用于通过解析运动矢量和其他语法元素来确定当前视频切片的视频块的预测信息,并且使用该预测信息来产生用于正在解码的当前视频块的预测块。例如,预测处理单元360使用一些接收到的语法元素来确定:用于对视频切片的视频块进行译码的预测模式(例如帧内预测或帧间预测)、帧间预测切片类型(例如B切片、P切片、或GPB切片)、切片的一个或多个参考图像列表的构建信息、切片的每个帧间编码视频块的运动矢量、切片的每个帧间译码视频块的帧间预测状态、以及用于解码当前视频切片中的视频块的其他信息。
反量化单元310用于对位流中提供并由熵解码单元304解码的量化变换系数进行反量化(即,解量化)。反量化过程可以包括:使用由视频编码器100针对视频切片中的每个视频块计算的量化参数,确定将应用的量化程度以及反量化程度。
逆变换处理单元312用于对变换系数应用逆变换,例如逆DCT、逆整数变换、或概念上类似的逆变换过程,以在像素域中产生残差块。
重建单元314(例如求和器314)用于例如通过将重建残差块313的样本值与预测块365的样本值相加,将逆变换块313(即重建的残差块313)与预测块365相加,以获取样本域中的重建块。
环路滤波器单元320(在编码环路中或在编码环路后)用于对重建块315进行滤波以获取滤波器块321,例如以平滑像素过渡或提高视频质量。在一个示例中,环路滤波器单元320可以用于执行稍后描述的滤波技术的任何组合。环路滤波器单元320旨在表示一个或多个环路滤波器,例如去块滤波器、样本自适应偏移(SAO)滤波器或其他滤波器,例如双边滤波器、或自适应环路滤波器(ALF)、或锐化或平滑滤波器、或协同滤波器。虽然图3所示的环路滤波器单元320是环内滤波器,但在其他配置中,环路滤波器320可以实现为后环路滤波器。
给定帧或图像中的解码视频块321随后存储在解码图像缓冲区330中,解码图像缓冲区330存储用于后续运动补偿的参考图像。
解码器300用于经由输出312输出解码图像311以向用户呈现或供用户观看。
视频解码器300的其他变型可以用于对压缩位流进行解码。例如,解码器300可以在不使用环路滤波单元320的情况下产生输出视频流。例如,基于非变换的解码器300可以直接对某些块或帧反量化残差信号,而不使用逆变换处理单元321。在另一实施方式中,视频解码器300可以使反量化单元310和逆变换处理单元312组合成单个单元。
图4是根据本公开实施例的网络设备400(例如译码设备)的示意图。网络设备400适于实现本文所述的公开实施例。在实施例中,网络设备400可以是诸如图1A的视频解码器300的解码器,或是诸如图1A的视频编码器200的编码器。在实施例中,网络设备400可以是如上所述的图1A的视频解码器300或图1A的视频编码器200的一个或多个组件。
网络设备400包括用于接收数据的入口端口410和接收单元(Rx)420;用于处理数据的处理器、逻辑单元、或中央处理单元(central processing unit,CPU)430;用于发送数据的发射器单元(Tx)和出口端口450;以及用于存储数据的存储器460。网络设备400还可以包括耦合到入口端口、接收器单元420、发射器单元440、以及出口端口450的光电(optical-to-electrical,OE)部件和电光(electrical-to-optical,EO)部件,用于光信号或电信号的输入和输出。
处理器430可以通过硬件和软件来实现。处理器430可以实现为一个或多个CPU芯片、核(例如多核处理器)、FPGA、ASIC、和DSP。处理器430与入口端口410、接收器单元420、发射器单元440、出口端口450、以及存储器460通信。处理器430包括译码模块470。译码模块470实现本文所述的公开实施例。例如,译码模块470实现、处理、准备、或提供各种译码操作。因此,将译码模块470包括在内为网络设备400的功能提供了实质性的改进,并且实现了网络设备400到不同状态的转换。或者,译码模块470实现为存储在存储器460中并由处理器430执行的指令。
存储器460包括一个或多个磁盘、磁带驱动器、和固态驱动器,并且可以用作溢出数据存储设备,以在选择要执行的程序时存储程序,并存储在程序执行期间读取的指令和数据。存储器460可以是易失性和/或非易失性的,并且可以是只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、三态内容可寻址存储器(ternary content-addressable memory,TCAM)、和/或静态随机存储器(static random-access memory,SRAM)。
图5是根据示例性实施例的装置500的简化框图,装置500可以用作图1A中的源设备12和/或目的地设备14。装置500可以实现本申请的技术。装置500的形式可以是包括多个计算设备的计算***、或单个计算设备,例如移动电话、平板计算机、膝上型计算机、笔记本计算机、台式计算机等。
装置500中的处理器502可以是中央处理单元。或者,处理器502可以是任何其他类型的设备或多个设备,能够操作或处理现有信息或以后开发的信息。尽管所公开的实施方式可以利用如图所示的单个处理器(例如,处理器502)来实践,但是使用一个以上的处理器可以实现速度和效率上的优势。
在实施方式中,装置500中的存储器504可以是只读存储器(ROM)设备或随机存取存储器(RAM)设备。任何其他合适类型的存储设备可以用作存储器504。存储器504可以包括由处理器502使用总线512访问的代码和数据506。存储器504还可以包括操作***508和应用程序510。应用程序510包括至少一个程序,该程序允许处理器502执行本文描述的方法。例如,应用程序510可以包括应用程序1至N,应用程序1至N还包括执行本文描述的方法的视频译码应用。装置500还可以包括形式为辅助存储器514的附加存储器,其可以是例如用于移动计算设备的存储卡。由于视频通信会话可能包含大量信息,因此可以将这些会话全部或部分存储在辅助存储器514中,并根据需要将其加载到存储器504中。
装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是将显示器与可操作以感测触摸输入的触敏元件组合的触敏显示器。显示器518可以经由总线512连接到处理器502。除了显示器518之外或作为显示器518的替代,可以提供允许用户编程或以其他方式使用装置500的其他输出设备。在输出设备是显示器或包括显示器时,可以以各种方式实现显示器,包括通过液晶显示器(liquid crystal display,LCD)、阴极射线管(cathode-ray tube,CRT)显示器、等离子显示器、或发光二极管(lightemitting diode,LED)显示器,例如有机LED(organic LED,OLED)显示器实现。
装置500还可以包括图像感测设备520,例如照相机或现有或未来开发的可以感测图像(例如操作装置500的用户的图像)的任何其他图像感测设备520,或者可以与这些设备通信。可以放置图像感测设备520以使其朝向操作装置500的用户。在示例中,可以将图像感测设备520的位置和光轴配置为使得视场包括与显示器518直接邻接并且从中可见显示器518的区域。
装置500还可以包括声音感测设备522,例如麦克风或现有或未来开发的可以感测设备500附近的声音的任何其他声音感测设备,或者可以与这些设备通信。可以放置声音感测设备522以使其朝向操作装置500的用户,并且可以用于接收用户在操作装置500时发出的声音,例如言语或其他话语。
虽然图5将装置500的处理器502和存储器504描绘为集成在单个单元中,但是也可以利用其他配置。处理器502的操作可以分布在可以直接耦合的多个机器(每个机器具有一个或多个处理器)上或分布在局域网或其他网络上。存储器504可以分布在多个机器上,例如基于网络的存储器或执行装置500的操作的多个机器中的存储器等。虽然本文描绘为单个总线,但是装置500的总线512可以由多个总线组成。此外,辅助存储器514可以直接耦合到装置500的其他组件,或者可以经由网络访问,并且可以包括单个集成单元(例如存储卡)或多个单元(例如多个存储卡)。装置500因此可以以多种配置来实现。
在一个或多个示例中,可以以硬件、软件、固件、或其任何组合实现所描述的功能。如果以软件实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或在计算机可读介质上传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质的有形介质或通信介质(包括例如根据通信协议促进计算机程序从一个地方到另一地方的转移的任何介质)。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质或(2)诸如信号或载波等通信介质。数据存储介质可以是可以由一个或多个计算机或一个或多个处理器访问以检索指令、代码、和/或数据结构以实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM、或其他光盘存储、磁盘存储、或其他磁性存储设备、闪存、或任何其他可以用于以指令或数据结构的形式存储所需的程序代码并且可以由计算机访问的介质。而且,任何连接都适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(digitalsubscriber line,DSL)、或诸如红外、无线电、微波等无线技术从网站、服务器、或其他远程源发送指令,则介质的定义包括同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、微波等无线技术。然而,应理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号、或其他瞬时介质,而是指非暂时性的有形存储介质。本文使用的磁盘和光盘包括光盘(compact disc,CD)、激光光盘、光盘、数字多功能光盘(digital versatile disc,DVD)、软盘、以及蓝光光盘,其中,磁盘通常以磁性方式复制数据,而光盘则通过激光以光学方式复制数据。上述的组合也应包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,例如一个或多个数字信号处理器(digitalsignal processor,DSP)、通用微处理器、专用集成电路(application specificintegrated circuit,ASIC)、现场可编程逻辑阵列(field programmable logic array,FPGA)或其他等效集成或离散逻辑电路。因此,如本文所使用的术语“处理器”可以指任何前述结构或适合于实现本文描述的技术的任何其他结构。另外,在一些方面,本文描述的功能可以提供在用于进行编码和解码的专用硬件和/或软件模块内,或并入在组合译码器中。同样,该技术可以完全在一个或多个电路或逻辑元件中实现。
本公开的技术可以在包括无线手持机、集成电路(integrated circuit,IC)、或一组IC(例如芯片集)的多种设备或装置中实现。在本发明中描述了各种组件、模块、或单元以强调用于执行所公开的技术的装置的功能方面,但不一定需要由不同硬件单元来实现。而是,如上所述,各种单元可以组合在译码器硬件单元中,或者由互操作硬件单元的集合来提供,这些硬件单元包括与合适的软件和/或固件结合的上述一个或多个处理器。
尽管在本公开中已经提供了若干实施例,但是应当理解,在不脱离本公开的精神或范围的情况下,可以以许多其他特定形式来实施所公开的***和方法。本示例被认为是说明性的而非限制性的,并且无意限于本文给出的细节。例如,各种元件或组件可以组合或集成在另一个***中,或者某些特征可以省略或不实施。
另外,在不脱离本公开的范围的情况下,在各种实施例中描述和示出为离散或分离的技术、***、子***、和方法可以与其他***、模块、技术、或方法组合或集成。示出或讨论为彼此耦合或直接耦合或通信的其他项可以通过某种接口、设备、或中间组件以电气、机械、或其他方式间接耦合或通信。改变、替换、和变更的其他示例可以由本领域技术人员确定,并且可以在不脱离本文公开的精神和范围的情况下做出。
总而言之,本公开涉及一种用于标记候选译码块对于包括多个译码块的译码树单元(CTU)内的当前译码块的合并估计的可用性的装置和方法。最初,将候选译码块标记为可用。在候选译码块的预定义位置包括在扩展合并估计区域(MER)内时,将候选译码块标记为不可用。扩展MER包括当前译码块所在的当前MER以及与当前MER邻接的另一MER的至少一部分。预定义位置可以是候选译码块的角的左上或右下(像素)位置。根据预定义位置和当前译码块的角的位置之间的位置关系,确定候选译码块是否位于扩展MER内,该角是左上角、左下角、或右下角中的任何一个。译码块可以基于处理顺序进行贴标签并使用滑动窗口进行分组。在候选和当前译码块在同一组中时,将候选译码块标记为不可用。
在以下条款中总结了其他实施例。
条款1:一种由编码/解码设备实现的译码方法,用于标记潜在候选译码块对于当前译码块的合并估计的可用性,包括:
-获取当前译码块的角的坐标(x,y)和潜在候选译码块中的特定点的坐标,其中,潜在候选译码块中的特定点的坐标为(x+a,y+b),a∈(-1,0,1),b∈(-1,0,1),a和b是根据潜在候选译码块和当前译码块之间的相对位置关系选择的,对于一个潜在候选译码块,从(-1,0,1)中选择一个值作为a,从(-1,0,1)中选择一个值作为b;
-如果floor((x+a)/mer_width)等于floor(x/mer_width),其中,mer_width是合并估计区域(MER)的宽度,或如果floor(((y+b)/mer_width)等于floor(y/mer_height),其中,mer_height是合并估计区域(MER)的高度,则将潜在候选译码块标记为不可用,floor函数将实数X作为输入,并输出小于或等于X的最大整数。
条款2:根据条款1所述的方法,其中,潜在候选译码块与当前译码块的角相邻,并且
-当前译码块的角是左下角,潜在候选译码块位于当前译码块的左方,a=-1,b=0;或
-当前译码块的角是左下角,潜在候选译码块位于当前译码块的左下方,a=-1,b=1;或
-当前译码块的角是左上角,潜在候选译码块位于当前译码块的左上方,a=-1,b=-1;或
-当前译码块的角是右上角,潜在候选译码块位于当前译码块的右上方,a=1,b=-1;或
-当前译码块的角是右上角,潜在候选译码块位于当前译码块的上方,a=0,b=-1。
条款3:一种由编码/解码设备实现的译码方法,用于标记潜在候选译码块对于当前译码块的合并估计的可用性,包括:
-获取当前译码块的角的坐标(x,y)和潜在候选译码块中的特定点的坐标,其中,潜在候选译码块与当前译码块的角相邻,并且潜在候选译码块中的特定点的坐标为(x+a,y+b),a∈(-1,0,1),b∈(-1,0,1),a和b不均等于0或1,并且a和b是根据潜在候选译码块和当前译码块之间的相对位置关系选择的,对于一个潜在候选译码块,从(-1,0,1)中选择一个值作为a,从(-1,0,1)中选择一个值作为b;
-在floor((x+a)/mer_width)等于floor(x/mer_width),并且floor((y+b)/mer_height)>=floor(y/mer_height)时,或在floor((y+b)/mer_height)等于floor(y/mer_height),并且floor((x+a)/mer_width)>=floor(x/mer_width)时,将潜在候选译码块标记为不可用,其中,mer_height是合并估计区域(MER)的高度,mer_width是MER的宽度,并且该函数将实数X作为输入,并输出小于或等于X的最大整数。
条款4:根据条款3所述的方法,其中,
-当前译码块的角是左下角,潜在候选译码块位于当前译码块的左方,a=-1,b=0;
-或当前译码块的角是左下角,潜在候选译码块位于当前译码块的左下方,a=-1,b=1;
-或当前译码块的角是左上角,潜在候选译码块位于当前译码块的左上方,a=-1,b=-1;
-或当前译码块的角是右上角,潜在候选译码块位于当前译码块的右上方,a=1,b=-1;
-或当前译码块的角是右上角,潜在候选译码块位于当前译码块的上方,a=0,b=-1。
条款5:一种由编码/解码设备实现的译码方法,用于标记潜在候选译码块对于当前译码块的合并估计的可用性,包括:
-获取当前译码块的角的坐标(x,y)和潜在候选译码块中的特定点的坐标,其中,潜在候选译码块中的特定点的坐标为潜在候选译码块的右下角或潜在候选译码块的左上角的坐标(x1,y1);
-如果floor(x1/mer_width)等于floor(x/mer_width)或floor(y1/mer_height)等于floor(y/mer_height),则将潜在候选译码块标记为不可用,mer_height为合并估计区域(MER)的高度,mer_width为MER宽度,该函数将实数X作为输入,并输出小于或等于X的最大整数。
条款6:一种由编码/解码设备实现的译码方法,用于标记潜在候选译码块对于当前译码块的合并估计的可用性,包括:
-获取当前译码块的角的坐标(x,y)和潜在候选译码块中的特定点的坐标,其中,潜在候选译码块中的特定点的坐标为潜在候选译码块的右下角或潜在候选译码块的左上角的坐标(x1,y1);
-如果floor(x1/mer_width)等于floor(x/mer_width),并且floor(y1/mer_height)>=floor(y/mer_height),或floor(y1/mer_height)等于floor(y/mer_height),并且floor(x1/mer_width)>=floor(x/mer_width),则将潜在候选译码块标记为不可用,mer_height是合并估计区域(MER)的高度,mer_width是MER的宽度,该函数将实数X作为输入,并输出小于或等于X的最大整数。
条款7:一种由编码/解码设备实现的译码方法,用于标记潜在候选译码块对于当前译码块的合并估计的可用性,包括:
-获取当前译码块的角的坐标(x,y)和潜在候选译码块中的特定点的坐标,其中,潜在候选译码块中的特定点的坐标为(x+a,y+b),a∈(-1,0,1),b∈(-1,0,1),a和b是根据潜在候选译码块和当前译码块之间的相对位置关系选择的,对于一个潜在候选译码块,从(-1,0,1)中选择一个值作为a,从(-1,0,1)中选择一个值作为b;
-在(x,y)和(x+a,y+b)位于一个合并估计区域(MER)内,并且当前译码块的cqtDepth大于或等于阈值时,将潜在候选译码块标记为不可用,其中,cqtDepth是决定当前译码块所属的译码树块的四叉树划分深度的参数。
条款8:根据条款7所述的方法,其中,
-当前译码块的角是左下角,潜在候选译码块位于当前译码块的左方,a=-1,b=0;
-或当前译码块的角是左下角,潜在候选译码块位于当前译码块的左下方,a=-1,b=1;
-或当前译码块的角是左上角,潜在候选译码块位于当前译码块的左上方,a=-1,b=-1;
-或当前译码块的角是右上角,潜在候选译码块位于当前译码块的右上方,a=1,b=-1;
-或当前译码块的角是右上角,潜在候选译码块位于当前译码块的上方,a=0,b=-1。
条款9:一种由编码/解码设备实现的译码方法,用于标记潜在候选译码块对于当前译码块的合并估计的可用性,包括:
获取当前译码块的角的坐标(x,y)和潜在候选译码块中的特定点的坐标,其中,潜在候选译码块中的特定点的坐标为潜在候选译码块的左上角或潜在候选译码块的右下角的坐标(x1,y1);
在(x,y)和(x1,y1)位于一个合并估计区域(MER)内,并且当前译码块的cqtDepth大于或等于阈值qtDepthThr时,将候选译码块标记为不可用,其中,cqtDepth是决定当前译码块所属的译码树块的四叉树划分深度的参数。
条款10:根据条款9所述的方法,其中,MER的宽度=(CTB的宽度)/2qtDepthThr,MER的高度=(CTB的高度)/2qtDepthThr
条款11:一种用于对图像进行译码的设备,包括处理器和存储一系列指令并与处理器耦合的存储器,该处理器实现用于执行条款1至10中任一项的指令。
条款12:一种编码/解码设备,用于标记潜在候选译码块对于当前译码块的合并估计的可用性,包括:
-坐标获取模块,用于获取当前译码块的角的坐标(x,y)和潜在候选译码块中的特定点的坐标,其中,潜在候选译码块中的特定点的坐标为(x+a,y+b),a∈(-1,0,1),b∈(-1,0,1),a和b是根据潜在候选译码块和当前译码块之间相对位置关系选择的,对于一个潜在候选译码块,从(-1,0,1)中选择一个值作为a,从(-1,0,1)中选择一个值作为b;以及
-标记模块,用于如果floor((x+a)/mer_width)等于floor(x/mer_width),其中mer_width是合并估计区域(MER)的宽度,或floor((y+b)/mer_height)等于floor(y/mer_height),其中mer_height是合并估计区域(MER)的高度,则将潜在候选译码块标记为不可用,该函数将实数X作为输入,并输出小于或等于X的最大整数。
条款13:根据条款12所述的方法,其中,潜在候选译码块与当前译码块的角相邻,并且
-当前译码块的角是左下角,潜在候选译码块位于当前译码块的左方,a=-1,b=0;或
-当前译码块的角是左下角,潜在候选译码块位于当前译码块的左下方,a=-1,b=1;或
-当前译码块的角是左上角,潜在候选译码块位于当前译码块的左上方,a=-1,b=-1;或
-当前译码块的角是右上角,潜在候选译码块位于当前译码块的右上方,a=1,b=-1;或
-当前译码块的角是右上角,潜在候选译码块位于当前译码块的上方,a=0,b=-1。
条款14:一种编码/解码设备,用于标记潜在候选译码块对于当前译码块的合并估计的可用性,包括:
-坐标获取模块,用于获取当前译码块的角的坐标(x,y)和潜在候选译码块中的特定点的坐标,其中,潜在候选译码块与当前译码块的角相邻,并且潜在候选译码块中的特定点的坐标为(x+a,y+b),a∈(-1,0,1),b∈(-1,0,1),a和b不均等于0或1,并且a和b是根据潜在候选译码块和当前译码块之间的相对位置关系选择的,对于一个潜在候选译码块,从(-1,0,1)中选择一个值作为a,从(-1,0,1)中选择一个值作为b;
-标记模块,用于在floor((x+a)/mer_width)等于floor(x/mer_width),并且floor((y+b)/mer_height)>=floor(y/mer_height)时,或在floor((y+b)/mer_height)等于floor(y/mer_height),并且floor((x+a)/mer_width)>=floor(x/mer_width)时,将潜在候选译码块标记为不可用,其中,mer_height是合并估计区域(MER)的高度,mer_width是MER的宽度,并且该函数将实数X作为输入,并输出小于或等于X的最大整数,并且其中,mer_height是合并估计区域的高度。
条款15:根据条款14所述的设备,其中,
-当前译码块的角是左下角,潜在候选译码块位于当前译码块的左方,a=-1,b=0;
-或当前译码块的角是左下角,潜在候选译码块位于当前译码块的左下方,a=-1,b=1;
-或当前译码块的角是左上角,潜在候选译码块位于当前译码块的左上方,a=-1,b=-1;
-或当前译码块的角是右上角,潜在候选译码块位于当前译码块的右上方,a=1,b=-1;
-或当前译码块的角是右上角,潜在候选译码块位于当前译码块的上方,a=0,b=-1。
条款16:一种编码/解码设备,用于标记潜在候选译码块对于当前译码块的合并估计的可用性,包括:
-坐标获取模块,用于获取当前译码块的角的坐标(x,y)和潜在候选译码块中的特定点的坐标,其中,潜在候选译码块中的特定点的坐标为潜在候选译码块的右下角或潜在候选译码块的左上角的坐标(x1,y1);以及
-标记模块,用于如果floor(x1/mer_width)等于floor(x/mer_width)并且floor(y1/mer_height)>=floor(y/mer_height),或floor(y1/mer_height)等于floor(y/mer_height)并且floor(x1/mer_width)>=floor(x/mer_width),则将潜在候选译码块标记为不可用,其中,mer_width是合并估计区域(MER)的宽度,mer_height是MER的高度,该函数将实数X作为输入,并输出小于或等于X的最大整数,
条款17:一种编码/解码设备,用于标记潜在候选译码块对于当前译码块的合并估计的可用性,包括:
-坐标获取模块,用于获取当前译码块的角的坐标(x,y)和潜在候选译码块中的特定点的坐标,其中,潜在候选译码块中的特定点的坐标为潜在候选译码块的右下角或潜在候选译码块的左上角的坐标(x1,y1);以及
-标记模块,用于如果floor(x1/mer_width)等于floor(x/mer_width)并且floor((y+b)/mer_height)>=floor(y/mer_height),或floor((y+b)/mer_height)等于floor(y/mer_height)并且floor((x+a)/mer_width)>=floor(x/mer_width),则将潜在候选译码块标记为不可用,其中,mer_width是合并估计区域(MER)的宽度,mer_height是MER的高度,该函数将实数X作为输入,并输出小于或等于X的最大整数。
条款18:一种编码/解码设备,用于标记潜在候选译码块对于当前译码块的合并估计的可用性,包括:
-坐标获取模块,用于获取当前译码块的角的坐标(x,y)和潜在候选译码块中的特定点的坐标,其中,潜在候选译码块中的特定点的坐标为(x+a,y+b),a∈(-1,0,1),b∈(-1,0,1),a和b是根据潜在候选译码块和当前译码块之间的相对位置关系选择的,对于一个潜在候选译码块,从(-1,0,1)中选择一个值作为a,从(-1,0,1)中选择一个值作为b;以及
-标记模块,用于在(x,y)和(x+a,y+b)位于一个合并估计区域(MER)内,并且当前译码块的cqtDepth大于或等于阈值时,将潜在候选译码块标记为不可用,其中,cqtDepth是决定当前译码块所属的译码树块的四叉树划分深度的参数。
条款19:根据条款18所述的设备,其中,
-当前译码块的角是左下角,潜在候选译码块位于当前译码块的左方,a=-1,b=0;
-或当前译码块的角是左下角,潜在候选译码块位于当前译码块的左下方,a=-1,b=1;
-或当前译码块的角是左上角,潜在候选译码块位于当前译码块的左上方,a=-1,b=-1;
-或当前译码块的角是右上角,潜在候选译码块位于当前译码块的右上方,a=1,b=-1;
-或当前译码块的角是右上角,潜在候选译码块位于当前译码块的上方,a=0,b=-1。
条款20:一种编码/解码设备,用于标记潜在候选译码块对于当前译码块的合并估计的可用性,包括:
-坐标获取模块,用于获取当前译码块的角的坐标(x,y)和潜在候选译码块中的特定点的坐标,其中,潜在候选译码块中的特定点的坐标为潜在候选译码块的左上角或潜在候选译码块的右下角的坐标(x1,y1);以及
-标记模块,用于在(x,y)和(x1,y1)位于一个合并估计区域(MER)内,并且当前译码块的cqtDepth大于或等于阈值qtDepthThr时,将候选译码块标记为不可用,其中,cqtDepth是决定当前译码块所属的译码树块的四叉树划分深度的参数。
条款21:根据条款20所述的设备,其中,MER的宽度=(CTB的宽度)/2qtDepthThr,MER的高度=(CTB的高度)/2qtDepthThr
条款22:一种由编码/解码设备实现的译码方法,用于标记潜在候选译码块对于当前译码块的合并估计的可用性,包括:
-获取潜在候选译码块中的特定点的坐标和当前译码块的左上像素的坐标;
-通过将潜在译码块中的特定点的坐标和当前译码块的左上像素的坐标进行比较,确定潜在候选译码块中的特定点的坐标是否位于当前译码块的左上像素所在的合并估计区域(MER)内,其中,该坐标系由指向右手方向并标记为X的水平轴和指向重力方向并标记为Y的垂直轴组成,潜在候选译码块中的特定点的坐标表示为(X2,Y2),当前译码块的左上像素的坐标表示为(X,Y);并且
如果潜在候选译码块中的特定点的坐标位于合并估计区域(MER)内,则将潜在候选译码块标记为不可用。
条款23:根据条款22所述的方法,其中,潜在候选译码块中的特定点是潜在候选译码块的右下像素,根据以下任何规则确定潜在候选译码块中的特定点的坐标是否位于MER内:
-如果[X-1,Y]和[X,Y]在同一MER中,并且X2<X,Y2>=Y,则将潜在候选译码块设置为不可用;
-如果[X,Y-1]和[X,Y]在同一MER中,并且Y2<Y,X2>=X,则将潜在候选译码块设置为不可用;以及
-如果[X-1,Y-1]和[X,Y]在同一MER中,则将潜在候选译码块设置为不可用。
条款24:根据条款22所述的方法,其中,潜在候选译码块中的特定点是潜在候选译码块的右下像素,根据以下任何规则确定潜在候选译码块中的特定点的坐标是否位于MER内:
-如果floor(X2/mer_width)等于floor(X/mer_width),并且floor(Y2/mer_height)>=floor(Y/mer_height),则将潜在候选译码块设置为不可用;以及
-如果floor(Y2/mer_height)等于floor(Y/mer_height),并且floor(X2/mer_width)>=floor(X/mer_width),则将潜在候选译码块设置为不可用;
其中,mer_height是合并估计区域(MER)的高度,mer_width是MER的宽度,并且该函数将实数X作为输入,并输出小于或等于X的最大整数。
参考标号列表
图1A
10 视频译码***
12 源设备
13 通信信道
14 目的地设备
16 图像源
17 图像数据
18 预处理器
19 预处理图像数据
20 视频编码器
21 编码图像数据
22 通信接口
28 通信接口
30 视频解码器
31 解码图像数据
32 后处理器
33 后处理图像数据
34 显示设备
图1B
40 视频译码***
41 成像设备
42 天线
43 处理器
44 存储器
45 显示设备
46 处理电路
20 视频编码器
30 视频解码器
图2
17 图像(数据)
19 预处理图像(数据)
20 编码器
21 编码图像数据
201 输入(接口)
204 残差计算[单元或步骤]
206 变换处理单元
208 量化单元
210 反量化单元
212 逆变换处理单元
214 重建单元
220 环路滤波器单元
230 解码图像缓冲区(DPB)
260 模式选择单元
270 熵编码单元
272 输出(接口)
244 帧间预测单元
254 帧内预测单元
262 划分单元
203 图像块
205 残差块
213 重建残差块
215 重建块
221 滤波块
231 解码图像
265 预测块
266 语法元素
207 变换系数
209 量化系数
211 去量化系数
图3
21 编码图像数据
30 视频解码器
304 熵解码单元
309 量化系数
310 反量化单元
311 去量化系数
312 逆变换处理单元
313 重建残差块
314 重建单元
315 重建块
320 环路滤波器
321 滤波块
330 解码图像缓冲区DBP
331 解码图像
360 模式应用单元
365 预测块
366 语法元素
344 帧间预测单元
354 帧内预测单元
图4
400 视频译码设备
410 入口端口/输入端口
420 接收器单元Rx
430 处理器
440 发射器单元Tx
450 出口端口/输出端口
460 存储器
470 译码模块
图5
500 源设备或目的地设备
502 处理器
504 存储器
506 代码和数据
508 操作***
510 应用程序
512 总线
518 显示器

Claims (23)

1.一种用于标记候选译码块对于译码树单元(CTU)内的当前译码块的合并估计的可用性的装置,其中,所述装置包括:
处理电路,用于:
-将所述候选译码块标记为可用;
-在所述候选译码块的预定义位置包括在扩展合并估计区域(MER)内时,将所述候选译码块标记为不可用,其中,所述扩展MER包括所述当前译码块所在的当前MER以及与所述当前MER邻接的另一MER的至少一部分。
2.根据权利要求1所述的装置,其中,标记所述候选译码块包括:
获取所述当前译码块的左上像素的坐标[X,Y];
获取所述候选译码块中的特定点的坐标[X2,Y2]作为所述预定义位置;
通过将所述特定点的所述坐标和所述左上像素的所述坐标进行比较,确定所述特定点是否位于所述扩展MER内,以及
如果所述特定点位于所述扩展MER内,则将所述候选译码块标记为不可用。
3.根据权利要求2所述的装置,其中,所述特定点是所述候选译码块的左上像素,所述确定所述特定点是否位于所述扩展MER内包括:
如果满足以下任何条件,则将所述候选译码块标记为不可用:
-如果[X-1,Y]和[X,Y]在所述当前MER中,并且X2<X,Y2>=Y;或
-如果[X,Y-1]和[X,Y]在所述当前MER中,并且Y2<Y,X2>=X;或
-如果[X-1,Y-1]和[X,Y]在所述当前MER中,并且Y2<Y,X2<X。
4.根据权利要求2所述的装置,其中,所述特定点是所述候选译码块的右下像素,所述确定所述特定点是否位于所述扩展MER内包括:
如果满足以下任何条件,则将所述候选译码块标记为不可用:
-如果[X-1,Y]和[X,Y]在所述当前MER中,并且X2<X,Y2>=Y;或
-如果[X,Y-1]和[X,Y]在所述当前MER中,并且Y2<Y,X2>=X;或
-如果[X-1,Y-1]和[X,Y]在所述当前MER中,并且Y2<Y,X2<X。
5.根据权利要求1所述的装置,其中,标记所述候选译码块包括:
获取所述当前译码块的角的坐标(x,y);
获取特定点的坐标(x+a,y+b)作为所述预定义位置,其中,a∈(-1,0,1),b∈(-1,0,1),a和b是根据所述特定点和所述角之间的相对位置关系选择的;
对于所述候选译码块,从(-1,0,1)中选择一个值作为a,从(-1,0,1)中选择一个值作为b;以及
-如果floor((x+a)/mer_width)等于floor(x/mer_width);或
-如果floor((y+b)/mer_width)等于floor(y/mer_height),
则将所述候选译码块标记为不可用,
其中,mer_width是所述当前MER的宽度,mer_height是所述当前MER的高度。
6.根据权利要求5所述的装置,其中,所述候选译码块与所述当前译码块的所述角相邻,并且
-所述当前译码块的所述角是左下角,所述候选译码块位于所述当前译码块的左方,a=-1,b=0;或
-所述当前译码块的所述角是左下角,所述候选译码块位于所述当前译码块的左下方,a=-1,b=1;或
-所述当前译码块的所述角是左上角,所述候选译码块位于所述当前译码块的左上方,a=-1,b=-1;或
-所述当前译码块的所述角是右上角,所述候选译码块位于所述当前译码块的右上方,a=1,b=-1;或
-所述当前译码块的所述角是右上角,所述候选译码块位于所述当前译码块的上方,a=0,b=-1。
7.根据权利要求1所述的装置,其中,标记所述候选译码块包括:
获取所述当前译码块的角的坐标(x,y);
获取特定点的坐标(x+a,y+b)作为所述预定义位置,其中,所述候选译码块与所述当前译码块的角相邻,并且a∈(-1,0,1),b∈(-1,0,1),其中,a和b不均等于0或1,并且a和b是根据所述特定点和所述角之间的相对位置关系选择的,
对于所述候选译码块,从(-1,0,1)中选择一个值作为a,从(-1,0,1)中选择一个值作为b;以及
-如果floor((x+a)/mer_width)等于floor(x/mer_width),并且floor((y+b)/mer_height)>=floor(y/mer_height),或
-如果floor((y+b)/mer_height)等于floor(y/mer_height),并且floor((x+a)/mer_width)>=floor(x/mer_width),
则将所述候选译码块标记为不可用,
其中,mer_height是所述当前MER的高度,mer_width是所述当前MER的宽度。
8.根据权利要求1所述的装置,其中,标记所述候选译码块包括:
获取所述当前译码块的角的坐标(x,y);
获取特定点的坐标(x1,y1)作为所述预定义位置,其中,所述特定点是所述候选译码块的右下角或左上角;以及
-如果floor(x1/mer_width)等于floor(x/mer_width);或
-如果floor(y1/mer_height)等于floor(y/mer_height),
则将所述候选译码块标记为不可用,
其中,mer_height是所述当前MER的高度,mer_width是所述当前MER的宽度。
9.根据权利要求1所述的装置,其中,标记所述候选译码块包括:
获取所述当前译码块的角的坐标(x,y);
获取特定点的坐标(x1,y1)作为所述预定义位置,其中,所述特定点是所述候选译码块的右下角或左上角;以及
-如果floor(x1/mer_width)等于floor(x/mer_width),并且floor(y1/mer_height)>=floor(y/mer_height);或
-如果floor(y1/mer_height)等于floor(y/mer_height),并且floor(x1/mer_width)>=floor(x/mer_width),
则将所述候选译码块标记为不可用,
其中,mer_height是所述当前MER的高度,mer_width是所述当前MER的宽度。
10.根据权利要求1所述的装置,其中,标记所述候选译码块包括:
获取所述当前译码块的角的坐标(X,Y);
获取特定点的坐标(X2,Y2)作为所述预定义位置,其中,所述特定点是所述候选译码块的右下角;以及
如果满足以下任何条件,则将所述候选译码块标记为不可用:
-如果floor(X2/mer_width)等于floor(X/mer_width),并且floor(Y2/mer_height)>=floor(Y/mer_height);和/或
-如果floor(Y2/mer_height)等于floor(Y/mer_height),并且floor(X2/mer_width)>=floor(X/mer_width);
其中,mer_height是所述当前MER的高度,mer_width是所述当前MER的宽度。
11.根据权利要求1所述的装置,其中,标记所述候选译码块包括:
获取所述当前译码块的角的坐标(X,Y);
获取特定点的坐标(X2,Y2)作为所述预定义位置,其中,所述特定点是所述候选译码块的右下角;以及
如果满足以下任何条件,则将所述候选译码块标记为不可用:
-如果X2/mer_width等于X/mer_width,并且Y2/mer_height>=Y/mer_height;和/或
-如果Y2/mer_height等于Y/mer_height,并且X2/mer_width>=X/mer_width;
其中,mer_height是所述当前MER的高度,mer_width是所述当前MER的宽度。
12.根据权利要求1所述的装置,其中,标记所述候选译码块包括:
获取所述当前译码块的角的坐标(X,Y);
获取特定点的坐标(X2,Y2)作为所述预定义位置,其中,所述特定点是所述候选译码块的右下角;以及
如果满足以下任何条件,则将所述候选译码块标记为不可用:
-如果X2>>log2_mer_width等于X>>log2_mer_width,并且Y2>>log2_mer_height>=Y>>log2_mer_height;和/或
-如果Y2>>log2_mer_height等于Y>>log2_mer_height,并且X2>>log2_mer_width>=X>>log2_mer_width;
其中,log2_mer_height是所述当前MER的高度的二进制对数,log2_mer_width是所述当前MER的宽度的二进制对数。
13.一种用于标记候选译码块对于译码树单元(CTU)内的当前译码块的合并估计的可用性的装置,其中,所述装置包括:
处理电路,用于:
将所述候选译码块标记为可用;
基于处理顺序,对包括所述当前译码块和所述候选译码块的CTU的译码块贴标签;
通过应用长度为K的滑动窗口形成一组译码块;
确定所述候选译码块和所述当前译码块是否属于同一组译码块,其中所述候选译码块和所述当前译码块属于同一组译码块包括所述候选译码块的预定义位置包括在扩展合并估计区域(MER)内,其中,所述扩展MER包括所述当前译码块所在的当前MER以及与所述当前MER邻接的另一MER的至少一部分;以及
如果所述候选译码块和所述当前译码块属于同一组译码块,则将所述候选译码块标记为不可用。
14.根据权利要求13所述的装置,其中,所述贴标签包括:使用等于或大于零的整数递增地对所述译码块贴标签,并且K与所述处理顺序相关。
15.根据权利要求13所述的装置,其中,所述贴标签包括:使用所述译码块的跨越面积递增地对所述译码块贴标签,其中,所述跨越面积是基于所述译码块包含的样本数计数的,并且K与面积相关。
16.根据权利要求1至15中任一项所述的装置,其中,所述处理电路还用于:
从标记为可用的所述候选译码块中导出运动矢量候选(MVC);以及
通过参考所述MVC对所述当前译码块进行译码。
17.一种用于对译码树单元(CTU)内的当前译码块进行编码的编码器,包括:
用于生成预测候选列表的候选列表生成器,包括根据权利要求1至16中任一项所述的用于标记候选译码块对于所述CTU内的所述当前译码块的合并估计的可用性的装置;
预测单元,用于根据生成的所述列表中的至少一个预测候选确定所述当前译码块的预测;以及
压缩单元,用于使用所述当前译码块的所述预测对所述当前译码块进行编码。
18.根据权利要求17所述的编码器,其中,所述预测候选列表是运动矢量(MV)列表。
19.一种用于对译码树单元(CTU)内的当前译码块进行解码的解码器,包括
用于生成预测候选列表的候选列表生成器,包括根据权利要求1至16中任一项所述的用于标记候选译码块对于所述CTU内的所述当前译码块的合并估计的可用性的装置;
预测单元,用于根据生成的所述列表中的至少一个预测候选确定所述当前译码块的预测;以及
解压缩单元,用于使用所述当前译码块的所述预测对所述当前译码块进行解码。
20.根据权利要求19所述的解码器,其中,所述预测候选列表是运动矢量(MV)列表。
21.一种用于标记候选译码块对于译码树单元(CTU)内的当前译码块的合并估计的可用性的方法,所述方法包括以下步骤:
-将所述候选译码块标记为可用;
-在所述候选译码块的预定义位置包括在扩展合并估计区域(MER)内时,将所述候选译码块标记为不可用,其中,所述扩展MER包括所述当前译码块所在的当前MER以及与所述当前MER邻接的另一MER的至少一部分。
22.一种用于标记候选译码块对于译码树单元(CTU)内的当前译码块的合并估计的可用性的方法,所述方法包括以下步骤:
将所述候选译码块标记为可用;
基于处理顺序,对包括所述当前译码块和所述候选译码块的CTU的译码块贴标签;
通过应用长度为K的滑动窗口形成一组译码块;
确定所述候选译码块和所述当前译码块是否属于同一组译码块,其中所述候选译码块和所述当前译码块属于同一组译码块包括所述候选译码块的预定义位置包括在扩展合并估计区域(MER)内,其中,所述扩展MER包括所述当前译码块所在的当前MER以及与所述当前MER邻接的另一MER的至少一部分;以及
如果所述候选译码块和所述当前译码块属于同一组译码块,则将所述候选译码块标记为不可用。
23.一种存储程序的计算机可读非暂时性介质,所述程序包括指令,所述指令在处理器上执行时使所述处理器执行根据权利要求21和/或22中任一项所述的方法。
CN201980053398.6A 2018-08-10 2019-08-12 使用合并模式的译码方法、设备、*** Active CN112567755B (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201862717006P 2018-08-10 2018-08-10
US62/717,006 2018-08-10
US201862726424P 2018-09-03 2018-09-03
US62/726,424 2018-09-03
US201862726973P 2018-09-04 2018-09-04
US62/726,973 2018-09-04
US201862757720P 2018-11-08 2018-11-08
US62/757,720 2018-11-08
PCT/CN2019/100209 WO2020030183A1 (en) 2018-08-10 2019-08-12 Coding method, device, system with merge mode

Publications (2)

Publication Number Publication Date
CN112567755A CN112567755A (zh) 2021-03-26
CN112567755B true CN112567755B (zh) 2022-11-08

Family

ID=69414001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980053398.6A Active CN112567755B (zh) 2018-08-10 2019-08-12 使用合并模式的译码方法、设备、***

Country Status (4)

Country Link
US (1) US11750835B2 (zh)
EP (1) EP3834422A4 (zh)
CN (1) CN112567755B (zh)
WO (1) WO2020030183A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020133518A1 (zh) * 2018-12-29 2020-07-02 深圳市大疆创新科技有限公司 视频处理方法和设备
KR102443965B1 (ko) * 2019-01-01 2022-09-19 엘지전자 주식회사 히스토리 기반 모션 벡터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치
EP3915261A4 (en) * 2019-01-31 2023-03-01 HFI Innovation Inc. METHOD AND APPARATUS FOR COMBINED INTER AND INTRA PREDICTION FOR VIDEO CODING
CN115152229A (zh) * 2020-02-07 2022-10-04 抖音视界有限公司 merge估计区域下IBC块的BV列表构建过程

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102685477B (zh) 2011-03-10 2014-12-10 华为技术有限公司 获取用于合并模式的图像块的方法和设备
EP2597872A3 (en) 2011-11-23 2013-12-25 Humax Co., Ltd. Methods for encoding/decoding of video using common merging candidate set of asymmetric partitions
US9544592B2 (en) * 2012-02-10 2017-01-10 Texas Instruments Incorporated Methods and systems for encoding pictures associated with video data
US9525861B2 (en) * 2012-03-14 2016-12-20 Qualcomm Incorporated Disparity vector prediction in video coding
US9338451B2 (en) * 2012-04-12 2016-05-10 Qualcomm Incorporated Common spatial candidate blocks for parallel motion estimation
US9826244B2 (en) * 2013-01-08 2017-11-21 Qualcomm Incorporated Device and method for scalable coding of video information based on high efficiency video coding
CN116506597A (zh) * 2016-08-03 2023-07-28 株式会社Kt 视频解码方法、视频编码方法和视频数据的传送方法
US11172221B2 (en) * 2017-06-26 2021-11-09 Interdigital Madison Patent Holdings, Sas Method and apparatus for intra prediction with multiple weighted references
FR3068558A1 (fr) * 2017-07-05 2019-01-04 Orange Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants

Also Published As

Publication number Publication date
US20210195229A1 (en) 2021-06-24
CN112567755A (zh) 2021-03-26
US11750835B2 (en) 2023-09-05
EP3834422A4 (en) 2021-09-15
WO2020030183A1 (en) 2020-02-13
EP3834422A1 (en) 2021-06-16

Similar Documents

Publication Publication Date Title
AU2019353560B2 (en) Intra prediction method and device
CN112956190B (zh) 仿射运动预测
US9826244B2 (en) Device and method for scalable coding of video information based on high efficiency video coding
CN112567755B (zh) 使用合并模式的译码方法、设备、***
US11343533B2 (en) Coding method, device, system with merge mode
US11659175B2 (en) Coding method, device, system with merge mode
WO2015106121A1 (en) Block vector coding for intra block copy in video coding
US20210227229A1 (en) Intra prediction method and device
CN113796071A (zh) 编码器、解码器及用于ibc融合列表的相应方法
CN113660497B (zh) 编码器、解码器和使用ibc合并列表的对应方法
CN114402617A (zh) 利用矢量裁剪的仿射译码
CN114125468A (zh) 帧内预测方法和装置
CN110868589A (zh) 帧间预测方法、装置及其应用的编/解方法及装置
CN111416977A (zh) 视频编码器、视频解码器及相应方法
CN110944171A (zh) 一种图像预测方法和设备
CN110944184B (zh) 视频解码方法及视频解码器
WO2020182196A1 (en) Coding method, device, system with shared mpm list
US20220295048A1 (en) Coding method, device, system with merge mode
CN110958452A (zh) 视频解码方法及视频解码器
CN111726630A (zh) 基于三角预测单元模式的处理方法及装置

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