Video information signaling method and video information decoding method using the video information signaling method
By jointly coding prediction type information and adapting codewords based on frequency, the method addresses inefficient video compression, reducing transmission overhead and enhancing prediction effectiveness in high-resolution video signaling and decoding.
Patent Information
- Application Number
- JP2025026809
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2011-02-11
- Filing Date
- 2025-02-21
- Publication Date
- 2025-10-15
- Estimated Expiration
- 2031-11-23
AI Technical Summary
The increasing demand for high-resolution, high-quality video leads to higher information transmission and storage costs due to inefficient video compression methods, particularly in signaling and decoding processes.
A method for signaling video information that jointly codes information elements related to prediction types, allocating short codewords to high-frequency prediction types, and determining signaling order based on occurrence frequency to reduce overhead.
This approach reduces transmission overhead and improves compression efficiency by effectively selecting the Most Probable Mode (MPM), enhancing prediction effectiveness and reducing the amount of transmission bits.
Smart Images

Figure 0007755094000037 
Figure 0007755094000038 
Figure 0007755094000039
Abstract
Description
[Technical Field]
[0001] The present invention relates to a video information compression technology, and more particularly to a method for signaling information relating to a prediction mode and a method for decoding video information using the same. [Background technology]
[0002] Recently, the demand for high-resolution, high-quality video has been increasing in various application fields. However, as the video resolution and quality increase, the amount of information related to the video also increases. Therefore, when video information is transmitted using existing media such as wired / wireless broadband lines or stored using existing storage media, the information transmission and storage costs increase. Highly efficient video compression technology can be used to effectively transmit, store, and play high-resolution, high-quality video information.
[0003] To improve the efficiency of video compression, inter prediction and intra prediction can be used. Inter prediction predicts pixel values of a current picture by referring to information from other pictures, while intra prediction predicts pixel values using inter-pixel correlation within the same picture.
[0004] Meanwhile, entropy coding methods include a method of applying context-based adaptive binary arithmetic coding (CABAC) and a method of applying context-based adaptive variable length coding (CAVLC).
[0005] CABAC selects a probability model for each syntax element according to the context, modifies the probability of the probability model according to internal statistics, and performs compression using arithmetic coding. When CAVLC is used as the entropy coding mode, encoding is performed using a predetermined variable length coding (VLC) table for each syntax element. Summary of the Invention [Problem to be solved by the invention]
[0006] SUMMARY OF THE INVENTION An object of the present invention is to provide a signaling method and apparatus that can reduce transmission overhead.
[0007] SUMMARY OF THE INVENTION The present invention aims to provide a method and apparatus for signaling information about a prediction type applied to a current block through joint coding.
[0008] Another object of the present invention is to provide a method and apparatus for determining a signaling order in consideration of the occurrence frequency of each prediction type.
[0009] Another object of the present invention is to provide a method and apparatus for allocating codewords to prediction types in consideration of the frequency of occurrence of each prediction type.
[0010] Another object of the present invention is to provide a method and apparatus for adapting a codeword for a prediction type in consideration of the occurrence frequency of each prediction type.
[0011] Another object of the present invention is to provide a method and apparatus for effectively selecting a Most Probable Mode (MPM) to increase compression efficiency and enhance prediction effectiveness. [Means for solving the problem]
[0012] (1) One embodiment of the present invention is a method for signaling video information, comprising: a step of performing prediction on a current block; and a step of signaling information regarding a prediction type applied to the current block, wherein in the signaling step, information elements constituting the prediction type information are jointly coded and signaled.
[0013] (2) In (1), the information element includes information about a prediction mode and information about a partition size.
[0014] (3) In (2), the information element further includes at least one of information regarding whether the block can be divided and information regarding a slice type.
[0015] (4) In (1), the joint coding allocates short codewords to prediction types with high selection rates.
[0016] (5) In (1), whether or not a predetermined prediction type among prediction types applicable to the current block is applicable is signaled separately using a flag.
[0017] (6) In (5), the predetermined prediction type is skip mode.
[0018] (7) In (5), the predetermined prediction type includes a skip mode and a merge mode, and whether or not the skip mode is applicable to the current block is signaled preferentially, and if it is signaled that an inter prediction mode is applied to the current block, whether or not the merge mode is applicable to the current block is signaled.
[0019] (8) In (5), the joint coding allocates short codewords to prediction types with high selection rates.
[0020] (9) Another embodiment of the present invention is a method for decoding video information, comprising the steps of receiving information, performing prediction on a current block based on the received information, and restoring the current block based on the performed prediction, wherein the received information is jointly coded with an information element constituting a prediction type applied to the current block.
[0021] (10) In (9), the information element includes information about a prediction mode and information about a partition size.
[0022] (11) In (10), the information element further includes at least one of information regarding whether the block can be divided and information regarding a slice type.
[0023] (12) In (9), the joint coding assigns short code words to prediction types with high occurrence rates among the prediction types.
[0024] (13) In (9), whether or not a predetermined prediction type is applicable among the prediction types applicable to the current block is received as separate information using a flag.
[0025] (14) In (13), the predetermined prediction type is a skip mode and a merge mode, and whether the skip mode is applicable is received preferentially. When it is signaled that an inter prediction mode is applied to the current block, information indicating whether the merge mode is applicable to the current block is received. [Effects of the Invention]
[0026] According to the present invention, the overhead can be reduced when signaling information related to prediction.
[0027] According to the present invention, signaling overhead can be reduced by jointly coding information about the prediction type applied to the current block.
[0028] According to the present invention, the signaling order is determined and codewords are assigned in consideration of the occurrence frequency of each prediction type, thereby improving transmission efficiency.
[0029] According to the present invention, the transmission overhead and the amount of transmission bits can be reduced by adapting the codeword for the prediction type in consideration of the occurrence frequency of each prediction type.
[0030] According to the present invention, by effectively selecting the Most Probable Mode (MPM), it is possible to increase compression efficiency and improve prediction effectiveness. [Brief explanation of the drawings]
[0031] [Figure 1] 1 is a block diagram illustrating a video encoding device (encoder) according to an embodiment of the present invention. [Figure 2] 1 is a block diagram illustrating a video decoder according to an embodiment of the present invention; [Figure 3] 10 is a diagram illustrating an example of a method for signaling information about prediction when a merge mode is performed on a coding unit basis; FIG. [Figure 4] FIG. 10 is a diagram illustrating the frequency of occurrence of each prediction type. [Figure 5] FIG. 2 is a diagram illustrating an example of a method for encoder signaling in a system to which the present invention is applied; [Figure 6] FIG. 10 is a diagram illustrating another example of a method for encoder signaling in a system to which the present invention is applied. [Figure 7] FIG. 10 is a diagram illustrating another example of a method for encoder signaling in a system to which the present invention is applied. [Figure 8]FIG. 10 is a diagram illustrating another example of a method for encoder signaling in a system to which the present invention is applied. [Figure 9] 10 is a diagram illustrating an example of a method for signaling information related to prediction when a merge mode is performed on a prediction unit basis. FIG. [Figure 10] FIG. 10 is a diagram illustrating the frequency of occurrence of each prediction type when a merge mode is applied in units of prediction units. [Figure 11] FIG. 2 is a diagram illustrating an example of a method for encoder signaling in a system to which the present invention is applied; [Figure 12] FIG. 10 is a diagram illustrating another example of a method for encoder signaling in a system to which the present invention is applied. [Figure 13] FIG. 10 is a diagram illustrating another example of a method for encoder signaling in a system to which the present invention is applied. [Figure 14] FIG. 10 is a diagram illustrating an example of a decoding process. [Figure 15] FIG. 10 is a diagram illustrating a prediction mode decoding process in the decoding process. [Figure 16] 10 is a diagram illustrating an example of a method for signaling prediction mode, partition information, etc., by joint coding. [Figure 17] FIG. 10 is a diagram for explaining an example in which a codeword assigned to a division mode becomes long, resulting in bit waste. [Figure 18] 1 is a diagram for explaining in outline an example of adaptation initialization in which the partition mode is the object of initialization and the largest coding unit (LCU) is the initialization unit in a system to which the present invention is applied. FIG. [Figure 19] FIG. 1 is a diagram illustrating a method of codeword adaptation. [Figure 20] FIG. 10 is a diagram for schematically explaining an example of a surrounding reference block for adaptation in a system to which the present invention is applied. [Figure 21]FIG. 1 is a diagram for explaining an example of a method for changing adaptation in a system to which the present invention is applied. [Figure 22] FIG. 1 is a diagram illustrating an example of an intra prediction method for a current block. [Figure 23] FIG. 10 is a diagram for explaining in outline an example of a method for determining an MPM when some of the MPM candidates are valid in a system to which the present invention is applied. [Figure 24] FIG. 1 is a diagram illustrating an outline of the expansion of MPM candidates in a system to which the present invention is applied. [Figure 25] 1 is a flowchart illustrating the operation of an encoder in a system to which the present invention is applied. [Figure 26] FIG. 2 is a diagram illustrating the operation of a decoder in a system to which the present invention is applied. DETAILED DESCRIPTION OF THE INVENTION
[0032] The present invention may be modified in various ways and may have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail. However, this does not limit the present invention to the specific embodiment. The terms used in this specification are used merely to describe specific embodiments and are not used to limit the technical idea of the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In this specification, the terms "comprise" or "have" and the like specify the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, and should be understood not to preclude the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.
[0033] Meanwhile, each component in the drawings described in the present invention is illustrated independently for the convenience of explaining the different characteristic functions of the video encoding / decoding device, and does not mean that each component is implemented by separate hardware or software. For example, two or more components may be integrated into one component, or one component may be divided into multiple components. Embodiments in which each component is integrated and / or separated are also within the scope of the present invention as long as they do not deviate from the essence of the present invention.
[0034] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. In the following, the same reference numerals are used to refer to the same components throughout the drawings, and redundant description of the same components will be omitted.
[0035] 1 is a block diagram illustrating a video encoding device (encoder) according to an embodiment of the present invention. Referring to FIG. 1, the video encoding device 100 includes a picture division unit 105, a prediction unit 110, a transform unit 115, a quantization unit 120, a reordering unit 125, an entropy encoding unit 130, a dequantization unit 135, an inverse transform unit 140, a filter unit 145, and a memory 150.
[0036] The picture division unit 105 can divide an input picture into at least one processing unit, which may be a prediction unit (hereinafter referred to as 'PU'), a transform unit (hereinafter referred to as 'TU'), or a coding unit (hereinafter referred to as 'CU').
[0037] As will be described later, the prediction unit 110 includes an inter prediction unit that performs inter prediction and an intra prediction unit that performs intra prediction. The prediction unit 110 performs prediction on the processing unit of a picture in the picture division unit 105 to generate a prediction block. The processing unit of a picture in the prediction unit 110 may be a CU, a TU, or a PU. In addition, the prediction unit 110 may determine whether the prediction to be performed on the corresponding processing unit is inter prediction or intra prediction, and may determine specific details of each prediction method (e.g., a prediction mode, etc.). In this case, the processing unit in which prediction is performed may be different from the processing unit in which the prediction method and specific details are determined. For example, the prediction method and prediction mode may be determined on a PU basis, and the prediction may be performed on a TU basis.
[0038] Inter prediction can be performed to generate a prediction block based on information of at least one picture preceding and / or following the current picture, while intra prediction can be performed to generate a prediction block based on pixel information within the current picture.
[0039] In inter prediction, a reference picture can be selected for a PU, and a reference block of the same size as the PU can be selected in integer pixel sample units. Next, a prediction block is generated that minimizes the residual signal with respect to the current PU and minimizes the magnitude of the motion vector. Intra prediction methods include skip mode, merge mode, and motion vector prediction (MVP). The prediction block can also be generated in sub-integer sample units, such as half-pixel sample units and quarter-pixel sample units. In this case, the motion vector can also be expressed in units of less than integer pixels. For example, it can be expressed in quarter-pixel units for luma pixels and in eighth-pixel units for chroma pixels.
[0040] Information such as the index of the reference picture selected by inter prediction, a motion vector (for example, a motion vector predictor), and a residual signal is entropy coded and transmitted to a decoder.
[0041] When intra prediction is performed, a prediction mode may be determined on a PU-by-PU basis, and prediction may be performed on a PU-by-PU basis. Alternatively, a prediction mode may be determined on a PU-by-PU basis, and intra prediction may be performed on a TU-by-TU basis.
[0042] In intra prediction, prediction modes may include 33 directional prediction modes and at least two non-directional modes, which may include a DC prediction mode and a planar mode.
[0043] In intra prediction, a prediction block can be generated after applying an Adaptive Intra Smoothing (AIS) filter to reference pixels according to the prediction mode. The type of AIS filter applied to the reference pixels can vary. In addition, in intra prediction, prediction can be performed by interpolating reference pixels in 1 / 8 pixel units according to the prediction mode of the current block.
[0044] A PU may have various sizes / shapes. For example, in the case of inter prediction, a PU may have a size of 2N×2N, 2N×N, N×2N, or N×N. In the case of intra prediction, a PU may have a size of 2N×2N or N×N (N is an integer). In this case, a PU of N×N size may be set to be applied only in specific cases. For example, an N×N PU may be set to be used only for a coding unit with the smallest size, or may be set to be used only for intra prediction. In addition to the PUs of the above sizes, PUs of sizes such as N×mN, mN×N, 2N×mN, or mN×2N (m<1) may be further defined and used.
[0045] The residual value (residual block or residual signal) between the generated prediction block and the original block is input to the transform unit 115. In addition, prediction mode information, motion vector information, etc. used for prediction are coded together with the residual value by the entropy coding unit 130 and transmitted to the decoder.
[0046] The transform unit 115 performs a transform on the residual block in transform units to generate transform coefficients. The transform unit in the transform unit 115 may be a TU and may have a quad tree structure. In this case, the size of the transform unit may be determined within a predetermined maximum and minimum size range. The transform unit 115 may transform the residual block using a Discrete Cosine Transform (DCT) and / or a Discrete Sine Transform (DST).
[0047] The quantization unit 120 may generate quantized coefficients by quantizing the residual values converted by the conversion unit 115. The values calculated by the quantization unit 120 are provided to the inverse quantization unit 135 and the reordering unit 125.
[0048] The rearrangement unit 125 rearranges the quantized coefficients provided from the quantization unit 120. Rearranging the quantized coefficients can improve the coding efficiency in the entropy coding unit 130. The rearrangement unit 125 can rearrange the quantized coefficients in a two-dimensional block format into a one-dimensional vector format using a coefficient scanning method.
[0049] The reordering unit 125 can also improve the entropy coding efficiency in the entropy coding unit 130 by changing the order of coefficient scanning based on the probabilistic statistics of the coefficients transmitted by the quantization unit.
[0050] The entropy coding unit 130 may perform entropy coding on the quantized coefficients reordered by the reordering unit 125. For the entropy coding, a coding method such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), Context-Adaptive Binary Arithmetic Coding (CABAC), etc. may be used. The entropy coding unit 130 may code various information received from the reordering unit 125 and the prediction unit 110, such as CU quantization coefficient information and block type information, prediction mode information, partition unit information, PU information and transmission unit information, motion vector information, reference picture information, block interpolation information, and filtering information.
[0051] The entropy coding unit 130 may also make certain changes to the parameter set or syntax to be transmitted, if necessary.
[0052] The inverse quantization unit 135 inversely quantizes the values quantized by the quantization unit 120, and the inverse transform unit 140 inversely transforms the values inversely quantized by the inverse quantization unit 135. Residual values generated by the inverse quantization unit 135 and the inverse transform unit 140 can be combined with a prediction block predicted by the prediction unit 110 to generate a reconstructed block.
[0053] The filter unit 145 can apply a deblocking filter, an adaptive loop filter (ALF), and a sample adaptive offset (SAO) to the reconstructed picture.
[0054] A deblocking filter can remove block distortion that occurs at the boundaries between blocks in a restored picture. An adaptive loop filter (ALF) can perform filtering based on the value obtained by comparing the restored image with the original image after the blocks have been filtered by the deblocking filter. ALF can only be performed when high efficiency is applied. SAO restores the offset difference between the original image and the pixel-by-pixel residual block to which the deblocking filter has been applied, and is applied in the form of band offset, edge offset, etc.
[0055] On the other hand, the filter unit 145 does not need to apply filtering to the reconstructed block used for inter prediction.
[0056] The memory 150 may store the reconstructed blocks or pictures calculated by the filter unit 145. The reconstructed blocks or pictures stored in the memory 150 may be provided to the prediction unit 110 that performs inter-frame prediction.
[0057] 2 is a block diagram illustrating a video decoder according to an embodiment of the present invention. Referring to FIG. 2, the video decoder 200 may include an entropy decoding unit 210, a reordering unit 215, an inverse quantization unit 220, an inverse transform unit 225, a prediction unit 230, a filter unit 235, and a memory 240.
[0058] When a video bitstream is input from a video encoder, the input bitstream can be decoded according to the procedure in which the video information was processed in the video encoder.
[0059] For example, if a video encoder uses variable length coding (VLC) such as CAVLC to perform entropy encoding, the entropy decoder 210 may also perform entropy decoding using the same VLC table as the VLC table used in the encoder. Also, if a video encoder uses CABAC to perform entropy encoding, the entropy decoder 210 may perform entropy decoding using CABAC.
[0060] Among the information decoded by the entropy decoding unit 210, information for generating a prediction block is provided to the prediction unit 230, and the residual values entropy decoded by the entropy decoding unit can be input to the realignment unit 215.
[0061] The reordering unit 215 may reorder the bitstream entropy decoded by the entropy decoding unit 210 based on the reordering method used in the video encoder. The reordering unit 215 may restore coefficients expressed in a one-dimensional vector format to coefficients in a two-dimensional block format and reorder them. The reordering unit 215 may receive information related to coefficient scanning performed in the encoder and perform reordering by scanning in reverse based on the scanning order performed in the corresponding encoder.
[0062] The inverse quantization unit 220 may perform inverse quantization based on the quantization parameter provided by the encoder and the coefficient values of the reordered block.
[0063] The inverse transform unit 225 may perform an inverse DCT and / or an inverse DST on the DCT and DST performed by the transform unit of the encoder on the quantization result performed by the video encoder. The inverse transform may be performed based on a transmission unit or an image division unit determined by the encoder. The DCT and / or DST may be selectively performed in the transform unit of the encoder based on a plurality of pieces of information such as a prediction method, a size of a current block, and a prediction direction, and the inverse transform unit 225 of the decoder may perform the inverse transform based on the transform information performed by the transform unit of the encoder.
[0064] The prediction unit 230 may generate a prediction block based on prediction block generation related information provided by the entropy decoding unit 210 and previously decoded block and / or picture information provided by the memory 240. A reconstructed block may be generated using a prediction block generated by the prediction unit 230 and a residual block provided by the inverse transform unit 225. If the prediction mode for the current PU is an intra prediction mode (intra-picture prediction mode), intra-picture prediction may be performed to generate a prediction block based on pixel information within the current picture.
[0065] If the prediction mode for the current PU is an inter prediction mode (inter prediction mode), inter prediction for the current PU may be performed based on information included in at least one of a picture preceding or following the current picture. In this case, motion information required for inter prediction of the current PU provided by the video encoder, such as information regarding a motion vector and a reference picture index, may be derived in accordance with information received from the encoder after checking information such as a skip flag or a merge flag.
[0066] The reconstructed blocks and / or pictures may be provided to a filter unit 235. The filter unit 235 applies deblocking filtering, sample adaptive offset (SAO), and / or adaptive loop filtering to the reconstructed blocks and / or pictures.
[0067] The memory 240 stores the reconstructed pictures or blocks so that they can be used as reference pictures or blocks, and can provide the reconstructed pictures to an output unit.
[0068] Meanwhile, when prediction is performed in the encoder, information about the prediction, for example, information about a prediction mode and partitions, is signaled to the decoder. The signaling of the information about the prediction can be performed in various ways. For example, when the information about the prediction is signaled, information about a mode in which motion information of a neighboring block (hereinafter, for convenience of explanation, "neighboring block" is referred to as "neighbor block") adjacent to the current block is used as motion information of the current block can be signaled first.
[0069] Methods for using the motion information of neighboring blocks as the motion information of the current block include skip mode, direct mode, and merge mode. In these three modes, the motion information of neighboring blocks is used as the motion information of the current block, so the motion information is not directly transmitted. However, while residual information is not transmitted in skip mode, residual information can be transmitted in direct mode and merge mode. In this case, information indicating which neighboring block's motion information is to be used as the motion information of the current block can be transmitted in skip mode and merge mode.
[0070] As another method of using information of neighboring blocks to predict the current block, methods using (merge) skip mode and merge mode can be considered. In (merge) skip mode, a predetermined block is selected from candidate blocks neighboring the current block, and motion information of the selected block is used as motion information of the current block, and a residual signal is not transmitted. In merge mode, as in the (merge) skip mode, a predetermined block is selected from candidate blocks neighboring the current block, and motion information of the selected block is used as motion information of the current block, and residual information is transmitted. In this case, the residual information may be information regarding the pixel value difference between the current block and a predicted block generated based on a reference block indicated by the motion information of the selected block. When the (merge) skip mode or merge mode is applied, information indicating which candidate block's motion information the current block uses may be transmitted.
[0071] Even when the motion information of the neighboring blocks is not used as the motion information of the current block, the motion information of the current block can be predicted using the motion information of the neighboring blocks. For example, the encoder may signal motion vector difference information indicating the difference between the motion vector of the current block and the motion vector of the neighboring blocks to the decoder, and the decoder may predict the motion information of the current block based on the motion information of the neighboring blocks and the motion vector difference information.
[0072] When using skip mode, direct mode, or merge mode, if the mode does not correspond to the three modes, the encoder signals partition information along with the prediction mode of the current block to the decoder. In merge mode, if the merge mode is performed in units of coding units, the encoder does not signal the prediction mode and partition information of the current block to the decoder, but if the merge mode is performed in units of prediction units, the encoder transmits the prediction mode and partition information of the current block to the decoder.
[0073] When the (merge) skip mode or merge mode is used, processing may be performed in the same manner as when the skip mode, direct mode, or merge mode is used. For example, when neither the (merge) skip mode nor the merge mode is used, the encoder may signal partition information together with the prediction mode of the current block to the decoder. Even in the merge mode, when the merge mode is performed in units of coding units, the encoder does not signal the prediction mode and partition information of the current block to the decoder, but when the merge mode is performed in units of prediction units, the encoder may signal the prediction mode and partition information of the current block to the decoder.
[0074] Therefore, unless the motion information of the neighboring blocks is used as the motion information of the current block in units of coding units, the encoder may signal the prediction mode and partition information for the current block to the decoder.
[0075] 3 is a diagram illustrating an example of a method for signaling information related to prediction when a merge mode is performed in units of coding units. In FIG. 3, a case where {skip mode, direct mode, merge mode} is used as a mode in which motion information of a neighboring block is used as motion information of a current block is illustrated.
[0076] 3, whether the skip mode is applied to the current block may be indicated by skip_flag, and whether the merge mode is applied may be indicated by merge_flag. Also, whether the direct mode is applied to the current block may be indicated by information such as direct_mode_signaling. When a prediction mode other than the skip mode, merge mode, or direct mode is applied, prediction mode and partition information may be indicated by information such as pred_mode_partition_signaling.
[0077] In the example of FIG. 3, first, it is determined whether the prediction mode of the current block is the skip mode by the skip flag. For example, when the value of the skip flag is 1, it can be determined that the skip mode is applied to the current block. When the value of the skip flag is 0, it is determined whether the prediction mode of the current block is the merge mode by the merge flag. For example, when the value of the merge flag is 1, it can be determined that the merge mode is applied to the current block. When the value of the merge flag is 0, it can be determined whether the prediction mode of the current block is the direct mode by the direct mode signaling that indicates whether it is the direct mode. For example, when the value of the direct mode signaling is 1, it can be determined that the direct mode is applied to the current block. When the value of the direct mode signaling is 0, the prediction mode and partition of the current block can be determined by the prediction mode of the current block and the information (pred_mode_partition_signaling) indicating the partition. At this time, the information regarding the prediction mode and partition of the current block (for example, partition size) can be jointly coded and signaled at once.
[0078] Information regarding prediction such as the prediction mode and partition size, that is, the prediction type, can be jointly coded and signaled as described above. The prediction mode can include the intra mode and the inter mode. The partition size can be 2N×2N, N×N (N is the number of samples), etc. for the intra prediction mode, and 2N×2N, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N, nR×2N (where 0 < n < 1 and U, D, L, R are integers indicating the number of samples), etc. for the inter prediction mode.
[0079] Therefore, the prediction type that can be represented by pred_mode_partition_signaling can indicate a prediction type having any one of {2N×2N, N×N} partitions as an intra prediction mode, or a prediction type having any one of {2N×2N, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N, nR×2N} partitions as an inter prediction mode.
[0080] Meanwhile, information regarding prediction types, including information regarding prediction modes and partitions, can be transmitted before or after signaling of other information.
[0081] For example, information about the prediction type may be signaled after the slice type (slice_type) of the current block is signaled. If the prediction mode of the current block is intra mode, the slice type information may indicate an I slice. If the prediction mode of the current block is inter mode, the slice type information may indicate a B or P slice. Here, an I slice refers to a slice decoded using only intra prediction, a B slice refers to a slice decoded using inter prediction or intra prediction using at most two motion vectors and reference indexes, and a P slice refers to a slice decoded using inter prediction or intra prediction using at most one motion vector and reference index.
[0082] In addition, information about the prediction type can be signaled after signaling whether the current block is split (IntraSplitFlag). For example, when information about the prediction type is transmitted as a parameter for a coding unit, information indicating that the current block is not split (IntraSplitFlag=0) or that the current block is split (IntraSplitFlag=1) can be transmitted, and then information about the prediction type can be transmitted.
[0083] Therefore, even if the same index or codeword is assigned to prediction types having the same prediction mode or partition size, it is possible to identify which prediction type is indicated based on pre-transmitted slice type and / or partition information. For example, even if the same index or codeword is assigned to a 2N×2N intra mode and a 2N×2N inter mode, the slice type, which is an I slice, is pre-signaled in the case of the intra mode, and the slice type, which is a P or B slice, is pre-signaled in the case of the inter mode, so the decoder can determine whether a 2N×2N intra mode or a 2N×2N inter mode is indicated.
[0084] On the other hand, as mentioned above, information regarding a prediction mode that uses motion information of a neighboring block as motion information of a current block, such as {skip mode, direct mode, merge mode} or {(merge) skip mode, merge mode}, can be signaled separately without jointly coding information about other prediction types.
[0085] Furthermore, in the case of a merge mode among modes that use motion information of neighboring blocks as motion information of a current block, information regarding whether or not to merge can be jointly coded with other information for merges that occur frequently, taking into account occurrence frequency, and information regarding whether or not to merge can be signaled separately without being jointly coded with other information for merges that occur less frequently. For example, only in the case of merging in units of coding units (CU merge), information regarding whether or not to merge can be jointly coded with information regarding whether or not to predict intra / inter and partition information, etc., and signaled, and in the case of merging in units of prediction units (PU merge), information regarding whether or not to merge can be transmitted separately without being jointly coded with information regarding whether or not to predict intra / inter and partition information, etc. Hereinafter, merging in units of coding units and merging in units of prediction units will be described separately.
[0086] Table 1 shows an example of jointly encoding prediction modes and partition information of a current block according to the example of Figure 3. For convenience of explanation, Table 1 illustrates a case where the inter prediction modes have partitions of {2Nx2N, 2NxN, Nx2N, NxN} among the above-mentioned prediction types.
[0087] [Table 1]
[0088] Referring to Table 1, the encoder can indicate the prediction mode to be applied to the current block and the partition size of the current block by a codeword obtained by joint coding.
[0089] On the other hand, as shown in FIG. 3 and Table 1, when information about a predetermined mode is signaled first and then information about the prediction mode and partition size is signaled, codewords can be assigned taking into account the frequency of occurrence of each prediction type.
[0090] Figure 4 is a diagram showing the frequency of occurrence of each prediction type. Figure 4 shows the distribution for each environment, i.e., Random Access High Efficiency (RAHE), Low Delay High Efficiency (LDHE), Random Access Low Complexity (RALC), and Low Delay Low Complexity (LDLC), for each partition size of skip mode, merge mode, direct mode, intra mode, and inter mode.
[0091] Referring to Figure 4, the occurrence frequency distribution of skip mode and merge mode is high, and the occurrence frequency of direct mode is lower than that of 2Nx2N inter mode. Therefore, in this case, it is more efficient to signal information indicating whether 2Nx2N inter mode is applied first rather than signaling information indicating whether direct mode is applied in the signaling order shown in Figure 3.
[0092] In the example of Figure 4, {skip mode, direct mode, merge mode} were used as prediction modes that use motion information of surrounding blocks as motion information of the current block, and the occurrence frequency of partition sizes 2Nx2N, 2NxN, Nx2N, and NxN was measured. However, even when {(merge) skip mode, merge mode} is used and / or when all partition sizes are used, the occurrence frequency of each prediction mode and partition size can be similarly taken into consideration, and the signaling order can be adjusted based on this.
[0093] Figure 5 is a diagram illustrating an example of a signaling method performed by an encoder in a system to which the present invention is applied. Figure 5 illustrates a case where {skip mode, direct mode, merge mode} are used as prediction modes that use motion information of neighboring blocks as motion information of a current block, and the merge mode is applied in units of coding units, as in Figure 3. Therefore, whether or not the merge mode is applicable is not signaled for each partition size smaller than the coding unit.
[0094] 4, there may be prediction modes / partition sizes having a higher selection rate (occurrence frequency) than the direct mode. Therefore, it is advantageous in terms of transmission overhead to signal so that the applicability of other prediction modes (prediction modes / partition sizes) having a higher selection rate is determined first.
[0095] For example, when a prediction mode / partition size that occurs more frequently than direct mode is set to mode A, information regarding whether mode A is applicable can be transmitted before information regarding whether direct mode is applicable.
[0096] In the example of Fig. 5, the encoder signals information on whether Mode A is applicable before information on whether Direct Mode is applicable. Specifically, the encoder first signals information (skip_flag) indicating whether Skip Mode is applicable to the current block, and if Skip Mode is not applicable, signals information (merge_flag) indicating whether Merge Mode is applicable, and if Merge Mode is not applicable, signals information (modeA_flag) indicating whether Mode A is applicable.
[0097] If Mode A is not applied, the encoder signals information indicating which of the remaining prediction modes / partition sizes is applied to the current block along with Direct Mode. That is, the encoder signals information (pred_mode_partition_signaling) indicating which prediction type is applied to the current block other than Skip Mode, Merge Mode, and Mode A.
[0098] Table 2 is an example of a joint coding table in which codewords are assigned to prediction type information, as shown in the example of Figure 5. For convenience of explanation, Table 2 illustrates an example in which the inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN} and the merge mode is applied in coding unit units.
[0099] [Table 2]
[0100] In the example of Table 2, for convenience of explanation, it is assumed that Mode A is a 2Nx2N inter mode. Therefore, the 2Nx2N inter mode is signaled first without using a joint coding table, and whether or not Direct Mode is applicable is signaled together with other prediction types using a joint coding table.
[0101] At this time, as in the example of FIG. 5, it is also possible to assign code words to prediction types in consideration of the frequency of occurrence of the prediction types, separately from changing the transmission order in consideration of the frequency of occurrence of the prediction types.
[0102] Table 3 shows an example of a joint coding table in which codewords are assigned in consideration of the occurrence frequency of each prediction type. For convenience of explanation, Table 3 illustrates an example in which, among the above-mentioned prediction types, an inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN} and a merge mode is applied in units of coding units.
[0103] [Table 3]
[0104] In the example of Table 3, for convenience of explanation, it is assumed that Nx2N occurs more frequently than 2NxN. Compared with Table 1, in the case of Table 3, the codewords assigned to the 2NxN inter mode and the Nx2N inter mode are changed taking into account the frequency of occurrence of the prediction type. Specifically, assuming that the frequency of occurrence of the 2NxN inter mode is lower than the frequency of occurrence of the Nx2N inter mode, a shorter codeword (01) is assigned to the Nx2N inter mode, which occurs more frequently, and a longer codeword (001) is assigned to the 2NxN inter mode, which occurs less frequently.
[0105] In this case, the frequency of occurrence of the prediction type can be reflected in both the signaling order and the codeword allocation.
[0106] Table 4 is an example of a joint coding table in which codewords are assigned by adjusting the signaling order in consideration of the occurrence frequency of prediction types. For convenience of explanation, Table 4 illustrates an example in which, among the above-mentioned prediction types, the inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN} and the merge mode is applied in units of coding units.
[0107] [Table 4]
[0108] In the example of Table 4, for convenience of explanation, it is assumed that the occurrence frequency of 2Nx2N inter mode is higher than that of direct mode, and that the occurrence frequency of Nx2N is higher than that of 2NxN. Therefore, whether or not 2Nx2N inter mode is applicable is conveyed by separate signaling before whether or not direct mode is applicable. Whether or not direct mode is applicable is signaled together with other prediction types using the joint coding table of Table 4, and in this case, a codeword (01), which is smaller than the codeword (001) of the 2NxN inter mode, is assigned to the Nx2N inter mode, which has a higher occurrence frequency than the 2NxN inter mode.
[0109] Meanwhile, for a certain prediction mode among prediction modes that use motion information of neighboring blocks as motion information of the current block, its applicability may be signaled separately first, and information regarding the applicability of other prediction types may be signaled by joint coding. Thus, whether or not skip mode is applicable may be signaled separately, and whether or not merge mode and direct mode are applicable may be signaled together with whether or not other prediction types are applicable by joint coding. Alternatively, whether or not merge mode is applicable may be signaled separately, and whether or not skip mode and direct mode are applicable may be signaled together with whether or not other prediction types are applicable by joint coding. Similarly, whether or not direct mode is applicable may be signaled separately, and whether or not skip mode and merge mode are applicable may be signaled together with whether or not other prediction types are applicable by joint coding.
[0110] In addition, whether skip mode and merge mode are applicable may be signaled separately, and whether direct mode is applicable may be signaled by joint coding together with whether other prediction types are applicable. Whether skip mode and direct mode are applicable may be signaled separately, and whether merge mode is applicable may be signaled by joint coding together with whether other prediction types are applicable. Alternatively, whether merge mode and direct mode are applicable may be signaled separately, and whether skip mode is applicable may be signaled by joint coding together with whether other prediction types are applicable.
[0111] Even when {skip merge mode, merge mode} is used instead of {skip mode, direct mode, merge mode}, whether the skip merge mode is applicable can be signaled separately, and whether the merge mode is applicable can be signaled by joint coding together with whether other prediction types are applicable. Alternatively, whether the merge mode is applicable can be signaled separately, and whether the (merge) skip mode is applicable can be signaled by joint coding together with whether other prediction types are applicable.
[0112] Table 5 shows an example of a joint coding table used to signal whether a certain prediction mode is applicable and whether other prediction types are applicable among prediction modes that use motion information of neighboring blocks as motion information of a current block. Table 5 describes an example in which, assuming {skip mode, direct mode, merge mode} is used, whether the direct mode is applicable is signaled together with whether other prediction types are applicable by joint coding. For convenience of explanation, Table 5 also describes an example in which, among the above-mentioned prediction types, the inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN} and the merge mode is applied in units of coding units.
[0113] [Table 5]
[0114] According to Table 5, the encoder can indicate the prediction type for the current block by transmitting a codeword corresponding to the prediction type applied to the current block.
[0115] In this case, the encoder can also assign codewords according to the frequency of occurrence of each prediction type.
[0116] Table 6 is an example of a joint coding table that allocates code words taking into consideration the frequency of occurrence when it is assumed that the 2N×2N inter mode occurs more frequently than the direct mode.
[0117] [Table 6]
[0118] Referring to Table 6, the 2N×2N inter mode, which occurs more frequently, is assigned a code word (1) which is smaller than the code word (01) of the direct mode.
[0119] Table 7 shows an example of allocating codewords in consideration of the frequency of occurrence when it is assumed that the frequency of occurrence of 2N×N inter mode is lower than the frequency of occurrence of N×2N inter mode among inter modes.
[0120] [Table 7]
[0121] Referring to Table 7, the more frequently occurring 2Nx2N intermode is assigned the codeword (1), which is smaller than the codeword (01) for direct mode, and the Nx2N intermode is assigned the codeword (001), which is smaller than the codeword (0001) for 2NxN intermode.
[0122] 6 is a diagram illustrating another example of a signaling method by an encoder in a system to which the present invention is applied. In FIG. 6, a case where the direct mode is not applied as a prediction mode using motion information of a neighboring block as motion information of a current block, i.e., a case where {(merge) skip mode, merge mode} is used and the merge mode is applied in units of coding units, is illustrated. Therefore, whether or not the merge mode is applied is not signaled for each partition size smaller than the coding unit.
[0123] Comparing the embodiment of Figure 6 with the case of Figure 3 or Figure 5, the number of pieces of information regarding whether a prediction mode using motion information of a neighboring block as motion information of a current block is applicable is reduced by one. That is, it is the same as when there is no direct mode in the case of Figure 3 or Figure 5. In the case of Figure 3 or Figure 5, excluding direct mode reduces signaling overhead for inter / intra modes signaled subsequently. Therefore, when (merge) skip mode and merge mode are used as in the case of Figure 6, signaling overhead can be reduced compared to the case of Figure 3 or Figure 5.
[0124] When {(merge) skip mode, merge mode} is used, the prediction type can be signaled in the same manner as when {skip mode, direct mode, merge mode} is used. For example, in the example of FIG. 6, if a prediction mode or prediction type with a high selection rate (occurrence frequency) among prediction types other than (merge) skip mode and merge mode is designated as mode A, signaling of information (modeA_flag) regarding whether mode A is applicable can be signaled before information regarding whether other prediction types (2N×2N inter mode, ..., N×N intra mode) are applicable. Also, when mode A is not applied, whether other prediction types (2N×2N inter mode, ..., N×N intra mode) are applicable can be signaled by joint coding.
[0125] Table 8 is an example of a joint coding table in which codewords are assigned to prediction type information as shown in Figure 6. For convenience of explanation, Table 8 illustrates an example in which the inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN} and the merge mode is applied in coding unit units.
[0126] [Table 8]
[0127] In the example of Table 8, for convenience of explanation, it is assumed that the most frequently occurring prediction type among inter prediction modes having partition sizes of 2Nx2N, 2NxN, Nx2N, and NxN, i.e., mode A, is the 2Nx2N inter mode. Therefore, whether the 2Nx2N inter mode is applicable is transmitted in advance by separate signaling.
[0128] At this time, as in the example of FIG. 6, it is also possible to allocate code words to prediction types taking into consideration the occurrence frequency (selection ratio), separately from determining the transmission order taking into consideration the occurrence frequency of the prediction types.
[0129] Table 9 is an example of a joint coding table for the case where {(merge) skip mode, merge mode} is used and codewords are assigned in consideration of the occurrence frequency of prediction types. For convenience of explanation, Table 9 illustrates an example where the inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN} and the merge mode is applied in units of coding units.
[0130] [Table 9]
[0131] In Table 9, it is assumed that the frequency of occurrence of N×2N inter mode is higher than the frequency of occurrence of 2N×N inter mode, and shorter code words are assigned to N×2N inter mode.
[0132] Also, when using {(merge) skip mode, merge mode}, the occurrence frequency of the prediction type can be reflected in both the signaling order and codeword allocation.
[0133] Table 10 is an example of a joint coding table for the case where {(merge) skip mode, merge mode} is used and codewords are assigned by adjusting the signaling order in consideration of the occurrence frequency of prediction types. For convenience of explanation, Table 10 illustrates an example where, among the above-mentioned prediction types, the inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN} and the merge mode is applied in units of coding units.
[0134] [Table 10]
[0135] In the example of Table 10, for convenience of explanation, it is assumed that the occurrence frequency of 2Nx2N inter mode is the highest among 2Nx2N, 2NxN, Nx2N, and NxN inter modes, and that 2NxN inter mode occurs more frequently than Nx2N inter mode. Therefore, whether (merge) skip mode, merge mode, and 2Nx2N inter mode are applicable is transmitted first by separate signaling. Whether other prediction types are applicable is signaled using the joint coding table of Table 10, and in this case, Nx2N inter mode, which has a higher occurrence frequency than 2NxN inter mode, is assigned a codeword (1) smaller than the codeword (01) of 2NxN inter mode.
[0136] Meanwhile, when {skip mode, direct mode, merge mode} is used as a prediction mode that uses motion information of a neighboring block as motion information of a current block, direct mode and merge mode can be integrated. Direct mode and merge mode are similar to each other in that, unlike skip mode, motion information is derived from neighboring blocks and then residual information is transmitted. When direct mode and merge mode are integrated, the signaling overhead of information on whether inter / intra mode is applicable is reduced, which is signaled after signaling information on whether a mode combining direct mode and merge mode (hereinafter, referred to as 'integrated mode' for convenience of explanation) is applied. When the integrated mode is applied, adjustment of the signaling order, adjustment of codeword allocation, etc. can be performed in the same manner as described above.
[0137] 7 and 8 are diagrams for explaining another example of a signaling method by an encoder in a system to which the present invention is applied. In FIG. 7 and FIG. 8, a case is explained in which the integration mode is used and the merge mode is applied in units of coding units. Therefore, whether or not the merge mode is applicable is not signaled for each partition size smaller than a coding unit.
[0138] In the example of FIG. 7, after signaling whether or not to apply the skip mode, if the skip mode is not applied, signaling whether or not to apply the prediction type with the highest occurrence frequency among the remaining prediction types is given priority.
[0139] 7 illustrates a case where mode A is assumed to be the most frequently occurring prediction type among the remaining prediction types excluding skip mode. Therefore, if skip mode is not applied, the encoder signals whether mode A is applied, and if mode A is not applied, the encoder signals which prediction type is applied among the remaining prediction types (including prediction mode / partition size) using joint coding (pred_mode_partition_signaling).
[0140] Table 11 is a joint coding table according to the example of FIG.
[0141] [Table 11]
[0142] In the example of Figure 7 and Table 11, after signaling whether or not the skip mode is applicable, if the skip mode is not applicable, whether or not the merged mode is applicable is signaled as the prediction type with the highest occurrence frequency. If the merged mode is not applicable, which prediction type is to be applied is signaled using the result of jointly coding the prediction modes of the remaining prediction types and information related to partitions, etc., as shown in Table 11. Meanwhile, in the example of Figure 7 and Table 11, a case is illustrated in which the prediction type with the highest occurrence frequency excluding the skip mode is the merged mode, but this is merely an example for convenience of explanation, and the present invention is not limited thereto. For example, if the occurrence frequency of the 2Nx2N inter mode is higher than the merged mode, the 2Nx2N inter mode may be determined as mode A, and whether or not the 2Nx2N inter mode is applicable may be separately signaled in advance, and then whether or not the merged mode is applicable may be signaled together with the application type of the other prediction types using joint coding.
[0143] 8 illustrates a method in which, unlike in FIG. 7, whether or not to apply merge mode is separately signaled in advance (merge_direct_flag) when skip mode is not applied, and whether or not to apply the most frequently occurring prediction type (mode A) among other prediction types is separately signaled in advance (modeA_flag) when merge mode is not applied. When mode A is not applied, which prediction mode among other prediction modes is to be applied is signaled using joint coding (pred_mode_partition_signaling) as in FIG. 7.
[0144] Table 12 is a joint coding table according to the example of FIG.
[0145] [Table 12]
[0146] In the example of Table 12, for convenience of explanation, it is assumed that the 2Nx2N inter mode is mode A. Therefore, whether the 2Nx2N inter mode is applicable can be separately signaled in advance.
[0147] Meanwhile, as described above, when joint coding is performed separately from adjusting the signaling order, codewords can be allocated taking into consideration the occurrence frequency (selection ratio) of each prediction type.
[0148] Table 13 is an example of a joint coding table when using the merge mode and when codewords are assigned in consideration of the occurrence frequency of prediction types. For convenience of explanation, Table 13 illustrates an example in which, among the above-mentioned prediction types, the inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN} and the merge mode is applied in units of coding units.
[0149] [Table 13]
[0150] Table 13 illustrates an example in which the frequency of occurrence of Nx2N inter mode is higher than the frequency of occurrence of 2NxN inter mode. Therefore, in the example of Table 13, a codeword (01) shorter than the codeword (001) assigned to the 2NxN inter mode is assigned to the Nx2N inter mode.
[0151] Furthermore, taking into consideration the occurrence frequency of each prediction type, the signaling order can be adjusted as shown in FIG. 8, and codewords can be assigned as shown in Table 13.
[0152] Table 14 is an example of a joint coding table for a case where a merge mode is used and a codeword is assigned by adjusting the signaling order in consideration of the occurrence frequency of a prediction type. For convenience of explanation, Table 14 illustrates a case where, among the above-mentioned prediction types, an inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN} and a merge mode is applied in units of coding units.
[0153] [Table 14]
[0154] In the example of Table 14, for convenience of explanation, it is assumed that the prediction mode corresponding to mode A in Figure 8 is 2Nx2N inter mode, and that the occurrence frequency of Nx2N inter mode is higher than the occurrence frequency of 2NxN inter mode. Therefore, if the application of the integration mode is not applied after signaling the application of the integration mode, the application of the 2Nx2N inter mode is signaled by separate signaling. In addition, the Nx2N inter mode is assigned a codeword (1) that is shorter than the codeword (01) assigned to the 2NxN inter mode.
[0155] Also, when using the integrated mode, it is possible to signal which prediction type is applied to prediction types other than the skip mode at once by joint coding (pred_mode_partition_signaling). That is, it is possible to assign a codeword to each prediction type including the integrated mode and signal the codeword corresponding to the applied prediction type.
[0156] Table 15 shows an example of a joint coding table used when using the integrated mode, assigning codewords to each prediction type other than the skip mode, and transmitting information on the prediction type (prediction mode, partition size, etc.) applied to the current block.
[0157] [Table 15]
[0158] For convenience of explanation, Table 15 illustrates an example in which the inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN} and the merge mode is applied to each coding unit. Referring to Table 15, the encoder may assign a codeword to each prediction mode, i.e., merge mode (merge / direct mode), 2Nx2N, NxN intra mode, 2Nx2N, 2NxN, Nx2N, NxN inter mode, and transmit a codeword of the prediction type applied to the current block.
[0159] At this time, the encoder may allocate codewords taking into consideration the frequency of occurrence (selection ratio) of each prediction type.
[0160] Table 16 shows an example of allocating code words in the example of Table 15, taking into consideration the occurrence frequency of each prediction type.
[0161] [Table 16]
[0162] For ease of explanation, in the example of Table 16, it is assumed that the frequency of occurrence of N×2N inter mode is higher than the frequency of occurrence of 2N×N inter mode. Therefore, in the example of Table 16, when compared with the example of Table 15, a shorter codeword (001) is assigned to the N×2N inter mode than the codeword (0001) assigned to the 2N×N inter mode.
[0163] For the sake of convenience, the above description has been given with an example in which only partitions of {2Nx2N, 2NxN, Nx2N, NxN} are applied to inter-mode, but the prediction type for the current block can also be signaled taking into account all partitions for inter-mode.
[0164] Table 17 shows an example of a joint coding table that can be used to signal a predicted block for a current block when considering all partitions of 2Nx2N, 2NxN, Nx2N, NxN, 2NxnU, 2NxnD, nLx2N, and nRx2N.
[0165] [Table 17]
[0166] Referring to Table 17, each partition size of the intra mode and each partition size of the inter mode can be indicated by the prediction type. Therefore, the prediction mode and the partition size can be jointly coded to simultaneously signal the prediction type for the current block. In this case, as described above, a codeword can be assigned in consideration of the occurrence frequency for each prediction type.
[0167] Meanwhile, in the example of Table 17, in the case of a prediction mode in which motion information of a neighboring block is used as motion information of a current block, for example, {skip mode, direct mode, merge mode} or {(merge) skip mode, merge mode}, whether the corresponding mode is applicable may be inferred based on other conditions or the applicability may be transmitted in advance by separate signaling. Also, the example of Table 17 assumes that the merge mode is applied in units of coding units as in the other examples described above, and therefore, whether the merge mode is applicable is not signaled for each partition.
[0168] In addition, the signaling of each prediction type may include additional information, such as the slice type or information regarding whether or not partitioning is possible. In this case, the prediction type may be distinguished based on the additional information. For example, for an I slice, if the prediction type has a value of 0, it may indicate a 2N×2N intra mode, and for a B or P slice, if the prediction type has a value of 0, it may indicate a 2N×2N inter mode.
[0169] Also, prediction types can be distinguished by assigning different codewords to prediction types having different prediction modes / partitions.
[0170] Meanwhile, although the merge mode has been described above as being applied to a coding unit, the merge mode may also be applied to a prediction unit. For example, in the above-described examples, whether or not the merge mode is applied to each partition of the inter prediction mode is signaled, so that the above-described content of the present invention can be directly applied to a case where the merge mode is performed on a prediction unit basis.
[0171] Hereinafter, a method for applying the present invention to a case where the merge mode is executed in units of prediction units will be specifically described.
[0172] 9 is a diagram illustrating an example of a method for signaling information related to prediction when a merge mode is performed in units of prediction units. In FIG. 9, a case where {skip mode, direct mode, merge mode} is used as a mode in which motion information of a neighboring block is used as motion information of a current block is illustrated.
[0173] In the example of Figure 9, unlike the example of Figure 3, when neither skip mode nor direct mode is applied, an inter prediction mode and partition to be applied to the current block are indicated, and whether the corresponding partition is merged is signaled. Whether skip mode and direct mode are applied is signaled separately in advance, and when neither skip mode nor direct mode is applied, which prediction mode / partition to apply is signaled by jointly coding the prediction mode indication and information regarding the partition size. Whether a merge mode is applied to each partition of inter prediction is indicated by the merge mode, and for convenience of explanation, the inter prediction mode performed when the merge mode is not applied is referred to as a normal inter mode.
[0174] Table 18 shows an example of jointly encoding the prediction mode and partition information of the current block according to the example of Figure 9. For convenience of explanation, Table 18 illustrates a case where the inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN}.
[0175] [Table 18]
[0176] Referring to Table 18, the encoder can indicate to the decoder the prediction type to be applied to the current block by signaling a codeword.
[0177] On the other hand, as shown in FIG. 9 and Table 18, when information about a predetermined mode is signaled first and then information about the prediction mode and partition size is signaled, codewords can be assigned taking into account the frequency of occurrence of each prediction type.
[0178] Fig. 10 is a diagram illustrating the frequency of occurrence of each prediction type when the merge mode is applied in units of prediction units. Fig. 10 illustrates the distribution of occurrence frequencies for RAHE, LDHE, RALC, and LDLC for each partition size of skip mode, merge mode, direct mode, intra mode, and inter mode.
[0179] 10, the frequency distribution of skip mode is high, and direct mode occurs less frequently than 2Nx2N inter mode. Therefore, in this case, it is more efficient to signal information indicating whether 2Nx2N inter mode is applied first rather than signaling information indicating whether direct mode is applied in the signaling order shown in FIG.
[0180] In the example of Figure 10, {skip mode, direct mode, merge mode} was used and the occurrence frequency of partition sizes 2Nx2N, 2NxN, Nx2N, and NxN was measured. However, even when using {(merge) skip mode, merge mode} and / or when using all partition sizes, the occurrence frequency of each prediction mode and partition size can be taken into consideration and the signaling order can be adjusted based on this.
[0181] 11 is a diagram for explaining an example of a signaling method by an encoder in a system to which the present invention is applied. In FIG. 11, {skip mode, direct mode, merge mode} is used as a prediction mode in which motion information of a neighboring block is used as motion information of a current block.
[0182] 10, there may be prediction modes / partition sizes having a higher selection rate (occurrence frequency) than the direct mode. Therefore, it is advantageous in terms of transmission overhead to signal so that the applicability of other prediction modes (prediction modes / partition sizes) having a higher selection rate is determined first.
[0183] For example, if a prediction mode / partition size that occurs more frequently than direct mode is set to mode A, information regarding whether mode A is applicable can be transmitted before information regarding whether direct mode is applicable.
[0184] Therefore, in the example of Fig. 11, the encoder signals information regarding whether Mode A is applicable before information regarding whether Direct Mode is applicable. Specifically, the encoder first signals information (skip_flag) indicating whether Skip Mode is applicable to the current block, and if Skip Mode is not applicable, signals information (modeA_flag) indicating whether Mode A is applicable.
[0185] If mode A is not applied, the encoder signals information (pred_mode_partition_signaling) indicating which of the remaining prediction modes / partition sizes is applied to the current block along with direct mode.
[0186] Table 19 is an example of a joint coding table in which codewords are assigned to prediction type information as shown in Figure 11. For convenience of explanation, Table 19 illustrates a case in which the inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN}.
[0187] [Table 19]
[0188] In the example of Table 19, for convenience of explanation, it is assumed that Mode A is 2Nx2N inter mode. Therefore, the 2Nx2N inter mode is signaled first without using a joint coding table, and whether or not Direct Mode is applicable is signaled together with other prediction types using a joint coding table.
[0189] On the other hand, as in the example of FIG. 11, it is also possible to assign code words to prediction types in consideration of the frequency of occurrence of the prediction types, separately from changing the transmission order in consideration of the frequency of occurrence of the prediction types.
[0190] Table 20 shows a joint coding table in which codewords are assigned in consideration of the occurrence frequency of each prediction type. For convenience of explanation, Table 20 illustrates an example in which the inter prediction mode has partitions of {2N×2N, 2N×N, N×2N, N×N}.
[0191] [Table 20]
[0192] In the example of Table 20, for convenience of explanation, it is assumed that N×2N occurs more frequently than 2N×N. In the case of Table 20, the codewords assigned to the 2N×N inter mode and the N×2N inter mode are changed taking into account the frequency of occurrence of the prediction type. Specifically, assuming that the frequency of occurrence of the 2N×N inter mode is lower than the frequency of occurrence of the N×2N inter mode, the shorter codeword (01) can be assigned to the N×2N inter mode, which occurs more frequently, and the longer codeword (001) can be assigned to the 2N×N inter mode, which occurs less frequently.
[0193] In this case, the frequency of occurrence of the prediction type can be reflected in both the signaling order and the codeword allocation.
[0194] Table 21 is an example of a joint coding table for a case where codewords are assigned by adjusting the signaling order in consideration of the occurrence frequency of prediction types. For convenience of explanation, Table 21 illustrates a case where an inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN}.
[0195] [Table 21]
[0196] In the example of Table 21, for convenience of explanation, it is assumed that the occurrence frequency of 2Nx2N inter mode is higher than that of direct mode, and that the occurrence frequency of Nx2N is higher than that of 2NxN. Therefore, whether or not 2Nx2N inter mode is applicable is conveyed by separate signaling before whether or not direct mode is applicable. Whether or not direct mode is applicable is signaled together with other prediction types using the joint coding table of Table 21, and in this case, the Nx2N inter mode, which has a higher occurrence frequency than the 2NxN inter mode, is assigned a codeword (01) smaller than the codeword (001) of the 2NxN inter mode.
[0197] Meanwhile, as described above, even when the merge mode is performed in units of prediction units, whether a certain prediction mode among prediction modes that use motion information of neighboring blocks as motion information of the current block may be separately signaled in advance, and information regarding whether other prediction types may be applied may be signaled by joint coding. For example, whether skip mode among {skip mode, direct mode, merge mode} or {(merge) skip mode, merge mode} may be separately signaled in advance, and whether direct mode or merge mode may be applied may be signaled using joint coding together with whether the remaining prediction types may be applied.
[0198] Table 22 illustrates an example in which, when {skip mode, direct mode, merge mode} is used, whether the direct mode is applicable is signaled by joint coding together with whether other prediction types are applicable. Specifically, whether one of the prediction types for the direct mode and the inter mode / intra mode is applicable is not signaled first by a flag, but is distinguished and signaled at once by a codeword assigned to the prediction type including the direct mode. For convenience of explanation, Table 22 also illustrates an example in which the inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN}.
[0199] [Table 22]
[0200] According to Table 22, the encoder can indicate the prediction type for the current block by transmitting a codeword corresponding to the prediction type applied to the current block.
[0201] In this case, the encoder can also assign codewords according to the frequency of occurrence of each prediction type.
[0202] Table 23 is an example of a joint coding table that assigns code words taking frequency of occurrence into consideration, assuming that the 2N×2N inter mode occurs more frequently than the direct mode.
[0203] [Table 23]
[0204] Referring to Table 23, the 2N×2N Inter mode, which occurs more frequently, is assigned a code word (1) which is smaller than the code word (01) of the Direct mode.
[0205] Table 24 shows an example of allocating codewords in consideration of the frequency of occurrence when it is assumed that the frequency of occurrence of 2N×N intermode is lower than that of N×2N intermode.
[0206] [Table 24]
[0207] Referring to Table 24, the more frequently occurring 2Nx2N intermode is assigned the codeword (1), which is smaller than the codeword (01) for direct mode, and the Nx2N intermode is assigned the codeword (001), which is smaller than the codeword (0001) for 2NxN intermode.
[0208] In the examples of Figure 11 and Tables 19 to 24, since the merge mode can be applied in units of prediction units, whether the merge mode is applied to the current block can be signaled (merge_flag) after signaling that mode A is applied. Even when an inter prediction mode other than direct mode is indicated according to Tables 19 to 24, whether the merge mode is applied to the current block can be signaled. Furthermore, if the selection rate of a particular merge mode is high, mode A itself can be set as the merge mode.
[0209] 12 is a diagram for explaining another example of a signaling method by an encoder in a system to which the present invention is applied. In FIG. 12, a case where the direct mode is not applied as a prediction mode using motion information of a neighboring block as motion information of a current block, i.e., a case where {(merge) skip mode, merge mode} is used and the merge mode is applied in units of prediction units is explained as an example.
[0210] Comparing the embodiment of Figure 12 with the case of Figure 9 or Figure 11, the amount of information regarding whether a prediction mode that uses motion information of a neighboring block as motion information of a current block is applicable is reduced by one. In this way, if the direct mode is excluded in the case of Figure 9 or Figure 10, overhead can be reduced when subsequently signaling information regarding inter / intra modes.
[0211] When {(merge) skip mode, merge mode} is used, the prediction type can be signaled in the same manner as when {skip mode, direct mode, merge mode} is used. For example, in the example of FIG. 12, if a prediction mode or prediction type with a high selection rate (occurrence frequency) among prediction types other than the (merge) skip mode is designated as mode A, signaling of information (modeA_flag) regarding whether mode A is applicable can be signaled before information regarding whether other prediction types (2N×2N inter mode, ..., N×N intra mode) are applicable. Also, when mode A is not applied, whether other prediction types (2N×2N inter mode, ..., N×N intra mode) are applicable can be signaled by joint coding.
[0212] Table 25 is an example of a joint coding table in which codewords are assigned to prediction type information as shown in Figure 12. For convenience of explanation, Table 25 illustrates a case in which the inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN}.
[0213] [Table 25]
[0214] In the example of Table 25, for convenience of explanation, it is assumed that the most frequently occurring prediction type among inter prediction modes having partition sizes of 2Nx2N, 2NxN, Nx2N, and NxN, i.e., mode A, is the 2Nx2N inter mode. Therefore, whether the 2Nx2N inter mode is applicable is transmitted in advance by separate signaling.
[0215] At this time, as in the example of FIG. 12, it is also possible to allocate code words to prediction types taking into consideration the occurrence frequency (selection ratio), separately from determining the transmission order taking into consideration the occurrence frequency of the prediction types.
[0216] Table 26 is an example of a joint coding table for the case where {(merge) skip mode, merge mode} is used and codewords are assigned in consideration of the occurrence frequency of prediction types. For convenience of explanation, Table 26 illustrates an example where the inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN}.
[0217] [Table 26]
[0218] In Table 26, it is assumed that the frequency of occurrence of Nx2N inter mode is higher than the frequency of occurrence of 2NxN inter mode. Therefore, the Nx2N inter mode is assigned a codeword (01) that is shorter than the codeword (001) for the 2NxN inter mode.
[0219] Also, when using {(merge) skip mode, merge mode}, the occurrence frequency of the prediction type can be reflected in both the signaling order and codeword allocation.
[0220] Table 27 shows an example of a joint coding table for a case where {(merge) skip mode, merge mode} is used and codewords are assigned by adjusting the signaling order in consideration of the frequency of occurrence of prediction types. For convenience of explanation, Table 27 illustrates a case where the inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN}.
[0221] [Table 27]
[0222] In the example of Table 27, for convenience of explanation, it is assumed that the occurrence frequency of 2Nx2N inter mode is the highest among 2Nx2N, 2NxN, Nx2N, and NxN inter modes, and that 2NxN inter mode occurs more frequently than Nx2N inter mode. Therefore, whether (merge) skip mode, merge mode, and 2Nx2N inter mode are applicable can be conveyed by separate signaling. Whether other prediction types are applicable is signaled using the joint coding table of Table 27, and in this case, Nx2N inter mode, which has a higher occurrence frequency than 2NxN inter mode, is assigned a codeword (1) smaller than the codeword (01) of 2NxN inter mode.
[0223] In the examples of Figure 12 and Tables 25 to 27, since the merge mode can be applied in units of prediction units, whether the merge mode is applied to the current block can also be signaled separately (merge_flag). For example, after signaling which inter prediction mode / partition is applied to the current block according to Tables 25 to 27, whether the merge mode is applied to the current block can also be signaled. Also, if the selection rate of a particular merge mode is high, mode A itself can be set as the merge mode.
[0224] Meanwhile, even when the merge mode is applied in units of prediction units, when {skip mode, direct mode, merge mode} is used, the direct mode and merge mode can be integrated to use the above-mentioned integrated mode. Direct mode and merge mode are similar to each other in that, unlike skip mode, motion information is derived from neighboring blocks and then residual information is transmitted. Using the integrated mode can reduce the signaling overhead of information regarding whether inter / intra modes other than skip mode and integrated mode are applicable. Even when the integrated mode is applied, adjustment of the signaling order, codeword allocation adjustment, etc. can be performed in the same manner as described above.
[0225] 13 is a diagram for explaining another example of a signaling method performed by an encoder in a system to which the present invention is applied, in which the integration mode is used and the merge mode is applied in units of prediction units.
[0226] In the example of Fig. 13, after signaling whether or not to apply skip mode, if skip mode is not applied, signaling whether or not to apply the prediction type with the highest occurrence frequency among the remaining prediction types is given priority. That is, in Fig. 13, it is assumed that Mode A is the prediction type with the highest occurrence frequency among the remaining prediction types excluding skip mode. In this case, Mode A may be integrated mode.
[0227] Therefore, if the skip mode is not applied, the encoder signals whether or not mode A is applied, and if mode A is not applied, it signals which prediction type is applied among the remaining prediction types using joint coding (pred_mode_partition_signaling).
[0228] Table 28 is a joint coding table according to the example of FIG.
[0229] [Table 28]
[0230] 7 and Table 11, the prediction type with the highest occurrence frequency excluding skip mode is the integrated mode, but this is merely an example for convenience of explanation, and the present invention is not limited thereto. For example, if the occurrence frequency of 2Nx2N inter mode is higher than that of the integrated mode, the 2Nx2N inter mode may be determined as mode A, and whether or not the 2Nx2N inter mode is applicable may be separately signaled in advance, and then whether or not the integrated mode is applicable may be signaled together with the application type of other prediction types using joint coding.
[0231] Meanwhile, even when the integrated mode is used, codewords can be assigned taking into consideration the occurrence frequency (selection ratio) of each prediction type, separately from adjusting the signaling order.
[0232] Table 29 shows an example of a joint coding table for the case where the unified mode is used and codewords are assigned in consideration of the occurrence frequency of prediction types. For convenience of explanation, Table 29 illustrates an example where the inter prediction mode has partitions of {2Nx2N, 2NxN, Nx2N, NxN}.
[0233] [Table 29]
[0234] Table 29 illustrates an example in which the frequency of occurrence of Nx2N inter mode is higher than the frequency of occurrence of 2NxN inter mode. Therefore, in the example of Table 29, a codeword (01) shorter than the codeword (001) assigned to the 2NxN inter mode is assigned to the Nx2N inter mode.
[0235] Even when the joint mode is applied, a codeword can be assigned to each prediction type including the joint mode, and the codeword corresponding to the prediction type to be applied can be signaled.
[0236] Table 30 shows an example of a joint coding table used when using integrated mode, assigning codewords to each prediction type other than skip mode, and transmitting information on the prediction type (prediction mode, partition size, etc.) applied to the current block.
[0237] [Table 30]
[0238] For convenience of explanation, Table 30 illustrates an example in which the inter prediction mode has partitions of {2N×2N, 2N×N, N×2N, N×N}. Referring to Table 30, the encoder may assign a codeword to each prediction mode, i.e., merge mode (merge / direct mode), 2N×2N, N×N intra mode, 2N×2N, 2N×N, N×2N, N×N inter mode, and transmit a codeword of a prediction type applied to the current block.
[0239] In this case, the encoder can allocate codewords taking into consideration the frequency of occurrence (selection ratio) of each prediction type. Table 31 shows an example of allocating codewords taking into consideration the frequency of occurrence of each prediction type in the example of Table 30.
[0240] [Table 31]
[0241] For ease of explanation, it is assumed in the example of Table 31 that the frequency of occurrence of N×2N inter mode is higher than the frequency of occurrence of 2N×N inter mode. Therefore, in the example of Table 31, when compared with the example of Table 30, the codeword (001) assigned to the N×2N inter mode is shorter than the codeword (0001) assigned to the 2N×N inter mode.
[0242] Meanwhile, in the cases of Tables 28 to 31, the merge mode is applied in units of prediction units. Therefore, when the signaling order is adjusted (Tables 28 and 31) or when a merge mode including the merge mode is considered equally to other prediction types (Table 30), if an inter prediction mode / partition size other than the skip mode and the merge mode is applied to the current block, whether the merge mode is applied may not be signaled separately. Meanwhile, when information about the prediction type is signaled according to Table 29, which is a case where codeword allocation is performed in consideration of occurrence frequency without adjusting the signaling order, information about whether the merge mode is applied to the current block (merge_flag) may be signaled after it is signaled that one of the inter prediction modes / partition sizes is applied to the current block.
[0243] For the sake of convenience, the above description has been given with an example in which only partitions of {2Nx2N, 2NxN, Nx2N, NxN} are applied to inter modes, but the prediction type for the current block can also be signaled taking into account all partitions for inter modes.
[0244] Table 32 shows an example of a joint coding table that can be used to signal a predicted block for a current block when considering all partitions of 2Nx2N, 2NxN, Nx2N, NxN, 2NxnU, 2NxnD, nLx2N, and nRx2N.
[0245] [Table 32]
[0246] Referring to Table 32, each partition size of the intra mode and each partition size of the inter mode can be indicated by the prediction type. Therefore, the prediction mode and the partition size can be jointly coded to simultaneously signal the prediction type for the current block. In this case, as described above, codewords can be assigned in consideration of the occurrence frequency for each prediction type.
[0247] Meanwhile, in the example of Table 32, in the case of a prediction mode in which motion information of a neighboring block is used as motion information of a current block, for example, {skip mode, direct mode, merge mode} or {(merge) skip mode, merge mode}, whether the corresponding mode is applicable may be inferred based on other conditions, or the applicability may be transmitted in advance by separate signaling. Also, Table 32 assumes that the merge mode is applied in units of prediction units as in the other examples described above, and whether the merge mode is applicable may be signaled again for each partition.
[0248] Therefore, both the cases of Table 17 and Table 32 can be applied, and whether or not merging is possible can be transmitted by separate signaling on a coding unit basis. If the merge mode is not applied on a coding unit basis, as shown in Table 32, whether or not merging is possible (merge_flag) can be signaled on a partition (prediction unit) basis while or after signaling the prediction type for the current block.
[0249] The signaling of each prediction type may include the aforementioned additional information, such as slice type or information regarding whether or not partitioning is possible. In this case, the prediction type may be distinguished based on the additional information. For example, for an I slice, if the prediction type has a value of 0, it indicates a 2N×2N intra mode, and for a B or P slice, if the prediction type has a value of 0, it indicates a 2N×2N inter mode.
[0250] Also, prediction types can be distinguished by assigning different codewords to prediction types having different prediction modes / partitions.
[0251] As described above, the signaling scheme for the prediction mode in the inter slice can be modified to improve transmission efficiency. For example, the prediction mode and partition type for the inter slice can be jointly coded using a unary-type codeword. In this case, as described above, information related to prediction, such as the prediction mode and partition (size), can be referred to as the prediction type. The prediction type can further include information on whether partitioning is possible and the slice type in addition to the prediction mode and partition (size).
[0252] It is also possible to rearrange the codewords indicating the prediction types according to the portion, i.e., frequency of occurrence (selection frequency), of each prediction mode.
[0253] The prediction mode and the partition type (partition size) may be transmitted using a predetermined syntax element. For example, as described above, whether or not the skip mode is applied may be signaled using a skip flag (skip_flag). Also, whether or not the merge mode is applied may be signaled using a merge flag (merge_flag), whether or not the direct mode is applied may be signaled using a direct mode flag (direct_flag), and whether or not a combined mode of the direct mode and the merge mode is applied may be signaled using a combined mode flag (merge_direct_flag).
[0254] Meanwhile, if a prediction mode signaled by a specific flag or the like is not applied to the current block, the prediction mode and partition size of the current block can be signaled separately.
[0255] Table 33 shows a schematic example of signaling prediction mode and partition type (partition size) at the coding unit level (coding unit parameter set).
[0256] [Table 33]
[0257] In the example of Table 33, prediction mode, partition information, etc. may be jointly coded and signaled by transmitting corresponding codewords. In this case, as in the example of Table 33, prediction mode and partition type (size) may be signaled using separate syntax elements. In Table 33, prediction mode may be indicated by pred_mode, and partition size of inter mode may be indicated by inter_partitioning_idc.
[0258] Meanwhile, as described above, signaling including prediction mode and partition information may be referred to as pred_mode_partition_signaling, and just as information including prediction mode and partition mode is referred to as prediction type, the signaled syntax element may be simply referred to as pred_type. In the case of pred_mode_partition_signaling or pred_type, related information (prediction mode, partition size, etc.) can be identified and signaled by one codeword through joint coding.
[0259] Table 34 shows an example of the codewords mentioned above.
[0260] [Table 34]
[0261] When the signaling order shown in Figure 3 is used as a signaling method for each prediction mode, whether or not the skip mode, merge mode, and direct mode are applicable is signaled in that order, as described above, and if these prediction modes are not applicable, which of the remaining prediction types is to be applied is signaled using joint coding, as described above with reference to Figure 3.
[0262] Meanwhile, considering Table 34, the codewords for each prediction mode have different lengths, and according to source coding theory, the length of each codeword is approximately proportional to the absolute value of the logarithm of the occurrence probability. Therefore, in order to improve coding efficiency, it is recommended that the most frequent symbol uses the shortest codeword.
[0263] Therefore, by rearranging the codewords in Table 34 in consideration of the frequency of occurrence according to the prediction type, it is possible to improve the coding efficiency without complicating the coding / decoding.
[0264] An example of measuring the occurrence probability for each prediction type (prediction mode) is shown in Figure 4. As described above, for the example of Figure 4, the 2Nx2N inter mode has a larger portion than the direct mode with respect to the occurrence frequency of all prediction types, and the Nx2N inter mode has a larger portion than the 2NxN inter mode. Therefore, depending on the occurrence frequency, i.e., portion, the codeword for the 2Nx2N inter mode and the codeword for the direct mode can be switched with each other, and the codeword for the Nx2N inter mode and the codeword for the 2NxN inter mode can be switched with each other.
[0265] Table 35 rearranges the codewords detailed in Table 34 for each prediction type.
[0266] [Table 35]
[0267] In Tables 34 and 35, prediction types that are signaled separately are assigned a codeword of 0 to distinguish them preferentially. Then, codewords are assigned again to the remaining prediction types to indicate which prediction types are applied at once. The details described in this regard are not significantly different from those described in Figures 5 to 8.
[0268] As described above, the example of Figure 3 is an example in which the merge mode is applied in units of coding units. An example in which the merge mode is applied in units of prediction units is shown in Figure 9. In the example of Figure 9, as described above, whether or not the merge mode is applicable can be signaled for each partition of the inter mode.
[0269] 10 shows the portion (occurrence frequency) of each prediction type when the merge mode is applied in units of prediction units. As described above, even when the merge mode is applied in units of prediction units, the signaling order for each prediction type can be adjusted or codewords can be assigned in consideration of the occurrence frequency, as described above with reference to FIGS. 11 to 13.
[0270] Meanwhile, Figure 14 is a diagram illustrating an example of a decoding process. Referring to Figure 14, predicted data undergoes a prediction mode decoding process and a motion compensation (MC) predictor generation process. Coefficient data undergoes a coefficient data decoding process and a residual data generation process. Then, a decoded image is finally generated.
[0271] Fig. 15 is a diagram illustrating the prediction mode decoding process shown in Fig. 14. Fig. 15 illustrates an example in which {(merge) skip mode, merge mode} is applied as a prediction mode in which motion information of a neighboring block is used as motion information of a current block.
[0272] In relation to prediction in inter slices, mode information signaled includes information on whether splitting is possible, information on whether skip mode is applicable, information on whether merge mode is applicable, information on which of inter mode / intra mode prediction types is applied, etc. Information on which of inter mode / intra mode prediction types is applied can be divided into four types (2N×2N, N×N, 2N×N, N×2N) according to the partition size in the case of inter mode, and can be divided into two types (2N×2N, N×N) according to the partition size in the case of intra mode. Of course, in the case of inter mode, there can be further partition sizes of 2N×nU, 2N×nD, nL×2N, and nR×2N, as described above.
[0273] In the prediction mode decoding process, the decoder splits the coding unit according to the split flag (split_flag) and then applies skip mode according to the skip flag. If skip mode is not applied, the decoder determines the prediction type to be applied to the current block based on information indicating the prediction type (e.g., mode_and_partition). If inter prediction mode is applied, the decoder can determine whether to apply merge mode on a prediction unit basis based on the merge flag. In addition, the NxN partition size can be present only when the size of the current coding unit is minimum, regardless of whether it is inter mode or intra mode.
[0274] In this case, to improve compression efficiency, all prediction types including prediction mode and partition information can be signaled using joint coding.
[0275] 16 is a diagram for explaining an example of a method for signaling prediction mode, partition information, etc., by joint coding. Referring to FIG. 16, Table 36 is an example of a joint coding table according to the example of FIG. 16, and shows initial codewords assigned during joint coding.
[0276] [Table 36]
[0277] By initializing the table of Table 36 and switching (or adapting) the mode (prediction type) selected to be applied to the corresponding block for each signaling to the mode immediately above it in Table 36, if the selection ratio for a particular mode (prediction type) increases, shorter codewords can be assigned to the mode with an increased selection ratio in response to this. By assigning shorter codewords to frequently selected modes, compression efficiency can be improved.
[0278] This adaptation can be performed independently for each block depth, i.e., adaptation can be performed independently depending on the size of the coding unit.
[0279] In this case, the compression effect can be further improved by changing the scope of joint coding. As described above, the targets of joint coding include whether splitting is possible, whether skip mode is applicable, whether 2Nx2N merge mode is applicable, whether 2Nx2N inter mode is applicable, whether 2NxN inter mode is applicable, whether Nx2N inter mode is applicable, whether NxN inter mode is applicable, whether 2Nx2N intra mode is applicable, whether NxN intra mode is applicable, etc. In addition, whether 2NxN merge mode is applicable, whether Nx2N merge mode is applicable, whether NxN merge mode is applicable, etc. can also be targets of joint coding.
[0280] The signaling method of Figure 16 improves compression efficiency by codeword adaptation (or switching) after joint coding. However, when joint coding is not performed, codewords are switched during the adaptation process for elements that are signaled with only a fixed small amount of information, which can result in the need to transmit more information. For example, when joint coding is not performed, information on whether or not splitting is possible (split_flag) can be processed with 1-bit information because it is signaled in the first step, and even when joint coding is performed, the initial value can use the smallest amount of information (shortest codeword) as shown in Table 36. However, when skip mode or 2Nx2N merge mode are selected repeatedly during the coding process, the position of the information indicating whether or not splitting is possible (for convenience of explanation, referred to as information indicating split mode) is moved later to a position where a longer codeword is assigned. Therefore, when the split mode is selected subsequently, bits may be wasted.
[0281] 17 is a diagram illustrating an example in which a codeword assigned to a split mode becomes long, resulting in bit waste. Referring to FIG. 17, initially, a codeword of 1 is assigned to the split mode, but when a skip mode is selected, the position of the skip mode and the position of the split mode are switched. Also, when a 2Nx2N merge mode is selected, the position of the split mode is switched with the position of the 2Nx2N merge mode. At this time, when the split mode is selected for the current block, the codeword assigned to the position of the split mode is '001', so a split flag (split_flag) indicating whether the split mode is applied is signaled with a size of 3 bits.
[0282] Therefore, it is possible to consider a method for improving compression efficiency by modifying the range of modes to which joint coding is applied.
[0283] Change the scope of joint coding
[0284] As various methods for changing the scope of joint coding, the following methods can be considered.
[0285] (1) Whether or not division is possible can be signaled using a flag, and joint coding can be used for the remaining modes as described above.
[0286] (2) Whether or not division is possible can be signaled using a flag, and for the remaining modes, information or modes can be added so that joint coding can be applied.
[0287] (3) Joint coding can be applied to the split mode and the skip mode, and joint coding can be applied to the remaining modes separately from the split mode and the skip mode.
[0288] (4) Joint coding may be applied to the partition mode, skip mode, and merge mode, and joint coding may be applied to the remaining modes separately from the partition mode, skip mode, and merge mode. In this case, the merge mode to be jointly coded may be a merge flag (merge_flag) or a specific mode such as a 2N×2N merge mode. In addition, if the merge flag is subject to joint coding, when an inter mode is selected thereafter, the merge flag is used to determine whether the merge mode is applicable, and when an intra mode is selected, the merge flag may be used to estimate a Most Probable Mode (MPM) flag (mpm_flag) and determine whether the mpm value is applicable.
[0289] Meanwhile, the change in the range of joint coding can also be adaptively applied. For example, the above-mentioned method of changing the target range and applying joint coding can be adaptively applied to units such as depth, block, slice, frame, or GOP (Group of Pictures). As an example of a method of adaptively applying the change in the range of joint coding, the following method can be considered.
[0290] (1) Additional information can be signaled for each application unit of joint coding.
[0291] (2) Peripheral information can be used to determine whether or not a feature is applicable.
[0292] (3) Whether to apply is determined based on statistical values. For example, information on a previous slice / frame may be applied to the current slice / frame. Also, cumulative statistical information on multiple previous slices / frames may be applied to the current slice / frame. Some or all of the cumulative statistical information of blocks decoded before the current block in the same slice / frame may be applied to the current slice / frame.
[0293] (4) Different joint coding ranges can be applied to the case where the coding unit size is minimum (CU size=minimum) and other cases.
[0294] In addition, a codeword can be changed for each joint coding. For example, a codeword for a specific joint coding target can be adaptively changed for each unit such as depth / block / slice / frame / GOP, etc. In addition, to adaptively apply a codeword, additional information can be signaled for each application unit, or application can be determined using peripheral information, or application can be determined based on statistical values.
[0295] In this case, as a method for determining whether or not to apply based on statistical values, as described above, methods can be used such as applying information from the previous slice / frame to the current slice / frame, applying cumulative statistical information for multiple previous slices / frames to the current slice / frame, or applying cumulative statistical information of some or all of the blocks decoded before the current block in the same slice / frame to the current slice / frame.
[0296] Also, when changing codewords for each joint coding, different adaptations can be applied when the coding unit size is minimum and when it is not.
[0297] Initialization of adaptation for joint coding targets
[0298] As an alternative to the above-described method of changing the range of joint coding, a method of stopping and initializing (resetting) adaptation for a specific unit while joint coding and adaptation to the target are in progress can be considered.
[0299] In this case, any one of the joint coding elements may be the target of initialization, all of the joint coding elements may be the target of initialization, or only some of the joint coding elements may be the target of initialization.
[0300] The unit of initialization may be a coding unit or a largest coding unit (LCU), or may be a slice, a frame, a GOP, or the like.
[0301] As an example of adaptation initialization, a case can be considered in which the joint coding element to be initialized is set to split mode and the unit of initialization is set to the maximum coding unit.
[0302] In this case, the largest coding unit (LCU) is the maximum size of the coding units, and the depth of the largest coding unit can be set to 0. The depth increases every time the largest coding unit is divided into four equal parts, and the largest coding unit can be divided into a plurality of sub-coding units (sub-CUs) recursively within the largest coding unit, that is, the sub-coding unit can be divided into a plurality of sub-coding units again, up to a predetermined depth.
[0303] 18 is a diagram illustrating an example of adaptation initialization in which the partition mode is the initialization target and the maximum coding unit is the initialization unit in a system to which the present invention is applied. Referring to FIG. 18, adaptation continues in the initial state. For example, if skip mode is selected for a first current block, the partition mode may be switched to skip mode. Then, if 2N×2N merge mode is selected for a next current block, the partition mode may be switched back to 2N×2N merge mode. Also, if 2N×2N inter mode is selected for a next current block, the partition mode is switched to 2N×2N inter mode. In this way, if the boundary of the maximum coding unit is crossed while moving the block for which the prediction mode is selected, the partition mode is initialized. Therefore, the position of the partition mode is moved to the position corresponding to the codeword '1', which is the initial position, and the positions of the other modes are adjusted downward one by one.
[0304] Change adaptation method
[0305] Currently, codeword adaptation is performed for each prediction mode signaling according to the raster scan order, which can be modified to improve compression efficiency.
[0306] Figure 19 is a diagram for explaining a codeword adaptation method. Figure 19(a) shows a schematic diagram of a method for adapting codewords in raster scan order, as in the current method. In the example of Figure 19(a), the results of adaptation are accumulated and affect the encoding of the next block.
[0307] However, in some cases, the coding performance of the current block can be further improved by referring to the trends of neighboring blocks rather than the accumulated trends. In a system to which the present invention is applied, as shown in Figure 19(b), when coding block D, the trends of neighboring blocks A and C can be referred to rather than the accumulated trends up to block C. This is because block D is highly likely to have similar characteristics to neighboring blocks A and C.
[0308] Therefore, the adaptation method can be modified as follows:
[0309] (1) The results of adaptation can be accumulated, and the possibility of adaptation and the method of adaptation can be determined by referring to the surrounding blocks.
[0310] (2) It is possible to determine whether or not to perform adaptation and the method of adaptation without accumulating the results of adaptation.
[0311] (3) Adaptation can be performed using different criteria depending on the mode. For example, adaptation can be performed by accumulating results for the division mode, and adaptation can be performed by referring to neighboring blocks for other modes.
[0312] (4) Adaptation can be performed based on the size and mode identity of the neighboring blocks and the current block. In this case, the degree of adaptation can be changed depending on the number of neighboring blocks with the same mode type.
[0313] 20 is a diagram for explaining in outline an example of neighboring reference blocks for adaptation in a system to which the present invention is applied. The neighboring blocks to be referenced for adaptation can be set as in the example of FIG.
[0314] For example, as shown in Fig. 7(a), neighboring blocks may be selectively referenced in units of Largest Coding Units (LCUs). Alternatively, as shown in Fig. 7(b), neighboring blocks may be selectively referenced in units of Coding Units (CUs). In this case, the neighboring blocks may include not only spatial neighboring blocks (A, B, C, D, etc.) but also temporal neighboring blocks (Col LCU, Col CU).
[0315] Furthermore, the coding unit can be configured to refer to neighboring partitions in partition units that are further divided.
[0316] A largest coding unit (LCU) or a coding unit (CU) can include multiple partitions of different types. Therefore, when referring to neighboring blocks, it is possible to refer to only those having the same coding unit size or partition type, or to refer to neighboring blocks regardless of whether they have the same coding unit size or partition type.
[0317] In addition, when referring to neighboring blocks, priority and weighting can be set according to the position of the reference block. For example, in the case of Figure 20, the currently largest coding unit or the current coding unit can refer to neighboring blocks in a manner that first references block A, and then references block B if block A is not available.
[0318] FIG. 21 is a diagram for explaining in outline an embodiment of a method for changing adaptation in a system to which the present invention is applied.
[0319] 21(a) is a diagram illustrating an example of applying adaptation in units of largest coding units. Accordingly, in the example of FIG. 21(a), initial codewords can be adapted for prediction partitions belonging to largest coding units A and B. The adapted codeword mapping table (joint coding table) can then be used to encode each prediction partition belonging to the current largest coding unit (LCU).
[0320] 21(b) is also a diagram illustrating an example of applying adaptation in maximum coding unit units. In the example of FIG. 21(b), initial codewords are adapted for each prediction partition belonging to maximum coding units A and B, and adaptation is performed independently according to the coding unit size. Therefore, multiple codeword mapping tables are used according to the coding unit size.
[0321] In the example of Figure 21(b), adapted codewords are used to encode each prediction partition belonging to the currently largest coding unit, and when performing adaptation, multiple codeword mapping tables independently generated according to the coding unit size are used. Therefore, when encoding coding units belonging to the currently largest coding unit using codeword mapping tables, codeword mapping tables determined according to the coding unit size can be used. For example, in the example of Figure 21(b), a codeword mapping table adapted in a c region having the same size can be used for the a region, and a codeword mapping table adapted in a d region having the same size can be used for the b region.
[0322] Although the signaling method has been described above with a focus on the inter prediction mode, as can be seen from the joint coding table, when prediction is performed, signaling is also performed for the intra mode.
[0323] 22 is a diagram illustrating an example of an intra prediction method for a current block. Referring to FIG. 22, for intra prediction of a current block 2210, the intra modes of a left block 2220 and an upper block 2230 can be checked. In this case, the most probable mode (MPM) of the current block can be determined as the smaller mode of the mode of the left block 2220 and the mode of the right block 2230 (MPM=min(upper intra mode, left intra mode)).
[0324] Next, the encoder may signal a flag indicating whether the intra mode of the current block is MPM. If the flag is set, the intra mode of the current block is MPM. If the intra mode of the current block is not MPM, the encoder may signal Mode B information indicating the intra mode of the current block.
[0325] In the case of Mode B < MPM, Mode B is directly used as the intra-mode for the current block. When Mode B ≥ MPM, Mode B + 1 is used as the intra-mode for the current block. The reason is that when the intra-mode of the current block is MPM, it has already been signaled previously, so it does not need to be considered in this case.
[0326] Also, when there are non-valid candidates included among the MPM candidates, the MPM can be inferred as the DC prediction mode. However, in this case, instead of simply inferring the MPM as the DC prediction mode, a method of determining the MPM can be considered so as to improve the compression efficiency.
[0327] Determining an MPM when some of the MPM candidates are valid
[0328] As described above, conventionally, when there are non-valid candidates included among the MPM candidates (e.g., the upper block, the left block, etc.), the MPM is determined as the DC mode. However, in some cases, if some of the MPM candidates are valid, the intra-prediction mode of the valid candidates can be used as the MPM of the current block.
[0329] FIG. 23 is a diagram schematically explaining an example of a method for determining the MPM when some of the MPM candidates are valid in the system to which the present invention is applied. In the example of FIG. 23, the case where the current block is located at the boundary of frame 2310 is described.
[0330] In the example of FIG. 23, assuming that the current block is A2320, the upper block 2330 of the current block 2320 is not valid, but the left block 2340 is valid. Therefore, the MPM of the current block 2320 can be set to the mode of the left block 2340.
[0331] 23, assuming the current block is B 2350, the block 2370 to the left of the current block 2350 is not valid, but the block 2360 above is valid. Therefore, the MPM of the current block 2350 can be set to the mode of the block 2360 above.
[0332] Change in MPM determination method
[0333] As mentioned above, the current MPM is determined as min (intra mode of the left block, intra mode of the top block). However, although setting the minimum mode among the candidates as the MPM is effective in terms of signaling overhead, it is difficult to accurately reflect the intra prediction mode of the current block.
[0334] Therefore, a method of setting the MPM of the current block to the average of the intra mode of the upper block and the intra mode of the left block can be considered. Because the MPM must be derived as an integer value and correspond to the intra prediction mode, if the average of the intra mode of the upper block and the intra mode of the left block is not an integer, rounding can be applied to round up or down the decimal point.
[0335] For example, if the intra mode of the top block is 4 and the intra mode of the left block is 8, the MPM of the current block is mode 6, which is (4+8) / 2.
[0336] Also, assuming the intra mode of the top block is 3 and the intra mode of the left block is 6, the MPM of the current block is (3 + 6) / 2, which is 4.5, and the MPM of the current block can be rounded up to mode 5 by rounding, or rounded down to mode 4 by rounding.
[0337] This change in the MPM determination method can be adaptively applied in units of blocks, slices, or frames.
[0338] Expanding MPM candidates
[0339] As described above, the intra prediction mode of the upper block and the intra prediction mode of the left block are currently used as MPM candidates. However, by further expanding the MPM candidates, prediction accuracy can be improved.
[0340] 24 is a diagram illustrating the extension of MPM candidates in a system to which the present invention is applied. Referring to FIG. 24, the MPM code for a current block 2400 can be extended to the intra prediction mode of the upper left block (left-above), the intra prediction mode of the upper right block (right-above), the intra prediction mode of the lower left block (left-below), the intra prediction mode of the upper block (above), the intra prediction mode of the left block (left), and the intra prediction mode of the temporally surrounding block (col).
[0341] Here, the temporally peripheral blocks refer to blocks that are located at the same position as the current block in a frame or slice that is coded temporally earlier than the current frame or slice.
[0342] This MPM candidate block expansion can be adaptively applied on a block, slice, or frame basis.
[0343] Expanding MPM candidates and changing the MPM determination method
[0344] As described above, when the number of MPM candidates is expanded, the method of determining the MPM can also be expanded in various ways. For example, the MPM can be determined by using at least one of the following methods:
[0345] (1) MPM=min(MPM candidate). According to this method, the minimum mode among the MPM candidates can be selected as the MPM of the current block.
[0346] (2) MPM = average (MPM candidate). According to this method, the average of the MPM candidates can be selected as the MPM of the current block. In this case, if the average of the MPM candidates is not an integer, rounding can be applied as described above.
[0347] (3) MPM=median(MPM candidate). According to the present invention, the median of the MPM candidates can be selected as the MPM of the current block.
[0348] (4) MPM = Mode (MPM Candidate) According to the present invention, the most frequently selected or generated candidate among the MPM candidates can be selected as the MPM of the current block.
[0349] Changing the MPM determination method based on the expanded MPM candidates in this way can be applied adaptively on a block, slice, or frame basis.
[0350] FIG. 25 is a flow chart that outlines the operation of an encoder in a system to which the present invention is applied.
[0351] 25, the encoder performs prediction on a current block (S2510). The encoder may apply intra prediction or inter prediction to the current block. The prediction may be performed taking into account the partition size, slice type, etc. of the current block.
[0352] Next, the encoder entropy-encodes the prediction result of the current block (S2520). As described above, the entropy encoding may use methods such as CABAC and CAVLC, and may assign codewords in consideration of the frequency of occurrence of each prediction mode or prediction type.
[0353] The encoder signals the entropy-encoded information (S2520). As a method for signaling information about a prediction mode, whether or not a specific prediction mode / prediction type is applicable may be signaled using separate information, for example, a flag, or elements included in a prediction type may be jointly coded at once to signal which prediction mode is applicable among various prediction modes.
[0354] The method of allocating codewords in consideration of the frequency of occurrence of prediction types / prediction modes and the method of signaling information related to prediction have been described above.
[0355] FIG. 26 is a diagram for explaining the operation of a decoder in a system to which the present invention is applied.
[0356] 26, the decoder receives information from the encoder (S2610). The information received from the encoder may be transmitted in a bitstream and includes information related to prediction of the current block.
[0357] Next, the decoder may extract necessary information by performing entropy decoding (S2620). The decoder may determine which prediction type / prediction mode is applied to the current block based on the extracted codeword. The extracted codeword may be assigned taking into account the frequency of occurrence of the prediction type / prediction mode, as described above. The signaling order of the transmitted information may also be determined taking into account the frequency of occurrence of the prediction mode / prediction type. In addition, the information on the prediction mode / prediction type may be obtained by jointly coding each element constituting the information on the prediction mode / prediction type to assign a codeword, and transmitting the codeword corresponding to the prediction mode / prediction type applied to the current block. Specific details are as described above.
[0358] The decoder performs prediction on the current block (S2630) according to the prediction mode / prediction type determined to be applied to the current block in the previous step.
[0359] The decoder restores the image of the current block based on the predicted result (S2640).
[0360] In the exemplary system described above, 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. Also, the above-described embodiments include examples of various aspects. Accordingly, the present invention includes all alterations, modifications, and variations that fall within the scope of the claims.
[0361] In the above description of the present invention, 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 between the two components. On the other hand, when a component is said to be "directly coupled" or "directly connected" to another component, it should be understood that there are no other components between the two components.
Claims
1. A picture encoding method for an encoding device, comprising: generating a skip flag to indicate whether a skip mode is applied to the current coding unit; generating prediction mode and partition type information based on the skip flag indicating that the skip mode is not applied to the current coding unit, The prediction mode indicates whether inter prediction is applied to the current coding unit; the partition type indicates a partition type for the current coding unit; a prediction unit is derived from the current coding unit based on the partition type; generating a merge flag to indicate whether a merge mode is applied to the prediction unit based on the skip flag indicating that the skip mode is not applied to the current coding unit and the prediction mode indicating that the inter prediction is applied to the current coding unit; performing inter prediction on the prediction unit based on the merge flag indicating whether a merge mode is applied to the prediction unit; encoding picture information including the skip flag, the prediction mode and partition type information, and the merge flag; the prediction mode and partition type information are signaled between the signaling of the skip flag and the signaling of the merge flag; the skip flag is signaled before the signaling of the merge flag; a split flag is signaled relating to whether the coding unit is split into multiple coding units; the current coding unit is derived based on the split flag before signaling the skip flag; With respect to the inter prediction, the partition type includes a binary code for the partition type used for the inter prediction of the current coding unit; With respect to the inter prediction, the partition type indicates one of partition types including a 2Nx2N partition type, a 2NxN partition type, and an Nx2N partition type; The binary code for the 2Nx2N partition type is '1', the binary code for the 2NxN partition type is '01', and the binary code for the Nx2N partition type is '001', The skip flag and the prediction mode and partition type information are signaled at a coding unit (CU) level; The method, wherein the merge flag is signaled to a prediction unit (PU) level.
2. A method for transmitting data relating to video, comprising: obtaining a bitstream relating to the video, the bitstream comprising: generating a skip flag to indicate whether a skip mode is applied to the current coding unit; generating prediction mode and partition type information based on the skip flag indicating that the skip mode is not applied to the current coding unit, The prediction mode indicates whether inter prediction is applied to the current coding unit; the partition type indicates a partition type for the current coding unit; a prediction unit is derived from the current coding unit based on the partition type; generating a merge flag to indicate whether a merge mode is applied to the prediction unit based on the skip flag indicating that the skip mode is not applied to the current coding unit and the prediction mode indicating that the inter prediction is applied to the current coding unit; performing inter prediction on the prediction unit based on the merge flag indicating whether a merge mode is applied to the prediction unit; encoding picture information including the skip flag, the prediction mode and partition type information, and the merge flag; transmitting the data including the bitstream; the prediction mode and partition type information are signaled between the signaling of the skip flag and the signaling of the merge flag; the skip flag is signaled before signaling the merge flag; a split flag is signaled relating to whether the coding unit is split into multiple coding units; the current coding unit is derived based on the split flag before signaling the skip flag; With respect to the inter prediction, the partition type includes a binary code for the partition type used for the inter prediction of the current coding unit; With respect to the inter prediction, the partition type indicates one of partition types including a 2Nx2N partition type, a 2NxN partition type, and an Nx2N partition type; The binary code for the 2Nx2N partition type is '1', the binary code for the 2NxN partition type is '01', and the binary code for the Nx2N partition type is '001', The skip flag and the prediction mode and partition type information are signaled at a coding unit (CU) level; The method, wherein the merge flag is signaled to a prediction unit (PU) level.
Citation Information
Patent Citations
Motion compensation method, image decoding method, image encoding method, motion compensation device, program, and integrated circuit
WO2011129067A1
Method and apparatus for encoding video by using block merging, and method and apparatus for decoding video by using block merging
WO2012005520A2
Coding prediction modes in video coding
WO2012044935A1