KR20230146629A - 메시 압축을 위한 경계 지오메트리 정보의 예측 코딩 - Google Patents
메시 압축을 위한 경계 지오메트리 정보의 예측 코딩 Download PDFInfo
- Publication number
- KR20230146629A KR20230146629A KR1020237031887A KR20237031887A KR20230146629A KR 20230146629 A KR20230146629 A KR 20230146629A KR 1020237031887 A KR1020237031887 A KR 1020237031887A KR 20237031887 A KR20237031887 A KR 20237031887A KR 20230146629 A KR20230146629 A KR 20230146629A
- Authority
- KR
- South Korea
- Prior art keywords
- geometry
- coordinates
- patch
- geometric
- boundary
- Prior art date
Links
- 238000007906 compression Methods 0.000 title description 54
- 230000006835 compression Effects 0.000 title description 52
- 238000000034 method Methods 0.000 claims abstract description 79
- 238000004891 communication Methods 0.000 claims description 19
- 238000013139 quantization Methods 0.000 claims description 17
- 238000005070 sampling Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 21
- 230000033001 locomotion Effects 0.000 description 20
- 239000013598 vector Substances 0.000 description 14
- 230000006837 decompression Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 238000013507 mapping Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000009499 grossing Methods 0.000 description 9
- 230000002123 temporal effect Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012856 packing Methods 0.000 description 6
- 241000023320 Luma <angiosperm> Species 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/28—Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
- G06V20/647—Three-dimensional objects by matching two-dimensional images to three-dimensional objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20164—Salient point detection; Corner detection
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 개시내용은 경계 지오메트리 정보의 예측 코딩을 통해 3D 메시를 인코딩 또는 디코딩하기 위한 방법들 및 시스템들에 관한 것이다. 이 예시적인 디코딩 방법은: 3차원 메시에 대한 지오메트리 패치를 포함하는 코딩된 비트스트림을 수신하는 단계; 3차원 메시 내의 경계 정점에 대한 지오메트리 좌표 세트에 대응하는 포인트 세트를 포함하는 지오메트리 패치에 대한 재구성된 지오메트리 이미지를, 코딩된 비트스트림으로부터 추출하는 단계; 지오메트리 좌표 세트에 기초하여, 경계 정점에 대한 3D 지오메트리 좌표를 도출하는 단계; 경계 정점에 대한 예측 잔차를 획득하는 단계; 및 디바이스에 의해, 도출된 3D 지오메트리 좌표 및 예측 잔차에 기초하여, 경계 정점의 지오메트리 정보를 재구성하는 단계를 포함한다.
Description
참조에 의한 포함
본 출원은 2022년 3월 15일 출원된 미국 가출원번호 제63/319,976호에 기초하고 그 우선권을 주장하며, 그 전체내용이 참조에 의해 본 명세서에서 포함된다. 본 출원은 또한, 2022년 10월 26일 출원된 미국 특허 출원 제17/973,792호에 기초하고 그 우선권을 주장하며, 그 전체내용이 참조에 의해 본 명세서에서 포함된다.
기술 분야
본 개시내용은 일반적으로 메시 인코딩(또는 압축) 및 메시 디코딩(또는 압축해제) 프로세스들, 특히 메시 압축을 위한 경계 지오메트리 정보의 예측 코딩을 위한 방법들 및 시스템들에 관한 것이다.
본 명세서에서 제공되는 본 배경 설명은 본 개시내용의 정황을 일반적으로 제공하기 위한 것이다. 본 배경 섹션에서 연구가 설명되는 한, 현재 거명된 발명자들의 연구뿐만 아니라 본 출원의 출원 시점에서의 종래 기술로서 달리 자격이 주어지지 않을 수 있는 설명의 양태들은, 명시적으로든 묵시적으로든 본 개시내용에 대한 종래 기술로서 인정되지 않는다.
현실 세계의 객체들, 환경들 등을 3차원(3D) 공간에서 캡처, 표현 및 시뮬레이션하기 위한 다양한 기술이 개발되고 있다. 세상의 3D 표현들은 더욱 몰입감 있는 형태들의 대화형 커뮤니케이션들을 가능하게 한다. 객체들 및 환경들의 예시적인 3D 표현들로는, 포인트 클라우드들과 메시들이 포함되지만 이것으로 제한되는 것은 아니다. 객체들과 환경들의 일련의 3D 표현은 비디오 시퀀스를 형성할 수 있다. 객체들 및 환경들의 3D 표현 시퀀스 내의 중복성들 및 상관들은 이러한 비디오 시퀀스를 더욱 컴팩트한 디지털 형태로 압축 및 코딩하는데 이용될 수 있다.
본 개시내용은 일반적으로 3D 메시의 코딩(압축) 및 디코딩(압축해제)에 관한 것으로, 구체적으로 메시 압축을 위한 경계 지오메트리 정보의 예측 코딩에 관한 것이다.
본 개시내용은 3차원 메시에 대한 지오메트리 패치를 디코딩하기 위한 방법의 실시예를 설명한다. 이 방법은, 디바이스에 의해, 3차원 메시에 대한 지오메트리 패치를 포함하는 코딩된 비트스트림을 수신하는 단계를 포함한다. 이 디바이스는 명령어들을 저장하는 메모리 및 메모리와 통신하는 프로세서를 포함한다. 이 방법은 또한, 디바이스에 의해, 코딩된 비트스트림으로부터, 3차원 메시 내의 경계 정점에 대한 지오메트리 좌표 세트에 대응하는 포인트 세트를 포함하는 지오메트리 패치에 대한 재구성된 지오메트리 이미지를 추출하는 단계; 디바이스에 의해, 지오메트리 좌표 세트에 기초하여, 경계 정점에 대한 3D 지오메트리 좌표를 도출하는 단계; 디바이스에 의해, 경계 정점에 대한 예측 잔차를 획득하는 단계; 및 디바이스에 의해, 도출된 3D 지오메트리 좌표 및 예측 잔차에 기초하여, 경계 정점의 지오메트리 정보를 재구성하는 단계를 포함한다.
본 개시내용은 3차원 메시에 대한 지오메트리 패치를 디코딩하기 위한 방법들의 또 다른 실시예를 설명한다. 이 방법은, 디바이스에 의해, 코딩된 비트스트림을 수신하는 단계를 포함한다. 이 디바이스는 명령어들을 저장하는 메모리 및 메모리와 통신하는 프로세서를 포함한다. 이 방법은 또한, 디바이스에 의해, 코딩된 비트스트림으로부터, 경계 정점에 대한 복수의 지오메트리 예측을 추출하는 단계 ― 각각의 지오메트리 예측은 예측된 지오메트리 좌표 세트를 포함함 ―; 디바이스에 의해, 복수의 지오메트리 예측에 기초하여 경계 정점에 대한 예측된 지오메트리 값을 결정하는 단계; 디바이스에 의해, 경계 정점에 대한 예측 잔차를 획득하는 단계; 및 디바이스에 의해, 예측된 지오메트리 값 및 예측 잔차에 기초하여 경계 정점의 지오메트리 정보를 재구성하는 단계를 포함한다.
또 다른 양태에 따르면, 본 개시내용의 실시예는 3D 메시를 인코딩 또는 디코딩하기 위한 장치를 제공한다. 이 장치는 명령어들을 저장하는 메모리; 및 메모리와 통신하는 프로세서를 포함한다. 프로세서가 명령어들을 실행할 때, 프로세서는 장치로 하여금 상기 방법들을 수행하게 하도록 구성된다.
또 다른 양태에서, 본 개시내용의 실시예는 비디오 디코딩 및/또는 인코딩을 위해 컴퓨터에 의해 실행될 때 컴퓨터로 하여금 상기 방법들을 수행하게 하는 명령어들을 저장하는 비일시적인 컴퓨터 판독가능한 매체들을 제공한다.
상기 및 다른 양태들과 그들의 구현들은, 도면들, 설명들, 및 청구항들에 더 상세하게 설명되어 있다.
개시된 주제의 추가적인 피처들, 성질, 및 다양한 이점들은 이하의 상세한 설명 및 첨부된 도면들로부터 더 명백해질 것이다:
도 1은 한 실시예에 따른 통신 시스템의 간소화된 블록도의 개략도이다;
도 2는 한 실시예에 따른 스트리밍 시스템의 간소화된 블록도의 개략도이다;
도 3은 일부 실시예에 따른 메시 프레임들을 인코딩하기 위한 인코더의 블록도를 도시한다;
도 4는 일부 실시예에 따른 메시 프레임들에 대응하는 압축된 비트스트림을 디코딩하기 위한 디코더의 블록도를 도시한다;
도 5는 한 실시예에 따른 비디오 디코더의 간소화된 블록도의 개략도이다;
도 6은 한 실시예에 따른 비디오 인코더의 간소화된 블록도의 개략도이다;
도 7은 일부 실시예에 따른 메시 프레임들을 인코딩하기 위한 인코더의 블록도를 도시한다;
도 8은 본 개시내용의 일부 실시예에 따른 메시 압축을 위한 프레임워크의 도면을 도시한다;
도 9는 본 개시내용의 일부 실시예에 따른 메시 압축을 위한 프레임워크의 또 다른 도면을 도시한다;
도 10은 본 개시내용의 일부 실시예에 따른 메시 압축을 위한 프레임워크의 또 다른 도면을 도시한다;
도 11은 일부 실시예에 따른 프로세스 예를 약술하는 플로차트를 도시한다;
도 12는 한 실시예에 따른 컴퓨터 시스템의 개략도이다.
도 1은 한 실시예에 따른 통신 시스템의 간소화된 블록도의 개략도이다;
도 2는 한 실시예에 따른 스트리밍 시스템의 간소화된 블록도의 개략도이다;
도 3은 일부 실시예에 따른 메시 프레임들을 인코딩하기 위한 인코더의 블록도를 도시한다;
도 4는 일부 실시예에 따른 메시 프레임들에 대응하는 압축된 비트스트림을 디코딩하기 위한 디코더의 블록도를 도시한다;
도 5는 한 실시예에 따른 비디오 디코더의 간소화된 블록도의 개략도이다;
도 6은 한 실시예에 따른 비디오 인코더의 간소화된 블록도의 개략도이다;
도 7은 일부 실시예에 따른 메시 프레임들을 인코딩하기 위한 인코더의 블록도를 도시한다;
도 8은 본 개시내용의 일부 실시예에 따른 메시 압축을 위한 프레임워크의 도면을 도시한다;
도 9는 본 개시내용의 일부 실시예에 따른 메시 압축을 위한 프레임워크의 또 다른 도면을 도시한다;
도 10은 본 개시내용의 일부 실시예에 따른 메시 압축을 위한 프레임워크의 또 다른 도면을 도시한다;
도 11은 일부 실시예에 따른 프로세스 예를 약술하는 플로차트를 도시한다;
도 12는 한 실시예에 따른 컴퓨터 시스템의 개략도이다.
본 명세서 및 청구항들 전체에서, 용어들은 명시적으로 언급된 의미 이외에 문맥상 시사되거나 암시되는 미묘한 의미들을 가질 수 있다. 본 명세서에서 사용된 "한 실시예에서" 또는 "일부 실시예에서"라는 문구가 반드시 동일한 실시예를 지칭하는 것은 아니며, 본 명세서에서 사용된 "또 다른 실시예에서" 또는 "다른 실시예들에서"라는 문구가 반드시 상이한 실시예를 지칭하는 것은 아니다. 마찬가지로, 본 명세서에 사용된 "한 구현에서" 또는 "일부 구현에서"라는 문구는 반드시 동일한 구현을 지칭하는 것은 아니며, 본 명세서에 사용된 "또 다른 구현에서" 또는 "다른 구현들에서"라는 문구는 반드시 상이한 구현을 지칭하는 것은 아니다. 예를 들어, 청구된 주제는, 전체적으로 또는 부분적으로, 예시적인 실시예들/구현들의 조합들을 포함하기 위한 의도이다.
일반적으로, 용어는 적어도 부분적으로는 문맥에서의 사용으로부터 이해될 수 있다. 예를 들어, 본 명세서에 사용된 "및", "또는" 또는 "및/또는"과 같은 용어들은, 이러한 용어들이 사용되는 문맥에 적어도 부분적으로 의존할 수 있는 다양한 의미를 포함할 수 있다. 전형적으로, "또는"이, A, B, 또는 C와 같은 목록과 연관되어 사용되는 경우, 본 명세서에서 배타적인 의미로 사용되는 A, B 또는 C뿐만 아니라, 본 명세서에서 포괄적인 의미로 사용되는 A, B 및 C를 의미하는 것으로 의도된다. 또한, 본 명세서에서 사용되는 "하나 이상" 또는 "적어도 하나"라는 용어는, 적어도 부분적으로 문맥에 따라, 임의의 피처, 구조, 또는 특성을 단수의 의미로 기술하기 위해 사용될 수 있거나, 피처들, 구조들 또는 특성들의 조합들을 복수의 의미로 기술하기 위해 사용될 수 있다. 마찬가지로, 단수 표현("a", "an" 또는 "the")과 같은 용어들은, 적어도 부분적으로 문맥에 따라, 단수 용법을 전달하거나 복수 용법을 전달하는 것으로 이해될 수 있다. 또한, "에 기초하여" 또는 "에 의해 결정된"이라는 용어는 반드시 배타적인 세트의 인자들을 전달하려는 의도가 아닌 것으로 이해될 수 있으며, 대신에, 적어도 부분적으로는 문맥에 따라, 반드시 명시적으로 기술되지 않은 추가 인자들의 존재를 허용할 수 있다.
3D 캡처, 3D 모델링, 및 3D 렌더링 등에서의 진보와 같은 3D 미디어 처리에서의 기술적 개발들은 몇몇 플랫폼들 및 디바이스들에 걸쳐 3D 콘텐츠의 유비쿼터스 생성을 촉진하였다. 이러한 3D 콘텐츠들은, 예를 들어 몰입형 시청/렌더링 및 인터랙티브 경험을 제공하는 다양한 형태의 미디어를 생성하기 위해 처리될 수 있는 정보를 포함한다. 3D 콘텐츠들의 응용 분야들은, 가상 현실, 증강 현실, 메타버스 상호작용들, 게이밍, 몰입형 화상 회의, 로봇 공학, 컴퓨터-보조형 설계(CAD) 등을 포함하지만 이것으로 제한되지 않고 풍부하다. 본 개시내용의 한 양태에 따르면, 몰입형 경험을 개선하기 위해, 3D 모델들은 점점 더 정교해지고 있고, 3D 모델들의 생성 및 소비는, 데이터 스토리지, 데이터 전송 자원들, 데이터 처리 자원들과 같은, 상당한 양의 데이터 자원들을 요구한다.
(이미지들과 같은) 2D 픽셀 어레이들의 형태의 데이터세트들에 의해 일반적으로 표현되는 전통적인 2차원(2D) 콘텐츠와 비교하여, 3차원 풀-해상도 픽셀화(pixilation)를 갖는 3D 콘텐츠는 엄청나게 자원 집약적일 수 있지만, 그럼에도 불구하고 대부분의 실제 응용들이 아니라면 많은 응용들에서 불필요하다. 본 개시내용의 일부 양태에 따르면, 대부분의 3D 몰입형 응용 분야에서, 3D 콘텐츠의 데이터 집약적 표현들이 덜 이용될 수 있다. 예를 들어, 대부분의 응용 분야에서, 3D 장면(LIDAR 디바이스들과 같은 센서들로 캡처한 실제 장면 또는 소프트웨어 도구들로 생성된 애니메이트된 3D 장면) 내의 객체들의 체적 정보(volumetric information)보다는 지형 정보(topographical information)만 필요할 수 있다. 따라서, 3D 객체들과 3D 장면들을 표현하기 위해 더 효율적인 형태들의 데이터세트들이 이용될 수 있다. 예를 들어, 3D 장면들 내의 3D 객체들과 같은, 몰입형 3D 콘텐츠를 표현하기 위해 3D 메시들이 3D 모델들의 유형으로서 이용될 수 있다.
하나 이상의 객체의 메시(대안적으로 메시 모델이라고 함)는 정점들의 집합을 포함할 수 있다. 정점들은 서로 연결되어 에지들을 형성할 수 있다. 에지들은 더 연결되어 면(face)들을 형성할 수 있다. 면들은 더 나아가 다각형들을 형성할 수 있다. 다양한 객체들의 3D 표면들은, 예를 들어, 면들과 다각형들로 분해될 수 있다. 정점들, 에지들, 면들, 다각형들, 또는 표면들 각각은, 색상, 법선, 텍스처 등과 같은 다양한 속성과 연관될 수 있다. 표면에 대한 법선은 표면 법선(surface normal)이라고 할 수 있고; 그리고/또는 정점에 대한 법선은 정점 법선이라고 할 수 있다. 정점들이 에지들, 면들 또는 다각형들에 어떻게 연결되어 있는지에 대한 정보는 연결성 정보(connectivity information)라고 할 수 있다. 연결성 정보는, 동일한 세트의 정점들이 상이한 면들, 표면들, 다각형들을 형성할 수 있으므로 메시의 성분들을 고유하게 정의하기 위해 중요하다. 일반적으로, 3D 공간에서 정점의 위치는 그 3D 좌표로 표현될 수 있다. 면은 순차적으로 연결된 정점들의 세트로 표현될 수 있으며, 각각은 3D 좌표 세트와 연관된다. 마찬가지로, 에지는, 그 3D 좌표와 각각 연관된 2개의 정점으로 표현될 수 있다. 정점들, 에지들, 면들은, 3D 메시 데이터세트들에서 인덱싱될 수 있다.
메시는, 이들 기본 요소 유형들 중 하나 이상의 집합으로서 정의되고 기술될 수 있다. 그러나, 메시를 완전히 기술하기 위해 상기의 모든 유형의 요소들이 필요한 것은 아니다. 예를 들어, 메시는 정점들과 그들의 연결성만을 이용함으로써 완전히 기술될 수 있다. 또 다른 예의 경우, 메시는, 면들의 목록과 면들의 공통 정점들만 이용함으로써 완전히 기술될 수 있다. 따라서, 메시는 대안적 데이터세트 조성들 및 포맷들로 기술되는 다양한 대안적 유형일 수 있다. 예시적인 메시 유형들로는, 면-정점 메시들, 날개달린-에지 메시들(winged-edge meshes), 하프-에지 메시들, 쿼드-에지 메시들, 코너-테이블 메시들, 정점-정점 메시들 등이 포함되지만 이것으로 제한되지 않는다. 대응적으로, 메시 데이터 세트는, .raw, .blend, .fbx, .3ds, .dae, .dng, 3dm, .dsf, .dwg, .obj, .ply, .pmd, .stl, amf, .wrl, .wrz, .x3d, .x3db, .x3dv, .x3dz, .x3dbz, .x3dvz, .c4d, .lwo, .smb, .msh, .mesh, .veg, .z3d, .vtk, .l4d 등을 포함하지만 이것으로 제한되지 않는 파일 확장자들을 갖는 대안적 파일 포맷들을 준수하는 정보와 함께 저장될 수 있다. 색상, 법선, 텍스처 등과 같은 이들 요소들에 대한 속성들은 다양한 방식으로 메시 데이터세트에 포함될 수 있다.
일부 구현에서, 메시의 정점들은, UV 공간이라고 하는, 픽셀화된 2D 공간에 맵핑될 수 있다. 따라서, 메시의 각각의 정점은 UV 공간의 픽셀에 맵핑될 수 있다. 일부 구현에서, 하나의 정점은 UV 공간에서 하나보다 많은 픽셀에 맵핑될 수 있다, 예를 들어, 경계에 있는 정점은 UV 공간에서 2개 또는 3개의 픽셀에 맵핑될 수 있다. 마찬가지로, 메시 내의 면 또는 표면은 메시 내의 기록된 정점들 사이에 있을 수 있거나 있지 않을 수 있는 복수의 3D 포인트로 샘플링될 수 있고, 이들 복수의 3D 포인트는 또한 2차원 UV 공간 내의 픽셀들에 맵핑될 수 있다. 메시 내의 면들 또는 표면들의 정점들 및 샘플링된 3D 포인트들을 UV 공간으로 맵핑하는 것 및 UV 공간에서의 후속 데이터 분석 및 처리는, 이하에서 더 상세히 기술되는 바와 같이, 메시 또는 메시의 시퀀스의 3D 데이터 세트의 데이터 저장, 압축 및 코딩을 용이하게 할 수 있다. 맵핑된 UV 공간 데이터세트는, UV 이미지, 2D 맵, 또는 메시의 2D 이미지라고 지칭될 수 있다.
3D 메시 내의 정점들과 샘플링된 표면 포인트들을 2D UV 공간에 맵핑한 후, 일부 픽셀은 3D 메시의 정점들과 샘플링된 표면 포인트들에 맵핑될 수 있는 반면 다른 픽셀들은 맵핑되지 않을 수 있다. 메시의 2D 이미지 내의 맵핑된 각각의 픽셀은 3D 메시 내의 대응하는 맵핑된 정점들 또는 표면 포인트들의 정보와 연관될 수 있다. UV 공간 내의 픽셀들에 포함된 정보의 유형들에 따라, 메시의 다양한 2D 이미지 또는 2D 맵이 구축될 수 있다. 다수의 2D 맵의 집합이 메시의 대안적 또는/또는 공동 표현들(joint representations)로서 이용될 수 있다.
예를 들어, 메시의 가장 간단한 2D 맵은 점유 맵(occupancy map)으로서 구축될 수 있다. 점유 맵은, 메시의 3D 정점 또는 샘플링된 표면 포인트들에 맵핑된 UV 공간 내의 픽셀들을 나타낼 수 있다. 점유의 표시는, 2D 픽셀들 각각에 있는 2진 표시기로 표현될 수 있으며, 예를 들어 2진 값 "1"은 맵핑 또는 점유를 나타내고, 2진 값 "0"은 비맵핑 또는 비점유를 나타낸다. 따라서, 점유 맵은 2D 이미지로서 구축될 수 있다. 일반적인 2D 이미지는, 예를 들어 8비트의 색상 심도를 가진 3개의 채널(RGB, YUV, YCrCb 등)의 어레이를 포함하지만, 메시의 이러한 2D 점유 맵은 단일-비트 2진 채널만을 필요로 한다.
또 다른 예의 경우, 메시를 위해 2D 지오메트리 맵이 구축될 수 있다. 2D 지오메트리 맵은, 단일 2진 채널을 포함하는 것 대신에, 풀 3채널 이미지일 수 있고, 여기서, 점유된 픽셀 각각에서의 3-색상 채널이 메시 내의 대응하는 맵핑된 정점 또는 샘플링된 3D 포인트들의 3개의 3D 좌표에 대응한다.
일부 구현에서, 메시를 위해 다른 2D 맵들이 구축될 수도 있다. 예를 들어, 메시의 정점들 및 샘플링된 3D 포인트들 각각에 대한 속성 세트가 메시 데이터세트로부터 추출될 수 있고 2D 맵 이미지의 3 색상 채널들 내로 코딩될 수 있다. 이러한 2D 맵은 메시의 속성 맵이라고 할 수 있다. 특정한 속성 맵은, UV 공간 내의 점유된 픽셀들 각각에 대한 3채널 색상들을 포함할 수 있다. 또 다른 예의 경우, 메시의 각각의 맵핑된 정점 또는 샘플링된 3D 포인트와 연관된 텍스처 속성들은 3채널 값들로 파라미터화되고 2D 속성 맵 내에 코딩될 수 있다. 또 다른 예의 경우, 메시의 각각의 맵핑된 정점 또는 샘플링된 3D 포인트와 연관된 법선 속성들은 3채널 값들로 파라미터화되고 2D 속성 맵 내에 코딩될 수 있다. 일부 예시적인 구현에서, 메시의 정점들과 샘플링된 표면 포인트들의 모든 필요한 속성 정보를 보유하기 위해 다수의 2D 속성 맵이 구축될 수 있다.
상기의 2D 맵들은 단지 예일 뿐이다. 메시를 위한 다른 유형들의 2D 맵들이 구축될 수 있다. 또한, 3D 메시로부터 다른 데이터세트들이 추출되어 상기의 2D 맵들과 함께 원본 3D 메시를 공동으로 나타낼 수도 있다. 예를 들어, 정점들 사이의 연결 또는 연결성 정보가 2D 맵들과는 별도로 그룹화되어, 목록, 표 등의 형태로 조직화될 수 있다. 연결성 정보는, 예를 들어 정점 인덱스들을 이용하여 정점들을 참조할 수 있다. 정점 인덱스들은, 2D 맵들에서 그들의 대응하는 픽셀 위치에 맵핑될 수 있다. 또 다른 예의 경우, 표면 텍스처들, 색상들, 법선들, 변위들, 및 기타의 정보가 2D 맵들과는 별도로 추출되어 2D 맵으로서가 아니라 별도로 조직화될 수 있다. 다른 메타 데이터가 3D 메시로부터 추가로 추출되어 2D 맵들 및 상기의 다른 데이터세트들과 함께 3D 메시를 나타낼 수 있다.
상기의 예시적 구현들은 정적인 메시에 중점을 두었지만, 본 개시내용의 양태에 따르면, 3D 메시들은 동적일 수 있다. 예를 들어, 동적 메시는, 성분들(지오메트리 정보, 연결성 정보, 맵핑 정보, 정점 속성들 및 속성 맵들) 중 적어도 하나가 시간 경과에 따라 변하는 메시를 지칭할 수 있다. 따라서, 동적 메시는, 비디오를 형성하는 2D 이미지 프레임들의 시간 시퀀스와 유사하게, 메시 시퀀스 또는 메시들(메시 프레임들이라고도 함)에 의해 기술될 수 있다.
일부 예시적인 구현에서, 동적 메시는, 일정한 연결성 정보, 시변동 지오메트리, 및 시변동 정점 속성들을 가질 수 있다. 일부 다른 예에서, 동적 메시는 시변동 연결성 정보를 가질 수 있다. 일부 예에서, 디지털 3D 콘텐츠 생성 도구들은 시변동 속성 맵들과 시변동 연결성 정보를 이용하여 동적 메시들을 생성하는데 이용될 수 있다. 일부 다른 예에서, 체적 취득(volumetric acquisition)/검출/감지 기술들을 이용하여 동적 메시들을 생성한다. 체적 취득 기술들은, 특히 실시간 제약들 하에서, 시변동 연결성 정보를 이용하여 동적 메시를 생성할 수 있다.
동적 메시는, 동적 메시가 시간 경과에 따라 변화하는 상당한 양의 정보를 포함할 수 있기 때문에, 많은 양의 데이터를 요구할 수 있다. 그러나, 메시 프레임 내(인트라-압축) 및 메시 프레임간(인터-압축) 중복성들을 활용하기 위해 압축이 수행될 수 있다. 다양한 메시 압축 프로세스가 구현되어, 특히 메시 시퀀스에 대한, 메시 표현으로 된 미디어 콘텐츠의 효율적인 저장 및 전송을 허용할 수 있다.
본 개시내용의 양태들은 메시 압축을 위한 예시적인 아키텍처 및 기술들을 제공한다. 이 기술들은, 정적 메시 압축, 동적 메시 압축, 일정한 연결성 정보를 수반한 동적 메시의 압축, 시변동 연결성 정보를 수반한 동적 메시의 압축, 시변동 속성 맵들을 수반한 동적 메시의 압축 등을 포함하지만 이것으로 제한되지 않는 다양한 메시 압축에 이용될 수 있다. 이 기술들은, 실시간 몰입형 통신들, 스토리지, 자유 시점 비디오, 증강 현실(AR), 가상 현실(VR) 등과 같은 다양한 응용을 위한 손실 및 무손실 압축에 이용될 수 있다. 이 응용들은, 랜덤 액세스 및 스케일러블/프로그레시브 코딩과 같은 기능성들을 포함할 수 있다.
본 개시내용이 3D 메시들에 적용가능한 기술들 및 구현들을 명시적으로 설명하지만, 본 명세서에 설명된 다양한 구현의 기저 원리들은, 포인트 클라우드(PC) 데이터 구조들을 포함하지만 이것으로 제한되지 않는 다른 유형들의 3D 데이터 구조에 적용될 수 있다. 간소화를 위해, 아래에서 3D 메시에 대한 참조들은, 일반적인 것이며 포인트 클라우드들 및 다른 3D 체적 데이터세트들과 같은 다른 유형의 3D 표현들을 포함하기 위한 의도이다.
먼저 예시적인 아키텍처 레벨의 구현들을 살펴보면, 도 1은 본 개시내용의 예시적 실시예에 따른 통신 시스템(100)의 간소화된 블록도를 나타낸다. 통신 시스템(100)은, 예를 들어, 통신 네트워크(150)(대안으로서 네트워크라고도 함)를 통해 서로 통신할 수 있는 복수의 단말 디바이스를 포함할 수 있다. 예를 들어, 통신 시스템(100)은 네트워크(150)를 통해 상호접속된 한 쌍의 단말 디바이스들(110 및 120)을 포함할 수 있다. 도 1의 예에서, 제1 쌍의 단말 디바이스들(110 및 120)은 3D 메시들의 단방향 전송을 수행할 수 있다. 예를 들어, 단말 디바이스(110)는, 단말 디바이스(110)에 의해 생성되거나 스토리지로부터 획득되거나 단말 디바이스(110)와 접속된 3D 센서(105)에 의해 캡처될 수 있는, 3D 메시 또는 3D 메시들의 시퀀스를 압축할 수 있다. 압축된 3D 메시 또는 3D 메시들의 시퀀스는, 예를 들어 비트스트림(코딩된 비트스트림이라고도 함)의 형태로, 네트워크(150)를 통해 다른 단말 디바이스(120)에 전송될 수 있다. 단말 디바이스(120)는 네트워크(150)로부터 압축된 3D 메시 또는 3D 메시들의 시퀀스를 수신하고, 비트스트림을 압축해제하여 원래의 3D 메시 또는 3D 메시들의 시퀀스를 재구성하고, 재구성된 3D 메시 또는 3D 메시들의 시퀀스를 디스플레이 또는 다른 목적들/용도들을 위해 적절하게 처리할 수 있다. 단방향 데이터 전송은 미디어 서빙 애플리케이션들 등에서 일반적일 수 있다.
도 1의 예에서, 단말 디바이스들(110 및 120) 중 하나 또는 양쪽 모두는, 서버들, 고정 또는 모바일 개인용 컴퓨터들, 랩탑 컴퓨터들, 태블릿 컴퓨터들, 스마트폰들, 게임 단말기들, 미디어 플레이어들, 및/또는 전용 3차원(3D) 장비 등으로서 구현될 수 있지만, 본 개시내용의 원리들은 그렇게 제한되지 않을 수 있다. 네트워크(150)는, 단말 디바이스들(110 및 120) 사이에서 압축된 3D 메시들을 전송하는 임의의 유형의 네트워크 또는 네트워크들의 조합을 나타낼 수 있다. 네트워크(150)는, 예를 들어 와이어라인(유선) 및/또는 무선 통신 네트워크들을 포함할 수 있다. 네트워크(150)는 회선 교환 및/또는 패킷 교환 채널들에서 데이터를 교환할 수 있다. 대표적인 네트워크들로는, 장거리 통신 네트워크들, 근거리 통신 네트워크들, 광역 통신 네트워크들, 셀룰러 네트워크들, 및/또는 인터넷이 포함된다. 본 개시내용의 목적상, 네트워크(150)의 아키텍처 및 토폴로지는 이하에서 설명하지 않는 한, 본 개시내용의 동작에 중요하지 않을 수 있다.
도 2는 본 개시내용의 실시예에 따른 스트리밍 시스템(200)의 예시적인 간소화된 블록도를 나타낸다. 도 2는 3D 메시들 및 압축된 3D 메시들에 관련된 개시된 구현들에 대한 예시적인 응용을 나타낸다. 개시된 주제는, 3D 텔레프레즌스 애플리케이션(telepresence application), 가상 현실 애플리케이션 등과 같은, 다른 3D 메시 또는 포인트 클라우드 가능형 애플리케이션들(mesh or point cloud enabled applications)에 동등하게 적용될 수 있다.
스트리밍 시스템(200)은 캡처 또는 저장 서브시스템(213)을 포함할 수 있다. 캡처 또는 저장 서브시스템(213)은, 3D 메시 생성기 또는 저장 매체(201), 예컨대 3D 메시 또는 포인트 클라우드 생성 도구/소프트웨어, 그래픽 생성 컴포넌트, 또는 압축되지 않은 3D 메시(202) 또는 포인트 클라우드들(202)을 생성하거나 제공하는 광 검출 및 레인징(LIDAR) 시스템, 3D 카메라들, 3D 스캐너들, 3D 메시 저장소 등과 같은 포인트 클라우드 센서를 포함할 수 있다. 일부 예시적인 구현에서, 3D 메시들(202)은 3D 메시의 정점들 또는 포인트 클라우드의 3D 포인트들(양쪽 모두 3D 메시라고 지칭됨)을 포함한다. 3D 메시들(202)은, 압축된 3D 메시들(204)(압축된 3D 메시의 비트스트림)에 비해 대응하는 높은 데이터 볼륨을 강조하기 위해 굵은 선으로 표시된다. 압축된 3D 메시들(204)은 3D 메시들(202)에 결합된 인코더(203)를 포함하는 전자 디바이스(220)에 의해 생성될 수 있다. 인코더(203)는, 하드웨어, 소프트웨어 또는 이들의 조합을 포함하여 아래에서 더 상세히 설명되는 바와 같이 개시된 주제의 양태들을 가능하게 하거나 구현할 수 있다. 압축되지 않은 3D 메시들(202)의 스트림에 비해 더 낮은 데이터 볼륨을 강조하기 위해 얇은 선으로 표시된 압축된 3D 메시들(204)(또는 압축된 3D 메시들(204)의 비트스트림)은 향후의 이용을 위해 스트리밍 서버(205)에 저장될 수 있다. 도 2의 클라이언트 서브시스템들(206 및 208)과 같은, 하나 이상의 스트리밍 클라이언트 서브시스템은, 스트리밍 서버(205)에 액세스하여 압축된 3D 메시들(204)의 사본들(207 및 209)을 리트리브(retrieve)할 수 있다. 클라이언트 서브시스템(206)은, 예를 들어 전자 디바이스(230)에 디코더(210)를 포함할 수 있다. 디코더(210)는, 압축된 3D 메시들의 인입 사본(207)을 디코딩하고, 렌더링 디바이스(212) 상에 또는 다른 용도들을 위해 렌더링될 수 있는 재구성된 3D 메시들(211)의 송출 스트림을 생성하도록 구성될 수 있다.
전자 디바이스들(220, 230)은 다른 컴포넌트들(미도시)을 포함할 수 있다는 점에 유의한다. 예를 들어, 전자 디바이스(220)는 디코더(미도시)를 포함할 수 있고 전자 디바이스(230)는 인코더(미도시)를 역시 포함할 수 있다.
일부 스트리밍 시스템에서, 압축된 3D 메시들(204, 207, 및 209)(예컨대, 압축된 3D 메시들의 비트스트림들)은 소정의 표준들에 따라 압축될 수 있다. 일부 예에서, 아래에서 더 상세히 설명되는 바와 같이, 비디오 코딩 표준들을 이용하여, 3D 메시가 비디오 압축에 적합한 2D 표현들로 맵핑되도록 먼저 투사된 후 3D 메시들의 압축에서 중복성 및 상관들을 활용한다. 이들 표준들의 비제한적인 예들로는, 아래에서 상세히 설명되는 바와 같이, 고효율 비디오 코딩(HEVC), 다목적 비디오 코딩(VVC) 등이 포함된다.
압축된 3D 메시 또는 3D 메시들의 시퀀스는 인코더에 의해 생성될 수 있는 반면, 디코더는 압축된 또는 코딩된 3D 메시들을 압축해제하도록 구성될 수 있다. 도 3은 이러한 인코더(301) 및 디코더(303)에서 3D 메시들의 예시적인 고수준 데이터 흐름을 나타낸다. 도 3에 도시된 바와 같이, 원시 입력 3D 메시 또는 3D 메시들의 시퀀스(302)는, 트랙 리메싱(track remeshing), 파라미터화, 및/또는 복셀화에 의해 전처리되어, 3D 메시들을, 일부 구현에서는 UV 아틀라스를 갖는 메시를 포함할 수 있는, 2D UV 공간(304)에 맵핑하기 위한 맵핑 유닛에 대한 입력 데이터를 생성할 수 있다. 3D 메시들은 정점들 중에 속하지 않는 3D 표면 포인트들을 포함하도록 샘플링될 수 있고, 맵핑에서 이들 샘플링된 3D 표면 포인트들을 UV 공간에 추가할 수 있다. 인코더(301)에서, 점유 맵들(310), 지오메트리 맵들(312), 속성 맵들(314)을 포함한 그러나 이것으로 제한되지 않는 다양한 2D 맵이 생성될 수 있다. 이들 이미지 유형의 맵들은, 예를 들어, 비디오 코딩/압축 기술들을 이용하여 인코더(301)에 의해 압축될 수 있다. 예를 들어, 비디오 코더는, 다른 3D 메시 참조 프레임들에 의한 인트라-예측 기술 및 인터-예측을 이용하여 3D 메시 프레임을 압축하는데 도움을 줄 수 있다. 다른 비-이미지 또는 비-맵 데이터 또는 메타 데이터(316)는 또한, 중복성들을 제거하여 압축된 비-맵 데이터를 생성하기 위해 다양한 방식으로, 비제한적인 예로서 엔트로피 코딩을 통해, 코딩될 수 있다. 그 다음, 인코더(301)는 압축된 2D 맵들과 비-맵 데이터를 결합 또는 멀티플렉싱하고, 결합된 데이터를 추가로 코딩하여 인코딩된 비트스트림(또는 코딩된 비트스트리틈이라고 함)을 생성할 수 있다. 그 다음, 인코딩된 비트스트림은 디코더(303)에 의한 이용을 위해 저장되거나 전송될 수 있다. 디코더는, 비트스트림을 디코딩하고, 압축된 2D 맵들 및 비-맵 데이터를 획득하기 위해 디코딩된 비트스트림을 디멀티플렉싱하고, 디코딩된 점유 맵들(320), 디코딩된 지오메트리 맵들(322), 디코딩된 속성 맵들(324), 및 디코딩된 비-맵 데이터 및 메타 데이터(326)를 생성하기 위해 압축해제를 미리 형성하도록 구성될 수 있다. 그 다음, 디코더(303)는 또한, 디코딩된 2D 맵들(320, 322, 및 324) 및 디코딩된 비-맵 데이터(326)로부터 3D 메시 또는 3D 메시들의 시퀀스(330)를 재구성하도록 구성될 수 있다.
더 상세하게, 도 4는, 본 개시내용의 일부 실시예에 따른, 3D 메시 프레임들을 인코딩하기 위한 예시적인 3D 메시 인코더(400)의 블록도를 도시한다. 일부 예시적인 구현에서, 메시 인코더(400)는 통신 시스템(100) 및 스트리밍 시스템(200)에서 이용될 수 있다. 예를 들어, 인코더(203)는 메시 인코더(400)와 유사한 방식으로 구성 및 동작될 수 있다.
메시 인코더(400)는 3D 메시 프레임들을 압축되지 않은 입력들로서 수신하고 압축된 3D 메시 프레임들에 대응하는 비트스트림을 생성할 수 있다. 일부 예시적인 구현에서, 메시 인코더(400)는, 도 2의 메시 또는 포인트 클라우드 소스(201) 등과 같은, 임의의 소스로부터 3D 메시 프레임들을 수신할 수 있다.
도 4의 예에서, 메시 인코더(400)는, 패치 생성 모듈(406)(대안적으로, 차트 생성 모듈이라고 함), 패치 패킹 모듈(408), 지오메트리 이미지 생성 모듈(410), 텍스처 이미지 생성 모듈(412), 패치 정보 모듈(404), 점유 맵 모듈(414), 평활화 모듈(436), 이미지 패딩 모듈(416, 418), 그룹 팽창 모듈(420), 비디오 압축 모듈(422, 423 및 432), 보조 패치 정보 압축 모듈(438), 엔트로피 압축 모듈(434), 및 멀티플렉서(424)를 포함할 수 있다.
본 개시내용의 다양한 실시예에서, 모듈이란, 소프트웨어 모듈, 하드웨어 모듈, 또는 이들의 조합을 지칭할 수도 있다. 소프트웨어 모듈은, 미리정의된 기능을 갖는 컴퓨터 프로그램 또는 컴퓨터 프로그램의 일부를 포함할 수 있고, 본 개시내용에서 설명된 기능들과 같은 미리정의된 목표를 달성하기 위해 다른 관련 부분들과 함께 동작한다. 하드웨어 모듈은, 본 개시내용에서 설명된 기능들을 수행하도록 구성된 처리 회로 및/또는 메모리를 이용하여 구현될 수 있다. 각각의 모듈은 하나 이상의 프로세서(또는 프로세서들 및 메모리)를 이용하여 구현될 수 있다. 마찬가지로, 프로세서(또는 프로세서들 및 메모리)는 하나 이상의 모듈을 구현하는데 이용될 수 있다. 또한, 각각의 모듈은 그 모듈의 기능성들을 포함하는 전체 모듈의 일부일 수 있다. 본 명세서의 설명은, 모듈이라는 용어 및 다른 동등한 용어들(예를 들어, 유닛)에도 적용될 수 있다.
본 개시내용의 양태에 따르면, 그리고 전술된 바와 같이, 메시 인코더(400)는, 압축된 3D 메시를 압축해제된 3D 메시로 다시 변환하는 것을 지원하는데 이용되는 일부 비-맵 메타 데이터(예컨대, 패치 또는 차트 정보)와 함께 3D 메시 프레임들을 이미지-기반의 표현들(예컨대, 2D 맵들)로 변환한다. 일부 예에서, 메시 인코더(400)는, 3D 메시 프레임들을 2D 지오메트리 맵들 또는 이미지들, 텍스처 맵들 또는 이미지들, 및 점유 맵들 또는 이미지들로 변환한 다음, 비디오 코딩 기술들을 이용하여, 메타 데이터 및 다른 압축된 비-맵 데이터와 함께, 지오메트리 이미지들, 텍스처 이미지들 및 점유 맵들을 비트스트림 내에 인코딩할 수 있다. 일반적으로, 전술한 바와 같이, 2D 지오메트리 이미지는, 2D 픽셀들에 투사('투사'라는 용어는 '맵핑'을 의미하기 위해 사용됨)된 3D 포인트들과 연관된 지오메트리 값들로 채워진 2D 픽셀들을 갖는 2D 이미지이며, 지오메트리 값으로 채워진 2D 픽셀은 지오메트리 샘플이라고 지칭될 수 있다. 텍스처 이미지는 2D 픽셀들에 투사된 3D 포인트들과 연관된 텍스처 값들로 채워진 픽셀들을 갖는 2D 이미지이며, 텍스처 값으로 채워진 2D 픽셀은 텍스처 샘플이라고 지칭될 수 있다. 점유 맵은, 3D 포인트들의 점유 또는 비점유를 나타내는 값들로 채워진 2D 픽셀들을 갖는 2D 이미지이다.
패치 생성 모듈(406)은 3D 메시를, 각각의 패치가 2D 공간의 평면에 관한 깊이 필드에 의해 기술될 수 있도록 중첩되거나 중첩되지 않을 수 있는 한 세트의 차트들 또는 패치들(예를 들어, 패치는 3D 메시 또는 포인트 클라우드에 의해 기술된 표면의 연속적인 서브세트로서 정의됨)로 세그먼트화한다(예를 들어, 표면 상의 더 깊은 3D 포인트들이 대응하는 2D 맵의 중심으로부터 더 멀어지도록 표면을 평탄화함). 일부 실시예에서, 패치 생성 모듈(406)은 3D 메시를 평활한 경계들을 갖는 최소 개수의 패치들로 분해하는 동시에 재구성 오류를 최소화하는 것을 목표로 한다.
패치 정보 모듈(404)은 패치들의 크기들과 형상들을 나타내는 패치 정보를 수집할 수 있다. 일부 예에서, 패치 정보는 데이터 프레임으로 패킹된 다음 보조 패치 정보 압축 모듈(438)에 의해 인코딩되어 압축된 보조 패치 정보를 생성할 수 있다. 보조 패치 압축은, 다양한 유형의 산술 코딩을 포함하지만 이것으로 제한되지 않는, 다양한 형태로 구현될 수 있다.
패치 또는 차트 패킹 모듈(408)은, 미사용 공간을 최소화하면서 추출된 패치들을 UV 공간의 2D 그리드 상에 맵핑하도록 구성될 수 있다. 일부 예시적인 구현에서, 2D UV 공간의 픽셀들은 패치들 또는 차트들의 맵핑을 위해 픽셀들의 블록들로 세분화될 수 있다. 블록 크기는 미리정의될 수 있다. 예를 들어, 블록 크기는 M×M(예컨대, 16×16)인 M일 수 있다. 이러한 세분성을 통해, 2D UV 그리드의 모든 M×M 블록이 고유한 패치와 연관되는 것이 보장될 수 있다. 즉, 각각의 패치는 M×M의 2D 세분성으로 2D UV 공간에 맵핑된다. 효율적인 패치 패킹은, 미사용 공간을 최소화하거나 시간적 일관성을 보장함으로써 압축 효율성에 직접적인 영향을 미칠 수 있다. 패치들 또는 차트들을 2D UV 공간으로 패킹하는 예시적인 구현들은 아래에 상세히 설명되어 있다.
지오메트리 이미지 생성 모듈(410)은 2D 그리드의 주어진 패치 위치들에서 3D 메시의 지오메트리와 연관된 2D 지오메트리 이미지들을 생성할 수 있다. 텍스처 이미지 생성 모듈(412)은 2D 그리드의 주어진 패치 위치들에서 3D 메시의 텍스처와 연관된 2D 텍스처 이미지들을 생성할 수 있다. 지오메트리 이미지 생성 모듈(410) 및 텍스처 이미지 생성 모듈(412)은 본질적으로, 전술된 바와 같이 3D 메시의 지오메트리 및 텍스처를 2D 이미지들로서 저장하기 위해 상기의 패킹 프로세스 동안 계산된 3D 대 2D 맵핑을 활용한다.
일부 구현에서, 다수의 포인트가 동일한 샘플에 투사되는(예를 들어, 패치들이 메시의 3D 공간에서 중첩하는) 경우를 더 잘 처리하기 위해, 2D 이미지가 계층화될 수 있다. 즉, 각각의 패치는 예를 들어, 층들이라고 불리는 2개의 이미지 상에 투사되어, 다수의 포인트가 상이한 층들의 동일한 포인트들에 투사될 수 있게 할 수 있다.
일부 예시적인 구현에서, 지오메트리 이미지는 폭 x 높이(W × H)의 단색 프레임으로 표현될 수 있다. 따라서, 3개의 루마 또는 크로마 채널의 지오메트리 이미지 3개가 3D 좌표들을 나타내는데 이용될 수 있다. 일부 예시적인 구현에서, 지오메트리 이미지는 소정의 색상 깊이(예를 들어, 8비트, 12비트, 16비트 등)를 갖는 3개의 채널(RGB, YUV, YCrCb 등)을 갖는 2D 이미지로 표현될 수 있다. 따라서, 3개의 색상 채널을 갖는 하나의 지오메트리 이미지가 3D 좌표들을 나타내는데 이용될 수 있다.
텍스처 이미지를 생성하기 위해, 텍스처 생성 절차는 원래의 3D 메시로부터 샘플링된 포인트들과 연관될 색상들을 계산하기 위해 재구성된/평활화된 지오메트리를 활용한다(예를 들어, 원래의 3D 메시의 정점들 중에 있지 않은 3D 표면 포인트들을 생성할 도 3의 "샘플링" 참조).
점유 맵 모듈(414)은 각각의 유닛에서 패딩 정보를 기술하는 점유 맵을 생성하도록 구성될 수 있다. 예를 들어, 전술된 바와 같이, 점유 이미지는, 2D 그리드의 각각의 셀에 대해 그 셀이 빈 공간에 속하는지 또는 3D 메시에 속하는지를 나타내는 2진 맵을 포함할 수 있다. 일부 예시적인 구현에서, 점유 맵은 2진 정보를 이용하여 각각의 픽셀에 대해 그 픽셀이 패딩되어 있는지의 여부를 기술할 수 있다. 일부 다른 예시적인 구현에서, 점유 맵은 2진 정보를 이용하여 각각의 픽셀 블록(예를 들어, 각각의 M×M 블록)에 대해 그 픽셀 블록이 패딩되어 있는지의 여부를 기술할 수 있다.
점유 맵 모듈(414)에 의해 생성된 점유 맵은 무손실 코딩 또는 손실 코딩을 이용하여 압축될 수 있다. 무손실 코딩이 이용되는 경우, 엔트로피 압축 모듈(434)을 이용하여 점유 맵을 압축할 수 있다. 손실 코딩이 이용되는 경우, 비디오 압축 모듈(432)을 이용하여 점유 맵을 압축할 수 있다.
패치 패킹 모듈(408)은 이미지 프레임에 패킹된 2D 패치들 사이에 일부 빈 공간을 남길 수 있다는 점에 유의한다. 이미지 패딩 모듈들(416, 418)은, 2D 비디오 및 이미지 코덱들에 대해 적합할 수 있는 이미지 프레임을 생성하기 위해 빈 공간을 채울 수 있다(패딩이라고 함). 이미지 패딩은 또한, 미사용 공간을 중복 정보로 채울 수 있는 배경 채우기라고도 지칭된다. 일부 예에서, 양호하게-구현된 배경 채우기는, 패치 경계들 주변에 상당한 코딩 왜곡을 도입하는 것을 피하면서 비트 레이트를 최소한으로 증가시킨다.
비디오 압축 모듈(422, 423 및 432)은, HEVC, VVC 등과 같은 적합한 비디오 코딩 표준에 기초하여, 패딩된 지오메트리 이미지들, 패딩된 텍스처 이미지들, 및 점유 맵들과 같은 2D 이미지를 인코딩할 수 있다. 일부 예시적인 구현에서, 비디오 압축 모듈들(422, 423, 및 432)은 별개로 동작하는 개개의 컴포넌트들이다. 비디오 압축 모듈들(422, 423, 및 432)은 일부 다른 예시적인 구현에서 단일 컴포넌트로서 구현될 수 있다는 점에 유의한다.
일부 예시적인 구현에서, 평활화 모듈(436)은 재구성된 지오메트리 이미지의 평활화된 이미지를 생성하도록 구성될 수 있다. 평활화된 이미지는 텍스처 이미지 생성(412)에 제공될 수 있다. 그 다음, 텍스처 이미지 생성(412)은 재구성된 지오메트리 이미지에 기초하여 텍스처 이미지의 생성을 조정할 수 있다. 예를 들어, 인코딩 및 디코딩 동안에 패치 형상(예컨대, 지오메트리)이 약간 왜곡된 경우, 패치 형상의 왜곡을 보정하기 위해 텍스처 이미지들을 생성할 때 왜곡을 고려할 수 있다.
일부 실시예에서, 그룹 팽창(420)은, 재구성된 3D 메시의 시각적 품질뿐만 아니라 코딩 이득을 개선하기 위해 중복 저주파 콘텐츠로 객체 경계 주변의 픽셀들을 패딩하도록 구성된다.
멀티플렉서(424)는, 압축된 지오메트리 이미지, 압축된 텍스처 이미지, 압축된 점유 맵, 압축된 보조 패치 정보를 압축된 비트스트림(또는 코딩된 비트스트림이라고 함)으로 멀티플렉싱하도록 구성될 수 있다.
도 5는, 본 개시내용의 일부 실시예에 따른, 3D 메시 프레임들에 대응하는 압축된 비트스트림을 디코딩하기 위한 예시적인 메시 디코더(500)의 블록도를 도시한다. 일부 예시적인 구현에서, 메시 디코더(500)는 통신 시스템(100) 및 스트리밍 시스템(200)에서 이용될 수 있다. 예를 들어, 디코더(210)는 메시 디코더(500)와 유사한 방식으로 동작하도록 구성될 수 있다. 메시 디코더(500)는 압축된 비트스트림을 수신하고, 예를 들어 압축된 지오메트리 이미지, 압축된 텍스처 이미지, 압축된 점유 맵, 압축된 보조 패치 정보를 포함한 압축된 비트스트림에 기초하여 재구성된 3D 메시들을 생성한다.
도 5의 예에서, 메시 디코더(500)는, 디멀티플렉서(532), 비디오 압축해제 모듈(534 및 536), 점유 맵 압축해제 모듈(538), 보조 패치 정보 압축해제 모듈(542), 지오메트리 재구성 모듈(544), 평활화 모듈(546), 텍스처 재구성 모듈(548), 및 색상 평활화 모듈(552)을 포함할 수 있다.
디멀티플렉서(532)는 압축된 비트스트림을 수신하여, 압축된 텍스처 이미지, 압축된 지오메트리 이미지, 압축된 점유 맵, 및 압축된 보조 패치 정보로 분리할 수 있다.
비디오 압축해제 모듈들(534, 536)은, 압축된 이미지들을 적합한 표준(예컨대, HEVC, VVC 등)에 따라 디코딩하여 압축해제된 이미지들을 출력할 수 있다. 예를 들어, 비디오 압축해제 모듈(534)은 압축된 텍스처 이미지들을 디코딩하고 압축해제된 텍스처 이미지들을 출력할 수 있다. 비디오 압축해제 모듈(536)은 압축된 지오메트리 이미지들을 추가로 디코딩하여 압축해제된 지오메트리 이미지들을 출력할 수 있다.
점유 맵 압축해제 모듈(538)은 적절한 표준(예를 들어, HEVC, VVC 등)에 따라 압축된 점유 맵을 디코딩하고 압축해제된 점유 맵들을 출력하도록 구성될 수 있다.
보조 패치 정보 압축해제 모듈(542)은 압축된 보조 패치 정보를 적절한 디코딩 알고리즘에 따라 디코딩하여 압축해제된 보조 패치 정보를 출력하도록 구성될 수 있다.
지오메트리 재구성 모듈(544)은, 압축해제된 지오메트리 이미지들을 수신하고 압축해제된 점유 맵 및 압축해제된 보조 패치 정보에 기초하여 재구성된 3D 메시 지오메트리를 생성하도록 구성될 수 있다.
평활화 모듈(546)은 패치들의 에지들에서 부조화들을 평활화하도록 구성될 수 있다. 평활화 절차는 압축 아티팩트들로 인해 패치 경계들에서 발생할 수 있는 잠재적인 불연속성들을 완화하는 것을 목표로할 수 있다. 일부 예시적인 구현에서, 평활화 필터는, 압축/압축해제에 의해 야기될 수 있는 왜곡들을 완화하기 위해 패치 경계들에 위치한 픽셀들에 적용될 수 있다.
텍스처 재구성 모듈(548)은 압축해제된 텍스처 이미지들 및 평활화 지오메트리에 기초하여 3D 메시들 내의 포인트들에 대한 텍스처 정보를 결정하도록 구성될 수 있다.
색상 평활화 모듈(552)은 컬러링의 부조화들을 평활화하도록 구성될 수 있다. 3D 공간에서 비-인접 패치들은 종종 2D 비디오에서 서로 옆에 패킹된다. 일부 예에서, 비-인접 패치들로부터의 픽셀 값들은 블록 기반의 비디오 코덱에 의해 혼합될 수 있다. 색상 평활화의 목표는 패치 경계들에 나타나는 시각적 아티팩트들을 감소시키는 것일 수 있다.
도 6은 본 개시내용의 실시예에 따른 예시적인 비디오 디코더(610)의 블록도를 도시한다. 비디오 디코더(610)는 메시 디코더(500)에서 이용될 수 있다. 예를 들어, 비디오 압축해제 모듈들(534 및 536), 점유 맵 압축해제 모듈(538)은 비디오 디코더(610)와 유사하게 구성될 수 있다.
비디오 디코더(610)는, 코딩된 비디오 시퀀스와 같은, 압축된 이미지들로부터 심볼들(621)을 재구성하는 파서(parser)(620)를 포함할 수 있다. 이들 심볼들의 범주들에는, 비디오 디코더(610)의 동작을 관리하는데 이용되는 정보가 포함될 수 있다. 파서(620)는 수신되고 있는 코딩된 비디오 시퀀스를 파싱/엔트로피-디코딩할 수 있다. 코딩된 비디오 시퀀스의 코딩은 비디오 코딩 기술 또는 표준에 따를 수 있고, 가변 길이 코딩, Huffman 코딩, 문맥 민감성을 동반하거나 동반하지 않는 산술 코딩 등을 포함한, 다양한 원리를 따를 수 있다. 파서(620)는, 코딩된 비디오 시퀀스로부터, 그룹에 대응하는 적어도 하나의 파라미터에 기초하여, 비디오 디코더에서의 픽셀들의 서브그룹들 중 적어도 하나에 대한 한 세트의 서브그룹 파라미터들을 추출할 수 있다. 서브그룹들에는, GOP(Group of Picture)들, 픽처들, 타일들, 슬라이스들, 매크로블록들, CU(Coding Unit)들, 블록들, TU(Transform Unit)들, PU(Prediction Unit)들 등이 포함될 수 있다. 파서(620)는 또한, 변환 계수들, 양자화 파라미터 값들, 움직임 벡터들 등과 같은 정보를, 코딩된 비디오 시퀀스로부터 추출할 수 있다.
파서(620)는 버퍼 메모리로부터 수신된 이미지 시퀀스에 관해 엔트로피 디코딩/파싱 연산을 수행하여 심볼들(621)을 생성할 수 있다.
심볼들의 재구성(621)에는, 코딩된 비디오 픽처 또는 그 부분들의 유형(예를 들어: 인터 및 인트라 픽처, 인터 및 인트라 블록) 및 다른 요인들에 따라 다수의 상이한 유닛들이 관여될 수 있다. 어떤 유닛들이 관여되는지 그리고 어떻게 관여되는지는, 코딩된 비디오 시퀀스로부터 파서(620)에 의해 파싱된 서브그룹 제어 정보에 의해 제어될 수 있다. 파서(620)와 아래의 다수의 유닛들 사이의 이러한 서브그룹 제어 정보의 흐름은 명료성을 위해 서술되지 않는다.
이미 언급된 기능 블록들 외에, 비디오 디코더(610)는 아래에서 설명되는 바와 같이 개념적으로 다수의 기능 유닛들로 세분될 수 있다. 상업적인 제약들 하에서 동작하는 실제 구현에서, 이들 유닛들 중 많은 것들이 서로 밀접하게 상호작용하며, 적어도 부분적으로는 서로 통합될 수 있다. 아래의 기능 유닛들로의 개념적 세분은 단지 개시된 주제를 설명하기 위한 목적으로 이루어진 것이다.
비디오 디코더(610)는 스케일러/역변환 유닛(651)을 포함할 수 있다. 스케일러/역 변환 유닛(651)은, 파서(620)로부터 심볼(들)(621)로서, 이용할 변환, 블록 크기, 양자화 인자, 양자화 스케일링 행렬들 등을 포함한 제어 정보뿐만 아니라 양자화된 변환 계수를 수신할 수 있다. 스케일러/역 변환 유닛(651)은 집결기(655)에 입력될 수 있는 샘플 값들을 포함하는 블록들을 출력할 수 있다.
일부 경우에, 스케일러/역 변환(651)의 출력 샘플들은, 인트라 코딩된 블록; 즉, 이전에 재구성된 픽처들로부터의 예측 정보를 이용하지는 않지만 현재 픽처의 이전에 재구성된 부분들로부터의 예측 정보를 이용할 수 있는 블록과 관련될 수 있다. 이러한 예측 정보는 인트라 픽처 예측 유닛(652)에 의해 제공될 수 있다. 일부 경우에, 인트라 픽처 예측 유닛(652)은 현재 픽처 버퍼(658)로부터 페치된 주변의 이미 재구성된 정보를 이용하여 재구성 중인 블록과 동일한 크기 및 형상의 블록을 생성할 수 있다. 현재 픽처 버퍼(658)는, 예를 들어 부분적으로 재구성된 현재 픽처 및/또는 완전히 재구성된 현재 픽처를 버퍼링할 수 있다. 집결기(655)는, 일부 경우에, 샘플 기준별(per sample basis)로, 인트라 예측 유닛(652)이 생성한 예측 정보를 스케일러/역 변환 유닛(651)에 의해 제공되는 출력 샘플 정보에 추가할 수 있다.
다른 경우들에서, 스케일러/역 변환 유닛(651)의 출력 샘플들은, 인터 코딩되고 잠재적으로 움직임 보상된 블록과 관련될 수 있다. 이러한 경우에, 움직임 보상 예측 유닛(653)은 예측에 이용되는 샘플들을 페치하기 위해 기준 픽처 메모리(657)에 액세스할 수 있다. 블록과 관련된 심볼들(621)에 따라 페치된 샘플들을 움직임 보상한 후, 이들 샘플들은 집결기(655)에 의해 스케일러/역 변환 유닛(651)의 출력에 추가되어(이 경우, 잔차 샘플들 또는 잔차 신호들이라고 불림) 출력 샘플 정보를 생성할 수 있다. 움직임 보상 예측 유닛(653)이 예측 샘플들을 페치하는 기준 픽처 메모리(657) 내의 주소들은, 예를 들어 X, Y 및 기준 픽처 성분들을 가질 수 있는 심볼들(621)의 형태로 움직임 보상 예측 유닛(653)에게 이용가능한 움직임 벡터들에 의해 제어될 수 있다. 움직임 보상은 또한, 서브샘플 정확한 움직임 벡터들이 이용될 때 기준 픽처 메모리(657)로부터 페치된 샘플 값의 보간, 움직임 벡터 예측 메커니즘 등을 포함할 수 있다.
집결기(655)의 출력 샘플들은 루프 필터 유닛(656)에서 다양한 루프 필터링 기술들을 거칠 수 있다. 비디오 압축 기술들은, 코딩된 비디오 시퀀스(코딩된 비디오 비트스트림이라고도 함)에 포함된 파라미터들에 의해 제어되고 파서(620)로부터의 심볼들(621)로서 루프 필터 유닛(656)에게 이용가능하게 되지만, 코딩된 픽처 또는 코딩된 비디오 시퀀스의 (디코딩 순서에서) 이전 부분들을 디코딩하는 동안 획득된 메타 정보에 응답할 뿐만 아니라, 이전에 재구성되고 루프 필터링된 샘플 값들에도 응답하는, 인루프 필터 기술들을 포함할 수 있다.
루프 필터 유닛(656)의 출력은, 렌더 디바이스로 출력될 수 있을 뿐만 아니라 미래의 인터-픽처 예측에 이용하기 위해 기준 픽처 메모리(657)에 저장될 수 있는 샘플 스트림일 수 있다.
소정의 코딩된 픽처들은, 일단 완전히 재구성되고 나면, 미래의 예측을 위한 기준 픽처들로서 이용될 수 있다. 예를 들어, 일단 현재 픽처에 대응하는 코딩된 픽처가 완전히 재구성되고 코딩된 픽처가 (예를 들어, 파서(620)에 의해) 기준 픽처로서 식별되고 나면, 현재 픽처 버퍼(658)는 기준 픽처 메모리(657)의 일부가 될 수 있고, 새로운 현재 픽처 버퍼는 후속하는 코딩된 픽처의 재구성을 시작하기 전에 재할당될 수 있다.
비디오 디코더(610)는, ITU-T Rec. H.265와 같은, 표준에서 미리결정된 비디오 압축 기술에 따라 디코딩 동작들을 수행할 수 있다. 코딩된 비디오 시퀀스는, 코딩된 비디오 시퀀스가 비디오 압축 기술 또는 표준의 구문과 비디오 압축 기술 또는 표준에 문서화된 프로파일들 양쪽 모두를 준수한다는 의미에서, 이용 중인 비디오 압축 기술 또는 표준에 의해 명시된 구문을 따를 수 있다. 구체적으로, 프로파일은, 비디오 압축 기술 또는 표준에서 이용가능한 모든 도구 중에서 그 프로파일 하에서만 이용할 수 있는 도구들로서 소정의 도구들을 선택할 수 있다. 또한 준수를 위해 필요한 것은, 코딩된 비디오 시퀀스의 복잡성이 비디오 압축 기술 또는 표준의 레벨에 의해 정의된 한계들 내에 있다는 것일 수 있다. 일부 경우에, 레벨들은, 최대 픽처 크기, 최대 프레임 레이트, 최대 재구성 샘플 레이트(예를 들어, 초당 메가샘플로 측정), 최대 기준 픽처 크기 등을 제한한다. 레벨들에 의해 설정된 제한들은, 일부 경우에, HRD(Hypothetical Reference Decoder) 명세 및 코딩된 비디오 시퀀스에서 시그널링되는 HRD 버퍼 관리를 위한 메타데이터를 통해 추가로 제약될 수 있다.
도 7은 본 개시내용의 한 실시예에 따른 비디오 인코더(703)의 블록도를 도시한다. 비디오 인코더(703)는 3D 메시들 또는 포인트 클라우드들을 압축하는 메시 인코더(400)에서 이용될 수 있다. 일부 예시적인 구현에서, 비디오 압축 모듈(422, 423)과 비디오 압축 모듈(432)은 인코더(703)와 유사하게 구성된다.
비디오 인코더(703)는, 패딩된 지오메트리 이미지들, 패딩된 텍스처 이미지들 등과 같은 2D 이미지들을 수신하고, 압축된 이미지들을 생성할 수 있다.
본 개시내용의 예시적인 실시예에 따르면, 비디오 인코더(703)는, 소스 비디오 시퀀스(이미지들)의 픽처들을 코딩된 비디오 시퀀스(압축된 이미지들)로 실시간으로 또는 애플리케이션에 의해 요구되는 임의의 다른 시간 제약하에서 코딩하고 압축할 수 있다. 적절한 코딩 속도를 강제하는 것은 제어기(750)의 한 기능이다. 일부 실시예에서, 제어기(750)는 아래에 기술된 바와 같이 다른 기능 유닛들을 제어하고 다른 기능 유닛들에 기능적으로 결합된다. 결합은 명료성을 위해 도시되지 않는다. 제어기(750)에 의해 설정되는 파라미터들은, 레이트 제어 관련 파라미터들(픽처 스킵, 양자화기, 레이트 왜곡 최적화 기술들의 람다 값, ...), 픽처 크기, GOP(group of pictures) 레이아웃, 최대 움직임 벡터 검색 범위, 및 기타 등등을 포함할 수 있다. 제어기(750)는 소정의 시스템 설계에 최적화된 비디오 인코더(703)에 관련된 다른 적절한 기능들을 갖도록 구성될 수 있다.
일부 예시적인 구현에서, 비디오 인코더(703)는 코딩 루프에서 동작하도록 구성될 수 있다. 지나치게 단순화된 설명으로서, 한 예에서, 코딩 루프는, 소스 코더(730)(예를 들어, 코딩될 입력 픽처 및 기준 픽처(들)에 기초하여 심볼 스트림과 같은 심볼 생성을 담당함), 및 비디오 인코더(703)에 내장된 (로컬) 디코더(733)를 포함할 수 있다. 디코더(733)는, (원격) 디코더가 생성하는 것과 유사한 방식으로 샘플 데이터를 생성하기 위해 심볼들을 재구성할 수 있다(심볼들과 코딩된 비디오 비트스트림 사이의 임의의 압축은 개시된 주제에서 고려되는 비디오 압축 기술들에서 무손실이기 때문). 재구성된 샘플 스트림(샘플 데이터)은 기준 픽처 메모리(734)에 입력될 수 있다. 심볼 스트림의 디코딩이 디코더 위치(로컬 또는 원격)와는 독립적인 비트-정확한 결과들을 가져오므로, 기준 픽처 메모리(734)의 콘텐츠도 역시 로컬 인코더와 원격 인코더 사이에서 비트 정확하다. 다시 말해, 인코더의 예측 부분은, 디코더가 디코딩 동안 예측을 이용할 때 "보게"될 것과 정확히 동일한 샘플 값들을 기준 픽처 샘플들로서 "본다". 기준 픽처 동기화(및 예를 들어 채널 오류들로 인해 동기화가 유지될 수 없는 경우 결과적인 드리프트)의 이러한 기본 원리는 일부 관련된 기술분야에서도 역시 이용된다.
"로컬" 디코더(733)의 동작은, 이미 도 6과 연계하여 위에서 상세히 설명된 비디오 디코더(610)와 같은 "원격" 디코더의 동작과 동일할 수 있다. 역시 도 6을 간략히 참조하면, 그러나, 심볼들이 이용가능하고 엔트로피 코더(745) 및 파서(620)에 의한 코딩된 비디오 시퀀스로의 심볼들의 인코딩/디코딩은 무손실일 수 있기 때문에, 파서(620)를 포함한, 비디오 디코더(610)의 엔트로피 디코딩 부분들은, 로컬 디코더(733)에서 완전히 구현되지 않을 수 있다.
본 개시내용의 다양한 실시예에서, 디코더에 존재하는 파싱/엔트로피 디코딩을 제외한 임의의 디코더 기술은, 대응하는 인코더에서 실질적으로 동일한 기능 형태로 반드시 존재할 필요가 있을 수 있다. 이러한 이유로, 다양한 실시예에서 개시된 주제는 디코더 동작에 초점을 맞출 수 있다. 인코더 기술들에 대한 설명은 포괄적으로 설명된 디코더 기술들의 역이기 때문에 약술될 수 있다. 소정의 영역에서만 더 상세한 설명이 요구되며 아래에서 제공된다.
동작 동안에, 일부 예에서, 소스 코더(730)는, "기준 픽처들"로서 지정된 비디오 시퀀스로부터의 하나 이상의 이전에-코딩된 픽처를 참조하여 예측적으로 입력 픽처를 코딩하는 움직임 보상된 예측 코딩을 수행할 수 있다. 이러한 방식으로, 코딩 엔진(732)은, 입력 픽처의 픽셀 블록들과, 입력 픽처에 대한 예측 기준(들)으로서 선택될 수 있는 기준 픽처(들)의 픽셀 블록들 사이의 차이들을 코딩할 수 있다.
로컬 비디오 디코더(733)는, 소스 코더(730)에 의해 생성된 심볼들에 기초하여, 기준 픽처들로서 지정될 수 있는 픽처들의 코딩된 비디오 데이터를 디코딩할 수 있다. 코딩 엔진(732)의 동작들은 유리하게도 손실 프로세스들일 수 있다. 코딩된 비디오 데이터가 비디오 디코더(도 7에 도시되지 않음)에서 디코딩될 수 있을 때, 재구성된 비디오 시퀀스는 전형적으로 약간의 오류를 갖는 소스 비디오 시퀀스의 복제판일 수 있다. 로컬 비디오 디코더(733)는 기준 픽처들에 관해 비디오 디코더에 의해 수행될 수 있는 디코딩 프로세스들을 복제하고 재구성된 기준 픽처들이 기준 픽처 캐시(734)에 저장되게 할 수 있다. 이러한 방식으로, 비디오 인코더(703)는, 원단(far-end) 비디오 디코더에 의해 획득될(전송 오류 없음) 재구성된 기준 픽처들로서 공통 콘텐츠를 갖는 재구성된 기준 픽처들의 사본들을 국부적으로 저장할 수 있다.
예측기(735)는 코딩 엔진(732)을 찾기 위한 예측 검색들을 수행할 수 있다. 즉, 코딩될 새로운 픽처에 대해, 예측기(735)는, (후보 기준 픽셀 블록들로서의) 샘플 데이터, 또는 새로운 픽처들에 대한 적절한 예측 기준으로서 역할할 수 있는 기준 픽처 움직임 벡터들, 블록 형상들 등과 같은 소정의 메타데이터를 찾기 위해 기준 픽처 메모리(734)를 검색할 수 있다. 예측기(735)는 적절한 예측 기준들을 찾기 위해 샘플 블록 바이 픽셀 블록 기반으로 동작할 수 있다. 일부 경우에, 예측기(735)에 의해 획득된 검색 결과들에 의해 결정되는 바와 같이, 입력 픽처는 기준 픽처 메모리(734)에 저장된 다수의 기준 픽처로부터 도출된 예측 기준들을 가질 수 있다.
제어기(750)는, 예를 들어 비디오 데이터를 인코딩하는데 이용되는 파라미터들 및 서브그룹 파라미터들의 설정을 포함한, 소스 코더(730)의 코딩 동작들을 관리할 수 있다.
전술된 모든 기능 유닛들의 출력은 엔트로피 코더(745)에서 엔트로피 코딩을 거칠 수 있다. 엔트로피 코더(745)는, Huffman 코딩, 가변 길이 코딩, 산술 코딩 등과 같은 기술들에 따라 심볼들을 무손실 압축함으로써, 다양한 기능 유닛에 의해 생성된 심볼들을 코딩된 비디오 시퀀스로 변환할 수 있다.
제어기(750)는 비디오 인코더(703)의 동작을 관리할 수 있다. 코딩 동안, 제어기(750)는 각각의 코딩된 픽처에 소정의 코딩된 픽처 유형을 할당할 수 있으며, 이것은 각각의 픽처에 적용될 수 있는 코딩 기술들에 영향을 미칠 수 있다. 예를 들어, 픽처들은 종종 다음과 같은 픽처 유형들 중 하나로서 할당될 수 있다:
인트라 픽처(I 픽처)는, 시퀀스 내의 임의의 다른 픽처를 예측 소스로서 이용하지 않고 코딩 및 디코딩될 수 있는 픽처일 수 있다. 일부 비디오 코덱은, 예를 들어 독립 디코더 리프레쉬(Independent Decoder Refresh)(IDR) 픽처들을 포함한, 상이한 유형들의 인트라 픽처들을 허용한다. 본 기술분야의 통상의 기술자라면, I 픽처들의 이들 변형들 및 그들 각각의 응용들 및 피처들을 알고 있다.
예측 픽처(P picture)는, 각각의 블록의 샘플 값들을 예측하기 위해 최대 하나의 움직임 벡터와 기준 인덱스를 이용하는 인트라 예측 또는 인터 예측을 이용하여 코딩 및 디코딩될 수 있는 픽처일 수 있다.
양방향 예측 픽처(B Picture)는, 각각의 블록의 샘플 값들을 예측하기 위해 최대 2개의 움직임 벡터와 기준 인덱스들을 이용하는 인트라 예측 또는 인터 예측을 이용하여 코딩 및 디코딩될 수 있는 픽처일 수 있다. 유사하게, 다중-예측 픽처들은 단일 블록의 재구성을 위해 2개보다 많은 기준 픽처 및 연관된 메타데이터를 이용할 수 있다.
소스 픽처들은 흔히 복수의 샘플 블록(예를 들어, 각각 4x4, 8x8, 4x8 또는 16x16 샘플의 블록)으로 공간적으로 세분되고 블록별 기반으로 코딩될 수 있다. 블록들은, 블록들의 각각의 픽처들에 적용되는 코딩 할당에 의해 결정되는 다른 (이미 코딩된) 블록들을 참조하여 예측적으로 코딩될 수 있다. 예를 들어, I 픽처들의 블록들은 비예측적으로 코딩될 수 있거나, 이들은 동일한 픽처의 이미 코딩된 블록들을 참조하여 예측적으로 코딩될 수 있다(공간 예측 또는 인트라 예측). P 픽처들의 픽셀 블록들은, 이전에 코딩된 하나의 기준 픽처를 참조하여 공간적 예측을 통해 또는 시간적 예측을 통해 예측적으로 코딩될 수 있다. B 픽처들의 블록들은, 이전에 코딩된 하나 또는 2개의 기준 픽처를 참조하여 공간적 예측을 통해 또는 시간적 예측을 통해 예측적으로 코딩될 수 있다.
비디오 인코더(703)는, ITU-T Rec. H.265와 같은, 미리결정된 비디오 코딩 기술 또는 표준에 따라 코딩 동작들을 수행할 수 있다. 그 동작에서, 비디오 인코더(703)는, 입력 비디오 시퀀스에서 시간적 및 공간적 중복성들을 활용하는 예측 코딩 동작들을 포함한 다양한 압축 동작을 수행할 수 있다. 따라서, 코딩된 비디오 데이터는, 이용 중인 비디오 코딩 기술 또는 표준에 의해 명시된 구문을 따를 수 있다.
비디오는 시간적 시퀀스로 된 복수의 소스 픽처(이미지)의 형태일 수 있다. 인트라-픽처 예측(종종 인트라 예측으로 약칭됨)은 주어진 픽처에서 공간적 상관을 이용하고, 인터-픽처 예측은 픽처들 사이의 (시간적 또는 다른) 상관을 이용한다. 한 예에서, 현재 픽처라고 불리는 인코딩/디코딩 중인 특정한 픽처는 블록들로 파티션화된다. 현재 픽처 내의 한 블록이 비디오에서 이전에 코딩되어 여전히 버퍼링된 기준 픽처 내의 한 기준 블록과 유사한 경우, 현재 픽처 내의 그 블록은 움직임 벡터라고 지칭되는 벡터에 의해 코딩될 수 있다. 움직임 벡터는 기준 픽처 내의 기준 블록을 가리키며, 다수의 기준 픽처가 이용 중인 경우 기준 픽처를 식별하는 제3 차원을 가질 수 있다.
일부 실시예에서, 쌍방-예측 기술이 인터-픽처 예측에 이용될 수 있다. 쌍방-예측 기술에 따르면, 비디오에서 디코딩 순서에 있어서 양쪽 모두가 현재 픽처보다 선행하는(그러나, 디스플레이 순서에서는 각각 과거 및 미래일 수 있는) 제1 기준 픽처 및 제2 기준 픽처와 같은 2개의 기준 픽처가 이용된다. 현재 픽처 내의 한 블록은 제1 기준 픽처 내의 제1 기준 블록을 가리키는 제1 움직임 벡터와, 제2 기준 픽처 내의 제2 기준 블록을 가리키는 제2 움직임 벡터에 의해 코딩될 수 있다. 이 블록은 제1 기준 블록과 제2 기준 블록의 조합에 의해 예측될 수 있다.
또한, 코딩 효율을 향상시키기 위해 인터-픽처 예측에서 병합 모드 기술이 이용될 수 있다.
본 개시내용의 일부 실시예에 따르면, 인터-픽처 예측들 및 인트라-픽처 예측들과 같은 예측들은 블록들의 단위에서 수행된다. 예를 들어, HEVC 표준에 따르면, 비디오 픽처들의 시퀀스 내의 픽처는 압축을 위해 코딩 트리 유닛들(CTU)로 파티션화되며, 픽처 내의 CTU들은, 64x64 픽셀, 32x32 픽셀, 또는 16x16 픽셀과 같은 동일한 크기를 갖는다. 일반적으로, CTU는, 1개의 루마 CTB와 2개의 크로마 CTB인, 3개의 코딩 트리 블록(CTB)을 포함한다. 각각의 CTU는 하나 또는 다수의 코딩 유닛(CU)으로 재귀적으로 쿼드트리 분할될 수 있다. 예를 들어, 64x64 픽셀들의 CTU는, 64x64 픽셀들의 1개의 CU, 또는 32x32 픽셀들의 4개의 CU, 또는 16x16 픽셀들의 16개의 CU로 분할될 수 있다. 예에서, 각각의 CU는, 인터 예측 유형 또는 인트라 예측 유형과 같은, CU에 대한 예측 유형을 결정하기 위해 분석된다. CU는, 시간적 및/또는 공간적 예측가능성에 따라 하나 이상의 예측 유닛(PU)으로 분할된다. 일반적으로, 각각의 PU는, 루마 예측 블록(PB) 및 2개의 크로마 PB를 포함한다. 실시예에서, 코딩(인코딩/디코딩)에서의 예측 동작은 예측 블록의 단위로 수행된다. 예측 블록의 한 예로서 루마 예측 블록을 이용하여, 예측 블록은, 8x8 픽셀들, 16x16 픽셀들, 8x16 픽셀들, 16x8 픽셀들 등과 같은, 픽셀들에 대한 값들(예를 들어, 루마 값들)의 행렬을 포함한다.
다양한 실시예에서, 상기의 메시 인코더(400) 및 메시 디코더(500)는, 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 메시 인코더(400) 및 메시 디코더(500)는, 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 등과 같은, 소프트웨어와 함께 또는 소프트웨어 없이 동작하는 하나 이상의 집적 회로(IC)와 같은 처리 회로로 구현될 수 있다. 또 다른 예에서, 메시 인코더(400) 및 메시 디코더(500)는 비휘발성의(또는 비일시적인) 컴퓨터 판독가능한 저장 매체에 저장된 명령어들을 포함하는 소프트웨어 또는 펌웨어로서 구현될 수 있다. 명령어들은, 하나 이상의 프로세서와 같은 처리 회로에 의해 실행될 때, 처리 회로로 하여금 메시 인코더(400) 및/또는 메시 디코더(500)의 기능을 수행하게 한다.
도 8은 3D x-y-z 좌표계(819)의 3D 패치(810)를 u-v 좌표계(859)의 2D UV 평면(850)에 맵핑하는 예를 도시한다. 일부 구현에서, 3D 패치(또는 단순히 패치)란, 일반적으로 3D 공간에서 메시에 대응하는 정점 세트에 의해 기술되는 표면의 연속적인 서브세트를 지칭할 수 있다. 비제한적인 예에서, 패치는, 3D 좌표들, 법선 벡터들, 색상, 텍스처, 및 기타 정보를 가진 정점들을 포함한다. 일부 구현에서, 2D 지오메트리 패치(또는 간단히 지오메트리 패치 또는 패치)란, 2D UV 평면에서 투사된 형상, 패치에 대응하는 투사된 형상, 및 패치에 대응하는 지오메트리 패치를 지칭할 수 있다.
UV 평면의 투사된 형상에서, 각각의 맵핑된 포인트(ui, vi)는 위치(xi, yi, zi)를 갖는 3D 정점에 대응하며, 여기서 i=1, 2, 3, 4 등이다. 예를 들어, 3D 좌표(x1, y1, z1)를 갖는 제1 정점(811)은 2D 좌표(u1, v1)를 갖는 제1 포인트(851)에 맵핑되고; 3D 좌표(x2, y2, z2)를 갖는 제2 정점(812)은 2D 좌표(u2, v2)를 갖는 제2 포인트(852)에 맵핑되고; 3D 좌표(x3, y3, z3)를 갖는 제3 정점(813)은 2D 좌표(u3, v3)를 갖는 제3 포인트(853)에 맵핑되고; 3D 좌표(x4, y4, z4)를 갖는 제4 정점(814)은 2D 좌표(u4, v4)를 갖는 제4 포인트(854)에 맵핑된다.
그 다음, 정점 지오메트리(즉, xi, yi, zi 값들)의 코딩은 2D 평면에서의 3채널 값들의 코딩으로 변환되고, 여기서(u, v) 위치에서의 각각의 3채널 값은 연관된 3D 위치에 대응한다. 예를 들어, 제1 위치(851)의 픽셀 값은 제1 정점(811)의 3D 좌표에 대응하는 3채널 값(또는 3개의 채널 값)을 포함하고, 여기서 3채널 값 중 제1 채널 값은 x1의 값에 대응하고, 3채널 값 중 제2 채널 값은 y1의 값에 대응하고, 3채널 값 중 제3 채널 값은 z1의 값에 대응한다.
따라서 하나 이상의 패치가 있는 투사된/맵핑된 2D 평면은 지오메트리 이미지라고 지칭되고, 따라서 임의의 이미지 또는 비디오 코덱, 예컨대, 4:4:4 색상 포맷들을 지원하는 비디오 코덱을 이용하여 코딩될 수 있다.
일부 구현에서, UV 평면 상의 투사된/맵핑된 포인트들의 픽셀 값들은 3D 정점으로부터 UV 평면까지의 거리에 대응할 수 있다. 따라서, 정점 위치 정보를 찾기 위해, 상이한 방향들의 다수의 평면이 이러한 투사에 이용될 수 있다. 이 경우, UV 평면 내의 각각의 위치(또는 포인트라고도 함)는 1채널 값이며, 거리를 기록한다. 이러한 이미지를 깊이 이미지라고 한다. 깊이 이미지들은, 임의의 이미지 또는 비디오 코덱, 예컨대, YUV4:2:0 또는 YUV4:0:0 색상 포맷들을 지원하는 비디오 코덱을 이용하여 코딩될 수 있다.
도 9와 도 10은 경계 정점들을 나타낸다. 경계 정점은 3D 공간에서의 단일 정점일 수 있고, 2D UV 공간에서의 하나보다 많은 포인트에 맵핑될 수 있다.
도 9를 참조하면, 경계 정점들(911, 912, 913, 914, 915, 및 916)이 2D UV 공간에서 정의될 수 있다. 경계 정점들은 연결된 성분(예컨대, 패치/차트)의 경계 에지들(예컨대, 921 및 922)에 위치하며, 비-경계 정점들(예컨대, 931)은 연결된 성분(패치/차트) 내부에 위치한다.
일부 구현에서, 경계 에지는, 에지가 하나의 삼각형에만 나타나는지를 체크함으로써 결정될 수 있고: 에지가 하나의 삼각형에만 나타나는 경우, 그 에지는 경계 에지이고; 에지가 2개보다 많은 삼각형에 나타나는 경우, 그 에지는 경계 에지가 아니다.
일부 구현에서, 경계 정점들의 다음과 같은 정보: 지오메트리 정보, 즉, 3D xyz 좌표들; 및/또는 2D UV 좌표들 중 일부 또는 전부가 중요하며, 코딩되어 비트스트림에서 시그널링될 수 있다.
일부 구현에서, 정점이 하나보다 많은 메시 표면 다각형에 의해 공유될 수 있다. 메시가 다수의 패치로 분할될 때, 이러한 정점들은 다수의 패치의 경계에 공통 정점들로서 나타날 수 있다.
비제한적인 예의 경우, 도 10을 참조하면, 인접한 2개의 3D 패치(1010 및 d1020)가 2D UV 평면(1050)에 맵핑될 수 있다. UV 평면 내의 투사된 형상들에서, 각각의 포인트(ui, vi)는 3D 좌표들 (xi, yi, zi)로 표현되는 3D 공간 내의 위치들을 갖는 3D 정점에 대응하며, 여기서 i는 1, 2, 3, 4 등과 같은 양의 정수이다. 그 다음, 정점 지오메트리의 코딩은 2D 평면에서의 3채널 값들의 코딩으로 변환되고, 여기서 (u, v) 위치에 있는 각각의 3채널 값은 연관된 3D 위치 (x, y, z)에 대응한다. 따라서 하나 이상의 패치가 있는 투사된 2D 평면은 지오메트리 이미지라고 지칭되고, 따라서 임의의 이미지 또는 비디오 코덱, 예컨대, 4:4:4 색상 포맷들을 지원하는 비디오 코덱을 이용하여 코딩될 수 있다.
특히, 2개의 3D 패치의 경계 상의 정점은 양쪽 패치들 모두에 의해 공유되는 공통 정점이 된다. 이러한 정점이 2D 평면 상에 투사되면, 그것은 하나보다 많은 UV 좌표를 갖는다. 예를 들어, 3D 공간의 제1 정점(1011)은 2D UV 공간의 제1 포인트(1051)에 맵핑될 수 있고, 3D 공간의 제2 정점(1012)은 2D UV 공간의 제2 포인트(1052) 및 제5 포인트(1062)에 맵핑될 수 있고, 3D 공간의 제3 정점(1013)은 2D UV 공간의 제3 포인트(1053) 및 제6 포인트(1063)에 맵핑될 수 있고, 3D 공간의 제4 정점(1014)은 2D UV 공간의 제4 포인트(1054)에 맵핑될 수 있다. 즉, UV 평면에서 그들 자신의 경계 지오메트리 값을 갖는 다수의 포인트는 동일한 3D 정점에 대응할 수 있고, 따라서, 동일한 지오메트리 정보를 갖기 위해서는 그들 자신의 경계 지오메트리 값이 동일해야 한다. 예를 들어, (1012)(x2, y2, z2) 및 (1013)(x3, y3, z3)에 있는 정점들은 패치 1010과 패치 1020 양쪽 모두의 경계에 있다. 이들 2개의 패치가 2D 평면에 투사될 때, 패치 1010의 경우, 이들 2개의 경계 정점에 대한 대응하는 UV 좌표들은 각각(1052)(u2, v2) 및 (1053)(u3, v3)이고; 패치 1020의 경우, 이들 2개의 경계 정점에 대한 대응하는 UV 좌표들은 각각 (1062)(u2', v2') 및 (1063)(u3', v3')이다. 이 경우, 위치 (1062)(u2', v2')는 (1052)(u2, v2)와는 상이하고, 위치 (1053)(u3, v3)는 (1063)(u3', v3')와는 상이하다는 점에 유의한다.
일부 구현에서, 경계 정점들의 지오메트리 정보가 디코딩 동안 고품질 3D 메시 재구성에 중요하다는 점을 고려하여, 경계 정점들의 지오메트리 정보를 인코딩, 시그널링, 및 디코딩하는데 있어서 몇 가지 문제/쟁점이 있다. 하나의 경계 정점이 2개의 패치에 나타나는 경우, 하나의 경계 정점은 2D UV 평면에서 2개의 포인트에 대응하고, 어떠한 압축도 적용되지 않았을 때 2개의 포인트의 경계 지오메트리 값은 동일해야 한다. 그러나, 압축이 상이한 패치들에 적용된 후, 동일한 정점 쌍의 지오메트리 정보는 달라질 수 있으며, 이것은 일부 압축 방법, 예컨대 양자화 프로세스의 무손실 성질로 인한 것일 수 있다. 이것은 디코딩 후 메시 재구성에 영향을 미칠 수 있다. 전형적으로, 경계 정점들에 대한 왜곡된 지오메트리에 의해, 표면이 한 패치로부터 또 다른 패치로 더 이상 매끄럽게 연결되지 않기 때문에, 재구성된 메시 표면에서 일부 균열이 보일 수 있다.
일부 구현에서, 경계 지오메트리 정보가 무손실 또는 준 무손실 프로세스들을 이용하여 코딩될 수 있다. 일부 구현에서, 경계 지오메트리 정보는 각각의 패치 내부의 다른 정점들과는 별개로 코딩될 수 있다. 상기 구현 중 일부는 3D 메스 압축의 인코딩/디코딩 효율에 영향을 미칠 수 있다.
본 개시내용은 경계 지오메트리 정보의 예측 코딩을 통해 3D 메시를 인코딩 또는 디코딩하고, 전술된 적어도 하나의 쟁점/문제를 해결함으로써, 지오메트리 정보를 압축하는 효율을 개선하고/하거나 효율적인 3D 메시 압축 기술들을 발전시키기 위한 다양한 실시예를 설명한다.
도 11은 경계 지오메트리 정보의 예측 코딩을 통해 3D 메시를 디코딩하기 위한 상기 구현들의 기저 원리를 따르는 예시적인 방법의 플로차트(1100)를 도시한다. 이 예시적인 디코딩 방법 흐름은 S1101에서 시작되고, 다음과 같은 단계들의 일부 또는 전부를 포함할 수 있다: S1110에서, 3차원 메시에 대한 지오메트리 패치를 포함하는 코딩된 비트스트림을 수신하는 단계; S1120에서, 3차원 메시 내의 경계 정점에 대한 지오메트리 좌표 세트에 대응하는 포인트 세트를 포함하는 지오메트리 패치에 대한 재구성된 지오메트리 이미지를, 코딩된 비트스트림으로부터 추출하는 단계; S1130에서, 지오메트리 좌표 세트에 기초하여, 경계 정점에 대한 3D 지오메트리 좌표를 도출하는 단계; S1140에서, 경계 정점에 대한 예측 잔차를 획득하는 단계; 및 S1150에서, 디바이스에 의해, 도출된 3D 지오메트리 좌표 및 예측 잔차에 기초하여, 경계 정점의 지오메트리 정보를 재구성하는 단계. 이 예시적인 방법은 S1199에서 중단된다.
일부 구현에서, 포인트 세트와 연관된 지오메트리 좌표 세트는 복수의 3D 지오메트리 좌표(x, y, z)를 포함할 수 있고, 포인트 세트 내의 각각의 포인트는 UV 평면에서의 2D 좌표(u, v) 및 픽셀 값(예컨대, RGB 채널들)을 포함할 수 있다. 각각의 포인트의 픽셀 값(예컨대, RGB 채널들)은 지오메트리 좌표 세트 내의 각각의 지오메트리 좌표(x, y, z)에 대응한다.
일부 구현에서, 코딩된 비트스트림은 다음과 같은 것: 코딩된 지오메트리 맵 또는 코딩된 메타데이터 중 적어도 하나를 포함한다. 예를 들어, 코딩된 비트스트림은, 하나 이상의 압축된 지오메트리 이미지/맵, 하나 이상의 압축된 텍스처 이미지/맵, 하나 이상의 압축된 점유 맵, 및/또는 압축된 보조 패치 정보를 포함할 수 있는, 도 4의 압축된 비트스트림일 수 있다. 일부 코딩된 비트스트림은 어떠한 점유 맵도 갖지 않을 수 있는데, 이것은 각각의 패치의 경계 정점이 시그널링될 때 점유 맵 정보가 디코더 측으로부터 추론될 수 있기 때문이다. 일부 구현에서, 지오메트리 패치는 코딩된 지오메트리 맵에 대응하는 패치들 중 하나이다.
일부 구현에서, 도출된 3D 지오메트리 좌표 및 예측 잔차에 기초하여 경계 정점의 지오메트리 정보를 재구성하는 단계는: P + Q*QS에 따라 경계 정점의 지오메트리 정보를 재구성하는 단계를 포함하고, 여기서 P는 도출된 3D 지오메트리 좌표이고, Q는 예측 잔차이고, 및 QS는 양자화 스텝 크기이다.
일부 구현에서 양자화 스텝 크기는, 다음과 같은 것: 시퀀스 헤더, 프레임 헤더, 또는 슬라이스 헤더 중 적어도 하나를 포함하는 고수준 구문(high-level syntax)(HLS)에서 시그널링된다.
일부 구현에서, 코딩된 비트스트림으로부터, 3차원 메시 내의 경계 정점에 대한 지오메트리 좌표 세트에 대응하는 포인트 세트를 포함하는 지오메트리 패치에 대한 재구성된 지오메트리 이미지를 추출하는 단계는: 코딩된 비트스트림으로부터, 지오메트리 이미지를 재구성하는 단계; 및 재구성된 지오메트리 이미지 내의 포인트 세트의 픽셀 값들에 기초하여 경계 정점에 대한 지오메트리 좌표 세트를 획득하는 단계를 포함한다.
일부 구현에서, 지오메트리 좌표 세트에 기초하여, 경계 정점에 대한 3D 지오메트리 좌표를 도출하는 단계는: 평균화된 3D 지오메트리 좌표를 획득하기 위해 지오메트리 좌표 세트의 평균을 계산하는 단계; 및 평균화된 3D 지오메트리 좌표를 경계 정점에 대한 도출된 3D 지오메트리 좌표로서 결정하는 단계를 포함한다.
일부 구현에서, 지오메트리 좌표 세트에 기초하여, 경계 정점에 대한 3D 지오메트리 좌표를 도출하는 단계는: 가중-평균화된 3D 지오메트리 좌표를 획득하기 위해 지오메트리 좌표 세트의 가중 평균을 계산하는 단계; 및 가중-평균화된 3D 지오메트리 좌표를 경계 정점에 대한 도출된 3D 지오메트리 좌표로서 결정하는 단계를 포함한다.
일부 구현에서, 지오메트리 좌표 세트는 제1 패치에 대한 제1 지오메트리 좌표 및 제2 패치에 대응하는 제2 지오메트리 좌표를 포함하고; 제1 패치는 제2 패치보다 더 큰 샘플링 레이트를 가지며, 제1 지오메트리 좌표의 제1 가중치는 가중 평균에 대한 제2 지오메트리 좌표의 제2 가중치보다 더 크다.
일부 구현에서, 지오메트리 좌표 세트는 제1 패치에 대한 제1 지오메트리 좌표 및 제2 패치에 대응하는 제2 지오메트리 좌표를 포함하고; 제1 패치는 제2 패치보다 더 큰 패치 크기를 가지며, 제1 지오메트리 좌표의 제1 가중치는 가중 평균에 대한 제2 지오메트리 좌표의 제2 가중치보다 더 크다.
일부 구현에서, 지오메트리 좌표 세트는 제1 패치에 대한 제1 지오메트리 좌표 및 제2 패치에 대응하는 제2 지오메트리 좌표를 포함하고; 제1 패치는 제2 패치보다 더 큰 양자화 레벨을 가지며, 제1 지오메트리 좌표의 제1 가중치는 가중 평균에 대한 제2 지오메트리 좌표의 제2 가중치보다 더 작다.
일부 구현에서, 지오메트리 좌표 세트에 기초하여, 경계 정점에 대한 3D 지오메트리 좌표를 도출하는 단계는: 지오메트리 좌표 세트에 기초하여 후보 목록을 확립하는 단계; 코딩된 비트스트림으로부터, 후보 목록에 대응하는 인덱스를 획득하는 단계; 및 인덱스 및 후보 목록에 기초하여 상기 경계 정점에 대한 도출된 3D 지오메트리 좌표를 결정하는 단계를 포함한다.
일부 구현에서, 후보 목록 내의 지오메트리 좌표들의 순서는 그들의 디코딩 순서에 따라 결정된다.
일부 구현에서, 코딩된 비트스트림으로부터, 3차원 메시 내의 경계 정점에 대한 지오메트리 좌표 세트에 대응하는 포인트 세트를 포함하는 지오메트리 패치에 대한 재구성된 지오메트리 이미지를 추출하는 단계는: 제2 경계 정점의 지오메트리 정보를 재구성하는 단계 ― 제2 경계 정점은 경계 정점이 재구성되기 전에 재구성됨 ―; 및 지오메트리 좌표 세트 내의 지오메트리 좌표로서 제2 경계 정점의 지오메트리 정보를 결정하는 단계를 포함한다.
일부 구현에서, 제2 경계 정점은 경계 정점의 이웃 정점이다.
일부 구현에서, 경계 지오메트리 정보의 예측 코딩을 통해 3D 메시를 디코딩하기 위한 또 다른 예시적인 방법은 다음과 같은 단계들 중 일부 또는 전부를 포함할 수 있다: 코딩된 비트스트림을 수신하는 단계; 코딩된 비트스트림으로부터, 경계 정점에 대한 복수의 지오메트리 예측을 추출하는 단계 ― 각각의 지오메트리 예측은 예측된 지오메트리 좌표 세트를 포함함 ―; 복수의 지오메트리 예측에 기초하여, 경계 정점에 대한 예측된 지오메트리 값을 결정하는 단계; 경계 정점에 대한 예측 잔차를 획득하는 단계; 및 예측된 지오메트리 값 및 예측 잔차에 기초하여 경계 정점의 지오메트리 정보를 재구성하는 단계를 포함한다.
일부 구현에서, 코딩된 비트스트림은 다음과 같은 것: 코딩된 지오메트리 맵 또는 코딩된 메타데이터 중 적어도 하나를 포함한다. 예를 들어, 코딩된 비트스트림은, 하나 이상의 압축된 지오메트리 이미지/맵, 하나 이상의 압축된 텍스처 이미지/맵, 하나 이상의 압축된 점유 맵, 및/또는 압축된 보조 패치 정보를 포함할 수 있는, 도 4의 압축된 비트스트림일 수 있다. 일부 코딩된 비트스트림은 어떠한 점유 맵도 갖지 않을 수 있는데, 이것은 각각의 패치의 경계 정점이 시그널링될 때 점유 맵 정보가 디코더 측으로부터 추론될 수 있기 때문이다. 일부 구현에서, 지오메트리 패치는 코딩된 지오메트리 맵에 대응하는 패치들 중 하나이다.
일부 구현에서, 예측된 지오메트리 값 및 예측 잔차에 기초하여 경계 정점의 지오메트리 정보를 재구성하는 단계는: P + Q*QS에 따라 경계 정점의 지오메트리 정보를 재구성하는 단계를 포함하고, 여기서 P는 예측된 지오메트리 값이고, Q는 예측 잔차이고, QS는 양자화 스텝 크기이다. 일부 구현에서, 예측된 지오메트리 값(P)은 3D 좌표(x_P, y_P, z_P) 세트를 포함하고/하거나 예측 잔차(Q)는 3D 좌표(x_Q, y_Q, z_Q) 세트를 포함한다. 양자화 스텝 크기(QS)는 3개의 3D 좌표 모두에 대해 동일한 단일 값(QS_common)일 수도 있고, 또는 3개의 값의 세트(QS_x, QS_y, QS_z)일 수도 있으며, 그 각각은 3D 좌표들 중 한 좌표에 대응한다. 재구성된 지오메트리 정보는 (x_P + x_Q * QS_common, y_P + y_Q * QS_common, z_P + z_Q * QS_common) 또는 (x_P + x_Q * QS_x, y_P + y_Q * QS_y, z_P + z_Q * QS_z)일 수 있다.
일부 구현에서 양자화 스텝 크기는, 다음과 같은 것: 시퀀스 헤더, 프레임 헤더, 또는 슬라이스 헤더 중 적어도 하나를 포함하는 고수준 구문(HLS)에서 시그널링된다.
일부 구현에서, 코딩된 비트스트림으로부터, 경계 정점에 대한 복수의 지오메트리 예측을 추출하는 단계는: 코딩된 비트스트림으로부터, 지오메트리 이미지를 재구성하는 단계; 및 각각, 경계 정점에 대응하는 지오메트리 이미지 내의 복수의 픽셀 각각에 기초하여 경계 정점에 대한 복수의 지오메트리 예측을 획득하는 단계를 포함한다.
일부 구현에서, 복수의 지오메트리 예측에 기초하여, 경계 정점에 대한 예측된 지오메트리 값을 결정하는 단계는: 평균화된 지오메트리 예측을 획득하기 위해 복수의 지오메트리 예측의 평균을 계산하는 단계; 및 경계 정점에 대한 예측된 지오메트리 값으로서 평균화된 지오메트리 예측을 결정하는 단계를 포함한다.
일부 구현에서, 복수의 지오메트리 예측에 기초하여, 경계 정점에 대한 예측된 지오메트리 값을 결정하는 단계는: 가중-평균화된 지오메트리 예측을 획득하기 위해 복수의 지오메트리 예측의 가중 평균을 계산하는 단계; 및 경계 정점에 대한 예측된 지오메트리 값으로서 가중-평균화된 지오메트리 예측을 결정하는 단계를 포함한다.
일부 구현에서, 복수의 지오메트리 예측은 제1 패치에 대한 제1 지오메트리 예측 및 제2 패치에 대응하는 제2 지오메트리 예측을 포함하고; 제1 패치는 제2 패치보다 큰 샘플링 레이트를 갖고; 제1 지오메트리 예측의 제1 가중치는 가중 평균에 대한 제2 지오메트리 예측의 제2 가중치보다 크다.
일부 구현에서, 복수의 지오메트리 예측은 제1 패치에 대한 제1 지오메트리 예측 및 제2 패치에 대응하는 제2 지오메트리 예측을 포함하고; 제1 패치는 제2 패치보다 큰 패치 크기를 갖고; 제1 지오메트리 예측의 제1 가중치는 가중 평균에 대한 제2 지오메트리 예측의 제2 가중치보다 크다.
일부 구현에서, 복수의 지오메트리 예측은 제1 패치에 대한 제1 지오메트리 예측 및 제2 패치에 대응하는 제2 지오메트리 예측을 포함하고; 제1 패치는 제2 패치보다 큰 양자화 레벨을 갖고; 제1 지오메트리 예측의 제1 가중치는 가중 평균에 대한 제2 지오메트리 예측의 제2 가중치보다 작다.
일부 구현에서, 복수의 지오메트리 예측에 기초하여, 경계 정점에 대한 예측된 지오메트리 값을 결정하는 단계는: 복수의 지오메트리 예측에 기초하여 예측 후보 목록을 확립하는 단계; 코딩된 비트스트림으로부터, 예측된 후보 목록에 대응하는 인덱스를 획득하는 단계; 및 인덱스 및 예측 후보 목록에 기초하여 예측된 지오메트리 값을 결정하는 단계를 포함한다.
일부 구현에서, 예측된 후보 목록 내의 지오메트리 예측들의 순서는 지오메트리 예측들의 디코딩 순서에 따라 결정된다.
일부 구현에서, 코딩된 비트스트림으로부터, 경계 정점에 대한 복수의 지오메트리 예측을 추출하는 단계는: 제2 경계 정점의 지오메트리 정보를 재구성하는 단계 ― 제2 경계 정점은 경계 정점이 재구성되기 전에 재구성됨 ―; 및/또는 복수의 지오메트리 예측 중 한 지오메트리 예측으로서 제2 경계 정점의 지오메트리 정보를 결정하는 단계를 포함한다.
일부 구현에서, 제2 경계 정점은 경계 정점의 이웃 정점이다.
하나 이상의 실시예 또는 구현에서의 다양한 단계는 개별적으로 또는 임의의 형태의 조합에 의해 적용될 수 있다. 본 개시내용의 다양한 실시예는 동적 메시 또는 정적 메시에 적용될 수 있다. 정적 메시들에서, 메시의 프레임이 하나만 있거나 메시 콘텐츠가 시간이 지나도 변경되지 않을 수 있다. 본 개시내용의 다양한 실시예는 깊이 이미지들/속성 이미지들/텍스처 이미지들 등의 코딩으로 확장될 수 있다.
일부 구현에서, xyz 좌표들을 포함하는 경계 정점의 지오메트리 정보(또는 경계 지오메트리 정보라고 함)는 재구성된 지오메트리 이미지(대응하는 uv 좌표들이 주어짐) 또는 또 다른 경계 정점에 대한 이전의 재구성된 경계 정보로부터 예측될 수 있다.
일부 구현에서, 인코더 측에서, 경계 지오메트리의 예측 잔차는 예측 값으로부터 원래의 지오메트리를 차감함으로써 도출될 수 있다, 즉, , 여기서 는 i번째 경계 정점의 원래의 xyz 좌표들이고, 는 i번째 경계 정점의 예측된 xyz 좌표들이고, 는 i번째 경계 정점의 xyz 좌표들의 예측 잔차이다. 그 다음, 예측 잔차는 양자화되고 엔트로피 코딩될 수 있다.
일부 구현에서, 예측 잔차는 스칼라 값에 의해 양자화될 수 있다, 즉, , 여기서 QS는 양자화 스텝 크기를 나타낸다. QS는 고수준 구문(HLS), 예컨대 시퀀스 헤더, 프레임 헤더, 슬라이스 헤더 등에서 시그널링될 수 있다.
일부 구현에서, 디코더 측에서, 재구성된 지오메트리 정보는 에 의해 도출될 수 있다.
일부 구현에서, 경계 지오메트리 정보의 예측은 다음과 같은 예시적인 방법들 중 적어도 하나에 따라 수행될 수 있다.
하나의 예시적인 방법의 경우, 경계 지오메트리 정보의 예측은 재구성된 지오메트리 이미지로부터 도출될 수 있다, 즉, . GIM_REC는 재구성된 지오메트리 이미지를 나타내고, 는 i번째 경계 정점의 예측된 지오메트리 xyz 좌표들이고, (, )는 i번째 경계 정점의 지오메트리 이미지에서의 UV 좌표들이다.
하나의 경계 정점 (xyz)이 다수의 uv 좌표에 대응할 수 있다는 것을 고려하면, 다수의 uv 좌표로 인한 다수의 에 기초한 예측을 획득하기 위해 다중-가설 예측들 중 하나 이상이 이용될 수 있다.
일부 구현에서, 다수의 예측의 평균화된 값이 i번째 경계 정점의 예측으로서 이용할 수 있다, 즉, , 여기서 은 동일한 xyz 지오메트리 위치에 대응하는 UV 좌표들의 총 개수이고, 는 j번째 대응관계이다.
일부 구현에서, 예측 후보 목록이 확립될 수 있고, 경계 정점의 예측으로서 예측된 후보 목록으로부터 하나의 항목이 선택될 수 있다. 하나의 이러한 예측기 정점은 다수의 예측 중 하나로부터 나올 수 있다. 비제한적인 예의 경우, 다수의 예측들의 인코더/디코딩 순서는 목록 내의 다수의 후보의 순서를 확립하는데 이용될 수 있다. 하나보다 많은 예측기가 현재의 정점의 지오메트리 정보를 예측하는 것이 허용된 경우, 비트스트림에서 인덱스가 시그널링되어 목록에서 어느 것이 선택되었는지를 나타낸다.
일부 구현에서, 다수의 예측의 가중 평균은 i번째 경계 정점의 예측으로서 이용될 수 있다, 즉, , 여기서, 는, 대응하는 패치의 샘플링 레이트, 대응하는 패치 크기 등과 같은, 많은 다른 요인들 중 적어도 하나에 기초하여 결정될 수 있는 j번째 대응관계의 가중 인자이다. 비제한적인 예의 경우, 패치의 샘플링 레이트가 클수록, 대응하는 가중 인자가 높아지고; 그리고/또는 패치의 패치 크기가 클수록, 대응하는 가중 인자가 높아진다.
일부 구현에서, 경계 지오메트리 정보의 예측은 이전의 재구성된 경계 정점들로부터 도출될 수 있다.
비제한적 예의 경우, 인코더 측에서, 경계 정점의 지오메트리 정보는 코딩되어 현재의 경계 정점을 코딩할 때 이용가능하게 되는 또 다른 경계 정점의 지오메트리 정보에 의해 예측되는 것으로서 인코딩될 수 있다, 즉, , 여기서, , i는 현재의 경계 정점에 대응하고, j는 코딩되어 현재의 경계 정점을 코딩할 때 이용가능하게 되는 경계 정점에 대응한다. 디코더 측에서, 경계 정점의 지오메트리 정보는, 디코딩(또는 재구성)되어 현재의 경계 정점을 디코딩할 때 이용가능하게 되는 또 다른 경계 정점의 지오메트리 정보에 의해 예측되는 것으로서 디코딩될 수 있다, 즉, , 여기서, , i는 현재의 경계 정점에 대응하고, j는 재구성된 경계 정점에 대응한다.
또 다른 비제한적인 예의 경우, 경계 정점의 지오메트리 정보는 동일한 패치의 이웃하는 경계 정점에 기초하여 예측될 수 있다. 3D 공간에서, 경계 정점 세트는 패치의 경계를 형성한다. 이들 정점들 중에서, 이웃하는 2개의 정점은 위치적으로 서로 근접하여, 그들의 지오메트리 정보도 서로 근접하여 높은 예측 효율로 이어진다.
또 다른 비제한적인 예의 경우, 경계 정점의 지오메트리 정보는 현재의 경계 정점의 지오메트리 정보를 코딩할 때 코딩되어 이용가능하게 된 다수의 경계 정점의 지오메트리 정보에 의해 예측될 수 있다. 현재의 경계 정점을 예측하기 위해 (다수의 UV 좌표를 통해) 다수의 대응하는 경계 정점이 이용가능한 경우, 다음과 같은 예측 메커니즘이 적용될 수 있다.
하나의 예측 메커니즘에서, 예측 후보 목록이 확립될 수 있다. 하나의 이러한 예측기 정점은 하나의 이전의 코딩된 패치로부터 나올 수 있다. 비제한적인 예의 경우, 패치들의 인코더/디코딩 순서는 목록에서 다수의 후보의 순서를 확립하는데 이용될 수 있다. 하나보다 많은 예측기가 현재의 정점의 지오메트리 정보를 예측하는 것이 허용된 경우, 비트스트림에서 인덱스가 시그널링되어 목록에서 어느 것이 선택되었는지를 나타낸다.
또 다른 예측 메커니즘에서, 현재의 경계 정점을 예측하기 위해 (적용가능한 경우) 다수의 후보의 평균 또는 가중 평균이 생성될 수 있다. 각각의 후보에 대한 가중 파라미터는 하나 이상의 인자에 따라 결정될 수 있다. 한 비제한적인 예의 경우, 가중 인자는 후보 예측기가 코딩될 때 (QS와 같은) 양자화 레벨에 기초하여 결정될 수 있다. 예를 들어, 더 큰 양자화 스텝 크기(QS)에 대응하는 과도하게 양자화된 후보는 더 작은 가중치에 대응할 수 있다.
본 개시내용에서 개시된 기술들은 별개로 또는 임의의 순서로 조합되어 이용될 수 있다. 또한, 각각의 기술들(예를 들어, 방법들, 실시예들), 인코더 및 디코더는 처리 회로(예를 들어, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 일부 예에서, 하나 이상의 프로세서는 비일시적인 컴퓨터 판독가능한 매체에 저장된 프로그램을 실행한다.
위에서 설명된 기술들은 컴퓨터 판독가능한 명령어들을 이용하여 컴퓨터 소프트웨어로서 구현될 수 있고, 하나 이상의 컴퓨터 판독가능한 매체에 물리적으로 저장될 수 있다. 예를 들어, 도 12는 개시된 주제의 소정의 실시예들을 구현하기에 적합한 컴퓨터 시스템(1300)을 도시한다.
컴퓨터 소프트웨어는, 하나 이상의 컴퓨터 중앙 처리 유닛(CPU)들, 그래픽 처리 유닛(GPU)들 등에 의해, 직접, 또는 인터프리팅을 통해, 마이크로-코드 실행을 통해서 등에 의해 실행될 수 있는 명령어들을 포함한 코드를 생성하기 위해, 어셈블리, 컴파일, 링킹 또는 그 유사한 메커니즘들을 거칠 수 있는 임의의 적절한 머신 코드 또는 컴퓨터 언어를 이용하여 코딩될 수 있다.
명령어들은, 예를 들어 개인용 컴퓨터들, 태블릿 컴퓨터들, 서버들, 스마트폰들, 게임 디바이스들, 사물 인터넷 디바이스들 등을 포함한, 다양한 유형의 컴퓨터 또는 컴포넌트에서 실행될 수 있다.
컴퓨터 시스템(1300)에 대해 도 12에 도시된 컴포넌트들은 본질적으로 예시적이며, 본 개시내용의 실시예들을 구현하는 컴퓨터 소프트웨어의 이용 또는 기능성의 범위에 대한 어떠한 제한을 암시하기 위한 것은 아니다. 컴포넌트들의 구성이 컴퓨터 시스템(1300)의 실시예들에 예시된 컴포넌트들 중 어느 하나 또는 조합과 관련된 임의의 종속성 또는 요구조건을 갖는 것으로서 해석되어서도 안된다.
컴퓨터 시스템(1300)은 소정의 휴먼 인터페이스 입력 디바이스들을 포함할 수 있다. 이러한 휴먼 인터페이스 입력 디바이스는, 예를 들어 촉각 입력(예를 들어: 키스트로크들, 스와이프들, 데이터 글러브 움직임들), 오디오 입력(예를 들어: 음성, 박수), 시각적 입력(예를 들어: 제스처들), 후각 입력(미도시)을 통해 한 명 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 휴먼 인터페이스 디바이스들은, 오디오(예를 들어: 음성, 음악, 주변 소리), 이미지들(예를 들어: 스캔된 이미지들, 스틸 이미지 카메라로부터 획득된 사진 이미지들), 비디오(예를 들어, 2차원 비디오, 입체 비디오를 포함하는 3차원 비디오)와 같은, 인간에 의한 의식적 입력에 반드시 직접 관련될 필요는 없는 소정의 미디어를 캡처하는데에도 이용될 수 있다.
입력 휴먼 인터페이스 디바이스들은, 키보드(1301), 마우스(1302), 트랙패드(1303), 터치 스크린(1310), 데이터 글러브(미도시), 조이스틱(1305), 마이크로폰(1306), 스캐너(1307), 카메라(1308) 중 하나 이상(각각의 도시된 것들 중 하나만)을 포함할 수 있다.
컴퓨터 시스템(1300)은 또한, 소정의 휴먼 인터페이스 출력 디바이스들을 포함할 수 있다. 이러한 휴먼 인터페이스 출력 디바이스들은, 예를 들어 촉각 출력, 소리, 빛 및 냄새/미각을 통해 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 휴먼 인터페이스 출력 디바이스들은, 촉각적 출력 디바이스들(예를 들어, 터치스크린(1310), 데이터 클러브(미도시), 또는 조이스틱(1305)에 의한 촉각 피드백이지만, 입력 디바이스들로서 역할하지 않는 촉각적 피드백 디바이스들도 있을 수 있음), 오디오 출력 디바이스들(예를 들어: 스피커(1309), 헤드폰(미도시)), 시각적 출력 디바이스들(예를 들어, CRT 스크린들, LCD 스크린들, 플라즈마 스크린들, OLED 스크린들을 포함하는 스크린들(1310), 각각은 터치스크린 입력 능력이 있거나 없음, 각각은 촉각 피드백 능력이 있거나 없음 ― 그 일부는 입체 출력, 가상 현실 안경(미도시), 홀로그래픽 디스플레이들 및 스모크 탱크(미도시)와 같은 수단을 통해 2차원 시각적 출력 또는 3차원 이상의 출력을 출력할 수 있음), 및 프린터들(미도시)을 포함할 수 있다.
컴퓨터 시스템(1300)은 또한, 인간이 액세스할 수 있는 저장 디바이스들과, CD/DVD 또는 이와 유사한 매체(1321)를 갖는 CD/DVD ROM/RW 드라이브(1320), 썸 드라이브(1322), 착탈식 하드 드라이브 솔리드-스테이트 드라이브(1323), 테이프 및 플로피 디스크(미도시) 등과 같은 레거시 자기 매체, 보안 동글(미도시) 등과 같은 전문화된 ROM/ASIC/PLD 기반의 디바이스들 등을 포함한, 광학 매체와 같은 그들의 연관된 매체를 포함할 수 있다.
본 기술분야의 통상의 기술자라면 또한, 본 개시된 주제와 관련하여 사용되는 용어 "컴퓨터 판독가능한 매체"는, 전송 매체, 캐리어 파들, 또는 다른 일시적 신호들을 포함하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(1300)은 또한, 하나 이상의 통신 네트워크(1355)에 대한 인터페이스(1354)를 포함할 수 있다. 네트워크들은, 예를 들어, 무선, 유선, 광학적일 수 있다. 네트워크들은 또한, 로컬, 광역, 대도시권, 차량 및 산업, 실시간, 지연 허용 등일 수 있다. 네트워크들의 예들은, Ethernet, 무선 LAN들, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크들, 케이블 TV, 위성 TV, 지상파 방송 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크, CANBus를 포함하는 차량 및 산업용 등과 같은 근거리 통신 네트워크들을 포함한다. 소정의 네트워크들은 일반적으로 소정의 범용 데이터 포트들 또는 주변 버스들(1349)(예를 들어, 컴퓨터 시스템(1300)의 USB 포트들 등)에 부착된 외부 네트워크 인터페이스 어댑터들을 요구한다; 다른 것들은, 일반적으로, 후술되는 바와 같이, 시스템 버스로의 부착(예를 들어, PC 컴퓨터 시스템 내로의 Ethernet 인터페이스 또는 스마트폰 컴퓨터 시스템 내로의 셀룰러 네트워크 인터페이스)에 의해 컴퓨터 시스템(1300)의 코어에 통합된다. 이들 네트워크들 중 임의의 것을 이용하여, 컴퓨터 시스템((1300)은 다른 엔티티들과 통신할 수 있다. 이러한 통신은, 단방향이거나, 수신 전용(예를 들어, 방송 TV)이거나, 단방향 전송 전용(예를 들어, 소정의 CANbus 디바이스들에 대한 CANbus)이거나, 또는 예를 들어 로컬 또는 광역 디지털 네트워크들을 이용한 다른 컴퓨터 시스템들과의 양방향일 수 있다. 소정의 프로토콜들 및 프로토콜 스택들은 전술된 바와 같이 이들 네트워크들 및 네트워크 인터페이스들 각각에서 이용될 수 있다.
전술된 휴먼 인터페이스 디바이스들, 인간이 액세스할 수 있는 저장 디바이스들, 및 네트워크 인터페이스들은, 컴퓨터 시스템(1300)의 코어(1340)에 부착될 수 있다.
코어(1340)는, 하나 이상의 중앙 처리 유닛(CPU)(1341), 그래픽 처리 유닛(GPU)(1342), FPGA(Field Programmable Gate Areas)(1343) 형태의 전문화된 프로그램가능한 처리 유닛, 소정의 작업들을 위한 하드웨어 가속기(1344), 그래픽 어댑터(1350) 등을 포함할 수 있다. 이들 디바이스들은, 판독 전용 메모리(ROM)(1345), 랜덤 액세스 메모리(1346), 사용자가 액세스할 수 없는 내부 하드 드라이브들, SSD들 등과 같은 내부 대용량 스토리지(1347)와 함께, 시스템 버스(1348)를 통해 접속될 수 있다. 일부 컴퓨터 시스템에서, 시스템 버스(1348)는, 추가적인 CPU들, GPU 등에 의한 확장을 가능하게 하는 하나 이상의 물리적 플러그의 형태로 액세스될 수 있다. 주변 디바이스들은 코어의 시스템 버스(1348)에 직접 부착되거나, 주변 버스(1349)를 통해 부착될 수 있다. 한 예에서, 스크린(1310)은 그래픽 어댑터(1350)에 접속될 수 있다. 주변 버스를 위한 아키텍처들은 PCI, USB 등을 포함한다.
CPU들((1341), GPU들(1342), FPGA들(1343), 및 가속기들(1344)은, 조합하여 전술된 컴퓨터 코드를 구성할 수 있는 소정의 명령어들을 실행할 수 있다. 그 컴퓨터 코드는 ROM(1345) 또는 RAM(1346)에 저장될 수 있다. 과도 데이터가 RAM(1346)에 저장될 수도 있는 반면, 영구 데이터는 예를 들어 내부 대용량 스토리지(1347)에 저장될 수 있다. 임의의 메모리 디바이스로의 고속 저장 및 리트리브는, 하나 이상의 CPU(1341), GPU((1342), 대용량 스토리지(1347), ROM(1345), RAM(1346) 등과 밀접하게 연관될 수 있는 캐시 메모리의 이용을 통해 가능하게 될 수 있다.
컴퓨터 판독가능한 매체는 다양한 컴퓨터-구현된 동작을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시내용의 목적을 위해 특별히 설계되고 구성된 것일 수 있거나, 이들은, 컴퓨터 소프트웨어 기술분야의 기술자들에게 널리 공지되고 이용가능한 종류일 수 있다.
제한이 아닌 예로서, 아키텍처(1300)를 갖는 컴퓨터 시스템, 특히 코어(1340)는 하나 이상의 유형의 컴퓨터 판독가능한 매체에 구현된 소프트웨어를 실행하는 (CPU들, GPU들, FPGA, 가속기들 등을 포함한) 프로세서(들)의 결과로서 기능성을 제공할 수 있다. 이러한 컴퓨터 판독가능한 매체는, 코어-내부 대용량 스토리지(1347)) 또는 ROM(1345)과 같은 비일시적인 성질을 갖는 코어(1340)의 소정 스토리지 뿐만 아니라, 위에서 소개된 바와 같은 사용자 액세스가능한 대용량 스토리지와 연관된 매체일 수 있다. 본 개시내용의 다양한 실시예들을 구현하는 소프트웨어는 이러한 디바이스들에 저장되고 코어(1340)에 의해 실행될 수 있다. 컴퓨터 판독가능한 매체는, 특정한 수요에 따라 하나 이상의 메모리 디바이스 또는 칩을 포함할 수 있다. 소프트웨어는, 코어(1340) 및 특히 (CPU, GPU, FPGA 등을 포함한) 내부의 프로세서들로 하여금, RAM(1346)에 저장된 데이터 구조들을 정의하고 소프트웨어에 의해 정의된 프로세스들에 따라 이러한 데이터 구조들을 수정하는 것을 포함한, 여기서 설명된 특정한 프로세스들 또는 특정한 프로세스들의 특정한 부분들을 실행하게 할 수 있다. 추가로 또는 대안으로서, 컴퓨터 시스템은, 여기서 설명된 특정한 프로세스들 또는 특정한 프로세스들의 특정한 부분들을 실행하는 소프트웨어를 대신하여 또는 이와 함께 동작할 수 있는, 회로(예를 들어, 가속기(1344))에 하드와이어드 또는 달리 구현되는 로직의 결과로서 기능성을 제공할 수 있다. 소프트웨어에 대한 참조는 로직을 포함할 수 있으며, 적절하다면, 그 반대의 경우도 마찬가지이다. 컴퓨터 판독가능한 매체에 대한 언급은, 적절한 경우, 실행을 위한 소프트웨어를 저장하는 회로(집적 회로(IC) 등), 실행을 위한 로직을 구현하는 회로, 또는 양쪽 모두를 포함할 수 있다. 본 개시내용은 하드웨어와 소프트웨어의 임의의 적절한 조합을 포괄한다.
본 개시내용은 수개의 예시적인 실시예들을 설명하였지만, 본 개시내용의 범위 내에 속하는, 변경들, 치환들, 및 다양한 대체 균등물들이 있다. 따라서, 본 기술분야의 통상의 기술자라면, 본 명세서에 명시적으로 도시되거나 설명되지는 않았더라도, 본 개시내용의 원리를 구현하고 그에 따라 그 사상과 범위 내에 속하는, 수많은 시스템 및 방법을 고안할 수 있다는 것을 이해할 것이다.
Claims (16)
- 3차원 메시에 대한 지오메트리 패치를 디코딩하기 위한 방법으로서,
명령어들을 저장하는 메모리 및 상기 메모리와 통신하는 프로세서를 포함하는 디바이스에 의해, 3차원 메시에 대한 지오메트리 패치를 포함하는 코딩된 비트스트림을 수신하는 단계;
상기 디바이스에 의해 상기 코딩된 비트스트림으로부터, 상기 3차원 메시 내의 경계 정점에 대한 지오메트리 좌표 세트(set of geometry coordinates)에 대응하는 포인트 세트(set of points)를 포함하는 상기 지오메트리 패치에 대한 재구성된 지오메트리 이미지를 추출하는 단계;
상기 디바이스에 의해, 상기 지오메트리 좌표 세트에 기초하여, 상기 경계 정점에 대한 3D 지오메트리 좌표를 도출하는 단계;
상기 디바이스에 의해, 상기 경계 정점에 대한 예측 잔차를 획득하는 단계; 및
상기 디바이스에 의해, 상기 도출된 3D 지오메트리 좌표와 상기 예측 잔차에 기초하여 상기 경계 정점의 지오메트리 정보를 재구성하는 단계
를 포함하는, 방법. - 제1항에 있어서,
상기 코딩된 비트스트림은 다음과 같은 것:
코딩된 지오메트리 맵, 또는
코딩된 메타데이터
중 적어도 하나를 포함하는, 방법. - 제1항에 있어서, 상기 도출된 3D 지오메트리 좌표와 상기 예측 잔차에 기초하여 상기 경계 정점의 지오메트리 정보를 재구성하는 단계는,
P + Q*QS에 따라 상기 경계 정점의 지오메트리 정보를 재구성하는 단계를 포함하고, P는 상기 도출된 3D 지오메트리 좌표이고, Q는 상기 예측 잔차이고, QS는 양자화 스텝 크기(quantization step size)인, 방법. - 제3항에 있어서,
상기 양자화 스텝 크기는, 다음과 같은 것: 시퀀스 헤더, 프레임 헤더, 또는 슬라이스 헤더 중 적어도 하나를 포함하는 고수준 구문(high-level syntax)(HLS)에서 시그널링되는, 방법. - 제1항에 있어서, 상기 코딩된 비트스트림으로부터, 상기 3차원 메시 내의 상기 경계 정점에 대한 지오메트리 좌표 세트에 대응하는 포인트 세트를 포함하는 상기 지오메트리 패치에 대한 재구성된 지오메트리 이미지를 추출하는 단계는,
상기 코딩된 비트스트림으로부터, 지오메트리 이미지를 재구성하는 단계; 및
상기 재구성된 지오메트리 이미지 내의 상기 포인트 세트의 픽셀 값들에 기초하여 상기 경계 정점에 대한 상기 지오메트리 좌표 세트를 획득하는 단계
를 포함하는, 방법. - 제1항에 있어서, 상기 지오메트리 좌표 세트에 기초하여, 상기 경계 정점에 대한 상기 3D 지오메트리 좌표를 도출하는 단계는,
평균화된 3D 지오메트리 좌표를 획득하기 위해 상기 지오메트리 좌표 세트의 평균을 계산하는 단계; 및
상기 평균화된 3D 지오메트리 좌표를 상기 경계 정점에 대한 도출된 3D 지오메트리 좌표로서 결정하는 단계
를 포함하는, 방법. - 제1항에 있어서, 상기 지오메트리 좌표 세트에 기초하여, 상기 경계 정점에 대한 상기 3D 지오메트리 좌표를 도출하는 단계는,
가중 평균화된 3D 지오메트리 좌표를 획득하기 위해 상기 지오메트리 좌표 세트의 가중 평균을 계산하는 단계; 및
상기 가중 평균화된 3D 지오메트리 좌표를 상기 경계 정점에 대한 상기 도출된 3D 지오메트리 좌표로서 결정하는 단계
를 포함하는, 방법. - 제7항에 있어서,
상기 지오메트리 좌표 세트는 제1 패치에 대한 제1 지오메트리 좌표 및 제2 패치에 대응하는 제2 지오메트리 좌표를 포함하고;
상기 제1 패치는 상기 제2 패치보다 큰 샘플링 레이트를 갖고;
상기 제1 지오메트리 좌표의 제1 가중치는 상기 가중 평균에 대한 상기 제2 지오메트리 좌표의 제2 가중치보다 큰, 방법. - 제7항에 있어서,
상기 지오메트리 좌표 세트는 제1 패치에 대한 제1 지오메트리 좌표 및 제2 패치에 대응하는 제2 지오메트리 좌표를 포함하고;
상기 제1 패치는 상기 제2 패치보다 큰 패치 크기를 갖고;
상기 제1 지오메트리 좌표의 제1 가중치는 상기 가중 평균에 대한 상기 제2 지오메트리 좌표의 제2 가중치보다 큰, 방법. - 제7항에 있어서,
상기 지오메트리 좌표 세트는 제1 패치에 대한 제1 지오메트리 좌표 및 제2 패치에 대응하는 제2 지오메트리 좌표를 포함하고;
상기 제1 패치는 상기 제2 패치보다 큰 양자화 레벨을 갖고;
상기 제1 지오메트리 좌표의 제1 가중치는 상기 가중 평균에 대한 상기 제2 지오메트리 좌표의 제2 가중치보다 작은, 방법. - 제1항에 있어서, 상기 지오메트리 좌표 세트에 기초하여, 상기 경계 정점에 대한 상기 3D 지오메트리 좌표를 도출하는 단계는,
상기 지오메트리 좌표 세트에 기초하여 후보 목록을 확립하는 단계;
상기 코딩된 비트스트림으로부터, 상기 후보 목록에 대응하는 인덱스를 획득하는 단계; 및
상기 인덱스 및 상기 후보 목록에 기초하여 상기 경계 정점에 대한 상기 도출된 3D 지오메트리 좌표를 결정하는 단계
를 포함하는, 방법. - 제11항에 있어서,
상기 후보 목록 내의 지오메트리 좌표들의 순서는 그들의 디코딩 순서에 따라 결정되는, 방법. - 제1항에 있어서, 상기 코딩된 비트스트림으로부터, 상기 3차원 메시 내의 상기 경계 정점에 대한 상기 지오메트리 좌표 세트에 대응하는 상기 포인트 세트를 포함하는 상기 지오메트리 패치에 대한 상기 재구성된 지오메트리 이미지를 추출하는 단계는,
제2 경계 정점의 지오메트리 정보를 재구성하는 단계 ― 상기 제2 경계 정점은 상기 경계 정점이 재구성되기 전에 재구성됨 ―; 및
상기 제2 경계 정점의 지오메트리 정보를 상기 지오메트리 좌표 세트 내의 지오메트리 좌표로서 결정하는 단계
를 포함하는, 방법. - 제13항에 있어서,
상기 제2 경계 정점은 상기 경계 정점의 이웃 정점인, 방법. - 3차원 메시에 대한 지오메트리 패치를 디코딩하기 위한 장치로서,
명령어들을 저장하는 메모리; 및
상기 메모리와 통신하는 프로세서
를 포함하고, 상기 프로세서가 상기 명령어들을 실행할 때, 상기 프로세서는 상기 장치로 하여금 제1항 내지 제14항 중 어느 한 항의 방법을 수행하게 하도록 구성되는, 장치. - 명령어들을 저장하는 비일시적인 컴퓨터 판독가능한 저장 매체로서, 상기 명령어들이 프로세서에 의해 실행될 때, 상기 명령어들은 상기 프로세서로 하여금 제1항 내지 제14항 중 어느 한 항의 방법을 수행하게 하도록 구성되는, 비일시적인 컴퓨터 판독가능한 저장 매체.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263319976P | 2022-03-15 | 2022-03-15 | |
US63/319,976 | 2022-03-15 | ||
US17/973,792 | 2022-10-26 | ||
US17/973,792 US20230298216A1 (en) | 2022-03-15 | 2022-10-26 | Predictive coding of boundary geometry information for mesh compression |
PCT/US2022/048355 WO2023177422A1 (en) | 2022-03-15 | 2022-10-31 | Predictive coding of boundary geometry information for mesh compression |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230146629A true KR20230146629A (ko) | 2023-10-19 |
Family
ID=88023883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237031887A KR20230146629A (ko) | 2022-03-15 | 2022-10-31 | 메시 압축을 위한 경계 지오메트리 정보의 예측 코딩 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230298216A1 (ko) |
JP (1) | JP2024515984A (ko) |
KR (1) | KR20230146629A (ko) |
WO (1) | WO2023177422A1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230079743A1 (en) * | 2021-09-16 | 2023-03-16 | Qualcomm Incorporated | Multiple inter predictors with decoder side motion vector derivation for video coding |
US20240020935A1 (en) * | 2022-07-15 | 2024-01-18 | The Boeing Company | Modeling system for 3d virtual model |
US11842521B1 (en) * | 2023-05-31 | 2023-12-12 | Illuscio, Inc. | Systems and methods for compressing three-dimensional image data |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180053324A1 (en) * | 2016-08-19 | 2018-02-22 | Mitsubishi Electric Research Laboratories, Inc. | Method for Predictive Coding of Point Cloud Geometries |
US11016470B2 (en) * | 2018-11-09 | 2021-05-25 | Autodesk, Inc. | Conversion of mesh geometry to watertight boundary representation |
US11127166B2 (en) * | 2019-03-01 | 2021-09-21 | Tencent America LLC | Method and apparatus for enhanced patch boundary identification for point cloud compression |
US11798196B2 (en) * | 2020-01-08 | 2023-10-24 | Apple Inc. | Video-based point cloud compression with predicted patches |
KR102659806B1 (ko) * | 2020-01-14 | 2024-04-22 | 후아웨이 테크놀러지 컴퍼니 리미티드 | V-pcc용 스케일링 파라미터 |
US20230290063A1 (en) * | 2022-03-11 | 2023-09-14 | Apple Inc. | Adaptive tessellation for efficient dynamic mesh encoding, decoding, processing, and rendering |
-
2022
- 2022-10-26 US US17/973,792 patent/US20230298216A1/en active Pending
- 2022-10-31 JP JP2023566651A patent/JP2024515984A/ja active Pending
- 2022-10-31 KR KR1020237031887A patent/KR20230146629A/ko not_active Application Discontinuation
- 2022-10-31 WO PCT/US2022/048355 patent/WO2023177422A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP2024515984A (ja) | 2024-04-11 |
US20230298216A1 (en) | 2023-09-21 |
WO2023177422A1 (en) | 2023-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102584867B1 (ko) | 포인트 클라우드 코딩을 위한 방법 및 장치 | |
US20230063575A1 (en) | Patch zippering for mesh compression | |
US20230298216A1 (en) | Predictive coding of boundary geometry information for mesh compression | |
JP7476432B2 (ja) | メッシュ復元のための方法、装置及びコンピュータプログラム | |
US12112510B2 (en) | Convolutional approach to fast and compact packing of 3D mesh into 2D maps | |
US20230177738A1 (en) | Dynamic mesh compression based on point cloud compression | |
US20230090677A1 (en) | Coding connectivity in vertex reordering methods for mesh compression | |
KR20230145176A (ko) | 메시 압축에서 패치들에 대한 무중첩 속성 체크 | |
JP2023552114A (ja) | メッシュ展開のための方法、装置及びプログラム | |
US12056904B2 (en) | Mesh compression with constrained geometry dynamic range | |
JP7504298B2 (ja) | 3次元(3d)メッシュのuv座標を処理するための方法、装置及びコンピュータプログラム | |
US11967025B2 (en) | Detection of boundary loops in non-manifold meshes | |
US20230014820A1 (en) | Methods and apparatuses for dynamic mesh compression | |
CN117083636A (zh) | 用于网格压缩的边界几何信息的预测编码 | |
KR20230132818A (ko) | 차트 기반 메시 압축을 위한 방법 및 장치 | |
KR20230137993A (ko) | 추론된 텍스처 좌표들을 갖는 메시 압축 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal |