KR20140042864A - 트리 구조들의 적응적 엔트로피 코딩을 위한 방법 - Google Patents

트리 구조들의 적응적 엔트로피 코딩을 위한 방법 Download PDF

Info

Publication number
KR20140042864A
KR20140042864A KR1020147001343A KR20147001343A KR20140042864A KR 20140042864 A KR20140042864 A KR 20140042864A KR 1020147001343 A KR1020147001343 A KR 1020147001343A KR 20147001343 A KR20147001343 A KR 20147001343A KR 20140042864 A KR20140042864 A KR 20140042864A
Authority
KR
South Korea
Prior art keywords
portions
bitstream
symbols
symbol group
encoding
Prior art date
Application number
KR1020147001343A
Other languages
English (en)
Other versions
KR101862438B1 (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 톰슨 라이센싱
Publication of KR20140042864A publication Critical patent/KR20140042864A/ko
Application granted granted Critical
Publication of KR101862438B1 publication Critical patent/KR101862438B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4043Adaptive prefix coding
    • H03M7/4056Coding table selection
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • H03M7/6082Selection strategies
    • H03M7/6088Selection strategies according to the data type
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • H03M7/6082Selection strategies
    • H03M7/6094Selection strategies according to reasons other than compression rate or data type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

3D 메쉬 코딩에서, 기하 데이터는 공간 트리 기반 접근법들에 의해 압축된다. 3D 메쉬 모델들을 인코딩하는 공간 트리 기반 접근법들의 트리 구조의 횡단에서 기인하는 비트스트림들은 시스템적으로 특수한 중복들을 가지며, 이는 메쉬 모델 압축을 더 개선하는데 이용된다. 비트스트림을 인코딩하는 방법은 적어도 2진 기호들의 제1 기호 그룹 및 제2 기호 그룹을 정의하는 단계(51) - S1은 S2의 서브세트임 -, 비트스트림 내에서 제1 부분들(J1, J2), 제2 부분들(K1) 및 제3 부분들(N1, N2, N3)을 결정하는 단계(52) - 제1 부분들은 Th1 이상의 연속적 S1 기호들을 갖고 제2 부분들은 Th2 이상의 연속적 S2 기호들을 가짐 -, 비트스트림을 인코딩하는 단계(54) - 제1 부분들, 제2 부분들 및 제3 부분들은 상이한 코드들을 사용하여 인코딩됨(54A, 54B, 54C) -, 및 비트스트림 내의 제1 부분, 제2 부분 및 제3 부분 사이의 경계 위치들을 표시하는 값들(C1)을 인코딩하는 단계(55)를 포함한다.

Description

트리 구조들의 적응적 엔트로피 코딩을 위한 방법{METHOD FOR ADAPTIVE ENTROPY CODING OF TREE STRUCTURES}
본 발명은 트리 구조들의 적응적 엔트로피 코딩을 위한 방법, 및 대응하는 장치에 관한 것이다. 게다가, 본 발명은 트리 구조들의 적응적 엔트로피 디코딩을 위한 방법, 및 대응하는 장치에 관한 것이다.
엔트로피 코딩은 수십년 동안 연구되어 왔다. 기본적으로, 세 종류의 엔트로피 코딩 방법들이 존재한다: 허프만 코딩과 같은 VLC(variable length coding), 산술 코딩, 및 렘펠-지브(Lempel-Ziv) 압축 또는 렘펠-지브-웰치(Lempel-Ziv-Welch) 압축과 같은 사전 기반 압축. VLC 코드들은 정수의 비트들을 사용하여 각각의 기호를 표현한다. 허프만 코딩은 가장 광범위하게 사용되는 VLC 방법이다. 그것은 보다 많은 비트들을 더 작은 확률을 갖는 기호에 할당하면서, 보다 적은 비트들을 더 큰 확률을 갖는 기호에 할당한다. 그러나, 허프만 코드는 각각의 기호의 확률이 1/2의 정수 거듭제곱(integer power)이 아닌 한 최적일 수 없다. 이에 반하여, 산술 코딩은 분수 비트들을 각각의 기호에 할당할 수 있어 그것은 데이터 그룹의 엔트로피에 더 잘 접근할 수 있다. 허프만 코드 및 산술 코드는 기존 이미지/비디오 압축 표준들, 예를 들어 JPEG, MPEG-2, H.264/AVC에 광범위하게 사용되어 왔다. LZ(Lempel-Ziv) 또는 LZW(Lempel-Ziv-Welch)는 테이블 엔트리들이 데이터의 반복된 스트링들로 대체되는 테이블 기반 압축 모델을 이용한다. 대부분의 LZ 방법들을 위해, 이 테이블은 초기 입력 데이터로부터 동적으로 발생된다. 알고리즘은 빠르게 구현하도록 설계되지만 그것이 데이터의 제한된 분석만을 수행하기 때문에 통상 최적인 것은 아니다. 이러한 카테고리의 알고리즘들은 GIF, Zip, PNG 및 일부 다른 표준들에 이용되어 왔다.
3D 메쉬 코딩에서, 기하 데이터는 통상 공간 트리 기반 접근법들, 예를 들어 kd 트리 기반 [OG00] 또는 옥트리 기반 [PK05]에 의해 압축된다. 이 알고리즘들은 일부 공간 트리에 의해 입력 공간 포인트들을 조직한다. 그 다음, 그들은 트리 구조를 횡단하고 입력 포인트들을 나중에 복구하는 데 필요한 정보를 기록한다. 공간 트리를 구축하는 동안, 셀은 각각의 비어 있지 않은 셀이 아주 작아서 1개의 정점만을 포함하고 정점 위치의 충분히 정확한 재구성을 가능하게 할 때까지 반복적으로 세분화된다. 초기에, 바운딩 박스는 3D 모델의 모든 포인트들 주위에 구성된다. 모든 3D 포인트들의 전체 바운딩 박스는 처음에 단일 셀로 간주된다. 정점 위치들은 대응하는 셀들의 바운딩 박스로부터 복구될 수 있으므로, 공간 트리 기반 알고리즘들은 다중 해상도 압축 및 동일한 압축비를 단일 해상도 압축 알고리즘들로서 달성할 수 있는 것을 포함한다.
각각의 반복의 경우, [OG00]는 도 1에 도시된 바와 같이, 셀을 2개의 차일드 셀로 세분화하고 정점들의 수를 2개의 차일드 셀 중 하나에 인코딩한다. 페어런트 셀이 p 정점들을 포함하면, 차일드 셀들 중 하나 내의 정점들의 수는 log2(p + 1) 비트들을 사용하여 산술 코더에 의해 인코딩될 수 있다.
다른 한편, [PK05]는 각각의 반복에서 비어 있지 않은 셀을 8개의 차일드 셀로 세분화한다. 각각의 옥트리 셀 세분화를 위해, 기하 코더는
Figure pct00001
가능한 조합들 중에서 비어 있지 않은 차일드 셀들의 수(T(1≤T≤8)) 및 비어 있지 않은 차일드 셀들의 구성을 인코딩한다. 데이터가 간단히 인코딩될 때, T는 3 비트를 취하고 비어 있지 않은 차일드 셀 구성은 log2 KT 비트를 취한다. 코딩 효율을 개선하기 위해, [PK05]는 각각의 차일드 셀을 위해 비어 있지 않은 의사 확률를 추정한다. 차일드 셀들의 횡단 순서는 확률 하향 순서에 따라 적응된다. 예시의 용이성을 위해, 쿼드트리 차일드 셀들, 및 최종 코드 워드들을 야기하는 2D 예가 도 2에 도시된다. 횡단 순서들은 화살표들로 표시된다.
그러나, 더 높은 압축비를 달성하기 위해 압축을 개선하는 것이 항상 바람직하다. 이것을 데이터 손실 없이 달성하는 것, 즉 최고 품질 압축 해제를 허용하여, (의사) 무손실 재생을 야기하는 방법을 달성하는 것이 특히 바람직하다.
본 발명은 비트스트림들이 3D 메쉬 모델들을 인코딩하는 공간 트리 기반 접근법들의 트리 구조의 횡단에서 기인하면 비트스트림들이 시스템적으로 특수한 중복들을 갖는다는 사실, 및 이것이 메쉬 모델 압축을 더 개선하는데 이용될 수 있다는 사실의 인식에 기초한다. 특히, 더 높은 압축 효율은 각각의 셀 세분화가 2보다 많은 차일드 셀을 야기하는, 예를 들어 쿼드트리 기반 또는 옥트리 기반 방법들과 같은 트리 기반 접근법들 때문에 달성될 수 있다.
그러므로, 본 발명은 적어도 비트스트림을 인코딩하는 방법, 인코딩된 비트스트림을 디코딩하는 방법, 비트스트림을 인코딩하는 장치 및 인코딩된 비트스트림을 디코딩하는 장치를 제공한다.
기본적으로, 비트스트림을 인코딩하는 방법은 적어도 2진 기호들의 제1 기호 그룹 및 제2 기호 그룹을 정의하는 단계 - S1은 S2의 서브세트임 -, 비트스트림 내에서 제1 부분들, 제2 부분들 및 제3 부분들을 결정하는 단계 - 제1 부분들은 Th1 이상의 연속적 S1 기호를 갖고 제2 부분들은 Th2 이상의 연속적 S2 기호를 가짐 -, 비트스트림을 인코딩하는 단계 - 제1 부분들, 제2 부분들 및 제3 부분들은 상이한 코드들을 사용하여 인코딩됨 -, 및 비트스트림 내의 제1 부분, 제2 부분 및 제3 부분 사이의 경계 위치들을 표시하는 값들을 인코딩하는 단계를 포함한다.
일 실시예에서, 비트스트림을 인코딩하는 방법은 적어도 2진 기호들의 제1 기호 그룹 및 제2 기호 그룹을 정의하는 단계 - 제1 기호 그룹은 제2 기호 그룹의 서브세트임 -,
비트스트림 내에서 2개 이상의 제1 부분, 0개 이상의 제2 부분 및 2개 이상의 제3 부분을 결정하는 단계 - 각각의 제1 부분은 적어도 제1 기호 그룹의 Th1 연속적 기호들을 갖고, 각각의 제2 부분은 적어도 제2 기호 그룹의 Th2 연속적 기호들(그러나 적어도 제1 기호 그룹의 Th1 연속적 기호들이 아님)을 가지며, 비트스트림의 나머지 파트(part)들은 제3 부분들임 -,
비트스트림 내에서 제1 부분 및 제3 부분만을 포함하는 파트를 결정하는 단계,
비트스트림을 인코딩하는 단계 - 상기 제1 부분들은 제1 코드를 사용하여 인코딩되고, 상기 제2 부분들(존재하면)은 제2 코드를 사용하여 인코딩되며 상기 제3 부분들은 제3 코드를 사용하여 인코딩되고, 또한 비트스트림 내의 제1 부분, 제2 부분 및 제3 부분 사이의 경계 위치들을 표시하는 값들이 인코딩되고, 제1 부분 및 제3 부분만을 포함하는 상기 부분에서 제1 부분과 인접한 제3 부분 사이의 경계 위치들의 인코딩은 제3 부분이 미리 정의된 길이를 가지면 스킵되며, 제3 부분이 미리 정의된 길이 이외의 상이한 길이를 가지면 암시적으로 인코딩됨 - 를 포함한다.
즉, 비트스트림의 각각의 제3 부분은 적어도 제1 기호 그룹의 Th1 연속적 기호들을 갖지 않고 적어도 제2 기호 그룹의 Th2 연속적 기호들을 갖지 않는다. 전형적으로, 비트스트림의 제3 부분들은 다소 짧고 소수의 기호들만, 종종 1개의 기호만을 포함한다.
제2 파트에서 제1 부분과 인접한 제3 부분 사이의 경계 위치들을 암시적으로 인코딩하는 상이한 종류들이 가능한데, 예를 들어 2개의 인접한 경계 위치(경계 위치들이 단조로운 증가 또는 감소 순서를 가지므로 결정될 수 있음)를 스와핑하는 것에 의한 것, 또는 다른 경계 위치 값으로부터 분리되거나 이 값에 부가될 수 있는 이스케이프 시퀀스에 의한 것, 또는 분명히 저장된 기호에 의한 것이 가능하다.
일 실시예에서, 스킵된 경계 위치들(즉 그의 인코딩이 스킵되는 것들)은 비트스트림의 상기 파트 내의 제3 부분들의 좌측(또는 초기, 또는 개방) 경계들이다. 다른 실시예에서, 스킵된 경계 위치들은 비트스트림의 상기 파트 내의 제3 부분들의 우측(최종, 폐쇄) 경계들이다.
일 양상에서, 비트스트림을 인코딩하는 방법은 적어도 2진 기호들의 제1 기호 그룹 및 제2 기호 그룹을 정의하는 단계 - 제1 기호 그룹은 제2 기호 그룹보다 더 적은 기호들을 포함하고 제1 기호 그룹의 기호들은 또한 제2 기호 그룹에 포함됨 -,
비트스트림 내에서 적어도 제1 기호 그룹의 정의된 제1 최소 수의 연속적 기호들을 각각 갖는 2개 이상의 제1 부분, 적어도 제2 기호 그룹의 정의된 제2 최소 수의 연속적 기호들을 각각 갖는 0개 이상의 제2 부분, 및 비트스트림의 나머지 부분들을 포함하는 2개 이상의 제3 부분을 결정하는 단계,
비트스트림을 적어도 연속적 제1 파트 및 연속적 제2 파트로 분할하는 단계 - 제1 파트는 상기 제3 부분들 및 상기 0개 이상의 제2 부분 중 적어도 하나를 포함하고, 제2 파트는 상기 제1 부분들 및 상기 적어도 2개의 제2 부분 중 적어도 하나를 포함함 -,
비트스트림을 인코딩하는 단계 - 상기 1개 이상의 제1 부분은 제1 코드를 사용하여 제1 인코더에서 인코딩되고, 상기 1개 이상의 제2 부분은 제2 코드를 사용하여 제2 인코더에서 인코딩되며 상기 1개 이상의 제3 부분은 제3 코드를 사용하여 제3 인코더에서 인코딩됨 -, 및
비트스트림 내의 제1 부분, 제2 부분 및 제3 부분의 길이들(또는 각각 경계 위치들)을 인코딩하는 단계 - 적어도 제2 파트에서 제1 부분들의 길이(또는 경계 위치들 중 적어도 하나)의 상기 인코딩은 길이가 미리 정의된 길이이면(즉 경계 위치가 미리 정의된 인접한 경계 위치까지 미리 정의된 거리를 가지면) 스킵됨 - 를 포함한다.
다시 말하면, 비트스트림의 제2 파트는 그것이 제3 부분들 중 어느 것도 포함하지 않도록 구성된다. 일 실시예에서, 그것은 비트스트림의 최종 파트이다. 일 실시예에서, 다양한 부분들을 결정할 시에, 같은 타입의 인접한 부분들이 축적되어, 스트림 내의 인접한 부분들은 항상 상이한 타입들을 갖는다.
일 양상에서, 비트스트림을 인코딩하는 장치는,
적어도 2진 기호들의 제1 기호 그룹 및 제2 기호 그룹을 정의하는 처리 수단 - 제1 기호 그룹은 제2 기호 그룹의 서브세트임 -,
비트스트림 내에서 2개 이상의 제1 부분, 0개 이상의 제2 부분 및 2개 이상의 제3 부분을 결정하는 처리 수단 - 각각의 제1 부분은 적어도 제1 기호 그룹의 Th1 연속적 기호들을 갖고, 각각의 제2 부분은 적어도 제2 기호 그룹의 Th2 연속적 기호들(그러나 적어도 제1 기호 그룹의 Th1 연속적 기호들이 아님)을 가지며, 비트스트림의 나머지 파트들은 제3 부분들임 -,
비트스트림에서 제1 부분 및 제3 부분만을 포함하는 파트를 결정하는 처리 수단,
비트스트림을 인코딩하는 인코딩 수단 - 상기 제1 부분들은 제1 코드를 사용하여 제1 인코더에서 인코딩되고, 상기 제2 부분들(존재하면)은 제2 코드를 사용하여 제2 인코더에서 인코딩되며 상기 제3 부분들은 제3 코드를 사용하여 제3 인코더에서 인코딩됨 -, 및
비트스트림 내의 제1 부분, 제2 부분 및 제3 부분 사이에 경계 위치들(또는 제1 부분, 제2 부분 및 제3 부분의 길이들)을 표시하는 값들을 인코딩하는 경계/길이 인코딩 수단 - 제1 부분 및 제3 부분만을 포함하는 상기 파트에서 제1 부분과 인접한 제3 부분 사이의 경계 위치의 인코딩은 제3 부분이 미리 정의된 길이를 가지면(즉 경계 위치가 미리 정의된 인접한 경계 위치까지 미리 정의된 거리를 가지면) 스킵됨 - 을 포함하는 1개 이상의 처리 수단을 포함한다.
컴퓨터 판독가능 매체는 컴퓨터가 상기 명시된 바와 같은 방법을 수행하게 하는 실행가능 명령어들을 갖는다.
본 발명의 유리한 실시예들은 종속항들, 이하의 설명 및 도면들에 개시되어 있다.
본 발명의 예시적 실시예들은 첨부 도면들을 참조하여 설명된다.
도 1은 2D 경우에서의 kd 트리 기하 코딩의 원리이다.
도 2는 2D 경우에서의 쿼드트리 기하 코딩의 원리이다.
도 3은 비트스트림의 기본 구조이다.
도 4는 3D 메쉬 모델을 나타내는 예시적 비트스트림이다.
도 5는 인코딩 방법의 순서도이다.
도 6은 디코딩 방법의 순서도이다.
도 7은 비트스트림을 제1 부분, 제2 부분 및 제3 부분로 분할하는 예시적 방법이다.
도 8은 쿼드트리 기반 2D 기하 코딩과 비교되는 옥트리 기반 3D 기하 코딩의 원리이다.
도 9는 다양한 예시적 비트스트림 구조들이다.
도 10은 비트스트림의 예시적 헤더의 구조이다.
도 11은 비트스트림을 인코딩하는 장치(700)의 블록도이다.
도 12는 비트스트림을 디코딩하는 장치(700)의 블록도이다.
이하의 실시예들은 3D 메쉬 모델들의 옥트리 표현에 기초한다. 본 발명은 아래에 더 정의되는 바와 같이, 다른 데이터 세트들 또는 응용들에 적응될 수 있다. 3D 메쉬 코딩 방식을 위한 옥트리 표현의 기본 방법은 [OG00]로부터 알 수 있고, 본 명세서에서 도 2에 관하여 설명된다. 도 2는 2D 경우에서의 쿼드트리 기하 코딩의 원리를 도시하지만, 그것은 아래의 도 8에 관하여 도시된 바와 같이, 3D 모델에 쉽게 적응될 수 있다. 인코딩을 위해, 현재 페어런트 셀은 미리 정의된 순서로 횡단되는 4개의 차일드 셀로 분할되고, 차일드 셀 당 단일 비트는 차일드 셀 내에 포인트가 존재하는지의 여부를 표시한다. 예를 들어 도 2 a)에서, 2개의 페어런트 셀(1,2)의 차일드 셀들은 도시된 바와 같이 횡단된다(비어 있지 않은 차일드 셀은 회색임). 제1 페어런트 셀(1)의 차일드 셀들(10, 11, 12, 13)은, 횡단의 제1 및 제3 차일드 셀들(10, 12)이 비어 있지 않으므로(즉 1개 이상의 포인트를 포함하므로)(이는 1로 표시됨), 제1 시퀀스 1010에 의해 인코딩된다. 제2 및 제4 차일드 셀들(11, 13)은 비어 있다(즉 어떤 포인트들도 포함하지 않는다)(이는 0으로 인코딩됨). 도 2 b)는 상이한 횡단을 사용하는 동일한 셀들, 및 최종 코드를 도시한다.
도 8은 옥트리 방식의 페어런트 및 차일드 셀들을 도시한다. 옥트리 방식에서, 페어런트 셀은 8개의 차일드 셀(80,..., 86)로 분할된다(하부 좌측 셀(82) 뒤의 하나의 숨겨진 차일드 셀은 도시되지 않음). 가능한 횡단 순서는 좌-우, 상-하 및 전-후일 수 있어, 셀들(80-81-82-83-84-85-(하부 좌측 셀(82) 뒤의 숨겨진 셀)-86)의 횡단 시퀀스를 야기할 수 있다. 대응적으로, 옥트리 경우에, 비어 있지 않은 차일드 셀 구성은 8 비트 2진수로 표시되어, 비어 있고 비어 있지 않은 차일드 셀들의 모든 255개의 가능한 조합을 커버한다. 비어 있지 않은 차일드 셀들의 수의 분리 인코딩은 필요하지 않다. 표 1은 비어 있지 않은 차일드 셀 구성 시퀀스의 일 예이다.
11111111
01100110
00111011
11001100
...
00010000
00000010
00000010
10000000
00000001
표 1: 차일드 셀 구성 시퀀스
상세히 상술되었지만, 페어런트 셀 내의 차일들 셀들의 횡단 순서는 본 발명과 별로 관련이 없다. 원칙적으로, 임의의 횡단 순서가 본 발명에 실질적으로 동등하게 사용될 수 있다.
8 비트 기호들은 종래의 산술 코딩에 의해 효율적으로 압축될 수 있지만, 결과는 기대만큼 좋지는(즉 효율적이지는) 않다. 본 발명은 개선된 효율을 갖는 인코딩 방법, 및 대응하는 디코딩 방법을 제공한다.
Figure pct00002
표 2: 3D 모델에서 옥트리 기허들의 일부의 분포 확률 p
전형적인 복잡한 3D 모델(m1007) 내의 가장 자주 발생하는 기호들의 분포 확률은 표 2에 나타낸다. 알 수 있는 바와 같이, 2진 표현에 하나의 "1"만을 갖는 기호들은 압도적인 확률로 발생한다. 기하학적 설명은 정점들이 수개의 세분화 후에 좀처럼 셀을 공유하지 않는다는 것이다. 본 발명에 따르면, 그의 요소들이 임의의 가능한 기호들인 기호 세트 S0 = {1, 2, 3, ..., 255}가 정의된다. 게다가, 그의 요소들이 2의 정수 거듭제곱, 즉 자주 발생하는 기호들인 다른 기호 세트 S1 = {1, 2, 4, 8, 16, 32, 64, 128}이 정의된다. S1에 포함되는 긴 연속의 기호들이 종종 존재하는 것이 관찰되었다. 따라서, 확률 모델은 S1 기호들만을 포함하는 서브시퀀스들의 8-기호 모델로 단순화된다.
도 3은 비트스트림의 기본 구조를 도시한다. 비트스트림은 2개의 제1 부분(J1, J2)(즉 제1 타입(J)의 부분들), 1개의 제2 부분(K1)(즉 제2 타입(K)의 부분) 및 3개의 제3 부분(N1, N2, N3)(즉 제3 타입(N)의 부분들)을 갖는다. 각각의 제1 부분은 적어도 제1 기호 그룹(S1)의 미리 정의된 제1 수(Th1)의 연속적 기호를 갖고, 각각의 제2 부분은 적어도 제2 기호 그룹의 미리 정의된 제2 수(Th2)의 연속적 기호를 가지며, 비트스트림의 나머지 파트들은 제3 부분들(N1, N2, N3)이다. 즉, 제3 부분들(N1, N2, N3)은 비트스트림에 나타날 수 있는 임의의 기호들을 갖지만, 제1 부분으로서의 자격을 얻기에는 제1 기호 그룹(S1)의 충분하지 않은(즉 미리 정의된 제1 수(Th1) 미만의) 연속적 기호들, 및 제2 부분으로서의 자격을 얻기에는 제2 기호 그룹의 충분하지 않은(즉 미리 정의된 제2 수(Th2) 미만의) 연속적 기호들을 가질 수 있다. 물론, 제1 기호 그룹(S1)이 제2 기호 그룹(S2)의 서브세트이지만, 제1 부분(J)으로서의 자격을 얻는 연속적 기호들의 서브시퀀스는 제1 부분(J)으로서 인코딩되고, 제2 부분(K)으로서 인코딩되지 않는다. 그 이유는 제1 부분들이 제2 부분들보다 더 높은 효율로 인코딩될 수 있기 때문이다. 게다가, 제1 및 제2 부분들(J, K)은 제3 부분들(N)보다 더 높은 효율로 인코딩될 수 있어, 제2 부분(K)으로서의 자격을 얻는 서브시퀀스들은 제2 부분들로서 인코딩될 것이다.
Th1(예를 들어 3D 메쉬 모델들에 대한)에 대한 적절한 수치 값들은 10-100의 범위 내에 있지만, 입력 시퀀스의 성질, 또는 횡단 트리의 깊이 및 구조 각각에 따라 더 높을 수 있다. Th2(예를 들어 3D 메쉬 모델들에 대한)에 대한 적절한 수치 값들은 20-200의 범위 내에 있지만, 입력 시퀀스의 성질, 또는 횡단 크리의 깊이 및 구조 각각에 따라 더 높을 수 있다. 예시적 값들은 Th1=50 및 Th2=70이다. 이 값들은 3D 메쉬 모델들의 압축에 최적화되고, 특히 3D 메쉬 모델들 내의 반복 구조 검출에 의해 획득되는 인스턴스 위치들의 압축에 최적화된다. 그들은 다른 응용들에 적용될 때 조정될 수 있다. 따라서, 일 실시예에서 트리의 리프 노드들이 3D 메쉬 모델의 포인트들이지만, 다른 실시예에서 트리의 리프 노드들은 다중 연결된 3D 메쉬 모델들 내의 반복 구조들의 인스턴스 위치들이다.
서브시퀀스가 분할될 때, 경계를 표시하는데 적은 바이트의 비용이 든다. 비용은 SO 모델을 S1 또는 S2 모델로 대체함으로써 압축 개선으로 보상된다. S2 모델이 S1보다 더 많은 기호들을 가지므로, SO 모델을 S2로 대체함으로써 획득되는 이득은 더 작다. 따라서, 더 효과적이기 위해 Th2는 Th1보다 더 커야 한다. 그러나, 본 발명은 Th2=Th1 또는 Th2<Th1으로도 효과가 있다.
또한 도 3에 도시된 바와 같이, 디코더 제어 정보가 비트스트림의 처음에 인코딩된다. 디코더 제어 정보는 비트스트림의 제1 부분, 제2 부분 및 제3 부분 사이의 경계 위치들을 표시하는 값들(C1)을 포함한다.
이하에, 일 예가 주어진다. 이하의 기호 시퀀스를 고려한다:
0212301230011323000111011011001011100001.
16개의 "0", 16개의 "1", 4개의 "2", 4개의 "3"이 존재한다. 그래서, 기호 시퀀스의 엔트로피는 -16*log2(16/40) - 16*log2(16/40) - 4*log2(4/40) - 4*log2(4/40)
Figure pct00003
68.88이다. 그것은 직접 산술 코딩이 할 수 있는 최선이다.
그러나, 기호 시퀀스를 2개의 서브시퀀스로 분할하면 추가 압축이 달성될 수 있다. 제1 서브시퀀스(0212301230011323)는 모든 가능한 타입들의 기호들을 포함하고 16개의 기호로 종료된다. 그것의 4개의 기호 타입은 균일하게 분포되어, -4*log2(4/16) - 4*log2(4/16) - 4*log2(4/16) - 4*log2(4/16) = 32의 엔트로피를 갖는다.
제2 서브시퀀스(000111011011001011100001)는 2개의 타입의 기호들, 즉 16개의 "0" 및 16개의 "1"만을 포함하고, -16*log2(16/32) - 16*log2(16/32) = 32의 엔트로피를 갖는다.
전체 엔트로피는 32+32=64이다. 그러므로, 아래에 정의된 바와 같이, 분할 포인트가 적절히 주어지는 한 추가 개선이 이루어질 수 있다. 분할 포인트 표현의 비용은 다수 기호들의 압축을 위한 사소한 오버헤드이고, 그것도 본 발명에 의해 최적화된다.
예를 들어 옥트리 코딩을 위한 본 발명에 따른 적응적 엔트로피 코딩 방법은 다음과 같이 작용한다. 상기 언급된 바와 같이, 대다수의 옥트리 기호들은 2진 표현에서 하나의 "1"만을 갖는다. 2개의 기호 세트는 SO = {1, 2, 3 ... 255} 및 S1 = {1, 2, 4, 8, 16, 32, 64, 128}로서 정의되며, 즉 S1은 2진 표현에서 하나의 "1"만을 갖는 기호들이다. S1 기호들이 독립적으로 코딩되었다면, 이것은 엔트로피를 감소시키지만, 그러한 기호들의 위치를 지정하는 비트들의 오버헤드를 초래할 것이다. 본 발명은 실질적으로 긴 연속의 S1 기호들을 검출하고 인코딩하는 것만으로 엔트로피 감소 및 오버헤드 둘 다를 최적화한다.
압축을 더 개선하기 위해, 다른 기호 세트 S2 = {3, 5, 9, 17, 33, 65, 129, 6, 10, 18, 34, 66, 130, 12, 20, 36, 68, 132, 24, 40, 72, 136, 48, 80, 144, 96, 160, 192, 1, 2, 4, 8, 16, 32, 64, 128}이 정의되며, 그의 요소들은 2진 표현에서 2개(즉 1개 또는 2개)까지의 "1"들을 갖는 기호들이다. S2에 포함되는 기호들의 그룹을 코딩하는 것도 어떤 조건들에서 압축을 개선한다. 따라서, 본 발명은 상이한 기호 세트들 내의 기호들을 독립적으로 인코딩하고/하거나 디코딩하기 위해 2개 또는 3개의 산술 코덱을 이용한다. 일 실시예에서, 2개 또는 3개의 산술 코덱은 동시에, 또는 적어도 부분적인 시간 중첩으로 동작한다. 따라서, 전체 인코딩 및/또는 디코딩 프로세스가 가속된다.
원칙적으로, 비트스트림의 상이한 부분들 및 타입들의 부분들(J, K, N)은 임의의 방식으로 결정될 수 있다. 비트스트림의 상이한 부분들을 결정하는 하나의 예시적 방법은 이하 도 7에서 설명되며, 도 7은 비트스트림을 제1 부분, 제2 부분 및 제3 부분로 분할하는 예시적 방법을 도시한다.
도 7에서, 임의의 전자 저장 장치로부터 기호들의 입력 시퀀스를 수신하거나 판독한 후에, 기호들은 처음부터 스캐닝되고, Th1보다 많은 연속적 S2 기호들을 포함하는 모든 서브시퀀스들이 발견되며, 여기서 Th1은 이미 앞서 정의된 바와 같은 미리 정의된 임계값이다. 이 서브시퀀스들을 L1, L2 ... Ln으로 표시하는 한편 나머지는 N1, N2 ... Nn으로 표시한다. 이것은 도 7의 라인 #1에 도시된 바와 같은 구조를 야기한다.
그 다음, Th1보다 많은 연속적 S1 기호들을 포함하는 서브시퀀스들에 대한 이전 단계에서 발견되는 각각의 L 타입 서브시퀀스를 검색한다. 그들을 J1, J2 ... Jm으로 표시한다. Ji들을 Li로부터 제거함으로써 획득되는 서브시퀀스들은 K1, K2 ... Kn으로 표시된다(도 7의 라인 #2 참조). Th2보다 더 적은 기호들을 포함하는 Kj들은 Ni로 다시 돌아가며, 여기서 Th2는 상술한 바와 같은 S2 기호들에 대한 미리 정의된 임계값이다(도 7의 라인 #3 참조). 이러한 방법으로, 기호 시퀀스는 3개의 타입(J, K 및 N)의 다수의 서브시퀀스들(본 명세서에서 부분들 또는 클립들이라고도 불림)로 분할된다. 각각의 제1 타입의 부분들(J)은 적어도 Th1 연속적 S1 기호들(제1 기호 그룹)을 갖고, 각각의 제2 타입의 부분들(K)은 적어도 Th2 연속적 S2 기호들(제2 기호 그룹)을 가지며, 입력 비트스트림의 나머지 파트들은 Th1 미만의 연속적 S1 기호들 및 Th2 미만의 연속적 S2 기호들을 갖는 제3 부분들(N1 , N2 , N3)이다. 비트스트림은 2개의 연속적 파트, 즉 적어도 K 타입의 모든 부분들을 포함하는 제1 연속적 파트(H1), 및 J 및 N 타입의 부분들만을 포함하는 제2 파트(H2)로 논리적으로 분할될 수 있다. 공간 트리들을 인코딩하기 위해, 통상 트리 구조의 리프 노드들을 횡단하는 것으로 종료되는 횡단 순서가 사용된다. 예를 들어 3D 메쉬 모델들에 대해, 리프 노드는 모델의 하나의 단일 포인트에 대응한다. 따라서, 스트림(및 따라서 제2 파트(H2))은 항상 J 타입 서브시퀀스로 종료된다.
예시적 최종 클립(헤더를 갖지 않음)이 도 4에 도시되며, c1 ... c6는 서브시퀀스들의 경계들의 위치 지시자들이다. 디코딩은 다음과 같이 동작한다. 경계들에 관하여, 일 실시예에서의 인코딩은 비트스트림의 끝이 항상 알려져 있으므로, 그 끝으로부터 시작된다. 일 실시예에서, 위치 지시자들은 마지막 지시자(c6)가 디코딩에 먼저 사용되므로, 헤더(도 10 참조, 도 4에 도시되지 않음)에서 역 순서(c6, ..., c1)로 인코딩/디코딩된다. 최종 부분은 항상 J 타입(즉 1로 설정된 단지 1 비트)인데, 그 이유는 J 타입 값이 공간 트리의 리프 노드에 대응하기 때문이다. 따라서, 비트스트림의 최종 부분(J3)은, 기호 #100에서 시작되어 스트림의 마지막 기호로 종료되는, J 타입 부분이다. 기호들은 제1 기호 세트(S1)가 J 타입 서브시퀀스이므로, 제1 기호 세트에서 나온다.
스트림의 구조에 관한 정보는 헤더에서 인코딩된다. 도 10에 도시된 바와 같이, 스트림에 임의의 K 시퀀스가 존재하는지를 표시하는 단일 비트(91)가 헤더에서 인코딩될 수 있다(예를 들어 "1"로 설정되는 초기 비트(91)는 K 시퀀스가 존재하는 것을 의미함). 일 실시예에서, K 시퀀스가 존재하면, 후속 코드 워드(92)(예를 들어 4 비트)는 스트림에 마지막 K 시퀀스의 위치를 표시한다. 이 정보는 후술되는 바와 같이, 디코딩과 관련된다. 코드 워드(92)는 제1 파트(H1)와 제2 파트(H2) 사이의 경계를 표시하는 시퀀스 번호일 수 있다(그래서 도 4의 예에서, 코드 워드(92)는 끝에서 시작될 때 c2를 제4 인코딩 경계 위치인 것으로서 표시하는 값 "4"(이하 참조), 또는 끝에서 시작될 때 c2를 제5 디코딩 경계 위치인 것으로서 표시하는 값 "5", 또는 c2를 표시하는 값 "2"를 가질 수 있거나, 그것은 마지막 K 시퀀스(K1)의 위치 범위 내의 임의의 값, 예를 들어 50, 또는 유사한 값일 수 있음). 따라서, 이러한 코드 워드(92)는 또한, 마지막 K 시퀀스로 종료되는, 비트스트림의 제1 파트(H1)의 마지막 부분을 표시한다.
일 실시예에서, 후속의 제2 코드 워드(93)는 인코딩된 경계 위치들의 수를 표시한다. 제1 및 제2 코드 워드(92, 93)는, 규약에 따라, 비트스트림에 상이하게 위치될(예를 들어 스와핑될) 수 있다는 것에 주목한다. 그 다음, 값들이 경계 위치들(cmax, ..., c0)(예를 들어 가능한 스트림 길이에 따라 각각 12 비트)를 나타내는 부분(94)이 후속하고, 이어서 실제 비트스트림(95)이 후속한다. 일 실시예에서, 제1 파트(H1)는 단 1개의 N 타입 부분 및 1개의 K 타입 부분을 포함하는 것이 암시된다. 이 경우에, 비트스트림의 제1 파트(H1)의 마지막 부분을 표시하는 코드 워드(92)는 필요하지 않다.
따라서, 헤더 정보 내의 정보는 다음 서브시퀀스(역 순서임)(N3)가 여전히 제2 파트(H2)에 있으며, 따라서 N 타입이어야 하는 것을 나타내는데, 그 이유는 제2 파트(H2)는 교호하는 J 타입 및 N 타입 부분들을 갖고 J 타입 부분으로 종료되기 때문이다. 이 예에서 N3 서브시퀀스는 매우 짧으며, 즉 이 예에서 N 서브시퀀스들에 대한 디폴트 길이인 단 1개의 기호인 것이 결정된다. 따라서, 이전 경계 위치가 c6=100이었으므로, 다음 경계는 c5=99이며, 즉 N3 서브시퀀스는 [99, 100]이다. 그 다음, 다음 부분(역 순서임)(J2)은 제2 파트(H2)에 있고, 따라서 J 타입이어야 하는 것이 결정된다. 그것의 하부 경계는 c4=72이다. 그 다음, 다음 부분(역 순서임)(N2)은 제2 파트(H2)에 있고, 따라서 N 타입이어야 하는 것이 결정된다. 그것의 하부 경계는 c3=70이다. 그 다음, 다음 부분(역 순서임)(J1)은 제2 파트(H2)에 있고, 따라서 J 타입이어야 하는 것이 결정된다. 그것의 하부 경계는 c2=50이다. 여기서, 제4 인코딩 경계 위치 값인 것으로서의 c2는 제1 파트(H1)와 제2 파트(H2) 사이의 경계인 것이 결정될 수 있다. 그 다음, 다음 부분(역 순서임)(K1)은 c1=30의 하부 경계를 갖고, 따라서 제1 파트 지시자(92)에 따른 제1 파트(H1)의 최종 부분인 것이 결정된다. 따라서, 그것은 K 타입이어야 한다.
즉, 이 예시적 실시예에서, 경계 위치들의 예비 인코딩은 [100,99,72,70,50,30]이고, 제2 파트(H2)는 제5 디코딩 경계 위치, 즉 c2=50에서 시작할 것이다. 부가 비트 절약을 제공하는 경계 위치들의 최종 인코딩을 획득하기 위해, 경계 위치들의 예비 인코딩은 다음과 같이 더 개선된다.
적어도 N 타입의 부분들의 길이들은 디폴트 길이 값, 예를 들어 1과 비교된다. N 타입의 부분은 디폴트 길이와 같은 길이를 갖는 것이 결정되고, 이러한 결정에 대응하여, N 타입 부분의 하부 경계의 인코딩이 스킵된다. 따라서, 1개의 경계 값의 인코딩이 절약될 수 있다. 디폴트 길이 이외의 상이한 길이를 갖는 N 타입 부분들을 표시하기 위해, 인접한(예를 들어 다음) J 타입 부분의 경계 위치들은 헤더에서 스와핑된다. 즉, 경계 위치들은 통상 단조적 순서(감소하는 cmax, ..., c0 또는 증가하는 c0, ..., cmax)로 인코딩되고(도 10 참조), 따라서 그의 값들은 단조적 순서로 증가 또는 감소하고 있지만, J 타입 부분의 2개의 경계 위치는 인접한 N 부분이 디폴트 길이를 가지면 스와핑된다.
즉, 이 예시적 실시예에서, 경계 위치들의 인코딩은 [100,70,72,50,30]일 것이다. 제2 파트(H2)는 제4 인코딩 경계 위치 c2=50(또는 각각 제5 디코딩 경계 위치 c2=50, 아래 참조)에서 시작할 것이다.
스와핑된 경계 위치들이 디코딩 동안 그의 값들에 따라 검출될 수 있으므로, 비트스트림의 제2 파트(H2)에서 N 타입 시퀀스들의 경계 위치들을 표시하는데 사용되는 비트들이 존재하지 않는다. 공통 3D 메쉬 모델들 이외의 데이터 구조들에 대한 일 실시예에서, 유사한 인코딩 방법이 비트스트림의 제1 파트(H1)에서도 사용될 수 있다.
상기 예시적 실시예에서, 경계 위치들의 디코딩은 다음과 같을 것이다(도 10 참조): 우선, 스트림의 제1 비트(91)로부터 적어도 하나의 K 시퀀스가 존재한다는 것이 디코딩된다. 그 다음, 일 실시예에서, 마지막 K 시퀀스 뒤에 경계 위치(c2)를 표시하는 지시자(92)가 디코딩되고, 예를 들어 값 4를 갖는다. 그 다음, 일 실시예에서, 인코딩된 경계 위치들의 수를 나타내는 값(93)이 5인 것으로 디코딩된다. 그 다음, 다음 (number_of_boundary_positions)*12 비트는 경계 위치 값들, 즉 [100,70,72,50,30]으로서 디코딩된다. 일 실시예에서, 지시자(92)에 따르면, 제4 인코딩된 경계 위치 값(50임) 전의 경계 위치 값들은 제2 파트(H2)에 있다. 따라서, 값들이 단조롭게 감소하지 않으면(이 예에서), 1 비트 N 부분들을 표시하는 경계 값이 생략되었다. 따라서, 디코더는 제3 값(즉 72)이 제2 값(즉 70)보다 더 높은 것을 검출하고, 그 결과 암시된 경계 위치를 100-1=99인 (previous_boundary_position-1)에 삽입하고, 스와핑된 경계 위치들을 다시 그의 정확한 순서로 더 스와핑한다. 그러므로, 디코딩은 [100,99,72,70,...]으로 시작하는 디코딩된 위치 시퀀스를 검색할 수 있다. 후속 경계 위치들은 이 예에서 단조롭다. 그러므로, 디코딩된 위치 시퀀스는 [100,99,72,70,50,30]이다.
마지막 K 부분을 표시하는 지시(92), 및 따라서 비트스트림의 제1 파트(H1)는 부분들의 타입을 결정하기 위해 사용될 수 있다. 즉, 일 실시예에서, 지시(92)가 예를 들어 5라는 사실로부터, 디코더는 제5 값(즉 50)이 비트스트림의 제1 파트(H1)와 제2 파트(H2) 사이의 경계인 것을 결정한다. 그러므로, 디코더는 선행하는 4개의 값(100,99,72,70)은 J 타입 부분과 및 N 타입 부분 사이의 경계 위치들이고, 제5 경계 위치(50)는 J 타입 부분과 K 타입 부분 사이에, 또는 H1과 H2 사이에 각각 있고, 나머지 경계 위치들(이 경우에 단지 30)은 K 타입 부분과 N 타입 부분 사이에 있는 것을 결정한다.
도 5는 본 발명의 일 실시예에 따른 인코딩 방법의 순서도를 도시한다. 이 실시예에서, 비트스트림을 인코딩하는 방법은 이하의 단계들을 포함한다: 제1 단계는 적어도 2진 기호들의 제1 기호 그룹 및 제2 기호 그룹을 정의하는 단계(51)를 포함하며, 여기서 제1 기호 그룹(S1)은 제2 기호 그룹(S2)의 서브세트이다.
제2 단계는 비트스트림 내에서 2개 이상의 제1 부분(J1, J2), 0개 이상의 제2 부분(K1) 및 2개 이상의 제3 부분(N1, N2, N3)을 결정하는 단계(52)를 포함하며, 여기서 각각의 제1 부분(J)은 적어도 제1 기호 그룹(S1)의 미리 정의된 제1 수(Th1)의 연속적 기호를 포함하고, 각각의 제2 부분(K)은 적어도 제2 기호 그룹의 미리 정의된 제2 수(Th2)의 연속적 기호들을 가지며, 비트스트림의 나머지는 제3 부분들(N1, N2, N3)로 구성된다.
제3 단계는 비트스트림에서 적어도 제1 부분 및 제3 부분(J1, J2, N2)만을 포함하는 연속적 파트(H2)를 결정하는 단계(53)를 포함한다.
제4 단계는 비트스트림을 인코딩하는 단계(54)를 포함하며, 여기서 상기 제1 부분들은 제1 코드를 사용하여 인코딩되고(54A), 상기 제2 부분들은 제2 코드를 사용하여 인코딩되며(54B), 상기 제3 부분들은 제3 코드를 사용하여 인코딩된다(54C).
제5 단계는 비트스트림 내의 제1 부분, 제2 부분 및 제3 부분 사이의 경계 위치들을 표시하는 값들(C1)을 인코딩하는 단계(55)를 포함하며, 여기서 제1 부분 및 제3 부분만을 포함하는 상기 연속적 파트(H2)에서, 제1 부분(J1, J2)과 인접한 제3 부분(N2)(즉 제1 부분(J1, J2)에 인접함) 사이의 경계 위치의 인코딩은 제3 부분(N2)의 길이(LN2)가 미리 정의된 길이이면 스킵되고, 제3 부분(N2)의 길이(LN2)는 그것이 미리 정의된 길이와 상이하면 암시적으로 인코딩된다. 미리 정의된 길이는 양(즉 영이 아님)이어야 하며, 바람직하게는 그것은 1이다. 그러나, 그것은 데이터 구조의 특유의 특징들에 따라 다른 값, 예를 들어 2일 수 있다. 미리 정의된 길이는 예를 들어 디코더 제어 정보로서 인코딩되는 파라미터로서 암시적으로 미리 정의되거나 명시적으로 미리 정의될 수 있다.
일 실시예에서, 미리 정의된 길이는 1이도록 암시적으로 미리 정의된다. 이 실시예는 3D 메쉬 모델들을 인코딩하는 공간 트리 기반 접근법들의 공간 트리의 트리 구조의 횡단에서 기인하는 비트스트림들을 코딩하는데 특히 유리하다.
일 실시예에서, 비트스트림을 인코딩하는 방법은 적어도 2진 기호들의 제1 기호 그룹 및 제2 기호 그룹(S1, S2)을 정의하는 단계 - 제1 기호 그룹(S1)은 제2 기호 그룹(S2)보다 더 적은 기호들을 포함하고 제1 기호 그룹의 기호들도 제2 기호 그룹에 포함됨 -,
비트스트림 내에서 적어도 제1 기호 그룹(S1)의 정의된 제1 최소 수(Th1)의 연속적 기호를 각각 갖는 2개 이상의 제1 부분(J1, J2), 적어도 제2 기호 그룹(S2)의 정의된 제2 최소 수(Th2)의 연속적 기호를 각각 갖는 0개 이상의 제2 부분(K1), 및 비트스트림의 나머지 부분들을 포함하는 2개 이상의 제3 부분(N1, N2, N3)을 결정하는 단계(같은 타입의 인접한 부분들이 축적되어, 스트림은 교호하는 상이한 타입의 인접 부분들을 가짐),
비트스트림을 적어도 연속적 제1 파트(H1) 및 연속적 제2 파트(H2)로 분할하는 단계 - 제1 파트는 상기 제3 부분들(N1) 및 상기 0개 이상의 제2 부분(K1) 중 적어도 하나를 포함하고, 제2 파트는 상기 제1 부분들(N2) 및 상기 적어도 2개의 제2 부분(J1, J2) 중 적어도 하나를 포함함 -,
비트스트림을 인코딩하는 단계 - 상기 1개 이상의 제1 부분(J1, J2)은 제1 인코더(Enc1)를 사용하여 인코딩되고, 상기 1개 이상의 제2 부분(K1)은 제2 인코더(Enc2)를 사용하여 인코딩되며, 상기 1개 이상의 제3 부분(N1, N2, N3)은 제3 인코더(Enc3)를 사용하여 인코딩됨 -, 및
비트스트림 내의 제1 부분, 제2 부분 및 제3 부분의 길이들을 인코딩하는 단계 - 적어도 제2 파트(H2)에서 제1 부분들(N2, N3)의 길이(LN2, LN3)의 상기 인코딩은 길이가 1이면 스킵됨 - 를 포함한다.
인코딩 방법의 추가 유리한 실시예들이 후술된다.
일 실시예에서, 제1 기호 그룹(S1)은 1로 설정된 하나의 비트 및 0으로 설정된 나머지 비트들을 갖는 2진 기호들을 포함하고, 제2 기호 그룹(S2)은 1로 설정된 1개 또는 2개의 비트를 갖는 2진 기호들을 포함하고 나머지 비트들은 0이다.
일 실시예에서, 비트스트림은 특히 3D 메쉬 모델의 공간 데이터 구조의 횡단 옥트리 표현을 나타낸다.
일 실시예에서, 인코딩 단계(54)는 제1 기호 세트(S1)에 기초하여 제1 코드를 사용하는 제1 인코딩 단계(54A), 제2 기호 세트(S2)에 기초하여 제2 코드를 사용하는 제2 인코딩 단계(54B) 및 제3 기호 세트(S3)에 기초하여 제3 코드를 사용하는 제3 인코딩 단계(54C)를 포함한다. 일 실시예에서, 제1 인코딩, 제2 인코딩 및 제3 인코딩(54A, 54B, 54C)의 적어도 일부는 동시에 수행된다.
일 실시예에서, 디코더 제어 정보가 비트스트림의 처음에 인코딩되며, 디코더 제어 정보는 비트스트림의 제1 부분, 제2 부분 및 제3 부분 사이의 경계 위치들을 표시하는 상기 값들(C1)을 포함한다.
일 실시예에서, 비트스트림 내의 제1 부분, 제2 부분 및 제3 부분의 경계 위치들 또는 길이들은 값들(cmax, ..., c0)의 시퀀스로서 인코딩되며, 비트스트림의 제1 파트(H1)에 대해 및 제2 파트(H2)의 제1 부분들에 대해 경계 위치들을 나타내는 값들은 경계가 스킵되지 않으면 단조적 순서로 인코딩되고, 제1 부분(J1, J2)과 인접한 제3 부분(N2) 사이의 경계 위치의 상기 암시적 인코딩은 상기 제1 부분(J1)의 경계 순서(즉 하부 및 상부 경계)를 스와핑하는 것을 포함한다. 일 실시예에서, 비트스트림의 제3 부분(N2)의 상기 미리 정의된 길이(LN2)는 1이다.
도 6은 본 발명의 일 실시예에 따른 디코딩 방법의 순서도를 도시한다. 비트스트림을 디코딩하는 방법은 이하의 단계들을 포함한다.
제1 단계는 비트스트림의 처음으로부터 제어 정보(C1)를 디코딩하는 단계(61)를 포함한다.
제2 단계는 상기 제어 정보에 따라, 비트스트림 내에서 제1 기호 그룹(S1)의 연속적 기호들을 각각 갖는 적어도 2개 이상의 제1 부분(J1, J2), 제2 기호 그룹(S2)의 연속적 기호들을 각각 갖는 0개 이상의 제2 부분(K1), 및 제3 기호 그룹(S3)의 기호들을 갖는 2개 이상의 제3 부분(N1, N2, N3)을 결정하는 단계(62)를 포함하며, 여기서 상기 제3 부분들(N1) 및 상기 0개 이상의 제2 부분(K1) 중 적어도 하나는 비트스트림의 연속적 제1 파트(H1)에 있고, 상기 제1 부분들(N2) 및 상기 적어도 2개의 제2 부분(J1, J2) 중 적어도 하나는 비트스트림의 연속적 제2 파트(H2)에 있다.
제3 단계는 상기 연속적 기호들을 디코딩하는 단계(64)를 포함하며, 적어도 이하의 3개의 서브 단계를 갖는다.
제1 서브 단계는 적어도 2개 이상의 제1 부분(J1, J2)의 상기 연속적 기호들을 제1 기호 디코더를 사용하여(제1 기호 그룹(S1)에 기초하여) 고정 길이의 기호들로 디코딩하는 단계(64A)를 포함한다.
제2 서브 단계는 적어도 하나의 제2 부분(K1)이 결정되었다면, 0개 이상의 제2 부분(K1)의 상기 연속적 기호들을 제1 기호 디코더를 사용하여(제2 기호 그룹(S2)에 기초하여) 상기 고정 길이의 기호들로 디코딩하는 단계(64B)를 포함한다. 제2 기호 그룹(S2)은 제1 기호 그룹(S1)의 기호들 및 부가적 기호들을 포함한다.
제3 서브 단계는 상기 2개 이상의 제3 부분들(N1, N2, N3)의 기호들을 제3 기호 디코더를 사용하여(제3 기호 그룹(S3)에 기초하여) 상기 고정 길이의 기호들로 디코딩하는 단계(64C)를 포함하며, 제3 기호 그룹(S3)은 상기 제2 기호 그룹(S2)에 포함되지 않은 기호들만을 포함한다.
최종적으로, 제4 단계(66)는 비트스트림의 상기 제1 부분, 제2 부분 및 제3 부분의 디코딩된 기호들을 상기 제어 정보에 따른 순차적 순서로 재배열하고 제공하는 단계를 포함한다.
디코딩 방법의 추가 유리한 실시예들이 후술된다.
일 실시예에서, 제1 기호 그룹은 1로 설정된 1개 비트를 갖는 2진 기호들을 포함하고 나머지 비트들은 0이고, 제2 기호 그룹은 1로 설정된 1개 또는 2개의 비트를 갖는 2진 기호를 포함하고 나머지 비트들은 0이다.
일 실시예에서, 비트스트림은 3D 메쉬 모델의 횡단 옥트리 표현을 나타낸다.
일 실시예에서, 비트스트림의 처음으로부터 제어 정보(C1)를 디코딩하는 단계(61)는 비트스트림 내의 제1 부분, 제2 부분 및 제3 부분의 경계 위치들을 표시하는 값들(cmax, ..., c0)의 시퀀스를 디코딩하는 단계를 포함하며, 여기서 비트스트림의 제1 파트(H1)에 대한 경계 위치들을 나타내는 값들은 단조적 순서를 갖고, 비트스트림의 제2 파트(H2)의 제1 부분들(J1, J2)에 대한 경계 위치들을 나타내는 값들은 단조적 순서를 갖는다.
일 실시예에서, 디코딩 방법은 스와핑된 단조적 순서를 가진 비트스트림의 제2 파트(H2)에서 경계 위치들을 나타내는 적어도 하나의 값 쌍(c3, c4)을 검출하는 단계(66B), 및 상기 값들 중 하나에 따른 경계 위치에 상기 적어도 하나의 값 쌍(c3, c4) 사이의 차이에 따른 길이를 갖는 상기 제1 부분들(N2, N3) 중 하나를 삽입하는 단계(66C)를 더 포함한다.
일 실시예에서, 적어도 2개 이상의 제1 부분(J1, J2)의 상기 디코딩(64A), 적어도 하나의 제2 부분(K1)이 결정되었다면 0개 이상의 제2 부분(K1)의 상기 디코딩(64B) 및 상기 2개 이상의 제3 부분(N1, N2, N3)의 상기 디코딩(64C)은 적어도 부분적으로 동시에(적어도 부분적인 시간 중첩) 수행된다.
일 실시예에서, 비트스트림의 제1 부분, 제2 부분 및 제3 부분의 디코딩된 기호들을 제공하는 단계(66)는 상기 제1 부분, 제2 부분 및 제3 부분을 재배열하는 단계(66A)를 포함한다.
일 실시예에서, 제어 정보(C1)는 적어도 제1 부분, 제2 부분 및 제3 부분의 길이들을 포함한다. 길이들은 경계 위치들의 형태로 표현될 수 있다.
도 11은 본 발명의 일 실시예에 따른 비트스트림을 인코딩하는 장치(700)의 블록도를 도시한다. 이 실시예에서, 비트스트림을 인코딩하는 장치는 이하의 모듈들을 포함한다. 각각의 모듈은 개별 하드웨어 블록으로서 구현될 수 있다. 제1 모듈(751)은 적어도 2진 기호들의 제1 기호 그룹 및 제2 기호 그룹을 정의하는 기호 정의 모듈이며, 제1 기호 그룹(S1)은 제2 기호 그룹(S2)의 서브세트이다.
제2 모듈(752)은 비트스트림 내에서 2개 이상의 제1 부분(J1, J2), 0개 이상의 제2 부분(K1) 및 2개 이상의 제3 부분(N1, N2, N3)을 결정하는 결정 모듈이며, 각각의 제1 부분(J)은 적어도 제1 기호 그룹(S1)의 미리 정의된 제1 수(Th1)의 연속적 기호를 갖고, 각각의 제2 부분(K)은 적어도 제2 기호 그룹의 미리 정의된 제2 수(Th2)의 연속적 기호를 가지며, 비트스트림의 나머지는 제3 부분들(N1, N2, N3)로 구성된다.
제3 모듈(753)은 비트스트림에서 적어도 제1 부분 및 제3 부분(J1, J2, N2)만을 포함하는 연속적 파트(H2)를 결정하는 결정 모듈이다.
제4 모듈(754)은 비트스트림을 인코딩하는 인코딩 모듈이며, 상기 제1 부분들은 제1 코드를 사용하여 인코딩되고(754A), 상기 제2 부분들은 제2 코드를 사용하여 인코딩되며(754B), 상기 제3 부분들은 제3 코드를 사용하여 인코딩된다(754C).
제5 모듈(755)은 비트스트림 내의 제1 부분, 제2 부분 및 제3 부분 사이의 경계 위치들을 표시하는 값들(C1)을 인코딩하는 인코딩 모듈이며, 제1 부분 및 제3 부분만을 포함하는 상기 연속적 파트(H2)에서, 제1 부분(J1, J2)과 인접한 제3 부분(N2)(즉 제1 부분(J1, J2)에 인접함) 사이의 경계 위치의 인코딩은 제3 부분(N2)의 길이(LN2)가 미리 정의된 길이이면 스킵되고, 제3 부분(N2)의 길이(LN2)는 그것이 미리 정의된 길이와 상이하면 암시적으로 인코딩된다. 미리 정의된 길이는 양(즉 영이 아님)이어야 하며, 바람직하게는 그것은 1이다. 그러나, 그것은 데이터 구조의 특유의 특징들에 따라 다른 값, 예들 들어 2일 수 있다. 미리 정의된 길이는 예를 들어 디코더 제어 정보로서 인코딩되는 파라미터로서 암시적으로 미리 정의되거나 명시적으로 미리 정의될 수 있다.
도 12는 본 발명의 일 실시예에 따른 비트스트림을 디코딩하는 장치(800)의 블록도를 도시한다. 이 실시예에서, 비트스트림을 디코딩하는 장치는 이하의 모듈들을 포함한다. 각각의 모듈은 개별 하드웨어 블록으로서 구현될 수 있다. 제1 모듈(861)은 비트스트림의 처음으로부터 제어 정보(C1)를 디코딩하는(61) 디코딩 모듈이다.
제2 모듈(862)은 상기 제어 정보에 따라, 비트스트림 내에서 제1 기호 그룹(S1)의 연속적 기호들을 각각 갖는 적어도 2개 이상의 제1 부분(J1, J2), 제2 기호 그룹(S2)의 연속적 기호들을 각각 갖는 0개 이상의 제2 부분(K1), 및 제3 기호 그룹(S3)의 기호들을 갖는 2개 이상의 제3 부분(N1, N2, N3)을 결정하는(62) 결정 모듈이며, 여기서 상기 제3 부분들(N1) 및 상기 0개 이상의 제2 부분(K1) 중 적어도 하나는 비트스트림의 연속적 제1 파트(H1)에 있고, 상기 제1 부분들(N2) 및 상기 적어도 2개의 제2 부분(J1, J2) 중 적어도 하나는 비트스트림의 연속적 제2 파트(H2)에 있다.
제3 모듈(864)은 상기 연속적 기호들을 디코딩하는 디코딩 모듈이고, 적어도 이하의 3개의 서브 모듈을 갖는다.
제1 서브 모듈(864A)은 적어도 2개 이상의 제1 부분(J1, J2)의 상기 연속적 기호들을 제1 기호 디코더를 사용하여(제1 기호 그룹(S1)에 기초하여) 고정 길이의 기호들로 디코딩하는 제1 디코딩 모듈이다.
제2 서브 모듈(864B)은 적어도 하나의 제2 부분(K1)이 결정되었다면, 0개 이상의 제2 부분(K1)의 상기 연속적 기호들을 제1 기호 디코더를 사용하여(제2 기호 그룹(S2)에 기초하여) 상기 고정 길이의 기호들로 디코딩하는 제2 디코딩 모듈이다. 제2 기호 그룹(S2)은 제1 기호 그룹(S1)의 상기 기호들 및 부가적 기호들을 포함한다.
제3 서브 모듈(864C)은 상기 2개 이상의 제3 부분(N1, N2, N3)의 기호들을 제3 기호 디코더를 사용하여(제3 기호 그룹(S3)에 기초하여) 상기 고정 길이의 기호들로 디코딩하는 제3 디코딩 모듈이며, 제3 기호 그룹(S3)은 상기 제2 기호 그룹(S2)에 포함되지 않은 기호들만을 포함한다.
제4 모듈(866)은 비트스트림의 상기 제1 부분, 제2 부분 및 제3 부분의 디코딩된 기호들을 상기 제어 정보에 따른 순차적 순서로 재배열하고 제공하는 재구성 및 출력 모듈이다. 즉, 이 모듈은 비트스트림의 다양한 부분들을 디코딩된 비트스트림으로 재구성한다.
디코딩 장치의 일 실시예에서, 비트스트림의 처음으로부터 제어 정보(C1)를 디코딩하는 디코딩 모듈(861)은 비트스트림 내의 제1 부분, 제2 부분 및 제3 부분의 경계 위치들을 표시하는 값들(cmax, ..., c0)의 시퀀스를 디코딩하는 것을 수행하고, 비트스트림의 제1 파트(H1)에 대한 경계 위치들을 나타내는 값들은 단조적 순서를 갖고, 비트스트림의 제2 파트(H2)의 제1 부분들(J1, J2)에 대한 경계 위치들을 나타내는 값들은 단조적 순서를 가지며, 디코딩 모듈(861)은 스와핑된 단조적 순서를 가진 비트스트림의 제2 파트(H2)에서 경계 위치들을 나타내는 적어도 하나의 값 쌍(c3, c4, 상기와 도 4 참조)을 검출하는 검출 모듈(866B), 및 상기 값들 중 하나에 따른 경계 위치에 상기 적어도 하나의 값 쌍(c3, c4) 사이의 차이에 따른 길이를 갖는 상기 제1 부분들(N2, N3) 중 하나를 삽입하는 삽입 모듈(866C)을 더 포함한다.
도 8은 이미 상술한 바와 같이, 쿼드트리 기반 2D 기하 코딩과 비교되는 옥트리 기반 3D 기하 코딩의 원리를 도시한다.
도 9는 다양한 예시적 비트스트림 구조들을 도시한다. 도 9 a)에 도시된 제1 구조에서, 비트스트림의 제1 파트(H1)는 2개의 K 타입 부분 및 따라서 또한 2개의 N 타입 부분(초기 부분은 통상 옥트리 구조의 루트에 대응하는 N 타입이므로)을 포함한다. 비트스트림의 제2 파트(H2)는 2개의 J 타입 부분, 및 따라서 1개의 N 타입 부분(즉 N 타입 부분들의 수는 J 타입 부분들의 수 마이너스 1임)을 포함한다.
도 9 b)에 도시된 제2 구조에서, 비트스트림의 제1 파트(H1)는 2개의 K 타입 부분 및 단 1개의 N 타입 부분(비어 있지 않은 Th2 차일드 셀들만을 갖는 페어런트 셀의 드문 경우에 대응하고, 따라서 초기 부분은 K 타입임)을 포함한다. 또한, 이러한 경우는 본 발명의 원리들에 따라 취급될 수 있다. 마지막 K 타입 부분은 이경우에 K2 부분이고, 경계 위치들의 수에 따라 디코더는 초기 시퀀스가 K 타입이어야 하는 것을 결정할 수 있다. 비트스트림의 제2 파트(H2)는 2개의 J 타입 부분, 및 따라서 1개의 N 타입 부분을 포함한다.
도 9 c)에 도시된 제3 구조에서, 비트스트림의 제1 파트(H1)는 1개의 K 타입 부분 및 따라서 또한 1개의 N 타입 부분을 포함한다. 제1 파트가 제1 파트 내의 경계 위치들의 수에 따라 인코딩/디코딩될 수 있는 단일 부분만을 포함하면, 상술한 바와 같이, 그것이 K 타입 또는 N 타입인지를 표시하는데 추가 지시가 요구될 수 있다. 비트스트림의 제2 파트(H2)는 6개의 J 타입 부분, 및 따라서 5개의 N 타입 부분들(J 타입 부분들의 수 마이너스 1)을 포함한다.
도 9 d)에 도시된 제4 구조에서, 비트스트림의 제1 파트(H1)는 2개의 K 타입 부분 및 따라서 또한 2개의 N 타입 부분을 포함한다. 비트스트림의 제2 파트(H2)는 6개의 J 타입 부분, 및 따라서 5개의 N 타입 부분들(J 타입 부분들의 수 마이너스 1)을 포함한다.
도 10은 비트스트림의 예시적 헤더의 구조를 도시하고, 이미 상술되었다. 단순화를 위해, 상술한 실시예들은 K 타입 서브시퀀스들의 수를 1로 제한한다. 비트스트림의 처음에 4 비트 2진수(92)가 K 타입의 마지막 서브시퀀스를 표시하기 위해 사용될 수 있다. 이것은 디코딩의 비트스트림의 끝에서 시작하므로 제1 디코딩된 K 타입 서브시퀀스일 것이다. 예를 들어 2진수(92)는 K일 자격이 있는 서브시퀀스가 존재하지 않을 때 "0000"이고, 제1 파트(H1)는 N 타입 부분만을 포함한다.
본 발명은 상당히 다른 통계 분포들을 갖는 다수의 부분들로 분할될 수 있는 데이터를 효율적으로 압축하는 방법을 제공한다. 가장 적절한 통계 모델을 각각의 파트에 적용함으로써, 그것은 더 큰 압축을 달성한다. 특히, 본 발명의 방법은 3D 정점들의 위치들에 대한 옥트리 압축에 매우 잘 작용한다.
코딩의 하나의 장점은 데이터의 상이한 섹션들의 특징들에 맞추어 자체를 조정한다는 것이다. 최상의 확률 모델은 자동으로 선택되고 상이한 부분들의 산술 코딩(또는 다른 엔트로피 압축)에 적용되어, 최적 압축을 이룬다. 본 발명의 다른 장점은 섹션 경계들(section bounds)이, 공지된 방법들과 비교하여, 감소된 수의 인덱스들에 의해 지정된다는 것이다. 구체적으로, 옥트리 압축을 위한 일 실시예에 있어서, 옥트리의 기호들은 255-기호 확률 모델, 36-기호 확률 모델 또는 8-기호 확률 모델에 의해 코딩되는 소수의 부분들로 분할된다. 이 모델들은 대량의 3D 모델들, 특히 복잡하거나 중간으로 복잡한 3D 모델들의 옥트리 데이터에 최적화된다. 본 발명의 또 다른 장점은 대응하는 데이터를 압축하기 위해 상기 초기 확률 모델들을 갖는 3개의(또는 그 이상의) 엔트로피 코덱들이 독립적으로 실행될 수 있는 것이다.
이하의 언급들은 특정 실시예들에 관한 것이다.
일 실시예에서(도 4에서와 같이), 경계 지시자들(bound indicators)의 순서는 인코딩 전에 반전되며, 즉 cy로부터 c1으로 반전된다. 대부분의 Ni들(i>2)은 1개의 요소만을 가지며, 그러한 1-기호 서브시퀀스들에 대해 2개의 경계 지시자를 코딩하는 것은 너무 소모적이라는 것을 주시한다. 따라서, 상부 경계만이 코딩된다. 예를 들어, N3가 1개의 기호만을 갖는 경우, c6가 코딩되었다면 c5는 코딩될 필요가 없다. N3가 다수의 기호들을 가질 때, c5 및 c6 둘 다가 코딩된다. 그러나, c5는 통상의 순서와 달리 c6보다 빨리 코딩된다. 그 다음, 디코더는 N3를 다수의 기호 서브시퀀스로서 간주하라고 지시받을 것이다. 따라서, 모든 경계 지시자들이 필요한 것은 아니다. 코딩되어야 하는 x 경계 위치 지시자들이 존재하면, x는 4 비트 이진수로서 코딩되고 필요한 경계 지시자들은 12 비트 이진수로서 코딩된다. 도 4의 예에서, 비트스트림에 기록되는 값들은 [5: 100, 70, 72, 50, 30]이다. Ni들, Ki들, Ji들 내의 기호들을 각각 3개(또는 2개)의 산술 인코더에 의해 코딩한다.
N 및 K의 초기 확률 모델은 표 1의 확률 모델들에 따라 결정되는 한편, J의 초기 확률은 균일한 분포로서 설정된다. 상기 모델들은 다양한 기하 데이터의 옥트리 기호들의 통계에 기초하여 최적화된다. 3개의 산술 인코더의 결과들이 결합되어 비트스트림에 기록된다. 처음 2개의 산술 인코더는 통상의 기호들에 더하여, 상이한 인코더들에 의해 코딩되는 서브스트림들을 분리하는, 하나 추가의 종단 기호(terminal symbol)를 가질 수 있다.
일 실시예에서, 디코딩은 비트스트림을 압축하는 이하의 단계들을 갖는다: 서브시퀀스(K1)(존재한다면)가 위치되는 곳을 결정하기 위해 1 비트를 판독하는 단계; 4 비트 2진수를 판독하고 그것을 10진 값(x)(x는 비트스트림 내의 경계 지시자들의 수임)으로 디코딩하는 단계; x 12 비트 2진수를 판독하고 그들을 10진 값들(cx 내지 c1)로서 디코딩하는 단계; 디코딩된 경계 지시자들에 따라 기호 시퀀스들의 클립 구조를 구성하는 단계. 도 4를 일 예로서 취하면, x = 5 및 디코딩된 ci들은 [100, 70, 72, 50, 30]이다. 종료 서브시퀀스가 항상 J이므로, cx는 그것의 하부 경계 위치이어야 한다. J3=[100, ∞]를 가지며, "∞"는 상부 경계가 디코딩된 기호들의 수에 의존하는 것을 의미한다.
디코딩의 추가 단계들은 마지막 J 서브시퀀스를 획득한 후에, 이전의 것이 하나씩 구성되는 것이다. ci>ci -1(통상의 단조로운 경우)이면, 이전 서브시퀀스는 1개의 기호만을 갖고, 새로운 값 [ci-1]은 이전의 것 전에 서브시퀀스의 상부 경계로서 삽입된다. 예에서, [100] 및 [70, 99]가 획득된다.
ci>ci -1(단조롭지 않은 경우)이면, 이전 서브시퀀스는 [ci-1>ci]이다. 다시 말하면, 일반적으로 모든 실시예들에서 경계 위치들은 인접한 N 서브시퀀스가 그것의 디폴트 길이를 갖지 않으면 스와핑된다. 현재 서브시퀀스의 경계가 갱신될 수 있다. 예에서, 획득된 경계 [70, 90]는 [72, 90]으로 갱신되고, 새로운 서브시퀀스 경계 [70, 72]가 이용가능하다.
기호들을 미리 정의된 초기 확률 모델들을 갖는 3개 또는 2개의 산술 디코더에 의해 압축 해제한다. 1개의 서브스트림에 대한 종단 기호가 발생할 때, 새로운 디코더가 동작하기 시작한다. 그 다음, 서브시퀀스들 내의 적절한 위치에 들어가는 3개 또는 2개의 일련의 디코딩된 기호들이 획득된다. 옥트리 압축와 관련하여 도시되지만, 당업자들에게 분명한 바와 같이, 다른 타입들의 코딩이 옥트리 압축 외에 구성될 수 있으며, 이들 모두가 본 발명의 사상 및 범위 내에서 고려된다는 점이 주목되어야 한다. 게다가, 특정한 제1 및 제2 기호 세트들(S1, S2)과 관련하여 도시되지만, 당업자들에게 분명한 바와 같이, 다른 타입들의 기호 세트들, 및/또는 부가적 기호 세트 계층들(예를 들어 1로 설정된 1개, 2개 또는 3개 비트를 갖는 기호 세트(S3))이 구성될 수 있으며, 이들 모두가 본 발명의 사상 및 범위 내에서 고려된다는 점이 주목되어야 한다. 이는 특히 코딩될 데이터가 상이한 섹션들에서 상당히 다른 통계 분포를 갖는 경우 해당된다.
본 발명의 기본적인 새로운 특징들이 본 발명의 바람직한 실시예들에 적용되는 바와 같이 도시되고, 설명되며, 언급되었지만, 설명된 장치 및 방법, 개시된 장치들의 형태 및 상세들, 그들의 동작에서 다양한 생략들 및 치환들 및 변경들이 본 발명의 사상으로부터 벗어나지 않고 당업자들에 의해 이루어질 수 있다는 점이 이해될 것이다. 본 발명이 3D 메쉬 모델들에 대해 개시되었지만, 당업자는 본 명세서에 설명되는 방법 및 장치들이 특히 기하 코딩을 위해(그러나 이에 제한되지 않음), 쿼드트리, 옥트리 또는 비교할 만한 유사한 접근법들을 사용하는 임의의 데이터 압축 방법 또는 장치에 적용될 수 있는 것을 이해할 것이다. 예들은 공간 포인트들(즉 공간 좌표들을 갖는 포인트들), 예를 들어 맵 상의 포인트들, 임의의 3차원 구조 상의 포인트들, 또는 유사한 것이다. 공간 포인트들은 그의 2D 또는 3D 좌표들에 의해 표현되고, 트리 구조는 포인트들 사이의 관계를 인코딩하고, 그것은 실제로 인코딩되는 트리이므로, 본 발명은 n차원 좌표들(n = 1, 2, 3, 4 등을 포함함)로 특징지어지는 리프 요소들과, 특히 모델-적응적 엔트로피 코딩 사이의 관계들을 나타내는 임의의 트리상 구조를 인코딩하는데 사용될 수 있다. 동일한 결과들을 달성하기 위해 실질적으로 동일한 방법으로 실질적으로 동일한 기능을 수행하는 요소들의 모든 조합들은 본 발명의 범위 내에 있다는 것이 분명히 의도된다. 설명된 일 실시예로부터 다른 실시예로 요소들의 치환들이 또한 완전히 의도되고 고려된다.
본 발명은 전적으로 예로서 설명되었고, 상세의 수정들이 본 발명의 범위로부터 벗어나지 않고 이루어질 수 있다는 점이 이해될 것이다.
명세서 및 (적절한 경우에) 청구항들 및 도면들에 개시되는 각각의 특징은 독립적으로 또는 임의의 적절한 조합으로 제공될 수 있다. 특징들은 적절한 경우에 하드웨어, 소프트웨어, 또는 이 둘의 조합으로 구현될 수 있다. 청구항들에 나타나는 참조 번호들은 예시만을 위한 것이고 청구항들의 범위에 제한적 영향을 미치지 않는다.
인용문헌들
[OGOO] 0. Devillers, P. Gandoin. Geometric compression for interactive transmission, in: IEEE Visualization, 2000, pp. 319 - 326
[PK05] J.L. Peng, C.-C. Jay Kuo, Geometry-guided progressive lossless 3D mesh coding with octree (OT) decomposition, ACM SIGGRAPH(ACM Transactions on Graphics 24(3)), 609-616, 2005

