CN112640466A - 用于视频编码的系统和方法 - Google Patents

用于视频编码的系统和方法 Download PDF

Info

Publication number
CN112640466A
CN112640466A CN201980056038.1A CN201980056038A CN112640466A CN 112640466 A CN112640466 A CN 112640466A CN 201980056038 A CN201980056038 A CN 201980056038A CN 112640466 A CN112640466 A CN 112640466A
Authority
CN
China
Prior art keywords
motion vector
partition
reference picture
prediction
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.)
Pending
Application number
CN201980056038.1A
Other languages
English (en)
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.)
Panasonic Intellectual Property Corp of America
Original Assignee
Panasonic Intellectual Property Corp of America
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 Panasonic Intellectual Property Corp of America filed Critical Panasonic Intellectual Property Corp of America
Publication of CN112640466A publication Critical patent/CN112640466A/zh
Pending legal-status Critical Current

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
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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

Abstract

图像编码器或解码器包括电路和存储器。该电路在操作中,利用包括第一运动矢量的一个或多个运动矢量来预测第一分区的第一组样本,并利用来自第二分区的一个或多个运动矢量来预测第一分区的第一部分的第二组样本。对第一分区的第一部分的第一组样本中的样本和第一分区的第一部分的第二组样本中的样本进行加权。基于第一运动矢量和第二运动矢量中的一个或两个,存储用于第一分区的第一部分的运动矢量。使用至少第一分区的第一部分的加权样本来对第一分区进行编码或解码。

Description

