CN113994681A - 在视频编码中用于执行帧内预测编码的系统和方法 - Google Patents

在视频编码中用于执行帧内预测编码的系统和方法 Download PDF

Info

Publication number
CN113994681A
CN113994681A CN202080045133.4A CN202080045133A CN113994681A CN 113994681 A CN113994681 A CN 113994681A CN 202080045133 A CN202080045133 A CN 202080045133A CN 113994681 A CN113994681 A CN 113994681A
Authority
CN
China
Prior art keywords
prediction
intra
sample
video
refidx
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
CN202080045133.4A
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.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Publication of CN113994681A publication Critical patent/CN113994681A/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/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/117Filters, e.g. for pre-processing or post-processing
    • 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/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/167Position within a video image, e.g. region of interest [ROI]
    • 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/182Methods 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 pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开涉及视频编码,并且更具体地涉及用于执行位置相关的帧内预测样本滤波过程的技术。在一个示例中,一种对视频数据进行编码的方法包括:导出帧内预测角度参数;基于该帧内预测角度参数来导出反转角度参数;对于包括在限定的一组预测模式中的预测模式,基于所导出的反转角度来设置缩放变量的值;以及使用该缩放变量的值来执行位置相关的帧内预测样本滤波过程。

Description

在视频编码中用于执行帧内预测编码的系统和方法
技术领域
本公开涉及视频编码,并且更具体地涉及用于执行帧内预测的技术。
背景技术
数字视频功能可以结合到各种设备中,包括数字电视、笔记本电脑或台式电脑、平板电脑、数字录音设备、数字媒体播放器、视频游戏设备、蜂窝电话(包括所谓的智能电话)、医学成像设备等。可以根据视频编码标准对数字视频进行编码。视频编码标准定义了封装编码视频数据的兼容比特流的格式。兼容比特流是可以由视频解码设备接收和解码以生成重构视频数据的数据结构。视频编码标准可以结合视频压缩技术。视频编码标准的示例包括ISO/IEC MPEG-4Visual和ITU-T H.264(也被称为ISO/IEC MPEG-4AVC)和高效视频编码(HEVC)。HEVC在2016年12月的ITU-T H.265建议书的高效视频编码(HEVC)中有所描述,该文献以引用方式并入本文,并且在本文中被称为ITU-T H.265。目前正在考虑对ITU-T H.265进行扩展和改进以开发下一代视频编码标准。例如,ITU-T视频编码专家组(VCEG)和ISO/IEC活动图像专家组(MPEG)(被统称为联合视频研究组(JVET))正在致力于标准化压缩能力显著超过当前HEVC标准的视频编码技术。以引用方式并入本文的联合探索模型7(JEM 7)、联合探索测试模型7(JEM 7)的算法描述、ISO/IEC JTC1/SC29/WG11文档:JVET-G1001(2017年7月,意大利,都灵)描述了由JVET在联合测试模型研究下的编码特征,该技术是超越ITU-T H.265功能的潜在增强视频编码技术。应当指出的是,JEM7的编码特征在JEM参考软件中实现。如本文所用,术语JEM可统称包括在JEM 7中的算法以及JEM参考软件的具体实施。此外,响应于由VCEG和MPEG联合发布的“Joint Call for Proposals on Video Compressionwith Capabilities beyond HEVC”,在2018年4月16日至20日于加利福尼亚州圣地亚哥(San Diego,CA)举行的ISO/IEC JTC1/SC29/WG11第10次会议上,各个小组提出了对视频编码工具的多种描述。根据对视频编码工具的多种描述,视频编码规范的最终初始草案文本在2018年4月16日至20日于加利福尼亚州圣地亚哥举行的ISO/IEC JTC1/SC29/WG11第10次会议中的“Versatile Video Coding(Draft 1)”即文档JVET-J1001-v2中有所描述,该文档以引用方式并入本文并且被称为JVET-J1001。VCEG和MPEG的下一代视频编码标准的当前开发被称为通用视频编码(VVC)项目。2019年3月19日至27日在瑞士日内瓦(Geneva,CH)举行的ISO/IEC JTC1/SC29/WG11第14次会议中的“Versatile Video Coding(Draft 5)”(文档JVET-N1001-v8,其以引用方式并入本文,并且称为JVET-N1001)表示对应于VVC项目的视频编码规范的草稿文本的当前迭代。
视频压缩技术能够减少存储和传输视频数据的数据需求。视频压缩技术可以通过利用视频序列中固有的冗余来减少数据需求。视频压缩技术可将视频序列再分成连续较小的部分(即,视频序列内的一组图片、一组图片内的图片、图片内的区域、区域内的子区域等)。可以使用帧内预测编码技术(例如,图片内的空间预测技术)和帧间预测技术(即图片间的技术(时间))来生成待编码的单位视频数据与视频数据的参考单元之间的差值。该差值可以被称为残差数据。残差数据可以被编码为量化变换系数。语法元素可以涉及残差数据和参考编码单元(例如,帧内预测模式索引和运动信息)。可以对残差数据和语法元素进行熵编码。熵编码的残差数据和语法元素可以包括在形成兼容比特流的数据结构中。
发明内容
在一个示例中,一种对视频数据进行编码的方法,该方法包括:导出帧内预测角度参数;基于该帧内预测角度参数来导出反转角度参数;对于包括在限定的一组预测模式中的预测模式,基于所导出的反转角度来设置缩放变量的值;以及使用该缩放变量的值来执行位置相关的帧内预测样本滤波过程。
在一个示例中,一种包括一个或多个处理器的设备,该一个或多个处理器被配置为:导出帧内预测角度参数;基于该帧内预测角度参数来导出反转角度参数;对于限定的一组预测模式,基于所导出的反转角度来设置缩放变量的值;以及使用该缩放变量的值来执行位置相关的帧内预测样本滤波过程。
附图说明
[图1]图1是示出根据本公开的一种或多种技术的根据四叉树多叉树划分进行编码的一组图片的示例的概念图。
[图2A]图2A是示出根据本公开的一种或多种技术的对视频数据块进行编码的示例的概念图。
[图2B]图2B是示出根据本公开的一种或多种技术的对视频数据块进行编码的示例的概念图。
[图3]图3是示出根据本公开的一种或多种技术的可使用的视频分量采样格式的示例的概念图。
[图4]图4是示出根据本公开的一种或多种技术封装编码视频数据和对应元数据的数据结构的概念图。
[图5]图5是示出根据本公开的一种或多种技术的可被配置为对视频数据进行编码和解码的系统的示例的框图。
[图6]图6是示出根据本公开的一种或多种技术的可被配置为对视频数据进行编码的视频编码器的示例的框图。
[图7]图7是示出根据本公开的一种或多种技术的可被配置为对视频数据进行解码的视频解码器的示例的框图。
具体实施方式
一般来讲,本公开描述了用于对视频数据进行编码的各种技术。具体而言,本公开描述了用于执行帧内预测的技术。应当指出的是,尽管本公开的技术是关于ITU-T H.264、ITU-T H.265、JEM和JVET-N1001描述的,但本公开的技术可普遍应用于视频编码。例如,除了包括在ITU-T H.265、JEM和JVET-N1001中的那些技术,本文所述的编码技术可并入视频编码系统(包括基于未来视频编码标准的视频编码系统),包括视频块结构、帧内预测技术、帧间预测技术、变换技术、滤波技术和/或其他熵编码技术。因此,对ITU-T H.264、ITU-TH.265、JEM和/或JVET-N1001的参考是出于描述性目的,并且不应被解释为限制本文所述技术的范围。此外,应当指出的是,将文献以引用方式并入本文是出于描述性目的,并且不应被解释为限制或产生关于本文所用术语的歧义。例如,在某个并入的参考文献中提供的对某个术语的定义不同于另一个并入的参考文献和/或如本文所用的该术语的情况下,则该术语应以广泛地包括每个相应定义的方式和/或以包括替代方案中每个特定定义的方式来解释。
在一个示例中,对视频数据进行编码的方法包括:基于由帧内预测模式提供的反转角度来设置缩放变量的值,以及基于该缩放变量的值来执行位置相关的帧内预测样本滤波过程。
在一个示例中,用于对视频数据进行编码的设备包括一个或多个处理器,该一个或多个处理器被配置为:基于由帧内预测模式提供的反转角度来设置缩放变量的值,以及基于该缩放变量的值来执行位置相关的帧内预测样本滤波过程。
在一个示例中,非暂态计算机可读存储介质包括存储在其上的指令,这些指令在被执行时使得设备的一个或多个处理器:基于由帧内预测模式提供的反转角度来设置缩放变量的值,以及基于该缩放变量的值来执行位置相关的帧内预测样本滤波过程。
在一个示例中,装置包括:用于基于由帧内预测模式提供的反转角度来设置缩放变量的值的装置,以及用于基于该缩放变量的值来执行位置相关的帧内预测样本滤波过程的装置。
在以下附图和描述中阐述了一个或多个示例的细节。根据描述和附图以及权利要求书,其他特征、对象和优点将显而易见。
视频内容包括由一系列帧(或图片)组成的视频序列。一系列帧也可以被称为一组图片(GOP)。每个视频帧或图片可被分成一个或多个区域。可根据基本单元(例如,视频块)和限定区域的一组规则来限定区域。例如,限定区域的规则可以是区域必须是布置成矩形的整数个视频块。此外,区域中的视频块可以根据扫描模式(例如,光栅扫描)来排序。如本文所用,术语“视频块”通常可以指图片的区域,或者可以更具体地指可以被预测性地编码的样本值的最大阵列、其子分区和/或对应结构。此外,术语“当前视频块”可以指图片的正被编码或解码的区域。视频块可被定义为样本值的阵列。应当指出的是,在一些情况下,像素值可被描述为包括视频数据的相应分量的样本值,其也可被称为颜色分量(例如,亮度(Y)和色度(Cb和Cr)分量或红色、绿色和蓝色分量)。应当指出的是,在一些情况下,术语“像素值”和“样本值”可互换使用。此外,在一些情况下,像素或样本可被称为pel。视频采样格式(也可以被称为色度格式)可以相对于视频块中包括的亮度样本的数量来定义视频块中包括的色度样本的数量。例如,对于4:2:0采样格式,亮度分量的采样率是水平和垂直两个方向的色度分量的采样率的两倍。
视频编码器可对视频块和其子分区执行预测编码。视频块和其子分区可以被称为节点。ITU-T H.264指定包括16×16亮度样本的宏块。也就是说,在ITU-T H.264中,图片被分段成宏块。ITU-T H.265指定了类似的编码树单元(CTU)结构(其可被称为最大编码单元(LCU))。在ITU-T H.265中,图片被分段成CTU。在ITU-T H.265中,对于图片,CTU大小可被设置为包括16×16、32×32或64×64亮度样本。在ITU-TH.265中,CTU由视频数据的每个分量(例如,亮度(Y)和色度(Cb和Cr))的相应编码树块(CTB)组成。应当指出的是,具有一个亮度分量和两个对应色度分量的视频可被描述为具有两个通道,即,亮度通道和色度通道。此外,在ITU-T H.265中,可根据四叉树(QT)划分结构来划分CTU,这使得CTU的CTB被划分为编码块(CB)。也就是说,在ITU-T H.265中,CTU可被划分为四叉树叶节点。根据ITU-T H.265,一个亮度CB连同两个对应的色度CB和相关联语法元素被称为编码单元(CU)。在ITU-TH.265中,可以发送信号通知CB的最小允许大小。在ITU-T H.265中,亮度CB的最小允许最小大小是8×8亮度样本。在ITU-T H.265中,使用帧内预测或帧间预测对图片区域进行编码的决定在CU位阶处进行。
在ITU-T H.265中,CU与在CU处具有其根的预测单元(PU)结构相关联。在ITU-TH.265中,PU结构允许分割亮度CB和色度CB以生成对应的参考样本。即,在ITU-T H.265中,可将亮度CB和色度CB分割成相应的亮度预测块和色度预测块(PB),其中PB包括对其应用相同预测的样本值的块。在ITU-T H.265中,可将CB划分为1个、2个或4个PB。ITU-T H.265支持从64×64样本向下至4×4样本的PB大小。在ITU-T H.265中,正方形PB被支持用于帧内预测,其中CB可以形成PB或者CB可以被分割成四个正方形PB。在ITU-T H.265中,除了正方形PB之外,还支持矩形PB来进行帧间预测,其中CB可垂直地或水平地减半以形成PB。此外,应当指出的是,在ITU-T H.265中,对于帧间预测,支持四个非对称PB划分,其中CB在CB的高度(顶部或底部)或宽度(左侧或右侧)的四分之一处被划分为两个PB。对应于PB的帧内预测数据(例如,帧内预测模式语法元素)或帧间预测数据(例如,运动数据语法元素)用于生成PB的参考和/或预测样本值。
JEM指定具有最大大小的256×256亮度样本的CTU。JEM指定四叉树加二叉树(QTBT)块结构。在JEM中,QTBT结构允许由二叉树(BT)结构进一步划分四叉树叶节点。也就是说,在JEM中,二叉树结构允许将四叉树叶节点垂直或水平递归划分。在JVET-N1001中,根据四叉树加多类型树(QTMT或QT+MTT)结构来划分CTU。JVET-N1001中的QTMT类似于JEM中的QTBT。然而,在JVET-N1001中,除了指示二进制分割之外,多类型树还可以指示所谓的三元(或三叉树(TT))分割。三元分割将一个块垂直地或水平地分成三个块。在垂直TT分割的情况下,块从左边缘起在其宽度的四分之一处以及从右边缘起在其宽度的四分之一处分割,并且在水平TT分割的情况下,块从顶部边缘起在其高度的四分之一处以及从底部边缘起在其高度的四分之一处分割。再次参考图1,图1示出了CTU被划分为四叉树叶节点并且四叉树叶节点根据BT分割或TT分割被进一步划分的示例。即,在图1中,虚线指示四叉树中的附加二元和三元分割。
如上所述,每个视频帧或图片可被分成一个或多个区域。例如,根据ITU-T H.265,每个视频帧或图片可被划分为包括一个或多个切片,并且进一步被划分为包括一个或多个图块,其中每个切片包括CTU序列(例如,以光栅扫描顺序排列),并且其中图块是对应于图片的矩形区域的CTU序列。应当指出的是,在ITU-T H.265中,切片是从独立切片片段开始并且包含在下一个独立切片片段(如果有的话)之前的所有后续从属切片片段(如果有的话)的一个或多个切片片段的序列。切片片段(如切片)是CTU序列。因此,在一些情况下,术语“切片”和“切片片段”可互换使用以指示以光栅扫描顺序排列布置的CTU序列。此外,应当指出的是,在ITU-T H.265中,图块可由包含在多于一个切片中的CTU组成,并且切片可由包含在多于一个图块中的CTU组成。然而,ITU-T H.265规定了应满足以下一个或两个条件:(1)切片中的所有CTU属于同一个图块;以及(2)图块中的所有CTU属于同一个切片。
关于JVET-N1001,切片需要由整数个砖块组成,而不是仅需要由整数个CTU组成。在JVET-N1001中,砖块是图片中特定图块内的矩形CTU行区域。此外,在JVET-N1001中,图块可被划分成多个砖块,每个砖块由图块内的一个或多个CTU行组成。未被划分成多个砖块的图块也被称为砖块。然而,作为图块的真子集的砖块不被称为图块。因此,在一些视频编码技术中,可支持或可不支持包括不形成图片的矩形区域的一组CTU的切片。此外,应当指出的是,在一些情况下,切片可能需要由整数个完整图块组成,并且在这种情况下,切片被称为图块组。本文所述的技术可适用于砖块、切片、图块和/或图块组。图1是示出包括切片的图片组的示例的概念图。在图1所示的示例中,Pic3被示出为包括两个切片(即,切片0和切片1)。在图1所示的示例中,切片0包括一个砖块,即砖块0,并且切片1包括两个砖块,即砖块1和砖块2。应当指出的是,在一些情况下,切片0和切片1可满足图块和/或图块组的要求并被分类为图块和/或图块组。
视频采样格式(也可以被称为色度格式)可以相对于CU中包括的亮度样本的数量来定义CU中包括的色度样本的数量。例如,对于4:2:0采样格式,亮度分量的采样率是水平和垂直两个方向的色度分量的采样率的两倍。因此,对于根据4:2:0格式格式化的CU,用于亮度分量的样本阵列的宽度和高度是用于色度分量的每个样本阵列的宽度和高度的两倍。图3是示出根据4:2:0样本格式格式化的编码单元的示例的概念图。图3示出了色度样本相对于CU内的亮度样本的相对位置。如上所述,通常根据水平和垂直亮度样本的数量来定义CU。因此,如图3所示,根据4:2:0样本格式格式化的16×16CU包括亮度分量的16×16样本和用于每个色度分量的8×8样本。此外,在图3所示的示例中,示出了16×16CU的相邻视频块的色度样本相对于亮度样本的相对位置。对于根据4:2:2格式格式化的CU,亮度分量的样本阵列的宽度是每个色度分量的样本阵列的宽度的两倍,但是亮度分量的样本阵列的高度等于每个色度分量的样本阵列的高度。此外,对于根据4:4:4格式格式化的CU,亮度分量的样本阵列具有与每个色度分量的样本阵列相同的宽度和高度。
对于帧内预测编码,帧内预测模式可指定图片内的参考样本的位置。在ITU-TH.265中,已定义的可能的帧内预测模式包括平面(即,表面拟合)预测模式、DC(即平坦的整体平均)预测模式,以及33个角度预测模式(predMode:2-34)。在JEM中,已定义的可能的帧内预测模式包括平面预测模式、DC预测模式,以及65个角度预测模式。应当指出的是,平面预测模式和DC预测模式可以被称为无方向预测模式,并且角度预测模式可以被称为方向预测模式。应当指出的是,无论已定义的可能预测模式的数量如何,本文描述的技术可以是普遍适用的。
对于帧间预测编码,确定参考图片,并且运动矢量(MV)识别该参考图片中用于生成对当前视频块的预测的样本。例如,可使用位于一个或多个先前编码的图片中的参考样本值来预测当前视频块,并且运动矢量用于指示参考块相对于当前视频块的位置。运动矢量可描述例如运动矢量的水平位移分量(即MVx)、运动矢量的垂直位移分量(即MVy)和运动矢量的分辨率(例如,四分之一像素精度、二分之一像素精度、一像素精度、二像素精度、四像素精度)。先前解码的图片(其可包括在当前图片之前或之后输出的图片)可被组织成一个或多个参考图片列表,并且使用参考图片索引值来标识。此外,在帧间预测编码中,单预测是指使用来自单个参考图片的样本值生成预测,双预测是指使用来自两个参考图片的相应样本值生成预测。也就是说,在单预测中,单个参考图片和对应的运动矢量用于生成对当前视频块的预测,而在双预测中,第一参考图片和对应的第一运动矢量以及第二参考图片和对应的第二运动矢量用于生成对当前视频块的预测。在双预测中,将相应的样本值组合(例如,相加、舍入和裁剪,或根据权重进行平均)以生成预测。图片及其区域可基于哪些类型的预测模式可用于对其视频块进行编码而被分类。也就是说,对于具有B类型的区域(例如,B切片),可利用双预测、单预测和帧内预测模式,对于具有P类型的区域(例如,P切片),可利用单预测和帧内预测模式,对于具有I类型的区域(例如,I切片),只能利用帧内预测模式。如上所述,通过参考索引来识别参考图片。例如,对于P切片,可以存在单个参考图片列表RefPicList0,并且对于B切片,除了RefPicList0之外,可以存在第二独立参考图片列表RefPicList1。应当指出的是,对于B切片中的单预测,可使用RefPicList0或RefPicList1中的一者来生成预测。此外,应当指出的是,在解码过程期间,在开始对图片进行解码时,从存储在解码图片缓冲器(DPB)中的先前解码的图片生成参考图片列表。
此外,编码标准可支持各种运动矢量预测模式。运动矢量预测使能够基于另一运动矢量来导出用于当前视频块的运动矢量的值。例如,可以从当前视频块的空间相邻块和时间相邻块导出具有相关联的运动信息的一组候选块。此外,所生成的(或默认的)运动信息可用于运动矢量预测。运动矢量预测的示例包括高级运动矢量预测(AMVP)、时间运动矢量预测(TMVP)、所谓的“合并”模式,以及“跳过”和“直接”运动推理。此外,运动矢量预测的其他示例包括高级时间运动矢量预测(ATMVP)和空间-时间运动矢量预测(STMVP)。对于运动矢量预测,视频编码器和视频解码器两者执行相同的过程以导出一组候选。因此,对于当前视频块,在编码和解码期间生成相同的一组候选。
如上所述,对于帧间预测编码,先前编码的图片中的参考样本用于对当前图片中的视频块进行编码。在对当前图片进行编码时可用作参考的先前编码的图片被称为参考图片。应当指出的是,解码顺序不一定对应于图片输出顺序,即视频序列中图片的时间顺序。在ITU-T H.265中,当图片被解码时,其被存储到解码图片缓冲器(DPB)(其可被称为帧缓冲器、参考缓冲器、参考图片缓冲器等)。在ITU-T H.265中,存储到DPB的图片在被输出时从DPB中移除,并且不再需要用于编码后续图片。在ITU-T H.265中,在对切片标头进行解码之后,即,在对图片进行解码开始时,每个图片调用一次是否应从DPB中移除图片的确定。例如,参考图1,Pic3被示出为参考Pic2。类似地,Pic4被示出为参考Pic1。关于图1,假设图片数量对应于解码顺序,DPB将填充如下:在解码Pic1之后,DPB将包括{Pic1};在解码Pic2开始时,DPB将包括{Pic1};在解码Pic2之后,DPB将包括{Pic1,Pic2};在解码Pic3开始时,DPB将包括{Pic1,Pic2}。然后,将参考Pic2解码Pic3,并且在解码Pic3之后,DPB将包括{Pic1,Pic2,Pic3}。在解码Pic4开始时,图片Pic2和Pic3将被标记以从DPB中移除,因为它们不是解码Pic4(或任何后续图片,未示出)所需的,并且假设Pic2和Pic3已被输出,则DPB将被更新以包括{Pic1}。然后将参考Pic1对Pic4进行解码。标记图片以将其从DPB中移除的过程可以称为参考图片集(RPS)管理。
如上所述,帧内预测数据或帧间预测数据用于产生样本值的块的参考样本值。包括在当前PB或另一类型的图片区域结构和相关联的参考样本(例如,使用预测生成的那些)中的样本值之间的差可以被称为残差数据。残差数据可以包括对应于视频数据的每个分量的相应差值阵列。残差数据可能在像素域中。可对差值阵列应用变换诸如离散余弦变换(DCT)、离散正弦变换(DST)、整数变换、小波变换或概念上类似的变换,以生成变换系数。应当指出的是,在ITU-T H.265和JVET-N1001中,CU与在CU位阶处具有其根的变换单元(TU)结构相关联。即,为了生成变换系数,可以对差值的阵列进行划分(例如,可以将四个8×8变换应用于16×16残差值阵列)。对于视频数据的每个分量,差值的此类再分可被称为变换块(TB)。应当指出的是,在一些情况下,可以(在视频编码器中)应用核心变换和后续二次变换来生成变换系数。对于视频解码器,变换的顺序是相反的。
可以直接对变换系数或残差样本值执行量化过程(例如,就调色板编码量化而言)。量化通过限制为一组指定值的振幅来近似变换系数。量化实质上对变换系数进行缩放以便改变表示一组变换系数所需的数据量。量化可以包括将变换系数(或将偏移值添加到变换系数得到的值)除以量化缩放因子和任何相关联的取整函数(例如,取整为最接近的整数)。量化的变换系数可以被称为系数位阶值。逆量化(或“去量化”)可以包括将系数位阶值与量化缩放因子相乘,以及任何倒数取整或偏移加法运算。应当指出的是,如本文所用,术语量化过程在一些情况下可指除以缩放因子以生成位阶值,并且在一些情况下可指乘以缩放因子以恢复变换系数。也就是说,量化过程在一些情况下可以指量化,而在一些情况下可以指逆量化。此外,应当指出的是,虽然在下面的示例中的一些示例中关于与十进制记数法相关的算术运算描述了量化过程,但是这样的描述是为了说明的目的,并且不应该被解释为进行限制。例如,本文描述的技术可以在使用二进制运算等的设备中实现。例如,本文描述的乘法和除法运算可以使用移位运算等来实现。
可根据熵编码技术对量化的变换系数和语法元素(例如,指示视频块的编码结构的语法元素)进行熵编码。熵编码过程包括使用无损数据压缩算法对语法元素值进行编码。熵编码技术的示例包括内容自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、概率区间划分熵编码(PIPE)等。熵编码的量化变换系数和对应的熵编码的语法元素可形成可用于在视频解码器处再现视频数据的兼容比特流。熵编码过程,例如CABAC,可以包括对语法元素进行二值化。二值化是指将语法元素的值转换为一个或多个位的序列的过程。这些位可以被称为“bin”。二值化可以包括以下编码技术中的一种或组合:固定长度编码、一元编码、截断一元编码、截断Rice编码、Golomb编码、k阶指数Golomb编码和Golomb-Rice编码。例如,二值化可以包括使用8位固定长度二值化技术将语法元素的整数值5表示为00000101,或者使用一元编码二值化技术将整数值5表示为11110。如本文所用,术语固定长度编码、一元编码、截断一元编码、截断Rice编码、Golomb编码、k阶指数Golomb编码和Golomb-Rice编码中的每一个可以指这些技术的一般实现和/或这些编码技术的更具体实现。例如,可以根据视频编码标准具体地定义Golomb-Rice编码实现。在CABAC的示例中,对于特定bin,上下文提供bin的最大概率状态(MPS)值(即,bin的MPS为0或1中的一者),以及bin是MPS或最小概率状态(LPS)的概率值。例如,上下文可以指示bin的MPS为0,并且bin为1的概率为0.3。应当指出的是,可以基于包括当前语法元素和先前编码的语法元素中的bin的先前编码的bin的值来确定上下文。例如,与相邻视频块相关联的语法元素的值可以用于确定当前bin的上下文。
关于本文所用的公式,可以使用以下算术运算符:
+ 加法
- 减法
* 乘法,包括矩阵乘法
xy 求幂。将x指定为y的幂。在其他上下文中,此类符号用于上标而非旨在用于解释为求幂。
/ 将结果向着零截断的整数除法。例如,将7/4和-7/-4截断为1,将-7/4和7/-4截断为-1。
÷ 在不旨在进行截断或舍入情况下用于表示数学公式中的除法。
Figure BDA0003420622740000121
在不旨在进行截断或舍入情况下用于表示数学公式中的除法。
x%y 模量。x除以y的余数,仅针对x≥0且y>0的整数x和y定义。
此外,可以使用以下逻辑运算符:
x&&y x和y的布尔逻辑“和”
x||y x和y的布尔逻辑“或”
!布尔逻辑“否”
x?y:z如果x为TRUE或不等于0,则求值为y;否则,求值为z。
此外,可以使用以下关系运算符:
> 大于
≥ 大于或等于
< 小于
≤ 小于或等于
== 等于
!= 不等于
此外,可以使用以下逐位运算符:
& 逐位“与”。当对整型变量进行运算时,对整数值的二进制补码表示进行运算。当对包含比另 一变量更少位的二进制变量进行运算时,通过添加等于0的更多有效位来扩展较短变量。
| 逐位“或”。当对整型变量进行运算时,对整数值的二进制补码表示进行运算。当对包含比另一变量更少位的二进制变量进行运算时,通过添加等于0的更多有效位来扩展较短变量。
^ 逐位“异或”。当对整型变量进行运算时,对整数值的二进制补码表示进行运算。当对包含比另一变量更少位的二进制变量进行运算时,通过添加等于0的更多有效位来扩展较短变量。
x>>y x乘y二进制数字的二进制补码整数表示的算术右移。该函数仅针对y的非负整数值来定义。
由于右移而移位到最高有效位(MSB)中的位具有等于移位操作之前的x的MSB的值。
x<<y x乘y二进制数字的二进制补码整数表示的算术左移。该函数仅针对y的非负整数值来定义。
由于左移而移位到最低有效位(LSB)中的位具有等于0的值。
此外,可以使用以下赋值运算符:
= 赋值运算符
++ 递增,即,x++等同于x=x+1;当在阵列索引中使用时,在递增操作之前评估变量的值。
-- 递减,即,x--等同于x=x-1;当在阵列索引中使用时,在递减操作之前评估变量的值。
+= 按指定量递增,即x+=3等同于x=x+3,并且x+=(-3)等同于x=x+(-3)。
-= 按指定量递减,即x-=3等同于x=x-3,并且x-=(-3)等同于x=x-(-3)。
此外,可使用以下定义的数学函数:
Figure BDA0003420622740000131
Floor(x),小于或等于x的最大整数。
Log2(x),x的以2为底的对数。
Figure BDA0003420622740000132
Figure BDA0003420622740000133
Round(x)=Sign(x)*Floor(Abs(x)+0.5)
Figure BDA0003420622740000134
此外,应当指出的是,在本文所用的语法描述符中,可以应用以下描述符:
-b(8):具有任何位串模式的字节(8位)。该描述符的解析过程由函数read_bit(8)的返回值指定。
-f(n):从最左位起使用n位(从左到右)写入的固定模式位串。该描述符的解析过程由函数read_bit(n)的返回值指定。
-se(v):有符号整数0阶Exp-Golomb编码的语法元素,从最左位起。
-tb(v):使用至多maxVal位的截断二元码,其中maxVal在语法元素的语义中定义。
-tu(v):使用至多maxVal位的截断一元码,其中maxVal在语法元素的语义中定义。
-u(n):使用n位的无符号整数。当语法表中n是“v”时,位数以取决于其他语法元素的值的方式变化。该描述符的解析过程由函数read_bits(n)的返回值指定,该返回值被解释为首先写入最高有效位的无符号整数的二进制表示。
-ue(v):无符号整数0阶Exp-Golomb编码的语法元素,从最左位起。
图2A至图2B是示出对视频数据块进行编码的示例的概念图。如图2A所示,通过从当前视频数据块中减去一组预测值生成残差、对残差执行变换并且将变换系数量化来生成位阶值,对视频数据的当前块(例如,对应于视频分量的CB)进行编码。位阶值被编码成比特流。如图2B中所示,通过对位阶值执行逆量化,执行逆变换,并且将一组预测值加上所得残差来对当前视频数据块进行解码。应当指出的是,在图2A至图2B的示例中,重构块的样本值不同于被编码的当前视频块的样本值。这样,编码可被认为是有损的。然而,样本值的差值可被认为是重构视频的观看者可接受的或不可察觉的。
另外,如图2A至图2B所示,使用缩放因子阵列生成系数位阶值。在ITU-T H.265中,通过选择缩放矩阵并将缩放矩阵中的每个条目乘以量化缩放因子来生成缩放因子阵列。可部分地基于预测模式和颜色分量来选择缩放矩阵。应当指出的是,在一些示例中,缩放矩阵可以为每个条目提供相同的值(即,根据单个值缩放所有系数)。可以由量化参数QP确定量化缩放因子的值。此外,可以使用预测量化参数值(可以被称为预测QP值或QP预测值)和可选地发送信号通知的量化参数增量值(可以被称为QP增量值或增量QP值)来导出一组变换系数的QP值。可以针对每个CU更新量化参数,并且可以针对亮度和色度通道中的每一个导出相应量化参数。
参考图1中所示的示例,Pic3中包括的每个视频数据切片(即,切片0切片1)被示出为封装在NAL单元中。在JVET-N1001中,视频序列、GOP、图片、切片和CTU中的每一者可以与描述视频编码属性的元数据相关联。JVET-N1001定义了可用于描述视频数据和/或视频编码属性的参数集。具体地讲,JVET-N1001包括以下五种类型的参数集:解码参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)和自适应参数集(APS)。在JVET-N1001中,参数集可以被封装为特殊类型的NAL单元,或者可以作为消息发送信号通知。包括编码视频数据(例如,切片)的NAL单元可以被称为VCL(视频编码层)NAL单元,并且包括元数据(例如,参数集)的NAL单元可以被称为非VCL NAL单元。此外,JVET-N1001使得补充增强信息(SEI)消息能够被发送信号通知。在JVET-N1001中,SEI消息协助与解码、显示或其他目的有关的过程,然而,可能不需要SEI消息来通过解码过程构建亮度或色度样本。在JVET-N1001中,可以使用非VCL NAL单元在比特流中发送信号通知SEI消息。此外,SEI消息可以通过某种方式传送,而不是通过存在于比特流中(即,在带外发送信号通知)。图4示出了包括多个CVS的比特流的示例,其中CVS由包括在相应的访问单元中的NAL单元表示。在图4所示的示例中,非VCL NAL单元包括相应的参数集NAL单元(即,序列参数集(SPS)和图像参数集(PPS)NAL单元)、SEI消息NAL单元和访问单元界定符NAL单元。应当指出的是,在图4中,HEADER是NAL单元标头。
如上所述,帧内预测数据可指示如何为当前视频块生成预测。也就是说,帧内预测数据指示如何生成预测样本值阵列,例如predSamples[x][y]。应当指出的是,预测样本阵列的生成可包括填充(即,复制样本值)、投影(即,将角度方向映射到特定样本,和/或内插来自角度预测的样本值);以及对预测样本值进行平滑和/或滤波中的一者或多者。在JVET-N1001中,针对亮度的限定的可能帧内预测模式包括平面预测模式(predMode:0)、DC预测模式(predMode:1)和93个方向预测模式(predMode:-14至-1和2至80),包括仅应用于非正方形块的28个广角模式。JVET-N1001指定用于从方向预测模式导出预测样本阵列predSamples[x][y]的以下操作:
方向帧内预测模式过程
该过程的输入为:
-帧内预测模式predModeIntra,
-变量refIdx,其指定帧内预测参考行索引,
-变量nTbW,其指定变换块宽度,
-变量nTbH,其指定变换块高度,
-变量refW,其指定参考样本宽度,
-变量refH,其指定参考样本高度,
-变量nCbW,其指定编码块宽度,
-变量nCbH,其指定编码块高度,
-变量refFilterFlag,其指定参考滤波器标记的值,
-变量cIdx,其指定当前块的颜色分量,
-相邻样本p[x][y],其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx。
该过程的输出是预测的样本predSamples[x][y],其中x=0…nTbW-1,y=0…nTbH-1。
将变量nTbS设置为等于(Log2(nTbW)+Log2(nTbH))>>1。
变量filterFlag如下导出:
-如果以下条件中的一者或多者为真,则将filterFlag设置为等于0。
-refFilterFlag等于1
-refIdx不等于0
-IntraSubPartitionsSplitType不等于ISP_NO_SPLIT,并且predModeIntra大于或等于INTRA_ANGULAR34,并且nTbW小于或等于8
-IntraSubPartitionsSplitType不等于ISP_NO_SPLIT,并且predModeIntra小于INTRA_ANGULAR34,并且nTbH小于或等于8。
-否则,以下适用:
-将变量minDistVerHor设置为等于Min(Abs(predModeIntra-50),Abs(predModeIntra-18))。
-变量intraHorVerDistThres[nTbS]在表1中指定
-变量filterFlag如下导出:
-如果以下条件中的一者或多者为真,则将filterFlag设置为等于1:
-IntraSubPartitionsSplitType不等于ISP_NO_SPLIT
-minDistVerHor大于intraHorVerDistThres[nTbS]并且refFilterFlag等于0
-否则,将filterFlag设置为等于0。
nTbS=2 nTbS=3 nTbS=4 nTbS=5 nTbS=6 nTbS=7
intraHorVerDistThres[nTbS] 16 14 2 0 0 0
表1
表2指定predModeIntra与角度参数intraPredAngle之间的映射表。
Figure BDA0003420622740000171
Figure BDA0003420622740000181
表2
基于intraPredAngle来如下导出反转角度参数invAngle:
Figure BDA0003420622740000182
内插滤波器系数fC[相位][j]和fG[相位][j],其中相位=0…31并且j=0…3,在表3中指定。
Figure BDA0003420622740000183
Figure BDA0003420622740000191
表3
预测样本predSamples[x][y](其中x=0…nTbW-1,y=0…nTbH-1)的值如下导出:
-如果predModeIntra大于或等于34,则应用以下有序步骤:
1.参考样本阵列ref[x]如下指定:
-以下适用:
ref[x]=p[-1-refIdx+x][-1-refIdx],其中x=0…nTbW+refIdx
-如果intraPredAngle小于0,则主参考样本阵列如下扩展:
-当(nTbH*intraPredAngle)>>5小于-1时,
ref[x]=p[-1-refIdx][-1-refIdx+((x*invAngle+128)>>8)],
其中x=-1…(nTbH*intraPredAngle)>>5
ref[((nTbH*intraPredAngle)>>5)-1]=ref[(nTbH*intraPredAngle)>>5]
ref[nTbW+1+refIdx]=ref[nTbW+refIdx]
-否则,
ref[x]=p[-1-refIdx+x][-1-refIdx],其中x=nTbW+1+refIdx…refW+refIdx
ref[-1]=ref[0]
-附加样本ref[refW+refIdx+x],其中x=l…(Max(1,nTbW/nTbH)*refIdx+1),如下导出:
ref[refW+refIdx+x]=p[-1+refW][-1-refIdx]
2.预测样本predSamples[x][y](其中x=0…nTbW-1,y=0…nTbH-1)的值如下导出:
-指数变量iIdx和乘法因子iFact如下导出:
iIdx=((y+1+refIdx)*intraPredAngle)>>5+refIdx
iFact=((y+1+refIdx)*intraPredAngle)&31
-如果cIdx等于0,则以下适用:
-内插滤波器系数fT[j](其中j=0…3)如下导出:
fT[j]=filterFlag?fG[iFact][j]:fC[iFact][j]
-预测样本predSamples[x][y]的值如下导出:
Figure BDA0003420622740000201
-否则(cIdx不等于0),根据iFact的值,以下适用:
-如果iFact不等于0,则预测样本predSamples[x][y]的值如下导出:
predSamples[x][y]=((32-iFact)*ref[x+iIdx+1]+iFact*ref[x+iIdx+2]+16)>>5
-否则,预测样本predSamples[x][y]的值如下导出:
predSamples[x][y]=ref[x+iIdx+1]
-否则(predModeIntra小于34),应用以下有序步骤:
1.参考样本阵列ref[x]如下指定:
-以下适用:
ref[x]=p[-1-refIdx][-1-refIdx+x],其中x=0…nTbH+refIdx
-如果intraPredAngle小于0,则主参考样本阵列如下扩展:
-当(nTbW*intraPredAngle)>>5小于-1时,
ref[x]=p[-1-refIdx+((x*invAngle+128)>>8)][-1-refIdx],
其中x=-1…(nTbW*intraPredAngle)>>5
ref[((nTbW*intraPredAngle)>>5)-1]=ref[(nTbW*intraPredAngle)>>5]
ref[nTbG+1+refIdx]=ref[nTbH+refIdx]
-否则,
ref[x]=p[-1-refIdx][-1-refIdx+x],其中x=nTbH+1+refIdx…refH+refIdx
ref[-1]=ref[0]
-附加样本ref[refH+refIdx+x],其中
x=1…(Max(1,nTbW/nTbH)*refIdx+1),如下导出:
ref[refH+refIdx+x]=p[-1+refH][-1-refIdx]
2.预测样本predSamples[x][y](其中x=0…nTbW-1,y=0…nTbH-1)的值如下导出:
-指数变量iIdx和乘法因子iFact如下导出:
iIdx=((x+1+refIdx)*intraPredAngle)>>5
iFact=((x+1+refIdx)*intraPredAngle)&31
-如果cIdx等于0,则以下适用:
-内插滤波器系数fT[j](其中j=0…3)如下导出:
fT[j]=filterFlag?fG[iFact][j]:fC[iFact][j]
-预测样本predSamples[x][y]的值如下导出:
Figure BDA0003420622740000211
-否则(cIdx不等于0),根据iFact的值,以下适用:
-如果iFact不等于0,则预测样本predSamples[x][y]的值如下导出:
predSamples[x][y]=((32-iFact)*ref[y+iIdx+1]+iFact*refty+iIdx+2]+16)>>5
-否则,预测样本predSamples[x][y]的值如下导出:
predSamples[x][y]=ref[y+iIdx+1]
应当指出的是,根据在JVET-N1001中提供的用于导出预测样本阵列的过程,参考样本阵列的填充定义如下(假设使用“以上”样本的“垂直”预测):
如果角度为正,则将第一个样本向左复制,并将最后一个样本复制向右复制;
如果角度为负,则将与当前PU的最右列对准的样本向右复制,并且投影来自左参考阵列的样本以将参考阵列向左延伸。
当角度为正时,向左填充看起来是不必要的,因为填充的样本从不被参考。当角度为负时,向右填充是不可取的,因为有效样本通常可用。在视频编码器中,如果使用同一参考阵列来测试各种角度,则不必要在模式之间改变该样本。因此,JVET-N1001中提供的填充不太理想。此外,JVET-N1001中提供的投影过程不太理想。
应当指出的是,JVET-N1001为色度提供交叉分量预测模式。此外,可存在可基于用于亮度分量的帧内预测模式导出用于色度分量的帧内预测模式的各种方法。在一个示例中,可以通过使用所谓的最大概率模式(MPM)来发送信号通知当前视频块的帧内预测模式。通常,在MPM信令中,如下发送信号通知帧内预测模式:创建MPM列表(例如,通过继承相邻视频块的帧内预测模式);提供关于当前视频块的帧内预测是否是MPM列表中的模式的指示(例如,标记);并且如果当前帧内模式在MPM列表中,则可以发送信号通知指示对应条目在MPM列表中的位置的索引;或者如果当前帧内模式不在MPM列表中,则发送信号通知指示帧内模式预测模式(其是不在MPM列表中的模式)的语法元素。
此外,在JVET-N1001中,所谓的帧内子分区(ISP)编码模式可用于帧内预测。对于JVET-N1001中的ISP编码模式,根据块大小维度,一些亮度帧内预测块(即,亮度CB)被进一步垂直地或水平地划分为两个或四个子分区。在JVET-N1001中,亮度帧内预测块中的每个子分区共享相同的帧内预测模式。表3示出了用于JVET-N1001中的帧内预测的编码单元语法的相关部分,并且包括对应于ISP编码模式的语法元素。
Figure BDA0003420622740000221
Figure BDA0003420622740000231
Figure BDA0003420622740000241
表3
关于表3中包括的语法元素,JVET-N1001提供了以下语义:
cu_skip_flag[x0][y0]等于1指定对于当前编码单元,当解码P或B切片时,在cu_skip_flag[x0][y0]之后不再解析除了以下中的一者或多者之外的语法元素:IBC模式标记pred_mode,,ibc_flag[x0][y0],以及merge_data()语法结构;当解码I切片时,在cu_skip_flag[x0][y0]之后不再解析除了merge_idx[x0][y0]之外的语法元素。cu_skip_flag[x0][y0]等于0指定不跳过编码单元。阵列索引x0、y0指定所考虑编码块的左上亮度样本相对于图片的左上亮度样本的位置(x0,y0)。
当cu_skip_flag[x0][y0]不存在时,推断其等于0。
pred_mode_flag等于0指定当前编码单元在帧间预测模式中进行编码。pred_mode_flag等于1指定当前编码单元在帧内预测模式中进行编码。
当pred_mode_flag不存在时,推断如下:
-当cbWidth等于4并且cbHeight等于4时,推断pred_mode_flag等于1。
-否则,当在解码I切片时推断pred_mode_flag等于1,并且在解码P或B切片时推断其等于0。
对于x=x0…x0+cbWidth-1和y=y0…y0+cbHeight-1,如下导出变量CuPredMode[x][y]:
-如果pred_mode_flag等于0,则将CuPredMode[x][y]设置为等于MODE_INTER。
-否则(pred_mode_flag等于1),则将CuPredMode[x][y]设置为等于MODE_INTRA。
pred_mode_ibc_flag等于1指定当前编码单元在IBC预测模式中进行编码。pred_mode_ibc_flag等于0指定当前编码单元不在IBC预测模式中进行编码。
当pred_mode_ibc_flag不存在时,推断如下:
-如果cu_skip_flag[x0][y0]等于1并且cbWidth等于4并且cbHeight等于4,则推断pred_mode_ibc_flag等于1。
-否则,如果cbWidth和cbHeight两者等于128,则推断pred_mode_ibc_flag等于0。
-否则,在解码I切片时推断pred_mode_ibc_flag等于sps_ibc_enabled_flag的值,并且在解码P或B切片时推断其等于0。
当pred_mode_ibc_flag等于1时,对于x=x0…x0+cbWidth-1和y=y0…y0+cbHeight-1,将变量CuPredMode[x][y]设置为等于MODE_IBC。
intra_bdpcm_flag[x0][y0]等于1指定将BDPCM应用于位置(x0,y0)处的当前亮度编码块,即,跳过变换,由intra_bdpcm_dir_flag[x0][y0]指定帧内亮度预测模式。intra_bdpcm_dir_flag[x0][y0]等于0指定不将BDPCM应用于位置(x0,y0)处的当前亮度编码块。
当intra_bdpcm_flag[x0][y0]不存在时,推断其等于0。
将变量BdpcmFlag[x][y]设置为等于intra_bdpcm_flag[x0][y0],其中x=x0…x0+cbWidth-1并且y=y0…y0+cbHeight-1。
intra_bdpcm_dir_flag[x0][y0]等于0指定BDPCM预测方向是水平的。intra_bdpcm_dir_flag[x0][y0]等于1指定BDPCM预测方向是垂直的。
将变量BdpcmDir[x][y]设置为等于intra_bdpcm_dir_flag[x0][y0],其中x=x0…x0+cbWidth-1并且y=y0…y0+cbHeight-1。
intra_mip_flag[x0][y0]等于1指定亮度样本的帧内预测类型是基于矩阵的帧内预测。intra_mip_flag[x0][y0]等于0指定亮度样本的帧内预测类型不是基于矩阵的帧内预测。
当intra_mip_flag[x0][y0]不存在时,推断其等于0。
语法元素intra_mip_mpm_flag[x0][y0]、intra_mip_mpm_idx[x0][y0]和intra_mip_mpm_remainder[x0][y0]指定亮度样本的基于矩阵的帧内预测模式。阵列索引x0、y0指定所考虑编码块的左上亮度样本相对于图片的左上亮度样本的位置(x0,y0)。当intra_mip_mpm_flag[x0][y0]等于1时,从相邻帧内预测编码单元推断基于矩阵的帧内预测模式。
当intra_mip_mpm_flag[x0][y0]不存在时,推断其等于1。
intra_luma_ref_idx[x0][y0]指定对于x=x0…x0+cbWidth-1和y=y0…y0+cbHeight-1的帧内预测参考行索引IntraLumaRefLineIdx[x][y],如表4中所指定。
当intra_luma_ref_idx[x0][y0]不存在时,推断其等于0。
Figure BDA0003420622740000271
表4
intra_subpartitions_mode_flag[x0][y0]等于1指定当前帧内编码单元被划分成NumIntraSubPartitions[x0][y0]矩形变换块子分区。intra_subpartitions_mode_flag[x0][y0]等于0指定当前帧内编码单元不被划分成矩形变换块子分区。当intra_subpartitions_mode_flag[x0][y0]不存在时,推断其等于0。
intra_subpartitions_split_flag[x0][y0]指定帧内子分区分割类型是水平还是垂直。当intra_subpartitions_split_flag[x0][y0]不存在时,推断如下:
-如果cbHeight大于MaxTbSizeY,则推断intra_subpartitions_split_flag[x0][y0]等于0。
-否则(cbWidth大于MaxTbSizeY),推断intra_subpartitions_split_flag[x0][y0]等于1。
变量IntraSubPartitionsSplitType指定用于当前亮度编码块的分割的类型,如表5所示,如下导出IntraSubPartitionsSplitType:
-如果intra_subpartitions_mode_flag[x0][y0]等于0,则将IntraSubPartitionsSplitType设置为等于0。
-否则,将IntraSubPartitionsSplitType设置为等于1+intra_subpartitions_split_flag[x0][y0]。
Figure BDA0003420622740000272
Figure BDA0003420622740000281
表5
变量NumIntraSubPartitions指定帧内亮度编码块被划分成的变换块子分区的数量。NumIntraSubPartitions如下导出:
-如果IntraSubPartitionsSplitType等于ISP_NO_SPLIT,则将NumIntraSubPartitions设置为等于1。
-否则,如果以下条件之一为真,则将NumIntraSubPartitions设置为等于2:
-cbWidth等于4并且cbHeight等于8,
-cbWidth等于8并且cbHeight等于4。
-否则,将NumIntraSubPartitions设置为等于4。
语法元素intra_luma_mpm_flag[x0][y0]、intra_luma_not_planar_flag[x0][y0]、intra_luma_mpm_idx[x0][y0]和intra_luma_mpm_remainder[x0][y0]指定亮度样本的帧内预测模式。阵列索引x0、y0指定所考虑编码块的左上亮度样本相对于图片的左上亮度样本的位置(x0,y0)。当intra_luma_mpm_flag[x0][y0]等于1时,从相邻帧内预测编码单元推断帧内预测模式。
当intra_luma_mpm_flag[x0][y0]不存在时,推断其等于1。
当intra_luma_not_planar_flag[x0][y0]不存在时,推断其等于1。
intra_chroma_pred_mode[x0][y0]指定色度样本的帧内预测模式。阵列索引x0、y0指定所考虑编码块的左上亮度样本相对于图片的左上亮度样本的位置(x0,y0)。
此外,JVET-N1001提供以下用于帧内块的解码过程,其指定如何根据ISP编码模式将亮度帧内预测块进一步垂直或水平划分成两个或四个子分区:
用于帧内块的解码过程
该过程的输入为:
-样本位置(xTb0,yTb0),其指定当前变换块相对于当前图片左上样本的左上样本,
-变量nTbW,其指定当前变换块的宽度,
-变量nTbH,其指定当前变换块的高度,
-变量predModeIntra,其指定帧内预测模式,
-变量cIdx,其指定当前块的颜色分量。
该过程的输出是循环中滤波之前的经修改的重构图片。
最大变换块尺寸maxTbSize如下导出:
maxTbSize=(cIdx==0)?MaxTbSizeY:MaxTbSizeY/2
亮度样本位置如下导出:
(xTbY,yTbY)=(cIdx==0)?(xTb0,yTb0):(xTb0*2,yTb0*2)
根据maxTbSize,以下适用:
-如果IntraSubPartitionsSplitType等于NO_ISP_SPLIT,并且nTbW大于maxTbSize或者nTbH大于maxTbSize,则应用以下有序步骤。
1.变量newTbW和newTbH如下导出:
newTbW=(nTbW>maxTbSize)?(nTbW/2):nTbW
newTbH=(nTbH>maxTbSize)?(nTbH/2):nTbH
2.调用如该子句中指定的用于帧内块的一般解码过程,其中以位置(xTb0,yTb0)、设置为等于newTbW的变换块宽度nTbW和设置为等于newTbH的高度nTbH、帧内预测模式predModeIntra以及变量cIdx作为输入,并且输出是循环中滤波之前的经修改的重构图片。
3.如果nTbW大于maxTbSize,则调用如该子句中指定的用于帧内块的一般解码过程,其中以设置为等于(xTb0+newTbW,yTb0)的位置(xTb0,yTb0)、设置为等于newTbW的变换块宽度nTbW和设置为等于newTbH的高度nTbH、帧内预测模式predModeIntra以及变量cIdx作为输入,并且输出是循环中滤波之前的经修改的重构图片。
4.如果nTbH大于maxTbSize,则调用如该子句中指定的用于帧内块的一般解码过程,其中以设置为等于(xTb0,yTb0+newTbH)的位置(xTb0,yTb0)、设置为等于newTbW的变换块宽度nTbW和设置为等于newTbH的高度nTbH、帧内预测模式predModeIntra以及变量cIdx作为输入,并且输出是循环中滤波之前的经修改的重构图片。
5.如果nTbW大于maxTbSize并且nTbH大于maxTbSize,则调用如该子句中指定的用于帧内块的一般解码过程,其中以设置为等于(xTb0+newTbW,yTb0+newTbH)的位置(xTb0,yTb0)、设置为等于newTbW的变换块宽度nTbW和设置为等于newTbH的高度nTbH、帧内预测模式predModeIntra以及变量cIdx作为输入,并且输出是循环中滤波之前的经修改的重构图片。
-否则,应用以下有序步骤:
-变量nW、nH、numPartsX和numPartsY如下导出:
nW=IntraSubPartitionsSplitType==ISP_VER_SPLIT?
nTbW/NumIntraSubPartitions:nTbW
nH=IntraSubPartitionsSplitType==ISP_HOR_SPLIT?
nTbH/NumIntraSubPartitions:nTbH
numPartsX=IntraSubPartitionsSplitType==ISP_VER_SPLIT?
NumIntraSubPartitions:1
numPartsY=IntraSubPartitionsSplitType==ISP_HOR_SPLIT?
NumIntraSubPartitions:1
-对于xPartIdx=0…numPartsX-1并且yPartIdx=0…numPartsY-1,以下适用:
1.调用如下文指定的帧内样本预测过程,其中以设置为等于(xTb0+nW*xPartIdx,yTb0+nH*yPartIdx)的位置(xTbCmp,yTbCmp)、帧内预测模式predModeIntra、设置为等于nW和nH的变换块宽度nTbW和高度nTbH、设置为等于nTbW和nTbH的编码块宽度nCbW和高度nCbH以及变量cIdx作为输入,并且输出是(nTbW)×(nTbH)阵列predSamples。
帧内样本预测过程
该过程的输入为:
-样本位置(xTbCmp,yTbCmp),其指定当前变换块相对于当前图片左上样本的左上样本,
-变量predModeIntra,其指定帧内预测模式,
-变量nTbW,其指定变换块宽度,
-变量nTbH,其指定变换块高度,
-变量nCbW,其指定编码块宽度,
-变量nCbH,其指定编码块高度,
-变量cIdx,其指定当前块的颜色分量。
该过程的输出是预测的样本predSamples[x][y],其中x=0…nTbW-1,y=0…nTbH-1。
预测样本predSamples[x][y]如下导出:
-如果intra_mip_flag[xTbComp][yTbComp]等于1并且cIdx等于0,则调用基于矩阵的帧内样本预测过程,其中以位置(xTbCmp,yTbCmp)、帧内预测模式predModeIntra、变换块宽度nTbW和高度nTbH作为输入,并且输出是predSamples。
-否则调用如下文指定的通用(非mip)帧内样本预测过程,其中以位置(xTbCmp,yTbCmp)、帧内预测模式predModeIntra、变换块宽度nTbW和高度nTbH、编码块宽度nCbW和高度nCbH以及变量cIdx作为输入来,并且输出是predSamples。
通用(非mip)帧内样本预测过程
该过程的输入为:
-样本位置(xTbCmp,yTbCmp),其指定当前变换块相对于当前图片左上样本的左上样本,
-变量predModeIntra,其指定帧内预测模式,
-变量nTbW,其指定变换块宽度,
-变量nTbH,其指定变换块高度,
-变量nCbW,其指定编码块宽度,
-变量nCbH,其指定编码块高度,
-变量cIdx,其指定当前块的颜色分量。
该过程的输出是预测的样本predSamples[x][y],其中x=0…nTbW-1,y=0…nTbH-1。
变量refW和refH如下导出:
-如果IntraSubPartitionsSplitType等于ISP_NO_SPLIT或者cIdx不等于0,则以下适用:
refW=nTbW*2
refH=nTbH*2
-否则(IntraSubPartitionsSplitType不等于ISP_NO_SPLIT并且cIdx等于0),以下适用:
refW=nCbW*2
refH=nCbH*2
refIdx=(cIdx==0)?IntraLumaRefLineIdx[xTbCmp][yTbCmp]:0
调用广角帧内预测模式映射过程,其中以predModeIntra、nTbW、nTbH和cIdx作为输入,并且以经修改的predModeIntra作为输出。
变量refFilterFlag如下导出:
-如果predModeIntra等于以下值中的一者:0、-14、-12、-10、-6、2、34、66、72、76、78、80,则将refFilterFlag设置为等于1。
-否则,将refFilterFlag设置为等于0。
对于参考样本p[x][y]的生成,其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx,应用以下有序步骤:
1.调用参考样本可用性标记过程,其中以样本位置(xTbCmp,yTbCmp)、帧内预测参考行索引refIdx、参考样本宽度refW、参考样本高度refH、颜色分量索引cIdx作为输入,并且以参考样本refUnfilt[x][y](其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx)作为输出。
2.当至少一个样本refUnfilt[x][y](其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx)被标记为“不可用于帧内预测”时,调用参考样本替换过程,其中以帧内预测参考行索引refIdx、参考样本宽度refW、参考样本高度refH、参考样本refUnfilt[x][y](其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx)和颜色分量索引cIdx作为输入,并且以经修改的参考样本refUnfilt[x][y](其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx)作为输出。
3.调用如下文指定的参考样本滤波过程,其中以帧内预测参考行索引refIdx、变换块宽度nTbW和高度nTbH、参考样本宽度refW、参考样本高度refH、参考滤波器标记refFilterFlag、未经滤波样本refUnfilt[x][y](其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx)和颜色分量索引cIdx作为输入,并且以参考样本p[x][y](其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx)作为输出。
根据predModeIntra的帧内样本预测过程应用如下:
-如果predModeIntra等于INTRA_PLANAR,则调用如下文指定的对应帧内预测模式过程,其中以变换块宽度nTbW和变换块高度nTbH以及参考样本阵列p作为输入,并且输出是预测的样本阵列predSamples。
-否则,如果predModeIntra等于INTRA_DC,则调用如下文指定的对应帧内预测模式过程,其中以变换块宽度nTbW、变换块高度nTbH、帧内预测参考行索引refIdx以及参考样本阵列p作为输入,并且输出是预测的样本阵列predSamples。
-否则,如果predModeIntra等于INTRA_LT_CCLM、INTRA_L_CCLM或INTRA_T_CCLM,则调用对应的帧内预测模式过程,其中以帧内预测模式predModeIntra、设置为等于(xTbCmp,yTbCmp)的样本位置(xTbC,yTbC)、变换块宽度nTbW和高度nTbH以及参考样本阵列p作为输入,并且输出是预测的样本阵列predSamples。
-否则,调用对应的帧内预测模式过程,其中以帧内预测模式predModeIntra、帧内预测参考行索引refIdx、变换块宽度nTbW、变换块高度nTbH、参考样本宽度refW、参考样本高度refH、编码块宽度nCbW和高度nCbH、参考滤波器标记refFilterFlag、颜色分量索引cIdx和参考样本阵列p作为输入,并且以预测的样本阵列predSamples作为输出。
当所有以下条件都为真时,调用下文指定的位置相关的预测样本滤波过程,其中以帧内预测模式predModeIntra、变换块宽度nTbW、变换块高度nTbH、预测样本predSamples[x][y](其中x=0…nTbW-1、Y=0…nTbH-1)、参考样本宽度refW、参考样本高度refH、参考样本p[x][y](其中x=-1、y=-1…refH-1和x=0…refW-1、y=-1)和颜色分量索引cIdx作为输入,并且输出是经修改的预测的样本阵列predSamples:
-IntraSubPartitionsSplitType等于ISP_NO_SPLIT或者cIdx不等于0
-refIdx等于0或者cIdx不等于0
-BdpcmFlag[xTbCmp][xTbCmp]等于0
-以下条件之一为真:
-predModeIntra等于INTRA_PLANAR
-predModeIntra等于INTRA_DC
-predModeIntra等于INTRA_ANGULAR18
-predModeIntra等于INTRA_ANGULAR50
-predModeIntra小于或等于INTRA_ANGULAR10
-predModeIntra大于或等于INTRA_ANGULAR58
应当指出的是,根据上面提供的用于帧内块的解码过程、帧内样本预测过程和通用(非mip)帧内样本预测过程,在JVET-N1001中,可以从先前编码的CU检索以用于帧内预测的参考样本基于ISP是否用于给定CU而改变。也就是说,对于在ISP模式中编码的CU,可检索在为其他CU提供的参考样本范围之外的样本。对于在ISP模式中编码的CU,具有可检索的增大的样本范围不太理想。
如上所述,预测样本阵列的生成可以包括对预测样本值进行滤波。应当指出的是,根据方向帧内预测模式过程,可变filterFlag确定角度预测是否平滑。根据JVET-N1001中提供的filterFlag的推导,当使用ISP时,不同的规则适用于确定可变filterFlag,这是不期望的。
此外,JVET-N1001规定了以下参考样本滤波过程:
参考样本滤波过程
参考样本滤波过程
该过程的输入为:
-变量refIdx,其指定帧内预测参考行索引,
-变量nTbW,其指定变换块宽度,
-变量nTbH,其指定变换块高度,
-变量refW,其指定参考样本宽度,
-变量refH,其指定参考样本高度,
-变量refFilterFlag,其指定参考滤波器标记的值,
-(未经滤波的)相邻样本refUnfllt[x][y],其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx,
-变量cIdx,其指定当前块的颜色分量。
该过程的输出是参考样本p[x][y],其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx。
变量filterFlag如下导出:
-如果以下条件中的全部为真,则将filterFlag设置为等于1:
-refIdx等于0
-nTbW*nTbH大于32
-cIdx等于0
-IntraSubPartitionsSplitType等于ISP_NO_SPLIT
-refFilterFlag等于1
-否则,将filterFlag设置为等于0。
对于参考样本p[x][y]的推导,以下适用:
-如果filterFlag等于1,则经滤波的样本值p[x][y](其中x=-1,y=-1…refH-1和x=0…refW-1,y=-1)如下导出:
P[-1][-1]=(refUnfilt[-1][0]+2*refUnfilt[-1][-1]+refUnfilt[0][-1]+2)>>2
p[-1][y]=(refUnfilt[-1][y+1]+2*refUnfilt[-1][y]+refUnfilt[-1][y-1]+2)>>2
对于y=0…refH-2
p[-1][refH-1]=refUnfilt[-1][refH-1]
p[x][-1]=(refUnfilt[x-1][-1]+2*refUnfilt[x][-1]+refUnfilt[x+1][-1]+2)>>2
对于x=0…refW-2
p[refW-1][-1]=refUnfilt[refW-1][-1]
-否则,将参考样本值p[x][y]设置为等于未经滤波的样本值refUnfilt[x][y],其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx。
应当指出的是,根据上面提供的方向帧内预测模式过程、通用(非mip)帧内样本预测过程和参考样本滤波过程,在JVET-N1001中,当斜率是整数斜率时,参考样本被平滑以用于角度预测,并且当参考样本被平滑时,使用三次插值滤波器代替高斯滤波器。具有用于具有整数斜率的角度的特殊规则不太理想,因为这很复杂而本不必要并且可对相对大量的样本应用平滑。
如上所述,在通用(非mip)帧内样本预测过程中,JVET-N1001进一步指定了可应用于帧内预测样本的位置相关的帧内预测组合(PDPC)。PDPC使用具有权重的参考样本对帧内预测样本应用滤波器。特别地,在JVET-N1001中提供了以下位置相关的帧内预测样本滤波过程:
位置相关的帧内预测样本滤波过程
该过程的输入为:
-帧内预测模式predModeIntra,
-变量nTbW,其指定变换块宽度,
-变量nTbH,其指定变换块高度,
-变量refW,其指定参考样本宽度,
-变量refH,其指定参考样本高度,
-预测的样本predSamples[x][y],其中x=0…nTbW-1,y=0…nTbH-1,
-相邻样本p[x][y],其中
x=-1,y=-1…refH-1并且x=0…refW-1,y=-1,
-变量cIdx,其指定当前块的颜色分量。
该过程的输出是修改的预测的样本predSamples[x][y],其中x=0…nTbW-1,y=0…nTbH-1。
根据cIdx的值,函数clip1Cmp设置如下:
-如果cIdx等于0,则将clip1Cmp设置为等于Clip1Y。
-否则,将clip1Cmp设置为等于Clip1c。
将变量nScale设置为((Log2(nTbW)+Log2(nTbH)-2)>>2)。
参考样本阵列mainRef[x]和sideRef[y](其中x=0…refW-1,并且y=0…refH-1)如下导出:
mainRef[x]=p[x][-1]
sideRef[y]=p[-1][y]
变量refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y](其中x=0…nTbW-1、y=0…nTbH-1)如下导出:
-如果predModeIntra等于INTRA_PLANAR或INTRA_DC,则以下适用:
refL[x][y]=p[-1][y]
refT[x][y]=p[x][-1]
wT[y]=32>>((y<<1)>>nScale)
wL[x]=32>>((x<<1)>>nScale)
wTL[x][y]=(predModeIntra==INTRA_DC)?
((wL[x]>>4)+(wT[y]>>4)):0
-否则,如果predModeIntra等于INTRA_ANGULAR18或INTRA_ANGULAR50,则以下适用:
refL[x][y]=p[-1][y]
refT[x][y]=p[x][-1]
wT[y]=(predModeIntra==INTRA_ANGULAR 18)?
32>>((y<<1)>>nScale):0
wL[x]=(predModeIntra==INTRA_ANGULAR50)?
32>>((x<<1)>>nScale):0
wTL[x][y]=(predModeIntra==INTRA_ANGULAR18)?wT[y]:wL[x]
-否则,如果predModeIntra等于INTRA_ANGULAR2或INTRA_ANGULAR66,则以下适用:
refL[x][y]=p[-1][x+y+1]
refT[x][y]=p[x+y+1][-1]
wT[y]=(32>>1)>>((y<<1)>>nScale)
wL[x]=(32>>1)>>((x<<1)>>nScale)
wTL[x][y]=0
-否则,如果predModeIntra小于或等于INTRA_ANGULAR10,则应用以下有序步骤:
1.变量dXPos[y]、dXFrac[y]、dXInt[y]和dX[x][y]根据intraPredMode使用如上指定的invAngle如下导出:
dXPos[y]=((y+1)*invAngle+2)>>2
dXFrac[y]=dXPos[y]&63
dXInt[y]=dXPos[y]>>6
dX[x][y]=x+dXInt[y]
2.变量refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y]如下导出:
refL[x][y]=0
refT[x][y]=(dX[x][y]<refW-1)?mainRef[dX[x][y]+(dXFrac[y]>>5)]:0
wT[y]=(dX[x][y]<refW-1)?32>>((y<<1)>>nScale):0
wL[x]=0
wTL[x][y]=0
-否则,如果predModeIntra大于或等于INTRA_ANGULAR58,则应用以下有序步骤:
1.变量dYPos[x]、dYFrac[x]、dYInt[x]和dY[x][y]根据intraPredMode使用如上指定的invAngle如下导出:
dYPos[x]=((x+1)*invAngle+2)>>2
dYFrac[x]=dYPos[x]&63
dYInt[x]=dYPos[x]>>6
dY[x][y]=y+dYInt[x]
2.变量refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y]如下导出:
refL[x][y]=(dY[x][y]<refH-1)?sideRef[dY[x][y]+(dYFrac[x]>>5)]:0
refT[x][y]=0
wT[y]=0
wL[x]=(dY[x][y]<refH-1)?32>>((x<<1)>>nScale):0
wTL[x][y]=0
-否则,refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y]全部被设置为等于0。
经修改的预测的样本predSamples[x][y](其中x=0…nTbW-1、y=0…nTbH-1)的值如下导出:
predSamples[x][y]=clip1Cmp((refL[x][y]*wL[x]+refT[x][y]*wT[y]-p[-1][-1]*wTL[x][y]+(64-wL[x]-wT[y]+wTL[x][y])*predSamples[x][y]+32)>>6)
JVET-N1001中的位置相关的帧内预测样本滤波过程可能不太理想。具体地讲,存在用于角度模式的两种PDPC操作模式(除HOR/VER之外)。也就是说,特殊规则适用于模式2和66,这可能很复杂而本不必要。另外,对于角度模式,需要进行逐个样本检查以确定参考样本是否在范围内。如果其不在范围内,则对于当前样本将PDPC权重设置为0。此外,对于DC和平面模式,除了左上参考的使用之外,PDPC过程是相同的,这可提供不太理想的设计。
图5是示出根据本公开的一种或多种技术的可以被配置为对视频数据进行编码(例如,编码和/或解码)的系统的示例的框图。系统100表示可以根据本公开的一种或多种技术使用所述划分技术执行视频编码的系统的示例。如图5所示,系统100包括源设备102、通信介质110和目标设备120。在图5所示的示例中,源设备102可以包括被配置为对视频数据进行编码并将编码的视频数据传输到通信介质110的任何设备。目标设备120可以包括被配置为经由通信介质110接收编码视频数据并且对编码视频数据进行解码的任何设备。源设备102和/或目标设备120可以包括配备用于进行有线和/或无线通信的计算设备,并且可以包括机顶盒、数字视频录像机、电视机、台式电脑、膝上型电脑或平板电脑、游戏控制台、移动设备包括例如“智能”电话、蜂窝电话、个人游戏设备和医学成像设备。
通信介质110可以包括无线和有线通信介质和/或存储设备的任意组合。通信介质110可以包括同轴电缆、光纤电缆、双绞线电缆、无线发射器和接收器、路由器、交换机、中继器、基站或可用于促进各种设备和站点之间的通信的任何其他设备。通信介质110可以包括一个或多个网络。例如,通信介质110可以包括被配置为允许访问万维网例如互联网的网络。网络可以根据一个或多个电信协议的组合操作。电信协议可以包括专有方面并且/或者可以包括标准化电信协议。标准化电信协议的示例包括数字视频广播(DVB)标准、高级电视系统委员会(ATSC)标准、综合服务数字广播(ISDB)标准、有线数据业务接口规范(DOCSIS)标准、全球移动通信系统(GSM)标准、码分多址(CDMA)标准、第3代合作伙伴计划(3GPP)标准、欧洲电信标准协会(ETSI)标准、互联网协议(IP)标准、无线应用协议(WAP)标准以及电气与电子工程师协会(IEEE)标准。
存储设备可以包括能够存储数据的任何类型的设备或存储介质。存储介质可以包括有形或非暂态计算机可读介质。计算机可读介质可以包括光盘、闪存存储器、磁存储器或任何其他合适的数字存储介质。在一些示例中,存储器设备或其部分可以被描述为非易失性存储器,并且在其他示例中,存储器设备的部分可以被描述为易失性存储器。易失性存储器的示例可以包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。非易失性存储器的示例可以包括磁性硬盘、光盘、软盘、闪存或电可编程存储器(EPROM)或电可擦除和可编程(EEPROM)存储器的形式。存储设备可以包括存储卡(例如,安全数字(SD)存储卡)、内部/外部硬盘驱动器和/或内部/外部固态驱动器。数据可以根据定义的文件格式存储在存储设备上。
再次参考图5,源设备102包括视频源104、视频编码器106和接口108。视频源104可以包括被配置为捕获和/或存储视频数据的任何设备。例如,视频源104可以包括摄像机和可操作地与其耦接的存储设备。视频编码器106可以包括被配置为接收视频数据并生成表示视频数据的兼容比特流的任何设备。兼容比特流可以指视频解码器可以从其接收和再现视频数据的比特流。兼容比特流的各方面可根据视频编码标准来定义。当生成兼容比特流时,视频编码器106可以压缩视频数据。压缩可能是有损的(可觉察的或不可觉察的)或无损的。接口108可以包括被配置为接收兼容视频比特流并且将该兼容视频比特流传输和/或存储到通信介质的任何设备。接口108可以包括网络接口卡诸如以太网卡,并且可以包括光收发器、射频收发器或者可以发送和/或接收信息的任何其他类型的设备。此外,接口108可以包括计算机系统接口,该计算机系统接口可以允许兼容视频比特流存储在存储设备上。例如,接口108可以包括支持外围部件互连(PCI)和高速外围部件互连(PCIe)总线协议、专用总线协议、通用串行总线(USB)协议、I2C的芯片集或可用于互连对等设备的任何其他逻辑和物理结构。
再次参考图5,目标设备120包括接口122、视频解码器124和显示器126。接口122可以包括被配置为从通信介质接收兼容视频比特流的任何设备。接口108可以包括网络接口卡诸如以太网卡,并且可以包括光收发器、射频收发器或者可接收和/或发送信息的任何其他类型的设备。此外,接口122可以包括允许从存储设备检索兼容视频比特流的计算机系统接口。例如,接口122可以包括支持PCI和PCIe总线协议、专用总线协议、USB协议、I2C的芯片集或可用于互连对等设备的任何其他逻辑和物理结构。视频解码器124可以包括被配置为接收兼容比特流和/或其可接受变体,并且从其再现视频数据的任何设备。显示器126可以包括被配置为显示视频数据的任何设备。显示器126可以包括各种显示设备诸如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另外的类型的显示器中的一种。显示器126可以包括高清显示器或超高清显示器。应当指出的是,尽管在图3所示的示例中,视频解码器124被描述为将数据输出到显示器126,但视频解码器124可以被配置为将视频数据输出到各种类型的设备和/或其子部件。例如,视频解码器124可被配置为将视频数据输出到任何通信介质,如本文所述。
图6是示出可实现本文所述的用于对视频数据进行编码的技术的视频编码器200的示例的框图。应当指出的是,尽管示例性视频编码器200被示出为具有不同的功能块,但此类图示旨在用于描述目的,并且不将视频编码器200和/或其子部件限制为特定的硬件或软件架构。可使用硬件、固件和/或软件具体实施的任何组合来实现视频编码器200的功能。在一个示例中,视频编码器200可被配置为根据本文描述的技术对视频数据进行编码。视频编码器200可执行图片区域的帧内预测编码和帧间预测编码,并且因此可被称为混合视频编码器。在图6所示的示例中,视频编码器200接收源视频块。在一些示例中,源视频块可以包括已经根据编码结构划分的图片区域。例如,源视频数据可以包括宏块、CTU、CB、其子分区和/或另外的等效编码单元。在一些示例中,视频编码器200可被配置为执行源视频块的附加细分。应当指出的是,无论在编码之前和/或期间如何划分源视频数据,本文所述的一些技术都可普遍适用于视频编码。在图6所示的示例中,视频编码器200包括求和器202、变换系数生成器204、系数量化单元206、逆量化/变换处理单元208、求和器210、帧内预测处理单元212、帧间预测处理单元214、滤波器单元216和熵编码单元218。
如图6所示,视频编码器200接收源视频块并输出比特流。视频编码器200可通过从源视频块中减去预测视频块来生成残差数据。求和器202表示被配置为执行该减法运算的部件。在一个示例中,视频块的减法发生在像素域中。变换系数生成器204将变换,诸如离散余弦变换(Discrete Cosine Transform,DCT)、离散正弦变换(Discrete Sine Transform,DST)或概念上类似的变换,应用到其残差块或子分区(例如,可以将四个8×8变换应用于16×16残差值阵列)以生成一组残差变换系数。变换系数生成器204可被配置为执行离散三角变换系列中包括的变换的任意和全部组合。如上所述,在ITU-T H.265中,TB被限制为以下大小4×4、8×8、16×16和32×32。在一个示例中,变换系数生成器204可被配置为根据大小为4×4、8×8、16×16和32×32的阵列执行变换。在一个示例中,变换系数生成器204可进一步被配置为根据其他尺寸的阵列执行变换。具体地,在一些情况下,对不同值组成的矩形阵列执行变换可能是有用的。在一个示例中,变换系数生成器204可被配置为根据以下阵列大小来执行变换:2×2、2×4N、4M×2和/或4M×4N。在一个示例中,二维(2D)M×N逆变换可实现为一维(1D)M点逆变换后再进行1D N点逆变换。在一个示例中,2D逆变换可实现为1D N点垂直变换后再进行1D N点水平变换。在一个示例中,2D逆变换可实现为1D N点水平变换后再进行1D N点垂直变换。变换系数生成器204可将变换系数输出到系数量化单元206。
系数量化单元206可被配置为执行变换系数的量化。如上所述,可以通过调整量化参数来修改量化程度。系数量化单元206可以进一步被配置为确定量化参数并且输出QP数据(例如,用于确定量化组大小和/或增量QP值的数据),视频解码器可以使用该QP数据来重构量化参数以在视频解码期间执行逆量化。应当指出的是,在其他示例中,可以使用一个或多个附加或另选的参数来确定量化位阶(例如,缩放因子)。本文所述的技术通常可应用于基于对应于视频数据的某一分量的变换系数的量化位阶,确定对应于视频数据的另一分量的变换系数的量化位阶。
再次参见图6,量化的变换系数被输出到逆量化/变换处理单元208。逆量化/变换处理单元208可被配置为应用逆量化和逆变换来生成重构残差数据。如图6所示,在求和器210处,重构残差数据可以被添加到预测视频块。这样,可以重构编码的视频块,并且可以使用所得重构视频块来评估给定的预测、变换和/或量化的编码质量。视频编码器200可被配置为执行多个编码回合(例如,在改变预测、变换参数和量化参数中的一者或多者的同时执行编码)。比特流的率失真或其他系统参数可以基于重构的视频块的评估来优化。此外,重构视频块可被存储并用作预测后续块的参考。
如上所述,可以使用帧内预测来编码视频块。帧内预测处理单元212可被配置为针对待编码视频块选择帧内预测模式。帧内预测处理单元212可被配置为评估帧和/或其区域并且确定用以对当前块进行编码的帧内预测模式。如图6所示,帧内预测处理单元212将帧内预测数据(例如,语法元素)输出到熵编码单元218和变换系数生成器204。如上所述,对残差数据执行的变换可以取决于模式。如上所述,可能的帧内预测模式可以包括平面预测模式、DC预测模式和角度预测模式。此外,在一些示例中,可以从用于亮度预测模式的帧内预测推断出对色度分量的预测。
如上所述,在JVET-N1001中,在ISP模式下编码的CU的参考样本,可检索的样本具有不太理想的增大范围。也就是说,出于一致性目的,期望从先前编码的CU获取以用于帧内预测的参考样本是相同的,无论ISP是否用于给定CU。在一个示例中,根据本文的技术,建议将针对ISP模式中的CU内的给定分区检索的参考样本的量减少等于CU内的分区的偏移的量。具体地讲,根据本文的技术,在一个示例中,当ISP分割发生时,参考样本宽度refW和参考样本高度refH可如下导出:
refW=nCbW*2+xTb0-xTbCmpt;
refH=nCbH*2+yTb0-yTbCmp;
其中,
-样本位置(xTbCmp,yTbCmp)指定当前变换块相对于当前图片左上样本的左上样本,
-样本位置(xTb0,yTb0)指定当前编码单元中的第一变换块相对于当前图片左上样本的左上样本,并且
应当指出的是,当将针对ISP模式中的CU内的给定分区检索的参考样本的量减少等于CU内的分区的偏移的量时,益处在于当预测角度为正时,在应用PDPC过程之前,在具有ISP和不具有ISP的情况下获得的预测相同。
如进一步所述,在JVET-N1001中,当斜率是整数斜率并且具有用于具有整数斜率的角度的特殊规则不太理想时,对参考样本进行平滑以用于角度预测。根据本文的技术,在一个示例中,帧内样本预测过程可以不对样本进行平滑以用于角度预测滑,无论斜率是否是整数斜率。
如上所述,JVET-N1001中的位置相关的帧内预测样本滤波过程可能不太理想,因为对于角度模式存在两种PDPC操作模式,并且以及对于DC和平面模式,除了左上参考的使用之外,PDPC过程是相同的,这可提供不太理想的设计。在一个示例中,根据本文的技术,对于角度模式可存在单个PDPC操作模式。此外,根据本文的技术,指定PDPC缩放的推导,使得参考样本始终在范围内。在一个示例中,根据本文的技术,对于DC和平面模式PDPC方法可以是相同的。
如上所述,根据JVET-N1001中提供的filterFlag的推导,当使用ISP时,不同的规则适用于确定可变filterFlag,这是不期望的。在一个示例中,根据本文的技术,可使用独立于ISP的统一推导方法。
如上所述,JVET-N1001中提供的填充和投影过程不太理想。表6提供了对样本投影过程中的界限的分析。值x被设置为(nTbH*intraPredAngle)>>5,并且表示其可根据JVET-N1001中的以下公式采用的最小值:
ref[x]=p[-1-refIdx][-1-refIdx+Min((x*invAngle+256)>>9,nTbH)],其中x=-nTbH…-1
在表6中,值y表示用于对同一公式中的p阵列进行寻址的对应索引。加粗并下划线的值是超过nTbH的值。此类值是不可取的。例如,给定nTbH=8,不可能从p[][0…7]加载8个连续的样本并根据intraPredAngle的值将它们置乱以获得ref[]的投影值。即使引入偏移并加载p[][o+0…o+7]也将不能够进行此类置乱。
Figure BDA0003420622740000451
Figure BDA0003420622740000461
表6
在一个示例中,根据本文的技术,提供了投影过程,诸如以不包括较远处的参考样本。因此,进入参考阵列的索引被限于不超过nTbH-1。另外,期望具有以下特性:对于0…intraPredAngle-1中的x,32+((x*invAngle+128)>>8)等于(((x+intraPredAngle)*invAngle+128)>>8),使得当投影具有尺寸64的边缘时,该过程可被分成2个具有尺寸32的相同的投影。在JVET-N1001中,当intraPredAngle等于29时,不满足该特性。向反转角度推导中添加1位精度修复了这个问题。下面是使用SIMD的示例性C代码,其实现所提出的投影过程,其中每组8个样本的操作次数是2次矢量负载、1次矢量置乱和1次矢量存储:
const int sizeDiv8=(1<<log2Size)>>3;
int64_t offset=offsets[angleIdx];
for(int i=0;i<sizeDiv8;i++)
{
const_m128i x=_mm_loadu_si128((const_m128i*)&side[1+8*i]);
const_m128i y=_mm_loadu_si128((const_m128i*)shuffle[angleIdx][i&3]);_mm_storeu_si128((_m128i*)&main[offset>>56],_mm_shuffle_epi8(x,y))
offset<<=8>
}
具体地讲,根据本文的技术,在一个示例中,可基于intraPredAngle如下导出反转角度参数invAngle:
Figure BDA0003420622740000471
也就是说,例如,根据本文的技术,在一个示例中,可根据以下过程中的一个或多个过程执行帧内样本预测过程:
方向帧内预测模式过程
该过程的输入为:
-帧内预测模式predModeIntra,
-变量refIdx,其指定帧内预测参考行索引,
-变量nTbW,其指定变换块宽度,
-变量nTbH,其指定变换块高度,
-变量refW,其指定参考样本宽度,
-变量refH,其指定参考样本高度,
-变量nCbW,其指定编码块宽度,
-变量nCbH,其指定编码块高度,
-变量cIdx,其指定当前块的颜色分量,
-相邻样本p[x][y],其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx。
该过程的输出是预测的样本predSamples[x][y],其中x=0…nTbW-1,y=0…nTbH-1。
将变量nTbS设置为等于(Log2(nTbW)+Log2(nTbH))>>1。
变量filterFlag如下导出:
-将变量minDistVerHor设置为等于Min(Abs(predModeIntra-50),Abs(predModeIntra-18))。
-变量intraHorVerDistThres[nTbS]在表1中指定
-如果minDistVerHor大于intraHorVerDistThres[nTbS],则将filterFlag设置为等于1。
-否则,将filterFlag设置为等于0。
另选地,变量filterFlag如下导出:
-将变量minDistVerHor设置为等于Min(Abs(predModeIntra-50),Abs(predModeIntra-18))。
-变量intraHorVerDistThres[nTbS]在表1中指定
-如果refIdx等于0,IntraSubPartitionsSplitType等于ISP_NO_SPLIT,并且minDistVerHor大于intraHorVerDistThres[nTbS],则将filterFlag设置为等于1。
-否则,将filterFlag设置为等于0。
表2指定predModeIntra与角度参数intraPredAngle之间的映射表。
基于intraPredAngle来如下导出反转角度参数invAngle:
Figure BDA0003420622740000481
内插滤波器系数fC[相位][j]和fG[相位][j],其中相位=0…31并且j=0…3,在表3中指定。
预测样本predSamples[x][y](其中x=0…nTbW-1,y=0…nTbH-1)的值如下导出:
-如果predModeIntra大于或等于34,则应用以下有序步骤:
1.参考样本阵列ref[x]如下指定:
-以下适用:
ref[x]=p[-1-refIdx+x][-1-refIdx],其中x=0…nTbW+refIdx+1
-如果intraPredAngle小于0,则主参考样本阵列如下扩展:
ref[x]=p[-1-refIdx][-1-refIdx+((x*invAngle+256)>>9,nTbH)],其中x=-nTbH…-1
-否则,
ref[x]=p[-1-refIdx+x][-1-refIdx],其中x=nTbW+2+refIdx…refW+refIdx
-附加样本ref[refW+refIdx+x],其中x=1…(Max(1,nTbW/nTbH)*refIdx+2),如下导出:
ref[refW+refIdx+x]=p[-1+refW][-1-refIdx]
2.预测样本predSamples[x][y](其中x=0…nTbW-1,y=0…nTbH-1)的值如下导出:
-指数变量iIdx和乘法因子iFact如下导出:
iIdx=(((y+1+refIdx)*intraPredAngle)>>5)+refIdx
iFact=((y+1+refIdx)*intraPredAngle)&31
-如果cIdx等于0,则以下适用:
-内插滤波器系数fT[j](其中j=0…3)如下导出:
fT[j]=filterFlag?fG[iFact][j]:fC[iFact][j]
-预测样本predSamples[x][y]的值如下导出:
Figure BDA0003420622740000491
-否则(cIdx不等于0),根据iFact的值,以下适用:
-如果iFact不等于0,则预测样本predSamples[x][y]的值如下导出:
predSamples[x][y]=((32-iFact)*ref[x+iIdx+1]+iFact*ref[x+iIdx+2]+16)>>5
-否则,预测样本predSamples[x][y]的值如下导出:
predSamples[x][y]=ref[x+iIdx+1]
-否则(predModeIntra小于34),应用以下有序步骤:
1.参考样本阵列ref[x]如下指定:
-以下适用:
ref[x]=p[-1-refIdx][-1-refIdx+x],其中x=0…nTbH+refIdx+1
-如果intraPredAngle小于0,则主参考样本阵列如下扩展:
ref[x]=p[-1-refIdx+((x*invAngle+256)>>9,nTbW)][-1-refIdx],其中x=-nTbW…-1
-否则,
ref[x]=p[-1-refIdx][-1-refIdx+x],其中
x=nTbH+2+refIdx…refH+refIdx
-附加样本ref[refH+refIdx+x],其中x=1…(Max(1,nTbW/nTbH)*refIdx+2),如下导出:
ref[refH+refIdx+x]=p[-1+refH][-1-refIdx]
2.预测样本predSamples[x][y](其中x=0…nTbW-1,y=0…nTbH-1)的值如下导出:
-指数变量iIdx和乘法因子iFact如下导出:
iIdx=(((x+1+refIdx)*intraPredAngle)>>5)+refIdx
iFact=((x+1+refIdx)*intraPredAngle)&31
-如果cIdx等于0,则以下适用:
-内插滤波器系数fT[j](其中j=0…3)如下导出:
fT[j]=filterFlag?fG[iFact][j]:fC[iFact][j]
-预测样本predSamples[x][y]的值如下导出:
Figure BDA0003420622740000501
-否则(cIdx不等于0),根据iFact的值,以下适用:
-如果iFact不等于0,则预测样本predSamples[x][y]的值如下导出:
predSamples[x][y]=((32-iFact)*ref[y+iIdx+1]+iFact*ref[y+iIdx+2]+16)>>5
-否则,预测样本predSamples[x][y]的值如下导出:
predSamples[x][y]=ref[y+iIdx+1]
用于帧内块的解码过程
该过程的输入为:
-样本位置(xTb0,yTb0),其指定当前变换块相对于当前图片左上样本的左上样本,
-变量nTbW,其指定当前变换块的宽度,
-变量nTbH,其指定当前变换块的高度,
-变量predModeIntra,其指定帧内预测模式,
-变量cIdx,其指定当前块的颜色分量。
该过程的输出是循环中滤波之前的经修改的重构图片。
最大变换块尺寸maxTbSize如下导出:
maxTbSize=(cIdx==0)?MaxTbSizeY:MaxTbSizeY/2
亮度样本位置如下导出:
(xTbY,yTbY)=(cIdx==0)?(xTb0,yTb0):(xTb0*2,yTb0*2)
根据maxTbSize,以下适用:
-如果IntraSubPartitionsSplitType等于NO_ISP_SPLIT,并且nTbW大于maxTbSize或者nTbH大于maxTbSize,则应用以下有序步骤。
1.变量newTbW和newTbH如下导出:
newTbW=(nTbW>maxTbSize)?(nTbW/2):nTbW
newTbH=(nTbH>maxTbSize)?(nTbH/2):nTbH
2.调用如该子句中指定的用于帧内块的一般解码过程,其中以位置(xTb0,yTb0)、设置为等于newTbW的变换块宽度nTbW和设置为等于newTbH的高度nTbH、帧内预测模式predModeIntra以及变量cIdx作为输入,并且输出是循环中滤波之前的经修改的重构图片。
3.如果nTbW大于maxTbSize,则调用如该子句中指定的用于帧内块的一般解码过程,其中以设置为等于(xTb0+newTbW,yTb0)的位置(xTb0,yTb0)、设置为等于newTbW的变换块宽度nTbW和设置为等于newTbH的高度nTbH、帧内预测模式predModeIntra以及变量cIdx作为输入,并且输出是循环中滤波之前的经修改的重构图片。
4.如果nTbH大于maxTbSize,则调用如该子句中指定的用于帧内块的一般解码过程,其中以设置为等于(xTb0,yTb0+newTbH)的位置(xTb0,yTb0)、设置为等于newTbW的变换块宽度nTbW和设置为等于newTbH的高度nTbH、帧内预测模式predModeIntra以及变量cIdx作为输入,并且输出是循环中滤波之前的经修改的重构图片。
5.如果nTbW大于maxTbSize并且nTbH大于maxTbSize,则调用如该子句中指定的用于帧内块的一般解码过程,其中以设置为等于(xTb0+newTbW,yTb0+newTbH)的位置(xTb0,yTb0)、设置为等于newTbW的变换块宽度nTbW和设置为等于newTbH的高度nTbH、帧内预测模式predModeIntra以及变量cIdx作为输入,并且输出是循环中滤波之前的经修改的重构图片。
-否则,应用以下有序步骤:
-变量nW、nH、numPartsX和numPartsY如下导出:
nW=IntraSubPartitionsSplitType==ISP_VER_SPLIT?
nTbW/NumIntraSubPartitions:nTbW
nH=IntraSubPartitionsSplitType==ISP_HOR_SPLIT?
nTbH/NumIntraSubPartitions:nTbH
numPartsX=IntraSubPartitionsSplitType==ISP_VER_SPLIT?
NumIntraSubPartitions:1
numPartsY=IntraSubPartitionsSplitType==ISP_HOR_SPLIT?
NumIntraSubPartitions:1
-对于xPartIdx=0…numPartsX-1并且yPartIdx=0…numPartsY-1,以下适用:
1.调用如下文指定的帧内样本预测过程,其中以设置为等于(xTb0+nW*xPartIdx,yTb0+nH*yPartIdx)的位置(xTbCmp,yTbCmp)、位置(xTb0,yTb0)、帧内预测模式predModeIntra、设置为等于nW和nH的变换块宽度nTbW和高度nTbH、设置为等于nTbW和nTbH的编码块宽度nCbW和高度nCbH以及变量cIdx作为输入,并且输出是(nTbW)×(nTbH)阵列predSamples。
帧内样本预测过程
该过程的输入为:
-样本位置(xTbCmp,yTbCmp),其指定当前变换块相对于当前图片左上样本的左上样本,
-样本位置(xTb0,yTb0),其指定当前编码单元中的第一变换块相对于当前图片左上样本的左上样本,
-变量predModeIntra,其指定帧内预测模式,
-变量nTbW,其指定变换块宽度,
-变量nTbH,其指定变换块高度,
-变量nCbW,其指定编码块宽度,
-变量nCbH,其指定编码块高度,
-变量cIdx,其指定当前块的颜色分量。
该过程的输出是预测的样本predSamples[x][y],其中x=0…nTbW-1,y=0…nTbH-1。
预测样本predSamples[x][y]如下导出:
-如果intra_mip_flag[xTbComp][yTbComp]等于1并且cIdx等于0,则调用基于矩阵的帧内样本预测过程,其中以位置(xTbCmp,yTbCmp)、位置(xTb0,yTb0)、帧内预测模式predModeIntra、变换块宽度nTbW和高度nTbH作为输入,并且输出是predSamples。
-否则调用如下文指定的通用(非mip)帧内样本预测过程,其中以位置(xTbCmp,yTbCmp)、帧内预测模式predModeIntra、变换块宽度nTbW和高度nTbH、编码块宽度nCbW和高度nCbH以及变量cIdx作为输入来,并且输出是predSamples。
通用(非mip)帧内样本预测过程
该过程的输入为:
-样本位置(xTbCmp,yTbCmp),其指定当前变换块相对于当前图片左上样本的左上样本,
-样本位置(xTb0,yTb0),其指定当前编码单元中的第一变换块相对于当前图片左上样本的左上样本,
-变量predModeIntra,其指定帧内预测模式,
-变量nTbW,其指定变换块宽度,
-变量nTbH,其指定变换块高度,
-变量nCbW,其指定编码块宽度,
-变量nCbH,其指定编码块高度,
-变量cIdx,其指定当前块的颜色分量。
该过程的输出是预测的样本predSamples[x][y],其中x=0…nTbW-1,y=0…nTbH-1。
变量refW和refH如下导出:
-如果IntraSubPartitionsSplitType等于ISP_NO_SPLIT或者cIdx不等于0,则以下适用:
refW=nTbW*2
refH=nTbH*2
-否则(IntraSubPartitionsSplitType不等于ISP_NO_SPLIT并且cIdx等于0),以下适用:
refW=nCbW*2+xTb0-xTbCmp
refH=nCbH*2+yTb0-yTbCmp
refIdx=(cIdx==0)?IntraLumaRefLineIdx[xTbCmp][yTbCmp]:0
调用广角帧内预测模式映射过程,其中以predModeIntra、nTbW、nTbH和cIdx作为输入,并且以经修改的predModeIntra作为输出。
对于参考样本p[x][y]的生成,其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx,应用以下有序步骤:
1.调用参考样本可用性标记过程,其中以样本位置(xTbCmp,yTbCmp)、帧内预测参考行索引refIdx、参考样本宽度refW、参考样本高度refH、颜色分量索引cIdx作为输入,并且以参考样本refUnfilt[x][y](其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx)作为输出。
2.当至少一个样本refUnfilt[x][y](其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx)被标记为“不可用于帧内预测”时,调用参考样本替换过程,其中以帧内预测参考行索引refIdx、参考样本宽度refW、参考样本高度refH、参考样本refUnfilt[x][y](其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx)和颜色分量索引cIdx作为输入,并且以经修改的参考样本refUnfilt[x][y](其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx)作为输出。
3.调用如下文指定的参考样本滤波过程,其中以帧内预测参考行索引refIdx、变换块宽度nTbW和高度nTbH、参考样本宽度refW、参考样本高度refH、未经滤波样本refUnfilt[x][y](其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx)和颜色分量索引cIdx作为输入,并且以参考样本p[x][y](其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx)作为输出。
根据predModeIntra的帧内样本预测过程应用如下:
-如果predModeIntra等于INTRA_PLANAR,则调用如下文指定的对应帧内预测模式过程,其中以变换块宽度nTbW和变换块高度nTbH以及参考样本阵列p作为输入,并且输出是预测的样本阵列predSamples。
-否则,如果predModeIntra等于INTRA_DC,则调用如下文指定的对应帧内预测模式过程,其中以变换块宽度nTbW、变换块高度nTbH、帧内预测参考行索引refIdx以及参考样本阵列p作为输入,并且输出是预测的样本阵列predSamples。
-否则,如果predModeIntra等于INTRA_LT_CCLM、INTRA_L_CCLM或INTRA_T_CCLM,则调用对应的帧内预测模式过程,其中以帧内预测模式predModeIntra、设置为等于(xTbCmp,yTbCmp)的样本位置(xTbC,yTbC)、变换块宽度nTbW和高度nTbH以及参考样本阵列p作为输入,并且输出是预测的样本阵列predSamples。
-否则,调用对应的帧内预测模式过程,其中以帧内预测模式predModeIntra、帧内预测参考行索引refIdx、变换块宽度nTbW、变换块高度nTbH、参考样本宽度refW、参考样本高度refH、编码块宽度nCbW和高度nCbH、颜色分量索引cIdx和参考样本阵列p作为输入,并且以预测的样本阵列predSamples作为输出。
当所有以下条件都为真时,调用下文指定的位置相关的预测样本滤波过程,其中以帧内预测模式predModeIntra、变换块宽度nTbW、变换块高度nTbH、预测样本predSamples[x][y](其中x=0…nTbW-1、y=0…nTbH-1)、参考样本宽度refW、参考样本高度refH、参考样本p[x][y](其中x=-1、y=-1…refH-1和x=0…refW-1、y=-1)和颜色分量索引cIdx作为输入,并且输出是经修改的预测的样本阵列predSamples:
-IntraSubPartitionsSplitType等于ISP_NO_SPLIT或者cIdx不等于0
-refIdx等于0或者cIdx不等于0
-BdpcmFlag[xTbCmp][xTbCmp]等于0
-predModeIntra小于或等于INTRA_ANGULAR18或大于或等于INTRA_ANGULAR50
参考样本滤波过程
参考样本滤波过程
该过程的输入为:
-变量refIdx,其指定帧内预测参考行索引,
-变量nTbW,其指定变换块宽度,
-变量nTbH,其指定变换块高度,
-变量refW,其指定参考样本宽度,
-变量refH,其指定参考样本高度,
-(未经滤波的)相邻样本refUnfilt[x][y],其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx,
-变量cIdx,其指定当前块的颜色分量。
该过程的输出是参考样本p[x][y],其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx。
变量filterFlag如下导出:
-如果以下条件中的全部为真,则将filterFlag设置为等于1:
-nTbW*nTbH大于32
-cIdx等于0
-IntraSubPartitionsSplitType等于ISP_NO_SPLIT
-predModeIntra等于INTRA_PLANAR
-否则,将filterFlag设置为等于0。
对于参考样本p[x][y]的推导,以下适用:
-如果filterFlag等于1,则经滤波的样本值p[x][y](其中x=-1,y=-1…refH-1和x=0…refW-1,y=-1)如下导出:
p[-1][-1]=refUnfilt[-1][-1]
p[-1][y]-(refUnfilt[-1][y+1]+2*refUnfilt[-1][y]+refUnfilt[-1][y-1]+2)>>2对于y=0…nTbH
p[-1][y]=refUnfilt[-1][y],对于y=nTbH+1…refH-1
p[x][-1]=(refUnfilt[x-1][-1]+2*refUnfilt[x][-1]+refUnfilt[x+1][-1]+2)>>2对于x=0…nTbW
p[x][-1]=refUnfilt[x][-1],对于y=nTbW+1…refH-1
-否则,将参考样本值p[x][y]设置为等于未经滤波的样本值refUnfilt[x][y],其中x=-1-refIdx、y=-1-refIdx…refH-1和x=-refIdx…refW-1、y=-1-refIdx。
位置相关的帧内预测样本滤波过程
该过程的输入为:
-帧内预测模式predModeIntra,
-变量nTbW,其指定变换块宽度,
-变量nTbH,其指定变换块高度,
-变量refW,其指定参考样本宽度,
-变量refH,其指定参考样本高度,
-预测的样本predSamples[x][y],其中x=0…nTbW-1,y=0…nTbH-1,
-相邻样本p[x][y],其中
x=-1,y=-1…refH-1并且x=0…refW-1,y=-1,
-变量cIdx,其指定当前块的颜色分量。
该过程的输出是修改的预测的样本predSamples[x][y],其中x=0…nTbW-1,y=0…nTbH-1。
根据cIdx的值,函数clip1Cmp设置如下:
-如果cIdx等于0,则将clip1Cmp设置为等于Clip1y。
-否则,将clip1Cmp设置为等于Clip1c。
将变量nScale设置为((Log2(nTbW)+Log2(nTbH)-2)>>2)。
如果predModeIntra大于INTRA_ANGULAR50,则使用如上文指定的invAngle将可变nScale进一步设置为Min(2,Log2(nTbH)-Floor(Log2(3*invAngle-2))+7)。
如果predModeIntra小于INTRA_ANGULAR18并且不等于INTRA_PLANAR或INTRA__DC中的任一者,则使用如上文指定的invAngle将可变nScale进一步设置为Min(2,Log2(nTbW)-Floor(Log2(3*invAngle-2))+7)。
应当指出的是,在一个示例中,如果反转角度的精度增加,则将可变nScale进一步设置为Min(2,Log2(nTbH)-Floor(Log2(3*invAngle-2))+8),并且将可变nScale进一步设置为Min(2,Log2(nTbW)-Floor(Log2(3*invAngle-2))+8)。
参考样本阵列mainRef[x]和sideRef[y](其中x=0…refW-1,并且y=0…refH-1)如下导出:
mainRef[x]=p[x][-1]
sideRef[y]=p[-1][y]
变量refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y](其中x=0…nTbW-1、y=0…nTbH-1)如下导出:
-如果predModeIntra等于INTRA_PLANAR或INTRA_DC,则以下适用:
refL[x][y]=p[-1][y]
refT[x][y]=p[x][-1]
wT[y]=32>>((y<<1)>>nScale)
wL[x]=32>>((x<<1)>>nScale)
wTL[x][y]=0
-否则,如果predModeIntra等于INTRA_ANGULAR18或INTRA_ANGULAR50,则以下适用:
refL[x][y]=p[-1][y]
refT[x][y]=p[x][-1]
wT[y]=(predModeIntra==INTRA_ANGULAR 18)?
32>>((y<<1)>>nScale):0
wL[x]=(predModeIntra==INTRA_ANGULAR50)?
32>>((x<<1)>>nScale):0
wTL[x][y]=(predModeIntra==INTRA_ANGULAR18)?wT[y]:wL[x]
-否则,如果predModeIntra小于INTRA_ANGULAR18,并且nScale等于或大于0,则应用以下有序步骤:
1.变量dXInt[y]和dX[x][y]根据intraPredMode使用如上指定的invAngle如下导出:
dXPos[y]=((y+1)*invAngle+128)>>8
((y+1)*invAngle+256)>>9,如果反转角度的精度增加。
dX[x][y]=x+dXInt[y]
2.变量refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y]如下导出:
refL[x][y]=0
refT[x][y]=(y<(3<<nScale))?mainRef[dX[x][y]]:0
wT[y]=32>>((y<<1)>>nScale)
wL[x]=0
wTL[x][y]=0
-否则,如果predModeIntra大于INTRA_ANGULAR50,并且nScale等于或大于0,则应用以下有序步骤:
1.变量dYPos[x]、dYFrac[x]、dYInt[x]和dY[x][y]根据intraPredMode使用如上指定的invAngle如下导出:
dylnt[x]-((x+1)*invAngle+128)>>8
((x+1)*invAngle+256)>>9,如果反转角度的精度增加。
dY[x][y]=y+dYInt[x]
2.变量refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y]如下导出:
refL[x][y]=(x<(3<<nScale))?sideRef[dY[x][y]]:0
refT[x][y]=0
wT[y]=0
wL[x]=32>>((x<<1)>>nScale)
wTL[x][y]=0
-否则,refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y]全部被设置为等于0。
经修改的预测的样本predSamples[x][y](其中x=0…nTbW-1、y=0…nTbH-1)的值如下导出:
predSamples[x][y]=clip1Cmp((refL[x][y]*wL[x]+refT[x][y]*wT[y]-p[-1][-1]*wTL[x][y]+(64-wL[x]-wT[y]+wTL[x][y])*predSamples[x][y]+32)>>6)
这样,视频编码器200表示设备的示例,该设备被配置为:基于由帧内预测模式提供的反转角度来设置缩放变量的值,以及基于该缩放变量的值来执行位置相关的帧内预测样本滤波过程。
帧间预测处理单元214可被配置为针对当前视频块执行帧间预测编码。帧间预测处理单元214可被配置为接收源视频块并且计算视频块的PU的运动矢量。运动矢量可以指示当前视频帧内的视频块的PU(或类似的编码结构)相对于参考帧内的预测块的位移。帧间预测编码可以使用一个或多个参考图片。此外,运动预测可以是单向预测(使用一个运动矢量)或双向预测(使用两个运动矢量)。帧间预测处理单元214可被配置为通过计算由例如绝对差之和(SAD)、平方差之和(SSD)或其他差值度量确定的像素差来选择预测块。如上所述,可以根据运动矢量预测来确定和指定运动矢量。如上所述,帧间预测处理单元214可被配置为执行运动矢量预测。帧间预测处理单元214可被配置为使用运动预测数据生成预测块。例如,帧间预测处理单元214可定位帧缓冲器内的预测视频块(图6中未示出)。应当指出的是,帧间预测处理单元214可以进一步被配置为将一个或多个内插滤波器应用于重构残差块,以计算用于运动估计的子整数像素值。帧间预测处理单元214可将所计算的运动矢量的运动预测数据输出到熵编码单元218。如图6所示,帧间预测处理单元214可经由滤波器单元216接收重构的视频块。
如图6所示,滤波器单元216接收重构的视频块和编码参数,并且输出经修改的重构视频数据。滤波器单元216可被配置为执行解块、样本自适应偏移(SAO)滤波、自适应环路滤波(ALF)等。SAO滤波是一种可用于通过向重构视频数据添加偏移以改善重构的非线性振幅映射。应当指出的是,如图5所示,帧内预测处理单元212和帧间预测处理单元214可以经由滤波器单元216接收经修改的重构视频块。熵编码单元218接收量化的变换系数和预测语法数据(即,帧内预测数据和运动预测数据)。熵编码单元218可以被配置为根据本文所述的技术中的一种或多种技术执行熵编码。
图7是示出根据本公开的一种或多种技术的可被配置为对视频数据进行解码的视频解码器的示例的框图。在一个示例中,视频解码器300可被配置为基于上文所述的技术中的一种或多种技术来重构视频数据。也就是说,视频解码器300可以与上述视频编码器200互逆的方式操作。视频解码器300可被配置为执行帧内预测解码和帧间预测解码,并且因此可被称为混合解码器。在图7所示的示例中,视频解码器300包括熵解码单元302、逆量化单元304、逆变换处理单元306、帧内预测处理单元308、帧间预测处理单元310、求和器312、滤波器单元314和参考缓冲器316。视频解码器300可被配置为以与视频编码系统一致的方式对视频数据进行解码,该视频编码系统可以实现视频编码标准的一个或多个方面。应当指出的是,尽管示出的示例性视频解码器300具有不同的功能块,但此类图示旨在用于描述目的,并且不将视频解码器300和/或其子部件限制为特定的硬件或软件架构。可使用硬件、固件和/或软件具体实施的任何组合来实现视频解码器300的功能。
如图7所示,熵解码单元302接收熵编码的比特流。熵解码单元302可被配置为根据与熵编码过程互逆的过程对来自比特流的量化语法元素和量化系数进行解码。熵解码单元302可被配置为根据上文所述的任何熵编码技术来执行熵解码。熵解码单元302可以与视频编码标准一致的方式解析编码的比特流。视频解码器300可被配置为解析编码的比特流,其中该编码的比特流基于上述技术生成。
再次参考图7,逆量化单元304从熵解码单元302接收量化变换系数(即,位阶值)和量化参数数据。量化参数数据可以包括上述增量QP值和/或量化组大小值等的任意组合和全部组合。视频解码器300和/或逆量化单元304可被配置为基于由视频编码器发信号通知的值和/或通过视频属性和/或编码参数来确定用于逆量化的QP值。也就是说,逆量化单元304可以与上述系数量化单元206互逆的方式操作。例如,逆量化单元304可被配置为根据上述技术推断预先确定的值)、允许的量化组大小、导出量化参数等。逆量化单元304可被配置为应用逆量化。逆变换处理单元306可被配置为执行逆变换以生成重构残差数据。由逆量化单元304和逆变换处理单元306分别执行的技术可类似于由上述逆量化/变换处理单元208执行的技术。逆变换处理单元306可被配置为应用逆DCT、逆DST、逆整数变换、不可分二次变换(NSST)或概念上类似的逆变换过程来变换系数,以便产生像素域中的残差块。此外,如上所述,是否执行特定变换(或特定变换的类型)可以取决于帧内预测模式。如图7所示,可将重构残差数据提供给求和器312。求和器312可以将重构残差数据添加到预测视频块并且生成重构视频数据。可根据预测视频技术(即帧内预测和帧间预测)确定预测视频块。
帧内预测处理单元308可被配置为接收帧内预测语法元素并且从参考缓冲器316检索预测视频块。参考缓冲器316可以包括被配置为存储一个或多个视频数据帧的存储器设备。帧内预测语法元素可识别帧内预测模式,诸如上述的帧内预测模式。在一个示例中,帧内预测处理单元308可以使用根据本文所述的帧内预测编码技术中的一种或多种技术来重构视频块。帧间预测处理单元310可接收帧间预测语法元素并生成运动矢量,以识别存储在参考缓冲器316中的一个或多个参考帧中的预测块。帧间预测处理单元310可以生成运动补偿块,可能基于内插滤波器执行内插。用于具有子像素精度的运动估计的内插滤波器的标识符可以包括在语法元素中。帧间预测处理单元310可以使用内插滤波器来计算参考块的子整数像素的内插值。滤波器单元314可被配置为对重构的视频数据执行滤波。例如,滤波器单元314可被配置为执行解块和/或SAO滤波,如上面关于滤波器单元216所描述的。此外,应当指出的是,在一些示例中,滤波器单元314可被配置为执行专用的任意滤波(例如,视觉增强)。如图7所示,视频解码器300可以输出重构的视频块。这样,视频解码器300表示设备的示例,该设备被配置为:基于由帧内预测模式提供的反转角度来设置缩放变量的值,以及基于该缩放变量的值来执行位置相关的帧内预测样本滤波过程。
在一个或多个示例中,所述功能可以通过硬件、软件、固件或它们的任何组合来实现。如果以软件实现,则可将功能作为一个或多个指令或代码存储在计算机可读介质上或经由计算机可读介质上传输,并且由基于硬件的处理单元执行。计算机可读介质可以包括对应于有形介质诸如数据存储介质的计算机可读存储介质,或者包括例如根据通信协议促进计算机程序从一个地方传输到另一个地方的任何介质的传播介质。这样,计算机可读介质通常可以对应于:(1)非暂态的有形计算机可读存储介质,或者(2)通信介质诸如信号或载波。数据存储介质可以是可以由一个或多个计算机或一个或多个处理器访问以检索用于实现本公开中所述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
以举例而非限制的方式,此类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储设备、磁盘存储设备或其他磁存储设备、闪存存储器、或者可用于存储指令或数据结构形式的所需程序代码并且可由计算机访问的任何其他介质。而且,任何连接都被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(DSL)或无线技术诸如红外线、无线电和微波从网站、服务器或其他远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或无线技术诸如红外线、无线电和微波都包含在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂态介质,而是针对非暂态有形存储介质。如本文所用,磁盘和光盘包括压缩光盘(CD)、激光盘、光学光盘、数字通用光盘(DVD)、软磁盘及Blu-ray光盘,其中磁盘通常以磁性方式复制数据,而光盘则利用激光以光学方式复制数据。上述的组合也应该被包括在计算机可读介质的范围内。
可以由一个或多个处理器诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效集成或离散逻辑电路执行指令。因此,如本文所用的术语“处理器”可以指任何前述结构或适用于实现本文所描述的技术的任何其他结构。此外,在一些方面中,可以在被配置用于编码和解码的专用硬件和/或软件模块内提供本文所述的功能,或者将其结合到组合编解码器中。而且,这些技术可以完全在一个或多个电路或逻辑元件中实现。
本公开的技术可以在各种设备或装置包括无线手机、集成电路(IC)或IC集(例如,芯片集)中实现。在本公开中描述了各种部件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但是不一定需要通过不同的硬件单元来实现。相反,如上所述,可以将各种单元组合在编解码器硬件单元中,或者通过互操作硬件单元包括如上所述的一个或多个处理器的集合,结合合适的软件和/或固件来提供各种单元。
此外,每个上述实施方案中所使用的基站设备和终端设备的每个功能块或各种特征可通过电路(通常为一个集成电路或多个集成电路)实现或执行。被设计为执行本说明书中所述的功能的电路可以包括通用处理器、数字信号处理器(DSP)、专用或通用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑设备、分立栅极或晶体管逻辑器或分立硬件部件或它们的组合。通用处理器可为微处理器,或另选地,该处理器可为常规处理器、控制器、微控制器或状态机。通用处理器或上述每种电路可由数字电路进行配置,或可由模拟电路进行配置。此外,当由于半导体技术的进步而出现制成取代当前集成电路的集成电路的技术时,也能够使用通过该技术生产的集成电路。
已经描述了各种示例。这些示例和其他示例在以下权利要求的范围内。
<发明内容>
在一个示例中,一种对视频数据进行编码的方法,该方法包括:基于由帧内预测模式提供的反转角度来设置缩放变量的值;以及基于该缩放变量的值来执行位置相关的帧内预测样本滤波过程。
在一个示例中,提供了该方法,其中基于由帧内预测模式提供的反转角度来设置缩放变量的值包括基于该帧内预测模式是否大于指定模式来设置该缩放变量的该值。
在一个示例中,提供了该方法,根据本文描述的一种或多种技术确定由帧内预测模式提供的反转角度。
在一个示例中,一种用于对视频数据进行编码的设备,该设备包括被配置为执行这些步骤的任意和全部组合的一个或多个处理器。
在一个示例中,提供了该设备,其中该设备包括视频编码器。
在一个示例中,提供了该设备,其中该设备包括视频解码器。
在一个示例中,一种系统,该系统包括:设备,该设备包括视频编码器;并且该设备包括视频解码器。
在一个示例中,一种用于对视频数据进行编码的装置,该装置包括用于执行步骤的任意和全部组合的装置。
在一个示例中,一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质包括存储在其上的指令,当这些指令被执行时,使得用于编码视频数据的设备的一个或多个处理器执行步骤的任意和全部组合。
在一个示例中,一种对视频数据进行编码的方法,该方法包括:导出帧内预测角度参数;基于该帧内预测角度参数来导出反转角度参数;对于包括在限定的一组预测模式中的预测模式,基于所导出的反转角度来设置缩放变量的值;以及使用该缩放变量的值来执行位置相关的帧内预测样本滤波过程。
在一个示例中,提供了该方法,其中该限定的一组预测模式包括2至17范围内的预测模式和51至80范围内的预测模式。
在一个示例中,提供了该方法,其中基于帧内预测角度参数来导出反转角度参数包括将16,384除以该帧内预测角度参数。
在一个示例中,提供了该方法,其中基于所导出的反转角度来设置该缩放变量的该值包括除非所导出的反转角度大于对应于变换块尺寸的阈值,否则将该缩放变量的该值设置为2。
在一个示例中,提供了该方法,其中确定所导出的反转角度是否大于阈值包括执行以下计算:Floor(Log2(3*invAngle-2)),其中invAngle是所导出的反转角度。
在一个示例中,提供了该方法,还包括对于未包括在该限定的一组预测模式中的预测模式,基于变换块高度尺寸和宽度尺寸来设置该缩放变量的该值。
在一个示例中,一种包括一个或多个处理器的设备,该一个或多个处理器被配置为:导出帧内预测角度参数;基于该帧内预测角度参数来导出反转角度参数;对于限定的一组预测模式,基于所导出的反转角度来设置缩放变量的值;以及使用该缩放变量的值来执行位置相关的帧内预测样本滤波过程。
在一个示例中,提供了该设备,其中该限定的一组预测模式包括2至17范围内的预测模式和51至80范围内的预测模式。
在一个示例中,提供了该设备,其中基于帧内预测角度参数来导出反转角度参数包括将16,384除以该帧内预测角度参数。
在一个示例中,提供了该设备,其中基于所导出的反转角度来设置该缩放变量的该值包括除非所导出的反转角度大于对应于变换块尺寸的阈值,否则将该缩放变量的该值设置为2。
在一个示例中,提供了该设备,其中确定所导出的反转角度是否大于阈值包括执行以下计算:Floor(Log2(3*invAngle-2)),其中invAngle是所导出的反转角度。
在一个示例中,提供了该设备,还包括对于未包括在该限定的一组预测模式中的预测模式,基于变换块高度尺寸和宽度尺寸来设置该缩放变量的该值。
在一个示例中,提供了该设备,其中该设备是视频解码器。
<交叉引用>
本非临时专利申请根据《美国法典》第35卷第119节(35 U.S.C.§119)要求于2019年6月24日提交的临时申请62/865,661、2019年6月28日提交的临时申请62/868,276的优先权,这两个申请的全部内容据此以引用方式并入。

