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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/20—Logic 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/21—EXCLUSIVE-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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
- H04N19/21—Methods 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods 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
본 발명은 비디오 코딩(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
여기서, 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-
도 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
도 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,
이러한 깊이정보 맵에 고유한 특성은 깊이정보 맵 영상을 블록 단위로 검토하면 보다 구체적으로 파악할 수 있다. 도 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
현재 비트플레인과 참조 비트플레인 사이에 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
인트라 픽쳐에 대한 비트플레인 코딩 과정에서는, 예를 들어 해당 비트플레 인 블록 내의 모든 이진영상 값이 동일한지에 따라서 적응적으로 부호화를 수행할 수 있다. 이를 위하여, 먼저 비트플레인 블록 내의 모든 이진영상 값이 동일한지를 판단한다(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 (
계속해서, 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
먼저, 현재 비트플레인 블록의 움직임 벡터(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
반면, 단계 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
반면, 오차(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
반면, 비트플레인 인코딩 유닛(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
따라서 본 실시예에 따른 깊이정보 맵 인코더(100)는 이러한 코딩 모드를 선택하기 위한 유닛(전기회로 또는 소프트웨어 프로그램 등과 같은 모드 선택 유닛)을 포함한다. 도 11은 깊이정보 맵 인코더(100)의 모드 선택 유닛(도시하지 않음)에서 DCT 기반 코딩(도 10의 A 유닛에서의 인코딩) 모드와 비트플레인 코딩(도 10 의 B 유닛에서의 인코딩) 모드 중에서 코딩 효율이 더 좋은 모드를 선택하는 방법의 일례를 보여 주는 흐름도이다.Therefore, the
도 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
여기서, 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
계속해서 도 10을 참조하면, 본 발명의 일 실시예에 따른 깊이정보 맵 인코더(100)는 DCT 기반 인코딩 유닛(A)의 일례로 H.264/AVC에 따른 인코딩 유닛을 포함한다. 이하에서는 DCT 기반 인코딩 유닛(A)에서의 부호화 과정의 일례로 H.264/AVC 인코딩 유닛에서의 부호화 과정에 대해서 설명하지만, 이것이 다른 동영상 코덱에 따른 인코딩 유닛이 DCT 기반 인코딩 유닛(A)이 될 수 있다는 것을 배제하는 것은 아니라는 것은 전술한 바와 같다.10, the
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
(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
(3) 엔트로피 코딩부(114)에서 엔트로피 코딩을 수행하여 출력되는 부호화된 데이터는 멀티플렉서(multiplexer, 160)로 입력되며, 멀티플레서(160)는 다른 정보/데이터와 함께 부호화된 데이터를 비트스트림으로 출력한다.(3) Encoded data output by performing entropy coding in the
(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
계속해서 도 10을 참조하면, 본 발명의 일 실시예에 따른 깊이정보 맵 인코더(100)는 적응적 XOR 연산을 이용하여 비트플레인 단위로 부호화를 수행하기 위한 비트플레인 인코딩 유닛(B)을 포함한다. 비트플레인 인코딩 유닛(B)으로 입력되는 데이터는 깊이정보 맵(예컨대, 영상 포맷 4:0:0)으로서, MㅧN 크기의 블록 예컨대, 16ㅧ16 픽셀의 크기를 갖는 매크로블록 단위로 입력될 수 있다. 비트플레인 인코딩 유닛(B)에서는 비트플레인 블록들로의 분리(144) 이후에 도 8 또는 도 9를 참조하여 전술한 적응적 XOR 연산을 이용하는 비트플레인 인코딩 방법에 따라서 부호화가 수행될 수 있으며, 또한 비트율 조절(142)을 위한 과정이 추가로 수행될 수 있다. 이하, 비트플레인 인코딩 유닛(B)에서의 절차에 관하여 설명한다.10, the
(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
비트율 조절부(142)에서 비트율을 조절하는 방법은 특별한 제한이 없다. 예 를 들어, 깊이정보 맵이 N비트로 표현되는 경우에, 비트율 조절부(142)는 부호화의 대상이 되는 비트플레인 블록을 일부 비트(예컨대, 상위 n(≤N)개의 비트)만으로 제한함으로써 비트율을 조절할 수 있다. 이를 위하여, 비트율 조절부(142)는 입력되는 N비트로 표현되는 깊이정보 맵 블록에서 하위 (N-n)비트를 삭제하고 상위 n비트로 표현되는 깊이정보 맵 블록을 출력할 수 있다. The method of adjusting the bit rate in the
이 경우에, 부호화의 대상이 되는 비트플레인을 몇 개의 비트에 대한 것으로 할지는 임의로 결정되거나 또는 비트율에 영향을 미치는 다른 정보, 예컨대 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
도 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
도 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
(3) XOR 연산부(146)는 비트플레인 분리부(144)로부터 출력되는 n개의 비트플레인 블록들 중에서 전부 또는 일부의 비트플레인 블록에 대해서만 XOR 연산을 수행한다. 예를 들어, 도 8 또는 도 9를 참조하여 설명한 바와 같이, n개의 비트플레인 블록들 중에서 어떤 비트플레인 블록에 대해서 XOR 연산을 수행할지는 원래의 비트플레인 블록을 코딩할 경우에 발생하는 비트양과 XOR 연산을 수행한 후에 비트플레인 블록을 코딩할 경우에 발생하는 비트양을 비교함으로써 결정할 수 있는데, 본 실시예가 여기에만 한정되는 것은 아니다. 그리고 XOR 연산부(146)는 해당 비트플레인 블록에 대하여 XOR 연산이 수행되었는지를 지시하는 소정의 정보(예컨대, 'XOR 플래그' 등과 같은 XOR 연산 정보)를 생성하여 멀티플렉서(160)로 전달하며, 이 정보는 비트스트림에 포함되어 디코딩단으로 전송된다.(3) The
도 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 연산부(146)에서 XOR 연산을 수행할 경우에, 한 단계 상위 레벨의 비트플레인 블록을 참조 비트플레인으로 사용하거나 또는 한 단계 하위 레벨의 비트플레인 블록을 참조 비트플레인으로 사용하는 등, 참조 비트플레인을 결정하는 방법에도 특별한 제한이 없다. 예를 들어, 참조 비트플레인이 한 단계 상위 레벨의 비트플레인 블록인 경우에, XOR 연산부(146)는 현재 코딩할 비트플레인 블록과 한 단계 상위 레벨의 비트플레인 블록(즉, 직전에 코딩된 비트플레인 블록) 사이에서 픽셀마다 XOR 연산을 수행할 수 있다.When the XOR operation is performed by the
비트플레인 인코딩부(148)는 소정의 부호화 알고리즘을 이용하여 현재 비트플레인 블록에 대하여 부호화를 수행한다. 여기서, 현재 비트플레인 블록은 깊이정보 맵 블록에서 코딩을 수행할 비트플레인 블록을 의미하는데, XOR 연산부(146)에서 XOR 연산이 수행된 비트플레인 블록이거나 또는 XOR 연산부(146)를 거치지 않고 비트플레인 분리부(144)로부터 바로 입력되는 비트플레인 블록일 수 있다. 비트플레인 인코딩부(148)는 현재 영상이 인트라 픽쳐인지 또는 인터 픽쳐인지에 따라서 다른 방법으로 부호화를 수행하거나 또는 인트라 픽쳐나 인터 픽쳐 등의 종류에 상관없이 어느 하나의 방법만을 이용하여 부호화를 수행할 수도 있다. 이하, 전자의 경우에 대해서 설명한다.The
만일, 현재 영상이 인트라 픽쳐라면 도 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
도 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
도 14를 참조하면, 모드 결정부(1480)는 입력되는 현재 비트플레인 블록의 모드를 결정하기 위한 것이다. 예를 들어, 현재 비트플레인 블록의 픽셀값이 모두 '255(1)'이라면, 현재 비트플레인 블록의 모드는 이를 지시하는 소정의 블록 모드 정보, 예컨대 'all_1 모드'로 설정되고, 픽셀값이 모두 '0(0)'이라면 이를 지시하는 소정의 블록 모드 정보, 예컨대 'all_0 모드'로 설정될 수 있다. 이 경우에는 현재 비트플레인 블록에 대해서는 블록 모드 정보만이 인코딩되어 멀티플렉서(160)로 입력되어 비트스트림에 포함된다.Referring to FIG. 14, the
그리고 현재 비트플레인 블록의 픽셀값이 모두 같은 값이 아닌 경우에는, 현재 비트플레인 블록의 블록 모드 정보는 해당 비트플레인 블록을 부호화하는데 사용되는 소정의 '이진영상 코딩 기법'을 지시하는 값으로 설정될 수 있다. 예를 들어, 컨텍스트 기반 산술 코딩(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 인코딩부(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
도 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
도 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
만일 현재 비트플레인 블록의 모드가 '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
그리고 현재 비트플레인 블록의 모드가 '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
또한, 현재 비트플레인 블록의 모드가 '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
도 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
도 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
이상에서는 비트플레인 인코딩부(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
계속해서 도 10을 참조하면, 비트플레인 인코딩부(148)로부터 출력되는 정보와 데이터는 멀티플렉서(160)를 거쳐서 비트스트림으로 출력되는 한편, 후속되는 깊이정보 맵의 인코딩을 위하여 비트플레인 블록 단위로 다시 디코딩이 된다. 이를 위하여, 비트플레인 인코딩부(148)의 출력은 비트플레인 디코딩부(150)로 입력되어서 XOR 연산부(152), 비트플레인 결합부(154), 및 깊이정보 맵 구성부(156)를 거쳐서 최종적으로 재구성된 깊이정보 맵 블록이 출력된다. 이하, 이를 보다 상세하게 설명한다.10, the information and data output from the
비트플레인 디코딩부(150)에서는 전술한 비트플레인 인코딩부(148)의 과정과는 반대의 과정이 수행된다. 보다 구체적으로, 비트플레인 디코딩부(150)는 비트플레인 인코딩부(148)로부터 출력되는 인코딩된 데이터 및/또는 모드 정보를 이용하여 비트플레인 블록을 재구성한다. 재구성된 비트플레인 블록은 인코딩 단계에서 XOR 연산이 수행된 비트플레인 블록이거나 또는 XOR 연산이 수행되지 않은 비트플레인 블록일 수 있는데, 전자는 XOR 연산부(152)로 출력되지만 후자는 비트플레인 결합부(154)로 출력된다. In the
재구성된 비트플레인 블록을 생성할 수 있도록, 비트플레인 디코딩부(150)는 비트플레인 인코딩부(148)에 대응하는 구성을 갖는다. In order to generate a reconstructed bitplane block, the
예를 들어, 비트플레인 인코딩부(148)가 도 14에 도시된 것과 같은 구성을 포함하는 경우에, 비트플레인 디코딩부(150)도, 도 17에 도시된 것과 같은, MPEG-4 Part-2 Visual(ISO/IEC 14496-2)의 인트라 픽쳐에 대한 이진 형상 디코딩법을 응용하는 구성을 포함할 수 있다. 도 17은 이러한 비트플레인 디코딩부(150)의 세부 구성의 일례를 보여 주는 블록도이다.For example, if the
도 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
만일, 비트플레인 인코딩부(148)가 도 15에 도시된 것과 같은 구성을 포함하는 경우에, 비트플레인 디코딩부(150)도 MPEG-4 Part-2 Visual(ISO/IEC 14496-2)의 인터 픽쳐에 대한 이진 형상 디코딩법을 응용하는 구성을 포함할 수 있다. 이러한 비트플레인 디코딩부의 세부 구성의 일례에 대해서는 후술한다(도 19 참조). If the
계속해서 도 10을 참조하면, XOR 연산부(152)는 재구성된 비트플레인 블록에 대하여 XOR 연산을 수행한다. 이 경우에, 모든 재구성된 비트플레인 블록에 대하여 XOR 연산을 수행하는 것이 아니라, XOR 연산부(146)에서 XOR 연산을 수행한 비트플레인 블록에 대해서만 XOR 연산을 수행한다. 현재의 재구성된 비트플레인 블록이 XOR 연산부(146)에서 XOR 연산이 수행된 블록인지는 이를 지시하는 XOR 연산 정보, 예컨대 XOR 플래그로부터 알 수 있다.10, the
그리고 비트플레인 결합부(154)는 재구성된 비트플레인 블록들로부터 n비트 로 구성된 깊이정보 맵 블록을 복원한다. 상기 재구성된 비트플레인 블록은 비트플레인 디코딩부(150)로부터 직접 출력되는 재구성된 비트플레인 블록이거나 및/또는 XOR 연산부(152)에서 XOR 연산이 수행된 후에 출력되는 비트플레인 블록일 수 있다. The
또한, 깊이정보 맵 구성부(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
도 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
도 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
반면, 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
도 18을 참조하면, 깊이정보 맵 디코더(200)는 코딩 모드 정보에 따라서 비트플레인 디코딩 유닛(C)과 DCT 기반 디코딩 유닛(D) 중에서 어느 하나의 디코딩 유닛에서 복호화 과정을 수행함으로써 재구성된 깊이정보 맵 블록을 출력한다. 코딩 모드 정보는 비트스트림에 포함되어 있는데, 디멀티플렉서(demultiplexer, 210)는 입력되는 비트스트림에서 코딩 모드 정보를 먼저 디코딩한 다음, 이 코딩 모드 정보에 따라서 비트스트림을 비트플레인 디코딩 유닛(C) 또는 DCT 기반 디코딩 유닛(D)으로 분배한다. 예를 들어, 코딩 모드 정보가 '비트플레인 코딩'을 지시하는 경우에, 디멀티플렉서(210)로부터 출력되는 부호화된 데이터는 비트플레인 디코딩 유닛(C)에서 복호화 과정이 진행되는데, 그 구체적인 방법은 다음과 같다.Referring to FIG. 18, the
(1) 우선, 비트플레인 디코딩부(212)는 디멀티플렉서(210)로부터 부호화된 데이터를 입력 받아서 소정의 복호화 알고리즘을 수행함으로써, n개의 비트플레인 블록을 복원한다. 여기서, n개의 비트플레인 블록은 N개의 비트플레인 중에서 인코딩 단계에서 원하는 비트율을 얻기 위하여 실제 코딩된 비트플레인 블록의 개수를 가리킨다. 비트플레인 디코딩부(212)는 비트플레인 인코딩부(148, 도 10 참조)에 대응하는 구성을 가진다. (1) First, the
예를 들어, 비트플레인 디코딩부(212)는 도 17에 도시된 비트플레인 디코딩부(150)와 동일한 구성의 디코딩부를 포함할 수 있다. 이러한 구성의 비트플레인 디코딩부(212)는 인트라 픽쳐에 대한 CAE 디코딩 기법 및/또는 동일 레벨 블록 디 코딩 기법을 이용하여 인트라 픽쳐를 구성하는 블록의 비트플레인 블록을 복원할 수 있다. 또한, 비트플레인 디코딩부(212)는 인터 픽쳐를 구성하는 블록의 비트플레이 블록을 복원하기 위한 디코딩부도 포함할 수 있는데, 도 19는 인터 픽쳐를 위한 비트플레인 디코딩부(212)의 구성의 일례를 보여 주는 블록도이다.For example, the
도 19를 참조하면, 수신된 비트스트림은 디멀티플렉서(210)에서 디멀티플렉싱되며, 그 결과 현재 비트플레임 블록의 모드 정보, 움직임 벡터(MV), CAE 인코딩된 비트스트림 등이 비트플레인 디코딩부(212)로 입력된다. 비트플레인 디코딩부(212)는 입력되는 데이터 중에서 모드 정보에 기초하여 디코딩을 수행하여, 비트플레인 블록들을 복원한다.Referring to FIG. 19, the received bitstream is demultiplexed by the
만일, 모드 정보가 'No Update Without MV' 모드이면, 움직임 보상부(2126)는 움직임 벡터 예측값(MVp)을 움직임 벡터로 하여 움직임 보상을 수행하며, 그 결과로서 움직임 보상된 비트플레인 블록, 즉 움직임 벡터 예측값(MVp)에 대응하는 참조 비트플레인 블록을 복원된 비트플레인 블록으로 출력한다. 그리고 움직임 벡터 예측값(MVp)은 여러 가지 방법을 이용하여 결정될 수 있는데, 비트플레인 인코딩부(148, 도 10 참조)에서 움직임 벡터 예측값(MVp)을 결정할 때 사용한 방법과 같은 방법을 사용할 수 있다. If the mode information is 'No Update Without MV' mode, the
만일 모드 정보가 '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
움직임 보상이나 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
(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
(3) 비트플레인 결합부(216)는 비트플레인 디코딩부(212)로부터 출력되는 비트플레인 블록 및/또는 XOR 연산부(214)로부터 출력되는 비트플레인 블록을 결합하여, 각 픽셀이 n비트로 표현되는 깊이정보 맵 블록을 생성한다. (3) The
(4) 그리고 깊이정보 맵 구성부(218)는 비트플레인 결합부(216)로부터 출력되는 n비트의 깊이정보 맵 블록으로부터 실제 깊이정보 맵의 비트수(N개)의 깊이정보 맵 블록을 생성한다. 예를 들어, 깊이정보 맵 구성부(218)는 n비트의 깊이정보 맵 블록의 픽셀 각각에 (N-n)개의 하위 비트를 추가함으로써, 즉 (N-n)개의 비트플레인 블록을 하위 레벨의 비트에 대한 비트플레인 블록으로써 추가함으로써, N비트의 깊이정보 맵 블록을 구성할 수 있다. 이 경우에, 추가되는 하위 비트는 미리 결정된 임의의 값, 예컨대 모두 '0'이 될 수 있지만(즉, 추가되는 (N-n)개의 비트플레인 블록들 각각은 모든 픽셀의 값이 '0'이다), 여기에만 한정되는 것은 아니다.(4) The depth
또는, 깊이정보 맵 구성부(218)에서는 비트스트림에 포함되어 있는 소정의 정보, 즉 추가되는 (N-n)개의 비트플레인 블록에 대한 정보를 이용할 수도 있다. 예를 들어, 상기 정보에 의하여 지시되는 내용에 따라서 추가되는 (N-n)개의 비트 플레인 블록의 픽셀값을 모두 '0(0)'으로 하거나 또는 모두 '255(1)'로 하거나 또는 인접한 비트플레인 블록을 이용하는 패딩법 등의 방법으로 픽셀값을 결정할 수도 있다.Alternatively, the depth
(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
계속해서 도 18을 참조하면, 코딩 모드 정보가 'DCT 기반 코딩'을 지시하는 경우에, 디멀티플레서(210)로부터 출력되는 부호화된 데이터는 DCT 기반 디코딩 유닛(D)에서 복호화 과정이 진행되는데, 그 구체적인 방법은 다음과 같다. DCT 기반 디코딩 유닛(D)에서는 먼저 예측 블록을 생성한 후에, 이 예측 블록을 입력받은 비트스트림을 디코딩하여 구한 잔여 블록과 더함으로써, 재구성된 깊이정보 맵 블록을 생성한다. 이를 간략히 설명하면 다음과 같다.18, when the coding mode information indicates 'DCT-based coding', the coded data output from the
(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
(2) 엔트로피 디코딩부(220)는 디멀티플렉서(210)로부터 입력되는 비트스트림을 확률 분포에 따라 엔트로피 디코딩을 수행함으로써 양자화된 계수를 출력한다. (2) The
(3) 그리고 역양자화부(222)는 엔트로피 디코딩부(220)로부터 출력되는 양자화된 계수에 대하여 역양자화 과정을 수행하여 변환된 계수를 출력하며, 역변환부(224)는 상기 변환된 계수에 대하여 역변환 과정을 수행함으로써 잔여 블록을 생성한다. 가산기(226)는 역변환부(224)로부터 출력되는 잔여 블록과 인트라 예측부(228) 또는 움직임 보상부(230)로부터 입력되는 예측 블록을 합산하여, 재구성된 블록을 출력한다. 상기 재구성된 블록은 비트플레인 디코딩 유닛(C)에서 비트플레인 디코딩을 수행하기 위한 참조 블록으로 입력되거나 및/또는 디블록킹 필터부(232)에서 디블록킹 필터링 과정을 수행한 다음에 영상 버퍼(240)의 재구성된 영상 버퍼에 저장되거나 및/또는 재구성된 깊이정보 맵 블록으로 출력된다.(3) The
전술한 본 발명의 실시예에 따른 블록 기반 깊이정보 맵의 코딩 방법의 효과를 검증하기 위하여, 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.
도 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)
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 |
---|---|---|---|
KR1020090020917 | 2009-03-11 | ||
KR20090020917 | 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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101883532B1 (en) * | 2011-11-25 | 2018-07-30 | 톰슨 라이센싱 | 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 |
KR20150116840A (en) * | 2013-01-02 | 2015-10-16 | 엘지전자 주식회사 | 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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE430407T1 (en) * | 2004-06-07 | 2009-05-15 | Agency Science Tech & Res | SYSTEMS AND METHODS FOR THE SCALABLE CODING AND DECODING OF DATA |
KR101559763B1 (en) * | 2008-07-02 | 2015-10-13 | 삼성전자주식회사 | Method and apparatus for encoding and decoding image using separation of image based on bit location |
KR20100083980A (en) * | 2009-01-15 | 2010-07-23 | 삼성전자주식회사 | Method and apparatus for adaptive block based depth map coding |
KR20100083957A (en) * | 2009-01-15 | 2010-07-23 | 삼성전자주식회사 | Method and apparatus for coding depth map using bit-plane coding |
-
2009
- 2009-09-17 KR KR1020090088228A patent/KR101076876B1/en active IP Right Grant
-
2011
- 2011-08-16 KR KR1020110081402A patent/KR101529903B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20110096112A (en) | 2011-08-29 |
KR20100102516A (en) | 2010-09-24 |
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 | |
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 | |
KR102005468B1 (en) | Method and apparatus for generating reconstruction block | |
KR20130045155A (en) | Image decoding apparatus | |
JP2010534015A (en) | Image processing method and corresponding electronic device | |
CA3123520A1 (en) | Image coding device, image decoding device, image coding method, and image decoding method | |
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 | |
CN109891888A (en) | Based on internal local inter-layer prediction method | |
KR20100083957A (en) | Method and apparatus for coding depth map using bit-plane coding | |
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 |