본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니다. 본 명세서에서 사용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명의 기술적 사상을 한정하려는 의도로 사용되는 것은 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.As the present invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the invention to the specific embodiments. The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the spirit of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, terms such as "comprise" or "have" are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof described on the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.
한편, 본 발명에서 설명되는 도면상의 각 구성들은 비디오 인코딩 장치/디코딩 장치에서 서로 다른 특징적인 기능들에 관한 설명의 편의를 위해 독립적으로 도시된 것으로서, 각 구성들이 서로 별개의 하드웨어나 별개의 소프트웨어로 구현된다는 것을 의미하지는 않는다. 예컨대, 각 구성 중 두 개 이상의 구성이 합쳐져 하나의 구성을 이룰 수도 있고, 하나의 구성이 복수의 구성으로 나뉘어질 수도 있다. 각 구성이 통합 및/또는 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.On the other hand, each of the components in the drawings described in the present invention are shown independently for the convenience of description of the different characteristic functions in the video encoding apparatus / decoding apparatus, each component is a separate hardware or separate software It does not mean that it is implemented. For example, two or more of each configuration may be combined to form one configuration, or one configuration may be divided into a plurality of configurations. Embodiments in which each configuration is integrated and / or separated are also included in the scope of the present invention without departing from the spirit of the present invention.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성 요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성 요소에 대해서 중복된 설명은 생략한다.Hereinafter, with reference to the accompanying drawings, it will be described in detail a preferred embodiment of the present invention. Hereinafter, the same reference numerals are used for the same components in the drawings, and redundant description of the same components is omitted.
도 1은 본 발명의 일 실시예에 따른 비디오 인코딩 장치를 개략적으로 도시한 블록도이다. 비디오 인코딩/ 디코딩 방법 또는 장치는 스케일러빌리티(scalability)를 제공하지 않는 일반적인 비디오 인코딩/ 디코딩 방법 또는 장치의 확장(extension)에 의해 구현될 수 있으며, 도 1의 블록도는 스케일러블 비디오 인코딩 장치의 기초가 될 수 있는 비디오 인코딩 장치의 일 실시예를 나타낸다.1 is a block diagram schematically illustrating a video encoding apparatus according to an embodiment of the present invention. The video encoding / decoding method or apparatus may be implemented by an extension of a general video encoding / decoding method or apparatus that does not provide scalability, and the block diagram of FIG. 1 is based on a scalable video encoding apparatus. An embodiment of a video encoding apparatus that may be represented.
도 1을 참조하면, 인코딩 장치(100)는 픽처 분할부(105), 예측부(110), 변환부(115), 양자화부(120), 재정렬부(125), 엔트로피 인코딩부(130), 역양자화부(135), 역변환부(140), 필터부(145) 및 메모리(150)를 구비한다.Referring to FIG. 1, the encoding apparatus 100 may include a picture divider 105, a predictor 110, a transformer 115, a quantizer 120, a reordering unit 125, an entropy encoding unit 130, An inverse quantization unit 135, an inverse transform unit 140, a filter unit 145, and a memory 150 are provided.
픽처 분할부(105)는 입력된 픽처를 적어도 하나의 처리 단위 블록으로 분할할 수 있다. 이때, 처리 단위로서의 블록은 예측 유닛(Prediction Unit, 이하 ‘PU’라 함)일 수도 있고, 변환 유닛(Transform Unit, 이하 ‘TU’라 함)일 수도 있으며, 코딩 유닛(Coding Unit, 이하 ‘CU’라 함)일 수도 있다.The picture dividing unit 105 may divide the input picture into at least one processing unit block. In this case, the block as the processing unit may be a prediction unit (hereinafter referred to as a PU), a transform unit (hereinafter referred to as a TU), or a coding unit (hereinafter referred to as "CU"). It may be called.
픽처 분할부(105)에서 분할되는 처리 단위 블록들은 쿼드 트리(quad-tree) 구조를 가질 수 있다. The processing unit blocks divided by the picture divider 105 may have a quad-tree structure.
예측부(110)는 후술하는 바와 같이, 인터 예측을 수행하는 인터 예측부와 인트라 예측을 수행하는 인트라 예측부를 포함한다. 예측부(110)는, 픽처 분할부(105)에서 픽처의 처리 단위에 대하여 예측을 수행하여 예측 블록을 생성한다. 예측부(110)에서 픽처의 처리 단위는 CU일 수도 있고, TU일 수도 있고, PU일 수도 있다. 또한, 예측부(110)는 해당 처리 단위에 대하여 실시되는 예측이 인터 예측인지 인트라 예측인지를 결정하고, 각 예측 방법의 구체적인 내용(예컨대, 예측 모드 등)을 정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 예측 방법의 구체적인 내용이 정해지는 처리 단위는 다를 수 있다. 예컨대, 예측의 방법과 예측 모드 등은 PU 단위로 결정되고, 예측의 수행은 TU 단위로 수행될 수도 있다. The predictor 110 includes an inter predictor for performing inter prediction and an intra predictor for performing intra prediction, as described below. The prediction unit 110 generates a prediction block by performing prediction on the processing unit of the picture in the picture division unit 105. The processing unit of the picture in the prediction unit 110 may be a CU, a TU, or a PU. In addition, the prediction unit 110 may determine whether the prediction performed on the processing unit is inter prediction or intra prediction, and determine specific contents (eg, prediction mode, etc.) of each prediction method. In this case, the processing unit in which the prediction is performed and the processing unit in which the details of the prediction method and the prediction method are determined may be different. For example, the prediction method and the prediction mode may be determined in units of PUs, and the prediction may be performed in units of TUs.
인터 예측을 통해서는 현재 픽처의 이전 픽처 및/또는 이후 픽처 중 적어도 하나의 픽처의 정보를 기초로 예측을 수행하여 예측 블록을 생성할 수 있다. 또한, 인트라 예측을 통해서는 현재 픽처 내의 픽셀 정보를 기초로 예측을 수행하여 예측 블록을 생성할 수 있다. Through inter prediction, a prediction block may be generated by performing prediction based on information of at least one picture of a previous picture and / or a subsequent picture of the current picture. In addition, through intra prediction, a prediction block may be generated by performing prediction based on pixel information in a current picture.
인터 예측의 방법으로서, 스킵(skip) 모드, 머지(merge) 모드, MVP(Motion Vector Predtiction) 등을 이용할 수 있다. 인터 예측에서는 PU에 대하여, 참조 픽처를 선택하고 PU에 대응하는 참조 블록을 선택할 수 있다. 참조 블록은 정수 픽셀 단위로 선택될 수 있다. 이어서, 현재 PU와의 레지듀얼(residual) 신호가 최소화되며 움직임 벡터 크기 역시 최소가 되는 예측 블록이 생성된다.As a method of inter prediction, a skip mode, a merge mode, a motion vector prediction (MVP), and the like can be used. In inter prediction, a reference picture may be selected for a PU and a reference block corresponding to the PU may be selected. The reference block may be selected in integer pixel units. Subsequently, a prediction block is generated in which a residual signal with the current PU is minimized and the size of the motion vector is also minimized.
예측 블록은 정수 샘플 단위로 생성될 수도 있고, 1/2 픽셀 단위 또는 1/4 픽셀 단위와 같이 정수 이하 픽셀 단위로 생성될 수도 있다. 이때, 움직임 벡터 역시 정수 픽셀 이하의 단위로 표현될 수 있다. The prediction block may be generated in integer sample units, or may be generated in sub-pixel units such as 1/2 pixel unit or 1/4 pixel unit. In this case, the motion vector may also be expressed in units of integer pixels or less.
인터 예측을 통해 선택된 참조 픽처의 인덱스, 움직임 벡터(ex. Motion Vector Predictor), 레지듀얼 신호 등의 정보는 엔트로피 인코딩되어 디코딩 장치에 전달된다. 스킵 모드가 적용되는 경우에는 레지듀얼을 예측 블록을 복원 블록으로 할 수 있으므로, 레지듀얼을 생성, 변환, 양자화, 전송하지 않을 수 있다. Information such as an index, a motion vector predictor, and a residual signal of a reference picture selected through inter prediction is entropy encoded and delivered to the decoding apparatus. When the skip mode is applied, the residual may be used as the reconstructed block, and thus the residual may not be generated, transformed, quantized, or transmitted.
인트라 예측을 수행하는 경우에는, PU 단위로 예측 모드가 정해져서 PU 단위로 예측이 수행될 수 있다. 또한, PU 단위로 예측 모드가 정해지고 TU 단위로 인트라 예측이 수행될 수도 있다. When performing intra prediction, a prediction mode may be determined in units of PUs, and prediction may be performed in units of PUs. In addition, a prediction mode may be determined in units of PUs, and intra prediction may be performed in units of TUs.
인트라 예측에서 예측 모드는 33개의 방향성 예측 모드와 적어도 2개 이상의 비방향성 모드를 가질 수 있다. 비향성성 모드는 DC 예측 모드 및 플래이너 모드(Planar 모드)을 포함할 수 있다. In intra prediction, the prediction mode may have 33 directional prediction modes and at least two non-directional modes. The non-directional mode may include a DC prediction mode and a planner mode (Planar mode).
인트라 예측에서는 참조 샘플에 필터를 적용한 후 예측 블록을 생성할 수 있다. 이때, 참조 샘플에 필터를 적용할 것인지는 현재 블록의 인트라 예측 모드 및/또는 사이즈에 따라 결정될 수 있다.In intra prediction, a prediction block may be generated after applying a filter to a reference sample. In this case, whether to apply the filter to the reference sample may be determined according to the intra prediction mode and / or the size of the current block.
PU는 다양한 사이즈/형태의 블록일 수 있으며, 예컨대 인터 예측의 경우에 PU는 2N×2N 블록, 2N×N 블록, N×2N 블록, 또는 N×N 블록 (N은 정수) 등일 수 있다. 인트라 예측의 경우에 PU는 2N×2N 블록 또는 N×N 블록 (N은 정수) 등일 수 있다. 이때, N×N 블록 크기의 PU는 특정한 경우에만 적용하도록 설정할 수 있다. 예컨대 최소 크기 CU에 대해서만 NxN 블록 크기의 PU를 이용하도록 정하거나 인트라 예측에 대해서만 이용하도록 정할 수도 있다. 또한, 상술한 크기의 PU 외에, N×mN 블록, mN×N 블록, 2N×mN 블록 또는 mN×2N 블록 (m<1) 등의 PU를 더 정의하여 사용할 수도 있다.The PU may be a block of various sizes / types, for example, in the case of inter prediction, the PU may be a 2N × 2N block, a 2N × N block, an N × 2N block, an N × N block (N is an integer), or the like. In the case of intra prediction, the PU may be a 2N × 2N block or an N × N block (where N is an integer). In this case, the PU of the N × N block size may be set to apply only in a specific case. For example, the NxN block size PU may be used only for the minimum size CU or only for intra prediction. In addition to the above-described PUs, PUs such as N × mN blocks, mN × N blocks, 2N × mN blocks, or mN × 2N blocks (m <1) may be further defined and used.
생성된 예측 블록과 원본 블록 사이의 레지듀얼 값(레지듀얼 블록 또는 레지듀얼 신호)은 변환부(115)로 입력된다. 또한, 예측을 위해 사용한 예측 모드 정보, 움직임 벡터 정보 등은 레지듀얼 값과 함께 엔트로피 인코딩부(130)에서 인코딩되어 디코딩 장치에 전달된다. The residual value (the residual block or the residual signal) between the generated prediction block and the original block is input to the converter 115. In addition, the prediction mode information, the motion vector information, etc. used for the prediction are encoded by the entropy encoding unit 130 together with the residual value and transmitted to the decoding apparatus.
변환부(115)는 변환 블록 단위로 레지듀얼 블록에 대한 변환을 수행하고 변환 계수를 생성한다. The transform unit 115 performs transform on the residual block in units of transform blocks and generates transform coefficients.
변환 블록은 샘플들의 직사각형 블록으로서 동일한 변환이 적용되는 블록이다. 변환 블록은 변환 유닛(TU)일 수 있으며, 쿼드 트리(quad tree) 구조를 가질 수 있다. The transform block is a rectangular block of samples to which the same transform is applied. The transform block can be a transform unit (TU) and can have a quad tree structure.
변환부(115)는 레지듀얼 블록에 적용된 예측 모드와 블록의 크기에 따라서 변환을 수행할 수 있다. The transformer 115 may perform the transformation according to the prediction mode applied to the residual block and the size of the block.
예컨대, 레지듀얼 블록에 인트라 예측이 적용되었고 블록이 4x4의 레지듀얼 배열이라면, 레지듀얼 블록을 DST(Discrete Sine Transform)를 이용하여 변환하고, 그 외의 경우라면 레지듀얼 블록을 DCT(Discrete Cosine Transform)를 이용하여 변환할 수 있다. For example, if intra prediction is applied to a residual block and the block is a 4x4 residual array, the residual block is transformed using a discrete sine transform (DST), otherwise the residual block is transformed into a discrete cosine transform (DCT). Can be converted using.
변환부(115)는 변환에 의해 변환 계수들의 변환 블록을 생성할 수 있다. The transform unit 115 may generate a transform block of transform coefficients by the transform.
양자화부(120)는 변환부(115)에서 변환된 레지듀얼 값들, 즉 변환 계수들을 양자화하여 양자화된 변환 계수를 생성할 수 있다. 양자화부(120)에서 산출된 값은 역양자화부(135)와 재정렬부(125)에 제공된다. The quantization unit 120 may generate quantized transform coefficients by quantizing the residual values transformed by the transform unit 115, that is, the transform coefficients. The value calculated by the quantization unit 120 is provided to the inverse quantization unit 135 and the reordering unit 125.
재정렬부(125)는 양자화부(120)로부터 제공된 양자화된 변환 계수를 재정렬한다. 양자화된 변환 계수를 재정렬함으로써 엔트로피 인코딩부(130)에서의 인코딩 효율을 높일 수 있다. The reordering unit 125 rearranges the quantized transform coefficients provided from the quantization unit 120. By rearranging the quantized transform coefficients, the encoding efficiency of the entropy encoding unit 130 may be increased.
재정렬부(125)는 계수 스캐닝(Coefficient Scanning) 방법을 통해 2차원 블록 형태의 양자화된 변환 계수들을 1차원의 벡터 형태로 재정렬할 수 있다. The reordering unit 125 may rearrange the quantized transform coefficients in the form of a 2D block into a 1D vector form through a coefficient scanning method.
엔트로피 인코딩부(130)는 재정렬부(125)에 의해 재정렬된 양자화된 변환 계수들에 대한 엔트로피 인코딩을 수행할 수 있다. 엔트로피 인코딩에는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding) 등과 같은 인코딩 방법을 사용할 수 있다. 엔트로피 인코딩부(130)는 재정렬부(125) 및 예측부(110)로부터 전달받은 CU의 양자화된 변환 계수 정보 및 블록 타입 정보, 예측 모드 정보, 분할 단위 정보, PU 정보 및 전송 단위 정보, 움직임 벡터 정보, 참조 픽처 정보, 블록의 보간 정보, 필터링 정보 등 다양한 정보를 인코딩할 수 있다. The entropy encoding unit 130 may perform entropy encoding on the quantized transform coefficients rearranged by the reordering unit 125. Entropy encoding may include, for example, encoding methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC). The entropy encoding unit 130 may include quantized transform coefficient information, block type information, prediction mode information, partition unit information, PU information, transmission unit information, and motion vector of the CUs received from the reordering unit 125 and the prediction unit 110. Various information such as information, reference picture information, interpolation information of a block, and filtering information may be encoded.
또한, 엔트로피 인코딩부(130)는 필요한 경우에, 전송하는 파라미터 셋(parameter set) 또는 신택스에 일정한 변경을 가할 수도 있다. In addition, if necessary, the entropy encoding unit 130 may apply a constant change to a parameter set or syntax to be transmitted.
역양자화부(135)는 양자화부(120)에서 양자화된 값(양자화된 변환 계수)들을 역양자화하고, 역변환부(140)는 역양자화부(135)에서 역양자화된 값들을 역변환한다. The inverse quantizer 135 inversely quantizes the quantized values (quantized transform coefficients) in the quantizer 120, and the inverse transformer 140 inversely transforms the inverse quantized values in the inverse quantizer 135.
역양자화부(135) 및 역변환부(140)에서 생성된 레지듀얼 값과 예측부(110)에서 예측된 예측 블록이 합쳐져 복원 블록(Reconstructed Block)이 생성될 수 있다. The reconstructed block may be generated by combining the residual values generated by the inverse quantizer 135 and the inverse transform unit 140 and the prediction blocks predicted by the prediction unit 110.
도 1에서는 가산기를 통해서, 레지듀얼 블록과 예측 블록이 합쳐져 복원 블록이 생성되는 것으로 설명하고 있다. 이때, 가산기를 복원 블록을 생성하는 별도의 유닛(복원 블록 생성부)로 볼 수도 있다. In FIG. 1, it is described that a reconstructed block is generated by adding a residual block and a prediction block through an adder. In this case, the adder may be viewed as a separate unit (restore block generation unit) for generating a reconstruction block.
필터부(145)는 디블록킹 필터, ALF(Adaptive Loop Filter), SAO(Sample Adaptive Offset)를 복원된 픽처에 적용할 수 있다. The filter unit 145 may apply a deblocking filter, an adaptive loop filter (ALF), and a sample adaptive offset (SAO) to the reconstructed picture.
디블록킹 필터는 복원된 픽처에서 블록 간의 경계에 생긴 왜곡을 제거할 수 있다. ALF(Adaptive Loop Filter)는 디블록킹 필터를 통해 블록이 필터링된 후 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. ALF는 고효율을 적용하는 경우에만 수행될 수도 있다. SAO는 디블록킹 필터가 적용된 레지듀얼 블록에 대하여, 픽셀 단위로 원본 영상과의 오프셋 차이를 복원하며, 밴드 오프셋(Band Offset), 에지 오프셋(Edge Offset) 등의 형태로 적용된다. The deblocking filter may remove distortion generated at the boundary between blocks in the reconstructed picture. The adaptive loop filter (ALF) may perform filtering based on a value obtained by comparing the reconstructed image with the original image after the block is filtered through the deblocking filter. ALF may be performed only when high efficiency is applied. The SAO restores the offset difference from the original image on a pixel-by-pixel basis to the residual block to which the deblocking filter is applied, and is applied in the form of a band offset and an edge offset.
한편, 인터 예측에 사용되는 복원 블록에 대해서 필터부(145)는 필터링을 적용하지 않을 수도 있다. Meanwhile, the filter unit 145 may not apply filtering to the reconstructed block used for inter prediction.
메모리(150)는 필터부(145)를 통해 산출된 복원 블록 또는 픽처를 저장할 수 있다. 메모리(150)에 저장된 복원 블록 또는 픽처는 인터 예측을 수행하는 예측부(110)에 제공될 수 있다. The memory 150 may store the reconstructed block or the picture calculated by the filter unit 145. The reconstructed block or picture stored in the memory 150 may be provided to the predictor 110 that performs inter prediction.
도 2는 본 발명의 일 실시예에 따른 비디오 디코딩 장치를 개략적으로 나타낸 블록도이다. 도 1에서 상술한 바와 같이 스케일러블 비디오 인코딩/디코딩 방법 또는 장치는 스케일러빌리티를 제공하지 않는 일반적인 비디오 인코딩/디코딩 방법 또는 장치의 확장에 의해 구현될 수 있으며, 도 2의 블록도는 스케일러블 비디오 디코딩 장치의 기초가 될 수 있는 비디오 디코딩 장치의 일 실시예를 나타낸다2 is a block diagram schematically illustrating a video decoding apparatus according to an embodiment of the present invention. As described above with reference to FIG. 1, the scalable video encoding / decoding method or apparatus may be implemented by extension of a general video encoding / decoding method or apparatus that does not provide scalability, and the block diagram of FIG. 2 shows scalable video decoding. Represents an embodiment of a video decoding apparatus that may be the basis of the apparatus
도 2를 참조하면, 비디오 디코딩 장치(200)는 엔트로피 디코딩부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230), 필터부(235) 메모리(240)를 포함할 수 있다. Referring to FIG. 2, the video decoding apparatus 200 includes an entropy decoding unit 210, a reordering unit 215, an inverse quantization unit 220, an inverse transform unit 225, a prediction unit 230, and a filter unit 235. Memory 240 may be included.
비디오 인코딩 장치에서 영상 비트스트림이 입력된 경우, 입력된 비트스트림은 비디오 인코딩 장치에서 영상 정보가 처리된 절차에 따라서 디코딩될 수 있다.When an image bitstream is input in the video encoding apparatus, the input bitstream may be decoded according to a procedure in which image information is processed in the video encoding apparatus.
예컨대, 비디오 인코딩 장치에서 엔트로피 인코딩을 수행하기 위해 CAVLC 등의 가변 길이 부호화(Variable Length Coding: VLC, 이하 ‘VLC’ 라 함)가 사용된 경우에, 엔트로피 디코딩부(210)도 인코딩 장치에서 사용한 VLC 테이블과 동일한 VLC 테이블로 구현하여 엔트로피 디코딩을 수행할 수 있다. 또한, 비디오 인코딩 장치에서 엔트로피 인코딩을 수행하기 위해 CABAC을 이용한 경우에, 엔트로피 디코딩부(210)는 이에 대응하여 CABAC을 이용한 엔트로피 디코딩을 수행할 수 있다.For example, when variable length coding (VLC, hereinafter called 'VLC') is used to perform entropy encoding in the video encoding apparatus, the entropy decoding unit 210 also uses the VLC. Entropy decoding may be performed by implementing the same VLC table as the table. In addition, when CABAC is used to perform entropy encoding in the video encoding apparatus, the entropy decoding unit 210 may correspondingly perform entropy decoding using CABAC.
엔트로피 디코딩부(210)에서 디코딩된 정보 중 예측 블록을 생성하기 위한 정보는 예측부(230)로 제공되고, 엔트로피 디코딩부(210)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수는 재정렬부(215)로 입력될 수 있다. Information for generating the prediction block among the information decoded by the entropy decoding unit 210 is provided to the predictor 230, and a residual value where entropy decoding is performed by the entropy decoding unit 210, that is, a quantized transform coefficient It may be input to the reordering unit 215.
재정렬부(215)는 엔트로피 디코딩부(210)에서 엔트로피 디코딩된 비트스트림의 정보, 즉 양자화된 변환 계수를 인코딩 장치에서 재정렬한 방법을 기초로 재정렬할 수 있다. The reordering unit 215 may reorder the information of the bitstream entropy decoded by the entropy decoding unit 210, that is, the quantized transform coefficients, based on the reordering method in the encoding apparatus.
재정렬부(215)는 1차원 벡터 형태로 표현된 계수들을 다시 2차원의 블록 형태의 계수로 복원하여 재정렬할 수 있다. 재정렬부(215)는 현재 블록(변환 블록)에 적용된 예측 모드와 변환 블록의 크기를 기반으로 계수에 대한 스캐닝을 수행하여 2 차원 블록 형태의 계수(양자화된 변환 계수) 배열을 생성할 수 있다. The reordering unit 215 may reorder the coefficients expressed in the form of a one-dimensional vector by restoring the coefficients in the form of a two-dimensional block. The reordering unit 215 may generate an array of coefficients (quantized transform coefficients) in the form of a 2D block by scanning coefficients based on the prediction mode applied to the current block (transform block) and the size of the transform block.
역양자화부(220)는 인코딩 장치에서 제공된 양자화 파라미터와 재정렬된 블록의 계수값을 기초로 역양자화를 수행할 수 있다. The inverse quantization unit 220 may perform inverse quantization based on the quantization parameter provided by the encoding apparatus and the coefficient values of the rearranged block.
역변환부(225)는 비디오 인코딩 장치에서 수행된 양자화 결과에 대해, 인코딩 장치의 변환부가 수행한 DCT 및 DST에 대해 역DCT 및/또는 역DST를 수행할 수 있다. The inverse transform unit 225 may perform inverse DCT and / or inverse DST on the DCT and the DST performed by the transform unit of the encoding apparatus with respect to the quantization result performed by the video encoding apparatus.
역변환은 인코딩 장치에서 결정된 전송 단위 또는 영상의 분할 단위를 기초로 수행될 수 있다. 인코딩 장치의 변환부에서 DCT 및/또는 DST는 예측 방법, 현재 블록의 크기 및 예측 방향 등 복수의 정보에 따라 선택적으로 수행될 수 있고, 디코딩 장치의 역변환부(225)는 인코딩 장치의 변환부에서 수행된 변환 정보를 기초로 역변환을 수행할 수 있다. The inverse transformation may be performed based on a transmission unit determined by the encoding apparatus or a division unit of an image. The DCT and / or DST in the encoding unit of the encoding apparatus may be selectively performed according to a plurality of pieces of information, such as a prediction method, a size and a prediction direction of the current block, and the inverse transform unit 225 of the decoding apparatus is configured in the transformation unit of the encoding apparatus. Inverse transformation may be performed based on the performed transformation information.
예측부(230)는 엔트로피 디코딩부(210)에서 제공된 예측 블록 생성 관련 정보와 메모리(240)에서 제공된 이전에 디코딩된 블록 및/또는 픽처 정보를 기초로 예측 블록을 생성할 수 있다. The prediction unit 230 may generate the prediction block based on the prediction block generation related information provided by the entropy decoding unit 210 and the previously decoded block and / or picture information provided by the memory 240.
현재 PU에 대한 예측 모드가 인트라 예측(intra prediction) 모드인 경우에, 현재 픽처 내의 픽셀 정보를 기초로 예측 블록을 생성하는 인트라 예측을 수행할 수 있다.When the prediction mode for the current PU is an intra prediction mode, intra prediction for generating a prediction block based on pixel information in the current picture may be performed.
현재 PU에 대한 예측 모드가 인터 예측(inter prediction) 모드인 경우에, 현재 픽처의 이전 픽처 또는 이후 픽처 중 적어도 하나의 픽처에 포함된 정보를 기초로 현재 PU에 대한 인터 예측을 수행할 수 있다. 이때, 비디오 인코딩 장치에서 제공된 현재 PU의 인터 예측에 필요한 움직임 정보, 예컨대 움직임 벡터, 참조 픽처 인덱스 등에 관한 정보는 인코딩 장치로부터 수신한 스킵 플래그, 머지 플래그 등을 확인하고 이에 대응하여 유도될 수 있다. When the prediction mode for the current PU is an inter prediction mode, inter prediction on the current PU may be performed based on information included in at least one of a previous picture or a subsequent picture of the current picture. In this case, motion information required for inter prediction of the current PU provided by the video encoding apparatus, for example, a motion vector, a reference picture index, and the like, may be derived by checking a skip flag, a merge flag, and the like received from the encoding apparatus.
복원 블록은 예측부(230)에서 생성된 예측 블록과 역변환부(225)에서 제공된 레지듀얼 블록을 이용해 생성될 수 있다. 도 2에서는 가산기에서 예측 블록과 레지듀얼 블록이 합쳐져 복원 블록이 생성되는 것으로 설명하고 있다. 이때, 가산기를 복원 블록을 생성하는 별도의 유닛(복원 블록 생성부)로 볼 수 있다. The reconstruction block may be generated using the prediction block generated by the predictor 230 and the residual block provided by the inverse transform unit 225. In FIG. 2, it is described that the reconstructed block is generated by combining the prediction block and the residual block in the adder. In this case, the adder may be viewed as a separate unit (restore block generation unit) for generating a reconstruction block.
스킵 모드가 적용되는 경우에는 레지듀얼이 전송되지 않으며 예측 블록을 복원 블록으로 할 수 있다.When the skip mode is applied, the residual is not transmitted and the prediction block may be a reconstruction block.
복원된 블록 및/또는 픽처는 필터부(235)로 제공될 수 있다. 필터부(235)는 복원된 블록 및/또는 픽처에 디블록킹 필터링, SAO(Sample Adaptive Offset) 및/또는 ALF 등을 적용할 수 있다. The reconstructed block and / or picture may be provided to the filter unit 235. The filter unit 235 may apply deblocking filtering, sample adaptive offset (SAO), and / or ALF to the reconstructed block and / or picture.
메모리(240)는 복원된 픽처 또는 블록을 저장하여 참조 픽처 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽처를 출력부로 제공할 수 있다.The memory 240 may store the reconstructed picture or block to use as a reference picture or reference block and provide the reconstructed picture to the output unit.
디코딩 장치(200)에 포함되어 있는 엔트로피 디코딩부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230), 필터부(235) 및 메모리(240) 중 영상의 디코딩에 직접적으로 관련된 구성요소들, 예컨대, 엔트로피 디코딩부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230), 필터부(235) 등을 다른 구성요소와 구분하여 디코더 또는 디코딩부로 표현할 수 있다. Entropy decoding unit 210, reordering unit 215, inverse quantization unit 220, inverse transform unit 225, predictor 230, filter unit 235, and memory 240 included in the decoding device 200. ) Components directly related to the decoding of an image, for example, an entropy decoding unit 210, a reordering unit 215, an inverse quantization unit 220, an inverse transform unit 225, a prediction unit 230, and a filter unit ( 235) and the like may be distinguished from other components by a decoder or a decoder.
또한, 디코딩 장치(200)는 비트스트림에 포함되어 있는 인코딩된 영상에 관련된 정보를 파싱하는 도시하지 않은 파싱부를 더 포함할 수 있다. 파싱부는 엔트로피 디코딩부(210)를 포함할 수도 있고, 엔트로피 디코딩부(210)에 포함될 수도 있다. 이러한 파싱부는 또한 디코딩부의 하나의 구성요소로 구현될 수도 있다.In addition, the decoding apparatus 200 may further include a parsing unit (not shown) which parses information related to an encoded image included in the bitstream. The parsing unit may include the entropy decoding unit 210 or may be included in the entropy decoding unit 210. Such a parser may also be implemented as one component of the decoder.
도 3은 본 발명이 적용될 수 있는, 복수 계층을 이용한 스케일러블 비디오 코딩 구조의 일 실시예를 개략적으로 나타내는 개념도이다. 도 3에서 GOP(Group of Picture)는 픽처군 즉, 픽처의 그룹을 나타낸다.3 is a conceptual diagram schematically illustrating an embodiment of a scalable video coding structure using multiple layers to which the present invention can be applied. In FIG. 3, a GOP (Group of Picture) represents a picture group, that is, a group of pictures.
영상 데이터를 전송하기 위해서는 전송 매체가 필요하며, 그 성능은 다양한 네트워크 환경에 따라 전송 매체별로 차이가 있다. 이러한 다양한 전송 매체 또는 네트워크 환경에의 적용을 위해 스케일러블 비디오 코딩 방법이 제공될 수 있다.In order to transmit image data, a transmission medium is required, and its performance varies depending on the transmission medium according to various network environments. A scalable video coding method may be provided for application to such various transmission media or network environments.
스케일러블 비디오 코딩 방법은 계층(layer) 간의 텍스쳐 정보, 움직임 정보, 잔여 신호 등을 활용하여 계층 간 중복성을 제거하여 인코딩 및 디코딩 성능을 높이는 코딩 방법이다. 스케일러블 비디오 코딩 방법은, 전송 비트율, 전송 에러율, 시스템 자원 등의 주변 조건에 따라, 공간적, 시간적, 화질적 관점에서 다양한 스케일러빌리티를 제공할 수 있다.The scalable video coding method is a coding method that improves encoding and decoding performance by removing redundancy between layers by using texture information, motion information, and residual signals between layers. The scalable video coding method may provide various scalability in terms of spatial, temporal, and image quality according to ambient conditions such as a transmission bit rate, a transmission error rate, and a system resource.
스케일러블 비디오 코딩은, 다양한 네트워크 상황에 적용 가능한 비트스트림을 제공할 수 있도록, 복수 계층(multiple layers) 구조를 사용하여 수행될 수 있다. 예를 들어 스케일러블 비디오 코딩 구조는, 일반적인 영상 디코딩 방법을 이용하여 영상 데이터를 압축하여 처리하는 기본 계층을 포함할 수 있고, 기본 계층의 디코딩 정보 및 일반적인 영상 디코딩 방법을 함께 사용하여 영상 데이터를 압축 처리하는 향상 계층을 포함할 수 있다.Scalable video coding may be performed using multiple layers structure to provide a bitstream applicable to various network situations. For example, the scalable video coding structure may include a base layer that compresses and processes image data using a general image decoding method, and compresses the image data using both the decoding information of the base layer and a general image decoding method. May include an enhancement layer for processing.
여기서, 계층(layer)은 공간(spatial, 예를 들어, 영상 크기), 시간(temporal, 예를 들어, 디코딩 순서, 영상 출력 순서, 프레임 레이트), 화질, 복잡도 등을 기준으로 구분되는 영상 및 비트스트림(bitstream)의 집합을 의미한다. 또한 기본 계층은 참조 계층 또는 Base layer, 향상 계층은 Enhancement layer를 의미할 수 있다. 또한 복수의 계층들은 서로 간에 종속성을 가질 수도 있다.Here, the layer is an image and a bit divided based on spatial (eg, image size), temporal (eg, decoding order, image output order, frame rate), image quality, complexity, and the like. Means a set of bitstreams. In addition, the base layer may mean a reference layer or a base layer, and the enhancement layer may mean an enhancement layer. In addition, the plurality of layers may have a dependency between each other.
도 3을 참조하면, 예를 들어 기본 계층은 SD(standard definition), 15Hz의 프레임율, 1Mbps 비트율로 정의될 수 있고, 제1 향상 계층은 HD(high definition), 30Hz의 프레임율, 3.9Mbps 비트율로 정의될 수 있으며, 제2 향상 계층은 4K-UHE(ultra high definition), 60Hz의 프레임율, 27.2Mbps 비트율로 정의될 수 있다. 상기 포맷(format), 프레임율, 비트율 등은 하나의 실시예로서, 필요에 따라 달리 정해질 수 있다. 또한 사용되는 계층의 수도 본 실시예에 한정되지 않고 상황에 따라 달리 정해질 수 있다. Referring to FIG. 3, for example, the base layer may be defined as a standard definition (SD), a frame rate of 15 Hz, and a 1 Mbps bit rate, and the first enhancement layer may be a high definition (HD), a frame rate of 30 Hz, and a 3.9 Mbps bit rate. The second enhancement layer may be defined as an ultra high definition (4K-UHE), a frame rate of 60 Hz, and a bit rate of 27.2 Mbps. The format, frame rate, bit rate, etc. are exemplary and may be determined differently as necessary. In addition, the number of hierarchies used is not limited to this embodiment and may be determined differently according to a situation.
예를 들어, 전송 대역폭이 4Mbps라면 상기 제1향상계층 HD의 프레임 레이트를 줄여서 15Hz이하로 전송할 수 있다. 스케일러블 비디오 코딩 방법은 상기 도 3의 실시예에서 상술한 방법에 의해 시간적, 공간적, 화질적 스케일러빌리티를 제공할 수 있다.For example, if the transmission bandwidth is 4 Mbps, the frame rate of the first enhancement layer HD may be reduced and transmitted at 15 Hz or less. The scalable video coding method can provide temporal, spatial and image quality scalability by the method described above in the embodiment of FIG. 3.
스케일러블 비디오 코딩은 이하 인코딩 관점에서는 스케일러블 비디오 인코딩, 디코딩 관점에서는 스케일러블 비디오 디코딩과 동일한 의미를 가진다.Scalable video coding has the same meaning as scalable video encoding from an encoding point of view and scalable video decoding from a decoding point of view.
상술한 바와 같이, 이종의 통신망 및 다양한 단말로 인해 스케일러빌리티는 현재 비디오 포맷의 중요한 기능이 되고 있다. As described above, due to heterogeneous communication networks and various terminals, scalability has become an important function of the current video format.
한편, 복수의 계층을 포함하는 비트스트림은 패킷 스위칭 네트워크(packet-switching network)를 통하여 비디오의 적응적 전송을 용이하게 하는 NAL (Network Abstraction Layer) 유닛들로 구성된다. 복수의 계층과 유사하게 비트스트림 내 복수의 다시점 영상을 포함하는 멀티 뷰 비디오 코딩(multi-view video coding)에서 복수의 시점간의 관계는 복수의 레이어를 지원하는 비디오에서의 공간적 계층(spatial layer)간의 관계와 유사하다. On the other hand, a bitstream including a plurality of layers is composed of Network Abstraction Layer (NAL) units that facilitate the adaptive transmission of video through a packet-switching network. Similar to the plurality of layers, in multi-view video coding including a plurality of multi-view images in a bitstream, the relationship between the plurality of viewpoints is a spatial layer in video supporting the plurality of layers. Similar to the relationship between.
도 4는 디코딩 장치에 처리되는 코딩된 영상에 대한 계층 구조를 도시한 도면이다. 4 is a diagram illustrating a hierarchical structure of coded images processed by a decoding apparatus.
코딩된 영상은 영상의 디코딩 처리 및 그 자체를 다루는 VCL(video coding layer, 비디오 코딩 계층)과 부호화된 정보를 전송하고 저장하는 하위 시스템의 사이에 있는 NAL(network abstraction layer, 네트워크 추상 계층)로 구분되어 있다. A coded picture is divided into a network abstraction layer (NAL) between a video coding layer (VCL) that handles decoding of the picture and itself, and a subsystem that transmits and stores coded information. It is.
NAL의 기본 단위인 NAL 유닛은 코딩된 영상을 소정의 규격에 따른 파일 포맷, RTP(Real-time Transport Protocol, TS(Transport Stream) 등과 같은 하위 시스템의 비트열에 매핑시키는 역할을 한다. The NAL unit, which is a basic unit of the NAL, serves to map a coded image to a bit string of a subsystem such as a file format, a real-time transport protocol (RTP), or the like according to a predetermined standard.
한편, VCL은 시퀀스와 픽처 등의 헤더에 해당하는 파라미터 세트(픽처 파라미터 세트, 시퀀스 파라미터 세트, 비디오 파라미터 세트) 및 영상의 디코딩 과정에 부가적으로 필요한 SEI(Supplemental Enhancement Information) 메세지도 영상에 대한 정보(슬라이스 데이터)와 분리되어 있다. 영상에 대한 정보를 지닌 VCL은 슬라이스 데이터와 슬라이스 헤더로 이루어진다. On the other hand, the VCL is a parameter set (picture parameter set, sequence parameter set, video parameter set) corresponding to a header such as a sequence and a picture, and a Supplemental Enhancement Information (SEI) message additionally necessary for the decoding process of the image. It is separated from (slice data). A VCL with information about an image consists of slice data and a slice header.
도시된 바와 같이, NAL 유닛은 NAL 유닛 헤더와 VCL에서 생성된 RBSP(Raw Byte Sequence Payload, 동영상 압축의 결과 데이터)의 두 부분으로 구성된다. NAL 유닛 헤더에는 해당 NAL 유닛의 타입에 대한 정보가 포함되어 있다. As shown, the NAL unit consists of two parts: a NAL unit header and a raw byte sequence payload (RBSP) generated in the VCL. The NAL unit header includes information on the type of the corresponding NAL unit.
NAL 유닛은 VCL에서 생성된 RBSP의 따라 VCL NAL 유닛과 non-VCL NAL 유닛으로 구분된다. VCL NAL 유닛은 영상에 대한 정보를 포함하고 있는 NAL 유닛을 의미하고, non-VCL NAL 유닛은 영상을 디코딩하기 위하여 필요한 정보(파라미터 세트 또는 SEI 메세지)를 포함하고 있는 NAL 유닛을 나타낸다. The NAL unit is divided into a VCL NAL unit and a non-VCL NAL unit according to the RBSP generated in the VCL. The VCL NAL unit refers to a NAL unit containing information about an image, and the non-VCL NAL unit represents a NAL unit including information (a parameter set or an SEI message) necessary for decoding the image.
VCL NAL 유닛은 해당 NAL 유닛이 포함하는 픽처의 성질 및 종류 등에 따라 여러 타입으로 나뉠 수 있다. The VCL NAL unit may be divided into various types according to the nature and type of pictures included in the corresponding NAL unit.
한편, 콘텐츠 전달경로(content delivery path)에서의 모든 노드에서 비트스트림을 효과적이며 효율적으로 변환하기 위해서는 비트스트림의 스케일러빌리티 정보가 매우 중요하다. 현재 단일 레이어에 대한 비디오 코딩에 대한 표준(high efficiency video coding)에서는 NAL 유닛 헤더(header)에 계층 정보와 관련된 2개의 필드인 temporal_id와 reserved_one_5bits의 정보가 포함된다. 3 bits의 길이를 갖는 temporal_id는 비디오 비트스트림의 시간적 레이어(temporal layer)를 나타내며, reserved_one_5bits는 추후에 다른 계층 정보를 나타내기 위한 영역에 해당한다. 시간적 레이어는 VCL NAL 유닛으로 구성된 시간적으로 스케일될 수 있는 비트스트림의 레이어를 의미하며, 시간적 레이어는 특정의 temporal_id 값을 갖는다.Meanwhile, scalability information of the bitstream is very important for effectively and efficiently converting the bitstream at all nodes in the content delivery path. In current high efficiency video coding for a single layer, the NAL unit header includes two fields related to layer information, temporal_id and reserved_one_5bits. The temporal_id having a length of 3 bits indicates a temporal layer of the video bitstream, and reserved_one_5bits corresponds to an area for later indicating other layer information. The temporal layer refers to a layer of a temporally scalable bitstream composed of VCL NAL units, and the temporal layer has a specific temporal_id value.
본 발명은 복수의 레이어를 지원할 수 잇는 비트스트림 내에서 영상의 추출 정보(extraction) 및 계층적 정보(scalability information)를 효과적으로 기술하고, 이를 시그널링 하기 위한 방법 및 이를 구현하는 장치에 대하여 것이다.The present invention relates to a method for effectively describing extraction information and scalability information of an image in a bitstream capable of supporting a plurality of layers, a method for signaling the same, and an apparatus for implementing the same.
이하에서는 설명의 편의를 위하여 비트스트림을 2가지 타입으로 나누어 설명한다. 비트스트림이 시간 스케일러빌리티(temporal scalability)만을 지원하는 경우, 이를 기본 타입(base type)으로 표현하고, 비트스트림이 시간을 포함한 공간/화질/시점을 지원하는 스케일러빌리티를 가질 수 있는 경우 확장 타입(extended type)으로 표현한다. In the following description, the bitstream is divided into two types for convenience of description. If the bitstream supports only temporal scalability, express it as a base type, and if the bitstream can have scalability to support space / quality / time including time, extended type).
표 1은 본 발명의 일 실시예에 따라 인코딩 장치에서 인코딩되어 디코딩 장치에서 디코딩되는 NAL 유닛 헤더의 신택스를 나타낸다.Table 1 shows the syntax of the NAL unit header encoded in the encoding apparatus and decoded in the decoding apparatus according to an embodiment of the present invention.
<표 1>TABLE 1
표 1에서, NAL 유닛 헤더에 포함되어 있는 정보 중 forbidden_zero_bit는 0이 되어야 한다. In Table 1, of the information contained in the NAL unit header.forbidden_zero_bitIs Should be zero.
nal_unit_type은 해당 NAL 유닛에 포함되어 있는 RBSP의 데이터 구조를 의미하는 것으로 RBSP의 데이터 구조에 따라 복수의 타입이 존재한다. nal_unit_type means the data structure of the RBSP included in the corresponding NAL unit. There are a plurality of types according to the data structure of the RBSP.
nal_ref_flag는 인코딩 할 당시 해당 NAL 유닛이 전체 비트스트림 상에서 비 참조 픽처인지 참조 픽처인지 여부를 나타내는 정보를 나타내는 플래그이다. nal_ref_flag가 1이면, NAL 유닛은 SPS(sequence parameter set), PPS(picture parameter set), APS(adaptation parameter set) 또는 참조 픽처의 슬라이스를 포함하는 것을 의미하고, nal_ref_flag가 0이면 NALU는 비 참조 픽처의 일부 혹은 전부를 포함하는 슬라이스를 포함하는 것을 의미한다. nal_ref_flag is a flag indicating information indicating whether a corresponding NAL unit is a non-reference picture or a reference picture on the entire bitstream at the time of encoding. If nal_ref_flag is 1, it means that the NAL unit includes a sequence parameter set (SPS), picture parameter set (PPS), adaptation parameter set (APS), or slice of a reference picture. If nal_ref_flag is 0, NALU indicates It means to include some or all of the slices.
reserved_one_5bits은 3D 영상 코딩 확장 타입 등과 같이 스케일러빌러티를 지원하는 확장 타입에서 활용될 수 있는 정보로서 코딩된 영상 시퀀스(coded video sequence, CVS) 내 존재하는 추가적인 레이어들을 식별하기 위하여 사용된다. 레이어는 공간적으로 스케일되는 레이어(spatial scalable layer), 화질적으로 스케일되는 레이어(a quality scalable layer), 텍스쳐 뷰(texture view) 또는 깊이 뷰(depth view) 등일 수 있다. reserved_one_5bits is information that can be utilized in an extension type that supports scalability, such as a 3D video coding extension type, and is used to identify additional layers present in a coded video sequence (CVS). The layer may be a spatially scalable layer, a quality scalable layer, a texture view, a depth view, or the like.
비트스트림이 기본 타입일 경우, reserved_one_5bits은 0이 되고, 비트스트림의 디코딩 단위에 포함되어 있는 데이터 양을 결정하는 사용될 수 있다.If the bitstream is a basic type, reserved_one_5bits becomes 0 and may be used to determine the amount of data included in the decoding unit of the bitstream.
temporal_id는 NAL 유닛에 대한 시간적 레이어의 식별자를 의미한다. temporal_idIs The identifier of the temporal layer for the NAL unit.
layer_id는 NAL 유닛에 대한 레이어 식벌자를 의미하며 하나의 억세스 유닛에 대한 모든 VCL NAL 유닛은 동일한 layer_id 값을 갖는다. layer_id는 8 비트로 시그널링 될 수 있다. layer_id means a layer earner for the NAL unit and all VCL NAL units for one access unit have the same layer_id value. layer_id may be signaled with 8 bits.
표 1의 NAL 유닛 헤더는 nal_unit_type, nal_ref_flag, reserved_one_5bits, temporal_id, layer_id 등의 정보를 포함하고 있지만, NAL 유닛 헤더의 정보를 최소화하여 전송 효율과 코딩/디코딩 효율을 높일 수도 있다. The NAL unit header of Table 1 includes information such as nal_unit_type, nal_ref_flag, reserved_one_5bits, temporal_id, and layer_id. However, the NAL unit header can minimize transmission information and improve coding and decoding efficiency.
즉, NAL 유닛 헤더 레벨에서 필요한 최소한의 정보로서, 예컨대, nal_unit_type, temporal_id, layer_id 등이 NAL 유닛 헤더에 포함되고, 나머지 정보들은 다른 신택스 레벨, 예컨대 NAL 유닛에서 NAL 유닛 헤더를 참조하여 전송되도록 할 수도 있다. That is, as minimum information required at the NAL unit header level, for example, nal_unit_type, temporal_id, layer_id, etc. may be included in the NAL unit header, and the remaining information may be transmitted with reference to the NAL unit header at another syntax level, for example, the NAL unit. have.
표 1에 나타난 바와 같이, nal_unit_type이 단일 계층의 비트스트림을 지원하는 경우, 즉, 비트스트림이 기본 타입이면, reserved_one_5bits과 temporal_id 이 순차적으로 인코딩 및 디코딩되고, 만약 비트스트림이 기본 타입이 아닌 확장 타입이면 layer_id가 인코딩되어 디코딩 장치로 전송된다.As shown in Table 1, when nal_unit_type supports a single layer bitstream, that is, if the bitstream is a basic type, reserved_one_5bits and temporal_id are encoded and decoded sequentially, and if the bitstream is an extended type other than the basic type. The layer_id is encoded and transmitted to the decoding device.
예를 들어, 베이스 레이어 즉, 기본 레이어에서는 reserved_one_5bits 및 temporal_id 순으로 시그널링 되고, 확장 레이어에서는 reserved_one_5bits와 temporal_id이 결합된 형태의 layer_id가 시그널링 될 수 있다. For example, the base layer, that is, the base layer, may be signaled in order of reserved_one_5bits and temporal_id, and in the extended layer, layer_id having a form in which reserved_one_5bits and temporal_id are combined may be signaled.
layer_id는 NAL 유닛 헤더뿐만 아니라 비디오 파라미터 세트(Video Parameter Set, VPS)에서 추가적으로 시그널링 될 수 있다.The layer_id may be additionally signaled in the video parameter set (VPS) as well as the NAL unit header.
한편, NAL 유닛 헤더의 크기는 2 바이트(byte)로 고정되었고, 이러한 2 바이트 공간 내에서 요구되는 모든 정보를 전송해야 한다. Meanwhile, the size of the NAL unit header is fixed at 2 bytes, and all information required in this 2 byte space must be transmitted.
기본 타입의 비트스트림의 경우 시간적 스케일러빌러티(temporal scalability) 만을 지원하고, 이는 temporal_id 신택스에 의하여 설명된다. 하지만, 확장 타입의 경우, 레이어 정보 또는 의존 관계(dependency) 등과 같은 정보가 NAL 유닛 헤더에 포함되어야 하고, 이러한 정보를 전송하기 위하여 기본 타입에서는 사용되지 않았던 reserved_one_5bits가 사용된다.For the basic type bitstream, only temporal scalability is supported, which is described by the temporal_id syntax. However, in the extended type, information such as layer information or dependency should be included in the NAL unit header, and reserved_one_5bits, which was not used in the basic type, is used to transmit such information.
reserved_one_5bits는 5비트 신호로 확장 타입에서 요구되는 모든 정보를 전송하는데 부족할 수 있다. 즉, 5비트로 모두 32개의 레이어의 표현이 가능하지만, 비트스트림이 많은 개수의 스케일러빌러티 타입을 지원하거나 복수의 뷰 레이어를 지원하는 경우 모든 레이어 식별하는데 5 비트는 부족할 수 있다. reserved_one_5bits may be insufficient to transmit all information required by the extension type as a 5-bit signal. That is, 32 bits can be represented by all 5 bits, but when the bitstream supports a large number of scalability types or supports a plurality of view layers, 5 bits may be insufficient for identifying all layers.
또한, 기존에는 NAL 유닛 헤더에서 temporal_id가 reserved_one_5bits 보다 먼저 시그널링 되었다, 다시 말해, 시간적 레이어를 식별하기 위한 temporal_id가 먼저 시그널링 되고, 그 뒤에 확장 타입에 사용되는 레이어의 식별을 위한 reserved_one_5bits가 시그널링 되었다. 시간적 스케일러빌러티와 다른 타입의 스케일러빌러티 간의 이러한 분리는 혼란을 초래할 수 있다. 시간적 스케일러빌러티는 스케일러빌러티의 하나의 형태일 수 있고, 이런 경우, 시간적 스케일러빌러티는 다른 스케일러빌러티와 유사하게 취급될 수 있다. In addition, conventionally, temporal_id is signaled before reserved_one_5bits in the NAL unit header. In other words, temporal_id for identifying a temporal layer is signaled first, followed by reserved_one_5bits for identifying a layer used for an extension type. This separation between temporal scalability and other types of scalability can lead to confusion. Temporal scalability may be one form of scalability, in which case temporal scalability may be treated similarly to other scalability.
또한, reserved_one_5bits 전에 temporal_id을 시그널링하는 경우, 시간적 스케일러빌러티를 설명하기 위하여 3 비트가 강제적(mandatory)으로 할당된다. 하지만, 시간적 스케일러빌러티는 항상 사용되는 것이 아니고, 만약 비트스트림이 확장 타입인 경우, 시간적 스케일러빌러티는 지원하지 않고 다른 타입의 스케일러빌러티를 지원할 수 있다. 이런 경우, 시간적 스케일러빌러티에 할당되었던 3 비트는 불필요한 정보가 될 수 있다. 이처럼 불필요한 temporal_id는 다른 스케일러빌러티를 설명하는데 사용될 수 있다. In addition, when temporal_id is signaled before reserved_one_5bits, 3 bits are mandatoryly allocated to account for temporal scalability. However, temporal scalability is not always used, and if the bitstream is an extended type, temporal scalability may not be supported and may support other types of scalability. In this case, three bits that have been allocated to temporal scalability may be unnecessary information. This unnecessary temporal_id can be used to describe other scalability.
이러한 점을 고려하여, 본 발명은 temporal_id를 확장 타입의 비트스트림에서 레이어를 식별하는 하나의 정보로 사용한다. 즉, 확장 타입에서 레이어의 식별을 위하여 reserved_one_5bits뿐만 아니라 reserved_one_5bits와 temporal_id를 결합시켜 사용한다. In view of this, the present invention uses temporal_id as one piece of information for identifying a layer in the extended type bitstream. In other words, reserved_one_5bits as well as reserved_one_5bits and temporal_id are used for identification of layers in the extended type.
또한, 본 발명과 같이 기존의 reserved_one_5bits과 temporal_id의 시그널링 순서를 바꾸어 reserved_one_5bits를 temporal_id 보다 먼저 시그널링하는 경우, 파싱 효율이 증가한다. 기존의 경우, 3비트의 temporal_id를 파싱하고, 5 비트의 reserved_one_5bits 를 파싱해야 했지만, 본 발명에 따를 경우, 두 개의 정보, 즉 reserved_one_5bits와 temporal_id를 한번에 파싱할 수 있다. 다시 말해, 5 비트의 비트스트림과 3비트의 비트스트림을 각각 두 번 리드하는 것이 아니라 한 번에 8비트의 비트스트림을 리드할 수 있다. In addition, when signaling the reserved_one_5bits before the temporal_id by changing the signaling order of the reserved_one_5bits and the temporal_id as in the present invention, parsing efficiency is increased. Conventionally, three bits of temporal_id have to be parsed and 5 bits of reserved_one_5bits have to be parsed. However, according to the present invention, two pieces of information, namely reserved_one_5bits and temporal_id, can be parsed at once. In other words, instead of reading the 5-bit bitstream and the 3-bit bitstream twice, the 8-bit bitstream can be read at a time.
reserved_one_5bits와 temporal_id의 시그널링 순서에 따라 파싱 회수가 달라질 수 있다. 예를 들어 temporal_id 값이 101이고, temporal_id가 나중에 시그널링 되면, reserved_one_5bits와 temporal_i를 파싱한 값은 00000101이 되고, temporal_id가 먼저 시그널링 되면 파싱 값은 10100000이 된다. 기존의 방식에 따른 후자의 경우, 디코딩 장치는 비트스트림을 두 번 파싱해야 한다.The number of times of parsing may vary according to the signaling order of reserved_one_5bits and temporal_id. For example, when the temporal_id value is 101 and the temporal_id is signaled later, the value of parsing reserved_one_5bits and temporal_i is 00000101, and when the temporal_id is signaled first, the parsing value is 10100000. In the latter case, according to the conventional scheme, the decoding apparatus must parse the bitstream twice.
또한, layer_id를 시그널링하는 데 8 비트가 필요하다면, 상기와 같이 reserved_one_5bits와 temporal_id를 동시에 파싱하는 것은 layer_id를 파싱하는 것과 유사하게 취급되기 때문에 구현 효율도 증가된다.In addition, if 8 bits are required to signal layer_id, the parsing of reserved_one_5bits and temporal_id simultaneously as described above is treated similarly to parsing layer_id, thereby increasing the implementation efficiency.
본 발명과 같이, temporal_id를 확장 타입의 비트스트림에서 레이어를 식별하는 하나의 정보로 사용할 경우, 레이어를 식별하기 위하여 8비트를 사용할 수 있으므로 기존보다 표현할 수 있는 레이어의 수가 32에서 256개로 증가하는 효과가 있다. As in the present invention, when temporal_id is used as one information for identifying a layer in the extended type bitstream, 8 bits may be used to identify the layer, thereby increasing the number of layers that can be represented from 32 to 256. There is.
또한, 본 발명에 따를 경우, 시간적 스케일러빌러티는 다른 타입의 스케일러빌러티와 동일하게 취급되기 때문에 시간적 스케일러빌러티가 다른 타입의 스케일러빌러티와 동일한지 여부에 대한 혼란이 없어진다. 또한, temporal_id는 다른 타입의 스케일러빌러티과 결합하여 사용될 수 있기 때문에 스케일러빌러티를 보다 다양하게 표현할 수 있는 장점이 존재한다. In addition, according to the present invention, since temporal scalability is treated the same as other types of scalability, there is no confusion as to whether temporal scalability is the same as other types of scalability. In addition, since temporal_id may be used in combination with other types of scalability, there is an advantage of expressing the scalability more variously.
또한, 시간적 스케일러빌러티를 적용하지 않는 비트스트림의 경우, 비트스트림 내에서 시간적 스케일러빌러티에 할당되었던 비트는 다른 스케일러빌러티를 설멍하는 데 유용하게 사용될 수 있다. In addition, in the case of a bitstream that does not apply temporal scalability, bits allocated to temporal scalability in the bitstream may be usefully used to describe other scalability.
표 2는 본 발명의 다른 실시예에 따른 NAL 유닛 헤더의 신택스를 나타낸다.Table 2 shows syntax of the NAL unit header according to another embodiment of the present invention.
<표 2>TABLE 2
표 2에 나타나 있는 layer_id는 NAL 유닛에 대한 시간적 식별자를 의미한다. 하나의 억세스 유닛에 대한 모든 VCL NAL 유닛은 동일한 layer_id 값을 가지며, 단일 계층을 지원하는 비트스트림의 경우 layer_id의 범위는 0부터 7이 될 수 있고, 억세스 유닛이 랜덤 억세스 포인트가 되는 억세스 유닛인 경우 해당 억세스 유닛에 대한 모든 VCL NAL 유닛에 대한 layer_id 값은 0이 된다. Layer_id shown in Table 2 means a temporal identifier for the NAL unit. All VCL NAL units for one access unit have the same layer_id value, and in the case of a bitstream supporting a single layer, the range of layer_id may be 0 to 7, and the access unit is an access unit that becomes a random access point. The layer_id value for all VCL NAL units for the corresponding access unit is zero.
본 실시예에서는 reserved_one_5bits와 temporal_id를 결합시켜 layer_id라는 새로운 신택스를 사용한다. 상술한 바와 같이, 단일 계층을 지원하는 비트스트림, 즉 기본 타입의 경우 layer_id는 0부터 7까지의 범위를 가질 수 있고, 이 경우 layer_id는 temporal_id과 동일한 정보를 시그널링하는 신택스로 사용될 수 있다. In this embodiment, reserved_one_5bits and temporal_id are combined to use a new syntax called layer_id. As described above, in the case of a bitstream supporting a single layer, that is, a basic type, layer_id may have a range from 0 to 7, and in this case, layer_id may be used as a syntax for signaling the same information as temporal_id.
표 2의 NAL 유닛 헤더도, 표 1과 동일하게 nal_unit_type, nal_ref_flag, reserved_one_5bits, temporal_id, layer_id 등의 정보를 포함하고 있지만, NAL 유닛 헤더의 정보를 최소화하여 전송 효율과 코딩/디코딩 효율을 높일 수도 있다. The NAL unit header of Table 2 also includes information such as nal_unit_type, nal_ref_flag, reserved_one_5bits, temporal_id, layer_id and the like in Table 1, but it is also possible to minimize the information of the NAL unit header to improve transmission efficiency and coding / decoding efficiency.
즉, NAL 유닛 헤더 레벨에서 필요한 최소한의 정보로서, 예컨대, nal_unit_type, temporal_id, layer_id 등이 NAL 유닛 헤더에 포함되고, 나머지 정보들은 다른 신택스 레벨, 예컨대 NAL 유닛에서 NAL 유닛 헤더를 참조하여 전송되도록 할 수도 있다. That is, as minimum information required at the NAL unit header level, for example, nal_unit_type, temporal_id, layer_id, etc. may be included in the NAL unit header, and the remaining information may be transmitted with reference to the NAL unit header at another syntax level, for example, the NAL unit. have.
한편, 모든 비 참조 픽처(non-reference picture)들, 특히 대부분 최상위 시간적 레이어에 해당하는 비 참조 픽처가 추출된다면, 추출 후 남은 모든 픽처들의 nal_ref_flag 는 1이 된다. 그러나, 추출된 비트스트림의 일부 픽처들, 즉 남은 비트스트림에서 최상위 시간적 레이어에 해당하는 픽처는 nal_ref_flag가 1이 라고 하더라도 비 참조 픽처들이 된다. On the other hand, if all non-reference pictures, especially non-reference pictures corresponding to most of the highest temporal layers, are extracted, then nal_ref_flag of all pictures remaining after extraction becomes 1. However, some pictures of the extracted bitstream, that is, pictures corresponding to the highest temporal layer in the remaining bitstream, become non-reference pictures even if nal_ref_flag is 1.
따라서, 이러한 nal_ref_flag에 할당되었던 비트를 NAL 유닛 헤더의 다른 신택스 요소들, 예를 들어, temporal_id 또는 reserved_one_5bits에 사용할 수 있다. nal_ref_flag에 할당되었던 1 비트를 temporal_id 또는 reserved_one_5bits에 사용한다면, 비트스트림에 포함되는 보다 많은 수의 레이어를 식별하는 것이 가능해진다. Thus, the bits that have been assigned to this nal_ref_flag can be used for other syntax elements of the NAL unit header, for example temporal_id or reserved_one_5bits. If one bit allocated to nal_ref_flag is used for temporal_id or reserved_one_5bits, it becomes possible to identify a larger number of layers included in the bitstream.
예를 들어 nal_ref_flag에 할당되었던 1 비트를 reserved_one_5bits에 사용할 경우, reserved_one_5bits는 1비트가 추가된 6 비트 신호가 될 수 있다.For example, when 1 bit allocated to nal_ref_flag is used for reserved_one_5bits, reserved_one_5bits may be a 6-bit signal in which 1 bit is added.
상술한 바와 같이, NAL 유닛은 해당 NAL 유닛이 포함하는 픽처의 성질 및 종류 등에 따라 여러 타입으로 나뉠 수 있다.As described above, the NAL unit may be divided into various types according to the nature, type, etc. of a picture included in the corresponding NAL unit.
표 3은 NAL 유닛 타입의 일 예를 나타낸 것이다. Table 3 shows an example of the NAL unit type.
<표 3>TABLE 3
표 3에 기재된 바와 같이, NAL 유닛 타입은 영상에 대한 정보를 포함하고 있는지 여부에 따라 VCL NAL 유닛과 non-VCL NAL 유닛으로 분류될 수 있다. VCL NAL 유닛은 영상에 대한 정보를 포함하고 있는 NAL 유닛을 의미하고, non-VCL NAL 유닛은 영상을 디코딩하기 위하여 필요한 정보(파라미터 세트 또는 SEI 메세지)를 포함하고 있는 NAL 유닛을 나타낸다. As described in Table 3, the NAL unit type may be classified into a VCL NAL unit and a non-VCL NAL unit according to whether or not it includes information about an image. The VCL NAL unit refers to a NAL unit containing information about an image, and the non-VCL NAL unit represents a NAL unit including information (a parameter set or an SEI message) necessary for decoding the image.
VCL NAL 유닛은 랜덤 억세스가 가능한 픽처와 그렇지 않은 픽처로 구분될 수 있다. 표 3에서 nal_unit_type이 4 내지 8인 NAL 유닛은 랜덤 억세스가 가능한 픽처이고, nal_unit_type이 1 내지 3인 NAL 유닛은 랜덤 억세스가 되지 않는 픽처들이다. The VCL NAL unit may be divided into a picture that is randomly accessible and a picture that is not. In Table 3, NAL units having 4 to 8 nal_unit_type are pictures that can be randomly accessed, and NAL units having 1 to 3 nal_unit_type are pictures that are not to be randomly accessed.
도 5는 랜덤 억세스가 가능한 픽처를 설명하기 위한 도면이다. 5 is a diagram for describing a picture that can be randomly accessed.
랜덤 억세스가 가능한 픽처, 즉 랜덤 억세스 포인트가 되는 IRAP(intra random access point) 픽처는 랜덤 억세스 시 비트스트림에서 디코딩 순서(decoding order) 상 첫 번째 픽처이며, I 슬라이스만을 포함한다. A random-accessible picture, that is, an intra random access point (IRAP) picture that becomes a random access point, is the first picture in decoding order in a bitstream during random access and includes only an I slice.
도 5에는 픽처의 출력 순서(output order 또는 display order)와 디코딩 순서가 도시되어 있다. 도시된 바와 같이 픽처의 출력 순서와 디코딩 순서는 서로 다를 수 있다. 편의 상 픽처들은 소정의 그룹으로 구분하여 설명된다.5 illustrates an output order or display order of a picture and a decoding order. As shown, the output order and decoding order of the pictures may be different. For convenience, the pictures are divided into predetermined groups and described.
제1 그룹(Ⅰ)에 속하는 픽처들은 IRAP 픽처와 출력 순서 및 디코딩 순서 모두에서 선행하는 픽처를 나타내고, 제2 그룹(Ⅱ)에 속하는 픽처들은 IRAP 픽처보다 출력 순서는 선행하지만 디코딩 순서는 후행하는 픽처를 나타낸다. 마지막 제3 그룹(Ⅲ)의 픽처들은 IRAP 픽처보다 출력 순서 및 디코딩 순서 모두에서 후행한다. Pictures belonging to the first group (I) represent the preceding picture in both the IRAP picture and the output order and the decoding order, and pictures belonging to the second group (II) are preceded in the output order but following the decoding order than the IRAP picture. Indicates. The pictures of the last third group (III) are later in both output order and decoding order than IRAP pictures.
제1 그룹(Ⅰ)의 픽처들은 IRAP 픽처와 무관하게 디코딩 되어 출력될 수 있다. The pictures of the first group I may be decoded and output regardless of the IRAP picture.
IRAP 픽처에 선행하여 출력되는 제2 그룹(Ⅱ)에 속하는 픽처들을 리딩 픽처(leading picture)라고 하며, 리딩 픽처들은 IRAP 픽처가 랜덤 억세스 포인트로 사용될 경우 디코딩 과정에서 문제될 수 있다. Pictures belonging to the second group (II) that are output prior to the IRAP picture are called leading pictures, and the leading pictures may be problematic in the decoding process when the IRAP picture is used as a random access point.
출력 및 디코딩 순서가 IRAP 픽처에 후행하는 제3 그룹(Ⅲ)에 속하는 픽처를 노말 픽처라고 한다. 노말 픽처는 리딩 픽처의 참조 픽처로 사용되지 않는다. A picture belonging to the third group (III) whose output and decoding order follows the IRAP picture is called a normal picture. The normal picture is not used as the reference picture of the leading picture.
비트스트림에서 랜덤 억세스가 발생하는 랜덤 억세스 포인트는 IRAP 픽처가 되고, 제2 그룹(Ⅱ)의 첫 번째 퍽처가 출력되면서 랜덤 억세스가 시작 된다. The random access point where random access occurs in the bitstream becomes an IRAP picture, and random access starts as the first puncher of the second group (II) is output.
한편, IRAP 픽처는 IDR(instantaneous decoding refresh) 픽처, CRA(clean random access) 픽처, BLA(Broken link access) 픽처 중 어느 하나가 될 수 있다. The IRAP picture may be any one of an instantaneous decoding refresh (IDR) picture, a clean random access (CRA) picture, and a broken link access (BLA) picture.
도 6은 IDR 픽처를 설명하기 위한 도면이다. 6 is a diagram for explaining an IDR picture.
IDR 픽처는 픽처의 그룹(Group of Picture)이 닫힌(closed) 구조를 가질 때 랜덤 억세스 포인트가 되는 픽처이다. IDR 픽처는 IRAP 픽처이므로 I 슬라이스만을 포함하며, 비트스트림에서 디코딩 순서 상 첫 번째 픽처가 될 수도 있고, 비트스트림 중간에 올 수도 있다. IDR 픽처는 디코딩되면 DPB(decoded picture buffer)에 저장되어 있는 모든 참조 픽처들은“unused for reference”로 표시된다.An IDR picture is a picture that becomes a random access point when a group of pictures has a closed structure. Since the IDR picture is an IRAP picture, it includes only I slices, and may be the first picture in decoding order in the bitstream, or may be in the middle of the bitstream. When an IDR picture is decoded, all reference pictures stored in a decoded picture buffer (DPB) are marked as “unused for reference”.
도 6에 도시되어 있는 막대는 픽처를 나타내고 화살표는 픽처가 다른 픽처를 참조 픽처로 이용할 수 있는지 여부에 대한 참조 관계를 나타낸다. 화살표 상에 표시되어 있는 x 마크는 해당 픽처(들)가 화살표가 가리키는 픽처를 참조할 수 없음을 나타낸다.The bars shown in FIG. 6 represent pictures and arrows represent reference relationships as to whether a picture can use another picture as a reference picture. The x mark displayed on the arrow indicates that the picture (s) cannot refer to the picture to which the arrow points.
도시된 바와 같이, IDR 픽처의 POC는 32이고, POC가 25내지 31며 IDR 픽처에 선행하여 출력되는 픽처는 리딩 픽처들(610)이다. POC가 33보다 큰 픽처들은 노말 픽처(620)에 해당한다. As shown, the POC of the IDR picture is 32, the POC is 25 to 31, and the picture that is output before the IDR picture is the leading pictures 610. Pictures with a POC greater than 33 correspond to the normal picture 620.
IDR 픽처에 선행하는 리딩 픽처들(610)은 IDR 픽처와 다른 리딩 픽처를 참조 픽처로 이용할 수 있지만, 리딩 픽처들(610)에 선행하는 과거 픽처(630)을 참조 픽처로 이용할 수 없다. The leading pictures 610 preceding the IDR picture can use the leading picture different from the IDR picture as the reference picture, but cannot use the past picture 630 preceding the leading picture 610 as the reference picture.
IDR 픽처에 후행하는 노말 픽처들(620)는 IDR 픽처와 리딩 픽처 및 다른 노말 픽처를 참조하여 디코딩 될 수 있다. The normal pictures 620 following the IDR picture may be decoded with reference to the IDR picture and the leading picture and other normal pictures.
도 7은 CRA 픽처를 설명하기 위한 도면이다. 7 is a diagram for explaining a CRA picture.
CRA 픽처는 픽처의 그룹(Group of Picture)이 열린(open) 구조를 가질 때 랜덤 억세스 포인트가 되는 픽처이다. CRA 픽처 역시 IRAP 픽처이므로 I 슬라이스만을 포함하며, 비트스트림에서 디코딩 순서 상 첫 번째 픽처가 될 수도 있고, 노멀 플레이를 위하여 비트스트림 중간에 올 수도 있다(appear). A CRA picture is a picture that becomes a random access point when a group of pictures has an open structure. Since the CRA picture is also an IRAP picture, it contains only I slices, and may be the first picture in decoding order in the bitstream, or may be in the middle of the bitstream for normal play.
도 7에 도시되어 있는 막대는 픽처를 나타내고 화살표는 픽처가 다른 픽처를 참조 픽처로 이용할 수 있는지 여부에 대한 참조 관계를 나타낸다. 화살표 상에 표시되어 있는 x 마크는 해당 픽처 또는 픽처들이 화살표가 가리키는 픽처를 참조할 수 없음을 나타낸다.Bars shown in FIG. 7 indicate pictures, and arrows indicate reference relationships as to whether a picture can use another picture as a reference picture. The x mark displayed on the arrow indicates that the picture or pictures cannot refer to the picture indicated by the arrow.
CRA 픽처에 선행하는 리딩 픽처들(710)은 CRA 픽처와 다른 리딩 픽처, 및 리딩 픽처들(710)에 선행하는 과거 픽처(730) 모두를 참조 픽처로 이용할 수 있다.The leading pictures 710 preceding the CRA picture may use both the CRA picture and other leading pictures, and past pictures 730 preceding the leading pictures 710 as reference pictures.
반면, CRA 픽처에 후행하는 노말 픽처들(720)는 CRA 픽처와 다른 노말 픽처를 참조하여 디코딩 될 수 있지만, 리딩 픽처들(710)을 참조 픽처로 이용할 수 없다.On the other hand, normal pictures 720 following the CRA picture may be decoded with reference to a normal picture different from the CRA picture, but the leading pictures 710 may not be used as the reference picture.
BLA 픽처는 CRA 픽처와 유사한 기능 및 성질을 가지며, 코딩된 픽처가 스플라이싱(splicing)되거나 비트스트림이 중간에 끊어지면 랜덤 억세스 포인트로서 비트스트림 중간에 존재하는 픽처를 의미한다. 다만, BLA 픽처는 새로운 시퀀스의 시작으로 간주되기 때문에 CRA 픽처와 달리 BLA 픽처가 디코더에 수신될 때 영상에 대한 파라미터 정보가 다시 모두 수신된다. A BLA picture has similar functions and properties to a CRA picture, and refers to a picture existing in the middle of the bitstream as a random access point when the coded picture is spliced or the bitstream is broken in the middle. However, since the BLA picture is regarded as the start of a new sequence, when the BLA picture is received by the decoder, all parameter information about the picture is received again, unlike the CRA picture.
BLA 픽처는 인코딩 장치에서부터 정해질 수도 있고, 인코딩 장치로부터 비트스트림을 수신한 시스템에서 수신된 CRA 픽처를 BLA 픽처로 변경할 수 있다. 예를 들어 비트스트림이 스플라이싱이 되는 경우 시스템은 CRA 픽처를 BLA 픽처로 변경하여 영상을 디코딩하는 디코더에게 제공하고, 이 때 영상에 대한 파라미터 정보 역시 시스템으로부터 디코더에 새롭게 제공된다. 본 발명에서 디코더란 영상을 디코딩하는 영상 처리부를 포함하는 모든 디바이스를 의미하며, 도 2의 디코딩 장치로 구현될 수도 있고, 영상을 처리하는 핵심 모듈인 디코딩 모듈을 의미할 수도 있다. The BLA picture may be determined from an encoding device, or a CLA picture received by a system that receives a bitstream from the encoding device may be changed into a BLA picture. For example, when the bitstream is spliced, the system converts the CRA picture into a BLA picture and provides the decoder to decode the image. In this case, parameter information about the image is newly provided from the system to the decoder. In the present invention, the decoder refers to all devices including an image processor for decoding an image, and may be implemented with the decoding apparatus of FIG. 2 or may mean a decoding module which is a core module for processing an image.
다시 표 3으로 돌아가면 TED(tagged for discard) 픽처는 디코딩이 불가능한 리딩 픽처로 버려질 수 있는 픽처를 의미한다. TED 픽처는 가용하지 않는 참조 픽처를 참조하는 것과 같이 정상적으로 디코딩 되지 않는 픽처를 의미하며, TED 픽처는 디코딩 과정 및 출력 과정에서 제외된다. Returning to Table 3, a TED (tagged for discard) picture means a picture that can be discarded as a leading picture that cannot be decoded. The TED picture refers to a picture that is not normally decoded, such as referring to a reference picture that is not available. The TED picture is excluded from the decoding process and the output process.
TLA(temporal layer access) 픽처는 시간적 스케일러빌러티에서 업 스위칭이 가능한 위치를 알려주는 픽처로서, TLA 픽처 또는 TLA 픽처보다 큰 temporal_id를 갖는 서브 레이어를 포함하는 서브 레이어에서 업 스위칭이 가능한지 여부를 알려준다. A temporal layer access (TLA) picture is a picture indicating a position where upswitching is possible in temporal scalability, and indicates whether up switching is possible in a sublayer including a TLA picture or a sublayer having a larger temporal_id than the TLA picture.
표 3에서 CRA 픽처를 나타내는 nal_unit_type은 4 및 5이고, BLA 픽처를 나타내는 nal_unit_type이 6 및 7이다. CRA 픽처와 BLA 픽처는 아래와 같이 분류될 수 있다. In Table 3, nal_unit_type indicating a CRA picture is 4 and 5, and nal_unit_type indicating a BLA picture is 6 and 7. CRA pictures and BLA pictures may be classified as follows.
-Type 4: Coded slice of a CRAT (CRA with TFD) picture-Type 4: Coded slice of a CRAT (CRA with TFD) picture
-Type 5: Coded slice of a CRANT (CRA with no TFD) picture-Type 5: Coded slice of a CRANT (CRA with no TFD) picture
-Type 6: Coded slice of a BLAT (Broken link access unit with TFD) picture-Type 6: Coded slice of a BLAT (Broken link access unit with TFD) picture
-Type 7: Coded slice of a BLANT (Broken link access unit with no TFD) picture-Type 7: Coded slice of a BLANT (Broken link access unit with no TFD) picture
하지만, 상기 nal_unit_type이 4 내지 7인ㅇ 픽처는 CRA 픽처 및 BLA 픽처를 구분하는데 중복적일 수 있다. TFD 픽처를 수반하는 CRA 픽처(CRA with TFD)와 그렇지 않은 CRA 픽처(CRA with no TFD) 간의 구분이 모호하고, BLA 픽처 역시 TED 픽처를 수반하는지 여부를 구별할 실익이 크지 않다. 따라서, TFD 픽처의 유무에 따라 CRA 픽처와 BLA 픽처를 구분하는 것은 NAL 유닛 타입에 중복성을 더해 불필요할뿐만 아니라 이들의 구분이 명확하지 않아 혼란을 초래할 수 있다. However, the pictures having the nal_unit_type of 4 to 7 may be duplicated to distinguish between the CRA picture and the BLA picture. The distinction between a CRA picture (CRA with TFD) and a CRA picture (CRA with no TFD) that accompanies a TFD picture is ambiguous, and it is not practical to distinguish whether a BLA picture also involves a TED picture. Therefore, distinguishing a CRA picture from a BLA picture according to the presence or absence of a TFD picture adds redundancy to the NAL unit type and may cause confusion because the distinction is not clear.
따라서, 본 발명의 일 실시예에서는 NAL 유닛 타입의 중복성을 해소하기 위하여 상기 네 가지 타입을 두 가지 타입으로 재구성할 것을 제안한다. Accordingly, an embodiment of the present invention proposes to reconfigure the four types into two types to eliminate redundancy of the NAL unit type.
새로운 NAL 유닛 타입은 TED 픽처의 유무에 관계 없이 CRA 픽처와 BLA 픽처만을 NAL 유닛 타입으로 정의 한다. 즉, 표 3의 CRA 픽처는 Type 4 및 Type 5로 구분되지 않는 하나의 타입으로 표현되고, BLA 픽처 역시 Type 6 및 Type 7로 구분되지 않는 하나의 타입으로 표현될 수 있다. The new NAL unit type defines only CRA pictures and BLA pictures as NAL unit types, with or without TED pictures. That is, the CRA picture of Table 3 may be represented by one type that is not divided into Type 4 and Type 5, and the BLA picture may also be represented by one type that is not divided into Type 6 and Type 7.
본 발명에서는 랜덤 억세스 포인트가 되는 픽처로서 뒤에 TED 픽처가 올 수 있는 픽처를 CRA 픽처로 정의하고 하나의 NAL 유닛 타입으로 표현한다. In the present invention, a picture that can be followed by a TED picture as a picture that becomes a random access point is defined as a CRA picture and represented by one NAL unit type.
반면, 새로운 랜덤 억세스 포인트까지 뒤에 TED 픽처가 올 수 없는 픽처를 BLA 픽처로 정의하고 하나의 NAL 유닛 타입으로 표현한다. 즉, BLA 픽처와 다음 랜덤 억세스 포인트 사이에는 TED 픽처가 존재하지 않는다. On the other hand, a picture that cannot be followed by a TED picture until a new random access point is defined as a BLA picture and represented by one NAL unit type. That is, there is no TED picture between the BLA picture and the next random access point.
정리하면, TED 픽처, CRA 픽처 및 BLA 픽처는 각각 독립된 NAL 유닛 타입으로 표현되고, 뒤에 TED 픽처가 올 수 있는 지 여부에 따라 CRA 픽처와 BLA 픽처를 구분할 뿐 CRA 픽처와 BLA 픽처를 두 개의 NAL 유닛 타입으로 분류하지 않는다.In summary, a TED picture, a CRA picture, and a BLA picture are each represented by separate NAL unit types, and the CRA picture and the BLA picture are distinguished by two NAL units only by distinguishing between the CRA picture and the BLA picture depending on whether the TED picture can be followed. Do not classify by type.
이와 같이 기능적으로 유사한 4개의 NAL 유닛 타입을 2개로 줄이는 단순화를 통하여 NAL 유닛 타입을 보다 정확하게 정의할 수 있고, 이러한 단순화는 복잡성 낮추는 효과가 있다. By simplifying the four functionally similar NAL unit types to two, the NAL unit type can be more accurately defined, and this simplification has the effect of reducing complexity.
도 8은 본 발명의 일 실시예에 따라 CRA 픽처가 BLA 픽처로 변경되는 것을 설명하기 위한 도면이다. 8 is a diagram for explaining that a CRA picture is changed to a BLA picture according to an embodiment of the present invention.
도 8의 (a)는 인코딩 장치에서 출력되는 원래의 비트스트림을 도시한 것이고, (b)는 시스템에서 디코더에 제공하는 비트스트림을 도시한 도면이다. FIG. 8A illustrates an original bitstream output from an encoding apparatus, and FIG. 8B illustrates a bitstream provided to a decoder in a system.
도 8의 CS(coded slice)는 정상적으로 인코딩된 슬라이스를 의미하고, 픽처를 식별하는 숫자는 픽처의 출력 순서, 즉 POC를 나타낸다. A coded slice (CS) of FIG. 8 refers to a slice that is normally encoded, and a number for identifying a picture indicates an output order of a picture, that is, a POC.
(a)의 비트스트림에서 갑작스럽게 랜넘 억세스가 발생하면, 디코딩 과정은 CRA 픽처에서 시작된다. 이 경우, 시스템은 CRA 픽처의 NAL 유닛 타입을 (b)와 같이 BLA 픽처로 변경하고 CRA 픽처 뒤에 존재했던 모든 TED 픽처를 비트스트림에서 제거할 수 있다. If random access occurs in the bitstream of (a), the decoding process starts with the CRA picture. In this case, the system may change the NAL unit type of the CRA picture to the BLA picture as shown in (b) and remove all TED pictures that existed after the CRA picture from the bitstream.
그런 경우, (b)의 비트스트림을 수신한 디코더는 POC 28의 BLA 픽처를 디코딩 한 뒤, 순차적으로 뒤에 존재하는 CS를 디코딩할 수 있다. 이 경우, 디코더는 입력되는 비트스트림의 픽처 비트열을 유지하기 위하여, 즉 픽처를 저장하는 버퍼의 오버플로우나 언더 플로우를 방지하기 위하여 소정의 지연 시간만큼 시간을 지연시킨 후 후속 픽처를 디코딩 할 수 있다.In such a case, the decoder receiving the bitstream of (b) may decode the BLA picture of POC 28 and then sequentially decode the CS present later. In this case, the decoder may decode a subsequent picture after delaying the time by a predetermined delay time in order to maintain the picture bit string of the input bitstream, that is, to prevent the overflow or underflow of the buffer for storing the picture. have.
도 9는 본 발명에 따른 영상 정보의 인코딩 방법을 설명하기 위한 제어 흐름도이다. 9 is a control flowchart illustrating a method of encoding video information according to the present invention.
도시된 바와 같이, 인코딩 장치는 영상에 관련된 정보를 포함하는 NAL 유닛을 인코딩 한다(S910).As shown, the encoding apparatus encodes a NAL unit including information related to an image (S910).
NAL 유닛 헤더는 스케일러블 계층을 지원하는 비트스트림에서 스케일러블 레이어를 식별하기 위한 계층 식별 정보를 포함하고 있다. 이러한 레이어 식별 정보는 reserved_one_5bits 및 temporal_id 또는 layer_id와 같은 신택스로 인코딩될 수 있다. The NAL unit header includes layer identification information for identifying the scalable layer in the bitstream supporting the scalable layer. Such layer identification information may be encoded with syntax such as reserved_one_5bits and temporal_id or layer_id.
인코딩 장치는 비트스트림이 단일 계층을 지원하는 경우 reserved_one_5bits과 temporal_id을 순차적으로 인코딩하고, 비트스트림이 기본 타입이 아닌 확장 타입이면 layer_id을 인코딩할 수 있다. The encoding apparatus may sequentially encode reserved_one_5bits and temporal_id when the bitstream supports a single layer, and encode layer_id when the bitstream is an extension type other than the basic type.
또는, 비트스트림이 지원하는 계층의 수와 관계 없이 reserved_one_5bits와 temporal_id를 결합시켜 layer_id라는 하나의 신택스 정보만을 인코딩 할 수도 있다. Alternatively, only one syntax information called layer_id may be encoded by combining reserved_one_5bits and temporal_id regardless of the number of layers supported by the bitstream.
인코딩 장치는 NAL 유닛 타입에 대한 정보를 NAL 유닛 헤더 부분에 인코딩 한다. VCL NAL 유닛 중 랜덤 억세스 포인트가 되는 픽처에는 IDR 픽처, CRA 픽처 및 BLA 픽처가 존재하며, 이러한 IRAP 픽처에 선행하여 출력되는 픽처는 리딩 픽처라고 한다. The encoding apparatus encodes information on the NAL unit type in the NAL unit header portion. An IDR picture, a CRA picture, and a BLA picture exist in a picture that becomes a random access point among the VCL NAL units, and a picture that is output before the IRAP picture is called a leading picture.
이러한 각각의 픽처는 서로 다른 nal_unit_type 정보로 식별된다. Each of these pictures is identified by different nal_unit_type information.
기존에는 리딩 픽처 중 디코딩되지 않고 비트스트림에서 제거될 수 있는 TED 픽처의 유무에 따라 CRA 픽처와 BLA 픽처는 각각 두 개의 NAL 유닛 타입으로 표현되었다.In the past, CRA pictures and BLA pictures were represented by two NAL unit types according to whether TED pictures that can be removed from the bitstream without being decoded among the leading pictures.
본 발명의 일 실시예에 따른 인코딩 장치는 TED 픽처의 유무에 관계 없이 TED 픽처, CRA 픽처 및 BLA 픽처는 각각 독립된 NAL 유닛 타입으로 인코딩하고, 뒤에 TED 픽처가 올 수 있는 지 여부에 따라 CRA 픽처와 BLA 픽처를 구분하여 인코딩한다. According to an embodiment of the present invention, the encoding apparatus encodes a TED picture, a CRA picture, and a BLA picture as an independent NAL unit type regardless of the presence or absence of a TED picture, and according to whether a TED picture can be followed by a CRA picture and Encode BLA pictures separately.
다른 실시예에 따르면, NAL 유닛의 NAL 유닛 헤더는 NAL 유닛이 비 참조 픽처의 적어도 일부 또는 전부를 포함하는 슬라이스를 포함하는지 여부를 나타내는 정보인 nal_ref_fla를 포함하지 않을 수 있다. According to another embodiment, the NAL unit header of the NAL unit may not include nal_ref_fla, which is information indicating whether the NAL unit includes a slice including at least some or all of the non-reference picture.
또한, 본 발명의 다른 실시예에 따르면, 인코딩 장치는 BLA 픽처 뒤에 인코딩되는 리딩 픽처 중 TED 픽처가 아닌 디코딩 가능한 리딩 픽처가 존재할 경우 이를 식별하기 위하여 이러한 BLA 픽처를 새로운 nal_unit_type 정보로 인코딩 할 수도 있다. In addition, according to another embodiment of the present invention, the encoding apparatus may encode the BLA picture with new nal_unit_type information to identify when there is a decodable leading picture other than the TED picture among the leading pictures encoded after the BLA picture.
인코딩 장치는 인코딩된 영상에 관련된 정보를 포함하는 NAL 유닛을 비트스트림으로 디코딩 장치로 전송한다(S902)The encoding apparatus transmits the NAL unit including the information related to the encoded image to the decoding apparatus in a bitstream (S902).
도 10은 본 발명에 따른 영상 정보의 디코딩 방법을 설명하기 위한 제어 흐름도이다.10 is a control flowchart for explaining a method of decoding image information according to the present invention.
도 10을 참조하면, 디코딩 장치는 비트스트림을 통하여 인코딩된 영상에 관련된 정보를 포함하는 NAL 유닛을 수신한다(S1001). Referring to FIG. 10, the decoding apparatus receives a NAL unit including information related to an image encoded through a bitstream (S1001).
NAL 유닛 헤더에는 스케일러블 계층을 지원하는 비트스트림에서 스케일러블 계층을 식별하기 위한 계층 식별 정보 및 성질에 따라 NAL 유닛을 구분하고 있는 nal_unit_type 정보가 포함되어 있다. The NAL unit header includes nal_unit_type information for classifying NAL units according to layer identification information and properties for identifying a scalable layer in a bitstream supporting a scalable layer.
디코딩 장치는 NAL 유닛의 헤더 및 NAL 페이로드(payload)를 파싱 한다(S1002). 영상 정보에 대한 파싱은 엔트로피 디코딩부 또는 별도의 파싱부에서 수행될 수 있다.The decoding apparatus parses the header of the NAL unit and the NAL payload (S1002). Parsing of the image information may be performed by an entropy decoding unit or a separate parser.
디코딩 장치는 파싱을 통하여 NAL 유닛 헤더 및 NAL 페이로드에 포함되어 있는 다양한 정보를 획득할 수 있다.The decoding apparatus may obtain various information included in the NAL unit header and the NAL payload through parsing.
디코딩 장치는 단일 계층을 지원하는 비트스트림에서 계층을 식별하는 정보인 reserved_one_5bits 및 temporal_id 순으로 수신하고, 두 개의 정보를 한번에 파싱할 수 있다. 이 경우 복수의 계층을 지원하는 비트스트림에서 계층을 식별하는 정보인 layer_id과 유사한 패턴으로 파싱할 수 있는 효과가 있다. The decoding apparatus may receive reserved_one_5bits and temporal_id, which are information for identifying a layer in a bitstream supporting a single layer, and parse two pieces of information at once. In this case, there is an effect that the bitstream supporting a plurality of layers can be parsed in a pattern similar to layer_id which is information for identifying a layer.
디코딩 장치는 또한, nal_unit_type을 파싱하여 픽처의 종류를 구분하고, 이에 대응하여 영상을 처리할 수 있다. 예를 들어, IDR 픽처, CRA 픽처 및 BLA 픽처에 대해서는 랜덤 억세스 포인트가 되는 픽처이므로 I 슬라이스에 대응하는 영상 처리를 하고, TED 픽처에 대하여는 디코딩 하지 않는다. The decoding device may also parse nal_unit_type to classify the picture type and process an image correspondingly. For example, since an IDR picture, a CRA picture, and a BLA picture are pictures that become random access points, image processing corresponding to an I slice is performed, and the TED picture is not decoded.
디코딩 장치에서 CRA 픽처를 BLA 픽처로 변경할 수 있는 경우, 디코딩 장치는 BLA 픽처로 변경된 픽처 뒤에 수신되는 TED 픽처를 비트스트림에서 제거하거나 디코딩 하지 않을 수 있다. If the decoding apparatus can change the CRA picture into a BLA picture, the decoding device may remove or not decode the TED picture received after the picture changed into the BLA picture from the bitstream.
상술한 예시적인 시스템에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 상술한 실시예들은 다양한 양태의 예시들을 포함할 수 있으므로 각 실시예의 조합 역시 본 발명의 일 실시예로서 이해되어야 할 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.In the exemplary system described above, the methods are described based on a flowchart as a series of steps or blocks, but the invention is not limited to the order of steps, and certain steps may occur in a different order or concurrently with other steps than those described above. Can be. In addition, since the above-described embodiments may include examples of various aspects, a combination of each embodiment should also be understood as an embodiment of the present invention. Accordingly, it is intended that the present invention cover all other replacements, modifications and variations that fall within the scope of the following claims.