KR20140018919A - 메시 모델을 인코딩하는 방법, 인코딩된 메시 모델 및 메시 모델을 디코딩하는 방법 - Google Patents

메시 모델을 인코딩하는 방법, 인코딩된 메시 모델 및 메시 모델을 디코딩하는 방법 Download PDF

Info

Publication number
KR20140018919A
KR20140018919A KR1020137026953A KR20137026953A KR20140018919A KR 20140018919 A KR20140018919 A KR 20140018919A KR 1020137026953 A KR1020137026953 A KR 1020137026953A KR 20137026953 A KR20137026953 A KR 20137026953A KR 20140018919 A KR20140018919 A KR 20140018919A
Authority
KR
South Korea
Prior art keywords
points
cell
child
cells
parent cell
Prior art date
Application number
KR1020137026953A
Other languages
English (en)
Inventor
캉잉 카이
지앙 티안
웨이 리앙 멩
Original Assignee
톰슨 라이센싱
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 톰슨 라이센싱 filed Critical 톰슨 라이센싱
Publication of KR20140018919A publication Critical patent/KR20140018919A/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Generation (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

많은 3D 메시 모델은 다양한 위치, 스케일 및 배향으로 반복되는 많은 수의 소형 연결 컴포넌트를 갖고 있다. 각각의 위치들은 컴포넌트당 적어도 하나의 기준점의 위치에 의해서 정의된다. 각각의 기준점들의 위치의 강화된 인코딩을 위해, 주어진 공간이 세그먼트들(Q1-Q4, r1-r3, sq1-sq3)로 분리되고 각 특정 세그먼트 내에 놓여있는 점의 수가 결정된다. 적어도 n 점이 있는 셀(Q2)이 자식 셀들(r1)로 세분될 때, 부모의 모든 점이 단지 한 자식 셀 내에 있는지 여부를 나타내는 표시가 부가된다. 그렇다면, 비어있지 않은 자식 노드만의 인덱스가 인코딩되고, 그렇지 않다면 2개의 자식 셀 중 하나에 있는 점의 수가 감소되어 인코딩된다. 본 발명은 셀의 비효과적인 세분을 방지하므로 압축 효율을 증가시킨다.

Description

메시 모델을 인코딩하는 방법, 인코딩된 메시 모델 및 메시 모델을 디코딩하는 방법{METHOD FOR ENCODING A MESH MODEL, ENCODED MESH MODEL AND METHOD FOR DECODING A MESH MODEL}
본 발명은 메시 모델을 인코딩하는 방법, 대응하는 인코더 장치, 인코딩된 메시 모델, 메시 모델을 디코딩하는 방법 및 대응하는 디코더 장치에 관한 것이다.
1990년대 초반 이후로 3D 메시를 효율적으로 압축하기 위한 다양한 알고리즘이 제안되었다. 그러나, 초기 연구는 대부분 평탄한 표면과 작은 삼각형들이 있는 단일-연결(single connected) 3D 모델을 압축하는 것에 중점을 두고 있다. 오늘날 대부분의 대규모 3D 엔지니어링 모델에는, 많은 수의 소형 내지 중형 규모의 연결 컴포넌트가 있으며, 각각의 연결 컴포넌트는 평균 최대 수백 개의 다각형을 갖는다. 종종 이러한 유형의 모델은 다양한 위치, 스케일 및 배향으로 반복되는 다수의 기하 특징부 또는 컴포넌트를 갖는다. 그러한 모델은 다중-연결(multi-connected)이라 불린다. 이들 컴포넌트는 개별적으로 압축되므로 압축이 비교적 비효율적으로 이루어진다. 압축 성능은 상이한 연결 컴포넌트들 간에 중복을 제거함으로써 상당히 향상될 수 있다. 대규모 3D 엔지니어링 모델에서 반복하는 기하 특징부들을 자동으로 발견하는 다양한 방법이 알려져 있다. 이들 각각의 위치는 컴포넌트마다 적어도 하나의 기준점(reference point)의 3D 위치에 의해 정의된다. 그러나, 각각의 기준점의 위치를 어떻게 인코딩하느냐에 대한 하나의 문제점이 존재한다.
공간점(spatial point)들에 대한 대부분의 효율적인 압축 알고리즘은 공간 트리 기반, 예를 들어, kd-트리 기반이거나([OG02]에 기술되어 있음: O. Devillers, P. Gandoin. "Geometric compression for interactive transmission(상호작용적 전송에 대한 기하 압축)", IEEE Visualization, 2000, pp.319-326), 또는 옥트리(octree) 기반이다([PK05]에 기술되어 있음: J.L. Peng, C.-C. Jay Kuo. "Geometry-guided progressive lossless 3D mesh coding with octree(OT) decomposition(옥트리(OT) 분해를 이용하는 기하-유도 점진적 무손실 3D 메시 코딩)", ACM SIGGRAPH/ACM Transactions on Graphics 24(3), 609-616, 2005).
이들 알고리즘은 주어진 공간을 세그먼트들로 나누고, 각각의 특정 세그먼트에 놓이는 입력 공간 점들의 수를 제공한다. 이렇게 하여, 이들 알고리즘은 입력 공간 점들을 암시 공간 트리로 구성한다. 이후, 이들은 트리 구조를 트래버스(traverse)하고 입력 점들을 나중에 복원하기 위해 필요한 정보를 기록한다. 공간 트리를 구축할 때, 셀은, 각각의 비어있지 않은 셀(non-empty cell)이 하나의 꼭지점만을 포함하고 점 위치의 충분히 정밀한 재구성(reconstruction)을 가능하게 해줄 수 있을 정도로 충분히 소형이 될 때까지, 재귀적으로(recursively) 세분된다(subdivided).
셀들은 노드들에 대응한다. 초기에, 모든 3D 점들의 전체 경계 상자(bounding box)는 셀 또는 노드로 간주된다. 점 위치들이 대응하는 셀들의 경계 상자로부터 복원될 수 있으므로, 공간 트리 기반 알고리즘은 단일-분해능 압축 알고리즘과 동일한 압축비로 다중-분해능 압축을 성취할 수 있다.
[OG02]에 이용된 방법의 일례가 도 1에 도시되어 있다. 부모 셀이 2개의 자식 셀로 세분될 때마다, 2개의 자식 셀 중 한 셀(예를 들어, 왼쪽 또는 상방) 내의 점들의 수가 인코딩된다. 부모 셀이 p개의 점들을 포함하고 있으면, 자식 셀들 중 한 셀에 있는 점들의 수는 산술 부호기에 의해 log2(p+1) 비트를 이용하여 인코딩할 수 있다.
이와는 달리, [PK05]는 비어있지 않은 셀을 8개의 셀로 세분하고, 각 셀이 세분된 후에 비어있지 않은 자식-셀들의 인덱스만을 인코딩한다. 코딩 효율을 향상시키기 위해서, [PK05]는 비어있지 않은 자식 셀들의 그룹이 되는 다양한 T-튜플(T-tuple)들의 유사-확률(pseudo-probability)을 추정한다. 자식 셀들의 트래버스 순서(traversal orders)는 확률 내림 차순(probability descending order)에 따른다.
그러나, 조밀한 저장 및 고속 전송이 가능해지도록, 압축 알고리즘의 효율을 어떻게하면 높일 수 있는가에 대한 문제 의식이 계속되고 있다.
본 발명은 다음과 같은 사실의 인식에 기반하고 있다: 공간 점들을 공간 트리로 구성하여 압축하는 효율은 주로 각각의 자식 트리 노드가 그의 부모 트리 노드보다 작은 수의 데이터 점들을 포함하고 있는지 여부에 의존한다. 자식 노드가 그의 부모와 동일한 데이터 점들(또는 각각, 그의 부모와 동일한 수의 데이터 점들)을 포함하고 있다면, 대응하는 세분은 효과적(effective)이지 않다. 그러한 비효과적인 세분은 코딩된 데이터량을 증가시키고, 그로 인해 압축 효율은 떨어진다. 세분이 비효과적(non-effective)일수록 그만큼 압축비도 낮아진다.
본 발명의 장점은 비효과적인 세분에 의해 유발되는 압축 효율의 감소를 방지할 수 있고 그에 따라서 압축이 향상된다는 것이다.
본 발명에 따르면, 메시 모델의 입력 점들은 그들의 공간 위치에 따라서 먼저 클러스터(cluster)된다. 각각의 클러스터는 공간적으로 모여있는 점들의 집합을 포함한다. 이후 각각의 클러스터는 공간 트리(예로, kd-트리 또는 옥트리(octree))를 이용하여 압축된다. 각각의 세분마다, 결정 단계는 2개의 조건을 결정한다: 첫 번째, 부모 셀에 있는 점들의 수, 및 두 번째, 세분이 효과적인지, 즉 모든 최종 자식 노드가 부모 노드보다 적은 수의 데이터 점을 갖고 있는지 여부. 일 실시 예에서, 부모 셀이 전체적으로 주어진 최소 수의 점들 미만인 점을 갖고 있다면, 임의 세분 부분이 종래방식으로 인코딩되며, 즉 코드는 자식 셀들 중 정의된 하나의 셀에 있는 점들의 수를 나타낸다. 그러나, 적어도 상기 최소 수의 점이 있는 부모 셀들의 세분 부분은 상이하게 인코딩된다.
종래의 인코딩 또는 모드 표시를 이용한 코딩 모드들 중 한 모드를 이용해야 하는지 여부를 결정하는데 이용되는 최소 수의 점들은 부모 셀당 그리고 분할 작업(splitting operation)당 자식 셀의 수에 의존한다. 부모 셀을 2개의 자식 셀로 분할하는 경우, 최소 수는 4이다. 부모 셀을 2보다 많은 자식 셀로 분할하는 경우, 최소 수는 4보다 크다. 그러므로, 이하 주어진 모든 예에서, 최소 수의 점 - 이에 따라서 코딩 모드가 결정됨 - (또는 코딩 모드 결정 한도)이 4일지라도, 이 수는 부모 셀의 분할로 인해 자식 셀이 2개보다 많게 되는 경우 다를 수 있다.
부모 셀이 전체적으로 p개 - 여기서 p는 적어도 4임 - 점을 갖고 있고 세분이 효과적이라서 자식 셀들 중 정의된 하나의 셀에 p1개의 점들(0<p1<p)이 있다면, 효과적인 세분은 p1-1, 즉 자식 셀에 있는 점들의 수 마이너스 1의 인코딩된 값에 의해 인코딩된다.
부모 셀이 전체적으로 p개 - 여기서 p는 적어도 4임 - 점을 갖고 있고, 세분이 비효과적이라면, 모든 점들은 자식 셀들 중 단지 한 셀에 있으며 세분은 다음과 같이 인코딩된다: 점들의 수 대신에, 코드는 선-정의된 인덱싱 체계를 이용하여 비어있지 않은 자식 노드의 인덱스를 나타낸다.
부모 셀이 적어도 4개의 점을 갖고 있을 때 2개의 인코딩 모드를 상이하게 하기 위하여(즉, 효과적이거나 비효과적인 세분), 트리 노드마다 추가의 모드 표시가 최종 코드 또는 출력 데이터 스트림 내에 삽입된다. 모드 표시는 대응하는 세분이 효과적인지 여부를 나타낸다.
이 인코딩은 새로운 유형의 인코딩 포맷이 되며, 이러한 인코딩 포맷은 공간 트리로 볼 수 있으며, 적어도 4개의 점들이 있는 각각의 트리 노드에 대해서 대응하는 세분이 효과적인지, 즉 분할된 부모 셀의 모든 점들이 단지 하나의 자식 셀내에 있는지 여부를 나타내기 위한 표시를 포함하고 있다. 각각의 세분에 대해서, 상술한 포맷으로 압축된 데이터는 자식 셀들 중 한 셀에 있는 점들의 수(부모 셀에 있는 전체 점의 수가 4 미만인 경우), 또는 1씩 감소하는 자식 셀 내의 점의 수(부모 셀에 있는 전체 점의 수가 적어도 4이고 세분이 효과적인 경우), 또는 단지 비어있지 않은 자식 셀의 인덱스(부모 셀에 있는 전체 점의 수가 적어도 4이고 세분이 비효과적인 경우)를 뒤따른다. 유리하게도, 인덱스는 점의 수가 적어도 4인 경우 인코딩된 점의 수보다 적은 수의 비트를 이용한다.
본 발명에 따른 인코딩 포맷으로 데이터를 디코딩하는 동안, 공간 트리를 트래버스할 때, 각각의 세분에 대해서 현재 부모 셀에 있는 점의 수가 계산되거나 결정되고, 현재 세분이 효과적인지 여부를 검출하기 위해 표시(예를 들어, 1 비트)가 분석된다.
일 실시 예에서, 본 발명은 메시 모델의 점들을 인코딩하는 방법에 관한 것이며, 이 방법은 전체 점의 수를 결정하고 결정된 전체 점의 수를 코드 - 선-정의된 코드 워드 길이가 이용됨 - 내에 삽입하는 단계, 이들의 공간 좌표에 따라서 점들을 1 이상의 클러스터로 클러스터링하는 단계, 및 계층 트리를 이용하여 클러스터된 점들을 인코딩하는 단계를 포함하며, 이 인코딩 단계는 클러스터들 주위(즉, 모델의 모든 점들 주위)에 경계 상자를 정의하는 단계, 이 경계 상자를 재귀적으로 분리하는(dividing) 단계 - 각각의 분리 단계는 부모 셀을 선-정의된 수의 자식 셀(최소 두 개)로 분리함 - , 및 각각의 분리 단계에 대해, 현재 부모 셀에 대해서 포함되어 있는 점의 수를 결정하는 단계, 부모 셀의 모든 점이 단일 자식 셀 내에 있는지 여부를 결정하는 단계, 및 상기 결정 단계들의 결과를 나타내는 표시를, 다음과 같이, 인코딩하는 단계를 포함한다.
결정이 부모 셀 내의 전체 점의 수가 4 미만임을 나타내면, 자식 셀들 중 특정(선-정의된) 하나의 자식 셀 내에 있는 점의 수는 코드 내에 삽입된다.
결정이 부모 셀 내의 전체 점의 수가 4보다 크고 부모 셀의 점들이 자식 셀들 중 적어도 2개의 자식 셀에 분포되어 있음을 나타내면, 분리 단계는 효과적이며, 이 분리의 유효성(effectiveness)을 나타내는(예로, 1로 설정된 단일 비트에 의해) 제1 표시, 및 자식 셀들 중 특정(선-정의된) 하나의 자식 셀 내에 있는 점의 수가 코드 내에 삽입된다.
결정이 부모 셀 내의 전체 점의 수가 4보다 크고 부모 셀의 모든 점이 단일 자식 셀 내에 있음을 나타내면, 분리 단계는 비효과적이고, 분리의 비-유효성(non-effectiveness)을 나타내는(예로, 0에 설정된 단일 비트에 의해) 제2 표시가 코드 내에 삽입되고, 부모 셀의 모든 점을 포함하는 단일 자식 셀의 인덱스가 결정되고, 이 인덱스가 코드 내에 삽입된다.
2개보다 많은 자식 셀로 분할이 이루어지면, 코딩 모드 결정 한도가 4보다 클 수 있고, 인덱스가 삽입되기 전에 인코딩된다. 이 인덱스를 인코딩하는데 이용하는 비트 양은 분할 단계의 결과인 자식 셀의 수로부터 유도될 수 있다.
일 양태에서, 메시 모델의 점들을 디코딩하는 방법은 인코딩된 데이터 집합으로부터 적어도 하나의 값과 복수의 점의 위치 데이터인 제1 데이터 - 상기 값은 전체 점의 수를 나타내고 제1 데이터는 복수의 코드 워드를 정의하며, 각 코드 워드는 셀들로의 경계 상자의 복수의 재귀적인 분리들 중 하나를 가리키며, 각 분리는 현재 부모 셀을 2 이상의 자식 셀로 분리함 - 를 추출하는 단계, 및 상기 값과 상기 제1 데이터를 기반으로 상기 점들의 위치를 결정하는 단계를 포함하며, 코드 워드들 중 적어도 몇몇은 현재 셀 분리 단계가 효과적인지 여부를 나타내는 표시(1 비트)를 포함한다. 각 코드 워드의 길이는 고정 또는 가변일 수 있으며; 코드 워드의 길이가 가변인 경우, 그의 길이 및 값은 주어진 규칙에 따라서 디코딩하는 동안 계산될 수 있다.
각각의 현재 부모 셀에 대해서, 현재 부모 셀이 포함하는 전체 점의 수가 결정된다. 일 실시 예에서, 이는 이전에 계산되어 저장되어 있고, 저장 장치로부터 검색된다. 또한, 결정된 점들의 수를 인코딩하는데 이용되는 비트의 수가 계산된다; 이는 나중에 코드 워드 길이를 결정하는데 이용된다. 전체 점의 수가 4 미만이면, 대응하는 코드 워드는 위에서 언급한 표시를 갖질 않으며, 자식 셀들 중 선-정의된 자식 셀 내의 점의 수로서 해석된다. 전체 점의 수가 적어도 4이면, 대응하는 코드 워드는 상기 표시로 시작되며, 이 표시는 평가된다. 이 표시에 따라서, 코드 워드의 나머지 비트들은 2개의 의미를 가질 수 있다: 이들은 현재 부모 셀의 현재 분리 결과인 자식 셀들 중 선-정의된 자식 셀 내에 위치해 있는 감소된 점들의 수이다. 이 수가 감소하기 때문에, 실제 점들의 수를 얻기 위해서는 1만큼 증분할 필요가 있다. 또는 코드 워드의 나머지 비트들은 현재 부모 셀의 현재 분리 결과인 한 자식 셀의 인덱스이다. 이 인덱스는 부모 셀의 점들 모두를 포함하는 하나의 자식 셀의 식별자이다. 코드 워드 길이가 가변이면, 위에서 결정된 비트의 수(플러스 플래그에 대한 1 비트)는 현재 코드 워드 길이다. 코드 워드 길이가 제1 코드 워드의 경우와 같이(즉, 모델 내의 전체 점의 수) 고정이면, 이는 선-정의된다. 디코딩 동안, 각 꼭지점의 위치는, 주어진 종료 조건으로 디코딩이 종료할 때까지, 자식 셀들이 연속해서 더 작아지는 식으로 반복해서 로컬라이즈된다(localized).
본 발명은 다중-컴포넌트 모델들에서 컴포넌트들의 기준점들이며 이들 모델의 꼭지점들의 클러스터를 표시하는 점들에 이용될 수 있다. 원론적으로, 본 발명은 임의 메시 모델의 꼭지점들인 점들, 또는 좌표에 의해 정의되는 임의 다른 대규모 그룹의 점들에도 이용될 수 있다.
일반적으로, 부모 셀들, 적어도 비어 있지 않은 셀들 내의 점들의 수를 계속 파악해야할 필요가 있다. 예를 들어, 비어있지 않은 자식 셀 내의 점들의 수는, 차기 분리 후에, 자식 셀이 분모 셀이 될 때까지 저장된다. 이후, 이 수는 부모 셀 내의 점들의 수를 결정할 때 저장 장치로부터 검색된다.
본 발명은 또한 점들을 그들의 공간 좌표에 따라서 1 이상의 클러스터로 클러스터링하는 클러스터링 수단, 및 클러스터된 점들을 인코딩하는 인코딩 수단을 포함하는 인코딩 장치에 관한 것이며, 인코딩 수단은 클러스터들 주위에 경계 상자를 정의하는 초기화 유닛, 경계 상자를 재귀적으로 분리하기 위한 재귀적 분리 유닛 - 상기 재귀적 분리의 각 분리 단계는 부모 셀을 선-정의된 수의 자식 셀로 분리함 - , 각 분리 단계마다 분리된 각각의 현재 부모 셀들에 대한 점의 수를 결정하고 부모 셀당 점의 수가 적어도 4인지 여부를 결정하는 점 분포 결정 유닛, 및 위에서 설명한 바와 같이, 점의 수가 4 미만이면 점의 수를 인코딩하고 상술한 바와 같이 점의 수가 적어도 4이면 감소된 점들의 수를 자식 셀 또는 자식 셀 인덱스로 인코딩하는 인코딩 유닛을 포함하고 있다.
더욱이, 본 발명은 메시 모델을 디코딩하는 디코더에 관한 것이며, 이 디코더는 인코딩된 데이터 집합으로부터 적어도 제1 데이터 및 전체 점의 수를 나타내는 초기값을 추출하는 추출 수단, 경계 상자를 셀들로 재귀적으로 분리하는 재귀적 분리 수단 - 재귀적 분리 각각은 현재 부모 셀을 자식 셀들로 분리함 -, 및 상기 자식 셀들에 따라서 상기 점들의 위치를 결정하는 결정 수단을 포함하고 있다. 결정 수단은 현재 부모 셀 내의 점의 수를 결정하는 유닛, 현재 부모 셀 내의 결정된 점의 수에 따라서 코딩 모드를 검출하는 코딩 모드 검출 유닛, 현재 부모 셀의 점의 수로부터 각각의 코드 워드의 길이를 유도하는 코드 워드 길이 검출 유닛, 및 상술한 바와 같이 차기 코드 워드를 디코딩하는 디코딩 유닛을 포함하고 있다.
일 양태에서, 본 발명은 컴퓨터가 위에 언급한 인코딩 단계들을 포함하는 방법을 수행할 수 있게 해주는 실행가능 명령들이 저장되어 있는 컴퓨터 판독가능 매체에 관한 것이다. 한 양태에서, 본 발명은 컴퓨터가 위에 언급한 디코딩 단계들을 포함하는 방법을 수행할 수 있게 해주는 실행가능 명령들이 저장되어 있는 컴퓨터 판독가능 매체에 관한 것이다.
일 실시 예에서, 본 발명은 복수의 반복 연결 컴포넌트를 포함하는 인코딩된 메시 모델에 관한 것이며, 인코딩된 메시 모델은 적어도
각각의 반복 연결 컴포넌트의 인스턴스(instance),
인코딩된 연결 컴포넌트들의 전체 수,
상기 반복 연결 컴포넌트들의 복수의 반복의 위치들 - 이들 위치는 트리 구조(예로, kd-트리)로서 인코딩되고 데이터는 메시 모델에 대한 경계 영역을 정의함 - 의 인코딩된 데이터를 포함한다. 경계 영역은 트리 구조가 참조하는 초기 부모 셀이다. 트리로 인코딩되는 위치들은 위에 기술한 인코딩을 이용한다. 즉, 이 인코딩은 트리 구조의 각 노드에 대한 코드 워드를 포함하며, 적어도 4개의 점이 있는 노드들에 대해서, 코드 워드는 현재 부모 셀의 점들이 적어도 2개의 자식 셀들에 분포되어 있으면 제1 값을 갖고 현재 부모 셀의 점들이 단일 자식 셀 내에 있으면 상이한 제2 값을 갖는 표시로 시작하며, 코드 워드의 나머지 비트들은 자식 셀들 중 선-정의된 자식 셀 내에 위치해 있는 점들의 수 마이너스 1을 표기하거나(이 표시가 제1 값을 갖는 경우), 또는 부모 셀의 모든 점들을 포함하는 자식 셀인, 현재 부모 셀의 자식 셀의 인덱스를 표기한다(이 표시가 제2 값을 갖는 경우).
본 발명의 유익한 실시 예들은 종속 청구항, 다음의 설명 및 도면에 개시되어 있다.
본 발명의 예시적인 실시 예들을 첨부 도면을 참조하여 설명한다.
도 1은 2D 예에 있어서의 kd-트리 코딩의 원리를 보여주는 도면이다.
도 2는 효과적인 세분 및 비효과적인 세분을 이용하는 kd-트리에 있어서의 데이터 점들을 구성하는 것을 보여주고 있다.
도 3 a)는 상이한 디멘젼의 3D 부모 셀의 분리를 보여주고 있으며, 도 3 b)는 수평, 수직 및 깊이 디멘젼의 3D 부모 셀의 연속 분리를 보여주고 있다.
도 4는 a)코딩 결정 단계, b)인코딩 방법 및 c)디코딩 방법의 흐름도를 보여주고 있다.
도 5는 a)메시 모델에 대한 인코딩 방법 및 b)메시 모델에 대한 디코딩 방법의 흐름도를 보여주고 있다.
도 6은 코드 예의 세부 사항들을 보여주는 도면이다.
도 7은 코드 트리를 보여주는 도면이다.
도 1은 2D 경우의 종래 kd-트리 코딩의 원리를 보여주고 있다. 2D 모델의 점들은 경계 상자(10)에 의해 둘러싸여 있다. 7개의 점들은 부모 셀 내에 위치해 있다. kd-트리 인코딩 알고리즘은 선-정의된 수의 비트를 이용하여 전체 점의 수를 인코딩하는 것을 시작으로 셀들을 재귀적으로 세분한다. 이 알고리즘은 부모 셀을 2개의 자식 셀로 세분할 때마다 2개의 자식 셀 중 하나의 자식 셀의 점의 수를 인코딩한다. 아래 예는 왼쪽 자식 셀(수직 분할 후) 또는 상부 셀(수평 분할 후)의 점의 수를 인코딩한다. 이들 규약은 서로 독립적으로 바뀔 수 있다. 부모 셀이 p개의 점을 포함하고 있으면, 산술 부호기에 의해 log2(p+1)를 이용하여 자식 셀들 중 하나의 자식 셀의 점의 수를 인코딩한다. 이러한 세분은, 각각의 비어있지 않은 셀이 단지 하나의 점을 포함하고 점 위치의 충분히 정밀한 재구성을 가능하게 해줄 수 있을 정도로 충분히 소형이 될 때까지, 재귀적으로 적용된다. 메시 모델의 모든 점들(점들이 꼭지점이든 클러스터 기준점이든 간에)의 위치를 압축하기 위해, 알고리즘은 제1 분리 단계 동안 현재 부모 셀로서 간주되는 위치들 모두의 전체 경계 상자(10)로 시작한다.
도 1의 예에서, 제1 인코딩된 값은 전체 점의 수(7)이고, 이는 32 비트를 이용하여 인코딩된다. 이후 수직 분할이 적용되어, 좌측 자식 셀 V1과 우측 자식 셀 V2가 얻어진다. 다음 코딩 단계에서, 좌측 자식 셀 V1의 점의 수 4가 인코딩된다. 이 인코딩에 이용된 비트의 수는 부모 셀 내의 점의 수에 의해 결정된다: 이는 log2(7+1)=3 비트이다. 그러므로, 제2 코드 워드는 수 4이며, 이는 3 비트를 이용하여 인코딩된다. 부모 셀 내의 점의 수 및 좌측 자식 셀 V1 내의 점의 수로부터, 우측 자식 셀 V2 내의 점의 수가 7-4=3으로 계산될 수 있다. 그러므로 인코딩이 필요없게 된다.
다음 단계에서, 수평 분할이 이전 단계의 자식 셀들에 적용된다. 지금은 현재 부모 셀 V1인 좌측 자식 셀 V1은 상부 자식 셀 V1H1 및 하부 자식 셀 V1H2로 분할된다. 마찬가지로, 지금은 부모 셀 V2인 우측 자식 셀 V2는 상부 자식 셀 V2H1 및 하부 자식 셀 V2H2로 분할된다. 인코딩은 2개의 점을 갖고 있는 상부 좌측 자식 셀 V1H1으로 이어진다. 따라서, 숫자 2가 다음에 인코딩되고, log2(4+1)=2.3 비트가 산술 부호기에 이용된다(또는 반올림(round-up) 후에, 3 비트). 위에 기술한 바와 같이, 하부 좌측 자식 셀 V1H2 내의 점의 수는, 좌측 셀 V1 내의 점의 수 및 상부 좌측 자식 셀 V1H1 내의 점의 수로부터 추론될 수 있기 때문에 인코딩될 필요가 없다. 이후, 동일한 절차가 우측 셀 V2에 적용되고, 그 결과는 2 비트를 이용하여 0을 인코딩하는 것이다. 도 1에 도시된 바와 같이, 각각의 점이 개별 셀 내에 있게 될 때까지 2 이상의 분할 단계가 필요하고, 각각의 점이 그의 셀 내에 충분히 로컬라이즈될 때까지는 그 이상의 단계들이 필요하다. 각 단계는 점 위치 인코딩의 정확성을 증가시키지만, 1 또는 0의 증가하는 숫자를 인코딩해야 한다. 요구되는 정확도에 따라서 추가되는 단계의 수가 클 수 있다.
점들은 꼭지점 또는 클러스터 기준점일 수 있다. 즉, 본 발명은 강화된 kd-트리 코딩 알고리즘을 적어도 꼭지점 위치를 인코딩하거나 반복 연결 컴포넌트의 위치를 인코딩하는데 적용할 수 있다. 더욱이, 강화된 kd-트리 알고리즘은 원론적으로 주어진 1D, 2D 또는 3D 공간 내의 어떤 유형의 공간 위치를 인코딩하는데도 이용될 수 있다.
도 2는 수 개의 점(21-25)이 2D 메시 모델의 경계 상자(20) 내에 위치해 있는 kd-트리 예를 보여주고 있다. 본 발명은 또한 1D 모델 또는 3D 모델에도 적용될 수 있다. 이 원리를 3D 메시 모델의 인코딩에 적용하는 것을 이하 더 설명하기로 한다. 이하 설명되는 단계들은 도 6에 도시되어 있다. 대부분의 대규모 메시 모델의 경우에서와 같이, 점들의 위치는 경계 상자 안에 매우 고르지 않게 분포되어 있다. 이 예에서, 강화된 kd-트리 코딩 알고리즘은 점들의 위치를 인코딩하는데 적용되고, 요구되는 정밀도를 위해 5개의 초기 분리 또는 분할 단계가 클러스터들이 충분히 로컬라이즈되기 전에 요구된다고 가정한다. 정밀도는 분할 단계의 수를 늘림으로써 증가할 수 있고, 분할 단계의 수를 줄임으로써 감소할 수 있다. 더욱이, 이는 이 예에서 효과적인 분리의 유효성 표시가 "1"로 인코딩되고(1=효과적, 0=비효과적), 자식 셀 인덱스들은 상부 또는 좌측 자식 셀 각각에 대해서는 "1"로 인코딩되고 하부 또는 우측 자식 셀 각각에 대해서는 "0"으로 인코딩되는 규약으로 정의된다. 이러한 규약은 본 발명 또는 코드의 효율에 영향을 줌이 없이 다르게 정해질 수도 있다는 점은 유의하자.
선-정의된 비트 수(예로 32 비트, 이는 잠재적인 점들의 전체 수에 의존함)를 이용하는 제1 코드 워드는 전체 점의 수이다. 게다가, 이 모델에서는 전체 점의 수는 13으로 결정되지만, 전체 점의 수는 3보다 크게 결정된다. 제1 분리 단계에서, 경계 상자(20)인 부모 셀은 두 개의 직사각형, 좌측 (Q1+Q3) 및 우측 (Q2+Q4)으로 수직으로 분리된다(도 6 b)참조). 전체 점의 수가 적어도 4이기 때문에, 본 발명에 따른 코딩 모드 비트("효과적인" 비트)가 이용되고, 양쪽 최종 직사각형은 점들을 포함하고 있기 때문에 분리는 효과적이다. 따라서, 제2 코드 워드는 효과적인 표시(1="효과적")이고 이 표시 뒤에는 1만큼 감소한 좌측 자식 셀(6) 내의 점의 수인 값 5가 따른다. 이는 부모 셀 내의 전체 점의 수를 인코딩하는데 4 비트(int(log2(13))=4)가 요구되므로 4 비트를 이용하여 인코딩된다. 즉, 도 3의 예에서, 코드의 시작은 다음과 같게 된다: 13(전체 점의 수, 32 비트), 1(효과적인 비트), 5(제1 세대의 좌측 자식 셀 내의 점의 수 마이너스 1, 4 비트).
제2 분리 단계는 4개의 정사각형 Q1,...,Q4가 생기도록 직사각형의 수평 분리를 실행한다(도 6 c1) 및 c2) 참조). 이전 단계로부터 2개의 직사각형 부모 셀 각각이 적어도 4개의 점을 포함하고 있음을 알 수 있다. 좌측 직사각형에 관련해서, 최종 정사각형 자식 셀들, Q1, Q3 중 하나가 모든 점을 포함하고 있기 때문에 분리는 비효과적이다. 종래의 kd-트리 코딩은 상부 자식 셀 Q1 내의 점의 수를 인코딩하여야하지만(3 비트를 이용), 본 발명에 따른 강화된 인코딩 알고리즘은 분리가 비효과적임을 보여주는 표시와 점들 모두를 포함하고 있는 자식 셀의 인덱스만을 이용한다.
자식 셀 인덱스는 n=log2(m) 비트를 이용하고, 여기서 m은 부모 셀의 최종 자식 셀의 수이다. 이 예에서는 2개의 자식 셀이 있으므로, 인덱스는 log2(2)=1 비트만을 이용한다. 다른 실시 예에서, 각각의 분리 단계는 더 많은 비트가 자식 셀 인덱스를 표시하는데 이용될 수 있게 부모 셀을 동일 크기의 m개의 자식 셀들로 분할한다. 수 m이 2의 상위 거듭제곱, 즉 2의 1 제곱이 아닌 m보다 더 효과적인 코드를 제공하는 4, 8, 16 등일 경우, 분리는 수 개의 간단한 분리 단계(동일한 디멘젼)의 누적으로서 고려될 수 있다. 그러나, 이들 수 개의 단계가 동시에 실행된다면 처리 속도는 증가할 수 있다. 이러한 누적은, 예를 들어, 점들이 (성취될 공간 분해능에 비해서) 상당히 성기게 분포되어 수 개의 비효과적 분리들의 시퀀스가 나타날 가능성이 큰 경우에 유용하다. 다른 경우에는, n=2를 선택하는 것이 더 좋을 수 있다.
도 2의 예를 다시 보면, 부모 셀들이 2개의 자식 셀로 분할되는 경우, 효과적 표시는 단지 1 비트를 가지며, 그에 따라 좌측 직사각형 Q1+Q3에 대한 다음 코드는 단지 2 비트, 즉 "01"을 포함한다(0=비효과적 표시, 1 비트, 및 1=자식 셀 인덱스, 1 비트). 유효성 표시(효과적/비효과적), 및 자식 셀 인덱스 또는 자식 셀들 중 한 자식 셀 내의 점의 수를 정의하는 차후 비트는 일반적으로 단일 코드 워드로 고려될 수 있다. 그러므로, 코드 워드들은 가변 길이를 갖는다. 유리하게, 셀 인덱스를 포함하는 코드 워드는 보통 점의 양을 나타내는 값을 포함하는 코드 워드보다 짧다.
우측 직사각형의 분리가 효과적이며, 그러므로 이는, 도 6 c2)에 도시된 바와 같이, 3 비트를 이용하여(log2(number_of_bits_in_parent_cell)=log2(7)=3이기 때문), "1"(효과적 표시, 1 비트) 및 "3"(상부 자식 셀 Q2 내의 점의 수 마이너스 1)에 의해 인코딩된다.
다음에는, 짧은 기록 형태 "valuenumber _ of _ bits"가 이용된다. 예를 들어, 3 비트로 인코딩되는 5의 값은 53b로 기록된다.
다음 단계에서, 새로운 자식 셀의 세대가 시작되고 분할 디멘젼이 바뀐다. 정사각형 Q1 - Q4 각각은 수직으로 분할되어, 크기 r1의 직사각형들이 생긴다(도 6 d1) - d3) 참조). Q1 및 Q2 각각의 경우에, 전체 점의 수는 적어도 4이며, 분리는 효과적이다(도 6 d1), d2) 참조). 좌측 직사각형들 내의 점의 수는 각각 2 및 3이다. 이들은 각각 11b-13b 및 11b-22b에 의해 인코딩된다. Q1+Q3의 수직 분리가 비효과적이었다는 앞서 언급한 사실과 이러한 분리의 인덱스로부터 Q3가 비어있음이 명백하기 때문에 Q3는 건너뛴다. 나머지 셀 Q4는 단지 3개(4 미만)의 점(24)을 갖고 있으므로, 이는 02b에 의해 인코딩된다(왜냐면 "모든 점들이 우측 자식 셀 내에 있기" 때문)(도 6 d3) 참조).
즉, 도 3의 예에서, 코드의 시작은 이제 다음과 같다:
1332b (전체 점의 수) - 11b (효과적 표시) - 54b (좌측 자식 셀 제1 세대) - 01b-11b (비효과적 표시 및 상부 자식 셀의 인덱스) - 11b (효과적 표시) - 33b (Q2 내의 점의 수) - 11b-13b-11b-22b (비효과적 비트 및 Q1 및 Q2의 직사각형 자식 셀들의 점의 수) - 02b (Q4의 우측 직사각형 자식 셀 내의 모든 점).
다음 분리 단계에서, 크기 r1의 직사각형(비어있지 않음)들 각각은 도 6 e1)-e5)에 도시된 바와 같이 크기 sq1의 정사각형들로 수평으로 분리된다. 그러므로, 상부 좌측으로부터 시작해서, 차기 코드 워드들은 경계 상자의 상부 반에 대해서는 22b-01 b01b-02b-11b이고, 경계 상자의 하부 반에 대해서는(비어있는 Q3와 비어있는 Q4의 좌측 반을 건너뜀) 02b이다. 예를 들어, 마지막 값 02b는 분리 이전의 전체 점의 수가 4 미만이기 때문에, Q4의 우측 반의 수평 분리 후 모든 그의 점들은 하부 자식 셀 내에 있음을 의미한다(도 6 e5) 참조).
다음 분리 단계에서, 크기 sq1의 정사각형(비어있지 않음)들 각각은 도 6 f1)-f5)에 도시된 바와 같이 크기 r2의 직사각형들로 수직으로 분리된다. 그러므로, 상부 좌측을 시작으로, 차기 코드 워드들은 22b - 01 b11b (Q1 내) - 02b - 01b (Q2 내) - 32b (Q4 내)이다. 예를 들어, 값 01 b11b(도 6 f2) 참조)는, 현재 부모 셀 내의 전체 점의 수는 적어도 4인 것으로 이전에 결정되었음을 알고 있으므로, 크기 sq1의 정사각형의 분리가 비효과적(즉 "0")이고, 크기 r2의 점유 직사각형만이 좌측에 있음(즉 "1")을 의미한다.
다음 분리 단계에서, 크기 r2의 직사각형들(비어있지 않음) 각각은 도 6 g1)-g5)에 도시된 바와 같이 크기 sq2의 정사각형들로 수평으로 분리된다. 상부 좌측으로부터 시작하여, 차기 코드 워드들은 22b-01b-01b (Q1 내) - 32b-11b (Q2 내) - 02b (Q4 내)이다. 도 6 g2)에 도시된 분리 단계에서만, 부모 셀 내의 점의 수가 3보다 크므로, 유효성 표시가 이용된다는 점에 유의하자. 도 6에서, 이들 경우는 (p=4) 또는 (p>4)에 의해 표시되어 있다.
다음 분리 단계에서, 크기 sq2의 정사각형(비어있지 않음)들 각각은 도 6 h1)-h5)에 도시되어 있는 바와 같이 크기 r3의 직사각형들로 수직으로 분리된다. 상부 좌측으로부터 시작하여, 차기 코드 워드들은 12b -11 b12b (Q1 내) - 12b-01b (Q2 내) - 12b (Q4 내)이다.
최종으로, 마지막 분리 단계에서, 크기 r3의 직사각형들(비어있지 않음) 각각은 도 6 i1)-i9)에 도시되어 있는 바와 같이, 크기 sq3의 2개의 정사각형으로 수평으로 분리된다. 상부 좌측으로부터 시작하여, 차기 코드 워드들은 01b-01b-12b-12b (Q1 내) - 11b-12b-11b (Q2 내) - 11b-12b (Q4 내)이다.
크기가 동일한 모든 자식 셀은 하나의 자식 셀 세대로 고려된다. 예를 들어, 도 2에서, 경계 상자(20)를 제1 세대(부모 세대)인 것으로 간주하면, 정사각형 Q1,...,Q4는 제3 세대에 속한다. 크기 sq1의 정사각형(예를 들어, Q1의 좌측 상부 정사각형 및 우측 하부 정사각형, Q2의 우측 성부 정사각형 및 좌측 하부 정사각형, 및 Q4의 우측 하부 정사각형) 모두는 동일한 자식 셀 세대, 즉 제5 세대에 속한다. 임의 특정한 세대의 셀들의 처리 시퀀스는 규약(이하 더 설명됨)에 따르고 있으나 코드 효율을 변경함이 없이 바뀔 수도 있음은 유의하자.
위의 인코딩으로, 모든 점들은 크기 sq3의 정사각형들의 정확도 안에서 경계 상자 안에 로컬라이즈될 수 있다. 완전한 모델의 경우, 인코딩은 102 비트를 이용한다.
Figure pct00001
이와 같이 간단한 종래의 인코딩 예는, 즉 알려져 있는 kd-트리 알고리즘을 이용하는 인코딩 예는 1 이상의 비트를 필요로 할 것이다. 그러므로, 본 발명은 코드 효율을 증가시킨다.
비효과적 세분이 많아지면 많아질수록 종래 방법에 비해서 압축비가 그만큼 향상되고 본 발명의 장점은 그만큼 더 부각된다. 비효과적 세분은 보통 2개의 경우에 이루어진다: 하나는 공간 데이터 점들이 위에 설명한 예에서와 같이 유의미한 복수의 공간 응집(aggregation)을 보여주는 경우이다. 단일 공간 응집(즉, 단일 점들)에 의한 공간 점 집합의 경우에도, 몇몇 비효과적인 세분은 피할 수 없다. 이는 특히 셀이 단지 하나의 점을 포함하고 있을 때 참이지만, 아직 너무 커서 점 위치를 재구성하기가 어렵기 때문에, 공간 분해능을 증가시키기 위해서는 추가의 비효과적인 세분이 필요하다. 따라서, 점의 수가 크면 클수록 그리고 점들의 클러스터링(즉, 공간 응집)이 더 유의미할수록 그리고 타겟 공간 분해능이 크면 클수록, 본 발명에 따른 인코딩에 의해 절감되는 비트가 많아진다. 다른 말로, 점들의 공간 분포가 덜 균질일 때, 즉 비효과적 세분이 더 많이 이루어질 때 코딩 효율이 증가한다. 이는 점의 수가 증가할 때 가능성이 커진다.
유리하게도, 본 발명은 평균적인 또는 고도로 복잡한 3D 메시 모델의 경우에 상당한 비트 절감을 성취한다.
본 발명의 다른 장점은 절차와 최종 코드가 이전의 방법보다 실질적으로 짧아진다는 것이다.
본 발명의 또 다른 장점은 계층적 인코딩의 계층 레벨 모두를 고려한다는 것이다.
위의 예들이 2-차원(2D) 모델을 이용하고 있을지라도, 동일한 원리가 3-차원(3D) 모델에도 용이하게 사용될 수 있다. 도 3 a)에 도시된 바와 같이, 3D 구현의 경계 상자와 셀들은 큐브(cube)이거나 상자, 즉 정사각형 또는 직사각형인 면이 있는 3D 오브젝트이다. 차이점은 3D 구현에서, 부모 셀이 수평 및 수직으로 분리될 뿐만 아니라 깊이와 같은 제3 디멘젼으로도 분리된다는 것이다. 따라서, 위의 2D 예에서 이용되는 바와 같은, 분리 시퀀스 h-v-h-v-...(h-수평, v=수직) 또는 등가의 분리 시퀀스 v-h-v-h-... 대신에, 3D 모델에 대한 분리 시퀀스는 h-v-d-h-v-d-h-v-d-...(d=깊이), 또는 h-d-v-h-d-v-..., 또는 v-d-h-v-d-h-...일 수 있다. 어떤 경우에도, 재귀적 분할은 회전 방식으로 모든 고려된 디멘젼을 나타낸다(각 디멘젼마다 새로운 세대).
일 실시 예에서, 디코딩 동안에 경계 상자의 재구성이 허용되도록, 경계 상자를 정의하는 데이터, 예를 들어, 크기 데이터 및/또는 위치 데이터도 인코딩 및 디코딩된다.
도 3 a)는 상자의 수평 분할 ssd1, 제1 세대 자식 셀들 중 임의 셀의 수직 분할 ssd2, 및 제2 세대 자식 셀들 중 임의 셀의 깊이 분할 ssd3의 결과인 3D 상자의 예시적인 차후 세분을 보여주고 있다. 여기서 용어 "분리", "세분" 및 "분할"은 같은 의미로 이용되고 있음을 유의해야 한다. 도 3 b)는 일반적인 수평 분할 sd1, 수직 분할 sd2 및 깊이 분할 sd3를 보여주고 있다. 본 발명의 유리한 효과는 분할 디멘젼의 순차적인 순서(2D의 경우 h, v, 및 3D의 경우 h,v,d)에 무관하다는 것이다. 그러므로, 이 순서는 상이할 수 있다.
도 4 a)는 한 그룹의 점들의 위치, 예를 들어, 메시 모델의 꼭지점 위치의 인코딩 동안 취해지는 방법 단계들의 흐름도를 보여주고 있다. 제1 결정 단계(40)에서, 현재 부모 셀 및 현재 부모 셀 내의 전체 점의 수가 결정된다. 제1 코딩 모드 결정 단계(50)에서는, 현재 부모 셀 내의 전체 점의 수가 적어도 4인지 여부가 판정된다. 현재 부모 셀 내의 전체 점의 수가 적어도 4가 아니면(즉, 3 또는 그 미만), 차기 단계는 위에 설명한 바와 같이 점의 수를 인코딩하기 위한 제1 인코딩 단계(60)이다. 즉, 자식 셀들 중 특정한 선-정의된 자식 셀(예를 들어, 수직 세분 후의 좌측 자식 셀, 또는 수평 세분 후의 상부 자식 셀, 또는 3D 경우에 깊이 세분 후의 전방 자식 셀) 내에 있는 점의 수는 코드 내에 삽입된다.
현재 부모 셀 내의 전체 점의 수가 적어도 4이면, 제2 코딩 모드 결정 단계(70)가 뒤따른다. 제2 코딩 모드 결정 단계(70)에서는, 세분이 효과적인지 여부가 판정된다. 세분이 효과적이라면, 즉 각각의 자식 셀이 적어도 하나의 점을 가지고 있어서 자식 셀이 비어있지 않다면, 제2 인코딩 단계(80)는 자식 셀들 중 특정한 선-정의된 자식 셀 내의 점의 수를 결정하고, 이를 1만큼 감소시키며, "효과적" 플래그(flag) 및 감소된 점의 수를 코드 내에 삽입한다. 이러한 감소는 p 점들을 갖는 부모 셀의 효과적인 세분 후에 각각의 자식 셀이 p-1개의 점 이하를 가질 수 있고 p 대신의 p-1의 인코딩은 세분당 1 비트를 절감할 수 있기 때문에 유리하다.
그렇지 않고, 세분이 비효과적이면, 즉 적어도 하나의 자식 셀이 비어있으면, "비효과적" 비트와 비어있지 않은 자식 셀의 자식 셀 인덱스가 제3 인코딩 단계(90)에서 코드 내에 삽입된다. 이 인덱스는 선-정의되는데, 예를 들어, 좌측, 상부 또는 후방 자식 셀에 대해서는 "1"이고 우측, 하부 또는 전방 자식 셀에 대해서는 "0"이다. 세분 결과가 k 자식 셀일 때는 log2(k) 비트가 이용된다.
각각의 제1, 제2, 및 제3 인코딩 단계 후에는 차기 부모 셀이 이하 설명되는 바와 같이 결정된다(40).
각 디멘젼에 대해서, 자식 셀들 중 특정한 선-정의된 자식 셀(예를 들어, 좌측, 상부 및 전방 자식 셀) 및 위에 언급한 자식 셀 인덱스는 전체 인코딩 및 디코딩 절차 동안 동일하게 유지된다는 것은 유의해야 한다.
일반적으로 부모 셀들, 적어도 비어있지 않는 셀들 내의 점의 수를 계속 파악해야할 필요가 있다. 예를 들어, 비어있지 않은 자식 셀 내의 점의 수는, 차기 분리 후에, 자식 셀이 부모 셀이 될 때까지 저장된다. 이후 이 수는 부모 셀 내의 점의 수를 판정할 때 저장 장치로부터 검색된다.
도 4 b)는 본 발명의 일 실시 예에 따른 메시 모델을 인코딩하는 방법의 흐름도를 보여주고 있다. 이 방법은 점들을 이들의 공간 좌표에 따라서 1 이상의 클러스터로 클러스터링하는 단계(410), 및 클러스터된 점들을 계층 트리를 이용하여 인코딩하는 단계(420-450)를 포함하며, 상기 인코딩 단계는 클러스터들 주위(즉, 모델의 모든 점들 주위)에 경계 상자를 정의하는 단계(420), 경계 상자를 재귀적으로 분리하는 단계(430) - 각각의 분리 단계는 부모 셀을 선-정의된 수의 자식 셀들로 분리함 - , 각각의 분리 단계마다, 도 4 a)의 단계 40, 50, 60에 관해서 위에 설명한 바와 같이, 분리되는 현재 부모 셀에 대해서 점의 수를 판정하고, 점의 수가 적어도 4인지 여부를 판정하고, 점의 수가 3 이하이면 점의 수를 인코딩하는 단계(440), 및 도 4 a)의 단계 70, 80, 90에 관해서 위에 설명한 바와 같이, 부모 셀들을 인코딩하는 단계(450)를 포함한다.
본 발명의 일 실시 예에서, 부모 셀 내의 점의 수가 적어도 4이고 부모 셀의 점들이 자식 셀들 중 적어도 2개의 자식 셀에 분포되어 있는 것으로 판정되면, 분리 단계는 효과적이며, 제1 표시가 코드 내에 삽입되고, 자식 셀들 중 특정한(선-정의된) 자식 셀 내에 있는 점의 수가 코드 내에 삽입된다. 제1 표시는 분리의 유효성을 나타낸다(예를 들어, 1로 설정된 단일 비트). 그렇지 않고, 부모 셀의 모든 점이 단일 자식 셀 내에 있는 것으로 판정되면, 분리 단계는 비효과적이고, 분리의 비-유효성을 나타내는 제2 표시(예로, 0으로 설정된 단일 비트)가 코드 내에 삽입된다. 이후, 모든 점을 포함하고 있는 단일 자식 셀의 인덱스가 결정되고 이 인덱스는 코드 내에 삽입된다. 분리 단계에 의해 2보다 많은 자식 셀이 생성되는 경우, 유효성 또는 비-유효성의 상이한 정의에 따른 상이한 실시 예들이 가능하다. 그러나, 둘 다 상보적이며, 각각의 분리 단계는 효과적이거나 비효과적이다.
일 실시 예에서, 부모 셀의 점들이 자식 셀들 중 적어도 2개에 분포되어 있다면(모든 최종 자식 노드들이 부모 노드보다 적은 데이터 점을 갖도록), 분리 단계는 효과적이고, 모든 점이 단지 하나의 자식 셀 내에 있다면 분리 단계는 비효과적인 것으로 고려된다. 이러한 경우에, 자식 셀들 중 한 셀을 제외한 각 셀 내의 점의 수(예로, 분리 결과로 4개의 자식 셀이 생기면 3개의 자식 셀 내의 점의 수를 나타내는 3개의 값)는 효과적 분리될 필요가 있다.
다른 실시 예에서, 분리 단계는 자식 셀들 중 어느 것도 비어있지 않다면 효과적이며 자식 셀들 중 적어도 하나가 비어있다면 비효과적이다. 이 경우에, 비어있는 자식 셀들 또는 비어있지 않은 자식 셀들의 인덱스는 규약에 따라서 비효과적 분리에 의해 인코딩될 수 있다.
분리 단계의 결과로 2개의 자식 셀이 생기면, 위에 설명한 실시 예들은 동일한 결과를 얻는다.
도 4 b)로 돌아가 보면, 재귀적 분리 단계(430)는 원칙적으로 2개의 기능을 갖고 있다: 한 기능에서는 모든 비어있지 않은 현재 부모 셀을 처리한다. 제1 부모 셀인 경계 상자를 제외하고, 모든 부모 셀들은 부모 세대가 된 이전 분리 단계의 자식 셀들이다. 도 2 b)의 예에서, 이는, 위에 설명한 바와 같이, 현재 세대의 모든 비어있지 않은 자식 셀들, 예를 들어, 세대 r2는 순차적으로 처리된다는 것을 의미한다. 현재 부모 세대의 모든 비어있지 않은 자식 셀들이 처리될 때, 제1 정지 조건 SC1이 이행되고, 재귀적 분리 단계(430)의 제2 기능이 실행된다. 제2 기능에서, 차기 자식 셀 세대가 되는 분할 디멘젼이 바뀌며(435), 비어있지 않은 셀들의 차기 세대의 처리가 개시된다. 예를 들어, 현재 세대가 도 2 b)에서 r2이면, 차기 세대는 sq2이다. 따라서, 점들의 위치들이 반복해서 인코딩된다. 재귀적 분리는 제2 정지 조건 SC2가 이행될 때, 예를 들어, 자식 셀 크기가 최소일 때(즉, 원하는 공간 분해능이 얻어질 때) 또는 반복 수가 최대일 때(즉, 처리 시간이 최대일 때) 종료한다. 선-정의된 최소 자식 셀 크기는 인코딩 처리의 타겟 공간 분해능에 해당한다.
동일한 크기의 셀들은 여기서 한 세대라 칭한다. 위에서 설명한 바와 같이, 분할 디멘젼을 변경하는 단계(435), 예를 들어, 제1 세대 자식 셀을 얻기 위해 셀을 수평 분할하고, 제2 세대 자식 셀을 얻기 위해 제1 세대 자식 셀을 수직 분할하고, 제3 세대 자식 셀을 얻기 위해 제2 세대 자식 셀을 깊이 분할하는 것은 자식 셀들의 각 세대 마다 교차(즉, 회전) 방식으로 실행된다.
마지막으로, 최종 코드는 엔트로피 인코딩될 수 있다(460). 일 실시 예에서, 임의 한 분리 단계의 모든 자식 셀은 크기가 동일하다.
도 4 b)에 도시된 위에 설명한 방법 단계들에 대응하게, 본 발명의 일 실시 예에서 메시 모델을 인코딩하는 인코더는 점들을 그들의 공간 좌표에 따라서 1 이상의 클러스터로 클러스터링하는 클러스터링 수단, 및 클러스터된 점들을 계층 트리를 이용하여 인코딩하는 인코딩 수단을 포함하며, 인코딩 수단은 클러스터들 주위에 경계 상자를 정의하는 초기화 유닛, 경계 상자를 재귀적으로 분리하는 재귀적 분리 유닛 - 각각의 분리 단계는 부모 셀을 선-정의된 수의 자식 셀로 분리함 - , 각각의 분리 단계 및 분리될 각각의 현재 부모 셀에 대한 점의 수를 결정하고, 부모 셀당 점의 수가 적어도 최소 수(이 수는 각 부모 셀이 2개의 자식 셀로 분할되면 4임)인지 여부를 판정하는 점 분포 판정 유닛, 및 도 4 a)의 단계 40, 50, 60에 관해서 위에 설명한 바와 같이, 점의 수가 최소 수 미만이면 점의 수를 인코딩하고, 도 4 a)의 단계 70, 80, 90에 관해서 위에 설명한 바와 같이, 부모 셀을 인코딩하는 인코딩 유닛을 포함하고 있다.
도 4 c)는, 본 발명의 일 실시 예에서, 메시 모델을 디코딩하는 방법을 보여주고 있다. 이 방법은 인코딩된 데이터 집합으로부터 적어도 제1 데이터 - 제1 데이터는 복수의 코드 워드, 및 전체 점의 수를 나타내는 초기값을 포함함 - 를 추출하는 단계(470), 경계 상자를 셀들로 재귀적으로 분리하는 단계(475) - 재귀적 분리 각각은 현재 부모 셀을 선-정의된 수(2 이상)의 자식 셀로 분리함 - , 및 상기 자식 셀들에 따라서 상기 점들의 위치를 결정하는 단계(480)를 포함하며, 여기서 현재 부모 셀의 점의 수가 결정되고, 현재 부모 셀 내의 결정된 점의 수에 따라서 코딩 모드가 검출되고, k-1 차기 코드 워드들이 디코딩된다(k가 분리 단계의 자식 셀들의 수인 경우). 각각의 코드 워드의 길이는 현재 부모 셀 내의 점의 수로부터 유도된다. 현재 부모 셀 내의 결정된 점의 수가 4 미만이면, 제1 디코딩 모드가 이용된다. 제1 디코딩 모드에서, 각각의 코드 워드는 m 비트를 포함하며, 여기서 m은 일반적으로 log2(number_of_points_in_parent_cell)이거나 int(log2(number_of_points_in_parent_cell)에 따른 정수이다. 제1 디코딩 모드에서, 길이 m의 코드 워드는, 위에 설명한 바와 같이, 자식 셀들 중 특정한 선-정의된 자식 셀 내의 점의 수를 나타낸다.
현재 부모 셀 내의 결정된 점의 수가 적어도 4이면, 코드 워드는 코드 워드의 나머지 비트들의 의미를 나타내는 표시를 포함하며, 코드 워드의 나머지 비트들은 이 표시가 제1 값을 가지면 현재 부모 셀의 현재 분리의 결과인 자식 셀들 중 선-정의된 자식 셀 내에 위치해 있는 점의 수를 정의하고; 또는 코드 워드의 나머지 비트들은 현재 부모 셀의 현재 분리 결과로서 부모 셀의 모든 점을 포함하고 있는 자식 셀을 나타내는 인덱스를 정의한다. 자식 셀들에 따라서 상기 점들의 위치를 결정하는 단계(480)는 코딩 모드를 결정하고 코드 워드 내의 표시를 평가하는 일을 포함한다. 따라서, 점들의 위치가 반복해서 디코딩된다.
도 4 c)에 도시된 위에 설명한 방법 단계들에 대응하게, 본 발명의 한 실시 예에서 메시 모델을 디코딩하는 디코더는 인코딩된 데이터 집합으로부터 적어도 제1 데이터 및 전체 점의 수를 나타내는 초기값을 추출하는 상기 단계를 위한 추출 수단, 경계 상자를 셀들로 재귀적으로 분리하는 상기 단계를 위한 재귀적 분리 수단(예로, 제어 수단) - 재귀적 분리 각각은 현재 부모 셀을 선-정의된 수(2 이상)의 자식 셀들로 분리함 - , 및 상기 자식 셀들에 따라서 상기 점들의 위치를 결정하는 상기 단계를 위한 결정 수단을 포함하고 있다. 결정 수단은 현재 부모 셀(예로, 한 클러스터) 내의 점의 수를 판정하는 유닛, 현재 부모 셀 내의 판정된 점의 수에 따라서 코딩 모드를 검출하는 코딩 모드 검출 유닛, 및 k-1 차기 코드 워드(여기서 k는 분리 단계의 자식 셀의 수임)를 디코딩하기 위한 디코딩 유닛을 포함하고 있다. 코드 워드 길이 검출 유닛(예로, 계산기)은 위에서 설명한 바와 같이, 현재 부모 셀 내의 점의 수로부터 각 코드 워드의 길이를 유도한다.
도 5 a)는 본 발명의 한 실시 예를 보여주고 있으며, 이 실시 예에서 메시 모델을 인코딩하는 방법은 포괄적인 공간 트리를 구축하는 단계(110)(이는 차기 단계에 함축적으로 포함될 수 있는 논리 단계임), 포괄적인 공간 트리에 따라서 메시 모델을 분석하는 단계(120), 도 4 b)의 블록 410-450, SC1, SC2에 관해서 위에 설명한 바와 같이 공간 트리를 트래버스하는 단계(130) - 여기서 메시 모델의 제1 인코딩된 표현이 얻어짐 - , 및 메시 모델의 제1 인코딩된 표현의 엔트로피 인코딩을 실행하는 단계(460) - 여기서 메시 모델의 제2 인코딩된 표현이 얻어짐 - 를 포함하고 있다.
도 5 b)는 본 발명의 일 실시 예를 보여주고 있으며, 이 실시 예에서, 인코딩된 메시 모델을 디코딩하는 방법은 인코딩된 메시 모델의 엔트로피 디코딩을 실행하는 단계(150) - 여기서 엔트로피 디코딩된 메시 모델이 얻어짐 - , 포괄적인 공간 트리를 복원하는 단계(160), 엔트로피 디코딩된 메시 모델에 따라서 공간 점 클러스터들을 복원하는 단계(170) - 여기서 공간 점 클러스터들이 도 4 c)에 관해서 위에 설명한 바와 같이 공간 트리의 가지 및 잎에 매핑(map)됨 - , 및 메시 모델의 공간 점들을 복원하는 단계(180) - 여기서 공간 위치는 메시 모델의 각 점에 관련지어짐 - 를 포함한다.
본 발명은 또한 다중-컴포넌트 또는 다중-연결(MC) 모델, 즉 많은 반복 컴포넌트를 갖는 메시 모델 내의 컴포넌트의 기준점들이며 모델의 꼭지점의 클러스터를 나타내는 점들에 이용될 수 있다. 다음의 두 실시 예는 그러한 MC 모델에 특히 유리하다. 그러한 경우에, 반복 컴포넌트의 다양한 반복 위치는 반복 컴포넌트로부터 개별적으로 인코딩/디코딩되며, 이는 1회만 인코딩 또는 디코딩될 필요가 있다. 디코딩 동안, 반복 컴포넌트는 그의 디코딩된 위치들 각각에 복제된다. 예를 들어, 머신의 3D 엔지니어링 모델에서, 수회 이용되는 스크류(screw)는 반복 컴포넌트로서 인코딩될 수 있다.
일 실시 예에서, 본 발명은 메시 모델, 특히는 MC 메시 모델의 컴포넌트들의 기준점을 인코딩하는 방법이며, 여기서 각 기준점은 컴포넌트를 나타내며 점들의 인코딩은 계층 트리를 이용하고, 인코딩은 인코딩되는 점들 주위에 경계 상자를 정의하는 단계, 경계 상자를 재귀적으로 분리하는 단계 - 여기서 각 분리 단계는 부모 셀을 선-정의된 수의 자식 셀(적어도 2, 일 실시 예에서 임의 한 분리 단계의 모든 자식 셀들은 크기가 동일함)로 분리함 - , 각 분리 단계마다, 현재 부모 셀에 대해 전체 점의 수를 판정하고 부모 셀의 모든 점이 단일 자식 셀 내에 있는지 여부를 판정하는 단계, 및 적어도 4 이상의 점을 포함하는 부모 셀에 대해서, 위에서 설명한 바와 같이, 판정 결과를 나타내는 표시를 인코딩하는 단계를 포함하고 있다.
한 실시 예에서, 본 발명은 인코딩된 데이터 집합으로부터, 메시 모델, 특히 MC 메시 모델의 반복 컴포넌트의 기준점을 디코딩하는 방법이며, 디코딩 방법은 인코딩된 데이터 집합으로부터, 적어도 한 값과 복수의 점의 위치 데이터인 제1 데이터를 추출하는 단계 - 이 값은 전체 점의 수를 나타내고 제1 데이터는 복수의 코드 워드를 정의하고, 각 코드 워드는 경계 상자의 셀로의 복수의 재귀적 분리들 중 하나를 가리키며, 각 분리는 현재 부모 셀을 2 이상의 자식 셀로 분리함 -, 및 상기 값과 상기 제1 데이터를 기반으로 상기 점들의 위치를 판정하는 단계 - 상기 코드 워드들 중 적어도 몇몇은 현재 셀 분리 단계가 효과적인지 여부를 나타내는 표시(1 비트)를 포함함 - 을 포함한다. 더욱이, 디코딩 방법은 각 점을 반복 컴포넌트로 대체하는 단계를 포함한다.
일 실시 예에서, 본 발명은 복수의 반복 연결 컴포넌트를 포함하는 인코딩된 메시 모델에 관한 것이며, 인코딩된 메시 모델은 적어도
각각의 반복 연결 컴포넌트의 인스턴스(instance),
인코딩된 연결 컴포넌트의 전체 수,
상기 반복 연결 컴포넌트의 복수의 반복 위치 - 이들 위치는 트리 구조(예로, kd-트리)로 인코딩됨 - , 및
메시 모델 내의 경계 영역 - 상기 경계 영역은 트리 구조가 참조하는 초기 부모 셀임 - 의 인코딩된 데이터를 포함한다. 트리로서 인코딩되는 위치들은 위에서 기술한 인코딩을 이용한다. 즉, 이 인코딩은 트리 구조의 각 노드에 대한 코드 워드를 포함하고, 적어도 4개의 점이 있는 노드의 경우 코드 워드는 현재 부모 셀의 점들이 적어도 2개의 자식 셀에 분포되어 있다면 제1 값을 가지며 현재 부모 셀의 점들이 단일 자식 셀 내에 있다면 상이한 제2 값을 갖는 표시로 시작하고, 여기서 코드 워드의 나머지 비트들은 자식 셀들 중 선-정의된 자식 셀 내에 위치해 있는 점의 수(표시가 제1 값을 갖고 있다면) 마이너스 1을 나타내거나, 또는 부모 셀의 모든 점을 포함하고 있는 자식 셀인, 현재 부모 셀의 자식 셀의 인덱스(표시가 제2 값을 갖고 있다면)를 나타낸다.
도 7은 도 6에 관련해서 위에 설명한 바와 같이, 후속 분리 단계들의 트리-형 표현의 일부를 보여주고 있다. 트리의 루트(root)(711)에서, 부모 셀의 수직 분할은 도 6 b)에 대응하게 인코딩된다. 위에 언급한 바와 같이, 이 경우에 제1 분리가 수직인 것은 선-정의된 규약이다. 노드(721, 722)에서, 최종 자식 셀들의 수평 분할은 도 6 c1) 및 c2)에 도시된 바와 같이 인코딩된다. 분리 단계들 중 하나는 비효과적이므로, 그의 자식 셀들 중 하나(732)(또는 Q3)는 비어있다. 위에 설명한 바와 같이, 비어있는 자식 셀들은 분할되지 않으며 단지 함축적으로 인코딩된다. 차기 노드(731-734)에서, 제3 세대 셀들의 수직 분할은 도 6 d1)-d3)에 도시된 바와 같이 인코딩된다. 셀들은 도 2의 정사각형 Q1-Q4에 대응한다. 뒤따르는 노드들(741-746)은 도 6 e1)-e6)에 대응하며, 여기서 다시 하나의 분리는 비효과적이므로 비어있는 자식 셀(745)이 생긴다. 트리의 나머지 부분(도시되지 않음)도 대응하게 구성될 수 있다. 각 라인(710, 720, 730, 740, 750)은 한 세대의 셀들을 나타낸다. 본 발명에 따른 인코딩된 메시 모델을 나타내는 코드는 전체 점의 수가 초기에 삽입되어 있을 때 라인(710, 720, 730 등)으로부터 구할 수 있다.
일반적으로, 제1 코드 워드의 길이(전체 점의 수)는 이 길이가 디코딩 동안 유도될 수 없기 때문에 고정된다. 다른 코드 워드들의 길이는 가변일 수 있고 그들의 길이는 위에 설명한 바와 같이 디코딩 동안에 계산될 수 있다. 더욱이, 일반적으로 부모 셀의 단일 분리 단계의 결과로 나타나는 모든 자식 셀은 크기가 실질적으로 동일하다.
유의해야 할 점은 여기서 점들의 인코딩/디코딩은 일반적으로 그들의 좌표의 인코딩/디코딩을 의미한다는 것이다.
다음의 예시적인 실시 예들은 특히 유리하다:
인코딩 방법의 일 실시 예에서, 코드 워드의 나머지 비트의 양은 표시가 n=integer(log2(m+1))에 따라서 제1 값을 가지면 부모 셀 내의 점의 수에 의존하며, 여기서 n은 코드 워드의 나머지 비트의 양이며, m은 현재 부모 셀의 점의 수이다.
일 실시 예에서, 인코딩 방법은 입력 점들을 그들의 공간 좌표에 따라서 1 이상의 클러스터로 클러스터링하는 초기 단계를 포함하고, 점들 각각은 한 클러스터의 입력 점들의 기준점이다.
인코딩 방법의 일 실시 예에서, 메시 모델은 다중-연결 컴포넌트가 있는 3D 메시 모델이고, 클러스터 내의 각 점들은 컴포넌트를 나타낸다. 인코딩 방법의 일 실시 예에서, 부모 셀의 단일 분리 단계의 결과인 모든 자식 셀은 크기가 같다.
인코딩 방법의 일 실시 예에서, 최대 재귀의 수 또는 최소 셀 크기는 재귀적 분리 단계에 대한 종료 조건(terminating condition)으로 정의된다. 2D용 인코딩 방법의 일 실시 예에서, 현재 부모 셀을 분리하는 재귀적 분리 단계들은 교차 방식으로 수평 및 수직 분할을 실행하고, 자식 셀들 중 선-정의된 자식 셀은 수평 분할의 경우에는 상부 또는 하부 자식 셀이고 수직 분할의 경우에는 좌측 또는 우측 자식 셀이다.
3D용 인코딩 방법의 일 실시 예에서, 현재 부모 셀을 분리하는 재귀적 분리 단계들은 교차 방식으로 수평, 수직 및 깊이 분할을 실행하고, 여기서 자식 셀들 중 선-정의된 하나는 수평 분할의 경우에는 상부 또는 하부 자식 셀이고, 수직 분할의 경우에는 좌측 또는 우측 자식 셀이며, 깊이 분할의 경우에는 전방 또는 후방 자식 셀이다.
일 실시 예에서, 각 코드 워드의 길이는 가변이고, 디코딩 방법은 주어진 규칙에 따라서 코드 워드의 길이를 계산하는 단계를 더 포함한다. 이 규칙에 따라서, 코드 워드의 상기 나머지 비트의 양은 n=integer(log2(m+1))에 따라서 또는 n=log2(m+1)에 따라서 현재 부모 셀 내의 점의 수로부터 계산되며, 여기서 n은 코드 워드의 나머지 비트의 양이고, m은 현재 부모 셀 내의 점의 수이다.
디코딩 방법의 일 실시 예에서, 메시 모델은 반복 연결 컴포넌트의 복수의 인스턴스를 포함하는 3D 메시 모델이며, 상기 점들 각각은 상기 인스턴스들 중 하나의 인스턴스의 위치를 나타내는 기준점이고, 이 방법은 반복 컴포넌트들의 복수의 인스턴스를 생성하고 각 기준점의 위치에 따라서 각각의 반복을 찾아내는(locating) 최종 단계를 더 포함한다.
디코딩 방법의 일 실시 예에서, 부모 셀의 단일 분리 단계의 결과인 모든 자식 셀은 크기가 동일하다.
디코딩 방법의 일 실시 예에서, 최대 재귀 수 또는 최소 셀 크기는 재귀적 분리 단계에 대한 종료 조건으로 정의된다.
2D용 디코딩 방법의 일 실시 예에서, 현재 부모 셀을 분리하는 재귀적 분리 단계들은 교차 방식으로 수평 및 수직 분할을 실행하고, 자식 셀들 중 선-정의된 하나는 수평 분할의 경우에는 상부 또는 하부 자식 셀이고 수직 분할의 경우에는 좌측 또는 우측 자식 셀이다.
3D용 디코딩 방법의 일 실시 예에서, 현재 부모 셀을 분리하는 재귀적 분리 단계들은 교차 방식으로 수평, 수직 및 깊이 분할을 실행하고, 자식 셀들 중 선-정의된 하나는 수평 분할의 경우에는 상부 또는 하부 자식 셀이고, 수직 분할의 경우에는 좌측 또는 우측 자식 셀이며, 깊이 분할의 경우에는 전방 또는 후방 자식 셀이다.
일 실시 예에서, 인코딩된 메시 모델은 복수의 반복 연결 컴포넌트를 포함하고, 인코딩된 메시 모델은 적어도
각 반복 연결 컴포넌트의 적어도 하나의 인스턴스,
상기 반복 연결 컴포넌트들의 복수의 반복의 위치들 - 이들 위치는 kd-트리로서 인코딩됨 - , 및
메시 모델 내의 경계 영역의 인코딩된 데이터를 포함하며, 상기 경계 영역은 kd-트리가 참조하는 초기 부모 셀이고, kd-트리로 인코딩되는 위치들은 kd-트리의 각 노드에 대한 코드 워드를 포함하는 인코딩을 이용하며, 코드 워드는 현재 부모 셀의 점들이 적어도 2개의 자식 셀에 분포되어 있으면 제1 값을 갖고 현재 부모 셀의 점들이 단일 자식 셀에 있으면 다른 제2 값을 갖는 표시로 시작하며, 코드 워드의 나머지 비트들은 자식 셀들 중 선-정의된 하나 내에 위치해 있는 점의 수(표시가 제1 값을 갖고 있는 경우)를 표기하거나 부모 셀의 모든 점을 포함하고 있는 자식 셀인, 현재 부모 셀의 자식 셀의 인덱스(표시가 제2 값을 갖고 있는 경우)를 나타낸다.
본 발명의 표본적인 실시 예들에 적용되는 것으로 본 발명의 신규 기본 특징들이 도시되고 기술되고 열거되었을지라도, 기술된 장치 및 방법, 공개된 기기들의 형태 및 상세 그리고 이들의 동작에 있어서 다양한 생략, 대체 및 변경이 본 발명의 정신을 벗어나지 않고도 이 기술 분야에 숙련된 자들에 의해 행해질 수 있음은 이해할 수 있을 것이다. 예를 들어, 본 발명이 정사각형 크기의 2배인 직사각형인 경계 상자에 관련해서 기술되었을지라도, 이 기술 분야에 숙련된 자는 비록 직사각형 분할 결과가 정사각형이 아닐 경우라도 여기에 기술된 방법 및 장치가 어떤 직사각형 경계 상자에도 적용될 수 있음을 인식하고 있을 것이다. 위에 언급한 모든 규약은 본 발명의 범위를 벗어남이 없이 자유롭게 수정될 수 있다. 위의 예들에서 경계 상자의 제1 분리 단계가 수직이지만 수평도 가능하다. 그러므로, 주어진 수의 수평 및 수직 분리 단계들의 순차적인 순서를 수정할 수 있다.
더욱이, 예들에서 이용되는 암묵적인 규약은 수정될 수 있다. 예를 들어, 도 2 b) 및 관련된 상기 예에 관해서, 규약은 한 세대(예로, Q1)의 모든 현재 부모 셀들이 그들의 조부모(grand-parent) 셀들에 관계없이 라인-방향으로 또는 컬럼-방향으로 순차 처리되는 것일 수 있다. 다른 규약은 한 세대 j(예로 sq1)의 모든 현재 부모 셀들이, 이 세대의 차기 조부모 셀이 등장하기 전에, 임의 이전 세대 j-x(예로, Q1 내)의 각 조부모 셀들 내에서 라인-방향 또는 컬럼-방향으로 순차 처리되는 것일 수 있다. 또한 다른 규약은, 위에 기술한 예에서 행해진 바와 같이, 처리시에 특정한 점에서 위의 두 상기 규약 간에 전환하는 것일 수 있다.
같은 결과를 얻기 위해서 실질적으로 같은 방식으로 거의 동일한 기능을 실행하는 요소들의 모든 조합은 본 발명의 범위 내에 속한다는 것이 명백히 의도된다. 기술된 한 실시 예를 다른 실시 예에 치환하는 것도 충분히 의도되고 고려된 것이다.
본 발명이 예를 들어서 기술되었으며 세부 사항의 수정이 본 발명의 범위를 벗어나지 않고도 행해질 수 있음은 이해할 수 있을 것이다. 설명부분, 특허청구범위 및 도면에 개시된 각 특징은(적절한 경우) 독립적으로 또는 임의 적절한 조합으로 제공될 수 있다. 특징들은, 적절한 경우, 하드웨어, 소프트웨어 또는 이들 2개의 조합으로 구현될 수 있다.
청구항 내의 참조 번호는 예시일 뿐이고 청구항의 범위를 제한하는 것이 아니다.

Claims (15)

  1. 계층 트리를 이용하여 메시 모델의 점들을 인코딩하는 방법으로서,
    - 전체 점의 수인 값을 인코딩하는 단계;
    - 메시 모델의 점들 주위의 경계 상자(bounding box)를 재귀적으로(recursively) 분리하는 단계 - 각각의 분리 단계는 현재 부모 셀을 선-정의된 수의 자식 셀로 분리하고, 각각의 분리 단계마다 다음의 단계들이 실행됨 - ;
    - 현재 부모 셀과 상기 현재 부모 셀 내에 포함된 전체 점의 수를 판정하는 단계;
    - 현재 부모 셀이 적어도 최소 수의 점을 포함하고 있는지 여부를 판정하는 단계;
    - 현재 부모 셀이 적어도 상기 최소 수의 점을 포함하고 있지 않으면, 자식 셀들 중 선-정의된 자식 셀 내의 점의 수를 포함하는 코드 워드를 인코딩하는 단계, 및 그렇지 않으면,
    - 점 분포를 판정하는 단계 - 상기 판정 단계에서 현재 부모 셀의 모든 점들이 현재 분리 단계에 따라서 단일 자식 셀 내에 있는지 여부가 판정됨 - ; 및
    - 표시(indication)로 시작하는 코드 워드를 인코딩하는 단계를 포함하고,
    상기 판정된 점 분포에 따라서 현재 부모 셀의 모든 점들이 단일 자식 셀 내에 있지 않으면, 상기 표시는 제1 값을 가지며, 코드 워드의 나머지 비트는 점의 수를 나타내고, 상기 수는 1만큼 감소한 자식 셀들 중 선-정의된 자식 셀 내의 점의 수이며,
    상기 판정된 점 분포에 따라서 현재 부모 셀의 모든 점들이 단일 자식 셀 내에 있으면 상기 표시는 다른 제2 값을 가지며, 코드 워드의 나머지 비트는 부모 셀의 모든 점을 포함하는 상기 단일 자식 셀을 식별하는 인덱스를 나타내는 방법.
  2. 제1항에 있어서, 상기 표시가 제1 값을 가지면, 코드 워드의 나머지 비트의 양은 n=integer(log2(m+1)) 또는 n=log2(m)에 따라서 현재 부모 셀 내의 점의 수에 의존하며, 여기서 n은 코드 워드의 나머지 비트의 양이고 m은 현재 부모 셀 내의 점의 수인 방법.
  3. 제1항 또는 제2항에 있어서, 입력 점들을 이들의 공간 좌표에 따라서 1 이상의 클러스터로 클러스터링하는 초기 단계를 더 포함하고, 여기서 점들 각각은 복수의 입력 점들의 한 클러스터의 기준점인 방법.
  4. 제3항에 있어서, 상기 메시 모델은 다중-연결(multi-connected) 컴포넌트가 있는 3D 메시 모델이며, 클러스터의 각 기준점은 컴포넌트를 나타내는 방법.
  5. 메시 모델의 점들을 디코딩하는 방법으로서,
    - 인코딩된 데이터 집합으로부터 적어도 제1 데이터 - 상기 제1 데이터는 복수의 코드 워드를 포함함 - 및 전체 점의 수를 나타내는 초기값을 추출하는 단계;
    - 디폴트(default) 데이터 또는 인코딩된 데이터 집합으로부터 추출된 경계 상자 데이터를 기반으로 경계 상자를 생성하는 단계;
    - 경계 상자를 셀들로 재귀적으로 분리하는 단계 - 상기 재귀적 분리 각각은 현재 분모 셀을 2 이상의 자식 셀로 분리하고, 코드 워드는 부모 셀에 대하여 자식 셀들 중 하나를 정의함 - ; 및
    상기 자식 셀들에 따라서 상기 점들의 위치를 판정하는 단계를 포함하며,
    복수의 코드 워드 각각은 코드 워드의 나머지 비트의 의미를 나타내는 표시를 포함하고, 상기 표시는 평가되고, 상기 코드워드의 나머지 비트는
    - 상기 표시가 제1 값을 가지면, 현재 부모 셀의 현재 분리의 결과인 자식 셀들 중 선-정의된 자식 셀 내에 위치해 있는 점의 수를 정의하거나; 또는
    - 현재 부모 셀의 현재 분리 결과인 자식 셀 - 상기 자식 셀은 부모 셀의 모든 점을 포함함 - 을 나타내는 인덱스를 정의하는 방법.
  6. 제5항에 있어서, 각 코드 워드의 길이는 가변이며, 상기 코드 워드의 길이를 주어진 규칙에 따라서 계산하는 단계를 더 포함하며, 상기 코드 워드의 상기 나머지 비트의 양은 n=integer(log2(m+1))에 따라서 현재 부모 셀 내의 점의 수로부터 계산되며, 여기서 n은 코드 워드의 나머지 비트의 양이며 m은 현재 부모 셀 내의 점의 수인 방법.
  7. 제5항 또는 제6항에 있어서, 상기 메시 모델은 반복 연결 컴포넌트의 복수의 인스턴스를 포함하는 3D 메시 모델이며, 상기 점들 각각은 상기 인스턴스들 중 하나의 인스턴스의 위치를 나타내는 기준점이며, 상기 방법은, 반복 컴포넌트의 상기 복수의 인스턴스를 생성하고 각각의 기준점의 위치에 따라서 각각의 반복을 찾아내는 최종 단계를 더 포함하는 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 현재 부모 셀을 분리하는 상기 재귀적 분리 단계는 상기 메시 모델과 상기 경계 상자가 2차원이면 교차 방식으로 수평 및 수직 분할(splitting)을 실행하고, 또는 상기 메시 모델과 상기 경계 상자가 3차원이면 교차 방식으로 수평, 수직 및 깊이 분할을 실행하며, 상기 자식 셀들 중 선-정의된 하나는 수평 분할의 경우는 상부 또는 하부 자식 셀이며, 수직 분할의 경우는 좌측 또는 우측 자식 셀이며, 깊이 분할의 경우는 전방 또는 후방 자식 셀인 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 부모 셀의 단일 분리 단계의 결과인 모든 자식 셀은 크기가 동일한 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서, 최대 재귀(recursion)의 수 또는 최소 셀 크기는 재귀적 분리 단계에 대한 종료 조건으로 정의되는 방법.
  11. 제1항 내지 제4항 또는 제1항 내지 제4항 중 한 항을 참조하는 제8항 내지 제10항 중 한 항에 따라 계층 트리를 이용하여 메시 모델의 점들을 인코딩하는 방법을 실행할 수 있게 적응되어 있는 처리 요소를 포함하는 장치.
  12. 제5항 내지 제7항 또는 제5항 내지 제7항 중 한 항을 참조하는 제8항 내지 제10항 중 한 항에 따라 계층 트리를 이용하여 메시 모델의 점들을 디코딩하는 방법을 실행할 수 있게 적응되어 있는 처리 요소를 포함하는 장치.
  13. 제1항 내지 제4항 또는 제1항 내지 제4항 중 한 항을 참조하는 제8항 내지 제10항 중 한 항에 따라 메시 모델을 인코딩하는 방법 또는 제5항 내지 제7항 또는 제5항 내지 제7항 중 한 항을 참조하는 제8항 내지 제10항 중 한 항에 따라 메시 모델의 점들을 디코딩하는 방법을 컴퓨터가 실행할 수 있게 해주는 실행가능 명령(instructions)이 저장되어 있는 컴퓨터 판독가능 매체.
  14. 복수의 반복 연결 컴포넌트를 포함하는 인코딩된 메시 모델로서, 적어도
    - 각각의 반복 연결 컴포넌트의 한 인스턴스;
    - 인코딩된 연결 컴포넌트의 전체 수;
    - 상기 반복 연결 컴포넌트들의 복수의 반복의 위치 - 상기 위치들은 트리 구조로 인코딩되며, 상기 트리 구조 내의 노드는 현재 부모 셀의 공간 분리를 정의함 - ; 및
    - 경계 영역
    의 인코딩된 데이터를 포함하며, 상기 경계 영역은 상기 트리 구조가 참조하는 초기 부모 셀이며 상기 전체 수의 인코딩된 연결 컴포넌트를 포함하며, 상기 트리 구조로서 인코딩되는 위치들은 상기 트리 구조의 각 노드에 대한 코드 워드를 포함하는 인코딩 포맷을 이용하고, 상기 코드 워드는 현재 부모 셀의 점들이 적어도 2개의 자식 셀에 분포되어 있으면 제1 값을 갖고 그렇지 않으면 다른 제2 값을 갖는 표시로 시작하며, 상기 코드 워드의 나머지 비트는 상기 표시가 제1 값을 가지면 상기 자식 셀들 중 선-정의된 하나 내에 위치해 있는 점의 수를 나타내고 또는 상기 표시가 제2 값을 가지면 부모 셀의 모든 점을 포함하고 있는 자식 셀인, 현재 부모 셀의 자식 셀의 인덱스를 나타내는 인코딩된 메시 모델.
  15. 제14항에 있어서, 상기 트리 구조 내의 차후 노드들은 상기 메시 모델 및 상기 경계 상자가 2차원이면 현재 부모 셀을 교차 방식으로 수평 및 수직 분리하고, 상기 메시 모델 및 상기 경계 상자가 3차원이면 현재 부모 셀을 교차 방식으로 수평, 수직 및 깊이 차원으로 분리하는 재귀적 공간 분리 단계들을 정의하고,
    상기 자식 셀들 중 선-정의된 하나는 수평 분리의 경우에는 상부 또는 하부 자식 셀이고 수직 분리의 경우에는 좌측 또는 우측 자식 셀이며, 깊이 분리의 경우에는 전방 또는 후방 자식 셀인 인코딩된 메시 모델.
KR1020137026953A 2011-04-12 2011-04-12 메시 모델을 인코딩하는 방법, 인코딩된 메시 모델 및 메시 모델을 디코딩하는 방법 KR20140018919A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/000643 WO2012139249A1 (en) 2011-04-12 2011-04-12 Method for encoding a mesh model, encoded mesh model and method for decoding a mesh model

Publications (1)

Publication Number Publication Date
KR20140018919A true KR20140018919A (ko) 2014-02-13

Family

ID=47008766

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137026953A KR20140018919A (ko) 2011-04-12 2011-04-12 메시 모델을 인코딩하는 방법, 인코딩된 메시 모델 및 메시 모델을 디코딩하는 방법

Country Status (6)

Country Link
US (1) US9348860B2 (ko)
EP (1) EP2697985B1 (ko)
JP (1) JP5955378B2 (ko)
KR (1) KR20140018919A (ko)
CN (1) CN103518387A (ko)
WO (1) WO2012139249A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9805310B2 (en) * 2012-03-04 2017-10-31 Adam Jeffries Utilizing spatial statistical models to reduce data redundancy and entropy
KR20230165873A (ko) 2013-04-08 2023-12-05 돌비 인터네셔널 에이비 Lut를 인코딩하는 방법, lut를 디코딩하는 방법 및 대응하는 장치들
CN104123739A (zh) * 2013-04-24 2014-10-29 冯卫国 由面元件构成的多面体的编码及解码方法和立体拼图
US9600607B2 (en) 2013-09-16 2017-03-21 Here Global B.V. Methods, apparatuses and computer program products for automatic, non-parametric, non-iterative three dimensional geographic modeling
US9613388B2 (en) 2014-01-24 2017-04-04 Here Global B.V. Methods, apparatuses and computer program products for three dimensional segmentation and textured modeling of photogrammetry surface meshes
CA2984819C (en) 2015-05-11 2023-10-10 Pointerra Technologies Pty Ltd Method and system for computer graphics rendering
US10313673B2 (en) 2016-10-19 2019-06-04 Google Llc Methods and apparatus to encode and/or decode normals of geometric representations of surfaces
US10733766B2 (en) 2016-10-19 2020-08-04 Google, Llc Methods and apparatus to encode and/or decode normals of geometric representations of surfaces
US10496336B2 (en) 2016-11-17 2019-12-03 Google Llc K-D tree encoding for point clouds using deviations
US9787321B1 (en) 2016-11-17 2017-10-10 Google Inc. Point cloud data compression using a space-filling curve
US10430975B2 (en) 2016-11-17 2019-10-01 Google Llc Advanced k-D tree encoding for point clouds by most significant axis selection
CN107402955B (zh) * 2017-06-02 2020-04-14 阿里巴巴集团控股有限公司 确定地理围栏的索引网格的方法和装置
US10950042B2 (en) 2017-06-02 2021-03-16 Google Llc Guided traversal in compression of triangular meshes
US10553035B2 (en) 2017-06-02 2020-02-04 Google Llc Valence based implicit traversal for improved compression of triangular meshes
CA3090465A1 (en) * 2018-02-08 2019-08-15 Panasonic Intellectual Property Corporation Of America Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2019159956A1 (ja) * 2018-02-14 2019-08-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
EP3816940A4 (en) * 2018-06-27 2021-09-08 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
US10891758B2 (en) 2018-07-23 2021-01-12 Google Llc Geometry encoder
CN110334090A (zh) * 2019-05-09 2019-10-15 安徽大学 基于时空特征的多源异构面源污染大数据的关联和检索方法及监管平台
JP7506085B2 (ja) 2019-10-03 2024-06-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN111475597B (zh) * 2020-03-31 2022-11-22 中国人民解放军战略支援部队信息工程大学 非刚性网格编码、空间对象唯一标识、查询方法及装置
CN112181991B (zh) * 2020-10-15 2021-06-15 中国人民解放军国防科技大学 基于快速构建kd树的地球模拟系统网格重映射方法
CN113114272B (zh) * 2021-04-12 2023-02-17 中国人民解放军战略支援部队信息工程大学 全球瓦片一致的六边形格网数据结构编码方法与装置
CN114328788A (zh) * 2021-12-29 2022-04-12 阿里云计算有限公司 区域编码方法、装置、设备和存储介质
US20230281876A1 (en) * 2022-03-04 2023-09-07 Tencent America LLC Mesh compression with constrained geometry dynamic range
CN114861444B (zh) * 2022-05-12 2024-04-02 中国人民解放军国防科技大学 基于kd树的非结构网格地球系统模式观测稀疏化方法
CN115906460B (zh) * 2022-11-14 2023-10-13 北京市测绘设计研究院 编码方法、装置、计算机设备和存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5983224A (en) 1997-10-31 1999-11-09 Hitachi America, Ltd. Method and apparatus for reducing the computational requirements of K-means data clustering
CN1787418B (zh) * 2004-12-10 2010-05-05 北京邮电大学 减少ason分层网络拓扑抽象中信息失真的一种方法
ES2332741T3 (es) 2005-12-05 2010-02-11 Siemens Corporation Uso de agrupamiento secuencial para seleccion de instancias en monitorizacion de estados de maquina.
US7836258B2 (en) 2006-11-13 2010-11-16 International Business Machines Corporation Dynamic data cache invalidate with data dependent expiration
US7734714B2 (en) 2008-01-11 2010-06-08 Spacecurve, Inc. Spatial Sieve Tree
KR20090097057A (ko) * 2008-03-10 2009-09-15 삼성전자주식회사 메쉬 모델로 구현된 3차원 데이터의 연결정보를 부호화 및복호화 방법
US8581914B2 (en) 2008-09-30 2013-11-12 Microsoft Corporation Real-time kd-tree construction on graphics hardware
US8610706B2 (en) * 2008-10-04 2013-12-17 Microsoft Corporation Parallel surface reconstruction
CN102804230B (zh) * 2009-06-23 2016-09-07 汤姆森特许公司 使用重复图案压缩3d网格
CN101661631B (zh) * 2009-09-27 2012-05-23 大连民族学院 基于局部最小生成树的点模型快速无损压缩处理方法
CN101877128B (zh) 2009-12-23 2012-09-05 中国科学院自动化研究所 一种三维场景中不同物体的分割方法
CN101819684B (zh) 2010-04-12 2012-06-20 长春理工大学 一种动画电影虚拟三维场景的空间加速结构及其创建与更新方法
CN101894395A (zh) * 2010-07-22 2010-11-24 西安电子科技大学 一种计算机图形的点模型几何信息的各向异性表示方法
US8928661B2 (en) * 2011-02-23 2015-01-06 Adobe Systems Incorporated Representing a field over a triangular mesh
US8830254B2 (en) * 2012-01-24 2014-09-09 Ayasdi, Inc. Systems and methods for graph rendering

Also Published As

Publication number Publication date
WO2012139249A1 (en) 2012-10-18
EP2697985A1 (en) 2014-02-19
EP2697985A4 (en) 2015-10-07
JP5955378B2 (ja) 2016-07-20
US20140040215A1 (en) 2014-02-06
CN103518387A (zh) 2014-01-15
US9348860B2 (en) 2016-05-24
EP2697985B1 (en) 2018-06-06
JP2014523554A (ja) 2014-09-11

Similar Documents

Publication Publication Date Title
JP5955378B2 (ja) エンコード方法及びデコード方法
JP5456903B2 (ja) メッシュ・モデルを符号化する方法及び装置、符号化されたメッシュ・モデル、並びに、メッシュ・モデルを復号化する方法及び装置
JP7330306B2 (ja) 変換方法、逆変換方法、エンコーダ、デコーダ及び記憶媒体
US9532056B2 (en) Method for adaptive entropy coding of tree structures
EP2446419B1 (en) Compression of 3d meshes with repeated patterns
JP2017126890A (ja) 符号化装置及びその制御方法
Merry et al. Compression of dense and regular point clouds
JP4808771B2 (ja) 3次元メッシュ情報の符号化及び復号化装置ならびにその方法
KR101730217B1 (ko) 기하학적 패턴의 인코딩 방법 및 장치, 기하학적 패턴의 디코딩 방법 및 장치
CN111260784B (zh) 一种城市三维空间网格压缩编码方法、装置及终端设备
WO2021140354A1 (en) Context determination for planar mode in octree-based point cloud coding
Ho et al. Compressing large polygonal models
Abadjev et al. MetaStream
US20220286677A1 (en) Point cloud processing method, encoder, decoder and storage medium
CN114885617A (zh) 点云编码和解码方法、装置及计算机可读存储介质
Liu et al. Rocnet: Recursive octree network for efficient 3d deep representation
Wood Improved isosurfacing through compression and sparse grid orientation estimation
Ballesteros Brandão Compressed Representation of 3D Models for 3D Printing
Nuber et al. Using graphs for fast error term approximation of time-varying datasets
Chen et al. Lossless Geometry Compression for Steady-State and Time-Varying Tetrahedral Meshes
del Rosario Alexei et al. Real-Time Geometry Lab Metacreations

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application