Image encoding / decoding method and apparatus, and recording medium on which bit stream is stored
By performing candidate list processing of bidirectional prediction and multi-assumption prediction modes in image decoding methods and devices, the problem of low inter prediction accuracy and compression efficiency in image encoding and decoding is solved, and more efficient image compression is achieved.
Patent Information
- Application Number
- CN202380068990.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-09-28
- Filing Date
- 2023-10-04
- Publication Date
- 2025-04-29
AI Technical Summary
In the prior art, when performing image encoding and decoding, it is difficult to effectively utilize the multi-assumption prediction mode, resulting in low accuracy and compression efficiency of inter-frame prediction.
By performing bidirectional prediction in the image decoding method and device, a candidate list of multi-assumption prediction is configured, motion information is derived based on the candidate list, additional prediction blocks are generated, and the basic prediction blocks and additional prediction blocks are weighted to generate the final prediction blocks.
The accuracy of inter prediction is improved, signaling bits are reduced, and image compression efficiency is increased.
Smart Images

Figure CN119908114A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to an image encoding / decoding method and apparatus and a recording medium storing a bit stream. Background Art
[0002] Recently, demands for high-resolution and high-quality images such as HD (High Definition) images and UHD (Ultra High Definition) images have been increasing in various application fields, and therefore, efficient image compression technology is being discussed.
[0003] There are various technologies, such as inter-frame prediction technology that uses video compression technology to predict pixel values included in the current picture from pictures before or after the current picture, intra-frame prediction technology that predicts pixel values included in the current picture by using pixel information in the current picture, entropy coding technology that assigns short symbols to values with high occurrence frequency and assigns long symbols to values with low occurrence frequency, etc., and these image compression technologies can be used to effectively compress image data and transmit or store it. Summary of the invention
[0004] Technical issues
[0005] The present disclosure provides a method and apparatus for performing inter-frame prediction based on multiple hypothesis prediction modes.
[0006] The present disclosure is to provide a method and apparatus for reordering / refining a motion information candidate list for a multi-hypothesis prediction mode.
[0007] The present disclosure is to provide a method and apparatus for reordering / refining a weight candidate list for a multi-hypothesis prediction mode.
[0008] The present disclosure is to provide a method and apparatus for reordering / refining an interpolation filter candidate list for a multi-hypothesis prediction mode.
[0009] Technical Solution
[0010] The image decoding method and device according to the present disclosure can perform bidirectional prediction to generate a basic prediction block of a current block, configure a candidate list for multi-hypothesis prediction, derive motion information of the current block based on the candidate list, generate an additional prediction block of the current block based on the motion information, and perform a weighted sum of the basic prediction block and the additional prediction block to generate a final prediction block of the current block.
[0011] In the image decoding method and apparatus according to the present disclosure, candidates included in the candidate list may be reordered based on costs.
[0012] In the image decoding method and apparatus according to the present disclosure, a candidate index indicating motion information of a current block may be obtained in the reordered candidate list.
[0013] In the image decoding method and apparatus according to the present disclosure, the cost of the candidate may be calculated based on the difference between the template region of the block specified by the candidate and the template region of the current block.
[0014] In the image decoding method and apparatus according to the present disclosure, the sum of absolute differences (SAD) or the sum of absolute transformed differences (SATD) may be used to calculate the difference.
[0015] In the image decoding method and apparatus according to the present disclosure, the cost of the candidate may be calculated based on the difference between the basic prediction block and the block specified by the candidate.
[0016] In the image decoding method and apparatus according to the present disclosure, refinement may be performed on motion information of a candidate indicated by a candidate index.
[0017] The image encoding method and device according to the present disclosure can perform bidirectional prediction to generate a basic prediction block of a current block, configure a candidate list for multi-hypothesis prediction, determine motion information of the current block based on the candidate list, generate an additional prediction block of the current block based on the motion information, and perform a weighted sum of the basic prediction block and the additional prediction block to generate a final prediction block of the current block.
[0018] A computer-readable digital storage medium is provided, which stores encoded video / image information, resulting in execution of an image decoding method due to a decoding device according to the present disclosure.
[0019] A computer-readable digital storage medium storing video / image information generated according to an image encoding method according to the present disclosure is provided.
[0020] A method and apparatus for transmitting video / image information generated according to an image encoding method according to the present disclosure are provided.
[0021] Technical Effects
[0022] The present disclosure may improve the accuracy of prediction by performing inter-frame prediction based on multiple hypothesis prediction modes.
[0023] The present disclosure may reduce signaling bits and increase compression efficiency by reordering / refining motion information candidate lists for multiple hypothesis prediction modes.
[0024] The present disclosure may increase the accuracy of signaling prediction and increase compression efficiency by reordering / refining the weight candidate list for multiple hypothesis prediction modes.
[0025] The present disclosure may increase the accuracy of signaling prediction and increase compression efficiency by reordering / refining the interpolation filter candidate list for multiple hypothesis prediction modes. BRIEF DESCRIPTION OF THE DRAWINGS
[0026] Figure 1 A video / image compilation system according to the present disclosure is shown.
[0027] Figure 2 A rough block diagram of an encoding device to which an embodiment of the present disclosure can be applied and which performs encoding of a video / image signal is shown.
[0028] Figure 3 A rough block diagram of a decoding device to which an embodiment of the present disclosure can be applied and which performs decoding of a video / image signal is shown.
[0029] Figure 4 An example of a video / image encoding method based on inter-frame prediction to which an embodiment of the present disclosure can be applied is shown.
[0030] Figure 5 An example of a video / image decoding method based on inter-frame prediction to which an embodiment of the present disclosure can be applied is shown.
[0031] Figure 6 An inter-frame prediction process to which the embodiments of the present disclosure can be applied is illustratively shown.
[0032] Figure 7 An inter-frame prediction method performed by the decoding device 300 according to an embodiment of the present disclosure is shown.
[0033] Figure 8 is a flowchart illustrating an inter-frame prediction method based on multi-hypothesis prediction according to an embodiment of the present disclosure.
[0034] Fig. 9 is a diagram illustrating a reference block used for multi-hypothesis prediction according to an embodiment of the present disclosure.
[0035] Fig.10 is a diagram for describing a motion information derivation method for an additional prediction block according to an embodiment of the present disclosure.
[0036] Fig.11 is a diagram for describing a cost calculation method for multi-hypothesis prediction according to an embodiment of the present disclosure.
[0037] Fig.12 is a diagram for describing a cost calculation method for multi-hypothesis prediction according to an embodiment of the present disclosure.
[0038] Fig.13 A rough configuration of the inter-frame predictor 332 that performs the inter-frame prediction method according to the present disclosure is shown.
[0039] Fig.14 An inter-frame prediction method performed by the encoding apparatus 200 as an embodiment according to the present disclosure is shown.
[0040] Fig.15 A rough configuration of the inter-frame predictor 221 performing the inter-frame prediction method according to the present disclosure is shown.
[0041] Fig.16 An example of a content streaming system to which an embodiment of the present disclosure can be applied is shown. DETAILED DESCRIPTION
[0042] Because the present disclosure can make various changes and has several embodiments, specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, it is not intended to limit the present disclosure to specific embodiments, and it should be understood to include all changes, equivalents and substitutes included in the spirit and technical scope of the present disclosure. While describing each of the accompanying drawings, similar reference numerals are used for similar components.
[0043] Terms such as first, second, etc. can be used to describe various components, but components should not be limited by these terms. These terms are only used to distinguish one component from other components. For example, without departing from the scope of the present disclosure, a first component can be referred to as a second component, and similarly, a second component can also be referred to as a first component. Terms and / or combinations of any one or more related statement items in a plurality of related statement items are included.
[0044] When a component is referred to as being "connected" or "linked" to another component, it should be understood that it can be directly connected or linked to another component, but another component may also exist in between. On the other hand, when a component is referred to as being "directly connected" or "directly linked" to another component, it should be understood that another component does not exist in between.
[0045] The terms used in this application are only used to describe specific embodiments and are not intended to limit the present disclosure. Unless the context clearly indicates otherwise, singular expressions include plural expressions. In this application, it should be understood that terms such as "including" or "having" are intended to designate the existence of features, numbers, steps, operations, components, parts or combinations thereof described in the specification, but do not exclude the possibility of the existence or addition of one or more other features, numbers, steps, operations, components, parts or combinations thereof in advance.
[0046] The present disclosure relates to video / image coding. For example, the methods / embodiments disclosed herein may be applied to methods disclosed in the Universal Video Coding (VVC) standard. In addition, the methods / embodiments disclosed herein may be applied to methods disclosed in the Basic Video Coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the second generation audio video coding standard (AVS2), or the next generation video / image coding standard (e.g., H.267 or H.268, etc.).
[0047] This specification proposes various embodiments of video / image coding, and unless otherwise stated, these embodiments may be performed in combination with each other.
[0048] Here, video may refer to a collection of a series of images over time. A picture generally refers to a unit representing an image within a specific time period, and a slice / tile is a unit that forms a part of a picture in coding. A slice / tile may include at least one coding tree unit (CTU). A picture may consist of at least one slice / tile. A tile is a rectangular area consisting of multiple CTUs within a specific tile column and a specific tile row of a picture. A tile column is a rectangular area of a CTU having the same height as the picture and a width assigned by the syntax requirements of the picture parameter set. A tile row is a rectangular area of a CTU having a height assigned by the picture parameter set and the same width as the width of the picture. The CTU within a tile may be arranged continuously according to a CTU raster scan, and the tiles within a picture may be arranged continuously according to a raster scan of the tile. A slice may include an integer number of complete tiles or an integer number of continuous complete CTU rows within a tile of a picture that may be exclusively included in a single NAL unit. At the same time, a picture may be divided into at least two sub-pictures. A sub-picture may be a rectangular area of at least one slice within a picture.
[0049] Pixel, pixel or picture element may refer to the smallest unit constituting a picture (or image). In addition, "sample" may be used as a term corresponding to a pixel. A sample may generally represent a pixel or a pixel value, and may represent only a pixel / pixel value of a luminance component, or only a pixel / pixel value of a chrominance component.
[0050] A unit may represent a basic unit of image processing. A unit may include at least one of a specific region of a picture and information associated with the corresponding region. A unit may include a luminance block and two chrominance (e.g., cb, cr) blocks. In some cases, a unit may be used interchangeably with terms such as a block or region. In general, an MxN block may include a set (or array) of transform coefficients or samples (or sample arrays) consisting of M columns and N rows.
[0051] Here, "A or B" may refer to "only A", "only B", or "both A and B". In other words, herein, "A or B" may be interpreted as "A and / or B". For example, herein, "A, B or C" may refer to "only A", "only B", "only C", or "any combination of A, B, and C".
[0052] As used herein, a slash ( / ) or a comma may mean "and / or". For example, "A / B" may mean "A and / or B". Thus, "A / B" may mean "only A", "only B", or "both A and B". For example, "A, B, C" may mean "A, B, or C".
[0053] Here, "at least one of A and B" may refer to "only A", "only B", or "both A and B". In addition, herein, expressions such as "at least one of A or B" or "at least one of A and / or B" can be interpreted in the same manner as "at least one of A and B".
[0054] In addition, herein, “at least one of A, B, and C” may refer to “only A”, “only B”, “only C”, or “any combination of A, B, and C”. In addition, “at least one of A, B, or C” or “at least one of A, B and / or C” may refer to “at least one of A, B, and C”.
[0055] In addition, the brackets used herein may refer to "for example". Specifically, when the indication is "prediction (intra-frame prediction)", "intra-frame prediction" may be proposed as an example of "prediction". In other words, the "prediction" here is not limited to "intra-frame prediction", and "intra-frame prediction" may be proposed as an example of "prediction". In addition, even when the indication is "prediction (ie, intra-frame prediction)", "intra-frame prediction" may be proposed as an example of "prediction".
[0056] Here, technical features described individually in one drawing may be implemented individually or simultaneously.
[0057] Figure 1 A video / image compilation system according to the present disclosure is shown.
[0058] refer to Figure 1 , a video / image coding system may include a first device (source device) and a second device (receiving device).
[0059] The source device may send the encoded video / image information or data to the receiving device in the form of a file or stream transmission through a digital storage medium or a network. The source device may include a video source, an encoding device, and a sending unit. The receiving device may include a receiving unit, a decoding device, and a renderer. The encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may include a display unit, and the display unit may be composed of a separate device or an external component.
[0060] The video source may obtain the video / image through the process of capturing, synthesizing or generating the video / image. The video source may include a device for capturing the video / image and a device for generating the video / image. The device for capturing the video / image may include at least one camera, a video / image archive including previously captured videos / images, etc. The device for generating the video / image may include a computer, a tablet computer, a smart phone, etc., and may (electronically) generate the video / image. For example, a virtual video / image may be generated by a computer, etc., and in this case, the process of capturing the video / image may be replaced by the process of generating the relevant data.
[0061] The encoding device can encode the input video / image. The encoding device can perform a series of processes such as prediction, transformation, quantization, etc. for compression and coding efficiency. The encoded data (encoded video / image information) can be output in the form of a bitstream.
[0062] The sending unit may send the encoded video / image information or data output in the form of a bit stream to the receiving unit of the receiving device in the form of a file or stream transmission through a digital storage medium or a network. The digital storage medium may include various storage media, such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The sending unit may include an element for generating a media file in a predetermined file format and may include an element for transmission through a broadcast / communication network. The receiving unit may receive / extract a bit stream and send it to a decoding device.
[0063] The decoding device may decode the video / image by performing a series of processes corresponding to the operations of the encoding device, such as dequantization, inverse transformation, prediction, etc.
[0064] The renderer may render the decoded video / image. The rendered video / image may be displayed through a display unit.
[0065] Figure 2 A rough block diagram of an encoding device to which an embodiment of the present disclosure can be applied and which performs encoding of a video / image signal is shown.
[0066] refer to Figure 2 , the encoding device 200 may be composed of an image segmenter 210, a predictor 220, a residual processor 230, an entropy encoder 240, an adder 250, a filter 260, and a memory 270. The predictor 220 may include an inter-frame predictor 221 and an intra-frame predictor 222. The residual processor 230 may include a transformer 232, a quantizer 233, a dequantizer 234, and an inverse transformer 235. The residual processor 230 may further include a subtractor 231. The adder 250 may be referred to as a reconstructor or a reconstructed block generator. According to an embodiment, the above-mentioned image segmenter 210, the predictor 220, the residual processor 230, the entropy encoder 240, the adder 250, and the filter 260 may be configured by at least one hardware component (e.g., an encoder chipset or processor). In addition, the memory 270 may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware component may further include a memory 270 as an internal / external component.
[0067] The image divider 210 may divide the input image (or picture, frame) input to the encoding device 200 into at least one processing unit. As an example, the processing unit may be referred to as a coding unit (CU). In this case, the coding unit may be recursively divided from a coding tree unit (CTU) or a maximum coding unit (LCU) according to a quadtree binary tree ternary tree (QTBTTT) structure.
[0068] For example, one coding unit may be segmented into a plurality of coding units having a deeper depth based on a quadtree structure, a binary tree structure, and / or a ternary structure. In this case, for example, the quadtree structure may be applied first, and the binary tree structure and / or the ternary structure may be applied later. Alternatively, the binary tree structure may be applied before the quadtree structure. The coding process according to this specification may be performed based on a final coding unit that is no longer segmented. In this case, based on coding efficiency according to image characteristics, etc., the maximum coding unit may be directly used as the final coding unit, or if necessary, the coding unit may be recursively segmented into coding units of a deeper depth, and the coding unit with the best size may be used as the final coding unit. Here, the coding process may include processes such as prediction, transformation, and reconstruction described later.
[0069] As another example, the processing unit may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit may be divided or partitioned from the above-mentioned final coding unit, respectively. The prediction unit may be a unit of sample prediction, and the transform unit may be a unit for deriving a transform coefficient and / or a unit for deriving a residual signal from the transform coefficient.
[0070] In some cases, a unit may be used interchangeably with terms such as a block or region. In general, an MxN block may represent a set of transform coefficients or samples consisting of M columns and N rows. A sample may generally represent a pixel or a pixel value, and may represent only a pixel / pixel value of a luma component, or only a pixel / pixel value of a chroma component. A sample may be used as a term to make a picture (or image) correspond to a pixel or a picture element.
[0071] The encoding device 200 may subtract the prediction signal (prediction block, prediction sample array) output from the inter predictor 221 or the intra predictor 222 from the input image signal (original block, original sample array) to generate a residual signal (residual signal, residual sample array), and the generated residual signal is transmitted to the transformer 232. In this case, a unit that subtracts the prediction signal (prediction block, prediction sample array) from the input image signal (original block, original sample array) within the encoding device 200 may be referred to as a subtractor 231.
[0072] The predictor 220 may perform prediction on a block to be processed (hereinafter referred to as a current block) and generate a predicted block including a prediction sample for the current block. The predictor 220 may determine whether intra prediction or inter prediction is applied in units of a current block or CU. The predictor 220 may generate various information about the prediction, such as prediction mode information, and send it to the entropy encoder 240, as described later in the description of each prediction mode. The information about the prediction may be encoded in the entropy encoder 240 and output in the form of a bitstream.
[0073] The intra-frame predictor 222 can predict the current block by referring to the samples in the current picture. Depending on the prediction mode, the referenced sample can be located near the current block or can be located at a certain distance away from the current block. In intra-frame prediction, the prediction mode may include at least one non-directional mode and multiple directional modes. The non-directional mode may include at least one of the DC mode or the plane mode. Depending on the detail level of the prediction direction, the directional mode may include 33 directional modes or 65 directional modes. However, this is only an example, and more or less directional modes may be used depending on the configuration. The intra-frame predictor 222 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.
[0074] The inter-frame predictor 221 may derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information sent in the inter-frame prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter-frame prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). For inter-frame prediction, the neighboring blocks may include spatial neighboring blocks present in the current picture and temporal neighboring blocks present in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The temporal neighboring block may be referred to as a collocated reference block, a collocated CU (colCU), etc., and the reference picture including the temporal neighboring block may be referred to as a collocated picture (colPic). For example, the inter-frame predictor 221 may configure a motion information candidate list based on the neighboring blocks, and generate information indicating which candidate is used to derive the motion vector and / or reference picture index of the current block. Inter prediction may be performed based on various prediction modes, and for example, for skip mode and merge mode, the inter predictor 221 may use motion information of neighboring blocks as motion information of the current block. For skip mode, unlike merge mode, a residual signal may not be transmitted. For motion vector prediction (MVP) mode, motion vectors of surrounding blocks are used as motion vector predictors, and a motion difference is signaled to indicate the motion vector of the current block.
[0075] The predictor 220 may generate a prediction signal based on various prediction methods described later. For example, the predictor may not only apply intra prediction or inter prediction to predict a block, but may also apply intra prediction and inter prediction at the same time. It may be referred to as a combined inter and intra prediction (CIIP) mode. In addition, the predictor may be based on an intra block copy (IBC) prediction mode or may be based on a palette mode for prediction of a block. The IBC prediction mode or the palette mode may be used for content image / video coding of games, such as screen content coding (SCC), etc. IBC basically performs prediction within the current picture, but it may be performed similarly to inter prediction because it derives a reference block within the current picture. In other words, IBC may use at least one of the inter prediction techniques described herein. The palette mode may be considered an example of intra coding or intra prediction. When the palette mode is applied, the sample values within the picture may be signaled based on information about the palette table and the palette index. The prediction signal generated by the predictor 220 may be used to generate a reconstructed signal or a residual signal.
[0076] The transformer 232 may generate transform coefficients by applying a transform technique to the residual signal. For example, the transform technique may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loève transform (KLT), a graph-based transform (GBT), or a conditional nonlinear transform (CNT). Here, GBT refers to a transform obtained from a graph when relationship information between pixels is expressed as a graph. CNT refers to a transform obtained based on generating a prediction signal using all previously reconstructed pixels. In addition, the transform process may be applied to square pixel blocks of the same size or may be applied to non-square blocks of variable size.
[0077] The quantizer 233 may quantize the transform coefficients and send them to the entropy encoder 240, and the entropy encoder 240 may encode the quantized signal (information about the quantized transform coefficients) and output it as a bitstream. The information about the quantized transform coefficients may be referred to as residual information. The quantizer 233 may rearrange the quantized transform coefficients in the block form into a one-dimensional vector form based on the coefficient scanning order, and may generate information about the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form.
[0078] The entropy encoder 240 may perform various encoding methods such as Exponential Golomb, Context Adaptive Variable Length Coding (CAVLC), Context Adaptive Binary Arithmetic Coding (CABAC), etc. The entropy encoder 240 may encode information necessary for video / video image reconstruction (e.g., values of syntax elements, etc.) in addition to transform coefficients quantized together or individually.
[0079] The encoded information (e.g., encoded video / image information) can be transmitted or stored in units of network abstraction layer (NAL) units in the form of a bitstream. The video / image information may further include information about various parameter sets such as an adaptive parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may further include general constraint information. Here, information and / or syntax elements transmitted / signaled from the encoding device to the decoding device may be included in the video / image information. The video / image information may be encoded and included in the bitstream through the above-mentioned encoding process. The bitstream may be transmitted through a network or may be stored in a digital storage medium. Here, the network may include a broadcast network and / or a communication network, etc., and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmission unit (not shown) for transmission and / or a storage unit (not shown) for storing a signal output from the entropy encoder 240 may be configured as an internal / external element of the encoding device 200, or the transmission unit may also be included in the entropy encoder 240.
[0080] The quantized transform coefficients output from the quantizer 233 can be used to generate a prediction signal. For example, the residual signal (residual block or residual sample) can be reconstructed by applying dequantization and inverse transform to the quantized transform coefficients through the dequantizer 234 and the inverse transformer 235. The adder 250 can add the reconstructed residual signal to the prediction signal output from the inter-frame predictor 221 or the intra-frame predictor 222 to generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array). When there is no residual of the block to be processed, such as when the skip mode is applied, the prediction block can be used as a reconstructed block. The adder 250 can be referred to as a reconstructor or a reconstructed block generator. The generated reconstructed signal can be used for intra-frame prediction of the next block to be processed in the current picture, and can also be used for inter-frame prediction of the next picture through filtering described later. At the same time, luminance mapping with chroma scaling (LMCS) can be applied in the picture encoding and / or reconstruction process.
[0081] The filter 260 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, the filter 260 can generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and the modified reconstructed picture can be stored in the memory 270, specifically in the DPB of the memory 270. Various filtering methods may include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The filter 260 can generate various information about filtering and send it to the entropy encoder 240. The information about filtering can be encoded in the entropy encoder 240 and output in the form of a bit stream.
[0082] The modified reconstructed picture transmitted to the memory 270 may be used as a reference picture in the inter predictor 221. When inter prediction is applied therethrough, the encoding apparatus can avoid prediction mismatch in the encoding apparatus 200 and the decoding apparatus, and can also improve encoding efficiency.
[0083] The DPB of the memory 270 may store the modified reconstructed picture to be used as a reference picture in the inter-frame predictor 221. The memory 270 may store the motion information of the block from which the motion information in the current picture is derived (or encoded) and / or the motion information of the block in the pre-reconstructed picture. The stored motion information may be sent to the inter-frame predictor 221 to be used as the motion information of the spatial neighboring block or the motion information of the temporal neighboring block. The memory 270 may store the reconstructed samples of the reconstructed block in the current picture and send them to the intra-frame predictor 222.
[0084] Figure 3 A rough block diagram of a decoding device to which an embodiment of the present disclosure can be applied and which performs decoding of a video / image signal is shown.
[0085] refer to Figure 3 , the decoding device 300 may be configured by including an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an inter-frame predictor 331 and an intra-frame predictor 332. The residual processor 320 may include a dequantizer 321 and an inverse transformer 321.
[0086] According to an embodiment, the above-mentioned entropy decoder 310, residual processor 320, predictor 330, adder 340 and filter 350 may be configured by one hardware component (e.g., decoder chipset or processor). In addition, the memory 360 may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware component may further include the memory 360 as an internal / external component.
[0087] When a bit stream including video / image information is input, the decoding device 300 may respond to the Figure 2 The image is reconstructed by a process of processing video / image information in an encoding device. For example, the decoding device 300 can derive a unit / block based on relevant information of block segmentation obtained from a bitstream. The decoding device 300 can perform decoding by using a processing unit applied in the encoding device. Therefore, the processing unit of decoding can be a coding unit, and the coding unit can be divided from a coding tree unit or a maximum coding unit according to a quadtree structure, a binary tree structure and / or a ternary tree structure. At least one transform unit can be derived from the coding unit. And, the reconstructed image signal decoded and output by the decoding device 300 can be played by a playback device.
[0088] The decoding device 300 may receive the bit stream from Figure 2 The received signal can be decoded by the entropy decoder 310. For example, the entropy decoder 310 can parse the bitstream to derive information (e.g., video / image information) necessary for image reconstruction (or picture reconstruction). The video / image information may further include information about various parameter sets such as an adaptive parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may further include general constraint information. The decoding device may further decode the picture based on the information about the parameter set and / or the general constraint information. The signaled / received information and / or the syntax elements described later in this document may be decoded and obtained from the bitstream by a decoding process. For example, the entropy decoder 310 may decode the information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, CABAC, etc., and output the values of the syntax elements necessary for image reconstruction and the quantized values of the transform coefficients of the residual. In more detail, the CABAC entropy decoding method can receive a bin corresponding to each syntax element from a bitstream, determine a context model by using information of syntax elements to be decoded, decoding information of surrounding blocks and blocks to be decoded, or information of symbols / bins decoded in the previous step, perform arithmetic decoding on bins by predicting the probability of occurrence of bins according to the determined context model, and generate symbols corresponding to the values of each syntax element. In this case, after determining the context model, the CABAC entropy decoding method can update the context model by using information about decoded symbols / bins of the context model for the next symbol / bin. Among the information decoded in the entropy decoder 310, information about prediction is provided to the predictor (inter-frame predictor 332 and intra-frame predictor 331), and the residual value, that is, the quantized transform coefficient and related parameter information, which is entropy decoded in the entropy decoder 310, can be input to the residual processor 320. The residual processor 320 can derive a residual signal (residual block, residual sample, residual sample array). In addition, information about filtering among the information decoded in the entropy decoder 310 can be provided to the filter 350. Meanwhile, a receiving unit (not shown) that receives a signal output from the encoding device may be further configured as an internal / external element of the decoding device 300 or the receiving unit may be a component of the entropy decoder 310 .
[0089] Meanwhile, the decoding device according to this specification may be referred to as a video / image / picture decoding device, and the decoding device may be divided into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder may include an entropy decoder 310, and the sample decoder may include at least one of a dequantizer 321, an inverse transformer 322, an adder 340, a filter 350, a memory 360, an inter-frame predictor 332, and an intra-frame predictor 331.
[0090] The dequantizer 321 may dequantize the quantized transform coefficients and output the transform coefficients. The dequantizer 321 may rearrange the quantized transform coefficients into a two-dimensional block form. In this case, the rearrangement may be performed based on the coefficient scanning order performed in the encoding device. The dequantizer 321 may dequantize the quantized transform coefficients by using a quantization parameter (e.g., quantization step size information) and obtain the transform coefficients.
[0091] The inverse transformer 322 inversely transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).
[0092] The predictor 320 may perform prediction on the current block and generate a prediction block including prediction samples for the current block. The predictor 320 may determine whether to apply intra prediction or inter prediction to the current block based on the information on prediction output from the entropy decoder 310, and determine a specific intra / inter prediction mode.
[0093] The predictor 320 can generate a prediction signal based on various prediction methods described later. For example, the predictor 320 can not only apply intra prediction or inter prediction to predict a block, but also apply intra prediction and inter prediction at the same time. It can be called a combined inter and intra prediction (CIIP) mode. In addition, the predictor can be based on an intra block copy (IBC) prediction mode or can be based on a palette mode for prediction of a block. The IBC prediction mode or the palette mode can be used for content image / video coding of games, such as screen content coding (SCC), etc. IBC basically performs prediction within the current picture, but it can be performed similarly to inter prediction because it derives a reference block within the current picture. In other words, IBC can use at least one of the inter prediction techniques described herein. The palette mode can be considered as an example of intra coding or intra prediction. When the palette mode is applied, information about the palette table and the palette index can be included in the video / image information and sent with a signal.
[0094] The intra-frame predictor 331 can predict the current block by referring to samples within the current picture. Depending on the prediction mode, the referenced sample can be located near the current block or can be located at a certain distance away from the current block. In intra-frame prediction, the prediction mode may include at least one non-directional mode and multiple directional modes. The intra-frame predictor 331 can determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring block.
[0095] The inter-frame predictor 332 may derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information sent in the inter-frame prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter-frame prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). For inter-frame prediction, the neighboring blocks may include spatial neighboring blocks present in the current picture and temporal neighboring blocks present in the reference picture. For example, the inter-frame predictor 332 may configure a motion information candidate list based on the neighboring blocks, and derive a motion vector and / or a reference picture index for the current block based on the received candidate selection information. Inter-frame prediction may be performed based on various prediction modes, and information about the prediction may include information indicating an inter-frame prediction mode for the current block.
[0096] The adder 340 may add the obtained residual signal to the prediction signal (prediction block, prediction sample array) output from the predictor (including the inter-frame predictor 332 and / or the intra-frame predictor 331) to generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array). When there is no residual of the block to be processed, such as when the skip mode is applied, the prediction block may be used as the reconstructed block.
[0097] The adder 340 may be referred to as a reconstructor or a reconstructed block generator. The generated reconstructed signal may be used for intra prediction of the next block to be processed in the current picture, may be output through filtering described later, or may be used for inter prediction of the next picture. At the same time, luminance mapping with chroma scaling (LMCS) may be applied during picture decoding.
[0098] The filter 350 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, the filter 350 can generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and send the modified reconstructed picture to the memory 360, specifically the DPB of the memory 360. The various filtering methods may include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
[0099] The (modified) reconstructed picture stored in the DPB of the memory 360 can be used as a reference picture in the inter-frame prediction unit 332. The memory 360 can be derived from the motion information in its current picture (or decoded) The motion information of the block and / or the motion information of the block in the pre-reconstructed picture. The stored motion information can be sent to the inter-frame predictor 260 to be used as the motion information of the spatial neighboring block or the motion information of the temporal neighboring block. The memory 360 can store the reconstructed samples of the reconstructed block in the current picture and send them to the intra-frame predictor 331.
[0100] Here, the embodiments described in the filter 260, the inter-frame predictor 221, and the intra-frame predictor 222 of the encoding device 200 may also be equally or correspondingly applied to the filter 350, the inter-frame predictor 332, and the intra-frame predictor 331 of the decoding device 300, respectively.
[0101] Meanwhile, when inter prediction is applied, the predictor of the encoding device / decoding device can perform inter prediction in units of blocks to derive prediction samples. Inter prediction may refer to prediction derived in a manner that depends on data elements (e.g., sample values or motion information) of pictures other than the current picture. When inter prediction is applied to the current block, a prediction block (prediction sample array) for the current block may be derived based on a reference block (reference sample array) specified by a motion vector on a reference picture indicated by a reference picture index.
[0102] In this case, in order to reduce the amount of motion information sent in the inter-frame prediction mode, the motion information of the current block can be predicted in units of blocks, sub-blocks or samples based on the correlation of the motion information between the neighboring blocks and the current block. The motion information may include a motion vector and / or a reference picture index. The motion information may further include information about the inter-frame prediction type (L0 prediction, L1 prediction, Bi prediction, etc.). When inter-frame prediction is applied, the neighboring blocks may include spatial neighboring blocks existing in the current picture and temporal neighboring blocks existing in the reference picture.
[0103] The reference picture including the reference block may be the same as or different from the reference picture including the temporally neighboring block. The temporally neighboring block may be referred to as a co-located reference block, a co-located CU (colCU), etc., and the reference picture including the temporally neighboring block may be referred to as a co-located picture (colPic). For example, a motion information candidate list may be configured based on the neighboring blocks of the current block, and a flag or index information indicating which candidate is selected (used) to derive the motion vector and / or reference picture index of the current block may be signaled.
[0104] Inter-frame prediction may be performed based on various prediction modes, and for example, for skip mode and merge mode, the motion information of the current block may be the same as the motion information of the selected neighboring block. For skip mode, unlike merge mode, a residual signal may not be sent. For motion vector prediction (MVP) mode, the motion vector of the selected neighboring block may be used as a motion vector predictor, and the motion vector difference may be signaled. In this case, the motion vector of the current block may be derived by using the sum of the motion vector predictor and the motion vector difference.
[0105] Depending on the inter-frame prediction type (L0 prediction, L1 prediction, Bi prediction, etc.), the motion information may include L0 motion information and / or L1 motion information. The motion vector in the L0 direction may be referred to as an L0 motion vector or MVL0, and the motion vector in the L1 direction may be referred to as an L1 motion vector or MVL1. Prediction based on the L0 motion vector may be referred to as an L0 prediction, prediction based on the L1 motion vector may be referred to as an L1 prediction, and prediction based on both the L0 motion vector and the L1 motion vector may be referred to as a Bi prediction. Here, the L0 motion vector may represent a motion vector associated with the reference picture list L0 (L0), and the L1 motion vector may represent a motion vector associated with the reference picture list L1 (L1). The reference picture list L0 may include a picture before the current picture as a reference picture in output order, and the reference picture list L1 may include a picture after the current picture in output order. The previous picture may be referred to as a forward (reference) picture, and the subsequent picture may be referred to as a backward (reference) picture.
[0106] The reference picture list L0 may further include a picture after the current picture as a reference picture in the output order. In this case, within the reference picture list L0, the previous picture may be indexed first, and the subsequent picture may be indexed next. The reference picture list L1 may further include a picture before the current picture as a reference picture in the output order. In this case, within the reference picture list 1, the subsequent picture may be indexed first, and the previous picture may be indexed next. Here, the output order may correspond to a picture order count (POC) order.
[0107] For example, the video / image encoding process based on inter-frame prediction may generally include the following.
[0108] Figure 4 An example of a video / image encoding method based on inter-frame prediction to which an embodiment of the present disclosure can be applied is shown.
[0109] The encoding device may perform inter prediction on the current block S400. The encoding device may derive the inter prediction mode and motion information of the current block and generate prediction samples of the current block. Here, the processes of determining the inter prediction mode, deriving the motion information, and generating the prediction samples may be performed simultaneously, or any one of the processes may be performed before the other processes. For example, the inter predictor of the encoding device may include a prediction mode determination unit, a motion information deriving unit, and a prediction sample deriving unit, the prediction mode determination unit may determine the prediction mode for the current block, the motion information deriving unit may derive the motion information of the current block, and the prediction sample deriving unit may derive the prediction samples of the current block.
[0110] For example, the inter-frame predictor of the encoding device can search for a block similar to the current block in a specific area (search area) of the reference picture through motion estimation, and derive a reference block whose difference with the current block is the smallest or less than or equal to a specific standard. Based on this, a reference picture index indicating the reference picture where the reference block is located can be derived, and a motion vector can be derived based on the position difference between the reference block and the current block. The encoding device can determine the mode applied to the current block among various prediction modes. The encoding device can compare the RD costs for various prediction modes and determine the best prediction mode for the current block.
[0111] For example, when a skip mode or a merge mode is applied to the current block, the encoding device may configure a merge candidate list described below, and derive a reference block whose difference with the current block is the smallest or less than or equal to a specific standard among the reference blocks indicated by the merge candidates included in the merge candidate list. In this case, a merge candidate associated with the derived reference block may be selected, and merge index information indicating the selected merge candidate may be generated and sent to the decoding device by a signal. The motion information of the current block may be derived by using the motion information of the selected merge candidate.
[0112] As another example, when the (A) MVP mode is applied to the current block, the encoding device may configure the (A) MVP candidate list described below, and use the motion vector of the motion vector predictor (MVP) candidate selected from the motion vector predictor candidates included in the (A) MVP candidate list as the motion vector predictor of the current block. In this case, for example, the motion vector indicating the reference block derived by the above-mentioned motion estimation may be used as the motion vector of the current block, and the motion vector predictor candidate having the smallest difference between the motion vector of the current block and the motion vector predictor candidate among the motion vector predictor candidates may become the selected motion vector predictor candidate. A motion vector difference (MVD) may be derived, which is the difference obtained by subtracting the motion vector predictor from the motion vector of the current block. In this case, information about the MVD may be signaled to the decoding device. In addition, when the (A) MVP mode is applied, the value of the reference picture index may be configured as reference picture index information and signaled separately to the decoding device.
[0113] The encoding apparatus may derive residual samples based on the prediction samples S410. The encoding apparatus may derive residual samples by comparing original samples of the current block with the prediction samples.
[0114] The encoding device may encode the image information including prediction information and residual information S420. The encoding device can output the encoded image information in the form of a bitstream. The prediction information is information related to the prediction process, and may include prediction mode information (e.g., a skip flag, a merge flag, or a merge index, etc.) and / or motion information. The motion information may include candidate selection information (e.g., a merge index, an mvp flag, or an mvp index), which is information for deriving a motion vector. In addition, the motion information may include information about the above-mentioned MVD and / or reference picture index information. In addition, the motion information may include information indicating whether L0 prediction, L1 prediction, or dual prediction is applied. The residual information is information about the residual sample. The residual information may include information about the quantized transform coefficients used for the residual sample.
[0115] The output bitstream may be stored in a (digital) storage medium and sent to a decoding device, or may be sent to a decoding device over a network.
[0116] At the same time, as described above, the encoding device can generate a reconstructed picture (including a reconstructed sample and a reconstructed block) based on the reference sample and the residual sample. To derive the same prediction result as that performed in the decoding device in the encoding device, the coding efficiency can be improved. Therefore, the encoding device can store the reconstructed picture (or reconstructed sample, reconstructed block) in a memory and use it as a reference picture for inter-frame prediction. As described above, a loop filtering process, etc. can be further applied to the reconstructed picture.
[0117] For example, the video / image decoding process based on inter-frame prediction may generally include the following.
[0118] Figure 5 An example of a video / image decoding method based on inter-frame prediction to which an embodiment of the present disclosure can be applied is shown.
[0119] refer to Figure 5 The decoding device may perform operations corresponding to the operations performed in the encoding device. The decoding device may perform prediction on the current block based on the received prediction information and derive a prediction sample.
[0120] Specifically, the decoding device may determine a prediction mode for the current block based on the received prediction information S500. The decoding device may determine which inter prediction mode is applied to the current block based on prediction mode information in the prediction information.
[0121] For example, whether to apply the merge mode to the current block or whether to determine the (A) MVP mode may be determined based on the merge flag. Alternatively, one of various inter prediction mode candidates may be selected based on the mode index. The inter prediction mode candidate may include a skip mode, a merge mode, and / or an (A) MVP mode, or may include various inter prediction modes described below.
[0122] The decoding device may derive motion information of the current block based on the determined inter prediction mode S510. For example, when the skip mode or merge mode is applied to the current block, the decoding device may configure a merge candidate list described below and select one of the merge candidates included in the merge candidate list. The selection may be performed based on the above-mentioned selection information (merge index). The motion information of the current block may be derived by using the motion information of the selected merge candidate. The motion information of the selected merge candidate may be used as the motion information of the current block.
[0123] As another example, when the (A) MVP mode is applied to the current block, the decoding device may configure the (A) MVP candidate list described below, and use the motion vector of the motion vector predictor (MVP) candidate selected from among the motion vector predictor (MVP) candidates included in the (A) MVP candidate list as the MVP of the current block. The selection may be performed based on the selection information (MVP flag or MVP index) described above. In this case, the MVD of the current block may be derived based on the information about the MVD, and the motion vector of the current block may be derived based on the MVP and MVD of the current block. In addition, the reference picture index of the current block may be derived based on the reference picture index information. The picture indicated by the reference picture index in the reference picture list for the current block may be derived as a reference picture referenced for inter-frame prediction of the current block.
[0124] Meanwhile, as described below, the motion information of the current block may be derived without configuring the candidate list, and in this case, the motion information of the current block may be derived according to the process initiated in the prediction mode described below. In this case, the candidate list configuration as described above may be omitted.
[0125] The decoding device may generate a prediction sample for the current block based on the motion information of the current block S520. In this case, the reference picture may be derived based on the reference picture index of the current block, and the prediction sample of the current block may be derived by using the sample of the reference block indicated by the motion vector of the current block on the reference picture. In this case, as described below, in some cases, a prediction sample filtering process may be further performed on all or part of the prediction samples of the current block.
[0126] For example, the inter-frame predictor of the decoding device may include a prediction mode determination unit, a motion information export unit and a prediction sample export unit. The prediction mode determination unit can determine the prediction mode for the current block based on the received prediction mode information, the motion information export unit can export the motion information (motion vector and / or reference picture index, etc.) of the current block based on the received motion information, and the prediction sample export unit can export the prediction sample of the current block.
[0127] The decoding device generates residual samples for the current block based on the received residual information S530. The decoding device can generate reconstructed samples for the current block based on the prediction samples and the residual samples, and generate a reconstructed picture based thereon S540. As described above, thereafter, an in-loop filtering process or the like can be further applied to the reconstructed picture.
[0128] Figure 6 The inter-frame prediction process to which the embodiments of the present disclosure can be applied is exemplified.
[0129] refer to Figure 6 As described above, the inter-frame prediction process may include determining an inter-frame prediction mode, deriving motion information according to the determined prediction mode, and performing prediction (generating prediction samples) based on the derived motion information. The inter-frame prediction process may be performed in the encoding device and the decoding device as described above. In this document, the encoding device may include an encoding device and / or a decoding device.
[0130] refer to Figure 6, the coding device determines the inter prediction mode for the current block S600. Various inter prediction modes can be used for the prediction of the current block in the picture. For example, various modes such as merge mode, skip mode, motion vector prediction (MVP) mode, affine mode, sub-block merge mode, merge with MVD (MMVD) mode, etc. can be used. Decoder-side motion vector refinement (DMVR) mode, adaptive motion vector resolution (AMVR) mode, bidirectional prediction with CU-level weights (BCW), bidirectional optical flow (BDOF), etc. can be used additionally or alternatively as incidental modes. In addition, according to an embodiment of the present disclosure, the above-mentioned inter prediction mode may include a multi-hypothesis prediction (MHP) mode. The multi-hypothesis prediction mode represents a method for performing prediction by weighted summing of prediction blocks generated based on additional motion information for bidirectional prediction (or bi-prediction) blocks. The multi-hypothesis prediction mode will be described in detail later.
[0131] In the present disclosure, the affine mode may be referred to as an affine motion prediction mode. In addition, the MVP mode may be referred to as an advanced motion vector prediction (AMVP) mode. In the present disclosure, some modes and / or motion information candidates derived from some modes may be included as one of the motion information related candidates of another mode. For example, an HMVP candidate may be added as a merge candidate for a merge / skip mode, or may be added as a motion vector predictor candidate for an AMVP mode. When an HMVP candidate is used as a motion information candidate for a merge mode or a skip mode, the HMVP candidate may be referred to as an HMVP merge candidate.
[0132] Prediction mode information indicating an inter prediction mode of a current block may be sent from an encoding device to a decoding device using a signal. The prediction mode information may be included in a bitstream and received in a decoding device. The prediction mode information may include index information indicating one of a plurality of candidate modes. Alternatively, the inter prediction mode may be indicated by hierarchical signaling of flag information.
[0133] In this case, the prediction mode information may include at least one flag. For example, a skip flag may be signaled to indicate whether the skip mode is applied, a merge flag may be signaled to indicate whether the merge mode is applied when the skip mode is not applied, and a flag indicating that the MVP mode is applied or used for additional partitioning may be further signaled when the merge mode is not applied. The affine mode may be signaled as an independent mode, or may be signaled as a mode dependent on the merge mode or the MVP mode, etc. For example, the affine mode may include an affine merge mode and an affine MVP mode.
[0134] The coding device may derive motion information for the current block S610. The motion information may be derived based on an inter prediction mode. The coding device may perform inter prediction by using the motion information of the current block. The coding device may derive optimal motion information for the current block through a motion estimation process.
[0135] For example, the encoding device may use the original block in the original picture for the current block to search for a similar reference block with high correlation in the fractional pixel unit within the determined search range within the reference picture, and derive motion information therefrom. The similarity of the blocks may be derived based on the difference between the sample values based on the phase. For example, the similarity of the blocks may be calculated based on the SAD between the current block (or the template of the current block) and the reference block (or the template of the reference block). In this case, the motion information may be derived based on the reference block with the minimum SAD within the search range. The derived motion information may be signaled to the decoding device according to various methods based on the inter-frame prediction mode.
[0136] The coding apparatus may perform inter prediction based on the motion information for the current block S620. The coding apparatus may generate a prediction sample for the current block based on the motion information. The current block including the prediction sample may be referred to as a prediction block.
[0137] Hereinafter, the multi-hypothesis prediction mode is described in detail. As described above, the multi-hypothesis prediction mode represents a prediction method of an additional prediction block (or predictor) using a bidirectional prediction block. The multi-hypothesis prediction mode can be selectively used as one of the various inter-frame prediction modes mentioned above. Of course, the multi-hypothesis prediction mode according to an embodiment of the present disclosure is not limited to this name. In the present disclosure, the multi-hypothesis prediction mode may also be referred to as a multi-reference mode, a multi-reference prediction, a multi-reference prediction mode, a multi-reference block mode, a multi-hypothesis (MHP) mode, a multi-hypothesis inter-frame prediction mode, an inter-frame combined prediction mode, a combined inter-frame prediction mode, a combined prediction mode, a multi-frame prediction mode, a multi-prediction mode, an additional reference prediction mode, an additional reference mode, a multi-reference block, etc.
[0138] Figure 7 An inter-frame prediction method performed by the decoding device 300 according to an embodiment of the present disclosure is illustrated.
[0139] refer to Figure 7, the decoding device may perform bidirectional prediction to generate a basic prediction block (or reference block) S700. When the MHP mode is applied, the decoding device may generate and combine additional prediction blocks in addition to the prediction blocks generated (or derived) by the bidirectional prediction. As an example, the basic prediction block may include an L0 prediction block and / or an L1 prediction block. In the present disclosure, the basic prediction block may be referred to as a basic reference block, an initial prediction block, an initial reference block, a temporary prediction block, a temporary reference block, a reference prediction block, a regular prediction block, a regular reference block, etc. In addition, as an example, the basic prediction block may refer to an L0 prediction block or an L1 prediction block, or may refer to a block obtained by weighted summation of L0 and L1 prediction blocks. In the present embodiment, the case where the basic prediction block is a block obtained by weighted summation of L0 and L1 prediction blocks is mainly described, but the present invention is not limited thereto and may be similarly applied to the case where the basic prediction block is a reference block before performing the weighted summation.
[0140] In an embodiment, the weights may be used for weighted summation of L0 and L1 prediction blocks. As weights for weighted prediction, the weights may be collectively referred to as bidirectional prediction with CU-based weights (BCW) or CU-based weights (CW). The weights may be derived from a weight candidate list. The weight candidate list may include multiple weight candidates and may be predefined in an encoding / decoding device.
[0141] The weight candidate may be a set of weights (i.e., a first weight and a second weight) indicating a weight applied to each bidirectional prediction block, or may be a weight applied to a prediction block in either direction. When only a weight applied to a prediction block in any one direction is derived from the weight candidate list, a weight applied to a prediction block in the other direction may be derived based on the weight derived from the weight candidate list. For example, the weight applied to a prediction block in the other direction may be derived by subtracting a weight derived from the weight candidate list from a predetermined value.
[0142] In an embodiment, a weight index indicating a weight for weighted prediction of a current block may be derived in a weight candidate list. In the present disclosure, a weight index may be referred to as bcw_idx, bcw index. The weight index may be derived by a decoding device, or may be signaled from an encoding device. When derived by a decoding device, the weight index may be derived as a weight index for a specific merge candidate in a merge candidate list. As an example, a specific merge candidate may be specified by a merge index in a merge candidate list.
[0143] The decoding apparatus may generate an additional prediction block (or reference block) based on the MHP mode S710. The decoding apparatus may generate the additional prediction block in addition to the basic prediction block, and combine (or weighted sum) the basic prediction block and the generated additional prediction block.
[0144] As an embodiment, when the MHP mode is applied, the decoding device may generate and combine up to a predefined number of additional prediction blocks. In other words, the decoding device may combine (or weighted sum) additional prediction blocks less than or equal to the predefined number to the basic prediction block. As an example, the predefined number may be 2. Alternatively, as an example, the predefined number may be one of 1, 2, 3, and 4. The predefined number may be referred to as the maximum number of MHP.
[0145] In addition, when a plurality of additional prediction blocks are combined, the plurality of additional prediction blocks may be weighted and summed sequentially into a basic prediction block. For example, when up to 2 additional prediction blocks are generated, the basic prediction block and the first additional prediction block may be weighted and summed to generate a prediction block, and the generated prediction block and the second additional prediction block may be weighted and summed to generate a final prediction block. The prediction block generated by weighted summing the basic prediction block and the first additional prediction block may be referred to as an intermediate prediction block.
[0146] Alternatively, when combining multiple additional prediction blocks, the basic prediction block and the multiple generated additional prediction blocks may be weighted summed at once. In other words, after generating the multiple additional prediction blocks, weights may be applied to each of the multiple additional prediction blocks and the basic prediction block (or the L0 prediction block and the L1 prediction block) and weighted summed at once.
[0147] In addition, as an embodiment, the decoding device may determine whether to apply MHP. In this case, a step of determining whether to apply MHP may be added before S710. As an example, whether to apply MHP may be explicitly signaled or may be implicitly derived (or determined) by the decoding device.
[0148] In addition, as an embodiment, whether to apply MHP can be sent from the encoding device to the decoding device by signaling. For example, an MHP flag indicating whether to apply MHP can be sent from the encoding device to the decoding device by signaling. In this case, the conditions for signaling / parsing the MHP flag can be defined in advance. The signaling / parsing conditions of the MHP flag can be the availability conditions of the MHP. When the signaling / parsing conditions are met, the decoding device can parse the MHP flag from the bitstream. Alternatively, as an embodiment, whether to apply MHP can be derived by the decoding device based on predefined encoding information. As an example, whether to apply MHP can be defined in the same manner as the MHP availability condition (or signaling / parsing condition) described below.
[0149] In addition, as an embodiment, the decoding device may obtain MHP information (or may be referred to as MHP prediction information) to generate an additional prediction block. As an example, the MHP information may include weight information and / or prediction information. A reference block according to the MHP mode, that is, an additional prediction block, may be derived based on the prediction information, and the additional prediction block derived based on the weight information may be weighted and summed with the basic prediction block (or intermediate prediction block). In addition, as an example, the MHP information may further include an MHP flag indicating whether MHP is applied.
[0150] As an example, the prediction information may include mode information used to derive the additional prediction block and motion information according to the mode. The mode information may be inter-prediction mode information indicating whether it is a merge mode or an AMVP mode. For example, the mode information may be a merge flag. In other words, the additional prediction block may be derived using the merge mode or the AMVP mode, and a flag syntax element indicating it may be signaled. Alternatively, the additional prediction block may be derived using a predefined mode among the merge mode or the AMVP mode. Alternatively, the merge mode or the AMVP mode may be selected based on predefined encoding information.
[0151] As an example, when the merge mode is used to derive the additional prediction block, the prediction information may include a merge index. The merge index may specify a merge candidate in the merge candidate list. When the AMVP mode is used to derive the additional prediction block, the prediction information may include a motion vector predictor flag, a reference index, and motion vector difference information. The motion vector predictor flag may specify a candidate in the motion vector predictor candidate list.
[0152] The decoding device may generate a final prediction block by weighted summing the basic prediction block and the additional prediction block S720. As described above, the number of additional prediction blocks may be less than or equal to the predefined number. For example, when the number of additional prediction blocks is 2, the final prediction block may be a block in which the basic prediction block and the two additional prediction blocks are weighted summed. As an embodiment, weight information for the weighted sum may be sent or derived using a signal.
[0153] As described above, when a plurality of additional prediction blocks are combined, the plurality of additional prediction blocks may be weighted-added sequentially to form a basic prediction block, or the basic prediction block and the plurality of generated additional prediction blocks may be weighted-added at one time.
[0154] Generally, the inter prediction process supports unidirectional prediction or bidirectional prediction, but when it includes more than one prediction block, it can be regarded as multi-hypothesis prediction. In other words, multi-hypothesis prediction is a method of using multiple reference blocks (or prediction blocks) for prediction, and its signal transmission or derivation method can be considered as follows.
[0155] As an embodiment, information about the additional prediction block can be signaled by using a merge index in the same or similar manner as the merge mode. Alternatively, information about the additional prediction block can be signaled by using a reference index, a motion vector predictor (MVP) flag (or index), a motion vector difference, etc. in the same or similar manner as the AMVP mode. Alternatively, information about the additional prediction block can be inherited from an already decoded neighboring block to derive motion information. In an embodiment, whether to signal the information about the additional prediction block can be determined depending on the number of additional reference blocks used. For example, when there is one additional reference block, information about the additional prediction block can be signaled, and when there are two additional reference blocks, information about the additional prediction block can be derived on the decoder side without signaling.
[0156] According to multi-hypothesis prediction according to an embodiment of the present disclosure, weight information and motion information of a prediction block can be signaled / derived to generate a block having different characteristics from an existing prediction block, and various reference blocks can be used for prediction to improve prediction accuracy.
[0157] In an embodiment of the present disclosure, when configuring a motion information candidate list for multi-hypothesis prediction, a method for reducing signal bits of candidate indexes by reordering the candidate list is proposed.
[0158] When it is assumed that a merge mode is used to derive an additional prediction block, a merge candidate list for a motion vector predictor (MVP) may be configured based on motion information of neighboring blocks. A prediction block may be generated by using an MVP indicated by a merge index. According to an embodiment of the present disclosure, a method for reordering the order of candidates or refining the motion information of candidates may be applied to improve the motion accuracy of the candidates in the merge candidate list. In the present disclosure, reordering candidates (or the order of candidates) may be expressed by replacing the order or arrangement of the candidates, or assigning an index or order to the candidates.
[0159] In other words, according to an embodiment of the present disclosure, when configuring a candidate list for multi-hypothesis prediction, a reordering and / or refinement method may be applied to improve the motion accuracy of the candidates.
[0160] Figure 8 is a flowchart illustrating an inter-frame prediction method based on multi-hypothesis prediction according to an embodiment of the present disclosure.
[0161] refer to Figure 8 , the decoding device may first generate a basic prediction block (or reference block) S800. As described above, when multi-hypothesis prediction is applied, the decoding device may generate and combine an additional prediction block in addition to the prediction block generated (or derived) by bidirectional prediction. Figure 7The above-mentioned embodiments in can be applied in the same manner, and repeated description is omitted here.
[0162] As an embodiment, in S800, the decoding device may configure a candidate list for MVP. In addition, as an example, refinement may be performed on the candidates included in the candidate list. Refinement may be performed on the candidates included in the candidate list, or refinement may be performed on a specific candidate indicated by a candidate index within the candidate list. In addition, as an example, the candidates included in the candidate list may be reordered. In addition, the decoding device may perform motion compensation based on a specific MVP.
[0163] The decoding device may configure the candidate list S810. In other words, when multi-hypothesis prediction is applied, the decoding device may configure a candidate list for multi-hypothesis prediction. As an embodiment, the decoding device may configure a candidate list for hypothesis prediction by using a candidate list for deriving a basic prediction block. In other words, the decoding device may configure a candidate list for hypothesis prediction based on the candidate list configured in S800.
[0164] As an embodiment, the decoding device may use the candidate list for deriving the basic prediction block as the candidate list for hypothetical prediction. Alternatively, the decoding device may configure a candidate list including only unidirectional motion information based on the motion information included in the candidate list for deriving the basic prediction block.
[0165] The decoding device may reorder the candidates in the candidate list configured for multi-hypothesis prediction. In addition, the decoding device may refine the candidates in the candidate list configured for multi-hypothesis prediction.
[0166] The decoding device may derive motion information based on the candidate list, and generate an additional prediction block (or reference block) by using the derived motion information S820. The decoding device may generate an additional prediction block in addition to the basic prediction block, and combine the basic prediction block and the generated additional prediction block (or perform a weighted sum on them). Then, the decoding device may perform a weighted sum on the basic prediction block and the additional prediction block to generate a final prediction block S830. Figure 7 The above-described embodiments in can be applied in the same manner, and repeated description is omitted here.
[0167] In an embodiment, in the merge / AMVP mode, the decoding device may configure the MVP candidate list, refine the MVP according to predefined conditions, or use the motion information determined after the candidate reordering to generate a unidirectional or bidirectional predictor. In other words, the decoding device can generate a prediction block by using the motion information derived by configuring and reordering / refining the candidate list for the additional prediction block. As in the examples listed below, the candidate reordering and refinement techniques for multi-hypothesis prediction can be applied separately or together. This is an example, and the present disclosure is not limited thereto, and the order and scope of application may vary.
[0168] As an example, reordering may be performed on all or part of the candidates in the MHP candidate list. Alternatively, refinement may be performed on all or part of the candidates in the MHP candidate list. Alternatively, refinement may be performed on the candidates indicated by the MHP candidate index (or merge index). Alternatively, after reordering is performed on all or part of the candidates in the MHP candidate list, refinement may be performed on the reordered candidates. Alternatively, after reordering is performed on all / part of the candidates in the MHP candidate list, refinement may be performed on the candidates indicated by the MHP candidate index. After refinement is performed on all / part of the candidates in the MHP candidate list, reordering may be performed on all / part of the candidates.
[0169] Additionally, in an embodiment, a target for reordering and / or refinement of candidates in an application candidate list may be determined as follows.
[0170] - The first N candidates in the candidate list can be the target. In this case, N = 1..MAX_CAND_NUM – 1 can be defined. Here, MAX_CAND_NUM is a variable representing the maximum number of elements (i.e., candidates) in the candidate list.
[0171] - Candidates in the candidate list excluding the zero vector candidate can be targets.
[0172] - A specific type of candidate in the candidate list may be a target. Here, the specific candidate type may be defined as at least one of a neighboring candidate, a non-neighboring candidate, a temporal candidate, an affine candidate, an HMVP candidate, and a pair candidate.
[0173] - The candidate indicated by the MHP candidate index can be the target of refinement.
[0174] In addition, in an embodiment, the reordering and / or refinement of the candidates in the candidate list may be applied only when the following conditions are met. In the following, the basic prediction block may refer to a unidirectional / bidirectional predictor derived by an existing method before combining additional prediction blocks according to multi-hypothesis prediction. In the present disclosure, the basic prediction block may be referred to as a basic reference block, an initial prediction block, an initial reference block, a temporary prediction block, a temporary reference block, a reference prediction block, a regular prediction block, a regular reference block, etc. In other words, as an example, the reordering and refinement method for multi-hypothesis prediction may be independently determined according to whether the reordering / refinement method is applied in the process of deriving the basic prediction block.
[0175] - When reordering / refinement is applied in the process of deriving the base prediction block, candidate list reordering / refinement for multiple reference blocks may not be applied.
[0176] - Candidate list reordering / refinement for multiple reference blocks may be applied when reordering / refinement is applied in the process of deriving the base prediction block.
[0177] - When no reordering / refinement technique is applied in the process of deriving the base prediction block, candidate list reordering / refinement for multiple reference blocks is applied.
[0178] - When no reordering / refinement technique is applied in the process of deriving the base prediction block, candidate list reordering / refinement for multiple reference blocks may not be applied.
[0179] In addition, as an embodiment, reordering and / or refinement for multi-hypothesis prediction may be determined based on the candidate motion vector difference. Alternatively, when the candidate motion vector is within a specific range, refinement may be omitted. Alternatively, when the candidate motion vector is within a specific range, reordering may be omitted. The value indicating the specific range may be predefined and used in common in the encoder and decoder, or may be a value signaled via a bitstream.
[0180] In addition, the embodiments described in the present disclosure can be applied not only when the prediction mode of the basic prediction block for the current block is the merge mode, but also when the prediction mode of the basic prediction block for the current block is AMVP or AMVP-merge mode. Here, AMVP-merge mode means a prediction mode in which the first direction is AMVP mode and the second direction is merge mode. In other words, AMVP-merge mode means a mode in which list X (listX) is AMVP mode and list X-1 (list (X-1)) is merge mode (in this case, X=0, 1). It can be applied not only when the prediction mode of the basic prediction block for the current block is the merge mode, but also when the prediction mode of the basic prediction block for the current block is AMVP or AMVP-merge mode and supports multi-hypothesis prediction. In addition, when it is applied to the merge mode, the merge mode may include a normal merge mode, a sub-block merge mode, a combined intra prediction (CIIP) mode, or a geometric partition mode (GPM).
[0181] In the following, methods for cost-based re-ordering and / or refinement of MVP candidates for deriving additional prediction blocks in performing multi-hypothesis prediction are described.
[0182] Fig. 9 is a diagram illustrating a reference block used for multi-hypothesis prediction according to an embodiment of the present disclosure.
[0183] refer to Fig. 9 , shows the case where multiple reference blocks (prediction blocks) are used for prediction when multi-hypothesis prediction is applied. In other words, Fig. 9 In , reference blocks P0 and P1 represent basic reference blocks (or regular reference blocks), and reference blocks P2 and P3 represent additional reference blocks (or additional prediction blocks). Fig. 9 In the example, for ease of description, a case where two reference blocks exist for each prediction direction is shown, but the present invention is not limited thereto. In other words, the number of reference blocks for each prediction direction may be changed, and the motion compensation order may also be changed.
[0184] Fig.10 is a diagram for describing a motion information derivation method for an additional prediction block according to an embodiment of the present disclosure.
[0185] refer to Fig.10 , confirm the above Fig. 9 In the process of adding reference blocks P2 and P3 described in , multiple MVP candidates can be used. A candidate list including multiple MVP candidates can be configured.
[0186] According to an embodiment of the present disclosure, all or part of the candidates included in the candidate list may be reordered. As an embodiment, when there are N MVP candidates, the candidate motion information of each reference block is Cand[i][j], i=0..1, j=0..N-1. Here, i represents the prediction direction, and j represents the index of the MVP candidate for each prediction direction. In order to reorder Cand[i][j], the template area ( Fig. 9 The cost between the template area of the block indicated by Cand[i][j] and the calculated cost is calculated, and the order of the candidates can be reordered based on the calculated cost. As an example, the template area can be a predefined specific area. For example, the template area can be the left and / or top area of the current block / reference block, such as Fig.10 as shown in .
[0187] As an embodiment, the cost may be calculated based on the difference between the template area of the current block and the template area of the reference block. As an example, for the cost, the difference between the template area of the current block and the template area of the reference block may be calculated using the sum of absolute differences (SAD) and the sum of absolute transform differences (SATD). As an example, the cost for the candidate may be calculated to perform ascending sorting based on the cost. Thereafter, the final motion information may be derived within the candidate list reordered by using the candidate index sent in a signal.
[0188] In addition, as an embodiment, the candidate index for the additional prediction block may or may not be signaled in the reordered candidate list. For example, the candidate with the minimum cost in the reordered candidate list may be determined. Fig. 9 The additional reference blocks P2 and P3 described above.
[0189] The above-described embodiments may also be applied to a process of refining a reference block (or candidate). In other words, as described above, refinement may be performed on all or part of the candidates in the candidate list, or may be performed on a specific candidate indicated by a candidate index. In addition, as an example, the position with the minimum cost may be determined as the position of each candidate or the final position by comparing the SAD between the template region at a specific position in a predefined search range and the template region of the current block.
[0190] Fig.11 is a diagram for describing a cost calculation method for multi-hypothesis prediction according to an embodiment of the present disclosure.
[0191] According to an embodiment of the present disclosure, in calculating the cost for multi-hypothesis prediction, the cost can be calculated based on the weighted sum of the template area of the reference block. In this case, the weighted sum process applied to multi-hypothesis prediction can be applied to the weighted sum in the same manner.
[0192] In other words, when multi-hypothesis prediction is performed, the final prediction block may be calculated as in the following Formula 1. Formula 1 assumes a case where P0 and P1 exist as normal reference blocks and P2 and P3 exist in addition.
[0193] [Formula 1]
[0194] Step 1: P' = (P0 + P1) / 2
[0195] Step 2: P'' = W0 * P2 + (1-W0) * P'
[0196] Step 3: P = W1 * P3 + (1-W1) * P''
[0197] In Formula 1, W0 and W1 represent weights applied to the additional reference blocks P2 and P3, respectively. In the first step of Formula 1, a basic prediction block is generated by a weighted sum of a regular reference block. However, as described above, the basic prediction block may refer to a regular reference block before the weighted sum, or may refer to a weighted prediction block.
[0198] In other words, since the final prediction block is generated by performing a weighted sum on the prediction blocks added in addition to the regular reference block, as in Formula 1, Fig.11 Methods for increasing precision when computing the cost are described in .
[0199] refer to Fig.11 , when applying the reordering / refinement of the candidates for the additional reference block, in order to increase the accuracy of the cost, the cost may be calculated by reflecting not only the template area of the reference block but also the template areas of the conventional reference blocks P0 and P1, instead of comparing only the template area between the template area of the current block and the reference block. In this case, the above-mentioned Formula 1 may be applied. When Formula 1 is applied, the template area of the corresponding reference block may be applied instead of P0, P1, P2, and P3.
[0200] When the template area of each reference block is expressed as PX_T (for example, when there are 4 reference blocks, X representing the index of the reference block is expressed as 0..3), the weighted sum of the template area for each reference block may be calculated as in the following Formulas 2 and 3. Hereinafter, Formula 2 may be applied when there are three prediction blocks, and Formula 3 may be applied when there are four prediction blocks.
[0201] [Formula 2]
[0202] P_T = (W0 * P2_T + (1-W0) * ((P0_T + P1_T) / 2)
[0203] Cost = SAD(C_T, P_T)
[0204] [Formula 3]
[0205] P_T = W1 * P3_T + (1-W1) *(W0 * P2_T + (1-W0) * ((P0_T + P1_T) / 2))
[0206] Cost = SAD(C_T, P_T)
[0207] The cost-based reordering / refinement process can be performed by calculating the SAD between the final template area and the template area of the current block. The same method can also be applied when the number of prediction blocks is different. In an embodiment, in order to reduce the computational complexity, a predefined weight can be used without using W0 and W1, for each of P2 and P3. For example, the predefined weight can be defined as 1 / 2 m or 1 / 2 n Here, when the precision of the weight is 32, m and n can be determined within 1..5. The range of m and n can naturally change depending on the change of precision.
[0208] Can be used with the above Fig.10 The cost for the reordering of Cand[i][j] is calculated in substantially the same manner as the method described in . The cost may be calculated based on the SAD considering the template area of the current block, the template area of the block specified by Cand[i][j], and the template areas of P0 and P1. The candidates may be sorted in ascending order based on the calculated cost. The final motion information may be calculated within the candidate list reordered by using the candidate index sent by the signal. In addition, an additional reference block may be determined by using the candidate with the minimum cost without signaling the candidate index.
[0209] The above embodiment can also be applied to the process of refining the reference block (or candidate). In other words, as described above, refinement can be performed on all or part of the candidates in the candidate list, or refinement can be performed on a specific candidate indicated by a candidate index. In addition, as an example, the position with the minimum cost can be determined as the position of each candidate or the final position by comparing the SAD between the template area at a specific position in the predefined search range and the template area of the current block.
[0210] Fig.12 is a diagram for describing a cost calculation method for multi-hypothesis prediction according to an embodiment of the present disclosure.
[0211] According to an embodiment of the present disclosure, cost calculation may be performed based on the difference between a basic prediction block generated by bidirectional prediction and an additional reference block. In this case, the sum of absolute differences (SAD) and the sum of absolute transform differences (SATD) may be used for cost calculation.
[0212] refer to Fig.12 , the template-based cost calculation method may cause pipeline delays because the template area of the current block must be fully reconstructed. Therefore, the cost can be calculated by using the difference between the regular reference block and the additional reference block instead of considering the template of the current block as its substitute. In other words, Fig.12 As shown in , when there are regular reference blocks P0, P1 and there is an additional reference block P2, the cost can be calculated based on the difference between the block obtained by weighted sum (or average) of the regular reference blocks and the P2 candidate.
[0213] As an embodiment, when there are N MVP candidates in the process of determining the additional reference blocks P2, P3, the candidate motion information of each reference block is referred to as Cand[i][j], i=0..1, j=0..N-1. Here, i represents the prediction direction, and j represents the index of the MVP candidate for each prediction direction. The order of the candidates may be reordered based on the cost calculated by calculating the SAD between the block obtained by calculating the weighted sum (or average) of the reordered conventional reference blocks for Cand[i][j] and the block indicated by Cand[i][j]. As an example, the cost for the candidate may be calculated to perform ascending order based on the cost.
[0214] Thereafter, final motion information may be derived within the candidate list reordered by using the candidate index transmitted in a signal. In this case, when there are two regular reference blocks (i.e., an L0 reference block and an L1 reference block), a block sum cost obtained by a weighted sum of the two blocks may be calculated. If there is one regular reference block, a cost with a corresponding block may be calculated. In addition, when there are at least two additional reference blocks, a cost with a block with a weighted sum with a previous reference block applied may be calculated for a block after the second reference block.
[0215] In addition, as an embodiment, the SAD of the regular reference block and the block indicated by each Cand[i][j] may be calculated as the cost to determine the candidate with the minimum cost as the additional reference block without signaling the candidate index.
[0216] The above-described embodiments can also be applied to the process of refining the reference block (or candidate). In other words, as described above, refinement can be performed on all or part of the candidates in the candidate list, or refinement can be performed on a specific candidate indicated by a candidate index. In addition, as an example, the position with the minimum cost can be determined as the position or final position of each candidate by comparing the SAD between the block at a specific position within the predefined search range and the conventional reference block area.
[0217] In addition, in an embodiment of the present disclosure, a method for determining weight information applied to an additional reference block in multi-hypothesis prediction is described. The weight information for the additional reference block can be defined as having characteristics different from those of a conventional reference block. The weight information can include weight index information. In an embodiment, reordering and / or refinement of the weight list can be applied to reduce the signaling bits of the weight index information.
[0218] In an embodiment, a weight index for an additional reference block may be signaled / derived. As an example, a weight set including multiple weights may be defined. In the present disclosure, a weight set may be referred to as a weight table, a weight list, or a weight candidate list. For example, a weight set may be defined as (1 / 16, 2 / 16, 3 / 16, 4 / 16, 5 / 16, 6 / 16, 7 / 16, 8 / 16, -1 / 16, -2 / 16, -3 / 16, -4 / 16, -5 / 16, -6 / 16, -7 / 16, -8 / 16). Alternatively, some examples may be used as weight sets. For example, a weight set including (2 / 16, 4 / 16, -2 / 16, -4 / 16) may be defined. The precision of the weight value may be changed to 8, 16, or 32. As the precision increases, the weight may also increase. In addition, one index for all additional reference blocks or a separate index for each reference block may be defined.
[0219] When the number of weights is K, the weight index may be represented as 0..K-1. As an example, a weight index may exist for each reference block. In an embodiment of the present disclosure, the weight candidates included in the weight set may be reordered based on the cost to reduce the signaling bits of the weight index. As an example, the weight set may be reordered by performing sorting in ascending order of cost.
[0220] In this case, the above can be applied Figures 9 to 12 As a cost calculation method, the method described in . In this case, the reordering of the weight list can be applied for each reference block, or it can be applied only once for the additional reference blocks.
[0221] In addition, in an embodiment, when the weight index for each reference block is represented as wCand[i][j], i=0..1, j=0..K-1, the cost when wCand[i][j] is applied can be calculated to determine the candidate with the minimum cost as the weight of each reference block P2 and P3 without signaling. Here, i represents the prediction direction, and j represents the index of the weight candidate for each prediction direction.
[0222] Additionally, in an embodiment, the weight applied to the additional reference block may be determined based on a picture order count (POC) difference. In other words, the POC difference may be considered in determining the weight instead of the cost. As an example, the weight may be determined by comparing the POC difference between the current block and the reference picture with a predefined threshold.
[0223] For example, when the distance between the current picture and the reference picture is less than (or less than or equal to) a threshold, a relatively large weight such as {5 / 16, 6 / 16, 7 / 16, 8 / 16, -5 / 16, -6 / 16, -7 / 16, -8 / 16} may be applied, and when the distance between the current picture and the reference picture is greater than or equal to (or greater than) the threshold, a relatively small weight such as {1 / 16, 2 / 16, 3 / 16, 4 / 16, -1 / 16, -2 / 16, -3 / 16, -4 / 16} may be applied. This is just an example, and the weight set and weights based on the POC difference may be different.
[0224] The weight determination method described in the embodiments of the present disclosure can be applied substantially equally to the process of refining the weights for the reference block. As an example, it can be applied when refining all or part of the candidates in the weight candidate list, or when refining the candidates specified by the weight index. In addition, the weights and weight sets can be determined by comparing the SAD between the target and the time when multiple predefined weights are applied to a specific candidate.
[0225] In an embodiment, the method for re-ranking and refining the weight index may be applied separately from the method for re-ranking and refining the above-mentioned candidate list. Alternatively, it may be determined depending on the MVP derivation process.
[0226] In addition, in an embodiment of the present disclosure, a method for determining an interpolation filter applied to an additional reference block in a multi-hypothesis prediction is described. Interpolation filter information for the additional reference block may be included to have different characteristics from a conventional reference block. The interpolation filter information may include interpolation filter index information. In an embodiment, reordering and / or refinement of the interpolation filter list may be applied to reduce signaling bits of the interpolation filter index information.
[0227] In an embodiment, an interpolation filter index for an additional reference block may be signaled / derived. As an example, an interpolation filter set including a plurality of interpolation filters may be defined. In the present disclosure, an interpolation filter set may be referred to as an interpolation filter table, an interpolation filter list, or an interpolation filter candidate list. For example, an interpolation filter set may be defined as {4-tap IF, 6-tap IF, 8-tap IF, 10-tap IF, 12-tap IF, 14-tap IF}. Alternatively, the interpolation filter set may use some of the examples.
[0228] As an example, when the number of interpolation filter indices is L, information having 0..L-1 as interpolation filter indices may be signaled / derived. There may be one index for all additional reference blocks, or there may be a separate index for each reference block.
[0229] Alternatively, the list can be reordered in ascending order of cost to reduce the signaling bits for the interpolation filter index. In this case, the above Figures 9 to 12 The method described in is used as a cost calculation method. In such a case, the reordering of the interpolation filter list may be applied to each reference block, or may be applied only once to the additional reference blocks.
[0230] As an embodiment, when the interpolation filter index for each reference block is represented as IFCand[i][j], i=0..1, j=0..L-1, the cost when applying IFCand[i][j] can be calculated to determine the candidate with the minimum cost as the interpolation filter for each reference block P2 and P3 without signaling. Here, i represents the prediction direction, and j represents the index of the interpolation filter candidate for each prediction direction.
[0231] In addition, in an embodiment, the interpolation filter applied to the additional reference block can be determined based on the POC difference. In other words, the POC difference can be considered instead of the cost in determining the interpolation filter. As an example, the interpolation filter can be determined by comparing the POC difference between the current block and the reference picture with a predefined threshold.
[0232] For example, when the distance between the current picture and the reference picture is less than (or less than or equal to) a threshold, a long tap filter such as {10 tap IF, 12 tap IF, 14 tap IF} may be applied, and when it is greater than or equal to (or greater than) the threshold, a smoothing filter such as {4 tap IF, 6 tap IF, 8 tap IF} may be applied. This is just an example, and the filter set based on the POC difference may be different, and the filter type may be different.
[0233] The interpolation filter determination method described in the embodiments of the present disclosure can be applied substantially equally to the process of refining the interpolation filter for the reference block. For example, it can be applied when refining all or part of the candidates in the interpolation filter candidate list, or when refining the candidates specified by the interpolation filter index. In addition, the interpolation filter and the interpolation filter set can be determined by comparing the SAD between the target and the time when multiple predefined interpolation filters are applied to a specific candidate.
[0234] In an embodiment, the method for reordering and refining the interpolation filter indexes may be applied separately from the method for reordering and refining the candidate list as described above. Alternatively, it may be determined depending on the MVP derivation process.
[0235] In addition, in the embodiments of the present disclosure, when information for multi-hypothesis prediction is inherited from a neighboring block, a method of improving motion accuracy by changing or deriving the inherited information into optimal information is described.
[0236] Generally, when the merge mode is applied, the information of the selected neighboring block is inherited and used. As an example, not only motion information, but also bidirectional prediction (BCW) with CU-level weight index, half-pixel interpolation filter (H-pixel IF) flag, etc. can be applied as is and propagated to the current block. As an example, multi-hypothesis prediction information or multi-hypothesis prediction information stored in the selected neighboring block can be used as is. Because the characteristics of the neighboring block may be partially different from the characteristics of the current block, the motion information of the inherited multi-reference block cannot be used as is, but the processed information can be used.
[0237] As an embodiment, more specifically, when the selected neighboring block includes motion information and / or a weight index for multi-hypothesis prediction, the motion information for each reference block can be changed and applied as follows. Of course, all or part of the embodiments listed below can be applied separately or in combination.
[0238] - like Fig.10 In the embodiment described in , template cost-based refinement may be performed within the determined search range.
[0239] - As in Fig.11 In the embodiment described in , template cost-based refinement may be performed within the determined search range.
[0240] - As in Fig.12 In the embodiment described in , cost-based refinement may be performed using the difference between the regular reference block and the additional reference block within the search range.
[0241] - In application Figures 10 to 12In the embodiment described in , the cost of the corresponding candidate can be adjusted to increase the priority of the inherited motion information. (In this case, the final cost = lambda * cost, lambda < 1.0, where lambda can be a value or variable determined in advance for adjusting the cost value.)
[0242] - When there are at least two additional reference blocks, only the determined candidates may be refined by using the methods listed above. As an example, only the first candidate may be refined.
[0243] In addition, in an embodiment, the weight for each reference block may be changed and applied as follows.
[0244] - As in Fig.10 In the embodiments described in , a template cost-based determination may be performed within the determined weight candidates.
[0245] - As in Fig.11 In the embodiments described in , a template cost-based determination may be performed within the determined weight candidates.
[0246] - As in Fig.12 In the embodiments described in , the cost-based determination may be performed by using the difference between the regular reference block and the additional reference block within the determined weight candidates.
[0247] - In application Figures 10 to 12 In the embodiment described in , the cost of the corresponding candidate can be adjusted to increase the priority of the inherited weight. (In such a case, the final cost = lambda * cost, lambda < 1.0, where lambda can be a value or variable determined in advance for adjusting the cost value.)
[0248] - When there are at least two additional reference blocks, only the determined candidates may be determined based on cost by using the methods listed above. As an example, the first candidate may be determined based on cost only.
[0249] According to an embodiment of the present disclosure, in a candidate list configured for multi-hypothesis prediction, various motion information may be configured as follows to generate a reference block having characteristics different from those of a conventional reference block. In addition, by determining whether to apply multi-hypothesis prediction, it may be adjusted to reduce the amount of bit generation by limiting situations where compression efficiency is low.
[0250] In an embodiment, only candidates having a reference picture different from a reference picture of a regular reference block for a current block may be restricted as candidates for multi-hypothesis prediction.
[0251] In an embodiment, candidates for reference pictures having a predefined reference index in a reference list are restricted to candidates for multi-hypothesis prediction. In this case, the predefined reference index may be 0. Alternatively, it may be restricted to reference indices having an integer range from 0 to N, and in this case, N may be one of the values of an integer from 1 to the maximum number of reference indices.
[0252] In an embodiment, the position of a candidate may be determined based on a difference from a motion vector for a regular reference block. As an example, a candidate at a position where the difference from the motion vector is greater than (or less than) a threshold may be adjusted to be positioned at the front of the list.
[0253] In an embodiment, when applying Figures 9 to 12 the reordering / refinement method described above in the embodiment of, it may be determined whether to apply multi-hypothesis prediction based on a cost. As an example, when the cost is less than (or greater than) a threshold, reordering / refinement may not be applied.
[0254] In an embodiment, an independent candidate list may be configured for each reference block. Alternatively, the same candidate list is used, but candidates applied to a first additional reference block may be adjusted so as not to be used in the candidate list for a second additional reference block. In other words, although the same candidate list is used, the number of candidates available for an additional reference block may be different.
[0255] In an embodiment, it may be determined whether to apply multi-hypothesis prediction based on a block size and / or a block shape. For example, when the block size is less than 32 and w < h or h > w, the application of multi-hypothesis prediction may be restricted.
[0256] In an embodiment, it may be determined whether to apply multi-hypothesis prediction based on a temporal layer. For example, when the temporal layer index is greater than (or less than) a threshold, the application of multi-hypothesis prediction may be restricted.
[0257] In an embodiment, it may be determined whether to apply multi-hypothesis prediction based on a POC difference between a current block and a reference block. As an example, when the POC difference is less than (or greater than) a threshold, the application of multi-hypothesis prediction may be restricted.
[0258] In an embodiment, it may be determined whether to apply multi-hypothesis prediction or the number of additional reference blocks based on a quantization parameter (QP). As an example, when the QP is greater than (or less than) a threshold, it may be determined whether to apply multi-hypothesis prediction or the number of additional reference blocks may be restricted.
[0259] Fig.13 A rough configuration of an inter-frame predictor 332 that performs an inter-frame prediction method according to the present disclosure is shown.
[0260] Refer to Fig.13, the inter-frame predictor 332 may include a basic prediction block generation unit 1300 , an additional prediction block generation unit 1310 , and a final prediction block generation unit 1320 .
[0261] The basic prediction block generation unit 1300 may perform bidirectional prediction to generate a basic prediction block. When the MHP mode is applied, the basic prediction block generation unit 1300 may generate and combine additional prediction blocks in addition to the prediction blocks generated (or derived) by the bidirectional prediction. As an example, the basic prediction block may include an L0 prediction block and / or an L1 prediction block. In the present disclosure, the basic prediction block may be referred to as an initial prediction block, a temporary prediction block, a reference prediction block, etc. In addition, as an example, the basic prediction block may be a prediction block obtained by weighted summing of the L0 and L1 prediction blocks.
[0262] In an embodiment, weights may be used for the weighted sum of L0 and L1 prediction blocks. As weights used for weighted prediction, weights may be collectively referred to as bidirectional prediction with CU-based weights (BCW) or CU-based weights (CW). Weights may be derived from a weight candidate list. The weight candidate list may include multiple weight candidates and may be predefined in an encoding / decoding device.
[0263] The weight candidate may be a set of weights (i.e., a first weight and a second weight) representing a weight applied to each bidirectional prediction block, or may be a weight applied to a prediction block in either direction. When only the weight applied to a prediction block in any one direction is derived from the weight candidate list, the weight applied to the prediction block in the other direction may be derived based on the weight derived from the weight candidate list. For example, the weight applied to the prediction block in the other direction may be derived by subtracting the weight derived from the weight candidate list from a predetermined value.
[0264] In an embodiment, a weight index indicating a weight used for weighted prediction of the current block may be derived in a weight candidate list. In the present disclosure, the weight index may be referred to as bcw_idx, bcw index. The weight index may be derived by a decoding device or may be signaled from an encoding device. When derived by a decoding device, the weight index may be derived as a weight index of a specific merge candidate in a merge candidate list. As an example, a specific merge candidate may be specified by a merge index in a merge candidate list.
[0265] The additional prediction block generation unit 1310 may generate an additional prediction block based on the MHP mode. The additional prediction block generation unit 1310 may generate an additional prediction block in addition to the basic prediction block, and combine (or weighted sum) the basic prediction block and the generated additional prediction block.
[0266] As an embodiment, when the MHP mode is applied, the additional prediction block generation unit 1310 may generate up to a predefined number of additional prediction blocks. In other words, the additional prediction block generation unit 1310 may combine (or weighted sum) additional prediction blocks less than or equal to the predefined number to the basic prediction block. As an example, the predefined number may be 2. Alternatively, as an example, the predefined number may be one of 1, 2, 3, and 4. The predefined number may be referred to as the maximum number of the MHP.
[0267] In addition, when a plurality of additional prediction blocks are combined, the plurality of additional prediction blocks may be weighted-added to the basic prediction block in sequence. For example, when up to 2 additional prediction blocks are generated, the basic prediction block and the first additional prediction block may be weighted-added to generate a prediction block, and the generated prediction block and the second additional prediction block may be weighted-added to generate a final prediction block. The prediction block generated by weighted-adding the basic prediction block and the first additional prediction block may be referred to as an intermediate prediction block.
[0268] Alternatively, when combining multiple additional prediction blocks, the basic prediction block and the multiple generated additional prediction blocks may be weighted and summed at once. In other words, after generating the multiple additional prediction blocks, weights may be applied to each of the multiple additional prediction blocks and the basic prediction block (or the L0 prediction block and the L1 prediction block) and weighted and summed at once.
[0269] In addition, as an embodiment, the additional prediction block generation unit 1310 may determine whether to apply MHP. As an example, whether to apply MHP may be explicitly signaled, or may be implicitly derived by the decoding device.
[0270] In addition, as an embodiment, whether MHP is applied may be signaled from the encoding device to the decoding device. For example, an MHP flag indicating whether MHP is applied may be signaled from the encoding device to the decoding device. In this case, conditions for signaling / parsing the MHP flag may be defined in advance. The signaling / parsing condition of the MHP flag may be an availability condition of the MHP. When the signaling / parsing condition is met, the decoding device may parse the MHP flag from the bitstream. Alternatively, as an embodiment, whether MHP is applied may be derived by the decoding device based on predefined encoding information. As an example, whether MHP is applied may be defined in the same manner as the MHP availability condition (or signaling / parsing condition) described below.
[0271] In addition, as an embodiment, the additional prediction block generation unit 1310 may obtain MHP information (or may be referred to as MHP prediction information) to generate an additional prediction block. As an example, the MHP information may include weight information and / or prediction information. A reference block according to the MHP mode, that is, an additional prediction block, may be derived based on the prediction information, and the additional prediction block derived based on the weight information may be weighted summed with the basic prediction block (or intermediate prediction block). In addition, as an example, the MHP information may further include an MHP flag indicating whether MHP is applied.
[0272] As an example, the prediction information may include mode information for deriving an additional prediction block and motion information according to the mode. The mode information may be inter-prediction mode information indicating whether it is a merge mode or an AMVP mode. For example, the mode information may be a merge flag. In other words, the additional prediction block may be derived using the merge mode or the AMVP mode, and a flag syntax element indicating it may be signaled. Alternatively, the additional prediction block may be derived using a predefined mode among the merge mode or the AMVP mode. Alternatively, the merge mode or the AMVP mode may be selected based on predefined encoding information.
[0273] As an example, when the merge mode is used to derive the additional prediction block, the prediction information may include a merge index. The merge index may specify a merge candidate in the merge candidate list. When the AMVP mode is used to derive the additional prediction block, the prediction information may include a motion vector predictor flag, a reference index, and motion vector difference information. The motion vector predictor flag may specify a candidate in the motion vector predictor candidate list.
[0274] The final prediction block generation unit 1320 may generate a final prediction block by weighted summing the basic prediction block and the additional prediction block. As described above, the number of additional prediction blocks may be less than or equal to the predefined number. For example, when the number of additional prediction blocks is 2, the final prediction block may be a block in which the basic prediction block and the two additional prediction blocks are weighted summed.
[0275] As described above, when a plurality of additional prediction blocks are combined, the plurality of additional prediction blocks may be weighted-added to the basic prediction block in sequence, or the basic prediction block and the plurality of generated additional prediction blocks may be weighted-added at once.
[0276] exist Figures 8 to 12 The above-described embodiments in can be similarly applied, and repeated descriptions related thereto will be omitted.
[0277] Fig.14 An inter-frame prediction method performed by the encoding apparatus 200 as an embodiment according to the present disclosure is shown.
[0278] refer to Fig.14 , the encoding device may perform bidirectional prediction to generate a basic prediction block S14000. When the MHP mode is applied, the encoding device may generate and combine additional prediction blocks in addition to the prediction blocks generated (or derived) by the bidirectional prediction. As an example, the basic prediction block may include an L0 prediction block and / or an L1 prediction block. In the present disclosure, the basic prediction block may be referred to as an initial prediction block, a temporary prediction block, a reference prediction block, etc. In addition, as an example, the basic prediction block may be a prediction block obtained by weighted summing the L0 and L1 prediction blocks.
[0279] In an embodiment, the weights may be used for weighted summation of L0 and L1 prediction blocks. As weights for weighted prediction, the weights may be collectively referred to as bidirectional prediction with CU-based weights (BCW) or CU-based weights (CW). The weights may be derived from a weight candidate list. The weight candidate list may include multiple weight candidates and may be predefined in an encoding / decoding device.
[0280] The weight candidate may be a set of weights (i.e., a first weight and a second weight) indicating a weight applied to each bidirectional prediction block, or may be a weight applied to a prediction block in either direction. When only a weight applied to a prediction block in any one direction is derived from the weight candidate list, a weight applied to a prediction block in the other direction may be derived based on the weight derived from the weight candidate list. For example, the weight applied to a prediction block in the other direction may be derived by subtracting a weight derived from the weight candidate list from a predetermined value.
[0281] In an embodiment, a weight index indicating a weight for weighted prediction of a current block may be derived in a weight candidate list. In the present disclosure, a weight index may be referred to as bcw_idx, bcw index. The weight index may be derived by a decoding device, or may be signaled from an encoding device. When derived by a decoding device, the weight index may be derived as a weight index for a specific merge candidate in a merge candidate list. As an example, a specific merge candidate may be specified by a merge index in a merge candidate list.
[0282] The encoding apparatus may generate an additional prediction block based on the MHP mode S1410. The encoding apparatus may generate an additional prediction block in addition to the basic prediction block, and combine (or weighted sum) the basic prediction block and the generated additional prediction block.
[0283] As an embodiment, when the MHP mode is applied, the encoding device may generate up to a predefined number of additional prediction blocks. In other words, the encoding device may combine (or weighted sum) additional prediction blocks less than or equal to the predefined number to the basic prediction block. As an example, the predefined number may be 2. Alternatively, as an example, the predefined number may be one of 1, 2, 3, and 4. The predefined number may be referred to as the maximum number of MHP.
[0284] In addition, when a plurality of additional prediction blocks are combined, the plurality of additional prediction blocks may be weighted-added to the basic prediction block in sequence. For example, when up to 2 additional prediction blocks are generated, the basic prediction block and the first additional prediction block may be weighted-added to generate a prediction block, and the generated prediction block and the second additional prediction block may be weighted-added to generate a final prediction block. The prediction block generated by weighted-adding the basic prediction block and the first additional prediction block may be referred to as an intermediate prediction block.
[0285] Alternatively, when a plurality of additional prediction blocks are combined, the basic prediction block and the plurality of generated additional prediction blocks may be weighted-summed at once. In other words, after the plurality of additional prediction blocks are generated, weights may be applied to each of the plurality of additional prediction blocks and the basic prediction block (or the L0 prediction block and the L1 prediction block) and weighted-summed at once.
[0286] In addition, as an embodiment, the encoding device may determine whether to apply MHP. In this case, a step of determining whether to apply MHP may be added before S1410. As an example, whether to apply MHP may be explicitly signaled or may be implicitly derived by the decoding device.
[0287] In addition, as an embodiment, whether MHP is applied may be signaled from the encoding device to the decoding device. For example, an MHP flag indicating whether MHP is applied may be signaled from the encoding device to the decoding device. In this case, conditions for signaling / parsing the MHP flag may be defined in advance. The signaling / parsing conditions of the MHP flag may be availability conditions of the MHP. When the signaling / parsing conditions are met, the encoding device may signal the MHP flag from the bitstream. Alternatively, as an embodiment, whether MHP is applied may be derived by the decoding device based on predefined encoding information. As an example, whether MHP is applied may be defined in the same manner as the MHP availability condition (or signaling / parsing condition) described below.
[0288] In addition, as an embodiment, the encoding device may obtain MHP information (or may be referred to as MHP prediction information) to generate an additional prediction block. As an example, the MHP information may include weight information and / or prediction information. A reference block according to the MHP mode, that is, an additional prediction block, may be derived based on the prediction information, and the additional prediction block derived based on the weight information may be weighted summed with the basic prediction block (or intermediate prediction block). In addition, as an example, the MHP information may further include an MHP flag indicating whether MHP is applied.
[0289] As an example, the prediction information may include mode information for deriving an additional prediction block and motion information according to the mode. The mode information may be inter-prediction mode information indicating whether it is a merge mode or an AMVP mode. For example, the mode information may be a merge flag. In other words, the additional prediction block may be derived using the merge mode or the AMVP mode, and a flag syntax element indicating it may be signaled. Alternatively, the additional prediction block may be derived using a predefined mode among the merge mode or the AMVP mode. Alternatively, the merge mode or the AMVP mode may be selected based on predefined encoding information.
[0290] As an example, when the merge mode is used to derive the additional prediction block, the prediction information may include a merge index. The merge index may specify a merge candidate in the merge candidate list. When the AMVP mode is used to derive the additional prediction block, the prediction information may include a motion vector predictor flag, a reference index, and motion vector difference information. The motion vector predictor flag may specify a candidate in the motion vector predictor candidate list.
[0291] The encoding device may generate a final prediction block by weighted summing the basic prediction block and the additional prediction block. As described above, the number of additional prediction blocks may be less than or equal to the predefined number. For example, when the number of additional prediction blocks is 2, the final prediction block may be a block in which the basic prediction block and the two additional prediction blocks are weighted summed.
[0292] As described above, when a plurality of additional prediction blocks are combined, the plurality of additional prediction blocks may be weighted-added to the basic prediction block in sequence, or the basic prediction block and the plurality of generated additional prediction blocks may be weighted-added at once.
[0293] exist Figures 8 to 12 The above-described embodiments in may be substantially equally applied, and repeated descriptions related thereto will be omitted.
[0294] Fig.15 A rough configuration of the inter-frame predictor 221 performing the inter-frame prediction method according to the present disclosure is shown.
[0295] refer to Fig.15, the inter-frame predictor 221 may include a basic prediction block generation unit 1500 , an additional prediction block generation unit 1510 , and a final prediction block generation unit 1520 .
[0296] The basic prediction block generation unit 1500 may perform bidirectional prediction to generate a basic prediction block. When the MHP mode is applied, the basic prediction block generation unit 1500 may generate and combine additional prediction blocks in addition to the prediction blocks generated (or derived) by the bidirectional prediction. As an example, the basic prediction block may include an L0 prediction block and / or an L1 prediction block. In the present disclosure, the basic prediction block may be referred to as an initial prediction block, a temporary prediction block, a reference prediction block, etc. In addition, as an example, the basic prediction block may be a prediction block obtained by weighted summing the L0 and L1 prediction blocks.
[0297] In an embodiment, weights may be used for the weighted sum of L0 and L1 prediction blocks. As weights used for weighted prediction, weights may be collectively referred to as bidirectional prediction with CU-based weights (BCW) or CU-based weights (CW). Weights may be derived from a weight candidate list. The weight candidate list may include multiple weight candidates and may be predefined in an encoding / decoding device.
[0298] The weight candidate may be a set of weights (i.e., a first weight and a second weight) representing the weight applied to each bidirectional prediction block, or may be a weight applied to a prediction block in either of the two directions. When only the weight applied to the prediction block in any one direction is derived from the weight candidate list, the weight applied to the prediction block in the other direction may be derived based on the weight derived from the weight candidate list. For example, the weight applied to the prediction block in the other direction may be derived by subtracting the weight derived from the weight candidate list from a predetermined value.
[0299] In an embodiment, a weight index indicating a weight used for weighted prediction of the current block may be derived in a weight candidate list. In the present disclosure, the weight index may be referred to as bcw_idx, bcw index. The weight index may be derived by a decoding device or may be signaled from an encoding device. When derived by a decoding device, the weight index may be derived as a weight index of a specific merge candidate in a merge candidate list. As an example, a specific merge candidate may be specified by a merge index in a merge candidate list.
[0300] The additional prediction block generation unit 1510 may generate an additional prediction block based on the MHP mode. The additional prediction block generation unit 1510 may generate an additional prediction block in addition to the basic prediction block, and combine (or weighted sum) the basic prediction block and the generated additional prediction block.
[0301] As an embodiment, when the MHP mode is applied, the additional prediction block generation unit 1510 may generate up to a predefined number of additional prediction blocks. In other words, the additional prediction block generation unit 1510 may combine (or weighted sum) additional prediction blocks less than or equal to the predefined number to the basic prediction block. As an example, the predefined number may be 2. Alternatively, as an example, the predefined number may be one of 1, 2, 3, and 4. The predefined number may be referred to as the maximum number of MHP.
[0302] In addition, when a plurality of additional prediction blocks are combined, the plurality of additional prediction blocks may be weighted-added to the basic prediction block in sequence. For example, when up to 2 additional prediction blocks are generated, the basic prediction block and the first additional prediction block may be weighted-added to generate a prediction block, and the generated prediction block and the second additional prediction block may be weighted-added to generate a final prediction block. The prediction block generated by weighted-adding the basic prediction block and the first additional prediction block may be referred to as an intermediate prediction block.
[0303] Alternatively, when combining multiple additional prediction blocks, the basic prediction block and the multiple generated additional prediction blocks may be weighted summed at once. In other words, after generating the multiple additional prediction blocks, weights may be applied to each of the multiple additional prediction blocks and the basic prediction block (or the L0 prediction block and the L1 prediction block) and weighted summed at once.
[0304] In addition, as an embodiment, the additional prediction block generation unit 1510 may determine whether to apply MHP. As an example, whether to apply MHP may be explicitly signaled or may be implicitly derived by the decoding device.
[0305] In addition, as an embodiment, whether to apply MHP can be sent from the encoding device to the decoding device by signal. For example, an MHP flag indicating whether to apply MHP can be sent from the encoding device to the decoding device by signal. In this case, the conditions for signaling / parsing the MHP flag can be defined in advance. The signaling / parsing conditions of the MHP flag can be the availability conditions of the MHP. When the signaling / parsing conditions are met, the decoding device can parse the MHP flag from the bitstream. Alternatively, as an embodiment, whether to apply MHP can be derived by the decoding device based on predefined encoding information. As an example, whether to apply MHP can be defined in the same manner as the MHP availability conditions (or signaling / parsing conditions) described below.
[0306] In addition, as an embodiment, the additional prediction block generation unit 1510 may obtain MHP information (or may be referred to as MHP prediction information) to generate an additional prediction block. As an example, the MHP information may include weight information and / or prediction information. A reference block according to the MHP mode, that is, an additional prediction block, may be derived based on the prediction information, and the additional prediction block derived based on the weight information may be weighted summed with the basic prediction block (or intermediate prediction block). In addition, as an example, the MHP information may further include an MHP flag indicating whether MHP is applied.
[0307] As an example, the prediction information may include mode information for deriving an additional prediction block and motion information according to the mode. The mode information may be inter-prediction mode information indicating whether it is a merge mode or an AMVP mode. For example, the mode information may be a merge flag. In other words, the additional prediction block may be derived using the merge mode or the AMVP mode, and a flag syntax element indicating it may be signaled. Alternatively, the additional prediction block may be derived using a predefined mode among the merge mode or the AMVP mode. Alternatively, the merge mode or the AMVP mode may be selected based on predefined encoding information.
[0308] As an example, when the merge mode is used to derive the additional prediction block, the prediction information may include a merge index. The merge index may specify a merge candidate in the merge candidate list. When the AMVP mode is used to derive the additional prediction block, the prediction information may include a motion vector predictor flag, a reference index, and motion vector difference information. The motion vector predictor flag may specify a candidate in the motion vector predictor candidate list.
[0309] The final prediction block generation unit 1520 may generate a final prediction block by weighted summing the basic prediction block and the additional prediction block. As described above, the number of additional prediction blocks may be less than or equal to the predefined number. For example, when the number of additional prediction blocks is 2, the final prediction block may be a block in which the basic prediction block and the two additional prediction blocks are weighted summed.
[0310] As described above, when a plurality of additional prediction blocks are combined, the plurality of additional prediction blocks may be weighted-added to the basic prediction block in sequence, or the basic prediction block and the plurality of generated additional prediction blocks may be weighted-added at once.
[0311] exist Figures 8 to 12 The above-described embodiments in can be similarly applied, and repeated descriptions related thereto will be omitted.
[0312] In the above embodiments, the method is described as a series of steps or boxes based on the flowchart, but the corresponding embodiments are not limited to the order of the steps, and some steps may occur simultaneously or in a different order than other steps described above. In addition, those skilled in the art will appreciate that the steps shown in the flowchart are not exclusive, and other steps may be included or one or more steps in the flowchart may be deleted without affecting the scope of the embodiments of the present disclosure.
[0313] The above-mentioned method according to the embodiment of the present disclosure can be implemented in the form of software, and the encoding device and / or decoding device according to the present disclosure can be included in a device that performs image processing, such as a TV, a computer, a smart phone, a set-top box, a display device, etc.
[0314] In the present disclosure, when the embodiment is implemented as software, the above method can be implemented as a module (process, function, etc.) that performs the above functions. The module can be stored in a memory and can be executed by a processor. The memory can be located inside or outside the processor and can be connected to the processor by various well-known means. The processor may include an application-specific integrated circuit (ASIC), another chipset, a logic circuit, and / or a data processing device. The memory may include a read-only memory (ROM), a random access memory (RAM), a flash memory, a memory card, a storage medium, and / or other storage devices. In other words, the embodiments described herein can be implemented on a processor, a microprocessor, a controller, or a chip. For example, the functional unit shown in each of the figures can be implemented on a computer, a processor, a microprocessor, a controller, or a chip. In this case, information (e.g., information about instructions) or an algorithm for implementation can be stored in a digital storage medium.
[0315] In addition, the decoding device and the encoding device of the embodiment of the present disclosure can be included in multimedia broadcast sending and receiving devices, mobile communication terminals, home theater video devices, digital theater video devices, surveillance cameras, video conversation devices, real-time communication devices such as video communication, mobile streaming devices, storage media, cameras, devices for providing video on demand (VoD) services, over-the-top video (OTT) devices, devices for providing Internet streaming services, three-dimensional (3D) video devices, virtual reality (VR) devices, augmented reality (AR) devices, videophone video devices, transportation terminals (e.g., vehicle (including autonomous driving vehicle) terminals, aircraft terminals, ship terminals, etc.) and medical video devices, etc., and can be used to process video signals or data signals. For example, over-the-top video (OTT) devices can include game consoles, Blu-ray players, networked TVs, home theater systems, smart phones, tablet computers, digital video recorders (DVRs), etc.
[0316] In addition, the processing method of the embodiment of the present disclosure can be generated in the form of a program executed by a computer and can be stored in a computer-readable recording medium. Multimedia data having a data structure according to an embodiment of the present disclosure can also be stored in a computer-readable recording medium. Computer-readable recording media include all types of storage devices and distributed storage devices that store computer-readable data. Computer-readable recording media may include, for example, Blu-ray discs (BD), universal serial buses (USB), ROMs, PROMs, EPROMs, EEPROMs, RAMs, CD-ROMs, tapes, floppy disks, and optical media storage devices. In addition, computer-readable recording media include media implemented in the form of carrier waves (e.g., transmitted via the Internet). In addition, the bit stream generated by the encoding method may be stored in a computer-readable recording medium or may be sent via a wired or wireless communication network.
[0317] In addition, the embodiments of the present disclosure may be implemented by a computer program product through a program code, and the program code may be executed on a computer by the embodiments of the present disclosure. The program code may be stored on a computer-readable carrier.
[0318] Fig.16 An example of a content streaming system to which an embodiment of the present disclosure can be applied is shown.
[0319] refer to Fig.16 The content streaming transmission system to which the embodiments of the present disclosure are applied may mainly include an encoding server, a streaming transmission server, a web server, a media storage, a user device, and a multimedia input device.
[0320] The encoding server generates a bitstream by compressing content input from a multimedia input device such as a smartphone, a camera, a camcorder, etc. into digital data and transmits it to the streaming server. As another example, when a multimedia input device such as a smartphone, a camera, a camcorder, etc. directly generates a bitstream, the encoding server may be omitted.
[0321] A bitstream may be generated by applying the encoding method or the bitstream generating method of the embodiment of the present disclosure, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
[0322] The streaming server sends multimedia data to the user device through the web server based on the user's request, and the web server serves as a medium to inform the user what services are available. When the user requests the required service from the web server, the web server delivers it to the streaming server, and the streaming server sends the multimedia data to the user. In this case, the content streaming system may include a separate control server, and in this case, the control server controls the command / response between each device in the content streaming system.
[0323] The streaming server may receive content from a media storage and / or encoding server. For example, when receiving content from an encoding server, the content may be received in real time. In this case, in order to provide a smooth streaming service, the streaming server may store the bitstream for a specific period of time.
[0324] Examples of user devices may include mobile phones, smart phones, laptop computers, digital broadcast terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation, tablet PCs, tablet computers, ultrabooks, wearable devices (e.g., smart watches, smart glasses, head-mounted displays (HMDs), digital televisions, desktops, digital signage, etc.).
[0325] Each server in the content streaming system may be operated as a distributed server, and in this case, data received from each server may be distributed and processed.
[0326] The claims set forth herein can be combined in various ways. For example, the technical features of the method claims of the present disclosure can be combined and implemented as a device, and the technical features of the device claims of the present disclosure can be combined and implemented as a method. In addition, the technical features of the method claims of the present disclosure and the technical features of the device claims can be combined and implemented as a device, and the technical features of the method claims of the present disclosure and the technical features of the device claims can be combined and implemented as a method.
Claims
1. An image decoding method, the method comprising: performing bidirectional prediction to generate a basic prediction block for the current block; Configure candidate lists for multi-hypothesis prediction; deriving motion information of the current block based on the candidate list; generating an additional prediction block for the current block based on the motion information; as well as A weighted sum of the basic prediction block and the additional prediction block is performed to generate a final prediction block for the current block.
2. The method according to claim 1, wherein: The candidates included in the candidate list are reordered based on cost.
3. The method according to claim 2, wherein: The method further includes obtaining a candidate index within the reordered candidate list indicating motion information of the current block.
4. The method according to claim 2, wherein: The cost of the candidate is calculated based on a difference between a template region of a block specified by the candidate and a template region of the current block.
5. The method according to claim 4, wherein: The sum of absolute differences (SAD) or the sum of absolute transformed differences (SATD) is used to calculate the difference.
6. The method according to claim 2, wherein: The cost of the candidate is calculated based on a difference between the base prediction block and a block specified by the candidate.
7. The method according to claim 6, wherein: The sum of absolute differences (SAD) or the sum of absolute transformed differences (SATD) is used to calculate the difference.
8. The method according to claim 3, wherein: Refinement is performed on the motion information of the candidate indicated by the candidate index.
9. A method for image encoding, the method comprising: performing bidirectional prediction to generate a basic prediction block for the current block; Configure candidate lists for multi-hypothesis prediction; determining motion information of the current block based on the candidate list; generating an additional prediction block for the current block based on the motion information; as well as A weighted sum of the basic prediction block and the additional prediction block is performed to generate a final prediction block for the current block. 10 . A computer-readable storage medium storing a bit stream generated by the image encoding method according to claim 9 .
11. A method for transmitting data for image information, the method comprising: performing bidirectional prediction to generate a basic prediction block for the current block; Configure candidate lists for multi-hypothesis prediction; determining motion information of the current block based on the candidate list; generating an additional prediction block for the current block based on the motion information; performing a weighted sum of the basic prediction block and the additional prediction block to generate a final prediction block for the current block; Encoding the current block based on the final prediction block to generate a bitstream; as well as Data including the bit stream is transmitted.