KR20240105416A - Uv 좌표 범위 및 텍스처 맵 크기 - Google Patents

Uv 좌표 범위 및 텍스처 맵 크기 Download PDF

Info

Publication number
KR20240105416A
KR20240105416A KR1020247018720A KR20247018720A KR20240105416A KR 20240105416 A KR20240105416 A KR 20240105416A KR 1020247018720 A KR1020247018720 A KR 1020247018720A KR 20247018720 A KR20247018720 A KR 20247018720A KR 20240105416 A KR20240105416 A KR 20240105416A
Authority
KR
South Korea
Prior art keywords
coordinates
vertices
coordinate
factor
individual
Prior art date
Application number
KR1020247018720A
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 KR20240105416A publication Critical patent/KR20240105416A/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
    • 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/186Methods 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 a colour or a chrominance component

Abstract

메시의 코딩 정보가 수신된다. 상기 코딩 정보는 복수의 정점에 대응하는 복수의 제1 좌표와 복수의 제2 좌표, 및 상기 메시와 연관된 텍스처 맵을 포함한다. 상기 복수의 정점 각각과 연관된 개개의 제1 좌표와 개개의 제2 좌표는 제1 인자에 기초하여 상기 개개의 제1 좌표를 조정하고 제2 인자에 기초하여 상기 개개의 제2 좌표를 조정함으로써 정규화된다. 상기 제1 인자와 상기 제2 인자는 (i) 상기 제1 좌표와 상기 제2 좌표의 코딩된 범위를 지시하는 비트 심도 값 및 (ii) 상기 텍스처 맵의 크기 중 적어도 하나와 연관된다. 상기 제1 인자와 상기 제2 인자 각각에 기초하여, 상기 정규화된 개개의 제1 좌표와 상기 정규화된 개개의 제2 좌표가 확장된다.

Description

UV 좌표 범위 및 텍스처 맵 크기
참조에 의한 통합
본 출원은 2022년 8월 23일에 출원된 "On UV Coordinate Ranges and Texture Map Size(UV 좌표 범위 및 텍스처 맵 크기에 대하여)"라는 명칭의 미국 가출원 제63/400,361호 대한 우선권의 이익을 주장하는, 2023년 6월 9일에 출원된 UV COORDINATE RANGES AND TEXTURE MAP SIZE(UV 좌표 범위 및 텍스처 맵 크기)"라는 명칭의 미국 특허출원 제18/208,152호에 대한 우선권의 이익을 주장한다. 이들 선행 출원의 개시내용은 그 전체가 참조에 의해 본 출원에 포함된다.
본 개시는 메시 처리에 관련된 실시예를 포함한다.
여기에 제공된 배경 설명은 본 개시의 맥락을 일반적으로 제시하기 위한 것이다. 현재 지명된 발명자들의 저작물은, 이 배경기술 섹션에 저작물이 기재되어 있는 범위 내에서 뿐만 아니라, 출원 당시 선행 기술로 인정되지 않을 수 있는 설명의 측면들은 명시적으로도 묵시적으로도 본 개시의 선행 기술로 인정되지 않는다.
3차원(3D) 캡처, 모델링 및 렌더링의 발전은 다양한 플랫폼과 디바이스에 걸쳐 3D 콘텐츠가 어디에나 존재하도록(ubiquitous presence) 촉진시켰다. 요즘에는 한 대륙에서 아기의 첫 걸음을 포착하고 다른 대륙에서 아기의 조부모가 그 아이와 함께 완전한 몰입형 경험(full immersive experience)을 보고(경우에 따라서는 상호작용하고) 즐길 수 있도록 해준다. 이러한 현실성을 달성하기 위해, 모델은 점점 더 정교해지고 있으며, 이러한 모델의 생성 및 소비에는 상당한 양의 데이터가 연결되어 있다. 이러한 몰입형 콘텐츠를 표현하기 위해 3D 메시가 널리 사용된다.
본 개시의 측면들은 메시 처리를 위한 방법 및 장치를 제공한다. 몇몇 예에서, 메시를 처리하기 위한 장치는 처리 회로를 포함한다.
본 개시의 일 측면에 따르면, 디코더에서 수행되는 메시 처리 방법이 제공된다. 상기 메시 처리 방법에서는 복수의 정점을 포함하는 메시의 코딩 정보를 수신한다. 상기 코딩 정보는 상기 복수의 정점에 대응하는 복수의 제1 좌표와 복수의 제2 좌표, 및 상기 메시와 연관된 텍스처 맵을 포함을 한다. 상기 텍스처 맵은 상기 메시의 텍스처 정보를 지시한다. 상기 복수의 정점 중 각각의 정점은 개개의 제1 좌표 및 개개의 제2 좌표를 포함하여 이를 조합하여 각각의 정점의 포지션을 고유하게 식별할 수 있도록 한다. 상기 각각의 정점과 연관된 개개의 제1 좌표와 개개의 제2 좌표는 제1 인자(factor)에 기초하여 상기 개개의 제1 좌표를 조정하고 제2 인자에 기초하여 상기 개개의 제2 좌표를 조정함으로써 정규화된다. 상기 제1 인자와 상기 제2 인자는 (i) 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 코딩된 범위를 지시하는 비트 심도 값 및 (ii) 상기 텍스처 맵의 크기 중 적어도 하나와 연관된다. 정규화된 개개의 제1 좌표와 정규화된 개개의 제2 좌표는 상기 제1 인자와 상기 제2 인자 각각에 기초하여 확장된다. 상기 정규화 및 확장된 제1 좌표와, 상기 정규화 및 확장된 제2 좌표에 기초하여 상기 메시가 재구축된다.
몇몇 실시예에서, 상기 개개의 제1 좌표 및 상기 개개의 제2 좌표를 정규화하기 위해, 상기 복수의 정점의 상기 제1 좌표 각각은 상기 제1 인자에 포함된 제1 제수(divider)로 나뉜다. 상기 복수의 정점의 상기 제2 좌표 각각은 상기 제2 인자에 포함된 제2 제수로 나뉜다. 상기 개개의 제1 좌표 및 상기 개개의 제2 좌표를 확장하기 위해, 상기 복수의 정점의 상기 정규화된 제1 좌표 각각에 상기 제1 인자에 포함된 제1 승수(multiplier)가 더 곱해진다. 상기 복수의 정점의 상기 정규화된 제2 좌표 각각에 상기 제2 인자에 포함된 제2 승수가 더 곱해진다.
일 실시예에서, 상기 제1 인자는 (texwidth - 1) / (2tqp - 1)과 같다. 상기 texwidth는 텍스처 맵의 너비이고, 상기 tqp는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 코딩된 범위를 지시하는 상기 비트 심도 값이다. 상기 제2 인자는 (texheight - 1) / (2tqp - 1)과 같으며, 상기 texheight는 텍스처 맵의 높이이다.
일 실시예에서, 상기 제1 인자는 제1 분수이고, 상기 제1 좌표 각각은 상기 제1 분수의 분모로 정규화되고 상기 제1 분수의 분자로 확장된다. 상기 제2 인자는 제2 분수이고, 상기 제2 좌표 각각은 상기 제2 분수의 분모로 정규화되고 상기 제2 분수의 분자로 확장된다.
일 실시예에서, 사용 불가능한 상기 텍스처 맵의 크기에 기초하여, 상기 제1 인자와 상기 제2 인자는 모두 (2tdepth - 1) / (2tqp - 1)과 같다. 상기 tdepth는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 초기 범위를 지시하는 비트 심도 값이다. 상기 tqp는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 코딩된 범위를 지시하는 상기 비트 심도 값이다.
일 실시예에서, 상기 제1 인자는 (uMax / (2tqp - 1))과 같다. 상기 uMax는 제1 상수이고, 상기 tqp는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 코딩된 범위를 지시하는 상기 비트 심도 값이다. 상기 제2 인자는 (vMax / (2tqp - 1))과 같고, 상기 vMax는 제2 상수이다.
일례에서, 상기 uMax는 상기 텍스처 맵의 너비에서 1을 뺀 것과 같다. 상기 vMax는 상기 텍스처 맵의 높이에서 1을 뺀 것과 같다.
일례에서, 상기 사용 불가능한 텍스처 맵의 크기에 기초하여, 상기 uMax와 상기 vMax는 모두 2tdepth에서 1을 뺀 것과 같다. 상기 tdepth는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 초기 범위를 지시하는 비트 심도 값이다.
일례에서, 상기 uMax와 상기 vMax는 모두 2tdepth에서 1을 뺀 것과 같고, 상기 tdepth는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 초기 범위를 지시하는 비트 심도 값이다.
본 개시의 다른 측면에 따르면, 장치가 제공된다. 상기 장치는 처리 회로를 포함한다. 상기 처리 회로는 전술한 메시 처리 방법 중 어느 것을 수행하도록 구성될 수 있다.
본 개시의 측면들은 또한 명령어를 저장하는, 컴퓨터로 판독 가능한 비일시적 매체를 제공하며, 상기 명령어는 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 전술한 메시 처리 방법 중 어느 것을 수행하게 한다.
개시된 주제의 추가 특징, 성질 및 다양한 이점은 이하의 상세한 설명 및 첨부 도면으로부터 더욱 명백해질 것이다:
도 1은 통신 시스템(100)의 예시적인 블록도의 개략도이다.
도 2는 디코더의 예시적인 블록도의 개략도이다.
도 3은 인코더의 예시적인 블록도의 개략도이다.
도 4는 본 개시 내용의 몇몇 실시예에 따른 예시적인 UV 좌표 범위 조작의 개략도이다.
도 5는 본 개시의 몇몇 실시예에 따른 프로세스의 개요를 설명하는 흐름도를 도시한다.
도 6은 일 실시예에 따른 컴퓨터 시스템의 개략도이다.
도 1는 몇몇 예에서의 비디오 처리 시스템(100)의 블록도를 도시한다. 비디오 처리 시스템(100)은 개시된 주제에 대한 애플리케이션의 일례로서, 스트리밍 환경에서의 비디오 인코더 및 비디오 디코더이다. 개시된 주제는 예를 들어, 화상 회의, 디지털 TV, 스트리밍 서비스, CD, DVD, 메모리 스틱 등을 포함하는 디지털 미디어상의 압축된 비디오의 저장을 포함한, 다른 이미지 및 비디오 지원 애플리케이션(video enabled application)에도 동일하게 적용될 수 있다.
비디오 처리 시스템(100)은 비디오 소스(101)를 포함할 수 있는 캡처 서브시스템(113)을 포함한다. 비디오 소스(101)는 카메라에 의해 캡처되는 및/또는 컴퓨터에 의해 생성되는 하나 이상의 이미지를 포함할 수 있다. 예를 들어 디지털 카메라는 압축되지 않은 비디오 픽처의 스트림(102)을 생성할 수 있다. 일례에서, 비디오 픽처의 스트림(102)은 디지털 카메라로 촬영된 샘플을 포함한다. 인코딩된 비디오 데이터(104)(또는 코딩된 비디오 비트스트림)와 비교할 때 높은 데이터 볼륨을 강조하기 위해 굵은 선으로 표시된 비디오 픽처의 스트림(102)은 비디오 소스(101)에 결합된 비디오 인코더(103)를 포함하는 전자 디바이스(120)에 의해 처리될 수 있다. 비디오 인코더(103)는 아래에서 더 상세히 설명되는 바와 같이 개시된 주제의 측면들을 가능하게 하거나 구현할 수 있는 하드웨어, 소프트웨어, 또는 이들의 조합을 포함할 수 있다. 인코딩된 비디오 데이터(104)(또는 인코딩된 비디오 비트스트림)는 비디오 픽처의 스트림(102)과 비교할 때 더 낮은 데이터 볼륨을 강조하기 위해 가는 선으로 표시되고, 나중에 사용하기 위해 스트리밍 서버(105)에 저장될 수 있다. 도 1에서의 클라이언트 서브시스템(106, 408)과 같은, 하나 이상의 스트리밍 클라이언트 서브시스템은 인코딩된 비디오 데이터(104)의 사본(107, 409)을 검색하기 위해 스트리밍 서버(105)에 액세스할 수 있다. 클라이언트 서브시스템(106)은 예를 들어, 전자 디바이스(130)에 비디오 디코더(110)를 포함할 수 있다. 비디오 디코더(110)는 인코딩된 비디오 데이터의 인커밍 사본(incoming copy)(107)을 디코딩하여 디스플레이(112)(예컨대, 디스플레이 스크린) 또는 다른 렌더링 디바이스(도시되지 않음)에 렌더링될 수 있는 비디오 픽처(111)의 아웃고잉 스트림을 생성한다. 일부 스트리밍 시스템에서, 인코딩된 비디오 데이터(104, 107, 109)(예컨대, 비디오 비트스트림)은 특정 비디오 코딩/압축 표준에 따라 인코딩될 수 있다. 이러한 표준의 예로는 ITU-T Recommendation H.265를 포함한다. 일례에서, 개발중인 비디오 코딩 표준은 비공식적으로 VVC(Versatile Video Coding)로 알려져 있다. 개시된 주제는 VVC의 컨텍스트에서 사용될 수 있다.
전자 디바이스(120, 130)는 다른 컴포넌트(도시되지 않음)를 포함할 수 있음에 유의한다. 예를 들어, 전자 디바이스(120)는 비디오 디코더(도시되지 않음)를 포함할 수 있고, 전자 디바이스(130)는 비디오 인코더(도시되지 않음)를 포함할 수 있다.
도 2는 비디오 디코더(210)의 예시적인 블록도를 도시한다. 비디오 디코더(210)는 전자 디바이스(230)에 포함될 수 있다. 전자 디바이스(230)는 수신기(231)를 포함할 수 있다. 수신기(231)는 네트워크 인터페이스 회로와 같은, 수신 회로를 포함할 수 있다. 비디오 디코더(210)는 도 1의 예에서의 비디오 디코더(110) 대신에 사용될 수 있다.
수신기(231)는 비디오 디코더(210)에 의해 디코딩될 하나 이상의 코딩된 비디오 시퀀스를 수신할 수 있다. 일 실시예에서, 하나의 코딩된 비디오 시퀀스는 한 번에 수신되며, 여기서 각각의 코딩된 비디오 시퀀스의 디코딩은 다른 코딩된 비디오 시퀀스의 디코딩과 독립적이다. 코딩된 비디오 시퀀스는 인코딩된 비디오 데이터를 저장하는 저장 디바이스에 대한 하드웨어/소프트웨어 링크일 수 있는 채널(201)로부터 수신될 수 있다. 수신기(231)는 각자의 사용 엔티티(도시되지 않음)에 포워딩될 수 있는 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림과 함께, 인코딩된 비디오 데이터를 수신할 수 있다. 수신기(231)는 코딩된 비디오 시퀀스를 다른 데이터와 분리할 수 있다. 네트워크 지터(network jitter)를 방지하기 위해, 버퍼 메모리(215)가 수신기(231)과 엔트로피 디코더/파서(220)(이하 "파서(220)") 사이에 배치될 수 있다. 특정 애플리케이션에서, 버퍼 메모리(215)는 비디오 디코더(210)의 일부이다. 다른 애플리케이션에서, 버퍼 메모리는 비디오 디코더(210)(도시되지 않음)의 외부에 있을 수 있다. 또 다른 애플리케이션에서, 예를 들어 네트워크 지터를 방지하기 위해 비디오 디코더(210) 외부에 버퍼 메모리(도시되지 않음)가 있을 수 있고, 예를 들어 플레이아웃 타이밍(playout timing)을 처리하기 위해 비디오 디코더(210) 내부에 추가로 다른 버퍼 메모리(215)가 있을 수 있다. 수신기(231)가 충분한 대역폭과 제어성(controllability)을 갖는 저장/포워딩 디바이스로부터 또는 등시성 네트워크(isosynchronous network)로부터 데이터를 수신하고 있을 때, 버퍼 메모리(215)는 필요하지 않거나 작을 수 있다. 인터넷과 같은 최선형 패킷 네트워크(best effort packet network)에서 사용하기 위해, 버퍼 메모리(215)가 필요할 수 있고, 비교적 클 수 있고, 유리하게는 적응적인 크기일 수 있으며, 운영 체제 또는 비디오 디코더(210)의 외부에 유사한 요소(도시되지 않음)에서 적어도 부분적으로 구현될 수 있다.
비디오 디코더(210)는 코딩된 비디오 시퀀스로부터 심볼(221)을 재구축하기 위해 파서(220)를 포함할 수 있다. 이러한 심볼의 카테고리로는 비디오 디코더(210)의 동작을 관리하는 데 사용되는 정보와, 전자 디바이스(230)의 일체화된 부분이 아니지만 도 2에 도시된 바와 같이 전자 디바이스(230)에 결합될 수 있는 렌더 디바이스(212)(예컨대, 디스플레이 스크린)와 같은 렌더링 디바이스를 제어하기 위한 잠재적인 정보를 포함한다. 렌더링 디바이스(들)에 대한 제어 정보는 보충 강화 정보(Supplemental Enhancement Information, SEI) 메시지 또는 비디오 유용성 정보(Video Usability Information, VUI) 파라미터 세트 프래그먼트(도시되지 않음)의 형태일 수 있다. 파서(220)는 수신되는 코딩된 비디오 시퀀스를 파싱/엔트로피 디코딩할 수 있다. 코딩된 비디오 시퀀스의 코딩은 비디오 코딩 기술 또는 표준에 따를 수 있으며, 가변 길이 코딩, Huffman 코딩, 컨텍스트 민감도(context sensitivity)가 있거나 없는 산술 코딩 등을 포함한 다양한 원리를 따를 수 있다. 파서(220)는 비디오 디코더에서의 픽셀의 서브그룹 중 적어도 하나에 대한 서브그룹 파라미터의 세트를, 그 그룹에 대응하는 적어도 하나의 파라미터에 기초하여, 코딩된 비디오 시퀀스로부터 추출할 수 있다. 서브그룹은 픽처의 그룹(Group of Picture, GOP), 픽처, 타일(tile), 슬라이스(slice), 매크로블록(macroblock), 코딩 유닛(Coding Unit, CU), 블록, 변환 유닛(Transform Unit, TU), 예측 유닛(Prediction Unit, PU) 등이 포함될 수 있다. 파서(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)에 사용 가능하게 되는 인 루프(in-loop) 필터 기술을 포함할 수 있다. 비디오 압축은 또한 코딩된 픽처 또는 코딩된 비디오 시퀀스의 이전(디코딩 순서상) 부분을 디코딩하는 동안 획득된 메타 정보에 응답할 수 있을 뿐만 아니라 이전에 재구축되고 루프 필터링된 샘플 값에 응답할 수도 있다.
루프 필터 유닛(256)의 출력은 렌더 디바이스(212)에 출력될 수 있고 미래의 인터 픽처 예측에 사용하기 위해 참조 픽처 메모리(257)에 저장될 수 있는 샘플 스트림일 수 있다.
특정 코딩된 픽처는, 일단 완전히 재구축되면, 나중의 예측을 위한 참조 픽처로서 사용할 수 있다. 예를 들어, 현재 픽처에 대응하는 코딩된 픽처가 완전히 재구축되고 코딩된 픽처가 참조 픽처로 식별되면(예: 파서(220)에 의해), 현재 픽처 버퍼(258)는 참조 픽처 메모리(257)의 일부가 될 수 있고, 새로운 현재 픽처 버퍼는 다음 코딩된 픽처의 재구축을 시작하기 전에 재할당될 수 있다.
비디오 디코더(210)는 ITU-T Rec. H.265와 같은, 미리 정해진 비디오 압축 기술 또는 표준에 따라 디코딩 동작을 수행할 수 있다. 코딩된 비디오 시퀀스는 비디오 압축 기술 또는 표준의 신택스와 비디오 압축 기술 또는 표준에 문서화된 프로파일 모두에 준거한다는 점에서, 사용되는 비디오 압축 기술 또는 표준에 의해 지정된 신택스를 따를 수 있다. 구체적으로, 프로파일(profile)은 비디오 압축 기술 또는 표준에서 사용 가능한 모든 도구 중에서 해당 프로파일에 사용 가능한 유일한 도구로서 특정 도구를 선택할 수 있다. 또한 표준을 준수하기 위해 필요한 것은 코딩된 비디오 시퀀스의 복잡도가 비디오 압축 기술 또는 표준의 레벨에 정의된 범위 내에 있다는 것이다. 경우에 따라서는, 레벨은 최대 픽처 크기, 최대 프레임 레이트, 최대 재구축 샘플 레이트(예를 들어, 초당 메가 샘플로 측정됨), 최대 참조 픽처 크기 등을 제한한다. 레벨에 의해 설정된 제한은, 경우에 따라서는 코딩된 비디오 시퀀스에서 시그널링된 가상 참조 디코더(hypothetical reference decoder, HRD) 버퍼 관리를 위한 HRD 사양 및 메타 데이터를 통해 추가로 제한될 수 있다.
일 실시예에서, 수신기(231)는 인코딩된 비디오와 함께 추가(중복) 데이터를 수신할 수 있다. 추가 데이터는 코딩된 비디오 시퀀스(들)의 일부로서 포함될 수 있다. 추가 데이터는 데이터를 적절하게 디코딩하고/하거나 원본 비디오 데이터를 더 정확하게 재구축하기 위해 비디오 디코더(210)에 의해 사용될 수 있다. 추가 데이터는, 예를 들어 시간 계층, 공간 계층 또는 신호대잡음비(signal noise ratio, SNR 강화 계층(enhancement layer), 중복 슬라이스(redundant slice), 중복 픽처(redundant picture), 순방향 오류 정정 코드(forward error correction code) 등의 형태일 수 있다.
도 3은 비디오 인코더(303)의 예시적인 블록도를 도시한다. 비디오 인코더(303)는 전자 디바이스(320)에 포함된다. 전자 디바이스(320)는 송신기(340)(예컨대, 송신 회로)를 포함한다. 비디오 인코더(303)는 도 1의 예에서의 비디오 인코더(103) 대신에 사용될 수 있다.
비디오 인코더(303)는 비디오 인코더(303)에 의해 코딩될 비디오 이미지(들)를 캡처할 수 있는 비디오 소스(301)(도 3의 예에서 전자 디바이스(320)의 일부가 아님)로부터 비디오 샘플을 수신할 수 있다. 다른 예에서, 비디오 소스(301)는 전자 디바이스(320)의 일부이다.
비디오 소스(301)는 임의의 적절한 비트 심도(예를 들어, 8비트, 10비트, 12비트,…), 임의의 색 공간(color space)(예를 들어, BT.601 Y CrCB, RGB, …) 및 임의의 적절한 샘플링 구조(예를 들어, Y CrCb 4:2:0, Y CrCb 4:4:4)일 수 있는 디지털 비디오 샘플 스트림의 형태로 비디오 인코더(303)에 의해 코딩될 소스 비디오 시퀀스를 제공할 수 있다. 화상 회의 시스템에서, 비디오 소스(301)는 로컬 이미지 정보를 비디오 시퀀스로서 캡처하는 카메라일 수 있다. 비디오 데이터는 순차적으로 보여질 때 움직임을 부여하는 복수의 개별 픽처로서 제공될 수 있다. 픽처 자체는 픽셀의 공간 배열(spatial array)로 구성될 수 있으며, 여기서 각각의 픽셀은 사용중인 샘플링 구조, 색 공간 등에 따라 하나 이상의 샘플을 포함할 수 있다. 아래 설명은 샘플에 중점을 둔다.
일 실시예에 따르면, 비디오 인코더(303)는 소스 비디오 시퀀스의 픽처를 실시간으로 또는 요구에 따라 임의의 다른 시간 제약하에서 코딩된 비디오 시퀀스(343)로 코딩하고 압축할 수 있다. 적절한 코딩 속도를 강제하는 것은 제어기(350)의 한 가지 기능이다. 몇몇 실시예에서, 제어기(350)는 후술되는 바와 같이 다른 기능 유닛을 제어하고 다른 기능 유닛에 기능적으로 결합된다. 명료함을 위해 그 결합은 표시되지 않는다. 제어기(350)에 의해 설정되는 파라미터로는 레이트 제어 관련 파라미터(픽처 스킵, 양자화기, 레이트 왜곡 최적화 기술의 람다 값, …), 픽처 크기, 픽처 그룹(GOP) 레이아웃, 최대 움직임 벡터 검색 범위, 등을 포함할 수 있다. 제어기(350)는 특정 시스템 설계에 최적화된 비디오 인코더(303)에 관련 있는 다른 적절한 기능을 갖도록 구성될 수 있다.
몇몇 실시예에서, 비디오 인코더(303)는 코딩 루프에서 동작하도록 구성된다. 과도하게 단순화된 설명으로서, 일례에서, 코딩 루프는 소스 코더(330)(예컨대, 코딩될 입력 픽처에 기초하여 심볼 스트림과 같은 심볼 및 참조 픽처(들)의 생성을 담당), 및 비디오 인코더(303)에 내장된 (로컬) 디코더(333)를 포함할 수 있다. 디코더(333)는 심볼을 재구축하여 (원격) 디코더도 생성할 것인 유사한 방식으로 샘플 데이터를 생성한다. 재구축된 샘플 스트림(샘플 데이터)은 참조 픽처 메모리(334)에 입력된다. 심볼 스트림의 디코딩은 디코더 위치(로컬 또는 원격)와 무관하게 비트가 정확한 결과(bit-exact result)로 이어지므로, 참조 픽처 메모리(334)의 내용도 로컬 인코더와 원격 인코더 사이에서 비트가 정확하다(bit exact). 다시 말해, 인코더의 예측 부분은 디코딩 동안에 예측을 사용하는 경우에 디코더가 "인식하는(see)" 것과 정확히 동일한 샘플 값을 참조 픽처 샘플로서 "인식한다". 참조 픽처 동시성(reference picture synchronicity)(및 예를 들어 채널 오차로 인해 동시성이 유지될 수 없는 경우, 결과 드리프트)의 이러한 기본 원리는 몇몇 관련 기술에서도 사용된다.
"로컬" 디코더(333)의 동작은 비디오 디코더(210)와 같은, "원격" 디코더의 동작과 동일할 수 있으며, 이는 이미 도 2와 관련하여 상세하게 설명되었다. 도 2를 간단히 다시 참조하면, 심볼이 이용 가능하고 엔트로피 코더(345) 및 파서(220)에 의해 코딩된 비디오 시퀀스로의 심볼의 인코딩/디코딩이 무손실일 수 있으므로, 버퍼 메모리(215) 및 파서(220)를 포함한, 비디오 디코더(210)의 엔트로피 디코딩 부분은 로컬 디코더(333)에서 전적으로 구현되지 않을 수 있다.
일 실시예에서, 디코더에만 존재하는 파싱/엔트로피 디코딩을 제외한 모든 디코더 기술은 대응 인코더에, 동일하거나 실질적으로 동일한 기능적 형태로 존재한다. 따라서, 개시된 주제는 디코더 동작에 초점을 맞출 수 있다. 인코더 기술에 대한 설명은 포괄적으로 설명된 디코더 기술의 반대이므로 생략될 수 있다. 특정 영역에서, 더 자세한 설명은 아래에 제공된다.
동작하는 동안, 몇몇 예에서, 소스 코더(330)는 "참조 픽처"로 지정된 비디오 시퀀스로부터 하나 이상의 이전에 코딩된 픽처를 참조하여 입력 픽처를 예측적으로 코딩하는 움직임 보상된 예측 코딩을 수행할 수 있다. 이러한 방식으로, 코딩 엔진(332)은 입력 픽처에 대한 예측 참조(들)로서 선택될 수 있는 입력 픽처의 픽셀 블록과 참조 픽처(들)의 픽셀 블록 간의 차이를 코딩한다.
로컬 비디오 디코더(333)는 소스 코더(330)에 의해 생성된 심볼에 기초하여, 참조 픽처로서 지정될 수 있는 픽처의 코딩된 비디오 데이터를 디코딩할 수 있다. 코딩 엔진(332)의 동작은 유리하게 손실 프로세스일 수 있다. 코딩된 비디오 데이터가 비디오 디코더(도 3에 도시되지 않음)에서 디코딩될 수 있을 때, 재구축된 비디오 시퀀스는 일반적으로 약간의 오류가 있는 소스 비디오 시퀀스의 복제본(replica)일 수 있다. 로컬 비디오 디코더(333)는 참조 픽처에 대해 비디오 디코더에 의해 수행될 수 있는 디코딩 프로세스를 복제하고, 재구축된 참조 픽처가 참조 픽처 메모리(334)에 저장되도록 할 수 있다. 이러한 방식으로, 비디오 인코더(303)는 원단(far-end) 비디오 디코더(송신 오류 없음)에 의해 획득될 재구축된 참조 픽처로서 공통 콘텐츠를 갖는 재구축된 참조 픽처의 사본을 로컬에 저장할 수 있다.
예측기(predictor)(335)는 코딩 엔진(332)에 대한 예측 검색을 수행할 수 있다. 즉, 코딩될 새로운 픽처를 위해, 예측기(335)는 참조 픽처 메모리(334)에서 새로운 픽처에 대한 적절한 예측 참조의 역할을 할 수 있는 샘플 데이터(후보 참조 픽셀 블록임), 또는 참조 픽처 움직임 벡터, 블록 모양 등과 같은 특정 메타데이터를 검색할 수 있다. 예측기(335)는 적절한 예측 참조를 찾기 위해 샘플 블록별 픽셀 블록(sample block-by-pixel block) 단위로 동작할 수 있다. 경우에 따라서는, 예측기(335)에 의해 획득된 검색 결과에 의해 결정되는 바와 같이, 입력 픽처는 참조 픽처 메모리(334)에 저장된 다수의 참조 픽처로부터 끌어낸 예측 참조를 가질 수 있다.
제어기(350)는, 예를 들어 비디오 데이터를 인코딩하기 위해 사용되는 파라미터 및 서브그룹 파라미터의 설정을 포함하는 소스 코더(330)의 코딩 동작을 관리할 수 있다.
전술한 모든 기능 유닛의 출력은 엔트로피 코더(345)에서의 엔트로피 코딩 대상일 수 있다. 엔트로피 코더(345)는 Huffman 코딩, 가변 길이 코딩, 산술 코딩 등과 같은 기술에 따라 심볼에 무손실 압축을 적용함으로써, 다양한 기능 유닛에 의해 생성된 심볼을 코딩된 비디오 시퀀스로 변환한다.
송신기(340)는 엔트로피 코더(345)에 의해 생성되는 코딩된 비디오 시퀀스(들)를 버퍼링하여, 인코딩된 비디오 데이터를 저장할 저장 디바이스에 대한 하드웨어/소프트웨어 링크일 수 있는 통신 채널(360)을 통한 송신을 준비할 수 있다. 송신기(340)는 비디오 인코더(303)로부터 코딩된 비디오 데이터를 송신될 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림(소스는 도시되지 않음)과 병합할 수 있다.
제어기(350)는 비디오 인코더(303)의 동작을 관리할 수 있다. 코딩하는 동안, 제어기(350)는 각각의 코딩된 픽처에 특정 코딩된 픽처 유형을 할당할 수 있으며, 이는 각각의 픽처에 적용될 수 있는 코딩 기술에 영향을 미칠 수 있다. 예를 들어, 픽처는 종종 다음 픽처 유형 중 하나로서 지정될 수 있다:
인트라 픽처(Intra Picture: I 픽처)는 예측 소스로서 시퀀스 내의 어떤 다른 픽처도 사용하지 않고 코딩 및 디코딩될 수 있는 것일 수 있다. 일부 비디오 코덱은, 예를 들어 독립 디코더 리프레시 픽처(Independent Decoder Refresh Picture, "IDR")을 포함한, 상이한 유형의 인트라 픽처를 허용한다. 당업자는 I 픽처의 이러한 변형 및 각각의 적용 및 특징을 알고 있다.
예측 픽처(Predictive picture: P 픽처)는 각각의 블록의 샘플 값을 예측하기 위해 최대 하나의 움직임 벡터 및 참조 색인을 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다.
양 방향 예측 픽처(Bi-directionally Predictive Picture: B 픽처)는 각각의 블록의 샘플 값을 예측하기 위해 최대 두 개의 움직임 벡터 및 참조 색인을 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다. 유사하게, 다중 예측 픽처(multiple-predictive picture)는 단일 블록의 재구축을 위해 두 개보다 많은 참조 픽처와 연관 메타 데이터를 사용할 수 있다.
소스 픽처는 일반적으로 공간적으로 복수의 샘플 코딩 블록(예를 들어, 4×4, 8×8, 4×8 또는 16×16 샘플 블록)으로 세분화되고 블록 단위로 코딩될 수 있다. 블록은 블록의 픽처 각각에 적용된 코딩 할당에 의해 결정된 대로 다른 (이미 코딩된) 블록을 참조하여 예측적으로 코딩될 수 있다. 예를 들어, I 픽처의 블록은 비 예측적으로 코딩되거나, 동일한 픽처의 이미 코딩된 블록(공간 예측(spatial prediction) 또는 인트라 예측)을 참조하여 예측적으로 코딩될 수 있다. P 픽처의 픽셀 블록은 이전에 코딩된 하나의 참조 픽처를 참조하여 공간 예측을 통해 또는 시간 예측(temporal prediction)을 통해 예측적으로 코딩될 수 있다. B 픽처의 블록은 이전에 코딩된 하나 또는 두 개의 참조 픽처를 참조하여 공간 예측을 통해 또는 시간 예측을 통해 예측적으로 코딩될 수 있다.
비디오 인코더(303)는 ITU-T Rec. H.265.와 같은 미리 결정된 비디오 코딩 기술 또는 표준에 따라 코딩 동작을 수행할 수 있다. 그 동작에서, 비디오 인코더(303)는 입력 비디오 시퀀스에서의 시간적 및 공간적 중복성을 이용하는 예측 코딩 동작을 포함한, 다양한 압축 동작을 수행할 수 있다. 따라서, 코딩된 비디오 데이터는 사용되는 비디오 코딩 기술 또는 표준에 의해 지정된 신택스를 따를 수 있다.
일 실시예에서, 송신기(340)는 인코딩된 비디오와 함께 추가 데이터를 송신할 수 있다. 소스 코더(330)는 코딩된 비디오 시퀀스의 일부로서 이러한 데이터를 포함할 수 있다. 추가 데이터는 시간/공간/SNR 강화 계층, 중복 픽처 및 슬라이스와 같은 다른 형태의 중복 데이터, SEI 메시지, VUI 파라미터 세트 프래그먼트 등을 포함할 수 있다.
비디오는 시간적 시퀀스로 복수의 소스 픽처(비디오 픽처)로서 캡처될 수 있다. 인트라 픽처 예측(종종 인트라 예측으로 축약됨)은 주어진 픽처에서 공간적 상관관계를 이용하고, 인터 픽처 예측(inter-picture prediction)은 픽처 사이의 (시간적 또는 다른) 상관관계를 이용한다. 일례로, 현재 픽처라고 하는 인코딩/디코딩 중인 특정 픽처는 블록으로 파티셔닝된다. 현재 픽처 내의 블록이 이전에 코딩되고 비디오에 있어 여전히 버퍼링된 참조 픽처의 참조 블록과 유사한 경우, 현재 픽처 내의 블록은 움직임 벡터라고 하는 벡터에 의해 코딩될 수 있다. 움직임 벡터는 참조 픽처 내의 참조 블록을 가리키며, 다수의 참조 픽처가 사용 중인 경우, 참조 픽처를 식별하는 3차원을 가질 수 있다.
몇몇 실시예에서, 양-예측 기술(bi-prediction technique)이 인터 픽처 예측에 사용될 수 있다. 양-예측 기술에 따르면, 비디오에서 디코딩 순서상 현재 픽처에 둘다 선행하는 (하지만 각각 표시 순서상 과거와 미래일 수 있는) 제1 참조 픽처와 제2 참조 픽처와 같은, 2개의 참조 픽처가 사용된다. 현재 픽처의 블록은 제1 참조 픽처의 제1 참조 블록을 가리키는 제1 움직임 벡터 및 제2 참조 픽처의 제2 참조 블록을 가리키는 제2 움직임 벡터에 의해 코딩될 수 있다. 블록은 제1 참조 블록과 제2 참조 블록의 조합에 의해 예측될 수 있다.
또한, 인터 픽처 예측에 병합 모드 기술을 사용하여 코딩 효율을 향상시킬 수 있다.
본 개시의 몇몇 실시예에 따르면, 인터 픽처 예측 및 인트라 픽처 예측과 같은 예측은 다각형 또는 삼각형 블록과 같은, 블록 단위로 수행된다. 예를 들어, HEVC 표준에 따르면, 비디오 픽처의 시퀀스에 있는 픽처는 압축을 위해 코딩 트리 유닛(coding tree unit, CTU)로 파티셔닝되고, 픽처 내의 CTU는 64×64 픽셀, 32×32 픽셀 또는 16×16 픽셀과 같이, 동일한 크기를 가질 수 있다. 일반적으로, 코CTU는 3개의 코딩 트리 블록(coding tree block, CTB)을 포함하는 데, 루마 CTB 1개와 크로마 CTB 2개가 그것이다. 각각의 CTU는 반복적으로 하나 또는 복수의 코딩 유닛(CU)으로 쿼드트리 분할될 수 있다. 예를 들어 64×64 픽셀의 CTU는 64×64 픽셀의 CU 1개 또는 32×32 픽셀의 CU 4개 또는 16×16 픽셀의 CU 16개로 분할될 수 있다. 일례에서, 각각의 CU는 인터 예측 유형 또는 인트라 예측 유형과 같은, CU에 대한 예측 유형을 결정하기 위해 분석될 수 있다. CU는 시간적 및/또는 공간 예측 가능성에 따라 하나 이상의 예측 유닛(prediction unit, PU)으로 분할된다. 일반적으로, 각각의 PU는 루마 예측 블록(PB)과 두 개의 크로마 PB를 포함한다. 일 실시예에서, 코딩(인코딩/디코딩)에서의 예측 동작은 예측 블록의 단위로 수행된다. 예측 블록의 예로서 루마 예측 블록을 사용하면, 예측 블록은 8×8 픽셀, 16×16 픽셀, 8×16 픽셀, 16×8 샘플 등과 같은, 값(예: 루마 값)의 행렬을 포함할 수 있다.
비디오 인코더(103, 303) 및 비디오 디코더(110, 210)는 임의의 적절한 기술을 사용하여 구현될 수 있음에 유의한다. 일 실시예에서, 비디오 인코더(103, 303) 및 비디오 디코더(110, 210)는 하나 이상의 집적 회로를 사용하여 구현될 수 있다. 다른 실시예에서, 비디오 인코더(103, 303) 및 비디오 디코더(110, 210)는 소프트웨어 명령어를 실행하는 하나 이상의 프로세서를 사용하여 구현될 수 있다.
본 개시는 UV 좌표 범위 및 텍스처 맵 크기를 조작하는 방법 및 시스템과 관련된 실시예를 포함한다
메시는 체적 객체(volumetric object)의 표면을 기술하는 여러 다각형을 포함할 수 있다. 메시의 각 다각형은 3차원 공간에서의 해당 다각형의 정점과 그 정점이 어떻게 연결되어 있는지에 대한 정보에 의해 정의될 수 있으며, 이를 연결성 정보(connectivity information)라고 할 수 있다. 몇몇 실시예에서, 색상, 법선 등과 같은 정점 속성이 메시 정점과 연관될 수 있다. 속성(또는 정점 속성)은 2차원(2D) 속성 맵으로 메시를 파라미터화하는 매핑 정보를 활용함으로써 메시 표면과도 연관될 수 있다. 이러한 매핑은 일반적으로 메시 정점과 연관된 UV 좌표 또는 텍스처 좌표라고 하는 일련의 파라메트릭 좌표로 기술될 수 있다. 2D 속성 맵은 텍스처, 법선, 변위 등 고해상도 속성 정보를 저장하는 데 사용될 수 있다. 이러한 정보는 텍스처 매핑 및 셰이딩(shading)과 같은 다양한 목적으로 사용될 수 있다.
동적 메시 시퀀스는, 동적 메시가 시간이 지남에 따라 변하는 상당한 양의 정보를 포함할 수 있으므로 많은 양의 데이터가 필요할 수 있다. 따라서 이러한 콘텐츠를 저장하고 송신하기 위해서는 효율적인 압축 기술이 필요하다. IC, MESHGRID 및 FAMC와 같은 메시 압축 표준은 MPEG에 의해 지속적인 연결성, 시변 지오메트리 및 정점 속성을 가진 동적 메시를 처리하기 위해 이전에 개발되었다. 그러나 이러한 표준은 시변 속성 맵 및 연결성 정보를 고려할 수 없을 수 있다. DCC(Digital Content Creation) 도구는 일반적으로 이러한 동적 메시를 생성한다. 그러나 특히 실시간 제약 조건하에서 일정한 연결성의 동적 메시(constant connectivity dynamic mesh)를 생성하는 것은 체적 취득 기술(volumetric acquisition techniques )에는 어려울 수 있다. 이러한 유형의 콘텐츠(예컨대, 일정한 연결성의 동적 메시)는 기존 표준에서 지원되지 않을 수 있다. MPEG는 시변 연결성 정보와 선택적으로 시변 속성 맵을 가진 동적 메시를 직접 처리하기 위한 새로운 메시 압축 표준을 개발할 계획이다. 새로운 메시 압축 표준은 실시간 통신, 스토리지, 프리 뷰포인트 비디오(free viewpoint video), AR(Augmented Reality) 및 VR(Virtual Reality)과 같은 다양한 애플리케이션에 대한 손실 및 무손실 압축을 목표로 한다. 랜덤 액세스 및 스케일러블/프로그레시브 코딩과 같은, 기능성도 고려될 수 있다.
UV 매핑에서는, 각 3D 표면을 2D 텍스처로 매핑할 수 있다. UV 좌표(예컨대, U 좌표와 V 좌표의 쌍)는 2D 텍스처 맵에서 3D 포지션의 위치를 제공한다.
MPEG V-Mesh™ v1.0과 같은, 관련 비디오 코덱에서, 소스 메시(예컨대, 입력 메시 또는 원본 메시)는 소스 포지션, 소스 UV 좌표, 소스 연결성 및 소스 텍스처 맵을 포함할 수 있다. 소스 UV 좌표(또는 소스 U 및 V 좌표)는 복수의 UV 좌표를 포함할 수 있다. 복수의 UV 좌표 각각은 U 좌표와 V 좌표의 개개의 쌍을 포함할 수 있다. 소스 U 및 V 좌표의 범위는 소스 U 및 V 좌표의 비트 심도인 값 tlength으로 지정될 수 있다. 예를 들어, tdepth = 13이면, 소스 U 좌표와 V 좌표 모두 [0, 8191]인 [0, 213 - 1]의 범위 내에 있을 수 있다. 소스 텍스처 맵은 swidth와 sheight의 크기를 가질 수 있으며, 여기서 swidth는 소스 텍스처 맵의 너비이고 sheight는 소스 텍스처 맵의 높이이다. 예를 들어, swidth = 8192, sheight = 8192이면, 소스 텍스처 맵의 크기는 8192 x 8192일 수 있다.
MPEG V-Mesh™ v1.0과 같은, 비디오 코덱을 기반으로 한 인코딩 프로세스에서, U 및 V 좌표는 tqp의 비트 심도 값을 사용하여 인코딩될 수 있다. 따라서 tqp는 U 및 V 좌표의 인코딩된 범위를 지시할 수 있고, tlength는 U 및 V 좌표의 원래(또는 초기) 범위를 지시할 수 있다. tqp는 tlength와 같을 수도 있고 다를 수도 있다. 일례에서, tqp = 10이면, U 좌표와 V 좌표는 모두 [0, 1023]]인 [0, 210 - 1]의 범위 내로 인코딩될 수 있다. 텍스처 맵은 texwidth와 texheight 크기로 인코딩될 수 있다. 예를 들어 texwdith = 2048이고, texheight = 1536이면, 텍스처 맵은 2048 x 1536 크기로 인코딩될 수 있다.
MPEG V-Mesh™ v1.0과 같은, 비디오 코덱을 기반으로 한 디코딩 프로세스에서, 디코딩된 텍스처 맵은 texwidth와 texheight의 크기를 가질 수 있다. U 좌표 및 V 좌표의 경우, U 좌표와 V 좌표가 [0, 2tqp - 1] 범위로 디코딩된 후, U 좌표와 V 좌표는 두 번의 변환을 받을 수 있으며, 이는 도 4에 도시될 수 있다. 도 4에 도시된 바와 같이, 인코딩된 U 및 V 좌표는 단계(S402)에서 [0, 2tqp - 1]의 범위로 디코딩될 수 있다. 단계(S404)에서는 디코딩된 U 좌표와 V 좌표에 대해 정규화 프로세스와 같은, 제1 변환이 적용될 수 있다. 정규화 프로세스에서는 U 좌표와 V 좌표는 모두 (2tqp - 1))과 같은 제1 인자로 나뉠 수 있다. 제1 변환 후, U 좌표와 V 좌표는 모두 [0, 1]의 범위를 가질 수 있다. 단계(S406)에서는 U 좌표와 V 좌표에, 확장 프로세스와 같은 제2 변환이 적용될 수 있다. 확장 프로세스에서, U 좌표와 V 좌표에 (2tdepth - 1)과 같은 제2 인자를 곱할 수 있다. 제2 변환 후, U 좌표와 V 좌표는 모두 [0, 2tdepth - 1]의 범위를 가질 수 있으며, 이는 소스 U 좌표 및 V 좌표의 범위와 매칭된다.
MPEG V-MeshTM v1.0과 같은, 관련 비디오 코덱에서는 디코딩된 UV 좌표 범위와 디코딩된 텍스처 맵 크기가 매칭되지 않을 수 있다. 위에서 언급한 예에서 tqp = 10, texwdith = 2048, texheight = 1536일 때, 디코딩된 텍스처 맵의 크기는 2048 x 1536이고, 디코딩된 UV 좌표의 범위는 1024 x 1024일 수 있다. 따라서, 디코딩된 텍스처 맵의 크기는 디코딩된 UV 좌표의 범위와 다르다. 또한, 디코더 측에서 UV 좌표에 적용되는 두 가지 변환(예컨대, 도 4에 도시된 정규화 및 확장)은 하나의 변환으로 통합될 수 있다.
본 개시에서는 UV 좌표의 범위와 텍스처 맵의 크기를 조작(또는 조정)하기 위한 방법 및 시스템이 제공된다. 제안된 방법은 개별적으로 사용하거나 순서에 관계없이 조합하여 사용할 수 있다. 또한, 방법(또는 실시예), 인코더 및 디코더 각각은 처리 회로(예컨대, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 일례에서, 하나 이상의 프로세서는 컴퓨터로 판독 가능한 비일시적 매체에 저장된 프로그램을 실행한다.
UV 좌표는 U 좌표와 V 좌표의 쌍을 포함할 수 있다. UV 좌표는 2D 텍스처 맵에서 3D 포지션(예컨대, 정점)의 위치를 지시할 수 있다. 본 개시에서, UV 좌표는 텍스처 맵 크기와 매칭되도록 디코더 측에서 조작(또는 조정)될 수 있다. 예를 들어, U 좌표 각각은 제1 인자에 기초하여 조정될 수 있고, V 좌표 각각은 제2 인자에 기초하여 조정될 수 있다. 제1 인자와 제2 인자는 (i) 복수의 정점의 제1 좌표와 제2 좌표의 코딩된 범위를 지시하는 비트 심도 값(예컨대, tqp) 또는 (ii) 텍스처 맵의 크기(예컨대, texwidth 및/또는 texheight) 중 적어도 하나에 기초하여 미리 결정될 수 있다.
일 실시예에서, U 좌표와 V 좌표를 포함하는 UV 좌표는 디코딩된 텍스처 맵 크기에 기초하여 확장될 수 있다. 예를 들어, UV 좌표가 디코딩된 후, U 좌표와 V 좌표는 모두 [0, 2tqp - 1]의 범위에 있으며, 여기서 tqp는 인코딩 동안의 UV 좌표의 비트 심도이다. UV 좌표는 다음과 같이 두 가지 변환을 더 받을 수 있다:
(1) 정규화: 제1 변환은 정규화 프로세스일 수 있다. 정규화 프로세스에 기초하여, U 좌표와 V 좌표는 모두 (2tqp - 1)로 나뉠 수 있다. 따라서 각각의 U 좌표는 (2tqp - 1)로 나뉠 수 있고, 각각의 V 좌표는 (2tqp - 1)로 나뉠 수 있다. 정규화 프로세스가 수행된 후, U 좌표의 범위와 V 좌표의 범위는 [0, 1]로 조정될 수 있다.
(2) 확장: 제2 변환은 확장 프로세스일 수 있다. 예를 들어, 각각의 U 좌표에는 (texwidth - 1)을 곱할 수 있고, 각각의 V 좌표에는 (texheight - 1)을 곱할 수 있으며, 여기서 texwidth는 디코딩된 텍스처 맵의 너비이고 texheight는 디코딩된 텍스처 맵의 높이이다. 일례에서, texwidth = 2048, texheight = 1536이다. 따라서 각각의 U 좌표에는 2047을 곱할 수 있고, 각각의 V 좌표에는 1535를 곱할 수 있다. 따라서 U 좌표의 범위는 [0. 2047]이 되고, V 좌표의 범위는 [0, 1535]가 되고, UV 좌표의 범위는 2048 x 1536이 되어, 디코딩된 텍스처 맵 크기인 2048 x 1536과 매칭된다.
일 실시예에서, 정규화와 확장과 같은, 2가지 변환은 통합된 변환으로 결합될 수 있다. 예를 들어 UV 좌표가 디코딩된 후, U 좌표와 V 좌표는 모두 [0, 2tqp - 1]의 범위에 있으며, 여기서 tqp는 인코딩 동안의 UV 좌표의 비트 심도이다. 통합된 변환은 다음과 같이 UV 좌표에 적용될 수 있다:
변환: 각각의 U 좌표에는 (texwidth - 1) / (2tqp - 1)의 스칼라를 곱할 수 있고, 각각의 V 좌표에는 (texheight - 1) / (2tqp - 1)의 스칼라를 곱할 수 있으며, 여기서 texwidth와 texheight는 각각 디코딩된 텍스처 맵의 너비와 높이이다. 변환 후, 디코딩된 텍스처 맵 크기는 디코딩된 UV 좌표의 범위와 매칭될 수 있다.
일 실시예에서, 텍스처 맵 크기가 디코더 측에서 사용 불가능할 때, 통합된 변환이 적용될 수 있다. 예를 들어, 텍스처 맵 크기는 텍스처 교체(texture replacement)의 애플리케이션에서 사용 불가능할 수 있다. 일례에서, UV 좌표가 디코딩된 후, U 좌표와 V 좌표는 모두 [0, 2tqp - 1]의 범위에 있으며, 여기서 tqp는 인코딩 동안의 UV 좌표의 비트 심도이다. 통합된 변환은 다음과 같이 적용될 수 있다:
변환: 각각의 U 좌표에는 (2tdepth - 1) / (2tqp - 1)의 스칼라를 곱할 수 있고, 각각의 V 좌표에는 (2tdepth - 1) / (2tqp - 1)의 스칼라를 곱할 수 있으며, 여기서 tlength는 소스 U 좌표와 V 좌표의 비트 심도이다. 변환 후에는 U 좌표의 범위와 V 좌표의 범위가 모두 [0, 2tdepth - 1]이 된다.
일 실시예에서, UV 좌표의 범위를 확장(또는 조정)하기 위해 통합된 변환이 적용될 수 있다. 일례에서, UV 좌표가 디코딩된 후, U 좌표와 V 좌표는 모두 [0, 2tqp - 1]의 범위에 있으며, 여기서 tqp는 인코딩 동안의 UV 좌표의 비트 심도이다. UV 좌표의 범위는 통합된 변환에 기초하여 다음과 같이 조정될 수 있다:
변환: 각각의 U 좌표에는 (uMax / (2tqp - 1))의 스칼라를 곱할 수 있고, 각각의 V 좌표에는 (vMax / (2tqp - 1))의 스칼라를 곱할 수 있으며, 여기서 uMax와 vMax는 UV 좌표의 범위를 정의하는 두 개의 값이다. 변환 후, U 좌표는 [0, uMax]의 범위에 있을 수 있고, V 좌표는 [0, vMax]의 범위에 있을 수 있다.
일 실시예에서, uMax와 vMax의 값은 적응적으로 설정될 수 있다. 예를 들어, uMax와 vMax의 값은 미리 결정된 상수일 수 있다.
일 실시예에서, uMax와 vMax의 값은 텍스처 맵 크기가 디코더 측에서 사용 가능한 경우, 텍스처 맵 크기에 기초하여 설정될 수 있다. 텍스처 맵의 너비와 높이를 각각 texwidth와 texheight로 표시할 때, uMax와 vMax의 값은 uMax = texwidth - 1과, vMax = texheight - 1로 설정될 수 있다.
일 실시예에서, 텍스처 맵 크기가 디코더 측에서 사용 불가능한 경우, uMax와 vMax의 값은 소스 UV 좌표 비트 심도(예컨대, tlength)에 기초하여 설정될 수 있다. 소스 U 좌표와 V 좌표의 비트 심도를 Tdepth로 표시할 때, uMax와 vMax의 값은 uMax = 2tdepth - 1, 그리고 vMax = 2tdepth - 1로 설정될 수 있다.
일 실시예에서, uMax와 vMax의 값은 텍스처 맵 크기가 사용 가능한지 여부에 관계없이 소스 UV 좌표 비트 심도(예컨대, tdepth)에 기초하여 설정될 수 있다. 예를 들어, uMax와 vMax의 값은 uMax = 2tdepth - 1, 및 vMax = 2tdepth - 1로 설정될 수 있으며, 여기서 tdepth는 소스 U 좌표 및 V 좌표의 비트 심도를 지시한다.
도 5는 본 개시의 일 실시예에 따른 프로세스(500)의 개요를 설명하는 흐름도를 도시한다. 프로세스(500)는 비디오 디코더와 같은, 디코더에서 사용될 수 있다. 다양한 실시예에서, 프로세스(500)는 비디오 디코더(110)의 기능을 수행하는 처리 회로, 비디오 디코더(210)의 기능을 수행하는 처리 회로 등과 같은, 처리 회로에 의해 실행된다. 몇몇 실시예에서, 프로세스(500)는 소프트웨어 명령어로 구현되므로, 처리 회로가 소프트웨어 명령어를 실행할 때, 처리 회로는 프로세스(500)를 수행한다. 프로세스는 (S501)에서 시작하여(S510)으로 진행된다.
(S510)에서는 복수의 정점을 포함하는 메시의 코딩 정보를 수신한다. 코딩 정보는 복수의 정점에 대응하는 복수의 제1 좌표와 복수의 제2 좌표, 및 메시와 연관된 텍스처 맵을 포함한다. 텍스처 맵은 메시의 텍스처 정보를 지시한다. 복수의 정점 중 각각의 정점은 개개의 제1 좌표 및 개개의 제2 좌표를 포함하여 이를 조합하여 각각의 정점의 포지션을 고유하게 식별할 수 있도록 한다.
(S520)에서는, 각각의 정점과 연관된 개개의 제1 좌표와 개개의 제2 좌표를, 제1 인자에 기초하여 개개의 제1 좌표를 조정하고 제2 인자에 기초하여 개개의 제2 좌표를 조정함으로써 정규화한다. 제1 인자와 제2 인자는 (i) 복수의 정점의 제1 좌표와 제2 좌표의 코딩된 범위를 지시하는 비트 심도 값 및 (ii) 텍스처 맵의 크기 중 적어도 하나와 연관된다.
(S720)에서는, 정규화된 개개의 제1 좌표와 정규화된 개개의 제2 좌표를 제1 인자와 제2 인자 각각에 기초하여 확장한다.
(S730)에서는, 메시의 복수의 정점의 정규화 및 확장된 제1 좌표와, 정규화 및 확장된 제2 좌표에 기초하여 메시를 재구축한다.
몇몇 실시예에서, 개개의 제1 좌표 및 개개의 제2 좌표를 정규화하기 위해, 복수의 정점의 제1 좌표 각각은 제1 인자에 포함된 제1 제수로 나뉜다. 복수의 정점의 제2 좌표 각각은 제2 인자에 포함된 제2 제수로 나뉜다. 개개의 제1 좌표 및 개개의 제2 좌표를 확장하기 위해, 복수의 정점의 정규화된 제1 좌표 각각에 제1 인자에 포함된 제1 승수가 더 곱해진다. 복수의 정점의 정규화된 제2 좌표 각각에 제2 인자에 포함된 제2 승수가 더 곱해진다.
일 실시예에서, 제1 인자는 (texwidth - 1) / (2tqp - 1)과 같다. texwidth는 텍스처 맵의 너비이고, tqp는 복수의 정점의 제1 좌표와 제2 좌표의 코딩된 범위를 지시하는 비트 심도 값이다. 제2 인자는 (texheight - 1) / (2tqp - 1)과 같으며, texheight는 텍스처 맵의 높이이다.
일 실시예에서, 제1 인자는 제1 분수이고, 제1 좌표 각각은 제1 분수의 분모로 정규화되고 제1 분수의 분자로 확장된다. 제2 인자는 제2 분수이고, 제2 좌표 각각은 제2 분수의 분모로 정규화되고 제2 분수의 분자로 확장된다.
일 실시예에서, 사용 불가능한 텍스처 맵의 크기에 기초하여, 제1 인자와 제2 인자는 모두 (2tdepth - 1) / (2tqp - 1)과 같다. tdepth는 복수의 정점의 제1 좌표와 제2 좌표의 초기 범위를 지시하는 비트 심도 값이다. tqp는 복수의 정점의 제1 좌표와 제2 좌표의 코딩된 범위를 지시하는 비트 심도 값이다.
일 실시예에서, 제1 인자는 (uMax / (2tqp - 1))과 같다. uMax는 제1 상수이고, tqp는 복수의 정점의 제1 좌표와 제2 좌표의 코딩된 범위를 지시하는 비트 심도 값이다. 제2 인자는 (vMax / (2tqp - 1))과 같고, vMax는 제2 상수이다.
일례에서, uMax는 텍스처 맵의 너비에서 1을 뺀 것과 같다. vMax는 텍스처 맵의 높이에서 1을 뺀 것과 같다.
일례에서, 사용 불가능한 텍스처 맵의 크기에 기초하여, uMax와 vMax는 모두 2tdepth에서 1을 뺀 것과 같다. tdepth는 복수의 정점의 제1 좌표와 제2 좌표의 초기 범위를 지시하는 비트 심도 값이다.
일례에서, uMax와 vMax는 모두 2tdepth에서 1을 뺀 것과 같다. tdepth는 복수의 정점의 제1 좌표와 제2 좌표의 초기 범위를 지시하는 비트 심도 값이다.
이후, S599 단계로 진행하여 종료한다.
프로세스(500)는 적절하게 조정될 수 있다. 프로세스(500)의 단계(들)는 수정 및/또는 생략될 수 있다. 추가 단계를 추가할 수 있다. 임의의 적절한 구현 순서를 사용할 수 있다.
전술한 기술은 컴퓨터로 판독 가능한 명령어를 사용하고 하나 이상의 컴퓨터로 판독 가능한 매체에 물리적으로 저장될 수 있는 컴퓨터 소프트웨어로서 구현될 수 있다. 예를 들어, 도 6은 개시된 주제의 특정 실시예를 구현하기에 적합한 컴퓨터 시스템(600)을 도시한다.
컴퓨터 소프트웨어는 하나 이상의 컴퓨터 CPU(Central Processing Unit), GPU(Graphics Processing Unit) 등에 의해, 직접, 또는 해석(interpretation), 마이크로 코드 실행(micro-code execution) 등을 통해 실행될 수 있는 명령어를 포함하는 코드를 생성하기 위해 어셈블리(assembly), 컴파일(compilation), 링킹(linking), 또는 이와 유사한 메커니즘의 대상이 될 수 있는 임의의 적절한 기계어 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있다.
명령어는, 예를 들어 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰, 게이밍 기기, 사물 인터넷 기기 등을 포함한, 다양한 유형의 컴퓨터 또는 그 컴포넌트에서 실행될 수 있다.
도 6에 도시된 컴퓨터 시스템(600)의 컴포넌트는 본질적으로 예시적인 것이며, 본 개시의 실시예를 구현하는 컴퓨터 소프트웨어의 사용 또는 기능의 범위에 대한 어떠한 한정도 시사하려는 것은 아니다. 컴포넌트의 구성은 컴퓨터 시스템(600)의 예시적인 실시예에 나타낸 컴포넌트 중 어느 하나 또는 조합과 관련된 임의의 종속성 또는 요건을 가지는 것으로 해석되어서는 안 된다.
컴퓨터 시스템(600)은 특정 휴먼 인터페이스 입력 디바이스(human interface input device)를 포함할 수 있다. 이러한 휴먼 인터페이스 입력 디바이스는 한 명 이상의 인간 사용자에 의한 입력, 예를 들어 촉각 입력(예: 키 누름(keystroke), 스와이프(swip), 데이터 장갑 움직임), 오디오 입력(예: 음성, 박수), 시각적 입력(예: 제스처), 후각 입력(도시되지 않음)에 입력에 응답할 수 있다. 휴먼 인터페이스 디바이스는 또한 오디오(예: 음성, 음악, 주변 소리), 이미지(예: 스캔된 이미지, 정지 이미지 카메라로부터 획득한 픽처 이미지), 비디오(예: 2차원 비디오, 입체 비디오(stereoscopic video)를 포함한 3차원 비디오)와 같은, 사람에 의한 의식적 입력과 반드시 직접 관련이 있는 것은 아닌 특정 미디어를 캡처하는 데 사용될 수 있다.
입력 휴먼 인터페이스 디바이스는 키보드(601), 마우스(602), 트랙 패드(603), 터치 스크린(610), 데이터 장갑(도시되지 않음), 조이스틱(605), 마이크로폰(606), 스캐너(607), 카메라(608) 중 하나 이상(각각 하나만 표시됨)을 포함할 수 있다.
컴퓨터 시스템(600)은 특정 휴먼 인터페이스 출력 디바이스를 포함할 수 있다. 이러한 휴먼 인터페이스 출력 디바이스는 예를 들어 촉각 출력, 소리, 빛 및 냄새/맛을 통해, 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 휴먼 인터페이스 출력 디바이스는 촉각 출력 디바이스(예: 터치 스크린(610), 데이터 장갑(도시되지 않음), 또는 조이스틱(605)에 의한 촉각 피드백이지만, 입력 디바이스의 역할을 하지 않는 촉각 피드백 디바이스도 있을 수 있음), 오디오 출력 디바이스(예: 스피커(609), 헤드폰(도시되지 않음)), 시각적 출력 디바이스(예: 각각 터치 스크린 입력 기능이 있거나 없는, 각각 촉각 피드백 기능이 있거나 없는, CRT 스크린, LCD 스크린, 플라즈마 스크린, OLED 스크린을 포함한, 스크린(610) - 그 일부는 스테레오그래픽 출력(stereographic), 가상 현실 안경(virtual-reality glasses)(도시되지 않음), 홀로그래픽 디스플레이(holographic display) 및 연기 탱크(smoke tank)(도시되지 않음)와 같은 수단을 통해 2차원 시각적 출력 또는 3차원 이상의 출력을 할 수 있음 -), 및 프린터(도시되지 않음)를 포함할 수 있다.
컴퓨터 시스템(600)은 또한 CD/DVD 등의 매체(621)를 구비한 CD/DVD ROM RW(620)을 포함한 광학 매체, 썸 드라이브(thumb-drive )(622), 착탈 가능한 하드 드라이브 또는 솔리드 스테이트 드라이브(623), 테이프 및 플로피 디스크(도시되지 않음)와 같은 레거시 자기 매체, 보안 동글(security dongle)(도시되지 않음)과 같은 특수한 ROM/ASIC/PLD 기반 디바이스 등의 인간이 액세스 가능할 수 있는 저장 디바이스 및 그 연관 매체를 포함할 수 있다.
당업자는 또한 현재 개시된 주제와 관련하여 사용된 바와 같이 컴퓨터로 판독 가능한 매체"라는 용어가 송신 매체, 반송파(carrier wave) 또는 기타 일시적인 신호를 포함하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(600)은 또한 하나 이상의 통신 네트워크(655)에 대한 인터페이스(654)를 포함할 수 있다. 네트워크는 예를 들어 무선, 유선, 광 등의 네트워크일 수 있다. 네트워크는 또한 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연 허용 등의 네트워크일 수 있다. 네트워크의 예로는 이더넷, 무선 LAN, GSM, 3G, 4G, 5G, LTE, 등을 포함하는 셀룰러 네트워크, 케이블 TV, 위성 TV, 및 지상파 방송 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크, CANBus를 포함하는 차량 및 산업용, 등을 포함한다. 특정 네트워크는 일반적으로 특정 범용 데이터 포트 또는 주변 버스(649)(예: 컴퓨터 시스템(600)의 USB 포트)에 부착된 외부 네트워크 인터페이스 어댑터)를 필요로 하며; 다른 것은 일반적으로 이하에 설명하는 바와 같이 시스템 버스에 부착함으로써 컴퓨터 시스템(600)의 코어에 통합된다(예를 들어, PC 컴퓨터 시스템에의 이더넷 인터페이스 또는 스마트폰 컴퓨터 시스템에의 셀룰러 네트워크 인터페이스). 이러한 네트워크 중 임의의 것을 사용하여, 컴퓨터 시스템(600)은 다른 네트워크와 통신할 수 있다. 이러한 통신은 단방향, 수신 전용(예: TV 방송), 단방향 전송 전용(예를 들어, CANbus에서 특정 CANbus 디바이스로) 또는 양방향(예를 들어, 로컬 또는 광역 디지털 네트워크를 사용하여 다른 컴퓨터 시스템으로)일 수 있다. 특정 프로토콜 및 프로토콜 스택이 전술한 바와 같은 네트워크 및 네트워크 인터페이스 각각에 사용될 수 있다.
전술한 휴먼 인터페이스 디바이스, 인간이 액세스 가능한 저장 디바이스 및 네트워크 인터페이스는 컴퓨터 시스템(600)의 코어(640)에 부착될 수 있다.
코어(640)는 하나 이상의 CPU(Central Processing Unit)(641), GPU(Graphics Processing Unit)(642), FPGA(Field Programmable Gate Area, FPGA)(643) 형태의 특화된 프로그램 가능한 처리 유닛, 특정 태스크를 위한 하드웨어 가속기(644), 그래픽 어댑터(650) 등을 포함할 수 있다. ROM(Read-Only Memory)(645), 랜덤 액세스 메모리(646), 사용자가 액세스할 수 없는 내부 하드 드라이브, SSD 등의 내부 대용량 저장장치(647)와 함께, 이러한 디바이스는 시스템 버스(648)을 통해 연결될 수 있다. 일부 컴퓨터 시스템에서, 시스템 버스(648)는 추가적인 CPU, GPU 등에 의한 확장을 가능하게 하는 하나 이상의 물리 플러그의 형태로 액세스 가능할 수 있다. 주변 기기는 코어의 시스템 버스(648)에 직접 연결되거나 주변 버스(649)를 통해 연결될 수 있다. 일례에서, 스크린(610)이 그래픽 어댑터(650)에 연결될 수 있다. 주변 버스를 위한 아키텍처로는 PCI, USB 등을 포함한다.
CPU(641), GPU(642), FPGA(643) 및 가속기(644)는, 조합하여, 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령어를 실행할 수 있다. 그 컴퓨터 코드는 ROM(645) 또는 RAM(646)에 저장될 수 있다. 이행 데이터(transitional data)는 RAM(646)에도 저장될 수 있는 반면, 영구 데이터는 예를 들어, 내부 대용량 저장장치(647)에 저장될 수 있다. 메모리 소자 중 어느 것에 대한 빠른 저장 및 검색은, 하나 이상의 CPU(641), GPU(642), 대용량 저장장치(647), ROM(645), RAM(646) 등과 밀접하게 연관될 수 있는 캐시 메모리의 사용을 통해 가능해질 수 있다.
컴퓨터로 판독 가능한 매체는 다양한 컴퓨터로 구현되는 동작(computer-implemented operation)을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시의 목적을 위해 특별히 설계되고 구축된 것일 수 있거나, 컴퓨터 소프트웨어 분야의 당업자에게 잘 알려져 있고 이용 가능한 종류일 수 있다.
한정이 아닌 예로서, 아키텍처(600), 구체적으로 코어(640)를 갖는 컴퓨터 시스템은 하나 이상의 유형의 컴퓨터로 판독 가능한 매체에 구현된 소프트웨어 실행하는 프로세서(들)(CPU, GPU, FPGA, 가속기 등을 포함)의 결과로서 기능을 제공할 수 있다. 이러한 컴퓨터로 판독 가능한 매체는 위에서 소개한 바와 같이 사용자가 액세스할 수 있는 대용량 저장장치와 연관된 매체일 수 있을 뿐만 아니라 코어 내부 대용량 저장장치(647) 또는 ROM(645)과 같은, 비일시적인 성질의 코어(640)의 특정 저장장치일 수 있다. 본 개시의 다양한 실시예를 구현하는 소프트웨어는 이러한 디바이스에 저장되고 코어(640)에 의해 실행될 수 있다. 컴퓨터로 판독 가능한 매체는 구체적인 필요에 따라, 하나 이상의 메모리 소자 또는 칩을 포함할 수 있다. 소프트웨어는 코어(640) 및 특히 내부의 프로세서(CPU, GPU, FPGA 등 포함)로 하여금 RAM(646)에 저장된 데이터 구조를 정의하고 소프트웨어에 의해 정의된 프로세스에 따라 이러한 데이터 구조를 수정하는 것을 포함하여, 여기에 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하도록 할 수 있다. 추가로 또는 대안으로서, 컴퓨터 시스템은 여기에 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하기 위해 소프트웨어 대신 또는 소프트웨어와 함께 작동할 수 있는, 논리 배선(logic hardwired)의 결과로서 그렇지 않으면 회로(예: 가속기(644))에 다른 방식으로 구현되는 기능을 제공할 수 있다. 소프트웨어에 대한 언급은 논리를 포함할 수 있으며, 적절한 경우 그 반대도 마찬가지이다. 컴퓨터로 판독 가능한 매체에 대한 언급은 실행을 위한 소프트웨어를 저장하는 회로(예: 집적 회로(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. 디코더에서 수행되는 메시 처리 방법으로서,
    복수의 정점을 포함하는 메시의 코딩 정보를 수신하는 단계 - 상기 코딩 정보는 상기 복수의 정점에 대응하는 복수의 제1 좌표와 복수의 제2 좌표, 및 상기 메시와 연관된 텍스처 맵을 포함하고, 상기 텍스처 맵은 상기 메시의 텍스처 정보를 지시하며, 상기 복수의 정점 중 각각의 정점은 개개의 제1 좌표 및 개개의 제2 좌표를 포함하여 이를 조합하여 각각의 정점의 포지션을 고유하게 식별할 수 있도록 함 -;
    상기 각각의 정점과 연관된 개개의 제1 좌표와 개개의 제2 좌표를 제1 인자에 기초하여 상기 개개의 제1 좌표를 조정하고 제2 인자에 기초하여 상기 개개의 제2 좌표를 조정함으로써 정규화하는 단계 - 상기 제1 인자와 상기 제2 인자는 (i) 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 코딩된 범위를 지시하는 비트 심도 값 및 (ii) 상기 텍스처 맵의 크기 중 적어도 하나와 연관됨 -;
    상기 제1 인자와 상기 제2 인자 각각에 기초하여, 정규화된 개개의 제1 좌표와 정규화된 개개의 제2 좌표를 확장하는 단계; 및
    상기 정규화 및 확장된 제1 좌표와, 상기 정규화 및 확장된 제2 좌표에 기초하여 상기 메시를 재구축하는 단계
    를 포함하는 메시 처리 방법.
  2. 제1항에 있어서,
    상기 정규화하는 단계는,
    상기 복수의 정점의 상기 제1 좌표 각각을 상기 제1 인자에 포함된 제1 제수(divider)로 나누는 단계, 및
    상기 복수의 정점의 상기 제2 좌표 각각을 상기 제2 인자에 포함된 제2 제수로 나누는 단계를 더 포함하고,
    상기 확장하는 단계는,
    상기 복수의 정점의 상기 정규화된 제1 좌표 각각에 상기 제1 인자에 포함된 제1 승수(multiplier)를 곱하는 단계, 및
    상기 복수의 정점의 상기 정규화된 제2 좌표 각각에 상기 제2 인자에 포함된 제2 승수를 곱하는 단계를 더 포함하는, 메시 처리 방법.
  3. 제1항에 있어서,
    상기 제1 인자는 (texwidth - 1) / (2tqp - 1)과 같고, 상기 texwidth는 텍스처 맵의 너비이고, 상기 tqp는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 코딩된 범위를 지시하는 상기 비트 심도 값이며,
    상기 제2 인자는 (texheight - 1) / (2tqp - 1)과 같고, 상기 texheight는 텍스처 맵의 높이인, 메시 처리 방법.
  4. 제1항에 있어서,
    상기 제1 인자는 제1 분수이고, 상기 제1 좌표 각각은 상기 제1 분수의 분모로 정규화되고 상기 제1 분수의 분자로 확장되며,
    상기 제2 인자는 제2 분수이고, 상기 제2 좌표 각각은 상기 제2 분수의 분모로 정규화되고 상기 제2 분수의 분자로 확장되는, 메시 처리 방법.
  5. 제1항에 있어서,
    사용 불가능한 상기 텍스처 맵의 크기에 기초하여,
    상기 제1 인자와 상기 제2 인자는 모두 (2tdepth - 1) / (2tqp - 1)과 같고, 상기 tdepth는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 초기 범위를 지시하는 비트 심도 값이고, 상기 tqp는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 코딩된 범위를 지시하는 상기 비트 심도 값인, 메시 처리 방법.
  6. 제1항에 있어서,
    상기 제1 인자는 (uMax / (2tqp - 1))과 같고, 상기 uMax는 제1 상수이고, 상기 tqp는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 코딩된 범위를 지시하는 상기 비트 심도 값이며,
    상기 제2 인자는 (vMax / (2tqp - 1))과 같고, 상기 vMax는 제2 상수인, 메시 처리 방법.
  7. 제6항에 있어서,
    상기 uMax는 상기 텍스처 맵의 너비에서 1을 뺀 것과 같고,
    상기 vMax는 상기 텍스처 맵의 높이에서 1을 뺀 것과 같은, 메시 처리 방법.
  8. 제6항에 있어서,
    사용 불가능한 상기 텍스처 맵의 크기에 기초하여,
    상기 uMax와 상기 vMax는 모두 2tdepth에서 1을 뺀 것과 같고, 상기 tdepth는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 초기 범위를 지시하는 비트 심도 값인, 메시 처리 방법.
  9. 제6항에 있어서,
    상기 uMax와 상기 vMax는 모두 2tdepth에서 1을 뺀 것과 같고, 상기 tdepth는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 초기 범위를 지시하는 비트 심도 값인, 메시 처리 방법.
  10. 처리 회로를 포함하는 메시 처리 장치로서,
    상기 처리 회로는,
    복수의 정점을 포함하는 메시의 코딩 정보를 수신하고 - 상기 코딩 정보는 상기 복수의 정점에 대응하는 복수의 제1 좌표와 복수의 제2 좌표, 및 상기 메시와 연관된 텍스처 맵을 포함하고, 상기 텍스처 맵은 상기 메시의 텍스처 정보를 지시하며, 상기 복수의 정점 중 각각의 정점은 개개의 제1 좌표 및 개개의 제2 좌표를 포함하여 이를 조합하여 각각의 정점의 포지션을 고유하게 식별할 수 있도록 함 -;
    상기 각각의 정점과 연관된 개개의 제1 좌표와 개개의 제2 좌표를 제1 인자에 기초하여 상기 개개의 제1 좌표를 조정하고 제2 인자에 기초하여 상기 개개의 제2 좌표를 조정함으로써 정규화하고 - 상기 제1 인자와 상기 제2 인자는 (i) 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 코딩된 범위를 지시하는 비트 심도 값 및 (ii) 상기 텍스처 맵의 크기 중 적어도 하나와 연관됨 -;
    상기 제1 인자와 상기 제2 인자 각각에 기초하여, 정규화된 개개의 제1 좌표와 정규화된 개개의 제2 좌표를 확장하고;
    상기 정규화 및 확장된 제1 좌표와, 상기 정규화 및 확장된 제2 좌표에 기초하여 상기 메시를 재구축하도록 구성되는,
    메시 처리 장치.
  11. 제10항에 있어서,
    상기 처리 회로는,
    상기 복수의 정점의 상기 제1 좌표 각각을 상기 제1 인자에 포함된 제1 제수로 나누어 상기 개개의 제1 좌표를 정규화하고,
    상기 복수의 정점의 상기 제2 좌표 각각을 상기 제2 인자에 포함된 제2 제수로 나누어 상기 개개의 제2 좌표를 정규화하고, ,
    상기 복수의 정점의 상기 정규화된 제1 좌표 각각에 상기 제1 인자에 포함된 제1 승수를 곱하여 상기 정규화된 개개의 제1 좌표를 확장하고,
    상기 복수의 정점의 상기 정규화된 제2 좌표 각각에 상기 제2 인자에 포함된 제2 승수를 곱하여 상기 정규화된 개개의 제2 좌표를 확장하도록 구성되는, 메시 처리 장치.
  12. 제10항에 있어서,
    상기 제1 인자는 (texwidth - 1) / (2tqp - 1)과 같고, 상기 texwidth는 텍스처 맵의 너비이고, 상기 tqp는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 코딩된 범위를 지시하는 상기 비트 심도 값이며,
    상기 제2 인자는 (texheight - 1) / (2tqp - 1)과 같고, 상기 texheight는 텍스처 맵의 높이인, 메시 처리 장치.
  13. 제10항에 있어서,
    상기 제1 인자는 제1 분수이고, 상기 제1 좌표 각각은 상기 제1 분수의 분모로 정규화되고 상기 제1 분수의 분자로 확장되며,
    상기 제2 인자는 제2 분수이고, 상기 제2 좌표 각각은 상기 제2 분수의 분모로 정규화되고 상기 제2 분수의 분자로 확장되는, 메시 처리 장치.
  14. 제10항에 있어서,
    사용 불가능한 상기 텍스처 맵의 크기에 기초하여,
    상기 제1 인자와 상기 제2 인자는 모두 (2tdepth - 1) / (2tqp - 1)과 같고, 상기 tdepth는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 초기 범위를 지시하는 비트 심도 값이고, 상기 tqp는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 코딩된 범위를 지시하는 상기 비트 심도 값인, 메시 처리 장치.
  15. 제10항에 있어서,
    상기 제1 인자는 (uMax / (2tqp - 1))과 같고, 상기 uMax는 제1 상수이고, 상기 tqp는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 코딩된 범위를 지시하는 상기 비트 심도 값이며,
    상기 제2 인자는 (vMax / (2tqp - 1))과 같고, 상기 vMax는 제2 상수인, 메시 처리 장치.
  16. 제15항에 있어서,
    상기 uMax는 상기 텍스처 맵의 너비에서 1을 뺀 것과 같고,
    상기 vMax는 상기 텍스처 맵의 높이에서 1을 뺀 것과 같은, 메시 처리 장치.
  17. 제15항에 있어서,
    사용 불가능한 상기 텍스처 맵의 크기에 기초하여,
    상기 uMax와 상기 vMax는 모두 2tdepth에서 1을 뺀 것과 같고, 상기 tdepth는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 초기 범위를 지시하는 비트 심도 값인, 메시 처리 장치.
  18. 제15항에 있어서,
    상기 uMax와 상기 vMax는 모두 2tdepth에서 1을 뺀 것과 같고, 상기 tdepth는 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 초기 범위를 지시하는 비트 심도 값인, 메시 처리 장치.
  19. 명령어를 저장하는, 컴퓨터로 판독 가능한 비일시적 저장 매체로서,
    상기 명령어는 적어도 하나의 프로세서에 의해 실행될 때 적어도 하나의 프로세서로 하여금,
    복수의 정점을 포함하는 메시의 코딩 정보를 수신하는 단계 - 상기 코딩 정보는 상기 복수의 정점에 대응하는 복수의 제1 좌표와 복수의 제2 좌표, 및 상기 메시와 연관된 텍스처 맵을 포함하고, 상기 텍스처 맵은 상기 메시의 텍스처 정보를 지시하며, 상기 복수의 정점 중 각각의 정점은 개개의 제1 좌표 및 개개의 제2 좌표를 포함하여 이를 조합하여 각각의 정점의 포지션을 고유하게 식별할 수 있도록 함 -;
    상기 각각의 정점과 연관된 개개의 제1 좌표와 개개의 제2 좌표를 제1 인자에 기초하여 상기 개개의 제1 좌표를 조정하고 제2 인자에 기초하여 상기 개개의 제2 좌표를 조정함으로써 정규화하는 단계 - 상기 제1 인자와 상기 제2 인자는 (i) 상기 복수의 정점의 상기 제1 좌표와 상기 제2 좌표의 코딩된 범위를 지시하는 비트 심도 값 및 (ii) 상기 텍스처 맵의 크기 중 적어도 하나와 연관됨 -;
    상기 제1 인자와 상기 제2 인자 각각에 기초하여, 정규화된 개개의 제1 좌표와 정규화된 개개의 제2 좌표를 확장하는 단계; 및
    상기 정규화 및 확장된 제1 좌표와, 상기 정규화 및 확장된 제2 좌표에 기초하여 상기 메시를 재구축하는 단계를 수행하게 하는,
    컴퓨터로 판독 가능한 비일시적 저장 매체.
  20. 제19항에 있어서,
    상기 명령어는 적어도 하나의 프로세서에 의해 실행될 때 적어도 하나의 프로세서로 하여금,
    상기 복수의 정점의 상기 제1 좌표 각각을 상기 제1 인자에 포함된 제1 제수로 나누어 상기 개개의 제1 좌표를 정규화하는 단계;
    상기 복수의 정점의 상기 제2 좌표 각각을 상기 제2 인자에 포함된 제2 제수로 나누어 상기 개개의 제2 좌표를 정규화하는 단계;
    상기 복수의 정점의 상기 정규화된 제1 좌표 각각에 상기 제1 인자에 포함된 제1 승수를 곱하여 상기 정규화된 개개의 제1 좌표를 확장하는 단계; 및
    상기 복수의 정점의 상기 정규화된 제2 좌표 각각에 상기 제2 인자에 포함된 제2 승수를 곱하여 상기 정규화된 개개의 제2 좌표를 확장하는 단계를 수행하게 하는, 컴퓨터로 판독 가능한 비일시적 저장 매체.
KR1020247018720A 2022-08-23 2023-06-13 Uv 좌표 범위 및 텍스처 맵 크기 KR20240105416A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63/400,361 2022-08-23
US18/208,152 2023-06-09

Publications (1)

Publication Number Publication Date
KR20240105416A true KR20240105416A (ko) 2024-07-05

Family

ID=

Similar Documents

Publication Publication Date Title
US20210168386A1 (en) Method and apparatus for point cloud coding
US11272158B2 (en) Method and apparatus for point cloud compression
KR102589711B1 (ko) 인터 예측 및 표시를 위한 적응적인 영상 해상도 리스케일링
US11120581B2 (en) Method and apparatus for point cloud compression
US20230063575A1 (en) Patch zippering for mesh compression
JP2023551303A (ja) メッシュ復元のための方法、装置及びコンピュータプログラム
US20240073433A1 (en) Uv coordinate ranges and texture map size
KR20240105416A (ko) Uv 좌표 범위 및 텍스처 맵 크기
US20240095965A1 (en) Duplicate vertices merging in mesh compression
US20240022708A1 (en) Grouping of mesh vertices in position compression
US20230377205A1 (en) Vertex position prediction in mesh compression
US20230388543A1 (en) Temporal prediction based vertex position compression
US20240015324A1 (en) Vertex position coding in mesh compression
US20240022764A1 (en) Texture coordinate coding in mesh compression
US20240048763A1 (en) Duplicate vertices based position compression
JP7504298B2 (ja) 3次元(3d)メッシュのuv座標を処理するための方法、装置及びコンピュータプログラム
US20230014820A1 (en) Methods and apparatuses for dynamic mesh compression
KR20240093828A (ko) 중복 정점 기반 포지션 압축
KR20240093873A (ko) 메시 압축의 텍스처 좌표 코딩
KR20240100382A (ko) 메시 압축에서의 중복적인 정점 병합
KR20230152752A (ko) 교차 성분 예측 방법 및 시스템, 그리고 컴퓨터로 판독 가능한 매체
KR20230169293A (ko) 신경 이미지 압축에서의 블록 단위 엔트로피 코딩 방법
KR20220110845A (ko) 포인트 클라우드 코딩을 위한 방법 및 장치