KR20240108449A - 디코딩된 이웃에 기반한 정점 예측 - Google Patents

디코딩된 이웃에 기반한 정점 예측 Download PDF

Info

Publication number
KR20240108449A
KR20240108449A KR1020247019050A KR20247019050A KR20240108449A KR 20240108449 A KR20240108449 A KR 20240108449A KR 1020247019050 A KR1020247019050 A KR 1020247019050A KR 20247019050 A KR20247019050 A KR 20247019050A KR 20240108449 A KR20240108449 A KR 20240108449A
Authority
KR
South Korea
Prior art keywords
vertices
mesh
layer
clause
polygon
Prior art date
Application number
KR1020247019050A
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 KR20240108449A publication Critical patent/KR20240108449A/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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

Abstract

방법 및 장치는, 프로세서 또는 프로세서들이, 적어도 하나의 3차원(three-dimensional, 3D) 시각적 콘텐츠의 볼륨메트릭 데이터를 획득하고, 볼륨메트릭 데이터의 적어도 하나의 프레임으로부터 복수의 제1 정점을 포함하는 메시의 제1 레이어를 도출하며, 제1 레이어의 복수의 정점 중 일부 정점들로부터 메시의 제2 레이어의 복수의 제2 정점 중 일부 정점들 각각으로의 변위 벡터를 결정하고 - 복수의 제2 정점의 총 수량이 복수의 제1 정점의 총 수량보다 큼 -, 그리고 변위 벡터에 기반하여 볼륨메트릭 데이터를 시그널링하게 하도록 구성된 컴퓨터 코드를 포함한다.

Description

