Image encoding / decoding method and apparatus, and recording medium having bit stream stored therein
By generating the candidate list of the current block and deriveing motion information, the difficulties in the generation of inter prediction candidate lists and exporting motion information in the prior art are solved, and the accuracy and reliability of inter prediction are improved.
Patent Information
- Application Number
- CN202380051726.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-07-06
- Filing Date
- 2023-07-03
- Publication Date
- 2025-02-11
AI Technical Summary
The prior art is difficult to effectively generate a candidate list for inter prediction and derive candidates that reflect the motion at the lower right position of the current block, affecting the accuracy and reliability of inter prediction.
By generating a candidate list of the current block, the motion information of the current block is derived based on any of the multiple candidates, and inter prediction is performed. The candidate list may include a spatial candidate, a temporal candidate, or an derived candidate, and the motion information of the current block may be derived based on at least one of the upper right block or the lower left block.
The accuracy and reliability of inter prediction are improved, and the reliability of time candidates is improved by adaptively determining the time neighbor block position of the time candidate.
Smart Images

Figure CN119422375A_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 generating various candidates of a candidate list for inter-frame prediction.
[0006] The present disclosure provides a method and apparatus for deriving a candidate reflecting a motion at a lower right position of a current block.
[0007] The present disclosure provides a method and apparatus for deriving motion information of a temporal candidate.
[0008] The present disclosure provides a method and apparatus for adding various candidates to a candidate list.
[0009] Technical Solution
[0010] According to the image decoding method and device of the present disclosure, a candidate list of a current block can be generated, motion information of the current block can be derived based on any one of a plurality of candidates belonging to the candidate list, and inter-frame prediction can be performed on the current block based on the motion information of the current block. Here, the plurality of candidates can include at least one of a spatial candidate, a temporal candidate, or a derived candidate.
[0011] In the image decoding method and apparatus according to the present disclosure, the derived candidate motion information may be derived based on at least one of an upper right block of the current block or a lower left block of the current block.
[0012] In the image decoding method and apparatus according to the present disclosure, the upper right block of the current block may be a block including an upper right reference position, and the lower left block of the current block may be a block including a lower left reference position. Here, the upper right reference position and the lower left reference position may be determined based on at least one of the width or height of the current block.
[0013] In the image decoding method and apparatus according to the present disclosure, the upper right block of the current block may be a block including a first position moved by a predetermined first distance in the left or right direction from the upper right reference position, and the lower left block of the current block may be a block including a second position moved by a predetermined second distance in the lower or upper direction from the lower left reference position. Here, the first position and the second position may be positioned on the same straight line.
[0014] In the image decoding method and device according to the present disclosure, the upper right block of the current block may be a block including a first position moved by a predetermined distance in the left or right direction from the upper right reference position, and the lower left block of the current block may be a block including a second position moved by a predetermined distance in the lower or upper direction from the lower left reference position.
[0015] In the image decoding method and apparatus according to the present disclosure, the predetermined distance may be adaptively determined based on the size of the current block.
[0016] In the image decoding method and apparatus according to the present disclosure, a search direction for determining at least one of an upper right block or a lower left block may be determined based on whether a width of a current block is greater than a height of the current block.
[0017] In the image decoding method and apparatus according to the present disclosure, at least one of the upper right block or the lower left block may be determined by searching for available blocks having motion information different from motion information of at least one of the left block or the upper block of the current block.
[0018] In the image decoding method and apparatus according to the present disclosure, a search range for determining at least one of an upper right block or a lower left block may be divided into a plurality of subranges, and derived candidates may be derived for each of the plurality of subranges.
[0019] In the image decoding method and apparatus according to the present disclosure, the derived candidate may be adaptively added to the candidate list based on whether the temporal candidate is available for the current block.
[0020] In the image decoding method and apparatus according to the present disclosure, the temporal candidate has motion information of a temporal neighboring block corresponding to the current block, and the temporal neighboring block can be specified according to motion information derived based on at least one of an upper right block or a lower left block.
[0021] The image encoding method and device according to the present disclosure can generate a candidate list of the current block, and perform inter-frame prediction on the current block based on any one of multiple candidates belonging to the candidate list. Here, the multiple candidates may include at least one of a spatial candidate, a temporal candidate, or a derived candidate.
[0022] A computer-readable digital storage medium is provided, which stores encoded video / image information, thereby causing a decoding device according to the present disclosure to perform an image decoding method.
[0023] A computer-readable digital storage medium storing video / image information generated according to an image encoding method according to the present disclosure is provided.
[0024] A method and apparatus for transmitting video / image information generated according to an image encoding method according to the present disclosure are provided.
[0025] Beneficial Effects
[0026] According to the present disclosure, motion information within the current picture can be used to derive a candidate reflecting the motion at the lower right position of the current block, thereby improving the accuracy and reliability of inter-frame prediction.
[0027] According to the present disclosure, at least one of a plurality of derived candidates may be selectively used to improve the accuracy and reliability of inter-frame prediction.
[0028] According to the present disclosure, the positions of temporal neighboring blocks for a temporal candidate may be adaptively determined, improving the reliability for the temporal candidate and further improving the accuracy of inter-frame prediction. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] Figure 1 A video / image compilation system according to the present disclosure is shown.
[0030] Figure 2 A schematic block diagram showing an encoding device to which an embodiment of the present disclosure is applicable and which performs encoding of a video / image signal.
[0031] Figure 3 A schematic block diagram showing a decoding device to which an embodiment of the present disclosure is applicable and which performs decoding of a video / image signal.
[0032] Figure 4 An inter-frame prediction method performed by a decoding device according to an embodiment of the present disclosure is shown.
[0033] Figure 5 A schematic configuration of the inter-frame predictor 332 that performs the inter-frame prediction method according to the present disclosure is shown.
[0034] Figure 6An inter-frame prediction method performed by an encoding device as an embodiment according to the present disclosure is shown.
[0035] Figure 7 A schematic configuration of the inter-frame predictor 221 that performs the inter-frame prediction method according to the present disclosure is shown.
[0036] Figure 8 An example of a content streaming system to which an embodiment of the present disclosure can be applied is shown. DETAILED DESCRIPTION
[0037] 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. When describing each of the drawings, similar reference numerals are used for similar components.
[0038] 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.
[0039] 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.
[0040] 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.
[0041] 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.).
[0042] This specification proposes various embodiments of video / image coding, and unless otherwise stated, these embodiments may be performed in combination with each other.
[0043] 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 be composed 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.
[0044] 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.
[0045] 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.
[0046] 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".
[0047] 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".
[0048] 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".
[0049] 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”.
[0050] 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".
[0051] Here, technical features described individually in one drawing may be implemented individually or simultaneously.
[0052] Figure 1 A video / image compilation system according to the present disclosure is shown.
[0053] refer to Figure 1 , a video / image coding system may include a first device (source device) and a second device (receiving device).
[0054] 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.
[0055] 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.
[0056] 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 bit stream.
[0057] 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.
[0058] The decoding device may decode the video / image by performing a series of processes such as inverse quantization, inverse transformation, prediction, etc. corresponding to the operations of the encoding device.
[0059] The renderer may render the decoded video / image. The rendered video / image may be displayed through a display unit.
[0060] 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.
[0061] 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, an inverse quantizer 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.
[0062] 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.
[0063] 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.
[0064] 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.
[0065] 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.
[0066] 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 sent to the transformer 232. In this case, the 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.
[0067] 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.
[0068] 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.
[0069] 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 a neighboring block as motion information of a current block. For skip mode, unlike merge mode, a residual signal may not be transmitted. For motion vector prediction (MVP) mode, a motion vector of a neighboring block is used as a motion vector predictor, and a motion vector difference is signaled to indicate a motion vector of the current block.
[0070] 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.
[0071] 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.
[0072] 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.
[0073] 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.
[0074] 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.
[0075] 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 inverse quantizer 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.
[0076] 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.
[0077] 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.
[0078] 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.
[0079] 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.
[0080] refer to Figure 3 , the decoding apparatus 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 332 and an intra-frame predictor 331. The residual processor 320 may include a dequantizer 321 and an inverse transformer 321.
[0081] 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.
[0082] When a bit stream including video / image information is input, the decoding apparatus 300 may generate a decoded signal in response to the bit stream received in the decoded signal. Figure 2 The image is reconstructed by the process of processing video / image information in the encoding device of the decoding device. For example, the decoding device 300 can derive the unit / block based on the relevant information of the block segmentation obtained from the bit stream. The decoding device 300 can perform decoding by using the 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 the coding tree unit or the maximum coding unit according to the quadtree structure, the binary tree structure and / or the 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.
[0083] 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, decoded information of neighboring blocks and blocks to be decoded, or information of symbols / bins decoded in the previous step, perform arithmetic decoding on the bins by predicting the probability of occurrence of the 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 the 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 .
[0084] 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 an inverse quantizer 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.
[0085] The inverse quantizer 321 may inverse quantize the quantized transform coefficient and output the transform coefficient. The inverse quantizer 321 may rearrange the quantized transform coefficient 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 inverse quantizer 321 may perform inverse quantization on the quantized transform coefficient by using a quantization parameter (e.g., quantization step size information) and obtain the transform coefficient.
[0086] The inverse transformer 322 inversely transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).
[0087] 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.
[0088] 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.
[0089] 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 can 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.
[0090] 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.
[0091] 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.
[0092] 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.
[0093] 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.
[0094] The (modified) reconstructed picture stored in the DPB of the memory 360 can be used as a reference picture in the inter-frame predictor 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.
[0095] 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.
[0096] Figure 4 An inter-frame prediction method performed by a decoding device according to an embodiment of the present disclosure is shown.
[0097] refer to Figure 4 , a candidate list for predicting motion information of the current block may be generated S400.
[0098] The candidate list may be used for a merge mode or an advanced motion vector prediction (AMVP) mode. However, it is not limited thereto, and the candidate list may be used for an affine merge mode or an affine inter mode.
[0099] The motion information may include at least one of a motion vector, a reference picture index, inter prediction direction information, or weight information for bidirectional weighted prediction.
[0100] The candidate list may include at least one of spatial candidates, temporal candidates, derived candidates, or history-based candidates.
[0101] The spatial candidate may be derived based on motion information of a neighboring block (hereinafter referred to as a spatial neighboring block) that is spatially adjacent to the current block. The spatial neighboring block may include at least one of an upper neighboring block, a left neighboring block, a lower left neighboring block, an upper right neighboring block, or an upper left neighboring block of the current block.
[0102] Alternatively, the spatial candidate may be derived based on the motion information of the non-adjacent block. Here, the non-adjacent block is a block decoded before the current block, and may refer to a block that belongs to the same picture as the current block but is not adjacent to the current block. The non-adjacent block may be a block at a position K sample units away from the current block in at least one direction of the vertical, horizontal or diagonal directions. Here, K may be an integer of 4, 8, 16, 32 or more.
[0103] The temporal candidate may be derived based on motion information of a neighboring block (hereinafter referred to as a temporal neighboring block) that is temporally adjacent to the current block. The temporal neighboring block may be a block that belongs to a reference picture (a collocated picture) decoded before the current picture and is positioned at the same position as the current block. The block at the same position may be a block including the position of the upper left sample of the current block, the position of the center sample, or the position of the sample adjacent to the lower right corner of the current block. Alternatively, the temporal neighboring block may refer to a block at a position offset by a predetermined disparity vector from the block at the same position.
[0104] The disparity vector may be a motion vector of a specific block predefined equally for the encoding device and the decoding device. As an example, the predefined specific block may be any one of the left neighboring block, the upper neighboring block, the upper left neighboring block, the upper right neighboring block, or the lower left neighboring block of the current block. However, when the motion vector of the specific block is not available, the disparity vector may be derived based on the motion vector corresponding to the lower right position of the current block (or the derived candidate motion vector). The method for deriving the motion vector corresponding to the lower right position of the current block is the same as described below, and a detailed description is omitted here.
[0105] Alternatively, the disparity vector may be determined as any one of a plurality of motion vector candidates belonging to a motion vector candidate list. The plurality of motion vector candidates may include at least one of the motion vectors of the spatially neighboring blocks described above or the motion vector corresponding to the lower right position of the current block described below (or the derived candidate motion vector).
[0106] The above-mentioned temporal candidate is available only when the temporary_mvp_enabled_flag signaled in the high-level syntax such as sequence parameter set (SPS), picture parameter set (PPS), picture header (PH), slice header (SH), etc. is true, and may not be used when the motion information of the block at the same position is not available. In addition, because the reliability of the motion information in the current picture is higher than the motion information in the reference picture, a method for deriving a candidate reflecting the motion at the lower right position of the current block (hereinafter, referred to as a derived candidate) from the motion information of a specific block of the current block is described.
[0107] The derived candidate may be derived based on motion information of at least one of an upper right block or a lower left block of the current block.
[0108] Method 1 for determining the top right / bottom left block
[0109] The upper right block of the current block may be a coding block including samples at the upper right reference position or a sub-block having a predetermined size. Here, the sub-block may be any one of the sub-blocks within the coding block partitioned with a predetermined size, and the predetermined size may be 2x2, 2x4, 4x2, 4x4 or more. The sub-blocks in the embodiments described below may also be understood to have the same meaning. Similarly, the lower left block of the current block may be a coding block including samples at the lower left reference position or a sub-block having a predetermined size.
[0110] When the position of the upper left sample of the current block is assumed to be (0, 0), the upper right reference position and the lower left reference position may be defined as (N*W, -1) and (-1, N*H), respectively. Here, W and H refer to the width and height of the current block, respectively, and N may be at least one integer in the range of 1 to 32. However, it is not limited thereto, and N may be at least one integer in the range of -32 to 0.
[0111] For ease of description, it is assumed that N is 2. In this case, the derived candidate motion information may be derived based on an upper right block including an upper right reference position (2W, -1) and a lower left block including a lower left reference position (-1, 2H). As an example, the derived candidate motion information may be derived as in the following Equation 1.
[0112] [Equation 1]
[0113]
[0114]
[0115] In Equation 1, MV RT (x) may refer to a motion vector of the x component of the upper right block including the upper right reference position (2W, -1), and MV RT (y) may refer to the motion vector of the y component of the top right block including the top right reference position (2W, -1). MV LB (x) may refer to a motion vector of the x component of the lower left block including the lower left reference position (-1, 2H), and MV LB (y) may refer to the motion vector of the y component of the lower left block including the lower left reference position (-1, 2H). MV RB (x) and MV RB (y) is a motion vector corresponding to the lower right position of the current block, which can be used as a derived candidate motion vector. As in Equation 1, the derived candidate motion vector can be calculated considering the horizontal distance (W) between the current block and the upper right block and the vertical distance (H) between the current block and the lower left block.
[0116] The upper right / lower left reference positions are equally applicable not only when the current block is a square, but also when the current block is a non-square. In other words, even if the width of the current block is greater than the height or the width of the current block is less than the height, the upper right reference position and the lower left reference position can be defined as (N*W, -1) and (-1, N*H), respectively.
[0117] Alternatively, the upper right / lower left reference positions may be defined differently depending on whether the current block is a square. For example, when the current block is a square, as described above, the upper right reference position and the lower left reference position may be defined as (N*W, -1) and (-1, N*H), respectively. On the other hand, when the current block is a non-square, the upper right reference position and the lower left reference position may be defined as (M*(W+H), -1) and (-1, M*(W+H)), respectively. Here, W and H refer to the width and height of the current block, respectively, and M may be at least one integer in the range of 1 to 16. However, it is not limited thereto, and M may also be at least one integer in the range of -16 to 0.
[0118] For ease of description, it is assumed that M is 1. In this case, the derived candidate motion information may be derived based on an upper right block including an upper right reference position ((W+H), -1) and a lower left block including a lower left reference position (-1, (W+H)). As an example, the derived candidate motion information may be derived as in the following Equation 2.
[0119] [Equation 2]
[0120]
[0121]
[0122] In Equation 2, MV RT (x) may refer to a motion vector of the x component of the upper right block including the upper right reference position ((W+H), -1), and MV RT (y) may refer to the motion vector of the y component of the upper right block including the upper right reference position ((W+H), -1). MV LB (x) may refer to a motion vector of the x component of the lower left block including the lower left reference position (-1, (W+H)), and MV LB (y) may refer to the motion vector of the y component of the lower left block including the lower left reference position (-1, (W+H)). MV RB (x) and MV RB(y) is a motion vector corresponding to the lower right position of the current block, which can be used as a derived candidate motion vector. As in Equation 2, to calculate the derived candidate motion vector, the horizontal distance (H) between the current block and the upper right block and the vertical distance (W) between the current block and the lower left block can be considered.
[0123] The ranges of N and M described above may be variably determined according to the region that the current block may reference. As an example, the region that the current block may reference may be limited to one coding tree unit (CTU) to which the current block belongs. In this case, when the size of the CTU is 128x128 and the size of the current block is 4x4, N may be at least one integer in the range of 1 to 31.
[0124] Method 2 for determining the top right / bottom left block
[0125] The upper right block of the current block may be a coding block or a subblock including a position (hereinafter referred to as an RT position) moved in the left or right direction from the above-mentioned upper right reference position by a predetermined distance (α). α may be an integer of 4, 8, 16, 32 or more. α may be a value predefined equally for an encoding device and a decoding device. Alternatively, α may be variably determined based on at least one of the size of the current block (e.g., width, height, ratio of width and height, product of width and height, etc.), whether the current block is a square, whether the current block touches the boundary of the CTU, or the position of the current block within the CTU. As an example, when the size of the current block is less than 32x32, α may be configured to 4, and when the size of the current block is greater than or equal to 32x32, α may be configured to 8. At the same time, the lower left block of the current block may be determined depending on the position of the upper right block of the current block. The lower left block of the current block may be a coding block or a subblock including a position (hereinafter referred to as an LB position) moved by a predetermined distance in a lower or upper direction from the above-mentioned lower left reference position in response to the RT position. In this case, the LB position corresponding to the RT position may be determined to be positioned on a straight line passing through the RT position and the lower right position of the current block.
[0126] As an example, when moving a predetermined distance (α) in the left direction from the upper right reference position (2W, -1), the equation of the straight line passing through the above-mentioned RT position, the lower right position of the current block, and the LB position may be expressed as the following Equation 3.
[0127] [Equation 3]
[0128]
[0129] The RT position is variably determined according to the value of α and may be defined as (2W-α, -1), and the LB position may be calculated by using an equation of a straight line that changes according to the value of α. When the size of the current block is 8x8 and the value of α is 4, the RT position and the LB position may be determined as (12, -1) and (-1, 28), respectively.
[0130] Alternatively, for convenience of calculation, the upper right reference position and the lower left reference position may be simplified to (2W, 0) and (0, 2H), respectively, and in this case, the straight line equation in Equation 3 may be changed as shown in Equation 4.
[0131] [Equation 4]
[0132]
[0133] When using Equation 4, under the same conditions, the initial RT position can be determined as (12, 0) and the initial LB position can be determined as (0, 24). Based on the initial RT / LB positions, the final RT position and the final LB position can be determined as (12, -1) and (-1, 24), respectively.
[0134] Alternatively, the lower left block of the current block may be a coding block or a subblock including a position (hereinafter referred to as the LB position) moved in the upper or lower direction from the above-mentioned lower left reference position by a predetermined distance (β). β may be an integer of 4, 8, 16, 32 or more. β may be a value predefined equally for the encoding device and the decoding device. Alternatively, β may be variably determined based on at least one of the size of the current block (e.g., width, height, ratio of width and height, product of width and height, etc.), whether the current block is a square, whether the current block touches the boundary of the CTU, or the position of the current block within the CTU. β may be a value different from the above-mentioned α. Meanwhile, the upper right block of the current block may be determined depending on the position of the lower left block of the current block. The upper right block of the current block may be a coding block or a subblock including a position (hereinafter referred to as the RT position) moved in the right or left direction from the above-mentioned upper right reference position in response to the LB position. In this case, the RT position corresponding to the LB position may be determined to be positioned on a straight line passing through the LB position and the lower right position of the current block.
[0135] Method 3 for determining the top right / bottom left block
[0136] The upper right block of the current block can be determined by searching for available blocks within a predetermined search range. The search range can be from the upper right position of the current block (e.g., (W, -1)) to the upper right reference position. Specifically, when a predetermined distance (α) is moved, it is possible to check whether the coding block or sub-block including the moved position is available. Here, the predetermined distance (α) is the same as described in "Method 2 for Determining the Upper Right / Lower Left Block". The available block first found during the search process can be configured as the upper right block of the current block. In this case, the search can be performed in the right direction from the upper right position of the current block, or the search can be performed in the left direction from the upper right reference position of the current block. At the same time, the lower left block of the current block can be determined depending on the position of the predetermined upper right block, which is the same as described in "Method 2 for Determining the Upper Right / Lower Left Block".
[0137] Alternatively, the lower left block of the current block can be determined by searching for available blocks within a predetermined search range. The search range can be from the lower left position of the current block (e.g., (-1, H)) to the lower left reference position. Specifically, when a predetermined distance (β) is moved, it is possible to check whether the coding block or sub-block including the moved position is available. Here, the predetermined distance (β) is the same as described in "Method 2 for Determining the Upper Right / Lower Left Block". The available block first found during the search process can be configured as the lower left block of the current block. In this case, the search can be performed in the lower direction from the lower left position of the current block, or the search can be performed in the upper direction from the lower left reference position of the current block. At the same time, the upper right block of the current block can be determined depending on the position of the predetermined lower left block, which is the same as described in "Method 2 for Determining the Upper Right / Lower Left Block".
[0138] Method 4 for determining the top right / bottom left block
[0139] The upper right block and the lower left block of the current block may be coding blocks or sub-blocks including positions moved by a predetermined distance (α) from the above-mentioned upper right reference position and the lower left reference position, respectively. Specifically, the upper right block of the current block may be a coding block or sub-block including a position moved by a predetermined distance (α) to the left or right from the upper right reference position, and the lower left block of the current block may be a coding block or sub-block including a position moved by a predetermined distance (α) downward or upward from the lower left reference position. Here, the predetermined distance (α) is the same as described in “Method 2 for determining the upper right / lower left block”.
[0140] Method 5 for determining the top right / bottom left block
[0141] The upper right block of the current block can be determined by searching for available blocks in the left or right direction from a predetermined search starting position. The search starting position may be an upper right reference position and / or an upper right position of the current block. Specifically, when a predetermined distance (α) is moved from the search starting position, it is possible to check whether the coding block or sub-block including the moved position is available. Here, the predetermined distance (α) is the same as described in “Method 2 for determining the upper right / lower left block”. The available block first found during the search process may be configured as the upper right block of the current block.
[0142] Meanwhile, the lower left block of the current block may be determined by searching for available blocks in a downward or upward direction from a predetermined search start position. The search start position may be the lower left reference position and / or the lower left position of the current block. Specifically, when the same distance (α) is moved from the search start position, it is possible to check whether the coding block or sub-block including the moved position is available. The available block first found during the search process may be configured as the lower left block of the current block.
[0143] The search direction may be predefined equally for the encoding device and the decoding device. As an example, the search direction for the upper right block may be the left direction starting from the upper right reference position, and the search direction for the lower left block may be the lower direction starting from the lower left reference position or the lower left position. Alternatively, the search direction for the upper right block may be the right direction starting from the upper right reference position or the upper right position, and the search direction for the lower left block may be the upper direction starting from the lower left reference position.
[0144] Alternatively, the search direction may vary depending on the size and / or shape of the current block. As an example, when the width of the current block is less than the height, the search direction for the upper right block may be the right direction starting from the upper right reference position, and the search direction for the lower left block may be the upper direction starting from the lower left reference position. Conversely, when the width of the current block is greater than the height, the search direction for the upper right block may be the left direction starting from the upper right reference position, and the search direction for the lower left block may be the lower direction starting from the lower left reference position.
[0145] When determining the upper right / lower left block of the current block, different methods may be applied. As an example, the upper right block may be determined based on any one of methods 1 to 5 for determining the upper right / lower left block, and the lower left block may be determined based on another one of methods 1 to 5 for determining the upper right / lower left block.
[0146] The upper right / lower left block may be determined by at least one of the above methods for determining the upper right / lower left block. Based on at least one of the position or motion information of the determined upper right / lower left block, motion information corresponding to the lower right position of the current block may be derived, and the motion information may be used as candidate motion information for deriving.
[0147] As an example, a motion vector corresponding to the lower right position of the current block may be derived as in Equation 5 below.
[0148] [Equation 5]
[0149]
[0150]
[0151] In Equation 5, MV RT (x) may refer to the motion vector of the x component of the top right block, and MV RT (y) may refer to the motion vector of the y component of the top right block. MV LB (x) may refer to the motion vector of the x component of the lower left block, and MV LB (y) may refer to the motion vector of the y component of the lower left block. MV RB (x) may refer to the motion vector of the x component corresponding to the lower right position of the current block, and MV RB (y) may refer to a motion vector of the y component corresponding to the lower right position of the current block. Meanwhile, in Equation 5, dx0 and dy0 may refer to the width and height of the current block, respectively. In addition, dx1 may refer to the horizontal distance between the current block and the upper right block, and dy1 may refer to the vertical distance between the current block and the lower left block. As an example, dx1 may be determined based on the difference between the width of the current block and the position of the upper right block (i.e., the RT position, the moving position in the left / right direction, or the upper right reference position) determined by at least one of the above methods 2 to 5 for determining the upper right block. dy1 may be determined based on the difference between the height of the current block and the position of the lower left block (i.e., the LB position, the moving position in the upper / lower direction, or the lower left reference position) determined by at least one of the above methods 2 to 5 for determining the lower left block.
[0152] When another method is not available, any one of the methods 1, 2, or 4 for determining the upper right / lower left block may be applied. As an example, when the upper right / lower left block according to the method 1 for determining the upper right / lower left block does not exist or has no motion information, the upper right / lower left block may be determined according to the method 2 or 4 for determining the upper right / lower left block. Alternatively, when the upper right / lower left block according to the method 2 for determining the upper right / lower left block does not exist or has no motion information, the upper right / lower left block may be determined according to the method 1 or 4 for determining the upper right / lower left block. Alternatively, when the upper right / lower left block according to the method 4 for determining the upper right / lower left block does not exist or has no motion information, the upper right / lower left block may be determined according to the method 1 or 2 for determining the upper right / lower left block.
[0153] Multiple derived candidates may be derived for the current block. To this end, multiple upper right blocks and multiple lower left blocks may be determined for the current block, respectively. As an example, it is assumed that the first to N-th upper right blocks and the first to N-th lower left blocks are determined. In this case, the i-th derived candidate (1≤i≤N) may be derived based on the motion information of the i-th upper right block and the motion information of the i-th lower left block corresponding thereto. Hereinafter, a method for determining multiple upper right blocks and lower left blocks is described in detail.
[0154] Method 1 for determining multiple upper right / lower left blocks
[0155] The upper right block of the current block can be determined by searching for available blocks within a predetermined search range, and multiple lower left blocks can be determined based on the position of the determined upper right block. The search range can be from the upper right position of the current block (e.g., (W, -1)) to the upper right reference position. Specifically, when a predetermined distance (α) is moved, it is possible to check whether the coding block or sub-block including the moved position is available. Here, the predetermined distance (α) is the same as described in "Method 2 for Determining Upper Right / Lower Left Blocks". The search direction can be the right direction starting from the upper right position of the current block, or it can be the left direction starting from the upper right reference position of the current block.
[0156] The upper right block of the current block can be determined based on the available blocks found during the search process. As an example, all available blocks found during the search process can be configured as the upper right block of the current block. Alternatively, the search can be performed until a predetermined number (N) of available blocks are found, and the N available blocks found during the search process can be configured as the upper right block of the current block. Here, N is a value predefined equally for the encoding device and the decoding device, and can be an integer of 2, 3, 4 or more. Alternatively, N can be variably determined based on information sent by the bitstream signal or the properties of the current block (e.g., size, shape, inter-frame prediction mode, etc.).
[0157] At the same time, the lower left block of the current block can be determined by respectively corresponding to the position of the upper right block determined above. The position of the lower left block corresponding to the position of the upper right block can be determined as described in method 2 for determining the upper right / lower left block, and repeated description is omitted here.
[0158] Alternatively, the lower left block of the current block can be determined by searching for available blocks within a predetermined search range, and multiple upper right blocks can be determined based on the position of the determined lower left block. The search range can be from the lower left position of the current block (e.g., (-1, H)) to the lower left reference position. Specifically, when a predetermined distance (β) is moved, it is possible to check whether the coding block or sub-block including the moved position is available. Here, the predetermined distance (β) is the same as described in "Method 2 for Determining Upper Right / Lower Left Blocks". The search direction can be a lower direction starting from the lower left position of the current block, or it can be an upper direction starting from the lower left reference position of the current block.
[0159] The lower left block of the current block can be determined based on the available blocks found during the search process. For example, all available blocks found during the search process can be configured as the lower left block of the current block. Alternatively, the search can be performed until a predetermined number (M) of available blocks are found, and the M available blocks found during the search process can be configured as the upper right block of the current block. Here, M is a value predefined equally for the encoding device and the decoding device, and can be an integer of 2, 3, 4 or more. Alternatively, M can be variably determined based on information signaled by the bitstream or properties of the current block (e.g., size, shape, inter-frame prediction mode, etc.).
[0160] Meanwhile, the upper right block of the current block can be determined by respectively corresponding to the positions of the lower left blocks determined above. The position of the upper right block corresponding to the position of the lower left block can be determined as described in method 2 for determining the upper right / lower left blocks, and repeated description is omitted here.
[0161] Method 2 for determining multiple upper right / lower left blocks
[0162] The upper right block of the current block can be determined by searching for available blocks in the left or right direction from the determined search start position. The search start position may be the upper right reference position and / or the upper right position of the current block. Specifically, when a predetermined distance (α) is moved from the search start position, it is possible to check whether the coding block or sub-block including the moved position is available. Here, the predetermined distance (α) is the same as described in “Method 2 for determining the upper right / lower left block”.
[0163] The upper right block of the current block can be determined based on the available blocks found during the search process. As an example, all available blocks found during the search process can be configured as the upper right block of the current block. Alternatively, the search can be performed until a predetermined number (N) of available blocks are found, and the N available blocks found during the search process can be configured as the upper right block of the current block. Here, N is a value predefined equally for the encoding device and the decoding device, and can be an integer of 2, 3, 4 or more. Alternatively, N can be variably determined based on information signaled by the bitstream or properties of the current block (e.g., size, shape, inter-frame prediction mode, etc.).
[0164] Meanwhile, the lower left block of the current block may be determined by searching for available blocks in a lower or upper direction from a predetermined search start position. The search start position may be a lower left reference position and / or a lower left position of the current block. Specifically, when the same distance (α) is moved from the search start position, it is possible to check whether the coding block or sub-block including the moved position is available.
[0165] Likewise, the lower left block of the current block may be determined based on the available blocks found during the search process. As an example, all available blocks found during the search process may be configured as the lower left block of the current block. Alternatively, the search may be performed until a predetermined number (N) of available blocks are found, and the N available blocks found during the search process may be configured as the lower left block of the current block.
[0166] The search direction for the upper right / lower left block is the same as that described in “Method 5 for determining the upper right / lower left block”, and a repeated description is omitted here.
[0167] Method 3 for determining multiple upper right / lower left blocks
[0168] The search range for the upper right block of the current block may be divided into a plurality of sub-ranges, and a search for available blocks may be performed for each sub-range. Here, the search range may be from the upper right position of the current block (e.g., (W, -1)) to the upper right reference position. Alternatively, the search range may include one or more sub-ranges in the left direction from the upper right reference position and one or more sub-ranges in the right direction from the upper right reference position. The range in which the search is allowed may be limited to the current coding tree unit (CTU) to which the current block belongs, two or more coding tree units including the current coding tree unit, or a coding tree unit row (CTU row) including the current coding tree unit. The sub-range is defined by L sampling intervals, and L may be 4, 8, 16, 32, 64, 128 or more. L may be a value predefined equally for encoding devices and decoding devices, or may be variably determined based on the properties of the current block (e.g., size, shape, etc.).
[0169] Specifically, it is possible to check whether a coded block or subblock including a moving position is available when a predetermined distance (α) is moved within the current sub-range. Here, the predetermined distance (α) is the same as described in “Method 2 for Determining the Upper Right / Lower Left Block”. The first available block found during the search process can be configured as the upper right block of the current block. Then, the search within the current sub-range is terminated, and the search within the next sub-range is performed in the same manner. Through the above process, at least one upper right block can be derived for each sub-range.
[0170] At the same time, the search range for the lower left block of the current block can be divided into multiple sub-ranges, and a search for available blocks can be performed for each sub-range. Here, the search range can be from the lower left position of the current block (e.g., (-1, H)) to the lower left reference position. Alternatively, the search range may include one or more sub-ranges in the upper direction from the lower left reference position and one or more sub-ranges in the lower direction from the lower left reference position. The range in which the search is allowed can be limited to the current coding tree unit (CTU) to which the current block belongs. The sub-range can be defined by L sampling intervals, which is the same as described above.
[0171] Specifically, it is possible to check whether a coding block or subblock including a moving position is available when a predetermined distance (α or β) is moved within the current sub-range. Here, the predetermined distance (α or β) is the same as described in "Method 2 for determining the upper right / lower left block". The available block first found during the search process can be configured as the lower left block of the current block. Then, the search within the current sub-range is terminated, and the search within the next sub-range can be performed in the same manner. Through the above process, at least one lower left block can be derived for each sub-range.
[0172] Method 4 for determining multiple upper right / lower left blocks
[0173] A plurality of upper right blocks may be determined based on a combination of at least two of the above-mentioned “methods 1 to 5 for determining upper right / lower left blocks”. Similarly, a plurality of lower left blocks may be determined based on a combination of at least two of the above-mentioned “methods 1 to 5 for determining upper right / lower left blocks”.
[0174] When determining multiple upper right / lower left blocks, different methods may be applied. As an example, multiple upper right blocks may be determined based on any one of methods 1 to 4 for determining multiple upper right / lower left blocks, and multiple lower left blocks may be determined based on another one of methods 1 to 4 for determining multiple upper right / lower left blocks.
[0175] The i-th upper right block / lower left block may be determined by at least one of the above methods for determining a plurality of upper right / lower left blocks. Based on at least one of the position or motion information of the determined i-th upper right block / lower left block, motion information corresponding to the lower right position of the current block may be derived, and the motion information may be used as the i-th derived candidate motion information.
[0176] As an example, a motion vector corresponding to the lower right position of the current block may be derived as in the above-mentioned Equation 5, and a detailed description is omitted here.
[0177] The plurality of derived candidates may be added to a candidate list for predicting motion information of the current block. Alternatively, at least one of the plurality of derived candidates may be selectively added to the candidate list.
[0178] As an example, a template matching-based cost may be calculated for a plurality of derived candidates, and the first T derived candidates may be added to the candidate list in ascending order of the calculated cost. The template matching-based cost may be defined as the sample difference between the template region of the current block and the template region of the reference block, where the reference block may be specified by the motion information of the corresponding derived candidate. T may be an integer of 1, 2, 3 or more.
[0179] Alternatively, among the plurality of derived candidates, index information specifying at least one derived candidate added to the candidate list may be signaled.Only the at least one derived candidate specified by the index information may be added to the candidate list.
[0180] In the above embodiment, the upper right / lower left block of the current block can be determined by searching the available blocks. However, although the available blocks are found by searching, the corresponding available blocks can be determined as the upper right / lower left blocks of the current block based on whether the motion information of the corresponding available blocks is the same as the motion information of the spatial neighboring blocks of the current block.
[0181] As an example, when the available block and the spatially adjacent block have the same motion vector, there may be a limitation that the available block is not determined as the upper right block (or lower left block) of the current block. Alternatively, when the available block and the spatially adjacent block have the same motion vector but have different reference image indexes, the available block may be determined as the upper right block (or lower left block) of the current block. Alternatively, when the available block and the spatially adjacent block have the same motion vector and reference image index, there may be a limitation that the available block is not determined as the upper right block (or lower left block) of the current block.
[0182] When there is a limitation that an available block is not determined as the upper right block (or lower left block) of the current block, an available block having motion information different from that of a spatially adjacent block may be re-searched, and the available block found by the re-search may be determined as the upper right block (or lower left block) of the current block.
[0183] When both an available block found in a search (or re-search) process for an upper right block and an available block found in a search (or re-search) process for a lower left block have the same motion vector and / or reference image index as spatially neighboring blocks, there may be a limitation in that the corresponding available blocks are not respectively determined as the upper right block and the lower left block of the current block.
[0184] There may be a situation where an available block having different motion information from a spatially adjacent block is found during the search (or re-search) process for the upper right block, but no available block or an available block having different motion information from a spatially adjacent block is found during the search (or re-search) process for the lower left block. In this case, a coding block or subblock including a position moved by a predetermined distance (d) from the lower left position of the current block may be determined as the lower left block of the current block. Here, the predetermined distance (d) may be the distance from the upper right position of the current block to the predetermined upper right block. Alternatively, a coding block or subblock including a first default position predefined equally for an encoding device and a decoding device may be determined as the lower left block of the current block. Here, the first default position may be the left position of the current block (e.g., (-1, H-1)).
[0185] On the contrary, there may be a case where an available block having different motion information from the spatially adjacent block is found during the search (or re-search) process for the lower left block, but no available block or an available block having different motion information from the spatially adjacent block is found during the search (or re-search) process for the upper right block. In this case, a coding block or sub-block including a position moved by a predetermined distance (d) from the upper right position of the current block may be determined as the upper right block of the current block. Here, the predetermined distance (d) may be the distance from the lower left position of the current block to the predetermined lower left block. Alternatively, a coding block or sub-block including a second default position predefined equally for the encoding device and the decoding device may be determined as the upper right block of the current block. Here, the second default position may be the top position of the current block (e.g., (W-1, -1)).
[0186] Alternatively, there may be a case where an available block or an available block having different motion information from a spatially adjacent block is not found during the search (or re-search) process for the upper right block and the lower left block. In this case, the coding block or subblock including the first default position may be determined as the lower left block of the current block, and the coding block or subblock including the second default position may be determined as the upper right block of the current block.
[0187] The spatial neighboring blocks to be compared with the available blocks may include at least one of the upper neighboring blocks or the left neighboring blocks of the current block. As an example, in the search process for the upper right block, the available block may be compared with the upper neighboring block, and may not be compared with the left neighboring block. In addition, in the search process for the lower left block, the available block may be compared with the left neighboring block, and may not be compared with the upper right neighboring block. Alternatively, regardless of whether it is a search process for the upper right block or a search process for the lower left block, the available block may be compared with the left neighboring block and the upper neighboring block.
[0188] The derived candidate according to the present disclosure may not be added to the candidate list when the temporal candidate is available, and may be added to the candidate list when the temporal candidate is not available. Alternatively, the derived candidate may be added to the candidate list as a new candidate to replace the temporal candidate. Alternatively, the derived candidate may be added to the candidate list independently of the temporal candidate, regardless of whether the temporal candidate is available. In other words, there may be a case where the temporal candidate and the derived candidate are added together to the candidate list of the current block. Alternatively, the derived candidate may be adaptively added to the candidate list based on a flag (e.g., temporal_mvp_enabled_flag) indicating whether the temporal candidate is allowed. The flag may be signaled at a high level such as a sequence parameter set, a picture parameter set, a picture header, a slice header, etc. As an example, when the flag indicates that the temporal candidate is available for a video sequence, a current picture, or a current slice, the derived candidate is not added to the candidate list, and when the flag indicates that the temporal candidate is not available for a video sequence, a current picture, or a current slice, the derived candidate may be added to the candidate list.
[0189] The history-based candidate may refer to a candidate having motion information of a block decoded before the current block (hereinafter, referred to as a previous block). The motion information of the previous block may be sequentially stored in a buffer having a predetermined size according to a decoding order. The previous block may be a spatially adjacent block adjacent to the current block, or may be a block not adjacent to the current block.
[0190] The derived candidate according to the present disclosure may be added before or after the spatial candidate of the candidate list. The derived candidate may be added between the spatial candidate and the temporal candidate of the candidate list. The derived candidate may be added between the temporal candidate and the history-based candidate of the candidate list. The derived candidate may be added after the history-based candidate.
[0191] refer to Figure 4 , the motion information of the current block can be derived based on the candidate list and the candidate index S410.
[0192] A candidate index may refer to information that is coded to derive motion information of a current block. The candidate index may specify one or more candidates among a plurality of candidates belonging to a candidate list.
[0193] The motion vector of the motion information may refer to the motion vector in a block unit. Alternatively, the motion vector of the motion information may refer to a motion vector derived in a sub-block unit of the current block. For this purpose, the current block may be partitioned into a plurality of NxM sub-blocks. Here, the NxM sub-blocks may have a rectangular shape (N>M or N<M) or a square shape (N = M). The values of N and M may be 2, 4, 8, 16, 32 or greater.
[0194] Reference Figure 4 , and inter-frame prediction S420 may be performed on the current block based on the derived motion information.
[0195] Specifically, the motion information of the current block may be used to specify a reference block. A reference block may be specified for each sub-block of the current block. The reference block of each sub-block may belong to one reference picture. In other words, the sub-blocks belonging to the current block may share one reference picture. Alternatively, a reference picture index may be independently configured for each sub-block of the current block. The specified reference block may be configured as a prediction block of the current block.
[0196] Figure 5 FIG. shows a schematic configuration of an inter-frame predictor 332 that performs an inter-frame prediction method according to the present disclosure.
[0197] Reference Figure 4 , an inter-frame prediction method performed in a decoding device is described, which may be performed in the same manner in the inter-frame predictor 332 of the decoding device, and detailed description is omitted below.
[0198] Reference Figure 5 , the inter-frame predictor 332 may include a candidate list generation unit 500, a motion information derivation unit 510, and a prediction sample generation unit 520.
[0199] The candidate list generation unit 500 may generate a candidate list for predicting / deriving the motion information of the current block. The candidate list may be used for a merge mode or an AMVP mode, or may be used for an affine merge mode or an affine inter-frame mode. The motion information may include at least one of a motion vector, a reference image index, inter-frame prediction direction information, or weight information for bidirectional weighted prediction.
[0200] The candidate list generation unit 500 may derive a plurality of candidates including at least one of a spatial candidate, a temporal candidate, a derived candidate, or a history-based candidate, and add them to the candidate list. Additionally, the candidate list generation unit 500 may derive one or more derived candidates and add them to the candidate list. The method for deriving the plurality of candidates and the method for adding the plurality of candidates to the candidate list are the same as those described in Figure 4 and a repeated description is omitted here.
[0201] The motion information derivation unit 510 may derive the motion information of the current block based on the candidate list and the candidate index. Here, the candidate index is information encoded to derive the motion information of the current block, and may specify one or more candidates among the plurality of candidates belonging to the candidate list.
[0202] When deriving the motion information of the current block, the motion information derivation unit 510 may derive a motion vector in block units, or may derive a motion vector in sub-block units of the current block. To derive a motion vector in sub-block units, the motion information derivation unit 510 can partition the current block in units of NxM sub-blocks. Here, the NxM sub-blocks may have a rectangular shape (N > M or N < M) or a square shape (N = M). The values of N and M may be 2, 4, 8, 16, 32, or more.
[0203] The prediction sample generation unit 520 may perform inter-frame prediction based on the motion information obtained from the motion information derivation unit 510 to generate a prediction sample of the current block.
[0204] Specifically, the prediction sample generation unit 520 may specify a reference block by using the motion information of the current block, and may generate a prediction block of the current block based on the specified reference block.
[0205] Alternatively, when a motion vector in sub-block units is derived from the motion information derivation unit 510, the prediction sample generation unit 520 may specify a reference block for each sub-block of the current block, and generate a prediction block of the current block based on the specified reference block. In this case, the specified reference blocks may belong to one reference picture. Alternatively, a reference picture index may be configured independently for each sub-block of the current block, and in this case, any one of the specified reference blocks may belong to a different reference picture from another.
[0206] Figure 6 Shows an inter-frame prediction method performed by an encoding device according to an embodiment of the present disclosure.
[0207] Refer to Figure 6 to generate a candidate list S600 for determining the motion information of the current block.
[0208] The candidate list may be used for merge mode or AMVP mode, or may be used for affine merge mode or affine inter mode.The motion information may include at least one of a motion vector, a reference image index, inter prediction direction information, or weight information for bidirectional weighted prediction.
[0209] A plurality of candidates including at least one of a spatial candidate, a temporal candidate, a derived candidate, or a history-based candidate may be derived, and the plurality of derived candidates may be added to a candidate list. In addition, one or more derived candidates may be derived, which may be added to the candidate list. A method for deriving a plurality of candidates and a method for adding a plurality of candidates to a candidate list are provided. Figure 4 The same as described in , and repeated description is omitted here.
[0210] refer to Figure 6 , inter-frame prediction S610 can be performed on the current block based on the candidate list.
[0211] A prediction sample of the current block may be generated based on at least one best candidate among a plurality of candidates belonging to the candidate list.
[0212] Specifically, the reference block may be specified using motion information of the best candidate among multiple candidates. A prediction block of the current block may be generated based on the specified reference block. Alternatively, a reference block may be specified for each subblock of the current block, and a prediction block of the current block may be generated based on the specified reference block. In this case, the reference block corresponding to the subblock of the current block may belong to one reference picture. Alternatively, a reference picture index may be independently configured for each subblock of the current block, and in this case, any one of the specified reference blocks may belong to a reference picture different from another.
[0213] In addition, among the multiple candidates belonging to the candidate list, at least one best candidate for generating a prediction sample of the current block may be determined. A candidate index specifying the determined best candidate may be encoded. The encoded candidate index may be inserted into the bitstream.
[0214] Figure 7 A schematic configuration of the inter-frame predictor 221 performing the inter-frame prediction method according to the present disclosure is shown.
[0215] refer to Figure 6 , describes an inter-frame prediction method performed in an encoding device, which can be performed in the inter-frame predictor 221 of the encoding device in the same manner, and a detailed description is omitted below.
[0216] refer to Figure 7 , the inter-frame predictor 221 may include a candidate list generating unit 700 and a prediction sample generating unit 710 .
[0217] The candidate list generation unit 700 may generate a candidate list for determining motion information of the current block. The candidate list may be used for a merge mode or an AMVP mode, or may be used for an affine merge mode or an affine inter mode. The motion information may include at least one of a motion vector, a reference picture index, inter prediction direction information, or weight information for bidirectional weighted prediction.
[0218] The candidate list generation unit 700 may derive a plurality of candidates including at least one of a spatial candidate, a temporal candidate, a derived candidate, or a history-based candidate, and add them to the candidate list. In addition, the candidate list generation unit 700 may derive one or more derived candidates and add them to the candidate list. Method for deriving a plurality of candidates and method for adding a plurality of candidates to a candidate list are similar to Figure 4 The same as described in , and repeated description is omitted here.
[0219] The prediction sample generation unit 710 may perform inter-frame prediction on the current block based on the candidate list. The prediction sample of the current block may be generated based on at least one best candidate among a plurality of candidates belonging to the candidate list.
[0220] Specifically, the prediction sample generation unit 710 may specify a reference block by using motion information of the best candidate among a plurality of candidates, and generate a prediction block of the current block based on the specified reference block. Alternatively, a reference block may be specified for each subblock of the current block, and a prediction block of the current block may be generated based on the specified reference block. In this case, the reference block corresponding to the subblock of the current block may belong to one reference picture. Alternatively, a reference picture index may be independently configured for each subblock of the current block, and in this case, any one of the specified reference blocks may belong to a reference picture different from another.
[0221] In addition, the prediction sample generation unit 710 may further include a motion information determination unit (not shown). The motion information determination unit may determine at least one best candidate for generating a prediction sample of the current block among a plurality of candidates belonging to the candidate list. In this case, the entropy encoder 240 may encode a candidate index specifying the determined best candidate and insert it into the bitstream.
[0222] 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.
[0223] 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.
[0224] 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.
[0225] 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 may include game consoles, Blu-ray players, networked TVs, home theater systems, smart phones, tablet computers, digital video recorders (DVRs), etc.
[0226] 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.
[0227] 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.
[0228] Figure 8 An example of a content streaming system to which an embodiment of the present disclosure can be applied is shown.
[0229] refer to Figure 8 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.
[0230] 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.
[0231] 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.
[0232] 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.
[0233] 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 certain period of time.
[0234] 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.).
[0235] 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.
[0236] 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, comprising: Generate a candidate list for the current block; deriving motion information of the current block based on one of a plurality of candidates belonging to the candidate list; as well as Based on the motion information of the current block, performing inter-frame prediction on the current block, The multiple candidates include at least one of a spatial candidate, a temporal candidate or a derived candidate, The derived candidate motion information is derived based on at least one of an upper right block of the current block or a lower left block of the current block.
2. The image decoding method according to claim 1, wherein: The upper right block of the current block is a block including an upper right reference position, wherein the lower left block of the current block is a block including a lower left reference position, and The upper right reference position and the lower left reference position are determined based on at least one of a width or a height of the current block.
3. The image decoding method according to claim 1, wherein: The upper right block of the current block is a block including a first position moved from an upper right reference position in a left direction or a right direction by a predetermined first distance, wherein the lower left block of the current block is a block including a second position moved from a lower left reference position in a lower or upper direction by a predetermined second distance, and Wherein, the first position and the second position are located on the same straight line.
4. The image decoding method according to claim 1, wherein: The upper right block of the current block is a block including a first position moved by a predetermined distance in a left or right direction from an upper right reference position, The lower left block of the current block is a block including a second position moved from a lower left reference position in a lower or upper direction by the predetermined distance.
5. The image decoding method according to claim 4, wherein: The predetermined distance is adaptively determined based on the size of the current block.
6. The image decoding method according to claim 4, wherein: A search direction for determining at least one of the upper right block or the lower left block is determined based on whether the width of the current block is greater than the height of the current block.
7. The image decoding method according to claim 1, wherein: At least one of the upper right block or the lower left block is determined by searching for an available block having motion information different from at least one of a left block or an upper block of the current block.
8. The image decoding method according to claim 1, wherein: A search range for determining at least one of the upper right block or the lower left block is divided into a plurality of sub-ranges, and The derived candidate is derived for each of the plurality of sub-ranges.
9. The image decoding method according to claim 1, wherein: The derived candidates are adaptively added to the candidate list based on whether the temporal candidates are available for the current block.
10. The image decoding method according to claim 1, wherein: The temporal candidate has motion information of a temporal neighboring block corresponding to the current block, and The temporally neighboring block is specified according to motion information derived based on at least one of the upper right block or the lower left block.
11. An image encoding method, comprising: Generate a candidate list for the current block; performing inter-frame prediction on the current block based on one of a plurality of candidates belonging to the candidate list, The multiple candidates include at least one of a spatial candidate, a temporal candidate or a derived candidate, The derived candidate motion information is derived based on at least one of an upper right block of the current block or a lower left block of the current block.
12. A computer-readable storage medium for storing a bit stream generated by the image encoding method according to claim 11.
13. A method for transmitting data for image information, comprising: generating a candidate list of a current block, wherein a plurality of candidates belonging to the candidate list include at least one of a spatial candidate, a temporal candidate, or a derived candidate, and deriving motion information of the derived candidate based on at least one of an upper right block of the current block or a lower left block of the current block; generating a prediction block of the current block based on one of the multiple candidates; generating a bitstream by encoding the current block based on the prediction block; as well as The data including the bitstream is transmitted.