Claims (13)

1.一种对视频数据进行编码的方法,所述方法包括:
导出帧内预测角度参数;
基于所述帧内预测角度参数来导出反转角度参数;
对于包括在限定的一组预测模式中的预测模式,基于所导出的反转角度来设置缩放变量的值;以及
使用所述缩放变量的值来执行位置相关的帧内预测样本滤波过程。
2.根据权利要求1所述的方法,其中所述限定的一组预测模式包括2至17范围内的预测模式和51至80范围内的预测模式。
3.根据权利要求1所述的方法,其中基于帧内预测角度参数来导出反转角度参数包括将16,384除以所述帧内预测角度参数。
4.根据权利要求1所述的方法,其中基于所导出的反转角度来设置所述缩放变量的所述值包括除非所导出的反转角度大于对应于变换块尺寸的阈值,否则将所述缩放变量的所述值设置为2。
5.根据权利要求4所述的方法,其中确定所导出的反转角度是否大于阈值包括执行以下计算:Floor(Log2(3*invAngle-2)),其中invAngle是所导出的反转角度。
6.根据权利要求1所述的方法,还包括对于未包括在所述限定的一组预测模式中的预测模式,基于变换块高度尺寸和宽度尺寸来设置所述缩放变量的所述值。
7.一种包括一个或多个处理器的设备,所述一个或多个处理器被配置为:
导出帧内预测角度参数;
基于所述帧内预测角度参数来导出反转角度参数;
对于限定的一组预测模式,基于所导出的反转角度来设置缩放变量的值;以及
使用所述缩放变量的值来执行位置相关的帧内预测样本滤波过程。
8.根据权利要求7所述的设备,其中所述限定的一组预测模式包括2至17范围内的预测模式和51至80范围内的预测模式。
9.根据权利要求7所述的设备,其中基于帧内预测角度参数来导出反转角度参数包括将16,384除以所述帧内预测角度参数。
10.根据权利要求7所述的设备,其中基于所导出的反转角度来设置所述缩放变量的所述值包括除非所导出的反转角度大于对应于变换块尺寸的阈值,否则将所述缩放变量的所述值设置为2。
11.根据权利要求10所述的设备,其中确定所导出的反转角度是否大于阈值包括执行以下计算:Floor(Log2(3*invAngle-2)),其中invAngle是所导出的反转角度。
12.根据权利要求7所述的设备,还包括对于未包括在所述限定的一组预测模式中的预测模式,基于变换块高度尺寸和宽度尺寸来设置所述缩放变量的所述值。
13.根据权利要求7所述的设备,其中所述设备是视频解码器。
CN202080045133.4A 2019-06-24 2020-06-24 在视频编码中用于执行帧内预测编码的系统和方法 Pending CN113994681A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962865661P 2019-06-24 2019-06-24
US62/865,661 2019-06-24
US201962868276P 2019-06-28 2019-06-28
US62/868,276 2019-06-28
PCT/JP2020/024852 WO2020262470A1 (en) 2019-06-24 2020-06-24 Systems and methods for performing intra prediction coding in video coding

