KR101924249B1 - 계위적 엔트로피 인코딩 및 디코딩 - Google Patents

계위적 엔트로피 인코딩 및 디코딩 Download PDF

Info

Publication number
KR101924249B1
KR101924249B1 KR1020147004710A KR20147004710A KR101924249B1 KR 101924249 B1 KR101924249 B1 KR 101924249B1 KR 1020147004710 A KR1020147004710 A KR 1020147004710A KR 20147004710 A KR20147004710 A KR 20147004710A KR 101924249 B1 KR101924249 B1 KR 101924249B1
Authority
KR
South Korea
Prior art keywords
symbols
symbol
data structure
tree data
sequence
Prior art date
Application number
KR1020147004710A
Other languages
English (en)
Other versions
KR20140056290A (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 KR20140056290A publication Critical patent/KR20140056290A/ko
Application granted granted Critical
Publication of KR101924249B1 publication Critical patent/KR101924249B1/ko

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/005Tree description, e.g. octree, quadtree
    • 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
    • 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/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

Landscapes

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

Abstract

특정 구현은 3D 메시의 지오메트리 데이터를 수신하고, 그 지오메트리 데이터를 옥트리로 표현한다. 특정 구현은 옥트리를 3개의 부분들로 파티셔닝하며, 여기서, 옥트리의 중간 부분에 대응하는 심볼들은 계위적 엔트로피 인코딩된다. 옥트리(5)를 3개의 부분들로 파티셔닝하기 위해, 상이한 임계치들이 사용된다. 노드와 연관된 심볼이 S1 심볼인지에 의존하여, 노드의 자식 노드는 옥트리의 중간 부분 또는 상위 부분에 포함된다. 계위적 엔트로피 인코딩에 있어서, 비-S1 심볼이 심볼 세트 S2 = {S1, X}를 이용하여 사전-결정된 심볼 X로서 먼저 인코딩되고, 그 후, 비-S1 심볼 자체는 심볼 세트 S0 (S2 ⊂10 S0)를 이용하여 인코딩되고, S1 심볼은 심볼 세트 S2를 이용하여 인코딩된다. 다른 구현은 대응하는 계위적 엔트로피 디코딩을 정의한다. 추가의 구현은 옥트리를 재구성하고, 옥트리 표현으로부터 3D 메시의 지오메트리 데이터를 복구한다.

Description

계위적 엔트로피 인코딩 및 디코딩{HIERARCHICAL ENTROPY ENCODING AND DECODING}
본 발명은 엔트로피 인코딩 및 디코딩에 관한 것으로서, 더 상세하게는, 심볼들의 시퀀스에 대해 그 시퀀스의 상이한 부분들에서의 상이한 통계들로 엔트로피 인코딩 및 디코딩하는 것에 관한 것이다.
심볼들이 알파벳 또는 심볼 세트로부터 선택되는 심볼들의 시퀀스는 엔트로피 코딩에 의해 압축될 수 있다. 엔트로피 코딩 엔진은 심볼들의 통계적 모델, 즉, 확률 분포들에 기초하여 심볼들에 대한 코드워드들을 할당한다. 일반적으로, 더 빈번히 사용되는 심볼들은 더 적은 비트들로 엔트로피 코딩되고, 덜 빈번히 발생하는 심볼들은 더 많은 비트들로 엔트로피 코딩된다.
엔트로피 코딩은 수십년 동안 연구되었다. 기본적으로, 3가지 타입들의 엔트로피 코딩 방법들이 존재한다: 즉, 허프만 코딩과 같은 가변 길이 코딩(VLC), 산술 코딩, 및 LZ(Lempel-Ziv) 압축 또는 LZW(Lempel-Ziv-Welch) 압축과 같은 딕셔너리 기반 압축.
VLC 코드들은 정수 개수의 비트들을 사용하여 각각의 심볼을 나타낸다. 허프만 코딩은 가장 널리 사용되는 VLC 방법이다. 허프만 코딩은 더 큰 확률을 갖는 심볼에 더 적은 비트들을 할당하면서 더 적은 확률을 갖는 심볼에 더 많은 비트들을 할당한다. 허프만 코딩은, 각각의 심볼의 확률이 1/2 의 정수 거듭제곱일 경우에 최적이다. 산술 코딩은 일부 개수의 비트들을 각각의 심볼에 할당할 수 있어서 엔트로피에 더 근접하게 접근할 수 있다. 허프만 코딩 및 산술 코딩은 기존의 이미지/비디오 압축 표준들, 예를 들어, JPEG, MPEG-2, H.264/AVC에 널리 사용되었다. LZ 또는 LZW는 테이블 기반 압축 모델 - 테이블 엔트리들은 데이터의 반복된 스트링들을 대신함 - 을 활용한다. 대부분의 LZ 방법들에 대해, 테이블은 더 이전의 입력 데이터로부터 동적으로 생성된다. 딕셔너리 기반 알고리즘이 예를 들어 GIF, Zip, PNG 표준들에서 채용되었다.
일반적인 양태에 따르면, 심볼들의 시퀀스에서의 심볼이 제1 심볼 세트에 속하지 않는 것으로 결정되면, 사전-결정된 심볼이 인코딩되어 제1 심볼 세트에 대한 통계적 모델 및 사전-결정된 심볼을 이용하여 결정된 심볼을 표현하며, 결정된 심볼은 제2 심볼 세트에 대한 통계적 모델을 이용하여 인코딩된다.
다른 일반적인 양태에 따르면, 3D 메시의 지오메트리 데이터가 수신되고 그 지오메트리 데이터는 트리 데이터 구조를 이용하여 표현된다. 트리 데이터 구조는 3개의 부분들로 파티셔닝되며, 여기서, 심볼들의 제1 시퀀스는 트리 데이터 구조의 중간 부분에 대응하고, 심볼들의 제2 시퀀스는 트리 데이터 구조의 상위 부분에 대응하며, 심볼들의 제3 시퀀스는 트리 데이터 구조의 하위 부분에 대응한다. 심볼들의 제1 시퀀스에서의 심볼이 제1 심볼 세트에 속하지 않는 것으로 결정되면, 사전-결정된 심볼이 인코딩되어 제1 심볼 세트에 대한 통계적 모델 및 사전-결정된 심볼을 이용하여 결정된 심볼을 표현하고, 결정된 심볼은 제2 심볼 세트에 대한 통계적 모델을 이용하여 인코딩되며, 여기서, 제2 심볼 세트는 제1 심볼 세트의 수퍼세트이고, 사전-결정된 심볼은 제2 심볼 세트에 속하지 않는다. 트리 데이터 구조를 파티셔닝할 경우, 제2 심볼과 연관된 노드의 자식 노드들은, 제2 심볼이 제1 심볼 세트에 속하지 않으면 트리 데이터 구조의 상위 부분에 포함되고, 제2 심볼이 제1 심볼 세트에 속하면, 그 노드의 자식 노드들은 트리의 중간 부분에 포함된다.
다른 일반적인 양태에 따르면, 심볼은 제1 심볼 세트에 대한 통계적 모델 및 사전-결정된 심볼을 이용하여 비트스트림으로부터 디코딩된다. 심볼이 사전-결정된 심볼인 것으로 결정되면, 결정된 심볼에 대응하는 제2 심볼은 제2 심볼 세트에 대한 통계적 모델을 이용하여 비트스트림으로부터 디코딩된다.
다른 일반적인 양태에 따르면, 심볼은 제1 심볼 세트에 대한 통계적 모델 및 사전-결정된 심볼을 이용하여 비트스트림으로부터 디코딩된다. 심볼이 사전-결정된 심볼인 것으로 결정되면, 그 심볼에 대응하는 제2 심볼은 제2 심볼 세트에 대한 통계적 모델을 이용하여 비트스트림으로부터 디코딩되고, 여기서, 제2 심볼 세트는 제1 심볼 세트의 수퍼세트이고, 사전-결정된 심볼은 제2 심볼 세트에 속하지 않는다. 다른 심볼은 제2 심볼 세트에 대한 통계적 모델 및 제1 심볼 세트에 대한 통계적 모델 중 하나를 이용하여 비트스트림으로부터 디코딩된다. 트리 데이터 구조는 디코딩된 심볼들을 이용하여 재구성되고, 디코딩된 심볼들은 제2 심볼 및 다른 심볼을 포함한다. 트리 데이터 구조를 재구성할 경우, 노드에 대한 자식 노드들과 연관된 심볼들은, 노드와 연관된 제3 심볼이 제1 심볼 세트에 속하면 제1 심볼 세트에 대한 통계적 모델 및 사전-결정된 심볼을 이용하여 디코딩되고, 노드에 대한 자식 노드들과 연관된 심볼들은, 제3 심볼이 제1 심볼 세트에 속하지 않으면 제2 심볼 세트에 대한 통계적 모델을 이용하여 디코딩된다. 그 후, 3D 메시의 지오메트리 데이터는 트리 데이터 구조로부터 복구된다.
하나 이상의 구현들의 상세들이 첨부 도면들 및 하기의 설명에 개시된다. 하나의 특정한 방식으로 설명되더라도, 구현들이 다양한 방식들로 구성되거나 구체화될 수도 있음이 명백할 것이다. 예를 들어, 일 구현은 방법으로서 수행되거나, 예를 들어, 동작들의 세트를 수행하도록 구성된 장치 또는 동작들의 세트를 수행하기 위한 명령들을 저장하는 장치와 같은 장치로서 구체화되거나, 신호로 구체화될 수도 있다. 다른 양태들 및 특징들은 첨부 도면들 및 청구항들과 함께 고려되는 다음의 상세한 설명으로부터 자명하게 될 것이다.
도 1은 2D 케이스에서의 k-d 트리 기반 지오메트리 코딩의 원리의 도면 표현이다.
도 2 및 도 3은 2D 케이스에서의 쿼드트리 기반 지오메트리 코딩의 원리의 도면 표현이다.
도 4는 셀 파티셔닝의 도면 표현이다.
도 5는 예시적인 옥트리의 도면 표현이다.
도 6은 본 원리들의 실시예에 따른, 심볼들의 서브-시퀀스들을 생성하기 위한 일 예를 도시한 도면 표현이다.
도 7은 본 원리들의 실시예에 따른, 3D 메시의 지오메트리 데이터를 압축하기 위한 일 예를 도시한 플로우 다이어그램이다.
도 8은 본 원리들의 실시예에 따른, 계위적 엔트로피 인코딩을 위한 일 예를 도시한 플로우 다이어그램이다.
도 9는 본 원리들의 실시예에 따른, 트리 데이터 구조를 파티셔닝하기 위한 일 예를 도시한 플로우 다이어그램이다.
도 10은 본 원리들의 실시예에 따른, 생성된 비트스트림의 포맷의 도면 표현이다.
도 11은 본 원리들의 실시예에 따른, 비트스트림을 엔트로피 디코딩하고 3D 메시의 지오메트리 데이터를 복구하기 위한 일 예를 도시한 플로우 다이어그램이다.
도 12는 본 원리들의 실시예에 따른, 계위적 엔트로피 디코딩을 위한 일 예를 도시한 플로우 다이어그램이다.
도 13은 본 원리들의 실시예에 따른, 트리 데이터 구조를 재구성하기 위한 일 예를 도시한 플로우 다이어그램이다.
도 14는 트리 데이터 구조를 재구성하기 위한 일 예를 도시한 도면 표현이다.
도 15는 하나 이상의 구현들로 사용될 수도 있는 인코더의 일 예를 도시한 블록 다이어그램이다.
도 16은 하나 이상의 구현들로 사용될 수도 있는 디코더의 일 예를 도시한 블록 다이어그램이다.
도 17은 하나 이상의 구현들로 사용될 수도 있는 데이터 프로세싱 시스템의 일 예를 도시한 블록 다이어그램이다.
도 18은 하나 이상의 구현들로 사용될 수도 있는 데이터 프로세싱 시스템의 다른 예를 도시한 블록 다이어그램이다.
공간 트리 기반 접근법들은 빈틈없는 3D 모델들의 랜덤 포인트 위치들 및 정점 위치들과 같은 지오메트리 데이터를 압축하는데 사용될 수 있다. 이들은 옥트리 또는 k-d 트리에 의해 입력 공간 포인트들을 조직한다. 트리는 횡단되고, 트리 복구에 요구된 정보가 저장된다.
처음에, 바운딩 박스가 3D 모델의 모든 포인트들을 둘러 작도된다. 모든 3D 포인트들의 바운딩 박스는 처음에 단일 셀로서 간주된다. 공간 트리를 형성하기 위해, 셀은, 각각의 비어있지 않은 셀이 오직 하나의 정점만을 포함하고 또한 정점 위치의 충분히 정확한 재구성을 가능케 하도록 충분히 작을 때까지 반복적으로 세분화된다. 정점 위치들이 대응하는 셀들의 중심 좌표들로부터 복구될 수 있기 때문에, 공간 트리 기반 알고리즘들은 단일 레졸루션 압축 알고리즘들과 동일한 압축 비율을 갖는 다중 레졸루션 압축을 달성할 수도 있다.
k-d 트리 기반 접근법에 있어서, 셀은 2개의 자식 셀들로 세분화되고, 도 1에 도시된 바와 같이, 2개의 자식 셀들 중 하나에서의 정점들의 수는 각각의 반복에서 인코딩된다. 부모 셀이 p개의 정점들을 포함하면, 자식 셀들 중 하나에서의 정점들의 수는 산술 코더에 의해 log2(p + 1) 비트들을 이용하여 인코딩될 수 있다.
한편, 옥트리 기반 접근법은, 각각의 반복에서, 비어있지 않은 셀을 8개의 자식 셀들로 세분화한다. 예시의 용이를 위해, 쿼드트리를 기술하는 2D 예들이 도 2 및 도 3에 도시된다. 횡단 순서들은 화살표들에 의해 표시된다. 인코딩을 위해, 현재의 부모 셀은 사전-정의된 순서로 횡단되는 4개의 자식 셀들로 분할되며, 자식 셀 당 단일 비트는 자식 셀 내에 포인트가 존재하는지 여부를 나타낸다. 예를 들어, 도 2에 있어서, 2개의 부모 셀들(1 및 2)의 자식 셀들은 화살표로 도시된 바와 같이 횡단되며, 비어있지 않은 자식 셀들은 회색으로 채색되어 있다. 제1 부모 셀(1)의 자식 셀들(210, 211, 212, 및 213)은 제1 시퀀스 '1010'에 의해 표현된다. 횡단의 제1 및 제3 자식 셀들(210, 212)은 비어있지 않기 때문에(즉, 하나 이상의 포인트들을 포함함), '1'들에 의해 표시된다. 제2 및 제4 자식 셀들(211, 213)은 비어있고(즉, 어떠한 포인트들로 포함하지 않음), '0'들에 의해 표시된다. 도 3은 상이한 횡단들을 이용하여 시퀀스들을 발생시키는 동일한 셀들을 도시한다.
도 4는 옥트리 스킴의 부모 및 자식 셀들을 도시한다. 옥트리 스킴에 있어서, 부모 셀은 8개의 자식 셀들(40, …, 46)로 분할된다(좌하위 셀(42) 뒤의 하나의 은닉된 자식 셀은 도시되지 않음). 가능한 횡단 순서는 좌-우, 상-하 및 앞-뒤여서, 셀들의 횡단 시퀀스(40-41-42-43-44-45-(좌하위 셀(42) 뒤의 은닉된 셀)-46)를 발생시킬 수 있다. 대응하여, 옥트리 케이스에 있어서, 비어있지 않은 자식 셀 구성은, 비어있는 및 비어있지 않은 자식 셀들의 모든 255개의 가능한 조합들을 커버하는 8비트 이진수에 의해 표기된다. 비어있지 않은 자식 셀들의 수에 대한 별개의 인코딩은 요구되지 않는다. 표 1은 시퀀스의 일 예이다.
Figure 112014017822515-pct00001
부모 셀 내에서의 자식 셀들의 특정 횡단 순서는 본 실시예들에 대해 매우 관련되지 않음을 유의한다. 원칙적으로, 임의의 횡단 순서가 본 실시예들에 대해 사용될 수 있다. 다음에 있어서, 자식 셀 구성을 표현하는데 사용된 비트들의 스트링이 심볼로서 표기된다. 표 1의 예에 있어서, 8개의 비트들이 각각의 심볼에 대해 사용된다. 다른 구현들에 있어서, 심볼 내 비트들의 수는 변할 수도 있다. 예를 들어, 쿼드트리에 대한 자식 셀 구성을 표현하기 위해 4비트 스트링이 사용되며, 따라서, 도 2의 예에 있어서의 심볼에 대한 비트들의 수는 4이다.
도 5는 옥트리 구조의 일 예를 도시한다. 각각의 노드는 심볼과 연관되고, 각각의 계층은 트리 표현의 특정 정확도에 대응한다. 초기 셀은 8개의 셀들로 분할된다. 자식 셀들(1, 2, 5, 6, 및 7)은 더 많은 정점들을 포함하고 자식 셀들(3, 4, 및 8)은 비어 있어서, 계층 0에서의 자식 셀 구성을 표현하기 위해 8비트 심볼(11001110)을 발생시킨다(510). 각각의 비어있지 않은 자식 셀들은 추가로 분할되고, 대응하는 자식 셀 구성은 계층 1에서 표현된다. 세분화는, 각각의 비어있지 않은 셀이 오직 하나의 정점만을 포함할 때까지 계속될 수 있다.
옥트리의 너비-우선 횡단을 이용하여, 3D 메시의 정점 위치들이 심볼들의 시퀀스로 조직될 수 있다. 도 5에서의 예에 대해, 심볼들의 시퀀스는 11001110, 11000000, 10010100, 00100110, 00001000, 및 00001000이 된다.
Figure 112014017822515-pct00002
복소 3D 모델에서 가장 빈번히 발생하는 심볼들의 확률 분포가 표 2에 확률의 내림 차순으로 나타내어진다. 표 2로부터 알 수 있는 바와 같이, 이진 표현에 있어서 오직 하나의 '1'을 갖는 심볼들이 지배적 확률(> 93%)로 발생한다. 지오메트릭 설명은 정점들이 수개의 세분화 이후 셀을 좀처럼 공유하지 않는다는 것일 수도 있다. 즉, 옥트리의 하위 계층들은 오직 하나의 '1'을 갖는 심볼들에 의해 지배되고, 다른 심볼들은 상위 계층들에서 더 종종 발생한다.
본 실시예들에 따르면, 2개의 심볼 세트들 - 모든 가능한 심볼들을 포함하는 유니버셜 심볼 세트, 즉, S0 = {1, 2, 3, …, 255}, 및 오직 하나의 '1'을 갖는 심볼들, 즉, 가장 빈번히 발생하는 심볼들을 포함하는 심볼 세트, 즉, S1 = {1, 2, 4, 8, 16, 32, 64, 128} - 을 정의한다. 표현의 용이를 위해, 8비트 이진 스트링들이 십진수로서 기입된다. 심볼은, 심볼 세트 S1에 속하면 S1 심볼로 지칭되고, 그렇지 않으면 비-S1 심볼로 지칭된다.
옥트리의 통계적 특성으로부터 이익을 얻기 위해, "A model-adaptive entropy coding method for octree compression"의 명칭의 공동 소유된 PCT출원 제PCT/CN2011/077279호는 옥트리에 의해 표현된 시퀀스를, S0 또는 S1으로 적응적으로 코딩된 수개의 서브-시퀀스들로 파티셔닝하도록 제안한다. 서브-시퀀스 경계들의 인덱스들은 보조 정보로서 코딩된다. 보조 정보의 오버헤드(예를 들어, 각각의 인덱스에 대해 2바이트) 때문에, 연속적인 S1 심볼들의 일반적으로 큰 서브-시퀀스들은 심볼 세트 S1로 코딩된다.
S1 심볼들 및 비-S1 심볼들 양자가 시퀀스의 부분에서 발생할 경우 - S1 심볼들이 훨씬 더 큰 확률들을 가짐 -, 오버헤드 때문에, 그러한 부분을 수개의 서브-시퀀스들로 분할하는 것은 효율적이지 않다. 한편, 비-S1 심볼들이 낮은 확률들로 발생하기 때문에, 그러한 부분을 심볼 세트 S0으로 코딩하는 것은 또한 효율적이지 않다.
본 원리들은 시퀀스의 상이한 부분들에서 가변하는 통계들을 사용하여 심볼들의 시퀀스를 효율적으로 압축하기 위한 계위적 엔트로피 인코딩/디코딩 방법 및 장치를 제공한다. 다음의 실시예들은 3D 메시 모델들의 옥트리 표현들에 주로 기초한다. 하지만, 본 원리들은, 하기에 추가로 정의되는 바와 같이, 다른 데이터 세트들 또는 어플리케이션들에 적응될 수도 있다.
도 6은 심볼들의 시퀀스가 3개의 서브-시퀀스들로 어떻게 파티셔닝될 수 있는지, 및 3개의 상이한 심볼 세트들이 인코딩을 위해 어떻게 사용되는지를 예시한 일 예이다. 본 구현들에 있어서, 심볼 세트를 이용하여 심볼들의 시퀀스를 엔트로피 인코딩하는 것은 심볼 세트에 대한 통계적 모델, 즉, 심볼 세트의 각각의 심볼의 확률이 엔트로피 코딩을 위해 사용됨을 의미한다. 통상적으로, 확률들은 특정 심볼 세트에 대한 큰 데이터 세트를 이용하여 트레이닝된다. 따라서, 2개의 상이한 심볼 세트들에서 나타나는 심볼은 2개의 심볼 세트들에서의 상이한 확률들에 대응할 수도 있다. 표 2의 예에 대해, 심볼 ‘10000000’은 S0 및 S1 양자에서 나타나며, S0에서 Prob(‘10000000’) = 0.1162이고, S1에서 Prob(‘10000000’) = 0.1245이다.
예시의 용이를 위해, 옥트리 대신 이진 트리(610)가 도 6에서 사용된다. 이러한 이진 트리에서의 각각의 노드는 2비트 심볼과 연관된다. 심볼이 '11'일 경우에는, 2개의 자식 노드들을 갖고; 심볼이 '10'일 경우에는, 오직 좌측 자식 노드를 가지며; 심볼이 '01'일 경우에는, 오직 우측 자식 노드를 갖는다. 심볼 세트 S0는 모두 3개의 가능한 심볼들을 포함한다. 이 예에 있어서, 심볼 세트 S1는 심볼들 '01' 및 '10'을 포함하며, 이들 양자는 비트 스트링에서 오직 하나의 '1'을 갖는다. 따라서, 이 예에 있어서, 심볼 세트 S0는 옥트리에 대한 유니버셜 심볼 세트에 대응하고, S1은 심볼 세트 {1, 2, 4, 8, 16, 32, 64, 128}에 대응한다.
이진 트리(610)에 있어서, 심볼들 '10' 및 '01'은 하위 계층들을 지배하고, '11'은 상위 계층들에서 더 높은 확률을 갖는다. 이진 트리(610)는 3개의 부분들로 분할되고, 각각의 부분은 심볼들의 서브-시퀀스에 대응한다. 트리의 상위 부분(P0)은 서브-시퀀스(620)에 대응하고, 중간 부분(P2)은 서브-시퀀스(630)에 대응하며, 하위 부분(P1)은 서브-시퀀스(640)에 대응한다. 심볼 세트 S0의 모든 심볼들은 서브 시퀀스들(620 및 630)에 존재하며, '11'은 630에서보다는 620에서 더 빈번히 발생한다. 이 예에 있어서, 오직 심볼들 '01' 및 '10'만이 서브-시퀀스(640)에 나타난다. '11'은 또한 P1에 훨씬 더 낮은 확률로 포함될 수 있을 가능성이 있다.
서브-시퀀스(620)는 심볼 세트 S0을 이용하여 엔트로피 인코딩되고, 서브-시퀀스(640)는 S1을 이용하여 엔트로피 인코딩된다. 서브-시퀀스(630)는 본 원리들의 원리들에 따른 계위적 엔트로피 인코딩 메커니즘으로 인코딩된다.
도 7은 3D 메시의 지오메트리 데이터를 압축하기 위한 예시적인 방법(700)을 도시한다. 이 방법에 있어서, 지오메트리 데이터는 옥트리에 의해 표현된다. 옥트리는 먼저 3개의 부분들: P0, P1, 및 P2로 파티셔닝되고, 3개의 심볼 세트들: S0, S1, 및 S2가 정의된다. 트리의 각각의 부분은 적절한 통계적 모델로 효율적으로 압축된다. 이 예에 있어서, S1은 S0의 서브세트이고, S2는 S1과 사전-결정된 심볼 'X'의 합집합, 즉, S2 = {S1, ‘X’}이다. 다른 실시예들에 있어서, S0 및 S1은 다른 심볼들을 포함할 수도 있고, S2는 S1과의 다른 관련성들에 있을 수도 있다. 3개의 서브스트림들은 그 부분들 각각을 엔트로피 코딩함으로써 형성된다. 그 후, 비트스트림은 3개의 서브스트림들을 다른 정보 - 예를 들어, 적절한 디코딩을 가능케 하기 위한 보조 정보 - 와 결합함으로써 생성될 수 있다.
방법(700)은 기능 블록 710으로 제어를 전달하는 시작 블록 705를 포함한다. 블록 710에서, 3D 메시의 지오메트리 데이터가 수신되고, 블록 720에서, 옥트리가 지오메트리 데이터를 표현하기 위해 생성된다. 옥트리는 수신된 지오메트리 데이터에 대응하는 심볼들의 완전한 시퀀스로서 간주될 수도 있다. 블록 730에서, 옥트리는 3개의 부분들: 상위 부분(P0), 하위 부분(P1), 및 중간 부분(P2)으로 파티셔닝된다. 각각의 부분은 서브-시퀀스에 대응한다. 결과적으로, 심볼들의 완전한 시퀀스는 3개의 서브-시퀀스들로 분할된다.
그 후, 서브-시퀀스들은 엔트로피 인코딩된다. 블록 740에서, 상위 부분에 대응하는 서브-시퀀스는 심볼 세트 S0을 이용하여 엔트로피 인코딩되고; 블록 750에서, 중간 부분에 대응하는 서브-시퀀스는 계위적 엔트로피 인코딩을 이용하여 엔트로피 인코딩되며; 블록 760에서, 하위 부분은 심볼 세트 S1 및 그 통계적 모델을 이용하여 엔트로피 인코딩된다. 블록 770에서, 헤더 정보가 생성된다. 서브스트림들과 헤더 정보는 결합되고, 블록 780에서 비트스트림으로 컴파일된다. 그 후, 제어는 종료 블록 799로 전달된다.
방법(700)에 있어서, 상위 부분에 대한 심볼들의 서브-시퀀스는 중간 및 하위 부분에 대한 서브-시퀀스 이전에 인코딩된다. 인코딩의 다른 순서들이 또한 이용될 수 있다.
블록 750에서 사용될 수도 있는, 비트스트림을 출력하기 위해 심볼들의 입력 시퀀스를 인코딩하기 위한 예시적인 계위적 엔트로피 인코딩 방법이 방법(800)으로서 도 8에 도시된다. 일 예에 있어서, 심볼들의 시퀀스는 옥트리의 중간 부분에 대한 서브-시퀀스에 대응한다. 다른 실시예에 있어서, 심볼들의 시퀀스는 다른 소스들, 예를 들어, 쿼드트리에 의해 표현된 2D 좌표들의 세트로부터 생성될 수도 있다.
방법(800)은 기능 블록 810으로 제어를 전달하는 시작 블록 805를 포함한다. 블록 810에서, 심볼들의 시퀀스가 입력으로서 수신된다. 블록 820에서, 심볼이 심볼들의 시퀀스로부터 판독된다. 블록 830에서, 심볼이 심볼 세트 S1에 속하는지가 결정된다. 심볼이 S1에 속하지 않으면, 블록 840에서, 사전-결정된 심볼 'X'가 심볼 세트 S2(S2 = {S1, 'X'})를 이용하여 먼저 엔트로피 인코딩되고, 그 후, 심볼 자체가 블록 850에서 심볼 세트 S0(S0 ⊃ S1)을 이용하여 엔트로피 인코딩된다. 심볼이 S1에 속하면, 블록 860에서, 심볼 세트 S2({S1, 'X'})를 이용하여 엔트로피 인코딩된다. 블록 870에서, 시퀀스 내의 모든 심볼들이 인코딩되었는지가 체크된다. 모든 심볼들이 인코딩되었으면, 제어는 종료 블록 899로 전달되고; 그렇지 않으면, 블록 820으로 리턴된다.
심볼 세트 S2는 심볼 세트 S1에 부가하여 사전-결정된 심볼 'X'를 포함한다. 더 작은 심볼 세트 S1 및 부가적인 심볼을 이용하여, 완전한 심볼 세트 S0 대신, 옥트리의 중간 부분에서의 S1 심볼들이 더 효율적으로 인코딩될 수 있다. 각각의 비-S1 심볼들이 먼저 'X'로서 표현되고 'X'로서 엔트로피 인코딩된 이후 심볼 자체의 엔트로피 코딩이 실시된다. 즉, 심볼 'X'는 비-S1 심볼들의 집합으로서 간주될 수 있다. 따라서, 도 8에서 기술된 엔트로피 인코딩 방법 및 그 대응하는 디코딩 방법은 계위적 엔트로피 인코딩/디코딩으로서 지칭된다.
상기 논의들은 주로 3D 메시의 지오메트리 데이터를 압축하는 것에 집중하지만, 그러한 계위적 엔트로피 인코딩/디코딩 방법은 또한, 시퀀스의 상이한 부분들에서 상이한 통계들을 갖는 데이터의 임의의 시퀀스에 적용될 수 있다. 특히, 일부 부분들은 사전-정의된 심볼 세트들로 인코딩될 수 있으며, 다른 부분들은 사전-결정된 심볼들을 사전-정의된 심볼들 내에 도입함으로써 인코딩될 수 있다. 이러한 방법의 이점은, 단지 몇몇 심볼 세트들만이 요구되고 따라서 심볼 세트들을 스위칭할 때를 나타냄에 있어서의 오버헤드를 감소시킨다는 것이다. 부가적으로, 빈번히 발생하는 심볼들에 대한 작은 심볼 세트(즉, 완전한 심볼 세트 대신 작은 사전-정의된 심볼 세트 및 사전-결정된 심볼)를 이용하는 것은 압축 효율을 개선시킬 수 있다.
본 원리들에 따르면, 지오메트리 데이터의 효율적인 인코딩을 가능케 하기 위해 옥트리를 적절히 파티셔닝하는 것이 요구된다. 일 실시예에 있어서, 일 원리는 하위 부분(P1)을 가능하면 크게 하는 것이고 또한 중간 부분(P2) 및 하위 부분(P1)에서의 비-S1 심볼들의 발생을 제한하는 것이다.
파티션 P1 P2
심볼 세트 S2가 심볼 세트 S1보다 하나 더 많은 심볼 'X'를 포함하기 때문에, 중간 부분(P2)의 압축 효율은 P1의 압축 효율보다 더 낮다. 따라서, S1에 의해 효율적으로 인코딩될 수 있는 큰 P1은 높은 코딩 효율을 획득하도록 요구된다. P1을 가능하면 크게 하기 위해, 비-S1 심볼들이 또한 P1에서 허용된다.
S1 심볼들이 심볼 세트 S1에 의해 압축되지만, 비-S1 심볼들은 심볼 세트 S0으로 압축된다. 비-S1 심볼의 위치를 나타내기 위해, 비-S1 심볼의 계층 인덱스 및 계층 내 위치가 비트스트림에 기입된다. 비-S1 심볼들의 인코딩은, 심볼들 및 그 위치들 양자가 인코딩될 필요가 있기 때문에 고가이다. 따라서, P1에서의 비-S1 심볼들의 수는 제한되어야 한다.
P1의 사이즈와 P1에서의 비-S1 심볼들의 수 간의 밸런스에 도달하기 위해, 임계치 기반 방법이 이용된다. 이 방법에 있어서, 옥트리의 너비-우선 횡단에 의해 획득된 심볼 시퀀스를 SEQ_BF로서 정의한다. 그 후, SEQ_BF의 말단으로부터 비-S1 심볼들을 탐색하며, 비-S1 심볼이 발견되고 이 비-S1 심볼과 사전에 발견된 비-S1 심볼 간의 거리가 th1보다 작을 경우에 탐색을 중지한다. 이 비-S1 심볼 아래의 모든 계층들은 P1의 부분이다. 하위 부분(P1)의 상위 계층의 인덱스가 비트스트림에 기입되어, P1을 획득하기 위해 옥트리가 어떻게 파티셔닝되는지를 나타낸다.
파티션 P0 P2
다른 임계치가 중간 부분(P2)으로부터 상위 부분(P0)을 분리하는데 사용된다. 그 파티션을 결정하기 위해, 먼저, 시작부로부터 SEQ_BF를 계층 단위로 스캐닝하고, th0% 초과의 비-S1 심볼들을 포함하는 각각의 계층은 초기 상위 부분(P0)에 포함되며, 여기서, th0은 사전-정의된 임계치이다. 스캐닝은, th0% 미만의 비-S1 심볼들을 포함하는 계층에 도달할 경우에 중지한다. 스캐닝이 중지한 계층 및 그 위의 계층들은 초기 상위 부분(P0)을 형성한다. 하위 부분(P1) 및 초기 P0를 배제한 계층들은 초기 중간 부분(P2)을 형성한다. 초기 P2에서의 일부 계층들은 또한 th0% 초과의 비-S1 심볼들을 포함할 수 있음을 유의한다.
S1 심볼과 연관된 노드는 S1 노드로서 정의되고, 그렇지 않으면 비-S1 노드로서 정의된다. 상위 부분(P0)의 단말 노드들(즉, 리프들)의 세트는 P0의 더 낮은 경계로서 정의된다. 예를 들어, 초기 P0의 더 낮은 경계는 초기 P0에서의 노드들의 최저 계층이다. 그 후, P0과 P2의 분리는 P0의 더 낮은 경계를 이용하여 반복적으로 정제되고; 비-S1 노드들의 자식들은 P0에 포함되며, S1 노드들의 자식들은 P2에 포함된다. 하위 부분(P1)으로부터의 심볼들은 P0 또는 P2의 부분이 되지 않음을 유의한다.
도 9로 돌아가면, P0가 P2로부터 어떻게 분리되는지를 나타낸 예가 방법(900)으로서 일반적으로 도시된다. 방법(900)은 기능 블록 910으로 제어를 전달하는 블록 905에서 시작한다. 블록 910에서, 트리 데이터 구조가 입력으로서 수신된다. 이 예에 있어서, 트리 데이터 구조는 하위 부분(P1)을 배제한 옥트리에 대응한다. 도 6에서의 이진 트리와 같은 다른 트리 데이터 구조들이 또한 파티셔닝을 위해 입력될 수 있다. 임계치(th0)를 이용하여, 초기 상위 부분(P0) 및 초기 중간 부분(P2)이 블록 920에서 형성된다. 블록 930에서, 노드가 P0의 더 낮은 경계로부터 판독된다. 블록 940에서, 노드가 S1 노드인지가 체크된다. 노드가 S1 노드이면, 블록 950에서, 그 자식 노드들은 중간 부분(P2)에 포함되고; 그렇지 않으면, 블록 960에서, 그 자식 노드들은 상위 부분(P0)에 포함된다. 그 후, 상위 부분(P0), 중간 부분(P2), 및 P0의 더 낮은 경계가 블록 970에서 업데이트된다. 블록 980에서, P0의 더 낮은 경계에서 비-S1 노드들이 존재하는지가 체크된다. 비-S1 노드들이 존재하면, 제어는 블록 930으로 리턴되고; 그렇지 않으면, 제어는 종료 블록 999로 전달된다.
이전에 논의된 바와 같이, 통상적으로, S1 노드들은 옥트리에서 90% 초과의 노드들로 이루어진다. 따라서, 극단적인 경우에 있어서, 하위 부분(P1)을 배제한 모든 노드들은 심볼 세트 S2로 인코딩될 수 있고, P0와 P2 사이에 어떠한 분리도 필요하지 않다. 하지만, 이는 대량의 'X'들을 발생시켜 인코딩이 덜 효율적이게 할 수도 있다. 일반적으로, 비-S1 노드들이 옥트리의 상위 계층들에서 훨씬 더 빈번히 발생하기 때문에, 심볼 세트 S0에서 P0를 분리하고 심볼 세트 S0로 P0를 인코딩하는 것이 더 효율적이다.
사전-정의된 임계치들에 관하여, 그 사전-정의된 임계치들은 코딩될 정점 위치들의 타입에 의해 결정될 수도 있다. 일 예에 있어서, th0 = 15 및 th1 = 50이 드문드문한 포인트 위치들의 압축을 위해 사용된다. 다른 예에 있어서, th0 = 10 및 th1 = 200이 특정 3D 모델들로부터 획득된 빈틈없는 정점들을 위해 사용된다.
이전 예에 있어서, 심볼 세트 S2는 심볼 세트 S1과 'X'의 합집합이고, 즉, S2는 S1보다 단지 하나 더 많은 심볼만을 포함한다. 다른 실시예들에 있어서, S2는 다른 형태들을 취할 수도 있다. 예를 들어, 특정 비-S1 심볼들은 P2에서 높은 확률로 발생할 경우, S2에 포함될 수 있다. 일 실시예에 있어서, 이진 표현들에 있어서 2개의 '1'들을 갖는 심볼들은 더 많은 '1'들을 갖는 심볼들보다 더 빈번히 발생하고, 따라서, 이들 심볼들은 또한 S2에 포함된다. 따라서, 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, X}가 되고, 8+28+1=37개의 심볼들을 포함한다.
옥트리가 3개의 부분들로 파티셔닝된 이후, 대응하는 서브-시퀀스들이 압축된다. 심볼 세트들 S0, S1 및 S2의 초기 통계적 모델들이 코덱에 입력들로서 제공된다. 인코딩 및 디코딩 프로세스들 동안, 통계적 모델들은 더 우수한 압축 효율을 위해 추가로 업데이트된다.
대량의 정점 데이터가 통계적 모델들을 트레이닝하기 위해 사용된다. 3개의 데이터 세트들이 각각 P0, P1 및 P2에 대해 구성되어, 대응하는 심볼 세트들에 대한 통계들을 수집한다. P2에서의 모든 비-S1 심볼들은 S2에 대한 통계적 모델링 프로세스 동안 'X'로서 간주됨을 유념한다.
본 실시예들에 있어서, 3개의 서브스트림들: 즉, 서브스트림들(1, 2, 및 3)이 생성된다. 서브스트림들이 어떻게 조직되는지에 의존하여, 서브스트림은 특정 심볼 세트를 사용하여 서브-시퀀스 또는 엔트로피 코딩 엔진에 대응할 수도 있다. 서브스트림들의 수는, 다른 실시예들에 있어서, 예를 들어, 별도의 비트스트림이 서브-시퀀스와 심볼 세트의 각각의 조합에 대해 생성될 경우에 3 초과일 수도 있다.
본 실시예에 있어서, 산술 코딩이 엔트로피 코딩을 위해 사용된다. 다른 엔트로피 코딩 방법들, 예를 들어, 허프만 코딩 및 딕셔너리 기반 압축이 또한 사용될 수 있다.
수신측으로 하여금 서브스트림들을 적절히 디코딩할 수 있게 하기 위해, 보조 데이터가 서브스트림들에 부가하여 비트스트림에 기입된다. 도 10a는 예시적인 비트스트림 포맷을 도시한다. 예시적인 비트스트림은 헤더(1010), 서브스트림 1(1020), 서브스트림 2(1030), 및 서브스트림 3(1040)으로 이루어진다. 헤더(1010)가 도 10b에 추가로 도시된다. 헤더에서의 보조 정보의 포맷은, 하위 부분(P1)이 P1의 상위 계층의 인덱스("layer_index", 1050)를 이용하여, 중간 부분(P2)으로부터 어떻게 분리되는지에 관한 정보를 제공한다. 하위 부분(P1)에서 비-S1 심볼들의 위치들을 나타내기 위해, 헤더는 P1에서의 비-S1 심볼들의 수("No_non_S1", 1060) 및 그에 후속하는 그 위치들("location_non_S1i", 1070 및 1075)을 제공한다. 헤더는 또한, 서브스트림 1의 길이("len_substream1", 1080) 및 서브스트림 2의 길이("len_substream2", 1090)를 제공한다.
도 11에 있어서, 생성된 비트스트림을 디코딩하고 옥트리를 재구성하기 위한 예시적인 방법(1100)이 도시된다. 엔트로피 디코딩이 진행함에 따라, 옥트리가 구성된다. 옥트리에서의 노드는, 사전-결정된 심볼 'X'가 디코딩될 경우를 제외하여 심볼이 디코딩된 이후에 구성된다. 상위 부분(P0)에서의 심볼들은 심볼 세트 S0를 이용하여 디코딩된다. 중간 부분(P2)에서의 심볼들은, 먼저, 심볼 세트 S2를 이용하여 디코딩된다. 'X'가 디코딩된 경우, 부가적인 심볼이 S0를 이용하여 디코딩되어 노드를 재구성한다, 즉, 어떠한 노드도 'X'에 대응하여 구성되지 않는다. 하위 부분(P1)에서의 비-S1 심볼들은 심볼 세트 S0을 이용하여 디코딩되고, 그 위치들이 헤더로부터 공지된다. P1에서의 다른 심볼들, 즉, S1 심볼들이 심볼 세트 S1을 이용하여 디코딩된다.
방법(1100)은 기능 블록 1110으로 제어를 전달하는 시작 블록 1105로 시작한다. 블록 1110에서, 비트스트림이 수신된다. 블록 1120에서, 심볼이 비트스트림으로부터 디코딩된다. 블록 1130에서, 비 'X' 심볼이 디코딩될 경우에 옥트리의 노드가 재구성된다. 블록 1140에서, 옥트리가 완전히 재구성되는지, 즉, 옥트리 구성이 더 많은 심볼들을 더 이상 요청하지 않는지가 체크된다. 트리가 완료되지 않으면, 제어는 블록 1120으로 리턴된다. 그렇지 않으면, 블록 1150에서, 3D 메시의 지오메트리 데이터가 복구되고, 제어는 종료 블록 1199로 전달된다.
입력 비트스트림을 디코딩하여 디코딩된 시퀀스를 출력하기 위한 예시적인 계위적 엔트로피 디코딩 방법(1200)이 도 12에 도시된다. 방법(1200)은, 비트스트림이 수신되는 기능 블록 1210으로 제어를 전달하는 시작 블록 1205로 시작한다. 블록 1220에서, 심볼은, S2 = {S1, ‘X’}에 대한 통계적 모델을 이용하여, 비트스트림으로부터 디코딩된다. 블록 1230에서, 디코딩된 심볼이 사전-결정된 심볼 'X'인지가 체크된다. 디코딩된 심볼이 사전-결정된 심볼 'X'가 아니면, 즉, S1 심볼이면, 제어는 블록 1270으로 전달된다. 그렇지 않으면, 블록 1250에서, 다른 심볼이 S0을 이용하여 비트스트림으로부터 디코딩된다.
블록 1270에서, 엔트로피 디코딩 프로세스가 종결되어야 하는지가 체크된다. 일 실시예에 있어서, 옥트리의 중간 부분이 완전히 구성된 경우, 엔트로피 디코딩 프로세스가 종료한다. 다른 실시예들에 있어서, 엔트로피 디코더가 단말 심볼에 도달하는지를 체크할 수 있다. 엔트로피 디코딩이 종결되어야 한다면, 제어는 종료 블록 1299로 전달된다. 그렇지 않으면, 제어는 블록 1220으로 리턴된다.
도 13은 트리의 상위 부분을 재구성하기 위한 예시적인 방법(1300)을 도시한다. 트리 파티션과 부합하여, 너비-우선 횡단이 옥트리를 재구성하기 위해 사용된다. P0에서의 계층이 구성될 때마다, 비-S1 심볼들의 퍼센티지가 계산된다. 트리의 루트로부터 계층 단위로 스캐닝하여, th0% 미만의 비-S1 심볼들의 퍼센티지를 갖는 제1 계층 및 그 위의 계층들이 초기 상위 부분(P0)을 형성한다. 이는, 초기 상위 부분(P0) 및 P2가 어떻게 도 9에서 설명된 바와 같이 형성되는지와 부합함을 유의한다.
방법(1300)은 시작 블록 1305에서 시작하고, 초기 상위 부분(P0)이 형성되는 기능 블록 1310으로 제어를 전달한다. 블록 1320에서, 심볼이 비트스트림으로부터 판독되고, 블록 1330에서, 노드가 심볼을 이용하여 트리에서 재구성된다. 블록 1340에서, 심볼이 심볼 세트 S1에 속하는지가 체크된다. S1에 속하면, 제어는 블록 1360으로 전달된다. 그렇지 않으면, 블록 1350에서, 노드의 자식 노드들이 P0 노드들로서 마킹된다. 블록 1360에서, 아직 재구성되지 않은 임의의 마킹된 P0 노드들이 존재하는지가 체크된다. 어떠한 더 많은 재구성된 P0 노드들도 존재하지 않으면, 제어는 종료 블록 1399로 전달된다. 그렇지 않으면, 제어는 블록 1320으로 리턴된다.
P0가 재구성된 이후, 방법(1400)으로서 도 14에 도시된 바와 같은 하나의 예시적인 실시예에서 P2가 재구성된다. P0에서의 단말 노드들에 대한 심볼들로부터, 트리가 그 재구성을 계속한다. 노드(1410)에 대한 심볼 '10'이 오직 좌측 자식 노드만을 가짐을 나타내기 때문에, P2에서의 제1 심볼이 노드(1410)의 좌측 자식 노드(1440)로서 재구성된다. 유사하게, P2에서의 그 다음 2개의 심볼들이 노드(1420)의 좌측 자식 노드(1450) 및 노드(1430)의 우측 자식 노드(1460)로서 재구성된다. P2에서의 제1 계층이 완료된 이후, 트리의 나머지 계층들이 재구성된다.
P1의 상위 계층 인덱스가 주어지면, P2의 구성이 완료될 때가 공지될 수 있다. P1은 P2가 완료된 이후에 재구성된다.
도 6은 일 예로 본 원리들의 동작을 감소된 치수로 도시한다. 더 용이한 이해를 위해, 도 6은 이진 트리에 의해 표현된 심볼들이 어떻게 3개의 서브-시퀀스들로 분할되는지 및 대응하는 심볼 세트들이 엔트로피 코딩을 위해 어떻게 사용되는지를 기술한다. 단순화를 위해, 이 실시예에 있어서, P1은 임의의 비-S1 심볼들을 포함하지 않으며; P0를 형성할 경우에 임계치 th0은 고려되지 않는다. 다음에 있어서, 이러한 이진 트리에 대한 인코딩 및 디코딩 프로세스들이 상세히 설명된다.
인코딩 프로세스
먼저, 말단으로부터 너비-우선 횡단에 의해 노드들에 액세스하고 마지막 비-S1 노드(670)를 포함하는 계층을 위치지정한다. 이 계층 아래(라인 650 아래)의 모든 노드들은 P1의 부분이다. P1의 상위 계층 인덱스가 고정-길이 코딩에 의해 압축된다. P1에서의 노드들의 너비-우선 횡단에 의해 형성된 서브-시퀀스(640)가 심볼 세트 S1을 사용하여 서브스트림 3으로 압축된다.
옥트리에서의 나머지 노드들이 추가로 P0 및 P2로 파티셔닝된다. 단순화를 위해, 임계치 th0은 P2로부터 P0을 분리함에 있어서 고려되지 않고, 즉, 몇몇 상위 계층들이 P0에 포함되어야 함이 지시되지 않는다. 그 후, 루트로부터 너비-우선 횡단에 의해 노드들에 액세스한다. 비-S1 심볼을 갖는 노드에 도달할 경우, 그 자식들 및 심볼 자체는 P0에 포함되며; 그렇지 않으면, 노드 자체는 P0에 포함되지만 그 자식들은 P2에 포함된다. 횡단은, 옥트리 내의 모든 노드들이 프로세싱된 경우에 중지한다. P1로부터의 노드들은 P0 또는 P2에 포함되지 않아야 함을 유의한다. P0의 너비-우선 횡단에 의해 획득된 서브-시퀀스(620)가 서브스트림 1로 압축된다.
다른 서브-시퀀스(630)가 P2에서의 노드들의 너비-우선 횡단에 의해 형성된다. P2로부터의 심볼들은 서브스트림 2로 인코딩된다.
도 6의 예에 있어서, 파티셔닝된 및 재순서화된 서브-시퀀스들은 다음과 같다:
P0에 대한 서브-시퀀스: 11, 11, 11, 10, 10, 11, 01, 01, 01;
P2에 대한 서브-시퀀스: 01, 01, 01, 10, 11, 01, 01, 01; 및
P1에 대한 서브-시퀀스: 10, 10, 10, 10, 01, 01, 01, 01, 01, 01, 10, 10.
P0 및 P1로부터의 서브-시퀀스들은 종래의 엔트로피 인코딩을 사용하여 각각 서브스트림들 1 및 3으로 인코딩된다. P2로부터의 서브-시퀀스에 대해, S1 심볼들 및 비-S1 심볼들이 상이하게 인코딩된다. 이 예에 있어서, P2에 오직 하나의 비-S1 심볼(‘11’, 670)이 존재한다. 이 심볼을 인코딩하기 위해, 'X'이 S2 = {S1, ‘X’}을 이용하여 먼저 인코딩된다. 그 후, 심볼 자체('11')가 S0을 이용하여 인코딩된다. 나머지 S1 심볼들이 S2를 이용하여 인코딩된다. 따라서, 하나의 부가적인 심볼이 P2에 대해 인코딩된다.
이 예에 있어서, 서브-시퀀스의 인코딩 결과는 서브스트림 내에 조직된다. 따라서, P0, P2, 및 P1에 대한 심볼들이 다음과 같이 각각 서브스트림들 1, 2, 및 3 내에 인코딩된다:
서브스트림 1에서의 심볼들: 11, 11, 11, 10, 10, 11, 01, 01, 01;
서브스트림 2에서의 심볼들: 01, 01, 01, 10, ‘X’, 11, 01, 01, 01;
서브스트림 3에서의 심볼들: 10, 10, 10, 10, 01, 01, 01, 01, 01, 01, 10, 10.
디코딩 프로세스
먼저, P1의 상위 계층 인덱스를 나타내는 layer_index를 디코딩한다. 본 원리들에 따르면, 서브스트림 1로부터 심볼들을 디코딩하고, 트리의 더 상위 부분을 너비-우선 횡단에 의해 재구성한다. S1 노드에 도달할 경우, 그 자식 노드들의 재구성이 스킵된다. 횡단은, 모든 P0 노드들이 재구성될 경우에 종결한다.
다음으로, 서브스트림 2로부터 심볼들을 디코딩하고, 트리를 너비-우선 횡단에 의해 재구성하는 것을 계속한다. 심볼 'X'를 획득할 경우, 노드의 실제 심볼로서 심볼 세트 S0로 부가적인 심볼을 디코딩한다. 횡단은, P0 및 P2에서의 계층들의 수가 layer_index에 의해 표시된 수에 도달할 경우에 종결한다.
다음으로, 서브스트림 3으로부터 심볼들을 디코딩하고, 트리를 너비-우선 횡단에 의해 재구성하는 것을 계속한다.
도 15는 도 10에서 기술된 비트스트림을 형성하는데 사용될 수 있는 예시적인 인코더의 블록 다이어그램을 도시한다. 인코더(1500)의 입력은 P1의 상위 계층의 계층 인덱스 및 심볼들의 시퀀스를 포함한다. 엔트로피 인코딩 엔진 1(1510)은 S2 = {S1, ‘X’}을 이용하여 심볼들을 인코딩한다. 엔트로피 인코딩 엔진 2(1520)는 심볼 세트 S0을 이용하여 인코딩하고, 엔트로피 인코딩 엔진 3(1530)은 심볼 세트 S1를 이용하여 인코딩한다.
모든 엔트로피 인코딩 엔진들은 각각의 초기 통계적 모델들로 시작한다. 전술된 바와 같이, 초기 통계적 모델들은 큰 데이터 세트들로부터 트레이닝될 수 있다. 엔트로피 인코딩 엔진들이 인코딩을 진행함에 따라, 통계적 모델들은, 통상적으로, 입력 데이터의 통계적 특성을 더 잘 포착하기 위해 업데이트된다. 3개의 별개의 엔트로피 인코딩 엔진들이 예시적인 인코더에서 논의된다. 실제 구현들에 있어서, 이들 엔진들은 다양한 통계적 모델들 간을 스위칭하는 하나의 단일 엔진으로서 구현될 수도 있다.
헤더 정보 생성기(1540)는 비트스트림에 대한 보조 정보를 제공한다. 헤더 정보 생성기는 P1의 상위 계층의 계층 인덱스 및 서브스트림들 1 및 2의 길이들을 인코딩한다. 하위 부분(P1)에서 비-S1 심볼들이 존재할 경우, 그 위치들이 또한 헤더로 인코딩된다. 시퀀스를 디코딩하는데 요구되는 다른 정보가 또한 헤더에 포함되어야 한다. 옥트리를 파티셔닝하는데 사용되는 임계치들, 예를 들어, th0th1은 3D 메시에 적응할 수도 있고, 비트스트림마다 변할 수도 있다. 인코더와 디코더를 동기화하기 위해, 그러한 적응적 임계치들이 헤더에 임베딩될 필요가 있다.
인코더(1500)는 또한, 어느 엔트로피 인코딩 엔진이 심볼을 위해 사용될 것인지를 결정하는 것과 같은 기능들을 수행하는 제어기(1550)를 포함한다. 인코딩된 비트들 및 헤더 정보는, 예를 들어, 도 10에서 기술된 포맷에 따라, 비트스트림 어셈블러(1560)에 의해 출력 비트스트림으로 팩킹된다. 다양한 엘리먼트들 간의 상호접속들의 상세들은 도 15에 명시적으로 도시되지 않지만, 요구된 상호접속들은 당업자에 의해 이해된다.
도 16은 도 10에서 기술된 비트스트림을 디코딩하는데 사용될 수 있는, 도 15의 인코더(1500)에 대응하는 예시적인 디코더의 블록 다이어그램을 도시한다. 디코더는 통상적으로 인코더에 상호적임을 유의한다. 엔트로피 디코딩 엔진 1(1610)은 심볼 세트 S2 ({S1, ‘X’})를 이용하여, 엔트로피 인코딩 엔진 1에 의해 인코딩된 심볼들을 디코딩한다. 엔트로피 디코딩 엔진 2(1620)는 심볼 세트 S0을 이용하여, 엔트로피 인코딩 엔진 2에 의해 인코딩된 심볼들을 디코딩한다. 엔트로피 디코딩 엔진 3(1630)은 심볼 세트 S1 및 그 관련된 통계적 모델을 이용하여, 엔트로피 인코딩 엔진 3에 의해 인코딩된 심볼들을 디코딩한다. 헤더 정보 파서(1640)는 보조 정보를 디코딩한다.
디코더(1600)는 또한, 어느 엔트로피 디코딩 엔진이 심볼을 디코딩하기 위해 사용될 것인지를 결정하는 것과 같은 기능들을 수행하는 제어기(1650)를 포함한다. 디코더(1600)는 심볼들의 시퀀스 및 다른 정보, 예를 들어, 서브스트림들의 길이들을 그 출력으로서 제공한다. 게다가, 디코더의 엘리먼트들 간의 요구된 상호접속들은 당업자에 의해 이해된다.
이제, 도 17을 참조하면, 상기 설명된 특징들 및 원리들이 적용될 수 있는 데이터 송신 시스템 또는 장치(1700)가 도시된다. 데이터 송신 시스템 또는 장치(1700)는, 예를 들어, 위성, 케이블, 전화 회선, 또는 지상 방송과 같은 다양한 미디어 중 임의의 미디어를 이용하여 신호를 송신하는, 예를 들어, 헤드-엔드 또는 송신 시스템일 수 있다. 데이터 송신 시스템 또는 장치(1700)는, 또한 대안적으로, 예를 들어, 저장을 위해 신호를 제공하도록 사용될 수 있다. 송신은 인터넷 또는 일부 다른 네트워크를 통해 제공될 수 있다. 데이터 송신 시스템 또는 장치(1700)는, 예를 들어, 비디오 콘텐츠 및 예를 들어 3D 메시 모델들과 같은 다른 콘텐츠를 생성 및 전달하는 것이 가능하다.
데이터 송신 시스템 또는 장치(1700)는 프로세싱된 데이터 및 다른 정보를 프로세서(1701)로부터 수신한다. 일 구현에 있어서, 프로세서(1701)는 3D 메시 모델들의 지오메트리 데이터를 프로세싱하여 심볼들의 시퀀스들을 생성한다. 프로세서(1701)는 또한, 예를 들어, 트리 데이터 구조가 어떻게 3개의 부분들로 분할되는지, 적응적 임계치들, 및 부분(P1)에서의 비-S1 심볼들의 위치들을 나타내는 메타데이터를 1700에 제공할 수 있다.
데이터 송신 시스템 또는 장치(1700)는 인코더(1702), 및 인코딩된 신호를 송신하는 것이 가능한 송신기(1704)를 포함한다. 인코더(1702)는 프로세서(1701)로부터 데이터 정보를 수신한다. 인코더(1702)는 인코딩된 신호(들)를 생성한다. 인코더(1702)의 엔트로피 인코딩 엔진은, 예를 들어, 산술 코딩 또는 허프만 코딩일 수도 있다.
인코더(1702)는, 예를 들어, 다양한 피스들의 정보를 저장 또는 송신을 위한 구조화된 포맷으로 수신 및 어셈블리하는 어셈블리 유닛을 포함한 서브-모듈들을 포함할 수도 있다. 다양한 피스들의 정보는 예를 들어 코딩된 또는 코딩되지 않은 비디오, 및 예를 들어 서브스트림 길이 표시자 및 신택스 엘리먼트들과 같은 코딩된 또는 코딩되지 않은 엘리먼트들을 포함할 수도 있다. 일부 구현들에 있어서, 인코더(1702)는 프로세서(1701)를 포함하고, 따라서, 프로세서(1701)의 동작들을 수행한다.
송신기(1704)는 인코더(1702)로부터 인코딩된 신호(들)를 수신하고, 인코딩된 신호(들)를 하나 이상의 출력 신호들로 송신한다. 송신기(1704)는, 예를 들어, 인코딩된 화상들 및/또는 그와 관련된 정보를 표현하는 하나 이상의 비트스트림들을 갖는 프로그램 신호를 송신하도록 적응될 수 있다. 통상적인 송신기들은, 예를 들어, 에러 정정 코딩을 제공하는 것, 신호에 있어서 데이터를 인터리빙하는 것, 신호에 있어서 에너지를 랜덤화하는 것, 및 변조기(1706)를 이용하여 신호를 하나 이상의 캐리어들 상으로 변조하는 것 중 하나 이상과 같은 기능들을 수행한다. 송신기(1704)는 안테나(도시 안됨)를 포함하거나 안테나와 인터페이스할 수도 있다. 추가로, 송신기(1704)의 구현들은 변조기(1706)에 한정될 수도 있다.
데이터 송신 시스템 또는 장치(1700)는 또한 저장 유닛(1708)에 통신가능하게 커플링된다. 일 구현에 있어서, 저장 유닛(1708)은 인코더(1702)에 커플링되고, 인코더(1702)로부터의 인코딩된 비트스트림을 저장한다. 다른 구현에 있어서, 저장 유닛(1708)은 송신기(1704)에 커플링되고, 송신기(1704)로부터의 비트스트림을 저장한다. 송신기(1704)로부터의 비트스트림은, 예를 들어, 송신기(1704)에 의해 추가로 프로세싱되었던 하나 이상의 인코딩된 비트스트림들을 포함할 수도 있다. 상이한 구현들에 있어서, 저장 유닛(1708)은 표준 DVD, 블루-레이 디스크, 하드 드라이브, 또는 일부 다른 저장 디바이스 중 하나 이상이다.
이제, 도 18을 참조하면, 상기 설명된 특징들 및 원리들이 적용될 수도 있는 데이터 수신 시스템 또는 장치(1800)가 도시된다. 데이터 수신 시스템 또는 장치(1800)는, 예를 들어, 저장 디바이스, 위성, 케이블, 전화 회선, 또는 지상 방송과 같은 다양한 미디어를 통해 신호들을 수신하도록 구성될 수 있다. 신호들은 인터넷 또는 일부 다른 네트워크를 통해 수신될 수 있다.
데이터 수신 시스템 또는 장치(1800)는, 인코딩된 비디오를 수신하고 디스플레이(예를 들어, 사용자로의 디스플레이)를 위해, 프로세싱을 위해, 또는 저장을 위해 예를 들어 디코딩된 비디오 신호를 제공하는 예를 들어 셀폰, 컴퓨터, 셋탑 박스, 텔레비전, 또는 다른 디바이스일 수도 있다. 따라서, 데이터 수신 시스템 또는 장치(1800)는 그 출력을, 예를 들어, 텔레비전의 스크린, 컴퓨터 모니터, (저장, 프로세싱, 또는 디스플레이를 위한)컴퓨터, 또는 일부 다른 저장, 프로세싱, 또는 디스플레이 디바이스에 제공할 수도 있다.
데이터 수신 시스템 또는 장치(1800)는 데이터 정보를 수신 및 프로세싱하는 것이 가능하고, 데이터 정보는 예를 들어 3D 메시 모델들을 포함할 수도 있다. 데이터 수신 시스템 또는 장치(1800)는, 예를 들어, 본 출원의 구현에서 설명된 신호들과 같은 인코딩된 신호를 수신하는 수신기(1802)를 포함한다. 수신기(1802)는, 예를 들어, 3D 메시 모델들 및/또는 텍스처 이미지들 중 하나 이상을 제공하는 신호, 또는 도 17의 데이터 송신 시스템(1700)으로부터 출력된 신호를 수신할 수 있다.
수신기(1802)는, 예를 들어, 인코딩된 화상들을 표현하는 복수의 비트스트림들을 갖는 프로그램 신호를 수신하도록 적응될 수 있다. 통상적인 수신기들은, 예를 들어, 변조된 및 인코딩된 데이터 신호를 수신하는 것, 복조기(1804)를 이용하여 하나 이상의 캐리어들로부터 데이터 신호를 복조하는 것, 신호에 있어서 에너지를 랜덤화 해제하는 것, 신호에 있어서 데이터를 디인터리빙하는 것, 및 신호를 에러 정정 디코딩하는 것 중 하나 이상과 같은 기능들을 수행한다. 수신기(1802)는 안테나(도시 안됨)를 포함하거나 안테나와 인터페이스할 수도 있다. 수신기(1802)의 구현들은 복조기(1804)에 한정될 수도 있다.
데이터 수신 시스템 또는 장치(1800)는 디코더(1806)를 포함한다. 수신기(1802)는 수신된 신호를 디코더(1806)에 제공한다. 수신기(1802)에 의해 디코더(1806)에 제공된 신호는 하나 이상의 인코딩된 비트스트림들을 포함할 수도 있다. 디코더(1806)는, 예를 들어, 비디오 정보를 포함하는 디코딩된 비디오 신호들과 같은 디코딩된 신호를 출력한다. 디코더(1806)는, 예를 들어, 도 16에서 기술된 디코더(1600)일 수도 있다.
데이터 수신 시스템 또는 장치(1800)는 또한 저장 유닛(1807)에 통신가능하게 커플링된다. 일 구현에 있어서, 저장 유닛(1807)은 수신기(1802)에 커플링되고, 수신기(1802)는 저장 유닛(1807)으로부터의 비트스트림에 액세스한다. 다른 구현에 있어서, 저장 유닛(1807)은 디코더(1806)에 커플링되고, 디코더(1806)는 저장 유닛(1807)으로부터의 비트스트림에 액세스한다. 상이한 구현들에 있어서, 저장 유닛(1807)으로부터 액세스된 비트스트림은 하나 이상의 인코딩된 비트스트림들을 포함한다. 상이한 구현들에 있어서, 저장 유닛(1807)은 표준 DVD, 블루-레이 디스크, 하드 드라이브, 또는 일부 다른 저장 디바이스 중 하나 이상이다.
일 구현에 있어서, 디코더(1806)로부터의 출력 데이터는 프로세서(1808)에 제공된다. 일 구현에 있어서, 프로세서(1808)는 3D 메시 모델 재구성을 수행하기 위해 구성된 프로세서이다. 일부 구현들에 있어서, 디코더(1806)는 프로세서(1808)를 포함하고, 따라서, 프로세서(1808)의 동작들을 수행한다. 다른 구현들에 있어서, 프로세서(1808)는, 예를 들어, 셋탑 박스 또는 텔레비전과 같은 다운스트림 디바이스의 부분이다.
따라서, 특정한 특징들 및 양태들을 갖는 하나 이상의 구현들을 제공한다. 특히, 엔트로피 인코딩 및 디코딩에 관한 수개의 구현들을 제공한다. 계위적 엔트로피 인코딩 및 디코딩은, 예를 들어, 3D 메시의 지오메트리 데이터의 압축, 랜덤 2D 좌표들, 및 가변하는 통계들을 갖는 임의의 데이터 소스와 같은 다양한 어플리케이션들을 허용할 수도 있다. 하지만, 이들 구현들 및 부가적인 어플리케이션들의 변형예들은 본 개시 내에 있는 것으로 고려되며, 설명된 구현들의 특징들 및 양태들은 다른 구현들에 대해 적응될 수 있다.
본 출원에서 설명된 수개의 구현들 및 특징들은 MPEG 3DGC 표준 및 그 확장물들의 컨텍스트에서 이용될 수 있다. 부가적으로, 이들 구현들 및 특징들은 (기존의 또는 장래의)다른 표준의 컨텍스트에서, 또는 표준과 관련되지 않은 컨텍스트에서 이용될 수도 있다.
본 원리들뿐 아니라 그 변형예들의 "일 실시예" 또는 "실시예" 또는 "일 구현" 또는 "구현"에 대한 참조는 실시예들과 관련하여 설명된 특정한 특징, 구조, 특성 등이 본 원리들의 적어도 하나의 실시예에 포함됨을 의미한다. 따라서, 본 명세서 전반에 걸친 다양한 곳에서 나타나는 어구 "일 실시예에 있어서" 또는 "실시예에 있어서" 또는 "일 구현에 있어서" 또는 "구현에 있어서"뿐 아니라 임의의 다른 변형예들의 출현은 동일한 실시예를 반드시 모두 참조하는 것은 아니다.
부가적으로, 본 출원 또는 그 청구항은 다양한 피스의 정보를 "결정하는" 것을 참조할 수도 있다. 정보를 결정하는 것은, 예를 들어, 정보를 추정하는 것, 정보를 산출하는 것, 정보를 예측하는 것, 또는 메모리로부터 정보를 취출하는 것 중 하나 이상을 포함할 수도 있다.
예를 들어, "A/B", "A 및/또는 B" 및 "A 및 B 중 적어도 하나"에 있어서 다음의 "/", "및/또는", 및 "~ 중 적어도 하나" 중 임의의 것의 사용은 오직 첫번째 리스트된 옵션(A)만의 선택, 또는 오직 두번째 리스트된 옵션(B)만의 선택, 또는 옵션들(A 및 B) 양자의 선택을 포괄하도록 의도됨이 인식되어야 한다. 추가적인 예로서, "A, B, 및/또는 C" 및 "A, B 및 C 중 적어도 하나" 및 "A, B 또는 C 중 적어도 하나"의 경우들에 있어서, 그러한 어법은 오직 첫번째 리스트된 옵션(A)만의 선택, 또는 오직 두번째 리스트된 옵션(B)만의 선택, 또는 오직 세번째 리스트된 옵션(C)만의 선택, 또는 오직 첫번째 및 두번째 리스트된 옵션들(A 및 B)만의 선택, 또는 오직 첫번째 및 세번째 리스트된 옵션들(A 및 C)만의 선택, 또는 오직 두번째 및 세번째 리스트된 옵션들(B 및 C)만의 선택, 또는 모든 3개의 옵션들(A 및 B 및 C)의 선택을 포괄하도록 의도된다. 본 기술 및 관련 기술들의 당업자에 의해 용이하게 자명한 바와 같이, 이는 리스트된 다수의 아이템들로 확장될 수도 있다.
부가적으로, 다수의 구현들은 인코더(예를 들어, 인코더(1702)), 디코더(예를 들어, 디코더(1806)), 디코더로부터의 출력을 프로세싱하는 포스트-프로세서(예를 들어, 프로세서(1808)), 또는 인코더로의 입력을 제공하는 프리-프로세서(예를 들어, 프로세서(1701)) 중 하나 이상에서 구현될 수도 있다. 추가로, 다른 구현들이 본 개시에 의해 고려된다.
본 명세서에서 설명된 구현들은, 예를 들어, 방법 또는 프로세서, 장치, 소프트웨어 프로그램, 데이터 스트림, 또는 신호에서 구현될 수 있다. 오직 구현의 신호 형태의 컨텍스트에서 논의되더라도(예를 들어, 오직 방법으로서 논의되더라도), 논의된 특징들의 구현은 또한 다른 형태(예를 들어, 장치 또는 프로그램)에서 구현될 수도 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어에서 구현될 수도 있다. 방법들은, 예를 들어, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래머블 로직 디바이스를 포함하여 일반적으로 프로세싱 디바이스들을 지칭하는 예를 들어 프로세서와 같은 예를 들어 장치에서 구현될 수도 있다. 프로세서들 또한, 예를 들어, 컴퓨터들, 셀 폰들, 휴대용/개인용 디지털 보조기들("PDAs"), 및 최종 사용자들 간의 정보의 통신을 용이하게 하는 다른 디바이스들과 같은 통신 디바이스들을 포함한다.
본 명세서에서 설명된 다양한 프로세스들 및 특징들의 구현들은 다양한 서로다른 장비들 또는 어플리케이션들, 특히, 예를 들어 데이터 인코딩, 데이터 디코딩, 3D 모델링, 3D 재구성, 및 3D 컴퓨터 그래픽스의 다른 프로세싱과 연관된 장비 또는 어플리케이션들에서 구현될 수 있다. 그러한 장비의 예들은 인코더, 디코더, 디코더로부터의 출력을 프로세싱하는 포스트-프로세서, 인코더로의 입력을 제공하는 프리-프로세서, 비디오 코더, 비디오 디코더, 비디오 코덱, 웹 서버, 셋탑 박스, 랩탑, 개인용 컴퓨터, 셀 폰, PDA, 게임 콘솔, 및 다른 통신 디바이스들을 포함한다. 명백한 바와 같이, 그 장비는 이동식일 수도 있고 심지어 이동 차량에 인스톨될 수도 있다.
부가적으로, 방법들은 프로세서에 의해 수행되는 명령들에 의해 구현될 수도 있으며, 그러한 명령들(및/또는 구현에 의해 생성된 데이터 값들)은, 예를 들어, 집적 회로, 소프트웨어 캐리어, 또는 예를 들어 하드 디스크, 컴팩트 디스켓("CD"), (예를 들어, 디지털 다기능 디스크 또는 디지털 비디오 디스크로서 종종 지칭되는 DVD와 같은)광학 디스크, 랜덤 액세스 메모리("RAM"), 또는 판독 전용 메모리("ROM")와 같은 다른 저장 디바이스와 같은 프로세서 판독가능 매체 상에 저장될 수도 있다. 명령들은 프로세서 판독가능 매체 상에 유형적으로 수록된 어플리케이션 프로그램을 형성할 수도 있다. 명령들은, 예를 들어, 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합에 있을 수도 있다. 명령들은, 예를 들어, 오퍼레이팅 시스템, 별도의 어플리케이션, 또는 이들 둘의 조합에서 발견될 수도 있다. 따라서, 프로세서는, 예를 들어, 프로세스를 실행하도록 구성된 디바이스 및 프로세스를 실행하기 위한 명령들을 갖는 (저장 디바이스와 같은)프로세서 판독가능 매체를 포함하는 디바이스 양자로서 특징을 나타낼 수도 있다. 추가로, 프로세서 판독가능 매체는, 명령들에 부가하여 또는 명령들 대신에, 구현에 의해 생성된 데이터 값들을 저장할 수도 있다.
당업자에게 명백한 바와 같이, 구현들은, 예를 들어, 저장되거나 송신될 수도 있는 정보를 반송하도록 포맷팅된 다양한 신호들을 생성할 수도 있다. 정보는, 예를 들어, 방법을 수행하기 위한 명령들, 또는 설명된 구현들 중 하나에 의해 생성된 데이터를 포함할 수도 있다. 예를 들어, 신호는 설명된 실시예의 신택스를 기입 또는 판독하기 위한 룰들을 데이터로서 수록하도록, 또는 설명된 실시예에 의해 기입된 실제 신택스 값들을 데이터로서 반송하도록 포맷팅될 수도 있다. 그러한 신호는, 예를 들어, (예를 들어, 스펙트럼의 무선 주파수 부분을 사용하는)전자기파로서 또는 기저대역 신호로서 포맷팅될 수도 있다. 포맷팅은, 예를 들어, 데이터 스트림을 인코딩하는 것 및 인코딩된 데이터 스트림으로 캐리어를 변조하는 것을 포함할 수도 있다. 신호가 반송하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수도 있다. 공지된 바와 같이, 신호는 다양한 서로 다른 유선 또는 무선 링크들을 통해 송신될 수도 있다. 신호는 프로세서 판독가능 매체 상에 저장될 수도 있다.
다수의 구현들이 설명되었다. 그럼에도 불구하고, 다양한 변형들이 실시될 수도 있음이 이해될 것이다. 예를 들어, 상이한 구현들의 엘리먼트들은 결합되거나 보충되거나 변형되거나 또는 제거되어 다른 구현들을 생성할 수도 있다. 부가적으로, 당업자는, 다른 구조들 및 프로세스들이 본 개시에 대해 대체될 수도 있으며 결과적인 구현이 적어도 실질적으로 동일한 기능(들)을 적어도 실질적으로 동일한 방식(들)으로 수행하여, 개시된 구현들과 적어도 실질적으로 동일한 결과(들)를 달성할 것임을 이해할 것이다. 이에 따라, 이들 및 다른 구현들이 본 출원에 의해 고려된다.

Claims (23)

  1. 심볼들의 시퀀스에 있어서의 제1 심볼이 제1 심볼 세트에 속하지 않음을 결정하는 단계(830);
    상기 제1 심볼 세트에 대한 통계적 모델 및 사전-결정된 심볼을 이용하여 상기 제1 심볼을 표현하기 위해 상기 사전-결정된 심볼을 인코딩하는 단계(840); 및
    제2 심볼 세트에 대한 통계적 모델을 이용하여 상기 제1 심볼을 인코딩하는 단계(850) - 상기 제2 심볼 세트는 상기 제1 심볼 세트의 수퍼세트이고, 상기 사전-결정된 심볼은 상기 제2 심볼 세트에 속하지 않음 -
    를 포함하는 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 제2 심볼 세트에 대한 통계적 모델을 이용하여 심볼들의 제2 시퀀스를 인코딩하는 단계(740); 및
    제3 심볼 세트에 대한 통계적 모델을 이용하여 심볼들의 제3 시퀀스를 인코딩하는 단계(760)를 더 포함하는 방법.
  4. 제3항에 있어서,
    상기 제3 심볼 세트는 상기 제1 심볼 세트와 동일한 방법.
  5. 제3항에 있어서,
    3D 메시의 지오메트리 데이터를 수신하는 단계(710);
    트리 데이터 구조를 이용하여 상기 지오메트리 데이터를 표현하는 단계(720); 및
    상기 트리 데이터 구조를 3개의 부분들로 파티셔닝하는 단계(730)를 더 포함하고,
    상기 심볼들의 시퀀스는 상기 트리 데이터 구조의 중간 부분에 대응하고, 상기 심볼들의 제2 시퀀스는 상기 트리 데이터 구조의 상위 부분에 대응하며, 상기 심볼들의 제3 시퀀스는 상기 트리 데이터 구조의 하위 부분에 대응하는 방법.
  6. 제5항에 있어서,
    상기 트리 데이터 구조의 파티셔닝은
    제2 심볼이 상기 제1 심볼 세트에 속하지 않으면, 상기 제2 심볼과 연관된 노드의 자식 노드들을 상기 트리 데이터 구조의 상기 상위 부분에 포함시키는 단계(960); 및
    상기 제2 심볼이 상기 제1 심볼 세트에 속하면, 상기 노드의 자식 노드들을 트리의 중간 부분에 포함시키는 단계(950)
    중 하나를 포함하는 방법.
  7. 제5항에 있어서,
    상기 트리 데이터 구조의 파티셔닝은 적어도 하나의 임계치를 사용하는 방법.
  8. 제1 심볼 세트에 대한 통계적 모델 및 사전-결정된 심볼을 이용하여 비트스트림으로부터 심볼을 디코딩하는 단계(1220);
    상기 심볼이 상기 사전-결정된 심볼임을 결정하는 단계(1230); 및
    제2 심볼 세트에 대한 통계적 모델을 이용하여 상기 결정된 심볼에 대응하는 제2 심볼을 상기 비트스트림으로부터 디코딩하는 단계(1250) - 상기 제2 심볼 세트는 상기 제1 심볼 세트의 수퍼세트이고, 상기 사전-결정된 심볼은 상기 제2 심볼 세트에 속하지 않음 -
    를 포함하는 방법.
  9. 삭제
  10. 제8항에 있어서,
    상기 제2 심볼 세트에 대한 통계적 모델 및 제3 심볼 세트에 대한 통계적 모델 중 하나를 이용하여 상기 비트스트림으로부터 다른 심볼을 디코딩하는 단계(1120)를 더 포함하는 방법.
  11. 제10항에 있어서,
    상기 제3 심볼 세트는 상기 제1 심볼 세트와 동일한 방법.
  12. 제10항에 있어서,
    디코딩된 심볼들을 이용하여 트리 데이터 구조를 재구성하는 단계(1130) - 상기 디코딩된 심볼들은 상기 제2 심볼 및 상기 다른 심볼을 포함함 -; 및
    상기 트리 데이터 구조로부터 3D 메시의 지오메트리 데이터를 복구하는 단계(1150)를 더 포함하는 방법.
  13. 제12항에 있어서,
    상기 트리 데이터 구조의 재구성은
    노드와 연관된 제3 심볼이 상기 제1 심볼 세트에 속하면, 상기 제1 심볼 세트에 대한 통계적 모델 및 상기 사전-결정된 심볼을 이용하여 상기 노드에 대한 자식 노드들과 연관된 심볼들을 디코딩하는 단계; 및
    상기 제3 심볼이 상기 제1 심볼 세트에 속하지 않으면, 상기 제2 심볼 세트에 대한 통계적 모델을 이용하여 상기 노드에 대한 자식 노드들과 연관된 심볼들을 디코딩하는 단계를 포함하는 방법.
  14. 제12항에 있어서,
    상기 트리 데이터 구조의 재구성은 적어도 하나의 임계치를 사용하는 방법.
  15. 트리 데이터 구조를 3개의 부분들로 파티셔닝하는 프로세서 - 심볼들의 제1 시퀀스는 상기 트리 데이터 구조의 중간 부분에 대응하고, 심볼들의 제2 시퀀스는 상기 트리 데이터 구조의 상위 부분에 대응하며, 심볼들의 제3 시퀀스는 상기 트리 데이터 구조의 하위 부분에 대응함 -;
    상기 심볼들의 제1 시퀀스에 있어서의 심볼이 제1 심볼 세트에 속하지 않음을 결정하는 제어기;
    상기 제1 심볼 세트에 대한 통계적 모델 및 사전-결정된 심볼을 이용하여 상기 결정된 심볼을 표현하기 위해 상기 사전-결정된 심볼을 인코딩하는 제1 엔트로피 인코딩 엔진; 및
    제2 심볼 세트에 대한 통계적 모델을 이용하여 상기 심볼 및 상기 심볼들의 제2 시퀀스를 인코딩하는 제2 엔트로피 인코더
    를 포함하고,
    상기 제2 심볼 세트는 상기 제1 심볼 세트의 수퍼세트이고, 상기 사전-결정된 심볼은 상기 제2 심볼 세트에 속하지 않는 장치.
  16. 제15항에 있어서,
    노드의 자식 노드들은 제3 심볼이 상기 제1 심볼 세트에 속하지 않으면 상기 트리 데이터 구조의 상위 부분에 포함되고, 상기 노드의 자식 노드들은 상기 제3 심볼이 상기 제1 심볼 세트에 속하면 트리의 중간 부분에 포함되며, 상기 노드는 상기 제3 심볼과 연관되는 장치.
  17. 제15항에 있어서,
    3D 메시를 수신하는 입력부; 및
    상기 3D 메시의 지오메트리 데이터를 표현하기 위해 상기 트리 데이터 구조를 형성하는 생성기를 더 포함하는 장치.
  18. 제15항에 있어서,
    상기 프로세서는 상기 트리 데이터 구조를 파티셔닝하기 위해 적어도 하나의 임계치를 사용하는 장치.
  19. 제1 심볼 세트에 대한 통계적 모델 및 사전-결정된 심볼을 이용하여 비트스트림으로부터 심볼을 디코딩하는 제1 엔트로피 디코딩 엔진;
    상기 심볼이 상기 사전-결정된 심볼임을 결정하는 제어기;
    제2 심볼 세트에 대한 통계적 모델을 이용하여 상기 비트스트림으로부터 제2 심볼을 디코딩하는 제2 엔트로피 디코딩 엔진 - 상기 제2 심볼 세트는 상기 제1 심볼 세트의 수퍼세트임 -; 및
    디코딩된 심볼들을 이용하여 트리 데이터 구조를 재구성하는 프로세서 - 상기 디코딩된 심볼들은 상기 제2 심볼을 포함함 -
    를 포함하는 장치.
  20. 제19항에 있어서,
    상기 제1 엔트로피 디코딩 엔진은 제3 심볼이 상기 제1 심볼 세트에 속하면 노드에 대한 자식 노드들과 연관된 심볼들을 디코딩하도록 사용되고, 상기 제2 엔트로피 디코딩 엔진은 상기 제3 심볼이 상기 제1 심볼 세트에 속하지 않으면 상기 노드에 대한 자식 노드들과 연관된 심볼들을 디코딩하도록 사용되며, 상기 노드는 상기 제3 심볼과 연관되는 장치.
  21. 제19항에 있어서,
    상기 트리 데이터 구조는 3D 메시의 지오메트리 데이터를 표현하기 위해 재구성되는 장치.
  22. 제19항에 있어서,
    상기 트리 데이터 구조의 재구성은 적어도 하나의 임계치를 사용하는 장치.
  23. 명령들이 저장된 프로세서 판독가능 매체로서,
    상기 명령들은, 하나 이상의 프로세서들로 하여금
    제1 심볼 세트에 대한 통계적 모델 및 사전-결정된 심볼을 이용하여 비트스트림으로부터 심볼을 디코딩하는 것;
    상기 심볼이 상기 사전-결정된 심볼임을 결정하는 것; 및
    제2 심볼 세트에 대한 통계적 모델을 이용하여 상기 결정된 심볼에 대응하는 제2 심볼을 상기 비트스트림으로부터 디코딩하는 것 - 상기 제2 심볼 세트는 상기 제1 심볼 세트의 수퍼세트이고, 상기 사전-결정된 심볼은 상기 제2 심볼 세트에 속하지 않음 -
    을 일괄적으로 수행하게 하는, 프로세서 판독가능 매체.
KR1020147004710A 2011-08-25 2011-08-25 계위적 엔트로피 인코딩 및 디코딩 KR101924249B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/078936 WO2013026210A1 (en) 2011-08-25 2011-08-25 Hierarchical entropy encoding and decoding

Publications (2)

Publication Number Publication Date
KR20140056290A KR20140056290A (ko) 2014-05-09
KR101924249B1 true KR101924249B1 (ko) 2018-11-30

Family

ID=47745860

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147004710A KR101924249B1 (ko) 2011-08-25 2011-08-25 계위적 엔트로피 인코딩 및 디코딩

Country Status (6)

Country Link
US (1) US9035807B2 (ko)
EP (1) EP2749023A4 (ko)
JP (1) JP5905099B2 (ko)
KR (1) KR101924249B1 (ko)
CN (1) CN103858433B (ko)
WO (1) WO2013026210A1 (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8037102B2 (en) 2004-02-09 2011-10-11 Robert T. and Virginia T. Jenkins Manipulating sets of hierarchical data
US9646107B2 (en) 2004-05-28 2017-05-09 Robert T. and Virginia T. Jenkins as Trustee of the Jenkins Family Trust Method and/or system for simplifying tree expressions such as for query reduction
US7620632B2 (en) 2004-06-30 2009-11-17 Skyler Technology, Inc. Method and/or system for performing tree matching
US7801923B2 (en) 2004-10-29 2010-09-21 Robert T. and Virginia T. Jenkins as Trustees of the Jenkins Family Trust Method and/or system for tagging trees
US7627591B2 (en) 2004-10-29 2009-12-01 Skyler Technology, Inc. Method and/or system for manipulating tree expressions
US7630995B2 (en) 2004-11-30 2009-12-08 Skyler Technology, Inc. Method and/or system for transmitting and/or receiving data
US7636727B2 (en) * 2004-12-06 2009-12-22 Skyler Technology, Inc. Enumeration of trees from finite number of nodes
US8316059B1 (en) 2004-12-30 2012-11-20 Robert T. and Virginia T. Jenkins Enumeration of rooted partial subtrees
US8615530B1 (en) 2005-01-31 2013-12-24 Robert T. and Virginia T. Jenkins as Trustees for the Jenkins Family Trust Method and/or system for tree transformation
US7681177B2 (en) 2005-02-28 2010-03-16 Skyler Technology, Inc. Method and/or system for transforming between trees and strings
US7899821B1 (en) 2005-04-29 2011-03-01 Karl Schiffmann Manipulation and/or analysis of hierarchical data
WO2013010317A1 (en) * 2011-07-18 2013-01-24 Technicolor (China) Technology Co., Ltd. Method for adaptive entropy coding of tree structures
US10032309B2 (en) 2011-11-07 2018-07-24 Thomson Licensing Predictive position decoding
CN104115496A (zh) 2012-02-09 2014-10-22 汤姆逊许可公司 基于八叉树分解的三维模型的高效压缩
US9697326B1 (en) * 2012-02-27 2017-07-04 Kelly Eric Bowman Topology graph optimization
CN116630452A (zh) * 2016-06-14 2023-08-22 松下电器(美国)知识产权公司 三维数据编码方法、解码方法、编码装置、解码装置
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
EP3407607A1 (en) 2017-05-24 2018-11-28 Thomson Licensing Method and device for encoding and reconstructing a point cloud
EP3418976A1 (en) 2017-06-22 2018-12-26 Thomson Licensing Methods and devices for encoding and reconstructing a point cloud
EP3474233A1 (en) * 2017-10-19 2019-04-24 Thomson Licensing A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object
EP3703000A4 (en) * 2017-10-24 2020-09-23 Panasonic Intellectual Property Corporation of America THREE-DIMENSIONAL DATA CODING PROCESS, THREE-DIMENSIONAL DATA DECODING PROCESS, THREE-DIMENSIONAL DATA ENCODING DEVICE, AND TRIDIMENSIONAL DATA DECODING DEVICE
US11632560B2 (en) * 2017-12-06 2023-04-18 V-Nova International Limited Methods and apparatuses for encoding and decoding a bytestream
US10585626B2 (en) 2017-12-07 2020-03-10 International Business Machines Corporation Management of non-universal and universal encoders
FI3514968T3 (fi) 2018-01-18 2023-05-25 Blackberry Ltd Menetelmiä ja laitteita pistepilvien entropiakoodausta varten
WO2019146691A1 (ja) * 2018-01-26 2019-08-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7151141B2 (ja) * 2018-04-12 2022-10-12 富士フイルムビジネスイノベーション株式会社 符号化装置、復号装置及びプログラム
WO2019235587A1 (ja) * 2018-06-08 2019-12-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7389028B2 (ja) * 2018-06-12 2023-11-29 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
EP3822915A4 (en) * 2018-07-13 2021-08-18 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
WO2020072665A1 (en) * 2018-10-02 2020-04-09 Futurewei Technologies, Inc. Hierarchical tree attribute coding in point cloud coding
CN109597127B (zh) * 2018-10-29 2020-05-26 中国科学院计算技术研究所 一种地震数据的可视化方法
GB2578769B (en) 2018-11-07 2022-07-20 Advanced Risc Mach Ltd Data processing systems
GB2583061B (en) * 2019-02-12 2023-03-15 Advanced Risc Mach Ltd Data processing systems
CA3128973A1 (en) 2019-03-04 2020-09-10 Bhaskar Bhattacharyya Data compression and communication using machine learning
WO2020196680A1 (ja) * 2019-03-25 2020-10-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN109805928A (zh) * 2019-04-09 2019-05-28 太原理工大学 一种脑卒中脑电信号分类方法及***
JPWO2020251019A1 (ko) * 2019-06-14 2020-12-17
CA3134855A1 (en) 2019-06-26 2020-12-30 Tencent America LLC Implicit quadtree or binary-tree geometry partition for point cloud coding
EP3994668A4 (en) 2019-07-02 2023-11-22 Tencent America LLC METHOD AND APPARATUS FOR POINT CLOUD COMPRESSION
US11368717B2 (en) 2019-09-16 2022-06-21 Tencent America LLC Method and apparatus for point cloud compression
JP2023507879A (ja) * 2019-12-26 2023-02-28 エルジー エレクトロニクス インコーポレイティド ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法
US11983907B2 (en) * 2020-01-09 2024-05-14 Tencent America LLC Techniques and apparatus for explicit quad-tree and binary-tree partitioning for geometry coding
EP4161074A4 (en) * 2020-05-29 2024-06-05 LG Electronics, Inc. POINT CLOUD DATA TRANSMISSION APPARATUS, POINT CLOUD DATA TRANSMISSION METHOD, POINT CLOUD DATA RECEIVING APPARATUS AND POINT CLOUD DATA RECEIVING METHOD
US11611775B2 (en) 2021-01-19 2023-03-21 Tencent America LLC Method and apparatus for point cloud coding
WO2023182675A1 (ko) * 2022-03-21 2023-09-28 현대자동차주식회사 옥트리 기반 삼각형 코딩을 이용하는 메시 압축을 위한 방법 및 장치
CN117040539B (zh) * 2023-08-15 2024-04-16 青岛智腾微电子有限公司 一种基于m叉树和lzw算法的石油测井数据压缩方法及装置
CN117278057B (zh) * 2023-11-22 2024-02-09 博睿康科技(常州)股份有限公司 自适应数据压缩***、压缩方法、电生理信号压缩方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010077658A2 (en) 2008-12-09 2010-07-08 Qualcomm Incorporated Fast parsing of variable-to-fixed-length codes

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2840589B2 (ja) * 1996-02-09 1998-12-24 富士通株式会社 データ圧縮装置及びデータ復元装置
JPH1023406A (ja) * 1996-07-05 1998-01-23 Matsushita Electric Ind Co Ltd 基準化可能な輪郭符号化における2方向頂点予測方法
JP3466058B2 (ja) * 1996-07-31 2003-11-10 松下電器産業株式会社 画像復号化装置、及び画像復号化方法
US5901182A (en) 1997-03-26 1999-05-04 Sharp Laboratories Of America, Inc. Metric sifting in breadth-first decoding of convolutional coded data
JP3421700B2 (ja) * 1998-01-22 2003-06-30 富士通株式会社 データ圧縮装置及び復元装置並びにその方法
US6100824A (en) * 1998-04-06 2000-08-08 National Dispatch Center, Inc. System and method for data compression
FR2784211B1 (fr) * 1998-10-02 2000-12-15 France Telecom Procede de codage d'images fixes ou animees avec reduction et adaptation du debit
US6677868B2 (en) 2001-03-16 2004-01-13 Sharp Laboratories Of America, Inc. Entropy coding with adaptive syntax to replace high probability symbols with lower probabilities symbols
US7095343B2 (en) * 2001-10-09 2006-08-22 Trustees Of Princeton University code compression algorithms and architectures for embedded systems
BR0215919A (pt) * 2002-10-24 2005-08-23 Agency Science Tech & Res Método e dispositivo para processar sìmbolos de bit gerados por uma fonte de dados; meio legìvel por computador; elemento de programa de computador
KR100519780B1 (ko) 2004-02-17 2005-10-07 삼성전자주식회사 3차원 체적 데이터 부호화/복호화 방법 및 장치
KR100695142B1 (ko) 2004-03-08 2007-03-14 삼성전자주식회사 적응적 2의 n 제곱 진트리 생성방법 및 이를 이용한 3차원 체적 데이터 부호화/복호화 방법 및 장치
FR2876821A1 (fr) * 2004-10-14 2006-04-21 France Telecom Procede de decodage local d'un train binaire de coefficients d'ondelettes
CN100403801C (zh) 2005-09-23 2008-07-16 联合信源数字音视频技术(北京)有限公司 一种基于上下文的自适应熵编/解码方法
US7372379B1 (en) * 2006-03-28 2008-05-13 Nvidia Corporation Method and system for decoding N-tuple variable length code
KR100969764B1 (ko) 2008-02-13 2010-07-13 삼성전자주식회사 메쉬 모델로 구현된 3차원 데이터의 부호화 및 복호화 방법
US8406546B2 (en) 2009-06-09 2013-03-26 Sony Corporation Adaptive entropy coding for images and videos using set partitioning in generalized hierarchical trees
GB0910850D0 (en) 2009-06-23 2009-08-05 Icera Inc Processing signals in a wireless network
US8571306B2 (en) * 2011-08-10 2013-10-29 Qualcomm Incorporated Coding of feature location information

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010077658A2 (en) 2008-12-09 2010-07-08 Qualcomm Incorporated Fast parsing of variable-to-fixed-length codes

Also Published As

Publication number Publication date
JP5905099B2 (ja) 2016-04-20
US20140184430A1 (en) 2014-07-03
WO2013026210A1 (en) 2013-02-28
KR20140056290A (ko) 2014-05-09
EP2749023A1 (en) 2014-07-02
CN103858433B (zh) 2017-08-15
CN103858433A (zh) 2014-06-11
JP2014529950A (ja) 2014-11-13
US9035807B2 (en) 2015-05-19
EP2749023A4 (en) 2016-04-06

Similar Documents

Publication Publication Date Title
KR101924249B1 (ko) 계위적 엔트로피 인코딩 및 디코딩
JP5936687B2 (ja) ツリー構造の適応的エントロピー符号化方法
JP5932051B2 (ja) 予測位置復号
JP2015504545A (ja) 予測位置符号化
KR102014309B1 (ko) 종결가능한 공간 트리-기반의 위치 코딩 및 디코딩
CN105103192A (zh) 用于顶点误差校正的方法和装置
CN100581253C (zh) 用于解码比特流的装置和方法
CN100414996C (zh) 用于编码和解码关键字数据的装置和方法
Razaq et al. Evolution and Advancement of Arithmetic Coding over Four Decades
Rein Low Complexity Text and Image Compression for Wireless Devices and Sensors
Livada et al. EEDC image compression enhancement by symbol prediction
Hao et al. Mesh Connectivity Compression for Progressive-to-Lossless Transmission

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