디코딩된 이웃에 기반한 정점 예측
본 출원은 2022년 6월 17일에 출원된 미국 가출원 번호 제63/353,312호 및 2023년 5월 4일에 출원된 미국 출원 번호 제18/312,265호에 대한 우선권을 주장하는 바이며, 이들 출원은 그 전체가 본 출원에 참고로 명시적으로 포함된다.
본 개시는 동적 메시 압축을 위해 도출된 메시 삼각 분할(triangulation)에 기반한 메시 정점 예측을 포함하는 일련의 고급 비디오 코딩 기술에 관한 것이다.
3D 캡처, 모델링 및 렌더링의 발전으로 인해 여러 플랫폼과 디바이스에 걸쳐 3D 콘텐츠가 어디에나 존재하게 되었다. 요즘에는 한 대륙에서 아기의 첫 걸음을 캡처하고 조부모가 다른 대륙에서 아이와 함께 완전한 몰입형 경험을 보고(또는 상호 작용할 수 있도록) 즐기는 것이 가능하다. 그럼에도 불구하고, 이러한 현실감을 달성하기 위해 모델은 점점 더 정교해지고 있으며, 이러한 모델의 생성 및 소비에는 상당한 양의 데이터가 링크되어 있다.
따라서, 이러한 문제에 대한 기술적인 솔루션이 필요하다.
컴퓨터 프로그램 코드를 저장하도록 구성된 메모리 및 컴퓨터 프로그램 코드에 액세스하고 컴퓨터 프로그램 코드에 의해 명령된 대로 작동하도록 구성된 프로세서 또는 프로세서들을 포함하는 방법 및 장치가 포함된다. 컴퓨터 프로그램은 프로세서가, 적어도 하나의 프로세서가 적어도 하나의 3차원(three-dimensional, 3D) 시각적 콘텐츠의 볼륨메트릭(volumetric) 데이터를 획득하게 하도록 구성된 획득(obtaining) 코드, 적어도 하나의 프로세서가 볼륨메트릭 데이터의 적어도 하나의 프레임으로부터 복수의 제1 정점을 포함하는 메시의 제1 레이어를 도출하게 하도록 구성된 획득 코드, 적어도 하나의 프로세서가 제1 레이어의 복수의 정점 중 일부 정점들로부터 메시의 제2 레이어의 복수의 제2 정점 중 일부 정점들 각각으로의 변위 벡터(displacement vector)를 결정하게 하도록 구성된 결정 코드, 및 적어도 하나의 프로세서가 변위 벡터에 기반하여 볼륨메트릭 데이터를 시그널링하게 하도록 구성된 시그널링 코드를 구현하게 하도록 구성된다.
예시적인 실시예에 따르면, 결정 코드는 추가로, 적어도 하나의 프로세서가 메시의 제2 레이어의 복수의 제2 정점으로부터 그리고 메시의 제2 레이어의 복수의 다른 정점들로부터 제2 변위 벡터를 결정하게 하도록 구성되고, 시그널링 코드는 추가로, 적어도 하나의 프로세서가 제2 변위 벡터에 기반하여 볼륨메트릭 데이터를 시그널링하게 하도록 구성된다.
예시적인 실시예에 따르면, 메시의 제1 레이어는 복수의 제1 정점 중 다른 정점들 각각을 상호 연결하는 직선에 의해 정의되는 다각형(polygon)을 포함하고, 복수의 제1 정점 중 일부 정점들은 복수의 제1 정점 중 다른 정점들 각각을 상호 연결하는 직선들에 각각 배열된다.
예시적인 실시예에 따르면, 복수의 제1 정점 중 다른 정점들은 디코딩된 정점이고, 복수의 제1 정점 중 일부 정점들은 보간된 정점이며, 다각형은 메시의 제1 레이어의 경계를 정의한다.
예시적인 실시예에 따르면, 메시의 제2 레이어는 메시의 제2 레이어의 복수의 제2 정점을 메시의 제1 레이어의 복수의 제1 정점 중 다른 정점들과 상호 연결하는 제2 직선에 의해 각각 정의된 복수의 제2 다각형을 포함한다.
예시적인 실시예에 따르면, 복수의 제2 정점 중 적어도 하나는 다각형의 경계 내에 있다.
예시적인 실시예에 따르면, 복수의 제2 정점 각각은 다각형의 경계 내에 있다.
예시적인 실시예에 따르면, 제2 다각형은 각각 전체적으로(entirely) 다각형의 경계 내에 있다.
예시적인 실시예에 따르면, 복수의 제2 정점 중 적어도 하나는 다각형의 경계 외부에 있다.
예시적인 실시예에 따르면, 제2 다각형 중 하나의 적어도 일부는 다각형의 경계 외부에 있다.
개시된 주제의 추가적인 특징, 특성 및 다양한 이점은 다음의 상세한 설명 및 첨부 도면으로부터 더욱 명백해질 것이다:
도 1은 실시예에 따른 다이어그램의 개략적인 예시이다.
도 2는 실시예에 따른 단순화된 블록도이다.
도 3은 실시예에 따른 단순화된 블록도이다.
도 4는 실시예에 따른 단순화된 블록도이다.
도 5는 실시예에 따른 단순화된 다이어그램이다.
도 6은 실시예에 따른 단순화된 다이어그램이다.
도 7은 실시예에 따른 단순화된 다이어그램이다.
도 8은 실시예에 따른 단순화된 다이어그램이다.
도 9a 및 도 9b는 실시예에 따른 단순화된 다이어그램이다.
도 10 및 도 11은 실시예에 따른 단순화된 블록도이다.
도 12는 실시예에 따른 단순화된 블록도이다.
도 13은 실시예에 따른 단순화된 다이어그램이다.
도 14는 실시예에 따른 단순화된 다이어그램이다.
도 15는 실시예에 따른 단순화된 다이어그램이다.
도 16은 실시예에 따른 단순화된 다이어그램이다.
도 17은 실시예에 따른 단순화된 다이어그램이다.
도 18은 실시예에 따른 단순화된 다이어그램이다.
도 19는 실시예에 따른 단순화된 다이어그램이다.
도 20은 실시예에 따른 단순화된 흐름도이다.
도 21은 실시예에 따른 단순화된 흐름도이다.
도 22는 실시예에 따른 단순화된 흐름도이다.
도 23은 실시예에 따른 단순화된 다이어그램이다.
도 24는 실시예에 따른 단순화된 다이어그램이다.
도 25는 실시예에 따른 단순화된 다이어그램이다.
도 26은 실시예에 따른 단순화된 다이어그램이다.
도 27은 실시예에 따른 단순화된 다이어그램이다.
아래에 논의되는 제안된 특징은 개별적으로 사용되거나 임의의 순서로 조합될 수 있다. 또한, 실시예는 처리 회로(예: 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 일 예에서, 하나 이상의 프로세서는 컴퓨터가 판독 가능한 비일시적 매체에 저장된 프로그램을 실행한다.
도 1은 본 개시의 실시예에 따른 통신 시스템(100)의 단순화된 블록도를 예시한다(illustrate). 통신 시스템(100)은 네트워크(105)를 통해 상호 연결된 적어도 두 개의 단말(102, 103)을 포함할 수 있다. 데이터의 단방향 전송을 위해, 제1 단말(103)은 네트워크(105)를 통해 다른 단말(102)로의 전송을 위해 로컬 위치에서 비디오 데이터를 코딩할 수 있다. 제2 단말(102)은 네트워크(105)로부터 다른 단말의 코딩된 비디오 데이터를 수신하고, 코딩된 데이터를 디코딩하여 복원된 비디오 데이터를 디스플레이할 수 있다. 단방향 데이터 전송은 미디어 서비스 애플리케이션 등에서 일반적일 수 있다.
도 1은 예를 들어 화상 회의 중에 발생할 수 있는 코딩된 비디오의 양방향 전송을 지원하기 위해 제공되는 제2 쌍의 단말(101, 104)을 예시한다. 데이터의 양방향 전송을 위해, 각 단말(101, 104)은 네트워크(105)를 통해 다른 단말로의 전송을 위해 로컬 위치에서 캡처된 비디오 데이터를 코딩할 수 있다. 각 단말(101, 104)은 또한 상대방 단말이 전송한 코딩된 비디오 데이터를 수신할 수 있고, 코딩된 데이터를 디코딩할 수 있으며, 복원된 비디오 데이터를 로컬 디스플레이 디바이스에서 디스플레이할 수 있다.
도 1에서, 단말(101, 102, 103, 104)은 서버, 개인용 컴퓨터 및 스마트폰으로 도시될 수 있지만, 본 개시의 원리는 이에 제한되지 않는다. 본 개시의 실시예는 랩톱 컴퓨터, 태블릿 컴퓨터, 미디어 플레이어 및/또는 전용 화상 회의 장비를 이용하는 애플리케이션을 찾는다. 네트워크(105)는 예를 들어 유선 및/또는 무선 통신 네트워크를 포함하여, 단말(101, 102, 103, 104) 사이에 코딩된 비디오 데이터를 전달하는 임의의 수의 네트워크를 나타낸다. 통신 네트워크(105)는 회선 교환 및/또는 패킷 교환 채널에서 데이터를 교환할 수 있다. 대표적인 네트워크에는 통신 네트워크, 근거리 네트워크, 광역 네트워크 및/또는 인터넷이 포함된다. 본 논의의 목적을 위해, 네트워크(105)의 아키텍처 및 토폴로지는 본 명세서에서 아래에 설명되지 않는 한 본 개시의 작동(operation)에 중요하지 않을 수 있다.
도 2는 개시된 주제에 대한 애플리케이션의 예로서 스트리밍 환경에서의 비디오 인코더 및 디코더의 배치를 예시한다. 개시된 주제는 예를 들어 화상 회의, 디지털 TV, 그리고 CD, DVD, 메모리 스틱 등을 포함하는 디지털 미디어에 압축된 비디오 저장 등을 포함하는 다른 비디오 이네이블된(enabled) 애플리케이션에도 동일하게 적용될 수 있다.
스트리밍 시스템은 예를 들어 압축되지 않은 비디오 샘플 스트림(213)을 생성하는 비디오 소스(201), 예를 들어 디지털 카메라를 포함할 수 있는 캡처 서브시스템(203)을 포함할 수 있다. 샘플 스트림(213)은 인코딩된 비디오 비트스트림과 비교할 때 높은 데이터 볼륨(volume)으로 강조될 수 있으며, 예를 들어 위에 논의된 바와 같은 카메라일 수 있는 비디오 소스(202)에 결합된(coupled) 인코더(202)에 의해 처리될 수 있다. 인코더(202)는 아래에서 더 자세히 설명되는 바와 같이 개시된 주제의 측면을 가능하게 하거나 구현하기 위해 하드웨어, 소프트웨어, 또는 이들의 조합을 포함할 수 있다. 샘플 스트림과 비교할 때 더 낮은 데이터 볼륨으로 강조될 수 있는 인코딩된 비디오 비트스트림(204)은 향후 사용을 위해 스트리밍 서버(205)에 저장될 수 있다. 하나 이상의 스트리밍 클라이언트(212, 207)는 스트리밍 서버(205)에 액세스하여 인코딩된 비디오 비트스트림(204)의 복사본(208, 206)을 검색(retrieve)할 수 있다. 클라이언트(212)는, 인코딩된 비디오 비트스트림(208)의 들어오는 복사본을 디코딩하고 디스플레이(209) 또는 다른 렌더링 디바이스(도시되지 않음)에서 렌더링될 수 있는 나가는 비디오 샘플 스트림(210)을 생성하는 비디오 디코더(211)를 포함할 수 있다. 일부 스트리밍 시스템에서, 비디오 비트스트림(204, 206, 208)은 특정 비디오 코딩/압축 표준에 따라 인코딩될 수 있다. 이러한 표준의 예는 위에서 언급되었으며, 여기에서 추가로 설명된다.
도 3은 본 개시의 실시예에 따른 비디오 디코더(300)의 기능 블록도일 수 있다.
수신기(302)는 디코더(300)에 의해 디코딩될 하나 이상의 코덱 비디오 시퀀스를 수신할 수 있고; 동일한 또는 다른 실시예에서, 한번에 하나의 코딩된 비디오 시퀀스가 수신되며, 여기서 각각의 코딩된 비디오 시퀀스의 디코딩은 다른 코딩된 비디오 시퀀스와 독립적이다. 코딩된 비디오 시퀀스는 인코딩된 비디오 데이터를 저장하는 저장 디바이스에 대한 하드웨어/소프트웨어 링크일 수 있는 채널(301)로부터 수신될 수 있다. 수신기(302)는 그들 각각의 사용 엔티티(도시되지 않음)로 포워딩(forward)될 수 있는, 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림과 함께 인코딩된 비디오 데이터를 수신할 수 있다. 수신기(302)는 다른 데이터로부터 코딩된 비디오 시퀀스를 분리할 수 있다. 네트워크 지터에 대처하기 위해, 버퍼 메모리(303)는 수신기(302)와 엔트로피 디코더/파서(304)(이하 "파서") 사이에 결합될 수 있다. 수신기(302)가 충분한 대역폭과 제어 가능성을 갖춘 저장/포워딩 디바이스 또는 등시성(isosychronous) 네트워크로부터 데이터를 수신할 때, 버퍼(303)는 필요하지 않거나 작을 수 있다. 인터넷과 같은 최선형 패킷 네트워크에서 사용하기 위해, 버퍼(303)가 필요할 수 있고 비교적 클 수 있으며 적응형 크기를 갖는 것이 유리할 수 있다.
비디오 디코더(300)는 엔트로피 코딩된 비디오 시퀀스로부터 심볼(313)을 재구성(reconstruct)하기 위한 파서(304)를 포함할 수 있다. 이러한 심볼의 카테고리에는 디코더(300)의 작동을 관리하는 데 사용되는 정보와 잠재적으로, 디코더의 필수 부분은 아니지만 이에 결합될 수 있는 디스플레이(312)와 같은 렌더링 디바이스를 제어하는 정보가 포함된다. 렌더링 디바이스(들)에 대한 제어 정보는 보충 강화 정보(Supplementary Enhancement Information, SEI 메시지) 또는 비디오 사용성 정보(Video Usability Information, VUI) 파라미터 세트 프래그먼트(fragment)(도시되지 않음)의 형태일 수 있다. 파서(304)는 수신된 코딩된 비디오 시퀀스를 파싱/엔트로피 디코딩할 수 있다. 코딩된 비디오 시퀀스의 코딩은 비디오 코딩 기술 또는 표준에 따를 수 있고, 가변 길이 코딩, 허프만 코딩, 콘텍스트 민감도가 있거나 없는 산술 코딩 등을 포함하여, 당업자에게 잘 알려진 원리를 따를 수 있다. 파서(304)는 그룹에 대응하는 적어도 하나의 파라미터에 기반하여 비디오 디코더의 픽셀의 서브 그룹 중 적어도 하나에 대한 서브 그룹 파라미터 세트를 코딩된 비디오 시퀀스로부터 추출할 수 있다. 서브 그룹에는 GOP(Groups of Pictures), 픽처, 타일, 슬라이스, 매크로블록, CU(Coding Unit), 블록, TU(Transform Unit), PU(Prediction Unit) 등이 포함될 수 있다. 엔트로피 디코더/파서는 변환 계수, 양자화기 파라미터 값, 모션 벡터 등과 같은 코딩된 비디오 시퀀스 정보를 추출할 수도 있다.
파서(304)는 버퍼(303)로부터 수신된 비디오 시퀀스에 대해 엔트로피 디코딩/파싱 작동을 수행하여 심볼(313)을 생성할 수 있다. 파서(304)는 인코딩된 데이터를 수신하고 특정 심볼(313)을 선택적으로 디코딩할 수 있다. 또한, 파서(304)는 특정 심볼(313)이 모션 보상 예측 유닛(306), 스케일러/역변환 유닛(305), 인트라 예측 유닛(307) 또는 루프 필터(311)에 제공되어야 하는지를 판정할 수 있다.
심볼(313)의 재구성은 코딩된 비디오 픽처 또는 그 부분의 유형(예: 인터 및 인트라 픽처, 인터 및 인트라 블록) 및 기타 팩터(factor)에 따라 다수의(multiple) 서로 다른 유닛을 포함할 수 있다. 어떤 유닛이 관련되고 어떻게 제어되는지는, 파서(304)에 의해 코딩된 비디오 시퀀스로부터 파싱된 서브 그룹 제어 정보에 의해 제어될 수 있다. 아래의 다수의 유닛과 파서(304) 사이의 이러한 서브그룹 제어 정보의 흐름(flow)은 명확성을 위해 도시되지 않는다.
이미 언급된 기능 블록 외에, 디코더(300)는 개념적으로 아래에 설명되는 바와 같이 여러 기능 유닛으로 세분화될 수 있다. 상업적 제약 하에 작동되는 실제 구현에서, 이러한 유닛 중 다수는 서로 긴밀하게 상호 작용하며 적어도 부분적으로 서로 통합될 수 있다. 그러나 개시된 주제를 설명하기 위해서는 이하의 기능 유닛으로 개념적으로 세분화하는 것이 적절하다.
제1 유닛은 스케일러/역변환 유닛(305)이다. 스케일러/역변환 유닛(305)은 양자화된 변환 계수뿐만 아니라, 어떤 변환을 사용할 것인지, 블록 크기, 양자화 팩터, 양자화 스케일링 행렬 등을 포함한 제어 정보를, 파서(304)로부터 심볼(들)(313)로서 수신한다. 이는 집성기(aggregator)(310)에 입력될 수 있는, 샘플 값을 포함하는 블록을 출력할 수 있다.
일부 경우에, 스케일러/역변환(305)의 출력 샘플은 인트라 코딩된 블록에 속할(pertain) 수 있으며; 즉, 이전에 재구성된 픽처의 예측 정보를 사용하지 않지만 현재 픽처의 이전에 재구성된 부분의 예측 정보를 사용할 수 있는 블록이다. 이러한 예측 정보는 인트라 픽처 예측 유닛(307)에 의해 제공될 수 있다. 일부 경우에, 인트라 픽처 예측 유닛(307)은 현재(부분적으로 재구성된) 픽처(309)로부터 페치(fetch)된 주변의 이미 재구성된 정보를 이용하여, 재구성 중인 블록과 동일한 크기 및 모양의 블록을 생성한다. 일부 경우에, 집성기(310)는 인트라 예측 유닛(307)이 생성한 예측 정보를 샘플 단위로, 스케일러/역변환 유닛(305)에 의해 제공되는 출력 샘플 정보에 추가한다.
다른 경우에, 스케일러/역변환 유닛(305)의 출력 샘플은 인터 코딩된 그리고 잠재적으로 모션 보상된 블록에 속할 수 있다. 이러한 경우, 모션 보상 예측 유닛(306)은 참조 픽처 메모리(308)에 액세스하여 예측에 사용되는 샘플을 페치할 수 있다. 블록에 속하는 심볼(313)에 따라 페치된 샘플을 모션 보상한 후, 이러한 샘플은 집성기(310)에 의해 스케일러/역변환 유닛의 출력(이 경우 잔차 샘플 또는 잔차 신호라고 함)에 추가되어, 출력 샘플 정보를 생성한다. 모션 보상 유닛이 예측 샘플을 페치하는 참조 픽처 메모리 형태 내의 주소는 예를 들어 X, Y 및 참조 픽처 컴포넌트를 가질 수 있는 심볼(313)의 형태로 모션 보상 유닛에 이용 가능한 모션 벡터에 의해 제어될 수 있다. 모션 보상은 또한 서브 샘플의 정확한(sub-sample exact) 모션 벡터가 사용될 때 참조 픽처 메모리로부터 페치된 샘플 값의 보간, 모션 벡터 예측 메커니즘 등을 포함할 수 있다.
집성기(310)의 출력 샘플은 루프 필터 유닛(311)에서 다양한 루프 필터링 기술을 적용받을 수 있다. 비디오 압축 기술은 코딩된 비디오 비트스트림에 포함된 파라미터에 의해 제어되고 파서(304)로부터 심볼(313)로서 루프 필터 유닛(311)에 이용 가능하게 되는 인-루프(in-loop) 필터 기술을 포함할 수 있지만, 코딩된 픽처 또는 코딩된 비디오 시퀀스의 이전(디코딩 순서에서) 부분을 디코딩하는 동안 획득된 메타 정보에 응답할 수도 있으며, 이전에 재구성되고 루프 필터링된 샘플 값에도 응답할 수 있다.
루프 필터 유닛(311)의 출력은 렌더 디바이스(312)로 출력될 수 있을 뿐만 아니라 향후 인터 픽처 예측에 사용하기 위해 참조 픽처 메모리(557)에 저장될 수 있는 샘플 스트림일 수 있다.
완전히(fully) 재구성되면 특정 코딩된 픽처는 향후 예측을 위한 참조 픽처로 사용될 수 있다. 코딩된 픽처가 완전히 재구성되고 코딩된 픽처가 (예를 들어 파서(304)에 의해) 참조 픽처로 식별되면, 현재 참조 픽처(309)는 참조 픽처 버퍼(308)의 일부가 될 수 있고, 신규 픽처 메모리는 다음 코딩된 픽처의 재구성을 시작하기 전에 재할당되어야 한다.
비디오 디코더(300)는 ITU-T Rec.H.265와 같은 표준에 문서화될 수 있는 미리 정해진 비디오 압축 기술에 따라 디코딩 작동을 수행할 수 있다. 코딩된 비디오 시퀀스가, 비디오 압축 기술 문서 또는 표준에 그리고 특히 그의 프로필에 명시된(specify) 바와 같이, 비디오 압축 기술 또는 표준의 신택스를 준수한다는 의미에서, 사용 중인 비디오 압축 기술 또는 표준에 의해 명시된 신택스를 따를 수 있다. 또한 규정 준수를 위해 필요한 것은 코딩된 비디오 시퀀스의 복잡성이 비디오 압축 기술 또는 표준의 레벨에 의해 정의된 범위 내에 있다는 것이다. 일부 경우에는 레벨이 최대 픽처 크기, 최대 프레임 레이트, 최대 재구성 샘플 레이트(예를 들어, 초당 메가샘플 단위로 측정), 최대 참조 픽처 크기 등을 제한한다. 레벨에 의해 설정된 제한은 일부 경우에, 코딩된 비디오 시퀀스에서 시그널링되는 HRD(Hypothetical Reference Decoder) 사양 및 HRD 버퍼 관리를 위한 메타데이터를 통해 추가로 제한될 수 있다.
일 실시예에서, 수신기(302)는 인코딩된 비디오와 함께 추가(중복) 데이터를 수신할 수 있다. 추가 데이터는 코딩된 비디오 시퀀스(들)의 일부로 포함될 수 있다. 추가 데이터는 데이터를 적절히 디코딩하기 위해 및/또는 원래의 비디오 데이터를 더 정확하게 재구성하기 위해 비디오 디코더(300)에 의해 사용될 수 있다. 추가 데이터는 예를 들어 시간적, 공간적 또는 신호 잡음비(signal noise ratio, SNR) 향상 레이어, 중복 슬라이스, 중복 픽처, 순방향 에러 정정 코드 등의 형태일 수 있다.
도 4는 본 개시의 실시예에 따른 비디오 인코더(400)의 기능 블록도일 수 있다.
인코더(400)는 인코더(400)에 의해 코딩될 비디오 이미지(들)를 캡처할 수 있는 비디오 소스(401)(인코더의 일부가 아님)로부터 비디오 샘플을 수신할 수 있다.
비디오 소스(401)는 임의의 적절한 비트 심도(bit depth)(예를 들어, 8비트, 10비트, 12비트, …), 임의의 색상 공간(예를 들어, BT.601 YCrCB, RGB,…) 및 임의의 적절한 샘플링 구조(예를 들어, YCrCb 4:2:0, YCrCb 4:4:4)일 수 있는 디지털 비디오 샘플 스트림의 형태로, 인코더(303)에 의해 코딩될 소스 비디오 시퀀스를 제공할 수 있다. 미디어 서비스 시스템에서, 비디오 소스(401)는 미리 준비된 비디오를 저장하는 저장 디바이스일 수 있다. 화상 회의 시스템에서, 비디오 소스(401)는 로컬 이미지 정보를 비디오 시퀀스로 캡처하는 카메라일 수 있다. 비디오 데이터는 순서대로 볼 때 모션을 부여하는 복수의 개별 픽처로서 제공될 수 있다. 픽처 자체는 픽셀의 공간 어레이로 구성될 수 있으며, 여기서 각 픽셀은 사용 중인 샘플링 구조, 색 공간 등에 따라 하나 이상의 샘플을 포함할 수 있다. 당업자는 픽셀과 샘플 사이의 관계를 쉽게 이해할 수 있다. 아래 설명은 샘플에 중점을 둔다.
일 실시예에 따르면, 인코더(400)는 소스 비디오 시퀀스의 픽처를 실시간으로 또는 애플리케이션에 의해 요구되는 임의의 다른 시간 제약 하에서, 코딩된 비디오 시퀀스(410)로 코딩하고 압축할 수 있다. 적절한 코딩 속도를 적용하는 것은 컨트롤러(402)의 기능 중 하나이다. 컨트롤러는 아래 설명된 바와 같이 다른 기능 유닛을 제어하고 이들 유닛에 기능적으로 결합된다. 결합(coupling)은 명확성을 위해 표시되지 않는다. 컨트롤러에 의해 설정되는 파라미터는 레이트 제어 관련 파라미터(픽처 스킵(skip), 양자화기, 레이트-왜곡 최적화 기술의 람다(lambda) 값, …), 픽처 크기, GOP(group of picture) 레이아웃, 최대 모션 벡터 검색 범위 등을 포함할 수 있다. 당업자는 특정 시스템 설계에 최적화된 비디오 인코더(400)에 속할 수 있는 컨트롤러(402)의 다른 기능을 쉽게 식별할 수 있다.
일부 비디오 인코더는 당업자가 "코딩 루프"로 쉽게 인식하는 방식으로 작동한다. 지나치게 단순화된 설명으로서, 코딩 루프는 인코더(400)의 인코딩 부분(이하 "소스 코더")(코딩될 입력 픽처 및 참조 픽처(들)을 기반으로 심볼을 생성하는 역할을 함)과, (원격) 디코더도 생성할 샘플 데이터를 생성하기 위해 심볼을 재구성하는 인코더(400)에 내장된 (로컬) 디코더(406)(심볼과 코딩된 비디오 비트스트림 사이의 임의의 압축은 개시된 주제에서 고려되는 비디오 압축 기술에서 무손실이기 때문)로 구성될 수 있다. 그 재구성된 샘플 스트림은 참조 픽처 메모리(405)에 입력된다. 심볼 스트림을 디코딩하면 디코더 위치(로컬 또는 원격)에 관계없이 정확한 비트 결과를 가져오므로, 참조 픽처 메모리 콘텐츠도 로컬 인코더와 원격 인코더 사이에서 비트 정확하다(bit-exact). 달리 말하면, 인코더의 예측 부분은 디코딩 중에 예측을 사용할 때 디코더가 "보는(see)" 것과 정확히 동일한 샘플 값을 참조 픽처 샘플로 "보는" 것이다. 이 참조 픽처 동시성(synchronicity)의 기본 원리(예를 들어 채널 에러로 인해 동기화가 유지될 수 없으면 드리프트(drift)가 발생)의 기본 원리는 당업자에게 잘 알려져 있다.
"로컬" 디코더(406)의 작동은 "원격" 디코더(300)의 작동과 동일할 수 있으며, 이는 이미 도 3과 관련하여 위에서 상세히 설명되었다. 또한 도 4를 간략하게 참조하면, 심볼이 이용 가능하고, 엔트로피 코더(408) 및 파서(304)에 의해 코딩된 비디오 시퀀스에 대한 심볼의 인코딩/디코딩이 무손실일 수 있으므로, 채널(301), 수신기(302), 버퍼(303) 및 파서(304)를 포함하는, 디코더(300)의 엔트로피 디코딩 부분은 로컬 디코더(406)에서 완전히 구현되지 않을 수 있다.
이 시점에서 관찰할 수 있는 점은 디코더에 존재하는 파싱/엔트로피 디코딩을 제외한 임의의 디코더 기술이, 대응하는 인코더에서 실질적으로 동일한 기능 형태로 반드시 존재할 필요가 있다는 것이다. 인코더 기술에 대한 설명은 포괄적으로 설명된 디코더 기술의 반대이므로 간략하게 설명할 수 있다. 특정 영역에서만 더 자세한 설명이 필요하며 아래에서 제공된다.
그 작동의 일부로서, 소스 코더(403)는 "참조 프레임"으로 지정된(designated), 비디오 시퀀스로부터의 하나 이상의 이전에 코딩된 프레임을 참조하여 입력 프레임을 예측적으로 코딩하는 모션 보상 예측 코딩을 수행할 수 있다. 이러한 방식으로, 코딩 엔진(407)은 입력 프레임의 픽셀 블록과 입력 프레임에 대한 예측 참조(들)로서 선택될 수 있는 참조 프레임(들)의 픽셀 블록 간의 차이를 코딩한다.
로컬 비디오 디코더(406)는 소스 코더(403)에 의해 생성된 심볼에 기반하여, 참조 프레임으로 지정될 수 있는 프레임의 코딩된 비디오 데이터를 디코딩할 수 있다. 코딩 엔진(407)의 작동은 손실이 많은 프로세스인 것이 유리할 수 있다. 코딩된 비디오 데이터가 비디오 디코더(도 4에는 도시되지 않음)에서 디코딩될 수 있을 때, 재구성된 비디오 시퀀스는 일반적으로 약간의 에러가 있는 소스 비디오 시퀀스의 복제일 수 있다. 로컬 비디오 디코더(406)는 참조 프레임에 대해 비디오 디코더에 의해 수행될 수 있는 디코딩 프로세스를 복제하고 재구성된 참조 프레임이, 예를 들어 캐시일 수 있는 참조 픽처 메모리(405)에 저장되게 할 수 있다. 이러한 방식으로, 인코더(400)는 (전송 에러 없이) 원단(far-end) 비디오 디코더에 의해 획득될 재구성된 참조 프레임으로서 공통 콘텐츠를 갖는 재구성된 참조 프레임의 복사본을 로컬로 저장할 수 있다.
예측기(predictor)(404)는 코딩 엔진(407)에 대한 예측 검색(prediction search)을 수행할 수 있다. 즉, 코딩될 신규 프레임에 대해, 예측기(404)는 참조 픽처 메모리(405)에서 신규 픽처에 대한 적절한 예측 참조 역할을 할 수 있는 샘플 데이터(후보 참조 픽셀 블록으로서) 또는 참조 픽처 모션 벡터, 블록 모양 등과 같은 특정 메타데이터를 검색할 수 있다. 예측기(404)는 적절한 예측 참조를 찾기 위해 샘플 블록 단위로 픽셀 블록(sample block-by-pixel block basis)에 작동할 수 있다. 일부 경우에, 예측기(404)에 의해 획득된 검색 결과에 의해 결정된 바와 같이, 입력 픽처는 참조 픽처 메모리(405)에 저장된 다수의 참조 픽처로부터 추출된 예측 참조를 가질 수 있다.
컨트롤러(402)는 예를 들어 비디오 데이터를 인코딩하는데 사용되는 파라미터 및 서브그룹 파라미터의 설정을 포함하여, 예를 들어 비디오 코더일 수 있는 소스 코더(403)의 코딩 작동을 관리할 수 있다.
전술한 모든 기능 유닛의 출력은 엔트로피 코더(408)에서 엔트로피 코딩될 수 있다. 엔트로피 코더는 예를 들어, 허프만 코딩, 가변 길이 코딩, 산술 코딩 등과 같은 당업자에 알려진 기술에 따라 심볼을 무손실 압축하는 것에 의해, 다양한 기능 유닛에 의해 생성된 심볼을 코딩된 비디오 시퀀스로 변환한다.
송신기(409)는 인코딩된 비디오 데이터를 저장할 저장 디바이스에 대한 하드웨어/소프트웨어 링크일 수 있는 통신 채널(411)을 통한 전송을 준비하기 위해, 엔트로피 코더(408)에 의해 생성된 코딩된 비디오 시퀀스(들)를 버퍼링할 수 있다. 송신기(409)는 소스 코더(403)로부터의 코딩된 비디오 데이터를 전송될 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림(소스는 도시되지 않음)과 병합할 수 있다.
컨트롤러(402)는 인코더(400)의 작동을 관리할 수 있다. 코딩 동안, 컨트롤러(402)는 개개의 픽처에 적용될 수 있는 코딩 기술에 영향을 미칠 수 있는 특정 코딩된 픽처 유형을 각각의 코딩된 픽처에 할당할 수 있다. 예를 들어, 픽처는 종종 다음 프레임 유형 중 하나로 할당될 수 있다:
인트라 픽처(Intra Picture)(I 픽처)는 시퀀스의 임의의 다른 프레임을 예측 소스로서 사용하지 않고 코딩 및 디코딩될 수 있는 픽처일 수 있다. 일부 비디오 코덱은 예를 들어 독립 디코더 리프레시(Independent Decoder Refresh) 픽처를 포함하는, 서로 다른 유형의 인트라 픽처를 허용한다. 당업자는 I 픽처의 이러한 변형과 이들 개개의 애플리케이션 및 특징을 알고 있다.
예측 픽처(predictive picture)(P 픽처)는 최대 하나의 모션 벡터 및 참조 인덱스를 사용하여 각 블록의 샘플 값을 예측하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 픽처일 수 있다.
양방향 예측 픽처(bi-directionally predictive picture)(B 픽처)는 최대 2개의 모션 벡터 및 참조 인덱스를 사용하여 각 블록의 샘플 값을 예측하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 픽처일 수 있다. 유사하게, 다수의 예측 픽처는 단일 블록을 재구성하기 위해 2개 이상의 참조 픽처와 연관된 메타데이터를 사용할 수 있다.
소스 픽처는 일반적으로 복수의 샘플 블록(예를 들어, 각각 4×4, 8×8, 4×8 또는 16×16 샘플의 블록)으로 공간적으로 세분되고 블록별로 코딩될 수 있다. 블록은 블록의 개개의 픽처에 적용된 코딩 할당에 의해 결정된 바와 같이 다른(이미 코딩된) 블록을 참조하여 예측적으로 코딩될 수 있다. 예를 들어, I 픽처의 블록은 비예측적으로 코딩될 수도 있고, 동일한 픽처의 이미 코딩된 블록을 참조하여 예측적으로 코딩될 수도 있다(공간 예측 또는 인트라 예측). P 픽처의 픽셀 블록은 이전에 코딩된 하나의 참조 픽처를 참조하여 공간적 예측을 통해 또는 시간적 예측을 통해 비예측적으로 코딩될 수 있다. B 픽처의 블록은 이전에 코딩된 하나 또는 2개의 참조 픽처를 참조하여 공간적 예측을 통해 또는 시간적 예측을 통해 비예측적으로 코딩될 수 있다.
예를 들어 비디오 코더일 수 있는 인코더(400)는 ITU-T Rec. H.265와 같은 표준 또는 미리 정해진 비디오 코딩 기술에 따라 코딩 작동을 수행할 수 있다. 그 작동에서, 비디오 코더(400)는 입력 비디오 시퀀스에서 시간적 및 공간적 중복성을 활용하는 예측 코딩 작동을 포함하여 다양한 압축 작동을 수행할 수 있다. 따라서 코딩된 비디오 데이터는 사용되는 비디오 코딩 기술 또는 표준에 의해 명시된 신택스를 따를 수 있다.
일 실시예에서, 송신기(409)는 인코딩된 비디오와 함께 추가 데이터를 전송할 수 있다. 소스 코더(403)는 코딩된 비디오 시퀀스의 일부로서 이러한 데이터를 포함할 수 있다. 추가 데이터는 시간적/공간적/SNR 향상 레이어, 중복된 픽처 및 슬라이스와 같은 다른 형태의 중복 데이터, 보충 강화 정보(Supplementary Enhancement Information, SEI 메시지) 또는 비디오 사용성 정보(Video Usability Information, VUI) 파라미터 세트 프래그먼트 등을 포함할 수 있다.
도 5는 HEVC와 JEM에서 사용되는 인트라 예측 모드를 예시한다. 자연스러운 비디오에 나타나는 임의의 에지 방향(edge direction)을 캡처하기 위해, 지향성 인트라 모드(directional intra mode)의 수가 HEVC에서 사용되는 33개에서 65개로 확장된다. HEVC 위의 JEM의 추가 방향 모드는 도 5의 (b)에서 점선 화살표로 표시되며, 평면 모드와 DC 모드는 동일하게 유지된다. 이러한 밀도가 높은 지향성 인트라 예측 모드는 모든 블록 크기와 루마 및 크로마 인트라 예측 모두에 적용된다. 도 5에 도시된 바와 같이, 홀수 인트라 예측 모드 인덱스와 연관된, 점선 화살표로 식별되는 지향성 인트라 예측 모드를 홀수 인트라 예측 모드라고 한다. 짝수 인트라 예측 모드 인덱스와 연관된 실선 화살표로 식별되는 지향성 인트라 예측 모드를 짝수 인트라 예측 모드라고 한다. 이 문서에서는 도 5의 실선 또는 점선 화살표로 지시된 바와 같은, 지향성 인트라 예측 모드를 각도 모드(angular mode)라고도 한다.
JEM에서는 루마 인트라 예측을 위해 총 67개의 인트라 예측 모드가 사용된다. 인트라 모드를 코딩하기 위해, 이웃 블록의 인트라 모드를 기반으로 크기 6의 MPM(most probable mode) 리스트가 구축된다. 인트라 모드가 MPM 리스트에 없으면, 인트라 모드가 선택한 모드에 속하는지를 지시하기(indicate) 위해 플래그가 시그널링된다. JEM-3.0에는 16개의 선택된 모드가 있으며, 이는 매 4번째 각도 모드로 균일하게 선택된다. JVET-D0114 및 JVET-G0060에서는 균일하게 선택된 모드를 대체하기 위해 16개의 보조(secondary) MPM이 도출된다.
도 6은 인트라 지향성 모드에 활용되는 N개의 참조 티어(tier)를 예시한다. 블록 유닛(611), 세그먼트 A(601), 세그먼트 B(602), 세그먼트 C(603), 세그먼트 D(604), 세그먼트 E(605), 세그먼트 F(606), 제1 참조 티어(610), 제2 참조 티어(609), 제3 참조 티어(608) 및 제4 참조 티어(607)가 있다.
HEVC와 JEM은 물론 H.264/AVC와 같은 일부 다른 표준에서, 현재 블록을 예측하는 데 사용되는 참조 샘플은 가장 가까운 참조 라인(행 또는 열)으로 제한된다. 다수의 참조 라인 인트라 예측 방법에서, 후보 참조 라인(행 또는 열)의 수는 인트라 지향성 모드에 대해 1(즉, 가장 가까운 것)에서 N으로 증가되며, N은 1보다 크거나 같은 정수이다. 도 2는 다수의 라인 인트라 지향성 예측 방법의 개념을 보여주기 위해 4×4 예측 유닛(prediction unit, PU)을 예로 들어 설명한다. 인트라 지향성 모드는 N개의 참조 티어 중 하나를 임의로 선택하여 예측자(predictor)를 생성할 수 있다. 달리 말하면, 예측자 p(x,y)는 참조 샘플 S1, S2, … 및 SN 중 하나로부터 생성된다. 인트라 지향성 모드에 대해 어떤 참조 티어가 선택되었는지를 지시하기 위해 플래그가 시그널링된다. N을 1로 설정하면, 인트라 지향성 예측 방법은 JEM 2.0의 기존 방법과 동일하다. 도 6에서, 참조 라인(610, 609, 608, 607)은 좌측 상단 참조 샘플과 함께 6개의 세그먼트(601, 602, 603, 604, 605, 606)로 구성된다. 이 문서에서는 참조 티어를 참조 라인이라고도 한다. 현재 블록 유닛 내 좌측 상단 픽셀의 좌표는 (0,0)이고, 첫 번째 참조 라인의 좌측 상단 픽셀은 (-1, -1)이다.
JEM에서는 루마 컴포넌트의 경우, 인트라 예측 샘플 생성에 사용되는 이웃 샘플을 생성 프로세스 전에 필터링한다. 필터링은 주어진 인트라 예측 모드와 변환 블록 크기에 의해 제어된다. 인트라 예측 모드가 DC이거나 변환 블록 크기가 4×4이면, 이웃 샘플은 필터링되지 않는다. 주어진 인트라 예측 모드와 수직 모드(또는 수평 모드) 사이의 거리가 미리 정의된 임계값보다 크면, 필터링 프로세스가 이네이블된다. 이웃 샘플 필터링의 경우, [1, 2, 1] 필터와 이중 선형 필터가 사용된다.
포지션 종속 인트라 예측 조합(position dependent intra prediction combination, PDPC) 방법은 필터링된 경계 참조 샘플을 갖는 HEVC 스타일 인트라 예측과 필터링되지 않은 경계 참조 샘플의 조합을 호출하는 인트라 예측 방법이다. (x, y)에 위치된(located) 각 예측 샘플 pred[x][y]는 다음과 같이 계산된다:
여기서 Rx,-1,R-1,y는 각각 현재 샘플(x, y)의 상단과 좌측에 위치된 필터링되지 않은 참조 샘플을 나타내고, R-1,-1은 현재 블록의 좌측 상단 코너에 위치된 필터링되지 않은 참조 샘플을 나타낸다. 가중치는 아래와 같이 계산된다.
도 7은 (0, 0) 및 (1, 0)에 대한 DC 모드 PDPC 가중치(wL, wT, wTL)가 하나의 4×4 블록 내부에 포지셔닝되는 다이어그램(700)을 예시한다. PDPC가 DC, 평면(planar), 수평, 수직 인트라 모드에 적용되면, HEVC DC 모드 경계 필터나 수평/수직 모드 에지 필터와 같은 추가적인 경계 필터가 필요하지 않다. 도 7은 우측 상단 대각선 모드에 적용된 PDPC에 대한 참조 샘플 Rx,-1, R-1,y 및 R-1,-1의 정의를 예시한다. 예측 샘플 pred(x', y')는 예측 블록 내 (x', y')에 위치된다. 참조 샘플 Rx,-1의 x 좌표는 x = x' + y' + 1로 주어지며, 참조 샘플 R-1,y의 좌표 y는 유사하게 y = x' + y' + 1로 주어진다.
도 8은 LIC(Local Illumination Compensation) 다이어그램(800)을 예시하며 스케일링 팩터 a와 오프셋 b를 사용하여 조명(illumination) 변화에 대한 선형 모델을 기반으로 한다. 그리고 각 인터 모드 코딩된 코딩 유닛(coding unit, CU)에 대해 적응적으로 이네이블 또는 디세이블된다.
LIC가 CU에 적용될 때, 현재 CU의 이웃 샘플과 대응하는 참조 샘플을 사용하여 파라미터 a와 b를 도출하기 위해 최소 자승 에러 방법이 사용된다. 보다 구체적으로, 도 8에 예시된 바와 같이, CU의 서브샘플링된(2:1 서브샘플링) 이웃 샘플과 참조 픽처 내 대응하는 샘플(현재 CU 또는 서브 CU의 모션 정보로 식별됨)이 사용된다. IC 파라미터는 각 예측 방향에 대해 별도로 도출되고 적용된다.
CU가 병합 모드로 코딩될 때, LIC 플래그는 병합 모드의 모션 정보 복사와 유사한 방식으로 이웃 블록으로부터 복사되며; 그렇지 않으면 LIC가 적용되는지의 여부를 지시하기 위해 CU에 대해 LIC 플래그가 시그널링된다.
도 9a는 HEVC에서 사용되는 인트라 예측 모드(900)를 예시한다. HEVC에는 총 35개의 인트라 예측 모드가 있으며, 그 중 모드 10은 수평 모드이고, 모드 26은 수직 모드이며, 모드 2, 모드 18, 모드 34는 대각선 모드이다. 인트라 예측 모드는 3개의 MPM(most probable mode)과 32개의 나머지 모드에 의해 시그널링된다.
도 9b는 VVC의 실시예에서 모드 18이 수평 모드이고, 모드 50이 수직 모드이며, 모드 2, 모드 34, 모드 66이 대각선 모드인 총 87개의 인트라 예측 모드가 있음을 예시한다. 모드 -1 ~ -10 및 모드 67 ~ 76을 WAIP(Wide-Angle Intra Prediction) 모드라고 한다.
포지션 (x, y)에 위치된 예측 샘플 pred(x,y)는 PDPC 표현에 따라 인트라 예측 모드(DC, 평면, 각도)와 참조 샘플의 선형 조합을 사용하여 예측된다:
여기서 Rx,-1, R-1,y는 각각 현재 샘플(x, y)의 상단과 좌측에 위치된 참조 샘플을 나타내고, R-1,-1은 현재 블록의 좌측 상단 코너에 위치된 참조 샘플을 나타낸다.
DC 모드의 경우, 너비와 높이 차원(dimension)을 갖는 블록에 대해 가중치는 다음과 같이 계산된다:
여기서, wT는 수평 좌표가 동일한, 위 참조 라인에 위치된 기준 샘플에 대한 가중치 팩터를 표시하며, wL은 수직 좌표가 동일한, 좌측 참조 라인에 위치된 참조 샘플에 대한 가중치 팩터를 표시하고, wTL은 현재 블록의 좌측 상단 참조 샘플에 대한 가중치 팩터를 표시하며, nScale은 가중치 팩터가 축을 따라 얼마나 빨리 감소하는지(wL은 좌측에서 우측으로 감소하거나 wT가 위에서 아래로 감소함), 즉 가중치 팩터 감소율(decrement rate)을 명시하며, 현재 설계의 x축(좌측에서 우측으로) 및 y축(위에서 아래로)을 따라 동일하다. 그리고 32는 이웃 샘플에 대한 초기 가중치 팩터를 표시하며, 초기 가중치 팩터도 현재 CB의 좌측 상단 샘플에 할당된 상단(좌측 또는 좌측 상단) 가중치이며, PDPC 프로세스에서 이웃 샘플의 가중치 팩터는 초기 가중치 팩터보다 작거나 같아야 한다.
평면 모드의 경우 wTL = 0이고, 수평 모드의 경우 wTL = wT이며, 수직 모드의 경우 wTL = wL이다. PDPC 가중치는 추가 및 시프트(shift)로만 계산될 수 있다. pred(x,y)의 값은 수식 1을 사용하여 단일 단계로 계산될 수 있다.
도 10은 OMAF(Omnidirectional Media Application Format)에 설명된 360도 가상 현실(VR360) 스트리밍을 허용할 수 있는 OMAF에서의 예시적인 뷰 포트 종속 처리(view-port dependent processing)의 단순화된 블록 스타일 작업 흐름도(workflow diagram)(1000)를 예시한다.
취득(acquisition) 블록(1001)에서, 이미지 데이터가 VR360의 장면(scene)을 나타낼 수 있는 경우에 동일한 시간 인스턴스(time instance)의 다수의 이미지 및 오디오의 데이터와 같은 비디오 데이터 A가 취득된다. 처리 블록(1003)에서, 동일한 시간 인스턴스의 이미지 Bi는 스티칭(stitch)되는 것, 하나 이상의 가상 현실(virtual reality, VR) 각도 또는 다른 각도/뷰포인트(viewpoint)(들)를 기준으로, 투영된 픽처로 매핑되는 것 그리고 영역별 패키징(region-wise packed)되는 것 중 하나 이상에 의해 처리된다. 추가적으로, 이러한 처리된 정보 및 기타 정보 중 어느 하나를 지시하는 메타데이터가 생성되어, 전달 및 렌더링 프로세스(delivering and rendering process)에서 도움이 될 수 있다.
데이터 D에 관련하여, 이미지 인코딩 블록(1005)에서, 투영된 픽처는 데이터 Ei로 인코딩되어 미디어 파일로 구성되고, 뷰포트 독립적인 스트리밍(viewport-independent streaming)에서 그리고 비디오 인코딩 블록(1004)에서, 비디오 픽처는 예를 들어 단일 레이어 비트스트림인 데이터 Ev로 인코딩되며, 데이터 Ba와 관련하여 오디오 데이터는 오디오 인코딩 블록(1002)에서 데이터 Ea로 인코딩될 수도 있다.
데이터 Ea, Ev 및 Ei, 전체 코딩된 비트스트림 Fi 및/또는 F는 (콘텐츠 전달 네트워크(content delivery network, CDN)/클라우드) 서버에 저장될 수 있으며, 일반적으로 전달(delivery) 블록(1007) 등에서 완전히 전송될 수 있고, 그렇지 않으면, OMAF 플레이어(1020)에 전송될 수 있으며, 그리고 디코더에 의해 완전히 디코딩됨으로써, 현재 뷰포트에 대응하는 디코딩된 픽처의 적어도 영역(area)이, 다양한 메타데이터, 파일 재생, 그리고 사용자가 해당 디바이스의 뷰포트 사양과 관련하여 VR 이미지 디바이스를 통해 보고 있을 수 있는 각도와 같은, 머리/눈 추적 블록(1008)으로부터의 배향(orientation)/뷰포트 메타데이터와 관련하여 디스플레이 블록(1016)에서 사용자에게 렌더링된다. VR360의 독특한 특징은, 임의의 특정 시간에 뷰포트만 디스플레이될 수 있다는 점이며, 이러한 특징은 사용자의 뷰포트(또는 권장된 뷰포트 시간이 정해진 메타데이터와 같은 다른 기준)에 의존하는 선택적 전달을 통해 전방향(omnidirectional) 비디오 시스템의 성능을 향상시키는 데 활용될 수 있다. 예를 들어, 예시적인 실시예에 따라 타일 기반 비디오 코딩에 의해 뷰포트 종속 전달이 가능할 수 있다.
위에서 설명된 인코딩 블록과 같이, 예시적인 실시예에 따른 OMAF 플레이어(1020)는 메타데이터와 데이터 F' 및/또는 F'i 중 하나 이상의 파일/세그먼트 디캡슐화(decapsulation)와 관련하여 이러한 인코딩의 하나 이상의 패싯(facet)을 유사하게 반전시키고, 오디오 디코딩 블록(1010)에서 오디오 데이터 E'i, 비디오 디코딩 블록(1013)에서 비디오 데이터 E'v, 그리고 이미지 디코딩 블록(1014)에서의 이미지 데이터 E'i를 디코딩하여, 오디오 렌더링 블록(1011)에서의 데이터 B'a의 오디오 렌더링 및 이미지 렌더링 블록(1015)에서의 데이터 D'의 이미지 렌더링을 진행하여, 디스플레이 블록(1016)에서 디스플레이 데이터 A'i 및 라우드스피커/헤드폰 블록(1012)에서 오디오 데이터 A's를 배향/뷰포트 메타데이터와 같은 다양한 메타데이터에 따라 VR360 포맷으로 출력할 수 있다. 다양한 메타데이터는 OMAF 플레이어(1020)의 사용자에 의해 또는 사용자를 위해 선택될 수 있는 다양한 트랙, 언어, 품질, 뷰(view)에 따라 데이터 디코딩 및 렌더링 프로세스 중 하나에 영향을 미칠 수 있으며, 여기에 설명된 처리의 순서는 예시적인 실시예에 대해 제시되며 다른 예시적인 실시예에 따라 다른 순서로 구현될 수 있음을 이해할 수 있다.
도 11은 캡처/생성/(디)코딩/렌더링/6자유도(degree-of-freedom) 미디어 디스플레이에 관련하여, 포인트 클라우드 데이터의 뷰 포지션(view-position) 및 각도 종속 처리(여기서는 "V-PCC")를 사용하는 (코딩된) 포인트 클라우드 데이터에 대한 단순화된 블록 스타일 콘텐츠 흐름 프로세스 다이어그램(1100)을 예시한다. 설명된 특징은 개별적으로 사용될 수 있거나 임의의 순서로 조합될 수 있으며, 다른 예시된 것들 중에서, 인코딩 및 디코딩을 위한 것과 같은 엘리먼트가 처리 회로(예: 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있고, 하나 이상의 프로세서는 예시적인 실시예에 따라 컴퓨터가 판독 가능한 비일시적 매체에 저장된 프로그램을 실행할 수 있음을 이해해야 한다.
다이어그램(1100)은 V-PCC에 따라 코딩된 포인트 클라우드 데이터의 스트리밍에 대한 예시적인 실시예를 예시한다.
볼륨메트릭 데이터 취득 블록(1101)에서, 실제 시각적 장면 또는 컴퓨터로 생성된 시각적 장면(또는 이들의 조합)이 카메라 디바이스 세트에 의해 캡처되거나 컴퓨터에 의해 볼륨메트릭 데이터로 합성될 수 있으며, 임의의 포맷을 가질 수 있는 볼륨메트릭 데이터는 포인트 클라우드 변환 블록(1102)에서의 이미지 처리를 통해 (양자화된) 포인트 클라우드 데이터 포맷으로 변환될 수 있다. 예를 들어, 볼륨메트릭 데이터로부터의 데이터는, 임의의 연관 데이터 및 볼륨메트릭 데이터로부터의 아래 설명된 값 중 하나 이상을 예시적인 실시예에 따라 원하는 포인트 클라우드 포맷으로 풀링(pulling)하는 것에 의해, 포인트 클라우드의 포인트 중 하나로 변환된 영역별 데이터(area data by area data)일 수 있다. 예시적인 실시예에 따르면, 볼륨메트릭 데이터는 예를 들어 3D 데이터 세트의 2D 투영이 투영될 수 있는 슬라이스와 같은 2D 이미지의 3D 데이터 세트일 수 있다. 예시적인 실시예에 따르면, 포인트 클라우드 데이터 포맷은, 하나 이상의 다양한 공간에 있는 데이터 포인트의 표현(representation)을 포함하고, 볼륨메트릭 데이터를 표현하는 데 사용될 수 있으며, 시간적 중복과 같은 샘플링 및 데이터 압축과 관련하여 개선 사항 그리고 예를 들어, 클라우드 데이터의 다수의 포인트의 각 포인트에서 색상 값(예: RGB 등), 휘도, 강도 등을 나타내는 x, y, z 포맷의 포인트 클라우드 데이터를 제공할 수 있으며, 프로그레시브 디코딩, 다각형 메싱, 직접 렌더링, 2D 쿼드트리 데이터의 옥트리(octree) 3D 표현과 함께 사용될 수 있다.
이미지로의 투영 블록(1103)에서, 취득된 포인트 클라우드 데이터는 2D 이미지로 투영되고 비디오 기반 포인트 클라우드 코딩(video-based point cloud coding, V-PCC)을 사용하여 이미지/비디오 픽처로 인코딩될 수 있다. 투영된 포인트 클라우드 데이터는 예를 들어 페인터(painter)의 알고리즘, 레이 캐스팅(ray casting) 알고리즘, (3D) 바이너리 공간 파티션 알고리즘 등을 사용하여 포인트 클라우드 데이터 재구성에 사용되는 다른 메타데이터, 점유 맵, 지오메트리(geometry) 및 속성으로 구성될 수 있다.
반면, 장면 생성기(scene generator) 블록(1109)에서, 장면 생성기는 예를 들어 디렉터(director)의 의도나 사용자의 선호도에 의해, 6 자유도(degrees-of-freedom, DoF) 미디어를 렌더링하고 디스플레이하기 위해 사용될 일부 메타데이터를 생성할 수 있다. 이러한 6 DoF 미디어는 포인트 클라우드 코딩 데이터 내에서 또는 적어도 그에 따라 가상 경험 관련하여 앞/뒤, 위/아래, 좌측/우측 이동을 허용하는 추가 차원 외에도, 3D 축 X, Y, Z 상의 회전 변화로부터 장면을 3D로 보는 것과 같은 360VR을 포함할 수 있다. 장면 디스크립션(description) 메타데이터는 코딩된 포인트 클라우드 데이터와 VR360, 라이트 필드, 오디오 등을 포함한 기타 미디어 데이터로 구성된 하나 이상의 장면을 정의하며, 도 11 및 관련 설명에서 지시된 바와 같이, 하나 이상의 클라우드 서버 및 또는 파일/세그먼트 캡슐화/디캡슐화 처리에 제공될 수 있다.
위에서 설명된 비디오 및 이미지 인코딩과 유사한 비디오 인코딩 블록(1104) 및 이미지 인코딩 블록(1105) 이후(그리고 이해되는 바와 같이, 오디오 인코딩도 위에서 설명된 바와 같이 제공될 수 있음), 파일/세그먼트 캡슐화 블록(1106)은 코딩된 포인트 클라우드 데이터가 하나 이상의 비디오 컨테이너(container) 포맷과 같은 특정 미디어 컨테이너 파일 포맷에 따라 파일 재생을 위한 미디어 파일 또는 스트리밍을 위한 초기화 세그먼트와 미디어 세그먼트의 시퀀스로 구성되도록 처리하며, 특히 이러한 설명은 예시적인 실시예를 나타내는 것으로서 아래에 설명되는 DASH와 관련하여 사용될 수 있다. 파일 컨테이너는 또한 예를 들어 장면 생성기 블록(1109)으로부터의 장면 디스크립션 메타데이터를 파일 또는 세그먼트에 포함시킬 수도 있다.
예시적인 실시예에 따르면, 파일이 사용자 또는 창작자(creator) 입력에 따라 요청 시 전송될 수 있도록, 파일은 장면 디스크립션 메타데이터에 따라 캡슐화되어 6DoF 미디어 중 적어도 하나의 뷰 포지션 및 그/그들의 뷰 포지션(들)에서의 적어도 하나 이상의 각도 뷰를 각각 한번 이상 포함한다. 또한, 예시적인 실시예에 따르면, 이러한 파일의 세그먼트는 한 번 이상 그때에 단일 뷰포인트 및 각도를 지시하는 6DoF 미디어의 일부와 같은 파일의 하나 이상의 부분을 포함할 수 있으며; 그러나 이는 단지 예시적인 실시예일 뿐이며, 네트워크, 사용자, 창작자 능력 및 입력과 같은 다양한 조건에 따라 변경될 수 있다.
예시적인 실시예에 따르면, 포인트 클라우드 데이터는 비디오 인코딩 블록(1104) 및 이미지 인코딩 블록(1105) 중 하나 이상과 같이 독립적으로 코딩되는 다수의 2D/3D 영역으로 파티셔닝된다. 그 다음, 포인트 클라우드 데이터의 각각의 독립적으로 코딩된 파티션은 파일/세그먼트 캡슐화 블록(1106)에서 파일 및/또는 세그먼트의 트랙으로 캡슐화될 수 있다. 예시적인 실시예에 따르면, 각각의 포인트 클라우드 트랙 및/또는 메타데이터 트랙은 뷰 포지션/각도 종속 처리를 위한 일부 유용한 메타데이터를 포함할 수 있다.
예시적인 실시예에 따르면, 뷰 포지션/각도 종속 처리에 유용한, 파일/세그먼트 캡슐화 블록과 관련하여 캡슐화된 파일 및/또는 세그먼트에 포함된 것과 같은 메타데이터는 다음: 인덱스가 있는 2D/3D 파티션의 레이아웃 정보, 3D 볼륨 파티션을 하나 이상의 2D 파티션(예: 타일/타일 그룹/슬라이스/서브 픽처 중 어느 하나)과 연관시키는 (동적) 매핑 정보, 6DoF 좌표계에서 각 3D 파티션의 3D 포지션, 대표 뷰 포지션/각도 리스트, 3D 볼륨 파티션에 대응하는 선택된 뷰 포지션/각도 리스트, 선택된 뷰 포지션/각도에 대응하는 2D/3D 파티션의 인덱스, 각 2D/3D 파티션의 품질(순위)정보, 예를 들어 각 뷰 포지션/각도에 따른 각 2D/3D 파티션의 렌더링 정보 중 하나 이상을 포함한다. 예컨대, V-PCC 플레이어 사용자에 의해 또는 V-PCC 플레이어 사용자를 위해 콘텐츠 창작자가 디렉팅한 바와 같이 요청될 때 이러한 메타데이터를 호출(calling)하면, V-PCC 플레이어가 해당 미디어의 사용되지 않은 부분을 전달하는 대신 다른 부분보다 6DoF 미디어의 부분에 중점을 둔 더 높은 품질의 이미지를 전달할 수 있도록, 이러한 메타데이터와 관련하여 원하는 6DoF 미디어의 특정 부분에 대해 보다 효율적인 처리가 가능해질 수 있다.
파일/세그먼트 캡슐화 블록(1106)으로부터, 파일 또는 파일의 하나 이상의 세그먼트는 전달 메커니즘(예: DASH(Dynamic Adaptive Streaming over HTTP))을 사용하여, 클라우드 서버가 파일로부터 하나 이상의 트랙 및/또는 하나 이상의 특정 2D/3D 파티션을 추출할 수 있고 다수의 코딩된 포인트 클라우드 데이터를 하나의 데이터로 병합할 수 있는 클라우드 서버 블록(1107)에서와 같은 클라우드 서버와 V-PCC 플레이어(1125) 중 임의의 것에 직접 전달될 수 있다.
예컨대 포지션/시야각(viewing angle) 추적 블록(1108)을 사용하여 데이터에 따라, 현재 보기(viewing) 포지션 및 각도(들)가 클라이언트 시스템에서 6DoF 좌표계 상에서 정의되면, 클라우드 서버가 저장소 파일(들)로부터 적절한 파티션(들)을 추출하고 (필요하면) 예를 들어, V-PCC 플레이어(1125)를 갖는 클라이언트 시스템으로부터의 메타데이터에 따라 이들을 병합할 수 있도록, 보기 포지션/각도 메타데이터가 파일/세그먼트 캡슐화 블록(1106)으로부터 전달될 수 있거나, 그렇지 않으면 클라우드 서버 블록(1107)에서, 클라우드 서버에서 이미 파일 또는 세그먼트로부터 처리될 수 있으며, 추출된 데이터는 파일 또는 세그먼트로서 클라이언트로 전달될 수 있다.
이러한 데이터와 관련하여, 파일/세그먼트 디캡슐화 블록(1115)에서는 파일 디캡슐레이터(decapsulator)가 파일 또는 수신된 세그먼트를 처리하여 코딩된 비트스트림을 추출하고 메타데이터를 파싱하며, 비디오 디코딩 및 이미지 디코딩 블록에서는 코딩된 포인트 클라우드 데이터가 디코딩되고, 그리고 포인트 클라우드 재구성 블록(1112)에서 포인트 클라우드 데이터로 재구성되며, 재구성된 포인트 클라우드 데이터는 디스플레이 블록(1114)에서 디스플레이될 수 있거나 및/또는 먼저 장면 생성기 블록(1109)에 따라 장면 디스크립션 데이터와 관련하여 장면 구성 블록(1113)에서 하나 이상의 다양한 장면 디스크립션에 따라 구성될 수 있다.
위의 관점에서, 이러한 예시적인 V-PCC 흐름은 다수의 2D/3D 영역에 대해 설명된 파티셔닝 능력, 코딩된 2D/3D 파티션을 단일 적합 코딩 비디오 비트스트림으로 압축한 도메인 어셈블리의 능력, 그리고 코딩된 픽처의 코딩된 2D/3D를 적합 코딩된 비트스트림으로 추출하는 비트스트림 추출 능력 중 적어도 하나를 포함하는 V-PCC 표준에 대한 효과를 나타내며, 이러한 V-PCC 시스템 지원은 위에 설명된 메타데이터 중 하나 이상을 운반하는 메타데이터를 포함하도록 메커니즘을 지원하기 위해, VVC 비트스트림에 대한 컨테이너 형성을 포함하는 것에 의해 더욱 향상된다.
그러한 관점에서 그리고 아래에 추가로 설명되는 예시적인 실시예에 따르면, "메시"라는 용어는 볼륨메트릭 객체의 표면을 설명하는 하나 이상의 다각형의 구성(composition)을 지시한다. 각 다각형은 3D 공간에서의 정점과, 연결성 정보라고도 지칭되는, 정점이 어떻게 연결되어 있는지에 대한 정보로 정의된다. 선택적으로 색상, 법선(normal) 등과 같은 정점 속성이 메시 정점과 연관될 수 있다. 2D 속성 맵으로 메시를 파라미터화하는 매핑 정보를 활용하여 속성이 메시의 표면과 연관될 수도 있다. 이러한 매핑은 메시 정점과 연관된 파라메트릭(parametric) 좌표(UV 좌표 또는 텍스처(texture) 좌표라고 함)의 세트로 설명될 수 있다. 2D 속성 맵은 텍스처, 법선, 변위 등과 같은 고해상도 속성 정보를 저장하는 데 사용된다. 이러한 정보는 예시적인 실시예에 따라 텍스처 매핑, 셰이딩(shading)과 같은 다양한 목적에 활용될 수 있다.
그럼에도 불구하고, 동적 메시 시퀀스는 시간이 지남에 따라 변하는 상당한 양의 정보로 구성될 수 있기 때문에 많은 양의 데이터가 필요할 수 있다. 따라서 이러한 콘텐츠를 저장하고 전송하기 위해서는 효율적인 압축 기술이 필요하다. 메시 압축 표준 IC, MESHGRID, FAMC는 일정한(constant) 연결성과 시변(time varying) 지오메트리 및 정점 속성으로 동적 메시를 어드레싱(address)하기 위해 MPEG에 의해 이전에 개발되었다. 그러나 이러한 표준은 시변 속성 맵과 연결성 정보를 고려하지 않는다. DCC(Digital Content Creation) 도구는 일반적으로 이러한 동적 메시를 생성한다. 반면에, 특히 실시간 제약 조건 하에서 일정한 연결성 동적 메시를 생성하는 것은 볼륨 획득 기술로는 어렵다. 이러한 유형의 콘텐츠는 기존 표준에서 지원되지 않는다. 본 명세서의 예시적인 실시예에 따르면, 시변 연결성 정보 및 선택적으로 시변 속성 맵을 사용하여 동적 메시를 직접 핸들링하기 위한 신규 메시 압축 표준의 측면이 설명되며, 이 표준은 실시간 통신, 스토리지, 프리(free) 뷰포인트 비디오, AR 및 VR과 같은 다양한 애플리케이션에 대한 손실 및 무손실 압축을 목표로 한다. 랜덤 액세스 및 확장 가능/프로그레시브(scalable/progressive) 코딩과 같은 기능도 고려된다.
도 12는 2D 아틀라스(atlas) 샘플링 기반 방법과 같은 하나의 동적 메시 압축의 예시적인 프레임워크(1200)를 나타낸다. 입력 메시(1201)의 각 프레임은 일련의 작동, 예를 들어 추적, 리메싱(remeshing), 파라미터화, 복셀화(voxelization)에 의해 전처리될 수 있다. 이러한 작동은 인코더 전용일 수 있으며, 디코딩 프로세스의 일부가 아닐 수 있으며 그러한 가능성은 예컨대 인코더 전용의 경우 0, 기타의 경우 1을 지시하는 플래그에 의해 메타데이터에서 시그널링될 수 있음을 의미함을 유의한다. 그 후, 2D UV 아틀라스(1202)로 메시를 얻을 수 있으며, 여기서 메시의 각 정점은 2D 아틀라스 상의 하나 이상의 연관된 UV 좌표를 갖는다. 그런 다음 2D 아틀라스에서 샘플링하는 것에 의해, 메시를 지오메트리 맵과 속성 맵을 포함한 다수의 맵으로 변환할 수 있다. 그런 다음 이러한 2D 맵은 HEVC, VVC, AV1, AVS3 등과 같은 비디오/이미지 코덱에 의해 코딩될 수 있다. 디코더(1203) 측에서, 메시는 디코딩된 2D 맵으로부터 재구성될 수 있다. 임의의 후처리 및 필터링도 재구성된 메시(1204)에 적용될 수 있다. 3D 메시 재구성의 목적을 위해 다른 메타데이터가 디코더 측으로 시그널링될 수 있음을 유의한다. 경계 정점의 uv 및 xyz 좌표를 포함한 차트 경계(chart boundary) 정보는 예측되고, 양자화되며 그리고 비트스트림에 엔트로피 코딩될 수 있다. 양자화 단계 크기는 품질과 비트레이트 사이의 균형(tradeoff)을 맞추기 위해 인코더 측에서 구성될 수 있다.
일부 구현에서, 3D 메시를 여러 세그먼트(또는 패치(patch)/차트)로 파티셔닝할 수 있다. 각 세그먼트는 해당 지오메트리, 속성 및 연결성 정보와 연관된, 연결된 정점 세트로 구성된다. 도 13에서 볼륨메트릭 데이터의 예(1300)에 예시된 바와 같이, 위에서 언급한 2D UV 아틀라스(1202) 블록과 같이 3D 메시 세그먼트로부터 2D 차트로 매핑하는 UV 파라미터화 프로세스(1302)는, 하나 이상의 메시 세그먼트(1301)를 2D UV 아틀라스(1304)에서의 2D 차트(1303)로 매핑한다. 메시 세그먼트의 각 정점(vn)은 2D UV 아틀라스의 2D UV 좌표가 할당될 것이다. 2D 차트의 정점(vn)은 해당 3D 대응 요소(counterpart)로서 연결된 컴포넌트를 형성한다. 각 정점의 지오메트리, 속성 및 연결성 정보도 해당 3D 대응 요소로부터 상속될 수 있다. 예를 들어, 정점 v4가 정점 v0, v5, v1, v3에 직접 연결되어 있다는 정보가 지시될 수 있고, 유사하게 다른 정점들 각각의 정보도 마찬가지로 지시될 수 있다. 또한, 이러한 2D 텍스처 메시는 예시적인 실시예에 따라, 적어도 도 16의 예(1600)의 UV 파라메트릭 특징과 관련하여 도시된, 색상 정보와 같은 정보를 예를 들어 v2, v5, v3인 각 삼각형의 패치와 같은 패치 단위(patch-by-patch basis)로 추가로 지시하며, 2D 차트에서 경계 정점의 예시를 보여주는 도 17의 예(1700)를 참조한다.
예를 들어, 도 13의 예(1300)의 특징에 더하여, 3D 메시 세그먼트(1301)가 다수의 개별 2D 차트(1401, 1402)에 매핑될 수도 있는 도 14의 예(1400)를 참조한다. 이 경우, 3D의 정점은 2D UV 아틀라스의 다수의 정점에 대응할 수 있다. 도 14에 도시된 바와 같이, 동일한 3D 메시 세그먼트가 도 13에서와 같은 단일 차트 대신에, 2D UV 아틀라스에서 다수의 2D 차트에 매핑된다. 예를 들어, 3D 정점 v1 및 v4는 각각 두 개의 2D 대응 관계(correspondence) v1, v1', 및 v4, v4'를 갖는다. 따라서 3D 메시의 일반적인 2D UV 아틀라스는 도 14에 도시된 바와 같이 다수의 차트로 구성될 수 있으며, 각 차트에는 해당 3D 지오메트리, 속성 및 연결성 정보와 연관된 다수의 (보통 3개 이상) 정점이 포함될 수 있다.
도 15는 경계 정점 B0, B1, B2, B3, B4, B5, B6, B7을 갖는, 차트에서의 도출된 삼각 분할(triangulation)을 예시하는 예(1500)를 도시한다. 이러한 정보가 제시될 때, 임의의 삼각 분할 방법을 적용하여 정점(경계 정점 및 샘플링된 정점을 포함) 간의 연결을 생성할 수 있다. 예를 들어, 각 정점에 대해, 가장 가까운 두 개의 정점을 찾는다. 또는 모든 정점에 대해, 설정된 횟수만큼 시도한 후 최소 삼각형 수에 도달할 때까지 계속해서 삼각형을 생성한다. 예(1500)에 도시된 바와 같이, 일반적으로 경계 정점에 가장 가까운 다양한 규칙적인 모양의 반복 삼각형과 다양한 이상한 모양의 삼각형이 있으며, 이는 임의의 다른 삼각형과 공유되거나 공유되지 않을 수 있는 고유한 차원을 갖는다. 연결성 정보는 명시적 시그널링에 의해 재구성될 수도 있다. 다각형이 암시적 규칙에 의해 복원될 수 없으면, 인코더는 예시적인 실시예에 따라 비트스트림에서 연결성 정보를 시그널링할 수 있다.
위에 설명된 패치를 살펴보면, 예(1500)는 도 14 및 도 15 중 어느 하나에 도시된 정점 v3, v2, v5로 형성된 패치와 같은 하나의 패치를 나타낼 수 있다.
경계 정점 B0, B1, B2, B3, B4, B5, B6, B7은 2D UV 공간에 정의된다. 도 15에 도시된 바와 같이, 채워진 정점은 연결된 컴포넌트(패치/차트)의 경계 에지에 있기 때문에 경계 정점이다. 경계 에지는 에지가 하나의 삼각형에만 나타나는지를 확인하는 것에 의해 결정될 수 있다. 경계 정점의 다음 정보: 지오메트리 정보, 예를 들어 현재는 2D UV 파라미터 형태이지만 3D XYZ 좌표 그리고 2D UV 좌표는 중요하며, 예시적인 실시예에 따라 비트스트림에서 시그널링되어야 한다.
도 14에 도시된 바와 같이 3D의 경계 정점이 2D UV 아틀라스의 다수의 정점에 대응하는 경우에, 3D XUZ에서 2D UV로의 매핑은 일대다수일 수 있다. 따라서 UV-XYZ(또는 UV2XYZ라고도 함) 인덱스를 시그널링하여 매핑 기능을 지시할 수 있다. UV2XYZ는 각 2D UV 정점을 3D XYZ 정점에 대응시키는 인덱스의 1D-어레이일 수 있다.
예시적인 실시예에 따르면, 메시 신호를 효율적으로 나타내기 위해, 메시 정점의 서브세트를 그들 간의 연결성 정보와 함께 먼저 코딩할 수 있다. 원래의 메시에서는 이러한 정점 간의 연결(connection)이 원래의 메시로부터 서브샘플링되므로 존재하지 않을 수 있다. 정점 간의 연결성 정보를 시그널링하는 서로 다른 방식이 있으며, 따라서 이러한 서브세트를 기본(base) 메시 또는 기본 정점이라고 한다.
그러나 다른 정점은 이미 디코딩된 두 개 이상의 메시 정점 사이에 보간(interpolation)을 적용하는 것에 의해 예측될 수 있다. 예측자 정점(predictor vertex)은 두 개의 연결된 기존 정점의 에지를 따라 지오메트리 위치를 갖게 됨으로써, 예측자의 지오메트리 정보는 이웃하는 디코딩된 정점을 기반으로 계산될 수 있다. 일부 경우에, 코딩 대상 정점에서 정점 예측자까지의 변위 벡터 또는 예측 에러가 추가로 코딩되어야 한다. 예를 들어, 도 18의 예(1800)를 참조하면, 이러한 에지 기반 정점 예측의 예가 도시되거나 더 구체적으로는 좌측에 도시된 것처럼 삼각형을 평행 사변형(parallelogram)으로 확장하는 것에 의한 외삽(extrapolation)에 의한 인트라 예측 그리고 우측에 도시된 바와 같이 기존 두 개의 정점의 가중화된 평균을 통한 보간을 사용하는 정점 지오메트리 예측이 도시된다. 기본 정점(즉, 도 18 좌측의 실선 삼각형(1801))을 디코딩한 후, 이러한 기본 정점 간의 보간이 연결된 에지를 따라 수행될 수 있다. 예를 들어, 각 에지의 중간 포인트를 예측자로 생성할 수 있다. 따라서 이들 보간된 포인트의 지오메트리 위치는 2개의 이웃하는 디코딩된 정점(도 18 좌측의 점선 포인트(1802))의 (가중화된) 평균이다. 이미 디코딩된 두 개의 정점 사이에 1개 이상의 중간 포인트를 갖는 것도 유사한 방식으로 수행될 수 있다. 따라서 코딩할 실제 정점은 변위 벡터를 예측자에 추가하는 것에 의해 재구성될 수 있다(도 7 중간). 이러한 추가 정점을 디코딩한 후에, 신규로 디코딩된 정점과 기존 기본 정점 간의 연결은 계속 유지된다. 또한, 신규로 디코딩된 정점 간의 연결이 추가로 구축될 수 있다. 기본 정점과 함께, 이들 신규로 디코딩된 정점(1803)과 기본 정점을 함께 연결하는 것에 의해 신규 에지를 따라 더 많은 중간(intermediate) 정점 예측자가 생성될 수 있다(도 7 우측). 따라서, 디코딩될 실제 정점이 연관된 변위 벡터와 함께 더 많이 존재한다. 여기서, "변위 벡터"는 정점으로부터의 거리 및 방향을 나타낸다.
예시적인 실시예에 따르면, 메시 프레임(1902)의 메시 정점은 또한 이전에 코딩된 메시 프레임(1901)의 디코딩된 정점으로부터 예측될 수 있다. 이 예측 메커니즘을 인터 예측이라고 한다. 메시 지오메트리 인터 예측의 예는 인터 예측을 사용한 정점 지오메트리 예측(이전 메시 프레임의 정점이 현재 프레임의 정점의 예측자가 됨)을 보여주는 도 19의 예(1900)에 예시되어 있다. 일부 경우에, 코딩 대상 정점에서 정점 예측자까지의 변위 벡터 또는 예측 에러가 추가로 코딩되어야 한다.
예시적인 실시예에 따르면, 동적 메시 압축을 위해 여러 방법이 구현되고 위에서 언급한 에지 기반 정점 예측 프레임워크의 일부이며, 여기서 기본 메시가 먼저 코딩된 다음, 더 추가적인 정점이 기본 메시의 에지로부터의 연결성 정보를 기반으로 예측된다. 이는 개별적으로 적용되거나 임의의 조합 형태로 적용될 수 있다.
예를 들어, 도 20의 예측 모드 예시 흐름도(2000)에 대한 정점 그룹화를 고려한다. S201에서, 메시 내부의 정점이 획득될 수 있으며, S202에서 예측 목적을 위해 서로 다른 그룹으로 분할될 수 있다(예: 도 15 참조). 일 예에서, 분할(division)은 이전에 설명한 바와 같이 S204에서 패치/차트 파티셔닝을 사용하여 이루어진다. 또 다른 예에서는 각 패치/차트별로 분할이 이루어진다(S205). S204로 진행할지 또는 S205로 진행할지의 결정(S203)이 플래그 등에 의해 시그널링될 수 있다. S205의 경우에, 동일한 패치/차트의 여러 정점이 예측 그룹을 형성하고 동일한 예측 모드를 공유하는 반면, 동일한 패치/차트의 다른 여러 정점은 다른 예측 모드를 사용할 수 있다. S206에서의 이러한 그룹화는 그룹 당 관련된 개개의 정점 수를 결정하는 것에 의해 서로 다른 레벨로 할당될 수 있다. 예를 들어, 패치/차트 내부의 스캔 순서를 따르는 64개, 32개 또는 16개의 정점마다 예시적인 실시예에 따라 동일한 예측 모드가 할당되고 다른 정점은 상이하게 할당될 수 있다. 각 그룹에 대해, 예측 모드는 인트라 예측 모드 또는 인터 예측 모드일 수 있다. 이는 시그널링되거나 할당될 수 있다. 예시적인 흐름도(2000)에 따르면, 예컨대 메시 프레임 또는 메시 슬라이스의 플래그가 인트라 유형을 지시하는지를 체크하는 것에 의해, S207에서 메시 프레임 또는 메시 슬라이스가 인트라 유형인 것으로 결정되면, 이 메시 프레임 또는 메시 슬라이스 내부의 모든 정점 그룹은 인트라 예측 모드를 사용해야 하며; 그렇지 않으면 S208에서 인트라 예측 또는 인터 예측 모드가 그룹 당 그 안의 모든 정점에 대해 선택될 수 있다.
또한, 인트라 예측 모드를 사용하는 메시 정점 그룹의 경우, 그 정점은 현재 메시의 동일한 서브 파티션(sub-partition) 내부의 이전에 코딩된 정점을 사용하는 것에 의해서만 예측될 수 있다. 때때로 서브 파티션은 예시적인 실시예에 따라 현재 메시 그 자체일 수 있으며, 인터 예측 모드를 사용하는 메시 정점 그룹의 경우, 그 정점은 예시적인 실시예에 따라 다른 메시 프레임으로부터의 이전에 코딩된 정점을 사용하는 것에 의해서만 예측될 수 있다. 전술한 각각의 정보는 결정되어 플래그 등에 의해 시그널링될 수 있다. 이 예측 특징은 S210에서 발생할 수 있으며, 예측 및 시그널링의 결과는 S211에서 발생할 수 있다.
예시적인 실시예에 따르면, 예시적인 흐름도(2000) 및 아래 설명되는 흐름도(2100)의 정점 그룹의 각 정점에 대해, 예측 후에 잔차(residue)는 현재 정점에서 예측자로의 시프트를 지시하는 3D 변위 벡터일 것이다. 정점 그룹의 잔차는 추가로 압축되어야 한다. 일 예에서, 그의 시그널링과 함께, S211에서의 변환이, 엔트로피 코딩 전에, 정점 그룹의 잔차에 적용될 수 있다. 변위 벡터 그룹의 코딩을 핸들링하기 위해 다음 방법이 구현될 수 있다. 예를 들어, 한 가지 방법에서는 변위 벡터 그룹, 일부 변위 벡터 또는 해당 컴포넌트가 0 값만 갖는 경우를 적절하게 시그널링한다. 다른 실시예에서, 이 벡터가 임의의 0이 아닌 컴포넌트를 갖는지에 대해 각 변위 벡터에 대해 플래그가 시그널링되며, 그렇지 않으면, 이 변위 벡터에 대한 모든 컴포넌트의 코딩을 건너뛸 수 있다. 또한, 다른 실시예에서, 이 그룹이 임의의 0이 아닌 벡터를 갖는지에 대해 변위 벡터의 각 그룹에 대해 플래그가 시그널링되고, 그렇지 않으면 이 그룹의 모든 변위 벡터의 코딩을 건너뛸 수 있다. 또한, 다른 실시예에서, 그룹의 이 컴포넌트가 임의의 0이 아닌 벡터를 갖는지에 대해 변위 벡터 그룹의 각 컴포넌트에 대해 플래그가 시그널링되고, 그렇지 않으면, 이 그룹의 모든 변위 벡터의 이 컴포넌트의 코딩을 건너뛸 수 있다. 또한, 또 다른 실시예에서는 변위 벡터 그룹 또는 변위 벡터 그룹의 컴포넌트가 변환이 필요한 경우에 대한 시그널링이 있을 수 있으며, 그렇지 않으면, 변환을 건너뛸 수 있으며, 양자화/엔트로피 코딩이 그룹 또는 그룹 컴포넌트에 직접 적용될 수 있다. 또한, 다른 실시예에서, 이 그룹이 변환을 거쳐야 하는지에 대해 변위 벡터의 각 그룹에 대해 플래그가 시그널링될 수 있고, 그렇지 않으면 이 그룹의 모든 변위 벡터의 변환 코딩을 건너뛸 수 있다. 또한, 다른 실시예에서, 그룹의 이 컴포넌트가 변환을 거쳐야 하는지에 대해 변위 벡터 그룹의 각 컴포넌트에 대해 플래그가 시그널링되고, 그렇지 않으면, 이 그룹의 모든 변위 벡터의 이 컴포넌트의 변환 코딩을 건너뛸 수 있다. 정점 예측 잔차의 핸들링에 관한 이 단락의 위에서 설명된 실시예는 각각 서로 다른 패치에서 조합되어 병렬로 구현될 수도 있다.
도 21은 예시적인 흐름도(2100)를 도시하며, S221에서 메시 프레임이 전체 데이터 유닛으로 획득되고 코딩될 수 있으며, 이는 메시 프레임의 모든 정점 또는 속성이 그들 사이에 상관 관계를 가질 수 있음을 의미한다. 다르게는, S222에서의 결정에 따라, 메시 프레임은 S223에서 2D 비디오 또는 이미지의 슬라이스 또는 타일과 개념이 유사한 더 작고 독립적인 서브 파티션으로 분할될 수 있다. 코딩된 메시 프레임 또는 코딩된 메시 서브 파티션에는 S224에서 예측 유형이 할당될 수 있다. 가능한 예측 유형은 인트라 코딩된 유형과 인터 코딩된 유형을 포함한다. 인트라 코딩된 유형의 경우, S225에서는 동일한 프레임 또는 슬라이스의 재구성된 부분으로부터의 예측만 허용된다. 반면, 인터 예측 유형은 S225에서 인트라 메시 프레임 예측 외에도 이전에 코딩된 메시 프레임으로부터의 예측을 허용한다. 또한, 인터 예측 유형은 P 유형 또는 B 유형 등과 같은 더 많은 서브 유형으로 분류될 수 있다. P 유형에서는 예측 목적으로 단 하나의 예측자만 사용될 수 있는 반면, B 유형에서는 이전에 코딩된 두 개의 메시 프레임으로부터의 두 개의 예측자를 사용하여 예측자를 생성할 수 있다. 두 개의 예측자의 가중화된 평균이 하나의 예가 될 수 있다. 메시 프레임을 전체적으로 코딩할 때, 그 프레임은 인트라 또는 인터 코딩된 메시 프레임으로 간주될 수 있다. 인터 메시 프레임의 경우에, 시그널링을 통해 P 또는 B 유형을 추가로 식별할 수 있다. 또는 메시 프레임이 프레임 내부에서 더 분할되어 코딩되면, S224에서 각 서브 파티션에 대한 예측 유형 할당이 발생한다. 전술한 정보 각각은 결정되어 플래그 등에 의해 시그널링될 수 있으며, 도 20의 S210 및 S211과 마찬가지로, 예측 특징은 S226에서 발생할 수 있고, 예측 및 시그널링의 결과는 S227에서 발생할 수 있다.
이처럼 동적 메시 시퀀스는 시간에 따라 변화하는 상당한 양의 정보로 구성되어 있기 때문에 많은 양의 데이터를 필요로 할 수 있지만, 이러한 콘텐츠를 저장하고 전송하기 위해서는 효율적인 압축 기술이 필요하며, 전술한 도 20 및 도 21의 특징은, 동일한 메시 프레임에서(인트라 예측) 또는 이전에 코딩된 메시 프레임으로부터(인터 예측) 이전에 디코딩된 정점을 사용하여 적어도 개선된 메시 정점 3D 위치 예측을 허용하는 것에 의해 이러한 향상된 효율성을 나타낸다.
또한, 예시적인 실시예는 제2 레이어(2302) 및 제1 레이어(2301)와 같은 이전 레이어(들)의 하나 이상의 재구성된 정점에 기반하여, 메시의 제3 레이어(2303)의 변위 벡터를 생성할 수 있다. 제2 레이어(2302)의 인덱스가 T라고 가정하면, 제3 레이어(2303) T+1의 정점에 대한 예측자는 적어도 현재 레이어 또는 제2 레이어(2302)의 재구성된 정점에 기반하여 생성된다. 이러한 레이어 기반 예측 구조의 예는, 재구성 기반 정점 예측: 예측자가 예측 정점이 아닌 이전에 디코딩된 정점을 기반으로 생성되는 에지 기반 보간을 사용하는 프로그레시브 정점 예측을 예시하는 도 23의 예(2300)에 도시되어 있다. 제1 레이어(2301)는 그 경계에서의 디코딩된 정점들과 디코딩된 정점들 중 일부 정점들 사이의 선들 중 하나를 따르는 보간된 정점들을 정점으로 갖는 제1 다각형(2340)으로 바운딩되는(bounded) 메시일 수 있다. 프로그레시브 코딩이 제1 레이어(2301)에서 제2 레이어(2302)로 진행됨에 따라, 제1 레이어의 보간된 정점 중 하나로부터 제2 레이어(2302)의 추가 정점으로의 변위 벡터에 의해 추가 다각형(2341)이 형성될 수 있으며, 이러한 이유로, 제2 레이어(2302)의 정점의 총 개수는 제1 레이어(2301)의 정점의 개수보다 클 수 있다. 마찬가지로, 제3 레이어(2303)로 진행하면, 제1 레이어(2301)로부터의 디코딩된 정점과 함께, 제2 레이어(2302)의 추가 정점은, 제1 레이어(2301)에서 제2 레이어(2303)로의 진행에서 디코딩된 정점이 서빙되는(served) 것과 유사한 방식으로 코딩에서 서빙될 수 있으며; 즉, 다수의 추가 다각형이 형성될 수 있다. 참고로, 이러한 프로그레시브 코딩을 예시하는 도 26의 예(2600)를 참조하며, 여기서, 도 23에서와는 달리, 예(2600)는 제1 레이어(2601)에서 제2 레이어(2603)로 그리고 이어서 제3 레이어(2603)로 진행하면서, 추가로 형성된 다각형 각각은 제1 레이어(2601)의 경계에 의해 형성된 다각형 내에 전체적으로 있을 수 있다.
이러한 예(2300)에 대해, 도 22의 예시적인 흐름도(2200)를 참조하며, 여기서 현재 레이어의 보간된 정점은 예측된 값이므로, 이러한 값이 다음 레이어의 정점의 예측자를 생성하는 데 사용되기 전에 재구성되어야 한다. 이는 S231에서 기본 메시를 코딩하고 S232에서 정점 예측을 구현한 다음, S233에서 현재 레이어의 디코딩된 변위 벡터를 예컨대 레이어(2302)의 정점 예측자에 추가하는 것에 의해 이루어진다. 그런 다음 S234에서 이러한 레이어의 추가 정점 값을 확인하는 것과 같이, 이전 레이어(들)의 모든 디코딩된 정점과 함께 이 레이어(2303)의 재구성된 정점은 S235에서 다음 레이어(2303)의 예측 정점을 생성하고 시그널링하는 데 사용될 수 있다. 이 프로세스는 다음과 같이 요약될 수도 있다: P[t](Vi)가 레이어 t의 정점 Vi의 예측자를 나타낸다고 하고; R[t](Vi)는 레이어 t의 재구성된 정점 Vi를 나타낸다고 하며; D[t](Vi)는 레이어 t의 정점 Vi의 변위 벡터를 나타낸다고 하고; f(*)는 특히 기존 두 정점의 평균이 될 수 있는 예측자 생성기를 나타낸다고 한다. 그러면 각 레이어 t에 대해, 예시적인 실시예에 따르면 다음이 존재한다:
P[t](Vi) = f(R[s|s<t](Vj), R[m|m<t](Vk))
여기서, Vj와 Vk는 이전 레이어의 재구성된 정점이다.
R[t](Vi) = P[t](Vi) + D[t](Vi) (수식. 8)
그런 다음, 하나의 메시 프레임에 있는 모든 정점에 대해, 이들을 레이어 0(기본 메시), 레이어 1, 레이어 2, ... 등으로 나눈다. 그런 다음, 하나의 레이어의 정점 재구성은 이전 레이어(들)의 정점 재구성에 의존한다. 위에서, P, R, D 각각은 3D 메시 표현의 콘텍스트 하에서 3D 벡터를 나타낸다. D는 디코딩된 변위 벡터이며, 양자화는 이 벡터에 적용되거나 적용되지 않을 수 있다.
예시적인 실시예에 따르면, 재구성된 정점을 사용하는 정점 예측은 특정 레이어에만 적용될 수 있다. 예를 들어, 레이어 0과 레이어 1이다. 다른 레이어의 경우, 정점 예측은 재구성을 위해 변위 벡터를 이들에 추가하지 않고 이웃하는 예측 정점을 계속 사용할 수 있다. 따라서 이전 레이어 하나가 재구성될 때까지 기다리지 않고 다른 레이어를 동시에 처리할 수 있다. 예시적인 실시예에 따르면, 각 레이어에 대해, 재구성 기반 정점 예측 또는 예측자 기반 정점 예측을 선택할지의 여부가 시그널링될 수 있거나, 재구성 기반 정점 예측을 사용하지 않는 레이어(및 그 후속 레이어)가 시그널링될 수 있다.
정점 예측자가 재구성된 정점에 의해 생성된 변위 벡터의 경우, 웨이블릿 변환 등과 같은 추가 변환을 수행하지 않고도 양자화를 적용할 수 있다. 정점 예측자가 다른 예측 정점에 의해 생성된 변위 벡터의 경우, 변환이 필요할 수 있으며 이러한 변위 벡터의 변환 계수에 양자화가 적용될 수 있다.
이러한 이유로, 동적 메시 시퀀스는 시간에 따라 변화하는 상당한 양의 정보로 구성될 수 있으므로 많은 양의 데이터가 필요할 수 있다. 따라서 이러한 콘텐츠를 저장하고 전송하기 위해서는 효율적인 압축 기술이 필요하다. 위에서 설명한 보간 기반 정점 예측 방법의 프레임워크에서, 하나의 중요한 절차는 변위 벡터를 압축하는 것이며, 이는 코딩된 비트스트림에서 주요 부분을 차지하며, 본 개시의 중점(focus)과 예를 들어 도 22의 특징은 이러한 압축을 제공하는 것에 의해 이러한 문제를 완화시킬 수 있다.
또한, 앞서 설명한 다른 예들과 유사하게, 이들 실시예에서도, 그럼에도 불구하고 동적 메시 시퀀스가 시간에 따라 변화하는 상당한 양의 정보로 구성될 수 있어서 많은 양의 데이터가 필요할 수 있으므로, 그러한 콘텐츠를 저장하고 전송하기 위해 효율적인 압축 기술이 필요하다. 위에 지시된 2D 아틀라스 샘플링 기반 방법의 프레임워크에서, 디코더 측의 경계 정점과 샘플링된 정점으로부터 연결성 정보를 추론함으로써 중요한 이점을 얻을 수 있다. 이는 디코딩 프로세스의 주요 부분이며 아래에 설명된 추가 예의 중점이다.
예시적인 실시예에 따르면, 기본 메시의 연결성 정보는 인코더 측과 디코더 측 모두에서 각 차트에 대해 디코딩된 경계 정점과 샘플링된 정점으로부터 추론(도출)될 수 있다.
위에서 설명한 것과 유사하게, 정점(경계 정점 및 샘플링된 정점을 포함) 간의 연결성을 생성하기 위해 임의의 삼각 분할 방법을 적용할 수 있다. 아래에서 추가로 설명되는 도 25의 예(2500) 및 도 15의 예(1500)에 도시된 내부 정점을 사용하는 것과 같이, 내부 정점의 임의의 샘플링이 없는 차트의 경우, 연결성을 생성하는 유사한 방법이 여전히 적용되지만, 예시적인 실시예에 따르면, 경계 정점과 샘플링된 정점에 대해 서로 다른 삼각 분할 방법을 사용하도록 시그널링될 수 있다.
예를 들어, 예시적인 실시예에 따르면, 임의의 샘플링된 포지션에서 매 4개의 이웃 포인트에 대해, 점유된 포인트의 수가 3보다 크거나 같은지가 판정될 수 있으며(점유된 또는 점유되지 않은 포인트의 예는 각 원이 정수 픽셀을 나타내는 점유 맵 예(2500)를 도시하는 도 25에 강조 표시되어 있음), 4개의 포인트 사이의 삼각형의 연결성은 특정 규칙에 의해 추론될 수 있다. 예를 들어, 도 24의 예(2400)에 도시된 바와 같이, 도시된 예(2), 예(3), 예(4), 예(4)에서 4개의 포인트 중 3개가 점유된 것으로 결정되면, 그 포인트들은 직접 연결되어 이들 예와 같이 삼각형을 형성하며; 반면에 4개의 포인트가 모두 점유된 것으로 결정되면, 도 24의 예(1)에 도시된 바와 같이 해당 포인트를 사용하여 두 개의 삼각형을 형성한다. 서로 다른 수의 이웃 포인트에 서로 다른 규칙이 적용될 수 있음을 유의한다. 이 프로세스는 도 25에 추가로 예시된 바와 같이 많은 포인트에 걸쳐 구현될 수 있다. 이 실시예에서, 재구성된 메시는 도 24에서와 같은 삼각형 메시, 규칙성에 따라 시그널링되지 않는 것으로 결정될 수 없지만 대신에 개별 시그널링이 아닌 추론에 의해 코딩 및 디코딩될 수 있는, 도 25의 내부 부분의 적어도 규칙적인 삼각형(regular triangle) 메시와 같은 삼각형 메시, 그리고 개별적으로 시그널링될 주변(perimeter)의 불규칙한 삼각형과 같은 삼각형 메시이다.
그리고 복잡성과 데이터 처리를 더욱 줄이기 위해, 도 25에 도시된 규칙적인 내부 삼각형의 쿼드 메시는 도 24의 예(1)의 쿼드 메시와 같이 추론될 수 있어서, 대신 감소된 수의 내부 규칙적인 삼각형을 추론하는 것과 같이 내부 규칙적인 삼각형을 추론하는 것의 복잡성을 더욱 줄일 수 있다.
예시적인 실시예에 따르면, 도 24의 예(1)에서와 같이, 4개의 이웃 포인트가 모두 점유된 것으로 결정될 때 쿼드 메시가 재구성될 수 있다.
위의 설명으로부터 추론하면, 도 25에 도시된 바와 같이, 예(2500)에서 재구성된 메시는 하이브리드 유형일 수 있으며, 즉, 메시 프레임의 일부 영역은 삼각형 메시를 생성하고 다른 영역은 쿼드 메시를 생성하며, 삼각형 메시 중 일부는 다른 삼각형 메시와 비교하여 규칙적일 수 있고, 일부는 경계에 있는 모든 메시가 필요하지는 않지만 경계의 메시와 같이 불규칙할 수 있음이 예시되어 있다.
예시적인 실시예에 따르면, 이러한 연결성 유형은 시퀀스 헤더, 슬라이스 헤더와 같이 상위 레벨 신택스로 시그널링될 수 있다.
위에서 언급한 바와 같이, 연결성 정보는 불규칙한 모양의 삼각형 메시에 대해서와 같이, 명시적인 시그널링에 의해 재구성될 수도 있다. 즉, 암시적 규칙에 의해 다각형을 복원할 수 없다고 결정하면, 인코더는 연결성 정보를 비트스트림으로 시그널링할 수 있다. 그리고 예시적인 실시예에 따르면, 이러한 명시적 시그널링의 오버헤드는 다각형의 경계에 따라 감소될 수 있다. 예를 들어, 도 25의 예(2500)에 도시된 바와 같이, 삼각형의 연결성 정보는, 추론될 수 있는 도 24의 규칙적인 예(2400)에 따른 것과 같은 암시적 규칙 그리고 도 25의 적어도 메시 경계에 도시된 불규칙한 모양의 다각형 중 하나에 대한 명시적 시그널링 모두에 의해 재구성되도록 시그널링된다.
실시예에 따르면, 경계 정점과 샘플링된 포지션 사이의 연결성 정보만 시그널링되는 것으로 결정하고, 샘플링된 포지션 간의 연결성 정보는 추론된다.
또한, 실시예들 중 임의의 실시예에서, 연결성 정보는 예측에 의해 시그널링될 수 있으므로, 하나의 메시에서 다른 메시로의 (예측으로서) 추론된 연결성과의 차이만이 비트스트림에서 시그널링될 수 있다.
참고로, 추론된 삼각형의 배향(예컨대 삼각형당 시계 방향 또는 시계 반대 방향으로 추론됨)은 시퀀스 헤더, 슬라이스 헤더 등과 같은 상위 레벨 신택스에서 모든 차트에 대해 시그널링될 수 있거나 예시적인 실시예에 따라 인코더 및 디코더에 의해 고정(가정)된다. 추론된 삼각형의 배향은 차트마다 상이하게 시그널링될 수도 있다.
추가 참고 사항으로, 임의의 재구성된 메시는 원래의 메시와 상이한 연결성을 가질 수 있다. 예를 들어, 원래의 메시는 삼각형 메시일 수 있고, 재구성된 메시는 다각형 메시(예: 쿼드 메시)일 수 있다.
예시적인 실시예에 따르면, 임의의 기본 정점의 연결성 정보는 시그널링되지 않을 수 있으며, 대신 기본 정점 간의 에지가 인코더 및 디코더 측 모두에서 동일한 알고리즘을 사용하여 도출될 수 있다. 예를 들어, 예(2500)에서 맨 아래 정점이 어떻게 모두 점유되는지를 참조하며, 따라서 코딩은 그러한 정점이 기본(base)으로 점유된다고 결정하고 그에 따라 나중에 임의 기본의 연결성 정보가 시그널링되지 않고 대신 기본 정점 간의 에지가 인코더와 디코더 측 모두에서 동일한 알고리즘을 사용하여 도출될 수 있음을 추론하는 것에 의해 그러한 정보의 이점을 얻을 수 있다. 그리고 예시적인 실시예에 따르면, 추가 메시 정점에 대한 예측된 정점의 보간은 기본 메시의 도출된 에지에 기반할 수 있다.
예시적인 실시예에 따르면, 기본 정점의 연결성 정보가 시그널링될 것인지 도출될 것인지를 시그널링하기 위해 플래그가 사용될 수 있으며, 이러한 플래그는 시퀀스 레벨, 프레임 레벨 등과 같은 비트스트림의 서로 다른 레벨에서 시그널링될 수 있다.
예시적인 실시예에 따르면, 기본 정점 사이의 에지가 인코더와 디코더 측 모두에서 동일한 알고리즘을 사용하여 먼저 도출된다. 그런 다음 기본 메시 정점의 원래의 연결성과 비교하여, 도출된 에지와 실제 에지 간의 차이가 시그널링될 것이다. 따라서 차이를 디코딩한 후, 기본 정점의 원래 연결성을 복원할 수 있다.
일 예에서, 도출된 에지의 경우, 원래의 에지와 비교할 때 잘못된 것으로 결정되면, 이러한 정보는 (이 에지를 형성하는 정점 쌍을 지시하는 것에 의해) 비트스트림에서 시그널링될 수 있으며; 원래 에지의 경우, 도출되지 않으면, (이 에지를 형성하는 정점 쌍을 지시하는 것에 의해) 비트스트림에서 시그널링될 수 있다. 또한, 경계 에지에 대한 연결성과 경계 에지를 포함하는 정점 보간은 내부 정점 및 에지와 별도로 수행될 수 있다.
따라서, 본 명세서에 설명된 예시적인 실시예에 의해, 위에서 언급된 기술적 문제는 이러한 기술적 솔루션 중 하나 이상에 의해 유리하게 개선될 수 있다. 예를 들어, 동적 메시 시퀀스는 시간에 따라 변하는 상당한 양의 정보로 구성될 수 있기 때문에 많은 양의 데이터가 필요할 수 있으므로, 여기서 설명하는 예시적인 실시예는 그러한 콘텐츠를 저장하고 전송하기 위한 적어도 효율적인 압축 기술을 나타낸다.
전술한 기술은, 컴퓨터가 판독 가능한 명령어를 사용하며, 하나 이상의 컴퓨터가 판독 가능한 매체에 물리적으로 저장되거나 구체적으로 하나 이상의 하드웨어 프로세서에 의해 구성된 컴퓨터 소프트웨어로서 구현될 수 있다. 예를 들어, 도 27은 개시된 주제의 특정 실시예를 구현하기에 적합한 컴퓨터 시스템(2600)을 도시한다.
컴퓨터 소프트웨어는 임의의 적합한 머신 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있으며, 이는 컴퓨터 중앙 처리 유닛(central processing unit, CPU), 그래픽 처리 유닛(Graphics Processing Unit, GPU) 등에 의해, 직접 또는 해석(interpretation), 마이크로 코드 실행 등을 통해 실행될 수 있는 명령어를 포함하는 코드를 생성하도록 어셈블리, 컴파일, 링킹(linking) 또는 유사한 메커니즘의 적용을 받을 수 있다.
명령어는 예를 들어 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트 폰, 게임 디바이스, 사물 인터넷 디바이스 등을 포함하는 다양한 유형의 컴퓨터 또는 그 컴포넌트에서 실행될 수 있다.
컴퓨터 시스템(2700)에 대해 도 27에 도시된 컴포넌트는 본질적으로 예시적인 것이며, 본 개시의 실시예를 구현하는 컴퓨터 소프트웨어의 사용 또는 기능의 범위에 대한 어떠한 제한도 제안하도록 의도되지 않는다. 컴포넌트의 구성은 컴퓨터 시스템(2700)의 예시적인 실시예에 예시된 컴포넌트 중 임의의 하나 또는 조합과 관련된 임의의 종속성 또는 요건을 갖는 것으로 해석되어서는 안된다.
컴퓨터 시스템(2700)은 특정한 휴먼 인터페이스 입력 디바이스를 포함할 수 있다. 이러한 휴먼 인터페이스 입력 디바이스는 예를 들어, 촉각 입력(예: 키스트로크(keystroke), 스와이프, 데이터 글러브 움직임), 오디오 입력(예: 음성, 박수), 시각적 입력(예: 제스처), 후각 입력(도시되지 않음)을 통해 한 명 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 휴먼 인터페이스 디바이스는 또한 오디오(예: 음성, 음악, 주변 소리), 이미지(예: 스캔된 이미지, 정지 이미지 카메라로부터 획득하는 사진 이미지), 비디오(예: 2차원 비디오, 입체 비디오를 포함한 3차원 비디오)와 같이 인간의 의식적 입력과 직접 관련이 없는 특정 미디어를 캡처하는 데 사용될 수도 있다.
입력 휴먼 인터페이스 디바이스는 키보드(2701), 마우스(2702), 트랙패드(2703), 터치 스크린(2710), 조이스틱(2705), 마이크(2706), 스캐너(2708), 및 카메라(2707) 중 하나 이상(각 도시된 것 중 하나만)을 포함할 수 있다.
컴퓨터 시스템(2700)은 또한 특정 휴먼 인터페이스 출력 디바이스를 포함할 수 있다. 이러한 휴먼 인터페이스 출력 디바이스는 예를 들어 촉각 출력, 소리, 빛 및 냄새/맛을 통해 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 휴먼 인터페이스 출력 디바이스는, 촉각 출력 디바이스(예를 들어, 터치 스크린(2710), 또는 조이스틱(2705)에 의한 촉각 피드백을 포함하지만, 입력 디바이스로서 기능하지 않는 촉각 피드백 디바이스가 있을 수도 있음), 오디오 출력 디바이스(예: 스피커(2709), 헤드폰(도시되지 않음)), 시각 출력 디바이스(예: CRT 스크린, LCD 스크린, 플라즈마 스크린, OLED 스크린을 포함하는 스크린(2710)를 포함하며, 이들 각각은 터치 스크린 입력 능력을 가지고 있을 수도 없을 수도 있고, 이들 각각은 촉각 피드백 능력을 가지고 있을 수도 없을 수도 있으며, 일부는 2차원 시각 출력 또는 가상 현실 안경(도시되지 않음), 홀로그래픽 디스플레이 및 스모크 탱크(smoke tank, 도시되지 않음)의 스테레오그래픽 출력과 같은 수단을 통한 3차원 출력이 가능함), 및 프린터(도시되지 않음)를 포함할 수 있다.
컴퓨터 시스템(2700)은 또한 사람이 액세스할 수 있는 저장 디바이스 및 이와 연관된 매체로서, CD/DVD(2711)를 가진 CD/DVD ROM/RW(2720) 또는 이와 유사한 매체를 포함하는 광학 매체, 썸 드라이브(thumb-driver)(2722), 탈착식 하드 드라이브 또는 솔리드 스테이트 드라이브(2723), 테이프 및 플로피 디스크(도시되지 않음)와 같은 레거시 자기 매체, 보안 동글(도시되지 않음)과 같은 특수 ROM/ASIC/PLD 기반 디바이스 등을 포함한다.
당업자는 또한 현재 개시된 주제와 관련하여 사용되는 용어 "컴퓨터가 판독 가능한 매체"가 전송 매체, 반송파, 또는 다른 일시적 신호를 포함하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(2700)은 또한 하나 이상의 통신 네트워크(2798)에 대한 인터페이스(2799)를 포함할 수 있다. 네트워크(2798)는 예를 들어 무선, 유선, 광일 수 있다. 네트워크(2798)는 또한 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연 허용 등일 수 있다. 네트워크(2798)의 예로는 이더넷과 같은 근거리 네트워크, 무선 LAN, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크, 케이블 TV, 위성 TV 및 지상파 방송 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크, CANBus를 포함하는 차량 및 산업용 등이 포함된다. 특정 네트워크(2798)는 일반적으로 특정 범용 데이터 포트 또는 주변기기 버스(2750, 2751)(예를 들어, 컴퓨터 시스템(2700)의 USB 포트)에 부착된 외부 네트워크 인터페이스 어댑터를 필요로 하며; 다른 것들은 아래에서 설명된 바와 같이, 일반적으로 시스템 버스에 부착되는 것(예를 들어, PC 컴퓨터 시스템에 대한 이더넷 인터페이스 또는 스마트 폰 컴퓨터 시스템에 대한 셀룰러 네트워크 인터페이스)에 의해 컴퓨터 시스템(2700)의 코어에 통합된다. 이러한 네트워크(2798) 중 임의의 것을 사용하여 컴퓨터 시스템(2700)은 다른 엔티티와 통신할 수 있다. 이러한 통신은 예를 들어, 로컬 또는 광역 디지털 네트워크를 사용하여 다른 컴퓨터 시스템에 대한, 단방향, 수신 전용(예를 들어, 방송 TV), 단방향 송신 전용(예를 들어, CANbus에서 특정 CANbus 디바이스로) 또는 양방향일 수 있다. 특정 프로토콜 및 프로토콜 스택이 위에서 설명한 바와 같이 네트워크 및 네트워크 인터페이스 각각에서 사용될 수 있다.
전술한 휴먼 인터페이스 디바이스, 사람이 액세스할 수 있는 저장 디바이스 및 네트워크 인터페이스는 컴퓨터 시스템(2700)의 코어(2740)에 부착될 수 있다.
코어(2740)는 하나 이상의 중앙 처리 유닛(Central Processing Unit, CPU)(2741), 그래픽 처리 유닛(Graphics Processing Unit, GPU)(2742), 그래픽 어댑터(2717), FPGA(Field Programmable Gate Areas) 형태의 특수 프로그래머블 처리 유닛(2743), 특정 태스크에 대한 하드웨어 가속기(2744) 등을 포함할 수 있다. 읽기 전용 메모리(Read-only memory, ROM)(2745), 랜덤 액세스 메모리(2746), 내부 비 사용자 액세스 가능 하드 드라이브, SSD 등과 같은 내부 대용량 스토리지(2747)와 함께 이러한 디바이스는 시스템 버스(2748)를 통해 연결될 수 있다. 일부 컴퓨터 시스템에서, 시스템 버스(2748)는 추가 CPU, GPU 등에 의한 확장을 가능하게 하기 위해 하나 이상의 물리적 플러그의 형태로 액세스할 수 있다. 주변 디바이스는 코어의 시스템 버스(2748)에 직접 또는 주변기기 버스(2749)를 통해 부착될 수 있다. 주변 버스의 아키텍처에는 PCI, USB 등이 포함된다.
CPU(2741), GPU(2742), FPGA(2743), 및 가속기(2744)는 조합하여 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령어를 실행할 수 있다. 이 컴퓨터 코드는 ROM(2745) 또는 RAM(2746)에 저장될 수 있다. 과도기 데이터(transitional data)는 RAM(2746)에 저장될 수도 있지만 영구(permanent) 데이터는 예를 들어 내부 대용량 스토리지(2747)에 저장될 수 있다. 하나 이상의 CPU(2741), GPU(2742), 대용량 스토리지(2747), ROM(2745), RAM(2746) 등과 밀접하게 연관될 수 있는 캐시 메모리의 사용을 통해 임의의 메모리 디바이스에 대한 빠른 저장 및 검색을 가능하게 할 수 있다.
컴퓨터가 판독 가능한 매체는 다양한 컴퓨터 구현 작동을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시의 목적을 위해 특별히 설계되고 구성된 것이거나, 컴퓨터 소프트웨어 분야의 숙련자에게 잘 알려져 있고 이용 가능한 종류일 수 있다.
제한의 방식이 아닌 예로서, 아키텍처(2700)를 갖는 컴퓨터 시스템, 특히 코어(2740)는 하나 이상의 유형의 컴퓨터가 판독 가능한 매체에 구현된 소프트웨어를 실행하는 프로세서(들)(CPU, GPU, FPGA, 가속기 등을 포함)의 결과로서 기능을 제공할 수 있다. 이러한 컴퓨터가 판독 가능한 매체는 위에서 소개된 사용자 액세스 가능 대용량 스토리지 또는 코어 내부 대용량 스토리지(2747) 또는 ROM(2745)과 같은 비 일시적 특성을 가진 코어(2740)의 특정 스토리지와 관련된 매체일 수 있다. 본 개시의 다양한 실시예를 구현하는 소프트웨어는 이러한 디바이스에 저장되고 코어(2740)에 의해 실행될 수 있다. 컴퓨터가 판독 가능한 매체는 특정 필요성에 따라 하나 이상의 메모리 디바이스 또는 칩을 포함할 수 있다. 소프트웨어는 코어(2740) 및 특히 그 안의 프로세서(CPU, GPU, FPGA 등을 포함)가 RAM(2746)에 저장된 데이터 구조를 정의하는 것과 소프트웨어에서 정의한 프로세스에 따라 이러한 데이터 구조를 수정하는 것을 포함하여, 여기에 설명된 특정 프로세스 또는 특정 프로세스의 일부를 실행하도록 할 수 있다. 추가로 또는 대안으로, 컴퓨터 시스템은 여기에 설명된 특정 프로세스나 특정 프로세스의 특정 부분을 실행하기 위해 소프트웨어 대신 또는 소프트웨어와 함께 작동할 수 있는 회로(예를 들어, 가속기(2744))에 배선(hardwired)되거나 구현된 로직의 결과로 기능을 제공할 수 있다. 소프트웨어에 대한 참조는 로직을 포함할 수 있으며 적절한 경우에 그 반대도 마찬가지이다. 컴퓨터가 판독 가능한 매체에 대한 참조는 실행을 위한 소프트웨어를 저장하는 회로(예: 집적 회로(IC)), 실행을 위한 로직을 구현하는 회로 또는 적절한 경우 둘 다를 포함할 수 있다. 본 개시는 하드웨어 및 소프트웨어의 임의의 적절한 조합을 포괄한다.
본 개시는 몇몇 예시적인 실시예를 설명했지만, 개시의 범위 내에 속하는 변경, 순열 및 다양한 대체 등가물이 있다. 따라서, 당업자는 여기에서 명시적으로 도시되거나 설명되지는 않았지만 본 개시의 원리를 구현하고 따라서 본 개시의 사상 및 범위 내에 있는 수많은 시스템 및 방법을 고안할 수 있음을 이해할 것이다.

Claims (20)

  1. 적어도 하나의 프로세서에 의해 수행되는 비디오 코딩 방법으로서,
    적어도 하나의 3차원(three-dimensional, 3D) 시각적 콘텐츠의 볼륨메트릭 데이터를 획득하는 단계;
    상기 볼륨메트릭 데이터의 적어도 하나의 프레임으로부터 복수의 제1 정점을 포함하는 메시의 제1 레이어를 도출하는 단계;
    상기 제1 레이어의 복수의 정점 중 일부 정점들로부터 상기 메시의 제2 레이어의 복수의 제2 정점 중 일부 정점들 각각으로의 변위 벡터를 결정하는 단계 - 상기 복수의 제2 정점의 총 수량이 상기 복수의 제1 정점의 총 수량보다 큼 -; 및
    상기 변위 벡터에 기반하여 상기 볼륨메트릭 데이터를 시그널링하는 단계
    를 포함하는 비디오 코딩 방법.
  2. 제1항에 있어서,
    상기 메시의 제2 레이어의 복수의 제2 정점으로부터 그리고 상기 메시의 제2 레이어의 복수의 다른 정점들로부터 제2 변위 벡터를 결정하는 단계; 및
    상기 제2 변위 벡터에 기반하여 상기 볼륨메트릭 데이터를 추가로 시그널링하는 단계
    를 더 포함하는 비디오 코딩 방법.
  3. 제2항에 있어서,
    상기 메시의 제1 레이어는 상기 복수의 제1 정점 중 다른 정점들 각각을 상호 연결하는 직선에 의해 정의되는 다각형을 포함하고,
    상기 복수의 제1 정점 중 상기 일부 정점들은 상기 복수의 제1 정점 중 상기 다른 정점들 각각을 상호 연결하는 직선들에 각각 배열되는, 비디오 코딩 방법.
  4. 제3항에 있어서,
    상기 복수의 제1 정점 중 상기 다른 정점들은 디코딩된 정점이고,
    상기 복수의 제1 정점 중 상기 일부 정점들은 보간된 정점이며,
    상기 다각형은 상기 메시의 제1 레이어의 경계를 정의하는, 비디오 코딩 방법.
  5. 제3항에 있어서,
    상기 메시의 제2 레이어는, 상기 메시의 제2 레이어의 복수의 제2 정점을 상기 메시의 제1 레이어의 복수의 제1 정점 중 상기 다른 정점들과 상호 연결하는 제2 직선에 의해 각각 정의된 복수의 제2 다각형을 포함하는, 비디오 코딩 방법.
  6. 제5항에 있어서,
    상기 복수의 제2 정점 중 적어도 하나는 상기 다각형의 경계 내에 있는, 비디오 코딩 방법.
  7. 제6항에 있어서,
    상기 복수의 제2 정점 각각은 상기 다각형의 경계 내에 있는, 비디오 코딩 방법.
  8. 제5항에 있어서,
    상기 제2 다각형은 각각 전체적으로 상기 다각형의 경계 내에 있는, 비디오 코딩 방법.
  9. 제5항에 있어서,
    상기 복수의 제2 정점 중 적어도 하나는 상기 다각형의 경계 외부에 있는, 비디오 코딩 방법.
  10. 제9항에 있어서,
    상기 제2 다각형 중 하나의 적어도 일부는 상기 다각형의 경계 외부에 있는, 비디오 코딩 방법.
  11. 비디오 코딩 장치로서,
    컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및
    상기 컴퓨터 프로그램 코드에 액세스하고 상기 컴퓨터 프로그램 코드에 의해 명령된 대로 작동하도록 구성된 적어도 하나의 프로세서
    를 포함하고,
    상기 컴퓨터 프로그램 코드는:
    상기 적어도 하나의 프로세서가 적어도 하나의 3차원(three-dimensional, 3D) 시각적 콘텐츠의 볼륨메트릭 데이터를 획득하게 하도록 구성된 획득 코드;
    상기 적어도 하나의 프로세서가 상기 볼륨메트릭 데이터의 적어도 하나의 프레임으로부터 복수의 제1 정점을 포함하는 메시의 제1 레이어를 도출하게 하도록 구성된 도출 코드;
    상기 적어도 하나의 프로세서가 상기 제1 레이어의 복수의 정점 중 일부 정점들로부터 상기 메시의 제2 레이어의 복수의 제2 정점 중 일부 정점들 각각으로의 변위 벡터를 결정하게 하도록 구성된 결정 코드 - 상기 복수의 제2 정점의 총 수량은 상기 복수의 제1 정점의 총 수량보다 큼 -; 및
    상기 적어도 하나의 프로세서가 상기 변위 벡터에 기반하여 상기 볼륨메트릭 데이터를 시그널링하게 하도록 구성된 시그널링 코드
    를 포함하는, 비디오 코딩 장치.
  12. 제11항에 있어서,
    상기 결정 코드는 추가로, 상기 적어도 하나의 프로세서가 상기 메시의 제2 레이어의 복수의 제2 정점으로부터 그리고 상기 메시의 제2 레이어의 복수의 다른 정점들로부터 제2 변위 벡터를 결정하게 하도록 구성되고,
    상기 시그널링 코드는 추가로, 상기 적어도 하나의 프로세서가 상기 제2 변위 벡터에 기반하여 상기 볼륨메트릭 데이터를 시그널링하게 하도록 구성되는, 비디오 코딩 장치.
  13. 제12항에 있어서,
    상기 메시의 제1 레이어는 상기 복수의 제1 정점 중 다른 정점들 각각을 상호 연결하는 직선에 의해 정의되는 다각형을 포함하고,
    상기 복수의 제1 정점 중 상기 일부 정점들은 상기 복수의 제1 정점 중 상기 다른 정점들 각각을 상호 연결하는 직선들에 각각 배열되는, 비디오 코딩 장치.
  14. 제13항에 있어서,
    상기 복수의 제1 정점 중 상기 다른 정점들은 디코딩된 정점이고,
    상기 복수의 제1 정점 중 상기 일부 정점들은 보간된 정점이며,
    상기 다각형은 상기 메시의 제1 레이어의 경계를 정의하는, 비디오 코딩 장치.
  15. 제13항에 있어서,
    상기 메시의 제2 레이어는 상기 메시의 제2 레이어의 복수의 제2 정점을 상기 메시의 제1 레이어의 복수의 제1 정점 중 상기 다른 정점들과 상호 연결하는 제2 직선에 의해 각각 정의된 복수의 제2 다각형을 포함하는, 비디오 코딩 장치.
  16. 제15항에 있어서,
    상기 복수의 제2 정점 중 적어도 하나는 상기 다각형의 경계 내에 있는, 비디오 코딩 장치.
  17. 제16항에 있어서,
    상기 복수의 제2 정점 각각은 상기 다각형의 경계 내에 있는, 비디오 코딩 장치.
  18. 제15항에 있어서,
    상기 제2 다각형은 각각 전체적으로 상기 다각형의 경계 내에 있는, 비디오 코딩 장치.
  19. 제15항에 있어서,
    상기 복수의 제2 정점 중 적어도 하나는 상기 다각형의 경계 외부에 있는, 비디오 코딩 장치.
  20. 프로그램을 저장하는, 컴퓨터가 판독 가능한 비일시적 매체로서,
    상기 프로그램은 컴퓨터가,
    적어도 하나의 3차원(three-dimensional, 3D) 시각적 콘텐츠의 볼륨메트릭 데이터를 획득하고;
    상기 볼륨메트릭 데이터의 적어도 하나의 프레임으로부터 복수의 제1 정점을 포함하는 메시의 제1 레이어를 도출하며;
    상기 제1 레이어의 복수의 정점 중 일부 정점들로부터 상기 메시의 제2 레이어의 복수의 제2 정점 중 일부 정점들 각각으로의 변위 벡터를 결정하고 - 상기 복수의 제2 정점의 총 수량이 상기 복수의 제1 정점의 총 수량보다 큼 -; 그리고
    상기 변위 벡터에 기반하여 상기 볼륨메트릭 데이터를 시그널링하게 하는, 컴퓨터가 판독 가능한 비일시적 매체.
KR1020247019050A 2022-06-17 2023-05-05 디코딩된 이웃에 기반한 정점 예측 KR20240108449A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63/353,312 2022-06-17
US18/312,265 2023-05-04

Publications (1)

Publication Number Publication Date
KR20240108449A true KR20240108449A (ko) 2024-07-09

Family

ID=

Similar Documents

Publication Publication Date Title
US11582469B2 (en) Method and apparatus for point cloud coding
US11783512B2 (en) Attribute value of reconstructed position associated with plural original points
JP7262602B2 (ja) 一般化されたtrisoupジオメトリ符号化のための技術
US11210813B2 (en) Method and apparatus for point cloud compression
US20230107834A1 (en) Method and apparatus of adaptive sampling for mesh compression by encoders
US20230412842A1 (en) Vertex prediction based on decoded neighbors
US20230342983A1 (en) Vertex prediction based on mesh triangulation derivation
US20230388544A1 (en) Dynamic mesh compression using inter and intra prediction
KR20240108449A (ko) 디코딩된 이웃에 기반한 정점 예측
RU2782251C1 (ru) Способы и устройство для обобщенного кодирования геометрии с треугольной сеткой
US11922664B2 (en) Method and apparatus of adaptive sampling for mesh compression by decoders
US11948336B2 (en) Method and apparatus for point cloud coding
JP7504298B2 (ja) 3次元(3d)メッシュのuv座標を処理するための方法、装置及びコンピュータプログラム
US20240137564A1 (en) Fast computation of local coordinate system for displacement vectors in mesh coding
US20240236352A1 (en) Bitstream syntax for mesh motion field coding
US20230014820A1 (en) Methods and apparatuses for dynamic mesh compression
US20240233271A1 (en) Bitstream syntax for mesh displacement coding
KR20240093874A (ko) 인터 및 인트라 예측을 사용한 동적 메시 압축
KR20240108466A (ko) 동적 메시 압축에서의 모션 필드 코딩
WO2024010647A1 (en) Adaptive quantization for instance-based mesh coding
WO2024147806A1 (en) Bitstream syntax for mesh displacement coding
WO2024147805A1 (en) Vertices grouping in mesh motion vector coding
WO2024025638A1 (en) Methods for instance-based mesh coding
JP2023552414A (ja) メッシュ圧縮のための頂点の並べ替え