KR20100102493A - Depth map coding method and apparatus using block-based adaptive bitplane coding - Google Patents
Depth map coding method and apparatus using block-based adaptive bitplane coding Download PDFInfo
- Publication number
- KR20100102493A KR20100102493A KR1020090020918A KR20090020918A KR20100102493A KR 20100102493 A KR20100102493 A KR 20100102493A KR 1020090020918 A KR1020090020918 A KR 1020090020918A KR 20090020918 A KR20090020918 A KR 20090020918A KR 20100102493 A KR20100102493 A KR 20100102493A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- bitplane
- depth information
- information map
- coding
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 459
- 230000003044 adaptive effect Effects 0.000 title claims description 10
- 239000013598 vector Substances 0.000 claims description 63
- 238000006243 chemical reaction Methods 0.000 claims description 32
- 238000000926 separation method Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 description 100
- 238000010586 diagram Methods 0.000 description 23
- 238000005070 sampling Methods 0.000 description 20
- 230000000007 visual effect Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 11
- 238000013139 quantization Methods 0.000 description 10
- 230000000903 blocking effect Effects 0.000 description 7
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 6
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000010187 selection method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- OAICVXFJPJFONN-UHFFFAOYSA-N Phosphorus Chemical compound [P] OAICVXFJPJFONN-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052698 phosphorus Inorganic materials 0.000 description 1
- 239000011574 phosphorus Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/34—Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
1. 청구범위에 기재된 발명이 속한 기술분야 1. TECHNICAL FIELD OF THE INVENTION
본 발명은 깊이 정보맵(depth map) 코딩 시, 깊이 정보의 화질 및 코딩 효율을 향상 시키기 위한 방법 및 장치에 관한 것임.The present invention relates to a method and apparatus for improving image quality and coding efficiency of depth information when coding depth maps.
2. 발명이 해결하려고 하는 기술적 과제 2. The technical problem to be solved by the invention
본 발명에서는 깊이 정보맵 코딩 시, 깊이 정보맵의 특성을 최대한 이용함으로써 깊이 정보맵의 화질 및 코딩 효율을 향상 시키는 방법을 제안한다.The present invention proposes a method of improving the quality and coding efficiency of a depth information map by maximizing the characteristics of the depth information map when coding the depth information map.
3. 발명의 해결방법의 요지3. Summary of Solution to Invention
본 발명은 블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법과, 깊이 정보맵을 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법 및 장치를 이용하여 깊이 정보맵의 화질 및 코딩 효율을 향상시키는 방법을 포함함.According to the present invention, a method of adaptively selecting and coding a block-based bitplane coding method and a conventional block-based video coding method, and adaptively selecting a bitplane to be coded by dividing a depth information map into bitplane units Method of improving the quality and coding efficiency of the depth information map by using a method and apparatus.
4. 발명의 중요한 용도4. Important uses of the invention
본 발명은 깊이 정보맵에 대한 코딩 효율 향상 및 화질 향상에 이용된다.The present invention is used to improve coding efficiency and quality of a depth information map.
Description
본 발명은 깊이 정보맵 코딩에 관한 것으로, 보다 구체적으로 깊이 정보맵(depth map) 코딩 시, 깊이 정보의 화질 및 코딩 효율을 향상 시키기 위한 방법 및 장치에 관한 것이다. The present invention relates to depth information map coding. More particularly, the present invention relates to a method and an apparatus for improving the quality and coding efficiency of depth information when coding a depth map.
실감 미디어의 관심이 대폭적으로 증가하면서 또한 그에 대한 연구가 활발히 진행되고 있다. 이와 관련된 연구로써 JVT(Joint Video Team of ISO/IEC JTC1/SC29/WG11 MPEG and ITU-T SG16 Q.6 VCEG)에서는 2008년 7월 복수의 카메라로부터 입력 받은 여러 뷰(multiple view)의 영상을 효율적으로 코딩하여 사용자에게 전달하기 위한 다시점 비디오 코딩(Multi-view Video Coding, H.264/AVC Amendment 4) 표준을 완료하였고, 또한 현재 MPEG에서는 3D Video에 대한 표준이 진행 중이다. 3D Video는 N개의 시점 영상과 N개의 깊이 정보맵(depth map)을 함께 전송하여 전송 받은 시점 영상과 깊이 정보맵을 이용한 뷰 인터폴레이션(view interpolation)을 수행함으로 전송 받은 시점 영상보다 더 많은 시점의 영상을 생성할 수 있도록 하는 방법이다. 3D Video는 3차원 디스플레이 시스템을 지원할 수 있으며, 대표적인 시스템의 예로 FTV(Free View-point TV)를 들 수 있다.As the interest of the sensational media has increased significantly, research on it is being actively conducted. As a related study, JVT (Joint Video Team of ISO / IEC JTC1 / SC29 / WG11 MPEG and ITU-T SG16 Q.6 VCEG) has been able to efficiently use multiple views from multiple cameras in July 2008. We have completed the multi-view video coding (H.264 / AVC Amendment 4) standard for coding and delivering to users. Also, the standard for 3D video is currently in progress in MPEG. 3D Video transmits N view images and N depth maps together and performs view interpolation using the depth map and images of more views than the view images received. This is how to create a. 3D video can support a three-dimensional display system, and a representative system is a free view-point TV (FTV).
다시점 비디오 코딩과 3D Video 표준 모두 다양한 시점을 제공함으로써 사용자에게 현장감을 전해줄 수 있는 기술이다. 하지만 다시점 비디오 코딩은 고정된 개수 카메라로부터 입력 받은 고정된 수의 시점만을 사용자에게 보여줄 수 있을 뿐이다. 다시점 비디오 코딩에서는 좀 더 많은 시점을 지원하기 위해서는 더욱 많은 카메라를 사용해야 하며, 또한 카메라 수만큼의 시점 데이터를 전송해야 한다. 하지만 현존하는 전달미디어(방송, 통신, 저장 미디어)의 전송 대역폭과 저장 용량에는 한계가 존재하기 때문에 많은 뷰의 시점 데이터를 전달하는 데는 한계가 따른다. Both multi-view video coding and the 3D Video standard provide a variety of viewpoints to bring a sense of realism to the user. Multi-view video coding, however, can only show a fixed number of views received from a fixed number of cameras to the user. In multi-view video coding, more cameras must be used to support more viewpoints, and more viewpoint data must be transmitted. However, there is a limit to the transmission bandwidth and storage capacity of existing transmission media (broadcast, communication, storage media), so there is a limit to delivering view data of many views.
이러한 문제점을 보완할 수 있는 방법으로 3D Video 표준이 대두되었는데, 3D Video는 다시점 비디오 코딩과 달리 카메라로부터 입력 받은 시점 이외에 깊이 정보맵(depth map)을 함께 전송하여 입력 받은 시점 이외에 다양한 시점을 깊이 정보맵을 이용해 사용자가 원하는 시점을 무한대까지 생성할 수 있도록 지원한다. 따라서 3D Video에서는 다시점 비디오 코딩 방법과 같이 많은 수의 영상 시점을 모두 전송할 필요가 없고, 소수의 시점 영상과 깊이 정보맵만을 전송하면 되기 때문에 대역폭과 저장공간을 절약할 수 있다는 장점이 있다.The 3D video standard has emerged as a way to solve this problem. Unlike multi-view video coding, 3D video transmits a depth map in addition to the view point received from the camera, so that various points of view other than the view point can be deepened. By using the information map, the user can create the desired point of time to infinity. Therefore, 3D video does not need to transmit a large number of image viewpoints like multi-view video coding, and it has the advantage of saving bandwidth and storage space because only a few viewpoint images and depth information maps need to be transmitted.
3D Video에서는 입력 받은 시점 영상을 인코딩/디코딩하는 과정 이외에 깊이 정보맵을 생성하는 과정, 깊이 정보맵을 인코딩/디코딩하는 과정, 깊이 정보맵을 이용하여 가상의 시점 영상을 생성하는 방법이 추가적으로 필요하다. 따라서 현재 3D Video 표준에서는 주로 깊이 정보맵을 생성하는 방법과 깊이 정보맵을 이용하여 가상의 시점 영상을 생성하는 방법에 대한 연구를 수행하고 있다. 하지만, 깊이 정보맵을 코딩하는 방법에 대해서는 MPEG-C Part 3에서 3D 영상을 깊이 정보을 이용하여 랜더링하기 위해 픽쳐 내의 실 세계에서 가장 가까이 있는 객체의 평면 공간의 위치와 실 세계에서 가장 멀리 있는 객체의 평면 공간의 위치를 보내기 위한 파라미터(parameter)의 코딩 방법만 정의하고 있을 뿐 아직 깊이 정보맵 자체의 코딩 방법은 정의하지 않고 있다. 따라서 깊이 정보맵 코딩 방법에 대한 연구가 필요하다고 할 수 있다.In addition to encoding / decoding the received view image, 3D Video requires a process of generating a depth map, encoding / decoding a depth map, and generating a virtual view image using the depth map. . Therefore, the current 3D video standard is mainly studying how to create a depth information map and how to create a virtual viewpoint image using the depth information map. However, the method of coding the depth map is described in MPEG-C
깊이 정보맵이란, 현재 시점에서 카메라와 실제 사물(object)과의 거리를 시점 영상과 동일한 해상도로 각 픽셀에 해당하는 깊이 정보를 일정한 비트수로 표현하는 것이다. 깊이 정보맵의 일 예로 도 1은 MPEG의 다시점 비디오 코딩의 테스트 시퀀스인 "Breakdancers" 영상 시퀀스(도 1 왼쪽 영상)의 깊이 정보맵(도 1 오른쪽 영상)을 보여주고 있다. 실제 도 1의 깊이 정보맵은 각 픽셀에 대응되는 깊이 정보를 8비트로 표현한 것으로 카메라와 가까울수록 큰 값(밝은 값)으로 표현된 것이다.The depth information map expresses depth information corresponding to each pixel in a constant number of bits at the same resolution as the viewpoint image, using the distance between the camera and the actual object at the current viewpoint. As an example of the depth information map, FIG. 1 illustrates a depth information map (the right image of FIG. 1) of a "Breakdancers" image sequence (the left image of FIG. 1), which is a test sequence of multiview video coding of MPEG. In fact, the depth information map of FIG. 1 expresses depth information corresponding to each pixel in 8 bits and is represented as a larger value (brighter value) as it is closer to the camera.
도 1의 깊이 정보맵을 이용하여 각 픽셀에서 실 세계에서의 거리(Z)를 구하는 방법의 일 예는 아래 수학식 1과 같다.An example of a method of obtaining the distance Z in the real world from each pixel using the depth information map of FIG. 1 is shown in
v는 도 1의 깊이 정보맵에서 실제 표현되는 깊이 정보값이고, Zfar와 Znear는 실제 MPEG-C Part 3에서 정의하는 파라미터로써 영상 안에서 보여지는 실 세계에서의 가장 먼 부분(Zfar)과 가까운 부분(Znear)의 실제 위치를 나타낸다. 따라서 깊이 정보맵에 표현되는 깊이 정보는 영상에서 보여지는 실 세계에서의 가장 먼 부분과 가까운 부분을 2n (n: 깊이 정보맵을 표현하는 비트수, 도 1의 깊이 정보맵과 상기 수식에서는 n=8) 등분한 것을 표현한 것이다.v is the depth information actually expressed in the depth information map of FIG. 1, and Z far and Z near are the parameters defined in the actual MPEG-
현재 깊이 정보맵의 코딩 방법으로 H.264/AVC나 다시점 비디오 코딩과 같은 기존의 표준 동영상 코딩 방법을 그대로 사용하는 것이 일반적이며, 기존의 표준 동영상 코딩 방법인 H.264/AVC의 인코더 구조도의 일 예는 도 2와 같다.Currently, it is common to use existing standard video coding methods such as H.264 / AVC or multi-view video coding as the coding method of depth information map, and the encoder structure of H.264 / AVC which is a standard video coding method is used. An example is shown in FIG. 2.
도 2의 H.264/AVC 인코더 구조도에서 데이터를 처리하는 단위는 가로 세로 16x16픽셀 크기의 매크로블록(Macroblock)이며, 영상을 입력 받아 인트라 모드 또는 인터 모드로 인코딩이 수행되어 비트스트림을 출력한다. 인트라(Intra) 모드일 경우, 스위치가 인트라로 전환이 되며, 인터(Inter) 모드일 경우에는 스위치가 인터로 전환이 된다. 코딩 과정의 주요한 흐름은 먼저 입력된 블록 영상에 대한 예측 블록을 생성한 후, 입력된 블록과 예측 블록의 차분을 구해 그 차분을 코딩하는 것이다. 먼저 예측 블록의 생성은 인트라 모드와 인터 모드에 따라 수행이 된다. 먼 저 인트라 모드일 경우에는 "인트라 예측" 과정에서 현재 블록의 이미 코딩된 주변 픽셀값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성하며, 인터 모드일 경우에는 "움직임 예측" 과정에서 참조 영상 버퍼에 저장되어 있는 참조 영상에서 현재 입력된 블록과 가장 매치가 잘 되는 영역을 찾아 움직임 벡터(Motion Vector)를 구한 후, 구한 움직임 벡터를 이용하여 "움직임 보상"을 수행함으로써 예측 블록을 생성한다. 상기 설명한 것과 같이 현재 입력된 블록과 예측 블록의 차분을 구하여 잔여 블록(Residual Block)을 생성한 후, 이에 대한 코딩을 수행한다. 잔여 블록에 대한 코딩은 "변환", "양자화", "엔트로피 코딩"의 순서로 수행이 된다. 먼저 "변환" 과정에서는 입력된 잔여 블록을 입력 받아 변환(Transform)을 수행하여 변환계수(Transform Coefficient)를 출력한다. 그리고 "양자화" 과정에서는 입력된 변환계수를 양자화 파라미터에 따라 양자화를 수행한 양자화된 계수(Quantized Coefficient)를 출력한다. 그리고 "엔트로피 코딩" 과정에서는 입력된 양자화된 계수를 확률 분포에 따른 엔트로피 코딩을 수행하여 비트스트림으로 출력된다. H.264/AVC는 프레임간(Inter-frame) 예측 코딩을 수행하기 때문에 현재 코딩된 영상을 이 후에 입력된 영상의 참조 영상으로 사용하기 위해 디코딩하여 저장할 필요가 있다. 따라서 양자화된 계수를 "역양자화"과정과 "역변환"을 수행하여 예측 영상과 가산기를 통해 재구성된 블록을 생성한 다음 "디블록킹 필터"를 통해 코딩 과정에서 발생한 블록킹 현상(Blocking Artifact)을 제거한 후, "참조 영상 버퍼"에 저장한다.In the structure diagram of the H.264 / AVC encoder of FIG. 2, a unit for processing data is a macroblock having a size of 16 × 16 pixels, and an image is encoded in an intra mode or an inter mode to output a bitstream. In the Intra mode, the switch switches to Intra, and in the Inter mode, the switch switches to Inter. The main flow of the coding process is to first generate a prediction block for the input block image, then obtain the difference between the input block and the prediction block and code the difference. First, the generation of the prediction block is performed according to the intra mode and the inter mode. First, in intra mode, the prediction block is generated by performing spatial prediction using the neighboring coded pixels of the current block in the "intra prediction" process. In the inter mode, the reference image buffer is performed in the "motion prediction" process. A motion vector is found from a reference image stored in the reference image that is best matched with the currently input block, and then a prediction block is generated by performing "motion compensation" using the obtained motion vector. As described above, a residual block is generated by obtaining a difference between a currently input block and a prediction block, and then coding is performed on the residual block. Coding for the remaining blocks is performed in the order of "transformation", "quantization", and "entropy coding". First, in the "transform" process, the received residual block is input to perform transform and output a transform coefficient. In the "quantization" process, a quantized coefficient obtained by quantizing the input transform coefficient according to the quantization parameter is output. In the "entropy coding" process, the input quantized coefficients are output as a bitstream by performing entropy coding according to a probability distribution. Since H.264 / AVC performs inter-frame predictive coding, it is necessary to decode and store the current coded picture for use as a reference picture of a later input picture. Therefore, by performing "inverse quantization" and "inverse transformation" on the quantized coefficients, a reconstructed block is generated through a predictive image and an adder, and then a blocking artifact generated during the coding process is removed using a "deblocking filter". In the "reference video buffer".
기존의 표준 동영상 코딩 방법인 H.264/AVC의 디코더 구조도의 일 예는 도 3 과 같다.An example of a decoder structure diagram of an existing standard video coding method, H.264 / AVC, is shown in FIG. 3.
도 3의 H.264/AVC 디코더 구조도에서 데이터를 처리하는 단위는 가로 세로 16x16픽셀 크기의 매크로블록(Macroblock)이며, 비트스트림을 입력 받아 인트라 모드 또는 인터 모드로 디코딩이 수행되어 재구성된 영상을 출력한다. 인트라(Intra) 모드일 경우, 스위치가 인트라로 전환이 되며, 인터(Inter) 모드일 경우에는 스위치가 인터로 전환이 된다. 디코딩 과정의 주요한 흐름은 먼저 예측 블록을 생성한 후, 입력 받은 비트스트림을 디코딩한 결과 블록과 예측 블록을 더하여 재구성된 블록을 생성하는 것이다. 먼저 예측 블록의 생성은 인트라 모드와 인터 모드에 따라 수행이 된다. 먼저 인트라 모드일 경우에는 "인트라 예측" 과정에서 현재 블록의 이미 코딩된 주변 픽셀값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성하며, 인터 모드일 경우에는 움직임 벡터를 이용하여 참조 영상 버퍼에 저장되어 있는 참조 영상에서 영역을 찾아 "움직임 보상"을 수행함으로써 예측 블록을 생성한다. "엔트로피 디코딩" 과정에서는 입력된 비트스트림을 확률 분포에 따른 엔트로피 디코딩을 수행하여 양자화된 계수(Quantized Coefficient)를 출력한다. 양자화된 계수를 "역양자화"과정과 "역변환"을 수행하여 예측 영상과 가산기를 통해 재구성된 블록을 생성한 다음 "디블록킹 필터"를 통해 블록킹 현상(Blocking Artifact)를 제거한 후, "참조 영상 버퍼"에 저장한다.In the H.264 / AVC decoder structure diagram of FIG. 3, a unit for processing data is a macroblock having a width of 16x16 pixels and a bitstream is input to decode and output a reconstructed image in intra mode or inter mode. do. In the Intra mode, the switch switches to Intra, and in the Inter mode, the switch switches to Inter. The main flow of the decoding process is to first generate a prediction block, and then decode the input bitstream to add a result block and a prediction block to generate a reconstructed block. First, the generation of the prediction block is performed according to the intra mode and the inter mode. First, in intra mode, a prediction block is generated by performing spatial prediction using neighboring coded neighboring pixel values of the current block in the "intra prediction" process, and stored in the reference image buffer using a motion vector in the inter mode. The prediction block is generated by searching for an area in the reference image and performing "motion compensation". In the "entropy decoding" process, the input bitstream is subjected to entropy decoding according to a probability distribution to output quantized coefficients. "Dequantize" the quantized coefficients and perform "inverse transform" to generate a reconstructed block through the predictive image and the adder, and then remove the blocking artifact through the "deblocking filter", and then remove the "reference image buffer." To save.
이러한 동영상 표준 코덱을 사용함으로 높은 압축률을 얻을 수 있지만, 이는 실제 일반 영상의 특성에 맞도록 설계된 코딩 방법으로 깊이 정보맵의 특성을 최대한 사용하지 못한다는 단점이 있다. 보통 깊이 정보맵을 사용하여 영상을 합성하는 장치에서는 깊이 정보맵의 정확도에 따라 화질에 큰 영향을 미치기 때문에, 깊이 정보맵의 특성을 이용하여 최적의 효율을 얻을 수 있는 코딩 방법이 필요하다.Although the high compression ratio can be obtained by using the video standard codec, this is a coding method designed to fit the characteristics of an actual general image, and has a disadvantage in that it cannot use the characteristics of the depth information map to the maximum. In general, an apparatus for synthesizing an image using a depth information map greatly affects the image quality according to the accuracy of the depth information map. Therefore, a coding method for obtaining an optimal efficiency using characteristics of the depth information map is required.
본 발명에서는 깊이 정보맵 코딩 시, 깊이 정보맵의 특성을 최대한 이용함으로써 깊이 정보맵의 화질 및 코딩 효율을 향상 시키는 방법을 제안한다.The present invention proposes a method of improving the quality and coding efficiency of a depth information map by maximizing the characteristics of the depth information map when coding the depth information map.
본 발명은 블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법과, 깊이 정보맵을 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법 및 장치를 이용하여 깊이 정보맵의 화질 및 코딩 효율을 향상시키는 방법을 포함한다.According to the present invention, a method of adaptively selecting and coding a block-based bitplane coding method and a conventional block-based video coding method, and adaptively selecting a bitplane to be coded by dividing a depth information map into bitplane units A method and apparatus for improving the quality and coding efficiency of a depth information map are included.
블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법과, 깊이 정보맵을 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법을 이용하여 화질 및 코딩효율을 향상시키는 효과가 있다.The method of adaptively selecting and coding a block-based bitplane coding method and a conventional block-based video coding method, and a method of adaptively selecting a bitplane to code by separating a depth information map into bitplane units It has the effect of improving the image quality and coding efficiency.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예들을 상세하게 설명한다. 본 발명의 실시예를 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, with reference to the accompanying drawings will be described embodiments of the present invention; In the following description of the embodiments of the present invention, when it is determined that detailed descriptions of related known functions or configurations may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, terms to be described below are terms defined in consideration of functions in the embodiments of the present invention, which may vary according to intention or custom of a user or an operator. Therefore, the definition should be made based on the contents throughout the specification.
깊이 정보맵은 일반적인 실사 영상과는 다르게 상당히 완만한 특성을 갖는데, 도 4를 통해서 쉽게 그 특성을 알 수 있다. 도 4는 도 1의 실제 영상과 깊이 정보맵의 각 픽셀의 레벨(실제 영상에서는 휘도(luminance) 성분의 레벨 즉 밝기를 뜻하고, 깊이 정보맵에서는 깊이의 레벨을 뜻한다)을 표현한 3차원 그래프인데, 실제 영상의 그래프(도 4 왼쪽 그래프)에서는 픽셀 사이에 변화가 심한 형태를 보여주고 있음을 확인할 수 있고, 반면 깊이 정보맵의 그래프(도 4 오른쪽 그래프)는 상당히 완만한 형태를 보여주고 있음을 확인할 수 있다.The depth information map has a rather gentle characteristic unlike the general real image, and it can be easily seen through FIG. 4. FIG. 4 is a three-dimensional graph representing the level of each pixel of the actual image and the depth information map of FIG. 1 (ie, the luminance component level in the real image, that is, the brightness level, and the depth level in the depth information map). In the graph of the actual image (left graph of Fig. 4), it can be seen that there is a severe change between the pixels, while the depth map (right graph of Fig. 4) shows a fairly gentle shape. can confirm.
그리고 또한 깊이 정보맵을 비트플래인(bit-plane) 단위로 표현할 수 있는데, 깊이 정보맵의 비트플래인은 실사 영상의 비트플래인에 비해 상당히 단조로운 형태를 보여준다. 도 5 도 1의 실제 영상과 깊이 정보맵을 비트플래인 단위로 표현한 모습을 보여준다. 실제 영상의 비트플래인(도 5 왼쪽)은 최상위 비트플래인(MSBP; most significant bit-plane)은 단조로운 형태 정보를 가지지만 하위 비 트플래인으로 갈수록 상당히 복잡해지며, 최하위 비트플래인(LSBP; least significant bit-plane)부터 세 개의 비트플래인은 거의 백색 잡음(white noise) 형태로 상당히 복잡함을 알 수 있다. 하지만 깊이 정보맵의 비트플래인(도 5 가운데)은 최상위 비트플래인부터 최하위 비트플래인으로 갈수록 복잡해지긴 하나, 전체 비트플래인이 실제 영상의 비트플래인에 비해 상당히 단조로운 형태를 보임을 알 수 있다. 또한 깊이 정보맵의 각 비트플래인 모습은 어떤 일정한 형태를 유지하고 있음을 확인할 수 있다. 그리고 보통 비트플래인을 표현할 때 그레이 코드(gray code)를 적용하면 각 비트플래인 단위에서 주변 비트값의 유사도가 증가하게 되는데 깊이 정보맵의 각 레벨 값에 그레이 코드를 적용한 비트플래인의 모습은 도 5 오른쪽과 같고, 더욱 단조로운 형태를 보이는 것을 쉽게 확인할 수 있다.In addition, the depth information map can be expressed in units of bit planes. The bit plane of the depth information map shows a relatively monotonous form compared to the bit plane of the real image. FIG. 5 shows a representation of a real image and a depth information map of FIG. 1 in units of bit planes. The bitplane of the real image (left of FIG. 5) has the most significant bit-plane (MSBP), but has a monotonous form information, but becomes more complicated toward the lower bitplane, and has the least significant bitplane (LSBP). From the least significant bit-plane, we can see that the three bitplanes are quite complex, almost in the form of white noise. However, although the bitplane of the depth information map (in FIG. 5) becomes more complicated from the highest bitplane to the lowest bitplane, it can be seen that the overall bitplane is considerably more monotonous than the actual bitplane. have. In addition, it can be seen that each bit plane of the depth information map maintains a certain shape. In general, when gray codes are applied to express bit planes, the similarity of neighboring bit values increases in each bit plane unit. The bit plane in which gray codes are applied to each level value of the depth information map is shown. 5, the same as the right side, it can be easily seen that the more monotonous form.
일 예로 도 6은 Ballet 영상의 깊이 정보맵에서 객체 경계 부분 매크로블록의 비트플래인 영상을 분석한 것으로써, 실제 매크로블록과, 실제 매크로블록을 비트플래인으로 분리한 결과와, 실제 매크로블록에 그레이 코드를 적용한 후 비트플래인으로 분리한 결과를 보여준다.For example, FIG. 6 is a result of analyzing a bitplane image of a macroblock of an object boundary in a depth information map of a ballet image. The result of separating the actual macroblock and the actual macroblock into bitplanes, After applying the gray code, the result is divided into bit planes.
도 6의 실제 깊이 정보맵의 매크로블록을 비트플래인 단위로 분리한 이진 영상들을 살펴보면, MSB 비트플래인에서부터 LSB 비트플래인까지의 이진 영상이 단조로운 형태로 되어 있는 것을 알 수 있다. 특히 MSB 비트플래인과 MSB-1 비트플래인 그리고 MSB-3 비트플래인은 이진 영상이 완전히 일치하며, 또한 MSB-2 비트플래인과 MSB-4 비트플래인도 이진 영상이 완전히 일치한다는 것을 알 수 있다. 그리고 MSB, MSB-1, MSB-3 비트플래인의 이진 영상을 MSB-2, MSB-4 비트플래인의 이진 영 상과 비교해보면 완전히 반전되게 일치한다는 것을 알 수 있으며, 또한 MSB-5 비트플래인의 이진 영상을 MSB-6 비트플래인의 이진 영상과 비교해보면 완전히 반전되게 일치한다는 것을 알 수 있다. 그리고 LSB 비트플래인의 이진 영상은 다른 어떠한 비트플래인의 이진 영상과도 일치하지 않고 전혀 다른 형태를 가진다는 것을 알 수 있다. Looking at binary images obtained by dividing the macroblocks of the actual depth information map of FIG. 6 into bitplane units, it can be seen that binary images from the MSB bitplane to the LSB bitplane are monotonous. In particular, the MSB bitplane, the MSB-1 bitplane, and the MSB-3 bitplane show that the binary image matches perfectly, and the MSB-2 bitplane and the MSB-4 bitplane also show that the binary image matches perfectly. have. Comparing the binary image of the MSB, MSB-1, and MSB-3 bitplanes with the binary image of the MSB-2 and MSB-4 bitplanes, it can be seen that the binary images of the MSB-2, MSB-1, and MSB-4 bitplanes are completely inverted. Comparing the binary image of phosphorus with the binary image of MSB-6 bitplane, we can see that it is completely inverted. And it can be seen that the binary image of the LSB bitplane does not match the binary image of any other bitplane and has a completely different shape.
따라서, 도 6의 실제 깊이 정보맵의 매크로블록에 그레이 코드를 적용한 후 비트플래인 단위로 분리하게 되면, 현재 비트플래인의 이진 영상과 현재 비트플래인보다 한 단계 상위 비트플래인의 이진 영상이 완전히 일치하는 경우에는 현재 비트플래인의 이진 영상은 모두 '0(0)'이 되며, 현재 비트플래인의 이진 영상과 현재 비트플래인보다 한 단계 상위 비트플래인의 이진 영상이 완전히 반전되게 일치하는 경우에는 현재 비트플래인의 이진 영상은 모두 '255(1)'가 된다. 그 결과 도 6의 실제 깊이 정보맵의 매크로블록에 그레이 코드를 적용한 후 비트플래인 단위로 분리한 이진 영상들을 살펴보면, MSB-1 비트플래인의 이진 영상은 모두 '0(0)'이 되며, MSB-2 비트플래인, MSB-3 비트플래인, MSB-4 비트플래인, MSB-6 비트플래인의 이진 영상은 모두 '255(1)'가 된다. Therefore, when the gray code is applied to the macroblock of the actual depth information map of FIG. 6 and separated into bit plane units, the binary image of the current bit plane and the binary image of the bit plane higher than the current bit plane are displayed. In case of a perfect match, the binary image of the current bitplane is all '0 (0)', and the binary image of the current bitplane and the binary image of the bitplane one level higher than the current bitplane are completely inverted. In this case, all binary images of the current bitplane are '255 (1)'. As a result, when the gray codes are applied to the macroblocks of the actual depth information map of FIG. 6 and the binary images separated by bit plane units, the binary images of the MSB-1 bit plane are all '0 (0)'. The binary images of the MSB-2 bitplane, the MSB-3 bitplane, the MSB-4 bitplane, and the MSB-6 bitplane all become '255 (1)'.
이와 같은 특성을 이용하여 깊이 정보맵에 그레이 코드를 적용하여 비트플래인 단위로 코딩할 수 있는데 도 6의 실제 깊이 정보맵의 매크로블록에 그레이 코드를 적용한 후 비트플래인 코딩 시, MSB 비트플래인과 MSB-5 비트플래인 그리고 LSB 비트플래인의 이진 영상의 경우에은 이진 영상 압축 방법을 이용하여 코딩하고 그 이외의 비트플래인의 이진 영상의 경우에는 현재 이진 영상이 모두 '0(0)'인지 아 니면 모두 '255(1)'인지에 대한 정보만 코딩하면 된다. 이러한 비트플래인 코딩 방법은 객체 경계 부분에서 코딩 효율이 좋지 못한 DCT 기반 동영상 압축 방법보다 상당히 월등한 코딩 효율을 가질 수 있다.Using this characteristic, gray code may be applied to the depth information map to be coded in bit plane units. When applying gray code to the macroblock of the actual depth information map of FIG. 6, when coding bit plane, MSB bit plane In the case of binary image of MSB-5 bitplane and LSB bitplane, the binary image compression method is used. In the case of other binary image of bitplane, all current binary image is '0 (0)'. You only need to code information about whether it is '255 (1)' or not. This bitplane coding method may have considerably superior coding efficiency than the DCT-based video compression method in which coding efficiency is poor at an object boundary part.
깊이 정보맵을 그레이 코드로 변환했을 때 정보의 손실이 발생을 한다면 그레이 코드를 기존의 깊이 정보맵으로 복원할 때, 정확한 값을 복원할 수 없다. 따라서 "비트플래인 코딩" 과정에서 비트량 조절을 위해 정보의 손실을 허용하기 위해서는 MSB 비트플래인부터 LSB 비트플래인의 순서로 차례대로 코딩할 비트플래인의 수를 증가시키면서 코딩을 수행해야 한다. If loss of information occurs when the depth map is converted to gray code, the correct value cannot be restored when the gray code is restored to the existing depth map. Therefore, in order to allow loss of information for bit rate control in the "bitplane coding" process, coding should be performed while increasing the number of bitplanes to be coded in order from MSB bitplane to LSB bitplane. .
또 다른 일 예로 도 7은 Ballet 영상의 깊이 정보맵에서 배경 부분 매크로블록의 비트플래인 영상을 분석한 것으로써, 실제 매크로블록과, 실제 매크로블록을 비트플래인으로 분리한 결과와, 실제 매크로블록에 그레이 코드를 적용한 후 비트플래인으로 분리한 결과를 보여준다.As another example, FIG. 7 illustrates the analysis of a bitplane image of a background partial macroblock in a depth information map of a ballet image. The result of separating the actual macroblock from the actual macroblock into a bitplane, and the actual macroblock Shows the result of applying a gray code to the bit plane and separating it into bit planes.
도 7의 실제 깊이 정보맵의 매크로블록을 비트플래인 단위로 분리한 이진 영상들을 살펴보면, 이진 영상들이 단조롭지만 도 6에서의 비트플래인 단위로 분리한 이진 영상들 보다 대체적으로 복잡한 형태를 가진다는 것을 알 수 있다. 그리고 MSB 비트플래인과 MSB-1 비트플래인은 모두 '0(0)'이고, MSB-2 비트플래인은 모두 '255(1)'로써, MSB-2 비트플래인부터 값이 존재한다는 것을 알 수 있다. 또한 MSB-4 비트플래인의 이진 영상을 LSB 비트플래인의 이진 영상과 비교해보면 완전히 일치한다는 것을 알 수 있으며, MSB-4, LSB 비트플래인의 이진 영상을 MSB-3 비트플래인의 이진 영상과 비교해보면 완전히 반전되게 일치한다는 것을 알 수 있다. Looking at the binary images obtained by dividing the macroblocks of the actual depth information map of FIG. 7 in bitplane units, the binary images are monotonous but generally have a more complicated form than the binary images separated in bitplane units in FIG. 6. It can be seen that. The MSB bitplane and the MSB-1 bitplane are both '0 (0)' and the MSB-2 bitplane is '255 (1)', indicating that values exist from the MSB-2 bitplane. Able to know. Comparing the binary image of the MSB-4 bitplane with the binary image of the LSB bitplane, it can be seen that the binary image of the MSB-4 and LSB bitplanes is perfectly matched. Comparing with, we can see that the correspondence is completely reversed.
따라서, 도 7의 실제 깊이 정보맵의 매크로블록에 그레이 코딩을 수행한 비트플래인에서 MSB, MSB-1, MSB-2, MSB-4 비트플래인은 이진 영상은 모두 '0(0)'이거나 모두 '255(1)'이므로 비트플래인 코딩 시 현재 비트플래인의 이진 영상이 모두 '0(0)'인지 아니면 모두 '255(1)'인지에 대한 정보만 보내주면 된다. 그리고 그레이 코딩된 비트플래인에서 MSB-3, MSB-5, MSB-6, LSB 비트플래인의 이진 영상은 이진 영상 압축 알고리즘을 이용하여 코딩해야 한다. 하지만 도 7의 실제 깊이 정보맵의 매크로블록은 카메라로부터 거리가 멀리 떨어져 있어서 픽셀값이 작고, 블록 내의 픽셀값 간의 상관도가 높기 때문에 DCT 기반 동영상 압축 알고리즘을 이용하여 코딩할 경우 비트플래인 단위 이진 영상 코딩보다 높은 코딩 효율을 가질 수 있다. Accordingly, in the bitplanes in which gray coding is performed on the macroblocks of the actual depth information map of FIG. 7, the MSB, MSB-1, MSB-2, and MSB-4 bitplanes are all zeros (0). Since all are '255 (1)', only bitmap coding needs to send information on whether the binary image of the current bitplane is '0 (0)' or '255 (1)'. In the gray coded bitplane, binary images of the MSB-3, MSB-5, MSB-6, and LSB bitplanes should be coded using a binary image compression algorithm. However, since the macroblock of the actual depth information map of FIG. 7 is far from the camera, the pixel value is small and the correlation between the pixel values in the block is high. It may have higher coding efficiency than image coding.
이러한 사실을 통해서 비트플래인 단위 이진 영상 코딩 방법과 DCT 기반 동영상 압축 방법의 장점을 적절하게 이용하기 위한 방법이 필요하며, 또한 비트플래인 코딩시 원하는 비트율을 얻기 위한 방법이 필요하다. Through this fact, there is a need for a method for properly utilizing the advantages of the bitplane unitary binary image coding method and the DCT-based video compression method, and a method for obtaining a desired bit rate in bitplane coding.
[발명의 방법][Method of Invention]
본 발명에서는 비트플래인 단위 이진 영상 코딩 방법과 DCT 기반 동영상 압축 방법의 장점을 적절하게 이용하고 또한 비트플래인 코딩 시 원하는 비트율을 얻기 위해서 블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법과, 깊이 정보맵을 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법을 제안한다.In the present invention, in order to properly utilize the advantages of the bitplane unitary binary image coding method and the DCT-based video compression method, and to obtain a desired bitrate in bitplane coding, the block unit bitplane coding method and the conventional block unit video coding method The present invention proposes a method of adaptively selecting and coding and a method of adaptively selecting a bitplane to be coded by dividing the depth information map into bitplane units.
[방법] 블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법과, 깊이 정보맵을 비트플래인 단위로 분리하여 코딩할 [Method] A method of adaptively selecting and coding a block unit bitplane coding method and an existing block unit video coding method, and separately coding a depth information map into bit plane units 비트플래인을Bitplane 적응적으로 선택하는 방법 How to choose adaptively
<인코더><Encoder>
블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법과, 깊이 정보맵을 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법의 인코더 구조도의 일 예는 도 8과 같다.The method of adaptively selecting and coding a block unit bitplane coding method and a conventional block unit video coding method, and a method of adaptively selecting a bit plane to be coded by dividing a depth information map into bit plane units An example of an encoder structure diagram is shown in FIG. 8.
도 8의 인코더 구조도는 입력된 깊이 정보맵을 MxN 블록 단위로 분리하여 코딩되며, MxN 블록 단위로 입력된 깊이 정보맵 블록은 비트플래인 코딩 모드 혹은 기존 코딩 모드 중에 적응적으로 선택되어 코딩이 수행이 된다. 기존 코딩 모드가 선택이 되었을 경우에는 도 8에서 'A'로 표시되어 있는 부분이 수행되며, 'A'는 깊이 정보맵 블록을 입력 받아 기존의 동영상 코딩 방법(MPEG-1, MPEG-2, MPEG-4 Part 2 Visual, H.264/AVC, SVC, MVC, VC-1, AVS, KTA, 등)으로 인코딩하여 비트스트림을 출력한다. 비트플래인 코딩 모드가 선택이 되었을 경우에는 'B'로 표시되어 있는 부분이 수행되며, 'B'는 n-bit로 표현되는 깊이 정보맵 블록과 참조 영상, 양자화 파라미터를 입력 받아 비트플래인 단위 코딩 방법을 이용하여 인코딩하고 비트스트림을 출력한다.The encoder structure diagram of FIG. 8 is coded by dividing the input depth information map in MxN block units, and the depth information map block input in MxN block units is adaptively selected in a bitplane coding mode or an existing coding mode to perform coding. Becomes When the existing coding mode is selected, the portion marked as 'A' in FIG. 8 is performed, and 'A' receives the depth information map block and receives the existing video coding method (MPEG-1, MPEG-2, MPEG). -4
도 8에서는 기존 코딩 모드 'A'의 일 예로 H.264/AVC의 인코더 구조도를 보여준다. 'A'의 인코더 구조도에서 데이터를 처리하는 단위는 가로 세로 16x16픽셀 크기의 매크로블록(Macroblock)이며, 인트라 모드 또는 인터 모드로 인코딩이 수행된다. 인트라(Intra) 모드일 경우, 'A' 내부의 스위치가 인트라로 전환이 되며, 인터(Inter) 모드일 경우에는 스위치가 인터로 전환이 된다. 코딩 과정의 주요한 흐름은 먼저 입력된 매크로블록에 대한 예측 블록을 생성한 후, 입력된 매크로블록과 예측 블록과의 차분을 구해 그 차분을 코딩하는 것이다. 먼저 예측 블록의 생성은 인트라 모드와 인터 모드에 따라 수행이 된다. 먼저 인트라 모드일 경우에는 "인트라 예측" 과정에서 현재 매크로블록의 이미 코딩된 주변 픽셀값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성하며, 인터 모드일 경우에는 참조 영상 버퍼에 저장되어 있는 참조 영상에서 현재 입력된 블록과 가장 매치가 잘 되는 영역을 찾아 움직임 벡터(Motion Vector)를 구하는 과정인 "움직임 예측"을 수행하고, 구한 움직임 벡터를 이용하여 참조 영상 버퍼에 저장되어 있는 참조 영상에서 예측 블록을 가져오는 과정인 "움직임 보상"을 수행해서 예측 블록을 생성한다. 상기 설명한 것과 같이 현재 입력된 블록을 생성한 예측 블록과 차분을 구하여 잔여 블록(Residual Block)을 생성한 후, 이에 대한 코딩을 수행한다. 잔여 블록에 대한 코딩은 "변환", "양자화", "엔트로피 코딩"의 순서로 수행이 된다. 먼저 "변환" 과정에서는 입력된 잔여 블록을 입력 받아 변환(Transform)을 수행하여 변환계수(Transform Coefficient)를 출력한다. 그리고 "양자화" 과정에서는 입력된 변환계수를 양자화 파라미터에 따라 양자화를 수행한 양자화된 계수(Quantized Coefficient)를 출력한다. 그리고 "엔트로피 코딩" 과정에서는 입력된 양자화된 계수를 확률 분포에 따른 엔트로피 코딩을 수행하여 결과를 출력한다. 수행된 결과는 "MUX"에 입력되어 비트스트림으로 출력이 된다. H.264/AVC는 프레임간(Inter-frame) 예측 코딩을 수행하기 때문에 현재 코딩된 영상을 이후에 입력된 영상의 참조 영상으로 사용하기 위해 디코딩하여 저장할 필요가 있다. 따라서 양자화된 계수를 "역양자화"과정과 "역변환"을 수행하여 예측 영상과 가산기를 통해 재구성된 블록을 생성한 다음 "디블록킹 필터"를 통해 코딩 과정에서 발생한 블록킹 현상(Blocking Artifact)을 제거한 후, "재구성된 영상 버퍼"에 저장한다.8 shows an encoder structure diagram of H.264 / AVC as an example of the existing coding mode 'A'. In the encoder structure diagram of 'A', a unit for processing data is a macroblock having a width of 16 × 16 pixels and encoding is performed in an intra mode or an inter mode. In the Intra mode, the switch inside 'A' is switched to Intra, and in the Inter mode, the switch is switched to Inter. The main flow of the coding process is to first generate a prediction block for the input macroblock, then obtain the difference between the input macroblock and the prediction block and code the difference. First, the generation of the prediction block is performed according to the intra mode and the inter mode. First, in intra mode, a prediction block is generated by performing spatial prediction using neighboring coded neighboring pixel values of the current macroblock in the "intra prediction" process, and in the inter mode, a reference picture stored in a reference picture buffer. Performs “motion prediction”, which is a process of finding a motion vector that finds the best match with the currently input block, and uses the obtained motion vector to predict the prediction block in the reference picture stored in the reference picture buffer. A prediction block is generated by performing a "motion compensation" process. As described above, a residual block is generated by obtaining a difference from a prediction block that generates the currently input block, and then coding is performed on the residual block. Coding for the remaining blocks is performed in the order of "transformation", "quantization", and "entropy coding". First, in the "transform" process, the received residual block is input to perform transform and output a transform coefficient. In the "quantization" process, a quantized coefficient obtained by quantizing the input transform coefficient according to the quantization parameter is output. In the "entropy coding" process, entropy coding is performed on the input quantized coefficients according to probability distribution and the result is output. The result is input to "MUX" and output as a bitstream. Since H.264 / AVC performs inter-frame predictive coding, it is necessary to decode and store the current coded picture for use as a reference picture of a later input picture. Therefore, by performing "inverse quantization" and "inverse transformation" on the quantized coefficients, a reconstructed block is generated through a predictive image and an adder, and then a blocking artifact generated during the coding process is removed using a "deblocking filter". In the "reconstructed video buffer".
도 8에서 비트플래인 코딩 모드 'B'는 비트플래인 단위 코딩 방법의 인코더 구조도를 보여준다. 'B'의 인코더 구조도에서 데이터를 처리하는 단위는 가로 세로 MxN픽셀 크기의 블록이다.In FIG. 8, the bitplane coding mode 'B' shows an encoder structure diagram of the bitplane unit coding method. In the encoder structure diagram of 'B', a unit for processing data is a block having a size of horizontal and vertical MxN pixels.
여기에서 깊이 정보맵을 코딩할 때 데이터를 처리하는 단위는 다양하게 적용될 수 있다.Here, when coding the depth information map, various units for processing data may be applied.
(1) 하나의 일 실시 예로서, MxN픽셀 크기의 블록을 작은 블록으로 나누어서 서브 블록을 구성하고 구성된 서브 블록이 각각 다른 방법이나 다른 블록 모드로 코딩될 수 있다. (1) As one embodiment, a block of MxN pixel size is divided into small blocks to form a sub block, and the configured sub blocks may be coded in different methods or different block modes.
(2) 또 다른 실시 예로서, MxN픽셀 크기의 블록들을 큰 블록 혹은 더 큰 영역으로 합쳐서 코딩될 수 있다. (2) As another example, MxN pixel-sized blocks may be coded by combining them into large blocks or larger areas.
(3) 또 다른 실시 예로서, 위 (1)과 (2)의 방법을 조합하여 여러 크기의 블록들로 코딩될 수 있다.(3) As another embodiment, the combination of the above methods (1) and (2) may be coded into blocks of various sizes.
이 외에도 위와 같이 깊이 정보맵을 코딩할 때 데이터를 처리하는 단위는 다양한 방법으로 변경될 수 있다.In addition, when the depth information map is coded as described above, a unit for processing data may be changed in various ways.
도 8의 "그레이 코드 변환" 과정에서는 깊이 정보맵 블록을 입력 받아서 각각의 픽셀을 그레이 코드로의 변환을 수행한다. 그레이 코드는 연속하는 값을 표현할 때, 1-비트만을 변경하여 표현하는 코드이다. 일반적으로 깊이 정보맵은 주변 픽셀과 상당히 유사한 특성을 갖는데, 깊이 정보맵 그대로를 비트플래인으로 나누었을 경우에는 각 비트플래인의 픽셀은 픽셀의 유사도와 상관없이 서로 다른 값을 가질 수 있다. 일 예로 8-비트로 표현되는 깊이 정보맵에서 연속되는 두 개의 픽셀이 '127'과 '128'의 값을 가진다고 가정할 경우에 '127'은 이진수로 (01111111)2 로 표현이 되며 '128'은 이진수로 (10000000)2 로 표현이 된다. 이와 같은 경우에는 깊이 정보 자체는 유사한 값을 갖지만, 비트플래인 별로 비교를 했을 경우에는 모든 비트에서 다른 값을 가지는 것을 확인할 수 있다. 하지만 깊이 정보맵을 그레이 코드로 변경하였을 경우에는 실제 값이 '1' 차이가 나면 1-비트만 차이가 나도록 되어 있기 때문에 각 비트플래인 안에서 주변 비트값의 유사도를 높여줄 수 있다. 실제 m-비트 깊이 정보 픽셀의 이진값 (am-1…a2a1a0)2 를 그레이 코드 (gm-1…g2g1g0)2 로 변경하는 방법은 아래 수학식 2와 같다.In the “gray code conversion” process of FIG. 8, the depth information map block is input and each pixel is converted into a gray code. Gray code is a code for changing only one bit when expressing successive values. In general, the depth information map has characteristics very similar to the surrounding pixels. When the depth information map is divided into bit planes, the pixels of each bit plane may have different values regardless of the similarity of the pixels. For example, assuming that two consecutive pixels in the depth information map represented by 8-bit have values of '127' and '128', '127' is represented by binary (01111111) 2 and '128' is represented by It is represented as (10000000) 2 in binary. In this case, the depth information itself has a similar value, but when the comparison is performed for each bit plane, it can be seen that all bits have different values. However, when the depth information map is changed to gray code, only 1-bit is different when the actual value is '1', and thus the similarity of neighboring bit values in each bit plane can be increased. The method of changing the binary values (a m-1 … a 2 a 1 a 0 ) 2 of the actual m-bit depth information pixels to gray codes (g m-1 … g 2 g 1 g 0 ) 2 is shown in
여기에서 는 XOR(eXclusive OR) 연산을 의미한다. 실제 '127'과 '128'의 값을 그레이 코드로 변환을 수행하면 '127'은 이진수로 (11000000)2 로 표현이 되며, '128'은 이진수로 (01000000)2 로 표현이 된다. 그레이 코드로 변환을 수행하였을 때 각 비트의 유사도가 증가한 것을 쉽게 확인할 수 있다. "그레이 코드 변환" 과정은 수행될 수도 있고 수행되지 않을 수도 있다.From here Means an XOR (eXclusive OR) operation. If you convert the values of '127' and '128' to gray code, '127' is represented by binary (11000000) 2 and '128' is represented by binary (01000000) 2 . When the conversion to the gray code is performed, it can be easily seen that the similarity of each bit is increased. The "gray code conversion" process may or may not be performed.
도 8의 "비트플래인 분리" 과정에서는 n-bit로 표현되는 깊이 정보맵 블록을 입력 받아서 n개의 비트플래인 블록으로 분리한다. 도 8의 "비트율 조절" 과정에서는 입력된 깊이 정보맵 블록에 비트율 조절 기능이 필요할 경우 선택적으로 사용할 수 있는 과정으로써, 실제 코딩 시에 원하는 비트율을 얻기 위해 코딩될 비트율을 조절한다. "비트율 조절"에 대한 설명은 추후에 자세히 설명한다. 여기에서 "비트플래인 분리" 과정이 수행된 후 "비트율 조절" 과정이 수행될 수 있으며, 혹은 "비트율 조절" 과정이 수행된 후 "비트플래인 분리" 과정이 수행될 수 있다. "비트플래인 분리" 과정과 "비트율 조절" 과정을 거친 분리된 비트플래인 블록들은 "비트플래인 코딩" 과정으로 반복하여 입력이 되어 "비트플래인 코딩"을 수행한 결과로 비트스트림을 출력한다. In the “bitplane separation” process of FIG. 8, a depth information map block represented by n-bit is received and divided into n bitplane blocks. In the “bit rate adjustment” process of FIG. 8, a bit rate adjustment function may be selectively used when an input depth information map block is needed. The bit rate to be coded is adjusted to obtain a desired bit rate in actual coding. The description of "bit rate adjustment" will be described later in detail. Here, after the "bit plane separation" process is performed, the "bit rate adjustment" process may be performed, or after the "bit rate adjustment" process, the "bit plane separation" process may be performed. The separated bitplane blocks that have undergone the "bitplane separation" process and the "bitrate adjustment" process are inputted repeatedly by the "bitplane coding" process to output the bitstream as a result of performing "bitplane coding". do.
도 8의 참조 영상 버퍼에 저장되어 있는 참조영상과 재구성된 영상 버퍼에 저장되어 있는 재구성된 영상은 "비트플래인 코딩" 과정으로 입력된다. 도 8의 "비트플래인 코딩" 과정에서는 각각의 비트플래인을 인코딩하여 비트스트림을 출력한다. "비트플래인 코딩"을 수행하는 방법은 추후에 자세히 설명한다. The reference picture stored in the reference picture buffer of FIG. 8 and the reconstructed picture stored in the reconstructed picture buffer are input through a process of "bitplane coding." In the “bitplane coding” process of FIG. 8, each bitplane is encoded to output a bitstream. How to perform "bitplane coding" is described in detail later.
도 8에서 비트플래인 코딩이 선택되어 "비트플래인 코딩"을 수행하고, 코딩을 수행한 데이터는 이후에 입력되는 깊이 정보맵의 코딩을 위해 "비트플래인 디코딩"을 수행한다. 도 8의 참조 영상 버퍼에 저장되어 있는 참조영상과 재구성된 영상 버퍼에 저장되어 있는 재구성된 영상은 "비트플래인 디코딩" 과정으로 입력된다. "비트플래인 디코딩" 과정에서는 비트스트림을 입력 받아 비트플래인 수만큼 반복해서 수행이 되며, 입력된 비트스트림을 각 비트플래인 별로 디코딩하여 n개의 비트플래인 영상을 출력한다. "비트플래인 디코딩"을 수행하는 방법은 추후에 자세히 설명한다. "비트플래인 결합" 과정에서는 출력된 각각의 비트플래인 영상을 결합하여 n-bit로 표현되는 영상을 출력한다. "역 그레이 코드 변환" 과정에서는 그레이 코드로 표현된 깊이 정보맵을 원래의 형태로 복원하는 것으로 실제 m-비트 깊이 정보 픽셀의 그레이 코드 (gm-1…g2g1g0)2 를 이진값 (am-1…a2a1a0)2 로 변경하는 방법은 아래 수학식 3과 같다.In FIG. 8, bitplane coding is selected to perform "bitplane coding", and the coded data performs "bitplane decoding" for coding of a depth information map input later. The reference picture stored in the reference picture buffer of FIG. 8 and the reconstructed picture stored in the reconstructed picture buffer are input through a process of "bitplane decoding." In the "bitplane decoding" process, the bitstream is input and repeatedly performed as many as the number of bitplanes. The bitstream is decoded for each bitplane to output n bitplane images. How to perform "bitplane decoding" is described in detail later. In the "bitplane combining" process, each of the output bitplane images is combined to output an image represented by n-bit. In the "inverse gray code conversion" process, a gray code (g m-1 … g 2 g 1 g 0 ) 2 of an actual m-bit depth information pixel is restored by restoring a depth information map expressed in gray code to its original form. The method of changing the value (a m-1 ... a 2 a 1 a 0 ) 2 is shown in
여기에서 XOR(eXclusive OR) 연산을 의미한다.From here This means an XOR (eXclusive OR) operation.
"깊이 정보맵 구성" 과정에서는 n-bit로 표현되는 영상을 실제 깊이 정보맵의 비트수에 맞게 구성하여 깊이 정보맵을 출력한다. In the "depth information map construction" process, an image represented by n-bit is configured according to the number of bits of the actual depth information map, and the depth information map is output.
여기에서 깊이 정보맵을 구성하는 방법은 다양하게 적용될 수 있다.Here, the method of constructing the depth information map may be variously applied.
(1) 하나의 일 실시 예로서, 현재 블록을 실제 깊이 정보맵의 비트수에 맞게 구성하기위해 코딩되지 않은 비트플래인 블록의 모든 값을 '0(0)'으로 설정하여 구성할 수 있다. (1) As one embodiment, in order to configure the current block according to the number of bits of the actual depth information map, all values of the uncoded bitplane block may be set to '0 (0)'.
(2) 또 다른 실시 예로서, 현재 블록을 실제 깊이 정보맵의 비트수에 맞게 구성하기 위해 코딩되지 않은 비트플래인 블록의 모든 값을 '255(1)'로 설정하여 구성할 수 있다.(2) As another embodiment, in order to configure the current block according to the number of bits of the actual depth information map, all values of the uncoded bitplane block may be set to '255 (1)'.
(3) 또 다른 실시 예로서, 현재 블록을 실제 깊이 정보맵의 비트수에 맞게 구성하기 위해 코딩되지 않은 비트플래인 블록을 모두 '0(0)'으로 구성할지 혹은 모두 '255(1)'로 구성할지에 대한 정보를 코딩하여 코딩되지 않은 비트플래인 블록을 구성할 수 있다. 코딩되지 않은 비트플래인 블록을 어떻게 구성할지에 대한 정보는 비트스트림에 포함될 수 있다.(3) As another example, in order to configure the current block according to the number of bits of the actual depth information map, whether all uncoded bitplane blocks are configured as '0 (0)' or all as '255 (1)'. By coding information on whether or not to configure a non-coded bitplane block. Information on how to construct an uncoded bitplane block may be included in the bitstream.
(4) 또 다른 실시 예로서, 현재 블록을 실제 깊이 정보맵의 비트수에 맞게 구성하기 위해 코딩되지 않은 비트플래인 블록을 그 블록에 인접하는 주변 비트플래인 블록의 픽셀값을 이용한 패딩(Padding) 방법을 통해 구성할 수 있다. 여기에서 주변 비트플래인 블록의 픽셀값을 이용한 패딩(Padding)은 여러 가지의 패딩 방향을 가질 수 있으며, 해당 패딩 방향에 대한 정보는 비트스트림에 포함된다.(4) As another example, in order to configure the current block according to the number of bits of the actual depth information map, padding using the pixel values of the neighboring bitplane blocks adjacent to the block to the uncoded bitplane block Can be configured through the Here, padding using pixel values of the neighboring bitplane blocks may have various padding directions, and information on the corresponding padding direction is included in the bitstream.
이 외에도 위와 같이 깊이 정보맵을 구성하는 방법은 상식적으로 다양한 방법으로 변경될 수 있다.In addition, the method of constructing the depth information map as described above may be changed in various ways.
구성된 깊이 정보맵은 기존 코딩 모드 'A'에서 인트라 예측에 사용되거나 디블록킹 필터를 거쳐 재구성된 영상 버퍼에 저장된다. 이때 현재 블록에 대한 디블록킹 필터의 수행 여부 정보를 코딩하여 그 정보를 통해 디블록킹 필터를 수행할 수 있다. 여기에서 구성된 깊이 정보맵은 디블록킹 필터를 거치지 않고 재구성된 영상 버퍼에 저장될 수 있다. 또한 구성된 깊이 정보맵은 디블록킹 필터를 거친 후 인트라 예측에 사용될 수 있다.The constructed depth information map is used for intra prediction in the existing coding mode 'A' or stored in the reconstructed image buffer through a deblocking filter. In this case, information about whether the deblocking filter is performed on the current block may be coded, and the deblocking filter may be performed based on the information. The depth map configured here may be stored in the reconstructed image buffer without passing through the deblocking filter. In addition, the configured depth information map may be used for intra prediction after passing through a deblocking filter.
"비트플래인 코딩"을 수행하는 방법의 실시 일 예로 국제 동영상 표준인 MPEG-4 Part 2 Visual(ISO/IEC 14496-2)의 이진 형상 코딩(binary shape coding)에서 사용하는 방법을 응용하여 사용할 수 있다. 제안하는 "비트플래인 코딩"의 일 예는 도 9와 같다.As an example of a method of performing "bitplane coding", the method used in binary shape coding of the international video standard MPEG-4
도 9에서 입력된 현재 비트플래인 블록은 현재 코딩하려고 하는 깊이 정보맵 블록에서 코딩을 수행할 비트플래인 블록을 의미한다. 도 8의 참조 영상 버퍼에 저장되어 있는 참조영상과 도 8의 재구성된 영상 버퍼에 저장되어 있는 재구성된 영상은 각각 "그레이 코드 변환"과정과 "비트플래인 분리" 과정을 거쳐 그레이 코드가 적용된 각각의 비트플래인으로 분리되고, 현재 코딩할 비트플래인과 동일한 비트플래인의 참조 비트플래인 영상은 "움직임 예측"과 "CAE인코딩" 과정으로 입력된다. The current bitplane block input in FIG. 9 means a bitplane block to be coded in a depth information map block to be currently coded. The reference image stored in the reference image buffer of FIG. 8 and the reconstructed image stored in the reconstructed image buffer of FIG. 8 are each applied with gray codes through a "gray code conversion" process and a "bitplane separation" process. A reference bitplane image of the same bitplane, which is separated into a bitplane of and is identical to the bitplane to be currently coded, is input in a "motion prediction" and a "CAE encoding" process.
도 9의 "움직임 예측" 과정에서는 현재 비트플래인 블록과 가장 유사한 부분을 참조 비트플래인 영상에서 검색하여 가장 잘 매치가 되는 영역과의 움직임 변위 즉 움직임 벡터를 계산하여 출력한다. "움직임 보상" 과정에서는 "움직임 예측" 과정에서 생성된 움직임 벡터를 이용하여 참조 비트플래인 영상으로부터 움직임 보상된 비트플래인 블록을 출력한다. In the "motion prediction" process of FIG. 9, the portion most similar to the current bitplane block is searched in the reference bitplane image to calculate and output a motion displacement, that is, a motion vector with a region that matches best. In the "motion compensation" process, a motion compensated bitplane block is output from the reference bitplane image using the motion vector generated in the "motion prediction" process.
"모드 결정" 과정에서는 현재 비트플래인 블록의 모드를 결정하는 부분으로써 현재 비트플래인 블록과 움직임 보상된 비트플래인 블록을 통해 결정이 되며, 현재 깊이 정보맵 프레임의 코딩 모드가 시간 방향 예측을 수행하지 않을 경우에 사용되는 인트라(Intra) 픽쳐 모드 결정 방법과, 현재 깊이 정보맵 프레임의 코딩 모드가 시간 방향 예측을 수행할 경우에 사용되는 인터(Inter)픽쳐 모드 결정 방법을 수행하며, 각각의 상세한 설명은 추후에 자세히 설명한다. In the "mode decision" process, the mode of the current bitplane block is determined through the current bitplane block and the motion-compensated bitplane block, and the coding mode of the current depth information map frame is used to determine the time direction prediction. Intra picture mode determination method used when not performed, and inter picture mode determination method used when the coding mode of the current depth information map frame performs time direction prediction is performed. The detailed description will be described later in detail.
여기에서 결정된 비트플레인 블록의 모드는 다양한 방법으로 코딩할 수 있다.The mode of the bitplane block determined here can be coded in various ways.
(1) 하나의 일 예로서, 현재 비트플레인 블록의 모드를 고정길이부호화를 통해 코딩할 수 있다. (1) As one example, the mode of the current bitplane block may be coded through fixed length encoding.
(2) 또 다른 예로서, 현재 비트플레인 블록의 모드를 비트플래인 블록 모드의 출현 빈도에 따른 확률을 이용한 가변길이부호화를 통해 코딩할 수 있다. 이때 미리 계산된 확률 테이블을 이용하여 코딩할 수 있다.(2) As another example, the mode of the current bitplane block may be coded through variable length encoding using a probability according to the frequency of appearance of the bitplane block mode. In this case, coding may be performed using a pre-calculated probability table.
(3) 또 다른 예로서, 현재 비트플레인 블록의 모드를 현재 비트플래인 블 록에 인접하는 주변의 비트플래인 블록 모드를 고려하여 상황에 맞게 적응적으로 변화된 확률을 이용한 산술 코딩 방법을 통해 코딩할 수 있다. (3) As another example, the mode of the current bitplane block is coded through an arithmetic coding method using probabilities that are adaptively changed according to the situation in consideration of the bitplane block mode around the current bitplane block. can do.
이 외에도 위와 같이 비트플레인 블록 모드를 코딩하는 방법은 상식적으로 다양한 방법으로 변경될 수 있다.In addition, the method of coding the bitplane block mode as described above may be changed in various ways.
"CAE(Context-based Arithmetic Encoding) 코딩" 과정은 현재 비트플래인 블록의 픽셀값이 모두 '0' 또는 '1'일 경우가 아닌 경우와, 참조 비트플래인에서 현재 비트플래인 블록과 동일한 위치의 참조 비트플래인 블록, 또는 움직임 보상을 수행한 참조 비트플래인 블록간의 오차가 허용 오차 범위를 초과할 경우에 수행되며, 현재 비트플래인 블록 내의 각 픽셀은 인트라 모드일 경우에는 각 픽셀의 주변의 픽셀 정보를 기반으로, 인터 모드일 경우에는 각 픽셀의 주변의 픽셀 정보와 현재 픽셀에 대응하는 참조 비트플래인 영상의 픽셀과 그 주변 픽셀 정보를 기반으로 하는 이진 산술 코딩(Binary Arithmetic Coding)을 수행한다. "CAE 코딩" 방법에 대한 상세한 설명은 추후에 자세히 설명한다. "멀티플렉서" 에서는 현재 비트플래인 블록의 움직임 벡터와 현재 비트플래인 블록의 모드, 그리고 "CAE 코딩" 결과를 입력으로 받아 "비트스트림"을 생성한다. The "Context-based Arithmetic Encoding (CAE) coding" process is performed when the pixel values of the current bitplane block are not all '0' or '1', and the same position as the current bitplane block in the reference bitplane. Is performed when the error between the reference bitplane block of or the reference bitplane block that has performed motion compensation exceeds the allowable error range, and each pixel in the current bitplane block is in the periphery of each pixel in the intra mode. In the inter mode, binary arithmetic coding is performed based on the pixel information of each pixel and the pixel of the reference bitplane image corresponding to the current pixel and its surrounding pixel information. To perform. A detailed description of the "CAE coding" method will be given later. The "multiplexer" receives a motion vector of the current bitplane block, a mode of the current bitplane block, and a "CAE coding" result, and generates a "bitstream".
도 9의 "모드 결정" 부분에서 인트라 픽쳐 모드 결정 방법의 실시 일 예의 순서도는 도 10과 같으며, 자세한 알고리즘은 다음과 같다.The flowchart of an embodiment of the intra picture mode determination method in the “mode determination” portion of FIG. 9 is shown in FIG. 10, and a detailed algorithm is as follows.
Step 1) 현재 비트플래인 블록의 모든 픽셀값이 동일한 값이면 Step 2로 분기한다. 만약 그렇지 않으면 Step 3으로 분기한다.Step 1) If all pixel values of the current bitplane block are the same, the process branches to
Step 2) 현재 비트플래인 블록의 모든 픽셀값이 '1'이면 현재 비트플래인 블록의 모드를 'all_1'로 설정한다. 만약 그렇지 않다면 현재 비트플래인 블록의 모드를 'all_0'로 설정한다.Step 2) If all pixel values of the current bitplane block are '1', the mode of the current bitplane block is set to 'all_1'. If not, set the mode of the current bitplane block to 'all_0'.
Step 3) 현재 비트플래인 블록의 모드를 'intraCAE'로 한다. 'intraCAE' 모드의 코딩 방법은 추후에 자세히 설명한다.Step 3) Set the current bitplane block mode to 'intraCAE'. The coding method of the 'intraCAE' mode will be described later in detail.
도 9의 "모드 결정" 부분에서 인터 픽쳐 모드 결정 방법의 실시 일 예의 순서도는 도 11과 같으며, 자세한 알고리즘은 다음과 같다.9 is a flowchart of an embodiment of the inter-picture mode determination method in the “mode determination” portion of FIG. 9, and a detailed algorithm is as follows.
Step 1) 현재 비트플래인 블록의 움직임 벡터의 예측값(MVP)에 대응하는 참조 비트플래인 블록과 현재 비트플래인 블록간의 오차(Aerr)가 허용 오차 범위(Berr)와 동일하거나 작다면 Step 2로 분기한다. 만약 그렇지 않다면 Step 3으로 분기한다. Step 1) If the error (A err ) between the reference bitplane block and the current bitplane block corresponding to the prediction value (MV P ) of the motion vector of the current bitplane block is equal to or less than the tolerance range (B err ). Branch to
Step 2) 현재 비트플래인 블록 모드를 'No Update Without MV'로 한다. 'No Update Without MV' 모드는 현재 비트플래인 블록의 재구성된 비트플래인 블록을 현재 비트플래인 블록의 주변으로부터 움직임 벡터의 예측값(MVP)에 대응하는 참조 비트플래인 블록으로 하며, 현재 비트플래인 블록의 모드 정보만을 전송하고 이외의 추가 데이터는 전송하지 않는다. 움직임 벡터의 예측값(MVP) 결정 방법은 추후에 자세히 설명한다.Step 2) Set the current bitplane block mode to 'No Update Without MV'. In the 'No Update Without MV' mode, the reconstructed bitplane block of the current bitplane block is a reference bitplane block corresponding to the prediction value (MV P ) of the motion vector from the periphery of the current bitplane block. Only the mode information of the plain block is transmitted, but no additional data is transmitted. The method of determining the predicted value (MV P ) of the motion vector will be described in detail later.
Step 3) 현재 비트플래인 블록의 모든 픽셀값이 동일한 값이면 Step 4로 분기한다. 만약 그렇지 않으면 Step 5로 분기한다.Step 3) If all pixel values of the current bitplane block are the same, the process branches to
Step 4) 현재 비트플래인 블록의 모든 픽셀값이 '1'이면 현재 비트플래인 블록의 모드를 'all_1'로 설정한다. 만약 그렇지 않다면 현재 비트플래인 블록의 모드를 'all_0'으로 설정한다.Step 4) If all pixel values of the current bitplane block are '1', set the mode of the current bitplane block to 'all_1'. If not, set the mode of the current bitplane block to 'all_0'.
Step 5) 움직임 예측을 수행한다.Step 5) Perform motion prediction.
Step 6) 움직임 예측에서 계산한 움직임 벡터에 대응하는 참조 비트플래인 블록과 현재 비트플래인 블록간의 오차(Cerr)가 허용 오차 범위(Berr)와 동일하거나 작다면 Step 7로 분기한다. 만약 그렇지 않다면 Step 8로 분기한다.Step 6) If the error C err between the reference bitplane block corresponding to the motion vector calculated in the motion prediction and the current bitplane block is equal to or smaller than the allowable error range B err , the process branches to
Step 7) 현재 비트플래인 블록의 모드를 'No Updata with MV'로 한다. 'No Updata with MV' 모드는 현재 비트플래인 블록의 재구성된 비트플래인 블록을 움직임 예측을 통해 계산한 움직임 벡터에 대응하는 참조 비트플래인 블록으로 하며, 현재 비트플래인 블록의 모드 정보와 움직임 벡터만을 전송하고 이외의 추가 데이터는 전송하지 않는다Step 7) Set the mode of the current bitplane block to 'No Updata with MV'. 'No Updata with MV' mode uses the reconstructed bitplane block of the current bitplane block as a reference bitplane block corresponding to a motion vector calculated through motion prediction, and the mode information and motion of the current bitplane block. Only send vectors, no additional data
Step 8) 'intraCAE' 모드 코딩과 'interCAE'모드 코딩을 각각 수행한다. 'intraCAE'와 'interCAE'모드의 코딩 방법은 추후에 자세히 설명한다.Step 8) Perform 'intraCAE' mode coding and 'interCAE' mode coding. The coding method of 'intraCAE' and 'interCAE' modes will be described later in detail.
Step 9) 만약 'intraCAE' 모드 코딩 결과의 비트량이 'interCAE' 모드 코딩 결과의 비트량 보다 작다면 Step 10으로 분기한다. 만약 그렇지 않다면 Step 11로 분기한다.Step 9) If the bit amount of the 'intraCAE' mode coding result is smaller than the bit amount of the 'interCAE' mode coding result, the process branches to Step 10. If not, branch to Step 11.
Step 10) 현재 비트플래인 블록의 모드를 'intraCAE'로 한다. 'intraCAE' 모드 코딩 방법은 추후에 설명한다.Step 10) Set the mode of the current bitplane block to 'intraCAE'. The 'intraCAE' mode coding method will be described later.
Step 11) 현재 비트플래인 블록의 모드를 'interCAE'로 한다. 'Inter CAE' 모드 코딩 방법은 추후에 설명한다.Step 11) Set the mode of the current bitplane block to 'interCAE'. The 'Inter CAE' mode coding method will be described later.
현재 비트플래인 블록의 움직임 벡터 예측값(MVP) 결정 방법의 실시 일 예의 순서도는 도 12와 같으며, 자세한 알고리즘은 다음과 같다.A flowchart of an embodiment of a method of determining a motion vector prediction value (MV P ) of a current bitplane block is shown in FIG. 12. A detailed algorithm is as follows.
Step 1) 현재 비트플래인 블록에서 좌측의 경계가 영상의 경계(LeftBoundary)가 아니고 현재 비트플래인 블록에서 좌측 비트플래인 블록 모드(LeftMBMode)가 시간 방향 예측(inter)을 수행하였다면, Step 2로 분기한다. 만약 그렇지 않다면 Step 3으로 분기한다. Step 1) If the left boundary of the current bitplane block is not the left boundary of the image and the left bitplane block mode (LeftMBMode) performs the time direction prediction in the current bitplane block, go to
Step 2) 현재 비트플래인 블록의 움직임 벡터 예측값(MVP)을 현재 비트플래인 블록에서 좌측 비트플래인 블록의 움직임 벡터(MVLeft)로 설정한다.Step 2) The motion vector prediction value MV P of the current bitplane block is set to the motion vector MV Left of the left bitplane block in the current bitplane block.
Step 3) 현재 비트플래인 블록에서 상단의 경계가 영상의 경계(AboveBoundary)가 아니라면, Step 4로 분기한다. 만약 현재 비트플래인 블록에서 상단의 경계가 영상의 경계(AboveBoundary)라면, Step 8로 분기한다. Step 3) If the upper boundary of the current bitplane block is not the boundary of the image (AboveBoundary), branch to
Step 4) 현재 비트플래인 블록에서 상단의 경계가 영상의 경계(AboveBoundary)가 아니고 현재 비트플래인 블록에서 상단 비트플래인 블록 모드(AboveMBMode)가 시간 방향 예측(inter)을 수행하였다면, Step 5로 분기한다. 만 약 그렇지 않다면 Step 6으로 분기한다.Step 4) If the upper boundary of the current bitplane block is not the boundary of the image (AboveBoundary) and the upper bitplane block mode (AboveMBMode) performs the time direction prediction in the current bitplane block, go to
Step 5) 현재 비트플래인 블록의 움직임 벡터 예측값(MVP)을 현재 비트플래인 블록에서 상단 비트플래인 블록의 움직임 벡터(MVAbove)로 설정한다.Step 5) The motion vector prediction value MV P of the current bitplane block is set to the motion vector MV Above of the upper bitplane block in the current bitplane block.
Step 6) 현재 비트플래인 블록에서 우측의 경계 또는 상단의 경계가 영상의 경계(AboveRightBoundary)가 아니고 현재 비트플래인 블록에서 우측 상단 비트플래인 블록 모드(AboveRightMBMode)가 시간 방향 예측(inter)을 수행하였다면, Step 7로 분기한다. 만약 그렇지 않다면 Step 8로 분기한다.Step 6) The right or upper boundary of the current bitplane block is not the boundary of the image (AboveRightBoundary), and the upper right bitplane block mode (AboveRightMBMode) performs the time direction prediction (inter) in the current bitplane block. If yes, branch to
Step 7) 현재 비트플래인 블록의 움직임 벡터 예측값(MVP)을 현재 비트플래인 블록에서 우측상단 비트플래인 블록의 움직임 벡터(MVAboveRight)로 설정한다.Step 7) The motion vector prediction value MV P of the current bitplane block is set to the motion vector MV AboveRight of the upper right bitplane block in the current bitplane block.
Step 8) 현재 비트플래인 블록의 움직임 벡터 예측값(MVP)을 수평 성분 값과 수직 성분 값 모두 '0'으로 설정한다.Step 8) The motion vector prediction value MV P of the current bitplane block is set to '0' for both the horizontal component value and the vertical component value.
또한, 여기에서 비트플래인 블록의 움직임 벡터 예측값(MVP)을 결정하는 방법은 다양하게 적용될 수 있다.In addition, the method of determining the motion vector prediction value MV P of the bitplane block may be variously applied.
(1) 하나의 일 실시 예로서, 현재 비트플레인 블록에 인접하는 비트플래인 블록 혹은 깊이 정보맵 블록의 움직임 벡터들을 이용하여 현재 비트플래인 블록의 움직임 벡터 예측값(MVp)을 결정할 수 있다. As an example, the motion vector prediction value MV p of the current bitplane block may be determined using motion vectors of a bitplane block or a depth information map block adjacent to the current bitplane block.
(2) 또 다른 실시 예로서, 도 12의 순서도에서 현재 비트플래인 블록과 인 접하는 주변 비트플래인 블록 대신 깊이 정보맵 블록의 움직임 벡터를 이용하여 현재 비트플래인 블록의 움직임 벡터 예측값(MVp)을 결정할 수 있다.(2) As another example, in the flowchart of FIG. 12, the motion vector prediction value of the current bitplane block (MV p) is used by using the motion vector of the depth information map block instead of the neighboring bitplane blocks adjacent to the current bitplane block. ) Can be determined.
(3) 또 다른 실시 예로서, 현재 비트플레인 블록에서 좌측 비트플래인 블록 혹은 깊이 정보맵 블록의 움직임 벡터(MVLeft)와 상단 비트플래인 블록 혹은 깊이 정보맵 블록의 움직임 벡터(MVAbove), 그리고 우측상단 비트플래인 블록 혹은 깊이 정보맵 블록의 움직임 벡터(MVRightAbove)의 중간값(Median)을 이용하여 현재 비트플래인 블록의 움직임 벡터 예측값(MVp)을 결정할 수 있다. 여기에서 우측상단 비트플래인 블록 혹은 깊이 정보맵 블록의 움직임 벡터(MVRightAbove)가 유효하지 않다면, 좌측상단 비트플래인 블록 혹은 깊이 정보맵 블록의 움직임 벡터(MVLeftAbove)를 대신 사용할 수 있다.(3) As another embodiment, the motion vector MV Left of the left bitplane block or the depth information map block and the motion vector MV Above of the upper bitplane block or depth information map block in the current bitplane block, The motion vector prediction value MV p of the current bitplane block may be determined using a median value of the motion vector MV RightAbove of the upper right bitplane block or the depth information map block. Here, if the upper right bit plane of the block or the depth information of the map block motion vector (MV RightAbove) is not available in can be used instead of a motion vector (MV LeftAbove) at the left upper bit plane or block depth map information block.
이 외에도 위와 같이 비트플래인 블록의 움직임 벡터 예측값(MVP)을 결정하는 방법은 상식적으로 다양한 방법으로 변경될 수 있다.In addition, the method of determining the motion vector prediction value MV P of the bitplane block as described above may be changed in various ways.
도 9의 "모드 결정" 부분에서 결정된 현재 비트플래인 블록의 모드가 'intraCAE'와 'interCAE'로 선택 되었을 경우, 컨텍스트 기반 산술 인코딩(CAE, Context-based Arithmetic Encoding) 방법을 사용하며, "CAE 인코딩"의 구조도의 일 예는 도 13과 같다.When the mode of the current bitplane block determined in the "mode determination" part of FIG. 9 is selected as 'intraCAE' and 'interCAE', a context-based arithmetic encoding (CAE) method is used. An example of the structure diagram of "encoding" is shown in FIG.
도 13의 "비트율 조절" 과정은 현재 비트플래인 블록 모드가 'intraCAE' 모 드와 'interCAE'모드일 때 크기 변환(Size Conversion) 방법을 통해 수행된다. 현재 비트플래인 블록을 변환 비율(Conversion Ratio; CR) 1/2 혹은 1/4 크기로 다운샘플링(down-sampling)한 후, 다시 현재 비트플래인 블록 크기로 업샘플링(up-sampling)하여 생성한 비트플래인 블록과 현재 비트플래인 블록간의 오차를 계산하고, 만약 그 오차가 허용 오차 범위와 같거나 작다면, 현재 비트플래인 블록을 1/2 혹은 1/4로 다운샘플링하여 생성한 블록에 대한 코딩을 수행한다. 그렇지 않다면 현재 비트플래인 블록을 그대로 코딩한다. 변환 비율을 설정하는 방법은 순서도는 도 14과 같으며, 자세한 알고리즘은 다음과 같다. The process of “bit rate adjustment” of FIG. 13 is performed through a size conversion method when the current bitplane block mode is an 'intraCAE' mode and an 'interCAE' mode. It is created by down-sampling the current bitplane block to the conversion ratio (CR) 1/2 or 1/4 and then up-sampling it back to the current bitplane block size. Calculates the error between one bitplane block and the current bitplane block, and if the error is less than or equal to the tolerance, the block created by downsampling the current bitplane block to 1/2 or 1/4 Perform coding on. Otherwise, code the current bitplane block as it is. The flowchart for setting the conversion ratio is shown in FIG. 14, and the detailed algorithm is as follows.
Step 1) 현재 비트플래인 블록에 대해 변환비율(CR)을 1/4로 설정하고, 현재 비트플래인 블록의 변환비율에 따라 크기변환 즉 1/4 다운샘플링을 수행하고 다시 업샘플링을 수행한 비트플래인 블록을 생성한다.Step 1) Set the conversion ratio (CR) to 1/4 for the current bitplane block, perform size conversion, that is, 1/4 downsampling and upsampling again, according to the conversion ratio of the current bitplane block. Create a bitplane block.
Step 2) 현재 비트플래인 블록과 현재 비트플래인 블록에 변환비율(CR) 1/4로 다운샘플링하고 다시 업샘플링을 수행한 블록간의 오차(Derr)가 허용 오차(Berr) 범위보다 크다면 Step 3으로 분기한다. 만약 그렇지 않다면 알고리즘을 종료한다.Step 2) The error (D err ) between the current bitplane block and the block that downsampled to the conversion bit rate (CR) 1/4 in the current bitplane block and upsampled again is larger than the allowable error range (B err ). Branch to
Step 3) 현재 비트플래인 블록에 대해 변환비율(CR)을 1/2로 설정하고, 현재 비트플래인 블록의 변환비율에 따라 크기변환 즉 1/2 다운샘플링을 수행하고 다시 업샘플링을 수행한 블록을 생성한다.Step 3) Set the conversion ratio (CR) to 1/2 for the current bitplane block, perform size conversion, that is, half downsampling and upsampling again according to the conversion ratio of the current bitplane block. Create a block.
Step 4) 현재 비트플래인 블록과 현재 비트플래인 블록에 변환비율(CR) 1/2로 다운샘플링하고 다시 업샘플링을 수행한 비트플래인 블록 간의 오차(Eerr)가 허용 오차(Berr) 범위보다 크다면 Step 5로 분기한다. 만약 그렇지 않다면 알고리즘을 종료한다.Step 4) Tolerance (B err ) is the error (E err ) between the current bitplane block and the bitplane block downsampled to the current bitplane block by the conversion ratio (CR) 1/2 and then upsampled again. If greater than the range, branch to
Step 5) 현재 비트플래인 블록에 대해 변환비율(CR)을 1로 설정하고, 알고리즘을 종료한다.Step 5) Set the conversion ratio (CR) to 1 for the current bitplane block and terminate the algorithm.
도 13의 "다운샘플링" 과정은 "비트율 조절" 과정에서 출력된 변환비율(CR)에 따라서 현재 비트플래인 블록에 대응하는 참조 비트플래인 영상의 참조 비트플래인 블록에 대한 다운샘플링(Down-sampling)을 수행하여 컨텍스트 계산에 사용할 수 있도록 한다. 만약 변환비율(CR)이 '1' 이라면 다운샘플링을 수행하지 않는다.In the process of “downsampling” in FIG. 13, downsampling of a reference bitplane block of a reference bitplane image corresponding to the current bitplane block according to the conversion ratio CR output in the “bit rate adjustment” process is performed. sampling so that it can be used for context calculation. If the conversion ratio CR is '1', downsampling is not performed.
도 13의 "컨텍스트 계산" 과정에서는 현재 비트플래인 블록의 모드가 'intraCAE' 모드일 경우에는 현재 비트플래인 블록의 코딩할 픽셀의 주변의 픽셀값들을 기반으로, 'interCAE' 모드일 경우에는 현재 비트플래인 블록의 코딩할 픽셀의 주변의 픽셀값들과 현재 블록의 코딩할 픽셀에 대응하는 참조 비트플래인 영상의 픽셀과 그 주변 픽셀값들을 통해 컨텍스트 템플릿(context template)를 구성한다. "산술 인코딩" 과정에서는 "컨텍스트 계산" 과정에서 구성된 컨텍스트 템플릿을 인덱스(index)로 하는 확률 테이블을 참조하여 현재 코딩할 픽셀에 대한 산술 인코딩을 수행해서 비트스트림을 생성한다.In the "context calculation" process of FIG. 13, when the mode of the current bitplane block is the 'intraCAE' mode, the current bitplane block is based on pixel values around the pixels to be coded in the current bitplane block. A context template is configured by using pixel values around the pixel to be coded in the bitplane block, pixels of the reference bitplane image corresponding to the pixel to be coded in the current block, and pixel values thereof. In the "arithmetic encoding" process, a bitstream is generated by performing arithmetic encoding on a pixel to be currently coded by referring to a probability table having an index of a context template configured in the "context calculation" process.
'intraCAE' 모드에서 컨텍스트 템플릿을 구성할 때 사용하는 픽셀들은 도 15 와 같고 현재 픽셀(X)을 중심으로 10개의 주변 픽셀들을 (c9 c8 c7 c6 c5 c4 c3 c2 c1 c0) 형태의 10비트 컨텍스트 템플릿을 형성한 후에, 이것을 산술 코딩시의 확률 테이블의 인덱스로 사용한다. 그리고 'interCAE' 모드에서 컨텍스트 템플릿을 구성할 때 사용하는 픽셀들은 도 16과 같고 현재 픽셀(X)을 중심으로 4개의 주변 픽셀들과, 현재 블록에 대응하는 참조 블록에서 현재 픽셀에 대응하는 픽셀(c6)과 그 주변 4개 픽셀들을 (c8 c7 c6 c5 c4 c3 c2 c1 c0) 형태의 9비트 컨텍스트 템플릿을 형성한 후에, 이것을 산술 코딩시의 확률 테이블의 인덱스로 사용한다.The pixels used when constructing the context template in 'intraCAE' mode are as shown in FIG. 15 and 10-bit context templates in the form of 10 peripheral pixels (c9 c8 c7 c6 c5 c4 c3 c2 c1 c0) around the current pixel (X). After is formed, it is used as an index of the probability table in arithmetic coding. The pixels used when configuring the context template in the 'interCAE' mode are as shown in FIG. 16, four peripheral pixels around the current pixel X, and a pixel corresponding to the current pixel in the reference block corresponding to the current block. c6) and its surrounding four pixels form a 9-bit context template of the form (c8 c7 c6 c5 c4 c3 c2 c1 c0) and then use it as an index of the probability table in arithmetic coding.
여기에서 'intraCAE' 모드와 'interCAE' 모드에서 컨텍스트 템플릿을 구성하는 방법은 다양하게 적용할 수 있다.Here, there are various ways to configure the context template in the 'intraCAE' mode and the 'interCAE' mode.
(1) 하나의 일 예로서, 'intraCAE' 모드에서 비트플래인 블록의 코딩할 픽셀(X)과 인접하는 주변의 픽셀들 중 다양한 개수의 픽셀들을 이용하여 컨텍스트 템플릿을 구성할 수 있다. 실시 예로서, 'intraCAE' 모드에서 현재 픽셀(X)을 중심으로 인접하는 4개의 주변 픽셀들을 (c3 c2 c1 c0) 형태의 4비트 컨텍스트 템플릿을 구성할 수 있다. (1) As one example, in the 'intraCAE' mode, the context template may be configured using various numbers of pixels among neighboring pixels adjacent to the pixel X to be coded in the bitplane block. In an embodiment, in the 'intraCAE' mode, four neighboring pixels around the current pixel X may be configured to form a 4-bit context template in the form of (c3 c2 c1 c0).
(2) 또 다른 실시 예로서, 'interCAE' 모드에서 현재 비트플래인 블록의 코딩할 픽셀(X)과 인접하는 주변의 픽셀들과 현재 비트플래인 블록의 코딩할 픽셀(X)에 대응하는 참조 비트플래인 영상의 픽셀과 그 주변 픽셀들 중 다양한 개수의 픽셀들을 이용하여 컨텍스트 템플릿을 구성할 수 있다. 실시 예로서, 'interCAE' 모드에서 현재 픽셀(X)을 중심으로 인접하는 4개의 주변 픽셀들을 (c3 c2 c1 c0) 형태의 4비트 컨텍스트 템플릿을 구성할 수 있다.(2) In another embodiment, in the 'interCAE' mode, a reference corresponding to pixels X to be neighbored adjacent to pixel X to be coded in the current bitplane block and to pixel X to be coded in the current bitplane block. The context template may be configured by using various numbers of pixels among the pixels of the bitplane image and neighboring pixels. In an embodiment, in the 'interCAE' mode, four neighboring pixels adjacent to the current pixel X may be configured to form a 4-bit context template in the form of (c3 c2 c1 c0).
이 외에도 위와 같이 컨텍스트 템플릿을 구성하는 방법은 상식적으로 다양한 방법으로 변경될 수 있다.In addition, the method of configuring the context template as described above may be changed in various ways.
도 13에서 "컨텍스트 계산"과 "산술 인코딩"은 현재 비트플래인 블록 또는 다운샘플링된 비트플래인 블록의 픽셀 수만큼 반복된다. 이때 현재 비트플래인 블록의 픽셀을 코딩하는 순서는 위에서 아래로 왼쪽에서 오른쪽으로 가로 방향 스캔 또는 세로 방향 스캔을 적응적으로 수행할 수 있으며, 두 가지 스캔 모드를 모두 수행한 후, 비트량이 적은 스캔 모드를 선택하고, 스캔 모드 정보는 비트스트림에 저장한다.In FIG. 13, "context calculation" and "arithmetic encoding" are repeated by the number of pixels of the current bitplane block or downsampled bitplane block. In this case, the order of coding the pixels of the current bitplane block can be adaptively performed from the top to the bottom to the left to the horizontal scan or the vertical scan. After performing both scan modes, the scan with less bit amount is performed. The mode is selected and the scan mode information is stored in the bitstream.
여기에서 현재 비트플래인 블록의 픽셀을 스캔하는 방법은 다양하게 적용할 수 있다.Here, the method of scanning the pixels of the current bitplane block can be applied in various ways.
(1) 하나의 일 실시 예로서, 도 17의 (a)처럼 현재 비트플래인 블록의 픽셀을 왼쪽에서 오른쪽으로 위에서 아래로 스캔을 수행하거나 위에서 아래로 왼쪽에서 오른쪽으로 스캔을 수행할 수 있다. (1) As one embodiment, as illustrated in FIG. 17A, pixels of the current bitplane block may be scanned from left to right from top to bottom or from top to bottom from left to right.
(2) 또 다른 실시 예로서, 도 17의 (b)처럼 현재 비트플래인 블록의 픽셀을 왼쪽에서 오른쪽으로 그리고 다시 오른쪽에서 왼쪽으로 지그재그(zigzag) 순으로 위에서 아래로 스캔을 수행하거나 위에서 아래로 아래에서 위로 지그재그(zigzag) 순으로 왼쪽에서 오른쪽으로 스캔을 수행할 수 있다. (2) As another example, as illustrated in (b) of FIG. 17, the pixels of the current bitplane block may be scanned from top to bottom or zigzag from right to left and then zigzag again from top to bottom. You can scan from left to right in zigzag order from bottom to top.
(3) 또 다른 실시 예로서, 도 17의 (c)처럼 현재 비트플래인 블록의 픽셀 을 왼쪽 위에서부터 대각선 방향으로 오른쪽 위에서 왼쪽 아래로 스캔하거나 왼쪽 아래에서부터 대각선 방향으로 왼쪽 위에서 오른쪽 아래로 스캔을 수행할 수 있다. (3) As another example, as shown in (c) of FIG. 17, the pixel of the current bitplane block is scanned from the top left to the bottom right in the diagonal direction or the bottom left to the bottom right in the diagonal direction from the bottom left. Can be done.
(4) 또 다른 실시 예로서, 도 17의 (d)처럼 현재 비트플래인 블록의 픽셀을 왼쪽 위에서부터 대각선 방향 지그재그(zigzag) 순으로 왼쪽 위에서 오른쪽 아래로 스캔을 수행하거나 왼쪽 아래에서부터 대각선 방향 지그재그(zigzag) 순으로 왼쪽 아래에서 오른쪽 위로 스캔을 수행할 수 있다.(4) As another example, as shown in (d) of FIG. 17, the pixels of the current bitplane block are scanned from top left to top diagonally in zigzag order from top left to bottom right or diagonally zigzag from bottom left. (zigzag) You can scan from bottom left to top right.
이 외에도 위와 같이 현재 비트플래인 블록의 픽셀을 스캔하는 방법은 상식적으로 다양한 방법으로 변경될 수 있다.In addition, the method of scanning the pixels of the current bitplane block as described above may be changed in various ways.
도 9의 "비트플래인 코딩"을 수행하는 방법의 또 다른 실시 일 예로 상기 살펴본 MPEG-4 Part 2 Visual의 이진 형상 코딩 방법을 응용하는 방법이 있다. Another example of the method of performing "bitplane coding" of FIG. 9 is a method of applying the binary shape coding method of the above-described MPEG-4
① MPEG-4 Part 2 Visual의 이진 형상 코딩 방법을 응용하는 방법의 일 예로 "비트율 조절" 부분의 변환비율(CR)을 다양하게 적용하여 코딩을 수행할 수 있다. ① As an example of applying the binary shape coding method of MPEG-4
② MPEG-4 Part 2 Visual의 이진 형상 코딩 방법을 응용하는 방법의 또 다른 일 예로 블록 단위에서 움직임 정보를 각 비트플래인 블록 별로 모두 저장하지 않고, 블록 단위에서 하나 이상의 특정 비트플래인의 움직임 정보만 저장할 수도 있다.② As another example of a method of applying the binary shape coding method of MPEG-4
도 9의 "비트플래인 코딩"에서 "CAE인코딩"을 수행하는 과정은 [방법 #1] 런 길이 코딩(Run Length Coding) 방법과 가변 길이 코딩(Variable Length Coding) 방법을 이용한 비트플래인 코딩 방법과 [방법 #2] 컨텍스트 기반 적응적 산술 코딩을 응용한 비트플래인 코딩 방법, 그리고 [방법 #3] CAC(Constant Area Coding) 혹은 JBIG(Joint Bi-Level Image Processing Group)의 방법 혹은 Quad Tree 방법을 이용한 비트플래인 코딩 방법으로 대체되어 수행될 수 있다. The process of performing "CAE encoding" in "Bitplane Coding" of FIG. 9 is performed by the [Method # 1] Run Length Coding Method and the Variable Length Coding Method. And [Method # 2] Bitplane coding method using context-based adaptive arithmetic coding, and [Method # 3] Constant Area Coding (CAC) or Joint Bi-Level Image Processing Group (JBIG) method or Quad Tree method. It can be performed by replacing with the bitplane coding method using.
[방법 #1] 도 9의 "비트플래인 코딩"에서 "CAE인코딩"을 수행하는 방법 대신에 런 길이 코딩(Run Length Coding) 방법과 가변 길이 코딩(Variable Length Coding) 방법을 이용하여 비트플래인 블록을 코딩할 수 있는데 제안하는 방법의 일 예는 도 18과 같다.[Method # 1] Instead of performing "CAE encoding" in "Bitplane Coding" of FIG. 9, a bitplane using a Run Length Coding method and a Variable Length Coding method is used. An example of the proposed method for coding a block is shown in FIG. 18.
도 18은 런 길이 코딩(Run Length Coding) 방법과 가변 길이 코딩(Variable Length Coding)방법을 사용하여 비트플래인 블록을 코딩하는 방법을 나타내며, 비트플래인 블록을 입력받아 비트플래인 코딩을 수행하여 비트스트림을 출력한다. "픽셀 스캔 및 런 길이 저장" 과정에서는 입력된 비트플래인 블록은 도 17의 픽셀 스캔 방법을 이용한 스캔을 수행하여 비트플래인 블록의 각 심볼(Symbol)에 대한 런(Run)의 길이들을 저장한다. 여기에서 각 심볼(Symbol)에 대한 런(Run)의 길이들을 세는 방법은 도 19와 같으며, 자세한 알고리즘은 다음과 같다. 18 illustrates a method of coding a bitplane block using a run length coding method and a variable length coding method, and receives a bitplane block to perform bitplane coding. Output the bitstream. In the process of "pixel scanning and storing the run length", the input bitplane block performs a scan using the pixel scanning method of FIG. 17 to store lengths of runs for each symbol of the bitplane block. . Here, a method of counting the lengths of runs for each symbol is shown in FIG. 19, and a detailed algorithm is as follows.
Step 1) 이전 픽셀 값(PrevPixel)을 '0'으로 설정하고 런(Run)의 길이(nCount)를 '0'으로 설정한다.Step 1) Set the previous pixel value (PrevPixel) to '0' and the length of the run (nCount) to '0'.
Step 2) 도 17의 스캔 순서에 따라 다음 픽셀을 읽어 오는 함수(NextPixel())을 통해 현재 픽셀 값(CurrPixel)을 읽어온다. Step 2) The current pixel value CurrPixel is read through the function NextPixel () which reads the next pixel in the scanning order of FIG. 17.
Step 3) 만약 현재 픽셀 값(CurrPixel)이 이전 픽셀 값(PrevPixel)과 다 르다면 Step 5로 분기한다. 만약 그렇지 않다면, Step 4로 분기한다. Step 3) If the current pixel value (CurrPixel) is different from the previous pixel value (PrevPixel), branch to
Step 4) 런(Run)의 길이(nCount)를 '1' 증가시킨 후 Step 2로 분기한다. Step 4) Increase the run length (nCount) to '1' and branch to
Step 5) 런(Run)의 길이(nCount)를 저장한다.Step 5) Save the run length (nCount).
Step 6) 런(Run)의 길이(nCount)를 '0'으로 설정한다.Step 6) Set the run length (nCount) to '0'.
Step 7) 도 17의 스캔 순서에 따라 다음 픽셀을 읽어 오는 함수(NextPixel())을 통해 읽어온 픽셀값이 존재하지 않는다면, 알고리즘을 종료한다. 그렇지 않다면 Step 2로 분기한다.Step 7) If there is no pixel value read through the function NextPixel () for reading the next pixel according to the scanning sequence of FIG. 17, the algorithm ends. If not, branch to
도 18의 "가변길이 코딩" 과정에서는 입력된 런(Run)의 길이들을 확률 분포에 따라 가변 길이 코딩(Variable Length Coding ) 방법을 수행하여 비트스트림을 출력한다. 이때 입력된 런(Run)의 길이들을 코딩하기 위한 방법으로 산술 코딩(Arithmetic Coding) 방법을 이용하여 코딩할 수도 있다.In the “variable length coding” process of FIG. 18, a bitstream is output by performing a variable length coding method on the input run lengths according to a probability distribution. In this case, a method for coding the input run lengths may be coded using an arithmetic coding method.
도 18의 런 길이 코딩(Run Length Coding) 방법과 가변 길이 코딩(Variable Length Coding) 방법을 사용하여 비트플래인 블록을 코딩하는 방법에서 입력된 비트플래인 블록을 작은 블록으로 나누어서 서브 블록을 구성하고 그 서브 블록 각각을 코딩할 수 있으며, 제안하는 방법의 일 예는 도 20과 같다.In the method of coding a bitplane block using the run length coding method and the variable length coding method of FIG. 18, a subblock is formed by dividing an input bitplane block into small blocks. Each of the subblocks may be coded, and an example of the proposed method is illustrated in FIG. 20.
도 20의 런 길이 코딩(Run Length Coding) 방법과 가변 길이 코딩(Variable Length Coding) 방법을 이용한 비트플래인코딩 방법에서 비트플래인 블록을 서브 블록으로 나누어서 코딩하는 방법을 나타내며, 비트플래인 블록을 입력 받아 서브 블록으로 나누어서 각각의 서브 블록에 비트플래인 코딩을 수행하여 비트스트림을 출력한다. "서브 블록 분리" 과정에서는 입력된 비트플래인 블록을 작은 블록으로 나누어서 서브 블록을 구성한다. "픽셀 스캔 및 런 길이 저장" 과정과 "가변 길이 코딩" 과정은 나누어진 서브 블록의 개수만큼 반복 수행된다. "픽셀 스캔 및 런 길이 저장" 과정에서는 입력된 서브 비트플래인 블록에 도 17의 픽셀 스캔 방법을 이용한 스캔을 수행하여 비트플래인 블록의 런(Run)의 길이를 저장한다. 여기에서 런(Run)의 길이를 정하는 방법은 도 19와 같다. In the bitplane coding method using the run length coding method and the variable length coding method of FIG. 20, a bitplane block is divided into subblocks and coded. It receives the sub-blocks and performs bitplane coding on each sub-block to output a bitstream. In the "subblock separation" process, the input bitplane block is divided into small blocks to form a subblock. The process of "pixel scanning and run length storing" and the "variable length coding" process are repeated as many times as the number of divided subblocks. In the "pixel scan and run length storage" process, a scan using the pixel scan method of FIG. 17 is performed on the input sub bit plane block to store a run length of the bit plane block. Herein, a method of determining the length of the run is shown in FIG. 19.
[방법 #2] 도 9의 "비트플래인 코딩"에서 "CAE인코딩"을 수행하는 방법 대신에 현재 코딩할 비트플래인 블록에 인접하는 주변 비트플래인 블록의 코딩 정보를 이용한 컨텍스트 기반 적응적 산술 코딩(CABAC; Context-based Adaptive Binary Arithmetic Coding) 방법을 응용하여 코딩을 수행할 수 있는데, 제안하는 방법의 일 예는 도 21과 같다.[Method # 2] Context-based adaptive arithmetic using coding information of neighboring bitplane blocks adjacent to the bitplane block to be coded instead of the method of performing "CAE encoding" in "bitplane coding" of FIG. Coding may be performed by applying a CABAC (Context-based Adaptive Binary Arithmetic Coding) method. An example of the proposed method is shown in FIG.
도 21은 현재 코딩할 비트플래인 블록에 인접하는 주변 비트플래인 블록의 코딩 정보를 이용한 비트플래인 코딩 방법으로 컨텍스트 기반 적응적 산술 코딩(CABAC; Context-based Adaptive Binary Arithmetic Coding) 방법을 응용한 방법을 나타내며, 비트플래인 블록을 입력 받아 컨텍스트 기반 적응적 산술 코딩을 응용한 비트플래인 코딩을 수행하여 비트스트림을 출력한다. 여기에서 입력된 비트플래인 블록을 작은 블록으로 나누어서 서브 블록을 구성하고 각 서브 블록에 도 21의 방법을 각각 적용할 수 있다. "컨텍스트 구성" 과정에서는 입력된 비트플래인 블록에서 현재 코딩을 수행할 픽셀과 인접하는 주변 픽셀들을 이용하여 컨텍스트 템플릿을 생성한다. "산술 코딩" 과정에서는 생성된 컨텍스트 템플릿을 이용하여 현재 픽셀에 대해 산술 코딩을 수행한다. FIG. 21 illustrates a method of applying a context-based adaptive binary arithmetic coding (CABAC) method to a bitplane coding method using coding information of neighboring bitplane blocks adjacent to a bitplane block to be currently coded. A bitstream block is applied to a bitplane block, and a bitstream coding is performed by applying context-based adaptive arithmetic coding to output a bitstream. Here, the input bitplane block may be divided into small blocks to form a sub block, and the method of FIG. 21 may be applied to each sub block. In the context configuration process, a context template is generated using neighboring pixels adjacent to a pixel to be currently coded in the input bitplane block. In the "arithmetic coding" process, arithmetic coding is performed on the current pixel using the generated context template.
[방법 #3] 도 9의 "비트플래인 코딩"에서 "CAE인코딩"을 수행하는 방법 대신에 현재 코딩할 비트플래인 블록을 CAC(Constant Area Coding) 혹은 JBIG(Joint Bi-Level Image Processing Group)의 방법 혹은 Quad Tree 방법을 이용한 비트플래인 코딩 방법을 수행할 수 있다.[Method # 3] Instead of performing the "CAE encoding" in "Bitplane Coding" of FIG. 9, the bitplane block to be currently coded is a constant area coding (CAC) or Joint Bi-Level Image Processing Group (JBIG). The bitplane coding method can be performed by using the method or the Quad Tree method.
"비트플래인 디코딩"을 수행하는 방법의 실시 일 예로 국제 동영상 표준인 MPEG-4 Part 2 Visual(ISO/IEC 14496-2)의 이진 형상 코딩(binary shape coding)에서 사용하는 방법을 응용하여 사용할 수 있다. 제안하는 "비트플래인 디코딩"의 일 예는 도 22와 같다.As an example of a method for performing "bitplane decoding", the method used in binary shape coding of the international video standard MPEG-4
도 22은 비트플래인 디코딩을 수행하는 구조도를 나타내며, 비트스트림을 입력 받아서 비트플래인 디코딩을 수행하여 재구성된 비트플래인 블록을 출력한다. 도 8의 참조 영상 버퍼에 저장되어 있는 참조영상과 도 8의 재구성된 영상 버퍼에 저장되어 있는 재구성된 영상은 각각 "그레이 코드 변환"과정과 "비트플래인 분리" 과정을 거쳐 각각의 비트플래인으로 분리되고, 현재 코딩할 비트플래인 블록과 동일한 비트플래인의 참조 비트플래인 영상은 "움직임 보상"과 "CAE 디코딩"과정으로 입력된다. FIG. 22 illustrates a structure diagram for performing bitplane decoding, and receives a bitstream and performs bitplane decoding to output a reconstructed bitplane block. The reference picture stored in the reference picture buffer of FIG. 8 and the reconstructed picture stored in the reconstructed picture buffer of FIG. 8 are each bitplane through a "gray code conversion" process and a "bitplane separation" process. The reference bitplane image of the same bitplane as the bitplane block to be currently coded is input into the "motion compensation" and "CAE decoding" processes.
도 22의 "DE-MUX" 과정에서는 비트스트림을 입력으로 받아 현재 비트플래인 블록의 움직임 벡터와 현재 비트플래인 블록의 모드, 그리고 "CAE 디코딩" 과정에 서 사용될 비트스트림을 출력한다. In the “DE-MUX” process of FIG. 22, the bitstream is received as an input and outputs a motion vector of the current bitplane block, a mode of the current bitplane block, and a bitstream to be used in the “CAE decoding” process.
여기에서 비트플레인 블록의 모드는 다양한 방법으로 디코딩할 수 있다.Here, the mode of the bitplane block can be decoded in various ways.
(1) 하나의 일 실시 예로서, 현재 비트플레인 블록의 모드를 고정길이복호화를 통해 디코딩할 수 있다. (1) As one embodiment, the mode of the current bitplane block may be decoded through fixed length decoding.
(2) 또 다른 실시 예로서, 현재 비트플레인 블록의 모드를 비트플래인 블록 모드의 출현 빈도에 따른 확률을 이용한 가변길이복호화를 통해 디코딩할 수 있다. 이때 미리 계산된 확률 테이블을 이용할 수 있다.(2) As another embodiment, the mode of the current bitplane block may be decoded through variable length decoding using a probability according to the frequency of appearance of the bitplane block mode. In this case, a previously calculated probability table may be used.
(3) 또 다른 실시 예로서, 현재 비트플레인 블록의 모드를 현재 비트플래인 블록에 인접하는 주변의 비트플래인 블록 모드를 고려하여 상황에 맞게 적응적으로 변화된 확률을 이용한 산술 코딩 방법을 통해 디코딩할 수 있다. (3) As another embodiment, decoding the mode of the current bitplane block by using an arithmetic coding method using a probability adaptively changed according to the situation in consideration of the bitplane block mode around the current bitplane block can do.
이 외에도 위와 같이 비트플레인 블록 모드를 디코딩하는 방법은 상식적으로 다양한 방법으로 변경될 수 있다.In addition, the method of decoding the bitplane block mode as described above may be changed in various ways.
입력 받은 현재 비트플래인 블록의 모드에 따라 디코딩을 수행하게 된다. 만약 비트플래인 블록의 모드가 'No Update Without MV'라면, 움직임 벡터 예측값(MVP)을 움직임 벡터로 하여 "움직임 보상"을 수행하여 움직임 벡터에 대응하는 참조 비트플래인 블록을 출력한다. The decoding is performed according to the mode of the current bitplane block. If the mode of the bitplane block is 'No Update Without MV', motion compensation is performed by using the motion vector prediction value MV P as a motion vector to output a reference bitplane block corresponding to the motion vector.
여기에서 디코딩할 비트플래인 블록의 움직임 벡터 예측값(MVP)을 결정하는 방법은 다양하게 적용될 수 있다.Here, a method of determining the motion vector prediction value MV P of the bitplane block to be decoded may be variously applied.
(1) 하나의 일 실시 예로서, 현재 디코딩할 비트플레인 블록에 인접하는 비트플래인 블록 혹은 깊이 정보맵 블록의 움직임 벡터들을 이용하여 현재 비트플래인 블록의 움직임 벡터 예측값(MVp)을 결정할 수 있다. (1) As an example, the motion vector prediction value MV p of the current bitplane block may be determined using motion vectors of a bitplane block or a depth information map block adjacent to the bitplane block to be currently decoded. have.
(2) 또 다른 실시 예로서, 도 12의 순서도에서 현재 디코딩할 비트플래인 블록과 인접하는 주변 비트플래인 블록 대신 깊이 정보맵 블록의 움직임 벡터를 이용하여 현재 비트플래인 블록의 움직임 벡터 예측값(MVp)을 결정할 수 있다.(2) As another example, in the flowchart of FIG. 12, the motion vector prediction value of the current bitplane block using the motion vector of the depth information map block instead of the neighboring bitplane block adjacent to the bitplane block to be currently decoded. MV p ) can be determined.
(3) 또 다른 실시 예로서, 현재 디코딩할 비트플레인 블록에서 좌측 비트플래인 블록 혹은 깊이 정보맵 블록의 움직임 벡터(MVLeft)와 상단 비트플래인 블록 혹은 깊이 정보맵 블록의 움직임 벡터(MVAbove), 그리고 우측상단 비트플래인 블록 혹은 깊이 정보맵 블록의 움직임 벡터(MVRightAbove)의 중간값(Median)을 이용하여 현재 비트플래인 블록의 움직임 벡터 예측값(MVp)을 결정할 수 있다. 여기에서 우측상단 비트플래인 블록 혹은 깊이 정보맵 블록의 움직임 벡터(MVRightAbove)가 유효하지 않다면, 좌측상단 비트플래인 블록 혹은 깊이 정보맵 블록의 움직임 벡터(MVLeftAbove)를 대신 사용할 수 있다.(3) As another embodiment, the motion vector MV Left of the left bitplane block or the depth information map block and the motion vector MV Above of the upper bitplane block or depth information map block in the bitplane block to be currently decoded. ) And the motion vector prediction value MV p of the current bitplane block using the median of the motion vector MV RightAbove of the upper right bitplane block or the depth information map block. Here, if the upper right bit plane of the block or the depth information of the map block motion vector (MV RightAbove) is not available in can be used instead of a motion vector (MV LeftAbove) at the left upper bit plane or block depth map information block.
이 외에도 위와 같이 디코딩할 비트플래인 블록의 움직임 벡터 예측값(MVP)을 결정하는 방법은 상식적으로 다양한 방법으로 변경될 수 있다.In addition, the method of determining the motion vector prediction value MV P of the bitplane block to be decoded as described above may be changed in various ways.
만약 비트플래인 블록의 모드가 'No Update With MV'라면, 전송 받은 움직임 벡터값을 이용하여 "움직임 보상"을 수행하여 움직임 벡터에 대응하는 참조 비트플래인 블록을 출력한다. 만약 비트플래인 블록의 모드가 'all_0' 이라면, "동일 레벨 블록 디코딩"이 수행이 되며, 블록 내의 모든 픽셀값을 '0'으로 설정하여 출력한다. 만약 비트플래인 블록의 모드가 'all_1' 이라면, "동일 레벨 블록 디코딩"이 수행이 되며, 블록 내의 모든 픽셀값을 '1'로 설정하여 출력한다. 만약 비트플래인 블록의 모드가 'intraCAE' 라면, "CAE(Context-based Arithmetic Encoding) 디코딩"이 수행되며, 현재 비트플래인 블록에서 디코딩을 수행할 각 픽셀의 주변 픽셀 정보를 기반으로 이진 산술 코딩(Binary Arithmetic Coding)을 수행한다. 만약 비트플래인 블록의 모드가 'interCAE' 라면, "CAE(Context-based Arithmetic Encoding) 디코딩"이 수행이 되며, 현재 비트플래인 블록에서 디코딩을 수행할 각 픽셀의 주변 픽셀 정보와 현재 픽셀에 대응하는 참조 영상의 픽셀과 그 주변 픽셀 정보를 기반으로 하는 이진 산술 디코딩(Binary Arithmetic Deoding)을 수행한다.If the mode of the bitplane block is 'No Update With MV', "motion compensation" is performed using the received motion vector value and the reference bitplane block corresponding to the motion vector is output. If the mode of the bitplane block is 'all_0', "same level block decoding" is performed, and all pixel values in the block are set to '0' and output. If the mode of the bitplane block is 'all_1', "same level block decoding" is performed, and all pixel values in the block are set to '1' and output. If the mode of the bitplane block is 'intraCAE', "Context-based Arithmetic Encoding (CAE) decoding" is performed, and binary arithmetic coding based on the surrounding pixel information of each pixel to be decoded in the current bitplane block. Binary Arithmetic Coding is performed. If the mode of the bitplane block is 'interCAE', "Context-based Arithmetic Encoding (CAE) decoding" is performed and corresponding to the current pixel and the surrounding pixel information of each pixel to be decoded in the current bitplane block. Binary Arithmetic Deoding is performed based on the pixels of the reference image and the surrounding pixel information.
현재 비트플래인 블록의 모드가 'intraCAE'와 'interCAE'로 선택 되었을 경우, 컨텍스트 기반 산술 인코딩(CAE, Context-based Arithmetic Encoding) 방법을 사용하며, CAE 디코딩의 구조도의 일 예는 도 23과 같다.When the mode of the current bitplane block is selected as 'intraCAE' and 'interCAE', a context-based Arithmetic Encoding (CAE) method is used, and an example of the CAE decoding structure is illustrated in FIG. 23. .
도 23의 "변환비율 디코딩" 과정에서는 입력된 비트스트림에서 변환비율(CR)을 디코딩하여 출력한다. "다운샘플링" 과정에서는 입력된 변환비율에 따라 참조 비트플래인 블록에 대한 다운샘플링을 수행하여 컨텍스트 계산에 사용할 수 있도록 한다. 만약 변환비율(CR)이 '1' 이라면 다운샘플링을 수행하지 않는다. "컨텍스트 계산" 과정에서 컨텍스트 템플릿(context template)의 구성은 상기 도 13의 "컨텍 스트 계산"에서 설명된 것과 동일하다. "산술 디코딩" 과정에서는 "컨텍스트 계산" 과정에서 구성된 컨텍스트 템플릿을 인덱스(index)로 하는 확률 테이블을 참조하여 입력된 비트스트림을 산술 디코딩을 수행하여 현재 픽셀을 생성한다. In the process of "conversion ratio decoding" of FIG. 23, a transform ratio CR is decoded from an input bitstream and output. In the "downsampling" process, the reference bitplane block is downsampled according to the input conversion ratio to be used for context calculation. If the conversion ratio CR is '1', downsampling is not performed. The configuration of the context template in the "context calculation" process is the same as that described in "context calculation" of FIG. 13. In the "arithmetic decoding" process, the current pixel is generated by performing an arithmetic decoding on the input bitstream with reference to a probability table having the context template configured in the "context calculation" process as an index.
여기에서 'intraCAE' 모드와 'interCAE' 모드에서 컨텍스트 템플릿을 구성하는 방법은 다양하게 적용할 수 있다.Here, there are various ways to configure the context template in the 'intraCAE' mode and the 'interCAE' mode.
(1) 하나의 일 예로서, 'intraCAE' 모드에서 비트플래인 블록의 코딩할 픽셀(X)과 인접하는 주변의 픽셀들 중 다양한 개수의 픽셀들을 이용하여 컨텍스트 템플릿을 구성할 수 있다. 실시 예로서, 'intraCAE' 모드에서 현재 픽셀(X)을 중심으로 인접하는 4개의 주변 픽셀들을 (c3 c2 c1 c0) 형태의 4비트 컨텍스트 템플릿을 구성할 수 있다. (1) As one example, in the 'intraCAE' mode, the context template may be configured using various numbers of pixels among neighboring pixels adjacent to the pixel X to be coded in the bitplane block. In an embodiment, in the 'intraCAE' mode, four neighboring pixels around the current pixel X may be configured to form a 4-bit context template in the form of (c3 c2 c1 c0).
(2) 또 다른 실시 예로서, 'interCAE' 모드에서 현재 비트플래인 블록의 코딩할 픽셀(X)과 인접하는 주변의 픽셀들과 현재 비트플래인 블록의 코딩할 픽셀(X)에 대응하는 참조 비트플래인 영상의 픽셀과 그 주변 픽셀들 중 다양한 개수의 픽셀들을 이용하여 컨텍스트 템플릿을 구성할 수 있다. 실시 예로서, 'interCAE' 모드에서 현재 픽셀(X)을 중심으로 인접하는 4개의 주변 픽셀들을 (c3 c2 c1 c0) 형태의 4비트 컨텍스트 템플릿을 구성할 수 있다.(2) In another embodiment, in the 'interCAE' mode, a reference corresponding to pixels X to be neighbored adjacent to pixel X to be coded in the current bitplane block and to pixel X to be coded in the current bitplane block. The context template may be configured by using various numbers of pixels among the pixels of the bitplane image and neighboring pixels. In an embodiment, in the 'interCAE' mode, four neighboring pixels adjacent to the current pixel X may be configured to form a 4-bit context template in the form of (c3 c2 c1 c0).
이 외에도 위와 같이 컨텍스트 템플릿을 구성하는 방법은 상식적으로 다양한 방법으로 변경될 수 있다.In addition, the method of configuring the context template as described above may be changed in various ways.
"업샘플링" 과정에서는 디코딩된 비트플래인 블록에 업샘플링(Up-sampling) 을 수행하여 재구성된 비트플래인 블록을 생성한다. 만약 변환비율이 '1'이라면 업샘플링을 수행하지 않는다.In the "upsampling" process, up-sampling of the decoded bitplane block is performed to generate a reconstructed bitplane block. If the conversion ratio is '1', no upsampling is performed.
도 22의 "비트플래인 디코딩"을 수행하는 방법의 또 다른 실시 일 예로 상기 살펴본 MPEG-4 Part 2 Visual의 이진 형상 디코딩 방법을 응용하는 방법이 있다. Another embodiment of the method of performing "bitplane decoding" of FIG. 22 is a method of applying the binary shape decoding method of the above-described MPEG-4
① MPEG-4 Part 2 Visual의 이진 형상 디코딩 방법을 응용하는 방법의 일 예로 "비트율 조절" 부분의 디코딩된 변환비율(CR)을 다양하게 적용하여 디코딩을 수행할 수 있다. ① As an example of applying the binary shape decoding method of MPEG-4
② MPEG-4 Part 2 Visual의 이진 형상 디코딩 방법을 응용하는 방법의 또 다른 일 예로 블록 단위에서 하나 이상의 특정 비트플래인에 저장되어 있는 움직임 정보를 각 비트플래인에서 선택적으로 사용할 수 있도록 하는 방법이 있다.② As another example of the method of applying the binary shape decoding method of MPEG-4
도 22의 "비트플래인 디코딩"에서 "CAE디코딩"을 수행하는 방법은 [방법 #1] 런 길이 코딩(Run Length Coding) 방법과 가변 길이 코딩(Variable Length Coding) 방법을 이용한 비트플래인 디코딩 방법과 [방법 #2] 컨텍스트 기반 적응적 산술 코딩을 응용한 비트플래인 디코딩 방법, 그리고 [방법 #3] CAC(Constant Area Coding) 혹은 JBIG(Joint Bi-Level Image Processing Group)의 방법 혹은 Quad Tree 방법을 이용한 비트플래인 디코딩 방법으로 대체되어 수행될 수 있다. The method of performing "CAE decoding" in "bitplane decoding" of FIG. 22 includes the method [1]: a bitplane decoding method using a run length coding method and a variable length coding method. And [Method # 2] Bitplane decoding using context-based adaptive arithmetic coding, and [Method # 3] Constant Area Coding (CAC) or Joint Bi-Level Image Processing Group (JBIG) or Quad Tree method. It may be performed by being replaced by a bitplane decoding method using.
[방법 #1] 도 22의 "비트플래인 코딩"에서 "CAE인코딩"을 수행하는 방법 대 신에 런 길이 코딩(Run Length Coding) 방법과 가변 길이 코딩(Variable Length Coding) 방법을 이용하여 비트플래인 블록을 코딩할 수 있는데 제안하는 방법의 일 예는 도 24와 같다.[Method # 1] Instead of performing "CAE encoding" in "Bitplane Coding" of FIG. 22, the bitplane is executed using the Run Length Coding method and the Variable Length Coding method. An example of the proposed method may be coded in a block as illustrated in FIG. 24.
도 24는 런 길이 코딩(Run Length Coding) 방법과 가변 길이 코딩(Variable Length Coding)방법을 사용하여 비트플래인 블록을 디코딩하는 방법을 나타내며, 비트스트림을 입력받아 비트플래인 디코딩을 수행하여 재구성된 비트플래인 블록을 출력한다. "가변길이 디코딩" 과정에서는 입력된 비트스트림을 가변길이 디코딩하여 런(Run)의 길이들을 출력한다. "비트플래인 블록 구성" 과정에서는 비트스트림의 스캔 순서에 대한 정보와 런(Run)의 길이들을 이용하여 비트플래인 블록을 구성한다. FIG. 24 illustrates a method of decoding a bitplane block using a run length coding method and a variable length coding method, and reconstructs a bitplane block by receiving a bitstream. Outputs a bitplane block. In the "variable length decoding" process, the length of the run is output by variable length decoding of the input bitstream. In the "bitplane block configuration" process, a bitplane block is constructed by using information about the scan order of the bitstream and run lengths.
도 24의 런 길이 코딩(Run Length Coding) 방법과 가변 길이 코딩(Variable Length Coding) 방법을 사용하여 비트플래인 블록을 디코딩하는 방법에서 입력된 비트스트림을 각 서브 블록으로 나누어서 디코딩을 수행할 수 있으며, 제안하는 방법의 일 예는 도 25와 같다.In the method of decoding a bitplane block using the run length coding method and the variable length coding method of FIG. 24, the input bitstream may be divided into subblocks to perform decoding. , An example of the proposed method is shown in FIG.
도 25의 런 길이 코딩(Run Length Coding) 방법과 가변 길이 코딩(Variable Length Coding) 방법을 이용한 비트플래인코딩 방법에서 비트플래인 블록을 서브 블록으로 나누어서 디코딩하는 방법을 나타내며, 비트스트림을 입력 받아 각 서브 블록으로 나누어서 디코딩을 수행하여 재구성된 비트플래인 블록을 출력한다. "가변길이 디코딩" 과정과 "서브 블록 구성" 과정은 나누어진 서브 블록의 개수만큼 반복 수행된다. "가변길이 디코딩" 과정에서는 입력된 비트스트림을 가변길이 디코 딩하여 각 서브 블록에 대한 런(Run)의 길이들을 출력한다. "서브 블록 구성" 과정에서는 비트스트림의 스캔 순서에 대한 정보와 런(Run)의 길이들을 이용하여 서브 비트플래인 블록을 구성한다. "비트플래인 블록 구성" 과정에서는 서브 비트플래인 블록들을 이용하여 비트플래인 블록을 출력한다.In the bitplane coding method using the run length coding method and the variable length coding method of FIG. 25, a bitplane block is divided into subblocks and decoded. The decoding is performed by dividing into subblocks to output a reconstructed bitplane block. The "variable length decoding" process and the "sub block construction" process are repeated as many times as the number of divided subblocks. In the "variable length decoding" process, the input bitstream is variable-length decoded to output run lengths for each subblock. In the "sub block construction" process, a sub bit plane block is constructed by using information about a scan order of the bitstream and run lengths. In the "bitplane block configuration" process, a bitplane block is output using subbitplane blocks.
<디코더><Decoder>
블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법과, 깊이 정보맵을 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법의 디코더 구조도의 일 예는 도 26과 같다.The method of adaptively selecting and coding a block unit bitplane coding method and a conventional block unit video coding method, and a method of adaptively selecting a bit plane to be coded by dividing a depth information map into bit plane units An example of a decoder structure diagram is illustrated in FIG. 26.
도 26에서 입력된 비트스트림은 비트플래인 디코딩 모드 혹은 기존 디코딩 모드를 통해 디코딩되어 재구성된 깊이 정보맵 블록을 출력한다. 비트플래인 디코딩 모드가 선택되었을 경우에는 'C'로 표시되어 있는 부분이 수행되며, 'C'는 비트스트림을 입력 받아 비트플래인 수만큼 반복해서 비트플래인 디코딩을 수행하고 각각의 비트플래인 영상을 결합하여 N-bit로 표현되는 재구성된 깊이 정보맵 블록을 출력한다. 기존 디코딩 모드가 선택되었을 경우에는 'D'로 표시되어 있는 부분이 수행되며, 'D'는 비트스트림을 입력받아 기존의 동영상 코딩 방법(MPEG-1, MPEG-2, MPEG-4 Part 2 Visual, H.264/AVC, SVC, MVC, VC-1, AVS, KTA, 등)으로 디코딩하여 재구성된 깊이 정보맵 블록을 출력한다.The bitstream input in FIG. 26 outputs a reconstructed depth information map block decoded through a bitplane decoding mode or an existing decoding mode. If the bitplane decoding mode is selected, the part marked 'C' is performed. 'C' receives the bitstream and repeatedly performs bitplane decoding as many as the number of bitplanes. The reconstructed depth information map block represented by N-bit is output by combining the images. If the existing decoding mode is selected, the part marked with 'D' is performed. 'D' receives the bitstream and receives the existing video coding method (MPEG-1, MPEG-2, MPEG-4
도 26에서 비트플래인 디코딩 모드 'C'는 비트플래인 단위 코딩 방법의 디코 더 구조도를 보여준다. 'C'의 디코더 구조도에서 데이터를 처리하는 단위는 가로 세로 16x16픽셀 크기의 블록이다. 도 26의 참조 영상 버퍼에 저장되어 있는 참조영상과 재구성된 영상 버퍼에 저장되어 있는 재구성된 영상은 "비트플래인 디코딩" 과정으로 입력된다. "비트플래인 디코딩" 과정에서는 비트스트림을 입력 받아 인코딩된 비트플래인 수만큼 반복해서 수행이 되며, 입력된 비트스트림을 각 비트플래인 별로 디코딩하여 n개의 비트플래인 영상을 출력한다. "비트플래인 디코딩"을 수행하는 방법은 도 22의 "비트플래인 디코딩" 방법을 이용한다. "비트플래인 결합" 과정에서는 출력된 각각의 비트플래인 영상을 결합하여 n-bit로 표현되는 영상을 출력한다. "역그레이 코드 변환" 과정에서는 그레이 코드로 표현된 영상을 원래의 형태로 복원한다. "깊이 정보맵 구성" 과정에서는 n-bit로 표현되는 영상을 실제 깊이 정보맵의 비트수에 맞게 구성하여 깊이 정보맵을 출력한다. In FIG. 26, the bitplane decoding mode 'C' shows a decoder structure diagram of the bitplane unit coding method. In the decoder structure diagram of 'C', a unit for processing data is a block having a size of 16x16 pixels. The reference picture stored in the reference picture buffer of FIG. 26 and the reconstructed picture stored in the reconstructed picture buffer are input through a process of "bitplane decoding." In the "bitplane decoding" process, the bitstream is input and repeatedly performed as many as the number of encoded bitplanes. The bitstream is decoded for each bitplane to output n bitplane images. The method of performing "bitplane decoding" uses the "bitplane decoding" method of FIG. In the "bitplane combining" process, each of the output bitplane images is combined to output an image represented by n-bit. In the "inverse gray code conversion" process, the image represented by the gray code is restored to its original form. In the "depth information map construction" process, an image represented by n-bit is configured according to the number of bits of the actual depth information map, and the depth information map is output.
여기에서 깊이 정보맵을 구성하는 방법은 다양하게 적용될 수 있다.Here, the method of constructing the depth information map may be variously applied.
(1) 하나의 일 실시 예로서, 현재 블록을 실제 깊이 정보맵의 비트수에 맞게 구성하기위해 디코딩되지 않은 비트플래인 블록의 모든 값을 '0(0)'으로 설정하여 구성할 수 있다. (1) As one embodiment, in order to configure the current block according to the number of bits of the actual depth information map, all values of the undecoded bitplane block may be set to '0 (0)'.
(2) 또 다른 실시 예로서, 현재 블록을 실제 깊이 정보맵의 비트수에 맞게 구성하기 위해 디코딩되지 않은 비트플래인 블록의 모든 값을 '255(1)'로 설정하여 구성할 수 있다.(2) As another embodiment, in order to configure the current block according to the number of bits of the actual depth information map, all values of the undecoded bitplane block may be set to '255 (1)'.
(3) 또 다른 실시 예로서, 현재 블록을 실제 깊이 정보맵의 비트수에 맞게 구성하기 위해 디코딩되지 않은 비트플래인 블록을 모두 '0(0)'으로 구성할지 혹은 모두 '255(1)' 구성할지에 대한 정보를 디코딩하여 디코딩되지 않은 비트플래인 블록을 구성할 수 있다.(3) As another embodiment, in order to configure the current block according to the number of bits of the actual depth information map, whether or not all of the decoded bitplane blocks are configured as '0 (0)' or all as '255 (1)'. The information on whether to configure may be decoded to construct an undecoded bitplane block.
(4) 또 다른 실시 예로서, 현재 블록을 실제 깊이 정보맵의 비트수에 맞게 구성하기 위해 디코딩되지 않은 비트플래인 블록을 인접하는 주변 비트플래인 블록의 픽셀값을 이용하여 구성할 수 있다. 여기에서 비트스트림으로부터 해당 패딩(Padding) 방향에 대한 정보를 디코딩하여 주변 비트플래인 블록의 픽셀값을 이용한 패딩(Padding)을 통해 비트플래인 블록을 구성할 수 있다.(4) As another example, in order to configure the current block according to the number of bits of the actual depth information map, the undecoded bitplane block may be configured using pixel values of adjacent neighboring bitplane blocks. Here, the bitplane block may be configured through padding using pixel values of the neighboring bitplane blocks by decoding information on a corresponding padding direction from the bitstream.
이 외에도 위와 같이 깊이 정보맵을 구성하는 방법은 상식적으로 다양한 방법으로 변경될 수 있다.In addition, the method of constructing the depth information map as described above may be changed in various ways.
구성된 깊이 정보맵은 기존 디코딩 모드 'D'에서 인트라 예측에 사용되거나 디블록킹 필터를 거쳐 재구성된 영상 버퍼에 저장되거나 "재구성된 깊이 정보맵"으로 출력된다. 이때 비트스트림으로부터 디코딩된 현재 디코딩된 블록에 대한 디블록킹 필터의 수행 여부 정보를 통해 현재 디코딩된 블록에 디블록킹 필터를 수행할 수 있다. 여기에서 구성된 깊이 정보맵은 디블록킹 필터를 거치지 않고 재구성된 영상 버퍼에 저장될 수 있다. 또한 구성된 깊이 정보맵은 디블록킹 필터를 거친 후 인트라 예측에 사용될 수 있다.The constructed depth information map is used for intra prediction in the existing decoding mode 'D' or stored in a reconstructed image buffer through a deblocking filter or output as a "reconstructed depth information map". In this case, the deblocking filter may be performed on the currently decoded block through information on whether the deblocking filter is performed on the currently decoded block decoded from the bitstream. The depth map configured here may be stored in the reconstructed image buffer without passing through the deblocking filter. In addition, the configured depth information map may be used for intra prediction after passing through a deblocking filter.
도 26에서는 기존 디코딩 모드 'D'의 일 예로 H.264/AVC의 디코더를 보여준다. 'D'의 디코더 구조도에서 데이터를 처리하는 단위는 가로 세로 16x16픽셀 크기의 매크로블록(Macroblock)이며, 인트라 모드 또는 인터 모드로 디코딩이 수행된 다. 인트라(Intra) 모드일 경우, 'D' 내부의 스위치가 인트라로 전환이 되며, 인터(Inter) 모드일 경우에는 스위치가 인터로 전환이 된다. 디코딩 과정의 주요한 흐름은 먼저 예측 블록을 생성한 후, 입력 받은 비트스트림을 디코딩한 결과 블록과 예측 블록을 더하여 재구성된 깊이 정보맵 블록을 생성하는 것이다. 먼저 예측 블록의 생성은 인트라 모드와 인터 모드에 따라 수행이 된다. 먼저 인트라 모드일 경우에는 "인트라 예측" 과정에서 현재 블록의 이미 코딩된 주변 픽셀값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성하며, 인터 모드일 경우에는 움직임 벡터를 이용하여 참조 영상 버퍼에 저장되어 있는 참조 영상에서 해당 영역을 찾아 "움직임 보상"을 수행함으로써 예측 블록을 생성한다. "엔트로피 디코딩" 과정에서는 입력된 비트스트림을 확률 분포에 따른 엔트로피 디코딩을 수행하여 양자화된 계수(Quantized Coefficient)를 출력한다. 양자화된 계수를 "역양자화"과정과 "역변환"을 수행하여 예측 영상과 가산기를 통해 재구성된 블록을 생성한 다음 "디블록킹 필터"를 통해 블록킹 현상(Blocking Artifact)를 제거한 후, "재구성된 영상 버퍼"에 저장한다.FIG. 26 shows a decoder of H.264 / AVC as an example of the existing decoding mode 'D'. In the decoder structure diagram of 'D', the data processing unit is a macroblock having a width of 16 × 16 pixels and decoding is performed in an intra mode or an inter mode. In the Intra mode, the switch inside the 'D' is switched to Intra, and in the Inter mode, the switch is switched to Inter. The main flow of the decoding process is to first generate a prediction block, and then decode the input bitstream to generate a reconstructed depth information map block by adding the result block and the prediction block. First, the generation of the prediction block is performed according to the intra mode and the inter mode. First, in intra mode, a prediction block is generated by performing spatial prediction using neighboring coded neighboring pixel values of the current block in the "intra prediction" process, and stored in the reference image buffer using a motion vector in the inter mode. The prediction block is generated by searching for a corresponding region in the reference image and performing "motion compensation". In the "entropy decoding" process, the input bitstream is subjected to entropy decoding according to a probability distribution to output quantized coefficients. The quantized coefficients are inversely quantized and inversely transformed to generate a reconstructed block through the prediction image and the adder, and then the blocking artifact is removed by the deblocking filter. Buffer ".
<모드 선택 방법><How to select the mode>
블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법을 적응적으로 선택할 수 있는 모드 선택 방법이 필요한데, 본 발명에서 제안하는 모드 선택 방법의 일 예는 도 27과 같으며, 자세한 알고리즘은 다음과 같다.There is a need for a mode selection method capable of adaptively selecting a block-based bitplane coding method and an existing block-based video coding method by adaptively selecting a coding method. 27, and the detailed algorithm is as follows.
Step 1) 현재 깊이 정보맵 블록을 기존 동영상 코딩 모드의 코스트(CostA)를 계산하고 또한 비트플래인 코딩 모드의 코스트(CostB)를 계산한다.Step 1) The cost of the current depth information map block is calculated in the existing video coding mode Cost A and the cost of the bit plane coding mode Cost B.
Step 2) 현재 깊이 정보맵 블록을 기존 동영상 코딩 모드의 코스트(CostA)가 비트플래인 코딩 모드의 코스트(CostB)보다 작다면, Step 3로 분기한다. 만약 그렇지 않다면, Step 4로 분기한다.Step 2) If the cost (Cost A ) of the existing video coding mode is smaller than the cost (Cost B ) of the bitplane coding mode, the current depth information map block branches to
Step 3) 현재 깊이 정보맵 블록을 기존 동영상 코딩 모드로 코딩한다. Step 3) The current depth information map block is coded in the existing video coding mode.
Step 4) 현재 깊이 정보맵 블록을 비트플래인 코딩 모드로 코딩한다.Step 4) Code the current depth information map block in bitplane coding mode.
도 27의 코딩 모드 결정 순서도에서 각 코딩 모드에 대한 코스트(Cost i )는 다양한 방법으로 계산할 수 있는데, 코스트를 계산하는 방법의 일 예로 "Lagrangian optimization technique"을 사용할 수 있으며, 일 예로 SAD(sum of absolute difference)를 사용하는 방법의 해당하는 수식은 수학식 4와 같다.Cost (Cost i) for each coding mode, the coding mode decision flow chart of Fig. 27 may be calculated in various ways, an example of how to calculate the cost may be used. "Lagrangian optimization technique", one example of SAD (sum of The corresponding equation of how to use absolute difference) is shown in
SAD i (sum of absolute difference)는 원본 영상과 재구성된 영상 간의 예측 오차의 절대값의 합을 의미하고, λ MODE 는 양자화 파라미터의 제곱에 상수 C(C= 0.85)를 곱하여 생성된 값으로 매크로블록 모드에 대한 "Lagransian" 상수를 나태내며, R i 는 해당하는 매크로블록 모드로 실제 코딩을 수행하였을 때의 발생 비트량 을 의미한다. 그리고 코스트를 계산하는 방법의 또 다른 일 예로 SSD(sum of square difference)를 사용할 수도 있다. SAD i (sum of absolute difference) is the sum of the absolute values of the prediction error between the original image and the reconstructed image, and λ MODE is the value generated by multiplying the square of the quantization parameter by the constant C (C = 0.85) Represents the "Lagransian" constant for the mode, and R i represents the amount of bits generated when actual coding is performed in the corresponding macroblock mode. As another example of a method of calculating a cost, an SSD (sum of square difference) may be used.
<< 비트플래인Bitplane 코딩 시 비트율 조절 방법> How to adjust bit rate when coding>
비트플래인 단위 코딩에서 비트량 조절을 위한 방법으로 깊이 정보맵 블록 혹은 분리된 비트플래인의 이진 블록에 다운샘플링을 적용하여 비트플래인 코딩을 수행하거나 깊이 정보맵 블록을 비트플래인 단위로 분리한 후 분리된 비트플래인의 이진 블록들 중 특정 비트플래인의 이진 블록을 코딩하지 않는 방법을 이용할 수 있다. 여기에서 특정 비트플래인의 이진 블록을 코딩하지 않는 방법을 이용할 때 깊이 정보맵을 그레이 코드로 변환했을 때 정보의 손실이 발생을 한다면 그레이 코드를 기존의 깊이 정보맵으로 복원할 때, 정확한 값을 복원할 수 없다. 따라서 "비트플래인 코딩" 과정에서 비트량 조절을 위해 정보의 손실을 허용하기 위해서는 MSB 비트플래인부터 LSB 비트플래인의 순서로 차례대로 코딩할 비트플래인의 수를 증가시키면서 코딩을 수행해야 한다.In bitplane unit coding, bitplane coding is performed by applying downsampling to a depth information map block or a binary block of a separated bitplane, or to separate a depth information map block into bitplane units. After that, a method of not coding a binary block of a specific bitplane among binary blocks of the separated bitplane may be used. In this case, when using a method that does not code a binary block of a specific bitplane, if information loss occurs when converting the depth information map to gray code, the correct value is restored when the gray code is restored to the existing depth information map. It cannot be restored. Therefore, in order to allow loss of information for bit rate control in the "bitplane coding" process, coding should be performed while increasing the number of bitplanes to be coded in order from MSB bitplane to LSB bitplane. .
도 8의 블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법과, 깊이 정보맵을 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법에서 비트플래인 단위 코딩 시 비트율 조절 과정은 [방법 #1] 깊이 정보맵 블록 혹은 분리된 비트플래인의 이진 블록에 다운샘플링을 적용하여 비트율을 조절하는 방법, [방법 #2] 깊이 정보맵 블록을 비트플래인 단위로 분리한 후 분리된 비트플래인의 이진 블록들 중 특정 비 트플래인의 이진 블록을 코딩하지 않는 방법을 통해 비트율을 조절하는 방법, [방법 #3] [방법 #1]과 [방법 #2]를 조합하여 비트율을 조절을 적용할 수 있다. A method of adaptively selecting and coding a block unit bitplane coding method and a conventional block unit video coding method of FIG. 8, and adaptively selecting a bit plane to be coded by separating a depth information map into bit plane units In the method of bitplane unit coding, a bitrate adjustment process is a method of adjusting bitrate by applying downsampling to a depth information map block or a binary block of a separated bitplane, and [method # 2] depth information. Method of adjusting bit rate by separating map block into bitplane units and not coding binary block of specific bitplane among binary blocks of separated bitplane, [Method # 3] [Method # 1] and [Method # 2] can be used to adjust the bit rate.
[방법 #1] 깊이 정보맵 블록 혹은 분리된 비트플래인의 이진 블록에 다운샘플링을 적용하여 비트율을 조절하는 방법의 일 예는 도 28과 같다. [Method # 1] An example of a method of adjusting a bit rate by applying downsampling to a depth information map block or a binary block of a separated bitplane is illustrated in FIG. 28.
도 28은 깊이 정보맵 블록을 입력받아 깊이 정보맵 블록 혹은 분리된 비트플래인의 이진 블록에 다운샘플링을 적용하여 다운 샘플링된 깊이 정보맵 블록을 출력하거나 다운 샘플링된 비트플래인 블록들을 출력한다. "비트플래인 분리" 과정에서는 n-bit로 표현되는 깊이 정보맵 블록을 입력 받아서 n개의 비트플래인 블록으로 분리한다. "샘플링 레이트 결정" 과정에서는 깊이 정보맵 블록 혹은 비트플래인 단위로 분리된 비트플래인 블록들을 입력받아 최적의 샘플링 레이트(sampling rate)를 결정한다. 최적의 샘플링 레이트(sampling rate)를 결정하는 방법은 추후에 자세히 설명한다. "다운샘플링" 과정에서는 깊이 정보맵 블록을 입력 받아서 수평 방향 혹은 수직 방향으로 최적의 샘플링 레이트(sampling rate)에 따라 다운샘플링을 수행한다. 여기에서 깊이 정보맵 블록을 다운 샘플링 할 때 필터를 적용하여 다운샘플링을 수행하는 방법을 사용할 수 있고, 도 29와 같이 필터를 적용하지 않고 다운샘플링을 수행하는 방법을 사용할 수 있다.FIG. 28 receives a depth information map block and applies downsampling to a depth information map block or a binary block of a separated bitplane to output a downsampled depth information map block or to output downsampled bitplane blocks. In the "bitplane separation" process, a depth information map block expressed as n-bit is received and divided into n bitplane blocks. In the "sampling rate determination" process, the optimum sampling rate is determined by receiving the depth information map block or the bitplane blocks separated by bitplane units. How to determine the optimal sampling rate will be discussed in detail later. In the "downsampling" process, the depth information map block is input and downsampling is performed according to an optimal sampling rate in the horizontal or vertical direction. Here, when downsampling the depth information map block, a method of performing downsampling by applying a filter may be used, and as shown in FIG. 29, a method of performing downsampling without applying a filter may be used.
도 29에서 왼쪽 영상은 원본 영상이고, 오른쪽 영상은 수평 수직 방향으로 1/2 다운샘플링을 수행한 결과이다. 원본 영상(도 29의 왼쪽 영상)에서의 흰색과 검은색 블록은 픽셀을 의미하며, 검은색 블록은 다운샘플링된 영상을 구성하기 위 해 사용될 픽셀을 의미한다. 여기에서 각 픽셀은 깊이 정보맵 블록의 픽셀값이 될 수 있으며, 또한 비트플래인 블록의 픽셀값이 될 수 있다.In FIG. 29, the left image is the original image, and the right image is a result of performing 1/2 downsampling in the horizontal and vertical directions. The white and black blocks in the original image (the left image in FIG. 29) mean pixels, and the black blocks mean pixels that will be used to construct a downsampled image. Herein, each pixel may be a pixel value of the depth information map block, and may also be a pixel value of the bitplane block.
도 28의 "샘플링 레이트 결정" 과정에서 최적의 샘플링 레이트(sampling rate)를 결정하는 방법의 순서도의 일 예는 도 30과 같고, 자세한 알고리즘은 다음과 같다. An example of a flowchart of a method of determining an optimal sampling rate in the “sampling rate determination” process of FIG. 28 is as shown in FIG. 30, and a detailed algorithm is as follows.
Step 1) 샘플링 레이트(sampling rate)를 '1'로 초기화한다.Step 1) Initialize the sampling rate to '1'.
Step 2) 샘플링 레이트(sampling rate)에 1/2을 곱한다.Step 2) Multiply the sampling rate by 1/2.
Step 3) 설정된 샘플링 레이트(sampling rate)를 이용하여 수평 또는 수직 방향으로 다운샘플링을 수행한다.Step 3) The downsampling is performed in the horizontal or vertical direction using the set sampling rate.
Step 4) 다운샘플링된 블록에 비트플래인 코딩을 수행한 후 코스트(Cost i ) 값을 계산한다. 코스트(Cost i ) 값을 계산하는 방법은 상기 절에 자세히 설명되어 있다.Step 4) After performing bitplane coding on the downsampled block, calculate the Cost i value. The method of calculating the Cost i value is described in detail in the above section.
Step 5) 만약 현재 설정된 샘플링 레이트(sampling rate)가 가장 낮은 샘플링 레이트(sampling rate)라면, Step 6으로 분기한다. 만약 그렇지 않다면 Step 2로 분기한다. 이때 가장 낮은 샘플링 레이트(sampling rate)는 사용자에 의해 임의의 값으로 설정될 수 있다.Step 5) If the currently set sampling rate is the lowest sampling rate, branch to
Step 6) 만약 모든 다운샘플링된 블록 중에서 현재 다운샘플링된 블록의 코스트(Cost i ) 값이 최소라면, Step 7으로 분기한다. 만약 그렇지 않다면 Step 2로 분기한다.Step 6) If the Cost i value of the current downsampled block is the minimum among all the downsampled blocks, the flow branches to
Step 7) 현재 다운샘플링된 블록의 샘플링 레이트(sampling rate)를 최적의 샘플링 레이트로 설정한다.Step 7) Set the sampling rate of the current downsampled block to an optimal sampling rate.
[방법 #2] 현재 깊이 정보맵 블록에 대한 비트율 조절을 위해 깊이 정보맵 블록을 비트플래인 단위로 분리한 후 분리된 비트플래인의 이진 블록들 중 특정 비트플래인의 이진 블록을 코딩하지 않는 방법을 통해 비트율을 조절할 수 있으며, 일 예로 코딩할 비트플래인을 결정하는 방법을 사용할 수 있다. 이때 코딩할 비트플래인을 결정하는 방법은 그레이 코드 변환된 깊이 정보맵의 특성 때문에 MSB 비트플래인부터 LSB 비트플래인의 순서로 차례대로 코딩할 비트플래인을 결정해야 한다. 따라서 코딩할 비트플래인을 결정하는 방법은 코딩할 비트플래인의 수를 결정하는 방법이라 할 수 있다. 코딩할 비트플래인의 수를 결정하는 방법은 비트율-왜곡 최적화 방법을 이용하여 블록 단위로 결정할 수 있으며, 코딩할 비트플래인의 수에 대한 정보는 고정길이 부호화 또는 양자화 파라미터 및 주변 상황에 따른 가변길이 부호화를 통해 코딩되어 비트스트림에 포함된다. [Method # 2] In order to adjust the bit rate of the current depth information map block, the depth information map block is divided into bit plane units, and the binary blocks of a specific bit plane are not coded among the binary blocks of the separated bit plane. The bit rate may be adjusted through the method. For example, a method of determining a bit plane to be coded may be used. In this case, the method of determining the bit plane to be coded should determine the bit plane to be coded in order from the MSB bit plane to the LSB bit plane because of the characteristics of the gray coded depth information map. Therefore, the method of determining the bit plane to be coded may be referred to as a method of determining the number of bit planes to be coded. The method of determining the number of bitplanes to be coded can be determined in units of blocks by using a bit rate-distortion optimization method. Coded through length coding, the data is included in the bitstream.
코딩할 비트플래인의 수를 결정하는 방법의 순서도의 일 예는 도 31과 같고, 자세한 알고리즘은 다음과 같다. An example of a flowchart of a method of determining the number of bit planes to be coded is shown in FIG. 31, and a detailed algorithm is as follows.
Step 1) 코딩할 비트플래인의 수(N)를 '0'으로 설정한다.Step 1) Set the number of bit planes (N) to be coded as '0'.
Step 2) 코딩할 비트플래인의 수(N)를 '1' 증가시킨다.Step 2) Increase the number (N) of bit planes to be coded by '1'.
Step 3) 코딩할 비트플래인의 수(N)에 따라 MSB 비트플래인부터 LSB 비트플래인까지 차례대로 코딩 모드를 설정한다. 예를 들어 N이 '1'일 경우는 MSB 비 트플래인만 코딩하는 모드이고, N이 '2'일 경우에는 MSB와 MSB-1 비트플래인을 코딩하는 모드이고, N이 '3'개일 경우에는 MSB와 MSB-1, MSB-2 비트플래인을 코딩하는 모드이고, N이 'm'일 경우에는 MSB와 MSB-1, MSB-2, MSB-3, … , MSB-(m-1) 비트플래인을 코딩하는 모드이다.Step 3) Set the coding mode from MSB bitplane to LSB bitplane in order according to the number of bit planes (N) to be coded. For example, if N is '1', it is a mode for coding only MSB non-plane. If N is '2', it is a mode for coding MSB and MSB-1 bit plane, and N is '3'. In the case of MSB, MSB-1 and MSB-2 bitplanes are coded, and if N is 'm', MSB, MSB-1, MSB-2, MSB-3,... Is a mode for coding the MSB- (m-1) bitplane.
Step 4) 해당 코딩 모드로 코딩을 수행한 후 해당 코딩 모드의 코스트(Cost i ) 값을 계산한다. 코스트(Cost i ) 값을 계산하는 방법은 상기 절에 자세히 설명되어 있다.Step 4) after performing the coding by the coding mode, and calculates the cost (Cost i) the value of the encoding mode. The method of calculating the Cost i value is described in detail in the above section.
Step 5) 만약 해당 코딩 모드가 모든 코딩 모드 중 코스트(Cost i ) 값이 최소라면, Step 6으로 분기한다. 만약 그렇지 않다면 Step 2로 분기한다.Step 5) If the coding mode has a minimum Cost i value among all the coding modes, the process branches to
Step 6) 가장 최소의 코스트(Cost i ) 값을 가진 코딩 모드를 통해 코딩할 비트플래인의 수를 결정한다.Step 6) Determine the number of bitplanes to code through the coding mode with the lowest Cost i value.
[방법 #3] 현재 깊이 정보맵 블록에 대한 비트율 조절을 위해 [방법 #1]과 [방법 #2]를 조합하여 비트율을 조절할 수 있다. 실시 일 예로 코딩할 깊이 정보맵에 [방법 #1]을 수행하여 다운샘플링된 깊이 정보맵을 생성하고 [방법 #2]를 수행하여 다운샘플링된 깊이 정보맵의 코딩할 비트플래인의 수를 결정함으로써 비트율 조절을 수행할 수 있다.[Method # 3] To adjust the bit rate for the current depth information map block, the bit rate may be adjusted by combining [Method # 1] and [Method # 2]. As an example, [Method # 1] is performed on a depth information map to be coded to generate a downsampled depth information map, and [Method # 2] is performed to determine the number of bitplanes to be coded of a downsampled depth information map. By doing this, bit rate adjustment can be performed.
<제안하는 코딩 방법의 전체적인 코딩 흐름 및 실시 구현의 일 예><Example of Overall Coding Flow and Implementation of Proposed Coding Method>
블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법의 전체적인 코딩 흐름은 도 32와 같으며, 자세한 알고리즘은 다음과 같다.The overall coding flow of the method of adaptively selecting and coding a block unit bitplane coding method and a conventional block unit video coding method is shown in FIG. 32. A detailed algorithm is as follows.
Step 1) 현재 깊이 정보맵 블록에 대해 비트플래인 단위 코딩을 수행할지 기존 방법으로 코딩을 수행하지에 대한 모드 결정을 수행한다. 수행하는 방법의 일 예로 상기 도 27의 방법을 사용할 수 있다. Step 1) Performs mode decision on whether to perform bitplane unit coding or not coding in the existing depth information map block. As an example of a method of performing, the method of FIG. 27 may be used.
Step 2) 모드 결정 과정에서 비트플래인 코딩 모드가 선택이 되었다면, 비트플래인 코딩을 수행할지에 대한 플래그 정보인 'bitplane_coding_flag'를 '1'로 설정하고, 만약 기존 코딩 모드로 선택이 되었다면 'bitplane_coding_flag'를 '0'으로 설정한다. Step 2) If bitplane coding mode is selected during the mode decision, 'bitplane_coding_flag', which is flag information on whether to perform bitplane coding, is set to '1', and if the existing coding mode is selected, 'bitplane_coding_flag' Set 'to' 0 '.
Step 3) 만약 bitplane_coding_flag가 '0'이라면, Step 4로 분기한다. 만약 그렇지 않다면 Step 5로 분기한다.Step 3) If bitplane_coding_flag is '0', branch to
Step 4) 현재 깊이 정보맵 블록을 기존 동영상 코딩 모드로 코딩한다. Step 4) The current depth information map block is coded in the existing video coding mode.
Step 5) 현재 깊이 정보맵 블록을 비트플래인 코딩 모드로 코딩한다.Step 5) Code the current depth information map block in bitplane coding mode.
깊이 정보맵을 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법에서 비트플래인 단위 코딩 시 비트율 조절 방법으로 코딩할 비트플래인의 수를 결정하는 방법의 전체적인 코딩 흐름은 도 33과 같으며, 자세한 알고리즘은 다음과 같다. 이때 도 33은 깊이 정보맵이 8-bit로 표현되어 있는 경우의 실시 일 예이다.In the method of adaptively selecting the bitplane to be coded by dividing the depth information map into bitplane units, the overall coding flow of the method of determining the number of bitplanes to be coded by the bitrate adjustment method in bitplane unit coding is 33, the detailed algorithm is as follows. 33 illustrates an example in which the depth information map is represented by 8 bits.
Step 1) 코딩할 비트플래인의 수를 결정하며, 수행하는 방법의 일 예로 도 31의 방법을 사용할 수 있다. Step 1) The method of FIG. 31 may be used as an example of a method of determining the number of bit planes to be coded and performing the same.
Step 2) 코딩할 비트플래인의 수(bitplane_num)를 설정한다. Step 2) Set the number of bitplanes to code (bitplane_num).
Step 3) 만약 bitplane_num이 '8'이 아니라면, Step 4로 분기한다. 만약 그렇지 않다면 MSB, MSB-1, MSB-2, MSB-3, MSB-4, MSB-5, MSB-6, LSB 비트플래인을 코딩한다. Step 3) If bitplane_num is not '8', branch to
Step 4) 만약 bitplane_num이 '7'이 아니라면, Step 5로 분기한다. 만약 그렇지 않다면 MSB, MSB-1, MSB-2, MSB-3, MSB-4, MSB-5, MSB-6 비트플래인을 코딩한다.Step 4) If bitplane_num is not '7', branch to
Step 5) 만약 bitplane_num이 '6'이 아니라면, Step 6으로 분기한다. 만약 그렇지 않다면 MSB, MSB-1, MSB-2, MSB-3, MSB-4, MSB-5 비트플래인을 코딩한다.Step 5) If bitplane_num is not '6', branch to
Step 6) 만약 bitplane_num이 '5'가 아니라면, Step 7로 분기한다. 만약 그렇지 않다면 MSB, MSB-1, MSB-2, MSB-3, MSB-4 비트플래인을 코딩한다.Step 6) If bitplane_num is not '5', branch to
Step 7) 만약 bitplane_num이 '4'가 아니라면, Step 8로 분기한다. 만약 그렇지 않다면 MSB, MSB-1, MSB-2, MSB-3 비트플래인을 코딩한다.Step 7) If bitplane_num is not '4', branch to
Step 8) 만약 bitplane_num이 '3'이 아니라면, Step 9로 분기한다. 만약 그렇지 않다면 MSB, MSB-1, MSB-2 비트플래인을 코딩한다.Step 8) If bitplane_num is not '3', branch to Step 9. If not, code the MSB, MSB-1, and MSB-2 bitplanes.
Step 9) 만약 bitplane_num이 '2'가 아니라면, MSB 비트플래인을 코딩한다. 만약 그렇지 않다면 MSB, MSB-1 비트플래인을 코딩한다.Step 9) If bitplane_num is not '2', code the MSB bitplane. If not, code the MSB, MSB-1 bitplane.
상기 블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법과, 깊이 정보맵을 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법을 국제 동영상 표준인 H.264/AVC에 실제 구현한 일 예로 Macroblock layer(macroblock_layer) 신택스를 다음의 표 1 및 표 2와 같이 수정하여 구현할 수 있다.(여기서, 표 1과 표 2는 원래 연속된 하나이나, 지면의 한계로 이를 분할하여 표현한다)A method of adaptively selecting and coding the block-based bitplane coding method and an existing block-based video coding method, and a method of adaptively selecting a bitplane to be coded by separating a depth information map into bitplane units. As an example, the macroblock layer (macroblock_layer) syntax may be modified as shown in Tables 1 and 2 below, in which H.264 / AVC is actually implemented. One, but divided by the limits of the ground)
"bitplane_coding_flag"는 현재의 깊이 정보맵 블록이 비트플래인 코딩 모드로 코딩되었는지의 여부를 나타내며, "bitplane_coding_flag" 값이 '1'일 경우에는 비트플래인 코딩을 수행한 것이며, '0'일 경우에는 기존 방법으로 코딩을 수행한 것이다. 'bitplane_num'은 상기 도 31의 방법을 이용한 비트율 조절 방법으로 현재의 깊이 정보맵 블록에서 코딩된 비트플래인의 수를 나타낸다. 여기에서 상기 도 28의 방법을 이용하여 비트율 조절을 수행할 경우, 'bitplane_num'은 'downsampling_rate'로 변경되어 사용되며, 'downsampling_rate'는 현재의 깊이 정보맵 블록에 대한 수평 또는 수직 방향으로의 다운샘플링의 샘플링 레이트(sampling rate)를 나타낸다. 깊이 'bab_type' 은 상기 <인코더> 방법에서 비트플래인 단위 코딩을 수행하였을 때, 비트플래인 블록의 모드를 나타낸다. 'mvd_x'와 'mvd_y'는 현재 비트플래인 블록에서 움직임 벡터의 차분값(MVD; Motion Vector Difference)의 수평과 수직 성분을 나타낸다. 움직임 벡터의 차분값은 현재 비트플래인 블록의 움직임 벡터(MV)와 현재 비트플래인 블록의 움직임 벡터 예측값(MVP)을 차분함으로 구한다(MVD = MV - MVP). 디코더에서는 전송받은 움직임 벡터의 차분값을 움직임 벡터 예측값과 합산하여 움직임 벡터를 계산한다(MV = MVD + MVp). "scan_type"은 현재 비트플래인 블록을 컨텍스트 기반 산술 인코딩(CAE, Context-based Arithmetic Encoding) 을 수행할 때, 수평 방향 스캔을 수행할지 수직 방향 스캔을 수행할지에 대한 플래그 정보로써, 'scan_type'이 0일 때는 수평(horizontal) 방향 스캔을 수행하며, 'scan_type'이 1일 때는 수직(vertical) 방향 스캔을 수행한다. "binary_arithmetic_code()"는 컨텍스트 기반 산술 인코딩(CAE, Context-based Arithmetic Encoding)을 통해 코딩된 데이터를 의미한다."bitplane_coding_flag" indicates whether or not the current depth information map block is coded in bitplane coding mode. If "bitplane_coding_flag" value is '1', bitplane coding is performed. Coding was done in the traditional way. 'bitplane_num' represents the number of bit planes coded in the current depth information map block by the bit rate adjusting method using the method of FIG. Here, when bit rate adjustment is performed using the method of FIG. 28, 'bitplane_num' is changed to 'downsampling_rate', and 'downsampling_rate' is downsampling in the horizontal or vertical direction with respect to the current depth information map block. Sampling rate. Depth 'bab_type' indicates a mode of a bitplane block when bitplane unit coding is performed in the <encoder> method. 'mvd_x' and 'mvd_y' indicate horizontal and vertical components of a motion vector difference (MV D ) of a motion vector in a current bitplane block. The difference value of the motion vector is obtained by difference between the motion vector (MV) of the current bitplane block and the motion vector prediction value (MV P ) of the current bitplane block (MV D = MV-MV P ). The decoder calculates a motion vector by adding the difference value of the received motion vector to the motion vector prediction value (MV = MV D + MV p ). "scan_type" is flag information on whether to perform a horizontal scan or a vertical scan when performing a context-based arithmetic encoding (CAE) of the current bitplane block. When 0, horizontal scan is performed. When 'scan_type' is 1, vertical scan is performed. "binary_arithmetic_code ()" means data coded through Context-based Arithmetic Encoding (CAE).
본 발명에서 제안하는 방법의 우수성을 검증하기 위해 본 발명의 발명자는 H.264/AVC의 참조 소프트웨어인 JM(Joint Model) 13.2에 실제 구현하여 기존 방법과 제안하는 방법의 비교를 수행하였다. 비트플래인 단위 코딩에서 현재 비트플래인 코딩 모드는 "all_0", "all_1", "intraCAE" 세 가지 모드만 허용하였다. 기존 코딩 방법의 조건은 H.264/AVC의 Baseline Profile을 사용하였으며, Ballet XGA(1024x768) 15Hz 영상의 깊이 정보맵과 Breakdancers XGA(1024x768) 15Hz 영상의 깊이 정보맵에 대한 비교를 수행하였다.In order to verify the superiority of the method proposed in the present invention, the inventor of the present invention actually implemented in JM (Joint Model) 13.2, which is the reference software of H.264 / AVC, and compared the existing method with the proposed method. In bitplane unit coding, the current bitplane coding mode allows only three modes, "all_0", "all_1", and "intraCAE". The baseline profile of H.264 / AVC was used as a condition of the existing coding method, and the depth information map of Ballet XGA (1024x768) 15Hz image was compared with the depth information map of Breakdancers XGA (1024x768) 15Hz image.
도 34, 도 35는 H.264/AVC를 이용한 기존 방법(Anchor)과 제안하는 방법(Proposed)에 대한 비트율 대비 PSNR(Peak Singal-to-Noise Ratio)에 대한 RD(Rate-distortioon)-Curve를 나타낸다. 그래프 결과를 통해 본 발명에서 제안하는 방법의 결과가 기존 방법의 결과보다 성능이 월등하게 향상된 것을 확인할 수 있으며, 평균적인 PSNR 향상을 나타내는 BD-PSNR 방법을 사용하여 성능을 비교하였을 때 0.87 dB ~ 0.89 dB 향상되었고, 평균적인 bit-rate 감소량을 나타내는 BD-rate 방법을 사용하여 성능을 비교하였을 때 12.62 % ~ 12.89 % 감소하였다.34 and 35 illustrate Rate-distortioon (RD) -Curve for Peak Singal-to-Noise Ratio (PSNR) vs. Bit Rate for the existing method (Anchor) and Proposed method using H.264 / AVC. Indicates. The graph results show that the performance of the proposed method is much better than that of the conventional method. When the performance is compared using the BD-PSNR method, which shows the average PSNR improvement, the performance is 0.87 dB ~ 0.89. The performance was improved by 12.62% to 12.89% when the performance was improved by using the BD-rate method, which showed a dB improvement and average bit-rate reduction.
<발명의 장치><Device of invention>
본 발명에서 블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법과, 깊이 정보맵을 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법의 인코더 장치도는 도 36과 같다.In the present invention, a method of adaptively selecting and coding a block-based bitplane coding method and a conventional block-based video coding method, and adaptively selecting a bitplane to code by separating a depth information map into bitplane units 36 is an encoder diagram of the method.
도 36에서 입력된 영상은 n-bit로 표현되는 깊이 정보맵이며, 출력은 깊이 정보맵을 블록으로 나눈 후, 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법을 이용한 비트플래인 단위 코딩 방법과 기존의 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법으로 코딩된 결과인 비트스트림이다. "참조 영상 버퍼부"에는 시간 방향으로 이전에 코딩되고 디코딩된 깊이 정보맵이 저장된다. "재구성된 영상 버퍼부"에는 현재 깊이 정보맵을 인코딩하고 디코딩한 깊이 정보맵이 저장된다. "모드 결정부"에서는 n-bit로 표현되는 깊이 정보맵 블록을 입력 받아 상기 도 27의 모드 선택 방법(블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법을 적응적으로 선택할 수 있는 모드 선택 방법)을 수행하여 코딩 모드에 대한 정보를 비트스트림으로 출력한다. The input image shown in FIG. 36 is a depth information map expressed in n-bit, and the output is divided into blocks, and the output information is divided into bit plane units, and the bit plane to be coded is adaptively selected. A bitstream that is a result of being coded by adaptively selecting and coding a bitplane unit coding method and a conventional video coding method. The "reference picture buffer part" stores a depth information map previously coded and decoded in the time direction. The reconstructed image buffer unit stores the depth information map obtained by encoding and decoding the current depth information map. The "mode determination unit" receives a depth information map block expressed in n-bit and adaptively selects and codes the mode selection method of FIG. 27 (a block unit bitplane coding method and a conventional block unit video coding method). A mode selection method capable of adaptively selecting a method) to output information about a coding mode in a bitstream.
"모드 결정부"에서 기존 코딩 모드가 선택되었을 경우, 기존 코딩 방법인 도 36의 'A'가 수행된다. "예측부"에서는 "참조 영상 버퍼부"에 저장된 참조 영상과 "디코딩부"의 결과 영상과 비트플래인 코딩으로 인코딩하고 디코딩한 영상을 입력 받아 인트라(Intra) 및 인터(Inter) 모드에 따라 예측 블록을 출력하여 "인코딩부"에 전달한다. "인코딩부"에서는 예측블록과 깊이 정보맵을 입력 받아 인코딩을 수행해서 비트스트림을 출력한다. "디코딩부"에서는 예측블록과 "인코딩부"에서 인코딩된 비트스트림을 입력 받아 디코딩해서 재구성된 깊이 정보맵을 출력하고 "예측부"와 "디블록킹 필터부"로 전달한다. "디블록킹 필터부"에서는 코딩 과정에서 발생한 블록킹 현상(blocking artifact)을 제거한 후, "재구성된 영상 버퍼부"에 저장한다. "멀티플랙서부"에서는 비트플래인 코딩 모드를 수행하여 출력된 비트스트림과 기존 코딩 모드를 수행하여 출력된 비트스트림이 조합되어 하나의 비트스트림이 출력된다. When an existing coding mode is selected in the "mode determination unit", "A" of FIG. 36, which is an existing coding method, is performed. In the "prediction unit", the reference image stored in the "reference image buffer unit" and the resultant image of the "decoding unit" and the image encoded and decoded by bitplane coding are received and predicted according to the Intra and Inter modes. Output the block and pass it to the "encoding unit". The "encoding unit" receives the prediction block and the depth information map and performs encoding to output the bitstream. The "decoding unit" receives the bitstream encoded by the prediction block and the "encoding unit", outputs a reconstructed depth information map, and delivers the reconstructed depth information map to the "prediction unit" and the "deblocking filter unit". The "deblocking filter unit" removes blocking artifacts generated during the coding process and stores the blocking artifacts in the reconstructed image buffer unit. In the "multiplexer", one bitstream is output by combining a bitstream output by performing a bitplane coding mode and a bitstream output by performing an existing coding mode.
"모드 결정부"에서 비트플래인 코딩 모드가 선택되었을 경우, 비트플래인 단위 코딩 방법인 도 36의 'B'가 수행된다. "그레이 코드 변환부"에서는 깊이 정보맵 블록을 입력 받아 그레이 코드로의 변환을 수행한다. "비트플래인 분리부"에서는 N-bit로 표현되는 깊이 정보맵 블록을 입력 받아 N개의 비트플래인 블록으로 분리한다. "비트율 조절부"는 옵션에 따라 사용할 수도 있고 사용하지 않을 수도 있다. "비트율 조절부"에서는 깊이 정보맵 블록을 입력 받아 상기 도 28의 방법이나 도 31의 방법으로 코딩을 수행할 비트플래인을 선택하며, 코딩을 수행할 비트플래인의 수에 대한 정보는 비트스트림으로 출력된다. 참조 영상 버퍼에 저장되어 있는 참조 영상과 재구성된 영상 버퍼에 저장되어 있는 재구성된 영상은 "비트플래인 코딩부"로 입력된다. "비트플래인 코딩부"에서는 입력된 참조 영상과 재구성된 영상을 통해 코딩할 비트플래인의 수만큼 반복해서 각각의 비트플래인을 인코딩하고 그 결과를 비트스트림으로 출력한다. 비트플래인 블록을 코딩하는 방법은 상기 도 9에서의 MPEG-4 Part 2 Visual의 형상 코딩 방법을 응용한 비트플래인 코딩 방법을 사용할 수 있다. 비트플래인 코딩이 선택되어 "비트플래인 코딩"을 수행하고, 코딩을 수행한 데이터는 이후에 입력되는 깊이 정보맵 블록의 코딩을 위해 "비트플래인 디코딩부"를 수행한다. "비트플래인 디코딩부"는 인코딩된 비트스트림을 입력 받아 비트플래인 수만큼 반복해서 수행되며, 입력된 비트스트림을 각 비트플래인 별로 디코딩하여 n개의 비트플래인 영상을 출력한다. "비트플래인 디코딩부"는 상기 도 22에서 MPEG-4 Part 2 Visual의 형상 디코딩 방법을 응용한 비트플래인 코딩 방법을 사용할 수 있다. "비트플래인 결합부"에서는 "비트플래인 디코딩부"에서 출력된 N개의 비트플래인들을 N-bit에 맞게 결합을 수행한다. "역 그레이 코드 변환부"에서는 그레이 코드로 표현된 깊이 정보맵 블록을 원래의 형태로의 복원을 수행한다. "깊이 정보맵 구성부"는 실제 깊이 정보맵의 비트수에 맞게 구성하여 재구성된 깊이 정보맵을 출력한다.When the bitplane coding mode is selected in the "mode determination unit", "B" of FIG. 36, which is a bitplane unit coding method, is performed. The "gray code converter" receives the depth information map block and converts the gray code. The "bitplane separation unit" receives a depth information map block expressed in N-bit and divides it into N bitplane blocks. The "bit rate controller" may or may not be used depending on the option. The bit rate controller receives a depth information map block and selects a bit plane to be coded by the method of FIG. 28 or 31, and the information on the number of bit planes to be coded is a bitstream. Is output. The reference picture stored in the reference picture buffer and the reconstructed picture stored in the reconstructed picture buffer are input to the "bitplane coding unit". The "bitplane coding unit" repeatedly encodes each bitplane by the number of bitplanes to be coded through the input reference image and the reconstructed image, and outputs the result as a bitstream. As a method of coding a bitplane block, a bitplane coding method using the shape coding method of the MPEG-4
본 발명에서 블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법과, 깊이 정보맵을 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법의 디코더 장치도는 도 37과 같다.In the present invention, a method of adaptively selecting and coding a block-based bitplane coding method and a conventional block-based video coding method, and adaptively selecting a bitplane to code by separating a depth information map into bitplane units A decoder device diagram of the method is shown in FIG.
도 37에서 입력은 비트스트림이며, 출력은 깊이 정보맵을 블록으로 나눈 후, 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법을 이용한 비트플래인 단위 코딩 방법과 기존의 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법으로 디코딩된 결과인 재구성된 깊이 정보맵이다. "참조 영상 버퍼부"에는 시간 방향으로 이전에 디코딩된 깊이 정보맵이 저장된다. "재구성된 영상 버퍼부"에는 현재 깊이 정보맵을 인코딩하고 디코딩한 깊이 정보맵이 저장된다. "코딩 모드 판단부"에서는 비트스트림을 입력받아 현재 디코딩할 깊이 정보맵의 코딩 정보를 디코딩하여, 비트플래인 디코딩 모드로 디코딩할지 아니면 기존 디코딩 모드로 디코딩할지 여부를 판단한다. In FIG. 37, the input is a bitstream, and the output is a bitplane unit coding method using a method of adaptively selecting a bitplane to be coded by dividing the depth information map into blocks, and then separating them into bitplane units. A reconstructed depth information map resulting from decoding by adaptively selecting and coding a video coding method. The reference image buffer unit stores the depth information map previously decoded in the time direction. The reconstructed image buffer unit stores the depth information map obtained by encoding and decoding the current depth information map. The coding mode determination unit receives the bitstream and decodes coding information of a depth information map to be currently decoded, and determines whether to decode in the bitplane decoding mode or the conventional decoding mode.
비트플래인 디코딩 모드가 선택되었을 경우, 비트플래인 디코딩 방법인 도 37의 'C'가 수행된다. "비트플래인 디코딩부"는 비트스트림을 입력 받아 비트플래인 수만큼 반복해서 수행되며, 입력된 비트스트림을 각 비트플래인 별로 디코딩하여 n개의 비트플래인 영상을 출력한다. "비트플래인 디코딩부"는 상기 도 22에서 MPEG-4 Part 2 Visual의 형상 디코딩 방법을 응용한 비트플래인 코딩 방법을 사용할 수 있다. "비트플래인 결합부"에서는 "비트플래인 디코딩부"에서 출력된 N개의 비트플래인들을 N-bit에 맞게 결합을 수행한다. "역 그레이 코드 변환부"에서는 그레이 코드로 표현된 깊이 정보맵 블록을 원래의 형태로의 복원을 수행한다. "깊이 정보맵 구성부"는 실제 깊이 정보맵의 비트수에 맞게 구성하여 재구성된 깊이 정보맵 블록을 출력한다.When the bitplane decoding mode is selected, 'C' of FIG. 37, which is a bitplane decoding method, is performed. The "bitplane decoding unit" is repeatedly executed by receiving the bitstream as many as the number of bitplanes, decodes the input bitstream for each bitplane, and outputs n bitplane images. The "bitplane decoding unit" may use a bitplane coding method applying the shape decoding method of MPEG-4
기존 디코딩 모드가 선택되었을 경우, 기존 디코딩 방법인 도 37의 'D'가 수행된다. "예측부"에서는 "참조 영상 버퍼부"에 저장된 참조 영상과 "디코딩부"의 결과 영상과 비트플래인 코딩으로 디코딩한 영상을 입력 받아 인트라(Intra) 및 인터(Inter) 모드에 따라 예측 블록을 출력하여 "디코딩부"에 전달한다. "디코딩부"에서는 예측블록과 비트스트림을 입력 받아 디코딩해서 재구성된 깊이 정보맵 블록을 출력하고 "예측부"와 "디블록킹 필터부"로 전달한다. "디블록킹 필터부"에서는 재구성된 깊이 정보맵 블록을 입력받아 코딩 과정에서 발생한 블록킹 현상(blocking artifact)을 제거한 후, "재구성된 영상 버퍼부"에 저장하거나 필터링을 수행한 재구성된 깊이 정보맵 블록을 출력한다.When the existing decoding mode is selected, 'D' of FIG. 37, which is an existing decoding method, is performed. In the "prediction unit", the reference image stored in the "reference image buffer unit", the resultant image of the "decoding unit", and the image decoded by bitplane coding are input, and the prediction block is converted according to the intra and inter modes. Output it to the "decoding part". The "decoding unit" receives the prediction block and the bitstream, decodes them, outputs a reconstructed depth information map block, and transfers them to the "prediction unit" and the "deblocking filter unit". The "deblocking filter unit" receives the reconstructed depth information map block, removes blocking artifacts generated during the coding process, and then stores or filters the reconstructed depth information map block in the "reconstructed image buffer unit". Outputs
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be construed to include various embodiments within the scope of the claims.
도 1은 실제 영상(왼쪽)과 깊이 정보맵영상(오른쪽)의 일 예1 is an example of an actual image (left) and a depth information map image (right)
도 2는 H.264/AVC의 인코더 구조도2 is an encoder structure diagram of H.264 / AVC
도 3은 H.264/AVC의 디코더 구조도3 is a block diagram of a decoder of H.264 / AVC
도 4는 도 1의 실제 영상과 깊이 정보맵의 각 픽셀의 level을 표현한 3차원 그래프; (왼쪽) 실제 영상의 그래프, (오른쪽) 깊이 정보맵의 그래프4 is a three-dimensional graph representing the level of each pixel of the real image and the depth information map of FIG. (Left) graph of actual image, (right) graph of depth map
도 5는 비트플래인 분석: 도 1의 실제 영상의 비트플래인 표현(왼쪽), 깊이 정보맵의 비트플래인(가운데), 깊이 정보맵의 비트플래인에 그레이 코드를 적용(오른쪽)5 is a bitplane analysis: a bitplane representation of the real image of FIG. 1 (left), a bitplane of the depth information map (center), and a gray code applied to the bitplane of the depth information map (right)
도 6은 Ballet 영상의 깊이 정보맵에서 객체 경계 부분 매크로블록의 비트플래인 분석6 is a bitplane analysis of an object boundary partial macroblock in a depth information map of a ballet image.
도 7은 Ballet 영상의 깊이 정보맵에서 배경 부분 매크로블록의 비트플래인 분석7 is a bitplane analysis of a background partial macroblock in a depth information map of a ballet image.
도 8은 블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법과, 깊이 정보맵을 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법의 인코더 구조도의 일 예8 is a method of adaptively selecting and coding a block-based bitplane coding method and a conventional block-based video coding method, and adaptively selecting a bitplane to be coded by separating a depth information map into bitplane units. An example of an encoder schematic of how to
도 9는 "비트플래인 코딩"을 수행하는 방법의 일 예9 is an example of a method of performing “bitplane coding”
도 10은 인트라 픽쳐 모드 결정 방법10 is a method of determining an intra picture mode
도 11은 인터 픽쳐 모드 결정 방법11 is a method for determining an inter picture mode.
도 12는 움직임 예측값(MVP) 결정 방법 순서도12 is a flowchart illustrating a method of determining a motion prediction value (MVP).
도 13은 "CAE 인코딩" 구조도의 일 예13 is an example of a "CAE encoding" structure diagram
도 14는 변환비율(CR; Conversion Ratio) 결정 순서도14 is a flowchart for determining a conversion ratio (CR).
도 15는 intraCAE를 위한 컨텍스트 템플릿15 shows a context template for intraCAE
도 16은 interCAE를 위한 컨텍스트 템플릿16 is a context template for interCAE
도 17은 스캔 순서의 일 예17 is an example of a scan sequence
도 18은 런 길이 코딩(Run Length Coding)과 가변 길이 코딩(Variable Length Coding) 방법을 이용한 비트플래인 코딩 방법의 일 예18 is an example of a bitplane coding method using run length coding and variable length coding methods
도 19는 각 심볼(Symbol)에 대한 런(Run)의 길이들을 세는 방법19 shows how to count the lengths of Runs for each symbol.
도 20은 런 길이 코딩(Run Length Coding) 방법과 가변 길이 코딩(Variable Length Coding) 방법을 이용한 비트플래인 코딩 방법에서 비트플래인 블록을 서브 블록으로 나누어서 코딩하는 방법의 일 예20 is an example of a method of dividing a bitplane block into subblocks in a bitplane coding method using a run length coding method and a variable length coding method.
도 21은 컨텍스트 기반 적응적 산술 코딩 방법을 응용한 비트플래인 코딩 방법의 일 예21 is an example of a bitplane coding method using a context-based adaptive arithmetic coding method
도 22는 "비트플래인 디코딩"을 수행하는 방법의 일 예22 is an example of a method of performing "bitplane decoding"
도 23은 "CAE 디코딩" 구조도의 일 예23 is an example of a "CAE decoding" structure diagram
도 24는 런 길이 코딩(Run Length Coding)과 가변 길이 코딩(Variable Length Coding) 방법을 이용한 비트플래인 디코딩 방법의 일 예24 is an example of a bitplane decoding method using run length coding and variable length coding methods
도 25는 런 길이 코딩(Run Length Coding) 방법과 가변 길이 코딩(Variable Length Coding) 방법을 이용한 비트플래인 코딩 방법에서 비트플래인 블록을 서브 블록으로 나누어서 디코딩하는 방법의 일 예25 illustrates an example of decoding a bitplane block by dividing it into subblocks in a bitplane coding method using a run length coding method and a variable length coding method.
도 26은 블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법과, 깊이 정보맵을 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법의 디코더 구조도의 일 예FIG. 26 is a method of adaptively selecting and coding a block-based bitplane coding method and an existing block-based video coding method, and adaptively selecting a bitplane to be coded by separating a depth information map into bitplane units. An example of decoder structure diagram of how to
도 27은 코딩 모드 결정 방법의 일 예27 is an example of a coding mode determination method
도 28은 깊이 정보맵 블록 혹은 분리된 비트플래인의 이진 블록에 다운샘플링을 적용하여 비트율을 조절하는 방법의 일 예28 is an example of a method of adjusting a bit rate by applying downsampling to a depth information map block or a binary block of a separated bitplane
도 29는 다운샘플링하는 방법의 일 예29 is an example of a method of downsampling
도 30은 최적의 샘플링 레이트(sampling rate)를 결정하는 방법의 순서도의 실시 일 예30 illustrates an embodiment of a flowchart of a method of determining an optimal sampling rate.
도 31은 코딩할 비트플래인의 수를 결정하는 방법의 순서도의 실시 일 예31 is an embodiment of a flowchart of a method of determining the number of bitplanes to code
도 32는 "bitplane_coding_flag" 값에 따른 코딩 모드 수행 방법의 실시 일 예32 illustrates an embodiment of a coding mode execution method according to a "bitplane_coding_flag" value
도 33은 "bitplane_num" 값에 따른 비트플래인 코딩 수행 방법의 순서도의 실시 일 예33 is a flowchart illustrating a method of performing bitplane coding according to a value of "bitplane_num".
도 34는 Ballet 영상의 깊이 정보맵 실험 결과 그래프 (Anchor: 기존의 방법, Proposed: 제안하는 방법)34 is a graph of a result of a depth information map experiment of a Ballet image (Anchor: conventional method, Proposed: proposed method)
도 35는 Breakdanceres 영상의 깊이 정보맵 실험 결과 그래프 (Anchor: 기존의 방법, Proposed: 제안하는 방법)35 is a graph showing the results of the depth information map experiment of the breakdanceres image (Anchor: Conventional Method, Proposed: Proposed Method)
도 36은 블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법과, 깊이 정보맵을 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법의 인코더 장치도36 is a diagram for adaptively selecting and coding a block-based bitplane coding method and a conventional block-based video coding method, and adaptively selecting a bitplane to be coded by dividing a depth information map into bitplane units. Encoder device of how to
도 37은 블록 단위 비트플래인 코딩 방법과 기존의 블록 단위 동영상 코딩 방법을 적응적으로 선택하여 코딩하는 방법과, 깊이 정보맵을 비트플래인 단위로 분리하여 코딩할 비트플래인을 적응적으로 선택하는 방법의 디코더 장치도.37 shows a method of adaptively selecting and coding a block-based bitplane coding method and a conventional block-based video coding method, and adaptively selecting a bitplane to be coded by separating a depth information map into bitplane units. Decoder device of the method.
Claims (26)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090020918A KR20100102493A (en) | 2009-03-11 | 2009-03-11 | Depth map coding method and apparatus using block-based adaptive bitplane coding |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090020918A KR20100102493A (en) | 2009-03-11 | 2009-03-11 | Depth map coding method and apparatus using block-based adaptive bitplane coding |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100102493A true KR20100102493A (en) | 2010-09-24 |
Family
ID=43007575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090020918A KR20100102493A (en) | 2009-03-11 | 2009-03-11 | Depth map coding method and apparatus using block-based adaptive bitplane coding |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20100102493A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013133522A1 (en) * | 2012-03-05 | 2013-09-12 | 한국전자통신연구원 | Method and device for controlling video bit rate |
WO2014109547A1 (en) * | 2013-01-08 | 2014-07-17 | 엘지전자 주식회사 | Method and apparatus for processing video signal |
KR20160032277A (en) * | 2011-12-29 | 2016-03-23 | 인텔 코포레이션 | Variable depth compression |
US10750195B2 (en) | 2017-07-21 | 2020-08-18 | Samsung Electronics Co., Ltd. | Electronic device and method for encoding image data therein |
-
2009
- 2009-03-11 KR KR1020090020918A patent/KR20100102493A/en not_active Application Discontinuation
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160032277A (en) * | 2011-12-29 | 2016-03-23 | 인텔 코포레이션 | Variable depth compression |
WO2013133522A1 (en) * | 2012-03-05 | 2013-09-12 | 한국전자통신연구원 | Method and device for controlling video bit rate |
WO2014109547A1 (en) * | 2013-01-08 | 2014-07-17 | 엘지전자 주식회사 | Method and apparatus for processing video signal |
CN104969556A (en) * | 2013-01-08 | 2015-10-07 | Lg电子株式会社 | Method and apparatus for processing video signal |
AU2014205860B2 (en) * | 2013-01-08 | 2016-06-16 | Lg Electronics Inc. | Method and apparatus for processing video signal |
RU2625526C2 (en) * | 2013-01-08 | 2017-07-14 | ЭлДжи ЭЛЕКТРОНИКС ИНК. | Method and device for processing a video signal |
US10123007B2 (en) | 2013-01-08 | 2018-11-06 | Lg Electronics Inc. | Method and apparatus for processing video signal |
US10750195B2 (en) | 2017-07-21 | 2020-08-18 | Samsung Electronics Co., Ltd. | Electronic device and method for encoding image data therein |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6675289B2 (en) | Image decoding device, image decoding method, image encoding device, and image encoding method | |
KR101947142B1 (en) | Methods of decoding using skip mode and apparatuses for using the same | |
CN104247423B (en) | The frame mode coding method of scalable video coding system and device | |
US20170171543A1 (en) | Moving image encoding device and moving image decoding device based on adaptive switching among transformation block sizes | |
KR102272564B1 (en) | Image decoding device, image coding device, image decoding method, image coding method and storage medium | |
JP2017077036A (en) | Encoded data | |
CA3052608C (en) | Image coding device, image decoding device, image coding method, and image decoding method | |
KR20120033289A (en) | Method and apparatus for image encoding/decoding using prediction of filter information | |
JPWO2014163200A1 (en) | Color image encoding device, color image decoding device, color image encoding method, and color image decoding method | |
KR20150004289A (en) | Video including multi layers encoding and decoding method | |
KR102005468B1 (en) | Method and apparatus for generating reconstruction block | |
KR20130045155A (en) | Image decoding apparatus | |
KR20100083980A (en) | Method and apparatus for adaptive block based depth map coding | |
KR20100102493A (en) | Depth map coding method and apparatus using block-based adaptive bitplane coding | |
KR101529903B1 (en) | Block-based depth map coding method and apparatus and 3D video coding method using the method | |
JP2014007643A (en) | Moving picture encoder, moving picture decoder, moving picture encoding method, and moving picture decoding method | |
KR20100083957A (en) | Method and apparatus for coding depth map using bit-plane coding | |
KR20130086980A (en) | Methods and apparatuses of deblocking on intra prediction block | |
KR20140079519A (en) | Quantization parameter coding method using average quantization parameter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20090311 |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20121119 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20090311 Comment text: Patent Application |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20131128 Patent event code: PE09021S01D |
|
E90F | Notification of reason for final refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Final Notice of Reason for Refusal Patent event date: 20140723 Patent event code: PE09021S02D |
|
E601 | Decision to refuse application | ||
E801 | Decision on dismissal of amendment | ||
PE0601 | Decision on rejection of patent |
Patent event date: 20150227 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20140723 Comment text: Final Notice of Reason for Refusal Patent event code: PE06011S02I Patent event date: 20131128 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |
|
PE0801 | Dismissal of amendment |
Patent event code: PE08012E01D Comment text: Decision on Dismissal of Amendment Patent event date: 20150227 Patent event code: PE08011R01I Comment text: Amendment to Specification, etc. Patent event date: 20141020 Patent event code: PE08011R01I Comment text: Amendment to Specification, etc. Patent event date: 20140228 |