CN116567211A - 视频编码/解码设备和方法及非暂时性记录介质 - Google Patents
视频编码/解码设备和方法及非暂时性记录介质 Download PDFInfo
- Publication number
- CN116567211A CN116567211A CN202310713813.4A CN202310713813A CN116567211A CN 116567211 A CN116567211 A CN 116567211A CN 202310713813 A CN202310713813 A CN 202310713813A CN 116567211 A CN116567211 A CN 116567211A
- Authority
- CN
- China
- Prior art keywords
- motion vector
- resolution
- vector resolution
- current block
- current
- 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
- 238000000034 method Methods 0.000 title claims abstract description 37
- 239000013598 vector Substances 0.000 claims abstract description 653
- 239000000284 extract Substances 0.000 claims description 15
- 230000003044 adaptive effect Effects 0.000 description 33
- 238000000926 separation method Methods 0.000 description 32
- 238000010586 diagram Methods 0.000 description 24
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 16
- 230000006870 function Effects 0.000 description 13
- 229920003987 resole Polymers 0.000 description 6
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000006467 substitution reaction Methods 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000001914 filtration Methods 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/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/109—Selection of coding mode or of prediction mode among a plurality of temporal 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/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/105—Selection 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
-
- 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- 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/174—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 slice, e.g. a line of blocks or a group of blocks
-
- 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/46—Embedding additional information in the video signal during the compression process
-
- 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/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- 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
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开涉及一种视频编码/解码设备和方法及非暂时性记录介质。本发明提供了一种用于对视频进行编码的方法,该方法包括:确定当前块的运动矢量分辨率的步骤;根据所述运动矢量分辨率来确定所述当前块的运动矢量的步骤;通过使用所述运动矢量来预测所述当前块并且对所述当前块进行编码的步骤;以及对关于所述运动矢量分辨率的信息进行编码的步骤。
Description
本申请是原案申请号为201780064071.X的发明专利申请(国际申请号:PCT/KR2017/011484,申请日:2017年10月17日,发明名称:用于对图像进行编码或解码的设备和方法)的分案申请。
技术领域
本发明涉及高效视频编码或解码。
背景技术
该背景技术部分中所公开的信息仅用于增强对本发明的背景的理解,因此它可能包含未构成现有技术的信息。
与音频数据、静止图像数据等相比,视频数据消耗大量数据,因此,需要包括存储器的许多硬件资源来存储或发送视频数据本身,而无需压缩处理。因此,通常,当存储或发送视频数据时,使用编码装置压缩并存储或发送视频数据,并且解码装置接收、解压缩和再现压缩后的视频数据。这种视频压缩技术包括在2013年初建立的编码效率比H.264/AVC提高了约40%的高效视频编码(HEVC)以及H.264/AVC。
在作为用于编码或解码的预测方法的帧间预测编码期间,将关于通过预测当前块得到的残余块的信息和用于预测当前块的运动信息用信号通知给解码设备。这里,运动信息包括关于用于预测当前块的参考图片的信息和关于运动矢量的信息,并且在传统HEVC标准的情况下,以1/4像素为单元表示运动矢量。
然而,图像的大小和分辨率以及帧速率逐渐增加,因此,待解码的数据的量也增加。因此,需要效率比传统压缩技术高的压缩技术。
发明内容
技术问题
因此,考虑到以上问题做出了本发明,并且本发明的一个目的是提供用于通过根据诸如图像或块大小的改变这样的图像特性调整运动矢量的分辨率对视频进行高效编码的视频编码或解码技术。
技术方案
按照本发明的一方面,提供了一种对视频进行编码的方法,该方法包括以下步骤:确定当前块的运动矢量分辨率;根据所述当前块的所述运动矢量分辨率来确定所述当前块的运动矢量;使用所述当前块的所述运动矢量来预测所述当前块并且对所述当前块进行编码;以及对关于所述当前块的所述运动矢量分辨率的信息进行编码。
按照本发明的另一方面,一种自适应地确定当前块的运动矢量分辨率并且对所述当前块进行解码的视频解码方法包括以下步骤:从比特流中提取关于所述当前块的所述运动矢量分辨率的信息,并且基于关于所述当前块的所述运动矢量分辨率的信息来确定所述当前块的所述运动矢量分辨率;以及使用根据所述当前块的所述运动矢量分辨率确定的所述当前块的运动矢量来预测所述当前块并且对所述当前块进行解码。
按照本发明的另一方面,一种用于自适应地确定当前块的运动矢量分辨率并且对所述当前块进行解码的视频解码设备包括:运动矢量分辨率解码器,该运动矢量分辨率解码器被配置为从比特流中提取关于所述当前块的所述运动矢量分辨率的信息,并且基于关于所述当前块的所述运动矢量分辨率的信息来确定所述当前块的所述运动矢量分辨率;以及视频解码器,该视频解码器被配置为使用根据所述当前块的所述运动矢量分辨率确定的所述当前块的运动矢量来预测所述当前块并且对所述当前块进行解码。
附图说明
图1是示出常见视频编码设备的示意框图,
图2是示出使用四叉树加二叉树(QTBT)结构的块分离的示例的图,
图3是示出当前块的邻近块的示例的图,
图4是示出根据本发明的实施方式的视频编码设备的图,
图5是例示由帧间预测器124执行的内插和运动估计过程以及参考图片的分辨率的图,
图6是用于比较两个帧的运动程度的图,
图7是示出根据实施方式的分辨率确定器410的示例的图,
图8是示出在当前CU的运动矢量分辨率信息被编码为分辨率差值时的分辨率编码器430的示例的图,
图9是示出将当前CU的运动矢量表示为分辨率比例因子而非分辨率差值的分辨率编码器430的示例的图,
图10是常见视频解码设备的示意图,
图11是示出根据本发明的实施方式的视频解码设备1100的图,
图12是示出根据本发明的第一实施方式的在视频解码设备1100处对视频进行解码的方法的流程图,
图13是示出分辨率的自适应确定的示例的图,
图14是示出在图12中添加一些操作的情况的流程图,
图15是示出根据本发明的第二实施方式的在视频解码设备1100处对视频进行解码的方法的流程图,
图16是示出分辨率的自适应确定的另一示例的图,
图17是示出在图15中添加一些操作的情况的流程图,
图18是示出根据本发明的第三实施方式的在视频解码设备1100处对视频进行解码的方法的流程图,
图19是示出在图18的流程图中添加一些操作的情况的流程图。
具体实施方式
下文中,将参照附图详细地描述本发明的一些实施方式。关于附图中的元件的附图标记,尽管元件是在不同的附图中示出,但是如有可能,相同的附图标记指定相同的元件。另外,在对本发明的以下描述中,为了清晰简明起见,将省略对并入本文中的已知功能和配置的详细描述。
图1是示出常见视频编码设备的示意框图。
视频编码设备100可以包括块分离器110、预测器120、减法器130、变换器140、量化器145、编码器150、逆量化器160、逆变换器165、加法器170、滤波器单元180和存储器190。视频编码设备100的每个组件可以按硬件芯片的形式实现,或者可以按软件的形式实现,使得一个或更多个微处理器执行与每个组件对应的软件的功能。
块分离器110可以将构成视频的每个图片分离成多个编码树单元(CTU),然后可以使用树结构递归地分离CTU。树结构中的叶节点可以是编码单元(CU),CU是编码的基本单元。树结构可以是将节点分离成四个下节点的四叉树(QT)结构或者通过将QT结构与节点被分离成两个下节点的二叉树(BT)结构相混合而形成的四叉树加二叉树(QTBT)结构。
在四叉树加二叉树(QTBT)结构中,首先,可以按QT结构分离CTU。然后,可以按BT结构进一步分离QT的叶节点。由块分离器110按QTBT结构分离CTU而生成的分离信息可以被编码器150编码并且可以被发送到解码设备。
在QT中,对指示是否分离对应节点的块的第一标志(QT_split_flag)进行编码。当第一标志为1时,对应节点的块被分离成具有相同大小的四个块,并且当第一标志为0时,对应节点不按QT被进一步分离。
在BT中,对指示是否分离对应节点的块的第二标志(BT_split_flag)进行编码。在BT中可以存在多种分离类型。例如,可能存在将对应节点的块水平分离的类型和将块垂直分离成大小相同的两个块的类型这两种类型。另选地,可能存在将对应节点的块分离成具有不对称形状的两个块的另外的类型。可以通过将对应节点的块分离成大小比为1:3的两个矩形块或者通过将对应节点的块在对角方向上分离来形成该不对称形状。在BT具有多种分离类型的情况下,如果对指示块被分离的第二标志进行编码,则可以另外对指示对应块的分离类型的分离类型信息进行编码。
图2是示出使用QTBT结构的块分离的示例的图。图2的(a)示出了通过QTBT结构分离块的示例,图2的(b)表示了以树结构形式分离的块。在图2中,实线表示按QT结构进行的分离,并且虚线表示按BT结构进行的分离。在图2的(b)中,关于层的符号,不带括号的层表示表示QT的层,并且括号中的层表示BT的层。由虚线表示的BT结构中的数字指示分离类型信息。
在图2中,作为QT的最上层的CTU可以被分离成层1的四个节点。因此,块分离器110可以生成指示CTU被分离的QT_split_flag=1。不再按QT分离与层1的第一节点对应的块。因此,块分离器110生成QT_split_flag=0。
然后,与QT的层1的第一节点对应的块可以进行BT。在该实施方式中,假定BT具有两种分离类型:将节点的块水平分离成相同大小的两个块的类型以及将节点的块垂直分离成相同大小的两个块的类型。QT的层1的第一节点成为BT的根节点“(层0)”。与BT的根节点对应的块被进一步分离成“(层1)”的块,因此块分离器110生成指示按BT分离块的BT_split_flag=1。然后,块分离器210生成指示对应块是被水平分离还是被垂直分离的分离类型信息。在图2中,与BT的根节点对应的块被垂直分离,因此生成指示垂直分离的1作为分离类型信息。根据垂直分离类型进一步分离从根节点分离出的“(层1)”的块当中的第一块,因此生成BT_split_flag=1和分离类型信息1。另一方面,从BT的根节点分离出的(层1)的第二块不再被分离,因此生成BT_split_flag=0。
为了将关于按QTBT结构分离的块的信息用信号高效通知给解码设备,可以另外对以下信息进行编码。这些信息可以被编码为视频的报头信息,例如,可以被编码成序列参数集(SPS)或图片参数集(PPS)。
-CTU size:QTBT的最上层(即,根节点)的块大小;
-MinQTSize:QT中允许的叶节点的最小块大小;
-MaxBTSize:BT中允许的根节点的最大块大小;
-MaxBTDepth:BT中允许的最大深度;
-MinBTSize:BT中允许的叶节点的最小块大小。
QT中的大小与MinQTSize相同的块没有被进一步分离,因此关于与该块对应的QT的分离信息(第一标志)没有被编码。另外,QT中的大小比MaxBTSize大的块没有BT。因此,关于与该块对应的BT的分离信息(第二标志、分离类型信息)没有被编码。当BT的节点的深度达到MaxBTDepth时,节点的块没有被进一步分离,并且关于对应节点的BT的分离信息(第二标志、分离类型信息)没有被编码。另外,BT中的大小与MinBTSize相同的块没有被进一步分离,并且关于BT的分离信息(第二标志、分离类型信息)没有被编码。如此,QT和BT的根节点或叶节点的最大或最小块大小可以被定义在诸如序列参数集(SPS)或图片参数集(PPS)这样的高层处,因此,能够减少指示CTU是否被分离的信息或指示分离类型的信息的编码量。
可以使用相同的QTBT结构来分离CTU的亮度分量和色度分量。然而,本发明不限于此,并且可以分别使用单独的QTBT结构来分离亮度分量和色度分量。例如,在帧内(I)切片的情况下,可以使用不同的QTBT结构来分离亮度分量和色度分量。
下文中,与待编码或解码的CU对应的块被称为“当前块”。
预测器120预测当前块,以生成预测块。预测器120可以包括帧内预测器122和帧间预测器124。
帧内预测器122使用位于包括当前块的当前图片中的当前块周围的像素(参考像素)来预测当前块中的像素。根据预测方向存在多种帧内预测模式,并且根据每种预测模式不同地定义待使用的邻近像素和计算式。
帧间预测器124在比当前图片更早被编码和解码的参考图片内搜索与当前块最相似的块,并且使用搜索到的块生成当前块的预测块。另外,帧间预测器124生成与当前图片中的当前块与参考图片中的预测块之间的位移对应的运动矢量。包括关于用于预测当前块的参考图片的信息和关于运动矢量的信息的运动信息由编码器150编码并被发送到视频解码设备。
可以使用各种方法使对运动信息进行编码所需的比特数最小化。
在一个示例中,当当前块的参考图片和运动矢量与邻近块的参考图片和运动矢量相同时,可以通过对能够用于识别邻近块的信息进行编码来将关于当前块的运动信息发送到解码设备。这种方法被称为“合并模式”。
在合并模式下,帧间预测器124可以从当前块的邻近块中选择预定数目的合并候选块(下文中被称为“合并候选”)。
如图3中所示,当前图片中的与当前块相邻的左块L、上块A、右上块AR、左下块BL和左上块AL中的一些或全部可以被用作用于推导合并候选的邻近块。另外,位于参考图片(其可以与用于预测当前块的参考图片相同或不同)而非当前块所处的当前图片中的块可以被用作合并候选。例如,参考图片中的当前块的共同定位块或与共同定位块相邻的块可以被进一步用作合并候选。
帧间预测器124使用邻近块来构造包括预定数目的合并候选的合并列表。将被用作当前块的运动信息的合并候选在合并列表中所包括的合并候选当中,并且生成用于识别所选择的候选的合并索引信息。所生成的合并索引信息由编码器150编码并被发送到视频解码设备。
作为对运动信息进行编码的另一种方法,可以对运动矢量差值(MVD)进行编码。
在这种方法中,帧间预测器124使用当前块的邻近块来推导当前块的运动矢量的运动矢量预测量(MVP)候选。图3中示出的当前图片中的与当前块邻近的左块L、上块A、右上块AR、左下块BL和左上块AL中的一些或全部可以被用作用于推导MVP候选的邻近块。另外,位于参考图片(其可以与用于预测当前块的参考图片相同或不同)而非当前块所处的当前图片中的块可以被用作用于推导MVP候选的邻近块。例如,可以使用参考图片中的当前块的共同定位块或与共同定位块相邻的块。
帧间预测器124使用邻近块的运动矢量来推导MVP候选,并且使用MVP候选来确定当前块的运动矢量的MVP。帧间预测器通过从当前块的运动矢量中减去MVP来计算运动矢量差值(MVD)。
可以通过将预定义函数(例如,中值或均值的计算)应用于MVP候选来获得MVP。在这种情况下,视频解码设备也知道该预定义函数。由于用于推导MVP候选的邻近块是已经被编码和解码的块,因此视频解码设备已经知道邻近块的运动矢量。因此,视频编码设备100不需要对用于识别MVP候选的信息进行编码。因此,在这种情况下,对关于MVD的信息和关于用于预测当前块的参考图片的信息进行编码。
在另一实施方式中,可以通过选择MVP候选中的任一个来确定MVP。在这种情况下,用于识别所选择的MVP候选的信息附加地与关于MVD的信息和关于用于预测当前块的参考图片的信息一起被编码。
减法器130从当前块中减去由帧内预测器122或帧间预测器124生成的预测块,以生成残余块。
变换器140将残余块中的作为空间域中的值的残余信号变换为频域中的变换系数。变换器140可以使用当前块的大小作为变换单元来变换残余块中的残余信号,或者可以将残余块分离成多个更小的子块并以与子块的大小对应的变换单元变换残余信号。可以存在将残余块分离成较小子块的各种方法。例如,残余块可以被分离成相同预定义大小的子块,或者可以以将残余块作为根节点的四叉树(QT)的方式分离残余块。
量化器145量化从变换器140输出的变换系数并将量化后的变换系数输出到编码器150。
编码器150使用诸如CABAC这样的编码方案对量化后的变换系数进行编码,以生成比特流。编码器150可以对与块分离相关的诸如CTU size、MinQTSize、MaxBTSize、MaxBTDepth、MinBTSize、QT_split_flag、BT_split_flag和分离类型这样的信息进行编码,并且解码设备可以以与编码设备相同的方式分离块。
编码器150对关于指示当前块是经由帧内预测还是帧间预测进行编码的预测类型的信息进行编码,并且根据预测类型对帧内预测信息或帧间预测信息进行编码。
当对当前块进行帧间预测时,编码器150对帧间预测信息的语法元素进行编码。帧间预测模式的语法元素可以包括以下信息。
(1)指示当前块的运动信息是以合并模式编码还是以MVD被编码的模式进行编码的模式信息
(2)运动信息的语法元素
当按合并模式对运动信息进行编码时,编码器150将指示在合并候选当中选择哪一个候选作为用于提取当前块的运动信息的候选的合并索引信息编码为运动信息的语法元素。
另一方面,当按用于对MVD进行编码的模式对运动信息进行编码时,将关于MVD的信息和关于参考图片的信息编码为运动信息的语法元素。当使用从多个MVP候选中选择任一个候选的方法来确定MVP时,运动信息的语法元素还可以包括用于识别所选择的候选的MVP识别信息。
逆量化器160对从量化器145输出的量化后的变换系数进行逆量化,以生成变换系数。逆变换器165将从逆量化器160输出的变换系数从频域变换到空间域,因此重构残余块。
加法器170将重构的残余块和由预测器120生成的预测块相加,以重构当前块。当对具有后续序列的块进行帧内预测时,恢复后的当前块中的像素可以被用作参考像素。
滤波器单元180对重构的块之间的边界进行去块滤波,以便去除由于以块为单元进行编码/解码而产生的块效应并将去块滤波后的块存储在存储器190中。当恢复一个图片中的所有块时,恢复后的图片可以被用作对待后续编码的图片中的块进行帧间预测的参考图片。
作为参考,视频编码设备可以使用跳过模式对当前块进行编码。在跳过模式下,只对当前块的运动信息进行编码,而不对诸如关于残余块的信息这样的关于当前块的任何其它信息进行编码。以上提到的合并索引信息可以被用作当前块的运动信息。当已经在跳过模式下对当前块进行编码时,视频解码设备将由从比特流解码出的合并索引信息指示的合并候选的运动信息设置为当前块的运动信息。在跳过模式下,基于当前块的运动信息预测出的预测块被重构为当前块。
跳过模式与用于对关于残余块的信息以及当前块的运动信息进行编码的合并模式的不同之处可以在于,除了当前块的运动信息之外没有其它信息在跳过模式下被编码。然而,用于在跳过模式和合并模式下对当前块的运动信息进行编码的方法是相同的,因此,所有以下对合并模式的描述可以以相同方式应用于跳过模式。
图4是示出根据本发明的实施方式的视频编码设备400的图。
根据本发明的实施方式的视频编码设备400可以包括分辨率确定器410、视频编码器420和分辨率编码器430。
分辨率确定器410确定用于当前CU的运动估计的运动矢量分辨率。运动矢量分辨率可以是用于表示运动矢量的最小单位。运动矢量分辨率可以指示参考图片中的用于补偿当前CU的运动的分辨率,也就是说,可以指示被内插参考图片的像素。例如,当运动矢量分辨率是1/4像素时,可以将参考图片内插到1/4像素的位置,并且可以测量运动矢量直到1/4像素的单位。这里,用于确定运动矢量的最小单元可以是诸如1/4像素或1/2像素这样的分数像素,或者可以是诸如1个像素、2个像素、3个像素或4个像素这样的整数像素单元。
视频编码器420根据所确定的运动矢量分辨率估计以块为单位(即,以CU为单位)的运动以确定CU的运动矢量,并且使用所确定的运动矢量来预测CU并对CU进行编码。
分辨率编码器430对关于用于预测CU的运动矢量的运动矢量分辨率的信息进行编码。
这里,视频编码器420可以被实施为以上参照图1描述的视频编码设备100。
分辨率确定器410的功能可以被包括在视频编码设备100中的预测器120的以上提到的功能中,并且可以被集成在预测器120中。
分辨率编码器430的功能可以被包括在视频编码设备100的编码器150的以上提到的功能中,并且可以被集成在编码器150中。
图5是例示由帧间预测器124执行的内插和运动补偿过程以及运动矢量的分辨率的图。
图5例示了被存储在存储器190中的参考图片的像素和通过内插参考图片的整数个像素而形成的子像素。如图5中所示,当通过内插滤波器对参考图片的整数个像素A1至F6进行滤波时,例如,可以生成子像素“a”至“s”,并且当执行这种内插时,运动估计和运动补偿的分辨率可以与整数像素分辨率相比增大了2倍、4倍或更多倍。
运动估计是从内插的参考图片中搜索当前CU的最相似部分并输出对应部分的块和指示对应块的运动矢量的过程。该过程中生成的运动矢量由编码器150编码。
在运动估计和运动补偿期间,当预测微动的图像区域时,运动矢量可以以分数像素(1/2像素、1/4像素、1/8像素或1/6像素)为单元表示,并且当预测运动大的图像区域时,可以以一个或更多个整数像素为单元(1个像素、2个像素、3个像素或4个像素为单元)表示运动矢量。
图6是用于比较两个帧的运动程度的图。
在图6中,当就包括在其中的对象的运动方面将参考帧和当前帧进行比较时,在这两个帧之间,与图6中的圆对应的对象微动,因此,可以以分数像素为单元估计对应对象的运动,并且因为在这两个帧之间,与三角形对应的物体具有相对大的运动,所以可以以整数像素为单元来估计运动。
当作为编码目标的CU的帧间预测模式是合并模式时,不直接用信号通知运动信息,而是,用信号通知与从多个运动信息候选中选择的运动信息候选对应的索引值。因此,不发送关于所选择的运动信息候选的运动矢量分辨率的信息。
另一方面,当CU的帧间预测模式是对MVD进行编码的模式时,用信号通知MVD信息,因此,可以根据MVD的分辨率更有效地以分数像素为单元或以整数像素为单元表示MVD信息。
图7是示出根据实施方式的分辨率确定器410的示例的图。
分辨率确定器410可以包括分辨率模式确定器710、替代分辨率确定器720和自适应分辨率确定器730。在一些实施方式中,分辨率确定器410可以以省略分辨率模式确定器710、替代分辨率确定器720和自适应分辨率确定器730中的至少一个组件的形式来实施。
分辨率模式确定器710确定是否激活自适应运动矢量分辨率模式。例如,可以相对于包括在多个CU中的上层图像单元来选择是否自适应地启用运动矢量分辨率。这里,上层图像单元可以是图像序列、图片、切片、CTU等。当不自适应地启用上层图像单元的运动矢量分辨率时(即,当对应模式不是自适应运动矢量分辨率模式时),将默认运动矢量分辨率应用于上层图像单元中的所有CU。也就是说,诸如1/4像素这样的固定默认运动矢量分辨率可以被应用于上层图像单元中的所有CU。这里,默认运动矢量分辨率可以是由视频编码设备和视频解码设备共享的预定的特定运动矢量分辨率,或者可以是由视频编码设备在上层图像区域中确定的值并且被用信号通知给视频解码设备。另一方面,当启用自适应运动矢量分辨率模式以被应用时,下面将描述的替代分辨率确定器720和自适应分辨率确定器730自适应地确定要被帧间预测的每个CU的运动矢量分辨率。
当启用自适应运动矢量分辨率模式以被应用时,替代分辨率确定器720确定除了默认运动矢量分辨率之外的替代分辨率。可以针对序列、图片、切片、CTU和CU中的任一个的每个单元应用替代分辨率。可以为与应用自适应运动矢量分辨率模式的图像单元相同的各个图像单元确定替代分辨率。例如,当以SPS为单元应用自适应运动矢量分辨率模式时,也可以以SPS为单元确定替代分辨率,并且当以PPS或切片为单元应用自适应运动矢量分辨率模式时,也可以以PPS或切片为单元确定替代分辨率。另选地,可以为比应用了自适应运动矢量分辨率模式的图像单元小的每个图像单元(例如,切片、CTU或CU)确定替代分辨率。例如,当以SPS为单元应用自适应运动矢量分辨率模式时,可以以作为比SPS低的层的图像单元的PPS、切片和CTU中的任一个为单元确定替代分辨率,并且当以PPS为单元应用自适应运动矢量分辨率模式时,可以以作为比PPS低的层的图像单元的片和CTU中的任一个为单元确定替代分辨率。另选地,可以以待编码的CU为单元确定替代分辨率。
替代分辨率确定器720可以选择多个运动矢量分辨率候选当中的一个作为替代分辨率。
自适应分辨率确定器730可以确定当前CU的运动矢量分辨率。例如,自适应分辨率确定器730可以将默认运动矢量分辨率和替代分辨率中的任一个确定为当前CU的运动矢量分辨率。
分辨率编码器430可以基于由分辨率确定器410确定的信息来生成关于运动矢量分辨率的信息并且对其进行编码。下文中,在从默认运动矢量分辨率和替代分辨率当中确定了当前CU的运动矢量分辨率的情况下,针对第一实施方式和第二实施方式将分辨率编码器430对运动矢量分辨率信息进行编码的方法示例化。
第一实施方式
在第一实施方式中,用于选择是否在默认运动矢量分辨率和替代分辨率之间自适应地确定运动矢量分辨率的图像单元与用于确定替代分辨率的图像单元相同,并且这两个图像单元均比CU大。
当由分辨率模式确定器710为每个图像序列单元选择了是否自适应地启用运动矢量分辨率时,分辨率编码器430可以将作为指示是否自适应地启用运动矢量分辨率的标志的Adaptive_MV_resolution_enabled_flag(即,第一识别信息)***到序列参数集(SPS)中。
当由分辨率模式确定器710为每个图片单元选择了是否自适应地启用运动矢量分辨率时,分辨率编码器430可以将作为指示是否自适应地启用运动矢量分辨率的标志的Adaptive_MV_resolution_enabled_flag***到图片参数集(PPS)中。
当由分辨率模式确定器710为每个切片(或CTU)单元选择了是否自适应地启用运动矢量分辨率时,分辨率编码器430可以将作为指示是否自适应地启用运动矢量分辨率的标志的Adaptive_MV_resolution_enabled_flag***到切片(或CTU)报头中。
当分辨率模式确定器710选择了自适应地启用运动矢量分辨率的自适应运动矢量分辨率模式时,可以设置Adaptive_MV_resolution_enabled_flag=ON(例如,ON=1)。否则,可以设置Adaptive_MV_resolution_enabled_flag=OFF(例如,在ON=1,OFF=0的情况下)。
根据第一实施方式,在替代分辨率确定器720处确定替代分辨率的单元与设置Adaptive_MV_resolution_enabled_flag的单元相同。在Adaptive_MV_resolution_enabled_flag=ON的情况下,替代分辨率确定器720确定替代分辨率,并且分辨率编码器430生成指示所确定的替代分辨率的alternative_mv_resolution信息。分辨率编码器430对为与用于设置
Adaptive_MV_resolution_enabled_flag的单元相同的各个单元生成的alternative_mv_resolution信息进行编码。
当选择了多个预定义的运动矢量分辨率候选中的一个作为替代分辨率时,分辨率编码器430可以生成用于识别从所述多个预定义的运动矢量分辨率候选中选择的替代分辨率的信息并将其编码为alternative_mv_resolution信息。
当自适应分辨率确定器730确定了将用作当前CU的运动矢量分辨率的默认运动矢量分辨率时,分辨率编码器430可以生成指示默认运动矢量分辨率被用作当前CU的运动矢量分辨率的mv_resolution_flag(即,第二识别信息)。
当自适应分辨率确定器730确定了将被用作当前CU的运动矢量分辨率的并非默认运动矢量分辨率的替代分辨率时,分辨率编码器430可以生成指示替代分辨率被用作当前CU的运动矢量分辨率的mv_resolution_flag并且对其进行编码。
第二实施方式
在第二实施方式中,与用于确定替代分辨率的图像单元相比,用于选择是否在默认运动矢量分辨率和替代分辨率之间自适应地确定运动矢量分辨率的图像单元是更高层的图像单元,而与CU相比,用于确定替代分辨率的图像单元是更高层的图像单元。
第一实施方式是以下的实施方式:用于选择是否在默认运动矢量分辨率和替代分辨率之间自适应地确定运动矢量分辨率的图像单元与用于确定替代分辨率的图像单元相同,并且这两个图像单元均比CU大。
当由分辨率模式确定器710为每个图像序列单元选择了是否自适应地启用运动矢量分辨率时,分辨率编码器430可以将作为指示是否自适应地启用运动矢量分辨率的标志的Adaptive_MV_resolution_enabled_flag***到SPS中。
当由分辨率模式确定器710为每个图片单元选择了是否自适应地启用运动矢量分辨率时,分辨率编码器430可以将作为指示是否自适应地启用运动矢量分辨率的标志的Adaptive_MV_resolution_enabled_flag***到PPS中。
这里,当分辨率模式确定器710选择了自适应地启用运动矢量分辨率的自适应运动矢量分辨率模式时,可以设置Adaptive_MV_resolution_enabled_flag=ON。否则,可以设置Adaptive_MV_resolution_enabled_flag=OFF。
在替代分辨率确定器720处确定替代分辨率的单元可以被确定为比设置Adaptive_MV_resolution_enabled_flag的图像单元小并且比CU大的图像单元(例如,切片或CTU)。在这种情况下,分辨率编码器430可以生成指示每个切片或CTU的替代分辨率的alternative_mv_resolution信息并且对其进行编码。
当选择了多个预定义的运动矢量分辨率候选中的一个作为替代分辨率时,分辨率编码器430可以生成用于识别从所述多个预定义的运动矢量分辨率候选中选择的替代分辨率的信息并将其编码为alternative_mv_resolution信息。
当alternative_mv_resolution信息的值指示0时,不自适应地启用对应切片或CTU中的所有CU的运动矢量分辨率。
当自适应地启用运动矢量分辨率时,分辨率编码器430可以为每个切片或CTU生成作为指示是否使用替代分辨率的标志的Alternative_enabled_flag信息,并且可以对Alternative_enabled_flag信息进行编码。
这里,当使用替代分辨率时,可以为每个切片或CTU生成指示替代分辨率的alternative_mv_resolution信息并且对其进行编码。
当自适应分辨率确定器730确定使用默认运动矢量分辨率作为当前CU的运动矢量分辨率时,分辨率编码器430可以生成指示默认运动矢量分辨率被用作当前CU的运动矢量分辨率的mv_resolution_flag并且对其进行编码。
当自适应分辨率确定器730确定使用并非默认运动矢量分辨率的替代分辨率作为当前CU的运动矢量分辨率时,分辨率编码器430可以生成指示替代分辨率被用作当前CU的运动矢量分辨率的mv_resolution_flag并且可以对关于mv_resolution_flag的信息进行编码。
第三实施方式
在第二实施方式中,用于在默认运动矢量分辨率和替代分辨率之间自适应地确定运动矢量分辨率的图像单元是比用于确定替代分辨率的图像单元更高的层的图像单元,并且用于确定替代分辨率的图像单元是CU单元。
当由分辨率模式确定器710为每个图像序列单元、每个图片单元、每个切片单元或每个CTU单元选择了是否自适应地启用运动矢量分辨率时,分辨率编码器430可以将作为指示是否自适应地启用运动矢量分辨率的标志的Adaptive_MV_resolution_enabled_flag***到SPS、PPS、切片报头或CTU报头中。
如同第一实施方式和第二实施方式中一样,根据是否自适应地启用运动矢量分辨率的选择结果,可以将Adaptive_MV_resolution_enabled_flag设置为ON或OFF。
当分辨率模式确定器710选择了自适应地启用运动矢量分辨率的自适应运动矢量分辨率模式时,如果选择默认运动矢量分辨率作为当前CU的运动矢量分辨率,则分辨率编码器430可以生成指示默认运动矢量分辨率被用作当前CU的运动矢量分辨率的mv_resolution_flag并且对其进行编码。
根据第三实施方式,用于由替代分辨率确定器720确定替代分辨率的单元可以是与用于确定运动矢量分辨率的单元相同的CU单元。
当使用并非默认运动矢量分辨率的替代分辨率作为当前CU的运动矢量分辨率时,分辨率编码器430可以生成指示替代分辨率被用作当前CU的运动矢量分辨率的mv_resolution_flag,可以生成关于由替代分辨率确定器720确定的替代分辨率的alternative_mv_resolution信息,并且可以对关于mv_resolution_flag和alternative_mv_resolution的信息进行编码。
当选择了多个预定义的运动矢量分辨率候选中的一个作为替代分辨率时,分辨率编码器430可以将用于识别从所述多个预定义的运动矢量分辨率候选中选择的替代分辨率的信息编码为alternative_mv_resolution信息。
自适应分辨率确定器730可以选择多个运动矢量分辨率候选中的任一个作为当前CU的运动矢量分辨率,而不是选择默认运动矢量分辨率和替代分辨率中的任一个作为当前CU的运动矢量分辨率。在这种情况下,为了对所确定的当前CU的运动矢量分辨率信息进行有效编码,分辨率编码器430可以将当前CU的运动矢量分辨率信息编码为当前CU的运动矢量分辨率与替代分辨率之间的差值或者当前CU的运动矢量分辨率与先前CU的运动矢量分辨率之间的差值,而不是对当前CU的运动矢量分辨率本身进行编码。
图8是示出在当前CU的运动矢量分辨率信息被编码为分辨率差值时的分辨率编码器430的示例的图。
如图8中所示,分辨率编码器430可以包括编码信息生成器810和分辨率差值计算器820。下面将针对第四实施方式描述详细操作。
第四实施方式
当分辨率模式确定器710以序列、图片、切片或CTU为单位自适应地启用运动矢量分辨率时,编码信息生成器810可以针对作为更高的图像单元的每个序列、每个图片、每个切片单元或每个CTU单元将Adaptive_MV_resolution_enabled_flag设置为ON。
编码信息生成器810可以针对更高的图像单元中的每个CU检查默认运动矢量分辨率是否被用作对应CU的运动矢量分辨率。当默认运动矢量分辨率被用作当前CU的运动矢量分辨率时,编码信息生成器810可以将与当前CU对应的mv_resolution_flag设置为OFF。当默认运动矢量分辨率未被用作当前CU的运动矢量分辨率并且从多个运动矢量分辨率候选中选择的任一个被用作当前CU的运动矢量分辨率时,编码信息生成器810可以将与当前CU对应的mv_resolution_flag设置为ON。
当替代分辨率确定器720确定与用于设置Adaptive_MV_resolution_enabled_flag的单元相同的各个图像单元的替代分辨率值时,编码信息生成器810可以将所确定的替代分辨率编码为与用于设置Adaptive_MV_resolution_enabled_flag的单元相同的各个图像单元的alternative_mv_resolution信息。
如上所述,用于确定替代分辨率的单元不限于针对与用于设置Adaptive_MV_resolution_enabled_flag的单元相同的各个图像单元进行确定,而是可以针对每个CU单元进行确定或者可以针对比用于设置Adaptive_MV_resolution_enabled_flag的单元小且比CU单元大的每个图像单元进行确定,但是以上已经给出了对其的描述,因此,省略对其的详细描述。
当从多个运动矢量分辨率候选中选择的任一个被用作当前CU的运动矢量分辨率时,分辨率差值计算器820可以计算作为当前CU的运动矢量分辨率与先前CU的运动矢量分辨率之间的差值的分辨率差值(例如,通过从当前CU的运动矢量分辨率中减去先前CU的运动矢量分辨率而得到的值)作为被包括在关于当前CU的运动矢量分辨率的信息中的元素。
然而,当当前CU是上层图像单元中的CU当中的按编码顺序的第一CU时,分辨率差值计算器820可以将当前CU的运动矢量分辨率确定为分辨率差值信息,或者可以将由替代分辨率确定器720确定的替代分辨率确定为分辨率差值信息。
当从多个运动矢量分辨率候选中选择的任一个被用作当前CU的运动矢量分辨率时,分辨率差值计算器820可以计算作为当前CU的运动矢量分辨率与alternative_mv_resolution之间的差值的分辨率差值(例如,通过从当前CU的运动矢量分辨率中减去alternative_mv_resolution而得到的值)作为被包括在关于当前CU的运动矢量分辨率的信息中的元素。
由分辨率差值计算器820确定的分辨率差值信息可以被存储为mv_resolution_delta。
当当前CU的运动矢量分辨率被描述为mv_resolution_delta值时,不需要生成替代分辨率,因此,可以省略替代分辨率确定器720的操作。
编码信息生成器810可以基于分辨率模式确定器710和自适应分辨率确定器730的结果来生成关于当前CU的运动矢量分辨率的信息并且对其进行编码。编码信息生成器810可以根据分辨率模式确定器710是否自适应地启用包括在上层图像单元中的CU的运动矢量分辨率来将Adaptive_MV_resolution_enabled_flag编码为ON或OFF。
当Adaptive_MV_resolution_enabled_flag为ON时,自适应分辨率确定器730选择是否将默认运动矢量分辨率用作当前CU的运动矢量分辨率,或者将从多个运动矢量分辨率候选中选择的任一个确定为当前CU的运动矢量分辨率。编码信息生成器810根据选择对mv_resolution_flag进行编码。当Adaptive_MV_resolution_enabled_flag为OFF时,编码信息生成器810不对mv_resolution_flag进行编码。
当mv_resolution_flag为ON时(即,当从多个运动矢量分辨率候选中选择的任一个被用作当前CU的运动矢量分辨率时),编码信息生成器810可以对作为关于由分辨率差值计算器820计算的分辨率差值的信息的mv_resolution_delta进行编码。当mv_resolution_flag为OFF时(即,当默认运动矢量分辨率被用作当前CU的运动矢量分辨率时),编码信息生成器810可以不对mv_resolution_delta进行编码。
分辨率编码器430可以将分辨率差值表示为经由除法运算得到的分辨率比例因子而非经由减法运算“-”得到的值。此外,比例因子可以在对数尺度上表示,并且将针对第五实施方式描述对其的详细操作。
第五实施方式
图9是示出将当前CU的运动矢量分辨率表示为分辨率比例因子而非分辨率差值的分辨率编码器430的示例的图。
如图9中所示,分辨率编码器430可以包括编码信息生成器910和分辨率比例信息生成器920。图9的分辨率比例信息生成器920可以取代图8的分辨率差值计算器820,并且图9的编码信息生成器910可以取代图8的编码信息生成器810。
分辨率差值计算器820和分辨率比例信息生成器920彼此的不同之处在于,分辨率差值计算器820计算分辨率差值并生成mv_resolution_delta作为关于分辨率差值的信息,而分辨率比例信息生成器920计算分辨率比例因子并生成mv_resolution_scale作为关于分辨率比例因子的信息。
例如,分辨率比例信息生成器920可以计算当前CU的运动矢量分辨率与先前CU的运动矢量分辨率之间的比率(例如,通过将当前CU的运动矢量分辨率除以先前CU的运动矢量分辨率而得到的值)作为被包括在关于当前CU的运动矢量分辨率的信息中的元素。
然而,当当前CU是上层图像单元中的CU当中的按编码顺序的第一CU时,分辨率比例信息生成器920可以将当前CU的运动矢量分辨率确定为分辨率比例因子信息,或者可以将由替代分辨率确定器720确定的替代分辨率确定为分辨率比例因子信息。
分辨率比例信息生成器920可以计算作为当前CU的运动矢量分辨率与alternative_mv_resolution之间的比率的分辨率比例因子(即,通过将当前CU的运动矢量分辨率除以alternative_mv_resolution而得到的值)作为被包括在关于当前CU的运动矢量分辨率的信息中的元素。
由分辨率比例信息生成器920确定的分辨率比例因子信息可以被存储为mv_resolution_scale。
除了图8的编码信息生成器810对mv_resolution_delta进行编码,而代替地图9的编码信息生成器910对关于分辨率比例因子的信息(mv_resolution_scale)进行编码之外,图8的编码信息生成器810的其余操作与图9的编码信息生成器910的其余操作可以是相同的。编码信息生成器910对关于分辨率比例因子的信息(mv_resolution_scale)进行编码。除了对mv_resolution_scale而非mv_resolution_delta进行编码之外,编码信息生成器910的操作可以与图8的编码信息生成器810的操作相同。
在视频编码设备的以上实施方式中,用于确定运动矢量分辨率的块的单元被描述为CU,但是不限于此,并且在一些实施方式中,可以是CTU/。当用于确定运动矢量分辨率的块的单元是CTU时,包括在CTU中的所有CU都可以具有相同的运动矢量分辨率值。另外,在对应的CTU中包括的CU当中的按mvp模式编码的所有CU都可以具有与对应CTU的运动矢量分辨率相同的运动矢量分辨率值。
下文中,将描述视频解码设备。
图10是常见视频解码设备的示意图。
视频解码设备1000可以包括解码器1010、逆量化器1020、逆变换器1030、预测器1040、加法器1050、滤波器单元1060和存储器1070。如同图1的视频编码设备中一样,视频编码设备的每个组件可以按硬件芯片的形式实现或者可以按软件的形式实现,使得微处理器执行与每个组件对应的软件的功能。
解码器1010对从视频编码设备接收的比特流进行解码,由此提取与块分离相关的信息以确定待解码的当前块并提取重构当前块所需的预测信息、关于残余块的信息等。
解码器1010可以从序列参数集(SPS)或图片参数集(PPS)中提取关于CTU的大小的信息以确定CTU的大小,并且可以将图片分离成具有确定大小的CTU。另外,解码器1010可以将CTU设置为树结构的最上层(即,根节点),并且可以提取CTU的分离信息,以使用树结构来分离CTU。例如,当使用QTBT结构分离CTU时,可以提取与QT的分离相关的第一标志(QT_split_flag),然后,可以将每个节点分离成下层的四个节点。另外,至于与QT的叶节点对应的节点,可以提取与BT的分离相关的第二标志(BT_split_flag)和分离类型信息,并且可以在BT结构中分离对应的叶节点。
作为图2的块分离结构的示例,提取与QTBT结构的最上层的节点对应的QT_split_flag。所提取的QT_split_flag的值为1,因此最上层的节点被分离成下层(QT的层1)的四个节点。另外,提取层1的第一节点的QT_split_flag。所提取的QT_split_flag的值为0,因此,不再将层1的第一节点分离成QT结构。
由于QT的层1的第一节点是QT的叶节点,因此该操作是在采用QT的层1的第一节点作为BT的根节点的BT之前进行的。提取与BT的根节点即“(层0)”对应的BT_split_flag。由于BT_split_flag为1,因此BT的根节点被分离成“(层1)”的两个节点。由于BT的根节点被分离,因此提取指示与BT的根节点对应的块是被垂直分离还是被水平分类的分离类型信息。由于分离类型信息为1,因此与BT的根节点对应的块被垂直分离。然后,解码器1010从BT的根节点提取被分离的“(层1)”的第一节点的BT_split_flag。由于BT_split_flag为1,因此提取关于“(层1)”的第一节点的块的分离类型信息。由于关于“(层1)”的第一节点的块的分离类型信息为1,因此“(层1)”的第一节点的块被垂直分离。然后,提取从BT的根节点分离出的“(层1)”的第二节点的BT_split_flag。由于BT_split_flag为0,因此节点没有按BT被进一步分离。
以这种方式,解码器1010递归地提取QT_split_flag并且按QT结构分离CTU。解码器提取QT的叶节点的BT_split_flag。当BT_split_flag指示分离时,提取分离类型信息。以这种方式,解码器1510可以识别CTU被分离成如图2A中所示的结构。
当在SPS或PPS中附加地定义诸如MinQTSize、MaxBTSize、MaxBTDepth和MinBTSize这样的信息时,解码器1010可以提取附加信息并且可以使用附加信息来提取关于QT和BT的分离信息。
例如,QT中的大小与MinQTSize相同的块没有被进一步分离。因此,解码器1010并没有从比特流中提取到与对应块的QT相关的分离信息(QT_split_flag)(即,在比特流中不存在对应块的QT_split_flag)并且将该值自动地设置成0。另外,在QT中,大小比MaxBTSize大的块不具有BT。因此,解码器1510不在QT中提取具有比MaxBTSize大的块的叶节点的BT分离标志,并且自动地将BT分离标志设置为0。另外,当BT的对应节点的深度达到MaxBTDepth时,节点的块没有被进一步分离。因此,不从比特流中提取节点的BT分离标志,并且将该BT分离标志的值自动地设置为0。另外,BT中的大小与MinBTSize相同的块没有被进一步分离。因此,解码器1510没有从比特流中提取到大小与MinBTSize相同的块的BT分离标志,并且将标志的值自动地设置为0。
当通过分离树结构来确定待解码的当前块时,解码器1010提取关于指示当前块是被帧内预测还是被帧间预测的预测类型的信息。
当预测类型信息指示帧间预测时,解码器1010可以提取帧内预测信息的语法元素。首先,提取指示多种编码模式当中的关于当前块的运动信息被编码时采用的模式的模式信息。这里,多种编码模式可以包括合并模式和运动矢量差值(MVD)编码模式。当模式信息指示合并模式时,解码器1010提取指示合并候选当中的从其推导出当前块的运动矢量的候选的合并索引信息作为运动信息的语法元素。另一方面,当模式信息指示MVD编码模式时,解码器1010提取关于MVD的信息和关于由当前块的运动矢量参考的参考图片的信息作为运动矢量的语法元素。当视频编码设备使用多个运动矢量预测量(MVP)候选中的任一个作为当前块的MVP时,MVP识别信息可以被包括在比特流中。因此,在这种情况下,提取MVP识别信息以及关于MVD的信息和关于参考图片的信息作为运动矢量的语法元素。
解码器1010提取关于量化后的当前块的变换系数的信息作为关于残余信号的信息。
逆量化器1020对量化后的变换系数进行逆量化,并且逆变换器1030将逆量化后的变换系数从频域逆变换到空间域以重构残余信号,由此产生当前块的残余块。
预测器1040可以包括帧内预测器1042和帧间预测器1044。在当前块的预测类型是帧内预测的情况下,帧内预测器1042被启动,并且在当前块的预测类型是帧间预测的情况下,帧间预测器1044被启动。
帧内预测器1042根据从解码器1010提取的帧内预测模式的语法元素来确定多种帧内预测模式当中的当前块的帧内预测模式,并且根据该帧内预测模式使用当前块的邻近参考像素来预测当前块。
帧间预测器1044使用从解码器1010提取的帧间预测信息的语法元素来确定关于当前块的运动信息,并且使用所确定的运动信息来预测当前块。
首先,帧间预测器1044可以检查从解码器1010提取的帧间预测的模式信息。当模式信息指示合并模式时,帧间预测器1044使用当前块的邻近块来构造包括预定数目的合并候选的合并列表。帧间预测器1044构造合并列表的方法与视频编码设备的帧间预测器124的方法相同。另外,使用从解码器1010接收的合并索引信息,在合并列表中的合并候选当中选择一个合并候选。所选择的合并候选的运动信息(即,合并候选的运动矢量和参考图片)被设置为当前块的运动矢量和参考图片。
另一方面,当模式信息指示MVD编码模式时,帧间预测器1044使用当前块的邻近块的运动矢量来推导MVP候选,并且使用MVP候选来确定当前块的运动矢量的MVP。由帧间预测器1044推导MVP候选的方法与视频编码设备的帧间预测器124的相同。当视频编码设备使用多个MVP候选中的任一个作为当前块的MVP时,运动信息的语法元素包括MVP识别信息。因此,在这种情况下,帧间预测器1044可以从MVP候选中选择MVP识别信息所指示的候选作为当前块的MVP。然而,当视频编码设备通过将预定义函数应用于多个MVP候选来确定MVP时,帧间预测器1044可以应用与视频编码设备相同的功能来确定MVP。一旦确定了当前块的MVP,帧间预测器1044就将MVP和从解码器1010提取的MVD相加,以推导当前块的运动矢量。另外,帧间预测器1044使用关于从解码器1010提取的参考图片的信息来确定由当前块的运动矢量参考的参考图片。
当在合并模式或MVD编码模式下确定当前块的运动矢量和参考图片时,帧间预测器1044使用参考图片中的由运动矢量所指示的位置处的块来生成当前块的预测块。
加法器1050将从逆变换器输出的残余块与从帧间预测器或帧内预测器输出的预测块相加,以重构当前块。重构的当前块中的像素可以被用作用于对稍后待解码的块进行帧内预测的参考像素。
滤波器单元1060对重构的块之间的边界进行去块滤波,以便去除由逐块编码引起的块效应并将去块滤波后的块存储在存储器1070中。当重构了一个图片中的所有块时,重构的图片可以被用作对后续待编码图片中的块进行帧间预测的参考图片。
图11是示出根据本发明的实施方式的视频解码设备1100的图。
根据本发明的实施方式的视频解码设备1100可以包括运动矢量分辨率解码器1110和视频解码器1120。
运动矢量分辨率解码器1110从比特流中解析关于当前CU的运动矢量分辨率的信息,并且基于所解析的运动矢量分辨率的信息来确定用于估计当前CU的运动的运动矢量分辨率。
视频解码器1120根据当前CU的运动矢量分辨率使用所确定的当前CU的运动矢量来预测当前CU并且对其进行解码。
这里,视频解码器1120可以被实现为以上参照图10描述的视频解码设备1000。
运动矢量分辨率解码器1110的功能可以被包括在视频解码设备1000中的解码器1010的以上提到的功能中,并且可以被集成在解码器1010中。
图12是示出根据本发明的第一实施方式的视频解码设备1100对视频进行解码的方法的流程图。
如图12中所示,在根据本发明的第一实施方式的视频解码设备1100中,运动矢量分辨率解码器1110从比特流中解析Adaptive_MV_resolution_enabled_flag(即,第一识别信息)(S1210)。Adaptive_MV_resolution_enabled_flag意指指示运动矢量分辨率是否被自适应启用的识别信息,并且可以是在作为上层图像单元的图像序列、图片、切片和CTU当中的至少一个图像单元中确定的。可以从图像序列、图片、切片和CTU的至少一个上层图像单元的比特流报头中解析Adaptive_MV_resolution_enabled_flag。
在解析Adaptive_MV_resolution_enabled_flag之后,运动矢量分辨率解码器后1110检查Adaptive_MV_resolution_enabled_flag是指示上层图像单元中的CU的运动矢量分辨率被自适应启用(即,Adaptive_MV_resolution_enabled_flag为ON)还是指示默认运动矢量分辨率被用作上层图像单元中的CU的运动矢量分辨率(即,Adaptive_MV_resolution_enabled_flag为OFF)(S1220)。
作为操作S1220的检查结果,当Adaptive_MV_resolution_enabled_flag为ON时,运动矢量分辨率解码器1110从比特流中解析作为关于替代分辨率的信息的alternative_mv_resolution(S1230)。这里,可以针对与用于Adaptive_MV_resolution_enabled_flag的图像单元相同的各个图像单元解析alternative_mv_resolution,或者可以从比用于Adaptive_MV_resolution_enabled_flag的图像单元小的每个图像单元的比特流中解析alternative_mv_resolution。另外,可以针对用于Adaptive_MV_resolution_enabled_flag的图像单元中的每个CU解析alternative_mv_resolution。
在操作S1230之后,运动矢量分辨率解码器1110根据当前CU的编码模式是否是用于对MVD进行编码的模式来确定作为编码目标的当前CU的运动矢量分辨率(S1240)。当在针对每个上层图像单元的比特流中发送关于Adaptive_MV_resolution_enabled_flag和替代分辨率的信息时,还可以针对上层图像单元中的每个CU自适应地确定运动矢量分辨率。
当针对图像序列和图片中的一个的每个上层图像单元发送关于Adaptive_MV_resolution_enabled_flag的信息并且针对比上层图像单元小的图像单元的每个切片(或CTU)的比特流中发送alternative_mv_resolution时,还可以针对切片(或CTU)中的每个CU自适应地确定运动矢量分辨率。
当在操作S1220中检查到Adaptive_MV_resolution_enabled_flag为OFF时,运动矢量分辨率解码器1110执行根据当前CU的编码模式是否是用于对MVD进行编码的模式来确定当前CU的运动矢量分辨率的操作S1240。
这里,操作S1240可以包括操作S1241至S1246。
在操作S1230之后,运动矢量分辨率解码器1110可以从比特流解析当前CU的编码模式,并且可以检查当前CU的编码模式是否是使用MVP对MVD进行编码的模式(即,mvp模式)(S1241)。
当在操作S1241中检查到当前CU的编码模式是mvp模式时,运动矢量分辨率解码器1110可以检查Adaptive_MV_resolution_enabled_flag是指示上层图像单元中的CU的运动矢量分辨率被自适应启用(即,Adaptive_MV_resolution_enabled_flag为ON)还是指示默认运动矢量分辨率被用作上层图像单元中的CU的运动矢量分辨率(即,Adaptive_MV_resolution_enabled_flag为OFF)(S1242)。
当在操作S1242中检查到Adaptive_MV_resolution_enabled_flag为ON时,运动矢量分辨率解码器1110可以从比特流中解析指示作为默认运动矢量分辨率和替代分辨率中的哪一个被用作当前CU的运动矢量分辨率的识别信息的mv_resolution_flag(即,第二识别信息)(S1243),然后可以执行S1244的后续操作。
这里,虽然mv_resolution_flag被描述为以CU为单位发送,但是在一些实施方式中,mv_resolution_flag可以以CTU为单位进行解析,可以针对对应CTU中的每个CU检查CU是否是mvp模式,并且当对应CU是mvp模式时,可以执行S1244的后续操作。
在解析出mv_resolution_flag之后,运动矢量分辨率解码器1110可以检查mv_resolution_flag的值(S1244)。
当在操作S1244中检查到mv_resolution_flag指示替代分辨率被用作当前CU的运动矢量分辨率时(即,当mv_resolution_flag为ON时),运动矢量分辨率解码器1110可以将替代分辨率确定为当前CU的运动矢量分辨率(S1245)。
当在操作S1244中检查到mv_resolution_flag指示默认运动矢量分辨率被用作当前CU的运动矢量分辨率时(即,当mv_resolution_flag为OFF时),运动矢量分辨率解码器1110可以确定默认运动矢量分辨率是当前CU的运动矢量分辨率(S1246)。
当在操作S1242中检查到Adaptive_MV_resolution_enabled_flag为OFF时,运动矢量分辨率解码器1110可以将默认运动矢量分辨率确定为当前CU的运动矢量分辨率(S1246)。
例如,当指示是否自适应地启用运动矢量分辨率的Adaptive_MV_resolution_enabled_flag和指示替代分辨率的alternative_mv_resolution语法位于SPS中时,可以针对每个图像序列单元确定是否应用根据本发明的方法。
例如,当SPS中的Adaptive_MV_resolution_enabled_flag为ON时,SPS的alternative_mv_resolution值(即,替代分辨率)为4个像素,并且默认运动矢量分辨率为1/4像素,参照SPS的图像序列中的作为编码目标的所有CU的运动矢量分辨率可以被确定为1/4像素或4像素。也就是说,当作为当前CU的报头信息的mv_resolution_flag为OFF时,当前CU的运动矢量分辨率可以被确定为与默认运动矢量分辨率对应的1/4像素,并且当当前CU的mv_resolution_flag为ON时,当前CU的运动矢量分辨率可以被确定为与替代分辨率对应的4像素。
当Adaptive_MV_resolution_enabled_flag和alternative_mv_resolution语法位于在PPS(或切片报头)中时,可以以图片为单元(或以切片为单位)确定是否应用了根据本发明的方法。
例如,当PPS中的Adaptive_MV_resolution_enabled_flag为ON,PPS的alternative_mv_resolution值(即,替代分辨率)为4像素并且默认运动矢量分辨率为1/4像素时,参照PPS(或切片报头)的图片(或切片)中的作为编码目标的所有CU的运动矢量分辨率可以被确定为1/4像素或4像素。也就是说,当作为当前CU的报头信息的mv_resolution_flag为OFF时,当前CU的运动矢量分辨率可以被确定为与默认运动矢量分辨率对应的1/4像素,并且当当前CU的mv_resolution_flag为ON时,当前CU的运动矢量分辨率可以被确定为与替代分辨率对应的4像素。
当SPS(或PPS)中Adaptive_MV_resolution_enabled_flag为ON,作为比图像序列(或图片)小的图像单元的切片(或CTU)的报头的alternative_mv_resolution值为4像素并且默认运动矢量分辨率为1/4像素时,对应切片(或CTU)中的作为编码目标的所有CU的运动矢量分辨率可以被确定为与默认运动矢量分辨率对应的1/4像素或与替代分辨率对应的4像素,因此可以以1/4像素或4像素的分辨率表示当前CU的运动矢量。也就是说,当作为当前CU的报头信息的mv_resolution_flag为0(即,OFF)时,以1/4像素的分辨率表示当前CU的运动矢量,并且当当前CU的mv_resolution_flag为ON时,以4像素的分辨率表示当前CU的运动矢量。
当SPS(或PPS)中Adaptive_MV_resolution_enabled_flag为ON,作为比图像序列(或图片)小的图像单元的切片(或CTU)的报头的alternative_mv_resolution值为0并且默认运动矢量分辨率为1/4像素时,对应切片(或CTU)中的作为编码目标的所有CU的运动矢量分辨率可以被确定为与默认运动矢量分辨率对应的1/4像素。这里,可能不需要作为CU的报头信息的mv_resolution_flag。
当Adaptive_MV_resolution_enabled_flag在SPS(或PPS)中可以为ON时,可以根据比图像序列(或图片)小的图像单元的切片(或CTU)的报头的Alternative_enabled_flag的值来确定对应切片(或CTU)中的作为编码目标的所有CU的运动矢量分辨率。例如,当Alternative_enabled_flag为OFF并且默认运动矢量分辨率为1/4像素时,可以以与默认运动矢量分辨率对应的1/4像素表示对应切片(或CTU)中的所有CU的运动矢量分辨率,并且可能不需要mv_resolution_flag,mv_resolution_flag是作为编码目标的CU的报头信息。另一方面,当Alternative_enabled_flag为ON,alternative_mv_resolution值为4像素并且默认运动矢量分辨率为1/4像素时,对应切片(或CTU)中的所有CU的运动矢量分辨率可以被确定为与默认运动矢量分辨率对应的1/4像素或与替代分辨率对应的4像素。也就是说,当当前CU的mv_resolution_flag为0(即,OFF)时,可以以1/4像素的分辨率表示当前CU的运动矢量,而当当前CU的mv_resolution_flag为ON时,可以以4像素的分辨率表示当前CU的运动矢量。
图13是示出分辨率的自适应确定的示例的图。
当SPS报头的Adaptive_MV_resolution_enabled_flag为ON,切片#0的报头的alternative_mv_resolution为2像素,并且默认运动矢量分辨率(默认MV分辨率)为1/4像素时,包括对应切片#0中的圆的当前CU的运动矢量分辨率可以被确定为与默认运动矢量分辨率对应的1/4像素或与替代分辨率对应的2像素。在这种情况下,当作为当前CU的报头信息的mv_resolution_flag为OFF时,以与默认运动矢量分辨率对应的1/4像素单位表示当前CU的运动矢量,而当当前CU的mv_resolution_flag为ON时,以与alternative_mv_resolution对应的2像素单位表示当前CU的运动矢量。
当切片#1的报头的alternative_mv_resolution为4像素时,包括切片#1中的三角形的当前CU的运动矢量分辨率可以被确定为与默认运动矢量分辨率对应的1/4像素或与替代分辨率对应的4像素。在这种情况下,当作为当前CU的报头信息的mv_resolution_flag为OFF时,以与默认运动矢量分辨率对应的1/4像素单位表示当前CU的运动矢量,而当当前CU的mv_resolution_flag为ON时,以与替代分辨率对应的4像素单位表示当前CU的运动矢量。
在操作S1245或S1246之后,视频解码器1120可以使用MVP来推导当前块的运动矢量(S1250)。
这里,操作S1250可以包括操作S1251至S1255。
在操作S1251中,视频解码器1120可以推导MVP候选,并且可以从比特流中解析用于从MVP候选中识别当前CU的MVP的信息(mvp_idx)。这里,用于MVP候选的邻近块可以使用图3中示出的当前图片中的与当前CU相邻的左块L、上块A、右上块AR、左下块BL和左上块AL中的一些或全部。
视频解码器1120可以检查与mvp_idx对应的块的运动矢量分辨率是否与当前CU的运动矢量分辨率相同(S1252)。
当检查到与mvp_idx对应的块的运动矢量分辨率与当前CU的运动矢量分辨率相同时,视频解码器1120可以从比特流对MVD进行解码(S1254)。当检查到与mvp_idx对应的块的运动矢量分辨率与当前CU的运动矢量分辨率不同时,视频解码器1120可以缩放当前块的MVP,使得MVP的分辨率与当前CU的运动矢量分辨率相同(S1253),并且可以从比特流对MVD进行解码(S1254)。
视频解码器1120将从比特流解析的MVD与MVP相加,以生成当前CU的运动矢量(S1255)。
例如,当当前CU的运动矢量分辨率为2像素,与mvp_idx对应的块的运动矢量分辨率为1/4像素,并且与mvp_idx对应的块的运动矢量被设置为3时,与mvp_idx对应的块的实际运动矢量对应于0.75。当根据与当前CU的运动矢量分辨率对应的2像素运动矢量分辨率来执行缩放时,与mvp_idx对应的块的实际运动矢量被转换为0。可以根据下面的式1表示此转换式。
[式1]
MV'=Round(MV×neighbor_MV_Resol/curr_MV_Resol)
这里,MV表示与mvp_idx对应的块的运动矢量,neighboring_MV_resol表示与mvp_idx对应的块的运动矢量分辨率,current_MV_resol表示当前CU的运动矢量分辨率,MV'是缩放的运动矢量,并且Round表示四舍五入运算。
对于运动矢量的x分量和y分量中的每一个,Adaptive_MV_resolution_enabled_flag、mv_resolution_flag、alternative_mv_resolution等可以各自是单独的,并且还可以根据下面的式2针对x分量和y分量中的每一个分别计算CU的运动矢量分辨率。
[式2]
MVx'=Round(MVx×neighbor_MVx_Resol/curr_MVx_Resol)
MVy'=Round(MVy×neighbor_MVy_Resol/curr_MVy_Resol)
作为操作S1241的检查结果,当检查到当前CU的编码模式不是mvp模式(例如,合并模式)时,视频解码器1120可以从时间或空间邻近块的运动矢量(即,合并候选)推导当前CU的运动矢量(S1260)。
这里,操作S1260可以包括操作S1261至S1264。
作为操作S1241的检查结果,当检查到当前CU的编码模式不是mvp模式时,视频解码器1120从比特流中解析用于从当前CU的合并候选中识别当前CU的运动矢量的信息(candid_idx)(S1261)。当前CU的合并候选可以使用图3中示出的当前图片中的与当前CU相邻的左块L、上块A、右上块AR、左下块BL和左上块AL中的一些或全部。另外,位于参考图片(其与用于预测当前CU的参考图片相同或不同)而非当前块所处的当前图片中的块可以被用作运动矢量候选(即,合并候选)。例如,参考图片中的当前块的共同定位块或与共同定位块相邻的块可以被进一步用作合并候选。
视频解码器1120可以检查与从比特流中解析的candid_idx对应的块的运动矢量分辨率是否与为合并模式预定义的运动矢量分辨率相同(S1262)。这里,为合并模式预定义的运动矢量分辨率可以是在图像序列、图片和切片的任一个单元中定义的运动矢量分辨率。
当与candid_idx对应的块的运动矢量分辨率与为合并模式预定义的运动矢量分辨率相同时,视频解码器1120可以将与candid_idx对应的块的运动矢量设置为当前CU的运动矢量(S1264)。当与candid_idx对应的块的运动矢量分辨率与预定义的运动矢量分辨率不同时,视频解码器1120可以缩放与candid_idx对应的块的运动矢量,使得与candid_idx对应的块的运动矢量与预定义的运动矢量分辨率相同(S1263),并且可以将缩放后的运动矢量设置为当前CU的运动矢量(S1264)。
作为参考,可以针对每个CU顺序且重复地执行操作S1240、S1250和S1260。
图14是示出在图12中添加一些操作的情况的流程图。
在图14中,操作S1240可以包括操作S1241、S1242_1、S1242_2、S1243、S1244、S1245和S1246。在图14中,操作S1250可以包括操作S1251、S1252、S1253和S1255。
与图12相比,图14包括操作S1240中的操作S1242_1和S1242_2而非图12的操作S1242,并且不包括图12的操作S1250中的操作S1254。
作为参考,在图14的功能块当中,具有与图12的块的附图标记相同的附图标记的功能块执行与图12的块相同的操作,除非其在上下文中具有明显不同的含义。例如,图14的操作S1243与图12的操作S1243相同。
在图14中,当在操作S1241中检查到当前CU的编码模式是使用MVP对MVD进行编码的模式(即,mvp模式)时,视频解码器1120可以从比特流中解析关于MVD的信息(mvd)(S1242_1)。
在操作S1242_1中解析出MVD之后,运动矢量分辨率解码器1110可以检查MVD是否不为0以及Adaptive_MV_resolution_enabled_flag是否为ON(S1242_2)。当MVD不为0并且Adaptive_MV_resolution_enabled_flag为ON时,运动矢量分辨率解码器1110可以进行操作S1243。当MVD为0或者Adaptive_MV_resolution_enabled_flag不为ON时,运动矢量分辨率解码器1110可以进行操作S1246。
在图14的操作S1252中,当检查到与mvp_idx对应的块的运动矢量分辨率与当前CU的运动矢量分辨率相同时,视频解码器1120将MVD与MVP相加,以计算当前CU的运动矢量(S1255)。在图14的操作S1252中,当检查到与mvp_idx对应的块的运动矢量分辨率与当前CU的运动矢量分辨率不相同时,视频解码器1120可以执行缩放MVP的操作S1253,使得MVP的分辨率与当前CU的运动矢量分辨率相同。在操作S1253之后,视频解码器1120可以执行将MVD与MVP相加以计算当前CU的运动矢量的操作S1255。
操作S1251可以在操作S1242_1之前执行或者可以在操作S1242_1和S1242_2之间执行。
图15是示出根据本发明的第二实施方式的在视频解码设备1100处对视频进行解码的方法的流程图。
作为图15的情况的详细示例,当Adaptive_MV_resolution_enabled_flag位于SPS(PPS、切片或CTU报头)中并且mv_resolution_flag和alternative_mv_resolution信息位于作为编码目标的CU的报头中时,可以根据Adaptive_MV_resolution_enabled_flag值以图像序列为单元(以图片为单元、以片为单元、或者以CTU为单元)确定是否启用根据本发明的自适应运动矢量分辨率模式,并且可以根据mv_resolution_flag值通过基于逐个CU的选择来调整CU的运动矢量分辨率。
例如,当SPS报头(PPS报头、切片报头或CTU报头)中的Adaptive_MV_resolution_enabled_flag为ON,默认运动矢量分辨率为1/4像素,并且作为当前CU的报头信息的mv_resolution_flag为OFF时,不需要alternative_mv_resolution信息来确定当前CU的运动矢量分辨率。在这种情况下,当前CU的运动矢量分辨率可以被确定为与默认运动矢量分辨率对应的1/4像素,并且可以以1/4像素单位表示当前CU的运动矢量。
另一方面,当mv_resolution_flag为ON并且CU报头的alternative_mv_resolution值为4像素时,当前CU的运动矢量分辨率可以被确定为与替代分辨率对应的4像素,并且可以以与替代分辨率对应的4像素的分辨率表示当前CU的运动矢量。
如图15中所示,在根据本发明的第二实施方式的视频解码设备1100中,运动矢量分辨率解码器1110可以从比特流中解析Adaptive_MV_resolution_enabled_flag(S1510)。Adaptive_MV_resolution_enabled_flag意指指示运动矢量分辨率是否被自适应启用的识别信息,并且可以被确定为图像序列、图片、切片和CTU当中的至少一个图像单元(比CU更高层的图像单元)。可以从图像序列、图片、切片和CTU当中的至少一个图像单元的比特流报头中解析Adaptive_MV_resolution_enabled_flag。
在解析出图像序列、图片、切片或CTU中的至少一个的每个图像单元的Adaptive_MV_resolution_enabled_flag之后,运动矢量分辨率解码器1110可以根据在其中解析出了Adaptive_MV_resolution_enabled_flag的图像单元中的每个块的编码模式是否是用于对MVD进行编码的模式(即,mvp模式)来确定每个块的运动矢量分辨率(S1540)。
这里,操作S1540可以包括操作S1541至S1547。
在操作S1510之后,运动矢量分辨率解码器1110可以从比特流中解析当前CU的编码模式,并且可以检查当前CU的编码模式是否是使用MVP对MVD进行编码的模式(即,mvp模式)(S1541)。
当当前CU的编码模式是mvp模式时,检查Adaptive_MV_resolution_enabled_flag是指示上层图像单元中的CU的运动矢量分辨率被自适应地启用(即,Adaptive_MV_resolution_enabled_flag为ON)还是指示默认运动矢量分辨率被用作上层图像单元中的CU中的运动矢量分辨率(即,Adaptive_MV_resolution_enabled_flag为OFF)(S1542)。
当Adaptive_MV_resolution_enabled_flag为OFF时,运动矢量分辨率解码器1110可以使用默认运动矢量分辨率作为当前CU的运动矢量分辨率(S1547)。
当Adaptive_MV_resolution_enabled_flag为ON时,运动矢量分辨率解码器1110可以从比特流中解析作为指示默认运动矢量分辨率和替代分辨率中的哪一个被用作当前CU的运动矢量分辨率的识别信息的mv_resolution_flag(S1543)。
在解析出mv_resolution_flag之后,运动矢量分辨率解码器1110可以检查mv_resolution_flag的值(S1544)。
当mv_resolution_flag指示替代分辨率被用作当前CU的运动矢量分辨率时(即,当mv_resolution_flag为ON时),运动矢量分辨率解码器1110可以从比特流中解析作为关于当前CU的替代分辨率的信息的alternative_mv_resolution(S1545),并且可以将所解析的替代分辨率设置为当前CU的运动矢量分辨率(S1546)。
当mv_resolution_flag指示默认运动矢量分辨率被用作当前CU的运动矢量分辨率时(即,当mv_resolution_flag为OFF时),运动矢量分辨率解码器1110可以将默认运动矢量分辨率设置为当前CU的运动矢量分辨率(S1547)。
虽然如上所述已经以CU为单元发送了mv_resolution_flag和/或alternative_mv_resolution信息,但是在一些实施方式中,可以以CTU为单位对mv_resolution_flag和/或alternative_mv_resolution进行编码。检查对应CTU中的每个CU的编码模式是否是mvp模式,然后可以对编码模式为mvp模式的CU执行操作S1540的后续操作。
图16是示出分辨率的自适应确定的另一示例的图。
例如,当SPS(PPS、切片报头或CTU报头)中的Adaptive_MV_resolution_enabled_flag为ON,默认运动矢量分辨率为1/4像素,在包括对应图像序列中的圆形的CU的报头中的mv_resolution_flag为ON并且alternative_mv_resolution为1像素时,对应CU的运动矢量分辨率可以被确定为与替代分辨率对应的1像素并且可以以1像素的分辨率表示CU的运动矢量。
当包括对应图像序列中的三角形的CU的报头中的mv_resolution_flag为ON并且alternative_mv_resolution为4像素时,对应CU的运动矢量分辨率可以被确定为与替代分辨率对应的4像素,并且可以以与替代分辨率对应的4像素的分辨率表示CU的运动矢量。在mv_resolution_flag值被设置为OFF的CU的情况下,CU的运动矢量分辨率可以被确定为与默认运动矢量分辨率对应的1/4像素,并且可以以与默认运动矢量分辨率对应的1/4像素的分辨率表示CU的运动矢量。
在操作S1546或S1547之后,视频解码器1120可以使用MVP来推导当前块的运动矢量(S1550)。
在图15中,操作S1550可以包括操作S1551至S1555。
操作S1551至S1555分别类似于操作S1251至S1255,因此,省略对操作S1551至S1555的详细描述。
当在操作S1541中检测到对应CU的编码模式不是mvp模式(例如,合并模式)时,视频解码器1120可以从时间或空间邻近块的运动矢量(即,合并候选)推导当前CU的运动矢量(S1560)。
这里,操作S1560可以包括操作S1561至S1564。
操作S1561至S1564分别类似于操作S1261至S1264,因此,省略对操作S1561至S1564的详细描述。
图17是示出在图15中添加一些操作的情况的流程图。
在图17中,操作S1540可以包括操作S1541、S1542_1、S1542_2、S1543、S1544、S1545、S1546和S1547。在图17中,操作S1550可以包括操作S1551、S1552、S1553和S1555。
作为参考,在图17的功能块当中,具有与图15的块的附图标记相同的附图标记的功能块执行与图15的块相同的操作,除非其在上下文中具有明显不同的含义。例如,图17的操作S1543与图15的操作S1543相同。
当在图17的操作S1541中检查到当前CU的编码模式是使用MVP对MVD进行编码的模式(即,mvp模式)时,视频解码器1120可以从比特流中解析关于MVD的信息(mvd)(S1542_1)。
在操作S1542_1中解析出MVD之后,运动矢量分辨率解码器1110可以检查MVD是否不为0以及Adaptive_MV_resolution_enabled_flag是否为ON(S1542_2)。当MVD不为0并且Adaptive_MV_resolution_enabled_flag为ON时,运动矢量分辨率解码器1110可以进行操作S1543。当MVD为0或者Adaptive_MV_resolution_enabled_flag不为ON时,运动矢量分辨率解码器1110可以进行操作S1547。
操作S1551可以在操作S1542_1之前执行或者可以在操作S1542_1和S1542_2之间执行。
图17的操作S1551、S1552、S1553和S1555分别类似于图14的操作S1251、S1252、S1253和S1255,因此,省略对图17的操作S1551、S1552、S1553和S1555的详细描述。
图18是示出根据本发明的第三实施方式的在视频解码设备1100处对视频进行解码的方法的流程图。
如图18中所示,在根据本发明的第三实施方式的视频解码设备1100中,运动矢量分辨率解码器1110可以从比特流中解析Adaptive_MV_resolution_enabled_flag(S1810)。Adaptive_MV_resolution_enabled_flag意指指示运动矢量分辨率是否被自适应启用的识别信息,并且可以是在作为上层图像单元的图像序列、图片、切片或CTU当中的至少一个图像单元中确定的。可以从图像序列、图片、切片和CTU的至少一个的图像单元的比特流报头中解析Adaptive_MV_resolution_enabled_flag。
运动矢量分辨率解码器1110可以检查Adaptive_MV_resolution_enabled_flag是指示在图像序列、图片、切片和CTU中的至少一个的上层图像单元中(即,在上层图像单元中的所有CU中)运动矢量分辨率被自适应地启用(即,在ON的情况下)还是指示默认运动矢量分辨率被用作上层图像单元中的所有CU的运动矢量分辨率(在OFF的情况下)(S1820)。
当在操作S1820中检查到Adaptive_MV_resolution_enabled_flag为OFF时,运动矢量分辨率解码器1110可以使用默认运动矢量分辨率作为对应图像单元中的对应CU的运动矢量分辨率(S1822)。
当在操作S1820中检查到Adaptive_MV_resolution_enabled_flag为ON时,运动矢量分辨率解码器1110可以从比特流中解析作为关于替代分辨率的信息的alternative_mv_resolution(S1830)。这里,可以针对与发送Adaptive_MV_resolution_enabled_flag的图像单元相同的各个图像单元从比特流中解析alternative_mv_resolution。
另选地,可以针对比发送Adaptive_MV_resolution_enabled_flag的图像单元小并且比作为确定运动矢量分辨率的块单元的CU大的每个图像单元从比特流中解析alternative_mv_resolution。例如,当发送Adaptive_MV_resolution_enabled_flag的图像单元是图像序列和图片中的一个时,解析了alternative_mv_resolution的单元可以是切片(或CTU)。
另选地,可以针对用于Adaptive_MV_resolution_enabled_flag的图像单元中的每个CU解析alternative_mv_resolution。
另外,不能在任何位置都解析alternative_mv_resolution。
在操作S1830之后,运动矢量分辨率解码器1110可以根据当前CU的编码模式是否是对MVD进行编码的模式来确定当前CU的运动矢量分辨率(S1840)。
这里,操作S1840可以包括操作S1841至S1848。
在操作S1830之后,运动矢量分辨率解码器1110可以从比特流中解析当前CU的编码模式,并且可以检查当前CU的编码模式是否是使用MVP对MVD进行编码的模式(即,mvp模式)(S1841)。
当当前CU的编码模式是mvp模式时,运动矢量分辨率解码器1110可以检查Adaptive_MV_resolution_enabled_flag是指示上层图像单元中的CU的运动矢量分辨率被自适应地启用(即,当Adaptive_MV_resolution_enabled_flag为ON时)还是指示默认运动矢量分辨率被用作上层图像单元中的CU的运动矢量分辨率(即,当Adaptive_MV_resolution_enabled_flag为OFF时)(S1842)。
当Adaptive_MV_resolution_enabled_flag为ON时,运动矢量分辨率解码器1110可以从比特流中解析作为指示默认运动矢量分辨率和替代分辨率当中的哪一个分辨率被用作当前CU的运动矢量分辨率的识别信息的mv_resolution_flag(S1843)。
另一方面,当Adaptive_MV_resolution_enabled_flag为OFF时,运动矢量分辨率解码器1110可以将默认运动矢量分辨率确定为当前CU的运动矢量分辨率(S1848)。
在操作S1843中解析出当前CU的mv_resolution_flag之后,运动矢量分辨率解码器1110可以检查mv_resolution_flag的值(S1844)。
当在操作S1844中检查到mv_resolution_flag指示使用作为当前CU的运动矢量分辨率与先前CU的运动矢量分辨率之间的差值的分辨率差值来确定当前CU的运动矢量分辨率时(即,当mv_resolution_flag为ON时),运动矢量分辨率解码器1110可以从比特流中解析作为关于当前CU的运动矢量分辨率与先前CU的运动矢量分辨率之间的差值的信息的mv_resolution_delta(S1845)。这里,当不存在alternative_mv_resolution值并且当前CU是上层图像单元中的CU当中的按解码顺序的第一CU时,mv_resolution_delta可以表示指示当前CU的运动矢量分辨率的信息。
运动矢量分辨率解码器1110可以使用mv_resolution_delta来计算当前CU的运动矢量分辨率(S1846),并且可以将计算结果设置为当前CU的运动矢量分辨率(S1847)。
当在操作S1844中检查到mv_resolution_flag指示默认运动矢量分辨率被用作当前CU的运动矢量分辨率时(即,当mv_resolution_flag为OFF时),运动矢量分辨率解码器1110可以将默认运动矢量分辨率确定为当前CU的运动矢量分辨率(S1848)。
在操作S1846中,当当前CU是上层图像单元中的CU当中的按解码顺序的第一CU时,运动矢量分辨率解码器1110可以将mv_resolution_delta确定为当前CU的运动矢量分辨率。当当前CU是按解码顺序的第一CU之后的CU时,运动矢量分辨率解码器1110可以将mv_resolution_delta与已按编码顺序就在当前CU之前被编码的CU的运动矢量分辨率相加,生成当前CU的运动矢量分辨率。在这种情况下,运动矢量分辨率解码器1110不需要alternative_mv_resolution来生成当前CU的运动矢量分辨率,因此,可以省略从比特流中解析alternative_mv_resolution的操作。
例如,当切片报头中的Adaptive_MV_resolution_enabled_flag为ON,默认运动矢量分辨率为1/4像素,并且作为当前CU的报头信息的mv_resolution_flag为OFF时,可能不需要mv_resolution_delta信息来确定当前CU的运动矢量分辨率。在这种情况下,当前CU的运动矢量分辨率可以被设置为作为默认运动矢量分辨率的1/4像素,并且可以以与运动矢量的默认运动矢量分辨率对应的1/4像素的分辨率表示当前CU的运动矢量。
另一方面,当mv_resolution_flag为ON,当前CU是按解码顺序的第一CU,并且当前CU的mv_resolution_delta为4像素时,当前CU的运动矢量分辨率可以被确定为与mv_resolution_delta对应的4像素,并且可以以4像素的分辨率表示当前CU的运动矢量。当当前CU不是按解码顺序的第一CU时,在当前CU的mv_resolution_flag为ON并且当前CU的mv_resolution_delta为0的情况下,当前CU的运动矢量分辨率可以被设置为通过将当前CU的mv_resolution_delta与当前CU的先前CU的运动矢量分辨率相加而得到的4像素,并且可以以4像素的分辨率表示当前CU的运动矢量。
当当前CU不是按解码顺序的第一CU时,在当前CU的mv_resolution_flag为ON并且当前CU的mv_resolution_delta为-2像素的情况下,当前CU的运动矢量分辨率可以被设置为通过将与mv_resolution_delta对应的-2像素与作为先前CU的运动矢量分辨率的4像素相加而得到的2像素,并且可以以2像素单位表示当前CU的运动矢量。
在以上参照图18描述的实施方式中,运动矢量分辨率解码器1110将mv_resolution_delta与当前CU的先前CU的运动矢量分辨率相加以恢复当前CU的运动矢量分辨率,但是本发明不限于此。运动矢量分辨率解码器1110可以将当前CU的mv_resolution_delta与替代分辨率相加,以对当前CU的运动矢量分辨率进行解码。
作为图18的实施方式的示例,当Adaptive_MV_resolution_enabled_flag和alternative_mv_resolution位于切片(图块)报头(SPS、PPS或CTU)中,并且mv_resolution_flag和mv_resolution_delta信息位于切片(图块)(图像序列、图片或CTU)单元中的CU的报头中时,可以根据Adaptive_MV_resolution_enabled_flag来启用是否应用根据本发明的自适应运动矢量分辨率模式和替代分辨率,并且可以根据每个CU的mv_resolution_flag为切片(图块)(图像序列、图片或CTU)单元中的每个CU自适应地确定运动矢量分辨率,并且可以使用mv_resolution_delta来调整当前CU的运动矢量分辨率。
在这种情况下,当前CU的mv_resolution_delta可以被表示为切片(图块)报头(或图像序列、图片或CTU)中的alternative_mv_resolution(即,替代分辨率)与当前CU的运动矢量分辨率之间的差值。运动矢量分辨率解码器1110可以通过将alternative_mv_resolution与mv_resolution_delta相加来计算当前CU的运动矢量分辨率。
例如,当切片报头的Adaptive_MV_resolution_enabled_flag为ON,作为替代分辨率的alternative_mv_resolution值为4像素,默认运动矢量分辨率为1/4像素,并且作为当前CU的报头信息的mv_resolution_flag为OFF时,可能不需要mv_resolution_delta信息来确定当前CU的运动矢量分辨率。在这种情况下,当前CU的运动矢量分辨率可以被确定为与默认运动矢量分辨率对应的1/4像素,并且可以以1/4像素的分辨率表示当前CU的运动矢量。
当当前CU的mv_resolution_flag为ON并且当前CU的mv_resolution_delta为0时,当前CU的运动矢量分辨率可以被设置为与通过将alternative_mv_resolution与mv_resolution_delta相加而得到的值对应的4像素,并且可以以4像素的分辨率表示当前CU的运动矢量。当当前CU的mv_resolution_flag为ON时,如果当前CU的mv_resolution_delta为-2个像素,则当前CU的运动矢量分辨率可以被设置为与通过将作为切片报头的alternative_mv_resolution的4像素与对应于mv_resolution_delta值的-2像素相加而得到的2像素,并且可以以2像素的分辨率表示当前CU的运动矢量。
作为图18的实施方式的另一示例,当Adaptive_MV_resolution_enabled_flag和作为替代分辨率的alternative_mv_resolution位于切片(图块)报头(或SPS、PPS或CTU)中时,可以根据Adaptive_MV_resolution_enabled_flag以切片(图块)(图像序列、图片或CTU)为单元确定是否应用根据本发明的自适应运动矢量分辨率模式和替代分辨率。当mv_resolution_flag和mv_resolution_delta信息位于切片(图块)(图像序列、图片或CTU)单元中的CU的报头中时,可以根据mv_resolution_flag为切片(图块)(图像序列、图片或CTU)单元中的每个CU自适应地确定运动矢量分辨率,并且可以使用mv_resolution_delta来调整当前CU的运动矢量分辨率。
这里,当前CU的mv_resolution_delta可以被表示为切片(图块)(SPS、PPS或CTU)中的alternative_mv_resolution与当前CU的运动矢量分辨率之间的差值,或者可以被表示为就在当前CU之前被编码的CU的运动矢量分辨率与当前CU的运动矢量分辨率之间的差值。
例如,当当前CU是按解码顺序的第一CU时,当前CU的mv_resolution_delta可以指示切片(图块)(SPS、PPS或CTU)报头中的alternative_mv_resolution与当前CU的运动矢量分辨率之间的差值。当当前CU不是第一CU时,当前CU的mv_resolution_delta可以被表示为就在当前CU之前被编码的运动矢量分辨率与当前CU的运动矢量分辨率之间的差值。
例如,当切片报头的Adaptive_MV_resolution_enabled_flag为ON,替代分辨率为4像素,默认运动矢量分辨率为1/4像素,并且作为当前CU的报头信息的mv_resolution_flag为OFF时,可能不需要当前CU的mv_resolution_delta来确定当前CU的运动矢量分辨率。在这种情况下,当前CU的运动矢量分辨率可以被设置为与默认运动矢量分辨率对应的1/4像素。
另一方面,当作为当前CU的报头信息的mv_resolution_flag为ON时,当前CU是第一CU,并且CU的mv_resolution_delta为指示作为切片(图块)报头中的alternative_mv_resolution的4像素与当前CU的运动矢量分辨率之间的分辨率差值的+2像素时,当前CU的运动矢量分辨率可以是通过将alternative_mv_resolution 4像素与分辨率差值+2像素相加而得到的6像素。在这种情况下,当第一CU的下一个CU的mv_resolution_flag为ON并且该对应的下一个CU的mv_resolution_delta是-2像素时,该对应的下一个CU的运动矢量分辨率可以为通过将作为先前CU的运动矢量分辨率的6像素与作为该对应的下一个CU的mv_resolution_delta的-2像素相加而得到的4像素。
在图18的操作S1847或S1848之后,视频解码器1120可以使用MVP来推导当前CU的运动矢量(S1850)。
这里,操作S1850可以包括操作S1851至S1855。
图18的操作S1851至S1855分别类似于图12的操作S1251至S1255,因此,省略对操作S1851至S1855的详细描述。
当在操作S1841中检测到对应CU的编码模式不是mvp模式时,视频解码器1120可以从时间或空间邻近块的运动矢量(即,合并候选)推导当前CU的运动矢量(S1860)。
这里,操作S1860可以包括操作S1861至S1864。
图18的操作S1861至S1864分别类似于图12的操作S1261至S1264,因此,省略对操作S1861至S1864的详细描述。
图18是用于说明根据本发明的第四实施方式的视频解码设备1100的操作以及根据本发明的第三实施方式的视频解码设备1100的操作的流程图。
也就是说,根据第四实施方式,视频解码器1120可以从比特流中解析mv_resolution_scale而非mv_resolution_delta,并且可以使用所解析的mv_resolution_scale恢复当前CU的运动矢量分辨率。
在第三实施方式和第四实施方式中,与图18的操作当中的操作S1845至S1846对应的操作彼此不同,并且其余操作是相同的。
根据第四实施方式,操作S1845可以被实施为从比特流中解析mv_resolution_scale,并且操作S1846可以被实施为使用mv_resolution_scale恢复当前CU的运动矢量分辨率。
当在操作S1844中检查到mv_resolution_flag指示使用作为通过将当前CU的运动矢量分辨率除以先前CU的运动矢量分辨率而得到的值的分辨率比例因子来确定当前CU的运动矢量分辨率时(即,当mv_resolution_flag为ON时),运动矢量分辨率解码器1110可以从比特流中解析作为指示通过将当前CU的运动矢量分辨率除以先前CU的运动矢量分辨率而得到的值的信息的mv_resolution_scale(S1845)。另选地,mv_resolution_scale可以是指示通过将当前CU的运动矢量分辨率除以替代分辨率而得到的值的信息。
运动矢量分辨率解码器1110可以用mv_resolution_delta来计算当前CU的运动矢量分辨率(S1846)。
在操作S1846中,当当前CU是上层图像单元中的CU当中的按解码顺序的第一CU时,运动矢量分辨率解码器1110可以将与mv_resolution_scale对应的运动矢量分辨率解析为当前CU的运动矢量分辨率。当当前CU是按解码顺序的第一CU之后的CU时,运动矢量分辨率解码器1110可以通过将就在当前CU之前被编码的CU的运动矢量分辨率乘以当前CU的比例因子来计算当前CU的运动矢量分辨率。在这种情况下,由于不需要替代分辨率来计算当前CU的运动矢量分辨率,因此运动矢量分辨率解码器1110可以省略从比特流中解析alternative_mv_resolution的操作。
作为用mv_resolution_scale计算当前CU的运动矢量分辨率的另一实施方式,运动矢量分辨率解码器1110可以对通过将上层图像单元中的当前CU中的mv_resolution_scale乘以替代分辨率而得到的结果解码为当前CU的运动矢量分辨率。
作为用mv_resolution_scale计算当前CU的运动矢量分辨率的另一实施方式,当当前CU是上层图像单元中的CU当中的按解码顺序的第一CU时,运动矢量分辨率解码器1110可以通过将mv_resolution_scale与替代分辨率相乘对当前CU的运动矢量分辨率进行解码。另一方面,当当前CU是按解码顺序的第一CU之后的CU时,运动矢量分辨率解码器1110可以通过将就在当前CU之前被编码的CU的运动矢量分辨率乘以当前CU的mv_resolution_scale来计算当前CU的运动矢量分辨率。
作为根据本发明的第四实施方式的视频解码设备1100的操作的示例,当Adaptive_MV_resolution_enabled_flag和alternative_mv_resolution位于切片(图块)报头(SPS、PPS或CTU)中并且mv_resolution_flag和mv_resolution_scale信息位于作为编码目标的当前CU的报头中时,运动矢量分辨率解码器1110可以以切片(图块)(图像序列、图片或CTU)为单元确定是否应用根据本发明的自适应运动矢量分辨率模式和替代分辨率。运动矢量分辨率解码器1110可以以切片(图块)(图像序列、图片或CTU)中的块为单位自适应地启用运动矢量分辨率,并且使用mv_resolution_scale值来调整当前CU的运动矢量分辨率。
在这种情况下,当当前CU是作为上层图像单元的切片(图块)(图像序列、图片或CTU)中的第一CU时,mv_resolution_scale可以被表示为与当前CU的运动矢量分辨率对应的值,而当当前CU是第一CU之后的CU时,mv_resolution_scale可以被表示为就在当前CU之前被编码的CU的运动矢量分辨率与当前CU的运动矢量分辨率之间的相乘值。
例如,当切片报头的Adaptive_MV_resolution_enabled_flag为ON,默认运动矢量分辨率为1/4像素,并且作为当前CU的报头信息的mv_resolution_flag为OFF时,可以不解析当前CU的mv_resolution_scale信息,并且当前CU的运动矢量分辨率可以被设置为与默认运动矢量分辨率对应的1/4像素。
当当前CU的mv_resolution_flag为ON并且当前CU是按解码顺序的第一CU,并且当前CU的mv_resolution_scale为4时,当前CU的运动矢量分辨率可以为与mv_resolution_scale对应的4像素。当当前CU是第一CU的下一个CU,当前CU的mv_resolution_flag为ON,并且当前CU的mv_resolution_scale为1/2时,当前CU的运动矢量分辨率可以被设置为通过将先前CU的运动矢量分辨率的4像素与当前CU的mv_resolution_scale的1/2相乘而得到的2像素。
另选地,每个CU的mv_resolution_scale可以被表示为切片(图块)报头(SPS、PPS或CTU)中包括的alternative_mv_resolution与当前块的运动矢量分辨率之间的相乘值。
例如,当切片报头的Adaptive_MV_resolution_enabled_flag为ON,作为替代分辨率的alternative_mv_resolution值为4像素,默认运动矢量分辨率为1/4像素,并且作为当前CU的报头信息的mv_resolution_flag为OFF时,可以不解析当前CU的mv_resolution_scale信息,并且当前CU的运动矢量分辨率可以被设置为与默认运动矢量分辨率对应的1/4像素。
另一方面,当当前CU的mv_resolution_flag为ON并且当前CU的mv_resolution_scale为1时,当前CU的运动矢量分辨率可以被设置为通过将作为alternative_mv_resolution的4像素与作为当前CU的mv_resolution_scale的1相乘而得到的4像素。当下一个CU的mv_resolution_flag为ON并且mv_resolution_scale为1/2时,该对应的下一个CU的运动矢量分辨率可以被设置为通过将作为替代分辨率的4像素与作为该下一个CU的mv_resolution_scale的1/2相乘而得到的2像素。
在另一实施方式中,每个CU的mv_resolution_scale可以用切片(图块)报头(SPS或PPS)中的alternative_mv_resolution值和当前CU的运动矢量分辨率之间的相乘值,或者可以用就在当前CU之前被编码的CU的运动矢量分辨率与当前CU的运动矢量分辨率之间的相乘值来表示。也就是说,当当前CU是按解码顺序的第一CU时,当前CU的mv_resolution_scale可以指示当前CU的运动矢量分辨率与切片(图块)报头(SPS或PPS)中的alternative_mv_resolution之间的相乘值,而当当前CU是第一CU之后的CU时,可以用就在当前CU之前被编码的CU的运动矢量分辨率与当前CU的运动矢量分辨率之间的相乘值来表示当前CU的mv_resolution_scale。
例如,当切片报头的Adaptive_MV_resolution_enabled_flag为ON,alternative_mv_resolution为4像素,默认运动矢量分辨率为1/4像素,并且作为当前CU的报头信息的mv_resolution_flag为OFF时,当前CU的运动矢量分辨率可以不需要mv_resolution_scale信息,因此,当前CU的运动矢量分辨率可以被设置为与默认运动矢量分辨率对应的1/4像素,并且可以以与默认运动矢量分辨率对应的1/4像素的分辨率表示当前CU的运动矢量。
另一方面,当当前CU的mv_resolution_flag为ON并且当前CU的mv_resolution_scale为1时,当前CU的运动矢量分辨率可以被设置为通过将作为切片报头的alternative_mv_resolution的4像素与作为当前CU的mv_resolution_scale的1相乘而得到的4像素。当当前CU是第一CU的下一个CU,当前CU的mv_resolution_flag为ON,并且当前CU的mv_resolution_scale为1/2时,当前CU的运动矢量分辨率可以被设置为通过将作为就在当前CU之前被编码的CU的运动矢量分辨率值的4像素与作为当前CU的mv_resolution_scale的1/2相乘而得到的2像素。
图19是示出在图18的流程图中添加一些操作的情况的流程图。
在图19中,操作S1840可以包括操作S1841、S1842_1、S1842_2、S1843、S1844、S1845、S1846、S1847和S1848。另外,图19的操作S1850可以包括操作S1851、S1852、S1853和S1855。
与图18的情况相比,图19包括操作S1240中的操作S1242_1和S1242_2而非图18的操作S1242,并且可以从操作S1850中将图18的操作S1854排除在外。
作为参考,在图19的功能块当中,具有与图18的块的附图标记相同的附图标记的功能块执行与图18的块相同的操作,除非其在上下文中具有明显不同的含义。例如,图19的操作S1843与图18的操作S1843相同。
当在图19的操作S1841中检查到当前CU的编码模式是使用MVP对MVD进行编码的模式(即,mvp模式)时,视频解码器1120可以从比特流中对关于MVD的信息进行解码(S1842_1)。
在对MVD进行解码之后,运动矢量分辨率解码器1110可以检查MVD是否不为0以及Adaptive_MV_resolution_enabled_flag是否为ON(S1842_2)。当作为操作S1842_2中的检查结果,MVD不为0并且Adaptive_MV_resolution_enabled_flag为ON时,运动矢量分辨率解码器1110可以进行操作S1843。当MVD为0或者Adaptive_MV_resolution_enabled_flag不为ON时,运动矢量分辨率解码器1110可以进行操作S1848。
操作S1851可以在操作S1842_1之前执行或者可以在操作S1842_1和S1842_2之间执行。
图19的操作S1851、S1852、S1853和S1855分别类似于图14的操作S1251、S1252、S1253和S1255,因此,省略对图19的操作S1851、S1852、S1853和S1855的详细描述。
根据本发明的实施方式,已经例示了运动矢量分辨率解码器1110从比特流中解析Adaptive_MV_resolution_enabled_flag的情况,但是在一些实施方式中,视频解码设备1100中的运动矢量分辨率解码器1110可以省略从比特流中解析Adaptive_MV_resolution_enabled_flag的操作。在这种情况下,运动矢量分辨率解码器1110可以执行与当Adaptive_MV_resolution_enabled_flag为ON时执行的操作相同的操作,或者可以执行与当Adaptive_MV_resolution_enabled_flag为OFF时执行的操作相同的操作。相应地,视频编码设备400可以省略对Adaptive_MV_resolution_enabled_flag进行编码的操作。
视频解码设备的以上实施方式不限于以CU为单位解析mv_resolution_flag的情况,并且可以以CTU为单位解析mv_resolution_flag,以将默认运动矢量分辨率或替代分辨率中的一个设置为运动矢量分辨率。当以CTU为单位确定运动矢量分辨率时,一个CTU中所包括的所有CU都可以具有相同的运动矢量分辨率。在这种情况下,CTU单元的上层图像单元可以是图像序列、图片或切片中的一个。
虽然已经参照本发明的示例性实施方式具体示出并描述了本发明,但是本领域技术人员将理解的是,可以在不脱离所附的权利要求限定的本发明的精神和范围的情况下在本文中进行形式和细节上的各种改变。示例性的实施方式应该仅仅被认为是描述性的,而不是出于限制的目的。因此,本发明的范围不由本发明的具体实施方式限定,而是由所附的权利要求限定,并且该范围内的所有差异都将被解释为被包括在本发明中。
相关申请的交叉引用
本申请基于并要求分别于2016年10月19日和2017年2月27日在韩国知识产权局提交的韩国专利申请No.10-2016-0136066和No.10-2017-0025673的在35U.S.C§119(a)下的优先权,这两个韩国专利申请的公开的全部内容以引用方式并入到本文中。另外,以基于其全部内容特此以引用方式并入的所述韩国专利申请的相同理由,该非临时申请要求除美国之外的国家中的优先权。
Claims (7)
1.一种对视频进行编码的设备,所述设备包括:
分辨率确定器,所述分辨率确定器被配置为确定当前块的运动矢量分辨率;
视频编码器,所述视频编码器被配置为:
根据所述当前块的所述运动矢量分辨率来确定所述当前块的运动矢量,
对关于所述当前块的运动矢量差值的信息进行编码,并且
使用所述当前块的所述运动矢量来预测所述当前块并且对所述当前块进行编码;以及
分辨率编码器,所述分辨率编码器被配置为:
将指示是否自适应地确定运动矢量分辨率的启用标志编码到比特流中,其中,所述启用标志被编码到所述比特流的序列参数集或图片参数集中,并且
当自适应地确定所述运动矢量分辨率并且所述当前块的所述运动矢量差值为非零时,将关于所述当前块的所述运动矢量分辨率的信息编码到所述比特流中,其中,所述分辨率编码器通过以下步骤对关于所述当前块的所述运动矢量分辨率的信息进行编码,所述步骤包括:
将指示所述当前块的所述运动矢量分辨率是否是作为1/4像素单元的默认运动矢量分辨率的mv分辨率标志编码到所述比特流中,以及
当所述当前块的所述运动矢量分辨率不是所述默认运动矢量分辨率时,将关于用于指示包括1/2像素单元、1像素单元和4像素单元的多个运动矢量分辨率候选当中的一个的替代分辨率的信息编码到所述比特流中,
其中,当未自适应地确定所述运动矢量分辨率时,所述当前块的所述运动矢量分辨率被确定为所述默认运动矢量分辨率,
其中,当所述当前块的所述运动矢量差值为零时,所述当前块的所述运动矢量分辨率被确定为所述默认运动矢量分辨率。
2.根据权利要求1所述的设备,其中,对关于所述运动矢量分辨率的信息进行编码的步骤包括以下步骤:将所述当前块的所述运动矢量分辨率与在所述当前块之前被编码的块的运动矢量分辨率之间的差值编码为关于所述当前块的所述运动矢量分辨率的信息的一个元素。
3.根据权利要求1所述的设备,其中,对关于所述运动矢量分辨率的信息进行编码的步骤包括以下步骤:将关于所述当前块的所述运动矢量分辨率与在所述当前块之前被编码的块的运动矢量分辨率之间的比率的信息编码为关于所述当前块的所述运动矢量分辨率的信息的一个元素。
4.一种自适应地确定当前块的运动矢量分辨率并且对所述当前块进行解码的视频解码设备,所述视频解码设备包括:
运动矢量分辨率解码器,所述运动矢量分辨率解码器被配置为:
从比特流提取指示是否自适应地确定运动矢量分辨率的启用标志,其中,所述启用标志是从所述比特流的序列参数集或图片参数集中提取的,并且
当所述启用标志指示自适应地确定了所述运动矢量分辨率并且所述当前块的所述运动矢量差值为非零时,从所述比特流中提取关于所述当前块的所述运动矢量分辨率的信息,并且基于关于所述当前块的所述运动矢量分辨率的信息来确定所述当前块的所述运动矢量分辨率;以及
视频解码器,所述视频解码器被配置为从所述比特流提取关于所述当前块的所述运动矢量差值的信息,并且使用根据所述当前块的所述运动矢量分辨率和所述当前块的所述运动矢量差值确定的所述当前块的运动矢量来预测所述当前块并且对所述当前块进行解码,
其中,所述运动矢量分辨率解码器通过以下步骤提取关于所述当前块的所述运动矢量分辨率的信息,所述步骤包括:
从所述比特流提取指示所述当前块的所述运动矢量分辨率是否是作为1/4像素单元的默认运动矢量分辨率的mv分辨率标志;以及
当所述mv分辨率标志指示所述当前块的所述运动矢量分辨率不是所述默认运动矢量分辨率时,从所述比特流提取关于用于指示包括1/2像素单元、1像素单元和4像素单元的多个运动矢量分辨率候选当中的一个的替代分辨率的信息,
其中,当所述启用标志指示未自适应地确定所述运动矢量分辨率时,所述当前块的所述运动矢量分辨率被设置为所述默认运动矢量分辨率,
其中,当所述当前块的所述运动矢量差值为零时,所述当前块的所述运动矢量分辨率被设置为所述默认运动矢量分辨率。
5.根据权利要求4所述的视频解码设备,其中,确定所述当前块的所述运动矢量分辨率的步骤包括以下步骤:从所述比特流中提取关于所述当前块的所述运动矢量分辨率与在所述当前块之前被编码的块的运动矢量分辨率之间的差值的信息作为关于所述当前块的所述运动矢量分辨率的信息的一个元素。
6.根据权利要求4所述的视频解码设备,其中,确定所述当前块的所述运动矢量分辨率的步骤包括以下步骤:从所述比特流中提取关于所述当前块的所述运动矢量分辨率与在所述当前块之前被编码的块的运动矢量分辨率之间的比率的信息作为关于所述当前块的所述运动矢量分辨率的信息的一个元素。
7.一种存储通过视频编码方法生成的比特流的非暂时性记录介质,所述视频编码方法包括以下步骤:
将指示是否自适应地确定运动矢量分辨率的启用标志编码到比特流中,其中,所述启用标志被编码到所述比特流的序列参数集或图片参数集中;
确定当前块的运动矢量分辨率;
根据所述当前块的所述运动矢量分辨率来确定所述当前块的运动矢量;
将关于所述当前块的运动矢量差值的信息编码到所述比特流中;
当自适应地确定了所述运动矢量分辨率并且所述当前块的所述运动矢量差值为非零时,将关于所述当前块的所述运动矢量分辨率的信息编码到所述比特流中;以及
使用所述当前块的所述运动矢量来预测所述当前块并且对所述当前块进行编码,
其中,对关于所述当前块的所述运动矢量分辨率的信息进行编码的步骤包括以下步骤:
将指示所述当前块的所述运动矢量分辨率是否是作为1/4像素单元的默认运动矢量分辨率的mv分辨率标志编码到所述比特流中;以及
当所述当前块的所述运动矢量分辨率不是所述默认运动矢量分辨率时,将关于用于指示包括1/2像素单元、1像素单元和4像素单元的多个运动矢量分辨率候选当中的一个的替代分辨率的信息编码到所述比特流中,
其中,当未自适应地确定所述运动矢量分辨率时,所述当前块的所述运动矢量分辨率被确定为所述默认运动矢量分辨率,
其中,当所述当前块的所述运动矢量差值为零时,所述当前块的所述运动矢量分辨率被确定为所述默认运动矢量分辨率。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2016-0136066 | 2016-10-19 | ||
KR20160136066 | 2016-10-19 | ||
KR10-2017-0025673 | 2017-02-27 | ||
KR1020170025673A KR20180043151A (ko) | 2016-10-19 | 2017-02-27 | 영상 부호화 또는 복호화를 위한 장치 및 방법 |
PCT/KR2017/011484 WO2018074825A1 (ko) | 2016-10-19 | 2017-10-17 | 영상 부호화 또는 복호화를 위한 장치 및 방법 |
CN201780064071.XA CN109845258B (zh) | 2016-10-19 | 2017-10-17 | 用于对图像进行编码或解码的设备和方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780064071.XA Division CN109845258B (zh) | 2016-10-19 | 2017-10-17 | 用于对图像进行编码或解码的设备和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116567211A true CN116567211A (zh) | 2023-08-08 |
Family
ID=62019191
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310713813.4A Pending CN116567211A (zh) | 2016-10-19 | 2017-10-17 | 视频编码/解码设备和方法及非暂时性记录介质 |
CN202310710814.3A Pending CN116567208A (zh) | 2016-10-19 | 2017-10-17 | 视频编码/解码设备和方法及非暂时性记录介质 |
CN202310713804.5A Pending CN116567210A (zh) | 2016-10-19 | 2017-10-17 | 视频编码/解码设备和方法及非暂时性记录介质 |
CN202310713793.0A Pending CN116567209A (zh) | 2016-10-19 | 2017-10-17 | 视频编码/解码设备和方法及非暂时性记录介质 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310710814.3A Pending CN116567208A (zh) | 2016-10-19 | 2017-10-17 | 视频编码/解码设备和方法及非暂时性记录介质 |
CN202310713804.5A Pending CN116567210A (zh) | 2016-10-19 | 2017-10-17 | 视频编码/解码设备和方法及非暂时性记录介质 |
CN202310713793.0A Pending CN116567209A (zh) | 2016-10-19 | 2017-10-17 | 视频编码/解码设备和方法及非暂时性记录介质 |
Country Status (2)
Country | Link |
---|---|
CN (4) | CN116567211A (zh) |
WO (1) | WO2018074825A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3902253A4 (en) | 2018-12-21 | 2022-12-14 | Samsung Electronics Co., Ltd. | PICTURE CODING DEVICE AND PICTURE DECODING DEVICE WITH TRIANGULAR PREDICTION MODE, AND PICTURE CODING METHOD AND PICTURE DECODING METHOD PERFORMED THEREFORE |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100704626B1 (ko) * | 2005-02-07 | 2007-04-09 | 삼성전자주식회사 | 다 계층 기반의 모션 벡터를 압축하는 방법 및 장치 |
KR101377530B1 (ko) * | 2009-08-21 | 2014-03-27 | 에스케이텔레콤 주식회사 | 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치 |
WO2012042893A1 (ja) * | 2010-09-30 | 2012-04-05 | パナソニック株式会社 | 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置、プログラムおよび集積回路 |
KR102063385B1 (ko) * | 2013-01-30 | 2020-01-07 | 인텔 코포레이션 | 차세대 비디오용 콘텐츠 적응적 엔트로피 코딩 |
US10531116B2 (en) * | 2014-01-09 | 2020-01-07 | Qualcomm Incorporated | Adaptive motion vector resolution signaling for video coding |
-
2017
- 2017-10-17 WO PCT/KR2017/011484 patent/WO2018074825A1/ko active Application Filing
- 2017-10-17 CN CN202310713813.4A patent/CN116567211A/zh active Pending
- 2017-10-17 CN CN202310710814.3A patent/CN116567208A/zh active Pending
- 2017-10-17 CN CN202310713804.5A patent/CN116567210A/zh active Pending
- 2017-10-17 CN CN202310713793.0A patent/CN116567209A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN116567210A (zh) | 2023-08-08 |
CN116567208A (zh) | 2023-08-08 |
WO2018074825A1 (ko) | 2018-04-26 |
CN116567209A (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109845258B (zh) | 用于对图像进行编码或解码的设备和方法 | |
US20230088154A1 (en) | Effective wedgelet partition coding using spatial prediction | |
JP2022123085A (ja) | 部分的コスト計算 | |
JP2023025001A (ja) | パーティション符号化を用いた有効な予測 | |
EP2777286B1 (en) | Effective wedgelet partition coding | |
EP2777285B1 (en) | Adaptive partition coding | |
KR102450863B1 (ko) | 움직임벡터를 부호화 또는 복호화하기 위한 장치 및 방법 | |
KR101924088B1 (ko) | 적응적 예측 블록 필터링을 이용한 영상 부호화/복호화 장치 및 방법 | |
US11671584B2 (en) | Inter-prediction method and video decoding apparatus using the same | |
US20240236302A1 (en) | Inter-prediction method and video decoding apparatus using the same | |
US11997270B2 (en) | Entropy coding for partition syntax | |
CN118175307A (zh) | 双向预测方法、视频编码方法及比特流传输方法 | |
CN116567211A (zh) | 视频编码/解码设备和方法及非暂时性记录介质 | |
CN113455000B (zh) | 双向预测方法及视频解码设备 | |
KR20200081186A (ko) | 시간적 후보의 움직임 벡터 유도 방법 및 이를 이용한 영상 복호화 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |