KR20210022100A - 포인트 클라우드 코딩을 위한 고급 신택스 설계 - Google Patents

포인트 클라우드 코딩을 위한 고급 신택스 설계 Download PDF

Info

Publication number
KR20210022100A
KR20210022100A KR1020217001998A KR20217001998A KR20210022100A KR 20210022100 A KR20210022100 A KR 20210022100A KR 1020217001998 A KR1020217001998 A KR 1020217001998A KR 20217001998 A KR20217001998 A KR 20217001998A KR 20210022100 A KR20210022100 A KR 20210022100A
Authority
KR
South Korea
Prior art keywords
video
pcc
coding
unit
point cloud
Prior art date
Application number
KR1020217001998A
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 후아웨이 테크놀러지 컴퍼니 리미티드
Priority to KR1020237006158A priority Critical patent/KR20230031992A/ko
Publication of KR20210022100A publication Critical patent/KR20210022100A/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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]
    • 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
    • H04L65/602
    • H04L65/604
    • H04L65/607
    • 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/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/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/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
    • 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]

Abstract

비디오 디코더에 의해 구현되는 포인트 클라우드 코딩(PCC) 방법은, 데이터 유닛 헤더 및 데이터 유닛을 포함하는 인코딩된 비트스트림을 수신하는 단계 - 상기 데이터 유닛 헤더는 상기 데이터 유닛의 페이로드에 실려 전달되는 콘텐츠의 유형을 명시하는 유형 지시자를 포함함 - 및 인코딩된 비트스트림을 디코딩하는 단계를 포함한다.

Description

포인트 클라우드 코딩을 위한 고급 신택스 설계
관련 출원에 대한 상호 참조
본 특허 출원은 Ye-Kui Wang 등에 의해 2018년 6월 26일에 출원되고, "포인트 클라우드 코딩을 위한 고 레벨 신택스 설계(High-Level Syntax Designs for Point Cloud Coding)"라는 명칭의 미국 가 특허 출원 제62/690,132호의 혜택을 주장하며, 이는 인용에 의해 본 출원에 통합된다.
본 출원은 일반적으로 포인트 클라우드 코딩과 관련된 것으로, 구체적으로 포인트 클라우드 코딩을 위한 고 레벨 신택스와 관련된 것이다.
포인트 클라우드는 엔터테인먼트 산업, 지능형 자동차 내비게이션, 지리 공간 검사(geospatial inspection), 실제객체의 3차원(three dimensional, 3D) 모델링, 시각화 등 다양한 애플리케이션에 사용된다. 포인트 클라우드의 균일하지 않은 샘플링 지오메트리(non-uniform sampling geometry)를 고려할 때, 이러한 데이터의 저장 및 송신을 위한 간결한 표현이 유용하다. 다른 3D 프리젠테이션과 비교할 때, 불규칙한 포인트 클라우드(irregular point cloud)가 더 일반적이고 광범위한 센서 및 데이터 수집 전략에 적용 가능하다. 예를 들어, 가상현실 세계에서 3D 프리젠테이션을 수행하거나 원격현실 환경(tele-presence environment)에서 원격 렌더링(remote rendering)을 수행하는 경우, 가상 피규어의 렌더링 및 실시간 명령은 고밀도 포인트 클라우드 데이터 세트로서 처리된다.
제1 측면은 비디오 디코더에 의해 구현되는 포인트 클라우드 코딩(point cloud coding, PCC) 방법에 관한 것이다. 상기 포인트 클라우드 코딩(PCC) 방법은 데이터 유닛 헤더 및 데이터 유닛을 포함하는 인코딩된 비트스트림을 수신하는 단계 - 상기 데이터 유닛 헤더는 상기 데이터 유닛의 페이로드에 실려 전달되는 콘텐츠의 유형을 명시하는 유형 지시자를 포함함 -; 및 인코딩된 비트스트림을 디코딩하는 단계를 포함한다.
제2 측면은 비디오 인코더에 의해 구현되는 포인트 클라우드 코딩(PCC) 방법에 관한 것이다. 데이터 유닛 헤더 및 데이터 유닛을 포함하는 인코딩된 비트스트림을 생성하는 단계 - 상기 데이터 유닛 헤더는 상기 데이터 유닛의 페이로드에 실려 전달되는 콘텐츠의 유형을 명시하는 유형 지시자를 포함함-; 및 인코딩된 비트스트림을 디코더에 송신하는 단계를 포함한다.
상기 방법들은 아래에 설명된 바와 같이 포인트 클라우드 코딩과 연관된 하나 이상의 문제를 해결하는 고 레벨 신택스 설계를 제공한다. 따라서, 비디오 코딩의 프로세스 및 비디오 코덱이 더욱 효율성이 있는 등, 향상된다.
이러한 제1 측면 또는 제2 측면에 따른 방법의 제1 구현 형태에서, 상기 데이터 유닛 헤더는 PCC 네트워크 추상화 계층(network abstraction layer, NAL) 유닛 헤더이다.
이러한 제1 측면 또는 제2 측면, 또는 제1 또는 제2 측면의 어느 선행하는 구현 형태에 따른 방법의 제2 구현 형태에서, 상기 데이터 유닛은 PCC NAL 유닛이다.
이러한 제1 측면 또는 제2 측면, 또는 제1 또는 제2 측면의 어느 선행하는 구현 형태에 따른 방법의 제3 구현 형태에서, 상기 유형 지시자는 상기 콘텐츠의 유형이 지오메트리 구성요소(geometry component)임을 명시한다.
이러한 제1 측면 또는 제2 측면, 또는 제1 또는 제2 측면의 어느 선행하는 구현 형태에 따른 방법의 제4 구현 형태에서, 상기 유형 지시자는 상기 콘텐츠의 유형이 텍스처 구성요소(texture component)임을 명시한다.
이러한 제1 측면 또는 제2 측면, 또는 제1 또는 제2 측면의 어느 선행하는 구현 형태에 따른 방법의 제5 구현 형태에서, 상기 유형 지시자는 상기 콘텐츠의 유형이 지오메트리 구성요소 또는 텍스처 구성요소임을 명시한다.
이러한 제1 측면 또는 제2 측면, 또는 제1 또는 제2 측면의 어느 선행하는 구현 형태에 따른 방법의 제6 구현 형태에서, 상기 유형 지시자는 상기 콘텐츠의 유형이 보조 정보(auxiliary information)임을 명시한다.
이러한 제1 측면 또는 제2 측면, 또는 제1 또는 제2 측면의 어느 선행하는 구현 형태에 따른 방법의 제7 구현 형태에서, 상기 유형 지시자는 상기 콘텐츠의 유형이 점유 맵(occupancy map)임을 명시한다.
이러한 제1 측면 또는 제2 측면, 또는 제1 또는 제2 측면의 어느 선행하는 구현 형태에 따른 방법의 제8 구현 형태에서, 상기 페이로드는 고효율 비디오 코딩(High Efficiency Video Coding, HEVC) NAL 유닛을 포함한다.
이러한 제1 측면 또는 제2 측면, 또는 제1 또는 제2 측면의 어느 선행하는 구현 형태에 따른 방법의 제9 구현 형태에서, 상기 페이로드는 향상된 비디오 코딩(Advanced Video Coding, AVC) NAL 유닛을 포함한다.
이러한 제1 측면 또는 제2 측면, 또는 제1 또는 제2 측면의 어느 선행하는 구현 형태에 따른 방법의 제10 구현 형태에서, 상기 유형 지시자는 5비트를 포함한다.
이러한 제1 측면 또는 제2 측면, 또는 제1 또는 제2 측면의 어느 선행하는 구현 형태에 따른 방법의 제11 구현 형태에서, 상기 유형 지시자는 7비트를 포함한다.
이러한 제1 측면 또는 제2 측면, 또는 제1 또는 제2 측면의 어느 선행하는 구현 형태에 따른 방법의 제12 구현 형태에서, 상기 지오메트리 구성요소는 포인트 클라우드 프레임과 연관된 좌표의 세트를 포함한다.
이러한 제1 측면 또는 제2 측면, 또는 제1 또는 제2 측면의 어느 선행하는 구현 형태에 따른 방법의 제13 구현 형태에서, 상기 좌표 세트는 데카르트 좌표이다.
이러한 제1 측면 또는 제2 측면, 또는 제1 또는 제2 측면의 어느 선행하는 구현 형태에 따른 방법의 제14 구현 형태에서, 상기 텍스처 구성요소는 포인트 클라우드 프레임의 루마 샘플 값(luma sample value)의 세트를 포함한다.
제3 측면은 코딩 장치에 관한 것으로, 상기 코딩 장치는, 인코딩할 영상(picture)을 수신하거나 디코딩할 비트스트림을 수신하도록 구성된 수신기, 상기 수신기에 결합되고, 상기 비트스트림을 디코더에 송신하거나 디코딩된 이미지를 디스플레이에 송신하도록 구성된 송신기, 상기 수신기 또는 상기 송신기 중 적어도 하나에 결합되고, 명령어를 저장하도록 구성된 메모리; 및 상기 메모리에 결합되고, 상기 메모리에 저장된 명령어를 실행하여 선행하는 측면 또는 구현예 중 어느 하나의 방법을 수행하도록 구성된 프로세서를 포함한다.
상기 코딩 장치는 아래에 설명하는 바와 같이 포인트 클라우드 코딩과 연관된 하나 이상의 문제를 해결하는 고 레벨 신택스 설계를 이용한다. 따라서, 비디오 코딩의 프로세스 및 비디오 코덱이 더욱 효율성 있는 등, 향상된다.
이러한 제3 측면에 따른 장치의 제1 구현 형태에서, 상기 장치는 이미지를 표시하도록 구성된 디스플레이를 더 포함한다.
제4 측면은 인코더; 및 상기 인코더와 통신하는 디코더를 포함하는 시스템에 관한 것이다. 상기 인코더 또는 상기 디코더는 선행하는 측면들 또는 구현예 중 임의의 코딩 장치를 포함한다.
상기 시스템은 아래에 설명하는 바와 같이 포인트 클라우드 코딩과 연관된 하나 이상의 문제를 해결하는 고 레벨 신택스 설계를 이용한다. 따라서, 비디오 코딩의 프로세스 및 비디오 코덱이 더욱 효율성 있는 등, 향상된다.
제5 측면은 코딩을 위한 수단으로서, 인코딩할 영상을 수신하거나 디코딩할 비트스트림을 수신하도록 구성된 수신 수단; 상기 수신 수단에 결합되고, 비트스트림을 디코더로 송신하거나 디코딩된 이미지를 디스플레이 수단에 송신하도록 구성된 송신 수단; 상기 수신 수단 또는 상기 송신 수단 중 적어도 하나에 결합되고, 명령어를 저장하도록 구성된 저장 수단; 및 수단에 저장된 명령어를 실행하여 선행한 측면 또는 구현예 중 어느 하나의 방법을 수행하도록 구성된 처리 수단을 포함한다.
명확성을 위해, 전술한 실시예 중 어느 하나는 본 개시의 범위 내에서 새로운 실시예를 생성하기 위해 다른 전술한 실시예 중 어느 하나 이상과 조합될 수 있다.
이들 및 다른 특징은 첨부 도면 및 청구 범위와 함께 취해진 이하의 상세한 설명으로부터 더 명확하게 이해될 것이다.
본 개시의 더 완전한 이해를 위해, 첨부 도면 및 상세한 설명과 관련하여 취해진 다음의 간단한 설명을 참조하며, 여기서 유사한 참조 번호는 유사한 부분을 나타낸다.
도 1은 컨텍스트 모델링 기술을 이용할 수 있는 예시적인 코딩 시스템을 나타낸 블록도이다.
도 2는 컨텍스트 모델링 기술을 구현할 수 있는 예시적인 비디오 인코더를 나타낸 블록도이다.
도 3은 컨텍스트 모델링 기술을 구현할 수 있는 예시적인 비디오 디코더를 나타낸 블록도이다.
도 4는 PCC와 호환 가능한 데이터 구조의 일 실시예의 개략도이다.
도 5는 비디오 디코더에 의해 구현되는 포인트 클라우드 코딩 방법의 일 실시예이다.
도 6은 비디오 인코더에 의해 구현되는 포인트 클라우드 코딩 방법의 일 실시예이다.
도 7은 예시적인 비디오 코딩 기기의 개략도이다.
도 8은 코딩을 위한 수단의 일 실시예의 개략도이다.
하나 이상의 실시예의 예시적인 구현이 아래에 제공되지만, 개시된 시스템 및/또는 방법은 현재 알려져 있는지 존재하는지에 관계없이 임의의 수의 기술을 사용하여 구현될 수 있다는 것을 처음부터 이해해야 한다. 본 개시는 여기에 나타내고 설명된 예시적인 설계 및 구현예를 포함하여, 아래에 나타낸 예시적인 구현예, 도면 및 기술로 한정되지 않아야 하며, 등가물의 전 범위와 함께 첨부된 청구 범위의 범위 내에서 수정될 수 있다.
비디오 코딩 표준은 ITU-T(International Telecommunications 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), 및 가능하면 투명도, 반사율, 취득 시간 등의 기타 특성을 결정하는 파라미터로 구성된다. 일반적으로. 클라우드의 포인트 각각에는 동일한 수의 속성이 부착된다(attached). 포인트 클라우드는 실시간 3D 몰입형 텔레프레즌스(immersive telepresence), 상호작용 시차(interactive parallax)가 있는 콘텐츠 가상현실(virtual reality, VR) 보기, 3D 자유 시점 스포츠 리플레이 방송(free viewpoint sports replay broadcasting), 지리 정보 시스템, 문화유산, 대규모 3D 동적 지도 기반 자율 내비게이션(autonomous navigation), 및 자동차 애플리케이션과 같은 다양한 애플리케이션에 사용될 수 있다.
ISO/IEC MPEG(Moving Picture Experts Group)은 네트워크 환경에 대해 상당한 코딩 효율성과 견고성을 갖춘 무손실 및 손실 압축된 포인트 클라우드 데이터를 위한 포인트 클라우드 코딩에 대한 새로운 코덱 표준 개발을 2016년에 시작했다. 이 코덱 표준의 사용은 포인트 클라우드를 컴퓨터 데이터의 형태로서 조작하고 다양한 저장 매체에 저장하고, 기존 및 미래의 네트워크를 통해 송수신하고, 기존 및 미래의 방송 채널에 배포할 수 있도록 해준다.
최근, 포인트 클라우드 코딩(PCC) 작업은 세 가지 카테고리: PCC 카테고리 1, PCC 카테고리 2, PCC 카테고리 3으로 분류되며, 두 개의 개별 작업 초안이 개발되고 있는데, 하나는 PCC 카테고리 2(PCC Cat2)용이고, 다른 하나는 PCC 카테고리 1 및 3(PCC Cat13)용이다. PCC Cat2용의 최신 작업 초안(working draft, WD)은 MPEG 출력 문서 N17534에 포함되어 있으며, PCC Cat13용 최신 WD는 MPEG 출력 문서 N17533에 포함되어 있다.
PCC Cat2 WD에서 PCC Cat2 코덱 설계의 배후에 있는 주된 철학은 포인트 클라우드 데이터를 상이한 비디오 시퀀스의 세트로 압축함으로써, 기존 비디오 코덱을 활용하여 동적 포인트 클라우드의 지오메트리 및 텍스처 정보를 압축하는 것이다. 특히, 하나는 포인트 클라우드 데이터의 지오메트리 정보를 나타내고 또 하나는 텍스처 정보를 나타내는 두 비디오 시퀀스가 비디오 코덱을 사용하여 생성되고 압축된다. 두 비디오 시퀀스를 해석하기 위한 추가 메타 데이터, 즉 점유 맵과 보조 패치 정보도 별도로 생성되고 압축된다.
불행히도, 기존의 PCC 설계에는 단점이 있다. 예를 들어, 하나의 시간 인스턴스, 즉 하나의 액세스 유닛(access unit, AU)에 속하는 데이터 유닛은 디코딩 순서에서 연속적이지 않다. PCC Cat 2 WD에서, 텍스처, 지오메트리, 보조 정보 및 각 AU에 대한 점유 맵의 데이터 유닛은 프레임 그룹의 유닛으로 인터리브빙된다. 즉, 그룹 내의 모든 프레임에 대한 지오메트리 데이터가 함께 있다. 텍스처 데이터도 마찬가지이다. PCC Cat 13 WD에서, 지오메트리의 데이터 유닛과 각각의 AU에 대한 일반 속성은 전체 PCC 비트스트림의 레벨에서 인터리빙된다(예: 전체 PCC 비트 스트림과 길이가 같은 프레임의 그룹이 하나만 있는 경우에 PCC Cat2 WD에서와 동일). 하나의 AU에 속하는 데이터 유닛의 인터리빙은 본질적으로 애플리케이션 시스템의 프레젠테이션 시간 지속기간(time duration)에 있는 프레임 그룹의 길이와 적어도 동일한 막대한 단대단 지연(end-to-end delay )을 발생시킨다.
또 다른 단점은 비트스트림 포맷에 관한 것이다. 비트스트림 포맷은 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)에 송신될 수 있다. 통신 매체는 무선 주파수(radio frequency, RF) 스펙트럼 또는 하나 이상의 물리 송신 선로와 같은, 임의의 무선 또는 유선 통신 매체를 포함할 수 있다. 또는 더 많은 물리적 전송 라인. 통신 매체는 근거리 통신망(local area network), 광역 네트워크(wide-area network) 또는 인터넷과 같은 글로벌 네트워크 등의, 패킷 기반 네트워크의 일부를 형성할 수 있다. 통신 매체는 라우터, 교환기, 기지국, 또는 근원지 기기(12)로부터 목적지 기기(14)로의 통신을 용이하게 하는 데 유용할 수 있는 임의의 다른 장비를 포함할 수 있다.
일부 예에서, 인코딩된 데이터는 출력 인터페이스(22)로부터 저장 기기로 출력될 수 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 기기로부터 액세스될 수 있다. 저장 기기로는
하드 드라이브, Blu-ray 디스크, 디지털 비디오 디스크(digital video disks, DVDs), 컴팩트 디스크 읽기 전용 메모리(Compact Disc Read-Only Memories, CD-ROMs), 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적절한 디지털 저장 매체와 같은, 임의의 다양한 분산형 또는 로컬 액세스형 데이터 저장 매체를 포함할 수 있다. 추가 예에서, 저장 기기는 근원지 기기(12)에 의해 생성되는 인코딩된 비디오를 저장할 수 있는 파일 서버 또는 다른 중간 저장 기기에 대응할 수 있다. 목적지 기기(14)는 스트리밍 또는 다운로드를 통해 저장 기기로부터, 저장된 비디오 데이터에 액세스할 수 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 인코딩된 비디오 데이터를 목적지 기기(14)에 송신할 수 있는 임의의 유형의 서버일 수 있다. 예시적인 파일 서버로는 웹서버(예: 웹사이트 용), 파일 전송 프로토콜(file transfer protocol, FTP) 서버, NAS(Network Attached Storage) 기기, 또는 로컬 디스크 드라이브를 포함한다. 목적지 기기(14)는 인터넷 연결을 포함한, 임의의 표준 데이터 연결을 통해 인코딩된 비디오 데이터에 액세스할 수 있다. 이것에는 무선 채널(예: Wi-Fi 연결), 유선 연결(예: 디지털 가입자 회선(digital subscriber line, DSL), 케이블 모뎀 등), 또는 파일 서버에 저장된 인코딩된 비디오 데이터를 액세스하는 데 적합한 이 둘의 조합이 포함될 수 있다. 저장 기기로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이들의 조합일 수 있다.
본 개시의 기술은 반드시 무선 애플리케이션 또는 설정으로 한정되는 것은 아니다. 이 기술은 공중파(over-the-air) 텔레비전 방송, 케이블 텔레비전 송신, 위성 텔레비전 송신, HTTP(DASH)를 통한 동적 적응형 스트리밍(dynamic adaptive streaming)과 같은 인터넷 스트리밍 비디오 송신, 데이터 저장 매체에 인코딩되는 디지털 비디오, 데이터 저장 매체에 저장된 디지털 비디오의 디코딩, 또는 기타 애플리케이션과 같은, 다양한 멀티미디어 애플리케이션을 지원하는 비디오 코딩에 적용될 수 있다. 일부 예에서, 코딩 시스템(10)은 비디오 스트리밍, 비디오 재생(video playback), 비디오 방송, 및/또는 비디오폰 전화(video telephony)와 같은 애플리케이션을 지원하기 위해 단방향 또는 양방향 비디오 전송을 지원하도록 구성될 수 있다.
도 1의 예에서, 근원지 기기(12)는 비디오 소스(18), 비디오 인코더(20) 및 출력 인터페이스(22)를 포함한다. 목적지 기기(14)는 입력 인터페이스(28), 비디오 디코더(30) 및 디스플레이 장기기(32)를 포함한다. 본 개시에 따르면, 근원지 기기(12)의 비디오 인코더(20)는 및/또는 목적지 기기(14)의 비디오 디코더(30)는 비디오 코딩을 위한 기술을 적용하도록 구성될 수 있다. 다른 예에서, 근원지 기기 및 목적지 기기는 다른 구성요소 또는 배치(arrangement)를 포함할 수 있다. 예를 들어, 근원지 기기(12)는 외부 카메라와 같은, 외부 비디오 소스로부터 비디오 데이터를 수신할 수 있다. 마찬가지로, 목적지 기기(14)는 통합된 디스플레이 기기를 포함하지 않고 외부 디스플레이 장치와 인터페이싱할 수 있다.
도 1에 나타낸 코딩 시스템(10)은 단지 하나의 예일 뿐이다. 비디오 코딩을 위한 기술은 임의의 디지털 비디오 인코딩 및/또는 디코딩 기기에 의해 수행될 수 있다. 본 개시의 기술은 일반적으로 비디오 코딩 기기에 의해 수행되지만, 이 기술은 일반적으로 "CODEC"으로 지칭되는 비디오 인코더/디코더에 의해 수행될 수도 있다. 더욱이, 본 개시의 기술은 또한 비디오 전처리기(video preprocessor)에 의해 수행될 수 있다. 비디오 인코더 및/또는 디코더는 그래픽 처리 유닛(graphics processing unit, GPU) 또는 유사한 기기일 수 있다.
근원지 기기(12) 및 목적지 기기(14)는, 근원지 기기(12)가 목적지 기기(14) 로의 송신을 위해 코딩된 비디오 데이터를 생성하는 그러한 코딩 기기의 예일 뿐이다. 일부 예에서, 근원지 기기(12) 및 목적지 기기(14)는, 근원지 기기(12) 및 목적지 기기(14) 각각이 비디오 인코딩 및 디코딩 구성요소를 포함하는 실질적으로 대칭적인 방식으로 작동할 수 있다. 따라서, 코딩 시스템(10)은 예를 들어, 비디오 스트리밍, 비디오 재생, 비디오 방송 또는 비디오폰 전화를 위해 비디오 기기들(12, 14) 사이의 단방향 또는 양방향 비디오 송신을 지원할 수 있다.
근원지 기기(12)의 비디오 소스(18)는 비디오 카메라와 같은 비디오 캡처 기기, 이전에 캡처된 비디오를 포함하는 비디오 아카이브, 및/또는 비디오 콘텐츠 제공자로부터 비디오를 수신하기 위한 비디오 피드 인터페이스(video feed interface)를 포함할 수 있다. 추가 대안으로서, 비디오 소스(18)는 소스 비디오, 또는 라이브 비디오, 아카이브된 비디오 및 컴퓨터로 생성된 비디오의 조합인 컴퓨터 그래픽 기반 데이터를 생성할 수 있다.
경우에 따라서는, 비디오 소스(18)가 비디오 카메라인 경우, 근원지 기기(12) 및 목적지 기기(14)는 소위 카메라 폰 또는 비디오 폰을 형성할 수 있다. 그러나 전술한 바와 같이, 본 개시에서 설명된 기술은 일반적으로 비디오 코딩에 적용될 수 있고, 무선 및/또는 유선 애플리케이션에 적용될 수 있다. 각각의 경우에, 캡처되거나, 사전 캡처되거나, 또는 컴퓨터로 생성된 비디오는 비디오 인코더(20)에 의해 인코딩될 수 있다. 인코딩된 비디오 정보는 출력 인터페이스(22)에 의해 컴퓨터로 판독 가능한 매체(16)에 출력될 수 있다.
컴퓨터로 판독 가능한 매체(16)는 무선 방송 또는 유선 네트워크 송신과 같은 일시적인 매체(transient media), 또는 하드 디스크, 플래시 드라이브, 컴팩트 디스크, 디지털 비디오 디스크, Blu-ray 디스크 또는 기타 컴퓨터로 판독 가능한 매체와 같은 저장 매체(즉, 비 일시적인 저장 매체)를 포함할 수 있다. 일부 예에서, 네트워크 서버(미도시)는 근원지 기기(12)로부터 인코딩된 비디오 데이터를 수신하고 인코딩된 비디오 데이터를 예를 들어 네트워크 송신을 통해 목적지 기기(14)에 제공할 수 있다. 유사하게, 디스크 스탬핑 설비(disc stamping facility)와 같은 매체 생산 설비의 컴퓨팅 기기는 근원지 기기(12)로부터 인코딩된 비디오 데이터를 수신하고 인코딩된 비디오 데이터를 포함하는 디스크를 생성할 수 있다. 따라서, 컴퓨터로 판독 가능한 매체(16)는 다양한 예에서, 다양한 형태의 하나 이상의 컴퓨터로 판독 가능한 매체를 포함하는 것으로 이해될 수 있다.
목적지 기기(14)의 입력 인터페이스(28)는 컴퓨터로 판독 가능한 매체(16)로부터 정보를 수신한다. 컴퓨터로 판독 가능한 매체(16)의 정보는 비디오 인코더(20)에 의해 정의된 신택스 정보를 포함할 수 있으며, 이는 또한 비디오 디코더(30)에 의해 사용되며, 블록 및 기타 코딩된 유닛, 예를 들어 GOP(Group of Pictures)의 특성 및/또는 처리를 기술하는 신택스 요소를 포함한다. 디스플레이 기기(32)는 디코딩된 비디오 데이터를 사용자에게 표시하고, 음극선관(cathode ray tube, CRT), 액정 디스플레이(liquid crystal display, LCD), 플라즈마 디스플레이, 유기 발광 다이오드(organic light emitting diode, OLED) 디스플레이 또는 기타 유형의 디스플레이 기기와 같은, 임의의 다양한 디스플레이 기기를 포함할 수 있다.
비디오 인코더(20) 및 비디오 디코더(30)는 현재 개발중인 HEVC(High Efficiency Video Coding) 표준과 같은 비디오 코딩 표준에 따라 작동할 수 있으며, HEVC 테스트 모델(HEVC Test Model, HM)을 준수할 수 있다. 대안으로, 비디오 인코더(20) 및 비디오 디코더(30)는 대안으로 MPEG(Moving Picture Expert Group)-4, Part 10으로 지칭되는 ITU-T(International Telecommunications Union Telecommunication Standardization Sector) H.264 표준, AVC(Advanced Video Coding), H.265/HEVC 또는 이러한 표준의 확장과 같은, 다른 독점적(proprietary) 또는 산업 표준에 따라 작동할 수 있다. 그러나 본 개시의 기술은 임의의 특정 코딩 표준에 한정되지 않는다. 비디오 코딩 표준의 다른 예로는 MPEG-2 및 ITU-T H.263이 있다. 도 4에 도시되어 있지는 않지만, 일부 측면에서, 비디오 인코더(20) 와 비디오 디코더(30)는 각각 오디오 인코더와 디코더와 통합될 수 있고, 공통 데이터 스트림 또는 개별 데이터 스트림의 오디오와 비디오 모두의 인코딩을 처리하기 위해 적절한 멀티플렉서-디멀티플렉서(multiplexer-demultiplexer, MUX-DEMUX) 유닛 또는 다른 하드웨어 및 소프트웨어를 포함할 수 있다. 적용 가능하면, MUX-DEMUX 유닛은 ITU H.223 멀티플렉서 프로토콜, 또는 UDP(User Datagram Protocol)와 같은 기타 프로토콜을 준수할 수 있다.
비디오 인코더(20) 및 비디오 디코더(30)는 각각 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(digital signal processors, DSPs), 주문형 집적 회로(field programmable gate arrays, FPGAs), 필드 프로그래밍 가능 게이트 어레이, 이산 로직(discrete logic), 소프트웨어, 하드웨어, 펌웨어 또는 이들의 조합와 같은 임의의 다양한 적절한 인코더 회로로 구현될 수 있다. 기술이 부분적으로 소프트웨어로 구현되는 경우, 기기는 소프트웨어에 대한 명령어를, 컴퓨터로 판독 가능한 적절한 비 일시적인 매체에 저장할 수 있고, 본 개시의 기술을 수행하기 위해 하나 이상의 프로세서를 사용하여 하드웨어에서 명령어를 실행할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30) 각각은 하나 이상의 인코더 또는 디코더에 포함될 수 있으며, 이들 중 어느 하나는 각각의 기기에서 조합된 인코더/디코더(CODEC)의 일부로서 통합될 수 있다. 비디오 인코더(20) 및/또는 비디오 디코더(30)를 포함하는 기기는 집적 회로, 마이크로프로세서, 및/또는 셀룰러 전화와 같은, 무선 통신 기기를 포함할 수 있다.
도 2는 비디오 코딩 기술을 구현할 수 있는 비디오 인코더(20)의 예를 나타낸 블록도이다. 비디오 인코더(20)는 비디오 슬라이스 내의 비디오 블록의 인트라 코딩(intra-coding ) 및 인터 코딩(inter-coding )을 수행할 수 있다. 인트라 코딩은 공간 예측에 의존하여 주어진 비디오 프레임 또는 영상 내에서 비디오의 공간 중복성(spatial redundancy)을 줄이거나 제거한다. 인터 코딩은 시간 예측에 의존하여 비디오 시퀀스의 인접한 프레임 또는 영상 내의 비디오의 시간 중복성(temporal redundancy)을 줄이거나 제거한다. 인트라 모드(I 모드)는 여러 공간 기반 코딩 모드 중 어느 것을 가리킬 수 있다. 단방향 예측(uni-directional prediction, uni prediction으로도 알려짐)(P 모드) 또는 양방향 예측(bi-prediction , bi prediction로도 알려짐)(B 모드)과 같은 인터 모드는 여러 시간 기반 코딩 모드 중 어느 것을 가리킬 수 있다.
도 2에 도시된 바와 같이, 비디오 인코더(20)는 인코딩될 비디오 프레임 내의 현재 비디오 블록을 수신한다. 도 2의 예에서, 비디오 인코더(20)는 모드 선택 유닛(40), 참조 프레임 메모리(64), 합산기(summer)(50), 변환 처리 유닛(52), 양자화 유닛(54) 및 엔트로피 코딩 유닛(56)을 포함한다. 모드 선택 유닛(40)은 차례로 움직임 보상 유닛(44), 움직임 추정 유닛(42), 인트라 예측(intra-prediction, intra prediction으로도 알려짐), 및 분할 유닛(48)을 포함한다. 비디오 블록 재구축을 위해, 비디오 인코더(20)는 또한 역 양자화 유닛(58), 역 변환 유닛(60) 및 합산기(62)를 포함한다. 디블록킹 필터(deblocking filter)(도 2에 도시되지 않음)는 또한 재구축된 비디오로부터 블록성 아티팩트(blockiness artifact)를 제거하기 위해 블록 경계를 필터링하기 위해 포함될 수 있다. 원하는 경우, 디블로킹 필터는 일반적으로 합산기(62)의 출력을 필터링한다. 디블로킹 필터에 더하여 추가의 필터(인 루프 또는 포스트 루프)가 또한 사용될 수 있다. 이러한 필터는 간결함을 위해 표시되지 않지만, 원하는 경우, 합산기(50)의 출력을 필터링할 수 있다(인 루프 필터로서).
인코딩 프로세스 동안, 비디오 인코더(20)는 코딩될 비디오 프레임 또는 슬라이스를 수신한다. 프레임 또는 슬라이스는 복수의 비디오 블록으로 분할될 수 있다. 움직임 추정 유닛(42) 및 움직임 보상 유닛(44)은 시간적 예측을 제공하기 위해 하나 이상의 참조 프레임에서 하나 이상의 블록에 대해 수신된 비디오 블록의 인터 예측 코딩을 수행한다. 인트라 예측 유닛(46)은 공간 예측을 제공하기 위해, 코딩될 블록과 동일한 프레임 또는 슬라이스에서 하나 이상의 이웃 블록에 대해 수신된 비디오 블록의 인트라 예측 코딩을 대안으로 수행할 수 있다. 비디오 인코더(20)는 예를 들어 비디오 데이터의 블록 각각에 대한 적절한 코딩 모드를 선택하기 위해 복수의 코딩 패스(coding passe)를 수행할 수 있다
또한, 분할 유닛(48)은 이전 코딩 패스에서의 이전 분할 방식의 평가에 기초하여, 비디오 데이터의 블록을 서브블록으로 분할할 수 있다. 예를 들어, 분할 유닛(48)은 초기에 프레임 또는 슬라이스를 최대 코딩 유닛(largest coding unit, LCU)으로 분할하고, 각각의 LCU를 레이트 왜곡 분석(예: 레이트-왜곡 최적화)에 기초하여 서브코딩 유닛(sub-CU)으로 분할할 수 있다. 모드 선택 유닛(40)은 LCU를 서브 CU로 분할하는 것을 나타내는 쿼드 트리(quad-tree) 데이터 구조를 더 생성할 수 있다. 쿼드 트리의 리프 노드(leaf node) CU는 하나 이상의 예측 유닛(prediction uni, PU) 및 하나 이상의 변환 유닛(transform unit, TU)를 포함할 수 있다.
본 개시는 HEVC의 맥락에서 CU, PU 또는 TU 중 어느 것 또는 다른 표준의 맥락에서 유사한 데이터 구조(예: H.264/AVC에서 매크로 블록 및 그 서브블록)를 지칭하기 위해 "블록"이라는 용어를 사용한다. CU는 코딩 노드, PU, 및 코딩 노드와 관련된 TU를 포함한다. CU의 크기는 코딩 노드의 크기에 대응하며, 정사각형 모양이다. CU의 크기는 8x8 화소에서 최대 64x64 화소 이상인 트리 블록 크기까지의 범위일 수 있다. 각각의 CU는 하나 이상의 PU 및 하나 이상의 TU를 포함할 수 있다. CU와 연관된 신택스 데이터는, 예를 들어, CU를 하나 이상의 PU로 분할하는 것을 설명할 수 있다. 분할 모드는 CU가 스킵 또는 직접 모드 인코딩, 인트라 예측 모드 인코딩 또는 인터 예측(inter prediction으로도 알려짐) 모드 인코딩 간에 다를 수 있다. PU는 정사각형이 아닌 모양으로 분할될 수 있다. CU와 연관된 신택스 데이터는 또한, 예를 들어, 쿼드 트리에 따라 CU를 하나 이상의 TU로 분할하는 것을 설명할 수 있다. TU는 정사각형이거나 정사각형이 아닌(예: 직사각형) 모양일 수 있다.
모드 선택 유닛(40)은 예를 들어 오류 결과에 기초하여 인트라 코딩 모드 또는 인터 코딩 모드 중 하나를 선택하고, 결과적인 인트라 코딩된 또는 인터 코딩된 블록을, 합산기(50)에 제공하여 잔차 블록 데이터를 생성하고 합산기(62)에 제공하여 참조 프레임으로 사용하기 위한 인코딩된 블록을 재구축할 수 있다. 모드 선택 유닛(40)은 또한 움직임 벡터, 인트라 모드 지시자, 분할 정보 및 기타 그러한 신택스 정보와 같은, 신택스 요소를 엔트로피 코딩 유닛(56)에 제공한다.
움직임 추정 유닛(42) 및 움직임 보상 유닛(44)은 고도로 통합될 수 있지만, 개념적 목적을 위해 별도로 나타낸다. 움직임 추정 유닛(42)에 의해 수행되는 움직임 추정은 비디오 블록에 대한 움직임을 추정하는 움직임 벡터를 생성하는 프로세스이다. 예를 들어, 움직임 벡터는 현재 프레임(또는 다른 코딩된 유닛) 내에서 코딩되는 현재 블록에 대한 참조 프레임(또는 다른 코딩된 유닛) 내의 예측 블록에 대한 현재 비디오 프레임 또는 영상 내의 비디오 블록의 PU의 변위를 지시할 수 있다. 예측 블록은 화소 차이 측면에서 코딩될 블록과 밀접하게 매칭되는 것으로 확인된 블록이며,
이는 절대 차이의 합(sum of absolute difference, SAD), 제곱 차이의 합(sum of square difference, SSD) 또는 기타 차이 메트릭(difference metric)에 의해 결정될 수 있다. 일부 예에서, 비디오 인코더(20)는 참조 프레임 메모리(64)에 저장된 참조 영상의 서브 정수(sub-integer) 화소 위치에 대한 값을 계산할 수 있다. 예를 들어, 비디오 인코더(20)는 1/4 화소 위치, 1/8 화소 위치, 또는 참조 영상의 기타 분수 화소 위치의 값을 보간할 수 있다. 따라서, 움직임 추정 유닛(42)은 전체 화소 위치 및 부분 화소 위치에 대한 움직임 검색을 수행하고 분수 화소 정밀도로 움직임 벡터를 출력할 수 있다.
움직임 추정 유닛(42)은 인터 코딩된 슬라이스에서의 비디오 블록의 PU에 대한 움직임 벡터를, PU의 위치를 참조 영상의 예측 블록의 위치와 비교함으로써 계산한다. 참조 영상은 제1 참조 영상 리스트(List 0) 또는 제2 참조 영상 리스트(List 1)로부터 선택될 수 있으며, 그 각각은 참조 프레임 메모리(64)에 저장된 하나 이상의 참조 영상을 식별할 수 있게 해준다. 움직임 추정 유닛(42)은 계산된 움직임 벡터를 엔트로피 인코딩 유닛(56) 및 움직임 보상 유닛(44)에 전송한다.
움직임 보상 유닛(44)에 의해 수행되는 움직임 보상은 움직임 추정 유닛(42)에 의해 결정된 움직임 벡터에 기초하여 예측 블록을 페치(fetching)하거나 생성하는 것을 포함할 수 있다. 또, 움직임 추정 유닛(42) 및 움직임 보상 유닛(44)은 몇몇 예에서 기능적으로 통합될 수 있다. 현재 비디오 블록의 PU에 대한 움직임 벡터를 수신하면, 움직임 보상 유닛(44)은 참조 영상 리스트 중 하나에서 움직임 벡터가 가리키는 예측 블록을 찾을 수 있다. 합산기(50)는 코딩되는 현재 비디오 블록의 화소 값에서 예측 블록의 화소 값을 빼서 잔차 비디오 블록을 형성하고, 아래에서 논의되는 바와 같이 화소 차이 값을 형성한다. 일반적으로, 움직임 추정 유닛(42)은 루마 성분(luma component)에 대한 움직임 추정을 수행하고, 움직임 보상 유닛(44)은 크로마 성분 및 루마 성분 모두에 대해 루마 성분에 기초하여 계산된 움직임 벡터를 사용한다. 모드 선택 유닛(40)은 또한 비디오 슬라이스의 비디오 블록을 디코딩 시에 비디오 디코더(30)에 의한 사용하기 위해 비디오 블록 및 비디오 슬라이스와 연관된 신택스 요소를 생성할 수 있다.
인트라 예측 유닛(46)은 전술한 바와 같이 움직임 추정 유닛(42) 및 움직임 보상 유닛(44)에 의해 수행되는 인터 예측에 대한 대안으로서 현재 블록을 인트라 예측할 수 있다. 특히, 인트라 예측 유닛(46)은 현재 블록을 인코딩하기 위해 사용할 인트라 예측 모드를 결정할 수 있다. 일부 예에서, 인트라 예측 유닛(46)은 예를 들어 개별 인코딩 패스 동안 다양한 인트라 예측 모드를 사용하여 현재 블록을 인코딩할 수 있고, 인트라 예측 유닛(46)(또는 일부 예에서 모드 선택 유닛(40))은 테스트된 모드에서 사용할 적절한 인트라 예측 모드를 선택할 수 있다.
예를 들어, 인트라 예측 유닛(46)는 테스트된 다양한 인트라 예측 모드에 대한 레이트 왜곡 분석을 사용하여 레이트 왜곡 값을 계산하고, 테스트된 모드 중 최상의 레이트 왜곡 특성을 갖는 인트라 예측 모드를 선택할 수 있다. 레이트 왜곡 분석은 일반적으로 인코딩된 블록과, 인코딩된 블록을 생성하기 위해 인코딩된 원래의 인코딩되지 않은 블록 사이의 왜곡(또는 오류)과 인코딩된 블록의 생성에 사용된 비트레이트(즉, 비트의 수)를 결정한다. 인트라 예측 유닛(46)은 어떤 인트라 예측 모드가 블록에 대한 최상의 레이트-왜곡 값을 나타내는지를 결정하기 위해 다양한 인코딩된 블록에 대한 왜곡 및 레이트로부터 비율을 계산할 수 있다.
또한, 인트라 예측 유닛(46)은 심도 모델링 모드(depth modeling mode, DMM)를 사용하여 심도 맵(depth map)의 심도 블록을 코딩하도록 구성될 수 있다. 드 선택 유닛(40)은 가용 DMM 모드가 예를 들어 레이트 왜곡 최적화(rate-distortion optimization, RDO)를 사용하여, 인트라 예측 모드 및 다른 DMM 모드보다 더 나은 코딩 결과를 생성하는지를 결정할 수 있다. 심도 맵에 대응하는 텍스처 이미지에 대한 데이터는 참조 프레임 메모리(64)에 저장될 수 있다. 움직임 추정 유닛(42) 및 움직임 보상 유닛(44)은 또한 심도 맵의 심도 블록을 인터 예측하도록 구성될 수 있다.
블록에 대한 인트라 예측 모드(예: 종래의 인트라 예측 모드 또는 DMM 모드 중 하나)를 선택한 후, 인트라 예측 유닛(46)은 블록에 대해 선택된 인트라 예측 모드를 지시하는 정보를 엔트로피 코딩 유닛(56)에 제공할 수 있다. 엔트로피 코딩 유닛(56)은 선택된 인트라 예측 모드를 나타내는 정보를 인코딩할 수 있다. 비디오 인코더(20)는 복수의 인트라 예측 모드 색인 표 및 복수의 수정된 인트라 예측 모드 색인 표(코드워드 매핑 표라고도 함)을 포함할 수 있는 송신된 비트스트림 구성 데이터에, 다양한 블록 대한 인코딩 컨텍스트의 정의, 및 각각의 컨텍스트에 사용할 가장 가능성이 높은 인트라 예측 모드, 인트라 예측 모드 색인표, 및 수정된 인트라 예측 모드 색인 표의 지시를 포함할 수 있다.
비디오 인코더(20)는 코딩되는 원래 비디오 블록에서 모드 선택 유닛(40)으로부터의 예측 데이터를 감산함으로써 잔차 비디오 블록을 형성한다. 합산기(50)는 이 감산 연산을 수행하는 구성요소 또는 구성요소들을 나타낸다.
변환 처리 유닛(52)은 이산 코사인 변환(discrete cosine transform, DCT) 또는 개념적으로 유사한 변환과 같은, 변환을 잔차 블록에 적용하여 잔차 변환 계수 값을 포함하는 비디오 블록을 생성한다. 변환 처리 유닛(52)은 개념적으로 DCT와 유사한 다른 변환을 수행할 수 있다. 웨이블릿 변환, 정수 변환, 서브대역 변환 또는 기타 유형의 변환이 또한 사용될 수 있다.
변환 처리 유닛(52)은 잔차 블록에 변환을 적용하여 잔차 변환 계수의 블록을 생성한다. 변환은 잔차 정보를 화소 값 영역(domain)에서 주파수 영역과 같은 변환 영역으로 변환할 수 있다. 변환 처리 유닛(52)은 결과로서 얻은 변환 계수를 양자화 유닛(54)에 전송할 수 있다. 양자화 유닛(54)은 비트 레이트를 더욱 감소시키기 위해 변환 계수를 양자화한다. 양자화 프로세스는 계수의 일부 또는 전부와 관련된 비트 심도를 감소시킬 수 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 수정될 수 있다. 일부 예에서, 양자화 유닛(54)은 그 후 양자화된 변환 계수를 포함하는 매트릭스의 스캔을 수행할 수 있다. 대안으로, 엔트로피 인코딩 유닛(56)이 스캔을 수행할 수 있다.
양자화 다음에, 엔트로피 코딩 유닛(56)은 양자화된 변환 계수를 엔트로피 코딩한다. 예를 들어, 엔트로피 코딩 유닛(56)은 컨텍스트 적응 가변 길이 코딩(context adaptive variable length coding , CAVLC), 컨텍스트 적응 이진 산술 코딩(context adaptive binary arithmetic coding, CABAC), 신택스 기반 컨텍스트 적응 이진 산술 코딩(syntax-based context-adaptive binary arithmetic coding, SBAC), 확률 간격 분할 엔트로피(probability interval partitioning entropy, PIPE) 코딩 또는 기타 엔트로피 코딩 기술을 수행할 수 있다. 컨텍스트 기반 엔트로피 코딩의 경우, 컨텍스트는 이웃 블록에 기초할 수 있다. 엔트로피 코딩 유닛(56)에 의한 엔트로피 코딩 다음에, 인코딩된 비트스트림은 다른 기기(예: 비디오 디코더(30))로 송신되거나 나중의 송신 또는 검색을 위해 보관될 수 있다.
역 양자화 유닛(58) 및 역 변환 유닛(60)은 각각 역 양자화 및 역 변환을 적용하여, 예를 들어 나중에 참조 블록으로 사용하기 위해 화소 영역에서 잔차 블록을 재구축한다. 움직임 보상 유닛(44)은 참조 프레임 메모리(64)의 프레임 중 하나의 예측 블록에 잔차 블록을 추가함으로써 참조 블록을 계산할 수 있다. 움직임 보상 유닛(44)은 또한 하나 이상의 보간 필터를 재구축된 잔차 블록에 적용하여 움직임 추정에 사용하기 위한 서브 정수 화소 값을 계산할 수 있다. 합산기(62)는 재구축된 잔차 블록을 움직임 보상 유닛(44)에 의해 생성된 움직임 보상된 예측 블록에 추가하여 참조 프레임 메모리(64)에 저장하기 위한 재구축된 비디오 블록을 생성한다. 재구축된 비디오 블록은 움직임 추정 유닛(42) 및 움직임 보상 유닛(44)에 의해 후속하는 비디오 프레임에서 블록을 인터 코딩하기위한 참조 블록으로서 사용될 수 있다.
도 3은 비디오 코딩 기술을 구현할 수 있는 비디오 디코더(30)의 예를 예시하는 블록도이다. 도 3의 예에서, 비디오 디코더(30)는 엔트로피 디코딩 유닛(70), 움직임 보상 유닛(72), 인트라 예측 유닛(74), 역 양자화 유닛(76), 역변환 유닛(78), 참조 프레임 메모리(82) 및 합산기(80)를 포함한다. 비디오 디코더(30)는 일부 예에서, 비디오 인코더(20)(도 2)에 대해 설명한 인코딩 패스에 일반적으로 역인 디코딩 패스를 수행한다. 움직임 보상 유닛(72)은 엔트로피 디코딩 유닛(70)으로부터 수신된 움직임 벡터에 기초하여 예측 데이터를 생성할 수 있고, 인트라 예측 유닛(74)은 엔트로피 디코딩 유닛(70)으로부터 수신된 인트라 예측 모드 지시자에 기초하여 예측 데이터를 생성할 수 있다.
디코딩 프로세스 동안, 비디오 디코더(30)는 인코딩된 비디오 슬라이스의 비디오 블록 및 연관된 신택스 요소를 나타내는 인코딩된 비디오 비트스트림을 비디오 인코더(20)로부터 수신한다. 비디오 디코더(30)의 엔트로피 디코딩 유닛(70)은 비트스트림을 엔트로피 디코딩하여 양자화된 계수, 움직임 벡터 또는 인트라 예측 모드 표시기 및 기타 신택스 요소를 생성한다. 엔트로피 디코딩 유닛(70)은 움직임 벡터 및 다른 신택스 요소를 움직임 보상 유닛(72)에 포워딩한다. 비디오 디코더(30)는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 요소를 수신할 수 있다.
비디오 슬라이스가 인트라 코딩된(I) 슬라이스로서 코딩되는 경우, 인트라 예측 유닛(74)은 시그널링된 인트라 예측 모드 및 현재 프레임 또는 영상의 이전에 디코딩된 데이터에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 비디오 프레임이 인터 코딩된(예: B, P 또는 GPB) 슬라이스로서 코딩되는 경우, 움직임 보상 유닛(72)은 엔트로피 디코딩 유닛(70)으로부터 수신된 움직임 벡터 및 다른 신택스 요소에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 블록을 생성한다. 예측 블록은 참조 영상 리스트 중 하나 내의 참조 영상 중 하나로부터 생성될 수 있다. 비디오 디코더(30)는 참조 프레임 메모리(82)에 저장된 참조 영상에 기초한 디폴트 구축 기술을 사용하여, 참조 프레임리스트: 리스트 0 및 리스트 1을 구축할 수 있다.
움직임 보상 유닛(72)은 움직임 벡터 및 다른 신택스 요소를 파싱함으로써 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 예측 정보를 사용하여 디코딩되는 현재 비디오 블록에 대한 예측 블록을 생성한다. 예를 들어, 움직임 보상 유닛(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) 지오메트리 및 텍스처 구성요소에 대해 추출된 각각의 적합점(conformance point), 즉 프로파일, 계층(tier) 및 레벨의 시그널링/지시.
전술한 문제를 해결하고 전술한 모든 제약을 충족시키기 위해, 본 개시는 PCC 고 레벨 신택스와 연관된 방법의 두 가지 대안 세트를 제공한다.
제1 세트의 방법에서, PCC Cat2의 지오메트리 및 텍스처 구성요소의 코딩에 사용될 수 있는 모든 비디오 코덱에 대한 공통 고 레벨 신택스가 있다. 이 방법의 세트는 다음과 같이 요약된다.
도 4는 PCC와 호환되는 데이터 구조(400)를 나타낸다. 데이터 구조(400)는 인코더에 의해 생성되고 디코더에 의해 수신된 비트스트림의 일부를 나타낼 수 있다. 도시된 바와 같이, 데이터 유닛 헤더(404)(PCC NAL 유닛 헤더로 지칭될 수 있음)가 각각의 데이터 유닛(402)(PCC NAL 유닛으로 지칭될 수 있음)에 대해 추가된다. 하나의 데이터 유닛(402) 및 하나의 데이터 유닛 헤더(404)가 도 4의 데이터 구조(400)에 예시되어 있다. 실제 애플리케이션에서는 임의의 수의 데이터 유닛(402) 및 데이터 유닛 헤더(404)가 데이터 구조(400)에 포함될 수 있다. 실제로, 데이터 구조(400)를 포함하는 비트스트림이 데이터 유닛 헤더(404)를 각각 포함하는 일련의 데이터 유닛(402)을 포함할 수 있다.
데이터 유닛 헤더(404)는 예를 들어 1 또는 2바이트를 포함할 수 있다. 일 실시예에서, 각각의 데이터 유닛(402)은 하나의 PCC NAL 유닛으로서 형성된다. 데이터 유닛(402)은 페이로드(406)를 포함한다. 일 실시예에서, 데이터 유닛(406)은 또한 보충 향상 정보(supplemental enhancement information, SEI) 메시지, 시퀀스 파라미터 세트, 영상 파라미터 세트, 슬라이스 정보 등을 포함할 수 있다.
일 실시예에서, 데이터 유닛(402)의 페이로드(406)는 HEVC 유닛 또는 AVC NAL 유닛일 수 있다. 일 실시예에서, 페이로드(406)는 지오메트리 구성요소 또는 텍스처 구성요소에 대한 데이터를 포함할 수 있다. 일 실시예에서, 지오메트리 구성요소는 포인트 클라우드 프레임과 연관된 데카르트 좌표(Cartesian coordinate)의 세트이다. 일 실시예에서, 텍스처 구성요소는 포인트 클라우드 프레임의 루마 샘플 값의 세트이다. HEVC가 사용 중일 때, 데이터 유닛(402)은 페이로드(406)로서 HEVC NAL 유닛을 포함하는 PCC NAL 유닛으로 지칭될 수 있다. AVC가 사용 중일 때, 데이터 유닛(402)은 페이로드로서의 AVC NAL 유닛(406)을 포함하는 PCC NAL 유닛으로 지칭될 수 있다.
일 실시예에서, 데이터 유닛 헤더(404)(예: PCC NAL 유닛 헤더)는 아래에 요약된 바와 같이 설계된다.
먼저, 데이터 유닛 헤더(404)는 유형 지시자를 포함한다. 유형 지시자는 예를 들어 5비트일 수 있다. 유형 지시자는 페이로드(406)에 실려 전달되는 콘텐츠의 유형을 명시한다. 예를 들어, 유형 지시자는 페이로드(406)가 지오메트리 또는 텍스처 정보를 포함한다고 명시할 수 있다.
일 실시예에서, 예약된 데이터 유닛(데이터 유닛(402)과 유사하지만 나중에 사용하기 위해 예약됨)의 일부가 PCC Cat13 데이터 유닛에 사용될 수 있다. 따라서, 본 개시의 설계는 PCC Cat13에도 적용된다. 이와 같이, PCC Cat2 및 PCC Cat13을 하나의 코덱 표준 사양으로 통합할 수 있다.
전술한 바와 같이, 현재 비트스트림 포맷은 예를 들어 새로운 NAL 유닛 또는 PCC NAL 유닛의 시작을 시그널링하는 시작 코드 패턴의 에뮬레이션을 허용한다. 예를 들어, 시작 코드 패턴은 0x0003일 수 있다. 현재 비트스트림 포맷은 시작 코드 패턴의 에뮬레이션을 허용하기 때문에, 시작 코드가 의도하지 않게 시그널링될 수 있다. 본 개시는 이 문제를 해결하기 위해 PCC NAL 유닛 신택스 및 시맨틱스(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의 경우, 지오메트리 및 텍스처는 세 개의 개별 계층(예: 지오메트리에 대한 두 개의 계층, d0 및 d1, 그리고 텍스처에 대한 하나의 계층)으로 간주된다. SEI 메시지 또는 새로운 유형의 NAL 유닛이 점유 맵 및 보조 정보에 사용된다. 점유 맵용과 보조 정보용으로 각각 하나씩, 두 개의 새로운 SEI 메시지가 명시된다. 다른 SEI 메시지 또는, 시퀀스 레벨은 프레임 헤더 파라미터 그룹과 기타 글로벌 정보를 전달하도록 명시된다. 이 SEI 메시지는 제1 방법 세트의 프레임 그룹 헤더(408)와 유사하다.
지오메트리 및 텍스처의 코딩을 위해 AVC를 사용하는 PCC Cat2의 경우, 지오메트리 및 텍스처는 세 개의 개별 계층(예: 지오메트리에 대한 두 개의 계층, d0 및 d1 및 텍스처에 대한 하나의 계층)로 간주된다. SEI 메시지 또는 새로운 유형의 NAL 유닛이 점유 맵과 보조 패치 정보에 사용된다. 독립적으로 코딩된 비 기본 계층의 추출과 단일 계층 비트스트림으로서의 적합성 포인트(예: 프로파일 및 레벨)의 시그널링이 명시된다. 점유 맵 용과 보조 정보용으로 각각 하나씩 두 가지 새로운 유형의 SEI 메시지가 명시된다. 다른 SEI 메시지, 시퀀스 레벨은 프레임 헤더 파라미터 그룹 및 기타 글로벌 정보를 실어 전달하도록 명시된다. 이 SEI 메시지는 제1 방법의 세트에서 프레임 그룹 헤더(408)의 그룹과 유사하다.
위에서 언급된 제1 세트의 방법은 아래에 개시된 정의, 약어, 신택스 및 시맨틱스에 기초하여 구현될 수 있다. 구체적으로 언급되지 않은 측면은 최신 PCC Cat2 WD와 동일한다다.
다음 정의가 적용된다.
비트스트림: 하나 이상의 CPS를 형성하는 코딩된 포인트 클라우드 프레임 및 관련 데이터의 표현을 형성하는 비트 시퀀스.
바이트(byte): 비트 값의 시퀀스로서 쓰거나 읽을 때, 가장 왼쪽 및 맨 오른쪽 비트가 각각 최상위 및 최하위 비트를 나타내는 8비트 시퀀스.
코딩된 PCC 시퀀스(CPS): 디코딩 순서상, PCC IRAP(Intra Random Access Pictures) AU의, 모든 후속 PCC IRAP AU까지이지만 PCC IRAP AU인 임의의 후속 PCC AU를 포함하지 않는 PCC IRAP AU가 아닌 다음의 0개 이상의 PCC 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 형태의 데이터를 포함하는 바이트.
원시(raw) 바이트 시퀀스 페이로드(raw byte sequence payload, RBSP): PCC NAL 유닛에 캡슐화되고 비어 있거나 뒤따르는 RBSP 정지 비트 및 0개 이상의 후속 비트가 뒤따르는 신택스 요소를 포함하는 데이터 비트의 문자열(string of data bit, SODB)의 형태를 갖는 정수 바이트 수를 포함하는 신택스 구조
RBSP 정지 비트: 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 유닛 신택스는 다음과 같다.
Figure pct00001
PCC NAL 유닛 헤더 신택스는 다음과 같다.
Figure pct00002
원시 바이트 시퀀스 페이로드, 트레일링 비트 및 바이트 할당 신택스가 ㅈ제제공된다. 특히, 프레임 RBSP 시택스의 그룹의 다음과 같다.
Figure pct00003
보조 정보 정보 프레임 RBSP 신택스가 다음과 같다.
Figure pct00004
점유 맴 프레임 RBSP 시택스는 다음과 같다.
Figure pct00005
HEVC 사양의 7.3.2.11 절에 있는 RBSP 트레일링 비트 신택스를 적용한다. 마찬가지로, HEVC 사양의 7.3.2.12 절에 있는 바이트 정렬 신택스를 적용한다. PCC 프로파일 및 레벨 신택스는 다음과 같다.
Figure pct00006
최신 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 minus 1은 PccNalUnitType 변수의 값을 명시하며, 이는 표 1(아래 참조)에 명시된 PCC NAL 유닛에 포함된 RBSP 데이터 구조의 유형을 명시한다. NalUnitType 변수는 다음과 같이 명시된다:
PccNalUnitType = pcc_category2_nal_unit_type_plus1 - 1 (7-1)
시맨틱스이 명시되지 않은 UNSPEC25.UNSPEC30 범위의 nal_unit_type을 갖는 PCC NAL 유닛은 본 명세서에 명시된 디코딩 프로세스에 영향을 미치지 않을 것이다.
주 1: UNSPEC25.UNSPEC30 범위(포함)의 nal_unit_type을 갖는 PCC NAL 유닛 유형은 애플리케이션에 의해 결정된 대로 사용될 수 있다. 이 사양에는 이러한 PccNalUnitType 값의 이러한 값에 대한 디코딩 프로세스가 명시되어 있지 않다. 서로 다른 애플리케이션이 서로 다른 목적을 위해 이러한 PCC NAL 유닛 유형을 사용할 수 있기 때문에 이러한 PccNalUnitType 값을 사용하여 PCC NAL 유닛을 생성하는 인코더의 설계와 이러한 PccNalUnitType 값을 사용하여 PCC NAL 유닛의 내용을 해석하는 디코더의 설계에 특별한 주의를 기울여야 한다. 이 사양은 이러한 값에 대한 관리를 정의하지 않는다. 이러한 PccNalUnitType 값은 사용의 "충돌"(예: 동일한 PccNalUnitType 값에 대한 PCC NAL 유닛 콘텐츠의 의미에 대한 다른 정의)이 중요하지 않거나, 가능하지 않는 - 예를 들어 제어 애플리케이션 또는 전송 사양에서 정의되거나 관리되거나, 또는 비트스트림이 분배되는 환경을 관리함으로써- 컨텍스트에서만 사용하기에 적합할 수 있다. ,
비트스트림의 디코딩 유닛에서 데이터의 양을 결정하는 것 이외의 목적으로, 디코더는 PccNalUnitType의 예약된 값을 사용하는 모든 PCC NAL 유닛의 콘텐츠를 무시(비트스트림에서 제거하고 폐기)한다.
주 2: 이 요건은 이 사양에 대한 호환성 확장의 미래 정의를 허용한다.
[표 1: PCC NAL 유닛 유형 코드]
Figure pct00007
주 3: 식별된 비디오 코덱(예: HEVC 또는 AVC)은 각각의 CPS의 제1 PCC AU에 존재하는 프레임 헤더 NAL 유닛의 그룹에 지시된다.
RBSP(정보) 내에 SODB의 캡슐화가 제공된다. 이와 관련하여, HEVC 사양의 7.4.2.3 절이 적용된다.
PCC NAL 유닛의 순서와 AU 및 CPS에 대한 연관관계(association)가 제공된다. 일반적으로, 이 절은 비트스트림에서 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 또는 하나의 그룹의 프레임 헤더 NAL 유닛, 하나의 지오메트리 d0 비디오 AU, 하나의 지오메트리 d1 비디오 AU, 하나의 보조 정보 프레임 NAL 유닛, 하나의 점유 맵 프레임 NAL 유닛 및 하나의 텍스처 비디오 AU를 나열된 순서대로 포함한다.
비디오 AU에 대한 NAL 유닛의 연관관계 및 비디오 AU 내의 NAL 유닛의 순서는 식별된 비디오 코덱의 사양, 예를 들어 HEVC 또는 AVC의 사양에 명시된다. 식별 된 비디오 코덱은 각각의 CPS의 제1 PCC AU에 존재하는 프레임 헤더 NAL 유닛에 지시된다.
각각의 CPS의 제1 PCC AU는 프레임 헤더 NAL 유닛의 그룹으로 시작하고, 프레임 헤더 NAL 유닛의 그룹 각각은 새로운 PCC AU의 시작을 명시한다.
다른 PCC AU는 지오메트리 d0 비디오 AU의 제1 NAL 유닛를 포함하는 PCC NAL 유닛로 시작한다. 즉, 지오메트리 d0 비디오 AU의 제1 NAL 유닛를 포함하는 PCC NAL 유닛은 프레임 헤더 NAL 유닛의 그룹이 선행되지 않는 경우에 새로운 PCC AU를 시작한다.
PCC AU의 순서 및 CPS에 대한 그들의 연관관계가 제공된다.
이 사양을 따르는 비트스트림은 하나 이상의 CPS로 구성된다.
CPS는 하나 이상의 PCC AU로 구성된다. PCC NAL 유닛의 순서와 PCC AU에 대한 그들의 연관관계는 7.4.2.4.2 절에 설명되어 있다.
CPS의 제1 PCC AU는 PCC IRAP AU이다.
원시 바이트 시퀀스 페이로드, 트레일링 비트 및 바이트 정렬 시맨틱스가 제공된다. 프레임 헤더 RBSP 시맨틱스의 그룹은 다음과 같다.
identified_codec는 표 2에 나타낸 바와 같이 지오메트리 및 텍스처 구성요소의 코딩에 사용되는 식별된 비디오 코덱을 명시한다.
[표 2: of identified_codec의 사양]
Figure pct00008
frame_width는 화소에 있어, 지오메트리 및 텍스처 비디오의 폭을 지시한다. occupancyResolution의 배수여야 한다.
frame_height는 화소에 있어, 지오메트리 및 텍스처 비디오의 프레임 높이를 지시한다. occupancyResolution의 배수여야 한다.
occupancy_resolution은 화소에 있어, 지오메트리 및 텍스처 비디오에 패치가 패킹되는 수평 및 수직 해상도를 지시한다. occupancyPrecision의 짝수 값 배수여야 한다.
radius_to_smoothing은 평활화를 위해 이웃을 검출하기 위한 반경을 지시한다. radius_to_smoothing의 값은 0에서 255(포함)까지의 범위에 있어야 한다.
neighbour_count_smoothing은 평활화에 사용되는 최대 이웃 수를 지시한다. neighbour_count_smoothing의 값은 0에서 255(포함)까지의 범위에 있어야 한다.
radius2_boundary_detection은 경계점 검출을 위한 반경을 지시한다. radius2_boundary_detection의 값은 0에서 255(포함)까지의 범위에 있어야 한다.
threshold_smoothing은 평활화 임계 값을 지시한다. 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은 투영 평면(projection plane)에 가장 가까운 계층 이외의 지오메트리 계층이 어떻게 코딩되는지를 지시한다. 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 투영 축에 대응한다.
다음 신택스 요소는 블록당 한번 명시된다.
후보 색인은 패치 후보 리스트에 대한 색인이다. 후보 색인의 값은 0에서 max_candidate_count(포함) 범위에 있어야 한다.
patch_index는 프레임과 연관하여, 내림차순으로 정렬된 패치 리스트에 대한 색인이다.
프레임 점유 맵 시맨틱스의 그룹이 제공된다.
비어 있지 않은 블록에 대해 다음 신택스 요소가 제공된다.
is_full은 occupancy_resolution × occupancy_resolution 블록 크기의 현재 점유 블록(occupancy block)이 가득 찼는지를 명시한다. 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 plus 2는 블록에 대해 시그널링된 실행의 수를 나타낸다. runCountMinusTwo의 값은 0에서 (occupancy_resolution * occupancy_resolution) -1(포함)까지의 범위에 있어야 한다.
runCountMinusTwo는 다음과 같이 도출된다.
runCountMinusTwo =(1 << run_count_prefix) - 1 + run_count_suffix (7-85)
occupancy는(occupancyPrecision × occupancyPrecision 화소의) 제1 서브블록에 대한 occupancy 값을 명시한다. occupancy가 0이면 제1 서브블록이 비어 있음을 명시한다. occupancy가 1이면 제1 서브블록이 점유됨을 명시한다.
run_length_idx는 실행 길이(run length)를 지시한다. runLengthIdx의 값은 0에서 14(포함)까지의 범위에 있어야 한다.
runLength 변수는 표 3을 사용하여 run_length_idx로부터 도출된다.
[표 3: run_length_idx로부터의 runLength의 도출]
Figure pct00009
주: 점유 맵은 지오메트리 및 텍스처 비디오 모두에 의해 공유된다.
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가 Annex A에 명시된 바를 준수하는 레벨을 지시한다. 비트스트림은 Annex A에 명시된 것 이외의 pcc_level_idc 값을 포함하지 않아야 한다. pcc_level_idc의 다른 값은 ISO/IEC에 의한 향후 사용을 위해 예약되어 있다.
hevc_ptl_12bytes_geometry는 10절에 명시된 바와 같이 추출된 지오메트리 HEVC 비트스트림이 적합한 HEVC 디코더에 의해 디코딩되는 경우 활성 SPS에서, general_profile_idc에서 general_level_idc(포함)까지의 12바이트의 값과 동일해야 한다.
hevc_ptl_12bytes_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는 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) 바이트를 제거한다.
다른 실시예가 아래에 제공된다.
위에 요약된 바와 같은 제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에서, 데이터 유닛 헤더(예: 데이터 유닛 헤더(404)) 및 데이터 유닛(예: 데이터 유닛(402))을 포함하는 인코딩된 비트스트림(예: 데이터 구조(400))이 수신된다. 데이터 유닛 헤더는 데이터 유닛의 페이로드(예: 페이로드(406))에 실려 전달되는 콘텐츠의 유형을 명시하는 유형 지시자를 포함한다.
블록 504에서, 인코딩된 비트스트림이 디코딩된다. 디코딩된 비트스트림은 디스플레이 기기에서 사용자에게 표시하기 위한 이미지 또는 비디오를 생성하는 데 사용될 수 있다.
일 실시예에서, 데이터 유닛 헤더는 PCC 네트워크 추상화 계층(NAL) 유닛 헤더이다. 일 실시예에서, 데이터 유닛은 PCC NAL 유닛이다. 일 실시예에서, 지시자는 콘텐츠 유형이 지오메트리 구성요소임을 명시한다. 일 실시예에서, 지시자는 콘텐츠 유형이 텍스처 구성요소임을 명시한다. 일 실시예에서, 지시자는 콘텐츠의 유형이 지오메트리 구성요소 또는 텍스처 구성요소임을 명시한다.
일 실시예에서, 지시자는 콘텐츠의 유형이 보조 정보임을 명시한다. 일 실시예에서, 지시자는 콘텐츠의 유형이 점유 맵임을 명시한다.
일 실시예에서, 페이로드는 고효율 비디오 코딩(HEVC) NAL 유닛을 포함한다. 일 실시예에서, 페이로드는 AVC(Advanced Video Coding) NAL 유닛을 포함한다. 일 실시예에서, 유형 지시자는 5비트 또는 7비트를 포함한다.
도 6은 비디오 인코더(예: 비디오 인코더(20))에 의해 구현되는 포인트 클라우드 코딩 방법(600)의 실시예이다. 이 방법(600)은 포인트 클라우드 코딩과 연관된 전술한 문제 중 하나 이상을 해결하기 위해 수행될 수 있다.
블록 602에서, 데이터 유닛 헤더(예: 데이터 유닛 헤더(404)) 및 데이터 유닛(예: 데이터 유닛(402))을 포함하는 인코딩된 비트스트림(예: 데이터 구조(400))이 생성된다. 데이터 유닛 헤더는 데이터 유닛의 페이로드(예: 페이로드(406))에 실려 전달되는 콘텐츠의 유형을 명시하는 유형 지시자를 포함한다.
블록 604에서, 인코딩된 비트스트림은 디코더(예: 비디오 디코더(30))를 향해 송신된다. 디코더에 의해 수신되면, 인코딩된 비트스트림은 디스플레이 기기에서 사용자에게 표시하기 위한 이미지 또는 비디오를 생성하기 위해 디코딩될 수 있다.
일 실시예에서, 데이터 유닛 헤더는 PCC 네트워크 추상화 계층(NAL) 유닛 헤더이다. 일 실시예에서, 데이터 유닛은 PCC NAL 유닛이다. 일 실시예에서, 지시자는 콘텐츠의 유형이 지오메트리 구성요소임을 명시한다. 일 실시예에서, 지시자는 콘텐츠 유형이 텍스처 구성요소임을 명시한다. 일 실시예에서, 지시자는 콘텐츠의 유형이 지오메트리 구성요소 또는 텍스처 구성요소임을 명시한다.
일 실시예에서, 지시자는 콘텐츠의 유형이 보조 정보임을 명시한다. 일 실시예에서, 지시자는 콘텐츠의 유형이 점유 맵임을 명시한다.
일 실시예에서, 페이로드는 고효율 비디오 코딩(HEVC) NAL 유닛을 포함한다. 일 실시예에서, 페이로드는 AVC(Advanced Video Coding) NAL 유닛을 포함한다. 일 실시예에서, 유형 지시자는 5비트 또는 7비트를 포함한다.
도 7은 본 개시의 실시예에 따른 비디오 코딩 기기(700)(예: 비디오 코더(20), 비디오 디코더(30) 등)의 개략도이다. 비디오 코딩 기기(700)는 여기에 개시된 방법 및 프로세스를 구현하는데 적합하다. 비디오 코딩 기기(700)는 데이터를 수신하기 위한 수신 포트(710) 및 수신기 유닛(Rx)(720); 데이터를 처리하기 위한 프로세서, 로직 유닛, 또는 중앙 처리 유닛(CPU)(730); 데이터를 송신하기 위한 송신기 유닛(Tx)(740) 및 출구 포트(750); 및 데이터를 저장하기 위한 메모리(760)를 포함한다. 비디오 코딩 기기(700)는 또한 입구 포트(710)에 결합된 광전(optical-to-electrical, OE) 구성요소 및 전기광(electrical-to-optical, EO) 구성요소, 수신기 유닛(720), 송신기 유닛(740) 및 광 신호 또는 전기 신호의 출입을 위한 출구 포트(750)를 포함할 수 있다.
프로세서(730)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(730)는 하나 이상의 CPU 칩, 코어(예: 멀티 코어 프로세서), FPGA(Field-Programmable Gate Array), ASIC(Application Specific Integrated Circuit) 및 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)는 하나 이상의 디스크, 테이프 드라이브 및 솔리드 스테이트 드라이브를 포함하고 오버플로 데이터 저장 기기(over-flow data storage device)로서 사용될 수 있으며, 이러한 프로그램이 실행을 위해 선택되는 경우에 프로그램을 저장하고, 프로그램 실행 중에 판독되는 명령어 및 데이터를 저장하기 위해 사용될 수 있다. 메모리(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 (20)

  1. 비디오 디코더에 의해 구현되는 포인트 클라우드 코딩(point cloud coding, PCC) 방법으로서,
    데이터 유닛 헤더 및 데이터 유닛을 포함하는 인코딩된 비트스트림을 수신하는 단계 - 상기 데이터 유닛 헤더는 상기 데이터 유닛의 페이로드에 실려 전달되는 콘텐츠의 유형을 명시하는 유형 지시자를 포함함 -; 및
    인코딩된 비트스트림을 디코딩하는 단계
    를 포함하는 포인트 클라우드 코딩(PCC) 방법.
  2. 비디오 인코더에 의해 구현되는 포인트 클라우드 코딩(PCC) 방법으로서,
    데이터 유닛 헤더 및 데이터 유닛을 포함하는 인코딩된 비트스트림을 생성하는 단계 - 상기 데이터 유닛 헤더는 상기 데이터 유닛의 페이로드에 실려 전달되는 콘텐츠의 유형을 명시하는 유형 지시자를 포함함-; 및
    인코딩된 비트스트림을 디코더에 송신하는 단계
    를 포함하는 포인트 클라우드 코딩(PCC) 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 데이터 유닛 헤더는 PCC 네트워크 추상화 계층(network abstraction layer, NAL) 유닛 헤더인, 포인트 클라우드 코딩(PCC) 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 데이터 유닛은 PCC NAL 유닛인, 포인트 클라우드 코딩(PCC) 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 유형 지시자는 상기 콘텐츠의 유형이 지오메트리 구성요소(geometry component)임을 명시하는, 포인트 클라우드 코딩(PCC) 방법.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 유형 지시자는 상기 콘텐츠의 유형이 텍스처 구성요소(texture component)임을 명시하는, 포인트 클라우드 코딩(PCC) 방법.
  7. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 유형 지시자는 상기 콘텐츠의 유형이 지오메트리 구성요소 또는 텍스처 구성요소임을 명시하는, 포인트 클라우드 코딩(PCC) 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 유형 지시자는 상기 콘텐츠의 유형이 보조 정보(auxiliary information)임을 명시하는, 포인트 클라우드 코딩(PCC) 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 유형 지시자는 상기 콘텐츠의 유형이 점유 맵(occupancy map)임을 명시하는, 포인트 클라우드 코딩(PCC) 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 페이로드는 고효율 비디오 코딩(High Efficiency Video Coding, HEVC) NAL 유닛을 포함하는, 포인트 클라우드 코딩(PCC) 방법.
  11. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 페이로드는 향상된 비디오 코딩(Advanced Video Coding, AVC) NAL 유닛을 포함하는 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 유형 지시자는 5비트를 포함하는, 포인트 클라우드 코딩(PCC) 방법.
  13. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 유형 지시자는 7비트를 포함하는, 포인트 클라우드 코딩(PCC) 방법.
  14. 제1항 내지 제5항 및 제7항 중 어느 한 항에 있어서,
    상기 지오메트리 구성요소는 포인트 클라우드 프레임과 연관된 좌표의 세트를 포함하는, 포인트 클라우드 코딩(PCC) 방법.
  15. 제14항에 있어서,
    상기 좌표 세트는 데카르트 좌표인, 포인트 클라우드 코딩(PCC) 방법.
  16. 제1항 내지 제4항 및 제6항 내지 제7항 중 어느 한 항에 있어서,
    상기 텍스처 구성요소는 포인트 클라우드 프레임의 루마 샘플 값(luma sample value)의 세트를 포함하는, 포인트 클라우드 코딩(PCC) 방법.
  17. 코딩 장치로서,
    인코딩할 영상을 수신하거나 디코딩할 비트스트림을 수신하도록 구성된 수신기;
    상기 수신기에 결합되고, 상기 비트스트림을 디코더에 송신하거나 디코딩된 이미지를 디스플레이에 송신하도록 구성된 송신기;
    상기 수신기 또는 상기 송신기 중 적어도 하나에 결합되고, 명령어를 저장하도록 구성된 메모리; 및
    상기 메모리에 결합되고, 상기 메모리에 저장된 명령어를 실행하여 제1항 내지 제16항 중 어느 한 항에서의 방법을 수행하도록 구성된 프로세서
    를 포함하는 코딩 장치.
  18. 제17항에 있어서,
    이미지를 표시하도록 구성된 디스플레이를 더 포함하는 코딩 장치.
  19. 시스템으로서,
    인코더; 및
    상기 인코더와 통신하는 디코더를 포함하고,
    상기 인코더 또는 상기 디코더는 제17항 또는 제18항의 코딩 장치를 포함하는,
    시스템.
  20. 코딩을 위한 수단으로서,
    인코딩할 영상을 수신하거나 디코딩할 비트스트림을 수신하도록 구성된 수신 수단;
    상기 수신 수단에 결합되고, 비트스트림을 디코더로 송신하거나 디코딩된 이미지를 디스플레이 수단에 송신하도록 구성된 송신 수단;
    상기 수신 수단 또는 상기 송신 수단 중 적어도 하나에 결합되고, 명령어를 저장하도록 구성된 저장 수단; 및 수단에 저장된 명령어를 실행하여 제1항 내지 제16항 중 어느 한 항에서의 방법을 수행하도록 구성된 처리 수단을 포함하는 코딩을 위한 수단.
KR1020217001998A 2018-06-26 2019-04-11 포인트 클라우드 코딩을 위한 고급 신택스 설계 KR20210022100A (ko)

Priority Applications (1)

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

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/027064 WO2020005363A1 (en) 2018-06-26 2019-04-11 High-level syntax designs for point cloud coding

Related Child Applications (1)

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

Publications (1)

Publication Number Publication Date
KR20210022100A true KR20210022100A (ko) 2021-03-02

Family

ID=68985126

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020217001998A KR20210022100A (ko) 2018-06-26 2019-04-11 포인트 클라우드 코딩을 위한 고급 신택스 설계
KR1020237006158A KR20230031992A (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 포인트 클라우드 코딩을 위한 고급 구문 설계

Family Applications After (3)

Application Number Title Priority Date Filing Date
KR1020237006158A KR20230031992A (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 포인트 클라우드 코딩을 위한 고급 구문 설계

Country Status (8)

Country Link
US (4) US20210112278A1 (ko)
EP (3) EP3804319A4 (ko)
JP (6) JP7116199B2 (ko)
KR (4) KR20210022100A (ko)
CN (4) CN112438047B (ko)
BR (3) BR112020026646A2 (ko)
SG (3) SG11202012940XA (ko)
WO (3) WO2020005363A1 (ko)

Families Citing this family (47)

* 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
US10909726B2 (en) 2018-04-10 2021-02-02 Apple Inc. Point cloud compression
US10909727B2 (en) 2018-04-10 2021-02-02 Apple Inc. Hierarchical point cloud compression with smoothing
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
CN112534477A (zh) * 2018-08-08 2021-03-19 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置以及三维数据解码装置
KR102608572B1 (ko) * 2018-09-14 2023-12-04 후아웨이 테크놀러지 컴퍼니 리미티드 포인트 클라우드 코딩에서의 개선된 속성 지원
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
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
WO2021068921A1 (en) 2019-10-10 2021-04-15 Beijing Bytedance Network Technology Co., Ltd. Motion vector handling in geometry partition mode
JP7425207B2 (ja) * 2020-01-07 2024-01-30 エルジー エレクトロニクス インコーポレイティド ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法
US11593967B2 (en) * 2020-01-08 2023-02-28 Samsung Electronics Co., Ltd. Attribute transfer in V-PCC
US11356706B2 (en) 2020-01-08 2022-06-07 Qualcomm Incorporated Storage and delivery of video data for video coding
US11798196B2 (en) 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
WO2021141264A1 (ko) * 2020-01-08 2021-07-15 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
KR102373833B1 (ko) * 2020-01-09 2022-03-14 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11475605B2 (en) 2020-01-09 2022-10-18 Apple Inc. Geometry encoding of duplicate points
US11317117B2 (en) * 2020-03-30 2022-04-26 Tencent America LLC Method of coding attributes for point cloud coding
CN115443652B (zh) * 2020-04-11 2024-02-20 Lg电子株式会社 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
US11615557B2 (en) 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
US11620768B2 (en) 2020-06-24 2023-04-04 Apple Inc. Point cloud geometry compression using octrees with multiple scan orders
US11816868B2 (en) * 2020-08-14 2023-11-14 Tencent America LLC Coding of multiple-component attributes for point cloud coding
WO2022092886A1 (ko) * 2020-10-30 2022-05-05 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US20220180567A1 (en) 2020-12-04 2022-06-09 Tencent America LLC Method and apparatus for point cloud coding
US20220179082A1 (en) * 2020-12-08 2022-06-09 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
WO2023054156A1 (ja) * 2021-09-29 2023-04-06 ソニーグループ株式会社 情報処理装置および方法
WO2023050432A1 (zh) * 2021-09-30 2023-04-06 浙江大学 编解码方法、编码器、解码器以及存储介质
WO2023090614A1 (ko) * 2021-11-19 2023-05-25 현대자동차주식회사 라이다 포인트 클라우드 코딩을 위한 방법 및 장치
WO2023131131A1 (en) * 2022-01-04 2023-07-13 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for point cloud coding
WO2024064043A1 (en) * 2022-09-19 2024-03-28 Innopeak Technology, Inc. Point cloud decoding method, point cloud encoding method, decoder and encoder

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
US10244239B2 (en) * 2010-12-28 2019-03-26 Dolby Laboratories Licensing Corporation Parameter set for picture segmentation
CN103119944B (zh) * 2011-05-20 2017-04-12 太阳专利托管公司 用于使用色彩平面间预测对视频进行编码和解码的方法和装置
US20130188013A1 (en) * 2011-07-22 2013-07-25 Qualcomm Incorporated Mvc based 3dvc codec supporting inside view motion prediction (ivmp) mode
KR20140057373A (ko) * 2011-08-30 2014-05-12 노키아 코포레이션 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
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
CN104869394B (zh) 2012-06-11 2018-10-19 三星电子株式会社 视频解码方法
US9716892B2 (en) 2012-07-02 2017-07-25 Qualcomm Incorporated Video parameter set including session negotiation information
US20140037005A1 (en) * 2012-08-02 2014-02-06 Penne Y. LEE Transcoding video data
MY191172A (en) 2012-09-28 2022-06-03 Sony Corp 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 한국전자통신연구원 영상 처리 장치 및 방법
JP6866157B2 (ja) 2013-09-27 2021-04-28 クゥアルコム・インコーポレイテッドQualcomm Incorporated 深度イントラ予測モードのための残差コーディング
CN105612745A (zh) 2013-10-08 2016-05-25 夏普株式会社 图像解码装置、图像编码装置以及编码数据
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
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
US10694210B2 (en) * 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
CN117135357A (zh) * 2016-07-08 2023-11-28 Vid拓展公司 使用几何图形投影的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
CN111630571A (zh) * 2018-01-19 2020-09-04 交互数字Vc控股公司 处理点云
WO2019166688A1 (en) 2018-03-01 2019-09-06 Nokia Technologies Oy An apparatus, a method and a computer program for volumetric video
US10939129B2 (en) * 2018-04-10 2021-03-02 Apple Inc. Point cloud compression

Also Published As

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

Similar Documents

Publication Publication Date Title
US11856230B2 (en) High-level syntax designs for point cloud coding
WO2020146341A1 (en) Point cloud bitstream structure and auxiliary information differential coding
KR102562209B1 (ko) 포인트 클라우드 코딩에서의 효율적인 패치 회전
US20210398324A1 (en) Patch Data Unit Coding and Decoding 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
AMND Amendment
X601 Decision of rejection after re-examination