KR101958844B1 - 3d 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 방법 및 장치 - Google Patents

3d 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR101958844B1
KR101958844B1 KR1020147028909A KR20147028909A KR101958844B1 KR 101958844 B1 KR101958844 B1 KR 101958844B1 KR 1020147028909 A KR1020147028909 A KR 1020147028909A KR 20147028909 A KR20147028909 A KR 20147028909A KR 101958844 B1 KR101958844 B1 KR 101958844B1
Authority
KR
South Korea
Prior art keywords
instance
vertex
error
quantization parameter
quantization
Prior art date
Application number
KR1020147028909A
Other languages
English (en)
Other versions
KR20140146611A (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 KR20140146611A publication Critical patent/KR20140146611A/ko
Application granted granted Critical
Publication of KR101958844B1 publication Critical patent/KR101958844B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/62Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding by frequency transforming in three dimensions
    • 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/004Predictors, e.g. intraframe, interframe coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

3D 모델은 패턴-인스턴스 표현을 이용하여 모델링될 수 있고, 인스턴스 컴포넌트는 패턴의 변환(예를 들면, 회전, 평행이동, 스케일링)으로서 표현될 수 있다. 회전 정보를 인코딩할 때, 양자화 오차들이 도입될 수 있고, 이는 인스턴스의 상이한 버텍스들에 있어서 상이한 버텍스 좌표 오차들을 유발한다. 버텍스 좌표 오차들을 효율적으로 보상하기 위해, 버텍스의 버텍스 좌표 오차에 대하여 상한이 추정될 수 있다. 상한에 기초하여, 코덱은 버텍스의 버텍스 좌표 오차가 보상될 필요가 있는지를 판정하고, 보상이 필요하다면, 버텍스 좌표 오차를 보상하기 위한 양자화 파라미터를 결정한다. 인코더 및 디코더 둘 다에서 상한이 추정될 수 있고, 따라서 버텍스 좌표 오차 보상이 이용되는지를 지시하기 위해, 또는 버텍스 좌표 오차에 대한 양자화 파라미터를 지시하기 위해 명시적인 시그널링이 필요 없다.

Description

3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 방법 및 장치{METHOD AND APPARATUS FOR GENERATING OR DECODING A BITSTREAM REPRESENTING A 3D MODEL}
본 발명은 3D 모델을 표현하는 비트스트림을 생성하는 방법 및 장치와, 그것을 디코딩하는 방법 및 장치에 관한 것이다.
실제 응용들에 있어서, 많은 3D 모델들은 다수의 연결된 컴포넌트들로 구성된다. 도 1에 도시된 바와 같이, 일반적으로 이러한 복수-컴포넌트 3D 모델들은 다양한 변환들로 많은 반복 구조들을 포함한다.
입력 모델들에서 반복 구조들을 활용함으로써, 복수-컴포넌트 3D 모델들(PB3DMC)에 대해 효율적인 압축 알고리즘을 제공했다. 3D 모델의 반복 구조들은 다양한 위치들, 방향들, 및 스케일링 팩터들(scaling factors)에서 발견된다. 그 후 3D 모델은 "패턴-인스턴스(pattern-instance)" 표현으로 편성된다. 패턴은 대응하는 반복 구조의 대표적인 기하구조를 지시하기 위해 사용된다. 반복 구조에 속하는 연결된 컴포넌트들은 대응하는 패턴의 인스턴스들로서 지시되고, 예를 들면, 패턴에 대한 반사, 평행이동(translation), 회전, 및 가능한 스케일링 등 변환 정보와, 패턴 ID에 의해 표현될 수 있다. 이 인스턴스 변환 정보는, 예를 들어, 반사부, 평행이동부, 회전부, 및 가능한 스케일링부로 편성될 수 있다. 반복적이지 않은 3D 모델들의 일부 컴포넌트들이 있을 수 있고, 이들은 고유 컴포넌트들이라고 지칭된다.
K. Cai, W. Jiang, 및 J. Tian에 의한 "Bitstream syntax and semantics of repetitive structure discovery based 3D model compression algorithm"이란 제목의, 공통으로 소유한 PCT 출원(PCT/CN2011/076991, 대리인 사건 번호 PA110044)에서, 인스턴스 변환 정보를 압축하기 위한 두 개의 모드가 개시되고, 그것의 교시는 본 명세서에 참조되어 구체적으로 포함된다.
K. Cai, W. Jiang, 및 T. Luo에 의한 "System and method for error controllable repetitive structure discovery based compression"이란 제목의, 또 다른 공통으로 소유한 PCT 출원(PCT/CN2012/070877, 대리인 사건 번호 PA120001)에서, 인스턴스 컴포넌트들 중의 리던던시(redundancy)를 줄이고, 그에 따라 압축 효율을 향상시키기 위해 3D 모델에서 반복 구조들을 식별하기 위한 방법 및 장치가 개시되고, 그것의 교시는 본 명세서에 참조되어 구체적으로 포함된다.
본 원리들은 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하는 방법을 제공하고, 이 방법은 후술하는 바와 같이, 패턴의 인스턴스에 대응하는 재구성된 인스턴스를 액세스하는 단계 - 패턴은 3D 모델의 구조와 연관되고 인스턴스는 패턴의 변환으로서 표현됨 -; 변환의 회전부를 양자화하기 위해 사용되는 제1 양자화 파라미터를 액세스하는 단계 - 재구성된 인스턴스는 제1 양자화 파라미터에 응답하여 결정됨 -; 및 재구성된 인스턴스의 대응하는 버텍스와 재구성된 인스턴스의 회전 중심 사이의 거리, 및 제1 양자화 파라미터 중 적어도 하나에 응답하여 인스턴스의 버텍스와 재구성된 인스턴스의 대응하는 버텍스 사이의 버텍스 좌표 오차의 인코딩 또는 디코딩을 수행하는 단계를 포함한다. 본 원리들은 또한 이 단계들을 수행하는 장치를 제공한다.
본 원리들은 또한 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하는 방법을 제공하고, 이 방법은 후술하는 바와 같이, 패턴의 인스턴스에 대응하는 재구성된 인스턴스를 액세스하는 단계 - 패턴은 3D 모델의 구조와 연관되고 인스턴스는 패턴의 변환으로서 표현됨 -; 변환의 회전부를 양자화하기 위해 사용되는 제1 양자화 파라미터를 액세스하는 단계 - 재구성된 인스턴스는 제1 양자화 파라미터에 응답하여 결정됨 -; 재구성된 인스턴스의 대응하는 버텍스와 재구성된 인스턴스의 회전 중심 사이의 거리, 및 제1 양자화 파라미터 중 적어도 하나에 응답하여 인스턴스의 버텍스와 재구성된 인스턴스의 대응하는 버텍스 사이의 버텍스 좌표 오차의 상한을 추정하는 단계; 및 버텍스 좌표 오차의 상한에 응답하여 버텍스 좌표 오차의 인코딩 또는 디코딩을 수행하는 단계를 포함한다. 본 원리들은 또한 이 단계들을 수행하는 장치를 제공한다.
본 원리들은 또한 전술한 방법들에 따라 비트스트림을 생성 또는 디코딩하기 위한 명령들이 저장되어 있는 컴퓨터 판독가능 저장 매체를 제공한다.
본 원리들은 또한 전술한 방법들에 따라 생성된 비트스트림이 저장되어 있는 컴퓨터 판독가능 저장 매체를 제공한다.
도 1은 다수의 연결된 컴포넌트들과 반복 구조를 갖는 예시적인 3D 모델들을 나타낸다.
도 2a는 패턴들을 묘사하는 그림 예들을 나타내고, 도 2b는 해당 인스턴스들 및 재구성된 인스턴스들을 묘사하는 그림 예들을 나타낸다.
도 3은 본 원리들의 실시예에 따라, 3D 모델의 인스턴스를 인코딩하기 위한 예를 도시하는 흐름도이다.
도 4는 본 원리들의 실시예에 따라, 3D 모델의 인스턴스를 디코딩하기 위한 예를 도시하는 흐름도이다.
도 5는 본 원리들의 실시예에 따라, 회전부의 양자화에 의해 유발되는 버텍스 좌표 오차를 묘사하는 그림 예이다.
도 6은 본 원리들에 따른 예시적인 인스턴스 인코더를 나타낸다.
도 7은 본 원리들에 따른 예시적인 인스턴스 디코더를 나타낸다.
도 8은 본 원리들에 따른 3D 모델들의 예시적인 인코더를 나타낸다.
도 9는 본 원리들에 따른 3D 모델들의 예시적인 디코더를 나타낸다.
도 10은 본 원리들의 하나 이상의 구현에 사용될 수 있는 데이터 처리 시스템의 예를 도시하는 블록도이다.
도 11은 본 원리들의 하나 이상의 구현에 사용될 수 있는 데이터 처리 시스템의 다른 예를 도시하는 블록도이다.
도 1에 도시된 바와 같이, 3D 모델들에 있어서 많은 반복 구조들이 있을 수 있다. 효율적으로 3D 모델들을 인코딩하기 위해, 반복 구조들은 패턴들 및 인스턴스들로 편성될 수 있고, 인스턴스는 예를 들면, 평행이동, 회전, 및 스케일링 등 정보를 포함하는 변환 행렬, 및 패턴 ID를 이용하여, 대응하는 패턴의 변환으로서 표현될 수 있다.
인스턴스가 패턴 ID 및 변환 행렬에 의해 표현될 때, 패턴 ID 및 변환 행렬은 인스턴스를 압축할 때 압축될 것이다. 결과적으로, 인스턴스는 패턴 ID 및 디코딩된 변환 행렬을 통해 재구성될 수 있고, 즉, 인스턴스는 패턴 ID에 의해 인덱싱되는(indexed) 디코딩된 패턴의 (디코딩된 변환 행렬로부터의) 변환으로서 재구성될 수 있다. 일 실시예에서, 변환 행렬을 인코딩할 때, 변환 행렬의 회전부는, 예를 들어, 일정한 비트 수를 이용하여, 양자화될 수 있다. 양자화시에 도입되는 손실 때문에, 디코딩된 회전부는 원래 회전부와는 상이할 수 있다.
도 2a 및 도 2b는 2D 표현의 예시적인 컴포넌트들을 도시하고, 컴포넌트들(210, 220)은 패턴들이고, 컴포넌트들(250, 270)(실선들)은 압축될 원래의 인스턴스들이고, 컴포넌트들(260, 280)(점선들)은 재구성되는 인스턴스들이다. 특히, 인스턴스들(250, 270)은 각각 패턴들(210, 220)의 변환된(즉, 회전되고 평행이동된) 버전들로서 표현될 수 있다.
도 2b의 예들에서, 회전의 양자화는 약 5°의 오차를 도입하므로, 원래 인스턴스들과 복원된 인스턴스들 간의 차이들을 유발한다. 도 2b에서 알 수 있는 바와 같이, (각도에 있어서의) 회전 오차들은 인스턴스들(250, 270)에 있어서 유사하지만, 회전 양자화에 의해 유발되는 버텍스 좌표 오차들(즉, 원래 인스턴스들과 재구성된 인스턴스들 간의, 예를 들면, 도 2b의 A로부터 A'으로, B로부터 B'으로의 버텍스 시프트들)이 양방의 인스턴스들 간에 크게 다르고, 인스턴스(270)는 훨씬 더 큰 버텍스 좌표 오차들을 갖는다. 따라서, 재구성된 컴포넌트들의 품질은 예를 들면, 일관적이지 않을 수 있고, 예를 들면, 더 큰 인스턴스가 더 작은 인스턴스보다 더 낮은 재구성 품질을 가질 수 있다.
본 원리들은 회전 양자화에 의해 유발된 버텍스 좌표 오차들을 효율적으로 보상하기 위한 방법 및 장치를 제공한다. 일 실시예에서, 회전 정보는 인스턴스의 크기에 따라 적응적으로 양자화될 수 있다. 예를 들어, 더 많은 비트 수 또는 더 작은 양자화 스텝 폭 등 더 미세한 양자화 파라미터가 더 큰 인스턴스의 회전부를 양자화하기 위해 사용될 수 있다.
컴포넌트에 있어서 상이한 버텍스들이 동일한 회전 오차에 의해 유발되는 상이한 버텍스 좌표 오차들을 가지기 때문에, 더 미세한 양자화 파라미터만을 사용하는 것이 항상 양호한 해결책이 되는 것은 아닐 수 있다. 인스턴스(270)를 예로서 사용하면, 버텍스 B 및 C는 인코딩될 필요가 있을 수 있는 더 큰 버텍스 좌표 오차들을 갖지만, 버텍스 D 및 E는 가깝게 재구성되고 그들의 버텍스 좌표 오차들은 인코딩될 필요가 없을 수 있다. 버텍스들 B와 C의 정확한 재구성을 위해 충분히 미세한 양자화 파라미터를 갖기 위해, 버텍스들 D와 E는 필요보다 더 높은 정확도로 재구성되기 쉽고, 즉, 버텍스들 D와 E에 불필요하게 어느 정도의 비트들이 소비된다.
다른 실시예에서, 3D 컴포넌트의 버텍스들이 상이한 버텍스 좌표 오차들을 가질 수 있다는 것을 인식하여, 본 원리들은 버텍스 좌표 오차들을 적응적으로 보상한다. 인스턴스의 회전 중심으로부터 버텍스가 멀수록, 버텍스 좌표 오차가 더 커질 수 있다는 것이 관찰된다. 즉, 버텍스 좌표 오차가 인코딩될 필요가 있는지는 버텍스와 회전 중심 간의 거리에 의존할 수 있다. 따라서, 버텍스 좌표 오차가 보상될 필요가 있는지에 대한 결정은 버텍스마다 다를 수 있다.
도 3은 3D 모델의 인스턴스를 인코딩하기 위한 예시적인 방법(300)을 도시한다. 방법(300)은 단계 305에서 시작한다. 단계 310에서, 3D 모델 데이터가 입력되고 초기화가 수행된다. 품질 파라미터, 최대 허용 가능한 버텍스 좌표 오차, 변환 행렬의 평행이동부 및 회전부에 대한 회전 파라미터들 등 추가의 데이터가 또한 입력될 수 있거나 또는 입력으로부터 추론될 수 있다. 예시적인 일 실시예에서, 초기화 단계는 반복 구조들을 패턴들 및 인스턴스들로 편성할 수 있고, 인스턴스들에 대한 변환 행렬들을 생성할 수 있고, 재구성된 패턴들을 형성하기 위해 패턴들을 인코딩할 수 있다. 인코딩될 특정 인스턴스(C로서 지시됨)에 있어서, 대응하는 원래 패턴, 재구성된 패턴, 및 변환 행렬은 P, P', 및 T로서 각각 지시된다. 인스턴스가 패턴의 변환으로서 즉, C = TP로서 정확하게 표현될 수 있다. 대안적으로, 패턴의 변환은, 어떤 상황들 하에서 인스턴스의 근사치일 수 있고, 즉, C
Figure 112014098208084-pct00001
TP일 수 있다.
변환 행렬(T)은 단계 320에서 인코딩된다. 그 후 인코딩된 변환 행렬은 단계 330에서 T'으로서 디코딩된다. 인스턴스는 예를 들면, 대응하는 재구성된 패턴 및 디코딩된 변환 행렬(C' = T'P')을 이용하여, 단계 340에서 재구성된다. 재구성된 인스턴스에 대해, 방법(300)은 인스턴스의 개별 버텍스가 인코딩될 필요가 있는 큰 버텍스 좌표 오차를 가질 수 있는지를 검사하기 위해 진행한다.
단계 345에서, eest ,i로서 지시되는 버텍스 i의 버텍스 좌표 오차의 상한이 추정된다. 실제 버텍스 좌표 오차가 아니라 버텍스 좌표 오차의 상한을 이용함으로써, 본 원리들은 인코더 및 디코더 둘 다가 버텍스가 버텍스 좌표 오차를 보상할 필요가 있는지에 대해 동일한 결정을 할 수 있게 한다.
단계 350에서, eest ,i가 임계값, 예를 들어, 입력으로부터 수신된 최대 허용 가능한 오차 또는 입력 파라미터들로부터 추정된 임계값을 초과하는지를 검사한다. eest ,i가 임계값을 초과하면, 재구성된 인스턴스의 버텍스(Vi')와 원래의 인스턴스의 대응하는 버텍스(Vi) 간의 실제 버텍스 좌표 오차(Ei)가 예를 들어, Ei = Vi - Vi'로서 단계 355에서 산출된다. 버텍스 좌표 오차를 인코딩하기 위해, 양자화 파라미터가 단계 360에서 추정된다. 버텍스 좌표 오차는 단계 365에서 양자화되고 그 후 단계 370에서 엔트로피 코딩된다. 그렇지 않고, eest ,i가 임계값을 초과하지 않으면, 버텍스 좌표 오차가 인코딩되지 않고, 제어는 단계 380으로 진행된다.
단계 380에서 처리될 필요가 있는 버텍스가 더 있는지를 검사한다. 더 많은 버텍스가 처리될 것이라면, 제어가 단계 345로 복귀된다. 그렇지 않으면, 제어는 종료 단계 399로 진행된다.
방법(300)의 단계들은 조정될 수 있다. 일 실시예에서, 단계 360은 단계 355 전에 실시될 수 있다. 다른 실시예에서는, 단계 345에서, 버텍스 좌표 오차들의 상한들은 처리될 모든 버텍스들에 대해 추정되고, 상한들의 최대값 eest , max = max(eest,1, ..., eest ,i, ...)가 산출되고, eest ,i는 인스턴스의 버텍스 i의 추정된 상한을 지시한다. eest , max < eth이면, 고려 중인 모든 버텍스 좌표 오차들은 임계값보다 작고, 어떤 버텍스 오차도 인코딩될 필요가 없다. 따라서, 단계 350 내지 단계 380은 생략될 수 있다. 그렇지 않고, eest , max >= eth이면, 어떤 버텍스들은 임계값을 초과하는 버텍스 좌표 오차를 가질 것이고, 단계 350 내지 단계 380이 실행될 수 있다. 단계들 355 내지 370은 버텍스 보정 또는 버텍스 오차 보상 단계들로서 지칭될 수 있다.
도 4는 3D 모델의 인스턴스를 디코딩하기 위한 예시적인 방법(400)을 도시한다. 방법(400)의 입력은 비트스트림, 예를 들어, 방법(300)을 이용하여 생성된 비트스트림을 포함할 수 있다. 추가 데이터 예를 들면, 디코딩될 인스턴스에 대응하는 재구성된 패턴(Ρ')이 또한 입력으로서 포함될 수 있다. 방법(400)은 단계 405에서 시작한다. 단계 410에서, 초기화가 수행되고, 예를 들어, 변환 행렬에 대한 양자화 파라미터들이 입력 비트스트림으로부터 유도된다.
단계 415에서 변환 행렬은 T'으로서 디코딩된다. 단계 420에서 인스턴스는 예를 들면, 대응하는 재구성된 패턴 및 디코딩된 변환 행렬(C' = T'P')을 이용하여 C'으로서 재구성된다. 단계 425에서, 버텍스 i의 버텍스 좌표 오차의 상한 (eest ,i)이 추정된다.
단계 430에서, eest ,i가 임계값을 초과하는지 여부를 검사한다. eest ,i가 임계값을 초과하면, 단계 440에서, 양자화 파라미터 예를 들면, 양자화 비트의 수(nq)가 추정된다. 단계 450에서 인코딩된 버텍스 좌표 오차가 디코딩되고, 예를 들면, 비트스트림으로부터 nq 개의 비트가 디코딩된다. 그 후 단계 460에서 버텍스 좌표 오차가 Ei'으로 역양자화된다. 단계 470에서, 역양자화된 버텍스 좌표 오차(Ei')는 단계 420에서 처음 재구성된 인스턴스의 대응하는 버텍스(Vi')를 예를 들어, Vi" = Vi'+ Ei'로서 보상하기 위해 이용된다. 즉, 재구성된 인스턴스들의 버텍스가 보정된다.
그렇지 않고, eest ,i가 임계값을 초과하지 않는다면, 버텍스 좌표 오차는 인코딩되지 않고, 제어는 단계 480으로 진행된다. 단계 480에서, 처리될 필요가 있는 버텍스가 더 있는지를 검사한다. 그렇다면, 제어가 단계 425로 복귀한다. 그렇지 않으면, 제어는 종료 단계 499로 진행된다.
적절하게 인스턴스를 디코딩하기 위해, 버텍스 좌표 오차(eest ,i)의 상한을 추정하고, 양자화 파라미터를 추정하는 동일한 방법들, 동일한 임계값이 인코더 및 디코더에서 사용되어야 한다는 것을 유의한다. 예를 들어, 방법(300)에 의해 생성된 비트스트림이 방법(400)에 입력으로서 이용될 때, 단계 425 및 단계 440은 단계 345 및 단계 360에 각각 대응해야 하고, 단계 430 및 단계 350에서 이용된 임계값(eth)의 값들은 동일해야 한다.
하기에서, 버텍스에 대한 버텍스 좌표 오차의 상한을 추정(345, 425)하고 버텍스에 대한 양자화 파라미터를 결정(360, 440)하는 예시적인 실시예들이 논의된다.
버텍스 좌표 오차의 상한의 추정
패턴으로부터 인스턴스로의 회전은 세 개의 각도 {Ψ, θ, φ}, 예를 들면,
Figure 112014098208084-pct00002
에 의해 표현될 수 있다. 일 실시예에서, Ψ, θ, 및 φ는 n, n-1, 및 n개의 비트로 각각 양자화되어, 회전 각도들이 동일한 범위의 양자화 오차들을 갖게 되고, 즉, ΔΨ, Δθ, 및 Δφ가 모두
Figure 112014098208084-pct00003
에 들어오게 되고, ΔΨ, Δθ, 및 Δφ는 각각 Ψ, θ, 및 φ의 양자화 오차들이다. 각도들은 상이한 범위들에 있을 수 있고, 다른 양의 양자화 비트를 이용할 수 있다. 기하학적 특성을 이용하여, 버텍스 좌표 오차의 상한이 유도될 수 있다.
컴포넌트의 회전은 반지름이 버텍스와 컴포넌트의 회전 중심 사이의 거리인, 구(sphere)상에서 그것의 버텍스들 각각을 이동시키는 것으로서 간주될 수 있다. 도 5는 버텍스가 상이한 위치에서 재구성될 수 있는 방법을 묘사하는 2D 그림 예를 나타낸다. 이 예에서, 포인트 O는 컴포넌트의 회전 중심이고, 포인트 A는 컴포넌트의 버텍스이고, 버텍스 A는 양자화 오차 Δα로 인해 위치 A1에서 재구성된다. A와 A1 사이의 직선 거리 |AA1|이 A와 A1 사이의 구형 거리
Figure 112014098208084-pct00004
보다 작다고, 즉,
Figure 112014098208084-pct00005
이라고 추정될 수 있다.
회전 중심이 원점이라고 가정하고, 버텍스 A의 좌표들이 (x, y, z)로 주어진다면, 회전 양자화에 의해 유발되는 버텍스 시프트 (|ΑΑ1|)는 다음과 같이 계산될 수 있다.
Figure 112014098208084-pct00006
즉, 회전 양자화에 의해 유발되는 버텍스 i의 버텍스 좌표 오차의 상한은 다음과 같이 추정될 수 있다:
Figure 112014098208084-pct00007
여기서 ri는 버텍스 i와 재구성된 인스턴스의 회전 중심 사이의 거리이고, rmax는 버텍스들과 재구성된 인스턴스의 회전 중심 사이의 가장 먼 거리이다. 또한 상한은 다른 양자화 파라미터들이 회전 각도들에 대해 사용될 때 유도될 수 있다. 기타 기하학적 또는 수학적 특성들이 엄격한 상한을 유도하기 위해 더 이용될 수 있다.
회전 양자화에 의해 유발되는 버텍스 좌표 오차가 인코더 및 디코더 둘 다에서 가용적인 정보에 기초하여 인코딩 또는 디코딩될 필요가 있는지를 판정함으로써, 버텍스 좌표 오차가 인코딩되는지를 지시하기 위해 비트스트림에서 명시적인 시그널링 비트들이 필요 없으므로, 압축 효율을 향상시킬 수 있다.
버텍스 좌표 오차에 대한 양자화 파라미터의 결정
버텍스 i에 대한 버텍스 좌표 오차의 추정된 상한(eest ,i)이 주어지면, 양자화 파라미터가 유도될 수 있다. 일 실시예에서, 양자화 파라미터는, 버텍스 좌표 오차에 대한 양자화 스텝 폭이 평행이동부에 대한 것과 유사하도록 선택될 수 있다. 양자화 비트 수(Qres ,i)가 양자화 파라미터로서 추정될 경우에, Qres ,i는 다음과 같이 산출될 수 있다:
Figure 112014098208084-pct00008
여기서 Qtranslation은 변환 행렬의 평행이동부에 대한 양자화 비트 수이며, Range는 평행이동의 동적 범위(dynamic range)이다.
Figure 112014098208084-pct00009
인 경우, Qres ,i는 0으로 설정될 수 있고, 버텍스 i에 대한 버텍스 좌표 오차는 인코딩되지 않는다.
Qres ,i는 수학식 3과는 상이하게 산출될 수 있는데, 예를 들면, 다음과 같다.
Figure 112014098208084-pct00010
Qres ,i = 0이면, 버텍스 i에 대한 버텍스 좌표 오차는 인코딩되지 않는다.
수학식 3과 수학식 4에서, 양자화 파라미터 Qres ,i는, 버텍스 좌표 오차에 대한 양자화 스텝 폭이 변환 행렬의 평행이동부에 대한 것과 유사하도록 선택된다. 다른 예들에서, 양자화 파라미터 Qres ,i는 버텍스 좌표 오차에 대한 양자화 스텝 폭이 패턴 기하구조의 양자화에 대한 것과 유사하도록 선택될 수 있다.
다른 실시예에서, 양자화 파라미터는 양자화 스텝 폭이 최대 허용 가능한 오차 또는 임계값(eth)과 유사하게 되도록 선택될 수 있다. 즉, 양자화 비트 수는 다음과 같이 산출될 수 있다:
Figure 112014098208084-pct00011
Qres ,i는 또한 수학식 3 내지 수학식 5와는 상이하게 산출될 수 있다. 예를 들어, Qres ,i는 수학식 3 내지 수학식 5에서 산출된 값들로부터 상수에 의해 오프셋 또는 스케일링될 수 있다.
버텍스 i가 Vi = {xi, yi, zi}에 위치하고 재구성된 버텍스 i가 Vi' = {xi', yi', zi'}에 위치한다고 가정하면, 버텍스 좌표 오차는 다음과 같이 산출될 수 있다:
Figure 112014098208084-pct00012
예로서 Ex ,i를 이용하여, 양자화 또는 역양자화가 수행될 수 있는 방법을 설명한다.
오차들의 범위[-eest ,i, eest ,i]가 주어지면, 양자화 스텝 폭은 다음과 같이 산출될 수 있다:
Figure 112014098208084-pct00013
양자화 스텝 폭을 이용하여, 버텍스 좌표 오차 Ex ,i가 다음과 같은 양자화 오차로 양자화될 수 있다:
Figure 112014098208084-pct00014
디코더에서, 양자화된 오차 eq는 다음과 같은 역양자화된 오차 Ex , i'로 역양자화될 수 있다:
Figure 112014098208084-pct00015
마찬가지로, 다른 축들을 따라 버텍스 좌표 오차가 양자화 또는 역양자화될 수 있다. 상기에서는, 균일한 양자화 방식이 사용된다. 다른 양자화 방식들도 양자화 또는 역양자화를 위해 사용될 수 있다.
다른 실시예에서, 다른 축들(즉, Ex ,i, Ey ,i, Ez ,i)을 따라 버텍스 좌표 오차들이 상이할 수 있고, 그들이 다르게 양자화될 수 있다는 것을 고려한다. 예를 들어, 수학식 1의 |ΑΑ1|은 세 개의 축들에 투영될 수 있고, 그에 따라 각각의 축을 따라 좌표 오차의 상한이 산출될 수 있고, 따라서 각각의 축을 따른 좌표 오차에 대한 양자화 파라미터는 상이할 수 있다. 예를 들어, 좌표 오차에 대한 상한은 다음과 같이 각각의 개별 축에 대해 결정될 수 있다:
Figure 112014098208084-pct00016
따라서, 양자화 비트들은 각각의 축에 대해 각각 결정될 수 있다. 인코더 및 디코더 둘 다에 가용적인 정보에 기초하여, 예를 들어, 양자화 스텝 폭 또는 양자화 비트 수 등 양자화 파라미터를 결정함으로써, 버텍스 좌표 오차에 대하여 양자화 파라미터에 대한 명시적인 정보가 비트스트림에서 필요 없으므로, 압축 효율을 더욱 향상시킬 수 있다.
도 6은 예시적인 인스턴스 인코더(600)의 블록도를 도시한다. 장치(600)의 입력은 인코딩될 인스턴스(C), 대응하는 패턴(P), 및 재구성된 패턴(Ρ'), 변환 행렬 T, 품질 파라미터, 및 변환 행렬에 대한 양자화 파라미터를 포함할 수 있다.
변환 행렬 인코더(610)는 예를 들어, 변환 행렬의 상이한 부분들에 대한 양자화 파라미터들에 기초하여, 변환 행렬 T를 인코딩한다. 변환 행렬 디코더(630)는 인코더(610)의 출력을 디코딩하여 재구성된 변환 행렬 T'을 구한다. 대응하는 재구성된 패턴 P' 및 T'을 이용하여, 인스턴스는 3D 컴포넌트 재구성 모듈(640)에서 C' = T'P'으로서 재구성될 수 있다. 가산기(670)는 원래의 인스턴스와 재구성된 인스턴스 간의 차이들을 예를 들면, E = C - C'으로서 구한다.
재구성된 인스턴스 및 변환 행렬에 대한 입력 양자화 파라미터들에 기초하여, 버텍스 좌표 오차 추정기(650)는 예를 들어, 수학식 2를 이용하여 버텍스 좌표 오차의 상한(eest)을 추정한다. 상한(eest)이 임계값을 초과하면, 버텍스 좌표 오차 양자화 파라미터 추정기(660)는 버텍스 좌표 오차 인코더(680)에서 버텍스 좌표 오차를 양자화하기 위한 양자화 파라미터를 추정한다. 변환 행렬 인코더(610) 및 버텍스 좌표 오차 인코더(680)의 출력들은 비트스트림 어셈블러(620)에 의해 비트스트림으로 조립되는데, 이 비트스트림은 3D 모델의 전체 비트스트림을 형성하기 위해 패턴 또는 다른 컴포넌트들을 나타내는 다른 비트스트림들과 결합될 수 있다.
도 7은 예시적인 인스턴스 디코더(700)의 블록도를 도시한다. 장치(700)의 입력은 인스턴스(C)에 대응하는 비트스트림, 예를 들어, 방법(300)에 따라 또는 인코더(600)에 의해 생성되는 비트스트림, 및 대응하는 재구성된 패턴(P')을 포함할 수 있다. 엔트로피 디코더(710)는 예를 들어, 변환 행렬에 사용되는 양자화 파라미터들 및 양자화된 버텍스 좌표 오차들을 얻기 위해 비트스트림을 엔트로피 디코딩한다.
변환 행렬 디코더(720)는 예를 들어, 변환 행렬의 상이한 부분들에 대한 양자화 파라미터들에 기초하여, 변환 행렬 T'을 재구성한다. 대응하는 재구성된 패턴 P'과 T'을 이용하여, 인스턴스는 3D 컴포넌트 재구성 모듈(730)에서 C' = T'P'으로서 재구성될 수 있다.
재구성된 인스턴스 및 변환 행렬에 대한 양자화 파라미터들에 기초하여, 버텍스 좌표 오차 추정기(740)는 예를 들어, 수학식 2를 사용하여, 버텍스 좌표 오차의 상한(eest)을 추정한다. 상한(eest)이 임계값을 초과하면, 버텍스 좌표 오차 양자화 파라미터 추정기(750)는 버텍스 좌표 오차 디코더(760)에서 버텍스 좌표 오차를 디코딩하기 위해 사용될 양자화 파라미터를 추정한다. 디코딩된 버텍스 좌표 오차들 E'은 3D 컴포넌트 재구성 모듈(730)에서 처음 재구성된 인스턴스를 리파인(refine)하기 위해 사용된다. 특히, 가산기(770)는 디코딩된 좌표 오차들(E')과 처음 재구성된 인스턴스(C')를, 예를 들어, C"= C'+ E'으로서 합산한다. 일반적으로 C"은 처음 재구성된 인스턴스(C')보다 원래 인스턴스의 보다 정확한 표현을 제공한다.
도 8은 예시적인 3D 모델 인코더(800)의 블록도를 도시한다. 장치(800)의 입력은 3D 모델, 3D 모델을 인코딩하기 위한 품질 파라미터, 및 기타 메타데이터를 포함할 수 있다. 3D 모델은 먼저 반복 구조 검색 모듈(810)을 거치고, 이 모듈은 패턴들, 인스턴스들, 및 고유 컴포넌트들에 관하여 3D 모델을 출력한다. 패턴 인코더(820)가 패턴들을 압축하는 데 이용되고 고유 컴포넌트 인코더(850)가 고유 컴포넌트들을 인코딩하는 데 이용된다. 인스턴스들에 대해, 인스턴스 컴포넌트 정보가 유저 선택 모드에 기초하여 인코딩된다. 인스턴스 정보 그룹 모드가 선택되면, 인스턴스 정보가 그룹화된 인스턴스 정보 인코더(840)를 사용하여 인코딩된다; 그렇지 않으면, 그것은 기본 인스턴스 정보 인코더(830)를 사용하여 인코딩된다. 인스턴스 인코더(600)는 인코더(830 또는 840)에서 사용될 수 있다. 인코딩된 컴포넌트들은 반복 구조 검증기(860)에서 더 검증된다. 인코딩된 컴포넌트가 그의 품질 요건을 충족시키지 않는다면, 그것은 고유 컴포넌트 인코더(850)를 사용하여 인코딩될 것이다. 패턴들, 인스턴스들, 및 고유 컴포넌트들에 대한 비트스트림들은 비트스트림 어셈블러(870)에서 조립된다.
도 9는 예시적인 3D 모델 디코더(900)의 블록도를 도시한다. 장치(900)의 입력은 3D 모델의 비트스트림 예를 들면, 인코더(800)에 의해 생성된 비트스트림을 포함할 수 있다. 압축된 비트스트림에 있어서 패턴들에 관련된 정보는 패턴 디코더(920)에 의해 디코딩된다. 고유 컴포넌트들에 관련된 정보는 고유 컴포넌트 디코더(950)에 의해 디코딩된다. 인스턴스 정보의 디코딩은 또한 유저-선택 모드에 의존한다. 인스턴스 정보 그룹 모드가 선택되면, 인스턴스 정보는 그룹화된 인스턴스 정보 디코더(940)를 이용하여 디코딩된다; 그렇지 않으면, 그것은 기본 인스턴스 정보 디코더(930)를 이용하여 디코딩된다. 인스턴스 디코더(700)는 디코더(930 또는 940)에서 사용될 수 있다. 디코딩된 패턴들, 인스턴스 정보, 및 고유 컴포넌트들은 모델 재구성 모듈(960)에서 출력 3D 모델을 생성하기 위해 재구성된다.
도 10을 참조하면, 전술한 특징들 및 원리들이 적용될 수 있는, 데이터 전송 시스템(1000)이 도시되어 있다. 데이터 전송 시스템(1000)은 예를 들어, 위성, 케이블, 전화선, 또는 지상파 방송 등 각종 매체 중 임의의 것을 이용하여 신호를 송신하는 헤드-엔드 또는 전송 시스템일 수 있다. 데이터 전송 시스템(1000)은 또한 저장을 위해 신호를 제공하기 위해 사용될 수 있다. 전송은 인터넷 또는 어떤 다른 네트워크를 통해 제공될 수 있다. 데이터 전송 시스템(1000)은 예를 들어, 비디오 콘텐츠 및 3D 모델들 등 다른 콘텐츠를 생성 및 전달할 수 있다.
데이터 전송 시스템(1000)은 프로세서(1001)로부터 처리된 데이터 및 다른 정보를 수신한다. 일 실시예에서, 프로세서(1001)는 3D 모델을 생성한다. 프로세서(1001)는 또한 예를 들어, 3D 모델들이 어떤 품질로 인코딩되어야 하는지를 지시하는 메타 데이터를 데이터 전송 시스템(1000)에 제공할 수 있다.
데이터 전송 시스템 또는 장치(1000)는 인코더(1002), 및 인코딩된 신호를 송신할 수 있는 송신기(1004)를 포함한다. 인코더(1002)는 프로세서(1001)로부터 데이터 정보를 수신한다. 인코더(1002)는 인코딩된 신호(들)를 생성한다. 인코더(1002)의 엔트로피 인코딩 엔진은 예를 들면, 산술 코딩(arithmetic coding) 또는 허프만 코딩(Huffman coding)일 수 있다. 그러면 인코더(1002)는 예를 들어, 도 8에서 전술한 인코더(800)일 수 있다.
인코더(1202)는 예를 들면, 각종 정보를 수신하고 저장 또는 전송을 위해 구조화된 포맷으로 조립하기 위한 어셈블리 유닛을 포함하는 서브-모듈들을 포함할 수 있다. 각종 정보는 예를 들면, 코딩된 또는 코딩되지 않은 비디오, 및 코딩된 또는 코딩되지 않은 요소들을 포함할 수 있다. 어떤 구현들에서, 인코더(1202)는 프로세서(1201)를 포함하고, 따라서 프로세서(1201)의 동작을 수행한다.
송신기(1204)는 인코더(1202)로부터 인코딩된 신호(들)를 수신하고, 인코딩된 신호(들)를 하나 이상의 출력 신호에서 송신한다. 송신기(1204)는 예를 들어, 인코딩된 화상들 및/또는 이와 관련된 정보를 나타내는 하나 이상의 비트스트림을 갖는 프로그램 신호를 송신하도록 적응될 수 있다. 전형적인 송신기들은 예를 들면, 에러 정정 코딩 제공, 신호에서의 데이터의 인터리빙, 신호에서의 에너지의 랜덤화, 및, 변조기(1206)를 사용하여 하나 이상의 캐리어에의 신호의 변조 중 하나 이상 등의 기능들을 수행한다. 송신기(1204)는 안테나(도시되지 않음) 또는 안테나와의 인터페이스를 포함할 수 있다. 또한, 송신기(1204)의 구현들은 변조기(1206)에 한정될 수 있다.
데이터 전송 시스템(1200)은 또한 저장 유닛(1208)에 통신 가능하게 연결된다. 일 실시예에서, 저장 유닛(1208)은 인코더(1202)에 결합되고, 인코더(1202)로부터의 인코딩된 비트스트림을 저장한다. 다른 구현에서, 저장 유닛(1208)은 송신기(1204)에 결합되고, 송신기(1204)로부터의 비트스트림을 저장한다. 송신기(1204)로부터의 비트스트림은 예를 들어, 송신기(1204)에 의해 더 처리된 하나 이상의 인코딩된 비트스트림을 포함할 수 있다. 다른 구현들에서, 저장 유닛(1208)은 표준 DVD, Blu-Ray 디스크, 하드 드라이브 또는 어떤 다른 저장 장치를 중 하나 이상이다.
도 11을 참조하면, 전술한 특징들 및 원리들이 적용될 수 있는 데이터 수신 시스템(1100)이 도시된다. 데이터 수신 시스템(1100)은 예를 들어, 저장 디바이스, 위성, 케이블, 전화선, 또는 지상파 방송 등 각종 매체를 통해 신호들을 수신하도록 구성될 수 있다. 신호들은 인터넷 또는 어떤 다른 네트워크를 통해 수신될 수 있다.
데이터 수신 시스템(1100)은 예를 들어, 셀-폰, 컴퓨터, 셋-탑 박스, 텔레비전, 또는 인코딩된 비디오를 수신하고 예를 들어, 표시(예를 들어, 유저에의 표시)용, 처리용, 또는 저장용의 디코딩된 비디오 신호를 제공하는 다른 디바이스일 수 있다. 따라서, 데이터 수신 시스템(1100)은 예를 들어, 텔레비전의 스크린, 컴퓨터 모니터, 컴퓨터(저장, 처리, 또는 표시용), 또는 어떤 다른 저장, 처리, 또는 표시 디바이스에 그것의 출력을 제공할 수 있다.
데이터 수신 시스템(1100)은 데이터 정보를 수신 및 처리할 수 있고, 데이터 정보는 예를 들어, 3D 모델들을 포함할 수 있다. 데이터 수신 시스템 또는 장치(1100)는 예를 들면, 본 출원의 구현들에서 설명되는 신호들 등 인코딩된 신호를 수신하기 위한 수신기(1102)를 포함한다. 수신기(1102)는 예를 들어, 하나 이상의 3D 모델을 제공하는 신호, 또는 도 10의 데이터 전송 시스템(1000)으로부터 출력되는 신호를 수신할 수 있다.
수신기(1102)는 예를 들어, 인코딩된 화상들 또는 3D 모델들을 표현하는 복수 개의 비트스트림을 갖는 프로그램 신호를 수신하도록 구성될 수 있다. 전형적인 수신기들은 예를 들어, 변조되고 인코딩된 데이터 신호의 수신, 복조기(1104)를 사용하여 하나 이상의 캐리어로부터의 데이터 신호의 복조, 신호에서의 에너지의 디-랜덤화(de-randomizing), 신호에서의 데이터의 디-인터리빙(de-interleaving), 및 신호의 에러 정정 디코딩 중 하나 이상 등 기능들을 수행한다. 수신기(1102)는 안테나(도시되지 않음) 또는 안테나와의 인터페이스를 포함할 수 있다. 수신기(1102)의 구현들은 복조기(1104)에 한정될 수 있다.
데이터 수신 시스템(1100)은 디코더(1106)를 포함한다. 수신기(1102)는 수신된 신호를 디코더(1106)에 제공한다. 수신기(1102)에 의해 디코더(1106)에 제공된 신호는 하나 이상의 인코딩된 비트스트림을 포함할 수 있다. 디코더(1106)는 예를 들면 비디오 정보 또는 3D 모델들을 포함한 디코딩된 비디오 신호 등 디코딩된 신호를 출력한다. 디코더(1106)는 예를 들어, 도 9에 설명된 디코더(900)일 수 있다.
데이터 수신 시스템 또는 장치(1100)는 또한 통신가능하게 저장 유닛(1107)에 연결된다. 일 구현에서, 저장 유닛(1107)은 수신기(1102)에 연결되고, 수신기(1102)는 저장 유닛(1107)으로부터의 비트스트림에 액세스한다. 다른 구현에서는, 저장 유닛(1107)은 디코더(1106)에 연결되고, 디코더(1106)는 저장 유닛(1107)으로부터의 비트스트림에 액세스한다. 저장 유닛(1107)으로부터 액세스된 비트스트림은, 다른 구현들에 있어서, 하나 이상의 인코딩된 비트스트림을 포함한다. 저장 유닛(1107)은 다른 구현들에 있어서, 표준 DVD, Blu-Ray 디스크, 하드 드라이브, 또는 어떤 다른 저장 디바이스 중 하나 이상이다.
일 구현에서, 디코더(1106)로부터의 출력 데이터는 프로세서(1108)에 제공된다. 프로세서(1108)는, 일 구현에서, 3D 모델 재구성을 수행하기 위해 구성된 프로세서이다. 어떤 구현들에 있어서, 디코더(1106)는 프로세서(1108)를 포함하므로, 프로세서(1108)의 동작을 수행한다. 다른 구현들에서, 프로세서(1108)는 예를 들면, 셋톱 박스 또는 텔레비전 등 다운스트림 디바이스(downstream device)의 일부이다.
본 명세서에 기재된 구현들은 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림 또는 신호로 구현될 수 있다. 구현에 있어서 신호 형태의 맥락에서만 논의되었지만(예를 들어, 방법으로서만 논의됨), 논의된 특징들의 구현은 다른 형태들(예를 들어, 장치 또는 프로그램)로 또한 구현될 수 있다. 장치는 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 예를 들어, 방법들은 일반적으로 예를 들면, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그램가능 로직 디바이스를 포함하는 프로세싱 디바이스들을 지칭하는 예를 들어, 프로세서 등 장치에서 구현될 수 있다. 프로세서들은 또한 예를 들면, 컴퓨터, 셀폰, 휴대용/개인 휴대 정보 단말기(personal digital assistants: "PDAs"), 및 말단 유저들 사이의 정보의 통신을 용이하게 하는 다른 디바이스들 등 통신 디바이스들도 포함한다.
본 원리들의 "일 실시예" 또는 "실시예" 또는 "일 구현" 또는 "구현"뿐만 아니라 그것들의 다른 변형들에 대한 참조는 실시예와 관련하여 설명된 특정 특징, 구조, 및 특성 등이 본 원리들의 적어도 일 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전반에 걸쳐 여러 개소들에서 나타나는 "일 실시예에서", 또는 "실시예에서", 또는 "일 구현에서", 또는 "구현에서"라는 문구뿐만 아니라 임의의 다른 변형들의 등장은 반드시 모두 동일한 실시예를 참조하는 것은 아니다.
또한, 본 출원 또는 그것의 청구항들은 다양한 정보를 "결정"하는 것을 언급할 수 있다. 정보를 결정하는 것은 예를 들어, 정보의 추정, 정보의 산출, 정보의 예측, 또는 메모리로부터 정보의 검색 중 하나 이상을 포함할 수 있다.
또한, 본 출원 또는 그것의 청구항들은 각종 정보의 "액세스"를 언급할 수 있다. 정보의 "액세스"는 예를 들어, 정보의 수신, (예를 들어, 메모리로부터의) 정보의 검색, 정보의 저장, 정보의 처리, 정보의 송신, 정보의 이동, 정보의 복사, 정보의 소거, 정보의 산출, 정보의 결정, 정보의 예측, 또는 정보의 추정 중 하나 이상을 포함할 수 있다.
또한, 본 출원 또는 그것의 청구항들은 각종 정보의 "수신"을 언급할 수 있다. "액세스"와 마찬가지로, "수신"은 광범위한 용어로 의도된다. 정보의 수신은 예를 들어, 정보의 액세스, 또는 (예를 들어, 메모리로부터의) 정보의 검색 중 하나 이상을 포함할 수 있다. 또한, "수신"은 예를 들어, 정보의 저장, 정보의 처리, 정보의 송신, 정보의 이동, 정보의 복사, 정보의 소거, 정보의 산출, 정보의 결정, 정보의 예측, 또는 정보의 추정 등의 동작 동안 어떻게든 관련될 수 있다.
당업자에게 자명한 바와 같이, 구현들은 예를 들어, 저장 또는 송신될 수 있는 정보를 반송하기 위해 포맷화된 각종 신호들을 생성할 수 있다. 정보는 예를 들어, 방법을 수행하기 위한 명령어들 또는 전술한 구현들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 설명된 실시예의 비트스트림을 반송하도록 포맷화될 수 있다. 그러한 신호는 (예를 들어, 무선 주파수 스펙트럼의 일부를 사용하는) 예를 들어, 전자파로서 또는 기저대역 신호로서 포맷화될 수 있다. 포맷화는 예를 들어, 데이터 스트림의 인코딩, 및 인코딩된 데이터 스트림에 의한 캐리어의 변조를 포함할 수 있다. 신호가 반송하는 정보는 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 공지된 바와 같이, 신호는 각종 상이한 유선 또는 무선 링크를 통해 전송될 수 있다. 신호는 프로세서-판독가능 매체에 저장될 수 있다.

Claims (30)

  1. 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 방법으로서,
    패턴의 인스턴스에 대응하는 재구성된 인스턴스에 액세스하는 단계(340, 420) - 상기 패턴은 상기 3D 모델의 구조와 연관되고, 상기 인스턴스는 상기 패턴의 변환으로서 표현됨 -;
    상기 변환의 회전부(rotation part)를 양자화하기 위해 사용되는 제1 양자화 파라미터에 액세스하는 단계(310, 410) - 상기 재구성된 인스턴스는 상기 제1 양자화 파라미터에 응답하여 결정됨 -;
    (1) 상기 제1 양자화 파라미터 및 (2) 상기 재구성된 인스턴스의 대응하는 버텍스와 상기 재구성된 인스턴스의 회전 중심 사이의 거리 중 적어도 하나에 응답하여, 상기 인스턴스의 버텍스와 상기 재구성된 인스턴스의 대응하는 버텍스 사이의 버텍스 좌표 오차의 상한을 추정하는 단계;
    상기 추정된 상한에 응답하여 상기 버텍스 좌표 오차를 양자화하기 위한 제2 양자화 파라미터를 결정하는 단계; 및
    상기 제2 양자화 파라미터에 기초하여, 상기 인스턴스의 버텍스와 상기 재구성된 인스턴스의 대응하는 버텍스 사이의 버텍스 좌표 오차의 인코딩 또는 디코딩을 수행하는 단계(350, 430)
    를 포함하는, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 방법.
  2. 제1항에 있어서,
    상기 수행하는 단계는, (1) 상기 제1 양자화 파라미터 및 (2) 상기 재구성된 인스턴스의 대응하는 버텍스와 상기 재구성된 인스턴스의 회전 중심 사이의 거리 중 적어도 하나에 응답하여, 상기 버텍스 좌표 오차가 인코딩 또는 디코딩될 필요가 있는지를 결정하는 단계(350, 430)를 포함하는, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 상한은
    Figure 112018068422544-pct00033
    에 대응하고, 여기서 n은 상기 회전부에 대한 상기 제1 양자화 파라미터에 대응하고, r은 상기 재구성된 인스턴스의 대응하는 버텍스와 상기 재구성된 인스턴스의 회전 중심 사이의 거리인, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 방법.
  5. 삭제
  6. 삭제
  7. 삭제
  8. 제1항에 있어서,
    상기 제2 양자화 파라미터는 최대 허용 가능한 오차에 추가로 응답하여 결정되는, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 방법.
  9. 제8항에 있어서,
    상기 최대 허용 가능한 오차는, 상기 변환의 평행이동부(translation part)의 양자화 또는 상기 패턴의 기하구조의 양자화와 연관된 양자화 오차에 응답하여 결정되는, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 방법.
  10. 제9항에 있어서,
    상기 변환의 평행이동부의 양자화와 연관된 양자화 오차는, 상기 평행이동부의 양자화를 위한 제3 양자화 파라미터 및 상기 평행이동부에 대한 범위에 응답하여 결정되는, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 방법.
  11. 제10항에 있어서,
    상기 제2 양자화 파라미터는
    Figure 112018068422544-pct00034
    의 함수이고, 여기서 Qtranslation은 상기 평행이동부의 양자화를 위한 제3 양자화 파라미터이고, range는 상기 평행이동부에 대한 최대 범위이고, eest는 상기 추정된 상한인, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 방법.
  12. 삭제
  13. 제1항에 있어서,
    상기 인스턴스의 버텍스와 상기 재구성된 인스턴스의 대응하는 버텍스 사이의 버텍스 좌표 오차를 결정하는 단계(355);
    상기 제2 양자화 파라미터에 응답하여 상기 결정된 버텍스 좌표 오차를 양자화하여, 양자화된 오차를 형성하는 단계(365); 및
    상기 양자화된 오차를 상기 비트스트림으로 인코딩하는 단계(370)
    를 더 포함하는, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 방법.
  14. 제1항에 있어서,
    상기 비트스트림으로부터 상기 인스턴스의 버텍스와 상기 재구성된 인스턴스의 대응하는 버텍스 사이의 버텍스 좌표 오차를 결정하는 단계(450);
    상기 제2 양자화 파라미터에 응답하여 상기 결정된 버텍스 좌표 오차를 역양자화하여, 역양자화된 오차를 형성하는 단계(460); 및
    상기 역양자화된 오차에 응답하여 상기 재구성된 인스턴스를 리파인(refining)하는 단계(470)
    를 더 포함하는, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 방법.
  15. 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 장치(800, 900)로서,
    패턴의 인스턴스에 대응하는 재구성된 인스턴스를 재구성하는 3D 컴포넌트 재구성 모듈(640, 730) - 상기 패턴은 상기 3D 모델의 구조와 연관되고, 상기 인스턴스는 상기 패턴의 변환으로서 표현되고, 상기 재구성은 상기 변환의 회전부를 양자화하기 위해 사용되는 제1 양자화 파라미터에 응답하여 이루어짐 -;
    (1) 상기 제1 양자화 파라미터 및 (2) 상기 재구성된 인스턴스의 대응하는 버텍스와 상기 재구성된 인스턴스의 회전 중심 사이의 거리 중 적어도 하나에 응답하여, 특정 축을 따라, 상기 인스턴스의 버텍스와 상기 재구성된 인스턴스의 대응하는 버텍스 사이의 버텍스 좌표 오차의 상한을 추정하는 버텍스 좌표 오차 추정기(650, 740);
    상기 특정 축을 따른 상기 버텍스 좌표 오차에 대한 추정된 상한에 응답하여 상기 특정 축을 따른 상기 버텍스 좌표 오차를 양자화하기 위한 제2 양자화 파라미터를 결정하는 버텍스 좌표 오차 양자화 파라미터 추정기(660, 750); 및
    상기 제2 양자화 파라미터에 기초하여, 상기 인스턴스의 버텍스와 상기 재구성된 인스턴스의 대응하는 버텍스 사이의 버텍스 좌표 오차를 각각 인코딩 또는 디코딩하는 버텍스 좌표 오차 인코더(680) 또는 버텍스 좌표 오차 디코더(760)
    를 포함하는, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 장치.
  16. 제15항에 있어서,
    상기 버텍스 좌표 오차 추정기(650, 740)는, 상기 제1 양자화 파라미터, 및 상기 재구성된 인스턴스의 대응하는 버텍스와 상기 재구성된 인스턴스의 회전 중심 사이의 거리 중 적어도 하나에 응답하여, 상기 버텍스 좌표 오차가 인코딩 또는 디코딩될 필요가 있는지를 결정하는, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 장치.
  17. 삭제
  18. 제15항에 있어서,
    상기 상한은
    Figure 112018068422544-pct00035
    에 대응하고, 여기서 n은 상기 회전부에 대한 상기 제1 양자화 파라미터에 대응하고, r은 상기 재구성된 인스턴스의 대응하는 버텍스와 상기 재구성된 인스턴스의 회전 중심 사이의 거리인, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 장치.
  19. 삭제
  20. 삭제
  21. 삭제
  22. 제15항에 있어서,
    상기 제2 양자화 파라미터는 최대 허용 가능한 오차에 추가로 응답하여 결정되는, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 장치.
  23. 제22항에 있어서,
    상기 버텍스 좌표 오차 양자화 파라미터 추정기(660, 750)는, 상기 변환의 평행이동부의 양자화 또는 상기 패턴의 기하구조의 양자화와 연관된 양자화 오차에 응답하여 상기 최대 허용 가능한 오차를 결정하는, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 장치.
  24. 제23항에 있어서,
    상기 버텍스 좌표 오차 양자화 파라미터 추정기(660, 750)는, 상기 변환의 평행이동부의 양자화를 위한 제3 양자화 파라미터 및 상기 평행이동부에 대한 범위에 응답하여 상기 평행이동부의 양자화와 연관된 양자화 오차를 결정하는, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 장치.
  25. 제24항에 있어서,
    상기 제2 양자화 파라미터는
    Figure 112018068422544-pct00036
    의 함수이고, 여기서 Qtranslation은 상기 평행이동부의 양자화를 위한 제3 양자화 파라미터이고, range는 상기 평행이동부에 대한 최대 범위이고, eest는 상기 추정된 상한인, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 장치.
  26. 삭제
  27. 제15항에 있어서,
    상기 인스턴스의 버텍스와 상기 재구성된 인스턴스의 대응하는 버텍스 사이의 버텍스 좌표 오차를 결정하는 가산기(670); 및
    상기 제2 양자화 파라미터에 응답하여 상기 결정된 버텍스 좌표 오차를 인코딩하는 버텍스 좌표 오차 인코더(680)
    를 더 포함하는, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 장치.
  28. 제15항에 있어서,
    상기 비트스트림으로부터 상기 인스턴스의 버텍스와 상기 재구성된 인스턴스의 대응하는 버텍스 사이의 버텍스 좌표 오차를 결정하는 엔트로피 디코더(710);
    상기 제2 양자화 파라미터에 응답하여 상기 결정된 버텍스 좌표 오차를 디코딩하여, 역양자화된 오차를 형성하는 버텍스 좌표 오차 디코더(760); 및
    상기 역양자화된 오차에 응답하여 상기 재구성된 인스턴스를 리파인하는 가산기(770)
    를 더 포함하는, 3D 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 장치.
  29. 삭제
  30. 삭제
KR1020147028909A 2012-04-18 2012-04-18 3d 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 방법 및 장치 KR101958844B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/074286 WO2013155687A1 (en) 2012-04-18 2012-04-18 Vertex correction method and apparatus for rotated three-dimensional (3d) components

Publications (2)

Publication Number Publication Date
KR20140146611A KR20140146611A (ko) 2014-12-26
KR101958844B1 true KR101958844B1 (ko) 2019-03-18

Family

ID=49382806

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147028909A KR101958844B1 (ko) 2012-04-18 2012-04-18 3d 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 방법 및 장치

Country Status (7)

Country Link
US (1) US9621924B2 (ko)
EP (1) EP2839439B1 (ko)
JP (1) JP6019215B2 (ko)
KR (1) KR101958844B1 (ko)
CN (1) CN104221057B (ko)
BR (1) BR112014025640B1 (ko)
WO (1) WO2013155687A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6246233B2 (ja) * 2013-01-10 2017-12-13 トムソン ライセンシングThomson Licensing 頂点誤差訂正のための方法および装置
EP4250235A1 (en) * 2022-03-25 2023-09-27 Beijing Xiaomi Mobile Software Co., Ltd. Encoding/decoding positions of points of a point cloud emcompassed in a cuboid volume

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5905502A (en) 1995-08-04 1999-05-18 Sun Microsystems, Inc. Compression of three-dimensional graphics data using a generalized triangle mesh format utilizing a mesh buffer
US6075901A (en) 1998-12-04 2000-06-13 France Telecom Method and system for predictive encoding of arrays of data
US6204854B1 (en) 1998-12-04 2001-03-20 France Telecom Method and system for encoding rotations and normals in 3D generated scenes
US20030081849A1 (en) 2001-07-16 2003-05-01 Smith Joshua Edward Method and system for creating seamless textured three dimensional models of objects
US6891535B2 (en) 2001-03-16 2005-05-10 Mitsubishi Electric Research Labs, Inc. System and method for modeling graphics objects
US6947045B1 (en) 2002-07-19 2005-09-20 At&T Corporation Coding of animated 3-D wireframe models for internet streaming applications: methods, systems and program products
US20070216711A1 (en) 2006-03-14 2007-09-20 Microsoft Corporation Microsoft Patent Group Abstracting transform representations in a graphics API
US7289868B2 (en) 2005-08-22 2007-10-30 Hewlett-Packard Development Company, L.P. System and method for calculating a shift value between pattern instances
US20080031325A1 (en) 2006-08-03 2008-02-07 Yingyong Qi Mesh-based video compression with domain transformation
US20090184956A1 (en) 2008-01-21 2009-07-23 Samsung Electronics Co., Ltd. Method, medium, and system for compressing and decoding mesh data in three-dimensional mesh model
US20110285708A1 (en) 2009-02-06 2011-11-24 Qu Qing Chen Method and apparatus for encoding 3d mesh models, and method and apparatus for decoding encoded 3d mesh models
US20120075302A1 (en) 2009-06-10 2012-03-29 Thomson Licensing Llc Method for encoding/decoding a 3d mesh model that comprises one or more components

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5736987A (en) * 1996-03-19 1998-04-07 Microsoft Corporation Compression of graphic data normals
US5870220A (en) * 1996-07-12 1999-02-09 Real-Time Geometry Corporation Portable 3-D scanning system and method for rapid shape digitizing and adaptive mesh generation
KR19990002045A (ko) 1997-06-18 1999-01-15 양승택 예측 잉여신호 벡터 양자화를 이용한 3차원 그래픽 모델의 정점 위치 다단계 압축 방법
JP2909625B1 (ja) * 1998-06-17 1999-06-23 株式会社超高速ネットワーク・コンピュータ技術研究所 三次元動画データ圧縮方法および三次元動画データ転送方法
AU5484100A (en) 1999-06-30 2001-01-22 Intel Corporation 3d image coding
KR100292803B1 (ko) 1999-07-06 2001-06-15 정선종 3차원 메쉬모델의 정점위치 압축방법 및 장치
JP2001231037A (ja) 2000-02-17 2001-08-24 Casio Comput Co Ltd 画像処理システム、画像処理装置、及び記憶媒体
JP2004102834A (ja) 2002-09-11 2004-04-02 Ricoh Co Ltd 三角形メッシュのデータ構造、三角形メッシュデータ圧縮方法および伸張方法、プログラム、記録媒体およびシステム
KR20060088136A (ko) * 2005-02-01 2006-08-04 (주) 써니그라피 3차원 사각 메쉬의 연결 정보 데이터 단순 압축및 해제의 기술.
JP2006277772A (ja) * 2006-07-10 2006-10-12 Sony Computer Entertainment Inc 情報処理装置、情報処理方法、情報処理プログラム、記録媒体、及び情報提供装置
CN101511017B (zh) * 2009-03-20 2011-02-09 西安电子科技大学 基于网格的立体视频空间可分级编码器及其编码方法
WO2010149492A1 (en) * 2009-06-23 2010-12-29 Thomson Licensing Compression of 3d meshes with repeated patterns
CN101666625B (zh) * 2009-09-30 2012-08-08 长春理工大学 畸变误差无模型校正方法
KR101637624B1 (ko) * 2009-10-15 2016-07-07 톰슨 라이센싱 메시 모델을 인코딩하는 방법 및 장치, 인코딩된 메시 모델, 그리고 메시 모델을 디코딩하는 방법 및 장치
WO2012000132A1 (en) * 2010-06-30 2012-01-05 Thomson Broadband R & D (Beijing) Co., Ltd. Method and apparatus for detecting repetitive structures in 3d mesh models
JP5735114B2 (ja) * 2010-09-30 2015-06-17 トムソン ライセンシングThomson Licensing エンコード方法、エンコード装置、デコード方法及びデコード装置
CN102509339B (zh) 2011-10-10 2014-04-02 武汉大学 一种带纹理约束的三维模型顶点聚类简化方法
US8736603B2 (en) * 2011-11-02 2014-05-27 Visual Technology Services Limited Compression of texture rendered wire mesh models
WO2013113170A1 (en) 2012-02-03 2013-08-08 Thomson Licensing System and method for error controllable repetitive structure discovery based compression

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5905502A (en) 1995-08-04 1999-05-18 Sun Microsystems, Inc. Compression of three-dimensional graphics data using a generalized triangle mesh format utilizing a mesh buffer
US6075901A (en) 1998-12-04 2000-06-13 France Telecom Method and system for predictive encoding of arrays of data
US6204854B1 (en) 1998-12-04 2001-03-20 France Telecom Method and system for encoding rotations and normals in 3D generated scenes
US6891535B2 (en) 2001-03-16 2005-05-10 Mitsubishi Electric Research Labs, Inc. System and method for modeling graphics objects
US20030081849A1 (en) 2001-07-16 2003-05-01 Smith Joshua Edward Method and system for creating seamless textured three dimensional models of objects
US6947045B1 (en) 2002-07-19 2005-09-20 At&T Corporation Coding of animated 3-D wireframe models for internet streaming applications: methods, systems and program products
US7289868B2 (en) 2005-08-22 2007-10-30 Hewlett-Packard Development Company, L.P. System and method for calculating a shift value between pattern instances
US20070216711A1 (en) 2006-03-14 2007-09-20 Microsoft Corporation Microsoft Patent Group Abstracting transform representations in a graphics API
US20080031325A1 (en) 2006-08-03 2008-02-07 Yingyong Qi Mesh-based video compression with domain transformation
US20090184956A1 (en) 2008-01-21 2009-07-23 Samsung Electronics Co., Ltd. Method, medium, and system for compressing and decoding mesh data in three-dimensional mesh model
US8310480B2 (en) 2008-01-21 2012-11-13 Samsung Electronics Co., Ltd. Method, medium, and system for compressing and decoding mesh data in three-dimensional mesh model
US20110285708A1 (en) 2009-02-06 2011-11-24 Qu Qing Chen Method and apparatus for encoding 3d mesh models, and method and apparatus for decoding encoded 3d mesh models
US20120075302A1 (en) 2009-06-10 2012-03-29 Thomson Licensing Llc Method for encoding/decoding a 3d mesh model that comprises one or more components

Also Published As

Publication number Publication date
US20150055882A1 (en) 2015-02-26
EP2839439B1 (en) 2024-02-28
CN104221057A (zh) 2014-12-17
CN104221057B (zh) 2018-01-02
JP6019215B2 (ja) 2016-11-02
JP2015520885A (ja) 2015-07-23
KR20140146611A (ko) 2014-12-26
WO2013155687A1 (en) 2013-10-24
EP2839439A1 (en) 2015-02-25
BR112014025640B1 (pt) 2021-08-10
US9621924B2 (en) 2017-04-11
BR112014025640A2 (pt) 2017-06-20
EP2839439A4 (en) 2016-06-01

Similar Documents

Publication Publication Date Title
US11727548B2 (en) Method and apparatus for encoding and decoding HDR images
US9930329B2 (en) Video encoding and decoding based on image refinement
KR20140116114A (ko) 3차원 (3d) 모델들의 텍스처 정보를 압축하는 방법 및 장치
EP2943936B1 (en) Method and apparatus for vertex error correction
KR101958844B1 (ko) 3d 모델을 표현하는 비트스트림을 생성 또는 디코딩하기 위한 방법 및 장치
JP6093847B2 (ja) 反復構造の発見に基づく3dモデル圧縮のための方法及び装置
EP2927865A1 (en) Method and apparatus for encoding and decoding HDR images

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant