CN117651133A - 基于邻块的帧内预测模式推导 - Google Patents
基于邻块的帧内预测模式推导 Download PDFInfo
- Publication number
- CN117651133A CN117651133A CN202311323080.XA CN202311323080A CN117651133A CN 117651133 A CN117651133 A CN 117651133A CN 202311323080 A CN202311323080 A CN 202311323080A CN 117651133 A CN117651133 A CN 117651133A
- Authority
- CN
- China
- Prior art keywords
- mode
- block
- intra
- prediction mode
- mpm
- 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
Links
- 238000009795 derivation Methods 0.000 title description 9
- 238000000034 method Methods 0.000 claims abstract description 258
- 238000012545 processing Methods 0.000 claims description 73
- 230000008569 process Effects 0.000 description 31
- 238000004891 communication Methods 0.000 description 23
- 238000005192 partition Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 13
- 238000010276 construction Methods 0.000 description 12
- 238000013139 quantization Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 9
- 238000007781 pre-processing Methods 0.000 description 9
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 8
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 241000023320 Luma <angiosperm> Species 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 101100102504 Caenorhabditis elegans ver-4 gene Proteins 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- FZEIVUHEODGHML-UHFFFAOYSA-N 2-phenyl-3,6-dimethylmorpholine Chemical compound O1C(C)CNC(C)C1C1=CC=CC=C1 FZEIVUHEODGHML-UHFFFAOYSA-N 0.000 description 2
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- IESVDEZGAHUQJU-ZLBXKVHBSA-N 1-hexadecanoyl-2-(4Z,7Z,10Z,13Z,16Z,19Z-docosahexaenoyl)-sn-glycero-3-phosphocholine Chemical compound CCCCCCCCCCCCCCCC(=O)OC[C@H](COP([O-])(=O)OCC[N+](C)(C)C)OC(=O)CC\C=C/C\C=C/C\C=C/C\C=C/C\C=C/C\C=C/CC IESVDEZGAHUQJU-ZLBXKVHBSA-N 0.000 description 1
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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 colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种用于构建帧内预测的最可能模式(Most Probable Mode,MPM)列表的方法,所述方法包括:确定当前译码块的左块是否可用;确定所述当前译码块的上块是否可用;当满足条件之一时,使用平面模式、DC模式、垂直模式(VER_IDX)、水平模式(HOR_IDX)、与所述垂直模式加偏移量–4对应的帧内预测模式、与所述垂直模式加偏移量4对应的帧内预测模式,以获得所述当前译码块的帧内预测模式的值。所述MPM列表用于获得与图像块的预测模式对应的索引值,以提高译码效率。
Description
本申请是分案申请,原申请的申请号是201980047356.1,原申请日是2019年09月21日,原申请的全部内容通过引用结合在本申请中。
技术领域
本发明涉及图像和/或视频编解码技术领域,尤其涉及帧内预测方法和装置。
背景技术
自从DVD光盘兴起,数字视频得到广泛使用。在传输之前对视频进行编码,然后通过传输介质进行传输。观看者接收视频,并使用观看设备解码和显示视频。多年来,由于分辨率、色彩深度和帧率等的提高,视频质量得到了改善。这导致了数据流更大,目前这些数据流通常通过互联网和移动通信网络传输。
然而,由于高分辨率视频包含的信息更多,通常需要更多带宽。为了降低带宽要求,引入了涉及视频压缩的视频译码标准。当对视频进行编码时,带宽要求(或存储时对应的内存要求)会降低。降低带宽要求通常也降低了视频质量。因此,视频译码标准试图在带宽要求和质量之间寻求平衡。
高效视频译码(High Efficiency Video Coding,HEVC)是本领域技术人员所熟知的视频译码标准示例。在HEVC中,译码单元(coding unit,CU)被划分为预测单元(prediction unit,PU)或变换单元(transform unit,TU)。通用视频译码(VersatileVideo Coding,VVC)下一代标准是ITU-T视频译码专家组(Video Coding Experts Group,VCEG)和ISO/IEC运动图像专家组(Moving Picture Experts Group,MPEG)最近的联合视频项目,这两个标准化组织共同合作,其伙伴关系被称为联合视频探索小组(Joint VideoExploration Team,JVET)。VVC也称为ITU-T H.266/下一代视频译码(Next GenerationVideo Coding,NGVC)标准。VVC中去掉了多种分割类型的概念,即不区分CU、PU和TU概念(除非CU的大小大于最大变换长度),并支持更灵活的CU分割形状。
这些译码单元(coding unit,CU)(也称为块)的处理取决于其大小、空间位置和编码器指定的译码模式。根据预测类型,译码模式可以分为两类:帧内预测模式和帧间预测模式。帧内预测模式使用同一图像(也称为帧或图像)的像素点来生成参考像素点,计算重建块的像素点的预测值。帧内预测也称为空间预测。帧间预测模式设计用于时间预测,并使用先前或后续图像的参考像素点来预测当前图像的块的像素点。
ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)正在研究未来视频译码技术标准化的潜在需求,其中,未来视频译码技术的压缩能力将大大超过当前HEVC标准的压缩能力(包括针对屏幕内容译码和高动态范围译码的当前扩展和近期扩展)。这些小组正与联合视频探索小组(Joint Video Exploration Team,JVET)共同努力开展这项探索活动,以评估其领域专家提出的压缩技术设计。
通用测试模型(Versatile Test Model,VTM)标准使用35种帧内模式,而基准集(Benchmark Set,BMS)使用67种帧内模式。
当前在BMS中描述的帧内模式译码方案被认为是复杂的,且非选择模式集的缺点在于索引列表总是恒定的,不能根据当前块属性(例如,对于其邻块帧内模式)进行调整。
发明内容
本发明公开了帧内预测装置和方法。所述装置和方法使用映射过程简化帧内预测的计算过程,从而提高译码效率。保护范围由权利要求书界定。
附图说明
结合附图对以下实施例进行详细描述,其中:
图1为用于实现本发明实施例的视频译码***示例的框图;
图2为用于实现本发明实施例的视频编码器示例的框图;
图3为用于实现本发明实施例的视频解码器示例的框图;
图4示出了所提出的67种帧内预测模式的示意图;
图5示出了用于MPM推导的邻块的示意图;
图6示出了用于推导其余模式列表中的前三种模式的第二层邻块帧内模式的示意图;
图7示出了在其余模式列表生成过程中前三种模式的示例的示意图;
图8示出了视频解码方法示例的示意图;
图9示出了视频解码方法示例的另一示意图;
图10示出了一种装置的框图。
具体实施方式
以下结合附图进行描述,所述附图形成本发明的一部分,并以说明的方式示出可以实施本发明的具体方面。
例如,应理解,结合所描述方法的公开内容对用于执行所述方法的对应设备或***也可以同样适用,反之亦然。例如,当描述了一个具体的方法步骤时,对应的设备可以包括用于执行所描述的方法步骤的单元,即使此类单元未在图中详细阐述或说明。此外,应理解,除非另有具体说明,否则本文中描述的各种示例性方面的特征可相互组合。
视频译码通常指对构成视频或视频序列的图像序列进行处理。术语“图像(picture/image)”或“帧(frame)”可在视频译码领域以及在本申请中作为同义词使用。每个图像通常被分割成一组不重叠的块。图像的编码/解码通常在块级执行,例如,在块级,使用帧间预测或帧内预测生成预测块,以从当前块(当前处理的块/待处理的块)中减去预测块,获得残差块,进一步对所述残差块进行变换和量化以减少待传输(压缩)的数据量,而在解码端,对编码后/压缩后的块进行逆处理以重建块用于表示。
图1为概念性或示意性框图,示出了可利用本申请(本发明)技术的示例性译码***10,例如视频译码***10。视频译码***10的编码器20(例如,视频编码器20)和解码器30(例如,视频解码器30)代表可以用于根据本申请中描述的各种示例执行各技术的设备示例。如图1所示,译码***10包括源设备12,所述源设备12用于将编码数据13(例如编码图像13)提供到例如目的设备14以对编码数据13进行解码。
源设备12包括编码器20,并且可以另外(即可选地)包括图像源16、预处理单元18(例如,图像预处理单元18)和通信接口或通信单元22。
图像源16可以包括或可以是任何类型的图像捕获设备,例如用于捕获真实世界图像的设备,和/或任何类型的图像或评论(对于屏幕内容译码,屏幕上的一些文本也被认为是待编码的图像(picture/image)的一部分)生成设备,例如用于生成计算机动画图像的计算机图形处理器,或用于获取和/或提供真实世界图像、计算机动画图像(例如,屏幕内容、虚拟现实(virtual reality,VR)图像)和/或其任何组合(例如,增强现实(augmentedreality,AR)图像)的任何类型的设备。
(数字)图像为或可以看作具有强度值的像素点的二维阵列或矩阵。阵列中的像素点也可以称为像素(pixel或pel)(图像元素的简称)。图像的大小和/或分辨率由阵列或图像在水平和垂直方向(或轴)上的像素点数量定义。通常采用三种颜色分量来表示颜色,即该图像可表示为三个像素点阵列或包括三个像素点阵列。在RGB格式或颜色空间中,图像包括对应的红色、绿色和蓝色像素点阵列。然而,在视频译码中,每个像素通常由亮度/色度格式或在颜色空间中表示,例如,YCbCr,包括Y表示的亮度分量(有时也用L指示)和Cb和Cr表示的两个色度分量。亮度(或简称luma)分量Y表示亮度或灰度级强度(例如,在灰度图像中),而两个色度(或简称chroma)分量Cb和Cr表示色度或颜色信息分量。因此,YCbCr格式的图像包括亮度像素点值(Y)的亮度像素点阵列和色度值(Cb和Cr)的两个色度像素点阵列。RGB格式的图像可以转换或变换为YCbCr格式,反之亦然,该过程也称为颜色变换或转换。当图像是单色的时,该图像可以仅包括亮度像素点阵列。
图像源16(例如,视频源16)可以是用于捕获图像的摄像机、包括或存储先前捕获或生成的图像的存储器(例如,图像存储器),和/或用于获取或接收图像的任何类型的(内部或外部)接口等。例如,所述摄像机可以是集成在源设备中的本地或集成摄像机,所述存储器可以是(例如,集成在源设备中的)本地或集成存储器。例如,所述接口可以是从外部视频源接收图像的外部接口,其中,所述外部视频源如摄像机等外部图像捕获设备、外部存储器,或外部计算机图形处理器、计算机或服务器等外部图像生成设备。所述接口可以是根据任何专有或标准化接口协议的任何类型的接口,例如有线或无线接口、光接口。用于获取图像数据17的接口可以是与通信接口22相同的接口,或作为通信接口22的一部分。
区别于预处理单元18和预处理单元18执行的处理,图像或图像数据17(例如,视频数据16)也可以称为原始图像或原始图像数据17。
预处理单元18用于接收(原始)图像数据17,对图像数据17进行预处理,以获得经预处理的图像19或经预处理的图像数据19。预处理单元18执行的预处理可以包括修剪、颜色格式转换(例如,从RGB转换为YCbCr)、颜色校正或去噪等。可以理解的是,预处理单元18可以是可选组件。
编码器20(例如,视频编码器20)用于接收经预处理的图像数据19并提供经编码的图像数据21(下文将根据图2等进一步详细描述)。
源设备12的通信接口22可以用于接收经编码的图像数据21,并将其发送到其它设备(例如,目的设备14或用于存储或直接重建的任何其它设备);或分别在存储编码数据13和/或将编码数据13发送到其它设备(例如目的设备14,或用于解码或存储的任何其它设备)之前处理经编码的图像数据21。
目的设备14包括解码器30(例如,视频解码器30),并且可以另外(即,可选地)包括通信接口或通信单元28、后处理单元32和显示设备34。
目的设备14的通信接口28用于接收经编码的图像数据21或编码数据13,例如,直接从源设备12或任何其它源(例如,编码图像数据存储设备等存储设备)接收。
通信接口22和通信接口28可以用于经由源设备12与目的设备14之间的直接通信链路(例如,直接有线或无线连接),或经由任何类型的网络(例如,有线或无线网络或其任意组合,或任何类型的专用和公共网络),或其任意组合发送或接收经编码的图像数据21或编码数据13。
例如,通信接口22可以用于将经编码的图像数据21封装为合适的格式(例如,数据包),用于通过通信链路或通信网络传输。
例如,与通信接口22对应的通信接口28可以用于解封装编码数据13以获得经编码的图像数据21。
通信接口22和通信接口28均可配置为单向通信接口(如图1中从源设备12指向目的设备14的经编码的图像数据13的箭头所表示),或双向通信接口,并可用于发送和接收消息等,例如,建立连接,确认和交互与通信链路和/或数据传输(例如,经编码的图像数据传输)相关的任何其它信息。
解码器30用于接收经编码的图像数据21并提供经解码的图像数据31或解码图像31(下文将根据图3等进一步详细描述)。
目的设备14的后处理器32用于对经解码的图像数据31(也称为重建图像数据)(例如,解码图像31)进行后处理,以获得经后处理的图像数据33(例如,后处理图像33)。例如,由后处理单元32执行的后处理可以包括颜色格式转换(例如从YCbCr转换为RGB)、颜色校正、修剪或重采样,或任何其它处理,例如,用于准备经解码的图像数据31以供显示设备34等显示。
目的设备14的显示设备34用于接收经后处理的图像数据33,以向用户或观看者等显示图像。显示设备34可以是或包括用于显示重建图像的任何类型的显示器,例如,集成或外部的显示器或监视器。例如,显示器可以包括液晶显示器(liquid crystal display,LCD)、有机发光二极管(organic light emitting diode,OLED)显示器、等离子显示器、投影仪、微型LED显示器、硅基液晶显示器(liquid crystal on silicon,LCoS)、数字光处理器(digital light processor,DLP)或任意类型的其它显示器。
尽管图1将源设备12和目的设备14作为单独的设备进行描述,但是设备实施例还可以包括两种设备或两种功能,即源设备12或对应功能以及目的设备14或对应功能。在这类实施例中,源设备12或对应功能以及目的设备14或对应功能可以使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
根据描述,技术人员显而易见的是,图1所示的源设备12和/或目的设备14中的不同单元或功能的存在和(精确)划分可以根据实际设备和应用而不同。
编码器20(例如,视频编码器20)和解码器30(例如,视频解码器30)可以各自实现为各种合适电路中的任一种,如一个或多个微处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件或其任何组合。当所述技术部分地以软件形式实现时,设备可以将软件的指令存储在合适的非瞬时性计算机可读介质中,并且可以使用一个或多个处理器执行硬件中的指令,以执行本发明的技术。上述任一种(包括硬件、软件、硬件和软件的组合等)可以被认为是一个或多个处理器。视频编码器20和视频解码器30可以分别包括在一个或多个编码器或解码器中,其中任一者可以作为组合式编码器/解码器(编解码器)的一部分集成在对应设备中。
图2示出了用于实现本申请技术的示例性视频编码器20的示意性/概念性框图。在图2的示例中,视频编码器20包括残差计算单元204、变换处理单元206、量化单元208、反量化单元210和逆变换处理单元212、重建单元214、缓冲器216、环路滤波单元220、解码图像缓冲器(decoded picture buffer,DPB)230、预测处理单元260和熵编码单元270。预测处理单元260可以包括帧间预测单元244、帧内预测单元254和模式选择单元262。帧间预测单元244可以包括运动估计单元和运动补偿单元(未示出)。图2所示的视频编码器20也可以称为混合视频编码器或基于混合视频编解码器的视频编码器。
例如,残差计算单元204、变换处理单元206、量化单元208、预测处理单元260和熵编码单元270形成编码器20的正向信号路径,而反量化单元210、逆变换处理单元212、重建单元214、缓冲器216、环路滤波器220、解码图像缓冲器(decoded picture buffer,DPB)230、预测处理单元260形成编码器的反向信号路径。编码器的反向信号路径与解码器(参见图3中的解码器30)的信号路径对应。
编码器20用于通过输入端202等接收图像201或图像201(例如,形成视频或视频序列的图像序列的图像)的块203。图像块203也可以称为当前图像块或待译码图像块,图像201也可以称为当前图像或待译码图像(特别是在视频译码中,以便将当前图像与其它图像(例如,同一视频序列(即,也包括当前图像的视频序列)的先前编码和/或解码的图像))区分开。
预测处理单元260(也称为块预测处理单元260)用于:接收或获取块203(当前图像201的当前块203)和重建图像数据,例如,来自缓冲器216的相同(当前)图像的参考像素点和/或来自解码图像缓冲器230的一个或多个先前解码图像的参考图像数据231,并处理此类数据以进行预测,即提供预测块265,其中,所述预测块265可以是帧间预测块245或帧内预测块255。
模式选择单元262可用于选择预测模式(例如,帧内预测或帧间预测模式)和/或对应的预测块245或255,用作预测块265以用于计算残差块205和重建重建块215。
模式选择单元262的实施例可用于选择预测模式(例如,从预测处理单元260支持的预测模式中选择),所述预测模式提供最佳匹配或者说最小残差(最小残差意味着传输或存储中更好的压缩),或提供最小指示(signaling)开销(最小指示开销意味着传输或存储中更好的压缩),或者同时考虑或平衡以上两者。模式选择单元262可用于根据率失真优化(rate distortion optimization,RDO)确定预测模式,即选择提供最小率失真优化的预测模式,或者选择至少满足预测模式选择标准的相关率失真的预测模式。
帧内预测单元254还用于根据帧内预测参数(例如,所选帧内预测模式)确定帧内预测块255。在任何情况下,在对块选择帧内预测模式之后,帧内预测单元254还用于向熵编码单元270提供帧内预测参数,即指示块的所选帧内预测模式的信息。在一个示例中,帧内预测单元254可用于执行下文描述的帧内预测技术的任何组合。
图3为用于实现本申请技术的示例性视频解码器30。视频解码器30用于接收例如由编码器100编码的经编码的图像数据(例如,经编码码流)21以获得解码图像131。在解码过程中,视频解码器30从视频编码器100接收视频数据,例如表示编码视频条带(slice)的图像块的经编码的视频码流以及相关联的语法元素。
在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如,求和器314)、缓冲器316、环路滤波器320、解码图像缓冲器330和预测处理单元360。预测处理单元360可以包括帧间预测单元344、帧内预测单元354和模式选择单元362。在一些示例中,视频解码器30可执行通常与针对图2的视频编码器100描述的编码过程相反的解码过程。
熵解码单元304用于对经编码的图像数据21进行熵解码以获得量化系数309和/或经解码的译码参数(图3中未示出)等,例如帧间预测参数、帧内预测参数、环路滤波器参数和/或其它语法元素中的(解码的)任一者或全部。熵解码单元304还用于将帧间预测参数、帧内预测参数和/或其它语法元素转发给预测处理单元360。视频解码器30可以接收视频条带级和/或视频块级的语法元素。
反量化单元310的功能可以与反量化单元210相同;逆变换处理单元312的功能可以与逆变换处理单元212相同;重建单元314的功能可以与重建单元214相同;缓冲器316的功能可以与缓冲器216相同;环路滤波器320的功能可以与环路滤波器220相同;解码图像缓冲器330的功能可以与解码图像缓冲器230相同。
预测处理单元360可以包括帧间预测单元344和帧内预测单元354,其中,帧间预测单元344的功能可以与帧间预测单元244类似,帧内预测单元354的功能可以与帧内预测单元254类似。预测处理单元360通常用于根据编码数据21进行块预测和/或获得预测块365,并用于从熵解码单元304等接收或获得(显式或隐式地)预测相关参数和/或关于所选预测模式的信息。
当将视频条带译码为帧内译码(I)条带时,预测处理单元360的帧内预测单元354用于根据指示的帧内预测模式和来自当前帧或图像的先前解码块的数据生成当前视频条带的图像块的预测块365。当将视频帧译码为帧间译码(即,B或P)条带时,预测处理单元360的帧间预测单元344(例如,运动补偿单元)用于根据运动矢量和从熵解码单元304接收的其它语法元素产生当前视频条带的视频块的预测块365。对于帧间预测,可从其中一个参考图像列表中的其中一个参考图像产生这些预测块。视频解码器30可以根据存储在DPB 330中的参考图像,使用默认构建技术来构建参考帧列表:列表0和列表1。
预测处理单元360用于通过解析运动矢量和其它语法元素来确定当前视频条带的视频块的预测信息,并使用所述预测信息针对所解码的当前视频块生成预测块。例如,预测处理单元360使用接收到的一些语法元素确定用于对视频条带的视频块进行译码的预测模式(例如,帧内预测或帧间预测)、帧间预测条带类型(例如B条带、P条带或GPB条带)、条带的一个或多个参考图像列表的构建信息、条带的每个帧间编码视频块的运动矢量、条带的每个帧间译码视频块的帧间预测状态、以及其它信息,以对当前视频条带内的视频块进行解码。
反量化单元310用于对码流中提供并由熵解码单元304解码的量化变换系数进行反量化,即解量化。反量化过程可以包括使用视频编码器100对视频条带中的每个视频块计算的量化参数来确定量化程度,同样确定需要应用的反量化的程度。
逆变换处理单元312用于对变换系数应用逆变换,例如逆DCT、逆整数变换或概念上类似的逆变换过程,以在像素域中产生残差块。
重建单元314(例如,求和器314)用于通过例如将重建残差块313的像素点值和预测块365的像素点值相加,将逆变换块313(即重建残差块313)添加到预测块365,以在像素点域中获得重建块315。
环路滤波单元320(在译码环路中或译码环路之后)用于对重建块315进行滤波,以获得滤波块321,以平滑像素转变或提高视频质量等。在一个示例中,环路滤波器单元320可用于执行下文描述的滤波技术的任何组合。环路滤波单元320用于表示一个或多个环路滤波器,如去块效应滤波器、像素点自适应偏移(sample-adaptive offset,SAO)滤波器或其它滤波器,例如双边滤波器或自适应环路滤波器(adaptive loop filter,ALF)或锐化或平滑滤波器或协作滤波器。虽然环路滤波器单元320在图3中示为环内滤波器,但是在其它配置中,环路滤波器单元320可以实现为后环路滤波器。
然后,将给定帧或图像中的解码视频块321存储在解码图像缓冲器330中,所述解码图像缓冲器330存储用于后续运动补偿的参考图像。
解码器30用于通过输出端332等输出解码图像331,向用户呈现或供用户观看。
可以使用视频解码器30的其它变体对压缩码流进行解码。例如,解码器30可以在没有环路滤波单元320的情况下产生输出视频流。例如,基于非变换的解码器30可以在某些块或帧没有逆变换处理单元312的情况下直接反量化残差信号。在另一种实现方式中,视频解码器30中,反量化单元310和逆变换处理单元312可以组合成一个单元。
根据HEVC/H.265标准,有35种可用的帧内预测模式。如图4所示,该集合包含以下模式:平面模式(帧内预测模式索引为0)、DC模式(帧内预测模式索引为1),以及覆盖180°范围且帧内预测模式索引值范围为2至34(如图4中的黑色箭头所示)的方向(角度)模式。为了捕获自然视频中存在的任意边缘方向,HEVC中使用的方向帧内模式的数量从33个扩展到65个。附加的方向模式在图4中被描述为虚线箭头,平面模式和DC模式保持不变。值得注意的是,帧内预测模式覆盖的范围可以大于180°。具体而言,索引值为3至64的62种方向模式覆盖了约230°的范围,即,若干对模式具有相反的方向性。如图4所示,在HEVC参考模型(HEVCReference Model,HM)和JEM平台的情况下,只有一对角度模式(即,模式2和66)具有相反的方向性。在构建预测器时,传统的角度模式通过获取参考像素点并(如果需要)对它们进行滤波来获得像素点预测器。构建预测器所需的参考像素点数量取决于用于插值的滤波器的长度(例如,双线性滤波器和立方滤波器的长度分别为2和4)。
图7示出了如针对VVC提出的67种帧内预测模式的示例,67种帧内预测模式的多种帧内预测模式包括:平面模式(索引为0)、dc模式(索引为1),以及角度模式(索引为2到66),其中,图7中的左下角度模式是指索引2,并且索引的编号递增,直到索引66是图7的最右上角度模式为止。
图10为本发明实施例提供的网络设备1300的示意图。网络设备1300适用于实现本文描述的公开实施例。网络设备1300包括:入端口1310和接收单元(Rx)1320,用于接收数据;处理器、逻辑单元或中央处理单元(central processing unit,CPU)1330,用于处理数据;发送单元(Tx)1340和出端口1350,用于发送数据;存储器1360,用于存储数据。网络设备1300还可以包括与入端口1310、接收单元1320、发送单元1340和出端口1350耦合的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用作光信号或电信号的出口或入口。
处理器1330通过硬件和软件实现。处理器1330可以实现为一个或多个CPU芯片、核(例如,多核处理器)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)和数字信号处理器(digitalsignal processor,DSP)。处理器1330与入端口1310、接收单元1320、发送单元1340、出端口1350和存储器1360通信。处理器1330包括译码模块1370。译码模块1370用于实施上述公开的实施例。例如,译码模块1370实现、处理、准备或提供各种联网功能。因此,包括译码模块1370显著改进了网络设备1300的功能,实现了网络设备1300不同状态的转换。或者,以存储在存储器1360中并由处理器1330执行的指令来实现译码模块1370。
存储器1360包括一个或多个磁盘、磁带机和固态硬盘,可用作溢出数据存储设备,以在选择执行程序时存储这类程序,并存储在程序执行期间读取的指令和数据。存储器1360可以是易失性和/或非易失性的,并且可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(static random-access memory,SRAM)。
图10为可用于实现各种实施例的装置1100的框图。装置1100可以是图1所示的源设备102、或图2所示的视频编码器200、或图1所示的目的设备104、或图3所示的视频解码器300。此外,装置1100可包括一个或多个所描述的元件。在一些实施例中,装置1100配备有一个或多个输入/输出设备,如扬声器、麦克风、鼠标、触摸屏、小键盘、键盘、打印机、显示器等。装置1100可包括连接到总线的一个或多个中央处理单元(central processing unit,CPU)1510、存储器1520、大容量存储器1530、视频适配器1540和I/O接口1560。所述总线是任何类型的若干总线架构中的一种或多种,包括内存总线或内存控制器、***总线、视频总线等。
CPU 1510可具有任何类型的电子数据处理器。存储器1520可具有或者可以是任何类型的***存储器,如静态随机存取存储器(static random access memory,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(read-only memory,ROM)、其组合等。在一个实施例中,存储器1520可以包括在开机时使用的ROM以及在执行程序时使用的存储程序和数据的DRAM。在实施例中,存储器1520为非瞬时性存储器。大容量存储器1530包括存储数据、程序和其它信息并使数据、程序和其它信息能够通过总线访问的任何类型的存储设备。例如,大容量存储器1530包括固态硬盘、硬盘驱动器、磁盘驱动器、光盘驱动器等中的一种或多种。
视频适配器1540和I/O接口1560提供接口以使外部输入和输出设备与装置1100耦合。例如,装置1100可向客户端提供SQL命令接口。如图所示,输入和输出设备的示例包括与视频适配器1540耦合的显示器1590和与I/O接口1560耦合的鼠标/键盘/打印机1570的任何组合。其它设备可与装置1100耦合,并且可使用额外的或更少的接口卡。例如,串行接口卡(未图示)可以用于为打印机提供串行接口。
装置1100还包括一个或多个网络接口1550,或一个或多个网络1580,其中,网络接口1550包括以太网线等有线链路,和/或用于接入节点的无线链路。网络接口1550允许装置1100通过网络1580与远程单元通信。例如,网络接口1550可提供与数据库的通信。在一个实施例中,装置1100与局域网或广域网耦合,以进行数据处理并与如其它处理单元、互联网、远程存储设施等远程设备进行通信。
缩略语和术语定义
CTU/CTB – 译码树单元/译码树块
CU/CB – 译码单元/译码块
PU/PB – 预测单元/预测块
TU/TB – 变换单元/变换块
HEVC – 高效视频译码
H.264/AVC和HEVC等视频译码方案是按照基于块的混合视频译码的成功原理而设计的。使用该原理,首先将图像分割成块,然后通过帧内或帧间预测来预测每个块。
自H.261以来的几个视频译码标准属于“有损混合视频编解码器”组(即,将像素点域中的空间预测和时间预测与变换域中用于应用量化的2D变换译码结合)。视频序列中的每个图像通常分割成不重叠的块集合,通常基于块级进行译码。换句话说,编码器通常在块(视频块)级处对视频进行处理,即编码,例如,通过空间(帧内)预测和时间(帧间)预测来生成预测块;从当前块(当前处理/待处理的块)中减去预测块,获得残差块;在变换域中变换残差块并量化残差块,以减少待发送(压缩)的数据量,而解码器将相对于编码器的逆处理部分应用于经编码或压缩的块,以重建用于表示的当前块。此外,编码器重复解码器的处理步骤,使得编码器和解码器生成相同的预测(例如,帧内预测和帧间预测)和/或重建,用于对后续块进行处理(即译码)。
本文所使用的术语“块”可以是图像或帧的一部分。为便于描述,本文参考由ITU-T视频译码专家组(Video Coding Experts Group,VCEG)和ISO/IEC运动图像专家组(MotionPicture Experts Group,MPEG)的视频译码联合工作组(Joint Collaboration Team onVideo Coding,JCT-VC)开发的高效视频译码(High-Efficiency Video Coding,HEVC)或通用视频译码(Versatile Video Coding,VVC)参考软件描述本发明实施例。本领域普通技术人员应理解本发明实施例不限于HEVC或VVC。它可以指CU、PU和TU。在HEVC中,通过表示为译码树的四叉树结构将CTU划分成CU。在CU级决定是使用帧间(时间)预测还是帧内(空间)预测对图像区域进行译码。可以根据PU划分类型将每个CU进一步划分为一个、两个或四个PU。一个PU内应用相同的预测过程,并以PU为单位向解码器发送相关信息。在根据PU划分类型应用预测过程获得残差块之后,可以根据与用于CU的译码树类似的另一种四叉树结构将CU分割为变换单元(transform unit,TU)。在视频压缩技术的最新进展中,使用四叉树和二叉树(qual-tree and binary tree,QTBT)分割来分割译码块。在QTBT块结构中,CU可以为正方形或矩形。例如,首先通过四叉树结构分割译码树单元(coding tree unit,CTU)。通过二叉树结构进一步分割四叉树叶节点。二叉树叶节点称为译码单元(coding unit,CU),该分割用于预测和变换处理,而不进行任何进一步分割。这意味着在QTBT译码块结构中,CU、PU和TU的块大小相同。同时,还提出将三叉树分割等多重分割与QTBT块结构结合使用。
ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)正在研究未来视频译码技术标准化的潜在需求,其中,未来视频译码技术的压缩能力将大大超过当前HEVC标准的压缩能力(包括针对屏幕内容译码和高动态范围译码的当前扩展和近期扩展)。这些小组正与联合视频探索小组(Joint Video Exploration Team,JVET)共同努力开展这项探索活动,以评估其领域专家提出的压缩技术设计。
通用测试模型(Versatile Test Model,VTM)使用35种帧内模式,而基准集(Benchmark Set,BMS)使用67种帧内模式。为了对67种帧内模式进行译码,BMS中的当前帧内模式译码方案使用以下方法。
为了适应BMS中越来越多的方向帧内模式,使用了具有6种最可能模式(MostProbable Mode,MPM)的帧内模式译码方法。涉及以下两个主要技术方面:
(1)6种MPM的推导;
(2)6种MPM和非MPM模式的熵译码。
在BMS中,包括在MPM列表中的模式分为三类:相邻帧内模式、推导帧内模式和默认帧内模式。
使用5种相邻帧内预测模式来形成MPM列表。如图5所示,5个邻块的位置与融合模式中使用的位置相同,即,左(L)、上(A)、左下(BL)、右上(AR)和左上(AL)。初始MPM列表是通过将5种相邻帧内模式、平面模式和DC模式***到MPM列表中形成的。修剪(pruning)过程用于删除重复模式,使得只有唯一的模式包括在MPM列表中。包括初始模式的顺序为左、上、平面、DC、左下、右上和左上。
如果MPM列表未满(即,列表中的候选MPM少于6个),则添加推导模式,通过将–1或+1添加到已包括在MPM列表中的角度模式来获得这些帧内模式。推导不适用于非角度模式,即DC或平面模式。
最后,当MPM列表仍然不完整时,按以下顺序添加默认模式:垂直、水平、帧内模式2和对角模式。通过该过程生成了6种MPM模式的唯一列表。
为了对6种MPM进行熵译码,对MPM进行截断一元二值化(truncated unarybinarization)。前三个位元使用上下文进行译码,所述上下文取决于与当前所指示的位元相关的MPM模式。MPM模式分为以下三类:该模式是属于(a)水平(MPM模式小于或等于对角线方向)类别;还是(b)垂直(MPM模式大于对角线方向)类别;还是(c)非角度(DC和平面)类别。相应地,使用三个上下文来指示MPM索引。
按如下方式对其余61种非MPM进行译码。首先将61种非MPM分为两个集合:所选模式集合和非所选模式集合。所选模式集合包含16种模式,其余(45种模式)分配给非所选模式集合。当前模式所属的模式集合在码流中用标志来指示。然后,使用4位定长码指示来自所选集合的模式,使用截断二进制码对来自非所选集合的模式进行译码。所选模式集合是通过对总共61种非MPM进行子采样而生成,其索引如下:
所选模式集合={0,4,8,12,16,20…60}
非所选模式集合={1,2,3,5,6,7,9,10…59}
不同帧内模式指示机制的概述如表1所示。
表1:BMS中当前LUMA帧内模式指示
在另一示例中,使用具有3种最可能模式(Most Probable Mode,MPM)的帧内模式译码方法。在一个示例中,语法元素intra_luma_mpm_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时,从相邻帧内预测的预测单元推断帧内预测模式。
通过以下顺序步骤推导当前块的帧内预测(IntraPredModeY[xPb][yPb]):
相邻位置(xNbA,yNbA)和(xNbB,yNbB)分别设置为(xPb–1,yPb)和(xPb,yPb–1)。
由于将X替换为A或B,因此变量candIntraPredModeX推导如下:
调用块的可用性推导过程,其中,将设置为(xPb,yPb)的位置(xCurr,yCurr)和设置为(xNbX,yNbX)的相邻位置(xNbY,yNbY)作为输入,并将输出分配给availableX。
候选帧内预测模式candIntraPredModeX推导如下:
当满足以下一个或多个条件时,candIntraPredModeX设置为INTRA_DC。
变量availableX等于FALSE。
CuPredMode[xNbX][yNbX]不等于MODE_INTRA。
X等于B,且yPb–1小于((yPb>>CtbLog2SizeY)<<CtbLog2SizeY)。
否则,candIntraPredModeX设置为IntraPredModeY[xNbX][yNbX]。
candModeList[x](其中,x=0..2)推导如下:
当candIntraPredModeB等于candIntraPredModeA时,以下适用:
当candIntraPredModeA小于2(即,等于INTRA_PLANAR或INTRA_DC)时,candModeList[x](其中,x=0..2)推导如下:
candModeList[0]=INTRA_PLANAR
candModeList[1]=INTRA_DC
candModeList[2]=INTRA_ANGULAR50
否则,candModeList[x](其中,x=0..2)推导如下:
candModeList[0]=candIntraPredModeA
candModeList[1]=2+((candIntraPredModeA+61)%64)
candModeList[2]=2+((candIntraPredModeA–1)%64)
否则(candIntraPredModeB不等于candIntraPredModeA),则以下适用:
candModeList[0]和candModeList[1]推导如下:
candModeList[0]=candIntraPredModeA
candModeList[1]=candIntraPredModeB
当candModeList[0]和candModeList[1]都不等于INTRA_PLANAR时,candModeList[2]设置为INTRA_PLANAR。
否则,当candModeList[0]和candModeList[1]都不等于INTRA_DC时,candModeList[2]设置为INTRA_DC。
否则,candModeList[2]设置为INTRA_ANGULAR50。
IntraPredModeY[xPb][yPb]通过应用以下过程推导:
当intra_luma_mpm_flag[xPb][yPb]等于1时,IntraPredModeY[xPb][yPb]设置为candModeList[intra_luma_mpm_idx[xPb][yPb]]。
否则,IntraPredModeY[xPb][yPb]通过以下顺序步骤推导:
阵列candModeList[x](其中,x=0..2)通过以下顺序步骤修改:
当candModeList[0]大于candModeList[1]时,两个值交换如下:
(candModeList[0],candModeList[1])=Swap(candModeList[0],candModeList[1])
当candModeList[0]大于candModeList[2]时,两个值交换如下:
(candModeList[0],candModeList[2])=Swap(candModeList[0],candModeList[2])
当candModeList[1]大于candModeList[2]时,两个值交换如下:
(candModeList[1],candModeList[2])=Swap(candModeList[1],candModeList[2])
IntraPredModeY[xPb][yPb]通过以下顺序步骤推导:
IntraPredModeY[xPb][yPb]设置为intra_luma_mpm_remainder[xPb][yPb]。
由于i等于0到2(包括端值),因此当IntraPredModeY[xPb][yPb]大于或等于candModeList[i]时,IntraPredModeY[xPb][yPb]的值增加1。
在本申请的一种实现方式中,帧与图像相同。
在本发明的一个方面中,公开了一种用于构建最可能模式(Most Probable Mode,MPM)列表的方法,所述方法包括:
确定当前译码块的左块是否可用,当所述当前译码块的左块可用时,将所述左块的帧内预测模式添加到MPM列表中;
确定所述当前译码块的上块是否可用,当所述当前译码块的上块可用时,将所述上块的帧内预测模式添加到所述MPM列表中;
当平面模式未包含在所述MPM列表中时,将所述平面模式添加到所述MPM列表中;当DC模式未包含在所述MPM列表中时,将所述DC模式添加到所述MPM列表中。
在本申请的一种实现方式中,当所述当前译码块的上块可用且所述上块的帧内预测模式未包含在所述MPM列表中时,将所述上块的帧内预测模式添加到所述MPM列表中。
在本申请的一种实现方式中,当所述当前译码块的上块可用且所述上块的帧内预测模式包含在所述MPM列表中时,执行的“添加”或者说“添加”过程的结果不会改变MPM列表。
在本申请的一种实现方式中,当所述左块的预测模式不是帧内预测模式时,所述当前译码块的左块不可用。
在本申请的一种实现方式中,当所述当前译码块是位于帧的最左侧的译码块时,当前译码块的左块不可用。
在本申请的一种实现方式中,当支持并行处理且所述当前译码块是位于分块(tile)的最左侧的译码块时,当前译码块的左块不可用。
在本申请的一种实现方式中,当不支持并行处理且所述当前译码块是位于分块的最左侧但不在帧的最左侧的译码块时,当前译码块的左块可用。
在本申请的一种实现方式中,当支持并行处理且所述当前译码块是位于条带的最左侧的译码块时,当前译码块的左块不可用。
在本申请的一种实现方式中,当不支持并行处理且所述当前译码块是位于条带的最左侧但不在帧的最左侧的译码块时,当前译码块的左块可用。
在本申请的一种实现方式中,当所述上块的预测模式不是帧内预测模式时,所述当前译码块的上块不可用。
在本申请的一种实现方式中,当所述当前译码块是位于帧的最上方的译码块时,当前译码块的上块不可用。
在本申请的一种实现方式中,当支持并行处理且所述当前译码块是位于分块的最上方的译码块时,当前译码块的上块不可用。
在本申请的一种实现方式中,当不支持并行处理且所述当前译码块是位于分块的最上方但不在帧的最上方的译码块时,当前译码块的上块可用。
在本申请的一种实现方式中,当支持并行处理且所述当前译码块是位于条带的最上方的译码块时,当前译码块的上块不可用。
在本申请的一种实现方式中,当不支持并行处理且所述当前译码块是位于条带的最上方但不在帧的最上方的译码块时,当前译码块的上块可用。
在本申请的一种实现方式中,当列缓冲器大小受到约束且所述当前译码块是位于当前CTU的最上方的译码块时,当前译码块的上块不可用。
在本申请的一种实现方式中,当所述当前译码块是不位于帧的最左侧的译码块时,当前译码块的左块可用。
在本申请的一种实现方式中,当所述当前译码块是不位于帧的最上方的译码块时,当前译码块的上块可用。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值时,检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式;当所述第一帧内预测模式未包含在所述MPM列表中时,将所述第一帧内预测模式添加到所述MPM列表中,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)(作为第一帧内预测模式)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)或对角模式(DIA_IDX)。
在本申请的一种实现方式中,与VER_IDX对应的值为50;与HOR_IDX对应的值为18;与VDIA_IDX对应的值为66,该值可以为与角度模式对应的值中的最大值;与帧内模式2对应的值2可以为与角度模式对应的值中的最小值;与DIA_IDX对应的值为34。
在本申请的一种实现方式中,当所述MPM列表中帧内预测模式的数量小于阈值时,检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式;当所述第一帧内预测模式未包含在所述MPM列表中时,将所述第一帧内预测模式添加到所述MPM列表中,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)(作为第一帧内预测模式)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)或对角模式(DIA_IDX)。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值时,当帧内预测模式集合的帧内预测模式未包含在所述MPM列表中时,按照上述顺序,将所述帧内预测模式迭代地添加到所述MPM列表中,直至所述预测模式的数量等于所述阈值,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)或对角模式(DIA_IDX)。
在本申请的一种实现方式中,所述方法还包括:当所述当前译码块的左块不可用且所述MPM列表中帧内预测模式的数量小于阈值时,检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式;当所述第一帧内预测模式未包含在所述MPM列表中时,将所述第一帧内预测模式添加到所述MPM列表中,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)(作为第一帧内预测模式)、垂直对角模式(VDIA_IDX)、对角模式(DIA_IDX)或帧内模式2(2)。
在本申请的一种实现方式中,所述方法还包括:当所述当前译码块的左块不可用且所述MPM列表中帧内预测模式的数量小于阈值时,当帧内预测模式集合的帧内预测模式未包含在所述MPM列表中时,按照上述顺序,将所述帧内预测模式迭代地添加到所述MPM列表中,直至所述预测模式的数量等于所述阈值,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、对角模式(DIA_IDX)或帧内模式2(2)。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值时,检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式;当所述第一帧内预测模式未包含在所述MPM列表中时,将所述第一帧内预测模式添加到所述MPM列表中,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)(作为第一帧内预测模式)、水平模式(HOR_IDX)、与VER_IDX加偏移量–4对应的帧内预测模式、或与VER_IDX加偏移量4对应的帧内预测模式。
在本申请的一种实现方式中,与VER_IDX加偏移量–4对应的帧内预测模式使用与VER_IDX对应的值加上偏移量–4,并获得对应帧内预测模式的值,例如,当VER_IDX的值为50时,与VER_IDX加偏移量–4对应的帧内预测模式为帧内预测模式46,与VER_IDX加偏移量4对应的帧内预测模式为帧内预测模式54。其它具有偏移量的示例与该示例的过程类似。
需要说明的是,当执行–1或+1或其它偏移量值时,可能涉及向上叠加和向下叠加操作,例如,当帧内模式(2)的值为2(与角度模式对应的值中的最小值)时,帧内模式(2)–1为66(向上叠加情况),或者当VDIA_IDX的值为66(与角度模式对应的值中的最大值)时,VDIA_IDX+1为2(向下叠加情况)。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值时,当帧内预测模式集合的帧内预测模式未包含在所述MPM列表中时,按照上述顺序,将所述帧内预测模式迭代地添加到所述MPM列表中,直至所述预测模式的数量等于所述阈值,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、与VER_IDX加偏移量–4对应的帧内预测模式、或与VER_IDX加偏移量4对应的帧内预测模式。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值时,检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式;当所述第一帧内预测模式未包含在所述MPM列表中时,将所述第一帧内预测模式添加到所述MPM列表中,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)(作为第一帧内预测模式)、水平模式(HOR_IDX)、与VER_IDX加偏移量4对应的帧内预测模式、或与VER_IDX加偏移量–4对应的帧内预测模式。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值时,当帧内预测模式集合的帧内预测模式未包含在所述MPM列表中时,按照上述顺序,将所述帧内预测模式迭代地添加到所述MPM列表中,直至所述预测模式的数量等于所述阈值,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、与VER_IDX加偏移量4对应的帧内预测模式、或与VER_IDX加偏移量–4对应的帧内预测模式。
在本申请的一种实现方式中,所述方法还包括:当所述当前译码块的左块不可用且所述MPM列表中帧内预测模式的数量小于阈值时,
检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式;当所述第一帧内预测模式未包含在所述MPM列表中时,将所述第一帧内预测模式添加到所述MPM列表中;其中,所述帧内预测模式集合包括以下帧内预测模式集合之一:
垂直模式(VER_IDX)(作为第一帧内预测模式)、垂直对角模式(VDIA_IDX)、与VER_IDX加偏移量–1对应的帧内预测模式和与VER_IDX加偏移量1对应的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式)、垂直对角模式(VDIA_IDX)、与VER_IDX加偏移量–4对应的帧内预测模式和与VER_IDX加偏移量4对应的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式)、垂直对角模式(VDIA_IDX)、与VDIA_IDX加偏移量–4对应的帧内预测模式和与VER_IDX加偏移量–1对应的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式)、垂直对角模式(VDIA_IDX)、与VDIA_IDX加偏移量–4对应的帧内预测模式和与VER_IDX加偏移量+1对应的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式)、垂直对角模式(VDIA_IDX)、与VDIA_IDX加偏移量–1对应的帧内预测模式和与VER_IDX加偏移量–1对应的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式)、垂直对角模式(VDIA_IDX)、与VDIA_IDX加偏移量–1对应的帧内预测模式和与VER_IDX加偏移量1对应的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式)、垂直对角模式(VDIA_IDX)、与VER_IDX加偏移量–1对应的帧内预测模式和与VDIA_IDX加偏移量–4对应的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式)、垂直对角模式(VDIA_IDX)、与VER_IDX加偏移量1对应的帧内预测模式和与VDIA_IDX加偏移量–4对应的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式)、垂直对角模式(VDIA_IDX)、与VER_IDX加偏移量–1对应的帧内预测模式和与VDIA_IDX加偏移量–1对应的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式)、垂直对角模式(VDIA_IDX)、与VER_IDX加偏移量1对应的帧内预测模式和与VDIA_IDX加偏移量–1对应的帧内预测模式。
在本申请的一种实现方式中,所述方法还包括:当所述当前译码块的左块不可用且所述MPM列表中帧内预测模式的数量小于阈值时,当帧内预测模式集合的帧内预测模式未包含在所述MPM列表中时,按照上述顺序,将所述帧内预测模式迭代地添加到所述MPM列表中,直至所述预测模式的数量等于所述阈值;
其中,所述帧内预测模式集合包括以下帧内预测模式集合之一:
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、与VER_IDX加偏移量–1对应的帧内预测模式和与VER_IDX加偏移量1对应的帧内预测模式;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、与VER_IDX加偏移量–4对应的帧内预测模式和与VER_IDX加偏移量4对应的帧内预测模式;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、与VDIA_IDX加偏移量–4对应的帧内预测模式和与VER_IDX加偏移量–1对应的帧内预测模式;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、与VDIA_IDX加偏移量–4对应的帧内预测模式和与VER_IDX加偏移量+1对应的帧内预测模式;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、与VDIA_IDX加偏移量–1对应的帧内预测模式和与VER_IDX加偏移量–1对应的帧内预测模式;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、与VDIA_IDX加偏移量–1对应的帧内预测模式和与VER_IDX加偏移量1对应的帧内预测模式;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、与VER_IDX加偏移量–1对应的帧内预测模式和与VDIA_IDX加偏移量–4对应的帧内预测模式;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、与VER_IDX加偏移量1对应的帧内预测模式和与VDIA_IDX加偏移量–4对应的帧内预测模式;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、与VER_IDX加偏移量–1对应的帧内预测模式和与VDIA_IDX加偏移量–1对应的帧内预测模式;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、与VER_IDX加偏移量1对应的帧内预测模式和与VDIA_IDX加偏移量–1对应的帧内预测模式。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值,所述当前译码块的上块不可用时,检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式;当所述第一帧内预测模式未包含在所述MPM列表中时,将所述第一帧内预测模式添加到所述MPM列表中,其中,所述帧内预测模式集合包括水平模式(HOR_IDX)(作为第一帧内预测模式)、帧内模式2(2)、对角模式(DIA_IDX)或垂直对角模式(VDIA_IDX)。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值,所述当前译码块的上块不可用时,当帧内预测模式集合的帧内预测模式未包含在所述MPM列表中时,按照上述顺序,将所述帧内预测模式迭代地添加到所述MPM列表中,直至所述预测模式的数量等于所述阈值,其中,所述帧内预测模式集合包括水平模式(HOR_IDX)、帧内模式2(2)、对角模式(DIA_IDX)或垂直对角模式(VDIA_IDX)。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值,所述当前译码块的左块可用且所述当前译码块的上块可用时,检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式;当所述第一帧内预测模式未包含在所述MPM列表中时,将所述第一帧内预测模式添加到所述MPM列表中,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)(作为第一帧内预测模式)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)或对角模式(DIA_IDX)。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值,所述当前译码块的左块可用且所述当前译码块的上块可用时,当帧内预测模式集合的帧内预测模式未包含在所述MPM列表中时,按照上述顺序,将所述帧内预测模式迭代地添加到所述MPM列表中,直至所述预测模式的数量等于所述阈值,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)、或对角模式(DIA_IDX)。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值,所述当前译码块的上块不可用时,检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式;当所述第一帧内预测模式未包含在所述MPM列表中时,将所述第一帧内预测模式添加到所述MPM列表中,其中,所述帧内预测模式集合包括水平模式(HOR_IDX)(作为第一帧内预测模式)、帧内模式2(2)、对角模式(DIA_IDX)或垂直对角模式(VDIA_IDX)。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值,所述当前译码块的上块不可用时,当帧内预测模式集合的帧内预测模式未包含在所述MPM列表中时,按照上述顺序,将所述帧内预测模式迭代地添加到所述MPM列表中,直至所述预测模式的数量等于所述阈值,其中,所述帧内预测模式集合包括水平模式(HOR_IDX)、帧内模式2(2)、对角模式(DIA_IDX)或垂直对角模式(VDIA_IDX)。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值,所述当前译码块的左块可用且所述当前译码块的上块可用时,检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式;当所述第一帧内预测模式未包含在所述MPM列表中时,将所述第一帧内预测模式添加到所述MPM列表中,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)(作为第一帧内预测模式)、水平模式(HOR_IDX)、与VER_IDX加偏移量–4对应的帧内预测模式、或与VER_IDX加偏移量4对应的帧内预测模式。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值,所述当前译码块的左块可用且所述当前译码块的上块可用时,当帧内预测模式集合的帧内预测模式未包含在所述MPM列表中时,按照上述顺序,将所述帧内预测模式迭代地添加到所述MPM列表中,直至所述预测模式的数量等于所述阈值,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、与VER_IDX加偏移量–4对应的帧内预测模式、或与VER_IDX加偏移量4对应的帧内预测模式。
在本申请的一种实现方式中,所述方法还包括:当所述当前译码块的上块不可用且所述MPM列表中帧内预测模式的数量小于阈值时,检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式;当所述第一帧内预测模式未包含在所述MPM列表中时,将所述第一帧内预测模式添加到所述MPM列表中,其中,所述帧内预测模式集合包括以下帧内预测模式集合之一:
垂直模式(HOR_IDX)(作为第一帧内预测模式)、帧内模式2(2)、与HOR_IDX加偏移量–1对应的帧内预测模式和与HOR_IDX加偏移量1对应的帧内预测模式;或
水平模式(HOR_IDX)(作为第一帧内预测模式)、帧内模式2(2)、与HOR_IDX加偏移量–4对应的帧内预测模式和HOR_IDX+偏移量4;或
水平模式(HOR_IDX)(作为第一帧内预测模式)、帧内模式2(2)、与帧内模式2(2)加偏移量4对应的帧内预测模式和与HOR_IDX加偏移量–1对应的帧内预测模式;或
水平模式(HOR_IDX)(作为第一帧内预测模式)、帧内模式2(2)、与帧内模式2(2)加偏移量4对应的帧内预测模式和与HOR_IDX加偏移量1对应的帧内预测模式;或
水平模式(HOR_IDX)(作为第一帧内预测模式)、帧内模式2(2)、与帧内模式2(2)加偏移量1对应的帧内预测模式和与HOR_IDX加偏移量–1对应的帧内预测模式;或
水平模式(HOR_IDX)(作为第一帧内预测模式)、帧内模式2(2)、与帧内模式2(2)加偏移量1对应的帧内预测模式和与HOR_IDX加偏移量1对应的帧内预测模式;或
水平模式(HOR_IDX)(作为第一帧内预测模式)、帧内模式2(2)、与HOR_IDX加偏移量–1对应的帧内预测模式和与帧内模式2(2)加偏移量4对应的帧内预测模式;或
水平模式(HOR_IDX)(作为第一帧内预测模式)、帧内模式2(2)、与HOR_IDX加偏移量1对应的帧内预测模式和与帧内模式2(2)加偏移量4对应的帧内预测模式;或
水平模式(HOR_IDX)(作为第一帧内预测模式)、帧内模式2(2)、与HOR_IDX加偏移量–1对应的帧内预测模式和与帧内模式2(2)加偏移量1对应的帧内预测模式;或
水平模式(HOR_IDX)(作为第一帧内预测模式)、帧内模式2(2)、与HOR_IDX加偏移量1对应的帧内预测模式和与帧内模式2(2)加偏移量1对应的帧内预测模式。
在本申请的一种实现方式中,所述方法还包括:当所述当前译码块的上块不可用且所述MPM列表中帧内预测模式的数量小于阈值时,当帧内预测模式集合的帧内预测模式未包含在所述MPM列表中时,按照上述顺序,将所述帧内预测模式迭代地添加到所述MPM列表中,直至所述预测模式的数量等于所述阈值;其中,所述帧内预测模式集合包括以下帧内预测模式集合之一:
水平模式(HOR_IDX)、帧内模式2(2)、与HOR_IDX加偏移量–1对应的帧内预测模式和与HOR_IDX加偏移量1对应的帧内预测模式;或
水平模式(HOR_IDX)、帧内模式2(2)、与HOR_IDX加偏移量–4对应的帧内预测模式和HOR_IDX+偏移量4;或
水平模式(HOR_IDX)、帧内模式2(2)、与帧内模式2(2)加偏移量4对应的帧内预测模式和与HOR_IDX加偏移量–1对应的帧内预测模式;或
水平模式(HOR_IDX)、帧内模式2(2)、与帧内模式2(2)加偏移量4对应的帧内预测模式和与HOR_IDX加偏移量1对应的帧内预测模式;或
水平模式(HOR_IDX)、帧内模式2(2)、与帧内模式2(2)加偏移量1对应的帧内预测模式和与HOR_IDX加偏移量–1对应的帧内预测模式;或
水平模式(HOR_IDX)、帧内模式2(2)、与帧内模式2(2)加偏移量1对应的帧内预测模式和与HOR_IDX加偏移量1对应的帧内预测模式;或
水平模式(HOR_IDX)、帧内模式2(2)、与HOR_IDX加偏移量–1对应的帧内预测模式和与帧内模式2(2)加偏移量4对应的帧内预测模式;或
水平模式(HOR_IDX)、帧内模式2(2)、与HOR_IDX加偏移量1对应的帧内预测模式和与帧内模式2(2)加偏移量4对应的帧内预测模式;或
水平模式(HOR_IDX)、帧内模式2(2)、与HOR_IDX加偏移量–1对应的帧内预测模式和与帧内模式2(2)加偏移量1对应的帧内预测模式;或
水平模式(HOR_IDX)、帧内模式2(2)、与HOR_IDX加偏移量1对应的帧内预测模式和与帧内模式2(2)加偏移量1对应的帧内预测模式。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值时,当帧内预测模式集合的帧内预测模式未包含在所述MPM列表中时,按照上述顺序,将所述帧内预测模式迭代地添加到所述MPM列表中,直至所述预测模式的数量等于所述阈值,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)或对角模式(DIA_IDX)。
在本申请的一种实现方式中,所述方法还包括:当所述当前译码块的左块不可用且所述MPM列表中帧内预测模式的数量小于阈值时,检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式;当所述第一帧内预测模式未包含在所述MPM列表中时,将所述第一帧内预测模式添加到所述MPM列表中,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、对角模式(DIA_IDX)或帧内模式2(2)。
在本申请的一种实现方式中,所述方法还包括:当所述当前译码块的左块不可用且所述MPM列表中帧内预测模式的数量小于阈值时,当帧内预测模式集合的帧内预测模式未包含在所述MPM列表中时,按照上述顺序,将所述帧内预测模式迭代地添加到所述MPM列表中,直至所述预测模式的数量等于所述阈值,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、对角模式(DIA_IDX)或帧内模式2(2)。
在本申请的一种实现方式中,可以理解的是,将帧内预测模式添加到MPM列表中就是将与帧内预测模式对应的值添加到MPM列表中。
在本申请的一种实现方式中,阈值为6。
在本申请的一个方面中,提供了一种编码器,包括用于执行上述方法的处理电路。
在本申请的一个方面中,提供了一种解码器,包括用于执行上述方法的处理电路。
在本申请的一个方面中,提供了一种计算机程序产品,包括用于执行上述方法的程序代码。
在本申请的一个方面中,提供了一种用于构建最可能模式(Most Probable Mode,MPM)列表的解码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,当所述处理器执行所述程序时,配置所述解码器以执行上述方法。
在本申请的一个方面中,提供了一种用于构建最可能模式(Most Probable Mode,MPM)列表的编码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,当所述处理器执行所述程序时,配置所述编码器以执行上述方法。
在一个示例中,
步骤一:确定当前译码块的左块是否可用;
当所述当前译码块的左块可用时,将左块的帧内预测模式添加到MPM列表中。MPM列表可以为空列表,当当前译码块的左块可用时,将左块的帧内预测模式添加到MPM列表中,则MPM列表包括一种帧内预测模式;当当前译码块的左块不可用时,MPM列表在步骤一之后仍为空列表。
步骤二:确定所述当前译码块的上块是否可用。
当所述当前译码块的上块可用时,将上块的帧内预测模式添加到MPM列表中。MPM列表可以包括左块的帧内预测模式,或仍为空列表。
当当前译码块的上块可用且MPM列表包括左块的帧内预测模式时,进一步确定上块的帧内预测模式与左块的帧内预测模式是否相同;当它们相同时,步骤“将上块的帧内预测模式添加到MPM列表中”的结果不会改变MPM列表中帧内预测模式的数量,MPM列表仅包括一种帧内预测模式;当上块的帧内预测模式与左块的帧内预测模式不同时,将上块的帧内预测模式添加到MPM列表中,则MPM列表包括两种帧内预测模式。
当当前译码块的上块可用且MPM列表仍为空列表时,将上块的帧内预测模式添加到MPM列表中,MPM列表仅包括一种帧内预测模式。
当当前译码块的上块不可用且MPM列表包括左块的帧内预测模式时,MPM列表仍仅包括左块的帧内预测模式。
当当前译码块的上块不可用且MPM列表仍为空列表时,MPM列表仍为空列表。
步骤三:当平面模式不在MPM列表中时,将平面模式添加到MPM列表中。
当在步骤二之后,MPM列表不包括平面模式时,将平面模式添加到MPM列表中。
当左块的帧内预测模式和上块的帧内预测模式均不可用,或可用的帧内预测模式不是平面模式时,MPM列表不包括平面模式。
当平面模式在MPM列表中时,执行步骤四。
步骤四:当DC模式不在MPM列表中时,将DC模式添加到MPM列表中。
当在步骤二或步骤三之后,MPM列表不包括DC模式时,将DC模式添加到MPM列表中。
当左块的帧内预测模式和上块的帧内预测模式均不可用,或可用的帧内预测模式不是DC模式时,MPM列表不包括DC模式。
当DC模式在MPM列表中时,执行以下步骤或完成MPM列表构建。
在本申请的一种实现方式中,在每个步骤中,将预测模式添加到MPM列表中的过程需要确保MPM列表中没有重复的预测模式。因此,当需要添加到MPM列表中的帧内预测模式与MPM列表中的帧内预测模式相同时,“添加”过程不会改变MPM列表,或者不执行“添加”过程。
在本申请的一种实现方式中,在步骤4之后,只有当存在角度模式时,才进行角度–1、角度+1。
在一个示例中,当MPM列表中帧内预测模式的数量为6时。在步骤四之后,MPM的长度有三种情况:
情况1:MPM长度为2:→L和A都不是角度模式(>DC)或不可用,MPM列表中只有平面和DC。→使用所有四种默认模式。
情况2:MPM长度为3:→L和A其中一个是角度模式,或它们的角度相同。→使用一种默认模式。
情况3:MPM长度为4:→L和A都是角度模式,并且它们不同。→不使用默认模式,因为将添加L–1、L+1中的至少一个。当其中一个与上述(diff(L–A)=1)重复时,进一步***A–1和A+1中的至少一个。
在本申请的一种实现方式中,所述方法还包括:当当前译码块的左块可用且左块的帧内预测模式为角度模式时,向左块的预测模式添加偏移量,以获得新预测模式;当新预测模式不在MPM列表中时,将新预测模式添加到MPM列表中。
在另一个示例中,由于上述四个步骤最多只能获得4种帧内预测模式,因此MPM列表包括6种帧内预测模式。所述方法还包括:
步骤五:当当前译码块的左块可用且左块的帧内预测模式为角度模式时,向左块的预测模式添加偏移量,以获得新预测模式;当新预测模式不在MPM列表中时,将新预测模式添加到MPM列表中。
例如,当当前译码块的左块为角度模式27(与该角度帧内预测模式对应的值为27),MPM列表在经过上述四个步骤之后为(27,15,0,1)。向左块的预测模式添加偏移量,以获得新预测模式,当新预测模式不在MPM列表中时,将该新预测模式添加到MPM列表中。在一个示例中,偏移量为–1,因此新预测模式为26,更新后的MPM列表为(27,15,0,1,26)。在另一个示例中,偏移量为1,因此新预测模式为28,更新后的MPM列表为(27,15,0,1,28)。在另一个示例中,步骤五可以将两个偏移量添加到左块的帧内预测模式:先添加–1,然后添加1,或先添加1,然后添加–1,因此更新后的MPM列表可以是(27,15,0,1,26 28)或(27,15,0,1,28,26)。
在步骤五之后,检查MPM列表是否已满(当MPM列表中帧内预测模式的数量等于阈值(例如阈值为6)时,MPM列表已满。当MPM列表中帧内预测模式的数量小于阈值时,MPM列表未满。)当MPM列表已满时,完成MPM列表构建;当MPM列表未满时,执行以下步骤。
当当前译码块的左块不可用时,不执行步骤五,执行以下步骤。
需要说明的是,当向角度预测模式添加偏移量(例如–1或+1)时,可能涉及向上叠加和向下叠加操作。例如,当角度预测模式angularLeft为2时,angularLeft–1为66(向上叠加情况);或当angularLeft为66时,angularLeft+1为2(向下叠加情况)。
在本申请的一种实现方式中,所述方法还包括:当当前译码块的上块可用且上块的帧内预测模式为角度模式时,向上块的预测模式添加偏移量,以获得上偏移预测模式;当上偏移预测模式不在MPM列表中时,将上偏移预测模式添加到MPM列表中。
在一个示例中,所述方法还包括:
步骤六:当当前译码块的上块可用且上块的帧内预测模式为角度模式时,向上块的预测模式添加偏移量,以获得上偏移预测模式;当上偏移预测模式不在MPM列表中时,将新预测模式添加到MPM列表中。
例如,当当前译码块的上块为角度模式26(与该角度帧内预测模式对应的值为26),MPM列表在经过上述五个步骤之后为(27,26,0,1,28)。向左块的预测模式添加偏移量,以获得上偏移预测模式,当上偏移预测模式不在MPM列表中时,将上偏移预测模式添加到MPM列表中。在一个示例中,偏移量为–1,因此上偏移预测模式为25,更新后的MPM列表为(27,26,0,1,28,25)。在另一个示例中,偏移量为1,因此上偏移预测模式为27,并且由于已***模式27,因此上偏移模式27的***被阻止。在另一个示例中,当MPM列表在添加一个偏移量之后仍然未满时,步骤六可以将两个偏移量添加到上块的帧内预测模式:先添加–1,然后添加1,或者先添加1,然后添加–1。
当当前译码块的上块不可用时,不执行步骤六,执行以下步骤。在步骤六之后,检查MPM列表是否已满(MPM列表中帧内预测模式的数量等于6)。当MPM列表已满时,完成MPM列表构建;当MPM列表未满时(MPM列表中帧内预测模式的数量小于6),执行以下步骤。
在本申请的一种实现方式中,所述方法还包括:
当MPM列表中帧内预测模式的数量小于阈值(例如,阈值为6)时,使用默认列表构建所述MPM列表。
在一个示例中,当MPM列表中帧内预测模式的数量小于阈值时,默认列表包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)或对角模式(DIA_IDX)。
在一个示例中,当MPM列表中帧内预测模式的数量小于阈值时,默认列表包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、VER_IDX+偏移量–4或VER_IDX+偏移量4。
在一个示例中,当MPM列表中帧内预测模式的数量小于阈值时,默认列表包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、VER_IDX+偏移量4或VER_IDX+偏移量–4。
在一个示例中,当当前译码块的左块不可用且MPM列表中帧内预测模式的数量小于阈值时,默认列表包括:
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、对角模式(DIA_IDX)或帧内模式2(2);或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、VER_IDX+偏移量–1和VER_IDX+偏移量1;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、VER_IDX+偏移量–4和VER_IDX+偏移量4;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、VDIA_IDX+偏移量–4和VER_IDX+偏移量–1;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、VDIA_IDX+偏移量–4和VER_IDX+偏移量+1;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、VDIA_IDX+偏移量–1和VER_IDX+偏移量–1;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、VDIA_IDX+偏移量–1和VER_IDX+偏移量1;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、VER_IDX+偏移量–1和VDIA_IDX+偏移量–4;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、VER_IDX+偏移量1和VDIA_IDX+偏移量–4;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、VER_IDX+偏移量–1和VDIA_IDX+偏移量–1;或
垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、VER_IDX+偏移量1和VDIA_IDX+偏移量–1。
在一个示例中,当MPM列表中帧内预测模式的数量小于阈值,当前译码块的上块不可用时,默认列表包括:
水平模式(HOR_IDX)、帧内模式2(2)、对角模式(DIA_IDX)或垂直对角模式(VDIA_IDX)。
在一个示例中,当MPM列表中帧内预测模式的数量小于阈值,当前译码块的左块可用且当前译码块的上块可用时,默认列表包括:
垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)或对角模式(DIA_IDX);或
垂直模式(VER_IDX)、水平模式(HOR_IDX)、VER_IDX+偏移量–4或VER_IDX+偏移量4;或
垂直模式(VER_IDX)、水平模式(HOR_IDX)、VER_IDX+偏移量4和VER_IDX+偏移量–4。
在一个示例中,当MPM列表中帧内预测模式的数量小于阈值且当前译码块的上块不可用时,默认列表包括:
水平模式(HOR_IDX)、帧内模式2(2)、HOR_IDX+偏移量–1和HOR_IDX+偏移量1;或
水平模式(HOR_IDX)、帧内模式2(2)、HOR_IDX+偏移量–4和HOR_IDX+偏移量4;或
水平模式(HOR_IDX)、帧内模式2(2)、帧内模式2(2)+偏移量4和HOR_IDX+偏移量–1;或
水平模式(HOR_IDX)、帧内模式2(2)、帧内模式2(2)+偏移量4和HOR_IDX+偏移量1;或
水平模式(HOR_IDX)、帧内模式2(2)、帧内模式2(2)+偏移量1和HOR_IDX+偏移量–1;或
水平模式(HOR_IDX)、帧内模式2(2)、帧内模式2(2)+偏移量1和HOR_IDX+偏移量1;或
水平模式(HOR_IDX)、帧内模式2(2)、HOR_IDX+偏移量–1和帧内模式2(2)+偏移量4;或
水平模式(HOR_IDX)、帧内模式2(2)、HOR_IDX+偏移量1和帧内模式2(2)+偏移量4;或
水平模式(HOR_IDX)、帧内模式2(2)、HOR_IDX+偏移量–1和帧内模式2(2)+偏移量1;或
水平模式(HOR_IDX)、帧内模式2(2)、HOR_IDX+偏移量1和帧内模式2(2)+偏移量1。
在本申请的一种实现方式中,当当前译码块的左块不可用时,当前译码块的上块可用或不可用。
在本申请的一种实现方式中,当当前译码块的上块不可用时,当前译码块的左块可用或不可用。
在本申请的一种实现方式中,所述方法还包括:将垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)或对角模式(DIA_IDX)添加到MPM列表中。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值时,检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式;当所述第一帧内预测模式未包含在所述MPM列表中时,将所述第一帧内预测模式添加到所述MPM列表中,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)或对角模式(DIA_IDX)。
在本申请的一种实现方式中,所述方法还包括:当所述MPM列表中帧内预测模式的数量小于阈值时,当帧内预测模式集合的帧内预测模式未包含在所述MPM列表中时,按照上述顺序,将所述帧内预测模式迭代地添加到所述MPM列表中,直至所述预测模式的数量等于所述阈值,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)或对角模式(DIA_IDX)。
在一个示例中,在步骤六之后,当MPM列表仍然未满(MPM列表中帧内预测模式的数量小于阈值)时,当默认模式列表中的帧内预测模式不在MPM列表中时,将该模式或这些模式按顺序添加到MPM列表中,迭代进行该步骤,直至MPM列表已满。
步骤七:将垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)或对角模式(DIA_IDX)添加到MPM列表中。
例如,当垂直模式不在MPM列表中且MPM列表未满时,将垂直模式添加到MPM列表中,当MPM列表在添加垂直模式之后已满时,完成MPM列表构建。
当MPM列表在添加垂直模式之后仍然未满时,检查水平模式是否在MPM列表中。当水平模式在MPM列表中时,进一步检查帧内模式2是否在MPM列表中;当水平模式不在MPM列表中时,将水平模式添加到MPM列表中。迭代地进行该步骤,直到MPM列表已满。
在本申请的一种实现方式中,在步骤七中,使用默认模式列表,每次将默认模式***MPM列表中时,应确保没有***重复模式。***成功后,另外检查MPM是否已满。如果MPM已满,则MPM构建过程终止;否则,以指定顺序继续***其它默认模式。
在本申请的一种实现方式中,所述方法还包括:当所述当前译码块的左块不可用且所述MPM列表中帧内预测模式的数量小于阈值时,
检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式;当所述第一帧内预测模式未包含在所述MPM列表中时,将所述第一帧内预测模式添加到所述MPM列表中;其中,所述帧内预测模式集合包括垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、对角模式(DIA_IDX)或帧内模式2(2)。
在本申请的一种实现方式中,所述方法还包括:
当当前译码块的左块不可用且MPM列表中帧内预测模式的数量小于阈值时,
当帧内预测模式集合的帧内预测模式未包含在所述MPM列表中时,按照上述顺序,将所述帧内预测模式迭代地添加到所述MPM列表中,直至所述预测模式的数量等于所述阈值,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、对角模式(DIA_IDX)或帧内模式2(2)。
在一个示例中,在步骤六之后,当MPM列表仍然未满且当前译码块的左块不可用时,当默认模式列表中的帧内预测模式不在MPM列表中时,将该模式或这些模式按顺序添加到MPM列表中,迭代进行该步骤,直至MPM列表已满。
步骤七:将垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、对角模式(DIA_IDX)或帧内模式2(2)添加到MPM列表中。
例如,当垂直模式不在MPM列表中且MPM列表未满时,将垂直模式添加到MPM列表中,当MPM列表在添加垂直模式之后已满时,完成MPM列表构建。
当MPM列表在添加垂直模式之后仍然未满时,检查垂直对角模式是否在MPM列表中。当垂直对角模式在MPM列表中时,进一步检查对角模式是否在MPM列表中;当对角模式不在MPM列表中时,将对角模式添加到MPM列表中。迭代地进行该步骤,直到MPM列表已满。
在本申请的一种实现方式中,所述方法还包括:
当所述MPM列表中帧内预测模式的数量小于阈值,所述当前译码块的上块不可用时,检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式;当所述第一帧内预测模式未包含在所述MPM列表中时,将所述第一帧内预测模式添加到所述MPM列表中,其中,所述帧内预测模式集合包括水平模式(HOR_IDX)、帧内模式2(2)、对角模式(DIA_IDX)或垂直对角模式(VDIA_IDX)。
在本申请的一种实现方式中,所述方法还包括:
当所述MPM列表中帧内预测模式的数量小于阈值,所述当前译码块的上块不可用时,当帧内预测模式集合的帧内预测模式未包含在所述MPM列表中时,按照上述顺序,将所述帧内预测模式迭代地添加到所述MPM列表中,直至所述预测模式的数量等于所述阈值,其中,所述帧内预测模式集合包括水平模式(HOR_IDX)、帧内模式2(2)、对角模式(DIA_IDX)或垂直对角模式(VDIA_IDX)。
在一个示例中,在步骤六之后,当MPM列表仍然未满,当前译码块的上块不可用时,当默认模式列表中的帧内预测模式不在MPM列表中时,将该模式或这些模式按顺序添加到MPM列表中,迭代进行该步骤,直至MPM列表已满。
步骤七:将水平模式(HOR_IDX)、帧内模式2(2)、对角模式(DIA_IDX)或垂直对角模式(VDIA_IDX)添加到MPM列表中。
例如,当水平模式不在MPM列表中且MPM列表未满时,将水平模式添加到MPM列表中,当MPM列表在添加水平模式之后已满时,完成MPM列表构建。
当MPM列表在添加水平模式之后仍然未满时,检查帧内模式2是否在MPM列表中。当帧内模式2在MPM列表中时,进一步检查对角模式是否在MPM列表中;当对角模式不在MPM列表中时,将对角模式添加到MPM列表中。迭代地进行该步骤,直到MPM列表已满。
在本申请的一种实现方式中,所述方法还包括:当MPM列表中帧内预测模式的数量小于阈值,当前译码块的左块可用且当前译码块的上块可用时,
检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式;当所述第一帧内预测模式未包含在所述MPM列表中时,将所述第一帧内预测模式添加到所述MPM列表中;其中,所述帧内预测模式集合包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)或对角模式(DIA_IDX)。
在本申请的一种实现方式中,所述方法还包括:
当所述MPM列表中帧内预测模式的数量小于阈值,所述当前译码块的左块可用且所述当前译码块的上块可用时,当帧内预测模式集合的帧内预测模式未包含在所述MPM列表中时,按照上述顺序,将所述帧内预测模式迭代地添加到所述MPM列表中,直至所述预测模式的数量等于所述阈值,其中,所述帧内预测模式集合包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)、或对角模式(DIA_IDX)。
在一个示例中,在步骤六之后,当MPM列表仍然未满,当前译码块的左块可用且当前译码块的上块不可用时,当默认模式列表中的帧内预测模式不在MPM列表中时,将该模式或这些模式添加到MPM列表中,迭代进行该步骤,直至MPM列表已满。
步骤七:将垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)或对角模式(DIA_IDX)添加到MPM列表中。
例如,当垂直模式不在MPM列表中且MPM列表未满时,将垂直模式添加到MPM列表中,当MPM列表在添加垂直模式之后已满时,完成MPM列表构建。
当MPM列表在添加垂直模式之后仍然未满时,检查水平模式是否在MPM列表中。当水平模式在MPM列表中时,进一步检查帧内模式2是否在MPM列表中;当帧内模式2不在MPM列表中时,将帧内模式2添加到MPM列表中。迭代地进行该步骤,直到MPM列表已满。
在本申请的一种实现方式中,所述方法还包括:将垂直模式(VER_IDX)、水平模式(HOR_IDX)、VER_IDX+偏移量–4或VER_IDX+偏移量4添加到MPM列表中。
在本申请的一种实现方式中,所述方法还包括:将垂直模式(VER_IDX)、水平模式(HOR_IDX)、VER_IDX+偏移量4或VER_IDX+偏移量–4添加到MPM列表中。
在一个示例中,在步骤六之后,当MPM列表仍然未满时,当默认模式列表中的帧内预测模式不在MPM列表中时,将该模式或这些模式添加到MPM列表中,迭代进行该步骤,直至MPM列表已满。
步骤七:将垂直模式(VER_IDX)、水平模式(HOR_IDX)、VER_IDX+偏移量–4或VER_IDX+偏移量4添加到MPM列表中;或将垂直模式(VER_IDX)、水平模式(HOR_IDX)、VER_IDX+偏移量4或VER_IDX+偏移量–4添加到MPM列表中。
例如,当垂直模式不在MPM列表中且MPM列表未满时,将垂直模式添加到MPM列表中,当MPM列表在添加垂直模式之后已满时,完成MPM列表构建。
当MPM列表在添加垂直模式之后仍然未满时,检查水平模式是否在MPM列表中。当水平模式在MPM列表中时,进一步检查值等于VER_IDX+偏移量–4的值的预测模式是否在MPM列表中;当值等于VER_IDX+偏移量–4的值的预测模式不在MPM列表中时,将值等于VER_IDX+偏移量–4的值的预测模式添加到MPM列表中。迭代地进行该步骤,直到MPM列表已满。
在一个示例中,在步骤六之后,当MPM列表仍然未满且当前译码块的左块不可用时,当默认模式列表中的帧内预测模式不在MPM列表中时,将该模式或这些模式添加到MPM列表中,迭代进行该步骤,直至MPM列表已满。
步骤七:将垂直模式(VER_IDX)、垂直对角模式(VDIA_IDX)、对角模式(DIA_IDX)或帧内模式2(2)添加到MPM列表中。
例如,当垂直模式不在MPM列表中且MPM列表未满时,将垂直模式添加到MPM列表中,当MPM列表在添加垂直模式之后已满时,完成MPM列表构建。
当MPM列表在添加垂直模式之后仍然未满时,检查垂直对角模式是否在MPM列表中。当垂直对角模式在MPM列表中时,进一步检查对角模式是否在MPM列表中;当对角模式不在MPM列表中时,将对角模式添加到MPM列表中。迭代地进行该步骤,直到MPM列表已满。
在一个示例中,在步骤六之后,当MPM列表仍然未满,当前译码块的上块不可用时,当默认模式列表中的帧内预测模式不在MPM列表中时,将该模式或这些模式添加到MPM列表中,迭代进行该步骤,直至MPM列表已满。
步骤七:将水平模式(HOR_IDX)、帧内模式2(2)、对角模式(DIA_IDX)或垂直对角模式(VDIA_IDX)添加到MPM列表中。
例如,当水平模式不在MPM列表中且MPM列表未满时,将水平模式添加到MPM列表中,当MPM列表在添加水平模式之后已满时,完成MPM列表构建。
当MPM列表在添加水平模式之后仍然未满时,检查帧内模式2是否在MPM列表中。当帧内模式2在MPM列表中时,进一步检查对角模式是否在MPM列表中;当对角模式不在MPM列表中时,将对角模式添加到MPM列表中。迭代地进行该步骤,直到MPM列表已满。
在一个示例中,在步骤六之后,当MPM列表仍然未满,当前译码块的左块可用且当前译码块的上块可用时,当默认模式列表中的帧内预测模式不在MPM列表中时,将该模式或这些模式添加到MPM列表中,迭代进行该步骤,直至MPM列表已满。
步骤七:将垂直模式(VER_IDX)、水平模式(HOR_IDX)、VER_IDX+偏移量–4或VER_IDX+偏移量4添加到MPM列表中。
在一个示例中,提供预定义的默认模式:即垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)或对角模式(DIA_IDX),在MPM列表未满时构建该MPM列表。针对这些默认模式,提出了另外两种方法。这些方法是自适应默认方法和更改的默认方法。
使用自适应模式的方法考虑了位于帧最左侧和最上方的块。
由于位于当前块左块的源预测像素点不存在,因此不太可能对位于帧左边界的块使用水平模式。此外,模式通常使用水平模式(即DIA_IDX、模式2)的几率较低。
由于位于当前块上块的源预测像素点不存在,因此不太可能对位于帧上边界的块使用垂直模式。此外,模式通常使用垂直模式(即VDIA_IDX、DIA_IDX)的几率较低。
因此,使用以下边界感知方法:
当当前译码块的左块不存在时,按顺序使用以下模式作为默认候选模式:VER_IDX、VDIA_IDX、DIA_IDX、模式2。
否则(左块存在):
当当前译码块的上块不存在时,按顺序使用以下模式作为默认候选模式:HOR_IDX、模式2、DIA_IDX、VDIA_IDX。
否则(上块存在),使用正常的默认模式:VER_IDX、HOR_IDX、帧内模式2(2)、VDIA_IDX或DIA_IDX。
更改的默认方法将以下候选模式添加到MPM列表中:VER、HOR、VER–4、VER+4。VER–4和VER+4的顺序可以互换。
这两种方法的一种组合可以是:
当当前译码块的左块不存在时,按顺序使用以下模式作为默认候选模式:VER_IDX、VDIA_IDX、DIA_IDX、模式2。
否则(左块存在):
当当前译码块的上块不存在时,按顺序使用以下模式作为默认候选模式:HOR_IDX、模式2、DIA_IDX、VDIA_IDX。
否则(上块存在),使用更改的默认模式:VER_IDX、HOR_IDX、VER、HOR、VER–4、VER+4。
在本发明的一个方面中,提出了一种构建6条目MPM列表的简化方法,包括:检查当前译码单元左块的可用性。左块的位置如图5所示,其中,左块用“L”标记。
当不能从左块中推导出帧内预测信息(即,帧内预测模式)时,左块不可用。包括以下几种情况:
左块不是帧内预测块;左块不存在,例如,当前块是位于帧最左侧的译码块;当编码器或解码器支持并行处理时,当左块位于当前块的不同分块中或与当前块位于不同的分块中时,即当前译码块位于分块的最左侧,可以认为该左块不存在(或不可用)。
在另一个示例中,当编码器或解码器不支持并行处理时,当左块位于当前块的不同分块中,即当前译码块位于分块的最左侧时,则可以认为该左块可用。
当编码器或解码器支持并行处理时,当左块与当前块位于不同的条带中,即当前译码块位于条带的最左侧时,可以认为该左块不存在。
在另一个示例中,当编码器或解码器不支持并行处理时,当左块与当前块位于不同的条带中,即当前译码块位于条带的最左侧时,可以认为该左块可用。
否则(即,左块可用),在6条目MPM列表中包括左块的帧内预测模式。
检查当前译码单元的上块的可用性。图5示出了上块的位置,其中,上块用“A”标记。
当不能从上块中推导出帧内预测信息(即,帧内预测模式)时,上块不可用。包括以下几种情况:
上块不是帧内预测块。
上块不存在。例如,当前块为位于帧最上方的译码块。
当编码器或解码器支持并行处理时,当顶块与当前块位于不同的分块中,即当前译码块位于分块的最上方时,可以认为该顶块不存在。
在另一个示例中,当编码器或解码器不支持并行处理时,当顶块与当前块位于不同的分块中,即当前译码块位于分块的最上方时,可以认为该顶块可用。
当编码器或解码器支持并行处理时,当顶块与当前块位于不同的条带中,即当前译码块位于条带的最上方时,可以认为该顶块不存在。
在另一个示例中,当编码器或解码器不支持并行处理时,当顶块与当前块位于不同的条带中,即当前译码块位于条带的最上方时,可以认为该顶块可用。
当需要限制编码器或解码器中的列缓冲器大小时,当顶块与当前块位于不同的CTU中,即当前译码块位于当前CTU的最上方时,可以认为该顶块不存在。
在一个示例中,当解码端或编码端支持列缓冲器限制时,认为位于与当前块CTU不同的CTU上的上块不存在。当不支持列缓冲器限制时,认为该上块存在。
否则(即,左块可用),在6条目MPM列表中包括顶块的帧内预测模式。
检查平面(PLANAR_IDX=0)模式是否已***MPM列表中(即,检查左块或顶块的帧内模式是否是平面模式),仅当平面模式未***MPM列表中时,才将该平面模式***MPM列表中。检查DC(DC_IDX=1)模式是否已***MPM列表中(即,检查左块或顶块的帧内模式是否是DC模式),仅当DC模式未***MPM列表中时,才将该DC模式***MPM列表中。
当左块可用且其帧内预测模式为角度模式,即(模式>DC_IDX,比如其模式为angularLeft)时,可以通过执行angularLeft–1、angularLeft+1获得其最接近的两个角度模式。需要说明的是,执行–1或+1时可能涉及向上叠加和向下叠加操作。
例如,当angularLeft为2时,angularLeft–1为66(向上叠加情况),或当angularLeft为66时,angularLeft+1为2(向下叠加情况)。
当angularLeft–1的预测模式未***MPM列表中时,将angularLeft–1的预测模式***MPM列表中。
当angularLeft+1的预测模式未***MPM列表中时,将angularLeft+1的预测模式***MPM列表中。
当MPM列表未满,且上块可用,其帧内预测模式为角度模式,即(模式>DC_IDX,比如模式为angularAbove)时,可以通过执行angularAbove–1、angularAbove+1获得其最接近的两个角度模式。需要说明的是,当执行–1或+1时,可能涉及向上叠加和向下叠加操作。在一个示例中,当angularLeft为2时,angularLeft–1为66(向上叠加情况);或当angularLeft为66时,angularLeft+1为2(向下叠加情况)。
当angularAbove–1的预测模式未***MPM列表中时,将angularAbove–1的预测模式***MPM列表中。
当MPM列表未满(例如,MPM列表中的预测模式的数量小于6),且angularAbove+1的预测模式未***MPM列表中时,将angularAbove+1的预测模式***MPM列表中。
当MPM列表未满时,将以下模式***MPM列表中,直至MPM列表已满(例如,MPM列表中预测模式的数量等于6)为止:
垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角模式(VDIA_IDX)或对角模式(DIA_IDX)。
所提出方法的变型概述:
左块的可用性应同时考虑支持或不支持并行处理。
上块的可用性应同时考虑支持或不支持并行处理。
推导左块和上块的两个最接近模式的顺序也可以先是+1,然后是–1。
MPM列表的最后一个候选项可以是VIDA_IDX或DIA_IDX。
***顺序还可以是左、上、平面、DC和默认模式(VER_IDX、HOR_IDX、2、VDIA_IDX或DIA_IDX)。
可以使用截断一元二值化来指示mpm_idx。使mpm_idx的前三个位元使用三个不同的独立上下文,或者通过加密对mpm_idx的所有位元进行CABAC。
在一个示例中,公开了用于亮度帧内预测模式的推导过程。
该过程的输入是:
亮度位置(xCb,yCb),表示当前亮度译码块相对于当前图像的左上亮度像素点的左上像素点;
变量cbWidth,表示当前译码块以亮度像素点计算的宽度;
变量cbHeight,表示当前译码块以亮度像素点计算的高度。
在该过程中,推导亮度帧内预测模式IntraPredModeY[xCb][yCb]。
表8-1表示帧内预测模式IntraPredModeY[xCb][yCb]的值及其相关名称。
表8-1帧内预测模式和相关名称的规范
帧内预测模式 | 相关名称 |
0 | INTRA_PLANAR |
1 | INTRA_DC |
2..66 | INTRA_ANGULAR2..INTRA_ANGULAR66 |
77 | INTRA_CCLM |
注:帧内预测模式INTRA_CCLM只适用于色度分量。
通过以下顺序步骤推导IntraPredModeY[xCb][yCb]:
相邻位置(xNbA,yNbA)和(xNbB,yNbB)分别设置为(xCb–1,yCb+cbHeight–1)和(xCb+cbWidth–1,yCb–1)。
由于将X替换为A或B,因此变量candIntraPredModeX和addModeX推导如下:
调用块的可用性推导过程(如条款6.4.X[Ed.(BB):Neighbouring blocksavailability checking process tbd]中所规定),其中,将设置为(xCb,yCb)的位置(xCurr,yCurr)和设置为(xNbX,yNbX)的相邻位置(xNbY,yNbY)作为输入,并将输出分配给availableX。
候选帧内预测模式candIntraPredModeX和addModeX推导如下:
当满足以下条件中的一个或多个时,candIntraPredModeX设置为除了0到66(包括端值)的值(例如,值为–1),将addModeX设置为FALSE。
变量availableX等于FALSE。
CuPredMode[xNbX][yNbX]不等于MODE_INTRA。
X等于B,且yCb–1小于((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)。
否则,candIntraPredModeX设置为IntraPredModeY[xNbX][yNbX],addModeX设置为TRUE。变量mIdx设置为0。candModeList[x](其中,x=0..5)推导如下:
当且仅当模式介于模式2到66之间(包括模式2和模式66)时,定义模式为角度模式。
当candIntraPredModeA和candIntraPredModeB都不是角度模式时,适用以下情况:
candModeList[0]=INTRA_PLANAR
candModeList[1]=INTRA_DC
candModeList[2]=INTRA_ANGULAR50
candModeList[3]=INTRA_ANGULAR18
candModeList[4]=INTRA_ANGULAR46
candModeList[5]=INTRA_ANGULAR54
否则(candIntraPredModeA和candIntraPredModeB中的至少一个为角度模式)。
当addModeA等于TRUE时,candModeList[mIdx]设置为candIntraPredModeA,mIdx增加1。
当addModeB等于TRUE且mIdx等于0时,candModeList[mIdx]设置为candIntraPredModeB,mIdx增加1。
当addModeB等于TRUE、mIdx=1且candIntraPredModeB不等于candModeList[0]时,candModeList[mIdx]设置为candIntraPredModeB,mIdx增加1。
当对于任何i=0..mIdx–1,INTRA_PLANAR不等于candModeList[i]时,modeList[mIdx]设置为INTRA_PLANAR,mIdx增加1。
当对于任何i=0..mIdx–1,INTRA_DC不等于candModeList[i]时,modeList[mIdx]设置为INTRA_DC,mIdx增加1。
当candIntraPredModeA和candIntraPredModeB都在模式2到66之间,且candIntraPredModeA不等于candIntraPredModeB时,
设置变量angMinus等于2+((candIntraPredModeA+62)%65),
设置变量angPlus等于2+((candIntraPredModeA–1)%65);
当candIntraPredModeB等于angMinus时,
candModeList[mIdx]等于2+((candIntraPredModeB+62)%65),mIdx增加1。
candModeList[mIdx]设置为angPlus。
否则(candIntraPredModeB不等于angMinus),
candModeList[mIdx]设置为angMinus,mIdx增加1。
当candIntraPredModeB等于angPlus时,candModeList[mIdx]设置为2+((candIntraPredModeB–1)%65)。
否则(candIntraPredModeB不等于angPlus),candModeList[mIdx]设置为angPlus。
否则(只有candIntraPredModeA在模式2到66之间,或只有candIntraPredModeB在模式2与66之间,或candIntraPredModeA等于candIntraPredModeB,且它们都在模式2到66之间),
当candIntraPredModeA大于模式2时,变量Angular设置为candIntraPredModeA。
否则(candIntraPredModeA不大于模式2),Angular设置为candIntraPredModeB。
当Angular范围在模式49到51之间(包括模式49和模式51)时,变量finalMode设置为18。
否则(Angular不在模式49到51之间(包括模式49和模式51)),变量finalMode设置为50。
candModeList[mIdx]设置为2+((Angular+62)%65),mIdx增加1。
candModeList[mIdx]设置为2+((Angular–1)%65),mIdx增加1。
candModeList[mIdx]设置为finalMode。
通过应用以下过程推导IntraPredModeY[xCb][yCb]:
当intra_luma_mpm_flag[xCb][yCb]等于1时,IntraPredModeY[xCb][yCb]设置为candModeList[intra_luma_mpm_idx[xCb][yCb]]。
否则,通过以下顺序步骤推导IntraPredModeY[xCb][yCb]:
阵列candModeList[x](其中,x=0..5)通过以下顺序步骤修改:
当i依次等于0到4(包括端值)时,适用以下情况:
当j依次等于i+1到5(包括端值)时,比较candModeList[i]与candModeList[j];当candModeList[i]大于candModeList[j]时,两个值如下互换:
(candModeList[i],candModeList[j])=Swap(candModeList[i],candModeList[j])。
通过以下顺序步骤推导IntraPredModeY[xCb][yCb]:
IntraPredModeY[xCb][yCb]设置为intra_luma_mpm_remainder[xCb][yCb]。
由于i等于0到5(包括端值),因此当IntraPredModeY[xCb][yCb]大于或等于candModeList[i]时,IntraPredModeY[xCb][yCb]的值增加1。
将x=xCb..xCb+cbWidth–1和y=yCb..yCb+cbHeight–1的变量IntraPredModeY[x][y]设置为IntraPredModeY[xCb][yCb]。
本发明旨在对帧内模式指示方案进行改进。本发明提出一种视频解码方法和视频解码器。
图7示出了如针对VVC提出的67种帧内预测模式的示例,67种帧内预测模式的多种帧内预测模式包括:平面模式(索引为0)、dc模式(索引为1),以及角度模式(索引为2到66),其中,图7中的左下角度模式是指索引2,并且索引的编号递增,直到索引66是图7的最右上角度模式为止。
在本申请的另一方面中,公开了一种包括处理电路的解码器,用于执行上述解码方法。
在本申请的另一方面中,公开了一种计算机程序产品,包括用于执行上述解码方法的程序代码。
在本申请的另一方面中,公开了一种用于解码视频数据的解码器,其中,所述解码器包括:一个或多个处理器;非瞬时性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,所述处理器执行所述程序时,配置所述解码器以执行上述解码方法。
处理电路可以在硬件或硬件和软件的组合中实现,例如通过软件可编程处理器等实现。
在本申请的另一方面中,公开了一种编码方法,包括:从多个帧内预测模式中获取图像块的帧内预测模式,所述图像块的多个帧内预测模式包括最可能模式(Most ProbableMode,MPM)集合和非MPM集合,其中,所述非MPM集合包括第一帧内预测模式集合和第二帧内预测模式集合;当所述图像块的帧内预测模式在所述非MPM集合中时,在所述第一帧内预测模式集合中的至少一个帧内预测模式与所述非MPM集合中的至少一个帧内预测模式之间生成映射关系;根据所述映射关系,对所述图像块的帧内预测模式进行编码以获得帧内预测模式码字。
在本申请的一种实现方式中,获取图像块的帧内预测模式的过程可以参考实施例部分的以下详细描述中的相对公开内容,或者视频译码技术领域中,如ITU-T H.264、ITU-TH.265中的相对公开内容。
在本申请的一种实现方式中,所述编码方法还包括:生成MPM集合;确定图像块的帧内预测模式是否在MPM集合中。因此,当图像块的帧内预测模式不在MPM集合中时,该图像块的帧内预测模式在非MPM集合中。
生成MPM集合的过程可以参考描述部分中的相对公开内容,或者视频译码技术领域中,如ITU-T H.264、ITU-T H.265中的相对公开内容。
在本申请的一种实现方式中,在第一帧内预测模式集合中的至少一种帧内预测模式与非MPM集合中的至少一种帧内预测模式之间生成映射关系的过程可以参考解码端的相对公开内容。
在本申请的一种实现方式中,使用5个位对第一帧内预测模式集合进行译码,使用6个位对第二帧内预测模式集合进行译码。
在本申请的另一方面中,公开了一种包括处理电路的编码器,用于执行上述编码方法。
在本申请的另一方面中,公开了一种计算机程序产品,包括用于执行上述编码方法的程序代码。
在本申请的另一方面中,提供了一种用于编码视频数据的编码器,其中,所述编码器包括:一个或多个处理器;非瞬时性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,所述处理器执行所述程序时,配置所述编码器以执行上述编码方法。
处理电路可以在硬件或硬件和软件的组合中实现,例如通过软件可编程处理器等实现。
实施例1:一种用于构建帧内预测的最可能模式(Most Probable Mode,MPM)列表的方法,其特征在于,所述方法包括:
确定当前译码块的左块(例如,图5中的块L)是否可用(例如,当左块没有帧内预测模式时,左块不可用;当左块存在帧内预测模式时,左块可用);
确定当前译码块的上块(例如,图5中的块A)是否可用(例如,当上块没有帧内预测模式时,上块不可用;当左块存在帧内预测模式时,上块可用);
使用平面模式、DC模式、垂直模式(VER_IDX)、水平模式(HOR_IDX)、与所述垂直模式加偏移量–4对应的帧内预测模式、与所述垂直模式加偏移量4对应的帧内预测模式(例如,MPM列表为(0,1,50,18,46,54),其中,值0对应平面模式、值1对应DC模式、值50对应垂直模式、值18对应水平模式、值46对应与所述垂直模式加偏移量–4对应的帧内预测模式、值54对应与所述垂直模式加偏移量4对应的帧内预测模式),
当满足以下条件之一时:
所述当前译码块的所述左块不可用,且所述当前译码块的所述上块不可用;
所述当前译码块的所述左块不可用、所述当前译码块的所述上块可用,且所述上块的帧内预测模式为平面模式;
所述当前译码块的所述左块不可用、所述当前译码块的所述上块可用,且所述上块的帧内预测模式为DC模式;
所述当前译码块的所述左块可用、所述当前译码块的所述上块不可用,且所述左块的帧内预测模式为平面模式;
所述当前译码块的所述左块可用、所述当前译码块的所述上块不可用,且所述左块的帧内预测模式为DC模式;
所述当前译码块的所述左块可用、所述当前译码块的所述上块可用、所述左块的帧内预测模式不是角度模式(即,左块的帧内预测模式为平面模式或DC模式),且所述上块的帧内预测模式不是角度模式(即,上块的帧内预测模式为平面模式或DC模式)。
实施例2:一种用于构建帧内预测的最可能模式(Most Probable Mode,MPM)列表的方法,其特征在于,所述方法包括:
确定当前译码块的左块(例如,图5中的块L)是否可用(例如,当左块没有帧内预测模式时,左块不可用;当左块存在帧内预测模式时,左块可用,且当左块可用时,获取左块的帧内预测模式);
当左块可用时(例如,左块的帧内预测模式为角度模式,即与左块的帧内预测模式对应的值大于或等于2,该值的范围为2到66,该值也可以等于66;或者,与左块的帧内预测模式对应的值为0(平面模式)或1(DC模式)),将左块的帧内预测模式添加到MPM列表中(例如,初始MPM列表为空列表,在该步骤中,将左块的帧内预测模式添加到MPM列表中)。
实施例3:一种用于构建帧内预测的最可能模式(Most Probable Mode,MPM)列表的方法,其特征在于,所述方法包括:
确定当前译码块的上块(例如,图5中的块A)是否可用(例如,当上块没有帧内预测模式时,上块不可用;当上块存在帧内预测模式时,上块可用,且当上块可用时,获取上块的帧内预测模式);
当上块可用(例如,上块的帧内预测模式为角度模式,即与上块的帧内预测模式对应的值大于或等于2,该值的范围为2到66,该值也可以等于66;或者,与上块的帧内预测模式对应的值为0(平面模式)或1(DC模式))且上块的帧内预测模式未包含在所述MPM列表中,将上块的帧内预测模式添加到MPM列表中(例如,初始MPM列表为空列表,在该步骤中,将上块的帧内预测模式添加到MPM列表中;或者,所述MPM列表包括左块的帧内预测模式,且上块的帧内预测模式与左块的帧内预测模式不同,因此将上块的帧内预测模式添加到MPM列表中,MPM列表中有两种帧内预测模式(一个值对应左块的帧内预测模式,一个值对应上块的帧内预测模式))。
实施例4:根据实施例2或3所述的方法,其中,所述方法还包括:
当左块不可用或左块的帧内预测模式不是角度模式(例如,左块没有帧内预测模式,或左块的帧内预测模式为平面模式,或左块的帧内预测模式为DC模式),且上块的帧内预测模式为角度模式(例如,与上块的帧内预测模式对应的值大于或等于2,该值的范围可以为2到66,该值也可以等于66),
且当上块的帧内预测模式未包含在MPM列表中时,将上块的帧内预测模式添加到MPM列表中(在一个示例中,由于初始MPM列表为空列表或仅仅不包含角度模式,因此当左块不可用或左块的帧内预测模式不是角度模式时,将上块的帧内预测模式添加到MPM列表中。由于在这种情况下,上块的帧内预测模式显然未包含在MPM列表中,因此,无需确定上块的帧内预测模式是否包括在MPM列表中)。
实施例5:根据实施例4所述的方法,其中,所述方法还包括:
当平面模式未包含在MPM列表中时,将平面模式添加到MPM列表中(在一个示例中,将上块的帧内预测模式添加到MPM列表中之后,确定是否将平面模式添加到MPM列表中)。
实施例6:根据实施例4或5所述的方法,其中,所述方法还包括:
当DC模式未包含在MPM列表中时,将DC模式添加到MPM列表中(在一个示例中,将上块的帧内预测模式添加到MPM列表中之后,确定是否将DC模式添加到MPM列表中。在另一个示例中,在确定是否将平面模式添加到MPM列表中之后,再确定是否将DC模式添加到MPM列表中)。
实施例7:根据实施例4至6中任一项所述的方法,其中,所述方法还包括:
向上块的预测模式添加偏移量,以获得上偏移预测模式,当上偏移预测模式未包含在MPM列表中时,将上偏移预测模式添加到MPM列表中(在一个示例中,该步骤可以在将上块的帧内预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将平面模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将DC模式添加到MPM列表中之后进行处理)。
实施例8:根据实施例7所述的方法,其中,所述偏移量为–1。
实施例9:根据实施例7所述的方法,其中,所述偏移量为1(在一个示例中,向上块的预测模式添加两个偏移量,以获得一个上偏移预测模式和另一个上偏移预测模式,当所述一个上偏移(偏移量为–1)预测模式未包含在MPM列表中时,将该上偏移预测模式添加到MPM列表中;当所述另一个上偏移(偏移量为1)预测模式未包含在MPM列表中时,将该另一个上偏移预测模式添加到MPM列表中)。
实施例10:根据实施例4至9中任一项所述的方法,其中,所述方法还包括:
当垂直模式未包含在MPM列表中时,将垂直模式添加到MPM列表中(在一个示例中,该步骤可以在将上块的帧内预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将平面模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将DC模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将上偏移预测模式添加到MPM列表中之后进行处理)。
实施例11:根据实施例4至10中任一项所述的方法,其中,所述方法还包括:
当水平模式未包含在MPM列表中时,将水平模式添加到MPM列表中(在一个示例中,该步骤可以在将上块的帧内预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将平面模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将DC模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将上偏移预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将垂直模式添加到MPM列表中之后进行处理)。
实施例12:根据实施例4至10中任一项所述的方法,其中,所述方法还包括:
当水平模式未包含在MPM列表中且MPM列表中帧内预测模式的数量小于阈值(例如,阈值为6)时,将水平模式添加到MPM列表中(在一个示例中,该步骤可以在将上块的帧内预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将平面模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将DC模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将上偏移预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将垂直模式添加到MPM列表中之后进行处理)。
实施例13:根据实施例2或3所述的方法,其中,所述方法还包括:
当上块不可用或上块的帧内预测模式不是角度模式(例如,上块没有帧内预测模式,或上块的帧内预测模式为平面模式,或上块的帧内预测模式为DC模式),且左块的帧内预测模式为角度模式(例如,与上块的帧内预测模式对应的值大于或等于2,该值的范围可以为2到66,该值也可以等于66),
当左块的帧内预测模式未包含在MPM列表中时,将左块的帧内预测模式添加到MPM列表中(在一些示例中,当左块的帧内预测模式为角度模式时,将左块的帧内预测模式添加到MPM列表中,在该示例中,无需确定左块的帧内预测模式是否包含在MPM列表中)。
实施例14:根据实施例13所述的方法,其中,所述方法还包括:
当平面模式未包含在MPM列表中时,将平面模式添加到MPM列表中(在一个示例中,将左块的帧内预测模式添加到MPM列表中之后,确定是否将平面模式添加到MPM列表中)。
实施例15:根据实施例13或14所述的方法,其中,所述方法还包括:
当DC模式未包含在MPM列表中时,将DC模式添加到MPM列表中(在一个示例中,将左块的帧内预测模式添加到MPM列表中之后,确定是否将DC模式添加到MPM列表中。在另一个示例中,在确定是否将平面模式添加到MPM列表中之后,再确定是否将DC模式添加到MPM列表中)。
实施例16:根据实施例13至15中任一项所述的方法,其中,所述方法还包括:
向左块的预测模式添加偏移量,以获得左偏移预测模式,当左偏移预测模式未包含在MPM列表中时,将左偏移预测模式添加到MPM列表中(在一个示例中,该步骤可以在将左块的帧内预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将平面模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将DC模式添加到MPM列表中之后进行处理)。
实施例17:根据实施例16所述的方法,其中,所述偏移量为–1。
实施例18:根据实施例16所述的方法,其中,所述偏移量为1(在一个示例中,向左块的预测模式添加两个偏移量,以获得一种左偏移预测模式和另一种左偏移预测模式,当所述一种左偏移(偏移量为–1)预测模式未包含在MPM列表中时,将该左偏移预测模式添加到MPM列表中;当所述另一种左偏移(偏移量为1)预测模式未包含在MPM列表中时,将该另一种左偏移预测模式添加到MPM列表中)。
实施例19:根据实施例13至18中任一项所述的方法,其中,所述方法还包括:
当垂直模式未包含在MPM列表中时,将垂直模式添加到MPM列表中(在一个示例中,该步骤可以在将左块的帧内预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将平面模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将DC模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将左偏移预测模式添加到MPM列表中之后进行处理)。
实施例20:根据实施例13至19中任一项所述的方法,其中,所述方法还包括:
当水平模式未包含在MPM列表中时,将水平模式添加到MPM列表中(在一个示例中,该步骤可以在将左块的帧内预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将平面模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将DC模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将左偏移预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将垂直模式添加到MPM列表中之后进行处理)。
实施例21:根据实施例13至19中任一项所述的方法,其中,所述方法还包括:
当水平模式未包含在MPM列表中且MPM列表中帧内预测模式的数量小于阈值(例如,阈值为6)时,将水平模式添加到MPM列表中(在一个示例中,该步骤可以在将左块的帧内预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将平面模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将DC模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将左偏移预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将垂直模式添加到MPM列表中之后进行处理)。
实施例22:根据实施例2所述的方法,其中,所述方法还包括:
确定当前译码块的上块(例如,图5中的块A)是否可用(例如,当上块没有帧内预测模式时,上块不可用;当上块存在帧内预测模式时,上块可用);
当上块的帧内预测模式为角度模式(例如,与上块的帧内预测模式对应的值大于或等于2,该值的范围可以为2至66,该值也可以等于66),且上块的帧内预测模式包含在MPM列表中(例如,上块的帧内预测模式与左块的帧内预测模式相同),
当平面模式未包含在MPM列表中时,将平面模式添加到MPM列表中(在一个示例中,由于左块的帧内预测模式和上块的帧内预测模式为角度模式,因此将平面模式添加到MPM列表中)。
实施例23:根据实施例22所述的方法,其中,所述方法还包括:
当DC模式未包含在MPM列表中时,将DC模式添加到MPM列表中(在另一个示例中,在确定是否将平面模式添加到MPM列表中之后,确定是否将DC模式添加到MPM列表中。在一个示例中,由于左块的帧内预测模式和上块的帧内预测模式为角度模式,因此将DC模式添加到MPM列表中)。
实施例24:根据实施例22或23所述的方法,其中,所述方法还包括:
向左块的预测模式添加偏移量,以获得左偏移预测模式,当左偏移预测模式不在MPM列表中时,将左偏移预测模式添加到MPM列表中(在一个示例中,该步骤可以在将左块的帧内预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将平面模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将DC模式添加到MPM列表中之后进行处理)。
实施例25:根据实施例24所述的方法,其中,所述偏移量为–1。
实施例26:根据实施例24所述的方法,其中,所述偏移量为1(在一个示例中,向左块的预测模式添加两个偏移量,以获得一种左偏移预测模式和另一种左偏移预测模式,当所述一种左偏移(偏移量为–1)预测模式未包含在MPM列表中时,将该左偏移预测模式添加到MPM列表中;当所述另一种左偏移(偏移量为1)预测模式未包含在MPM列表中时,将该另一种左偏移预测模式添加到MPM列表中)。
实施例27:根据实施例22至26中任一项所述的方法,其中,所述方法还包括:
当垂直模式未包含在MPM列表中时,将垂直模式添加到MPM列表中(在一个示例中,该步骤可以在将左块的帧内预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将平面模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将DC模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将左偏移预测模式添加到MPM列表中之后进行处理)。
实施例28:根据实施例22至27中任一项所述的方法,其中,所述方法还包括:
当水平模式未包含在MPM列表中时,将水平模式添加到MPM列表中(在一个示例中,该步骤可以在将左块的帧内预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将平面模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将DC模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将左偏移预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将垂直模式添加到MPM列表中之后进行处理)。
实施例29:根据实施例22至27中任一项所述的方法,其中,所述方法还包括:
当水平模式未包含在MPM列表中且MPM列表中帧内预测模式的数量小于阈值(例如,阈值为6)时,将水平模式添加到MPM列表中(在一个示例中,该步骤可以在将左块的帧内预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将平面模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将DC模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将左偏移预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将垂直模式添加到MPM列表中之后进行处理)。
实施例30:根据实施例2所述的方法,其中,所述方法还包括:
确定当前译码块的上块(例如,图5中的块A)是否可用(例如,当上块没有帧内预测模式时,上块不可用;当上块存在帧内预测模式时,上块可用);
当上块的帧内预测模式为角度模式,左块的帧内预测模式为角度模式(例如,与上块的帧内预测模式对应的值大于或等于2,该值的范围可以为2至66,该值也可以等于66),且上块的帧内预测模式未包含在MPM列表中(例如,左块的帧内预测模式与上块的帧内预测模式不同)时,
将上块的帧内预测模式添加到MPM列表中(例如,MPM列表包括左块的帧内预测模式,且上块的帧内预测模式与左块的帧内预测模式不同,因此将上块的帧内预测模式添加到MPM列表中,MPM列表中有两种帧内预测模式(与左块对应的帧内模式和与上块对应的帧内模式))。
实施例31:根据实施例30所述的方法,其中,所述方法还包括:
当平面模式未包含在MPM列表中时,将平面模式添加到MPM列表中(在一个示例中,在将上块的帧内预测模式添加到MPM列表中之后,确定是否将平面模式添加到MPM列表中;在另一个示例中,由于左块的帧内预测模式和上块的帧内预测模式均为角度模式,因此在该步骤中,将平面模式添加到MPM列表中)。
实施例32:根据实施例30和31所述的方法,其中,所述方法还包括:
当DC模式未包含在MPM列表中时,将DC模式添加到MPM列表中(在一个示例中,将上块的帧内预测模式添加到MPM列表中之后,确定是否将DC模式添加到MPM列表中。在另一个示例中,在确定是否将平面模式添加到MPM列表中之后,再确定是否将DC模式添加到MPM列表中;在另一个示例中,由于左块的帧内预测模式和上块的帧内预测模式均为角度模式,因此在该步骤中,将DC模式添加到MPM列表中)。
实施例33:根据实施例30至32中任一项所述的方法,其中,所述方法还包括:
向左块的预测模式添加偏移量(例如–1),以获得左偏移预测模式;当左偏移预测模式包含在MPM列表中时,向上块的预测模式添加偏移量(例如–1),以获得上偏移预测模式,并将上偏移预测模式添加到MPM列表中。
实施例34:根据实施例30至33中任一项所述的方法,其中,所述方法还包括:
向左块的预测模式添加偏移量(例如–1),以获得左偏移预测模式,当左偏移预测模式未包含在MPM列表中时,将该左偏移预测模式添加到MPM列表中。
实施例35:根据实施例30至34中任一项所述的方法,其中,所述方法还包括:
向左块的预测模式添加一个偏移量(例如–1),以获得一种左偏移预测模式,向左块的预测模式添加另一个偏移量(例如1),以获得另一种左偏移预测模式,当所述一种左偏预测模式包含在MPM列表中时,将所述另一种左偏预测模式添加到MPM列表中。
实施例36:根据实施例30至34中任一项所述的方法,其中,所述方法还包括:
向左块的预测模式添加偏移量(例如–1),以获得左偏移预测模式;当左偏移预测模式包含在MPM列表中时,向左块的预测模式添加另一个偏移量(例如,1),以获得另一种左偏移预测模式,并将该另一种左偏移预测模式添加到MPM列表中。
实施例37:根据实施例30至32中任一项所述的方法,其中,所述方法还包括:
向左块的预测模式添加偏移量(例如–1),以获得左偏移预测模式;当左偏移预测模式包含在MPM列表中时,向上块的预测模式添加偏移量(例如–1),以获得上偏移预测模式,并将上偏移预测模式添加到MPM列表中;
向左块的预测模式添加另一个偏移量(例如1),以获得另一种左偏移预测模式,并将该另一种左偏移预测模式添加到MPM列表中。
实施例38:根据实施例34所述的方法,其中,所述方法还包括:
向左块的预测模式添加另一个偏移量(例如1),以获得另一种左偏移预测模式,当所述另一种左偏移预测模式未包含在MPM列表中时,将该另一种左偏移预测模式添加到MPM列表中。
实施例39:根据实施例34或38所述的方法,其中,所述方法还包括:
向左块的预测模式添加另一个偏移量(例如1),以获得另一种左偏移预测模式,当该另一种左偏移预测模式包含在MPM列表中时,
向上块的预测模式添加另一个偏移量(例如1),以获得另一种上偏移预测模式,并将该另一种上偏移预测模式添加到MPM列表中。
实施例40:根据实施例2所述的方法,其中,所述方法还包括:
确定当前译码块的上块(例如,图5中的块A)是否可用(例如,当上块没有帧内预测模式时,上块不可用;当上块存在帧内预测模式时,上块可用,且当上块可用时,获取上块的帧内预测模式);
当上块不可用或上块的帧内预测模式不是角度模式(例如,上块没有帧内预测模式,或上块的帧内预测模式为平面模式,或上块的帧内预测模式为DC模式),且左块的帧内预测模式为角度模式(例如,与上块的帧内预测模式对应的值大于或等于2,该值的范围可以为2到66,该值也可以等于66),
当平面模式未包含在MPM列表中时,将平面模式添加到MPM列表中(在一个示例中,将左块的帧内预测模式添加到MPM列表中之后,确定是否将平面模式添加到MPM列表中)。
实施例41:根据实施例40所述的方法,其中,所述方法还包括:
当DC模式未包含在MPM列表中时,将DC模式添加到MPM列表中(在一个示例中,将左块的帧内预测模式添加到MPM列表中之后,确定是否将DC模式添加到MPM列表中。在另一个示例中,在确定是否将平面模式添加到MPM列表中之后,再确定是否将DC模式添加到MPM列表中)。
实施例42:根据实施例40或41所述的方法,其中,所述方法还包括:
向左块的预测模式添加偏移量,以获得左偏移预测模式,当左偏移预测模式未包含在MPM列表中时,将左偏移预测模式添加到MPM列表中(在一个示例中,该步骤可以在将左块的帧内预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将平面模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将DC模式添加到MPM列表中之后进行处理)。
实施例43:根据实施例42所述的方法,其中,所述偏移量为–1。
实施例44:根据实施例42所述的方法,其中,所述偏移量为1(在一个示例中,向左块的预测模式添加两个偏移量,以获得一种左偏移预测模式和另一种左偏移预测模式,当所述一种左偏移(偏移量为–1)预测模式未包含在MPM列表中时,将该左偏移预测模式添加到MPM列表中;当所述另一种左偏移(偏移量为1)预测模式未包含在MPM列表中时,将该另一种左偏移预测模式添加到MPM列表中)。
实施例45:根据实施例40至44中任一项所述的方法,其中,所述方法还包括:
当垂直模式未包含在MPM列表中时,将垂直模式添加到MPM列表中(在一个示例中,该步骤可以在将左块的帧内预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将平面模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将DC模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将左偏移预测模式添加到MPM列表中之后进行处理)。
实施例46:根据实施例40至45中任一项所述的方法,其中,所述方法还包括:
当水平模式未包含在MPM列表中时,将水平模式添加到MPM列表中(在一个示例中,该步骤可以在将左块的帧内预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将平面模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将DC模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将左偏移预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将垂直模式添加到MPM列表中之后进行处理)。
实施例47:根据实施例40至46中任一项所述的方法,其中,所述方法还包括:
当水平模式未包含在MPM列表中且MPM列表中帧内预测模式的数量小于阈值(例如,阈值为6)时,将水平模式添加到MPM列表中(在一个示例中,该步骤可以在将左块的帧内预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将平面模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将DC模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将左偏移预测模式添加到MPM列表中之后进行处理。在另一个示例中,该步骤可以在确定是否将垂直模式添加到MPM列表中之后进行处理)。
实施例48:一种编码器,包括处理电路,用于执行根据实施例1至47中任一项所述的方法。
实施例49:一种解码器,包括处理电路,用于执行根据实施例1至47中任一项所述的方法。
实施例50:一种计算机程序产品,包括用于执行根据实施例1至47中任一项所述方法的程序代码。
实施例51:一种用于构建最可能模式(Most Probable Mode,MPM)列表的解码器,其特征在于,包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,所述处理器执行所述程序时,配置所述解码器以执行根据实施例1至47中任一项所述的方法。
实施例52:一种用于构建最可能模式(Most Probable Mode,MPM)列表的编码器,包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,所述处理器执行所述程序时,配置所述编码器以执行根据实施例1至47中任一项所述的方法。
引入分段线性近似,以计算用于预测给定块内像素所需的加权系数的值。分段线性近似一方面与直接的加权系数计算相比,大大降低了距离加权预测机制的计算复杂度,另一方面与现有技术简化相比,有助于提高加权系数值的精确度。
实施例可以应用于其它双向和位置相关帧内预测技术(例如,PDPC的不同修改)以及使用取决于从一个像素到另一个像素的距离的加权系数混合图像的不同部分的机制(例如,图像处理中的一些混合方法)。
本发明所描述的主题和操作可在数字电子电路中实现,也可在计算机软件、固件或硬件中实现,包括在本发明中公开的结构及其结构等同物中实现,或在它们一个或多个的组合中实现。本发明所描述的主题可实现为一个或多个计算机程序,即计算机程序指令的一个或多个模块,所述计算机程序被编码在计算机存储介质中,以由数据处理装置执行或控制数据处理装置的操作。或者或另外,可将所述程序指令编码在人工生成的传播信号(例如,机器生成的电、光或电磁信号)中,生成所述信号以对信息进行编码从而发送到合适的接收器装置,供数据处理装置执行。计算机存储介质,例如计算机可读介质,可以是或包括在计算机可读存储设备、计算机可读存储衬底、随机或串行访问存储阵列或设备,或其中一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但计算机存储介质可以是编码到人工生成的传播信号中的计算机程序指令的源或目标。计算机存储介质也可以是或包括在一个或多个单独的物理和/或非瞬时性组件或介质(例如,多个CD、磁盘或其它存储设备)中。
在一些实现方式中,本发明所描述的操作可实现为云计算网络中服务器中提供的托管服务。例如,可在云计算网络内对计算机可读存储介质进行逻辑分组和访问。云计算网络中的服务器可包括云计算平台,用于提供云服务。在不脱离本发明范围的情况下,术语“云”、“云计算”和“基于云”可酌情互换使用。云服务可以是托管服务,由服务器提供,并通过网络传送到客户端平台,以增强、补充或替换在客户端计算机中本地执行的应用。电路可使用云服务来快速接收软件升级、应用和其它资源,否则,这些资源需要很长的时间才能传送到所述电路。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以任何形式的编程语言编写,包括编译或直译语言、声明性语言或程序语言,并且可以任何形式进行部署,例如,作为独立程序或作为模块、组件、子例程、对象或适用于计算环境中的其它单元进行部署。计算机程序可以(但不必)对应文件***中的文件。程序可存储在包括其它程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于相关程序的单个文件中,或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。可将计算机程序部署在一台计算机中执行,或部署在位于一个站点或分布于多个站点并通过通信网络互连的多台计算机中执行。
本发明中描述的过程和逻辑流可由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作和生成输出来执行动作。所述过程和逻辑流也可由现场可编程门阵列(field programmable gate array,FPGA)或专用集成电路(application-specific integrated circuit,ASIC)等专用逻辑电路执行,且装置也可实现为所述专用逻辑电路。
例如,适合执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器从只读存储器或随机存取存储器或两者中接收指令和数据。计算机的基本元件为用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还包括一个或多个用于存储数据的大容量存储设备(例如磁盘、磁光盘或光盘),或与一个或多个用于存储数据的大容量存储设备可操作地耦合以从所述大容量存储设备接收数据和/或将数据传送给所述大容量存储设备。然而,计算机不必具有此类设备。此外,可将计算机嵌入到其它设备中,例如移动电话、个人数字助理(personal digital assistant,PDA)、移动音频或视频播放器、游戏机、全球定位***(Global Positioning System,GPS)接收器或便携式存储设备(例如,通用串行总线(universal serial bus,USB)闪存驱动器)等。适合存储计算机程序指令和数据的设备包括各种形式的非易失性存储器、介质和存储设备,例如,包括EPROM、EEPROM和闪存设备等半导体存储设备;内置硬盘或可移动硬盘等磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路。
虽然本发明包括许多具体实现方式的细节,但这些不应对任何实现方式的范围或所要求保护的范围造成限制,而应作为针对特定实现方式的特定实现方式的特征的描述。在单独实现方式的上下文中,本发明中所描述的某些特征也可以在单个实现方式中组合实现。反之,在单个实现方式的上下文中描述的各种特征也可以在多个实现方式中单独实现或在任何合适的子组合中实现。此外,尽管上文可将特征描述为以某些组合来实现,甚至最初要求保护,但是在某些情况下,可从要求保护的组合中去除该组合中的一个或多个特征,且所要求保护的组合可针对子组合或子组合的变型。
同样,虽然附图以特定顺序描述操作,但这不应理解为要求此类操作按照所示的特定顺序或按顺序执行,或者要求执行所示的所有操作,以达到期望的结果。在某些情况下,可以有利地进行多任务处理和并行处理。此外,上述实现方式中的各种***组件的分离不应理解为所有实现方式都要求这种分离。应理解,所描述的程序组件和***通常可以一起集成到单个软件产品中或封装到多个软件产品中。
因此,本主题的特定实现方式已做描述。其它实现方式在以上权利要求的保护范围之内。在一些情况下,可以不同的顺序执行权利要求中所述的动作,并且仍然达到期望的结果。此外,附图中描述的过程不一定要求按所示的特定顺序或按顺序执行才能达到期望的结果。在某些实现方式中,可以有利地进行多任务处理和并行处理。
虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,所公开的***和方法可以以许多其它特定形式来体现。本发明示例应被视为说明性而非限制性的,且本发明并不限于本文所给出的细节。例如,可以在另一***中结合或集成各种元件或组件,或者可以省略或不实现某些特征。
另外,在不脱离本发明范围的情况下,各种实施例中描述及图示为独立或分离的技术、***、子***和方法可以与其它***、模块、技术或方法组合或集成。示出或描述为彼此耦合、或直接耦合、或相互通信的其它项目可通过某种接口、设备或中间组件以电方式、机械方式等间接耦合或通信。变化、替换和变更的其它示例可由本领域技术人员确定,并可在不脱离本文公开的精神和范围的情况下举例。
虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,所公开的***和方法可以以许多其它特定形式来体现。本发明示例应被视为说明性而非限制性的,且本发明并不限于本文所给出的细节。例如,可以在另一***中结合或集成各种元件或组件,或者可以省略或不实现某些特征。
另外,在不脱离本发明范围的情况下,各种实施例中描述及图示为独立或分离的技术、***、子***和方法可以与其它***、模块、技术或方法组合或集成。示出或描述为彼此耦合、或直接耦合、或相互通信的其它项目可通过某种接口、设备或中间组件以电方式、机械方式等间接耦合或通信。变化、替换和变更的其它示例可由本领域技术人员确定,并可在不脱离本文公开的精神和范围的情况下举例。
Claims (17)
1.一种用于构建帧内预测的最可能模式(Most Probable Mode,MPM)列表的方法,其特征在于,所述方法包括:
确定当前译码块的左块是否可用;
确定所述当前译码块的上块是否可用;
当满足以下条件之一时:
所述当前译码块的所述左块不可用,且所述当前译码块的所述上块不可用;
所述当前译码块的所述左块不可用、所述当前译码块的所述上块可用,且所述上块的帧内预测模式为平面模式;
所述当前译码块的所述左块可用、所述当前译码块的所述上块不可用,且所述左块的帧内预测模式为平面模式;
所述当前译码块的所述左块可用、所述当前译码块的所述上块不可用,且所述左块的帧内预测模式为DC模式;
所述当前译码块的所述左块可用、所述当前译码块的所述上块可用、所述左块的帧内预测模式不是角度模式,且所述上块的帧内预测模式不是角度模式;
使用DC模式、垂直模式(VER_IDX)、水平模式(HOR_IDX)、与所述垂直模式加偏移量–4对应的帧内预测模式、与所述垂直模式加偏移量4对应的帧内预测模式构建MPM列表,以获得所述当前译码块的帧内预测模式的值。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述当前译码块的最可能模式(Most Probable Mode,MPM)标志的值;
根据所述当前译码块的所述MPM标志的值和所述DC模式、所述垂直模式(VER_IDX)、所述水平模式(HOR_IDX)、与所述垂直模式加偏移量–4对应的所述帧内预测模式、与所述垂直模式加偏移量4对应的所述帧内预测模式,获得所述当前译码块的所述帧内预测模式的值。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述当前译码块的最可能模式(Most Probable Mode,MPM)标志的值;
获取所述当前译码块的帧内预测模式索引值;
根据所述当前译码块的所述MPM标志的值、所述当前译码块的所述帧内预测模式索引值和所述DC模式、所述垂直模式(VER_IDX)、所述水平模式(HOR_IDX)、与所述垂直模式加偏移量–4对应的所述帧内预测模式、与所述垂直模式加偏移量4对应的所述帧内预测模式,获得所述当前译码块的所述帧内预测模式的值。
4.根据权利要求3所述的方法,其特征在于,当所述当前译码块的所述MPM标志的值为1且所述当前译码块的所述帧内预测模式索引值为0时,所述当前译码块的所述帧内预测模式为平面模式。
5.根据权利要求3所述的方法,其特征在于,当所述当前译码块的所述MPM标志的值为0时,所述当前译码块的所述帧内预测模式不等于以下任一种帧内预测模式:
DC模式、垂直模式(VER_IDX)、水平模式(HOR_IDX)、与所述垂直模式加偏移量–4对应的帧内预测模式、与所述垂直模式加偏移量4对应的帧内预测模式。
6.一种用于对视频的当前块进行解码的解码方法,其特征在于,所述解码方法包括:
确定当前译码块的左块是否可用;
确定所述当前译码块的上块是否可用;
从码流获取所述当前块的最可能模式(Most Probable Mode,MPM)标志的值;
当所述MPM标志的值指示所述当前块的帧内预测模式为帧内预测模式的MPM集合中包括的帧内预测模式时,从所述码流中获取所述当前块的MPM索引;
根据所述当前块的所述MPM索引和所述MPM集合,获取所述当前块的所述帧内预测模式的值;
其中,当所述当前块的左邻块的帧内预测模式为平面模式,且所述当前块的上邻块的帧内预测模式为平面模式时,
所述预测模式的MPM集合包括:DC模式、垂直模式、水平模式、与所述垂直模式加偏移量–4对应的帧内预测模式、与所述垂直模式加偏移量4对应的帧内预测模式。
7.根据权利要求6所述的方法,其特征在于,当所述当前块的所述MPM标志的值为1且所述当前块的所述MPM索引为0时,所述当前块的所述帧内预测模式为平面模式。
8.一种用于对视频的当前块进行解码的解码方法,其特征在于,所述解码方法包括:
确定当前译码块的左块是否可用;
确定所述当前译码块的上块是否可用;
从码流获取所述当前块的最可能模式(Most Probable Mode,MPM)标志的值;
当所述MPM标志的值指示所述当前块的帧内预测模式为帧内预测模式的MPM集合中包括的帧内预测模式时,从所述码流中获取所述当前块的MPM索引;
根据所述当前块的所述MPM索引和所述MPM集合,获取所述当前块的所述帧内预测模式的值;
其中,当所述当前块的左邻块的帧内预测模式为平面模式,且所述当前块的上邻块的帧内预测模式为DC模式时,所述预测模式的MPM集合包括:DC模式、垂直模式、水平模式、与所述垂直模式加第一偏移量对应的帧内预测模式以及与所述垂直模式加第二偏移量对应的帧内预测模式。
9.根据权利要求8所述的方法,其特征在于,当所述当前块的所述MPM标志的值为1且所述当前块的所述MPM索引为0时,所述当前块的所述帧内预测模式为DC模式。
10.一种用于对视频的当前块进行解码的解码方法,其特征在于,所述解码方法包括:
确定当前译码块的左块是否可用;
确定所述当前译码块的上块是否可用;
从码流获取所述当前块的最可能模式(Most Probable Mode,MPM)标志的值;
当所述MPM标志的值指示所述当前块的帧内预测模式为帧内预测模式的MPM集合中包括的帧内预测模式时,从所述码流中获取所述当前块的MPM索引;
根据所述当前块的所述MPM索引和所述MPM集合,获取所述当前块的所述帧内预测模式的值;
其中,当所述当前块的左邻块不可用,且所述当前块的上邻块的帧内预测模式为平面模式时,
所述预测模式的MPM集合包括:DC模式、垂直模式、水平模式、与所述垂直模式加偏移量–4对应的帧内预测模式、与所述垂直模式加偏移量4对应的帧内预测模式。
11.根据权利要求10所述的方法,其特征在于,当所述当前块的所述MPM标志的值为1且所述当前块的所述MPM索引为0时,所述当前块的所述帧内预测模式为DC模式。
12.一种用于对视频的当前块进行解码的解码方法,其特征在于,所述解码方法包括:
确定当前译码块的左块是否可用;
确定所述当前译码块的上块是否可用;
从码流获取所述当前块的最可能模式(Most Probable Mode,MPM)标志的值;
当所述MPM标志的值指示所述当前块的帧内预测模式为帧内预测模式的MPM集合中包括的帧内预测模式时,从所述码流中获取所述当前块的MPM索引;
根据所述当前块的所述MPM索引和所述MPM集合,获取所述当前块的所述帧内预测模式的值;
其中,当所述当前块的左邻块不可用,且所述当前块的上邻块不可用时,所述预测模式的MPM集合包括:DC模式、垂直模式、水平模式、与所述垂直模式加偏移量–4对应的帧内预测模式以及与所述垂直模式加偏移量4对应的帧内预测模式。
13.根据权利要求12所述的方法,其特征在于,当所述当前块的所述MPM标志的值为1且所述当前块的所述MPM索引为0时,所述当前块的所述帧内预测模式为DC模式。
14.一种用于对视频的当前块进行解码的解码方法,其特征在于,所述解码方法包括:
确定当前译码块的左块是否可用;
确定所述当前译码块的上块是否可用;
从码流获取所述当前块的最可能模式(Most Probable Mode,MPM)标志的值;
当所述MPM标志的值指示所述当前块的帧内预测模式为帧内预测模式的MPM集合中包括的帧内预测模式时,从所述码流中获取所述当前块的MPM索引;
根据所述当前块的所述MPM索引和所述MPM集合,获取所述当前块的所述帧内预测模式的值;
其中,当所述当前块的左邻块的帧内预测模式为平面模式,且所述当前块的上邻块不可用时,所述预测模式的MPM集合包括:DC模式、垂直模式、水平模式、与所述垂直模式加偏移量–4对应的帧内预测模式以及与所述垂直模式加偏移量4对应的帧内预测模式。
15.根据权利要求14所述的方法,其特征在于,当所述当前块的所述MPM标志的值为1且所述当前块的所述MPM索引为0时,所述当前块的所述帧内预测模式为DC模式。
16.一种解码器,其特征在于,包括处理电路,用于执行根据权利要求1至15中任一项所述的方法。
17.一种用于构建最可能模式(Most Probable Mode,MPM)列表的解码器,其特征在于,包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,所述处理器执行所述程序时,配置所述解码器以执行根据权利要求1至15中任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862734877P | 2018-09-21 | 2018-09-21 | |
US62/734,877 | 2018-09-21 | ||
CN201980047356.1A CN112425165B (zh) | 2018-09-21 | 2019-09-21 | 基于邻块的帧内预测模式推导 |
PCT/CN2019/107142 WO2020057663A1 (en) | 2018-09-21 | 2019-09-21 | Intra prediction mode derivation based on neighboring blocks |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980047356.1A Division CN112425165B (zh) | 2018-09-21 | 2019-09-21 | 基于邻块的帧内预测模式推导 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117651133A true CN117651133A (zh) | 2024-03-05 |
Family
ID=69888330
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980047356.1A Active CN112425165B (zh) | 2018-09-21 | 2019-09-21 | 基于邻块的帧内预测模式推导 |
CN202311323080.XA Pending CN117651133A (zh) | 2018-09-21 | 2019-09-21 | 基于邻块的帧内预测模式推导 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980047356.1A Active CN112425165B (zh) | 2018-09-21 | 2019-09-21 | 基于邻块的帧内预测模式推导 |
Country Status (9)
Country | Link |
---|---|
US (1) | US11297345B2 (zh) |
KR (2) | KR20230088850A (zh) |
CN (2) | CN112425165B (zh) |
AU (1) | AU2019344407B2 (zh) |
BR (1) | BR112021005220A2 (zh) |
CA (1) | CA3113370A1 (zh) |
MX (1) | MX2021003297A (zh) |
NZ (1) | NZ774476A (zh) |
WO (1) | WO2020057663A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020071871A1 (ko) * | 2018-10-05 | 2020-04-09 | 엘지전자 주식회사 | 영상 서비스 처리 방법 및 그 장치 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101507344B1 (ko) * | 2009-08-21 | 2015-03-31 | 에스케이 텔레콤주식회사 | 가변 길이 부호를 이용한 인트라 예측모드 부호화 방법과 장치, 및 이를 위한기록 매체 |
BR112013014374B8 (pt) * | 2011-09-13 | 2022-08-30 | Mediatek Singapore Pte Ltd | Método e aparelho para codificação de modo intra em hevc |
JP5869681B2 (ja) * | 2011-10-07 | 2016-02-24 | パンテック カンパニー リミテッド | 候補画面内予測モードを利用した画面内予測モードの符号化/復号化方法及び装置 |
KR20130049522A (ko) * | 2011-11-04 | 2013-05-14 | 오수미 | 인트라 예측 블록 생성 방법 |
CN115134593B (zh) * | 2015-06-05 | 2024-07-23 | 杜比实验室特许公司 | 用于执行帧间预测的图像编解码方法、比特流存储方法 |
US10841593B2 (en) * | 2015-06-18 | 2020-11-17 | Qualcomm Incorporated | Intra prediction and intra mode coding |
US10448011B2 (en) * | 2016-03-18 | 2019-10-15 | Mediatek Inc. | Method and apparatus of intra prediction in image and video processing |
US10547854B2 (en) * | 2016-05-13 | 2020-01-28 | Qualcomm Incorporated | Neighbor based signaling of intra prediction modes |
US10368107B2 (en) * | 2016-08-15 | 2019-07-30 | Qualcomm Incorporated | Intra video coding using a decoupled tree structure |
US10506228B2 (en) * | 2016-10-04 | 2019-12-10 | Qualcomm Incorporated | Variable number of intra modes for video coding |
CN111034196B (zh) * | 2017-08-21 | 2023-11-17 | 韩国电子通信研究院 | 用于对视频进行编码/解码的方法和设备以及存储比特流的记录介质 |
US10652534B2 (en) * | 2018-03-08 | 2020-05-12 | Tencent America LLC | Methods and apparatus for directional intra prediction in video compression |
IL312193A (en) * | 2018-06-25 | 2024-06-01 | Guangdong Oppo Mobile Telecommunications Corp Ltd | Interior-frame and device prediction method |
US11509890B2 (en) * | 2018-07-24 | 2022-11-22 | Hfi Innovation Inc. | Methods and apparatus for entropy coding and decoding aspects of video data |
WO2020050697A1 (ko) * | 2018-09-06 | 2020-03-12 | 엘지전자 주식회사 | 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
WO2020055159A1 (ko) * | 2018-09-11 | 2020-03-19 | 엘지전자 주식회사 | 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
US10771778B2 (en) * | 2018-09-14 | 2020-09-08 | Tencent America LLC | Method and device for MPM list generation for multi-line intra prediction |
-
2019
- 2019-09-21 BR BR112021005220-8A patent/BR112021005220A2/pt unknown
- 2019-09-21 CN CN201980047356.1A patent/CN112425165B/zh active Active
- 2019-09-21 WO PCT/CN2019/107142 patent/WO2020057663A1/en active Application Filing
- 2019-09-21 CN CN202311323080.XA patent/CN117651133A/zh active Pending
- 2019-09-21 KR KR1020237019594A patent/KR20230088850A/ko not_active Application Discontinuation
- 2019-09-21 KR KR1020217010709A patent/KR102543792B1/ko active IP Right Grant
- 2019-09-21 AU AU2019344407A patent/AU2019344407B2/en active Active
- 2019-09-21 CA CA3113370A patent/CA3113370A1/en active Pending
- 2019-09-21 MX MX2021003297A patent/MX2021003297A/es unknown
- 2019-09-21 NZ NZ774476A patent/NZ774476A/en unknown
-
2020
- 2020-08-24 US US17/000,765 patent/US11297345B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
AU2019344407B2 (en) | 2022-07-07 |
KR20230088850A (ko) | 2023-06-20 |
BR112021005220A2 (pt) | 2021-06-15 |
CN112425165A (zh) | 2021-02-26 |
US11297345B2 (en) | 2022-04-05 |
KR102543792B1 (ko) | 2023-06-16 |
MX2021003297A (es) | 2021-05-13 |
WO2020057663A1 (en) | 2020-03-26 |
CN112425165B (zh) | 2023-10-20 |
NZ774476A (en) | 2023-05-26 |
AU2019344407A1 (en) | 2021-04-15 |
US20200389668A1 (en) | 2020-12-10 |
CA3113370A1 (en) | 2020-03-26 |
KR20210049932A (ko) | 2021-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112640467B (zh) | 用于帧内预测的方法和装置 | |
AU2023202685B2 (en) | Method and apparatus for intra prediction | |
CN112640453B (zh) | 帧内预测的方法和装置 | |
CN112567740B (zh) | 用于帧内预测的方法和装置 | |
CN112425165B (zh) | 基于邻块的帧内预测模式推导 | |
US11418783B2 (en) | Encoding method, decoding method, encoder, and decoder | |
CN112703739B (zh) | 用于预测最可能帧内模式的方法和装置 | |
CN112997497A (zh) | 用于帧内预测的方法和装置 | |
RU2784004C2 (ru) | Деривация режима внутреннего предсказания на основе соседних блоков | |
RU2785106C2 (ru) | Способ и устройство для внутреннего предсказания |
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 |