Decoding device, encoding device, and transmitting device

By employing QT, BT, TT structures and CABAC combined with a context model in image coding, the high-cost transmission and storage problems of high-resolution images are solved, improving coding efficiency and hardware performance.

CN116527901BActive Publication Date: 2026-02-06LG ELECTRONICS INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310652165.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-07-02
Filing Date
2019-06-14
Publication Date
2026-02-06
Estimated Expiration
2039-06-14

AI Technical Summary

Technical Problem

High-resolution and high-quality image data transmission and storage are costly, and existing technologies struggle to effectively compress and encode them.

Method used

We employ quadtree (QT), binary tree (BT), and ternary tree (TT) structures, combined with a context model, and use adaptive binary arithmetic coding (CABAC) for image encoding and decoding. We improve encoding efficiency by deriving the context index of segmentation marker syntax elements.

Benefits of technology

It improves image compression efficiency, enhances image coding efficiency, reduces pipeline latency for intra-frame prediction in hardware, and achieves more efficient entropy coding and decoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116527901B_ABST
    Figure CN116527901B_ABST
Patent Text Reader

Abstract

Decoding device, encoding device, and transmitting device. A picture decoding method performed by a decoding device according to an embodiment of the present disclosure includes the following steps: deriving a context index of a split flag syntax element based on split availability information of a current block; determining a context model based on the derived context index; decoding a value of the split flag syntax element based on CABAC using the determined context model; deriving a current coding unit from the current block based on the value of the split flag syntax element; deriving a prediction block based on inter prediction or intra prediction for the current coding unit; and generating a reconstructed block based on the prediction block.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the original application No. 201980047279.X (International Application No. PCT / KR2019 / 007213, filed on June 14, 2019, entitled "Method and apparatus for CABAC-based entropy coding") for an invention patent. TECHNICAL FIELD

[0002] The disclosure relates to a still image or video image encoding / decoding method, and more particularly, to a method and apparatus of partitioning a region into a quad-tree (QT) structure and using a context model when CABAC entropy coding is performed based on a binary tree (BT) and a ternary tree (TT) structure. BACKGROUND

[0003] The demand for high-resolution and high-quality images such as high definition (HD) images and ultra-high definition (UHD) images is increasing in various fields. Because the image data has high resolution and high quality, the amount of information or bits to be transmitted increases relative to conventional image data. Therefore, when transmitting image data using a medium such as a conventional wired / wireless broadband line or storing image data using an existing storage medium, the transmission cost and storage cost thereof increase.

[0004] Therefore, there is a need for an efficient image compression technology for efficiently transmitting, storing, and reproducing information of high-resolution and high-quality images. SUMMARY

[0005] TECHNICAL PROBLEM

[0006] An object of the disclosure is to provide a method and apparatus for enhancing image encoding efficiency.

[0007] Another object of the disclosure is to provide a method and apparatus for enhancing image efficiency based on CABAC.

[0008] Still another object of the disclosure is to provide a method and apparatus for determining a block structure and block partitioning based on a quad-tree (QT) structure, a binary tree (BT) structure, and a ternary tree (TT) structure in processing of compressing an image.

[0009] Still another object of the disclosure is to provide a method and apparatus for more efficiently encoding and decoding an image using a context model when entropy coding is performed according to CABAC based on a QT structure, a BT structure, and a TT structure.

[0010] TECHNICAL SOLUTION

[0011] An exemplary embodiment of the present disclosure provides a picture decoding method performed by a decoding device. The method comprises the steps of: deriving a context index of a split flag syntax element based on split availability information of a current block; determining a context model based on the derived context index; decoding a value of the split flag syntax element based on context-based adaptive binary arithmetic coding (CABAC) by using the determined context model; deriving a current coding unit from the current block based on the value of the split flag syntax element; deriving a prediction block based on inter prediction or intra prediction for the current coding unit; and generating a reconstructed block based on the prediction block, wherein the split flag syntax element comprises a directional split flag indicating whether the current block is to be split vertically, the split availability information comprises BT horizontal split available flag information indicating whether the current block can be split horizontally based on a binary tree (BT) structure, TT horizontal split available flag information indicating whether the current block can be split horizontally based on a ternary tree (TT) structure, BT vertical split available flag information indicating whether the current block can be split vertically based on the BT structure, and TT vertical split available flag information indicating whether the current block can be split vertically based on the TT structure, and the context index of the directional split flag is derived based on the BT horizontal split available flag information, the TT horizontal split available flag information, the BT vertical split available flag information, and the TT vertical split available flag information.

[0012] Another exemplary embodiment of the present disclosure provides a decoding device for performing picture decoding. The decoding device includes an entropy decoder configured to derive a context index of a split flag syntax element based on split availability information of a current block, determine a context model based on the derived context index, decode a value of the split flag syntax element based on CABAC using the determined context model, and derive a current coding unit from the current block based on the value of the split flag syntax element; a predictor configured to derive a prediction block based on inter prediction or intra prediction for the current coding unit; and an adder configured to generate a reconstructed block based on the prediction block, wherein the split flag syntax element includes a directional split flag indicating whether the current block is vertically split, the split availability information includes BT horizontal split available flag information indicating whether the current block can be horizontally split based on a BT structure, TT horizontal split available flag information indicating whether the current block can be horizontally split based on a TT structure, BT vertical split available flag information indicating whether the current block can be vertically split based on the BT structure, and TT vertical split available flag information indicating whether the current block can be vertically split based on the TT structure, and the context index of the directional split flag is derived based on the BT horizontal split available flag information, the TT horizontal split available flag information, the BT vertical split available flag information, and the TT vertical split available flag information.

[0013] Yet another exemplary embodiment of the present disclosure provides a picture coding method performed by an encoding device. The method includes deriving a split flag syntax element representing a split structure of a current block, deriving a context index of the split flag syntax element based on split availability information of the current block, determining a context model based on the derived context index, and encoding a value of the split flag syntax element based on CABAC by using the determined context model, wherein the split flag syntax element includes a directional split flag representing whether to perform a vertical split on the current block, the split availability information includes BT horizontal split available flag information representing whether to perform a horizontal split on the current block based on a BT structure, TT horizontal split available flag information representing whether to perform a horizontal split on the current block based on a TT structure, BT vertical split available flag information representing whether to perform a vertical split on the current block based on the BT structure, and TT vertical split available flag information representing whether to perform a vertical split on the current block based on the TT structure, and the context index of the directional split flag is derived based on the BT horizontal split available flag information, the TT horizontal split available flag information, the BT vertical split available flag information, and the TT vertical split available flag information.

[0014] Still another exemplary embodiment of the present disclosure provides an encoding device performing picture coding. The encoding device includes an entropy encoder configured to derive a split flag syntax element representing a split structure of a current block, derive a context index of the split flag syntax element based on split availability information of the current block, determine a context model based on the derived context index, and encode a value of the split flag syntax element based on CABAC by using the determined context model, wherein the split flag syntax element includes a directional split flag representing whether to perform a vertical split on the current block, the split availability information includes BT horizontal split available flag information representing whether to perform a horizontal split on the current block based on a BT structure, TT horizontal split available flag information representing whether to perform a horizontal split on the current block based on a TT structure, BT vertical split available flag information representing whether to perform a vertical split on the current block based on the BT structure, and TT vertical split available flag information representing whether to perform a vertical split on the current block based on the TT structure, and the context index of the directional split flag is derived based on the BT horizontal split available flag information, the TT horizontal split available flag information, the BT vertical split available flag information, and the TT vertical split available flag information.

[0015] Technical Effects

[0016] The present disclosure can enhance overall image / video compression efficiency.

[0017] The present disclosure can enhance the efficiency of image encoding based on intra prediction.

[0018] The present disclosure can improve the efficiency of CABAC-based image encoding.

[0019] The present disclosure can improve pipeline latency when implementing CCLM-based intra prediction in hardware.

[0020] The present disclosure can determine a block structure and block partitioning based on a quad tree (QT) structure, a binary tree (BT) structure, and a ternary tree (TT) structure in processing of compressing an image.

[0021] The present disclosure can more efficiently encode and decode an image using a context model when performing entropy encoding according to CABAC based on the QT structure, the BT structure, and the TT structure. BRIEF DESCRIPTION OF DRAWINGS

[0022] Figure 1 is a diagram for schematically illustrating a configuration of an encoding apparatus according to an exemplary embodiment.

[0023] Figure 2 is a diagram for schematically illustrating a configuration of a decoding apparatus according to an exemplary embodiment.

[0024] Figures 3a to 3c is a diagram illustrating examples of QT partitioning, BT partitioning, and TT partitioning.

[0025] Figure 4 is a block diagram illustrating a configuration of an entropy encoder according to an exemplary embodiment.

[0026] Figure 5 is a block diagram illustrating a configuration of an entropy decoder according to an exemplary embodiment.

[0027] Figure 6 is a flowchart illustrating an operation of an entropy encoder according to an exemplary embodiment.

[0028] Figure 7 is a flowchart illustrating an operation of an entropy decoder according to an exemplary embodiment.

[0029] Figure 8 is a flowchart illustrating an operation of an encoding apparatus according to an exemplary embodiment.

[0030] Figure 9 is a block diagram illustrating a configuration of an encoding apparatus according to an exemplary embodiment.

[0031] Figure 10is a flowchart illustrating an operation of a decoding device according to an exemplary embodiment.

[0032] Figure 11 is a block diagram illustrating a configuration of a decoding device according to an exemplary embodiment.

[0033] Figure 12 is a content streaming system structure diagram according to an exemplary embodiment. DETAILED DESCRIPTION

[0034] An exemplary embodiment of the present disclosure provides a picture decoding method performed by a decoding device. The method includes the steps of deriving a context index of a split flag syntax element based on split availability information of a current block, determining a context model based on the derived context index, decoding a value of the split flag syntax element based on context-based adaptive binary arithmetic coding (CABAC) using the determined context model, deriving a current coding unit from the current block based on the value of the split flag syntax element, deriving a prediction block based on inter prediction or intra prediction for the current coding unit, and generating a reconstructed block based on the prediction block, wherein the split flag syntax element includes a directional split flag indicating whether the current block is vertically split, the split availability information includes binary tree (BT) horizontal split availability flag information indicating whether the current block can be horizontally split based on a BT structure, ternary tree (TT) horizontal split availability flag information indicating whether the current block can be horizontally split based on a TT structure, BT vertical split availability flag information indicating whether the current block can be vertically split based on the BT structure, and TT vertical split availability flag information indicating whether the current block can be vertically split based on the TT structure, and the context index of the directional split flag is derived based on the BT horizontal split availability flag information, the TT horizontal split availability flag information, the BT vertical split availability flag information, and the TT vertical split availability flag information.

[0035] Since the present disclosure can be variously modified and can have various exemplary embodiments, specific exemplary embodiments will be illustrated in the drawings and described in detail. However, these embodiments are not intended to limit the present disclosure. The terms used in the following description are used to merely describe specific embodiments, and are not intended to limit the present disclosure. Singular expressions include plural expressions unless it is clearly different from the context. Terms such as "include" and "have" are intended to indicate that features, numbers, steps, operations, elements, components, or combinations thereof described in the following description exist, and it should be understood that the possibility of existence or addition of one or more different features, numbers, steps, operations, elements, components, or combinations thereof is not excluded.

[0036] Further, the elements in the drawings of the present disclosure described below are independently drawn for the purpose of conveniently illustrating different specific functions, and this does not mean that the elements are implemented by independent hardware or independent software. For example, two or more of the elements can be combined to form a single element, or one element can be divided into multiple elements. Embodiments in which elements are combined and / or divided are within the scope of the present disclosure without departing from the concept of the present disclosure.

[0037] The following description relates to video / image encoding. For example, the methods / exemplary embodiments disclosed in the present document can be applied to methods disclosed in the Versatile Video Coding (VVC) standard, the Essential Video Coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the second generation Audio Video Coding (AVS2) standard, or the next generation video / image encoding standard (e.g., H.267, H.268, etc.).

[0038] Hereinafter, examples of the present embodiment will be described in detail with reference to the accompanying drawings. In addition, throughout the drawings, like reference numerals are used to refer to like elements, and the same description will be omitted for like elements.

[0039] In the present disclosure, a video can mean a set of a series of images according to the passage of time. In general, a picture means a unit representing an image of a specific time, and a slice is a unit constituting a part of a picture. One picture can be constituted by a plurality of slices, and the terms picture and slice can be mixed with each other as occasion demands.

[0040] A pixel or pel can mean a minimum unit constituting one picture (or image). In addition, a "sample" can be used as a term corresponding to a pixel. A sample can generally represent a pixel or a value of a pixel, can represent only a pixel (pixel value) of a luminance component, and can represent only a pixel (pixel value) of a chrominance component.

[0041] A unit indicates a basic unit of image processing. A unit can include at least one of a specific region and information related to the region. Alternatively, a unit can be mixed with terms such as a block, a region, etc. In a typical case, an M×N block can represent a set of samples or transform coefficients arranged in M columns and N rows.

[0042] Figure 1 is a diagram briefly illustrating a structure of an encoding apparatus to which the present disclosure is applicable. Hereinafter, an encoding / decoding apparatus can include a video encoding / decoding apparatus and / or an image encoding / decoding apparatus, and the video encoding / decoding apparatus can be used as a concept including the image encoding / decoding apparatus, or the image encoding / decoding apparatus can be used as a concept including the video encoding / decoding apparatus.

[0043] Reference Figure 1, the video encoding device 100 can include a picture partitioner 105, a predictor 110, a residual processor 120, an entropy encoder 130, an adder 140, a filter 150, and a memory 160. The residual processor 120 can include a subtractor 121, a transformer 122, a quantizer 123, a rearranger 124, a dequantizer 125, an inverse transformer 126.

[0044] The picture partitioner 105 can separate an input picture into at least one processing unit.

[0045] In one example, the processing unit can be referred to as a coding unit (CU). In this case, the coding unit can be recursively separated from a largest coding unit (LCU) according to a quadtree binary tree (QTBT) structure. For example, one coding unit can be separated into multiple coding units of a deeper depth based on a quadtree structure, a binary tree structure, and / or a ternary tree structure. In this case, for example, the quadtree structure can be applied first, and the binary tree structure and the ternary tree structure can be applied later. Alternatively, the binary tree structure / ternary tree structure can be applied first. The encoding process according to the present embodiment can be performed based on a final coding unit that is no longer further separated. In this case, the largest coding unit can be used as the final coding unit based on coding efficiency or the like according to the characteristics of the image, or the coding unit can be recursively separated into a coding unit of a lower depth as necessary and a coding unit having an optimal size can be used as the final coding unit. Here, the encoding process can include a process such as prediction, transformation, and reconstruction, which will be described later.

[0046] In another example, the processing unit can include a coding unit (CU), a prediction unit (PU), or a transformer (TU). The coding unit can be separated from a largest coding unit (LCU) into coding units of a deeper depth according to a quad tree structure. In this case, the largest coding unit can be directly used as a final coding unit based on coding efficiency or the like according to image characteristics, or the coding unit can be recursively separated into coding units of a deeper depth as necessary, and a coding unit having an optimal size can be used as a final coding unit. When a smallest coding unit (SCU) is set, the coding unit can not be separated into a coding unit smaller than the smallest coding unit. Here, the final coding unit refers to a coding unit that is partitioned or separated into a prediction unit or a transformer. The prediction unit is a unit partitioned from the coding unit, and can be a unit for which a sample is predicted. Here, the prediction unit can be divided into sub-blocks. The transformer can be divided from the coding unit according to a quad tree structure, and can be a unit for which a transform coefficient is derived and / or a unit for which a residual signal is derived from the transform coefficient. Hereinafter, the coding unit can be referred to as a coding block (CB), the prediction unit can be referred to as a prediction block (PB), and the transformer can be referred to as a transform block (TB). The prediction block or the prediction unit can refer to a specific region in the form of a block in a picture, and include an array of predicted samples. In addition, the transform block or the transformer can refer to a specific region in the form of a block in a picture, and include an array of transform coefficients or residual samples.

[0047] The predictor 110 can perform prediction on a processing target block (hereinafter, it can represent a current block or a residual block), and can generate a prediction block including predicted samples for the current block. The unit on which prediction is performed in the predictor 110 can be a coding block, or can be a transform block, or can be a prediction block.

[0048] The predictor 110 can determine whether to apply intra prediction or to apply inter prediction for a current block. For example, the predictor 110 can determine whether to apply intra prediction or inter prediction in units of a CU.

[0049] In the case of intra prediction, the predictor 110 can derive prediction samples of the current block based on reference samples outside the current block in a picture to which the current block belongs (hereinafter, the current picture). In this case, the predictor 110 can derive the prediction samples based on an average or interpolation of neighboring reference samples of the current block (case (i)), or can derive the prediction samples based on reference samples existing in a certain (prediction) direction with respect to the prediction samples among the neighboring reference samples of the current block (case (ii)). Case (i) can be referred to as a non-directional mode or a non-angular mode, and case (ii) can be referred to as a directional mode or an angular mode. In intra prediction, the prediction mode can include, as an example, 33 directional modes and at least two non-directional modes. The non-directional modes can include a DC mode and a planar mode. The predictor 110 can determine the prediction mode to be applied to the current block by using a prediction mode applied to a neighboring block.

[0050] In the case of inter prediction, the predictor 110 can derive prediction samples for the current block based on samples on a reference picture specified by a motion vector. The predictor 110 can derive the prediction samples for the current block by applying any one of a skip mode, a merge mode, and a motion vector prediction (MVP) mode. In the case of the skip mode and the merge mode, the predictor 110 can use motion information of a neighboring block as motion information of the current block. In the case of the skip mode, unlike the merge mode, a difference (residual) between the prediction samples and original samples is not transmitted. In the case of the MVP mode, a motion vector of a neighboring block is used as a motion vector predictor to derive a motion vector of the current block.

[0051] In the case of inter prediction, the neighboring block can include a spatial neighboring block existing in the current picture and a temporal neighboring block existing in a reference picture. The reference picture including the temporal neighboring block can also be referred to as a collocated picture (colPic). The motion information can include a motion vector and a reference picture index. Information such as prediction mode information and motion information can be (entropy) coded and then output as a form of a bitstream.

[0052] When the motion information of the temporal neighboring block is used in the skip mode and the merge mode, a highest picture in a reference picture list can be used as a reference picture. The reference pictures included in the reference picture list can be aligned based on a picture order count (POC) difference between the current picture and a corresponding reference picture. The POC corresponds to a display order and can be distinguished from an encoding order.

[0053] The subtracter 121 generates residual samples that are a difference between the original samples and the prediction samples. If the skip mode is applied, the residual samples can not be generated as described above.

[0054] The transformer 122 transforms the residual samples in units of a transform block to generate transform coefficients. The transformer 122 can perform a transform based on a size of a corresponding transform block and a prediction mode applied to a prediction block or a coding block spatially overlapping the transform block. For example, if intra prediction is applied to the prediction block or the coding block overlapping the transform block and the transform block is a 4x4 residual array, a discrete sine transform (DST) transform kernel can be used to transform the residual samples, and in other cases, a discrete cosine transform (DCT) transform kernel is used to transform the residual samples.

[0055] The quantizer 123 can quantize the transform coefficients to generate quantized transform coefficients.

[0056] The rearranger 124 rearranges the quantized transform coefficients. The rearranger 124 can rearrange the quantized transform coefficients in a block form into a one-dimensional vector through a coefficient scanning method. Although the rearranger 124 is described as a separate component, the rearranger 124 can be a part of the quantizer 123.

[0057] The entropy encoder 130 can perform entropy encoding on the quantized transform coefficients. The entropy encoding can include an encoding method such as exponential Golomb, context adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), or the like. In addition to the quantized transform coefficients, the entropy encoder 130 can perform encoding on information (e.g., syntax element values, or the like) required for video reconstruction together or separately according to entropy encoding or according to a preconfigured method. The entropy encoded information can be transmitted or stored in a network abstraction layer (NAL) unit in the form of a bitstream. The bitstream can be transmitted via a network or stored in a digital storage medium. Here, the network can include a broadcast network or a communication network, and the digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SDD, or the like.

[0058] The inverse quantizer 125 inverse quantizes values (transform coefficients) quantized by the quantizer 123, and the inverse transformer 126 inverse transforms values inverse quantized by the inverse quantizer 125 to generate residual samples.

[0059] The adder 140 adds the residual samples to the prediction samples to reconstruct a picture. The residual samples can be added to the prediction samples in units of a block to generate a reconstructed block. Although the adder 140 is described as a separate component, the adder 140 can be a part of the predictor 110. In addition, the adder 140 can be referred to as a reconstructor or a reconstructed block generator.

[0060] The filter 150 can apply deblocking filtering and / or sample adaptive offset to the reconstructed picture. The artifacts at block boundaries or distortion at quantization in the reconstructed picture can be corrected by the deblocking filtering and / or the sample adaptive offset. After the deblocking filtering is completed, the sample adaptive offset can be applied in a sample unit. The filter 150 can apply an adaptive loop filter (ALF) to the reconstructed picture. The ALF can be applied to the reconstructed picture to which the deblocking filtering and / or the sample adaptive offset have been applied.

[0061] The memory 160 can store a reconstructed picture (decoded picture) or information required for encoding / decoding. Here, the reconstructed picture can be a reconstructed picture filtered by the filter 150. The stored reconstructed picture can be used as a reference picture for (inter) prediction of other pictures. For example, the memory 160 can store a (reference) picture for inter prediction. Here, the picture for inter prediction can be specified according to a reference picture set or a reference picture list.

[0062] Figure 2 FIG. 1 is a diagram briefly illustrating a structure of a video / image decoding apparatus to which the disclosure is applicable. Hereinafter, the video decoding apparatus can include an image decoding apparatus.

[0063] Reference Figure 2 The video decoding apparatus 200 can include an entropy decoder 210, a residue processor 220, a predictor 230, an adder 240, a filter 250, and a memory 260. The residue processor 220 can include a rearranger 221, an inverse quantizer 222, and an inverse transformer 223. In addition, although not depicted, the video decoding apparatus 200 can include a receiver for receiving a bitstream including video information. The receiver can be configured as a separate module or can be included in the entropy decoder 210.

[0064] When a bitstream including video / image information is input, the video decoding apparatus 200 can reconstruct video / image / picture in association with a process of processing video information in a video encoding apparatus.

[0065] For example, the video decoding apparatus 200 can perform video decoding using a processing unit applied in a video encoding apparatus. Accordingly, a processing unit block of video decoding can be, for example, a coding unit, and in another example, a coding unit, a prediction unit, or a transformer. The coding unit can be separated from a largest coding unit according to a quad tree structure and / or a binary tree structure and / or a ternary tree structure.

[0066] In some cases, a prediction unit and a transformer can be further used, and in this case, the prediction block is a block derived or split from the coding unit, and can be a unit of sample prediction. Here, the prediction unit can be divided into sub-blocks. The transformer can be separated from the coding unit according to a quad-tree structure, and can be a unit of deriving a transform coefficient or a unit of deriving a residual signal from the transform coefficient.

[0067] The entropy decoder 210 can parse a bitstream to output information required for video reconstruction or picture reconstruction. For example, the entropy decoder 210 can decode information in the bitstream based on an encoding method such as exponential Golomb coding, CAVLC, CABAC, or the like, and can output values of syntax elements required for video reconstruction and quantized values of transform coefficients on a residual.

[0068] More specifically, the CABAC entropy decoding method can receive bins corresponding to each syntax element in the bitstream, determine a context model using decoding target syntax element information and decoding information of a neighboring block and a decoding target block or information of a symbol / bin decoded in a previous step, predict a bin generation probability according to the determined context model, and perform arithmetic decoding of the bin to generate a symbol corresponding to each syntax element value. Here, the CABAC entropy decoding method can update the context model using information of a symbol / bin decoded for a next symbol / bin after determining the context model.

[0069] Information on prediction among the information decoded in the entropy decoder 210 can be provided to the predictor 230, and a residual value that has been entropy-decoded by the entropy decoder 210, that is, a quantized transform coefficient, can be input to the rearranger 221.

[0070] The rearranger 221 can rearrange the quantized transform coefficient into a two-dimensional block form. The rearranger 221 can perform rearrangement corresponding to coefficient scanning performed by the encoding device. Although the rearranger 221 is described as a separate component, the rearranger 221 can be a part of the inverse quantizer 222.

[0071] The inverse quantizer 222 can inverse quantize the quantized transform coefficient based on a (de)quantization parameter to output a transform coefficient. In this case, information for deriving the quantization parameter can be signaled from the encoding device.

[0072] The inverse transformer 223 can inverse transform the transform coefficient to derive a residual sample.

[0073] The predictor 230 can perform prediction on a current block, and can generate a prediction block including prediction samples for the current block. The unit of prediction performed in the predictor 230 can be a coding block, or can be a transform block or can be a prediction block.

[0074] The predictor 230 can determine whether to apply intra prediction or inter prediction based on the information about prediction. In this case, a unit for determining which one will be used between intra prediction and inter prediction can be different from a unit for generating a prediction sample. Also, a unit for generating a prediction sample can also be different between inter prediction and intra prediction. For example, it can be determined in CU units which one will be applied between inter prediction and intra prediction. Also, for example, in inter prediction, a prediction sample can be generated by determining a prediction mode in PU units, and in intra prediction, a prediction sample can be generated in TU units by determining a prediction mode in TU units.

[0075] In the case of intra prediction, the predictor 230 can derive a prediction sample for a current block based on neighboring reference samples in a current picture. The predictor 230 can derive a prediction sample for a current block by applying a directional mode or a non-directional mode based on neighboring reference samples of the current block. In this case, a prediction mode to be applied to the current block can be determined by using an intra prediction mode of a neighboring block.

[0076] In the case of inter prediction, the predictor 230 can derive a prediction sample for a current block based on samples specified in a reference picture according to a motion vector. The predictor 230 can derive a prediction sample for a current block using one of a skip mode, a merge mode, and an MVP mode. Here, motion information (e.g., a motion vector and information about a reference picture index) required for inter prediction of a current block provided by a video encoding apparatus can be acquired or derived based on the information about prediction.

[0077] In the skip mode and the merge mode, motion information of a neighboring block can be used as motion information of a current block. Here, the neighboring block can include a spatial neighboring block and a temporal neighboring block.

[0078] The predictor 230 can construct a merge candidate list using motion information of available neighboring blocks, and use information indicated by a merge index on the merge candidate list as a motion vector of a current block. The merge index can be signaled by an encoding apparatus. The motion information can include a motion vector and a reference picture. In the skip mode and the merge mode, when motion information of a temporal neighboring block is used, a first ordered picture in a reference picture list can be used as a reference picture.

[0079] In the case of the skip mode, unlike the merge mode, a difference (residual) between a prediction sample and an original sample is not transmitted.

[0080] In the case of the MVP mode, a motion vector of a neighboring block can be used as a motion vector predictor to derive a motion vector of a current block. Here, the neighboring block can include a spatial neighboring block and a temporal neighboring block.

[0081] When the merge mode is applied, for example, a motion vector of a reconstructed spatial neighboring block and / or a motion vector corresponding to a Col block which is a temporal neighboring block can be used to generate a merge candidate list. A motion vector of a candidate block selected from the merge candidate list is used as a motion vector of a current block in the merge mode. The above-described information on prediction can include a merge index indicating a candidate block having a best motion vector selected from the candidate blocks included in the merge candidate list. Here, the predictor 230 can derive the motion vector of the current block using the merge index.

[0082] When the MVP (motion vector prediction) mode is applied as another example, a motion vector of a reconstructed spatial neighboring block and / or a motion vector corresponding to a Col block which is a temporal neighboring block can be used to generate a motion vector predictor candidate list. That is, the motion vector of the reconstructed spatial neighboring block and / or the motion vector corresponding to the Col block which is the temporal neighboring block can be used as a motion vector candidate. The above-described information on prediction can include a prediction motion vector index indicating a best motion vector selected from the motion vector candidates included in the list. Here, the predictor 230 can select a prediction motion vector of the current block from the motion vector candidates included in the motion vector candidate list using the motion vector index. The predictor of the encoding apparatus can obtain a motion vector difference (MVD) between the motion vector of the current block and the motion vector predictor, encode the MVD, and output the encoded MVD in the form of a bitstream. That is, the MVD can be obtained by subtracting the motion vector predictor from the motion vector of the current block. Here, the predictor 230 can acquire the motion vector included in the information on prediction, and derive the motion vector of the current block by adding the motion vector difference to the motion vector predictor. In addition, the predictor can obtain or derive a reference picture index indicating a reference picture from the above-described information on prediction.

[0083] The adder 240 can add the residual samples to the prediction samples to reconstruct the current block or the current picture. The adder 240 can reconstruct the current picture by adding the residual samples to the prediction samples in a unit of block. When the skip mode is applied, the residual is not transmitted, and thus the prediction samples can become the reconstructed samples. Although the adder 240 is described as a separate component, the adder 240 can be a part of the predictor 230. In addition, the adder 240 can be referred to as a reconstructor or a reconstructed block generator.

[0084] The filter 250 can apply deblocking filtering, sample adaptive offset, and / or ALF to the reconstructed picture. Here, the sample adaptive offset can be applied in a sample unit after the deblocking filtering. The ALF can be applied after the deblocking filtering and / or the application of the sample adaptive offset.

[0085] The memory 260 can store a reconstructed picture (decoded picture) or information required for decoding. Here, the reconstructed picture can be a reconstructed picture filtered by the filter 250. For example, the memory 260 can store a picture used for inter prediction. Here, the picture used for inter prediction can be specified according to a reference picture set or a reference picture list. The reconstructed picture can be used as a reference picture for other pictures. The memory 260 can output the reconstructed picture in an output order.

[0086] Further, as described above, when performing video encoding, prediction is performed to improve compression efficiency. Accordingly, a prediction block including prediction samples for a current block that is a block to be encoded (i.e., an encoding target block) can be generated. Here, the prediction block includes prediction samples in a spatial domain (or a pixel domain). The prediction block is derived in the same manner in the encoding device and the decoding device, and the encoding device can signal information about a residual between the original block and the prediction block (residual information) rather than original sample values of the original block to the decoding device, thereby improving image encoding efficiency. The decoding device can derive a residual block including residual samples based on the residual information, add the residual block to the prediction block to generate a reconstructed block including reconstructed samples, and generate a reconstructed picture including the reconstructed block.

[0087] The residual information can be generated through a transform and quantization process. For example, the encoding device can derive a residual block between the original block and the prediction block, perform a transform process on residual samples (a residual sample array) included in the residual block to derive transform coefficients, perform a quantization process on the transform coefficients to derive quantized transform coefficients, and can signal the related residual information to the decoding device (through a bitstream). Here, the residual information can include value information of the quantized transform coefficients, position information, a transform technique, a transform kernel, and a quantization parameter, etc. The decoding device can perform a dequantization / inverse transform process based on the residual information, and can derive the residual samples (or the residual block). The decoding device can generate a reconstructed picture based on the prediction block and the residual block. In addition, for inter prediction of a later reference picture, the encoding device can also dequantize / inverse transform the quantized transform coefficients to derive the residual block, and generate a reconstructed picture based on the residual block.

[0088] Figures 3a to 3c FIG. 1 is a diagram illustrating examples of QT split, BT split, and TT split.

[0089] In video coding, a block can be partitioned based on a quad-tree (QT). In addition, a sub-block partitioned by the QT can be further recursively partitioned using the QT. A leaf block that is not further partitioned by the QT can be partitioned by a binary tree (BT), a ternary tree (TT), a slice tree (ST), etc. The BT can have two forms of partitioning such as a horizontal BT (2N x N, 2N x N) and a vertical BT (N x 2N, N x 2N). The TT can have two forms of partitioning such as a horizontal TT (2N x 1 / 2N, 2N x N, 2N x 1 / 2N) and a vertical TT (1 / 2N x 2N, N x 2N, 1 / 2N x 2N). The ST can have two forms of partitioning such as a horizontal ST (2N x 1 / 2N, 2N x 1 / 2N, 2N x 1 / 2N, 2N x 1 / 2N) and a vertical ST (1 / 2N x 2N, 1 / 2N x 2N, 1 / 2N x 2N, 1 / 2N x 2N). Each of the BT, the TT, and the ST can be further recursively partitioned using the BT, the TT, and the ST.

[0090] Figure 3a An example of the QT partitioning is illustrated. A block A can be partitioned by the QT into four sub-blocks (A0, A1, A2, A3). The sub-block A1 can be further partitioned by the QT into four sub-blocks (B0, B1, B2, B3).

[0091] Figure 3b An example of the BT partitioning is illustrated. The block B3 that is not further partitioned by the QT can be partitioned into a vertical BT (C0, C1) or a horizontal BT (D0, D1). Each sub-block can be further recursively partitioned in the form of a horizontal BT (E0, E1) or a vertical BT (F0, F1) as in the block C0.

[0092] Figure 3c An example of the TT partitioning is illustrated. The block B3 that is not further partitioned by the QT can be partitioned into a vertical TT (C0, C1, C2) or a horizontal TT (D0, D1, D2). Each sub-block can be further recursively partitioned in the form of a horizontal TT (E0, E1, E2) or a vertical TT (F0, F1, F2) as in the block C1.

[0093] Table 1 below represents an example of encoding the quad-tree syntax in the case of using the BT and the TT.

[0094] [Table 1]

[0095]

[0096] The syntax element split_qt_flag indicates whether the current (coded) block is split into four by QT. When the value of split_qt_flag is 0, it means that the current block is not split by QT, and when the value of split_qt_flag is 1, it means that the current block is split by QT. x0 and y0 indicate the top-left position of the luma image.

[0097] The present specification uses specific terms or sentences to define specific information or concepts. For example, the present specification defines specific syntax elements using specific terms or sentences. As an example, the present specification defines a syntax element indicating whether the current (coded) block is split into 4 by QT as "split_qt_flag", and defines a syntax element indicating whether the current (coded) block is further split as "split_fur_flag". However, "split_qt_flag" can be replaced with various terms such as qt_split_flag and QT split flag, and "split_fur_flag" can be replaced with various terms such as further_split_flag and fur_split_flag, such that the specific terms or sentences for determining specific information or concepts in the present specification should not be construed as being limited to those names throughout the specification, but need to be construed according to what the terms indicate by focusing on various operations, functions, and effects.

[0098] Table 2 below represents an example of syntax of a coding tree.

[0099] [Table 2]

[0100]

[0101] The syntax element split_fur_flag indicates whether the current (coded) block is further split. When the value of split_fur_flag is 0, it means that the current block is not split any more, and when the value of split_fur_flag is 1, it means that the current block is split. The syntax element split_bt_flag indicates whether the current block is split based on BT or TT. When the value of split_bt_flag is 1, it means that the current block is split based on BT, and when the value of split_bt_flag is 0, it means that the current block is split based on TT.

[0102] The split type (SplitType) of the current block can be determined based on the syntax element split_fur_flag and the syntax element split_bt_flag as represented in Table 3 below.

[0103] [Table 3]

[0104] split_fur_flag split_bt_flag SplitType 0 NO_SPLIT 1 1 BT 1 0 TT

[0105] Referring to Table 3, when the value of split_fur_flag is 0 and the current block is not further split, it can be confirmed that SplitType is determined as NO_SPLIT. Also, when the value of split_fur_flag is 1 and the current block is split, it can be confirmed that SplitType is determined as BT when the value of split_bt_flag is 1, and as TT when the value of split_bt_flag is 0.

[0106] The syntax element split_dir indicates a split direction of the current block. When the value of split_dir is 0, it means that the current block is split horizontally, and when the value of split_dir is 1, it means that the current block is split vertically. The split mode (SplitMode) of the block can be derived based on SplitType and split_dir as indicated in Table 4 below.

[0107] [Table 4]

[0108]

[0109] Referring to Table 4, when SplitType is BT, it can be confirmed that SplitMode is determined as PART_BT_HOR, i.e., a BT horizontal split mode, when the value of split_dir is 0, and as PART_BT_VER, i.e., a BT vertical split mode, when the value of split_dir is 1. Also, when SplitType is TT, it can be confirmed that SplitMode is determined as PART_TT_HOR, i.e., a TT horizontal split mode, when the value of split_dir is 0, and as PART_TT_VER, i.e., a TT vertical split mode, when the value of split_dir is 1.

[0110] When the region of each picture is partitioned into QT structure, the encoder and the decoder can transmit syntax elements adjusting the degree of partitioning of QT in consideration of the relationship between performance and complexity. For example, syntax elements such as MaxQTSize, MinQTSize, and MaxQTDepth can be transmitted. Here, MaxQTSize can mean the size of the largest block first partitioned by QT, and is expressed in a log2 scale. MinQTSize can mean the size of the smallest block partitioned by QT, and is expressed in a log2 scale. In addition, MaxQTDepth can mean how many times of QT partitioning is allowed from MaxQTSize.

[0111] When the region of each picture is partitioned into QT structure and then the block is partitioned into BT structure, the encoder and the decoder can transmit syntax elements adjusting the degree of partitioning of BT in consideration of the relationship between performance and complexity. For example, syntax elements such as MaxBTSize, MinBTSize, and MaxBTDepth can be transmitted. More specifically, MaxBTSize can mean the size of the largest block first allowed to be partitioned by BT, and is expressed in a log2 scale. MinBTSize can mean the size of the smallest block partitioned by BT, and is expressed in a log2 scale. In addition, MaxBTDepth can mean how many times of BT partitioning is allowed from MaxBTSize.

