KR101076876B1 - Block-based depth map coding method and apparatus and 3D video coding method using the method - Google Patents

Block-based depth map coding method and apparatus and 3D video coding method using the method Download PDF

Info

Publication number
KR101076876B1
KR101076876B1 KR1020090088228A KR20090088228A KR101076876B1 KR 101076876 B1 KR101076876 B1 KR 101076876B1 KR 1020090088228 A KR1020090088228 A KR 1020090088228A KR 20090088228 A KR20090088228 A KR 20090088228A KR 101076876 B1 KR101076876 B1 KR 101076876B1
Authority
KR
South Korea
Prior art keywords
bitplane
block
depth map
delete delete
mode
Prior art date
Application number
KR1020090088228A
Other languages
Korean (ko)
Other versions
KR20100102516A (en
Inventor
박광훈
김경용
Original Assignee
경희대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 경희대학교 산학협력단 filed Critical 경희대학교 산학협력단
Priority to US12/721,288 priority Critical patent/US8798158B2/en
Publication of KR20100102516A publication Critical patent/KR20100102516A/en
Application granted granted Critical
Publication of KR101076876B1 publication Critical patent/KR101076876B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • H03K19/21EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/21Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with binary alpha-plane coding for video objects, e.g. context-based arithmetic encoding [CAE]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

블록기반 깊이정보 맵의 코딩 방법과 장치, 및 이를 이용한 3차원 비디오 코딩 방법을 제공한다. 본 발명의 일 실시예에 따른 깊이정보 맵의 디코딩 방법에서는 입력된 비트스트림에 대하여 소정 크기의 블록 단위로 비트플레인 디코딩 기법을 수행하여 깊이정보 맵을 재구성한다. 예를 들어, 디코딩된 코딩 모드 정보에 기초하여, 블록 단위로 비트플레인 디코딩 기법 또는 기존의 디씨티 기반 디코딩 기법을 선택하여 디코딩을 수행할 수 있다. 그리고 비트플레인 디코딩 기법은 비트플레인 블록 단위로 적응적으로 배타적 논리합(XOR) 연산을 수행하는 과정을 포함할 수 있다. 예를 들어, 비트스트림으로부터 디코딩된 XOR 연산 정보의 값에 따라서 비트플레인 블록 단위로 적응적으로 XOR 연산을 수행할 수 있다.A method and apparatus for coding a block-based depth map and a 3D video coding method using the same are provided. In the decoding method of the depth map according to an embodiment of the present invention, the depth map is reconstructed by performing a bitplane decoding technique on a block basis of a predetermined size with respect to the input bitstream. For example, based on the decoded coding mode information, decoding may be performed by selecting a bitplane decoding technique or an existing DC-based decoding technique in units of blocks. The bitplane decoding technique may include adaptively performing an XOR operation on a bitplane block basis. For example, the XOR operation may be adaptively performed in units of bitplane blocks according to the value of the XOR operation information decoded from the bitstream.

MVC, 3D Video Coding, 깊이정보 맵, 배타적 논리합 연산 MVC, 3D Video Coding, depth map, exclusive OR operation

Description

블록기반 깊이정보 맵의 코딩 방법과 장치, 및 이를 이용한 3차원 비디오 코딩 방법{Block-based depth map coding method and apparatus and 3D video coding method using the method}Block-based depth map coding method and apparatus, and 3D video coding method using same {Block-based depth map coding method and apparatus and 3D video coding method using the method}

본 발명은 비디오 코딩(video coding)에 관한 것으로, 보다 구체적으로 영상의 깊이정보 맵(depth map)을 인코딩(encoding)/디코딩(decoding)하는 방법과 장치, 및 이를 이용한 3차원 비디오 코딩 방법에 관한 것이다.The present invention relates to video coding, and more particularly, to a method and apparatus for encoding / decoding a depth map of an image, and a 3D video coding method using the same. will be.

실감 미디어에 대한 관심이 증가하면서 그에 대한 연구도 활발히 진행되고 있다. 실감 미디어란 공간과 시간이 제약된 가상의 환경에서도 실제 세계에서와 같이 보고 듣고 느낄 수 있도록 하는 미디어를 말한다. 사용자들은 실감 미디어를 통하여 가상의 환경에서도 실세계와 같은 현장감과 몰입감을 느낄 수가 있다. 실감 미디어는 방송, 통신 분야뿐만 아니라 광고, 전시, 교육, 의료 분야 등에 이르기까지 다양한 분야에 활용될 것으로 예상된다.As interest in realistic media has increased, studies on it have been actively conducted. Realistic media refers to media that can be seen, heard and felt as in the real world even in a virtual environment where space and time are limited. Users can feel the realism and immersion like the real world even in the virtual environment through realistic media. Realistic media is expected to be used not only in the fields of broadcasting and telecommunications but also in advertising, exhibition, education and medical fields.

실감 미디어의 일례로 다시점 영상(multi-view image)이 있다. 다시점 영상 이란 동일 피사체에 대하여 다양한 시점(view points)에서 획득한 복수의 영상들을 가리킨다. 다시점 영상을 이용하면, 사용자는 다양한 각도에서 동일 피사체를 관찰할 수가 있다. 다시점 영상과 관련된 대표적인 비디오 코딩으로서, 다시점 비디오 코딩(Multi-view Video Coding, MVC)과 3차원 비디오 코딩(3D Video Coding)이 있다. One example of sensory media is a multi-view image. The multi-view image refers to a plurality of images acquired from various viewpoints for the same subject. Using a multi-view image, the user can observe the same subject from various angles. Representative video codings related to multi-view video include multi-view video coding (MVC) and 3D video coding.

MVC는 복수(예컨대, 4개 또는 8개)의 카메라로부터 입력 받은 복수 시점의 영상들(Multiple View Images)을 효율적으로 인코딩/디코딩하기 위한 것이다. MVC는 다시점 영상을 획득하는데 사용된 카메라의 시점과 동일한 시점의 영상만을 사용자에게 제공한다. 따라서 MVC로 인코딩된 영상 데이터를 이용하여 보다 많은 시점의 영상을 제공하기 위해서는, 우선 보다 많은 카메라를 사용하여 영상을 촬영해야 한다. 하지만, 카메라의 개수를 증가시키면 그 만큼 영상 데이터의 양도 증가하는데, 현존하는 전달 미디어(방송, 통신, 저장 미디어 등)의 전송 대역폭이나 저장 용량에는 일정한 한계가 있기 때문에, MVC를 이용하여 사용자에게 제공할 수 있는 시점은 제약이 된다. 뿐만 아니라, MVC에서는 카메라의 시점과는 다른 시점 영상을 사용자에게 제공할 수 없다.The MVC is for efficiently encoding / decoding multiple view images received from a plurality of cameras (eg, four or eight). The MVC provides the user with only the image of the same viewpoint as that of the camera used to acquire the multiview image. Therefore, in order to provide images of more viewpoints by using image data encoded with MVC, images must be photographed using more cameras. However, as the number of cameras increases, the amount of video data increases accordingly. Since there is a certain limit in the transmission bandwidth or storage capacity of existing transmission media (broadcasting, communication, storage media, etc.), it is provided to a user using MVC. The point in time can be a constraint. In addition, MVC cannot provide a user with a viewpoint image different from that of a camera.

3차원 비디오 코딩(3D video coding)은 MVC의 이러한 한계를 보완하기 위한 것이다. 3D 비디오 코딩은 영상을 획득하는데 사용된 카메라의 시점(예컨대, N개 시점)은 물론 그 이외의 시점 즉, 가상 시점의 영상을 생성하는 것을 지원한다. 이를 위하여 3D 비디오 코딩에서는 N개 시점의 영상에 추가하여 깊이정보 맵(depth map)도 함께 코딩한다. 가상 시점의 영상은 인접한 시점에 위치한 카메라에서 획 득한 영상들과 그 깊이정보 맵들을 이용하여 뷰 보간(view interpolation)을 수행함으로써 생성할 수가 있다. 이러한 3D 비디오 코딩은 FTV(Free View-point Television) 시스템 등과 같은 3차원 디스플레이 시스템을 지원할 수 있다.3D video coding is intended to compensate for this limitation of MVC. 3D video coding supports the generation of an image of a viewpoint (eg, N viewpoints) of the camera used to acquire an image as well as other viewpoints, that is, a virtual viewpoint. To this end, in 3D video coding, a depth map is also coded in addition to images of N viewpoints. An image of a virtual view may be generated by performing view interpolation using images acquired from a camera located at an adjacent view and depth maps thereof. Such 3D video coding may support three-dimensional display systems such as free view-point television (FTV) systems.

도 1은 3D 비디오 코딩이 적용되는 FTV 시스템에서의 랜더링(rendering)의 일례를 보여 주는 도면이다. 도 1에 도시된 FTV 시스템은 N(N=5)개의 카메라를 사용하는 경우로서, 코딩 시에 N(N=5)개의 카메라에서 획득한 영상들(검정색 카메라로 표시된 시점의 영상들)의 이미지정보와 각 영상의 깊이정보를 부호화한다. 그리고 FTV 시스템은 부호화된 이미지정보와 깊이정보를 복호화한 다음, 복호화된 각 카메라 시점의 이미지정보와 깊이정보를 이용하여, 해당 카메라의 시점뿐만 아니라 해당 카메라의 시점과는 다른 시점의 영상들, 즉 부채꼴 모양의 음영으로 표시된 영역 내의 임의의 시점에서의 영상을 렌더링할 수 있다.1 is a diagram illustrating an example of rendering in an FTV system to which 3D video coding is applied. The FTV system illustrated in FIG. 1 uses N (N = 5) cameras, and images of images (images of a viewpoint represented by a black camera) acquired by N (N = 5) cameras at the time of coding Information and depth information of each image are encoded. The FTV system decodes the encoded image information and the depth information, and then uses the decoded image information and the depth information of each camera, and not only the viewpoint of the camera but also images of a viewpoint different from that of the camera. An image may be rendered at any point in time in the region indicated by the fan-shaped shade.

이와 같이, FTV 시스템에 적용되는 3D 비디오 코딩에서는 사용자에게 제공하고자 하는 모든 시점의 영상들을 카메라로 획득할 필요가 없다. 따라서 가능한 많은 시점의 영상을 제공하는데 있어서, 3D 비디오 코딩은 MVC에 비하여 전송 대역폭이나 저장 용량의 제한으로부터 상대적으로 자유롭다. 그리고 3D 비디오 코딩을 이용할 경우에는, 사용자가 원하는 임의의 시점의 영상을 특별한 제한 없이 제공할 수가 있다. As such, in 3D video coding applied to an FTV system, it is not necessary to acquire images of all viewpoints to be provided to a user with a camera. Thus, in providing images of as many views as possible, 3D video coding is relatively free from the limitations of transmission bandwidth or storage capacity compared to MVC. When 3D video coding is used, an image of any viewpoint desired by a user can be provided without particular limitation.

그런데, MVC에서는 입력 받은 시점의 영상의 이미지정보만을 인코딩/디코딩하는 과정만이 필요하다. 반면, 3D 비디오 코딩에서는 영상의 이미지정보 외에 깊이정보 맵도 인코딩/디코딩을 해야 한다. 즉, MVC와 비교했을 때, 3D 비디오 코딩 에서는 깊이정보 맵을 생성하는 과정, 깊이정보 맵을 인코딩/디코딩하는 과정, 및 깊이정보 맵을 이용하여 가상의 시점의 영상을 생성하는 과정이 추가적으로 필요하다. 3D 비디오 코딩과 관련하여 현재 진행되고 있는 대부분의 연구들은 깊이정보 맵의 생성 과정과 가상의 시점의 영상의 생성 과정에 집중되고 있으며, 깊이정보 맵을 인코딩/디코딩 과정에 대해서는 많은 연구가 진행되고 있지 않다. 이것은 깊이정보 맵의 인코딩/디코딩 과정은 이미지정보(휘도나 색차 등의 정보)를 코딩하기 위한 기존의 기법들(이하, '이미지정보 코딩 기법'이라 한다)을 그대로 사용하면 충분하다는 인식에 근거한다.However, in the MVC, only a process of encoding / decoding only image information of an image at the time of input is required. On the other hand, in 3D video coding, depth maps must be encoded / decoded in addition to image information of an image. That is, compared to MVC, 3D video coding further requires generating a depth map, encoding / decoding a depth map, and generating a virtual view image using the depth map. . Most of the current researches related to 3D video coding are focused on the generation of depth maps and the generation of virtual images, and much research is being done on the encoding / decoding of depth maps. not. This is based on the recognition that the encoding / decoding process of the depth map is sufficient to use existing techniques (hereinafter, referred to as 'image information coding technique') for coding image information (luminance, color difference, etc.). .

깊이정보 맵이란 현재 시점에서 카메라와 사물(object) 사이의 거리를 나타내기 위한 것이다. 카메라와 사물 사이의 거리는 사물의 위치, 즉 이미지 내에서 사물이 놓여 있는 공간적인 위치에 따라서 달라질 수 있다. 따라서 깊이정보 맵도 이미지정보와 마찬가지로 픽셀 단위로 표현할 수 있다. 예를 들어, 현재 영상의 이미지정보와 동일한 해상도로 상기 거리를 일정한 비트수로 표현함으로써, 깊이정보 맵을 생성할 수 있다. The depth map is intended to represent the distance between the camera and the object at the present time. The distance between the camera and the object may vary depending on the position of the object, that is, the spatial position in which the object is placed in the image. Therefore, like the image information, the depth information map may be expressed in pixel units. For example, the depth map may be generated by expressing the distance with a constant number of bits at the same resolution as the image information of the current image.

그런데, 사물까지의 실제 거리는 프레임에 따라서 그 변동 범위가 클 수가 있기 때문에, 각 픽셀에서의 사물까지의 거리, 즉 깊이정보는 절대적인 값이 아니라 상대적인 값으로 표현한다. 예를 들어, 동일 프레임 내에서의 최단 거리(Znear)와 최장 거리(Zfar)를 구한 다음, 이를 이용한 상대적인 값으로 깊이정보를 나타낼 수 있다. 예를 들어, 깊이 정보를 8비트로 나타낼 경우에, 최단 거리(Znear)의 사물이 있는 픽셀은 '255'으로 나타내고, 최장 거리(Zfar)의 사물이 있는 픽셀은 '0'로 나타내며, 또한 그 중간 거리의 사물이 있는 픽셀들의 경우에는 '0'과 '255' 사이의 소정의 값으로 비례적으로 나타낼 수 있다.However, since the actual range to the object can vary greatly depending on the frame, the distance to the object from each pixel, that is, the depth information, is expressed as a relative value rather than an absolute value. For example, the shortest distance Z near and the longest distance Z far in the same frame may be obtained, and then depth information may be represented as a relative value using the same. For example, when the depth information is represented by 8 bits, the pixel with the shortest distance (Z near ) is represented by '255', and the pixel with the longest distance (Z far ) is represented by '0'. In the case of pixels having an object having an intermediate distance, the pixels may be proportionally represented by a predetermined value between '0' and '255'.

이와 같이, 깊이정보 맵은 실제 사물과 카메라 사이의 거리에 기초한 거리정보를 표현한 것이다. 반면, 기존의 비디오 코딩에서 인코딩/디코딩의 대상이 되는 데이터들은 휘도나 색차 또는 RGB값 등과 같은 이미지정보이다. 동일한 피사체는 그 거리, 밝기, 색상 등이 일치할 수도 있다는 점에서 깊이정보와 이미지정보는 유사한 특성도 보이지만, 서로 간에 관련성이 낮은 경우도 많이 존재한다. 예를 들어, 휘도나 색차 등의 이미지정보가 전혀 다른 사물이나 또는 같은 사물의 다른 두 부분은 깊이정보는 유사할 수가 있다. 반대로, 휘도나 색차 등의 이미지정보는 유사하다고 하더라도 깊이정보는 서로 다를 수가 있다.As such, the depth map represents distance information based on the distance between the real object and the camera. On the other hand, data that is the object of encoding / decoding in conventional video coding is image information such as luminance, color difference, or RGB value. Depth information and image information show similar characteristics in that the same subject may have the same distance, brightness, color, etc., but there are many cases in which the same subjects have low relations with each other. For example, an object having completely different image information such as luminance or color difference, or two different parts of the same object may have similar depth information. On the contrary, the depth information may be different even though image information such as luminance and color difference is similar.

그런데, 기존의 비디오 코딩 기법들은 이미지정보의 특성을 고려하여 효율적으로 압축하기 위하여 개발된 것이다. 이러한 기존의 비디오 코딩 기법들을 깊이정보 맵의 인코딩/디코딩에 그대로 적용하면, 이미지정보와는 다른 특성을 갖는 깊이정보맵을 효율적으로 인코딩하기가 쉽지 않다. 또한, 깊이정보 맵을 사용하여 카메라의 시점과는 다른 시점의 영상을 생성할 경우에는, 깊이정보 맵의 정확도가 이미지의 화질에 큰 영향을 미칠 수가 있다. 따라서 MVC와 대비되는 3D 비디오 코딩의 장점을 극대화하기 위해서는, 깊이정보 맵에 고유한 특성을 고려한 효율적인 깊이정보 맵의 인코딩/디코딩 기법이 개발될 필요가 있다.However, existing video coding techniques have been developed to efficiently compress in consideration of the characteristics of image information. If the existing video coding techniques are applied to the encoding / decoding of the depth map as it is, it is not easy to efficiently encode the depth map having characteristics different from those of the image information. In addition, when an image of a viewpoint different from that of a camera is generated using the depth map, the accuracy of the depth map may greatly affect the image quality of the image. Therefore, in order to maximize the advantages of 3D video coding as opposed to MVC, an efficient depth map encoding / decoding technique considering characteristics unique to depth maps needs to be developed.

본 발명이 해결하고자 하는 하나의 과제는 깊이정보 맵을 효율적으로 인코딩 및 디코딩하기 위한 방법과 장치, 및 이를 이용한 3차원 비디오 코딩 방법을 제공하는 것이다.One object of the present invention is to provide a method and apparatus for efficiently encoding and decoding a depth map, and a 3D video coding method using the same.

본 발명이 해결하고자 하는 다른 하나의 과제는 깊이정보 맵 영상의 화질을 향상시킬 수 있는 깊이정보 맵의 인코딩/디코딩 방법과 장치, 및 이를 이용한 3차원 비디오 코딩 방법을 제공하는 것이다.Another object of the present invention is to provide a method and apparatus for encoding / decoding a depth map capable of improving the quality of a depth map image, and a 3D video coding method using the same.

본 발명이 해결하고자 하는 또 다른 하나의 과제는 이미지정보와는 다른 깊이정보에 고유한 특성을 고려한 깊이정보 맵의 인코딩/디코딩 방법과 장치, 및 이를 이용한 3차원 비디오 코딩 방법을 제공하는 것이다.Another object of the present invention is to provide a method and apparatus for encoding / decoding a depth map in consideration of characteristics unique to depth information different from image information, and a 3D video coding method using the same.

본 발명이 해결하고자 하는 또 다른 하나의 과제는 3D 비디오 코딩에 있어서 깊이정보 맵의 코딩 효율을 향상시킴으로써 보간되는 시점 영상의 화질을 개선할 수 있는 깊이정보 맵의 인코딩/디코딩 방법과 장치, 및 이를 이용한 3차원 비디오 코딩 방법을 제공하는 것이다.Another problem to be solved by the present invention is a method and apparatus for encoding / decoding a depth map capable of improving the quality of an interpolated view image by improving coding efficiency of a depth map in 3D video coding, and It provides a three-dimensional video coding method used.

상기한 과제를 해결하기 위한 본 발명의 일 실시예에 따른 깊이정보 맵의 디코딩 방법은 입력된 비트스트림에 대하여 소정 크기의 블록 단위로 비트플레인 디 코딩 기법을 수행하여 깊이정보 맵을 재구성한다. 예를 들어, 상기 블록 단위의 비트플레인 디코딩 기법은 비트스트림으로부터 각 깊이정보 맵 블록에 대한 코딩 모드 정보를 디코딩하는 단계를 포함하고, 상기 디코딩된 코딩 모드 정보가 비트플레인 디코딩 기법을 지시할 경우에만 상기 비트플레인 디코딩 기법을 수행할 수 있다. 그리고 상기 비트플레인 디코딩 기법은 비트플레인 블록 단위로 적응적으로 배타적 논리합(XOR) 연산을 수행하는 XOR 연산 단계를 포함할 수 있다. 보다 구체적으로, 상기 깊이정보 맵의 비트스트림으로부터 XOR 연산 정보를 디코딩하는 단계를 포함하고, 상기 XOR 연산 단계는 상기 디코딩된 XOR 연산 정보의 값이 해당 비트플레인 블록에 대하여 XOR 연산을 수행하는 것을 지시할 경우에 수행될 수 있다. 이 경우에, 상기 XOR 연산 단계를 거친 비트플레인 블록 및/또는 상기 XOR 연산 단계를 거치지 않은 비트플레인 블록을 결합하여 깊이정보 맵 블록을 구성하는 단계를 더 포함할 수 있다.The decoding method of the depth map according to an embodiment of the present invention for resolving the above problem is to reconstruct the depth map by performing a bitplane decoding technique on a block basis of a predetermined size with respect to the input bitstream. For example, the block-based bitplane decoding technique includes decoding coding mode information for each depth map block from a bitstream, and only when the decoded coding mode information indicates a bitplane decoding technique. The bitplane decoding technique may be performed. The bitplane decoding technique may include an XOR operation step of adaptively performing an exclusive OR operation in units of bitplane blocks. More specifically, the step of decoding the XOR operation information from the bitstream of the depth map, wherein the XOR operation step instructs the value of the decoded XOR operation information to perform the XOR operation on the corresponding bitplane block May be performed. In this case, the method may further include configuring a depth map block by combining the bitplane block that has been subjected to the XOR operation step and / or the bitplane block that has not been subjected to the XOR operation step.

상기한 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 깊이정보 맵의 디코딩 방법은, 입력된 비트스트림을 비트플레인 단위로 디코딩하여 복원한 비트플레인 블록에 대하여 참조 비트플레인 블록과 배타적 논리합(XOR) 연산을 수행하는 과정을 포함한다. 예를 들어, 상기 디코딩 방법은 상기 입력된 비트스트림으로부터 상기 비트플레인 블록을 복원하기 위한 비트플레인 디코딩 단계, 상기 복원된 비트플레인 블록에 대하여 적응적으로 배타적 논리합(XOR) 연산을 수행하기 위한 XOR 연산 단계, 및 상기 XOR 연산이 수행된 상기 복원된 비트플레인 블록 및/또는 상기 XOR 연산이 수행되지 않은 상기 복원된 비트플레인 블록을 결합하기 위한 비트플레 인 결합 단계를 포함할 수 있다.According to another aspect of the present invention, there is provided a decoding method of a depth map according to another embodiment of the present invention. ) To perform the operation. For example, the decoding method includes a bitplane decoding step for recovering the bitplane block from the input bitstream, an XOR operation for adaptively performing an exclusive OR operation on the restored bitplane block. And a bitplane combining step for combining the restored bitplane block on which the XOR operation was performed and / or the restored bitplane block on which the XOR operation was not performed.

상기한 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 깊이정보 맵의 디코딩 방법은 비트스트림으로부터 각 깊이정보 맵 블록에 대한 코딩 모드 정보를 디코딩하는 단계, 및 상기 디코딩된 코딩 모드 정보에 따라서 블록 단위의 비트플레인 디코딩 기법 또는 블록 단위의 디씨티 기반 디코딩 기법을 이용하여 상기 깊이정보 맵을 재구성하는 깊이정보 맵의 재구성 단계를 포함한다.According to another aspect of the present invention, there is provided a method of decoding a depth map, the method comprising: decoding coding mode information for each depth map block from a bitstream, and according to the decoded coding mode information. And reconstructing the depth map using the block-based bitplane decoding technique or the block-based DC-based decoding technique.

상기한 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 깊이정보 맵의 디코딩 방법은 N비트로 표현되는 깊이정보 맵 블록을 디코딩하는 방법으로서, 각 비트플레인 블록에 대한 블록 모드 정보에 따라서 디코딩을 수행하여 n(≤N)개의 비트플레인 블록을 복원하는 단계, 각 비트플레인 블록에 대한 배타적 논리합(XOR) 연산 정보에 따라서 상기 n개의 복원된 비트플레인 블록에 대하여 참조 비트플레인 블록과 적응적으로 XOR 연산을 수행하는 단계, 및 상기 XOR 연산이 수행되거나 및/또는 상기 XOR 연산이 수행되지 않은 상기 n개의 복원된 비트플레인 블록을 결합하는 단계를 포함한다.Decoding of the depth map according to another embodiment of the present invention for solving the above problems is a method of decoding a depth map block represented by N bits, decoding according to the block mode information for each bitplane block Restoring n (≤N) bitplane blocks, and adaptively XORing the reference bitplane block to the n recovered bitplane blocks according to exclusive OR operations information for each bitplane block. Performing an operation, and combining the n recovered bitplane blocks on which the XOR operation is performed and / or on which the XOR operation is not performed.

상기한 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 깊이정보 맵의 디코딩 방법은 입력되는 비트스트림으로부터 블록 모드 정보를 디코딩하는 단계 및 상기 블록 모드 정보에 따라서 동일 레벨 블록 디코딩 기법 또는 이진영상 디코딩 기법을 이용하여 현재 비트플레인 블록을 복원하는 단계를 포함한다.According to another aspect of the present invention, there is provided a decoding method of a depth map according to a method of decoding block mode information from an input bitstream and a same level block decoding technique or binary image according to the block mode information. Reconstructing the current bitplane block using a decoding technique.

본 발명의 실시예에 의하면, 3D 비디오 코딩에 있어서 깊이정보 맵의 코딩 효율을 향상시킬 수가 있다. 보다 구체적으로, 깊이정보 맵을 이용하여 복원된 영상, 특히 객체 경계 부근에서의 깊이정보 맵의 화질을 향상시키고 또는 비트율을 감소시킬 수가 있다. 따라서 본 발명의 실시예에 따른 깊이정보 맵의 코딩 방법을 이용하면, 3D 비디오 코딩에서 카메라로 캡쳐된 원영상의 화질은 물론 이 원영상을 이용하여 보간되는 영상의 화질을 향상시킬 수가 있다.According to the embodiment of the present invention, the coding efficiency of the depth map can be improved in 3D video coding. More specifically, it is possible to improve the image quality of the reconstructed image, especially the depth map near the object boundary, or to reduce the bit rate using the depth map. Therefore, by using the depth map coding method according to an embodiment of the present invention, the image quality of the original image captured by the camera in 3D video coding as well as the image interpolated using the original image can be improved.

이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세하게 설명한다. 사용되는 용어들은 실시예에서의 기능을 고려하여 선택된 용어들로서, 그 용어의 의미는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 후술하는 실시예들에서 사용된 용어의 의미는, 본 명세서에 구체적으로 정의된 경우에는 그 정의에 따르며, 구체적인 정의가 없는 경우는 당업자들이 일반적으로 인식하는 의미로 해석되어야 할 것이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The terms used are terms selected in consideration of functions in the embodiments, and the meaning of the terms may vary depending on the intention or custom of the user or operator. Therefore, the meaning of the terms used in the embodiments to be described later, according to the definition if specifically defined herein, and if there is no specific definition should be interpreted to mean generally recognized by those skilled in the art.

본 발명의 실시예에 따른 인코딩/디코딩 장치 및 방법을 설명하기에 앞서 우선 깊이정보 맵에 고유한 특성에 관하여 살펴보기로 한다. Before describing an encoding / decoding apparatus and method according to an embodiment of the present invention, a characteristic unique to a depth map will be described.

도 2는 실제 영상과 그것의 깊이정보 맵 영상의 일례를 보여 주는 것으로서, 도 2의 (a)는 실제 영상의 일례로서 MVC의 테스트 시퀀스의 하나인 'Breakdancers' 영상 시퀀스이고, 도 2의 (b)는 이 'Breakdancers' 영상 시퀀스의 깊이정보 맵 영 상이다. 도 2의 (b)의 깊이정보 맵 영상은 각 픽셀의 깊이정보를 8비트로 나타낸 것으로, 카메라와 가까울수록 큰 값(밝은 값)으로 표현하였다.FIG. 2 illustrates an example of a real image and a depth map image thereof, and FIG. 2A illustrates an image sequence of 'Breakdancers', which is one of the test sequences of MVC as an example of the actual image, and FIG. ) Is the depth map image of this 'Breakdancers' video sequence. In the depth map image of FIG. 2B, 8-bit depth information of each pixel is represented, and the closer to the camera, the greater the value (bright value).

이러한 8비트로 표현되는 깊이정보 맵을 이용하여 각 픽셀에서의 실제 거리(Z)를 구하는 방법의 일례는 수학식 1과 같이 표현할 수 있다.An example of a method of obtaining the actual distance Z from each pixel using the depth map represented by such 8 bits may be expressed by Equation 1 below.

Figure 112009057362095-pat00001
Figure 112009057362095-pat00001

여기서, v는 해당 픽셀에서의 깊이정보 값이고, Zfar와 Znear는, MPEG-C Part 3에 정의되어 있는 파라미터로써, 각각 해당 영상에서 실제 거리가 가장 먼 부분까지의 거리와 가장 가까운 부분까지의 거리를 나타낸다. 따라서 깊이정보 맵에 표시되는 깊이정보의 값은, 영상에서 보여지는 실제 세계에서의 가장 먼 영역과 가장 가까운 영역 사이를 2N (여기서, N은 깊이 정보맵을 표현하는 비트 수를 나타내며, 도 1의 (b)의 경우에는 N이 8이다) 등분하여 표현한 것이라고 할 수 있다.Here, v is a depth value of the corresponding pixel, and Z far and Z near are parameters defined in MPEG-C Part 3, respectively, to the part closest to the distance from the farthest distance to the actual distance in the video. Indicates the distance of. Therefore, the value of the depth information displayed on the depth map is 2 N (where N represents the number of bits representing the depth map between the farthest and the closest regions in the real world shown in the image, FIG. 1). In the case of (b), N is 8).

도 3a 및 도 3b는 각각 도 2의 영상에서 이미지정보의 레벨 분포와 깊이정보의 레벨 분포를 보여주기 위한 그래프이다. 도 3a는 도 2의 (a)의 실제 영상에서 각 픽셀의 이미지정보의 일례인 휘도, 즉 밝기를 표현한 3차원 그래프이고, 도 3b는 도 2의 (b)의 깊이정보 맵 영상에서 각 픽셀의 깊이정보의 레벨을 표현한 3차원 그래프이다. 도 3a 및 도 3b를 참조하면, 일반적으로 같은 영상에서 밝기의 변화는 다소 급격하지만 깊이정보 레벨의 변화는 상대적으로 완만하다는 것을 알 수 있다. 다만, 이미지정보와 깊이정보 레벨 사이의 이러한 특성 차이를 일반화하는 것은 일정한 한계가 있으며, 영상의 종류에 따라서 예외가 있을 수도 있다.3A and 3B are graphs for illustrating the level distribution of image information and the level distribution of depth information in the image of FIG. 2, respectively. FIG. 3A is a three-dimensional graph representing luminance, that is, brightness, which is an example of image information of each pixel in the actual image of FIG. 2A, and FIG. 3B is a diagram of each pixel in the depth map image of FIG. 2B. Three-dimensional graph representing the level of depth information. Referring to FIGS. 3A and 3B, it can be seen that, in general, the change in brightness is rather rapid in the same image, but the change in depth information level is relatively slow. However, there is a limit to generalizing such characteristic difference between the image information and the depth information level, and there may be an exception depending on the type of the image.

도 4a 및 도 4b는 각각 이미지정보와는 다른 깊이정보에 고유한 특성의 일례를 보여 주기 위한 도면으로서, 도 4a는 객체의 경계를 포함하는 깊이정보 맵 블록을 3차원으로 표현한 깊이정보 그래프이고, 도 4b는 배경 부분에서의 깊이정보 맵 블록을 3차원으로 표현한 깊이정보 그래프이다. 도 4a를 참조하면, 객체의 경계를 포함하는 블록에서는 비록 객체의 경계 부분에서 깊이정보의 급격한 변화가 존재하기는 하지만, 객체의 내부나 객체의 외부(배경)에서는 서로 인접한 주변 픽셀들에서는 깊이정보가 거의 비슷한 값으로 분포하고 있다는 것을 알 수 있다. 반면, 도 4b를 참조하면, 객체 내부나 배경 부분만을 포함하는 블록에서는 픽셀들 각각의 깊이정보가 46~54 사이로 분포하여 큰 변화가 없는 것처럼 보이기는 하지만, 깊이정보는 픽셀의 위치에 따라서 약간의 차이가 존재한다는 것을 확인할 수 있다.4A and 4B are diagrams for illustrating an example of characteristics inherent in depth information different from image information, and FIG. 4A is a depth information graph representing a depth map block including a boundary of an object in three dimensions. 4B is a depth information graph representing a depth map block in a background portion in three dimensions. Referring to FIG. 4A, although there is a sudden change in depth information at a boundary portion of an object in a block including an object boundary, depth information is provided at neighboring pixels adjacent to each other inside or outside of the object (background). It can be seen that is distributed in nearly similar values. On the other hand, referring to Figure 4b, in the block containing only the inside of the object or the background portion, the depth information of each pixel is distributed between 46 ~ 54, but it seems that there is no significant change, the depth information is slightly depending on the position of the pixel You can see that there is a difference.

깊이정보의 이러한 특성은 깊이정보 맵 영상을 비트플레인 단위로 분리하면 보다 분명하게 파악될 수 있다. 도 5의 (a)와 (b)는 각각 도 2의 (a)의 실제 영상과 도 2의 (b)의 깊이정보 맵 영상을 비트플레인 단위로 표현한 것으로서, 위쪽에서부터 각각 비트 7 또는 최상위 비트(Most Significant Bit, MSB), 비트 6(MSB-1), 비트 5(MSB-2), 비트 4(MSB-3), 비트 3(MSB-4), 비트 2(MSB-5), 비트 1(MSB-6), 및 비트 0 또는 최하위 비트(Least Significant Bit, LSB)에 대한 비트플레인들을 보여 준다. 전체적으로 볼 때, 깊이정보 맵 영상의 비트플레인(도 4의 (b))은 실제 영상(예컨대, 이미지정보 중에서 밝기로 표현된 영상)의 비트플레인(도 4의 (a))에 비하여 상당히 단조로운 형태를 보여 주는데, 이하 이에 대하여 보다 상세하게 설명한다.This characteristic of the depth information can be more clearly understood by dividing the depth map image into bit plane units. 5 (a) and 5 (b) are representations of the actual image of FIG. 2 (a) and the depth map image of FIG. 2 (b), respectively, in bit plane units. Most Significant Bit (MSB), Bit 6 (MSB-1), Bit 5 (MSB-2), Bit 4 (MSB-3), Bit 3 (MSB-4), Bit 2 (MSB-5), and Bit 1 ( MSB-6), and bitplanes for Bit 0 or Least Significant Bit (LSB). Overall, the bit plane of the depth map image (Fig. 4 (b)) is considerably monotonous compared to the bit plane (Fig. 4 (a)) of the actual image (e.g., the image expressed in brightness of the image information). This will be described in more detail below.

도 5의 (a)를 참조하면, 실제 영상(이미지정보)에서 최상위 비트(MSB)에 대한 비트플레인은 단조로운 형태를 갖지만, 하위 비트의 비트플레인으로 갈수록 상당히 복잡해지는 것을 알 수 있다. 특히, 최하위 비트(LSB)를 포함한 하위 세 개의 비트플레인들은 모두 백색 잡음(white noise)과 같은 형태로 상당히 복잡하다는 것을 알 수 있다. 그리고 도 5의 (b)를 참조하면, 깊이정보 맵 영상에서도 최상위 비트(MSB)로부터 최하위 비트(LSB)로 갈수록 비트플레인이 복잡해진다는 점에서 실제 영상의 비트플레인과 유사하기는 하나, 전체적으로 실제 영상의 비트플레인에 비하여 단조로운 형태를 보이는 것을 알 수 있다. 또한, 깊이정보 맵 영상에서는 일부 상위 비트의 비트플레인과 일부 하위 비트의 비트플레인 사이에서 형태적으로 상관관계가 나타나고 있는데, 이것은 도 5의 (c)를 통해서 분명하게 확인할 수 있다. Referring to FIG. 5A, it can be seen that the bitplane for the most significant bit MSB in the actual image (image information) has a monotonous shape, but becomes more complicated toward the bitplane of the lower bit. In particular, it can be seen that the lower three bitplanes, including the least significant bit (LSB), are all quite complex in the form of white noise. Referring to FIG. 5B, although the bitplane becomes more complicated in the depth map image from the most significant bit (MSB) to the least significant bit (LSB), it is similar to the bitplane of the real image. It can be seen that the image is monotonous compared to the bit plane of the image. In addition, in the depth map image, there is a morphological correlation between the bitplanes of some upper bits and the bitplanes of some lower bits, which can be clearly confirmed through FIG. 5C.

도 5의 (c)는 깊이정보 맵 영상에 대하여 그레이코딩(gray coding)을 수행하여 비트플레인 단위로 도시한 것이다. 그레이코딩은 연속하는 값을 표현할 경우에 1-비트만을 변경하여 표현하는 변환 기법을 가리키는데, 그레이코드를 적용한다고 표현하거나 또는 비트플레인간 배타적 논리합(eXclusive OR, XOR) 연산을 수행한다고도 표현할 수 있다. 그레이코딩에서는 예를 들어, 현재 레벨보다 한 단계 하위의 비트에 대한 비트플레인과 XOR 연산을 수행하거나 또는 한 단계 상위의 비트에 대한 비트플레인과 XOR 연산을 수행함으로써, 현재 레벨의 비트에 대한 변환된 비트플레인 (또는 그레이코딩된 비트플레인 또는 XOR 연산된 비트플레인)을 표현할 수 있다. 이하에서는, 후자의 경우를 예로 들어서 설명하지만, 전자의 경우에도 후술하는 본 발명의 실시예가 동일하게 적용될 수 있다는 것은 당업자에게 자명하다.FIG. 5C illustrates gray-coding of the depth map image in units of bit planes. Graycoding refers to a transformation technique that changes only 1-bit when expressing consecutive values. It can be expressed as applying graycode or performing an exclusive OR (XOR) operation between bitplanes. have. In graycoding, for example, a bitplane and an XOR operation are performed on a bit one step below the current level, or a bitplane and XOR operation is performed on a bit one step higher, thereby converting the bit for the current level. It can represent a bitplane (or a graycoded bitplane or an XOR-operated bitplane). In the following, the latter case will be described as an example, but it will be apparent to those skilled in the art that the following embodiments of the present invention can be equally applied to the former case.

도 5의 (c)에서도 위쪽에서부터 각각 비트 7 또는 최상위 비트(MSB), 비트 6(MSB-1), 비트 5(MSB-2), 비트 4(MSB-3), 비트 3(MSB-4), 비트 2(MSB-5), 비트 1(MSB-6), 및 비트 0 또는 최하위 비트(LSB)에 대한 그레이코딩된 비트플레인을 보여 준다. 도 5의 (c)를 참조하면, 깊이정보 맵의 그레이코딩된 비트플레인들은 원래의 비트플레인(도 5의 (b) 참조)에 비하여 더욱 단조로운 형태를 보인다는 것을 알 수 있다.Also in FIG. 5C, bit 7 or most significant bit (MSB), bit 6 (MSB-1), bit 5 (MSB-2), bit 4 (MSB-3), and bit 3 (MSB-4), respectively, from the top. , Gray coded bitplanes for bit 2 (MSB-5), bit 1 (MSB-6), and bit 0 or least significant bit (LSB). Referring to FIG. 5C, it can be seen that the gray coded bitplanes of the depth map are more monotonous than the original bitplane (see FIG. 5B).

이러한 깊이정보 맵에 고유한 특성은 깊이정보 맵 영상을 블록 단위로 검토하면 보다 구체적으로 파악할 수 있다. 도 6의 (a)는 도 2의 (b)의 깊이정보 맵의 일부이고, 도 6의 (b), (c), 및 (d)는 각각 도 6의 (a)의 깊이정보 맵에서 임의로 선택된 블록(예컨대, 16ㅧ16 블록)에 대한 비트플레인 블록들(최상위 비트(MSB)플레인 블록부터 최하위 비트(LSB)플레인 블록까지)과 이 비트플레인 블록들을 그레이코딩한 비트플레인 블록들을 보여 주는 도면이다. 여기서, 선택된 블록들은 모두 객체 경계 부분 또는 객체 경계를 포함하는 블록들이지만, 반드시 여기에만 한정되는 것은 아니다.The characteristic unique to the depth map can be found in more detail by examining the depth map image in units of blocks. 6 (a) is a part of the depth map of FIG. 2 (b), and FIGS. 6 (b), 6 (c) and 6 (d) are each arbitrarily selected from the depth map of FIG. 6 (a). Bitplane blocks (from the most significant bit (MSB) plane block to the least significant bit (LSB) plane block) for the selected block (e.g., 16x16 block) and the bitplane blocks greyed out these bitplane blocks. to be. Here, the selected blocks are all blocks including the object boundary portion or the object boundary, but are not necessarily limited thereto.

도 6의 (b), (c), 및 (d) 각각에서 선택된 비트플레인 블록들을 살펴보면, 각 비트플레인 블록의 이진영상(binary image)들의 전부 또는 일부는 서로 완전히 일치하거나 또는 서로 반전되게 일치되는 것을 알 수 있다. 이러한 깊이정보 맵의 특성은 반드시 모든 블록들에서 나타나는 것은 아니며 일부 블록들에서만 나타날 수 있으며, 특히 객체의 경계 부근의 블록들에서 빈번하게 발생할 수 있다. 이 경우에, 깊이정보 맵은 일부 블록들, 특히 객체의 경계 부근 또는 객체의 경계를 포함하는 깊이정보 맵 블록들은, 그 전부 또는 일부가 서로 완전히 일치하거나 또는 반전되게 일치할 가능성이 높다. Looking at the bitplane blocks selected in each of (b), (c), and (d) of FIG. 6, all or some of the binary images of each bitplane block are completely coincident with one another or inverted with each other. It can be seen that. The characteristics of the depth map may not necessarily appear in all blocks, but may appear only in some blocks, and may occur frequently in blocks near an object boundary. In this case, the depth map is likely to coincide with some blocks, especially depth map blocks comprising the boundary of the object or the boundary of the object, in which all or part of the depth map coincides completely or inverted with each other.

이러한 깊이정보 맵의 특성은 비트플레인 블록에 그레이코딩(gray coding)을 수행하면 더욱 명확하게 확인할 수 있다. 도 6의 (b), (c), 및 (d) 각각에 도시되어 있는 바와 같이, 그레이코딩된 비트플레인 블록들(MSB플레인 블록을 제외한 다른 비트플레인 블록들) 중에서 블록 전체가 같은 값(0(0) 또는 255(1))을 갖는 블록들이 많이 생긴다. 이것은 전술한 깊이정보 맵의 특성으로 인하여, 현재 비트플레인의 이진영상이 그 상위 비트플레인의 이진영상과 완전히 일치할 경우에는 그레이코딩된 비트플레인 블록의 픽셀들은 모두 '0(0)'이 되고, 반전되게 일치할 경우에는 그레이코딩된 비트플레인 블록의 픽셀들은 모두 '255(1)'이 되기 때문이다.The characteristics of the depth map can be more clearly confirmed by performing gray coding on the bitplane block. As shown in each of (b), (c), and (d) of FIG. 6, among the gray-coded bitplane blocks (other bitplane blocks except the MSB plane block), the entire block has the same value (0). There are many blocks with (0) or 255 (1)). This is because of the characteristics of the depth map described above, when the binary image of the current bitplane completely matches the binary image of the higher bitplane, all pixels of the gray coded bitplane block become '0 (0)', This is because the pixels of the gray coded bitplane block are all 255 (1) when invertedly matched.

그런데, 깊이정보 맵 영상에 그레이코드를 적용하게 되면, 특정 비트에 대한 비트플레인의 이진영상(그레이코딩된 비트플레인의 이진영상)은 그레이코드를 적용하기 이전의 비트플레인보다 더욱 단조로운 형태가 되지만, 이와 반대의 경우도 발생할 수가 있다. 즉, 일부 비트에 대한 비트플레인의 이진영상은 그레이코딩된 비트플레인이 더욱 복잡한 형태가 될 수도 있다. 이것은 해당 레벨의 비트에 대한 비트플레인 이진영상이 인접 레벨의 비트에 대한 비트플레인 이진영상과 형태적으로 상관관계가 거의 없기 때문이다.However, when the gray code is applied to the depth map image, the binary image of the bitplane (the binary image of the gray-coded bitplane) for the specific bit becomes more monotonous than the bitplane before the graycode is applied. The opposite can also happen. That is, a binary image of a bitplane for some bits may have a more complex form of a gray coded bitplane. This is because the bitplane binary image for the bit of the corresponding level has little correlation with the bitplane binary image for the bit of the adjacent level.

도 7은 해당 레벨의 비트에 대한 비트플레인이 인접 레벨의 비트에 대한 비 트플레인과 상관관계가 거의 없는 경우의 일례를 보여 주기 위한 것이다. 도 7의 (a)는 도 6의 (b)에서 비트 2(MSB-5)에 대한 비트플레인 블록의 이진영상이고, 도 7의 (b)는 도 6의 (b)에서 비트 2(MSB-5)에 대한 그레이코딩된 비트플레이 블록의 이진영상이다. 도 7의 (a)와 (b)를 참조하면, 일부 비트에 대한 비트플레인의 경우에는 그레이코드를 적용하면 이진영상이 더욱 복잡해진다는 것을 알 수 있다.FIG. 7 illustrates an example in which the bit plane for a bit of a corresponding level has little correlation with the bit plane for a bit of an adjacent level. FIG. 7A is a binary image of a bitplane block for bit 2 (MSB-5) in FIG. 6B, and FIG. 7B is bit 2 (MSB-) in FIG. 6B. 5) is a binary image of a gray coded bit play block. Referring to (a) and (b) of FIG. 7, it can be seen that in the case of bitplanes for some bits, applying a gray code further complicates a binary image.

이상에서 설명한 깊이정보 맵의 고유한 특성을 정리하면 다음과 같다.The unique characteristics of the depth map described above are summarized as follows.

(1) 깊이정보 맵은 픽셀 간 변화가 상당히 완만하다. 깊이정보 맵을 비트플레인 단위로 분리하고 각각의 분리된 비트플레인 이진 영상을 실제 영상(이미지정보)에 대한 비트플레인 이진 영상과 비교해보면, 깊이정보 맵의 비트플레인 이진 영상은 이미지정보의 비트플레인 이진 영상에 비하여 상당히 단조로운 형태를 갖는다.(1) The depth map has a fairly gentle change between pixels. When the depth map is divided into bitplane units, and each separated bitplane binary image is compared with a bitplane binary image of an actual image (image information), the bitplane binary image of the depth map is a bitplane binary image. It has a fairly monotonous shape compared to the image.

(2) 깊이정보 맵에 대한 블록 단위의 비트플레인 이진 영상에 있어서, 일부 블록들, 예컨대 해당 블록이 객체의 경계를 포함하거나 또는 경계에 인접한 경우에는, 일부 레벨의 비트플레인의 이진 영상들 사이에는 완전히 일치되거나 또는 반전되게 일치하는 경우가 자주 발생한다. 다만, 이 경우에도 모든 레벨의 비트플레인 이진 영상들 사이에서 이러한 상관관계가 나타나는 것은 아니며, 다른 레벨의 비트플레인 이진 영상은 그레이코딩을 수행하면 이진 영상이 더욱 복잡해질 수도 있다.(2) In a block-wise bitplane binary image for a depth map, some blocks, for example, when the block includes or is adjacent to a boundary of an object, are divided between binary images of some levels of bitplanes. Frequently it is a perfect match or an inverted match. However, even in this case, such a correlation does not appear between all levels of the bitplane binary images, and other levels of the bitplane binary image may be more complicated when gray coding is performed.

이러한 깊이정보 맵의 특성에 기초하여, 본 발명의 일 실시예에 따른 깊이정보 맵의 코딩 방법에서는 다음과 같은 방법으로 깊이정보 맵에 대하여 인코딩/디코딩을 수행한다. Based on the characteristics of the depth map, the coding method of the depth map according to an embodiment of the present invention performs encoding / decoding on the depth map in the following manner.

우선, 깊이정보 맵의 코딩에 있어서 비트플레인 인코딩 기법을 선택적 또는 적응적으로 적용한다. 예를 들어, 깊이정보 맵 영상(프레임 또는 픽쳐)에서 일부 블록은 비트플레인 인코딩 기법을 적용하지만, 다른 일부 블록은 비트플레인 인코딩 기법이 아닌 이미지정보를 코딩하기 위한 기존의 기법(이하에서는 '비트플레인 인코딩(부호화) 기법'과의 구별을 위하여, 이를 '이산여현변환(Discrete Cosine Transform, DCT)기반 인코딩(부호화) 기법'이라 한다. 따라서 본 명세서에서 비록 'DCT기반 인코딩 기법'이라는 명칭을 사용한다고 하더라도, 이것이 DCT 과정을 필수적으로 포함하는 인코딩 기법에 한정되는 것으로 해석되어서는 안되며, 변환 과정(transform process)에서 다른 기법이 사용될 수도 있다.)을 이용하여 부호화를 수행할 수 있다. 이 경우에, DCT기반 인코딩 기법과 비트플레인 인코딩 기법의 코딩 효율을 비교한 다음, 블록마다 코딩 효율이 더 좋은 인코딩 기법을 선택적으로 적용하여 부호화를 수행할 수 있는데, 이에 대해서는 후술한다. 이러한 본 발명의 실시예가 깊이정보 맵 영상에 대하여 비트플레인 인코딩 기법만을 적용하는 것을 배제하지 않는다는 것은 자명하다.First, the bitplane encoding scheme is selectively or adaptively applied to the coding of the depth map. For example, in a depth map image (frame or picture), some blocks apply a bitplane encoding scheme, while some blocks use a conventional technique for coding image information that is not a bitplane encoding scheme (hereinafter referred to as 'bitplane'). In order to distinguish it from the encoding (encoding) technique, it is called a "discrete cosine transform (DCT) based encoding (encoding) technique." Therefore, although the term "DCT-based encoding technique" is used herein, However, this should not be construed as being limited to an encoding technique that essentially includes a DCT process, and other encoding may be used in a transform process. In this case, the coding efficiency of the DCT-based encoding method and the bitplane encoding method is compared, and then encoding may be performed by selectively applying an encoding method having a better coding efficiency for each block, which will be described later. Obviously, this embodiment of the present invention does not exclude applying only the bitplane encoding scheme to the depth map image.

그리고 비트플레인 인코딩 기법을 적용하여 부호화를 수행하는 블록에 대해서는, 비트플레인에 따라서 XOR 연산(그레이코딩)을 적응적으로 수행한 후에 비트플레인을 부호화한다. 보다 구체적으로, 일부 레벨의 비트에 대한 비트플레인은 XOR 연산을 수행하지 않고 그대로 부호화를 수행하지만, 다른 일부 레벨의 비트에 대한 비트플레인은 XOR 연산을 먼저 수행한 이후에 부호화를 수행한다. 물론, 이러한 적응적 XOR 연산을 이용하는 비트플레인 인코딩 기법이 모든 레벨의 비트에 대 한 비트플레인에 대해서 전혀 XOR 연산을 수행하지 않거나 또는 모두 XOR 연산을 수행하는 것을 배제하는 것이 아니라는 것은 자명하다.For the block to be encoded by applying the bitplane encoding scheme, the bitplane is encoded after adaptively performing an XOR operation (gray coding) according to the bitplane. More specifically, bitplanes for bits of some levels are encoded without performing XOR operations, while bitplanes for bits of other levels are performed after performing XOR operations first. Of course, it is obvious that the bitplane encoding technique using this adaptive XOR operation does not exclude performing the XOR operation at all or all the XOR operations on the bitplanes for all levels of bits.

도 8은 본 발명의 일 실시예에 따른 적응적 XOR 연산을 이용하는 깊이정보 맵의 비트플레인들에 대한 비트플레인 인코딩 방법의 일례를 보여 주는 흐름도로서, 인트라 픽쳐(intra picture)에 대한 인코딩 방법의 일례이다.8 is a flowchart illustrating an example of a bitplane encoding method for bitplanes of a depth map using an adaptive XOR operation according to an embodiment of the present invention, which is an example of an encoding method for an intra picture. to be.

도 8을 참조하면, 우선 입력된 깊이정보 맵 블록에 대하여 비트플레인 분리를 수행한다(10). 수행 결과, MSB에 대한 비트플레인 블록부터 LSB에 대한 비트플레이 블록까지 복수(예컨대, 8개)의 비트플레인 블록이 구해진다. Referring to FIG. 8, first, bitplane separation is performed on the input depth map block (10). As a result, a plurality of (eg, eight) bitplane blocks are obtained, from the bitplane block for the MSB to the bitplay block for the LSB.

그리고 각각의 비트플레인 블록에 대하여 적응적으로 XOR 연산을 수행한다(11). 보다 구체적으로, 특정 레벨의 비트에 대한 비트플레인 블록에 대해서만 XOR 연산을 수행하며, 나머지 레벨의 비트에 대해서는 XOR 연산을 수행하지 않는다. 어떤 레벨의 비트에 대하여 XOR 연산을 수행할지는 코딩 효율을 고려하여 결정할 수 있다. 예를 들어, XOR 연산을 수행하지 않고 비트플레인 블록을 그대로 코딩할 경우에 발생하는 비트양과 XOR 연산을 수행한 후의 비트플레인 블록을 코딩할 경우에 발생되는 비트양을 비교한 다음, 후자의 경우에 발생되는 비트양이 전자의 경우보다 더 적은 경우에만 해당 레벨의 비트플레인 블록에 대해서 XOR 연산을 수행할 수 있다. 그리고 XOR 연산을 수행하는지 여부를 지시하는 정보(예컨대, 'XOR 플래그(xor_flag)'를 이용하여 나타낼 수 있는데, 이것은 예시적인 것이다)는 각 레벨의 비트플레인 블록에 대한 추가 정보로써 비트스트림에 포함되어 디코딩단으로 전송된다. In operation 11, an XOR operation is adaptively performed on each bitplane block. More specifically, the XOR operation is performed only on the bitplane block for the bit of a specific level, and the XOR operation is not performed on the bit of the remaining level. Which level of bits to perform XOR operation can be determined in consideration of the coding efficiency. For example, compare the amount of bits that occur when coding a bitplane block without performing an XOR operation and the amount of bits that occur when coding a bitplane block after performing an XOR operation. Only when the amount of generated bits is smaller than in the former case, the XOR operation may be performed on the bitplane blocks of the corresponding level. Information indicating whether or not to perform an XOR operation (for example, can be represented by using an 'XOR flag (xor_flag)', which is an example) is included in the bitstream as additional information about each bitplane block of each level. It is sent to the decoding stage.

현재 비트플레인과 참조 비트플레인 사이에 XOR 연산을 수행한다는 것은, 두 비트플레인의 대응되는 픽셀들 사이에서 XOR 연산을 수행하는 것을 의미한다. 이 경우에, 참조 비트플레인으로는 현재 비트플레인의 바로 상위 레벨의 비트플레인 블록이 이용되거나 또는 바로 하위 레벨의 비트플레인 블록이 이용될 수 있다. 또는, 현재 비트플레인이외의 비트플레인 블록 중에서 선택된 특정 레벨의 비트에 대한 비트플레인 블록이 참조 비트플레인으로 이용되거나 또는 현재 비트플레인 블록과 특정한 여러 개의 비트플레인 블록들에 대하여 XOR 연산을 수행하여 합친 혼합 비트플레인 블록이 참조 비트플레인으로 이용될 수도 있다.Performing an XOR operation between the current bitplane and the reference bitplane means performing an XOR operation between the corresponding pixels of the two bitplanes. In this case, a bitplane block of a higher level of the current bitplane or a bitplane block of a lower level may be used as the reference bitplane. Alternatively, a bitplane block for a specific level of bits selected from a bitplane block other than the current bitplane is used as a reference bitplane, or a combination is performed by performing an XOR operation on the current bitplane block and a plurality of specific bitplane blocks. The bitplane block may be used as the reference bitplane.

계속해서, 본 발명의 실시예에 따른 적응적 XOR 연산을 이용한 비트플레인 코딩 방법에서는 XOR 연산이 수행되거나 또는 수행되지 않은 비트플레인 블록에 대해서 순차적으로 비트플레인 코딩을 수행한다. 예를 들어, MSB 비트플레인 블록부터 LSB 비트플레인 블록의 순으로 비트플레인 코딩을 수행할 수 있다. 이 경우에, 모든 비트플레인 블록에 대하여 비트플레인 코딩을 수행할 필요는 없으며, 발생 비트양의 조절이 필요한 경우에는 MSB 비트플레인 블록부터 상위 일부의 비트에 대한 비트플레인 블록에 대해서만 비트플레인 코딩을 수행하거나 또는 각각의 비트플레인 블록에 대하여 다운샘플링을 수행한 다음에 비트플레인 코딩을 수행할 수도 있다. 그러나 본 실시예가 여기에만 한정되는 것은 아니며, 단계 10을 수행한 이후에 임의로 상위 일부의 비트에 대한 비트플레인 블록에 대해서만 단계 11 이후의 과정을 수행함으로써, 비트플레인 코딩으로 발생되는 비트양을 조절할 수도 있다.Subsequently, in the bitplane coding method using the adaptive XOR operation according to the embodiment of the present invention, bitplane coding is sequentially performed on a bitplane block on which an XOR operation is performed or not. For example, bitplane coding may be performed in order from an MSB bitplane block to an LSB bitplane block. In this case, it is not necessary to perform bitplane coding for all the bitplane blocks, and if it is necessary to adjust the amount of bits generated, only perform bitplane coding on the bitplane blocks for the bits of the upper part of the MSB bitplane block. Alternatively, the bitplane coding may be performed after downsampling on each bitplane block. However, the present embodiment is not limited thereto, and after performing step 10, a step after step 11 may be arbitrarily performed only for the bitplane blocks for the upper part bits, thereby adjusting the amount of bits generated by bitplane coding. have.

인트라 픽쳐에 대한 비트플레인 코딩 과정에서는, 예를 들어 해당 비트플레 인 블록 내의 모든 이진영상 값이 동일한지에 따라서 적응적으로 부호화를 수행할 수 있다. 이를 위하여, 먼저 비트플레인 블록 내의 모든 이진영상 값이 동일한지를 판단한다(12). 판단 결과, 블록 내의 모든 이진영상 값이 동일한 경우, 예컨대 모두 '0(0)'이거나 또는 모두 '255(1)'인 경우에는, 이를 지시하는 비트플레인의 '블록 모드 정보(block mode information)'(예컨대, 'all_0' 모드 또는 'all_1' 모드)를 지시하는 값만을 부호화한다(13). 반면, 블록 내의 모든 이진영상 값이 동일하지 않은 경우에는, 현재 비트플레인 블록을 소정의 '이진영상 압축 방법', 예컨대 인트라 컨텍스트 기반 산술 인코딩(Intra Context-based Arithmetic Encoding, intraCAE) 기법(이에 대해서는 후술한다)으로 부호화를 수행할 수 있다(14). 그리고 이 경우에는 현재 비트플레인 블록의 모드는 'intraCAE 모드'로 설정할 수 있다. In a bitplane coding process for an intra picture, for example, encoding may be adaptively performed according to whether all binary image values in a corresponding bitplane block are the same. To this end, it is first determined whether all binary image values in the bitplane block are the same (12). As a result of the determination, when all binary image values in the block are the same, for example, if all are '0 (0)' or all are '255 (1)', 'block mode information' of the bitplane indicating this is indicated. Only a value indicating (eg, 'all_0' mode or 'all_1' mode) is encoded (13). On the other hand, if all binary image values in the block are not the same, a predetermined 'binary image compression method', for example, an intra context-based arithmetic encoding (intraCAE) technique, may be used. Encoding may be performed (14). In this case, the mode of the current bitplane block can be set to 'intraCAE mode'.

도 9는 본 발명의 다른 실시예에 따른 적응적 XOR 연산을 이용하는 깊이정보 맵의 비트플레인들에 대한 비트플레인 인코딩 방법의 일례를 보여 주는 흐름도로서, 인터 픽쳐(inter picture)에 대한 인코딩 방법의 일례이다.9 is a flowchart illustrating an example of a bitplane encoding method for bitplanes of a depth map using an adaptive XOR operation according to another embodiment of the present invention, which is an example of an encoding method for an inter picture. to be.

도 9를 참조하면, 도 8을 참조하여 설명한 것(단계 10 및 11)과 마찬가지로, 입력된 깊이정보 맵 블록에 대하여 비트플레인 분리를 수행한다(20). 수행 결과, MSB에 대한 비트플레인 블록부터 LSB에 대한 비트플레이 블록까지 복수(예컨대, 8개)의 비트플레인 블록이 구해진다. 그리고 비트플레인 블록들의 전부 또는 일부에 대하여 적응적으로 XOR 연산을 수행한다(21). 어떤 레벨의 비트에 대하여 XOR 연산을 수행할지는 코딩 효율을 고려하여 결정할 수 있다. 그리고 XOR 연산을 수행하는 지 여부를 지시하는 정보(예컨대, 'XOR 플래그(xor_flag)'를 이용하여 나타낼 수 있는데, 이것은 예시적인 것이다)는 각 레벨의 비트플레인 블록에 대한 추가 정보로써 비트스트림에 포함되어 디코딩단으로 전송된다. Referring to FIG. 9, as in FIG. 10 (steps 10 and 11), bitplane separation is performed on the input depth map block (20). As a result, a plurality of (eg, eight) bitplane blocks are obtained, from the bitplane block for the MSB to the bitplay block for the LSB. In operation 21, the XOR operation is adaptively performed on all or some of the bitplane blocks. Which level of bits to perform XOR operation can be determined in consideration of the coding efficiency. Information indicating whether to perform an XOR operation (for example, can be represented by using an 'XOR flag (xor_flag)', which is an example) is included in the bitstream as additional information about the bitplane block of each level. And transmitted to the decoding end.

계속해서, XOR 연산이 수행되거나 또는 수행되지 않은 비트플레인 블록에 대해서 순차적으로 비트플레인 코딩을 수행한다. 예를 들어, MSB 비트플레인 블록부터 LSB 비트플레인 블록의 순으로 비트플레인 코딩을 수행할 수 있다. 이 경우에, 모든 비트플레인 블록에 대하여 비트플레인 코딩을 수행할 필요는 없으며, 발생 비트양의 조절이 필요한 경우에는 MSB 비트플레인 블록부터 상위 일부의 비트에 대한 비트플레인 블록에 대해서만 비트플레인 코딩을 수행하거나 또는 각각의 비트플레인 블록에 대하여 다운샘플링을 수행한 다음에 비트플레인 코딩을 수행할 수도 있다.Subsequently, bitplane coding is sequentially performed on the bitplane blocks on which the XOR operation is performed or not. For example, bitplane coding may be performed in order from an MSB bitplane block to an LSB bitplane block. In this case, it is not necessary to perform bitplane coding for all the bitplane blocks, and if it is necessary to adjust the amount of bits generated, only perform bitplane coding on the bitplane blocks for the bits of the upper part of the MSB bitplane block. Alternatively, the bitplane coding may be performed after downsampling on each bitplane block.

인터 픽쳐에 대한 비트플레인 코딩 과정에서는 다음과 같은 방법을 이용하여 효율적으로 부호화를 수행할 수 있다. 다만, 후술하는 단계 22부터 30까지의 과정은 예시적인 것이며, 본 실시예가 여기에만 한정되는 것은 아니다. 예를 들어, 도 9에 도시된 흐름도에서 움직임 벡터의 예측값(MVp)을 이용하여 모드를 결정하는 단계(22)는 생략되고, 단계 21 이후에 바로 단계 24가 수행될 수도 있다.In the bitplane coding process for an inter picture, encoding can be efficiently performed using the following method. However, the steps 22 to 30 to be described later are exemplary, and the present embodiment is not limited thereto. For example, in the flowchart illustrated in FIG. 9, step 22 of determining a mode using the predicted value MVp of the motion vector may be omitted, and step 24 may be performed immediately after step 21.

먼저, 현재 비트플레인 블록의 움직임 벡터(MV)의 예측값(MVp)에 대응하는 참조 비트플레인 블록과 현재 비트플레인 블록 사이의 오차(Aerr)를 구한 다음, 위 오차(Aerr)가 소정의 허용 오차(Berr) 범위 이내인지를 판단한다(S22). 현재 비트플레인 블록의 움직임 벡터(MV)의 예측값(MVp)를 구하는 방법에는 아무런 제한이 없다. 그리고 허용 오차(Berr)의 값에도 특별한 제한은 없다. 판단 결과, 오차(Aerr)가 허용 오차(Berr)와 동일하거나 또는 이보다 작은 경우에는, 해당 비트플레인 블록에 대해서는 이를 지시하는 소정의 블록 모드(예컨대, 'No Update Without MV'모드)로 설정하고(23), 이 블록 모드 정보('No Update Without MV'모드를 지시하는 소정의 값)만을 부호화한다(31). First, an error Aerr is obtained between a reference bitplane block and a current bitplane block corresponding to the prediction value MVp of the motion vector MV of the current bitplane block, and then the above error Aerr is a predetermined allowable error ( Berr) it is determined whether the range (S22). There is no limitation on the method of obtaining the predicted value MVp of the motion vector MV of the current bitplane block. There is no particular limitation on the value of the tolerance. As a result of the determination, when the error Aerr is equal to or smaller than the tolerance Berr, the bitplane block is set to a predetermined block mode (for example, 'No Update Without MV' mode) indicating this ( 23, only this block mode information (a predetermined value indicating the 'No Update Without MV' mode) is encoded (31).

반면, 단계 23에서의 판단 결과, 오차(Aerr)가 허용 오차(Berr) 보다 큰 경우에는, 현재 비트플레인 블록 내의 모든 이진영상 값이 동일한지에 따라서 적응적으로 부호화를 수행할 수 있다. 이를 위하여, 비트플레인 블록 내의 모든 이진영상 값이 동일한지를 판단한다(24). 판단 결과, 블록 내의 모든 이진영상 값이 동일한 경우, 예컨대 모두 '0(0)'이거나 또는 모두 '255(1)'인 경우에는, 해당 비트플레인 블록에 대해서는 이를 지시하는 소정의 블록 모드(예컨대, 'all_0' 모드 또는 'all_1' 모드)로 설정하고(25), 이 블록 모드 정보('all_0'모드 또는 'all_1' 모드를 지시하는 소정의 값)만을 부호화한다(31).On the other hand, if the error Aerr is greater than the allowable error Berr as a result of the determination in step 23, encoding may be adaptively performed according to whether all binary image values in the current bitplane block are the same. To this end, it is determined whether all binary image values in the bitplane block are the same (24). As a result of the determination, when all binary image values in the block are the same, for example, if all are '0 (0)' or all are '255 (1)', a predetermined block mode (eg, for indicating this bitplane block) is indicated. It is set to the 'all_0' mode or the 'all_1' mode (25), and only this block mode information (a predetermined value indicating the 'all_0' mode or the 'all_1' mode) is encoded (31).

반면, 단계 24에서의 판단 결과, 현재 비트플레인 블록 내의 모든 픽셀값이 동일하지 않은 경우에는, 현재 비트플레인 블록에 대한 움직임 예측을 수행한다(26). 그리고 움직임 예측 단계(26)에서 계산한 움직임 벡터(MV)에 대응하는 참조 비트플레인 블록과 현재 비트플레인 블록 사이의 오차(Cerr)를 구한 다음, 이 오차(Cerr)가 소정의 허용 오차(Berr) 범위 이내인지를 판단한다(27). 본 실시예에서는 허용 오차(Berr)로 단계 22에서 사용한 허용 오차와 같은 값을 사용하지만, 이것은 예시적인 것이다. 판단 결과, 오차(Cerr)가 허용 오차(Berr)와 동일하거나 또는 이보다 작은 경우에는, 해당 비트플레인 블록에 대해서는 이를 지시하는 소정의 블록 모드(예컨대, 'No Update With MV'모드)로 설정하고(28), 이 블록 모드 정보('No Update With MV'모드를 지시하는 소정의 값)와 움직임 벡터(MV)만을 부호화한다(30). On the contrary, when the determination result in step 24 indicates that all pixel values in the current bitplane block are not the same, motion prediction for the current bitplane block is performed (26). After calculating the error Cerr between the reference bitplane block corresponding to the motion vector MV calculated in the motion prediction step 26 and the current bitplane block, this error Cerr is a predetermined allowable error Berr. It is determined whether it is within the range (27). This embodiment uses the same value as the tolerance used in step 22 as the tolerance (Berr), but this is exemplary. As a result of the determination, when the error Cerr is equal to or smaller than the allowable error Berr, the bitplane block is set to a predetermined block mode (for example, a 'No Update With MV' mode) indicating this ( 28, only this block mode information (a predetermined value indicating the 'No Update With MV' mode) and the motion vector MV are encoded (30).

반면, 오차(Cerr)가 허용 오차(Berr) 보다 큰 경우에는, 현재 비트플레인 블록에 대한 오차(Cerr)에 대하여 소정의 '이진영상 압축 방법', 예컨대 콘텍스트 기반 산술 인코딩(CAE) 기법으로 부호화를 수행할 수 있다(29). CAE 인코딩 기법을 이용하여 부호화를 할 경우에, 인트라 CAE(intraCAE) 기법과 인터 CAE(interCAE) 기법 중에서 어느 하나의 기법만을 이용하거나 또는 이 두 가지의 CAE 기법 중에서 코딩 효율이 더 좋은 CAE 기법을 이용하여 적응적으로 부호화를 수행할 수도 있다. 후자의 경우, 예를 들어 인트라 CAE 기법과 인터 CAE 기법을 이용하여 각각 부호화를 수행한 다음, 부호화의 결과 발생하는 비트량이 더 적은 CAE 기법을 이용하여 부호화를 수행하며, 현재 비트플레인 블록의 블록 모드로는 'intraCAE' 모드 또는 'interCAE' 모드로 설정할 수 있다.On the other hand, when the error Cerr is greater than the allowable error Berr, encoding is performed by using a predetermined binary image compression method, for example, a context-based arithmetic encoding (CAE) technique, for the error Cerr for the current bitplane block. May be performed (29). When encoding using the CAE encoding technique, either one of the intraCAE and the interCAE techniques is used, or the CAE technique having the better coding efficiency among the two CAE techniques. May be adaptively performed. In the latter case, the encoding is performed by using the intra CAE technique and the inter CAE technique, respectively, and then the encoding is performed by using a CAE technique having a smaller bit amount resulting from the encoding, and the block mode of the current bitplane block. The furnace can be set to 'intraCAE' mode or 'interCAE' mode.

다음으로 전술한 깊이정보 맵의 특성을 이용하는 본 발명의 일 실시예에 따른 깊이정보 맵의 부호화 장치와 이 부호화 장치에서의 부호화 방법에 관해서 설명한다.Next, an apparatus for encoding a depth map according to an embodiment of the present invention using the characteristics of the above-described depth map and an encoding method in the encoder will be described.

도 10은 본 발명의 일 실시예에 따른 깊이정보 맵의 부호화를 위한 장치, 즉 깊이정보 맵 인코더(depth map encoder)의 구성을 보여 주는 블록도이다. 본 실시 예에 따른 깊이정보 맵 인코더(DCT 기반 인코딩 유닛은 물론 비트플레인 인코딩 유닛도 해당된다)에서는 입력된 깊이정보 맵을 소정 크기(MㅧN)의 블록 단위(MㅧN 블록)로 부호화를 수행한다. 여기서, MㅧN 블록의 크기에 대해서 특별한 제한은 없으며, 예컨대 16ㅧ16 블록의 크기를 갖는 매크로블록이나 그보다 더 큰 크기의 블록이나 또는 더 작은 크기의 블록(예컨대, 8ㅧ8 블록이나 4ㅧ4 블록 등)일 수 있다.FIG. 10 is a block diagram illustrating a configuration of an apparatus for encoding a depth map, that is, a depth map encoder, according to an embodiment of the present invention. In the depth map encoder according to the present embodiment (a bit plane encoding unit as well as a DCT-based encoding unit), the input depth map is encoded in a block unit (M ㅧ N block) of a predetermined size (M ㅧ N). To perform. There is no particular limitation on the size of the M ㅧ N block, for example, a macroblock having a size of 16 ㅧ 16 blocks, a larger block, or a smaller block (eg, 8 ㅧ 8 blocks or 4 ㅧ). 4 blocks, etc.).

도 10을 참조하면, 본 실시예에 따른 깊이정보 맵 인코더(100)는 DCT 기반 인코딩 유닛(A) 및 비트플레인 인코딩 유닛(B)을 포함한다. DCT 기반 인코딩 유닛(A)은 이미지정보를 부호화하는 기법과 동일한 부호화 기법으로 깊이정보 맵을 블록 단위로 부호화하기 장치의 일례이다. 도시된 바와 같이, DCT 기반 인코딩 유닛(A)은 H.264/AVC(Advanced Video Coding)의 인코딩 유닛과 동일한 구성을 가질 수 있지만, 실시예가 여기에만 한정되는 것은 아니다. 예를 들어, DCT 기반 인코딩 유닛(A)은 H.264/AVC 이외에도 MPEG-1, MPEG-2, MPEG-4 Part 2 Visual, VC(Video Coding)-1 등에서의 인코딩 유닛, H.264/AVC 인코딩 유닛을 응용한 MVC나 SVC(Scalable Video Coding)의 인코딩 유닛, 또는 현재 만들어져 있거나 또는 장래에 만들어질 새로운 동영상 코딩 기법에 따른 인코딩 유닛이 될 수도 있다. Referring to FIG. 10, the depth map encoder 100 according to the present embodiment includes a DCT based encoding unit A and a bitplane encoding unit B. FIG. The DCT-based encoding unit A is an example of an apparatus for encoding a depth map in units of blocks by the same encoding scheme as that for encoding image information. As shown, the DCT based encoding unit A may have the same configuration as the encoding unit of H.264 / Advanced Video Coding (AVC), but the embodiment is not limited thereto. For example, in addition to H.264 / AVC, the DCT-based encoding unit (A) is an encoding unit in MPEG-1, MPEG-2, MPEG-4 Part 2 Visual, VC (Video Coding) -1, etc., H.264 / AVC The encoding unit may be an encoding unit of MVC or SVC (Scalable Video Coding) to which the encoding unit is applied, or an encoding unit according to a new video coding technique that is currently made or will be made in the future.

반면, 비트플레인 인코딩 유닛(B)은 깊이정보 맵 블록을 비트플레인 블록들로 분리하고, 분리된 각 비트플레인 블록에 대하여 XOR 연산을 적응적으로 적용한 다음, 비트플레인 블록 단위로 부호화를 수행하기 위한 장치의 일례이다. 따라서 본 발명의 실시예가 도시된 비트플레인 인코딩 유닛(B)의 구성으로 한정되는 것으로 해석되어서는 안된다. 예를 들어, 비트플레인 인코딩 유닛(B)의 일부 구성요소 (예컨대, 비트율 조절부(142))는 임의적인 구성요소이거나 또는 다른 구성요소에 통합될 수도 있다. 그리고 비트플레인 인코딩 유닛(B)을 구성하는 각각의 구성요소들도 관점에 따라서 다른 블록으로 대체, 통합, 또는 분리될 수도 있다. 이러한 비트플레인 인코딩 유닛(B)의 구체적인 구성과 그 부호화 방법에 대해서는 후술한다.On the other hand, the bitplane encoding unit B divides the depth map block into bitplane blocks, adaptively applies an XOR operation to each separated bitplane block, and then performs encoding on a bitplane block basis. It is an example of a device. Therefore, the embodiment of the present invention should not be interpreted as being limited to the configuration of the illustrated bitplane encoding unit B. For example, some components of the bitplane encoding unit B (eg, the bit rate controller 142) may be arbitrary components or integrated into other components. Each of the components constituting the bitplane encoding unit B may also be replaced, integrated, or separated into other blocks according to a viewpoint. The specific structure of this bitplane encoding unit B and its encoding method will be described later.

본 실시예에 의하면, 깊이정보 맵 인코더(100)는 DCT 기반 인코딩 유닛(A)과 비트플레인 인코딩 유닛(B) 중에서 부호화 효율이 더 좋은 인코딩 유닛으로 부호화한 다음, 부호화된 데이터를 비트스트림으로 출력한다. 이 비트스트림에는 부호화된 깊이정보 맵 데이터와 함께 이 데이터가 어떤 인코딩 유닛에서 부호화된 것인지를 지시하는 정보(이하, '코딩 모드 정보(coding mode information)'라 하며, 예컨대 bitplane_coding_flag를 이용하여 나타낼 수 있다)도 포함된다. 여기서, 코딩 모드 정보는 부호화된 깊이정보 맵 데이터가 DCT 기반 코딩 모드로 부호화되었다는 것을 지시하는 정보이거나 또는 비트플레인 코딩 모드 부호화되었다는 것을 지시하는 정보인데, 이를 표현하는 방법에는 특별한 제한이 없다. 예를 들어, bitplane_coding_flag를 이용하여 코딩 모드 정보를 표현하는 경우에, 그 값이 '0'이면 DCT 기반 코딩 모드를 지시하고, '1'이면 비트플레인 코딩 모드를 지시할 수 있으며, 반대의 경우도 가능하다.According to the present embodiment, the depth map encoder 100 encodes the encoding unit having a higher encoding efficiency among the DCT-based encoding unit A and the bitplane encoding unit B, and then outputs the encoded data as a bitstream. do. In this bitstream, together with the encoded depth information map data, information indicating which encoding unit is encoded (hereinafter, referred to as 'coding mode information') may be represented using, for example, bitplane_coding_flag. ) Is also included. Here, the coding mode information is information indicating that the coded depth map data is coded in the DCT based coding mode or information indicating that the coded depth map data is coded, and there is no particular limitation on the method of expressing the coded depth map data. For example, in the case of expressing coding mode information using bitplane_coding_flag, if the value is '0', it may indicate a DCT based coding mode, and if it is '1', it may indicate a bitplane coding mode and vice versa. It is possible.

따라서 본 실시예에 따른 깊이정보 맵 인코더(100)는 이러한 코딩 모드를 선택하기 위한 유닛(전기회로 또는 소프트웨어 프로그램 등과 같은 모드 선택 유닛)을 포함한다. 도 11은 깊이정보 맵 인코더(100)의 모드 선택 유닛(도시하지 않음)에서 DCT 기반 코딩(도 10의 A 유닛에서의 인코딩) 모드와 비트플레인 코딩(도 10 의 B 유닛에서의 인코딩) 모드 중에서 코딩 효율이 더 좋은 모드를 선택하는 방법의 일례를 보여 주는 흐름도이다.Therefore, the depth map encoder 100 according to the present embodiment includes a unit (a mode selection unit such as an electric circuit or a software program) for selecting such a coding mode. FIG. 11 shows a DCT-based coding (encoding in A unit of FIG. 10) mode and a bitplane coding (encoding in B unit of FIG. 10) mode in a mode selection unit (not shown) of the depth map encoder 100. A flowchart illustrating an example of how to select a mode with better coding efficiency.

도 11을 참조하면, 깊이정보 맵 인코더(100)는 우선 입력되는 MㅧN 블록에 대하여 DCT 기반 코딩 모드로 인코딩을 할 경우의 코스트(CostA)와 비트플레인 코딩 모드로 인코딩을 할 경우의 코스트(CostB)를 각각 계산한다(40). 여기서, 코스트(CostA, CostB)를 계산하는 방법은 특별한 제한이 없다. 예를 들어, H.264/AVC에서 사용 중인 '율-왜곡 최적화 기법(Rate-Distortion(RD) optimization technique)'을 사용하여 코스트(CostA, CostB)를 계산할 수 있으며, 이에 따른 수식은 수학식 2와 같다.Referring to FIG. 11, the depth map encoder 100 first performs a cost A when encoding the M_N block in DCT based coding mode and a cost when encoding in the bitplane coding mode. (Cost B ) are respectively calculated (40). Here, the method of calculating the costs Cost A and Cost B is not particularly limited. For example, the cost (Cost A , Cost B ) can be calculated using the 'Rate-Distortion (RD) optimization technique' used in H.264 / AVC. Equation 2

Figure 112009057362095-pat00002
Figure 112009057362095-pat00002

여기서, SSDi(Sum of Squared Differences)는 원본 영상과 재구성된 영상간의 예측 오차의 제곱의 합을 의미하고, λMODE는 양자화 파라미터(Quantization Parameter, QP)를 이용하여 생성된 값으로서 매크로블록에 대한 라그랑지 상수(Lagrange constant)를 나타내며, Ri는 해당하는 매크로블록 모드로 실제 코딩을 수행하였을 때 발생되는 비트의 양을 나타낸다.Here, SSD i (Sum of Squared Differences) refers to the sum of the squares of the prediction errors between the original image and the reconstructed image, and λ MODE is a value generated using a quantization parameter (QP). A Lagrange constant represents a Lagrange constant, and R i represents an amount of bits generated when actual coding is performed in a corresponding macroblock mode.

그리고 단계 40에서 계산된 DCT 기반 코딩 모드 코스트(CostA)와 비트플레인 코딩 모드 코스트(CostB)를 비교한다(41). 비교 결과, 전자(CostA)가 더 작은 경우에는 DCT 기반 코딩 모드를 선택하고(42), 반대로 후자(CostB)가 더 작은 경우에는 비트플레인 코딩 모드를 선택한다(43). 따라서 DCT 기반 코딩 모드 코스트(CostA)가 비트플레인 코딩 모드 코스트(CostB)보다 더 작은 경우에는, 입력되는 MㅧN 블록(또는 부호화의 단위가 되는 소정 크기의 블록)의 코딩 모드 정보는 DCT 기반 코딩 모드가 되며, 비트플레인 코딩 모드 코스트(CostB)가 더 작은 경우에는 입력되는 MㅧN 블록(또는 부호화의 단위가 되는 소정 크기의 블록)의 코딩 모드 정보는 비트플레인 코딩 모드가 된다. 전술한 바와 같이, 이러한 코딩 모드 정보는 해당 모드로 인코딩된 깊이정보 맵 데이터와 함께 비트스트림에 포함되어 출력된다.In operation 41, the DCT-based coding mode cost Cost A and the bitplane coding mode cost Cost B are calculated. As a result of the comparison, when the former Cost A is smaller, a DCT based coding mode is selected (42). On the contrary, when the latter Cost B is smaller, a bitplane coding mode is selected (43). Therefore, when the DCT-based coding mode cost Cost A is smaller than the bitplane coding mode cost Cost B , the coding mode information of the input M ㅧ N block (or a block having a predetermined size as a unit of coding) is DCT. When the bitplane coding mode cost Cost B is smaller, the coding mode information of the input M_N block (or a predetermined size block that is a unit of coding) becomes the bitplane coding mode. As described above, such coding mode information is included in the bitstream together with the depth map data encoded in the corresponding mode and output.

계속해서 도 10을 참조하면, 본 발명의 일 실시예에 따른 깊이정보 맵 인코더(100)는 DCT 기반 인코딩 유닛(A)의 일례로 H.264/AVC에 따른 인코딩 유닛을 포함한다. 이하에서는 DCT 기반 인코딩 유닛(A)에서의 부호화 과정의 일례로 H.264/AVC 인코딩 유닛에서의 부호화 과정에 대해서 설명하지만, 이것이 다른 동영상 코덱에 따른 인코딩 유닛이 DCT 기반 인코딩 유닛(A)이 될 수 있다는 것을 배제하는 것은 아니라는 것은 전술한 바와 같다.10, the depth map encoder 100 according to an embodiment of the present invention includes an encoding unit according to H.264 / AVC as an example of the DCT-based encoding unit (A). Hereinafter, the encoding process in the H.264 / AVC encoding unit will be described as an example of the encoding process in the DCT-based encoding unit A. However, this means that the encoding unit according to another video codec will be the DCT-based encoding unit A. It does not exclude that it can be as described above.

DCT 기반 인코딩 유닛(A)으로 입력되는 데이터는 깊이정보 맵(예컨대, 영상 포맷 4:0:0)으로서, MㅧN 크기 블록, 예컨대 16ㅧ16 픽셀 크기의 매크로블록 단위로 입력될 수 있다. 그리고 DCT 기반 인코딩 유닛(A)에서는 인트라 모드(intra mode) 또는 인터 모드(inter mode)로 부호화가 수행된다. 전자의 경우에 DCT 기반 인코딩 유닛(A)의 내부 스위치가 인트라로 연결이 되지만, 후자의 경우에는 상기 스위치가 인터로 연결이 된다. H.264/AVC에 따른 DCT 기반 인코딩 유닛(A)에서는 우선 입력된 매크로블록에 대한 예측 블록을 생성한다. 그리고 입력된 매크로블록과 예측 블록과의 차분(difference)을 구한 다음에 이 차분들로 이루어진 잔여 데이터(residual data)를 부호화하는데, 이를 간단히 설명하면 다음과 같다.Data input to the DCT-based encoding unit A may be input as a depth map (eg, image format 4: 0: 0) in units of M ㅧ N size blocks, for example, 16 × 16 pixels. In the DCT-based encoding unit A, encoding is performed in an intra mode or an inter mode. In the former case, the internal switch of the DCT-based encoding unit A is connected intra, whereas in the latter case, the switch is interconnected. The DCT based encoding unit A according to H.264 / AVC first generates a prediction block for the input macroblock. The difference between the input macroblock and the prediction block is obtained, and then residual data consisting of the differences is encoded.

(1) 예측 블록을 생성하는 방법은 인트라 모드인지 또는 인터 모드인지에 따라서 다르다. 인트라 모드일 경우에, 인트라 예측부(106)는 현재 매크로블록에서 이미 코딩된 주변 픽셀의 값을 이용하여 공간적 예측을 수행함으로써 예측 블록을 생성한다. 반면, 인터 모드일 경우에는, 우선 움직임 예측부(102)는 영성 버퍼(130)의 참조영상 버퍼에 저장되어 있는 참조영상에서 현재 입력된 블록과 가장 매치가 잘 되는 영역을 찾아서 움직임 벡터(Motion Vector)를 구하는 움직임 예측 과정을 수행한다. 그리고 움직임 보상부(104)는 상기 움직임 벡터를 이용하여 참조영상 버퍼에 저장되어 있는 참조영상에서 예측 블록을 가져오는 움직임 보상 과정을 수행하여 예측 블록을 생성한다.(1) The method of generating the prediction block depends on whether it is intra mode or inter mode. In the intra mode, the intra predictor 106 generates a predictive block by performing spatial prediction using values of neighboring pixels already coded in the current macroblock. On the other hand, in the inter mode, the motion predictor 102 first searches for a region that best matches the currently input block in the reference image stored in the reference image buffer of the spiritual buffer 130 to obtain a motion vector. We perform the motion prediction process to find. The motion compensator 104 generates a prediction block by performing a motion compensation process of bringing a prediction block from a reference image stored in a reference image buffer using the motion vector.

(2) 예측 블록이 생성되면, 제1 가산기(108)는 예측 블록과 현재 블록과의 차분(difference)을 구하여 잔여 블록(residual block)을 생성한다. 생성된 잔여 블록을 입력받은 변환부(110)는 변환(transform) 과정을 수행하여 변환 계수(transform coefficient)를 출력한다. 그리고 변환 계수는 양자화부(112)로 입력되며, 양자화부(112)는 양자화 파라미터(Quantization Parameter, QP)에 따라 양자 화 과정을 수행하여 양자화된 계수(Quantitized Coefficient)를 출력한다. 양자화된 계수에 대해서는 엔트로피 코딩부(114)에서 확률 분포에 따른 엔트로피 코딩(entropy coding) 과정이 수행된다.(2) When the prediction block is generated, the first adder 108 calculates a difference between the prediction block and the current block to generate a residual block. The transform unit 110 that receives the generated residual block performs a transform process and outputs a transform coefficient. The transform coefficient is input to the quantization unit 112, and the quantization unit 112 outputs a quantized coefficient by performing a quantization process according to a quantization parameter (QP). For the quantized coefficients, an entropy coding process according to a probability distribution is performed in the entropy coding unit 114.

(3) 엔트로피 코딩부(114)에서 엔트로피 코딩을 수행하여 출력되는 부호화된 데이터는 멀티플렉서(multiplexer, 160)로 입력되며, 멀티플레서(160)는 다른 정보/데이터와 함께 부호화된 데이터를 비트스트림으로 출력한다.(3) Encoded data output by performing entropy coding in the entropy coding unit 114 is input to a multiplexer 160, and the multiplexer 160 converts the encoded data together with other information / data into a bitstream. Output

(4) 한편, H.264/AVC에 따른 DCT 기반 인코딩 유닛(A)은 인코딩된 현재 영상을 다시 디코딩하여 영상 버퍼(130)에 저장한다. 이것은 현재 영상은 이후에 입력되는 영상을 인코딩하는데 있어서 참조영상으로 사용되어야 하기 때문이다. 이를 위하여, 역양자화부(116)는 양자화된 계수에 대하여 역양자화 과정을 수행하며, 역변환부(118)는 역양자화 과정의 결과로 생성된 역양자화 계수에 대하여 역변환 과정을 수행하여 잔여 블록을 생성한다. 생성된 잔여 블록은 제2 가산기(120)에서 예측 블록과 더해지며, 그 결과 재구성된 블록이 출력된다. 제2 가산기(120)로부터 출력되는 재구성된 블록은 인트라 예측부(106)에서의 인트라 예측 과정이나 또는 비트플레인 인코딩 유닛(B)에서 참조 블록으로 사용될 수 있다. 또한, 상기 재구성된 블록은 디블록킹 필터(122)로 입력되어서 인코딩 과정에서 발생한 블록킹 현상(blocking artifact)을 제거한 다음에, 영상 버퍼(130)의 재구성된 영상 버퍼에 저장된다.(4) Meanwhile, the DCT based encoding unit A according to H.264 / AVC re-decodes the encoded current video and stores it in the video buffer 130. This is because the current picture should be used as a reference picture in encoding a picture input later. To this end, the inverse quantization unit 116 performs an inverse quantization process on the quantized coefficients, and the inverse transformer 118 performs an inverse transformation process on the inverse quantization coefficients generated as a result of the inverse quantization process to generate a residual block. do. The generated residual block is added to the prediction block in the second adder 120, and as a result, the reconstructed block is output. The reconstructed block output from the second adder 120 may be used as an intra prediction process in the intra predictor 106 or as a reference block in the bitplane encoding unit B. FIG. In addition, the reconstructed block is input to the deblocking filter 122 to remove blocking artifacts generated during the encoding process and then stored in the reconstructed image buffer of the image buffer 130.

계속해서 도 10을 참조하면, 본 발명의 일 실시예에 따른 깊이정보 맵 인코더(100)는 적응적 XOR 연산을 이용하여 비트플레인 단위로 부호화를 수행하기 위한 비트플레인 인코딩 유닛(B)을 포함한다. 비트플레인 인코딩 유닛(B)으로 입력되는 데이터는 깊이정보 맵(예컨대, 영상 포맷 4:0:0)으로서, MㅧN 크기의 블록 예컨대, 16ㅧ16 픽셀의 크기를 갖는 매크로블록 단위로 입력될 수 있다. 비트플레인 인코딩 유닛(B)에서는 비트플레인 블록들로의 분리(144) 이후에 도 8 또는 도 9를 참조하여 전술한 적응적 XOR 연산을 이용하는 비트플레인 인코딩 방법에 따라서 부호화가 수행될 수 있으며, 또한 비트율 조절(142)을 위한 과정이 추가로 수행될 수 있다. 이하, 비트플레인 인코딩 유닛(B)에서의 절차에 관하여 설명한다.10, the depth map encoder 100 according to an embodiment of the present invention includes a bitplane encoding unit B for performing encoding in bitplane units using an adaptive XOR operation. . The data input to the bitplane encoding unit B is a depth map (eg, image format 4: 0: 0), and is input in units of macroblocks having an M ㅧ N size block, for example, 16 × 16 pixels. Can be. In the bitplane encoding unit B, after the separation 144 into bitplane blocks, encoding may be performed according to the bitplane encoding method using the adaptive XOR operation described above with reference to FIG. 8 or 9, and The process for bit rate adjustment 142 may be further performed. The procedure in the bitplane encoding unit B is described below.

(1) 우선, 비트플레인 인코딩 유닛(B)에서 데이터를 처리하는 단위는 다양하게 적용될 수 있다. 예를 들어, 입력되는 MㅧN 블록을 작은 블록으로 나누어서 서브 블록들로 구성한 다음 서브 블록별로 적응적으로 부호화를 수행할 수 있다. 또는, 입력되는 MㅧN 블록을 더 큰 블록으로 합친 다음에 부호화를 수행하거나 또는 이 합친 블록을 서브 블록들로 나눈 다음에 부호화를 수행할 수도 있다. (1) First, a unit for processing data in the bitplane encoding unit B may be variously applied. For example, the input M_N block may be divided into small blocks to form subblocks, and then encoding may be adaptively performed for each subblock. Alternatively, encoding may be performed after combining the input M ㅧ N block into a larger block or by dividing the combined block into sub-blocks.

(2) 비트율 조절부(142)는 비트플레인 인코딩 유닛(B)로부터 출력되는 부호화된 데이터의 양, 즉 비트율을 조절하기 위한 것이다. 비트율 조절부(142)는 출력되는 부호화된 데이터의 양에 대한 조절이 필요한 경우에만 동작하므로, 임의적인 구성요소이다. 또는, 비트율 조절부(142)에서 별도로 비트율을 조절하지 않고, 비트플레인 인코딩부(148)에서 사용되는 부호화 알고리즘을 적절히 이용하거나 또는 비트플레인 인코딩부(148)에서의 부호화시에 다운샘플링 등의 방법을 이용함으로써 비트율을 조절할 수도 있다.(2) The bit rate adjusting unit 142 is for adjusting the amount of encoded data output from the bitplane encoding unit B, that is, the bit rate. The bit rate controller 142 operates only when the amount of encoded data to be output is required, and thus is an optional component. Alternatively, a method such as downsampling at the time of encoding in the bitplane encoding unit 148 or appropriately using the encoding algorithm used in the bitplane encoding unit 148 without separately adjusting the bit rate in the bit rate adjusting unit 142. You can also adjust the bit rate by using.

비트율 조절부(142)에서 비트율을 조절하는 방법은 특별한 제한이 없다. 예 를 들어, 깊이정보 맵이 N비트로 표현되는 경우에, 비트율 조절부(142)는 부호화의 대상이 되는 비트플레인 블록을 일부 비트(예컨대, 상위 n(≤N)개의 비트)만으로 제한함으로써 비트율을 조절할 수 있다. 이를 위하여, 비트율 조절부(142)는 입력되는 N비트로 표현되는 깊이정보 맵 블록에서 하위 (N-n)비트를 삭제하고 상위 n비트로 표현되는 깊이정보 맵 블록을 출력할 수 있다. The method of adjusting the bit rate in the bit rate controller 142 is not particularly limited. For example, when the depth map is expressed in N bits, the bit rate controller 142 limits the bit rate by limiting the bit plane block to be encoded to only some bits (for example, the upper n (≤N) bits). I can regulate it. To this end, the bit rate controller 142 may delete the lower (N-n) bit from the depth map block represented by the input N bits and output the depth map block represented by the upper n bits.

이 경우에, 부호화의 대상이 되는 비트플레인을 몇 개의 비트에 대한 것으로 할지는 임의로 결정되거나 또는 비트율에 영향을 미치는 다른 정보, 예컨대 DCT기반 인코딩 유닛(A)에서의 양자화 파리미터(QP)값을 기초로 하여 결정이 될 수도 있다. 그리고 비트율 조절부(142)는 삭제되는 하위 (N-n)비트에 대한 복원 정보(예컨대, 디코딩시에 모두 '0(0)'으로 복원할 것인지 또는 모두 '255(1)'로 할 것인지에 관한 정보나 또는 다른 비트의 값을 이용하여 패딩(padding)하는 방법에 관한 정보 등)도 추가로 생성하여 멀티플렉서(160)로 출력할 수도 있다.In this case, how many bits the bitplane to be encoded is to be determined arbitrarily or based on other information affecting the bit rate, for example, based on the quantization parameter (QP) value in the DCT-based encoding unit (A). The decision may be made. In addition, the bit rate controller 142 may restore information about the lower (Nn) bits to be erased (for example, whether to restore all of them to '0 (0)' or all of them to '255 (1)' when decoding). Alternatively, information on a method of padding using another bit value) may be additionally generated and output to the multiplexer 160.

도 12는 비트율 조절부(142)에서 양자화 파라미터(QP)에 기초하여 비트율을 결정하는 방법의 일례를 보여 주는 흐름도이다. 도 12에서 코딩할 비트플레인의 수를 결정하는 양자화 파라미터(QP)는 H.264/AVC에서 사용하고 있는 방법이 이용되었는데, 본 실시예가 여기에만 한정되는 것은 아니다.12 is a flowchart illustrating an example of a method of determining a bit rate based on the quantization parameter QP in the bit rate controller 142. The method used in H.264 / AVC is used as the quantization parameter (QP) for determining the number of bit planes to be coded in FIG. 12, but the present embodiment is not limited thereto.

도 12를 참조하면, 우선 양자화 파라미터(QP)값이 소정의 값, 예컨대 22이하인지를 판단한다(50). 판단 결과, 양자화 파라미터(QP)의 값이 22이하인 경우에는, 비트플레인 코딩 유닛(B)은 전부 또는 일부의 비트플레인(예컨대, 상위 7개 비트플레인(MSB, MSB-1, MSB-2, MSB-3, MSB-4, MSB-5, MSB-6 비트플레인)) 블록만 코딩을 수행한다(51). 만일, 양자화 파라미터(QP)의 값이 22보다 큰 경우에는, 양자화 파라미터(QP)의 값이 소정의 값, 예컨대 32이하인지를 판단한다(52). 판단 결과, 양자화 파라미터(QP)의 값이 23보다 크고 32이하인 경우에는, 단계 31보다 적은 개수의 비트플레인(예컨대, 상위 6개 비트플레인(MSB, MSB-1, MSB-2, MSB-3, MSB-4, MSB-5 비트플레인)) 블록만 코딩을 수행한다(53). 반면, 양자화 파라미터(QP)의 값이 32보다 큰 경우에는, 단계 33보다 적은 개수의 비트플레인(예컨대, 상위 5개 비트플레인(MSB, MSB-1, MSB-2, MSB-3, MSB-4 비트플레인)) 블록만 코딩을 수행한다(54).Referring to FIG. 12, it is first determined whether a quantization parameter (QP) value is a predetermined value, for example, 22 or less (50). As a result of the determination, when the value of the quantization parameter QP is 22 or less, the bitplane coding unit B may include all or part of the bitplanes (for example, the top 7 bitplanes MSB, MSB-1, MSB-2, and MSB). -3, MSB-4, MSB-5, MSB-6 bitplane)) only block (51). If the value of the quantization parameter QP is larger than 22, it is determined whether the value of the quantization parameter QP is a predetermined value, for example, 32 or less (52). As a result of the determination, when the value of the quantization parameter QP is greater than 23 and less than or equal to 32, the number of bit planes smaller than step 31 (for example, the upper six bit planes MSB, MSB-1, MSB-2, MSB-3, MSB-4, MSB-5 bitplane)) only blocks (53). On the other hand, if the value of the quantization parameter (QP) is greater than 32, fewer number of bitplanes (e.g., the top five bitplanes MSB, MSB-1, MSB-2, MSB-3, MSB-4) than step 33 Bit-plane)) only blocks (54).

(2) 비트플레인 분리부(144)는 n비트로 표현되는 깊이정보 맵 블록을 입력 받아서, n개의 비트플레인 블록으로 분리한다. 그리고 비트플레인 분리부(144)는 분리된 n개의 비트플레인 블록을 XOR 연산부(146) 및/또는 비트플레인 인코딩부(148)로 출력한다. 도 10에서 비트플레인 분리부(144)는 비트율 조절부(142)와 분리되어 도시되어 있지만, 이것은 단지 설명의 편의를 위한 것이라는 점에 유의해야 한다. 예를 들어, 비트율 조절부(142)와 비트플레인 분리부(144)는 하나의 구성요소로 통합되거나 또는 입력되는 깊이정보 맵 블록을 비트플레인 분리부(144)에서 먼저 N개의 비트플레인 블록들로 분리한 후에, 비트율 조절부(142)에서 XOR 연산부(146) 및/또는 비트플레인 인코딩부(148)로 출력되는 비트플레인 블록의 개수를 n개로 한정할 수도 있다. (2) The bitplane separation unit 144 receives the depth information map block represented by n bits, and divides it into n bitplane blocks. The bitplane separator 144 then outputs the n bitplane blocks separated to the XOR operator 146 and / or the bitplane encoder 148. Although the bitplane separator 144 is shown separately from the bit rate controller 142 in FIG. 10, it should be noted that this is for convenience of description only. For example, the bit rate controller 142 and the bitplane separator 144 combine the input depth map block or input into one component into N bitplane blocks in the bitplane separator 144 first. After separation, the number of bitplane blocks output from the bit rate controller 142 to the XOR operator 146 and / or the bitplane encoder 148 may be limited to n.

(3) XOR 연산부(146)는 비트플레인 분리부(144)로부터 출력되는 n개의 비트플레인 블록들 중에서 전부 또는 일부의 비트플레인 블록에 대해서만 XOR 연산을 수행한다. 예를 들어, 도 8 또는 도 9를 참조하여 설명한 바와 같이, n개의 비트플레인 블록들 중에서 어떤 비트플레인 블록에 대해서 XOR 연산을 수행할지는 원래의 비트플레인 블록을 코딩할 경우에 발생하는 비트양과 XOR 연산을 수행한 후에 비트플레인 블록을 코딩할 경우에 발생하는 비트양을 비교함으로써 결정할 수 있는데, 본 실시예가 여기에만 한정되는 것은 아니다. 그리고 XOR 연산부(146)는 해당 비트플레인 블록에 대하여 XOR 연산이 수행되었는지를 지시하는 소정의 정보(예컨대, 'XOR 플래그' 등과 같은 XOR 연산 정보)를 생성하여 멀티플렉서(160)로 전달하며, 이 정보는 비트스트림에 포함되어 디코딩단으로 전송된다.(3) The XOR operator 146 performs an XOR operation on all or some of the bitplane blocks among the n bitplane blocks output from the bitplane separator 144. For example, as described with reference to FIG. 8 or 9, which bitplane block among the n bitplane blocks is to be performed by XOR operation and the amount of bits generated when coding the original bitplane block. It is possible to determine by comparing the amount of bits that occur when coding the bitplane block after performing, but the present embodiment is not limited thereto. The XOR operator 146 generates predetermined information (eg, XOR operation information such as 'XOR flag') indicating whether the XOR operation is performed on the corresponding bitplane block, and transmits the generated information to the multiplexer 160. Is included in the bitstream and transmitted to the decoding end.

도 13은 XOR 연산부(146)에서 XOR 연산을 수행할지를 결정하는 방법의 일례를 보여 주는 흐름도이다. 도 13을 참조하면, 우선 현재 입력된 비트플레인 블록을 그대로 비트플레인 코딩하여 발생하는 비트양(Amount Of Bits, AOBA)과 참조 비트플레인과 XOR 연산을 수행한 이후에 비트플레인 코딩하여 발생하는 비트양(AOBB)을 구한다(60). 그리고 상기 두 개의 발생 비트양(AOBA, AOBB)을 비교한다(61). 비교 결과, 비트플레인 블록을 그대로 비트플레인 코딩하여 발생하는 비트양(Amount Of Bits, AOBA)이 더 많은 경우에만, 해당 비트플레인 블록에 대하여 XOR 연산을 수행한다(62). 따라서 참조 비트플레인과 XOR 연산을 수행한 이후에 비트플레인 코딩하여 발생하는 비트양(AOBB)이 더 많은 경우에는, 해당 비트플레인 블록은 XOR 연산이 수행되지 않고서 그대로 비트플레인 인코딩부(148)로 입력된다. 양자가 같은 경우 에 XOR 연산을 수행할지 여부는 임의로 결정될 수 있다.13 is a flowchart illustrating an example of a method of determining whether to perform an XOR operation in the XOR operator 146. Referring to FIG. 13, first, an amount of bits (Amount A ) generated by bit-plane coding a currently input bitplane block as it is, and bits generated by bit-plane coding after performing an XOR operation with a reference bitplane Obtain the amount AOB B (60). Then, the two generated bit amounts AOB A and AOB B are compared (61). As a result of the comparison, only when the amount of bits (Amount A Bit A ) generated by bit-plane coding the bit-plane block as it is, the XOR operation is performed on the bit-plane block (62). Therefore, when the bit amount AOB B generated by bit-plane coding after performing the XOR operation with the reference bit plane is larger, the corresponding bitplane block is directly transmitted to the bitplane encoding unit 148 without performing the XOR operation. Is entered. In the case where both are the same, whether to perform an XOR operation may be arbitrarily determined.

그리고 XOR 연산부(146)에서 XOR 연산을 수행할 경우에, 한 단계 상위 레벨의 비트플레인 블록을 참조 비트플레인으로 사용하거나 또는 한 단계 하위 레벨의 비트플레인 블록을 참조 비트플레인으로 사용하는 등, 참조 비트플레인을 결정하는 방법에도 특별한 제한이 없다. 예를 들어, 참조 비트플레인이 한 단계 상위 레벨의 비트플레인 블록인 경우에, XOR 연산부(146)는 현재 코딩할 비트플레인 블록과 한 단계 상위 레벨의 비트플레인 블록(즉, 직전에 코딩된 비트플레인 블록) 사이에서 픽셀마다 XOR 연산을 수행할 수 있다.When the XOR operation is performed by the XOR operation unit 146, a reference bit may be used as a reference bitplane or a bitplane block at a lower level may be used as a reference bitplane. There is no particular limitation on how the plane is determined. For example, if the reference bitplane is a bitplane block of one level higher level, the XOR operation unit 146 may include a bitplane block to be currently coded and a bitplane block of one level higher level (that is, a bitplane coded immediately before). XOR operation can be performed for each pixel (block).

비트플레인 인코딩부(148)는 소정의 부호화 알고리즘을 이용하여 현재 비트플레인 블록에 대하여 부호화를 수행한다. 여기서, 현재 비트플레인 블록은 깊이정보 맵 블록에서 코딩을 수행할 비트플레인 블록을 의미하는데, XOR 연산부(146)에서 XOR 연산이 수행된 비트플레인 블록이거나 또는 XOR 연산부(146)를 거치지 않고 비트플레인 분리부(144)로부터 바로 입력되는 비트플레인 블록일 수 있다. 비트플레인 인코딩부(148)는 현재 영상이 인트라 픽쳐인지 또는 인터 픽쳐인지에 따라서 다른 방법으로 부호화를 수행하거나 또는 인트라 픽쳐나 인터 픽쳐 등의 종류에 상관없이 어느 하나의 방법만을 이용하여 부호화를 수행할 수도 있다. 이하, 전자의 경우에 대해서 설명한다.The bitplane encoding unit 148 encodes the current bitplane block by using a predetermined encoding algorithm. Here, the current bitplane block refers to a bitplane block to be coded in the depth map block, and is a bitplane block in which an XOR operation is performed in the XOR operator 146 or a bitplane separation without passing through the XOR operator 146. It may be a bitplane block directly input from the unit 144. The bitplane encoding unit 148 may perform encoding by another method according to whether the current video is an intra picture or an inter picture, or may perform encoding using only one method regardless of the type of the intra picture or the inter picture. It may be. The former case will be described below.

만일, 현재 영상이 인트라 픽쳐라면 도 8를 참조하여 전술한 방법에 따라서 부호화를 수행할 수 있다. 보다 구체적으로, 비트플레인 인코딩부(148)는 현재 비트플레인 블록의 픽셀값이 모두 '0(0)'또는 '255(1)'인 경우와 '0(0)'과 '255(1)' 이 섞여 있는 경우를 구분하여, 인코딩을 수행할 수 있다. 예를 들어, 전자의 경우에는 비트플레인 블록 모드 정보만을 코딩할 수 있다. 반면, 후자의 경우에는 비트플레인 인코딩부(148)는 이진 영상의 인코딩에 적합한 소정의 부호화 알고리즘에 따라서 현재 비트플레인 블록에 대한 인코딩을 수행할 수 있다. 비트플레인 인코딩부(148)에서 인코딩된 결과(인코딩된 데이터 및 비트플레인 블록 모드 정보)는 멀티플렉서(160)로 출력된다.If the current video is an intra picture, encoding may be performed according to the method described above with reference to FIG. 8. More specifically, the bitplane encoding unit 148 has a case in which all pixel values of the current bitplane block are '0 (0)' or '255 (1)' and '0 (0)' and '255 (1)'. In this case, the encoding can be performed separately. For example, in the former case, only bitplane block mode information may be coded. On the other hand, in the latter case, the bitplane encoding unit 148 may perform encoding on the current bitplane block according to a predetermined encoding algorithm suitable for encoding a binary image. The result encoded by the bitplane encoding unit 148 (encoded data and bitplane block mode information) is output to the multiplexer 160.

도 14는 인트라 픽쳐를 위한 비트플레인 인코딩부(148)의 세부 구성의 일례를 보여 주는 블록도이다. 도 14의 비트플레인 인코딩부(148)는 도 8을 참조하여 설명한 인코딩 방법을 구현하기 위한 장치의 일례일 수 있다. 그리고 도 14에 따른 비트플레인 인코딩부(148)에서 인트라 픽쳐의 비트플레인 블록을 인코딩하는 방법은 국제 동영상 표준인 MPEG-4 Part-2 Visual(ISO/IEC 14496-2)의 이진 형상 코딩(Binary Shape Coding)에서 사용하는 방법을 응용한 것으로서, 이하에서는 이에 대해서 구체적으로 설명한다. 하지만, 비트플레인 인코딩부(148)의 구성이나 비트플레인 인코딩부(148)에서 사용하는 인트라 픽쳐에 대한 인코딩 알고리즘이 여기에만 한정되는 것으로 해석되어서는 안된다.14 is a block diagram illustrating an example of a detailed configuration of a bitplane encoding unit 148 for an intra picture. The bitplane encoding unit 148 of FIG. 14 may be an example of an apparatus for implementing the encoding method described with reference to FIG. 8. The method for encoding the bitplane block of the intra picture in the bitplane encoding unit 148 according to FIG. 14 is binary shape coding of MPEG-4 Part-2 Visual (ISO / IEC 14496-2), which is an international video standard. Coding) is applied to the method, which will be described in detail below. However, the configuration of the bitplane encoding unit 148 and the encoding algorithm for the intra picture used in the bitplane encoding unit 148 should not be interpreted as being limited thereto.

도 14를 참조하면, 모드 결정부(1480)는 입력되는 현재 비트플레인 블록의 모드를 결정하기 위한 것이다. 예를 들어, 현재 비트플레인 블록의 픽셀값이 모두 '255(1)'이라면, 현재 비트플레인 블록의 모드는 이를 지시하는 소정의 블록 모드 정보, 예컨대 'all_1 모드'로 설정되고, 픽셀값이 모두 '0(0)'이라면 이를 지시하는 소정의 블록 모드 정보, 예컨대 'all_0 모드'로 설정될 수 있다. 이 경우에는 현재 비트플레인 블록에 대해서는 블록 모드 정보만이 인코딩되어 멀티플렉서(160)로 입력되어 비트스트림에 포함된다.Referring to FIG. 14, the mode determiner 1480 is to determine a mode of an input current bitplane block. For example, if the pixel values of the current bitplane block are all '255 (1)', the mode of the current bitplane block is set to predetermined block mode information indicating this, for example, 'all_1 mode', and the pixel values are all If it is '0 (0)', it may be set to predetermined block mode information indicating this, for example, 'all_0 mode'. In this case, only block mode information for the current bitplane block is encoded, input to the multiplexer 160, and included in the bitstream.

그리고 현재 비트플레인 블록의 픽셀값이 모두 같은 값이 아닌 경우에는, 현재 비트플레인 블록의 블록 모드 정보는 해당 비트플레인 블록을 부호화하는데 사용되는 소정의 '이진영상 코딩 기법'을 지시하는 값으로 설정될 수 있다. 예를 들어, 컨텍스트 기반 산술 코딩(Context-based Arithmetic Encoding, CAE) 방법을 이용하여 '0(0)'과 '255(1)'이 섞여 있는 현재 비트플레인 블록을 코딩하는 경우에는, 현재 비트플레인 블록의 블록 모드 정보는 'intraCAE 모드'를 지시하는 값으로 설정될 수 있다. 이 경우에, 현재 비트플레인 블록은 CAE 인코딩부(1486)에서 CAE 방법을 사용하여 인코딩되며, CAE 인코딩된 결과(부호화된 데이터)는 블록 모드 정보와 함께 멀티플렉서(160)로 입력되어 비트스트림에 포함된다.If the pixel values of the current bitplane block are not all the same value, the block mode information of the current bitplane block may be set to a value indicating a predetermined 'binary image coding technique' used to encode the corresponding bitplane block. Can be. For example, if you are coding a current bitplane block that contains a mixture of '0 (0)' and '255 (1)' using Context-based Arithmetic Encoding (CAE), The block mode information of the block may be set to a value indicating 'intraCAE mode'. In this case, the current bitplane block is encoded using the CAE method in the CAE encoding unit 1486, and the CAE encoded result (encoded data) is input to the multiplexer 160 together with the block mode information and included in the bitstream. do.

CAE 인코딩부(1486)에서는 공지된 CAE 인코딩 방법을 사용하여 부호화를 수행할 수 있다. 또는, CAE 인코딩부(1486)에서는 깊이정보 맵의 비트플레인의 특성을 고려하여 공지된 CAE 인코딩 방법을 적절히 응용하여 부호화를 수행할 수 있다. CAE 인코딩을 위해서는 참조 비트플레인이 필요한데, 상기 참조 비트플레인은 비트플레인 분리부(1482) 및/또는 적응적으로 XOR 연산부(1484)를 거친 참조영상의 비트플레인 블록으로부터 생성된다. 참조영상은 DCT 기반 인코딩 유닛(A, 도 10 참조)에서 디코딩되어 디블록킹 필터(122)로 입력되기 이전의 영상이거나 혹은 비트플레인 코딩 유닛(B, 도 10 참조)에서 디코딩된 영상일 수 있다. 그리고 이 참조영상은 비트플레인 분리부(1482)로 입력되어 블록 단위로 복수의 비트플레인 블록들 로 분리된다. 또한, 분리된 비트플레인 블록들 중에서 현재 비트플레인 블록과 동일한 레벨의 비트플레인 블록은, 상기 현재 비트플레인 블록이 XOR 연산부(146)에서 XOR 연산이 수행된 블록인지에 따라서 XOR 연산부(1484)에서 적응적으로 XOR 연산이 수행된 다음, 참조 비트플레인을 구성하는 비트플레인 블록으로서 CAE 인코딩부(1486)로 입력된다.The CAE encoding unit 1486 may perform encoding using a known CAE encoding method. Alternatively, the CAE encoding unit 1486 may perform encoding by appropriately applying a known CAE encoding method in consideration of the characteristics of the bitplane of the depth map. A reference bitplane is required for CAE encoding. The reference bitplane is generated from a bitplane block of a reference picture that has passed through the bitplane separator 1462 and / or adaptively the XOR operator 1484. The reference picture may be an image before it is decoded by the DCT based encoding unit A (see FIG. 10) and input to the deblocking filter 122 or may be an image decoded by the bitplane coding unit B (see FIG. 10). The reference image is input to the bitplane separation unit 1462 and separated into a plurality of bitplane blocks in block units. Also, among the separated bitplane blocks, a bitplane block having the same level as the current bitplane block is adapted by the XOR operator 1484 according to whether the current bitplane block is a block in which an XOR operation is performed by the XOR operator 146. In general, the XOR operation is performed and then input to the CAE encoding unit 1486 as a bitplane block constituting the reference bitplane.

도 15는 인터 픽쳐를 위한 비트플레인 인코딩부(148)의 세부 구성의 일례를 보여 주는 블록도이다. 도 15의 비트플레인 인코딩부(148)는 도 9를 참조하여 설명한 인코딩 방법을 구현하기 위한 장치의 일례일 수 있다. 그리고 도 15에 따른 비트플레인 인코딩부(148)에서 인터 픽처의 비트플레인 블록을 인코딩하는 방법도 국제 동영상 표준인 MPEG-4 Part-2 Visual(ISO/IEC 14496-2)의 이진 형상 코딩(Binary Shape Coding)에서 사용하는 방법을 응용한 것으로서, 이하에서는 이에 대해서 구체적으로 설명한다. 하지만, 비트플레인 인코딩부(148)의 구성이나 비트플레인 인코딩부(148)에서 사용하는 인터 픽쳐에 대한 인코딩 알고리즘이 여기에만 한정되는 것으로 해석되어서는 안된다.FIG. 15 is a block diagram illustrating an example of a detailed configuration of a bitplane encoding unit 148 for an inter picture. The bitplane encoding unit 148 of FIG. 15 may be an example of an apparatus for implementing the encoding method described with reference to FIG. 9. In addition, a method of encoding a bitplane block of an inter picture in the bitplane encoding unit 148 according to FIG. 15 also includes binary shape coding of MPEG-4 Part-2 Visual (ISO / IEC 14496-2), which is an international video standard. Coding) is applied to the method, which will be described in detail below. However, the configuration of the bitplane encoding unit 148 and the encoding algorithm for the inter picture used in the bitplane encoding unit 148 should not be interpreted as being limited thereto.

도 15를 참조하면, 모드 결정부(148a)는 입력되는 현재 비트플레인 블록의 모드를 결정하기 위한 것이다. 예를 들어, 도 9를 참조하여 설명한 바와 같이, 비트플레인 분리부(148b)와 적응적으로 XOR 연산부(148c)를 거친 재구성된 영상 및/또는 참조 영상의 비트플레인 블록을 이용하여, 입력되는 현재 비트플레인 블록의 모드를 'No Update Without MV' 모드, 'all_1' 모드, 'all_0' 모드, 'No Update with MV' 모드, 'intraCAE 인코딩' 모드, 및/또는 'interCAE 인코딩' 모드 등으로 결정할 수 있다. Referring to FIG. 15, the mode determiner 148a is to determine a mode of an input current bitplane block. For example, as described with reference to FIG. 9, a current inputted using a bitplane block of a reconstructed image and / or a reference image that has been adaptively passed through the bitplane separation unit 148b and the XOR operation unit 148c may be used. The mode of the bitplane block can be determined by 'No Update Without MV' mode, 'all_1' mode, 'all_0' mode, 'No Update with MV' mode, 'intraCAE encoding' mode, and / or 'interCAE encoding' mode. have.

만일 현재 비트플레인 블록의 모드가 'No Update Without MV' 모드, 'all_1' 모드, 또는 'all_0' 모드로 결정되는 경우에는, 블록 모드 정보만이 인코딩되어 멀티플렉서(160)로 입력될 수 있다. 이 경우에 모드 결정부(148a)에서 도 9의 단계 22 내지 단계 25에서 기술된 알고리즘을 수행하여, 현재 비트플레인 블록의 모드를 결정할 수 있다. If the mode of the current bitplane block is determined as the 'No Update Without MV' mode, the 'all_1' mode, or the 'all_0' mode, only the block mode information may be encoded and input to the multiplexer 160. In this case, the mode determination unit 148a may perform the algorithm described in steps 22 to 25 of FIG. 9 to determine the mode of the current bitplane block.

그리고 현재 비트플레인 블록의 모드가 'No Update with MV' 모드로 결정되는 경우에는, 블록 모드 정보와 움직임 벡터(MV)가 인코딩되어 멀티플레서(160)로 입력될 수 있다. 이 경우에, 도 9의 단계 26은 움직임 예측부(148d)에서 수행되며, 단계 27과 단계 28은 움직임 보상부(148e)와 모드 결정부(148a)에서 수행될 수 있다. When the mode of the current bitplane block is determined as the 'No Update with MV' mode, the block mode information and the motion vector MV may be encoded and input to the multiplexer 160. In this case, step 26 of FIG. 9 may be performed by the motion predictor 148d, and steps 27 and 28 may be performed by the motion compensator 148e and the mode determiner 148a.

또한, 현재 비트플레인 블록의 모드가 'intraCAE 인코딩' 모드 또는 'interCAE 인코딩' 모드로 결정되는 경우에는, 블록 모드 정보는 인코딩되어 멀티플렉서(160)로 입력되지만, 현재 비트플레인 블록의 데이터는 CAE 인코딩부(148f)로 입력되어 인트라 CAE 방법 또는 인터 CAE 방법을 이용하여 부호화된 후에 멀티플렉서(160)로 입력될 수 있다. 이 경우에, 'intraCAE 인코딩' 모드 또는 'interCAE 인코딩' 모드로 결정하는 것은 모드 결정부(148a)에서 수행하거나 또는 CAE 인코딩부(148f)에서 수행할 수 있다. 그리고 CAE 인코딩부(148f)에서는 공지된 인트라 CAE 방법 또는 인터 CAE 방법을 그대로 사용하거나 또는 이를 적절이 응용하여 부호화를 수행할 수 있다. CAE 인코딩부(148f)에서 인트라 CAE 인코딩 및/또 는 인터 CAE 인코딩을 수행하기 위해서는 참조 비트플레인이 필요한데, 상기 참조 비트플레인은 비트플레인 분리부(148b) 및/또는 적응적으로 XOR 연산부(148c)를 거친 재구성된 영상(또는 참조 영상)의 비트플레인 블록으로부터 생성된다.In addition, when the mode of the current bitplane block is determined as the 'intraCAE encoding' mode or the 'interCAE encoding' mode, the block mode information is encoded and input to the multiplexer 160, but the data of the current bitplane block is transmitted to the CAE encoding unit. The data may be input to 148f and encoded using the intra CAE method or the inter CAE method, and then input to the multiplexer 160. In this case, determining the 'intraCAE encoding' mode or the 'interCAE encoding' mode may be performed by the mode determining unit 148a or by the CAE encoding unit 148f. In addition, the CAE encoding unit 148f may perform encoding by using a known intra CAE method or an inter CAE method as it is, or by appropriately applying the same. In order to perform intra CAE encoding and / or inter CAE encoding in the CAE encoding unit 148f, a reference bit plane is required, which is a bit plane separation unit 148b and / or adaptively an XOR operator 148c. Is generated from a bitplane block of a reconstructed picture (or reference picture) which has undergone the processing.

도 16은 도 14의 CAE 인코딩부(1486) 또는 도 15의 CAE 인코딩부(148f)에서 CAE 인코딩에서 이용하는 참조 비트플레인을 구성하는 방법의 일례를 보여 주기 위한 도면이다. 도 16에서 현재 비트플레인 블록은 가운데 5개의 블록들 중에서 실선으로 표시된 블록이다. 도 16의 우측 아래쪽을 참조하면, 상기 현재 비트플레인 블록은 MSB-3 비트플레인 블록으로서, XOR 연산부(146, 도 10 참조)에서 XOR 연산을 수행한 블록인 것을 알 수 있다. 그러나 현재 비트플레인 블록이 다른 레벨의 비트플레인 블록이거나 또는 XOR 연산을 수행하지 않은 블록인 경우에도, 도 16에 도시된 방법을 응용하여 참조 비트플레인을 구성할 수가 있다는 것은 당업자에게 자명하다.FIG. 16 illustrates an example of a method of configuring a reference bitplane used in CAE encoding by the CAE encoding unit 1486 of FIG. 14 or the CAE encoding unit 148f of FIG. 15. In FIG. 16, the current bitplane block is a block indicated by solid lines among the five blocks. Referring to the lower right of FIG. 16, it can be seen that the current bitplane block is an MSB-3 bitplane block, which is a block in which an XOR operation is performed by the XOR operator 146 (see FIG. 10). However, it will be apparent to those skilled in the art that the reference bitplane can be configured by applying the method shown in FIG. 16 even if the current bitplane block is a bitplane block of another level or a block that has not performed an XOR operation.

도 16에 도시된 바와 같이, CAE 인코딩부(1486 또는 148f)에서 MSB-3 비트플레인 블록에 대하여 CAE 인코딩을 수행하기 위해서는, 현재 블록에 인접한 블록들에서 현재 비트플레인 블록과 동일한 레벨(MSB-3 비트)의 참조 비트플레인(도 16에서 가운데 5개의 블록들 중에서 점선으로 표시된 4개의 블록)이 필요하다. 이를 위하여, 비트플레인 분리부(1482 또는 148b)는 참조영상에서 현재 블록에 인접한 블록, 즉 참조 블록들을 비트플레인 블록들로 분리한다. 그리고 코딩할 현재 비트플레인(MSB-3 비트플레인) 블록이 XOR 연산부(146)에서 XOR 연산이 수행된 블록이므로, 상기 참조블록의 MSB-3 비트플레인 블록에 대해서도 XOR 연산부(1484 또는 148c)에서 XOR 연산이 수행된다. 그리고 이와 같이, XOR 연산부(1484 또는 148c)에서 XOR 연산이 수행된 참조블록들 각각의 MSB-3 비트플레인 블록이 모여서 상기 참조 비트플레인을 구성하게 된다.As shown in FIG. 16, in order to perform CAE encoding on the MSB-3 bitplane block in the CAE encoding unit 1486 or 148f, the same level as the current bitplane block in the blocks adjacent to the current block (MSB-3). Bit) of the reference bitplane (four blocks indicated by dashed lines among the five middle blocks in FIG. 16). To this end, the bitplane separation unit 1462 or 148b separates the blocks adjacent to the current block, that is, the reference blocks, into the bitplane blocks in the reference picture. Since the current bitplane (MSB-3 bitplane) block to be coded is a block in which the XOR operation is performed in the XOR operation unit 146, the XOR operation unit 1484 or 148c also performs an XOR operation on the MSB-3 bitplane block of the reference block. The operation is performed. As described above, the MSB-3 bitplane blocks of each of the reference blocks on which the XOR operation is performed in the XOR operator 1484 or 148c form the reference bitplane.

이상에서는 비트플레인 인코딩부(148)에서 CAE 인코딩 알고리즘을 이용하여 비트플레인 블록들을 부호화하는 방법에 관하여 설명하였다. 하지만, 본 발명의 실시예가 여기에만 한정되는 것은 아니며, 비트플레인 인코딩부(148)는 다른 부호화 알고리즘을 이용하여 n개의 비트플레인 블록들을 부호화할 수도 있다. 예를 들어, 비트플레인 인코딩부(148)는 공지된 런 길이 코딩(Run Length Coding, RLC) 방법과 가변 길이 코딩(Variable Length Coding, VLC) 방법을 이용하거나, 또는 공지된 컨텍스트 기반 적응적 이진 산술 코딩(Context-based Adaptive Binary Arithmetic Coding, CABAC)을 응용하거나, 또는 공지된 JBIG(Joint Bi-level Image processing Group)의 방법이나 쿼드 트리(Quad Tree) 방법을 이용하여 비트플레인을 부호화할 수도 있다.In the above, the method of encoding the bitplane blocks using the CAE encoding algorithm in the bitplane encoding unit 148 has been described. However, embodiments of the present invention are not limited thereto, and the bitplane encoding unit 148 may encode n bitplane blocks by using another encoding algorithm. For example, the bitplane encoding unit 148 uses a known Run Length Coding (RLC) method and a Variable Length Coding (VLC) method, or known context-based adaptive binary arithmetic. Coding (Context-based Adaptive Binary Arithmetic Coding (CABAC)) may be applied, or the bitplane may be encoded by using a known joint bi-level image processing group (JBIG) method or quad tree method.

계속해서 도 10을 참조하면, 비트플레인 인코딩부(148)로부터 출력되는 정보와 데이터는 멀티플렉서(160)를 거쳐서 비트스트림으로 출력되는 한편, 후속되는 깊이정보 맵의 인코딩을 위하여 비트플레인 블록 단위로 다시 디코딩이 된다. 이를 위하여, 비트플레인 인코딩부(148)의 출력은 비트플레인 디코딩부(150)로 입력되어서 XOR 연산부(152), 비트플레인 결합부(154), 및 깊이정보 맵 구성부(156)를 거쳐서 최종적으로 재구성된 깊이정보 맵 블록이 출력된다. 이하, 이를 보다 상세하게 설명한다.10, the information and data output from the bitplane encoding unit 148 are output to the bitstream through the multiplexer 160, and again in the bitplane block unit for encoding of the depth map. Decoding is done. To this end, the output of the bitplane encoding unit 148 is input to the bitplane decoding unit 150 to finally pass through the XOR operator 152, the bitplane combiner 154, and the depth map configuration unit 156. The reconstructed depth map block is output. This will be described in more detail below.

비트플레인 디코딩부(150)에서는 전술한 비트플레인 인코딩부(148)의 과정과는 반대의 과정이 수행된다. 보다 구체적으로, 비트플레인 디코딩부(150)는 비트플레인 인코딩부(148)로부터 출력되는 인코딩된 데이터 및/또는 모드 정보를 이용하여 비트플레인 블록을 재구성한다. 재구성된 비트플레인 블록은 인코딩 단계에서 XOR 연산이 수행된 비트플레인 블록이거나 또는 XOR 연산이 수행되지 않은 비트플레인 블록일 수 있는데, 전자는 XOR 연산부(152)로 출력되지만 후자는 비트플레인 결합부(154)로 출력된다. In the bitplane decoding unit 150, a process opposite to that of the bitplane encoding unit 148 described above is performed. More specifically, the bitplane decoding unit 150 reconstructs the bitplane block by using the encoded data and / or mode information output from the bitplane encoding unit 148. The reconstructed bitplane block may be a bitplane block in which an XOR operation is performed in the encoding step or a bitplane block in which the XOR operation is not performed. The former is output to the XOR operation unit 152, but the latter is a bitplane combining unit 154. Will be displayed.

재구성된 비트플레인 블록을 생성할 수 있도록, 비트플레인 디코딩부(150)는 비트플레인 인코딩부(148)에 대응하는 구성을 갖는다. In order to generate a reconstructed bitplane block, the bitplane decoding unit 150 has a configuration corresponding to the bitplane encoding unit 148.

예를 들어, 비트플레인 인코딩부(148)가 도 14에 도시된 것과 같은 구성을 포함하는 경우에, 비트플레인 디코딩부(150)도, 도 17에 도시된 것과 같은, MPEG-4 Part-2 Visual(ISO/IEC 14496-2)의 인트라 픽쳐에 대한 이진 형상 디코딩법을 응용하는 구성을 포함할 수 있다. 도 17은 이러한 비트플레인 디코딩부(150)의 세부 구성의 일례를 보여 주는 블록도이다.For example, if the bitplane encoding unit 148 includes a configuration as shown in FIG. 14, the bitplane decoding unit 150 also has an MPEG-4 Part-2 Visual, as shown in FIG. 17. It may include a configuration for applying the binary shape decoding method for the intra picture of (ISO / IEC 14496-2). 17 is a block diagram showing an example of a detailed configuration of the bitplane decoding unit 150.

도 17을 참조하면, 디코딩되어야 하는 비트플레인 블록의 모드가 'all_0 모드'이거나 또는 'all_1 모드'인 경우에는, 동일 레벨 블록 디코딩부(1500)가 블록 내의 모든 픽셀값이 '0(0)' 또는 '255(1)'인 비트플레인 블록을 생성한다. 반면, 디코딩되어야 하는 비트플레인 블록의 모드가 'intraCAE 모드'인 경우에는, CAE 디코딩부(1506)가 참조 비트플레인을 이용하여 이진 산술 디코딩(CAE 디코딩)을 수행함으로써 재구성된 비트플레인 블록을 출력한다. 상기 참조 비트플레인은 도 14 를 참조하여 설명한 것과 동일한 과정을 거쳐서 만들어질 수 있다. 보다 구체적으로, 입력되는 참조영상은 비트플레인 분리부(1502)에서 복수의 비트플레인 블록들로 분리되며, 분리된 비트플레인 블록은 그대로 CAE 디코딩부(1506)에서 CAE 디코딩에서 이용하는 참조 비트플레인을 구성하거나 또는 상기 분리된 비트플레인 블록에 대하여 XOR 연산부(1504)에서 XOR 연산이 수행된 비트플레인 블록이 상기 참조 비트플레인을 구성할 수 있다. 이 경우에, 비트플레인 분리부(1502)에서 분리된 비트플레인 블록이 XOR 연산부(1504)를 거치는지 여부(즉, XOR 연산이 수행되는지 여부)는, 디코딩의 대상이 되는 현재 비트플레인 블록이 XOR 연산부(146)에서 XOR 연산이 수행된 블록인지에 따라서 결정된다.Referring to FIG. 17, when the mode of the bitplane block to be decoded is 'all_0 mode' or 'all_1 mode', all pixel values in the block are equal to '0 (0)' in the same level block decoding unit 1500. Or create a bitplane block of '255 (1)'. On the other hand, when the mode of the bitplane block to be decoded is the 'intraCAE mode', the CAE decoding unit 1506 outputs the reconstructed bitplane block by performing binary arithmetic decoding (CAE decoding) using the reference bitplane. . The reference bitplane may be made through the same process as described with reference to FIG. 14. More specifically, the input reference image is divided into a plurality of bitplane blocks in the bitplane separation unit 1502, and the separated bitplane blocks constitute a reference bitplane used in CAE decoding in the CAE decoding unit 1506 as it is. Alternatively, a bitplane block in which an XOR operation is performed by the XOR operator 1504 with respect to the separated bitplane block may configure the reference bitplane. In this case, whether the bitplane block separated by the bitplane separation unit 1502 passes through the XOR operation unit 1504 (that is, whether the XOR operation is performed) is determined by whether the current bitplane block to be decoded is XOR. The operation unit 146 determines whether or not the block in which the XOR operation is performed.

만일, 비트플레인 인코딩부(148)가 도 15에 도시된 것과 같은 구성을 포함하는 경우에, 비트플레인 디코딩부(150)도 MPEG-4 Part-2 Visual(ISO/IEC 14496-2)의 인터 픽쳐에 대한 이진 형상 디코딩법을 응용하는 구성을 포함할 수 있다. 이러한 비트플레인 디코딩부의 세부 구성의 일례에 대해서는 후술한다(도 19 참조). If the bitplane encoding unit 148 includes the configuration as shown in FIG. 15, the bitplane decoding unit 150 also uses the inter picture of MPEG-4 Part-2 Visual (ISO / IEC 14496-2). It may include a configuration for applying a binary shape decoding method for. An example of the detailed configuration of such a bitplane decoding unit will be described later (see FIG. 19).

계속해서 도 10을 참조하면, XOR 연산부(152)는 재구성된 비트플레인 블록에 대하여 XOR 연산을 수행한다. 이 경우에, 모든 재구성된 비트플레인 블록에 대하여 XOR 연산을 수행하는 것이 아니라, XOR 연산부(146)에서 XOR 연산을 수행한 비트플레인 블록에 대해서만 XOR 연산을 수행한다. 현재의 재구성된 비트플레인 블록이 XOR 연산부(146)에서 XOR 연산이 수행된 블록인지는 이를 지시하는 XOR 연산 정보, 예컨대 XOR 플래그로부터 알 수 있다.10, the XOR operator 152 performs an XOR operation on the reconstructed bitplane block. In this case, instead of performing the XOR operation on all reconstructed bitplane blocks, the XOR operation is performed only on the bitplane block in which the XOR operation unit 146 performs the XOR operation. Whether the current reconstructed bitplane block is a block in which the XOR operation is performed in the XOR operation unit 146 may be known from XOR operation information indicating the XOR operation, for example, an XOR flag.

그리고 비트플레인 결합부(154)는 재구성된 비트플레인 블록들로부터 n비트 로 구성된 깊이정보 맵 블록을 복원한다. 상기 재구성된 비트플레인 블록은 비트플레인 디코딩부(150)로부터 직접 출력되는 재구성된 비트플레인 블록이거나 및/또는 XOR 연산부(152)에서 XOR 연산이 수행된 후에 출력되는 비트플레인 블록일 수 있다. The bitplane combiner 154 restores the depth map block composed of n bits from the reconstructed bitplane blocks. The reconstructed bitplane block may be a reconstructed bitplane block directly output from the bitplane decoding unit 150 and / or a bitplane block output after the XOR operation is performed by the XOR operation unit 152.

또한, 깊이정보 맵 구성부(156)에서는 복원된 n비트의 깊이정보 맵 블록으로부터 N비트의 깊이정보 맵 블록을 생성한다. N비트의 깊이정보 맵 블록을 구성하기 위하여 n비트의 깊이정보 맵에 추가되는 하위 (N-n)비트에 대한 비트플레인 블록은, 픽셀값이 모두 '0(0)'으로 구성된 비트플레인 블록일 수 있다. 즉, 깊이정보 맵 블록을 구성하기 위하여 추가되는 각 픽셀의 하위 (N-n)비트는 모두 '0'의 값으로 함으로써, n비트의 깊이정보 맵 블록에서 N비트의 깊이정보 맵 블록을 복원할 수 있다. 이와 같이, 깊이정보 맵 구성부(156)에서 복원된 깊이정보 맵 블록은 DCT 기반 인코딩 유닛(A)에서 인트라 예측을 위한 참조영상으로 이용되거나, 디블록킹 필터부(122)로 입력되어 디블록킹 필터링 과정이 수행된 다음 영상버퍼(130)의 재구성된 영상 버퍼에 저장되거나, 및/또는 비트플레인 인코딩부(148) 및 비트플레인 디코딩부(150)에서 참조 비트플레인을 구성하기 위하여 이용될 수 있다.In addition, the depth map configuration unit 156 generates an N-bit depth map block from the restored n-bit depth map block. The bitplane block for the lower (Nn) bits added to the n-bit depth map to configure the N-bit depth map block may be a bitplane block in which pixel values are all composed of '0 (0)'. . That is, by setting all the lower (Nn) bits of each pixel added to constitute the depth map block to have a value of '0', the N-bit depth map block can be restored from the n-bit depth map block. . As described above, the depth map block reconstructed by the depth map configuration unit 156 is used as a reference image for intra prediction in the DCT-based encoding unit A or is input to the deblocking filter unit 122 to deblocking filtering. The process may be performed and then stored in the reconstructed image buffer of the image buffer 130 and / or used to configure the reference bitplane in the bitplane encoding unit 148 and the bitplane decoding unit 150.

도 18은 본 발명의 일 실시예에 따른 깊이정보 맵의 복호화를 위한 장치, 즉 깊이정보 맵 디코더(depth map decoder) 구성을 보여 주는 블록도이다. 본 실시예에 따른 깊이정보 맵 디코더(200, DCT 기반 디코딩 유닛(D)은 물론 비트플레인 디코딩 유닛(C)도 해당된다)는 도 10을 참조하여 설명한 깊이정보 맵 인코더(100)에 대응한다. 따라서 깊이정보 맵 인코더(100)의 구성에 대응하여 깊이정보 맵 디코더(200)의 구성도 변경될 수 있다. 깊이정보 맵 디코더(200)에서도 소정 크기의 블록(MㅧN 블록) 단위로 복호화를 수행하는데, 여기서, MㅧN 블록의 크기에 대해서 특별한 제한은 없다. 이하에서는 도 18을 참조하여, 본 발명의 일 실시예에 따른 블록 기반 깊이정보 맵의 복호화 장치 및 방법에 관하여 설명한다.FIG. 18 is a block diagram illustrating an apparatus for decoding a depth map, that is, a depth map decoder according to an embodiment of the present invention. The depth map decoder 200 according to the present embodiment (the DCT-based decoding unit D as well as the bitplane decoding unit C) also corresponds to the depth map encoder 100 described with reference to FIG. 10. Therefore, the configuration of the depth map decoder 200 may also be changed to correspond to the configuration of the depth map encoder 100. The depth map decoder 200 also performs decoding in units of blocks of a predetermined size (M ㅧ N block). Here, there is no particular limitation on the size of the M ㅧ N block. Hereinafter, an apparatus and method for decoding a block-based depth map according to an embodiment of the present invention will be described with reference to FIG. 18.

도 18을 참조하면, 본 실시예에 따른 블록 기반 깊이정보 맵의 복호화 장치, 즉 깊이정보 맵 디코더(200)는 비트플레인 디코딩 유닛(C) 및 DCT 기반 디코딩 유닛(D)을 포함한다. 비트플레인 디코딩 유닛(C)은 도 10의 비트플레인 인코딩 유닛(B)에 대응하는 것으로서, 디멀티플렉서(demultiplexer, 210)로부터 입력되는 비트스트림으로부터 깊이정보 맵을 비트플레인 블록 단위로 재구성하고, 이에 대하여 적응적으로 XOR 연산을 수행하며, 또한 XOR 연산이 수행되거나 및/또는 XOR 연산이 수행되지 않은 재구성된 비트플레인 블록들을 결합함으로써 깊이정보 맵 블록을 재구성한다. 비트플레인 디코딩 유닛(C)의 구체적인 구성 및 동작에 대해서는 후술한다.Referring to FIG. 18, the apparatus for decoding a block-based depth map according to the present embodiment, that is, the depth map decoder 200 includes a bitplane decoding unit C and a DCT based decoding unit D. Referring to FIG. The bitplane decoding unit C corresponds to the bitplane encoding unit B of FIG. 10, and reconstructs a depth map in units of bitplane blocks from a bitstream input from a demultiplexer 210 and adapts the bitmap block. In particular, the depth map block is reconstructed by combining the reconstructed bitplane blocks in which the XOR operation is performed and / or in which the XOR operation is not performed. The detailed configuration and operation of the bitplane decoding unit C will be described later.

반면, DCT 기반 디코딩 유닛(D)은 도 10의 DCT 기반 인코딩 유닛(A)에 대응하는 것으로서, 이미지정보를 복호화하는 기존의 기법과 동일한 복호화 기법으로 깊이정보 맵을 블록 단위로 디코딩한다. 이를 위하여, DCT 기반 디코딩 유닛(D)은 H.264/AVC(Advances Video Coding)의 디코딩 유닛과 동일한 구성을 가질 수 있다. 그러나 본 실시예가 여기에만 한정되는 것은 아니며, DCT 기반 인코딩 유닛(A)의 구성에 대응하여 DCT 기반 디코딩 유닛(D)도 MPEG-1, MPEG-2, MPEG-4 Part 2 Visual, VC(Video Coding)-1 등의 디코딩 유닛이나 장래에 규정될 새로운 동영상 코딩 기법에 따른 디코딩 유닛의 구성이 될 수도 있다. On the other hand, the DCT-based decoding unit (D) corresponds to the DCT-based encoding unit (A) of FIG. 10, and decodes the depth map in units of blocks by the same decoding technique as the existing technique of decoding image information. To this end, the DCT based decoding unit D may have the same configuration as that of the decoding unit of H.264 / Advances Video Coding (AVC). However, the present embodiment is not limited thereto, and the DCT-based decoding unit D also corresponds to the configuration of the DCT-based encoding unit A, and also MPEG-1, MPEG-2, MPEG-4 Part 2 Visual, and VC (Video Coding). Decoding unit such as) -1 or a decoding unit according to a new video coding technique to be defined in the future.

도 18을 참조하면, 깊이정보 맵 디코더(200)는 코딩 모드 정보에 따라서 비트플레인 디코딩 유닛(C)과 DCT 기반 디코딩 유닛(D) 중에서 어느 하나의 디코딩 유닛에서 복호화 과정을 수행함으로써 재구성된 깊이정보 맵 블록을 출력한다. 코딩 모드 정보는 비트스트림에 포함되어 있는데, 디멀티플렉서(demultiplexer, 210)는 입력되는 비트스트림에서 코딩 모드 정보를 먼저 디코딩한 다음, 이 코딩 모드 정보에 따라서 비트스트림을 비트플레인 디코딩 유닛(C) 또는 DCT 기반 디코딩 유닛(D)으로 분배한다. 예를 들어, 코딩 모드 정보가 '비트플레인 코딩'을 지시하는 경우에, 디멀티플렉서(210)로부터 출력되는 부호화된 데이터는 비트플레인 디코딩 유닛(C)에서 복호화 과정이 진행되는데, 그 구체적인 방법은 다음과 같다.Referring to FIG. 18, the depth map decoder 200 reconstructs depth information by performing a decoding process on any one of a bitplane decoding unit C and a DCT based decoding unit D according to coding mode information. Print a map block. The coding mode information is included in the bitstream. The demultiplexer 210 first decodes the coding mode information from the input bitstream, and then decodes the bitstream according to the coding mode information. To the base decoding unit D. For example, when the coding mode information indicates 'bitplane coding', the coded data output from the demultiplexer 210 is decoded in the bitplane decoding unit C. same.

(1) 우선, 비트플레인 디코딩부(212)는 디멀티플렉서(210)로부터 부호화된 데이터를 입력 받아서 소정의 복호화 알고리즘을 수행함으로써, n개의 비트플레인 블록을 복원한다. 여기서, n개의 비트플레인 블록은 N개의 비트플레인 중에서 인코딩 단계에서 원하는 비트율을 얻기 위하여 실제 코딩된 비트플레인 블록의 개수를 가리킨다. 비트플레인 디코딩부(212)는 비트플레인 인코딩부(148, 도 10 참조)에 대응하는 구성을 가진다. (1) First, the bitplane decoding unit 212 restores n bitplane blocks by receiving encoded data from the demultiplexer 210 and performing a predetermined decoding algorithm. Herein, n bitplane blocks indicate the number of bitplane blocks that are actually coded in order to obtain a desired bit rate in the encoding step among the N bitplanes. The bitplane decoding unit 212 has a configuration corresponding to the bitplane encoding unit 148 (see FIG. 10).

예를 들어, 비트플레인 디코딩부(212)는 도 17에 도시된 비트플레인 디코딩부(150)와 동일한 구성의 디코딩부를 포함할 수 있다. 이러한 구성의 비트플레인 디코딩부(212)는 인트라 픽쳐에 대한 CAE 디코딩 기법 및/또는 동일 레벨 블록 디 코딩 기법을 이용하여 인트라 픽쳐를 구성하는 블록의 비트플레인 블록을 복원할 수 있다. 또한, 비트플레인 디코딩부(212)는 인터 픽쳐를 구성하는 블록의 비트플레이 블록을 복원하기 위한 디코딩부도 포함할 수 있는데, 도 19는 인터 픽쳐를 위한 비트플레인 디코딩부(212)의 구성의 일례를 보여 주는 블록도이다.For example, the bitplane decoding unit 212 may include a decoding unit having the same configuration as the bitplane decoding unit 150 shown in FIG. 17. The bitplane decoding unit 212 having such a configuration may reconstruct the bitplane block of the block constituting the intra picture by using a CAE decoding technique and / or a same level block decoding technique for the intra picture. In addition, the bitplane decoding unit 212 may also include a decoding unit for reconstructing the bitplay block of the block constituting the inter picture. FIG. 19 illustrates an example of a configuration of the bitplane decoding unit 212 for the inter picture. A block diagram is shown.

도 19를 참조하면, 수신된 비트스트림은 디멀티플렉서(210)에서 디멀티플렉싱되며, 그 결과 현재 비트플레임 블록의 모드 정보, 움직임 벡터(MV), CAE 인코딩된 비트스트림 등이 비트플레인 디코딩부(212)로 입력된다. 비트플레인 디코딩부(212)는 입력되는 데이터 중에서 모드 정보에 기초하여 디코딩을 수행하여, 비트플레인 블록들을 복원한다.Referring to FIG. 19, the received bitstream is demultiplexed by the demultiplexer 210, and as a result, the mode information, the motion vector (MV), the CAE-encoded bitstream, etc. of the current bitframe block are decoded. Is entered. The bitplane decoding unit 212 restores the bitplane blocks by decoding based on mode information among the input data.

만일, 모드 정보가 'No Update Without MV' 모드이면, 움직임 보상부(2126)는 움직임 벡터 예측값(MVp)을 움직임 벡터로 하여 움직임 보상을 수행하며, 그 결과로서 움직임 보상된 비트플레인 블록, 즉 움직임 벡터 예측값(MVp)에 대응하는 참조 비트플레인 블록을 복원된 비트플레인 블록으로 출력한다. 그리고 움직임 벡터 예측값(MVp)은 여러 가지 방법을 이용하여 결정될 수 있는데, 비트플레인 인코딩부(148, 도 10 참조)에서 움직임 벡터 예측값(MVp)을 결정할 때 사용한 방법과 같은 방법을 사용할 수 있다. If the mode information is 'No Update Without MV' mode, the motion compensator 2126 performs motion compensation using the motion vector prediction value MVp as a motion vector, and as a result, the motion-compensated bitplane block, that is, motion The reference bitplane block corresponding to the vector prediction value MVp is output to the reconstructed bitplane block. The motion vector prediction value MVp may be determined using various methods, and may be the same method as that used by the bitplane encoding unit 148 (see FIG. 10) to determine the motion vector prediction value MVp.

만일 모드 정보가 'all_0 모드'또는 'all_1 모드'인 경우에는, 동일 레벨 블록 디코딩부(2120)가 블록 내의 모든 픽셀값이 '0(0)' 또는 '255(1)'인 비트플레인 블록을 복원하여 출력한다. 그리고 모드 정보가 'No Update with MV' 모드인 경우에는, 움직임 보상부(2126)는 디멀티플렉서(210)로부터 입력되는 움직임 벡터(MV) 를 이용하여 움직임 보상을 수행하며, 그 결과로서 움직임 보상된 비트플레인 블록, 즉 움직임 벡터(MV)에 대응하는 참조 비트플레인 블록을 복원된 비트플레인 블록으로 출력한다. 또한, 모드 정보가 'intraCAE'모드 또는 'interCAE' 모드인 경우에는, CAE 디코딩부(2128)는 이진 산술 디코딩(예컨대, intraCAE 디코딩 또는 interCAE 디코딩)을 수행함으로써 재구성된 비트플레인 블록을 출력할 수 있다.If the mode information is the 'all_0 mode' or the 'all_1 mode', the same level block decoding unit 2120 may determine a bitplane block in which all pixel values in the block are '0 (0)' or '255 (1)'. Restore it and print it out. When the mode information is 'No Update with MV' mode, the motion compensator 2126 performs motion compensation using the motion vector MV input from the demultiplexer 210, and as a result, the motion compensated bit. The plane block, that is, the reference bitplane block corresponding to the motion vector MV, is output to the reconstructed bitplane block. In addition, when the mode information is an 'intraCAE' mode or an 'interCAE' mode, the CAE decoding unit 2128 may output a reconstructed bitplane block by performing binary arithmetic decoding (eg, intraCAE decoding or interCAE decoding). .

움직임 보상이나 CAE 디코딩을 수행하기 위한 참조 비트플레인은 앞에서 설명에서 한 것과 동일한 과정을 거쳐서 만들어질 수 있다. 보다 구체적으로, 입력되는 참조영상(또는 재구성된 영상)은 비트플레인 분리부(2122)에서 복수의 비트플레인 블록들로 분리된다. 또한, 분리된 비트플레인 블록들 중에서 현재 비트플레인 블록과 동일한 레벨의 비트플레인 블록은 XOR 연산을 수행하지 않고 그대로 움직임 보상부(2126) 또는 CAE 디코딩부(2128)로 입력되어 참조 비트플레인으로 이용되거나 또는 상기 비트플레인 블록에 대하여 XOR 연산부(2124)에서 XOR 연산이 수행된 비트플레인 블록이 참조 비트플레인으로 이용될 수 있다. 이 경우에, 비트플레인 분리부(2122)에서 분리된 비트플레인 블록이 XOR 연산부(2124)를 거치는지 여부(즉, XOR 연산이 수행되는지 여부)는, 디코딩의 대상이 되는 현재 비트플레인 블록이 인코딩 과정에서 XOR 연산이 수행된 후에 인코딩되었는지 또는 XOR 연산이 수행되지 않고서 인코딩되었는지(예컨대, XOR 플래그의 값)에 따라서 결정될 수 있다.A reference bitplane for performing motion compensation or CAE decoding may be made through the same process as described above. More specifically, the input reference image (or reconstructed image) is separated into a plurality of bitplane blocks in the bitplane separator 2122. In addition, among the separated bitplane blocks, a bitplane block having the same level as the current bitplane block is input to the motion compensation unit 2126 or the CAE decoding unit 2128 without being subjected to an XOR operation and used as a reference bitplane. Alternatively, a bitplane block in which an XOR operation is performed by the XOR operator 2124 with respect to the bitplane block may be used as a reference bitplane. In this case, whether or not the bitplane block separated by the bitplane separator 2122 passes through the XOR operator 2124 (that is, whether the XOR operation is performed) is determined by encoding the current bitplane block to be decoded. It may be determined according to whether it is encoded after the XOR operation is performed in the process or encoded without performing the XOR operation (eg, the value of the XOR flag).

(2) 계속해서 도 18을 참조하면, XOR 연산부(214)는 비트플레인 디코딩부(212)에서 복원된 비트플레인 블록에 대하여 적응적으로 XOR 연산을 수행한다. 예를 들어, XOR 연산부(214)는 디코딩된 XOR 연산 정보, 예컨대 XOR 플래그의 값에 따라서 해당 비트플레인 블록에 XOR 연산을 수행하거나 또는 수행하지 않을 수 있다. XOR 연산부(214)는 현재 비트플레인 블록보다 상위 레벨의 비트에 대한 비트플레인 블록을 참조 비트플레인으로 이용하여 XOR 연산을 수행할 수 있는데, 여기에만 한정되는 것은 아니다. 즉, XOR 연산부(214)에서의 XOR 연산을 위한 참조 비트플레인은 XOR 연산부(146, 도 10 참조)에서 XOR 연산을 수행할 때 이용한 참조 비트플레인과 동일한 방법으로 결정될 수 있다.(2) Subsequently, referring to FIG. 18, the XOR operator 214 adaptively performs an XOR operation on the bitplane block reconstructed by the bitplane decoder 212. For example, the XOR operator 214 may or may not perform an XOR operation on the corresponding bitplane block according to the decoded XOR operation information, for example, the value of the XOR flag. The XOR operator 214 may perform an XOR operation using a bitplane block for a bit higher than the current bitplane block as a reference bitplane, but is not limited thereto. That is, the reference bitplane for the XOR operation in the XOR operator 214 may be determined in the same manner as the reference bitplane used when the XOR operator 146 (see FIG. 10) performs the XOR operation.

(3) 비트플레인 결합부(216)는 비트플레인 디코딩부(212)로부터 출력되는 비트플레인 블록 및/또는 XOR 연산부(214)로부터 출력되는 비트플레인 블록을 결합하여, 각 픽셀이 n비트로 표현되는 깊이정보 맵 블록을 생성한다. (3) The bitplane combiner 216 combines the bitplane block output from the bitplane decoding unit 212 and / or the bitplane block output from the XOR operator 214 so that each pixel is represented by n bits. Create an information map block.

(4) 그리고 깊이정보 맵 구성부(218)는 비트플레인 결합부(216)로부터 출력되는 n비트의 깊이정보 맵 블록으로부터 실제 깊이정보 맵의 비트수(N개)의 깊이정보 맵 블록을 생성한다. 예를 들어, 깊이정보 맵 구성부(218)는 n비트의 깊이정보 맵 블록의 픽셀 각각에 (N-n)개의 하위 비트를 추가함으로써, 즉 (N-n)개의 비트플레인 블록을 하위 레벨의 비트에 대한 비트플레인 블록으로써 추가함으로써, N비트의 깊이정보 맵 블록을 구성할 수 있다. 이 경우에, 추가되는 하위 비트는 미리 결정된 임의의 값, 예컨대 모두 '0'이 될 수 있지만(즉, 추가되는 (N-n)개의 비트플레인 블록들 각각은 모든 픽셀의 값이 '0'이다), 여기에만 한정되는 것은 아니다.(4) The depth map configuration unit 218 generates the depth map block of N bits of the actual depth map from the n-bit depth map block output from the bitplane combiner 216. . For example, the depth map constructing unit 218 adds (Nn) lower bits to each pixel of the n-bit depth map block, that is, (Nn) bitplane blocks to bits for the lower level bits. By adding as a plane block, an N-bit depth map block can be constructed. In this case, the lower bit added may be any predetermined value, for example all '0' (ie, each of the (Nn) bitplane blocks added has a value of all pixels '0'), It is not limited only to this.

또는, 깊이정보 맵 구성부(218)에서는 비트스트림에 포함되어 있는 소정의 정보, 즉 추가되는 (N-n)개의 비트플레인 블록에 대한 정보를 이용할 수도 있다. 예를 들어, 상기 정보에 의하여 지시되는 내용에 따라서 추가되는 (N-n)개의 비트 플레인 블록의 픽셀값을 모두 '0(0)'으로 하거나 또는 모두 '255(1)'로 하거나 또는 인접한 비트플레인 블록을 이용하는 패딩법 등의 방법으로 픽셀값을 결정할 수도 있다.Alternatively, the depth map configuration unit 218 may use predetermined information included in the bitstream, that is, information about (N-n) bitplane blocks to be added. For example, the pixel values of the (Nn) bit plane blocks added according to the information indicated by the above information are all set to '0 (0)', all to '255 (1)', or adjacent bit plane blocks. The pixel value may be determined by a method such as a padding method.

(5) 마지막으로, 깊이정보 맵 구성부(218)로부터 출력되는 N비트로 표현되는 깊이정보 맵 블록은 DCT 기반 디코딩 유닛(D)의 인트라 예측부(228)에서 인트라 예측을 위한 참조 블록으로 사용되거나 및/또는 비트플레인 디코딩 유닛(C)의 비트플레인 디코딩부(212)에서 CAE 디코딩을 위한 참조 블록으로 사용될 수 있다. 그리고 상기 N비트의 깊이정보 맵 블록은 디블록킹 필터부(232)를 거친 후에, 영상 버퍼(240)의 재구성된 영상 버퍼에 저장되거나 및/또는 재구성된 깊이정보 맵 블록으로서 깊이정보 맵 디코더(200)로부터 출력될 수 있다. (5) Finally, the depth map block represented by N bits output from the depth map configuration unit 218 is used as a reference block for intra prediction in the intra prediction unit 228 of the DCT-based decoding unit (D), or And / or in the bitplane decoding unit 212 of the bitplane decoding unit C, may be used as a reference block for CAE decoding. After the N-bit depth map block passes through the deblocking filter unit 232, the depth map decoder 200 is stored in the reconstructed image buffer of the image buffer 240 and / or as a reconstructed depth map block 200. Can be output from

계속해서 도 18을 참조하면, 코딩 모드 정보가 'DCT 기반 코딩'을 지시하는 경우에, 디멀티플레서(210)로부터 출력되는 부호화된 데이터는 DCT 기반 디코딩 유닛(D)에서 복호화 과정이 진행되는데, 그 구체적인 방법은 다음과 같다. DCT 기반 디코딩 유닛(D)에서는 먼저 예측 블록을 생성한 후에, 이 예측 블록을 입력받은 비트스트림을 디코딩하여 구한 잔여 블록과 더함으로써, 재구성된 깊이정보 맵 블록을 생성한다. 이를 간략히 설명하면 다음과 같다.18, when the coding mode information indicates 'DCT-based coding', the coded data output from the demultiplexer 210 is decoded in the DCT-based decoding unit D. The specific method is as follows. The DCT-based decoding unit D first generates a prediction block, and then adds the prediction block to the residual block obtained by decoding the input bitstream, thereby generating a reconstructed depth map block. Briefly described as follows.

(1) 예측 블록의 생성은 현재 블록의 예측 모드에 따라서 수행된다. 예를 들어, 현재 블록의 예측 모드가 인트라 예측 모드인 경우에, 인트라 예측부(228)는 현재 블록의 이미 디코딩된 주변 픽셀값을 이용하여 공간적 예측을 수행함으로써 예측 블록을 생성한다. 반면, 현재 블록의 예측 모드가 인터 예측 모드인 경우에, 인터 예측부(230)는 움직임 벡터를 이용하여 영상 버퍼(240)의 참조 영상 버퍼에 저장되어 있는 참조 영상에서 해당 영역을 찾아서 움직임 보상을 수행함으로써 예측 블록을 생성한다. (1) Generation of the prediction block is performed according to the prediction mode of the current block. For example, when the prediction mode of the current block is the intra prediction mode, the intra prediction unit 228 generates the prediction block by performing spatial prediction using the already decoded neighboring pixel values of the current block. On the other hand, when the prediction mode of the current block is the inter prediction mode, the inter prediction unit 230 searches for a corresponding region in the reference image stored in the reference image buffer of the image buffer 240 using the motion vector to compensate for the motion. By performing the prediction block generation.

(2) 엔트로피 디코딩부(220)는 디멀티플렉서(210)로부터 입력되는 비트스트림을 확률 분포에 따라 엔트로피 디코딩을 수행함으로써 양자화된 계수를 출력한다. (2) The entropy decoding unit 220 outputs quantized coefficients by performing entropy decoding on the bitstream input from the demultiplexer 210 according to the probability distribution.

(3) 그리고 역양자화부(222)는 엔트로피 디코딩부(220)로부터 출력되는 양자화된 계수에 대하여 역양자화 과정을 수행하여 변환된 계수를 출력하며, 역변환부(224)는 상기 변환된 계수에 대하여 역변환 과정을 수행함으로써 잔여 블록을 생성한다. 가산기(226)는 역변환부(224)로부터 출력되는 잔여 블록과 인트라 예측부(228) 또는 움직임 보상부(230)로부터 입력되는 예측 블록을 합산하여, 재구성된 블록을 출력한다. 상기 재구성된 블록은 비트플레인 디코딩 유닛(C)에서 비트플레인 디코딩을 수행하기 위한 참조 블록으로 입력되거나 및/또는 디블록킹 필터부(232)에서 디블록킹 필터링 과정을 수행한 다음에 영상 버퍼(240)의 재구성된 영상 버퍼에 저장되거나 및/또는 재구성된 깊이정보 맵 블록으로 출력된다.(3) The inverse quantizer 222 outputs the transformed coefficient by performing an inverse quantization process on the quantized coefficients output from the entropy decoding unit 220, and the inverse transformer 224 outputs the transformed coefficients. The residual block is generated by performing an inverse transform process. The adder 226 sums the residual block output from the inverse transformer 224 and the prediction block input from the intra predictor 228 or the motion compensator 230 and outputs the reconstructed block. The reconstructed block is input as a reference block for performing bitplane decoding in the bitplane decoding unit C and / or the deblocking filtering unit 232 performs a deblocking filtering process and then the image buffer 240. Stored in the reconstructed image buffer and / or output as a reconstructed depth map block.

전술한 본 발명의 실시예에 따른 블록 기반 깊이정보 맵의 코딩 방법의 효과를 검증하기 위하여, H.264/AVC의 참조 소프트웨어인 JM(Joint Model) 13.2를 이용하여 본 발명의 실시예에 따른 방법과 기존의 방법(H.264/AVC에 따른 인코딩/디코딩 방법)에 따라서 실험(simulation)을 수행하였으며, 실험 조건은 표 1과 같다.In order to verify the effect of the coding method of the block-based depth map according to the embodiment of the present invention described above, the method according to the embodiment of the present invention using JM (Joint Model) 13.2, which is H.264 / AVC reference software And simulation were performed according to the conventional method (encoding / decoding method according to H.264 / AVC), and the experimental conditions are shown in Table 1.

해상도 및 프레임률Resolution and Frame Rate 1024x768, 15Hz1024x768, 15 Hz 프레임수Frames 100 Frames100 frames 영상포맷Video Format YUV 4:0:0YUV 4: 0: 0 양자화 파라미터Quantization Parameter 22, 27, 32, 3722, 27, 32, 37 예측구조Predictive structure I-P-P-P-I-P-P-P- 엔트로피 코딩 방법Entropy Coding Method CAVLCCAVLC

도 20과 도 21은 각각 H.264/AVC를 이용한 기존 방법(Anchor)과 본 발명의 실시예에 따른 방법(Proposed)에 대한 비트율 대비 PSNR(Peak Signal-to-Noise Ratio)의 율-왜곡 곡선(Rate-Distortion(RD) curve)을 나타내는 것으로, 도 20은 테스트 영상 시퀀스 중의 하나인 'Breakdancers' 영상 시퀀스에 대한 것이며, 도 21은 테스트 영상 시퀀스 중의 하나인 'Ballet' 영상 시퀀스에 대한 것이다. 도 20 및 도 21을 참조하면, 본 발명의 실시예에 따른 방법에 따른 결과가 기존 방법에 따른 결과보다 성능이 월등하게 향상된 것을 확인할 수 있다. 보다 구체적으로, "Breakdancers" 영상 시퀀스의 깊이정보 맵에서는 평균 PSNR의 향상을 나타내는 BD-PSNR 방법을 사용하여 성능을 비교하였을 때 약 1.2 dB가 향상되었고, 평균 비트율(average bit-rate)의 감소량을 나타내는 BD-rate 방법을 사용하여 성능을 비교하였을 때 비트량이 약 16.8% 감소하였다. 그리고 "Ballet" 영상 시퀀스의 깊이정보 맵에서는 BD-PSNR 방법을 사용하여 성능을 비교하였을 때 약 1.3dB가 향상되었고, BD-rate 방법을 사용하여 성능을 비교하였을 때 비트량이 약 18.7%가 감소하였다. 20 and 21 are rate-distortion curves of peak signal-to-noise ratio (PSNR) versus bit rate for an existing method using H.264 / AVC and a method according to an embodiment of the present invention, respectively. FIG. 20 illustrates a 'Breakdancers' image sequence, which is one of test image sequences, and FIG. 21 illustrates a 'Ballet' image sequence, which is one of test image sequences. 20 and 21, it can be seen that the result of the method according to the embodiment of the present invention is significantly improved in performance than the result of the conventional method. More specifically, in the depth map of the "Breakdancers" image sequence, the performance was improved by about 1.2 dB when the performance was compared using the BD-PSNR method, which indicates the improvement of the average PSNR, and the average bit-rate reduction was reduced. By comparing the performance using the BD-rate method, the bit rate was reduced by about 16.8%. In the depth map of the "Ballet" video sequence, the performance was improved by about 1.3 dB when using the BD-PSNR method, and the bit rate was reduced by about 18.7% when the performance was compared using the BD-rate method. .

도 22는 본 발명의 실시예에 따라서 블록 기반 깊이정보 맵의 코딩 방법을 사용한 경우의 화질을 보여 주기 위한 것으로서, 도 22의 (a)는 'Breakdancers' 영상 시퀀스의 일부를 보여 주는 원본 깊이정보 맵 영상이고, 도 22의 (b)는 (a)를 기존의 방법(H.264/AVC)으로 인코딩하고 디코딩하여 복원한 깊이정보 맵 영상이며, 도 22의 (c)는 (a)를 본 발명의 실시예에 따라서 인코딩하고 디코딩하여 복원한 깊이정보 맵 영상이다. 도 22를 참조하면, 기존의 방법을 그대로 사용하는 경우에는 복원된 영상, 특히 객체의 경계 부근에서 화질이 열화된다는 것을 쉽게 확인할 수 있다. 반면, 본 발명의 실시예에 의할 경우에는, 기존의 방법에 비하여 객체 경계 부분의 화질이 상당히 향상된다는 것을 확인할 수 있다. FIG. 22 is a diagram illustrating image quality when a block-based depth map coding method is used according to an embodiment of the present invention. FIG. 22A illustrates an original depth map showing a part of an image sequence of 'Breakdancers'. FIG. 22B is a depth map image obtained by encoding and decoding (a) using an existing method (H.264 / AVC), and FIG. 22 (c) illustrates (a) according to the present invention. A depth map image encoded, decoded, and reconstructed according to an embodiment of the present invention. Referring to FIG. 22, it can be easily confirmed that the image quality deteriorates near the boundary of the reconstructed image, in particular, when the existing method is used as it is. On the other hand, according to the embodiment of the present invention, it can be seen that the image quality of the object boundary portion is significantly improved compared to the conventional method.

이상의 설명은 본 발명의 실시예에 불과할 뿐, 이 실시예에 의하여 본 발명의 기술 사상이 한정되는 것으로 해석되어서는 안된다. 본 발명의 기술 사상은 특허청구범위에 기재된 발명에 의해서만 특정되어야 한다. 따라서 본 발명의 기술 사상을 벗어나지 않는 범위에서 전술한 실시예는 다양한 형태로 변형되어 구현될 수 있다는 것은 당업자에게 자명하다. The above description is only an embodiment of the present invention, and the technical idea of the present invention should not be construed as being limited by this embodiment. The technical idea of the present invention should be specified only by the invention described in the claims. Therefore, it will be apparent to those skilled in the art that the above-described embodiments may be implemented in various forms without departing from the spirit of the present invention.

도 1은 3D 비디오 코딩이 적용되는 FTV 시스템에서의 랜더링(rendering)의 일례를 보여 주는 도면이다.1 is a diagram illustrating an example of rendering in an FTV system to which 3D video coding is applied.

도 2의 (a)는 실제 영상의 일례인 MVC의 테스트 시퀀스의 하나인 'Breakdancers' 영상 시퀀스이고, 도 2의 (b)는 이 'Breakdancers' 영상 시퀀스의 깊이정보 맵 영상이다.FIG. 2A is a 'Breakdancers' video sequence, which is one of MVC test sequences, which is an example of an actual video, and FIG. 2B is a depth map image of the 'Breakdancers' video sequence.

도 3a 및 도 3b는 각각 도 2의 영상에서 이미지정보의 레벨 분포와 깊이정보의 레벨 분포를 보여주기 위한 그래프이다.3A and 3B are graphs for illustrating the level distribution of image information and the level distribution of depth information in the image of FIG. 2, respectively.

도 4a는 객체의 경계를 포함하는 깊이정보 맵 블록에 대한 깊이정보 그래프이고, 도 4b는 배경 부분에서의 깊이정보 맵 블록에 대한 깊이정보 그래프이다.4A is a depth graph of a depth map block including a boundary of an object, and FIG. 4B is a depth graph of a depth map block in a background part.

도 5의 (a)와 (b)는 각각 도 2의 (a)의 실제 영상과 도 2의 (b)의 깊이정보 맵 영상을 비트플레인 단위로 표현한 도면이고, 도 5의 (c)는 (b)의 깊이정보 맵 영상에 대하여 그레이코딩을 수행하여 비트플레인 단위로 도시한 것이다.5A and 5B are diagrams representing the real image of FIG. 2A and the depth map image of FIG. 2B, respectively, in bit plane units, and FIG. This is shown in units of bit planes by performing gray coding on the depth map image of b).

도 6의 (a)는 도 2의 (b)의 깊이정보 맵의 일부이고, 도 6의 (b), (c), 및 (d)는 각각 도 6의 (a)의 깊이정보 맵에서 임의로 선택된 블록과 이 비트플레인 블록들을 그레이코딩한 비트플레인 블록들을 보여 주는 도면이다.6 (a) is a part of the depth map of FIG. 2 (b), and FIGS. 6 (b), 6 (c) and 6 (d) are each arbitrarily selected from the depth map of FIG. The figure shows the selected block and the bitplane blocks greyed out these bitplane blocks.

도 7은 인접 레벨의 비트에 대한 비트플레인과 상관관계가 거의 없는 비트플레인 블록의 일례를 보여 주기 위한 도면이다.FIG. 7 illustrates an example of a bitplane block having little correlation with bitplanes for bits of adjacent levels.

도 8은 본 발명의 일 실시예에 따른 적응적 XOR 연산을 이용하는 깊이정보 맵의 비트플레인에 대한 인코딩 방법의 일례를 보여 주는 흐름도이다.8 is a flowchart illustrating an example of an encoding method for a bitplane of a depth map using an adaptive XOR operation according to an embodiment of the present invention.

도 9는 본 발명의 다른 실시예에 따른 인터 픽쳐에 대한 인코딩 방법의 일례를 보여 주는 흐름도이다.9 is a flowchart illustrating an example of an encoding method for an inter picture according to another embodiment of the present invention.

도 10은 본 발명의 일 실시예에 따른 깊이정보 맵 인코더의 구성을 보여 주는 블록도이다.10 is a block diagram showing the configuration of a depth map encoder according to an embodiment of the present invention.

도 11은 도 10에 도시된 깊이정보 맵 인코더에서 DCT 기반 코딩 모드와 비트플레인 코딩 모드 중에서 코딩 효율이 더 좋은 모드를 선택하는 방법의 일례를 보여 주는 흐름도이다.FIG. 11 is a flowchart illustrating an example of selecting a mode having a higher coding efficiency among a DCT based coding mode and a bitplane coding mode in the depth map encoder illustrated in FIG. 10.

도 12는 도 10의 깊이정보 맵 인코더의 비트율 조절부에서 비트율을 결정하는 방법의 일례를 보여 주는 흐름도이다.FIG. 12 is a flowchart illustrating an example of a method of determining a bit rate in a bit rate controller of the depth map encoder of FIG. 10.

도 13은 도 10의 깊이정보 맵 인코더의 XOR 연산부에서 XOR 연산을 수행할지를 결정하는 방법의 일례를 보여 주는 흐름도이다.FIG. 13 is a flowchart illustrating an example of a method of determining whether to perform an XOR operation in the XOR calculator of the depth map encoder of FIG. 10.

도 14는 도 10의 깊이정보 맵 인코더에서 비트플레인 인코딩부의 세부 구성의 일례를 보여 주는 블록도이다.FIG. 14 is a block diagram illustrating an example of a detailed configuration of a bitplane encoding unit in the depth map encoder of FIG. 10.

도 15는 인터 픽쳐를 위한 도 10의 비트플레인 인코딩부의 세부 구성의 일례를 보여 주는 블록도이다.FIG. 15 is a block diagram illustrating an example of a detailed configuration of a bitplane encoding unit of FIG. 10 for an inter picture.

도 16은 도 14 또는 도 15의 비트플레인 인코딩부의 CAE 인코딩부에서 참조 비트플레인을 구성하는 방법의 일례를 보여 주기 위한 도면이다.FIG. 16 is a diagram illustrating an example of a method of configuring a reference bitplane in the CAE encoding unit of the bitplane encoding unit of FIG. 14 or FIG. 15.

도 17은 도 10의 깊이정보 맵 인코더에서 비트플레인 디코딩부의 세부 구성의 일례를 보여 주는 블록도이다.FIG. 17 is a block diagram illustrating an example of a detailed configuration of a bitplane decoding unit in the depth map encoder of FIG. 10.

도 18은 본 발명의 일 실시예에 따른 깊이정보 맵 디코더의 구성을 보여 주 는 블록도이다.18 is a block diagram illustrating a configuration of a depth map decoder according to an embodiment of the present invention.

도 19는 인터 픽쳐를 위한 도 18의 비트플레인 디코딩부의 구성의 일례를 보여 주는 블록도이다. 19 is a block diagram illustrating an example of a configuration of a bitplane decoding unit of FIG. 18 for an inter picture.

도 20은 H.264/AVC를 이용한 기존 방법(Anchor)과 본 발명의 실시예에 따른 방법(Proposed)에서 비트율 대비 PSNR(Peak Signal-to-Noise Ratio)의 율-왜곡 곡선(Rate-Distortion(RD) curve)을 보여 주는 실험 결과의 일례이다.20 is a rate-distortion curve of a peak signal-to-noise ratio (PSNR) versus a bit rate in an existing method using H.264 / AVC and a method according to an embodiment of the present invention. RD) curve) is an example of the experimental results.

도 21은 H.264/AVC를 이용한 기존 방법(Anchor)과 본 발명의 실시예에 따른 방법(Proposed)에서 비트율 대비 PSNR의 율-왜곡 곡선을 보여 주는 실험 결과의 다른 예이다.21 is another example of an experimental result showing a rate-distortion curve of a PSNR versus a bit rate in an existing method using H.264 / AVC and a method according to an embodiment of the present invention.

도 22의 (a)는 'Breakdancers' 영상 시퀀스의 일부를 보여 주는 원본 깊이정보 맵 영상이고, 도 22의 (b)는 (a)를 기존의 방법(H.264/AVC)으로 인코딩하고 디코딩하여 복원한 깊이정보 맵 영상이며, 도 22의 (c)는 (a)를 본 발명의 실시예에 따라서 인코딩하고 디코딩하여 복원한 깊이정보 맵 영상이다.(A) of FIG. 22 is an original depth map image showing a part of a 'Breakdancers' image sequence, and FIG. 22 (b) encodes and decodes (a) by the conventional method (H.264 / AVC). It is a reconstructed depth map image, and FIG. 22C is a depth map image obtained by encoding and decoding (a) according to an embodiment of the present invention.

Claims (44)

삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete N비트로 표현되는 깊이정보 맵 블록을 디코딩하는 방법에 있어서,In the method for decoding a depth map block represented by N bits, 각 비트플레인 블록에 대한 블록 모드 정보에 따라서 디코딩을 수행하여 n(≤N)개의 비트플레인 블록을 복원하는 단계;Restoring n (≤N) bitplane blocks by performing decoding according to block mode information for each bitplane block; 각 비트플레인 블록에 대한 배타적 논리합(XOR) 연산 정보에 따라서 상기 n개의 복원된 비트플레인 블록에 대하여 참조 비트플레인 블록과 적응적으로 XOR 연산을 수행하는 단계; 및Adaptively performing an XOR operation with the reference bitplane block on the n recovered bitplane blocks according to XOR operation information for each bitplane block; And 상기 XOR 연산이 수행되거나 및/또는 상기 XOR 연산이 수행되지 않은 상기 n개의 복원된 비트플레인 블록을 결합하는 단계를 포함하는 깊이정보 맵의 디코딩 방법.Combining the n recovered bitplane blocks in which the XOR operation is performed and / or in which the XOR operation is not performed. 제26항에 있어서, The method of claim 26, n이 N보다 작은 경우에, 상기 결합된 비트플레인 블록의 각 픽셀마다 (N-n)개의 하위 레벨의 비트를 추가하여 N비트로 표현되는 상기 깊이정보 맵 블록을 재구성하기 위한 재구성 단계를 더 포함하는 깊이정보 맵의 디코딩 방법.If n is less than N, depth information further includes a reconstruction step for reconstructing the depth map block represented by N bits by adding (Nn) lower level bits for each pixel of the combined bitplane block. Method of decoding the map. 제27항에 있어서,The method of claim 27, 상기 블록 모드 정보는 'all_0 모드', 'all_1 모드', 및'이진영상 코딩 모드' 중에서 하나인 깊이정보 맵의 디코딩 방법.And the block mode information is one of an 'all_0 mode', an 'all_1 mode', and a 'binary image coding mode'. 제27항에 있어서, The method of claim 27, 상기 블록 모드 정보는 'No Update Without MV 모드', 'all_0 모드', 'all_1 모드', 'No Update with MV 모드', 및 '이진영상 코딩 모드' 중에서 하나인 깊이정보 맵의 디코딩 방법.The block mode information is a decoding method of a depth map, which is one of 'No Update Without MV mode', 'all_0 mode', 'all_1 mode', 'No Update with MV mode', and 'binary image coding mode'. 제28항 또는 제29항에 있어서,The method of claim 28 or 29, 상기 이진영상 코딩 모드는 컨텍스트 기반 산술 인코딩(Context-base Arithmetic Encoding, CAE) 기법을 나타내는 깊이정보 맵의 디코딩 방법.The binary image coding mode is a method of decoding a depth map representing a context-based arithmetic encoding (CAE) technique. 제30항에 있어서, 31. The method of claim 30, 상기 CAE 기법을 수행하기 위한 참조 비트플레인은, 현재 깊이정보 맵 블록에 인접한 참조 깊이정보 맵 블록들 각각에 대하여 비트플레인 분리를 수행하여 생성된 M개의 비트플레인 블록들 중에서, 현재 비트플레인 블록과 동일한 레벨의 비트에 대한 비트플레인 블록에 대하여 적응적으로 XOR 연산을 수행하여 출력되는 비트플레인 블록들을 이용하여 생성되는 깊이정보 맵의 디코딩 방법.The reference bitplane for performing the CAE scheme is the same as the current bitplane block among M bitplane blocks generated by performing bitplane separation on each of the reference depth map blocks adjacent to the current depth map block. A method of decoding a depth map generated using bitplane blocks output by performing an XOR operation adaptively on a bitplane block for a bit of a level. 제31항에 있어서,The method of claim 31, wherein 상기 현재 비트플레인 블록의 XOR 연산 정보가 XOR 연산을 수행하는 것을 지시할 경우에만, 상기 참조 비트플레인을 생성하는 과정에서 XOR 연산을 수행하는 깊이정보 맵의 디코딩 방법.And performing an XOR operation in generating the reference bitplane only when the XOR operation information of the current bitplane block indicates to perform an XOR operation. 제31항에 있어서,The method of claim 31, wherein 상기 참조 깊이정보 맵 블록은 상기 재구성 단계에서 재구성된 깊이정보 맵 블록이거나 또는 디씨티 기반 디코딩 기법을 이용하여 재구성된 깊이정보 맵 블록 인 깊이정보 맵의 디코딩 방법.And the reference depth map block is a depth map block reconstructed in the reconstruction step or a depth map block reconstructed using a DC-based decoding technique. 제27항 또는 제28항에 있어서,The method of claim 27 or 28, 상기 이진영상 코딩 모드는 런 길이 코딩 방법과 가변 길이 코딩 방법을 결합하는 기법, 컨텍스트 기반 적응적 이진 산술 코딩(Context-based Adaptive Binary Arithmetic Coding, CABAC) 기법, JBIG(Joint Bi-level Image processing Group) 기법, 및 쿼드 트리(Quad Tree) 기법 중에서 어느 하나의 기법을 나타내는 깊이정보 맵의 디코딩 방법.The binary image coding mode includes a combination of a run length coding method and a variable length coding method, a context-based adaptive binary arithmetic coding (CABAC) technique, and a joint bi-level image processing group (JBIG). A method of decoding a depth map representing any one of a technique, and a quad tree technique. 제26항에 있어서,The method of claim 26, 상기 참조 비트플레인 블록은 현재 비트플레인 블록보다 한 단계 상위 레벨의 비트에 대한 재구성된 비트플레인 블록인 깊이정보 맵의 디코딩 방법.And the reference bitplane block is a reconstructed bitplane block for bits one level higher than the current bitplane block. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020090088228A 2009-03-11 2009-09-17 Block-based depth map coding method and apparatus and 3D video coding method using the method KR101076876B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/721,288 US8798158B2 (en) 2009-03-11 2010-03-10 Method and apparatus for block-based depth map coding and 3D video coding method using the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20090020917 2009-03-11
KR1020090020917 2009-03-11

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020110081402A Division KR101529903B1 (en) 2009-03-11 2011-08-16 Block-based depth map coding method and apparatus and 3D video coding method using the method

Publications (2)

Publication Number Publication Date
KR20100102516A KR20100102516A (en) 2010-09-24
KR101076876B1 true KR101076876B1 (en) 2011-10-26

Family

ID=43007592

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020090088228A KR101076876B1 (en) 2009-03-11 2009-09-17 Block-based depth map coding method and apparatus and 3D video coding method using the method
KR1020110081402A KR101529903B1 (en) 2009-03-11 2011-08-16 Block-based depth map coding method and apparatus and 3D video coding method using the method

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020110081402A KR101529903B1 (en) 2009-03-11 2011-08-16 Block-based depth map coding method and apparatus and 3D video coding method using the method

Country Status (1)

Country Link
KR (2) KR101076876B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2783509A4 (en) * 2011-11-25 2016-06-22 Thomson Licensing Method and apparatus for generating a bitstream of repetitive structure discovery based 3d model compression
WO2014014276A1 (en) * 2012-07-17 2014-01-23 한국전자통신연구원 In-loop filtering method and apparatus using same
WO2014107029A1 (en) * 2013-01-02 2014-07-10 엘지전자 주식회사 Video signal processing method and device
KR102385365B1 (en) * 2017-07-21 2022-04-12 삼성전자주식회사 Electronic device and method for encoding image data in the electronic device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2326223T3 (en) * 2004-06-07 2009-10-05 Agency For Science, Technology And Research SYSTEMS AND PROCEDURES FOR CODING AND DECODING DATA SCALABLE.
KR101559763B1 (en) * 2008-07-02 2015-10-13 삼성전자주식회사 Method and apparatus for encoding and decoding image using separation of image based on bit location
KR20100083957A (en) * 2009-01-15 2010-07-23 삼성전자주식회사 Method and apparatus for coding depth map using bit-plane coding
KR20100083980A (en) * 2009-01-15 2010-07-23 삼성전자주식회사 Method and apparatus for adaptive block based depth map coding

Also Published As

Publication number Publication date
KR20100102516A (en) 2010-09-24
KR20110096112A (en) 2011-08-29
KR101529903B1 (en) 2015-06-17

Similar Documents

Publication Publication Date Title
KR102447472B1 (en) Video encoding apparatus for performing intra-prediction based on directionality of neighboring block, video decoding apparatus and video decoding method for performing the same
US8798158B2 (en) Method and apparatus for block-based depth map coding and 3D video coding method using the same
KR101947142B1 (en) Methods of decoding using skip mode and apparatuses for using the same
CN104041035B (en) Lossless coding and coherent signal method for expressing for composite video
JP4991699B2 (en) Scalable encoding and decoding methods for video signals
JP2019149847A (en) Image decoding device, image decoding method, image coding device, image coding method, and data structure of coded data
KR20130045149A (en) Method and apparatus for encoding intra prediction information
CA3123520C (en) Image coding device, image decoding device, image coding method, and image decoding method
KR102005468B1 (en) Method and apparatus for generating reconstruction block
KR20130045155A (en) Image decoding apparatus
KR101076876B1 (en) Block-based depth map coding method and apparatus and 3D video coding method using the method
KR20100083980A (en) Method and apparatus for adaptive block based depth map coding
CN112889280B (en) Method and apparatus for encoding and decoding digital image/video material
KR20100102493A (en) Depth map coding method and apparatus using block-based adaptive bitplane coding
KR20180021733A (en) Method and apparatus for determining prediction of current block of enhancement layer
KR20100083957A (en) Method and apparatus for coding depth map using bit-plane coding
CN109891888A (en) Based on internal local inter-layer prediction method
KR20110087871A (en) Method and apparatus for image interpolation having quarter pixel accuracy using intra prediction modes
KR20190091431A (en) Method and apparatus for image interpolation having quarter pixel accuracy using intra prediction modes

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141006

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151007

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161010

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181002

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 9