KR20240093873A - 메시 압축의 텍스처 좌표 코딩 - Google Patents

메시 압축의 텍스처 좌표 코딩 Download PDF

Info

Publication number
KR20240093873A
KR20240093873A KR1020247017053A KR20247017053A KR20240093873A KR 20240093873 A KR20240093873 A KR 20240093873A KR 1020247017053 A KR1020247017053 A KR 1020247017053A KR 20247017053 A KR20247017053 A KR 20247017053A KR 20240093873 A KR20240093873 A KR 20240093873A
Authority
KR
South Korea
Prior art keywords
prediction
current vertex
mesh
vertex
list
Prior art date
Application number
KR1020247017053A
Other languages
English (en)
Inventor
쥔 티옌
차오 황
샤오종 수
시앙 장
샨 리우
Original Assignee
텐센트 아메리카 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텐센트 아메리카 엘엘씨 filed Critical 텐센트 아메리카 엘엘씨
Publication of KR20240093873A publication Critical patent/KR20240093873A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection 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
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

현재 정점의 복수의 후보 예측이 결정된다. 현재 정점은 메시의 복수의 정점 중 하나이다. 복수의 후보 예측 각각은 메시 내의 복수의 삼각형 중 각각의 삼각형에 기초하여 결정되고 2차원(2D) 도메인의 2D 좌표를 포함한다. 복수의 후보 예측의 평균 예측이 계산된다. 현재 정점의 2D 예측은 복수의 후보 예측과 평균 예측을 포함하는 예측 리스트에서 선택된다. 현재 정점의 3차원(3D) 예측은 메시 내의 현재 정점의 하나 이상의 이웃 정점에 기초하여 결정된다. 현재 정점의 예측 오차를 포함하는 예측 잔차가 인코딩된다. 예측 잔차는 선택된 2D 예측과 결정된 현재 정점의 3D 예측에 기초하여 획득된다.

Description

