KR100695142B1 - 적응적 2의 n 제곱 진트리 생성방법 및 이를 이용한 3차원 체적 데이터 부호화/복호화 방법 및 장치 - Google Patents

적응적 2의 n 제곱 진트리 생성방법 및 이를 이용한 3차원 체적 데이터 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
KR100695142B1
KR100695142B1 KR1020050012424A KR20050012424A KR100695142B1 KR 100695142 B1 KR100695142 B1 KR 100695142B1 KR 1020050012424 A KR1020050012424 A KR 1020050012424A KR 20050012424 A KR20050012424 A KR 20050012424A KR 100695142 B1 KR100695142 B1 KR 100695142B1
Authority
KR
South Korea
Prior art keywords
node
data
encoding
volume
information
Prior art date
Application number
KR1020050012424A
Other languages
English (en)
Other versions
KR20060042947A (ko
Inventor
이신준
한만진
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to EP05251374A priority Critical patent/EP1574996A3/en
Priority to JP2005064221A priority patent/JP4759291B2/ja
Priority to CN200510076254.2A priority patent/CN1681330B/zh
Priority to US11/073,686 priority patent/US7925103B2/en
Publication of KR20060042947A publication Critical patent/KR20060042947A/ko
Application granted granted Critical
Publication of KR100695142B1 publication Critical patent/KR100695142B1/ko
Priority to US12/662,555 priority patent/US8027545B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Abstract

본 발명은 3차원 체적 데이터 부호화/복호화 방법 및 장치에 관한 것으로서, 그 부호화 방법은 3차원 체적 데이터를, 노드에 소정의 라벨이 부여된 적응적 8진트리 데이터로 변환하는 단계; 그 라벨을 참조하여 적응적 8진트리의 노드를, 자식노드 상호간에 우선순위가 부여된 너비우선 탐색 방식(modified BFS)에 의해 루트 노드에서부터 단말노드까지 부호화하는 단계; 및 소정의 헤더 정보와 부호화된 노드데이터를 비트스트림으로 생성하는 단계를 포함함을 특징으로 하고, 그 복호화 방법은 비트스트림으로부터 적어도 객체의 해상도 정보를 포함하는 헤더정보를 추출하여 복호화하는 단계; 헤더의 해상도 정보를 이용하여 노드의 수를 계산하고, 자식노드 상호간에 우선순위가 부여된 너비우선 탐색 방식(modified BFS)에 의해 루트 노드에서부터 단말노드까지 트리의 각 노드를 복호화하는 단계; 및 복호화된 노드를 이용하여 적응적 트리를 복원하는 단계를 포함함을 특징으로 한다.
본 발명에 의하면, 방대한 양의 3차원 체적 데이터를 고효율로 부호화할 수 있고, 고정된 해상도의 체적 데이터뿐만 아니라 임의의 해상도의 체적 데이터도 고효율로 부호화할 수 있어, 적은 데이터의 양으로 고화질의 3차원 체적 데이터를 복원할 수 있다. 또한, 점진적인 비트스트림을 생성하므로 디코딩시에 3차원 체적 데이터를 점진적으로 보여줄 수 있는 특징이 있다.

Description

적응적 2의 n 제곱 진트리 생성방법 및 이를 이용한 3차원 체적 데이터 부호화/복호화 방법 및 장치{Adaptive nth power of 2 n-ary tree generating method, and method and apparatus for encoding and decoding 3D volume data using it}
도 1은 3차원 물체를 둘러싸는 육면체의 각 면에서 보여지는 참조영상들을 도시한 것이다.
도 2는 3차원 물체의 표면을 구성하는 포인트들을 한 평면에 투영하여 평면의 각 깊이 라인을 따라 나열한 것을 도시한 것이다.
도 3은 트리 구조에서 부모, 자식 관계를 보여준다.
도 4는 8진 트리의 경우 부모 노드를 같은 크기를 갖는 8개의 자식 노드로 나누는 순서의 일례를 도시한 것이다.
도 5와 도 6은 적응적 8진트리의 개념을 보다 용이하게 설명하기 위한, 적응적 4진트리들을 도시한 것이다.
도 7A는 본 발명에 의한 3차원 체적 데이터 부호화 장치의 구성을 블록도로 도시한 것이다.
도 7B는 본 발명에 의한 3차원 체적 데이터 부호화 방법을 흐름도로 도시한 것이다.
도 8은 상기 적응적 8진트리 변환부(720)의 세부 구성을 블록도로 도시한 것이다.
도 9는 도 5 (c)에 도시된 4진트리의 노드들의 부호화를 위한 노드 방문 순서를 도시한 것이다.
도 10은 도 6(c)에 도시된 4진트리의 노드들의 부호화를 위한 노드 방문 순서를 도시한 것이다.
도 11은 노드부호화부의 세부 구성을 블록도로 도시한 것이다.
도 12는 루트노드를 S 노드로 부호화할 때, 그 하위 자식 노드들의 라벨을 도시한 것이다.
도 13은 체적소를 PPM 부호화할 때, 사용하는 컨텍스트(context)를 도시한 것이다.
도 14는 부호화된 결과 생성되는 비트스트림의 포맷을 도시한 것이다.
도 15는 본 발명에 의한 3차원 체적 데이터 복호화 장치를 블록도로 도시한 것이다.
도 16은 노드복호화부의 보다 상세한 내부 구성을 블록도로 도시한 것이다.
도 17은 S노드 복호화부의 세부 구성을 블록도로 도시한 것이다.
도 18은 P노드 복호화부의 세부 구성을 블록도로 도시한 것이다.
도 19는 본 발명에 의한 3차원 체적 데이터 복호화 방법을 흐름도로 도시한 것이다.
도 20은 노드 복호화부에서의 노드 복호화 과정을 흐름도로 도시한 것이다.
도 21a 및 도 21b는 3 x 4 의 해상도에서의 적응적 8진트리 복원의 간단한 예를 도시한 것이다.
도 22는 본 발명에 의한 3차원 체적 데이터 부호화 및 복호화 방법 및 장치의 성능을 테스트에 이용되는 8개의 포인트텍스쳐 테스트 모델을 도시한 것이다.
도 23은 Angel 데이터에서 전송되는 비트스트림에 따른 왜곡 정도를 의미하는 RD 커브를 나타낸 것이다.
도 24는 Angel 데이터에 대한 전송되는 비트스트림에 따른 왜곡 정도를 화질로 표현한 것이다.
본 발명은 3차원 체적(Volume) 데이터 부호화 및 복호화에 관한 것으로서, 보다 상세하게는 포인트텍스쳐(PointTexture), 체적소(Voxel), 8진트리(Octree) 데이터 중 어느 하나로 이루어진 3차원 체적 데이터 부호화/복호화 방법 및 장치에 관한 것이다.
3차원 물체를 표현하는 방법 중 널리 사용되는 방법이 다각형 메쉬 모형(polygonal mesh model)을 사용하는 방법이다. 한편, 깊이영상기반 표현(DIBR) 방법은 3차원 물체를 다각형 메쉬 모델이 아닌 실제영상(real image)이나 조합영상(synthetic image)으로 구성된 참조영상 집합을 이용하여 표현하는 방법으로서 2003년에 MPEG-4 Animation Framework eXtension(AFX)에 표준으로 채택되었다. 참 조영상은 도 1에 도시된 바와 같이 3차원 물체를 둘러싸는 육면체의 각 면에서 보여지는 영상들로 구성된다. 각 참조영상에는 대응되는 색상영상(color image)과 깊이영상(depth image)이 존재하는데, 색상영상은 3차원 물체 표면의 각 포인트(point)의 색상을 나타내고, 깊이 영상은 각 면에서부터 3차원 물체 표면의 각 포인트까지의 거리 값을 나타낸다. 도 1에서는 각 면에서 보여지는 깊이 영상 6개와 색상 영상 6개로 총 12개의 참조 영상을 볼 수 있다.
DIBR 방법의 장점은 복잡한 다각형 메쉬 모델을 사용하지 않아도 된다는 점과 영상을 이용하기 때문에 높은 화질로 3차원 물체를 시각화할 수 있다는 점이다. DIBR을 위한 포맷(format)에는 세 가지가 있는데, 단순텍스쳐(SimpleTexture), 포인트텍스쳐(PointTexture), 8진트리영상 (OctreeImage) 포맷이 있다. 이 중 포인트텍스쳐 포맷은 도 2와 같이 3차원 물체를 한 평면에서 각 스캔 라인(scan line)으로 샘플링(sampling)하는 모든 포인트를 나열하여 표현한다. 포인트텍스쳐의 각 포인트는 색상과 깊이로 표현한다. 상기 깊이는 평면에서 포인트까지의 거리이다. 추가적으로 기타 포인트의 속성을 포함시킬 수 있다.
도 2와 같이 3차원 물체의 표면을 구성하는 포인트들을 한 평면에 투영하여 평면의 각 깊이 라인을 따라 나열할 수 있기 때문에 포인트텍스쳐 포맷은 일반적으로 다수의 계층으로 구성된다. 이러한 이유로 포인트텍스쳐 포맷은 여러 표면으로 구성되는 복잡한 3차원 물체를 표현할 수 있다는 장점을 갖는다. 하지만 높은 샘플링 밀도로 사실적으로 차원 물체를 표현해야 할 경우 데이터의 양이 커지게 되고, 따라서 이를 효율적으로 압축할 수 있는 방법이 필요하다. 그리고 포인트텍스쳐 포맷 데이터를 압축할 수 있는 방법이 필요하다.
종래의 압축 방법은 전송되는 정보의 양에 있어서 최적화할 필요성과 그 크기를 줄일 수 있는 여지가 있으며, 압축된 비트스트림(bitstream)을 복원할 때, 보다 자연스럽게 시각화하는 방법이 필요하다.
2003년 7월 MPEG 회의에서 MPEG-4 AFX 에서, PPM(Prediction by partial matching) 방법을 이용한 8진트리 압축 방법이 제안되었다. 이 방법은 점진적 비트스트림(Progressive bitstream)을 판독하여 복원할 때 매끄러운 시각화를 만들어내지 못한다. 그리고 이 방법에서는 8진트리 압축 방법을 사용하므로 체적 데이터의 해상도는 너비, 높이, 깊이의 값이 다 같아야 하는 고정된 해상도의 데이터만 압축할 수 있는 단점이 있다. 즉, 너비, 높이, 깊이가 각각 다른 임의의 해상도를 갖는 데이터에 대해서는 압축할 수가 없다.
따라서 임의의 해상도를 갖는 3차원 물체 데이터를 효과적으로 압축함은 물론 점진적인 전송 및 복원 시, 보다 자연스럽게 시각화하는 방법이 필요하다.
본 발명이 이루고자 하는 기술적 과제는 임의의 해상도를 갖는 3차원 체적 데이터를 부호화할 수 있게 하기 위해, 적응적 4진, 8진 및 2진트리 생성방법을 제공하는 것이다.
본 발명이 이루고자 하는 기술적 과제는 3차원 체적 데이터를 효율적으로 부호화하고 임의의 해상도를 갖는 3차원 체적 데이터를 부호화할 수 있는 기능과 점 진적인 압축(Progressive coding)을 가능하게 하는, 3차원 체적데이터 부호화 방법 및 장치를 제공하는 것이다.
본 발명이 이루고자 하는 다른 기술적 과제는 3차원 체적 데이터의 해상도에 상관 없이 임의의 해상도를 갖는 3차원 체적 데이터를 복호화할 수 있는 기능과 적응적 8진트리를 사용하여 점진적인 압축(Progressive coding)에 대한 복원을 가능하게 하는, 3차원 체적데이터 복호화 방법 및 장치를 제공하는 것이다.
상기 기술적 과제를 이루기 위한 본 발명에 의한 적응적 4진트리 생성방법은, (a) 2차원 데이터를 4개의 영역으로 구성되는 4진트리로 분할하는 단계; 및 (b) 상기 4진트리로 분할된 데이터 각각의 노드를 노드의 크기가 하나의 픽셀이 될 때까지 하위 4진트리로 분할하는 단계를 포함함을 특징으로 하고, 상기 (a)단계 및 (b)단계의 4진트리 분할은 상기 2차원 데이터의 가로 및 세로 픽셀 수가 짝수일 경우에는 반으로 나누고, 홀수일 경우에는 한 픽셀 차이나게 분할하되, 상기 4개의 분할된 영역 각각이 4개의 픽셀이 되지 않을 경우에는 가상의 픽셀을 부가하여 4개의 픽셀로 생성하고, 상기 한 픽셀 차이나는 분할은 좌우로 분할될 경우에는 좌우 중 항상 어느 한 쪽 편만이 한 픽셀 많게, 상하로 분할될 경우에는 상하 중 항상 어느 한 쪽 편만이 한 픽셀 많게 이루어진다.
상기 기술적 과제를 이루기 위한 본 발명에 의한 적응적 8진트리 생성방법은, (a) 3차원 데이터를 8개의 영역으로 구성되는 8진트리로 분할하는 단계; 및 (b) 상기 8진트리로 분할된 데이터 각각의 노드를 노드의 크기가 하나의 복셀이 될 때까지 하위 8진트리로 분할하는 단계를 포함함을 특징으로 하고, 상기 (a)단계 및 (b)단계의 8진트리 분할은 상기 3차원 데이터의 가로, 세로, 높이 각각의 복셀 수가 짝수일 경우에는 반으로 나누고, 홀수일 경우에는 한 복셀 차이 나게 분할하되, 상기 8개의 분할된 영역 각각이 8개의 복셀이 되지 않을 경우에는 가상의 복셀을 부가하여 8개의 복셀로 생성하고, 상기 한 복셀 차이나는 전후, 좌우, 상하 각 방향의 분할은 전후, 좌우, 상하 각 방향에서 항상 어느 한 쪽 편만이 한 복셀 많게 일정한 방향으로 이루어진다.
상기 기술적 과제를 이루기 위한 본 발명에 의한 적응적 2진트리 생성방법은, (a) n차원 데이터를 2 개의 영역으로 구성되는 2 진트리로 분할하는 단계; 및 (b) 상기 2진트리로 분할된 데이터 각각의 노드를 노드의 크기가 하나의 단위체가 될 때까지 하위 2진트리로 분할하는 단계를 포함함을 특징으로 하고, 상기 (a)단계 및 (b)단계의 2진트리 분할은 상기 n차원 데이터의 각 방향에서의 단위체 수가 짝수일 경우에는 반으로 나누고, 홀수일 경우에는 한 단위체 차이 나게 분할하되, 상기 2개의 분할된 영역 각각이 2개의 단위체가 되지 않을 경우에는 가상의 단위체를 부가하여 2개의 단위체로 생성하고, 상기 한 단위체 차이나는 각 방향의 분할은 각 방향에서 항상 어느 한 쪽 편만이 한 단위체 많게 일정한 방향으로 이루어진다.
상기 다른 기술적 과제를 이루기 위한 본 발명에 의한 3차원 체적 데이터 부호화 방법은, (a) 3차원 체적 데이터를, 노드에 소정의 라벨이 부여된 적응적 8진트리 데이터로 변환하는 단계; (b) 상기 라벨을 참조하여 상기 적응적 8진트리의 노드를, 자식노드 상호간에 우선순위가 부여된 너비우선 탐색 방식(modified BFS)에 의해 루트 노드에서부터 단말노드까지 부호화하는 단계; 및 (c) 소정의 헤더 정보와 상기 부호화된 노드데이터를 비트스트림으로 생성하는 단계를 포함함을 특징으로 한다.
상기 (a) 단계는 (a1) 3차원 체적데이터가 포인트텍스쳐 데이터이면, 3차원 바운딩 볼륨을 사용하여 체적소 데이터로 변환하는 단계; 및 (a2) 체적소 데이터 또는 옥트리 데이터에 대해 노드에 소정의 라벨이 부여된 적응적 8진트리로 변환하는 단계를 포함함이 바람직하다.
상기 (a2)단계에서 상기 노드에 소정의 라벨이 부여된 적응적 8진트리 데이터 변환은, 3차원 데이터를 8개의 영역으로 분할하여 8진트리로 생성하는 단계; 및 상기 8진트리의 각 노드에 소정의 라벨을 부여하면서 노드의 크기가 하나의 복셀이 될 때까지 상기 8진트리의 각 노드가 나타내는 3차원 영역을 8개의 영역으로 분할하되, 자식노드의 수가 8개가 아닌 경우에는 8개로 만들기 위해 가상의 체적소를 부가하고, 노드가 나타내는 3차원 영역을 구성하는 하위 체적소가 모두 객체가 없는 체적소로 구성되는 경우(W)와, 노드가 나타내는 3차원 영역의 하위 체적소가 객체가 있는 체적소로 구성되는 경우(B)에는 모든 하위 체적소가 객체가 있는 체적소로 임시 처리하고, 그 체적소에 해당하는 다음 DIB 정보에서 S노드 또는 P노드로 상세화됨을 특징으로 하고, 상기 분할은 상기 3차원 데이터의 너비, 높이, 깊이 각각을 상기 각 복셀 수가 짝수일 경우에는 반으로 나누고 홀수일 경우에는 한 복셀 차이 나게 분할하되, 전후, 좌우, 상하 각 방향에서 항상 어느 한 쪽 편만이 한 복셀 많게 일정한 방향으로 이루어진다.
상기 소정의 라벨은 상기 3차원 체적 데이터가 8진트리로 표현될 때, 상기 8진트리의 각 노드에 대해, 상기 노드가 나타내는 3차원 영역을 노드영역이라 할 때, 노드영역의 하위 체적소가 모두 객체가 없는 체적소로 구성되는 노드인 경우(W); 노드 영역의 하위 체적소가 객체가 있는 체적소로 구성되는 노드인 경우(B); 노드 영역의 하위 체적소들의 값이 PPM 알고리즘에 의해 부호화되는 노드인 경우(P); 라벨로 표시된 하위(sub)노드를 가지는 노드인 경우(S); 및 자식노드의 수가 8개가 아닌 경우 8개로 만들기 위해 부가된 가상의 체적소인 경우(E)를 구분하는 것임이 바람직하다. 상기 라벨이 E 인 노드는 부호화하지 않음이 바람직하다.
상기 (b)단계의 8진트리의 노드데이터 부호화는 S노드 부호화인지 P노드 부호화인지를 선택하여 그 부호화 종류정보(SOP)를 생성하는 단계; 상기 부호화종류정보가 S노드 부호화이면 S 노드의 상세정보를 부호화하는 단계; 및 상기 상기 부호화종류정보가 P노드 부호화이면 P노드의 상세정보를 부호화함이 바람직하다.
상기 S노드 상세 정보는 자식노드들의 색상정보 평균값; 및 자식노드들에 대한 존재유무를 나타내는 플래그 정보(Ch1 - Ch8)를 포함함이 바람직하다. 상기 색상정보 평균값은 DPCM 부호화 및 엔트로피 부호화됨이 바람직하다. 상기 플래그정보는 엔트로피 부호화됨이 바람직하다.
상기 P노드 상세정보는 해당 노드의 체적소들의 색상정보; 및 소정 개수의 컨텍스트를 사용하여 해당 노드의 체적소들의 깊이정보를 포함함이 바람직하다. 상기 색상정보는 DPCM 부호화 및 엔트로피 부호화됨이 바람직하다. 상기 깊이정보는 PPM 부호화됨이 바람직하다.
상기 (c)단계의 비트스트림은 3차원 객체에 대한 너비, 높이 및 깊이 정보로 이루어지는 해상도 정보를 포함하는 헤더; 및 부호화된 8진트리의 노드데이터를 포함이 바람직하다. 상기 헤더는 노드 부호화시 루트 노드부터 마지막 노드까지 모두 부호화하는 무손실부호화 및 시작 노드부터 특정 노드까지만 부호화하는 손실부호화를 나타내기 위한 복호화율(PercentOfDecoding) 정보를 더 구비함이 바람직하다. 상기 헤더는 깊이영상기반 표현 데이터의 버전 정보를 더 구비함이 바람직하다.
상기 다른 기술적 과제를 이루기 위한 본 발명에 의한 3차원 체적 데이터 부호화 장치는, 체적소 데이터 또는 옥트리 데이터에 대해 노드에 소정의 라벨이 부여된 적응적 8진트리로 변환하는 적응적 8진트리 변환부; 상기 라벨을 참조하여 상기 적응적 8진트리의 노드를, 자식노드 상호간에 우선순위가 부여된 너비우선 탐색 방식(modified BFS)에 의해 루트 노드에서부터 단말노드까지 부호화하는 노드부호화부; 및 상기 부호화된 노드데이터와 소정의 헤더 정보를 이용하여 비트스트림을 생성하는 비트스트림 생성부를 포함함을 특징으로 한다.
상기 부호화 장치는 3차원 체적데이터가 포인트텍스쳐 데이터이면, 3차원 바운딩 볼륨을 사용하여 체적소 데이터로 변환하는 체적소생성부를 더 구비함이 바람직하다.
상기 적응적 8진트리 변환부는 3차원 데이터를 8개의 영역으로 분할하여 8진트리로 생성하는 8진트리 생성부; 및 상기 8진트리의 각 노드에 소정의 라벨을 부여하면서 노드의 크기가 하나의 복셀이 될 때까지 상기 8진트리의 각 노드가 나타내는 3차원 영역을 8개의 영역으로 분할하되, 자식노드의 수가 8개가 아닌 경우에는 8개로 만들기 위해 가상의 체적소를 부가하고, 노드가 나타내는 3차원 영역을 구성하는 하위 체적소가 모두 객체가 없는 체적소로 구성되는 경우(W)와, 노드가 나타내는 3차원 영역의 하위 체적소가 객체가 있는 체적소로 구성되는 경우(B)에는 모든 하위 체적소가 객체가 있는 체적소로 임시 처리하고, 그 체적소에 해당하는 다음 DIB 정보에서 S노드 또는 P노드로 상세화됨을 특징으로 하고, 상기 분할은 상기 3차원 데이터의 너비, 높이, 깊이 각각을 상기 각 복셀 수가 짝수일 경우에는 반으로 나누고 홀수일 경우에는 한 복셀 차이 나게 분할하되, 전후, 좌우, 상하 각 방향에서 항상 어느 한 쪽 편만이 한 복셀 많게 일정한 방향으로 이루어진다.
상기 소정의 라벨은 상기 3차원 체적 데이터가 8진트리로 표현될 때, 상기 8진트리의 각 노드에 대해, 상기 노드가 나타내는 3차원 영역을 노드영역이라 할 때, 노드영역의 하위 체적소가 모두 객체가 없는 체적소로 구성되는 노드인 경우(W); 노드 영역의 하위 체적소가 객체가 있는 체적소로 구성되는 노드인 경우(B); 노드 영역의 하위 체적소들의 값이 PPM 알고리즘에 의해 부호화되는 노드인 경우(P); 라벨로 표시된 하위(sub)노드를 가지는 노드인 경우(S); 및 자식노드의 수가 8개가 아닌 경우 8개로 만들기 위해 부가된 가상의 체적소인 경우(E)를 구분하는 것임이 바람직하다. 상기 라벨이 E 인 노드는 부호화하지 않음이 바람직하다.
상기 노드 부호화부는 S노드 부호화할지 P노드 부호화할지를 선택하여 부호화 종류정보(SOP)를 생성하는 SOP정보선택부; 상기 부호화종류정보가 S노드 부호화이면 S 노드의 상세정보를 부호화하는 S노드 부호화부; 및 상기 부호화종류정보가 P노드 부호화이면 P노드의 상세정보를 부호화하는 P노드 부호화부를 포함함이 바람직하다. 상기 S노드 부호화부는 자식노드들의 색상정보 평균값; 및 자식노드들에 대한 존재유무를 나타내는 플래그 정보(Ch1 - Ch8)를 부호화함이 바람직하다. 상기 색상정보 평균값은 DPCM 부호화 및 엔트로피 부호화됨이 바람직하다. 상기 플래그정보는 엔트로피 부호화됨이 바람직하다. 상기 P노드 부호화부는 소정 개수의 컨텍스트를 사용하여 해당 노드의 체적소들의 깊이정보; 및 해당 노드의 체적소들의 색상정보를 부호화함이 바람직하다.상기 색상정보는 DPCM 부호화 및 엔트로피 부호화함이 바람직하다. 상기 깊이정보는 PPM 부호화함이 바람직하다.
상기 비트스트림 생성부는 3차원 객체에 대한 너비, 높이 및 깊이 정보로 이루어지는 해상도 정보를 포함하는 헤더; 및 부호화된 8진트리의 노드데이터를 비트스트림으로 생성함이 바람직하다. 상기 헤더는 노드 부호화시 루트 노드부터 마지막 노드까지 모두 부호화하는 무손실부호화 및 시작 노드부터 특정 노드까지만 부호화하는 손실부호화를 나타내기 위한 복호화율(PercentOfDecoding) 정보를 더 구비함이 바람직하다. 상기 헤더는 깊이영상기반 표현 데이터의 버전 정보를 더 구비함이 바람직하다.
상기 또 다른 기술적 과제를 이루기 위한 본 발명에 의한 3차원 체적 데이터 복호화 방법은, (a) 비트스트림으로부터 적어도 객체의 해상도 정보를 포함하는 헤 더정보를 추출하여 복호화하는 단계; (b) 상기 헤더의 해상도 정보를 이용하여 노드의 수를 계산하고, 자식노드 상호간에 우선순위가 부여된 너비우선 탐색 방식(modified BFS)에 의해 루트 노드에서부터 단말노드까지 트리의 각 노드를 복호화하는 단계; 및 (c) 상기 복호화된 노드를 이용하여 적응적 트리를 복원하는 단계를 포함함을 특징으로 한다.
상기 (a)단계의 해상도는 3차원 객체의 너비, 높이 및 깊이 데이터로 이루어짐이 바람직하다. 상기 (a)단계는 노드 복호화시 트리의 루트 노드부터 특정 노드까지만 복호화하는 손실복호화 정도 및 루트 노드부터 마지막 노드까지 모두 복호화하는 무손실복호화를 나타내는 복호화율(PercentOfDecoding) 정보를 추출하여 복호화는 단계를 더 구비함이 바람직하다.
상기 (a)단계는 비트스트림으로부터 적어도 객체의 해상도 정보 및 깊이영상기반표현 데이터의 버젼정보를 포함하는 헤더정보를 추출하여 복호화함이 바람직하다. 상기 (b)단계는 상기 해상도 정보를 이용하여 계산된 노드의 수와 상기 복호화율 정보를 이용하여 복호화할 노드의 수를 계산하고, 자식노드 상호간에 우선순위가 부여된 변형된 너비우선 탐색 방식(modified BFS)에 의해 루트 노드에서부터 시작하여 단말노드 방향으로 상기 복호화할 노드의 수만큼 트리의 노드를 복호화함이 바람직하다. 상기 변형된 너비우선 탐색방식은 우선순위 큐를 이용하여 상기 우선순위 큐에 복호화할 노드의 인덱스를 푸시(push) 및 팝(pop)함에 의해 이루어짐이 바람직하다. 상기 우선순위는 노드의 첫 번째 자식노드는 두 번째 자식노드보다 우선순위가 높고, 두 번째 자식노드는 세 번째 자식노드보다 높고, 동일한 방식으 로 마지막 자식노드가 우선순위가 가장 낮음이 바람직하다.
상기 (b)단계의 트리 노드의 복호화는 트리의 노드가 S노드 부호화인지 P노드 부호화인지를 나타내는 부호화 종류정보(SOP)를 복호화하는 단계; 상기 SOP가 S노드 부호화임을 나타내면, 상기 복호화하고자 하는 노드가 S 노드라고 판단하고 상기 S 노드를 복호화하는 단계; 및 상기 SOP가 P노드 부호화임을 나타내면, 상기 복호화하고자 하는 노드가 P 노드라고 판단하고 상기 P 노드를 복호화하는 단계를 포함함이 바람직하다. 상기 S노드 복호화는 상기 S노드의 색상정보를 엔트로피 복호화하는 단계; 상기 S 노드의 자식 노드들 모두에 대해 노드 라벨이 W 인지 B 인지 판단하는 단계; 상기 자식노드의 라벨이 W 이면, 서브트리노드의 수를 계산하여 상기 서브트리 노드의 수 만큼은 복호화를 하지 않고 건너뛰는 단계; 및 상기 자식노드의 라벨이 B 이면, 상기 우선순위 큐에 상기 자식노드의 인덱스를 푸시(push)하는 단계를 포함함이 바람직하다. 상기 P노드 복호화는 트리 노드의 인덱스로부터 너비, 높이, 깊이 데이터로 이루어지는 3차원 볼륨영역을 계산하는 단계; 및 상기 볼륨영역에 대해 복셀이 존재하는지 체크하여 복셀이 존재하면 상기 복셀의 색상정보를 엔트로피 복호화하는 단계를 포함함이 바람직하다.
상기 복호화 방법은 상기 복원된 적응적 트리 데이터를 복셀데이터로 변환하는 단계를 더 구비함이 바람직하다.
상기 또 다른 기술적 과제를 이루기 위한 본 발명에 의한 3차원 체적 데이터 복호화 장치는, 비트스트림으로부터 적어도 객체의 해상도 정보를 포함하는 헤더정보를 추출하여 복호화하는 헤더복호화부; 상기 헤더의 해상도 정보를 이용하여 노 드의 수를 계산하고, 자식노드 상호간에 우선순위가 부여된 너비우선 탐색 방식(modified BFS)에 의해 루트 노드에서부터 단말노드까지 트리의 각 노드를 복호화하는 노드복호화부; 및 상기 복호화된 노드를 이용하여 적응적 트리를 복원하는 적응적트리복원부를 포함함을 특징으로 한다.
상기 헤더의 해상도 정보는 3차원 객체의 너비, 높이 및 깊이 데이터로 이루어짐이 바람직하다. 상기 헤더 복호화부는 상기 헤더가 노드 복호화시 트리의 루트 노드부터 특정 노드까지만 복호화하는 손실복호화 정도 및 루트 노드부터 마지막 노드까지 모두 복호화하는 무손실복호화를 나타내는 복호화율(PercentOfDecoding) 정보를 더 구비할 때, 비트스트림으로부터 상기 복호화율 정보를 추출하여 복호화함이 바람직하다. 상기 헤더 복호화부는 비트스트림으로부터 적어도 객체의 해상도 정보 및 깊이영상기반표현 데이터의 버젼정보를 포함하는 헤더정보를 추출하여 복호화함이 바람직하다.
상기 노드복호화부는 상기 해상도 정보를 이용하여 계산된 노드의 수와 상기 복호화율 정보를 이용하여 복호화할 노드의 수를 계산하고, 자식노드 상호간에 우선순위가 부여된 변형된 너비우선 탐색 방식(modified BFS)에 의해 루트 노드에서부터 시작하여 단말노드 방향으로 상기 계산된 복호화할 노드의 수만큼 트리의 노드를 복호화함이 바람직하다. 상기 변형된 너비우선 탐색방식은 우선순위 큐를 이용하여 상기 우선순위 큐에 복호화할 노드의 인덱스를 푸시(push) 및 팝(pop)함에 의해 수행함이 바람직하다. 상기 우선순위는 노드의 첫 번째 자식노드는 두 번째 자식노드보다 우선순위가 높고, 두 번째 자식노드는 세 번째 자식노드보다 높고, 동일 한 방식으로 마지막 자식노드가 우선순위가 가장 낮음이 바람직하다.
상기 노드복호화부는 트리의 노드가 S노드 부호화인지 P노드 부호화인지를 나타내는 부호화 종류정보(SOP)를 추출하여 복원하는 SOP복원부; 상기 SOP가 S노드 부호화임을 나타내면, 상기 복호화하고자 하는 노드가 S 노드라고 판단하고 상기 S 노드를 복호화하는 S노드복호화부; 및 상기 SOP가 P노드 부호화임을 나타내면, 상기 복호화하고자 하는 노드가 P 노드라고 판단하고 상기 P 노드를 복호화하는 P노드복호화부를 포함함이 바람직하다. 상기 S노드 복호화부는 상기 S노드의 색상정보를 엔트로피 복호화하는 색상정보 복호화부; 상기 S 노드의 자식 노드들 모두에 대해 노드 라벨이 W 인지 B 인지 판단하는 WOB판단부; 상기 자식노드의 라벨이 W 이면, 서브트리노드의 수를 계산하여 상기 서브트리 노드의 수 만큼은 복호화를 하지 않고 건너뛰는 W노드처리부; 및 상기 자식노드의 라벨이 B 이면, 상기 우선순위 큐에 상기 자식노드의 인덱스를 푸시(push)하는 B노드처리부를 포함함이 바람직하다. 상기 P노드 복호화부는 트리 노드의 인덱스로부터 너비, 높이, 깊이 데이터로 이루어지는 3차원 볼륨영역을 계산하여 상기 영역내에 복셀이 존재하는지 검사하는 복셀PPM 복호화부; 및 상기 검사결과 복셀이 존재하면, 상기 복셀의 색상정보를 엔트로피 복호화하는 복셀색상복호화부를 포함함이 바람직하다.
상기 복호화 장치는 상기 복원된 적응적 트리를 이용하여 복셀데이터를 복원하는 복셀데이터복원부를 더 구비함이 바람직하다.
그리고 상기 기재된 발명을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이하, 첨부된 도면들을 참조하여 본 발명에 따른 포인트텍스쳐, 체적소, 8진트리의 데이터 중 어느 하나로 이루어진 3차원 체적 데이터 부호화/복호화 방법 및 장치에 대해 상세히 설명하기로 한다.
먼저, 본 발명에 의한 적응적 2진 트리 생성방법을 설명하기로 한다. n차원 데이터를 2 개의 영역으로 구성되는 2진트리로 분할한다. 그리고 나서 상기 2 진트리로 분할된 데이터 각각의 노드를 노드의 크기가 하나의 단위체가 될 때까지 하위 2진트리로 분할한다. 상기 2진트리 분할은 상기 n차원 데이터의 각 방향에서의 단위체 수가 짝수일 경우에는 반으로 나누고, 홀수일 경우에는 한 단위체 차이 나게 분할한다. 이 때, 상기 2개의 분할된 영역 각각이 2개의 단위체가 되지 않을 경우에는 가상의 단위체를 부가하여 2개의 단위체로 생성한다. 상기 한 단위체 차이나는 각 방향의 분할은 각 방향에서 항상 어느 한 쪽 편만이 한 단위체 많게 일정한 방향으로 이루어진다.
상기 적응적 2진 트리 생성방법의 일 예로 n=3일 경우, 즉 적응적 8진트리에 대해 설명한다. 적응적 8진트리를 생성하기 위해서는 우선 3차원 데이터를 8개의 영역으로 구성되는 8진트리로 분할한다. 상기 8진트리로 분할된 데이터 각각의 노드를 노드의 크기가 하나의 단위체, 즉 하나의 복셀이 될 때까지 하위 8진트리로 분할한다. 상기 8진트리 분할은 상기 3차원 데이터의 너비, 높이, 깊이 각각 의 복셀 수가 짝수일 경우에는 반으로 나누고, 홀수일 경우에는 한 복셀 차이 나게 분할한다. 이 때, 상기 8개의 분할된 영역 각각이 8개의 복셀이 되지 않을 경우에는 가상의 복셀을 부가하여 8개의 복셀로 생성한다. 그리고 상기 한 복셀 차이나는 전후, 좌우, 상하 각 방향의 분할은 전후, 좌우, 상하 각 방향에서 항상 어느 한 쪽 편만이 한 복셀 많게 일정한 방향으로 이루어진다.
도 3은 트리 구조에서 부모, 자식 관계를 보여준다. 도 3의 (a)는 4진트리(Quadtree)의 예이고, 도 3의 (b)는 8진트리의 예이다. 8진트리는 루트(Root) 노드 하나로부터 자식 노드 8개를 갖는데, 각 자식 노드는 하위의 또 다른 자식 노드 8개를 갖거나 아니면 단말 노드를 가질 수 있다.
상기 적응적 8진트리 생성을 보다 상세히 설명하면 다음과 같다. 상기 적응적 8진트리는 루트 노드(Root) 하나로부터 자식 노드(Child) 8개를 갖는데, 각 자식 노드는 하위의 또 다른 자식 노드 8개를 갖거나 아니면 단말 노드(Leaf)를 가질 수 있다. 이 노드들에는 5 종류의 라벨(Label)이 붙는다.
상기 적응적 8진트리는 통상의 8진트리와 그 구조가 비슷한데, 차이점은 중간노드에 라벨이 붙는다는 것이다. 상기 5가지의 라벨은 S 노드(Split), P 노드(PPM), B 노드(Black), W 노드(White), E 노드(Empty)로 정의된다.
상기 8진트리의 각 노드에 대해, 상기 노드가 나타내는 3차원 영역을 노드영역이라 할 때, 노드영역의 하위 체적소가 모두 객체가 없는 체적소로 구성되는 노드인 경우를 W 노드라 하고, 노드 영역의 하위 체적소가 모두 객체가 있는 체적소로 구성되는 노드인 경우는 B 노드라 한다. 그리고 노드 영역의 하위 체적소들의 값이 PPM 알고리즘에 의해 부호화되는 노드인 경우는 P노드라 하고, 라벨로 표시된 하위(sub)노드를 가지는 노드인 경우는 S 노드라 한다. 또한 자식노드의 수가 8개가 아닌 경우 8개로 만들기 위해 부가된 가상의 체적소인 경우에는 E노드라 한다. 표 1은 상기 8진트리 노드의 5가지 라벨을 나타내고 있다.
Figure 112005007905796-pat00001
3차원 객체에 대한 바운딩 볼륨이 객체를 포함하고 있으면, 루트노드는 S 노드로 표시되며, 볼륨은 8개의 하위 볼륨으로 세분된다. 세분된 볼륨이 White 체적소만 포함하고 있으면 상응하는 노드는 W 노드로 표시되고, 세분된 볼륨이 Black 체적소를 하나라도 포함하고 있으면 상응하는 노드는 임시로 B 노드로 표시된다. 세분된 볼륨이 White 체적소만 포함하거나 또는 PPM 부호화 된 것이 아니면, 그 노드는 S 노드로 설정된다. 즉 특성 노드가 S, W, B, P, E 등과 같은 라벨로 표시된 자식 노드를 가지면 그 노드의 라벨은 S로 설정한다. 상기 S노드의 볼륨은 8개의 더 작은 볼륨으로 다시 세분된다. 이 과정은 트리가 미리 설정된 깊이로 갈 때까지 반복된다. 이러한 깊이에서, 만일 특정 노드를 PPM 방식으로 부호화하는 것이 효율적일 경우는 라벨을 P로 설정한다.
한편 바운딩 볼륨을 8개의 볼륨으로 나눌 때, 한 축에서 길이를 동일한 크기로 반씩 나눌 수 없을 때에는 나눠지는 한쪽 방향을 다른 한쪽의 방향에 비해 한 체적소의 길이만큼 더 크게 규칙적으로 나눈다. 그런데 만일 다른 한쪽 즉, 한 체적소의 길이만큼 덜 나누는 부분에서 체적소의 공간이 없는 경우 즉 8진트리에서는 하위 체적소가 8개가 아닐 경우 빈 곳을 판단하여 빈 노드는 Empty 체적소라 정의하고, 상기 Empty 체적소의 라벨을 E 노드로 표시한다. 만일 어떤 노드가 E노드를 포함하면서 B 노드와 W 노드만으로 이루어진 경우에도, 상기 노드를 P 노드로 취급할 수 있으며, 그 체적소 값들을 PPM 방법에 의해 부호화할 수 있다.
8진 트리의 경우 부모 노드는 가능하면 같은 크기를 갖는 8개의 자식 노드로 나눈다. 부모 노드를 나눌 때의 순서는 도 4와 같이 앞 왼쪽-위, 앞 오른쪽-위, 앞 왼쪽-아래, 앞 오른쪽-아래, 뒤 왼쪽-위, 뒤 오른쪽-위, 뒤 왼쪽-아래, 뒤 오른쪽-아래로 정할 수 있다.
설명을 보다 용이하게 하기 위해서, 4진트리를 사용하여 구체적인 예를 들어 상술한 바를 설명하기로 한다. 도 5와 도 6은 적응적 8진트리의 개념을 보다 용이하게 설명하기 위한, 적응적 4진트리들을 도시한 것이다. 도 5의 (a)는 너비가 3이고 높이가 4인 2차원 이미지로서, 해상도가 3x4인 2차원 이미지에 대한 4진트리를 도시한 것이다. 색상이 없는 흰 픽셀(포인트)은 비어있는 픽셀을 나타내고 색상이 있는 체적소는 차있는 체적소를 나타낸다. 도 5의 (c)에서 색상이 있는 노드는 도 5의 (a)에서 같은 색상이 있는 체적소와 대응한다.
루트 노드에서 하위 4개의 노드로 세분할 때, 너비는 3이므로 한쪽은 2, 다른 한쪽은 1로 나누어진다. 높이는 4이므로 각각 2씩 나누어진다. 도 5 (c)의 적응적 4진트리에서 루트 노드가 S인 것은 하위 노드들이 객체를 포함하고 있기 때문이다. 루트 노드에서 바로 하위의 4개의 자식 노드들은 S, S, W, B 노드이다. 첫번째 노드와 두번째 노드가 S 노드인 것은 하위의 자식 노드로 픽셀의 정보를 표현하기 때문이다. 첫번째 S 노드의 자식 노드들은 W, B, B, B 노드로 도 5(b)의 좌상단 4개의 픽셀 영역에 해당한다. 두번째 S 노드의 자식 노드들은 W, E, B, E 노드로 도 5(b)의 우상단 4개의 픽셀 영역에 해당한다. B 노드는 픽셀이 차있는 것을 나타내고, W 노드는 픽셀이 비어있는 것을 나타낸다. 부호화 대상이 되는 정보는 B 노드와 W 노드로 표현되는 픽셀이다. E 노드는 픽셀의 공간이 없는 것을 나타내고, 부호화 대상에서는 빠지는 정보이다. 따라서 E 노드는 가상의 노드로서, 전체 바운딩 볼륨의 해상도 정보를 이용하여 그 위치를 알아낼 수 있는 노드이다. 도 5의 (b)에서 우상단에 4개의 픽셀에서 점선으로 표현된 2개의 픽셀이 E 노드로서, 원래의 도 5(a)에는 없는 영역이다. 이렇게 가상의 E 노드를 표현하는 것은 첫번째 S 노드가 하위의 4개의 자식 노드를 갖는 것처럼, 가상의 4진트리를 만들기 위한 것이다.
이와 마찬가지로, 적응적 8진트리에서도 S 노드에서 하위 8개의 자식노드를 표현하는데 있어서, 체적소의 공간이 있는 자식노드의 경우는 B 노드 또는 W 노드로 표시하고, 체적소의 공간이 없는 자식노드의 경우는 E 노드로 표시한다. 하위 8개의 자식노드로 공간을 나눌 때에 적응적 4진트리와 마찬가지로, 한쪽 방향을 다른쪽 방향에 비해 한 체적소의 길이만큼 더 크게 규칙적으로 나눈다. 즉, 3차원 체적 공간을 X, Y, Z의 3축으로 표현할 때에 -X 방향, -Y 방향, -Z 방향을 +X 방향, +Y 방향, +Z 방향보다 한 체적소의 길이만큼 더 할당한다. 그 반대의 경우도 가능하지만, 본 발명에서는 전자의 규칙을 사용하여, 전체 노드에 대해 동일한 규칙을 적용한다.
도 5(c)에서 루트 노드의 세번째 자식 노드인 W 노드는 도 5(b)의 좌하단의 4개의 픽셀 영역에 해당하는 것으로서, 모든 픽셀이 비어있기 때문에 W 노드로 표시한다. 도 5(c)의 루트 노드의 네번째 자식 노드인 B 노드는 도 5(b)의 우하단의 4개의 픽셀 영역에 해당하는 것으로서, 가상의 E 노드를 제외한 모든 픽셀이 차있기 때문에 B 노드로 표시한다. 도 6에서는 역시 적응적 트리의 예를 보여주는 것으로 도 6의 (a)는 해상도가 5x7인 2차원 이미지를 도시한 것이다. 도 6의 (b)에서는 X 축에서 3개 열의 포인트와 2개 열의 포인트 길이로 나누고, Y축에서는 4개 행의 포인트와 3개 행의 포인트 길이로 나눈다. 나눠지는 다른 쪽 부분보다 1 개의 포인트 길이만큼 적은 부분의 행과 열을 빈 노드인 E노드로 채울 수 있는 영역으로 판단한다. 이와 같은 방법을 이용함으로써 기존 방법과는 달리 352 x 288 x 15, 123 x 456 x 512 등과 같이 임의의 해상도를 갖는 3차원 물체데이터를 적응적 8진 트리로 구성할 수 있다. 도 6의 (c)는 상기 도 6의 (a)에 상응하는 적응적 4진 트리를 도시하고 있다.
다음으로 상술한 적응적 8진트리 생성방법을 이용하여 본 발명에 의한 3차원 객체 데이터 부호화 장치 및 방법을 설명한다. 도 7A은 본 발명에 의한 3차원 체적 데이터 부호화 장치의 구성을 블록도로 도시한 것으로서, 체적소 생성부(700), 적응적 8진트리변환부(720), 노드부호화부(740) 및 비트스트림 생성부(760)를 포함하여 이루어진다. 도 7B는 본 발명에 의한 3차원 체적 데이터 부호화 방법을 흐름도로 도시한 것이다.
상기 체적소 생성부(700)는 3차원 체적 데이터가 포인트 텍스쳐이면, 3차원 바운딩 볼륨을 사용하여 체적소 데이터로 변환한다.
MPEG-4 AFX(Animation Framework eXtension)에 표준으로 채택된 포인트 텍스쳐 포맷은 다음과 같다.
PointTexture {
field SFInt32 width 512 // 너비
field SFInt32 height 512 // 높이
field MFInt32 depth 512 // 깊이
field MFColor color 512 // 색상
field SFInt32 depthNbBits 7 //
깊이 해상도 정보 = 2depthNbBits+1
포인트 텍스쳐 데이터가 입력되면 상기 체적소 생성부(700)에 의해 체적소 데이터로 변환된다.(제70단계) 포인트텍스쳐의 깊이정보를 체적소 데이터로 변환하기 위해서는 먼저 바운딩 볼륨(Bounding volume)을 만든다. 바운딩 볼륨은 포인트텍스쳐와 같은 해상도를 가진다. 예를 들어 만일 포인트텍스쳐가 X x Y 해상도의 영상을 가지고, 각 픽셀의 깊이 정보의 해상도가 Z 이라면, X x Y x Z 바운딩 볼륨이 생성된다. 바운딩 볼륨의 원점은 정면의 좌측 하단 코너(Lower left front corner)에 위치한다. 오른쪽 체적소는 왼쪽 체적소보다 큰 x 값을 가지고, 상단 체적소는 하단 체적소보다 큰 y값을 가지고, 배면(Rear) 체적소는 정면 체적소보다 큰 z값을 가진다. 깊이 정보를 이진 볼륨 데이터로의 변환하는 것은 바로 할 수 있다. 볼륨 데이터의 모든 체적소는 White(0)로 초기화된다. 그리고 나서 체적소의 위치가 포인트텍스쳐에 있는 복셀에 의해 차있으면 체적소는 Black(1)으로 설정된다.
8진트리는 루트(Root) 노드 하나로부터 자식 노드 8개를 갖는데, 각 자식 노드는 하위의 또 다른 자식 노드 8개를 갖거나 아니면 단말 노드를 가질 수 있다. 노드는 Black 또는 White의 값을 가질 수 있는데, 단말 노드가 Black인 경우는 체적소가 차있는 경우이고, White인 경우는 체적소가 비어있는 경우이다. 단말 노드가 아닌 중간 노드에서 Black인 경우는 하위의 노드 중 체적소가 차있는 노드가 있다는 것을 나타내고, White인 경우는 하위의 모든 노드가 비어 있다는 것을 나타낸다. 이러한 8진트리는 3차원 체적 데이터를 나타내는데 쓰이는 전형적인 구조이다.
상기 적응적 8진트리 변환부(720)는 상기 체적소 데이터 또는 옥트리 데이터를 노드에 소정의 라벨이 부여된 적응적 8진트리로 변환한다. 포인트 텍스쳐로 표현된 3차원 객체 데이터가 상기 체적소생성부(700)에서 체적소로 변환되었거나 그대로 입력받은 옥트리 데이터를 입력으로 적응적 8진트리를 생성한다.(제72단계)
도 8은 상기 적응적 8진트리 변환부(720)의 세부 구성을 블록도로 도시한 것으로서, 8진트리 생성부(800) 및 적응적 8진트리 생성부(850)를 구비한다.
상기 8진트리 생성부(800)는 3차원 체적소 데이터를 입력으로 8개의 영역으로 분할하여 8진트리로 생성한다. 상기 적응적 8진트리 생성부(850)는 상기 8진트리의 각 노드에 소정의 라벨을 부여하면서 노드의 크기가 하나의 복셀이 될 때까지 8개의 영역으로 분할하여 소정의 라벨이 부여된 8진트리로 생성한다. 이 때, W 노드인 경우에는 그 체적소를 하위 8개의 영역분할을 통한 8진트리 생성을 중지한다.
상기 8개의 영역분할은 상기 3차원 데이터의 너비, 높이, 깊이 각각을 상기 각 복셀 수가 짝수일 경우에는 반으로 나누고 홀수일 경우에는 한 복셀 차이 나게 분할하되, 상기 8개의 분할된 영역 각각이 8개의 복셀이 되지 않을 경우에는 가상의 복셀을 부가하여 8개의 복셀로 생성한다. 그리고 상기 한 복셀 차이나는 전후, 좌우, 상하 각 방향의 분할은 전후, 좌우, 상하 각 방향에서 항상 어느 한 쪽 편만이 한 복셀 많게 일정한 방향으로 이루어진다. 상기 적응적 8진트리의 자세한 설명은 본 발명에 의한 적응적 8진트리 생성방법에서 상술한 바와 동일하므로 생략하기로 한다.
상기 노드부호화부(740)는 상기 적응적 8진트리 변환부(720)에서 생성된 적응적 8진트리의 노드를 노드의 라벨을 참조하여 부호화한다.(74단계) 상기 노드부호화부(740)에서 노드 부호화를 할 때에는 노드간의 부호화 순서는 변형된 너비우선탐색 방식(Modified Breadth First Search : 이하 MBFS라 한다)을 사용하여 정한다.
상기 MBFS을 사용한 부호화는 상기 적응적 8진 트리구조에서 상기 노드의 라벨을 참조하여 Top-down 방식으로 루트 노드에서부터 리프노드(leaf node)까지 너비우선탐색 방식으로 부호화하되, 자식노드 상호간에는 우선순위를 부여하여 상기 우선순위에 따라 부호화하는 방식이다. 여기서 라벨이 E 인 노드는 부호화하지 않는다. 상기 MBFS 방식에 의하면, 도 5 (c)에 도시된 4진트리의 노드들은 도 9에 도시된 순서로 노드를 방문하며, 이 순서에 따라 각 노드들을 부호화한다. 즉 자식노드 상호간에는 우선순위가 부여되는데, 여기서는 자식노드 간에는 좌측의 노드가 우선순위가 높도록 하였다. 그리고 E 노드는 방문하지 않는다. 마찬가지로 도 6(c)에 도시된 4진트리의 노드들은 도 10에 도시된 순서로 부호화한다.
상기 노드부호화부(740)는 도 11에 도시된 바와 같이 SOP정보생성부(1100), S노드부호화부(1120) 및 P노드부호화부(1140)로 이루어진다.
상기 SOP정보 생성부(1100)는 상기 MBFS 방식에 의해 정해진 노드를 S 노드로 부호화할지 또는 P 노드로 부호화할지를 선택하여 그 부호화 종류정보(SOP)를 생성한다. 즉, 상기 SOP정보생성부(1100)는 부호화할 노드를 S 노드로 부호화할지 P 노드로 부호화할지를 판단한다. S 노드로 부호화할 때와 P 노드로 부호화할 때의 각 엔트로피(Entropy)를 계산하여 엔트로피가 작은 경우를 선택한 후, 상기 선택된 S 노드 또는 P 노드의 라벨을 AAC 부호화한다.
상기 S노드부호화부(1120)는 Split 노드 부호화한다. 즉 상기 S노드 부후화부(1120)는 자식노드들의 색상정보 평균값 및 자식노드들에 대한 존재유무를 나타내는 플래그정보(Ch1 - Ch8)를 부호화한다. 즉 상기 부호화할 S 노드의 색상정보의 평균값을 구해 DPCM 부호화 및 엔트로피 부호화 바람직하게는 AAC(Adaptive Arithmetic Coding)로 부호화한다. 또한 상기 부호화할 S노드의 플래그정보는 엔트로피 부호화한다. 여기서 경우에 따라서는 상기 DPCM 부호화 및 엔트로피 부호화 중 적어도 하나를 생략할 수도 있다.
도 12의 (a)에서 루트노드를 S 노드로 부호화할 때, 그 하위 자식 노드들의 라벨은 S, S, W, B 이고 이는 부호화할 실제 값들이다. 하위 자식 노드들의 라벨 중에 S는 B로 치환하여 부호화한다. 따라서 도 12 (b)에서 굵은 선으로 된 사각형 안에 있는 노드들처럼 B, B, W, B로 부호화된다. 이 값들은 복호화기(Decoder)에서 복원되는 값들과 동일하다.
상기 P노드부호화부(1140)는 PPM 노드 부호화한다. 상기 P노드부호화부(1140)는 소정 개수의 컨텍스트(context)를 사용하여 해당 노드의 체적소들의 깊이 정보 및 색상정보를 부호화한다. 상기 색상정보는 DPCM 부호화 및 엔트로피 부호화함이 바람직하다. 경우에 따라서는 상기 DPCM 부호화 및 엔트로피 부호화 중 적어도 하나를 생략할 수도 있다. 그리고 상기 깊이정보는 PPM 부호화함이 바람직하다. 즉 상기 P 노드 부호화는 먼저 그 노드의 볼륨 영역에 있는 깊이 정보를 PPM 부호화하고, 해당 노드의 색상정보를 DPCM과 AAC로 부호화한다.
도 13은 체적소를 PPM 부호화할 때, 사용하는 컨텍스트(context)를 도시한 것이다. 오른쪽에 Depth가 k인 2차원 평면이 이전에 부호화된 체적소들과 현재 부호화할 체적소가 있는 한 단면이고, 왼쪽 Depth가 k-1인 2차원 평면이 이전에 부호화된 체적소들이 있는 인접 단면이다. 효율적으로 부호화하기 위해서, X 표시가 된 위치의 체적소는 컨텍스트(Context)로 사용하지 않고 나머지 동그란 모양을 갖는 10개의 체적소를 컨텍스트로 사용하여 PPM 부호화한다. 따라서 이 경우에 컨텍스트는 0011101000011에서 0111000011로 줄어든다. 컨텍스트의 나열 순서는 래스터-스캔 순서(Raster scan order)를 따른다.
한편 상기 도 7A에 도시된 비트스트림 생성부(760)는 상기 노드부호화부(740)에서 부호화된 노드들과 헤더정보를 이용하여 비트스트림으로 생성한다.(제76단계) 적응적 8진트리의 각 노드가 S 노드일 때는 Split 노드 부호화된 비트스트림을 생성하고, P 노드일 때는 PPM 노드 부호화된 비트스트림을 생성한다.
도 14 (a)의 헤더(Header)는 3차원 객체에 대한 너비(Width), 높이(Height), 깊이(Depth) 정보로 이루어지는 해상도 정보를 포함한다. 또한 상기 헤더는 노드 부호화시 루트 노드부터 마지막 노드까지 모두 부호화하는 무손실부호화 및 시작 노드부터 특정 노드까지만 부호화하는 손실부호화를 나타내기 위한 복호화율(PercentOfDecoding) 정보를 더 구비함이 바람직하다. 또한 상기 헤더는 깊이영상 기반 표현 데이터의 버전정보를 더 구비함이 바람직하다. 예를 들어 상기 버전정보는 플래그로 나타낼 수 있으며, 상기 플래그의 값이 0 이면 버전이 1 이고, 플래그 값이 1이면 버전이 2 이다.
상기 헤더정보와 상기 루트노드부터 MBFS 방식에 의해 정해지는 순서대로 노드들을 하나씩 부호화하면서 비트스트림이 생성된다. 만약 전체 부호화하는 노드의 개수가 N개라고 하면, 도 14 (a)처럼 Node-1, Node-2, , Node-N으로 표현할 수 있다. 이들 각 노드의 비트스트림은 도 14 (b)처럼 SOP('S' 또는 'P')와 DIB(Detailed information bits)로 구성된다.
만일 SOP가 S 노드임을 나타내면, 도 14 (c)처럼 DIB는 그 노드 영역의 평균 색깔(Mean color)과 자식들 노드가 W노드인지 아닌지의 여부를 나타내는 최대 8개의 플래그로 구성된다. 8개의 플래그를 Ch1, Ch2, , Ch8으로 표현할 수 있는데, 이는 체적소의 공간이 8개가 다 있는 경우를 나타낸다. 체적소의 공간이 없는 노드가 있으면, 없는 개수만큼 플래그의 개수도 줄어들고 부호화 대상에서 빠진다. 부호화할 플래그들의 값들은 AAC로 부호화할 수 있다.
만일 SOP가 P노드임을 나타내면, 도 14 (d)처럼 그 노드 영역 안에 있는 체적소들의 값들, 즉 깊이 정보가 PPM 부호화되며, B 체적소의 색깔 정보는 순서대로 DPCM되고 AAC로 부호화된다. PPM 부호화를 설명한다. 상술한 바와 같이 깊이 정보는 이진 체적소 값으로 표현된다. W 체적소는 투명한 배경을 표현하고, B 체적소는 3차원 객체의 체적소를 나타낸다. P노드 내의 이진 체적소 값은 이웃하는 체적소 값을 컨텍스트로 사용하여 PPM 부호화된다. 래스터 스캔 순서에 따라, 이웃하는 체적소의 컨텍스트를 13개를 사용하여 연산하고 데이터 처리하기에 그 데이터량이 너무 크다. 따라서 컨텍스트의 수를 효율적으로 줄일 필요가 있는데, 전체 엔트로피에 거의 영향을 주지 않는 3 개의 체적소를 제거한다. 제거된 체적소들은 도 13에 도시된 바와 같이 'X'로 마킹되었다. 이 컨텍스트를 이용하여 체적소는 컨텍스트 기반 AAC에 의해 부호화된다.
깊이 정보를 부호화한 후, 노드 영역 안에 있는 B 체적소의 RGB 색깔의 값은 래스터 스캔 순서로 DPCM되고 AAC 부호화된다. 부호화할 B 체적소의 R, G, B 값은 이전 순서의 부호화된 B 체적소 각 R, G, B 값들로부터 예측되고, 이 예측 오차(Residual)값들은 AAC로 부호화된다.
다음은 본 발명에 의한 3차원 체적 데이터의 복호화 방법 및 장치에 대해 설명한다. 도 15는 본 발명에 의한 3차원 체적 데이터 복호화 장치를 블록도로 도시한 것으로서, 비트스트림 판독부(150), 노드복호화부(1520) 및 적응적트리 복원부(1540)를 포함하여 이루어진다. 상기 비트스트림 판독부(15)는 헤더복호화부(1500)를 구비하며, 엔트로피 복호화부(1510)를 더 구비함이 바람직하다. 또한 상기 복호화장치는 복셀데이터 복원부(1560)를 더 구비함이 바람직하다.
본 발명에 의한 3차원 체적 데이터 복호화 장치는 크게 보아 비트스트림을 받아서 헤더정보와 트리노드 정보를 복호화한다. 비트스트림을 읽기 위해서, 콘텍스트 기반 적응적 산술복호화기(context-based adaptive arithmetic decoder)를 엔트로피 복호화부(1510)로 사용할 수 있다.
상기 비트스트림 판독부(150)는 비트스트림을 받아들여 헤더정보를 추출하고, 비트스트림이 부호화시 엔트로피 부호화되었을 경우, 상기 비트스트림에 대해 엔트로피 복호화한다. 상기 헤더복호화부(1500)는 비트스트림으로부터 적어도 객체의 해상도 정보를 포함하는 헤더정보를 추출하여 복호화한다. 상기 헤더의 해상도 정보는 3차원 객체의 너비, 높이 및 깊이 데이터로 이루어짐이 바람직하다. 상기 헤더가 복호화율(PercentOfDecoding) 정보를 더 구비할 경우에는 상기 헤더 복호화부(1500)는 비트스트림으로부터 상기 복호화율 정보를 추출하여 복호화한다. 상기 복호화율(PercentOfDecoding) 정보는 노드 복호화시 트리의 루트 노드부터 특정 노드까지만 복호화하는 손실복호화 정도 및 루트 노드부터 마지막 노드까지 모두 복호화하는 무손실복호화를 나타낸다. 또한 상기 헤더에는 깊이영상 기반 표현 데이터의 버전 정보를 포함할 수 있다.
상기 엔트로피 복호화부(1510)는 입력되는 비트스트림이 부호화시 엔트로피 부호화되었을 경우, 상기 비트스트림에 대해 엔트로피 복호화하며, 바람직하게는 산술복호화를 사용한다.
상기 노드복호화부(1520)는 상기 헤더가 복호화율 정보를 포함하고 있지 않을 경우에는 상기 헤더의 해상도 정보를 이용하여 노드의 수를 계산하고, 상기 엔트로피 복호화된 노드데이터에 대해, 자식노드 상호간에 우선순위가 부여된 너비우선 탐색 방식(modified BFS : MBFS)에 의한 순서로 루트 노드에서부터 단말노드까지 트리의 각 노드를 복호화한다. 또한 상기 헤더가 복호화율 정보를 포함하고 있을 경우에는 상기 노드복호화부(1520)는 상기 해상도 정보를 이용하여 계산된 노드의 수와 상기 복호화율 정보를 이용하여 복호화할 노드의 수를 계산하고, 상기 MBFS 방식에 의한 순서로 루트 노드에서부터 시작하여 단말노드 방향으로 상기 계산된 복호화할 노드의 수만큼 트리의 노드를 복호화한다.
상기 변형된 너비우선 탐색방식(MBFS)은 우선순위 큐를 이용하여 상기 우선순위 큐에 복호화할 노드의 인덱스를 푸시(push) 및 팝(pop)함으로써 이루어짐이 바람직하다. 그리고 상기 우선순위는 노드의 첫 번째 자식노드는 두 번째 자식노드보다 우선순위가 높고, 두 번째 자식노드는 세 번째 자식노드보다 높고, 동일한 방식으로 마지막 자식노드가 우선순위가 가장 낮음이 바람직하다.
상기 변형된 너비우선 탐색방식(MBFS)을 알고리즘으로 나타내면 다음과 같다.
// push root node(0) into the priority queue
Queue.push(0);
// repeat until the priority queue is empty
while(Queue.isEmpty() == false)
{
// extract an index from the priority queue
Index = Queue.pop();
// repeat for 8 children (from 1 to 8)
for(Child = 1; Child <= 8; Child++)
{
// if the decoded child existed as 1
if(DecodedChild[Index*8+Child] == 1)
// push the child index into the queue
Queue.push(Index*8+Child);
}
}
도 16은 상기 노드복호화부(1520)의 보다 상세한 내부 구성을 블록도로 도시한 것으로서, SOP추출부(1600), S노드복호화부(1620) 및 P노드 복호화부(1640)를 포함하여 이루어진다. 상기 SOP추출부(1600)는 트리의 노드가 S노드 부호화인지 P노드 부호화인지를 나타내는 부호화 종류정보(SOP)를 추출하여 복원한다.
상기 S노드복호화부(1620)는 상기 SOP가 S노드 부호화임을 나타내면, 상기 복호화하고자 하는 노드가 S 노드라고 판단하고 상기 S 노드를 복호화한다. 도 17은 상기 S노드 복호화부(1620)의 세부 구성을 블록도로 도시한 것으로서, 색상정보 복호화부(1700), WOB 판단부(1720), W노드 처리부(1740) 및 B노드처리부(1760)를 포함하여 이루어진다. 상기 색상정보 복호화부(1700)는 상기 S노드의 색상정보를 엔트로피 복호화한다. 상기 WOB 판단부(1720)는 상기 S 노드의 자식 노드들 모두에 대해 노드 라벨이 W 인지 B 인지 판단한다. 상기 W노드 처리부(1740)는 상기 자식노드의 라벨이 W 이면, 서브트리노드의 수를 계산하여 상기 서브트리 노드의 수 만큼은 복호화를 하지 않고 건너뛴다. 상기 B노드처리부(1760)는 상기 자식노드의 라벨이 B 이면, 상기 우선순위 큐에 상기 자식노드의 인덱스를 푸시(push)한다.
상기 P노드 복호화부(1640)는 상기 SOP가 P노드 부호화임을 나타내면, 상기 복호화하고자 하는 노드가 P 노드라고 판단하고 상기 P 노드를 복호화한다. 도 18은 상기 P노드 복호화부(1620)의 세부 구성을 블록도로 도시한 것으로서, 복셀 PPM 복호화부(1800) 및 복셀색상 복호화부(1820)를 포함하여 이루어진다. 상기 복셀PPM 복호화부(1800)는 트리 노드의 인덱스로부터 너비, 높이, 깊이 데이터로 이루어지는 3차원 볼륨영역을 계산하여 상기 볼륨영역 내에 복셀이 존재하는지 검사한다. 상기 복셀영상 복호화부(1820)는 상기 검사결과 복셀이 존재하면 상기 복셀의 색상정보를 엔트로피 복호화한다.
도 15에 도시된 상기 적응적트리 복원부(1540)는 상기 복호화된 노드를 이용하여 적응적 트리를 복원한다. 상기 복셀데이터 복원부(1560)는 상기 복원된 적응적 트리를 이용하여 복셀데이터를 복원한다.
도 19는 본 발명에 의한 3차원 체적 데이터 복호화 방법을 흐름도로 도시한 것이다. 도 19를 참조하여 본 발명에 의한 3차원 체적 데이터 복호화 방법 및 장치의 동작을 설명하기로 한다.
먼저, 비트스트림이 입력되면 헤더복호화부(1500)에 의해 헤더정보가 복원된다. 상기 헤더정보는 해상도 정보를 구비하며, 바람직하게는 복호화율 정보를 더 구비한다.(1900단계) 또한 상기 헤더 정보에는 깊이영상기반 표현 데이터의 버전 정보를 더 구비할 수 있다. 예를 들어 상기 버전정보는 플래그로 표현될 수 있으며, 플래그 값이 0 이면 version 1 이고, 플래그 값이 1 이면 version 2 임을 나타낼 수 있다.
예를 들어, 포인트 텍스쳐(PointTexture) 비트스트림을 읽기 위한 최상위 클래스(top class)의 구문(syntax)을 나타내면 다음과 같다.
class PointTexture ()
{
PointTextureHeader ();
PointTextureTreeNodes ();
}
여기서 PointTextureHeader는 비트스트림으로부터 헤더정보를 읽기 위한 클래스이다. 그리고 PointTextureTreeNodes는 저해상도에서부터 고해상도까지 점진적으로(progressively) 트리노드를 읽기 위한 클래스이다.
그리고 PointTextureHeader 클래스의 구문(syntax)을 나타내면 다음과 같다.
class PointTextureHeader ()
{
unsigned int(5) nBitSizeOfWidth;
unsigned int(nBitSizeOfWidth) nWidth;
unsigned int(5) nBitSizeOfHeight;
unsigned int(nBitSizeOfHeight) nHeight;
unsigned int(5) nDepthNbBits;
unsigned int(7) nPercentOfDecoding;
}
여기서, nBitSizeOfWidth는 nWidth 비트 크기를 나타내고, nWidth는 PointTexture의 width를 나타낸다. nBitSizeOfHeight는 nHeight의 비트 크기를 나타내고, nHeight는 PointTexture의 높이(height)를 나타낸다. nDepthNbBits는 원래 깊이데이터(original depth data)를 나타내기 위해 사용된 비트의 수를 나타낸다. nDepthNbBits의 값은 0 부터 31 까지의 범위를 갖는다. 그리고 원래 깊이데이터(original depth data)를 나타내기 위해 사용된 비트의 수는 nDepthNbBits + 1 이다. nPercentOfDecoding은 복호화될 트리노드의 백분율이다. 이 값이 최대값(100)이며, 무손실 복호화가 수행되고, 그렇지 않으면 손실복호화가 수행된다.
한편, PointTextureTreeNodes의 클래스에 대한 구문(Syntax)를 나타내면 다음과 같다.
class PointTextureTreeNodes ()
{
nNumberOfTreeNodes = initializeOctree(nWidth, nHeight, nDepthNbBits);
nNumberLimit = nNumberOfTreeNodes * nPercentOfDecoding / 100;
pushQ(0); // 0: root
nCount = 0;
while(nCount < nNumberLimit)
{
if(isQueueEmpty() == true) // break if queue is empty
break;
nIndex = popQ();
nCount++;
nSOP = decodeAAC(contextSOP);
if(nSOP == 0) // Split node decoding
{
nRegionRed = decodeAAC(contextRedOfRegion);
nRegionGreen = decodeAAC(contextGreenOfRegion);
nRegionBlue = decodeAAC(contextBlueOfRegion);
for(nChild = 1; nChild <= 8; nChild++) // 8 children nodes
{
nBOW = decodeAAC(contextBOW); // black or white
if(nBOW == 0) // 0: white node
nCount += getCountOfTreeSize(nIndex*8+nChild);
else // 1: black node
pushQ(nIndex*8+nChild);
}
}
else // PPM node decoding
{
getRegion(nIndex, nStartX, nStartY, nStartZ, nEndX, nEndY, nEndZ);
for(k = nStartZ; k < nEndZ; k++)
{
for(j = nStartY; j < nEndY; j++)
{
for(i = nStartX; i < nEndX; i++)
{
nIndexOfContext = getIndexOfContext(i, j, k);
nVoxel = decodeAAC(contextTreeNodes[nIndexOfContext]);
if(nVoxel == 1) // 1: black node
{
nDeltaRed = decodeAAC(contextColorDifference);
nDeltaGreen = decodeAAC(contextColorDifference);
nDeltaBlue = decodeAAC(contextColorDifference);
}
}
}
}
nCount += getCountOfTreeSize(nIndex) - 1;
}
}
}
여기서, nNumberOfTreeNodes는 옥트리에서의 트리노드의 수를 나타낸다. initializeOctree 함수는 nWidth, nHeight 및 nDepthNbBits로 표현되는 해상도 값을 초기화 하고, 옥트리에서의 트리노드의 수를 얻는다.
nNumberLimit는 복호화될 트리노드의 한계를 나타낸다. pushQ 함수는 큐에 값을 삽입한다. nCount는 트리노드를 복호화할 현재 수를 나타낸다.
isQueueEmpty 함수는 큐가 비어있는지 여부를 체크한다. nIndex는 복호화할 트리노드의 인덱스를 나타낸다. popQ 함수는 큐로부터 값을 추출한다.
nSOP는 트리노드가 split노드 또는 PPM(Prediction by Partial Matching) 노드인지를 나타낸다. 만일 값이 0이면 split 노드이고, 그렇지 않으면 ppm 노드를 의미한다. decodeAAC 함수는 주어진 콘텍스트로 AAC(Adaptive Arithmetic Coder) 복호화를 수행한다.
nRegionRed는 복셀 영역에서의 red color 범위를, nRegionGreen는 green color 범위를, nRegionBlue는 blue color 범위를 나타낸다. nChild는 split 노드를 복호화하는 8 children nodes의 인덱스를 나타낸다. nBOW는 child node 가 black 인지 white 인지를 나타낸다.
getCountOfTreeSize 함수는 트리노드로부터 서브 트리노드의 수를 계산한다. getRegion 함수는 트리노드의 인덱스로부터 볼륨영역(starting x, y, z and ending x, y, z)을 계산한다. nStartX, nStartY, nStartZ는 볼륨영역의 출발점들을 나타내고, nEndX, nEndY, nEndZ는 볼륨영역이 끝나는 점들을 나타낸다.
nIndexOfContext는 x, y, z 값으로부터 트리노드의 인덱스 콘텍스트를 나타내고, getIndexOfContext 함수는 x, y, z 값으로부터 트리노드 콘텍스트의 인덱스를 얻는다. nVoxel는 복셀노드가 black 인지r white 인지를 나타낸다.
nDeltaRed는 복셀에서의 red color 의 differentiated value을, nDeltaGreen는 복셀에서의 green color의 differentiated value을, nDeltaBlue: 복셀에서의 blue color의 differentiated value을 나타낸다.
한편, 만일 헤더 정보에 해상도 정보만 있고 복호화율 정보가 없다면, 상기 노드복호화부(1520)는 상기 해상도 정보를 이용하여 복호화할 노드의 수를 계산하고, 상기 MBFS 방식에 의한 순서로 루트노드에서부터 단말노드까지 트리의 각 노드를 복호화한다.(1920단계)
그리고 헤더 정보에 해상도 정보와 복호화율 정보가 있다면, 상기 노드복호화부(1520)에서 MBFS 방식에 의한 순서로 루트노드에서부터 시작하여 단말노드 방향으로 상기 계산된 복호화할 노드의 수만큼 트리의 노드를 복호화한다. 상기 MBFS 방식은 우선순위 큐를 이용하여 상기 우선순위 큐에 복호화할 노드의 인덱스를 푸시(push) 및 팝(pop)함으로써 이루어진다.
이를 보다 상세히 설명하면, 상기 노드 복호화부(1620)는 우선 3차원 물체의 너비×높이×깊이 해상도 정보를 이용하여 초기 포화(full) 8진 트리 노드를 생성한 후 0(white) 값으로 초기화한다. 트리 노드의 개수가 N일 때 복호화될 노드는 노드-1, 노드-2, 노드-3, …, 노드-N과 같다.
상기 MBFS 방식을 이용하여 생성된 비트스트림을 받을 경우 루트 노드에서 단말 노드까지의 복호화 순서를 알 수 있으므로 부호화장치가 전송하는 노드의 위치(position)를 쉽게 알 수 있다. 또한 해상도 정보를 이용하면 전체 노드의 수를 알 수 있으므로 전송된 노드가 끝인지 여부를 확인할 수 있다. 3차원 물체를 복호화할 경우 만약 복호화장치가 BFS 알고리즘을 사용하면 점진적인(progressive) 복호화가 불가능하고 단지 순차적인(sequential) 복호화만 가능한데, 이 경우 오브젝트 시각화가 부자연스러워지는 단점이 있다. 따라서 MBFS을 이용하면 3차원 물체를 점진적으로 시각화할 수 있어서 보다 자연스럽게 3차원 물체를 표현할 수 있는 장점이 있다.
MBFS 방식을 이용하여 복호화되는 노드의 순서를 정할 경우, 자식 노드들 중에서 모든 처음 자식 노드는 다른 자식 노드들보다 높은 우선 순위를 갖는다. 모든 두번째 자식 노드는 그 다음 높은 우선 순위를 가지고, 세번째부터 8번째 노드보다 앞선다. 이런 식으로 가면 마지막의 모든 8번째 노드는 이전의 자식 노드들보다 가장 낮은 우선 순위를 갖는다. 부모 노드에서 이러한 자식 노드들의 우선 순위에 따라 부호화되고 복호화되는 노드의 현재 순서를 복호화기에서 알 수 있다.
E 노드들은 부호화 및 복호화 대상이 아니다. 도 20은 노드 복호화부(1520)에서의 노드 복호화 과정을 흐름도로 도시한 것이다. 우선 SOP추출부(1600)에 의해 SOP 플래그 정보가 복호화되면(2000단계), 트리 노드가 S 노드인지 P 노드인지 검사한다.(2020단계) 상기 검사결과 S노드이면, S노드복호화부(1620)에 의해 S노드 복호화된다.(2040단계) 만일 상기 검사결과 P노드이면, P노드 복호화부(1640)에 의해 P노드 복호화된다.(2060단계)
상기 S노드 복호화는 S노드 상세정보(Detailed Information Bits : DIB)를 읽어서 엔트로피 복호화(바람직하게는 AAC 복호화)를 수행하여 색상 정보 및 자식 노드의 유무를 알 수 있다. S 노드인 경우 부호화장치에 의해 설정된 평균 색상 정보를 이용하여 표현한다. 현재 노드 후에 각 자식 노드의 색상이 수신될 때마다 이를 이용하여 갱신하여 반영한다. 즉 만일 SOP가 S 노드임을 나타내면, DIB는 그 노드 영역의 평균 색깔(Mean color)을 복호화하고 자식들 노드가 W노드인지 아닌지의 여부를 나타내는 플래그의 값들을 복호화한다. 체적소의 공간이 없는 노드가 있으면, 없는 개수만큼 플래그의 개수도 줄어들고 복호화 대상에서 빠진다. 이러한 E 노드는 가상의 노드로 전체 바운딩 볼륨의 해상도의 정보를 통해, 계산하여 위치를 알아낼 수 있는 노드이다.
P노드 복호화에서는 역 PPM 알고리즘을 이용하여 복호화되는 P 노드가 나타내는 복셀영역의 깊이 정보를 복원한다. P 노드의 색상정보는 엔트로피 복호화(바람직하게는 AAC 복호화) 및 역-DPCM을 이용하여 복원된다. 좀더 상세히 설명하면, 만일 SOP가 P노드임을 나타내면, 그 노드 영역 안에 있는 체적소들의 값들, 즉 깊이정보가 PPM 복호화되며, B 체적소의 색깔 정보는 순서대로 역 AAC와 역 DPCM으로 복호화된다. 예를 들어, P노드 내의 복호화할 이진 체적소 값은 도 13에 도시된 부호화할 때와 마찬가지로, 이웃하는 이미 복호화된 10개의 체적소 값을 컨텍스트로 사용하여 PPM 복호화한다. 깊이정보를 복호화한 후, 노드영역 안에 있는 B 체적소의 RGB 색깔의 값은 래스터 스캔 순서로 역 AAC와 역 DPCM으로 복호화한다. 복호화할 B 체적소의 R, G, B 값은 역 AAC로 복호화된 예측오차(Residual)값들을 이전 순서의 복호화된 B 체적소 각 R, G, B 값들로부터 역으로 예측하여 구한다.
이와 같은 방법으로 비트스트림을 노드 단위로 복호화하고 나면, 라벨이 부가된 적응적 8진트리 복원이 수행된다.(1940단계)
도 21a 및 도 21b는 3 x 4 의 해상도에서의 적응적 8진트리 복원의 간단한 예를 도시한 것이다. 도 21a 의 (b)와 도 21b의 (d), (f)는 복호화 측면에서 reconstruction 과정을 도시한 것이고, 도 21a의 (a)와 도 21b의 (c), (e)는 부호화 측면에서 construction을 도시한 것이다. 도 21a 및 도 21b의 (b), (d), (f)에서 정사각형 노드는 현재 복호화되고 있는 노드를 나타내고, 직사각형 노드는 복호화되고 있는 자식 노드를 나타낸다. 도 21a의 (b)에서 현재 복호화되고 있는 노드는 split노드를 나타내고, 자식노드들은 B,B,W,B 이다. 도 21b의 (d)에서 현재 복호화되고 있는 노드는 PPM 노드를 나타내고, 자식노드들은 W,B,B,B 이다. 도 21b의 (f)에서 현재 복호화되고 있는 노드는 split 노드를 나타내고, 자식노드들은 W, B 이다. 이 경우, E 노드들은 복호화되지 않는다.
라벨이 부여된 적응적 8진트리를 복원하고 나면, 복셀 데이터로 변환한다.(1960단계) 상기 복셀데이터의 해상도는 넓이 x 높이 x 깊이가 된다. 그리고 상기 복셀 데이터의 복원이 되고 나면, 원래의 포인트텍스쳐 데이터로의 쉽게 변환할 수 있다. 즉, 변환된 포인트텍스쳐는 깊이 정보와 색상 정보를 이용하여 복원된 3차원 물체를 표현한다. 이처럼 적응적 8진 트리와 효율적인 압축 방식으로 점진적인 복원이 가능하다.
본 발명은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이, 본 발명에 의한 3차원 체적 데이터 부호화 및 복호화 방법 및 장치는 방대한 양의 3차원 체적 데이터를 고효율로 부호화할 수 있고, 고정된 해상도의 체적 데이터뿐만 아니라 임의의 해상도의 체적 데이터도 고효율로 부호화할 수 있어, 적은 데이터의 양으로 고화질의 3차원 체적 데이터를 복원할 수 있다. 또한, 점진적인 비트스트림을 생성하므로 디코딩시에 3차원 체적 데이터를 점진적으로 보여줄 수 있는 특징이 있다.
본 발명에 의한 3차원 체적 데이터 부호화 및 복호화 방법 및 장치의 성능을 테스트하기 위하여 도 22와 같이 8개의 포인트텍스쳐 테스트 모델을 이용하였다. 표 2 내지 표 4는 보편적인 Lempel-Ziv 압축 방식인 WinZip과 종래 방법에서 사용한 압축 방식, 그리고 본 발명에 의한 방식의 압축률을 비교하여 보여준다.
Figure 112005007905796-pat00002
Figure 112005007905796-pat00003
Figure 112005007905796-pat00004
데이터 크기를 보면 Avatar 데이터의 경우 152,128 Bytes로 가장 작았고, Robots 데이터의 경우 2,426,538 Bytes로 가장 컸다. 또한 대부분 데이터가 깊이 정보와 색상 정보가 비슷한 크기를 가졌다. 압축 실험 결과 Flower 데이터의 경우 Winzip과 비교할 경우 60%의 성능이 향상되었다. 또한 Plane 데이터의 경우 기존의 연구와 비교할 경우 52%의 성능이 향상됨을 알 수 있었다.
깊이 정보의 경우 본 발명에 의한 방법은 종래 방식과 비교할 때 32~52%의 압축률 향상을 보였다. 즉, 본 발명에 의한 방법은 불필요한 정보를 제거하고 이를 보완하기 위하여 변형된 BFS 알고리즘을 사용함으로써 압축률을 향상시킬 수 있었다. WinZip 압축 방법은 점진적인 전송과 복호화를 지원하지 못하는 반면에, 본 발명에 의한 방법은 점진적인 전송과 복호화를 지원하고, 압축 성능면에서도 우수함을 알 수 있다.
도 23은 전송되는 비트스트림에 따른 왜곡 정도를 의미하는 RD 커브를 나타낸 것이다. 전송된 비트스트림에 대한 왜곡 정도는 수학식 1과 같이 Hamming Distance 공식을 이용하였다. 이 경우 V(x, y, z)는 원래 3차원 물체의 포인트의 유무를 의미하는 것으로 0일 경우 포인트가 없음을 의미하고 1일 경우 포인트가 있음을 의미한다.
Figure 112005007905796-pat00005
는 현재까지 복원된 3D 오브젝트의 포인트 유무를 의미한다.
Figure 112005007905796-pat00006
실험 결과 동일한 비트를 전송했을 때 제안하는 방법이 왜곡률 측면에서 상당히 개선되었음을 알 수 있다. 도 24는 Angel 데이터에 대한 왜곡 정도를 화질로 표현한 것이다.
비슷한 양의 비트스트림을 전송할 경우 본 발명에 의한 방법이 화질 면에서 우수함을 확인할 수 있다. 본 발명에 의한 방법의 경우 159,736 비트의 정보를 전송할 때 왜곡률이 0 이었으나 종래 방법의 경우는 170,504 비트를 전송하더라도 여전히 1,114,438 정도의 왜곡이 발생함을 알 수 있다. 종래 방법에서는 RD 커브에서 왜곡을 최소화하는 노드를 우선적으로 부호화하여 전송한다. 이를 위해 RD 커브의 기울기를 작게할 수 있는 노드가 선택되어 전송되며, 이와 함께 노드의 위치 정보도 함께 전송된다. 본 연구에서 이러한 부가 정보들을 제거하여 RD 커브를 개선하였고 향상된 결과를 얻을 수 있었다.
이와 같이 부호화 및 복호화 실험 결과 본 발명에 의한 방법이 압축률 및 화질 면에서 향상된 결과를 보여주었다. 비트스트림 생성시 위치 정보 및 노드의 계속 여부를 알려주는 정보를 제거하고, 이를 보완하기 위하여 우선 순위 큐를 사용하는 변형된 BFS 알고리즘을 이용함으로써 압축률 면에서 향상된 결과를 얻을 수 있었다. 결과적으로 기존 연구와 비교해볼 때 동일한 양의 비트를 전송하더라도 왜곡 정도를 줄임으로써 나은 결과를 얻을 수 있었다.
결국, 본 발명에 의한 방법은 기존 방법에 비해 포인트텍스쳐 깊이 데이터를 보다 효과적으로 압축할 수 있으며, 또한 점진적인 전송시 3차원 물체를 시각적으로 보다 자연스럽게 표현할 수 있다. 효율적인 압축을 위해 비트스트림을 구성하는 정보의 양을 줄일 수 있는 방법을 제안하였으며 이후 변형된 BFS나 해상도 정보를 이용하여 정보가 제거되더라도 디코딩 및 표현하는데 문제가 없도록 하였다. 실험 결과 깊이 데이터에 대해 32~52%의 압축률을 향상시킬 수 있었다. 또한 변형된 BFS 알고리즘은 점진적인 시각화를 지원함으로써 3D 오브젝트의 시각적인 질면에서 보다 자연스러운 결과를 얻을 수 있었다.

Claims (60)

  1. (a) 2차원 데이터를 4개의 영역으로 구성되는 4진트리로 분할하는 단계; 및
    (b) 상기 4진트리로 분할된 데이터 각각의 노드를 노드의 크기가 하나의 픽셀이 될 때까지 하위 4진트리로 분할하는 단계를 포함함을 특징으로 하고,
    상기 (a)단계 및 (b)단계의 4진트리 분할은
    상기 2차원 데이터의 가로 및 세로 픽셀 수가 짝수일 경우에는 반으로 나누고, 홀수일 경우에는 한 픽셀 차이나게 분할하되, 상기 4개의 분할된 영역 각각이 4개의 픽셀이 되지 않을 경우에는 가상의 픽셀을 부가하여 4개의 픽셀로 생성하고,
    상기 한 픽셀 차이나는 분할은 좌우로 분할될 경우에는 좌우 중 항상 어느 한 쪽 편만이 한 픽셀 많게, 상하로 분할될 경우에는 상하 중 항상 어느 한 쪽 편만이 한 픽셀 많게 이루어지는, 적응적 4진트리 생성방법.
  2. (a) 3차원 데이터를 8개의 영역으로 구성되는 8진트리로 분할하는 단계; 및
    (b) 상기 8진트리로 분할된 데이터 각각의 노드를 노드의 크기가 하나의 복셀이 될 때까지 하위 8진트리로 분할하는 단계를 포함함을 특징으로 하고,
    상기 (a)단계 및 (b)단계의 8진트리 분할은
    상기 3차원 데이터의 가로, 세로, 높이 각각의 복셀 수가 짝수일 경우에는 반으로 나누고, 홀수일 경우에는 한 복셀 차이 나게 분할하되, 상기 8개의 분할된 영역 각각이 8개의 복셀이 되지 않을 경우에는 가상의 복셀을 부가하여 8개의 복셀로 생성하고,
    상기 한 복셀 차이나는 전후, 좌우, 상하 각 방향의 분할은 전후, 좌우, 상하 각 방향에서 항상 어느 한 쪽 편만이 한 복셀 많게 일정한 방향으로 이루어지는, 적응적 8진트리 생성방법.
  3. (a) n차원 데이터를 2 개의 영역으로 구성되는 2진트리로 분할하는 단계; 및
    (b) 상기 2진트리로 분할된 데이터 각각의 노드를 노드의 크기가 하나의 단위체가 될 때까지 하위 2진트리로 분할하는 단계를 포함함을 특징으로 하고,
    상기 (a)단계 및 (b)단계의 2진 트리 분할은
    상기 n차원 데이터의 각 방향에서의 단위체 수가 짝수일 경우에는 반으로 나누고, 홀수일 경우에는 한 단위체 차이 나게 분할하되, 상기 2개의 분할된 영역 각각이 2개의 단위체가 되지 않을 경우에는 가상의 단위체를 부가하여 2개의 단위체로 생성하고,
    상기 한 단위체 차이나는 각 방향의 분할은 각 방향에서 항상 어느 한 쪽 편만이 한 단위체 많게 일정한 방향으로 이루어지는, 적응적 2진트리 생성방법.
  4. (a) 3차원 체적 데이터를, 노드에 소정의 라벨이 부여된 적응적 8진트리 데이터로 변환하는 단계;
    (b) 상기 라벨을 참조하여 상기 적응적 8진트리의 노드를, 자식노드 상호간에 우선순위가 부여된 너비우선 탐색 방식(modified BFS)에 의해 루트 노드에서부터 단말노드까지 부호화하는 단계; 및
    (c) 소정의 헤더 정보와 상기 부호화된 노드데이터를 비트스트림으로 생성하는 단계를 포함함을 특징으로 하는 3차원 체적 데이터 부호화 방법.
  5. 제4항에 있어서, 상기 (a) 단계는
    (a1) 3차원 체적데이터가 포인트텍스쳐 데이터이면, 3차원 바운딩 볼륨을 사용하여 체적소 데이터로 변환하는 단계; 및
    (a2) 체적소 데이터 또는 옥트리 데이터에 대해 노드에 소정의 라벨이 부여된 적응적 8진트리로 변환하는 단계를 포함함을 특징으로 하는 3차원 체적 데이터 부호화 방법.
  6. 제5항에 있어서, 상기 (a2)단계에서 상기 노드에 소정의 라벨이 부여된 적응적 8진트리 데이터 변환은
    3차원 데이터를 8개의 영역으로 분할하여 8진트리로 생성하는 단계; 및
    상기 8진트리의 각 노드에 소정의 라벨을 부여하면서 노드의 크기가 하나의 복셀이 될 때까지 상기 8진트리의 각 노드가 나타내는 3차원 영역을 8개의 영역으로 분할하되, 자식노드의 수가 8개가 아닌 경우에는 8개로 만들기 위해 가상의 체적소를 부가하고, 노드가 나타내는 3차원 영역을 구성하는 하위 체적소가 모두 객체가 없는 체적소로 구성되는 경우(W)와, 노드가 나타내는 3차원 영역의 하위 체적소가 객체가 있는 체적소로 구성되는 경우(B)에는 모든 하위 체적소가 객체가 있는 체적소로 임시 처리하고, 그 체적소에 해당하는 다음 DIB 정보에서 S노드 또는 P노 드로 상세화됨을 포함함을 특징으로 하고,
    상기 분할은
    상기 3차원 데이터의 너비, 높이, 깊이 각각을 상기 각 복셀 수가 짝수일 경우에는 반으로 나누고 홀수일 경우에는 한 복셀 차이 나게 분할하되, 전후, 좌우, 상하 각 방향에서 항상 어느 한 쪽 편만이 한 복셀 많게 일정한 방향으로 이루어지는, 3차원 체적 데이터 부호화 방법.
  7. 제6항에 있어서, 상기 소정의 라벨은
    상기 3차원 체적 데이터가 8진트리로 표현될 때, 상기 8진트리의 각 노드에 대해, 상기 노드가 나타내는 3차원 영역을 노드영역이라 할 때,
    노드영역의 하위 체적소가 모두 객체가 없는 체적소로 구성되는 노드인 경우(W);
    노드 영역의 하위 체적소가 객체가 있는 체적소로 구성되는 노드인 경우(B);
    노드 영역의 하위 체적소들의 값이 PPM 알고리즘에 의해 부호화되는 노드인 경우(P);
    라벨로 표시된 하위(sub)노드를 가지는 노드인 경우(S); 및
    자식노드의 수가 8개가 아닌 경우 8개로 만들기 위해 부가된 가상의 체적소인 경우(E)를 구분하는 것임을 특징으로 하는 3차원 체적 데이터 부호화 방법.
  8. 제7항에 있어서,
    상기 라벨이 E 인 노드는 부호화하지 않음을 특징으로 하는 3차원 체적 데이터 부호화 방법.
  9. 제4항에 있어서, 상기 (b)단계의 8진트리의 노드데이터 부호화는
    S노드 부호화인지 P노드 부호화인지를 선택하여 그 부호화 종류정보(SOP)를 생성하는 단계;
    상기 부호화종류정보가 S노드 부호화이면 S 노드의 상세정보를 부호화하는 단계; 및
    상기 상기 부호화종류정보가 P노드 부호화이면 P노드의 상세정보를 부호화함을 특징으로 하는 3차원 체적 데이터 부호화 방법.
  10. 제9항에 있어서, 상기 S노드 상세 정보는
    자식노드들의 색상정보 평균값; 및
    자식노드들에 대한 존재유무를 나타내는 플래그 정보(Ch1 - Ch8)를 포함함을 특징으로 하는 3차원 체적 데이터 부호화 방법.
  11. 제10항에 있어서, 상기 색상정보 평균값은
    DPCM 부호화 및 엔트로피 부호화된 것임을 특징으로 하는 3차원 체적 데이터 부호화 방법.
  12. 제10항에 있어서, 상기 플래그정보는
    엔트로피 부호화됨을 특징으로 하는 3차원 체적 데이터 부호화 방법.
  13. 제9항에 있어서, 상기 P노드 상세정보는
    해당 노드의 체적소들의 색상정보; 및
    소정 개수의 컨텍스트를 사용하여 해당 노드의 체적소들의 깊이정보를 포함함을 특징으로 하는 3차원 체적 데이터 부호화 방법.
  14. 제13항에 있어서, 상기 색상정보는
    DPCM 부호화 및 엔트로피 부호화됨을 특징으로 하는 3차원 체적 데이터 부호화 방법.
  15. 제13항에 있어서, 상기 깊이정보는
    PPM 부호화됨을 특징으로 하는 3차원 체적 데이터 부호화 방법.
  16. 제4항에 있어서, 상기 (c)단계는
    상기 부호화된 노드데이터를 엔트로피 부호화하고, 상기 소정의 헤더정보를 부호화함을 특징으로 하는 3차원 체적 데이터 부호화 방법.
  17. 제4항에 있어서, 상기 (c)단계의 비트스트림은
    3차원 객체에 대한 너비, 높이 및 깊이 정보로 이루어지는 해상도 정보를 포함하는 헤더; 및
    부호화된 8진트리의 노드데이터를 포함함을 특징으로 하는 3차원 체적 데이터 부호화 방법.
  18. 제17항에 있어서, 상기 헤더는
    노드 부호화시 루트 노드부터 마지막 노드까지 모두 부호화하는 무손실부호화 및 시작 노드부터 특정 노드까지만 부호화하는 손실부호화를 나타내기 위한 복호화율(PercentOfDecoding) 정보를 더 구비함을 특징으로 하는 3차원 체적 데이터 부호화 방법.
  19. 제17항에 있어서, 상기 헤더는
    깊이영상기반 표현 데이터의 버전 정보를 더 구비함을 특징으로 하는 3차원 체적 데이터 부호화 방법.
  20. 체적소 데이터 또는 옥트리 데이터에 대해 노드에 소정의 라벨이 부여된 적응적 8진트리로 변환하는 적응적 8진트리 변환부;
    상기 라벨을 참조하여 상기 적응적 8진트리의 노드를, 자식노드 상호간에 우선순위가 부여된 너비우선 탐색 방식(modified BFS)에 의해 루트 노드에서부터 단말노드까지 부호화하는 노드부호화부; 및
    상기 부호화된 노드데이터와 소정의 헤더 정보를 이용하여 비트스트림을 생성하는 비트스트림 생성부를 포함함을 특징으로 하는 3차원 체적 데이터 부호화 장치.
  21. 제20항에 있어서,
    3차원 체적데이터가 포인트텍스쳐 데이터이면, 3차원 바운딩 볼륨을 사용하여 체적소 데이터로 변환하는 체적소생성부를 더 구비함을 특징으로 하는 3차원 체적데이터 부호화 장치.
  22. 제20항에 있어서, 상기 적응적 8진트리 변환부는
    3차원 데이터를 8개의 영역으로 분할하여 8진트리로 생성하는 8진트리 생성부; 및
    상기 8진트리의 각 노드에 소정의 라벨을 부여하면서 노드의 크기가 하나의 복셀이 될 때까지 상기 8진트리의 각 노드가 나타내는 3차원 영역을 8개의 영역으로 분할하되, 자식노드의 수가 8개가 아닌 경우에는 8개로 만들기 위해 가상의 체적소를 부가하고, 노드가 나타내는 3차원 영역을 구성하는 하위 체적소가 모두 객체가 없는 체적소로 구성되는 경우(W)와, 노드가 나타내는 3차원 영역의 하위 체적소가 객체가 있는 체적소로 구성되는 경우(B)에는 모든 하위 체적소가 객체가 있는 체적소로 임시 처리하고, 그 체적소에 해당하는 다음 DIB 정보에서 S노드 또는 P노드로 상세화됨을 적응적 8진트리 생성부를 포함함을 특징으로 하고,
    상기 분할은
    상기 3차원 데이터의 너비, 높이, 깊이 각각을 상기 각 복셀 수가 짝수일 경우에는 반으로 나누고 홀수일 경우에는 한 복셀 차이 나게 분할하되, 전후, 좌우, 상하 각 방향에서 항상 어느 한 쪽 편만이 한 복셀 많게 일정한 방향으로 이루어지는, 3차원 체적 데이터 부호화 장치.
  23. 제22항에 있어서, 상기 소정의 라벨은
    상기 3차원 체적 데이터가 8진트리로 표현될 때, 상기 8진트리의 각 노드에 대해, 상기 노드가 나타내는 3차원 영역을 노드영역이라 할 때,
    노드영역의 하위 체적소가 모두 객체가 없는 체적소로 구성되는 노드인 경우(W);
    노드 영역의 하위 체적소가 객체가 있는 체적소로 구성되는 노드인 경우(B);
    노드 영역의 하위 체적소들의 값이 PPM 알고리즘에 의해 부호화되는 노드인 경우(P);
    라벨로 표시된 하위(sub)노드를 가지는 노드인 경우(S); 및
    자식노드의 수가 8개가 아닌 경우 8개로 만들기 위해 부가된 가상의 체적소인 경우(E)를 구분하는 것임을 특징으로 하는 3차원 체적 데이터 부호화 장치.
  24. 제23항에 있어서,
    상기 라벨이 E 인 노드는 부호화하지 않음을 특징으로 하는 3차원 체적 데이터 부호화 장치.
  25. 제20항에 있어서, 상기 노드 부호화부는
    S노드 부호화할지 P노드 부호화할지를 선택하여 부호화 종류정보(SOP)를 생성하는 SOP정보선택부;
    상기 부호화종류정보가 S노드 부호화이면 S 노드의 상세정보를 부호화하는 S노드 부호화부; 및
    상기 부호화종류정보가 P노드 부호화이면 P노드의 상세정보를 부호화하는 P노드 부호화부를 포함함을 특징으로 하는 3차원 체적 데이터 부호화 장치.
  26. 제25항에 있어서, 상기 S노드 부호화부는
    자식노드들의 색상정보 평균값; 및
    자식노드들에 대한 존재유무를 나타내는 플래그 정보(Ch1 - Ch8)를 부호화함을 특징으로 하는 3차원 체적 데이터 부호화 장치.
  27. 제26항에 있어서, 상기 색상정보 평균값은
    DPCM 부호화 및 엔트로피 부호화됨을 특징으로 하는 3차원 체적 데이터 부호화 장치.
  28. 제26항에 있어서, 상기 플래그정보는
    엔트로피 부호화됨을 특징으로 하는 3차원 체적 데이터 부호화 장치.
  29. 제25항에 있어서, 상기 P노드 부호화부는
    소정 개수의 컨텍스트를 사용하여 해당 노드의 체적소들의 깊이정보; 및
    해당 노드의 체적소들의 색상정보를 부호화함을 특징으로 하는 3차원 체적 데이터 부호화 장치.
  30. 제29항에 있어서, 상기 색상정보는
    DPCM 부호화 및 엔트로피 부호화함을 특징으로 하는 3차원 체적 데이터 부호화 장치.
  31. 제29항에 있어서, 상기 깊이정보는
    PPM 부호화함을 특징으로 하는 3차원 체적 데이터 부호화 장치.
  32. 제20항에 있어서, 상기 비트스트림생성부는
    상기 부호화된 노드데이터를 엔트로피 복호화하는 엔트로피 부호화부; 및
    상기 소정의 헤더정보를 부호화하는 헤더 부호화부를 구비함을 특징으로 하는 3차원 체적 데이터 부호화 장치.
  33. 제20항에 있어서, 상기 비트스트림 생성부는
    3차원 객체에 대한 너비, 높이 및 깊이 정보로 이루어지는 해상도 정보를 포함하는 헤더; 및
    부호화된 8진트리의 노드데이터를 비트스트림으로 생성함을 특징으로 하는 3차원 체적 데이터 부호화 장치.
  34. 제33항에 있어서, 상기 헤더는
    노드 부호화시 루트 노드부터 마지막 노드까지 모두 부호화하는 무손실부호화 및 시작 노드부터 특정 노드까지만 부호화하는 손실부호화를 나타내기 위한 복호화율(PercentOfDecoding) 정보를 더 구비함을 특징으로 하는 3차원 체적 데이터 부호화 장치.
  35. 제34항에 있어서, 상기 헤더는
    깊이영상기반 표현 데이터의 버전 정보를 더 구비함을 특징으로 하는 3차원 체적 데이터 부호화 장치.
  36. (a) 비트스트림으로부터 적어도 객체의 해상도 정보를 포함하는 헤더정보를 추출하여 복호화하는 단계;
    (b) 상기 헤더의 해상도 정보를 이용하여 노드의 수를 계산하고, 자식노드 상호간에 우선순위가 부여된 너비우선 탐색 방식(modified BFS)에 의해 루트 노드에서부터 단말노드까지 트리의 각 노드를 복호화하는 단계; 및
    (c) 상기 복호화된 노드를 이용하여 적응적 트리를 복원하는 단계를 포함함을 특징으로 하는 3차원 체적 데이터 복호화 방법.
  37. 제36항에 있어서, 상기 (a)단계의 해상도는
    3차원 객체의 너비, 높이 및 깊이 데이터로 이루어짐을 특징으로 하는 3차원 체적 데이터 복호화 방법.
  38. 제36항에 있어서, 상기 (a)단계는
    노드 복호화시 트리의 루트 노드부터 특정 노드까지만 복호화하는 손실복호화 정도 및 루트 노드부터 마지막 노드까지 모두 복호화하는 무손실복호화를 나타내는 복호화율(PercentOfDecoding) 정보를 추출하여 복호화는 단계를 더 구비함을 특징으로 하는 3차원 체적 데이터 복호화 방법.
  39. 제36항에 있어서, 상기 (a)단계는
    비트스트림으로부터 적어도 객체의 해상도 정보 및 깊이영상기반표현 데이터의 버젼정보를 포함하는 헤더정보를 추출하여 복호화함을 특징으로 하는 3차원 체적 데이터 복호화 방법.
  40. 제36항에 있어서, 상기 (a)단계는
    비트스트림으로부터 노드정보를 추출하여 엔트로피 복호화하는 단계를 더 구 비함을 특징으로 하는 3차원 체적 데이터 복호화 방법.
  41. 제36항에 있어서, 상기 (b)단계는
    상기 해상도 정보를 이용하여 계산된 노드의 수와 상기 복호화율 정보를 이용하여 복호화할 노드의 수를 계산하고, 자식노드 상호간에 우선순위가 부여된 변형된 너비우선 탐색 방식(modified BFS)에 의해 루트 노드에서부터 시작하여 단말노드 방향으로 상기 복호화할 노드의 수만큼 트리의 노드를 복호화함을 특징으로 하는 3차원 체적 데이터 복호화 방법.
  42. 제37항에 있어서, 상기 우선순위가 부여된 너비우선 탐색방식은
    우선순위 큐를 이용하여 상기 우선순위 큐에 복호화할 노드의 인덱스를 푸시(push) 및 팝(pop)함에 의해 이루어짐을 특징으로 하는 3차원 체적 데이터 복호화 방법.
  43. 제42항에 있어서, 상기 우선순위는
    노드의 첫 번째 자식노드는 두 번째 자식노드보다 우선순위가 높고, 두 번째 자식노드는 세 번째 자식노드보다 높고, 동일한 방식으로 마지막 자식노드가 우선순위가 가장 낮음을 특징으로 하는 3차원 체적 데이터 복호화 방법.
  44. 제36항에 있어서, 상기 (b)단계의 트리 노드의 복호화는
    트리의 노드가 S노드 부호화인지 P노드 부호화인지를 나타내는 부호화 종류정보(SOP)를 복호화하는 단계;
    상기 SOP가 S노드 부호화임을 나타내면, 상기 복호화하고자 하는 노드가 S 노드라고 판단하고 상기 S 노드를 복호화하는 단계; 및
    상기 SOP가 P노드 부호화임을 나타내면, 상기 복호화하고자 하는 노드가 P 노드라고 판단하고 상기 P 노드를 복호화하는 단계를 포함함을 특징으로 하는 3차원 체적 데이터 복호화 방법.
  45. 제44항에 있어서, 상기 S노드 복호화는
    상기 S노드의 색상정보를 엔트로피 복호화하는 단계;
    상기 S 노드의 자식 노드들 모두에 대해 노드 라벨이 W 인지 B 인지 판단하는 단계;
    상기 자식노드의 라벨이 W 이면, 서브트리노드의 수를 계산하여 상기 서브트리 노드의 수 만큼은 복호화를 하지 않는 단계; 및
    상기 자식노드의 라벨이 B 이면, 상기 우선순위 큐에 상기 자식노드의 인덱스를 푸시(push)하는 단계를 포함함을 특징으로 하는 3차원 체적 데이터 복호화 방법.
  46. 제44항에 있어서, 상기 P노드 복호화는
    트리 노드의 인덱스로부터 너비, 높이, 깊이 데이터로 이루어지는 3차원 볼륨영역을 계산하는 단계; 및
    상기 볼륨영역에 대해 복셀이 존재하는지 체크하여 복셀이 존재하면 상기 복셀의 색상정보를 엔트로피 복호화하는 단계를 포함함을 특징으로 하는 3차원 체적 데이터 복호화 방법.
  47. 제36항에 있어서,
    상기 복원된 적응적 트리 데이터를 복셀데이터로 변환하는 단계를 더 구비함을 특징으로 하는 3차원 체적 데이터 복호화 방법.
  48. 비트스트림으로부터 적어도 객체의 해상도 정보를 포함하는 헤더정보를 추출하여 복호화하는 헤더복호화부; 및
    상기 헤더의 해상도 정보를 이용하여 노드의 수를 계산하고, 자식노드 상호간에 우선순위가 부여된 너비우선 탐색 방식(modified BFS)에 의해 루트 노드에서부터 단말노드까지 트리의 각 노드를 복호화하는 노드복호화부; 및
    상기 복호화된 노드를 이용하여 적응적 트리를 복원하는 적응적트리복원부를 포함함을 특징으로 하는 3차원 체적데이터 복호화 장치.
  49. 제48항에 있어서, 상기 헤더의 해상도 정보는
    3차원 객체의 너비, 높이 및 깊이 데이터로 이루어짐을 특징으로 하는 3차원 체적데이터 복호화 장치.
  50. 제48항에 있어서, 상기 헤더 복호화부는
    상기 헤더가 노드 복호화시 트리의 루트 노드부터 특정 노드까지만 복호화하는 손실복호화 정도 및 루트 노드부터 마지막 노드까지 모두 복호화하는 무손실복호화를 나타내는 복호화율(PercentOfDecoding) 정보를 더 구비할 때, 비트스트림으로부터 상기 복호화율 정보를 추출하여 복호화함을 특징으로 하는 3차원 체적데이터 복호화 장치.
  51. 제48항에 있어서, 상기 헤더 복호화부는
    비트스트림으로부터 적어도 객체의 해상도 정보 및 깊이영상기반표현 데이터의 버젼정보를 포함하는 헤더정보를 추출하여 복호화함을 특징으로 하는 3차원 체적데이터 복호화 장치.
  52. 제48항에 있어서,
    비트스트림에서 노드정보를 추출하여 엔트로피복호화하는 엔트로피복호화부를 더 구비함을 특징으로 하는 3차원 체적데이터 복호화 장치.
  53. 제48항에 있어서, 상기 노드복호화부는
    상기 해상도 정보를 이용하여 계산된 노드의 수와 상기 복호화율 정보를 이용하여 복호화할 노드의 수를 계산하고, 자식노드 상호간에 우선순위가 부여된 변형된 너비우선 탐색 방식(modified BFS)에 의해 루트 노드에서부터 시작하여 단말노드 방향으로 상기 계산된 복호화할 노드의 수만큼 트리의 노드를 복호화함을 특징으로 하는 3차원 체적데이터 복호화 장치.
  54. 제48항 또는 제52항에 있어서, 상기 우선순위가 부여된 너비우선 탐색방식은
    우선순위 큐를 이용하여 상기 우선순위 큐에 복호화할 노드의 인덱스를 푸시(push) 및 팝(pop)함에 의해 수행함을 특징으로 하는 3차원 체적데이터 복호화 장치.
  55. 제53항에 있어서, 상기 우선순위는
    노드의 첫 번째 자식노드는 두 번째 자식노드보다 우선순위가 높고, 두 번째 자식노드는 세 번째 자식노드보다 높고, 동일한 방식으로 마지막 자식노드가 우선순위가 가장 낮음을 특징으로 하는 3차원 체적데이터 복호화 장치.
  56. 제48항에 있어서, 상기 노드복호화부는
    트리의 노드가 S노드 부호화인지 P노드 부호화인지를 나타내는 부호화 종류정보(SOP)를 추출하여 복원하는 SOP복원부;
    상기 SOP가 S노드 부호화임을 나타내면, 상기 복호화하고자 하는 노드가 S 노드라고 판단하고 상기 S 노드를 복호화하는 S노드복호화부; 및
    상기 SOP가 P노드 부호화임을 나타내면, 상기 복호화하고자 하는 노드가 P 노드라고 판단하고 상기 P 노드를 복호화하는 P노드복호화부를 포함함을 특징으로 하는 3차원 체적데이터 복호화 장치.
  57. 제56항에 있어서, 상기 S노드 복호화부는
    상기 S노드의 색상정보를 엔트로피 복호화하는 색상정보 복호화부;
    상기 S 노드의 자식 노드들 모두에 대해 노드 라벨이 W 인지 B 인지 판단하는 WOB판단부;
    상기 자식노드의 라벨이 W 이면, 서브트리노드의 수를 계산하여 상기 서브트리 노드의 수 만큼은 복호화를 하지 않는 W노드처리부; 및
    상기 자식노드의 라벨이 B 이면, 상기 우선순위 큐에 상기 자식노드의 인덱스를 푸시(push)하는 B노드처리부를 포함함을 특징으로 하는 3차원 체적데이터 복호화 장치.
  58. 제56항에 있어서, 상기 P노드 복호화부는
    트리 노드의 인덱스로부터 너비, 높이, 깊이 데이터로 이루어지는 3차원 볼륨영역을 계산하여 상기 영역내에 복셀이 존재하는지 검사하는 복셀PPM 복호화부부; 및
    상기 검사결과 복셀이 존재하면, 상기 복셀의 색상정보를 엔트로피 복호화하는 복셀색상복호화부를 포함함을 특징으로 하는 3차원 체적데이터 복호화 장치.
  59. 제48항에 있어서,
    상기 복원된 적응적 트리를 이용하여 복셀데이터를 복원하는 복셀데이터복원 부를 더 구비함을 특징으로 하는 3차원 체적데이터 복호화 장치.
  60. 제1항 내지 제19항, 제36항 내지 제47항 중 어느 한 항에 기재된 발명을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020050012424A 2004-03-08 2005-02-15 적응적 2의 n 제곱 진트리 생성방법 및 이를 이용한 3차원 체적 데이터 부호화/복호화 방법 및 장치 KR100695142B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP05251374A EP1574996A3 (en) 2004-03-08 2005-03-08 Adaptive 2n-ary tree generating method, and method and apparatus for encoding and decoding 3D volume data using it
JP2005064221A JP4759291B2 (ja) 2004-03-08 2005-03-08 適応的2n進ツリーの生成方法、ならびにそれを利用して3次元体積データを符号化/復号化する方法および装置
CN200510076254.2A CN1681330B (zh) 2004-03-08 2005-03-08 自适应2n叉树生成方法及3D体数据编码和解码方法和设备
US11/073,686 US7925103B2 (en) 2004-03-08 2005-03-08 Adaptive 2n-ary tree generating method, and method and apparatus for encoding and decoding 3D volume data using it
US12/662,555 US8027545B2 (en) 2004-03-08 2010-04-22 Adaptive 2N-ARY tree generating method, and method and apparatus for encoding and decoding 3D volume data using it

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US55073504P 2004-03-08 2004-03-08
US60/550,735 2004-03-08
US58673404P 2004-07-12 2004-07-12
US60/586,734 2004-07-12

Publications (2)

Publication Number Publication Date
KR20060042947A KR20060042947A (ko) 2006-05-15
KR100695142B1 true KR100695142B1 (ko) 2007-03-14

Family

ID=37148670

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050012424A KR100695142B1 (ko) 2004-03-08 2005-02-15 적응적 2의 n 제곱 진트리 생성방법 및 이를 이용한 3차원 체적 데이터 부호화/복호화 방법 및 장치

Country Status (2)

Country Link
US (2) US7925103B2 (ko)
KR (1) KR100695142B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102662179B1 (ko) 2017-10-05 2024-05-02 소니그룹주식회사 정보 처리 장치 및 방법

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7469067B2 (en) * 2004-07-06 2008-12-23 Magnum Semiconductor, Inc. Sequential decoding of progressive coded JPEGs
KR100964029B1 (ko) * 2008-02-13 2010-06-15 성균관대학교산학협력단 다중해상도 옥트리 기반의 3차원 물체 또는 환경 표현방법
DE102008020579B4 (de) * 2008-04-24 2014-07-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zur automatischen Objektlageerkennung und Bewegung einer Vorrichtung relativ zu einem Objekt
EP2489208A4 (en) 2009-10-15 2017-05-03 Thomson Licensing Method and apparatus for encoding a mesh model, encoded mesh model, and method and apparatus for decoding a mesh model
KR101289269B1 (ko) * 2010-03-23 2013-07-24 한국전자통신연구원 영상 시스템에서 영상 디스플레이 장치 및 방법
TWI402768B (zh) * 2010-08-13 2013-07-21 Primax Electronics Ltd 產生高解析度影像之方法
KR20120035096A (ko) 2010-10-04 2012-04-13 한국전자통신연구원 쿼드 트리 변환 구조에서 부가 정보의 시그널링 방법 및 장치
US9532056B2 (en) * 2011-07-18 2016-12-27 Thomson Licensing Method for adaptive entropy coding of tree structures
WO2013026210A1 (en) 2011-08-25 2013-02-28 Technicolor (China) Technology Co., Ltd. Hierarchical entropy encoding and decoding
US8976168B2 (en) 2011-11-02 2015-03-10 Microsoft Technology Licensing, Llc Mesh generation from depth images
EP2813076B1 (en) 2012-02-09 2020-04-22 InterDigital VC Holdings, Inc. Efficient compression of 3d models based on octree decomposition
KR102366842B1 (ko) 2013-04-08 2022-02-24 돌비 인터네셔널 에이비 Lut를 인코딩하는 방법, lut를 디코딩하는 방법 및 대응하는 장치들
US9444580B2 (en) * 2013-08-06 2016-09-13 OptCTS, Inc. Optimized data transfer utilizing optimized code table signaling
US9530226B2 (en) * 2014-02-18 2016-12-27 Par Technology Corporation Systems and methods for optimizing N dimensional volume data for transmission
CA2939170A1 (en) 2014-03-13 2015-09-17 Qualcomm Incorporated Constrained depth intra mode coding for 3d video coding
EP3234922A4 (en) * 2015-04-21 2018-12-05 Hewlett-Packard Development Company, L.P. Octree serialization
DE112016007098T5 (de) * 2016-07-26 2019-04-18 Hewlett-Packard Development Company, L.P. Indexierung von voxeln für das 3d-drucken
EP3544300B1 (en) 2016-11-21 2021-10-13 Panasonic Intellectual Property Corporation of America Devices and methods for image coding and decoding using a block size dependent split ratio
EP3528498A1 (en) * 2016-11-21 2019-08-21 Panasonic Intellectual Property Corporation of America Coding device, decoding device, coding method, and decoding method
CN111183588B (zh) * 2017-10-05 2023-09-26 索尼公司 信息处理装置和方法
EP3467778A1 (en) * 2017-10-06 2019-04-10 Thomson Licensing A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object
GB2568232A (en) * 2017-10-26 2019-05-15 Nokia Technologies Oy A method for volumetric video encoding and decoding
EP3716218A4 (en) * 2017-11-22 2021-03-31 Panasonic Intellectual Property Corporation of America THREE-DIMENSIONAL DATA ENCODING PROCESS, THREE-DIMENSIONAL DATA DECODING PROCESS, THREE-DIMENSIONAL DATA ENCODING DEVICE, AND TRIDIMENSIONAL DATA DECODING DEVICE
CN111727463A (zh) * 2018-01-19 2020-09-29 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
JP7348078B2 (ja) * 2018-02-08 2023-09-20 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2019182102A1 (ja) * 2018-03-23 2019-09-26 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2019198636A1 (ja) 2018-04-10 2019-10-17 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
EP3836089A4 (en) 2018-08-10 2021-09-01 Panasonic Intellectual Property Corporation of America METHOD FOR CODING THREE-DIMENSIONAL DATA, METHOD FOR DECODING THREE-DIMENSIONAL DATA, DEVICE FOR CODING THREE-DIMENSIONAL DATA AND DEVICE FOR DECODING THREE-DIMENSIONAL DATA
US11176631B1 (en) * 2018-09-04 2021-11-16 University Of South Florida GPU-based parallel indexing for concurrent spatial query
AU2019355381A1 (en) * 2018-10-02 2021-05-20 Sony Corporation Image processing device and method
CN111277828B (zh) * 2018-12-04 2022-07-12 华为技术有限公司 视频编解码方法、视频编码器和视频解码器
WO2020197228A1 (ko) * 2019-03-22 2020-10-01 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2023182675A1 (ko) * 2022-03-21 2023-09-28 현대자동차주식회사 옥트리 기반 삼각형 코딩을 이용하는 메시 압축을 위한 방법 및 장치
CN117341206B (zh) * 2023-10-08 2024-03-29 南京林业大学 一种基于八叉树的支撑结构生成方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000016872A (ko) * 1998-08-29 2000-03-25 윤종용 점진적인삼차원메쉬정보의부호화방법및그장치
JP2002049933A (ja) 2000-08-01 2002-02-15 Ricoh Co Ltd 3次元幾何データの表現方法、圧縮・伸長方法、圧縮・伸長装置および該圧縮・伸長方法を実現するプログラムの記録媒体
KR20020065766A (ko) * 2001-02-07 2002-08-14 삼성전자 주식회사 웨이블릿 변환을 기본으로하여 트리-구조의 벡터 양자화기법을 이용한 영상 부호화 장치 및 부호화 방법
WO2003007246A1 (en) 2001-07-09 2003-01-23 Superscape Group Plc Mesh compression
KR100513732B1 (ko) 2002-12-05 2005-09-08 삼성전자주식회사 3차원 객체 데이터 부호화 및 복호화 방법 및 장치

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047080A (en) * 1996-06-19 2000-04-04 Arch Development Corporation Method and apparatus for three-dimensional reconstruction of coronary vessels from angiographic images
JP3243476B2 (ja) 1997-03-18 2002-01-07 独立行政法人産業技術総合研究所 多次元データの構造化に基づく符号化方法
JPH11234678A (ja) 1998-02-18 1999-08-27 Victor Co Of Japan Ltd 画像分割伝送方法
KR100611999B1 (ko) 1999-08-27 2006-08-11 삼성전자주식회사 그리디 알고리듬을 이용한 객체 기반 콰드 트리 메쉬 움직임 보상방법
US7236637B2 (en) * 1999-11-24 2007-06-26 Ge Medical Systems Information Technologies, Inc. Method and apparatus for transmission and display of a compressed digitized image
US6597359B1 (en) 2000-05-17 2003-07-22 Raychip, Inc. Hierarchical space subdivision hardware for ray tracing
US7054871B2 (en) * 2000-12-11 2006-05-30 Lucent Technologies Inc. Method for identifying and using table structures
EP1321893B1 (en) 2001-11-27 2011-11-09 Samsung Electronics Co., Ltd. Node structure for representing 3-dimensional objects using depth image
JP3957620B2 (ja) 2001-11-27 2007-08-15 三星電子株式会社 深さイメージ基盤3次元客体を表現するための装置及び方法
JP3870144B2 (ja) * 2002-09-27 2007-01-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 木構造文書送受システム、木構造文書送信装置、木構造文書受信装置、木構造文書送受方法、木構造文書送信方法、木構造文書受信方法、及びプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000016872A (ko) * 1998-08-29 2000-03-25 윤종용 점진적인삼차원메쉬정보의부호화방법및그장치
JP2002049933A (ja) 2000-08-01 2002-02-15 Ricoh Co Ltd 3次元幾何データの表現方法、圧縮・伸長方法、圧縮・伸長装置および該圧縮・伸長方法を実現するプログラムの記録媒体
KR20020065766A (ko) * 2001-02-07 2002-08-14 삼성전자 주식회사 웨이블릿 변환을 기본으로하여 트리-구조의 벡터 양자화기법을 이용한 영상 부호화 장치 및 부호화 방법
WO2003007246A1 (en) 2001-07-09 2003-01-23 Superscape Group Plc Mesh compression
KR100513732B1 (ko) 2002-12-05 2005-09-08 삼성전자주식회사 3차원 객체 데이터 부호화 및 복호화 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102662179B1 (ko) 2017-10-05 2024-05-02 소니그룹주식회사 정보 처리 장치 및 방법

Also Published As

Publication number Publication date
KR20060042947A (ko) 2006-05-15
US8027545B2 (en) 2011-09-27
US7925103B2 (en) 2011-04-12
US20100207941A1 (en) 2010-08-19
US20050195191A1 (en) 2005-09-08

Similar Documents

Publication Publication Date Title
KR100695142B1 (ko) 적응적 2의 n 제곱 진트리 생성방법 및 이를 이용한 3차원 체적 데이터 부호화/복호화 방법 및 장치
JP4759291B2 (ja) 適応的2n進ツリーの生成方法、ならびにそれを利用して3次元体積データを符号化/復号化する方法および装置
KR100519780B1 (ko) 3차원 체적 데이터 부호화/복호화 방법 및 장치
EP1431919B1 (en) Method and apparatus for encoding and decoding three-dimensional object data by using octrees
JP3957620B2 (ja) 深さイメージ基盤3次元客体を表現するための装置及び方法
KR100513732B1 (ko) 3차원 객체 데이터 부호화 및 복호화 방법 및 장치
KR100450823B1 (ko) 깊이 이미지 기반 3차원 물체의 표현을 위한 노드 구조
JP4832975B2 (ja) 深さイメージに基づく3次元客体を表現するためのノード構造を記憶させた、コンピュータで読み出し可能な記録媒体
RU2237283C2 (ru) Устройство и способ представления трехмерного объекта на основе изображений с глубиной
KR20220029595A (ko) 포인트 클라우드 인코딩과 디코딩 방법, 인코더, 디코더 및 컴퓨터 저장 매체
US6791543B2 (en) Forming method for structuring polygonal mesh data and apparatus, and storage medium
WO2012128209A1 (ja) 画像符号化装置、画像復号装置、プログラムおよび符号化データ
CN116941242A (zh) 帧内预测方法及装置、编解码器、设备、存储介质
Wai et al. GIS Data Compression Based On Block-Encoding and Quadtree Approach
CN116800970A (zh) 编码、解码方法、装置及设备
CN116458158A (zh) 帧内预测方法及装置、编解码器、设备、存储介质
CN117917069A (zh) 用于编码网格表示的连接信息的解码方法及装置
Gillibert et al. Hypergraphs for Generic Lossless Image Compression
Gomes et al. Digital Images

Legal Events

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

Payment date: 20130221

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140221

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150212

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee