CN116347072A - 视频信号的编码方法和解码方法及其装置 - Google Patents

视频信号的编码方法和解码方法及其装置 Download PDF

Info

Publication number
CN116347072A
CN116347072A CN202310275594.6A CN202310275594A CN116347072A CN 116347072 A CN116347072 A CN 116347072A CN 202310275594 A CN202310275594 A CN 202310275594A CN 116347072 A CN116347072 A CN 116347072A
Authority
CN
China
Prior art keywords
block
sub
intra prediction
prediction mode
current block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310275594.6A
Other languages
English (en)
Inventor
李培根
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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
Publication of CN116347072A publication Critical patent/CN116347072A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/124Quantisation
    • 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/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/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/94Vector quantisation
    • 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)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Abstract

本申请的视频解码方法包括:确定当前块的参考样本线;确定是否存在与所述当前块的帧内预测模式相同的候选帧内预测模式;基于确定的结果,得到所述当前块的帧内预测模式;以及根据所述参考样本线及所述帧内预测模式,对所述当前块进行帧内预测。其中,所述候选帧内预测模式中的至少一个可以为:将所述当前块的上相邻块的帧内预测模式及所述当前块的左侧相邻块的帧内预测模式中的最大值加上或减去偏移量。

Description

视频信号的编码方法和解码方法及其装置
分案说明
本申请是申请日为2019年10月11日的PCT国际专利申请PCT/KR2019/013384进入中国国家阶段的中国专利申请号201980056255.0、发明名称为“视频信号的编码方法和解码方法及其装置”的分案申请。
相关申请的交叉引用
本申请基于申请号为10-2018-0121713、申请日为2018年10月12日的韩国专利申请提出,并要求该韩国专利申请的优先权,该韩国专利申请的全部内容在此引入本申请作为参考。
本申请基于申请号为10-2018-0121757、申请日为2018年10月12日的韩国专利申请提出,并要求该韩国专利申请的优先权,该韩国专利申请的全部内容在此引入本申请作为参考。
本申请基于申请号为10-2019-0006611、申请日为2019年1月18日的韩国专利申请提出,并要求该韩国专利申请的优先权,该韩国专利申请的全部内容在此引入本申请作为参考。
技术领域
本申请涉及视频信号的编码方法和解码方法及其装置。
背景技术
在显示面板逐渐大型化的趋势下,逐渐追求更高画质的视频服务。高画质视频服务的最大问题是数据量大幅增加,为了解决这种问题,旨在提高视频压缩率的研究正在活跃地进行中。作为代表性示例,2009年MPEG(Motion Picture Experts Group:动态图像专家组)与ITU-T(International Telecommunication Union-Telecommunication:国际电信联盟)旗下的VCEG(Video Coding Experts Group:视频编码专家组)成立了JCT-VC(JointCollaborative Team on Video Coding:视频编码联合小组)。JCT-VC提出了相比H.264/AVC具有约2倍压缩性能的视频压缩标准HEVC(High Efficiency Video Coding:高效率视频编码),该标准于2013年1月25日获批。但是,随着高画质视频服务的快速发展,HEVC的性能也在逐渐显露出其局限性。
发明内容
本申请的目的在于,在视频信号编码或解码方面,提供一种基于与当前块相邻的相邻块的帧内预测模式来得到候选帧内预测模式的方法以及用于执行所述方法的装置。
本申请的目的在于,在视频信号编码或解码方面,提供一种将编码块或变换块划分成多个子块并对各个子块执行帧内预测的方法以及用于执行所述方法的装置。
本申请的目的在于,在视频信号编码或解码方面,提供一种将编码块或变换块划分成多个子块并只对子块中的部分子块执行变换的方法以及用于执行所述方法的装置。
本申请要实现的技术主题不限于以上提及的技术主题,未提及的其他技术主题是本申请所属技术领域的普通技术人员可以从以下记载而明确理解的。
本申请的视频信号解码或编码方法包括:确定当前块的参考样本线;确定是否存在与所述当前块的帧内预测模式相同的候选帧内预测模式;基于确定的结果,得到所述当前块的帧内预测模式;以及根据所述参考样本线及所述帧内预测模式,对所述当前块进行帧内预测。此时,所述候选帧内预测模式中的至少一个可以为:将所述当前块的上相邻块的帧内预测模式及所述当前块的左侧相邻块的帧内预测模式中的最大值加上或减去偏移量。
在本申请的视频信号解码或编码方法中,在所述上相邻块的帧内预测模式及所述左侧相邻块的帧内预测模式的差值为64时,所述候选帧内预测模式中的至少一个可以为:将所述最大值加上或减去2。
在本申请的视频信号解码或编码方法中,根据所述参考样本线的索引,所述候选帧内预测模式的个数可以不同。
在本申请的视频信号解码或编码方法中,可以还包括:确定是否将所述当前块划分成多个子块;在所述当前块划分为多个子块时,所述多个子块可以共享一个帧内预测模式。
在本申请的视频信号解码或编码方法中,对于所述多个子块中的部分子块,可以跳过逆变换。
在本申请的视频信号解码或编码方法中,可以根据所述子块的宽度确定子块的水平方向变换类型,根据所述子块的高度确定所述子块的竖直方向变换类型。
在本申请的视频信号解码或编码方法中,可以根据所述子块的形状确定子块的水平方向变换类型及竖直方向变换类型。
上面针对本申请概括记载的特征只是后述具体实施方式的示例,并非限定本申请的范围。
本申请的发明具有如下技术效果。
根据本申请,通过得到与相邻当前块的相邻块的帧内预测模式类似的候选帧内预测模式,从而可以提高帧内预测效率。
根据本申请,通过将编码块或变换块划分成多个子块并针对各个子块执行帧内预测,从而可以提高帧内预测效率。
根据本申请,通过将编码块或变换块划分成多个子块并只对子块中的部分子块执行变换,从而可以提高编码或解码效率。
本申请可获得的效果不限于以上提及的效果,未提及的其他效果是本申请所属技术领域的普通技术人员可以从以下记载明确理解的。
附图说明
图1是本申请一个实施例的视频编码器的框图。
图2是本申请一个实施例的视频解码器的框图。
图3是图示本申请一个实施例的基本编码树单元的图。
图4是编码块的多种划分形状的示意图。
图5是编码树单元的划分形状的示意图。
图6是本申请一个实施例的帧间预测方法的流程图。
图7是同位置块的示意图。
图8是本申请一个实施例的帧内预测方法的流程图。
图9是各参考样本线包括的参考样本的示意图。
图10是帧内预测模式的示意图。
图11和图12是将参考样本排列成一列的一维排列的示例的示意图。
图13是角度帧内预测模式与平行于X轴的直线形成的角度的示意图。
图14是在当前块为非正方形形状时预测样本获得的形状的示意图。
图15是显示广角帧内预测模式的图。
图16是竖直方向划分和水平方向划分的一个示例的示意图。
图17是确定编码块的划分形状的示例的示意图。
图18是确定编码块的划分形状的示例的示意图。
图19是基于编码块的帧内预测模式来确定编码块的划分形状的示例的示意图。
图20是用于说明编码块的划分形状的示意图。
图21是预测编码模式按照不同子块设置的示例的示意图。
图22是应用PDPC的一种示例的示意图。
图23和图24是将执行二次变换的子块的示意图。
图25是用于说明确定当前块的变换类型的示例的示意图。
图26是确认子块的变换类型的示例的示意图。
图27是用于说明子块的残差系数设置为0的示例的示意图。
图28是通过码流传递的信息来对指示执行变换和/或量化的子块的位置的示例。
图29是确定块强度的过程的流程图。
图30表示预先定义的滤波器候选。
具体实施方式
下面参照附图,详细说明本申请的实施例。
视频的编码和解码以块为单位执行。作为一个示例,可以针对编码块、变换块或预测块,执行变换、量化、预测、环路滤波或重建等编码或解码处理。
下面将作为编码或解码对象的块称为“当前块”。作为一个示例,当前块根据当前编码或解码的处理步骤,可以表示为编码块、变换块或预测块。
而且,本说明书中使用的术语“单元”,表示用于执行特定编码或解码流程的基本单位,“块”可以理解为既定尺寸的样本阵列。只要没有另行说明,“块”和“单元”可以表示相同的含义。作为一个示例,在后述实施例中,编码块和编码单元可以理解为相互同等的含义。
图1是本申请一个实施例的视频编码器的框图。
如图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)当作根而划分成不同编码单位的编码单元,可以利用与划分的编码单元的个数相应的子节点进行划分。根据既定限制而无法进一步划分的编码单元成为叶节点。即,假定针对一个编码单元只能进行正方形划分时,一个编码单元最大可以划分为4个不同编码单位。
下面,在本申请的实施例中,编码单元既可以表示执行编码的单位,也可以表示执行解码的单位。
预测单元既可以在一个编码单元内利用相同尺寸的至少一个正方形或矩形等形状进行划分,也可以划分成在一个编码单元内划分的预测单元中的某一预测单元与另一预测单元形状和/或尺寸不同。
根据编码单元而生成用于执行帧内预测的预测单元时,当编码单元不是最小编码单元时,可以不划分成多个预测单元N×N而执行帧内预测。
预测部120、125可以包括执行帧间预测的帧间预测部120和执行帧内预测的帧内预测部125。可以确定针对预测单元是使用帧间预测还是执行帧内预测,并确定基于各预测方法的具体信息(例如,帧内预测模式、运动向量、参考图像等)。此时,执行预测的处理单元与预测方法以及具体的内容会因既定的处理单元而不同。例如,预测方法和预测模式等按照预测单位进行确定,预测的执行也可以按照变换单位执行。生成的预测块与原始块之间的残差值(残差块)可以输入到变换部130。另外,为了预测而使用的预测模式信息、运动向量信息等,可以与残差值一同在熵编码部165编码并传递给解码器。当使用特定的编码模式时,可以不采用预测部120、125生成预测块,而是直接对原始块进行编码并传输给解码部。
帧间预测部120既可以基于当前图像的之前图像或之后图像中至少一个图像的信息来预测预测单元,根据情况,也可以根据当前图像内已编码的一部分区域的信息来预测预测单元。帧间预测部120可以包括参考图像插值部、运动预测部、运动补偿部。
参考图像插值部可以从存储器155获得所提供的参考图像信息,在参考图像中生成整数像素以下的像素信息。如果是亮度像素时,为了按照1/4像素单位生成整数像素以下的像素信息,可以使用不同滤波系数的基于DCT的8抽头插值滤波器(DCT-basedInterpolation Filter)。如果是色差信号时,为了按照1/8像素单位生成整数像素以下的像素信息,可以使用不同滤波系数的基于DCT的4抽头插值滤波器(DCT-basedInterpolation Filter)。
运动预测部可以基于由参考图像插值部而插值的参考图像来执行运动预测。作为用于计算运动向量的方法,可以使用FBMA(Full search-based Block MatchingAlgorithm:全搜索块匹配算法)、TSS(Three Step Search:三步搜索法)、NTS(New Three-Step Search Algorithm:新三步搜索算法)等多种方法。运动向量基于经插值的像素,可以具有1/2或1/4像素单位的运动向量值。运动预测部可以采用不同运动预测方法来预测当前预测单元。作为运动预测方法,可以使用跳过(Skip)模式、合并(Merge)模式、AMVP(Advanced Motion Vector Prediction:高级运动向量预测)模式、帧内块拷贝(IntraBlock Copy)模式等多种模式。
帧内预测部125可以基于作为当前图像内像素信息的当前块相邻参考像素信息来生成预测单元。当前预测单元的相邻块为执行帧间预测的块,因此,当参考像素是执行帧间预测的像素时,可以将执行帧间预测的块中所包含的参考像素,替代为相邻的执行帧内预测的块的参考像素信息。即,当参考像素不可用时,可以使用能够使用的参考像素中的至少一个参考像素替代不可用的参考像素信息。
在帧内预测中,预测模式可以具有根据预测方向使用参考像素信息的角度预测模式和执行预测时不使用角度信息的非角度模式。用于预测亮度信息的模式与用于预测色差信息的模式可以不同,为了预测色差信息,可以使用为了预测亮度信息而使用的帧内预测模式信息或预测的亮度信号信息。
执行帧内预测时,在预测单元的尺寸与变换单元的尺寸相同的情况下,可以根据预测单元左侧的像素、左侧上端的像素、上端的像素,执行对预测单元的帧内预测。但是,执行帧内预测时,在预测单元的尺寸与变换单元的尺寸不同的情况下,可以利用基于变换单元的参考像素来执行帧内预测。另外,对于最小编码单元,可以使用进行N×N划分的帧内预测。
帧内预测方法可以根据预测模式,对参考像素应用AIS(Adaptive IntraSmoothing:自适应帧内平滑)滤波后生成预测块。应用于参考像素的AIS滤波的种类可以不同。为了执行帧内预测方法,当前预测单元的帧内预测模式可以从在当前预测单元相邻存在的预测单元的帧内预测模式来预测。当利用从相邻预测单元预测的模式信息来预测当前预测单元的预测模式时,如果当前预测单元与相邻预测单元的帧内预测模式相同,则可以利用既定的标识信息,传输表示当前预测单元与相邻预测单元的预测模式相同的信息,如果当前预测单元与相邻预测单元的预测模式不同,则可以执行熵编码,对当前块的预测模式信息进行编码。
另外,可以基于预测部120、125生成的预测单元,生成包含残差值(Residual)信息的残差块,所述残差值(Residual)为执行预测的预测单元与预测单元原始块的差异值。生成的残差块可以输入到变换部130。
在变换部130中,可以使用诸如DCT(Discrete Cosine Transform:离散余弦变换)、DST(Discrete Sine Transform:离散正弦变换)、KLT的变换方法,使包括原始块与通过预测部120、125而生成的预测单元的残差值(residual)信息的残差块变换。为了变换残差块,是应用DCT或应用DST还是应用KLT,可以基于为了生成残差块而使用的预测单元的帧内预测模式信息来确定。
量化部135可以对在变换部130中变换成频域的值进行量化。量化系数可以根据块或根据视频的重要度而变化。量化部135算出的值可以提供给逆量化部140和重排序部160。
重排序部160可以针对量化的残差值执行系数值的重排序。
重排序部160可以通过系数扫描(Coefficient Scanning)方法,将二维的块形状系数变换为一维的矢量形状。例如,重排序部160可以利用Z字形扫描(Zig-Zag Scan)方法,从DC系数扫描至高频域系数,变换为一维矢量形状。根据变换单元的尺寸和帧内预测模式,也可以取代Z字形扫描而使用沿列方向扫描二维块形状系数的竖直扫描、沿行方向扫描二维块形状系数的水平扫描。即,可以根据变换单元的尺寸和帧内预测模式,可以使用Z字形扫描、竖直方向扫描以及水平方向扫描中的任意扫描方法。
熵编码部165可以基于由重排序部160算出的值来执行熵编码。熵编码例如可以使用诸如哥伦布指数(Exponential Golomb)、CAVLC(Context-Adaptive Variable LengthCoding:上下文自适应可变长度编码)、CABAC(Context-Adaptive Binary ArithmeticCoding:上下文自适应二进制算术编码)的多种编码方法。
熵编码部165可以对来自重排序部160和预测部120、125的编码单元的残差值系数信息、块类型信息、预测模式信息、划分单元信息、预测单元信息以及传输单元信息、运动向量信息、参考帧信息、块的插值信息、滤波信息等多种信息进行编码。
熵编码部165可以对从重排序部160输入的编码单元的系数值进行熵编码。
逆量化部140和逆变换部145对量化部135量化的值进行逆量化,对变换部130变换的值进行逆变换。逆量化部140和逆变换部145生成的残差值(Residual)可以与通过预测部120、125包括的运动预测部、运动补偿部以及帧内预测部而预测的预测单元合并,以生成重建块(Reconstructed Block)。
滤波部150可以包括去块滤波器、偏移量补偿部、ALF(Adaptive Loop Filter:自适应环路滤波器)中至少一个。
去块滤波器可以从重建的图像中去除因块间边界而发生的块失真。为了判断是否执行去块操作,可以基于块中包含的几个列或行中包括的像素,判断是否对当前块应用去块滤波。在对块应用解块滤波时,根据所需的解块滤波强度,可以应用强滤波器(StrongFilter)或弱滤波器(Weak Filter)。另外,在应用去块滤波器方面,执行竖直滤波和水平滤波时,可以使水平方向滤波和竖直方向滤波并行处理。
偏移量补偿部可以针对执行解块的视频,按照像素单位补偿与原本视频的偏移量。为了对特定图像执行偏移量补偿,可以将视频中包含的像素区分为既定数量的区域后,确定执行偏移量的区域,将偏移量应用于相应区域,或者根据各像素的边缘信息以应用偏移量。
ALF(Adaptive Loop Filtering:自适应环路滤波)可以基于比较被滤波的重建图像与原始图像的值来执行。将图像包含的像素分为既定组后,可以确定要应用于相应组的一个滤波器,每个组差异化地执行滤波。关于是否应用ALF的信息,即亮度信号可以按照编码单元(Coding Unit、CU)进行传输,根据各个块要应用的ALF滤波器的形状和滤波系数可以不同。另外,也可以与应用对象块的特性无关,使用相同形状(固定的形状)的ALF滤波器。
存储器155可以存储通过滤波部150算出的重建块或重建图像,存储的重建块或图像可以在执行帧间预测时提供给预测部120、125。
图2是本申请一个实施例的视频解码器的框图。
如图2所示,视频解码器200可以包括熵解码部210、重排序部215、逆量化部220、逆变换部225、预测部230、235、滤波部240、存储器245。
在视频编码器中输入视频码流时,输入的码流可以按照与视频编码器相反的步骤解码。
熵解码部210可以按照与视频编码器的熵编码部执行熵编码相反的步骤执行熵解码。例如,与视频编码器执行的方法对应,可以使用诸如哥伦布指数(ExponentialGolomb)、CAVLC(Context-Adaptive Variable Length Coding)、CABAC(Context-AdaptiveBinary Arithmetic Coding)的多种方法。
熵解码部210可以对与编码器执行的帧内预测以及帧间预测相关的信息进行解码。
重排序部215可以基于熵解码部210所熵解码的码流在编码部利用重排序的方法,执行重排序。可以将以一维矢量形状表现的系数重建为二维的块形状的系数,进行重排序。重排序部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模式)、运动向量预测模式(AMVPMode)、帧内块拷贝模式中的哪一种方法。
帧内预测部235可以基于当前图像内的像素信息来生成预测块。当预测单元是执行帧内预测的预测单元时,可以基于视频编码器提供的预测单元的帧内预测模式信息来执行帧内预测。帧内预测部235可以包括AIS(Adaptive Intra Smoothing)滤波器、参考像素插值部、DC滤波器。AIS滤波器作为对当前块的参考像素执行滤波的部分,可以根据当前预测单元的预测模式来确定是否应用滤波器。可以基于视频编码器提供的预测单元的预测模式和AIS滤波器信息,对当前块的参考像素执行AIS滤波。当前块的预测模式为不执行AIS滤波的模式时,AIS滤波器可以不应用。
参考像素插值部,当预测单元的预测模式为基于插入参考像素值的像素值来执行帧内预测的预测单元时,可以插入参考像素值,生成整数值以下的像素单元的参考像素。当前预测单元的预测模式为不插入参考像素值而生成预测块的预测模式时,参考像素可以不插值。DC滤波器在当前块的预测模式为DC模式时,可以通过滤波来生成预测块。
重建的块或图像可以提供给滤波部240。滤波部240可以包括去块滤波器、偏移量补偿部、ALF。
可以从视频编码器获得关于是否对相应块或图像应用去块滤波器的信息,当应用了去块滤波器时,可以获得关于是应用强滤波或者应用弱滤波器的信息。视频解码器的去块滤波器可以接受由视频编码器所提供的去块滤波器的相关信息,视频解码器可以执行对相应块的解块滤波。
偏移量补偿部可以基于编码时应用于视频的偏移量补偿的种类以及偏移量值信息等,对重建的视频执行偏移量进行补偿。
ALF可以基于从编码器提供的ALF是否被应用的信息、ALF系数信息等,被应用于编码单元。这种ALF信息可以包含于特定的参数集中进行提供。
存储器245可以对重建的图像或块进行存储,使得可以用作参考图像或参考块,另外,可以将重建的图像提供给输出部。
图3是图示本申请一个实施例的基本编码树单元的图。
可以将最大的编码块定义为编码树块。一个图像划分成多个编码树单元(CodingTree Unit:CTU)。编码树单元作为最大的编码单元,也可以称为LCU(Largest CodingUnit)。图3示出了一个图像划分成多个编码树单元的示例。
编码树单元的尺寸可以在图像级或序列级中定义。为此,表示编码树单元尺寸的信息可以通过图像参数集或序列参数集来传递信号。
作为一个示例,对序列内全体图像的编码树单元的尺寸可以设置为128x128。或者,可以在图像级中,将128x128或256x256中的某一个确定为编码树单元的尺寸。作为一个示例,在第一图像中,编码树单元的尺寸可以设置为128x128,在第二图像中,编码树单元的尺寸可以设置为256x256。
可以划分编码树单元,生成编码块。编码块表示用于编码或解码处理的基本单元。作为一个示例,可以按照编码块执行预测或变换,或按照编码块确定预测编码模式。其中,预测编码模式表示生成预测视频的方法。作为一个示例,预测编码模式可以包括画面内预测(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的编码块应用竖直方向二叉树划分,对作为所述划分结果而生成的编码块中的左侧编码块应用竖直方向三叉树划分,对右侧编码块应用竖直方向二叉树划分的情形。
帧间预测是利用之前图像的信息来预测当前块的预测编码模式。作为一个示例,可以将之前图像内与当前块相同位置的块(以下称为同位置块,collocated block)设置为当前块的预测块。下面将基于与当前块相同位置的块所生成的预测块称为同位置预测块(Collocated Prediction Block)。
相反,如果之前图像中存在的物体在当前图像中运动到了另一位置,则可以利用物体的运动来有效预测当前块。例如,如果可以通过比较之前图像与当前图像来获知物体的运动方向和尺寸,则可以根据物体的运动信息,生成当前块的预测块(或者,预测视频)。下面由运动信息所生成的预测块称为运动预测块。
通过从当前块差分预测块,从而生成残差块(residual block)。此时,如果存在物体的移动,则利用移动预测块而不是利用同位置预测块,从而可以减小残差块的能量,因此,可以提高残差块的压缩性能。
如上所述,将利用运动信息来生成预测块的情形称为运动补偿预测。在大部分的帧间预测中,可以基于运动补偿预测来生成预测块。
运动信息可以包括运动向量、参考图像索引、预测方向或双向加权值索引中至少一个。运动向量表示物体的移动方向和距离。参考图像索引指示参考图像列表中包含的参考图像中的当前块的参考图像。预测方向是指单向L0预测、单向L1预测或双向预测(L0预测和L1预测)中的某一种。根据当前块的预测方向,可以利用L0方向的运动信息或L1方向的运动信息中至少一个。双向加权值索引对L0预测块中应用的加权值以及L1预测块中应用的加权值进行特定。
图6是本申请一个实施例的帧间预测方法的流程图。
如图6所示,帧间预测方法包括:确定当前块的帧间预测模式(S601);根据确定的帧间预测模式来获得当前块的运动信息(S602);以及基于获得的运动信息来执行对当前块的运动补偿预测(S603)。
其中,帧间预测模式表示用于确定当前块的运动信息的多种方法,可以包括利用平移(Translation)运动信息的帧间预测模式、利用仿射(Affine)运动信息的帧间预测模式。作为一个示例,利用平移运动信息的帧间预测模式可以包括合并模式和运动向量预测模式,利用仿射运动信息的帧间预测模式可以包括仿射合并模式和仿射运动向量预测模式。根据帧间预测模式,以及基于与当前块相邻的相邻块或从码流解析的信息来确定当前块的运动信息。
作为一个示例,可以根据与当前块相同的图像中包含的空间相邻块或与当前块不同的图像中包含的同位置块的运动信息来得到当前块的运动信息。空间相邻块包括与当前块的上端相邻的相邻块、与左侧相邻的相邻块、与左侧上端角相邻的相邻块、与右侧上端角相邻的相邻块或与左侧下端角相邻的相邻块中至少一个。同位置块可以具有参考图像内与当前块相同的位置和尺寸。作为一个示例,图7是图示同位置块的图。参考图像可以根据索引信息所指示的参考图像来确定。
当前块的运动向量的精度可以在多个运动向量精度候选中确定某一个。作为一个示例,运动向量精度候选可以包括八分之一像素、四分之一像素、二分之一像素、整数像素、2的整数倍像素或4的整数倍像素中至少一个。运动向量精度候选的个数或种类可以根据序列、帧或块单元确定。作为一个示例,用于确定运动向量精度候选的个数或种类的信息,可以通过码流传递信号。或者,可以基于是否使用当前块的帧间预测模式或仿射运动模型来确定运动向量精度候选的个数或种类。用于对多个运动向量精度候选中某一个进行特定的信息,也可以通过码流传递信号。
帧内预测是指在当前块相邻利用已编码或解码的重建样本来预测当前块。此时,当前块的帧内预测中可以使用应用环路滤波之前的重建样本。
帧内预测方法包括基于矩阵(Matrix)的帧内预测以及基于相邻重建样本的角度的普通帧内预测。提示当前块的帧内预测方法的信息,可以通过码流传递信号。所述信息可以为1比特的标识。或者,可以基于当前块的位置、尺寸、形状或相邻块的帧内预测方法中至少一个来确定当前块的帧内预测方法。作为一个示例,如果当前块跨图像边界时,可以设置为在当前块中不应用基于矩阵的帧内预测。
基于矩阵的帧内预测是基于编码器和解码器中已存储的矩阵与当前块相邻的重建样本之间的矩阵积来获得当前块的预测块。用于对已存储的多个矩阵中某一个进行特定的信息,可以通过码流传递信号。解码器可以基于所述信息以及当前块的尺寸来确定用于当前块的帧内预测所需的矩阵。
普通帧内预测是基于非角度帧内预测模式或角度帧内预测模式来获得对当前块的预测块的方法。下面参照附图,对基于普通帧内预测的帧内预测的执行过程进行更详细说明。
图8是本申请一个实施例的帧内预测方法的流程图。
可以确定当前块的参考样本线(S801)。参考样本线意味着从当前块的上端和/或左侧起的第k行所包含的参考样本的集合。参考样本可以从当前块相邻已编码或解码的重建样本得到。
识别多个参考样本线中当前块的参考样本线的索引信息,可以通过码流传递信号。作为一个示例,用于对当前块的参考样本线进行特定的索引信息intra_luma_ref_idx,可以通过码流传递信号。所述索引信息可以以编码块为单元传递信号。
多个参考样本线可以包括当前块的上端和/或左侧第1线、第2线、第3线或第4线中至少一个。也可以将由多个参考样本线中与当前块的上端相邻的行以及与当前块的左侧相邻的列构成的参考样本线称为相邻参考样本线,将其他的参考样本线称为非相邻参考样本线。
图9是参考样本线的示意图。
在图9中,图示了由与当前块相邻的行或列构成的一个相邻参考样本线和由不与当前块相邻的行或列构成的三个非相邻参考样本线。
可以只将多个参考样本线中的一部分选择为当前块的参考样本线。作为一个示例,可以将图9所示的参考样本线中除第二非相邻参考样本线以外的其他参考样本线设置为候选参考样本线。表1示出了分配给各个候选参考样本线的索引。
【表1】
索引(intra_luma_ref_idx) 参考样本线
0 相邻参考样本线
1 第一非相邻参考样本线
2 第二非相邻参考样本线
也可以设置比所说明的数量更多或更少的候选参考样本线。另外,设置为候选参考样本线的非相邻参考样本线的个数或位置不限于说明的示例。作为一个示例,也可以将第一非相邻参考样本线和第三非相邻参考样本线设置为候选参考样本线,或将第二非相邻参考样本线和第三非相邻参考样本线设置为候选参考样本线。或者,也可以将第一非相邻参考样本线、第二非相邻参考样本线和第三非相邻参考样本线均设置为候选参考样本线。
候选参考样本线的个数或种类可以基于当前块的尺寸、形状、位置、是否被划分为子块或帧内预测模式中至少一个来确定。
也可以基于当前块的位置、尺寸、形状或相邻块的预测编码模式中至少一个来确定当前块的参考样本线。作为一个示例,如果当前块与图像、瓦片、片或编码树单元的边界相接时,可以将相邻参考样本线确定为当前块的参考样本线。
或者,如果当前块为非正方形时,可以将相邻参考样本线确定为当前块的参考样本线。或者,当前块的宽度和高度大于或小于阈值阈值阈值时,可以将相邻参考样本线确定为当前块的参考样本线。
参考样本线可以包括位于当前块的上端的上端参考样本以及位于当前块的左侧的左侧参考样本。上端参考样本和左侧参考样本可以从当前块相邻的重建样本得到。所述重建样本可以为应用环路滤波之前的状态。
参考样本线中包含的参考样本的个数可以基于参考样本线与参考样本线之间的距离来确定。作为一个示例,与当前块的距离为i的参考样本线中包含的参考样本个数可以比与当前块的距离为i-1的参考样本线中包含的参考样本个数更多。因此,非相邻参考样本线中包含的参考样本个数比相邻参考样本线中包含的参考样本个数更多。
可以将与当前块的距离为i的非相邻参考样本线中包含的参考样本个数与相邻参考样本线中包含的参考样本的个数差值,定义为参考样本数量偏移量。此时,可以将位于当前块的上端的上端参考样本的个数差值定义为offsetX[i],将位于当前块的左侧的左侧参考样本的个数差值定义为offsetY[i]。offsetX和offsetY可以基于当前块与非相邻参考样本线的距离来确定。作为一个示例,offsetX和offsetY可以设置为i的整数倍。作为一个示例,offsetX[i]和offset[i]可以为2i。
或者,也可以基于当前块的宽度和高度比来确定参考样本个数偏移量。公式1给出了将当前块的宽度和高度比进行数值化的一个示例。
【公式1】
whRatio=Log2(nTbW/nTbH)
也可以利用不同于公式1所示内容,将当前块的宽度和高度比进行数值化。
可以基于当前块的宽度和高度比来确定offsetX和offsetY的值。例如,在whRatio的值大于1的情况下,可以将offsetX的值设置为大于offsetY的值。作为一个示例,offsetX的值可以设置为1,offsetY的值可以设置为0。相反,在whRatio的值小于1的情况下,可以将offsetY的值设置为比offsetX的值更大。作为一个示例,offsetX的值可以设置为0,offsetY的值可以设置为1。
除x轴和y轴坐标相同的左侧上端参考样本以外,与当前块的距离为i的非相邻参考样本线,可以由(refW+offsetX[i])个上端参考样本与(refH+offsetY[i])个左侧参考样本构成。其中,refW和refH表示相邻参考样本线的长度,可以分别如下述公式2和3所示设置。
【公式2】
refW=2*nTbW
【公式3】
refH=2*nTbH
在公式2和公式3中,nTbW表示执行帧内预测的编码块或变换块的宽度,nTbH表示执行帧内预测的编码块或变换块的高度。
结果,与当前块的距离为i的参考样本线可以由(refW+refH+offsetX[i]+offsetY[i]+1)个参考样本构成。
根据当前块的帧内预测模式,并利用属于参考样本线的参考样本中至少一个来获得预测样本。
然后,可以确定当前块的帧内预测模式(S802)。当前块的帧内预测模式可以由非角度帧内预测模式或角度帧内预测模式中至少一个确定为当前块的帧内预测模式。非角度帧内预测模式包括planner和DC,角度帧内预测模式从左下端对角方向至右上端对角方向包括33个或65个模式。
图10是帧内预测模式的示意图。
图10的(a)示出了35个帧内预测模式,图10的(b)示出了67个帧内预测模式。
也可以定义比图10所示数量更多或更少的帧内预测模式。
可以基于与当前块相邻的相邻块的帧内预测模式来设置MPM(Most ProbableMode:最可能模式)。其中,相邻块可以包括与当前块的左侧相邻的左侧相邻块以及与当前块的上端相邻的上相邻块。将当前块的左侧上端样本的坐标称为(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)设置为默认模式。其中,默认模式可以包括planner、DC、竖直方向模式或水平方向模式中至少一种。
或者,当相邻块以基于矩阵的帧内预测进行编码时,可以将与用于对矩阵中某一个进行特定的索引值对应的帧内预测模式设置为candIntraPredModeX。为此,用于对矩阵进行特定的索引值和表示帧内预测模式的映射关系的查找表可以预先存储于编码器和解码器。
可以基于参数candIntraPredModeA和参数candIntraPredModeB来得到MPM。作为一个示例,可以将candIntraPredModeA和candIntraPredModeB设置为MPM,或将与candIntraPredModeA或candIntraPredModeB中较大值或较小值接近的帧内预测模式设置为MPM。其中,与candIntraPredModeX(X为A或B)类似的帧内预测模式可以为与candIntraPredModeX的索引差值为±1或±2的帧内预测模式。
MPM列表中包含的MPM的个数可以在编码器和解码器中预先设置。作为一个示例,MPM的个数可以为3个、4个、5个或6个。或者,表示MPM的个数的信息可以通过码流传递信号。或者,可以基于相邻块的预测编码模式、当前块的尺寸、形状或参考样本线索引中至少一个来确定MPM的个数。作为一个示例,在相邻参考样本线确定为当前块的参考样本线的情况下,可以利用N个MPM,相反,在非相邻参考样本线确定为当前块的参考样本线的情况下,可以利用M个MPM。M为小于N的自然数,作为一个示例,N为6,M可以为5、4或3。因此,如果当前块的参考样本线的索引为0,并且MPM标识为真时,当前块的帧内预测模式可以确定为6个候选帧内预测模式中某一个,相反,如果当前块的参考样本线的索引大于0、MPM标识为真时,当前块的帧内预测模式可以确定为5个候选帧内预测模式中的某一个。
或者,也可以与当前块的参考样本线索引无关地使用固定个数(例如,6个或5个)的MPM候选。
在后述的实施例中,假定MPM个数为6个,将6个MPM称为MPM[0]、MPM[1]、MPM[2]、MPM[3]、MPM[4]以及MPM[5]。MPM个数小于6个的实施例,可以只利用后述实施例中说明的6个MPM中的一部分来实现。或者,MPM个数大于6个的实施例,可以包括后续实施例中说明的6个MPM来实现。
MPM的初始值可以设置为candIntraPredModeA和candIntraPredModeA不同的非角度帧内预测模式或角度帧内预测模式。其中,可以设置为MPM的角度帧内预测模式,可以包括竖直方向的帧内预测模式、水平方向的帧内预测模式、左下端对角方向的帧内预测模式、左上端对角方向的帧内预测模式或右上端对角方向的帧内预测模式中至少一个。作为一个示例,MPM的初始值可以如下设置。
MPM[0]=candIntraPredModeA
MPM[1]=(candIntraPredModeA==INTRA_PLANAR)?INTRA_DC:INTRA_PLANAR
MPM[2]=INTRA_ANGULAR50
MPM[3]=INTRA_ANGULAR18
MPM[4]=INTRA_ANGULAR2
MPM[5]=INTRA_ANGULAR34
在上述示例中,((A)?B:C)表示在A中记载的条件为真时返回B值、当A中记载的条件为伪时返回C值的函数。
在candIntraPredModeA和candIntraPredModeB相同,并且candIntraPredModeA为角度帧内预测模式时,可以将MPM[0]设置为candIntraPredModeA,将与candIntraPredModeA类似的帧内预测模式设置为MPM。与candIntraPredModeA类似的帧内预测模式可以为与candIntraPredModeA的索引差值为±1或±2的帧内预测模式。为了得到与candIntraPredModeA类似的帧内预测模式,可以利用模数运算(%)和偏移量。另外,可以将非角度帧内预测模式或与candIntraPredModeA的角度差值为预先定义的值的帧内预测模式中至少一个设置为MPM。其中,与candIntraPredModeA的角度差值为预先定义的值的帧内预测模式,可以为与candIntraPredModeA垂直的帧内预测模式或与candIntraPredModeA相反方向的帧内预测模式。作为一个示例,MPM可以如下得到。
MPM[0]=candIntraPredModeA
MPM[1]=INTRA_PLANAR
MPM[2]=INTRA_DC
MPM[3]=2+((candIntraPredModeA+62)%65)
MPM[4]=2+((candIntraPredModeA-1)%65)
MPM[5]=2+((candIntraPredModeA+94)%65)
MPM[3]对应于(candIntraPredModeA-1),MPM[4]对应于(candIntraPredModeA+1)。MPM[5]表示与candIntraPredModeA垂直的帧内预测模式。
当candIntraPredModeA与candIntraPredModeB不同时,可以将candIntraPredModeA和candIntraPredModeB分别设置为MPM[0]和MPM[1]。或者,可以比较candIntraPredA与candIntraPredModeB,将最大值设置为MPM[0],将最小值设置为MPM[1]。与此相反,也可以将最小值设置为MPM[0],将最大值设置为MPM[1]。
此时,当candIntraPredModeA和candIntraPredModeB均为角度帧内预测模式时,可以将非角度帧内预测模式设置为MPM。作为一个示例,planner和DC可以分别设置为MPM[2]和MPM[3]。
可选地,可以将与candIntraPredModeA和candIntraPredModeB中值最大或最小的情形类似的帧内预测模式设置为MPM。与candIntraPredModeX类似的帧内预测模式,可以将candIntraPredModeX加上或减去偏移量而得到。此时,偏移量的最大尺寸可以基于candIntraPredModeA和candIntraPredModeB中最大值与最小值的差值来确定。作为一个示例,偏移量可以为诸如1或2的自然数。
作为一个示例,当从MAX(candIntraPredModeA、candIntraPredModeB)差分MIN(candIntraPredModeA、candIntraPredModeB)的差值不是64或1时,MPM[4]和MPM[5]可以通过如下公式得到。
MPM[4]=2+((MAX(MPM[0],MPM[1])+62)%65
MPM[5]=2+((MAX(MPM[0],MPM[1])-1)%65
其中,MAX(A,B)函数是返回A与B中较大值的函数,MIN(A,B)函数是返回A与B中较小值的函数。MPM[4]对应于(MAX(MPM[0],MPM[1])-1),MPM[5]对应于(MAX(MPM[0],MPM[1])+1)。相反,当从MAX(candIntraPredModeA,candIntraPredModeB)差分MIN(candIntraPredModeA,candIntraPredModeB)的差值为64或1时,MPM[4]和MPM[5]可以如下得到。
MPM[4]=2+((MAX(MPM[0],MPM[1])+61)%65
MPM[5]=2+(MAX(MPM[0],MPM[1])%65
MPM[4]对应于(MAX(MPM[0],MPM[1])-2),MPM[5]对应于(MAX(MPM[0],MPM[1])+2)。
当candIntraPredModeA与candIntraPredModeB中某一个为角度帧内预测模式、而另一个为非角度帧内预测模式时,可以将与MIN(candIntraPredModeA,candIntrapredModeB)不同的非角度帧内预测模式、与MAX(candIntraPredModeA,candIntraPredModeB)接近的角度帧内预测模式或与MAX(candIntraPredModeA,candIntraPredModeB)的角度差值为预先定义的值的帧内预测模式中至少一个设置为MPM。作为一个示例,MPM[2]至MPM[5]可以如下得到。
MPM[2]=!MIN(MPM[0],MPM[1])
MPM[3]=2+((MAX(MPM[0],MPM[1])+62)%65
MPM[4]=2+((MAX(MPM[0],MPM[1])-1)%65
MPM[5]=2+((MAX(MPM[0],MPM[1])+94)%65
MPM[2]表示与MPM[0]或MPM[1]不同的非角度帧内预测模式。例如,当MIN(MPM[0],MPM[1])为DC时,MPM[2]设置为planner,当MIN(MPM[0],MPM[1])为planner时,MPM[2]设置为DC。MPM[3]对应于((MAX(MPM[0],MPM[1])-1),MPM[4]对应于(MAX(MPM[0],MPM[1])+1)。MPM[5]表示与(MAX(MPM[0],MPM[1])垂直的帧内预测模式。不同于上面列举的示例,也可以将(MAX(MPM[0],MPM[1])加2或减2得到的MPM添加于MPM列表。
当candIntraPredA与candIntraPredB中的某一个为非角度帧内模式、另一个为角度帧内预测模式时,即,当candIntraPredA与PredIntraPredB中的某一个小于2而另一个大于或等于2时,可以将candIntraPredA和candIntraPredB中最大值设置为MPM。另外,可以将与所述最大值类似的帧内预测模式或垂直于所述最大值的帧内预测模式设置为MPM。作为一个示例,MPM[0]至MPM[5]可以如下得到。
MPM[0]=MAX(candIntraPredA,candIntraPredB)
MPM[1]=INTRA_PLANAR
MPM[2]=INTRA_DC
MPM[3]=2+((MAX(candIntraPredA,candIntraPredB)+62)%65
MPM[4]=2+((MAX(candIntraPredA,candIntraPredB])-1)%65
MPM[5]=2+((MAX(candIntraPredA,candIntraPredB)+94)%65
MPM[3]对应于((MAX(candIntraPredA,candIntraPredB)-1),MPM[4]对应于(MAX(candIntraPredA,candIntraPredB)+1)。MPM[5]表示与(MAX(candIntraPredA,candIntraPredB)垂直的帧内预测模式。不同于上面列举的示例,也可以将(MAX(candIntraPredA,candIntraPredB)加2或减2得到的MPM添加于MPM列表。
可以根据当前块的参考样本线的索引而得到MPM。特别是当非相邻参考样本线确定为当前块的参考样本线时,可以不将诸如planner或DC的非角度预测模式设置为MPM。作为一个示例,MPM的初始值可以根据相邻参考样本线是否确定为当前块的参考样本线而如下设置。
MPM[0]=(IntraLumaRefLineIdx==0)?candIntraPredModeA:INTRA_ANGULAR2
MPM[1]=(IntraLumaRefLineIdx==0)?(candIntraPredModeA:==INTRA_PLANAR?INTRA_DC:INTRA_PLANAR):INTRA_ANGULAR18
MPM[2]=INTRA_ANGULAR50
MPM[3]=(IntraLumaRefLineIdx==0)?INTRA_ANGULAR18:INTRA_ANGULAR34
MPM[4]=(IntraLumaRefLineIdx==0)?INTRA_ANGULAR2:INTRA_ANGULAR66
MPM[5]=(IntraLumaRefLineIdx==0)?INTRA_ANGULAR34:INTRA_ANGULAR42
如果当前块的参考样本线为非相邻参考样本线,candIntraPredModeA和candIntraPredModeB均为角度帧内预测模式时,可以如下得到MPM。
MPM[0]=candIntraPredModeA
MPM[1]=candIntraPredModeB
MPM[2]=INTRA_ANGULAR2
MPM[3]=INTRA_ANGULAR18
MPM[4]=INTRA_ANGULAR50
MPM[5]=INTRA_ANGULAR34
如果当前块的参考样本线为非相邻参考样本线,candIntraPredModeA和candIntraPredModeB中的某一个为非角度帧内预测模式、另一个为角度帧内预测模式时,可以如下得到MPM。
MPM[0]=MAX(candIntraPredModeA,candIntraPredModeB)
MPM[1]=INTRA_ANGULAR2
MPM[2]=INTRA_ANGULAR18
MPM[3]=INTRA_ANGULAR50
MPM[4]=INTRA_ANGULAR34
MPM[5]=INTRA_ANGULAR66
生成包括多个MPM的MPM列表后,可以将表示与当前块的帧内预测模式相同的MPM是否包含于MPM列表的信息通过码流传递信号。所述信息为1比特的标识,可以称为MPM标识。当所述MPM标识表示与当前块相同的MPM包含于MPM列表时,识别MPM中一个MPM的索引信息可以通过码流传递信号。作为一个示例,对多个MPM中的某一个进行特定的索引信息mpm_idx可以通过码流传递信号。借助于所述索引信息而特定的MPM可以设置为当前块的帧内预测模式。当所述MPM标识表示与当前块相同的MPM不包含于MPM列表时,指示除MPM之外的其他帧内预测模式中的某一个的其他模式信息,可以通过码流传递信号。其他模式信息在向除MPM之外的其他帧内预测模式再分配索引时,指示与当前块的帧内预测模式对应的索引值。解码器可以将MPM按照升序排列,将其他模式信息与MPM比较,确定当前块的帧内预测模式。作为一个示例,当其他模式信息等于或小于MPM时,可以在其他模式信息中加1而得到当前块的帧内预测模式。
当得到当前块的帧内预测模式时,可以跳过对MPM中的一部分MPM与其他模式信息的比较。作为一个示例,MPM中作为非角度帧内预测模式的MPM可以排除在比较对象之外。当非角度帧内预测模式设置为MPM时,其他模式信息明确指示角度帧内预测模式,因而通过除非角度帧内预测模式之外的其他MPM与其他模式信息的比较,可以得到当前块的帧内预测模式。可以不将非角度帧内预测模式排除在比较对象之外,而是在其他模式信息中加上非角度帧内预测模式的个数后,将其结果值与其他MPM进行比较。
可以不将默认模式设置为MPM,而是将表示当前块的帧内预测模式是否为默认模式的信息,通过码流传递信号。所述信息为1比特的标识,可以将所述标识称为默认模式标识。所述默认模式标识只限于MPM标识表示与当前块相同的MPM包含于MPM列表时才可以传递信号。如上所述,默认模式可以包括planner、DC、竖直方向模式或水平方向模式中至少一个。作为一个示例,当planner设置为默认模式时,默认模式标识可以指示当前块的帧内预测模式是否为planner。当默认模式标识指示当前块的帧内预测模式并非默认模式时,可以将由索引信息指示的多个MPM中的一个设置为当前块的帧内预测模式。
当利用默认模式标识时,与默认模式相同的帧内预测模式可以不设置成MPM。作为一个示例,当默认模式标识指示当前块的帧内预测模式是否为planner时,可以将上述6个MPM中与planner相应的MPM置换为另一模式,或利用除与planner相应的MPM之外的5个MPM,得到当前块的帧内预测模式。
当多个帧内预测模式设置为默认模式时,还可以传递指示默认模式中某一个的索引信息。当前块的帧内预测模式可以设置为所述索引信息指示的默认模式。
在当前块的参考样本线的索引不为0的情况下,可以设置成不使用默认模式。作为一个示例,当非相邻参考样本线确定为当前块的参考样本线时,可以设置为不使用诸如DC模式或planner模式的非角度帧内预测模式。因此,在参考样本线的索引不为0的情况下,可以不传递默认模式标识,而将所述默认模式标识的值设置为预先定义的值(即,伪)。
当前块的帧内预测模式确定后,可以基于确定的帧内预测模式,获得关于当前块的预测样本(S803)。
当选择DC模式时,可以基于参考样本的平均值,生成对当前块的预测样本。具体而言,预测块内全体样本的值可以基于参考样本的平均值生成。平均值可以利用位于当前块的上端的上端参考样本以及位于当前块的左侧的左侧参考样本中至少一个而得到。
根据当前块的形状,得到平均值所利用的参考样本个数或范围会不同。作为一个示例,如果当前块为宽度大于高度的非正方形块时,可以只利用上端参考样本来计算平均值。相反,如果当前块为宽度小于高度的非正方形块时,可以只利用左侧参考样本来计算平均值。即,如果当前块的宽度和高度不同时,可以只利用与长度更长一侧相邻的参考样本来计算平均值。或者,可以基于当前块的宽度与高度比率,确定是只利用上端参考样本来计算平均值还是只利用左侧参考样本来计算平均值。
当选择planner模式时,可以利用水平方向预测样本与竖直方向预测样本来获得预测样本。其中,水平方向预测样本是基于位于与预测样本相同水平线上的左侧参考样本和右侧参考样本而获得,竖直方向预测样本是基于位于与预测样本相同竖直线上的上端参考样本和下端参考样本而获得。其中,右侧参考样本可以复制与当前块右侧上端角相邻的参考样本而生成,下端参考样本可以复制与当前块左侧下端角相邻的参考样本而生成。水平方向预测样本可以基于左侧参考样本和右侧参考样本的加权和运算而获得,竖直方向预测样本可以基于上端参考样本和下端参考样本的加权和运算而获得。此时,各参考样本对应的加权值可以根据预测样本的位置而确定。预测样本可以基于水平方向预测样本和竖直方向预测样本的平均运算或加权和运算而获得。当执行加权和运算时,可以基于预测样本的位置,确定水平方向预测样本和竖直方向预测样本对应的加权值。
当选择角度预测模式时,可以确定用于表示所选角度预测模式的预测方向(或预测角度)的参数。下表2示出了各帧内预测模式的帧内方向参数intraPredAng。
【表2】
Figure BDA0004136192420000131
表2示出了当定义35个帧内预测模式时,索引为2至34中某一个的各个帧内预测模式的帧内方向参数。当定义了比33个更多的角度帧内预测模式时,可以对表2进一步细化,设置各个角度帧内预测模式的帧内方向参数。
将当前块的上端参考样本和左侧参考样本排成一列后,可以基于帧内方向参数的值来获得预测样本。此时,当帧内方向参数的值为负数时,可以将左侧参考样本和上端参考样本排成一列。
图11和图12是将参考样本排成一列的一维排列的示例的示意图。
图11示出了将参考样本沿竖直方向排列的竖直方向一维排列的示例,图12示出了将参考样本沿水平方向排列的水平方向一维排列的示例。假定定义了35个帧内预测模式,对图11和图12的实施例进行说明。
当帧内预测模式索引为11至18中的某一个时,可以应用将上端参考样本逆时针方向旋转的水平方向一维排列,当帧内预测模式索引为19至25中的某一个时,可以应用将左侧参考样本顺时针方向旋转的竖直方向一维排列。可以根据帧内预测模式的角度将参考样本排成一列。
可以基于帧内方向参数来确定参考样本确定参数。参考样本确定参数可以包括用于对参考样本进行特定的参考样本索引以及用于确定参考样本中应用的加权值的加权值参数。
参考样本索引iIdx和加权值参数ifact分别可以通过下述公式4和5而获得。
【公式4】
iIdx=(y+1)*Pang/32
【公式5】
ifact=[(y+1)*Pang]&31
在公式4和5中,Pang表示帧内方向参数。根据参考样本索引iIdx而特定的参考样本对应于整数像素(Integer pel)。
为了得到预测样本,可以对至少一个参考样本进行特定。具体而言,考虑到预测模式的斜率,可以对得到预测样本时所利用的参考样本的位置进行特定。作为一个示例,可以利用参考样本索引iIdx,对得到预测样本时所利用的参考样本进行特定。
此时,当帧内预测模式的斜率不以一个参考样本表现时,可以对多个参考样本进行插值而生成预测样本。作为一个示例,当帧内预测模式的斜率为介于预测样本与第一参考样本之间的斜率以及预测样本与第二参考样本之间的斜率之间的值时,可以对第一参考样本和第二参考样本进行插值而获得预测样本。即,当基于帧内预测角度的角线(AngularLine)不经过位于整数像素的参考样本时,可以对位于与所述角线经过位置的左右或上下相邻位置的参考样本进行插值而获得预测样本。
下述公式6示出了基于参考样本来获得预测样本的示例。
【公式6】
P(x,y)=((32-ifact)/32)*Ref_1D(x+iIdx+1)+(ifact/32)*Ref_1D(x+iIdx+2)
在公式6中,P表示预测样本,Ref_1D表示一维排列的参考样本中的某一个。此时,参考样本的位置可以根据预测样本的位置(x,y)和参考样本索引iIdx而确定。
当帧内预测模式的斜率可以用一个参考样本表现时,加权值参数ifact设置为0。因此,公式6可以如以下公式7所示简化。
【公式7】
P(x,y)=Ref_1D(x+iIdx+1)
也可以基于多个帧内预测模式来执行对当前块的帧内预测。作为一个示例,可以按照预测样本来得到帧内预测模式,基于分配给各个预测样本的帧内预测模式,得到预测样本。
或者,可以按照区域得到帧内预测模式,基于分配给各个区域的帧内预测模式,执行对各区域的帧内预测。其中,所述区域可以包括至少一个样本。所述区域的尺寸或形状中至少一个可以基于当前块的尺寸、形状或帧内预测模式中至少一个而适应性地确定。或者,可以在编码器和解码器中,独立于当前块的尺寸或形状,预先定义区域的尺寸或形状中至少一个。
或者,可以分别基于多个帧内预测而执行帧内预测,基于通过多次帧内预测而获得的多个预测样本的平均运算或加权和运算而得到最终预测样本。作为一个示例,可以基于第一帧内预测模式来执行帧内预测,获得第一预测样本,基于第二帧内预测模式来执行帧内预测,获得第二预测样本。然后,可以基于第一预测样本和第二预测样本之间的平均运算或加权和运算而获得最终预测样本。此时,分别分配给第一预测样本和第二预测样本的加权值,可以根据第一帧内预测模式是否为非角度或角度预测模式、第二帧内预测模式是否为非角度或角度预测模式或相邻块的帧内预测模式中至少一个来确定。
多个帧内预测模式可以为非角度帧内预测模式与角度预测模式的组合、角度预测模式的组合或非角度预测模式的组合。
图13是示例性图示由角度帧内预测模式与平行于X轴的直线形成的角度的图。
如图13所示,角度预测模式可以存在于左侧下端对角方向至右侧上端对角方向之间。如果用x轴与角度预测模式形成的角度进行说明,角度预测模式可以存在于45度(左侧下端对角方向)至-135度(右侧上端对角方向)之间。
如果当前块为非正方形时,根据当前块的帧内预测模式,会发生不利用位于帧内预测角度的角线上的参考样本中距离预测样本较近的参考样本,而是利用距离预测样本较远的参考样本来得到预测样本的情形。
图14是在当前块为非正方形时预测样本获得的形状的示意图。
作为一个示例,如图14的(a)所示,假定当前块为宽度大于高度的非正方形,当前块的帧内预测模式为具有0度至45度之间角度的角度帧内预测模式。在上述情况下,当得到当前块的右侧列附近的预测样本A时,会发生在位于所述角度的角度模式上的参考样本中,不利用与所述预测样本较近的上端参考样本T,而是利用与所述预测样本较远的左侧参考样本L的情形。
作为另一示例,如图14的(b)所示,假定当前块为高度大于宽度的非正方形,当前块的帧内预测模式为-90度至-135度之间的角度帧内预测模式。在上述情况下,当得到当前块的下端行附近的预测样本A时,会发生在位于根据所述角度的角度模式上的参考样本中,利用与所述预测样本较远的上端参考样本T取代与所述预测样本较近的左侧参考样本L的情形。
为了消除如上所述问题,如果当前块为非正方形时,可以将当前块的帧内预测模式置换为相反方向的帧内预测模式。因此,对于非正方形块,可以使用具有比图10所示角度预测模式更大或更小的角度的角度预测模式。可以将这种角度帧内预测模式定义为广角帧内预测模式(wide angle intra prediction mode)。广角帧内预测模式表示不属于45度至-135度范围的角度帧内预测模式。
图15是广角帧内预测模式的示意图。
在图15所示示例中,索引为-1至-14的帧内预测模式以及索引为67至80之间的帧内预测模式,表示广角帧内预测模式。
在图15中,示例性图示了角度大于45度的14个广角帧内预测模式(-1至-14)以及角度小于-135度的14个广角帧内预测模式(67至80),但也可以定义更多或更少数量的广角帧内预测模式。
当使用广角帧内预测模式时,上端参考样本的长度可以设置为2W+1,左侧参考样本的长度可以设置为2H+1。
随着使用广角帧内预测模式,图14(a)所示的样本A可以利用参考样本T来预测,图14的(b)所示的样本A可以利用参考样本L来预测。
加上原有帧内预测模式和N个广角帧内预测模式,可以使用共67+N个帧内预测模式。作为一个示例,表3示出了当定义20个广角帧内预测模式时帧内预测模式的帧内方向参数。
【表3】
PredModeIntra -10 -9 -8 -7 -6 -5 -4 -3 -2
intraPredAngle 114 93 79 68 60 54 49 45 39
PredModeIntra -1 2 3 4 5 6 7 8 9
intraPredAngle 35 32 29 26 23 21 19 17 15
PredModeIntra 10 11 12 13 14 15 16 17 18
intraPredAngle 13 11 9 7 5 3 2 1 0
PredModeIntra 19 20 21 22 23 24 25 26 27
intraPredAngle -1 -2 -3 -5 -7 -9 -11 -13 -15
PredModeIntra 28 29 30 31 32 33 34 35 36
intraPredAngle -17 -19 -21 -23 -26 -29 -32 -29 -26
PredModeIntra 37 38 39 40 41 42 43 44 45
intraPredAngle -23 -21 -19 -17 -15 -13 -11 -9 -7
PredModeIntra 46 47 48 49 50 51 52 53 54
intraPredAngle -5 -3 -2 -1 0 1 2 3 5
PredModeIntra 55 56 57 58 59 60 61 62 63
intraPredAngle 7 9 11 13 15 17 19 21 23
PredModeIntra 64 65 66 67 68 69 70 71 72
intraPredAngle 26 29 32 35 39 45 49 54 60
PredModeIntra 73 74 75 76
intraPredAngle 68 79 93 114
如果当前块为非正方形、S802步骤获得的当前块的帧内预测模式属于变换范围时,可以将当前块的帧内预测模式变换为广角帧内预测模式。所述变换范围可以基于当前块的尺寸、形状或比率中至少一个来确定。其中,所述比率可以表示当前块的宽度和高度之间的比率。
如果当前块为宽度大于高度的非正方形时,变换范围可以设置为右侧上端对角方向的帧内预测模式索引(例如,66)至(右侧上端对角方向的帧内预测模式的索引(例如,-N)。其中,N可以基于当前块的比率来确定。如果当前块的帧内预测模式属于变换范围时,可以将所述帧内预测模式变换为广角帧内预测模式。所述变换可以是从所述帧内预测模式减去预先定义的值,预先定义的值可以为除广角帧内预测模式之外的帧内预测模式的总个数(例如,67)。
根据所述实施例,66号至53号之间的帧内预测模式可以分别变换为-1号至-14号之间的广角帧内预测模式。
如果当前块为高度大于宽度的非正方形时,变换范围可以设置为左侧下端对角方向的帧内预测模式索引(例如,2)至(左侧下端对角方向的帧内预测模式的索引(例如,+M)。其中,M可以基于当前块的比率来确定。如果当前块的帧内预测模式属于变换范围时,可以将所述帧内预测模式变换为广角帧内预测模式。所述变换可以是在所述帧内预测模式中加上预先定义的值,预先定义的值可以是除广角帧内预测模式之外的角度帧内预测模式的总个数(例如,65)。
根据所述实施例,2号至15号之间的帧内预测模式分别可以变换为67号至80号之间的广角帧内预测模式。
下面将属于变换范围的帧内预测模式称为替代广角帧内预测模式。
变换范围可以基于当前块的比率确定。作为一个示例,表4和表5分别表示除了广角帧内预测模式以外定义35个帧内预测模式时的变换范围和定义67个帧内预测模式时的变换范围。
【表4】
条件 替代的帧内预测模式
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
【表5】
条件 替代的帧内预测模式
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
如表4和表5所示,变换范围所包括的替代广角帧内预测模式的个数会根据当前块的比率而不同。
也可以对当前块的比率进一步细化,如下表6所示设置变换范围。
【表6】
条件 替代的帧内预测模式
W/H=16 模式12、13、14、15
W/H=8 模式12、13
W/H=4 模式2、3、4、5、6、7、8、9、10、11
H/W=2 模式2、3、4、5、6、7
H/W=1
W/H=1/2 模式61、62、63、64、65、66
W/H=1/4 模式57、58、59、60、61、62、63、64、65、66
W/H=1/8 模式55、56
H/W=1/16 模式53、54、55、56
非相邻参考样本线被确定为当前块的参考样本线的情形,或者,从多个参考样本线中选择某一个的多参考线帧内预测的情形,可以设置成不使用广角帧内预测模式。即,即使是当前块为非正方形、当前块的帧内预测模式属于变换范围的情形,也可以不将当前块的帧内预测模式变换为广角帧内预测模式。
或者,如果当前块的帧内预测模式确定为广角帧内预测模式时,可以设置为不能将非相邻参考样本线用作当前块的参考样本线,或设置成不使用从多个参考样本线中选择某一个的多参考线帧内预测。当不使用多参考线帧内预测时,相邻参考样本线可以确定为当前块的参考样本线。
当不使用广角帧内预测模式时,可以将refW和refH设置为nTbW与nTbH之和。因此,除左侧上端参考样本外,与当前块的距离为i的非相邻参考样本可以包括(nTbW+nTbH+offsetX[i])个上端参考样本和(nTbW+nTbH+offsetY[i])个左侧参考样本。即,与当前块的距离为i的非相邻参考样本可以包括(2nTbW+2nTbH+offsetX[i]+offsetY[i]+1)个参考样本。例如,在whRatio的值大于1的情况下,可以将offsetX的值设置为大于offsetY的值。作为一个示例,offsetX的值可以设置为1,offsetY的值可以设置为0。相反,在whRatio的值小于1的情况下,可以将offsetY的值设置成大于offsetX的值。作为一个示例,offsetX的值可以设置为0,offsetY的值可以设置为1。
随着在原有帧内预测模式中追加使用广角帧内预测模式,对广角帧内预测模式进行编码所需的资源增加,编码效率会下降。因此,可以不直接对广角帧内预测模式进行编码,而是对广角帧内预测模式的替代帧内预测模式进行编码,从而提高编码效率。
作为一个示例,如果当前块利用67号广角帧内预测模式进行编码时,可以将作为67号广角帧内预测模式替代的帧内预测模式的2号作为当前块的帧内预测模式进行编码。另外,如果当前块以-1号广角帧内预测模式进行编码时,可以将-1号广角帧内预测模式的替代帧内预测模式的66号作为当前块的帧内预测模式进行编码。
解码器可以对当前块的帧内预测模式进行解码,判断经解码的帧内预测模式是否包含于变换范围。当解码的帧内预测模式为广角帧内预测模式替代的帧内预测模式时,可以将帧内预测模式变换为广角帧内预测模式。
或者,如果当前块以广角帧内预测模式编码时,也可以直接对广角帧内预测模式进行编码。
帧内预测模式的编码可以基于上述MPM列表实现。具体而言,当相邻块以广角帧内预测模式编码时,可以基于与所述广角帧内预测模式对应的广角帧内预测模式替代的帧内预测模式来设置MPM。作为一个示例,当相邻块以广角帧内预测模式编码时,可以将参数candIntraPredModeX(X为A或B)设置为广角帧内预测模式替代的帧内预测模式。
或者,也可以基于相邻块的广角帧内预测模式来设置MPM。作为一个示例,当相邻块以广角帧内预测模式编码时,可以将参数candIntraPredModeX设置为广角帧内预测模式。
也可以基于当前块的参考样本线是否为非相邻参考样本线或是否应用从多个参考样本线中选择一个的多参考线帧内预测来得到MPM。作为一个示例,如果当前块的参考样本线为非相邻参考样本线,并且与当前块相邻的相邻块的帧内预测模式为广角帧内预测模式时,可以将默认模式设置为当前块的MPM。
作为一个示例,当基于左侧相邻块的帧内预测模式而得到的candIntraPredModeA与基于上相邻块的帧内预测模式而得到的candIntraPredModeB相同,并且candIntraPredModeA为planner或DC时,可以根据当前块的参考样本线的索引是否为0,如下得到MPM。
MPM[0]=(IntraLumaRefLineIdx==0)?Intra_Planar:INTRA_ANGULAR 50
MPM[1]=(IntraLumaRefLineIdx==0)?Intra_DC:INTRA_ANGULAR 18
MPM[2]=INTRA_ANGULAR 2
即,在当前块的参考样本线的索引为0的情况下,将planner模式和DC模式设置为MPM,相反,在当前块的参考样本线索引不为0的情况下,可以将竖直方向帧内预测模式(INTRA_ANGULAR 50)和水平方向帧内预测模式(INTRA_ANGULAR 18)设置为MPM。
如果当前块的参考样本线的索引不为0,并且candIntraPredModeA与candIntraPredModeB相同或candIntraPredModeA为广角帧内预测模式时,可以如下得到MPM。
MPM[0]=INTRA_ANGULAR2
MPM[1]=INTRA_ANGULAR18
MPM[2]=INTRA_ANGULAR50
或者,也可以如下得到MPM。
MPM[0]=INTRA_ANGULAR50
MPM[1]=INTRA_ANGULAR18
MPM[2]=INTRA_ANGULAR2
即,在当前块的参考样本线索引不为0的情况下,可以不将广角帧内预测模式设置为MPM。
当candIntraPredModeA和candIntraPredModeB相同,并且candIntraPredModeA为角度帧内预测模式时,可以如下得到MPM。
MPM[0]=candIntraPredModeA
MPM[1]=2+((candIntraPredModeA+61)%64)
MPM[2]=2+((candIntraPredModeA-1)%64)
如果当前块的参考样本线的索引为0,并且candIntraPredModeA和candIntraPredModeB不同时,MPM[0]和MPM[1]可以分别设置为candIntraPredModeA和candIntraPredModeB。MPM[2]可以设置为planner、DC及竖直方向模式中与MPM[0]和MPM[1]不同。
如果当前块的参考样本线的索引不为0,并且candIntraPredModeA和candIntraPredModeB中的某一个为planner而另一个为DC时,可以如下得到MPM。
MPM[0]=INTRA_ANGULAR2
MPM[1]=INTRA_ANGULAR18
MPM[2]=INTRA_ANGULAR50
如果当前块的参考样本线的索引不为0,并且candIntraPredModeA和candIntraPredModeB均为广角帧内预测模式时,可以如下得到MPM。
MPM[0]=INTRA_ANGULAR2
MPM[1]=INTRA_ANGULAR18
MPM[2]=INTRA_ANGULAR50
如果当前块的参考样本线的索引不为0,并且candIntraPredModeA和candIntraPredModeB中的某一个为广角帧内预测模式时,可以将candIntrapredModeA和candIntraPredModeB中为非广角帧内预测模式的一方设置为MPM[0],将与MPM[0]类似的帧内预测模式设置为MPM[1]和MPM[2]。作为一个示例,当candIntraPredModeA为非广角帧内预测模式,并且candIntraPredModeB为广角帧内预测模式时,可以如下得到MPM。
MPM[0]=candIntraPredModeA
MPM[1]=2+((candIntraPredModeA+61)%64)
MPM[2]=2+((candIntraPredModeA-1)%64)
相反,当candIntraPredModeA为广角帧内预测模式,并且candIntraPredModeB为非广角帧内预测模式时,可以如下得到MPM。
MPM[0]=candIntraPredModeB
MPM[1]=2+((candIntraPredModeB+61)%64)
MPM[2]=2+((candIntraPredModeB-1)%64)
如果当前块的参考样本线的索引不为0,并且candIntraPredModeA和candIntraPredModeB中的某一个为planner或DC而另一个为非广角帧内预测模式时,可以将candIntrapredModeA和candIntraPredModeB中为非广角帧内预测模式的一方设置为MPM[0],将与MPM[0]类似的帧内预测模式设置为MPM[1]和MPM[2]。作为一个示例,当candIntraPredModeA为非广角帧内预测模式、candIntraPredModeB为planner或DC时,可以如下得到MPM。
MPM[0]=candIntraPredModeA
MPM[1]=2+((candIntraPredModeA+61)%64)
MPM[2]=2+((candIntraPredModeA-1)%64)
相反,当candIntraPredModeA为planner或DC、candIntraPredModeB为非广角帧内预测模式时,可以如下得到MPM。
MPM[0]=candIntraPredModeB
MPM[1]=2+((candIntraPredModeB+61)%64)
MPM[2]=2+((candIntraPredModeB-1)%64)
如果当前块的参考样本线的索引不为0,并且candIntraPredModeA和candIntraPredModeB均为非广角帧内预测模式时,可以将candIntraPredModeA和candIntraPredModeB分别设置为MPM[0]和MPM[1]。可以将竖直方向帧内预测模式(INTRA_ANGULAR50)、水平方向帧内预测模式(INTRA_ANGULAR18)或左侧下端对角方向帧内预测模式(INTRA_ANGULAR2)中不与MPM[0]和MPM[1]重复的某一个设置为MPM[2]。
可以将编码块或变换块划分成多个子块(或子分区)。当编码块或变换块划分成多个子块时,可以针对各个子块执行预测、变换以及量化。可以把将编码块或变换块划分成多个子块的情形定义为子分区帧内编码方法。
表示是否应用子分区帧内编码方法的信息,可以通过码流传递信号。所述信息可以为1比特的标识。作为一个示例,表示编码块或变换块是否划分成多个子块的语法要素“intra_subpartitions_mode_flag”,可以通过码流传递信号。
或者,可以基于编码块或变换块的尺寸、形状或帧内预测模式中至少一个,确定是否应用了子分区帧内编码方法。作为一个示例,在编码块的帧内预测模式为非角度帧内预测模式(例如,planner或DC)或预先定义的角度帧内预测模式(例如,水平方向的帧内预测模式、竖直方向的帧内预测模式或对角方向的帧内预测模式)的情况下,可以不应用子分区帧内编码方法。或者,当编码块的尺寸小于阈值时,可以设置为不使用子分区帧内编码方法。
或者,当基于编码块的帧内预测模式来执行对子块的帧内预测时,可以基于是否需要在子块的帧内预测时将相邻子块包含的重建样本用作参考样本,确定是否应用子分区帧内编码方法。作为一个示例,在编码块的帧内预测模式为对角方向帧内预测模式或广角帧内预测模式,基于所述帧内预测模式执行对子块的帧内预测时,在无法将相邻子块用作参考样本的情况下,可以设置为不使用子分区帧内编码方法。
或者,当编码块的高度和宽度比为阈值以上或阈值以下时,可以设置为不使用子分区帧内编码方法。或者,当编码块的高度或宽度中至少一个为阈值以下时,可以不使用子分区帧内编码方法。作为一个示例,当编码块的高度和宽度均为阈值以下时,可以不使用子分区帧内编码方法。阈值可以具有编码器和解码器中预先定义的值。或者,用于确定阈值的信息可以通过码流传递信号。
或者,可以根据编码块或变换块的尺寸、形状或帧内预测模式中至少一个,确定是否传递了用于表示是否应用子分区帧内编码方法的标识。作为一个示例,可以只限于编码块的高度和宽度均为阈值以下的情节和/或编码块的尺寸为阈值以上的情形,编码并传递是否应用了用于表示子分区帧内编码方法的标识。当表示是否应用子分区帧内编码方法的标识未编码时,可以不应用子分区帧内编码方法。
当应用子分区帧内编码方法时,可以确定编码块或变换块的划分形状。其中,划分形状表示编码块或变换块的划分方向。作为一个示例,竖直方向划分是指利用至少一个竖直线来划分编码块或变换块,水平方向划分是指利用至少一个水平线来划分编码块或变换块。
图16是竖直方向划分以及水平方向划分的一个示例的示意图。
图16的(a)示出了编码块划分为2个子块的示例,图16的(b)示出了编码块划分为4个子块的示例。
用于确定编码块和变换块的划分形状的信息,可以通过码流传递信号。作为一个示例,表示编码块或变换块应用了竖直方向划分还是应用了水平方向划分的信息可以通过码流传递信号。所述信息可以为1比特的标识intra_subpart_type_flag。当所述标识的值为1时,表示编码块或变换块沿水平方向划分,当所述标识的值为0时,表示编码块或变换块沿竖直方向划分。
或者,可以基于编码块或变换块的尺寸、形状或帧内预测模式,确定编码块或变换块的划分形状。作为一个示例,可以基于编码块的宽度和高度比,确定编码块的划分形状。例如,表示编码块的宽度和高度比的whRatio值为第一阈值以上的情况下,可以对编码块应用竖直方向划分。否则,可以对编码块应用水平方向划分。
图17是确定编码块的划分形状的示例的示意图。
为了便于说明,第一阈值假定为2。在图17的(a)所示的示例中,编码块的whRatio为1,这小于第一阈值。因此,可以跳过对表示编码块划分形状的信息的编码,对编码块应用水平方向划分。
在图17的(b)所示的示例中,编码块的whRatio为2,这与第一阈值相同。因此,可以跳过对代表编码块划分形状的信息的编码,对编码块应用竖直方向划分。
也可以利用与第一阈值符号相反的第二阈值来确定编码块的划分形状。作为一个示例,在whRatio值为第二阈值以下的情况下,可以对编码块应用水平方向划分,否则,可以对编码块应用竖直方向划分。第一阈值和第二阈值的绝对值可以相同,他们的符号可以不同。作为一个示例,当第一阈值为N(其中,N为1、2、4等整数)时,第二阈值可以为-N。
图18是确定编码块的划分形状的示例的示意图。
为了便于说明,第二阈值假定为-2。在图18的(a)所示的示例中,编码块的whRatio为-1,这大于第二阈值。因此,可以跳过对表示编码块划分形状的信息的编码,对编码块应用竖直方向划分。
在图18的(b)所示的示例中,编码块的whRatio为-2,这与第二阈值相同。因此,可以跳过对表示编码块划分形状的信息的编码,对编码块应用水平方向划分。
或者,也可以以第一阈值和第二阈值为基准来确定编码块的划分形状。作为一个示例,在whRatio的值为第一阈值以上的情况下,可以对编码块采用水平方向划分,在whRatio的值为第二阈值以下的情况下,可以对编码块采用竖直方向划分。当whRatio的值存在于第一阈值和第二阈值之间时,可以从码流解析信息,确定当前块的划分形状。
第一阈值和第二阈值可以在编码器和解码器中预先定义。或者,可以按照序列、图像或片来定义第一阈值和第二阈值。
或者,可以基于编码块或变换块的尺寸来确定划分形状。作为一个示例,当编码块的尺寸为N×n时,可以应用竖直方向划分,当编码块的尺寸为n×N时,可以应用水平方向划分。其中,n可以为小于N的自然数。N和/或n可以是在编码器和解码器中预先定义的值。或者,用于确定N和/或n的信息可以通过码流传递信号。作为一个示例,N可以为32、64、128或256等。因此,在编码块的尺寸为128×n(其中,n为16、32或64等自然数)的情况下,可以应用竖直方向划分,在编码块的尺寸为n×128的情况下,可以应用水平方向划分。
或者,可以基于编码块或变换块的帧内预测模式,确定编码块或变换块的划分形状。作为一个示例,当编码块的帧内预测模式为水平方向或与水平方向类似的方向时,可以对编码块应用竖直方向划分。其中,与水平方向类似的方向的帧内预测模式,表示与水平方向的帧内预测模式(例如,图10的(b)所示的INTRA_ANGULAR18)的索引差值为阈值以下的帧内预测模式(例如,INTRA_ANGULAR18±N)。相反,当编码块的帧内预测模式为竖直方向或与竖直方向类似的方向时,可以对编码块应用水平方向划分。其中,与竖直方向类似的方向的帧内预测模式,表示与竖直方向的帧内预测模式(例如,图10的(b)所示的INTRA_ANGULAR50)的索引差值为阈值以下的帧内预测模式(例如,INTRA_ANGULAR50±N)。其中,阈值N可以为编码器和解码器中预先定义的值。或者,用于确定阈值N的信息可以从序列级、图像级或片级传递信号。
图19是基于编码块的帧内预测模式来确定编码块的划分形状的示例的示意图。
如图19的(a)所示,当编码块的帧内预测模式为与竖直方向类似的方向时,可以对编码块应用水平方向划分。
相反,如图19的(b)所示,当编码块的帧内预测模式为与水平方向类似的方向时,可以对编码块应用竖直方向划分。
与所示示例相反,当编码块的帧内预测模式为水平方向或与水平方向类似的方向时,可以应用水平方向划分,当编码块的帧内预测模式为竖直方向或与竖直方向类似的方向时,也可以应用竖直方向划分。
当应用竖直方向划分或水平方向划分时,可以基于通过划分编码块或变换块而生成的子块的宽度或高度中至少一个是否小于阈值来确定编码块或变换块的划分形状。其中,阈值可以为2、4或8等整数。
图20是用于说明编码块的划分形状的示意图。
当对图20的(a)所示的4×8尺寸的编码块应用水平方向划分时,所述编码块划分成2×8尺寸的子块。此时,子块的宽度小于阈值,因而对于所述编码块,会无法利用水平方向划分。相反,当对4×8尺寸的编码块应用竖直方向划分时,所述编码块划分成4×4尺寸的子块。子块的宽度和高度均为阈值以上,因此对于所述编码块,可以利用竖直方向划分。对于所述编码块,只能利用竖直方向划分,因此,可以跳过对表示所述编码块的划分形状的信息的编码,对所述编码块应用竖直方向划分。
当对图20的(b)所示的8×4尺寸的编码块应用竖直方向划分时,所述编码块划分成8×2尺寸的子块。此时,子块的高度小于阈值,因此,对于所述编码块,会无法利用竖直方向划分。相反,当对8×4尺寸的编码块应用水平方向划分时,所述编码块划分成4×4尺寸的子块。子块的宽度和高度均为阈值以上,因而对所述编码块,可以利用水平方向划分。对于所述编码块,只能利用水平方向划分,因而可以跳过对表示所述编码块的划分形状的信息的编码,对所述编码块应用竖直方向划分。
当竖直方向划分以及水平方向划分均可利用时,可以解析表示编码块的划分形状的信息,确定编码块的划分形状。
子块的个数可以基于编码块或变换块的尺寸或形状中至少一个来确定。作为一个示例,当编码块的宽度或高度中的某一个为8、另一个为4时,编码块可以划分成2个子块。相反,当编码块的宽度和高度均为8以上或者编码块的宽度或高度中的某一个大于8时,编码块可以划分成4个子块。简而言之,在编码块为4×4尺寸的情况下,编码块可以不划分成子块。在编码块为4×8或8×4尺寸的情况下,可以将编码块划分成2个子块。在其他的情况下,可以将编码块划分成4个子块。
或者,表示子块的尺寸、形状或子块个数的信息可以通过码流传递信号。根据表示子块个数的信息,可以确定子块的尺寸或形状。或者,可以根据表示子块尺寸或形状的信息,确定子块的个数。
当应用子分区帧内编码方法时,通过划分编码块或变换块而生成的子块,可以使用相同的帧内预测模式。作为一个示例,可以基于与编码块相邻的相邻块的帧内预测模式,得到对编码块的MPM,根据所得到的MPM,确定对编码块的帧内预测模式。如果确定了编码块的帧内预测模式,则各子块可以利用确定的帧内预测模式来执行帧内预测。
当应用子分区帧内编码方法时,可以将MPM中的某一个确定为编码块的帧内预测模式。即,当应用子分区帧内编码方法时,即使不传递MPM标识,也可以视为MPM标识为真。
或者,当应用子分区帧内编码方法时,可以将预先定义的候选帧内预测模式中的某一个确定为编码块的帧内预测模式。作为一个示例,可以将水平方向的帧内预测模式、竖直方向的帧内预测模式、对角方向的帧内预测模式(例如,左上端帧内预测模式、右上端帧内预测模式或左下端帧内预测模式中至少一个)或非角度帧内预测模式(例如,planner或DC中至少一个)中的某一个确定为编码块的帧内预测模式。对预先定义的候选帧内预测模式中某一个进行特定的索引信息,可以通过码流传递信号。
根据本申请一个实施例,可以将子块中至少一个帧内预测模式设置为与其他子块不同。作为一个示例,第N子块的帧内预测模式可以将第N-1子块的帧内预测模式加上或减去偏移量而得到。偏移量可以在编码器和解码器中预先定义。或者,可以基于编码块的尺寸、形状、帧内预测模式、子块的尺寸、形状、子块的个数或编码块的划分方向中至少一个来得到偏移量。或者,可以将用于得到偏移量的信息通过码流来传递信号。
或者,在第N-1子块的帧内预测模式为非角度模式的情况下,第N子块的帧内预测模式也与第N-1子块的帧内预测模式相同地设置,在第N-1子块的帧内预测模式为角度模式的情况下,可以将第N-1子块的帧内预测模式加上或减去偏移量,使得所得到的帧内预测模式,与第N子块的帧内预测模式相同。
或者,可以对多个子块中的部分子块应用角度帧内预测模式,对剩余子块应用非角度帧内预测模式。可以根据子块的尺寸、形状、位置或子块的个数中至少一个,确定应用非角度帧内预测模式的子块。或者,可以只限于多个子块中某一个应用的角度帧内预测模式为预先定义的值时,对另一个应用非角度帧内预测模式。
或者,可以从MPM得到各子块的帧内预测模式。为此,可以针对各子块,传递对MPM中某一个进行特定的索引信息。
或者,可以从预先定义的候选帧内预测模式得到各子块的帧内预测模式。为此,可以针对各子块,传递对预先定义的候选帧内预测模式中某一个进行特定的索引信息。
或者,表示子块的帧内预测模式是否相同地设置的信息,可以通过码流传递信号。
可以个别地确定子块的量化参数。因此,各子块的量化参数的值可以不同地设置。为了确定各子块的量化参数,可以对表示与之前子块的量化参数的差值的信息进行编码。作为一个示例,针对第N子块,可以将第N子块的量化参数与第N-1子块的量化参数的差值进行编码。
子块的帧内预测可以利用参考样本来执行。此时,参考样本可以从与子块相邻的相邻块的重建样本得到。当与子块相邻的相邻块是包含于与所述子块相同的编码块的其他子块时,可以基于所述其他子块的重建样本,得到所述子块的参考样本。作为一个示例,当第一子块位于第二子块的左侧或上端时,可以从第一子块的重建样本得到第二子块的参考样本。为此,在子块间,可以不应用并列帧内预测。即,可以针对编码块包含的子块,依次进行编码或解码。因此,第一子块的编码或解码完成后,可以执行对第二子块的帧内预测。
在应用子分区帧内编码方法的情况下,可以设置成不使用选择多个参考样本线候选中某一个的多参考线帧内预测。在不使用多参考线帧内预测的情况下,可以将与各子块相邻的相邻参考样本线确定为各子块的参考样本线。
或者,即使在应用子分区帧内编码方法的情况下,也可以使用多参考线帧内预测。为此,针对各子块,可以传递用于对参考样本线进行特定的索引信息。或者,只针对多个子块中的某一个,传递用于对参考样本线进行特定的索引信息,而对于剩余子块,可以直接应用所述索引信息。或者,可以设置成传递用于针对编码块来对参考样本线进行特定的索引信息,所述编码块包含的多个子块共享所述索引信息。
或者,可以设置成子块中只有包含预先定义的位置、或预先定义的分区索引的子块,才利用多参考线帧内预测。作为一个示例,可以只针对多个子块中分区索引为0的子块或与编码块的上端边界或左侧边界相接的子块,传递对参考样本线候选中某一个进行特定的索引信息。对于其他子块,可以不应用多参考线帧内预测。因此,其他子块可以利用相邻参考样本线来执行帧内预测。
可以按照子块不同地设置预测编码模式。作为一个示例,对于一部分子块,可以应用帧内预测,对于其他子块,可以应用帧间预测、当前参考图像或复合预测。
图21是按照子块不同地设置预测编码模式的示例的示意图。
可以按照子块不同地设置帧内预测模式,或不同地设置预测编码模式。作为一个示例,在图21所示的示例中,图示了对子块0和子块1应用画面内预测,对子块1和子块2应用当前参考图像的情形。
当利用当前参考图像时,可以从当前图像或片(或瓦片组)的已解码的区域得到子块的预测块。当应用当前参考图像时,为了对子块的预测块进行特定,可以得到运动向量。也可以将当前参考图像下的运动向量称为“块矢量”。
运动向量可以基于与编码块或子块相邻的相邻块的运动向量来得到。或者,也可以通过码流传递用于确定运动向量的信息。
此时,子块的运动向量最大值可以根据子块或子块所属的编码块或变换块的尺寸来确定。作为一个示例,子块的运动向量可以设置成不超出子块所属的编码块或变换块的边界。即,子块的预测块可以从子块所属的编码块内的所述子块之前已编码或解码的区域得到。
可以替代运动向量,对表示编码块内已解码的子块中某一个的索引信息进行编码并传递信号。子块的预测块可以确定为根据索引信息而特定的已解码的子块。
作为另一示例,也可以允许子块的运动向量超出子块所属的编码块或变换块的边界。
如果作为执行帧内预测的结果而生成了预测块,则可以基于预测块包含的预测样本各自的位置来更新预测样本。可以将这种更新方法称为基于样本位置的帧内加权预测方法(或者,Position Dependent Prediction Combination:PDPC)。
是否使用PDPC,可以根据当前块的尺寸、形状、帧内预测模式、当前块的参考样本线、当前块的尺寸或色度分量来确定。作为一个示例,如果当前块的帧内预测模式为planner、DC、竖直方向、水平方向、索引值小于竖直方向的模式或索引值大于水平方向的模式中至少一个时,可以使用PDPC。或者,只限于当前块的宽度或高度中至少一个大于4时才可以使用PDPC。或者,只限于当前块的参考图像线的索引为0时才可以使用PDPC。或者,只限当前块的参考图像线的索引为预设值以上时才可以使用PDPC。或者,可以限于亮度分量而使用PDPC。或者,可以根据是否满足所述列举的条件中两个以上来确定是否使用PDPC。
或者,可以根据是否利用了子分区帧内编码方法,确定是否使用PDPC。作为一个示例,当对编码块或变换块应用子分区帧内编码方法时,可以设置成不利用PDPC。或者,当对编码块或变换块应用子分区帧内编码方法时,可以对多个子块中至少一个应用PDPC。此时,作为PDPC应用对象的子块,可以基于编码块或子块的尺寸、形状、位置、帧内预测模式或参考样本线索引中至少一个来确定。作为一个示例,可以对与编码块的上端和/或左侧边界相邻的子块或者与编码块的下端和/或右侧边界相邻的子块应用PDPC。或者,也可以设置成基于子块的尺寸或形状,对编码块包括的所有子块应用PDPC,或不对编码块包括的所有子块应用PDPC。作为又一示例,也可以对编码块内所有子块应用PDPC。
或者,可以根据划分编码块或变换块而生成的子块的尺寸、形状、帧内预测模式或参考图像索引中至少一个是否满足已设置的条件,按照子块确定是否应用PDPC。作为一个示例,在子块的宽度或高度中至少一个大于4的情况下,可以对子块应用PDPC。
作为另一示例,可以通过码流传递表示是否应用PDPC的信息。
或者,可以基于当前块的尺寸、形状、帧内预测模式或预测样本的位置中至少一个来确定PDPC应用的区域。作为一个示例,如果当前块的帧内预测模式具有大于竖直方向的索引时,可以不对x轴坐标或y轴坐标中至少一个大于阈值的预测样本进行补偿,而只对x轴坐标y轴坐标为阈值以下的预测样本执行补偿操作。或者,如果当前块的帧内预测模式具有小于水平方向的索引时,可以不对x轴坐标或y轴坐标中至少一个大于阈值的预测样本进行补偿,只对x轴坐标或y轴坐标为阈值以下的预测样本执行补偿操作。此时,阈值可以基于当前块的尺寸、形状或帧内预测模式中至少一个来确定。
如果通过帧内预测样本获得预测样本,则可以基于获得的预测样本的位置,确定补偿所述预测样本所利用的参考样本。为了便于说明,在后述实施例中,可以将补偿预测样本所利用的参考样本称为PDPC参考样本。而且,将通过帧内预测而获得的预测样本称为第一预测样本,将补偿第一预测样本而获得的预测样本称为第二预测样本。
图22是PDPC的应用形状的示意图。
可以利用至少一个PDPC参考样本来补偿第一预测样本。PDPC参考样本可以包括与当前块的左侧上端角相邻的参考样本、位于当前块的上端的上端参考样本或位于当前块的左侧的左侧参考样本中至少一个。
可以将属于当前块参考样本线的参考样本中至少一个设置为PDPC参考样本。或者,可以与当前块的参考样本线无关,将属于索引为0的参考样本线的参考样本中至少一个设置为PDPC参考样本。作为一个示例,即使第一预测样本是利用索引为1或索引为2的参考样本线中包含的参考样本所获得,第二预测样本也可以利用索引为0的参考样本线中包含的参考样本来获得。
补偿第一预测样本所利用的PDPC参考样本的个数或位置,可以根据当前块的帧内预测模式、当前块的尺寸、当前块的形状或第一预测样本的位置中至少一个来确定。
作为一个示例,如果当前块的帧内预测模式为planner或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可以基于广角帧内预测模式来确定。公式8和公式9示出了基于广角帧内预测模式得到偏移量的示例。
【公式8】
k=CurrIntraMode-66
if(CurrIntraMode>66)
【公式9】
k=-CurrIntraMode
if(CurrIntraMode<0)
第二预测样本可以基于第一预测样本与PDPC参考样本之间的加权和运算来确定。作为一个示例,第二预测样本可以基于如下公式10来获得。
【公式10】
pred(x,y)=(xL*RL+wT*RT-wTL*RTL+(64-wL-wT+wTL)*pred(x,y)+32)>>6
在所述公式10中,RL表示左侧参考样本,RT表示上端参考样本,RTL表示左侧上端参考样本。pred(x,y)表示(x,y)位置的预测样本。wL表示左侧参考样本的加权值,wT表示上端参考样本的加权值,wTL表示左侧上端参考样本的加权值。第一预测样本的加权值可以从最大值减去参考样本的加权值而得到。为了便于说明,将分配给PDPC参考样本的加权值称为PDPC加权值。
分配给各参考样本的加权值,可以基于当前块的帧内预测模式或第一预测样本的位置中至少一个来确定。
作为一个示例,wL、wT或wTL中至少一个可以与预测样本的x轴坐标值或y轴坐标值中至少一个为正比或反比关系。或者,wL、wT或wTL中至少一个可以与当前块的宽度或高度中至少一个为正比或反比关系。
如果当前块的帧内预测模式为DC时,PDPC加权值可以如以下公式11所示确定。
【公式11】
wT=32>>((y<<1)>>shift)
wL=32>>((x<<1)>>shift)
wTL=(wL>>4)+(wT>>4)
在所述公式11,x和y表示第一预测样本的位置。
在所述公式11中,位移运算所利用的参数shift可以基于当前块的宽度或高度得到。作为一个示例,参数shift可以基于以下公式12或公式13得到。
【公式12】
shift=(log2(width)-2+log2(height)-2+2)>>2
【公式13】
shift=((Log2(nTbW)+Log2(nTbH)-2)>>2)
或者,也可以根据当前块的帧内方向参数来得到参数shift。
得到参数shift所利用的参数的个数或种类可以根据当前块的帧内预测模式而有所不同。作为一个示例,如果当前块的帧内预测模式为planner、DC、竖直方向或水平方向时,如公式12或公式13所示,可以利用当前块的宽度和高度来得到参数shift。如果当前块的帧内预测模式是具有比竖直方向帧内预测模式大的索引的帧内预测模式时,可以利用当前块的高度和帧内方向参数来得到参数shift。如果当前块的帧内预测模式是具有比水平方向帧内预测模式小的索引的帧内预测模式时,可以利用当前块的宽度和帧内方向参数来得到参数shift。
如果当前块的帧内预测模式为planner时,可以将wTL的值设置为0。wL和wT可以基于以下公式14来得到。
【公式14】
wT[y]=32>>((y<<1)>>shift)
wL[x]=32>>((x<<1)>>shift)
在当前块的帧内预测模式为水平方向帧内预测模式的情况下,可以将wT设置为0,相同地设置wTL和wL。相反,在当前块的帧内预测模式为竖直方向帧内预测模式的情况下,可以将wL设置为0,相同地设置wTL和wT。
如果当前块的帧内预测模式是具有比竖直方向帧内预测模式大的索引值且朝向右侧上端方向的帧内预测模式时,可以如以下公式15所示得到PDPC加权值。
【公式15】
wT=16>>((y<<1)>>shfit)
wL=16>>((x<<1)>>shift)
wTL=0
相反,如果当前块的帧内预测模式是具有比水平方向帧内预测模式小的索引值且朝向左侧下端方向的帧内预测模式时,可以如以下公式16所示得到PDPC加权值。
【公式16】
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个列)设置为一个子块。
公式17至19示出了确定2×2尺寸子块的PDPC加权值的示例。公式17给出了当前块的帧内预测模式为DC模式的情形的示例。
【公式17】
wT=32>>(((y<<log2K)>>log2K)<<1)>>shift)
wL=32>>(((x<<log2K))>>log2K))<<1)>>shift)
wTL=(wL>>4)+(wT>>4)
在所述公式17中,K的值可以基于子块的尺寸来确定。
公式18给出了当前块的帧内预测模式是具有比竖直方向帧内预测模式大的索引值且朝向右侧上端方向的帧内预测模式的情形的示例。
【公式18】
wT=16>>(((y<<log2K))>>log2K))<<1)>>shift)
wL=16>>(((x<<log2K))>>log2K))<<1)>>shift)
wTL=0
公式19给出了当前块的帧内预测模式是具有比水平方向帧内预测模式小的索引值且朝向左侧下端方向的帧内预测模式的情形的示例。
【公式19】
wT=16>>(((y<<log2K))>>log2K))<<1)>>shift)
wL=16>>(((x<<log2K))>>log2K))<<1)>>shift)
wTL=0
在公式17至19中,x和y表示子块内基准样本的位置。基准样本可以为位于子块的左侧上端的样本、位于子块的中央的样本或位于子块的右侧下端的样本中的某一个。
公式20至22示出了确定4×4尺寸子块的PDPC加权值的示例。公式20给出了当前块的帧内预测模式为DC模式的情形的示例。
【公式20】
wT=32>>(((y<<2)>>2)<<1)>>shift)
wL=32>>(((x<<2)>>2)<<1)>>shift)
wTL=(wL>>4)+(wT>>4)
公式21举例了当前块的帧内预测模式是具有比竖直方向帧内预测模式大的索引值且朝向右侧上端方向的帧内预测模式的情形。
【公式21】
wT=16>>(((y<<2)>>2)<<1)>>shift)
wL=16>>(((x<<2)>>2)<<1)>>shift)
wTL=0
公式22举例了当前块的帧内预测模式是具有比水平方向帧内预测模式小的索引值且朝向左侧下端方向的帧内预测模式的情形。
【公式22】
wT=16>>(((y<<2)>>2)<<1)>>shift)
wL=16>>(((x<<2)>>2)<<1)>>shift)
wTL=0
在上述实施例中,说明了根据第一预测样本或子块中包含的预测样本的位置来确定PDPC加权值的情形。也可以根据当前块的形状,确定PDPC加权值。
作为一个示例,如果是DC模式时,根据当前块是否为宽度比高度更大的非正方形或高度比宽度更大的非正方形,PDPC加权值的得到方法会不同。
公式23为当前块为宽度比高度更大的非正方形时得到PDPC加权值的示例,公式24为当前块为高度比宽度更大的非正方形时得到PDPC加权值的示例。
【公式23】
wT=32>>((y<<1)>>shift)
wL=32>>(x>>shift)
wTL=(wL>>4)+(wT>>4)
【公式24】
wT>>(y>>shift)
wL=32>>((x<<1)>>shift)
wTL=(xL>>4)+(wT>>4)
如果当前块为非正方形时,可以利用广角帧内预测模式来预测当前块。在应用广角帧内预测模式的情况下,也可以应用PDPC来更新第一预测样本。
对当前块应用广角帧内预测时,可以根据编码块的形状来确定PDPC加权值。
作为一个示例,如果当前块为宽度大于高度的非正方形时,根据第一预测样本的位置,会发生与位于第一预测样本左侧下端的左侧参考样本相比,位于第一预测样本右侧上端的上端参考样本更接近第一预测样本的情形。因此,在第一预测样本补偿方面,可以将应用于上端参考样本的加权值设置成比应用于左侧参考样本的加权值更大。
相反,如果当前块为高度大于宽度的非正方形时,根据第一预测样本的位置,会发生与位于第一预测样本右侧上端的上端参考样本相比,位于第一预测样本左侧下端的左侧参考样本更接近第一预测样本的情形。因此,在第一预测样本补偿方面,可以将应用于左侧参考样本的加权值设置成比应用于上端参考样本的加权值更大。
公式25示出了当前块的帧内预测模式为索引大于66的广角帧内预测模式时得到PDPC加权值的示例。
【公式25】
wT=16>>(y>>shift)
wL=16>>((x<<1)>>shift)
wTL=0
公式26示出了当前块的帧内预测模式为索引小于0的广角帧内预测模式时得到PDPC加权值的示例。
【公式26】
wT=16>>((y<<1)>>shift)
wL=16>>(x>>shift)
wTL=0
也可以基于当前块的比率来确定PDPC加权值。当前块的比率表示当前块的宽度与高度的比率,可以如下面公式27所示定义。
【公式27】
whRatio=CUwidth/CUheight
可以根据当前块的帧内预测模式,可变地确定得到PDPC加权值的方法。
作为一个示例,公式28和公式29示出了当前块的帧内预测模式为DC时得到PDPC加权值的示例。具体而言,公式28是当前块为宽度大于高度的非正方形时的示例,公式29是当前块为高度大于宽度的非正方形时的示例。
【公式28】
wT=32>>((y<<1)>>shift)
wL=32>>(((x<<1)>>whRatio)>>shift)
wTL=(wL>>4)+(wT>>4)
【公式29】
wT=32>>(((y<<1)>>1/whRatio)>>shift)
wL=32>>((x<<1)>>shift)
wTL=(wL>>4)+(wT>>4)
公式30示出了当前块的帧内预测模式为索引大于66的广角帧内预测模式时得到PDPC加权值的示例。
【公式30】
wT=16>>(((y<<1)>>1/whRatio)>>shift)
wL=16>>((x<<1)>>shift)
wTL=O
公式31示出了当前块的帧内预测模式为索引小于0的广角帧内预测模式时得到PDPC加权值的示例。
【公式31】
wT=16>>((y<<1)>>shift)
wL=16>>(((x<<1)>>whRatio)>>shift
wTL=0
可以从原始图像对预测图像进行差分而得到残差图像。此时,在将残差视频变换为频域时,即使去除频率分量中的高频分量,视频的主观性质量也不大幅下降。因此,如果将高频分量的值变小或将高频分量的值设置为0,则具有可以在不大幅发生视觉失真的同时增加压缩效率的效果。为了将残差图像分解成二维频率分量,并且反映上述特性,可以对当前块进行变换。所述变换可以利用DCT(Discrete Cosine Transform)或DST(DiscreteSine Tranform)等变换方法来执行。
DCT是利用余弦变换,将残差视频分解(或变换)成二维频率分量,DST是利用正弦变换,将残差视频分解(或变换)成二维频率成分。残差视频的变换结果,频率成分可以表现为图像特征。作为一个示例,当针对N×N尺寸的块执行DCT变换时,可以获得N2个图像特征对应的权重。通过变换,可以获得N×N尺寸块包含的各个图像特征对应的权重。根据利用的变换方法,可以将图像特征对应的权重称为DCT系数或DST系数。
变换方法DCT主要用于变换非0的低频成分大量分布的视频。变换方法DST主要用于高频成分大量分布的视频。
也可以使用DCT或DST之外的变换方法来变换残差视频。
下面,将残差视频变换成二维频率成分的情形称为二维图像变换。而且,将变换结果中获得的图像特征对应的权重称为变换系数。作为一个示例,变换系数可以表示DCT系数或DST系数。当后述主变换和二次变换均应用时,变换系数可以表示作为二次变换结果而生成的图像特征对应的权重。
变换方法可以以块为单元确定。变换方法可以基于当前块的预测编码模式、当前块的尺寸或当前块的尺寸中至少一个来确定。作为一个示例,在当前块以帧内预测模式编码、当前块的尺寸小于N×N的情况下,可以使用变换方法DST来执行变换。相反,当不满足所述条件时,可以使用变换方法DCT来执行变换。
对于残差视频中一部分块,也可以不执行二维视频变换。可以将不执行二维视频变换的情形称为变换跳过(Transform Skip)。当应用变换跳过时,可以以不执行变换的残差值为对象来应用量化。
利用DCT或DST来变换当前块后,可以再次对变换的当前块进行变换。此时,可以将基于DCT或DST的变换定义为主变换,对应用了主变换的块进行再次变换的情形定义为二次变换。
主变换可以利用多个变换核候选中某一个来执行。作为一个示例,可以利用DCT2、DCT8或DCT7中的某一个来执行主变换。
也可以针对水平方向和竖直方向使用不同的变换核。表示水平方向变换核和竖直方向变换核的组合的信息,可以通过码流传递信号。
主变换和二次变换的执行单元可以不同。作为一个示例,可以针对8×8块执行主变换,针对变换的8×8块中4×4尺寸的子块执行二次变换。此时,也可以将不执行二次变换的其他区域的变换系数设置为0。
或者,也可以针对4×4块执行主变换,针对包括变换的4×4块的8×8尺寸区域执行二次变换。
表示是否执行二次变换的信息可以通过码流传递信号。
或者,可以根据水平方向变换核与竖直方向变换核是否相同,确定二次变换是否执行。作为一个示例,只有在水平方向变换核与竖直方向变换核相同的情况下才可以执行二次变换。或者,只有在水平方向变换核与竖直方向变换核不同的情况下才可以执行二次变换。
或者,可以只限于水平方向的变换以及竖直方向的变换利用了预先定义的变换核时才允许二次变换。作为一个示例,当水平方向的变换和竖直方向的变换使用了DCT2变换核时,可以允许二次变换。
或者,可以根据当前块的非零变换系数的个数来确定是否执行二次变换。作为一个示例,如果当前块的非零变换系数小于或等于阈值时,可以设置为不使用二次变换,如果当前块的非零变换系数大于阈值时,可以设置为使用二次变换。也可以只限当前块以帧内预测进行编码时,设置为使用二次变换。
可以根据当前块的形状,确定将执行二次变换的子块的尺寸或形状。
图23和图24示出了执行二次变换的子块的示意图。
如果当前块为正方形时,执行主变换后,可以以当前块左侧上端的N×N尺寸的子块为对象来执行二次变换。作为一个示例,如果当前块为8×8尺寸的编码块时,可以针对当前块执行主变换后,以当前块的左侧上端4×4尺寸的子块为对象来执行二次变换(参照图23)。
如果当前块是宽度比高度大4倍以上的非正方形时,可以在执行主变换后,以当前块左侧上端的(kN)×(4kN)尺寸的子块为对象来执行二次变换。作为一个示例,如果当前块为16×4尺寸的非正方形时,可以在对当前块执行主变换后,以当前块的左侧上端2×8尺寸的子块为对象来执行二次变换(参照图24的(a))。
如果当前块为高度比宽度大4倍以上的非正方形时,可以在执行主变换后,以当前块左侧上端的(4kN)×(kN)尺寸的子块为对象来执行二次变换。作为一个示例,如果当前块为16×4尺寸的非正方形时,可以在对当前块执行主变换后,以当前块的左侧上端2×8尺寸的子块为对象来执行二次变换(参照图24的(b))。
可以在解码器中执行二次变换的逆变换(第二逆变换),根据其执行结果,执行主变换的逆变换(第一逆变换)。根据所述第二逆变换和第一逆变换的执行结果,获得针对当前块的残差信号。
表示当前块的变换类型的信息可以通过码流传递信号。所述信息可以是水平方向的变换类型和竖直方向的变换类型的组合中一个的索引信息tu_mts_idx。
可以根据索引信息tu_mts_idx而特定的变换类型候选,确定竖直方向的变换核和水平方向的变换核。表7及表8示出了根据tu_mts_idx的变换类型组合。
【表7】
Figure BDA0004136192420000271
【表8】
Figure BDA0004136192420000272
变换类型可以确定为DCT2、DST7、DCT8或变换跳过中的某一个。或者,除变换跳过之外,也可以只利用变换核来构成变换类型组合候选。
当利用表7时,如果tu_mts_idx为0,则可以对水平方向和竖直方向应用变换跳过。如果tu_mts_idx为1,则可以对水平方向和竖直方向应用DCT2。如果tu_mts_idx为3,则可以对水平方向应用DCT8,对竖直方向应用DCT7。
当利用表8时,如果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以下的情况下或当前块以帧间预测进行编码的情况下,可以利用表7的查找表,在当前块的尺寸大于4×4的情况下或当前块以帧内预测进行编码的情况下,可以利用表8的查找表。
或者,指示多个查找表中某一个的信息,可以通过码流传递信号。解码器可以基于所述信息,选择对当前块的查找表。
作为另一示例,可以基于当前块的尺寸、形状、预测编码模式、帧内预测模式、是否应用二次变换或是否对相邻块应用变换跳过中至少一个,适应性地确定分配给变换类型组合候选的索引。作为一个示例,如果当前块的尺寸为4×4时分配给变换跳过的索引,可以具有比当前块尺寸大于4×4时分配给变换跳过的索引更小的值。具体而言,如果当前块的尺寸为4×4时,可以对变换跳过分配索引0,如果当前块大于4×4且为16×16以下时,可以对变换跳过分配大于0的索引(例如,索引1)。如果当前块大于16x16时,可以对变换跳过的索引分配最大值(例如,5)。
或者,如果当前块以帧间预测进行编码时,可以对变换跳过分配索引0。如果当前块以帧内预测进行编码时,可以对变换跳过分配大于0的索引(例如,索引1)。
或者,如果当前块是以帧间预测进行编码的4×4尺寸的块时,可以对变换跳过分配索引0。相反,如果当前块不以帧间预测进行编码或当前块大于4×4时,可以对变换跳过分配值大于0的索引(例如,索引1)。
也可以定义并使用与表7和表8列举的变换类型组合候选不同的变换类型组合候选。作为一个示例,可以对水平方向变换或竖直方向变换中某一个应用变换跳过,对于另一个,可以利用应用了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。表9示出了根据当前块的形状特定变换类型组合候选所需的信息的编码形状。
【表9】
Figure BDA0004136192420000281
根据当前块的形状,可以将变换类型组合候选的索引进行重排序(或Reordering)。作为一个示例,如果当前块为正方形时,分配给变换类型组合候选的索引和当前块为非正方形时分配给变换类型组合候选的索引可以不同。作为一个示例,在当前块为正方形的情况下,可以基于下表10,选择变换类型组合,在当前块为非正方形的情况下,可以基于下表11,选择变换类型组合。
【表10】
Figure BDA0004136192420000291
【表11】
Figure BDA0004136192420000292
可以基于当前块的水平方向非零系数的个数或竖直方向非零系数的个数来确定变换类型。其中,水平方向非零系数的个数表示1xN(其中,N为当前块的宽度)包含的非零系数的个数,竖直方向非零系数的个数表示Nx1(其中,N为当前块的高度)包含的非零系数的个数。在水平方向非零系数的最大值小于或等于阈值的情况下,可以对水平方向应用主变换类型,在水平方向非零系数的最大值大于阈值的情况下,可以对水平方向应用二次变换类型。在竖直方向非零系数的最大值小于或等于阈值的情况下,可以对竖直方向应用主变换类型,在竖直方向非零系数的最大值大于阈值的情况下,可以对竖直方向应用二次变换类型。
图25是用于说明确定当前块的变换类型的示例的图。
作为一个示例,如果当前块以帧内预测进行编码,当前块的水平方向非零系数的最大值为2以下时(参照图25的(a)),可以将水平方向的变换类型确定为DST7。
如果当前块以帧内预测进行编码,当前块的竖直方向非零系数的最大值大于2时(参照图25的(b)),可以将DCT2或DCT8确定为竖直方向的变换类型。
表示是否基于从码流传递信号的信息而明确确定当前块变换类型的信息,可以通过码流传递信号。作为一个示例,在序列级中,可以传递表示是否针对以帧内预测进行编码的块允许明确确定变换类型的信息sps_explicit_intra_mts_flag和/或表示是否针对以帧间预测进行编码的块允许明确确定变换类型确定的信息sps_explicit_inter_mts_flag。
当允许确定变换类型时,可以基于从码流传递的索引信息tu_mts_idx,确定当前块的变换类型。相反,当不允许确定变换类型时,可以基于当前块的尺寸、形状、子块单元是否允许变换或包括不为0的变换系数的子块的位置中至少一个来确定变换类型。作为一个示例,当前块的水平方向变换类型可以基于当前块的宽度来确定,当前块的竖直方向变换类型可以基于当前块的高度来确定。例如,如果当前块的宽度小于4或大于16时,水平方向的变换类型可以确定为DCT2。否则,水平方向的变换类型可以确定为DST7。如果当前块的高度小于4或大于16时,竖直方向的变换类型可以确定为DCT2。否则,竖直方向的变换类型可以确定为DST7。其中,为了确定水平方向的变换类型和竖直方向的变换类型,与宽度和高度进行比较的阈值可以基于当前块的尺寸、形状或帧内预测模式中至少一个来确定。
或者,如果当前块为高度与宽度相同的正方形时,可以相同地设置水平方向变换类型和竖直方向变换类型,另一方面,如果当前块为高度与宽度不同的非正方形时,可以不同地设置水平方向变换类型和竖直方向变换类型。作为一个示例,在当前块的宽度大于高度的情况下,可以将水平方向的变换类型确定为DST7,将竖直方向的变换类型确定为DCT2。在当前块的高度大于宽度的情况下,可以将竖直方向的变换类型确定为DST7,将水平方向的变换类型确定为DCT2。
变换类型候选的个数和/或种类或者变换类型组合候选的个数和/或种类,会因是否允许明确确定变换类型而不同。作为一个示例,当允许明确确定变换类型时,DCT2、DST7以及DCT8可以用作变换类型候选。因此,水平方向变换类型和竖直方向变换类型可以分别设置为DCT2、DST8或DCT8。当不允许明确确定变换类型时,只有DCT2和DST7可以用作变换类型候选。因此,水平方向变换类型和竖直方向变换类型可以分别确定为DCT2或DST7。
可以将编码块或变换块划分成多个子块,针对多个子块分别执行变换。作为一个示例,当对编码块应用上述子分区帧内预测编码方法时,可以将编码块划分成多个子块,分别针对多个子块执行变换。
子块各自的变换类型可以彼此相同。作为一个示例,如果确定了对多个子块中第一子块的变换类型,则对于剩余子块,也可以将所述第一子块的变换类型应用于剩余子块。或者,可以确定用于编码块的变换类型,将编码块的变换类型确定为子块的变换类型。
作为另一示例,可以个别地确定多个子块的变换类型。各子块的变换类型可以基于针对各子块传递信号的信息来确定。作为一个示例,可以针对各子块传递索引信息tu_mts_idx。索引信息tu_mts_idx可以对多个水平方向的变换类型和竖直方向的变换类型的组合中某一个进行特定。根据tu_mts_idx的值,水平方向的变换类型和竖直方向的变换类型可以确定为DCT2、DST7或DCT8。可以基于索引信息tu_mts_idx,确定水平方向的变换类型和竖直方向的变换类型是否相同。
可以传递表示当前子块的变换类型是否使用与之前子块相同的变换类型的信息。当所述信息表示使用与之前子块相同的变换类型时,可以跳过对当前子块的索引信息tu_mts_idx的编码,将之前子块的变换类型应用于当前子块。相反,当所述信息表示使用与之前子块不同的变换类型时,可以对当前子块的索引信息tu_mts_idx进行编码。此时,当前子块的索引信息可以指示除之前子块的索引信息指示的变换类型组合之外的其他变换类型组合中的某一个。
或者,在编码块划分为多个子块的情况下,可以设置成不允许明确确定变换类型。在允许明确的变换类型的情况下,可以基于索引信息tu_mts_idx来确定变换类型。相反,当不允许明确确定变换类型时,可以根据所包括的子块尺寸、形状或非零系数在内的子块位置中至少一个来确定变换类型。
图26是确定子块变换类型的示例的示意图。
在图26中示出了子块的高度和宽度比为1:2或2:1的示例。
水平方向变换类型和竖直方向变换类型可以基于各个子块的宽度和高度来确定。作为一个示例,如图26的(a)和(b)所示,在子块的宽度小于阈值的情况下,可以将主变换类型(例如,DCT2)用作水平方向变换类型。相反,在子块的宽度为阈值以上的情况下,可以将二次变换类型(例如,DST7)用作水平方向变换类型。
另外,在子块的高度小于阈值的情况下,可以将主变换类型(例如,DCT2)用作竖直方向变换类型。相反,在子块的宽度为阈值以上的情况下,可以将二次变换类型(例如,DST7)用作竖直方向变换类型。
其中,阈值可以为诸如2、4或8等的自然数。阈值可以基于编码块的尺寸、形状、帧内预测模式或预测编码模式中至少一个而可变地确定。或者,用于确定阈值的信息可以通过码流传递信号。
在上述示例中,列举了将子块的宽度和高度与一个阈值进行比较的示例,但也可以将子块的宽度和高度与两个阈值进行比较而确定变换类型。作为一个示例,在子块的宽度小于第一阈值或大于第二阈值的情况下,可以将水平方向的变换类型确定为DCT2。否则,可以将水平方向的变换类型确定为DST7。另外,在子块的高度小于第一阈值或大于第二阈值的情况下,可以将竖直方向的变换类型确定为DCT2。否则,可以将竖直方向的变换类型确定为DST7。第二阈值是大于第一阈值的自然数,第一阈值可以为诸如2、4或8等的自然数,第二阈值可以为诸如8、16或32等的自然数。
作为另一示例,当子块为高度与宽度相同的正方形时,可以相同地设置水平方向变换类型和竖直方向变换类型,另一方面,当子块为高度和宽度不同的非正方形时,可以不同地设置水平方向变换类型和竖直方向变换类型。作为一个示例,在子块的宽度大于高度的情况下,可以将水平方向的变换类型确定为DST7,将竖直方向的变换类型确定为DCT2。在子块的高度大于宽度的情况下,可以将竖直方向的变换类型确定为DST7,将水平方向的变换类型确定为DCT2。
可以将多个子块中至少一个包含的残差系数的值设置为0。其中,残差系数意味着经变换而生成的变换系数、经变换跳过而生成的变换跳过系数或者对所述变换系数或变换跳过系数进行量化而生成的经量化的系数。作为一个示例,可以将从编码块的边界隔开既定距离以上的子块包含的残差系数的值设置为0。
图27是用于说明子块的残差系数设置为0的示例的图。
在图27所示的示例中,CBF(Coded Block Flag)表示子块内是否存在不为0的残差系数。CBF的值为0,表示子块内不存在不为0的残差系数,CBF的值为1,表示子块内存在不为0的残差系数。
当从编码块的边界至子块的距离为阈值以上时,子块包含的残差系数可以设置为0。此时,从编码块的边界至子块的距离,可以基于位于编码块边界的第一样本、子块包含的第二样本来获得。作为一个示例,第一样本可以为位于编码块的左侧上端角的样本、位于左侧下端角的样本、位于左中段的样本、位于右侧上端角的样本、位于右侧下端角的样本、位于右中段的样本、位于上侧中段的样本或位于下侧中段的样本。第二样本可以为位于子块的左侧上端角的样本、位于左侧下端角的样本、位于左中段的样本、位于右侧上端角的样本、位于右侧下端角的样本、位于右中段的样本、位于上侧中段的样本或位于下侧中段的样本。
阈值可以基于编码块的尺寸、形状、编码块包含的子块的个数或子块的尺寸中至少一个来确定。或者,用于确定阈值的信息可以通过码流传递信号。
作为一个示例,当对当前块应用竖直方向划分时,距编码块左侧边界的距离为阈值以上的子块的残差系数可以设置为0。当编码块尺寸为64、阈值为32时,如图27的(a)所示,距编码块的左侧边界的距离为32以上的子块(Sub-CU2和Sub-CU3)的残差系数可以设置为0。
或者,当对当前块应用水平方向划分时,距编码块上端边界的距离为阈值以上的子块的残差系数可以设置为0。当编码块的尺寸为64、阈值为32时,如图27的(b)所示,距编码块上端边界的距离为32以上的子块(Sub-CU2和Sub-CU3)的残差系数可以设置为0。
与所示示例相反,也可以将距编码块边界的距离小于阈值的子块中包含的残差系数设置为0。
或者,也可以将多个子块中除位于预先设置位置的子块之外的其他子块的残差系数设置为0。作为一个示例,当对编码块应用竖直方向划分时,可以将多个子块中除位于最左侧或最右侧的子块之外的其他子块的残差系数设置为0。或者,当对编码块应用水平方向划分时,可以将多个子块中除位于最上端或最下端的子块之外的其他子块的残差系数设置为0。
对于子块,可以跳过表示是否存在非零系数的信息,例如,CBF的编码。当跳过CBF的编码时,可以根据编码块边界与子块之间的距离或子块的位置,确定各子块是否包含不为0的残差系数。作为一个示例,在图27所示的示例中,可以得出,子块0和子块1(sub-CU0,sub-CU1)的CBF值为1,子块2和子块3(sub-CU2,sub-CU3)的CBF值为0。
对于包含非零系数的子块,可以执行变换和/或量化,另一方面,对于不包含非零系数的子块,可以跳过变换和量化。
作为另一示例,表示只对编码块或变换块的一部分区域执行变换的信息,可以编码并被传递。所述信息可以为1比特的标识cu_sbt_flag。所述标识为1,表示只对通过划分编码块或变换块而生成的多个子块中的部分子块执行变换,所述标识为0,表示无需将编码块或变换块划分成子块而执行变换。
只对编码块的一部分区域执行变换的方法,可以只限于对编码块应用子分区帧内编码方法的情形才允许。因此,只限对编码块应用子分区帧内编码方法的情形,cu_sbt_flag可以编码并被传递。当cu_sbt_flag的值为1时,可以针对通过划分编码块或变换块而生成的多个子块中的部分子块执行变换,剩余子块的残差系数可以设置为0。当cu_sbt_flag的值为1时,可以针对所有子块执行变换。
或者,当对编码块应用子分区帧内编码方法时,可以跳过cu_sbt_flag的编码,将cu_sbt_flag的值设置为1。
作为另一示例,只限编码块的预测编码模式为帧间预测或当前参考图像的情形,可以允许只针对编码块的一部分区域执行变换的方法。当编码块以帧间预测或当前参考图像进行编码时,表示是否只对编码块的一部分区域执行变换的信息,可以编码并被传递。当只对编码块的一部分区域执行变换时,可以对表示编码块划分形状的信息进行编码并被传递。表示编码块划分形状的信息,可以包括表示编码块是否划分成4个子块的信息、表示编码块划分方向的信息或表示子块个数的信息中至少一个。作为一个示例,当cu_sbt_flag为1个时,可以传递表示编码块是否划分成4个子块的标识cu_sbt_quadtree_flag。cu_sbt_quadtree_flag为1,表示编码块划分成4个子块。作为一个示例,可以利用3个竖直线或3个水平线,将编码块划分成4个子块,或利用1个竖直线和1个水平线,将编码块划分成4个子块。cu_sbt_quadtree_flag为0,表示编码块划分成2个子块。作为一个示例,可以利用1个竖直线或1个水平线,将编码块划分成2个子块。
另外,表示编码块划分方向的标识可以通过码流传递信号。作为一个示例,表示是否对编码块应用水平方向划分的标识cu_sbt_horizontal_flag可以编码并被传递。cu_sbt_horizontal_flag的值为1,表示对编码块应用水平方向划分,cu_sbt_horizontal_flag的值为0,表示对编码块应用竖直方向划分。
表示不存在非零系数的子块或不执行变换的子块的位置的信息,可以通过码流传递信号。可以基于所述信息,确定执行了变换和/或量化的子块以及跳过执行变换和/或量化的子块。
图28是通过码流传递的信息来对指示执行变换和/或量化的子块的位置的示例。
表示特定位置或第一子块是否存在非零系数的标识sbt_upleft_flag可以传递信号。sbt_upleft_flag的值为1,表示对位于编码块上端或左侧的子块执行了变换和/或量化,表示未对位于编码块右侧或下端的子块执行变换和/或量化。sbt_upleft_flag的值为0,表示对位于编码块上端或左侧的子块执行了变换和/或量化,表示未对位于编码块右侧或下端的子块执行变换和/或量化。
当编码块划分成4个子块时,sbt_upleft_flag可以表示对N个子块执行了变换和/或量化。作为一个示例,sbt_upleft_flag的值为1,表示针对上端或左侧2个子块执行了变换和/或量化,sbt_upleft_flag的值为0,表示对右侧或下端2个子块执行了变换和/或量化。
不同于图示的示例,也可以将N的值设置为1或3。
未执行变换和/或量化的子块的残差系数可以设置为0。
可以根据编码块的划分方向和子块的位置,确定子块的变换类型。作为一个示例,当编码块沿竖直方向划分并对子块中位于左侧的子块执行变换时,可以不同地设置水平方向变换类型和竖直方向变换类型。作为一个示例,水平方向变换类型可以设置为DCT8,竖直方向变换类型可以设置为DST7。相反,当编码块沿竖直方向划分并对子块中位于右侧的子块执行变换时,子块的水平方向变换类型和竖直方向变换类型可以相同地设置。作为一个示例,水平方向变换类型和竖直方向变换类型可以设置为DST7。
或者,当编码块沿水平方向划分并对子块中位于上端的子块执行变换时,可以不同地设置水平方向变换类型和竖直方向变换类型。作为一个示例,水平方向变换类型可以设置为DST7,竖直方向变换类型可以设置为DCT8。相反,当编码块沿水平方向划分并对子块中位于下端的子块执行变换时,子块的水平方向变换类型和竖直方向变换类型可以相同地设置。作为一个示例,水平方向变换类型和竖直方向变换类型可以设置为DST7。
对于子块,表示是否存在非零系数的信息可以跳过,例如可以跳过CBF的编码。当跳过CBF的编码时,可以根据执行变换的块的位置,确定各子块中是否包含不为0的残差系数。作为一个示例,当sbt_upleft_flag的值为0时,可以得到位于左侧或上端的子块的CBF值为0,可以得到位于右侧或下端的子块的CBF值为1。或者,当sbt_upleft_flag的值为1时,可以得到位于左侧或上端的子块的CBF值为1,可以得到位于右侧或下端的子块的CBF值为0。
执行变换的子块的重建样本可以通过预测样本与残差样本之和得到。相反,在跳过变换的子块中,预测样本可以设置为重建样本。量化是为了减小块的能量,量化过程包括将变换系数除以特定常数值的过程。所述常数值可以根据量化参数而得到,量化参数可以定义为1至63之间的值。
如果在编码器中执行变换以及量化,则解码器可以通过逆量化和逆变换而获得残差块。解码器可以将预测块与残差块相加而获得对当前块的重建块。
如果获得当前块的重建块,则可以通过环路滤波(In-loop filtering)而减小在量化和编码过程发生的信息损失。环路滤波可以包括去块滤波器(Deblocking filter)、样本自适应偏移量滤波器(Sample Adaptive Offset filter:SAO)或自适应环路滤波器(Adaptive Loop Filter:ALF)中至少一个。下面,应用环路滤波前的重建块称为第一重建块,应用环路滤波后的重建块称为第二重建块。
可以对第一重建块应用去块滤波器、SAO或ALF中至少一个来获得第二重建块。此时,SAO或ALF可以在应用去块滤波器之后应用。
去块滤波器用于缓解由于以块为单元执行量化而发生的块边界的方块效应(Blocking Artifact)。为了应用去块滤波器,可以确定第一重建块与相邻重建块之间的块强度(Blocking Strength:BS)。
图29是确定块强度的过程的流程图。
在图29所示示例中,P表示第一重建块,Q表示相邻重建块。其中,相邻重建块可以与当前块的右侧或上端相邻。
在图29所示示例中,图示了根据P和Q的预测编码模式、是否包含不为0的变换系数、是否利用相同参考图像进行帧间预测或运动向量的差值是否为阈值以上来确定块强度的情形。
可以基于块强度,确定是否应用去块滤波器。作为一个示例,在块强度为0的情况下,可以不执行滤波。
SAO用于缓解随着在频域执行量化而发生的振铃效应(Ringing Artifact)。SAO可以通过对基于第一重建视频的图案而确定的偏移量进行加算或减算来执行。偏移量的确定方法包括边界补偿(Edge Offset:EO)或边带补偿(Band Offset:BO)。EO表示根据相邻像素的图案来确定当前样本的补偿值的方法。BO表示针对区域内具有相似亮度值的像素的集合应用共同补偿值的方法。具体而言,可以将像素亮度分为32个均等区间,将具有类似亮度值的像素设置为一个集合。作为一个示例,可以将32个边带中相邻的4个能带设置为一组,对属于4个能带的样本应用相同补偿值。
ALF是对第一重建视频或应用了去块滤波器的重建视频,应用预先定义的尺寸或形状的滤波器来生成第二重建视频的方法。下述公式32表示ALF的应用示例。
【公式32】
Figure BDA0004136192420000321
可以以图像、编码树单元、编码块、预测块或变换块为单元,选择预先定义的滤波器候选中的某一个。各个滤波器候选的尺寸或形状中的某一个可以不同。
图30示出了预先定义的滤波器候选。
如图30所示,可以选择5×5、7×7或9×9尺寸的菱形窗口中至少一个。
对于色度成分,只有5×5尺寸的菱形窗口可以使用。
将以解码过程或编码过程为中心进行说明的实施例应用于编码过程或解码过程,这也包括于本申请的范畴。将按照既定顺序说明的实施例变更为与说明内容不同的顺序,这也包括于本申请的范畴。
上述实施例基于一系列步骤或顺序图进行了说明,但这并非限定发明的时序性顺序,可以根据需要而同时执行或按照不同顺序执行。另外,在上述实施例中,构成框图的构成要素(例如,单元、模块等)既可以分别以硬件装置或软件实现,也可以由多个构成要素结合而以一个硬件装置或软件实现。上述实施例可以以能够通过各种计算机构成要素执行的程序命令形式实现,记录于计算机可读记录介质。所述计算机可读记录介质可以单独或组合包括程序命令、数据文件、数据结构等。在计算机可读记录介质的示例中,包括诸如硬盘、软盘以及磁带的磁介质,诸如CD-ROM、DVD的光记录介质,诸如软式光盘(floptical disk)的磁-光介质(magneto-optical media),以及ROM、RAM、闪速存储器等特别地构成得存储、执行程序命令的硬件装置。所述硬件装置为了执行本申请的处理,可以构成得以一个以上的软件模块进行运转,反之亦然。
工业实用性
本申请可以应用于对图像进行编码或解码的电子设备。

Claims (22)

1.一种视频解码方法,其特征在于,包括:
确定当前块的参考样本线;
确定是否存在与所述当前块的帧内预测模式相同的候选帧内预测模式;
基于确定的结果,得到所述当前块的帧内预测模式;以及
根据所述参考样本线及所述帧内预测模式,对所述当前块进行帧内预测;
所述候选帧内预测模式中的至少一个为:将所述当前块的上相邻块的帧内预测模式及所述当前块的左相邻块的帧内预测模式中的最大值加上或减去偏移量;其中,在所述上相邻块的帧内预测模式及所述左相邻块的帧内预测模式的差值为64时,所述候选帧内预测模式中的至少一个为:将所述最大值加上或减去2;
确定是否将所述当前块划分成多个子块,
根据所述当前块的子块的宽度确定所述子块的水平方向变换类型,根据所述当前块的子块的高度确定所述子块的竖直方向变换类型。
2.根据权利要求1所述的视频解码方法,其特征在于,
根据所述参考样本线的索引,所述候选帧内预测模式的个数不同。
3.根据权利要求1所述的视频解码方法,其特征在于,
在所述当前块划分为所述多个子块时,所述多个子块共享一个帧内预测模式。
4.根据权利要求3所述的视频解码方法,其特征在于,
对于所述多个子块中的部分子块,跳过逆变换。
5.根据权利要求3所述的视频解码方法,其特征在于,
根据所述子块的形状确定所述子块的水平方向变换类型及竖直方向变换类型。
6.一种视频编码方法,其特征在于,包括:
确定当前块的参考样本线;
确定是否存在与所述当前块的帧内预测模式相同的候选帧内预测模式;
基于确定的结果,得到所述当前块的帧内预测模式;以及
根据所述参考样本线及所述帧内预测模式,对所述当前块进行帧内预测,
所述候选帧内预测模式中的至少一个为:将所述当前块的上相邻块的帧内预测模式及所述当前块的左侧相邻块的帧内预测模式中的最大值加上或减去偏移量;其中,在所述上相邻块的帧内预测模式及所述左侧相邻块的帧内预测模式的差分为64时,所述候选帧内预测模式中的至少一个为:将所述最大值加上或减去2;
确定是否将所述当前块划分成多个子块,
根据所述当前块的子块的宽度确定所述子块的水平方向变换类型,根据所述当前块的子块的高度确定所述子块的竖直方向变换类型。
7.根据权利要求6所述的视频编码方法,其特征在于,
根据所述参考样本线的索引,所述候选帧内预测模式的个数不同。
8.根据权利要求6所述的视频编码方法,其特征在于,
在所述当前块划分为所述多个子块时,所述多个子块共享一个帧内预测模式。
9.根据权利要求8所述的视频编码方法,其特征在于,
对于所述多个子块中的部分子块,跳过变换。
10.根据权利要求8所述的视频编码方法,其特征在于,
根据所述子块的形状确定所述子块的水平方向变换类型及竖直方向变换类型。
11.一种视频解码装置,其特征在于,包括:
确定当前块的参考样本线的装置;
确定是否存在与所述当前块的帧内预测模式相同的候选帧内预测模式的装置;
基于确定的结果得到所述当前块的帧内预测模式的装置;以及
根据所述参考样本线及所述帧内预测模式对所述当前块进行帧内预测的装置;
其中,所述候选帧内预测模式中的至少一个为:将所述当前块的上相邻块的帧内预测模式及所述当前块的左相邻块的帧内预测模式中的最大值加上或减去偏移量;其中,在所述上相邻块的帧内预测模式及所述左相邻块的帧内预测模式的差值为64时,所述候选帧内预测模式中的至少一个为:将所述最大值加上或减去2;
确定是否将所述当前块划分成多个子块的装置,
根据所述子块的宽度确定子块的水平方向变换类型,根据所述子块的高度确定所述子块的竖直方向变换类型。
12.根据权利要求11所述的视频解码装置,其特征在于,
根据所述参考样本线的索引,所述候选帧内预测模式的个数不同。
13.根据权利要求11所述的视频解码装置,其特征在于,
在所述当前块划分为所述多个子块时,所述多个子块共享一个帧内预测模式。
14.根据权利要求13所述的视频解码装置,其特征在于,
对于所述多个子块中的部分子块,跳过逆变换。
15.根据权利要求13所述的视频解码装置,其特征在于,
根据所述子块的形状确定所述子块的水平方向变换类型及竖直方向变换类型。
16.一种视频编码装置,其特征在于,包括:
确定当前块的参考样本线的装置;
确定是否存在与所述当前块的帧内预测模式相同的候选帧内预测模式的装置;
基于确定的结果得到所述当前块的帧内预测模式的装置;以及
根据所述参考样本线及所述帧内预测模式对所述当前块进行帧内预测的装置,
所述候选帧内预测模式中的至少一个为:将所述当前块的上相邻块的帧内预测模式及所述当前块的左侧相邻块的帧内预测模式中的最大值加上或减去偏移量;其中,在所述上相邻块的帧内预测模式及所述左侧相邻块的帧内预测模式的差分为64时,所述候选帧内预测模式中的至少一个为:将所述最大值加上或减去2;
确定是否将所述当前块划分成多个子块的装置,
根据所述子块的宽度确定子块的水平方向变换类型,根据所述子块的高度确定所述子块的竖直方向变换类型。
17.根据权利要求16所述的视频编码装置,其特征在于,
根据所述参考样本线的索引,所述候选帧内预测模式的个数不同。
18.根据权利要求16所述的视频编码装置,其特征在于,
在所述当前块划分为所述多个子块时,所述多个子块共享一个帧内预测模式。
19.根据权利要求18所述的视频编码装置,其特征在于,
对于所述多个子块中的部分子块,跳过变换。
20.根据权利要求18所述的视频编码装置,其特征在于,
根据所述子块的形状确定所述子块的水平方向变换类型及竖直方向变换类型。
21.一种计算机可读记录介质包括程序指令,所述程序指令在被计算机部件执行时执行根据权利要求1至5中任一项所述的视频解码方法。
22.一种计算机可读记录介质包括程序指令,所述程序指令在被计算机部件执行时执行根据权利要求6至10中任一项所述的视频编码方法。
CN202310275594.6A 2018-10-12 2019-10-11 视频信号的编码方法和解码方法及其装置 Pending CN116347072A (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
KR10-2018-0121713 2018-10-12
KR20180121757 2018-10-12
KR10-2018-0121757 2018-10-12
KR20180121713 2018-10-12
KR20190006611 2019-01-18
KR10-2019-0006611 2019-01-18
PCT/KR2019/013384 WO2020076125A1 (ko) 2018-10-12 2019-10-11 영상 신호 부호화/복호화 방법 및 이를 위한 장치
CN201980056255.0A CN112930685A (zh) 2018-10-12 2019-10-11 视频信号的编码方法和解码方法及其装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201980056255.0A Division CN112930685A (zh) 2018-10-12 2019-10-11 视频信号的编码方法和解码方法及其装置

Publications (1)

Publication Number Publication Date
CN116347072A true CN116347072A (zh) 2023-06-27

Family

ID=70164224

Family Applications (5)

Application Number Title Priority Date Filing Date
CN202310275594.6A Pending CN116347072A (zh) 2018-10-12 2019-10-11 视频信号的编码方法和解码方法及其装置
CN202110387937.9A Active CN113225559B (zh) 2018-10-12 2019-10-11 视频信号的编码方法和解码方法及其装置
CN201980056255.0A Pending CN112930685A (zh) 2018-10-12 2019-10-11 视频信号的编码方法和解码方法及其装置
CN202310276059.2A Pending CN116320406A (zh) 2018-10-12 2019-10-11 视频信号的编码方法和解码方法及其装置
CN202310276549.2A Pending CN116320407A (zh) 2018-10-12 2019-10-11 视频信号的编码方法和解码方法及其装置

Family Applications After (4)

Application Number Title Priority Date Filing Date
CN202110387937.9A Active CN113225559B (zh) 2018-10-12 2019-10-11 视频信号的编码方法和解码方法及其装置
CN201980056255.0A Pending CN112930685A (zh) 2018-10-12 2019-10-11 视频信号的编码方法和解码方法及其装置
CN202310276059.2A Pending CN116320406A (zh) 2018-10-12 2019-10-11 视频信号的编码方法和解码方法及其装置
CN202310276549.2A Pending CN116320407A (zh) 2018-10-12 2019-10-11 视频信号的编码方法和解码方法及其装置

Country Status (15)

Country Link
US (5) US11252403B2 (zh)
EP (2) EP4336830A3 (zh)
JP (3) JP7430716B2 (zh)
KR (1) KR20200041810A (zh)
CN (5) CN116347072A (zh)
AU (1) AU2019358651A1 (zh)
BR (1) BR112021006238A2 (zh)
CA (1) CA3113861A1 (zh)
CL (1) CL2021000796A1 (zh)
IL (2) IL281823B2 (zh)
MX (1) MX2021003981A (zh)
PH (1) PH12021550624A1 (zh)
SG (1) SG11202103208PA (zh)
WO (1) WO2020076125A1 (zh)
ZA (1) ZA202101991B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020076036A1 (ko) * 2018-10-07 2020-04-16 주식회사 윌러스표준기술연구소 복수개의 참조 라인을 위한 mpm 구성 방법을 이용한 비디오 신호 처리 방법 및 장치
SG11202103208PA (en) * 2018-10-12 2021-04-29 Guangdong Oppo Mobile Telecommunications Corp Ltd Method for encoding/decoding image signal and device for same
EP3829167A4 (en) 2018-12-25 2021-08-11 Guangdong Oppo Mobile Telecommunications Corp., Ltd. DECODING PREDICTION METHOD AND APPARATUS, AND COMPUTER STORAGE MEDIUM
KR20230049758A (ko) * 2019-02-05 2023-04-13 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 인트라 서브-파티션 코드 모드를 이용한 비디오 코딩
KR20210114386A (ko) 2019-02-08 2021-09-23 주식회사 윌러스표준기술연구소 이차 변환을 이용하는 비디오 신호 처리 방법 및 장치
WO2020166977A1 (ko) * 2019-02-12 2020-08-20 엘지전자 주식회사 비디오 신호를 처리하기 위한 방법 및 장치
JP7293376B2 (ja) * 2019-02-28 2023-06-19 ヒューマックス・カンパニー・リミテッド イントラ予測ベースのビデオ信号処理方法及び装置
JP7145793B2 (ja) * 2019-03-11 2022-10-03 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
EP4340367A3 (en) * 2019-04-27 2024-04-24 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods of intra prediction
AU2019204437B2 (en) * 2019-06-24 2022-02-03 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a block of video samples
US11310511B2 (en) * 2019-10-09 2022-04-19 Tencent America LLC Method and apparatus for video coding
US11671592B2 (en) * 2019-12-09 2023-06-06 Qualcomm Incorporated Position-dependent intra-prediction combination for angular intra-prediction modes for video coding
WO2022186616A1 (ko) * 2021-03-04 2022-09-09 현대자동차주식회사 인트라 예측모드 유도를 이용하는 비디오 코딩방법 및 장치
WO2022204525A1 (en) * 2021-03-25 2022-09-29 Trustees Of Boston University Dark-field mid-infrared photothermal microscopy
US20230078392A1 (en) * 2021-09-15 2023-03-16 Tencent America LLC Geometric partition based intra prediction

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101458471B1 (ko) * 2008-10-01 2014-11-10 에스케이텔레콤 주식회사 영상 부호화/복호화 방법 및 장치
CN102970526B (zh) * 2011-08-31 2016-12-14 华为技术有限公司 一种获得变换块尺寸的方法和模块
HUE051689T2 (hu) * 2011-10-24 2021-03-29 Innotive Ltd Képdekódoló készülék
US9154796B2 (en) 2011-11-04 2015-10-06 Qualcomm Incorporated Intra-mode video coding
US10841593B2 (en) 2015-06-18 2020-11-17 Qualcomm Incorporated Intra prediction and intra mode coding
KR20170058837A (ko) * 2015-11-19 2017-05-29 한국전자통신연구원 화면내 예측모드 부호화/복호화 방법 및 장치
EP3442232A4 (en) * 2016-04-06 2019-12-04 KT Corporation METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNAL
EP3457692B1 (en) * 2016-05-13 2024-01-10 Sony Group Corporation Image processing device and method
CN114222137A (zh) * 2016-05-28 2022-03-22 世宗大学校产学协力团 构成预测运动矢量列表的方法
US11234015B2 (en) * 2016-06-24 2022-01-25 Kt Corporation Method and apparatus for processing video signal
JP2019525577A (ja) * 2016-07-18 2019-09-05 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュートElectronics And Telecommunications Research Institute 画像符号化/復号方法、装置、及び、ビットストリームを保存した記録媒体
US11405620B2 (en) * 2016-08-01 2022-08-02 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus with sub-block intra prediction
CN116634140A (zh) 2016-08-03 2023-08-22 株式会社Kt 用于对视频进行编码和解码的方法和装置
US20190200011A1 (en) * 2016-09-08 2019-06-27 Lg Electronics Inc. Intra-prediction mode-based image processing method and apparatus therefor
KR20180029905A (ko) * 2016-09-13 2018-03-21 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018066958A1 (ko) * 2016-10-04 2018-04-12 주식회사 케이티 비디오 신호 처리 방법 및 장치
US11297348B2 (en) * 2018-04-13 2022-04-05 Mediatek Inc. Implicit transform settings for coding a block of pixels
US11128872B2 (en) * 2018-07-16 2021-09-21 Qualcomm Incorporated Position dependent intra prediction combination with wide angle intra prediction
WO2020043145A1 (en) * 2018-08-29 2020-03-05 Huawei Technologies Co., Ltd. Apparatus and method and for boundary partition
KR20200033210A (ko) * 2018-09-19 2020-03-27 한국전자통신연구원 화면 내 예측 모드 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
SG11202103208PA (en) * 2018-10-12 2021-04-29 Guangdong Oppo Mobile Telecommunications Corp Ltd Method for encoding/decoding image signal and device for same

Also Published As

Publication number Publication date
JP2022504552A (ja) 2022-01-13
IL305173A (en) 2023-10-01
US11252403B2 (en) 2022-02-15
EP4336830A2 (en) 2024-03-13
WO2020076125A1 (ko) 2020-04-16
EP4336830A3 (en) 2024-05-22
IL281823B1 (en) 2023-09-01
AU2019358651A1 (en) 2021-04-15
US20240007618A1 (en) 2024-01-04
US20210227208A1 (en) 2021-07-22
US20240007617A1 (en) 2024-01-04
CN116320407A (zh) 2023-06-23
IL281823B2 (en) 2024-01-01
KR20200041810A (ko) 2020-04-22
MX2021003981A (es) 2021-05-27
CN113225559A (zh) 2021-08-06
BR112021006238A2 (pt) 2021-07-06
US20240007616A1 (en) 2024-01-04
IL281823A (en) 2021-05-31
US20220094912A1 (en) 2022-03-24
EP3840387B1 (en) 2024-03-06
EP3840387A4 (en) 2021-12-08
CL2021000796A1 (es) 2021-09-24
CA3113861A1 (en) 2020-04-16
JP7430716B2 (ja) 2024-02-13
JP2024042015A (ja) 2024-03-27
EP3840387A1 (en) 2021-06-23
CN113225559B (zh) 2023-05-16
JP2024042028A (ja) 2024-03-27
SG11202103208PA (en) 2021-04-29
ZA202101991B (en) 2022-07-27
PH12021550624A1 (en) 2022-02-14
CN112930685A (zh) 2021-06-08
CN116320406A (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
CN113225559B (zh) 视频信号的编码方法和解码方法及其装置
KR20200063092A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
CN113225560B (zh) 视频编码/解码方法、视频编码/解码装置和存储介质
EP3843402A1 (en) Image signal encoding/decoding method and apparatus therefor
CN116634176A (zh) 用于解码图像信号的方法和用于编码图像信号的方法
KR102619997B1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2020175914A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20210123950A (ko) 비디오 신호 처리 방법 및 장치
KR20220134476A (ko) 영상 신호 부호화/복호화 방법 및 이를 기초로 생성된 비트스트림을 저장하는 기록 매체
KR20210111602A (ko) 비디오 신호 처리 방법 및 장치
KR20210103763A (ko) 비디오 신호 처리 방법 및 장치
KR20230134999A (ko) 영상 부호화/복호화 방법 및 장치
KR20210075552A (ko) 비디오 신호 처리 방법 및 장치
KR20210112660A (ko) 비디오 신호 처리 방법 및 장치
KR20210103731A (ko) 비디오 신호 처리 방법 및 장치
KR20210120243A (ko) 비디오 신호 처리 방법 및 장치
KR20210082877A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20210078768A (ko) 비디오 신호 처리 방법 및 장치
KR20210113914A (ko) 비디오 신호 처리 방법 및 장치
KR20210082876A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20210078773A (ko) 비디오 신호 처리 방법 및 장치
KR20210081831A (ko) 비디오 신호 처리 방법 및 장치
KR20210119024A (ko) 비디오 신호 처리 방법 및 장치
KR20210115898A (ko) 비디오 신호 처리 방법 및 장치
KR20210118541A (ko) 비디오 신호 처리 방법 및 장치

Legal Events

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