Publications (1)

Publication Number Publication Date
CN113994681A true CN113994681A (zh) 2022-01-28

Family

ID=74061281

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080045133.4A Pending CN113994681A (zh) 2019-06-24 2020-06-24 在视频编码中用于执行帧内预测编码的系统和方法

Country Status (4)

Country Link
US (1) US12010301B2 (zh)
EP (1) EP3987800A4 (zh)
CN (1) CN113994681A (zh)
WO (1) WO2020262470A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7318110B2 (ja) * 2019-08-22 2023-07-31 エルジー エレクトロニクス インコーポレイティド クロマ量子化パラメータを使用する画像デコード方法及びその装置
WO2021045655A2 (en) * 2019-12-31 2021-03-11 Huawei Technologies Co., Ltd. Method and apparatus for intra prediction

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2013202653A1 (en) * 2013-04-05 2014-10-23 Canon Kabushiki Kaisha Method, apparatus and system for generating intra-predicted samples
US10805641B2 (en) * 2017-06-15 2020-10-13 Qualcomm Incorporated Intra filtering applied together with transform processing in video coding
EP3644612A1 (en) * 2018-10-23 2020-04-29 InterDigital VC Holdings, Inc. Method and device for picture encoding and decoding
WO2020111982A1 (en) * 2018-11-26 2020-06-04 Huawei Technologies Co., Ltd. Method of intra predicting a block of a picture

Also Published As

Publication number Publication date
EP3987800A1 (en) 2022-04-27
WO2020262470A1 (en) 2020-12-30
US12010301B2 (en) 2024-06-11
EP3987800A4 (en) 2023-03-29
US20220360774A1 (en) 2022-11-10

Similar Documents

Publication Publication Date Title
CN110999291B (zh) 用于划分视频数据的帧间预测片段中的视频块的系统和方法
CN110313179B (zh) 用于按比例缩放变换系数水平值的系统和方法
CN112204967A (zh) 用于划分视频数据的帧间预测片段中的视频块的系统和方法
CN111919446B (zh) 解码视频图片中的当前视频块的方法
CN114009018A (zh) 用于基于交叉分量相关性来减小视频编码中的重构误差的系统和方法
US20220167009A1 (en) Systems and methods for performing intra prediction coding in video coding
WO2020054713A1 (en) Systems and methods for coding transform coefficient level values
CN114391255A (zh) 用于基于交叉分量相关性来减小视频编码中的重构误差的系统和方法
CN111819851A (zh) 用于使用预测运动向量起点对视频编码执行运动向量预测的系统和方法
US20230179771A1 (en) Systems and methods for reference offset signaling in video coding
CN113170188A (zh) 在视频编码中用于执行帧间预测的系统和方法
CN117692656A (zh) 用于在视频编码中导出运动矢量预测的系统和方法
US12010301B2 (en) Systems and methods for performing intra prediction coding in video coding
US20220303561A1 (en) Systems and methods for performing inter prediction coding in video coding
US11979566B2 (en) Systems and methods for reducing a reconstruction error in video coding based on a cross-component correlation
WO2019216324A1 (en) Systems and methods for performing binary arithmetic coding in video coding
US20220377338A1 (en) Systems and methods for deriving quantization parameters for video blocks in video coding
CN110583021A (zh) 用于执行平面帧内预测视频编码的系统和方法
CN113366840A (zh) 用于在视频编码中导出视频块的量化参数的系统和方法
WO2020166556A1 (en) Systems and methods for performing inter prediction in video coding
WO2020095984A1 (en) Systems and methods for performing binary arithmetic coding in video coding

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