Image decoding method
The inter-prediction method improves video encoding/decoding efficiency by selecting and utilizing optimized reference units from reconstructed neighboring units, addressing inefficiencies in high-resolution video formats like UHD.
Patent Information
- Application Number
- JP2025096947
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2011-12-13
- Filing Date
- 2025-06-10
- Publication Date
- 2025-08-15
AI Technical Summary
Existing video encoding and decoding technologies face inefficiencies in handling high-resolution, high-quality video formats like UHD, particularly in inter-prediction methods, which require improved reference unit determination for enhanced encoding/decoding efficiency.
An inter-prediction method that selects candidate units from reconstructed neighboring units, generates a candidate unit set, and determines a reference unit for improved inter prediction, considering factors such as size, depth, and coding parameters to optimize video encoding/decoding efficiency.
The method enhances the efficiency of video encoding/decoding by reducing bit transmission and improving compression performance through strategic selection and use of reference units in inter-prediction processes.
Smart Images

Figure 2025120371000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to video processing, and more particularly to an inter-prediction method and apparatus. [Background technology]
[0002] Recently, as HD (High Definition) broadcasting services have expanded not only domestically but also globally, many users have become accustomed to high-resolution, high-quality images, and as a result, many organizations are spurring the development of next-generation video equipment.In addition to HDTV, there has been growing interest in UHD (Ultra High Definition), which has a resolution four times that of HDTV, and there is a demand for compression techniques for higher-resolution, high-quality images.
[0003] For video compression, techniques such as inter-prediction, which predicts pixel values contained in a current picture from previous and / or subsequent pictures, intra-prediction, which predicts pixel values contained in a current picture using pixel information within the current picture, and entropy coding, which assigns short codes to symbols that occur frequently and long codes to symbols that occur infrequently, can be used. Summary of the Invention [Problem to be solved by the invention]
[0004] An object of the present invention is to provide a video encoding method and apparatus capable of improving the efficiency of video encoding / decoding.
[0005] Another technical object of the present invention is to provide a video decoding method and apparatus capable of improving the efficiency of video encoding / decoding.
[0006] Another technical object of the present invention is to provide an inter-prediction method and apparatus capable of improving the efficiency of video encoding / decoding.
[0007] Another technical object of the present invention is to provide a method and apparatus for determining a reference unit that can improve the efficiency of video encoding / decoding. [Means for solving the problem]
[0008] One embodiment of the present invention is an inter prediction method, the method including the steps of selecting a candidate unit from reconstructed neighboring units, generating a candidate unit set for a unit to be decoded using the selected candidate unit, determining a reference unit from the candidate units constituting the generated candidate unit set, and performing inter prediction on the unit to be decoded using the determined reference unit, wherein the reconstructed neighboring units include an upper neighboring unit adjacent to an upper side of the unit to be decoded, a left neighboring unit adjacent to a left side of the unit to be decoded, a right upper corner unit located at an upper right corner of the unit to be decoded, a left upper corner unit located at an upper left corner of the unit to be decoded, and a left lower corner unit located at a lower left corner of the unit to be decoded.
[0009] In the candidate unit selection step, the upper adjacent unit, the left adjacent unit, the upper right corner unit, the upper left corner unit, and the lower left corner unit are selected as the candidate units.
[0010] In the candidate unit selection step, the upper adjacent unit and the left adjacent unit are selected as the candidate units.
[0011] In the candidate unit selection step, a unit whose boundary length adjacent to the current unit to be decoded is equal to or greater than a predetermined threshold is selected as the candidate unit from among the restored adjacent units.
[0012] In the candidate unit selection step, a unit having a size equal to or greater than a predetermined threshold is selected as the candidate unit from among the restored adjacent units.
[0013] In the candidate unit selection step, a unit having a depth value equal to or less than a predetermined threshold is selected as the candidate unit from among the restored adjacent units.
[0014] In the candidate unit selection step, the candidate unit is selected based on the relative length between the boundaries where the reconstructed adjacent units are adjacent to the unit to be decoded, the relative size between the reconstructed adjacent units, or the relative depth value between the reconstructed adjacent units.
[0015] In the candidate unit selection step, the candidate unit is selected using at least one of the coding parameters of the unit to be decoded and the coding parameters of the reconstructed neighboring units, and the coding parameters of the unit to be decoded and the coding parameters of the reconstructed neighboring units each include at least one of a motion vector, a reference picture list, a reference picture index, a prediction direction, and a motion vector predictor.
[0016] The first encoding parameters of the unit to be decoded include a first reference picture list and a first reference picture index, and the candidate unit selection step further includes a step of selecting a unit having second encoding parameters as the candidate unit, and the second encoding parameters include at least one of a second reference picture list that is identical to the first reference picture list and a second reference picture index that is identical to the first reference picture index.
[0017] In the candidate unit selection step, a unit having the same reference picture as the reference picture of the current unit to be decoded is selected as the candidate unit.
[0018] In the candidate unit selection step, only units coded by inter prediction are selected as the candidate units.
[0019] In the candidate unit set generation step, the candidate unit set is generated using both the selected candidate unit and a collocated unit, and the collocated unit is a unit that is located at the same spatial position as the unit to be decoded among units in a reference picture for the unit to be decoded.
[0020] In the candidate unit selection step, a predetermined fixed number of units are selected as the candidate units.
[0021] The predetermined fixed number of units is selected based on similarity between the coding parameters of the unit to be decoded and the coding parameters of the reconstructed neighboring units, and the coding parameters of the unit to be decoded and the coding parameters of the reconstructed neighboring units each include at least one of a motion vector, a reference picture list, a reference picture index, a prediction direction, and a motion vector predictor.
[0022] The predetermined fixed number of units is selected based on the identity between the reference picture of the current unit to be decoded and the reference picture of the reconstructed neighboring units.
[0023] The candidate unit selection step includes the steps of receiving an encoding parameter identifier, decoding the received encoding parameter identifier, and selecting the candidate unit based on an encoding parameter value assigned to the decoded encoding parameter identifier, wherein the encoding parameter value assigned to the encoding parameter identifier is at least one of a length of a boundary where the reconstructed adjacent unit adjoins the unit to be encoded, a size of the reconstructed adjacent unit, and a depth value of the reconstructed adjacent unit.
[0024] The reference unit determination step includes a step of receiving a reference unit identifier, a step of decoding the received reference unit identifier, and a step of determining the reference unit using the decoded reference unit identifier, wherein the reference unit identifier is an identifier indicating a unit to be determined as a reference unit from among the candidate units that constitute the candidate unit set.
[0025] The codeword length assigned to the reference unit identifier is shorter as the probability that the unit indicated by the reference unit identifier is determined as the reference unit is higher.
[0026] The candidate unit set generation step further includes a step of sorting the candidate units in order of the probability of being determined as the reference unit, and in the reference unit determination step, the first unit from the sorted candidate units is determined as the reference unit.
[0027] In the candidate unit set generation step, only one unit among the candidate units that has the highest probability of being determined as the reference unit is included in the candidate unit set, and in the reference unit determination step, the one unit included in the candidate unit set is determined as the reference unit. [Effects of the Invention]
[0028] According to the video encoding method of the present invention, the efficiency of video encoding / decoding can be improved.
[0029] According to the video decoding method of the present invention, the efficiency of video encoding / decoding can be improved.
[0030] According to the inter prediction method according to the present invention, video encoding / decoding efficiency can be improved.
[0031] According to the reference unit determination method of the present invention, the efficiency of video encoding / decoding can be improved. [Brief explanation of the drawings]
[0032] [Figure 1] 1 is a block diagram showing the configuration of an embodiment of a video encoding device to which the present invention is applied; [Figure 2] 1 is a block diagram showing the configuration of an embodiment of a video decoding device to which the present invention is applied; [Figure 3] FIG. 1 is a conceptual diagram illustrating an embodiment in which one unit is divided into multiple sub-units. [Figure 4] 1 is a flowchart illustrating an example of a method for determining a reference unit in an encoder. [Figure 5] FIG. 1 is a conceptual diagram illustrating an example of a method for generating a candidate unit set. [Figure 6] FIG. 10 is a conceptual diagram illustrating another embodiment of a method for generating a candidate unit set. [Figure 7] FIG. 10 is a conceptual diagram illustrating another embodiment of a method for generating a candidate unit set. [Figure 8] FIG. 10 is a conceptual diagram illustrating another embodiment of a method for generating a candidate unit set. [Figure 9] FIG. 10 is a conceptual diagram illustrating another embodiment of a method for generating a candidate unit set. [Figure 10] FIG. 2 is a conceptual diagram illustrating an example of a method for determining the order in which candidate units are included in a candidate unit set. [Figure 11]1 is a conceptual diagram illustrating a method for determining a reference unit in an encoder according to an embodiment of the present invention; [Figure 12] 10 is a conceptual diagram illustrating a method for determining a reference unit in an encoder according to another embodiment of the present invention; [Figure 13] 10 is a conceptual diagram illustrating a method for determining a reference unit in an encoder according to another embodiment of the present invention; [Figure 14] 1 is a flowchart illustrating an example of a method for determining a reference unit in a decoder. [Figure 15] 1 is a conceptual diagram illustrating a method for determining a reference unit in a decoder according to an embodiment of the present invention; [Figure 16] 10 is a conceptual diagram illustrating a method for determining a reference unit in a decoder according to another embodiment of the present invention; [Figure 17] 10 is a conceptual diagram illustrating a method for determining a reference unit in a decoder according to another embodiment of the present invention; DETAILED DESCRIPTION OF THE INVENTION
[0033] Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In describing the examples of this specification, if a detailed description of related known configurations or functions is deemed to obscure the gist of this specification, the detailed description will be omitted.
[0034] When a component is said to be "coupled" or "connected" to another component, it should be understood that the component may be directly coupled or connected to the other component, but that there may be other components in between. Furthermore, in the present invention, when a component is described as "including" a specific component, it does not exclude components other than the component, but rather means that additional components may be included in the scope of the implementation or technical idea of the present invention.
[0035] Terms such as "first" and "second" may be used to describe various components, but the components should not be limited by these terms. These terms are used only to distinguish one component from another. For example, a first component may be called a "second component," and similarly, a second component may be called a "first component," without departing from the scope of the present invention.
[0036] Furthermore, the components shown in the embodiments of the present invention are illustrated independently to show different characteristic functions, and do not mean that each component is composed of separate hardware or a single software component. That is, each component is included as a separate component for the sake of convenience of explanation, and at least two of the components may be integrated into one component, or one component may be divided into multiple components to perform its function. Such integrated and separated embodiments of each component are also included in the scope of the present invention as long as they do not deviate from the essence of the present invention.
[0037] In addition, some components are not essential components for performing essential functions in the present invention, but are optional components merely for improving performance. The present invention may be embodied by including only components essential for embodying the essence of the present invention, excluding components merely used for improving performance, and a structure including only essential components, excluding optional components merely used for improving performance, is also included in the scope of the present invention.
[0038] FIG. 1 is a block diagram showing the configuration of an embodiment of a video encoding device to which the present invention is applied.
[0039] Referring to FIG. 1, the video encoding device 100 includes a motion prediction unit 111, a motion compensation unit 112, an intra prediction unit 120, a switch 115, a subtractor 125, a transform unit 130, a quantization unit 140, an entropy encoding unit 150, an inverse quantization unit 160, an inverse transform unit 170, an adder 175, a filter unit 180, and a reference picture buffer 190.
[0040] The video encoding device 100 may perform encoding on an input image in intra mode or inter mode and output a bitstream. Intra prediction refers to intra-frame prediction, and inter prediction refers to inter-frame prediction. In the intra mode, the switch 115 may be switched to intra, and in the inter mode, the switch 115 may be switched to inter. The video encoding device 100 may generate a prediction block for an input block of the input image, and then encode a residual between the input block and the prediction block.
[0041] In the case of intra mode, the intra prediction unit 120 can generate a predicted block by performing spatial prediction using pixel values of already coded blocks surrounding the current block.
[0042] In the case of inter mode, the motion prediction unit 111 may obtain a motion vector by searching for an area that best matches an input block in a reference picture stored in the reference picture buffer 190 during the motion prediction process. The motion compensation unit 112 may generate a prediction block by performing motion compensation using the motion vector. Here, the motion vector is a two-dimensional vector used in inter prediction and may indicate an offset between a current picture to be encoded / decoded and a reference picture.
[0043] The subtractor 125 can generate a residual block based on the residual between the input block and the generated prediction block. The transform unit 130 can output transform coefficients by performing a transform on the residual block. The quantization unit 140 can output quantized coefficients by quantizing the input transform coefficients using a quantization parameter.
[0044] The entropy coding unit 150 can output a bit stream by performing entropy coding based on the value calculated by the quantization unit 140 or the coding parameter value calculated during the coding process.
[0045] When entropy coding is applied, fewer bits are assigned to symbols with higher occurrence probabilities and more bits are assigned to symbols with lower occurrence probabilities to represent the symbols, thereby reducing the size of the bit string for the symbols to be coded. Therefore, the compression performance of video coding can be improved through entropy coding. The entropy coding unit 150 can use coding methods such as exponential golomb, CAVLC (Context-Adaptive Variable Length Coding), and CABAC (Context-Adaptive Binary Arithmetic Coding) for entropy coding.
[0046] 1 performs inter-prediction coding, i.e., inter-frame predictive coding, so a currently coded image needs to be decoded and stored to be used as a reference image. Therefore, the quantized coefficients are inversely quantized by an inverse quantization unit 160 and inversely transformed by an inverse transform unit 170. The inversely quantized and inversely transformed coefficients are added to a predicted block via an adder 175 to generate a reconstructed block.
[0047] The reconstructed block passes through the filter unit 180, which can apply at least one of a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) to the reconstructed block or the reconstructed picture. The filter unit 180 is also called an adaptive in-loop filter. The deblocking filter can remove block distortion that occurs at boundaries between blocks. The SAO can add an appropriate offset value to pixel values to compensate for coding errors. The ALF can perform filtering based on a value obtained by comparing a reconstructed image with an original image. The reconstructed block that has passed through the filter unit 180 can be stored in the reference picture buffer 190.
[0048] FIG. 2 is a block diagram showing the configuration of an embodiment of a video decoding device to which the present invention is applied.
[0049] Referring to FIG. 2, the video decoding apparatus 200 includes an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an intra prediction unit 240, a motion compensation unit 250, an adder 255, a filter unit 260, and a reference picture buffer 270.
[0050] The video decoding apparatus 200 receives a bitstream output from an encoder and performs decoding in an intra mode or an inter mode to output a reconstructed image, i.e., a restored image. In the intra mode, a switch may be converted to intra, and in the inter mode, a switch may be converted to inter. The video decoding apparatus 200 obtains a residual block from the input bitstream to generate a prediction block, and then generates a reconstructed block, i.e., a restored block, by adding the residual block and the prediction block.
[0051] The entropy decoding unit 210 may entropy decode the input bitstream according to a probability distribution to generate symbols including symbols in the form of quantized coefficients. The entropy decoding method is the same as the entropy encoding method described above.
[0052] When the entropy decoding method is applied, a smaller number of bits are assigned to symbols having a higher occurrence probability, and a larger number of bits are assigned to symbols having a lower occurrence probability, thereby reducing the size of the bit string for each symbol. Therefore, the entropy decoding method can improve the compression performance of video decoding.
[0053] The quantized coefficients are inversely quantized in the inverse quantization unit 220 and inversely transformed in the inverse transform unit 230, and a residual block can be generated as a result of the inverse quantization / inverse transformation of the quantized coefficients.
[0054] In the case of an intra mode, the intra prediction unit 240 may generate a predicted block by performing spatial prediction using pixel values of previously coded blocks surrounding the current block. In the case of an inter mode, the motion compensation unit 250 may generate a predicted block by performing motion compensation using a motion vector and a reference picture stored in the reference picture buffer 270.
[0055] The residual block and the prediction block are added via an adder 255, and the added block may pass through a filter unit 260. The filter unit 260 may apply at least one of a deblocking filter, SAO, and ALF to the reconstructed block or the reconstructed picture. The filter unit 260 may output a reconstructed image, i.e., a reconstructed image. The reconstructed image may be stored in a reference picture buffer 270 and used for inter prediction.
[0056] Hereinafter, the term "unit" refers to a unit of video encoding and decoding. The encoding or decoding unit during video encoding and decoding refers to the unit into which an image is divided and encoded or decoded, and may therefore be called a block, coding unit (CU), coding block, prediction unit (PU), prediction block, transform unit (TU), transform block, etc. Furthermore, one unit may be divided into smaller sub-units.
[0057] Here, a prediction unit refers to a basic unit that serves as a unit for performing prediction and / or motion compensation. The prediction unit may be divided into a plurality of partitions, and each partition may also be referred to as a prediction unit partition. When a prediction unit is divided into a plurality of partitions, each of the plurality of partitions is a basic unit that serves as a unit for performing prediction and / or motion compensation. Hereinafter, in embodiments of the present invention, each partition into which a prediction unit is divided may also be referred to as a prediction unit.
[0058] Meanwhile, as described above, in inter mode, the encoder and decoder may perform prediction and / or motion compensation on a target unit to be encoded / decoded. Here, the target unit to be encoded / decoded refers to a prediction unit and / or a prediction unit partition. In this case, the encoder and decoder may improve encoding / decoding efficiency by using motion vectors of reconstructed neighboring units. Here, the reconstructed neighboring units are units that have already been encoded or decoded and reconstructed, and may include units adjacent to the target unit to be encoded / decoded, units located in the upper right corner of the target unit to be encoded / decoded, units located in the upper left corner of the target unit to be encoded / decoded, and / or units located in the lower left corner of the target unit to be encoded / decoded.
[0059] For example, the encoder and decoder can use the reconstructed motion vector of a neighboring unit as the motion vector of the current unit to be encoded / decoded. In this case, since the current unit to be encoded / decoded uses the reconstructed motion vector of the neighboring unit, the encoder does not encode the motion vector for the current unit to be encoded / decoded. Therefore, the amount of bits transmitted to the decoder can be reduced, and coding efficiency can be improved. Such inter prediction modes include skip mode and / or direct mode.
[0060] In this case, the encoder may use an identifier and / or index indicating which of the reconstructed neighboring units' motion vectors is to be used. The inter-prediction mode in which the identifier and / or index is used may also be called a merge mode.
[0061] As another example, an encoder may perform prediction and / or compensation using a motion vector of a current unit, and then generate a motion vector difference between the motion vector of the current unit and the motion vector of a reconstructed neighboring unit when encoding the motion vector of the current unit. The encoder may encode the generated motion vector difference and transmit it to a decoder. At this time, the decoder may decode the motion vector difference and derive the motion vector of the current unit by adding the decoded motion vector difference and the motion vector of the reconstructed neighboring unit. Such an inter-prediction method is sometimes called MVP (Motion Vector Prediction). By using MVP, the amount of information transmitted from the encoder to the decoder can be reduced, thereby improving coding efficiency.
[0062] In this case, the encoder may use an identifier and / or index that indicates which of the reconstructed neighboring units' motion vectors is to be used. MVP, which additionally uses the identifier and / or index, is also called Advanced Motion Vector Prediction (AMVP).
[0063] In the above-mentioned skip mode, direct mode, merge mode, MVP, AMVP, etc., a reference unit is determined from among reconstructed neighboring units, and the motion vector of the determined reference unit can be used for prediction and / or motion compensation of the current encoding / decoding target unit. Hereinafter, the reference unit refers to a unit used for prediction and / or motion compensation of the current encoding / decoding target unit. The encoder and decoder can use coding parameters of the reference unit when performing inter prediction and / or motion compensation on the current encoding / decoding target unit.
[0064] The coding parameters may include not only information encoded by an encoder and transmitted to a decoder, such as syntax elements, but also information that can be inferred during the encoding or decoding process, and refer to information required when encoding or decoding an image. The coding parameters may include values and / or statistics of, for example, an inter-prediction mode, motion information, a coded block pattern (CBP), block size, block division information, etc.
[0065] Here, motion information refers to parameters necessary for inter prediction and motion compensation. The motion information may include at least one of a reference picture list, a reference picture index, a motion vector, a prediction direction, and a motion vector predictor. Here, the reference picture list is a list consisting of a plurality of reference pictures used for inter prediction, and the reference picture index is an index indicating a reference picture used for inter prediction of a target unit to be encoded / decoded among the reference pictures included in the reference picture list.
[0066] Two reference picture lists can be used in inter prediction, one of which is sometimes called reference picture list 0 and the other is sometimes called reference picture list 1. A prediction direction included in the motion information is information indicating which reference picture list is used during inter prediction. That is, the prediction direction can indicate whether reference picture list 0 is used, reference picture list 1 is used, or both reference picture list 0 and reference picture list 1 are used. A motion vector predictor refers to a unit that is a prediction candidate and / or a motion vector of a unit that is a prediction candidate when an encoder and a decoder predict a motion vector.
[0067] The block division information may include information on the depth of the unit, which may indicate the number of times and / or the degree to which the unit is divided.
[0068] FIG. 3 is a conceptual diagram that illustrates an example in which one unit is divided into multiple sub-units.
[0069] A unit can be hierarchically divided into subunits having depth information under a tree structure. Each divided subunit can have depth information. The depth information can include information on the size of the subunit to indicate the number and / or degree to which the unit is divided.
[0070] Referring to 310 in Figure 3, the highest node may be called a root node and may have the smallest depth value. In this case, the highest node may have a depth of level 0 and may indicate the first unit that is not divided.
[0071] A subnode with a depth of level 1 may indicate a unit in which the initial unit is divided once, and a subnode with a depth of level 2 may indicate a unit in which the initial unit is divided twice. For example, in 320 of Figure 3, unit a corresponding to node a is a unit in which the initial unit is divided once, and may have a depth of level 1.
[0072] A leaf node at level 3 may represent a unit that is obtained by dividing the initial unit three times. For example, in 320 of FIG. 3, unit d corresponding to node d is a unit that is obtained by dividing the initial unit three times and may have a depth of level 3. Therefore, the leaf node at level 3, which is the lowest node, may have the deepest depth.
[0073] As described above, when performing inter prediction and / or motion compensation using skip mode, direct mode, merge mode, MVP, AMVP, etc., the encoder and decoder may determine a reference unit from among reconstructed neighboring units and use a motion vector of the determined reference unit. Reconstructed neighboring units neighboring a current unit to be encoded / decoded may have different characteristics. For example, the characteristics may be indicated by the respective coding parameters of the reconstructed neighboring units. Therefore, when determining a reference unit and encoding / decoding it, the encoder and decoder need to efficiently use the coding parameters of the image. Furthermore, one picture may include units of various sizes and units of various depths. Therefore, to improve encoding / decoding performance, a method for determining a reference unit may be provided that takes into account the diversity of unit sizes and / or depths.
[0074] FIG. 4 is a flowchart illustrating an example of a method for determining a reference unit in an encoder.
[0075] Referring to FIG. 4, the encoder may generate a candidate unit set using reconstructed neighboring units (S410). Here, the candidate unit set refers to a set of reference unit candidates. A reference unit used for prediction and / or motion compensation of a current encoding target unit may be determined from the reference unit candidates. Hereinafter, the term "candidate unit" may have the same meaning as the term "reference unit candidate."
[0076] The encoder may select candidate units from the reconstructed neighboring units according to a predetermined criterion and / or method. In this case, the encoder may use coding parameters of the current unit to be coded and / or coding parameters of the reconstructed neighboring units to reflect video characteristics. The encoder may generate a candidate unit set by including and / or inserting the selected candidate units into the candidate unit set. A specific example of a candidate unit set generation method will be described later.
[0077] Also, referring to FIG. 4, the encoder can determine a reference unit to be used for prediction and / or motion compensation of the currently encoded unit from among the candidate units included in the generated set of candidate units (S420).
[0078] Once the reference unit is determined, the encoder may perform inter prediction on the current unit to be coded using the determined reference unit. In this case, the encoder may use a method such as skip mode, direct mode, merge mode, MVP, or AMVP when performing inter prediction and / or motion compensation. Specific examples of a reference unit determination method will be described later.
[0079] Once the reference unit is determined, the encoder may encode the reference unit identification information and transmit it to the decoder (S430). The reference unit identification information may include an encoding parameter identifier, a reference unit identifier, etc., and a specific example of a method for encoding the reference unit identification information will be described later.
[0080] FIG. 5 is a conceptual diagram showing an outline of an embodiment of a method for generating a set of candidate units.
[0081] The encoder may select, from the reconstructed neighboring units, units adjacent to the current unit to be coded and units located at the corners of the current unit to be coded as candidate units and include them in a candidate unit set. The current unit to be coded on which inter prediction and / or motion compensation is performed is called a prediction unit.
[0082] Hereinafter, a unit adjacent to the top of the unit to be coded is referred to as the top adjacent unit, and a unit adjacent to the left of the unit to be coded is referred to as the left adjacent unit. Also, a unit located in the top right corner of the unit to be coded is referred to as the top right corner unit, a unit located in the top left corner of the unit to be coded is referred to as the top left corner unit, and a unit located in the bottom left corner of the unit to be coded is referred to as the bottom left corner unit.
[0083] Referring to 510 of Figure 5, the encoder may select a left neighboring unit (A), an upper neighboring unit (B), an upper right corner unit (C), an upper left corner unit (D), and a lower left corner unit (E) as candidate units to be included in the candidate unit set. In this case, in one embodiment, the generated candidate unit set may be configured as {A, B, C, D, E}.
[0084] 5, the encoder may select the left neighboring units (A, B, C), the upper neighboring units (D, E, F), the upper right corner unit (G), the upper left corner unit (H), and the lower left corner unit (M) as candidate units included in the candidate unit set. In this case, in one embodiment, the generated candidate unit set may be configured as {H, D, E, F, G, A, B, C, M}.
[0085] In the above embodiment, the encoder may select only specific units from the left neighboring units as candidate units. For example, the encoder may select only the bottommost unit from the left neighboring units as candidate units. Alternatively, the encoder may select only specific units from the top neighboring units as candidate units. For example, the encoder may select only the rightmost unit from the top neighboring units as candidate units. In this case, the set of candidate units generated in 520 of FIG. 5 is {H, F, G, C, M}.
[0086] FIG. 6 is a conceptual diagram showing an outline of another embodiment of the method for generating a set of candidate units.
[0087] The encoder can select, from the reconstructed adjacent units, the unit adjacent to the left of the current unit to be coded and the unit adjacent to the upper side of the current unit to be coded as candidate units and include them in the set of candidate units.
[0088] Referring to 610 in Figure 6, the encoder may select a left adjacent unit (A) and an upper adjacent unit (B) as candidate units to be included in the candidate unit set. In this case, in one embodiment, the generated candidate unit set may be configured as {A, B}.
[0089] Referring to 620 in Figure 6, the encoder may select the left neighboring units (A, B, C) and the upper neighboring units (D, E, F) as candidate units included in the candidate unit set. In this case, in one embodiment, the generated candidate unit set may be composed of {D, E, F, A, B, C}.
[0090] 7 is a conceptual diagram illustrating another embodiment of a method for generating a candidate unit set. In the embodiment of FIG. 7, the size of the encoding target unit (X) is assumed to be 16×16, the size of the C, D, H, and M units is assumed to be 8×8, and the size of the remaining units is assumed to be 4×4.
[0091] As described above with reference to FIG. 6, the encoder may select, from among the reconstructed adjacent units, the unit adjacent to the left of the current unit to be coded and the unit adjacent to the top of the current unit to be coded as candidate units. In this case, the encoder may select, from among the left adjacent units and the top adjacent units, only units whose boundary length adjacent to the current unit to be coded is equal to or longer than a predetermined length as candidate units and include them in the set of candidate units. Herein, the predetermined length is a positive integer. Hereinafter, the boundary between the current unit to be coded and the reconstructed adjacent unit is referred to as an adjacent boundary.
[0092] 7, the encoder can select only units whose boundary length adjacent to the current unit to be coded is 8 or more as candidate units. Since units C and D have a size of 8x8 and the boundary length between the current unit to be coded and units C and D is 8, they can be selected as candidate units to be included in the candidate unit set. On the other hand, units A, B, E, and F have a size of 4x4 and the boundary length between the current unit to be coded and units A, B, E, and F is 4, so they are not selected as candidate units to be included in the candidate unit set. In this case, as an example, the generated candidate unit set is {C, D}.
[0093] As another example, the encoder may select a candidate unit to be included in the candidate unit set based on the relative lengths of the neighboring boundaries of the left neighboring unit and the upper neighboring unit, i.e., the encoder may select a candidate unit by comparing the neighboring boundary lengths of units neighboring the current unit.
[0094] For example, if there are two adjacent units among the restored adjacent units, one with an adjacent boundary length of 4 and the other with an adjacent boundary length of 8, the encoder may include only the latter unit, which has a relatively longer adjacent boundary length, in the candidate unit set. As another example, if there are two adjacent units among the restored adjacent units, one with an adjacent boundary length of 16 and the other with an adjacent boundary length of 4, the encoder may include only the latter unit, which has a relatively shorter adjacent boundary length, in the candidate unit set.
[0095] 8 is a conceptual diagram illustrating another embodiment of a method for generating a candidate unit set. In the embodiment of FIG. 8, the size of the encoding target unit (X) is assumed to be 16×16, the size of the C, D, H, and M units is assumed to be 8×8, and the size of the remaining units is assumed to be 4×4.
[0096] As described above in FIG. 5, the encoder may select, from among the reconstructed neighboring units, units adjacent to the current unit to be coded and units located at the corners of the current unit to be coded as candidate units. In this case, the encoder may select only units of a predetermined size or larger from among the units adjacent to the current unit to be coded and units located at the corners of the current unit to be coded as candidate units and include them in the candidate unit set. Here, the predetermined size is m*n (m is a positive integer, and n is a positive integer).
[0097] Referring to Figure 8, the encoder can select only units having a size of 8x8 or more as candidate units. Since the C, D, H, and M units have a size of 8x8, they can be selected as candidate units to be included in the candidate unit set. Meanwhile, since the A, B, E, F, and G units have a size of 4x4, they cannot be selected as candidate units to be included in the candidate unit set. In this case, as an example, the generated candidate unit set can be configured as {C, D, H, M}.
[0098] As another example, the encoder may select candidate units to be included in the candidate unit set based on the relative sizes of the reconstructed neighboring units. That is, the encoder may select candidate units by comparing the sizes of the reconstructed neighboring units. For example, if there are reconstructed neighboring units with a size of 8x8 and reconstructed neighboring units with a size of 16x16, the encoder may include only the latter unit, which is relatively larger, in the candidate unit set.
[0099] 9 is a conceptual diagram illustrating another embodiment of a method for generating a candidate unit set. In the embodiment of FIG. 9, the depth value of the encoding target unit (X) is assumed to be 0, the depth values of the C, D, H, and M units are assumed to be 1, and the depth values of the remaining units are assumed to be 2.
[0100] As described above in FIG. 5, the encoder may select, from among the reconstructed neighboring units, units adjacent to the current unit to be coded and units located at the corners of the current unit to be coded as candidate units. In this case, the encoder may select only units at a depth equal to or less than a predetermined depth from among the units adjacent to the current unit to be coded and units located at the corners of the current unit to be coded as candidate units and include them in the candidate unit set. Here, the predetermined depth is n (n is a positive integer).
[0101] Referring to Figure 9, the encoder can select only units with a depth of 1 or less as candidate units. C, D, H, and M units have a depth of 1, so they can be selected as candidate units to be included in the candidate unit set. On the other hand, A, B, E, F, and G units have a depth of 2, so they cannot be selected as candidate units to be included in the candidate unit set. In this case, as an example, the generated candidate unit set can be configured as {H, D, C, M}.
[0102] As another example, the encoder may select candidate units to be included in the candidate unit set based on the relative depths of the reconstructed neighboring units. That is, the encoder may select candidate units by comparing the depths of the reconstructed neighboring units. For example, if there are reconstructed neighboring units with a depth of 0 and reconstructed neighboring units with a depth of 2, the encoder may include only the former unit with a relatively smaller depth value in the candidate unit set.
[0103] In another embodiment, the encoder may select a candidate unit to be included in the candidate unit set using the coding parameters of the current unit to be coded and / or the coding parameters of the reconstructed neighboring units. In this case, the encoder may select a candidate unit using the coding parameter correlation between the current unit to be coded and the reconstructed neighboring units, or may select a candidate unit using only the coding parameters of the reconstructed neighboring units.
[0104] For example, the encoder may determine whether motion information of the reconstructed neighboring units is the same as motion information of the current unit, and then select only units having the same motion information as the current unit from among the reconstructed neighboring units as candidate units and include them in a set of candidate units. For example, the motion information may be at least one of a motion vector, a reference picture list, a reference picture index, a prediction direction, and a motion vector predictor.
[0105] As another example, the encoder may determine whether motion information of a reconstructed neighboring unit is similar to motion information of the current unit, and then select only units having motion information similar to that of the current unit from among the reconstructed neighboring units as candidate units and include them in a set of candidate units. For example, the motion information may be at least one of a motion vector, a reference picture list, a reference picture index, a prediction direction, and a motion vector predictor. If the motion information of the reconstructed neighboring unit and the motion information of the current unit are not completely identical but satisfy a predetermined criterion, they may be determined to be similar to each other.
[0106] Examples of cases in which the motion information of a reconstructed neighboring unit and the motion information of a current unit to be coded are similar are as follows. For example, if a component-specific magnitude difference between the motion vector of the reconstructed neighboring unit and the motion vector of the current unit to be coded is less than a predetermined magnitude in integer pixel units, the motion information of the reconstructed neighboring unit and the motion information of the current unit to be coded may be determined to be similar. Here, the predetermined magnitude may be any natural number and / or positive real number, for example, 1. As another example, if the reconstructed neighboring unit and the current unit to be coded have different reference picture lists but use the same reference pictures, the motion information of the reconstructed neighboring unit and the motion information of the current unit to be coded may be determined to be similar. As another example, if the reconstructed neighboring unit and the current unit to be coded have different reference picture indexes but use the same reference pictures, the motion information of the reconstructed neighboring unit and the motion information of the current unit to be coded may be determined to be similar.
[0107] In addition, for example, the encoder does not select, as candidate units, units coded by intra prediction from among the reconstructed neighboring units. At this time, the encoder does not include units coded by intra prediction in the candidate unit set. As an example, the encoder may select, as candidate units, only units coded by inter prediction from among the reconstructed neighboring units and include them in the candidate unit set.
[0108] The encoder may determine whether or not a residual signal exists for the reconstructed neighboring units, and then select units without a residual signal from the reconstructed neighboring units as candidate units and include them in a candidate unit set. Here, the presence or absence of a residual signal may be determined based on the values of CBP (Coded Block Pattern) and / or CBF (Coded Block Flag), which are syntax elements for the presence or absence of a residual signal.
[0109] In the above-described embodiment of the candidate unit set generation method, the number of candidate units included in the candidate unit set may be limited to a predetermined number (e.g., N), where N may represent a positive integer greater than 0.
[0110] When the number of candidate units included in the candidate unit set is limited to N, the encoder may select only N units from the reconstructed neighboring units as candidate units using a predetermined criterion. Here, the predetermined criterion may include the degree of proximity to the current unit to be coded, the degree of proximity to a boundary of the current unit to be coded, the relative and / or absolute length of the boundary adjacent to the current unit to be coded, the relative and / or absolute size of the reconstructed neighboring units, the relative and / or absolute depth value of the reconstructed neighboring units, the encoding / decoding order of the reconstructed neighboring units, and / or the identity / similarity between the coding parameters of the current unit to be coded and the coding parameters of the reconstructed neighboring units. Examples of cases in which the coding parameters of the reconstructed neighboring units and the coding parameters of the current unit to be coded are similar have been described above. For example, if the coding parameters of the reconstructed neighboring units and the current unit to be coded use the same reference picture, it may be determined that the coding parameters of the reconstructed neighboring units and the coding parameters of the current unit to be coded are similar.
[0111] For example, the number of candidate units included in the candidate unit set is 2. In this case, as an example, the encoder may select two units from the restored adjacent units in descending order of boundary length adjacent to the encoding target unit as candidate units and include them in the candidate unit set.
[0112] As another example, the number of candidate units included in the candidate unit set is 3. Also, as another example, reconstructed adjacent units may have the same motion information. In this case, the encoder may select three units reconstructed later in the encoding / decoding order from the reconstructed adjacent units having the same motion information as candidate units and include them in the candidate unit set.
[0113] Meanwhile, in the above-described embodiment of the candidate unit set generation method, the candidate units included in the candidate unit set may be sorted in descending order of the probability of being determined as a reference unit for the current unit to be encoded. That is, the encoder may preferentially include and / or insert units that have a high probability of being determined as a reference unit for the current unit to be encoded into the candidate unit set. In this case, the encoder may assign a reference unit identifier having a shorter codeword to a candidate unit that has a high probability of being determined as a reference unit, thereby improving encoding efficiency.
[0114] 10 is a conceptual diagram outlining an embodiment of a method for determining the order in which candidate units are included in a candidate unit set. In FIG. 10, it is assumed that the order in which reconstructed adjacent units are encoded / decoded is H→D→K→L→E→F→N→O→G→P→I→A→J→B→C→M.
[0115] For example, the encoder may select a unit adjacent to the left side of the current unit to be coded and a unit adjacent to the upper side of the current unit to be coded from among the reconstructed adjacent units as candidate units and include them in the candidate unit set. In this case, the encoder may include the selected candidate units in the candidate unit set in the encoding / decoding order.
[0116] 10, the encoder can prioritize the candidate units in the encoding / decoding order in the candidate unit set. The units adjacent to the current encoding target unit (X) can be encoded / decoded in the order D→E→F→A→B→C, so the generated candidate unit set can be configured as {D, E, F, A, B, C}.
[0117] In another embodiment, the encoder may sort the candidate units included in the candidate unit set in descending order of the length of the boundary adjacent to the current unit to be encoded, i.e., the encoder may preferentially include and / or insert candidate units having a long boundary adjacent to the current unit to be encoded into the candidate unit set.
[0118] In another embodiment, the encoder may arrange the candidate units included in the candidate unit set in ascending order of depth value, i.e., the encoder may prioritize including and / or inserting candidate units with smaller depth values into the candidate unit set.
[0119] In the above-described embodiment of the candidate unit set generation method, the encoder may select candidate units included in the candidate unit set from among the reconstructed neighboring blocks. In this case, the candidate units selected from the reconstructed neighboring blocks may be called spatial candidate units.
[0120] In addition to spatial candidate units, the encoder may also select units in a reference picture that are at the same spatial position as the unit to be coded as candidate units and include them in a candidate unit set. Hereinafter, for convenience of explanation, units in a reference picture that are at the same spatial position as the unit to be coded are referred to as collocated units and / or collocated blocks. In this case, the candidate units selected from the units in the reference picture may also be referred to as temporal candidate units.
[0121] In the above-mentioned candidate unit set generation process, the encoder may use coding parameter identifiers for the reconstructed neighboring units. At this time, the candidate units included in the candidate unit set may be selected using the coding parameter identifiers. Here, coding parameters for which coding parameter identifiers are used include, for example, the length of the boundary between the unit to be coded and the reconstructed neighboring units, the size of the reconstructed neighboring units, and the depth value of the reconstructed neighboring units.
[0122] A predetermined value may be assigned to the coding parameter identifier. In this case, for example, the encoder may select, as a candidate unit, a unit having a coding parameter with the same value as the value assigned to the coding parameter identifier from among the reconstructed neighboring units. For another example, the encoder may select, as a candidate unit, a unit having a coding parameter with a value greater than the value assigned to the coding parameter identifier from among the reconstructed neighboring units. For another example, the encoder may select, as a candidate unit, a unit having a coding parameter with a value smaller than the value assigned to the coding parameter identifier.
[0123] For example, it is assumed that a coding parameter identifier is used for the length of the boundary between the current unit to be coded and a reconstructed neighboring unit. Here, the coding parameter identifier is represented by log2_unit_boundary_length. As described above, the encoder may select only units whose boundary length adjacent to the current unit to be coded is greater than a predetermined length from among the reconstructed neighboring units as candidate units and include them in a candidate unit set. Here, if the predetermined length is assumed to be 8, the coding parameter identifier log2_unit_boundary_length may be assigned a value of 3. In this case, the encoder may select only units whose neighboring boundary length is greater than the value assigned to the coding parameter identifier as candidate units and include them in a candidate unit set. Alternatively, the encoder may encode the coding parameter identifier assigned a value of 3 and transmit the encoded parameter identifier to the decoder.
[0124] Once a set of candidate units is generated, the encoder can determine, from among the candidate units included in the generated set of candidate units, a reference unit to be used for prediction and / or motion compensation of the currently encoded unit.
[0125] FIG. 11 is a conceptual diagram for explaining a method for determining a reference unit in an encoder according to an embodiment of the present invention.
[0126] The encoder may determine, as a reference unit, a candidate unit that exhibits optimal coding efficiency in terms of rate-distortion from among the candidate units included in the candidate unit set. Also, as described above, the encoder may use coding parameters (e.g., motion information, etc.) of the candidate units included in the candidate unit set for inter prediction and motion compensation. In this case, the encoder can determine, as a reference unit, a candidate unit that exhibits optimal coding efficiency in terms of rate-distortion using the coding parameters. Here, a method of selecting an optimal coding scheme in terms of rate and distortion is sometimes called rate-distortion optimization (RDO).
[0127] When the reference unit is determined by the rate-distortion optimization scheme, the encoder may encode a reference unit identifier indicating which candidate unit among the candidate units included in the candidate unit set is determined as the reference unit, and transmit the encoded reference unit identifier to the decoder. For example, the reference unit identifier may indicate the order and / or position of the candidate unit determined as the reference unit within the candidate unit set. For another example, the reference unit identifier may indicate the coding order difference from the current unit to be coded to the reference unit. For another example, each candidate unit in the candidate unit set may be assigned a reference unit index, and the reference unit index may be used as the reference unit identifier.
[0128] 11, the candidate unit set can be configured as {A, B, C, D, E, F} as an example. At this time, each candidate unit can be assigned a reference unit index, for example, A can be assigned 0, B can be assigned 1, C can be assigned 2, D can be assigned 3, E can be assigned 4, and F can be assigned 5.
[0129] The encoder can encode the reference unit index and transmit it to the decoder, and the decoder can receive and decode the encoded reference unit index. If the encoder determines B as the reference unit, the value of the reference unit index transmitted to the decoder is 1. In this case, the decoder can determine unit B as the reference unit using the value of the reference unit index.
[0130] 12 is a conceptual diagram illustrating a method for determining a reference unit in an encoder according to another embodiment of the present invention. In FIG. 12, it is assumed that the order in which reconstructed adjacent units are encoded / decoded is H→D→K→L→E→F→N→O→G→P→I→A→J→B→C→M.
[0131] As described above, in the process of generating a candidate unit set, the encoder can sort the candidate units included in the candidate unit set in descending order of the probability of being determined as a reference unit. At this time, the encoder can determine the first candidate unit from among the candidate units included in the candidate unit set as the reference unit.
[0132] Referring to FIG. 12, the encoder may select units adjacent to the current unit to be coded as candidate units. In this case, the selected candidate units are A, B, C, D, E, and F. The encoder may sort the selected candidate units according to the encoding / decoding order. For example, the encoder may prioritize units coded later in the coding order to include them in the candidate unit set. In this case, the candidate unit set may be configured as {C, B, A, F, E, D}. The encoder may determine the first candidate unit C in the candidate unit set as the reference unit. In this case, the candidate unit with the smallest coding order difference from the current unit to be coded may be determined as the reference unit.
[0133] When the first candidate unit in the candidate unit set is determined as the reference unit, the encoder and decoder can determine the reference unit without a separate reference unit identifier, and therefore the encoder does not encode the reference unit identifier and does not transmit the reference unit identifier to the decoder.
[0134] FIG. 13 is a conceptual diagram illustrating a method for determining a reference unit in an encoder according to another embodiment of the present invention.
[0135] 13, the encoder can select units adjacent to the current encoding unit as candidate units. In this case, the selected candidate units are A, D, E, and F.
[0136] Meanwhile, the number of candidate units included in the candidate unit set may be limited to a predetermined number, which may be 1. In this case, the encoder may generate the candidate unit set by selecting only one unit that has the highest probability of being selected as a reference unit from among the reconstructed neighboring units as a candidate unit. For example, the encoder may compare the sizes of the reconstructed neighboring units and select only the relatively largest unit (e.g., unit A) as a candidate unit. In this case, the candidate unit set is configured as {A}, and the number of candidate units included in the candidate unit set is 1.
[0137] When the number of candidate units constituting a candidate unit set is one, the encoder and decoder can determine the corresponding candidate unit as a reference unit. In this case, the encoder and decoder can determine the reference unit without a separate reference unit identifier. Therefore, the encoder does not encode the reference unit identifier and does not transmit the reference unit identifier to the decoder.
[0138] As described above in FIG. 4, once the reference unit is determined, the encoder may encode the reference unit identification information and transmit it to the decoder. The reference unit identification information may include at least one of a coding parameter identifier and a reference unit identifier.
[0139] The encoder can use the coding parameter identifiers for the reconstructed neighboring units, and in this case, the candidate units included in the candidate unit set can be selected using the coding parameter identifiers.
[0140] A predetermined value may be assigned to the coding parameter identifier. In this case, for example, the encoder may select, as a candidate unit, a unit having a coding parameter with the same value as the value assigned to the coding parameter identifier from among the reconstructed neighboring units. For another example, the encoder may select, as a candidate unit, a unit having a coding parameter with a value greater than the value assigned to the coding parameter identifier from among the reconstructed neighboring units. For another example, the encoder may select, as a candidate unit, a unit having a coding parameter with a value smaller than the value assigned to the coding parameter identifier.
[0141] The encoder can encode the coding parameter identifier, and then the encoded coding parameter identifier can be transmitted to the decoder.
[0142] As described above, the encoder may use coding parameters of the candidate units included in the candidate unit set for inter prediction and motion compensation. In this case, the encoder may use the coding parameters to determine, as a reference unit, a candidate unit that exhibits optimal coding efficiency in terms of rate-distortion.
[0143] When the reference unit is determined by the rate-distortion optimization scheme, the encoder may encode a reference unit identifier indicating which candidate unit among the candidate units included in the candidate unit set is determined as the reference unit, and transmit the encoded reference unit identifier to the decoder. For example, the reference unit identifier may indicate the order and / or position of the candidate unit determined as the reference unit within the candidate unit set. For another example, the reference unit identifier may indicate the coding order difference from the current unit to be coded to the reference unit. For another example, a reference unit index may be assigned to each candidate unit in the candidate unit set, and the reference unit index may be used as the reference unit identifier.
[0144] The decoder may receive and decode the encoded reference unit identifier, and may determine the reference unit using the decoded reference unit identifier.
[0145] When the first candidate unit in the candidate unit set is determined as the reference unit and when the number of candidate units constituting the candidate unit set is one, the encoder and decoder can determine the reference unit without a separate reference unit identifier. In this case, the encoder can omit encoding the reference unit identifier.
[0146] FIG. 14 is a flowchart outlining an embodiment of a method for determining a reference unit in a decoder.
[0147] 14, the decoder may receive and decode reference unit identification information from the encoder (S1410). The reference unit identification information transmitted from the encoder may include at least one of a coding parameter identifier and a reference unit identifier.
[0148] The decoder may select a candidate unit included in the candidate unit set using a coding parameter identifier included in the reference unit identification information. A predetermined value may be assigned to the coding parameter identifier. In this case, for example, the decoder may select, from among the reconstructed neighboring units, a unit having a coding parameter with a value equal to the value assigned to the coding parameter identifier as the candidate unit. For another example, the decoder may select, from among the reconstructed neighboring units, a unit having a coding parameter with a value greater than the value assigned to the coding parameter identifier as the candidate unit. For another example, the decoder may select, as the candidate unit, a unit having a coding parameter with a value smaller than the value assigned to the coding parameter identifier. Here, the value assigned to the coding parameter identifier is the same as the value of the coding parameter and / or the coding parameter identifier used in the encoder.
[0149] The decoder can decode the reference unit identifier encoded by the encoder. As described above, the reference unit identifier may indicate which candidate unit among the candidate units included in the candidate unit set is determined as the reference unit. For example, the reference unit identifier may indicate the order and / or position of the candidate unit determined as the reference unit within the candidate unit set. For another example, the reference unit identifier may indicate the decoding order difference from the unit to be decoded to the reference unit. For another example, each candidate unit in the candidate unit set may be assigned a reference unit index, and the reference unit index may be used as the reference unit identifier. The decoder may use the decoded reference unit identifier to determine the reference unit in the candidate unit set.
[0150] When the first candidate unit in the candidate unit set is determined as the reference unit and the number of candidate units constituting the candidate unit set is 1, the encoder and decoder can determine the reference unit without a separate reference unit identifier. In this case, the encoder does not transmit the reference unit identifier, and the decoder does not decode the reference unit identifier.
[0151] Also, referring to FIG. 14, the decoder can generate a set of candidate units using the reconstructed neighboring units (S1420).
[0152] The decoder may select a candidate unit from the reconstructed neighboring units according to a predetermined criterion and / or method. In this case, the decoder may use coding parameters of the unit to be decoded and / or coding parameters of the reconstructed neighboring units to reflect the characteristics of the video. The decoder may generate a candidate unit set by including and / or inserting the selected candidate unit into the candidate unit set.
[0153] The decoder can generate a candidate unit set through the same process as the encoder. Since the process of generating a candidate unit set in the encoder has been described above, a detailed description of the process of generating a candidate unit set in the decoder will be omitted.
[0154] Once the candidate unit set is generated, the decoder can determine a reference unit to be used for prediction and / or motion compensation of the currently decoded unit from among the candidate units included in the generated candidate unit set (S1430).
[0155] The decoder may use the decoded reference unit identification information in the reference unit determination process. Once the reference unit is determined, the decoder may perform inter prediction on the current unit using the determined reference unit. A specific example of a reference unit determination method will be described later.
[0156] FIG. 15 is a conceptual diagram for explaining a method for determining a reference unit in a decoder according to an embodiment of the present invention.
[0157] The decoder may use the decoded reference unit identifier to determine a reference unit to be used for inter prediction and motion compensation of the current unit from among the candidate units included in a candidate unit set. For example, the reference unit identifier may indicate the order and / or position of the candidate unit determined as the reference unit within the candidate unit set. For another example, the reference unit identifier may indicate a decoding order difference from the current unit to the reference unit. For another example, a reference unit index may be assigned to each candidate unit in the candidate unit set, and the reference unit index may be used as the reference unit identifier.
[0158] 15, the candidate unit set can be configured as {A, B, C, D, E, F} as an example. At this time, a reference unit index can be assigned to each candidate unit, for example, A can be assigned 0, B can be assigned 1, C can be assigned 2, D can be assigned 3, E can be assigned 4, and F can be assigned 5. If the value of the decoded reference unit index is 2, the decoder can determine unit C as the reference unit using the value of the reference unit index.
[0159] 16 is a conceptual diagram illustrating a method for determining a reference unit in a decoder according to another embodiment of the present invention. In FIG. 16, it is assumed that the order in which reconstructed adjacent units are decoded is H→D→K→L→E→F→N→O→G→P→I→A→J→B→C→M.
[0160] In the process of generating a candidate unit set, the decoder can sort the candidate units included in the candidate unit set in descending order of the probability of being determined as a reference unit. At this time, the decoder can determine the first candidate unit from among the candidate units included in the candidate unit set as the reference unit.
[0161] Referring to FIG. 16, the decoder may select units adjacent to the current unit as candidate units. In this case, the selected candidate units are A, B, C, D, E, and F. The decoder may sort the selected candidate units according to the decoding order. For example, the decoder may prioritize units decoded later in the decoding order to include them in the candidate unit set. In this case, the candidate unit set may be configured as {C, B, A, F, E, D}. The decoder may determine the first candidate unit C in the candidate unit set as the reference unit. In this case, the candidate unit having the smallest decoding order difference from the current unit may be determined as the reference unit.
[0162] When the first candidate unit in the candidate unit set is determined as the reference unit, the encoder and decoder can determine the reference unit without a separate reference unit identifier. In this case, the encoder does not transmit the reference unit identifier to the decoder, and the decoder does not decode the reference unit identifier.
[0163] FIG. 17 is a conceptual diagram for explaining a method for determining a reference unit in a decoder according to another embodiment of the present invention.
[0164] 17, the decoder can select units adjacent to the current unit as candidate units, where A, D, E, and F are selected as candidate units.
[0165] Meanwhile, the number of candidate units included in the candidate unit set may be limited to a predetermined number, which is 1. In this case, the decoder may generate the candidate unit set by selecting only one unit that has the highest probability of being selected as a reference unit from among the restored adjacent units. For example, the decoder may compare the sizes of the restored adjacent units and select only the relatively largest unit (e.g., unit A) as the candidate unit. In this case, the candidate unit set is configured as {A}, and the number of candidate units included in the candidate unit set is 1.
[0166] When the number of candidate units constituting a candidate unit set is one, the encoder and decoder can determine the corresponding candidate unit as a reference unit. In this case, the encoder and decoder can determine the reference unit without a separate reference unit identifier. Therefore, the encoder does not transmit the reference unit identifier to the decoder, and the decoder does not decode the reference unit identifier.
[0167] In the above-described embodiments, the method is described based on a flowchart with a series of steps or blocks, but the present invention is not limited to the order of steps, and some steps may occur in a different order or simultaneously with other steps described above. Furthermore, those skilled in the art will understand 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 present invention.
[0168] The above-described embodiments include examples of various aspects. It is not possible to describe all possible combinations for illustrating various aspects, but a person skilled in the art will recognize that other combinations are possible. Therefore, the present invention includes all alterations, modifications, and variations that fall within the scope of the claims.
Claims
1. selecting one or more candidate units from among the recovered neighboring units; generating a candidate set for a unit to be decoded using the selected one or more candidate units; determining a reference unit for the unit to be decoded from the candidate set based on a reference unit identifier; performing inter prediction on the current unit to be decoded using the determined reference unit; the maximum number of the one or more candidate units included in the candidate set is limited to N, where N is an integer greater than 0; the reconstructed adjacent unit is spatially adjacent to the unit to be decoded, the one or more candidate units belong to the same picture as the current unit to be decoded; the restored adjacent units include an upper adjacent unit adjacent to the current unit to be decoded, a left adjacent unit adjacent to the current unit to be decoded, an upper right adjacent unit adjacent to the current unit to be decoded, an upper left adjacent unit adjacent to the current unit to be decoded, and a lower left adjacent unit adjacent to the current unit to be decoded; The one or more candidate units are selected from the reconstructed neighboring units based on reconstructed neighboring units that are coded using inter prediction.
2. determining a reference unit for the encoding target unit; selecting one or more candidate units from among the recovered neighboring units; generating a candidate set for the current unit to be encoded using the selected one or more candidate units; determining a reference unit identifier indicating the reference unit from the one or more candidate units of the candidate set; the maximum number of the one or more candidate units included in the candidate set is limited to N, where N is an integer greater than 0; the reconstructed neighboring unit is spatially neighboring to the current unit to be coded, the one or more candidate units belong to the same picture as the current unit to be coded; the restored adjacent units include an upper adjacent unit adjacent to the current unit to be coded, a left adjacent unit adjacent to the current unit to be coded, an upper right adjacent unit adjacent to the current unit to be coded, an upper left adjacent unit adjacent to the current unit to be coded, and a lower left adjacent unit adjacent to the current unit to be coded, A video coding method, wherein the one or more candidate units are selected from the reconstructed neighboring units based on reconstructed neighboring units that are coded using inter prediction.
3. 1. A method for transmitting, by an apparatus, a bitstream generated by a video signal encoding method, comprising: The encoding method comprises: determining a reference unit for the encoding target unit; selecting one or more candidate units from among the recovered neighboring units; generating a candidate set for the current unit to be encoded using the selected one or more candidate units; determining a reference unit identifier indicating the reference unit from the one or more candidate units of the candidate set; the maximum number of the one or more candidate units included in the candidate set is limited to N, where N is an integer greater than 0; the reconstructed neighboring unit is spatially neighboring to the current unit to be coded, the one or more candidate units belong to the same picture as the current unit to be coded; the restored adjacent units include an upper adjacent unit adjacent to the current unit to be coded, a left adjacent unit adjacent to the current unit to be coded, an upper right adjacent unit adjacent to the current unit to be coded, an upper left adjacent unit adjacent to the current unit to be coded, and a lower left adjacent unit adjacent to the current unit to be coded, The method, wherein the one or more candidate units are selected from among the reconstructed neighboring units based on reconstructed neighboring units that are coded using inter prediction.
Citation Information
Patent Citations
Motion vector coding method and motion vector decoding method
JP2004096705A
Moving image encoding device, method and program, and moving image decoding device, method and program
JP2008283490A
Moving image encoding method and moving image decoding method
JP2010081465A
Combined motion vector and reference index prediction for video coding
US20090304084A1
Inter prediction encoding method
WO2012023763A2