用于视频编码的系统和方法
技术领域
本公开涉及视频编码,并且具体地涉及用于执行帧间预测功能以基于参考帧来构建当前帧的预测的视频编码和解码系统、组件和方法。
背景技术
随着视频编码技术的发展,从H.261和MPEG-1到H.264/AVC(高级视频编码)、MPEG-LA、H.265/HEVC(高效视频编码)和H.266/VVC(通用视频编解码器),始终需要对视频编码技术进行改进和优化,以处理各种应用中不断增长的数字视频数据量。本公开涉及视频编码中的进一步的进步、改进和优化,特别是用于基于参考帧来建立当前帧的预测的帧间预测功能。
发明内容
在一个方面,图像编码器包括电路和耦合至该电路的存储器。该电路在操作中,利用包括第一运动矢量的一个或多个运动矢量来预测当前图片的第一分区的第一组样本,并且利用来自不同于第一分区的第二分区的一个或多个运动矢量来预测该第一分区的第一部分的第二组样本。对第一分区的第一部分的第一组样本中的样本和第一分区的第一部分的第二组样本中的样本进行加权。基于第一运动矢量和第二运动矢量中的一个或两个,存储用于第一分区的第一部分的运动矢量。至少使用第一分区的第一部分的所加权的样本来对第一分区进行编码。
在一个方面,一种图像编码器包括:分割器,在操作中,将原始图片接收并分割为块;第一加法器,在操作中,从所述分割器接收块,并从预测控制器接收预测,并从每个预测对应的块中减去每个预测以输出残差;变换器,在操作中,对从加法器输出的残差执行变换以输出变换系数;量化器,在操作中,对变换系数进行量化以生成经量化的变换系数;熵编码器,在操作中,对经量化的变换系数进行编码以生成比特流;逆量化器和逆变换器,在操作中,对经量化的变换系数进行逆量化以获得变换系数,并对变换系数进行逆变换以获得残差;第二加法器,在操作中,将从逆量化器和逆变换器输出的残差与从预测控制器输出的预测相加,以重构块;以及预测控制器,耦合到帧间预测器、帧内预测器和存储器。所述帧间预测器在操作中,基于编码的参考图片中的参考块生成当前块的预测。帧内预测器在操作中,基于当前图片中的编码参考块生成当前块的预测。帧间预测器在操作中,利用包括第一运动矢量的一个或多个运动矢量来预测当前图片的第一分区的第一组样本,并且利用来自不同于第一分区的第二分区的一个或多个运动矢量来预测该第一分区的第一部分的第二组样本。对第一分区的第一部分的第一组样本中的样本和第一分区的第一部分的第二组样本中的样本进行加权。基于第一运动矢量和第二运动矢量中的一个或两个,存储用于第一分区的第一部分的运动矢量。至少使用第一分区的第一部分的所加权的样本来对第一分区进行编码。
在一个方面,一种编码方法包括:利用包括第一运动矢量的一个或多个运动矢量来预测当前图片的第一分区的第一组样本;以及利用来自不同于第一分区的第二分区的一个或多个运动矢量来预测第一分区的第一部分的第二组样本。对第一分区的第一部分的第一组样本中的样本和第一分区的第一部分的第二组样本中的样本进行加权。基于第一运动矢量和第二运动矢量中的一个或两个,存储用于第一分区的第一部分的运动矢量。至少使用第一分区的第一部分的所加权的样本来对第一分区进行编码。
在一个方面,图像解码器包括电路和耦合到该电路的存储器。该电路在操作中,利用包括第一运动矢量的一个或多个运动矢量来预测当前图片的第一分区的第一组样本,并且利用来自不同于第一分区的第二分区的一个或多个运动矢量来预测该第一分区的第一部分的第二组样本。对第一分区的第一部分的第一组样本中的样本和第一分区的第一部分的第二组样本中的样本进行加权。基于第一运动矢量和第二运动矢量中的一个或两个,存储用于第一分区的第一部分的运动矢量。使用至少第一分区的第一部分的所加权的样本来解码第一分区。
在一个方面,图像解码器包括:熵解码器,其在操作中将编码比特流接收并解码以获得经量化的变换系数;逆量化器和逆变换器,其在操作中对经量化的变换系数进行逆量化以获得变换系数,并对变换系数进行逆变换以获得残差;加法器,其在操作中将从逆量化器和逆变换器输出的残差与从预测控制器输出的预测相加,以重构块;以及预测控制器,其耦合到帧间预测器、帧内预测器和存储器。所述帧间预测器在操作中,基于解码的参考图片中的参考块生成当前块的预测。所述帧内预测器在操作中,基于当前图片中的编码参考块生成当前块的预测。帧间预测器在操作中,利用包括第一运动矢量的一个或多个运动矢量来预测当前图片的第一分区的第一组样本,并且利用来自不同于第一分区的第二分区的一个或多个运动矢量来预测该第一分区的第一部分的第二组样本。对第一分区的第一部分的第一组样本中的样本和第一分区的第一部分的第二组样本中的样本进行加权。基于第一运动矢量和第二运动矢量中的一个或两个,存储用于第一分区的第一部分的运动矢量。使用至少第一分区的第一部分的所加权的样本来解码第一分区。
在一个方面,一种解码方法包括:利用包括第一运动矢量的一个或多个运动矢量来预测当前图片的第一分区的第一组样本;以及利用来自不同于第一分区的第二分区的一个或多个运动矢量来预测第一分区的第一部分的第二组样本。对第一分区的第一部分的第一组样本中的样本和第一分区的第一部分的第二组样本中的样本进行加权。基于第一运动矢量和第二运动矢量中的一个或两个,存储用于第一分区的第一部分的运动矢量。使用至少第一分区的第一部分的所加权的样本来解码第一分区。
本公开的实施例的一些实施方式可以提高编码效率,可以简单地是编码/解码过程,可以加速编码/解码过程的速度,可以高效地选择在编码和解码中使用的适当的组件/操作,例如适当的滤波器、块大小、运动矢量、参考图片、参考块等。
根据说明书和附图,所公开的实施例的附加益处和优点将变得显而易见。益处和/或优点可以通过说明书和附图的各种实施例和特征来单独获得,不需要提供所有实施例和特征以获得这样的益处和/或优点中的一个或多个。
应当注意,一般或特定实施例可以被实现为系统、方法、集成电路、计算机程序、存储介质或其任何选择性组合。
附图说明
图1是示出根据实施例的编码器的功能配置的框图。
图2是示出由编码器执行的整体编码过程的一个示例的流程图。
图3是示出块分割的一个示例的概念图。
图4A是示出切片配置的一个示例的概念图。
图4B是示出图块(tile)配置的一个示例的概念图。
图5A是表示各种变换类型的变换基函数的图。
图5B是示出示例空间变化变换(SVT)的概念图。
图6A是示出在自适应环路滤波器(ALF)中使用的滤波器形状的一个示例的概念图。
图6B是示出在ALF中使用的滤波器形状的另一示例的概念图。
图6C是示出在ALF中使用的滤波器形状的另一示例的概念图。
图7是示出用作解块滤波器(DBF)的环路滤波器的具体配置的一个示例的框图。
图8是示出关于块边界具有对称滤波特性的解块滤波器的示例的概念图。
图9是用于示出在其上执行解块滤波过程的块边界的概念图。
图10是示出Bs值的示例的概念图。
图11是示出由编码器的预测处理器执行的过程的一个示例的流程图。
图12是示出由编码器的预测处理器执行的过程的另一示例的流程图。
图13是示出由编码器的预测处理器执行的过程的另一示例的流程图。
图14是示出在实施例中的帧内预测中使用的六十七个帧内预测模式的概念图。
图15是示出帧间预测的示例基本处理流程的流程图。
图16是示出运动矢量的导出的一个示例的流程图。
图17是示出运动矢量的导出的另一示例的流程图。
图18是示出运动矢量的导出的另一示例的流程图。
图19是示出常规帧间模式下的帧间预测的示例的流程图。
图20是示出合并模式下的帧间预测的示例的流程图。
图21是用于示出合并模式下的运动矢量导出过程的一个示例的概念图。
图22是示出帧速率上转换(FRUC)过程的一个示例的流程图。
图23是用于示出沿着运动轨迹的两个块之间的图案匹配(pattern matching)(双边匹配)的一个示例的概念图。
图24是用于示出当前图片中的模板与参考图片中的块之间的图案匹配(模板匹配)的一个示例的概念图。
图25A是用于示出基于多个相邻块的运动矢量来导出每个子块的运动矢量的一个示例的概念图。
图25B是用于示出在使用三个控制点的仿射模式中导出每个子块的运动矢量的一个示例的概念图。
图26A是用于示出仿射合并模式的概念图。
图26B是用于示出使用两个控制点的仿射合并模式的概念图。
图26C是用于示出使用三个控制点的仿射合并模式的概念图。
图27是示出仿射合并模式下的过程的一个示例的流程图。
图28A是用于示出使用两个控制点的仿射帧间模式的概念图。
图28B是用于示出使用三个控制点的仿射帧间模式的概念图。
图29是用于示出仿射帧间模式下的过程的一个示例的流程图。
图30A是用于示出仿射帧间模式的概念图,其中当前块具有三个控制点,而相邻块具有两个控制点。
图30B是用于示出仿射帧间模式的概念图,其中当前块具有两个控制点,而相邻块具有三个控制点。
图31A是示出包括解码器运动矢量细化(DMVR)的合并模式过程的流程图。
图31B是用于示出DMVR过程的一个示例的概念图。
图32是示出了生成预测图像的一个示例的流程图。
图33是示出了生成预测图像的另一示例的流程图。
图34是示出了生成预测图像的另一示例的流程图。
图35是示出通过重叠块运动补偿(OBMC)过程执行的预测图像校正过程的一个示例的流程图。
图36是用于示出由OBMC过程执行的预测图像校正过程的一个示例的概念图。
图37是用于示出两个三角预测图像的生成的概念图。
图38是用于示出假设匀速直线运动的模型的概念图。
图39是用于示出使用由局部照明补偿(LIC)过程执行的亮度校正过程的预测图像生成方法的一个示例的概念图。
图40是示出编码器的安装示例的框图。
图41是示出根据实施例的解码器的功能配置的框图。
图42是示出解码器执行的整个解码过程的一个示例的流程图。
图43是示出由解码器的预测处理器执行的过程的一个示例的流程图。
图44是示出由解码器的预测处理器执行的过程的另一示例的流程图。
图45是示出解码器中的常规帧间模式下的帧间预测的示例的流程图。
图46是示出解码器的安装示例的框图。
图47是示出根据一个实施例的将图像块分割为至少包括第二分区以及具有非矩形形状(例如,三角形)的第一分区的多个分区并且执行进一步处理的总体过程流程的流程图。
图48示出了将图像块分割成具有非矩形形状(例如,三角形)的第一分区和第二分区(在所示示例中也具有非矩形形状)的两种示例性方法。
图49示出了边界平滑过程的一个示例,该边界平滑过程包括对基于第一分区预测的边界像素的第一值和基于第二分区预测的边界像素的第二值进行加权。
图50示出了边界平滑过程的另外三个样本,边界平滑过程包括对基于第一分区预测的边界像素的第一值和基于第二分区预测的边界像素的第二值进行加权。
图51是样本参数(“第一索引值”)和分别由参数编码的信息集的表。
图52是示出参数(索引值)的二值化的表。
图53是示出将图像块分割为多个分区的过程的流程图,该多个分区包括第二分区和具有非矩形形状的第一分区。
图54示出了将图像块分割为多个分区的示例,该多个分区包括第二分区和具有非矩形形状的第一分区(在所示的示例中为三角形)。
图55示出了将图像块分割为多个分区的另外的示例,该多个分区包括第二分区和具有非矩形形状的第一分区,该第一分区在所示示例中是具有至少五个边和角的多边形。
图56是示出边界平滑过程的流程图,该边界平滑过程包括对基于第一分区预测的边界像素的第一值和基于第二分区预测的边界像素的第二值进行加权。
图57A示出边界平滑过程的示例,其中,基于第一分区预测要加权的第一值并且基于第二分区预测要加权的第二值的边界像素。
图57B示出边界平滑过程的示例,其中,基于第一分区预测要加权的第一值并且基于第二分区预测要加权的第二值的边界像素。
图57C示出了边界平滑过程的示例,其中,基于第一分区预测要加权的第一值并且基于第二分区预测要加权的第二值的边界像素。
图57D示出边界平滑过程的示例,其中,基于第一分区预测要加权的第一值并且基于第二分区预测要加权的第二值的边界像素。
图58是示出在编码器侧执行的,基于表示分割的分区参数将图像块分割为多个分区并在熵编码中将包括分区参数的一个或多个参数写入比特流的方法的流程图,该多个分区包括第二分区和具有非矩形形状的第一分区。
图59是示出在解码器侧执行的,从比特流解析一个或多个参数,基于分区参数将图像块分割为多个分区,并对第一分区和第二分区进行解码的方法的流程图,该比特流包括指示将图像块分割为多个分区的分区参数,该多个分区包括第二分区和具有非矩形形状的第一分区。
图60是样本分区参数(“第一索引值”)以及可以是分别由分区参数联合编码的信息集合的表,所述样本分区参数分别指示将图像块分割为多个分区,该多个分区包括第二分区和具有非矩形形状的第一分区。
图61是第一参数和第二参数的样本组合的表,第一参数和第二参数中的一个是指示将图像块分割为多个分区的分区参数,所述多个分区包括第二分区和具有非矩形形状的第一分区。
图62是示出根据一个实施例的利用第一运动矢量预测当前图片的第一分区的第一组样本,利用第二运动矢量预测被包括在第一分区中的第一部分的第二组样本,对第一和第二组样本进行加权,存储用于第一分区的第一和第二运动矢量中的至少一个,并使用加权样本对第一分区进行编码或解码,并且执行进一步处理的过程流程的示例的流程图。
图63是用于示出将图像块分割为第一分区和第二分区的示例性方法的概念图。
图64是用于示出第一分区的邻近和非邻近的空间相邻分区的概念图。
图65是用于示出图像块的单预测和双预测运动矢量候选的概念图。
图66是用于示出第一分区的第一部分以及第一组样本和第二组样本的示例的概念图。
图67是用于示出第一分区的第一部分的概念图,该第一分区的第一部分是第一分区的与相邻分区的一部分重叠的一部分。
图68是用于示出第一运动矢量和第二运动矢量是指向不同参考图片列表中的不同图片的单预测运动矢量的示例情况的概念图。
图69是用于示出第一运动矢量和第二运动矢量是指向单个参考图片列表中的图片的单预测运动矢量的示例情况的概念图。
图70是用于示出第一运动矢量和第二运动矢量是指向相同参考图片列表中的相同参考图片的单预测运动矢量的示例情况的概念图。
图71是用于示出第一运动矢量和第二运动矢量是指向相同参考图片列表中的相同参考图片的单预测运动矢量的示例情况的概念图。
图72是用于示出第一运动矢量和第二运动矢量是指向相同参考图片列表中的相同参考图片的单预测运动矢量的示例情况的概念图。
图73是示出用于实现内容分发服务的内容提供系统的整体配置的框图。
图74是示出可缩放编码中的编码结构的一个示例的概念图。
图75是示出可缩放编码中的编码结构的一个示例的概念图。
图76是示出网页的显示屏幕的示例的概念图。
图77是示出网页的显示屏幕的示例的概念图。
图78是示出智能手机的一个示例的框图。
图79是示出智能手机的配置的示例的框图。
具体实施方式
在下文中,将参考附图描述实施例。注意,以下描述的实施例均示出一般或特定示例。在以下实施例中表示的数值、形状、材料、组件、组件的布置和连接、步骤、步骤的关系和顺序等仅是示例,而无意于限制权利要求的范围。
下面将描述编码器和解码器的实施例。实施例是编码器和解码器的示例,在本公开的方面的描述中呈现的过程和/或配置可应用于所述编码器和解码器。所述过程和/或配置也可以在不同于根据实施例的编码器和解码器的编码器和解码器中实现。例如,关于应用于实施例的过程和/或配置,可以实现以下任何一种:
(1)根据在本公开的方面的描述中呈现的实施例的编码器或解码器的任何组件可以用在本公开的方面的描述中任何地方呈现的另一组件替代或与之相组合。
(2)在根据实施例的编码器或解码器中,可以对由编码器或解码器的一个或多个组件执行的功能或过程进行任意改变,例如功能或过程的增加、替代、去除等。例如,任何功能或过程可以用在本公开的各方面的描述中任何地方出现的另一功能或过程替代或与之相组合。
(3)在由根据实施例的编码器或解码器实现的方法中,可以进行任意改变,例如添加、替代和去除该方法中包括的一个或多个过程。例如,该方法中的任何过程可以用在本公开的方面的描述中任何地方出现的另一过程替代或与之相组合。
(4)根据实施例的被包括在编码器或解码器中的一个或多个组件可以与本公开的各方面的描述中的任何地方呈现的组件相组合,可以与包括在本公开的各个方面的描述中的任何地方的一个或多个功能呈现的组件相组合,并且可以与实现由在本公开的各方面的描述中呈现的组件实现的一个或多个过程的组件相组合。
(5)可以将包括根据实施例的编码器或解码器的一个或多个功能的组件,或实现根据实施例的编码器或解码器的一个或多个过程的组件与在本公开的各方面的描述中的任何地方呈现的组件、与包括在本公开的各方面的描述中的任何地方呈现的一个或多个功能的组件、或与实现在本公开的各方面的描述中的任何地方呈现的一个或多个过程的组件相组合或进行替代。
(6)在由根据实施例的编码器或解码器实现的方法中,该方法中包括的任何过程可以与本公开的各方面的描述中任何地方呈现的过程或与任何对应或等同的过程进行替代或与之组合。
(7)可以将根据实施例的由编码器或解码器实现的方法中包括的一个或多个过程与本公开的各方面的描述中任何地方呈现的过程相组合。
(8)在本公开的方面的描述中呈现的过程和/或配置的实施方式不限于根据实施例的编码器或解码器。例如,可以在用于与实施例中公开的运动图像编码器或运动图像解码器不同的目的的设备中实现过程和/或配置。
(编码器)
首先,将描述根据实施例的编码器。图1是示出根据实施例的编码器100的功能配置的框图。编码器100是视频编码器,其以块为单位对视频进行编码。
如图1所示,编码器100是一种以块为单位对图像进行编码的装置,并且包括分割器102、减法器104、变换器106、量化器108、熵编码器110、逆量化器112、逆变换器114、加法器116、块存储器118、环路滤波器120、帧存储器122、帧内预测器124、帧间预测器126和预测控制器128。
编码器100被实现为例如通用处理器和存储器。在这种情况下,当处理器执行存储在存储器中的软件程序时,处理器用作分割器102、减法器104、变换器106、量化器108、熵编码器110、逆量化器112、逆变换器114、加法器116、环路滤波器120、帧内预测器124、帧间预测器126和预测控制器128。可替代地,编码器100可以被实现为对应于分割器102、减法器104、变换器106、量化器108、熵编码器110、逆量化器112、逆变换器114、加法器116、环路滤波器120、帧内预测器124、帧间预测器126和预测控制器128的一个或多个专用电子电路。
在下文中,描述了由编码器100执行的过程的总体流程,然后将描述被包括在编码器100中的每个构成元件。
(编码过程的总体流程)
图2是示出由编码器100执行的整体编码过程的一个示例的流程图。
首先,编码器100的分割器102将被包括在作为视频的输入图像中的每个图片分割成具有固定大小(例如,128×128像素)的多个块(步骤Sa_1)。然后,分割器102为固定尺寸的块选择分割图案(也称为块形状)(步骤Sa_2)。换句话说,分割器102进一步将固定尺寸的块分割成形成所选择的分割图案的多个块。编码器100针对多个块中的每个执行针对块(即,要编码的当前块)的步骤Sa_3至Sa_9。
换句话说,包括帧内预测器124、帧间预测器126和预测控制器128的全部或一部分的预测处理器生成待编码的当前块(也称为当前块)的预测信号(也称为预测块)(步骤Sa_3)。
接下来,减法器104生成当前块和预测块之间的差作为预测残差(也称为差块(difference block))(步骤Sa_4)。
接下来,变换器106对差块进行变换,并且量化器108对结果进行量化,以生成多个量化系数(quantized coefficient)(步骤Sa_5)。注意,具有多个量化系数的块也称为系数块。
接下来,熵编码器110对系数块和与预测信号的生成有关的预测参数进行编码(具体地,熵编码)以生成编码信号(步骤Sa_6)。要注意的是,编码信号也被称为编码比特流、压缩比特流或流。
接下来,逆量化器112对系数块执行逆量化,并且逆变换器114对结果执行逆变换,以恢复多个预测残差(即,差块)(步骤Sa_7)。
接下来,加法器116将预测块添加到恢复的差块,以将当前块重构为重构图像(也称为重构块或解码图像块)(步骤Sa_8)。这样,生成了重构图像。
当生成重构图像时,环路滤波器120根据需要对重构图像执行滤波(步骤Sa_9)。
编码器100然后确定整个图片的编码是否已经完成(步骤Sa_10)。当确定尚未完成编码时(步骤Sa_10中为“否”),重复执行来自步骤Sa_2的过程。
尽管在上述示例中,编码器100为固定大小的块选择一个分割图案,并根据该分割图案对每个块进行编码,但是要注意,可以根据多个分割图案中的对应一个对每个块进行编码。在这种情况下,编码器100可以估计多个分割图案中的每一个的成本,并且例如可以选择可通过根据产生最小成本的分割图案进行编码来获得的编码信号,作为被输出的编码信号。
如图所示,步骤Sa_1至Sa_10中的过程由编码器100顺序执行。可替代地,可以并行执行两个或更多个过程,可以对过程进行重新排序,等等。
(分割器)
分割器102将输入视频中包括的每个图片分割成多个块,并且将每个块输出到减法器104。例如,分割器102首先将图片分割成固定大小(例如,128×128)的块。可以采用其他固定的块大小。固定大小的块也称为编码树单元(CTU)。然后,分割器102基于递归四叉树和/或二叉树块分割,将每个固定大小的块分割为可变大小的块(例如,64×64或更小)。换句话说,分割器102选择分割图案。可变大小块也称为编码单元(CU)、预测单元(PU)或变换单元(TU)。要注意的是,在各种处理示例中,不需要在CU、PU和TU之间进行区分;图片中的全部或一些块可以以CU、PU或TU为单位进行处理。
图3是示出根据实施例的块分割的一个示例的概念图。在图3中,实线表示通过四叉树块分割而分割的块的块边界,而虚线表示通过二叉树块分割而分割的块的块边界。
在此,块10是具有128×128像素的正方形块(128×128块)。首先将该128×128块10分割成四个正方形的64×64块(四叉树块分割)。
左上方的64×64块进一步垂直分割为两个矩形32×64块,而左方的32×64块进一步垂直分割为两个矩形16×64块(二叉树块分割)。结果,左上方的64×64块被分割成两个16×64块11和12以及一个32×64块13。
右上方的64×64块在水平方向上分割为两个矩形64×32块14和15(二叉树块分割)。
首先将左下方的64×64块分割成四个正方形的32×32块(四叉树块分割)。在四个32×32块中的左上方块和右下方块被进一步分割。左上方的32×32块在垂直方向上分割为两个矩形的16×32块,并且右方的16×32块在水平方向上进一步分割为两个16×16块(二叉树块分割)。右下方的32×32块被水平分割为两个32×16块(二叉树块分割)。结果,左下方的64×64块被分割成16×32块16、两个16×16块17和18、两个32×32块19和20以及两个32×16块21和22。
右下方的64×64块23未被分割。
如上所述,在图3中,基于递归四叉树和二叉树块分割,块10被分割为十三个可变大小块11至23。这种分割类型也称为四叉树加二叉树(QTBT)分割。
要注意的是,在图3中,一个块被分割成四个或两个块(四叉树或二叉树块分割),但是分割不限于这些示例。例如,可以将一个块分割成三个块(三元块分割)。包括这种三元块分割的分割也被称为多类型树(MBT)分割。
(图片结构:切片/图块)
可以以一个或多个切片或图块为单位配置图片,以便对图片进行并行解码。以一个或多个切片或图块为单位配置的图片可以由分割器102配置。
切片是图片中包括的基本编码单位。图片可以包括例如一个或多个切片。另外,切片包括一个或多个连续的编码树单元(CTU)。
图4A是示出切片构造的一个示例的概念图。例如,图片包括11×8个CTU,并被分割为四个切片(切片1-4)。切片1包括16个CTU,切片2包括21个CTU,切片3包括29个CTU,并且切片4包括22个CTU。在此,图片中的每个CTU都属于切片之一。每个切片的形状是可通过水平分割图片而获得的形状。每个切片的边界不必与图像末端一致,并且可以与图像中CTU之间的任何边界一致。切片中的CTU的处理顺序(编码顺序或解码顺序)例如是光栅扫描顺序。切片包括报头信息和编码数据。切片的特征可以在报头信息中描述。这些特征包括切片中顶部CTU的CTU地址、切片类型等。
图块是图片中包括的矩形区域的单位。可以以光栅扫描顺序为每个图块分配称为TileId的数字。
图4B是指示图块配置的示例的概念图。例如,图片包括11×8个CTU,并被分割成四个矩形区域的图块(图块1-4)。当使用图块时,CTU的处理顺序从不使用图块的情况下的处理顺序改变。当不使用图块时,图片中的CTU以光栅扫描顺序处理。在使用图块时,每个图块中的至少一个CTU以光栅扫描顺序进行处理。例如,如图4B所示,图块1中包括的CTU的处理顺序是从图块1的第一行的左端开始向图块1的第一行的右端、并且然后从图块1的第二行的左端开始向图块1的第二行的右端的顺序。
要注意的是,一个图块可以包括一个或多个切片,并且一个切片可以包括一个或多个图块。
(减法器)
减法器104以从分割器102输入并由分割器102分割的块为单位,从原始信号(原始样本)中减去预测信号(从下面指示的预测控制器128输入的预测样本)。换句话说,减法器104计算待编码块(以下也称为当前块)的预测误差(也称为残差)。减法器104然后将计算出的预测误差(残差)输出到变换器106。
原始信号是已经输入到编码器100的信号,并且表示视频中包括的每个图片的图像(例如,亮度信号和两个色度信号)。在下文中,表示图像的信号也称为样本。
(变换器)
变换器106将空间域中的预测误差变换成频域中的变换系数,并将变换系数输出到量化器108。更具体地,变换器106将例如定义的离散余弦变换(DCT)或离散正弦变换(DST)应用于空间域中的预测误差。定义的DCT或DST可以是预定义的。
要注意的是,变换器106可以从多个变换类型之中自适应地选择变换类型,并且可以通过使用与所选择的变换类型相对应的变换基函数来将预测误差变换为变换系数。这种变换也称为显式多核变换(EMT)或自适应多变换(AMT)。
变换类型包括例如DCT-II、DCT-V、DCT-VIII、DST-I和DST-VII。图5A是指示用于示例变换类型的变换基函数的图。在图5A中,N表示输入像素的数量。例如,从多个变换类型之中选择变换类型可以取决于预测类型(帧内预测和帧间预测之一),并且可以取决于帧内预测模式。
指示是否应用这种EMT或AMT的信息(例如,称为EMT标志或AMT标志)以及指示所选择的变换类型的信息通常在CU级别上用信号发送(signal)。要注意的是,这种信息的信号发送不一定需要在CU级别上执行,而可以在另一个级别(例如,在比特序列级别、图片级别、切片级别、图块级别或CTU级别)上执行。
另外,变换器106可以重新变换变换系数(变换结果)。这种重新变换也称为自适应二次变换(AST)或不可分离的二次变换(NSST)。例如,变换器106以与帧内预测误差相对应的变换系数块中包括的子块(例如,4×4子块)为单位执行重新变换。指示是否应用NSST的信息以及与要在NSST中使用的变换矩阵有关的信息通常在CU级别上用信号发送。要注意的是,这种信息的信号发送不一定需要在CU级别上执行,而可以在另一个级别(例如,在序列级别、图片级别、切片级别、图块级别或CTU级别)上执行。
变换器106可以采用可分离变换和不可分离变换。可分离变换是这样一种方法:其中通过根据输入的维数对多个方向中的每一个单独地执行变换,来多次执行变换。不可分离变换是一种执行集体变换的方法,其中将多维输入中的两个或更多个维度集体地视为单个维度。
在不可分离变换的一个示例中,当输入是4×4块时,该4×4块被视为包括16个元素的单个数组,并且该变换将16×16变换矩阵应用于该数组。
在不可分离变换的另一个示例中,将4×4输入块视为包括16个元素的单个数组,并且然后可以执行对数组进行多次给定旋转的变换(超立方体给定变换)。
在变换器106中的变换中,可以根据CU中的区域来切换要变换到频域中的基础的类型。示例包括空间变化的变换(SVT)。如图5B所示,在SVT中,CU在水平或垂直方向上被分割成两个相等的区域,并且仅一个区域被变换到频域中。可以为每个区域设置变换基础类型。例如,使用DST7和DST8。在此示例中,仅CU中的这两个区域之一被变换,并且另一个不被变换。但是,这两个区域都可以被变换。另外,分割方法不限于分割成两个相等的区域,而是可以更加灵活。例如,CU可以被分割成四个相等的区域,或者指示分割的信息可以被单独地编码并且以与CU分割相同的方式用信号发送。要注意的是,SVT也被称为子块变换(SBT)。
(量化器)
量化器108量化从变换器106输出的变换系数。更具体地,量化器108以确定的扫描顺序扫描当前块的变换系数,并且基于与这些变换系数相对应的量化参数(QP)来量化扫描的变换系数。量化器108然后将当前块的经量化的变换系数(以下也称为量化系数)输出到熵编码器110和逆量化器112。确定的扫描顺序可以是预定的。
所确定的扫描顺序是用于对变换系数进行量化/逆量化的顺序。例如,确定的扫描顺序可以被定义为频率的升序(从低频到高频)或频率的降序(从高频到低频)。
量化参数(QP)是定义量化步长(量化宽度)的参数。例如,当量化参数的值增加时,量化步长也增加。换句话说,当量化参数的值增加时,量化误差增加。
另外,量化矩阵可以用于量化。例如,可以对应于诸如4×4和8×8之类的频率变换大小、诸如帧内预测和帧间预测之类的预测模式、以及诸如亮度和色度像素分量之类的像素分量,来使用几种量化矩阵。要注意的是,量化是指将以与确定的水平相对应地确定的间隔进行采样的值数字化。在本技术领域中,可以使用诸如舍入和缩放之类的其他表达来引用量化,并且可以采用舍入和缩放。所确定的间隔和水平可以是预定的。
使用量化矩阵的方法包括使用已直接在编码器侧设置的量化矩阵的方法和使用已设置为默认值(默认矩阵)的量化矩阵的方法。在编码器侧,可以通过直接设置量化矩阵来设置适合于图像的特征的量化矩阵。然而,这种情况具有增加用于对量化矩阵进行编码的编码量的缺点。
存在不使用量化矩阵来量化高频系数和低频系数的方法。要注意的是,该方法等效于使用其系数具有相同值的量化矩阵(平面矩阵)的方法。
可以使用例如序列参数集(SPS)或图片参数集(PPS)来指定量化矩阵。SPS包括用于序列的参数,并且PPS包括用于图片的参数。SPS和PPS中的每一个都可以简称为参数集。
(熵编码器)
熵编码器110基于已经从量化器108输入的量化系数来生成编码信号(编码比特流)。更具体地,例如,熵编码器110对量化系数进行二值化并且对二进制信号进行算术编码,并且输出压缩比特流或序列。
(逆量化器)
逆量化器112对已经从量化器108输入的量化系数进行逆量化。更具体地,逆量化器112以确定的扫描顺序对当前块的量化系数进行逆量化。逆量化器112然后将当前块的逆量化后的变换系数输出到逆变换器114。确定的扫描顺序可以是预定的。
(逆变换器)
逆变换器114通过对已从逆量化器112输入的变换系数进行逆变换来恢复预测误差(残差)。更具体地说,逆变换器114通过对变换系数应用与变换器106所施加的变换相对应的逆变换来恢复当前块的预测误差。逆变换器114然后将恢复的预测误差输出到加法器116。
注意,由于信息在量化中丢失,所以恢复的预测误差与由减法器104计算出的预测误差不匹配。换句话说,恢复的预测误差通常包括量化误差。
(加法器)
加法器116通过将从逆变换器114输入的预测误差和已从预测控制器128输入的预测样本相加来重构当前块。加法器116然后将重构的块输出到块存储器118和环路滤波器120。重构块也称为本地解码块。
(块存储器)
块存储器118例如是用于将块存储在要在帧内预测中参考的要编码的图片(在下文中称为当前图片)中的存储装置。更具体地说,块存储器118存储从加法器116输出的重构块。
(帧存储器)
帧存储器122例如是用于存储在帧间预测中使用的参考图片的存储装置,并且也被称为帧缓冲器。更具体地说,帧存储器122存储由环路滤波器120滤波的重构块。
(环路滤波器)
环路滤波器120将环路滤波器应用于由加法器116重构的块,并将滤波后的重构块输出至帧存储器122。环路滤波器是在编码环路中使用的滤波器(环路内滤波器),并且包括例如:解块滤波器(DF或DBF)、样本自适应偏移(SAO)和自适应环路滤波器(ALF)。
在ALF中,应用了用于消除压缩伪影的最小二乘误差滤波器。例如,针对当前块中的2×2子块中的每一个,应用基于局部梯度的方向和活动性(activity)而从多个滤波器之中选择的一个滤波器。
更具体地,首先,将每个子块(例如,每个2×2子块)分类为多个类别(例如,十五或二十五个类别)中的一个。子块的分类基于梯度方向性和活动性。例如,基于梯度方向性D(例如,0至2或0至4)和梯度活动性A(例如,0至4)来导出分类索引C(例如,C=5D+A)。然后,基于分类索引C,将每个子块分类为多个类别中的一个。
例如,通过比较多个方向(例如,水平方向、垂直方向和两个对角线方向)的梯度来计算梯度方向性D。而且,例如,通过将多个方向的梯度相加并对相加结果进行量化来计算出梯度活动性A。
基于这种分类的结果,从多个滤波器之中确定要用于每个子块的滤波器。
要在ALF中使用的滤波器形状是例如圆形对称滤波器形状。图6A至图6C示出了ALF中使用的滤波器形状的示例。图6A示出了5×5菱形滤波器,图6B示出了7×7菱形滤波器,并且图6C示出了9×9菱形滤波器。指示滤波器形状的信息通常在图像级别上用信号发送。要注意的是,这种指示滤波器形状的信息的信号发送不一定需要在图片级别上执行,而可以在另一级别(例如,在序列级别、切片级别、图块级别、CTU级别或CU级别)上执行。
例如,在图像级别或CU级别上确定ALF的开启或关闭。例如,可以在CU级别上做出是否将ALF应用于亮度的决定,并且可以在图片级别上做出是否将ALF应用于色度的决定。指示ALF的开启或关闭的信息通常在图片级别或CU级别上用信号发送。注意,指示ALF的开启或关闭的信息的信号发送不一定需要在图片级别或CU级别上执行,并且可以在另一级别(例如,在序列级别、切片级别、图块级别或CTU级别)上执行。
通常在图像级别上用信号发送为多个可选择的滤波器(例如,十五个或多达二十五个滤波器)设置的系数。要注意的是,所设置的系数的信号发送不一定需要在图片级别上执行,而可以在另一级别(例如,在序列级别、切片级别、图块级别、CTU级别、CU级别或子块级别)上执行。
(环路滤波器>解块滤波器)
在解块滤波器中,环路滤波器120对重构图像中的块边界执行滤波过程,以便减少在块边界处发生的失真。
图7是示出用作解块滤波器的环路滤波器120的特定配置的一个示例的框图。
环路滤波器120包括:边界确定器1201;滤波器确定器1203;滤波执行器1205;过程确定器1208;滤波器特性确定器1207;以及开关1202、1204和1206。
边界确定器1201确定在块边界周围是否存在要被解块滤波的像素(即,当前像素)。边界确定器1201然后将确定结果输出到开关1202和处理确定器1208。
在边界确定器1201已确定在块边界周围存在当前像素的情况下,开关1202将未滤波的图像输出到开关1204。在相反的情况下,其中边界确定器1201已确定在块边界周围不存在当前像素,开关1202将未滤波的图像输出到开关1206。
滤波器确定器1203基于位于当前像素周围的至少一个周围像素的像素值,确定是否对当前像素执行解块滤波。然后,滤波器确定器1203将确定结果输出到开关1204和处理确定器1208。
在滤波器确定器1203已经确定要对当前像素执行解块滤波的情况下,开关1204将通过开关1202获得的未滤波图像输出到滤波执行器1205。在相反的情况下,其中滤波器确定器1203已经确定了不对当前像素执行解块滤波,开关1204将通过开关1202获得的未滤波图像输出到开关1206。
当通过开关1202和1204获得未滤波图像时,滤波执行器1205针对当前像素执行具有由滤波器特性确定器1207确定的滤波特性的解块滤波。滤波执行器1205然后将滤波后的像素输出至开关1206。
在处理确定器1208的控制下,开关1206选择性地输出尚未被解块滤波的像素和已被滤波执行器1205解块滤波的像素。
处理确定器1208基于边界确定器1201和滤波器确定器1203做出的确定结果来控制开关1206。换句话说,当边界确定器1201已经确定块边界周期存在当前像素并且滤波器确定器1203已经确定对当前像素执行解块滤波时,处理确定器1208使开关1206输出已被解块滤波的像素。另外,除了上述情况之外,处理确定器1208使开关1206输出尚未被解块滤波的像素。通过以这种方式重复像素的输出,从开关1206输出滤波后的图像。
图8是示出关于块边界具有对称滤波特性的解块滤波器的示例的概念图。
在解块滤波器过程中,使用像素值和量化参数来选择具有不同特性的两个解块滤波器之一,即强滤波器和弱滤波器。在强滤波器的情况下,如图8所示,跨块边界存在像素p0至p2和像素q0至q2,通过例如根据以下表达式执行计算,将相应像素q0至q2的像素值改变为像素值q’0至q’2。
q’0=(p1+2×p0+2×q0+2×q1+q2+4)/8
q’1=(p0+q0+q1+q2+2)/4
q’2=(p0+q0+q1+3×q2+2×q3+4)/8
注意,在以上表达式中,p0至p2和q0至q2是相应像素p0至p2和像素q0至q2的像素值。另外,q3是相对于块边界位于像素q2的相反侧的相邻像素q3的像素值。另外,在每个表达式的右侧,与要用于解块滤波的像素的相应像素值相乘的系数是滤波器系数。
此外,在解块滤波中,可以执行削波(clipping),使得计算出的像素值不设置在阈值以上。在削波过程中,使用基于量化参数确定的阈值,将根据以上表达式计算的像素值削波为根据“计算像素值±2×阈值”获得的值。这样,可以防止过度的平滑。
图9是用于示出在其上执行解块滤波过程的块边界的概念图。图10是示出Bs值的示例的概念图。
在其上执行解块滤波过程的块边界例如是如图9所示的具有8×8像素块的预测单元(PU)之间的边界或变换单元(TU)之间的边界。解块滤波过程可以以四行或四列为单位执行。首先,对于图9中所示的块P和块Q,如图10所示确定边界强度(Bs)值。
根据图10中的Bs值,确定是否使用不同的强度对属于同一图像的块边界执行解块滤波过程。当Bs值为2时,执行针对色度信号的解块滤波过程。当Bs值为1以上且满足确定条件时,对亮度信号执行解块滤波过程。确定的条件可以是预定的。要注意的是,用于确定Bs值的条件不限于图10中所示的那些,Bs值可以基于另一个参数来确定。
(预测处理器(帧内预测器、帧间预测器、预测控制器))
图11是示出由编码器100的预测处理器执行的过程的一个示例的流程图。要注意的是,预测处理器包括以下构成元件的全部或一部分:帧内预测器124;帧间预测器126;以及预测控制器128。
预测处理器生成当前块的预测图像(步骤Sb_1)。该预测图像也称为预测信号或预测块。要注意的是,预测信号例如是帧内预测信号或帧间预测信号。具体地,预测处理器使用已经通过生成预测块、生成差块、生成系数块、恢复差块以及生成解码图像块来获得的重构图像,来生成当前块的预测图像。
重构图像可以是例如参考图片中的图像,或者是当前图片中的编码块的图像,当前图片是包括当前块的图片。当前图片中的编码块例如是当前块的相邻块。
图12是示出由编码器100的预测处理器执行的过程的另一示例的流程图。
预测处理器使用第一方法(步骤Sc_1a)生成预测图像,使用第二方法(步骤Sc_1b)生成预测图像,并且使用第三方法(步骤Sc_1c)生成预测图像。第一方法、第二方法和第三方法可以是用于生成预测图像的彼此不同的方法。第一至第三方法中的每一个可以是帧间预测方法、帧内预测方法或另一预测方法。在这些预测方法中可以使用上述重构图像。
接下来,预测处理器选择在步骤Sc_1a、Sc_1b和Sc_1c中生成的多种预测方法中的任何一种(步骤Sc_2)。预测图像的选择(即用于获得最终预测图像的方法或模式的选择)可以通过针对每个生成的预测图像计算成本并且基于该成本来进行。可替代地,可以基于在编码过程中使用的参数来进行预测图像的选择。编码器100可以将用于识别选择的预测图像、方法或模式的信息转换为编码信号(也称为编码比特流)。该信息可以是例如标志等。以这种方式,解码器能够根据在编码器100中基于信息选择的方法或模式来生成预测图像。要注意的是,在图12所示的示例中,在使用相应方法生成预测图像之后,预测处理器选择任何预测图像。然而,预测处理器可以在生成预测图像之前基于在上述编码过程中使用的参数来选择方法或模式,并且可以根据选择的方法或模式来生成预测图像。
例如,第一方法和第二方法可以分别是帧内预测和帧间预测,并且预测处理器可以从根据预测方法生成的预测图像中为当前块选择最终预测图像。
图13是示出由编码器100的预测处理器执行的过程的另一示例的流程图。
首先,预测处理器使用帧内预测来生成预测图像(步骤Sd_1a),并且使用帧间预测来生成预测图像(步骤Sd_1b)。注意,通过帧内预测生成的预测图像也称为帧内预测图像,并且通过帧间预测生成的预测图像也称为帧间预测图像。
接下来,预测处理器估计帧内预测图像和帧间预测图像中的每一个(步骤Sd_2)。估计中可以使用成本。换句话说,预测处理器针对帧内预测图像和帧间预测图像中的每一个计算成本C。可以根据RD优化模型的表达式来计算成本C,例如,C=D+λ×R。在该表达式中,D表示预测图像的编码失真,并且例如表示为当前块的像素值和预测图像的像素值之间的绝对差的总和。另外,R表示预测图像的预测编码量,具体而言,是对用于生成预测图像的运动信息等进行编码所需的编码量。另外,λ表示例如根据拉格朗日乘法器的方法的乘法器。
然后,预测处理器在帧内预测图像和帧间预测图像之中选择已经计算出最小成本C的预测图像作为当前块的最终预测图像(步骤Sd_3)。换句话说,选择用于生成当前块的预测图像的预测方法或模式。
(帧内预测器)
帧内预测器124通过参考当前图片中的以及存储在块存储器118中的一个或多个块执行当前块的帧内预测(也称为帧内的预测),来生成预测信号(帧内预测信号)。更具体地,帧内预测器124通过参考与当前块相邻的一个或多个块的样本(例如,亮度和/或色度值)执行帧内预测,来生成帧内预测信号,并且然后将帧内预测信号输出至预测控制器128。
例如,帧内预测器124通过使用已经定义的多个帧内预测模式之中的一种模式来执行帧内预测。帧内预测模式包括一个或多个非定向预测模式和多个定向预测模式。定义的模式可以是预定义的。
一种或多种非定向预测模式包括例如在H.265/高效视频编码(HEVC)标准中定义的平面预测模式和DC预测模式。
多个定向预测模式例如包括在H.265/HEVC标准中定义的33个定向预测模式。要注意的是,除了33个定向预测模式之外,多个定向预测模式还可以包括32个定向预测模式(总共65个定向预测模式)。图14是示出可以在帧内预测中使用的总共六十七个帧内预测模式(两个非定向预测模式和六十五个定向预测模式)的概念图。实线箭头表示在H.265/HEVC标准中定义的33个方向,而虚线箭头表示附加的32个方向(图14中未示出两个非定向预测模式)。
在各种处理示例中,可以在色度块的帧内预测中参考亮度块。换句话说,可以基于当前块的亮度分量来预测当前块的色度分量。这种帧内预测也称为跨分量线性模型(CCLM)预测。可以添加针对色度块的帧内预测模式(其中,这样的亮度块被参考)(也称为例如CCLM模式),作为针对色度块的帧内预测模式之一。
帧内预测器124可以基于水平/垂直参考像素梯度来校正帧内预测的像素值。伴随这种校正的帧内预测也称为位置相关帧内预测组合(PDPC)。指示是否应用PDPC的信息(例如,称为PDPC标志)通常在CU级别上用信号发送。要注意的是,这种信息的信号发送不一定需要在CU级别上执行,而可以在另一个级别(例如,在序列级别、图片级别、切片级别、图块级别或CTU级别)上执行。
(帧间预测器)
帧间预测器126通过参考参考图片中的与当前图片不同且存储在帧存储器122中的一个或多个块来执行当前块的帧间预测(也称为帧间的预测),来生成预测信号(帧间预测信号)。帧间预测以当前块或当前块中的当前子块(例如,4×4块)为单位执行。例如,帧间预测器126在当前块或当前子块的参考图片中执行运动估计,并找出最佳匹配当前块或当前子块的参考块或子块。然后,帧间预测器126获得补偿从参考块或子块到当前块或子块的运动或变化的运动信息(例如,运动矢量)。帧间预测器126通过基于运动信息执行运动补偿(或运动预测)来生成当前块或子块的帧间预测信号。帧间预测器126将生成的帧间预测信号输出到预测控制器128。
在运动补偿中使用的运动信息可以以各种形式被信号发送为帧间预测信号。例如,可以用信号发送运动矢量。作为另一示例,可以用信号发送运动矢量和运动矢量预测器之间的差。
(帧间预测的基本流程)
图15是示出帧间预测的示例基本处理流程的流程图。
首先,帧间预测器126生成预测信号(步骤Se_1至Se_3)。接下来,减法器104生成当前块和预测图像之间的差作为预测残差(步骤Se_4)。
这里,在预测图像的生成中,帧间预测器126通过确定当前块的运动矢量(MV)(步骤Se_1和Se_2)和运动补偿(步骤Se_3),来生成预测图像。此外,在确定MV时,帧间预测器126通过选择运动矢量候选(MV候选)(步骤Se_1)和导出MV(步骤Se_2)来确定MV。通过例如从MV候选列表中选择至少一个MV候选来进行MV候选的选择。可替代地,在MV的导出中,帧间预测器126可以进一步从至少一个MV候选中选择至少一个MV候选,并且将所选择的至少一个MV候选确定为当前块的MV。可替代地,帧间预测器126可以通过在由所选择的至少一个MV候选中的每个MV候选所指定的参考图片区域中执行估计,来确定当前块的MV。注意,参考图片区域中的估计可以被称为运动估计。
另外,尽管在上述示例中由帧间预测器126执行步骤Se_1至Se_3,但是可以由编码器100中包括的另一构成元件执行例如步骤Se_1、步骤Se_2等的过程。
(运动矢量导出流程)
图16是示出运动矢量的导出的一个示例的流程图。
帧间预测器126以用于对运动信息(例如,MV)进行编码的模式来导出当前块的MV。在这种情况下,例如,运动信息被编码为预测参数,并用信号发送。换句话说,编码的运动信息被包括在编码信号(也称为编码比特流)中。
可替代地,帧间预测器126以不对运动信息进行编码的模式来导出MV。在这种情况下,在编码信号中不包括运动信息。
在此,MV导出模式可以包括稍后描述的常规帧间模式、合并模式、FRUC模式、仿射模式等。在模式之中的对运动信息进行编码的模式包括常规帧间模式、合并模式、仿射模式(具体来说,仿射帧间模式和仿射合并模式)等。要注意,运动信息可以不仅包括MV,而且包括运动矢量预测器选择信息,其将在稍后描述。其中没有任何运动信息被编码的模式包括FRUC模式等。帧间预测器126从这些模式中选择用于导出当前块的MV的模式,并使用所选择的模式来导出当前块的MV。
图17是示出运动矢量的导出的另一示例的流程图。
帧间预测器126以对MV差进行编码的模式来导出当前块的MV。在这种情况下,例如,MV差被编码为预测参数,并且用信号发送。换句话说,编码的MV差被包括在编码信号中。MV差是当前块的MV与MV预测器(MV predictor)之间的差。
可替代地,帧间预测器126以不对MV差编码的模式导出MV。在这种情况下,在编码信号中不包括编码的MV差。
在此,如上所述,MV导出模式包括稍后描述的常规帧间模式、合并模式、FRUC模式、仿射模式等。在模式之中的对MV差进行编码的模式包括常规帧间模式、仿射模式(具体说来,仿射帧间模式)等。其中没有对MV差进行编码的模式包括FRUC模式、合并模式、仿射模式(具体地,仿射合并模式)等。帧间预测器126从多个模式中选择用于导出当前块的MV的模式,并使用所选择的模式来导出当前块的MV。
(运动矢量导出流程)
图18是示出运动矢量的导出的另一示例的流程图。作为帧间预测模式的MV导出模式包括多个模式,并且大致分为其中对MV差进行编码的模式和其中不对运动矢量差进行编码的模式。不对MV差进行编码的模式包括合并模式、FRUC模式、仿射模式(具体地,仿射合并模式)等。这些模式将在后面详细描述。简而言之,合并模式是用于通过从编码的周围块中选择运动矢量来导出当前块的MV的模式,而FRUC模式是用于通过在编码区域之间执行估计来导出当前块的MV的模式。仿射模式是用于在假设仿射变换的情况下导出当前块中包括的多个子块中的每个子块的运动矢量作为当前块的MV的模式。
更具体地,如当帧间预测模式信息指示0(Sf_1中为0)时,帧间预测器126使用合并模式(Sf_2)导出运动矢量。当帧间预测模式信息指示1(Sf_1中为1)时,帧间预测器126使用FRUC模式(Sf_3)导出运动矢量。当帧间预测模式信息指示2(Sf_1中为2)时,帧间预测器126使用仿射模式(具体地说,仿射合并模式)(Sf_4)导出运动矢量。当帧间预测模式信息指示3(Sf_1中为3)时,帧间预测器126使用对MV差进行编码的模式(例如,常规帧间模式(Sf_5))来导出运动矢量。
(MV导出>常规帧间模式)
常规帧间模式是一种帧间预测模式,用于从MV候选所指定的参考图片区域中基于与当前块的图像相似的块来导出当前块的MV。在该常规帧间模式下,对MV差进行编码。
图19是示出常规帧间模式下的帧间预测的示例的流程图。
首先,帧间预测器126基于诸如在时间上或空间上围绕当前块的多个编码块的MV之类的信息,获得当前块的多个MV候选(步骤Sg_1)。换句话说,帧间预测器126生成MV候选列表。
接下来,帧间预测器126根据所确定的优先级顺序从在步骤Sg_1中获得的多个MV候选中提取N个(2或更大的整数)MV候选作为运动矢量预测器候选(也称为MV预测器候选)(步骤Sg_2)。注意,可以针对N个MV候选中的每一个预先确定优先级顺序。
接下来,帧间预测器126从N个运动矢量预测器候选中选择一个运动矢量预测器候选,作为当前块的运动矢量预测器(也称为MV预测器)(步骤Sg_3)。此时,帧间预测器126在流中编码用于识别所选择的运动矢量预测器的运动矢量预测器选择信息。应当注意,流是如上所述的编码信号或编码比特流。
接下来,帧间预测器126通过参考编码的参考图片来导出当前块的MV(步骤Sg_4)。此时,帧间预测器126还在流中将导出的MV和运动矢量预测器之间的差值编码为MV差。要注意的是,编码的参考图片是包括在编码之后已经被重构的多个块的图片。
最后,帧间预测器126通过使用导出的MV和编码的参考图片执行当前块的运动补偿,来生成当前块的预测图像(步骤Sg_5)。注意,如上所述,预测图像是帧间预测信号。
另外,将指示用于生成预测图像的帧间预测模式(在上述示例中为常规帧间模式)的信息例如编码为预测参数。
应当注意,MV候选列表也可以用作在另一模式中使用的列表。另外,与MV候选列表有关的过程可以应用于与用于另一种模式的列表有关的过程。与MV候选列表有关的过程包括例如从MV候选列表中提取或选择MV候选、MV候选的重新排序或MV候选的删除。
(MV导出>合并模式)
合并模式是一种帧间预测模式,用于从MV候选列表中选择MV候选作为当前块的MV,从而导出MV。
图20是示出合并模式下的帧间预测的示例的流程图。
首先,帧间预测器126基于诸如在时间上或空间上围绕当前块的多个编码块的MV之类的信息,来获得当前块的多个MV候选(步骤Sh_1)。换句话说,帧间预测器126生成MV候选列表。
接下来,帧间预测器126从在步骤Sh_1中获得的多个MV候选中选择一个MV候选,从而导出当前块的MV(步骤Sh_2)。此时,帧间预测器126在流中对用于识别所选择的MV候选的MV选择信息进行编码。
最后,帧间预测器126通过使用导出的MV和编码的参考图片执行当前块的运动补偿,来生成当前块的预测图像(步骤Sh_3)。
另外,例如,将指示用于生成预测图像并被包括在编码信号中的帧间预测模式(在以上示例中为合并模式)的信息编码为预测参数。
图21是用于示出合并模式下的当前图片的运动矢量导出过程的一个示例的概念图。
首先,生成其中注册了MV预测器候选的MV候选列表。MV预测器候选的示例包括:空间相邻的MV预测器,其是在空间上围绕当前块定位的多个编码块的MV;时间上相邻的MV预测器,其是在其上投影了当前块在编码参考图片中的位置的周围块的MV;组合MV预测器,其是通过将空间上相邻的MV预测器的MV值和时间上相邻的MV预测器的MV进行组合而生成的MV;以及零MV预测器,其是具有零值的MV。
接下来,从注册在MV预测器列表中的多个MV预测器中选择一个MV预测器,并且将所选择的MV预测器确定为当前块的MV。
此外,可变长度编码器在流中描述并编码merge_idx,该merge_idx是指示已选择哪个MV预测器的信号。
要注意的是,在图21中描述的MV预测器列表中注册的MV预测器是示例。MV预测器的数量可以与图中的MV预测器的数量不同,可以以以下方式配置MV预测器列表:可以不包括图中的一些类型的MV预测器,或者包括除了图中的MV预测器种类之外的一个或多个MV预测器。
可以通过使用在合并模式中导出的当前块的MV执行稍后描述的解码器运动矢量细化过程(DMVR),来确定最终MV。
注意,MV预测器候选是上述MV候选,并且MV预测器列表是上述MV候选列表。注意,MV候选列表可以被称为候选列表。另外,merge_idx是MV选择信息。
(MV导出>FRUC模式)
可以在解码器侧导出运动信息而无需从编码器侧用信号发送。注意,如上所述,可以使用在H.265/HEVC标准中定义的合并模式。另外,例如,可以通过在解码器侧执行运动估计来导出运动信息。在实施例中,在解码器侧,在不使用当前块中的任何像素值的情况下执行运动估计。
这里,描述了用于在解码器侧执行运动估计的模式。用于在解码器侧执行运动估计的模式可以被称为图案匹配运动矢量导出(PMMVD)模式或帧速率上转换(FRUC)模式。
图22以流程图的形式示出了FRUC过程的一个示例。首先,通过参考在空间或时间上与当前块相邻的编码块中的运动矢量来生成均具有运动矢量(MV)预测器的多个候选的列表(即,也可以用作合并列表的MV候选列表)(步骤Si_1)。接下来,从在MV候选列表中注册的多个MV候选中选择最佳MV候选(步骤Si_2)。例如,计算被包括在MV候选列表中的相应MV候选的估计值,并且基于估计值来选择一个MV候选。基于所选择的候选运动矢量,然后导出当前块的运动矢量(步骤Si_4)。更具体地,例如,直接将选择的运动矢量候选(最佳MV候选)导出为当前块的运动矢量。另外,例如,可以使用在参考图片中的位置的周围区域中的图案匹配来导出当前块的运动矢量,其中,参考图片中的该位置与所选择的运动矢量候选相对应。换句话说,可以在最佳MV候选的周围区域中执行使用图案匹配的估计和估计值进行估计,并且当存在产生更好估计值的MV时,可以将最佳MV候选更新为产生更好的估计值的MV,并且可以将更新的MV确定为当前块的最终MV。也可能的是执行了其中没有用于将最佳MV候选更新为评值更好的MV的过程的配置。
最后,帧间预测器126通过使用导出的MV和编码的参考图片执行当前块的运动补偿,来生成当前块的预测图像(步骤Si_5)。
可以以子块为单位执行类似的过程。
可以根据各种方法来计算估计值。例如,在参考图片中与运动矢量相对应的区域中的重构图像与确定的区域中的重构图像之间进行比较(该区域可以是例如另一参考图片中的区域或当前图片的相邻块中的区域,如下所示)。确定的区域可以是预定的。
两个重构图像的像素值之间的差可以用于运动矢量的估计值。注意,可以使用除差值之外的信息来计算估计值。
接下来,详细描述图案匹配的示例。首先,通过图案匹配,选择MV候选列表(例如,合并列表)中包括的一个MV候选作为估计的起点。例如,作为图案匹配,可以使用第一图案匹配或第二图案匹配。第一图案匹配和第二图案匹配也分别称为双边匹配和模板匹配。
(MV导出>FRUC>双边匹配)
在第一图案匹配中,在沿着当前块的运动轨迹的两个块之间执行图案匹配,所述两个块是不同的两个参考图片中的两个块。因此,在第一图案匹配中,沿着当前块的运动轨迹的另一参考图片中的区域被用作确定的区域,以用于计算上述候选的估计值。确定的区域可以是预定的。
图23是用于示出沿着运动轨迹的两个参考图片中的两个块之间的第一图案匹配(双边匹配)的一个示例的概念图。如图23所示,在第一图案匹配中,通过估计两个不同参考图片(Ref0,Ref1)中的两个块(其为沿着当前块(Cur块)的运动轨迹的两个块)中的对之中的最佳匹配的对来导出两个运动矢量(MV0,MV1)。更具体地,针对当前块导出由MV候选指定的第一编码参考图片(Ref0)中的指定位置处的重构图像与由对称MV指定的第二编码参考图片(Ref1)中的指定位置处的重构图像之间的差,该对称MV是通过以显示时间间隔按比例缩放MV候选获得的,并且使用所获得的差的值来计算估计值。可以选择在多个MV候选之中产生最佳估计值并且可能产生良好结果的MV候选作为最终MV。
在连续运动轨迹的假设下,指定两个参考块的运动矢量(MV0,MV1)与当前图片(Cur Pic)和两个参考图片(Ref0,Ref1)之间的时间距离(TD0,TD1)成比例。例如,当当前图片在时间上位于两个参考图片之间并且从当前图片到相应的两个参考图片的时间距离彼此相等时,在第一图案匹配中导出镜像对称的双向运动矢量。
(MV导出>FRUC>模板匹配)
在第二图案匹配(模板匹配)中,在参考图片中的块与当前图片中的模板(模板是与当前图片中的当前块相邻的块(相邻的块是例如上方和/或左侧的相邻块))之间进行图案匹配。因此,在第二图案匹配中,将当前图片中与当前块相邻的块用作用于计算上述候选的估计值的确定的区域。
图24是用于示出当前图片中的模板与参考图片中的块之间的图案匹配(模板匹配)的一个示例的概念图。如图24所示,在第二图案匹配中,通过在参考图片(Ref0)中估计与当前图片(Cur Pic)中的当前块相邻的块最佳匹配的块,来导出当前块(Cur块)的运动矢量。更具体地,可能的是,导出在左上方相邻或者在左侧或上方相邻的编码区域中的重构图像与在编码参考图片(Ref0)中的对应区域中且由MV候选指定的重构图像之间的差,使用所获得的差的值计算估计值,并且选择在多个MV候选之中产生最佳估计值的MV候选作为最佳MV候选。
指示是否应用FRUC模式的这种信息(例如,称为FRUC标志)可以在CU级别上用信号发送。此外,当应用FRUC模式时(例如,当FRUC标志为真(true)时),可以在CU级别上用信号发送指示适用的图案匹配方法(第一图案匹配或第二图案匹配)的信息。要注意的是,这种信息的信号发送不一定需要在CU级别上执行,而可以在另一个级别(例如,在序列级别、图片级别、切片级别、图块级别,CTU级别或子块级别)上执行。
(MV导出>仿射模式)
接下来,描述用于基于多个相邻块的运动矢量以子块为单位导出运动矢量的仿射模式。该模式也称为仿射运动补偿预测模式。
图25A是用于示出基于多个相邻块的运动矢量来导出每个子块的运动矢量的一个示例的概念图。在图25A中,当前块包括十六个4×4子块。在此,基于相邻块的运动矢量来导出当前块的左上角控制点处的运动矢量V0,并且同样地,基于相邻子块的运动矢量来导出当前块的右上角控制点处的运动矢量V1。可以根据下面所示的表达式(1A)来投影两个运动矢量v0和v1,并且可以导出当前块中的相应子块的运动矢量(vx,vy)。
[数学式1]
Figure BDA0002951379150000311
在此,x和y分别表示子块的水平位置和垂直位置,并且w表示确定的加权系数。所确定的加权系数可以是预定的。
指示仿射模式的此类信息(例如,称为仿射标志)可以在CU级别上用信号发送。要注意的是,指示仿射模式的信息的信号发送不一定需要在CU级别上执行,并且可以在另一个级别(例如,在序列级别、图片级别、切片级别、图块级别、CTU级别或子块级别)上执行。
另外,仿射模式可以包括用于在左上角控制点和右上角控制点处导出运动矢量的不同方法的几种模式。例如,仿射模式包括两个模式,即仿射帧间模式(也称为仿射常规帧间模式)和仿射合并模式。
(MV导出>仿射模式)
图25B是用于示出在使用三个控制点的仿射模式中导出每个子块的运动矢量的一个示例的概念图。在图25B中,当前块包括十六个4×4块。在此,基于相邻块的运动矢量来导出当前块的左上角控制点处的运动矢量V0,并且同样地,基于相邻块的运动矢量来导出当前块的右上角控制点处的运动矢量V1,并且基于相邻块的运动矢量来导出当前块的左下角控制点的运动矢量V2。可以根据下面所示的表达式(1B)来投影三个运动矢量v0、v1和v2,并且可以导出当前块中的相应子块的运动矢量(vx,vy)。
[数学式2]
Figure BDA0002951379150000312
这里,x和y分别表示子块的中心的水平位置和垂直位置,w表示当前块的宽度,并且h表示当前块的高度。
使用不同数量的控制点(例如,两个和三个控制点)的仿射模式可以被切换,并在CU级别用信号发送。应当注意,在CU级别上使用的指示仿射模式下的控制点的数量的信息可以在另一级别(例如,序列级别、图片级别、切片级别、图块级别、CTU级别或子块级别)用信号发送。
另外,其中使用三个控制点的这种仿射模式可以包括用于在左上、右上和左下角控制点处导出运动矢量的不同方法。例如,仿射模式包括两个模式,它们是仿射帧间模式(也称为仿射常规帧间模式)和仿射合并模式。
(MV导出>仿射合并模式)
图26A、图26B和图26C是用于示出仿射合并模式的概念图。
如图26A所示,在仿射合并模式下,例如,基于与当前块相邻的编码块A(左)、块B(上)、块C(右上)、块D(左下)和块E(左上)之中与根据仿射模式编码的块相对应的多个运动矢量,计算当前块的相应控制点处的运动矢量预测器。更具体地说,按照列出的顺序检查已编码的块A(左)、块B(上)、块C(右上)、块D(左下)和块E(左上),识别根据仿射模式编码的第一有效块。基于与所识别的块相对应的多个运动矢量来计算当前块的控制点处的运动矢量预测器。
例如,如图26B所示,当已经根据使用两个控制点的仿射模式对与当前块左侧相邻的块A进行了编码时,导出投影在包括块A的编码块的左上角位置和右上角位置处的运动矢量v3和v4。然后根据导出的运动矢量v3和v4计算当前块左上角控制点处的运动矢量预测器v0和当前块右上角控制点处的运动矢量预测器v1
例如,如图26C所示,当已经根据使用三个控制点的仿射模式对与当前块的左侧相邻的块A进行了编码时,导出投影在包括块A的编码块的左上角位置、右上角位置和左下角位置处的运动矢量v3、v4和v5。然后,根据导出的运动矢量v3、v4和v5计算出当前块的左上角控制点处的运动矢量预测器v0、当前块的右上角控制点处的运动矢量预测器v1和当前块的左下角控制点处的运动矢量预测器v2
应当注意,这种用于导出运动矢量预测器的方法可以用于在稍后描述的图29的步骤Sj_1中导出当前块的相应控制点的运动矢量预测器。
图27是示出仿射合并模式的一个示例的流程图。
在所示的仿射合并模式中,首先,帧间预测器126导出当前块的相应控制点的MV预测器(步骤Sk_1)。如图25A所示,控制点是当前块的左上角点和当前块的右上角点,或者如图25B所示,是当前块的左上角点、当前块的右上角点和当前块的左下角点。
换句话说,如图26A所示,帧间预测器126按所列顺序检查已编码的块A(左)、块B(上)、块C(右上)、块D(左下)和块E(左上),并识别根据仿射模式编码的第一有效块。
当识别出块A并且块A具有两个控制点时,如图26B所示,帧间预测器126根据包括块A的已编码块的左上角和右上角处的运动矢量v3和v4来计算当前块的左上角控制点处的运动矢量v0和当前块的右上角控制点处的运动矢量v1。例如,帧间预测器126通过将已编码块的左上角和右上角的运动矢量v3和v4投影到当前块上,来计算在当前块的左上角控制点处的运动矢量v0和在当前块的右上角控制点处的运动矢量v1
可替代地,当识别出块A并且块A具有三个控制点时,如图26C所示,帧间预测器126根据包括块A的编码块的左上角、右上角和左下角处的运动矢量v3、v4和v5,来计算当前块的左上角控制点处的运动矢量v0、当前块的右上角控制点处的运动矢量v1和当前块的左下角控制点处的运动矢量v2。例如,帧间预测器126通过将编码块的左上角、右上角和左下角处的运动矢量v3、v4和v5投影在当前块上,来计算当前块的左上角控制点处的运动矢量v0、当前块的右上角控制点处的运动矢量v1以及当前块的左下角控制点处的运动矢量v2
接下来,帧间预测器126对当前块中包括的多个子块中的每个子块执行运动补偿。换句话说,帧间预测器126通过使用(i)两个运动矢量预测器v0和v1以及上述表达式(1A)或(ii)三个运动矢量预测器v0、v1和v2以及上述表达式(1B),针对多个子块中的每个子块,将该子块的运动矢量计算为仿射MV(步骤Sk_2)。然后,帧间预测器126使用这些仿射MV和编码的参考图片来执行子块的运动补偿(步骤Sk_3)。结果,执行当前块的运动补偿以生成当前块的预测图像。
(MV导出>仿射帧间模式)
图28A是用于示出使用两个控制点的仿射帧间模式的概念图。
在仿射帧间模式下,如图28A所示,从与当前块相邻的编码块A、块B和块C的运动矢量中选择的运动矢量被用作当前块的左上角控制点处的运动矢量预测器v0。同样,从与当前块相邻的编码的块D和块E的运动矢量中选择的运动矢量被用作当前块的右上角控制点处的运动矢量预测器v1
图28B是用于示出使用三个控制点的仿射帧间模式的概念图。
在仿射帧间模式下,如图28B所示,从与当前块相邻的编码的块A、块B和块C的运动矢量中选择的运动矢量被用作当前块的左上角控制点处的运动矢量预测器v0。同样,从与当前块相邻的编码的块D和块E的运动矢量中选择的运动矢量被用作当前块的右上角控制点处的运动矢量预测器v1。此外,从与当前块相邻的编码的块F和块G的运动矢量中选择的运动矢量被用作当前块的左下角控制点处的运动矢量预测器v2
图29是示出仿射帧间模式的一个示例的流程图。
在所示的仿射帧间模式中,首先,帧间预测器126导出当前块的相应两个或三个控制点的MV预测器(v0,v1)或(v0,v1,v2)(步骤Sj_1)。如图25A所示,控制点是当前块的左上角点和当前块的右上角点,或者如图25B所示,是当前块的右上角点和当前块的左下角点。
换句话说,帧间预测器126通过在图28A或图28B中所示的当前块的相应控制点附近的编码块之中选择任何块的运动矢量,来导出当前块的相应两个或三个控制点的运动矢量预测器(v0,v1)或(v0,v1,v2)。此时,帧间预测器126在流中编码用于识别所选择的两个运动矢量的运动矢量预测器选择信息。
例如,帧间预测器126可以使用成本估计等,来确定这样的块:在与当前块相邻的编码块之中从该块选择了作为控制点处的运动矢量预测器的运动矢量,并且帧间预测器126可以在比特流中描述标志,该标志指示已选择了哪个运动矢量预测器。
接下来,帧间预测器126执行运动估计(步骤Sj_3和Sj_4),同时更新在步骤Sj_1中选择或导出的运动矢量预测器(步骤Sj_2)。换句话说,帧间预测器126使用上述表达式(1A)或表达式(1B)来计算与更新后的运动矢量预测器相对应的每个子块的运动矢量作为仿射MV(步骤Sj_3)。然后,帧间预测器126使用这些仿射MV和编码的参考图片来执行子块的运动补偿(步骤Sj_4)。结果,例如,帧间预测器126确定产生最小成本的运动矢量预测器作为在运动估计循环中在控制点处的运动矢量(步骤Sj_5)。此时,帧间预测器126还在流中将所确定的MV和运动矢量预测器之间的差值编码为MV差。
最后,帧间预测器126通过使用所确定的MV和编码的参考图片执行当前块的运动补偿,来生成当前块的预测图像(步骤Sj_6)。
(MV导出>仿射帧间模式)
当在其中使用不同数量的控制点(例如,两个和三个控制点)的仿射模式可以在CU级别进行切换且用信号发送时,编码块中的控制点数量和当前块中的控制点数量可能彼此不同。图30A和图30B是用于示出当编码块中的控制点的数量与当前块中的控制点的数量彼此不同时在控制点处导出运动矢量预测器的方法的概念图。
例如,如图30A所示,当当前块具有在左上角、右上角和左下角处的三个控制点,并且已经根据其中使用两个控制点的仿射模式对与当前块的左侧相邻的块A进行了编码时,导出投影在包括块A的编码块中的左上角位置和右上角位置处的运动矢量v3和v4。然后根据导出的运动矢量v3和v4计算当前块的左上角控制点处的运动矢量预测器v0和当前块的右上角控制点处的运动矢量预测器v1。此外,根据导出的运动矢量v0和v1计算左下角控制点处的运动矢量预测器v2
例如,如图30B所示,当当前块在左上角和右上角具有两个控制点,并且已经根据使用三个控制点的仿射模式对与当前块左侧相邻的块A进行了编码时,导出投影在包括块A的编码块中的左上角位置、右上角位置和左下角位置的运动矢量v3、v4和v5。然后,根据导出的运动矢量v3、v4和v5计算当前块的左上角控制点处的运动矢量预测器v0和当前块的右上角控制点处的运动矢量预测器v1
应当注意,这种用于导出运动矢量预测器的方法可以用于在图29的步骤Sj_1中导出当前块的相应控制点的运动矢量预测器。
(MV导出>DMVR)
图31A是示出合并模式和DMVR之间的关系的流程图。
帧间预测器126根据合并模式导出当前块的运动矢量(步骤Sl_1)。接下来,帧间预测器126确定是否执行运动矢量的估计,即运动估计(步骤Sl_2)。这里,当确定不执行运动估计时(步骤Sl_2中为否),帧间预测器126将在步骤Sl_1中导出的运动矢量确定为当前块的最终运动矢量(步骤Sl_4)。换句话说,在这种情况下,根据合并模式确定当前块的运动矢量。
当在步骤Sl_1中确定执行运动估计时(步骤Sl_2中为是),帧间预测器126通过估计由步骤Sl_1中导出的运动矢量所指定的参考图片的周围区域来导出当前块的最终运动矢量(步骤Sl_3)。换句话说,在这种情况下,根据DMVR确定当前块的运动矢量。
图31B是用于示出用于确定MV的DMVR过程的一个示例的概念图。
首先,(例如,在合并模式下)已被设置为当前块的最佳MVP被确定为MV候选。从第一参考图片(L0)中识别参考像素,该第一参考图片是根据MV候选(LO)在LO方向上的编码图片。同样地,根据第二参考图片(L1)识别参考像素,第二参考图片(L1)是根据MV候选(L1)的L1方向上的编码图片。通过计算这些参考像素的平均值来生成模板。
接下来,估计第一参考图片(L0)和第二参考图片(L1)的MV候选的每个周围区域,并且将产生最小成本的MV确定为最终MV。注意,可以例如使用模板中的每个像素值与估计区域中的像素值中的对应一个像素值之间的差值、MV候选的值等来计算成本值。
要注意的是,这里描述的过程、配置和操作通常在编码器和稍后将描述的解码器之间基本上是共用的。
并不总是需要执行此处描述的完全相同的示例过程。可以使用用于通过在MV候选的周围区域中进行估计来使得能够导出最终MV的任何过程。
(运动补偿>BIO/OBMC)
运动补偿涉及用于生成预测图像并校正预测图像的模式。该模式例如是稍后将描述的BIO和OBMC。
图32是示出了生成预测图像的一个示例的流程图。
帧间预测器126生成预测图像(步骤Sm_1),并且例如根据上述任何模式来校正预测图像(步骤Sm_2)。
图33是示出了生成预测图像的另一示例的流程图。
帧间预测器126确定当前块的运动矢量(步骤Sn_1)。接下来,帧间预测器126生成预测图像(步骤Sn_2),并确定是否执行校正过程(步骤Sn_3)。这里,当确定执行校正过程时(步骤Sn_3中为是),帧间预测器126通过校正预测图像来生成最终预测图像(步骤Sn_4)。当确定不执行校正过程时(步骤Sn_3中为否),帧间预测器126将预测图像输出为最终预测图像,而不校正预测图像(步骤Sn_5)。
另外,运动补偿涉及用于在生成预测图像时校正预测图像的亮度的模式。该模式例如是稍后将描述的LIC。
图34是示出了生成预测图像的另一示例的流程图。
帧间预测器126导出当前块的运动矢量(步骤So_1)。接下来,帧间预测器126确定是否执行亮度校正过程(步骤So_2)。这里,当确定执行亮度校正过程时(步骤So_2中为是),帧间预测器126在执行亮度校正过程的同时生成预测图像(步骤So_3)。换句话说,使用LIC来生成预测图像。当确定不执行亮度校正过程时(步骤So_2中为否),帧间预测器126通过执行常规运动补偿而不执行亮度校正过程来生成预测图像(步骤So_4)。
(运动补偿>OBMC)
要注意的是,除了从运动估计获得的当前块的运动信息之外,还可以使用相邻块的运动信息来生成帧间预测信号。更具体地,可以通过对基于从运动估计获得的运动信息(在参考图片中)的预测信号和基于相邻块的运动信息(在当前图片中)的预测信号执行加权相加,来以当前块中的子块为单位生成帧间预测信号。这种帧间预测(运动补偿)也被称为重叠块运动补偿(OBMC)。
在OBMC模式中,可以在序列级别上用信号发送指示用于OBMC的子块大小(例如,称为OBMC块大小)的信息。此外,可以在CU级别上用信号发送指示是否应用OBMC模式的信息(例如,称为OBMC标志)。要注意的是,这种信息的信号发送不一定需要在序列级别和CU级别上执行,而可以在另一级别(例如,图片级别、切片级别、图块级别、CTU级别或子块级别)上执行。
将更详细地描述OBMC模式的示例。图35和图36是用于示出由OBMC过程执行的预测图像校正过程的概要的流程图和概念图。
首先,如图36中所示,使用分配给处理目标(当前)块的运动矢量(MV)通过常规运动补偿来获得预测图像(Pred)。在图36中,箭头“MV”指向参考图片,并且指示当前图片的当前块参考的是什么以便获得预测图像。
接下来,通过将已经针对与当前块的左侧相邻的编码块导出的运动矢量(MV_L)应用于当前块(针对当前块重新使用运动矢量)来获得预测图像(Pred_L)。运动矢量(MV_L)由箭头“MV_L”指示,箭头“MV_L”指示来自当前块的参考图片。通过重叠两个预测图像Pred和Pred_L来执行预测图像的第一校正。这提供了混合相邻块之间的边界的效果。
同样,通过将已经针对与当前块上方相邻的编码块导出的运动矢量(MV_U)应用于当前块(针对当前块重新使用运动矢量),来获得预测图像(Pred_U)。运动矢量(MV_U)由箭头“MV_U”指示,箭头“MV_U”指示来自当前块的参考图片。通过将预测图像Pred_U与已经执行了第一校正的预测图像(例如,Pred和Pred_L)重叠来执行预测图像的第二校正。这提供了混合相邻块之间的边界的效果。通过第二校正获得的预测图像是其中相邻块之间的边界已经被混合(平滑)的预测图像,并且因此是当前块的最终预测图像。
尽管以上示例是使用左和上相邻块的两路径校正方法,但是要注意的是,校正方法可以是也使用右相邻块和/或下相邻块的三路径或更多路径校正方法。
注意,执行这种重叠的区域可以仅是块边界附近的区域的一部分,而不是整个块的像素区域。
注意,上面已经描述了根据用于通过重叠附加预测图像Pred_L和Pred_U从一个参考图片获得一个预测图像Pred的OBMC的预测图像校正过程。然而,当基于多个参考图像校正预测图像时,可以将相似的过程应用于多个参考图片中的每一个。在这种情况下,在通过基于多个参考图片执行OBMC图像校正而从相应参考图片获得校正后的预测图像之后,将所获得的校正的预测图像进一步重叠以获得最终的预测图像。
要注意的是,在OBMC中,当前块的单位可以是预测块的单位,或是通过进一步分割预测块而获得的子块的单位。
用于确定是否应用OBMC过程的方法的一个示例是用于使用obmc_flag的方法,obmc_flag是指示是否应用OBMC过程的信号。作为一个具体示例,编码器确定当前块是否属于具有复杂运动的区域。当块属于具有复杂运动的区域时,编码器将obmc_flag的值设置为“1”,而在编码时,应用OBMC过程;并且当块不属于具有复杂运动的区域时,将obmc_flag的值设置为“0”,并在不应用OBMC过程的情况下对该块进行编码。解码器通过解码写入流中的obmc_flag(例如,压缩的序列)并通过根据标志值在OBMC过程的应用和非应用之间切换来对块进行解码,来在OBMC过程的应用和非应用之间切换。
在以上示例中,帧间预测器126为矩形当前块生成一个矩形预测图像。然而,帧间预测器126可以生成多个预测图像,每个预测图像具有与矩形当前块的矩形不同的形状,并且可以组合多个预测图像以生成最终的矩形预测图像。与矩形不同的形状可以是例如三角形。
图37是用于示出两个三角预测图像的生成的概念图。
帧间预测器126通过使用第一分区的第一MV对当前块中具有三角形形状的第一分区执行运动补偿,来生成三角形预测图像,以生成三角形预测图像。同样,帧间预测器126通过使用第二分区的第二MV对当前块中具有三角形形状的第二分区执行运动补偿,来生成三角预测图像,以生成三角预测图像。然后,帧间预测器126通过组合这些预测图像来生成具有与当前块的矩形形状相同的矩形形状的预测图像。
要注意的是,尽管在图37所示的示例中第一分区和第二分区是三角形,但第一分区和第二分区可以是梯形或彼此不同的其他形状。此外,尽管在图37所示的示例中当前块包括两个分区,但当前块可以包括三个或更多个分区。
另外,第一分区和第二分区可以彼此重叠。换句话说,第一分区和第二分区可以包括相同的像素区域。在这种情况下,可以使用第一分区中的预测图像和第二分区中的预测图像来生成当前块的预测图像。
另外,尽管使用帧间预测针对两个分区中的每一个生成预测图像的示例,但是可以使用帧内预测针对至少一个分区生成预测图像。
(运动补偿>BIO)
接下来,描述用于导出运动矢量的方法。首先,将描述用于基于假设均匀线性运动的模型来导出运动矢量的模式。此模式也称为双向光流(BIO)模式。
图38是用于示出假设匀速直线运动的模型的概念图。在图38中,(vx,vy)指示速度矢量,并且τ0和τ1指示当前图片(Cur Pic)和两个参考图片(Ref0,Ref1)之间的时间距离。(MVx0,MVy0)指示与参考图片Ref0相对应的运动矢量,并且(MVx1,MVy1)指示与参考图片Ref1相对应的运动矢量。
在此,在假设速度矢量(vx,vy)表现出均匀线性运动的情况下,(MVx0,MVy0)和(MVx1,MVy1)分别表示为(VxT0,VyT0)和(-VxT1,-VyT1),并且可以采用下面的光流方程(optical flow equation)(2)。
[数学式3]
Figure BDA0002951379150000401
在此,I(k)表示参考图片k的运动补偿亮度值(k=0、1)。该光流方程表明,以下各项的总和等于零:(i)亮度值的时间导数,(ii)水平速度和参考图像的空间梯度的水平分量的乘积和(iii)垂直速度和参考图像的空间梯度的垂直分量的乘积。从例如合并列表获得的每个块的运动矢量可以基于光流方程和埃尔米特插值的组合以像素为单位进行校正。
要注意的是,可以使用除了基于假设均匀线性运动的模型来导出运动矢量以外的方法,来在解码器侧导出运动矢量。例如,可以基于相邻块的运动矢量以子块为单位导出运动矢量。
(运动补偿>LIC)
接下来,将描述其中通过使用局部照明补偿(LIC)过程来生成预测图像(预测)的模式的示例。
图39是用于示出使用通过LIC过程执行的亮度校正过程的预测图像生成方法的一个示例的概念图。
首先,从编码的参考图片导出MV,并获得与当前块相对应的参考图像。
接下来,针对当前块提取指示在参考图片和当前图片之间的亮度值如何变化的信息。基于针对编码的左相邻参考区域(周围参考区域)和编码的上相邻参考区域(周围参考区域)的亮度像素值以及由导出的MV指定的参考图片中的对应位置处的亮度像素值来执行该提取。通过使用指示亮度值如何改变的信息来计算亮度校正参数。
通过执行亮度校正过程来生成用于当前块的预测图像,在该亮度校正过程中,将亮度校正参数应用于由MV指定的参考图片中的参考图像。
要注意的是,图39中示出的周围参考区域的形状只是一个示例;周围的参考区域可以具有不同的形状。
此外,尽管这里已经描述了从单个参考图片生成预测图像的过程,但是可以以相同的方式描述从多个参考图片生成预测图像的情况。可以以与上述相同的方式在对从参考图片获得的参考图像执行亮度校正过程之后生成预测图像。
用于确定是否应用LIC过程的方法的一个示例是用于使用lic_flag的方法,该lic_flag是指示是否应用LIC过程的信号。作为一个具体示例,编码器确定当前块是否属于具有亮度变化的区域。当块属于具有亮度变化的区域时,编码器将lic_flag的值设置为“1”,并且在编码时应用LIC过程,而当该块不属于亮度变化的区域时,则将lic_flag的值设置为“0”,并且在不应用LIC过程的情况下对当前块进行编码。解码器可以通过根据标志值在LIC过程的应用和非应用之间切换来解码写入流中的lic_flag,并解码当前块。
确定是否应用LIC过程的不同方法的一个示例是根据是否对周围块执行了LIC过程的确定方法。在一个特定示例中,当在当前块上使用合并模式时,确定在合并模式过程中是否在导出MV时选择的周围编码块的编码中应用了LIC过程。根据结果,通过在LIC过程的应用和非应用之间切换来执行编码。注意,同样在该示例中,在解码器侧的过程中应用相同的过程。
下面详细描述参考图39描述的亮度校正(LIC)过程的实施例。
首先,帧间预测器126从作为编码图片的参考图片中导出用于获得与要编码的当前块相对应的参考图像的运动矢量。
接下来,帧间预测器126使用与当前块的左侧或上方相邻的经编码的周围参考区域的亮度像素值和由运动矢量指定的参考图片中的对应位置的亮度值,提取指示参考图片的亮度值如何变为当前图片的亮度值的信息,并计算亮度校正参数。例如,假设当前图片中的周围参考区域中的给定像素的亮度像素值为p0,并且假设参考图片中的周围参考区域中的给定像素对应的像素的亮度像素值是p1。帧间预测器126计算用于优化A×p1+B=p0的系数A和B,作为针对周围参考区域中的多个像素的亮度校正参数。
接下来,帧间预测器126使用由运动矢量指定的参考图片中的参考图像的亮度校正参数来执行亮度校正过程,以生成当前块的预测图像。例如,假定参考图像中的亮度像素值为p2,并且预测图像的经亮度校正的亮度像素值为p3。通过针对参考图像中的每个像素计算A×p2+B=p3进行亮度校正过程之后,帧间预测器126生成预测图像。
要注意的是,图39中示出的周围参考区域的形状是一个示例;可以使用除了周围参考区域的形状以外的其他形状。另外,可以使用图39中所示的周围参考区域的一部分。例如,具有从上相邻像素和左相邻像素中的每一个提取的确定数量的像素的区域可以用作周围参考区域。所确定的像素数量可以是预定的。
另外,周围参考区域不限于与当前块相邻的区域,并且可以是不与当前块相邻的区域。在图39所示的示例中,参考图片中的周围参考区域是当前图片中的由运动矢量从当前图片中的周围参考区域指定的区域。但是,由另一个运动矢量指定的区域也是可能的。例如,另一运动矢量可以是当前图片中的周围参考区域中的运动矢量。
尽管这里已经描述了由编码器100执行的操作,但是要注意,解码器200通常执行类似的操作。
要注意的是,LIC过程不仅可以应用于亮度,而且可以应用于色度。此时,可以个别地针对Y、Cb和Cr中的每一个导出校正参数,或者可以针对Y、Cb和Cr中的任何一个使用公共校正参数。
另外,可以以子块为单位应用LIC过程。例如,可以使用当前子块的MV所指定的参考子块中的周围参考区域和参考图片中的当前子块中的周围参考区域来导出校正参数。
(预测控制器)
帧间预测器128选择帧内预测信号(从帧内预测器124输出的信号)和帧间预测信号(从帧间预测器126输出的信号)之一,并将所选择的信号输出到减法器104和加法器116作为预测信号。
如图1所示,在各种编码器示例中,预测控制器128可以输出输入到熵编码器110的预测参数。熵编码器110可以基于从预测控制器输入的预测参数和从量化器108输入的量化系数来生成编码比特流(或序列)。预测参数可以在解码器中使用。解码器可以接收和解码编码比特流,并且执行与由帧内预测器124、帧间预测器126和预测控制器128执行的预测过程相同的过程。预测参数可以包括(i)选择预测信号(例如,由帧内预测器124或帧间预测器126使用的运动矢量、预测类型或预测模式),或(ii)基于在帧内预测器124、帧间预测器126和预测控制器128中每个中执行的预测过程或指示预测过程的可选的索引、标志或值。
(编码器的安装示例)
图40是示出编码器100的安装示例的框图。编码器100包括处理器a1和存储器a2。例如,图1所示的编码器100的多个构成元件可以安装在图40中所示的处理器a1和存储器a2上。
处理器a1是执行信息处理并且可被存储器a2访问的电路。例如,处理器a1是对视频进行编码的专用或通用电子电路。处理器a1可以是诸如CPU之类的处理器。另外,处理器a1可以是多个电子电路的聚合。另外,例如,处理器a1可以充当图1等所示的编码器100的多个构成元件中的两个或更多个构成元件的角色。
存储器a2是专用或通用存储器,用于存储处理器a1用来编码视频的信息。存储器a2可以是电子电路,并且可以连接到处理器a1。另外,存储器a2可以被包括在处理器a1中。另外,存储器a2可以是多个电子电路的聚合。另外,存储器a2可以是磁盘、光盘等,或者可以表示为存储装置、记录介质等。另外,存储器a2可以是非易失性存储器或易失性存储器。
例如,存储器a2可以存储要编码的视频或与编码的视频相对应的比特流。另外,存储器a2可以存储用于使处理器a1对视频进行编码的程序。
另外,例如,存储器a2可以充当图1等所示的编码器100的多个构成元件中用于存储信息的两个或更多个构成元件的角色。例如,存储器a2可以充当图1所示的块存储器118和帧存储器122的角色。更具体地说,存储器a2可以存储重构块、重构图片等。
要注意的是,在编码器100中,可以不实施图1等中指示的所有多个构成元件,并且可以不执行上述所有过程。图1等中指示的构成元件的一部分可以被包括在另一设备中,或者上述过程的一部分可以由另一设备执行。
(解码器)
接下来,将描述能够解码例如从上述编码器100输出的编码信号(编码比特流)的解码器。图41是示出根据实施例的解码器200的功能配置的框图。解码器200是视频解码器,其以块为单位对视频进行解码。
如图41所示,解码器200包括熵解码器202、逆量化器204、逆变换器206、加法器208、块存储器210、环路滤波器212、帧存储器214、帧内预测器216、帧间预测器218和预测控制器220。
解码器200被实现为例如通用处理器和存储器。在这种情况下,当处理器执行存储在存储器中的软件程序时,处理器用作熵解码器202、逆量化器204、逆变换器206、加法器208、环路滤波器212、帧内预测器216、帧间预测器218和预测控制器220。可替代地,解码器200可以被实现为与熵解码器202、逆量化器204、逆变换器206、加法器208、环路滤波器212、帧内预测器216、帧间预测器218和预测控制器220相对应的一个或多个专用电子电路。
在下文中,描述了由解码器200执行的过程的总体流程,并且然后将描述被包括在解码器200中的每个构成元件。
(解码过程的总体流程)
图42是示出由解码器200执行的整个解码过程的一个示例的流程图。
首先,解码器200的熵解码器202识别具有固定大小(例如,128×128像素)的块的分割图案(步骤Sp_1)。该分割图案是由编码器100选择的分割图案。然后,解码器200针对该分割图案的多个块中的每一个执行步骤Sp_2至Sp_6的过程。
换句话说,熵解码器202对要被解码的当前块(也称为当前块)的编码量化系数和预测参数进行解码(具体地,熵解码)(步骤Sp_2)。
接下来,逆量化器204对多个量化系数执行逆量化,并且逆变换器206对结果执行逆变换,以恢复多个预测残差(即,差块)(步骤Sp_3)。
接下来,包括帧内预测器216、帧间预测器218和预测控制器220的全部或一部分的预测处理器生成当前块的预测信号(也称为预测块)(步骤Sp_4)。
接下来,加法器208将预测块添加到差块以生成当前块的重构图像(也称为解码图像块)(步骤Sp_5)。
当生成重构图像时,环路滤波器212对重构图像执行滤波(步骤Sp_6)。
解码器200然后确定整个图片的解码是否已经完成(步骤Sp_7)。当确定解码尚未完成时(步骤Sp_7中为否),解码器200重复执行从步骤Sp_1开始的过程。
如图所示,由解码器200顺序地执行步骤Sp_1至Sp_7的过程。可替代地,可以并行执行两个或更多个过程,可以修改两个或更多个过程的处理顺序,等等。
(熵解码器)
熵解码器202对解码的比特流进行熵解码。更具体地说,例如,熵解码器202将编码比特流算术解码为二进制信号。然后,熵解码器202将二进制信号去二值化。这样,熵解码器202将每个块的量化系数输出到逆量化器204。熵解码器202可以将被包括在编码比特流(见图1)中的预测参数输出到帧内预测器216、帧间预测器218和预测控制器220。实施例中的帧内预测器216、帧间预测器218和预测控制器220能够执行与由帧内预测器124、帧间预测器126和预测控制器128在编码器侧执行的预测过程相同的预测过程。
(逆量化器)
逆量化器204对要解码的块(以下称为当前块)的量化系数(其为来自熵解码器202的输入)进行逆量化。更具体地,逆量化器204基于与量化系数相对应的量化参数对当前块的量化系数进行逆量化。逆量化器204然后将当前块的经逆量化的变换系数输出到逆变换器206。
(逆变换器)
逆变换器206通过对变换系数(其为来自逆量化器204的输入)进行逆变换来恢复预测误差。
例如,当从编码比特流解析的信息指示将应用EMT或AMT时(例如,当AMT标志为真时),逆变换器206基于指示经解析的变换类型的信息对当前块的变换系数进行逆变换。
此外,例如,当从编码比特流解析的信息指示将要应用NSST时,逆变换器206将二次逆变换应用于变换系数。
(加法器)
加法器208通过将预测误差(其为来自逆变换器206的输入)和预测样本(其为来自预测控制器220的输入)相加来重构当前块。加法器208然后将重构的块输出到块存储器210和环路滤波器212。
(块存储器)
块存储器210是用于存储要被解码的图片(以下称为当前图片)中并且在帧内预测中要被参考的块的存储装置。更具体地说,块存储器210存储从加法器208输出的重构块。
(环路滤波器)
环路滤波器212将环路滤波器应用于由加法器208重构的块,并将滤波后的重构块输出到帧存储器214、显示设备等。
当从编码比特流解析的表示ALF的开或关的信息表示ALF为开时,基于局部梯度的方向和活动性从多个滤波器之中选择一个滤波器,并将所选择的滤波器应用于重构块。
(帧存储器)
帧存储器214例如是用于存储在帧间预测中使用的参考图片的存储装置,并且也被称为帧缓冲器。更具体地说,帧存储器214存储由环路滤波器212滤波的重构块。
(预测处理器(帧内预测器、帧间预测器、预测控制器))
图43是示出由解码器200的预测处理器执行的过程的一个示例的流程图。要注意,预测处理器包括以下构成元件的全部或一部分:帧内预测器216;帧间预测器218;以及预测控制器220。
预测处理器生成当前块的预测图像(步骤Sq_1)。该预测图像也称为预测信号或预测块。注意,预测信号例如是帧内预测信号或帧间预测信号。具体地,预测处理器使用已经通过生成预测块、生成差块、生成系数块、恢复差块以及生成解码的图像块获得的重构图像,来生成当前块的预测图像。
重构图像可以是例如参考图片中的图像,或者是当前图片(其为包括当前块的图片)中的解码块的图像。当前图片中的解码块例如是当前块的相邻块。
图44是示出由解码器200的预测处理器执行的过程的另一示例的流程图。
预测处理器确定用于生成预测图像的方法或模式(步骤Sr_1)。例如,可以基于例如预测参数等来确定方法或模式。
当将第一方法确定为用于生成预测图像的模式时,预测处理器根据第一方法生成预测图像(步骤Sr_2a)。当将第二方法确定为用于生成预测图像的模式时,预测处理器根据第二方法生成预测图像(步骤Sr_2b)。当将第三方法确定为用于生成预测图像的模式时,预测处理器根据第三方法生成预测图像(步骤Sr_2c)。
第一方法、第二方法和第三方法可以是用于生成预测图像的彼此不同的方法。第一至第三方法中的每一个可以是帧间预测方法、帧内预测方法或另一预测方法。在这些预测方法中可以使用上述重构图像。
(帧内预测器)
帧内预测器216基于从编码比特流解析的帧内预测模式,通过参考块存储器210中存储的当前图片中的一个或多个块执行帧内预测,来生成预测信号(帧内预测信号)。更具体地,帧内预测器216通过参考与当前块相邻的一个或多个块的样本(例如,亮度和/或色度值)执行帧内预测来生成帧内预测信号,并且然后将帧内预测信号输出至预测控制器220。
应当指出的是,当选择其中在色度块的帧内预测中参考亮度块的帧内预测模式,帧内预测器216可以基于当前块的亮度分量来预测当前块的色度分量。
此外,当从编码比特流解析的信息指示将要应用PDPC时,帧内预测器216基于水平/垂直参考像素梯度来校正帧内预测的像素值。
(帧间预测器)
帧间预测器218通过参考被存储在帧存储器214中的参考图片来预测当前块。以当前块或当前块中的子块(例如,4×4块)为单位执行帧间预测。例如,帧间预测器218通过使用从编码比特流(例如,从熵解码器202输出的预测参数)解析的运动信息(例如,运动矢量)执行运动补偿,来生成当前块或子块的帧间预测信号,并将帧间预测信号输出到预测控制器220。
要注意的是,当从编码比特流解析的信息指示将应用OBMC模式时,帧间预测器218除了使用从运动估计获取的当前块的运动信息之外,还使用相邻块的运动信息来生成帧间预测信号。
此外,当从编码比特流解析的信息指示将应用FRUC模式时,帧间预测器218通过根据从编码比特流解析的图案匹配方法(双边匹配或模板匹配)执行运动估计,来导出运动信息。然后,帧间预测器218使用导出的运动信息来执行运动补偿(预测)。
此外,当将要应用BIO模式时,帧间预测器218基于假设均匀线性运动的模型来导出运动矢量。此外,当从编码比特流解析的信息指示仿射运动补偿预测模式将被应用时,帧间预测器218基于相邻块的运动矢量来导出每个子块的运动矢量。
(MV导出>常规帧间模式)
当从编码比特流解析的信息指示将要应用常规帧间模式时,帧间预测器218基于从编码比特流解析的信息来导出MV,并使用MV执行运动补偿(预测)。
图45是示出解码器200中的常规帧间模式下的帧间预测的示例的流程图。
解码器200的帧间预测器218针对每个块执行运动补偿。帧间预测器218基于诸如在时间上或空间上围绕当前块的多个解码块的MV之类的信息,来获得当前块的多个MV候选(步骤Ss_1)。换句话说,帧间预测器218生成MV候选列表。
接下来,帧间预测器218根据所确定的优先级顺序从在步骤Ss_1中获得的多个MV候选中提取N个(2或更大的整数)MV候选作为运动矢量预测器候选(也称为MV预测器候选)(步骤Ss_2)。应当注意,可以针对N个MV预测器候选中的每一个预先确定优先级顺序。
接下来,帧间预测器218从输入流(即,编码比特流)中解码运动矢量预测器选择信息,并使用解码后的运动矢量预测器选择信息从N个MV预测器候选中选择一个MV预测器候选,作为当前块的运动矢量(也称为MV预测器)(步骤Ss_3)。
接下来,帧间预测器218从输入流解码MV差,并且通过将作为解码的MV差的差值与所选择的运动矢量预测器相加,来导出当前块的MV(步骤Ss_4)。
最后,帧间预测器218通过使用导出的MV和解码的参考图片执行当前块的运动补偿,来生成当前块的预测图像(步骤Ss_5)。
(预测控制器)
预测控制器220选择帧内预测信号或帧间预测信号,并将所选择的预测信号输出到加法器208。总体上,解码器侧的预测控制器220、帧内预测器216和帧间预测器218的配置、功能和过程可以对应于编码器侧的预测控制器128、帧内预测器124和帧间预测器126的配置、功能和过程。
(解码器的安装示例)
图46是示出解码器200的安装示例的框图。解码器200包括处理器b1和存储器b2。例如,图41所示的解码器200的多个构成要素安装在图46所示的处理器b1和存储器b2上。
处理器b1是执行信息处理并且可以被存储器b2访问的电路。例如,处理器b1是专用的或通用的电子电路,其对视频(即,编码比特流)进行解码。处理器b1可以是诸如CPU之类的处理器。另外,处理器b1可以是多个电子电路的聚合。另外,例如,处理器b1可以充当图41所示的解码器200的多个构成元件中的两个或更多个构成元件等的角色。
存储器b2是专用的或通用的存储器,用于存储处理器b1用来解码编码比特流的信息。存储器b2可以是电子电路,并且可以连接到处理器b1。另外,存储器b2可以被包括在处理器b1中。另外,存储器b2可以是多个电子电路的聚合。另外,存储器b2可以是磁盘、光盘等,或者可以被表示为存储器、记录介质等。另外,存储器b2可以是非易失性存储器或易失性存储器。
例如,存储器b2可以存储视频或比特流。另外,存储器b2可以存储用于使处理器b1对编码比特流进行解码的程序。
另外,例如,存储器b2可以充当图41所示的解码器200的多个构成元件中的用于存储信息的两个或更多个构成元件等的角色。具体地,存储器b2可以充当图41所示的块存储器210和帧存储器214的角色。更具体地,存储器b2可以存储重构块、重构图片等。
要注意的是,在解码器200中,可以不实施图41中示出的所有多个构成元件等,并且可以不执行上述所有过程。图41中指示的构成元件的一部分等可以被包括在另一设备中,或者上述过程的一部分可以由另一设备执行。
(术语的定义)
相应术语可以被定义为如下示例所示。
图片是单色格式的亮度样本数组,或者是采用4:2:0、4:2:2和4:4:4颜色格式的亮度样本数组和两个相应的色度样本数组。图片可以是帧或场(field)。
帧是顶部场和底部场的组成,其中样本行0、2、4、……源自顶部场,而样本行1、3、5、……源自底部场。
切片是一个独立切片段中包含的整数个编码树单元,以及同一访问单元内下一个独立切片段之前的所有后续依赖切片段(如果有)。
图块是图片中特定图块列和特定图块行内的编码树块的矩形区域。图块可以是旨在能够被独立地解码和编码的帧的矩形区域,但仍然可以应用跨图块边缘的环路滤波。
块是样本的M×N(M列乘N行)阵列或变换系数的M×N阵列。块可以是包括一个亮度矩阵和两个色度矩阵的像素的正方形或矩形区域。
编码树单元(CTU)可以是具有三个样本阵列的图片的亮度样本的编码树块,或者是色度样本的两个对应的编码树块。可替代地,CTU可以是单色图片和这样的图片中的一个的样本的编码树块:其是使用三个单独的色彩平面和用于对样本进行编码的语法结构进行编码的。超级块可以是由1或2个模式信息块组成的64×64像素的正方形块,或者递归地分割为四个32×32块,它们本身可以进一步分割。
(非矩形分区)
在耦合至编码器侧的帧内预测器124和帧间预测器126的预测控制器128中(见图1),以及在耦合至解码器侧的帧内预测器216和帧间预测器218的预测控制器220中(参见图41),迄今为止,通过分割每个块而获得的针对其获得了运动信息(例如,运动矢量)的分区(或可变大小的块或子块)始终是矩形的,如图3所示。发明人已经发现,在各种实施方式中,根据图片中图像的内容,生成具有诸如三角形之类的非矩形形状的分区引起图像质量和编码效率的改善。以下,将描述各种实施例,其中,出于预测目的从图像块分割的至少一个分区具有非矩形形状。注意,这些实施例等同地适用于编码器侧(耦合到帧内预测器124和帧间预测器126的预测控制器128)和解码器侧(耦合到帧内预测器216和帧间预测器218的预测控制器220),并且可以在图1的编码器等中或者在图41的解码器等中实现。
图47是示出将图像块分割为至少包括具有非矩形形状的第一分区(例如,三角形)和第二分区的分区并且执行包括将图像块编码(或解码)为第一和第二分区的重构组合的进一步处理的过程的一个示例的流程图。
在步骤S1001中,将图像块分割为包括具有非矩形形状的第一分区和可以具有或可以不具有非矩形形状的第二分区的分区。例如,如图48所示,可以从图像块的左上角到图像块的右下角分割图像块,以创建均具有非矩形形状(例如,三角形)的第一分区和第二分区,或者可以从图像块的右上角到图像块的左下角分割图像块,以创建均具有非矩形形状(例如,三角形)的第一分区和第二分区。下面将参考图48和53-55描述非矩形分割的各种示例。
在步骤S1002中,该过程预测第一分区的第一运动矢量,并预测第二分区的第二运动矢量。例如,对第一和第二运动矢量的预测可以包括从第一组运动矢量候选中选择第一运动矢量,以及从第二组运动矢量候选中选择第二运动矢量。
在步骤S1003中,执行运动补偿过程以使用在上面的步骤S1002中导出的第一运动矢量来获得第一分区,并且使用在上面的步骤S1002中导出的第二运动矢量来获得第二分区。
在步骤S1004中,针对图像块执行预测过程,作为第一分区和第二分区的(重构的)组合。预测过程可以包括边界平滑过程,以平滑第一分区和第二分区之间的边界。例如,边界平滑过程可以涉及对基于第一分区预测的边界像素的第一值和基于第二分区预测的边界像素的第二值进行加权。将在下面参考图49、50、56和57A-57D对边界平滑过程的各种实施方式进行描述。
在步骤S1005中,过程使用一个或多个参数对图像块进行编码或解码,该一个或多个参数包括指示将图像块分割为第二分区和具有非矩形形状的第一分区的分区参数。如在图51的表中总结的,分区参数(“第一索引值”)可以对例如在分割中应用的分割方向(例如,从左上到右下或从右上到左下,如图48所示)以及在上述步骤S1002中导出的第一和第二运动矢量进行联合编码。下面将参考图51、52和58-61详细描述涉及包括分区参数的一个或多个参数的这种分区语法操作的细节。
图53是示出分割图像块的过程2000的流程图。在步骤S2001中,过程将图像分割为多个分区,包括具有非矩形形状的第一分区和可以具有或可以不具有非矩形形状的第二分区。如图48所示,图像块可以被分割成具有三角形形状的第一分区和也具有三角形形状的第二分区。还有许多其他示例,其中图像块被分割成多个分区,包括第一分区和第二分区,其中至少第一分区具有非矩形形状。非矩形形状可以是三角形、梯形和具有至少五个边和角的多边形。
例如,如图54所示,图像块可以被分割成两个三角形分区;图像块可以被分割成两个以上的三角形分区(例如,三个三角形分区);图像块可以被分割成三角形分区和矩形分区的组合;或者图像块可以被分割成三角形分区和多边形分区的组合。
如图55进一步所示,可以将图像块分割为L形(多边形)分区和矩形分区;图像块可以被分割成五边形(多边形)分区和三角形分区;图像块可以被分割成六边形(多边形)分区和五边形(多边形)分区;或图像块可分为多个多边形分区。
回到图53,在步骤S2002中,该过程例如通过从第一组运动矢量候选中选择第一分区来预测用于第一分区的第一运动矢量,并且例如通过从第二组运动矢量候选选择第二分区来预测第二分区的第二运动矢量。例如,第一组运动矢量候选可以包括与第一分区相邻的分区的运动矢量,而第二组运动矢量候选可以包括与第二分区相邻的分区的运动矢量。相邻分区可以是空间相邻分区和时间相邻分区中的一个或二者。空间相邻的分区的一些示例包括位于正被处理的分区的左、左下、下、右下、右、右上、上或左上的分区。时间相邻分区的示例是图像块的参考图片中的共置分区(co-located partition)。
在各种实施方式中,与第一分区相邻的分区以及与第二分区相邻的分区可以在从其分割出第一分区和第二分区的图像块的外部。第一组运动矢量候选可以与第二组运动矢量候选相同或不同。此外,第一组运动矢量候选和第二组运动矢量候选中的至少一个可以与为图像块准备的另一、第三组运动矢量候选相同。
在一些实施方式中,在步骤S2002中,响应于确定第二分区(类似于第一分区)也具有非矩形形状(例如,三角形),过程2000创建第二组运动矢量候选(用于非矩形第二分区),其包括与第二分区相邻的、不包括第一分区的分区的运动矢量(不包括第一分区的运动矢量)。另一方面,响应于确定第二分区(不同于第一分区)具有矩形形状,过程2000创建第二组运动矢量候选(用于矩形第二分区),其包括与第二分区相邻的包括第一分区在内的分区的运动矢量。
在步骤S2003中,过程使用在以上步骤S2002中导出的第一运动矢量对第一分区进行编码或解码,并使用在以上步骤S2002中导出的第二运动矢量对第二分区进行编码或解码。
像图53的过程2000一样,可以由图像编码器执行图像块分割过程,例如如图1所示,图像编码器包括电路和耦合到该电路的存储器。该电路在操作中执行:将图像块分割为多个分区,包括第二分区和具有非矩形形状的第一分区(步骤S2001);预测用于第一分区的第一运动矢量和用于第二分区的第二运动矢量(步骤S2002);以及使用第一运动矢量对第一分区进行编码,并且使用第二运动矢量对第二分区进行编码(步骤S2003)。
根据另一个实施例,如图1所示,提供了一种图像编码器,包括:分割器102,其在操作中接收原始图像并将其分割为块;加法器104,其在操作中接收来自分割器的块和来自预测控制器128的预测,并从其对应的块中减去每个预测以输出残差;变换器106,其在操作中对从加法器104输出的残差执行变换以输出变换系数;量化器108,其在操作中对变换系数进行量化以生成经量化的变换系数;熵编码器110,其在操作中对经量化的变换系数进行编码以生成比特流;以及预测控制器128,耦合到帧间预测器126、帧内预测器124和存储器118、122,其中帧间预测器126在操作中基于编码的参考图片中的参考块生成当前块的预测,并且帧内预测器124在操作中基于当前图片中的编码参考块来生成当前块的预测。预测控制器128在操作中将块分割为多个分区,包括第二分区和具有非矩形形状的第一分区(图53,步骤S2001);预测用于第一分区的第一运动矢量和用于第二分区的第二运动矢量(步骤S2002);以及使用第一运动矢量对第一分区进行编码,并且使用第二运动矢量对第二分区进行编码(步骤S2003)。
根据另一实施例,例如如图41所示,提供了图像解码器,其包括电路和耦合到该电路的存储器。该电路在操作中执行:将图像块分割为多个分区,包括第二分区和具有非矩形形状的第一分区(图53,步骤S2001);预测用于第一分区的第一运动矢量和用于第二分区的第二运动矢量(步骤S2002);以及使用第一运动矢量对第一分区进行解码,并且使用第二运动矢量对第二分区进行解码(步骤S2003)。
根据另一实施例,提供了如图41所示的图像解码器,其包括:熵解码器202,其在操作中接收编码比特流并对编码比特流进行解码,以获得经量化的变换系数;逆量化器204和逆变换器206,其在操作中对经量化的变换系数进行逆量化以获得变换系数,并对变换系数进行逆变换以获得残差;加法器208,其在操作中将从逆量化器204和变换器206输出的残差与从预测控制器220输出的预测相加以重构块;以及耦合到帧间预测器218、帧内预测器216和存储器210、214的预测控制器220,其中,帧间预测器218在操作中基于解码的参考图片中的参考块生成当前块的预测,并且帧内预测器216在操作中基于当前图片中的解码参考块来生成当前块的预测。预测控制器220在操作中将图像块分割为多个分区,包括第二分区和具有非矩形形状的第一分区(图53,步骤S2001);预测用于第一分区的第一运动矢量和用于第二分区的第二运动矢量(步骤S2002);以及使用第一运动矢量对第一分区进行解码,并且使用第二运动矢量对第二分区进行解码(步骤S2003)。
(边界平滑)
如以上在图47中所述,根据各种实施例,针对图像块执行预测过程作为第二分区和具有非矩形形状的第一分区的(重构的)组合的步骤S1004可以涉及沿第一分区和第二分区之间的边界应用边界平滑过程。
例如,图57B示出了边界平滑过程的一个示例,该边界平滑过程涉及对边界像素的第一值和边界像素的第二值进行加权,边界值的第一值基于第一分区而进行第一预测,该边界像素的第二值基于第二分区来进行第二预测。
图56是示出根据一个实施例的总体边界平滑过程3000的流程图,该过程涉及对基于第一分区进行第一预测的边界像素的第一值和基于第二分区进行第二预测的边界像素的第二值进行加权。在步骤S3001中,如上所述的图57A或图48、图54和图55所示,沿着其中至少第一分区具有非矩形形状的边界将图像块分割为第一分区和第二分区。
在步骤S3002中,对沿着边界的第一分区的一组像素(图57A中的“边界像素”)的第一值(例如,颜色、亮度、透明度等)进行第一预测,其中使用第一分区的信息对第一值进行第一预测。在步骤S3003中,对沿着边界的第一分区的(相同)像素组的第二值进行第二预测,其中,使用第二分区的信息对第二值进行第二预测。在一些实施方式中,第一预测和第二预测中的至少一个是帧间预测过程,其基于编码的参考图片中的参考分区来预测第一值和第二值。参考图57D,在一些实施方式中,预测过程预测包括第一分区和第二分区在其上重叠的像素组的第一分区的所有像素的第一值(“第一样本组”),并且仅预测第一和第二分区在其上重叠的像素组的第二值(“第二组样本”)。在另一实施方式中,第一预测和第二预测中的至少一个是帧内预测过程,其基于当前图片中的编码参考分区来预测第一值和第二值。在一些实施方式中,在第一预测中使用的预测方法不同于在第二预测中使用的预测方法。例如,第一预测可以包括帧间预测过程,而第二预测可以包括帧内预测过程。用于对第一值进行第一预测或对第二值进行第二预测的信息可以是第一或第二分区的运动矢量、帧内预测方向等。
在步骤S3004中,对使用第一分区预测的第一值和使用第二分区预测的第二值进行加权。在步骤S3005中,使用经加权的第一值和第二值对第一分区进行编码或解码。
图57B示出了边界平滑操作的示例,其中第一分区和第二分区在每行或每列的(最多)五个像素上重叠。即,基于第一分区来预测第一值并且基于第二分区来预测第二值的每行或每列的像素组的数量最多为五个。图57C示出了边界平滑操作的另一示例,其中,第一分区和第二分区在每行或每列的(最多)三个像素上重叠。即,基于第一分区预测第一值并且基于第二分区预测第二值的每行或每列的像素组的数量最多为三个。
图49示出了边界平滑操作的另一示例,其中,第一分区和第二分区在每行或每列的(最多)四个像素上重叠。即,基于第一分区来预测第一值并且基于第二分区来预测第二值的每行或每列的像素组的数量最多为四个。在所示的示例中,可以将权重1/8、1/4、3/4和7/8分别应用于该组中四个像素的第一值,并可以将权重7/8、3/4、1/4和1/8分别应用于该组中四个像素的第二值。
图50示出了边界平滑操作的其他示例,其中,第一分区和第二分区在每行或每列的零个像素上重叠(它们不重叠),在每行或每列的(最多)一个像素上重叠,并且在每行或每列的(最多)两个像素上重叠。在第一和第二分区不重叠的示例中,应用了零权重。在第一分区和第二分区在每行或每列的一个像素上重叠的示例中,可以将权重1/2应用于基于第一分区所预测的组中像素的第一值,可以将权重1/2应用于基于第二分区预测的组中的像素的第二值。在第一分区和第二分区在每行或每列的两个像素上重叠的示例中,可以将权重1/3和2/3分别应用于基于第一分区预测的组中两个像素的第一值,并且可以将权重2/3和1/3分别应用于基于第二分区预测的组中两个像素的第二值。
根据上述实施例,第一分区和第二分区在其上重叠的组中的像素数量是整数。在其他实施方式中,例如,组中的重叠像素的数量可以是非整数并且可以是分数。而且,取决于每个应用,应用于像素组的第一值和第二值的权重可以是分数或整数。
类似于图56的过程3000的边界平滑过程可以由例如图1所示的图像编码器执行,该图像编码器包括电路和耦合到该电路的存储器。该电路在操作中,沿着从图像块分割出的第二分区和具有非矩形形状的第一分区之间的边界执行边界平滑操作(图56,步骤S3001)。边界平滑操作包括:使用第一分区的信息,对沿着边界的第一分区的一组像素的第一值进行第一预测(步骤S3002);使用第二分区的信息,对沿着边界的第一分区的一组像素的第二值进行第二预测(步骤S3003);对第一值和第二值进行加权(步骤S3004);以及使用加权后的第一值和加权后的第二值对第一分区进行编码(步骤S3005)。
根据另一个实施例,如图1所示,提供了一种图像编码器,包括:分割器102,其在操作中接收原始图像并将其分割为块;以及加法器104,在操作中接收来自分割器的块和来自预测控制器128的预测,并从其对应的块中减去每个预测以输出残差;变换器106,在操作中,对从加法器104输出的残差进行变换以输出变换系数;量化器108,其在操作中对变换系数进行量化以生成经量化的变换系数;熵编码器110,其在操作中对经量化的变换系数进行编码以生成比特流;以及耦合到帧间预测器126、帧内预测器124和存储器118、122的预测控制器128,其中帧间预测器126在操作中基于编码的参考图片中的参考块生成当前块的预测,并且帧内预测器124在操作中基于当前图片中的编码参考块来生成当前块的预测。预测控制器128在操作中沿着从图像块分割出的第二分区和具有非矩形形状的第一分区之间的边界执行边界平滑操作(图56,步骤S3001)。边界平滑操作包括:使用第一分区的信息,对沿边界的第一分区的一组像素的第一值进行第一预测(步骤S3002);使用第二分区的信息,对沿边界的第一分区的一组像素的第二值进行第二预测(步骤S3003);对第一值和第二值进行加权(步骤S3004);使用经加权的第一值和经加权的第二值对第一分区进行编码(步骤S3005)。
根据另一实施例,提供了一种图像解码器,如在图41中所示,其包括电路以及与该电路耦合的存储器。所述电路在操作中,沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作(图56,步骤S3001)。所述边界平滑操作包括:使用第一分区的信息,对沿边界的第一分区的一组像素的第一值进行第一预测(步骤S3002);使用第二分区的信息,对沿边界的第一分区的一组像素的第二值进行第二预测(步骤S3003);对第一值和第二值进行加权(步骤S3004);使用经加权的第一值和经加权的第二值对第一分区进行解码(步骤S3005)。
根据另一个实施例,提供了一种如图41所示的图像解码器,其包括:熵解码器202,其在操作中接收并解码经编码的比特流以获得经量化的变换系数;逆量化器204和变换器206,其在操作中对经量化的变换系数进行逆量化以获得变换系数,并且对变换系数进行逆变换以获得残差;加法器208,其在操作中将从逆量化器204和变换器206输出的残差与从预测控制器220输出的预测相加以重构块;以及耦合至帧间预测器218、帧内预测器216和存储器210、214的预测控制器220,其中,帧间预测器218在操作中基于经解码的参考图片中的参考块来生成对当前块的预测,帧内预测器216在操作中基于当前图片中的经解码的参考块来生成对当前块的预测。预测控制器220在操作中沿着从图像块分割出的第二分区与具有非矩形形状的第一分区之间的边界来执行边界平滑操作(图56,步骤S3001)。边界平滑操作包括:使用第一分区的信息,对沿边界的第一分区的一组像素的第一值进行第一预测(步骤S3002);使用第二分区的信息,对沿边界的第一分区的一组像素的第二值进行第二预测(步骤S3003);对第一值和第二值进行加权(步骤S3004);使用经加权的第一值和经加权的第二值对第一分区进行解码(步骤S3005)。
(使用分区参数语法进行熵编码和解码)
如在图47中所示,步骤S1005,根据各种实施例,可以使用一个或多个参数来编码或解码被分割成第二分区以及具有非矩形形状的第一分区的图像块,所述一个或多个参数包括指示图像块的非矩形分割的分区参数。在各种实施例中,这样的分区参数可以对例如应用于分割的分割方向(例如,从左上到右下或从右上到左下,见图48),以及在步骤S1002中预测的第一运动矢量和第二运动矢量进行联合编码,如下文将更全面地描述的。
图51是采样分区参数(“第一索引值”)以及分别由分区参数联合编码的信息集合的表。分区参数(“第一索引值”)的范围从0到6,并且对以下项进行联合编码:将图像块分割成第一分区和第二分区(它们都是三角形,参见图48)的方向,针对第一分区预测的第一运动矢量(图47,步骤S1002),以及针对第二分区预测第二运动矢量(图47,步骤S1002)。具体而言,分区参数0编码的分割方向是从左上角到右下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第二”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第一”运动矢量。
分区参数1进行以下编码:分割方向是从右上角到左下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第一”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第二”运动矢量。分区参数2进行以下编码:分割方向是从右上角到左下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第二”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第一”运动矢量。分区参数3进行以下编码:分割方向是从左上角到右下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第二”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第二”运动矢量。分区参数4进行以下编码:分割方向是从右上角到左下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第二”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第三”运动矢量。分区参数5进行以下编码:分割方向是从左上角到右下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第三”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第一”运动矢量。分区参数6进行以下编码:分割方向是从左上角到右下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第四”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第一”运动矢量。
图58是示出了在编码器侧执行的方法4000的流程图。在步骤S4001中,该过程基于指示分割的分区参数,将图像块分割成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区。例如,如上述图51所示,分区参数可以指示分割图像块的方向(例如,从右上角到左下角或从左上角到右下角)。在步骤S4002中,该过程对第一分区和第二分区进行编码。在步骤S4003中,该过程将包括分区参数的一个或多个参数写入比特流,解码器侧可以接收并解码该比特流以获得一个或多个参数从而在解码器侧对第一分区和第二分区执行相同的预测过程(如在编码器侧执行的)。包括分区参数的一个或多个参数可以联合或分别地编码各种信息片段,例如第一分区的非矩形形状,第二分区的形状,用于分割图像块以获得第一分区和第二分区的分割方向、第一分区的第一运动矢量、第二分区的第二运动矢量等。
图59是示出了在解码器侧执行的方法5000的流程图。在步骤S5001中,该过程从比特流中解析一个或多个参数,其中,所述一个或多个参数包括指示将图像块分割成多个分区的分区参数,所述多个分区包括第二分区以及具有非矩形形状的第一分区。包括从比特流中解析出的分区参数在内的一个或多个参数可以联合或分别地对解码器侧执行与在编码器侧执行的相同的预测处理所需的各种信息片段进行编码,所述信息片段例如第一分区的非矩形形状、第二分区的形状、用于分割图像块以获得第一分区和第二分区的分割方向、第一分区的第一运动矢量、第二分区的第二运动矢量等。在步骤S5002中,过程5000基于从比特流中解析出的分区参数,将图像块分割成多个分区。在步骤S5003中,该过程对从图像块分割出的第一分区和第二分区进行解码。
图60是采样分区参数(“第一索引值”)和分别由分区参数联合编码的信息集的表,其本质上类似于上述图51中的采样表。在图60中,分区参数(“第一索引值”)的范围为0到6,并且对以下项进行联合编码:从图像块分割出的第一和第二分区的形状,将图像块分割成第一和第二分区的方向,针对第一分区预测的第一运动矢量(图47,步骤S1002),以及针对第二分区预测的第二运动矢量(图47,步骤S1002)。具体地,分区参数0进行以下编码:第一分区和第二分区都不具有三角形形状,并且因此,分割方向信息为“N/A”,第一运动矢量信息为“N/A”,并且第二运动矢量信息为“N/A”。
分区参数1进行以下编码:第一分区和第二分区是三角形,分割方向是从左上角到右下角,第一运动矢量是第一分区的第一组运动矢量候选中列出的“第二”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第一”运动矢量。分区参数2进行以下编码:第一分区和第二分区是三角形,分割方向是从右上角到左下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第一”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第二”运动矢量。分区参数3进行以下编码:第一分区和第二分区是三角形,分割方向是从右上角到左下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第二”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第一”运动矢量。分区参数4进行以下编码:第一分区和第二分区是三角形,分割方向是从左上角到右下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第二”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第二”运动矢量。分区参数5进行以下编码:第一分区和第二分区是三角形,分割方向是从右上角到左下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第二”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第三”运动矢量。分区参数6进行以下编码:第一分区和第二分区是三角形,分割方向是从左上角到右下角,第一运动矢量是在第一分区的第一组运动矢量候选中列出的“第三”运动矢量,第二运动矢量是在第二分区的第二组运动矢量候选中列出的“第一”运动矢量。
根据一些实现,可以根据二进制化方案对分区参数(索引值)进行二进制化,该二进制化方案是根据至少一个或一个或多个参数的值来选择的。图52示出了对索引值(分区参数值)进行二进制化的示例二进制化方案。
图25是第一参数和第二参数的采样组合的表,其中,一个参数是指示将图像块分割成多个分区的分区参数,所述多个分区包括第二分区以及具有非矩形形状的第一分区。在该示例中,分区参数可以用于指示图像块的分割而无需对由一个或多个其他参数编码的其他信息进行联合编码。
在图61的第一示例中,第一参数用于指示图像块大小,并且第二参数用作分区参数(标志),以指示从图像块分割的多个分区中的至少一个具有三角形形状。第一参数和第二参数的这样的组合可用于指示,例如,1)当图像块大小大于64×64时,没有三角形分区,或者2)当图像块的宽高比大于4(例如64×4)时,没有三角形分区。
在图61的第二示例中,第一参数用于指示预测模式,并且第二参数用作分区参数(标志),其用于指示从图像块分割的多个分区中的至少一个具有三角形形状。第一参数和第二参数的这样的组合可以用于指示例如:1)当以帧内模式对图像块编码时,不存在三角形分区。
在图61的第三示例中,第一参数用作分区参数(标志),其用于指示从图像块分割的多个分区中的至少一个具有三角形形状,并且第二参数用于指示预测模式。第一参数和第二参数的这样的组合可以用于指示例如:1)当从图像块分割的多个分区中的至少一个具有三角形形状时,必须对图像块进行帧间编码。
在图61的第四示例中,第一参数指示相邻块的运动矢量,并且第二参数用作指示将图像块分割成两个三角形的方向的分割参数。第一参数和第二参数的这样的组合可以用于指示例如:1)当相邻块的运动矢量是对角线方向时,将图像块分割成两个三角形的方向是从左上角到右下角。
在图61的第五示例中,第一参数指示相邻块的帧内预测方向,并且第二参数用作指示将图像块分割成两个三角形的方向的分区参数。第一参数和第二参数的这样的组合可以用于指示例如:1)当相邻块的帧内预测方向是反对角线方向时,将图像块分割成两个三角形的方向是从右上角到左下角。
应当理解的是,如图51、60和61中所示,包括分区参数以及哪些信息被联合或单独编码在内的一个或多个参数的表仅进是作为示例呈现的,并且作为上述分区语法操作的一部分对各种信息进行联合或单独编码的多种其他方式也在本公开的范围内。例如,分区参数可以指示第一分区是三角形、梯形或具有至少五个边和角的多边形。分区参数可以指示第二分区具有非矩形的形状,例如三角形、梯形、和具有至少五个边和角的多边形。分区参数可以指示关于分割的一个或多个信息,例如第一分区的非矩形形状,第二分区的形状(可以是非矩形或矩形),应用于将图像块分割成多个分区的分割方向(例如,从图像块的左上角到其右下角,以及从图像块的右上角到其左下角)。分区参数可以联合编码其他信息,例如第一分区的第一运动矢量,第二分区的第二运动矢量,图像块大小,预测模式,相邻块的运动矢量,相邻块的帧内预测方向等。可替代地,进一步的信息中的任何信息可以由除分区参数以外的一个或多个参数分别地编码。
类似于图58的过程4000,分区语法操作可以由例如图1所示的图像编码器执行,所述图像编码器包括电路和耦合至该电路的存储器。所述电路在操作中执行分区语法操作,所述分区语法操作包括:基于指示所述分割的分区参数,将图像块分割成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区(图58,步骤S4001);编码第一分区和第二分区(S4002);将包括分区参数的一个或多个参数写入比特流中(S4003)。
根据另一个实施例,如图1所示,提供了一种图像编码器,包括:分割器102,其在操作中接收原始图片并将其分割成块;加法器104,其在操作中,接收来自分割器的块和来自预测控制器128的预测,并从其对应的块中减去每个预测以输出残差;变换器106,其在操作中对从加法器104输出的残差执行变换以输出变换系数;量化器108,其在操作中对变换系数进行量化以生成经量化的变换系数;熵编码器110,其在操作中对经量化的变换系数进行编码以生成比特流;以及耦合至帧间预测器126、帧内预测器124和存储器118、122的预测控制器128,其中,帧间预测器126在操作中基于经编码的参考图片中的参考块来生成对当前块的预测,帧内预测器124在操作中基于当前图片中的经编码的参考块来生成对当前块的预测。预测控制器128在操作中基于指示分割的分区参数将图像块分割成多个分区,所述多个分区包括第二分区以及具有非矩形形状的第一分区(图58,步骤S4001),并且对第一分区和第二分区进行编码(步骤S4002)。熵编码器110在操作中将包括分区参数的一个或多个参数写入比特流中(步骤S4003)。
根据另一实施例,提供了一种图像解码器,例如如图41所示,图像解码器包括电路以及与该电路耦合的存储器。所述电路在操作中执行分区语法操作,所述分区语法操作包括:解析来自比特流的一个或多个参数,其中,所述一个或多个参数包括指示将图像块分割成多个分区的分区参数,所述多个分区包括第二分区以及具有非矩形形状的第一分区(图59,步骤S5001);基于分区参数将图像块分割成多个分区(S5002);解码第一分区和第二分区(S5003)。
根据另外的实施例,提供了如图41中所示的图像解码器,包括:熵解码器202,其在操作中接收并解码经编码的比特流以获得经量化的变换系数;逆量化器204和变换器206,其在操作中对经量化的变换系数进行逆量化以获得变换系数,并且对变换系数进行逆变换以获得残差;加法器208,其在操作中将从逆量化器204和变换器206输出的残差与从预测控制器220输出的预测相加以重构块;以及耦合至帧间预测器218、帧内预测器216和存储器210、214的预测控制器220,其中,帧间预测器218在操作中基于经解码的参考图片中的参考块来生成对当前块的预测,帧内预测器216在操作中基于当前图片中的经解码的参考块来生成对当前块的预测。熵解码器202在操作中:从比特流解析一个或多个参数,其中,所述一个或多个参数包括指示将图像块分割成多个分区的分区参数,所述多个分区包括第二分区以及具有非矩形形状的第一分区(图59,步骤S5001);基于分区参数将图像块分割成多个分区(S5002);在一些实现中,与预测控制器220协作地对第一分区和第二分区进行解码(S5003)。
根据其他示例,帧内预测器可以执行以下过程。
在第一组运动矢量候选中包括的所有运动矢量候选可以是单预测运动矢量。也就是说,帧内预测器在第一组运动矢量候选中可以仅将单预测运动矢量确定为运动矢量候选。
帧内预测器可以从所述第一组运动矢量候选中仅选择单预测运动矢量候选。
在实施例中,仅单预测运动矢量可以用来预测小块。双预测运动矢量可以用来预测大块。例如,预测过程可以包括判断图像块的大小。当判断图像块大小大于阈值时,该预测可以包括从第一组运动矢量候选中选择第一运动矢量,并且第一组运动矢量候选可以包含单预测和/或双预测运动矢量。当判断图像块大小不大于阈值时,该预测可以从第一组运动矢量候选中选择第一运动矢量,并且第一组运动矢量候选可以仅包含单预测运动矢量。
(用于存储加权区域的运动矢量的方法)
图62是示出根据一个实施例的过程流程6000的示例的流程图的示例,该过程流程6000预测具有第一运动矢量的当前图片的第一分区的第一组样本,从不同于第一分区的第二分区获得第二运动矢量,预测具有第二运动矢量的第一分区中包括的第一部分的第二组样本,对第一组样本和第二组样本进行加权,存储用于第一分区的第一和第二运动矢量中的至少一个,并且使用加权样本对第一分区进行编码或解码,并执行进一步的处理。过程流程6000可以例如由图1的编码器100、图41的解码器200等执行。
在步骤S6001中,利用包括第一运动矢量的一个或多个运动矢量来预测当前图片的第一分区的第一组样本。第一分区可以具有或可以不具有非矩形形状。第一组样本可以是例如具有相关联运动矢量以及亮度和色度像素分量的像素块。例如,每个样本可以是与第一运动矢量相关联并且具有相关联的亮度和色度像素分量的4×4像素块。
第一分区可以是例如已经被分割为多个分区的图像块的分区。图63是用于示出将图像块分割成第一分区和第二分区的示例性方法的概念图。还参见图48、54和55。例如,如图63所示,图像块可以被分割成具有各种形状的两个或更多个分区。图63的示例图示包括:从图像块的左上角到图像块的右下角分割以创建均具有非矩形形状(例如,三角形形状)的第一分区和第二分区的图像块;被分割为L形分区和矩形分区的图像块;被分割为五边形分区和三角形分区的图像块;被分割为六边形分区和五边形分区的图像块;以及分割成两个多边形分区的图像块。可以通过以其他方式分割图像块来形成各种示出的分区形状。例如,可以通过将图像块从图像块的右上角到图像块的左下角进行分割以创建均具有三角形形状的第一分区和第二分区来形成两个三角形的分区。在一些实施例中,图像块的两个或更多个分区可以具有重叠部分。
在一些实施例中,可以使用运动估计过程来获得第一运动矢量。在一些实施例中,可以从比特流中解析出第一运动矢量。在一些实施例中,第一运动矢量可以是从至少第一分区的一组运动矢量候选中预测的运动矢量。运动矢量候选列表的运动矢量候选可以包括从至少第一分区的空间或时间相邻分区导出的运动矢量候选,或可以从用于诸如合并模式、跳过模式或帧间模式之类的预测模式的图像块的运动矢量候选列表导出。
图64是用于示出当前图片的第一分区的邻近和非邻近的空间相邻分区的概念图。邻近的空间相邻分区是与当前图片中的第一分区邻近的分区。非邻近的空间相邻分区是与当前图片中的第一分区间隔开的分区。在一些实施例中,运动矢量候选的集合可以从当前图片中的至少第一分区的空间上相邻的分区导出。
第一运动矢量可以是例如单预测运动矢量或双预测运动矢量。图65是用于示出当前图片的图像块的单预测和双预测运动矢量候选的概念图。单预测运动矢量候选是相对于单个参考图片的当前图片中的当前块的单个运动矢量。如在图65的顶部所示,单预测运动矢量候选是从当前图片的块到参考图片的块的运动矢量,其中,参考图片按显示顺序出现在当前图片之前。在一些实施例中,参考图片可以按显示顺序出现在当前图片之后。
双预测运动矢量候选包括两个运动矢量:相对于第一参考图片的当前块的第一运动矢量和相对于第二参考图片的当前块的第二运动矢量。如图65所示,左下角的双预测运动矢量候选具有从当前图片的块到第一参考图片的块的第一运动矢量,以及从当前图片的块到第二参考图片的块的第二运动矢量。如图所示,第一参考图片和第二参考图片按显示顺序出现在当前图片之前。在图65的右下角的双预测运动矢量候选具有从当前图片的块到第一参考图片的块的第一运动矢量,以及从当前图片的块到第二参考图片的块的第二运动矢量。第一参考图片按显示顺序出现在当前图片之前,并且第二参考图片按显示顺序出现在当前图片之后。
在一些实施例中,一些分区形状可以与一种类型的预测运动矢量相关联。例如,在一些实施例中,三角形分区可以与单预测运动矢量候选相关联。
对第一组样本的预测可以包括具有包括第一运动矢量的一个或多个运动矢量的运动补偿过程,并且该运动补偿过程可以从当前图片预测样本(块内),或者从不同图片预测样本(块间),或其组合。
在步骤S6002中,从不同于第一分区的第二分区获得包括第二运动矢量的一个或多个运动矢量。第二分区可以是例如第一分区的在空间或时间上共置的分区。第二分区的一部分可以在空间上与第一分区的一部分重叠。可以使用运动估计过程来获得第二运动矢量。在一些实施例中,可以从比特流中解析第二运动矢量。在一些实施例中,第二运动矢量可以是从至少第二分区的一组运动矢量候选中预测的运动矢量。运动矢量候选列表中的运动矢量候选可以包括从第二分区的空间或时间相邻分区导出的运动矢量候选,或者可以从用于预测模式(例如,合并模式、跳过模式或其他帧间模式)的图像块的运动矢量候选列表导出。第二运动矢量可以是单预测运动矢量或双预测运动矢量。
在步骤S6003中,利用包括第二运动矢量的一个或多个运动矢量来预测第一分区的一部分的第二组样本。第一分区的第一部分小于第一分区并且与第一分区的边缘邻近地放置,并且与第一组样本重叠。对第二组样本的预测可以包括具有包括第二运动矢量的一个或多个运动矢量的运动补偿过程,并且运动补偿过程可以从当前图片预测样本(块内),或者从不同图片预测样本(块间),或其组合。第二组样本可以是例如具有相关联的运动矢量以及亮度和色度像素分量的像素块。例如,第二组样本中的每个样本可以是与第二运动矢量相关联并且具有相关联的亮度和色度像素分量的4×4像素块。
图66是用于示出第一分区的第一部分以及第一组样本和第二组样本的示例的概念图。第一部分可以是例如第一分区的宽度或高度的四分之一。在另一示例中,第一部分可以具有与邻近于第一分区的边缘的N个样本相对应的宽度,其中,N是大于零的整数,例如,N可以是整数2。如图所示,图66的右侧示例示出了矩形分区,该矩形分区具有矩形部分,该矩形部分的宽度为第一分区的宽度的四分之一,其中,第一组样本包括第一部分外部的样本和第一部分内部的样本,并且第二组样本包括第一部分内的样本。图66的中心示例示出了矩形分区,该矩形分区具有矩形部分,该矩形部分的高度为第一分区的高度的四分之一,其中,第一组样本包括第一部分外部的样本和第一部分内的样本,并且第二组样本包括第一部分内的样本。图66的左侧示例示出了其高度与两个样本相对应的多边形部分的三角形分区,其中,第一组样本包括第一部分之外的样本和第一部分内的样本,而第二组样本包括第一部分内的样本。
第一部分可以是第一分区的与相邻分区重叠的部分。图67是用于示出第一分区的第一部分的概念图,该第一分区是第一分区的与相邻分区的一部分重叠的部分。为了便于说明,示出了具有与空间上相邻的矩形分区重叠的部分的矩形分区。可以采用具有其他形状的分区,例如三角形分区,并且重叠的部分可以与在空间或时间上邻近的分区重叠。邻近分区可以是第二分区。
在步骤S6004中,使用第一部分中包括的第一组样本和第一部分中包括的第二组样本的子集对第一分区中包括的第一部分执行加权过程。可以将加权作为边界平滑过程的一部分来执行,所述边界平滑过程例如重叠块运动补偿过程(OBMC,参见图35和36及其描述)、参考图47-61描述的边界平滑过程等等。例如,可以基于样本的距与第一部分对齐的第一分区的边缘的距离,为第一部分中的第一组样本中的像素分配各种权重。与更远离边缘的样品相比,可以为更靠近边缘的样品分配较低的权重。类似地,可以基于例如样本的距与第一部分对齐的第一分区的边缘的距离,为第一分区的第一部分中的第二组样本的像素分配各种权重。与更远离边缘的样品相比,可以为更靠近边缘的样品分配更高的权重。
在步骤S6005中,为第一分区的第一部分存储一个或多个运动矢量,所存储的运动矢量是基于第一运动矢量和第二运动矢量中的一个或两个。在一些实施例中,所存储的运动矢量可以考虑第一运动矢量和第二运动矢量指向的参考图片列表。
例如,图68是用于示出第一运动矢量和第二运动矢量是指向不同参考图片列表中的不同图片的单预测运动矢量的示例情况的概念图。在一些实施例中,当第一运动矢量和第二运动矢量是指向不同参考图片列表中的不同图片的单预测运动矢量时,第一运动矢量和第二运动矢量可以被组合并存储为针对该第一分区的第一部分的双预测运动矢量。如图68所示,当前图片是POC 4。第一运动矢量Mv1是指向参考图片列表L0的参考图片POC0的单预测运动矢量,其包括参考图片POC 0至POC 8。第二运动矢量Mv2是指向包括参考图片POC8到POC 16的参考图片列表L1的参考图片POC16的单预测运动矢量。第一运动矢量Mv1和第二运动矢量Mv2被组合并存储为用于第一分区的第一部分的双预测运动矢量。
在另一个示例中,图69是用于示出第一运动矢量和第二运动矢量是指向单个参考图片列表中的图片的单预测运动矢量的示例情况的概念图。双预测运动矢量指向两个不同的参考图片列表。因此,简单地组合第一运动矢量和第二运动矢量将不会产生双预测运动矢量。在一些实施例中,当第一运动矢量和第二运动矢量是指向单个参考图片列表的不同参考图片的单预测运动矢量时,如果被指向的参考图片之一例如被包括在另一参考图片中列表中,则与该图片相关联的运动矢量(例如,如果其指向的参考图片被包括在两个参考图片列表中,则为第二运动矢量)可以由指向另一参考图片列表中的相同参考图片的运动矢量表示。可以通过用指向另一参考图片列表中的参考图片的替换运动矢量来替换与参考图片相关联的运动矢量,来组合第一运动矢量和第二运动矢量,并将其存储为针对第一分区的第一部分的双预测运动矢量。如图69所示,当前图片是POC 4。第一运动矢量Mv1是指向参考图片列表L0的参考图片POC 0的单预测运动矢量,参考图片列表L0包括参考图片POC 0至POC 8。第二运动矢量Mv2是指向参考图片列表L0的参考图片POC 8的单预测运动矢量。参考图片POC 8也包括在参考图片列表L1中。第二运动矢量Mv2被替换运动矢量Mv2’代替,替换运动矢量Mv2’指向参考图片列表L1中的参考图片POC 8。将第一运动矢量Mv1和替换第二运动矢量Mv2’组合并存储为用于第一分区的第一部分的双预测运动矢量。换句话说,可以使用指向相同图片的不同列表。
在另一个示例中,图70、图71和图72是用于示出第一运动矢量和第二运动矢量是指向相同参考图片列表中的相同参考图片的单预测运动矢量的示例情况的概念图。在一些实施例中,当第一运动矢量和第二运动矢量是指向相同参考图片列表中的相同参考图片的单预测运动矢量时,第一运动矢量被存储为用于第一分区的第一部分的单预测运动矢量。如图70所示,当前图片是POC 4。第一运动矢量Mv1是指向参考图片列表L0的参考图片POC 0的单预测运动矢量,参考图片列表L0包括参考图片POC 0至POC8。第二运动矢量Mv2是指向参考图片列表L0的参考图片POC 0的单预测运动矢量。将第一运动矢量Mv1存储为用于第一分区的第一部分的单预测运动矢量。
在一些实施例中,当第一运动矢量和第二运动矢量是指向相同参考图片列表中的相同参考图片的单预测运动矢量时,第二运动矢量被存储为针对第一分区的第一部分的单预测运动矢量。如图71所示,当前图片是POC4。第一运动矢量Mv1是指向参考图片列表L0的参考图片POC 0的单预测运动矢量,其包括参考图片POC 0至POC 8。第二运动矢量Mv2是指向参考图片列表L0的参考图片POC 0的单预测运动矢量。第二运动矢量Mv2被存储为针对第一分区的第一部分的单预测运动矢量。
在一些实施例中,当第一运动矢量和第二运动矢量是指向相同参考图片列表中的相同参考图片的单预测运动矢量时,第二运动矢量被替换为指向另一参考图片列表的参考图片的翻转运动矢量(flipped motion vector),并且第一运动矢量和翻转的运动矢量被组合并存储为用于第一分区的第一部分的双预测运动矢量。如图72所示,当前图片是POC4。第一运动矢量Mv1是指向参考图片列表L0的参考图片POC 0的单预测运动矢量,参考图片列表L0包括参考图片POC 0至POC 8。第二运动矢量Mv2是指向参考图片列表L0的参考图片POC 0的单预测运动矢量。第二运动矢量Mv2被指向参考图片列表L1中的参考图片的翻转的运动矢量Mv2’代替,如参考图片列表L1中的参考图片POC 8所示。将第一运动矢量Mv1和翻转的运动矢量Mv2’组合并存储为用于第一分区的第一部分的双预测运动矢量。可以以各种方式选择另一参考图片列表的参考图片,例如,参考图片列表L1中的与参考图片列表L0中第二运动矢量指向的参考图片的位置相同的参考图片可以被选择,参考图片列表L1中的按显示顺序与当前图片的距离与参考图片列表L0中第二运动矢量指向的参考图片的按显示顺序的距离相同的参考图片可以被选择,等等。可以取决于翻转的运动矢量所指向的另一参考图片列表中的参考图片,来按需缩放翻转的运动矢量。
在一些实施例中,在可能的情况下针对第一分区的第一部分存储基于第一运动矢量和第二运动矢量的双预测矢量,而无需翻转或缩放第一运动矢量和第二运动矢量中的一个(参见例如,图68和图69的实施例),并且当不可能在没有翻转或缩放第一运动矢量和第二运动矢量中的一个的情况下生成双预测运动矢量时,针对第一分区的第一部分存储单预测运动矢量(参见例如图70和图71,其中第一运动矢量或第二运动矢量中的一个被存储为用于第一分区的第一部分的单预测运动矢量。
在另一示例中,当第一运动矢量和第二运动矢量是指向同一参考图片的单预测运动矢量时,可以对第一运动矢量和第二运动矢量求平均以生成单预测运动矢量,其被存储作为用于第一分区的第一部分的单预测运动矢量。
在另一示例中,第一运动矢量和第二运动矢量中的一个可以是双预测运动矢量,而另一个可以是单预测运动矢量。双预测运动矢量可以被存储为用于第一分区的第一部分的运动矢量。
在另一示例中,第一运动矢量和第二运动矢量二者都可以是双预测运动矢量,并且第一运动矢量的参考图片可以与第二运动矢量的参考图片相同。可以对第一运动矢量和第二运动矢量求平均以生成双预测运动矢量,该双预测运动矢量被存储为针对第一分区的第一部分的双预测运动矢量。
在另一个示例中,第一运动矢量和第二运动矢量二者都可以是双预测运动矢量,并且第一运动矢量的参考图片可以与第二运动矢量的参考图片不同。可以将第二运动矢量缩放到第一运动矢量的参考图片,并与第一运动矢量求平均,以生成平均双预测运动矢量,该平均双预测运动矢量可以被存储为第一分区的第一部分的双预测运动矢量。
在另一示例中,第一运动矢量可以例如总是或者当存在某些条件时被存储为第一分区的第一部分的运动矢量。在另一个示例中,第二运动矢量可以例如总是或者当存在某些条件时被存储为第一分区的第一部分的运动矢量。在步骤S6006中,至少使用第一分区的第一部分的加权样本来对第一分区进行编码或解码。例如,可以将第一组样本中的样本的加权像素分量值(例如,亮度值、色度值)和第二组样本中的对应样本的加权像素分量值进行组合,以确定在编码或解码过程中采用的像素分量值。参见例如图47-61及其相应的描述。
所公开的实施例介绍了存储加权区域(例如,所公开的示例中的第一分区的第一部分)的运动矢量的方法。这可以提高针对下一编码分区的运动矢量预测的准确性,这可以提高编码效率。注意,通常可以为四个像素的块存储加权区域的运动矢量。例如,每个样本可以是为其存储运动矢量的四乘四像素块。可以存储加权区域的单预测运动矢量或双预测运动矢量,而不会显著增加或根本不增加用于存储加权区域的运动矢量的存储器的量。
注意,在针对由图像编码设备执行的编码方法和编码过程的描述中使用的术语“编码”和“编码”,对于图像解码设备执行的解码方法和解码过程,可以被术语“解码”代替。并非总是需要所有描述的过程和元素,并且在一些实施例中可以省略一个或多个描述的过程。
可以通过组合本公开中的其他方面的至少一部分来执行本文公开的一个或多个方面。另外,本文公开的一个或多个方面可以通过将根据这些方面的任何流程图中指示的部分过程、任何设备的配置的一部分、语法的一部分等与其他方面相组合来执行。
(实现与应用)
如以上每个实施例中所述,每个功能或操作块通常可以被实现为例如MPU(微处理单元)和存储器。此外,由所述功能块中的每个功能块执行的过程可以被实现为程序执行单元,例如读取并执行记录在诸如ROM之类的记录介质上的软件(程序)的处理器。该软件可以是分布式的。该软件可以被记录在诸如半导体存储器之类的各种记录介质上。注意,每个功能块也可以被实现为硬件(专用电路)。可以采用硬件和软件的各种组合。
每个实施例中描述的处理可以通过使用单个装置(系统)的集成处理来实现,或者,可以通过使用多个装置的去中心化处理来实现。此外,执行上述程序的处理器可以是单个处理器或多个处理器。换句话说,可以执行集成处理,或者可以执行去中心化处理。
本公开的实施例不限于以上示例性实施例;可以对示例性实施例进行各种修改,其结果也被包括在本公开的实施例的范围内。
接下来,将描述在以上每个实施例中描述的运动图片编码方法(图像编码方法)和运动图片解码方法(图像解码方法)的应用示例,以及实现实施应用示例的各种系统。这样的系统的特征可以在于包括采用图像编码方法的图像编码器、采用图像解码方法的图像解码器,或者包括图像编码器和图像解码器的图像编码器-解码器两者。这样的系统的其他配置可以根据具体情况被修改。
(用法示例)
图73示出了适于实现内容分配服务的内容提供系统ex100的整体配置。提供通信服务的区域被分割成期望大小的小区,并且在所示示例中是固定无线站的基站ex106、ex107、ex108、ex109和ex110位于各个小区中。
在内容提供系统ex100中,包括计算机ex111、游戏设备ex112、相机ex113、家用电器ex114、和智能手机ex115的设备经由互联网服务提供商ex102或通信网络ex104以及基站ex106至ex110连接至互联网ex101。内容提供系统ex100可以组合并连接上述设备的任何组合。在各种实现中,设备可以经由电话网络或近场通信而不是经由基站ex106至ex110直接或间接地连接在一起。此外,流媒体服务器ex103可以经由例如互联网ex101连接到包括计算机ex111、游戏设备ex112、相机ex113、家用电器ex114、和智能手机ex115在内的设备。流媒体服务器ex103也可以经由卫星ex116连接到例如飞机ex117中的热点中的终端。
注意,可以使用无线接入点或热点来代替基站ex106到ex110。流媒体服务器ex103可以直接连接到通信网络ex104,而不是通过互联网ex101或互联网服务提供商ex102,并且可以直接连接到飞机ex117,而不是通过卫星ex116。
相机ex113是一种能够捕获静止图像和视频的设备,例如数码相机。智能手机ex115是可以在2G、3G、3.9G和4G系统以及下一代5G系统的移动通信系统标准下运行的智能手机设备、蜂窝电话、或个人手持电话系统(PHS)电话。
家用电器ex114例如是冰箱或包括在家庭燃料电池热电联产系统中的设备。
在内容提供系统ex100中,包括图像和/或视频捕获功能的终端能够例如通过经由例如基站ex106连接到流媒体服务器ex103而进行实时流式传输。当进行实时流式传输时,终端(例如,计算机ex111、游戏设备ex112、相机ex113、家用电器ex114、智能手机ex115、或飞机ex117中的终端)可以对由用户经由终端捕获的静止图像或视频内容执行上述实施例中所述的编码处理,可以复用经由编码获得的视频数据和通过编码与视频相对应的音频而获得的音频数据,并且可以将获得的数据发送到流媒体服务器ex103。换句话说,终端用作根据本公开的一个方面的图像编码器。
流媒体服务器ex103将发送的内容数据流式传输至请求该流的客户端。客户端示例包括计算机ex111、游戏设备ex112、相机ex113、家用电器ex114、智能手机ex115、和飞机ex117内的终端,它们能够解码上述经编码的数据。接收流式传输的数据的设备可以解码并再现所接收的数据。换句话说,所述设备中的每个设备可以充当根据本公开的一个方面的图像解码器。
(去中心化处理)
流媒体服务器ex103可以被实现为在其之间划分诸如数据的处理、记录和流式传输的任务的多个服务器或计算机。例如,流媒体服务器ex103可以被实现为内容传递网络(CDN),该CDN经由连接位于世界各地的多个边缘服务器的网络来流式传输内容。在CDN中,将物理上靠近客户端的边缘服务器可以被动态分配给客户端。内容被缓存并流式传输到边缘服务器以减少加载时间。例如,在由于流量高峰而出现某种类型的错误或连接性改变的事件中,可以稳定地高速流式传输数据,这是因为可以通过以下方式避免网络的受影响部分:例如,在多个边缘服务器之间划分处理,或将流式传输职责切换到不同的边缘服务器并且继续流式传输。
去中心化不仅限于划分处理以用于流式传输;对所捕获的数据的编码可以在服务器侧的终端之间分配,或者由终端执行,或两者兼有。在一个示例中,在典型编码中,该处理在两个循环中执行。第一循环用于在逐帧或逐场景的基础上检测图像的复杂程度,或检测编码负荷。第二循环用于保持图像质量和改进编码效率的处理。例如,有可能通过以下操作来降低终端的处理负责并且改进内容的质量和编码效率:使得终端执行编码的第一循环,以及使得接收该内容的服务器方执行编码的第二循环。在这样的情况下,在接收到解码请求时,有可能将由于在一个终端上执行的第一循环所产生的经编码的数据近似实时地在另一终端上被接收和再现。这样就有可能实现流畅、实时的流式传输。
在另一个示例中,相机ex113等从图像中提取特征量(一定量的特征或特性),将与该特征量有关的数据压缩为元数据,并且将经压缩的元数据发送至服务器。例如,服务器基于特征量确定对象的重要性,并且相应地改变量化精度以执行适合于图像的含义(或内容重要性)的压缩。特征量数据在改进服务器执行的第二压缩次期间的运动矢量预测的精度和效率方面特别有效。此外,终端可以处理诸如可变长度编码(VLC)之类的具有相对较低处理负荷的编码,并且诸如上下文自适应二进制算术编码(CABAC)之类的具有相对较高处理负荷的编码可以由服务器处理。
在又一示例中,存在其中例如在体育场、购物中心、或工厂中的多个终端捕获近似相同场景的多个视频的情况。在这样的情况下,例如,可以通过在每单位基础上在捕获视频的多个终端以及如果需要的话在未捕获视频的其他终端与服务器之间划分处理任务来去中心化编码。单位可以是例如图片组(GOP)、图片、或划分图片后得到的图块。这样可以减少加载时间并实现更接近实时的流式传输。
由于视频具有大致相同的场景,因此服务器可以实行管理和/或指示,以使得可以交叉引用终端所捕获的视频。此外,服务器可以从终端接收经编码的数据,改变数据项之间的参考关系,或者自身校正或替换图片,并且接着执行编码。这使得可以为个体的数据项生成具有提高的质量和效率的流。
此外,服务器可以在执行代码转换以转换视频数据的编码格式之后流式传输视频数据。例如,服务器可以将编码格式从MPEG转换为VP(例如,VP9),可以将H.264转换为H.265,等等。
以该方式,可以由终端或一个或多个服务器来执行编码。因此,尽管在下文的描述中将执行编码的设备称为“服务器”或“终端”,但是由服务器执行的一些或全部过程可以由终端执行,并且同样,由终端执行的处理可以由服务器执行。这也适用于解码过程。
(3D,多角度)
通过多个终端(例如,相机ex113和/或智能手机ex115),从同时捕获的不同场景的图像或视频或从不同角度捕获的同一场景的图像或视频组合的图像或视频的使用已经增加。可以基于例如在终端之间单独获得的相对位置关系或视频中具有匹配特征点的区域来组合由终端捕获的视频。
除了对二维运动图片进行编码之外,服务器还可以基于运动图片的场景分析,自动或在用户指定的时间点对静止图像进行编码,并将经编码的静止图像发送至接收终端。此外,当服务器能够获得视频捕获终端之间的相对位置关系时,除了二维运动图片之外,服务器还可以基于从不同角度捕获的同一场景的视频来生成场景的三维几何形状。服务器可以分别对从例如点云生成的三维数据进行编码,并且基于使用三维数据识别或跟踪人或物体的结果,服务器可以从多个终端捕获的视频中选择或重构并生成要发送至接收终端的视频。
这允许用户通过自由地选择与视频捕获终端相对应的视频来享受场景,并且允许用户享受通过从由多个图像或视频重构的三维数据中在选定的视点提取视频而获得的内容。此外,与视频一样,可以从相对不同的角度记录声音,并且服务器可以将特定角度或空间的音频与对应的视频进行复用,并且发送经复用的视频和音频。
近年来,诸如虚拟现实(VR)和增强现实(AR)内容之类的由现实世界和虚拟世界组成的内容也变得很流行。在VR图像的情况下,服务器可以从左眼和右眼两者的视点创建图像,并且执行容许在两个视点图像之间进行参考的编码,例如多视图编码(MVC),或者,可以将图像编码为单独的流而不进行参考。当将图像被解码为单独的流时,可以在再现时将所述流同步,以便根据用户的视点来重新创建虚拟三维空间。
在AR图像的情况下,服务器可以基于从用户的角度来看的三维位置或运动,将存在于虚拟空间中的虚拟对象信息叠加到表示真实空间的相机信息上。解码器可以获取或存储虚拟对象信息和三维数据,基于从用户角度的运动来生成二维图像,并且接着通过无缝地连接图像来生成叠加的数据。可替代地,除了对虚拟对象信息的请求之外,解码器还可以向服务器发送从用户角度的运动。服务器可以根据接收到的运动,基于存储在服务器中的三维数据来生成叠加的数据,并且将生成的叠加的数据编码并将其流式传输至解码器。注意,叠加的数据除了RGB值之外通常还包括表示透明度的α值,并且服务器将除了从三维数据生成的对象以外的部分的α值设置为例如0,并且可以在这些部分是透明同时进行编码。可替代地,服务器可以将背景设置为确定的RGB值(例如,色度键),并且生成将对象以外的区域设置为背景的数据。确定的RGB值可以是预先确定的。
对类似地流式传输的数据的解码可以由客户端(例如,终端)在服务器侧执行,或者在它们之间划分。在一个示例中,一个终端可以将接收请求发送至服务器,所请求的内容可以被另一终端接收和解码,并且经解码的信号可以被发送至具有显示器的设备。无论通信终端自身的处理能力如何,都可以通过去中心化处理以及适当地选择内容来再现高图像质量数据。在又一示例中,例如,当TV正在接收大尺寸的图像数据时,可以对诸如通过划分图片而获得的图块之类的图片的区域进行解码,并将其显示在个人终端上或TV的一个或多个观看者的终端上。这使得观看者可以共享大图片视图,并且每个观看者都可以检查其分配的区域,或者更近距离地检视区域。
在室内,室外,近距离,中距离和远距离都可以进行多个无线连接的情况下,可以使用诸如MPEG-DASH之类的流式传输系统标准无缝地接收内容。用户可以在数据之间实时切换,同时自由地选择包括用户终端的解码器或显示装置,布置在室内或室外的显示器等。此外,使用例如关于用户位置的信息,可以在切换哪个终端处理解码,哪个终端处理对内容的显示的同时进行解码。当用户在前往目的地的途中时,这使得有可能在嵌入了能够显示内容的设备的附近建筑物的墙壁上或在地面的一部分上绘制和显示信息。此外,还可以基于对网络上的经编码的数据的可访问性来切换接收到的数据的比特率,例如何时将经编码的数据缓存在可从接收终端快速访问的服务器上,或者何时将经编码的数据复制到内容传递服务中的边缘服务器。
(可伸缩编码)
将参考在图74中所示的可伸缩流来描述内容的切换,其是通过上述实施例中描述的运动图片编码方法的实现而被压缩编码的。服务器可以具有这样的配置,其中,在利用流的时间和/或空间可伸缩性的同时切换内容,这是通过对层进行划分和编码来实现的,如图74所示。请注意,可以存在多个内容相同但质量不同的个体的流。换句话说,通过基于诸如解码器侧的处理能力之类的内部因素和诸如通信带宽之类的外部因素确定要解码的层,解码器侧可以在解码的同时在低分辨率内容和高分辨率内容之间自由地切换。例如,在用户想要例如在家中使用诸如连接到互联网的电视之类的设备继续观看该用户在移动时先前在智能手机ex115上观看过的视频的情况下,该设备可以简单地将同一流向上解码到不同的层,这降低了服务器侧的负荷。
此外,除了上述配置(其中,由于按层对图片进行编码而实现了可伸缩性),以及增强层位于基础层之上以外,增强层还可以包括基于例如关于图像的统计信息的元数据。解码器侧可以通过基于元数据对基础层中的图片执行超分辨率成像来生成高图像质量的内容。超分辨率成像可以在保持分辨率和/或提高分辨率的同时提高信噪比。元数据包括用于标识在超分辨率处理中使用的线性或非线性滤波器系数的信息,或者用于标识在超分辨率处理中使用的滤波处理、机器学习、或最小二乘法的参数值的信息。
可替代地,可以提供这样一种配置,其中,根据例如图像中的对象的含义将图片分割成例如图块。在解码器侧,通过选择要解码的图块仅解码了部分区域。此外,通过将对象(人、汽车、球等)的属性和对象在视频中的位置(同一图像中的坐标)存储为元数据,解码器侧可以基于元数据来识别期望的对象的位置,并且确定哪个或哪些图块包含该对象。例如,如图75所示,可以使用不同于像素数据的数据存储结构来存储元数据,例如HEVC中的SEI(补充增强信息)消息。该元数据指示例如主要对象的位置、大小、或颜色。
元数据可以以多个图片为单位被存储,例如流、序列、或随机访问单位。解码器侧可以获得例如特定人出现在视频中的时间,并且通过将时间信息与图片单位信息进行拟合,可以识别其中存在对象的图片,并且可以确定对象在图片中的位置。
(网页优化)
图76示出了例如计算机ex111上的网页的显示屏幕的示例。图77示出例如了智能手机ex115上的网页的显示屏幕的示例。如图76和图77中所示,网页可以包括作为去往图像内容的链接的多个图像链接,并且网页的外观可以根据用于查看网页的设备而不同。当在屏幕上可以看到多个图像链接时,直到用户明确选择图像链接,或者直到图像链接位于屏幕的大致中心,或者直到整个图像链接都适合屏幕为止,显示装置(解码器)可以显示内容或I图片中包括的静止图像作为图像链接;可以使用多个静止图像或I图片来显示诸如动画gif之类的视频;或者可以仅接收基础层,并且解码并显示视频。
当用户选择图像链接时,显示装置在例如将最高优先级给予基础层的同时执行解码。注意,如果网页的HTML代码中存在指示内容是可缩放的信息,则显示装置可以解码上至增强层。此外,为了保证实时再现,在进行选择之前或当带宽受到严格限制时,显示装置可以通过仅解码和显示前向参考图片(I图片、P图片、前向参考B图片)来减小在对前导图片进行解码的时间点与在显示经解码的图片的时间点之间的延迟(即,对内容解码开始到对内容显示之间的延迟)。另外,显示装置可以有意地忽略图片之间的参考关系,并且将所有B和P图片粗略地解码为前向参考图片,并且接着随着在一段时间内接收的图片数量的增加而执行常规解码。
(自动驾驶)
当发送和接收静止图像或视频数据(例如,用于自动驾驶或辅助驾驶汽车的二维或三维地图信息)时,接收终端除了可以接收属于一层或多层的图像数据以外,还可以接收有关例如,天气或道路建设的信息作为元数据,并且在解码时将所述元数据与图像数据相关联。注意,元数据可以按层分配,并且可替代地可以仅是与图像数据复用。
在这样的情况下,由于包含接收终端的汽车、无人机、飞机等是可移动的,因此接收终端可以通过发送表示接收终端位置的信息来无缝地接收并执行解码,同时在基站ex106至ex110中的基站之间进行切换。此外,根据用户的选择、用户的状况、和/或连接的带宽,接收终端可以动态地选择接收元数据的程度或者更新例如地图信息的程度。
在内容提供系统ex100中,客户端可以实时接收、解码、和再现由用户发送的经编码的信息。
(流式传输个体内容)
在内容提供系统ex100中,除了高图像质量之外,由视频分发实体分发的长内容、低图像质量的单播或多播流、以及来自个体的短内容也是可能的。来自个体的此类内容的流行度很可能进一步增加。服务器可以首先在编码处理之前对内容执行编辑处理,以便细化个体内容。例如,这可以使用以下配置来实现。
在实时捕获视频或图像内容时,或者在捕获和累积了内容后,服务器会基于原始数据或经编码的数据执行识别处理,例如捕获错误处理,场景搜索处理,含义分析,和/或对象检测处理。接着,基于识别处理的结果,服务器在被提示时或自动地编辑内容,其示例包括:例如对焦和/或运动模糊校正之类的校正;移除低优先级的场景,例如与其他图片相比亮度较低的场景,或者跑焦的场景;对象边缘调整;以及色调调整。服务器基于编辑的结果来对经编辑的数据进行编码。众所周知,视频过长会导致观看次数减少。由此,为了将内容保持在与原始视频的长度想当的具体长度内,除了上述的低优先级场景之外,服务器还可以基于图像处理结果来自动裁剪掉具有低运动的场景。可替代地,服务器可以基于对场景的含义的分析结果来生成并编码视频摘要。
在某些情况下,个体内容可能包括侵犯版权、精神权利、肖像权等的内容。这样的实例可能会给创作者带来不利的处境,例如在创作者打算超出的范围内共享内容时。由此,在编码之前,服务器可以例如编辑图像以便使得屏幕外围的人脸模糊或使得房屋的内部模糊。此外,服务器可以被配置为在要编码的图像中识别除了经注册的人之外的人的面部,并且当这样的面部出现在图像中时,可以将马赛克滤波器应用于例如该人的面部。可替代地,作为用于编码的预处理或后处理,用户可以出于版权原因而指定包括人或待处理背景的区域的图像区域。服务器可以通过例如用不同的图像替换该区域或使该区域模糊来处理指定的区域。如果该区域包括人,则可以在运动图片中跟踪该人,并且可以随着该人的移动用另一图像替换该人的头部区域。
由于需要实时观看个体产生的、倾向于较小数据大小的内容,因此解码器可以首先接收基础层作为最高优先级,并且执行解码和再现,但这可能会根据带宽而有所不同。当内容被再现两次或更多次时,例如当解码器在基础层的解码和再现期间接收到增强层并且循环该再现时,解码器可以再现包括增强层的高图像质量的视频。如果使用这样的可伸缩编码对流进行编码,则视频可能在处于未选择状态时或在视频开始时质量较低,但是其可以提供流的图像质量以智能方式逐渐提高的体验。这不仅限于可伸缩编码;可以通过从第一次再现的低质量流和使用该第一流作为参考编码的第二流来配置单个流,从而提供相同的体验。
(其他实现和应用示例)
编码和解码可以由通常包括在每个终端中的LSI(大规模集成电路)ex500(参见图73)执行。LSI ex500可以由单个芯片或多个芯片配置。可以将用于对运动图片进行编码和解码的软件集成到某种类型的记录介质(例如,CD-ROM、软盘、或硬盘)中,例如,计算机ex111可以读取该记录介质,进行编码和解码可以使用该软件执行。此外,当智能手机ex115装备有相机时,由该相机所获取的视频数据可以被传输。在该情况下,视频数据可以由在智能手机ex115中包括的LSI ex500编码。
注意,LSI ex500可以被配置为下载并激活应用。在这样的情况下,终端首先确定其是否与用于编码内容的方案兼容,或者是否能够执行特定服务。当终端与内容的编码方案不兼容时,或者当终端不能够执行特定服务时,终端可以首先下载编解码器或应用软件,并且接着获取并再现内容。
除了使用互联网ex101的内容提供系统ex100的示例之外,至少在上述实施例中描述的运动图片编码器(图像编码器)或运动图片解码器(图像解码器)可以在数字广播系统中被实现。可以将相同的编码处理和解码处理应用于例如使用卫星来发送和接收与复用的音频和视频数据叠加的广播无线电波,即使这是针对多播的,而对于内容提供系统ex100而言,单播是更容易的。
(硬件配置)
图78示出了图73中所示的智能手机ex115的更多细节。图79示出了智能手机ex115的配置示例。智能手机ex115包括用于向基站ex110发送无线电波以及从基站ex110接收无线电波的天线ex450,能够捕获视频和静止图像的相机ex465,以及用于显示经解码的数据的显示器ex458,所述经解码的数据例如相机ex465捕获的视频和天线ex450接收的视频。智能手机ex115还包括诸如触摸面板之类的用户界面ex466,例如用于输出语音或其他音频的扬声器之类的音频输出单元ex457,诸如用于音频输入的麦克风之类的音频输入单元ex456,能够存储诸如所捕获的视频或静止图像、录制的音频、接收到的视频或静止图像、邮件以及经解码的数据之类的解码数据的存储器ex467,还有槽ex464,其是SIM ex468的接口,用于授权访问网络和各种数据。注意,可以使用外部存储器以代替ex467。
可以全面控制显示器ex458和用户界面ex466的主控制器ex460、电源电路ex461、用户界面输入控制器ex462、视频信号处理器ex455、相机界面ex463、显示控制器ex459、调制器/解调器ex452、复用器/解复用器ex453、音频信号处理器ex454、插槽ex464和存储器ex467通过总线ex470连接。
当用户打开电源电路ex461的电源按钮时,智能手机ex115通电进入可操作状态,并且从电池组为每个组件供电。
智能电话ex115基于由包括CPU、ROM和RAM的主控制器ex460执行的控制来执行例如呼叫和数据传输的处理。当进行呼叫时,由音频输入单元ex456记录的音频信号由音频信号处理器ex454转换为数字音频信号,并通过调制器/解调器ex452对该数字音频信号进行扩频处理并进行数模转换,并且通过发射机/接收机ex451进行频率转换处理,所得出的信号经由天线ex450被发送。所接收的数据由调制器/解调器ex452进行放大、频率转换和模数转换、逆扩展频谱处理,由音频信号处理器ex454转换为模拟音频信号,并且接着从音频输出单元ex457输出。在数据传输模式下,例如,基于主体的用户界面ex466的操作,可以在主控制器ex460的控制下经由用户界面输入控制器ex462来传输文本、静止图像、或视频数据。执行类似的发送和接收处理。在数据传输模式中,当发送视频、静止图像、或视频和音频时,视频信号处理器ex455经由上述实施例中所述的运动图片编码方法对存储在存储器ex467中的视频信号或从相机ex467输入的视频信号进行压缩编码,并且将经编码的视频数据发送至复用器/解复用器ex453。音频信号处理器ex454在相机ex465正在捕获视频或静止图像的同时,对由音频输入单元ex456记录的音频信号进行编码,并且将经编码的音频数据发送至复用器/解复用器ex453。复用器/解复用器ex453使用确定的方案来复用经编码的视频数据和经编码的音频数据,使用调制器/解调器(调制器/解调器电路)ex452和发射机/接收机ex451来对数据进行调制和转换,并且经由天线ex450发送结果。确定的方案可以是预先确定的。
例如,当接收到附加在电子邮件或聊天中的视频或从网页链接的视频时,为了对经由天线ex450接收到的复用数据进行解码,复用器/解复用器ex453对复用数据进行解复用以将复用数据划分成视频数据的比特流和音频数据的比特流,将经编码的视频数据经由同步总线ex470提供给视频信号处理器ex455,并且将经编码的音频数据经由同步总线ex470提供给音频信号处理器ex454。视频信号处理器ex455使用与上述实施例中描述的运动图片编码方法相对应的运动图片解码方法来对视频信号进行解码,并且链接的运动图片文件中包括的视频或静止图像经由显示控制器ex459被显示在显示器ex458上。音频信号处理器ex454对音频信号进行解码,并且从音频输出单元ex457输出音频。由于实时流式传输正变得越来越流行,所以根据用户的环境,在某些情况下音频的再现可能在社会上不合适。由此,作为初始值,其中仅再现视频数据即不再现音频信号的配置可以是优选的;仅当接收到输入时(例如,当用户点击视频数据时),才可以同步和再现音频。
尽管在上面的示例中使用了智能手机ex115,但是可以想到其他实现:既包括编码器又包括解码器的收发机终端;仅包括编码器的发射机终端;仅包括解码器的接收机终端。在数字广播系统的描述中,给出了这样的示例,在该示例中,接收或发送由于视频数据与音频数据被复用而获得的复用数据。然而,复用数据可以是与除音频数据之外的数据(例如,与视频有关的文本数据)复用的视频数据。此外,可以接收或发送视频数据本身而不是经复用的数据。
尽管将包括CPU的主控制器ex460描述为控制编码或解码过程,但是各种终端通常包括GPU。由此,可接受这样的配置,其中,经由CPU和GPU共享的存储器或包括被管理以允许CPU和GPU的通用使用的地址的存储器,通过利用GPU的表现能力立即处理大型区域。这样可以缩短编码时间,保持流的实时性,并且降低延迟。特别地,与运动估计、去块滤波、采样自适应偏移(SAO)、以及变换/量化有关的处理可以例如由GPU而不是CPU以图片为单位有效地一次全部实行。

Claims (64)

1.一种图像编码器,包括:
电路;以及
耦合到所述电路的存储器;
其中,所述电路在操作中进行以下操作:
利用包括第一运动矢量的一个或多个运动矢量,预测当前图片的第一分区的第一组样本;
利用来自不同于所述第一分区的第二分区的一个或多个运动矢量,预测所述第一分区的第一部分的第二组样本;
对所述第一分区的第一部分的所述第一组样本中的样本和所述第一分区的第一部分的所述第二组样本中的样本进行加权;
基于所述第一运动矢量和所述第二运动矢量中的一个或两个,存储用于所述第一分区的第一部分的运动矢量;以及
至少使用所述第一分区的第一部分的经加权的样本,对所述第一分区进行编码。
2.根据权利要求1所述的编码器,其中,所述电路在操作中进行以下操作:
生成所述第二运动矢量。
3.根据权利要求1所述的编码器,其中,所述第一运动矢量是单预测运动矢量。
4.根据权利要求3所述的编码器,其中,所述第二运动矢量是单预测运动矢量。
5.根据权利要求4所述的编码器,其中,所存储的运动矢量是包括所述第一运动矢量和所述第二运动矢量的双预测运动矢量。
6.根据权利要求4所述的编码器,其中,所存储的运动矢量是包括以下各项的双预测运动矢量:所述第一运动矢量和所述第二运动矢量中的一个,以及所述第一运动矢量和所述第二运动矢量中的另一个的替换矢量。
7.根据权利要求4所述的编码器,其中,所存储的运动矢量是包括以下各项的双预测运动矢量:所述第一运动矢量和所述第二运动矢量中的一个,以及所述第一运动矢量和所述第二运动矢量中的另一个的翻转。
8.根据权利要求4所述的编码器,其中,所存储的运动矢量是所述第一运动矢量和所述第二运动矢量中的一个。
9.根据权利要求4所述的编码器,其中,所存储的运动矢量是通过对所述第一运动矢量和所述第二运动矢量求平均而生成的单预测运动矢量。
10.根据权利要求1所述的编码器,其中,所述第一分区是三角形形状的分区。
11.根据权利要求1所述的编码器,其中,所述第二分区是三角形形状的分区。
12.根据权利要求10所述的编码器,其中,所述第二分区是三角形形状的分区。
13.根据权利要求4所述的编码器,其中,所述电路在操作中进行以下操作:
基于与所述第一运动矢量和所述第二运动矢量相关联的参考图片列表,生成所存储的运动矢量。
14.根据权利要求13所述的编码器,其中,所述电路在操作中进行以下操作:
确定与所述第一运动矢量相关联的参考图片列表是否与所述第二运动矢量相关联;
响应于确定与所述第一运动矢量相关联的所述参考图片列表与所述第二运动矢量相关联,将所述第一运动矢量和所述第二运动矢量中的一个存储为用于所述第一分区的第一部分的单预测运动矢量;并且
响应于确定与所述第一运动矢量相关联的所述参考图片列表不与所述第二运动矢量相关联,存储用于所述第一分区的第一部分的包括所述第一运动矢量和所述第二运动矢量的双预测运动矢量。
15.根据权利要求13所述的编码器,其中,所述电路在操作中进行以下操作:
确定与所述第一运动矢量相关联的参考图片列表是否与所述第二运动矢量相关联;
响应于确定与所述第一运动矢量相关联的所述参考图片列表与所述第二运动矢量相关联,确定与所述第一运动矢量和所述第二运动矢量中的一个相关联的参考图片是否被包括在另一参考图片列表中;并且
响应于确定与所述第一运动矢量和所述第二运动矢量中的一个相关联的参考图片被包括在另一参考图片列表中而进行以下操作:
为所述第一运动矢量和所述第二运动矢量中的一个生成替换运动矢量,所述替换矢量指向所述另一参考图片列表中的所述参考图片;并且
将包括所述替换运动矢量以及所述第一运动矢量和所述第二运动矢量中的另一个的双预测运动矢量存储为用于所述第一分区的第一部分的所存储的运动矢量。
16.根据权利要求15所述的编码器,其中,所述电路在操作中进行以下操作:
响应于确定与所述第一运动矢量相关联的参考图片以及与所述第二运动矢量相关联的参考图片没有被包括在另一参考图片列表中,将所述第一运动矢量和所述第二运动矢量中的一个存储为用于所述第一分区的第一部分的所存储的运动矢量。
17.一种图像编码器,包括:
分割器,其在操作中接收原始图片并且将所述原始图片分割为块,
第一加法器,其在操作中接收来自所述分割器的所述块和来自预测控制器的预测,并且从每个预测的对应的块中减去每个预测以输出残差,
变换器,其在操作中对从所述加法器输出的所述残差执行变换以输出变换系数,
量化器,其在操作中对所述变换系数进行量化以生成经量化的变换系数,
熵编码器,其在操作中对所述经量化的变换系数进行编码以生成比特流,
逆量化器和逆变换器,其在操作中对所述经量化的变换系数进行逆量化以获得所述变换系数,并且对所述变换系数进行逆变换以获得所述残差,
第二加法器,其在操作中将从所述逆量化器和逆变换器输出的所述残差与从所述预测控制器输出的所述预测相加以重构所述块,以及
所述预测控制器,其耦合到帧间预测器、帧内预测器和存储器,其中,所述帧间预测器在操作中基于经编码的参考图片中的参考块来生成对当前块的预测,并且所述帧内预测器在操作中基于当前图片中的经编码的参考块来生成对当前块的预测,其中,所述帧间预测器在操作中进行以下操作:
利用包括第一运动矢量的一个或多个运动矢量,预测当前图片的第一分区的第一组样本;
利用来自不同于所述第一分区的第二分区的一个或多个运动矢量,预测所述第一分区的第一部分的第二组样本;
对所述第一分区的第一部分的所述第一组样本中的样本和所述第一分区的第一部分的所述第二组样本中的样本进行加权;
基于所述第一运动矢量和所述第二运动矢量中的一个或两个,存储用于所述第一分区的第一部分的运动矢量;以及
至少使用所述第一分区的第一部分的经加权的样本,对所述第一分区进行编码。
18.根据权利要求17所述的图像编码器,其中,所述帧间预测器在操作中进行以下操作:
生成所述第二运动矢量。
19.根据权利要求17所述的图像编码器,其中,所述第一运动矢量是单预测运动矢量,并且所述第二运动矢量是单预测运动矢量。
20.根据权利要求19所述的图像编码器,其中,所存储的运动矢量是包括所述第一运动矢量和所述第二运动矢量的双预测运动矢量。
21.根据权利要求19所述的图像编码器,其中,所存储的运动矢量是包括以下各项的双预测运动矢量:所述第一运动矢量和所述第二运动矢量中的一个,以及所述第一运动矢量和所述第二运动矢量中的另一个的替换矢量。
22.根据权利要求19所述的图像编码器,其中,所存储的运动矢量是所述第一运动矢量和所述第二运动矢量中的一个。
23.根据权利要求19所述的图像编码器,其中,所述第一分区是三角形形状的分区。
24.根据权利要求19所述的图像编码器,其中,所述帧间预测器在操作中进行以下操作:
基于与所述第一运动矢量和所述第二运动矢量相关联的参考图片列表,生成所存储的运动矢量。
25.根据权利要求24所述的图像编码器,其中,所述帧间预测器在操作中进行以下操作:
确定与所述第一运动矢量相关联的参考图片列表是否与所述第二运动矢量相关联;
响应于确定与所述第一运动矢量相关联的所述参考图片列表与所述第二运动矢量相关联,将所述第一运动矢量和所述第二运动矢量中的一个存储为用于所述第一分区的第一部分的单预测运动矢量;并且
响应于确定与所述第一运动矢量相关联的所述参考图片列表不与所述第二运动矢量相关联,存储用于所述第一分区的第一部分的包括所述第一运动矢量和所述第二运动矢量的双预测运动矢量。
26.根据权利要求24所述的图像编码器,其中,所述帧间预测器在操作中进行以下操作:
确定与所述第一运动矢量相关联的参考图片列表是否与所述第二运动矢量相关联;
响应于确定与所述第一运动矢量相关联的所述参考图片列表与所述第二运动矢量相关联,确定与所述第一运动矢量和所述第二运动矢量中的一个相关联的参考图片是否被包括在另一参考图片列表中;并且
响应于确定与所述第一运动矢量和所述第二运动矢量中的一个相关联的参考图片被包括在另一参考图片列表中而进行以下操作:
为所述第一运动矢量和所述第二运动矢量中的一个生成替换运动矢量,所述替换矢量指向所述另一参考图片列表中的所述参考图片;并且
将包括所述替换运动矢量以及所述第一运动矢量和所述第二运动矢量中的另一个的双预测运动矢量存储为用于所述第一分区的第一部分的所存储的运动矢量。
27.根据权利要求26所述的图像编码器,其中,所述帧间预测器在操作中进行以下操作:
响应于确定与所述第一运动矢量相关联的参考图片以及与所述第二运动矢量相关联的参考图片没有被包括在另一参考图片列表中,将所述第一运动矢量和所述第二运动矢量中的一个存储为用于所述第一分区的第一部分的所存储的运动矢量。
28.一种图像编码方法,包括:
利用包括第一运动矢量的一个或多个运动矢量,预测当前图片的第一分区的第一组样本;
利用来自不同于所述第一分区的第二分区的一个或多个运动矢量,预测所述第一分区的第一部分的第二组样本;
对所述第一分区的第一部分的所述第一组样本中的样本和所述第一分区的第一部分的所述第二组样本中的样本进行加权;
基于所述第一运动矢量和所述第二运动矢量中的一个或两个,存储用于所述第一分区的第一部分的运动矢量;以及
至少使用所述第一分区的第一部分的经加权的样本,对所述第一分区进行编码。
29.根据权利要求28所述的图像编码方法,其中,所述第一运动矢量是单预测运动矢量,并且所述第二运动矢量是单预测运动矢量。
30.根据权利要求29所述的图像编码方法,包括:
基于与所述第一运动矢量和所述第二运动矢量相关联的参考图片列表,生成所存储的运动矢量。
31.根据权利要求30所述的图像编码方法,包括:
确定与所述第一运动矢量相关联的参考图片列表是否与所述第二运动矢量相关联;
响应于确定与所述第一运动矢量相关联的所述参考图片列表与所述第二运动矢量相关联,将所述第一运动矢量和所述第二运动矢量中的一个存储为用于所述第一分区的第一部分的单预测运动矢量;并且
响应于确定与所述第一运动矢量相关联的所述参考图片列表不与所述第二运动矢量相关联,存储用于所述第一分区的第一部分的包括所述第一运动矢量和所述第二运动矢量的双预测运动矢量。
32.根据权利要求30所述的图像编码方法,包括:
确定与所述第一运动矢量相关联的参考图片列表是否与所述第二运动矢量相关联;
响应于确定与所述第一运动矢量相关联的所述参考图片列表与所述第二运动矢量相关联,确定与所述第一运动矢量和所述第二运动矢量中的一个相关联的参考图片是否被包括在另一参考图片列表中;并且
响应于确定与所述第一运动矢量和所述第二运动矢量中的一个相关联的参考图片被包括在另一参考图片列表中而进行以下操作:
为所述第一运动矢量和所述第二运动矢量中的一个生成替换运动矢量,所述替换矢量指向所述另一参考图片列表中的所述参考图片;并且
将包括所述替换运动矢量以及所述第一运动矢量和所述第二运动矢量中的另一个的双预测运动矢量存储为用于所述第一分区的第一部分的所存储的运动矢量。
33.根据权利要求32所述的图像编码方法,包括:
响应于确定与所述第一运动矢量相关联的参考图片以及与所述第二运动矢量相关联的参考图片没有被包括在另一参考图片列表中,将所述第一运动矢量和所述第二运动矢量中的一个存储为用于所述第一分区的第一部分的所存储的运动矢量。
34.一种图像解码器,包括:
电路;以及
耦合到所述电路的存储器;
其中,所述电路在操作中进行以下操作:
利用包括第一运动矢量的一个或多个运动矢量,预测当前图片的第一分区的第一组样本;
利用来自不同于所述第一分区的第二分区的一个或多个运动矢量,预测所述第一分区的第一部分的第二组样本;
对所述第一分区的第一部分的所述第一组样本中的样本和所述第一分区的第一部分的所述第二组样本中的样本进行加权;
基于所述第一运动矢量和所述第二运动矢量中的一个或两个,存储用于所述第一分区的第一部分的运动矢量;以及
至少使用所述第一分区的第一部分的经加权的样本,对所述第一分区进行解码。
35.根据权利要求34所述的解码器,其中,所述第一运动矢量是单预测运动矢量。
36.根据权利要求35所述的解码器,其中,所述第二运动矢量是单预测运动矢量。
37.根据权利要求36所述的解码器,其中,所存储的运动矢量是包括所述第一运动矢量和所述第二运动矢量的双预测运动矢量。
38.根据权利要求36所述的解码器,其中,所存储的运动矢量是包括以下各项的双预测运动矢量:所述第一运动矢量和所述第二运动矢量中的一个,以及所述第一运动矢量和所述第二运动矢量中的另一个的替换矢量。
39.根据权利要求36所述的解码器,其中,所存储的运动矢量是包括以下各项的双预测运动矢量:所述第一运动矢量和所述第二运动矢量中的一个,以及所述第一运动矢量和所述第二运动矢量中的另一个的翻转。
40.根据权利要求36所述的解码器,其中,所存储的运动矢量是所述第一运动矢量和所述第二运动矢量中的一个。
41.根据权利要求36所述的解码器,其中,所存储的运动矢量是通过对所述第一运动矢量和所述第二运动矢量求平均而生成的单预测运动矢量。
42.根据权利要求34所述的解码器,其中,所述第一分区是三角形形状的分区。
43.根据权利要求34所述的解码器,其中,所述第二分区是三角形形状的分区。
44.根据权利要求43所述的解码器,其中,所述第二分区是三角形形状的分区。
45.根据权利要求36所述的解码器,其中,所述电路在操作中进行以下操作:
基于与所述第一运动矢量和所述第二运动矢量相关联的参考图片列表,生成所存储的运动矢量。
46.根据权利要求45所述的解码器,其中,所述电路在操作中进行以下操作:
确定与所述第一运动矢量相关联的参考图片列表是否与所述第二运动矢量相关联;
响应于确定与所述第一运动矢量相关联的所述参考图片列表与所述第二运动矢量相关联,将所述第一运动矢量和所述第二运动矢量中的一个存储为用于所述第一分区的第一部分的单预测运动矢量;并且
响应于确定与所述第一运动矢量相关联的所述参考图片列表不与所述第二运动矢量相关联,存储用于所述第一分区的第一部分的包括所述第一运动矢量和所述第二运动矢量的双预测运动矢量。
47.根据权利要求45所述的解码器,其中,所述电路在操作中进行以下操作:
确定与所述第一运动矢量相关联的参考图片列表是否与所述第二运动矢量相关联;
响应于确定与所述第一运动矢量相关联的所述参考图片列表与所述第二运动矢量相关联,确定与所述第一运动矢量和所述第二运动矢量中的一个相关联的参考图片是否被包括在另一参考图片列表中;并且
响应于确定与所述第一运动矢量和所述第二运动矢量中的一个相关联的参考图片被包括在另一参考图片列表中而进行以下操作:
为所述第一运动矢量和所述第二运动矢量中的一个生成替换运动矢量,所述替换矢量指向所述另一参考图片列表中的所述参考图片;并且
将包括所述替换运动矢量以及所述第一运动矢量和所述第二运动矢量中的另一个的双预测运动矢量存储为用于所述第一分区的第一部分的所存储的运动矢量。
48.根据权利要求47所述的解码器,其中,所述电路在操作中进行以下操作:
响应于确定与所述第一运动矢量相关联的参考图片以及与所述第二运动矢量相关联的参考图片没有被包括在另一参考图片列表中,将所述第一运动矢量和所述第二运动矢量中的一个存储为用于所述第一分区的第一部分的所存储的运动矢量。
49.一种图像解码器,包括:
熵解码器,其在操作中接收经编码的比特流并且对所述经编码的比特流进行解码,以获得经量化的变换系数,
逆量化器和逆变换器,其在操作中对所述经量化的变换系数进行逆量化以获得变换系数,并且对所述变换系数进行逆变换以获得残差,
加法器,其在操作中将从所述逆量化器和逆变换器输出的所述残差与从预测控制器输出的预测相加以重构块,以及
预测控制器,其耦合到帧间预测器、帧内预测器和存储器,其中,所述帧间预测器在操作中基于经解码的参考图片中的参考块来生成对当前块的预测,并且所述帧内预测器在操作中基于当前图片中的经编码的参考块来生成对当前块的预测,其中,所述帧间预测器在操作中进行以下操作:
利用包括第一运动矢量的一个或多个运动矢量,预测当前图片的第一分区的第一组样本;
利用来自不同于所述第一分区的第二分区的一个或多个运动矢量,预测所述第一分区的第一部分的第二组样本;
对所述第一分区的第一部分的所述第一组样本中的样本和所述第一分区的第一部分的所述第二组样本中的样本进行加权;
基于所述第一运动矢量和所述第二运动矢量中的一个或两个,存储用于所述第一分区的第一部分的运动矢量;以及
至少使用所述第一分区的第一部分的经加权的样本,对所述第一分区进行解码。
50.根据权利要求49所述的图像解码器,其中,所述第一运动矢量是单预测运动矢量,并且所述第二运动矢量是单预测运动矢量。
51.根据权利要求50所述的图像解码器,其中,所存储的运动矢量是包括所述第一运动矢量和所述第二运动矢量的双预测运动矢量。
52.根据权利要求50所述的图像解码器,其中,所存储的运动矢量是包括以下各项的双预测运动矢量:所述第一运动矢量和所述第二运动矢量中的一个,以及所述第一运动矢量和所述第二运动矢量中的另一个的替换矢量。
53.根据权利要求50所述的图像解码器,其中,所存储的运动矢量是所述第一运动矢量和所述第二运动矢量中的一个。
54.根据权利要求50所述的图像解码器,其中,所述第一分区是三角形形状的分区。
55.根据权利要求50所述的图像解码器,其中,所述帧间预测器在操作中进行以下操作:
基于与所述第一运动矢量和所述第二运动矢量相关联的参考图片列表,生成所存储的运动矢量。
56.根据权利要求55所述的图像解码器,其中,所述帧间预测器在操作中进行以下操作:
确定与所述第一运动矢量相关联的参考图片列表是否与所述第二运动矢量相关联;
响应于确定与所述第一运动矢量相关联的所述参考图片列表与所述第二运动矢量相关联,将所述第一运动矢量和所述第二运动矢量中的一个存储为用于所述第一分区的第一部分的单预测运动矢量;并且
响应于确定与所述第一运动矢量相关联的所述参考图片列表不与所述第二运动矢量相关联,存储用于所述第一分区的第一部分的包括所述第一运动矢量和所述第二运动矢量的双预测运动矢量。
57.根据权利要求55所述的图像解码器,其中,所述帧间预测器在操作中进行以下操作:
确定与所述第一运动矢量相关联的参考图片列表是否与所述第二运动矢量相关联;
响应于确定与所述第一运动矢量相关联的所述参考图片列表与所述第二运动矢量相关联,确定与所述第一运动矢量和所述第二运动矢量中的一个相关联的参考图片是否被包括在另一参考图片列表中;并且
响应于确定与所述第一运动矢量和所述第二运动矢量中的一个相关联的参考图片被包括在另一参考图片列表中而进行以下操作:
为所述第一运动矢量和所述第二运动矢量中的一个生成替换运动矢量,所述替换矢量指向所述另一参考图片列表中的所述参考图片;并且
将包括所述替换运动矢量以及所述第一运动矢量和所述第二运动矢量中的另一个的双预测运动矢量存储为用于所述第一分区的第一部分的所存储的运动矢量。
58.根据权利要求57所述的图像解码器,其中,所述帧间预测器在操作中进行以下操作:
响应于确定与所述第一运动矢量相关联的参考图片以及与所述第二运动矢量相关联的参考图片没有被包括在另一参考图片列表中,将所述第一运动矢量和所述第二运动矢量中的一个存储为用于所述第一分区的第一部分的所存储的运动矢量。
59.一种图像解码方法,包括:
利用包括第一运动矢量的一个或多个运动矢量,预测当前图片的第一分区的第一组样本;
利用来自不同于所述第一分区的第二分区的一个或多个运动矢量,预测所述第一分区的第一部分的第二组样本;
对所述第一分区的第一部分的所述第一组样本中的样本和所述第一分区的第一部分的所述第二组样本中的样本进行加权;
基于所述第一运动矢量和所述第二运动矢量中的一个或两个,存储用于所述第一分区的第一部分的运动矢量;并且
至少使用所述第一分区的第一部分的经加权的样本,对所述第一分区进行解码。
60.根据权利要求59所述的图像解码方法,其中,所述第一运动矢量是单预测运动矢量,并且所述第二运动矢量是单预测运动矢量。
61.根据权利要求60所述的图像解码方法,包括:
基于与所述第一运动矢量和所述第二运动矢量相关联的参考图片列表,生成所存储的运动矢量。
62.根据权利要求61所述的图像解码方法,包括:
确定与所述第一运动矢量相关联的参考图片列表是否与所述第二运动矢量相关联;
响应于确定与所述第一运动矢量相关联的所述参考图片列表与所述第二运动矢量相关联,将所述第一运动矢量和所述第二运动矢量中的一个存储为用于所述第一分区的第一部分的单预测运动矢量;并且
响应于确定与所述第一运动矢量相关联的所述参考图片列表不与所述第二运动矢量相关联,存储用于所述第一分区的第一部分的包括所述第一运动矢量和所述第二运动矢量的双预测运动矢量。
63.根据权利要求61所述的图像解码方法,包括:
确定与所述第一运动矢量相关联的参考图片列表是否与所述第二运动矢量相关联;
响应于确定与所述第一运动矢量相关联的所述参考图片列表与所述第二运动矢量相关联,确定与所述第一运动矢量和所述第二运动矢量中的一个相关联的参考图片是否被包括在另一参考图片列表中;并且
响应于确定与所述第一运动矢量和所述第二运动矢量中的一个相关联的参考图片被包括在另一参考图片列表中而进行以下操作:
为所述第一运动矢量和所述第二运动矢量中的一个生成替换运动矢量,所述替换矢量指向所述另一参考图片列表中的所述参考图片;并且
将包括所述替换运动矢量以及所述第一运动矢量和所述第二运动矢量中的另一个的双预测运动矢量存储为用于所述第一分区的第一部分的所存储的运动矢量。
64.根据权利要求63所述的图像解码方法,包括:
响应于确定与所述第一运动矢量相关联的参考图片以及与所述第二运动矢量相关联的参考图片没有被包括在另一参考图片列表中,将所述第一运动矢量和所述第二运动矢量中的一个存储为用于所述第一分区的第一部分的所存储的运动矢量。
CN201980056038.1A 2018-09-07 2019-09-03 用于视频编码的系统和方法 Pending CN112640466A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862728364P 2018-09-07 2018-09-07
US62/728,364 2018-09-07
PCT/JP2019/034657 WO2020050283A1 (en) 2018-09-07 2019-09-03 System and method for video coding

Publications (1)

Publication Number Publication Date
CN112640466A true CN112640466A (zh) 2021-04-09

Family

ID=68051879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980056038.1A Pending CN112640466A (zh) 2018-09-07 2019-09-03 用于视频编码的系统和方法

Country Status (7)

Country Link
US (3) US11153569B2 (zh)
JP (2) JP2021536191A (zh)
KR (1) KR20210049822A (zh)
CN (1) CN112640466A (zh)
BR (1) BR112021001156A2 (zh)
MX (1) MX2021002557A (zh)
WO (1) WO2020050283A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114339249A (zh) * 2021-12-27 2022-04-12 安谋科技(中国)有限公司 视频解码方法、可读介质及其电子设备

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018012366A1 (ja) * 2016-07-13 2018-01-18 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号装置、符号化装置、復号方法及び符号化方法
MX2021002557A (es) * 2018-09-07 2021-04-29 Panasonic Ip Corp America Sistema y metodo para codificacion de video.
US11677976B2 (en) * 2018-09-21 2023-06-13 Interdigital Vc Holdings, Inc. Method and apparatus for video encoding and decoding using bi-prediction
MX2021004020A (es) * 2018-10-08 2021-06-30 Huawei Tech Co Ltd Aparatos y metodos para interprediccion de una particion geometrica de un bloque de codificacion.
WO2020139903A1 (en) * 2018-12-25 2020-07-02 Beijing Dajia Internet Information Technology Co., Ltd. Video coding with triangular shape prediction units
US11102476B2 (en) * 2018-12-28 2021-08-24 Qualcomm Incorporated Subblock based affine motion model
US11523112B2 (en) * 2020-04-09 2022-12-06 Tencent America LLC Intra coding with L-type partitioning tree
WO2023059100A1 (ko) * 2021-10-06 2023-04-13 현대자동차주식회사 기하학적 분할 모드를 이용한 비디오 부호화/복호화 방법 및 장치

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080095238A1 (en) * 2006-10-18 2008-04-24 Apple Inc. Scalable video coding with filtering of lower layers
CN101502120A (zh) * 2006-08-02 2009-08-05 汤姆逊许可公司 用于视频解码的自适应几何分割方法和设备
CN103999465A (zh) * 2011-11-18 2014-08-20 高通股份有限公司 自适应性重叠块运动补偿
CN105308972A (zh) * 2014-05-23 2016-02-03 松下电器(美国)知识产权公司 图像编码方法以及图像编码装置
CN105850133A (zh) * 2013-12-27 2016-08-10 英特尔公司 用于下一代视频译码的内容自适应主运动补偿预测
US20170150183A1 (en) * 2015-11-25 2017-05-25 Qualcomm Incorporated Modification of transform coefficients for non-square transform units in video coding
WO2018092870A1 (ja) * 2016-11-21 2018-05-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US9986236B1 (en) * 2013-11-19 2018-05-29 Google Llc Method and apparatus for encoding a block using a partitioned block and weighted prediction values
CN108184124A (zh) * 2011-06-28 2018-06-19 Lg电子株式会社 设置运动矢量列表的方法及使用其的装置
CN108293131A (zh) * 2015-11-20 2018-07-17 联发科技股份有限公司 用于视频编解码的运动矢量预测或者运动补偿的方法和装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7894530B2 (en) 2004-05-07 2011-02-22 Broadcom Corporation Method and system for dynamic selection of transform size in a video decoder based on signal content
JP2011501508A (ja) * 2007-10-12 2011-01-06 トムソン ライセンシング 幾何学分割された双方向予測モードパーティションのビデオエンコーディング及びデコーディングのための方法及び装置
EP2449783B1 (fr) * 2009-07-03 2021-03-10 Orange Prédiction d'un vecteur mouvement d'une partition d'image courante pointant sur une zone de référence qui recouvre plusieurs partitions d'image de référence, codage et décodage utilisant une telle prédiction
US20120207221A1 (en) * 2009-10-16 2012-08-16 Tomoko Aono Video coding device and video decoding device
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
US9398308B2 (en) * 2010-07-28 2016-07-19 Qualcomm Incorporated Coding motion prediction direction in video coding
US9380314B2 (en) * 2010-12-20 2016-06-28 Texas Instruments Incorporated Pixel retrieval for frame reconstruction
KR102066543B1 (ko) * 2011-01-07 2020-01-15 가부시키가이샤 엔.티.티.도코모 움직임 벡터의 예측 부호화 방법, 예측 부호화 장치, 및 예측 부호화 프로그램, 그리고 움직임 벡터의 예측 복호 방법, 예측 복호 장치, 및 예측 복호 프로그램
JP5298140B2 (ja) * 2011-01-12 2013-09-25 株式会社エヌ・ティ・ティ・ドコモ 画像予測符号化装置、画像予測符号化方法、画像予測符号化プログラム、画像予測復号装置、画像予測復号方法、及び画像予測復号プログラム
JP5485969B2 (ja) * 2011-11-07 2014-05-07 株式会社Nttドコモ 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法及び動画像予測復号プログラム
WO2016137149A1 (ko) * 2015-02-24 2016-09-01 엘지전자(주) 폴리곤 유닛 기반 영상 처리 방법 및 이를 위한 장치
US10368083B2 (en) * 2016-02-15 2019-07-30 Qualcomm Incorporated Picture order count based motion vector pruning
US10863189B2 (en) * 2016-03-18 2020-12-08 Telefonaktiebolaget Lm Ericsson (Publ) Motion vector reconstruction order swap
CN109328461B (zh) * 2016-04-29 2023-09-05 世宗大学校产学协力团 视频信号编码/解码方法和设备
WO2019124191A1 (ja) * 2017-12-18 2019-06-27 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
MX2021002557A (es) * 2018-09-07 2021-04-29 Panasonic Ip Corp America Sistema y metodo para codificacion de video.
EP3847814A1 (en) * 2018-11-06 2021-07-14 Beijing Bytedance Network Technology Co. Ltd. Position dependent storage of motion information
CN113170173B (zh) * 2018-11-28 2024-04-12 北京字节跳动网络技术有限公司 变换量化或量化旁路模式的改进方法
US11122272B2 (en) * 2018-12-26 2021-09-14 Mediatek Inc. Triangle prediction with applied-block settings and motion storage settings
US11570442B2 (en) * 2019-06-05 2023-01-31 Qualcomm Incorporated Reducing motion field storage for prediction of video data using non-rectangular prediction modes

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101502120A (zh) * 2006-08-02 2009-08-05 汤姆逊许可公司 用于视频解码的自适应几何分割方法和设备
US20080095238A1 (en) * 2006-10-18 2008-04-24 Apple Inc. Scalable video coding with filtering of lower layers
CN108184124A (zh) * 2011-06-28 2018-06-19 Lg电子株式会社 设置运动矢量列表的方法及使用其的装置
CN103999465A (zh) * 2011-11-18 2014-08-20 高通股份有限公司 自适应性重叠块运动补偿
US9986236B1 (en) * 2013-11-19 2018-05-29 Google Llc Method and apparatus for encoding a block using a partitioned block and weighted prediction values
CN105850133A (zh) * 2013-12-27 2016-08-10 英特尔公司 用于下一代视频译码的内容自适应主运动补偿预测
CN105308972A (zh) * 2014-05-23 2016-02-03 松下电器(美国)知识产权公司 图像编码方法以及图像编码装置
CN108293131A (zh) * 2015-11-20 2018-07-17 联发科技股份有限公司 用于视频编解码的运动矢量预测或者运动补偿的方法和装置
US20170150183A1 (en) * 2015-11-25 2017-05-25 Qualcomm Incorporated Modification of transform coefficients for non-square transform units in video coding
WO2018092870A1 (ja) * 2016-11-21 2018-05-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄碧波 等: "多视角分布式视频编码中基于置信度的时空边信息融合", 计算机应用与软件, no. 09 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114339249A (zh) * 2021-12-27 2022-04-12 安谋科技(中国)有限公司 视频解码方法、可读介质及其电子设备
CN114339249B (zh) * 2021-12-27 2023-12-05 安谋科技(中国)有限公司 视频解码方法、可读介质及其电子设备

Also Published As

Publication number Publication date
JP2021536191A (ja) 2021-12-23
US20210409721A1 (en) 2021-12-30
US20200084452A1 (en) 2020-03-12
JP2023164617A (ja) 2023-11-10
WO2020050283A1 (en) 2020-03-12
US11153569B2 (en) 2021-10-19
BR112021001156A2 (pt) 2021-04-27
KR20210049822A (ko) 2021-05-06
MX2021002557A (es) 2021-04-29
US11812027B2 (en) 2023-11-07
TW202037168A (zh) 2020-10-01
US20240007644A1 (en) 2024-01-04

Similar Documents

Publication Publication Date Title
CN111034197B (zh) 图像编码器、图像解码器、图像编码方法和图像解码方法
CN110999303B (zh) 图像编码器、图像解码器、图像编码方法和图像解码方法
CN110999306B (zh) 图像编码器和图像解码器
TWI808218B (zh) 用於視訊寫碼之系統及方法
CN114450963A (zh) 用于视频编码的系统和方法
WO2020050283A1 (en) System and method for video coding
WO2020171046A1 (en) Image encoder and image decoder
WO2020085235A1 (ja) 符号化装置、復号装置、符号化方法及び復号方法
WO2020116630A1 (ja) 符号化装置、復号装置、符号化方法及び復号方法
WO2020116402A1 (ja) 符号化装置、復号装置、符号化方法、および復号方法
WO2020130020A1 (ja) 符号化装置、復号装置、符号化方法及び復号方法
CN114270850A (zh) 用于视频编码的系统和方法
WO2020162536A1 (ja) 符号化装置、復号装置、符号化方法及び復号方法
WO2020141591A1 (ja) 符号化装置、復号装置、符号化方法、及び復号方法
WO2020116242A1 (ja) 符号化装置、復号装置、符号化方法及び復号方法
WO2020116241A1 (ja) 符号化装置、復号装置、符号化方法及び復号方法
WO2020166480A1 (ja) 符号化装置、復号装置、符号化方法、および復号方法
WO2020196655A1 (ja) 符号化装置、復号装置、符号化方法、および復号方法
WO2020122232A1 (ja) 符号化装置、復号装置、符号化方法、および復号方法
TWI832891B (zh) 用於視訊寫碼之系統及方法
WO2020141609A1 (ja) 符号化装置、復号装置、符号化方法および復号方法
KR20220024007A (ko) 부호화 장치, 복호 장치, 부호화 방법, 및 복호 방법
CN114128284A (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