Claims (15)

  1. 비트스트림을 인코딩하는 방법으로서,
    적어도 2진 기호들의 제1 기호 그룹 및 제2 기호 그룹을 정의하는 단계(51) - 상기 제1 기호 그룹(S1)은 제2 기호 그룹(S2)의 서브세트임 - ;
    상기 비트스트림 내에서 2개 이상의 제1 부분(J1, J2), 0개 이상의 제2 부분(K1) 및 2개 이상의 제3 부분(N1, N2, N3)을 결정하는 단계(52) - 각각의 제1 부분은 적어도 상기 제1 기호 그룹(S1)의 미리 정의된 제1 수(Th1)의 연속적 기호를 갖고, 각각의 제2 부분은 적어도 상기 제2 기호 그룹의 미리 정의된 제2 수(Th2)의 연속적 기호를 가지며, 상기 비트스트림의 나머지 파트들은 제3 부분들(N1, N2, N3)임 - ;
    상기 비트스트림에서 제1 부분 및 제3 부분(J1, J2, N2)만을 포함하는 파트(H2)를 결정하는 단계(53);
    상기 비트스트림을 인코딩하는 단계(54) - 제1 부분들은 제1 코드를 사용하여 인코딩되고(54A), 제2 부분들은 제2 코드를 사용하여 인코딩되며(54B), 제3 부분들은 제3 코드를 사용하여 인코딩됨(54C) - ; 및
    상기 비트스트림 내의 제1 부분, 제2 부분 및 제3 부분 사이의 경계 위치들을 표시하는 값들(C1)을 인코딩하는 단계(55) - 제1 부분 및 제3 부분만을 포함하는 상기 파트(H2)에서 제1 부분(J1, J2)과 인접한 제3 부분(N2) 사이의 경계 위치의 인코딩은 상기 제3 부분(N2)이 미리 정의된 길이를 가지면 스킵되고, 상기 제3 부분(N2)이 상기 미리 정의된 길이 이외의 상이한 길이(LN2)를 가지면 암시적으로 인코딩됨 -
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 제1 기호 그룹(S1)은 1로 설정된 1개 비트 및 0으로 설정된 나머지 비트들을 갖는 2진 기호들을 포함하고, 상기 제2 기호 그룹(S2)은 1로 설정된 1개 또는 2개 비트를 갖는 2진 기호를 포함하고 상기 나머지 비트들은 0인 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 비트스트림은 특히 3D 메쉬 모델의 공간 데이터 구조의 횡단 옥트리 표현(traversed octree representation)을 나타내는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 인코딩(54)은 제1 기호 세트(Smb1)에 기초하여 상기 제1 코드를 사용하는 제1 인코딩(54A), 제2 기호 세트(Smb2)에 기초하여 상기 제2 코드를 사용하는 제2 인코딩(54B) 및 제3 기호 세트(Smb3)에 기초하여 상기 제3 코드를 사용하는 제3 인코딩(54C)를 포함하고, 상기 제1 인코딩, 제2 인코딩 및 제3 인코딩(54A, 54B, 54C)의 적어도 일부는 동시에 수행되는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    디코더 제어 정보가 상기 비트스트림의 처음에 인코딩되며, 상기 디코더 제어 정보는 상기 비트스트림의 제1 부분, 제2 부분 및 제3 부분 사이의 경계 위치들을 표시하는 상기 값들(C1)을 포함하는 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 비트스트림 내의 제1 부분, 제2 부분 및 제3 부분의 경계 위치들 또는 길이들은 값들(cmax, ..., c0)의 시퀀스로서 인코딩되고, 상기 비트스트림의 제1 파트(H1)에 대해 및 상기 제2 파트(H2)의 제1 부분들에 대해 경계 위치들을 나타내는 상기 값들은 경계가 스킵되지 않으면 단조적 순서(monotonic order)로 인코딩되며, 제1 부분(J1, J2)과 인접한 제3 부분(N2) 사이의 경계 위치의 상기 암시적 인코딩은 상기 제1 부분(J1)의 경계 순서(즉 하부 및 상부 경계)를 스와핑하는 것을 포함하는 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 비트스트림의 제3 부분(N2)의 상기 미리 정의된 길이(LN2)는 1인 방법.
  8. 비트스트림을 디코딩하는 방법으로서,
    상기 비트스트림의 처음으로부터 제어 정보(C1)[제1 부분, 제2 부분 및 제3 부분의 길이들을 포함함]를 디코딩하는 단계(61);
    상기 제어 정보에 따라, 상기 비트스트림 내에서 제1 기호 그룹(S1)의 연속적 기호들을 각각 갖는 적어도 2개 이상의 제1 부분(J1, J2), 제2 기호 그룹(S2)의 연속적 기호들을 각각 갖는 0개 이상의 제2 부분(K1), 및 제3 기호 그룹(S3)의 기호들을 갖는 2개 이상의 제3 부분(N1, N2, N3)을 결정하는 단계(62) - 상기 제3 부분들(N1) 및 상기 0개 이상의 제2 부분(K1) 중 적어도 하나는 상기 비트스트림의 연속적 제1 파트(H1)에 있고, 상기 제1 부분들(N2) 및 상기 적어도 2개의 제2 부분(J1, J2) 중 적어도 하나는 상기 비트스트림의 연속적 제2 파트(H2)에 있음 - ;
    상기 적어도 2개 이상의 제1 부분들(J1, J2)의 상기 연속적 기호들을 제1 기호 디코더를 사용하여[제1 기호 그룹(S1)에 기초하여] 고정 길이의 기호들로 디코딩하는 단계(64A);
    적어도 하나의 제2 부분(K1)이 결정되었다면, 상기 0개 이상의 제2 부분(K1)의 상기 연속적 기호들을 제1 기호 디코더를 사용하여[제2 기호 그룹(S2)에 기초하여 - 상기 제2 기호 그룹(S2)은 상기 제1 기호 그룹(S1)의 상기 기호들 및 부가적 기호들을 포함함 -] 상기 고정 길이의 기호들로 디코딩하는 단계(64B); 및
    상기 2개 이상의 제3 부분(N1, N2, N3)의 기호들을 제3 기호 디코더를 사용하여[제3 기호 그룹(S3)에 기초하여] 상기 고정 길이의 기호들로 디코딩하는 단계(64C) - 상기 제3 기호 그룹(S3)은 상기 제2 기호 그룹(S2)에 포함되지 않은 기호들만을 포함함 - ; 및
    상기 비트스트림의 상기 제1 부분, 제2 부분 및 제3 부분의 디코딩된 기호들을 상기 제어 정보에 따른 순차적 순서로 제공하는 단계(66)
    를 포함하는 방법.
  9. 제7항에 있어서,
    상기 제1 기호 그룹은 1로 설정된 1개 비트를 갖는 2진 기호를 포함하고 나머지 비트들은 0이고, 상기 제2 기호 그룹은 1로 설정된 1개 또는 2개 비트를 갖는 2진 기호들을 포함하고 상기 나머지 비트들은 0인 방법.
  10. 제7항 또는 제8항에 있어서,
    상기 비트스트림은 3D 메쉬 모델의 횡단 옥트리 표현을 나타내는 방법.
  11. 제7항 내지 제9항 중 어느 한 항에 있어서,
    비트스트림의 처음으로부터 제어 정보(C1)를 디코딩하는 단계(61)는 상기 비트스트림 내의 제1 부분, 제2 부분 및 제3 부분의 경계 위치들을 표시하는 값들(cmax, ..., c0)의 시퀀스를 디코딩하는 단계를 포함하며, 상기 비트스트림의 제1 파트(H1)에 대한 경계 위치들을 나타내는 값들은 단조적 순서를 갖고, 상기 비트스트림의 제2 파트(H2)의 제1 부분들(J1, J2)에 대한 경계 위치들을 나타내는 값들은 단조적 순서를 가지며,
    스와핑된 단조적 순서를 가진 상기 비트스트림의 제2 파트(H2)에서 경계 위치들을 나타내는 적어도 하나의 값 쌍(c3, c4)을 검출하는 단계(66B); 및
    상기 값들 중 하나에 따른 경계 위치에 상기 적어도 하나의 값 쌍(c3, c4) 사이의 차이에 따른 길이를 갖는 상기 제1 부분들(N2, N3) 중 하나를 삽입하는 단계(66C)를 더 포함하는 방법.
  12. 제7항 내지 제10항 중 어느 한 항에 있어서,
    상기 적어도 2개 이상의 제1 부분(J1, J2)의 상기 디코딩(64A), 적어도 하나의 제2 부분(K1)이 결정되었다면 0개 이상의 제2 부분(K1)의 상기 디코딩(64B) 및 상기 2개 이상의 제3 부분(N1, N2, N3)의 상기 디코딩(64C)은 적어도 부분적으로 동시에(적어도 부분적인 시간 중첩) 수행되며, 상기 비트스트림의 제1 부분, 제2 부분 및 제3 부분의 디코딩된 기호들을 제공하는 단계(66)는 상기 제1 부분, 제2 부분 및 제3 부분을 재배열하는 단계(66A)를 포함하는 방법.
  13. 비트스트림을 인코딩하는 장치(700)로서,
    적어도 2진 기호들의 제1 기호 그룹 및 제2 기호 그룹을 정의하는 정의 모듈(751) - 상기 제1 기호 그룹(S1)은 상기 제2 기호 그룹(S2)의 서브세트임 - ;
    상기 비트스트림 내에서 2개 이상의 제1 부분(J1, J2), 0개 이상의 제2 부분(K1) 및 2개 이상의 제3 부분(N1, N2, N3)을 결정하는 제1 결정 모듈(752) - 각각의 제1 부분은 적어도 상기 제1 기호 그룹(S1)의 미리 정의된 제1 수(Th1)의 연속적 기호를 갖고, 각각의 제2 부분은 적어도 상기 제2 기호 그룹의 미리 정의된 제2 수(Th2)의 연속적 기호를 가지며, 상기 비트스트림의 나머지 파트들은 제3 부분들(N1, N2, N3)임 - ;
    상기 비트스트림에서 제1 부분 및 제3 부분(J1,J2,N2)만을 포함하는 파트(H2)를 결정하는 제2 결정 모듈(753);
    상기 비트스트림을 인코딩하는 제1 인코딩 모듈(754) - 제1 부분들은 제1 코드를 사용하여 제1 서브 인코더(754A)에서 인코딩되고, 제2 부분들은 제2 코드를 사용하여 제2 서브 인코더(754B)에서 인코딩되며, 제3 부분들은 제3 코드를 사용하여 제3 서브 인코더(754C)에서 인코딩됨 - ; 및
    상기 비트스트림 내의 제1 부분, 제2 부분 및 제3 부분 사이의 경계 위치들을 표시하는 값들(C1)을 인코딩하는 제2 인코딩 모듈(755) - 제1 부분 및 제3 부분만을 포함하는 상기 파트(H2)에서 제1 부분(J1, J2)과 인접한 제3 부분(N2) 사이의 경계 위치의 인코딩은 상기 제3 부분(N2)이 미리 정의된 길이를 가지면 스킵되고, 상기 제3 부분(N2)이 상기 미리 정의된 길이 이외의 상이한 길이(LN2)를 가지면 암시적으로 인코딩됨 -
    을 포함하는 장치.
  14. 비트스트림을 디코딩하는 장치(800)로서,
    상기 비트스트림의 처음으로부터 제어 정보(C1)를 디코딩하는 제1 디코딩 모듈(861);
    상기 제어 정보에 따라, 상기 비트스트림 내에서 제1 기호 그룹(S1)의 연속적 기호들을 각각 갖는 적어도 2개 이상의 제1 부분(J1,J2), 제2 기호 그룹(S2)의 연속적 기호들을 각각 갖는 0개 이상의 제2 부분(K1), 및 제3 기호 그룹(S3)의 기호들을 갖는 2개 이상의 제3 부분(N1, N2, N3)을 결정하는 제1 결정 모듈(862) - 제3 부분들(N1) 및 상기 0개 이상의 제2 부분(K1) 중 적어도 하나는 상기 비트스트림의 연속적 제1 파트(H1)에 있고, 제1 부분들(N2) 및 상기 적어도 2개의 제2 부분(J1, J2) 중 적어도 하나는 상기 비트스트림의 연속적 제2 파트(H2)에 있음 - ;
    제2 디코딩 모듈(864) - 상기 제2 디코딩 모듈은,
    상기 적어도 2개 이상의 제1 부분(J1, J2)의 상기 연속적 기호들을 제1 기호 디코더를 사용하여[제1 기호 그룹(S1)에 기초하여] 고정 길이의 기호들로 디코딩하는 제1 디코딩 서브 모듈(864A);
    적어도 하나의 제2 부분(K1)이 결정되었다면 상기 0개 이상의 제2 부분(K1)의 상기 연속적 기호들을 제1 기호 디코더를 사용하여 상기 고정 길이의 기호들로 디코딩하는 제2 디코딩 서브 모듈(864B); 및
    상기 2개 이상의 제3 부분(N1, N2, N3)의 기호들을 제3 기호 디코더를 사용하여[제3 기호 그룹(S3)에 기초하여] 상기 고정 길 이의 기호들로 디코딩하는 제3 디코딩 서브 모듈(864C)
    을 포함하며, 상기 제3 기호 그룹(S3)은 상기 제2 기호 그룹(S2)에 포함되지 않은 기호들만을 포함함 - ; 및
    상기 비트스트림의 상기 제1 부분, 제2 부분 및 제3 부분의 디코딩된 기호들을 상기 제어 정보에 따른 순차적 순서로 제공하는 재구성 및 출력 모듈(866)
    을 포함하는 장치.
  15. 제14항에 있어서,
    상기 비트스트림의 처음으로부터 제어 정보(C1)를 디코딩하는 디코딩 모듈(861)은 상기 비트스트림 내의 제1 부분, 제2 부분 및 제3 부분의 경계 위치들을 표시하는 값들(cmax, ..., c0)의 시퀀스를 디코딩하는 것을 수행하고, 상기 비트스트림의 제1 파트(H1)에 대한 경계 위치들을 나타내는 값들은 단조적 순서를 갖고, 상기 비트스트림의 제2 파트(H2)의 제1 부분들(J1, J2)에 대한 경계 위치들을 나타내는 값들은 단조적 순서를 가지며,
    상기 디코딩 모듈(861)은,
    스와핑된 단조적 순서를 가진 상기 비트스트림의 제2 파트(H2)에서 경계 위치들을 나타내는 적어도 하나의 값 쌍(c3, c4)을 검출하는 검출 모듈(866B); 및
    상기 값들 중 하나에 따른 경계 위치에 상기 적어도 하나의 값 쌍(c3, c4) 사이의 차이에 따른 길이를 갖는 상기 제1 부분들(N2, N3) 중 하나를 삽입하는 삽입 모듈(866C)을 더 포함하는 장치.
KR1020147001343A 2011-07-18 2011-07-18 트리 구조들의 적응적 엔트로피 코딩을 위한 방법 KR101862438B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/077279 WO2013010317A1 (en) 2011-07-18 2011-07-18 Method for adaptive entropy coding of tree structures

Publications (2)

Publication Number Publication Date
KR20140042864A true KR20140042864A (ko) 2014-04-07
KR101862438B1 KR101862438B1 (ko) 2018-05-29

Family

ID=47557641

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147001343A KR101862438B1 (ko) 2011-07-18 2011-07-18 트리 구조들의 적응적 엔트로피 코딩을 위한 방법

Country Status (7)

Country Link
US (1) US9532056B2 (ko)
EP (1) EP2734980B1 (ko)
JP (1) JP5936687B2 (ko)
KR (1) KR101862438B1 (ko)
CN (1) CN103814396B (ko)
TW (1) TW201306495A (ko)
WO (1) WO2013010317A1 (ko)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2777019A4 (en) 2011-11-07 2016-07-06 Thomson Licensing PREDICTIVE POSITION DECODING
EP2813076B1 (en) 2012-02-09 2020-04-22 InterDigital VC Holdings, Inc. Efficient compression of 3d models based on octree decomposition
US20140006536A1 (en) * 2012-06-29 2014-01-02 Intel Corporation Techniques to accelerate lossless compression
GB2563019B (en) * 2017-05-29 2021-07-28 Canon Kk Improved valence-based encoding and decoding of connectivity data in a 3D model
US10897269B2 (en) 2017-09-14 2021-01-19 Apple Inc. Hierarchical point cloud compression
US11818401B2 (en) 2017-09-14 2023-11-14 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
US10861196B2 (en) 2017-09-14 2020-12-08 Apple Inc. Point cloud compression
US10909725B2 (en) 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
US11113845B2 (en) 2017-09-18 2021-09-07 Apple Inc. Point cloud compression using non-cubic projections and masks
US10607373B2 (en) 2017-11-22 2020-03-31 Apple Inc. Point cloud compression with closed-loop color conversion
US10699444B2 (en) * 2017-11-22 2020-06-30 Apple Inc Point cloud occupancy map compression
EP3514969B1 (en) * 2018-01-18 2021-08-04 BlackBerry Limited Methods and devices using direct coding in point cloud compression
CN111727460A (zh) 2018-01-26 2020-09-29 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
US11010928B2 (en) 2018-04-10 2021-05-18 Apple Inc. Adaptive distance based point cloud compression
US10909726B2 (en) 2018-04-10 2021-02-02 Apple Inc. Point cloud compression
US10939129B2 (en) 2018-04-10 2021-03-02 Apple Inc. Point cloud compression
US10909727B2 (en) 2018-04-10 2021-02-02 Apple Inc. Hierarchical point cloud compression with smoothing
JP7151141B2 (ja) * 2018-04-12 2022-10-12 富士フイルムビジネスイノベーション株式会社 符号化装置、復号装置及びプログラム
JP7197575B2 (ja) * 2018-06-08 2022-12-27 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
KR20210020924A (ko) * 2018-06-27 2021-02-24 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 삼차원 데이터 부호화 방법, 삼차원 데이터 복호 방법, 삼차원 데이터 부호화 장치, 및 삼차원 데이터 복호 장치
US11017566B1 (en) 2018-07-02 2021-05-25 Apple Inc. Point cloud compression with adaptive filtering
US11202098B2 (en) 2018-07-05 2021-12-14 Apple Inc. Point cloud compression with multi-resolution video encoding
US11012713B2 (en) 2018-07-12 2021-05-18 Apple Inc. Bit stream structure for compressed point cloud data
BR112020027050A2 (pt) * 2018-07-13 2021-04-20 Panasonic Intellectual Property Corporation Of America método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais
WO2020050343A1 (ja) * 2018-09-05 2020-03-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US11386524B2 (en) 2018-09-28 2022-07-12 Apple Inc. Point cloud compression image padding
US11367224B2 (en) 2018-10-02 2022-06-21 Apple Inc. Occupancy map block-to-patch information compression
US11430155B2 (en) 2018-10-05 2022-08-30 Apple Inc. Quantized depths for projection point cloud compression
GB2578769B (en) 2018-11-07 2022-07-20 Advanced Risc Mach Ltd Data processing systems
US11348284B2 (en) 2019-01-08 2022-05-31 Apple Inc. Auxiliary information signaling and reference management for projection-based point cloud compression
JP7138802B2 (ja) 2019-01-23 2022-09-16 プロプリオ インコーポレイテッド 手術部位のメディエイテッドリアリティビューに対するリアルタイム手術画像への術前スキャン画像のアライメント
GB2583061B (en) * 2019-02-12 2023-03-15 Advanced Risc Mach Ltd Data processing systems
US11057564B2 (en) 2019-03-28 2021-07-06 Apple Inc. Multiple layer flexure for supporting a moving image sensor
CN112398484B (zh) * 2019-08-15 2024-04-23 华为技术有限公司 一种编码方法及相关设备
US11627314B2 (en) 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
US11562507B2 (en) 2019-09-27 2023-01-24 Apple Inc. Point cloud compression using video encoding with time consistent patches
US11538196B2 (en) 2019-10-02 2022-12-27 Apple Inc. Predictive coding for point cloud compression
US11895307B2 (en) 2019-10-04 2024-02-06 Apple Inc. Block-based predictive coding for point cloud compression
US11798196B2 (en) 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
US11625866B2 (en) 2020-01-09 2023-04-11 Apple Inc. Geometry encoding using octrees and predictive trees
US11620768B2 (en) 2020-06-24 2023-04-04 Apple Inc. Point cloud geometry compression using octrees with multiple scan orders
US11615557B2 (en) 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
US12020378B2 (en) * 2020-08-18 2024-06-25 Qualcomm Incorporated Compressed geometry rendering and streaming
US11948338B1 (en) 2021-03-29 2024-04-02 Apple Inc. 3D volumetric content encoding using 2D videos and simplified 3D meshes
CN113595896B (zh) * 2021-08-05 2022-04-05 河南大学 一种基于vlc链路的混合数据中心网络的多路由通信方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6674911B1 (en) * 1995-09-14 2004-01-06 William A. Pearlman N-dimensional data compression using set partitioning in hierarchical trees
KR100294927B1 (ko) 1998-08-29 2001-07-12 윤종용 점진적인 삼차원 메쉬 정보의 부호화 방법 및 그 장치
CN1102271C (zh) 1998-10-07 2003-02-26 国际商业机器公司 具有习惯用语处理功能的电子词典
WO2002033911A1 (en) 2000-10-21 2002-04-25 Samsung Electronics Co., Ltd Transmitting packet data in mobile communications systems
US7346037B2 (en) * 2001-03-26 2008-03-18 Lg Electronics Inc. Method of transmitting or receiving a data packet in packet data communication system using hybrid automatic repeat request
DK1400954T3 (da) 2002-09-04 2008-03-31 Microsoft Corp Entropi-kodning ved tilpasning af kodning mellem niveau- og runlængde/niveau-moduser
KR100695142B1 (ko) * 2004-03-08 2007-03-14 삼성전자주식회사 적응적 2의 n 제곱 진트리 생성방법 및 이를 이용한 3차원 체적 데이터 부호화/복호화 방법 및 장치
JP2008502085A (ja) * 2004-06-02 2008-01-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 符号化装置及び復号化装置並びに対応する方法
CN100469144C (zh) * 2005-09-02 2009-03-11 上海乐金广电电子有限公司 熵编码器表格变换方法
KR101100207B1 (ko) * 2005-11-08 2011-12-28 엘지전자 주식회사 디지털 방송 시스템 및 처리 방법
US7586424B2 (en) 2006-06-05 2009-09-08 Donald Martin Monro Data coding using an exponent and a residual
JP4893957B2 (ja) * 2006-08-07 2012-03-07 富士ゼロックス株式会社 符号化装置、復号化装置、符号化方法及びプログラム
CN1946180B (zh) 2006-10-27 2010-05-12 北京航空航天大学 一种基于Octree的三维模型压缩编码方法
KR100969764B1 (ko) * 2008-02-13 2010-07-13 삼성전자주식회사 메쉬 모델로 구현된 3차원 데이터의 부호화 및 복호화 방법
BRPI0922846A2 (pt) * 2008-12-03 2018-01-30 Nokia Corp alternando entre modos de codificação do coeficiente dct
EP2214315A1 (en) 2009-01-30 2010-08-04 Thomson Licensing Method and device for encoding a bit sequence
US8767823B2 (en) * 2011-03-30 2014-07-01 Industrial Technology Research Institute Method and apparatus for frame memory compression
WO2013026210A1 (en) 2011-08-25 2013-02-28 Technicolor (China) Technology Co., Ltd. Hierarchical entropy encoding and decoding
CN103918009A (zh) 2011-11-07 2014-07-09 汤姆逊许可公司 预测位置编码
EP2813076B1 (en) 2012-02-09 2020-04-22 InterDigital VC Holdings, Inc. Efficient compression of 3d models based on octree decomposition
US9734595B2 (en) * 2014-09-24 2017-08-15 University of Maribor Method and apparatus for near-lossless compression and decompression of 3D meshes and point clouds

Also Published As

Publication number Publication date
KR101862438B1 (ko) 2018-05-29
CN103814396A (zh) 2014-05-21
JP5936687B2 (ja) 2016-06-22
JP2014527735A (ja) 2014-10-16
EP2734980A4 (en) 2016-04-27
EP2734980B1 (en) 2018-03-21
CN103814396B (zh) 2017-03-08
EP2734980A1 (en) 2014-05-28
US20140185668A1 (en) 2014-07-03
US9532056B2 (en) 2016-12-27
WO2013010317A1 (en) 2013-01-24
TW201306495A (zh) 2013-02-01

Similar Documents

Publication Publication Date Title
JP5936687B2 (ja) ツリー構造の適応的エントロピー符号化方法
US9035807B2 (en) Hierarchical entropy encoding and decoding
US5818877A (en) Method for reducing storage requirements for grouped data values
CN111699697B (zh) 一种用于点云处理、解码的方法、设备及存储介质
JP2022539411A (ja) 点群符号化方法、点群復号化方法、符号器、復号器及びコンピュータ記憶媒体
JP2014522613A (ja) 動きベクトル差のエントロピー符号化
WO2012139249A1 (en) Method for encoding a mesh model, encoded mesh model and method for decoding a mesh model
CN112470469B (zh) 一种用于点云编码、解码的方法和设备
KR102014309B1 (ko) 종결가능한 공간 트리-기반의 위치 코딩 및 디코딩
US20220376702A1 (en) Methods and devices for tree switching in point cloud compression
CN115379190B (zh) 一种点云处理方法、装置及计算机设备、存储介质
EP3182710A2 (en) Adaptive binarizer selection for image and video coding
CN107018426B (zh) 用于图像和视频编码的二进制化器选择
CN113678460B (zh) 一种数据编码、数据解码方法、设备及存储介质
CN112262578A (zh) 点云属性编码方法和装置以及点云属性解码方法和装置
KR20240073054A (ko) 포인트 클라우드 데이터 프레임 압축
CN111684804B (zh) 一种数据编码、数据解码方法、设备及存储介质
CN114730474A (zh) 点云处理方法、编码器、解码器及存储介质
US9245352B1 (en) Systems and methods for near lossless image compression
KR960013231B1 (ko) 차원 변환을 이용한 영상 자료의 병렬 압축 및 복원 방법
WO2024061661A1 (en) Progressive encoding and adaptive reconstruction of dynamic meshes using zerotree coding
R Shareef Two Dimensional Dictionary–Based Lossless Image Compression
Jenny et al. A modified embedded zero-tree wavelet method for medical image compression
KR20050037307A (ko) N-트리 검색에 기초한 허프만 디코딩 방법 및 장치

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