CN113225561A - 视频信号编码/解码方法以及用于所述方法的设备 - Google Patents

视频信号编码/解码方法以及用于所述方法的设备 Download PDF

Info

Publication number
CN113225561A
CN113225561A CN202110448321.8A CN202110448321A CN113225561A CN 113225561 A CN113225561 A CN 113225561A CN 202110448321 A CN202110448321 A CN 202110448321A CN 113225561 A CN113225561 A CN 113225561A
Authority
CN
China
Prior art keywords
value
residual coefficient
residual
block
coefficient
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110448321.8A
Other languages
English (en)
Other versions
CN113225561B (zh
Inventor
李培根
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202110448321.8A priority Critical patent/CN113225561B/zh
Publication of CN113225561A publication Critical patent/CN113225561A/zh
Application granted granted Critical
Publication of CN113225561B publication Critical patent/CN113225561B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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
    • 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
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/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
    • 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/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

本发明的视频解码方法包括以下步骤:在当前块中生成合并候选列表;指定所述合并候选列表中所包含的多个合并候选中的任一个;基于所述指定的合并候选的第一仿射种子矢量和第二仿射种子矢量导出所述当前块的第一仿射种子矢量和第二仿射种子矢量;利用所述当前块的所述第一仿射种子矢量和所述第二仿射种子矢量导出所述当前块的子块的仿射矢量;以及基于所述仿射矢量对所述子块执行运动补偿预测。

Description

视频信号编码/解码方法以及用于所述方法的设备
本申请是申请日为2019年09月20日的PCT国际专利申请PCT/KR2019/012291进入中国国家阶段的中国专利申请号201980058803.3、发明名称为“视频信号编码/解码方法以及用于所述方法的设备”的分案申请。
技术领域
本发明涉及视频信号编码/解码方法及用于所述方法的设备。
背景技术
随着显示面板越来越大的趋势,逐渐需要画质更高的视频服务。高清视频服务的最大问题在于数据量大幅增加,为了解决这种问题,正在积极进行用于提高视频压缩率的研究。作为代表性示例,在2009年,运动图像专家组(Motion Picture Experts Group,MPEG)和国际电信联盟-电信(International Telecommunication Union-Telecommunication,ITU-T)旗下的视频编码专家组(Video Coding Experts Group,VCEG)建立了视频编码联合协作团队JCT-VC(Joint Collaborative Team on Video Coding)。JCT-VC提出了视频压缩标准HEVC(高效视频编码,High Efficiency Video Coding)并于2013年1月25日获得批准,其压缩性能约是H.264/AVC的2倍。随着高清视频服务的急剧发展,HEVC的性能也逐渐暴露出其局限性。
发明内容
要解决的技术问题
本发明的目的在于提供一种在对视频信号进行编码/解码时对残差系数进行编码/解码的方法及用于该方法的设备。
本发明的目的在于提供一种在对视频信号进行编码/解码时利用将残差系数的大小与阈值进行比较的标志来对残差系数进行编码/解码的方法及用于该方法的设备。
本发明的目的在于提供一种在对视频信号进行编码/解码时利用指示残差系数是偶数还是奇数的标志来对残差系数进行编码/解码的方法及用于该方法的设备。
本发明要实现的技术问题不限于以上提及的技术问题,并且本发明所属技术领域的普通技术人员将通过以下描述清楚理解未提到的其他技术问题。
技术方案
本发明的视频信号解码方法包括以下步骤:从码流中解析指示残差系数是否为非零的非零标志;当所述非零标志指示所述残差系数不是非零时,从所述码流中解析绝对值信息,所述绝对值信息用于确定所述残差系数的绝对值;以及基于所述绝对值信息,确定所述残差系数的绝对值。其中,所述绝对值信息可以包括指示所述残差系数是否大于第一值的残差系数比较标志,仅在所述残差系数大于第一值时,才进一步从所述码流中解析奇偶标志。
本发明的视频信号编码方法可以包括以下步骤:对指示残差系数是否为非零的非零标志进行编码;以及当所述残差系数不是非零时,对绝对值信息进行编码,所述绝对值信息用于确定所述残差系数的绝对值。所述绝对值信息可以包括指示所述残差系数是否大于第一值的残差系数比较标志,仅在所述残差系数大于第一值时,才进一步对所述残差系数的奇偶标志进行编码。
本发明的视频信号解码/编码方法中,所述奇偶标志可以指示所述残差系数的值是偶数还是奇数。
本发明的视频信号解码/编码方法中,当所述残差系数大于所述第一值时,可以进一步解析第一调整残差系数比较标志,所述第一调整残差系数比较标志指示将所述残差系数向右移位1而导出的调整残差系数是否大于第二值。
本发明的视频信号解码/编码方法中,当所述调整残差系数为第二值以下时,可以根据所述奇偶标志的值,将所述残差系数确定为2N或2N+1。
本发明的视频信号解码/编码方法中,当所述调整残差系数大于所述第二值时,可以进一步解析第二调整残差系数比较标志,所述第二调整残差系数比较标志指示所述调整残差系数是否大于第三值。
本发明的视频信号解码/编码方法中,当所述调整残差系数大于所述第二值时,可以进一步解析残差值信息,所述残差值信息是通过将所述调整残差系数减去所述第二值而获得的值。
以上对本发明简要概述的特征仅是稍后将描述的本发明的详细说明的示例性实施方式,并不限定本发明的范围。
发明效果
根据本发明,可以高效地对残差系数进行编码/解码。
根据本发明,利用将残差系数的大小与阈值进行比较的标志,可以高效地对残差系数进行编码/解码。
根据本发明,利用指示残差系数是偶数还是奇数的标志,可以高效地对残差系数进行编码/解码。
在本发明中可获得的效果不限于上述效果,并且本发明所属技术领域的普通技术人员将通过以下描述清楚理解未提到的其他效果。
附图说明
图1是本发明实施例的视频编码器(encoder)的框图。
图2是本发明实施例的视频解码器(decoder)的框图。
图3是示出本发明实施例的基本编码树单元的图。
图4是示出编码块的多种划分类型的图。
图5是示出编码树单元的划分的示例的图。
图6是示出大小小于具有预设大小的编码树单元的块出现在图像边界处的示例的图。
图7是示出对非典型边界的边界块执行四叉树划分的示例的图。
图8是示出对与图像边界相邻的块执行四叉树划分的示例的图。
图9是示出与图像边界相邻的块的划分模式的图。
图10是示出与图像边界相邻的块的编码模式的图。
图11是本发明实施例的帧间预测方法的流程图。
图12是在合并模式下导出当前块的运动信息的过程的流程图。
图13是示出用于导出合并候选的候选块的图。
图14是示出参考样本的位置的图。
图15是示出用于导出合并候选的候选块的图。
图16是示出改变参考样本的位置的示例的图。
图17是示出改变参考样本的位置的示例的图。
图18是用于说明帧间运动信息列表的更新的示例的图。
图19是示出帧间合并候选列表的更新的示例的图。
图20是示出已存储的帧间合并候选的索引被更新的示例的图。
图21是示出代表性子块的位置的图。
图22示出了针对不同帧间预测模式生成帧间运动信息列表的示例。
图23是示出将长期运动信息列表中包括的帧间合并候选添加到合并候选列表的示例的图。
图24是示出仅对合并候选中的一些进行冗余检查的示例的图。
图25是示出对特定合并候选省略冗余检查的示例的图。
图26是示出与当前块相同的并列合并区域中包括的候选块被设置为不可用作合并候选的示例的图。
图27是示出时域运动信息列表的图。
图28是示出将帧间运动信息列表和时域运动信息列表进行合并的示例的图。
图29是本发明实施例的帧内预测方法的流程图。
图30是示出各参考样本线包括的参考样本的图。
图31是示出帧内预测模式的图。
图32和图33是示出将参考样本排成一行的一维排列的示例的图。
图34是示出在角度帧内预测模式与平行于x轴的直线之间形成的角度的图。
图35是示出当当前块为非正方形状时获得预测样本的示例的图。
图36是示出广角帧内预测模式的图。
图37是示出应用PDPC的图。
图38和图39是示出要执行二次变换的子块的图。
图40是用于说明确定当前块的变换类型的示例的图。
图41是示出对残差系数进行编码的方法的流程图。
图42和图43是按不同扫描顺序表示残差系数的排列顺序的图。
图44示出了对最后非零系数的位置进行编码的示例。
图45是对残差系数的绝对值进行编码的过程的流程图。
图46是对残差系数的绝对值进行编码的过程的流程图。
图47是对残差系数的绝对值进行编码的过程的流程图。
图48是示出确定块强度的过程的流程图。
图49示出了预定义的滤波器候选。
具体实施方式
以下,参照附图详细说明本发明的实施例。
视频的编码及解码以块为单位来执行。例如,可以对编码块、变换块或预测块执行变换、量化、预测、环内滤波或重建等编码/解码处理。
以下,将要编码/解码的块称为“当前块”。例如,根据当前编码/解码处理步骤,当前块可以表示编码块、变换块或预测块。
另外,本说明书中使用的术语“单元”表示用于执行特定编码/解码过程的基本单元,并且“块”可以被理解为表示预定大小的样本阵列。除非另有说明,“块”和“单元”可互换使用。例如,在稍后描述的实施例中,编码块和编码单元可被理解为具有相同的含义。
图1是本发明实施例的视频编码器(encoder)的框图。
参照图1,视频编码设备100可以包括图像划分部110、预测部120、125、变换部130、量化部135、重排部160、熵编码部165、逆量化部140、逆变换部145、滤波器部150及存储器155。
图1所示的各部件单独示出以便表示视频编码设备中相互不同的特征性功能,并不表示各部件由分离的硬件或单一软件组件构成。即,对于各部件而言,为了便于说明,以排列各个部件的方式使得各部件中的至少两个部件合并成一个部件或者使得一个部件划分成多个部件,并由此执行功能,只要不脱离本发明的本质,这种整合各部件的实施例及使得各部件分离的实施例也属于本发明的权利范围。
而且,部分结构要素并不是在本发明中执行本质功能的必要结构要素,而是仅用于提高性能的可选结构要素。本发明可以通过仅包括除了仅用于提高性能的结构要素之外的实现本发明的本质所需的部件来实施,并且仅包括除了仅用于提高性能的选择性结构要素之外的必要结构要素的结构也属于本发明的权利范围。
图像划分部110可以将输入的图像划分为至少一个处理单元。在这种情况下,处理单元可以是预测单元(Prediction Unit:PU),也可以是变换单元(Transform Unit:TU),还可以是编码单元(Coding Unit:CU)。图像划分部110将一个图像划分为多个编码单元、预测单元及变换单元的组合,可以基于预定标准(例如,代价函数)选择一个编码单元、预测单元及变换单元组合来对图像进行编码。
例如,可以将一个图像划分为多个编码单元。为了将图像分割为编码单元,可以使用如四叉树结构(Quad Tree Structure)的递归树状结构,可以将一个视频或最大编码单元(largest coding unit)作为根(root)而将编码单元划分为可具有相当于划分的编码单元数量的子节点的另外编码单元。根据某些限制不再被划分的编码单元将成为叶节点。即,当假设一个编码单元只能实现正方形划分时,一个编码单元可最多被划分为4个其他编码单元。
以下,在本发明的实施例中,编码单元可意味着执行编码的单元,还可意味着执行解码的单元。
可以将一个编码单元内的预测单元分割为相同大小的正方形或矩形中的至少一个等形状,也可以将一个编码单元内的一个预测单元中分割为具有与另一个预测单元不同的形状和/或大小。
当基于编码单元执行帧内预测的预测单元并非是最小编码单元的情况下,可以执行帧内预测,而无需分割为多个预测单元N×N。
预测部120、125可以包括执行帧间预测的帧间预测部120和执行帧内预测的帧内预测部125。可以确定对于预测单元使用帧间预测还是执行帧内预测,并基于各预测方法确定具体信息(例如,帧内预测模式、运动矢量、参考图像等)。在这种情况下,执行预测的处理单元有可能与确定预测方法及具体内容的处理单元不同。例如,可以由预测单元确定预测方法和预测模式等,并且可以由变换单元执行预测。所生成的预测块与原始块之间的残差值(残差块)可以输入到变换部130。并且,可以将用于预测的预测模式信息、运动矢量信息等与残差值一同在熵编码部165中进行编码并传送至解码器。当使用特定的编码模式时,也可以通过直接对原始块进行编码并传送至解码器,而不通过预测部120、125生成预测块。
帧间预测部120可以基于当前图像的之前的图像或之后的图像中的至少一个图像的信息来预测出预测单元,在一些情况下,还可以基于当前图像内已编码的一部分区域的信息来预测出预测单元。帧间预测部120可以包括参考图像插值部、运动预测部、运动补偿部。
参考图像插值部从存储器155接收参考图像信息,并且可以从参考图像生成整数像素或分数像素的像素信息。对于亮度像素而言,为了以1/4像素单元生成分数像素的像素信息,可以使用滤波器系数不同的基于DCT的8阶插值滤波器(DCT-based InterpolationFilter)。对于色度信号而言,为了以1/8像素单元生成分数像素的像素信息,可以使用滤波器系数不同的基于DCT的4阶插值滤波器(DCT-based Interpolation Filter)。
运动预测部可以基于通过参考图像插值部进行插值的参考图像来执行运动预测。用于计算运动矢量的方法可以使用全搜索块匹配算法(FBMA,Full search-based BlockMatching Algorithm)、三步搜索法(TSS,Three Step Search)、新三步搜索算法(NTS,NewThree-Step Search Algorithm)等多种方法。运动矢量可以基于插值的像素来具有以1/2像素或1/4像素为单位的运动矢量值。可以在运动预测部中通过采取不同的运动预测方法来预测当前预测单元。运动预测方法可以使用跳过(Skip)方法、合并(Merge)方法、高级运动矢量预测(AMVP,Advanced Motion Vector Prediction)方法、帧内块复制(Intra BlockCopy)方法等多种方法。
帧内预测部125可以基于作为当前图像内的像素信息的当前块周边的参考像素信息来生成预测单元。在当前预测单元的相邻块是已执行帧间预测的块并且在参考像素是已执行帧间预测的像素的情况下,可以将已执行帧间预测的块中所包括的参考像素用作周边的已执行帧内预测的块的参考像素信息。即,在参考像素不可用的情况下,可以使用可用的参考像素中的至少一个参考像素来代替不可用的参考像素信息。
在帧内预测中,预测模式可以具有按预测方向使用参考像素信息的角度预测模式和在执行预测时不使用方向信息的非角度模式。用于预测亮度信息的模式和用于预测色度信息的模式可以不同,为了预测色度信息,可以应用用于预测亮度信息而使用的帧内预测模式信息或所预测到的亮度信号信息。
当执行帧内预测时,若预测单元的大小与变换单元的大小相同,则可以基于存在于预测单元的左侧的像素、存在于左上方的像素、存在于上方的像素来对预测单元执行帧内预测。但是,当执行帧内预测时,若预测单元的大小与变换单元的大小不同,则可以使用基于变换单元的参考像素来执行帧内预测。并且,可以应用仅对最小编码单元使用N×N划分的帧内预测。
帧内预测方法可以在根据预测模式来对参考像素应用自适应帧内平滑(AIS,Adaptive Intra Smoothing)滤波器之后生成预测块。用于参考像素的自适应帧内平滑滤波器的类型可能不同。为了执行帧内预测方法,可以从存在于当前预测单元周边的预测单元的帧内预测模式预测出当前预测单元的帧内预测模式。在使用从周边预测单元预测到的模式信息来预测当前预测单元的预测模式的情况下,若当前预测单元与周边预测单元的帧内预测模式相同,则可以使用预定的标志信息来传送表示当前预测单元与周边预测单元的预测模式相同的信息,若当前预测单元与周边预测单元的预测模式不同,则可以通过执行熵编码来对当前块的预测模式信息进行编码。
并且,可以生成将包括作为基于在预测部120、125中所生成的预测单元来执行预测的预测单元与预测单元的原始块之间的差值的残差值信息的残差块。可以向变换部130输入所生成的残差块。
变换部130可以使用诸如离散余弦变换(DCT)、离散正弦变换(DST)或K-L变换(KLT)等变换方法对原始块和包括通过预测部120和125生成的预测单元的残差系数信息的残差块进行变换。对于要应用DCT还是应用DST又或者应用KLT来对残差块进行变换,可以基于用于生成残差块的预测单元的帧内预测模式信息来确定。
量化部135可以对在变换部130中变换为频域的值进行量化。量化系数可以根据块或视频的重要性而改变。可以向逆量化部140和重排部160提供在量化部135中计算的值。
重排部160可以对量化的残差值执行系数值的重排。
重排部160可以通过系数扫描(Coefficient Scanning)方法来将2维的块形状系数变更为1维的矢量形式。例如,重排部160可以使用Z字形扫描(Zig-Zag Scan)方法扫描DC系数乃至高频域的系数,并将其改变为1维矢量形式。根据变换单元的大小及帧内预测模式,代替Z字形扫描,还可以使用沿着列方向扫描2维块形状系数的垂直扫描和沿着行方向扫描2维块形状系数的水平扫描。即,可以根据变换单元的大小及帧内预测模式来确定使用Z字形扫描、垂直方向扫描及水平方向扫描中的哪一种扫描方法。
熵编码部165可以基于通过重排部160计算出的值来执行熵编码。例如,熵编码可以使用指数哥伦布码(Exponential Golomb)、上下文自适应变长编码(CAVLC,Context-Adaptive Variable Length Coding)、上下文自适应二进制算术编码(CABAC,Context-Adaptive Binary Arithmetic Coding)等的多种编码方法。
熵编码部165可以对源自重排部160及预测部120、125的编码单元的残差值系数信息及块类型信息、预测模式信息、划分单元信息、预测单元信息及传送单元信息、运动矢量信息、参考帧信息、块的插值信息、滤波信息等多种信息进行编码。
可以在熵编码部165对从重排部160输入的编码单元的系数值进行熵编码。
逆量化部140及逆变换部145对在量化部135量化的多个值进行逆量化,并对在变换部130变换的值进行逆变换。在逆量化部140及逆变换部145中生成的残差值可以通过与由预测部120、125中包括的运动预测部、运动补偿部及帧内预测部所预测的预测单元合并来生成重建块(Reconstructed Block)。
滤波器部150可以包括去块滤波器、偏移校正部、自适应环路滤波器(ALF,Adaptive Loop Filter)中的至少一个。
去块滤波器可移除因块之间的边界而在重建的图像中生成的块失真。为了判断是否执行去块,能够基于块中所包括的几个列或行所包括的像素来判断是否对当前块应用去块滤波器。在对块应用去块滤波器的情况下,可以根据所需的去块滤波强度来应用强滤波(Strong Filter)或弱滤波(Weak Filter)。并且,在使用去块滤波器的过程中,当执行垂直滤波及水平滤波时,可以同步处理水平方向滤波及垂直方向滤波。
偏移校正部可以按像素单位来对执行去块的视频中的与原本视频之间的偏移进行校正。为了对指定图像进行偏移校正,可以使用如下方法,即,在将视频中所包括的像素划分为预定数量的区域之后,确定要执行偏移的区域,并对相应区域应用偏移,或者将各个像素的边缘信息考虑在内来应用偏移。
自适应环路滤波(ALF,Adaptive Loop Filtering)可以基于对经过滤波的重建图像和原来的视频进行比较的值来执行。将视频中包括的像素划分成预定的组之后,可以通过确定要用于相应组的一个滤波器来对每个组有区别地执行滤波。与是否应用自适应环路滤波相关的信息和亮度信号可按编码单元(Coding Unit,CU)进行传送,所要应用的自适应环路滤波器的形状及滤波器系数可以根据各个块而不同。并且,还能够应用相同类型(固定类型)的自适应环路滤波器,而不管被应用的块的特性如何。
存储器155可以存储通过滤波器部150计算的重建块或图像,可以在执行帧间预测时向预测部120、125提供所存储的重建块或图像。
图2是本发明实施例的视频解码器(decoder)的框图。
参照图2,视频解码器200可以包括熵解码部210、重排部215、逆量化部220、逆变换部225、预测部230、预测部235、滤波器部240、存储器245。
当在视频编码器输入视频码流时,所输入的码流可以按与视频编码器相反的步骤进行解码。
熵解码部210可按与视频编码器的熵编码部中执行熵编码的步骤相反的步骤进行熵解码。例如,与视频编码器中执行的方法相对应地,可以应用指数哥伦布码(ExponentialGolomb)、上下文自适应变长编码(CAVLC,Context-Adaptive Variable Length Coding)、上下文自适应二进制算术编码(CABAC,Context-Adaptive Binary Arithmetic Coding)等多种方法。
熵解码部210可以对与编码器执行的帧内预测及帧间预测相关的信息进行解码。
重排部215能够基于在编码部中对借助熵解码部210进行熵解码的码流进行重排的方法来执行重排。可以将由1维矢量形式表示的多个系数重建成2维的块形状的系数来进行重排。重排部215接收与在编码部执行的系数扫描相关的信息,可以通过基于在相应编码部执行的扫描顺序来进行逆向扫描的方法执行重排。
逆量化部220可以基于编码器所提供的量化参数和重排的块的系数值来执行逆量化。
针对由视频编码器执行的量化结果,逆变换部225可以针对变换部执行的变换即DCT、DST以及KLT来执行逆变换,即逆DCT、逆DST及逆KLT。逆变换可以基于在视频编码器中确定的传送单元来执行。在视频解码器的逆变换部225中,可以根据预测方法、当前块的大小及预测方向等多项信息来选择性地执行变换方法(例如,DCT、DST、KLT)。
预测部230、235能够基于由熵解码部210提供的与预测块生成相关的信息和由存储器245提供的之前解码的块或图像信息来生成预测块。
如上所述,当以与视频编码器中的操作相同的方式执行帧内预测时,若预测单元的大小与变换单元的大小相同,则基于存在于预测单元的左侧的像素、存在于左上方的像素、存在于上方的像素来对预测单元执行帧内预测,若执行帧内预测时的预测单元的大小与变换单元的大小不同,则可以使用基于变换单元的参考像素来执行帧内预测。并且,还可以应用仅对最小编码单元使用N×N划分的帧内预测。
预测部230、235可以包括预测单元判定部、帧间预测部及帧内预测部。预测单元判定部接收从熵解码部210输入的预测单元信息、帧内预测方法的预测模式信息、帧间预测方法的运动预测相关信息等多种信息,根据当前编码单元对预测单元进行分类,可确定预测单元是在执行帧间预测还是在执行帧内预测。帧间预测部230可以使用由视频编码器提供的当前预测单元的帧间预测所需的信息,并基于当前预测单元所属的当前图像的在先图像或在后图像中的至少一个图像中所包括的信息来对当前预测单元执行帧间预测。可替代地,还可以基于在当前预测单元所属的当前图像内已重建的一部分区域的信息来执行帧间预测。
为了执行帧间预测,能够基于编码单元来判断相应编码单元中所包括的预测单元的运动预测方法是跳过模式(Skip Mode)、合并模式(Merge Mode)、高级运动矢量预测模式(AMVP Mode)、帧内块复制模式中的哪种模式。
帧内预测部235可以基于当前图像内的像素信息来生成预测块。当预测单元为已执行帧内预测的预测单元时,能够基于由视频编码器提供的预测单元的帧内预测模式信息来执行帧内预测。帧内预测部235可以包括自适应帧内平滑(AIS,Adaptive IntraSmoothing)滤波器、参考像素插值部、DC滤波器。自适应帧内平滑滤波器是对当前块的参考像素执行滤波的部分,并且可以根据当前预测单元的预测模式确定是否应用滤波器。可以使用由视频编码器提供的预测单元的预测模式及自适应帧内平滑滤波器信息来对当前块的参考像素执行自适应帧内平滑滤波。若当前块的预测模式为不执行自适应帧内平滑滤波的模式,则可以不应用自适应帧内平滑滤波器。
对于参考像素插值部而言,若预测单元的预测模式为基于对参考像素进行插值的像素值来执行帧内预测的预测单元,则可以通过对参考像素进行插值来生成整数值或分数值的像素单位的参考像素。若当前预测单元的预测模式为以不对参考像素进行插值的方式生成预测块的预测模式,则可不对参考像素进行插值。若当前块的预测模式为DC模式,则DC滤波器可以通过滤波来生成预测块。
可以向滤波器部240提供重建的块或图像。滤波器部240可以包括去块滤波器、偏移校正部、ALF。
可以从视频编码器接收与是否对相应块或图像应用去块滤波器相关的信息及与在应用去块滤波器时应用强滤波还是弱滤波相关的信息。从视频解码器的去块滤波器接收由视频编码器提供的与去块滤波器相关的信息,并且可以在视频解码器对相应块执行去块滤波。
偏移校正部能够基于编码时用于视频的偏移校正的类型及偏移量信息等来对已重建的视频执行偏移校正。
可以基于由编码器提供的与是否应用ALF相关的信息、ALF系数信息等来将ALF应用于编码单元。这种ALF信息可以通过被包括在特定的参数集中来提供。
存储器245存储已重建的图像或块,使得所述图像或块可用作参考图像或参考块,并且可以向输出部提供已重建的图像。
图3是示出本发明实施例的基本编码树单元的图。
可以将大小最大的编码块定义为编码树块。一个图像可被划分为多个编码树单元(Coding Tree Unit,CTU)。编码树单元是大小最大的编码单元,还可被称为最大编码单元(LCU,Largest Coding Unit)。图3示出了将一个图像划分为多个编码树单元的示例。
编码树单元的大小可以以图像级或序列级定义。为此,可以通过图像参数集或序列参数集来用信号发送表示编码树单元的大小的信息。
例如,序列内整个图像的编码树单元的大小可以设置为128×128。可替代地,可以将图像级的128×128或256×256中的任一个确定为编码树单元的大小。例如,可以将第一图像中编码树单元的大小设置为128×128,并且可以将第二图像中编码树单元的大小设置为256×256。
可以通过划分编码树单元来生成编码块。编码块表示用于进行编码/解码处理的基本单元。例如,可按不同编码块执行预测或者变换,或者可按不同编码块确定预测编码模式。其中,预测编码模式表示生成预测图像的方法。例如,预测编码模式可以包括画面内预测(Intra Prediction,帧内预测)、画面间预测(Inter Prediction,帧间预测)、当前图像参考(Current Picture Referencing,CPR,或帧内块复制(Intra Block Copy,IBC))或组合预测(Combined Prediction)。针对编码块,可以使用帧内预测、帧间预测、当前图像参考或组合预测中的至少一种预测编码模式来生成与编码块相关的预测块。
可以通过码流用信号发送表示当前块的预测编码模式的信息。例如,所述信息可以是指示预测编码模式为帧内模式还是帧间模式的1比特标志。可仅在当前块的预测编码模式被确定为帧间模式的情况下使用当前图像参考或组合预测。
当前图像参考用于将当前图像设置为参考图像,并从当前图像内的已编码/解码的区域获得当前块的预测块。其中,当前图像意味着包括当前块的图像。可以通过码流用信号发送表示是否对当前块应用当前图像参考的信息。例如,所述信息可以是1比特标志。当所述标志为真时,可以将当前块的预测编码模式确定为当前图像参考,当所述标志为假时,可以将当前块的预测模式确定为帧间预测。
可替代地,可以基于参考图像索引确定当前块的预测编码模式。例如,当参考图像索引指向当前图像时,可以将当前块的预测编码模式确定为当前图像参考。当参考图像索引指向其他图像而不是当前图像时,可以将当前块的预测编码模式确定为帧间预测。即,当前图像参考是使用当前图像内已编码/解码的区域的信息的预测方法,并且帧间预测是使用已编码/解码的其他图像的信息的预测方法。
组合预测表示由帧内预测、帧间预测及当前图像参考中的两种以上组合而成的编码模式。例如,在应用组合预测的情况下,可以基于帧内预测、帧间预测或当前图像参考中的一种来生成第一预测块,并且可以基于另一种来生成第二预测块。若生成第一预测块和第二预测块,则可以通过第一预测块和第二预测块的平均运算或加权和运算来生成最终预测块。可以通过码流用信号发送表示是否应用组合预测的信息。所述信息可以是1比特标志。
图4是示出编码块的多种划分类型的图。
可以基于四叉树划分、二叉树划分或三叉树划分将编码块划分为多个编码块。还可以基于四叉树划分、二叉树划分或三叉树划分将所划分的编码块再次划分为多个编码块。
四叉树划分是指将当前块划分为4个块的划分技术。作为四叉树划分的结果,可以将当前块划分为4个正方形分区(参考图4的(a)部分中的“SPLIT_QT(划分_四叉树)”)。
二叉树划分是指将当前块划分为2个块的划分技术。可以将沿着垂直方向(即,使用横穿当前块的垂直线)将当前块划分为两个块的过程称为垂直方向二叉树划分,可以将沿着水平方向(即,使用横穿当前块的水平线)将当前块划分为两个块的过程称为水平方向二叉树划分。可以在经过二叉树划分后将当前块划分为2个非正方形分区。图4的(b)部分中的“SPLIT_BT_VER(划分_二叉树_垂直)”表示垂直方向二叉树划分结果,并且图4的(c)部分中的“SPLIT_BT_HOR(划分_二叉树_水平)”表示水平方向二叉树划分结果。
三叉树划分是指将当前块划分为3个块的划分技术。可以将沿着垂直方向(即,使用横穿当前块的两个垂直线)将当前块划分为三个块的过程称为垂直方向三叉树划分,可以将沿着水平方向(即,使用横穿当前块的两个水平线)将当前块划分为三个块的过程称为水平方向三叉树划分。可以在经过三叉树划分后将当前块划分为3个非正方形分区。在这种情况下,位于当前块的中心的分区的宽度/高度可以是其他分区的宽度/高度的2倍。图4的(d)部分中的“SPLIT_TT_VER(划分_三叉树_垂直)”表示垂直方向三叉树划分结果,并且图4的(e)部分中的“SPLIT_TT_HOR(划分_三叉树_水平)”表示水平方向三叉树划分结果。
可以将编码树单元的划分次数定义为划分深度(Partitioning Depth)。可以以序列或图像级确定编码树单元的最大划分深度。由此,编码树单元的最大划分深度可根据不同序列或图像而变得不同。
可替代地,可单独确定对于多个划分技术的每一个的最大划分深度。例如,允许四叉树划分的最大划分深度可以与允许二叉树划分和/或三叉树划分的最大划分深度不同。
编码器可以通过码流用信号发送表示当前块的划分形状或划分深度中的至少一个的信息。解码器可以基于从码流中解析的信息来确定编码树单元的划分形状及划分深度。
图5是示出编码树单元的划分的示例的图。
可以将使用四叉树划分、二叉树划分和/或三叉树划分等划分技术来划分编码块的过程称为多叉树划分(Multi Tree Partitioning)。
可以将通过对编码块应用多叉树划分而生成的编码块称为多个下游编码块。当编码块的划分深度为k时,多个下游编码块的划分深度设置为k+1。
另一方面,针对划分深度为k+1的多个编码块,可以将划分深度为k的编码块称为上游编码块。
可以基于上游编码块的划分形状或相邻编码块的划分类型中的至少一个来确定当前编码块的划分类型。其中,相邻编码块与当前编码块相邻,其可以包括当前编码块的上相邻块、左相邻块或与左上角相邻的相邻块中的至少一个。其中,划分类型可以包括是否划分四叉树、是否划分二叉树、二叉树划分方向、是否划分三叉树或三叉树划分方向中的至少一个。
为了确定编码块的划分形状,可以通过码流用信号发送表示编码块是否被划分的信息。所述信息为1比特标志“split_cu_flag”,当所述标志为真时,表示通过多叉树划分技术来划分编码块。
当“split_cu_flag”为真时,可以通过码流用信号发送表示编码块是否被四叉树划分的信息。所述信息为1比特标志“split_qt_flag”,当所述标志为真时,编码块可被划分为4个块。
例如,在图5所示的示例中图示了随着编码树单元被四叉树划分来生成划分深度为1的4个编码块。并且,图示了对作为四叉树划分的结果而生成的4个编码块中的第一个编码块及第四个编码块再次应用四叉树划分。最终,可以生成划分深度为2的4个编码块。
并且,可以通过对划分深度为2的编码块再次应用四叉树划分来生成划分深度为3的编码块。
在未对编码块应用四叉树划分时,可以通过考虑编码块的大小、编码块是否位于图像边界处、最大划分深度或相邻块的划分形状中的至少一个来确定对所述编码块执行二叉树划分还是三叉树划分。当确定对所述编码块执行二叉树划分或三叉树划分时,可以通过码流用信号发送表示划分方向的信息。所述信息可以是1比特标志“mtt_split_cu_vertical_flag”。可以基于所述标志来确定划分方向是垂直方向还是水平方向。另外,可以通过码流用信号发送表示对所述编码块应用二叉树划分或三叉树划分中的哪一个的信息。所述信息可以是1比特标志“mtt_split_cu_binary_flag”。可以基于所述标志来确定对所述编码块应用二叉树划分还是三叉树划分。
例如,在图5所示的示例中图示了对划分深度为1的编码块应用垂直方向二叉树划分,对作为所述划分结果而生成的编码块中的左侧编码块应用垂直方向三叉树划分,对右侧编码块应用垂直方向二叉树划分。
当将图像划分为编码树单元时,与图像的右边界或下边界相邻的区域可能存在大小小于预定义的大小的块。假设所述块为编码树单元,则可以在图像的右边界或下边界生成小于预定义的大小的编码树单元。此时,可以基于通过序列参数集或图像参数集用信号发送的信息来确定编码树单元的大小。
图6是示出大小小于具有预设大小的编码树单元的块出现在图像边界处的示例的图。
如图6所示的示例,当将大小为1292×1080的图像划分为大小为128×128的编码树单元时,在图像的右边界及下边界将存在大小小于128×128的块。在稍后描述的实施例中,将在图像边界产生的大小小于预定义大小的编码树单元的块称为非典型边界的边界块。
针对非典型边界的边界块,可以仅允许预定义的划分方法。其中,预定义的划分方法可以包括四叉树划分、三叉树划分或二叉树划分中的至少一个。
例如,针对非典型边界的边界块,可以仅允许四叉树划分。此时,可以重复执行四叉树划分,直到图像边界的块达到最小四叉树划分大小为止。其中,可以在编码器及解码器中预定义最小四叉树划分大小。可替代地,可以通过码流用信号发送指示最小四叉树划分大小的信息。
图7是示出对非典型边界的边界块执行四叉树划分的示例的图。为了便于说明,假设最小四叉树划分的大小为4×4。
对非典型边界的边界块的划分可以基于正方形块执行。所述正方形块可以基于非典型边界的边界块的宽度或高度中的较大者来导出。例如,大于所述参考值且最接近所述参考值的2的幂级数可以被认为是正方形块的一边的长度。例如,图7所示的12×20的块被认为属于32×32块,可以将32×32的划分结果应用于12×20的块。
当对12×20的块进行四叉树划分时,所述块可以被划分为大小为12×16的块和大小为12×4的块。若对它们分别重新进行四叉树划分,则12×16块被划分为2个8×8块和2个4×8块,大小为12×4的块被划分为大小为8×4的块和大小为4×4的块。
对位于图像边界的4×8块再次进行四叉树划分,其结果是可以生成2个大小为4×4的块。同理,对位于图像边界的8×4块再次进行四叉树划分,其结果是可以生成2个大小为4×4的块。
可替代地,当块的宽度或高度中的至少一种相同或者小于最小四叉树划分大小时,还可以执行二叉树划分。其中,最小四叉树划分大小可以表示最小四叉树划分宽度或最小四叉树划分高度。例如,当最小四叉树划分大小为4×4时,最小四叉树划分宽度及最小四叉树划分高度可以是4。
此时,当块的宽度相同或者小于最小四叉树划分大小时,可以执行垂直方向二叉树划分,当块的高度相同或者小于最小四叉树划分高度时,可以执行水平方向二叉树划分。
另一方面,当块的宽度或高度大于最小四叉树划分大小时,可以执行四叉树划分。例如,当块的右上位置及左下位置偏离图像,并且块的宽度或高度大于最小四叉树划分大小时,可以对相应块应用四叉树划分。
图8是示出对与图像右边界和下边界同时相邻的块执行四叉树划分的示例的图。为了便于说明,假设最小四叉树划分的大小为4×4。
在如图8所示的示例中,当对包含大小为12×20的块的大小为32×32的块进行四叉树划分时,生成4个大小为16×16的块。可以对其中包含纹理数据的两个大小为16×16的块再次执行四叉树划分。其结果是,x轴坐标及y轴坐标偏离图像边界,可以生成包含大小为4×4的纹理数据的大小为8×8的块。由于所述大小为8×8的块的宽度及高度大于最小四叉树划分大小,因此可以对所述块执行四叉树划分。
当对12×20的块进行四叉树划分时,所述块可以被划分为大小为12×16的块和大小为12×4的块。若对它们分别重新进行四叉树划分,则12×16块被划分为2个8×8块和2个4×8块,大小为12×4的块被划分为大小为8×4的块和大小为4×4的块。
由于位于图像边界的4×8块的宽度与最小四叉树划分大小相同,因此可以对4×8块执行二叉树划分。具体地,可以基于包含4×8块的正方形块(即,8×8)来执行垂直方向二叉树划分。
另外,由于位于图像边界的8×4块的宽度与最小四叉树划分大小相同,因此可以对8×4块执行二叉树划分。具体地,可以基于包含4×8块的正方形块(即,8×8)来执行水平方向二叉树划分。
所述划分结果显示,可以将大小为8×4的块、4×4的块及4×8的块与图像边界相邻地设置。
可替代地,块的宽度或高度中的至少一个小于或等于阈值时可以执行二叉树划分,否者可以执行四叉树划分。其中,阈值可以基于最小四叉树划分大小来导出。例如,当最小四叉树划分大小为minQTsize时,阈值可以设置为“minQTsize<<1”。可替代地,可以通过码流用信号发送用于确定阈值的信息。
图9是示出与图像边界相邻的块的划分模式的图。为了便于说明,假设最小四叉树划分的大小为4×4。阈值可以设置为8。
首先,可以对12×20块执行四叉树划分。其结果是,所述块可以被划分为大小为12×16的块和12×4的块。由于大小为12×16的块的宽度及高度均大于阈值,因此可以对所述块应用四叉树划分。由此,所述块可以被划分为两个8×8块和2个4×8块。
大小为12×4的块的宽度大于阈值。由此,可以对所述大小为12×4的块应用四叉树划分。其结果是,所述块可以被划分为大小为8×4的块和4×4的块。
之后,由于位于图像边界的大小为4×8的块及大小为8×4的块的宽度及高度均小于或等于阈值,因此可以对这些块应用二叉树划分。
与上述示例相反,当块的宽度或高度中的至少一个大于阈值时,可以执行二叉树划分,否则,可以执行四叉树划分。
可替代地,针对非典型边界的边界块,还可以仅应用四叉树划分,或者仅应用二叉树划分。例如,可以重复执行四叉树划分直到位于图像边界的块具有最小大小为止,或者可以重复执行二叉树划分直到位于图像边界的块具有最小大小为止。
可以将非典型边界的边界块指定为编码单元,并且可以对非典型边界的边界块固定地应用跳过模式,或者可以将变换系数均设置为0。由此,指示非典型边界的边界块是否存在非0的变换系数的编码块标志(CBF,Coded Block Flag)的值可以设置为0。以跳过模式编码的编码单元或变换系数设置为0的编码单元可以称为边界零编码单元。
可替代地,可以通过将划分非典型边界的边界块而生成的编码块的宽度或高度中的至少一个与阈值进行比较,确定是否将所述编码单元设置为边界零编码单元。例如,可以以跳过模式对编码块的宽度或高度中的至少一个小于阈值的编码块进行编码或者将所述编码块的变换系数设置为0。
图10是示出与图像边界相邻的块的编码模式的图。假设阈值为8。
可以将通过划分非典型边界的边界块而生成的编码块中宽度或高度中的至少一个小于阈值的编码块设置为边界零编码单元。
例如,在如图10所示的示例中,可以将大小为4×16的编码块、大小为8×4的编码块及大小为4×4的编码块设置为边界零编码单元。由此,可以以跳过模式对所述块进行编码或者将所述块的变换系数设置为0。
针对宽度及高度等于或大于阈值的编码块,可以选择性地应用跳过模式或将变换系数设置为0。为此,可以对指示是否对所述编码块应用跳过模式的标志或指示是否将变换系数设置为0的标志进行编码并用信号发送。
可替代地,可以仅允许通过二叉树划分生成的编码单元被设置为边界零编码单元。可替代地,可以仅允许通过四叉树划分生成的编码单元被设置为边界零编码单元。
帧间预测是指使用在先图像的信息来预测当前块的预测编码模式。例如,可以将在先图像内与当前块相同位置的块(以下称为同位块,Collocated block)设置为当前块的预测块。以下,将基于位置与当前块相同的块生成的预测块称为同位预测块(CollocatedPrediction Block)。
另一方面,若存在于在先图像中的对象已经移动至当前图像中的其他位置,则可以使用对象的运动来有效预测当前块。例如,若可以通过比较在先图像和当前图像来知晓对象的移动方向及大小,则可以考虑对象的运动信息来生成当前块的预测块(或预测图像)。以下,可以将使用运动信息生成的预测块称为运动预测块。
可以通过从当前块减去预测块来生成残差块(residual block)。在这种情况下,当存在对象的运动时,可以通过使用运动预测块来代替同位预测块,由此减少残差块的能量,从而可提高残差块的压缩性能。
如上所述,可以将使用运动信息生成预测块的过程称为运动补偿预测。在大部分的帧间预测中,可以基于运动补偿预测来生成预测块。
运动信息可以包括运动矢量、参考图像索引、预测方向或双向加权值索引中的至少一个。运动矢量表示对象的移动方向及大小。参考图像索引指定参考图像列表中包括的多个参考图像中的当前块的参考图像。预测方向是指单向L0预测、单向L1预测或双向预测(L0预测及L1预测)中的任一个。可以根据当前块的预测方向来使用L0方向的运动信息或L1方向的运动信息中的至少一个。双向加权值索引指定用于L0预测块的加权值及应用于L1预测块的加权值。
图11是本发明实施例的帧间预测方法的流程图。
参照图11,帧间预测方法包括:确定当前块的帧间预测模式(S1101);根据所确定的帧间预测模式来获得当前块的运动信息(S1102);以及基于所获得的运动信息来执行当前块的运动补偿预测(S1103)。
其中,帧间预测模式表示用于确定当前块的运动信息的多种技术,可以包括使用平移(Translation)运动信息的帧间预测模式和使用仿射(Affine)运动信息的帧间预测模式。例如,使用平移运动信息的帧间预测模式可以包括合并模式及高级运动矢量预测模式,使用仿射运动信息的帧间预测模式可以包括仿射合并模式及仿射运动矢量预测模式。根据帧间预测模式,可以基于与当前块相邻的相邻块或从码流中解析的信息来确定当前块的运动信息。
下面将详细描述使用平移运动信息的帧间预测方法。
可从当前块的其他块的运动信息中导出当前块的运动信息。其中,其他块可以是比起当前块更优先地以帧间预测进行编码/解码的块。可以将当前块的运动信息设置为与其他块的运动信息相同的情况定义为合并模式。并且,可以将其他块的运动矢量设置为当前块的运动矢量的预测值情况定义为运动矢量预测模式。
图12是在合并模式下导出当前块的运动信息的过程的流程图。
可以导出当前块的合并候选(S1201)。当前块的合并候选可从在当前块之前以帧间预测进行编码/解码的块导出。
图13是示出用于导出合并候选的候选块的图。
候选块可以包括包含与当前块相邻的样本的相邻块或包含不与当前块相邻的样本的非相邻块中的至少一者。在下文中,将用于确定候选块的样本指定为参考样本。另外,将与当前块相邻的参考样本称为相邻参考样本,将不与当前块相邻的参考样本称为非相邻参考样本。
相邻参考样本可以包括在当前块的最左侧列的相邻列中、或当前块的最上方行的相邻行中。例如,若当前块的左上样本的坐标为(0,0),则包括(-1,H-1)位置上的参考样本的块、包括(W-1,-1)位置上的参考样本的块、包括(W,-1)位置上的参考样本的块、包括(-1,H)位置上的参考样本的块或包括(-1,-1)位置上的参考样本的块中的至少一个可用作候选块。参考附图,可以将索引为0至4的相邻块用作候选块。
非相邻参考样本表示与当前块相邻的参考样本之间的x轴距离或y轴距离中的至少一者具有预定义的值的样本。例如,可以将包含与左侧参考样本之间的x轴距离为预定义的值的参考样本的块、包含与上方参考样本之间的y轴距离为预定义的值的非相邻样本的块、或包含与左上参考样本之间的x轴距离及y轴距离为预定义的值的非相邻样本的块中的至少一者用作候选块。预定义的值可以是4、8、12、16等整数。参考附图,可以将索引为5至26的块中的至少一个用作候选块。
可以将与相邻参考样本不在同一垂直线、水平线或对角线上的样本设置为非相邻参考样本。
图14是示出参考样本的位置的图。
如图14所示的示例,上非相邻参考样本的x坐标可以设置为与上相邻参考样本的x坐标不同。例如,当上相邻参考样本的位置为(W-1,-1)时,可以将沿y轴与上相邻参考样本相隔N的上非相邻参考样本的位置设置为((W/2)-1,-1-N),并且可以将沿y轴与上相邻参考样本相隔2N的上非相邻参考样本的位置设置为(0,-1-2N)。即,非相邻参考样本的位置可以基于相邻参考样本的位置和与相邻参考样本之间的距离来确定。
在下文中,将候选块中的包含相邻参考样本的候选块称为相邻块,包含非相邻参考样本的块称为非相邻块。
在当前块与候选块之间的距离大于或等于阈值时,可以将所述候选块设置为不可用作合并候选。所述阈值可以基于编码树单元的大小来确定。例如,可以将所述阈值设置为编码树单元的高度(ctu_height)、或在编码树单元的高度加上或减去偏移值而得的值(例如,ctu_height±N)。偏移值N为编码器及解码器中预定义的值,可以设置为4、8、16、32或ctu_height。
在当前块的y轴坐标与候选块中包括的样本的y轴坐标之间的差值大于阈值时,可以将候选块确定为不可用作合并候选。
可替代地,可以将不属于与当前块相同的编码树单元的候选块设置为不可用作合并候选。例如,在参考样本超出当前块所属的编码树单元的上边界时,可以将包括参考样本的候选块设置为不可用作合并候选。
如果,在当前块的上边界与编码树单元的上边界相邻时,多个候选块被确定为不可用作合并候选,由此会降低当前块的编码/解码效率。为了解除如上问题,可以设置候选块,以使位于当前块的上方的候选块的数量多于位于当前块的左侧的候选块的数量。
图15是示出用于导出合并候选的候选块的图。
如在图15中所示的示例中,可以将属于当前块上方N个块列的上方块和属于当前块左侧M个块列的左侧块设置为候选块。此时,通过将M设置为大于N,可以将左侧候选块的数量设置为大于上方候选块的数量。
例如,可以将当前块内参考样本的y轴坐标与可用作候选块的上方块的y轴坐标之间的差值设置为不超过当前块的高度的N倍。另外,可以将当前块内参考样本的x轴坐标和可用作候选块的左侧块的x轴坐标之间的差值设置为不超过当前块的宽度的M倍。
例如,在图15所示的示例中,示出了将属于当前块上方两个块列的块和属于当前块左侧五个块列的块设置为候选块。
作为另一例,当候选块不属于与当前块相同的编码树单元时,可以代替所述候选块而利用属于与当前块相同的编码树单元的块、或包含与所述编码树单元的边界相邻的参考样本的块来导出合并候选。
图16是示出改变参考样本的位置的示例的图。
当参考样本包括在与当前块不同的编码树单元,并且所述参考样本与所述编码树单元的边界不相邻时,可以代替所述参考样本而利用与所述编码树单元的边界相邻的参考样本来确定候选块参考样本。
例如,在图16的(a)和图16的(b)所示的示例中,在当前块的上边界与编码树单元的上边界彼此接触时,当前块上方的参考样本属于与当前块不同的编码树单元。可以用与编码树单元的上边界相邻的样本来替换属于与当前块不同的编码树单元的参考样本中不与编码树单元的上边界相邻的参考样本。
例如,如图16的(a)所示的示例中,位置6处的参考样本被替换为位于编码树单元的上边界的位置6'处的样本,如图16的(b)的示例所示,位置15处的参考样本被替换为位于编码树单元的上边界的位置15'处的样本。此时,替换样本的y坐标可以改变为编码树单元的相邻位置,替换样本的x坐标可以设置为与参考样本相同。例如,6'位置的样本可以具有与6位置的样本相同的x坐标,15'位置的样本可以具有与15位置的样本相同的x坐标。
可替代地,可以将在参考样本的x坐标中加上或减去偏移值而得到的值设置为替换样本的x坐标。例如,当位于当前块的上方的相邻参考样本和非相邻参考样本的x坐标相同时,可以将在参考样本的x坐标中加上或减去偏移值而得到的值设置为替换样本的x坐标。这是为了防止用于替换非相邻参考样本的替换样本与其他非相邻参考样本或相邻参考样本处于相同的位置。
图17是示出改变参考样本的位置的示例的图。
在用位于编码树单元的边界的样本来替换包括在与当前块不同的编码树单元中且与编码树单元的边界不相邻的参考样本时,可以将在参考样本的x坐标中加上或减去偏移值而得到的值设置为替换样本的x坐标。
例如,在图17所示的示例中,位置6处的参考样本和位置15处的参考样本可以被分别替换为具有同与编码树单元的上边界相邻的行相同的y坐标的、位置6'处的样本和位置15'处的样本。此时,6'位置的样本的x坐标可以设置为与6位置的参考样本的x坐标的差值为W/2的值,15'位置的样本的x坐标可以设置为与15位置的参考样本的x坐标的差值为W-1的值。
不同于图16和图17所示的示例,位于当前块的最上方行的上方的行的y坐标或编码树单元的上边界的y坐标还可以被设置为替换样本的y坐标。
虽然未图示,但是还可以基于编码树单元的左边界来确定代替参考样本的样本。例如,当参考样本不包括在与当前块相同的编码树单元中,并且不与编码树单元的左边界相邻时,可以将所述参考样本替换为与编码树单元的左边界相邻的样本。此时,替换样本可以具有与参考样本相同的y坐标,或者可以具有在参考样本的y坐标中加上或差值偏移值而获取的y坐标。
之后,可以将包含替换样本的块设置为候选块,并基于所述候选块导出当前块的合并候选。
还可从与当前块不同的图像中所包括的时间相邻块导出合并候选。例如,可从同位图像中所包括的同位块导出合并候选。
可以将合并候选的运动信息设置为与候选块的运动信息相同。例如,可以将候选块的运动矢量、参考图像索引、预测方向或双向加权值索引中的至少一个设置为合并候选的运动信息。
可以生成包括合并候选的合并候选列表(S1202)。所述合并候选可以分类为从与当前块相邻的相邻块中导出的相邻合并候选、以及从非相邻块中导出的非相邻合并候选。
可按照预定顺序分配合并候选列表内的多个合并候选的索引。例如,分配给相邻合并候选的索引可以具有比分配给非相邻合并候选的索引更小的值。可替代地,基于图13或图15所示的每个块的索引,可以将索引分配给每个合并候选。
当合并候选列表中包括多个合并候选时,可以选择所述多个合并候选中的至少一个(S1203)。此时,可以通过码流用信号发送指示当前块的运动信息是否是从相邻合并候选中导出的信息。所述信息可以是1比特标志。例如,可以通过码流用信号发送指示当前块的运动信息是否是从相邻合并候选中导出的语法元素isAdjancentMergeFlag。当语法元素isAdjancentMergeFlag的值为1时,当前块的运动信息可以基于相邻合并候选来导出。另一方面,当语法元素isAdjancentMergeFlag的值为0时,当前块的运动信息可以基于非相邻合并候选来导出。
表1示出了包括语法元素isAdjancentMergeFlag的语法表。
【表1】
Figure BDA0003037790240000111
Figure BDA0003037790240000121
可以通过码流用信号发送用于指定多个合并候选中的任一个的信息。例如,可以通过码流用信号发送指示合并候选列表中包括的合并候选中的任一个索引的信息。
当isAdjacentMergeflag为1时,可以用信号发送用于确定相邻合并候选中的任一个的语法元素merge_idx。可以将语法元素merge_idx的最大值设置为与相邻合并候选的数量的差值为1的值。
当isAdjacentMergeflag为0时,可以用信号发送用于确定非相邻合并候选中的任一个的语法元素NA_merge_idx。语法元素NA_merge_idx指示将非相邻合并候选的索引与相邻合并候选的数量求差而获得的值。解码器可以通过将根据NA_merge_idx确定的索引加上相邻合并候选的数量来选择非相邻合并候选。
当合并候选列表中包括的合并候选的数量小于最大值时,可以将帧间运动信息列表中包括的合并候选添加到合并候选列表中。帧间运动信息列表可以包括基于在当前块之前进行编码/解码的块来导出的合并候选。
帧间运动信息列表包括从于当前图像内基帧间预测进行编码/解码的块导出的合并候选。例如,帧间运动信息列表中包括的合并候选的运动信息可以设置为与基于帧间预测进行编码/解码的块的运动信息相同。其中,运动信息可以包括运动矢量、参考图像索引、预测方向或双向加权值索引中的至少一个。
为了便于说明,将帧间运动信息列表中包括的合并候选称为帧间合并候选。
可以在编码器及解码器中预定义帧间运动信息列表中可以包括的最大合并候选的数量。例如,帧间运动信息列表中可以包括的最大合并候选的数量可以是1、2、3、4、5、6、7、8或更大(例如,16)。
可替代地,可以通过码流用信号发送表示帧间运动信息列表的最大合并候选的数量的信息。所述信息以序列级、图像级或条带级用信号发送。
可替代地,可以根据图像的大小、条带的大小或编码树单元的大小来确定帧间运动信息列表的最大合并候选数量。
帧间运动信息列表可以以图像、条带、图块、砖块、编码树单元或编码树单元线(行或列)为单位实现初始化。例如,在条带初始化时,帧间运动信息列表也被初始化,帧间运动信息列表有可能不包括任何的合并候选。
可替代地,还可以通过码流用信号发送表示是否初始化帧间运动信息列表的信息。所述信息可以以条带级、图块级、砖块级或块级用信号发送。在所述信息指示对帧间运动信息列表进行初始化之前,可以使用已配置的帧间运动信息列表。
可替代地,可以通过图像参数集或条带头用信号发送与帧间合并候选相关的信息。即使条带被初始化,帧间运动信息列表也可以包括初始帧间合并候选。由此,可以将帧间合并候选用于条带内首次被编码/解码的块。
根据编码/解码顺序,对块进行编码/解码,并且可以根据编码/解码顺序来将基于帧间预测进行编码/解码的多个块依次设置为帧间合并候选。
图18是用于说明帧间运动信息列表的更新的示例的图。
在对当前块执行帧间预测时(S1801),可以基于当前块来导出帧间合并候选(S1802)。帧间合并候选的运动信息可以设置为与当前块的运动信息相同。
在帧间运动信息列表为空时(S1803),可以将基于当前块导出的帧间合并候选添加到帧间运动信息列表(S1804)。
在帧间运动信息列表已经包括所述帧间合并候选时(S1803),可以对当前块的运动信息(或基于当前块导出的帧间合并候选)进行冗余检查(S1805)。冗余检查用于确定帧间运动信息列表中已存储的帧间合并候选的运动信息和当前块的运动信息是否相同。可以将帧间运动信息列表中已存储的所有帧间合并候选作为对象执行冗余检查。可替代地,可以将帧间运动信息列表中已存储的帧间合并候选中的索引为阈值以上或阈值以下的帧间合并候选作为对象可执行冗余检查。
在不包括具有与当前块的运动信息相同的运动信息的帧间预测合并候选时,可以将基于当前块导出的帧间合并候选添加到帧间运动信息列表(S1808)。可以基于帧间合并候选的运动信息(例如,运动矢量和/或参考图像索引等)是否相同来确定帧间合并候选是否相同。
此时,在帧间运动信息列表中已经存储了最大数量的帧间合并候选时(S1806),删除最早的帧间合并候选(S1807),并且可以将基于当前块导出的帧间合并候选添加到帧间运动信息列表(S1808)。
可以根据各个索引来识别多个帧间合并候选。在将从当前块导出的帧间合并候选添加到帧间运动信息列表时,向所述帧间合并候选分配最低的索引(例如,0),可以将已存储的帧间合并候选的索引分别增加1。在这种情况下,当帧间运动信息列表中已存储最大数量的帧间合并候选时,移除索引最大的帧间合并候选。
可替代地,在将从当前块导出的帧间合并候选添加到帧间运动信息列表时,可向所述帧间合并候选分配最大的索引。例如,当已存储在帧间运动信息列表中的帧间预测合并候选的数量小于最大值时,可以将具有与已存储的帧间预测合并候选的数量相同的值的索引分配给所述帧间合并候选。可替代地,在帧间运动信息列表中已存储的帧间合并候选的数量等于最大值时,可向所述帧间合并候选分配从最大值减去1的索引。并且,移除索引最小的帧间合并候选,并将剩余的已存储的多个帧间合并候选的索引将分别减小1。
图19是示出帧间合并候选列表的更新的示例的图。
假设将从当前块导出的帧间合并候选添加到帧间合并候选列表,并且向所述帧间合并候选分配最大的索引。并且,假设帧间合并候选列表中已存储了最大数量的帧间合并候选。
在将从当前块中导出的帧间合并候选HmvpCand[n+1]添加到帧间合并候选列表HmvpCandList时,从已存储的帧间合并候选中删除索引最小的帧间合并候选HmvpCand[0],并分别从多个剩余帧间合并候选的索引减小1。另外,可以将从当前块中导出的帧间合并候选HmvpCand[n+1]的索引设置为最大值(在图19所示的示例中为n)。
在已存储与基于当前块导出的帧间合并候选相同的帧间合并候选时(S1805),可以不将基于当前块导出的帧间合并候选添加到帧间运动信息列表(S1809)。
可替代地,随着将基于当前块导出的帧间合并候选添加到帧间运动信息列表,还可移除与所述帧间合并候选相同的已存储的帧间合并候选。在这种情况下,会引起已存储的帧间合并候选的索引被更新的效果。
图20是示出已存储的帧间合并候选的索引被更新的示例的图。
与基于当前块导出的帧间合并候选mvCand相同的已存储的帧间合并候选的索引为hIdx时,删除所述已存储的帧间合并候选,可以将索引大于hIdx的帧间合并候选的索引各减小1。例如,在图20所示的示例中,示出了将与mvCand相同的HmvpCand[2]从帧间运动信息列表HvmpCandList中删除,并且HmvpCand[3]至HmvpCand[n]的索引各减少1。
并且,将基于当前块导出的帧间合并候选mvCand可添加到帧间运动信息列表的最后。
可替代地,可以更新被分配给与基于当前块导出的帧间合并候选相同的已存储的帧间合并候选的索引。例如,已存储的帧间合并候选的索引可更改为最小值或最大值。
可以将预定区域中包括的块的运动信息设置为不能添加到帧间运动信息列表中。例如,可以不将基于在并行合并区域中包括的块的运动信息导出的帧间合并候选添加到帧间运动信息列表。由于未指定并行合并区域中包括的块的编码/解码顺序,因此在对其他块进行帧间预测时利用所述块中任一个的运动信息是不恰当的。由此,可以不将基于并行合并区域中包括的块导出的帧间合并候选添加到帧间运动信息列表。
借助子块单元执行运动补偿预测时,当前块中包括的多个子块中可以基于代表性子块的运动信息来导出帧间合并候选。例如,针对当前块使用子块合并候选时,可以基于子块中的代表性子块的运动信息来导出帧间合并候选。
子块的运动矢量可按以下顺序导出。首先,可以选择当前块的合并候选列表所包括的合并候选中的任一个,并且可以基于选择的合并候选的运动矢量来导出初始移位矢量(shVector)。并且,通过将编码块内各个子块的参考样本(例如,左上样本或中间位置样本)的位置(xSb,ySb)加上初始移位矢量,可以导出参考样本的位置为(xColSb,yColSb)的移位子块。以下等式1示出了用于导出移位子块的等式。
【等式1】
(xColSb,yColSb)=(xSb+shVector[0]>>4,ySb+shVector[1]>>4)
接下来,将与包括(xColSb,yColSb)的子块中心位置相对应的同位块的运动矢量设置为包括(xSb,ySb)的子块的运动矢量。
代表性子块可意味着包括当前块的左上样本或中心样本的子块。
图21是示出代表性子块的位置的图。
图21的(a)示出了将位于当前块的左上方的子块设置为代表子块的示例,图21的(b)示出了将位于当前块的中心的子块设置为代表子块的示例。当以子块为单位执行运动补偿预测时,基于包括当前块的左上样本的子块或包括当前块的中心样本的子块的运动矢量,可以导出当前块的帧间合并候选。
基于当前块的帧间预测模式,还可以确定是否将当前块用作帧间合并候选。例如,可以将基于仿射运动模型进行编码/解码的块设置为不可用作帧间合并候选。由此,即使当前块通过帧间预测进行编码/解码,当前块的帧间预测模式为仿射预测模式时,也不会基于当前块更新帧间预测运动信息列表。
可替代地,还可以基于仿射运动模型进行编码/解码的块中包括的子块中至少一个子块矢量来导出帧间合并候选。例如,可以使用位于当前块左上方的子块、位于中心的子块或位于右上方的子块来导出帧间合并候选。可替代地,还可以将多个子块的子块矢量的平均值设置为帧间合并候选的运动矢量。
可替代地,还可以基于仿射运动模型进行编码/解码的块的仿射种子矢量的平均值来导出帧间合并候选。例如,将当前块的第一仿射种子矢量、第二仿射种子矢量或第三仿射种子矢量中的至少一个的平均值设置为帧间合并候选的运动矢量。
可替代地,可以针对不同的帧间预测模式来配置帧间运动信息列表。例如,可定义用于通过帧内块复制进行编码/解码的块的帧间运动信息列表、用于基于平移运动模型进行编码/解码的块的帧间运动信息列表或用于基于仿射运动模型进行编码/解码的块的帧间运动信息列表中的至少一个。根据当前块的帧间预测模式,可选择多个帧间运动信息列表中的任一个。
图22示出了针对不同帧间预测模式生成帧间运动信息列表的示例。
当基于非仿射运动模型对块进行编码/解码时,可以将基于所述块导出的帧间合并候选mvCand添加到帧间非仿射运动信息列表HmvpCandList。另一方面,当基于仿射运动模型对块进行编码/解码时,可以将基于所述块导出的帧间合并候选mvAfCand添加到帧间仿射运动信息列表HmvpAfCandList。
块的仿射种子矢量可以存储在从基于仿射运动模型进行编码/解码的块导出的帧间合并候选中。由此,可以将所述帧间合并候选用作用于导出当前块的仿射种子矢量的合并候选。
除了描述的帧间运动信息列表以外,还可定义另外的帧间运动信息列表。除了所描述的帧间运动信息列表(以下称为第一帧间运动信息列表)以外,还可定义长期运动信息列表(以下称为第二帧间运动信息列表)。其中,长期运动信息列表包括长期合并候选。
当第一帧间运动信息列表及第二帧间运动信息列表均为空状态时,首先可以将帧间合并候选添加到第二帧间运动信息列表。在第二帧间运动信息列表中可用的帧间合并候选的数量达到最大数量之后,才能在第一帧间运动信息列表添加帧间合并候选。
可替代地,还可以将一个帧间合并候选添加到第二帧间运动信息列表及第一帧间运动信息列表两者。
在这种情况下,可能不再更新已完成配置的第二帧间运动信息列表。可替代地,当解码区域为条带的预定比率以上时,可更新第二帧间运动信息列表。可替代地,可以每N个编码树单元行更新第二帧间运动信息列表。
另一方面,每当产生以帧间预测进行编码/解码的块时,可以更新第一帧间运动信息列表。但是,还可以将添加到第二帧间运动信息列表的帧间合并候选设置为不用于更新第一帧间运动信息列表。
可以通过码流用信号发送用于选择第一帧间运动信息列表或第二帧间运动信息列表中的任一个的信息。当合并候选列表中包括的合并候选的数量小于最大值时,可以将所述信息指示的帧间运动信息列表中包括的合并候选添加到合并候选列表。
可替代地,还可以基于当前块的大小、形状、帧间预测模式、双向预测与否、运动矢量细化与否或三角形划分与否来选择帧间运动信息列表。
可替代地,即使在添加了第一帧间运动信息列表中包括的帧间合并候选时,合并候选列表所包括的合并候选的数量还是小于最大合并数量,则可以将第二帧间运动信息列表中包括的帧间合并候选添加到合并候选列表。
图23是示出将长期运动信息列表中包括的帧间合并候选添加到合并候选列表的示例的图。
当合并候选列表所包括的合并候选的数量小于最大数量时,可以将第一帧间运动信息列表HmvpCandList中包括的帧间合并候选添加到合并候选列表。即使在将第一帧间运动信息列表中包括的帧间合并候选添加到合并候选列表时,合并候选列表所包括的合并候选的数量还是小于最大数量,则可以将长期运动信息列表HmvpLTCandList中包括的帧间合并候选添加到合并候选列表。
表2示出了将在长期运动信息列表中包括的帧间合并候选添加到合并候选列表的过程。
【表2】
Figure BDA0003037790240000151
可以将帧间合并候选设置为除了运动信息以外还包括附加信息。例如,可以在帧间合并候选中添加存储块的大小、形状或块的划分信息划分信息。在构造当前块的合并候选列表时,在帧间合并候选中仅使用大小、形状或划分信息与当前块相同或类似的帧间合并候选,或者可以将大小、形状或划分信息与当前块相同或类似的帧间合并候选优先添加到合并候选列表。
可替代地,可以针对不同的块大小、形状或划分信息生成帧间运动信息列表。可以使用多个帧间运动信息列表中与当前块的形状、大小或划分信息相对应的帧间运动信息列表来生成当前块的合并候选列表。
可替代地,可以按运动矢量的不同分辨率生成帧间运动信息列表。例如,在当前块的运动矢量具有1/4像素分辨率时,可以将从当前块中导出的帧间合并候选添加到帧间区域四分之一像素运动信息列表。在当前块的运动矢量具有1个整数像素的分辨率时,可以将从当前块中导出的帧间合并候选添加到帧间区域整数像素运动信息列表。在当前块的运动矢量具有4个整数像素的分辨率时,可以将从当前块中导出的帧间合并候选添加到帧间区域4整数像素运动信息列表。可以根据编码/解码对象块的运动矢量分辨率来选择多个帧间运动信息列表中的一个。
当将合并偏移矢量编码方法应用于当前块时,可以将基于当前块导出的帧间合并候选添加到帧间区域合并偏移运动信息列表HmvpHMVDCandList,而不是添加到帧间运动信息列表HmvpCandList。此时,所述帧间合并候选可以包括当前块的运动矢量偏移信息。HmvpHMVDCandList可以用于导出应用合并偏移矢量编码方法的块的偏移。
在当前块的合并候选列表中包括的合并候选的数量不是最大值时,可以将帧间运动信息列表中包括的帧间合并候选添加到合并候选列表。所述添加过程按索引的升序或降序执行。例如,可以将索引最大的帧间合并候选中添加到合并候选列表。
在要将帧间运动信息列表中包括的帧间合并候选添加到合并候选列表时,可以执行帧间合并候选与已存储于合并候选列表的多个合并候选之间的冗余检查。
例如,表3示出了将帧间合并候选添加到合并候选列表的过程。
【表3】
Figure BDA0003037790240000161
还可以仅对帧间运动信息列表所包括的帧间合并候选中的一些执行冗余检查。例如,可仅对索引为阈值以上或阈值以下的帧间合并候选执行冗余检查。
可替代地,可仅对合并候选列表中已存储的合并候选中的一些执行冗余检查。例如,可仅对索引为阈值以上或阈值以下的合并候选或从特定位置的块中导出的合并候选执行冗余检查。其中,特定位置可以包括当前块的左相邻块、上相邻块、右上相邻块或左下相邻块中的至少一个。
图24是示出仅对合并候选中的一些进行冗余检查的示例的图。
在要将帧间合并候选HmvpCand[j]添加到合并候选列表时,可以执行帧间合并候选与索引为最大的2个合并候选mergeCandList[NumMerge-2]和mergeCandList[NumMerge-1]之间的冗余检查。其中,NumMerge可以表示可用的空间合并候选及时间合并候选的数量。
在发现与第一帧间合并候选相同的合并候选的情况下,在对第二帧间合并候选执行冗余检查时,可省略与所述第一帧间合并候选相同的合并候选的冗余检查。
图25是示出对特定合并候选省略冗余检查的示例的图。
在要将索引为i的帧间合并候选HmvpCand[i]添加到合并候选列表时,可执行所述帧间合并候选与合并候选列表中已存储的合并候选之间的冗余检查。在这种情况下,在发现与帧间合并候选HmvpCand[i]相同的合并候选mergeCandList[j]的情况下,帧间合并候选HmvpCand[i]将不添加到合并候选列表,并且可执行索引为i-1的帧间合并候选HmvpCand[i-1]与合并候选之间的冗余检查。在这种情况下,可省略帧间合并候选HmvpCand[i-1]与合并候选mergeCandList[j]之间的冗余检查。
例如,在图25所示的示例中,确定HmvpCand[i]与mergeCandList[2]相同。由此,HmvpCand[i]不添加到合并候选列表,可以对HmvpCand[i-1]执行冗余检查。在这种情况下,可省略HvmpCand[i-1]与mergeCandList[2]之间的冗余检查。
在当前块的合并候选列表中包括的合并候选的数量小于最大值时,除了帧间合并候选以外,还可以包括成对(pairwise)合并候选或零合并候选中的至少一者。成对合并候选是指将两个以上合并候选的运动矢量的平均值作为运动矢量的合并候选,零合并候选是指运动矢量为0的合并候选。
当前块的合并候选列表可按以下顺序添加合并候选。
空间合并候选-时间合并候选-帧间合并候选-(帧间仿射合并候选)-成对合并候选-零合并候选
空间合并候选是指从相邻块或非相邻块中的至少一个导出的合并候选,时间合并候选是指从在先参考图像导出的合并候选。帧间仿射合并候选列表示从以仿射运动模型进行编码/解码的块中导出的帧间合并候选。
在高级运动矢量预测模式中也可以使用帧间运动信息列表。例如,在当前块的运动矢量预测候选列表中包括的运动矢量预测候选的数量小于最大值时,可以将帧间运动信息列表中包括的帧间合并候选设置为当前块的运动矢量预测候选。具体地,将帧间合并候选的运动矢量设置为运动矢量预测候选。
若选择当前块的运动矢量预测候选列表所包括的运动矢量预测候选中的任一个,则将选择的候选设置为当前块的运动矢量预测值。之后,对当前块的运动矢量残差值进行解码之后,可以通过将运动矢量预测值和运动矢量残差值相加来获得当前块的运动矢量。
当前块的运动矢量预测候选列表可按以下顺序构造。
空间运动矢量预测候选-时间运动矢量预测候选-帧间解码区域合并候选-(帧间解码区域仿射合并候选)-零运动矢量预测候选
空间运动矢量预测候选是指从相邻块或非相邻块中的至少一个导出的运动矢量预测候选,时间运动矢量预测候选是指从在先参考图像中导出的运动矢量预测候选。帧间仿射合并候选列表示从以仿射运动模型进行编码/解码的块中导出的帧间运动矢量预测候选。零运动矢量预测候选表示运动矢量的值为0的候选。
可以指定大小大于编码块的合并处理区域。合并处理区域中包括的编码块不依次编码/解码,而也可以并行处理。其中,不依次编码/解码是指未指定编码/解码顺序。由此,可以独立地处理合并处理区域中包括的块的编码/解码过程。可替代地,合并处理区域中包括的块可以共享合并候选。其中,合并候选可以基于合并处理区域来导出。
根据所述特征,还可以将合并处理区域称为并行处理区域、合并共享区域(SharedMerge Region,SMR)或合并估计区域(MER,Merge Estimation Region)。
当前块的合并候选可以基于编码块来导出。但是,在当前块包括在大小大于当前块的并行合并区域中时,可以将与当前块相同的并行合并区域中包括的候选块设置为不可用作合并候选。
图26是示出与当前块相同的并列合并区域中包括的候选块被设置为不可用作合并候选的示例的图。
在图26的(a)所示的示例中,在对CU5进行编码/解码时,可以将包括与CU5相邻的参考样本的块设置为候选块。此时,可以将在与CU5相同的并行合并区域中包括的候选块X3和X4设置为不可用作CU5的合并候选。另一方面,可以将在与CU5相同的并行合并区域中不包括的候选块X0、X1和X2设置为可用作合并候选。
在图26的(b)所示的示例中,在对CU8进行编码/解码时,可以将包括与CU8相邻的参考样本的块设置为候选块。此时,可以将在与CU8相同的并行合并区域中包括的候选块X6、X7和X8设置为不可用作合并候选。另一方面,可以将在与CU5相同的并行合并区域中不包括的候选块X5和X9设置为可用作合并候选。
并行合并区域可以是正方形或非正方形。可以通过码流用信号发送用于确定并行合并区域的信息。所述信息可以包括示出了指示并行合并区域的形状的信息和指示并行合并区域的大小的信息中的至少一个。当并行合并区域为非正方形时,可以通过码流用信号发送指示并行合并区域的大小的信息、指示并行合并区域的宽度和/或高度的信息或指示并行合并区域的宽度与高度之比的信息中的至少一者。
并行合并区域的大小可以基于通过码流用信号发送的信息、图像分辨率、条带的大小或图块大小中的至少一者来确定。
在对并行合并区域中包括的块执行运动补偿预测时,可以将基于已经执行信息列表过运动补偿预测的块的运动信息导出的帧间合并候选添加到帧间运动。
但是,在将从并行合并区域中包括的块中导出的帧间合并候选添加到帧间运动信息列表的情况下,编码/解码实际上比所述块更慢的并行合并区域内另外块的编码/解码时,会发生使用从所述块中导出的帧间合并候选的情况。即,虽然在对并行合并区域中包括的块进行编码/解码时应当排除块之间的依赖性,但是可能存在使用在并行合并区域中包括的另外块的运动信息来执行运动预测补偿的情况。为了解决所述问题,即使对并行合并区域中包括的块进行的编码/解码完成了,也可以不将编码/解码后的块的运动信息添加到帧间运动信息列表。
可替代地,若对并行合并区域中包括的块执行运动补偿预测,则可以按预定义的顺序将从所述块中导出的帧间合并候选添加到帧间运动信息列表。其中,预定义的顺序可以根据并行合并区域或编码树单元内编码块的扫描顺序来确定。所述扫描顺序可以是光栅扫描、水平扫描、垂直扫描或Z字形扫描中的至少一种。可替代地,预定义的顺序可以基于具有各块的运动信息或相同运动信息的块的数量来确定。
可替代地,可以将包含单向运动信息的帧间合并候选在包含双向运动信息的帧间合并候选之前添加到帧间区域合并行表。与此相反,还可以将包含双向运动信息的帧间合并候选在包含单向运动信息的帧间合并候选之前添加到帧间合并候选列表。
可替代地,可以根据并行合并区域或编码树单元内的高使用频率或低使用频率的顺序来将帧间合并候选添加到帧间运动信息列表。
在当前块包括在并行合并区域且当前块的合并候选列表中包括的合并候选的数量小于最大数量时,可以将帧间运动信息列表中包括的帧间合并候选添加到合并候选列表。此时,可以设置为不将从与当前块相同的并行合并区域中包括的块中导出的帧间合并候选添加到当前块的合并候选列表。
可替代地,在并行合并区域中包括当前块时,可以设置为不使用在帧间运动信息列表中包括的帧间合并候选。即,即使在当前块的合并候选列表中包括的合并候选的数量小于最大数量,也可以不将在帧间运动信息列表中包括的帧间合并候选添加到合并候选列表。
可以配置针对并行合并区域或编码树单元的帧间运动信息列表。所述帧间运动信息列表起到临时存储并行合并区域中包括的块的运动信息的作用。为了区分一般帧间运动信息列表和针对并行合并区域或编码树单元的帧间运动信息列表,将针对并行合并区域或编码树单元的帧间运动信息列表称为时域运动信息列表。另外,将存储在时域运动信息列表中的帧间合并候选称为时域合并候选。
图27是示出时域运动信息列表的图。
可以配置用于编码树单元或并行合并区域的时域运动信息列表。在已经对编码树单元或并行合并区域中包括的当前块执行过运动补偿预测时,可以不将所述块的运动信息添加到帧间预测运动信息列表HmvpCandList。反而,可以将从所述块中导出的时域合并候选添加到时域运动信息列表HmvpMERCandList。即,可以不将添加到时域运动信息列表的时域合并候选添加到帧间运动信息列表。由此,帧间运动信息列表可能不包括基于在编码树单元或并行合并区域中包括的块的运动信息导出的帧间合并候选。
可以将时域运动信息列表可以包括的合并候选的最大数量设置为与帧间运动信息列表可以包括的合并候选的最大数量相同。可替代地,时域运动信息列表中可以包括的合并候选的最大数量可以根据编码树单元或并行合并区域的大小来确定。
可以设置为在编码树单元或并行合并区域中包括的当前块不使用针对所述编码树单元或所述并行合并区域的时域运动信息列表。即,在当前块的合并候选列表中包括的合并候选的数量小于最大值时,将帧间运动信息列表中包括的帧间合并候选添加到合并候选列表,并且可以不将在时域运动信息列表中包括的时域合并候选添加到合并候选列表。由此,可以不将在与当前块相同的编码树单元或并行合并区域中包括的另外块的运动信息用于对当前块的运动补偿预测。
在完成了对编码树单元或并行合并区域中包括的所有块的编码/解码时,可以将帧间运动信息列表和时域运动信息列表合并。
图28是示出将帧间运动信息列表和时域运动信息列表进行合并的示例的图。
在完成了对在编码树单元或并行合并区域中包括的所有块的编码/解码时,如图28的示例所示,可以用时域运动信息列表中包括的时域合并候选来更新帧间运动信息列表。
此时,可以以插入到时域运动信息列表中的顺序(即,以索引值的升序或降序)将在时域运动信息列表中包括的时域合并候选添加到帧间运动信息列表。
作为另一示例,可以以预定义的顺序将在时域运动信息列表中包括的时域合并候选添加到帧间运动信息列表。
其中,预定义的顺序可以根据并行合并区域或编码树单元内编码块的扫描顺序来确定。所述扫描顺序可以是光栅扫描、水平扫描、垂直扫描或Z字形扫描中的至少一种。可替代地,预定义的顺序可以基于具有各块的运动信息或相同运动信息的块的数量来确定。
可替代地,可以在包括双向运动信息的时域合并候选之前将包括单向运动信息的时域合并候选添加到帧间合并列表。另一方面,可以在包括单向运动信息的时域合并候选之前将包括双向运动信息的时域合并候选添加到帧间合并候选列表。
可替代地,可以根据并行合并区域或编码树单元内的高使用频率或低使用频率的顺序来将时域合并候选添加到帧间运动信息列表。
当将时域运动信息列表中包括的时域合并候选添加到帧间运动信息列表时,可以对时域合并候选执行冗余检查。例如,当已在帧间运动信息列表中存储了与在时域运动信息列表中包括的时域合并候选相同的帧间合并候选时,可以不将时域合并候选添加到帧间运动信息列表。此时,可以对在帧间运动信息列表中包括的一些帧间合并候选执行冗余检查。例如,可以对索引大于或等于阈值的帧间预测合并候选执行冗余检查。例如,当时域合并候选与索引大于或等于预定义的值的帧间合并候选相同时,可以不将时域合并候选添加到帧间运动信息列表。
帧内预测是使用当前块周边已编码/解码的重建样本来预测当前块。在这种情况下,当前块的帧内预测可以使用应用环内滤波器之前的重建样本。
帧内预测技术包括基于矩阵(Matrix)的帧内预测及考虑与周边重建样本的方向性的一般帧内预测。可以通过码流用信号发送指示当前块的帧内预测技术的信息。所述信息可以是1比特标志。可替代地,基于当前块的位置、大小、形状或相邻块的帧内预测技术中的至少一个,可以确定当前块的帧内预测技术。例如,当当前块跨过图像边界存在时,当前块设置为不应用基于矩阵的帧内预测。
基于矩阵的帧内预测是基于编码器及解码器中已存储的矩阵与当前块周边的重建样本之间的矩阵乘法来获得当前块的预测块的方法。可以通过码流用信号发送用于指定已存储的多个矩阵中的任一个的信息。解码器可以基于所述信息及当前块的大小来确定用于当前块的帧内预测的矩阵。
一般帧内预测是基于非角度帧内预测模式或角度帧内预测模式来获得与当前块相关的预测块的方法。以下,参考附图更详细地描述基于一般帧内预测执行帧内预测的过程。
图29是本发明实施例的帧内预测方法的流程图。
可以确定当前块的参考样本线(S2901)。参考样本线是指从当前块的上方和/或左侧偏离第K个行中包括的参考样本的集合。可以从当前块周边已编码/解码的重建样本导出参考样本。
可以通过码流用信号发送标识多个参考样本线中的当前块的参考样本线的索引信息。多个参考样本线可以包括在当前块上方和/或左侧第一行/列、第二行/列、第三行/列或第四行/列中的至少一个。表4示出了分配给每个参考样本线的索引。在表4中,假设第一行/列、第二行/列和第四行/列被用作参考样本线候选。
【表4】
索引 参考样本线
0 第一参考样本线
1 第二参考样本线
2 第四参考样本线
还可以基于当前块的位置、大小、形状或相邻块的预测编码模式中的至少一个确定当前块的参考样本线。例如,在当前块与图像、图块、条带或编码树单元的边界相接时,可以将第一参考样本线确定为当前块的参考样本线。
参考样本线可以包括位于当前块上方的上方参考样本及位于当前块左侧的左侧参考样本。可以从当前块周边的重建样本导出上方参考样本及左侧参考样本。所述重建样本可以处于应用环内滤波器之前的状态。
图30是示出各参考样本线包括的参考样本的图。
根据当前块的帧内预测模式,可以利用属于参考样本线的参考样本中的至少一个来获取预测样本。
接着,可以确定当前块的帧内预测模式(S2902)。对于当前块的帧内预测模式而言,可以将非角度帧内预测模式或角度帧内预测模式中的至少一个确定为当前块的帧内预测模式。非角度帧内预测模式包括平面(planer)及DC,并且角度帧内预测模式包括从左下对角线方向至右上对角线方向的33个或65个模式。
图31是示出帧内预测模式的图。
图31的(a)示出了35种帧内预测模式,并且图31的(b)示出了67种帧内预测模式。
可以定义与图31所示的相比更多或更少数量的帧内预测模式。
可以基于与当前块相邻的相邻块的帧内预测模式来设置最可能模式(MPM,MostProbable Mode)。其中,相邻块可以包括与当前块的左侧相邻的左相邻块及与当前块的上方相邻的上相邻块。在当前块的左上样本的坐标为(0,0)时,左相邻块可以包括(-1,0)、(-1,H-1)或(-1,(H-1)/2)位置的样本。其中,H表示当前块的高度。上相邻块可以包括(0,-1)、(W-1,-1)或((W-1)/2,-1)位置的样本。其中,W表示当前块的宽度。
当以一般帧内预测对相邻块进行编码时,可以基于相邻块的帧内预测模式导出MPM。具体地,可以将左相邻块的帧内预测模式设置为变量candIntraPredModeA,将上相邻块的帧内预测模式设置为变量candIntraPredModeB。
此时,当相邻块不可用时(例如,当相邻块尚未编码/解码或者相邻块的位置偏离图像边界时),在相邻块以基于矩阵的帧内预测进行编码的情况下、相邻块以帧间预测进行编码的情况下或相邻块包括在与当前块不同的编码树单元中的情况下,可以将基于相邻块的帧内预测模式导出的变量candIntraPredModeX(其中,X为A或B)设置为默认模式。其中,默认模式可以包括平面模式、DC模式、垂直方向模式或水平方向模式中的至少一种。
可替代地,当以基于矩阵的帧内预测对相邻块进行编码时,可以将与用于指定矩阵中的任一个的索引值对应的帧内预测模式设置为candIntraPredModeX。为此,可以将指示用于指定矩阵的索引值和帧内预测模式的映射关系的查找表预先存储在编码器及解码器中。
可以基于变量candIntraPredModeA及变量candIntraPredModeB来导出MPM。可以在编码器及解码器中预定义MPM列表所包括的MPM的数量。例如,MPM的数量可以是3个、4个、5个或6个。可替代地,可以通过码流用信号发送表示MPM的数量的信息。可替代地,可以基于相邻块的预测编码模式、当前块的大小或形状中的至少一个来确定MPM的数量。
在稍后描述的实施例中,假设MPM的数量为3个,这3个MPM将被称为MPM[0]、MPM[1]及MPM[2]。当MPM的数量多于3个时,MPM可以包括稍后描述的实施例中说明的3个MPM。
当candIntraPredA与candIntraPredB相同且candIntraPredA为平面模式或DC模式时,可以分别将MPM[0]及MPM[1]设置为平面模式及DC模式。可以将MPM[2]设置为垂直帧内预测模式、水平帧内预测模式或对角线帧内预测模式。对角线帧内预测模式可以是左下对角线帧内预测模式、左上帧内预测模式或右上帧内预测模式。
当candIntraPredA与candIntraPredB相同且candIntraPredA为帧内预测模式时,可以将MPM[0]与candIntraPredA设置为相同。可以将MPM[1]及MPM[2]设置为与candIntraPredA类似的帧内预测模式。与candIntraPredA类似的帧内预测模式可以是与candIntraPredA的索引差值为±1或±2的帧内预测模式。可以利用模运算(%)和偏移量来导出与candIntraPredA类似的帧内预测模式。
当candIntraPredA与candIntraPredB不同时,可以将MPM[0]设置为与candIntraPredA相同,MPM[1]设置为与candIntraPredB相同。此时,当candIntraPredA和candIntraPredB均为非角度帧内预测模式时,可以将MPM[2]设置为垂直帧内预测模式、水平帧内预测模式或对角线帧内预测模式。可替代地,当candIntraPredA和candIntraPredB中的至少一个为角度帧内预测模式时,可以将MPM[2]设置为对具有平面、DC、或candIntraPredA或candIntraPredB中的更大值加上或减去偏移值来导出的帧内预测模式。其中,偏移值可以是1或2。
可以生成包括多个MPM的MPM列表,并且可以通过码流用信号发送表示与当前块的帧内预测模式相同的MPM是否包括在MPM列表中的信息。所述信息为1比特标志,可称为MPM标志。当MPM标志指示与当前块相同的MPM包括在MPM列表中时,可以通过码流用信号发送标识MPM之一的索引信息。可以将由所述索引信息指定的MPM设置为当前块的帧内预测模式。当MPM标志指示与当前块相同的MPM不包括在MPM列表中时,可以通过码流用信号发送指示除了MPM以外的其余帧内预测模式中的任一个的残差模式信息。残差模式信息表示当向除了MPM以外的其余帧内预测模式重新分配索引时与当前块的帧内预测模式相对应的索引值。解码器可以按升序排列MPM,并且通过将残差模式信息与MPM进行比较来确定当前块的帧内预测模式。例如,当残差模式信息与MPM相同或者更小时,可以通过将残差模式信息加上1来导出当前块的帧内预测模式。
代替将默认模式设置为MPM,可以通过码流用信号发送表示当前块的帧内预测模式是否为默认模式的信息。所述信息为1比特标志,并且所述标志可称为默认模式标志。可仅当MPM标志指示与当前块相同的MPM包括在MPM列表中时才用信号发送默认模式标志。如上所述,默认模式可以包括平面、DC、垂直方向模式或水平方向模式中的至少一个。例如,当平面设置为默认模式时,默认模式标志可指示当前块的帧内预测模式是否为平面。当默认模式标志指示当前块的帧内预测模式并不是默认模式时,可以将借助索引信息指示的MPM之一设置为当前块的帧内预测模式。
当将多个帧内预测模式设置为默认模式时,可以进一步用信号发送指示默认模式中的任一个的索引信息。可以将当前块的帧内预测模式设置为所述索引信息所指的默认模式。
当当前块的参考样本线的索引不是0时,设置为不使用默认模式。由此,当参考样本线的索引不是0时,不用信号发送默认模式标志,并且可以将所述默认模式标志的值设置为预定义的值(即,假)。
在确定当前块的帧内预测模式,可以基于所确定的帧内预测模式来获得当前块的预测样本(S2903)。
当选择DC模式时,可以基于参考样本的平均值生成与当前块相关的预测样本。具体地,可以基于参考样本的平均值生成预测块内整体样本的值。可以使用位于当前块上方的上方参考样本及位于当前块左侧的左侧参考样本中的至少一个来导出平均值。
根据当前块的形状,导出平均值时使用的参考样本的数量或范围会不同。例如,当当前块为宽度大于高度的非正方形块时,可以仅使用上方参考样本来计算平均值。另一方面,当当前块为宽度小于高度的非正方形块时,可以仅使用左侧参考样本来计算平均值。即,当前块的宽度及高度不同时,可以仅使用与长度更长一侧相邻的参考样本来计算平均值。可替代地,可以基于当前块的宽度和高度比率来确定是否仅使用上方参考样本来计算平均值或者仅使用左侧参考样本来计算平均值。
当选择平面模式时,可使用水平方向预测样本和垂直方向预测样本来获得预测样本。其中,基于位于与预测样本相同的水平线上的左侧参考样本及右侧参考样本获得水平方向预测样本,并且基于位于与预测样本相同的垂直线上的上方参考样本及下方参考样本获得垂直方向预测样本。其中,可以通过复制与当前块的右上角相邻的参考样本而生成右侧参考样本,可以通过复制与当前块的左下角相邻的参考样本而生成下方参考样本。可以基于左侧参考样本及右侧参考样本的加权和运算获得水平方向预测样本,并且可以基于上方参考样本及下方参考样本的加权和运算获得垂直方向预测样本。在这种情况下,可以根据预测样本的位置来确定赋予于各参考样本的加权值。可以基于水平方向预测样本及垂直方向预测样本的平均运算或加权和运算获得预测样本。当执行加权和运算时,可以基于预测样本的位置来确定赋予于水平方向预测样本及垂直方向预测样本的加权值。
当选择角度预测模式时,可以确定表示所选的角度预测模式的预测方向(或预测角度)的参数。下表5示出了每种帧内预测模式的帧内预测参数intraPredAng。
【表5】
Figure BDA0003037790240000201
Figure BDA0003037790240000211
表5示出了当定义了35个帧内预测模式时具有2至34中任一个的索引的每个帧内预测模式的帧内方向参数。当定义了超过33种角度帧内预测模式时,表5进一步细分为设置每个角度帧内预测模式的帧内方向参数.
在将当前块的上方参考样本及左侧参考样本排列成一列之后,可以基于帧内方向参数的值获得预测样本。在这种情况下,当帧内方向参数的值为负数时,可以将左侧参考样本和上方参考样本排列成一列。
图32和图33是示出将参考样本排成一行的一维排列的示例的图。
图32示出了在垂直方向上排列参考样本的垂直方向一维阵列的示例,并且图33示出了在水平方向上排列参考样本的水平方向一维阵列的示例。将在定义35个帧内预测模式的假设下描述图32和33的实施例。
当帧内预测模式索引为11至18中的任一个时,可以应用以逆时针方向旋转上方参考样本的水平方向一维排列,当帧内预测模式索引为19至25中的任一个时,可以应用以顺时针方向旋转左侧参考样本的垂直方向一维排列。将参考样本排列成一列时,可以考虑帧内预测模式角度。
基于帧内方向参数可以确定参考样本确定参数。参考样本确定参数可以包括用于指定参考样本的参考样本索引及用于确定应用于参考样本的加权值的加权值参数。
参考样本索引iIdx和权重参数ifact可以分别通过以下等式2和等式3获得。
【等式2】
iIdx=(y+1)*Pang/32
【等式3】
ifact=[(y+1)*Pang]&31
在等式2和3中,Pang表示帧内方向参数。根据参考样本索引iIdx指定的参考样本相当于整数像素(Integer pel)。
为了导出预测样本,可以指定一个以上的参考样本。具体地,考虑预测模式的斜率,可以指定导出预测样本时使用的参考样本的位置。例如,使用参考样本索引iIdx,可以指定导出预测样本时使用的参考样本。
在这种情况下,当帧内预测模式的斜率不由一个参考样本表示时,可以通过对多个参考样本进行插值来生成预测样本。例如,当帧内预测模式的斜率为预测样本与第一参考样本之间的斜率及预测样本与第二参考样本之间的斜率之间的值时,可以对第一参考样本及第二参考样本进行插值来获得预测样本。即,当跟随帧内预测角度的角线(AngularLine)不经过位于整数像素的参考样本时,可以对与所述角线经过的位置的左右或上下相邻的参考样本进行插值来获得预测样本。
以下等式4示出了基于参考样本获得预测样本的示例。
【等式4】
P(x,y)=(32-ifact)/32)*Ref_1D(x+iIdx+1)+(ifact/32)*Ref_1D(x+iIdx+2)
在等式4中,P表示预测样本,并且Ref_1D表示一维排列的参考样本中的任何一个。在这种情况下,可以根据预测样本的位置(x,y)及参考样本索引iIdx确定参考样本的位置。
当帧内预测模式的斜率可以表示为一个参考样本时,加权值参数ifact可以设置为0。因此,等式4可以简化为如以下等式5所示。
【等式5】
P(x,y)=Ref_1D(x+iIdx+1)
还可以基于多个帧内预测模式对当前块执行帧内预测。例如,可以针对不同预测样本导出帧内预测模式,并且可以基于分配到各个预测样本的帧内预测模式来导出预测样本。
可替代地,可以针对不同区域导出帧内预测模式,并且可以基于分配到各个区域的帧内预测模式对各区域执行帧内预测。其中,所述区域可以包括至少一个样本。可以基于当前块的大小、形状或帧内预测模式中的至少一个自适应地确定所述区域的大小或形状中的至少一个。可替代地,在编码器及解码器中,有可能预定义区域的大小或形状中的至少一个,而与当前块的大小或形状无关。
可替代地,可以分别基于多个帧内预测执行帧内预测,并且可以基于通过多次的帧内预测获得的多个预测样本的平均运算或加权和运算导出最终预测样本。例如,可以基于第一帧内预测模式执行帧内预测来获得第一预测样本,并且可以基于第二帧内预测模式执行帧内预测来获得第二预测样本。之后,基于第一预测样本及第二预测样本之间的平均运算或加权和运算,可获得的最终预测样本。在这种情况下,可以考虑第一帧内预测模式是否为非角度/角度预测模式、第二帧内预测模式是否为非角度/角度预测模式或相邻块的帧内预测模式中的至少一个来确定分别分配于第一预测样本及第二预测样本的加权值。
多个帧内预测模式可以是非角度帧内预测模式和角度预测模式的组合、角度预测模式的组合或非角度预测模式的组合。
图34是示出在角度帧内预测模式与平行于x轴的直线之间形成的角度的图。
如图34所示的示例中,角度预测模式可以存在于左下对角线方向与右上对角线方向之间。当被描述为x轴和角度预测模式形成的角度时,角度预测模式可存在于45度(左下对角线方向)至-135度(右上对角线方向)之间。
在当前块是非正方形形状的情况下,会发生如下情况,根据当前块的帧内预测模式,使用位于跟随帧内预测角度的角线上的参考样本中更远离预测样本的参考样本而不是更接近预测样本的参考样本来导出预测样本。
图35是示出在当前块为非正方形状时获得预测样本的示例的图。
例如,如在图35的(a)所示的示例中,假设当前块是宽度大于高度的非正方形形状,并且当前块的帧内预测模式是角度在0度至45度之间的角度帧内预测模式。在这种情况下,在导出当前块的右侧列附近的预测样本A时,会发生使用位于所述角度的角度模式上的参考样本中远离所述预测样本的左侧参考样本L来代替接近所述预测样本的上方参考样本T的情况。
作为另一示例,如在图35的(b)所示的示例中,假设当前块是高度大于宽度的非正方形形状,并且当前块的帧内预测模式是角度在-90度至-135度之间的角度帧内预测模式。在上述情况下,在导出当前块的下方行附近的预测样本A时,会发生使用位于所述角度的角度模式上的参考样本中远离所述预测样本的上方参考样本T来代替接近所述预测样本的左侧参考样本L的情况。
为了解除如上问题,当当前块为非正方形时,可以将当前块的帧内预测模式替换为反方向的帧内预测模式。因此,对于非正方形形状的块,可以使用具有比图31所示的角度预测模式的角度更大或更小的角度的角度预测模式。这种角度帧内预测模式可被定义为广角帧内预测模式。广角帧内预测模式表示不落入45度至-135度范围内的角度帧内预测模式。
图36是示出广角帧内预测模式的图。
在图36所示的示例中,索引为-1至-14的帧内预测模式和索引为67至80的帧内预测模式表示广角帧内预测模式。
尽管在图36中示出了具有大于45度的角度的14个广角帧内预测模式(-1至-14)和具有小于-135度的角度的14个广角帧内预测模式(67至80),但可以定义更多或更少数量的广角帧内预测模式。
当使用广角帧内预测模式时,上方参考样本的长度设置为2W+1,左侧参考样本的长度设置为2H+1。
当使用广角帧内预测模式时,可以使用参考样本T预测图35的(a)所示的样本A,并且可以使用参考样本L预测图35的(b)所示的样本A。
通过将现有帧内预测模式和N个广角帧内预测模式相加,可以使用总共67+N个帧内预测模式。例如,表6示出了当定义了20个广角帧内预测模式时帧内预测模式的帧内方向参数。
【表6】
Figure BDA0003037790240000221
Figure BDA0003037790240000231
帧内方向参数可以基于当前块的大小、形状或参考样本线中的至少一个来不同地设置。例如,对于当前块为正方形和当前块为非正方形的情况而言,有关指定帧内预测模式的帧内方向参数可以不同。例如,帧内预测模式15的帧内方向参数intraPredAngle在当前块为正方形的情况下可以具有比在当前块为非正方形的情况下更大的值。
可替代地,帧内预测模式75的帧内方向参数intraPredAngle在当前块的参考样本线的索引为1以上时可以具有比起当前块的参考样本线的索引为0的情况更大的值。
在当前块是非正方形的并且在步骤S2902中获取的当前块的帧内预测模式落入变换范围内时,可以将当前块的帧内预测模式变换为广角帧内预测模式。可以基于当前块的大小、形状或比率中的至少一个来确定所述变换范围。其中,所述比率可以表示当前块的宽度及高度之间的比率。
当当前块为宽度大于高度的非正方形时,可以将变换范围设置为右上对角线方向的帧内预测模式索引(例如,66)至(右上对角线方向的帧内预测模式的索引-N)。其中,N可以基于当前块的比率来确定。当当前块的帧内预测模式落入变换范围内时,可以将所述帧内预测模式变换为广角帧内预测模式。可以从所述帧内预测模式减去预定义的值来执行所述变换,所述预定义的值可以是除了广角帧内预测模式之外的帧内预测模式的总数量(例如,67)。
根据所述实施例,可以将第66个至第53个之间的帧内预测模式分别变换为第-1个至第-14个之间的广角帧内预测模式。
当当前块为高度大于宽度的非正方形时,可以将变换范围设置为从左下对角线方向的帧内预测模式索引(例如,2)至(左下对角线方向的帧内预测模式的索引+M)。其中,M可以基于当前块的比率来确定。当当前块的帧内预测模式落入变换范围内时,可以将所述帧内预测模式变换为广角帧内预测模式。可以在所述帧内预测模式加上预定义的值来执行所述变换,预定义的值可以是除了广角帧内预测模式之外的角度帧内预测模式的总数量(例如,65)。
根据所述实施例,将第2个至第15个之间的帧内预测模式分别变换为第67个至第80个之间的广角帧内预测模式。
以下,将落入变换范围内的帧内预测模式称为广角帧内替换预测模式。
变换范围可以基于当前块的比率来确定。例如,表7和表8各自示出当定义了除广角帧内预测模式之外的35个帧内预测模式和67个帧内预测模式时的变换范围。
【表7】
条件 替换帧内预测模式
W/H=2 模式2,3,4
W/H>2 模式2,3,4,5,6
W/H=1
H/W=1/2 模式32,33,34
H/W<1/2 模式30,31,32,33,34
【表8】
条件 替换帧内预测模式
W/H=2 模式2,3,4,5,6,7
W/H>2 模式2,3,4,5,6,7,8,9,10,11
W/H=1
H/W=1/2 模式61,62,63,64,65,66
H/W<1/2 模式57,58,59,60,61,62,63,64,65,66
如表7和表8中所示的示例,落入变换范围中的广角帧内替换预测模式的数量可以根据当前块的比率而不同。
随着除现有帧内预测模式之外还使用广角帧内预测模式,用于对广角帧内预测模式进行编码所需的资源会增加,因此可能降低编码效率。由此,代替直接对广角帧内预测模式进行编码,而是对与广角帧内预测模式相关的替换帧内预测模式进行编码,从而可提高编码效率。
例如,当使用第67个广角帧内预测模式对当前块进行编码时,可以将作为第67个广角替换帧内预测模式的编号2编码为当前块的帧内预测模式。并且,当使用第-1个广角帧内预测模式对当前块进行编码时,可以将作为第-1个广角替换帧内预测模式的编号66编码为当前块的帧内预测模式。
解码器可以对当前块的帧内预测模式进行解码,并确定解码的帧内预测模式是否包括在变换范围中。解码的帧内预测模式为广角替换帧内预测模式时,可以将帧内预测模式变换为广角帧内预测模式。
可替代地,当以广角帧内预测模式对当前块进行编码时,还可直接对广角帧内预测模式进行编码。
帧内预测模式的编码可以基于所述MPM列表实现。具体地,以广角帧内预测模式对相邻块进行编码时,可以基于与广角帧内预测模式相对应的广角替换帧内预测模式来设置MPM。例如,当相邻块以广角帧内预测模式进行编码时,可以将变量candIntraPredX(X为A或B)设置为广角代替帧内预测模式。
若通过帧内预测执行结果来生成预测块,则可以基于预测块中包括的每个预测样本的位置来更新预测样本。如上所述的更新方法可以被称为基于样本位置的帧内加权预测方法(或位置相关的预测组合(Position Dependent Prediction Combination,PDPC))。
可以考虑当前块的帧内预测模式、当前块的参考样本线、当前块的大小或颜色分量来确定是否要使用PDPC。例如,当前块的帧内预测模式为平面模式、DC模式、垂直方向模式、水平方向模式、索引值比垂直方向更小的模式或索引值比水平方向更大的模式中的至少一个时,可以使用PDPC。可替代地,可以仅在当前块的宽度或高度中的至少一个大于4时,才使用PDPC。可替代地,可以仅在当前块的参考图像线的索引为0时,才使用PDPC。可替代地,可以仅在当前块的参考图像线的索引大于或等于预定义的值时,才使用PDPC。可替代地,可以仅针对亮度分量才使用PDPC。可替代地,可以根据是否满足所述列举的条件中的两个以上,确定是否使用PDPC。
作为另一例,可以通过码流用信号发送指示是否应用PDPC的信息。
若通过帧内预测样本获取预测样本,则基于获取的预测样本的位置,可以确定用于校正所述预测样本的参考样本。为了便于说明,在后续的实施例中,将用于校正预测样本的参考样本称为PDPC参考样本。而且,将通过帧内预测获取的预测样本称为第一预测样本,将校正第一预测样本而获取的预测样本称为第二预测样本。
图37是示出应用PDPC的图。
利用至少一个PDPC参考样本,可以校正第一预测样本。PDPC参考样本可以包括与当前块的左上角相邻的参考样本、位于当前块上方的上方参考样本或位于当前块左侧的左侧参考样本中的至少一个。
可以将属于当前块的参考样本线的参考样本中的至少一个设置为PDPC参考样本。可替代地,与当前块的参考样本线无关的是,可以将将属于索引为0的参考样本线的参考样本中的至少一个设置为PDPC参考样本。例如,即使利用索引为1或索引为2的参考样本线中包括的参考样本来获取第一预测样本,也可以利用索引为0的参考样本线中包括的参考样本来获取第二预测样本。
可以考虑当前块的帧内预测模式、当前块的大小、当前块的形状或第一预测样本的位置中的至少一个来确定用于校正第一预测样本的PDPC参考样本的数量或位置。
例如,在当前块的帧内预测模式为平面模式或DC模式时,可以利用上方参考样本及左侧参考样本来获取第二预测样本。此时,上方参考样本可以是与第一预测样本垂直的参考样本(例如,x坐标相同的参考样本),左侧参考样本可以是与第一预测样本水平的参考样本(例如,y坐标相同的参考样本)。
在当前块的帧内预测模式为水平帧内预测模式时,可以利用上方参考样本获取第二预测样本。此时,上方参考样本可以是与第一预测样本垂直的参考样本。
在当前块的帧内预测模式为垂直帧内预测模式时,可以利用左侧参考样本获取第二预测样本。此时,左侧参考样本可以是与第一预测样本水平的参考样本。
在当前块的帧内预测模式为左下对角线帧内预测模式或右上对角线帧内预测模式时,可以基于左上参考样本、上方参考样本和左侧参考样本来获取第二预测样本。左上参考样本可以是与当前块的左上角相邻的参考样本(例如,(-1,-1)位置的参考样本)。上方参考样本可以是位于第一预测样本的右上对角线方向的参考样本,左侧参考样本可以是位于第一预测样本的左下对角线方向的参考样本。
总之,当第一预测样本的位置为(x,y)时,可以将R(-1,-1)设置为左上参考样本,R(x+y+1,-1)或R(x,-1)设置为上方参考样本。另外,可以将R(-1,x+y+1)或R(-1,y)设置为左侧参考样本。
作为另一例,可以考虑当前块的形状或是否应用广角帧内模式中的至少一者,确定左侧参考样本或上方参考样本的位置。
具体地,在当前块的帧内预测模式为广角帧内预测模式时,可以将与位于第一预测样本的对角线方向的参考样本中相隔一定偏移值的参考样本设置为PDPC参考样本。例如,可以将上方参考样本R(x+y+k+1,-1)和左侧参考样本R(-1,x+y-k+1)设置为PDPC参考样本。
此时,可以基于广角帧内预测模式来确定偏移值k。等式6和等式7示出了基于广角帧内预测模式导出偏移值的示例。
【等式6】
k=CurrIntraMode-66
if(CurrIntraMode>66)
【等式7】
k=-CurrIntraMode
if(CurrIntraMode<0)
可以基于第一预测样本与PDPC参考样本之间的加权和运算来确定第二预测样本。例如,可以基于以下的等式8来获得第二预测样本。
【等式8】
pred(x,y)=(xL*RL+wT*RT-wTL*RTL+(64-wL-wT+wTL)*pred(x,y)+32)>>6
在等式8中,RL表示左侧参考样本,RT表示上方参考样本,RTL代表左上参考样本。pred(x,y)表示(x,y)位置的预测样本。wL表示分配给左侧参考样本的加权值,wT表示分配给上方参考样本的加权值,wTL表示分配给左上参考样本的加权值。分配给第一预测样本的加权值可以通过从最大值中减去分配给参考样本的加权值来导出。为了便于说明,将分配给PDPC参考样本的加权值称为PDPC加权值。
可以基于当前块的帧内预测模式或第一预测样本的位置中的至少一个来确定分配给各参考样本的加权值。
例如,wL、wT或wTL中的至少一个与预测样本的x轴坐标值或y轴坐标值中的至少一个可以处于成正比例或反比例的关系。可替代地,wL、wT或wTL中的至少一个与当前块的宽度或高度中的至少一个可以处于成正比例或反比例的关系。
在当前块的帧内预测模式为DC模式时,PDPC加权值可以被确定为如等式9所示。
【等式9】
wT=32>>((y<<1)>>shift)
wL=32>>((x<<1)>>shift)
wTL=(wL>>4)+(wT>>4)
在等式9中,x和y表示第一预测样本的位置。
在等式9中,可以基于当前块的宽度或高度来导出移位操作中使用的变量shift。例如,可以基于以下等式10或等式11来导出变量shift。
【等式10】
shift=(log2(width)-2+log2(height)-2+2)>>2
【等式11】
shift=((Log2(nTbW)+Log2(nTbH)-2)>>2)
可替代地,还可以考虑当前块的帧内方向参数来导出变量shift。
可以根据当前块的帧内预测模式不同地确定用于导出变量shift的参数的数量或种类。例如,在当前块的帧内预测模式为平面模式、DC模式、垂直方向模式或水平方向模式时,如等式10或等式11所示,可以使用当前块的宽度和高度来导出变量shift。在当前块的帧内预测模式为具有比起垂直方向的帧内预测模式更大的索引的帧内预测模式时,可以利用当前块的高度和帧内方向参数来导出变量shift。在当前块的帧内预测模式为具有比起水平方向的帧内预测模式更小的索引的帧内预测模式时,可以利用当前块的宽度和帧内方向参数来导出变量shift。
在当前块的帧内预测模式为平面模式时,可以将wTL的值设置为0。可以基于以下的等式12导出wL及wT。
【等式12】
wT[y]=31>>((y<<1)>>nScale)
wL[x]=32>>((x<<1)>>nScale)
在当前块的帧内预测模式为水平帧内预测模式时,可以将wT可以设置为0,并且可以将wTL和wL设置为相同。另一方面,在当前块的帧内预测模式为垂直帧内预测模式时,可以将wL设置为0,并且可以将wTL和wT设置为相同。
在当前块的帧内预测模式为指向右上方向的、索引值大于垂直方向的帧内预测模式的帧内预测模式时,可以如以下等式13所示地那样导出PDPC加权值。
【等式13】
wT=16>>((y<<1)>>shift)
wL=16>>((x<<1)>>shift)
wTL=0
另一方面,在当前块的帧内预测模式为指向左下方向的、索引值小于水平方向的帧内预测模式的帧内预测模式时,可以如以下等式14所示地那样导出PDPC加权值。
【等式14】
wT16>>((y<<1)>>shift)
wL=16>>(x<<1)>>shift)
wTL=0
如上述的实施例,可以基于预测样本的位置x及y来确定PDPC加权值。
作为另一例,还可以以子块为单位确定分配给每个PDPC参考样本的加权值。子块中包括的预测样本可以共享相同的PDPC加权值。
可以在编码器及解码器中预定义作为用于确定加权值的基本单位的子块的大小。例如,可以针对大小为2×2或4×4的各个子块确定加权值。
可替代地,可以根据当前块的大小或形状来确定子块的大小、形状或数量。例如,不论编码块的大小如何,都可以将编码块划分为4个子块。可替代地,根据编码块的大小,可以将编码块划分为4个或16个子块。
可替代地,还可以基于当前块的帧内预测模式来确定子块的大小、形状或数量。例如,在当前块的帧内预测模式为水平方向模式时,可以将N个列(或N个行)设置为一个子块,相反,当前块的帧内预测模式为垂直方向模式时,可以将N个行(或N个列)设置为一个子块。
等式15至17示出了确定2×2大小的子块的PDPC加权值的示例。等式15示出了当前块的帧内预测模式为DC模式的情况下的示例。
【等式15】
wT=32>>(((y<<log2K)>>log2K)<<1)>>shift)
wL=32>>(((x<<log2K))>>log2K))<<1)>>shift)
wTL=(wL>>4)+(wT>>4)
在等式15中,K可以是基于子块的大小或帧内预测模式来确定的值。
等式16示出了当前块的帧内预测模式为指向右上方向的、索引值大于垂直方向的帧内预测模式的帧内预测模式的示例。
【等式16】
wT=16>>(((y<<log2K))>>log2K))<<1)>>shift)
wL=16>>(((x<<log2K))>>log2K))<<1)>>shift)
wTL=0
等式17示出了当前块的帧内预测模式为指向左下方向的、索引值小于水平方向的帧内预测模式的帧内预测模式的示例。
【等式17】
wT=16>>(((y<<log2K))>>log2K))<<1)>>shift)
wL=16>>(((x<<log2K))>>log2K))<<1)>>shift)
wTL=0
在等式15至17中,x和y表示子块内参考样本的位置。参考样本可以是位于子块的左上方的样本、位于子块的中心的样本或者位于子块的右下方的样本中的任一个。
等式18至20示出了确定4×4大小的子块的PDPC加权值的示例。等式18示出了当前块的帧内预测模式为DC模式的情况下的示例。
【等式18】
wT=32>>(((y<<2)>>2)<<1)>>shift)
wL=32>>(((x<<2)>>2)<<1)>>shift)
wTL=(wL>>4)+(wT>>4)
等式19示出了当前块的帧内预测模式为指向右上方向的、索引值大于垂直方向的帧内预测模式的帧内预测模式的示例。
【等式19】
wT=16>>(((y<<2)>>2)<<1)>>shift)
wL=16>>(((x<<2)>>2)<<1)>>shift)
wTL=0
等式20示出了当前块的帧内预测模式为指向左下方向的、索引值小于水平方向的帧内预测模式的帧内预测模式的示例。
【等式20】
wT=16>>(((y<<2)>>2)<<1)>>shift)
wL=16>>(((x<<2)>>2)<<1)>>shift)
wTL=0
在上述实施例中说明了考虑第一预测样本或子块中包括的预测样本的位置来确定PDPC加权值。还可以进一步考虑当前块的形状来确定PDPC加权值。
例如,对于DC模式而言,根据当前块是宽度大于高度的非正方形还是高度大于宽度的非正方形,PDPC加权值的导出方法会不同。
等式21示出了在当前块为宽度大于高度的非正方形的情况下导出PDPC加权值的示例,并且等式22示出了在当前块为高度大于宽度的非正方形的情况下导出PDPC加权值的示例。
【等式21】
wT=32>>((y<<1)>>shift)
wL=32>>(x>>shift)
wTL=(wL>>4)+(wT>>4)
【等式22】
wT>>(y>>shift)
wL=32>>((x<<1)>>shift)
wTL=(xL>>4)+(wT>>4)
在当前块为非正方形时,可以利用广角帧内预测模式预测当前块。以这种方式,在应用广角帧内预测模式时,也可以应用PDPC来更新第一预测样本。
在当前块应用广角帧内预测时,可以考虑编码块的形状来确定PDPC加权值。
例如,在当前块为宽度大于高度的非正方形时,根据第一预测样本的位置,会发生相比于位于第一预测样本的左下方的左侧参考样本,位于第一预测样本的右上方的上方参考样本更接近于第一预测样本的情况。由此,在校正第一预测样本时,可以将应用于上方参考样本的加权值设置为具有比应用于左侧参考样本的加权值更大的值。
另一方面,在当前块为高度大于宽度的非正方形时,根据第一预测样本的位置,会发生相比于位于第一预测样本的右上方的上方参考样本,位于第一预测样本的左下方的左侧参考样本更接近于第一预测样本的情况。由此,在校正第一预测样本时,可以将应用于左侧参考样本的加权值设置为具有比应用于上方参考样本的加权值更大的值。
等式23示出了在当前块的帧内预测模式为索引大于66的广角帧内预测模式的情况下导出PDPC加权值的示例。
【等式23】
wT=16>>(y>>shift)
wT=16>>((x<<1)>>shift)
wTL=0
等式24示出了在当前块的帧内预测模式为索引小于0的广角帧内预测模式的情况下导出PDPC加权值的示例。
【等式24】
wT=16>>((y<<1)>>shift)
wL=16>>(x>>shift)
wTL=0
还可以基于当前块的比率来确定PDPC加权值。当前块的比率示出了当前块的宽度与高度之比,并且可以被定义为如以下等式25所示。
【等式25】
whRatio=CUwidth/CUheight
可以根据当前块的帧内预测模式可变地确定导出PDPC加权值的方法。
例如,等式26和等式27示出了在当前块的帧内预测模式为DC模式的情况下导出PDPC加权值的示例。具体地,等式26是当前块为宽度大于高度的非正方形的情况下的示例,并且等式27是当前块为高度大于宽度的非正方形的情况下的示例。
【等式26】
wT=32>>((y<<1)>>shift)
wL=32>>(((x<<1)>>whRatio)>>shift)
wTL=(wL>>4)+(wT>>4)
【等式27】
wT=32>>(((y<<1)>>1/whRatio)>>shift)
wT=32>>((x<<1)>>shift)
wTL=(wL>>4)+(wT>>4)
等式28示出了在当前块的帧内预测模式为索引大于66的广角帧内预测模式的情况下导出PDPC加权值的示例。
【等式28】
wT=16>>(((y<<1)>>1/whRatio)>>shift)
wL=16>>((x<<1)>>shift)
wTL=0
等式29示出了在当前块的帧内预测模式为索引小于0的广角帧内预测模式的情况下导出PDPC加权值的示例。
【等式29】
wT=16>>((y<<1)>>shift)
wL=16>>(((x<<1)>>whRatio)>>shift
wTL=0
可以通过将原始图像与预测图像相减来导出所导出的残差图像。在这种情况下,将残差图像变更为频域时,即使移除频率分量中的高频率分量,也不会大幅降低视频的主观画质。由此,若将高频率分量的值变小或者将高频率分量的值设置为0,则具有在不引起明显视觉失真的情况下提高压缩效率的效果。反映以上特性,可以对当前块进行变换以将残差图像分解为2维频率分量。所述变换可以利用离散余弦变换(DCT,Discrete CosineTransform)或离散正弦变换(DST,Discrete Sine Tranform)等变换方法来执行。
DCT使用余弦变换将残差图像分解(或变换)为2维频率分量,而DST使用正弦变换将残差图像分解(或变换)为2维频率分量。作为残差图像的变换结果,频率分量可表示为基本图像。例如,对大小为N×N的块执行DCT变换时,可获得N2个基本图案分量。可以通过变换获得大小为N×N的块中包括的各个基本图案分量的大小。根据使用的变换技术,可以将基本图案分量的大小称为DCT系数或DST系数。
变换技术DCT主要用于对非0的低频率分量分布较多的图像进行变换。变换技术DST主要用于高频率分量分布较多的图像。
还可以使用DCT或DST以外的变换技术来变换残差图像。
在下文中,将残差图像变换为二维频率分量的过程称为二维图像变换。而且,将通过变换结果获得的基本图案分量的大小称为变换系数。例如,变换系数可指DCT系数或DST系数。当同时应用稍后要描述的主变换及二次变换时,变换系数可以表示通过二次变换的结果生成的基本图案分量的大小。
可以以块为单位确定变换技术。可以基于当前块的预测编码模式、当前块的大小或当前块的形状中的至少一个来确定变换技术。例如,当以帧内预测模式对当前块进行编码并且当前块的大小小于N×N时,可以使用变换技术DST执行变换。另一方面,在不能满足所述条件时,可以使用变换技术DCT执行变换。
在残差图像中,还可以对一部分块不进行2维图像变换。不执行2维图像变换可称为变换跳过(Transform Skip)。当应用变换跳过时,可以将量化应用于未执行变换的残差值。
使用DCT或DST变换当前块之后,可以再次对变换的当前块进行变换。在这种情况下,基于DCT或DST的变换可定义为主变换,再次对应用主变换的块进行变换的过程可称为二次变换。
主变换可以使用多个变换核候选中的任一个来执行。例如,可以使用DCT2、DCT8或DCT7中的任一个来执行主变换。
针对水平方向及垂直方向还可以使用不同的变换核。还可以通过码流用信号发送表示水平方向的变换核及垂直方向的变换核的组合的信息。
主变换及二次变换的执行单元会不同。例如,可以对8×8块执行主变换,并且可以对变换的8×8块中的大小为4×4的子块执行二次变换。在这种情况下,还可以将不执行二次变换的剩余区域的变换系数设置为0。
可替代地,可以对4×4块执行主变换,并且可以对包括变换的4×4块的大小为8×8的区域可执行二次变换。
可以通过码流用信号发送表示是否执行二次变换的信息。
可替代地,可以基于水平方向变换核与垂直方向变换核是否相同来确定是否执行二次变换。例如,仅在水平方向变换核与垂直方向变换核相同时,才可以执行二次变换。可替代地,仅在水平方向变换核与垂直方向变换核不同时,才可以执行二次变换。
可替代地,仅在水平方向的变换及垂直方向的变换利用预定义的变换核时,才可以允许二次变换。例如,在水平方向的变换及垂直方向的变换使用DCT2变换核时,可以允许二次变换。
可替代地,可以基于当前块的非零变换系数的数量来确定是否执行二次变换。例如,在当前块的非零变换系数小于或等于阈值时,可以设置为不使用二次变换,并且在当前块的非零变换系数大于阈值时,可以设置为使用二次变换。还可以设置为仅在当前块以帧内预测进行编码时,才使用二次变换。
基于当前块的形状,可以确定要执行二次变换的子块的大小或形状。
图38和图39是示出要执行二次变换的子块的图。
在当前块为正方形时,执行主变换之后,可以对当前块左上方的大小为N×N的子块执行二次变换。例如,在当前块为大小为8×8的编码块时,对当前块执行主变换之后,可以对当前块的左上方大小为4×4的子块执行二次变换(参照图38)。
在当前块为宽度大于高度4倍以上的非正方形时,执行主变换之后,可以对当前块左上方的大小为(kN)×(4kN)的子块执行二次变换。例如,当当前块是16×4大小的非正方形形状时,可以在对当前块执行主变换后对当前块左上角的2×8大小的子块上执行二次变换(参加图39的(a))。
在当前块为高度大于宽度4倍以上的非正方形时,执行主变换之后,可以对当前块左上方的大小为(4kN)×(kN)的子块执行二次变换。例如,当当前块是16×4大小的非正方形形状时,可以在对当前块执行主变换后对当前块左上角的2×8大小的子块上执行二次变换(参加图39的(b))。
在解码器中可执行二次变换的逆变换(第二逆变换),并且可以对其结果执行主变换的逆变换(第一逆变换)。作为第二逆变换及第一逆变换的执行结果,可以获得当前块的残差信号。
量化用于减少块的能量,并且量化过程包括将变换系数除以特定常数的过程。所述常数可由量化参数来导出,并且量化参数可定义为1至63之间的值。
若在编码器中执行变换及量化,则解码器可以通过逆量化及逆变换来获得残差块。在解码器中将预测块和残差块加起来,可以获得当前块的重建块。
可以通过码流用信号发送指示当前块的变换类型的信息。所述信息可以是指示水平方向的变换类型及垂直方向的变换类型的组合中的一个的索引信息tu_mts_idx。
可以基于根据索引信息tu_mts_idx指定的变换类型候选来确定垂直方向的变换核及水平方向的变换核。表9和10示出了根据tu_mts_idx的变换类型组合。
【表9】
Figure BDA0003037790240000301
【表10】
Figure BDA0003037790240000302
可以将变换类型确定为DCT2、DST7、DCT8或跳过变换中的任一个。可替代地,除了变换跳过之外,还可以仅利用变换核来构成变换类型组合候选。
在使用表9的情况下,当tu_mts_idx为0时,可以在水平方向和垂直方向上应用变换跳过。若tu_mts_idx为1,则可以在水平方向及垂直方向应用DCT2。若tu_mts_idx为3,则可以在水平方向应用DCT8,在垂直方向应用DCT7。
在使用表10的情况下,当tu_mts_idx为0时,可以在水平方向和垂直方向上应用DCT2。若tu_mts_idx为1,则可以在水平方向和垂直方向应用变换跳过。若tu_mts_idx为3,则可以在水平方向应用DCT8,在垂直方向应用DCT7。
可以基于当前块的大小、形状或非零系数的数量中的至少一个来确定是否编码索引信息。例如,非零系数的数等于或者小于阈值时,不用信号发送索引信息,并且可以将默认变换类型应用于当前块。其中,默认变换类型可以是DST7。可替代地,根据当前块的大小、形状或帧内预测模式,默认模式会不同。
可以基于当前块的大小或形状来确定阈值。例如,在当前块的大小小于或等于32×32时,可以将阈值设置为2,在当前块大于32×32时(例如,当前块为大小为32×64或64×32的编码块时),可以将阈值设置为4。
多个查找表可以预先存储在编码器/解码器中。在多个查找表中,分配给变换类型组合候选的索引值、变换类型组合候选的种类或变换类型组合候选的数量中的至少一个可以不同。
可以基于当前块的大小、形状、预测编码模式、帧内预测模式、是否应用第二次变换或是否将变换跳过应用于相邻块中的至少一者来选择当前块的查找表。
例如,在当前块的大小为4×4或更小时或者通过帧间预测对当前块进行编码时,可以使用表9中的查找表,并且在当前块的大小大于4×4时或者当通过块内预测对当前块进行编码时,可以使用表10的查找表。
可替代地,可以通过码流用信号发送指示多个查找表中的任一个的信息。解码器可以基于所述信息来选择当前块的查找表。
作为另一示例,可以基于当前块的大小、形状、预测编码模式、帧内预测模式、是否第二次变换或是否将变换跳过应用于相邻块中的至少一者来自适应地确定分配给变换类型组合候选的索引。例如,在当前块的大小为4×4时,分配给变换跳过的索引可以具有比当前块的大小大于4×4时分配给变换跳过的索引更小的值。具体地,在当前块的大小为4×4时,可以向变换跳过分配索引0,在当前块大于4×4且为16×16以下时,可以向在变换跳过分配大于0的索引(例如,索引1)。在当前块大于16×16时,可以将最大值(例如,5)分配为变换跳过的索引。
可替代地,在当前块以帧间预测进行编码时,可以向变换跳过分配索引0。在当前块以帧内预测进行编码时,可以向变换跳过分配大于0的索引(例如,索引1)。
可替代地,在当前块为以帧间预测进行编码的大小为4×4的块时,可以向变换跳过分配索引0。另一方面,在当前块不以帧间预测进行编码,或者当前块大于4×4时,可以向变换跳过分配值大于0的索引(例如,索引1)。
可以定义和使用与表9和10中列出的变换类型组合候选不同的变换类型组合候选。例如,可以使用被应用了诸如DCT7、DCT8或DST2等变换核的变换类型组合候选,以将变换跳过应用于水平或垂直变换以及其他变换。此时,可以基于当前块的大小(例如,宽度和/或高度)、形状、预测编码模式或帧内预测模式中的至少一个来确定是否要使用变换跳过以作为对水平方向或垂直方向的变换类型候选。
可替代地,可以通过码流用信号发送指示指定变换类型候选是否可用的信息。例如,可以用信号发送指示针对水平方向和垂直方向是否可以将变换跳过用作变换类型候选的标志。根据所述标志,可以确定多个变换类型组合候选中是否包含指定变换类型组合候选。
可替代地,可以通过码流用信号发送指示指定是否将变换类型候选应用于当前块的信息。例如,可以用信号发送指示是否将将DCT2应用于水平方向和垂直方向的标志cu_mts_flag。当cu_mts_flag的值为1时,可以将DCT2设置为垂直方向及水平方向的变换核。当cu_mts_flag的值为0时,可以将DCT8或DST7设置为垂直方向及水平方向的变换核。可替代地,当cu_mts_flag的值为0时,可以用信号发送指定多个变换类型组合候选中的任一个的信息tu_mts_idx。
在当前块为宽度大于高度的非正方形或高度大于宽度的非正方形时,还可以省略cu_mts_flag的编码,将cu_mts_flag的值视为0。
根据当前块的大小、形状或帧内预测模式,可以不同地设置将可用的变换类型组合候选的数量。例如,在当前块为正方形时,可以使用3个以上的变换类型组合候选,在当前块为非正方形时,可以使用2个变换类型组合候选。可替代地,在当前块为正方形时,仅可以利用在变换类型组合候选中在水平方向的变换类型及垂直方向的变换类型上具有不同的变换类型组合候选。
在当前块可以利用的变换类型组合候选为3个以上时,可以用信号发送指示变换类型组合候选中的一个的索引信息tu_mts_idx。另一方面,在当前块可以利用的变换类型组合候选为2个时,可以用信号发送指示变换类型组合候选中的任一个的标志mts_flag。以下表11示出了用于根据当前块的形状来对指定变换类型组合候选的信息进行编码的过程。
【表11】
Figure BDA0003037790240000311
根据当前块的形状,对可以变换类型组合候选的索引进行重排(或重排序)。例如,当前块为正方形时分配给变换类型组合候选的索引与当前块为非正方形时分配给变换类型组合候选的索引可以不同。例如,在当前块是正方形形状时,可以基于以下表12来选择变换类型组合,并且当当前块是非正方形形状时,可以基于以下表13来选择变换类型组合。
【表12】
Figure BDA0003037790240000312
【表13】
Figure BDA0003037790240000313
Figure BDA0003037790240000321
可以基于当前块的水平方向非零系数的数量或垂直方向非零系数的数量来确定变换类型。其中,水平方向非零系数的数量表示1×N(其中,N为当前块的宽度)中包括的非零系数的数量,垂直方向非零系数的数量表示N×1(其中,N为当前块的高度)中包括的非零系数的数量。当水平方向非零系数的最大值小于或等于阈值时,可以在水平方向应用主变换类型,当水平方向非零系数的最大值大于阈值时,可以在水平方向应用二次变换类型。当垂直方向非零系数的最大值小于或等于阈值时,可以在垂直方向应用主变换类型,当垂直方向非零系数的最大值大于阈值时,可以在垂直方向应用二次变换类型。
图40是用于说明确定当前块的变换类型的示例的图。
例如,当通过帧内预测对当前块进行编码并且当前块的水平方向非零系数的最大值为2或更小时(参见图40的(a)),可以将水平方向的变换类型确定为DST7。
当通过帧内预测对当前块进行编码并且当前块的垂直方向非零系数的最大值大于2时(参见图40的(b)),可以将垂直方向的变换类型确定为DCT2或DCT8。
可以将残差系数按变换单元或子变换单元进行编码。其中,残差系数是指经过变换而生成的变换系数、经过变换跳过而生成的变换跳过系数或所述变换系数或对系数进行量化而生成的量化的系数。
变换单元可以表示执行主变换或二次变换的块。子变换单元表示小于变换单元的块。例如,子变换单元可以是大小为4×4、2×8或8×2的块。
可以基于当前块的大小或形状来确定子变换单元的大小或形状中的至少一个。例如,在当前块为宽度大于高度的非正方形时,子变换单元也可以设置为宽度大于高度的非正方形(例如,8×2),当前块为高度大于宽度的非正方形时,子变换单元也可以设置为高度大于宽度的非正方形(例如,2×8)。在当前块为正方形时,子变换单元也可以设置为正方形(例如,4×4)。
在当前块包含多个子变换单元时,可以对子变换单元依次进行编码/解码。可以利用算术编码(Arithmetic Coding)等熵编码来编码残差系数。以下,参照附图,详细察看残差系数的编码/解码方法。
图41是示出对残差系数进行编码的方法的流程图。
在本实施例中,假设当前块包含一个以上子变换单元。而且,假设子变换单元具有4×4的大小。但是,当子变换单元的大小与此不同时,或者子变换单元的形状与此不同时也可以直接应用本实施例。
可以确定当前块中是否存在非零系数(S4101)。非零系数表示绝对值大于0的残差系数。可以用信号发送并编码指示当前块中是否存在非零系数的信息。例如,所述信息可以是1位的标志CBF(Coded Block Flag)。
在当前块中存在非零系数时,可以确定各子变换单元中是否存在非零系数(S4102)。可以用信号发送并编码指示每个子变换单元是否存在非零系数的信息。例如,所述信息可以是1位的标志编码子块标志(CSBF,Coded SubBlock Flag)。子变换单元可以根据已选择的扫描顺序来编码。
当子变换单元中存在非零系数时,为了编码子变换单元的残差系数,可以对子变换单元内的残差系数进行一维排列(S4103)。残差系数可以按已选择的扫描顺序进行一维排列。
扫描顺序可以包括对角线扫描、水平扫描、垂直扫描或它们的反向扫描中的至少一个。
图42和图43是按不同扫描顺序表示残差系数的排列顺序的图。
图42的(a)至图42的(c)表示对角线扫描(Diagonal Scan)、水平扫描(HorizontalScan)及垂直扫描(Vertical Scan),图43的(a)至图43的(c)表示它们的逆方向。
根据选择的扫描顺序,可以对残差系数进行一维排列。
可以考虑当前块的大小、形状、帧内预测模式、用于第一次变换的变换核或是否应用第二次变换中的至少一个,确定扫描顺序。例如,在当前块为宽度大于高度的非正方形时,可以利用反向水平扫描来编码残差系数。另一方面,在当前块为高度大于宽度的非正方形时,可以利用反向垂直扫描来编码残差系数。
可替代地,对多个扫描顺序分别计算出率失真优化(RDO,Rate DistortionOptimization),可以将RDO最低的扫描顺序确定为当前块的扫描顺序。这种情况下,可以用信号发送并编码指示当前块的扫描顺序的信息。
对变换跳过系数进行编码时可以利用的扫描顺序候选和对变换系数进行编码时可以利用的扫描顺序候选可以不同。例如,可以将对变换系数进行编码时可以利用的扫描顺序候选的反方向设置为对变换跳过系数进行编码时可以利用的扫描顺序候选。
例如,若变换系数利用反向对角线扫描、反向水平扫描或反向垂直扫描中的任一个来编码,则变换跳过系数可以利用对角线扫描、水平扫描或垂直扫描中的任一个来编码。
然后,可以对变换块内的扫描顺序中位于最后的非零系数的位置进行编码(S4103)。可以分别对最后非零系数的x轴位置及y轴位置进行编码。
图44示出了对最后非零系数的位置进行编码的示例。
如图44所示的示例中,当基于对角线扫描时,可以将位于变换块的右上角的残差系数设置为最后非零系数。所述残差系数的x轴坐标LastX为3,y轴坐标LastY为0。LastX可以分离为前缀部分last_sig_coeff_x_prefix和后缀部分last_sig_coeff_x_suffix来进行编码。LastY也可以分离为前缀部分last_sig_coeff_y_prefix和后缀部分last_sig_coeff_y_suffix来进行编码。
在确定最后非零系数的位置时,可以针对扫描顺序在最后非零系数之前的每个残差系数来对指示残差系数是否为非零系数的信息进行编码(S4104)。所述信息可以是1位的标志、sig_coeff_flag。当残差系数为0时,可以将非零系数标志sig_coeff_flag的值设置为0,当残差系数为1时,可以将非零系数标志sig_coeff_flag的值设置为1。对于最后非零系数,可以省略非零系数标志sig_coeff_flag的编码。当省略非零系数标志sig_coeff_flag的编码时,所述残差系数将被视为非0。
对于变换跳过系数,可以不编码有关最后非零系数的位置的信息。这种情况下,对于块内所有变换跳过系数可以编码非零系数标志sig_coeff_flag。
可替代地,用信号发送并编码指示最后非零系数的位置的信息是否被编码的信息。所述信息可以是1比特标志。解码器可以根据所述标志的值来确定是否对最后非零系数的位置的信息进行解码。当最后非零系数的位置不被解码时,可以对所有变换跳过系数解码非零系数标志。另一方面,当最后非零系数的位置被解码时,可以针对扫描顺序在最后非零系数之前的每个变换跳过系数来对指示变换跳过系数是否为非零系数的信息进行编码。
变换系数或变换跳过系数的DC分量可以不设置为零。其中,DC分量可以表示扫描顺序上位于最后的样本或位于块的左上方的样本。对于DC分量,残差系数可以省略非零系数标志sig_coeff_flag的编码。当省略非零系数标志sig_coeff_flag的编码时,所述残差系数将被视为非0。
当残差系数不是0时,可以对指示残差系数的绝对值的信息及指示残差系数的符号的信息进行编码(S4105)。指示残差系数的绝对值的信息的编码过程通过图45更详细说明。
可以对最后非零系数以后的所有残差系数及当前块中包括的子变换单元分别依次执行残差系数编码(S4106,S4107)。
图45是对残差系数的绝对值进行编码的过程的流程图。
当残差系数的绝对值大于0时,可以对指示残差系数或残差系数是偶数还是奇数的信息进行编码(S4501)。其中,残差系数可以定义为从残差系数的绝对值中减去1的值。所述信息可以是1位的奇偶标志。例如,语法元素par_level_flag的值为0时,表示残差系数或残差系数为偶数,当语法元素par_level_flag的值为1时,表示残差系数或残差系数为奇数。当语法元素par_level_flag的值可以基于以下等式30来确定。
【等式30】
par_level_flag=(abs(Tcoeff)-1)%2
在所述等式30中,Tcoeff表示残差系数,abs()表示绝对值函数。
可以将残差系数或残差系数除以2,或者对残差系数或残差系数应用移位运算来导出调整残差系数(S4502)。具体地,可以将残差系数除以2的熵设置为调整残差系数,或者可以将残差系数向右移位1左右的值设置为调整残差系数。
例如,可以基于以下等式31来导出调整残差系数。
【等式31】
ReRemLevel=RemLevel>>1
在所述等式31中,ReRemLevel表示调整残差系数,RemLevel表示残差系数。
然后,可以对指示调整残差系数的大小的信息进行编码。指示调整残差系数的大小的信息可以包括指示调整残差系数是否大于N的信息。其中,N可以是1、2、3、4等整数。
例如,可以对指示调整残差系数的值是否大于1的信息进行编码(S4503)。所述信息可以是1位的标志rem_abs_gt1_flag。
当残差系数为0或1时,可以将rem_abs_gt1_flag的值设置为0。即,当残差系数为1或2时,rem_abs_gt1_flag的值可以设置为0。此时,当残差系数为0时,可以将par_level_flag设置为0,当残差系数为1时,可以将par_level_flag设置为1。
当调整残差系数为2以上时(S4504),将rem_abs_gt1_flag的值设置为1,并可以对指示调整残差系数的值是否大于2的信息进行编码(S4505)。所述信息可以是1位的标志rem_abs_gt2_flag。
当残差系数为2或3时,可以将rem_abs_gt2_flag的值设置为0。即,当残差系数为3或4时,可以将rem_abs_gt2_flag的值设置为0。此时,当残差系数为2时,可以将par_level_flag设置为0,当残差系数为3时,可以将par_level_flag设置为1。
当调整残差系数大于2时,可以对从调整残差系数中减去2的残差值信息进行编码(S4506)。即,从残差系数的绝对值中减去5之后,可以将所述结果值除以2的值编码为残差值信息。
虽然未图示,但可以进一步利用指示调整残差系数是否大于3的标志(例如,rem_abs_gt3_flag)或指示调整残差系数是否大于4的标志(rem_abs_gt4_flag)等来编码残差系数。这种情况下,可以将从调整残差系数中减去最大值的值设置为残差值。最大值表示rem_abs_gtN_flag中的最大N值。
还可以使用将调整系数或残差系数的绝对值与指定值比较的标志来代替将调整残差系数的值与指定值比较的标志。例如,代替rem_abs_gt1_flag,可以使用指示残差系数的绝对值是否大于2的gr2_flag,并且代替rem_abs_gt2_flag,可以使用指示残差系数的绝对值是否大于4的gr4_flag。
表14简略表示利用语法元素来编码残差系数的过程。
【表14】
Figure BDA0003037790240000341
如所述例所述,可以利用par_level_flag及至少一个rem_abs_gtN_flag(其中,N为1、2、3、4等整数)来编码残差系数。
rem_abs_gtN_flag指示残差系数是否大于2N。对于2N-1或2N的残差系数而言,将rem_abs_gt(N-1)_flag设置为真,rem_abs_gtN_flag设置为假。另外,对于2N-1的残差系数而言,可以将par_level_flag值设置为0,对于2N的残差系数而言,可以将par_level_flag值设置为1。即,对于2N以下的残差系数而言,可以利用rem_abs_gtN_flag和par_level_flag来进行编码。
对于残差系数为2MAX+1以上的残差系数而言,可以对将与2MAX之间的差值除以2的残差值信息进行编码。其中,MAX指示N的最大值。例如,当利用rem_abs_gt1_flag和rem_abs_gt2_flag时,MAX可以是2。
解码器还可以根据图45所示的顺序对残差系数进行解码。具体地,解码器确定最后非零系数的位置,并且可以针对扫描顺序在最后非零系数之前的每个残差系数来解码sig_coeff_flag。
当sig_coeff_flag为真时,可以解码所述残差系数的par_level_flag。另外,可以解码所述残差系数的rem_abs_gt1_flag。此时,根据rem_abs_gt(N-1)_flag的值,可以进一步解码rem_abs_gtN_flag。例如,当rem_abs_gt(N-1)_flag的值为1时,可以解码rem_abs_gtN_flag。例如,当有关残差系数的rem_abs_gt1_flag的值为1时,可以进一步解析有关所述残差系数的rem_abs_gt2_flag。当rem_abs_gt(MAX)_flag的值为1时,可以解码残差值信息。
当残差系数的rem_abs_gtN_flag的值为0时,可以根据par_level_flag的值将残差系数的值确定为2N-1或2N。具体地,当par_level_flag为0时,可以将残差系数设置为2N-1,当par_level_flag为1时,可以将残差系数设置为2N。
例如,rem_abs_gt1_flag为0时,根据par_level_flag值,可以将残差系数的绝对值设置为1或2。具体地,par_level_flag值为0时,残差系数的绝对值为1,par_level_flag值为1时,残差系数的绝对值为2。
例如,当rem_abs_gt2_flag为0时,可以根据par_level_flag值将残差系数的绝对值设置为3或4。具体地,当par_level_flag值为0时,残差系数的绝对值为3,当par_level_flag值为1时,残差系数的绝对值为4。
在对残差值信息进行解码时,可以根据par_level_flag的值将残差系数设置为2(MAX+R)-1或2(MAX+R)。其中,R指示残差值信息所示的值。例如,在par_level_flag为0时,可以将残差系数设置为2(MAX+R)-1,在par_level_flag为1时,可以将残差系数设置为2(MAX+R)。例如,在MAX为2时,可以基于以下的等式32来导出残差系数。
【等式32】
parity_level_flag+Rem<<1+5
根据如图45所示的示例,当编码残差系数时,需要针对所有非零系数来对奇偶标志进行编码。例如,当残差系数为1时,也需要编码par_level_flag和rem_abs_gt1_flag。如上所述的编码方法会引起编码绝对值为1的残差系数时所需的位数增加的问题。为了防止这种问题,首先编码指示残差系数是否大于1的信息之后,当残差系数大于1时,可以编码奇偶标志。
图46是对残差系数的绝对值进行编码的过程的流程图。
针对非零残差系数,可以编码指示残差系数的绝对值是否大于1的信息gr1_flag(S4601)。当残差系数为1时,可以将gr1_flag设置为0,当残差系数大于1时,可以将gr1_flag设置为1。
当残差系数的绝对值大于1时,可以对指示残差系数或残差系数是偶数还是奇数的奇偶标志进行编码(S4602,S4603)。其中,可以将残差系数设置为从残差系数中减去2的值。例如,可以基于以下的等式33来导出par_level_flag。
【等式33】
par_level_flag=(abs(Tcoeff)-2)%2
可以将残差系数或残差系数除以2,或者将残差系数或残差系数向右移位1来导出调整残差系数,并且可以对指示调整残差系数是否大于1的信息进行编码(S4604)。例如,针对gr1_flag为1的残差系数,可以对指示调整残差系数是否大于1的rem_abs_gt1_flag进行编码。
当残差系数为0或1时,可以将rem_abs_gt1_flag的值设置为0。即,当残差系数为2或3时,可以将rem_abs_gt1_flag的值设置为0。此时,当调整残差系数为0时,可以将par_level_flag设置为0,当残差系数为1时,可以将par_level_flag设置为1。
当调整残差系数为2以上时(S4605),可以将rem_abs_gt1_flag的值设置为1,并且可以对指示调整残差系数是否大于2的信息进行编码(S4606)。例如,针对rem_abs_gt1_flag为1的残差系数,可以对指示调整残差系数是否大于2的rem_abs_gt2_flag进行编码。
当残差系数为2或3时,可以将rem_abs_gt2_flag的值设置为1。即,当残差系数为4或5时,可以将rem_abs_gt2_flag的值设置为0。此时,当残差系数为2时,可以将par_level_flag设置为0,当残差系数为3时,可以将par_level_flag设置为1。
当调整残差系数大于2时(S4607),可以对从调整残差系数中减去2的残差值信息进行编码(S4608)。即,从残差系数的绝对值中减去6之后,可以将其结果值除以2的值编码为残差值信息。
可以进一步利用指示调整残差系数是否大于3的标志(例如,rem_abs_gt3_flag)或指示调整残差系数是否大于4的标志(rem_abs_gt4_flag)等来编码残差系数。这种情况下,可以将从调整残差系数中减去最大值的值设置为残差值。最大值指示rem_abs_gtN_flag中的最大N值。
还可以使用将调整系数或残差系数的绝对值与指定值比较的标志来代替将调整残差系数的值与指定值比较的标志。例如,代替rem_abs_gt1_flag,可以使用指示残差系数的绝对值是否大于3的gr3_flag,并且代替rem_abs_gt2_flag,可以使用指示残差系数的绝对值是否大于5的gr5_flag。
表15简要描述了利用语法元素来编码残差系数的过程。
【表15】
Figure BDA0003037790240000351
Figure BDA0003037790240000361
解码器还可以根据图46所示的顺序对残差系数进行解码。具体地,解码器确定最后非零系数的位置,并且可以针对扫描顺序在最后非零系数之前的每个残差系数来解码sig_coeff_flag。
当sig_coeff_flag为真时,可以解码所述残差系数的gr1_flag。当gr1_flag为0时,将所述残差系数的绝对值确定为1,当gr1_flag为1时,可以解码所述残差系数的par_level_flag。之后,可以解码所述残差系数的rem_abs_gt1_flag。此时,根据rem_abs_gt(N-1)_flag的值,可以进一步解码rem_abs_gtN_flag。例如,当rem_abs_gt(N-1)_flag的值为1时,可以解码rem_abs_gtN_flag。例如,当有关残差系数的rem_abs_gt1_flag的值为1时,可以进一步解析有关所述残差系数的rem_abs_gt2_flag。当rem_abs_gt(MAX)_flag的值为1时,可以解码残差值信息。
当残差系数的rem_abs_gtN_flag的值为0时,可以根据par_level_flag的值将残差系数的值确定为2N或2N+1。具体地,当par_level_flag为0时,可以将残差系数设置为2N,当par_level_flag为1时,可以将残差系数设置为2N+1。
例如,当rem_abs_gt1_flag为0时,可以根据par_level_flag值将残差系数的绝对值可以设置为2或3。具体地,当par_level_flag值为0时,残差系数的绝对值为2,当par_level_flag值为1时,残差系数的绝对值为3。
例如,rem_abs_gt2_flag为0时,根据par_level_flag值,可以将残差系数的绝对值设置为4或5。具体地,当par_level_flag值为0时,残差系数的绝对值为4,当par_level_flag值为1时,残差系数的绝对值为5。
在对残差值信息进行解码时,可以根据par_level_flag的值将残差系数设置为2(MAX+R)或2(MAX+R)+1。其中,R表示残差值信息的值。例如,在par_level_flag为0时,可以将残差系数设置为2(MAX+R),在par_level_flag为1时,可以将残差系数设置为2(MAX+R)+1。
作为另一示例,可以仅在残差系数的值大于2时,才对奇偶标志进行编码。例如,当对指示残差系数的值是否大于1的信息及指示残差系数的值是否大于2的信息进行编码之后,确定残差系数的值大于2时,可以针对所述残差系数编码奇偶标志。
图47是对残差系数的绝对值进行编码的过程的流程图。
针对非零残差系数,可以对指示残差系数的绝对值是否大于1的信息gr1_flag进行编码(S4701)。当残差系数为1时,可以将gr1_flag设置为0,当残差系数大于1时,可以将gr1_flag设置为1。
对于绝对值大于1的残差系数,可以对指示残差系数的绝对值是否大于2的信息gr2_flag进行编码(S4702,S4703)。当残差系数为2时,可以将gr2_flag设置为0,当残差系数大于2时,可以将gr2_flag设置为1。
当绝对值大于2时,可以对指示残差系数或残差系数是偶数还是奇数的奇偶标志进行编码(S4704,S4705)。其中,残差系数可以设置为从残差系数中减去3的值。例如,可以基于以下的等式34来导出par_level_flag。
【等式34】
par_level_flag=(abs(Tcoeff)-3)%2
可以将残差系数或残差系数除以2,或者将残差系数或残差系数向右移位1来导出调整残差系数,并且可以对指示调整残差系数是否大于1的信息进行编码。例如,针对gr1_flag为1的残差系数,可以对指示调整残差系数是否大于1的rem_abs_gt1_flag进行编码(S4706)。
当残差系数为0或1时,可以将rem_abs_gt1_flag的值设置为0。即,当残差系数为3或4时,可以将rem_abs_gt1_flag的值设置为0。此时,当调整残差系数为0时,可以将par_level_flag设置为0,当残差系数为1时,可以将par_level_flag设置为1。
当调整残差系数为2以上时(S4707),可以将rem_abs_gt1_flag的值设置为1,并且可以对指示调整残差系数是否大于2的信息进行编码(S4708)。例如,针对rem_abs_gt1_flag为1的残差系数,可以对指示调整残差系数是否大于2的rem_abs_gt2_flag进行编码。
当残差系数为2或3时,可以将rem_abs_gt2_flag的值设置为1。即,当残差系数为5或6时,可以将rem_abs_gt2_flag的值设置为0。此时,当残差系数为2时,可以将par_level_flag设置为0,当残差系数为3时,可以将par_level_flag设置为1。
当调整残差系数大于2时,可以对从调整残差系数中减去2的残差值进行编码(S4709,S4710)。即,从残差系数的绝对值中减去7之后,可以将其结果值除以2的值编码为残差值。
可以进一步利用指示调整残差系数是否大于3的标志(例如,rem_abs_gt3_flag)或指示调整残差系数是否大于4的标志(rem_abs_gt4_flag)等来编码残差系数。这种情况下,可以将从调整残差系数中减去最大值的值设置为残差值。最大值指示rem_abs_gtN_flag中的最大N值。
还可以使用将调整系数或残差系数的绝对值与指定值比较的标志来代替将调整残差系数的值与指定值比较的标志。例如,代替rem_abs_gt1_flag,可以使用指示残差系数的绝对值是否大于4的gr4_flag,并且代替rem_abs_gt2_flag,可以使用指示残差系数的绝对值是否大于6的gr6_flag。
解码器也是按与图47所示的顺序相同的顺序,可以解码残差系数。具体地,解码器确定最后非零系数的位置,并且可以针对扫描顺序在最后非零系数之前的每个残差系数来解码sig_coeff_flag。
当sig_coeff_flag为真时,可以解码所述残差系数的gr1_flag。当gr1_flag为0时,将所述残差系数的绝对值确定为1,当gr1_flag为1时,可以解码gr2_flag。当gr2_flag为0时,将所述残差系数的绝对值确定为2,当gr2_flag为1时,可以解码所述残差系数的par_level_flag。之后,可以解码所述残差系数的rem_abs_gt1_flag。此时,根据rem_abs_gt(N-1)_flag的值,可以进一步解码rem_abs_gtN_flag。例如,当rem_abs_gt(N-1)_flag的值为1时,可以解码rem_abs_gtN_flag。例如,当有关残差系数的rem_abs_gt1_flag的值为1时,可以进一步解析有关所述残差系数的rem_abs_gt2_flag。当rem_abs_gt(MAX)_flag的值为1时,可以解码残差值信息。
当残差系数的rem_abs_gtN_flag的值为0时,可以根据par_level_flag的值将残差系数的值确定为2N+1或2(N+1)。具体地,当par_level_flag为0时,可以将残差系数设置为2N+1,当par_level_flag为1时,可以将残差系数设置为2(N+1)。
例如,rem_abs_gt1_flag为0时,根据par_level_flag值,可以将残差系数的绝对值设置为3或4。具体地,当par_level_flag值为0时,残差系数的绝对值为3,当par_level_flag值为1时,残差系数的绝对值为4。
例如,当rem_abs_gt2_flag为0时,可以根据par_level_flag值将残差系数的绝对值设置为5或6。具体地,当par_level_flag值为0时,残差系数的绝对值为5,当par_level_flag值为1时,残差系数的绝对值为6。
在对残差值信息进行解码时,可以根据par_level_flag的值将残差系数设置为2(MAX+R)或2(MAX+R)+1。其中,R表示残差值信息的值。例如,在par_level_flag为0时,可以将残差系数设置为2(MAX+R),在par_level_flag为1时,可以将残差系数设置为2(MAX+R)+1。
可以基于当前块的大小、形状、是否跳过变换、变换核、非零系数的数量或最后非零系数的位置中的至少一者来确定将调整残差系数与指定值进行比较的比较标志的数量或种类中的至少一者。例如,在编码变换系数时,仅可以利用rem_abs_gt1_flag。另一方面,在编码变换跳过系数时,可以利用rem_abs_gt1_flag及rem_abs_gt2_flag。
可替代地,在大小为4×4的子变换对角线方向内,可以将rem_abs_gt1_fag的数量设置为最大8个,可以将rem_abs_gt2_flag的数量设置为最大1个。可替代地,当非零系数标志的数量为(16-N)时,可以将rem_abs_gt1_flag的数量设置为最大8+(N/2)个,并且可以将rem_abs_gt2_flag的数量设置为最大1+(N-(N/2))。
若获得当前块的重建块,则可以通过环内滤波(In-loop filtering)来减少在量化及编码过程中产生的信息丢失。环内滤波器可以包括去块滤波器(Deblocking filter)、样本自适应偏移滤波器(Sample Adaptive Offset filter,SAO)或自适应环路滤波器(Adaptive Loop Filter,ALF)中的至少一个。以下,将应用环内滤波器之前的重建块称为第一重建块,将应用环内滤波器之后的重建块称为第二重建块。
可以对第一重建块应用去块滤波器、SAO或ALF中的至少一个来获得第二重建块。在这种情况下,可以在应用去块滤波器之后应用SAO或ALF。
去块滤波器用于缓解通过以块为单位执行量化时在块的边界中产生的画质劣化(块效应,Blocking Artifact)。为了应用去块滤波器,可以确定第一重建块与相邻重建块之间的块强度(Blocking Strength,BS)。
图48是示出确定块强度的过程的流程图。
在图48所示的示例中,P表示第一重建块,Q表示相邻的重建块。其中,相邻重建块可以与当前块的左侧或上方相邻。
在图48所示的示例中,示出了考虑P和Q的预测编码模式、是否包括非零变换系数、是否利用相同的参考图片执行帧间预测、以及运动向量的差值是否大于或等于阈值来确定块强度。
基于块强度,可以确定是否应用了去块滤波器。例如,块强度为0时有可能不执行滤波。
SAO用于缓解在频域中执行量化时产生的振铃效应(Ringing Artifact)。可以通过加上或减去考虑第一重建图像的图案而确定的偏移量来执行SAO。偏移量的确定方法包括边偏移(Edge Offset,EO)或带偏移(Band Offset)。EO表示根据周边像素的图案来确定当前样本的偏移的方法。BO表示对区域内具有类似的亮度值的像素的集合应用共同的偏移的方法。具体地,将像素亮度区分为32个均等的区间,将具有类似的亮度值的像素设置为一个集合。例如,将32个带中相邻的4个带设置为一组,在4个带中所属的样本可以应用相同的偏移量。
ALF是对第一重建图像或应用去块滤波器的重建图像应用预定义的大小/形状的滤波器来生成第二重建图像的方法。以下等式35表示ALF的适用例。
【等式35】
Figure BDA0003037790240000381
可以以图像、编码树单元、编码块、预测块或变换块为单位来选择预定义的滤波器候选中的任一个。各个滤波器候选的大小或形状中的任一个会不同。
图49示出了预定义的滤波器候选。
如在图49所示的示例中,可以选择5×5、7×7和9×9菱形中的至少一种。
针对色度分量只能使用大小为5×5的菱形。
将以解码过程或编码过程为中心描述的实施例用于编码过程或解码过程也包括在本发明的范围内。以与所描述的不同的顺序来改变按预定顺序描述的多个实施例也包括在本发明的范围内。
已经基于一系列的步骤或流程图来描述实施例,但这并不限定发明的时间序列顺序,并且根据需要可同时执行或者按另外顺序执行。并且,在上述实施例中,构成框图的结构要素(例如,单元、模块等)还可分别实现为硬件设备或软件,并且多个结构要素可以组合实施为单个硬件设备或软件。所述实施例可以通过程序指令的形式实施,所述程序指令可以由各种计算机部件执行并记录在计算机可读记录介质中。所述计算机可读记录介质可单独包括或组合包括程序指令、数据文件、数据结构等。计算机可读记录介质的示例可以包括硬盘、软盘及磁带等磁性介质、CD-ROM、DVD等光学记录介质、如软式光盘(floptical disk)的磁-光介质(magneto-optical media)及ROM、RAM、闪速存储器等等以存储程序指令并执行该指令的方式专门配置的硬件设备。所述硬件设备可以被配置为作为一个或多个软件模块进行操作以执行根据本发明的处理,另一方面亦然。
工业实用性
本发明可以应用于对视频进行编码/解码的电子设备。

Claims (38)

1.一种视频解码方法,包括以下步骤:从码流中解析指示残差系数是否为非零的非零标志;
当所述非零标志指示所述残差系数不是非零时,从所述码流中解析绝对值信息,所述绝对值信息用于确定所述残差系数的绝对值;以及
基于所述绝对值信息,确定所述残差系数的绝对值,
其中,所述绝对值信息包含指示所述残差系数是否大于第一值的残差系数比较标志,
仅在所述残差系数大于所述第一值时,才从所述码流中进一步解析奇偶标志。
2.根据权利要求1所述的视频解码方法,其中,
所述奇偶标志指示所述残差系数的值是偶数还是奇数。
3.根据权利要求2所述的视频解码方法,其中,
当所述残差系数大于所述第一值时,进一步解析第一调整残差系数比较标志,所述第一调整残差系数比较标志指示将所述残差系数向右移1位而导出的调整残差系数是否大于第二值。
4.根据权利要求3所述的视频解码方法,其中,
当所述调整残差系数为第二值以下时,根据所述奇偶标志的值,将所述残差系数确定为2N或2N+1,其中,N为所述第二值。
5.根据权利要求3所述的视频解码方法,其中,
当所述调整残差系数大于所述第二值时,进一步解析第二调整残差系数比较标志,所述第二调整残差系数比较标志指示所述调整残差系数是否大于第三值。
6.根据权利要求3所述的视频解码方法,其中,
当所述调整残差系数大于所述第二值时,进一步解析残差值信息,
所述残差值信息是通过将所述调整残差系数减去所述第二值而获得的值。
7.一种视频编码方法,包括以下步骤:对指示残差系数是否为非零的非零标志进行编码;以及
当所述残差系数不是非零时,对绝对值信息进行编码,所述绝对值信息用于确定所述残差系数的绝对值,
其中,所述绝对值信息包含指示所述残差系数是否大于第一值的残差系数比较标志,
仅在所述残差系数大于所述第一值时,才进一步对所述残差系数的奇偶标志进行编码。
8.根据权利要求7所述的视频编码方法,其中,
所述奇偶标志指示所述残差系数的值是偶数还是奇数。
9.根据权利要求8所述的视频编码方法,其中,
当所述残差系数大于所述第一值时,进一步对第一调整残差系数比较标志进行编码,所述第一调整残差系数比较标志指示将所述残差系数向右移位1而导出的调整残差系数是否大于第二值。
10.根据权利要求9所述的视频编码方法,其中,
当所述调整残差系数为所述第二值以下时,根据所述奇偶标志的值,将所述残差系数确定为2N或2N+1。
11.根据权利要求9所述的视频编码方法,其中,
当所述调整残差系数大于所述第二值时,进一步对第二调整残差系数比较标志进行编码,所述第二调整残差系数比较标志指示所述调整残差系数是否大于第三值。
12.根据权利要求9所述的视频编码方法,其中,
当所述调整残差系数大于所述第二值时,进一步对残差值信息进行编码,
所述残差值信息是通过将所述调整残差系数减去所述第二值而获得的值。
13.一种视频解码器,其特征在于,包括:处理器和用于存储能够在所述处理器上运行的计算机程序的存储器,
所述处理器被配置为:
从码流中解析指示残差系数是否为非零的非零标志;
当所述非零标志指示所述残差系数不是非零时,从所述码流中解析绝对值信息,所述绝对值信息用于确定所述残差系数的绝对值;以及
基于所述绝对值信息,确定所述残差系数的绝对值,
其中,所述绝对值信息包含指示所述残差系数是否大于第一值的残差系数比较标志,
仅在所述残差系数大于所述第一值时,才从所述码流中进一步解析奇偶标志。
14.根据权利要求13所述的视频解码器,其中,
所述奇偶标志指示所述残差系数的值是偶数还是奇数。
15.根据权利要求14所述的视频解码器,其中,
所述处理器还被配置为:
当所述残差系数大于所述第一值时,进一步解析第一调整残差系数比较标志,所述第一调整残差系数比较标志指示将所述残差系数向右移1位而导出的调整残差系数是否大于第二值。
16.根据权利要求15所述的视频解码器,其中,
所述处理器还被配置为:
当所述调整残差系数为第二值以下时,根据所述奇偶标志的值,将所述残差系数确定为2N或2N+1,其中,N为所述第二值。
17.根据权利要求15所述的视频解码器,其中,
所述处理器还被配置为:
当所述调整残差系数大于所述第二值时,进一步解析第二调整残差系数比较标志,所述第二调整残差系数比较标志指示所述调整残差系数是否大于第三值。
18.根据权利要求15所述的视频解码器,其中,
所述处理器还被配置为:
当所述调整残差系数大于所述第二值时,进一步解析残差值信息,
所述残差值信息是通过将所述调整残差系数减去所述第二值而获得的值。
19.一种视频编码器,其特征在于,包括:处理器和用于存储能够在所述处理器上运行的计算机程序的存储器,
所述处理器被配置为:
对指示残差系数是否为非零的非零标志进行编码;以及
当所述残差系数不是非零时,对绝对值信息进行编码,所述绝对值信息用于确定所述残差系数的绝对值,
其中,所述绝对值信息包含指示所述残差系数是否大于第一值的残差系数比较标志,
仅在所述残差系数大于所述第一值时,才进一步对所述残差系数的奇偶标志进行编码。
20.根据权利要求19所述的视频编码器,其中,
所述奇偶标志指示所述残差系数的值是偶数还是奇数。
21.根据权利要求20所述的视频编码器,其中,
所述处理器还被配置为:
当所述残差系数大于所述第一值时,进一步对第一调整残差系数比较标志进行编码,所述第一调整残差系数比较标志指示将所述残差系数向右移位1而导出的调整残差系数是否大于第二值。
22.根据权利要求21所述的视频编码器,其中,
所述处理器还被配置为:
当所述调整残差系数为所述第二值以下时,根据所述奇偶标志的值,将所述残差系数确定为2N或2N+1。
23.根据权利要求21所述的视频编码器,其中,
所述处理器还被配置为:
当所述调整残差系数大于所述第二值时,进一步对第二调整残差系数比较标志进行编码,所述第二调整残差系数比较标志指示所述调整残差系数是否大于第三值。
24.根据权利要求21所述的视频编码器,其中,
所述处理器还被配置为:
当所述调整残差系数大于所述第二值时,进一步对残差值信息进行编码,
所述残差值信息是通过将所述调整残差系数减去所述第二值而获得的值。
25.一种视频解码设备,包括:
从码流中解析指示残差系数是否为非零的非零标志的装置;
当所述非零标志指示所述残差系数不是非零时,从所述码流中解析绝对值信息的装置,所述绝对值信息用于确定所述残差系数的绝对值;以及
基于所述绝对值信息,确定所述残差系数的绝对值的装置,
其中,所述绝对值信息包含指示所述残差系数是否大于第一值的残差系数比较标志,
仅在所述残差系数大于所述第一值时,才从所述码流中进一步解析奇偶标志。
26.根据权利要求25所述的视频解码设备,其中,所述视频解码设备还包括:
所述奇偶标志指示所述残差系数的值是偶数还是奇数。
27.根据权利要求26所述的视频解码设备,其中,所述视频解码设备还包括:
当所述残差系数大于所述第一值时,进一步解析第一调整残差系数比较标志的装置,所述第一调整残差系数比较标志指示将所述残差系数向右移1位而导出的调整残差系数是否大于第二值。
28.根据权利要求27所述的视频解码设备,其中,所述视频解码设备还包括:
当所述调整残差系数为第二值以下时,根据所述奇偶标志的值,将所述残差系数确定为2N或2N+1的装置,其中,N为所述第二值。
29.根据权利要求27所述的视频解码设备,其中,所述视频解码设备还包括:
当所述调整残差系数大于所述第二值时,进一步解析第二调整残差系数比较标志的装置,所述第二调整残差系数比较标志指示所述调整残差系数是否大于第三值。
30.根据权利要求27所述的视频解码设备,其中,所述视频解码设备还包括:
当所述调整残差系数大于所述第二值时,进一步解析残差值信息的装置,
所述残差值信息是通过将所述调整残差系数减去所述第二值而获得的值。
31.一种视频编码设备,包括:
对指示残差系数是否为非零的非零标志进行编码的装置;以及
当所述残差系数不是非零时,对绝对值信息进行编码的装置,所述绝对值信息用于确定所述残差系数的绝对值,
其中,所述绝对值信息包含指示所述残差系数是否大于第一值的残差系数比较标志,
仅在所述残差系数大于所述第一值时,才进一步对所述残差系数的奇偶标志进行编码。
32.根据权利要求31所述的视频编码设备,其中,
所述奇偶标志指示所述残差系数的值是偶数还是奇数。
33.根据权利要求32所述的视频编码设备,其中,所述视频编码设备还包括:
当所述残差系数大于所述第一值时,进一步对第一调整残差系数比较标志进行编码的装置,所述第一调整残差系数比较标志指示将所述残差系数向右移位1而导出的调整残差系数是否大于第二值。
34.根据权利要求33所述的视频编码设备,其中,所述视频编码设备还包括:
当所述调整残差系数为所述第二值以下时,根据所述奇偶标志的值,将所述残差系数确定为2N或2N+1的装置。
35.根据权利要求33所述的视频编码设备,其中,所述视频编码设备还包括:
当所述调整残差系数大于所述第二值时,进一步对第二调整残差系数比较标志进行编码的装置,所述第二调整残差系数比较标志指示所述调整残差系数是否大于第三值。
36.根据权利要求33所述的视频编码设备,其中,所述视频编码设备还包括:
当所述调整残差系数大于所述第二值时,进一步对残差值信息进行编码的装置,
所述残差值信息是通过将所述调整残差系数减去所述第二值而获得的值。
37.一种计算机存储介质,其上存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至6任一项所述的方法步骤。
38.一种计算机存储介质,其上存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求7至12任一项所述的方法步骤。
CN202110448321.8A 2018-09-21 2019-09-20 视频信号编码/解码方法以及用于所述方法的设备 Active CN113225561B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110448321.8A CN113225561B (zh) 2018-09-21 2019-09-20 视频信号编码/解码方法以及用于所述方法的设备

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
KR10-2018-0114346 2018-09-21
KR20180114346 2018-09-21
KR20180114350 2018-09-21
KR20180114347 2018-09-21
KR10-2018-0114347 2018-09-21
KR10-2018-0114345 2018-09-21
KR10-2018-0114350 2018-09-21
KR20180114345 2018-09-21
KR10-2019-0022754 2019-02-26
KR20190022754 2019-02-26
PCT/KR2019/012291 WO2020060328A1 (ko) 2018-09-21 2019-09-20 영상 신호 부호화/복호화 방법 및 이를 위한 장치
CN201980058803.3A CN112956200A (zh) 2018-09-21 2019-09-20 视频信号编码/解码方法以及用于所述方法的设备
CN202110448321.8A CN113225561B (zh) 2018-09-21 2019-09-20 视频信号编码/解码方法以及用于所述方法的设备

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201980058803.3A Division CN112956200A (zh) 2018-09-21 2019-09-20 视频信号编码/解码方法以及用于所述方法的设备

Publications (2)

Publication Number Publication Date
CN113225561A true CN113225561A (zh) 2021-08-06
CN113225561B CN113225561B (zh) 2023-04-21

Family

ID=69887731

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201980058803.3A Pending CN112956200A (zh) 2018-09-21 2019-09-20 视频信号编码/解码方法以及用于所述方法的设备
CN202110448321.8A Active CN113225561B (zh) 2018-09-21 2019-09-20 视频信号编码/解码方法以及用于所述方法的设备
CN202310145089.XA Pending CN116320397A (zh) 2018-09-21 2019-09-20 视频信号编码/解码方法以及用于所述方法的设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201980058803.3A Pending CN112956200A (zh) 2018-09-21 2019-09-20 视频信号编码/解码方法以及用于所述方法的设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202310145089.XA Pending CN116320397A (zh) 2018-09-21 2019-09-20 视频信号编码/解码方法以及用于所述方法的设备

Country Status (14)

Country Link
US (2) US11290737B2 (zh)
EP (2) EP3843402B1 (zh)
JP (2) JP7451504B2 (zh)
KR (1) KR20200034645A (zh)
CN (3) CN112956200A (zh)
AU (2) AU2019343079B2 (zh)
BR (1) BR112021005161A2 (zh)
CA (1) CA3113584C (zh)
IL (2) IL281629B2 (zh)
MX (1) MX2021003321A (zh)
PH (1) PH12021550644A1 (zh)
SG (1) SG11202102908YA (zh)
WO (1) WO2020060328A1 (zh)
ZA (1) ZA202102080B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117201788A (zh) * 2018-09-11 2023-12-08 Lg电子株式会社 图像解码设备、图像编码设备和比特流发送设备
JP7451504B2 (ja) * 2018-09-21 2024-03-18 オッポ広東移動通信有限公司 ビデオ信号符号化/復号化方法およびそのための機器
US11910011B2 (en) * 2019-03-22 2024-02-20 Lg Electronics Inc. Intra prediction-based image decoding method and device therefor in image coding system
WO2020207493A1 (en) * 2019-04-12 2020-10-15 Beijing Bytedance Network Technology Co., Ltd. Transform coding based on matrix-based intra prediction
CN117097912A (zh) 2019-05-01 2023-11-21 北京字节跳动网络技术有限公司 基于矩阵的帧内预测的上下文编码
EP3954115A4 (en) 2019-05-22 2023-04-19 Beijing Bytedance Network Technology Co., Ltd. MATRIX-BASED INTRAPREDICTION USING UPSAMPLING
CN114051735A (zh) 2019-05-31 2022-02-15 北京字节跳动网络技术有限公司 基于矩阵的帧内预测中的一步下采样过程
EP3963885A4 (en) 2019-06-05 2022-12-14 Beijing Bytedance Network Technology Co., Ltd. DETERMINING CONTEXT FOR MATRIX-BASED INTRAPREDICTION
CN114641997A (zh) 2019-10-28 2022-06-17 北京字节跳动网络技术有限公司 基于颜色分量的语法信令通知和解析

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130272424A1 (en) * 2012-04-16 2013-10-17 Qualcomm Incorporated Sign hiding techniques for quantized transform coefficients in video coding
CN103370940A (zh) * 2010-12-14 2013-10-23 吴秀美 帧间预测编码的运动画面的解码方法
WO2018026148A1 (ko) * 2016-08-01 2018-02-08 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3094094B1 (en) * 2012-01-20 2018-03-28 BlackBerry Limited Multiple sign bit hiding within a transform unit
US9294779B2 (en) 2012-06-15 2016-03-22 Blackberry Limited Multi-bit information hiding using overlapping subsets
US20140003530A1 (en) 2012-06-28 2014-01-02 Qualcomm Incorporated Sign hiding techniques for quantized transform coefficients in video coding
KR20180039578A (ko) * 2015-09-08 2018-04-18 삼성전자주식회사 엔트로피 부호화 및 복호화를 위한 장치 및 방법
KR20180089290A (ko) * 2017-01-31 2018-08-08 세종대학교산학협력단 영상의 부호화/복호화 방법 및 장치
US11019346B2 (en) * 2018-07-02 2021-05-25 Qualcomm Incorporated Coefficient coding with grouped bypass remaining levels for dependent quantization
KR102533654B1 (ko) 2018-07-02 2023-05-18 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 종속 스칼라 양자화에 적합한 변환 계수의 엔트로피 코딩
CN112567754B (zh) * 2018-08-22 2022-09-20 寰发股份有限公司 转换系数编码或解码的方法与装置
US11483575B2 (en) * 2018-08-24 2022-10-25 Hfi Innovation Inc. Coding transform coefficients with throughput constraints
US11336918B2 (en) * 2018-09-05 2022-05-17 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
WO2020060282A1 (ko) 2018-09-20 2020-03-26 엘지전자 주식회사 변환 계수 레벨 코딩 방법 및 그 장치
JP7451504B2 (ja) * 2018-09-21 2024-03-18 オッポ広東移動通信有限公司 ビデオ信号符号化/復号化方法およびそのための機器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103370940A (zh) * 2010-12-14 2013-10-23 吴秀美 帧间预测编码的运动画面的解码方法
US20130272424A1 (en) * 2012-04-16 2013-10-17 Qualcomm Incorporated Sign hiding techniques for quantized transform coefficients in video coding
WO2018026148A1 (ko) * 2016-08-01 2018-02-08 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Also Published As

Publication number Publication date
JP2024063204A (ja) 2024-05-10
IL281629B2 (en) 2024-01-01
MX2021003321A (es) 2021-05-14
AU2023203259A1 (en) 2023-06-08
IL281629A (en) 2021-05-31
US20210211704A1 (en) 2021-07-08
ZA202102080B (en) 2022-08-31
CN116320397A (zh) 2023-06-23
IL281629B1 (en) 2023-09-01
EP3843402B1 (en) 2024-03-27
IL304931A (en) 2023-10-01
EP4340356A3 (en) 2024-05-29
JP7451504B2 (ja) 2024-03-18
EP3843402A4 (en) 2021-10-27
EP4340356A2 (en) 2024-03-20
BR112021005161A2 (pt) 2021-06-15
AU2019343079A1 (en) 2021-04-29
CN113225561B (zh) 2023-04-21
US20220166999A1 (en) 2022-05-26
CA3113584A1 (en) 2020-03-26
SG11202102908YA (en) 2021-04-29
AU2019343079B2 (en) 2023-04-27
KR20200034645A (ko) 2020-03-31
PH12021550644A1 (en) 2021-10-11
US11290737B2 (en) 2022-03-29
EP3843402A1 (en) 2021-06-30
CA3113584C (en) 2023-09-19
CN112956200A (zh) 2021-06-11
JP2022501896A (ja) 2022-01-06
WO2020060328A1 (ko) 2020-03-26

Similar Documents

Publication Publication Date Title
CN113225561B (zh) 视频信号编码/解码方法以及用于所述方法的设备
CN113329224A (zh) 视频信号编码/解码方法以及用于所述方法的设备
CN113395517B (zh) 视频信号编码/解码方法及其设备
US20230319273A1 (en) Method for encoding/decoding image signal and apparatus therefor
CN113382234B (zh) 视频信号编码/解码方法以及用于所述方法的设备
US11463695B2 (en) Method for encoding/decoding image signal, and device for same
CN113691807A (zh) 视频信号编码/解码方法以及用于所述方法的设备
CN112840647A (zh) 视频信号编码/解码方法以及用于所述方法的设备
KR20200084306A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
CN113711596A (zh) 图像信号编码/解码方法及其装置
CN113439439A (zh) 用于对图像信号进行编码/解码的方法及其装置
CN112970251A (zh) 用于对图像信号进行编码/解码的方法及其装置
CN116112684A (zh) 用于对图像信号进行编码/解码的方法及其装置
CN112956198A (zh) 用于对图像信号进行编码/解码的方法及其装置
RU2801585C2 (ru) Способ и устройство для кодирования/декодирования сигналов изображений
RU2818972C2 (ru) Способ и устройство для кодирования/декодирования сигналов изображений
CN113170199B (zh) 用于对图像信号进行编码/解码的方法及其装置
US20220038695A1 (en) Method for encoding/decoding image signal, and device for same
CN113287310A (zh) 用于对图像信号进行编码/解码方法及其装置
CN113170199A (zh) 用于对图像信号进行编码/解码的方法及其装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant