KR102486256B1 - 포인트 클라우드 코딩을 위한 하이-레벨 신택스 설계 - Google Patents

포인트 클라우드 코딩을 위한 하이-레벨 신택스 설계 Download PDF

Info

Publication number
KR102486256B1
KR102486256B1 KR1020217001877A KR20217001877A KR102486256B1 KR 102486256 B1 KR102486256 B1 KR 102486256B1 KR 1020217001877 A KR1020217001877 A KR 1020217001877A KR 20217001877 A KR20217001877 A KR 20217001877A KR 102486256 B1 KR102486256 B1 KR 102486256B1
Authority
KR
South Korea
Prior art keywords
video
coding
pcc
unit
geometry
Prior art date
Application number
KR1020217001877A
Other languages
English (en)
Other versions
KR20210022090A (ko
Inventor
예-쿠이 왕
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20210022090A publication Critical patent/KR20210022090A/ko
Application granted granted Critical
Publication of KR102486256B1 publication Critical patent/KR102486256B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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
    • 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/188Methods 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 video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2355Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23605Creation or processing of packetized elementary streams [PES]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

비디오 디코더에 의해 구현되는 포인트 클라우드 코딩(PCC) 방법. 이 방법은, 텍스처 콤포넌트 또는 지오메트리 콤포넌트의 코딩된 표현의 외부에 배치되는 프레임 그룹 헤더를 포함하는 인코딩된 비트스트림을 수신하고 텍스처 콤포넌트 또는 지오메트리 콤포넌트를 코딩하는데 사용되는 비디오 코덱을 식별하는 단계, 및 인코딩된 비트스트림을 디코딩하는 단계를 포함한다.

Description

포인트 클라우드 코딩을 위한 하이-레벨 신택스 설계
본 개시 내용은 일반적으로 포인트 클라우드 코딩과 관련되고, 특히 포인트 클라우드 코딩을 위한 하이-레벨 신택스(high-level syntax)과 관련된다.
삭제
포인트 클라우드는 엔터테인먼트 산업, 지능형 자동차 내비게이션, 지리공간적 검사(geospatial inspection), 실제 물체의 3차원(3D) 모델링, 시각화 등을 포함하는 다양한 애플리케이션에 사용된다. 포인트 클라우드의 불균일 샘플링 지오메트리를 고려할 때, 이러한 데이터의 저장 및 전송을 위한 간결한 표현이 유용하다. 다른 3D 프리젠테이션과 비교할 때, 불규칙한 포인트 클라우드가 더 일반적이며 광범위한 센서 및 데이터 수집 전략에 적용된다. 예를 들어, 가상 현실 세계에서 3D 프리젠테이션을 수행하거나 텔레프레즌스(tele-presence) 환경에서 원격 렌더링을 수행할 때, 가상 인물의 렌더링 및 실시간 명령이 고밀도(dense) 포인트 클라우드 데이터 세트로서 처리된다.
제1 측면은 비디오 디코더에 의해 구현되는 포인트 클라우드 코딩(PCC; point cloud coding)의 방법에 관한 것이다. 이 방법은, 텍스처 콤포넌트 또는 지오메트리 콤포넌트의 코딩된 표현의 외부에 배치되는 프레임 그룹 헤더를 포함하는 인코딩된 비트스트림을 수신하고 상기 텍스처 콤포넌트 또는 상기 지오메트리 콤포넌트를 코딩하는데 사용되는 비디오 코덱을 식별하는 단계; 및 상기 인코딩된 비트스트림을 디코딩하는 단계;를 포함한다.
제2 측면은 비디오 인코더에 의해 구현되는 포인트 클라우드 코딩(PCC) 방법에 관한 것이다. 이 방법은, 텍스처 콤포넌트 또는 지오메트리 콤포넌트의 코딩된 표현의 외부에 배치되는 프레임 그룹 헤더를 포함하는 인코딩된 비트스트림을 생성하고 상기 텍스처 콤포넌트 또는 상기 지오메트리 콤포넌트를 코딩하는데 사용되는 비디오 코덱을 식별하는 단계; 및 상기 인코딩된 비트스트림을 디코더 쪽으로 전송하는 단계;를 포함한다.
이 방법은 아래에서 기술하는 바와 같이 포인트 클라우드 코딩에 연관된 하나 이상의 문제를 해결하는 하이-레벨 신택스 설계를 제공한다. 따라서, 비디오 코덱 및 비디오 코딩의 프로세스가 향상되고 더 효율적이게 된다.
이와 같은 제1 또는 제2 측면에 따른 방법의 제1 구현 형태에서, 상기 코딩된 표현은 PCC 네트워크 추상화 레이어(NAL; network abstraction layer) 유닛의 페이로드(payload)에 포함된다.
이와 같은 제1 또는 제2 측면에 따른 방법의 제2 구현 형태 또는 상기 제1 또는 제2 측면의 임의의 선행하는 구현 형태에서, 상기 PCC NAL 유닛의 페이로드는 상기 비디오 코덱에 대응하는 지오메트리 콤포넌트를 포함한다.
이와 같은 제1 또는 제2 측면에 따른 방법의 제3 구현 형태 또는 상기 제1 또는 제2 측면의 임의의 선행하는 구현 형태에서, 상기 PCC NAL 유닛의 페이로드는 상기 비디오 코덱에 대응하는 텍스처 콤포넌트를 포함한다.
이와 같은 제1 또는 제2 측면에 따른 방법의 제4 구현 형태 또는 상기 제1 또는 제2 측면의 임의의 선행하는 구현 형태에서, 상기 비디오 코덱은 고효율 비디오 코딩(HEVC; high efficiency video coding)이다.
이와 같은 제1 또는 제2 측면에 따른 방법의 제5 구현 형태 또는 상기 제1 또는 제2 측면의 임의의 선행하는 구현 형태에서, 상기 비디오 코덱은 어드밴스드 비디오 코딩(AVC; advanced video coding)이다.
이와 같은 제1 또는 제2 측면에 따른 방법의 제6 구현 형태 또는 상기 제1 또는 제2 측면의 임의의 선행하는 구현 형태에서, 상기 비디오 코덱은 다용도 비디오 코딩(VVC; versatile video coding)이다.
이와 같은 제1 또는 제2 측면에 따른 방법의 제7 구현 형태 또는 상기 제1 또는 제2 측면의 임의의 선행하는 구현 형태에서, 상기 비디오 코덱은 필수 비디오 코딩(EVC; essential video coding)이다.
이와 같은 제1 또는 제2 측면에 따른 방법의 제8 구현 형태 또는 상기 제1 또는 제2 측면의 임의의 선행하는 구현 형태에서, 상기 지오메트리 콤포넌트는 포인트 클라우드 프레임에 연관된 좌표 세트를 포함한다.
이와 같은 제1 또는 제2 측면에 따른 방법의 제9 구현 형태 또는 상기 제1 또는 제2 측면의 임의의 선행하는 구현 형태에서, 상기 좌표 세트는 데카르트 좌표계이다.
이와 같은 제1 또는 제2 측면에 따른 방법의 제10 구현 형태 또는 상기 제1 또는 제2 측면의 임의의 선행하는 구현 형태에서, 상기 텍스처 콤포넌트는 포인트 클라우드 프레임의 루마 샘플 값 세트를 포함한다.
제3 측면은, 인코딩할 화상을 수신하거나 디코딩할 비트스트림을 수신하도록 구성되는 수신기, 상기 수신기에 연결되는 송신기-상기 송신기는 상기 비트스트림을 디코더로 전송하거나 디코딩된 이미지를 디스플레이로 전송하도록 구성됨-, 상기 수신기 또는 송신기 중 적어도 하나에 연결되는 메모리-상기 메모리는 명령을 저장하도록 구성됨-, 및 상기 메모리에 연결되는 프로세서-상기 프로세서는 상기 메모리에 저장된 명령을 실행하여 상기 선행하는 측면 또는 구현예 중 임의의 방법을 수행하도록 구성됨-를 포함하는 코딩 장치에 관한 것이다.
상기 코딩 장치는 아래에 기술되는 바와 같이 포인트 클라우드 코딩에 연관된 하나 이상의 문제를 해결하는 하이-레벨 신택스 설계를 사용한다. 따라서, 비디오 코덱 및 비디오 코딩의 프로세스가 향상되고 더 효율적이게 된다.
이와 같은 제3 측면에 따른 장치의 제1 구현 형태에서, 이상기 장치는 이미지를 표시하도록 구성되는 디스플레이를 더 포함한다.
제4 측면은 인코더 및 상기 인코더와 통신하는 디코더를 포함하는 시스템에 관한 것이다. 상기 인코더 또는 상기 디코더는 임의의 선행하는 측면 또는 구현예의 코딩 장치를 포함한다.
상기 시스템은 아래에 기술되는 바와 같이 포인트 클라우드 코딩에 연관된 하나 이상의 문제를 해결하는 하이-레벨 신택스 설계를 사용한다. 따라서, 비디오 코덱 및 비디오 코딩의 프로세스가 향상되고 더 효율적이게 된다.
제5 측면은 인코딩할 화상을 수신하거나 디코딩할 비트스트림을 수신하도록 구성되는 수신 수단, 상기 수신 수단에 연결되는 전송 수단-상기 전송 수단은 상기 비트스트림을 디코더로 전송하거나 디코딩된 이미지를 디스플레이 수단으로 전송하도록 구성됨-, 상기 수신 수단 또는 상기 전송 수단 중 적어도 하나에 연결되는 저장 수단-상기 저장 수단은 명령을 저장하도록 구성됨-, 및 상기 저장 수단에 연결되는 처리 수단-상기 처리 수단은 상기 저장 수단에 저장된 명령을 실행하여 임의의 선행하는 측면 또는 구현예의 방법을 수행하도록 구성됨-을 포함하는 코딩 수단 에 관한 것이다.
상기 코딩 수단은 아래에 기술되는 바와 같이 포인트 클라우드 코딩에 연관된 하나 이상의 문제를 해결하는 하이-레벨 신택스 설계를 사용한다. 따라서, 비디오 코덱 및 비디오 코딩의 프로세스가 향상되고 더 효율적이게 된다.
명확성을 위해, 상기 전술한 실시예 중 임의의 하나는 본 개시의 범위 내에서 새로운 실시예를 생성하기 위해 다른 전술한 실시예 중 임의의 하나 이상과 결합할 수 있다.
이들 및 다른 특징은 첨부된 도면 및 도면과 연대하여 설명되는 아래의 상세한 설명으로부터 더욱 명확하게 이해될 것이다.
본 개시의 더욱 완전한 이해를 위해, 첨부된 도면 및 상세한 설명과 관련하여 다음의 간단한 설명을 참조하며, 여기서 동일한 참조 번호는 동일한 부분을 나타낸다.
도 1은 컨텍스트 모델링 기법을 이용할 수 있는 예시적인 코딩 시스템을 도시하는 블록도이다.
도 2는 텍스트 모델링 기법을 구현할 수 있는 예시적인 비디오 인코더를 도시하는 블록도이다.
도 3은 컨텍스트 모델링 기법을 구현할 수 있는 예시적인 비디오 디코더를 도시하는 블록도이다.
도 4는 PCC와 호환되는 데이터 구조의 실시예의 개략도이다.
도 5는 비디오 디코더에 의해 구현되는 포인트 클라우드 코딩 방법의 실시예이다.
도 6은 비디오 인코더에 의해 구현되는 포인트 클라우드 코딩 방법의 실시예이다.
도 7은 예시적인 비디오 코딩 디바이스의 개략도이다.
도 8은 코딩 수단의 실시예의 개략도이다.
하나 이상의 실시예의 예시적인 구현이 아래에 제공되지만, 개시된 시스템 및/또는 방법은 현재 알려져 있거나 존재하는지 여부에 관계없이 임의의 수량의 기법을 사용하여 구현될 수 있다는 것을 처음부터 이해해야 한다. 본 명세서는, 본 명세서에서 예시되고 설명되는 예시적인 설계 및 구현을 포함하여, 아래에 예시된 예시적인 구현, 도면, 및 기술로 제한되지 않아야 하며, 최대 범위의 동등물에 따라, 첨부된 청구 범위의 범위 내에서 수정될 수 있다.
비디오 코딩 표준에는, ITU-T(International Telecommunication Union Telecommunication Standardization Sector) H.261, ISO(International Organization for Standardization) / IEC(International Electrotechnical Commission) MPEG(Moving Picture Experts Group)-1 Part 2, ITU-T H.262 또는 ISO/IEC MPEG-2 Part 2, ITU-T H.263, ISO/IEC MPEG-4 Part 2, ITU-T H.264 또는 ISO/IEC MPEG-4 Part 10라고도 하는 AVC(Advanced Video Coding), 및 ITU-T H.265 또는 MPEG-H Part 2라고도 하는 HEVC(High Efficiency Video Coding)이 포함된다. AVC에는 SVC(Scalable Video Coding), MVC(Multiview Video Coding), MVC+D(Multiview Video Coding plus Depth), 및 3D-AVC(3D AVC)와 같은 확장이 포함된다. HEVC에는 SHVC(Scalable HEVC), MV-HEVC(Multiview HEVC), 및 3D-HEVC(3D HEVC)와 같은 확장이 포함된다.
포인트 클라우드는 3D 공간에서 데이터 포인트의 세트이다. 각각의 데이터 포인트는 위치(예컨대, X, Y, Z), 색상(예컨대, R, G, B 또는 Y, U, V), 및 가능하면 투명도, 반사도, 획득 시간, 등과 같은 다른 특성을 결정하는 파라미터로 구성된다. 일반적으로 클라우드의 각각의 포인트에는 동일한 수의 속성이 첨부된다. 포인트 클라우드는, 실시간 3D 몰입형 영상회의(immersive telepresence), 대화형 시차(interactive parallax)를 가지는 가상 현실(VR) 콘텐츠, 3D 자유 시점 스포츠 재생 방송, 지리 정보 시스템, 문화 유산, 대규모 3D 동적 맵에 기반한 자율 내비게이션, 및 자동차 애플리케이션 과 같은 다양한 애플리케이션에 사용될 수 있다.
ISO/IEC MPEG(Moving Picture Experts Group)는 상당한 코딩 효율과 네트워크 환경에 대한 강건성을 가지는 무손실 및 손실 압축 포인트 클라우드 데이터를 위한 포인트 클라우드 코딩에 대한 새로운 코덱 표준의 개발을 2016년에 시작했다. 이 코덱 표준을 사용하면, 포인트 클라우드를 컴퓨터 데이터의 형태로 조작하고 다양한 저장 매체에 저장하며, 기존 및 미래의 네트워크를 통해 송수신하고 기존 및 미래의 방송 채널에 배포할 수 있다.
최근, PCC(Point Cloud Coding) 작업은 PCC 카테고리 1, PCC 카테고리 2, 및 PCC 카테고리 3의 3개의 카테고리로 분류되었고, 여기서 2개의 별개의 작업 초안이 개발되고 있는데, 하나는 PCC 카테고리 2(PCC Cat2)이고, 다른 하나는 PCC 카테고리 1 및 3(PCC Cat13)이다. PCC Cat2에 대한 최신 작업 초안(WD; working draft)은 MPEG 출력 문서 N17534에 포함되고, PCC Cat13에 대한 최신 WD는 MPEG 출력 문서 N17533에 포함된다.
PCC Cat2 WD에서 PCC Cat2 코덱의 설계 뒤에 있는 기본 철학은, 포인트 클라우드 데이터를 상이한 비디오 시퀀스의 세트로서 압축함으로써, 기존 비디오 코덱을 활용하여 동적 포인트 클라우드의 지오메트리 및 텍스처 정보를 압축하는 것이다, 특히, 포인트 클라우드 데이터의 지오메트리 정보를 나타내는 비디오 시퀀스와 텍스처 정보를 나타내는 비디오 시퀀스의 2개의 비디오 시퀀스가 비디오 코덱을 사용하여 생성되고 압축된다. 두 비디오 시퀀스를 해석하기 위한 추가적인 메타 데이터, 즉 점유 맵과 보조 패치 정보가 또한 별도로 생성되고 압축된다.
불행하게도, 기존의 PCC 설계에는 단점이 있다. 예를 들어, 하나의 시간 인스턴스, 즉 하나의 액세스 유닛(AU)에 속하는 데이터 유닛은 디코딩 순서에서 연속적이지 않는다. PCC Cat 2 WD에서, 각각의 AU에 대한 텍스처, 지오메트리, 보조 정보, 및 점유 맵의 데이터 유닛은 프레임 그룹 단위로 인터리빙(interleave)된다. 즉, 그룹 내의 모든 프레임에 대한 지오메트리 데이터가 함께 있다. 텍스처 데이터, 등에 대하여도 도 마찬가지이다. PCC Cat 13 WD에서, 각각의 AU에 대한 일반 속성과 지오메트리의 데이터 유닛은 (예컨대, 전체 PCC 비트스트림과 동일한 길이를 가지는 하나의 프레임 그룹만이 있는 경우 PCC Cat2 WD에서와 마찬가지로) 전체 PCC 비트스트림 수준에서 인터리브된다. 하나의 AU에 속하는 데이터 유닛의 인터리빙은 본질적으로 애플리케이션 시스템의 프레젠테이션 시간 기간에 있는 프레임 그룹의 길이와 최소한 동일한 종단 간 지연을 발생시킨다.
또 다른 단점은 비트스트림 포맷과 관련이 있다. 비트스트림 포맷은 0x0003과 같은 시작 코드 패턴의 에뮬레이션을 허용하므로 시작 코드 에뮬레이션 방지가 필요한 MPEG-2 TS(Transport Stream)를 통한 전송에는 작동하지 않는다. PCC Cat2의 경우, 현재 group_of_frames_geometry_video_payload( ) 및 group_of_frames_texture_video_payload( )만이, HEVC 또는 AVC가 지오메트리 및 텍스처 콤포넌트의 코딩에 사용되는 경우 시작 코드 에뮬레이션 방지를 가진다. PCC Cat13의 경우, 시작 코드 에뮬레이션 방지가 비트스트림의 어디에도 없다.
PCC Cat2 WD에서, 지오메트리 및 텍스처 비트스트림에 대한 코덱 정보(예컨대, 코덱, 프로파일, 레벨 등) 중 일부는 group_of_frames_geometry_video_payload( ) 및 group_of_frames_texture_video_payload( ) 구조의 여러 인스턴스에 깊이 묻혀 있다. . 또한, 보조 정보 및 점유 맵 콤포넌트의 디코딩에 대한, 그리고 포인트 클라우드 재구성에 대한 능력을 나타내는 프로파일 및 레벨과 같은 일부 정보가 누락되어 있다.
포인트 클라우드 코딩에 관련된 전술한 문제 중 하나 이상을 해결하는 하이-레벨 신택스 설계가 여기에 개시된다. 아래에서 더 자세히 설명되는 바와 같이, 본 개시는, PCC NAL 유닛의 페이로드에서 컨텐츠의 유형을 지정하기 위해, 데이터 유닛 헤더(PCC 네트워크 액세스 레이어(NAL) 헤더라고도 함) 내의 유형 인디케이터를 이용한다. 그리고, 본 개시는, 프레임 그룹 헤더 파라미터를 전달하기 위해 프레임 그룹 헤더 NAL 유닛을 이용한다. 프레임 그룹 헤더 NAL 유닛은 각각의 지오메트리 또는 텍스처 비트스트림의 프로파일 및 레벨을 시그널링하는데 또한 사용될 수 있다.
도 1은 PCC 비디오 코딩 기법을 이용할 수 있는 예시적인 코딩 시스템(10)을 도시하는 블록도이다. 도 1에 도시된 바와 같이, 코딩 시스템(10)은 데스티네이션 디바이스(14)에 의해 추후 디코딩될 인코딩된 비디오 데이터를 제공하는 소스 디바이스(12)를 포함한다. 특히, 소스 디바이스(12)는 컴퓨터-판독 가능한 매체(16)를 통해 데스티네이션 디바이스(14)에 비디오 데이터를 제공할 수 있다. 소스 디바이스(12) 및 데스티네이션 디바이스(14)는, 데스크탑 컴퓨터, 노트북(예컨대, 랩톱) 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, 소위 "스마트" 폰과 같은 전화 핸드셋, 소위 "스마트" 패드, 텔레비전, 카메라, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 디바이스, 등을 포함하는 넓은 범위의 디바이스 중 하나를 포함할 수 있다. 일부 경우에, 소스 디바이스(12) 및 데스티네이션 디바이스(14)는 무선 통신을 위해 장착될 수 있다.
데스티네이션 디바이스(14)는 컴퓨터-판독 가능한 매체(16)를 통해 디코딩될 인코딩된 비디오 데이터를 수신할 수 있다. 컴퓨터-판독 가능한 매체(16)는 인코딩된 비디오 데이터를 소스 디바이스(12)로부터 데스티네이션 디바이스(14)로 이동시킬 수 있는 임의의 유형의 매체 또는 디바이스를 포함할 수 있다. 한 예로서, 컴퓨터-판독 가능한 매체(16)는 소스 디바이스(12)가 인코딩된 비디오 데이터를 직접 데스티네이션 디바이스(14)로 실시간으로 전송할 수 있도록 하는 통신 매체를 포함할 수 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조될 수 있고, 데스티네이션 디바이스(14)로 전송될 수 있다. 통신 매체는 무선 주파수(RF) 스펙트럼 또는 하나 이상의 물리적 전송 라인과 같은 임의의 무선 또는 유선통신 매체를 를 포함할 수 있다. 통신 매체는 근거리 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷-기반 네트워크의 일부를 형성할 수 있다. 통신 매체는 라우터, 스위치, 기지국, 또는 소스 디바이스(12)로부터 데스티네이션 디바이스(14)로의 통신을 용이하게 하는데 유용한 임의의 다른 장비를 포함할 수 있다.
일부 예에서, 인코딩된 데이터는 출력 인터페이스(22)로부터 저장 장치로 출력될 수 있다. 이와 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 장치로부터 액세스될 수 있다. 저장 장치는, 하드 드라이브, 블루-레이 디스크, 디지털 비디오 디스크(DVD), 컴팩트 디스크 읽기 전용 메모리(CD-ROM), 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하는데 적합한 임의의 다른 디지털 저장 매체와 같은, 임의의 다양한 분산 또는 로컬 액세스 데이터 저장 매체를 포함할 수 있다. 추가적인 예로서, 저장 장치는, 소스 디바이스(12)에 의해 생성된 인코딩된 비디오를 저장할 수 있는 파일 서버 또는 다른 중간 저장 장치에 대응할 수 있다. 데스티네이션 디바이스(14)는 저장된 비디오 데이터를 저장 장치로부터 스트리밍 또는 다운로드를 통해 액세스할 수 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 데스티네이션 디바이스(14)에 전송할 수 있는 임의의 유형의 서버일 수 있다. 예시적인 파일 서버에는 웹 서버(예컨대, 웹 사이트용), 파일 전송 프로토콜(FTP) 서버, NAS(Network Attached Storage) 디바이스, 또는 로컬 디스크 드라이브가 포함된다. 데스티네이션 디바이스(14)는 인터넷 연결을 포함하는 임의의 표준 데이터 연결을 통해 인코딩된 비디오 데이터에 액세스할 수 있다. 여기에는 무선 채널(예컨대, Wi-Fi 연결), 유선 연결(예컨대, 디지털 가입자 라인(DSL), 케이블 모뎀, 등), 또는 파일 서버에 저장된 인코딩된 비디오 데이터를 액세스하는데 적합한 양자의 조합이 포함될 수 있따. 저장 장치로부터의 인코딩된 비디오 데이터의 전송은 스트리밍 전송, 다운로드 전송, 또는 이들의 조합일 수 있다.
본 개시의 기술은 반드시 무선 애플리케이션 또는 설정으로 제한되는 것은 아니다. 이 기술은, 공중파 텔레비전 방송, 케이블 텔레비전 전송, 위성 텔레비전 전송, DASH(dynamic adaptive streaming over HTTP)와 같은 인터넷 스트리밍 비디오 전송, 데이터 저장 매체 상에 인코딩된 디지털 비디오, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션과 같은 다양한 멀티미디어 애플리케이션 중 임의의 것을 지원하는 비디오 코딩에 적용될 수 있다. 일부 예에서, 코딩 시스템(10)는 단방향 또는 양방향 비디오 전송을 지원하여 비디오 스트리밍, 비디오 재생, 비디오 방송, 및/또는 비디오 전화와 같은 애플리케이션을 지원하도록 구성될 수 있다.
도 1의 예에서, 소스 디바이스(12)는 비디오 소스(18), 비디오 인코더(20), 및 출력 인터페이스(22)를 포함한다. 데스티네이션 디바이스(14)는 입력 인터페이스(28), 비디오 디코더(30), 및 디스플레이 디바이스(32)를 포함한다. 본 개시에 따르면, 소스 디바이스(12)의 비디오 인코더(20) 및/또는 데스티네이션 디바이스(14)의 비디오 디코더(30)는 비디오 코딩을 위한 기술을 적용하도록 구성될 수 있다. 다른 예로서, 소스 디바이스 및 데스티네이션 디바이스는 다른 콤포넌트 또는 배치를 포함할 수 있다. 예를 들어, 소스 디바이스(12)는 외부 카메라와 같은 외부 비디오 소스로부터 비디오 데이터를 수신할 수 있다. 마찬가지로, 데스티네이션 디바이스(14)는 통합된 디스플레이 디바이스를 포함하지 않고 외부 디스플레이 디바이스와 인터페이스할 수 있다.
도 1에 도시된 코딩 시스템(10)은 단지 하나의 예이다. 비디오 코딩 기술은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수 있다. 본 개시의 기술은 일반적으로 비디오 코딩 디바이스에 의해 수행되지만, 이 기술은 통상적으로 "CODEC"으로 지칭되는 비디오 인코더/디코더에 의해 수행될 수도 있다. 또한, 본 개시의 기술은 또한 비디오 전처리기(preprocessor)에 의해 수행될 수 있다. 비디오 인코더 및/또는 디코더는 그래픽 처리 유닛(GPU) 또는 유사한 디바이스일 수 있다.
소스 디바이스(12) 및 데스티네이션 디바이스(14)는 소스 디바이스(12)가 데스티네이션 디바이스(14)로 전송하기 위한 코딩된 비디오 데이터를 생성하는 그러한 코딩 디바이스의 예일 뿐이다. 일부 예에서, 소스 디바이스(12) 및 데스티네이션 디바이스(14)는 소스 및 데스티네이션 디바이스들(12, 14) 각각이 비디오 인코딩 및 디코딩 콤포넌트들을 포함하도록 실질적으로 대칭적인 방식으로 동작할 수 있다. 따라서, 코딩 시스템(10)은, 예컨대, 비디오 스트리밍, 비디오 재생, 비디오 방송 또는 비디오 전화를 위해 비디오 디바이스(12, 14) 사이의 단방향 또는 양방향 비디오 전송을 지원할 수 있다.
소스 디바이스(12)의 비디오 소스(18)는, 비디오 카메라와 같은 비디오 캡처 디바이스, 이전에 캡처된 비디오를 포함하는 비디오 아카이브, 및/또는 비디오 컨텐츠 제공자로부터 비디오를 수신하기 위한 비디오 피드 인터페이스를 포함할 수 있다. 추가적인 대안으로서, 비디오 소스(18)는 소스 비디오로서 컴퓨터 그래픽-기반 데이터, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터-생성 비디오의 조합을 생성할 수 있다.
일부 경우에, 비디오 소스(18)가 비디오 카메라인 경우, 소스 디바이스(12) 및 데스티네이션 디바이스(14)는 소위 카메라 폰 또는 비디오 폰을 형성할 수 있다. 그러나, 위에서 언급한 바와 같이, 본 개시에서 설명된 기술은 일반적으로 비디오 코딩에 적용될 수 있고, 무선 및/또는 유선 애플리케이션에 적용될 수 있다. 각각의 경우에, 캡처되는, 사전 캡처된, 또는 컴퓨터-생성된 비디오는 비디오 인코더(20)에 의해 인코딩될 수 있다. 인코딩된 비디오 정보는 출력 인터페이스(22)에 의해 컴퓨터-판독 가능한 매체(16)로 출력될 수 있다.
컴퓨터-판독 가능한 매체(16)는 무선 브로드캐스트 또는 유선 네트워크 전송과 같은 일시적 매체, 또는 하드 디스크, 플래시 드라이브, 컴팩트 디스크, 디지털 비디오 디스크, 블루-레이 디스크, 또는 다른 컴퓨터-판독 가능한 매체와 같은 저장 매체(즉, 비일시적 저장 매체)를 포함할 수 있다. 일부 예에서, 네트워크 서버(도시되지 않음)는 인코딩된 비디오 데이터를 소스 디바이스(12)로부터 수신할 수 있고, 인코딩된 비디오 데이터를 데스티네이션 디바이스(14)로, 예컨대, 네트워크 전송을 통해 제공할 수 있다. 이와 유사하게, 디스크 스탬핑 설비와 같은 매체 생산 설비의 컴퓨팅 디바이스는 인코딩된 비디오 데이터를 소스 디바이스(12)로부터 수신할 수 있고, 인코딩된 비디오 데이터를 포함하는 디스크를 생성할 수 있다. 따라서, 컴퓨터-판독 가능한 매체(16)는 다양한 예들에서 다양한 형태의 하나 이상의 컴퓨터-판독 가능한 매체를 포함하는 것으로 이해될 수 있다.
데스티네이션 디바이스(14)의 입력 인터페이스(28)는 컴퓨터-판독 가능한 매체(16)로부터 정보를 수신한다. 컴퓨터-판독 가능한 매체(16)의 정보는 비디오 인코더(20)에 의해 규정된 신택스 정보를 포함할 수 있으며, 이는 비디오 디코더(30)에 의해 또한 사용되고, 블록 및 다른 코딩된 유닛, 예컨대, 화상의 그룹(GOP)의 특성 및/또는 프로세싱을 기술하는 신택스 엘리먼트를 포함한다. 디스플레이 디바이스(32)는 디코딩된 비디오 데이터를 사용자에게 디스플레이하며, 음극선관(CRT), 액정 디스플레이(LCD), 플라즈마 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 다른 유형의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스 중 임의의 것을 포함할 수 있다.
비디오 인코더(20) 및 비디오 디코더(30)은 현재 개발중인 HEVC(High Efficiency Video Coding) 표준과 같은 비디오 코딩 표준에 따라 동작할 수 있으며, HEVC 테스트 모델(HM)에 따를 수 있다. 대안적으로, 비디오 인코더(20) 및 비디오 디코더(30)는, MPEG(Moving Picture Expert Group)-4, Part 10라고도 지칭되는, ITU-T(International Telecommunication Union Telecommunication Standardization Sector) H.264 표준, AVC(Advanced Video Coding), H.265/HEVC, 또는 이러한 표준의 확장과 같은, 다른 독점적 또는 산업 표준에 따라 동작할 수 있다. 그러나, 본 개시의 기법은 임의의 특정한 코딩 표준에 제한되지 않는다. 비디오 코딩 표준의 다른 예로는, MPEG-2 및 ITU-T H.263이 있다. 도 1에는 도시되지 않았으나, 일부 측면에서, 비디오 인코더(20) 및 비디오 디코더(30)는 각각 오디오 인코더 및 디코더와 통합될 수 있고, 공통 데이터 스트림 또는 별개 데이터 스트림에서 오디오 및 비디오 모두의 인코딩을 핸들링하기 위해, 적정 멀티플렉서-디멀티플렉서(MUX-DEMUX) 유닛, 또는 다른 하드웨어 및 소프트웨어를 포함할 수 있다. 해당되는 경우, MUX-DEMUX 유닛은 ITU H.223 멀티플렉서 프로토콜, 또는 UDP(user datagram protocol)와 같은 다른 프로토콜을 준수할 수 있다.
비디오 인코더(20) 및 비디오 디코더(30) 각각은, 하나 이상의 마이크로프로세서, 디지털 신호 처리기(DSP; digital signal processor), 주문형 집적 회로(ASIC; application specific integrated circuit), 필드 프로그래밍 가능 게이트 어레이(FPGA; field-programmable gate array), 이산 논리, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합과 같은 다양한 적합한 인코더 회로 중 하나로 구현될 수 있다. 기술이 부분적으로 소프트웨어로 구현되는 경우, 디바이스는 적절한 비일시적 컴퓨터-판독 가능한 매체에 소프트웨어에 대한 명령을 저장할 수 있고, 하나 이상의 프로세서를 사용하여 하드웨어에서 명령을 실행하여 본 개시의 방법을 수행할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30)의 각각은, 하나 이상의 인코더 또는 디코더에 포함될 수 있으며, 이들 중 어느 것이라도 각각의 디바이스에서 결합된 인코더/디코더(CODEC)의 일부로서 통합될 수 있다. 비디오 인코더(20) 및/또는 비디오 디코더(30)를 포함하는 디바이스는 집적회로, 마이크로프로세서, 및/또는 셀룰러 폰과 같은 무선 통신 디바이스를 포함할 수 있다.
도 2는 비디오 코딩 기법을 구현할 수 있는 비디오 인코더(20)의 예를 도시하는 블록도이다. 비디오 인코더(20)는 비디오 슬라이스 내의 비디오 블록의 인트라-코딩 및 인터-코딩을 수행할 수 있다. 인트라-코딩은 공간적 예측에 의존하여, 주어진 비디오 프레임 또는 화상 내에서 비디오의 공간적 중복성을 줄이거나 제거한다. 인터 코딩은 시간적 예측에 의존하여, 비디오 시퀀스의 인접한 프레임 또는 화상 내의 비디오에서 시간적 중복성을 줄이거나 제거한다. 인트라-모드(I 모드)는 여러 공간 기반 코딩 모드 중 임의의 것을 지칭할 수 있다. 단-방향(유니 예측이라고도 함) 예측(P 모드) 또는 바이-예측(바이 예측이라고도 함)(B 모드)와 같은 인터-모드는, 여러 시간-기반 코딩 모드 중 임의의 것을 지칭할 수 있다.
도 2에 도시된 바와 같이, 비디오 인코더(20)는 인코딩될 비디오 프레임 내에서 현재 비디오 블록을 수신한다. 도 2의 예에서, 비디오 인코더(20)는 모드 선택 유닛(40), 참조 프레임 메모리(64), 합산기(50), 변환 처리 유닛(52), 양자화 유닛(54), 및 엔트로피 코딩 유닛(56)을 포함한다. 다음으로, 모드 선택 유닛(40)은, 모션 보상 유닛(44), 모션 추정 유닛(42), 인트라-예측(인트라 예측이라고도 함) 유닛(46), 및 파티션 유닛(48)을 포함한다. 비디오 블록 재구성을 위해, 비디오 인코더(20)는 역양자화 유닛(58), 역변환 유닛(60), 및 합산기(62)을 또한 포함한다. 블록 경계를 필터링하여 재구성된 비디오로부터 블록성 아티팩트(blockiness artifact)를 제거하기 위해 디블로킹 필터(deblocking filter)(도 2에는 도시되지 않음)가 또한 포함될 수 있다. 원하는 경우, 디블로킹 필터는 통상적으로 합산기(62)의 출력을 필터링한다. 디블로킹 필터와 함께 (인루프(in loop) 또는 사후 루프(post loop)로) 추가적인 필터가 또한 사용될 수 있다. 간결함을 위해 이러한 필터가 표시되지 않지만, 원한다면 합산기 (50)의 출력을 (인-루프 필터로서) 필터링할 수 있다.
인코딩 프로세스 동안, 비디오 인코더(20)는 코딩될 비디오 프레임 또는 슬라이스를 수신한다. 프레임 또는 슬라이스는 여러 비디오 블록으로 분할될 수 있다. 모션 추정 유닛(42) 및 모션 보상 유닛(44)은 시간적 예측을 제공하기 위해 하나 이상의 참조 프레임에서 하나 이상의 블록에 대해 수신된 비디오 블록의 인터-예측 코딩을 수행한다. 인트라-예측 유닛(46)은 공간적 예측을 제공하기 위해 코딩될 블록과 동일한 프레임 또는 슬라이스에서 하나 이상의 이웃하는 블록에 대해 수신된 비디오 블록의 인트라-예측 코딩을 대안적으로 수행할 수 있다. 비디오 인코더(20)는, 예컨대, 비디오 데이터의 각각의 블록에 대해 적절한 코딩 모드를 선택하기 위해 다중 코딩 패스를 수행할 수 있다.
더욱이, 파티션 유닛(48)은 이전의 코딩 패스에서의 이전의 파티션 방식의 평가에 기초하여 비디오 데이터의 블록을 서브-블록으로 분할할 수 있다. 예를 들어, 파티션 유닛(48)은 처음에 프레임 또는 슬라이스를 최대 코딩 유닛(LCU)으로 분할할 수 있고, LCU의 각각을 레이트-왜곡 분석(예컨대, 레이트-왜곡 최적화)에 기초하여 서브-코딩 유닛(서브-CU)으로 분할할 수 있다. 모드 선택 유닛(40)은 추가적으로, LCU의 서브-CU로의 분할을 나타내는 쿼드-트리(quad-tree) 데이터 구조를 생성할 수 있다. 쿼드-트리의 리프-노드(leaf-node) CU는 하나 이상의 예측 유닛(PU; prediction unit) 및 하나 이상의 변환 유닛(TU; transform unit)을 포함할 수 있다.
본 개시는 HEVC의 맥락에서 CU, PU 또는 TU 중 임의의 것을 지칭하기 위해, 또는 다른 표준의 맥락에서 유사한 데이터 구조(예컨대, H. 264/AVC)를 지칭하기 위해, 용어 "블록"을 사용한다. CU는 코딩 노드, PU, 및 코딩 노드와 관련된 TU를 포함한다. CU의 크기는 코딩 노드의 크기에 대응하며, 정사각형 모양이다. CU의 크기는 8x8 픽셀에서 최대 64x64 픽셀 이상인 트리 블록(tree block)의 크기까지 범위가 될 수 있다. 각각의 CU는 하나 이상의 PU 및 하나 이상의 TU를 포함할 수 있다. CU와 연관된 신택스 데이터는 예를 들어 CU를 하나 이상의 PU로 분할하는 것을 기술할 수 있다. 분할 모드(partitioning mode)는 CU가 스킵 또는 직접 모드 인코딩, 인트라-예측 모드 인코딩, 또는 인터-예측(인터 예측이라고도 함) 모드 인코딩에 있는가 사이에서 다를 수 있다. PU는 정사각형이 아닌 형상으로 분할될 수 있다. CU와 연관된 신택스 데이터는 또한, 예를 들어 쿼드-트리에 따라 CU를 하나 이상의 TU로 분할하는 것을 기술할 수 있다. TU는 정사각형이거나 정사각형이 아닌 (예컨대, 직사각형) 모양일 수 있다.
모드 선택 유닛(40)은 인트라- 또는 인터-코딩 모드 중 하나를, 예컨대, 오류 결과에 기초하여, 선택할 수 있고, 결과적인 인트라- 또는 인터-코딩된 블록을 합산기(50)에 제공하여 잔차 블록 데이터를 생성하도록 하고 합산기(62)에 제공함여 재구성 인코딩된 블록을 참조 프레임으로서 사용하도록 한다. 모드 선택 유닛(40)은 또한 모션 벡터, 인트라-모드 인디케이터, 파티션 정보, 및 기타 그러한 신택스 정보와 같은 신택스 엘리먼트를, 엔트로피 코딩 유닛(56)으로 제공한다.
모션 추정 유닛(42) 및 모션 보상 유닛(44)은 고도로 통합될 수 있으나, 개념적인 목적을 위해 별개로 도시된다. 모션 추정 유닛(42)에 의해 수행되는 모션 추정은 비디오 블록에 대한 움직임을 추정하는 모션 벡터를 생성하는 과정이다. 모션 벡터는, 예를 들어, 현재 프레임(또는 다른 코딩된 유닛)에서 코딩되고 있는 현재 블록에 대해 상대적인 참조 프레임(또는 다른 코딩된 유닛) 내의 예측 블록에 대해 상대적인 현재 비디오 프레임 또는 화상 내에서 비디오 블록의 PU의 변위를 나타낼 수 있다. 예측 블록은, 절대 차이의 합(SAD; sum of absolute difference), 제곱 차이의 합 (SSD; sum of square difference), 또는 다른 차이 메트릭에 의해 결정될 수 있는 픽셀 차이 측면에서, 코딩될 블록과 밀접하게 일치하는 것으로 확인되는 블록이다. 일부 예에서, 비디오 인코더(20)는 참조 프레임 메모리(64)에 저장된 참조 화상의 서브-정수(서브-정수) 픽셀 위치에 대한 값을 계산할 수 있다. 예를 들어, 비디오 인코더(20)는 참조 화상의 1/4 픽셀 위치, 1/8 픽셀 위치, 또는 다른 분수(fractional) 픽셀 위치의 값을 보간(interpolate)할 수 있다. 따라서, 모션 추정 유닛(42)는 전체 픽셀 위치 및 분수 픽셀 위치에 대한 모션 검색을 수행하고 분수 픽셀 정밀도로 모션 벡터를 출력할 수 있다.
모션 추정 유닛(42)는 PU의 위치를 참조 화상의 예측 블록의 위치와 비교하여 인터-코딩된 슬라이스에서 비디오 블록의 PU에 대한 모션 벡터를 계산한다. 참조 픽쳐는 제1 참조 화상 목록(List 0) 또는 제2 참조 화상 목록(List 1)로부터 선택될 수 있으며, 각각은 참조 프레임 메모리(64)에 저장된 하나 이상의 참조 화상을 식별한다. 모션 추정 유닛(42)은 계산된 모션 벡터를 엔트로피 인코딩 유닛(56) 및 모션 보상 유닛(44)으로 송신한다.
모션 보상 유닛(44)에 의해 수행되는 모션 보상은 모션 추정 유닛(42)에 의해 결정된 모션 벡터에 기초하여 예측 블록을 불러오거나 생성하는 것을 포함할 수 있다. 다시 말하지만, 모션 추정 유닛(42) 및 모션 보상 유닛(44)은 일부 예들에서 기능적으로 통합될 수 있다. 현재 비디오 블록의 PU에 대한 모션 벡터를 수신하면, 모션 보상 유닛(44)은 참조 화상 목록 중 하나에서 모션 벡터가 가리키는 예측 블록을 찾을 수 있다. 합산기(50)은 코딩되고 있는 현재 비디오 블록의 픽셀 값으로부터 예측 블록의 픽셀 값을 빼서 잔차 비디오 블록을 형성하고, 아래에서 논의되는 바와 같이 픽셀 차이 값을 형성한다. 일반적으로, 모션 추정 유닛(42)은 루마 성분에 대한 모션 추정을 수행하고, 모션 보상 유닛(44)은 크로마 성분 및 루마 성분 모두에 대해 루마 성분에 기초하여 계산된 모션 벡터를 사용한다. 모드 선택 유닛(40)은 비디오 슬라이스의 비디오 블록을 디코딩할 때 비디오 디코더(30)에 의해 사용하기 위해 비디오 블록 및 비디오 슬라이스와 연관된 신택스 엘리먼트를 또한 생성할 수 있다.
인트라-예측 유닛(46)은 위에서 설명한 바와 같이 모션 추정 유닛(42) 및 모션 보상 유닛(44)에 의해 수행되는 인터-예측의 대안으로서 현재 블록을 인트라-예측할 수 있다. 특히, 인트라 예측 유닛(46)은 현재 블록을 인코딩하기 위해 사용할 인트라 예측 모드를 결정할 수 있다. 일부 예에서, 인트라-예측 유닛(46)은, 예컨대, 별개의 인코딩 패스 동안, 다양한 인트라-예측 모드를 사용하여 현재 블록을 인코딩할 수 있고, 인트라-예측 유닛(46)(또는 일부 예에서, 모드 선택 유닛(40))은 사용할 적절한 인트라-예측 모드를 테스트된 모드로부터 선택할 수 있다.
예를 들어, 인트라-예측 유닛(46)은 다양한 테스트된 인트라-예측 모드에 대한 레이트-왜곡 분석을 사용하여 레이트-왜곡 값을 계산할 수 있고, 테스트된 모드 중에서 최상의 레이트-왜곡 특성을 가지는 인트라-예측 모드를 선택할 수 있다. 레이트-왜곡 분석은 일반적으로, 인코딩된 블록을 생성하는데 사용된 비트율(즉, 비트의 수량)과 아울러, 인코딩된 블록과 인코딩된 블록을 생성하기 위해 인코딩 처리된 원래의 인코딩되지 않은 블록 사이의 왜곡(또는 오류)의 양을 결정한다. 인트라-예측 유닛(46)은 어떤 인트라-예측 모드가 블록에 대해 최상의 레이트-왜곡 값을 보이는지를 결정하기 위해 다양한 인코딩된 블록에 대한 왜곡 및 레이트로부터 비율을 계산할 수 있다.
그리고, 인트라-예측 유닛(46)는 깊이 모델링 모드(DMM; depth modeling mode)를 사용하여 깊이 맵의 깊이 블록을 코딩하도록 구성될 수 있다. 모드 선택 유닛(40)는 이용 가능한 DMM 모드가 예컨대 레이트-왜곡 최적화(RDO; rate-distortion optimization)를 사용하여 인트라-예측 모드 및 다른 DMM 모드보다 더 나은 코딩 결과를 생성하는지를 결정할 수 있다. 깊이 맵에 대응하는 텍스처 이미지에 대한 데이터는 참조 프레임 메모리(64)에 저장될 수 있다. 모션 추정 유닛(42) 및 모션 보상 유닛(44)은 또한 깊이 맵의 깊이 블록을 인터-예측하도록 구성될 수 있다.
블록에 대한 인트라-예측 모드(예컨대, 종래의 인트라-예측 모드 또는 DMM 모드 중 하나)를 선택한 후, 인트라-예측 유닛(46)은 블록에 대해 선택된 인트라-예측 모드를 나타내는 정보를 엔트로피 코딩 유닛(56)로 제공할 수 있다. 엔트로피 코딩 유닛(56)은 선택된 인트라-예측 모드를 나타내는 정보를 인코딩할 수 있다. 비디오 인코더(20)는, 전송된 비트스트림 구성 데이터에, 복수의 인트라-예측 모드 인덱스 테이블 및 복수의 수정된 인트라-예측 모드 인덱스 테이블(코드워드(codeword) 맵핑 테이블이라고도 지칭됨), 다양한 블록에 대한 인코딩 컨텍스트의 정의, 및 각각의 컨텍스트에 사용할 가장 가능성이 높은 인트라-예측 모드, 인트라-예측 모드 인덱스 테이블, 및 수정된 인트라-예측 모드 인덱스 테이블의 표시를 포함할 수 있다.
비디오 인코더(20)는 코딩 중인 원래의 비디오 블록으로부터 모드 선택 유닛(40)으로부터의 예측 데이터를 감산함으로써 잔차 비디오 블록을 형성한다. 합산기(50)은 이 빼기 연산을 수행하는 콤포넌트를 나타낸다.
변환 처리 유닛(52)은 이산 코사인 변환(DCT; discrete cosine transform) 또는 개념적으로 유사한 변환과 같은 변환을, 잔차 블록에 적용함으로써, 잔차 변환 계수 값을 포함하는 비디오 블록을 생성한다. 변환 처리 유닛(52)은 개념적으로 DCT와 유사한 다른 변환을 수행할 수 있다. 웨이블릿 변환, 정수 변환, 서브밴드 변환 또는 다른 유형의 변환도 또한 사용될 수 있다.
변환 처리 유닛(52)은 변환을 잔차 블록에 적용하여 잔차 변환 계수의 블록을 생성한다. 변환은 잔여 정보를 픽셀 값 도메인으로부터 주파수 도메인과 같은 변환 도메인으로 변환할 수 있다. 변환 처리 유닛(52)은 결과적인 변환 계수를 양자화 유닛(54)에 전송할 수 있다. 양자화 유닛(54)은 비트 레이트를 더욱 감소시키기 위해 변환 계수를 양자화한다. 양자화 프로세스는 계수의 일부 또는 전부와 연관된 비트 깊이를 감소시킬 수 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 수정될 수 있다. 일부 예에서, 양자화 유닛(54)은 양자화된 변환 계수를 포함하는 매트릭스의 스캔을 수행할 수 있다. 대안적으로, 엔트로피 인코딩 유닛(56)은 스캔을 수행할 수 있다.
양자화 후에, 엔트로피 코딩 유닛(56)은 양자화된 변환 계수를 엔트로피 코딩한다. 예를 들어, 엔트로피 코딩 유닛(56)은 컨텍스트 적응형 가변 길이 코딩(CAVLC; context adaptive variable length coding), 컨텍스트 적응형 이진 산술 코딩(CABAC; context-adaptive binary arithmetic coding), 신택스 기반 컨텍스트 적응형 이진 산술 코딩(SBAC; syntax-based context-adaptive binary arithmetic coding), 확률 간격 분할 엔트로피(PIPE; probability interval partitioning entropy) 코딩, 또는 다른 엔트로피 코딩 기법을 수행할 수 있다. 컨텍스트-기반 엔트로피 코딩의 경우, 컨텍스트는 이웃하는 블록을 기반으로 할 수 있다. 엔트로피 코딩 유닛(56)에 의한 엔트로피 코딩 후에, 인코딩된 비트스트림은 다른 디바이스(예컨대, 비디오 디코더(30))로 전송되거나 추후의 전송 또는 호출을 위해 아카이브(archive)될 수 있다.
역양자화 유닛(58) 및 역변환 유닛(60)은 각각 역양자화 및 역변환을 적용하여, 예를 들어 추후에 참조 블록으로 사용하기 위해 픽셀 도메인에서 잔차 블록을 재구성한다. 모션 보상 유닛(44)은 참조 프레임 메모리(64)의 프레임 중 하나의 예측 블록에 잔차 블록을 더하여 참조 블록을 계산할 수 있다. 모션 보상 유닛(44)은 또한 하나 이상의 보간 필터를 재구성된 잔차 블록에 적용하여 모션 추정에 사용하기 위한 서브-정수 픽셀 값을 계산할 수 있다. 합산기(62)는 모션 보상 유닛(44)에 의해 생성된 모션 보상된 예측 블록에 재구성된 잔차 블록을 더하여 참조 프레임 메모리(64)에 저장하기 위한 재구성된 비디오 블록을 생성한다. 재구성된 비디오 블록은 모션 추정 유닛(42) 및 모션 보상 유닛(44)에 의해 후속 비디오 프레임에서 블록을 인터-코딩하기 위한 참조 블록으로서 사용될 수 있다.
도 3은 비디오 코딩 기법을 구현할 수 있는 비디오 디코더(30)의 예를 도시하는 블록도이다. 도 3의 예에서, 비디오 디코더(30)는 엔트로피 디코딩 유닛(70), 모션 보상 유닛(72), 인트라-예측 유닛(74), 역양자화 유닛(76), 역변환 유닛(78), 참조 프레임 메모리(82) 및 합산기(80)를 포함한다. 일부 예시에서, 비디오 디코더(30)는 비디오 인코더(20)(도 2)에 관해 기술된 인코딩 패스에 일반적으로 역(inverse)인 디코딩 패스를 수행할 수 있다. 모션 보상 유닛(72)은 엔트로피 디코딩 유닛(70)으로부터 수신되는 모션 벡터에 기초하여 예측 데이터를 생성할 수 있고, 인트라-예측 유닛(74)은 엔트로피 디코딩 유닛(70)으로부터 수신되는 인트라-예측 모드 인디케이터에 기초하여 예측 데이터를 생성할 수 있다.
디코딩 프로세스 동안, 비디오 디코더(30)은 인코딩된 비디오 슬라이스의 비디오 블록 및 연관된 신택스 엘리먼트를 표현하는 인코딩된 비디오 비트스트림을 비디오 인코더(20)로부터 수신한다. 비디오 디코더(30)의 엔트로피 디코딩 유닛(70)은 비트스트림을 엔트로피 디코딩하여 양자화된 계수, 모션 벡터 또는 인트라-예측 모드 인디케이터, 및 다른 신택스 엘리먼트를 생성한다. 엔트로피 디코딩 유닛(70)은 모션 벡터 및 다른 신택스 엘리먼트를 모션 보상 유닛(72)으로 전달한다. 비디오 디코더(30)는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 엘리먼트를 수신할 수 있다.
비디오 슬라이스가 인트라-코딩된 (I) 슬라이스로서 코딩된 경우, 인트라-예측 유닛(74)은 현재 프레임 또는 화상 이전에 디코딩된 블록으로부터의 데이터 및 시그널링된 인트라-예측 모드에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 비디오 프레임이 인터-코딩된 (예컨대, B, P, 또는 GPB) 슬라이스로서 코딩된 경우, 모션 보상 유닛(72)은 모션 벡터 및 엔트로피 디코딩 유닛(70)로부터 수신된 다른 신택스 엘리먼트에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 블록을 생성한다. 예측 블록은 참조 화상 목록 중 하나에 있는 참조 화상 중 하나로부터 생성될 수 있다. 비디오 디코더(30)는 참조 프레임 메모리(82)에 저장된 참조 화상에 기초하여 디폴트 구성 기법을 사용하여 참조 프레임 목록, 목록 0 및 목록 1을 구성할 수 있다.
모션 보상 유닛(72)은 모션 벡터 및 다른 신택스 엘리먼트를 파싱(parsing)함으로써 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 예측 정보를 사용하여 디코딩 중인 현재 비디오 블록에 대한 예측 블록을 생성한다. 예를 들어, 모션 보상 유닛(72)은 수신된 신택스 엘리먼트의 일부를 사용하여, 비디오 슬라이스의 비디오 블록을 코딩하는데 사용되는 예측 모드(예컨대, 인트라- 또는 인터-예측), 인터-예측 슬라이스 유형(예컨대, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스에 대한 참조 화상 목록 중 하나 이상에 대한 구성 정보, 슬라이스의 각각의 인터- 인코딩된 비디오 블록에 대한 모션 벡터, 슬라이스의 각각의 인터-코딩된 비디오 블록에 대한 인터-예측 상태, 및 현재 비디오 슬라이스에서 비디오 블록을 디코딩하기 위한 다른 정보를 결정한다.
모션 보상 유닛(72)은 또한 보간 필터에 기초하여 보간을 수행할 수 있다. 모션 보상 유닛(72)는, 비디오 블록의 인코딩 동안 비디오 인코더(20)에 의해 사용되는 바와 같이 보간 필터를 사용하여 참조 블록의 서브-정수 픽셀에 대한 보간된 값을 계산할 수 있다. 이 경우, 모션 보상 유닛(72)는 수신된 신택스 엘리먼트로부터 비디오 인코더(20)에 의해 사용되는 보간 필터를 결정하고 보간 필터를 사용하여 예측 블록을 생성할 수 있다.
깊이 맵에 대응하는 텍스처 이미지에 대한 데이터는 참조 프레임 메모리(82)에 저장될 수 있다. 모션 보상 유닛(72)은 또한 깊이 맵의 깊이 블록을 인터-예측하도록 구성될 수 있다.
상기를 염두에두고, 본 개시의 일부 기본 개념이 논의된다.
PCC Cat2의 경우, 위에서 기술한 첫 번째 문제를 해결하기 위해, 하나의 시간 인스턴스(예컨대, 하나의 액세스 유닛)에 속하는 데이터 유닛은 비트스트림에서 디코딩 순서에서 연속적으로 배치되어야 한다. 비트스트림에서 디코딩 순서에서 연속적으로 배치되면, 각각의 데이터 유닛의 유형을 식별하면 각각의 데이터 유닛을 올바른 디코더 콤포넌트로 라우팅하는 식별이 가능하다. 또한 설계는 기존 비디오 코덱을 활용하여 동적 포인트 클라우드의 지오메트리 및 텍스처 정보를 압축하는 PCC Cat2 코덱의 기본 설계를 위반하지 않아야 한다.
예컨대, HEVC를 예로 들어, 기존 비디오 코덱을 활용하여, 지오메트리 및 텍스처 정보를 개별적으로 압축하는 동시에, 하나의 단일한, 자체-포함된(self-contained) PCC Cat2 비트스트림을 가지기 위해, 다음의 측면이 명확하게 지정된다: (1) PCC Cat2 비트스트림으로부터 지오메트리 콤포넌트에 대한 부합하는 HEVC 비트스트림 추출/구성; (2) PCC Cat2 비트스트림으로부터 텍스처 콤포넌트에 대한 부합하는 HEVC 비트스트림 추출/구성; 및 (3) 지오메트리 및 텍스처 콤포넌트에 대한 각각의 추출된 부합하는 HEVC 비트스트림의 부합점(conformance point), 즉, 프로파일, 티어(tier), 및 레벨의 시그널링 /표시.
위에서 기술한 문제를 해결하기 위해, 그리고 전술한 모든 제약 조건을 충족하기 위해, 본 개시는 PCC 하이-레벨 신택스에 연관된 2개의 대안적인 방법의 세트를 제공한다.
제1 방법 세트에는, PCC Cat2의 지오메트리 및 텍스처 콤포넌트의 코딩에 사용될 수 있는 모든 비디오 코덱에 대한 공통 하이-레벨 신택스가 있다. 이 방법 세트는 다음과 같이 요약된다.
도 4는 PCC와 호환되는 데이터 구조(400)를 도시한다. 데이터 구조(400)는 인코더에 의해 생성되고 디코더에 의해 수신되는 비트스트림의 일부를 나타낼 수 있다. 도시된 바와 같이, 데이터 유닛 헤더(404)(PCC NAL 유닛 헤더로 지칭될 수 있음)가 각각의 데이터 유닛(402)(PCC NAL 유닛으로 지칭될 수 있음)에 대해 더해진다. 도 4의 데이터 구조(400)에는 하나의 데이터 유닛(402) 및 하나의 데이터 유닛 헤더(404)가 도시되어 있으나, 실제 애플리케이션에서는 임의의 수의 데이터 유닛(402) 및 데이터 유닛 헤더(404)가 데이터 구조(400)에 포함될 수 있다. 실제로, 데이터 구조(400)를 포함하는 비트스트림은 각각이 데이터 유닛 헤더(404)를 포함하는 데이터 유닛(402)의 시퀀스를 포함할 수 있다.
데이터 유닛 헤더(404)는 예를 들어 1개 또는 2개 바이트를 포함할 수 있다. 일 실시예로서, 각각의 데이터 유닛(402)은 하나의 PCC NAL 유닛으로서 형성된다. 데이터 유닛(402)은 페이로드(406)를 포함한다. 일 실시예로서, 데이터 유닛(406)은 보충적 향상 정보(SEI; supplemental enhancement information) 메시지, 시퀀스 파라미터 세트, 화상 파라미터 세트, 슬라이스 정보, 등을 또한 포함할 수 있다.
일 실시예로서, 데이터 유닛(402)의 페이로드(406)는 HEVC 유닛 또는 AVC NAL 유닛일 수 있다. 일 실시예로서, 페이로드(406)는 지오메트리 콤포넌트 또는 텍스처 콤포넌트에 대한 데이터를 포함할 수 있다. 일 실시예로서, 지오메트리 콤포넌트는 포인트 클라우드 프레임과 연관된 데카르트 좌표계의 세트이다. 일 실시예로서, 텍스처 콤포넌트는 포인트 클라우드 프레임의 루마 샘플 값 세트이다. HEVC가 사용 중인 경우, 데이터 유닛(402)은 페이로드(406)로서 HEVC NAL 유닛을 포함하는 PCC NAL 유닛으로 지칭될 수 있다. AVC가 사용 중인 경우, 데이터 유닛(402)은 페이로드(406)로서 AVC NAL 유닛을 포함하는 PCC NAL 유닛으로 지칭될 수 있다.
일 실시예로서, 데이터 유닛 헤더(404)(예컨대, PCC NAL 유닛 헤더)는 아래에 요약되는 바와 같이 설계된다.
먼저, 데이터 유닛 헤더(404)는 유형 인디케이터를 포함한다. 유형 지시자는 예를 들어 5 비트일 수 있다. 유형 인디케이터는 페이로드(406)에서 전달되는 컨텐츠의 유형을 지정한다. 예를 들어, 유형 인디케이터는 페이로드(406)가 지오메트리 또는 텍스처 정보를 포함하도록 지정할 수 있다.
일 실시예로서, 예약된 데이터 유닛(데이터 유닛(402)과 유사하지만 나중에 사용하기 위해 예약됨)의 일부가 PCC Cat13 데이터 유닛에 사용될 수 있다. 따라서, 본 개시 내용의 설계는 PCC Cat13에도 또한 적용된다. 이와 같이, PCC Cat2 및 PCC Cat13을 하나의 코덱 표준 사양으로 통합할 수 있다.
위에서 언급한 바와 같이, 현재 비트스트림 포맷은 예를 들어 새로운 NAL 유닛 또는 PCC NAL 유닛의 시작을 신호하는 시작 코드 패턴의 에뮬레이션을 허용한다. 예를 들어, 시작 코드 패턴은 0x0003일 수 있다. 현재 비트스트림 포맷은 시작 코드 패턴의 에뮬레이션을 허용하기 때문에, 시작 코드가 의도하지 않게 시그널링될 수 있다. 본 개시는 이 문제를 해결하기 위해 PCC NAL 유닛 신택스(syntax) 및 시맨틱(semantics)(아래 참조)를 제공한다. 여기에 기술된 PCC NAL 유닛 신택스 및 시맨틱은 그 컨텐츠에 무관하게 각각의 PCC NAL 유닛에 대한 시작 코드 에뮬레이션 방지를 보장한다. 결과적으로, 1 바이트 또는 2 바이트 데이터 유닛 헤더(404)의 마지막 바이트(예컨대, 1 바이트인 경우 데이터 유닛 헤더 자체)는 0x00과 동일한 것이 금지된다.
그리고, 프레임 그룹 헤더(408)(프레임 그룹 헤더 NAL 유닛이라고도 함)는 프레임 그룹 헤더 파라미터를 전달하도록 설계된다. 그리고, 프레임 그룹 헤더 NAL 유닛은 예를 들어, 각각의 지오메트리 또는 텍스처 비트스트림의 프로파일 및 레벨과 같은 다른 글로벌 정보의 시그널링을 포함한다. 일 실시예로서, 프로파일은 신택스의 지정된 서브 세트 또는 코딩 도구의 서브 세트이다. 일 실시예로서, 레벨은 신택스 엘리먼트 및 변수에 의해 취해질 수 있는 값에 대한 제약 조건의 규정된 세트이다. 일 실시예로서, 비트스트림에 대한 프로파일 및 레벨의 조합은 비트스트림의 디코딩에 필요한 특정 디코딩 능력을 나타낸다. 또한, 프로파일 및 레벨이 보조 정보, 점유 맵, 및 포인트 클라우드 재구성 프로세스(지오메트리, 텍스처, 보조 정보, 및 점유 맵의 디코딩 결과를 이용함)의 디코딩을 위해 또한 규정되는 경우, 이 프로파일 및 레벨 또한 프레임 그룹 헤더(408)에서 시그널링된다. 일 실시예로서, PCC 보조 정보는, PCC 코딩된 비트스트림으로부터 포인트 클라우드 신호의 재구성에 사용되는, 패치 정보 및 포인트 로컬 재구성 정보와 같은 정보를 지칭한다. 일 실시예로서, PCC 점유 맵은 3D 공간의 어느 부분이 텍스처 값 및 다른 속성이 샘플링되는 객체에 의해 점유되는지에 대한 정보를 의미한다.
아래의 신택스에 의해 도시되는 바와 같이, 상이한 유형의 데이터 유닛(402)(PCC NAL 유닛이라고도 함)의 순서에 대한 제약 조건이 명확하게 지정된다. 그리고, 액세스 유닛(410)(데이터 유닛(402), 데이터 유닛 헤더(404), 등의 다수를 포함할 수 있음)의 시작이 명확하게 지정된다.
그리고, 각각의 지오메트리 또는 텍스처 비트스트림의 추출/구성에 대한 프로세스가 아래에 언급되는 신택스 및/또는 시맨틱에 명확하게 지정된다.
제2 방법 세트에서, 상이한 비디오 코덱에 대해 상이한 전체 신택스가 사용된다. 지오메트리 및 텍스처의 코딩에 HEVC를 사용하는 PCC Cat2는 HEVC에 대한 수정으로 지정되고, 지오메트리 및 텍스처 코딩에 AVC를 사용하는 PCC Cat2는 AVC에 대한 수정으로 지정된다. 이 방법 세트는 다음과 같이 요약된다.
지오메트리 및 텍스처의 코딩에 HEVC를 사용하는 PCC Cat2의 경우, 지오메트리 및 텍스처는 3개의 개별 레이어로 간주된다(예컨대, 지오메트리에 대한 2개의 레이어, d0 및 d1, 텍스처에 대한 1개의 레이어). SEI 메시지 또는 새로운 유형의 NAL 유닛이 점유 맵 및 보조 정보에 사용된다. 점유 맵 용과 보조 정보 용으로 각각 하나씩 2개의 새로운 SEI 메시지가 지정된다. 다른 SEI 메시지인 시퀀스 레벨은 프레임 그룹 헤더 파라미터 및 기타 글로벌 정보를 전달하도록 지정된다. 이 SEI 메시지는 제1 방법 세트의 프레임 그룹 헤더(408)와 유사하다.
지오메트리 및 텍스처의 코딩에 AVC를 사용하는 PCC Cat2의 경우, 지오메트리 및 텍스처는 3개의 개별 레이어로 간주된다(예컨대, 지오메트리에 대한 2개의 레이어, d0 및 d1, 텍스처에 대한 1개의 레이어). SEI 메시지 또는 새로운 유형의 NAL 유닛이 점유 맵과 보조 패치 정보에 사용된다. 독립적으로 코딩되는 비베이스(non-base) 레이어의 추출 및 싱글-레이어 비트스트림으로서의 적합성(conformance) 포인트(예컨대, 프로파일 및 레벨)의 시그널링이 지정된다. 점유 맵 용과 보조 정보 용으로 각각 하나씩 두 가지 새로운 유형의 SEI 메시지가 지정된다. 다른 SEI 메시지인 시퀀스 레벨은 프레임 그룹 헤더 파라미터 및 기타 글로벌 정보를 전달하도록 지정된다. 이 SEI 메시지는 제1 방법 세트의 프레임 그룹 헤더(408)와 유사하다.
위에서 언급한 제1 방법 세트는 아래에 기술하는 정의, 약어, 신택스, 및 시맨틱에 기초하여 구현될 수 있다. 구체적으로 언급되지 않은 측면은 최신 PCC Cat2 WD와 동일하다.
다음의 정의가 적용된다.
비트스트림: 코딩된 포인트 클라우드 프레임 및 하나 이상의 CPS를 형성하는 연관 데이터의 표현을 형성하는 비트 시퀀스.
바이트: 비트 값의 시퀀스로서 기록되거나 판독될 때, 맨 왼쪽 및 맨 오른쪽 비트는 최상위 및 최하위 비트를 각각 표현하는 8 비트의 시퀀스.
코딩된 PCC 시퀀스(CPS; coded PCC sequence): 디코딩 순서에서, PCC IRAP AU가 아닌 0개 이상의 PCC AU가 후속되고, 모든 후속 PCC AU를 포함하되 PCC IRAP AU인 후속 PCC AU는 포함하지 않는, PCC IRAP(Intra Random Access Pictures) AU를 포함하는, PCC AU의 시퀀스.
디코딩 순서: 디코딩 프로세스에 의해 신택스 엘리먼트가 처리되는 순서.
디코딩 프로세스: 디코딩 프로세스: 비트스트림을 읽고 그로부터 디코딩된 포인트 클라우드 프레임을 유도하는 이 사양(PCC Cat2 WD라고도 함)에 지정된 프로세스.
프레임 그룹 헤더 NAL 유닛: GOF_HEADER과 동일한 PccNalUnitType를 가지는 PCC NAL 유닛.
PCC AU: 지정된 분류 규칙에 따라 서로 연관되고, 디코딩 순서에서 연속적이며, 하나의 특정 표현 시간에 속하는 모든 PCC NAL 유닛을 포함하는 PCC NAL 유닛의 세트.
PCC IRAP AU: 프레임 그룹 헤더 NAL 유닛을 포함하는 PCC AU.
PCC NAL 유닛: 후속하는 데이터의 유형의 표시 및 필요에 따라 에뮬레이션 방지 바이트와 함께 산재된 RBSP의 형태로 그 데이터를 포함하는 바이트를 포함하는 신택스 구조.
원시 바이트 시퀀스 페이로드(RBSP; raw byte sequence payload): PCC NAL 유닛 내에 캡슐화(encapsulate)되고, 비어 있거나 또는 RBSP 정지 비트 및 0개 이상의 0과 같은 후속 비트가 후속하는 신택스 엘리먼트를 포함하는 데이터 비트(SODB)의 문자열의 형태를 가지는 정수 개수의 바이트를 포함하는 신택스 구조.
원시 바이트 시퀀스 페이로드(RBSP) 정지 비트: RBSP의 끝으로부터 검색에 의해 RBSP 내의 끝 위치를 식별할 수 있는, SODB 이후에 RBSP 내에 존재하는 1과 같은 비트로서, RBSP에서 마지막 0이 아닌 비트.
SODB: RBSP 정지 비트에 앞서 RBSP 내에 존재하는 신택스 엘리먼트를 표현하는, 일부 개수의 비트 시퀀스로서, 맨 왼쪽 비트는 첫 번째 및 최상위 비트로 간주되고, 맨 오른쪽 비트는 마지막 및 최하위 비트로 간주됨.
신택스 엘리먼트: 비트스트림에 표현되는 데이터의 엘리먼트.
신택스 구조: 지정된 순서로 비트스트림에 함께 제공된 0 개 이상의 신택스 엘리먼트.
비디오 AU: 특정 비디오 코덱에 대한 액세스 유닛.
비디오 NAL 유닛: GEOMETRY_D0, GEOMETRY_D1, 또는 TEXTURE_NALU와 동일한 PccNalUnitType를 가지는 PCC NAL 유닛.
다음 약어가 적용된다.
AU: 액세스 유닛
CPS: 코딩된 PCC 시퀀스
IRAP: 인트라 랜덤 액세스 포인트
NAL: 네트워크 추상화 레이어
PCC: 포인트 클라우드 코딩
RBSP: 원시 바이트 시퀀스 페이로드
SODB: 데이터 비트의 문자열
다음은 신택스, 시맨틱, 및 서브-비트스트림 추출 프로세스를 제공한다. 이와 관련하여, 최신 PCC Cat2 WD의 7.3절의 신택스는 다음으로 대체된다.
PCC NAL 유닛 신택스가 제공된다. 특히, 일반적인 PCC NAL 유닛 신택스는 다음과 같다.
pcc_nal_unit( NumBytesInNalUnit ) { Descriptor
pcc_nal_unit_header( )
NumBytesInRbsp = 0
for( i = 1; i < NumBytesInNalUnit; i++ )
if( i + 2 < NumBytesInNalUnit && next_bits( 24 ) = = 0x000003 ) {
rbsp_byte[ NumBytesInRbsp++ ] b(8)
rbsp_byte[ NumBytesInRbsp++ ] b(8)
i += 2
emulation_prevention_three_byte /* equal to 0x03 */ f(8)
} else
rbsp_byte[ NumBytesInRbsp++ ] b(8)
}
PCC NAL 유닛 헤더 신택스는 다음과 같다.
pcc_nal_unit_header( ) { Descriptor
forbidden_zero_bit f(1)
pcc_nuh_reserved_zero_2bits f(2)
pcc_nal_unit_type_plus1 u(5)
}
원시 바이트 시퀀스 페이로드, 후행 비트, 및 바이트 정렬 신택스가 제공된다. 특히, 프레임 그룹 RBSP 신택스는 다음과 같다.
group_of_frames_header_rbsp( ) { Descriptor
identified_codec u(8)
pcc_profile_level( )
frame_width u(16)
frame_eight u(16)
occupancy_resolution u(8)
radius _to_smoothing u(8)
neighbor_count_smoothing u(8)
radius 2_boundary_detection u(8)
threshold_smoothing u(8)
lossless_geometry u(8)
lossless_texture u(8)
no_attributes u(8)
lossless_geometry_444 u(8)
absolute_d1_coding u(8)
binary_arithmetic_coding u(8)
gof_header_extension_flag u(1)
if( gof_header_extension_flag )
while( more_rbsp_data( ) )
gof_header_extension_data_flag u(1)
rbsp_trailing_bits( )
}
보조 정보 프레임 RBSP 신택스는 다음과 같다.
auxiliary_information_frame_rbsp( ) { Descriptor
patch_count u(32)
occupancy_precision u(8)
max_candidate_Count u(8)
bit_count_u0 u(8)
bit_count_v0 u(8)
bit_count_u1 u(8)
bit_count_v1 u(8)
bit_count_d1 u(8)
occupancy_aux_stream_size u(32)
for( i = 0; i < patchCount; i++ ) {
patchList[i].patch_u0 ae(v)
patchList[i].patch_v0 ae(v)
patchList[i].patch_u1 ae(v)
patchList[i].patch_v1 ae(v)
patchList[i].patch_d1 ae(v)
patchList[i].delta_size_u0 se(v)
patchList[i].delta_size_v0 se(v)
patchList[i].normal_axis ae(v)
}
for( i = 0; i < blockCount; i++ ) {
if( candidatePatches[i].size( ) == 1 )
blockToPatch[i] = candidatePatches[i][0]
else {
candidate_index ae(v)
if( candidate_index == max_candidate_count )
blockToPatch[i] = patch_index ae(v)
else
blockToPatch[i] = candidatePatches[i][candidate_index]
}
}
rbsp_trailing_bits( )
}
점유 맵 프레임 RBSP 신택스는 다음과 같다.
occupancy_map_frame_rbsp( ) { Descriptor
for( i = 0; i < blockCount; i++ ) {
if( blockToPatch[i] ) {
is_full ae(v)
if( !is_full ) {
best_traversal_order_index ae(v)
run_count_prefix ae(v)
if ( run_count_prefix > 0 )
run_count_suffix ae(v)
occupancy ae(v)
for( j = 0; j <= runCountMinusTwo+1; j++ )
run_length_idx ae()
}
}
}
rbsp_trailing_bits( )
}
HEVC 사양의 7.3.2.11절에 있는 RBSP 후행 비트 신택스가 적용된다. 마찬가지로, HEVC 사양의 7.3.2.12절에 있는 바이트 정렬 신택스가 적용된다. PCC 프로파일 및 레벨 신택스는 다음과 같다.
pcc_profile_level( ) { Descriptor
pcc_profile_idc u(5)
pcc_pl_reserved_zero_19bits u(19)
pcc_level_idc u(8)
if( identified_codec = = CODEC_HEVC ) {
hevc_ptl_12byte_geometry u(96)
hevc_ptl_12byte_texture u(96)
}
else if( identified_codec = = CODEC_AVC ) {
avc_pl_3bytes_geometry u(24)
avc_pl_3bytes_texture u(24)
}
}
최신 PCC Cat2 WD의 7.4절에 있는 시맨틱은 다음과 그 하위 절로 대체된다.
일반적으로, 신택스 구조 및 이러한 구조 내의 신택스 엘리먼트와 연관된 시맨틱은 이 하위 절에 지정되어 있다. 신택스 엘리먼트의 시맨틱이 테이블 또는 테이블 세트를 사용하여 지정되는 경우, 테이블에 지정되지 않은 값은 달리 지정되지 않는 한 비트스트림에 표시되지 않는다.
PCC NAL 유닛 시맨틱에 대해 설명한다. 일반 PCC NAL 유닛 시맨틱의 경우, HEVC 사양의 7.4.2.1절의 일반 NAL 유닛 시맨틱이 적용된다. PCC NAL 유닛 헤더 시맨틱은 다음과 같다.
forbidden_zero_bit는 0과 같아야 한다.
pcc_nuh_reserved_zero_2bits는 이 사양의 이 버전을 따르는 비트스트림에서 0과 같아야 한다. pcc_nuh_reserved_zero_2bits의 다른 값은 향후 ISO/IEC에서 사용하기 위해 예약되어 있다. 디코더는 pcc_nuh_reserved_zero_2bits의 값을 무시해야 한다.
pcc_nal_unit_type_plus1 빼기 1은, 표 1에 지정된 대로 PCC NAL 유닛에 포함되는 RBSP 데이터 구조의 유형을 지정하는, PccNalUnitType의 값을 지정한다(아래 참조). NalUnitType 변수는 다음과 같이 지정된다.
PccNalUnitType = pcc_category2_nal_unit_type_plus1 - 1 (7-1)
시맨틱이 지정되지 않은, UNSPEC25..UNSPEC30(포함)의 범위의 nal_unit_type을 가지는 PCC NAL 유닛은 이 사양에 지정된 디코딩 프로세스에 영향을 주지 않는다.
주 1 - UNSPEC25..UNSPEC30의 범위에 있는 PCC NAL 유닛 유형은 애플리케이션에 의해 결정되는 대로 사용될 수 있다. 이 사양에는 PccNalUnitType의 이러한 값에 대한 디코딩 프로세스가 지정되어 있지 않다. 상이한 애플리케이션이 상이한 목적으로 이러한 PCC NAL 유닛 유형을 사용할 수 있으므로, 이러한 PccNalUnitType 값으로 PCC NAL 유닛을 생성하는 인코더의 설계, 및 이러한 PccNalUnitType 값으로 PCC NAL 유닛의 컨텐츠를 해석하는 디코더의 설계에는 특별한 주의를 기울어야 한다. 이 사양은 이러한 값에 대한 관리를 규정하지 않는다. 이러한 PccNalUnitType 값은, 사용의 "충돌"(예컨대, 동일한 PccNalUnitType 값에 대한 PCC NAL 유닛 컨텐츠의 의미의 상이한 정의)이 중요하지 않거나, 가능하지 않거나, 또는 관리되는 - 예컨대, 제어 애플리케이션 또는 전송 사양에서, 또는 비트스트림이 배포되는 환경을 제어함으로써 정의되거나 또는 관리되는, 컨텍스트에서 사용에만 적합할 수 있다.
비트스트림의 디코딩 유닛에서 데이터의 수량을 결정하는 것과는 다른 목적으로, 디코더는 PccNalUnitType의 예약된 값을 사용하는 모든 PCC NAL 유닛의 컨텐츠를 무시(비트스트림에서 제거하고 폐기)해야 한다.
주 2 -이 요구 사항은이 사양에 대한 호환가능한 확장의 향후 정의를 허용한다.
PCC NAL 유닛 유형 코드
PccNalUnitType PccNalUnitType의 명칭 PCC NAL 유닛의 컨텐츠 및/또는 RBSP 신택스 구조
0 GOF_HEADER 프레임 그룹 헤더group_of_frames_header_rbsp( )
1 AUX_INFO 보조 정보 프레임auxiliary_info_frame_rbsp( )
2 OCP_MAP 점유 맵 프레임occupancy_map_frame_rbsp( )
3 GEOMETRY_D0 이 PCC NAL 유닛의 페이로드는 식별된 비디오 코덱마다 지오메트리 d0 콤포넌트의 NAL 유닛을 포함한다.
4 GEOMETRY_D1 이 PCC NAL 유닛의 페이로드는 식별된 비디오 코덱마다 지오메트리 d1 콤포넌트의 NAL 유닛을 포함한다.
5 TEXTURE_NALU 이 PCC NAL 유닛의 페이로드는 식별된 비디오 코덱마다 텍스처 콤포넌트의 NAL 유닛을 포함한다.
6..24 RSV_6..RSV_24 예약됨
25..30 UNSPEC25.. UNSPEC30 지정되지 않음
주 3 - 식별된 비디오 코덱(예컨대, HEVC 또는 AVC)은 각각의 CPS의 첫 번째 PCC AU에 존재하는 프레임 그룹 헤더 NAL 유닛에 표시된다.
RBSP 내에서 SODB의 캡슐화(encapsulation)(정보성이 있는)가 제공된다. 이와 관련하여 HEVC 사양의 7.4.2.3 절이 적용된다.
PCC NAL 유닛의 순서와 AU 및 CPS에 대한 연관성이 제공된다. 일반적으로, 이 절은 비트스트림에서 PCC NAL 유닛의 순서에 대한 제약 조건을 지정한다.
이러한 제약 조건을 지키는 비트스트림에서 PCC NAL 유닛의 임의의 순서는 텍스트에서 PCC NAL 유닛의 디코딩 순서로서 참조된다. 비디오 NAL 유닛이 아닌 PCC NAL 유닛에서 7.3 절의 신택스는 신택스 엘리먼트의 디코딩 순서를 지정한다. 비디오 NAL 유닛 내에서, 식별된 비디오 코덱의 사양에 지정된 신택스는 신택스 엘리먼트의 디코딩 순서를 지정한다. 디코더는 디코딩 순서에 따라 PCC NAL 유닛 및 해당 신택스 엘리먼트를 수신할 수 있다.
PCC NAL 유닛의 순서와 PCC AU에 대한 연관성이 제공된다.
이 절은 PCC NAL 유닛의 순서와 PCC AU에 대한 연관을 지정한다.
PCC AU는 0개 또는 1개의 프레임 그룹 헤더 NAL 유닛, 하나의 지오메트리 d0 비디오 AU, 하나의 지오메트리 d1 비디오 AU, 하나의 보조 정보 프레임 NAL 유닛, 하나의 점유 맵 프레임 NAL 유닛, 및 하나의 텍스처 비디오 AU를, 나열된 순서대로 포함한다.
NAL 유닛의 비디오 AU에 대한 연관 및 비디오 AU 내에서 NAL 유닛의 순서는 식별된 비디오 코덱, 예컨대, HEVC 또는 AVC의 사양에 지정된다. 식별된 비디오 코덱은 각각의 CPS의 첫 번째 PCC AU에 있는 프레임 헤더 NAL 유닛에 표시된다.
각각의 CPS의 첫 번째 PCC AU는 프레임 그룹 헤더 NAL 유닛으로 시작하고, 각각의 프레임 그룹 헤더 NAL 유닛은 새로운 PCC AU의 시작을 지정한다.
다른 PCC AU는 지오메트리 d0 비디오 AU의 첫 번째 NAL 유닛을 포함하는 PCC NAL 유닛으로 시작한다. 달리 말하면, 지오메트리 d0 비디오 AU의 첫 번째 NAL 유닛을 포함하는 PCC NAL 유닛은, 프레임 그룹 헤더 NAL 유닛이 선행되지 않는 경우, 새로운 PCC AU를 시작한다.
PCC AU의 순서와 CPS에 대한 연관이 제공된다.
이 사양을 준수하는 비트스트림은 하나 이상의 CPS로 구성된다.
CPS는 하나 이상의 PCC AU로 구성된다. PCC NAL 유닛의 순서와 PCC AU에 대한 연관은 7.4.2.4.2 절에 기술되어 있다.
CPS의 첫 번째 PCC AU는 PCC IRAP AU이다.
원시 바이트 시퀀스 페이로드, 후행 비트, 및 바이트 정렬 시맨틱이 제공된다. 프레임 그룹 헤더 RBSP 시맨틱은 다음과 같다.
identified_codec은 표 8에 표시된 바와 같이 지오메트리 및 텍스처 콤포넌트의 코딩에 사용되는 식별된 비디오 코덱을 지정한다.
identified_codec의 사양
identified_codec identified_codec의 이름 식별된 비디오 코덱
0 CODEC_HEVC ISO/IEC IS 23008-2 (HEVC)
1 CODEC_AVC ISO/IEC IS 14496-10 (AVC)
2..63 CODEC_RSV_2..CODEC_RSV_63 예약됨
frame_width는 지오메트리 및 텍스처 비디오의 프레임 너비를 픽셀로 나타낸다. occupancyResolution의 배수여야 한다.
frame_height는 지오메트리 및 텍스처 비디오의 프레임 높이를 픽셀로 나타낸다. 이는 occupancyResolution의 배수 여야 한다.
occupancy_resolution은 지오메트리 및 텍스처 비디오에 패치가 압축되는 수평 및 수직 해상도를 픽셀로 나타낸다. 이는 occupancyPrecision의 짝수 값 배수여야 한다.
radius_to_smoothing은 스무딩(smoothing)을 위해 이웃을 감지할 반지름을 나타낸다. radius_to_smoothing의 값은 0에서 255까지(포함)의 범위에 있어야 한다.
neighbour_count_smoothing은 스무딩에 사용되는 이웃의 최대 수를 나타낸다. neighbour_count_smoothing의 값은 0에서 255까지(포함)의 범위에 있어야 한다.
radius2_boundary_detection은 경계 포인트 검출을 위한 반지름을 나타낸다. radius2_boundary_detection의 값은 0에서 255까지(포함)의 범위에 있어야 한다.
threshold_smoothing은 스무딩 임계값(smoothing threshold)을 나타낸다. threshold_smoothing의 값은 0에서 255까지(포함)의 범위에 있어야 한다.
lossless_geometry는 무손실 지오메트리 코딩을 나타낸다. lossless_geometry의 값이 1이면 포인트 클라우드 지오메트리 정보가 무손실로 코딩됨을 나타낸다. lossless_geometry 값이 0이면 포인트 클라우드 지오메트리 정보가 손실 방식으로 코딩됨을 나타낸다.
lossless_texture는 무손실 텍스처 인코딩을 나타낸다. lossless_texture의 값이 1이면 포인트 클라우드 텍스처 정보가 무손실로 코딩됨을 나타낸다. lossless_texture의 값이 0이면 포인트 클라우드 텍스처 정보가 손실 방식으로 코딩됨을 나타낸다.
no_attributes는 속성이 지오메트리 데이터와 함께 코딩되는지 여부를 나타낸다. no_attributes의 값이 1이면 코딩된 포인트 클라우드 비트스트림이 여하한 속성 정보를 포함하지 않음을 나타낸다. no_attributes의 값이 0이면 코딩된 포인트 클라우드 비트스트림이 속성 정보를 포함함을 나타낸다.
lossless_geometry_444는 지오메트리 프레임에 4: 2: 0 또는 4: 4: 4 비디오 포맷을 사용할지 여부를 나타낸다. lossless_geometry_444의 값이 1이면 지오메트리 비디오가 4:4:4 포맷으로 코딩되었음을 나타낸다. lossless_geometry_444의 값이 0이면 지오메트리 비디오가 4:2:0 포맷으로 코딩되었음을 나타낸다.
absolute_d1_coding은 투영 평면에 가장 가까운 레이어 이외의 지오메트리 레이어가 어떻게 코딩되는지를 나타낸다. absolute_d1_coding이 1이면 실제의 지오메트리 값이 투영 평면에 가장 가까운 레이어 이외의 지오메트리 레이어에 대해 코딩됨을 나타낸다. absolute_d1_coding이 0이면 투영 평면에 가장 가까운 레이어 이외의 지오메트리 레이어가 차등적으로 코딩됨을 나타낸다.
bin_arithmetic_coding은 이진 산술 코딩이 사용되는지 여부를 나타낸다. bin_arithmetic_coding의 값이 1이면 모든 신택스 엘리먼트에 이진 산술 코딩이 사용됨을 나타낸다. bin_arithmetic_coding의 값이 0이면 일부 신택스 엘리먼트에 대해 이진이 아닌 산술 코딩이 사용됨을 나타낸다.
gof_header_extension_flag이 0이면 프레임 그룹 헤더 RBSP 신택스 구조에 gof_header_extension_data_flag 신택스 엘리먼트가 없음을 지정한다. gof_header_extension_flag이 1이면 프레임 그룹 헤더 RBSP 신택스 구조에 gof_header_extension_data_flag 신택스 엘리먼트가 있음을 지정한다. 디코더는 프레임 그룹 헤더 NAL 유닛에서 gof_header_extension_flag에 대해 값 1을 따르는 모든 데이터를 무시해야 한다.
gof_header_extension_data_flag는 임의의 값을 가질 수 있다. 그 존재와 값은 디코더 적합성에 영향을 미치지 않는다. 디코더는 모든 gof_header_extension_data_flag 신택스 엘리먼트를 무시해야 한다.
보조 정보 프레임 RBSP 시맨틱이 제공된다.
patch_count는 지오메트리 및 텍스처 비디오의 패치 수이다. 이는 0보다 커야 한다.
occupancy_precision은 점유 맵 정밀도의, 수평 및 수직 해상도(픽셀)이다. 이는 점유가 시그널링되는 서브-블록 크기에 대응한다. 점유 맵의 무손실 코딩을 달성하려면, 이는 크기 1로 설정해야 한다.
max_candidate_count는 패치 후보 목록의 최대 후보 수를 지정한다.
bit_count_u0은 patch_u0의 고정-길이 코딩을 위한 비트 수를 지정한다.
bit_count_v0은 patch_v0의 고정-길이 코딩을 위한 비트 수를 지정한다.
bit_count_u1은 patch_u1의 고정-길이 코딩을 위한 비트 수를 지정한다.
bit_count_v1은 patch_v1의 고정-길이 코딩을 위한 비트 수를 지정한다.
bit_count_d1은 patch_d1의 고정-길이 코딩을 위한 비트 수를 지정한다.
occupancy_aux_stream_size는 패치 정보 및 점유 맵을 코딩하는데 사용되는 바이트 수이다.
다음의 신택스 엘리먼트는 패치당 한 번 지정된다.
patch_u0은 패치 경계 상자(patch bounding box)의 occupancy_resolution x occupancy_resolution 크기의 왼쪽 상단 모서리 서브-블록의 x 좌표를 지정한다. patch_u0의 값은 0에서 frame_width/occupancy_resolution-1(포함) 범위에 있어야 한다.
patch_v0은 패치 경계 상자의 occupancy_resolution x occupancy_resolution 크기의 왼쪽 상단 모서리 서브-블록의 y 좌표를 지정한다. patch_v0의 값은 0에서 frame_height/occupancy_resolution-1(포함) 범위에 있어야 한다.
patch_u1은 패치 포인트의 3D 경계 상자의 최소 x-좌표를 지정한다. patch_u1의 값은 0에서 frame_width-1까지(포함)의 범위에 있어야 한다.
patch_v1은 패치 포인트의 3D 경계 상자의 최소 y-좌표이다. patch_v1의 값은 0에서 frameHeight-1까지(포함)의 범위에 있어야 한다.
patch_d1은 패치의 최소 깊이를 지정한다. patch_d1의 값은 0 에서 <255?>까지(포함)의 범위에 있어야 한다.
delta_size_u0은 현재 패치와 이전 패치 사이의 패치 폭의 차이이다. delta_size_u0의 값은 <.-65536.?>에서 <65535?>까지(포함)의 범위에 있어야 한다.
delta_size_v0은 현재 패치와 이전 패치 사이의 패치 높이의 차이이다. delta_size_v0의 값은 <-65536?.>에서 <.65535?.>까지(포함)의 범위에 있어야 한다.
normal_axis는 평면 투영 인덱스를 지정한다. normal_axis의 값은 0에서 2까지(포함)의 범위에 있어야 한다. 0, 1 및 2의 normalAxis 값은 각각 X, Y 및 Z 투영 축에 해당한다.
다음 신택스 엘리먼트는 블록당 한번 지정된다.
candidate_index는 패치 후보 목록에 대한 인덱스이다. candidate_index의 값은 0에서 max_candidate_count까지(포함)의 범위에 있어야 한다.
patch_index는 프레임과 연관된, 내림차순으로 정렬된 패치 목록에 대한 인덱스이다.
프레임 그룹 점유 맵 시맨틱이 제공된다.
비어 있지 않은 블록에 대해 다음 신택스 엘리먼트가 제공된다.
is_full은 occupancy_resolution × occupancy_resolution 블록 크기의 현재 점유 블록이 가득 찼는지 여부를 지정한다. is_full이 1이면 현재 블록이 가득 찼음을 지정한다. is_full이 0이면 현재 점유 블록이 가득 차지 않음을 지정한다.
best_traversal_order_index는 현재 occupancy_resolution × occupancy_resolution 블록에서 occupancy_precision × occupancy_precision 크기의 서브-블록에 대한 스캔 순서를 지정한다. best_traversal_order_index의 값은 0에서 4까지(포함)의 범위에 있어야 한다.
run_count_prefix는 변수 runCountMinusTwo의 유도에 사용된다.
run_count_suffix는 변수 runCountMinusTwo의 유도에 사용된다. 존재하지 않는 경우, run_count_suffix의 값은 0인 것으로 추론된다.
특정 블록에 대한 blockToPatch의 값이 0이 아니고 블록이 가득 차지 않은 경우, runCountMinusTwo + 2는 블록에 대한 시그널링된 실행 횟수를 나타낸다. runCountMinusTwo의 값은 0에서 (occupancy_resolution * occupancy_resolution) -1까지(포함)의 범위에 있어야 한다.
runCountMinusTwo는 다음과 같이 유도된다.
runCountMinusTwo = (1 << run_count_prefix) - 1 + run_count_suffix (7-85)
occupancy는 (occupancyPrecision × occupancyPrecision 픽셀의) 첫 번째 서브-블록에 대한 점유 값을 지정한다. 0의 점유는 첫 번째 서브-블록이 비어 있음을 지정한다. 1의 점유는 첫 번째 서브-블록이 점유됨을 지정한다.
run_length_idx는 실행 길이를 나타낸다. runLengthIdx의 값은 0에서 14까지의 범위에 있어야 한다.
runLength 변수는 표 9를 사용하여 run_length_idx로부터 유도된다.
run_length_idx로부터 runLength 유도
run_length_idx runLength run_length_idx runLength
0 0 8 13
1 1 9 9
2 2 10 6
3 3 11 10
4 7 12 12
5 11 13 4
6 14 14 8
7 5
주 - 점유 맵은 지오메트리 및 텍스처 비디오 모두에서 공유된다.
HEVC 사양의 7.4.3.11절에 있는 RBSP 후행 비트 시맨틱이 적용된다. HEVC 사양의 7.4.3.12절에 있는 바이트 정렬 시맨틱이 또한 적용된다. PCC 프로파일 및 레벨 시맨틱은 다음과 같다.
pcc_profile_idc는 CPS가 부록 A에 명시된 대로 준수하는 프로파일을 나타낸다. 비트스트림은 부록 A에 명시된 것 이외의 pcc_profile_idc 값을 포함해서는 안된다. pcc_profile_idc의 다른 값은 ISO/IEC에서 향후 사용을 위해 예약되어 있다.
pcc_pl_reserved_zero_19bits는 이 사양의 이 버전을 따르는 비트스트림에서 0과 같아야 한다. pcc_pl_reserved_zero_19bits의 다른 값은 ISO/IEC에서 향후 사용을 위해 예약되어 있다. 디코더는 pcc_pl_reserved_zero_19bits의 값을 무시해야 한다.
pcc_level_idc는 CPS가 부록 A에 명시된 대로 준수하는 레벨을 나타낸다. 비트스트림은 부록 A에 명시된 것 이외의 pcc_level_idc 값을 포함해서는 안된다. pcc_level_idc의 다른 값은 ISO/IEC에서 향후 사용을 위해 예약되어 있다.
hevc_ptl_12byte_geometry는 10 절에 명시된 대로 추출되는 지오메트리 HEVC 비트스트림이 적합한 HEVC 디코더에 의해 디코딩되는 경우 활성 SPS에서 general_profile_idc에서 general_level_idc까지(포함)의 12 바이트 값과 같아야 한다.
hevc_ptl_12byte_texture는 10절에 명시된 대로 추출되는 텍스처 HEVC 비트스트림이 적합한 HEVC 디코더에 의해 디코딩되는 경우 활성 SPS에서 general_profile_idc에서 general_level_idc까지(포함)의 12 바이트의 값과 같아야 한다.
avc_pl_3ytes_geometry는 10절에 명시된 대로 추출되는 지오메트리 AVC 비트스트림이 적합한 AVC 디코더에 의해 디코딩되는 경우 활성 SPS에서 profile_idc에서 level_idc까지(포함)의3 바이트의 값과 같아야 한다.
avc_pl_3ytes_texture는 SPS 10절에 명시된 대로 추출되는 텍스처 AVC 비트스트림이 적합한 AVC 디코더에 의해 디코딩되는 경우 활성 SPS에서 profile_idc에서 level_idc까지(포함)의 3 바이트의 값과 같아야 한다.
최신 PCC Cat2 WD의 104 절에 있는 서브-비트스트림 추출 프로세스는 다음으로 대체된다. 서브-비트스트림 추출 프로세스의 경우, 입력은 비트스트림, 지오메트리 d0, 지오메트리 d1의 타겟 비디오 콤포넌트 표시, 또는 텍스처 콤포넌트이다. 이 프로세스의 출력은 서브-비트스트림이다.
일 실시예로서, 이 절에 명시된 프로세서로부터 적합한 PCC 비트스트림 및 타겟 비디오 콤포넌트 표시의 임의의 값으로 출력되는 임의의 출력 서브-비트스트림이 식별된 비디오 코덱마다 적합한 비디오 비트스트림일 것이 입력 비트스트림에 대한 비트스트림 적합성의 요구 사항이다.
출력 서브-비트스트림은 다음 순서의 단계에 의해 유도된다.
타겟 비디오 콤포넌트 표시의 값에 따라 다음이 적용된다.
지오메트리 d0 콤포넌트가 표시되면, PccNalUnitType이 GEOMETRY_D0과 같지 않은 모든 PCC NAL 유닛을 제거한다.
그렇지 않고, 지오메트리 d1 콤포넌트가 표시되면, PccNalUnitType이 GEOMETRY_D1과 같지 않은 모든 PCC NAL 유닛을 제거한다.
그렇지 않으면(텍스처 콤포넌트가 표시됨), PccNalUnitType이 TEXTURE_NALU와 같지 않은 모든 PCC NAL 유닛을 제거한다.
각각의 PCC NAL 유닛에 대해, 첫 번째 바이트를 제거한다.
다른 실시예가 아래에 제공된다.
위에서 요약된 바와 같은 제1 방법 세트의 다른 실시예로서, PCC NAL 유닛 헤더(예컨대, 도 4에서 데이터 유닛 헤더(404))는 지오메트리 및 텍스처 콤포넌트의 코딩에 사용되는 코덱이 PCC NAL 유닛 유형으로부터 추론될 수 있도록 설계된다. 예를 들어, PCC NAL 유닛 헤더는 아래에 요약된 대로 설계된다.
PCC NAL 유닛 헤더에는 PCC NAL 유닛 페이로드에 포함된 콘텐츠의 유형을 지정하는 예컨대, 7 비트의 유형 인디케이터가 있다. 유형은 예를 들어 다음에 따라 결정된다.
0: 페이로드가 HEVC NAL 유닛을 포함함
1: 페이로드가 AVC NAL 유닛을 포함함
2..63: 예약됨
64: 프레임 그룹 헤더 NAL 유닛
65: 보조 정보 NAL 유닛
66: 점유 맵 NAL 유닛
67..126: 예약됨
0에서 63까지(포함) 범위의 PCC NAL 유닛 유형을 가지는 PCC NAL 유닛을 비디오 NAL 유닛이라 지칭한다.
PCC Cat13 데이터 유닛에 대해 예약된 PCC NAL 유닛 유형의 일부를 사용할 수 있어, PCC Cat2 및 PCC Cat13를 하나의 표준 사양으로 통합할 수 있다.
도 5는 비디오 디코더(예컨대, 비디오 디코더(30))에 의해 구현되는 포인트 클라우드 코딩 방법(500)의 실시예이다. 방법(500)은 포인트 클라우드 코딩과 관련된 전술한 문제 중 하나 이상을 해결하기 위해 수행될 수 있다.
블록(502)에서, 텍스처 콤포넌트 또는 지오메트리 콤포넌트의 코딩된 표현의 일부가 아니거나 그 외부에 배치되는 프레임 그룹 헤더(예컨대, 프레임 그룹 헤더(408))를 포함하는, 그리고 텍스처 콤포넌트 또는 지오메트리 콤포넌트를 코딩하는데 사용되는 비디오 코덱을 식별하는, 인코딩된 비트스트림(예컨대, 데이터 구조(400))이 수신된다.
블록(504)에서, 인코딩된 비트스트림이 디코딩된다. 디코딩된 비트스트림은 디스플레이 디바이스에서 사용자에게 디스플레이하기 위한 이미지 또는 비디오를 생성하는데 사용될 수 있다.
일 실시예로서, 코딩된 표현은 PCC 네트워크 추상화 레이어(NAL) 유닛의 페이로드에 포함된다. 일 실시예로서, PCC NAL 유닛의 페이로드는 비디오 코덱에 대응하는 지오메트리 콤포넌트를 포함한다. 일 실시예로서, PCC NAL 유닛의 페이로드는 비디오 코덱에 대응하는 텍스처 콤포넌트를 포함한다.
일 실시예로서, 비디오 코덱은 고효율 비디오 코딩(HEVC)이다. 일 실시예로서, 비디오 코덱은 고급 비디오 코딩(AVC)이다. 일 실시예로서, 비디오 코덱은 다용도 비디오 코딩(VVC)이다. 일 실시예로서, 비디오 코덱은 필수 비디오 코딩(EVC)이다.
일 실시예로서, 지오메트리 콤포넌트는 포인트 클라우드 프레임에 연관된 좌표 세트를 포함한다. 일 실시예로서, 좌표 세트는 데카르트 좌표계이다.
일 실시예로서, 텍스처 콤포넌트는 포인트 클라우드 프레임의 루마 샘플 값 세트를 포함한다.
도 6은 비디오 인코더(예컨대, 비디오 인코더(20))에 의해 구현되는 포인트 클라우드 코딩 방법(600)의 실시예이다. 방법(600)은 포인트 클라우드 코딩와 연관된 전술한 문제 중 하나 이상을 해결하기 위해 수행될 수 있다.
블록(602)에서, 프레임 그룹 헤더(예컨대, 프레임 그룹 헤더(408))를 포함하는 인코딩된 비트스트림(예컨대, 데이터 구조(400))이 생성된다. 프레임 그룹 헤더는 텍스처 콤포넌트 또는 지오메트리 콤포넌트의 코딩된 표현의 외부에 배치되고 텍스처 콤포넌트 또는 지오메트리 콤포넌트를 코딩하는데 사용되는 비디오 코덱을 식별한다.
블록(604)에서, 인코딩된 비트스트림은 디코더(예컨대, 비디오 디코더(30))로 전송된다. 디코더에 의해 수신되면, 인코딩된 비트스트림은 디스플레이 디바이스에서 사용자에게 디스플레이하기 위한 이미지 또는 비디오를 생성하기 위해 디코딩될 수 있다.
일 실시예로서, 코딩된 표현은 PCC 네트워크 추상화 레이어(NAL) 유닛의 페이로드에 포함된다. 일 실시예로서, PCC NAL 유닛의 페이로드는 비디오 코덱에 대응하는 지오메트리 콤포넌트를 포함한다. 일 실시예로서, PCC NAL 유닛의 페이로드는 비디오 코덱에 대응하는 텍스처 콤포넌트를 포함한다.
일 실시예로서, 비디오 코덱은 고효율 비디오 코딩(HEVC)이다. 일 실시예로서, 비디오 코덱은 고급 비디오 코딩(AVC)이다. 일 실시예로서, 비디오 코덱은 다용도 비디오 코딩(VVC)이다. 일 실시예로서, 비디오 코덱은 필수 비디오 코딩(EVC)이다.
일 실시예로서, 지오메트리 콤포넌트는 포인트 클라우드 프레임에 연관된 좌표 세트를 포함한다. 일 실시예로서, 좌표 세트는 데카르트 좌표계이다.
일 실시예로서, 텍스처 콤포넌트는 포인트 클라우드 프레임의 루마 샘플 값 세트를 포함한다.
도 7은 본 개시의 실시예에 따른 비디오 코딩 디바이스(700)(예컨대, 비디오 디코더(20), 비디오 디코더(30), 등)의 개략도이다. 비디오 코딩 디바이스(700)는 여기에 개시된 방법 및 프로세스를 구현하는데 적합하다. 비디오 코딩 디바이스(700)는, 데이터를 수신하기 위한 입구 포트(710) 및 수신기 유닛(Rx)(720); 데이터를 처리하기 위한 프로세서, 논리 유닛, 또는 중앙 처리 장치(CPU)(730); 데이터를 전송하기 위한 송신기 유닛(Tx)(740) 및 출구 포트(750); 및 데이터를 저장하기 위한 메모리(760)를 포함한다. 비디오 코딩 디바이스(700)는 광학적 또는 전기적 신호의 유출 또는 유입을 위해 입구 포트(710), 수신기 유닛(720), 송신기 유닛(740), 및 출구 포트(750)에 결합되는 광-전기(OE; optical-to-electrical) 콤포넌트 및 전기-광(EO; electrical-to-optical) 콤포넌트를 또한 포함할 수 있다.
프로세서(730)는 하드웨어 및 소프트웨어로 구현된다. 프로세서(730)는 하나 이상의 CPU 칩, 코어(예컨대, 멀티 코어 프로세서), FPGA(field-programmable gate array), ASIC(application specific integrated circuits) 및 DSP(digital signal processor)로 구현될 수 있다. 프로세서(730)는 입구 포트(710), 수신기 유닛(720), 송신기 유닛(740), 출구 포트(750), 및 메모리(760)와 통신한다. 프로세서(730)는 코딩 모듈(770)을 포함한다. 코딩 모듈(770)은 위에서 설명된 개시된 실시예들을 구현한다. 코딩 모듈(770)을 포함함으로써 코딩 디바이스(700)의 기능에 상당한 향상이 제공되고 비디오 코딩 디바이스(700)의 상이한 상태로의 변환에 영향을 끼친다. 대안적으로, 코딩 모듈(770)은 메모리(760)에 저장되고 프로세서(730)에 의해 실행되는 명령어로서 구현된다.
비디오 코딩 디바이스(700)는 사용자와 데이터를 통신하기 위한 입력 및/또는 출력(I/O) 디바이스(780)를 또한 포함할 수 있다. I/O 디바이스(780)는 비디오 데이터를 표시하기 위한 디스플레이, 오디오 데이터를 출력하기 위한 스피커 등과 같은 출력 디바이스를 포함할 수 있다. I/O 디바이스(780)는 또한 키보드, 마우스, 트랙볼 등과 같은 입력 디바이스 및/또는 이러한 출력 디바이스와 상호 작용하기 위한 대응하는 인터페이스를 포함할 수 있다.
메모리(760)는 하나 이상의 디스크, 테이프 드라이브, 및 고체 드라이브를 포함하고, 프로그램이 실행을 위해 선택될 때 프로그램을 저장하고, 프로그램 실행 중에 판독되는 명령 및 데이터를 저장하기 위해 오버-플로우 데이터 저장 장치로서 사용될 수 있다. 메모리(760)는 휘발성 및 비휘발성일 수 있으며, ROM(read-only memory), RAM(random-access memory), TCAM(ternary content-addressable memory) 및 SRAM(static random-access memory)일 수 있다.
도 8은 코딩 수단(800)의 실시예의 개략도이다. 실시예로서, 코딩 수단(800)은 비디오 코딩 디바이스(802)(예컨대, 비디오 인코더(20) 또는 비디오 디코더(30))에서 구현된다. 비디오 코딩 디바이스(802)는 수신 수단(801)을 포함한다. 수신 수단(801)는 인코딩할 화상을 수신하거나 또는 디코딩할 비트스트림을 수신하도록 구성된다. 비디오 코딩 디바이스(802)는 수신 수단(801)에 연결된 전송 수단(807)을 포함한다. 전송 수단(807)는 비트스트림을 디코더로 전송하거나 또는 디코딩된 이미지를 디스플레이 수단(예컨대, I/O 디바이스(780) 중 하나)으로 전송하도록 구성된다.
비디오 코딩 디바이스(802)는 저장 수단(803)을 포함한다. 저장 수단(803)은 수신 수단(801) 또는 전송 수단(807) 중 적어도 하나에 결합된다. 저장 수단(803)은 명령을 저장하도록 구성된다. 비디오 코딩 디바이스(802)는 처리 수단(805)을 또한 포함한다. 처리 수단(805)은 저장 수단(803)에 결합된다. 처리 수단(805)은 저장 수단(803)에 저장된 명령을 실행하여 여기에 개시된 방법을 수행하도록 구성된다.
본 명세서에서 여러 실시 예가 제공되었지만, 개시된 시스템 및 방법은 본 명세서의 사상 또는 범위를 벗어나지 않고 많은 다른 특정 형태로 구현될 수 있음을 이해할 수 있다. 본 실시 예는 제한적이지 않고 예시적인 것으로 간주되어야 하며, 그 의도는 여기에 제공된 세부 사항에 제한되지 않는다. 예를 들어, 다양한 요소 또는 구성 요소는 다른 시스템에서 결합 또는 통합될 수 있거나, 특정 기능이 생략되거나 구현되지 않을 수 있다.
또한, 다양한 실시 예에서 개별적이거나 별개로 설명되고 예시된 기술, 시스템, 서브 시스템 및 방법은 본 개시의 범위를 벗어나지 않고 다른 시스템, 구성 요소, 기술 또는 방법과 결합되거나 통합될 수 있다. 변경, 대체, 및 변경의 다른 예시들은 통상의 기술자에 의해 확인될 수 있으며 여기에 개시된 사상 및 범위를 벗어나지 않고 이루어질 수 있다.

Claims (16)

  1. 비디오 디코더에 의해 구현되는 포인트 클라우드 코딩(PCC) 방법으로서,
    텍스처 콤포넌트 및 지오메트리 콤포넌트의 코딩된 표현의 외부에 배치되는 프레임 그룹(group of frames, GOF) 헤더를 포함하는 인코딩된 비트스트림을 수신하는 단계 - 상기 GOF 헤더는 상기 텍스처 콤포넌트 및 상기 지오메트리 콤포넌트를 코딩하는데 사용되는 비디오 코덱을 식별하기 위한 identified_codec 파라미터를 포함함 -; 및
    상기 인코딩된 비트스트림을 디코딩하는 단계;를 포함하고,
    상기 identified_codec 파라미터가 제1 값을 가지면, 이는 상기 텍스처 콤포넌트 및 상기 지오메트리 콤포넌트를 코딩하는데 사용되는 고효율 비디오 코딩(high efficiency video coding, HEVC)을 지시하거나; 또는
    상기 identified_codec 파라미터가 제2 값을 가지면, 이는 상기 텍스처 콤포넌트 및 상기 지오메트리 콤포넌트를 코딩하는데 사용되는 어드밴스드 비디오 코딩(advanced video coding, AVC)을 지시하는, 포인트 클라우드 코딩(PCC) 방법.
  2. 비디오 인코더에 의해 구현되는 포인트 클라우드 코딩(PCC) 방법으로서,
    텍스처 콤포넌트 및 지오메트리 콤포넌트의 코딩된 표현의 외부에 배치되는 프레임 그룹(group of frames, GOF) 헤더를 포함하는 인코딩된 비트스트림을 생성하는 단계 - 상기 GOF 헤더는 상기 텍스처 콤포넌트 및 상기 지오메트리 콤포넌트를 코딩하는데 사용되는 비디오 코덱을 식별하기 위한 identified_codec 파라미터를 포함함 -; 및
    상기 인코딩된 비트스트림을 디코더 쪽으로 전송하는 단계;를 포함하고,
    상기 identified_codec 파라미터가 제1 값을 가지면, 이는 상기 텍스처 콤포넌트 및 상기 지오메트리 콤포넌트를 코딩하는데 사용되는 고효율 비디오 코딩(high efficiency video coding, HEVC)을 지시하거나; 또는
    상기 identified_codec 파라미터가 제2 값을 가지면, 이는 상기 텍스처 콤포넌트 및 상기 지오메트리 콤포넌트를 코딩하는데 사용되는 어드밴스드 비디오 코딩(advanced video coding, AVC)을 지시하는, 포인트 클라우드 코딩(PCC) 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 코딩된 표현은 PCC 네트워크 추상화 레이어(network abstraction layer, NAL) 유닛의 페이로드(payload)에 포함되는, 포인트 클라우드 코딩(PCC) 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 PCC NAL 유닛의 페이로드는 상기 비디오 코덱에 대응하는 지오메트리 콤포넌트를 포함하는, 포인트 클라우드 코딩(PCC) 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 PCC NAL 유닛의 페이로드는 상기 비디오 코덱에 대응하는 텍스처 콤포넌트를 포함하는, 포인트 클라우드 코딩(PCC) 방법.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 코딩 장치로서,
    인코딩할 화상을 수신하거나 디코딩할 비트스트림을 수신하도록 구성되는 수신기;
    상기 수신기에 연결되는 송신기 - 상기 송신기는 상기 비트스트림을 디코더로 전송하거나 디코딩된 이미지를 디스플레이로 전송하도록 구성됨 -;
    상기 수신기 또는 송신기 중 적어도 하나에 연결되는 메모리 - 상기 메모리는 명령을 저장하도록 구성됨 -; 및
    상기 메모리에 연결되는 프로세서 - 상기 프로세서는 상기 메모리에 저장된 명령을 실행하여 제1항 또는 제2항의 방법을 수행하도록 구성됨 -;를 포함하는, 코딩 장치.
  10. 제9항에 있어서,
    이미지를 표시하도록 구성되는 디스플레이를 더 포함하는, 코딩 장치.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
KR1020217001877A 2018-06-26 2019-04-11 포인트 클라우드 코딩을 위한 하이-레벨 신택스 설계 KR102486256B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862690132P 2018-06-26 2018-06-26
US62/690,132 2018-06-26
PCT/US2019/027067 WO2020005365A1 (en) 2018-06-26 2019-04-11 High-level syntax designs for point cloud coding

Publications (2)

Publication Number Publication Date
KR20210022090A KR20210022090A (ko) 2021-03-02
KR102486256B1 true KR102486256B1 (ko) 2023-01-06

Family

ID=68985126

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020217001998A KR20210022100A (ko) 2018-06-26 2019-04-11 포인트 클라우드 코딩을 위한 고급 신택스 설계
KR1020217001877A KR102486256B1 (ko) 2018-06-26 2019-04-11 포인트 클라우드 코딩을 위한 하이-레벨 신택스 설계
KR1020217001800A KR102486371B1 (ko) 2018-06-26 2019-04-11 포인트 클라우드 코딩을 위한 고급 구문 설계
KR1020237006158A KR20230031992A (ko) 2018-06-26 2019-04-11 포인트 클라우드 코딩을 위한 고급 신택스 설계

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217001998A KR20210022100A (ko) 2018-06-26 2019-04-11 포인트 클라우드 코딩을 위한 고급 신택스 설계

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020217001800A KR102486371B1 (ko) 2018-06-26 2019-04-11 포인트 클라우드 코딩을 위한 고급 구문 설계
KR1020237006158A KR20230031992A (ko) 2018-06-26 2019-04-11 포인트 클라우드 코딩을 위한 고급 신택스 설계

Country Status (8)

Country Link
US (5) US11706458B2 (ko)
EP (3) EP4407950A3 (ko)
JP (6) JP7111846B2 (ko)
KR (4) KR20210022100A (ko)
CN (4) CN112438047B (ko)
BR (3) BR112020026591A2 (ko)
SG (3) SG11202012942TA (ko)
WO (3) WO2020005363A1 (ko)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10897269B2 (en) 2017-09-14 2021-01-19 Apple Inc. Hierarchical point cloud compression
US11818401B2 (en) 2017-09-14 2023-11-14 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
US10861196B2 (en) 2017-09-14 2020-12-08 Apple Inc. Point cloud compression
US11113845B2 (en) 2017-09-18 2021-09-07 Apple Inc. Point cloud compression using non-cubic projections and masks
US10909725B2 (en) 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
US10699444B2 (en) 2017-11-22 2020-06-30 Apple Inc Point cloud occupancy map compression
US10607373B2 (en) 2017-11-22 2020-03-31 Apple Inc. Point cloud compression with closed-loop color conversion
US11010928B2 (en) 2018-04-10 2021-05-18 Apple Inc. Adaptive distance based point cloud compression
US10909727B2 (en) 2018-04-10 2021-02-02 Apple Inc. Hierarchical point cloud compression with smoothing
US10867414B2 (en) 2018-04-10 2020-12-15 Apple Inc. Point cloud attribute transfer algorithm
US10909726B2 (en) 2018-04-10 2021-02-02 Apple Inc. Point cloud compression
US10939129B2 (en) 2018-04-10 2021-03-02 Apple Inc. Point cloud compression
US11017566B1 (en) 2018-07-02 2021-05-25 Apple Inc. Point cloud compression with adaptive filtering
US11202098B2 (en) 2018-07-05 2021-12-14 Apple Inc. Point cloud compression with multi-resolution video encoding
US11012713B2 (en) 2018-07-12 2021-05-18 Apple Inc. Bit stream structure for compressed point cloud data
KR20210040958A (ko) * 2018-08-03 2021-04-14 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 3차원 데이터 부호화 방법, 3차원 데이터 복호 방법, 3차원 데이터 부호화 장치, 및 3차원 데이터 복호 장치
CN112534477A (zh) * 2018-08-08 2021-03-19 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置以及三维数据解码装置
CN113016184B (zh) * 2018-09-14 2023-07-07 华为技术有限公司 点云译码中属性支持的改进
US11386524B2 (en) 2018-09-28 2022-07-12 Apple Inc. Point cloud compression image padding
US11367224B2 (en) * 2018-10-02 2022-06-21 Apple Inc. Occupancy map block-to-patch information compression
US11430155B2 (en) 2018-10-05 2022-08-30 Apple Inc. Quantized depths for projection point cloud compression
US11348284B2 (en) 2019-01-08 2022-05-31 Apple Inc. Auxiliary information signaling and reference management for projection-based point cloud compression
EP3709272A1 (en) 2019-03-15 2020-09-16 InterDigital VC Holdings, Inc. Processing a point cloud
US11057564B2 (en) 2019-03-28 2021-07-06 Apple Inc. Multiple layer flexure for supporting a moving image sensor
US11562507B2 (en) 2019-09-27 2023-01-24 Apple Inc. Point cloud compression using video encoding with time consistent patches
US11627314B2 (en) 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
US11538196B2 (en) 2019-10-02 2022-12-27 Apple Inc. Predictive coding for point cloud compression
US11895307B2 (en) 2019-10-04 2024-02-06 Apple Inc. Block-based predictive coding for point cloud compression
WO2021068923A1 (en) 2019-10-10 2021-04-15 Beijing Bytedance Network Technology Co., Ltd. Deblocking filtering improvements
EP4068789A4 (en) * 2020-01-07 2023-01-04 LG Electronics Inc. POINT CLOUD DATA TRANSMITTER DEVICE, POINT CLOUD DATA TRANSMITTER METHOD, POINT CLOUD DATA RECEIVE DEVICE AND POINT CLOUD DATA RECEIVE METHOD
US11356706B2 (en) 2020-01-08 2022-06-07 Qualcomm Incorporated Storage and delivery of video data for video coding
US11593967B2 (en) 2020-01-08 2023-02-28 Samsung Electronics Co., Ltd. Attribute transfer in V-PCC
US11798196B2 (en) 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
KR102344072B1 (ko) 2020-01-08 2021-12-28 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11625866B2 (en) 2020-01-09 2023-04-11 Apple Inc. Geometry encoding using octrees and predictive trees
KR102373833B1 (ko) 2020-01-09 2022-03-14 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11317117B2 (en) * 2020-03-30 2022-04-26 Tencent America LLC Method of coding attributes for point cloud coding
WO2021206333A1 (ko) * 2020-04-11 2021-10-14 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11620768B2 (en) 2020-06-24 2023-04-04 Apple Inc. Point cloud geometry compression using octrees with multiple scan orders
US11615557B2 (en) 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
US11816868B2 (en) * 2020-08-14 2023-11-14 Tencent America LLC Coding of multiple-component attributes for point cloud coding
US20230345008A1 (en) * 2020-10-30 2023-10-26 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20220180567A1 (en) * 2020-12-04 2022-06-09 Tencent America LLC Method and apparatus for point cloud coding
US12044779B2 (en) * 2020-12-08 2024-07-23 Argo AI, LLC Methods and system for analyzing dynamic lidar point cloud data
US11948338B1 (en) 2021-03-29 2024-04-02 Apple Inc. 3D volumetric content encoding using 2D videos and simplified 3D meshes
JPWO2023054156A1 (ko) * 2021-09-29 2023-04-06
EP4411643A1 (en) * 2021-09-30 2024-08-07 Zhejiang University Encoding and decoding methods, encoder, decoder and storage medium
WO2023090614A1 (ko) * 2021-11-19 2023-05-25 현대자동차주식회사 라이다 포인트 클라우드 코딩을 위한 방법 및 장치
KR20240134934A (ko) * 2022-01-04 2024-09-10 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 포인트 클라우드 코딩 방법, 장치 및 매체
WO2024064043A1 (en) * 2022-09-19 2024-03-28 Innopeak Technology, Inc. Point cloud decoding method, point cloud encoding method, decoder and encoder
JP2024058010A (ja) * 2022-10-13 2024-04-25 Kddi株式会社 メッシュ復号装置、メッシュ符号化装置、メッシュ復号方法及びプログラム

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100735359B1 (ko) * 2005-07-04 2007-07-04 삼성전자주식회사 디지털 멀티미디어 방송시스템에서의 데이터 송수신 장치및 방법
US8798148B2 (en) * 2007-06-15 2014-08-05 Physical Optics Corporation Apparatus and method employing pre-ATR-based real-time compression and video frame segmentation
US8204313B2 (en) * 2007-08-30 2012-06-19 Leica Geosystems Ag Rapid, spatial-data viewing and manipulating including data partition and indexing
WO2010002420A1 (en) 2008-07-01 2010-01-07 Thomson Licensing Network abstraction layer (nal)-aware multiplexer
WO2012023837A2 (en) * 2010-08-19 2012-02-23 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding multilayer videos
US9060174B2 (en) * 2010-12-28 2015-06-16 Fish Dive, Inc. Method and system for selectively breaking prediction in video coding
JP6094973B2 (ja) 2011-05-20 2017-03-15 サン パテント トラスト 色平面内予測を用いて映像を符号化および復号する方法および装置
US20130188013A1 (en) * 2011-07-22 2013-07-25 Qualcomm Incorporated Mvc based 3dvc codec supporting inside view motion prediction (ivmp) mode
RU2583040C2 (ru) * 2011-08-30 2016-05-10 Нокиа Текнолоджиз Ой Устройство, способ и компьютерная программа для кодирования и декодирования видеосигналов
US9432665B2 (en) * 2011-12-02 2016-08-30 Qualcomm Incorporated Coding least significant bits of picture order count values identifying long-term reference pictures
US10447990B2 (en) * 2012-02-28 2019-10-15 Qualcomm Incorporated Network abstraction layer (NAL) unit header design for three-dimensional video coding
US9762903B2 (en) 2012-06-01 2017-09-12 Qualcomm Incorporated External pictures in video coding
CA2985277C (en) 2012-06-11 2019-06-04 Samsung Electronics Co., Ltd. Video encoding method and apparatus, and video decoding method and apparatus sharing sao parameters between color components
US9602827B2 (en) * 2012-07-02 2017-03-21 Qualcomm Incorporated Video parameter set including an offset syntax element
US20140037005A1 (en) * 2012-08-02 2014-02-06 Penne Y. LEE Transcoding video data
CA2871828C (en) 2012-09-28 2015-09-15 Sony Corporation Image processing device
US9615090B2 (en) * 2012-12-28 2017-04-04 Qualcomm Incorporated Parsing syntax elements in three-dimensional video coding
US9900609B2 (en) 2013-01-04 2018-02-20 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
TWM487509U (zh) * 2013-06-19 2014-10-01 杜比實驗室特許公司 音訊處理設備及電子裝置
KR102153539B1 (ko) * 2013-09-05 2020-09-08 한국전자통신연구원 영상 처리 장치 및 방법
EP3050294A4 (en) 2013-09-27 2017-08-09 Qualcomm Incorporated Residual coding for depth intra prediction modes
JP6397421B2 (ja) 2013-10-08 2018-09-26 シャープ株式会社 画像復号装置及び画像符号化装置
GB2531271A (en) 2014-10-14 2016-04-20 Nokia Technologies Oy An apparatus, a method and a computer program for image sequence coding and decoding
US9955159B2 (en) 2014-10-31 2018-04-24 Google Llc Multi-video decoding with input switching
CN104484852A (zh) * 2014-11-19 2015-04-01 温州大学 一种点云曲面的复合几何图像表示方法
GB2539461B (en) 2015-06-16 2020-01-08 Canon Kk Image data encapsulation
US9646410B2 (en) * 2015-06-30 2017-05-09 Microsoft Technology Licensing, Llc Mixed three dimensional scene reconstruction from plural surface models
US10798422B2 (en) 2015-10-20 2020-10-06 Intel Corporation Method and system of video coding with post-processing indication
WO2017082079A1 (ja) * 2015-11-11 2017-05-18 ソニー株式会社 画像処理装置および画像処理方法
US10482196B2 (en) * 2016-02-26 2019-11-19 Nvidia Corporation Modeling point cloud data using hierarchies of Gaussian mixture models
CN105992008B (zh) * 2016-03-30 2019-08-30 南京邮电大学 一种在多核处理器平台上的多层次多任务并行解码方法
US11025882B2 (en) * 2016-04-25 2021-06-01 HypeVR Live action volumetric video compression/decompression and playback
EP3249921A1 (en) * 2016-05-24 2017-11-29 Thomson Licensing Method, apparatus and stream for immersive video format
GB2550604A (en) 2016-05-24 2017-11-29 Canon Kk Method, device, and computer program for encapsulating and parsing timed media data
US11297346B2 (en) * 2016-05-28 2022-04-05 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
US10694210B2 (en) * 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
US10223810B2 (en) * 2016-05-28 2019-03-05 Microsoft Technology Licensing, Llc Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression
KR20190035678A (ko) * 2016-07-08 2019-04-03 브이아이디 스케일, 인크. 지오메트리 투영을 이용한 360도 비디오 코딩
US20180053324A1 (en) * 2016-08-19 2018-02-22 Mitsubishi Electric Research Laboratories, Inc. Method for Predictive Coding of Point Cloud Geometries
US10271069B2 (en) * 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention
WO2018083378A1 (en) 2016-11-01 2018-05-11 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
US11514613B2 (en) * 2017-03-16 2022-11-29 Samsung Electronics Co., Ltd. Point cloud and mesh compression using image/video codecs
US10909725B2 (en) 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
WO2019142164A1 (en) * 2018-01-19 2019-07-25 Interdigital Vc Holdings, Inc. Processing a point cloud
EP3759925A4 (en) 2018-03-01 2021-11-10 Nokia Technologies Oy DEVICE, METHOD AND COMPUTER PROGRAM FOR VOLUMETRIC VIDEO
US10939129B2 (en) * 2018-04-10 2021-03-02 Apple Inc. Point cloud compression

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Jill Boyce et al, VPS support for out-of-band signaling and hybrid codec scalability, JCT-VC of ITU-T and ISO/IEC 11th meeting, JCTVC-K0206 (2012.10.09.) 1부.*
Khaled Mammou. First Working Draft for PCC Category 2, ISO/IEC JTC1/SC29/WG11 MPEG 2012/N17374 (2018.04.15.) 1부.*
Philip A. Chou et al, First Working Draft for PCC Category 1, ISO/IEC JTC1/SC29/WG11 MPEG 2012/N17373 (2018.04.11.) 1부.*

Also Published As

Publication number Publication date
JP2021528917A (ja) 2021-10-21
EP3804320A1 (en) 2021-04-14
JP2022160530A (ja) 2022-10-19
US11856230B2 (en) 2023-12-26
BR112020026646A2 (pt) 2021-03-23
EP3804319A4 (en) 2021-06-30
US20210112281A1 (en) 2021-04-15
EP4407950A3 (en) 2024-10-23
EP4407950A2 (en) 2024-07-31
CN112368990A (zh) 2021-02-12
JP7116199B2 (ja) 2022-08-09
WO2020005363A1 (en) 2020-01-02
EP3804275A4 (en) 2021-05-05
JP7287745B2 (ja) 2023-06-06
SG11202012942TA (en) 2021-01-28
CN115665104A (zh) 2023-01-31
US20210112280A1 (en) 2021-04-15
US11706458B2 (en) 2023-07-18
JP2022165994A (ja) 2022-11-01
KR20210021072A (ko) 2021-02-24
WO2020005365A8 (en) 2020-10-08
CN112385221A (zh) 2021-02-19
JP2021530889A (ja) 2021-11-11
US20230328291A1 (en) 2023-10-12
BR112020026591A2 (pt) 2021-03-23
EP3804319A1 (en) 2021-04-14
KR20210022090A (ko) 2021-03-02
KR20210022100A (ko) 2021-03-02
WO2020005364A1 (en) 2020-01-02
US20240196017A1 (en) 2024-06-13
US20210112278A1 (en) 2021-04-15
KR20230031992A (ko) 2023-03-07
CN112438047B (zh) 2022-08-09
EP3804275B1 (en) 2023-03-01
JP2021529460A (ja) 2021-10-28
JP2023120197A (ja) 2023-08-29
WO2020005365A1 (en) 2020-01-02
SG11202012940XA (en) 2021-01-28
CN112438047A (zh) 2021-03-02
JP7111846B2 (ja) 2022-08-02
CN112385221B (zh) 2022-08-26
SG11202012937WA (en) 2021-01-28
EP3804320A4 (en) 2021-06-30
KR102486371B1 (ko) 2023-01-06
BR112020026618A2 (pt) 2021-03-30
EP3804275A1 (en) 2021-04-14
CN112368990B (zh) 2022-09-23

Similar Documents

Publication Publication Date Title
KR102486256B1 (ko) 포인트 클라우드 코딩을 위한 하이-레벨 신택스 설계
CN114097209A (zh) 视频译码中的存取单元中的适应性参数集
WO2020146341A1 (en) Point cloud bitstream structure and auxiliary information differential coding
US12002243B2 (en) Patch data unit coding and decoding for point-cloud coding
US11973987B2 (en) Efficient patch rotation in point cloud coding
EP3804319B1 (en) High-level syntax designs for point cloud coding

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant