HK40111368A - Image encoding/decoding method and data transmitting method - Google Patents
Image encoding/decoding method and data transmitting method Download PDFInfo
- Publication number
- HK40111368A HK40111368A HK42024098371.8A HK42024098371A HK40111368A HK 40111368 A HK40111368 A HK 40111368A HK 42024098371 A HK42024098371 A HK 42024098371A HK 40111368 A HK40111368 A HK 40111368A
- Authority
- HK
- Hong Kong
- Prior art keywords
- block
- motion
- information
- prediction
- candidate
- Prior art date
Links
Description
本申请是申请日为2019年9月24日、申请号为201980062809.8、发明名称为“图像编码/解码方法和装置”的发明专利申请的分案申请。This application is a divisional application of the invention patent application filed on September 24, 2019, with application number 201980062809.8 and title "Image Encoding/Decoding Method and Apparatus".
技术领域Technical Field
本发明涉及图像编码/解码方法和设备。This invention relates to image encoding/decoding methods and devices.
背景技术Background Technology
随着因特网和便携式终端的广泛使用以及信息和通信技术的发展,多媒体数据被越来越多地使用。因此,为了通过各种系统中的图像预测提供各种服务或执行各种任务,迫切需要提高图像处理系统的性能和效率。然而,研究和开发成果尚未跟得上这种趋势。With the widespread use of the Internet and portable terminals, and the development of information and communication technologies, multimedia data is being used more and more. Therefore, in order to provide various services or perform various tasks through image prediction in various systems, there is an urgent need to improve the performance and efficiency of image processing systems. However, research and development achievements have not kept pace with this trend.
因此,用于对图像进行编码/解码的现有方法和设备需要在图像处理、特别是在图像编码或图像解码中的性能改进。Therefore, existing methods and devices for encoding/decoding images need performance improvements in image processing, particularly in image encoding or image decoding.
发明内容Summary of the Invention
技术问题Technical issues
用于解决以上问题的本发明的目的是提供图像编码/解码设备,其使用调整偏移来修改运动矢量预测值。The purpose of this invention to solve the above problems is to provide an image encoding/decoding device that uses an adjustment offset to modify the motion vector prediction value.
技术解决方案Technical solutions
根据本发明的实施方式的用于实现以上目的的对图像进行解码的方法包括:构造目标块的运动信息预测候选列表,选择预测候选索引,得出预测运动矢量调整偏移,以及重构目标块的运动信息。According to an embodiment of the present invention, a method for decoding an image to achieve the above objectives includes: constructing a motion information prediction candidate list for a target block, selecting a prediction candidate index, obtaining a predicted motion vector adjustment offset, and reconstructing the motion information of the target block.
此处,构造运动信息预测候选列表还可以包括:当已经包括的候选、基于偏移信息获得的候选、新候选和基于偏移信息获得的候选不交叠时,在候选组中包括新候选。Here, constructing a candidate list for motion information prediction may also include: when the already included candidates, candidates obtained based on offset information, new candidates, and candidates obtained based on offset information do not overlap, the new candidate is included in the candidate group.
此处,得出预测运动矢量调整偏移还可以包括:基于偏移应用标志和/或偏移选择信息来得出预测运动矢量调整偏移。Here, deriving the predicted motion vector adjustment offset may also include: deriving the predicted motion vector adjustment offset based on the offset application flag and/or offset selection information.
有益效果Beneficial effects
在如上所述使用根据本发明的帧间预测的情况下,可以通过有效地获得预测运动矢量来提高编码性能。When using inter-frame prediction according to the present invention as described above, coding performance can be improved by efficiently obtaining the predicted motion vectors.
附图说明Attached Figure Description
图1是示出根据本发明的实施方式的图像编码和解码系统的框图。Figure 1 is a block diagram illustrating an image encoding and decoding system according to an embodiment of the present invention.
图2是示出根据本发明的示例性实施方式的图像编码设备的框图。Figure 2 is a block diagram illustrating an image encoding device according to an exemplary embodiment of the present invention.
图3示出了根据应用本发明的实施方式的图像解码设备。Figure 3 illustrates an image decoding device according to an embodiment of the present invention.
图4示出了作为应用本发明的实施方式的基于树结构的块划分(division)方法。Figure 4 illustrates a tree-based block partitioning method as an embodiment of the present invention.
图5是示出根据本发明通过帧间预测获得预测块的各种情况的示例图。Figure 5 is an example diagram illustrating various cases of obtaining prediction blocks through inter-frame prediction according to the present invention.
图6是根据本发明的实施方式构造参考图片列表的示例图。Figure 6 is an example diagram of constructing a list of reference pictures according to an embodiment of the present invention.
图7是示出根据本发明的实施方式的非平移运动模型的概念图。Figure 7 is a conceptual diagram illustrating a non-translational motion model according to an embodiment of the present invention.
图8是示出根据本发明的实施方式的以子块为单位的运动估计的示例图。Figure 8 is an example diagram illustrating motion estimation in units of sub-blocks according to an embodiment of the present invention.
图9是示出根据本发明的实施方式的运动信息的编码的流程图。Figure 9 is a flowchart illustrating the encoding of motion information according to an embodiment of the present invention.
图10是根据本发明的实施方式的目标块和与其相邻的块的布局图。Figure 10 is a layout diagram of the target block and its adjacent blocks according to an embodiment of the present invention.
图11示出了根据本发明的实施方式的统计候选的示例图。Figure 11 shows an example diagram of statistical candidates according to an embodiment of the present invention.
图12是根据本发明的实施方式的根据非平移运动模型的统计候选的概念图。Figure 12 is a conceptual diagram of statistical candidates based on a non-translational motion model according to an embodiment of the present invention.
图13是根据本发明的实施方式的作为统计候选而存储的每个控制点的位置的运动信息构造的示例图。Figure 13 is an example diagram of the construction of motion information of the position of each control point stored as a statistical candidate according to an embodiment of the present invention.
图14是示出根据本发明的实施方式的运动信息编码的流程图。Figure 14 is a flowchart illustrating motion information encoding according to an embodiment of the present invention.
图15是根据本发明的实施方式的目标块的运动矢量预测候选和运动矢量的示例图。Figure 15 is an example diagram of motion vector prediction candidates and motion vectors of a target block according to an embodiment of the present invention.
图16是根据本发明的实施方式的目标块的运动矢量预测候选和运动矢量的示例图。Figure 16 is an example diagram of motion vector prediction candidates and motion vectors of a target block according to an embodiment of the present invention.
图17是根据本发明的实施方式的目标块的运动矢量预测候选和运动矢量的示例图。Figure 17 is an example diagram of motion vector prediction candidates and motion vectors of a target block according to an embodiment of the present invention.
图18是示出根据本发明的实施方式的多个运动矢量预测值的布置的示例图。Figure 18 is an example diagram illustrating the arrangement of multiple motion vector prediction values according to an embodiment of the present invention.
图19是示出根据本发明的实施方式的合并模式下的运动信息编码的流程图。Figure 19 is a flowchart illustrating motion information encoding under a merging mode according to an embodiment of the present invention.
本发明的最佳模式The best mode of the invention
本发明的图像编码/解码方法和设备可以构造目标块的预测运动候选列表,基于预测候选索引从运动候选列表中得出预测运动矢量,重构预测运动矢量调整偏移信息,以及基于预测运动矢量和预测运动矢量调整偏移信息来重构目标块的运动矢量。The image encoding/decoding method and apparatus of the present invention can construct a predicted motion candidate list of a target block, derive a predicted motion vector from the motion candidate list based on the predicted candidate index, reconstruct the predicted motion vector adjustment offset information, and reconstruct the motion vector of the target block based on the predicted motion vector and the predicted motion vector adjustment offset information.
在本发明的图像编码/解码方法和设备中,运动候选列表可以包括空间候选、时间候选、统计候选或组合候选中的至少一个。In the image encoding/decoding method and apparatus of the present invention, the motion candidate list may include at least one of spatial candidates, temporal candidates, statistical candidates, or combined candidates.
在本发明的图像编码/解码方法和设备中,预测运动矢量调整偏移可以基于偏移应用标志或偏移选择信息中的至少一个来确定。In the image encoding/decoding method and apparatus of the present invention, the predicted motion vector adjustment offset can be determined based on at least one of an offset application flag or offset selection information.
在本发明的图像编码/解码方法和设备中,关于预测运动矢量调整偏移信息是否被支持的信息可以被包括在序列、图片、子图片、切片、图块或区块中的至少一个中。In the image encoding/decoding method and apparatus of the present invention, information regarding whether the predicted motion vector adjustment offset information is supported may be included in at least one of the sequence, image, sub-image, slice, tile, or block.
在本发明的图像编码/解码方法和设备中,当以合并模式对目标块进行编码时,可以通过使用零矢量来重构目标块的运动矢量,并且当以竞争模式对目标块进行编码时,可以通过使用运动矢量差来重构目标块的运动矢量。In the image encoding/decoding method and apparatus of the present invention, when encoding a target block in a merge mode, the motion vector of the target block can be reconstructed by using a zero vector, and when encoding a target block in a contention mode, the motion vector of the target block can be reconstructed by using a motion vector difference.
本发明的模式The mode of the present invention
本公开内容可以进行各种修改并且具有各种实施方式。将参照附图描述本公开内容的特定实施方式。然而,该实施方式并不旨在限制本公开内容的技术范围,并且应当理解,本公开内容涵盖了在本公开内容的范围和构思内的各种修改、等同形式和替选形式。This disclosure can be modified in various ways and has various implementations. Specific implementations of this disclosure will be described with reference to the accompanying drawings. However, these implementations are not intended to limit the technical scope of this disclosure, and it should be understood that this disclosure covers various modifications, equivalents, and alternatives within the scope and concept of this disclosure.
在本公开内容中使用的术语第一、第二、A和B可以用于描述各种部件,而不是限制部件。这些表述仅用于将一个部件与另一部件区分开。例如,在不脱离本公开内容的范围的情况下,第一部件可以被称为第二部件,并且,第二部件可以被称为第一部件。该术语和/或涵盖多个相关项的组合或多个相关项中的任何一个。The terms first, second, A, and B used in this disclosure may be used to describe various components, rather than to limit them. These expressions are used only to distinguish one component from another. For example, without departing from the scope of this disclosure, a first component may be referred to as a second component, and a second component may be referred to as a first component. The term and/or covers a combination of or any one of several related terms.
当提到一个部件“连接至”另一部件或“与另一部件耦接/耦接至”另一部件时,应当理解为一个部件直接或通过任何其他部件连接至其他部件。另一方面,当提到一个部件“直接连接至”或“直接耦接至”另一部件时,应当理解为在部件之间不存在其他部件。When a component is said to be "connected to" another component or "coupled to/coupled to" another component, it should be understood that a component is connected to the other component directly or through any other component. On the other hand, when a component is said to be "directly connected to" or "directly coupled to" another component, it should be understood that there are no other components between the components.
提供在本公开内容中使用的术语仅用于描述特定实施方式,而不旨在限制本公开内容。除非上下文另有明确规定,否则单数形式包括复数指代。在本公开内容中,术语“包括”或“具有”表明特征、数字、步骤、操作、部件、零件或其组合的存在,但不排除存在或添加一个或更多个其他特征、数字、步骤、操作、部件、零件或其组合。The terminology used in this disclosure is for the purpose of describing particular embodiments only and is not intended to limit the disclosure. Unless the context clearly specifies otherwise, the singular form includes the plural reference. In this disclosure, the terms “comprising” or “having” indicate the presence of a feature, number, step, operation, component, part, or combination thereof, but do not exclude the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.
除非另有定义,否则本公开内容中使用的包括技术或科学术语的术语可以具有与本领域技术人员通常理解的含义相同的含义。字典中通常定义的术语可以被解释为与相关技术的上下文含义具有相同或类似的含义。除非另有定义,否则这些术语不应被解释为理想或过度形式的含义。Unless otherwise defined, terms including technical or scientific terms used in this disclosure may have the same meaning as commonly understood by those skilled in the art. Terms that are commonly defined in dictionaries may be interpreted as having the same or similar meaning as in the context of the relevant art. Unless otherwise defined, these terms should not be interpreted as having an ideal or overly formal meaning.
通常,图像可以根据其颜色格式包括一个或更多个颜色空间。该图像可以包括相同尺寸的一个或更多个图片或者不同尺寸的一个或更多个图片。例如,YCbCr颜色配置可以支持例如4:4:4、4:2:2、4:2:0和单色(仅由Y组成)的颜色格式。例如,YCbCr 4:2:0可以由一个亮度分量(在该示例中的Y)和两个色度分量(在该示例中的Cb/Cr)组成。在这种情况下,色度分量和亮度分量的配置比可以具有1:2的宽度-高度。例如,在4:4:4的情况下,其在宽度和高度方面可以具有相同的配置比。如以上示例中那样,当图片包括一个或更多个颜色空间时,可以将图片划分成颜色空间。Typically, an image can include one or more color spaces depending on its color format. The image can include one or more images of the same size or one or more images of different sizes. For example, the YCbCr color configuration can support color formats such as 4:4:4, 4:2:2, 4:2:0, and monochrome (consisting only of Y). For example, YCbCr 4:2:0 can consist of one luminance component (Y in this example) and two chrominance components (Cb/Cr in this example). In this case, the configuration ratio of the chrominance and luminance components can have a width-to-height ratio of 1:2. For example, in the case of 4:4:4, it can have the same configuration ratio in terms of width and height. As in the examples above, when an image includes one or more color spaces, the image can be divided into color spaces.
可以根据图像的图像类型(例如,图片类型、子图片类型、切片类型、图块类型、区块类型等)将图像分类为I、P和B。I图片可以是在没有参考图片的情况下被编码的图像。P图片可以是使用参考图片进行编码、仅允许前向预测的图像。B图片可以是使用参考图片进行编码、允许双向预测的图像。然而,根据编码设置,可以组合一些类型(P和B)或者可以支持不同组成的图像类型。Images can be classified into I, P, and B based on their image type (e.g., picture type, subpicture type, slice type, tile type, block type, etc.). I images can be images encoded without a reference image. P images can be images encoded using a reference image, allowing only forward prediction. B images can be images encoded using a reference image, allowing bidirectional prediction. However, depending on the encoding settings, some types (P and B) can be combined, or different compositions of image types can be supported.
在本公开内容中生成的各种编码/解码信息片段可以被显式地或隐式地处理。显式处理可以被理解为以下处理:通过编码器生成序列、图片、子图片、切片、图块、区块、块或子块中的编码/解码信息,并且将选择信息包括在比特流中,并且通过解码器在与编码器中相同的单元级别解析相关信息来将相关信息重构为解码信息。隐式处理可以被理解为在编码器和解码器两者处以相同的过程、规则等处理编码/解码信息。The various encoded/decoded information fragments generated in this disclosure can be processed explicitly or implicitly. Explicit processing can be understood as the following: generating encoded/decoded information in sequences, images, sub-images, slices, tiles, blocks, chunks, or sub-blocks by an encoder, including selection information in the bitstream, and reconstructing the relevant information into decoded information by a decoder parsing the relevant information at the same unit level as in the encoder. Implicit processing can be understood as processing the encoded/decoded information using the same procedures, rules, etc., at both the encoder and decoder.
图1是示出根据本公开内容的实施方式的图像编码和解码系统的概念图。Figure 1 is a conceptual diagram illustrating an image encoding and decoding system according to an embodiment of the present disclosure.
参照图1,图像编码设备105和图像解码设备100中的每一个可以是用户终端,例如,个人计算机(PC)、膝上型计算机、个人数字助理(PDA)、便携式多媒体播放器(PMP)、便携式游戏机(PSP)、无线通信终端、智能电话或电视(TV)、或者诸如应用服务器或服务服务器的服务器终端。图像编码设备105和图像解码设备100中的每一个可以是各种装置中的任何一种,每个装置包括:与各种装置或有线/无线通信网络通信的诸如通信调制解调器的通信装置;存储用于帧间预测或帧内预测的各种程序和数据以对图像进行编码或解码的存储器120或125;或者通过执行程序来执行计算和控制操作的处理器110或115。Referring to FIG1, each of the image encoding device 105 and the image decoding device 100 may be a user terminal, such as a personal computer (PC), laptop computer, personal digital assistant (PDA), portable multimedia player (PMP), portable game console (PSP), wireless communication terminal, smartphone, or television (TV), or a server terminal such as an application server or service server. Each of the image encoding device 105 and the image decoding device 100 may be any of a variety of devices, each device including: a communication device such as a communication modem that communicates with various devices or wired/wireless communication networks; a memory 120 or 125 that stores various programs and data for inter-frame prediction or intra-frame prediction to encode or decode images; or a processor 110 or 115 that performs calculation and control operations by executing programs.
此外,图像编码设备105可以通过诸如因特网、短距离无线通信网、无线局域网(WLAN)、无线宽带(Wi-Bro)网或移动通信网的有线/无线通信网或者经由诸如电缆或通用串行总线(USB)的各种通信接口实时地或非实时地将编码为比特流的图像发送至图像解码设备100,并且图像解码设备100可以通过解码比特流将接收到的比特流重构为图像,并且再现该图像。此外,图像编码设备105可以通过计算机可读记录介质将编码为比特流的图像发送至图像解码设备100。Furthermore, the image encoding device 105 can transmit images encoded as bitstreams to the image decoding device 100 in real time or non-real time via wired/wireless communication networks such as the Internet, short-range wireless communication networks, wireless local area networks (WLANs), wireless broadband (Wi-Bro) networks, or mobile communication networks, or via various communication interfaces such as cables or universal serial buses (USB). The image decoding device 100 can reconstruct the image from the received bitstream by decoding the bitstream and reproduce the image. Additionally, the image encoding device 105 can transmit images encoded as bitstreams to the image decoding device 100 via a computer-readable recording medium.
虽然上述图像编码设备和图像解码设备可以是单独的设备,但是根据实现方式,它们可以被并入单个图像编码/解码设备中。在这种情况下,图像编码设备的一些部件可以与图像解码设备的它们的对应部件基本相同。因此,这些部件可以被配置成包括相同的结构或执行至少相同的功能。Although the aforementioned image encoding and image decoding devices can be separate devices, depending on the implementation, they can be incorporated into a single image encoding/decoding device. In this case, some components of the image encoding device can be substantially the same as their corresponding components of the image decoding device. Therefore, these components can be configured to include the same structure or perform at least the same function.
因此,在以下对技术部件及其操作原理的详细描述中,将取消对相应技术部件的多余描述。此外,由于图像解码设备是将在图像编码设备中执行的图像编码方法应用于解码的计算装置,因此以下描述将集中于图像编码设备。Therefore, in the following detailed description of the technical components and their operating principles, redundant descriptions of the corresponding technical components will be omitted. Furthermore, since the image decoding device is a computing device that applies the image encoding method executed in the image encoding device to decoding, the following description will focus on the image encoding device.
计算装置可以包括:存储器,其存储执行图像编码方法和/或图像解码方法的程序或软件模块;以及处理器,其连接至存储器并且执行程序。图像编码设备可以被称为编码器,并且图像解码设备可以被称为解码器。The computing device may include: a memory storing programs or software modules that perform image encoding and/or image decoding methods; and a processor connected to the memory and executing the programs. An image encoding device may be referred to as an encoder, and an image decoding device may be referred to as a decoder.
图2是示出根据本公开内容的实施方式的图像编码设备的框图。Figure 2 is a block diagram illustrating an image encoding apparatus according to an embodiment of the present disclosure.
参照图2,图像编码设备20可以包括预测单元200、减法单元205、变换单元210、量化单元215、逆量化单元220、逆变换单元225、加法单元230、滤波器单元235、编码图片缓冲器240和熵编码单元245。Referring to FIG2, the image encoding device 20 may include a prediction unit 200, a subtraction unit 205, a transformation unit 210, a quantization unit 215, an inverse quantization unit 220, an inverse transformation unit 225, an addition unit 230, a filter unit 235, an encoded image buffer 240, and an entropy encoding unit 245.
预测单元200可以使用作为软件模块的预测模块来实现,并且针对要被编码的块通过帧内预测或帧间预测来生成预测块。预测单元200可以通过预测在图像中要被编码的目标块来生成预测块。换言之,预测单元200可以通过根据帧间预测或帧内预测来预测目标块中像素的像素值来生成具有每个像素的预测像素值的预测块。此外,预测单元200可以将生成预测块所需的信息——例如关于如帧内预测模式或帧间预测模式的预测模式的信息——提供给编码单元,使得编码单元可以对关于预测模式的信息进行编码。可以根据编码设置来确定经受预测的处理单元、预测方法和关于处理单元的具体细节。例如,可以基于预测单元来确定预测方法和预测模式,并且可以基于变换单元执行预测。另外,当使用特定编码模式时,可以对原始块进行原样编码,并且将其发送至解码器,而无需通过预测单元生成预测块。The prediction unit 200 can be implemented using a prediction module as a software module, and generates prediction blocks for the blocks to be encoded via intra-frame prediction or inter-frame prediction. The prediction unit 200 can generate prediction blocks by predicting the target block to be encoded in the image. In other words, the prediction unit 200 can generate prediction blocks with predicted pixel values for each pixel by predicting the pixel values of pixels in the target block based on inter-frame prediction or intra-frame prediction. Furthermore, the prediction unit 200 can provide the encoding unit with information required to generate prediction blocks—such as information about prediction modes, like intra-frame prediction or inter-frame prediction modes—so that the encoding unit can encode the information about the prediction modes. The processing unit undergoing prediction, the prediction method, and specific details about the processing unit can be determined based on the encoding settings. For example, the prediction method and prediction mode can be determined based on the prediction unit, and prediction can be performed based on the transform unit. Additionally, when using a specific encoding mode, the original block can be encoded as is and sent to the decoder without generating prediction blocks through the prediction unit.
帧内预测单元可以具有:定向预测模式,例如根据预测方向使用的水平模式、垂直模式等;以及非定向预测模式,例如使用诸如对参考像素进行求平均和内插的方法的DC、平面等。帧内预测模式候选组可以通过定向和非定向模式来构造,并且诸如35个预测模式(33个定向+2个非定向)、67个预测模式(65个定向+2个非定向)、131个预测模式(129个定向+2个非定向)的各种候选之一可以用作候选组。Intra-prediction units can have: directional prediction modes, such as horizontal modes, vertical modes, etc., used according to the prediction direction; and non-directional prediction modes, such as DC, plane, etc., using methods such as averaging and interpolating reference pixels. Intra-prediction mode candidate groups can be constructed using directional and non-directional modes, and one of various candidates, such as 35 prediction modes (33 directional + 2 non-directional), 67 prediction modes (65 directional + 2 non-directional), or 131 prediction modes (129 directional + 2 non-directional), can be used as candidate groups.
帧内预测单元可以包括参考像素构造单元、参考像素滤波器单元、参考像素内插单元、预测模式确定单元、预测块生成单元和预测模式编码单元。参考像素构造单元可以将属于与目标块相邻且与目标块相邻的块的像素构造为用于帧内预测的参考像素。根据编码设置,一个相邻的参考像素线可以被构造为参考像素,或者另一相邻的参考像素线可以被构造为参考像素,或者多个参考像素线可以被构造为参考像素。当参考像素中的一些不可用时,可以使用可用的参考像素来生成参考像素。当所有参考像素都不可用时,预定值(例如,由位深度表示的像素值范围的中值等)可以用于生成参考像素。The intra-prediction unit may include a reference pixel construction unit, a reference pixel filter unit, a reference pixel interpolation unit, a prediction mode determination unit, a prediction block generation unit, and a prediction mode coding unit. The reference pixel construction unit can construct pixels belonging to and adjacent to the target block as reference pixels for intra-prediction. Depending on the coding settings, one adjacent reference pixel line can be constructed as a reference pixel, or another adjacent reference pixel line can be constructed as a reference pixel, or multiple reference pixel lines can be constructed as reference pixels. When some reference pixels are unavailable, available reference pixels can be used to generate a reference pixel. When all reference pixels are unavailable, a predetermined value (e.g., the median of the pixel value range represented by the bit depth) can be used to generate a reference pixel.
出于减少通过编码处理而剩余的劣化的目的,帧内预测单元的参考像素滤波器单元可以对参考像素执行滤波。在这种情况下,使用的滤波器可以是低通滤波器,例如3抽头滤波器[1/4,1/2,1/4]、5抽头滤波器[2/16,3/16,6/16,3/16,2/16]等。是否应用滤波和滤波类型可以根据编码信息(例如,块大小、形状、预测模式等)来确定。To reduce degradation remaining after coding processing, the reference pixel filter unit of the intra-prediction unit can perform filtering on the reference pixel. In this case, the filter used can be a low-pass filter, such as a 3-tap filter [1/4, 1/2, 1/4], a 5-tap filter [2/16, 3/16, 6/16, 3/16, 2/16], etc. Whether to apply filtering and the type of filtering can be determined based on coding information (e.g., block size, shape, prediction mode, etc.).
帧内预测单元的参考像素内插单元可以根据预测模式通过参考像素的线性内插处理来生成分数单位的像素,并且可以确定根据编码信息应用的内插滤波器。在这种情况下,所使用的内插滤波器可以包括4抽头立方滤波器、4抽头高斯滤波器、6抽头维纳滤波器、8抽头卡尔曼滤波器等。通常,内插与执行低通滤波器的处理分开执行,但是滤波处理可以通过将应用于两个处理的滤波器集成为一个来执行。The reference pixel interpolation unit of the intra-prediction unit can generate fractional-unit pixels based on the prediction mode through linear interpolation of the reference pixels, and can determine the interpolation filter to be applied based on the coding information. In this case, the interpolation filter used may include a 4-tap cubic filter, a 4-tap Gaussian filter, a 6-tap Wiener filter, an 8-tap Kalman filter, etc. Typically, interpolation and low-pass filtering are performed separately, but the filtering process can be performed by combining the filters applied to both processes into one.
帧内预测单元的预测模式确定单元可以考虑编码成本从预测模式候选之中选择至少一个最佳预测模式,并且预测块生成单元可以使用对应的预测模式来生成预测块。预测模式编码单元可以基于预测值对最佳预测模式进行编码。在这种情况下,可以根据预测值正确与否的情况自适应地编码预测信息。The prediction mode determination unit of the intra-frame prediction unit can select at least one optimal prediction mode from the prediction mode candidates, taking coding cost into account, and the prediction block generation unit can use the corresponding prediction mode to generate a prediction block. The prediction mode coding unit can encode the optimal prediction mode based on the prediction value. In this case, the prediction information can be adaptively encoded according to whether the prediction value is correct or not.
在帧内预测单元中,预测值被称为最可能模式即MPM,并且属于预测模式候选组的模式中的一些可以被构造为MPM候选组。MPM候选组可以包括预定的预测模式(例如,DC模式、平面模式、垂直模式、水平模式、对角模式等)或者空间上相邻的块(例如,左块、上块、左上块、右上块、左下块等)的预测模式。另外,从先前包括在MPM候选组中的模式得出的模式(在定向模式的情况下的+1与-1之间的差)可以被构造为MPM候选组。In an intra-frame prediction unit, the predicted value is called the most probable mode (MPM), and some modes belonging to the prediction mode candidate group can be constructed into an MPM candidate group. The MPM candidate group can include predicted modes of a predetermined prediction mode (e.g., DC mode, planar mode, vertical mode, horizontal mode, diagonal mode, etc.) or predicted modes of spatially adjacent blocks (e.g., left block, top block, top-left block, top-right block, bottom-left block, etc.). Additionally, modes derived from modes previously included in the MPM candidate group (the difference between +1 and -1 in the case of directional mode) can also be constructed into an MPM candidate group.
可能存在用于构造MPM候选组的预测模式的优先级。可以根据优先级来确定被包括在MPM候选组中的顺序,并且当根据优先级来填充MPM候选组的数目(根据预测模式候选组的数目来确定)时,可以完成MPM候选组构造。在这种情况下,可以按照空间上相邻的块的预测模式、预定的预测模式以及从先前包括在MPM候选组中的预测模式得出的模式的顺序来确定优先级,但是其他修改也是可行的。There may be a priority for the prediction patterns used to construct MPM candidate groups. The order in which patterns are included in the MPM candidate groups can be determined based on the priority, and the construction of MPM candidate groups can be completed by filling the number of MPM candidate groups according to the priority (determined by the number of prediction pattern candidate groups). In this case, the priority can be determined according to the order of prediction patterns of spatially adjacent blocks, predetermined prediction patterns, and patterns derived from prediction patterns previously included in the MPM candidate groups, but other modifications are also possible.
例如,空间上相邻的块可以按照左块、上块、左下块、右上块、左上块等的顺序被包括在候选组中,并且预定的预测模式可以按照DC模式、平面模式、垂直模式、水平模式的顺序被包括在候选组中。总共六个模式可以通过包括如下模式而被构造为候选组,该模式通过从已经包括的模式向候选组添加+1、-1等而获得。替选地,总共7个模式可以通过包括诸如左、上、DC、平面、左下、右上、左上、(左+1)、(左-1)、(上+1)的一个优先级来被构造为候选组。For example, spatially adjacent blocks can be included in the candidate group in the order of left block, top block, bottom left block, top right block, top left block, etc., and predetermined prediction patterns can be included in the candidate group in the order of DC pattern, planar pattern, vertical pattern, and horizontal pattern. A total of six patterns can be constructed into candidate groups by including patterns obtained by adding +1, -1, etc., to the candidate groups from already included patterns. Alternatively, a total of seven patterns can be constructed into candidate groups by including a priority such as left, top, DC, planar, bottom left, top right, top left, (left+1), (left-1), (top+1).
减法单元205可以通过从目标块减去预测块来生成残差块。换言之,减法单元205可以计算要编码的目标块中的每个像素的像素值与由预测单元生成的预测块中的对应像素的预测像素值之间的差,以生成块的形式的残差信号即残差块。此外,减法单元205可以以除了通过稍后描述的块划分单元获得的块之外的单元生成残差块。Subtraction unit 205 can generate residual blocks by subtracting prediction blocks from target blocks. In other words, subtraction unit 205 can calculate the difference between the pixel value of each pixel in the target block to be encoded and the predicted pixel value of the corresponding pixel in the prediction block generated by the prediction unit, to generate a residual signal in the form of a block, i.e., a residual block. Furthermore, subtraction unit 205 can generate residual blocks using units other than those obtained by the block partitioning unit described later.
变换单元210可以将空间信号变换为频率信号。通过变换处理获得的信号被称为变换系数。例如,具有从减法单元接收的残差信号的残差块可以被变换为具有变换系数的变换块,并且根据编码配置来确定输入信号,该输入信号不限于残差信号。Transformation unit 210 can transform a spatial signal into a frequency signal. The signal obtained through the transformation process is called the transform coefficient. For example, a residual block having a residual signal received from a subtraction unit can be transformed into a transform block with transform coefficients, and the input signal is determined according to the encoding configuration, which is not limited to the residual signal.
变换单元可以通过但是不限于诸如哈达玛变换、基于离散正弦变换(DST)的变换或基于DCT的变换的变换方案来变换残差块。这些变换方案可以以各种方式改变和修改。Transformation units can transform residual blocks using transformation schemes such as, but not limited to, Hadamard transform, discrete sine transform (DST)-based transform, or DCT-based transform. These transformation schemes can be changed and modified in various ways.
可以支持所述变换方案中的至少一个,并且可以支持每个变换方案的至少一个子变换方案。可以通过修改变换方案中的基本矢量的一部分来获得子变换方案。It can support at least one of the transformation schemes, and can support at least one sub-transformation scheme for each transformation scheme. A sub-transformation scheme can be obtained by modifying a portion of the fundamental vectors in the transformation scheme.
例如,在DCT的情况下,可以支持子变换方案DCT-1至DCT-8中的一个或更多个,并且在DST的情况下,可以支持子变换方案DST-1至DST-8中的一个或更多个。变换方案候选组可以被配置有子变换方案的一部分。例如,DCT-2、DCT-8和DST-7可以被分组为用于变换的候选组。For example, in the case of DCT, one or more sub-transformation schemes DCT-1 to DCT-8 can be supported, and in the case of DST, one or more sub-transformation schemes DST-1 to DST-8 can be supported. A transformation scheme candidate group can be configured with a portion of the sub-transformation schemes. For example, DCT-2, DCT-8, and DST-7 can be grouped into a candidate group for transform.
可以在水平方向/垂直方向上执行变换。例如,通过DCT-2可以在水平方向上执行一维变换,并且通过DST-7可以在垂直方向上执行一维变换。利用二维变换,可以将像素值从空间域变换至频域。Transformations can be performed in both the horizontal and vertical directions. For example, a one-dimensional transformation can be performed in the horizontal direction using DCT-2, and a one-dimensional transformation can be performed in the vertical direction using DST-7. Two-dimensional transformations can be used to transform pixel values from the spatial domain to the frequency domain.
可以采用一个固定变换方案,或者可以根据编码配置自适应地选择变换方案。在后一种情况下,可以显式地或隐式地选择变换方案。当显式地选择变换方案时,可以例如在块级别生成关于在水平方向和垂直方向中的每一个上应用的变换方案或变换方案集的信息。当隐式地选择变换方案时,可以根据图像类型(I/P/B)、颜色分量、块尺寸、块形状、块位置、帧内预测模式等来限定编码配置,并且可以根据编码设置来选择预定的变换方案。A fixed transform scheme can be used, or the transform scheme can be adaptively selected based on the coding configuration. In the latter case, the transform scheme can be selected explicitly or implicitly. When the transform scheme is selected explicitly, information about the transform scheme or set of transform schemes applied in each of the horizontal and vertical directions can be generated, for example, at the block level. When the transform scheme is selected implicitly, the coding configuration can be limited based on image type (I/P/B), color components, block size, block shape, block position, intra-frame prediction mode, etc., and a predetermined transform scheme can be selected based on the coding settings.
此外,可以根据编码设置跳过一些变换。也就是说,可以显式地或隐式地省略水平单元和垂直单元中的一个或更多个。In addition, some transformations can be skipped depending on the encoding settings. That is, one or more horizontal and vertical units can be explicitly or implicitly omitted.
此外,变换单元可以将生成变换块所需的信息发送至编码单元,使得编码单元对信息进行编码,将经编码信息包括在比特流中,并且将比特流发送至解码器。因此,解码器的解码单元可以对来自比特流的信息进行解析,以用于逆变换。Furthermore, the transform unit can send the information needed to generate the transform block to the encoding unit, which encodes the information, includes the encoded information in the bitstream, and sends the bitstream to the decoder. Therefore, the decoder's decoding unit can parse the information from the bitstream for inverse transform.
量化单元215可以对输入信号进行量化。从量化获得的信号被称为量化系数。例如,量化单元215可以通过对具有从变换单元接收的残差变换系数的残差块进行量化来获得具有量化系数的量化块,并且可以根据编码设置确定输入信号,该编码设置不限于残差变换系数。The quantization unit 215 can quantize the input signal. The signal obtained from the quantization is called the quantization coefficient. For example, the quantization unit 215 can obtain a quantized block with quantization coefficients by quantizing a residual block having residual transform coefficients received from the transform unit, and can determine the input signal according to the encoding settings, which are not limited to the residual transform coefficients.
量化单元可以通过但不限于诸如死区均匀边界值量化、量化加权矩阵等的量化方案对变换的残差块进行量化。可以以各种方式改变和修改以上量化方案。The quantization unit can quantize the residual block of the transformation using quantization schemes such as, but not limited to, dead-zone uniform boundary value quantization and quantization weighted matrix. These quantization schemes can be changed and modified in various ways.
可以根据编码设置跳过量化。例如,可以根据编码设置(例如,量化参数为0,即无损压缩环境)来跳过量化(和逆量化)。在另一示例中,当考虑到图像的特性而没有执行基于量化的压缩性能时,可以省略量化处理。在量化块(M×N)的整个或部分区域(M/2×N/2、M×N/2或M/2×N)中可以跳过量化,并且可以显式地或隐式地设置量化跳过选择信息。Quantization can be skipped based on encoding settings. For example, quantization (and inverse quantization) can be skipped based on encoding settings (e.g., a quantization parameter of 0, i.e., a lossless compression environment). In another example, quantization can be omitted when quantization-based compression performance is not performed due to image characteristics. Quantization can be skipped in the entirety or a portion of a quantization block (M×N) (M/2×N/2, M×N/2, or M/2×N), and quantization skip selection information can be set explicitly or implicitly.
量化单元可以将生成量化块所需的信息发送至编码单元,使得编码单元对该信息进行编码,将经编码信息包括在比特流上,并且将比特流发送至解码器。因此,解码器的解码单元可以对来自比特流的信息进行解析,以用于逆量化。The quantization unit can send the information needed to generate the quantization block to the encoding unit, which then encodes the information, includes the encoded information in the bitstream, and sends the bitstream to the decoder. Therefore, the decoder's decoding unit can parse the information from the bitstream for inverse quantization.
尽管在假设通过变换单元和量化单元对残差块进行变换和量化的情况下描述了以上示例,但是可以通过对残差信号进行变换来生成具有变换系数的残差块,并且可以不对其进行量化。残差块可以仅经受量化而不经受变换。此外,残差块可以经受变换和量化两者。这些操作可以根据编码设置来确定。Although the above example was described assuming that the residual block is transformed and quantized via a transform unit and a quantization unit, a residual block with transform coefficients can be generated by transforming the residual signal without quantization. The residual block can undergo quantization only without transformation. Alternatively, the residual block can undergo both transformation and quantization. These operations can be determined based on the encoding settings.
逆量化单元220对由量化单元215量化的残差块进行逆量化。也就是说,逆量化单元220通过对量化频率系数序列进行逆量化来生成具有频率系数的残差块。The inverse quantization unit 220 performs inverse quantization on the residual block quantized by the quantization unit 215. That is, the inverse quantization unit 220 generates a residual block with frequency coefficients by performing inverse quantization on the quantized frequency coefficient sequence.
逆变换单元225对由逆量化单元220逆量化的残差块进行逆变换。也就是说,逆变换单元225对逆量化的残差块的频率系数进行逆变换,以生成具有像素值的残差块,即重构的残差块。逆变换单元225可以通过相反地执行由变换单元210使用的变换方案来执行逆变换。The inverse transform unit 225 performs an inverse transform on the residual block dequantized by the inverse quantization unit 220. That is, the inverse transform unit 225 performs an inverse transform on the frequency coefficients of the dequantized residual block to generate a residual block with pixel values, i.e., a reconstructed residual block. The inverse transform unit 225 can perform the inverse transform by reversing the transform scheme used by the transform unit 210.
加法单元230通过将由预测单元200预测的预测块与由逆变换单元225恢复的残差块相加来重构目标块。重构的目标块作为参考图片(或参考块)被存储在编码图片缓冲器240中,以在稍后对目标块的下一块、另一块或另一图片进行编码时用作参考图片。Addition unit 230 reconstructs the target block by adding the predicted block predicted by prediction unit 200 to the residual block recovered by inverse transform unit 225. The reconstructed target block is stored as a reference picture (or reference block) in encoded picture buffer 240 for use as a reference picture when encoding the next block, another block, or another picture of the target block later.
滤波器单元235可以包括一个或更多个后处理滤波器,例如解块滤波器、样本自适应偏移SAO和自适应环路滤波器ALF。解块滤波器可以去除在重构图片中的块之间的边界处发生的块失真。ALF可以基于通过对在通过解块滤波器对块进行滤波之后的重构图像与原始图像进行比较而获得的值来执行滤波。SAO可以对在原始图像与应用解块滤波器的残差块之间的像素级别的偏移差进行重构。这些后处理滤波器可以应用于重构的图片或块。Filter unit 235 may include one or more post-processing filters, such as a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF). The deblocking filter removes block distortion occurring at boundaries between blocks in the reconstructed image. The ALF performs filtering based on values obtained by comparing the reconstructed image after filtering the blocks with the deblocking filter with the original image. The SAO reconstructs the pixel-level offset difference between the original image and the residual blocks to which the deblocking filter was applied. These post-processing filters can be applied to the reconstructed image or blocks.
编码图片缓冲器240可以存储由滤波器单元235重构的块或图片。存储在编码图片缓冲器240中的重构块或图片可以被提供给执行帧内预测或帧间预测的预测单元200。The encoded image buffer 240 can store blocks or images reconstructed by the filter unit 235. The reconstructed blocks or images stored in the encoded image buffer 240 can be provided to the prediction unit 200 that performs intra-frame prediction or inter-frame prediction.
熵编码单元245可以通过根据至少一个扫描顺序(例如,之字形扫描、垂直扫描、水平扫描等)扫描所生成的残差块的量化系数、变换系数或残差信号来生成量化系数序列、变换系数序列或信号序列。熵编码单元245可以通过使用至少一种熵编码技术来编码量化系数序列、变换系数序列或信号序列。在这种情况下,可以根据编码设置(例如,图像类型、编码模式、预测模式、变换类型等)来确定关于扫描顺序的信息,并且可以隐式地确定或显式地生成相关信息。Entropy coding unit 245 can generate a quantization coefficient sequence, a transform coefficient sequence, or a signal sequence by scanning the quantization coefficients, transform coefficients, or residual signals of the generated residual block according to at least one scanning order (e.g., zigzag scanning, vertical scanning, horizontal scanning, etc.). Entropy coding unit 245 can encode the quantization coefficient sequence, transform coefficient sequence, or signal sequence using at least one entropy coding technique. In this case, information about the scanning order can be determined according to coding settings (e.g., image type, coding mode, prediction mode, transform type, etc.), and the relevant information can be implicitly determined or explicitly generated.
另外,可以生成包括从每个部件发送的编码信息的编码数据,并且作为比特流输出,这可以由多路复用器(MUX)实现。在这种情况下,可以通过使用诸如指数Golomb、上下文自适应可变长度编码(CAVLC)和上下文自适应二进制算术编码(CABAC)的方法作为编码技术来执行编码,但是不限于此,并且可以使用从中提炼和修改的各种编码技术。Additionally, encoded data, including the encoded information sent from each component, can be generated and output as a bitstream, which can be implemented by a multiplexer (MUX). In this case, encoding can be performed using methods such as exponential Golomb, context-adaptive variable-length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC) as encoding techniques, but is not limited to these, and various encoding techniques derived from and modified from them can be used.
当对诸如编码/解码处理中生成的残留块数据和信息的语法元素执行熵编码(在该示例中假设CABAC)时,熵编码设备可以包括二值化单元(二值化器)、上下文建模器、二进制算术编码单元(二进制算术编码器)。在这种情况下,二进制算术编码单元可以包括常规编码引擎和旁路编码引擎。When entropy encoding (assuming CABAC in this example) is performed on syntax elements such as residual block data and information generated during encoding/decoding processes, an entropy encoding device may include a binarization unit (binarizer), a context modeler, and a binary arithmetic encoding unit (binary arithmetic encoder). In this case, the binary arithmetic encoding unit may include a regular encoding engine and a bypass encoding engine.
由于输入至熵编码设备的语法元素可以不是二进制值,如果语法元素不是二进制值,则二值化单元可以将语法元素二值化并且输出由0或1组成的二进制串(bin string)。在这种情况下,二进制(bin)可以代表由0或1组成的位,并且可以通过二进制算术编码单元进行编码。在这种情况下,可以基于0和1的出现概率来选择常规编码单元或旁路编码单元之一,并且这可以根据编码/解码设置来确定。如果语法元素是具有0和1的相同频率的数据,则可以使用旁路编码单元,否则,可以使用常规编码单元。Since the syntax elements input to the entropy coding device may not be binary values, if the syntax element is not a binary value, the binarization unit can binarize the syntax element and output a binary string consisting of 0s or 1s. In this case, the binary (bin) can represent bits consisting of 0s or 1s and can be encoded by the binary arithmetic coding unit. In this case, one of the regular coding unit or the bypass coding unit can be selected based on the probability of occurrence of 0s and 1s, and this can be determined according to the encoding/decoding settings. If the syntax element is data with the same frequency of 0s and 1s, the bypass coding unit can be used; otherwise, the regular coding unit can be used.
当对语法元素执行二值化时,可以使用各种方法。例如,可以使用固定长度二值化、一元二值化、截断莱斯二值化、K阶指数哥伦布二值化等。另外,可以根据语法元素的值的范围来执行带符号二值化或无符号二值化。可以执行本发明中出现的语法元素的二值化处理,不仅包括以上示例中提到的二值化,而且还包括其他附加的二值化方法。Various methods can be used when binarizing grammatical elements. For example, fixed-length binarization, unary binarization, truncated Ricean binarization, and K-order exponential Golomb binarization can be used. Additionally, signed or unsigned binarization can be performed depending on the range of values for the grammatical element. The binarization processing of grammatical elements described in this invention can be performed not only on the binarization methods mentioned in the examples above, but also on other additional binarization methods.
图3是示出根据本公开内容的实施方式的图像解码设备的框图。Figure 3 is a block diagram illustrating an image decoding apparatus according to an embodiment of the present disclosure.
参照图3,图像解码设备30可以被配置成包括熵解码器305、预测单元310、逆量化单元315、逆变换单元320、加法单元/减法单元325、滤波器330和解码图片缓冲器335。Referring to Figure 3, the image decoding device 30 can be configured to include an entropy decoder 305, a prediction unit 310, an inverse quantization unit 315, an inverse transform unit 320, an addition/subtraction unit 325, a filter 330, and a decoded image buffer 335.
此外,预测单元310可以被配置成包括帧内预测模块和帧间预测模块。Furthermore, the prediction unit 310 can be configured to include an intra-frame prediction module and an inter-frame prediction module.
当从图像编码设备20接收到图像比特流时,可以将图像比特流发送至熵解码器305。When an image bitstream is received from the image encoding device 20, it can be sent to the entropy decoder 305.
熵解码器305可以将比特流解码为包括量化系数的解码数据和要被发送至每个部件的解码信息。The entropy decoder 305 can decode the bitstream into decoded data including quantization coefficients and decoded information to be sent to each component.
预测单元310可以基于从熵解码器305接收的数据生成预测块。基于存储在解码图片缓冲器335中的参考图像,可以使用默认配置方案来产生参考图片列表。Prediction unit 310 can generate prediction blocks based on data received from entropy decoder 305. A list of reference images can be generated using a default configuration scheme based on reference images stored in decoded image buffer 335.
帧内预测单元可以包括参考样本构造单元、参考样本滤波器单元、参考样本内插单元、预测块生成单元、预测模式解码单元。部件中的一些可以执行与编码器中相同的处理,并且其他部件可以相反地执行编码器的处理。The intra-frame prediction unit may include a reference sample construction unit, a reference sample filter unit, a reference sample interpolation unit, a prediction block generation unit, and a prediction mode decoding unit. Some of these units may perform the same processing as in the encoder, while others may perform the encoder's processing in reverse.
逆量化单元315可以对在比特流中提供并且由熵解码器305解码的经量化的变换系数进行逆量化。The inverse quantization unit 315 can inverse quantize the quantized transform coefficients provided in the bitstream and decoded by the entropy decoder 305.
逆变换单元320可以通过对变换系数应用逆DCT、逆整数变换或类似的逆变换技术来生成残差块。The inverse transform unit 320 can generate residual blocks by applying inverse DCT, inverse integer transform, or similar inverse transform techniques to the transform coefficients.
逆量化单元315和逆变换单元320可以反向地执行上述图像编码设备20的变换单元210和量化单元215的处理,并且可以以各种方式实现。例如,逆量化单元315和逆变换单元320可以使用与变换单元210和量化单元215共享的相同处理和逆变换,并且可以使用从图像编码设备20接收的关于变换和量化处理的信息(例如,变换尺寸、变换形状、量化类型等)来反向地执行变换和量化。The inverse quantization unit 315 and the inverse transform unit 320 can perform the processing of the transform unit 210 and the quantization unit 215 of the image encoding device 20 in reverse, and can be implemented in various ways. For example, the inverse quantization unit 315 and the inverse transform unit 320 can use the same processing and inverse transform shared with the transform unit 210 and the quantization unit 215, and can perform the transform and quantization in reverse using information received from the image encoding device 20 about the transform and quantization processing (e.g., transform size, transform shape, quantization type, etc.).
可以将已经被逆量化和逆变换的残差块添加至由预测单元310得出的预测块,从而产生重构的图像块。该加法可以由加法单元/减法单元325执行。The residual block, which has already undergone inverse quantization and inverse transform, can be added to the prediction block obtained by prediction unit 310 to generate a reconstructed image block. This addition can be performed by addition/subtraction unit 325.
关于滤波器330,当需要时,可以应用解块滤波器以从重构的图像块中去除块现象。为了改善解码处理之前和之后的视频质量,可以另外使用其他环路滤波器。Regarding filter 330, a deblocking filter can be applied when needed to remove blocking artifacts from the reconstructed image blocks. Additional loop filters can be used to improve video quality before and after decoding.
经重构和滤波的图像块可以被存储在解码图片缓冲器335中。The reconstructed and filtered image blocks can be stored in the decoded image buffer 335.
尽管在附图中未示出,但是图像编码/解码设备还可以包括图片划分单元和块划分单元。Although not shown in the accompanying drawings, the image encoding/decoding device may also include image partitioning units and block partitioning units.
图片划分单元可以基于预定的划分单元将图片划分或分区(partition)成至少一个区域。此处,划分单元可以包括子图片、切片、图块、区块、块(例如,最大编码单元)等。Image partitioning units can divide or partition an image into at least one region based on predetermined partitioning units. Here, partitioning units can include sub-images, slices, tiles, blocks, blocks (e.g., maximum coding units), etc.
图片可以被划分成一个或更多个图块行或者一个或更多个图块列。在这种情况下,图块可以是基于块的单元,其包括图片的预定非方形区域。在这种情况下,图块可以被划分成一个或更多个区块,并且区块可以由以图块的行或列为单位的块组成。An image can be divided into one or more rows or columns of tiles. In this case, a tile can be a block-based unit that includes a predetermined non-square area of the image. Alternatively, a tile can be divided into one or more blocks, and a block can consist of blocks arranged in rows or columns.
切片可以利用一个或更多个配置来设置,其中一个配置可以根据扫描顺序由束(例如,块、区块、图块等)组成,并且它们中的一个可以由包括非方形区域的形状组成,并且其他附加定义也是可行的。Slices can be set using one or more configurations, one of which can be composed of bundles (e.g., blocks, regions, tiles, etc.) depending on the scan order, and one of them can be composed of shapes that include non-square regions, and other additional definitions are also possible.
关于切片配置的定义,可以显式地生成相关信息或者可以隐式地确定相关信息。可以设置每个划分单元以及切片的配置的多个定义,并且可以生成关于此的选择信息。Regarding the definition of slice configuration, relevant information can be generated explicitly or implicitly. Multiple definitions can be set for the configuration of each partitioning unit and slice, and selection information can be generated accordingly.
切片可以以诸如块、区块和图块的非方形形状为单位来配置,并且切片位置和尺寸信息可以基于针对划分单元的位置信息(例如,左上位置、右下位置等)来表示。Slices can be configured in non-square shapes such as blocks, regions, and tiles, and slice position and size information can be represented based on position information for the dividing unit (e.g., top left, bottom right, etc.).
在本发明中,在假设图片可以由一个或更多个子图片组成,子图片可以由一个或更多个切片、图块或区块组成,切片可以由一个或更多个图块或区块组成,并且图块可以由一个或更多个区块组成的情况下进行描述。但是本发明不限于此。In this invention, the description assumes that an image can be composed of one or more sub-images, a sub-image can be composed of one or more slices, tiles, or blocks, a slice can be composed of one or more tiles or blocks, and a tile can be composed of one or more blocks. However, the invention is not limited thereto.
划分单元可以由整数个块组成,但是不限于此,并且可以由小数(decimalnumber)而不是整数组成。也就是说,当不是由整数个块组成时,至少一个划分单元可以由子块组成。A partition unit can consist of an integer number of blocks, but is not limited to this, and can consist of decimal numbers instead of integers. That is, when it is not composed of an integer number of blocks, at least one partition unit can consist of sub-blocks.
除了非方形切片之外,还可以存在诸如子图片或图块的划分单元,并且可以基于各种方法来表示单元的位置信息、尺寸信息。In addition to non-square slices, there can be partitioning units such as sub-images or tiles, and the position and size information of the units can be represented based on various methods.
例如,非方形单元的位置和尺寸信息可以基于关于非方形单元的数目的信息、关于非方形单元的列或行的数目的信息、关于是否在非方形单元中被均匀地划分成列或行的信息、关于非方形单元中的列或行单元的宽度或高度的信息、非方形单元的索引信息来表示。For example, the position and size information of non-square cells can be represented based on information about the number of non-square cells, information about the number of columns or rows of non-square cells, information about whether they are evenly divided into columns or rows in non-square cells, information about the width or height of column or row cells in non-square cells, and index information of non-square cells.
在子图片和图块的情况下,每个单元的位置和尺寸信息可以基于全部或部分信息来表示,并且基于此,可以被划分或分区成一个或更多个单元。In the case of sub-images and tiles, the position and size information of each unit can be represented based on all or part of the information, and based on this, it can be divided or partitioned into one or more units.
同时,可以通过块划分单元划分成各种单位和尺寸的块。基本编码单元(或最大编码单元、编码树单元CTU)可以意指在图像编码处理中用于预测、变换、量化等的基本(或初始)单元。在这种情况下,基本编码单元可以根据颜色格式(在该示例中为YCbCr)由一个亮度基本编码块(最大编码块或CTB)和两个基本色度编码块组成,并且可以根据颜色格式来确定每个块的尺寸。根据分区过程可以获得编码块(CB)。CB可以被理解为由于某些限制而不再进一步细分的单元,并且可以被设置为用于分区成子单元的起始单元。在本公开内容中,块概念性地包含诸如三角形、圆形等的各种形状,而不限于方形。Simultaneously, blocks can be divided into various units and sizes using block partitioning units. A basic coding unit (or maximum coding unit, coding tree unit, CTU) can refer to the basic (or initial) unit used for prediction, transformation, quantization, etc., in image coding processing. In this case, a basic coding unit can consist of one luminance basic coding block (maximum coding block or CTB) and two basic chrominance coding blocks, depending on the color format (YCbCr in this example), and the size of each block can be determined according to the color format. Coding blocks (CBs) can be obtained according to the partitioning process. A CB can be understood as a unit that is no longer further subdivided due to certain limitations and can be set as the starting unit for partitioning into subunits. In this disclosure, blocks conceptually include various shapes such as triangles, circles, etc., and are not limited to squares.
虽然在一个颜色分量的上下文中给出以下描述,但是其也以与根据颜色格式的比率成比例地可适用于具有一些修改的其他颜色分量(例如,在YCbCr 4:2:0的情况下,亮度分量与色度分量的宽-高长度比为2:1)。此外,尽管取决于其他颜色分量(例如,取决于Cb/Cr中的Y的块分区结果)的块分区是可行的,但是应当理解,每个颜色分量的块独立分区也是可行的。此外,尽管可以使用一种共同块分区配置(考虑到与长度比成比例),但是还需要考虑和理解根据颜色分量使用单独的块分区配置。While the following description is given in the context of a single color component, it is also applicable, proportionally to the ratios according to the color format, to other color components with some modifications (e.g., in the case of YCbCr 4:2:0, the width-to-height length ratio of the luminance component to the chrominance component is 2:1). Furthermore, although block partitioning depending on other color components (e.g., depending on the block partitioning result of Y in Cb/Cr) is feasible, it should be understood that independent block partitioning for each color component is also feasible. Moreover, while a common block partitioning configuration can be used (considering proportionality to the length ratio), it is also necessary to consider and understand the use of separate block partitioning configurations based on the color components.
在块划分单元中,块可以被表示为M×N,并且每个块的最大值和最小值可以在该范围内获得。例如,如果块的最大值和最小值分别是256×256和4×4,则可以获得尺寸为2m×2n(在该示例中,m和n是2至8的整数)的块、尺寸为2m×2m(在该示例中,m和n是2至128的整数)的块或者尺寸为m×m(在该示例中,m和n是4至256的整数)的块。在本文中,m和n可以相等或不同,并且可以生成支持块的一个或更多个范围例如最大值和最小值。In a block partitioning unit, a block can be represented as M×N, and the maximum and minimum values of each block can be obtained within this range. For example, if the maximum and minimum values of a block are 256×256 and 4×4 respectively, then blocks of size 2m × 2n (where m and n are integers from 2 to 8 in this example), blocks of size 2m×2m (where m and n are integers from 2 to 128 in this example), or blocks of size m×m (where m and n are integers from 4 to 256 in this example) can be obtained. In this paper, m and n can be equal or different, and one or more ranges, such as maximum and minimum values, can be generated to support the blocks.
例如,可以生成关于块的最大尺寸和最小尺寸的信息,并且在一些分区配置中可以生成关于块的最大尺寸和最小尺寸的信息。在前一种情况下,信息可以是关于可以在图像中产生的最大尺寸和最小尺寸的范围信息,而在后一种情况下,信息可以是关于可以根据一些分区配置产生的最大尺寸和最小尺寸的信息。分区配置可以由图像类型(I/P/B)、颜色分量(YCbCr等)、块类型(编码/预测/变换/量化)、分区类型(索引或类型)和分区方案(作为树方法的四叉树QT、二叉树BT和三叉树TT,以及作为类型方法的SI2、SI3和SI4)来限定。For example, information about the maximum and minimum size of a block can be generated, and information about the maximum and minimum size of a block can be generated in some partitioning configurations. In the former case, the information can be about the range of maximum and minimum sizes that can be generated in the image, while in the latter case, the information can be about the maximum and minimum sizes that can be generated based on some partitioning configuration. The partitioning configuration can be defined by image type (I/P/B), color components (YCbCr, etc.), block type (encoding/prediction/transformation/quantization), partition type (index or type), and partitioning scheme (quadtree QT, binary tree BT, and ternary tree TT as tree methods, and SI2, SI3, and SI4 as type methods).
此外,可以存在对可用于块的宽高比(块形状)的约束,并且在这点上,可以设置边界值。仅小于或等于/小于边界值(k)的块可以被支持,其中k可以根据宽高比A/B(A是宽度与高度之间的较长或相等的值,而B是另一个值)来限定。k可以是等于或大于1的实数,例如,1.5、2、3、4等。如在以上示例中,可以支持对图像中的一个块的形状的约束,或者可以根据分区配置支持一个或更多个约束。Furthermore, constraints can exist on the aspect ratio (block shape) that can be used for blocks, and at this point, boundary values can be set. Only blocks less than or equal to/less than the boundary value (k) can be supported, where k can be limited according to the aspect ratio A/B (A is the longer or equal value between the width and height, and B is another value). k can be a real number equal to or greater than 1, such as 1.5, 2, 3, 4, etc. As in the example above, constraints on the shape of a block in an image can be supported, or one or more constraints can be supported depending on the partitioning configuration.
总之,可以基于上述范围和约束以及稍后描述的分区配置来确定块分区是否被支持。例如,当从块(父块)分割的候选(子块)满足支持块条件时,可以支持分区,否则,可以不支持分区。In summary, whether block partitioning is supported can be determined based on the above scope and constraints, as well as the partitioning configuration described later. For example, partitioning can be supported when a candidate (child block) split from a block (parent block) meets the block support conditions; otherwise, partitioning may not be supported.
块划分单元可以关于图像编码设备和图像解码设备的每个部件来配置,并且在该处理中可以确定块的尺寸和形状。可以根据部件来配置不同的块。所述块可以包括用于预测单元的预测块、用于变换单元的变换块和用于量化单元的量化块。然而,本公开内容不限于此,并且可以针对其他部件另外定义块单元。虽然在本公开内容中在每个部件中输入和输出中的每一个的形状被描述为非方形,但是一些部件的输入和输出可以具有任何其他形状(例如,非方形的三角形)。The block partitioning unit can be configured with respect to each component of the image encoding and image decoding devices, and the size and shape of the block can be determined in the process. Different blocks can be configured according to the component. The blocks may include prediction blocks for prediction units, transform blocks for transform units, and quantization blocks for quantization units. However, this disclosure is not limited to this, and block units may be defined separately for other components. Although the shape of each of the inputs and outputs in each component is described as non-square in this disclosure, the inputs and outputs of some components may have any other shape (e.g., non-square triangles).
可以从较高的单元确定块划分单元中的初始(或起始)块的尺寸和形状。初始块可以被分割成更小的块。一旦根据块分区确定了最佳尺寸和形状,则可以将该块确定为较低单元的初始块。较高单元可以是编码块,并且较低单元可以是预测块或变换块,本公开内容不限于此。相反,各种修改例是可行的。一旦如以上示例中那样确定了较低单元的初始块,就可以执行分区过程以检测像较高单元那样的最佳尺寸和形状的块。The size and shape of the initial (or starting) block in the block partitioning unit can be determined from the higher unit. The initial block can be divided into smaller blocks. Once the optimal size and shape are determined based on the block partitioning, that block can be designated as the initial block for the lower unit. The higher unit can be a coding block, and the lower unit can be a prediction block or a transform block, and this disclosure is not limited thereto. Instead, various modifications are possible. Once the initial block of the lower unit is determined as in the example above, a partitioning process can be performed to detect blocks of optimal size and shape, similar to the higher unit.
总之,块划分单元可以将基本编码块(或最大编码块)分割成至少一个编码块,并且编码块可以被分割成至少一个预测块/变换块/量化块。此外,预测块可以被分割成至少一个变换块/量化块,并且变换块可以被分割成至少一个量化块。一些块可以与其他块具有依赖关系(即,由较高单元和较低单元限定),或者可以与其他块具有独立关系。例如,预测块可以是变换块上方的较高单元,或者可以是独立于变换块的单元。可以根据块的类型建立各种关系。In summary, a block partitioning unit can divide a basic coding block (or the largest coding block) into at least one coding block, and a coding block can be divided into at least one prediction block/transform block/quantization block. Furthermore, a prediction block can be divided into at least one transform block/quantization block, and a transform block can be divided into at least one quantization block. Some blocks may have dependencies on other blocks (i.e., defined by higher and lower units) or may be independent of other blocks. For example, a prediction block may be a higher unit above a transform block, or it may be a unit independent of the transform block. Various relationships can be established based on the type of block.
根据编码设置,可以确定是否将较高单元和较低单元进行组合。单元之间的组合意味着较高单元的块经受较低单元(例如,在预测单元、变换单元、逆变换单元等中)的编码处理,而不被分割成较低单元。也就是说,这可能意味着在多个单元之间共享分区过程,并且在单元中的一个(例如,较高单元)中生成分区信息。Depending on the encoding settings, it can be determined whether higher and lower units are combined. Combining units means that blocks of higher units undergo encoding processing by lower units (e.g., in prediction units, transform units, inverse transform units, etc.) without being split into lower units. In other words, this may mean sharing the partitioning process among multiple units and generating partitioning information in one unit (e.g., a higher unit).
例如,(当编码块与预测块或变换块组合时),编码块可以经受预测、变换和逆变换。For example, (when a coded block is combined with a prediction block or a transform block), the coded block can undergo prediction, transform, and inverse transform.
例如,(当编码块与预测块组合时),编码块可以经受预测,并且在尺寸上等于或小于编码块的变换块可以经受变换和逆变换。For example, (when a coded block is combined with a prediction block), the coded block can undergo prediction, and a transform block that is equal to or smaller in size than the coded block can undergo both transformation and inverse transformation.
例如,(当编码块与变换块组合时),在尺寸上等于或小于编码块的预测块可以经受预测,并且编码块可以经受变换和逆变换。For example, (when a coded block is combined with a transform block), a prediction block that is equal to or smaller in size than the coded block can be predicted, and the coded block can be transformed and inverse transformed.
例如,(当预测块与变换块组合时),在尺寸上等于或小于编码块的预测块可以经受预测、变换和逆变换。For example, (when a prediction block is combined with a transform block), a prediction block that is equal to or smaller in size than a coding block can undergo prediction, transform, and inverse transform.
例如,(当不存在块组合时),在尺寸上等于或小于编码块的预测块可以经受预测,并且在尺寸上等于或小于编码块的变换块可以经受变换和逆变换。For example, (when there is no block combination), a prediction block that is equal to or smaller than the coded block in size can be predicted, and a transform block that is equal to or smaller than the coded block in size can be transformed and inverse transformed.
尽管在以上示例中已经描述了编码块、预测块和变换块的各种情况,但是本公开内容不限于此。Although various cases of coded blocks, prediction blocks, and transform blocks have been described in the examples above, this disclosure is not limited thereto.
对于单元之间的组合,在图像中可以支持固定配置,或者考虑各种编码因素可以支持自适应配置。编码因素包括图像类型、颜色分量、编码模式(帧内/帧间)、分区配置、块尺寸/形状/位置、宽高比、预测相关信息(例如,帧内预测模式、帧间预测模式等)、变换相关信息(例如,变换方案选择信息等)、量化相关信息(例如,量化区域选择信息和量化变换系数编码信息)等。For the combination of units, a fixed configuration can be supported in the image, or an adaptive configuration can be supported considering various coding factors. Coding factors include image type, color components, coding mode (intra-frame/inter-frame), partitioning configuration, block size/shape/position, aspect ratio, prediction-related information (e.g., intra-frame prediction mode, inter-frame prediction mode, etc.), transform-related information (e.g., transform scheme selection information, etc.), quantization-related information (e.g., quantization region selection information and quantization transform coefficient coding information), etc.
当如上所述已经检测到最佳尺寸和形状的块时,可以生成该块的模式信息(例如,分区信息)。模式信息可以连同从块所属的部件生成的信息(例如,预测相关信息和变换相关信息)一起被包括在比特流中并且被发送至解码器,并且可以由解码器以相同单元级别解析以用于视频解码过程中。Once a block of optimal size and shape has been detected as described above, pattern information (e.g., partitioning information) for that block can be generated. This pattern information, along with information generated from the components to which the block belongs (e.g., prediction-related information and transformation-related information), can be included in the bitstream and sent to the decoder, where it can be parsed at the same unit level for use in the video decoding process.
现在,将描述分区方案。尽管为了便于描述,假设初始块被成形为方形,但是本公开内容不限于此,并且该描述可以以相同的方式或类似的方式应用于其中初始块为非方形的情况。The partitioning scheme will now be described. Although for ease of description, it is assumed that the initial blocks are shaped as squares, this disclosure is not limited thereto, and the description can be applied in the same or similar manner to cases where the initial blocks are not squares.
块划分单元可以支持各种类型的分区。例如,可以支持基于树的分区或基于索引的分区,并且还可以支持其他方法。在基于树的分区中,可以基于各种类型的信息(例如,指示是否执行分区的信息、树类型、分区方向等)来确定分区类型,而在基于索引的分区中,可以使用特定索引信息来确定分区类型。The block partitioning unit can support various types of partitions. For example, it can support tree-based partitioning or index-based partitioning, and other methods as well. In tree-based partitioning, the partition type can be determined based on various types of information (e.g., information indicating whether to perform partitioning, tree type, partition direction, etc.), while in index-based partitioning, specific index information can be used to determine the partition type.
图4是示出可以在本公开内容的块划分单元中获得的各种分区类型的示例图。Figure 4 is an example diagram showing the various partition types that can be obtained in the block partitioning unit of this disclosure.
在该示例中,假设图4中所示出的分区类型是通过一个分区操作(或过程)获得的,其不应被理解为限制本公开内容。分区类型也可以在多个分区操作中获得。此外,图4中未示出的其他分区类型也可能是可用的。In this example, it is assumed that the partition type shown in Figure 4 was obtained through a single partition operation (or procedure), which should not be construed as limiting the scope of this disclosure. The partition type may also be obtained through multiple partition operations. Furthermore, other partition types not shown in Figure 4 may also be available.
(基于树的分区)(Tree-based partitioning)
在本公开内容的基于树的分区中,可以支持QT、BT和TT。如果支持一种树方法,则这可以被称为单树分区,而如果支持两种或更多种树方法,则这可以被称为多树分区。In the tree-based partitioning of this disclosure, QT, BT, and TT can be supported. If one tree method is supported, this can be called single-tree partitioning, while if two or more tree methods are supported, this can be called multi-tree partitioning.
在QT中,块在水平方向和垂直方向中的每一个上均被分割成两个分区(即4个分区)(n),而在BT中,块在水平方向或垂直方向上被分割成两个分区(b至g)。在TT中,块在水平方向或垂直方向上被分割成三个分区(h至m)。In QT, a block is divided into two partitions (i.e., 4 partitions) in each of the horizontal and vertical directions (n), while in BT, a block is divided into two partitions (b to g) in either the horizontal or vertical direction. In TT, a block is divided into three partitions (h to m) in either the horizontal or vertical direction.
在QT中,可以通过将分区方向限制到水平方向和垂直方向中的一个而将块分割成四个分区(o和p)。此外,在BT中,可以支持仅将块分割成相等尺寸的分区(b和c)、仅将块分割成不同尺寸的分区(d至g)、或者这两种分区类型。此外,在TT中,可以支持将块分割成仅集中在特定方向(左->右或上->下方向上的1:1:2或2:1:1)上的分区(h、j、k和m)、将块分割成集中在中心(1:2:1)的分区(i和l)、或者这两种分区类型。此外,可以支持在水平方向和垂直方向中的每一个上将块分割成四个分区(即,总共16个分区)(q)。In Qt, a block can be divided into four partitions (o and p) by restricting the partitioning direction to either the horizontal or vertical direction. Furthermore, in BT, it supports partitioning the block into only equal-sized partitions (b and c), partitioning the block into only partitions of different sizes (d to g), or both of these partitioning types. Additionally, in TT, it supports partitioning the block into partitions focused only on a specific direction (1:1:2 or 2:1:1 in the left-to-right or top-to-bottom direction) (h, j, k, and m), partitioning the block into partitions focused on the center (1:2:1) (i and l), or both of these partitioning types. Furthermore, it supports partitioning the block into four partitions in each of the horizontal and vertical directions (i.e., a total of 16 partitions) (q).
在树方法之中,可以支持将块仅在水平方向上分割成z个分区(b、d、e、h、i、j、o)、将块仅在垂直方向上分割成z个分区(c、f、g、k、l、m、p)、或者支持两种分区类型。在本文中,z可以是等于或大于2的整数,例如,2、3或4。The tree method supports partitioning a block into z partitions (b, d, e, h, i, j, o) only horizontally, or into z partitions (c, f, g, k, l, m, p) only vertically, or both partition types. In this paper, z can be an integer equal to or greater than 2, for example, 2, 3, or 4.
在本公开内容中,假设分区类型n被支持为QT,分区类型b和c被支持为BT,并且分区类型i和l被支持为TT。In this disclosure, it is assumed that partition type n is supported as QT, partition types b and c are supported as BT, and partition types i and l are supported as TT.
根据编码设置,可以支持树分区方案中的一个或更多个。例如,可以支持QT、QT/BT或QT/BT/TT。Depending on the encoding settings, one or more tree partitioning schemes can be supported. For example, QT, QT/BT, or QT/BT/TT can be supported.
在以上示例中,基本树分区方案是QT,并且根据是否支持其他树,BT和TT被包括作为附加分区方案。然而,可以进行各种修改。指示是否支持其他树的信息(bt_enabled_flag、tt_enabled_flag和bt_tt_enabled_flag,其中0指示不支持且1指示支持)可以根据编码设置而隐式地确定或者以例如序列、图片、子图片、切片、图块、区块等单位显式地确定。In the examples above, the basic tree partitioning scheme is QT, and BT and TT are included as additional partitioning schemes depending on whether other trees are supported. However, various modifications can be made. Information indicating whether other trees are supported (bt_enabled_flag, tt_enabled_flag, and bt_tt_enabled_flag, where 0 indicates no support and 1 indicates support) can be implicitly determined based on encoding settings or explicitly determined in units such as sequences, images, sub-images, slices, tiles, blocks, etc.
分区信息可以包括指示是否执行分区的信息(tree_part_flag或qt_part_flag、bt_part_flag、tt_part_flag和bt_tt_part_flag,其可以具有值0或1,其中0指示不分区,并且1指示分区)。此外,根据分区方案(BT和TT),可以添加关于分区方向的信息(dir_part_flag,或bt_dir_part_flag、tt_dir_part_flag和bt_tt_dir_part_flag,其具有值0或1,其中0指示<宽度/水平的>并且1指示<高度/垂直的>)。这可以是在执行分区时生成的信息。Partition information may include indications of whether partitioning is performed (tree_part_flag or qt_part_flag, bt_part_flag, tt_part_flag, and bt_tt_part_flag, which can have values of 0 or 1, where 0 indicates no partitioning and 1 indicates partitioning). Additionally, depending on the partitioning scheme (BT and TT), information about the partitioning direction can be added (dir_part_flag, or bt_dir_part_flag, tt_dir_part_flag, and bt_tt_dir_part_flag, which have values of 0 or 1, where 0 indicates <width/horizontal> and 1 indicates <height/vertical>). This information can be generated during the partitioning process.
当支持多树分区时,可以配置各种分区信息片段。为了便于描述,以下描述给出如何在一个深度级别配置分区信息的示例(也就是说,但是可以通过设置一个或更多个支持的分区深度进行递归分区)。When multi-tree partitioning is supported, various partition information fragments can be configured. For ease of description, the following description provides an example of how to configure partition information at a depth level (that is, recursive partitioning can be performed by setting one or more supported partition depths).
在示例(1)中,检查指示是否执行分区的信息。如果没有执行分区,则分区结束。In example (1), check the information indicating whether to perform partitioning. If partitioning is not performed, the partitioning process ends.
如果执行分区,则检查关于分区类型的选择信息(例如,tree_idx。对于QT为0,对于BT为1,以及对于TT为2)。根据所选择的分区类型来附加地检查分区方向信息,并且过程进行到下一步骤(如果由于诸如当分区深度还没有达到最大值时产生的原因而进行附加的分区是可行的,则过程从起始再次开始,并且如果附加的分区是不可能的,则分区过程结束)。If partitioning is performed, the selection information regarding the partition type is checked (e.g., tree_idx, 0 for QT, 1 for BT, and 2 for TT). The partition direction information is additionally checked based on the selected partition type, and the process proceeds to the next step (if additional partitioning is feasible due to reasons such as the partition depth not yet reaching its maximum value, the process restarts from the beginning; if additional partitioning is not possible, the partitioning process ends).
在示例(2)中,检查指示是否以某个树方案(QT)执行分区的信息,并且过程进行到下一步骤。如果不是以树方案(QT)执行分区,则检查指示是否以另一树方案(BT)执行分区的信息。在这种情况下,如果不是以该树方案执行分区,则检查指示是否以第三树方案(TT)执行分区的信息。如果不是以第三树方案(TT)执行分区,则分区过程结束。In Example (2), the system checks whether the partitioning is performed using a certain tree scheme (QT), and the process proceeds to the next step. If the partitioning is not performed using a tree scheme (QT), the system checks whether the partitioning is performed using another tree scheme (BT). In this case, if the partitioning is not performed using that tree scheme, the system checks whether the partitioning is performed using a third tree scheme (TT). If the partitioning is not performed using a third tree scheme (TT), the partitioning process ends.
如果以树方案(QT)执行分区,则过程进行到下一步骤。此外,以第二树方案(BT)执行分区,检查分区方向信息,并且过程进行到下一步骤。如果以第三树方案(TT)执行分区,则检查分区方向信息,并且过程进行到下一步骤。If partitioning is performed using a tree-based scheme (QT), the process proceeds to the next step. Alternatively, if partitioning is performed using a second-tree scheme (BT), the partition orientation information is checked, and the process proceeds to the next step. If partitioning is performed using a third-tree scheme (TT), the partition orientation information is checked, and the process proceeds to the next step.
在示例(3)中,检查指示是否以树方案(QT)执行分区的信息。如果不以树方案(QT)执行分区,则检查指示是否以其他树方案(BT和TT)执行分区的信息。如果不执行分区,则分区过程结束。In Example (3), the system checks whether to perform partitioning using a tree scheme (QT). If partitioning is not performed using a tree scheme (QT), the system checks whether to perform partitioning using another tree scheme (BT and TT). If partitioning is not performed, the partitioning process ends.
如果以树方案(QT)执行分区,则过程进行到下一步骤。此外,以其他树方案(BT和TT)执行分区,检查分区方向信息,并且过程进行到下一步骤。If partitioning is performed using a tree scheme (QT), the process proceeds to the next step. Alternatively, if partitioning is performed using other tree schemes (BT and TT), the partition orientation information is checked, and the process proceeds to the next step.
虽然在以上示例中,对树分区方案进行优先级(示例2和示例3)或者不对树分区方案进行优先级(示例1),但是各种修改例也是可用的。此外,在以上示例中,当前步骤中的分区与前一步骤的分区结果无关。然而,还可以将当前步骤中的分区配置成依赖于前一步骤的分区结果。While the examples above either prioritize the tree partitioning scheme (Examples 2 and 3) or do not prioritize it (Example 1), various modifications are also possible. Furthermore, in the examples above, the partitioning in the current step is independent of the partitioning result of the previous step. However, it is also possible to configure the partitioning in the current step to depend on the partitioning result of the previous step.
在示例1至示例3中,如果在先前步骤中执行了一些树分区方案(QT),并且因此该过程进行到当前步骤,则在当前步骤中也可以支持相同的树分区方案(QT)。In Examples 1 through 3, if some tree partitioning scheme (QT) was executed in a previous step, and the process has thus reached the current step, the same tree partitioning scheme (QT) can also be supported in the current step.
另一方面,如果在先前步骤中未执行某个树分区方案(QT)并且因此执行了另一树分区方案(BT或TT),并且然后该过程进行到当前步骤,则可以将其配置成在当前步骤和后续步骤中支持除某个树分区方案(QT)之外的其他树分区方案(BT和TT)。On the other hand, if a certain tree partitioning scheme (QT) was not executed in a previous step and therefore another tree partitioning scheme (BT or TT) was executed, and then the process proceeds to the current step, it can be configured to support other tree partitioning schemes (BT and TT) besides a certain tree partitioning scheme (QT) in the current step and subsequent steps.
在以上情况下,支持块分区的树配置可以是自适应的,并且因此上述分区信息也可以被不同地配置。(假设后面将描述的示例为示例3)。也就是说,如果在先前步骤中没有以某个树方案(QT)执行分区,则在当前步骤中可以不考虑树方案(QT)来执行分区过程。另外,可以去除与某个树方案相关的分区信息(例如,指示是否执行分区的信息、关于分区方向的信息等。在该示例<QT>中,指示是否执行分区的信息)。In the above cases, the tree configuration supporting block partitioning can be adaptive, and therefore the partitioning information described above can also be configured differently. (Assuming the example described below is Example 3). That is, if partitioning was not performed using a certain tree scheme (QT) in the previous steps, the partitioning process can be performed without considering the tree scheme (QT) in the current step. Furthermore, partitioning information associated with a particular tree scheme (e.g., information indicating whether to perform partitioning, information about the partitioning direction, etc. In this example <QT>, information indicating whether to perform partitioning) can be removed.
以上示例涉及针对允许块分区的情况的自适应分区信息配置(例如,块尺寸在最大值与最小值之间的范围内,每个树方案的分区深度未达到最大深度(允许深度)等)。即使当块分区受到限制时(例如,块尺寸不存在于最大值与最小值之间的范围中,每个树方案的分区深度已经达到最大深度等),也可以自适应地配置分区信息。The examples above illustrate adaptive partitioning information configuration for cases where block partitioning is allowed (e.g., block size is within the range of maximum and minimum values, partition depth of each tree scheme has not reached the maximum depth (allowed depth), etc.). Even when block partitioning is restricted (e.g., block size does not exist within the range of maximum and minimum values, partition depth of each tree scheme has reached the maximum depth, etc.), partitioning information can still be configured adaptively.
如已经提到的,在本公开内容中,可以以递归方式执行基于树的分区。例如,如果具有分区深度k的编码块的分区标志被设置为0,则在具有分区深度k的编码块中执行编码块编码。如果具有分区深度k的编码块的分区标志被设置为1,则根据分区方案在具有分区深度k+1的N个子编码块中执行编码块编码(其中N是等于或大于2的整数,例如2、3和4)。As already mentioned, tree-based partitioning can be performed recursively in this disclosure. For example, if the partition flag of a coded block with partition depth k is set to 0, then block encoding is performed in the coded block with partition depth k. If the partition flag of a coded block with partition depth k is set to 1, then block encoding is performed in N sub-coded blocks with partition depth k+1 according to the partitioning scheme (where N is an integer equal to or greater than 2, such as 2, 3, and 4).
在以上过程中,子编码块可以被设置为编码块(k+1)并且被分区为子编码块(k+2)。该分层分区方案可以根据诸如分区范围和允许的分区深度的分区配置来确定。In the above process, a sub-coded block can be set as a coded block (k+1) and partitioned into sub-coded blocks (k+2). This hierarchical partitioning scheme can be determined based on partitioning configurations such as partition range and allowed partition depth.
在这种情况下,可以从一个或更多个扫描方法之中选择代表分区信息的比特流结构。例如,可以基于分区深度的顺序或者基于是否执行分区来配置分区信息的比特流。In this case, the bitstream structure representing the partition information can be selected from one or more scanning methods. For example, the bitstream of partition information can be configured based on the order of partition depth or based on whether partitioning was performed.
例如,在基于分区深度顺序的情况下,基于初始块在当前深度级获得分区信息,并且然后在下一深度级获得分区信息。在基于是否执行分区的情况下,首先在从初始块分割的块中获得附加分区信息,并且可以考虑其他附加扫描方法。For example, in the case of partition depth order, partition information is obtained at the current depth level based on the initial block, and then at the next depth level. In the case of whether partitioning is performed, additional partition information is first obtained from the blocks split from the initial block, and other additional scanning methods can be considered.
不管树类型如何(或所有树),最大块尺寸和最小块尺寸可以具有共同的设置,或者针对每个树可以具有单独的设置,或者针对两个或更多个树可以具有共同的设置。在这种情况下,最大块的尺寸可以被设置为等于或小于最大编码块。如果根据预定的第一树的最大块的尺寸与最大块尺寸不相同,则使用预定的第二树方法隐式地执行分区,直到达到第一树的最大块尺寸为止。Regardless of the tree type (or all trees), the maximum block size and minimum block size can have common settings, separate settings for each tree, or common settings for two or more trees. In this case, the maximum block size can be set to be equal to or less than the maximum encoded block size. If the maximum block size of the first tree is not the same as the maximum block size, partitioning is implicitly performed using a predetermined second-tree method until the maximum block size of the first tree is reached.
另外,不管树类型如何,可以支持共同的分割深度,可以根据每个树支持单独的分割深度,或者可以支持两个或更多个树的共同的分割深度。替选地,针对一些树可以支持分割深度,而针对一些树可以不支持分割深度。Furthermore, regardless of the tree type, a common split depth can be supported; a separate split depth can be supported for each tree; or a common split depth can be supported for two or more trees. Alternatively, split depth can be supported for some trees, while not for others.
可以支持针对设置信息的显式语法元素,并且可以隐式地确定一些设置信息。It supports explicit syntax elements for setting information, and can also implicitly determine some setting information.
(基于索引的分区)(Index-based partitioning)
在本公开内容的基于索引的分区中,可以支持恒定分割索引(CSI)方案和可变分割索引(VSI)方案。In the index-based partitioning of this disclosure, both Constant Partition Index (CSI) and Variable Partition Index (VSI) schemes can be supported.
在CSI方案中,可以通过在预定方向上的分区来获得k个子块,并且k可以是等于或大于2的整数,例如2、3或4。具体地,可以基于k来确定子块的尺寸和形状,而与块的尺寸和形状无关。预定方向可以是水平方向、垂直方向和对角线方向(左上->右下方向或左下->右上方向)中的一个或者两个或更多个的组合。In the CSI scheme, k sub-blocks can be obtained by partitioning in a predetermined direction, where k can be an integer equal to or greater than 2, such as 2, 3, or 4. Specifically, the size and shape of the sub-blocks can be determined based on k, regardless of the size and shape of the blocks. The predetermined direction can be one or a combination of two or more of the following: horizontal, vertical, and diagonal (top left to bottom right or bottom left to top right).
在本公开内容的基于索引的CSI分区方案中,可以通过在水平方向或垂直方向上进行分区来获得z个候选。在这种情况下,z可以是等于或大于2的整数,例如2、3或4,并且子块在宽度和高度中的一者上可以是相等的,并且在宽度和高度中的另一者上可以是相等的或不同的。子块的宽度或高度长度比为A1:A2:...:AZ,并且A1至AZ中的每一个可以是等于或大于1的整数,例如1、2或3。In the index-based CSI partitioning scheme of this disclosure, z candidates can be obtained by partitioning in a horizontal or vertical direction. In this case, z can be an integer equal to or greater than 2, such as 2, 3, or 4, and the sub-blocks can be equal in width and height, and equal or different in the other of width and height. The width or height ratio of the sub-blocks is A1 : A2 : ... : AZ , and each of A1 to AZ can be an integer equal to or greater than 1, such as 1, 2, or 3.
此外,可以通过分别沿着水平方向和垂直方向分区为x个分区和y个分区来获得候选。x和y中的每一个可以是等于或大于1的整数,例如1、2、3或4。然而,其中x和y两者都是1的候选可能是受限的(因为a已经存在)。尽管图4示出了其中子块具有相同的宽度比或高度比的情况,但是也可以包括具有不同的宽度比或高度比的候选。Furthermore, candidates can be obtained by partitioning the blocks horizontally and vertically into x and y partitions, respectively. Each of x and y can be an integer equal to or greater than 1, such as 1, 2, 3, or 4. However, candidates where both x and y are 1 may be restricted (because a already exists). Although Figure 4 shows a case where the sub-blocks have the same width or height ratio, candidates with different width or height ratios can also be included.
此外,候选可以在对角线方向——左上->右下和左下->右上——中的一者上被分割成w个分区。在本文中,w可以是等于或大于2的整数,例如2或3。Furthermore, candidates can be divided into w partitions along one of the diagonal directions—top left to bottom right and bottom left to top right. In this paper, w can be an integer equal to or greater than 2, such as 2 or 3.
参照图4,根据每个子块的长度比,可以将分区类型分类为对称分区类型(b)和非对称分区类型(d和e)。此外,分区类型可以被分类为集中在特定方向上的分区类型(k和m)和中心分区类型(k)。分区类型可以由包括子块形状以及子块长度比率的各种编码因素来定义,并且所支持的分区类型可以根据编码设置隐式地或显式地确定。因此,可以基于在基于索引的分区方案中支持的分区类型来确定候选组。Referring to Figure 4, partition types can be classified into symmetric partition types (b) and asymmetric partition types (d and e) based on the length ratio of each sub-block. Furthermore, partition types can be classified into partition types concentrated in a specific direction (k and m) and central partition types (k). Partition types can be defined by various coding factors, including sub-block shape and sub-block length ratio, and the supported partition types can be implicitly or explicitly determined based on coding settings. Therefore, candidate groups can be determined based on the partition types supported in an index-based partitioning scheme.
在VSI方案中,在每个子块的宽度(w)或高度(h)固定的情况下,可以通过在预定方向上的分区来获得一个或更多个子块。在本文中,w和h中的每一个可以是等于或大于1的整数,例如,1、2、4或8。具体地,可以基于块的尺寸和形状以及w或h值来确定子块的数目。In the VSI scheme, with a fixed width (w) or height (h) for each sub-block, one or more sub-blocks can be obtained through partitioning in a predetermined direction. In this document, each of w and h can be an integer equal to or greater than 1, such as 1, 2, 4, or 8. Specifically, the number of sub-blocks can be determined based on the size and shape of the block and the w or h value.
在本公开内容的基于索引的VSI分区方案中,可以将候选分区成子块,每个子块在宽度和长度中的一者上是固定的。替选地,候选可以被分区成子块,每个子块在宽度和长度两者上都是固定的。由于子块的宽度或高度是固定的,因此可以允许在水平方向或垂直方向上的相等分区。然而,本公开内容不限于此。In the index-based VSI partitioning scheme of this disclosure, candidates can be partitioned into sub-blocks, each of which has a fixed width and length. Alternatively, candidates can be partitioned into sub-blocks, each of which has a fixed width and length. Since the width or height of the sub-blocks is fixed, equal partitions in either the horizontal or vertical direction are allowed. However, this disclosure is not limited thereto.
在其中分区前的块的尺寸为M×N的情况下,如果每个子块的宽度(w)固定、每个子块的高度(h)固定、或者每个子块的宽度(w)和高度(h)两者都固定,则获得的子块的数目可以是(M*N)/w、(M*N)/h、或(M*N)/w/h。If the size of the block before partitioning is M×N, and the width (w) of each sub-block is fixed, the height (h) of each sub-block is fixed, or both the width (w) and height (h) of each sub-block are fixed, then the number of sub-blocks obtained can be (M*N)/w, (M*N)/h, or (M*N)/w/h.
根据编码设置,可以仅支持CSI方案和VSI方案中的一者或两者,并且可以隐式地或显式地确定关于所支持的方案的信息。Depending on the coding settings, only one or both of the CSI and VSI schemes may be supported, and information about the supported schemes may be determined implicitly or explicitly.
将在所支持的CSI方案的上下文中描述本公开内容。This disclosure will be described in the context of the supported CSI schemes.
候选组可以被配置成根据编码设置包括基于索引的分区方案中的两个或更多个候选。Candidate groups can be configured to include two or more candidates from an index-based partitioning scheme, depending on the encoding settings.
例如,可以形成诸如{a,b,c}、{a,b,c,n}或{a至g和n}的候选组。候选组可以是包括基于一般统计特征预测为出现多次的块类型的示例,例如在水平方向或垂直方向上或者在水平方向和垂直方向中的每一个上被划分成两个分区的块。For example, candidate groups such as {a, b, c}, {a, b, c, n}, or {a to g and n} can be formed. Candidate groups can include examples of block types predicted to occur multiple times based on general statistical characteristics, such as blocks divided into two partitions in the horizontal or vertical direction, or in each of the horizontal and vertical directions.
替选地,可以配置诸如{a,b}、{a,o}或{a,b,o}的候选组,或者诸如{a,c}、{a,p}或{a,c,p}的候选组。候选组可以是包括以下候选的示例:每个候选分别在水平方向和垂直方向上被分区为两个分区和四个分区。这可以是以下示例:将预测为主要在特定方向上分区的块类型配置为候选组。Alternatively, candidate groups such as {a, b}, {a, o}, or {a, b, o} can be configured, or candidate groups such as {a, c}, {a, p}, or {a, c, p}. A candidate group can be an example that includes candidates in which each candidate is partitioned into two partitions horizontally and four partitions vertically. This could be an example of configuring a candidate group with block types predicted to be primarily partitioned in a specific direction.
替选地,可以配置诸如{a,o,p}或{a,n,q}的候选组。这可以是以下示例:将候选组配置成包括被预测为要被分区成比分区之前的块小的许多分区的块类型。Alternatively, candidate groups such as {a, o, p} or {a, n, q} can be configured. This could be an example of configuring candidate groups to include block types that are predicted to be partitioned into many smaller partitions than the blocks before partitioning.
替选地,可以配置诸如{a,r,s}的候选组,并且其可以是以下示例:确定可以通过其他方法(树方法)从分割之前的块获得的非方形形状的最佳分区结果,并且将非方形形状配置为候选组。Alternatively, candidate groups such as {a, r, s} can be configured, and can be, for example, determining the best partitioning result of a non-square shape that can be obtained from the block before splitting by other methods (tree methods), and configuring the non-square shape as a candidate group.
如从以上示例中注意到的,各种候选组配置可以是可用的,并且考虑到各种编码/解码因素,可以支持一个或更多个候选组配置。As noted in the examples above, various candidate group configurations can be available, and one or more candidate group configurations can be supported, taking into account various encoding/decoding factors.
一旦候选组被完全配置,各种分区信息配置就可以是可用的。Once the candidate groups are fully configured, various partition information configurations can be made available.
例如,关于包括未被分区的候选(a)和被分区的候选(b至s)的候选组,可以生成索引选择信息。For example, index selection information can be generated for a candidate group that includes unpartitioned candidates (a) and partitioned candidates (b to s).
替选地,可以生成指示是否执行分区的信息(指示分区类型是否为a的信息)。如果执行分区(如果分区类型不是a),则可以生成关于包括被分区的候选(b至s)的候选组的索引选择信息。Alternatively, information indicating whether to perform partitioning can be generated (information indicating whether the partition type is 'a'). If partitioning is performed (if the partition type is not 'a'), index selection information about the candidate group (b to s) including the candidates to be partitioned can be generated.
可以以不同于上述的许多其他方式来配置分区信息。除了指示是否执行分区的信息之外,可以以诸如固定长度二值化、可变长度二值化等各种方式将二进制位分配给候选组中的每个候选的索引。如果候选的数目是2,则可以将1位分配给索引选择信息,并且如果候选的数目是3,则可以将一个或更多个位分配给索引选择信息。Partition information can be configured in many other ways than those described above. In addition to information indicating whether to perform a partition, binary bits can be assigned to the index of each candidate in the candidate group in various ways, such as fixed-length binarization, variable-length binarization, etc. If the number of candidates is 2, one bit can be assigned to the index selection information, and if the number of candidates is 3, one or more bits can be assigned to the index selection information.
与基于树的分区方案相比,被预测要出现多次的分区类型可以被包括在基于索引的分区方案中的候选组中。Compared to tree-based partitioning schemes, partition types that are predicted to occur multiple times can be included in the candidate group in index-based partitioning schemes.
由于用于代表索引信息的位的数目可以根据所支持的候选组的数目而增加,因此该方案可以适合于单层分区(例如,分区深度被限制为0),而不是基于树的分层分区(递归分区)。也就是说,可以支持单个分区操作,并且可以不进一步分割通过基于索引的分区获得的子块。Since the number of bits used to represent index information can increase based on the number of supported candidate groups, this scheme is suitable for single-level partitioning (e.g., partition depth is limited to 0) rather than tree-based hierarchical partitioning (recursive partitioning). That is, single partitioning operations can be supported without further subdividing the sub-blocks obtained through index-based partitioning.
这可能意味着进一步分区成相同类型的较小块是不可能的(例如,通过基于索引的分区获得的编码块不能进一步分割成编码块),并且还意味着可能进一步分区成不同类型的块也是不可能的(例如,不可能将编码块分区成预测块以及编码块)。显然,本公开内容不限于以上示例,并且其他修改例也是可用的。This may mean that further partitioning into smaller blocks of the same type is not possible (e.g., a coded block obtained through index-based partitioning cannot be further subdivided into coded blocks), and it also means that further partitioning into blocks of different types may also be impossible (e.g., it is not possible to partition a coded block into prediction blocks and coded blocks). Clearly, this disclosure is not limited to the above examples, and other modifications are also possible.
现在,将给出主要基于编码因素之中的块类型来确定块分区配置的描述。Now, a description will be given of determining the block partitioning configuration primarily based on the block type among the coding factors.
首先,可以在分区过程中获得编码块。可以采用基于树的分区方案用于分区过程,并且可以根据树类型产生诸如图4的a(无分割)、n(QT)、b、c(BT)、i或l(TT)的分区类型。根据编码配置,树类型的各种组合例如QT/QT+BT/QT+BT+TT可能是可用的。First, encoded blocks can be obtained during the partitioning process. A tree-based partitioning scheme can be used for the partitioning process, and partition types such as a (no partitioning), n (QT), b, c (BT), i, or l (TT) as shown in Figure 4 can be generated based on the tree type. Depending on the encoding configuration, various combinations of tree types, such as QT/QT+BT/QT+BT+TT, may be available.
以下示例是将在以上过程中获得的编码块最终划分成预测块和变换块的处理。假设基于每个分区的尺寸执行预测、变换和逆变换。The following example illustrates the process of dividing the coded blocks obtained in the above steps into prediction blocks and transform blocks. It assumes that prediction, transform, and inverse transform are performed based on the size of each partition.
在示例(1)中,可以通过将预测块的尺寸设置为等于编码块的尺寸来执行预测,并且可以通过将变换块的尺寸设置为等于编码块(或预测块)的尺寸来执行变换和逆变换。In example (1), prediction can be performed by setting the size of the prediction block to be equal to the size of the coding block, and transformation and inverse transformation can be performed by setting the size of the transform block to be equal to the size of the coding block (or prediction block).
在示例(2)中,可以通过将预测块的尺寸设置为等于编码块的尺寸来执行预测。变换块可以通过分区编码块(或预测块)来获得,并且可以基于所获得的变换块的尺寸来执行变换和逆变换。In example (2), prediction can be performed by setting the size of the prediction block to be equal to the size of the coding block. The transform block can be obtained by partitioning the coding block (or prediction block), and the transform and inverse transform can be performed based on the size of the obtained transform block.
此处,可以采用基于树的分区方案用于分区过程,并且可以根据树类型得到诸如图4的a(无分割)、n(QT)、b、c(BT)、i或l(TT)的分区类型。根据编码配置,树类型的各种组合例如QT/QT+BT/QT+BT+TT可能是可用的。Here, a tree-based partitioning scheme can be used for the partitioning process, and partition types such as a (no partitioning), n (QT), b, c (BT), i, or l (TT) as shown in Figure 4 can be obtained based on the tree type. Depending on the encoding configuration, various combinations of tree types, such as QT/QT+BT/QT+BT+TT, may be available.
此处,分区过程可以是基于索引的分区方案。可以根据索引类型获得分区类型,例如,图4的a(无分割)、b、c或d。根据编码配置,可以配置诸如{a,b,c}和{a,b,c,d}的各种候选组。Here, the partitioning process can be an index-based partitioning scheme. The partition type can be obtained based on the index type, for example, a (no partition), b, c, or d in Figure 4. Depending on the encoding configuration, various candidate groups such as {a, b, c} and {a, b, c, d} can be configured.
在示例(3)中,可以通过分区编码块来获得预测块,并且该预测块基于所获得的预测块的尺寸经受预测。对于变换块,其尺寸被设置为编码块的尺寸,并且可以对变换块执行变换和逆变换。在该示例中,预测块与变换块可以呈独立关系。In example (3), a prediction block can be obtained by partitioning the coded block, and the prediction block undergoes prediction based on the size of the obtained prediction block. For the transform block, its size is set to the size of the coded block, and a transform and inverse transform can be performed on the transform block. In this example, the prediction block and the transform block can be independent of each other.
基于索引的分区方案可以用于分区过程,并且可以根据索引类型获得分区类型,例如,图4的a(无分割)、b至g、n、r或s。可以根据编码配置来配置各种候选组,例如,{a,b,c,n}、{a至g,n}和{a,r,s}。Index-based partitioning schemes can be used in the partitioning process, and the partition type can be obtained based on the index type, such as a (no partition), b to g, n, r, or s in Figure 4. Various candidate groups can be configured according to the encoding configuration, such as {a, b, c, n}, {a to g, n}, and {a, r, s}.
在示例(4)中,可以通过对编码块进行分区来获得预测块,并且该预测块基于所获得的预测块的尺寸经受预测。对于变换块,其尺寸被设置为预测块的尺寸,并且可以对变换块执行变换和逆变换。在该示例中,变换块可以具有等于所获得的预测块的尺寸的尺寸,或者所获得的预测块可以具有等于变换块的尺寸的尺寸(将变换块的尺寸设置为预测块的尺寸)。In example (4), a prediction block can be obtained by partitioning the coded block, and the prediction block undergoes prediction based on the size of the obtained prediction block. For the transform block, its size is set to the size of the prediction block, and a transform and inverse transform can be performed on the transform block. In this example, the transform block can have a size equal to the size of the obtained prediction block, or the obtained prediction block can have a size equal to the size of the transform block (setting the size of the transform block to the size of the prediction block).
基于树的分区方案可以用于分区过程,并且可以根据树类型来生成分区类型,例如,图4的a(无分割)、b、c(BT)或n(QT)。根据编码配置,树类型的各种组合例如QT/BT/QT+BT可能是可用的。Tree-based partitioning schemes can be used in the partitioning process, and partition types can be generated based on the tree type, such as a (no partition), b, c (BT), or n (QT) in Figure 4. Depending on the encoding configuration, various combinations of tree types, such as QT/BT/QT+BT, may be available.
此处,基于索引的分区方案可以用于分区过程,并且可以根据索引类型得到分区类型例如图4的a(无分割)、b、c、n、o或p。可以根据编码配置来配置各种候选组,例如{a,b}、{a,c}、{a,n}、{a,o}、{a,p}、{a,b,c}、{a,o,p}、{a,b,c,n}和{a,b,c,n,p}。此外,可以在单独的VSI方案或者组合CSI方案和VSI方案作为基于索引的分区方案中配置候选组。Here, an index-based partitioning scheme can be used in the partitioning process, and the partition type can be obtained based on the index type, such as a (no partition), b, c, n, o, or p in Figure 4. Various candidate groups can be configured according to the encoding configuration, such as {a, b}, {a, c}, {a, n}, {a, o}, {a, p}, {a, b, c}, {a, o, p}, {a, b, c, n}, and {a, b, c, n, p}. Furthermore, candidate groups can be configured in a standalone VSI scheme or in a combination of CSI and VSI schemes as an index-based partitioning scheme.
在示例(5)中,可以通过对编码块进行分区来获得预测块,并且该预测块基于所获得的预测块的尺寸经受预测。也可以通过对编码块进行分区来获得变换块并且该变换块基于所获得的变换块的尺寸经受变换和逆变换。在该示例中,预测块和变换块中的每一个可以由对编码块进行分区而得到。In Example (5), a prediction block can be obtained by partitioning the coded block, and the prediction block undergoes prediction based on the size of the obtained prediction block. Alternatively, a transform block can be obtained by partitioning the coded block, and the transform block undergoes transform and inverse transform based on the size of the obtained transform block. In this example, each of the prediction block and the transform block can be obtained by partitioning the coded block.
此处,可以将基于树的分区方案和基于索引的分区方案用于分区过程,并且可以以与示例4相同的方式或类似的方式来配置候选组。Here, tree-based partitioning schemes and index-based partitioning schemes can be used in the partitioning process, and candidate groups can be configured in the same way or in a similar manner as in Example 4.
在这种情况下,以上示例是根据是否共享对每个块类型进行分区的过程而可能发生的情况,这不应被理解为限制本公开内容。各种修改例也可以是可用的。此外,可以考虑各种编码因素以及块类型来确定块分区配置。In this context, the above examples represent possible scenarios depending on whether the process for partitioning each block type is shared, and should not be construed as limiting the scope of this disclosure. Various modifications are also possible. Furthermore, various encoding factors and block types can be considered to determine the block partitioning configuration.
编码因素可以包括图像类型(I/P/B)、颜色分量(YCbCr)、块尺寸/形状/位置、块宽高比、块类型(编码块、预测块、变换块或量化块)、分区状态、编码模式(帧内/帧间)、与预测有关的信息(帧内预测模式或帧间预测模式)、与变换有关的信息(变换方案选择信息)、与量化有关的信息(量化区域选择信息和量化变换系数编码信息)。Coding factors may include image type (I/P/B), color components (YCbCr), block size/shape/position, block aspect ratio, block type (coded block, prediction block, transform block, or quantization block), partition status, coding mode (intra-frame/inter-frame), prediction-related information (intra-frame prediction mode or inter-frame prediction mode), transform-related information (transform scheme selection information), and quantization-related information (quantization region selection information and quantization transform coefficient coding information).
在根据本发明的实施方式的图像编码方法中,帧间预测可以如下配置。预测单元的帧间预测可以包括参考图片构造步骤、运动估计步骤、运动补偿步骤、运动信息确定步骤和运动信息编码步骤。另外,视频编码设备可以包括实现参考图片构造步骤、运动估计步骤、运动补偿步骤、运动信息确定步骤和运动信息编码步骤的参考图片构造单元、运动估计单元、运动补偿单元、运动信息确定单元和运动信息编码单元。可以省略上述过程中的一些,或者可以添加其他过程,并且可以以不同于上述顺序的顺序进行改变。In the image coding method according to an embodiment of the present invention, inter-frame prediction can be configured as follows. The inter-frame prediction of the prediction unit may include a reference image construction step, a motion estimation step, a motion compensation step, a motion information determination step, and a motion information coding step. Additionally, the video coding apparatus may include a reference image construction unit, a motion estimation unit, a motion compensation unit, a motion information determination unit, and a motion information coding unit that implement the reference image construction step, the motion estimation step, the motion compensation step, the motion information determination step, and the motion information coding step. Some of the above processes may be omitted, or other processes may be added, and the order may be changed from the above sequence.
在根据本发明的实施方式的视频解码方法中,帧间预测可以如下配置。预测单元的帧间预测可以包括运动信息解码步骤、参考图片构造步骤和运动补偿步骤。此外,图像解码设备可以包括实现运动信息解码步骤、参考图片构造步骤和运动补偿步骤的运动信息解码单元、参考图片构造单元和运动补偿单元。可以省略上述过程中的一些,或者可以添加其他过程,并且可以以不同于上述顺序的顺序进行改变。In the video decoding method according to an embodiment of the present invention, inter-frame prediction can be configured as follows. The inter-frame prediction of the prediction unit may include a motion information decoding step, a reference image construction step, and a motion compensation step. Furthermore, the image decoding device may include a motion information decoding unit, a reference image construction unit, and a motion compensation unit that implement the motion information decoding step, the reference image construction step, and the motion compensation step. Some of the above processes may be omitted, or other processes may be added, and the order may be changed from the above order.
由于图像解码设备的参考图片构造单元和运动补偿单元执行与图像编码设备的相应配置相同的作用,因此省略了详细描述,并且运动信息解码单元可以使用在运动信息编码单元中使用的方法来反向执行。此处,由运动补偿单元生成的预测块可以被发送至加法单元。Since the reference image construction unit and motion compensation unit of the image decoding device perform the same functions as their counterparts in the image encoding device, detailed descriptions are omitted. Furthermore, the motion information decoding unit can be reverse-engineered using the methods employed in the motion information encoding unit. Here, the prediction block generated by the motion compensation unit can be sent to the addition unit.
图5是示出根据本发明通过帧间预测获得预测块的各种情况的示例图。Figure 5 is an example diagram illustrating various cases of obtaining prediction blocks through inter-frame prediction according to the present invention.
参考图5,在单向预测中,可以从先前编码的参考图片(T-1,T-2)获得预测块A(前向预测),或者可以从稍后编码的参考图片(T+1,T+2)获得预测块B(后向预测)。在双向预测中,预测块(C和D)可以从多个先前编码的参考图片(T-2至T+2)中生成。通常,P图片类型可以支持单向预测,并且B图片类型可以支持双向预测。Referring to Figure 5, in unidirectional prediction, prediction block A can be obtained from previously encoded reference images (T-1, T-2) (forward prediction), or prediction block B can be obtained from later encoded reference images (T+1, T+2) (backward prediction). In bidirectional prediction, prediction blocks (C and D) can be generated from multiple previously encoded reference images (T-2 to T+2). Typically, P-image type supports unidirectional prediction, and B-image type supports bidirectional prediction.
如在以上示例中,可以从存储器获得针对当前图片的编码而参考的图片,并且可以通过基于当前图片(T)以时间或显示顺序包括当前图片之前的参考图片和当前图片之后的参考图片来构造参考图片列表。As in the example above, the images referenced for the encoding of the current image can be obtained from memory, and a list of reference images can be constructed based on the current image (T) in chronological or display order, including reference images before and after the current image.
可以对当前图像以及基于当前图像的先前或后续图像执行帧间预测(E)。对当前图像执行帧间预测可以被称为非方向性预测。这可以由I图像类型或P/B图像类型支持,并且所支持的图像类型可以根据编码设置来确定。在当前图像中执行帧间预测是使用空间相关性来生成预测块。出于使用时间相关性的目的,在其他图像中执行帧间预测是不同的,但是预测方法(例如,参考图像、运动矢量等)可能是相同的。Inter-frame prediction (E) can be performed on the current image and on previous or subsequent images based on the current image. Performing inter-frame prediction on the current image can be referred to as non-directional prediction. This can be supported by either I-image type or P/B-image type, and the supported image type can be determined based on the coding settings. Performing inter-frame prediction in the current image uses spatial correlation to generate prediction blocks. Performing inter-frame prediction in other images for the purpose of using temporal correlation is different, but the prediction method (e.g., reference image, motion vector, etc.) may be the same.
此处,假设P图片和B图片是能够执行帧间预测的图像类型,但是也可以适用于添加或替代的各种图像类型。例如,特定图像类型可能不支持帧内预测,而是可能仅支持帧间预测,或者可能仅支持预定方向(后向方向)上的帧间预测,或者可能仅支持预定方向上的帧间预测。Here, it is assumed that P-image and B-image are image types capable of performing inter-frame prediction, but this can also be applied to various image types that are added or replaced. For example, a particular image type may not support intra-frame prediction, but may only support inter-frame prediction, or may only support inter-frame prediction in a predetermined direction (backward direction), or may only support inter-frame prediction in a predetermined direction.
参考图片构造单元可以通过参考图片列表来构造和管理用于编码当前图片的参考图片。可以根据编码设置(例如,图像类型、预测方向等)来构造至少一个参考图片列表,并且可以从包括在参考图片列表中的参考图片生成预测块。The reference image construction unit can construct and manage reference images for encoding the current image using a reference image list. At least one reference image list can be constructed based on encoding settings (e.g., image type, prediction orientation, etc.), and prediction blocks can be generated from the reference images included in the reference image list.
在单向预测的情况下,可以对包括在参考图片列表0(L0)或参考图片列表1(L1)中的至少一个参考图片执行帧间预测。另外,在双向预测的情况下,可以对包括在通过组合L0和L1而生成的组合列表(LC)中的至少一个参考图片执行帧间预测。In the case of unidirectional prediction, inter-frame prediction can be performed on at least one reference image included in reference image list 0 (L0) or reference image list 1 (L1). Additionally, in the case of bidirectional prediction, inter-frame prediction can be performed on at least one reference image included in a combined list (LC) generated by combining L0 and L1.
例如,单向预测可以被分类为使用前向参考图片列表(L0)的前向预测(Pred_L0)和使用后向参考图片列表(L1)的后向预测(Pred_L1)。双向预测(Pred_BI)可以使用前向参考图片列表(L0)和后向参考图片列表(L1)两者。For example, one-way prediction can be classified as forward prediction (Pred_L0) using a forward reference image list (L0) and backward prediction (Pred_L1) using a backward reference image list (L1). Two-way prediction (Pred_BI) can use both a forward reference image list (L0) and a backward reference image list (L1).
替选地,通过将前向参考图片列表(L0)复制到后向参考图片列表(L1)来执行两个或更多个前向预测可以被包括在双向预测中,并且通过将后向参考图片列表(L0)复制到前向参考图片列表(L1)的两个或更多个后向预测也可以被包括在双向预测中。Alternatively, two or more forward predictions performed by copying the forward reference image list (L0) to the backward reference image list (L1) can be included in the bidirectional prediction, and two or more backward predictions performed by copying the backward reference image list (L0) to the forward reference image list (L1) can also be included in the bidirectional prediction.
预测方向可以由指示相应方向的标志信息来指示(例如,inter_pred_idc,假设该值可由predFlagL0、predFlagL1、predFlagBI调整)。predFlagL0指示是否执行前向预测,并且predFlagL1指示是否执行后向预测。双向预测可以通过指示预测是通过predFlagBI还是通过同时激活predFlagL0和predFlagL1(例如,当每个标志为1时)进行来指示。The prediction direction can be indicated by flag information indicating the corresponding direction (e.g., inter_pred_idc, assuming this value can be adjusted by predFlagL0, predFlagL1, and predFlagBI). predFlagL0 indicates whether forward prediction is performed, and predFlagL1 indicates whether backward prediction is performed. Bidirectional prediction can be indicated by whether the prediction is performed via predFlagBI or by activating both predFlagL0 and predFlagL1 simultaneously (e.g., when each flag is 1).
在本发明中,主要描述了使用全向参考图片列表的全向预测的情况,但是相同或修改的应用可以应用于其他情况。This invention primarily describes the case of omnidirectional prediction using a list of omnidirectional reference images, but the same or modified application can be applied to other situations.
通常,可以使用以下方法:针对要由编码器编码的图片确定最佳参考图片,并且将关于参考图片的信息显式地发送至解码器。为此,参考图片构造单元可以管理针对当前图片的帧间预测而参考的图片列表,并且可以考虑有限的存储器大小来设置用于参考图片管理的规则。Typically, the following approach can be used: determine the optimal reference image for the image to be encoded by the encoder, and explicitly send information about the reference image to the decoder. To this end, the reference image construction unit can manage the list of images referenced for inter-frame prediction of the current image, and can set rules for reference image management considering limited memory size.
发送的信息可以被定义为参考图片集即RPS,并且在RPS中选择的图片被分类为参考图片并且被存储在存储器(或DPB)中,并且RPS中未选择的图片被分类为非参考图片。一小时后可能会从存储器中删除。预定数目的图片(例如,14、15、16个图片或更多个图片)可以被存储在存储器中,并且存储器的大小可以根据图像的级别和分辨率来设置。The transmitted information can be defined as a Reference Image Set (RPS), where images selected in the RPS are classified as reference images and stored in memory (or a Data Point Block (DPB), while images not selected in the RPS are classified as non-reference images. Images may be deleted from memory after one hour. A predetermined number of images (e.g., 14, 15, 16, or more) can be stored in memory, and the size of the memory can be set according to the image level and resolution.
图6是根据本发明的实施方式构造参考图片列表的示例图。Figure 6 is an example diagram of constructing a list of reference pictures according to an embodiment of the present invention.
参照图6,通常,在当前图片之前存在的参考图片(T-1,T-2)可以被分配给L0并被管理,并且在当前图片之后存在的参考图片(T+1,T+2)可以被分配给L1并被管理。当构造L0时,如果L0的参考图片的数目不足,则可以分配L1的参考图片。类似地,当构造L1时,当L1的参考图片的数目不足时,可以分配L0的参考图片。Referring to Figure 6, typically, reference images (T-1, T-2) existing before the current image can be assigned to L0 and managed, and reference images (T+1, T+2) existing after the current image can be assigned to L1 and managed. When constructing L0, if the number of reference images for L0 is insufficient, reference images from L1 can be assigned. Similarly, when constructing L1, if the number of reference images for L1 is insufficient, reference images from L0 can be assigned.
此外,当前图片可以包括在至少一个参考图片列表中。例如,L0或L1可以包括当前图片,并且L0可以通过将时间顺序为T的参考图片(或当前图片)添加至当前图片之前的参考图片来构造,而L1可以通过将时间顺序为T的参考图片添加至当前图片之后的参考图片来构造。Furthermore, the current image can be included in at least one list of reference images. For example, L0 or L1 can include the current image, and L0 can be constructed by adding a reference image (or the current image) with a chronological order of T to a list of reference images preceding the current image, while L1 can be constructed by adding a reference image with a chronological order of T to a list of reference images following the current image.
参考图片列表的构造可以根据编码设置来确定。The construction of the reference image list can be determined based on the encoding settings.
当前图片可以不包括在参考图片列表中,但是可以通过与参考图片列表分离的单独的存储器来管理,或者当前图片可以包括在至少一个参考图片列表中并被管理。The current image may not be included in the reference image list, but may be managed through a separate memory separate from the reference image list, or the current image may be included in at least one reference image list and managed thereafter.
例如,可以通过对参考图片列表是否包括当前图片进行指示的信号(curr_pic_ref_enabled_flag)来确定。此处,信号可以是隐式地确定的信息或显式地生成的信息。For example, this can be determined using a signal (curr_pic_ref_enabled_flag) that indicates whether the current image is included in the list of reference images. Here, the signal can be implicitly determined or explicitly generated.
具体地,当信号被去激活(例如,curr_pic_ref_enabled_flag=0)时,当前图片可以不被包括在任何参考图片列表中作为参考图片,并且当信号被激活(例如,curr_pic_ref_enabled_flag=1)时,是否将当前图片包括在预定参考图片列表中可以被隐式地确定(例如,仅被添加至L0,仅被添加至L1,以及可以同时被添加至L0和L1)或者可以显式地生成并且确定相关的信号(例如,curr_pic_ref_from_l0_flag,curr_pic_ref_from_l1_flag)。该信号可以以诸如序列、图片、子图片、切片、图块和区块的单位来支持。Specifically, when the signal is deactivated (e.g., curr_pic_ref_enabled_flag = 0), the current image may not be included as a reference image in any list of reference images. When the signal is activated (e.g., curr_pic_ref_enabled_flag = 1), whether to include the current image in a predetermined list of reference images can be implicitly determined (e.g., added only to L0, added only to L1, or added to both L0 and L1) or the relevant signal can be explicitly generated and determined (e.g., curr_pic_ref_from_l0_flag, curr_pic_ref_from_l1_flag). This signal can be supported in units such as sequences, images, sub-images, slices, tiles, and blocks.
此处,当前图片可以被定位在如图6所示的参考图片列表的首先或最后顺序,并且列表中的布置顺序可以根据编码设置(例如,图像类型信息)来确定。例如,I类型可以被首先定位,并且P/B类型可以被最后定位,但是本发明不限于此,并且修改的其他示例也是可行的。Here, the current image can be positioned either first or last in the list of reference images shown in Figure 6, and the arrangement order in the list can be determined according to encoding settings (e.g., image type information). For example, type I can be positioned first, and type P/B can be positioned last, but the invention is not limited thereto, and other modified examples are also possible.
替选地,可以根据指示当前图片中是否支持块匹配(或模板匹配)的信号(ibc_enabled_flag)来支持单独的参考图片存储器。此处,信号可以是隐式地确定的信息或显式地生成的信息。Alternatively, a separate reference image store can be supported based on a signal (ibc_enabled_flag) indicating whether block matching (or template matching) is supported in the current image. Here, the signal can be implicitly determined information or explicitly generated information.
详细地,当信号被去激活(例如,ibc_enabled_flag=0)时,这可能意味着在当前图片中不支持块匹配,并且当信号被激活(例如,ibc_enabled_flag=1)时,在当前图片中可以支持块匹配,并且可以支持用于此的参考图片存储器。在该示例中,假设提供了附加的存储器,但是也可以设置为直接从当前图片所支持的现有存储器支持块匹配,而不用提供附加的存储器。Specifically, when the signal is deactivated (e.g., ibc_enabled_flag = 0), this may mean that block matching is not supported in the current image, and when the signal is activated (e.g., ibc_enabled_flag = 1), block matching can be supported in the current image, and reference image memory for this purpose can be supported. In this example, it is assumed that additional memory is provided, but it is also possible to configure block matching to be supported directly from existing memory supported by the current image without providing additional memory.
参考图片构造单元可以包括参考图片内插单元,并且可以根据帧间预测的内插精度来确定是否对分数单位的像素执行内插处理。例如,当内插精度是整数单位时,可以省略参考图片内插处理,并且当内插精度是分数单位时,可以执行参考图片内插处理。The reference image construction unit may include a reference image interpolation unit, and whether to perform interpolation processing on fractional-unit pixels can be determined based on the interpolation precision of the inter-frame prediction. For example, when the interpolation precision is in integer units, reference image interpolation processing can be omitted, and when the interpolation precision is in fractional units, reference image interpolation processing can be performed.
在参考图片内插处理中使用的内插滤波器可以根据编码设置隐式地确定,或者可以根据多个内插滤波器之中显式地确定。根据编码设置,多个内插滤波器的配置可以支持固定候选或自适应候选,并且候选的数目可以是2、3、4或更多的整数。显式地确定的单位可以从序列、图片、子图片、切片、图块、区块或块中确定。The interpolation filters used in the reference image interpolation process can be implicitly determined based on the encoding settings, or explicitly determined from among multiple interpolation filters. Depending on the encoding settings, the configuration of multiple interpolation filters can support fixed candidates or adaptive candidates, and the number of candidates can be an integer of 2, 3, 4 or more. The explicitly determined unit can be determined from a sequence, image, sub-image, slice, tile, block, or chunk.
此处,可以根据图像类型、颜色分量、目标块的状态信息(例如,块尺寸、形状、水平/垂直长度比等)、帧间预测设置(例如,运动信息编码模式、运动模型选择信息、运动矢量精度选择信息、参考图片、参考方向等)来确定编码设置。运动矢量精度可以意味着运动矢量的精度(即,pmv+mvd),但是可以用运动矢量预测值的精度(pmv)或运动矢量差(mvd)来代替。Here, the encoding settings can be determined based on image type, color components, target block state information (e.g., block size, shape, horizontal/vertical length ratio, etc.), and inter-frame prediction settings (e.g., motion information encoding mode, motion model selection information, motion vector precision selection information, reference image, reference orientation, etc.). Motion vector precision can mean the precision of the motion vectors (i.e., pmv + mvd), but it can be replaced by the precision of the motion vector prediction values (pmv) or the motion vector difference (mvd).
此处,内插滤波器可以具有k抽头的滤波器长度,并且k可以是2、3、4、5、6、7、8或更多的整数。滤波器系数可以从具有各种系数特性的等式中得出,例如维纳滤波器和卡尔曼滤波器。用于内插的滤波器信息(例如,滤波器系数、抽头信息等)可以隐式地确定或得出,或者可以显式地生成相关信息。在这种情况下,滤波器系数可以被配置为包括0。Here, the interpolation filter can have a filter length with k taps, and k can be an integer of 2, 3, 4, 5, 6, 7, 8, or more. The filter coefficients can be derived from equations with various coefficient characteristics, such as Wiener and Kalman filters. The filter information used for interpolation (e.g., filter coefficients, tap information, etc.) can be implicitly determined or derived, or the relevant information can be explicitly generated. In this case, the filter coefficients can be configured to include 0.
内插滤波器可以被应用于预定像素单位,并且预定像素单位可以被限制为整数或分数单位,或者可以被应用于整数和分数单位。Interpolation filters can be applied to a predetermined pixel unit, and the predetermined pixel unit can be restricted to an integer or fractional unit, or can be applied to both integer and fractional units.
例如,内插滤波器可以被应用于在水平方向或垂直方向上与内插目标像素(即,分数单位像素)相邻的k个整数单位像素。For example, an interpolation filter can be applied to k integer unit pixels that are adjacent to the interpolation target pixel (i.e., fractional unit pixels) in the horizontal or vertical direction.
替选地,内插滤波器可以被应用于在水平方向或垂直方向上与内插目标像素相邻的p个整数单位像素和q个分数单位像素(p+q=k)。在这种情况下,被称为用于内插的分数单位的精度(例如,以1/4为单位)可以用与内插目标像素相同或比内插目标像素更低的精度(例如,2/4->1/2)来表示。Alternatively, the interpolation filter can be applied to p integer units and q fractional units (p+q=k) adjacent to the interpolation target pixel in the horizontal or vertical direction. In this case, the precision referred to as the fractional unit used for interpolation (e.g., in 1/4 units) can be expressed as the same as or lower than the interpolation target pixel (e.g., 2/4 -> 1/2).
当内插目标像素的x分量和y分量中仅一种位于分数单位中时,可以基于与分数分量方向相邻的k个像素来执行内插(例如,x轴是水平的,并且y轴是垂直的)。当内插目标像素的x分量和y分量两者都位于分数单位中时,可以基于在水平方向或垂直方向上相邻的x个像素来执行第一内插,并且基于在另一方向上相邻的y个像素来执行内插。在这种情况下,将描述其中x和y与k相同的情况,但是该情况不限于此,并且还可能出现其中x和y不同的情况。When only one of the x-component and y-component of the interpolated target pixel lies within a fractional unit, interpolation can be performed based on k pixels adjacent in the direction of the fractional component (e.g., the x-axis is horizontal and the y-axis is vertical). When both the x-component and y-component of the interpolated target pixel lie within a fractional unit, a first interpolation can be performed based on x pixels adjacent in either the horizontal or vertical direction, and interpolation can be performed based on y pixels adjacent in the other direction. In this case, the case where x and y are the same as k will be described, but the case is not limited to this, and it is also possible for x and y to be different.
内插目标像素可以通过内插精度(1/m)获得,并且m可以是1、2、4、8、16、32或更高的整数。内插精度可以根据编码设置隐式地确定,或者相关信息可以显式地生成。编码设置可以基于图像类型、颜色分量、参考图片、运动信息编码模式、运动模型选择信息等来限定。显式地确定的单位可以从序列、子图片、切片、图块或区块中确定。The interpolated target pixel can be obtained through interpolation precision (1/m), where m can be an integer of 1, 2, 4, 8, 16, 32, or higher. The interpolation precision can be implicitly determined based on encoding settings, or it can be explicitly generated based on relevant information. Encoding settings can be limited based on image type, color components, reference image, motion information encoding mode, motion model selection information, etc. The explicitly determined unit can be determined from a sequence, sub-image, slice, tile, or block.
通过以上处理,可以获得目标块的内插滤波器设置,并且可以基于此执行参考图片内插。另外,可以获得基于内插滤波器设置的详细的内插滤波器设置,并且可以基于此执行参考图片内插。也就是说,假设所获得的目标块的内插滤波器设置可以通过获得一个固定候选来获得,但是也可以获得使用多个候选的可能性。在稍后描述的示例中,假设内插精度是1/16(例如,15个像素要被内插)。Through the above processing, the interpolation filter settings for the target block can be obtained, and reference image interpolation can be performed based on them. Furthermore, detailed interpolation filter settings based on these settings can be obtained, and reference image interpolation can be performed based on them. That is, while it's possible to obtain the interpolation filter settings for the target block using a fixed candidate, it's also possible to use multiple candidates. In the example described later, it's assumed that the interpolation precision is 1/16 (e.g., 15 pixels to be interpolated).
作为设置详细内插滤波器的示例,多个候选中的一个可以自适应地用于预定位置处的第一像素单位,并且一个预定内插滤波器可以用于预定位置处的第二像素单位。As an example of setting up detailed interpolation filters, one of a plurality of candidates can be adaptively used for the first pixel unit at a predetermined position, and a predetermined interpolation filter can be used for the second pixel unit at the predetermined position.
第一像素单位可以在由内插精度支持的所有分数单位(在该示例中为1/16至15/16)的像素之中确定,并且包括在第一像素单位中的像素的数目可以是a,并且a可以在0、1、2、……、(m-1)之间确定。The first pixel unit can be determined among all fractional units of pixels supported by interpolation precision (1/16 to 15/16 in this example), and the number of pixels included in the first pixel unit can be a, and a can be determined between 0, 1, 2, ..., (m-1).
第二像素单位可以包括从全部分数单位的像素中排除第一像素单位的像素,并且包括在第二像素单位中的像素的数目可以通过从要内插的像素的总数中减去第一像素单位中的像素的数目来得出。在该示例中,将描述将像素单位划分成两个的示例,但是本发明不限于此,并且可以划分成三个或更多个。The second pixel unit may include pixels excluded from the first pixel unit from the total number of pixels in the fractional units, and the number of pixels included in the second pixel unit can be obtained by subtracting the number of pixels in the first pixel unit from the total number of pixels to be interpolated. In this example, an example of dividing the pixel unit into two will be described, but the invention is not limited thereto and may divide it into three or more.
例如,第一像素单位可以是以多单位例如1/2、1/4、1/8表示的单位。例如,在1/2单位的情况下,它可以是位于8/16处的像素,并且在1/4单位的情况下,它可以是位于{4/16,8/16,12/16}处的像素,并且在1/8单位的情况下,它可以是位于{2/16,4/16,6/16,8/16,10/16,12/16,14/16}处的像素。For example, the first pixel unit can be a unit represented by multiple units such as 1/2, 1/4, 1/8. For example, in the case of a 1/2 unit, it can be a pixel located at 8/16, and in the case of a 1/4 unit, it can be a pixel located at {4/16, 8/16, 12/16}, and in the case of a 1/8 unit, it can be a pixel located at {2/16, 4/16, 6/16, 8/16, 10/16, 12/16, 14/16}.
详细的内插滤波器设置可以根据编码设置来确定,并且编码设置可以由图像类型、颜色分量、目标块的状态信息、帧间预测设置等来限定。下面将查看根据各种编码元素设置详细的内插滤波器的示例。为了便于说明,假设a为0以及c或更大(c为大于或等于1的整数)。Detailed interpolation filter settings can be determined based on the coding settings, which can be limited by image type, color components, target block state information, inter-frame prediction settings, etc. Below are examples of detailed interpolation filter settings based on various coding elements. For ease of explanation, assume a is 0 and c is or greater (c is an integer greater than or equal to 1).
例如,在颜色分量(亮度、色度)的情况下,a可以是(1,0)、(0,1)、(1,1)。替选地,在运动信息编码模式(合并模式、竞争模式)的情况下,a可以是(1,0)、(0,1)、(1,1)、(1,3)。或者,在运动模型选择信息(平移运动、非平移运动A、非平移运动B)的情况下,a可以是(0,1,1)、(1,0,0)、(1,1,1)、(1,3,7)。替选地,在运动矢量精度(1/2,1/4,1/8)的情况下,a可以是(0,0,1)、(0,1,0)、(1,0,0)、(0,1,1)、(1,0,1)、(1,1,0)、(1,1,1)。替选地,在参考图片(当前图片、其他图片)的情况下,a可以是(0,1)、(1,0)、(1,1)。For example, in the case of color components (luminance, chrominance), a can be (1,0), (0,1), (1,1). Alternatively, in the case of motion information encoding mode (merging mode, competing mode), a can be (1,0), (0,1), (1,1), (1,3). Or, in the case of motion model selection information (translational motion, non-translational motion A, non-translational motion B), a can be (0,1,1), (1,0,0), (1,1,1), (1,3,7). Alternatively, in the case of motion vector precision (1/2, 1/4, 1/8), a can be (0,0,1), (0,1,0), (1,0,0), (0,1,1), (1,0,1), (1,1,0), (1,1,1). Alternatively, in the case of reference images (current image, other images), a can be (0,1), (1,0), (1,1).
如上所述,可以通过选择多个内插精度之一来执行内插处理,并且当支持根据自适应内插精度的内插处理(例如,adaptive_ref_resolution_enabled_flag。如果为0,则使用预定的内插精度,并且如果为1,则使用多个内插精度之一)时,可以生成精度选择信息(例如,ref_resolution_idx)。As described above, interpolation can be performed by selecting one of several interpolation precisions, and when interpolation based on adaptive interpolation precision is supported (e.g., adaptive_ref_resolution_enabled_flag. If it is 0, a predetermined interpolation precision is used, and if it is 1, one of several interpolation precisions is used), precision selection information (e.g., ref_resolution_idx) can be generated.
可以根据内插精度来执行运动估计和补偿处理,并且还可以基于内插精度来确定用于运动矢量的表示单位和存储单位。Motion estimation and compensation can be performed based on interpolation accuracy, and the representation and storage units for motion vectors can also be determined based on interpolation accuracy.
例如,当内插精度为1/2单位时,运动估计和补偿处理可以由1/2单位来执行,并且运动矢量可以由1/2单位来表示并且可以在编码处理中使用。此外,运动矢量可以以1/2为单位存储,并且可以在另一块的运动信息的编码处理中被参考。For example, when the interpolation precision is 1/2 unit, motion estimation and compensation processing can be performed at 1/2 unit, and motion vectors can be represented at 1/2 unit and used in the encoding process. Furthermore, motion vectors can be stored at 1/2 unit and can be referenced in the encoding process of another block of motion information.
替选地,当内插精度为1/8时,运动估计和补偿处理可以以1/8单位执行,并且运动矢量可以以1/8单位表示,并且可以在编码处理中使用并且以1/8单位存储。Alternatively, when the interpolation precision is 1/8, motion estimation and compensation processing can be performed in 1/8 units, and motion vectors can be represented in 1/8 units and used in the encoding process and stored in 1/8 units.
另外,可以以不同于内插精度的单位例如整数、1/2单位和1/4单位来执行、表示和存储运动估计和补偿处理以及运动矢量,这些单位可以根据帧间预测方法/设置(例如,运动估计/补偿方法、运动模型选择信息、运动信息编码模式等)自适应地确定。Additionally, motion estimation and compensation processing, as well as motion vectors, can be performed, represented, and stored in units different from interpolation precision, such as integers, 1/2 units, and 1/4 units. These units can be adaptively determined based on inter-frame prediction methods/settings (e.g., motion estimation/compensation methods, motion model selection information, motion information coding modes, etc.).
作为示例,假设内插精度为1/8,在平移运动模型的情况下,运动估计和补偿可以以1/4单位来执行,并且运动矢量可以以1/4单位来表示(在该示例中,假设编码处理中的单位),并且可以以1/8单位来存储。在非平移运动模型的情况下,运动估计和补偿处理可以以1/8单位来执行,并且运动矢量可以以1/4单位来表示,并且可以以1/8单位来存储。As an example, assuming an interpolation precision of 1/8, in the case of a translational motion model, motion estimation and compensation can be performed in 1/4 units, and motion vectors can be represented in 1/4 units (assuming units in the encoding process in this example), and stored in 1/8 units. In the case of a non-translational motion model, motion estimation and compensation processing can be performed in 1/8 units, and motion vectors can be represented in 1/4 units, and stored in 1/8 units.
例如,假设内插精度为1/8单位,在块匹配的情况下,运动估计和补偿可以以1/4单位来执行,并且运动矢量可以以1/4单位来表示,并且可以以1/8单位来存储。在模板匹配的情况下,运动估计和补偿处理可以以1/8单位来执行,并且运动矢量可以以1/8单位来表示,并且可以以1/8单位来存储。For example, assuming an interpolation precision of 1/8 unit, in the case of block matching, motion estimation and compensation can be performed at 1/4 unit, and motion vectors can be represented at 1/4 unit and stored at 1/8 unit. In the case of template matching, motion estimation and compensation processing can be performed at 1/8 unit, and motion vectors can be represented at 1/8 unit and stored at 1/8 unit.
例如,假设内插精度为1/16,在竞争模式的情况下,运动估计和补偿处理可以以1/4单位来执行,并且运动矢量可以以1/4单位来表示并且可以以1/16单位来存储。在合并模式的情况下,运动估计和补偿处理可以以1/8为单位来执行,并且运动矢量可以以1/4为单位来表示,并且可以以1/16为单位来存储。在跳过模式的情况下,运动估计和补偿可以以1/16为单位来执行,并且运动矢量可以以1/4为单位来表示,并且可以以1/16为单位来存储。For example, assuming an interpolation precision of 1/16, in race mode, motion estimation and compensation processing can be performed in 1/4 units, and motion vectors can be represented in 1/4 units and stored in 1/16 units. In merge mode, motion estimation and compensation processing can be performed in 1/8 units, and motion vectors can be represented in 1/4 units and stored in 1/16 units. In skip mode, motion estimation and compensation can be performed in 1/16 units, and motion vectors can be represented in 1/4 units and stored in 1/16 units.
总之,可以基于帧间预测方法或设置以及内插精度来自适应地确定运动估计、运动补偿、运动矢量表示和存储的单位。详细地,运动估计、运动补偿和运动矢量表示的单位可以根据帧间预测方法或设置自适应地确定,并且运动矢量的存储单位通常可以根据内插精度来确定,但是不限于此,并且各种修改的示例是可行的。另外,在以上示例中,已经例示了根据一个类别(例如,运动模型选择信息、运动估计/补偿方法等)的示例,但是当两个或更多个类别被混合时也可以确定设置。In summary, the units for motion estimation, motion compensation, motion vector representation, and storage can be adaptively determined based on the inter-frame prediction method or settings and the interpolation accuracy. Specifically, the units for motion estimation, motion compensation, and motion vector representation can be adaptively determined based on the inter-frame prediction method or settings, and the storage unit for motion vectors is typically determined based on the interpolation accuracy, but is not limited to this, and various modified examples are feasible. Furthermore, the examples above have illustrated an example based on one category (e.g., motion model selection information, motion estimation/compensation method, etc.), but settings can also be determined when two or more categories are mixed.
另外,如上所述,内插精度信息可以具有预定值或者可以被选择为多个精度之一,并且根据基于帧间预测方法或设置支持的运动估计和补偿设置来确定参考图片内插精度。例如,当平移运动模型支持高达1/8单位,并且非平移运动模型支持高达1/16单位时,可以根据具有最高精度的非平移运动模型的精度单位来执行内插处理。Furthermore, as mentioned above, the interpolation accuracy information can have a predetermined value or can be selected as one of multiple accuracies, and the reference image interpolation accuracy is determined based on the motion estimation and compensation settings supported by the inter-frame prediction method or settings. For example, when the translational motion model supports up to 1/8 unit and the non-translational motion model supports up to 1/16 unit, interpolation can be performed based on the accuracy unit of the non-translational motion model with the highest accuracy.
也就是说,可以根据用于支持的精度信息的设置——例如平移运动模型、非平移运动模型、竞争模式、合并模式和跳过模式——来执行参考图片内插。在这种情况下,精度信息可以被隐式或显式地确定,并且当相关信息被显式地生成时,它可以被包括在诸如序列、图片、子图片、切片、图块和区块的单元中。In other words, reference image interpolation can be performed based on settings for the accuracy information used to support it—such as translational motion model, non-translational motion model, competition mode, merging mode, and skip mode. In this case, the accuracy information can be determined implicitly or explicitly, and when the relevant information is explicitly generated, it can be included in units such as sequences, images, sub-images, slices, tiles, and blocks.
运动估计单元意指估计(或搜索)目标块是否与预定参考图片的预定块具有高相关性的过程。可以从块划分单元获得目标块——对该目标块执行预测——的尺寸和形状(M×N)。作为示例,目标块可以在4×4至128×128的范围内确定。通常,帧间预测可以以预测块为单位来执行,但是可以根据块划分单元的设置以诸如编码块或变换块为单位来执行。可以在参考区域的可估计范围内执行估计,并且可以使用至少一种运动估计方法。在运动估计方法中,可以限定针对每个像素的估计顺序和条件。A motion estimation unit refers to the process of estimating (or searching) whether a target block has a high correlation with a predetermined block of a predetermined reference image. The size and shape (M×N) of the target block—on which prediction is performed—can be obtained from the block partitioning unit. As an example, the target block can be determined in the range of 4×4 to 128×128. Typically, inter-frame prediction can be performed on a block-by-block basis, but it can be performed on a block-by-block basis, such as a coded block or a transform block, depending on the block partitioning unit settings. Estimation can be performed within an estimable range of the reference region, and at least one motion estimation method can be used. In the motion estimation method, the estimation order and conditions can be defined for each pixel.
可以基于运动估计方法来执行运动估计。例如,在块匹配的情况下,为运动估计处理而要比较的区域可以是目标块,并且在模板匹配的情况下,可以是围绕目标块设置的预定区域(模板)。在前一种情况下,可以在目标块和参考区域的可估计范围内找到具有最高相关性的块,并且在后一种情况下,可以在根据编码设置和参考区域限定的模板的可估计范围内找到具有最高相关性的区域。Motion estimation can be performed based on motion estimation methods. For example, in the case of block matching, the region to be compared for motion estimation processing can be the target block, and in the case of template matching, it can be a predetermined region (template) set around the target block. In the former case, the block with the highest relevance can be found within the estimable range of the target block and the reference region, and in the latter case, the region with the highest relevance can be found within the estimable range of the template defined according to the encoding settings and the reference region.
可以基于运动模型来执行运动估计。可以使用除了仅考虑平行运动的平移运动模型之外的附加运动模型来执行运动估计和补偿。例如,可以使用考虑诸如旋转、透视、放大/缩小以及平行运动的运动的运动模型来执行运动估计和补偿。这可以被支持以通过生成预测块来提高编码性能,该预测块通过反映根据图像的区域特征发生的以上各种类型的运动来生成。Motion estimation can be performed based on motion models. Additional motion models, besides translational motion models that only consider parallel motion, can be used to perform motion estimation and compensation. For example, motion models that consider motions such as rotation, perspective, zoom in/out, and parallel motion can be used to perform motion estimation and compensation. This can be supported to improve coding performance by generating prediction blocks that reflect the various types of motions occurring based on the regional features of the image.
图7是示出根据本发明的实施方式的非平移运动模型的概念图。Figure 7 is a conceptual diagram illustrating a non-translational motion model according to an embodiment of the present invention.
参照图7,作为仿射模型的示例,示出了基于预定位置处的运动矢量V0和V1来表示运动信息的示例。由于可以基于多个运动矢量来表示运动,因此精确的运动估计和补偿是可行的。Referring to Figure 7, as an example of an affine model, an example is shown where motion information is represented based on motion vectors V0 and V1 at predetermined positions. Since motion can be represented based on multiple motion vectors, accurate motion estimation and compensation are possible.
如在以上示例中,基于预定义的运动模型来执行帧间预测,但是也可以支持基于附加运动模型的帧间预测。此处,假设预定义运动模型是平移运动模型,并且附加运动模型是仿射模型,但是本发明不限于此,并且各种修改是可行的。As in the example above, inter-frame prediction is performed based on a predefined motion model, but inter-frame prediction based on an additional motion model can also be supported. Here, it is assumed that the predefined motion model is a translational motion model and the additional motion model is an affine model, but the invention is not limited to this, and various modifications are possible.
在平移运动模型的情况下,运动信息(假设单向预测)可以基于一个运动矢量来表示,并且用于指示运动信息的控制点(参考点)被假设为左上坐标,但是不限于此。In the case of a translational motion model, motion information (assuming unidirectional prediction) can be represented based on a motion vector, and the control point (reference point) used to indicate the motion information is assumed to be the upper left coordinate, but is not limited to this.
在非平移运动模型的情况下,它可以被表示为各种配置的运动信息。在该示例中,假设该配置被表示为一个运动矢量中的附加信息(相对于左上角坐标)。通过稍后要描述的示例提到的一些运动估计和补偿可以不以块为单位来执行,但是可以以预定子块为单位来执行。在这种情况下,可以基于每个运动模型来确定预定子块的尺寸和位置。In the case of a non-translational motion model, it can be represented as motion information for various configurations. In this example, it is assumed that the configuration is represented as additional information in a motion vector (relative to the top-left corner coordinates). Some motion estimation and compensation mentioned in the examples described later can be performed not on a block-by-block basis, but on a predetermined sub-block basis. In this case, the size and position of the predetermined sub-blocks can be determined based on each motion model.
图8是示出根据本发明的实施方式的以子块为单位的运动估计的示例图。详细地,它示出了根据仿射模型(两个运动矢量)以子块为单位的运动估计。Figure 8 is an example diagram illustrating motion estimation on a sub-block basis according to an embodiment of the present invention. Specifically, it illustrates motion estimation on a sub-block basis based on an affine model (two motion vectors).
在平移运动模型的情况下,目标块中包括的像素单位的运动矢量可以是相同的。也就是说,可以将运动矢量共同地应用于像素单位,并且可以使用一个运动矢量(V0)来执行运动估计和补偿。In the case of a translational motion model, the motion vectors of the pixel units included in the target block can be the same. That is, the motion vectors can be applied to the pixel units together, and a single motion vector ( V0 ) can be used to perform motion estimation and compensation.
在非平移运动模型(仿射模型)的情况下,目标块中包括的像素单位的运动矢量可能不是相同的,并且可能需要针对每个像素的单独运动矢量。在这种情况下,可以基于目标块的预定控制点的位置处的运动矢量(V0,V1)来得出像素单位或子块单位的运动矢量,并且可以使用得出的运动矢量来执行运动估计和补偿。In the case of a non-translational motion model (affine model), the motion vectors of the pixel units included in the target block may not be the same, and a separate motion vector may be required for each pixel. In this case, the motion vectors of the pixel units or sub-block units can be derived based on the motion vectors ( V0 , V1 ) at the positions of predetermined control points of the target block, and the derived motion vectors can be used to perform motion estimation and compensation.
例如,目标块内的子块或像素单位的运动矢量(例如,(Vx,Vy))可以由等式Vx=(V1x-V0x)×x/M-(V1y-V0y)×y/N+V0x,Vy=(V1y-V0y)×x/M+(V1x-V0x)×y/N+V0y得出。在以上等式中,V0(在该示例中,(V0x,V0y))指的是目标块的左上处的运动矢量,并且V1(在该示例中,(V1x,V1y))指的是目标块的右上处的运动矢量。考虑到复杂性,可以以子块为单位执行非平移运动模型的运动估计和运动补偿。For example, the motion vector of a sub-block or pixel unit within the target block (e.g., ( Vx , Vy )) can be derived from the equations Vx = ( V1x - V0x )×x/M - ( V1y - V0y )×y/N + V0x , Vy = ( V1y - V0y )×x/M + ( V1x - V0x )×y/N + V0y . In these equations, V0 (in this example, ( V0x , V0y )) refers to the motion vector at the top left of the target block, and V1 (in this example, ( V1x , V1y )) refers to the motion vector at the top right of the target block. Considering the complexity, motion estimation and compensation for a non-translational motion model can be performed on a sub-block basis.
此处,子块(M×N)的尺寸可以根据编码设置来确定,并且可以具有固定尺寸或者可以被设置为自适应尺寸。此处,M和N可以是2、4、8、16或更多的整数,并且M和N可以是相同的或者可以不是相同的。子块的尺寸可以以诸如序列、图片、子图片、切片、图块和区块的单位来显式地生成。替选地,它可以由编码器与解码器之间的共同承诺隐式地确定,或者可以由编码设置来确定。Here, the size of the sub-block (M×N) can be determined according to the encoding settings and can have a fixed size or can be set to an adaptive size. M and N can be integers of 2, 4, 8, 16, or more, and M and N can be the same or different. The size of the sub-block can be explicitly generated in units such as sequences, pictures, sub-pictures, slices, tiles, and blocks. Alternatively, it can be implicitly determined by a mutual commitment between the encoder and decoder, or it can be determined by the encoding settings.
此处,编码设置可以由状态信息、图像类型、颜色分量、目标块的帧间预测设置信息(运动信息编码模式、参考图片信息、内插精度、运动模型选择信息等)中的一个或更多个元素来限定。Here, the encoding settings can be defined by one or more elements, including state information, image type, color components, and inter-frame prediction settings for the target block (motion information encoding mode, reference image information, interpolation accuracy, motion model selection information, etc.).
在以上示例中,已经描述了根据预定的非平移运动模型得出子块的尺寸并且基于此执行运动估计和补偿的过程。如在以上示例中,可以根据运动模型以子块或像素为单位执行运动估计和补偿,并且将省略其详细描述。In the examples above, the process of deriving the size of the sub-blocks based on a predetermined non-translational motion model and performing motion estimation and compensation accordingly has been described. As in the examples above, motion estimation and compensation can be performed on a sub-block or pixel-by-pixel basis according to the motion model, and a detailed description of this will be omitted.
以下示出了根据运动模型构造的运动信息的各种示例。The following are various examples of motion information constructed based on motion models.
例如,在表示旋转运动的运动模型的情况下,块的平移运动可以用一个运动矢量来表示,并且旋转运动可以用旋转角度信息来表示。旋转角度信息可以相对于(0度)预定位置(例如,左上坐标)测量,并且可以被表示为在预定的角度范围(例如,在-90度与90度之间)内具有预定间隔(例如,具有0度、11.25度、22.25度等的角度差值)的k个候选(k是1、2、3或更多的整数)。For example, in the case of a motion model representing rotational motion, the translational motion of a block can be represented by a motion vector, and the rotational motion can be represented by rotation angle information. The rotation angle information can be measured relative to a predetermined position (e.g., the top-left coordinate) and can be represented as k candidates (k is an integer of 1, 2, 3 or more) with predetermined intervals (e.g., angle differences of 0 degrees, 11.25 degrees, 22.25 degrees, etc.) within a predetermined angle range (e.g., between -90 degrees and 90 degrees).
此处,旋转角度信息可以在运动信息编码处理期间按原样进行编码,或者可以基于相邻块的运动信息(例如,运动矢量、旋转角度信息)进行编码(例如,预测+差信息)。Here, the rotation angle information can be encoded as is during motion information encoding processing, or it can be encoded based on the motion information of adjacent blocks (e.g., motion vectors, rotation angle information) (e.g., prediction + difference information).
替选地,块的平移运动可以用一个运动矢量来表示,并且块的旋转运动可以用一个或更多个附加运动矢量来表示。在这种情况下,附加运动矢量的数目可以是1、2或更多的整数,并且附加运动矢量的控制点可以从右上坐标、左下坐标和右下坐标之中确定,或者块内的其他坐标可以被设置为控制点。Alternatively, the translational motion of a block can be represented by a single motion vector, and the rotational motion of a block can be represented by one or more additional motion vectors. In this case, the number of additional motion vectors can be an integer of 1, 2, or more, and the control points of the additional motion vectors can be determined from the upper right, lower left, and lower right coordinates, or other coordinates within the block can be set as control points.
此处,附加运动矢量可以在运动信息编码处理期间按原样进行编码,或者基于相邻块的运动信息(例如,根据平移运动模型或非平移运动模型的运动矢量)进行编码(例如,预测+差信息),或者可以基于代表旋转运动的块中的另一运动矢量进行编码(例如,预测+差信息)。Here, the additional motion vector can be encoded as is during motion information encoding processing, or encoded based on motion information of adjacent blocks (e.g., motion vectors based on translational motion models or non-translational motion models) (e.g., prediction + difference information), or encoded based on another motion vector in a block representing rotational motion (e.g., prediction + difference information).
例如,在表示诸如放大/缩小情形的尺寸调整或缩放运动的运动模型的情况下,块的平移运动可以用单个运动矢量来表示,并且缩放运动可以用缩放信息来表示。缩放信息可以被表示为基于预定位置(例如,左上坐标)指示水平方向或垂直方向上的扩展或减小的缩放信息。For example, in the case of a motion model representing sizing or scaling movements such as zooming in/out, the translational motion of a block can be represented by a single motion vector, and the scaling motion can be represented by scaling information. Scaling information can be represented as scaling information indicating expansion or reduction in the horizontal or vertical direction based on a predetermined position (e.g., top-left coordinate).
此处,缩放可以被应用于水平方向或垂直方向中的至少一个。另外,可以支持在水平方向或垂直方向上应用的单独缩放信息,或者可以支持在共同方向上应用的缩放信息。缩放块的宽度和高度可以被添加至预定位置(左上坐标),以确定用于运动估计和补偿的位置。Here, scaling can be applied in at least one of the horizontal or vertical directions. Alternatively, it can support individual scaling information applied in the horizontal or vertical directions, or scaling information applied in a common direction. The width and height of the scaling block can be added to a predetermined position (top-left coordinate) to determine the location used for motion estimation and compensation.
此处,缩放信息可以在运动信息编码处理期间按原样进行编码,或者可以基于相邻块的运动信息(例如,运动矢量、缩放信息)进行编码(例如,预测+差信息)。Here, scaling information can be encoded as is during motion information encoding processing, or it can be encoded based on motion information of neighboring blocks (e.g., motion vectors, scaling information) (e.g., prediction + difference information).
替选地,块的平移运动可以用一个运动矢量来表示,并且块的尺寸调整可以用一个或更多个附加运动矢量来表示。在这种情况下,附加运动矢量的数目可以是1、2或更多的整数,并且附加运动矢量的控制点可以从右上坐标、左下坐标和右下坐标之中确定,或者块内的其他坐标可以被设置为控制点。Alternatively, the translation of a block can be represented by a single motion vector, and the size adjustment of the block can be represented by one or more additional motion vectors. In this case, the number of additional motion vectors can be an integer of 1, 2, or more, and the control points of the additional motion vectors can be determined from the upper right, lower left, and lower right coordinates, or other coordinates within the block can be set as control points.
此处,附加运动矢量可以在运动信息编码处理期间按原样进行编码,或者可以基于相邻块的运动信息(例如,根据平移运动模型或非平移运动模型的运动矢量)进行编码(例如,预测+差信息),或者可以基于块内的预定坐标(例如,右下坐标)进行编码(例如,预测+差)。Here, the additional motion vectors can be encoded as is during motion information encoding processing, or they can be encoded based on motion information of adjacent blocks (e.g., motion vectors based on translational motion models or non-translational motion models) (e.g., prediction + difference information), or they can be encoded based on predetermined coordinates within the block (e.g., lower right coordinates) (e.g., prediction + difference).
在以上示例中,用于代表一些运动的表示的情况已被描述,并且可以被表示为用于表示多个运动的运动信息。In the examples above, the representation of some motions has been described, and it can be represented as motion information for multiple motions.
例如,在表示各种或复杂运动的运动模型的情况下,块的平移运动可以用一个运动矢量来表示,旋转运动可以用旋转角度信息来表示,并且尺寸调整可以用缩放信息来表示。由于每个运动的描述可以通过上述示例得出,因此将省略详细描述。For example, in the case of motion models representing various or complex motions, the translational motion of a block can be represented by a motion vector, the rotational motion can be represented by rotation angle information, and the sizing adjustment can be represented by scaling information. Since the description of each motion can be derived from the above examples, detailed descriptions will be omitted.
替选地,块的平移运动可以用一个运动矢量来表示,并且块的其他运动可以用一个或更多个附加运动矢量来表示。在这种情况下,附加运动矢量的数目可以是1、2或更多的整数,并且附加运动矢量的控制点可以从右上坐标、左下坐标和右下坐标之中确定,或者块内的其他坐标可以被设置为控制点。Alternatively, the translational motion of a block can be represented by a single motion vector, and other motions of the block can be represented by one or more additional motion vectors. In this case, the number of additional motion vectors can be an integer of 1, 2, or more, and the control points of the additional motion vectors can be determined from the upper right, lower left, and lower right coordinates, or other coordinates within the block can be set as control points.
此处,附加运动矢量可以在运动信息编码处理期间按原样进行编码,或者可以基于相邻块的运动信息(例如,根据平移运动模型或非平移模型的运动矢量)进行编码(例如,预测+差信息),或者可以基于代表各种运动的块内的其他运动矢量进行编码(例如,预测+差信息)。Here, the additional motion vectors can be encoded as is during motion information encoding processing, or they can be encoded based on motion information of adjacent blocks (e.g., motion vectors based on translational or non-translational motion models) (e.g., prediction + difference information), or they can be encoded based on other motion vectors within blocks representing various motions (e.g., prediction + difference information).
以上描述可以是关于仿射模型的,并且将基于存在一个或两个附加运动矢量的情况来描述。总之,假设根据运动模型所使用的运动矢量的数目可以是1、2或3,并且可以根据用于表示运动信息的运动矢量的数目被视为单独的运动模型。另外,当存在一个运动矢量时,假设它是预定义的运动模型。The above description may pertain to affine models and will be based on the presence of one or two additional motion vectors. In summary, it is assumed that the number of motion vectors used according to the motion model can be 1, 2, or 3, and that a single motion model can be considered based on the number of motion vectors used to represent motion information. Furthermore, when only one motion vector exists, it is assumed to be a predefined motion model.
可以支持用于帧间预测的多个运动模型,并且可以由指示对附加运动模型的支持的信号(例如,adaptive_motion_mode_enabled_flag)来确定。此处,如果信号为0,则支持预定义的运动模型,并且如果信号为1,则可以支持多个运动模型。该信号可以以诸如序列、图片、子图片、切片、图块、区块、块等为单位生成,但是如果不可能单独检查,则信号的值可以根据预定义的设置来分配。替选地,是否隐式地支持可以基于编码设置来确定。替选地,可以根据编码设置来确定隐式情况或显式情况。此处,编码设置可以由图像类型、图像种类(例如,如果为0则为正常图像,如果为1则为360度图像)或颜色分量中的一个或更多个元素来限定。Multiple motion models can be supported for inter-frame prediction, and this can be determined by a signal indicating support for additional motion models (e.g., `adaptive_motion_mode_enabled_flag`). Here, a signal of 0 indicates support for predefined motion models, and a signal of 1 indicates support for multiple motion models. This signal can be generated in units such as sequences, images, sub-images, slices, tiles, blocks, chunks, etc., but if it is not possible to check them individually, the signal value can be assigned according to predefined settings. Alternatively, whether support is implicit can be determined based on encoding settings. Alternatively, the implicit or explicit case can be determined based on encoding settings. Here, encoding settings can be limited by one or more elements of image type, image class (e.g., a normal image if 0, a 360-degree image if 1), or color components.
是否支持多个运动模型可以通过以上过程来确定。以下假设存在支持两个或更多个附加运动模型,并且假设以诸如序列、图片、子图片、切片、图块、区块等为单位支持多个运动模型,但是可以排除配置中的一些。在稍后描述的示例中,假设可以支持运动模型A、B和C,A是基本支持的运动模型,并且B和C是附加支持的运动模型。Whether multiple motion models are supported can be determined through the process described above. The following assumes that two or more additional motion models are supported, and that multiple motion models are supported in units such as sequences, images, sub-images, slices, tiles, blocks, etc., but some configurations may be excluded. In the example described later, it is assumed that motion models A, B, and C are supported, where A is the fundamentally supported motion model, and B and C are additionally supported motion models.
可以在单元中生成关于支持的运动模型的配置信息。也就是说,诸如{A,B}、{A,C}、{A,B,C}的支持的运动模型配置是可行的。Configuration information about supported motion models can be generated within the unit. That is, configurations for supported motion models such as {A, B}, {A, C}, and {A, B, C} are feasible.
例如,可以将索引(0至2)分配给以上配置的候选并且进行选择。如果选择了索引2,则可以确定支持{A,C}的运动模型配置,并且如果选择了索引3,则可以确定支持{A,B,C}的运动模型配置。For example, indices (0 to 2) can be assigned to candidates for the above configurations and selected. If index 2 is selected, a motion model configuration supporting {A, C} can be determined, and if index 3 is selected, a motion model configuration supporting {A, B, C} can be determined.
替选地,指示是否支持预定运动模型的信息可以单独被支持。也就是说,可以生成指示是否支持B的标志或者指示是否支持C的标志。如果两个标志都为0,则可以支持仅A。该示例可以是其中不生成和处理指示是否支持多个运动模型的信息的示例。Alternatively, information indicating whether a predetermined motion model is supported can be supported individually. That is, a flag indicating whether B is supported or a flag indicating whether C is supported can be generated. If both flags are 0, then only A is supported. This example could be an instance where information indicating whether multiple motion models are supported is not generated and processed.
当支持的运动模型的候选组如以上示例中那样被配置时,候选组之一的运动模型可以以块为单位显式地确定和使用,或者可以隐式地使用。When candidate groups of supported motion models are configured as in the example above, the motion model of one of the candidate groups can be explicitly identified and used on a block-by-block basis, or it can be used implicitly.
通常,运动估计单元可以是编码设备中存在的部件,但是可以是根据预测方法(例如,模板匹配等)可以包括在解码设备中的部件。例如,在模板匹配的情况下,解码器可以通过经由与目标块相邻的模板执行运动估计来获得目标块的运动信息。在这种情况下,运动估计相关信息(例如,运动估计范围、运动估计方法<扫描顺序>等)可以被隐式地确定或显式地生成为包括在诸如序列、图片、子图片、切片、图块、区块等单位中。Typically, a motion estimation unit can be a component present in the encoding device, but it can also be a component that can be included in the decoding device depending on the prediction method (e.g., template matching). For example, in the case of template matching, the decoder can obtain the motion information of the target block by performing motion estimation via a template adjacent to the target block. In this case, motion estimation related information (e.g., motion estimation range, motion estimation method <scan order>, etc.) can be implicitly determined or explicitly generated and included in units such as sequences, pictures, sub-pictures, slices, tiles, blocks, etc.
运动补偿单元指的是如下处理:获得通过运动估计处理确定的预定参考图片的一些块的数据作为目标块的预测块。详细地,目标块的预测块可以基于通过运动估计处理获得的运动信息(例如,参考图片信息、运动矢量信息等)从至少一个参考图片的至少一个区域(或块)生成。The motion compensation unit refers to the process of obtaining data of some blocks of a predetermined reference image determined by motion estimation processing as predicted blocks of a target block. Specifically, the predicted blocks of the target block can be generated from at least one region (or block) of at least one reference image based on motion information (e.g., reference image information, motion vector information, etc.) obtained through motion estimation processing.
运动补偿可以基于如下的运动补偿方法来执行。Motion compensation can be performed based on the following motion compensation methods.
在块匹配的情况下,目标块的预测块可以用与相对于(Px+Vx,Py+Vy)向右M和向下N对应的区域的数据来补偿,该(Px+Vx,Py+Vy)是从参考图片显式地获得的并且是通过目标块(M×N)的运动矢量(Vx,Vy)和目标块的左上坐标(Px,Py)获得的坐标。In the case of block matching, the predicted block of the target block can be compensated with data of the regions corresponding to the right M and down N relative to (P x + V x , P y + V y ), which are explicitly obtained from the reference image and are obtained through the motion vector (V x , V y ) of the target block (M × N ) and the top-left coordinates (P x , P y ) of the target block.
在模板匹配的情况下,目标块的预测块可以用与相对于(Px+Vx,Py+Vy)向右M和向下N对应的区域的数据来补偿,该(Px+Vx,Py+Vy)是从参考图片隐式地获得的并且是通过目标块(M×N)的运动矢量(Vx,Vy)和目标块的左上坐标(Px,Py)获得的坐标。In the case of template matching, the predicted block of the target block can be compensated with data of the regions corresponding to the right M and down N relative to (P x + V x , P y + V y ), which are implicitly obtained from the reference image and are obtained through the motion vector (V x , V y ) of the target block (M × N ) and the top-left coordinates (P x , P y ) of the target block.
另外,可以基于如下的运动模型来执行运动补偿。Alternatively, motion compensation can be performed based on the following motion model.
在平移运动模型的情况下,目标块的预测块可以用与相对于(Px+Vx,Py+Vy)向右M和向下N对应的区域的数据来补偿,该(Px+Vx,Py+Vy)是从参考图片显式地获得的并且是通过目标块(M×N)的一个运动矢量(Vx,Vy)和目标块的左上坐标(Px,Py)获得的坐标。In the case of the translational motion model, the predicted block of the target block can be compensated with data of the regions corresponding to the right M and down N relative to ( Px + Vx , Py + Vy ), which are explicitly obtained from the reference image and are obtained by a motion vector ( Vx , Vy ) of the target block (M×N ) and the upper left coordinates ( Px , Py ) of the target block.
在非平移运动模型的情况下,子块的预测块可以用与相对于(Pmx+Vnx,Pmy+Vny)向右M和向下N对应的区域的数据来补偿,该(Pmx+Vnx,Pmy+Vny)是通过经由从参考图片显式地获取的目标块(M×N)的多个运动矢量(V0x,V0y)和(V1x,V1y)隐式地获得的m×n个子块的运动矢量(Vmx,Vny)和每个子块的左上坐标(Pmx,Pny)获得的坐标。也就是说,子块的预测块可以被收集并被补偿到目标块的预测块。In the case of a non-translational motion model, the predicted sub-blocks can be compensated using data from regions M to the right and N downwards relative to ( Pmx + Vnx , Pmy + Vny ). This ( Pmx + Vnx , Pmy + Vny ) is obtained by implicitly acquiring the motion vectors (Vmx, Vny) of m×n sub-blocks via multiple motion vectors ( V0x , V0y ) and ( V1x , V1y ) of the target block (M×N) explicitly obtained from the reference image , along with the top-left coordinates (Pmx , Pny ) of each sub-block. In other words, the predicted sub-blocks can be collected and compensated for by the predicted sub-blocks of the target block.
运动信息确定单元可以执行用于选择目标块的最佳运动信息的处理。通常,最佳运动信息可以根据使用块的失真(例如,目标块和重构块的失真。SAD(绝对差之和)、SSD(平方差之和)等)的编码成本和速率失真技术来确定,该速率失真技术考虑根据相应的运动信息生成的位量(bit amount)来确定。基于通过以上处理确定的运动信息生成的预测块可以被发送至减法单元和加法单元。另外,它可以是根据一些预测方法(例如,模板匹配等)可以被包括在解码设备中的配置,并且在这种情况下,它可以基于块的失真来确定。The motion information determination unit can perform processing for selecting the optimal motion information for the target block. Typically, the optimal motion information can be determined based on coding cost and rate distortion techniques using block distortion (e.g., distortion of the target block and the reconstructed block, such as SAD (sum of absolute differences), SSD (sum of squared differences), etc.), where the rate distortion technique considers the bit amount generated based on the corresponding motion information. The predicted block generated based on the motion information determined through the above processing can be sent to the subtraction and addition units. Alternatively, it can be configured according to some prediction methods (e.g., template matching, etc.) that can be included in the decoding device, and in this case, it can be determined based on the block distortion.
在运动信息确定单元中,可以考虑与帧间预测相关的设置信息,例如运动补偿方法和运动模型。例如,当支持多个运动补偿方法时,运动补偿方法选择信息、对应的运动矢量、参考图片信息等可以是最佳运动信息。替选地,当支持多个运动模型时,运动模型选择信息、与其对应的运动矢量和参考图片信息可以是最佳运动信息。In the motion information determination unit, settings related to inter-frame prediction can be considered, such as motion compensation methods and motion models. For example, when multiple motion compensation methods are supported, the motion compensation method selection information, the corresponding motion vectors, and reference image information can be the optimal motion information. Alternatively, when multiple motion models are supported, the motion model selection information, its corresponding motion vectors, and reference image information can be the optimal motion information.
运动信息编码单元可以对通过运动信息确定处理获得的目标块的运动信息进行编码。在这种情况下,运动信息可以由关于针对目标块的预测而参考的区域和图像的信息组成。详细地,它可以由关于参考图像的信息(例如,参考图像信息)和关于参考区域的信息(例如,运动矢量信息)组成。The motion information encoding unit can encode the motion information of the target block obtained through motion information determination processing. In this case, the motion information can consist of information about the region and image referenced for the prediction of the target block. Specifically, it can consist of information about the reference image (e.g., reference image information) and information about the reference region (e.g., motion vector information).
另外,与帧间预测相关的设置信息(或选择信息,例如运动估计/补偿方法、运动模型的选择信息等)可以包括在目标块的运动信息中。关于参考图像和参考区域的信息(例如,运动矢量的数目等)可以基于与帧间预测相关的设置来配置。Additionally, settings related to inter-frame prediction (or selection information, such as motion estimation/compensation methods, motion model selection information, etc.) can be included in the motion information of the target block. Information about the reference image and reference region (e.g., the number of motion vectors, etc.) can be configured based on settings related to inter-frame prediction.
可以通过将参考图像和关于参考区域的信息配置为一个组合来编码运动信息,并且可以将参考图像和关于参考区域的信息的组合配置为运动信息编码模式。Motion information can be encoded by configuring a reference image and information about the reference region into a combination, and the combination of the reference image and information about the reference region can be configured as a motion information encoding mode.
此处,关于参考图像和参考区域的信息可以基于相邻块或预定信息(例如,在当前图片之前或之后编码的图像、零运动矢量等)来获得。Here, information about the reference image and reference region can be obtained based on adjacent blocks or predefined information (e.g., images encoded before or after the current image, zero motion vectors, etc.).
相邻块可以被分类为属于与目标块相同的空间且最接近目标块的块<inter_blk_A>、属于相同空间且远邻目标块的块<inter_blk_B>、以及属于与目标块不相同的空间的块<inter_blk_C>,并且可以基于属于类别中至少之一的相邻块(候选块)来获得关于参考图像和参考区域的信息。Neighboring blocks can be classified into blocks <inter_blk_A> that belong to the same space as the target block and are closest to the target block, blocks <inter_blk_B> that belong to the same space and are far from the target block, and blocks <inter_blk_C> that belong to a different space from the target block. Information about the reference image and reference region can be obtained based on neighboring blocks (candidate blocks) that belong to at least one of the categories.
例如,可以基于候选块的运动信息或参考图片信息来编码目标块的运动信息,并且可以基于从候选块的运动信息或参考图片信息(或信息中值、变换处理等)得出的信息来编码目标块的运动信息。也就是说,可以从候选块预测目标块的运动信息,并且可以对关于运动信息的信息进行编码。For example, the motion information of the target block can be encoded based on the motion information of the candidate block or the reference image information, and the motion information of the target block can also be encoded based on the information derived from the motion information of the candidate block or the reference image information (or information median, transformation processing, etc.). In other words, the motion information of the target block can be predicted from the candidate block, and information about the motion information can be encoded.
在本发明中,可以基于一个或更多个运动信息编码模式来对目标块的运动信息进行编码。此处,运动信息编码模式可以以各种方式进行限定,并且可以包括跳过模式、合并模式和竞争模式中的一个或更多个。In this invention, the motion information of the target block can be encoded based on one or more motion information encoding modes. Here, the motion information encoding modes can be defined in various ways and can include one or more of skip modes, merge modes, and competition modes.
基于上述模板匹配(tmp),它可以与运动信息编码模式组合,或者可以被支持为单独的运动信息编码模式,或者可以被包括在全部或一些运动信息编码模式的详细配置中。这预设如下情况——确定以较高单位(例如,图片、子图片、切片等)支持模板匹配,但是关于是否支持的标志可以被视为帧间预测设置的一部分。Based on the template matching (tmp) described above, it can be combined with motion information coding modes, or it can be supported as a standalone motion information coding mode, or it can be included in the detailed configuration of all or some motion information coding modes. This presupposes that template matching is supported at a higher unit (e.g., picture, sub-picture, slice, etc.), but the flags regarding support can be considered as part of the inter-frame prediction settings.
基于用于在当前图片内执行块匹配(ibc)的上述方法,它可以与运动信息编码模式组合,或者可以被支持为单独的运动信息编码模式,或者可以被包括在全部或一些运动信息编码模式的详细配置中。这预设如下情况——确定在当前图片中以较高单位支持块匹配,但是关于是否支持的标志可以被视为帧间预测设置的一部分。Based on the method described above for performing block matching (ibc) within the current image, it can be combined with motion information coding modes, or it can be supported as a standalone motion information coding mode, or it can be included in the detailed configuration of all or some motion information coding modes. This presupposes that block matching is supported in a higher unit within the current image, but the flag regarding support can be considered part of the inter-frame prediction settings.
基于上述运动模型(仿射(affine)),运动信息编码模式可以与运动信息编码模式组合,或者可以被支持为单独的运动信息编码模式,或者可以被包括在全部或一些运动信息编码模式的详细配置中。这预设如下情况——确定较高单位支持非平移运动模型,但是关于是否支持的标志可以被视为帧间预测设置的一部分。Based on the aforementioned motion model (affine), motion information coding modes can be combined with other motion information coding modes, or they can be supported as standalone motion information coding modes, or they can be included in the detailed configuration of all or some motion information coding modes. This presupposes that higher units support non-translational motion models, but the flags regarding support can be considered part of the inter-frame prediction settings.
例如,可以支持单个运动信息编码模式例如temp_inter、temp_tmp、temp_ibc、temp_affine。可替选地,可以支持组合的运动信息编码模式例如temp_inter_tmp、temp_inter_ibc、temp_inter_affine、temp_inter_tmp_ibc等。可替选地,可以包括构造temp的运动信息预测候选组之中的基于模板的候选、基于用于在当前图片中执行块匹配的方法的候选、以及基于仿射的候选。For example, single motion information encoding patterns such as temp_inter, temp_tmp, temp_ibc, and temp_affine can be supported. Alternatively, combined motion information encoding patterns such as temp_inter_tmp, temp_inter_ibc, temp_inter_affine, and temp_inter_tmp_ibc can be supported. Alternatively, the motion information prediction candidate group for constructing temp can include template-based candidates, candidates based on methods for performing block matching in the current image, and affine-based candidates.
此处,temp可以意指跳过模式(skip)、合并模式(merge)和竞争模式(comp)。例如,它与支持运动信息编码模式例如跳过模式中的skip_inter、skip_tmp、skip_ibc、skip_affine;和合并模式中的merge_inter、merge_tmp、merge_ibc、merge_affine;竞争模式中的comp_inter、comp_tmp、comp_ibc、comp_affine相同。Here, temp can refer to skip mode, merge mode, and comp mode. For example, it is the same as the motion information encoding modes such as skip_inter, skip_tmp, skip_ibc, and skip_affine in skip mode; merge_inter, merge_tmp, merge_ibc, and merge_affine in merge mode; and comp_inter, comp_tmp, comp_ibc, and comp_affine in comp mode.
当支持跳过模式、合并模式和竞争模式,并且考虑以上因素的候选被包括在每个模式的运动信息预测候选组中时,可以通过区分跳过模式、合并模式和竞争模式的标志来选择一个模式。作为示例,指示是否支持跳过模式的标志,并且如果该值为1,则选择跳过模式。而如果该值为0,则指示是否支持合并模式的标志。如果值为1,则选择合并模式,而如果该值为0,则可以选择竞争模式。另外,基于inter、tmp、ibc和affine的候选可以被包括在每个模式的运动信息预测候选组中。When skip mode, merge mode, and competition mode are supported, and candidates considering the above factors are included in the motion information prediction candidate group for each mode, a mode can be selected by distinguishing between the flags for skip mode, merge mode, and competition mode. For example, a flag indicates whether skip mode is supported; if the value is 1, skip mode is selected. A flag indicates whether merge mode is supported; if the value is 1, merge mode is selected, and if the value is 0, competition mode can be selected. Additionally, candidates based on inter, tmp, ibc, and affine can be included in the motion information prediction candidate group for each mode.
可替选地,当在一个共同模式下支持多个运动信息编码模式时,除了用于选择跳过模式、合并模式和竞争模式之一的标志之外,还可以支持用于区分所选择的模式的详细模式的附加标志。例如,在选择了合并模式时,这意味着另外地支持在merge_inter、merge_tmp、merge_ibc、merge_affine等——其是与合并模式相关的详细模式——之中选择详细模式的标志。可替选地,可以支持指示其是否为merge_inter的标志,并且如果不是merge_inter,则可以另外地支持在merge_tmp、merge_ibc、merge_affine等之中进行选择的标志。Alternatively, when multiple motion information encoding modes are supported under a common mode, in addition to the flags used to select one of the skip mode, merge mode, and competition mode, additional flags can be supported to distinguish the detailed mode of the selected mode. For example, when the merge mode is selected, this means additionally supporting flags to select a detailed mode among merge_inter, merge_tmp, merge_ibc, merge_affine, etc.—which are detailed modes associated with the merge mode. Alternatively, flags indicating whether it is merge_inter can be supported, and if it is not merge_inter, additional flags for selection among merge_tmp, merge_ibc, merge_affine, etc. can be supported.
可以根据编码设置来支持全部或部分运动信息编码模式候选。此处,编码设置可以由目标块的状态信息、图像类型、图像种类、颜色分量和帧间预测支持设置(例如,在当前图片、非平移运动模型支持元素等中是否支持模板匹配、是否支持块匹配)之中多于一个的元素来限定。The encoding settings can support all or part of the motion information encoding mode candidates. Here, the encoding settings can be limited by more than one of the following elements: target block state information, image type, image category, color components, and inter-frame prediction support settings (e.g., whether template matching is supported in the current image, non-translation motion model support elements, etc., and whether block matching is supported).
例如,可以根据块的大小来确定支持的运动信息编码模式。在这种情况下,可以通过第一阈值大小(最小值)或第二阈值大小(最大值)来确定块的大小,并且每个阈值大小可以表示为块的宽度(W)和高度(H)的W、H、W x H和W*H。在第一阈值大小的情况下,W和H可以是4、8、16或更大的整数,并且W*H可以是16、32、64或更大的整数。在第二阈值大小的情况下,W和H可以是16、32、64或更大的整数,并且W*H可以是64、128、256或更大的整数。该范围可以由第一阈值大小或第二阈值大小之一来确定,或者可以使用它们两者来确定。For example, the supported motion information encoding patterns can be determined based on the block size. In this case, the block size can be determined by a first threshold size (minimum) or a second threshold size (maximum), and each threshold size can be represented as W, H, W x H, and W*H of the block's width (W) and height (H). With the first threshold size, W and H can be integers of 4, 8, 16, or greater, and W*H can be integers of 16, 32, 64, or greater. With the second threshold size, W and H can be integers of 16, 32, 64, or greater, and W*H can be integers of 64, 128, 256, or greater. This range can be determined by either the first or second threshold size, or both.
在这种情况下,阈值大小可以是固定的,或者可以根据图像(例如,图像类型等)自适应。在这种情况下,可以基于最小编码块、最小预测块和最小变换块的大小来设置第一阈值大小,并且可以基于最大编码块、最大预测块和最大变换块的大小来设置第二阈值大小。In this scenario, the threshold size can be fixed or adaptive based on the image (e.g., image type, etc.). In this case, a first threshold size can be set based on the sizes of the minimum coding block, minimum prediction block, and minimum transform block, and a second threshold size can be set based on the sizes of the maximum coding block, maximum prediction block, and maximum transform block.
例如,可以根据图像类型来确定支持的运动信息编码模式。在这种情况下,I图片类型可以包括跳过模式、合并模式和竞争模式中的至少一个。在这种情况下,可以支持在当前图片中执行块匹配(或模板匹配)的方法、用于仿射模型(在下文中,称为元素)的单个运动信息编码模式,或者可以通过组合两个或更多个元素来支持运动信息编码模式。可替选地,可以将除了预定运动信息编码模式以外的元素配置为运动信息预测候选组。For example, supported motion information encoding modes can be determined based on the image type. In this case, the image type can include at least one of skip mode, merge mode, and competition mode. In this case, a method for performing block matching (or template matching) in the current image, a single motion information encoding mode for an affine model (hereinafter referred to as an element) can be supported, or motion information encoding modes can be supported by combining two or more elements. Alternatively, elements other than the predetermined motion information encoding modes can be configured as motion information prediction candidate groups.
P/B图像类型可以包括跳过模式、合并模式和竞争模式中的至少一个。在这种情况下,可以支持在当前图片上执行一般帧间预测、模板匹配、块匹配的方法,用于仿射模型(在下文中,称为元素)的单个运动信息编码模式,或者可以通过组合两个或更多个元素来支持运动信息编码模式。可替选地,可以将除了预定运动信息编码模式以外的元素配置为运动信息预测候选组。P/B image types may include at least one of skip mode, merge mode, and competition mode. In this case, methods for performing general inter-frame prediction, template matching, block matching on the current image can be supported, as well as a single motion information coding mode for an affine model (hereinafter referred to as an element), or motion information coding modes can be supported by combining two or more elements. Alternatively, elements other than the predetermined motion information coding mode can be configured as motion information prediction candidate groups.
图9是示出根据本发明的实施方式的运动信息的编码的流程图。Figure 9 is a flowchart illustrating the encoding of motion information according to an embodiment of the present invention.
参照图9,可以检查目标块的运动信息编码模式S900。Referring to Figure 9, the motion information encoding mode S900 of the target block can be checked.
可以通过组合和设置用于帧间预测的预定信息(例如,运动信息等)来限定运动信息编码模式。预定信息可以包括预测运动矢量、运动矢量差、运动矢量差精度、参考图像信息、参考方向、运动模型信息、关于残余分量的存在或不存在的信息等中的一个或更多个。运动信息编码模式可以包括跳过模式、合并模式和竞争模式中的至少一个,并且可以包括其他附加模式。Motion information coding modes can be defined by combining and setting predetermined information (e.g., motion information) used for inter-frame prediction. Predetermined information may include one or more of the following: predicted motion vector, motion vector difference, motion vector difference accuracy, reference image information, reference orientation, motion model information, information about the presence or absence of residual components, etc. Motion information coding modes may include at least one of skip mode, merge mode, and contention mode, and may include other additional modes.
可以根据运动信息编码模式来确定显式地生成的信息和隐式地确定的信息的配置和设置。在这种情况下,在显式的情况下,每个信息可以单独地生成或者可以以组合形式(例如,以索引的形式)生成。The configuration and settings of explicitly generated information and implicitly determined information can be determined based on the motion information encoding pattern. In this case, in the explicit case, each piece of information can be generated individually or in combination (e.g., in the form of an index).
例如,在跳过模式或合并模式下,可以基于(一个)预定索引信息来限定预测运动矢量、参考图像信息和/或参考方向。在这种情况下,索引可以包括一个或更多个候选,并且可以基于预定块的运动信息(例如,对应块的预测运动矢量、参考图像信息和参考方向由一种组合组成)来设置每个候选。另外,可以隐式地处理运动矢量差(例如,零矢量)。For example, in skip or merge modes, the predicted motion vector, reference image information, and/or reference orientation can be defined based on (a) predetermined index information. In this case, the index may include one or more candidates, and each candidate can be set based on the motion information of a predetermined block (e.g., the predicted motion vector, reference image information, and reference orientation of the corresponding block are composed of a combination). Additionally, motion vector differences (e.g., zero vectors) can be implicitly handled.
例如,在竞争模式下,可以基于(一个或更多个)预定索引信息来限定预测运动矢量、参考图像信息和/或参考方向。在这种情况下,该索引可以单独地支持每个信息片段,或者两个或更多个信息片段的组合可以被支持。在这种情况下,索引可以包括一个或更多个候选,并且每个候选可以基于预定块的运动信息(例如,预测运动矢量等)来设置,或者可以用预定值(例如,当前图片之间的间隔被1、2、3等处理,并且参考方向信息被L0、L1等处理)(例如,参考图像信息、参考方向信息等)进行配置。另外,可以显示地生成运动矢量差,并且可以根据运动矢量差(例如,如果它不是零矢量)另外地生成运动矢量差精度信息。For example, in competition mode, the predicted motion vector, reference image information, and/or reference orientation can be defined based on (one or more) predetermined index information. In this case, the index can support each information segment individually, or a combination of two or more information segments can be supported. In this case, the index can include one or more candidates, and each candidate can be set based on the motion information of a predetermined block (e.g., predicted motion vector, etc.), or can be configured with predetermined values (e.g., the interval between current images is processed as 1, 2, 3, etc., and the reference orientation information is processed as L0, L1, etc.) (e.g., reference image information, reference orientation information, etc.). In addition, motion vector differences can be explicitly generated, and motion vector difference accuracy information can be additionally generated based on the motion vector difference (e.g., if it is not a zero vector).
作为示例,在跳过模式下,可以隐式地处理(例如,处理为<cbf_flag=0>)关于残余分量的存在或不存在的信息,并且可以将运动模型隐式地处理为预定值(例如,支持平行运动模型)。As an example, in skip mode, information about the presence or absence of residual components can be implicitly processed (e.g., processed as <cbf_flag=0>), and the motion model can be implicitly processed as a predetermined value (e.g., supporting parallel motion models).
例如,在合并模式或竞争模式中,可以显式地生成关于残差分量的存在或不存在的信息,并且可以显式地选择运动模型。在这种情况下,可以在一个运动信息编码模式下生成用于对运动模型进行分类的信息,或者可以支持单独的运动信息编码模式。For example, in merge or competition modes, information about the presence or absence of residual components can be explicitly generated, and the motion model can be explicitly selected. In this case, information for classifying the motion model can be generated under a single motion information encoding mode, or separate motion information encoding modes can be supported.
在以上描述中,在支持一个索引时,可以不生成索引选择信息,而在支持两个或更多个索引时,可以生成索引选择信息。In the above description, when supporting one index, index selection information may not be generated, while when supporting two or more indexes, index selection information may be generated.
在本发明中,包括两个或更多个索引的候选组被称为运动信息预测候选组。另外,可以通过各种预定信息和设置来改变现有的运动信息编码模式或可以支持新的运动信息编码模式。In this invention, a candidate group comprising two or more indices is referred to as a motion information prediction candidate group. Furthermore, existing motion information encoding patterns can be modified or new motion information encoding patterns can be supported through various predetermined information and settings.
参照图9,可以得出目标块的预测运动矢量S910。Referring to Figure 9, the predicted motion vector S910 of the target block can be obtained.
预测运动矢量可以被确定为预定值,或者可以构造预测运动矢量候选组并从预测运动矢量候选组之中进行选择。在预测运动矢量可以被确定为预定值的情况下,意味着隐式地确定的情况,并且在可以构造预测运动矢量候选组并从预测运动矢量候选组中进行选择的情况下,可以显式地生成用于选择预测运动矢量的索引信息。The predicted motion vector can be determined as a predetermined value, or a candidate set of predicted motion vectors can be constructed and selected from the candidate set. When the predicted motion vector can be determined as a predetermined value, it implies an implicit determination; and when a candidate set of predicted motion vectors can be constructed and selected from the candidate set, index information for selecting the predicted motion vector can be explicitly generated.
此处,预定值可以基于预定位置处的一个块(例如,左、上、左上、右上、左下方向块等)的运动矢量来设置,或者可以基于两个或更多个块的运动矢量来设置,或者可以设置为默认值(例如零矢量)。Here, the predetermined value can be set based on the motion vector of a block at a predetermined position (e.g., left, top, top left, top right, bottom left, etc.), or it can be set based on the motion vectors of two or more blocks, or it can be set to a default value (e.g., zero vector).
根据运动信息编码模式,预测运动矢量可以具有相同或不同的候选组构造设置。例如,跳过模式/合并模式/竞争模式可以分别地支持a、b和c个预测候选,并且每个候选的数目可以相同的或不同的。在这种情况下,a、b和c可以包括大于或等于1的整数,例如2、3、5、6、7等。构造候选组的顺序、设置等将通过其他实施方式来描述。在稍后描述的示例中,将基于与合并模式相同的假设来描述跳过模式候选组的构造,但是不限于此,并且一些可以具有不同的构造。Depending on the motion information encoding mode, the predicted motion vectors can have the same or different candidate group construction settings. For example, skip mode/merge mode/competition mode can support a, b, and c prediction candidates respectively, and the number of each candidate can be the same or different. In this case, a, b, and c can include integers greater than or equal to 1, such as 2, 3, 5, 6, 7, etc. The order, settings, etc., of constructing candidate groups will be described through other implementations. In the examples described later, the construction of the skip mode candidate group will be described based on the same assumptions as the merge mode, but it is not limited to this, and some can have different constructions.
基于索引信息获得的预测运动矢量可以原样用于重构目标块的运动矢量,或者可以基于参考图像之间的距离和参考方向进行调整。The predicted motion vectors obtained based on the index information can be used as is to reconstruct the motion vectors of the target block, or they can be adjusted based on the distance between reference images and the reference orientation.
例如,在竞争模式的情况下,参考图像信息可以被单独地生成。在目标块的当前图片与参考图片之间的距离和包括预测运动矢量候选块的图片与对应块的参考图片之间的距离不同时,可以根据目标块的当前图片与参考图片之间的距离进行调整。For example, in competitive mode, reference image information can be generated separately. When the distance between the current image and the reference image of the target block differs from the distance between the image containing the predicted motion vector candidate block and the reference image of the corresponding block, adjustments can be made based on the distance between the current image and the reference image of the target block.
另外,根据运动模型得出的运动矢量的数目可以不同。即,除了左上控制点位置的运动矢量之外,还可以根据运动模型另外地得出右上和左下控制点的运动矢量。Furthermore, the number of motion vectors derived from the motion model can be different. That is, in addition to the motion vector at the upper left control point, motion vectors for the upper right and lower left control points can also be derived from the motion model.
参照图9,可以重构目标块的运动矢量差S920。Referring to Figure 9, the motion vector difference S920 of the target block can be reconstructed.
在跳过模式和合并模式下,运动矢量差可以被得出为零矢量值,并且在竞争模式下可以重构每个分量的差信息。In skip mode and merge mode, the motion vector difference can be obtained as a zero vector value, and in competition mode, the difference information of each component can be reconstructed.
可以根据预定精度(例如,基于插值精度设置或基于运动模型选择信息设置)来表示运动矢量。可替选地,可以基于多个精度之一来表示它,并且可以生成针对此的预定信息。在这种情况下,预定信息可以与关于运动矢量精度的选择有关。Motion vectors can be represented according to a predetermined precision (e.g., based on interpolation precision settings or motion model selection information settings). Alternatively, they can be represented based on one of several precisions, and predetermined information for this purpose can be generated. In this case, the predetermined information can relate to the selection of motion vector precision.
例如,在运动矢量的一个分量是32/16时,可以基于以1/16像素为单位的隐式精度设置获得针对32的运动分量数据。可替选地,可以基于以2个像素为单位的显式精度设置将运动分量转换为2/1,并且可以获得针对2的运动分量数据。For example, when one component of the motion vector is 32/16, motion component data for 32 can be obtained based on an implicit precision setting in units of 1/16 pixels. Alternatively, the motion component can be converted to 2/1 based on an explicit precision setting in units of 2 pixels, and motion component data for 2 can be obtained.
上述配置可以是用于对运动矢量进行精确处理的方法,该运动矢量具有相同精度,或者是通过将运动矢量差和通过相同精度转换处理获得的预测运动矢量相加而获得的。The above configuration can be a method for accurately processing motion vectors with the same precision, or it can be obtained by adding the motion vector difference to a predicted motion vector obtained through the same precision transformation process.
另外,可以根据预定精度来表示运动矢量差,或者可以以多个精度之一来表示运动矢量差。在这种情况下,在可以以多个精度之一来表示运动矢量差的情况下,可以生成精度选择信息。Alternatively, the motion vector difference can be represented with a predetermined precision, or it can be represented with one of multiple precisions. In the case where the motion vector difference can be represented with one of multiple precisions, precision selection information can be generated.
精度可以包括1/16、1/8、1/4、1/2、1、2、4像素单位中的至少一个,并且候选数可以是大于或等于1、2、3、4、5的整数。此处,支持的精度候选组配置(例如,除以数字、候选等)可以以诸如序列、图片、子图片、切片、图块和区块的单位来显式地确定。可替选地,可以根据编码设置隐式地确定,其中,编码设置可以由图像类型、参考图像、颜色分量和运动模型选择信息中的至少一个或更多个元素来限定。Precision can include at least one of 1/16, 1/8, 1/4, 1/2, 1, 2, 4 pixel units, and the number of candidates can be an integer greater than or equal to 1, 2, 3, 4, 5. Here, the supported precision candidate group configuration (e.g., division by number, candidate, etc.) can be explicitly determined in units such as sequences, pictures, sub-pictures, slices, tiles, and blocks. Alternatively, it can be implicitly determined based on encoding settings, which can be defined by at least one or more elements of image type, reference image, color components, and motion model selection information.
下面描述了其中根据各种编码元素形成精度候选并通过假设运动矢量差的描述来描述精度的情况,而这可以与运动矢量相似或适用于运动矢量。The following describes a case where precision candidates are formed based on various coding elements and precision is described by assuming a difference in motion vectors, which can be similar to or applicable to motion vectors.
例如,在平移运动模型的情况下,可以配置诸如{1/4,1}、{1/4,1/2}、{1/4,1/2,1}、{1/4,1,4}、{1/4,1/2,1,4}的候选组,并且在非平移运动模型的情况下,可以配置精度候选组例如{1/16,1/4,1}、{1/16,1/8,1}、{1/16,1,4}、{1/16,1/4,1,2}、{1/16,1/4,1,4}。这假设在平移运动模型的情况下支持的最小精度是1/4像素单位,而在非平移运动模型的情况下支持的最小精度是1/16像素单位,并且除了最小精度之外的附加精度可以包括在候选组中。For example, in the case of a translational motion model, candidate groups such as {1/4, 1}, {1/4, 1/2}, {1/4, 1/2, 1}, {1/4, 1, 4}, and {1/4, 1/2, 1, 4} can be configured, and in the case of a non-translational motion model, precision candidate groups such as {1/16, 1/4, 1}, {1/16, 1/8, 1}, {1/16, 1, 4}, {1/16, 1/4, 1, 2}, and {1/16, 1/4, 1, 4} can be configured. This assumes that the minimum precision supported in the case of the translational motion model is 1/4 pixel unit, while the minimum precision supported in the case of the non-translational motion model is 1/16 pixel unit, and additional precision beyond the minimum precision can be included in the candidate groups.
可替选地,在参考图像是不同图片时,可以配置诸如{1/4,1/2,1}、{1/4,1,4}、{1/4,1/2,1,4}的候选组。另外,在参考图像是当前图片时,可以配置诸如{1,2}、{1,4}、{1,2,4}的候选组。在这种情况下,参考图像是当前图片的情况可以是以下配置:针对块匹配,不以分数单位执行内插,并且如果以分数单位执行内插,则可以配置成包括分数单位的精度候选。Alternatively, when the reference image is a different image, candidate groups such as {1/4, 1/2, 1}, {1/4, 1, 4}, and {1/4, 1/2, 1, 4} can be configured. Additionally, when the reference image is the current image, candidate groups such as {1, 2}, {1, 4}, and {1, 2, 4} can be configured. In this case, the configuration for the reference image being the current image can be as follows: for block matching, interpolation is not performed in fractional units, and if interpolation is performed in fractional units, it can be configured to include fractional units in the precision candidates.
可替选地,在颜色分量是亮度分量时,诸如{1/4,1/2,1}、{1/4,1,4}、{1/4,1/2,1,4}的候选组是可行的。并且在颜色分量是色度分量时,诸如{1/8,1/4}、{1/8,1/2}、{1/8,1}、{1/8,1/4,1/2}、{1/8,1/2,2}、{1/8,1/4,1/2,2}的候选组是可行的。在这种情况下,在颜色分量是色度分量的情况下,可以根据颜色分量组成比(例如,4:2:0、4:2:2、4:4:4等)形成与亮度分量成比例的候选组,或者可以配置单个候选组。Alternatively, when the color component is a luminance component, candidate groups such as {1/4, 1/2, 1}, {1/4, 1, 4}, and {1/4, 1/2, 1, 4} are feasible. And when the color component is a chrominance component, candidate groups such as {1/8, 1/4}, {1/8, 1/2}, {1/8, 1}, {1/8, 1/4, 1/2}, {1/8, 1/2, 2}, and {1/8, 1/4, 1/2, 2} are feasible. In this case, when the color component is a chrominance component, candidate groups proportional to the luminance component can be formed based on the color component composition ratio (e.g., 4:2:0, 4:2:2, 4:4:4, etc.), or a single candidate group can be configured.
尽管以上示例描述了根据每个编码元素存在多个精度候选的情况,但是存在一个候选配置(即,以预定的最小精度表示)的情况是可行的。Although the above examples describe the case where there are multiple precision candidates for each coded element, it is possible for there to be a single candidate configuration (i.e., represented with a predetermined minimum precision).
总之,可以基于竞争模式中的运动矢量差精度来重构具有最小精度的运动矢量差,并且可以在跳过模式和合并模式中得出具有零矢量值的运动矢量差。In summary, the motion vector difference with minimum accuracy can be reconstructed based on the accuracy of the motion vector difference in the competition mode, and the motion vector difference with zero vector value can be obtained in the skip mode and the merge mode.
此处,根据运动模型重构的运动矢量差的数目可以不同。即,除了左上控制点的位置的运动矢量差之外,可以根据运动模型另外地得出右上和左下控制点的位置的运动矢量差。Here, the number of motion vector differences reconstructed from the motion model can be different. That is, in addition to the motion vector difference of the position of the upper left control point, the motion vector differences of the positions of the upper right and lower left control points can also be derived from the motion model.
另外,可以将一个运动矢量差精度应用于多个运动矢量差,或者可以将单个运动矢量差精度应用于每个运动矢量差,这可以根据编码设置来确定。Alternatively, a single motion vector difference precision can be applied to multiple motion vector differences, or a single motion vector difference precision can be applied to each motion vector difference, depending on the encoding settings.
另外,在至少一个运动矢量差不为0时,可以生成关于运动矢量差精度的信息,并且否则,可以将其省略,但不限于此。Additionally, information about the accuracy of the motion vector difference can be generated when at least one motion vector difference is not zero, and otherwise it can be omitted, but is not limited to this.
参照图9,可以重构目标块的运动矢量S930。Referring to Figure 9, the motion vector S930 of the target block can be reconstructed.
可以通过获得预测运动矢量和运动矢量差——其通过该步骤之前的处理而获得——并将它们相加来重构目标块的运动矢量。在这种情况下,当通过选择多个精度之一来重构时,可以执行精度统一处理。The motion vector of the target block can be reconstructed by obtaining the predicted motion vector and the difference between the motion vectors—which are obtained through processing prior to this step—and summing them. In this case, when reconstructing by selecting one of multiple accuracies, accuracy unification processing can be performed.
例如,可以基于精度选择信息来重构通过将预测运动矢量(与运动矢量精度相关)和运动矢量差相加而获得的运动矢量。可替选地,可以基于精度选择信息来重构运动矢量差(与差分运动矢量精度相关),并且可以通过将重构的运动矢量差与预测运动矢量相加来获得运动矢量。For example, a motion vector obtained by adding the predicted motion vector (related to the accuracy of the motion vector) and the motion vector difference can be reconstructed based on accuracy selection information. Alternatively, the motion vector difference (related to the accuracy of the differential motion vector) can be reconstructed based on accuracy selection information, and the motion vector can be obtained by adding the reconstructed motion vector difference to the predicted motion vector.
参照图9,可以基于目标块的运动信息来执行运动补偿S940。Referring to Figure 9, motion compensation S940 can be performed based on the motion information of the target block.
除了上述预测运动矢量和运动矢量差之外,运动信息还可以包括参考图像信息、参考方向、运动模型信息等。在跳过模式和合并模式的情况下,可以隐式地确定一些信息(例如,参考图像信息、参考方向等),并且在竞争模式的情况下,可以显式地处理相关信息。In addition to the predicted motion vector and motion vector difference mentioned above, motion information can also include reference image information, reference orientation, motion model information, etc. In skip mode and merge mode, some information (e.g., reference image information, reference orientation, etc.) can be implicitly determined, while in competition mode, relevant information can be explicitly processed.
可以基于通过以上处理获得的运动信息通过执行运动补偿来获得预测块。The predicted block can be obtained by performing motion compensation based on the motion information obtained through the above processing.
参照图9,可以对目标块的残余分量执行解码S950。Referring to Figure 9, decoding S950 can be performed on the residual components of the target block.
可以通过将通过以上处理获得的残差分量与预测块相加来重构目标块。在这种情况下,可以根据运动信息编码模式对关于残差分量的存在或不存在的信息执行显式或隐式处理。The target block can be reconstructed by adding the residual components obtained through the above processing to the predicted block. In this case, explicit or implicit processing can be performed on the information regarding the presence or absence of the residual components, depending on the motion information encoding pattern.
图10是根据本发明实施方式的目标块和与其相邻的块的布局图。Figure 10 is a layout diagram of the target block and its adjacent blocks according to an embodiment of the present invention.
参照图10,可以配置在左、上、左上、右上、左下方向等上与目标块相邻的块<inter_blk_A>以及在中心、左、右、上、下、左上、右上、左下、右下方向等上在时间上不相同的空间Col_Pic中与对应于目标块的块相邻的块<inter_blk_B>作为用于预测目标块的运动信息(例如,运动矢量)的候选块。Referring to Figure 10, blocks <inter_blk_A> adjacent to the target block in the left, top, top left, top right, and bottom left directions, and blocks <inter_blk_B> adjacent to the block corresponding to the target block in the spatial Col_Pic that are different in time in the center, left, right, top, bottom, top left, top right, bottom left, and bottom right directions, can be configured as candidate blocks for predicting the motion information (e.g., motion vectors) of the target block.
在inter_blk_A的情况下,可以基于诸如光栅扫描或z扫描的编码顺序来确定相邻块的方向,并且可以去除现有方向,或者在右、下、右下方向上的相邻块可以另外地包括候选块。In the case of inter_blk_A, the orientation of adjacent blocks can be determined based on the encoding order such as raster scan or z scan, and existing orientations can be removed, or adjacent blocks in the right, bottom, and lower right directions can additionally include candidate blocks.
参考图10,Col_Pic可以是当前图像之前或之后的相邻图像(例如,在图像之间的间隔为1时),并且在图像中对应块可以具有与目标块相同的位置。Referring to Figure 10, Col_Pic can be an adjacent image before or after the current image (e.g., when the interval between images is 1), and the corresponding block in the image can have the same position as the target block.
可替选地,Col_Pic可以是其中图像之间的间隔相对于当前图像被预先限定(例如,图像之间的间隔是z。z是1、2、3的整数)的图像,并且对应的块可以被设置为从目标块的预定坐标(例如,左上)移动了预定视差矢量的位置,并且可以将视差矢量设置为预定义值。Alternatively, Col_Pic can be an image in which the interval between images is predefined relative to the current image (e.g., the interval between images is z, where z is an integer of 1, 2, or 3), and the corresponding block can be set to a position moved from the predetermined coordinates (e.g., top left) of the target block by a predetermined disparity vector, and the disparity vector can be set to a predefined value.
可替选地,可以基于相邻块的运动信息(例如,参考图像)来设置Col_Pic,并且可以基于相邻块的运动信息(例如,运动矢量)来设置视差矢量,以确定对应块的位置。Alternatively, Col_Pic can be set based on motion information of adjacent blocks (e.g., a reference image), and disparity vectors can be set based on motion information of adjacent blocks (e.g., motion vectors) to determine the position of the corresponding block.
在这种情况下,可以参考k个相邻块,并且k可以是1、2或更大的整数。如果k为2或更大,则可以基于相邻块的运动信息(例如,参考图像或运动矢量)的诸如最大值、最小值、中值、加权平均值的计算来获得Col_Pic和视差矢量。例如,视差矢量可以被设置为左块或上块的运动矢量,并且可以被设置为左块和下块的运动矢量的中值或平均值。In this case, k neighboring blocks can be referenced, and k can be an integer of 1, 2, or greater. If k is 2 or greater, Col_Pic and the disparity vector can be obtained based on calculations such as maximum, minimum, median, or weighted average of motion information of neighboring blocks (e.g., reference images or motion vectors). For example, the disparity vector can be set as the motion vector of the left or top block, and can be set as the median or average of the motion vectors of the left and bottom blocks.
可以基于运动信息配置设置等来确定时间候选的设置。例如,可以根据是以块为单位还是以子块为单位配置运动信息来确定Col_Pic的位置、对应块的位置等,针对该运动信息,以块为单位的运动信息或以子块为单位的运动信息要被包括在运动信息预测候选组中。例如,在获取以子块为单位的运动信息时,可以将移动了预定视差矢量的位置处的块设置为对应块的位置。The settings for time candidates can be determined based on motion information configuration settings. For example, the position of Col_Pic and the position of the corresponding block can be determined based on whether motion information is configured on a block-by-block or sub-block-by-sub-block basis. For this motion information, motion information configured on a block-by-block or sub-block-by-sub-block basis should be included in the motion information prediction candidate group. For example, when obtaining motion information on a sub-block basis, the block at the position where the predetermined disparity vector has been moved can be set as the position of the corresponding block.
以上示例示出了以下情况:其中隐式地确定关于与Col_Pic对应的块的位置的信息,并且还可以以诸如序列、图片、切片、图块组、图块和区块为单位显式地生成相关信息。The above examples illustrate the following: information about the location of the block corresponding to Col_Pic is implicitly determined, and related information can also be explicitly generated in units such as sequences, pictures, slices, tile groups, tiles, and blocks.
另一方面,当诸如子图片、切片、图块等的划分单元分区不限于一个图片(例如,当前图片)并且在图像之间共享时,并且如果对应于Col_Pic的块的位置与目标块所属的划分单元不同(即,如果其相对于目标块所属的划分单元的边界延伸或偏离),则它可以基于后续候选的运动信息根据预定优先级来确定。可替选地,可以将其设置为图像中与目标块相同的位置。On the other hand, when partitioning units such as sub-images, slices, and tiles are not limited to a single image (e.g., the current image) and are shared between images, and if the position of the block corresponding to Col_Pic differs from the partitioning unit to which the target block belongs (i.e., if it extends or deviates from the boundary of the partitioning unit to which the target block belongs), it can be determined based on motion information of subsequent candidates according to a predetermined priority. Alternatively, it can be set to the same position in the image as the target block.
上述在空间上相邻的块和在时间上相邻的块的运动信息可以被包括在目标块的运动信息预测候选组中,其被称为空间候选和时间候选。可以支持a个空间候选和b个时间候选,并且a和b可以是1到6或更大的整数。在这种情况下,a可以大于或等于b。The motion information of spatially adjacent blocks and temporally adjacent blocks can be included in the motion information prediction candidate group of the target block, which is called the spatial candidate and the temporal candidate. A<sub>a</sub> spatial candidates and b<sub>b</sub> temporal candidates can be supported, and a and b can be integers from 1 to 6 or greater. In this case, a can be greater than or equal to b.
根据先前的运动信息预测候选的配置,可以支持固定数目的空间候选和时间候选,或者可以支持可变数目(例如,包括0)。Based on the configuration of the predicted candidates according to the previous motion information, a fixed number of spatial and temporal candidates can be supported, or a variable number (e.g., including 0) can be supported.
另外,可以在候选组构造中考虑与目标块不紧邻的块<inter_blk_C>。Additionally, blocks <inter_blk_C> that are not adjacent to the target block can be considered during the candidate group construction.
例如,相对于目标块(例如,左上坐标)以预定间隔差定位的块的运动信息可以是要被包括在候选组中的目标。间隔可以是p和q(取决于运动矢量的每个分量),p和q可以是2或更大的整数,例如0、2、4、8、16、32,并且p和q可以是相同或不同的。即,假设目标块的左上坐标是(m,n),则包括(m±p,n±q)位置的块的运动信息可以被包括在候选组中。For example, motion information of blocks located relative to a target block (e.g., top-left coordinates) at predetermined intervals can be the target to be included in the candidate group. The intervals can be p and q (depending on each component of the motion vector), where p and q can be integers of 2 or greater, such as 0, 2, 4, 8, 16, 32, and p and q can be the same or different. That is, assuming the top-left coordinates of the target block are (m, n), motion information of blocks at positions (m ± p, n ± q) can be included in the candidate group.
例如,可以将在目标块之前已完成对其的编码的块的运动信息作为要包括在候选组中的目标。在这种情况下,基于相对于目标块的预定编码顺序(例如,光栅扫描、Z扫描等),可以将预定数目的最近编码的块视为候选,并且由于编码以先进先出方法例如FIFO进行,因此可以从候选中移除具有旧编码顺序的块。For example, motion information of blocks that have been encoded before the target block can be used as targets to be included in the candidate group. In this case, based on a predetermined encoding order relative to the target block (e.g., raster scan, Z-scan, etc.), a predetermined number of recently encoded blocks can be considered as candidates, and since encoding is performed using a first-in-first-out method such as FIFO, blocks with older encoding orders can be removed from the candidates.
由于以上示例涉及其中已经相对于目标块进行了编码的非最相邻块的运动信息被包括在候选组中的情况,因此这被称为统计候选。Because the above example involves a case where motion information of a non-nearest neighbor block that has already been encoded relative to the target block is included in the candidate group, this is called a statistical candidate.
在这种情况下,可以将用于获得统计候选的参考块设置为目标块,但是可以设置目标块的较高块(例如,如果目标块是编码块<1>/预测块<2>中,较高块为最大编码块<1>/编码块<2>,等等)。可以支持k个统计候选,并且k可以是1至6或更大的整数。In this case, the reference block used to obtain statistical candidates can be set as the target block, but a higher block of the target block can be set (e.g., if the target block is in coded block <1>/predicted block <2>, the higher block is the maximum coded block <1>/coded block <2>, etc.). k statistical candidates can be supported, and k can be an integer from 1 to 6 or greater.
通过组合空间候选、时间候选、统计候选等的运动信息而获得的运动信息可以被包括在候选组中。例如,可以获得通过将加权平均应用于先前包括在候选组中的多个(2、3或更多)运动信息的每个分量而获得的候选,并且可以获得针对多个运动信息中的每个分量通过中值、最大值、最小值等的处理而获得的候选。这被称为组合候选,并且可以支持r个组合候选,并且r可以是1、2、3或更大的整数。Motion information obtained by combining spatial, temporal, and statistical candidates can be included in a candidate group. For example, candidates can be obtained by applying a weighted average to each component of multiple (2, 3, or more) motion information previously included in the candidate group, and candidates can be obtained by processing each component of multiple motion information using median, maximum, minimum, etc. This is called a combined candidate, and r combined candidates can be supported, where r can be an integer of 1, 2, 3, or greater.
当用于组合的候选不具有相同的关于参考图像的信息时,可以基于关于候选之一的参考图像信息将其设置为组合候选的参考图像信息,或者可以将其设置为预定义的值。When the candidates used for combination do not have the same information about the reference image, they can be set as the reference image information for the combined candidates based on the reference image information about one of the candidates, or they can be set to a predefined value.
根据先前的运动信息预测候选的配置,可以支持固定数目的统计候选或组合候选,或者可以支持可变数目。Based on the configuration of the predicted candidates according to the previous motion information, it can support a fixed number of statistical candidates or combined candidates, or it can support a variable number.
另外,具有预定值例如(s,t)的默认候选还可以包括在候选组中,并且根据先前的运动信息预测候选的配置,可以支持可变数目(0,1或更大的整数)。在这种情况下,可以将s和t设置为包括0,并且可以基于各种块大小(例如,最大编码/预测/变换块、最小编码/预测/变换块的水平或竖直长度等)进行设置。Additionally, default candidates with predetermined values such as (s, t) can be included in the candidate group, and the configuration of candidate prediction based on previous motion information can support a variable number (0, 1, or larger integers). In this case, s and t can be set to include 0, and can be set based on various block sizes (e.g., maximum encoding/prediction/transform block, minimum encoding/prediction/transform block horizontal or vertical length, etc.).
取决于运动信息编码模式,可以在候选之中构造运动信息预测候选组,并且可以包括其他附加候选。此外,根据运动信息编码模式,候选组配置设置可以相同或不同。Depending on the motion information encoding mode, motion information prediction candidate groups can be constructed from the candidates, and other additional candidates can be included. Furthermore, the candidate group configuration settings can be the same or different depending on the motion information encoding mode.
例如,跳过模式和合并模式可以共同构造候选组,而竞争模式可以构造单个候选组。For example, skip mode and merge mode can jointly construct candidate groups, while competition mode can construct a single candidate group.
此处,候选组配置设置可以由以下来限定:候选块的类别和位置(例如,在左/上/左上/右上/左下方向之中从用于获得所确定的方向之中的运动信息的子块位置确定的)、候选的数目(例如,总数、每个类别的最大数目)、候选构造方法(例如,每个类别的优先级、类别内的优先级等)。Here, the candidate group configuration settings can be limited by the following: the category and position of the candidate block (e.g., determined from the position of the sub-block used to obtain motion information in the determined direction among the left/top/top-left/top-right/bottom-left directions), the number of candidates (e.g., total number, maximum number of each category), and the candidate construction method (e.g., priority of each category, priority within each category, etc.).
运动信息预测候选组的数目(总数)可以是k,并且k可以是1至6或更大的整数。在这种情况下,当候选的数目为一个时,这可能意味着不生成候选组选择信息,并且将预定义候选块的运动信息设置为预测运动信息,并且当存在两个或更多个候选组时,可以生成候选组选择信息。The number (total) of motion information prediction candidate groups can be k, and k can be an integer from 1 to 6 or greater. In this case, when the number of candidates is one, it may mean that no candidate group selection information is generated, and the motion information of the predefined candidate block is set as the predicted motion information. When there are two or more candidate groups, candidate group selection information can be generated.
候选块的类别可以是inter_blk_A、inter_blk_B和inter_blk_C中的一个或更多个。在这种情况下,inter_blk_A可以是默认包括的类别,并且另一类别可以是附加支持的类别,但是不限于此。The candidate block can be one or more of inter_blk_A, inter_blk_B, and inter_blk_C. In this case, inter_blk_A can be the default included category, and the other category can be an additional supported category, but is not limited to this.
上面的描述可以与用于平移运动模型的运动信息预测候选构造相关,并且在非平移运动模型(仿射模型)的候选组构造中可以使用/参考相同或相似的候选块。另一方面,仿射模型可以与平移运动模型的候选组构造不同,这是因为运动特征以及运动矢量的数目与平移运动模型不同。The above description can be applied to the candidate construction for motion information prediction in translational motion models, and the same or similar candidate blocks can be used/referenced in the candidate group construction of non-translational motion models (affine models). On the other hand, the candidate group construction of affine models can differ from that of translational motion models because the motion features and the number of motion vectors are different.
例如,当候选块的运动模型是仿射模型时,候选块的运动矢量集配置可以原样包括在候选组中。例如,当使用左上和右上坐标作为控制点时,候选块的左上和右上坐标的运动矢量组可以被包括在候选组中作为一个候选。For example, when the motion model of a candidate block is an affine model, the configuration of the motion vector set of the candidate block can be included in the candidate group as is. For example, when the top-left and top-right coordinates are used as control points, the motion vector set of the top-left and top-right coordinates of the candidate block can be included in the candidate group as a candidate.
可替选地,当候选块的运动模型是平移运动模型时,基于控制点的位置设置的候选块的运动矢量组合可以被构造为集合并且被包括在候选组。例如,当将左上、右上和左下坐标用作控制点时,可以基于目标块的左、上和左上的运动矢量来预测左上控制点的运动矢量(例如,在平移运动模型的情况下),并且可以基于目标块的上块和右上块的运动矢量来预测右上控制点的运动矢量(例如,在平移运动模型的情况下),并且可以基于目标块的左右的运动模型来预测左下控制点的运动矢量。在以上示例中,已经描述了基于控制点的位置而设置的候选块的运动模型是平移运动模型的情况,但是即使在仿射模型的情况下,也可以通过获取或得出它来仅获得控制点位置的运动矢量。也就是说,针对目标块的左上、右上和左下控制点的运动矢量,可以从候选块的左上、右上、左下、右下控制点之中获得或得出运动矢量。Alternatively, when the motion model of the candidate block is a translational motion model, the combination of motion vectors of the candidate blocks set based on the positions of the control points can be constructed as a set and included in the candidate group. For example, when the upper-left, upper-right, and lower-left coordinates are used as control points, the motion vector of the upper-left control point can be predicted based on the left, upper, and upper-left motion vectors of the target block (e.g., in the case of a translational motion model), and the motion vector of the upper-right control point can be predicted based on the motion vectors of the upper and upper-right blocks of the target block (e.g., in the case of a translational motion model), and the motion vector of the lower-left control point can be predicted based on the left and right motion models of the target block. In the above examples, the case where the motion model of the candidate block set based on the positions of the control points is a translational motion model has been described, but even in the case of an affine model, the motion vectors of the control point positions can be obtained or derived only by acquiring or deriving them. That is, for the motion vectors of the upper-left, upper-right, and lower-left control points of the target block, the motion vectors can be obtained or derived from the upper-left, upper-right, lower-left, and lower-right control points of the candidate block.
总之,当候选块的运动模型是仿射模型时,对应块的运动矢量集可以被包括在候选组(A)中,并且当候选块的运动模型是平移运动模型时,根据考虑目标块的预定控制点的运动矢量的控制点的组合而获得的运动矢量集可以被包括在候选组(B)中。In summary, when the motion model of the candidate block is an affine model, the motion vector set of the corresponding block can be included in the candidate group (A), and when the motion model of the candidate block is a translational motion model, the motion vector set obtained by combining the control points of the motion vectors of the predetermined control points of the target block can be included in the candidate group (B).
在这种情况下,可以仅使用A或B方法之一来构造候选组,或者可以使用A和B方法两者来构造候选组。另外,方法A可以首先用于构造,并且方法B可以随后用于构造,但是不限于此。In this case, candidate groups can be constructed using either method A or method B, or both methods A and B can be used. Furthermore, method A can be used first for construction, and method B can be used subsequently, but this is not a limitation.
图11示出了根据本发明的实施方式的统计候选的示例图。Figure 11 shows an example diagram of statistical candidates according to an embodiment of the present invention.
参考图11,与图11的A至L对应的块是指与目标块以预定间隔分开的已对其完成编码的块。Referring to Figure 11, the blocks corresponding to A to L in Figure 11 refer to the blocks that have been encoded and are separated from the target block by a predetermined interval.
当用于目标块的运动信息的候选块限于与目标块相邻的块时,可以不反映图像的各种特性。为此,在当前图片之前已经被编码的块也可以被视为候选块。针对此的类别已被称为inter_blk_B,并且这被称为统计候选。When candidate blocks for motion information of a target block are limited to blocks adjacent to the target block, they may not reflect various characteristics of the image. Therefore, blocks encoded before the current image can also be considered candidate blocks. This category is called inter_blk_B, and this is referred to as statistical candidate.
由于包括在运动信息预测候选组中的候选块的数目是有限的,为此可能需要有效的统计候选管理。Since the number of candidate blocks included in the motion information prediction candidate group is limited, effective statistical candidate management may be required.
(1)可以将与目标块具有预定距离间隔的预定位置处的块视为候选块。(1) A block at a predetermined position that is at a predetermined distance from the target block can be regarded as a candidate block.
作为示例,通过对相对于目标块的预定坐标(例如,左上坐标等)的x分量进行限制,可以将具有预定间隔的块视为候选块,并且诸如(-4,0)、(-8,0)、(-16,0)、(-32,0)等的示例是可行的。As an example, by restricting the x-component of a predetermined coordinate relative to the target block (e.g., the top-left coordinate, etc.), blocks with predetermined intervals can be considered as candidate blocks, and examples such as (-4, 0), (-8, 0), (-16, 0), (-32, 0), etc. are feasible.
作为示例,通过对相对于目标块的预定坐标的y分量进行限制,可以将具有预定间隔的块视为候选块,并且诸如(0,-4)、(0,-8)、(0,-16)、(0,-32)等的示例是可行的。As an example, by restricting the y-component of a predetermined coordinate relative to the target block, blocks with a predetermined interval can be considered as candidate blocks, and examples such as (0, -4), (0, -8), (0, -16), (0, -32), etc. are feasible.
作为示例,可以将相对于目标块的预定坐标具有除0外的预定间隔为x和y分量的块视为候选块,诸如(-4,-4)、(-4,-8)、(-8,-4)、(-16、16)、(16,-16)等的示例是可行的。在该示例中,x分量可以取决于y分量具有正号。As an example, a block with predetermined intervals of x and y components (excluding 0) relative to predetermined coordinates of the target block can be considered a candidate block. Examples such as (-4, -4), (-4, -8), (-8, -4), (-16, 16), (16, -16), etc., are feasible. In this example, the x component may depend on the y component having a positive sign.
可以根据编码设置来有限地确定被视为统计候选的候选块。对于稍后描述的示例,参考图11。Candidate blocks that are considered as statistical candidates can be determined in a limited way based on the encoding settings. For an example described later, refer to Figure 11.
可以根据候选块是否属于预定单位来将其分类为统计候选。此处,可以根据最大编码块、区块、图块、切片、子图片、图片等来确定预定单位。Candidate blocks can be categorized into statistical candidates based on whether they belong to a predetermined unit. Here, the predetermined unit can be determined based on the largest coded block, block, tile, slice, sub-image, image, etc.
例如,在通过对属于与目标块相同的最大编码块的块进行限制来选择候选块时,A至C可以是目标。For example, when selecting candidate blocks by restricting them to the largest coded block that is the same as the target block, A through C can be the target.
可替选地,在通过对属于目标块所属的最大编码块的块和左最大编码块进行限制来选择候选块时,A至C、H、I可以是目标。Alternatively, when selecting candidate blocks by restricting the blocks belonging to the largest coded block to which the target block belongs and the left largest coded block, A through C, H, and I can be targets.
可替选地,在通过对属于目标块所属的最大编码块的块和上最大编码块进行限制来选择候选块时,A至C、E、F可以是目标。Alternatively, when selecting candidate blocks by restricting the blocks belonging to the largest coded block to which the target block belongs and the largest coded block above, A through C, E, and F can be targets.
可替选地,在通过对与目标块属于同一切片的块进行限制来选择候选块时,A至I可以是目标。Alternatively, when selecting candidate blocks by restricting them to blocks belonging to the same slice as the target block, A through I can be the target.
根据候选块是否位于相对于目标块的预定方向上,可以将候选块分类为统计候选。此处,可以从左、上、左上、右上方向等确定预定方向。Candidate blocks can be classified as statistical candidates based on whether they are located in a predetermined direction relative to the target block. Here, the predetermined direction can be determined from left, top, upper left, upper right, etc.
例如,在通过对位于相对于目标块的左和上方向上的块进行限制来选择候选块时,B、C、F、I、L可以是目标。For example, when selecting candidate blocks by restricting blocks located in the left and top directions relative to the target block, B, C, F, I, and L can be targets.
可替选地,在通过对位于相对于目标块的左、上、左上或右上方向上的块进行限制来选择候选块时,A至L可以是目标。Alternatively, when selecting candidate blocks by restricting them to blocks located in the left, top, upper left, or upper right directions relative to the target block, A through L can be the target.
如以上示例中那样,即使选择了被视为统计候选的候选块,也可以存在用于包括在运动信息预测候选组中的优先级顺序。也就是说,可以按照优先级来选择与支持的统计候选的数目一样多的统计候选。As in the example above, even if candidate blocks considered as statistical candidates are selected, there can be a priority order for including them in the motion information prediction candidate group. That is, as many statistical candidates as there are supported can be selected according to priority.
可以支持预定顺序作为优先级,或者可以由各种编码元素确定优先级。可以基于候选块与目标块之间的距离(例如,是否是短距离、可以基于x和y分量来检查块之间的距离)以及相对于目标块的候选块的相对方向(例如,左、上、左上、右上方向,左->上->右上->左等的顺序)来限定编码元素。Priority can be determined by a predetermined order or by various coding elements. Coding elements can be qualified based on the distance between the candidate block and the target block (e.g., whether it is a short distance, the distance between blocks can be checked based on the x and y components) and the relative direction of the candidate block to the target block (e.g., left, top, top-left, top-right direction, left->top->top-right->left, etc.).
(2)可以将根据相对于目标块的预定编码顺序已经被编码的块视为候选块。(2) A block that has been encoded according to a predetermined encoding order relative to the target block can be regarded as a candidate block.
以下示例假设遵循光栅扫描(例如,最大编码块)和Z扫描(例如,编码块、预测块等),但是应当理解,稍后描述的内容可以根据扫描顺序而改变。The following examples assume that raster scan (e.g., maximum coding block) and Z scan (e.g., coding block, prediction block, etc.) are followed, but it should be understood that the following descriptions may vary depending on the scan order.
在上述示例(1)的情况下,可以支持用于构造运动信息预测候选组的优先级,并且同样地,在本实施方式中可以支持预定的优先级。可以通过各种编码元素来确定优先级,但是为了便于描述,假设优先级是根据编码顺序来确定的。在稍后描述的示例中,将一起考虑候选块和优先级。In the case of example (1) above, priority can be supported for constructing candidate groups for motion information prediction, and similarly, predetermined priority can be supported in this embodiment. Priority can be determined by various coding elements, but for ease of description, it is assumed that priority is determined according to the coding order. In the examples described later, candidate blocks and priorities will be considered together.
可以根据编码设置来有限地确定被视为统计候选的候选块。Candidate blocks that are considered as statistical candidates can be determined in a limited way based on the encoding settings.
可以根据候选块是否属于预定单位来将其分类为统计候选。此处,可以根据最大编码块、区块、图块、切片、子图片、图片等来确定预定单位。Candidate blocks can be categorized into statistical candidates based on whether they belong to a predetermined unit. Here, the predetermined unit can be determined based on the largest coded block, block, tile, slice, sub-image, image, etc.
例如,在与目标块属于同一图片的块被选择作为候选块时,候选块和优先级例如J-D-E-F-G-K-L-H-I-A-B-C可以是目标。For example, when a block belonging to the same image as the target block is selected as a candidate block, the candidate block and priority, such as J-D-E-F-G-K-L-H-I-A-B-C, can be the target.
可替选地,在与目标块属于同一切片的块被选择作为候选块时,候选块和优先级例如D-E-F-G-H-I-A-B-C可以是目标。Alternatively, when a block belonging to the same slice as the target block is selected as a candidate block, the candidate block and its priority, such as D-E-F-G-H-I-A-B-C, can be the target.
根据候选块是否位于相对于目标块的预定方向上,可以将候选块分类为统计候选。此处,可以根据左或上方向确定预定方向。Candidate blocks can be classified as statistical candidates based on whether they are located in a predetermined direction relative to the target block. Here, the predetermined direction can be determined based on the left or top direction.
例如,在通过对位于相对于目标块的左方向上的块进行限制来选择候选块时,候选块和优先级例如K-L-H-I-A-B-C可以是目标。For example, when selecting candidate blocks by restricting blocks located to the left of the target block, the candidate blocks and priorities such as K-L-H-I-A-B-C can be the target.
可替选地,在通过对位于相对于目标块的上方向上的块进行限制来选择候选块时,候选块和优先级例如E-F-A-B-C可以是目标。Alternatively, when selecting candidate blocks by restricting blocks located in the direction above the target block, the candidate block and priority, such as E-F-A-B-C, can be the target.
以上描述基于以下假设:组合了候选块和优先级,但是不限于此,并且可以设置各种候选块和优先级。The above description is based on the following assumptions: candidate blocks and priorities are combined, but not limited to this, and various candidate blocks and priorities can be set.
已经提到,可以通过以上(1)和(2)的描述来支持运动信息预测候选组中包括的优先级。可以支持一个或更多个优先级,并且可以支持针对整个候选块的一个优先级。或者,可以将候选块分类为两个或更多个类别,并且可以支持根据类别的各个优先级。在前一种情况下,可以是根据一个优先级选择k个候选块的示例,而在后一种情况下,可以是根据每个优先级(例如,两个类别)选择p和q(p+q=k)个候选块的示例。在这种情况下,可以基于预定编码元素对类别进行分类,并且编码元素可以包括其是否属于预定单位、候选块是否位于相对于目标块的预定方向上等。As mentioned above, the priorities included in the candidate group for motion information prediction can be supported by the descriptions in (1) and (2) above. One or more priorities can be supported, and a single priority can be supported for the entire candidate block. Alternatively, candidate blocks can be classified into two or more categories, and priorities based on the categories can be supported. In the former case, an example could be selecting k candidate blocks based on a single priority, while in the latter case, an example could be selecting p and q (p+q=k) candidate blocks based on each priority (e.g., two categories). In this case, categories can be classified based on predetermined encoding elements, and these encoding elements can include whether the block belongs to a predetermined unit, whether the candidate block is located in a predetermined direction relative to the target block, etc.
已经描述了基于候选块是否属于通过(1)和(2)描述的预定单位(例如,划分单元)来选择候选块的示例。除了划分单元之外,可以通过对相对于目标块在预定范围内的块进行限制来选择候选块。例如,它可以通过限定(x1,y1)、(x2,y2)、(x3,y3)等的范围的边界点以及x或y分量的最小值、最大值来标识。诸如x1至y3的值可以是诸如0、4和8的整数(基于绝对值)。An example of selecting candidate blocks based on whether a candidate block belongs to a predetermined unit (e.g., a partitioning unit) described by (1) and (2) has been described. In addition to partitioning units, candidate blocks can be selected by restricting blocks within a predetermined range relative to the target block. For example, it can be identified by boundary points that define the ranges of (x1, y1), (x2, y2), (x3, y3), etc., and by the minimum and maximum values of the x or y components. Values such as x1 to y3 can be integers such as 0, 4, and 8 (based on absolute values).
可以基于上述(1)或(2)之一的设置来支持统计候选,或者可以以混合(1)和(2)的形式支持统计候选。通过以上描述,已经描述了如何选择用于统计候选的候选块,并且稍后将描述对统计候选的管理和更新以及被包括在运动信息预测候选组中的情况。Statistical candidates can be supported based on either (1) or (2) above, or they can be supported in a combination of (1) and (2). The above description has described how to select candidate blocks for statistical candidates, and the management and updating of statistical candidates and their inclusion in the motion information prediction candidate group will be described later.
运动信息预测候选组的构造通常可以以块为单位执行,因为与目标块相邻的块的运动信息可能是相同或相似的。即,可以基于目标块来构造空间候选或时间候选。The construction of motion information prediction candidate groups can usually be performed on a block-by-block basis, because the motion information of blocks adjacent to the target block may be the same or similar. That is, spatial or temporal candidates can be constructed based on the target block.
同时,可以基于预定单位来构造统计候选,这是因为候选块的位置不与目标块相邻。预定单位可以是包括目标块的较高块。Furthermore, statistical candidates can be constructed based on a predetermined unit, since the candidate block is not adjacent to the target block. The predetermined unit can be a higher block that includes the target block.
例如,在目标块是预测块时,可以以预测块为单位构造统计候选,或者可以以编码块为单位构造统计候选。For example, when the target block is a prediction block, statistical candidates can be constructed on a prediction block basis or on a coding block basis.
可替选地,当目标块是编码块时,可以以编码块为单位构造统计候选,或者可以以先辈块为单位构造统计候选(例如,深度信息是与目标块的至少一个差)。在这种情况下,先辈块可以包括最大编码块,或者可以是基于最大编码块(例如,最大编码块的整数倍)获取的单位。Alternatively, when the target block is a coded block, statistical candidates can be constructed on a coded block basis, or statistical candidates can be constructed on a predecessor block basis (e.g., depth information is at least one difference from the target block). In this case, the predecessor block can include the largest coded block, or it can be a unit obtained based on the largest coded block (e.g., an integer multiple of the largest coded block).
如在以上示例中,可以基于目标块或较高单位来构造统计候选,并且在稍后描述的示例中,假设基于目标块来构造统计候选。As in the examples above, statistical candidates can be constructed based on the target block or higher units, and in the examples described later, it is assumed that statistical candidates are constructed based on the target block.
此外,可以基于预定单位来执行针对统计候选的存储器初始化。可以根据图片、子图片、切片、图块、区块或块来确定预定单位,并且在该块的情况下,可以基于最大编码块来设置它。例如,可以基于最大编码块的整数(1、2或更大)、最大编码块的行或列单位等来执行针对统计候选的存储器初始化。Furthermore, memory initialization for statistical candidates can be performed based on predetermined units. The predetermined unit can be determined based on an image, sub-image, slice, tile, block, or chunk, and in the case of a chunk, it can be set based on the largest coded block. For example, memory initialization for statistical candidates can be performed based on an integer (1, 2, or greater) of the largest coded block, the row or column units of the largest coded block, etc.
下面描述统计候选的管理和更新。可以准备用于管理统计候选的存储器,并且可以存储多达k个块的运动信息。在这种情况下,k可以是1至6或更大的整数。可以根据运动矢量、参考图片和参考方向确定存储在存储器中的运动信息。此处,可以基于运动模型选择信息来确定运动矢量的数目(例如1至3等)。为了便于说明,稍后将描述其中基于目标块根据预定编码顺序完成了其编码的块被视为候选块的情况。The management and updating of statistical candidates are described below. A memory can be prepared for managing statistical candidates, and it can store motion information for up to k blocks. In this case, k can be an integer from 1 to 6 or larger. The motion information stored in the memory can be determined based on the motion vectors, reference images, and reference directions. Here, the number of motion vectors (e.g., 1 to 3, etc.) can be determined based on motion model selection information. For ease of explanation, the case where a block that has completed its encoding according to a predetermined encoding order based on the target block is considered a candidate block will be described later.
(情况1)可以将根据编码顺序预先编码的块的运动信息作为候选包括在先前的排名中。另外,在最大数目由另外的候选填充和更新时,先前排名中的候选可以被移除,并且顺序可以被逐一向前移动。在以下示例中,x意指尚未构造的空白。(Case 1) Motion information of blocks pre-coded according to the coding order can be included as candidates in the previous ranking. Additionally, when the maximum number is filled and updated by other candidates, candidates in the previous ranking can be removed, and the order can be shifted forward one by one. In the following example, x represents a blank space that has not yet been constructed.
(示例)(Example)
1顺序-[a,x,x,x,x,x,x,x,x,x]1 order - [a,x,x,x,x,x,x,x,x,x]
2顺序-[a,b,x,x,x,x,x,x,x,x]2 order - [a,b,x,x,x,x,x,x,x,x]
......
9顺序-[a,b,c,d,e,f,g,h,i,x]9 order - [a, b, c, d, e, f, g, h, i, x]
10顺序-[a,b,c,d,e,f,g,h,i,j]->添加j。满10. Sequence: [a, b, c, d, e, f, g, h, i, j] -> Add j. (Full)
11顺序-[b,c,d,e,f,g,h,i,j,k]->添加k。移除前导a。移位顺序11. Sequence - [b, c, d, e, f, g, h, i, j, k] -> Add k. Remove leading a. Shift sequence.
(情况2)当存在重复的运动信息时,移除预先存在的候选,并且可以调整现有候选的顺序以进行转发。(Case 2) When duplicate motion information exists, remove pre-existing candidates and adjust the order of existing candidates for forwarding.
在这种情况下,复制意味着运动信息相同,其可以由运动信息编码模式限定。作为示例,在合并模式的情况下,可以基于运动矢量、参考图片和参考方向来确定重复,并且在竞争模式的情况下,可以基于运动矢量和参考图片来确定重复。在这种情况下,在竞争模式的情况下,如果每个候选的参考图片相同,则可以通过运动矢量的比较来确定重复,并且如果每个候选的参考图片不同,则可以通过比较基于每个候选的参考图片缩放的运动矢量来确定重复,然而不限于此。In this context, duplication implies identical motion information, which can be defined by the motion information encoding mode. As an example, in the merge mode, duplication can be determined based on motion vectors, a reference image, and a reference direction, while in the competition mode, duplication can be determined based on motion vectors and a reference image. In the competition mode, if the reference images for each candidate are identical, duplication can be determined by comparing motion vectors; and if the reference images for each candidate are different, duplication can be determined by comparing motion vectors scaled based on the reference images for each candidate, but this is not the only possibility.
(示例)(Example)
1顺序-[a,b,c,d,e,f,g,x,x,x]1. Sequence - [a, b, c, d, e, f, g, x, x, x]
2顺序-[a,b,c,d,e,f,g,d,x,x]->d交叠2. The sequence - [a, b, c, d, e, f, g, d, x, x] -> d overlaps.
-[a,b,c,e,f,g,d,x,x,x]->移除现有的d,移位顺序-[a, b, c, e, f, g, d, x, x, x] -> Remove the existing d, shift order
(情况3)当存在重复的运动信息时,可以根据预定条件将对应的候选标记并管理为长期存储的候选(长期候选)。(Case 3) When there is duplicate motion information, the corresponding candidate can be marked and managed as a long-term candidate (long-term candidate) according to predetermined conditions.
可以支持用于长期候选的单独的存储器,并且可以附加地存储和更新除了运动信息之外的诸如出现频率的信息。在下面的示例中,用于长期存储候选的存储器可以表示为()。A separate memory can be supported for long-term candidates, and additional information such as occurrence frequency, in addition to motion information, can be stored and updated. In the example below, the memory for long-term candidate storage can be represented as ().
(示例)(Example)
1顺序-[(),b,c,d,e,f,g,h,i,j,k]1. Sequence - [(), b, c, d, e, f, g, h, i, j, k]
2顺序-[(),b,c,d,e,f,g,h,i,j,k]->e是下一顺序。交叠-[(e),b,c,d,f,g,h,i,j,k]->移至前面。长期标记2. Sequence - [(), b, c, d, e, f, g, h, i, j, k] -> e is the next sequence. Overlapping - [(e), b, c, d, f, g, h, i, j, k] -> Move to the front. Long-term marker.
3顺序-[(e),c,d,f,g,h,i,j,k,l]->添加l。移除b3. Sequence - [(e), c, d, f, g, h, i, j, k, l] -> Add l. Remove b.
......
10顺序-[(e),l,m,n,o,p,q,r,s,t]->l是下一顺序。交叠10. The sequence - [(e), l, m, n, o, p, q, r, s, t] -> l is the next sequence. Overlapping.
-[(e,l),m,n,o,p,q,r,s,t]->长期标记-[(e, l), m, n, o, p, q, r, s, t]->long-term marker
11顺序-[(e,l),m,n,o,p,q,r,s,t]->l是下一顺序。3交叠-[(l,e),m,n,o,p,q,r,s,t]->改变长期候选顺序11. Order - [(e, l), m, n, o, p, q, r, s, t] -> l is the next order. 3. Overlap - [(l, e), m, n, o, p, q, r, s, t] -> Changes the long-term candidate order.
以上示例示出了以下情况:现有统计候选(短期候选)以集成方式管理,但是可以与短期候选分开管理,并且长期候选的数目可以是0、1、2或更大的整数。The above example illustrates the following situation: existing statistical candidates (short-term candidates) are managed in an integrated manner, but can be managed separately from short-term candidates, and the number of long-term candidates can be 0, 1, 2 or a larger integer.
可以基于编码顺序以先进先出的方式管理短期候选,但是可以基于短期候选之中具有冗余的候选根据频率来管理长期候选。在长期候选的情况下,可以在更新存储器的过程中根据频率来改变候选的顺序,但是不限于此。Short-term candidates can be managed in a first-in, first-out (FIFO) manner based on encoding order, but long-term candidates can be managed based on frequency, considering the redundancy among short-term candidates. In the case of long-term candidates, the order of candidates can be changed according to frequency during memory updates, but this is not a limitation.
以上示例可以是将候选块分类为两个或更多个类别并且支持根据该类别的优先级的情况。当构造运动信息预测候选组以包括统计候选时,可以根据每个候选内的优先级分别地构造短期和长期候选的a和b。此处,a和b可以是0、1、2或更大的整数。The above example could be a case where candidate blocks are classified into two or more categories and priority is supported based on that category. When constructing motion information prediction candidate groups to include statistical candidates, short-term and long-term candidates a and b can be constructed separately based on priority within each candidate. Here, a and b can be integers 0, 1, 2, or larger.
以上情况1至3是根据统计候选的示例,并且(情况1+情况2)或(情况1+情况3)的配置是可行的,并且统计候选可以以各种修改和增加的形式进行管理。Cases 1 to 3 above are examples based on statistical candidates, and the configuration of (case 1 + case 2) or (case 1 + case 3) is feasible, and statistical candidates can be managed in various modified and added forms.
图12是根据本发明的实施方式的根据非平移运动模型的统计候选的概念图。Figure 12 is a conceptual diagram of statistical candidates based on a non-translational motion model according to an embodiment of the present invention.
统计候选可以是不仅用于平移运动模型而且用于非平移运动模型支持的候选。在平移运动模型的情况下,由于发生频率高,因此可能存在很多可以从空间或时间候选等中参考的块,但是在非平移运动模型的情况下,因为发生频率小,所以可能需要除空间或时间候选之外的统计候选。Statistical candidates can be used not only for translational motion models but also for supporting non-translational motion models. In the case of translational motion models, due to the high frequency of occurrence, there may be many blocks that can be referenced from spatial or temporal candidates, etc. However, in the case of non-translational motion models, because of the low frequency of occurrence, statistical candidates in addition to spatial or temporal candidates may be needed.
参照图12,基于属于与目标块相同的空间的且与目标块远邻的块<inter_blk_B>的运动信息{PV0,PV1}来预测目标块的运动信息{TV0,TV1}的情况(hmvp)。Referring to Figure 12, the motion information { TV0 , TV1 } of the target block is predicted based on the motion information { PV0 , PV1 } of the block <inter_blk_B> that belongs to the same space as the target block and is far from the target block (hmvp).
与上述平移运动模型的统计候选相比,可以增加存储在存储器中的运动信息之中的运动矢量的数目。因此,统计候选的基本概念可以与平移运动模型相同或相似,并且可以通过其中运动矢量的数目不同的配置来得出相关的说明。稍后将描述关注根据非平移运动模型的差异的以下内容。在稍后描述的示例中,假设仿射模型具有三个控制点(例如,v0、v1和v2)。Compared to the statistical candidates for the translational motion model described above, the number of motion vectors in the motion information stored in memory can be increased. Therefore, the basic concept of statistical candidates can be the same as or similar to that of the translational motion model, and can be explained by different configurations of the number of motion vectors. The following will describe the differences based on the non-translational motion model. In the example described later, it is assumed that the affine model has three control points (e.g., v0, v1, and v2).
在仿射模型的情况下,可以根据参考图片、参考方向以及运动矢量v0、v1和v2确定存储在存储器中的运动信息。此处,可以以各种形式存储所存储的运动矢量。例如,可以原样存储运动矢量,或者可以存储预定的差信息。In the case of an affine model, the motion information stored in memory can be determined based on a reference image, a reference direction, and motion vectors v0, v1, and v2. Here, the stored motion vectors can be stored in various forms. For example, the motion vectors can be stored as is, or predetermined difference information can be stored.
图13是根据本发明的实施方式的用于存储为统计候选的每个控制点的位置的运动信息构造的示例图。Figure 13 is an example diagram of the construction of motion information for storing the position of each control point as a statistical candidate according to an embodiment of the present invention.
参照图13,(a)将候选块的运动矢量v0、v1和v2表示为v0、v1和v2,而在图13中,(b)将候选块的运动矢量v0表示为v0,并且将运动矢量v1和v2表示为v*1和v*2,这与运动矢量v0不同。Referring to Figure 13, (a) the motion vectors v0, v1 and v2 of the candidate block are represented as v0, v1 and v2, while in Figure 13, (b) the motion vector v0 of the candidate block is represented as v0, and the motion vectors v1 and v2 are represented as v*1 and v*2, which is different from the motion vector v0.
也就是说,每个控制点位置的运动矢量可以原样存储,或者可以存储与另一控制点位置的运动矢量的差,这可以是在存储器管理方面考虑的配置的示例,并且各种修改示例是可行的。In other words, the motion vector of each control point location can be stored as is, or the difference between the motion vector of another control point location and the original motion vector can be stored. This can be an example of a configuration considered in terms of memory management, and various modification examples are possible.
是否支持统计候选可以以诸如序列、图片、切片、图块和区块的单位显式地生成,或者可以根据编码设置隐式地确定。由于可以通过上述各种编码元素来限定编码设置,因此省略详细描述。Whether statistical candidates are supported can be explicitly generated in units such as sequences, images, slices, tiles, and blocks, or implicitly determined based on encoding settings. Since encoding settings can be limited by the various encoding elements described above, a detailed description is omitted.
此处,可以根据运动信息编码模式来确定是否支持统计候选。可替选地,可以根据运动模型选择信息来确定是否支持它。例如,可以在merge_inter、merge_ibc、merge_affine、comp_inter、comp_ibc、comp_affine之中支持统计候选。Here, the support of a statistical candidate can be determined based on the motion information encoding pattern. Alternatively, it can be determined based on the motion model selection information. For example, statistical candidates can be supported among merge_inter, merge_ibc, merge_affine, comp_inter, comp_ibc, and comp_affine.
如果针对平移运动模型和非平移运动模型支持统计候选,则可以支持用于多个统计候选的存储器。If statistical candidates are supported for both translational and non-translational motion models, then memory for multiple statistical candidates can be supported.
接下来,将描述根据运动信息编码模式构造运动信息预测候选组的方法。Next, we will describe a method for constructing motion information prediction candidate groups based on motion information encoding patterns.
用于竞争模式的运动信息预测候选组(在下文中,竞争模式候选组)可以包括k个候选,并且k可以是2、3、4或更大的整数。竞争模式候选组可以包括空间候选或时间候选中的至少一个。The candidate set for motion information prediction in the competitive mode (hereinafter referred to as the competitive mode candidate set) may include k candidates, and k may be an integer of 2, 3, 4 or greater. The competitive mode candidate set may include at least one of spatial candidates or temporal candidates.
空间候选可以从在左、上、左上、右上和左下方向上与参考块相邻的块中的至少一个中得出。可替选地,至少一个候选可以从与左相邻的块(左块、左下块)和与上方向相邻的块(左上块、上块、右上块)中得出,在此设置的假设下,这将后面描述。Spatial candidates can be derived from at least one of the blocks adjacent to the reference block in the left, top, top-left, top-right, and bottom-left directions. Alternatively, at least one candidate can be derived from the left-adjacent block (left block, bottom-left block) and the top-adjacent block (top-left block, top block, top-right block), under the assumption of this setting, which will be described later.
可以存在用于构造候选组的两个或更多个优先级。在与左方向相邻的区域中,可以设置优先级顺序为左下-左,并且在与上方向相邻的区域中,可以设置优先级顺序为右上-上-左上顺序。There can be two or more priorities for constructing candidate groups. In the region adjacent to the left, the priority order can be set to bottom left-left, and in the region adjacent to the top, the priority order can be set to top right-top-top left.
在以上示例中,可以仅从目标块的参考图片为相同的块中得出空间候选,并且可以基于目标块的参考图片通过缩放处理(以下标记为*)来得出空间候选。在这种情况下,在与左方向相邻的区域中,可以设置优先级顺序为左-左下-左*-左下*或左-左下-左下*-左*,并且在与上方向相邻的区域中,可以设置优先级顺序为右上-上-左上-右上*-上*-左上*或右上-上-左上-左上*-上*-右上*。In the examples above, spatial candidates can be derived solely from blocks whose reference images are identical to the target block's. Furthermore, spatial candidates can be derived by scaling the target block's reference image (hereinafter marked *). In this case, within regions adjacent to the left, the priority order can be set to left-bottom-left*-bottom-left* or left-bottom-left*-left*, and within regions adjacent to the top, the priority order can be set to top-right-top-top-left-top-right*-top*-top-left* or top-right-top-left-top-left*-top*-top*-top-right*.
时间候选可以基于与参考块对应的块从与中心、左、右、上、下、左上、右上、左下、右下等相邻的块中的至少一个得出。可以存在用于配置候选组的优先级,并且可以设置诸如中心-左下-右-下-左下-中心-左上等的优先级。Time candidates can be derived from at least one of the adjacent blocks such as center, left, right, top, bottom, top left, top right, bottom left, and bottom right, based on the block corresponding to the reference block. Priorities can be configured for candidate groups, and priorities such as center-bottom left-right-bottom-bottom left-center-top left can be set.
在空间候选的最大可允许数和时间候选的最大可允许数之和小于竞争模式候选的数目时,可以将时间候选包括在候选组中,而与空间候选的候选组的构造无关。When the sum of the maximum allowed number of spatial candidates and the maximum allowed number of temporal candidates is less than the number of candidates in the competitive mode, temporal candidates can be included in the candidate group, regardless of the construction of the candidate group for spatial candidates.
可以基于优先级、每个候选块的可用性以及时间候选的最大可允许数(q的数目,1与竞争模式候选的数目之间的整数),将全部或部分候选包括在候选组中。Candidates can be included in a candidate group based on priority, availability of each candidate block, and the maximum number of time-limited candidates (the number of q, an integer between 1 and the number of contested mode candidates).
此处,当空间候选的最大可允许数被设置为等于合并模式候选的数目时,时间候选可以不包括在候选组中,并且当未填充空间候选的最大可允许数时,时间候选可以被包括在候选组中。本示例假设后一种情况。Here, when the maximum allowed number of spatial candidates is set equal to the number of merge pattern candidates, temporal candidates may not be included in the candidate group, and when the maximum allowed number of spatial candidates is not filled, temporal candidates may be included in the candidate group. This example assumes the latter case.
此处,可以基于候选块的运动矢量和当前图像与目标块的参考图像之间的距离间隔来获得时间候选的运动矢量,并且可以基于当前图像与目标块的参考图像之间的距离间隔来获得时间候选的参考图像,或者可以将时间候选的参考图像获得为预定义的参考图像(例如,参考图片索引为0)。Here, the motion vector of the temporal candidate can be obtained based on the motion vector of the candidate block and the distance interval between the current image and the reference image of the target block, and the reference image of the temporal candidate can be obtained based on the distance interval between the current image and the reference image of the target block, or the reference image of the temporal candidate can be obtained as a predefined reference image (e.g., the reference image index is 0).
如果竞争模式候选组没有用空间候选、时间候选等填充,则可以通过包括零矢量的默认候选来完成候选组构造。If the candidate group for the competitive mode is not filled with spatial candidates, temporal candidates, etc., the candidate group can be constructed by including the default candidate with the zero vector.
竞争模式关注comp_inter的描述,并且在comp_ibc或comp_affine的情况下,可以为相似或不同的候选构造候选组。The competition mode focuses on the description of comp_inter, and in the case of comp_ibc or comp_affine, can construct candidate groups for similar or different candidates.
例如,在comp_ibc的情况下,可以基于选自空间候选、统计候选、组合候选和默认候选的预定候选来构造候选组。在这种情况下,可以通过对空间候选进行优先级排序来构造候选组,并且然后可以按照统计候选-组合候选-默认候选等的顺序来构造候选组,但是顺序不限于此。For example, in the case of comp_ibc, candidate groups can be constructed based on predetermined candidates selected from spatial candidates, statistical candidates, combined candidates, and default candidates. In this case, candidate groups can be constructed by prioritizing spatial candidates, and then candidate groups can be constructed in the order of statistical candidates - combined candidates - default candidates, etc., but the order is not limited to this.
可替选地,在comp_affine的情况下,可以基于从空间候选、统计候选、组合候选和默认候选中选择的预定候选来构造候选组。详细地,可以在候选组<1>中构造候选(例如,一个块)的运动矢量集候选,或者可以在候选组<2>中构造其中基于控制点位置组合了候选(例如,两个或更多个块)的运动矢量的候选。首先将针对<1>的候选包括在候选组中然后将针对<2>的候选包括在候选组中的顺序是可行的,但不限于此。Alternatively, in the case of comp_affine, candidate groups can be constructed based on predetermined candidates selected from spatial candidates, statistical candidates, combined candidates, and default candidates. Specifically, a set of motion vectors for a candidate (e.g., a block) can be constructed in candidate group <1>, or a candidate group <2> can be constructed where the motion vectors of candidates (e.g., two or more blocks) are combined based on control point locations. It is possible, but not limited to, to first include the candidates for <1> in the candidate group and then include the candidates for <2> in the candidate group.
由于各种竞争模式候选组的上述构造的详细描述可以从comp_inter得出,因此省略详细描述。Since a detailed description of the above construction of various competitive mode candidate groups can be obtained from comp_inter, a detailed description is omitted.
在构造竞争模式候选组的过程中,当首先包括的候选之中存在重复的运动信息时,可以维持首先包括的候选,并且可以将具有下一优先级的候选包括在候选组中。In the process of constructing a candidate group for a competitive mode, if there is duplicate motion information among the candidates initially included, the candidates initially included can be maintained, and candidates with the next priority can be included in the candidate group.
此处,在构造候选组之前,可以基于目标块的参考图片与当前图片之间的距离来缩放候选组的运动矢量。例如,当目标块的参考图片与当前图片之间的距离以及候选块的参考图片与候选块所属的图片之间的距离相同时,可以将运动矢量包括在候选组中,否则,根据目标块的参考图片与当前图片之间的距离所缩放的运动矢量可以被包括在候选组中。Here, before constructing candidate groups, the motion vectors of the candidate groups can be scaled based on the distance between the reference image of the target block and the current image. For example, when the distance between the reference image of the target block and the current image and the distance between the reference image of the candidate block and the image to which the candidate block belongs are the same, the motion vector can be included in the candidate group; otherwise, the motion vector scaled based on the distance between the reference image of the target block and the current image can be included in the candidate group.
在这种情况下,冗余可以意味着运动信息相同,其可以由运动信息编码模式限定。在竞争模式的情况下,可以基于运动矢量、参考图片和参考方向来确定重复。例如,当至少一个运动矢量的分量不同时,可以确定不存在重复。当候选组中包括新的候选时,通常可以执行冗余检查处理,但是可以将其修改为省略。In this context, redundancy can imply identical motion information, which can be defined by the motion information encoding pattern. In a contention-based mode, duplication can be determined based on motion vectors, a reference image, and a reference direction. For example, if at least one component of a motion vector is different, it can be determined that no duplication exists. Redundancy checks are typically performed when a new candidate is included in the candidate group, but this can be modified to omit the redundancy check.
用于合并模式的运动信息预测候选组(在下文中,合并模式候选组)可以包括k个候选,并且k可以是2、3、4、5、6或更大的整数。合并模式候选组可以包括空间候选或时间候选中的至少一个。The motion information prediction candidate set for the merging pattern (hereinafter referred to as the merging pattern candidate set) may include k candidates, and k may be an integer of 2, 3, 4, 5, 6 or greater. The merging pattern candidate set may include at least one of spatial candidates or temporal candidates.
空间候选可以从在左、上、左上、右上和左下方向上与参考块相邻的块中的至少一个得出。可以存在用于构造候选组的优先级,并且可以设置优先级例如左-上-左下-右上-左上、左-上-右上-左下-左上、上-左-左下-左上-右上。Spatial candidates can be derived from at least one of the blocks adjacent to the reference block in the left, top, top-left, top-right, and bottom-left directions. Priorities can exist for constructing candidate groups, and priorities can be set such as left-top-bottom-top-right-top-left, left-top-top-right-bottom-left-top, and top-left-bottom-left-top-right.
可以基于优先级、每个候选块的可用性(例如,基于编码模式、块位置等确定)以及空间候选的最大可允许数(p的数目,1与合并模式候选组的数目之间的整数),将所有或一些候选包括在候选组中。根据最大可允许数和可用性,候选可以不按tl-tr-bl-t3-13的顺序包括在候选组中。如果最大可允许数为4并且所有候选块的可用性为真,则tl的运动信息可以不包括在候选组中,并且如果一些候选块的可用性为假,则可以将tl的运动信息包括在候选组中。Candidates can be included in a candidate group based on priority, availability of each candidate block (e.g., determined based on encoding mode, block position, etc.), and the maximum allowed number of spatial candidates (the number of p, an integer between 1 and the number of candidate groups for the merge mode). Candidates may not be included in the candidate group in the order tl-tr-bl-t3-13, depending on the maximum allowed number and availability. If the maximum allowed number is 4 and the availability of all candidate blocks is true, the motion information of tl may not be included in the candidate group; conversely, if the availability of some candidate blocks is false, the motion information of tl may be included in the candidate group.
时间候选可以基于与参考块对应的块从与中心、左、右、上、下、左上、右上、左下、右下等相邻的块中的至少一个得出。可以存在用于构造候选组的优先级,并且可以设置诸如中心-左下-右-下、左下-中心-左上等优先级。Time candidates can be derived from at least one of the blocks adjacent to the center, left, right, top, bottom, top left, top right, bottom left, and bottom right, based on the block corresponding to the reference block. Priorities can exist for constructing candidate groups, and priorities such as center-bottom left-right-bottom, bottom left-center-top left, etc., can be set.
可以基于优先级、每个候选块的可用性以及时间候选的最大可允许数(q,1与合并模式候选的数目之间的整数),将全部或部分候选包括在候选组中。Candidates can be included in a candidate group based on priority, availability of each candidate block, and the maximum number of time candidates allowed (q, an integer between 1 and the number of merge pattern candidates).
此处,时间候选的运动矢量可以基于候选块的运动矢量来获得,并且时间候选的参考图像可以基于候选块的参考图像来获得,或者可以获得为预定义的参考图像(例如,参考图片索引为0)。Here, the motion vector of the temporal candidate can be obtained based on the motion vector of the candidate block, and the reference image of the temporal candidate can be obtained based on the reference image of the candidate block, or a predefined reference image can be obtained (e.g., reference image index 0).
对于包括在合并模式候选组中的优先级,可以设置空间候选-时间候选,或者反之亦然,并且可以支持其中空间候选和时间候选混合的优先级。在该示例中,假设空间候选-时间候选。For priorities included in the merge pattern candidate group, spatial candidate-temporal candidate can be set, or vice versa, and priorities that combine spatial and temporal candidates can be supported. In this example, spatial candidate-temporal candidate is assumed.
另外,统计候选或组合候选还可以包括在合并模式候选组中。可以在空间候选和时间候选之后构造统计候选和组合候选,但是不限于此,并且可以设置各种优先级。In addition, statistical candidates or combined candidates can also be included in the merged pattern candidate group. Statistical candidates and combined candidates can be constructed after spatial and temporal candidates, but are not limited to this, and various priorities can be set.
对于统计候选,可以管理高达n个运动信息片段,并且在这之中,可以将z个运动信息片段包括在合并模式候选组中作为统计候选。z可以根据已经包括在合并模式候选组中的候选构造而变化,可以是0、1、2或更大的整数,并且可以小于或等于n。For statistical candidates, up to n motion information segments can be managed, and among these, z motion information segments can be included in the merged pattern candidate group as statistical candidates. z can vary depending on the candidate construction already included in the merged pattern candidate group, and can be an integer of 0, 1, 2 or greater, and can be less than or equal to n.
可以通过合并已经包括在合并模式候选组中的n个候选来得出组合候选,并且n可以是2、3、4或更大的整数。组合候选的数目(n)可以是以诸如序列、图片、子图片、切片、图块、区块或块的单位显式地生成的信息。可替选地,可以根据编码设置隐式地确定它。在这种情况下,编码设置可以基于参考块的大小、形状、位置、图像类型和颜色分量中的一个或更多个因素来限定。A combined candidate can be derived by merging n candidates already included in the combined pattern candidate group, where n can be an integer of 2, 3, 4, or greater. The number of combined candidates (n) can be information explicitly generated in units such as sequences, pictures, sub-pictures, slices, tiles, blocks, or chunks. Alternatively, it can be implicitly determined based on encoding settings. In this case, the encoding settings can be limited based on one or more factors such as the size, shape, position, image type, and color components of the reference block.
此外,可以基于合并模式候选组中未填充的候选的数目来确定组合候选的数目。在这种情况下,合并模式候选组中未填充的候选的数目可以是合并模式候选的数目与已经填充的候选的数目之间的差值。即,如果合并模式候选组构造已经完成,则可以不添加组合候选。如果合并模式候选组构造未完成,则可以添加组合候选,但是当在合并模式候选组中填充的候选少于或等于一个候选时,不添加组合候选。Furthermore, the number of combined candidates can be determined based on the number of unfilled candidates in the merged candidate group. In this case, the number of unfilled candidates in the merged candidate group can be the difference between the number of merged candidate groups and the number of already filled candidates. That is, if the merged candidate group construction is complete, combined candidates may not be added. If the merged candidate group construction is incomplete, combined candidates may be added, but no combined candidates are added when the number of filled candidates in the merged candidate group is less than or equal to one.
如果合并模式候选组没有用空间候选、时间候选、统计候选、组合候选等填充,则可以通过包括零矢量的默认候选来完成候选组构造。If the candidate group for the merge pattern is not filled with spatial candidates, temporal candidates, statistical candidates, or combined candidates, the candidate group can be constructed by including the default candidate with a zero vector.
合并模式关注merge_inter的描述,并且在merge_ibc或merge_affine的情况下,可以为相似或不同的候选构造候选组。The merge mode focuses on the description of merge_inter, and in the case of merge_ibc or merge_affine, it can construct candidate groups for similar or different candidates.
例如,在merge_ibc的情况下,可以基于选自空间候选、统计候选、组合候选和默认候选的预定候选来构造候选组。在这种情况下,可以通过对空间候选进行优先级排序来构造候选组,并且然后可以按照统计候选-组合候选-默认候选等的顺序来构造候选组,但是顺序不是限于此。For example, in the case of merge_ibc, candidate groups can be constructed based on predetermined candidates selected from spatial candidates, statistical candidates, combined candidates, and default candidates. In this case, candidate groups can be constructed by prioritizing spatial candidates, and then candidate groups can be constructed in the order of statistical candidates - combined candidates - default candidates, etc., but the order is not limited to this.
可替选地,在merge_affine的情况下,可以基于从空间候选、时间候选、统计候选、组合候选和默认候选中选择的预定候选来构造候选组。详细地,可以在候选组<1>中构造候选(例如,一个块)的运动矢量集候选,或者可以在候选组<2>中构造其中基于控制点位置组合了候选(例如,两个或更多个块)的运动矢量的候选。其中首先将针对<1>的候选包括在候选组中然后包括针对<2>的候选是可行的,但不限于此。Alternatively, in the case of merge_affine, candidate groups can be constructed based on predetermined candidates selected from spatial candidates, temporal candidates, statistical candidates, combined candidates, and default candidates. Specifically, a set of motion vectors for a candidate (e.g., a block) can be constructed in candidate group <1>, or a candidate group <2> can be constructed where the motion vectors of candidates (e.g., two or more blocks) are combined based on control point locations. It is possible, but not limited to, to first include the candidates for <1> in the candidate group and then include the candidates for <2>.
由于各种合并模式候选组的上述构造的详细描述可以从merge_inter得出,因此将省略详细描述。Since a detailed description of the above construction of various merge pattern candidate groups can be derived from merge_inter, a detailed description will be omitted.
在构造合并模式候选组的过程中,如果在首先包括的候选之中存在交叠的运动信息,则可以维持首先包括的候选,并且可以将具有下一优先级的候选包括在候选组中。In the process of constructing a candidate group for merging patterns, if there is overlapping motion information among the first included candidates, the first included candidates can be maintained, and candidates with the next priority can be included in the candidate group.
在这种情况下,冗余意味着运动信息相同,其可以由运动信息编码模式限定。在合并模式的情况下,可以基于运动矢量、参考图片和参考方向来确定交叠。例如,如果至少一个运动矢量的分量不同,则可以确定不存在交叠。当候选组中包括新的候选时,通常可以执行冗余检查处理,但是可以将其修改为省略。In this context, redundancy implies identical motion information, which can be defined by the motion information encoding pattern. In the case of the merging pattern, overlap can be determined based on motion vectors, a reference image, and a reference direction. For example, if at least one motion vector component is different, it can be determined that no overlap exists. Redundancy checks are typically performed when new candidates are included in the candidate group, but this can be modified to omit them.
图14是示出根据本发明的实施方式的运动信息编码的流程图。Figure 14 is a flowchart illustrating motion information encoding according to an embodiment of the present invention.
可以生成目标块的运动矢量预测候选列表S1400。前述竞争模式候选组可以意味着运动矢量候选列表,并且将省略其详细描述。A candidate list of motion vector predictions for the target block can be generated S1400. The aforementioned competition mode candidate group may mean a candidate list of motion vectors, and its detailed description will be omitted.
可以重构目标块的运动矢量差S1410。可以分别地重构运动矢量的x和y分量的差,并且每个分量的差可以具有0或更大的值。The motion vector difference S1410 of the target block can be reconstructed. The difference between the x and y components of the motion vector can be reconstructed separately, and the difference of each component can have a value of 0 or greater.
目标块的预测候选索引可以选自运动矢量预测候选列表S1420。目标块的运动矢量预测值可以基于根据候选列表中的候选索引获得的运动矢量来得出。如果可以得出一个预定的运动矢量预测值,则可以省略选择预测候选索引和索引信息的过程。The prediction candidate index for the target block can be selected from the motion vector prediction candidate list S1420. The predicted motion vector value for the target block can be derived based on the motion vector obtained from the candidate index in the candidate list. If a predetermined motion vector prediction value can be obtained, the process of selecting the prediction candidate index and index information can be omitted.
可以得出运动矢量差的精度信息S1430。可以得出通常应用于运动矢量的x和y分量的精度信息,或者可以得出应用于每个分量的精度信息。如果运动矢量差为0,则可以省略精度信息,并且也可以省略该处理。The accuracy information S1430 for the motion vector difference can be obtained. This can be the accuracy information typically applied to the x and y components of the motion vector, or the accuracy information applied to each component. If the motion vector difference is 0, the accuracy information can be omitted, and this processing can also be omitted.
可以得出针对运动矢量预测值的调整偏移S1440。偏移可以是与运动矢量预测值的x或y分量相加或相减的值。偏移可以仅支持x和y分量之一,或者可以支持x和y分量两者。An adjustment offset S1440 for the motion vector prediction value can be derived. The offset can be a value added to or subtracted from the x or y component of the motion vector prediction value. The offset can support only one of the x and y components, or it can support both x and y components.
假设运动矢量预测值为(pmv_x,pmv_y),并且调整偏移为offset_x和offset_y,则可以调整(或获得)运动矢量预测值为(pmv_x+offset_x,pmv_y+offset_y)。Assuming the predicted motion vector value is (pmv_x, pmv_y), and the offsets are adjusted to offset_x and offset_y, then the predicted motion vector value can be adjusted (or obtained) to (pmv_x + offset_x, pmv_y + offset_y).
此处,offset_x和offset_y的绝对值可以分别是0、1、2或更大的整数,并且可以具有值(+1、-1、+2、-2等),其中符号信息被一起考虑。此外,offset_x和offset_y可以基于预定精度来确定。预定精度可以以1/16、1/8、1/4、1/2和1像素为单位确定,并且可以基于插值精度、运动矢量精度等来确定。Here, the absolute values of offset_x and offset_y can be integers of 0, 1, 2, or larger, and can have values (+1, -1, +2, -2, etc.), where sign information is considered together. Furthermore, offset_x and offset_y can be determined based on a predetermined precision. The predetermined precision can be determined in units of 1/16, 1/8, 1/4, 1/2, and 1 pixel, and can be based on interpolation precision, motion vector precision, etc.
例如,如果插值精度以1/4像素为单位,则可以得出插值精度为组合有绝对值和符号信息的0、1/4、-1/4、2/4、-2/4、3/4、-3/4。For example, if the interpolation precision is in units of 1/4 pixel, then the interpolation precision can be 0, 1/4, -1/4, 2/4, -2/4, 3/4, or -3/4, which are combinations of absolute value and sign information.
此处,offset_x和offset_y可以分别由a和b支持,并且a和b可以是0、1、2或更大的整数。a和b可以具有固定值,或者可以具有可变值。此外,a和b可以具有相同或不相等的值。Here, offset_x and offset_y can be backed by a and b respectively, and a and b can be integers of 0, 1, 2 or greater. a and b can have fixed values or variable values. Furthermore, a and b can have the same or different values.
是否支持针对运动矢量预测值的调整偏移可以以诸如序列、图片、子图片、切片、图块、区块等的单位显式地支持,或者可以根据编码设置隐式地确定。另外,可以根据编码设置来确定调整偏移的设置(例如,值的范围、数目等)。Whether adjustment offsets for motion vector prediction values are supported can be explicitly supported in units such as sequences, images, sub-images, slices, tiles, blocks, etc., or implicitly determined based on encoding settings. Additionally, the settings for adjustment offsets (e.g., the range and number of values) can be determined based on encoding settings.
考虑到编码元素例如图像类型、颜色分量、目标块的状态信息、运动模型选择信息(例如,是否为平移运动模型)、参考图片(例如,是否为当前图片)以及运动矢量精度差选择信息(例如,是否为1/4、1/2、1、2、4单位之中的预定单位)中的至少一个,可以确定编码设置。The encoding settings can be determined by taking into account at least one of the encoding elements such as image type, color components, target block state information, motion model selection information (e.g., whether it is a translational motion model), reference image (e.g., whether it is the current image), and motion vector precision difference selection information (e.g., whether it is a predetermined unit among 1/4, 1/2, 1, 2, and 4 units).
例如,可以根据块的大小来确定是否支持调整偏移和偏移设置。在这种情况下,可以通过第一阈值大小(最小值)或第二阈值大小(最大值)来确定块的大小,并且每个阈值大小可以表示为具有块的宽度(W)和高度(H)的W、H、W x H和W*H。在第一阈值大小的情况下,W和H可以是4、8、16或更大的整数,并且W*H可以是16、32、64或更大的整数。在第二阈值大小的情况下,W和H可以是16、32、64或更大的整数,并且W*H可以是64、128、256或更大的整数。该范围可以由第一阈值大小或第二阈值大小之一来确定,或者可以使用它们两者来确定。For example, the size of the block can be used to determine whether offset and offset settings are supported. In this case, the block size can be determined by a first threshold size (minimum) or a second threshold size (maximum), and each threshold size can be represented as W, H, W x H, and W*H, which have the width (W) and height (H) of the block. In the case of the first threshold size, W and H can be integers of 4, 8, 16, or greater, and W*H can be integers of 16, 32, 64, or greater. In the case of the second threshold size, W and H can be integers of 16, 32, 64, or greater, and W*H can be integers of 64, 128, 256, or greater. This range can be determined by one of the first threshold size or the second threshold size, or both.
在这种情况下,阈值大小可以是固定的,或者可以根据图像(例如,图像类型等)自适应。在这种情况下,可以基于最小编码块、最小预测块、最小变换块的大小来设置第一阈值大小,并且可以基于最大编码块、最大预测块、最大变换块的大小来设置第二阈值大小。In this case, the threshold size can be fixed or adaptive based on the image (e.g., image type, etc.). In this scenario, the first threshold size can be set based on the sizes of the minimum coding block, minimum prediction block, and minimum transform block, and the second threshold size can be set based on the sizes of the maximum coding block, maximum prediction block, and maximum transform block.
此外,调整偏移可以应用于运动信息预测候选组中包括的所有候选,或者可以仅应用于某些候选。在稍后描述的示例中,假设可以应用候选组中包括的所有候选,但是可以从0、1、2至最大候选数目中选择要应用调整偏移的候选。Furthermore, the adjustment offset can be applied to all candidates included in the motion information prediction candidate group, or it can be applied to only some candidates. In the example described later, it is assumed that all candidates included in the candidate group can be applied, but the candidates to which the adjustment offset is applied can be selected from 0, 1, 2 to the maximum number of candidates.
如果不支持调整偏移,则可以省略该处理和调整偏移信息。If offset adjustment is not supported, this processing and offset adjustment information can be omitted.
目标块的运动矢量可以通过将运动矢量预测值和运动矢量差相加来重构S1450。在这种情况下,可以优先利用运动矢量精度来统一运动矢量预测值或运动矢量差的处理,并且上述运动矢量缩放处理可以优先进行或者可以在该处理期间执行。The motion vector of the target block can be reconstructed by adding the predicted motion vector value and the motion vector difference in S1450. In this case, the motion vector accuracy can be prioritized to unify the processing of the predicted motion vector value or the motion vector difference, and the aforementioned motion vector scaling process can be performed first or during this process.
配置和顺序不限于此,而是可以进行各种改变。The configuration and order are not limited to this and can be changed in various ways.
图15是根据本发明的实施方式的用于目标块的运动矢量预测候选和运动矢量的示例图。Figure 15 is an example diagram of motion vector prediction candidates and motion vectors for a target block according to an embodiment of the present invention.
为了便于说明,支持两个运动矢量预测候选,并且假设要比较一个分量(x或y分量)。另外,假设插值精度或运动矢量精度为1/4像素单位。另外,假设对于运动矢量差精度支持1/4、1和4像素单元(例如,如果1/4,则假设被二进制化为<0>,如果1,则假设被二进制化为<10>,以及如果4,则假设被二值化为<11>)。另外,假设对于运动矢量差省略符号信息,并且通过一元二值化处理运动矢量差(例如,0:<0>、1:<10>、2:<110>等)。For ease of explanation, two motion vector prediction candidates are supported, and it is assumed that only one component (x or y component) is compared. Furthermore, it is assumed that the interpolation precision or motion vector precision is 1/4 pixel unit. Additionally, it is assumed that 1/4, 1, and 4 pixel units are supported for the motion vector difference precision (e.g., if 1/4, it is assumed to be binaryized as <0>, if 1, it is assumed to be binaryized as <10>, and if 4, it is assumed to be binaryized as <11>). Furthermore, it is assumed that sign information is omitted for the motion vector difference, and the motion vector difference is processed through univariate binarization (e.g., 0: <0>, 1: <10>, 2: <110>, etc.).
参照图15,实际运动矢量(X)的值为2,候选1(A)的值为0,而候选2(B)的值为1/4。Referring to Figure 15, the value of the actual motion vector (X) is 2, the value of candidate 1 (A) is 0, and the value of candidate 2 (B) is 1/4.
(在不支持差分运动矢量精度的情况下)(In cases where differential motion vector precision is not supported)
由于A与X之间的距离(da)为8/4(9位),并且B与X之间的距离(db)为7/4(8位),因此就位量生成而言,预测候选可以选择为B。Since the distance (da) between A and X is 8/4 (9 bits) and the distance (db) between B and X is 7/4 (8 bits), B can be selected as the prediction candidate in terms of bit generation.
(在支持运动矢量差精度的情况下)(When motion vector difference accuracy is supported)
由于da是8/4,可以生成1个像素单位精度(2位)和2/1差信息(3位),因此总共可以生成5位。另一方面,由于db是7/4,可以生成1/4像素单位精度(1位)和7/4差信息(8位),因此总共可以生成9位。就位量生成而言,预测候选可以选择为A。Since da is 8/4, it can generate 1 pixel unit precision (2 bits) and 2/1 difference information (3 bits), thus generating a total of 5 bits. On the other hand, since db is 7/4, it can generate 1/4 pixel unit precision (1 bit) and 7/4 difference information (8 bits), thus generating a total of 9 bits. In terms of bit generation, the prediction candidate can be chosen as A.
如以上示例中那样,如果不支持运动矢量差精度,则从目标块的运动矢量选择具有短距离间隔的候选作为预测候选可能是有利的。如果支持,则除了距目标块的运动矢量的距离间隔之外,基于根据精度信息生成的信息量,选择为预测候选可能是重要的。As in the example above, if motion vector difference accuracy is not supported, it may be advantageous to select candidates with short distance intervals from the motion vectors of the target block as prediction candidates. If it is supported, then in addition to the distance interval from the motion vectors of the target block, the amount of information generated based on the accuracy information may be important in selecting prediction candidates.
图16是根据本发明的实施方式的用于目标块的运动矢量预测候选和运动矢量的示例图。在下文中,假设支持运动矢量差精度。Figure 16 is an example diagram of motion vector prediction candidates and motion vectors for a target block according to an embodiment of the present invention. In the following, it is assumed that motion vector difference accuracy is supported.
由于da为33/4,可以生成1/4像素单位精度(1位)和33/4差信息(34位),因此总共可以生成35位。另一方面,由于db是21/4,可以生成1/4像素单位精度(1位)和21/4差信息(22位),因此总共可以生成23位。就位量生成而言,预测候选可以选择为B。Since da is 33/4, it can generate 1/4 pixel unit precision (1 bit) and 33/4 difference information (34 bits), thus generating a total of 35 bits. On the other hand, since db is 21/4, it can generate 1/4 pixel unit precision (1 bit) and 21/4 difference information (22 bits), thus generating a total of 23 bits. Regarding bit generation, prediction candidate B can be selected.
图17是根据本发明的实施方式的用于目标块的运动矢量预测候选和运动矢量的示例图。在下文中,假设支持运动矢量差精度并且支持调整偏移信息。Figure 17 is an example diagram of motion vector prediction candidates and motion vectors for a target block according to an embodiment of the present invention. In the following, it is assumed that motion vector difference accuracy is supported and that offset information is adjusted.
在该示例中,假设调整偏移具有0和+1候选,并且指示调整偏移是否已被应用的标志(1位)和偏移选择信息(1位)被生成。In this example, it is assumed that the adjustment offset has 0 and +1 candidates, and a flag (1 bit) indicating whether the adjustment offset has been applied and offset selection information (1 bit) are generated.
参照图17,A1和B1可以是基于预测候选索引而获得的运动矢量预测值,而A2和B2可以是通过用调整偏移对A1和B1进行修改而获得的新的运动矢量预测值。假设A1、A2、B1、B2与X之间的距离分别为da1、da2、db1、db2。Referring to Figure 17, A1 and B1 can be motion vector predictions obtained based on the prediction candidate indices, while A2 and B2 can be new motion vector predictions obtained by modifying A1 and B1 with adjusted offsets. Assume that the distances between A1, A2, B1, B2 and X are da1, da2, db1, and db2, respectively.
(1)由于da1是33/4,可以生成1/4像素单位精度(1位)、偏移应用标志(1位)、偏移选择信息(1位)和33/4差信息(34位),因此总共可以生成37位。(1) Since da1 is 33/4, it can generate 1/4 pixel unit precision (1 bit), offset application flag (1 bit), offset selection information (1 bit) and 33/4 difference information (34 bits), so a total of 37 bits can be generated.
(2)由于da2是32/4,可以生成4像素单位精度(2位)、偏移应用标志(1位)、偏移选择信息(1位)和2/1差信息(3位),因此总共可以生成7位。(2) Since da2 is 32/4, it can generate 4-pixel unit precision (2 bits), offset application flag (1 bit), offset selection information (1 bit) and 2/1 difference information (3 bits), so a total of 7 bits can be generated.
(3)由于db1是21/4,可以生成1/4像素单位精度(1位)、偏移应用标志(1位)、偏移选择信息(1位)和21/4差信息(22位),因此总共可以生成25位。(3) Since db1 is 21/4, it can generate 1/4 pixel unit precision (1 bit), offset application flag (1 bit), offset selection information (1 bit) and 21/4 difference information (22 bits), so a total of 25 bits can be generated.
(4)由于db2是20/4,可以生成1像素单位精度(2位)、偏移应用标志(1位)、偏移选择信息(1位)和5/1差信息(6位),因此总共可以生成10位。(4) Since db2 is 20/4, it can generate 1 pixel unit precision (2 bits), offset application flag (1 bit), offset selection information (1 bit) and 5/1 difference information (6 bits), so a total of 10 bits can be generated.
就位量生成而言,预测候选可以选择为A,并且偏移选择信息可以选择为索引1(在该示例中为+1)。For in-situ quantity generation, the prediction candidate can be selected as A, and the offset selection information can be selected as index 1 (+1 in this example).
在以上示例中,当基于现有的运动矢量预测值得出运动矢量差时,可能存在由于矢量值的差值小而生成许多位的情况。以上问题可以通过调整运动矢量预测值来解决。In the above example, when deriving the motion vector difference based on the existing motion vector prediction values, there may be a situation where many bits are generated due to the small difference between the vector values. This problem can be solved by adjusting the motion vector prediction values.
可以支持预定标志,以将调整偏移应用于运动矢量预测值。预定标志可以通过偏移应用标志、偏移选择信息等来配置。Predefined flags can be supported to apply adjustment offsets to motion vector predictions. Predefined flags can be configured via offset application flags, offset selection information, etc.
(如果仅支持偏移量应用标志)(If only offset application flags are supported)
当偏移应用标志为0时,不将偏移应用于运动矢量预测值,并且当偏移应用标志为1时,可以将预定偏移与运动矢量预测值相加或相减。When the offset application flag is 0, the offset is not applied to the motion vector prediction value, and when the offset application flag is 1, the predetermined offset can be added to or subtracted from the motion vector prediction value.
(如果仅支持偏移选择信息)(If only offset selection information is supported)
基于偏移选择信息的偏移集可以与运动矢量预测值相加或相减。The offset set based on offset selection information can be added to or subtracted from the motion vector prediction value.
(如果支持偏移应用标志和偏移选择信息)(If offset application flags and offset selection information are supported)
当偏移应用标志为0时,不将偏移应用于运动矢量预测值,并且当偏移应用标志为1时,基于偏移选择信息设置的偏移可以与运动矢量预测值相加或相减。在稍后描述的示例中假设该设置。When the offset application flag is 0, the offset is not applied to the motion vector prediction value, and when the offset application flag is 1, the offset set based on the offset selection information can be added to or subtracted from the motion vector prediction value. This setting is assumed in the example described later.
同时,偏移应用标志和偏移选择信息可以用作在某些情况下不必要地生成的信息。即,即使不应用偏移,但如果信息已经为零或基于最大精度信息来减少信息量,则与偏移相关的信息可能相当低效。因此,有必要支持根据预定条件隐式地生成的设置,而不是在与偏移相关的信息总是显式地生成时。Meanwhile, offset application flags and offset selection information can be used as information that is unnecessarily generated in some cases. That is, even if the offset is not applied, the offset-related information may be quite inefficient if the information is already zero or the amount of information is reduced based on the maximum precision information. Therefore, it is necessary to support settings that implicitly generate information according to predetermined conditions, rather than always explicitly generating offset-related information.
接下来,假设与运动相关的编码序列(运动矢量差重构->运动矢量差精度获取)。在该示例中,假设在x和y分量中的至少一个不为零时,支持运动矢量差精度。Next, we assume a motion-related coding sequence (motion vector difference reconstruction -> motion vector difference precision acquisition). In this example, we assume that motion vector difference precision is supported when at least one of the x and y components is not zero.
在运动矢量差不为0时,可以选择{1/4,1/2,1,4}像素单位之一以用于运动矢量差精度。When the motion vector difference is not 0, one of the following pixel units can be selected: {1/4, 1/2, 1, 4} for the motion vector difference precision.
如果选择信息属于预定类别,则可以隐式地省略关于调整偏移的信息,如果不是,则可以显式地生成关于调整偏移的信息。If the selected information belongs to a predetermined category, information about the adjustment offset can be implicitly omitted; otherwise, information about the adjustment offset can be explicitly generated.
此处,类别可以包括差分运动矢量精度候选之一,可以用各种类别例如{1/4}、{1/4,1/2}、{1/4,1/2,1}进行配置。此处,最小精度可以包括在类别中。Here, the category can include one of the differential motion vector precision candidates, which can be configured with various categories such as {1/4}, {1/4, 1/2}, {1/4, 1/2, 1}. The minimum precision can also be included in the category.
例如,如果运动矢量差精度为1/4像素单位(例如,最小精度),则将偏移应用标志隐式地设置为0(即,不应用),并且如果运动矢量差精度不为1/4像素,则显式地生成偏移应用标志,并且如果偏移应用标志为1(即,偏移),则可以生成偏移选择信息。For example, if the motion vector difference precision is 1/4 pixel (e.g., minimum precision), the offset application flag is implicitly set to 0 (i.e., not applied), and if the motion vector difference precision is not 1/4 pixel, the offset application flag is explicitly generated, and if the offset application flag is 1 (i.e., offset), offset selection information can be generated.
可替选地,当运动矢量差精度为4像素单位(例如,最大精度)时,显式地生成偏移应用标志,并且当偏移应用标志为1时,可以生成偏移选择信息。可替选地,当运动矢量差精度不是4像素单位时,可以将偏移信息隐式地设置为0。Alternatively, when the motion vector difference precision is 4 pixels (e.g., maximum precision), an offset application flag can be explicitly generated, and when the offset application flag is 1, offset selection information can be generated. Alternatively, when the motion vector difference precision is not 4 pixels, the offset information can be implicitly set to 0.
以上示例假设:当运动矢量差指示最小精度时隐式地省略与偏移相关的信息,并且当运动矢量差指示最大精度时显式地生成与偏移相关的信息,但不限于此。The above examples assume that offset-related information is implicitly omitted when the motion vector difference indicates minimum precision, and offset-related information is explicitly generated when the motion vector difference indicates maximum precision, but are not limited to this.
图18是示出根据本发明的实施方式的多个运动矢量预测值的布置的示例图。Figure 18 is an example diagram illustrating the arrangement of multiple motion vector prediction values according to an embodiment of the present invention.
通过上述示例,已经描述了关于在构造运动信息预测候选组时的冗余检查的部分。此处,冗余意味着运动信息是相同的,并且上面已经描述了如果至少一个运动矢量的分量不同,则可以确定不存在冗余。The above example has described the part about redundancy checks when constructing candidate groups for motion information prediction. Here, redundancy means that the motion information is the same, and as described above, if at least one component of the motion vector is different, it can be determined that there is no redundancy.
通过冗余检查处理,针对运动矢量预测值的多个候选可以彼此不交叠。然而,当多个候选分量元素非常相似(即,每个候选的x或y分量存在于预定范围内,并且该预定范围的宽度或高度是1、2或更大的整数。或者可以基于偏移信息来设置范围)时,运动矢量预测值和经偏移修改的运动矢量预测值可以交叠。为此各种设置是可行的。Through redundancy checks, multiple candidates for motion vector predictions can be made to not overlap. However, when multiple candidate component elements are very similar (i.e., each candidate's x or y component exists within a predetermined range, and the width or height of that predetermined range is an integer of 1, 2, or greater; or the range can be set based on offset information), motion vector predictions and offset-modified motion vector predictions can overlap. Various settings are feasible for this purpose.
作为示例(C1),在构造运动信息预测候选组的步骤中,当新候选不与已经包括的候选交叠时,可以将新候选包括在候选组中。也就是说,如果仅通过与先前描述相同的候选本身的比较而不交叠,则可以是可以包括在候选组中的配置。As an example (C1), in the step of constructing a candidate group for motion information prediction, a new candidate can be included in the candidate group if it does not overlap with already included candidates. That is, if there is no overlap only by comparing with the same candidate as previously described, it can be a configuration that can be included in the candidate group.
作为示例(C2),如果新候选和通过在此基础上加上偏移而获得的候选(group_A)和已经包括的候选和通过在此基础上加上偏移而获得的候选(group_B)无预定数目交叠,它可以包括在候选组中。预定数目可以是0、1或更大的整数。如果预定数目是0,即使一个被交叠,可以不将对应的新候选包括在候选组中。可替选地,(C3),可以将预定偏移(这是与调整偏移不同的概念)添加至要包括在候选组中的新候选,并且该偏移可以是使得group_A能够被配置为不与group_B交叠的值。As an example (C2), a new candidate can be included in a candidate group if it does not overlap with a predetermined number of candidates (group_A) obtained by adding an offset to it, and with a predetermined number of overlaps between already included candidates and candidates (group_B) obtained by adding an offset to it. The predetermined number can be an integer of 0, 1, or greater. If the predetermined number is 0, even if one overlaps, the corresponding new candidate may not be included in the candidate group. Alternatively, (C3), a predetermined offset (a concept distinct from adjusting the offset) can be added to the new candidate to be included in the candidate group, and this offset can be a value that allows group_A to be configured not to overlap with group_B.
参照图18,可以是属于类别A、B、C、D的多个运动矢量(在该示例中,AX、BX、CX、DX。X是1和2。例如,A1是A2之前的候选组中包括的候选)满足非交叠条件(如果候选运动矢量的任何一个分量不同)的情况。Referring to Figure 18, it can be the case that multiple motion vectors belonging to categories A, B, C, and D (in this example, AX, BX, CX, and DX. X is 1 and 2. For example, A1 is a candidate included in the candidate group preceding A2) satisfy the non-overlapping condition (if any component of the candidate motion vector is different).
在该示例中,假设分别对x和y分量支持-1、0、1,并且经偏移修改的运动矢量预测值在图中可以表示为*。此外,虚线(矩形)表示如下范围(例如,group_A、group_B等),其可以通过在预定运动矢量预测值的基础上加上偏移而获得。In this example, it is assumed that -1, 0, and 1 are supported for the x and y components, respectively, and the offset-modified motion vector predictions can be represented as * in the figure. Furthermore, dashed lines (rectangles) represent ranges (e.g., group_A, group_B, etc.) that can be obtained by adding an offset to a predetermined motion vector prediction.
在类别A的情况下,它可以对应于A1和A2不交叠且group_A1和group_A2不交叠的情况。In the case of category A, it can correspond to the case where A1 and A2 do not overlap and group_A1 and group_A2 do not overlap.
在类别B、C、D的情况下,它可以对应于其中B1/C1/D1和B2/C2/D2不交叠并且group_B1/C1/D1和group_B2/C2/D2部分交叠的情况。In the case of categories B, C, and D, it can correspond to the situation where B1/C1/D1 and B2/C2/D2 do not overlap, but group_B1/C1/D1 and group_B2/C2/D2 partially overlap.
此处,在类别B的情况下,它可以是在不采取任何特殊动作的情况下构造候选组的示例(C1)。Here, in the case of category B, it could be an example of constructing candidate groups without taking any special actions (C1).
此处,在类别C的情况下,可以是以下配置:在该配置中,在冗余检查步骤中确定C2具有冗余,并且将下一优先级的C3包括在候选组中(C2)。Here, in the case of category C, the following configuration can be used: In this configuration, C2 is determined to be redundant in the redundancy check step, and C3, which has the next higher priority, is included in the candidate group (C2).
此处,在类别D的情况下,可以是以下情况:其中,在冗余检查步骤中确定D2具有冗余,并且修改D2使得group_D2不与group_D1(即D3。D3不是在候选组构造优先级中存在的运动矢量)交叠(C3)。Here, in the case of category D, it can be the following: D2 is determined to be redundant in the redundancy check step, and D2 is modified so that group_D2 does not overlap with group_D1 (i.e., D3. D3 is not a motion vector present in the candidate group construction priority) (C3).
在各种类别之中,可以将其应用于构造预测模式候选组的设置,或者可以应用除以上这些提及的方法之外的各种方法。Among various categories, it can be applied to the setting of constructing candidate groups of prediction patterns, or various methods other than those mentioned above can be applied.
图19是示出根据本发明的实施方式的在合并模式下的运动信息编码的流程图。Figure 19 is a flowchart illustrating motion information encoding in merging mode according to an embodiment of the present invention.
可以生成目标块的运动信息预测候选列表S1900。上述合并模式候选组可以意味着运动信息预测候选列表,并且将省略其详细描述。A candidate list S1900 for predicting motion information of the target block can be generated. The above-mentioned candidate group for merging modes may refer to the candidate list for predicting motion information, and its detailed description will be omitted.
可以从运动信息预测候选列表中选择目标块的预测候选索引S1910。可以基于根据从候选列表中的候选索引获得的运动信息来得出目标块的运动矢量预测值。如果可以得出一个预定运动信息预测值,则可以省略选择预测候选索引和索引信息的过程。A prediction candidate index S1910 for the target block can be selected from the motion information prediction candidate list. The motion vector prediction value of the target block can be derived based on the motion information obtained from the candidate indices in the candidate list. If a predetermined motion information prediction value can be obtained, the process of selecting the prediction candidate index and index information can be omitted.
可以得出针对运动矢量预测值的调整偏移S1920。偏移可以是与运动矢量预测值的x或y分量相加或相减的值。偏移可以仅支持x或y分量之一,或者可以支持x和y分量两者。An adjustment offset S1920 for the motion vector prediction value can be derived. The offset can be a value added to or subtracted from the x or y component of the motion vector prediction value. The offset can support only one of the x or y components, or it can support both x and y components.
由于该处理中的调整偏移可以与以上调整偏移相同或相似,因此省略详细描述,并且稍后将描述差异的一部分。Since the adjustment offset in this process can be the same as or similar to the adjustment offsets above, a detailed description is omitted, and a portion of the differences will be described later.
假设运动矢量预测值为(pmv_x,pmv_y),并且调整偏移为offset_x和offset_y,则运动矢量预测值可以被调整(或获得)为(pmv_x+offset_x,pmv_y+offset_y)。Assuming the predicted motion vector is (pmv_x, pmv_y), and the offsets are adjusted to offset_x and offset_y, the predicted motion vector can be adjusted (or obtained) to (pmv_x + offset_x, pmv_y + offset_y).
此处,offset_x和offset_y的绝对值可以分别是诸如0、1、2、4、8、16、32、64、128等的整数,并且可以具有符号信息被一起考虑的值。此外,offset_x和offset_y可以基于预定精度来确定。预定精度可以以1/16、1/8、1/4、1/2、1像素为单位确定。Here, the absolute values of offset_x and offset_y can be integers such as 0, 1, 2, 4, 8, 16, 32, 64, 128, etc., and can have sign information considered together. Furthermore, offset_x and offset_y can be determined based on a predetermined precision. The predetermined precision can be determined in units of 1/16, 1/8, 1/4, 1/2, or 1 pixel.
例如,如果运动矢量精度为1/4像素单位,则可以得出运动矢量精度为组合有绝对值和符号信息的0、1/4、-1/4、1/2、-1/2、1、-1、2,-2等。For example, if the motion vector precision is 1/4 pixel unit, then the motion vector precision can be 0, 1/4, -1/4, 1/2, -1/2, 1, -1, 2, -2, etc., which combine absolute value and sign information.
此处,offset_x和offset_y可以分别是a和b资源(resource),并且a和b可以是诸如0、1、2、4、8、16、32等的整数。a和b可以具有固定值或可以具有可变值。此外,a和b可以具有相同或不相等的值。Here, offset_x and offset_y can be resources a and b, respectively, and a and b can be integers such as 0, 1, 2, 4, 8, 16, 32, etc. a and b can have fixed values or variable values. Furthermore, a and b can have the same or different values.
是否支持针对运动矢量预测值的调整偏移可以以诸如序列、图片、子图片、切片、图块、区块等的单位显式地支持,或者可以根据编码设置隐式地确定。另外,可以根据编码设置来确定调整偏移的设置(例如,值的范围、数目等)。Whether adjustment offsets for motion vector prediction values are supported can be explicitly supported in units such as sequences, images, sub-images, slices, tiles, blocks, etc., or implicitly determined based on encoding settings. Additionally, the settings for adjustment offsets (e.g., the range and number of values) can be determined based on encoding settings.
考虑到编码元素例如图像类型、颜色分量、目标块的状态信息、运动模型选择信息(例如,是否为平移运动模型)、参考图片(例如,是否为当前图片)等中的至少一个,可以确定编码设置。The encoding settings can be determined by taking into account at least one of the encoding elements such as image type, color components, target block state information, motion model selection information (e.g., whether it is a translational motion model), and reference image (e.g., whether it is the current image).
例如,可以根据块的大小来确定是否支持调整偏移和偏移设置。在这种情况下,可以通过第一阈值大小(最小值)或第二阈值大小(最大值)来确定块的大小,并且每个阈值大小可以表示为具有块的宽度(W)和高度(H)的W、H、W x H和W*H。在第一阈值大小的情况下,W和H可以是4、8、16或更大的整数,并且W*H可以是16、32、64或更大的整数。在第二阈值大小的情况下,W和H可以是16、32、64或更大的整数,并且W*H可以是64、128、256或更大的整数。该范围可以由第一阈值大小或第二阈值大小之一来确定,或者可以使用它们两者来确定。For example, the size of the block can be used to determine whether offset and offset settings are supported. In this case, the block size can be determined by a first threshold size (minimum) or a second threshold size (maximum), and each threshold size can be represented as W, H, W x H, and W*H, which have the width (W) and height (H) of the block. In the case of the first threshold size, W and H can be integers of 4, 8, 16, or greater, and W*H can be integers of 16, 32, 64, or greater. In the case of the second threshold size, W and H can be integers of 16, 32, 64, or greater, and W*H can be integers of 64, 128, 256, or greater. This range can be determined by one of the first threshold size or the second threshold size, or both.
在这种情况下,阈值大小可以是固定的,或者可以根据图像(例如,图像类型等)自适应。在这种情况下,可以基于最小编码块、最小预测块、最小变换块的大小来设置第一阈值大小,并且可以基于最大编码块、最大预测块、最大变换块的大小来设置第二阈值大小。In this case, the threshold size can be fixed or adaptive based on the image (e.g., image type, etc.). In this scenario, the first threshold size can be set based on the sizes of the minimum coding block, minimum prediction block, and minimum transform block, and the second threshold size can be set based on the sizes of the maximum coding block, maximum prediction block, and maximum transform block.
此外,调整偏移可以应用于运动信息预测候选组中包括的所有候选,或者可以仅应用于某些候选。在稍后描述的示例中,假设可以应用候选组中包括的所有候选,但是可以从0、1、或2至最大候选数之间的数中选择要应用调整偏移的候选。Furthermore, the adjustment offset can be applied to all candidates included in the motion information prediction candidate group, or it can be applied to only some candidates. In the example described later, it is assumed that all candidates included in the candidate group can be applied, but the candidates to which the adjustment offset is applied can be selected from a number between 0, 1, or 2 and the maximum number of candidates.
可以支持用于将调整偏移应用于运动矢量预测值的预定标志。可以通过偏移应用标志、偏移绝对值信息、偏移符号信息等来配置预定标志。Predefined flags can be used to apply adjustment offsets to motion vector prediction values. These flags can be configured via offset application flags, absolute offset value information, offset sign information, and more.
如果不支持调整偏移,则可以省略该处理和调整偏移信息。If offset adjustment is not supported, this processing and offset adjustment information can be omitted.
可以通过运动矢量预测值来重构目标块的运动矢量S1930。可以基于预测候选索引来获得除了运动矢量之外的运动信息(例如,参考图片、参考方向等)。The motion vector S1930 of the target block can be reconstructed using the predicted motion vector values. Motion information other than the motion vector (e.g., reference image, reference direction, etc.) can be obtained based on the predicted candidate index.
配置和顺序不限于此,而是可以进行各种改变。上面已经通过竞争模式的各种示例描述了在合并模式下用于支持调整偏移的背景描述,并且因此将省略其详细描述。The configuration and order are not limited to this and can be changed in various ways. The background description for supporting offset adjustment in merge mode has been described above with various examples of competition mode, and therefore its detailed description will be omitted.
本公开内容的方法可以被实现为可由各种计算机装置执行并且被存储在计算机可读介质中的程序指令。该计算机可读介质可以单独地或组合地包括程序指令、数据文件和数据结构。记录在计算机可读介质上的程序指令可以针对本公开内容而专门设计,或者对于计算机软件领域的技术人员是已知的,并且因此是可用的。The methods of this disclosure can be implemented as program instructions executable by various computer devices and stored in a computer-readable medium. The computer-readable medium may include program instructions, data files, and data structures, individually or in combination. The program instructions recorded on the computer-readable medium may be specifically designed for this disclosure or are known to and therefore usable by one of skill in the art of computer software.
该计算机可读介质可以包括特别适于存储和执行程序指令的硬件装置,例如只读存储器(ROM)、随机存取存储器(RAM)、闪存等。程序指令可以包括由编译器产生的机器语言代码或可以在计算机中由解释器执行的高级语言代码。上述硬件装置可以被配置成作为一个或更多个软件模块进行操作,以执行根据本公开内容的操作,并且反之亦然。The computer-readable medium may include hardware devices particularly suitable for storing and executing program instructions, such as read-only memory (ROM), random access memory (RAM), flash memory, etc. The program instructions may include machine language code generated by a compiler or high-level language code that can be executed by an interpreter in a computer. The aforementioned hardware devices may be configured to operate as one or more software modules to perform operations according to this disclosure, and vice versa.
此外,可以以其配置或功能的全部或部分组合或分离来实现上述方法或设备。Furthermore, the above-described methods or devices can be implemented by combining or separating all or part of their configurations or functions.
尽管以上已经参考本公开内容的优选实施方式描述了本公开内容,但是本领域技术人员将理解,可以在不脱离本公开内容的范围和精神的情况下对本公开内容进行各种修改和变型。Although the present disclosure has been described above with reference to preferred embodiments thereof, those skilled in the art will understand that various modifications and variations may be made to the present disclosure without departing from the scope and spirit of the present disclosure.
工业适用性Industrial applicability
本发明可以用于对视频信号进行编码/解码。This invention can be used to encode/decode video signals.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2018-0114536 | 2018-09-24 | ||
| KR10-2018-0114540 | 2018-09-24 | ||
| KR10-2018-0114539 | 2018-09-24 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| HK40111368A true HK40111368A (en) | 2025-01-03 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12219148B2 (en) | Image encoding/decoding method and device | |
| HK40109853A (en) | Image encoding/decoding method and data transmitting method | |
| HK40110780A (en) | Image encoding/decoding method and method of transmitting bitstream | |
| HK40111368A (en) | Image encoding/decoding method and data transmitting method | |
| HK40111369A (en) | Image encoding/decoding method and data transmitting method | |
| HK40110208A (en) | Image encoding/decoding method and data transmitting method | |
| HK40109854A (en) | Image encoding/decoding method, method of transmitting bitstream and data transmitting method | |
| HK40110858A (en) | Image encoding/decoding method, method of transmitting bitstream and data transmitting method | |
| HK40109855A (en) | Image encoding/decoding method, method of transmitting bitstream and data transmitting method | |
| HK40110204A (en) | Image encoding/decoding method, method of transmitting bitstream and data transmitting method | |
| HK40114617A (en) | Inter prediction method and recording medium | |
| HK40114288A (en) | Image encoding/decoding method and apparatus | |
| HK40114646A (en) | Inter prediction method and recording medium | |
| HK40114298A (en) | Inter prediction method and recording medium | |
| HK40114642A (en) | Image encoding/decoding method and apparatus | |
| HK40114643A (en) | Image encoding/decoding method and apparatus |