KR20170048408A - Mpeg/sc3dmc 표준을 폴리곤 메쉬로 확장하는 것 - Google Patents

Mpeg/sc3dmc 표준을 폴리곤 메쉬로 확장하는 것 Download PDF

Info

Publication number
KR20170048408A
KR20170048408A KR1020177007182A KR20177007182A KR20170048408A KR 20170048408 A KR20170048408 A KR 20170048408A KR 1020177007182 A KR1020177007182 A KR 1020177007182A KR 20177007182 A KR20177007182 A KR 20177007182A KR 20170048408 A KR20170048408 A KR 20170048408A
Authority
KR
South Korea
Prior art keywords
polygon
pan
mesh
vertex
triangles
Prior art date
Application number
KR1020177007182A
Other languages
English (en)
Other versions
KR102467816B1 (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 KR20170048408A publication Critical patent/KR20170048408A/ko
Application granted granted Critical
Publication of KR102467816B1 publication Critical patent/KR102467816B1/ko

Links

Images

Classifications

    • 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
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

폴리곤 메쉬를 순회하고, 순회 순서에 기초하여 폴리곤 메쉬를 폴리곤 팬들의 세트로 분할하며, 그리고 순회 순서에 기초하여 폴리곤 팬들의 세트를 삼각형들로 테셀레이트하기 위한 시스템, 방법 및 컴퓨터 프로그램 제품이 개시된다. 이렇게 폴리곤 메쉬를 삼각형 메쉬로 변환하는 것은 폴리곤 메쉬가 SC3DMC 표준을 사용하여 압축 및 압축해제되게 한다.

Description

MPEG/SC3DMC 표준을 폴리곤 메쉬로 확장하는 것{EXTENSION OF THE MPEG/SC3DMC STANDARD TO POLYGON MESHES}
관련 출원에 대한 상호 참조
본 출원은 2014년 8월 29일에 출원된, 미국 특허 출원 14/473,242호에 대한 우선권을 주장한다.
기술분야
본 발명은 일반적으로 그래픽 압축에 관한 것이다. 보다 구체적으로, 본 발명은 폴리곤 메쉬 압축에 관한 것이다.
최근 보다 현실적인 3D 컴퓨터 그래픽을 만들고자 하는 요구가 증가해왔다. 보다 현실적인 3D 컴퓨터 그래픽을 만들기 위해, 3D 오브젝트들은 일반적으로 보다 미세한 입자의 폴리곤 메쉬들에 의해 표현되어야 한다.
폴리곤 메쉬는 오브젝트의 형상을 정의하는 정점들, 모서리들 및 면들의 모임이다. 메쉬에 의해 보다 많은 정점, 모서리 및 면이 표현될 수록 오브젝트가 보다 현실적으로 보일 것이다. 그러나, 정점들, 모서리들, 및 면들의 수의 증가는 보다 큰 메모리를 필요로 한다. 이는 메모리 또는 대역폭이 제약된 환경들에서 주요 이슈일 수 있다. 따라서, 폴리곤 메쉬들을 압축하기 위한 방법들을 찾는 것이 바람직하다.
실시예들은 폴리곤 메쉬를 순회하고, 순회 순서에 기초하여 폴리곤 메쉬를 폴리곤 팬들의 세트로 분할하며, 그리고 순회 순서에 기초하여 폴리곤 팬들의 세트를 삼각형들로 테셀레이트하기 위한 기술들을 포함한다. 이러한 메커니즘은 폴리곤 메쉬가 가변성 복합 3D 메쉬 압축 - 삼각형-팬(SC3DMC-TFAN) 표준을 사용하여 압축 및 압축해제될 수 있게 한다. 그 결과, 메커니즘은 SC3DMC 인코더들 및 디코더들의 최대한의 재사용을 가능하게 한다.
본 출원에 설명된 실시예들은 SC3DMC-TFAN 표준을 사용하여 폴리곤 메쉬를 압축 및 압축해제하기 위한 시스템, 컴퓨터-판독가능한 매체 및 컴퓨터-구현 방법을 포함한다. 실시예들의 추가 피처들 및 이점들, 뿐만 아니라 실시예들의 구조 및 동작이 아래에서 첨부한 도면들을 참조하여 설명된다. 실시예들은 본 출원에 설명된 구체적인 실시예들로 제한되지 않는다는 것이 주의된다. 그러한 실시예들은 단지 예시를 위해 본 출원에 제시된다. 추가적인 실시예들이 본 출원에 포함된 교시 내용들에 기초하여 관련 기술분야의 통상의 기술자에게 분명해질 것이다.
본 출원에 포함되고 명세서의 부분을 형성하는, 첨부한 도면들은 실시예들을 예시하고, 또한 설명과 함께, 본 실시예들의 원리들을 설명하는 그리고 관련 기술분야의 통상의 기술자가 개시된 실시예들을 제조 및 사용하게 하는 역할을 한다.
도 1은 실시예에 따라, 폴리곤 메쉬를 압축하는 시스템의 블록도를 예시한다;
도 2는 실시예에 따라, 폴리곤 메쉬의 압축을 푸는 시스템의 블록도를 예시한다;
도 3은 실시예에 따라, 폴리곤 메쉬를 압축하기 위한 대표적인 방법의 흐름도를 예시한다;
도 4는 실시예에 따라, 폴리곤 메쉬의 압축을 풀기 위한 대표적인 방법의 흐름도를 예시한다;
도 5는 실시예에 따라, 폴리곤 메쉬의 정점들이 압축을 목적으로 순회되는 예시적인 순서를 도시한다;
도 6은 실시예에 따라, 압축을 목적으로 폴리곤들을 폴리곤 팬들로 분할하는 예를 도시한다;
도 7은 실시예에 따라, 압축을 목적으로 폴리곤 팬들을 삼각형들로 테셀레이트하는 예를 도시한다; 그리고
도 8은 실시예들이 구현될 수 있는 대표적인 컴퓨터 시스템의 블록도를 예시한다.
뒤이어 나오는 상세한 설명에서, "일 실시예", "실시예", "예시적인 실시예" 등에의 언급들은 설명되는 실시예가 특정 피처, 구조, 또는 특성을 포함하나, 모든 실시예가 반드시 그 특정 피처, 구조, 또는 특성을 포함하는 것은 아닐 수 있음을 나타낸다. 그 밖에도, 그러한 구들은 반드시 동일한 실시예를 지칭하는 것은 아니다. 나아가, 특정 피처, 구조, 또는 특성이 실시예와 관련되어 설명될 때, 명백하게 설명되든 아니든 다른 실시예들과 관련되어 그러한 특정 피처, 구조, 또는 특성을 이뤄낸다는 것은 해당 기술분야의 통상의 기술자가 알고 있는 것임이 제시된다.
용어 "실시예들"은 모든 실시예가 논의된 피처, 이점 또는 동작 모드를 포함할 것을 필요로 하지는 않는다. 대안적인 실시예들이 실시예들의 범위에서 벗어나지 않고 고안될 수 있고, 실시예들의 주지된 요소들은 상세하게 설명되지 않을 수 있거나 실시예들의 관련 세부사항들을 모호하게 하지 않기 위해 생략될 수 있다. 덧붙여, 본 출원에서 사용되는 용어는 단지 특정 실시예들을 설명하기 위함이고 실시예들에 대해 제한하는 것으로 의도되지 않는다. 예를 들어, 본 명세서에서 사용될 때, 단수 형태들 "한", "하나의" 및 "그"는 문맥상 명백히 다르게 표시되지 않는 한, 복수 형태들도 포함하도록 의도된다. 용어들 "구성하다", "구성하는", "포함하다" 및/또는 "포함하는"은 본 명세서에서 사용될 때, 언급된 피처들, 정수들, 단계들, 동작들, 요소들, 및/또는 구성요소들의 존재를 명시하나, 하나 이상의 다른 피처, 정수, 단계, 동작, 요소, 구성요소, 및/또는 그것들의 그룹의 존재 또는 부가를 배제하지 않는다는 것이 더 이해될 것이다.
본 발명은 폴리곤 메쉬들을 압축하기 위한 시스템 및 방법과 관련된 실시예들에 관한 것이다. 메쉬 압축에 대한 몇몇 표준이 있다. 가장 보편적인 하나는 MPEG/SC3DMC(동화상 전문가 그룹/가변형 복합 3D 메쉬 압축) 표준이다. 이러한 표준은 삼각형 메쉬들을 압축하기 위한 다양한 알고리즘을 정의한다. SC3DMC 삼각형-팬(TFAN; Triangle-Fan) 알고리즘이 최상의 압축비를 제공한다. 그러나, SC3DMC-TFAN 알고리즘은 임의의 n개의 변을 가진(또는 n차) 폴리곤 메쉬들을 압축하는 데는 사용될 수 없다. 더 정확히 말하면 SC3DMC TFAN 알고리즘은 단지 삼각형 메쉬들(즉, n=3인 n개의 변을 가진 폴리곤)을 작업 대상으로 한다.
삼각형 메쉬는 폴리곤 메쉬의 특별한 경우이다. 구체적으로, 3D 오브젝트는 폴리곤들의 집합으로가 아니라 삼각형들의 집합으로 표현된다. 그러나, 삼각형 메쉬는 폴리곤 메쉬의 특별한 경우이지만, 폴리곤 메쉬들은 3D 오브젝트들을 모델링할 때 여전히 매우 유용하다. 사각형들, 오각형들, 육각형들, 및 보다 높은 차수의 폴리곤들의 존재는 3D 모델러가 3D 오브젝트들을 보다 용이하게 그리고 정확하게 모델링하게 한다.
앞서 말한 내용을 고려할 때, 필요한 것은 SC3DMC-TFAN 표준을 사용하여 폴리곤 메쉬들을 압축하고 그의 압축을 풀 수 있는 시스템들 및 방법들이다. 바람직하게는, 그러한 시스템들 및 방법들은 SC3DMC-TFAN 표준의 기존 구현예들의 사용을 가능하게 할 수 있다.
도 1은 SC3DMC-TFAN 표준을 사용하여 폴리곤 메쉬를 압축하기 위한 시스템의 예시적인 기능 블록도의 블록도(100)를 도시한다. 블록도(100)는 다양한 요소, 이를테면 전처리 모듈(120), SC3DMC 인코더(160), 엔트로피 인코더(170), 및 MUX(180)를 포함한다. 이들 요소는 하드웨어 또는 소프트웨어로 구현될 수 있다.
전처리 모듈(120)은 폴리곤 메쉬(110)를 수신한다. 전처리 모듈(120)은 폴리곤 메쉬(110)를 테셀레이트한다. 폴리곤 메쉬(110)를 테셀레이트함으로써, 폴리곤 메쉬(110)는 SC3DMC-TFAN 표준을 사용하여 압축될 수 있다. 이러한 테셀레이션은 특정 방식으로 수행되어 삼각형 메쉬(130), 삼각형 팬들의 세트(140), 및 시퀀스(150)를 생성한다.
삼각형 메쉬(130)는 폴리곤 메쉬(110)를 삼각형들의 집합으로 표현한 것이다. 다시 말해, 폴리곤 메쉬(110)에서의 각각의 폴리곤은 하나 이상의 삼각형으로 분할된다.
삼각형 팬들의 세트(140)는 삼각형 메쉬(130)를 삼각형 팬들의 세트로 표현한 것이다. 삼각형 팬은 저장 공간을 절약하는 3D 컴퓨터 그래픽의 프리미티브(primitive)이다. 구체적으로, 삼각형 팬은 하나의 중심 정점을 공유하는 연결된 삼각형들의 세트를 묘사한다. N이 삼각형 팬에서의 삼각형들의 수인 경우, 삼각형 팬을 묘사하는데 필요한 정점들의 수는 N+2이기 때문에 그 팬은 저장 공간을 절약한다. 이는 삼각형들을 각각 묘사하는 데 필요할 수 있는 3*N 개의 정점에 대한 개선이다. 삼각형 팬들의 세트(140)는 삼각형 메쉬(130)를 압축할 때 SC3DMC 인코더(160)를 가이드하는 데 사용된다.
시퀀스(150)는 수들의 시퀀스이고, 각각의 수는 폴리곤 메쉬(110)에서의 각각의 폴리곤을 구성하는 삼각형들의 수를 나타낸다. 시퀀스(150)를 전송하는 것은 삼각형 메쉬(130)로부터 폴리곤 메쉬(110)가 복원되게 한다.
SC3DMC 인코더(160)는 삼각형 메쉬(130) 및 삼각형 팬들의 세트(140) 양자를 수신한다. SC3DMC 인코더(160)는 SC3DMC-TFAN 표준에 따라 삼각형 메쉬(130)의 압축된 버전을 생성한다. SC3DMC 인코더(160)는 삼각형 메쉬를 압축하도록 설계된다. 그에 따라, SC3DMC 인코더(160)가 전처리 모듈(120)로부터 삼각형 메쉬(130) 및 삼각형 팬들의 세트(140)를 수신하기 때문에, SC3DMC 인코더(160)는 폴리곤 메쉬(110)를 압축할 수 있다.
엔트로피 인코더(170)는 시퀀스(150)를 수신 및 압축한다. 당해 기술분야의 통상의 기술자에 의해 이해될 수 있는 바와 같이, 다양한 압축 알고리즘이 사용될 수 있다. 예를 들어, 시퀀스(150)는 시퀀스에서 통계적인 상관관계들에 기초하여 압축될 수 있다.
MUX(180)는 S3CDMC 인코더(160)로부터 삼각형 메쉬(130)의 압축된 버전을 수신한다. 덧붙여, MUX(180)는 엔트로피 인코더(170)로부터 시퀀스(150)의 압축된 버전을 수신한다. MUX(180)는 두 가지 정보를 압축된 스트림(190)으로 다중화한다.
도 2는 압축된 스트림(210)의 압축을 풀기 위한 시스템의 예시적인 기능 블록도의 블록도(200)를 도시한다. 압축된 스트림(210)은 폴리곤 메쉬(110) 및 시퀀스(150) 양자의 압축된 버전들을 나타낸다. 블록도(200)는 다양한 요소, 이를테면 De-Mux(220), SC3DMC 디코더(230), 엔트로피 디코더(240), 및 후처리 모듈(270)을 포함한다. 이들 요소는 하드웨어로 또는 소프트웨어로 구현될 수 있다.
De-Mux(220)는 압축된 스트림(210)을 수신한다. De-Mux(220)는 압축된 스트림(210)을 삼각형 메쉬(130)의 압축된 버전으로 역-다중화한다. 삼각형 메쉬(130)의 압축된 버전은 SC3DMC 디코더(230)로 송신된다. De-Mux(220)는 또한 압축된 스트림(210)을 시퀀스(150)의 압축된 버전으로 역-다중화한다. 시퀀스(150)의 압축된 버전은 엔트로피 디코더(240)로 송신된다.
SC3DMC 디코더(230)는 삼각형 메쉬(130)의 압축된 버전을 수신하여 삼각형 메쉬(250)를 생성한다. 삼각형 메쉬(250)는 삼각형 메쉬(130)와 동일하다. 유사하게, 엔트로피 디코더(240)는 시퀀스(150)의 압축된 버전을 수신하여 시퀀스(260)를 생성한다. 시퀀스(260)는 시퀀스(150)와 동일하다.
후처리 모듈(270)은 시퀀스(260)에 기초하여 삼각형 메쉬(250)로부터의 삼각형들을 폴리곤들로 병합한다. 구체적으로, 후처리 모듈(270)은 전처리 모듈(120)에 의해 명시된 순회 순서에 따라 삼각형 메쉬(250)에서의 정점들을 순회한다. 각각의 스테이지에서, 현재 정점에 부수하는 모든 삼각형이 그것들의 디코딩 순으로 순서화된다. 다음으로, 다음 폴리곤을 구성하는 삼각형들의 수가 시퀀스(260)로부터 판독된다. 그 다음 대응하는 수의 삼각형들이 하나의 폴리곤으로 병합된다. 현재 정점에 부수하는 모든 삼각형이 순회될 때까지 동작이 반복된다.
도 3은 실시예에 따라 폴리곤 메쉬를 압축하기 위한 방법(300)을 예시하는 블록도를 도시한다. 앞서 언급하고 아래에서 보다 상세하게 설명될 바와 같이, 방법(300)은 소프트웨어 또는 하드웨어로 구현될 수 있다. 도 3에 도시된 동작들을 보다 양호하게 이해하기 위해, 도 5에 도시된 예시적인 폴리곤 메쉬(500), 도 6에 도시된 폴리곤 팬들로 분할된 폴리곤 메쉬(600), 및 도 7에 도시된 폴리곤 메쉬의 폴리곤 팬들의 테셀레이션(700)이 참조된다.
도 3을 참조하여, 방법(300)은 전처리 모듈(120)이 폴리곤 메쉬를 수신하는 단계(310)로 시작된다. 폴리곤 메쉬는 3D 컴퓨터 그래픽에서 다면체 오브젝트의 형상을 정의하는 정점들, 모서리들 및 면들의 집합이다. 예를 들어, 도 5는 일곱 개의 폴리곤, 즉 P1 내지 P7로 구성된 폴리곤 메쉬(500)를 예시한다. 폴리곤 메쉬에서의 각각의 폴리곤은 정점들의 세트에 의해 정의되고, 각각의 정점은 초기 인덱스를 갖는다. 예를 들어, 도 5에서의 폴리곤(P1)은 인덱스들(v0, v7, v6, v4, v5, 및 v1)을 갖는 정점들에 의해 정의된다.
단계(320)에서, 전처리 모듈(120)은 폴리곤 메쉬의 정점들을 순회한다. 바람직한 실시예에서, 전처리 모듈(120)은 정점들의 이웃 대 이웃 결정론적 순회를 수행한다. 기본 아이디어는 폴리곤 메쉬를 폴리곤 팬들의 세트로 분할하기 위해 정점들을 고유한 순서로 순회하는 것이다.
폴리곤 팬은 대응하는 폴리곤들의 세트를 개별적으로 나타내는 것에 비하여 저장 공간을 감소하는 3D 컴퓨터 그래픽에서의 프리미티브이다. 폴리곤 팬은 삼각형 팬의 일반화된 경우이고 하나의 중심 정점을 공유하는 연결된 폴리곤들의 세트를 정의한다. 예를 들어, 도 5는 폴리곤들(P1, P2, P3, 및 P4)을 포함하는 중심 정점(v0)을 갖는 폴리곤 팬을 예시한다.
폴리곤 팬은 그것의 정점들의 순회 순서로 정의될 수 있다. 구체적으로, 폴리곤 팬은 그것의 중심 정점에서 시작하여 순서화된 정점들의 시퀀스로서 정의될 수 있다. 예를 들어, 도 5는 폴리곤들(P1, P2, P3, 및 P4)을 포함하는 중심 정점(v0)을 갖는 폴리곤 팬을 예시한다. 이러한 폴리곤 팬은 순서화된 정점들의 시퀀스(v0, v7, v6, v4, v5, v1, v0, v1, v3, v2, v0, v2, v13, v12, v0, v12, v8, v7, 및 v0)로 정의될 수 있다. 이러한 순서화된 정점들의 시퀀스는 폴리곤 팬을 정의한다.
폴리곤 팬은 몇몇 속성을 갖는다. 첫째로, 폴리곤 팬의 모든 폴리곤은 중심 정점을 공유한다. 중심 정점은 소위 폴리곤 팬의 중심이다. 둘째로, 폴리곤 팬에서의 각각의 두 개의 연속적인 폴리곤은 그것들이 공통 모서리를 공유한다는 의미에서 이웃들이다. 예를 들어, 도 6에서의 폴리곤 메쉬(600)의 폴리곤들(P1 및 P2)은 공통 모서리, 즉 (v0, v1)을 공유한다. 셋째로, 이웃하는 폴리곤들은 동일한 배향을 갖는다. 구체적으로, 두 개의 이웃하는 폴리곤은 그것들의 공통 모서리가 폴리곤 팬에 대해 반대 방향들로 순회될 수 있는 경우 동일한 배향을 갖는다. 예를 들어, 상기 순회 순서에 따라, 폴리곤들(P1 및 P2)의 공통 모서리{(v0, v1)}는 반대 방향들로 순회된다.
단계(320)에 따라 폴리곤 메쉬를 폴리곤 팬들의 세트로 분할하기 위해, 전처리 모듈(120)은 폴리곤 메쉬의 정점들의 고유한 순회 순서를 정의한다. 언급한 바와 같이, 바람직한 실시예에서, 전처리 모듈(120)은 폴리곤 메쉬의 정점들의 이웃 대 이웃 결정론적 순회를 수행한다. 기본 아이디어는 이웃 대 이웃 결정론적 순회에 기초하여 폴리곤 메쉬의 각각의 정점 인덱스에 다시 라벨링하는 것이다.
바람직한 실시예에서, 전처리 모듈(120)은 다음과 같이 정점들의 이웃 대 이웃 결정론적 순회를 수행한다. 처음에, 폴리곤 메쉬에서의 전체 정점들의 세트는 순회되지 않은 것으로 고려된다. 그 다음 폴리곤 메쉬로부터의 임의의 정점이 선택된다. 선택된 정점은 바람직하게는 선입선출(FIFO) 데이터 구조 예를 들어, F에 저장된다. 그 다음 각각의 스테이지에서, 정점은 F로부터 추출되고 그것의 순회 순서에 기초하여 다시 라벨링된다.
각각의 추출된 정점에 대해,전처리 모듈(120)은 아직 고려되지 않은 부수하는 폴리곤들의 세트를 결정한다. 그 다음 단계(330)에 따라 이러한 부수하는 폴리곤들의 세트가 폴리곤 팬들의 세트로 분할된다. 그 후 각각의 폴리곤 팬의 정점들이 순회되고, F로 삽입되며, 순회된 것으로 마킹된다. 뿐만 아니라, 정점들은 그것들의 순회 순서에 따라 다시 라벨링된다. F가 비게 될 때 그리고 폴리곤 메쉬에서의 모든 정점이 순회된 것으로 마킹되었을 때 프로세스는 중지된다.
바람직한 실시예에서, 카운터가 그것들의 순회 순서에 기초하여 정점들을 다시 라벨링하는 데 사용된다. 구체적으로, 카운터는 제로로 초기화되고 새로운, 순회되지 않은 정점이 F로부터 추출될 때마다 증분된다. 그에 따라, 카운터의 값이 폴리곤 메쉬에서의 정점의 순회 순서를 정의한다. 예를 들어, F로부터 추출된 j번째 정점은 j와 동일한 순회 순서를 가질 수 있다.
부수하는 폴리곤들의 세트를 폴리곤 팬들의 세트로 분할하기 위해 몇몇 다른 전략이 고려될 수 있다. 바람직한 실시예에서, 반복적인 접근법이 사용된다. 이러한 바람직한 실시예는 아래 단계(330)에서 논의된다. 당해 기술분야의 통상의 기술자는 다른 접근법들이 사용될 수 있음을 이해할 것이다.
단계(330)에서, 전처리 모듈(120)은 폴리곤 메쉬를 폴리곤 팬들의 세트로 분할한다. 다시 말해, 단계(320)에서 추출된 각각의 정점에 대해, 추출된 정점에 부수하는 폴리곤들의 세트가 폴리곤 팬들의 세트로 분할된다.
구체적으로, F로부터 추출된 j번째 정점을 고려하자. 이는 v'j로 표기된, 순회된 j번째 정점이다. 각각의 반복(n)에서, 폴리곤 팬(PF(n)(j))은 v'j에 부수하는 폴리곤(P1(j))에서 시작하여 생성되며, 여기서 P1(j)는 최소 이웃하는 폴리곤들의 수를 갖는다. PF(n)(j)에서 P1(j)에 이웃하는 폴리곤은 P1(j)와 모서리를 공유하고, 순회되지 않으며, P1(j)와 동일한 배향을 갖는 폴리곤이다. 그 다음 P1(j)는 폴리곤 팬(PF(n)(j))에 추가되고 순회된 것으로 마킹된다.
그 다음 이러한 절차가 반복된다. 예를 들어, 순회되지 않고, P1(j)에 이웃하며, P1(j)와 동일한 배향을 갖는 v'j에 부수하는 폴리곤이 임의로 선택된다. 이러한 부수하는 폴리곤은 그 다음 폴리곤 팬(PF(n)(j))에 추가되고 순회된 것으로 마킹된다.
부수하는 폴리곤이 폴리곤(PF(n)(j))에 추가될 때마다, 그것의 정점들이 F에 추가된다. 이들 정점은 (순회되지 않은 경우) 그것들의 순회 순서에 기초하여 추출, 순회, 다시 라벨링되고, 순회된 것으로 마킹된다. 바람직한 실시예에서, 폴리곤의 정점들은 시계방향 방식으로 순회된다. 덧붙여, 전처리 모듈(120)은 이전에 순회되지 않은 각각의 추출된 정점에 대해 부수하는 폴리곤들의 세트를 결정한다. 이러한 부수하는 폴리곤들의 세트에서의 정점들이 또한 F에 추가된다.
프로세스는 순회되지 않은 동일한 배향의 이웃하는 폴리곤을 선택하는 것이 불가능할 때까지 계속된다. 이것이 발생한 때, 새로운 폴리곤 팬이 생성되어야 한다. 전처리 모듈(120)은 고려되지 않은 부수하는 폴리곤들을 갖는 다음 추출된 정점(v'k)에서 시작하여 새로운 폴리곤 팬을 생성한다. 추출된 정점(v'k)에 대해 부수하는 폴리곤(P1(k))을 식별한 후, P1(k)가 폴리곤 팬(PF(n)(k))에 추가되고 순회된 것으로 마킹된다. 덧붙여, P1(k)와 연관된 정점들이 F에 추가된다.
위에서 설명된 동작들을 보다 양호하게 이해하기 위해, 단계들(320 및 330)이 도 5에서의 폴리곤 메쉬(500)를 참조하여 설명된다. 위에서 언급된 바와 같이, 도 5는 일곱 개의 폴리곤, 즉 P1 내지 P7로 구성된 폴리곤 메쉬(500)를 예시한다. 폴리곤 메쉬(500)는 정점들의 세트(v1 내지 v13)로 정의된다. 그러나, 이들 정점의 인덱스는 폴리곤 팬들의 세트에 대해서는 물론, 폴리곤들에 대한 순회 순서를 정의하지 않을 수 있다. 예를 들어, 폴리곤(P2)은 정점들(v0, v1, v3, 및 v2)로 시계방향으로 정의된다. 그러나, 이들 인덱스는 P2의 순회 순서를 정의하지 않는다. 따라서, 폴리곤 메쉬(500)의 정점들은 다시 라벨링될 필요가 있다.
단계(320)에서, 정점(v0)이 임의로 선택되고 v'0로 다시 라벨링된다. 이는 v0이 순회된 첫번째 정점이었기 때문이다. 폴리곤들(P1, P2, P3, 및 P4)이 정점(v'0)에 부수한다. 그에 따라, 단계(330)에서 이들 부수하는 폴리곤이 폴리곤 팬들의 세트로 분할된다.
단계(330)에서, v'0에 부수하는 폴리곤(P1)에서 시작하여 폴리곤-팬 0이 생성된다. P1이 폴리곤-팬 0에 추가된다. 덧붙여, P1의 정점들이 F에 추가된다. P1으로부터의 각각의 정점이 F로부터 추출될 때, 각각의 정점이 그것의 순회 순서에 기초하여 다시 라벨링된다. 바람직한 실시예에서, P1의 정점들은 시계방향 방식으로 순회된다.
덧붙여, 전처리 모듈(120)은 각각의 추출된 정점에 부수하는 새로운 폴리곤들을 결정한다. 예를 들어, 정점(v7)이 F로부터 추출되고, v7이 순회된 두번째 정점이기 때문에 v'1으로 다시 라벨링되며, 순회된 것으로 마킹된다. v'1이 두 개의 부수하는 폴리곤, 즉 P1 및 P4를 가지나; 이들 폴리곤은 이미 v'0에 대해 고려되었기 때문에, 그것들의 관련 정점들이 F에 추가되지 않는다는 것을 주의하자. 순회는 정점들(v6, v4, v5, 및 v1)로 계속되어 각각, v'2, v'3, v'4, 및 v'5로 다시 라벨링된다. 그 다음 폴리곤(P1)이 순회된 것으로 마킹된다. P1의 순회 이후, 부수하는 폴리곤(P2)이 폴리곤-팬 0에의 포함을 위해 고려된다. P2가 폴리곤 팬에의 포함을 위한 속성들을 충족하기 때문에, P2가 폴리곤-팬 0에 추가된다. 구체적으로, P1 및 P2는 중심 정점, 즉 v0를 공유한다. 덧붙여, 그것들이 모서리, 즉 (v0, v1)을 공유하기 때문에 P2는 P1의 이웃하는 폴리곤이다. 최종적으로, P1 및 P2의 공통 모서리{(v0, v1)}가 반대 방향들로 순회되기 때문에 그것들은 동일한 배향을 갖는다. 상기한 내용을 고려할 때, 그리고 P2가 순회되지 않았기 때문에, P2가 폴리곤-팬 0에 추가되고 순회된 것으로 마킹된다.
그 다음 P2의 정점들이 F에 추가되고 그 후 순회된다. 그것들이 F로부터 추출될 때 그것들은 그것들의 순회 순서에 기초하여 다시 라벨링된다. 그러나, 정점들(v0 및 v1)은 이미 순회되었기 때문에, 그것들은 다시 라벨링되지 않는다. 다시 말해, 단지 순회되지 않은 정점들만이 다시 라벨링된다. 그에 따라, P2의 경우, v0 및 v1은 그것들의 다시 라벨링된 인덱스들(v'0 및 v'5)을 유지한다. 다른 한편으로, v3 및 v2는 순회되지 않았기 때문에, 그것들은 각각, v'6 및 v'7으로 다시 라벨링된다. 결과적으로, P2의 정점들은 v'0, v'5, v'6, 및 v'7으로 다시 라벨링된다.
상기한 프로세스는 순회되지 않은 동일한 배향의 이웃들을 갖는 폴리곤을 획득하는 것이 불가능할 때까지 계속된다는 것을 상기하자. 해당 지점에 이른 때, 새로운 폴리곤 팬이 생성되어야 한다. 예를 들어, 폴리곤(P3)이 P2에 이웃하고, 순회되지 않으며, P2와 동일한 배향을 갖는다. 그에 따라, P3가 폴리곤-팬 0에 추가되고 순회된 것으로 마킹된다. 그러나, 폴리곤(P4)을 폴리곤-팬 0에 추가한 후에는, 동일한 배향을 갖고 순회되지 않은 P4에 대한 이웃 폴리곤들이 더 이상 존재하지 않는다. 사실상, 폴리곤들(P1, P2, P3, 및 P4)의 완전한 팬이 생성되었다. 그 결과 새로운 폴리곤 팬이 생성되어야 한다.
새로운 폴리곤-팬 1이 v13에서 시작하여 생성된다. 각각의 정점이 순회될 때 각각의 정점이 F에 추가된다는 것을 상기하자. 나아가 각각의 정점이 F로부터 추출될 때, 추출된 정점에 부수하는 폴리곤들의 세트가 고려된다는 것을 상기하자. 그 다음 이들 부수하는 폴리곤들의 정점들이 순회되고 F로 삽입된다. 그러나, 단지 새로운 부수하는 폴리곤들만이 고려된다. 그에 따라, 정점(v7)이 추출될 때에는, P1도 P4도 이미 v0에 부수하는 폴리곤들로 고려되었기 때문에 그것들이 고려되지 않는다.
다른 한편으로, v13이 추출될 때, 폴리곤(P5)은 v0에 부수했던 폴리곤들의 부분이 아니었다. 그에 따라, 그것의 대응하는 정점들이 추출을 위해 F에 추가된다. 유사하게, v12가 추출될 때, P6 및 P7이 고려되지 않았던 부수하는 폴리곤들이고 그것들의 정점들이 F에 추가된다.
위에서 설명한 바와 같이, 단계들(320 및 330)은 F에 더 이상 어떤 정점도 존재하지 않을 때 완료된다. 도 5는 정점들의 최종 순회 순서를 도시하고, 도 6은 폴리곤 팬들의 세트를 도시한다. 구체적으로, 도 6에서의 폴리곤 메쉬(600)는 세 개의 폴리곤 팬, 즉 폴리곤-팬 0, 폴리곤-팬 1, 및 폴리곤-팬 2를 포함한다. 폴리곤-팬 0은 폴리곤들(P1 내지 P4)을 포함한다. 폴리곤-팬 1은 폴리곤(P5)을 포함한다. 폴리곤-팬 2는 폴리곤들(P6 및 P7)을 포함한다.
도 5에서의 폴리곤 메쉬(500)가 정점들의 고유한 순회 순서로 폴리곤 팬들의 세트로 분할되었지만, 폴리곤 메쉬(500)는 여전히 SC3DMC 인코더(160)에 의한 압축에 부적합하다. 이는 폴리곤 메쉬(500)가 폴리곤 팬들로 분할되었고, 여전히 삼각형들이 아닌 폴리곤들로 구성되기 때문이다. 따라서, 폴리곤 메쉬(500)의 폴리곤 팬들의 세트는 삼각형들로 테셀레이트되어야 한다.
단계(340)에서, 단계(330)에서 생성된 각각의 폴리곤 팬이 전처리 모듈(120)에 의해 정점들의 순회 순서에 기초하여 하나 이상의 삼각형으로 테셀레이트된다. 이는 SC3DMC-TFAN 알고리즘에 따라 삼각형 메쉬를 압축하는 SC3DMC 인코더(160)가 폴리곤 메쉬(500)를 압축할 수 있음을 보장한다.
기본 아이디어는 각각의 폴리곤 팬에 적절하게 추가 모서리들을 도입하는 것이다. 구체적으로, 폴리곤 팬에서 삼각형이 아닌 각각의 폴리곤에 대해, 전처리 모듈(120)은 폴리곤 팬의 중심 정점 및 가장 낮은 순회 순서를 갖는 폴리곤에서의 정점들 사이에 추가 모서리들을 도입한다. 이는 폴리곤이 완전히 삼각형들로 테셀레이트되게 한다. 추가 모서리들을 도입하는 이러한 프로세스는 전체 폴리곤 팬이 삼각형 팬으로 축중될 때까지 계속된다. 그 다음 프로세스는 후속 폴리곤 팬들마다 반복된다.
전처리 모듈(120)은 그것들의 관련 정점들이 순회되는 순으로 폴리곤들을 테셀레이트한다. 다시 말해, v'0 및 v'1을 포함하는 폴리곤이 테셀레이트되는 첫번째 폴리곤일 수 있다. 덧붙여, 각각의 폴리곤이 테셀레이트된 후, 폴리곤을 구성하는 삼각형들의 수가 압축을 풀 목적으로 메모리에 저장된다. 다시 말해, 전처리 모듈(120)은 시퀀스을 생성하고, 시퀀스에서의 각각의 수는 대응하는 폴리곤에서의 삼각형들의 수를 나타낸다. 그에 따라, 3, 5, 2의 시퀀스는 순회 순서에 기초하여 폴리곤 메쉬에서의 첫번째 폴리곤이 세 개의 삼각형을 포함하고, 두번째 폴리곤이 다섯 개의 삼각형을 포함하며, 마지막 폴리곤이 두 개의 삼각형을 포함함을 나타낼 수 있다. 이러한 생성된 시퀀스는 결과 삼각형 메쉬가 원래의 폴리곤 메쉬로 복원되게 한다.
예로서, 도 7은 폴리곤들(P1 내지 P4)을 포함하는 폴리곤-팬 0을 도시한다. 폴리곤(P1)에 대해, 정점(v'0)으로부터 대향하는 정점들(v'2, v'3, 및 v'4)까지 추가 모서리들이 도입된다. 이는 P1을 완전히 삼각형들, 구체적으로 네 개의 삼각형으로 구성되게 한다. 그 다음 테셀레이션 프로세스는 각각, 폴리곤들(P2, P3, 및 P4)마다 반복된다. 그 결과, 폴리곤-팬 0은 열 개의 삼각형으로 구성된 중심 정점(v0)을 갖는 삼각형 팬이 된다. 그 다음 프로세스는 폴리곤-팬 1 및 폴리곤-팬 2마다 반복된다.
폴리곤-팬 1은 이미 삼각형들로만 구성된다. 따라서, 어떠한 테셀레이션도 수행되지 않는다. 그러나, 폴리곤-팬 2는 테셀레이트되지 않았다. 구체적으로, 폴리곤-팬 2는 폴리곤들(P6 및 P7)을 포함한다. 폴리곤(P6)은 삼각형이지만 폴리곤(P7)은 삼각형이 아니다. 따라서, 전처리 모듈(120)은 정점들(v'9 및 v'13) 사이에 모서리를 도입한다. 이는 P7이 두 개의 삼각형으로 테셀레이트되게 한다. 도 7에 기초하여, 폴리곤당 삼각형들의 수를 기술하는 생성된 시퀀스는 {4, 2, 2, 2, 1, 1, 2}이다.
단계(350)에서, 압축된 스트림이 출력된다. 압축된 스트림은 다음 두 가지 정보를 포함한다: 단계(340)에서 생성된 압축된 삼각형 메쉬, 및 폴리곤당 삼각형들의 수를 나타내는 압축된 시퀀스.
도 4는 실시예에 따라 폴리곤 메쉬를 압축하기 위한 방법(400)을 예시하는 블록도를 도시한다. 아래에서 보다 상세하게 설명될 바와 같이, 방법(400)은 소프트웨어 또는 하드웨어로 구현될 수 있다.
도 4를 참조하여, 방법(400)은 de-mux(220)가 압축된 스트림을 수신하는 단계(410)로 시작된다. 압축된 스트림은 폴리곤 메쉬를 나타내는 SC3DMC 인코더(160)에 의해 압축된 삼각형 메쉬를 포함한다. 덧붙여, 압축된 스트림은 폴리곤 메쉬에서 폴리곤당 삼각형들의 수를 나타내는 엔트로피 인코더(170)에 의해 압축된 시퀀스를 포함한다.
단계(420)에서, de-mux(220)는 압축된 스트림을 그것의 구성 부분으로 역다중화한다. SC3DMC 디코더(230)는 압축된 삼각형 메쉬를 삼각형 메쉬(250)로 디코딩한다. 엔트로피 디코더(240)는 폴리곤당 삼각형들의 수를 나타내는 압축된 시퀀스를 시퀀스(260)로 디코딩한다. 두 가지 정보는 원래 폴리곤 메쉬를 복원하기 위해 후처리 모듈(270)로 송신된다.
단계(430)에서, 후처리 모듈(270)은 전처리 모듈(120)에 의해 명시된 순회 순서에 따라 삼각형 메쉬(250)의 정점들을 순회한다. 구체적으로, 후처리 모듈(270)은 다시 라벨링된 그것들의 인덱스들의 순으로 정점들을 순회한다.
후처리 모듈(270)은 각각의 정점을 차례로 고려한다. 각각의 단계에서, 현재 정점에 부수하는 모든 삼각형이 그것들의 디코딩 순으로 순서화된다. 다시 말해, 현재 정점에 부수하는 삼각형들이 다시 라벨링된 그것들의 대응하는 정점들에 기초하여 순서화된다. 예를 들어, 도 7에서, 정점(v'0)이 고려되는 첫번째 정점이다. V'0은 열 개의 부수하는 삼각형을 갖는다. 정점들(v'0, v'1, 및 v'2)로 정의된 삼각형은 디코딩 순서에서 첫번째 부수하는 삼각형이다. 유사하게, 정점들(v'0, v'2, 및 v'3)로 정의된 삼각형은 디코딩 순서에서 두번째 부수하는 삼각형이다. 현재 정점에 부수하는 삼각형들을 식별한 후, 후처리 모듈(270)은 단계(440)를 수행한다.
단계(440)에서, 부수하는 삼각형들이 하나 이상의 폴리곤으로 병합된다. 구체적으로, 후처리 모듈(270)은 시퀀스(260)에서 다음 수(N)를 판독한다. 그 다음 후처리 모듈(270)은 다음 N개의 부수하는 삼각형을 하나의 폴리곤으로 병합한다. 그 다음 이들 N개의 부수하는 삼각형은 순회된 것으로 마킹된다. 그 다음 현재 정점에 부수하는 모든 삼각형이 순회될 때까지 이러한 동작이 반복된다.
최종적으로, 단계(450)에서, 결과적인 폴리곤 메쉬가 출력된다. 결과적인 폴리곤 메쉬는 위에서 설명된 바와 같이 전처리 모듈(120)에 의해 프로세싱된 폴리곤 메쉬와 동일하다.
본 출원에 제시된 실시예들, 또는 그것들의 부분들은 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합들로 구현될 수 있다.
본 출원에 제시된 실시예들은 두 개 이상의 디바이스 간 임의의 통신 시스템에 또는 하나의 디바이스의 서브 구성들 내에 적용된다. 본 출원에 설명된 대표적인 기능들은 하드웨어, 소프트웨어, 또는 이들의 몇몇 조합으로 구현될 수 있다. 예를 들어, 본 출원에 제공된 논의에 기초하여 해당 기술분야의 통상의 기술자들에 의해 이해될 바와 같이, 컴퓨터 처리기들, 컴퓨터 로직, 애플리케이션 특정 집적 회로들(ASIC), 디지털 신호 처리기들 등을 사용하여 대표적인 기능들이 구현될 수 있다. 따라서, 본 출원에 설명된 기능들을 수행하는 임의의 처리기는 본 출원에 제시된 실시예들의 범위 및 사상 내에 있다.
다음 내용은 본 출원에 제시된 본 발명의 실시예들을 구현하는 데 사용될 수 있는 범용 컴퓨터 시스템을 설명한다. 본 발명은 하드웨어로, 또는 소프트웨어 및 하드웨어의 조합으로 구현될 수 있다. 따라서, 본 발명은 컴퓨터 시스템 또는 다른 처리 시스템의 환경에서 구현될 수 있다. 그러한 컴퓨터 시스템(800)의 예가 도 8에 도시된다. 컴퓨터 시스템(800)은 하나 이상의 처리기, 이를테면 처리기(804)를 포함한다. 처리기(804)는 전용 또느 범용 디지털 신호 처리기일 수 있다. 처리기(804)는 통신 인프라스트럭처(802)(예를 들어, 버스 또는 네트워크)에 연결된다. 다양한 소프트웨어 구현예가 이러한 대표적인 컴퓨터 시스템 면에서 설명된다. 이러한 설명을 읽은 후, 관련 기술분야의 통상의 기술자에게 다른 컴퓨터 시스템들 및/또는 컴퓨터 아키텍처들을 사용하여 본 발명을 구현하는 방법이 분명해질 것이다.
컴퓨터 시스템(800)은 또한 주 기억장치(806)(예를 들어, 랜덤 액세스 메모리(RAM))를 포함하고 또한 보조 기억장치(808)를 포함할 수 있다. 보조 기억장치(808)는 예를 들어, 하드 디스크 드라이브(810) 및/또는 플로피 디스크 드라이브, 자기 테이프 드라이브, 광 디스크 드라이브, 또는 그 밖에 유사한 것을 나타내는 착탈가능한 저장 드라이브(812) 중 하나 이상을 포함할 수 있다. 착탈가능한 저장 드라이브(812)는 주지된 방식으로 착탈가능한 저장 장치(816)로부터 판독하고/하거나 이에 기록한다. 착탈가능한 저장 장치(816)는 플로피 디스크, 자기 테이프, 광 디스크, 또는 그 밖에 유사한 것을 나타내며, 이는 착탈가능한 저장 드라이브(812)에 의해 판독되고 이에 기록된다. 관련 기술분야(들)의 통상의 기술자들에 의해 이해될 바와 같이, 착탈가능한 저장 장치(816)는 그 내부에 컴퓨터 소프트웨어 및/또는 데이터를 저장한 컴퓨터 사용가능한 저장 매체를 포함한다.
대안적인 구현예들에서, 보조 기억장치(808)는 컴퓨터 프로그램들 또는 다른 명령들이 컴퓨터 시스템(800)에 로딩될 수 있게 하기 위한 다른 유사한 수단을 포함할 수 있다. 그러한 수단은 예를 들어, 착탈가능한 저장 장치(818) 및 인터페이스(814)를 포함할 수 있다. 그러한 수단의 예들은 프로그램 카트리지 및 카트리지 인터페이스(이를테면 비디오 게임 디바이스들에서 발견되는), 착탈가능한 메모리 칩(이를테면 EPROM, 또는 PROM) 및 관련 소켓, 썸 드라이브 및 USB 포트, 및 다른 착탈가능한 저장 장치(818) 및 소프트웨어 및 데이터가 착탈가능한 저장 장치(818)로부터 컴퓨터 시스템(800)에 전달될 수 있게 하는 인터페이스(814)를 포함할 수 있다.
컴퓨터 시스템(800) 또한 통신 인터페이스(820)를 포함할 수 있다. 통신 인터페이스(820)는 소프트웨어 및 데이터가 컴퓨터 시스템(800) 및 외부 디바이스들 사이에서 전달될 수 있게 한다. 통신 인터페이스(820)의 예들은 모뎀, 네트워크 인터페이스(이를테면 이더넷 카드), 통신 포트, PCMCIA 슬롯 및 카드 등을 포함할 수 있다. 통신 인터페이스(820)를 통해 전달되는 소프트웨어 및 데이터는 전자, 전자기, 광, 또는 통신 인터페이스(820)에 의해 수신될 수 있는 다른 신호들일 수 있는 신호들의 형태를 갖는다. 이들 신호는 통신 경로(822)를 통해 통신 인터페이스(820)에 제공된다. 통신 경로(822)는 신호들을 전달하고 배선 또는 케이블, 광 섬유, 전화선, 셀룰러 폰 링크, RF 링크 및 다른 통신 채널들을 사용하여 구현될 수 있다.
본 출원에서 사용될 때, 용어들 "컴퓨터 프로그램 매체" 및 "컴퓨터 판독가능한 매체"는 유형의 저장 매체 이를테면 착탈가능한 저장 장치(816 및 818) 또는 하드 디스크 드라이브(810)에 설치된 하드 디스크를 통칭하는 데 사용된다. 이들 컴퓨터 프로그램 제품은 컴퓨터 시스템(300)에 소프트웨어를 제공하기 위한 수단이다.
컴퓨터 프로그램들(컴퓨터 제어 로직으로도 불리우는)은 주 기억장치(806) 및/또는 보조 기억장치(808)에 저장된다. 컴퓨터 프로그램들은 또한 통신 인터페이스(820)를 통해 수신될 수 있다. 그러한 컴퓨터 프로그램들은, 실행될 때, 컴퓨터 시스템(800)이 본 출원에 논의된 바와 같이 본 발명을 구현하게 한다. 특히, 컴퓨터 프로그램들은, 실행될 때, 처리기(304)가 본 발명의 프로세스, 이를테면 본 출원에 설명된 방법들 중 임의의 방법을 구현하게 한다. 그에 따라, 그러한 컴퓨터 프로그램들은 컴퓨터 시스템(800)의 제어기들을 대신한다. 본 발명이 소프트웨어를 사용하여 구현될 때, 소프트웨어는 착탈가능한 저장 드라이브(812), 인터페이스(814), 또는 통신 인터페이스(820)를 통해 컴퓨터 프로그램 제품에 저장되고 컴퓨터 시스템(800)에 로딩될 수 있다.
다른 실시예에서, 본 발명의 피처들은 주로 하드웨어 예를 들어, 하드웨어 구성요소들 이를테면 애플리케이션-특정 집적 회로들(ASIC들) 및 게이트 어레이들을 사용하여 구현된다. 본 출원에 설명된 기능들을 수행하기 위한 하드웨어 상태 기계의 구현예가 또한 관련 기술분야(들)의 통상의 기술자들에게 분명할 것이다.
발명의 내용 및 요약 섹션들은 하나 이상의 그러나 전부는 아닌 대표적인 실시예를 발명자(들)에 의해 고려된 것으로 제시할 수 있고, 그에 따라, 어떤 방식으로든 실시예들 및 첨부된 청구항들을 제한하도록 의도되지 않는다.
위에서 본 출원에서의 실시예들은 명시된 기능들 및 그것들의 관계들의 구현예를 예시하는 기능 블록도들을 써서 설명되었다. 이들 기능 블록도의 경계들은 설명의 편리함을 위해 본 출원에서 임의로 정의되었다. 명시된 기능들 및 그것들의 관계들이 적절하게 수행되는 한 대안적인 경계들이 정의될 수 있다.
구체적인 실시예들에 대해 앞서 말한 설명은 다른 이들이 해당 기술분야의 기술 내 지식을 적용함으로써, 본 실시예들의 일반적인 개념에서 벗어나지 않고, 과도한 실험 없이, 그러한 구체적인 실시예들을 다양한 적용을 위해 용이하게 변형 및/또는 조정할 수 있는 실시예들의 일반적인 특성을 충분히 드러낼 것이다. 따라서, 그러한 조정들 및 변형들은 본 출원에 제시된 교시 및 안내에 기초하여, 개시된 실시예들의 등가물들의 의의 및 범위 내에 있는 것으로 의도된다. 본 출원에에서의 어법 및 용어는 설명을 위함이고 제한을 위함이 아니며, 그에 따라 본 명세서의 용어 또는 어법이 통상의 기술자에 의해 교시들 및 안내를 고려하여 해석되게 된다는 것이 이해되어야 한다.

Claims (24)

  1. 폴리곤 메쉬(polygon mesh)를 압축하기 위한 시스템으로서,
    다음 동작들을 수행하도록 구성된 처리기:
    순회 순서에 따라 폴리곤 메쉬를 순회하는 동작;
    상기 순회 순서에 기초하여 상기 폴리곤 메쉬를 폴리곤 팬들(polygon fans)의 세트로 분할하는 동작;
    상기 순회 순서에 기초하여 상기 폴리곤 팬들의 세트를 삼각형들로 테셀레이트(tessellate)하는 동작; 및
    상기 삼각형들을 사용하여 상기 폴리곤 메쉬를 압축하도록 구성된 인코더를 포함하는, 시스템.
  2. 청구항 1에 있어서, 상기 순회하는 동작은:
    상기 폴리곤 메쉬에서의 정점에 부수하는 폴리곤을 순회하는 동작을 포함하는, 시스템.
  3. 청구항 2에 있어서, 상기 분할하는 동작은:
    상기 폴리곤 팬들의 세트의 폴리곤 팬에 상기 부수하는 폴리곤을 추가하는 동작을 포함하되, 상기 정점은 상기 폴리곤 팬의 중심 정점이고, 상기 부수하는 폴리곤은 순회되지 않은 것이며, 상기 부수하는 폴리곤은 상기 폴리곤 팬에서의 이웃 폴리곤의 동일한 배향을 갖거나 또는 상기 부수하는 폴리곤은 상기 폴리곤 팬에서 어떠한 이웃 폴리곤도 갖지 않는, 시스템.
  4. 청구항 1에 있어서, 상기 테셀레이트하는 동작은:
    상기 폴리곤 팬들의 세트의 폴리곤 팬에서의 폴리곤에서 가장 낮은 순회 순서를 갖는 정점 및 상기 폴리곤 팬에서의 중심 정점 사이에 모서리를 삽입하는 동작을 포함하는, 시스템.
  5. 청구항 1에 있어서, 상기 처리기는 다음:
    상기 테셀레이트하는 동작에 기초하여 삼각형 메쉬를 출력하는 동작을 포함하는 동작들을 수행하도록 더 구성된, 시스템.
  6. 청구항 1에 있어서, 상기 처리기는 다음:
    상기 테셀레이트하는 동작에 기초하여 삼각형 팬들의 세트를 출력하는 동작을 포함하는 동작들을 수행하도록 더 구성된, 시스템.
  7. 청구항 1에 있어서, 상기 처리기는 다음:
    상기 폴리곤 팬들의 세트의 폴리곤 팬에서의 각각의 폴리곤 내 삼각형들의 수를 출력하는 동작을 포함하는 동작들을 수행하도록 더 구성된, 시스템.
  8. 청구항 1에 있어서, 상기 인코더는 SC3DMC 인코더인, 시스템.
  9. 폴리곤 메쉬를 압축하기 위한 방법으로서,
    순회 순서에 따라 폴리곤 메쉬를 순회하는 단계;
    상기 순회 순서에 기초하여 상기 폴리곤 메쉬를 폴리곤 팬들의 세트로 분할하는 단계;
    상기 순회 순서에 기초하여 상기 폴리곤 팬들의 세트를 삼각형들로 테셀레이트하는 단계; 및
    상기 삼각형들을 사용하여 상기 폴리곤 메쉬를 압축하는 단계를 포함하는, 방법.
  10. 청구항 9에 있어서, 상기 순회하는 단계는:
    상기 폴리곤 메쉬에서의 정점에 부수하는 폴리곤을 순회하는 단계를 포함하는, 방법.
  11. 청구항 10에 있어서, 상기 분할하는 단계는:
    상기 폴리곤 팬들의 세트의 폴리곤 팬에 상기 부수하는 폴리곤을 추가하는 단계를 포함하되, 상기 정점은 상기 폴리곤 팬의 중심 정점이고, 상기 부수하는 폴리곤은 순회되지 않은 것이며, 상기 부수하는 폴리곤은 상기 폴리곤 팬에서의 이웃 폴리곤의 동일한 배향을 갖거나 또는 상기 부수하는 폴리곤은 상기 폴리곤 팬에서 어떠한 이웃 폴리곤도 갖지 않는, 방법.
  12. 청구항 9에 있어서, 상기 테셀레이트하는 단계는:
    상기 폴리곤 팬들의 세트의 폴리곤 팬에서의 폴리곤에서 가장 낮은 순회 순서를 갖는 정점 및 상기 폴리곤 팬에서의 중심 정점 사이에 모서리를 삽입하는 단계를 포함하는, 방법.
  13. 청구항 9에 있어서,
    상기 테셀레이트하는 단계에 기초하여 삼각형 메쉬를 출력하는 단계를 더 포함하는, 방법.
  14. 청구항 9에 있어서,
    상기 테셀레이트하는 단계에 기초하여 삼각형 팬들의 세트를 출력하는 단계를 더 포함하는, 방법.
  15. 청구항 9에 있어서,
    상기 폴리곤 팬들의 세트의 폴리곤 팬에서의 각각의 폴리곤 내 삼각형들의 수를 버퍼에 출력하는 단계를 포함하는, 방법.
  16. 청구항 9에 있어서, 상기 압축하는 단계는:
    SC3DMC 표준에 따라 상기 폴리곤 메쉬를 압축하는 단계를 더 포함하는, 방법.
  17. 컴퓨터-실행가능한 명령들을 저장한 컴퓨터-판독가능한 저장 디바이스로서, 컴퓨팅 디바이스에 의한 이의 실행은 상기 컴퓨팅 디바이스가 동작들을 수행하게 하며, 상기 동작들은:
    순회 순서에 따라 폴리곤 메쉬를 순회하는 동작;
    상기 순회 순서에 기초하여 상기 폴리곤 메쉬를 폴리곤 팬들의 세트로 분할하는 동작;
    상기 순회 순서에 기초하여 상기 폴리곤 팬들의 세트를 삼각형들로 테셀레이트하는 동작; 및
    상기 삼각형들을 사용하여 상기 폴리곤 메쉬를 압축하는 동작을 포함하는, 컴퓨터-판독가능한 저장 디바이스.
  18. 청구항 17에 있어서, 상기 순회하는 동작은:
    상기 폴리곤 메쉬에서의 정점에 부수하는 폴리곤을 순회하는 동작을 포함하는, 컴퓨터-판독가능한 저장 디바이스.
  19. 청구항 18에 있어서, 상기 분할하는 동작은:
    폴리곤 팬에 상기 부수하는 폴리곤을 추가하는 동작을 포함하되, 상기 정점은 상기 폴리곤 팬의 중심 정점이고, 상기 부수하는 폴리곤은 순회되지 않은 것이며, 상기 부수하는 폴리곤은 상기 폴리곤 팬에서의 이웃 폴리곤의 동일한 배향을 갖거나 또는 상기 부수하는 폴리곤은 상기 폴리곤 팬에서 어떠한 이웃 폴리곤도 갖지 않는, 컴퓨터-판독가능한 저장 디바이스.
  20. 청구항 17에 있어서, 상기 테셀레이트하는 동작은:
    폴리곤 팬에서 가장 낮은 순회 순서를 갖는 정점 및 상기 폴리곤 팬에서의 중심 정점 사이에 모서리를 삽입하는 동작을 포함하는, 컴퓨터-판독가능한 저장 디바이스.
  21. 청구항 17에 있어서,
    상기 테셀레이트하는 동작에 기초하여 삼각형 메쉬를 출력하는 동작을 더 포함하는, 컴퓨터-판독가능한 저장 디바이스.
  22. 청구항 17에 있어서,
    상기 테셀레이트하는 동작에 기초하여 삼각형 팬들의 세트를 출력하는 동작을 더 포함하는, 컴퓨터-판독가능한 저장 디바이스.
  23. 청구항 17에 있어서,
    폴리곤 팬에서의 각각의 폴리곤 내 삼각형들의 수를 출력하는 동작을 더 포함하는, 컴퓨터-판독가능한 저장 디바이스.
  24. 청구항 17에 있어서, 상기 압축하는 동작은:
    SC3DMC 표준에 따라 상기 폴리곤 메쉬를 압축하는 동작을 더 포함하는, 컴퓨터-판독가능한 저장 디바이스.
KR1020177007182A 2014-08-29 2015-08-21 Mpeg/sc3dmc 표준을 폴리곤 메쉬로 확장하는 것 KR102467816B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/473,242 US10055857B2 (en) 2014-08-29 2014-08-29 Extension of the MPEG/SC3DMC standard to polygon meshes
US14/473,242 2014-08-29
PCT/CA2015/050803 WO2016029303A1 (en) 2014-08-29 2015-08-21 Extension of the mpeg/sc3dmc standard to polygon meshes

Publications (2)

Publication Number Publication Date
KR20170048408A true KR20170048408A (ko) 2017-05-08
KR102467816B1 KR102467816B1 (ko) 2022-11-16

Family

ID=55398536

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177007182A KR102467816B1 (ko) 2014-08-29 2015-08-21 Mpeg/sc3dmc 표준을 폴리곤 메쉬로 확장하는 것

Country Status (6)

Country Link
US (1) US10055857B2 (ko)
EP (1) EP3186781B1 (ko)
JP (1) JP6517922B2 (ko)
KR (1) KR102467816B1 (ko)
CN (1) CN106663328B (ko)
WO (1) WO2016029303A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3163536B1 (en) * 2015-10-30 2021-12-08 Dassault Systèmes Compression of a three-dimensional modeled object
JP2024008746A (ja) * 2022-07-09 2024-01-19 Kddi株式会社 メッシュ復号装置、メッシュ符号化装置、メッシュ復号方法及びプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120229464A1 (en) * 2011-03-09 2012-09-13 Steven Fishwick Compression of a tessellated primitive index list in a tile rendering system

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6525722B1 (en) * 1995-08-04 2003-02-25 Sun Microsystems, Inc. Geometry compression for regular and irregular mesh structures
US6668091B1 (en) * 1998-10-02 2003-12-23 Samsung Electronics Co., Ltd. 3D mesh coding/decoding method
US6452596B1 (en) * 1998-10-06 2002-09-17 International Business Machines Corporation Methods and apparatus for the efficient compression of non-manifold polygonal meshes
US6469701B1 (en) 1999-07-19 2002-10-22 Stefan Gumhold Method for compressing graphical information
JP4541533B2 (ja) * 2000-11-24 2010-09-08 パナソニック株式会社 描画装置
GB2388507B (en) * 2002-05-10 2005-11-09 Imagination Tech Ltd An interface and method of interfacing between a parametric modelling unit and a polygon based rendering system.
US6906714B2 (en) * 2002-06-21 2005-06-14 Intel Corporation Accelerated visualization of surface light fields
JP2005056083A (ja) * 2003-08-01 2005-03-03 Ricoh Co Ltd n次元形状モデル、n次元形状モデル格納装置、n次元形状モデル格納方法、n次元形状モデル表示装置、n次元形状モデル表示方法、n次元形状モデルのデータ構造、n次元形状モデル処理システム、プログラムおよび記録媒体
CN101364310B (zh) * 2007-08-07 2012-10-31 北京灵图软件技术有限公司 一种三维模型图形的生成方法和装置
US8773432B2 (en) * 2008-04-18 2014-07-08 Adobe Systems Incorporated Triangulation for accelerated multi-resolution rendering of stroked paths
CN101807308B (zh) * 2009-02-12 2015-07-08 富士通株式会社 三维模型分割装置和方法
GB0908506D0 (en) * 2009-05-18 2009-06-24 Imagination Tech Ltd Method and apparatus for drawing polygons
EP2446419B1 (en) * 2009-06-23 2021-04-07 InterDigital VC Holdings, Inc. Compression of 3d meshes with repeated patterns
EP2529356A1 (en) * 2010-01-25 2012-12-05 Thomson Licensing Method for encoding normals of a 3d mesh model, method for decoding normals of a 3d mesh model, encoder and decoder
CN101877145B (zh) * 2010-05-21 2012-06-20 西安电子科技大学 基于质量因子的复杂平表面网格预剖分方法
GB2477368B (en) 2010-10-11 2011-12-14 Visual Technology Services Ltd Triangle mesh compression
US20140160241A1 (en) * 2011-07-08 2014-06-12 Kangying Cai System and method for encoding and decoding a bitstream for a 3d model having repetitive structure
WO2014005415A1 (en) 2012-07-04 2014-01-09 Thomson Licensing System and method for multi-level repetitive structure based 3d model compression
CN103489221B (zh) * 2013-09-30 2017-11-07 中国科学院深圳先进技术研究院 四边形网格共形参数化方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120229464A1 (en) * 2011-03-09 2012-09-13 Steven Fishwick Compression of a tessellated primitive index list in a tile rendering system

Also Published As

Publication number Publication date
EP3186781B1 (en) 2021-10-27
WO2016029303A1 (en) 2016-03-03
EP3186781A1 (en) 2017-07-05
KR102467816B1 (ko) 2022-11-16
CN106663328A (zh) 2017-05-10
US10055857B2 (en) 2018-08-21
US20160063737A1 (en) 2016-03-03
EP3186781A4 (en) 2018-03-28
CN106663328B (zh) 2021-01-01
JP2017533494A (ja) 2017-11-09
JP6517922B2 (ja) 2019-05-22

Similar Documents

Publication Publication Date Title
US11625883B2 (en) Random accessible lossless parameter data compression for tile based 3D computer graphics systems
EP3468189B1 (en) Data compression
Mamou et al. TFAN: A low complexity 3D mesh compression algorithm
JP2022539411A (ja) 点群符号化方法、点群復号化方法、符号器、復号器及びコンピュータ記憶媒体
US20120219233A1 (en) Compression of Image Data
CN109600618A (zh) 视频压缩方法、解压缩方法、装置、终端和介质
CN103546158A (zh) 压缩深度高速缓存
CN110113617B (zh) 图像压缩与解压缩的方法、装置、电子设备及存储介质
JP2005065168A (ja) 画像圧縮装置及び画像圧縮方法
US10186236B2 (en) Universal codec
KR102467816B1 (ko) Mpeg/sc3dmc 표준을 폴리곤 메쉬로 확장하는 것
Derzapf et al. Dependency‐free parallel progressive meshes
AU2012283580A1 (en) System and method for encoding and decoding a bitstream for a 3D model having repetitive structure
WO2013007171A1 (en) System and method for encoding and decoding a bitstream for a 3d model having repetitive structure
WO2023172703A1 (en) Geometry point cloud coding
KR20240073054A (ko) 포인트 클라우드 데이터 프레임 압축
US11189005B1 (en) Index buffers in graphics processing systems
KR102313555B1 (ko) 3d 메시 분할 기반 3d 모델 압축 및 압축해제 시스템 및 방법
WO2023167153A1 (ja) 情報処理装置及び情報処理方法
US20240087174A1 (en) Coding and decoding point cloud attribute information
US20240135594A1 (en) Adaptive geometry filtering for mesh compression
US20150016742A1 (en) Methods for compensating decoding error in three-dimensional models
Baroud et al. Architecture for parallelizing decoding of marker-free variable length code streams
CN106412584B (zh) 传输显示数据的系统和方法
US20180081596A1 (en) Data processing apparatus and data processing method

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right