메시 압축의 텍스처 좌표 코딩
본 출원은 2022년 7월 12일에 출원된 미국 가출원 제63/388,522호 ('메시 압축의 텍스처 좌표 코딩')에 대한 우선권의 이익을 주장하는, 2023년 6월 28일에 출원된 미국 특허 출원 제18/215,230호 ('메시 압축의 텍스처 좌표 코딩')에 대한 우선권의 이익을 주장한다. 선행 출원의 개시 내용 전체가 참조로서 본 명세서에 포함된다.
본 개시는 메시 처리에 관련된 실시예를 포함한다.
본 명세서에서 제공된 배경 설명은 본 개시의 맥락을 일반적으로 제시하기 위한 것이다. 이러한 배경 섹션에서 설명되는 정도로 현재 명명된 발명자의 작업과 출원 당시 선행 기술로서 인정되지 않을 수 있는 설명의 측면은 본 개시에 반하는 선행 기술로서 명시적으로나 묵시적으로 인정되지 않는다.
3차원(three-dimensional, 3D) 캡처, 모델링 및 렌더링의 발전으로 다양한 플랫폼과 장치에 걸쳐 3D 컨텐츠의 유비쿼터스 존재가 촉진되었다. 요즘, 한 대륙에서 아기의 첫 걸음을 캡처하고, 아기의 조부모가 다른 대륙에서 아기의 모습을 보고(경우에 따라 상호 작용함) 완전한 몰입형 경험을 즐길 수 있도록 하는 것이 가능하다. 이러한 현실감을 달성하기 위해, 모델은 더욱 정교해지고 있으며, 이러한 모델의 생성과 소비에는 막대한 양의 데이터가 연결된다. 3D 메시가 이러한 몰입형 컨텐츠를 표현하는 데 널리 사용된다.
본 개시의 측면은 메시 처리를 위한 방법 및 장치를 제공한다. 일부 예에서, 메시 처리를 위한 장치는 처리 회로를 포함한다.
본 개시의 측면에 따르면, 비디오 인코더에서 수행되는 메시 처리 방법이 제공된다. 이 방법에서, 현재 정점의 복수의 후보 예측이 결정된다. 현재 정점은 메시의 복수의 정점 중 하나이다. 복수의 후보 예측 각각은 메시 내의 복수의 삼각형 중 각각의 하나에 기초하여 결정하고 2차원(two-dimensional, 2D) 도메인의 2D 좌표를 포함한다. 복수의 후보 예측의 평균 예측이 계산된다. 현재 정점의 2D 예측은 복수의 후보 예측과 평균 예측을 포함하는 예측 리스트에서 선택된다. 선택된 2D 예측은 현재 정점과 예측 리스트의 각 예측자 사이의 임계값 예측 차이에 대응한다. 현재 정점의 3차원(three-dimensional, 3D) 예측은 메시 내의 현재 정점의 하나 이상의 이웃 정점에 기초하여 결정된다. 3D 예측은 3D 도메인의 3D 좌표를 포함한다. 현재 정점의 예측 오차를 포함하는 예측 잔차가 인코딩된다. 예측 잔차는 선택된 2D 예측과 결정된 현재 정점의 3D 예측에 기초하여 획득된다.
예에서, 현재 정점의 복수의 후보 예측을 결정하기 위해, 복수의 삼각형 중 제1 삼각형이 현재 정점에 대해 결정되며, 여기서 제1 삼각형은 복수의 삼각형 중 제2 삼각형과 에지를 공유하고, 현재 정점은 제2 삼각형에 포함되고 공유된 에지의 반대편에 있다. 복수의 후보 예측 중 제1 예측은 제1 예측과 제1 삼각형이 제1 평행사변형을 형성하는 평행사변형 예측을 통해 상기 결정된 제1 삼각형에 기초하여 결정된다.
일부 실시예에서, 현재 정점의 2D 예측을 선택하기 위해, 현재 정점에 대한 예측 리스트가 결정된다. 예측 리스트의 예측자는 평균 예측과 예측 리스트에서 평균 예측에 후속하는 복수의 후보 예측을 포함한다. 예측 리스트에서 복수의 후보 예측의 순서는 복수의 후보 예측에 대응하는 복수의 삼각형의 순서에 기초한다. 예측 리스트의 예측자 각각에 대한 예측 인덱스가 추가로 결정된다.
일부 실시예에서, 복수의 삼각형은 나선형 삼각형 스패닝 트리(spiraling triangle-spanning-tree) 순서로 복수의 삼각형이 라벨링되는 에지브레이커(Edgebreaker) 알고리즘에 기초하여 정렬된다.
일부 실시예에서, 현재 정점의 2D 예측을 선택하기 위해, 예측 리스트의 예측자 각각과 현재 정점 사이의 예측 차이가 결정된다. 2D 예측은 선택된 2D 예측이 예측 차이의 최소 예측 차이에 대응하도록 예측 리스트의 예측자 중에서 선택된다.
일부 실시예에서, 2D 예측은 2D 예측이 예측 리스트의 서브셋(subset)의 최소 예측 차이에 대응하도록 예측 리스트의 서브셋에서 선택된다.
예에서, 현재 정점의 3D 예측은 3D 예측이 하나 이상의 이웃 정점 중 하나의 이웃 정점으로 결정되는 델타 예측에 기초하여 결정된다. 예에서, 현재 정점의 3D 예측은 3D 예측과 하나 이상의 이웃 정점 중 3개의 이웃 정점이 평행사변형을 형성하는 평행사변형 예측에 기초하여 결정된다.
일부 실시예에서, 예측 잔차를 인코딩하기 위해, 현재 정점의 예측값은 2D 예측과 3D 예측 중 하나보다 예측 차이가 작은 2D 예측과 3D 예측 중 다른 하나에 기초하여 결정된다. 예측값과 현재 정점 사이의 차이를 지시하는 예측 잔차가 추가로 인코딩된다.
일부 실시예에서, 예측 잔차를 인코딩하기 위해, 현재 정점의 예측값은 2D 예측과 3D 예측의 평균에 기초하여 결정된다. 예측값과 현재 정점 사이의 차이를 지시하는 예측 잔차가 추가로 인코딩된다.
예에서, 예측 리스트에서 선택된 2D 예측의 예측 인덱스를 지시하는 인덱스 정보가 인코딩된다. 예에서, 플래그가 추가로 인코딩된다. 플래그는 현재 정점의 예측값이 2D 예측, 또는 3D 예측, 또는 2D 예측과 3D 예측의 평균 중 하나에 기초하여 결정됨을 지시한다.
본 개시의 또 다른 측면에 따르면, 장치가 제공된다. 이 장치는 처리 회로를 포함한다. 처리 회로는 메시 처리를 위해 설명된 방법 중 어느 하나를 수행하도록 구성될 수 있다.
본 개시의 측면은 또한 비디오 디코딩을 위해 컴퓨터에 의해 실행될 때 컴퓨터로 하여금 메시 처리를 위해 설명된 방법 중 어느 하나를 수행하게 하는 명령어를 저장하는 비일시적 컴퓨터 판독 가능 매체를 제공한다.
개시된 주제의 추가 특징, 특성 및 다양한 이점은 다음의 상세한 설명 및 첨부 도면으로부터 더욱 명백해질 것이다:
도 1은 통신 시스템(100)의 예시적인 블록도의 개략도이다.
도 2는 디코더의 예시적인 블록도의 개략도이다.
도 3은 인코더의 예시적인 블록도의 개략도이다.
도 4a는 본 개시의 일부 실시예에 따른 제1 예시적인 평행사변형 예측의 개략도이다.
도 4b는 본 개시의 일부 실시예에 따른 제2 예시적인 평행사변형 예측의 개략도이다.
도 5a는 에지브레이커(Edgebreaker) 알고리즘의 5가지 패치 구성의 예를 도시한다.
도 5b는 에지브레이커 알고리즘에 따른 예시적인 메시 탐색을 도시한다.
도 6은 평행사변형 예측에 기초하여 정점을 예측하는 예를 개략적으로 도시한 도면이다.
도 7은 본 개시의 일부 실시예에 따른 프로세스의 개요를 설명하는 흐름도를 도시한다.
도 8은 본 개시의 일부 실시예에 따른 다른 프로세스의 개요를 설명하는 흐름도를 도시한다.
도 9는 실시예에 따른 컴퓨터 시스템의 개략도이다.
도 1은 일부 예의 비디오 처리 시스템(100)의 블록도를 도시한다. 비디오 처리 시스템(100)은 개시된 주제에 대한 애플리케이션, 스트리밍 환경에서의 비디오 인코더 및 비디오 디코더의 예이다. 개시된 주제는 예를 들어 화상 회의, 디지털 TV, 스트리밍 서비스, CD, DVD, 메모리 스틱 등을 포함하는 디지털 미디어에 압축된 비디오의 저장을 포함하는 다른 이미지 및 비디오 지원 애플리케이션에도 동일하게 적용될 수 있다.
비디오 처리 시스템(100)은 비디오 소스(101)를 포함할 수 있는 캡처 서브시스템(113)을 포함한다. 비디오 소스(101)는 카메라에 의해 캡처된 하나 이상의 이미지 및/또는 컴퓨터에 의해 생성된 하나 이상의 이미지를 포함할 수 있다. 예를 들어, 디지털 카메라는 압축되지 않은 비디오 픽처의 스트림(102)을 생성한다. 예에서, 비디오 픽처의 스트림(102)은 디지털 카메라에 의해 촬영된 샘플을 포함한다. 인코딩된 비디오 데이터(104)(또는 코딩된 비디오 비트스트림)와 비교할 때 높은 데이터 볼륨을 강조하기 위해 굵은 선으로 표시된 비디오 픽처의 스트림(102)은 비디오 소스(101)에 연결된 비디오 인코더(103)를 포함하는 전자 장치(120)에 의해 처리될 수 있다. 비디오 인코더(103)는 아래에서 더 자세히 설명되는 바와 같이 개시된 주제의 측면을 가능하게 하거나 구현하기 위해 하드웨어, 소프트웨어, 또는 이들의 조합을 포함할 수 있다. 비디오 픽처의 스트림(102)과 비교할 때 더 낮은 데이터 볼륨을 강조하기 위해 가는 선으로 표시된 인코딩된 비디오 데이터(104)(또는 인코딩된 비디오 비트스트림)는 향후 사용을 위해 스트리밍 서버(105)에 저장될 수 있다. 도 1의 클라이언트 서브시스템(106, 108)과 같은 하나 이상의 스트리밍 클라이언트 서브시스템은 인코딩된 비디오 데이터(104)의 사본(107, 109)을 검색하기 위해 스트리밍 서버(105)에 액세스할 수 있다. 클라이언트 서브시스템(106)은 예를 들어 전자 장치(130)에 비디오 디코더(110)를 포함할 수 있다. 비디오 디코더(110)는 인코딩된 비디오 데이터의 인입 사본(107)을 디코딩하고 디스플레이(112)(예를 들어, 디스플레이 스크린) 또는 다른 렌더링 장치(도시되지 않음)에서 렌더링될 수 있는 비디오 픽처의 인출 스트림(111)을 생성한다. 일부 스트리밍 시스템에서, 인코딩된 비디오 데이터(104, 107, 109)(예를 들어, 비디오 비트스트림)는 특정 비디오 코딩/압축 표준에 따라서 인코딩될 수 있다. 이들 표준의 예로는 ITU-T 권고 H.265가 포함된다. 예에서, 개발 중인 비디오 코딩 표준은 비공식적으로 다목적 비디오 코딩(Versatile Video Coding, VVC)으로 알려져 있다. 개시된 주제는 VVC의 맥락에서 사용될 수 있다.
전자 장치(120, 130)는 다른 컴포넌트(도시되지 않음)를 포함할 수 있다. 예를 들어, 전자 장치(120)는 비디오 디코더(도시되지 않음)를 포함할 수 있고, 전자 장치(130)는 비디오 인코더(도시되지 않음)도 포함할 수 있다.
도 2는 비디오 디코더(210)의 예시적인 블록도를 도시한다. 비디오 디코더(210)는 전자 장치(230)에 포함될 수 있다. 전자 장치(230)는 수신기(231)를 포함할 수 있다. 수신기(231)는 네트워크 인터페이스 회로와 같은 수신 회로를 포함할 수 있다. 비디오 디코더(210)는 도 1의 예에서의 비디오 디코더(110) 대신에 사용될 수 있다.
수신기(231)는 비디오 디코더(210)에 의해 디코딩될 하나 이상의 코딩된 비디오 시퀀스를 수신할 수 있다. 실시예에서, 하나의 코딩된 비디오 시퀀스는 한 번에 수신되며, 여기서 각각의 코딩된 비디오 시퀀스의 디코딩은 다른 코딩된 비디오 시퀀스의 디코딩과 독립적이다. 코딩된 비디오 시퀀스는 인코딩된 비디오 데이터를 저장하는 저장 장치에 대한 하드웨어/소프트웨어 링크일 수 있는 채널(201)로부터 수신될 수 있다. 수신기(231)는 다른 데이터, 예를 들어 각각의 사용 엔터티(도시되지 않음)로 전달될 수 있는 코딩된 오디오 데이터 및/또는 보조 데이터 스트림과 함께 인코딩된 비디오 데이터를 수신할 수 있다. 수신기(231)는 코딩된 비디오 시퀀스를 다른 데이터로부터 분리할 수 있다. 네트워크 지터에 대처하기 위해, 버퍼 메모리(215)는 수신기(231)와 엔트로피 디코더/파서(parser(220)(이하 "파서(220)") 사이에 결합될 수 있다. 특정 애플리케이션에서, 버퍼 메모리(215)는 비디오 디코더(210)의 일부이다. 다른 경우에, 그것은 비디오 디코더(210) 외부에 있을 수도 있다(도시되지 않음). 또 다른 경우에, 예를 들어 네트워크 지터를 방지하기 위해 비디오 디코더(210) 외부에 버퍼 메모리(도시되지 않음)가 있을 수 있고, 추가적으로 예를 들어 플레이아웃(playout) 타이밍을 처리하기 위해 비디오 디코더(210) 내부에 또 다른 버퍼 메모리(215)가 있을 수 있다. 수신기(231)가 충분한 대역폭과 제어 가능성을 갖춘 저장/전달 장치로부터 또는 등동기(isosynchronous) 네트워크로부터 데이터를 수신하는 경우, 버퍼 메모리(215)는 필요하지 않을 수 있거나 또는 작을 수 있다. 인터넷과 같은 최선형 패킷 네트워크에서의 사용을 위해, 버퍼 메모리(215)가 필요할 수 있고, 비교적 클 수 있으며 적응형 크기가 유리할 수 있고, 비디오 디코더(210)의 외부의 운영 체제 또는 유사한 요소(도시되지 않음)에서 적어도 부분적으로 구현될 수 있다.
비디오 디코더(210)는 코딩된 비디오 시퀀스로부터 심볼(221)을 재구성하기 위해 파서(220)를 포함할 수 있다. 이러한 심볼의 카테고리에는 비디오 디코더(210)의 작동을 관리하는 데 사용되는 정보와 잠재적으로 전자 장치의 필수 부분이 아니지만 도 2에 도시된 바와 같이 전자 장치(230)에 연결될 수 있는 렌더(render) 장치(212)(예를 들어, 디스플레이 스크린)와 같은 렌더링 장치를 제어하는 정보가 포함된다. 렌더링 장치(들)에 대한 제어 정보는 추가 향상 정보(Supplemental Enhancement Information, SEI) 메시지 또는 비디오 사용성 정보(Video Usability Information, VUI) 파라미터 세트 조각(도시되지 않음)의 형태일 수 있다. 파서(220)는 수신된 코딩된 비디오 시퀀스를 파싱/엔트로피 디코딩할 수 있다. 코딩된 비디오 시퀀스의 코딩은 비디오 코딩 기술 또는 표준에 따를 수 있으며, 가변 길이 코딩, 허프만 코딩, 문맥 민감도가 있거나 없는 산술 코딩 등을 포함한 다양한 원리를 따를 수 있다. 파서(220)는 그룹에 대응하는 적어도 하나의 파라미터에 기초하여, 비디오 디코더의 픽셀의 서브그룹 중 적어도 하나에 대한 서브그룹 파라미터 세트를 코딩된 비디오 시퀀스로부터 추출할 수 있다. 서브그룹에는 픽처 그룹(Groups of Pictures, GOPs), 픽처, 타일, 슬라이스, 매크로블록, 코딩 유닛(Coding Units, CUs), 블록, 변환 유닛(Transform Units, TUs), 예측 유닛(Prediction Units, PUs) 등이 포함될 수 있다. 파서(220)는 또한 변환 계수, 양자화기 파라미터 값, 모션 벡터 등과 같은 정보를 코딩된 비디오 시퀀스로부터 추출할 수 있다.
파서(220)는 버퍼 메모리(215)로부터 수신된 비디오 시퀀스에 대해 엔트로피 디코딩/파싱 작동을 수행하여 심볼(221)을 생성할 수 있다.
심볼(221)의 재구성은 코딩된 비디오 픽처 또는 그 부분의 유형(예: 인터 및 인트라 픽처, 인터 및 인트라 블록) 및 기타 요인에 따라 다수의 상이한 유닛을 포함할 수 있다. 어떤 유닛이 관련되고, 어떻게 제어되는지는 파서(220)에 의해 코딩된 비디오 시퀀스로부터 파싱된 서브그룹 제어 정보에 의해 제어될 수 있다. 파서(220)와 이하의 다수의 유닛 사이의 이러한 서브그룹 제어 정보의 흐름은 명확성을 위해 도시되지 않는다.
이미 언급된 기능 블록 외에도, 비디오 디코더(210)는 개념적으로 아래에서 설명되는 바와 같이 다수의 기능 유닛으로 세분될 수 있다. 상업적 제약 하에 작동되는 실제 구현에서, 이러한 유닛 중 다수는 서로 긴밀하게 상호 작용하며 적어도 부분적으로 서로 통합될 수 있다. 그러나, 개시된 주제를 설명하기 위해, 이하의 기능 유닛으로의 개념적인 세분화가 적절하다.
제1 유닛은 스케일러/역변환 유닛(251)이다. 스케일러/역변환 유닛(251)은 양자화된 변환 계수와 함께 어떤 변환을 사용할 것인지, 블록 크기, 양자화 스케일링 매트릭스 등을 포함하는 제어 정보를 파서(220)로부터 심볼(들)(221)로서 수신한다. 스케일러/역변환 유닛(251)은 애그리게이터(aggregator)(255)에 입력될 수 있는 샘플 값을 포함하는 블록을 출력할 수 있다.
일부 경우에, 스케일러/역변환 유닛(251)의 출력 샘플은 인트라 코딩된 블록에 속할 수 있다. 인트라 코딩된 블록은 이전에 재구성된 픽처의 예측 정보를 사용하지 않고, 현재 픽처의 이전에 재구성된 부분의 예측 정보를 사용할 수 있는 블록이다. 그러한 예측 정보는 인트라 픽처 예측 유닛(252)에 의해 제공될 수 있다. 일부 경우에, 인트라 픽처 예측 유닛(252)은 현재 픽처 버퍼(258)에서 가져온 주변의 이미 재구성된 정보를 사용하여 재구성 중인 블록과 동일한 크기 및 형상의 블록을 생성한다. 현재 픽처 버퍼(258)는 예를 들어, 부분적으로 재구성된 현재 픽처 및/또는 완전히 재구성된 현재 픽처를 버퍼링한다. 애그리게이터(255)는 경우에 따라 인트라 예측 유닛(252)이 스케일러/역변환 유닛(251)에 의해 제공되는 출력 샘플 정보로 생성된 예측 정보를 샘플 단위로 추가한다.
다른 경우에, 스케일러/역변환 유닛(251)의 출력 샘플은 인터 코딩되고 잠재적으로 모션 보상된 블록에 속할 수 있다. 이러한 경우, 모션 보상 예측 유닛(253)은 예측에 사용되는 샘플을 가져오기 위해 참조 픽처 메모리(257)에 액세스할 수 있다. 블록에 속한 심볼(221)에 따라 가져온 샘플을 모션 보상한 후, 이러한 샘플은 출력 샘플 정보를 생성하기 위해 애그리게이터(255)에 의해 스케일러/역변환 유닛(251)의 출력에 추가될 수 있다(이 경우에 잔차 샘플 또는 잔차 신호라고 함). 모션 보상 예측 유닛(253)이 예측 샘플을 가져오는 참조 픽처 메모리(257) 내의 주소는 예를 들어 X, Y 및 참조 픽처 컴포넌트를 가질 수 있는 심볼(221)의 형태로 모션 보상 예측 유닛(253)에서 사용 가능한 모션 벡터에 의해 제어될 수 있다. 모션 보상은 또한 서브샘플의 정확한 모션 벡터가 사용될 때 참조 픽처 메모리(257)로부터 가져온 샘플 값의 보간, 모션 벡터 예측 메커니즘 등을 포함할 수 있다.
애그리게이터(255)의 출력 샘플은 루프 필터 유닛(256)에서 다양한 루프 필터링 기술의 적용을 받을 수 있다. 비디오 압축 기술은 코딩된 비디오 시퀀스(코딩된 비디오 비트스트림으로도 지칭됨)에 포함된 파라미터에 의해 제어되고 파서(220)로부터 심볼(221)로서 루프 필터 유닛(256)에 사용 가능하게 되는 인루프 필터 기술을 포함할 수 있다. 비디오 압축은 또한 코딩된 픽처 또는 코딩된 비디오 시퀀스의 이전(디코딩 순서에서) 부분을 디코딩하는 동안 획득된 메타 정보에 응답할 수 있을 뿐만 아니라 이전에 재구성되고 루프 필터링된 샘플 값에 응답할 수도 있다.
루프 필터 유닛(256)의 출력은 렌더 장치(212)로 출력될 수 있을 뿐만 아니라 향후 인터 픽처 예측에 사용하기 위해 참조 픽처 메모리(257)에 저장될 수 있는 샘플 스트림일 수 있다.
일단 완전히 재구성되면 특정 코딩된 픽처는 향후 예측을 위한 참조 픽처로서 사용될 수 있다. 예를 들어, 현재 픽처에 대응하는 코딩된 픽처가 완전히 재구성되고 코딩된 픽처가 참조 픽처로 식별되면(예를 들어 파서(220)에 의해), 현재 픽처 버퍼(258)는 참조 픽처 메모리(257)의 일부가 될 수 있고, 새로운 현재 픽처 버퍼는 다음의 코딩된 픽처의 재구성을 시작하기 전에 재할당될 수 있다.
비디오 디코더(210)는 ITU-T Rec. H.265와 같은 미리 결정된 비디오 압축 기술이나 표준에 따라 디코딩 작동을 수행할 수 있다. 코딩된 비디오 시퀀스는 코딩된 비디오 시퀀스가 비디오 압축 기술 또는 표준의 신택스와 비디오 압축 기술 또는 표준에 문서화된 프로파일 모두를 준수한다는 의미에서 사용되는 비디오 압축 기술 또는 표준에 의해 지정된 신택스를 따를 수 있다. 특히, 프로파일은 비디오 압축 기술 또는 표준에서 사용 가능한 모든 도구 중에서 해당 프로파일에서 사용할 수 있는 유일한 도구로서 특정 도구를 선택할 수 있다. 또한, 규정 준수를 위해 필요한 것은 코딩된 비디오 시퀀스의 복잡성이 비디오 압축 기술 또는 표준의 레벨에 의해 정의된 범위 내에 있다는 것이다. 일부 경우에, 레벨이 최대 픽처 크기, 최대 프레임 속도, 최대 재구성 샘플 속도(예를 들어, 초당 메가샘플 단위로 측정됨), 최대 참조 픽처 크기 등을 제한한다. 레벨별로 설정된 제한은 경우에 따라 가상 참조 디코더(Hypothetical Reference Decoder, HRD) 사양 및 코딩된 비디오 시퀀스에서 시그널링되는 HRD 버퍼 관리용 메타데이터를 통해 추가로 제한될 수 있다.
실시예에서, 수신기(231)는 인코딩된 비디오와 함께 추가(중복) 데이터를 수신할 수 있다. 추가 데이터는 코딩된 비디오 시퀀스(들)의 일부로 포함될 수 있다. 추가 데이터는 데이터를 적절하게 디코딩하고 및/또는 원본 비디오 데이터를 보다 정확하게 재구성하기 위해 비디오 디코더(210)에 의해 사용될 수 있다. 추가 데이터는 예를 들어 시간적, 공간적 또는 신호 잡음비(signal noise ratio, SNR) 향상 계층, 중복 슬라이스, 중복 픽처, 순방향 오류 정정 코드 등의 형태일 수 있다.
도 3은 비디오 인코더(303)의 예시적인 블록도를 도시한다. 비디오 인코더(303)는 전자 장치(320)에 포함된다. 전자 장치(320)는 전송기(340)(예를 들어, 전송 회로)를 포함한다. 비디오 인코더(303)는 도 1의 예에서의 비디오 인코더(103) 대신에 사용될 수 있다.
비디오 인코더(303)는 비디오 인코더(303)에 의해 코딩될 비디오 이미지(들)를 캡처할 수 있는 비디오 소스(301)(도 3의 예에서의 전자 장치(320)의 일부가 아님)로부터 비디오 샘플을 수신할 수 있다. 다른 예에서, 비디오 소스(301)는 전자 장치(320)의 일부이다.
비디오 소스(301)는 임의의 적합한 비트 깊이(예를 들어, 8 비트, 10 비트, 12 비트, ...), 임의의 색상공간(예를 들어, BT.601 Y CrCB, RGB, …) 및 임의의 적합한 샘플링 구조(예를 들어, Y CrCb 4:2:0, Y CrCb 4:4:4)일 수 있는 디지털 비디오 샘플 스트림의 형태로 비디오 인코더(303)에 의해 코딩될 소스 비디오 시퀀스를 제공할 수 있다. 미디어 서빙 시스템에서, 비디오 소스(301)는 미리 준비된 비디오를 저장하는 저장 장치일 수 있다. 화상 회의 시스템에서, 비디오 소스(301)는 로컬 이미지 정보를 비디오 시퀀스로 캡처하는 카메라일 수 있다. 비디오 데이터는 순차적으로 볼 때 모션을 부여하는 복수의 개별 픽처로서 제공될 수 있다. 픽처 자체는 픽셀의 공간 배열로 구성될 수 있으며, 여기서 각 픽셀은 사용 중인 샘플링 구조, 색상 공간 등에 따라 하나 이상의 샘플을 포함할 수 있다. 아래 설명은 샘플에 중점을 둔다.
실시예에 따르면, 비디오 인코더(303)는 소스 비디오 시퀀스의 픽처를 실시간으로 또는 필요에 따라 임의의 다른 시간 제약 하에서 코딩된 비디오 시퀀스(343)로 코딩하고 압축할 수 있다. 적절한 코딩 속도를 적용하는 것은 제어기(350)의 기능 중 하나이다. 일부 실시예에서, 제어기(350)는 후술하는 바와 같이 다른 기능 유닛을 제어하고 다른 기능 유닛에 기능적으로 결합된다. 명확성을 위해 결합은 도시되지 않았다. 제어기(350)에 의해 설정되는 파라미터에는 속도 제어 관련 파라미터(픽처 스킵(picture skip), 양자화기, 속도-왜곡 최적화 기술의 람다 값 등), 픽처 크기, 픽처 그룹(GOP) 레이아웃, 최대 모션 벡터 검색 범위 등이 포함될 수 있다. 제어기(350)는 특정 시스템 설계에 최적화된 비디오 인코더(303)에 속하는 다른 적절한 기능을 갖도록 구성될 수 있다.
일부 실시예에서, 비디오 인코더(303)는 코딩 루프에서 작동하도록 구성된다. 지나치게 단순화된 설명으로서, 예에서, 코딩 루프는 소스 코더(330)(예를 들어, 코딩될 입력 픽처 및 참조 픽처(들)에 기초하여 심볼 스트림과 같은 심볼을 생성하는 일을 담당함), 및 비디오 인코더(303)에 내장된 (로컬) 디코더(333)를 포함할 수 있다. 디코더(333)는 (원격) 디코더가 생성하는 것과 유사한 방식으로 샘플 데이터를 생성하기 위해 심볼을 재구성한다. 재구성된 샘플 스트림(샘플 데이터)은 참조 픽처 메모리(334)에 입력된다. 심볼 스트림의 디코딩은 디코더 위치(로컬 또는 원격)에 관계없이 비트 단위의 정확한 결과를 가져오므로, 참조 픽처 메모리(334)의 컨텐츠도 또한 로컬 인코더와 원격 인코더 사이에서 비트 단위로 정확하다. 즉, 인코더의 예측 부분은 디코딩 중에 예측을 사용하는 경우 디코더가 "보는" 것과 정확히 동일한 샘플 값을 참조 픽처 샘플로 "본다". 참조 픽처 동기성(및 예를 들어 채널 오류로 인해 동기성이 유지될 수 없는 경우 결과적인 드리프트)의 이러한 기본 원리는 일부 관련 기술에서도 사용된다.
"로컬" 디코더(333)의 작동은 비디오 디코더(210)와 같은 "원격" 디코더의 작동과 동일할 수 있으며, 이는 도 2와 관련하여 위에서 이미 상세히 설명되었다. 그러나, 또한 도 2를 간략히 참조하면, 심볼이 이용 가능하고 엔트로피 코더(345) 및 파서(220)에 의해 코딩된 비디오 시퀀스에 대한 심볼의 인코딩/디코딩이 무손실일 수 있으므로, 버퍼 메모리(215) 및 파서(220)를 포함하는 비디오 디코더(210)의 엔트로피 디코딩 부분은 로컬 디코더(333)에서 완전히 구현되지 않을 수 있다.
실시예에서, 디코더에 존재하는 파싱/엔트로피 디코딩을 제외한 디코더 기술은 해당 인코더에서 동일하거나 실질적으로 동일한 기능 형태로 존재한다. 따라서, 개시된 주제는 디코더 작동에 초점을 맞춘다. 인코더 기술에 대한 설명은 포괄적으로 설명된 디코더 기술의 반대이므로 축약될 수 있다. 특정 영역에서, 보다 상세한 설명은 아래에서 제공된다.
작동 중에, 일부 예에서, 소스 코더(330)는 "참조 픽처"로 지정된 비디오 시퀀스로부터 하나 이상의 이전에 코딩된 픽처를 참조하여 입력 픽처를 예측적으로 코딩하는 모션 보상된 예측 코딩을 수행할 수 있다. 이러한 방식으로, 코딩 엔진(332)은 입력 픽처의 픽셀 블록과 입력 픽처에 대한 예측 참조(들)로서 선택될 수 있는 참조 픽처(들)의 픽셀 블록 사이의 차이를 코딩한다.
로컬 비디오 디코더(333)는 소스 코더(330)에 의해 생성된 심볼에 기초하여 참조 픽처로 지정될 수 있는 픽처의 코딩된 비디오 데이터를 디코딩할 수 있다. 코딩 엔진(332)의 작동은 손실이 많은 프로세스인 것이 유리할 수 있다. 코딩된 비디오 데이터가 비디오 디코더(도 3에 도시되지 않음)에서 디코딩될 수 있는 경우, 재구성된 비디오 시퀀스는 일반적으로 약간의 오류가 있는 소스 비디오 시퀀스의 복제일 수 있다. 로컬 비디오 디코더(333)는 참조 픽처에 대해 비디오 디코더에 의해 수행될 수 있는 디코딩 프로세스를 복제하고 재구성된 참조 픽처가 참조 픽처 메모리(334)에 저장되게 할 수 있다. 이러한 방식으로, 비디오 인코더(303)는 원단 비디오 디코더에 의해 획득될 재구성된 참조 픽처(전송 오류 없음)로서 공통 컨텐츠를 갖는 재구성된 참조 픽처의 사본을 로컬에서 저장할 수 있다.
예측기(335)는 코딩 엔진(332)에 대한 예측 검색을 수행할 수 있다. 즉, 코딩될 새로운 픽처에 대해, 예측기(335)는 (후보 참조 픽셀 블록으로서의) 새로운 픽처에 대한 적절한 예측 참조 역할을 할 수 있는 샘플 데이터 또는 참조 픽처 모션 벡터, 블록 형상 등과 같은 특정 메타데이터에 대해 참조 픽처 메모리(334)를 검색할 수 있다. 예측기(335)는 적절한 예측 참조를 찾기 위해 샘플 블록 대 픽셀 블록 기준으로 작동할 수 있다. 일부 경우에, 예측기(335)에 의해 획득된 검색 결과에 의해 결정된 바와 같이, 입력 픽처는 참조 픽처 메모리(334)에 저장된 다수의 참조 픽처로부터 도출된 예측 참조를 가질 수 있다.
제어기(350)는 예를 들어, 비디오 데이터를 인코딩하는 데 사용되는 파라미터 및 서브그룹 파라미터의 설정을 포함하는 소스 코더(330)의 코딩 작동을 관리할 수 있다.
전술한 모든 기능 유닛의 출력은 엔트로피 코더(345)에서 엔트로피 코딩될 수 있다. 엔트로피 코더(345)는 허프만 코딩, 가변 길이 코딩, 산술 코딩 등과 같은 기술에 따라 심볼에 무손실 압축을 적용함으로써 다양한 기능 유닛에 의해 생성된 심볼을 코딩된 비디오 시퀀스로 변환한다.
전송기(340)는 인코딩된 비디오 데이터를 저장하는 저장 장치에 대한 하드웨어/소프트웨어 링크일 수 있는 통신 채널(360)을 통한 전송을 준비하기 위해 엔트로피 코더(345)에 의해 생성된 코딩된 비디오 시퀀스(들)를 버퍼링할 수 있다. 전송기(340)는 비디오 인코더(303)로부터의 코딩된 비디오 데이터를 전송될 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림(소스는 도시되지 않음)과 병합할 수 있다.
제어기(350)는 비디오 인코더(303)의 작동을 관리할 수 있다. 코딩 동안, 제어기(350)는 각각의 픽처에 적용될 수 있는 코딩 기술에 영향을 미칠 수 있는 특정 코딩된 픽처 유형을 각각의 코딩된 픽처에 할당할 수 있다. 예를 들어, 픽처는 종종 다음의 픽처 유형 중 하나로서 할당될 수 있다.
인트라 픽처(Intra Picture, I 픽처)는 예측 소스로서 시퀀스의 다른 픽처를 사용하지 않고 코딩 및 디코딩될 수 있는 픽처일 수 있다. 일부 비디오 코덱은 예를 들어 독립 디코더 리프레시(Independent Decoder Refresh, IDR) 픽처를 포함는 다양한 유형의 인트라 픽처를 허용한다. 당업자는 I 픽처의 이러한 변형과 각각의 애플리케이션 및 특징을 알고 있다.
예측 픽처(predictive picture, P 픽처)는 각 블록의 샘플 값을 예측하기 위해 최대 하나의 모션 벡터 및 참조 인덱스를 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 픽처일 수 있다.
양방향 예측 픽처(bi-directionally predictive picture, B 픽처)는 각 블록의 샘플 값을 예측하기 위해 최대 2개의 모션 벡터 및 참조 인덱스를 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 픽처일 수 있다. 마찬가지로, 다수의 예측 픽처는 단일 블록의 재구성을 위해 두 개 이상의 참조 픽처와 관련 메타데이터를 사용할 수 있다.
소스 픽처는 일반적으로 복수의 샘플 블록(예를 들어, 각각 4x4, 8x8, 4x8 또는 16x16 샘플의 블록)으로 공간적으로 세분되고 블록 단위로 코딩될 수 있다. 블록은 블록 각각의 픽처에 적용된 코딩 할당에 의해 결정된 대로 다른(이미 코딩된) 블록을 참조하여 예측적으로 코딩될 수 있다. 예를 들어, I 픽처의 블록은 비 예측적으로 코딩될 수도 있거나, 또는 그들은 동일한 픽처의 이미 코딩된 블록을 참조하여 예측적으로 코딩될 수 있다(공간 예측 또는 인트라 예측). P 픽처의 픽셀 블록은 이전에 코딩된 하나의 참조 픽처를 참조하여 공간적 예측을 통해 또는 시간적 예측을 통해 예측적으로 코딩될 수 있다. B 픽처의 블록은 이전에 코딩된 하나 또는 두 개의 참조 픽처를 참조하여 공간적 예측을 통해 또는 시간적 예측을 통해 예측적으로 코딩될 수 있다.
비디오 인코더(303)는 ITU-T Rec. H.265와 같은 미리 결정된 비디오 코딩 기술 또는 표준에 따라 코딩 작동을 수행할 수 있다. 그 작동에서, 비디오 인코더(303)는 입력 비디오 시퀀스의 시간적 및 공간적 중복성을 활용하는 예측 코딩 작동을 포함하는 다양한 압축 작동을 수행할 수 있다. 따라서, 코딩된 비디오 데이터는 사용되는 비디오 코딩 기술 또는 표준에 의해 지정된 신택스를 따를 수 있다.
실시예에서, 전송기(340)는 인코딩된 비디오와 함께 추가 데이터를 전송할 수 있다. 소스 코더(330)는 코딩된 비디오 시퀀스의 일부로서 그러한 데이터를 포함할 수 있다. 추가 데이터는 시간적/공간적/SNR 향상 계층, 중복된 픽처 및 슬라이스와 같은 다른 형태의 중복 데이터, SEI 메시지, VUI 파라미터 세트 조각 등을 포함할 수 있다.
비디오는 시간적 시퀀스에 따라 복수의 소스 픽처(비디오 픽처)로서 캡처될 수 있다. 인트라 픽처 예측(종종 인트라 예측으로 축약됨)은 주어진 픽처의 공간적 상관 관계를 활용하고, 인터 픽처 예측은 픽처 간의 (시간적 또는 기타) 상관 관계를 활용한다. 예에서, 현재 픽처로서 지칭되는 인코딩/디코딩 중인 특정 픽처가 블록으로 분할된다. 현재 픽처의 블록이 이전에 코딩되어 여전히 비디오의 버퍼링된 참조 픽처의 참조 블록과 유사한 경우, 현재 픽처의 블록은 모션 벡터로서 지칭되는 벡터에 의해 코딩될 수 있다. 모션 벡터는 참조 픽처의 참조 블록을 가리키며, 다수의 참조 픽처가 사용 중인 경우 참조 픽처를 식별하는 3차원을 가질 수 있다.
일부 실시예에서, 양방향 예측 기술이 인터 픽처 예측에 사용될 수 있다. 양방향 예측 기술에 따르면, 비디오에서 현재 픽처에 대한 디코딩 순서가 둘 다 앞선(그러나 디스플레이 순서에서는 각각 과거 및 미래일 수 있음) 제1 참조 픽처 및 제2 참조 픽처와 같은 2개의 참조 픽처가 사용된다. 현재 픽처의 블록은 제1 참조 픽처의 제1 참조 블록을 가리키는 제1 모션 벡터와 제2 참조 픽처의 제2 참조 블록을 가리키는 제2 모션 벡터에 의해 코딩될 수 있다. 블록은 제1 참조 블록과 제2 참조 블록의 조합으로 예측될 수 있다.
또한, 병합 모드 기술은 코딩 효율을 향상시키기 위해 인터 픽처 예측에서 사용될 수 있다.
본 개시의 일부 실시예에 따르면, 인터 픽처 예측 및 인트라 픽처 예측과 같은 예측은 다각형 또는 삼각형 블록과 같은 블록 단위로 수행된다. 예를 들어, HEVC 표준에 따르면, 비디오 픽처 시퀀스의 픽처는 압축을 위해 코딩 트리 유닛(coding tree unit, CTU)으로 분할되며, 픽처 내의 CTU는 64x64 픽셀, 32x32 픽셀 또는 16x16 픽셀과 같은 동일한 크기를 갖는다. 일반적으로, CTU는 3개의 코딩 트리 블록(coding tree block, CTB)을 포함하며, 이는 하나의 루마 CTB와 두 개의 크로마 CTB이다. 각 CTU는 반복적으로 쿼드트리를 하나 또는 다수의 코딩 유닛(CU)으로 분할할 수 있다. 예를 들어, 64x64 픽셀의 CTU는 64x64 픽셀의 CU 1개, 32x32 픽셀의 CU 4개, 16x16 픽셀의 CU 16개로 분할될 수 있다. 예에서, 각 CU는 인터 예측 유형 또는 인트라 예측 유형과 같은 CU에 대한 예측 유형을 결정하기 위해 분석된다. CU는 시간적 및/또는 공간적 예측 가능성에 따라 하나 이상의 예측 유닛(PU)으로 분할된다. 일반적으로, 각 PU는 하나의 루마 예측 블록(PB)과 두 개의 크로마 PB를 포함한다. 실시예에서, 코딩(인코딩/디코딩) 시 예측 작동은 예측 블록 단위로 수행된다. 예측 블록의 예로서 루마 예측 블록을 사용하면, 예측 블록은 8x8 픽셀, 16x16 픽셀, 8x16 픽셀, 16x8 픽셀 등과 같은 픽셀에 대한 값(예를 들어, 루마 값)의 매트릭스를 포함한다.
비디오 인코더(103, 303), 및 비디오 디코더(110, 210)는 임의의 적합한 기술을 사용하여 구현될 수 있다. 실시예에서, 비디오 인코더(103, 303) 및 비디오 디코더(110, 210)는 하나 이상의 집적 회로를 사용하여 구현될 수 있다. 다른 실시예에서, 비디오 인코더(103, 303)와 비디오 디코더(110, 210)는 소프트웨어 명령어를 실행하는 하나 이상의 프로세서를 사용하여 구현될 수 있다.
본 개시는 메시 압축에서 텍스처 좌표 코딩의 방법 및 시스템과 관련된 실시예를 포함한다.
메시는 볼류메트릭(volumetric) 객체의 표면을 설명하는 여러 다각형을 포함할 수 있다. 메시의 각 다각형은 3차원(3D) 공간에서 대응하는 다각형의 정점과 그 정점이 어떻게 연결되어 있는지에 대한 정보로 정의될 수 있으며, 이는 연결성 정보로 지칭될 수 있다. 일부 실시예에서, 색상, 법선 등과 같은 정점 속성이 메시 정점과 연관될 수 있다. 속성(또는 정점 속성)은 또한 2차원(2D) 속성 맵으로 메시를 파라미터화하는 매핑 정보를 활용하여 메시 표면과 연관될 수도 있다. 이러한 매핑은 일반적으로 메시 정점과 연관된 UV 좌표 또는 텍스처 좌표로서 지칭되는 일련의 파라메트릭 좌표로 설명될 수 있다. 2D 속성 맵은 텍스처, 법선, 변위 등과 같은 고해상도 속성 정보를 저장하는 데 사용될 수 있다. 이러한 정보는 텍스처 매핑, 셰이딩(shading)과 같은 다양한 목적으로 사용될 수 있다.
동적 메시는 시간에 따라 변하는 상당한 양의 정보를 포함할 수 있으므로 동적 메시 시퀀스는 많은 양의 데이터를 필요로 할 수 있다. 따라서, 이러한 컨텐츠를 저장하고 전송하기 위해서 효율적인 압축 기술이 필요하다. IC, MESHGRID 및 FAMC와 같은 메시 압축 표준은 지속적인 연결성, 시변 기하구조 및 정점 속성을 갖춘 동적 메시를 처리하기 위해 이전에 MPEG에 의해 개발되었다. 그러나, 이러한 표준은 시변 속성 맵 및 연결 정보를 고려하지 않을 수 있다. 디지털 컨텐츠 생성(Digital Content Creation, DCC) 도구는 일반적으로 이러한 동적 메시를 생성한다. 그러나, 특히 실시간 제약 조건에서 지속적인 연결성 동적 메시를 생성하는 것은 볼류메트릭 획득 기술로 어려울 수 있다. 이러한 유형의 컨텐츠(예를 들어, 지속적인 연결성 동적 메시)는 기존 표준에서 지원되지 않을 수 있다. MPEG는 시변 연결성 정보와 선택적으로 시변 속성 맵을 사용하여 동적 메시를 직접 처리하기 위한 새로운 메시 압축 표준을 개발할 계획이다. 새로운 메시 압축 표준은 실시간 통신, 스토리지, 무료 시점 비디오, 증강 현실(Augmented Reality, AR) 및 가상 현실(Virtual Reality, VR)과 같은 다양한 애플리케이션에 대한 손실 및 무손실 압축을 목표로 한다. 랜덤 액세스(random access) 및 스케일러블(scalable)/프로그레시브(progressive) 코딩과 같은 기능이 또한 고려될 수 있다.
메시 기하구조 정보는 정점 연결성 정보, 3D 좌표 및 2D 텍스처 좌표 등을 포함할 수 있다. 정점 위치로도 지칭될 수 있는 정점 3D 좌표의 압축은 많은 경우에 정점 3D 좌표의 압축이 전체 기하구조 관련 데이터의 상당 부분을 소비할 수 있으르모 매우 중요할 수 있다.
본 개시에서, 단순성과 명확성을 위해, 실시예가 삼각형 메시를 예로 사용하여 설명된다. 그러나, 다른 다각형 메시(예를 들어, 사변형 또는 오각형 메시)도 본 개시의 실시예에 적용될 수 있다. 예에서, 삼각형 메시는 삼각형 세트를 포함하는 다각형 메시의 한 유형이다. 삼각형 세트는 삼각형 세트의 공통 에지 또는 코너에 의해 연결될 수 있다. 공통 에지 또는 코너는 메시 정점으로 표시될 수 있다.
정점 위치 압축은 평행사변형 예측에 의해 구현될 수 있다. 평행사변형 예측에서, 압축 알고리즘은 예측 삼각형에 포함된 새로운 정점을 도입할 수 있다. 예측 삼각형은 인접한 삼각형과 공유되는 에지에 기초하여 형성될 수 있다. 예에서, 인접한 삼각형은 이전에 코딩될 수 있다. 새로운 정점은 현재 정점의 예측 위치를 지시할 수 있다. 새로운 정점은 인접한 삼각형에 포함된 3개의 정점을 갖는 평행사변형을 형성할 수 있다. 예를 들어, 도 4a에 도시된 바와 같이, 메시(400A)는 삼각형(412)과 같은 복수의 삼각형을 포함할 수 있다. 각 삼각형은 3개의 정점을 포함할 수 있다. 예를 들어, 삼각형(412)은 정점(406, 408, 410)을 포함할 수 있다. 평행사변형 예측에 따라 현재 정점(402)을 코딩하기 위해, 현재 정점(402)에 대한 예측 정점(또는 예측)(404)이 예측 삼각형(414)에 기초하여 생성될 수 있다. 예측 정점(404)은 예측 삼각형(414)에 포함될 수 있다. 예측 삼각형(414)은 삼각형(412)과 에지(416)를 공유할 수 있다. 정점(406, 408, 410) 및 예측 정점(404)은 평행사변형을 형성할 수 있다. 또한, 현재 정점(402)은 메시(400A)의 삼각형(418)에 포함되며, 여기서 삼각형(418)과 삼각형(412)은 에지(416)를 공유한다.
다중 평행사변형 예측은 현재 정점을 예측하는 데 적용될 수 있다. 다중 평행사변형 예측은 예를 들어 2개 이상의 평행사변형 예측이 사용 가능할 때마다 그들에 의해 주어지는 평균 위치를 사용할 수 있다. 도 4b는 2개의 평행사변형 예측의 예를 제공한다. 도 4b에 도시된 바와 같이, 현재 정점(420)은 메시(400B)의 제1 삼각형(434)에 포함될 수 있다. 제1 삼각형(434)은 정점(420, 438, 442)을 포함할 수 있다. 제1 삼각형(434)은 메시(400B)의 인접한 삼각형(428)과 에지(444)를 공유할 수 있다. 현재 정점(420)은 정점(420, 438, 440)을 포함하는 제2 삼각형(436)에 포함될 수도 있다. 제2 삼각형(436)은 메시(400B)의 인접 삼각형(426)과 에지(446)를 공유할 수 있다. 공유된 에지(444)에 기초하여, 제1 예측 정점(또는 제1 예측)(424)이 결정될 수 있다. 제1 예측 정점(424)은 인접한 삼각형(428)과 함께 제1 평행사변형을 형성할 수 있다. 공유된 에지(446)에 기초하여, 제2 예측 정점(또는 제2 예측)(422)이 결정될 수 있다. 제2 예측 정점(422)은 인접한 삼각형(426)과 함께 제2 평행사변형을 형성할 수 있다. 따라서, 현재 정점(420)은 제1 예측 정점(424)과 제2 예측 정점(422)의 평균에 의해 추가로 예측될 수 있다.
본 개시에서, 메시 압축에서의 텍스처 좌표 코딩의 방법 및/또는 시스템이 제공된다. 실시예에서, 평행사변형 예측에 기초하여, 현재 정점의 예측된 위치 값(또는 예측 또는 예측 정점)은 복수의 후보 위치 값(또는 후보 예측 또는 후보 예측 정점) 중에서 선택될 수 있다. 선택된 예측 정점은 인덱스에 의해 코딩(또는 식별)될 수 있다. 선택된 예측 정점과 현재 정점 사이의 예측 잔차가 추가로 코딩될 수 있다.
본 개시에서, 메시 압축에서 정점 위치 예측을 위해 다수의 방법 및/또는 시스템이 제안될 수 있다. 방법 및/또는 시스템은 개별적으로 또는 임의의 형태의 조합으로 적용될 수 있다. 또한 이 방법은 동적 메시뿐만 아니라 정적 메시에도 적용될 수 있다. 정적 메시는 하나의 프레임만을 포함할 수 있거나 또는 정적 메시의 메시 컨텐츠가 시간이 지나도 변경되지 않을 수도 있다. 또한, 개시된 방법 및/또는 시스템은 정점 위치 예측에 제한되지 않는다. 개시된 방법 및/또는 또한 예를 들어 3D 좌표 코딩, 또는 보다 일반적인 다중 예측 기반 방식에 적용될 수 있다.
삼각형 메시(또는 메시)의 삼각형은 정렬될 수 있다. 메시의 삼각형 순서는 에지브레이커 알고리즘이나 기타 분할 알고리즘에 따라 탐색될 수 있다. 또한, 예에서, 메시의 정점은 삼각형의 순서에 기초하여 정렬될 수도 있다. 예에서, 삼각형 및 정점의 순서 또는 탐색 순서는 동일한 방식 또는 다른 방식에 따라 결정될 수 있다.
도 5a 및 도 5b는 에지브레이커 알고리즘에 기초한 메시의 삼각형 및 정점의 예시적인 순서를 도시한다. 도 5a는 에지브레이커 알고리즘의 5가지 예시적인 패치 구성을 도시한다. 도 5a에 도시된 바와 같이, V는 패치 중심 정점이고 T는 현재 삼각형이다. 각 패치의 활성 게이트(또는 현재 삼각형)는 T로 표시될 수 있다. 패치 C에서, V를 중심으로 팬(fan) 작동(또는 회전)하는 완전한 삼각형이 제공될 수 있다. 패치 L에서, 하나 이상의 누락된 삼각형이 활성 게이트 T의 좌측에 위치할 수 있다. 패치 R에서, 하나 이상의 누락된 삼각형이 활성 게이트 T의 우측에 위치할 수 있다. 패치 E에서, V는 T에만 인접한다. 패치 S에서, 하나 이상의 누락된 삼각형이 활성 게이트 T의 좌측 또는 우측 이외의 위치에 위치할 수 있다. 도 5b는 메시(500)의 삼각형이 에지브레이커 알고리즘의 탐색에 기초하여 정렬될 수 있는 예시적인 메시(500)의 탐색을 도시한다. 도 5b에 도시된 바와 같이, 메시(500)의 삼각형은 나선형 삼각형 스패닝 트리를 따라 탐색될 수 있다. 예를 들어, 탐색은 유형 C(또는 패치 C)의 삼각형(502)으로 시작할 수 있다. 그런 다음, 탐색은 삼각형의 우측 에지(예를 들어 (502))에 인접한 분기를 따라 진행될 수 있다. 유형 E의 삼각형(예를 들어, 504))에 도달하면 탐색이 중지될 수 있다. 에지브레이커 알고리즘에 따르면, 메시(500)의 삼각형은 CRSRLECRRRLE의 순서로 탐색(또는 정렬)될 수 있으며, 이는 도 5b에 도시될 수 있다. 메시(500)의 각 삼각형의 정점은 삼각형의 순서에 기초하여 정렬될 수도 있다.
삼각형 메시에서, 면이라고도 불릴 수 있는 각 삼각형은 3개의 정점을 갖는다. 에지를 공유하는 2개의 삼각형의 경우, 평행사변형 예측은 2개의 삼각형의 2개의 반대 정점 중 하나를 다른 삼각형의 예측자로 사용하는 데 적용될 수 있다. 도 6에 도시된 바와 같이, 2개의 삼각형 ABC와 DBC는 에지 BC를 공유할 수 있다. 이미 코딩된 정점 A, B, C의 좌표가 D의 좌표를 예측하는 데 적용될 수 있다. 예를 들어, 예측 정점(또는 예측) D'은 평행사변형 예측에 기초하여 결정될 수 있다. 예측 정점 D'의 좌표는 다음과 같이 [수학식 1]에서 결정될 수 있다.
[수학식 1]
D' = B + C - A
이러한 방식으로, 4개의 정점(D', B, A, C)은 도 6에 도시된 바와 같이 평행사변형을 형성할 수 있다. 각 정점은 2D 텍스처 좌표를 가지므로, [수학식 1]이 예측 정점 D'의 각 좌표 성분을 계산하는 데 사용될 수 있다. 예를 들어, uv 공간에서 2D 텍스처 좌표를 나타내는 아래 첨자 x, y, z를 가정하면, uv 공간에서 예측 정점 D'의 좌표 성분은 [수학식 2]-[수학식 3]으로 제공될 수 있다.
[수학식 2]
Du' = Bu + Cu - Au
[수학식 3]
Dv' = Bv + Cv - Av
정점 A, B, C의 위치 값이 코딩되어 예측에 사용될 수 있다면, 삼각형 ABC는 정점 D의 예측 후보(또는 예측 삼각형)로 표시될 수 있다. 정점에는 기존 코딩된 정점 및 공유된 에지의 개수에 따라 0개, 1개, 2개 또는 그 이상의 예측 후보가 있을 수 있다. 현재 정점에 대한 예측 후보가 2개 이상인 경우, 메시의 삼각형 순서에 기초하여 예측 후보가 정렬될 수 있다. 예를 들어, 에지브레이커 알고리즘 등에 따라 삼각형이 정렬될 수 있다.
본 개시에서, 현재 정점의 하나 이상의 예측(또는 평행사변형 예측)이 결정될 수 있다. 하나 이상의 평행사변형 예측의 평균이 추가로 결정될 수 있다. 또한, 각각의 평행사변형 예측은 현재 정점의 정점 위치의 실제 값과 비교될 수 있다. 또한, 하나 이상의 평행사변형 예측의 평균이 실제 위치 값과 비교될 수 있다. 현재 정점의 예측은 하나 이상의 평행사변형 예측과 하나 이상의 평행사변형 예측의 평균으로부터 결정될 수 있다. 예에서, 현재 정점의 예측은 비교 중에서 최소 예측 오차에 기초하여 결정될 수 있다. 예측 오차가 가장 작은 예측의 인덱스가 저장될 수 있다. 예측의 인덱스는 예측 인덱스로서 지칭될 수 있다. 예측 인덱스는 평행사변형 예측 또는 평행사변형 예측의 평균 중 하나를 지시할 수 있다. 예측 잔차로도 지칭될 수 있는 예측 인덱스와 연관된 예측 오차 모두 추가로 코딩될 수 있다. 예측자 오차 또는 예측 잔차는 현재 정점과 예측 정점 사이의 차이를 지시할 수 있다.
본 개시에서, 삼각형 메시의 모든 삼각형은 정렬될 수 있다. 예를 들어, 삼각형은 에지브레이커 알고리즘을 기반으로 정렬될 수 있다. 또한, 삼각형 메시의 정점 전체 또는 서브셋이 또한 정렬될 수도 있다. 예에서, 정점은 삼각형의 순서에 따라 정렬될 수 있다.
삼각형 메시의 정점 V가 주어지고, 정점 V는 N개의 예측 후보(또는 예측 삼각형)를 포함한다. N개의 예측 후보는 N개의 예측값 V1', V2', …, VN'을 생성할 수 있다. 예를 들어, 도 4b에 도시된 바와 같이, 현재 정점(420)은 2개의 예측 삼각형(430, 432)을 가질 수 있다. 예측 삼각형(430, 432) 각각은 각각 (422) 및 (424)와 같은 각각의 예측값(또는 예측 정점)을 생성할 수 있다. 현재 정점의 예측값은 메시 내 대응하는 예측 삼각형의 순서에 따라 정렬될 수 있다. 예측값에서 중복이 결정되는 경우, 이러한 중복은 예측값 리스트에서 제거될 수 있다.
예에서, N=0이면, 정점 V에 대해서는 예측 후보가 존재하지 않는다. V가 메시에서 코딩될 제1 정점인 경우, 제1 정점의 예측값 V'는 0으로 설정될 수 있고, 예측 잔차 R은 V로서 설정될 수 있다. 따라서, V' = 0, R = V이다. V가 코딩될 제1 정점이 아닌 경우, V의 예측값 V'는 정점 순서에서 이전에 코딩된 정점의 코딩된 값으로서 설정될 수 있다. 따라서, 이전에 코딩된 정점은 정점 V의 예측자가 될 수 있다. 예측 잔차 R은 정점 V와 예측값(또는 예측 정점) V' 사이의 차이로 결정될 수 있으며, R = V - V'이다.
예에서, N=1이면, 정점 V에 대해 하나의 예측 후보만이 사용 가능하다. 따라서, 예측값 V'은 유일한 예측 후보에 기초하여 결정되고, 예측 잔차 R은 V와 V' 사이의 차이로서 결정될 수 있으며, R = V - V'이다.
예에서, N >= 2인 경우, 정점 V에 대해 하나 이상의 예측 후보가 사용 가능하다. 따라서, 하나 이상의 예측 후보를 기반으로 복수의 예측값(또는 예측 정점)이 결정될 수 있다. 실시예에서, 예측값의 평균은 추가적인 예측자 V0'로 간주될 수 있다. V0'는 [수학식 4]로 결정될 수 있다.
[수학식 4]
V0' = (V1'+ V2' + ... + VN') / N
평균 예측값 V0'이 예측값 V1', V2', …, VN' 중 하나와 동일한 경우, 평균 예측값 V0' 또는 중복된 예측값 중 하나가 제거될 수 있다.
인코더 측에서, Vi'는 V와 비교될 수 있으며, 여기서 0 <= i <= N이다. 예측 인덱스 j가 선택될 수 있다. 선택된 예측 인덱스 j는 V와 각 예측값 Vi' 사이의 최소 예측 잔차에 대응하는 Vi' 중에서 선택된 예측값을 지시한다. 일부 실시예에서, 최소 오차(또는 최소 예측 잔차)는 L0 놈(norm), L1 놈, L2 놈, 또는 일부 다른 놈에 의해 측정될 수 있다. 예를 들어, L0 놈은,
[수학식 5]
에 따라 결정될 수 있으며,
여기서 Vx, Vy, Vz는 xyz 공간에서 V의 좌표이고, V0x', V0y', V0z'는 xyz 공간에서 V0'의 좌표이다.
디코더 측에서, 선택의 인덱스(예를 들어, 예측 인덱스)가 디코딩될 수 있고 선택된 예측자(또는 예측값)가 예측자의 리스트로부터 복원될 수 있다. 예를 들어, 디코더는 평행사변형 예측과 같은 예측 모드에 기초하여 현재 정점에 대한 하나 이상의 예측값을 결정할 수 있다. 또한, 하나 이상의 예측값의 평균이 예측자로서 고려될 수 있다. 평균 예측값과 하나 이상의 예측값이 예측 리스트를 형성하기 위해 정렬될 수 있다. 예에서, 디코더 측에서 생성된 예측 리스트는 인코더 측에서 생성된 예측 리스트와 동일할 수 있다. 디코딩된 예측 인덱스에 따르면, 선택된 예측자는 예측 리스트로부터의 예측 인덱스를 기반으로 복원될 수 있다.
실시예에서, 인코더 측에서, 예측 후보의 개수 N이 지정된(또는 미리 결정된) 값과 동일한 경우, 고정된 예측 인덱스가 선택(또는 미리 결정)될 수 있다. 예에서, N은 2보다 크거나 5보다 작거나 같을 수 있다. 따라서, 예측 리스트에서 선택된 예측자와 연관된 예측 인덱스는 코딩될 필요가 없을 수도 있다. 디코더 측에서, 디코더는 예측 인덱스(또는 고정된 예측 인덱스)를 복원(또는 식별)할 수 있다. 예를 들어, N > 2인 경우, 예측 인덱스 0이 선택(또는 식별)될 수 있다. 따라서, N > 2인 경우, 예측 인덱스가 코딩될 필요가 없다.
실시예에서, 인코더 측에서, N이 2와 같은 상수보다 크거나 같은 경우, 고정된 예측 인덱스가 선택(또는 미리 결정)될 수 있다. 따라서, 모든 예측 인덱스가 코딩될 필요는 없다. 디코더 측에서, 디코더는 예측 인덱스(또는 고정된 예측 인덱스)를 복원(또는 식별)할 수 있다. 예에서, N = 2인 경우, 제1 예측 인덱스(예를 들어, 예측 인덱스 1)가 선택될 수 있다. 예에서, N > 2인 경우, 제2 예측 인덱스(예를 들어, 예측 인덱스 0)가 선택될 수 있다. 예에서, N >= 2인 경우, 제3 예측 인덱스(예를 들어, 예측 인덱스 0 또는 예측 인덱스 3)가 선택될 수 있다.
실시예에서, 상한 M이 설정될 수 있다. 상한 M은 예측 리스트에서 몇 개의 예측 후보가 고려(또는 적용)될 수 있는지를 지시할 수 있다. N > M인 경우, 메시의 각 정점에 대해, 제1 M개의 예측 후보만이 고려된다. 이에 따라, 제1 M개의 예측 후보와 연관된 예측값 V1', V2', …, VM'이 적용된다. 실시예에서, 제1 M개의 예측값의 평균은 [수학식 6]에서 결정될 수 있다:
[수학식 6]
V0' = (V1'+ V2' + ... + VM') / M
M은 4와 같은 정수일 수 있다. 따라서, 최대 M(예를 들어 4)개의 예측 후보가 고려될 수 있다. 평균 예측 V0'는 후보 리스트의 상이한 위치에 배치될 수 있다. 예에서, 평균 예측 V0'는 예측 후보 리스트의 제1 예측자일 수 있다. 예에서, 평균 예측 V0'는 예측 후보 리스트의 마지막 예측자일 수 있다. 예에서, 평균 예측 V0'은 예측값 V1', V2', ... VM'에 위치할 수 있다.
실시예에서, 3D 좌표가 예측을 위해 코딩되고 사용가능한 경우, 3D 좌표 기반 예측이 텍스처 좌표를 예측하는 데 적용될 수 있다. 예를 들어, 도 6의 정점 D에 대한 3D 좌표 기반 예측은 Dx', Dy', Dz'와 같은 3D 좌표를 가질 수 있다. 3D 좌표 기반 예측을 수행하기 위해 인터 프레임 예측, 인트라 프레임 예측과 같은 다양한 예측 방법이 적용될 수 있다. 예에서, 인트라 프레임 예측은 평행사변형 예측일 수 있다. 3D 좌표 기반 예측은 평행사변형 기반 예측(예를 들어, 2D 좌표 기반 예측)과 비교될 수 있고, 코딩 비용이 더 작은 쪽이 선택될 수 있다. 이진 플래그가 추가로 코딩될 수 있다. 이진 플래그는 3D 좌표 기반 예측 또는 평행사변형 기반 예측(예를 들어, 2D 좌표 기반 예측)이 선택되었는지 여부를 지시할 수 있다.
실시예에서, 3D 좌표 기반 예측과 평행사변형 기반 예측의 평균이 정점 V에 대한 예측자로서 적용될 수 있다.
정점 V가 N개의 예측 후보 V1', V2', ..., VN' 및 평균 V0'을 포함하는 경우, 선택된 예측 인덱스가 코딩될 수 있다. 선택된 예측 인덱스는 예측 리스트에서 선택된 예측자를 지시한다. 예측 리스트에는 N개의 예측 후보 V1', V2', ..., VN' 및 평균 V0'이 포함된다.
일부 실시예에서, 예측 인덱스는 하나 이상의 예측 후보가 존재하는 경우에만 코딩될 필요가 있다. 예를 들어, 현재 정점에 대해 2개 이상의 예측 후보가 사용 가능한 경우, 선택된 예측 후보를 지시하는 인덱스가 인코더 측에서 코딩될 수 있다. 디코더 측에서, 디코더는 인코더와 동일한 순서로 2개 이상의 예측 후보를 결정할 수 있다. 디코더는 코딩된 예측 인덱스를 디코딩하고, 둘 이상의 예측 후보로부터의 예측 인덱스에 기초하여 선택된 예측 후보를 재구성할 수 있다.
실시예에서, 예측 후보가 결정되지 않거나, 또는 하나의 예측 후보만이 결정되는 경우, 예측 인덱스는 코딩되지 않을 수도 있다. 따라서, 예측값은 현재 정점 자체가 될 수 있거나 또는 유일한 예측 후보일 수 있다. 실시예에서, 예측 인덱스는 얼마나 많은 예측자 후보가 사용 가능한지에 관계없이 항상 코딩될 수 있다. 예측자가 사용 가능하지 않은 경우, 시그널링된 인덱스의 값은 디코더 측의 디코딩 프로세스에 영향을 미치지 않을 수 있다.
일부 실시예에서, N이 2≤N≤5와 같이 지정된(또는 미리 결정된) 값인 것에 응답하여 고정된 예측 인덱스가 선택(또는 미리 결정)되는 경우, 예측 인덱스는 코딩되지 않을 수 있다.
일부 실시예에서, 예측 인덱스는 고정되지 않고 예측 후보로부터 선택된다. 현재 정점에 대해 하나 이상의 예측 후보가 결정되는 경우, 예측 인덱스는 고정 길이 코딩을 사용하여 코딩될 수 있다. 예를 들어, 현재 정점에 대해 3개의 예측 후보가 결정되면, 4개의 가능한 예측 인덱스 0, 1, 2, 3(0은 후보 1, 2, 3의 평균값을 지시함)이 필요할 수 있다. 따라서, 두 자리 이진수가 4개의 예측 인덱스 각각을 나타내는 데 적용될 수 있다. 삼각형 메시의 상이한 정점은 상이한 고정 길이를 사용할 수 있다. 예를 들어, 다른 정점이 7개의 예측 후보를 갖는 경우, 다른 정점은 예측 인덱스 표현에 3자리 이진수를 사용할 수 있다. 고정 길이 코딩의 출력은 산술 코딩과 같은 엔트로피 코딩에 의해 추가로 압축될 수 있다.
다르게는, 예측 인덱스는 가변 길이 코딩을 사용하여 코딩될 수 있다. 예를 들어, 현재 정점에 대해 4개의 예측 후보가 결정되는 경우, 5개의 가능한 예측 인덱스 0, 1, 2, 3, 4가 필요할 수 있다. 5개의 예측 인덱스 0, 1, 2, 3, 4를 각각 표현하기 위해 0, 100, 101, 110, 111의 가변 길이 코드가 할당될 수 있다. 다르게는, 1, 01, 001, 0001, 00001의 가변 길이 코드가 0, 1, 2, 3, 4의 5개의 예측 인덱스를 각각 나타내는 데 적용될 수 있다. 삼각형 메시의 상이한 정점은 상이한 가변 길이를 사용할 수 있다. 가변 길이 코딩의 출력은 산술 코딩과 같은 엔트로피 코딩에 의해 추가로 압축될 수 있다.
다르게는, 예측 인덱스는 차등 코딩될 수 있으며, 여기서 현재 정점의 예측 인덱스는 이전에 코딩된 예측 인덱스로부터 예측될 수 있고, 예측 인덱스와 연관된 예측 오차도 코딩될 수 있다. 예를 들어, 예측자의 제1 예측 인덱스와 예측자의 제2 예측 인덱스 사이의 차이가 먼저 코딩될 수 있다. 제2 예측 인덱스는 제1 예측 인덱스와 제2 예측 인덱스 사이의 차이에 기초하여 추가로 코딩될 수 있다.
상한 M이 예측 후보의 최대 개수를 제한하기 위해 설정되는 경우, 그리고 정점 V에 대해 M개보다 많은 예측 후보가 사용 가능하다면, 제1 M개의 예측 후보만이 정점 V를 예측하는 데 사용될 수 있다. (M+1)개의 가능한 예측 인덱스가 코딩될 수 있으며, 여기서 M은 제1 M개의 예측 후보를 지시하고 1은 제1 M개의 예측 후보의 평균을 지시한다. 예측값에서 중복이 결정되면, 중복이 제거될 수 있다. 이에 따라, 예측 인덱스의 가능성이 또한 감소될 수 있다. 고정된 예측 인덱스가 선택(또는 미리 결정)된 경우, 예측 인덱스는 코딩되지 않을 수 있다. 예측 인덱스가 고정되어 있지 않고 하나 이상의 예측 후보 중에서 선택되면, 예측 인덱스는 코딩될 수 있다. 예측 인덱스는 고정 길이 코딩, 가변 길이 코딩, 차등 코딩 등을 통해 코딩될 수 있다.
3D 좌표 기반 예측이 또한 예측 후보인 경우, 1비트 이진 플래그가 예측 모드를 시그널링하는 데 사용될 수 있다. 1비트 이진 플래그는 예측 모드가 3D 좌표 기반 예측인지 평행사변형 기반 예측인지의 여부를 지시할 수 있다.
3D 좌표 기반 예측과 평행사변형 기반 예측의 평균이 또한 예측 후보인 경우, 3-심볼 플래그가 예측 모드를 시그널링하는 데 사용될 수 있다. 3-심볼 플래그는 예측 모드가 3D 좌표 기반 예측인지, 평행사변형 기반 예측인지, 또는 3D 좌표 기반 예측과 평행사변형 기반 예측의 평균인지의 여부를 지시할 수 있다.
실시예에서, 위치값(또는 예측값)의 예측 잔차 R이 코딩(또는 결정)될 수 있다. 예측 잔차 R은 현재 정점과 현재 정점의 예측값과 현재 정점 사이의 차이를 지시할 수 있다. 예측 잔차 R은 고정 길이 코딩, 지수-골롬 코딩(exponential-Golomb coding), 산술 코딩 등에 의해 코딩될 수 있다. 따라서, 디코더는 예측값 및 예측 잔차에 기초하여 현재 정점을 재구성할 수 있으며, 여기서 예측값은 예측 리스트로부터 디코딩된 예측 인덱스에 기초하여 결정될 수 있다.
도 7은 본 개시의 실시예에 따른 프로세스(700)의 개요를 설명하는 흐름도를 도시한다. 프로세스(700)는 비디오 인코더와 같은 인코더에서 사용될 수 있다. 다양한 실시예에서, 프로세스(700)는 비디오 인코더(103)의 기능을 수행하는 처리 회로, 비디오 인코더(303)의 기능을 수행하는 처리 회로 등과 같은 처리 회로에 의해 실행된다. 일부 실시예에서, 프로세스(700)는 소프트웨어 명령어로 구현되므로, 처리 회로가 소프트웨어 명령어를 실행할 때, 처리 회로는 프로세스(700)를 수행한다. 프로세스는 단계 (S701)에서 시작하여 단계 (S710)로 진행된다.
단계 (S710)에서, 현재 정점에 대한 복수의 후보 예측이 결정된다. 현재 정점은 메시의 복수의 정점 중 하나이다. 복수의 후보 예측 각각은 메시 내의 복수의 삼각형 중 각각의 삼각형에 기초하고 2D 도메인의 2차원(2D) 좌표를 포함하여 결정된다.
단계 (S720)에서, 복수의 후보 예측의 평균 예측이 계산된다.
단계 (S730)에서, 현재 정점의 2D 예측은 복수의 후보 예측과 평균 예측을 포함하는 예측 리스트에서 선택된다. 선택된 2D 예측은 현재 정점과 예측 리스트 내의 각 예측자 사이의 임계값 예측 차이에 대응한다.
단계 (S740)에서, 현재 정점의 3차원(3D) 예측은 메시 내 현재 정점의 하나 이상의 이웃 정점에 기초하여 결정된다. 3D 예측에는 3D 도메인의 3D 좌표가 포함된다.
단계 (S750)에서, 현재 정점의 예측 오차를 포함하는 예측 잔차가 인코딩된다. 예측 잔차는 선택된 2D 예측과 결정된 현재 정점의 3D 예측에 기초하여 획득된다.
예에서, 현재 정점의 복수의 후보 예측을 결정하기 위해, 복수의 삼각형 중 제1 삼각형이 현재 정점에 대해 결정되며, 여기서 제1 삼각형은 복수의 삼각형 중 제2 삼각형과 에지를 공유하고, 현재 정점은 제2 삼각형에 포함되고 공유된 에지 반대편에 있다. 복수의 후보 예측 중 제1 예측은 제1 예측과 제1 삼각형이 제1 평행사변형을 형성하는 평행사변형 예측을 통해 결정된 제1 삼각형에 기초하여 결정된다.
일부 실시예에서, 현재 정점의 2D 예측을 선택하기 위해, 현재 정점에 대한 예측 리스트가 결정된다. 예측 리스트의 예측자는 평균 예측과 예측 리스트 내 평균 예측에 후속하는 복수의 후보 예측을 포함한다. 예측 리스트 내의 복수의 후보 예측의 순서는 복수의 후보 예측에 대응하는 복수의 삼각형의 순서에 기초한다. 예측 리스트의 예측자 각각에 대한 예측 인덱스가 추가로 결정된다.
일부 실시예에서, 복수의 삼각형은 복수의 삼각형이 나선형 삼각형 스패닝 트리(spiraling triangle-spanning-tree) 순서로 라벨링되는 에지브레이커(Edgebreaker) 알고리즘에 기초하여 정렬된다.
일부 실시예에서, 현재 정점의 2D 예측을 선택하기 위해, 예측 리스트의 예측자 각각과 현재 정점 사이의 예측 차이가 결정된다. 2D 예측은 선택된 2D 예측이 예측 차이의 최소 예측 차이에 대응하도록 예측 리스트의 예측자 중에서 선택된다.
일부 실시예에서, 2D 예측은 2D 예측이 예측 리스트의 서브셋의 최소 예측 차이에 대응하도록 예측 리스트의 서브셋에서 선택된다.
예에서, 현재 정점의 3D 예측은 3D 예측이 하나 이상의 이웃 정점의 이웃 정점으로 결정되는 델타 예측에 기초하여 결정된다. 예에서, 현재 정점의 3D 예측은 3D 예측과 하나 이상의 이웃 정점 중 3개의 이웃 정점이 평행사변형을 형성하는 평행사변형 예측에 기초하여 결정된다.
일부 실시예에서, 예측 잔차를 인코딩하기 위해, 현재 정점의 예측값은 2D 예측 및 3D 예측 중 다른 것보다 예측 차이가 작은 2D 예측 및 3D 예측 중 하나에 기초하여 결정된다. 예측값과 현재 정점 사이의 차이를 지시하는 예측 잔차가 추가로 인코딩된다.
일부 실시예에서, 예측 잔차를 인코딩하기 위해, 현재 정점의 예측값은 2D 예측과 3D 예측의 평균에 기초하여 결정된다. 예측값과 현재 정점 사이의 차이를 지시하는 예측 잔차가 추가로 인코디된다.
예에서, 예측 리스트에서 선택된 2D 예측의 예측 인덱스를 지시하는 인덱스 정보가 인코딩된다. 예에서, 플래그가 추가로 인코딩된다. 플래그는 현재 정점의 예측값이 2D 예측, 3D 예측, 또는 2D 예측과 3D 예측의 평균에 기초하여 결정됨을 지시한다.
그후, 프로세스는 단계 (S799)로 진행하여 종료한다.
프로세스(700)는 적절하게 조정될 수 있다. 프로세스(700)의 단계(들)는 수정되고 및/또는 생략될 수 있다. 추가 단계(들)가 추가될 수 있다. 적절한 구현 순서가 사용될 수 있다.
도 8은 본 개시의 실시예에 따른 프로세스(800)의 개요를 설명하는 흐름도를 도시한다. 프로세스(800)는 비디오 디코더와 같은 디코더에서 사용될 수 있다. 다양한 실시예에서, 프로세스(800)는 비디오 디코더(110)의 기능을 수행하는 처리 회로, 비디오 디코더(210)의 기능을 수행하는 처리 회로 등과 같은 처리 회로에 의해 실행된다. 일부 실시예에서, 프로세스(800)는 소프트웨어 명령어로 구현되므로, 처리 회로가 소프트웨어 명령어를 실행할 때, 처리 회로는 프로세스(800)를 수행한다. 프로세스는 단계 (S801)에서 시작하여 단계 (S810)로 진행된다.
단계 (S810)에서, 복수의 삼각형과 복수의 정점을 포함하는 메시의 코딩 정보가 수신된다. 코딩 정보는 복수의 정점 중 현재 정점의 인덱스 정보를 포함한다. 인덱스 정보는 현재 정점의 2차원(2D) 예측을 지시한다. 현재 정점의 2D 예측에는 2D 도메인의 2D 좌표가 포함된다.
단계 (S820)에서, 현재 정점의 복수의 후보 예측은 복수의 삼각형에 기초하여 결정되며, 여기서 복수의 후보 예측 각각은 복수의 삼각형 중 각각의 하나에 대응된다.
단계 (S830)에서, 현재 정점의 2D 예측은 인덱스 정보에 기초하여 복수의 후보 예측 중에서 선택된다. 선택된 2D 예측은 현재 정점과 복수의 후보 예측 각각 사이의 임계값 예측 차이에 대응한다.
단계 (S840)에서, 현재 정점의 3차원(3D) 예측은 메시 내 현재 정점의 하나 이상의 이웃 정점에 기초하여 결정되며, 여기서 3D 예측은 3D 도메인의 3D 좌표를 포함한다.
단계 (S850)에서, 현재 정점은 선택된 2D 예측과 결정된 현재 정점의 3D 예측에 기초하여 재구성된다.
그 후, 프로세스는 단계 (S899)로 진행하여 종료한다.
프로세스(800)는 적절하게 조정될 수 있다. 프로세스(800)의 단계(들)는 수정되고 및/또는 생략될 수 있다. 추가 단계(들)가 추가될 수 있다. 적절한 구현 순서가 사용될 수 있다.
위에서 설명된 기술은 컴퓨터 판독 가능 명령어를 사용하며 비일시적 컴퓨터 판독 가능 저장 매체와 같은 하나 이상의 컴퓨터 판독 가능 매체에 물리적으로 저장된 컴퓨터 소프트웨어로서 구현될 수 있다. 예를 들어, 도 9는 개시된 주제의 특정 실시예를 구현하는 데 적합한 컴퓨터 시스템(900)을 도시한다.
컴퓨터 소프트웨어는 하나 이상의 컴퓨터 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(GPU) 등과 같은 처리 회로에 의한 어셈블리, 컴파일, 링크 또는 유사한 메커니즘을 통해 직접 실행될 수 있는 명령어를 포함하는 코드를 생성할 수 있는 임의의 적절한 기계 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있다.
명령어는 예를 들어 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰, 게임 장치, 사물 인터넷 장치 등을 포함하는 다양한 유형의 컴퓨터 또는 그 컴포넌트에서 실행될 수 있다.
컴퓨터 시스템(900)에 대해 도 9에 도시된 컴포넌트는 본질적으로 예시적이며 본 개시의 실시예를 구현하는 컴퓨터 소프트웨어의 사용 또는 기능의 범위에 대한 어떠한 제한도 제안하려는 것이 아니다. 컴포넌트의 구성은 컴퓨터 시스템(900)의 예시적인 실시예에 도시된 컴포넌트의 임의의 하나 또는 조합과 관련된 임의의 종속성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
컴퓨터 시스템(900)은 특정 휴먼 인터페이스 입력 장치를 포함할 수 있다. 이러한 휴먼 인터페이스 입력 장치는 예를 들어, 촉각 입력(예: 키 입력, 스와이프, 데이터 장갑 움직임), 오디오 입력(예: 음성, 박수), 시각적 입력(예: 제스처), 후각 입력(도시되지 않음)을 통해 한 명 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 휴먼 인터페이스 장치는 또한 오디오(예: 음성, 음악, 주변 소리), 이미지(예: 스캔된 이미지, 정지 이미지 카메라로부터 획득하는 사진 이미지), 비디오(예: 2차원 비디오, 입체 비디오를 포함한 3차원 비디오)와 같이 인간에 의한 의식적 입력과 직접 관련이 없는 특정 매체를 캡처하는 데 사용될 수 있다.
입력 휴먼 인터페이스 장치는 키보드(901), 마우스(902), 트랙 패드(903), 터치 스크린(910), 데이터-글로브(도시되지 않음), 조이스틱(905), 마이크(906), 스캐너(907) 및 카메라(908) 중 하나 이상(각각 도시된 것 중 하나만)을 포함할 수 있다.
컴퓨터 시스템(900)은 또한 특정 휴먼 인터페이스 출력 장치를 포함할 수 있다. 이러한 후먼 인터페이스 출력 장치는 예를 들어 촉각 출력, 소리, 빛 및 냄새/맛을 통해 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 휴먼 인터페이스 출력 장치는, 촉각 출력 장치(예를 들어, 터치 스크린(910), 데이터-글로브(도시되지 않음) 또는 조이스틱(905)에 의한 촉각 피드백을 포함하지만, 입력 장치로서 기능하지 않는 촉각 피드백 장치일 수도 있음), 오디오 출력 장치(예: 스피커(909), 헤드폰(도시되지 않음)), 시각 출력 장치(예: CRT 스크린, LCD 스크린, 플라즈마 스크린, OLED 스크린, 터치 스크린 입력 능력을 갖거나 갖지 않는 각각, 촉각 피드백 능력을 갖거나 또는 갖지 않는 각각을 포함하는 스크린(910)과 같음 ― 그 중 일부는 입체 출력, 가상 현실 안경(도시되지 않음), 홀로그래픽 디스플레이 및 스모크 탱크(smoke tank, 도시되지 않음))와 같은 수단을 통해 2차원 시각적 출력 또는 3차원 이상의 출력을 출력할 수 있음) ― 및 프린터(도시되지 않음)를 포함할 수 있다.
컴퓨터 시스템(900)은 또한 인간이 액세스 가능한 저장 장치 및 CD/DVD를 갖는 CD/DVD ROM/RW(920)를 포함하는 광학 매체 또는 유사 매체(921), 썸 드라이브(thumb-drive)(922), 탈착식 하드 드라이브 또는 솔리드 스테이트 드라이브(923), 테이프 및 플로피 디스크와 같은 레거시 자기 매체(도시되지 않음), 보안 동글과 같은 특수 ROM/ASIC/PLD 기반 장치(도시되지 않음) 등과 같은 이와 연관된 매체를 포함할 수 있다.
통상의 기술자는 또한 현재 개시된 주제와 관련하여 사용되는 "컴퓨터 판독 가능 매체"라는 용어가 전송 매체, 반송파 또는 다른 일시적 신호를 포함하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(900)은 또한 하나 이상의 통신 네트워크(955)에 대한 인터페이스(954)를 포함할 수 있다. 네트워크는 예를 들어 무선, 유선, 광일 수 있다. 네트워크는 또한 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연 허용 등일 수 있다. 네트워크의 예로는 이더넷과 같은 근거리 통신망, 무선 LAN, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크, 케이블 TV, 위성 TV 및 지상파 방송 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크, CANBus를 포함하는 차량 및 산업용 등을 포함한다. 특정 네트워크에는 일반적으로 특정 범용 데이터 포트 또는 주변 장치 버스(949)(예를 들어, 컴퓨터 시스템(900)의 USB 포트와 같음)에 부착된 외부 네트워크 인터페이스 어댑터가 필요하다. 다른 것들은 일반적으로 아래에 설명된 바와 같이 시스템 버스에 대한 부착에 의해 컴퓨터 시스템(2300)의 코어에 통합된다(예를 들어, PC 컴퓨터 시스템에 대한 이더넷 인터페이스 또는 스마트 폰 컴퓨터 시스템에 대한 셀룰러 네트워크 인터페이스). 이러한 네트워크 중 하나를 사용하여, 컴퓨터 시스템(900)은 다른 엔티티와 통신할 수 있다. 이러한 통신은 단방향, 수신 전용(예를 들어, 방송 TV), 단방향 전송 전용(예를 들어, 특정 CANbus 장치에 대한 CANbus) 또는 양방향, 예를 들어, 로컬 또는 광역 디지털 네트워크를 사용하는 다른 컴퓨터 시스템일 수 있다. 특정 프로토콜 및 프로토콜 스택은 상기한 바와 같이 각각의 네트워크 및 네트워크 인터페이스에서 사용될 수 있다.
전술한 휴먼 인터페이스 장치, 인간 액세스 가능 저장 장치 및 네트워크 인터페이스는 컴퓨터 시스템(900)의 코어(940)에 부착될 수 있다.
코어(940)는 하나 이상의 중앙 처리 장치(CPU)(941), 그래픽 처리 장치(Graphics Processing Unit, GPU)(942), FPGA(Field Programmable Gate Area)(2343) 형태의 특수 프로그램 가능 처리 유닛, 특정 태스크에 대한 하드웨어 가속기(944), 그래픽 어댑터(850) 등을 포함할 수 있다. 읽기 전용 메모리(Read-only memory, ROM)(945), 랜덤 액세스 메모리(Random-access memory, 946), 내부 비 사용자 액세스 가능 하드 드라이브, SSD 및 유사체(947)와 같은 내부 대용량 저장소와 함께 이러한 장치는 시스템 버스(948)를 통해 연결될 수 있다. 일부 컴퓨터 시스템에서, 시스템 버스(948)는 추가 CPU, GPU 등에 의한 확장을 가능하게 하기 위해 하나 이상의 물리적 플러그의 형태로 액세스될 수 있다. 주변 장치는 코어의 시스템 버스(948)에 직접 부착되거나, 또는 주변 장치 버스(949)를 통해 부착될 수 있다. 예에서, 스크린(910)은 그래픽 어댑터(950)에 연결될 수 있다. 주변 장치 버스의 아키텍처에는 PCI, USB 등이 포함된다.
CPU(941), GPU(942), FPGA(943) 및 가속기(944)는 조합하여 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령을 실행할 수 있다. 이 컴퓨터 코드는 ROM(945) 또는 RAM(946)에 저장될 수 있다. 과도기 데이터는 RAM(946)에 저장될 수도 있지만, 영구 데이터는 예를 들어 내부 대용량 저장소(947)에 저장될 수 있다. 하나 이상의 CPU(941), GPU(942), 대용량 저장소(947), ROM(945), RAM(946) 등과 밀접하게 연관될 수 있는 캐시 메모리의 사용을 통해 모든 메모리 장치에 대한 빠른 저장 및 검색이 가능해질 수 있다.
컴퓨터 판독 가능 매체는 다양한 컴퓨터 구현 작동을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시의 목적을 위해 특별히 설계되고 구성된 것일 수 있거나, 또는 컴퓨터 소프트웨어 분야의 당업자에게 잘 알려져 있고 이용 가능한 종류일 수 있다.
예로서 그리고 제한없이, 아키텍처를 갖는 컴퓨터 시스템(900), 특히 코어(940)는 하나 이상의 유형의 컴퓨터 판독 가능 매체에 구현된 소프트웨어를 실행하는 프로세서(들)(CPU, GPU, FPGA, 가속기 등을 포함함)의 결과로서 기능을 제공할 수 있다. 이러한 컴퓨터 판독 가능 매체는 위에서 소개한 바와 같이 사용자 액세스 가능 대용량 저장소와 연관된 매체일 수 있으며, 코어 내부 대용량 저장소(947) 또는 ROM(945)과 같은 비 일시적 특성을 가진 코어(940)의 특정 저장소일 수 있다. 본 개시의 다양한 실시예를 구현하는 소프트웨어는 이러한 장치에 저장되고 코어(940)에 의해 실행될 수 있다. 컴퓨터 판독 가능 매체는 특정 필요에 따라 하나 이상의 메모리 장치 또는 칩을 포함할 수 있다. 소프트웨어는 코어(940) 및 특히 그 안의 프로세서(CPU, GPU, FPGA 등을 포함함)가 RAM(946)에 저장된 데이터 구조를 정의하는 것과 소프트웨어에서 정의된 프로세스에 따라 이러한 데이터 구조를 수정하는 것을 포함하여 여기에서 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하도록 할 수 있다. 추가로 또는 다르게는, 컴퓨터 시스템은 여기에서 설명된 특정 프로세스나 특정 프로세스의 특정 부분을 실행하기 위해 소프트웨어 대신 또는 소프트웨어와 함께 작동할 수 있는 회로(예를 들어, 가속기(944)에 고정되거나 다른 방식으로 구현된 로직의 결과로서 기능을 제공할 수 있다. 소프트웨어에 대한 참조는 로직을 포함할 수 있으며, 적절한 경우에 그 반대도 마찬가지이다. 컴퓨터 판독 가능 매체에 대한 참조는 실행을 위한 소프트웨어를 저장하는 회로(집적 회로(integrated circuit, IC)와 같음), 실행을 위한 로직을 구현하는 회로, 또는 적절한 경우 둘 다를 포함할 수 있다. 본 개시는 하드웨어 및 소프트웨어의 임의의 적절한 조합을 포함한다.
본 개시에서 "중 적어도 하나" 또는 "중 하나"의 사용은 인용된 요소들 중 임의의 하나 또는 조합을 포함하도록 의도된다. 예를 들어, A, B 또는 C 중 적어도 하나; A, B 및 C 중 적어도 하나; A, B 및/또는 C 중 적어도 하나; A 내지 C 중 적어도 하나에 대한 언급은 A만, B만, C만 또는 이들의 임의의 조합을 포함하도록 의도된다. A 또는 B 중 하나와 A 및 B 중 하나에 대한 언급은 A 또는 B 또는 (A 및 B)를 포함하도록 의도된다. 요소가 상호 배타적이지 않은 경우와 같이 적용 가능한 경우 "중 하나"의 사용은 인용된 요소의 조합을 배제하지 않는다.
본 개시는 몇몇 예시적인 실시예를 설명하였지만, 개시의 범위 내에 속하는 변경, 순열 및 다양한 대체 등가물이 있다. 따라서, 당업자는 본 명세서에서 명시적으로 도시되거나 설명되지는 않았지만 본 개시의 원리를 구현하고 따라서 본 발명의 사상 및 범위 내에 있는 수많은 시스템 및 방법을 고안할 수 있음을 이해할 것이다.

Claims (20)

  1. 비디오 인코더에서 수행되는 메시 처리 방법으로서,
    현재 정점의 복수의 후보 예측을 결정하는 단계 ― 상기 현재 정점은 메시의 복수의 정점 중 하나이며, 상기 복수의 후보 예측의 각각은 상기 메시의 복수의 삼각형 중 각각의 하나에 기초하여 결정되고 2차원(two-dimensional, 2D) 도메인의 2D 좌표를 포함함 ―;
    상기 복수의 후보 예측의 평균 예측을 계산하는 단계;
    상기 복수의 후보 예측과 상기 평균 예측을 포함하는 예측 리스트에서 상기 현재 정점의 2D 예측을 선택하는 단계 ― 상기 선택된 2D 예측은 상기 현재 정점과 상기 예측 리스트의 각 예측자 사이의 임계 예측 차이에 대응함―;
    상기 메시에서 상기 현재 정점의 하나 이상의 이웃 정점들에 기초하여 상기 현재 정점의 3차원(three-dimensional, 3D) 예측을 결정하는 단계 ― 상기 3D 예측은 3D 도메인의 3D 좌표를 포함함 ―; 및
    상기 현재 정점의 예측 오차를 포함하는 예측 잔차를 인코딩하는 단계 ― 상기 예측 잔차는 상기 선택된 2D 예측 및 상기 결정된 현재 정점의 3D 예측에 기초하여 획득됨 ―
    를 포함하는 메시 처리 방법.
  2. 제1항에 있어서,
    상기 현재 정점의 복수의 후보 예측을 결정하는 단계는,
    상기 현재 정점에 대해 상기 복수의 삼각형 중 제1 삼각형을 결정하는 단계 ― 상기 제1 삼각형은 상기 복수의 삼각형 중 제2 삼각형과 에지를 공유하며, 상기 현재 정점은 상기 제2 삼각형에 포함되고 상기 공유된 에지의 반대편에 있음 ―; 및
    평행사변형 예측을 통해 상기 결정된 제1 삼각형에 기초하여 상기 복수의 후보 예측 중 제1 예측을 결정하는 단계 ― 상기 평행사변형 예측에서 상기 제1 예측과 상기 제1 삼각형이 제1 평행사변형을 형성함 ―
    를 더 포함하는, 메시 처리 방법.
  3. 제2항에 있어서,
    상기 현재 정점의 2D 예측을 선택하는 단계는,
    상기 현재 정점에 대한 예측 리스트를 결정하는 단계 ― 상기 예측 리스트의 예측자는 상기 평균 예측과 상기 예측 리스트에서 상기 평균 예측에 후속하는 복수의 후보 예측을 포함하고, 상기 예측 리스트에서 상기 복수의 후보 예측의 순서는 상기 복수의 후보 예측에 대응하는 상기 복수의 삼각형의 순서에 기초함 ―; 및
    상기 예측 리스트의 예측자 각각에 대한 예측 인덱스를 결정하는 단계
    를 더 포함하는, 메시 처리 방법.
  4. 제3항에 있어서,
    상기 복수의 삼각형이 나선형 삼각형 스패닝 트리(spiraling triangle-spanning-tree) 순서로 라벨링되는 에지브레이커(Edgebreaker) 알고리즘에 기초하여 상기 복수의 삼각형이 정렬되는,
    메시 처리 방법.
  5. 제3항에 있어서,
    상기 현재 정점의 2D 예측을 선택하는 단계는,
    상기 예측 리스트의 예측자 각각과 상기 현재 정점 사이의 예측 차이를 결정하는 단계; 및
    상기 선택된 2D 예측이 상기 예측 차이의 최소 예측 차이에 대응하도록 상기 예측 리스트의 예측자로부터 상기 2D 예측을 선택하는 단계
    를 더 포함하는, 메시 처리 방법.
  6. 제5항에 있어서,
    상기 현재 정점의 2D 예측을 선택하는 단계는,
    상기 2D 예측이 상기 예측 리스트의 서브셋(subset)의 최소 예측 차이에 대응하도록 상기 예측 리스트의 서브셋에서 상기 2D 예측을 선택하는 단계
    를 더 포함하는, 메시 처리 방법.
  7. 제5항에 있어서,
    상기 현재 정점의 3D 예측을 결정하는 단계는,
    상기 3D 예측이 상기 하나 이상의 이웃 정점들 중 하나의 이웃 정점으로 결정되는 델타 예측에 기초하여 상기 현재 정점의 3D 예측을 결정하는 단계; 및
    평행사변형 예측에 기초하여 상기 현재 정점의 3D 예측을 결정하는 단계 ― 상기 평행사변형 예측에서 상기 3D 예측과 상기 하나 이상의 이웃 정점들 중 3개의 이웃 정점이 평행사변형을 형성함 ―
    중 하나를 더 포함하는. 메시 처리 방법.
  8. 제1항에 있어서,
    상기 예측 잔차를 인코딩하는 단계는,
    상기 2D 예측과 상기 3D 예측 중 하나보다 예측 차이가 작은 상기 2D 예측과 상기 3D 예측 중 다른 하나에 기초하여 상기 현재 정점의 예측값을 결정하는 단계; 및
    상기 예측값과 상기 현재 정점 사이의 차이를 지시하는 예측 잔차를 인코딩하는 단계
    를 더 포함하는, 메시 처리 방법.
  9. 제1항에 있어서,
    상기 예측 잔차를 인코딩하는 단계는,
    상기 2D 예측과 상기 3D 예측의 평균에 기초하여 상기 현재 정점의 예측값을 결정하는 단계; 및
    상기 예측값과 상기 현재 정점 사이의 차이를 지시하는 예측 잔차를 인코딩하는 단계
    를 더 포함하는, 메시 처리 방법.
  10. 제3항에 있어서,
    상기 예측 리스트에서 상기 선택된 2D 예측의 예측 인덱스를 지시하는 인덱스 정보를 인코딩하는 단계; 및
    상기 현재 정점의 예측값이 상기 2D 예측, 또는 상기 3D 예측, 또는 상기 2D 예측과 3D 예측의 평균 중 하나에 기초하여 결정됨을 지시하는 플래그를 인코딩하는 단계
    를 더 포함하는, 메시 처리 방법.
  11. 메시 처리를 위한 장치로서,
    처리 회로
    를 포함하며,
    상기 처리 회로는,
    현재 정점의 복수의 후보 예측을 결정하고 ― 상기 현재 정점은 메시의 복수의 정점 중 하나이며, 상기 복수의 후보 예측의 각각은 상기 메시의 복수의 삼각형 중 각각의 하나에 기초하여 결정되고 2차원(2D) 도메인의 2D 좌표를 포함함 ―,
    상기 복수의 후보 예측의 평균 예측을 계산하며,
    상기 복수의 후보 예측과 상기 평균 예측을 포함하는 예측 리스트에서 상기 현재 정점의 2D 예측을 선택하고 ― 상기 선택된 2D 예측은 상기 현재 정점과 상기 예측 리스트의 각 예측자 사이의 임계 예측 차이에 대응함―,
    상기 메시에서 상기 현재 정점의 하나 이상의 이웃 정점들에 기초하여 상기 현재 정점의 3차원(3D) 예측을 결정하며 ― 상기 3D 예측은 3D 도메인의 3D 좌표를 포함함 ―,
    상기 현재 정점의 예측 오차를 포함하는 예측 잔차를 인코딩하도록 ― 상기 예측 잔차는 상기 선택된 2D 예측 및 상기 결정된 현재 정점의 3D 예측에 기초하여 획득됨 ―
    구성되는, 메시 처리를 위한 장치.
  12. 제11항에 있어서,
    상기 처리 회로는,
    상기 현재 정점에 대해 상기 복수의 삼각형 중 제1 삼각형을 결정하고 ― 상기 제1 삼각형은 상기 복수의 삼각형 중 제2 삼각형과 에지를 공유하며, 상기 현재 정점은 상기 제2 삼각형에 포함되고 상기 공유된 에지의 반대편에 있음 ―,
    평행사변형 예측을 통해 상기 결정된 제1 삼각형에 기초하여 상기 복수의 후보 예측 중 제1 예측을 결정하도록 ― 상기 평행사변형 예측에서 상기 제1 예측과 상기 제1 삼각형이 제1 평행사변형을 형성함 ―
    구성되는, 메시 처리를 위한 장치.
  13. 제12항에 있어서,
    상기 처리 회로는,
    상기 현재 정점에 대한 예측 리스트를 결정하고 ― 상기 예측 리스트의 예측자는 상기 평균 예측과 상기 예측 리스트에서 상기 평균 예측에 후속하는 복수의 후보 예측을 포함하고, 상기 예측 리스트에서 상기 복수의 후보 예측의 순서는 상기 복수의 후보 예측에 대응하는 상기 복수의 삼각형의 순서에 기초함 ―,
    상기 예측 리스트의 예측자 각각에 대한 예측 인덱스를 결정하도록
    구성되는, 메시 처리를 위한 장치.
  14. 제13항에 있어서,
    상기 복수의 삼각형이 나선형 삼각형 스패닝 트리 순서로 라벨링되는 에지브레이커 알고리즘에 기초하여 상기 복수의 삼각형이 정렬되는,
    메시 처리를 위한 장치.
  15. 제13항에 있어서,
    상기 처리 회로는,
    상기 예측 리스트의 예측자 각각과 상기 현재 정점 사이의 예측 차이를 결정하고,
    상기 선택된 2D 예측이 상기 예측 차이의 최소 예측 차이에 대응하도록 상기 예측 리스트의 예측자로부터 상기 2D 예측을 선택하도록
    구성되는, 메시 처리를 위한 장치.
  16. 제15항에 있어서,
    상기 처리 회로는,
    상기 2D 예측이 상기 예측 리스트의 서브셋의 최소 예측 차이에 대응하도록 상기 예측 리스트의 서브셋에서 상기 2D 예측을 선택하도록
    구성되는, 메시 처리를 위한 장치.
  17. 제15항에 있어서,
    상기 처리 회로는,
    상기 3D 예측이 상기 하나 이상의 이웃 정점들 중 하나의 이웃 정점으로 결정되는 델타 예측에 기초하여 상기 현재 정점의 3D 예측을 결정하는 것; 및
    평행사변형 예측에 기초하여 상기 현재 정점의 3D 예측을 결정하는 것 ― 상기 평행사변형 예측에서 상기 3D 예측과 상기 하나 이상의 이웃 정점들 중 3개의 이웃 정점이 평행사변형을 형성함 ―
    중 하나를 수행하도록 구성되는, 메시 처리를 위한 장치.
  18. 제11항에 있어서,
    상기 처리 회로는,
    상기 2D 예측과 상기 3D 예측 중 하나보다 예측 차이가 작은 상기 2D 예측과 상기 3D 예측 중 다른 하나에 기초하여 상기 현재 정점의 예측값을 결정하고,
    상기 예측값과 상기 현재 정점 사이의 차이를 지시하는 예측 잔차를 인코딩하도록
    구성되는, 메시 처리를 위한 장치.
  19. 제11항에 있어서,
    상기 처리 회로는,
    상기 2D 예측과 상기 3D 예측의 평균에 기초하여 상기 현재 정점의 예측값을 결정하고,
    상기 예측값과 상기 현재 정점 사이의 차이를 지시하는 예측 잔차를 인코딩하도록
    구성되는, 메시 처리를 위한 장치.
  20. 제13항에 있어서,
    상기 처리 회로는,
    상기 예측 리스트에서 상기 선택된 2D 예측의 예측 인덱스를 지시하는 인덱스 정보를 인코딩하고,
    상기 현재 정점의 예측값이 상기 2D 예측, 또는 상기 3D 예측, 또는 상기 2D 예측과 3D 예측의 평균 중 하나에 기초하여 결정됨을 지시하는 플래그를 인코딩하도록
    구성되는, 메시 처리를 위한 장치.
KR1020247017053A 2022-07-12 2023-06-29 메시 압축의 텍스처 좌표 코딩 KR20240093873A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202263388522P 2022-07-12 2022-07-12
US63/388,522 2022-07-12
US18/215,230 2023-06-28
US18/215,230 US20240022764A1 (en) 2022-07-12 2023-06-28 Texture coordinate coding in mesh compression
PCT/US2023/069320 WO2024015692A1 (en) 2022-07-12 2023-06-29 Texture coordinate coding in mesh compression

Publications (1)

Publication Number Publication Date
KR20240093873A true KR20240093873A (ko) 2024-06-24

Family

ID=89509534

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247017053A KR20240093873A (ko) 2022-07-12 2023-06-29 메시 압축의 텍스처 좌표 코딩

Country Status (3)

Country Link
US (1) US20240022764A1 (ko)
KR (1) KR20240093873A (ko)
WO (1) WO2024015692A1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10950042B2 (en) * 2017-06-02 2021-03-16 Google Llc Guided traversal in compression of triangular meshes
KR102423499B1 (ko) * 2020-01-07 2022-07-22 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Also Published As

Publication number Publication date
WO2024015692A1 (en) 2024-01-18
US20240022764A1 (en) 2024-01-18

Similar Documents

Publication Publication Date Title
KR102584867B1 (ko) 포인트 클라우드 코딩을 위한 방법 및 장치
US11582469B2 (en) Method and apparatus for point cloud coding
JP2022514548A (ja) 点群解凍用方法、点群圧縮用方法及び装置
JP2023552116A (ja) メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体
KR20240093873A (ko) 메시 압축의 텍스처 좌표 코딩
US20230377205A1 (en) Vertex position prediction in mesh compression
US20240015324A1 (en) Vertex position coding in mesh compression
JP7497443B2 (ja) 点群コーディングのための方法、装置、およびコンピュータプログラム
US20230388543A1 (en) Temporal prediction based vertex position compression
US20240048763A1 (en) Duplicate vertices based position compression
US20240022708A1 (en) Grouping of mesh vertices in position compression
US20240095965A1 (en) Duplicate vertices merging in mesh compression
RU2799041C1 (ru) Способ и устройство для кодирования облака точек
JP7504298B2 (ja) 3次元(3d)メッシュのuv座標を処理するための方法、装置及びコンピュータプログラム
US20240073433A1 (en) Uv coordinate ranges and texture map size
KR20240100382A (ko) 메시 압축에서의 중복적인 정점 병합
KR20240105416A (ko) Uv 좌표 범위 및 텍스처 맵 크기
KR20240112296A (ko) 인스턴스 기반 메시 코딩을 위한 적응적 양자화
JP2024512915A (ja) 非マニホールドメッシュにおける境界ループの検出のための方法、装置、およびコンピュータプログラム
CN116368526A (zh) 在用于网格压缩的顶点重新排序方法中编码连接性