[0112] When the region of each picture is partitioned into QT structure and then the block is partitioned into TT structure, the encoder and the decoder can transmit syntax elements adjusting the degree of partitioning of TT in consideration of the relationship between performance and complexity. For example, syntax elements such as MaxTTSize, MinTTSize, and MaxTDepth can be transmitted. More specifically, MaxTTSize can mean the size of the largest block first allowed to be partitioned by TT, and is expressed in a log2 scale. MinTTSize can mean the size of the smallest block partitioned by TT, and is expressed in a log2 scale. In addition, MaxTDepth can mean how many times of TT partitioning is allowed from MaxTTSize.

[0113] Figure 4 FIG. 1 is a block diagram illustrating a configuration of an entropy encoder according to an exemplary embodiment.

[0114] Figure 4 FIG. 1 is a block diagram illustrating a configuration of an entropy encoder according to an exemplary embodiment.

[0115] The entropy encoder 400 according to the present disclosure includes a binarization unit 410, a context modeling unit 420, a binary arithmetic encoding unit 430, and a memory 460, wherein the binary arithmetic encoding unit 430 can include a regular binary encoding unit 440 and a bypass binary encoding unit 450. Here, the regular binary encoding unit 440 and the bypass binary encoding unit 450 can also be referred to as a regular encoding engine and a bypass encoding engine, respectively.

[0116] The binarization unit 410 can receive a sequence of data symbols and perform binarization, thereby outputting a string of binary symbols (bins) composed of binarized values 0 or 1. The binarization unit 410 can establish a mapping of a syntax element with a binary symbol. For binarization, various different binarization processes can be used, such as unary code (U), truncated unary code (TU), K-th order exponential Golomb code (EGk), fixed length processing, etc. The binarization process can be selected based on the form of the syntax element.

[0117] The output bin string can be transmitted to the context modeling unit 420.

[0118] The context modeling unit 420 can select probability information necessary for encoding a current block from the memory to transmit the probability information to the binary arithmetic encoding unit 430. For example, the context modeling unit 420 can select a context memory based on a syntax element to be encoded and select probability information necessary for encoding a current syntax element through a bin index (binIdx). Here, the context means information on the probability of occurrence of a symbol, and the context modeling can mean a process of estimating the probability of a bin necessary for binary arithmetic encoding by receiving a bin as a binarization result.

[0119] The context modeling unit 420 can provide (accurate) probability estimation necessary to achieve enhanced coding efficiency. Accordingly, different context models can be used for different binary symbols, and the probability of the context model can be updated based on the value of a previously encoded binary symbol. At this time, the value of the previously encoded binary symbol is stored in the memory 460, and the context modeling unit 420 can use the value of the previously encoded binary symbol from the memory 460.

[0120] Binary symbols having similar distributions can share the same context model. The context model for each binary symbol can estimate the probability using at least one of syntax information of a bin, a bin index (binIdx) indicating a position of the bin in a bin string, and a probability of a bin included in a neighboring block of a block in which the bin is included.

[0121] The binary arithmetic encoding unit 430 includes a regular binary encoding unit 440 and a bypass binary encoding unit 450, and can perform entropy encoding on the outputted string and output compressed data bits.

[0122] The regular binary encoding unit 440 can perform arithmetic encoding based on a recursive interval division.

[0123] First, an interval (or range) having an initial value of 0 or 1 can be split into two lower intervals based on the probability of a binary symbol. When converted into a binary fraction, an encoding bit can provide an offset for selecting one of the two lower intervals representing the value of a decoded binary symbol.

[0124] After a binary symbol of a decoded mode, the interval can be updated so that the selected lower interval is the same, and the interval splitting process itself can be repeated. The interval and the offset have a limited bit precision, and thus, whenever the interval is reduced to a certain value or less, renormalization can be required to prevent overflow. Renormalization can occur after decoding each binary symbol.

[0125] The bypass binary encoding unit 450 performs encoding without a context model, and can perform encoding by fixing the probability of a currently encoded bin to 0.5. This method can be used when it is difficult to determine the probability of a syntax or high-speed encoding is required.

[0126] Figure 5 FIG. 1 is a block diagram illustrating a configuration of an entropy decoder according to an exemplary embodiment.

[0127] Figure 5 FIG. 1 is a block diagram illustrating a configuration of an entropy decoder according to an exemplary embodiment.

[0128] The entropy decoder 500 according to an exemplary embodiment can include a context modeling unit 510, a binary arithmetic decoding unit 520, a memory 550, and an inverse binarization unit 560, and the binary arithmetic decoding unit 520 can include a regular binary decoding unit 530 and a bypass binary decoding unit 540.

[0129] The entropy decoder 500 can receive a bitstream and confirm a bypass flag therefrom. Here, the bypass flag indicates whether the bitstream is in a bypass mode, and the bypass mode can mean that encoding is performed by fixing the probability of a currently encoded bin to 0.5 without using a context model.

[0130] If the bitstream is not in the bypass mode according to the bypass flag, the regular binary decoding unit 530 can perform binary arithmetic decoding according to a regular mode.

[0131] At this time, the context modeling unit 510 can select probability information necessary for decoding the current bitstream from the memory 550 to transmit the probability information to the regular binary decoding unit 530.

[0132] In addition, if the bitstream is in the bypass mode according to the bypass flag, the bypass binary decoding unit 540 can perform binary arithmetic decoding according to the bypass mode.

[0133] The inverse binarization unit 560 can receive the bin in binary form decoded by the binary arithmetic decoding unit 520 and convert the bin into a syntax element value in integer form to output the converted syntax element value.

[0134] Figure 6 is a flowchart illustrating an operation of an entropy encoder according to an exemplary embodiment.

[0135] The entropy encoder of the encoding apparatus according to an exemplary embodiment can perform binarization on a syntax element (S610).

[0136] The entropy encoder according to an exemplary embodiment can determine whether to perform binary arithmetic encoding according to a regular mode or to perform binary arithmetic encoding according to a bypass mode (S620). For example, the entropy encoder can confirm whether the bitstream is in the regular mode or the bypass mode based on a bypass flag, and when the bypass flag is 1, this can indicate the bypass mode, and when the bypass flag is 0, this can indicate the regular mode.

[0137] If it is determined that binary arithmetic encoding is to be performed according to the regular mode, the entropy encoder can select a probability model (S630), and perform binary arithmetic encoding based on the probability model (S640). In addition, the entropy encoder can update the probability model (S650), and select a suitable probability model again based on the probability model updated in step S630.

[0138] If it is determined that binary arithmetic encoding is to be performed according to the bypass mode, the entropy encoder can perform binary arithmetic encoding based on a probability of 0.5 (S660).

[0139] Figure 7 is a flowchart illustrating an operation of an entropy decoder according to an exemplary embodiment.

[0140] The entropy decoder of the decoding apparatus according to an exemplary embodiment can receive a bitstream (S710).

[0141] The entropy decoder according to the exemplary embodiment can confirm whether the bitstream is in the regular mode or the bypass mode by extracting a bypass flag from the bitstream (S720). Here, the bypass flag can be determined in advance according to the kind of syntax.

[0142] If the bypass flag indicates the regular mode, the entropy decoder can select a probability model (S730), and perform binary arithmetic decoding based on the selected probability model (S740). In addition, the entropy decoder can update the probability model (S750), and select a suitable probability model again based on the probability model updated in step S730.

[0143] Further, if the bypass flag indicates the bypass mode, the entropy decoder can perform binary arithmetic decoding based on a probability of 0.5 (S760).

[0144] The entropy decoder can perform inverse binarization on the decoded bin string (S770). For example, the entropy decoder can receive the decoded bin in a binary form, and convert the bin into a syntax element value in an integer form to output the syntax element value.

[0145] The exemplary embodiment of the present disclosure proposes a method for determining a context model for CABAC entropy encoding. As described above, the split_bt_flag can indicate whether the current block is split into a BT or a TT. The syntax element split_bt_flag can be referred to as mtt_split_cu_binary_flag, etc. The context model for the syntax element split_bt_flag can be determined according to the number of BTs and TTs that can be split from the current block. The following Equation 1 represents the value of a context index (CtxIdx) according to block split availability information.

[0146] [Equation 1]

[0147] CtxIdx = (availableBTHOR && availableBTVER) * 2 + (availableTTHOR && availableTTVER)

[0148] In the present specification, "block split availability information" can mean block split conditions. The block split availability information can include BT horizontal split available flag information indicating whether a current block can be horizontally split based on a binary tree (BT) structure, TT horizontal split available flag information indicating whether the current block can be horizontally split based on a ternary tree (TT) structure, BT vertical split available flag information indicating whether the current block can be vertically split based on the BT structure, and TT vertical split available flag information indicating whether the current block can be vertically split based on the TT structure. According to an exemplary embodiment, the block split availability information can be derived based on at least one of block size information, multi-type tree depth information, and maximum multi-tree size information.

[0149] In Equation 1, availableBTHOR can mean BT horizontal split available flag information, availableBTVER can mean BT vertical split available flag information, availableTTHOR can mean TT horizontal split available flag information, and availableTTVER can mean TT vertical split available flag information. For example, the value of CtxIdx can range from greater than or equal to 0 and less than or equal to 3.

[0150] The BT horizontal split available flag information can be indicated by various names such as available_BT_HOR, allowSplitBTHor, and availableBTHOR. Likewise, the BT vertical split available flag information can be indicated by available_BT_VER, allowSplitBTVer, etc., the TT horizontal split available flag information can be indicated by available_TT_HOR, allowSplitTTHor, etc., and the TT vertical split available flag information can be indicated by available_TT_VER, allowSplitTTVer, etc.

[0151] Table 5 below indicates an example of the value of CtxIdx according to the values of availableBTHOR, availableBTVER, availableTTHOR, and availableTTVER.

[0152] [Table 5]

[0153] availableBTHOR availbleBTVER availableTTHOR availableTTVER Ctxldx 0 0 0 0 N / A 0 0 0 1 N / A 0 0 1 0 N / A 0 0 1 1 N / A 0 1 0 0 N / A 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 N / A 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 N / A 1 1 0 1 2 1 1 1 0 2 1 1 1 1 3

[0154] When the value of each of availableBTHOR, availableBTVER, availableTTHOR, and availableTTVER is 0, it indicates that the splitting according to each partition structure is not available, and when each value is 1, it indicates that the splitting according to the partition structure is available. If the value of CtxIdx is N / A, it can indicate that it is not necessary to determine the value of CtxIdx because the signaling of split_bt_flag is not necessary.

[0155] According to an exemplary embodiment, split_bt_flag can be encoded using four context models. Table 6 below represents an example of an initial value (InitValue) of CABAC according to the value of CtxIdx.

[0156] [Table 6]

[0157] Ctxldx InitValue 0 152 1 153 2 154 3 152

[0158] As another example, when the value of CtxIdx is 0 or 3, the same initial value of CABAC can be used, and split_bt_flag can be encoded using three context models when having similar statistical properties. That is, when the value of CtxIdx is 3, the value of CtxIdx can be replaced with 0. Table 7 below represents an example of an initial value of CABAC according to the value of CtxIdx when using three context models.

[0159] [Table 7]

[0160] Ctxldx InitValue 0 152 1 153 2 154

[0161] Another exemplary embodiment of the disclosure proposes another method for determining a context model for CABAC entropy encoding. As an example, a syntax element split_bt_flag can be first signaled to determine whether it is BT splitting or TT splitting, and then a syntax element split_dir can be signaled to determine whether it is horizontal splitting or vertical splitting. In some cases, the syntax element split_dir can be referred to as mtt_split_cu_vertical_flag. As another example, a syntax element split_dir can be first signaled to determine whether it is horizontal splitting or vertical splitting, and then a syntax element split_bt_flag can be signaled to determine whether it is BT splitting or TT splitting.

[0162] At this time, a context model for the syntax element split_dir can be determined according to the number of horizontal and vertical partitions that can be split from the current block. Equation 2 below represents a value of a context index (CtxIdx) according to the block partition availability information.

[0163] [Equation 2]

[0164] CtxIdx = (availableBTHOR && availableTTHOR) * 2 + (availableBTVER && availableTTVER)

[0165] Table 8 below represents an example of the value of CtxIdx according to the values of availableBTHOR, availableBTVER, availableTTHOR, and availableTTVER.

[0166] [Table 8]

[0167] availableBTHOR availableTTHOR availableBTVER availableTTVER Ctxldx 0 0 0 0 N / A 0 0 0 1 N / A 0 0 1 0 N / A 0 0 1 1 N / A 0 1 0 0 N / A 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 N / A 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 N / A 1 1 0 1 2 1 1 1 0 2 1 1 1 1 3

[0168] In Table 8, a case where the value of CtxIdx is N / A can represent a case where it is not necessary to determine the value of CtxIdx because the signaling of split_bt_flag is unnecessary.

[0169] According to an exemplary embodiment, referring to Table 8, if the value of availableBTHOR and the value of availableTTHOR are 0 or the value of availableBTVER and availableTTVER are 0, it can be confirmed that the CtxIdx of sDlit_dir is not derived.

[0170] According to an exemplary embodiment, referring to Table 8, when the value of (availableBTHOR || availableTTHOR) && (availableBTVER || availableTTVER) is 0, it can be confirmed that the CtxIdx of split_dir is not derived.

[0171] According to an exemplary embodiment, split_dir_flag can be encoded using four context models. Table 9 below represents an example of an initial value (InitValue) of CABAC according to the value of CtxIdx.

[0172] [Table 9]

[0173] Ctxldx InitValue 0 154 1 155 2 153 3 154

[0174] As another example, when the value of CtxIdx is 0 or 3, the same initial value of CABAC is used, and split_bt_flag can be encoded using three context models when having similar statistical properties. That is, when the value of CtxIdx is 3, the value of CtxIdx can be replaced with 0. Table 10 below represents an example of the initial value of CABAC according to the value of CtxIdx in the case of using three context models.

[0175] [Table 10]

[0176] Ctxldx lnitValue 0 154 1 155 2 153

[0177] The example embodiment can determine the block partition according to the transform size. The available transform sizes of the currently decoded image or picture can be transmitted in units of sequence parameter set (SPS), picture parameter set (PPS), slice header (SH), header of a network abstraction layer (NAL) unit, or the like. For the available transform sizes, the corresponding transform sizes can also be transmitted one by one, and the corresponding index can also be transmitted based on a predefined transform set. The decoder terminal can receive and decode the index to derive the available transform size.

[0178] When the available transform size is determined, the size of the available block partition can be determined. That is, the size of the available block partition is defined for the currently decoded image and picture. The size of the available block partition can be determined by the transform available case. Thus, the partition of the block in which the transform is not present can not be allowed.

[0179] The size of the available block partition is determined for the image and picture, and then it can be determined whether the block can be partitioned in units of block, that is, in units of CU or PU. The kind of available block partition is determined based on the size of the current block. That is, BT or TT available candidates can be configured horizontally and vertically. Alternatively, in addition to the 1 / 2 ratio partition, it can be determined whether 1 / 4, 3 / 4 ratio partition, 3 / 8, 5 / 8 ratio partition, 1 / 3, 2 / 3 ratio partition, 1 / 5, 4 / 5 ratio partition, or the like are available.

[0180] The partition available block candidate is configured, and then the final block partition can be determined by the block partition syntax transmitted to the decoder. If there is one available block candidate or there is no available block candidate, the corresponding syntax can not be transmitted.

[0181] Figure 8 is a flowchart illustrating an operation of an encoding apparatus according to an example embodiment, and Figure 9 is a block diagram illustrating a configuration of an encoding apparatus according to an example embodiment.

[0182] Figure 8 and Figure 9The encoding apparatus exemplified in Figure 10 and Figure 11 The operations of the decoding apparatus exemplified in Figure 10 and Figure 11 may correspond to the operations of the encoding apparatus exemplified in Figure 8 and Figure 9 Therefore, what is described later with reference to and

[0183] may also be equally applied to the encoding apparatus exemplified in Figure 8 and Figure 1 Each of the steps exemplified in Figure 1 may be performed by the encoding apparatus 100 exemplified in Figures 3a to 7 More specifically, S800 to S830 can be performed by the entropy encoder 130 exemplified in Figures 3a to 7 According to the operations of S800 to S830 are performed based on some of what is described above with reference to Therefore, the description of specific contents that are repetitive of what is described above with reference to

[0184] will be omitted or simplified. Figure 9 As exemplified in Figure 9 The encoding apparatus according to an exemplary embodiment can include a picture partitioner 105 and an entropy encoder 130. However, in some cases, Figure 9 all the components exemplified in may not be essential components of the encoding apparatus, and the encoding apparatus can be implemented by a greater number or a smaller number of components than the components exemplified in

[0185] In the encoding apparatus according to an exemplary embodiment, each of the picture partitioner 105 and the entropy encoder 130 can be implemented by separate chips, or two or more components can also be implemented by a single chip.

[0186] The encoding apparatus according to an exemplary embodiment can derive a plurality of different coding units by partitioning a current block within a current picture. More specifically, the picture partitioner 105 of the encoding apparatus can derive a plurality of different coding units by partitioning a current block within a current picture.

[0187] The encoding apparatus according to an exemplary embodiment can derive a partition flag syntax element that represents a partition structure of a current block (S800). More specifically, the entropy encoder 130 of the encoding apparatus can derive a partition flag syntax element that represents a partition structure of a current block.

[0188] According to an example embodiment, the split flag syntax element can include a directional split flag indicating whether the current block is split horizontally, and the split syntax element can include a BT split flag indicating whether the current block is split based on a BT structure. The directional split flag can be indicated, for example, by split_dir, and the BT split flag can be indicated, for example, by split_bt_flag.

[0189] The encoding apparatus according to an example embodiment can derive a context index of the split flag syntax element based on the split availability information of the current block (S810). More specifically, the entropy encoder 130 of the encoding apparatus can derive the context index of the split flag syntax element based on the split availability information of the current block.

[0190] According to an example embodiment, the split availability information can include BT horizontal split available flag information indicating whether the current block can be split horizontally based on a BT structure, TT horizontal split available flag information indicating whether the current block can be split horizontally based on a TT structure, BT vertical split available flag information indicating whether the current block can be split vertically based on a BT structure, and TT vertical split available flag information indicating whether the current block can be split vertically based on a TT structure.

[0191] According to an example embodiment, the BT horizontal split available flag information can be indicated by availableBTHOR, the TT horizontal split available flag information can be indicated by availableTTHOR, the BT vertical split available flag information can be indicated by availableBTVER, and the TT vertical split available flag information can be indicated by availableTTVER.

[0192] According to an example embodiment, a context index of the directional split flag can be derived based on the BT horizontal split available flag information, the TT horizontal split available flag information, the BT vertical split available flag information, and the TT vertical split available flag information.

[0193] According to an example embodiment, whether to derive a context index of the directional split flag can be determined based on the BT horizontal split available flag information, the TT horizontal split available flag information, the BT vertical split available flag information, and the TT vertical split available flag information.

[0194] According to an example embodiment, if a value of the BT horizontal split available flag information and a value of the TT horizontal split available flag information are 0, or a value of the BT vertical split available flag information and a value of the TT vertical split available flag information are 0, it is characterized in that a context index of the vertical split flag is not derived.

[0195] According to an exemplary embodiment, when the value of (availableBTHOR||availableTTHOR)&&(availableBTVER||availableTTVER) is 0, a context index of a vertical partition flag can not be derived.

[0196] According to an exemplary embodiment, a context index of a BT partition flag can be derived based on BT horizontal partition available flag information, TT horizontal partition available flag information, BT vertical partition available flag information, and TT vertical partition available flag information.

[0197] According to an exemplary embodiment, a context index of a directional partition flag can be derived based on the following Equation 3.

[0198] [Equation 3]

[0199] CtxIdx = (availableBTHOR && availableTTHOR) * 2 + (availableBTVER && availableTTVER)

[0200] According to an exemplary embodiment, a context index of a BT partition flag can be derived based on the following Equation 4.

[0201] [Equation 4]

[0202] CtxIdx = (availableBTHOR && availableBTVER) * 2 + (availableTTHOR && availableTTVER)

[0203] The encoding apparatus according to an exemplary embodiment can determine a context model based on the derived context index (S820). More specifically, the entropy encoder 130 of the encoding apparatus can determine a context model based on the derived context index.

[0204] The encoding apparatus according to an exemplary embodiment can encode a value of a partition flag syntax element based on CABAC using the determined context model (S830). More specifically, the entropy encoder 130 of the encoding apparatus can encode a value of a partition flag syntax element based on CABAC using the determined context model.

[0205] According to Figure 8 and Figure 9The encoding apparatus and the method for operating the encoding apparatus exemplified in the above can derive a split flag syntax element (S800) representing a split structure of a current block, derive a context index of the split flag syntax element based on split availability information of the current block (S810), determine a context model based on the derived context index (S820), and encode a value of the split flag syntax element based on CABAC using the determined context model (S830), and at this time, the feature can be in that the split flag syntax element can include a directional split flag representing whether to perform a vertical split on the current block, the split availability information can include BT horizontal split available flag information representing whether to perform a horizontal split on the current block based on a BT structure, TT horizontal split available flag information representing whether to perform a horizontal split on the current block based on a TT structure, BT vertical split available flag information representing whether to perform a vertical split on the current block based on a BT structure, and TT vertical split available flag information representing whether to perform a vertical split on the current block based on a TT structure, and the context index of the directional split flag is derived based on the BT horizontal split available flag information, the TT horizontal split available flag information, the BT vertical split available flag information, and the TT vertical split available flag information. That is, as Figure 8 and Figure 9 Exemplified in the above, when performing entropy encoding according to CABAC based on a QT structure, a BT structure, and a TT structure, encoding and decoding can be more efficiently performed using a context model.

[0206] Figure 10 is a flowchart exemplifying operations of a decoding apparatus according to an exemplary embodiment, Figure 11 is a block diagram exemplifying a configuration of a decoding apparatus according to an exemplary embodiment.

[0207] Figure 10 Each of the steps exemplified in the above can be performed by Figure 2 the video decoding apparatus 200 exemplified in the above. More specifically, S1000 to S1030 can be performed by the entropy decoder 210 exemplified in the above, S1040 can be performed by the predictor 230 exemplified in the above, and S1050 can be performed by the adder 240 exemplified in the above. In addition, operations according to S1000 to S1050 are performed based on some of the contents described above with reference to Figure 2 Figure 2 Figure 2 Figures 3a to 7 Figures 3a to 7

[0208] As Figure 11 ​​​​​The decoding apparatus according to an exemplary embodiment can include an entropy decoder 210, a predictor 230, and an adder 240. However, in some cases, Figure 11 All of the components exemplified can not be essential components of the decoding apparatus, and the decoding apparatus can be implemented by more or less components than those exemplified. Figure 11 The components exemplified can be implemented by a greater number or a smaller number of components than those exemplified.

[0209] In the decoding apparatus according to an exemplary embodiment, each of the entropy decoder 210, the predictor 230, and the adder 240 can be implemented by separate chips, or two or more components can also be implemented by a single chip.

[0210] The decoding apparatus according to an exemplary embodiment can derive a context index of a split flag syntax element based on split availability information of a current block (S1000). More specifically, the entropy decoder 210 of the decoding apparatus can derive the context index of the split flag syntax element based on the split availability information of the current block.

[0211] According to an exemplary embodiment, the split flag syntax element can include a directional split flag indicating whether the current block is split vertically, and the split syntax element can include a BT split flag indicating whether the current block is split based on a BT structure. The directional split flag can be indicated by split_dir, for example, and the BT split flag can be indicated by split_bt_flag, for example.

[0212] According to an exemplary embodiment, the split availability information can include BT horizontal split available flag information indicating whether the current block can be split horizontally based on a BT structure, TT horizontal split available flag information indicating whether the current block can be split horizontally based on a TT structure, BT vertical split available flag information indicating whether the current block can be split vertically based on a BT structure, and TT vertical split available flag information indicating whether the current block can be split vertically based on a TT structure.

[0213] As an example, the BT horizontal split available flag information can be indicated by availableBTHOR, the TT horizontal split available flag information can be indicated by availableTTHOR, the BT vertical split available flag information can be indicated by availableBTVER, and the TT vertical split available flag information can be indicated by availableTTVER.

[0214] According to an exemplary embodiment, the context index of the directional split flag can be derived based on the BT horizontal split available flag information, the TT horizontal split available flag information, the BT vertical split available flag information, and the TT vertical split available flag information.

[0215] According to an exemplary embodiment, it is possible to determine whether to derive a context index of a directional split flag based on the BT horizontal split available flag information, the TT horizontal split available flag information, the BT vertical split available flag information, and the TT vertical split available flag information.

[0216] According to an exemplary embodiment, if values of the BT horizontal split available flag information and the TT horizontal split available flag information are 0, or values of the BT vertical split available flag information and the TT vertical split available flag information are 0, it is possible not to derive the context index of the directional split flag.

[0217] According to an exemplary embodiment, when values of (availableBTHOR || availableTTHOR) && (availableBTVER || availableTTVER) are 0, it is possible not to derive the context index of the directional split flag.

[0218] According to an exemplary embodiment, it is possible to derive a context index of a BT split flag based on the BT horizontal split available flag information, the TT horizontal split available flag information, the BT vertical split available flag information, and the TT vertical split available flag information.

[0219] According to an exemplary embodiment, it is possible to derive the context index of the directional split flag based on the following Equation 5.

[0220] [Equation 5]

[0221] CtxIdx = (availableBTHOR && availableTTHOR) * 2 + (availableBTVER && availableTTVER)

[0222] According to an exemplary embodiment, it is possible to derive the context index of the BT split flag based on the following Equation 6.

[0223] [Equation 6]

[0224] CtxIdx = (availableBTHOR && availableBTVER) * 2 + (availableTTHOR && availableTTVER)

[0225] The decoding apparatus according to an exemplary embodiment can determine a context model based on the derived context index (S1010). More specifically, the entropy decoder 210 of the decoding apparatus can determine the context model based on the derived context index.

[0226] The decoding apparatus according to an exemplary embodiment can use the determined context model to decode a value of the split flag syntax element based on context-based adaptive binary arithmetic coding (CABAC) (S1020). More specifically, the entropy decoder 210 of the decoding apparatus can decode the value of the split flag syntax element based on CABAC using the determined context model.

[0227] The decoding apparatus according to an exemplary embodiment can derive a current coding unit from the current block based on the value of the split flag syntax element (S1030). More specifically, the entropy decoder 210 of the decoding apparatus can derive the current coding unit from the current block based on the value of the split flag syntax element.

[0228] The decoding apparatus according to an exemplary embodiment can derive a prediction block based on inter prediction or intra prediction for the current coding unit (S1040). More specifically, the predictor 230 of the decoding apparatus can derive the prediction block based on the inter prediction or the intra prediction for the current coding unit.

[0229] The decoding apparatus according to an exemplary embodiment can generate a reconstructed block based on the prediction block (S1050). More specifically, the adder 240 of the decoding apparatus can generate the reconstructed block based on the prediction block.

[0230] According to an exemplary embodiment, the decoding apparatus can determine a context model for a split flag syntax element of a current block based on a size of the current block. Figure 10 and Figure 11The decoding apparatus and the method of operating the decoding apparatus exemplified in the present disclosure can derive a context index of a split flag syntax element based on split availability information of a current block (S1000), determine a context model based on the derived context index (S1010), decode a value of the split flag syntax element based on context-based adaptive binary arithmetic coding (CABAC) using the determined context model (S1020), derive a current coding unit from the current block based on the value of the split flag syntax element (S1030), derive a prediction block based on inter prediction or intra prediction for the current coding unit (S1040), and generate a reconstructed block based on the prediction block (S1050), at this time, the feature can be in that the split flag syntax element can include a directional split flag indicating whether to perform vertical splitting on the current block, the split availability information can include BT horizontal split availability flag information indicating whether to perform horizontal splitting on the current block based on a binary tree (BT) structure, TT horizontal split availability flag information indicating whether to perform horizontal splitting on the current block based on a TT structure, BT vertical split availability flag information indicating whether to perform vertical splitting on the current block based on the BT structure, and TT vertical split availability flag information indicating whether to perform vertical splitting on the current block based on the TT structure; and the context index of the directional split flag is derived based on the BT horizontal split availability flag information, the TT horizontal split availability flag information, the BT vertical split availability flag information, and the TT vertical split availability flag information. That is, as Figure 10 and Figure 11 As exemplified in the present disclosure, when performing entropy coding according to CABAC based on QT structure, BT structure, and TT structure, a context model can be used to more efficiently perform encoding and decoding.

[0231] The exemplary embodiments described in the present disclosure can be implemented and executed by a processor, a microprocessor, a controller, or a chip. For example, the functional units exemplified in each figure can be implemented and executed by a computer, a processor, a microprocessor, a controller, or a chip.

[0232] In addition, the decoder and the encoder to which the exemplary embodiments of the disclosure are applied can be included in a multimedia broadcast transceiver, a mobile communication terminal, a home theater video device, a digital theater video device, a surveillance camera, a video chat device, a real-time communication device such as a video communication device, a mobile streaming device, a storage medium, a camcorder, a video on demand (VoD) service providing device, an over-the-top (OTT) video device, an Internet streaming service providing device, a three-dimensional (3D) video device, a picture phone video device, a medical video device, etc., and used to process a video signal or a data signal. For example, the over-the-top (OTT) video device can include a game console, a Blu-ray player, an Internet access TV, a home theater system, a smart phone, a tablet PC, a digital video recorder (DVR), etc.

[0233] In addition, the processing method to which the exemplary embodiments of the disclosure are applied can be generated in the form of a program executed by a computer, and stored in a computer-readable recording medium. Multimedia data having a data structure according to the disclosure can also be stored in a computer-readable recording medium. The computer-readable recording medium includes all kinds of storage devices and distributed storage devices in which computer-readable data are stored. The computer-readable recording medium can include, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. In addition, the computer-readable recording medium includes a medium implemented in the form of a carrier wave (e.g., transmission over the Internet). In addition, a bitstream generated by an encoding method can be stored in a computer-readable recording medium or can be transmitted through a wired or wireless communication network.

[0234] In addition, the exemplary embodiments of the disclosure can be implemented as a computer program product by program codes, and the program codes can be executed on a computer by the exemplary embodiments of the disclosure. The program codes can be stored on a computer-readable carrier.

[0235] Figure 12 is a content streaming system structure diagram according to exemplary embodiments.

[0236] A content streaming system to which the disclosure is applied can mainly include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.

[0237] The encoding server is used to compress content input from a multimedia input device such as a smart phone, a camera, and a camcorder into digital data to generate a bitstream, and transmit the bitstream to the streaming server. As another example, if a multimedia input device such as a smart phone, a camera, or a camcorder directly generates a bitstream, the encoding server can be omitted.

[0238] A bitstream can be generated by applying the encoding method or the bitstream generation method of the disclosure, and a streaming server can temporarily store the bitstream in a process of transmitting or receiving the bitstream.

[0239] A streaming server transmits multimedia data to a user device based on a request of the user through a web server, and the web server serves as a medium to inform the user of what service exists. When the user requests a desired service to the web server, the web server delivers the service to the streaming server, and the streaming server transmits multimedia data to the user. At this time, the content streaming system can include a separate control server, and in this case, the control server serves to control the instruction / response between the respective devices in the content streaming system.

[0240] The streaming server can receive content from a media storage and / or an encoding server. For example, if the content is received from the encoding server, the content can be received in real time. In this case, the streaming server can store a bitstream for a predetermined time to smoothly provide a streaming service.

[0241] Examples of the user device can include a mobile phone, a smart phone, a laptop computer, a digital broadcasting terminal, a personal digital assistant (PDA), a portable multimedia player (PMP), a navigation device, a touch screen PC, a tablet PC, an ultrabook, a wearable device (e.g., a watch-type terminal (smart watch), a glasses-type terminal (smart glasses), a head-mounted display (HMD)), a digital TV, a desktop computer, a digital signage, etc.

[0242] The respective servers in the content streaming system can operate as distributed servers, and in this case, the data received by each server can be processed in a distributed manner.

[0243] The above-mentioned method according to the disclosure can be implemented in the form of software, and the encoding device and / or the decoding device according to the disclosure can be included in a device performing image processing such as a TV, a computer, a smart phone, a set-top box, or a display device.

[0244] Each of the above-described parts, modules, or units can be a processor or hardware part that performs continuous implementation processing stored in a memory (or a storage unit). Each step described in the above-mentioned exemplary embodiments can be performed by the processor or the hardware part. The respective modules / blocks / units described in the above-mentioned exemplary embodiments can operate as hardware / processors. In addition, the method provided by the disclosure can be executed as code. The code can be written in a storage medium readable by a processor, and thus can be read by a processor provided by a device.

[0245] In the above-mentioned exemplary embodiments, the method is explained based on the flowchart by a series of steps or blocks, but the present disclosure is not limited to the order of the steps, and a certain step can occur in a different order or at the same time as the above-mentioned order or step. In addition, it can be understood by those of ordinary skill in the art that the steps shown in the flowchart are not exclusive and one or more steps of the flowchart can be removed or another step can be incorporated without affecting the scope of the present disclosure.

[0246] When implemented by software according to the exemplary embodiments of the present disclosure, the above-mentioned method can be implemented by a module (process, function, etc.) that performs the above-mentioned functions. The module can be stored in a memory and executed by a processor. The memory can be internal or external to the processor and connected to the processor via various well-known means. The processor can include an application-specific integrated circuit (ASIC), other chip sets, logic circuits, and / or data processing devices. The memory can include read-only memory (ROM), random access memory (RAM), flash memory, memory cards, storage media, and / or other storage devices.

Claims

1. A decoding device for image decoding, the decoding device comprising: Memory; as well as At least one processor connected to the memory, the at least one processor being configured to: The context index of the segmentation marker syntax element is derived based on the segmentation availability information of the current block; The context model is determined based on the derived context index; The values ​​of the segmentation marker syntax elements are decoded using the determined context model based on context-based adaptive binary arithmetic encoding CABAC. The current coding unit is derived from the current block based on the value of the segmentation flag syntax element; The prediction block is derived based on inter-frame prediction or intra-frame prediction for the current coding unit. as well as Reconstruction blocks are generated based on the predicted blocks. The segmentation flag syntax elements include: a directional segmentation flag indicating whether to vertically segment the current block. The segmentation availability information includes: BT horizontal segmentation availability flags related to whether horizontal segmentation of the current block based on a binary tree (BT) structure is allowed; TT horizontal segmentation availability flags related to whether horizontal segmentation of the current block based on a ternary tree (TT) structure is allowed; BT vertical segmentation availability flags related to whether vertical segmentation of the current block based on the BT structure is allowed; and TT vertical segmentation availability flags related to whether vertical segmentation of the current block based on the TT structure is allowed. Specifically, the context index of the directional segmentation flag is derived based on the BT horizontal segmentation availability flag information, the TT horizontal segmentation availability flag information, the BT vertical segmentation availability flag information, and the TT vertical segmentation availability flag information.

2. An encoding device for image encoding, the encoding device comprising: Memory; as well as At least one processor connected to the memory, the at least one processor being configured to: Derivate the segmentation marker syntax elements that represent the segmentation structure of the current block; The context index of the segmentation flag syntax element is derived based on the segmentation availability information of the current block; The context model is determined based on the derived context index; as well as The values ​​of the segmentation marker syntax elements are encoded using the determined context model based on CABAC. The segmentation flag syntax elements include: a directional segmentation flag indicating whether to vertically segment the current block. The segmentation availability information includes: BT horizontal segmentation availability flags related to whether horizontal segmentation of the current block based on a binary tree (BT) structure is allowed; TT horizontal segmentation availability flags related to whether horizontal segmentation of the current block based on a ternary tree (TT) structure is allowed; BT vertical segmentation availability flags related to whether vertical segmentation of the current block based on the BT structure is allowed; and TT vertical segmentation availability flags related to whether vertical segmentation of the current block based on the TT structure is allowed. Specifically, the context index of the directional segmentation flag is derived based on the BT horizontal segmentation availability flag information, the TT horizontal segmentation availability flag information, the BT vertical segmentation availability flag information, and the TT vertical segmentation availability flag information.

3. A device for transmitting image data, the device comprising: At least one processor is configured to obtain a bitstream, wherein the bitstream is generated based on the following operations: deriving a segmentation flag syntax element representing the segmentation structure of the current block; deriving a context index of the segmentation flag syntax element based on segmentation availability information of the current block; determining a context model based on the derived context index; and encoding the value of the segmentation flag syntax element based on CABAC using the determined context model; and A transmitter configured to send the data including the bit stream. The segmentation flag syntax elements include: a directional segmentation flag indicating whether to vertically segment the current block. The segmentation availability information includes: BT horizontal segmentation availability flags related to whether horizontal segmentation of the current block based on a binary tree (BT) structure is allowed; TT horizontal segmentation availability flags related to whether horizontal segmentation of the current block based on a ternary tree (TT) structure is allowed; BT vertical segmentation availability flags related to whether vertical segmentation of the current block based on the BT structure is allowed; and TT vertical segmentation availability flags related to whether vertical segmentation of the current block based on the TT structure is allowed. Specifically, the context index of the directional segmentation flag is derived based on the BT horizontal segmentation availability flag information, the TT horizontal segmentation availability flag information, the BT vertical segmentation availability flag information, and the TT vertical segmentation availability flag information.

Citation Information

Patent Citations

  • Method of processing video signal and device for same

    CN107431815A

  • Method and apparatus for encoding or decoding image using syntax signaling for adaptive weight prediction

    CN107787582A