KR20220144765A - V-pcc 그리드 평활화 과정의 셀 색인화를 보완하는 영상 부호화/복호화 방법, 장치 및 컴퓨터로 판독가능한 기록 매체 - Google Patents

V-pcc 그리드 평활화 과정의 셀 색인화를 보완하는 영상 부호화/복호화 방법, 장치 및 컴퓨터로 판독가능한 기록 매체 Download PDF

Info

Publication number
KR20220144765A
KR20220144765A KR1020220046177A KR20220046177A KR20220144765A KR 20220144765 A KR20220144765 A KR 20220144765A KR 1020220046177 A KR1020220046177 A KR 1020220046177A KR 20220046177 A KR20220046177 A KR 20220046177A KR 20220144765 A KR20220144765 A KR 20220144765A
Authority
KR
South Korea
Prior art keywords
grid
point cloud
point
boundary
image
Prior art date
Application number
KR1020220046177A
Other languages
English (en)
Inventor
장의선
동천우
김규태
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Publication of KR20220144765A publication Critical patent/KR20220144765A/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
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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

Abstract

본 발명은, 포인트 클라우드(Point Cloud)를 3차원 그리드로 분할하는 그리드 분할 단계, 상기 그리드의 포인트 클라우드 점들 중 경계 점을 식별하는 경계 점 식별 단계, 상기 식별된 경계 점을 기초로, 상기 그리드의 경계 셀을 획득하는 경계 셀 획득 단계, 또는 상기 획득한 그리드의 경계 셀을 위한 상기 그리드 중심을 산출하는 그리드 중심 산출 단계 중 적어도 하나를 포함하되, 상기 그리드의 포인트 클라우드 점들 중 제1 조건을 만족하는 포인트 클라우드 점은 상기 그리드 중심 산출에 이용되지 않는, 영상 부호화/복호화 방법 및 컴퓨터로 판독가능한 기록 매체를 제공한다.

Description

V-PCC 그리드 평활화 과정의 셀 색인화를 보완하는 영상 부호화/복호화 방법, 장치 및 컴퓨터로 판독가능한 기록 매체{VIDEO ENCODING/DECODING METHOD, APPARATUS AND COMPUTER-READABLE RECORDING MEDIUM FOR SUPPLEMENTING CELL INDEXING IN V-PCC GRID SMOOTHING PROCESS}
본 발명은 V-PCC(Video-based dynamic Point Cloud Compression)의 후 처리 단계에서 그리드 스무딩(그리드 평활화, Grid Smoothing)을 사용하여 포인트 클라우드(Point Cloud)를 재구성함에 있어서, 소프트웨어의 메모리 접근 위반을 방지하기 위해 그리드의 cellID를 그리드의 cellIndex 크기 내에서 제한하거나 포인트 클라우드의 경계 점을 사전에 필터링하는 영상 부호화/복호화 방법 및 컴퓨터로 판독가능한 저장매체에 관한 것이다.
포인트 클라우드는 3차원 공간 상에 표현된 포인트 클라우드 비디오의 데이터들의 점들의 집합으로 구성되는 것으로, 종래에는 3D 스캐너 등으로 획득된 3차원 데이터를 surface 모델인 다각형 메시, NURBS, 또는 CAD 모델 등으로 변환하기 위해 중간 데이터로 사용되어 왔다.
최근에는 포인트 클라우드 기술의 발전 및 다양화가 이루어지고, Head-mound display(HMD) 등의 3D 복원 기술의 대중화와 결합하면서 새로운 몰입형 미디어의 핵심으로 주목받고 있습니다. 포인트 클라우드는 작게는 수 십개에서 많게는 수 십억 개에 이르기까지 다양한 개수의 포인트 클라우드 점을 포함할 수 있다. 포인트 클라우드의 점의 개수가 증가함에 따라, 포인트 클라우드의 점의 저장, 전송, 렌더링 등의 과정에서 빠른 처리를 위해 포인트 클라우드의 압축이 필수적인 요소가 되어가고 있다.
MPEG는 2013년부터 포인트 클라우드의 압축에 대한 논의를 시작하였으며, 삼성전자, LG전자, 애플, 화웨이 등 주요 기업들이 참여하고 있는 가운데, 2년 이상의 표준화 절차를 거쳐 V-PCC(Video-based Point Cloud Compression)와 G-PCC(Geometry-based Point Cloud Compression) 두 개의 표준이 만들어졌다.
본 발명은 그리드 스무딩(Grid smoothing)을 사용하여 재구성된 포인트 클라우드를 필터링하는 과정에서, 그리드의 cellID가 그리드의 cellIndex보다 큰 경우와 같이 메모리 접근 위반이 발생하는 것을 방지하고자 함에 잇다.
상기 과제를 해결하기 위하여 본 발명은 경계 셀을 위한 그리드 중심 산출 과정 이전에 cellID를 탐지하는 구조 또는 그리드 범위를 탐지하는 구조를 가지는 영상 부호화/복호화 방법 및 컴퓨터로 판독가능한 저장매체를 제공한다.
본 발명에 따른 영상 부호화/복호화 방법은, 포인트 클라우드를 3차원 그리드로 분할하는 그리드 분할 단계, 상기 그리드의 포인트 클라우드 점들 중 경계 점을 식별하는 경계 점 식별 단계, 상기 식별된 경계 점을 기초로, 상기 그리드의 경계 셀을 획득하는 경계 셀 획득 단계, 상기 획득한 그리드의 경계 셀을 위한 상기 그리드 중심을 산출하는 그리드 중심 산출 단계를 포함하되, 상기 그리드의 포인트 클라우드 점들 중 제1 조건을 만족하는 포인트 클라우드 점은 상기 그리드 중심 산출에 이용되지 않을 수 있다.
본 발명에 따른 영상 부호화/복호화 방법에 있어서, 상기 제1 조건은, 상기 포인트 클라우드 점과 연결된 그리드의 셀의 CellID가 상기 그리드의 CellIndex의 크기보다 큰 것이고, 상기 CellID는 상기 CellID를 가진 셀을 상기 그리드 내에 다른 셀들과 구분하는 것일 수 있다.
본 발명에 따른 영상 부호화/복호화 방법에 있어서, 상기 CellIndex 크기는 상기 포인트 클라우드가 분할된 그리드의 개수에 의해 결정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법에 있어서, 상기 그리드의 개수는 상기 포인트 클라우드의 바운딩박스의 x, y 및 z 축의 범위 각각을 상기 그리드의 크기로 나눈 값을 기초로 획득될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법에 있어서, 상기 그리드 중심 산출 단계는, 상기 그리드의 포인트 클라우드 점들에 대한 addGridCentroid 함수에 의해 수행되고, 상기 그리드의 포인트 클라우드 점들 중 제1 조건을 만족하는 포인트 클라우드 점에 대한 상기 addGridCentroid 함수는 continue 함수에 의해 스킵될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법에 있어서, 상기 그리드 중심 산출 단계에서 산출된 상기 그리드 중심은, 삼선형 필터링(Tri-Linear Filtering)가 적용될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법에 있어서, 상기 제1 조건은, 상기 포인트 클라우드 점이 상기 포인트 클라우드와 연결된 그리드의 범위를 벗어난 것일 수 있다.
본 발명에 따른 비트스트림을 저장하는 컴퓨터로 판독가능한 기록 매체에 있어서, 상기 비트스트림은, 부호화된 포인트 클라우드를 포함하되, 상기 비트스트림으로부터 획득된 포인트 클라우드는 3차원 그리드로 분할되고, 상기 그리드의 포인트 클라우드 점들 중 경계 점이 식별되고, 상기 식별된 경계 점을 기초로, 상기 그리드의 경계 셀이 획득되고, 상기 획득한 그리드의 경계 셀을 위한 상기 그리드 중심이 산출되고, 상기 그리드의 포인트 클라우드 점들 중 제1 조건을 만족하는 포인트 클라우드 점은 상기 그리드 중심의 산출에 이용되지 않을 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 컴퓨터로 판독가능한 기록매체는, 그리드 스무딩을 사용하여 재구성된 포인트 클라우드를 필터링 하는 과정에서, 그리드의 cellID를 그리드의 cellIndex 크기 내에서 제한하거나 그리드 범위를 벗어난 포인트 클라우드의 점을 사전에 필터링하여 소프트웨어 메모리 접근 위반을 방지할 수 있다.
도 1는 본 발명의 실시예에 따른 3D 영상인 포인트 클라우드 비디오가 변환된 2D 영상에 대한 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 3D 영상인 포인트 클라우드 비디오가 변환된 2D 영상에 대한 영상 부호화 장치에 대한 블록 구성도이다.
도 3은 본 발명의 일 실시예에 따른 3D 영상인 포인트 클라우드 비디오가 변환된 2D 영상에 대한 영상 복호화 장치에 대한 블록 구성도이다.
도 4는 본 발명의 일 실시예에 따른 트리 기반의 블록 형태를 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 다양한 블록 형태를 나타낸 도면이다.
도 6은 본 발명의 실시예에 따른 포인트 클라우드 비디오 데이터의 송/수신 시스템을 나타낸 도면이다.
도 7는 포인트 클라우드 비디오 인코더의 구조를 나타낸 도면이다.
도 8은 포인트 클라우드 비디오 디코더의 구조를 나타낸 도면이다.
도 9는 그리드 스무딩(Grid Smoothing) 과정의 순서도를 도시한 도면이다.
도 10은 포인트 클라우드의 경계 점을 식별하는 구체적인 과정을 나태내는 도면이다.
도 11은 경계 셀을 위한 그리드 중심을 산출하는 구체적인 과정을 나타내는 도면이다.
도 12은 addGridCenter 함수를 호출하기 전에 cellID 탐지하는 구조를 나타내는 도면이다.
도 13은 경계 셀을 위한 그리드 중심을 계산하는 과정에서 현재 점의 그리드 범위를 탐지하는 구조를 나타내는 도면이다.
도 14는 포인트 클라우드의 색 영상 패치를 도시한 도면이다.
도 15는 본 발명의 일 실시예에 따른 그리드 스무딩 방법을 나타낸 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 것을 의미한다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
통상적으로 영상(또는 비디오)은 일련의 정지 영상(Still Image)으로 구성될 수 있으며, 이 정지 영상들은 GOP(Group of Pictures) 단위로 구분될 수 있고, 각 정지 영상을 픽쳐(Picture) 또는 프레임(Frame)이라 지칭할 수 있다. 상위 개념으로는 GOP, 시퀀스(Sequence)등의 단위가 존재할 수 있다. 또한, 각 픽쳐는 서브 픽쳐, 슬라이스, 타일, 블록 등과 같은 소정의 영역으로 분할될 수 있다. 또한, 하나의 GOP에는 I 픽쳐, P 픽쳐, B 픽쳐 등의 단위가 포함될 수 있다. I 픽쳐는 참조 픽쳐를 사용하지 않고 자체적으로 부호화/복호화되는 픽쳐를 의미할 수 있으며, P 픽쳐와 B 픽쳐는 참조 픽쳐를 사용하여 움직임 추정(Motion Estimation) 및 움직임 보상(Motion Compensation) 등의 과정을 수행하여 부호화/복호화 하는 픽쳐를 의미할 수 있다. 일반적으로, P 픽쳐의 경우 I 픽쳐와 P 픽쳐를 참조 픽쳐로써 이용할 수 있으며, B 픽쳐의 경우 I 픽쳐와 P 픽쳐를 참조 픽쳐를 이용할 수 있으나, 이는 부호화/복호화의 설정에 의해 위의 정의 또한 변경될 수 있다. 여기서, 부호화/복호화하는데 참조되는 픽쳐를 참조 픽쳐(Reference Picture)라고 하며, 참조되는 블록 또는 화소를 참조 블록(Reference Block), 참조 화소(Reference Pixel)라고 한다. 또한, 참조되는 데이터(Reference Data)는 공간 영역(Spatial Domain)의 화소값 뿐만 아니라 주파수 영역(Frequency Domain)의 계수값, 부호화/복호화 과정 중에 생성, 결정되는 다양한 부호화/복호화 정보일 수 있다.
영상을 이루는 최소 단위는 화소일 수 있으며, 하나의 화소를 표현하는데 사용되는 비트수를 비트 심도(Bit Depth)라고 한다. 일반적으로 비트 심도는 8비트일 수 있으며 부호화/복호화 설정에 따라 다른 비트 심도(16비트, 32비트, 64비트 등)를 지원할 수 있다. 비트 심도는 컬러 공간(Color Space)에 따라 적어도 하나의 비트 심도가 지원될 수 있다. 또한, 영상의 컬러 포맷(Color Format)에 따라 적어도 하나의 컬러 공간으로 구성될 수 있다. 구체적으로, 컬러 포맷에 따라, 컬러 공간은 일정 크기를 갖는 1개 이상의 픽쳐 또는 다른 크기를 갖는 1개 이상의 픽쳐로 구성될 수 있다. 예를 들어, YCbCr 4:2:0인 경우 1개의 휘도 성분(본 예에서, Y)과 2개의 색차 성분(본 예에서, Cb/Cr)으로 구성될 수 있으며, 이때, 색차 성분과 휘도 성분의 구성 비는 가로 및 세로 각각에 대하여 1:2를 가질 수 있다. 다른 예로, 4:4:4인 경우 색차 성분과 휘도 성분의 구성 비는 가로 및 세로 각각에 대하여 동일 할 수 있다. 상기 예처럼, 하나 이상의 컬러 공간으로 구성이 되는 경우, 픽쳐는 각 컬러 공간으로의 분할을 수행할 수 있다. 본 발명에서는 일부 컬러 포맷(본 예에서, YCbCr)의 일부 컬러 공간(본 예에서, Y)을 기준으로 설명할 것이며, 컬러 포맷에 따른 다른 컬러 공간(본 예에서, Cb, Cr)에도 본 발명에 대한 동일하거나 비슷한 적용(특정 컬러 공간에 의존적인 설정)을 할 수 있다. 그러나 각 컬러 공간 간에 부분적인 차이(특정 컬러 공간에 독립적인 설정)를 두는 것 또한 가능할 수 있다. 즉, 각 컬러 공간의 의존적인 설정은 각 성분의 구성 비(예를 들어, 4:2:0, 4:2:2 또는 4:4:4 등에 따라 결정)에 비례하거나 의존적인 설정을 갖는 것으로 의미할 수 있고, 각 컬러 공간의 독립적인 설정은 각 성분의 구성 비에 관계없거나 독립적으로 해당 컬러 공간만의 설정을 갖는 것으로 의미할 수 있다. 본 발명에서는 부호화/복호화기에 따라 일부 구성에 대해서는 독립적인 설정을 갖거나 의존적인 설정을 가질 수 있다.
영상 부호화 과정에서 필요한 설정 정보 또는 구문 요소(Syntax Element)는 비디오, 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위 수준에서 정해질 수 있으며 이는 VPS(Video Parameter Set), SPS(Sequence Parameter Set), PPS(Picture Parameter Set), Slice Header, Tile Header 또는 Block Header 등과 같은 단위로 비트스트림에 수록되어 복호화기로 전송될 수 있고, 복호화기에서는 동일 수준의 단위에서 파싱(Parsing)하여 부호화기에서 전송된 설정 정보를 복원하여 영상 복호화 과정에 사용할 수 있다. 각 파라미터 세트는 고유의 아이디값을 갖고 있으며, 하위 파라미터 세트에서는 참조할 상위 파라미터 세트의 아이디값을 가질 수 있다. 예를 들어, 하위 파라미터 세트에서 하나 이상의 상위 파라미터 세트 중 일치하는 아이디값을 갖는 상위 파라미터 세트의 정보를 참조할 수 있다. 위에서 언급된 다양한 단위의 예 중 어떤 하나의 단위가 하나 이상의 다른 단위를 포함하는 경우에 해당하는 단위는 상위 단위, 포함되는 단위는 하위 단위라 칭할 수 있다.
상기 단위에서 발생하는 설정 정보의 경우 해당 단위마다 독립적인 설정에 대한 내용을 포함하거나 이전, 이후 또는 상위 단위 등에 의존적인 설정에 대한 내용을 포함할 수 있다. 여기서, 의존적인 설정이란 이전, 이후, 상위 단위의 설정을 따른다는 플래그 정보(예를 들어, 1 비트 플래그로 1이면 따르고, 0이면 따르지 않음)로 해당 단위의 설정 정보를 나타내는 것이라 이해될 수 있다.
본 발명에 있어서, '프레임' 및 '픽쳐'의 용어는 서로 혼용 사용될 수 있다.
본 발명에 있어서, 포인트 클라우드(point cloud)는, 포인트 클라우드 비디오(Point Cloud Video)의 데이터가 3차원(3-Dimension) 공간의 포인트 클라우드 점들의 집합으로 구성된 것일 수 있다.
V-PCC 부호화 과정에 있어서, 3D 영상인 포인트 클라우드 비디오는 2D(2-Dimension) 비디오 코덱으로 압축하기 위해 패치로 분할되어 2D 영상 데이터로 변환될 수 있습니다. 이를, 패치 생성(Patch Generation) 과정이라 하며, 패치 생성 과정을 통해 생성된 2D 영상 데이터를 프레임 별로 압축하여 비디오 압축(Video Compression)을 수행할 수 있다.
패치 생성 과정(Patch Genaration)에서는, 매 프레임 별로 포인트 클라우드의 바운딩박스(boundingbox)를 결정하고, 바운딩박스의 표면에 가장 가까운 포인트 클라우드의 점들을 정사영의 형태로 투사하여 패치(Patch)를 생성할 수 있다. 여기서, 바운딩박스는 4면체, 6면체, 8면체 등 다양한 형태를 가질 수 있으나, 본 발명에서는 6면체를 중심으로 설명합니다. 또한, 바운딩박스는 고정된 크기 및 형태를 가질 수 있으나, 포인트 클라우드 점들의 범위 또는 포인트 클라우드 형태 중 적어도 하나를 고려하여, 적응적으로 크기 및 형태를 가질 수 있다.
패치 생성 과정에서 생성되는 패치는 기하(Geometry) 영상 패치, 색(Color Attribute) 영상 패치, 점유(Occupancy) 영상 패치로 나눠질 수 있다. 여기서, 기하 영상 패치는 기하 영상 맵으로도 표현될 수도 있고, 색 영상 패치는 색 영상 맵으로도 표현될 수도 있고, 점유 영상 패치는 점유 영상 맵 또는 점유 맵으로도 표현될 수 있다.
패치 생성 과정을 통해 획득한 2D 영상 데이터는 2D 영상에 대한 영상 부호화/복호화 장치에 의해 수행될 수 있으며, 부호화/복호화 장치에 의해 부호화/복호화되는 2D 영상 데이터는, 기하 영상 패치, 색 영상 패치, 점유 영상 패치, 부가 정보(Auxiliary Information) 중 적어도 하나를 포함할 수 있다. 여기서, 부가 정보는 포인트 클라우드에 관련된 정보로, 비디오 자체의 속성에 관한 정보, 포인트 클라우드 점들의 속성에 관한 정보, 바운딩박스 속성에 대한 정보, 패치 속성에 대한 부가 패치 정보(auxiliary patch information), 부호화/복호화에 대한 정보 중 적어도 하나를 포함할 수 있다. 여기서, 포인트 클라우드 점들의 속성에 관한 정보는 포인트 클라우드 점들의 개수, 분포 형태, 표준 편차 또는 x,y,z 각각의 좌표에 대해 최대값, 최소값 또는 중간값을 가지는 포인트 클라우드의 점 중 적어도 하나를 포함할 수 있다.
이하, 포인트 클라우드 비디오 데이터를 부호화/복호화는 시스템 및 장치를 설명한다. 여기서, 포인트 클라우드 비디오 데이터는 포인트 클라우드의 2D 영상 자체에 대한 데이터 및/또는 포인트 클라우드와 관련된 정보인 부가 정보를 포함할 수 있다.
도 1는 본 발명의 실시예에 따른 3D 영상인 포인트 클라우드 비디오가 변환된 2D 영상에 대한 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 1를 참조하면, 영상 부호화 장치(105) 및 복호화 장치(100)는 개인용 컴퓨터(PC:Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone) 또는 TV 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화 또는 복호화를 위해 인터 또는 인트라 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리(memory, 120, 125) 또는 프로그램을 실행하여 연산 및 제어하기 위한 프로세서(processor, 110, 115) 등을 구비하는 다양한 장치를 포함할 수 있다.
또한, 영상 부호화 장치(105)에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망 또는 이동통신망 등의 유무선 통신망(Network) 등을 통하거나 케이블 또는 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치(100)로 전송되어 영상 복호화 장치(100)에서 복호화되어 영상으로 복원되고 재생될 수 있다. 또한, 영상 부호화 장치(105)에 의해 비트스트림으로 부호화된 영상은 컴퓨터 판독 가능한 기록 매체를 통하여 영상 부호화 장치(105)에서 영상 복호화 장치(100)로 전달될 수 있다.
전술한 영상 부호화 장치와 영상 복호화 장치는 각각 별도의 장치들일 수 있으나, 구현에 따라서 하나의 영상 부호화/복호화 장치로 만들어질 수 있다. 그 경우, 영상 부호화 장치의 일부 구성은 영상 복호화 장치의 일부 구성과 실질적으로 동일한 기술요소로서 적어도 동일한 구조를 포함하거나 적어도 동일한 기능을 수행하도록 구현될 수 있다.
따라서, 이하의 기술요소들과 이들의 작동 원리 등에 대한 상세 설명에서는 대응 기술요소들의 중복되는 설명을 생략하기로 한다. 또한, 영상 복호화 장치는 영상 부호화 장치에서 수행되는 영상 부호화 방법을 복호화에 적용하는 컴퓨팅 장치에 대응하므로, 이하의 설명에서는 영상 부호화 장치를 중심으로 설명하기로 한다.
컴퓨팅 장치는 영상 부호화 방법 및/또는 영상 복호화 방법을 구현하는 프로그램이나 소프트웨어 모듈을 저장하는 메모리와 메모리에 연결되어 프로그램을 수행하는 프로세서를 포함할 수 있다. 여기서, 영상 부호화 장치는 부호화기로, 영상 복호화 장치는 복호화기로 각각 지칭될 수 있다.
도 2는 본 발명의 일 실시예에 따른 3D 영상인 포인트 클라우드 비디오가 변환된 2D 영상에 대한 영상 부호화 장치에 대한 블록 구성도이다.
도 2를 참조하면, 영상 부호화 장치(20)는 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 부호화 픽쳐 버퍼(240) 및 엔트로피 부호화부(245)를 포함할 수 있다.
예측부(200)는 소프트웨어 모듈인 예측 모듈(prediction module)을 이용하여 구현될 수 있고, 3D 영상인 포인트 클라우드 비디오가 패치 분할되어 변환된 2D 영상 내 부호화할 블록에 대하여 화면내 예측 방식(Intra Prediction)이나 화면간 예측 방식(Inter Prediction)으로 예측 블록을 생성할 수 있다. 예측부(200)는 영상에서 현재 부호화하고자 하는 현재 블록을 예측하여 예측 블록을 생성할 수 있다. 다시 말해, 예측부(200)는 영상에서 부호화하고자 하는 현재 블록의 각 화소의 화소값(pixel value)을 화면내 예측 또는 화면간 예측에 따라 예측하여 생성된 각 화소의 예측 화소값(predicted pixel value)를 갖는 예측 블록을 생성할 수 있다. 또한, 예측부(200)는 화면내 예측 모드 또는 화면간 예측 모드와 같은 예측 모드에 대한 정보와 같은 예측 블록을 생성하는데 필요한 정보를 부호화부로 전달하여 부호화부로 하여금 예측 모드에 대한 정보를 부호화하도록 할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 부/복호화 설정에 따라 정해질 수 있다. 예를 들어, 예측 방법, 예측 모드 등은 예측 단위로 결정되고, 예측의 수행은 변환 단위로 수행될 수 있다.
화면내 예측부에서 예측 방향에 따라 사용하는 수평, 수직 모드 등과 같은 방향성 예측 모드와 참조 화소의 평균, 내삽 등 방법을 사용하는 DC, Planar와 같은 비방향성 예측 모드를 가질 수 있다. 방향성 및 비방향성 모드를 통해 화면내 예측 모드 후보군을 구성할 수 있으며, 35개의 예측 모드(방향성 33개 + 비방향성 2개) 또는 67개의 예측 모드(방향성 65개 + 비방향성 2개), 131개의 예측 모드(방향성 129개 + 비방향성 2개) 등과 같은 다양한 후보 중 하나를 후보군으로 사용할 수 있다.
화면내 예측부는 참조 화소 구성부, 참조 화소 필터부, 참조 화소 보간부, 예측 모드 결정부, 예측 블록 생성부, 예측 모드 부호화부를 포함할 수 있다. 참조 화소 구성부는 현재 블록을 중심으로 이웃한 블록에 속하고 현재 블록과 인접한 화소를 화면내 예측을 위한 참조 화소로 구성할 수 있다. 여기서, 상기 이웃한 블록은, 현재 블록 이전에 부호화된 적어도 하나의 블록일 수 있으며, 현재 블록의 좌측 블록, 우측 블록, 상측 블록, 하측 블록, 좌상측 블록, 좌측 블록 중 최상측 블록 또는 상측 블록 중 최좌측 블록 중 적어도 하나일 수 있다. 부호화 설정에 따라 최인접한 하나의 참조 화소 라인을 참조 화소로 구성하거나 또는 그 외의 인접한 하나의 참조 화소 라인을 참조 화소로 구성할 수 있고, 복수의 참조 화소 라인을 참조 화소로 구성할 수 있다. 만약 참조 화소의 일부가 이용 가능하지 않을 경우 이용가능한 참조 화소를 사용하여 참조 화소를 생성할 수 있고, 전부가 이용 가능하지 않을 경우에는 기-설정된 값(예를 들어, 비트 심도에 의해 표현되는 화소값 범위의 중앙값 등)을 사용하여 참조 화소를 생성할 수 있다.
화면내 예측부의 참조 화소 필터부는 부호화 과정을 통해 남아있는 열화를 줄여주기 위한 목적으로 참조 화소에 필터링을 수행할 수 있다. 이때, 사용되는 필터는 3-tap 필터 [1/4, 1/2, 1/4], 5-tap 필터 [2/16, 3/16, 6/16, 3/16, 2/16] 등과 같은 저역 통과 필터(Low-pass Filter)일 수 있다. 부호화 정보(예를 들어, 블록의 크기, 형태, 예측 모드 등)에 따라 필터링의 적용 유무, 필터링 종류가 결정될 수 있다.
화면내 예측부의 참조 화소 보간부는 예측 모드에 따라 참조 화소의 선형 보간 과정을 통해 소수 단위의 화소를 생성할 수 있으며, 부호화 정보에 따라 적용되는 보간 필터가 결정될 수 있다. 이때, 사용되는 보간 필터는 4-tap 큐빅(Cubic) 필터, 4-tap 가우시안(Gaussian) 필터, 6-tap 위너(Wiener) 필터, 8-tap 칼만(Kalman) 필터 등이 포함될 수 있다. 저역 통과 필터를 수행하는 과정과 별도로 보간이 수행되는 것이 일반적이지만 두 과정에 적용되는 필터를 하나로 통합하여 필터링 과정을 수행할 수도 있다.
화면내 예측부의 예측 모드 결정부는 부호화 비용을 고려하여 예측 모드 후보군 중 적어도 하나의 최적의 예측 모드를 선정할 수 있으며, 예측 블록 생성부는 해당 예측 모드를 사용하여 예측 블록을 생성할 수 있다. 예측 모드 부호화부에서 상기 최적의 예측 모드를 예측값에 기반하여 부호화할 수 있다. 이때, 예측값이 들어맞는 경우와 들어맞지 않는 경우에 따라 적응적으로 예측 정보를 부호화할 수 있다.
화면내 예측부에서 상기 예측값을 MPM(Most Probable Mode)이라고 하며 예측 모드 후보군에 속하는 전체 모드 중에서 일부 모드를 MPM 후보군으로 구성할 수 있다. MPM 후보군은 경우에 따라 K개일 수 있다. 여기서, K는 1~8 범위 내 자연수 일 수 있다. MPM 후보군에는 기-설정된 예측 모드(예를 들어, DC 모드, 수직모드, 수평모드, 수직모드-4, 수직모드+4 등) 또는 공간적으로 인접한 블록(예를 들어, 좌, 상, 좌상, 좌하, 우상, 우하 블록 등)의 예측 모드 등이 포함될 수 있다. 또한, MPM 후보군에 기-포함된 모드로부터 유도되는 모드를 MPM 후보군으로 구성할 수 있다. 여기서, 기-포함된 모드로부터 유도되는 모드는 기-포함된 모드에 자연수(예를 들어, 1, 2, 3, 4)를 더하거나 뺀 값을 가지는 모드일 수 있다(기-포함된 모드 ±1, ±2, ±3, ±4). 여기서, 좌측 인접한 블록의 예측 모드가 포함되는 것은 좌측 인접한 블록 내 최상단 화소의 예측 모드가 포함되는 것을 나타낼 수 있다. 또한, 상측 인접한 블록의 예측 모드가 포함되는 것은 상측 인접한 블록 내 최좌측 화소의 예측 모드가 포함되는 것을 나타낼 수 있다.
MPM 후보군 구성을 위한 예측 모드의 우선 순위가 존재할 수 있다. 상기 우선 순위에 따라 MPM 후보군에 포함되는 순서가 정해질 수 있으며, 상기 우선 순위에 따라 MPM 후보군의 개수(예측 모드 후보군 개수에 따라 정해짐)만큼 채워지면 MPM 후보군 구성을 완료할 수 있다. 이때, 공간적으로 인접한 블록의 예측 모드, MPM 후보군에 먼저 포함된 예측 모드로부터 유도되는 모드 순서로 우선 순위가 정해질 수 있으나, 그 외의 변형 또한 가능하다.
화면간 예측부에서 움직임 예측 방법에 따라 이동 움직임 모델과 이동외 움직임 모델로 구분할 수 있다. 이동 움직임 모델의 경우 평행 이동만을 고려하여 예측을 수행하고, 이동외 움직임 모델의 경우 평행 이동뿐만 아니라 회전, 원근, 줌 인/아웃(Zoom in/out) 등과 같은 움직임을 고려하여 예측을 수행할 수 있다. 단방향 예측을 가정할 때 이동 움직임 모델의 경우 하나의 움직임 벡터가 필요할 수 있지만, 이동 외 움직임 모델의 경우 하나 이상의 움직임 벡터가 필요할 수 있다. 이동 외 움직임 모델의 경우 각 움직임 벡터는 현재 블록의 좌상측 꼭지점, 우상측 꼭지점 등과 같이 현재 블록의 기-설정된 위치에 적용되는 정보일 수 있고, 해당 움직임 벡터를 통해 현재 블록의 예측하고자 하는 영역의 위치를 화소 단위 또는 서브 블록 단위로 획득할 수 있다. 화면간 예측부는 상기 움직임 모델에 따라 후술하는 일부 과정은 공통으로 적용될 수 있고 일부 과정은 개별적으로 적용될 수 있다.
화면간 예측부는 참조 픽쳐 구성부, 움직임 추정부, 움직임 보상부, 움직임 정보 결정부, 움직임 정보 부호화부를 포함할 수 있다. 참조 픽쳐 구성부는 현재 픽쳐를 중심으로 이전 또는 이후에 부호화된 픽쳐를 참조 픽쳐 리스트(L0, L1)에 포함할 수 있다. 상기 참조 픽쳐 리스트에 포함된 참조 픽쳐로부터 예측 블록을 획득할 수 있으며, 부호화 설정에 따라 현재 영상 또한 참조 픽쳐로 구성되어 참조 픽쳐 리스트 중 적어도 한 곳에 포함될 수 있다.
화면간 예측부에서 참조 픽쳐 구성부는 참조 픽쳐 보간부를 포함할 수 있으며, 보간 정밀도에 따라 소수 단위 화소를 위한 보간 과정을 수행할 수 있다. 예를 들어, 휘도 성분의 경우 8-tap DCT 기반의 보간 필터를 적용하고, 색차 성분의 경우 4-tap DCT 기반의 보간 필터를 적용할 수 있다.
화면간 예측부에서 움직임 추정부는 현재 블록과 상관성이 높은 블록을 참조 픽쳐를 통해 탐색하는 과정이며 FBMA(Full search-based block matching algorithm), TSS(Three step search) 등의 다양한 방법이 사용될 수 있고, 움직임 보상부는 움직임 추정 과정을 통해 예측 블록을 획득하는 과정을 의미한다.
화면간 예측부에서 움직임 정보 결정부는 현재 블록의 최적의 움직임 정보를 선정하기 위한 과정이 수행될 수 있으며, 움직임 정보는 스킵 모드(Skip Mode), 병합 모드(Merge Mode), 경쟁 모드(Competition Mode) 등의 움직임 정보 부호화 모드에 의해 부호화될 수 있다. 상기 모드는 움직임 모델에 따라 지원되는 모드가 결합되어 구성될 수 있으며, 스킵 모드(이동), 스킵 모드(이동외), 병합 모드(이동), 병합 모드(이동외), 경쟁 모드(이동), 경쟁 모드(이동외)가 그에 대한 예가 될 수 있다. 부호화 설정에 따라 상기 모드 중 일부가 후보군에 포함될 수 있다.
상기 움직임 정보 부호화 모드는 적어도 하나의 후보 블록에서 현재 블록의 움직임 정보(움직임 벡터, 참조 픽쳐, 예측 방향 등)의 예측값을 획득할 수 있으며, 둘 이상의 후보 블록이 지원되는 경우에는 최적의 후보 선택 정보가 발생할 수 있다. 스킵 모드(잔차 신호 없음)와 병합 모드(잔차 신호 존재)는 상기 예측값을 그대로 현재 블록의 움직임 정보로 사용할 수 있고, 경쟁 모드는 현재 블록의 움직임 정보와 상기 예측값과의 차분치 정보가 발생할 수 있다.
현재 블록의 움직임 정보 예측값을 위한 후보군은 움직임 정보 부호화 모드에 따라 적응적이고 다양한 구성을 가질 수 있다. 현재 블록에 공간적으로 인접한 블록(예를 들어, 좌, 상, 좌상, 우상, 좌하 블록 등)의 움직임 정보가 후보군에 포함될 수 있고, 시간적으로 인접한 블록(예를 들어, 현재 블록과 대응 또는 상응하는 다른 영상 내 블록<중앙>을 포함하여 좌, 우, 상, 하, 좌상, 우상, 좌하, 우하 블록 등)의 움직임 정보가 후보군에 포함될 수 있으며, 공간적 후보와 시간적 후보의 혼합 움직임 정보(예를 들어, 공간적으로 인접한 블록의 움직임 정보와 시간적으로 인접한 블록의 움직임 정보를 통해 평균, 중앙값 등으로 획득되는 정보. 현재 블록 또는 현재 블록의 서브 블록 단위로 움직임 정보를 획득할 수 있음) 등이 후보군에 포함될 수 있다.
움직임 정보 예측값 후보군 구성을 위한 우선 순위가 존재할 수 있다. 상기 우선 순위에 따라 예측값 후보군 구성에 포함되는 순서가 정해질 수 있으며, 상기 우선 순위에 따라 후보군의 개수(움직임 정보 부호화 모드에 따라 정해짐)만큼 채워지면 후보군 구성을 완료할 수 있다. 이때, 공간적으로 인접한 블록의 움직임 정보, 시간적으로 인접한 블록의 움직임 정보, 공간적 후보와 시간적 후보의 혼합 움직임 정보 순서로 우선 순위가 정해질 수 있으나, 그 외의 변형 또한 가능하다.
감산부(205)는 현재 블록에서 예측 블록을 감산하여 잔차 블록(residual block)을 생성할 수 있다. 다시 말해, 감산부(205)는 부호화하고자 하는 현재 블록의 각 화소의 화소값과 예측부를 통해 생성된 예측 블록의 각 화소의 예측 화소값의 차이를 계산하여 블록 형태의 잔차 신호(residual signal)인 잔차 블록을 생성할 수 있다. 또한, 감산부(205)는 후술하는 블록 분할부를 통해 획득된 블록 단위 이외의 단위에 따라 잔차 블록을 생성할 수도 있다.
변환부(210)는 잔차 블록을 주파수 영역으로 변환하여 잔차 블록의 각 화소값을 주파수 계수로 변환한다. 여기서, 변환부(210)는 하다마드 변환(Hadamard Transform), 이산 코사인 변환 기반의 변환(DCT Based Transform), 이산 사인 변환 기반의 변환(DST Based Transform), 카루넨 루베 변환 기반의 변환(KLT Based Transform) 등과 같은 공간축의 화상 신호를 주파수축으로 변환하는 다양한 변환 기법을 이용하여 잔차 신호를 주파수 영역으로 변환할 수 있는데, 주파수 영역으로 변환된 잔차 신호가 주파수 계수가 된다. 변환은 1차원 변환 매트릭스에 의해 변환될 수 있다. 수평, 수직 단위로 각 변환 매트릭스가 적응적으로 사용될 수 있다. 예를 들어, 화면내 예측의 경우, 예측 모드가 수평일 경우에는 수직 방향으로는 DCT 기반의 변환 매트릭스가, 수평 방향으로는 DST 기반의 변환 매트릭스가 사용될 수도 있다. 수직일 경우에는 수평 방향으로는 DCT 기반의 변환 매트릭스가, 수직 방향으로는 DST 기반의 변환 매트릭스가 사용될 수 있다.
양자화부(215)는 변환부(210)에 의해 주파수 영역으로 변환된 주파수 계수를 갖는 잔차 블록을 양자화한다. 여기서, 양자화부(215)는 변환된 잔차 블록을 데드존 균일 경계 양자화(Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization Weighted Matrix) 또는 이를 개량한 양자화 기법 등을 사용하여 양자화할 수 있다. 이는 1개 이상의 양자화 기법을 후보로 둘 수 있으며 부호화 모드, 예측 모드 정보 등에 의해 결정될 수 있다.
역양자화부(220)는 양자화부(215)에 의해 양자화된 잔차 블록을 역 양자화한다. 즉, 역양자화부(220)는 양자화 주파수 계수열을 역양자화하여 주파수 계수를 갖는 잔차 블록을 생성한다.
역변환부(225)는 역양자화부(220)에 의해 역양자화된 잔차 블록을 역변환한다. 즉, 역변환부(225)는 역양자화된 잔차 블록의 주파수 계수들을 역변환하여 화소값을 갖는 잔차 블록, 즉 복원된 잔차 블록을 생성한다. 여기서, 역변환부(225)는 변환부(210)에서 사용한 변환한 방식을 역으로 사용하여 역변환을 수행할 수 있다.
가산부(230)는 예측부(200)에서 예측된 예측 블록과 역변환부(225)에 의해 복원된 잔차 블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록은 부호화 픽쳐 버퍼(240)에 참조 픽쳐(또는 참조 블록)로서 저장되어 현재 블록의 다음 블록이나 향후 다른 블록, 다른 픽쳐를 부호화할 때 참조 픽쳐로써 사용될 수 있다.
필터부(235)는 디블록킹 필터, SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 등의 하나 이상의 후처리 필터 과정을 포함할 수 있다. 디블록킹 필터는 복원된 픽쳐에서 블록 간의 경계에 생긴 블록 왜곡을 제거할 수 있다. ALF는 디블록킹 필터를 통해 블록이 필터링된 후 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. SAO는 디블록킹 필터가 적용된 잔차 블록에 대하여, 화소 단위로 원본 영상과의 오프셋 차이를 복원할 수 있다. 이와 같은 후처리 필터는 복원된 픽쳐 또는 블록에 적용될 수 있다.
부호화 픽쳐 버퍼(240)는 필터부(235)를 통해 복원된 블록 또는 픽쳐를 저장할 수 있다. 부호화 픽쳐 버퍼(240)에 저장된 복원 블록 또는 픽쳐는 화면내 예측 또는 화면간 예측을 수행하는 예측부(200)에 제공될 수 있다.
엔트로피 부호화부(245)는 생성된 양자화 주파수 계수열을 다양한 스캔 방식에 따라 스캔하여 양자화 계수열을 생성하고, 이를 엔트로피 부호화 기법 등을 이용하여 부호화 함으로써 출력한다. 스캔 패턴은 수직, 수평, 지그재그, 대각선, 래스터(raster) 등 다양한 패턴들 중 하나로 설정할 수 있다. 또한, 각 구성부로부터 전달되는 부호화 정보를 포함하는 부호화 데이터를 생성하여 비트스트림으로 출력할 수 있다.
도 3은 본 발명의 일 실시예에 따른 3D 영상인 포인트 클라우드 비디오가 변환된 2D 영상에 대한 영상 복호화 장치에 대한 블록 구성도이다.
도 3을 참조하면, 영상 복호화 장치(30)는 엔트로피 복호화부(305), 예측부(310), 역양자화부(315), 역변환부(320), 가감산기(325), 필터(330) 및 복호화 픽쳐 버퍼(335)를 포함하여 구성될 수 있다.
또한, 예측부(310)는 다시 화면내 예측 모듈 및 화면간 예측 모듈을 포함하여 구성될 수 있다.
먼저, 영상 부호화 장치(20)로부터 전달된 3D 영상인 포인트 클라우드 비디오가 변환된 2D 영상에 대한 영상 비트스트림이 수신되면, 엔트로피 복호화부(305)로 전달될 수 있다.
엔트로피 복호화부(305)는 비트스트림을 복호화하여 양자화된 계수들과 각 구성부로 전달되는 복호화 정보를 포함하는 복호화 데이터를 복호화할 수 있다.
예측부(310)는 엔트로피 복호화부(305)로부터 전달된 데이터들에 기초하여 예측 블록을 생성할 수 있다. 이때, 복호화된 픽쳐 버퍼(335)에 저장된 참조 영상에 기초하여, 디폴트(default) 구성 기법을 이용한 참조 픽쳐 리스트를 구성할 수도 있다.
화면내 예측부는 참조 화소 구성부, 참조 화소 필터부, 참조 화소 보간부, 예측 블록 생성부, 예측 모드 복호화부를 포함할 수 있고, 화면간 예측부는 참조 픽쳐 구성부, 움직임 보상부, 움직임 정보 복호화부를 포함할 수 있으며, 일부는 부호화기와 동일한 과정을 수행하고 일부는 역으로 유도하는 과정을 수행할 수 있다.
역양자화부(315)는 비트스트림으로 제공되어 엔트로피 복호화부(305)에 의해 복호화된 양자화된 변환 계수들을 역양자화할 수 있다.
역변환부(320)는 역 DCT, 역 정수 변환 또는 그와 유사한 개념의 역변환 기법들을 변환 계수에 적용하여 잔차 블록을 생성할 수 있다.
이때, 역양자화부(315), 역변환부(320)는 앞서 설명한 영상 부호화 장치(20)의 변환부(210) 및 양자화부(215)에서 수행한 과정을 역으로 수행하며 다양한 방법으로 구현될 수 있다. 예를 들어, 변환부(210) 및 양자화부(215)와 공유하는 동일한 과정 및 역변환을 사용할 수도 있고, 영상 부호화 장치(20)로부터 변환 및 양자화 과정에 관한 정보(예를 들면, 변환 크기, 변환 모양, 양자화 타입 등)를 이용하여 변환 및 양자화 과정을 역으로 수행할 수 있다.
역양자화 및 역변환 과정을 거친 잔차 블록은 예측부(310)에 의해 도출된 예측 블록과 가산되어 복원된 영상 블록이 생성될 수 있다. 이러한 가산은 가감산기(325)에 의해 이루어질 수 있다.
필터(330)는 복원된 영상 블록에 대하여, 필요에 따라 블로킹(blocking) 현상을 제거하기 위하여 디블로킹 필터를 적용할 수도 있고, 상기 복호화 과정 전 후에 다른 루프 필터들을 비디오 품질을 향상시키기 위해 추가로 사용할 수도 있다.
복원 및 필터를 거친 영상 블록은 복호화 픽쳐 버퍼(335)에 저장될 수 있다.
도면에 도시하지 않았지만 영상 부호화/복호화 장치에 픽쳐 분할부와 블록 분할부를 더 포함할 수 있다.
픽쳐 분할부는 픽쳐를 컬러 공간(YCbCr, RGB 또는 XYZ 등), 타일, 슬라이스, 기본 부호화 단위(또는 최대 부호화 단위) 등과 같은 적어도 하나의 처리 단위로 분할(또는 구획)할 수 있고, 블록 분할부는 기본 부호화 단위를 적어도 하나의 처리 단위(예를 들어, 부호화, 예측, 변환, 양자화, 엔트로피 및 인루프 필터 단위 등)로 분할할 수 있다.
기본 부호화 단위는 가로 방향과 세로 방향으로 픽쳐를 일정한 간격으로 분할하여 획득될 수 있다. 이를 기반으로 타일, 슬라이스 등의 분할이 수행(즉, 타일과 슬라이스와 같은 분할 단위는 기본 부호화 블록의 정수배로 구성. 단, 영상 경계에 위치한 분할 단위에서는 예외적인 경우가 발생할 수 있음)될 수 있으나 이에 한정하지는 않는다.
예를 들어, 픽쳐를 기본 부호화 단위로 구획한 후에 상기 단위로 분할할 수 있거나 또는 픽쳐를 상기 단위로 구획한 후에 기본 부호화 단위로 분할할 수 있다. 본 발명에서는 각 단위의 구획 및 분할 순서가 전자인 경우를 가정하여 설명하나 이에 한정되지 않고, 부/복호화 설정에 따라 후자의 경우 또한 가능할 수 있다. 후자의 경우 기본 부호화 단위의 크기가 분할 단위(타일 등)에 따라 적응적인 경우(즉, 각 단위마다 다른 크기의 기본 부호화 블록이 적용될 수 있음)로의 변형이 가능할 수 있다.
본 발명에서는 픽쳐에서 기본 부호화 단위로 구획하는 경우를 기본 설정(즉, 픽쳐가 타일이나 슬라이스로 분할되지 않거나 또는 픽쳐가 하나의 타일 또는 하나의 슬라이스인 경우)으로 두어 후술하는 예를 설명할 것이나, 위의 경우처럼 각 분할 단위를 먼저 구획하여 획득된 단위에 기반하여 기본 부호화 단위로 분할하는 경우(즉, 각 분할 단위가 기본 부호화 단위의 정수배가 되지 않는 경우)에도 후술하는 다양한 예에서 제안하는 설정 등이 동일하거나 변경 적용되는 것임을 이해하여야 한다.
상기 분할 단위 중 슬라이스의 경우 스캔 패턴에 따라 연속하는 적어도 하나의 블록들의 묶음으로 구성될 수 있고, 타일의 경우 공간적으로 인접한 블록들의 직사각형 형태의 묶음으로 구성될 수 있으며, 그 외의 추가적인 분할 단위가 지원되어 그에 따른 정의에 의해 구성될 수 있다. 특히, 타일의 경우 픽쳐를 체크 무늬와 같이 하나 이상의 가로선과 세로선을 사용하여 분할할 수 있다. 또는, 위와 같이 일괄적인 가로선과 세로선의 분할이 아닌 다양한 크기를 갖는 직사각형들로 구성될 수 있다.
한편, 블록 분할부를 통해 다양한 크기의 부호화 단위(또는 블록)로 분할할 수 있다. 이때, 부호화 단위는 컬러 포맷에 따라 복수개의 부호화 블록으로 구성(예를 들어, 하나의 휘도 부호화 블록 및 둘의 색차 부호화 블록 등)될 수 있으며, 컬러 포맷에 따라 블록의 크기가 결정될 수 있다.
부호화 블록은 M Х M(예를 들어, M은 4, 8, 16, 32, 64, 128 등)과 같은 가변 크기를 가질 수 있다. 또는, 분할 방식(예를 들어, 트리 기반의 분할. 쿼드 트리 분할<Quad Tree. QT>, 바이너리 트리<Binary Tree. BT>, 터너리 트리<Ternary Tree. TT>등)에 따라 부호화 블록은 MХN(예를 들어, M과 N은 4, 8, 16, 32, 64, 128 등)과 같은 가변 크기, 형태를 가질 수 있다. 이때, 부호화 블록은 화면내 예측, 화면간 예측, 변환, 양자화 및 엔트로피 부호화 등의 기초가 되는 단위일 수 있으며, 블록은 각 단위가 결정된 후에 획득될 수 있는 단위라고 가정한다.
블록 분할부는 영상 부호화 장치 및 복호화 장치의 각 구성부에 관계되어 설정될 수 있으며, 이 과정을 통해 블록의 크기와 형태가 정해질 수 있다. 이때, 설정되는 블록은 구성부에 따라 달리 정의될 수 있으며, 예측부의 경우 예측 블록, 변환부의 경우 변환 블록, 양자화부의 경우 양자화 블록 등이 이에 해당할 수 있다. 다만, 이에 한정되지 않고 다른 구성부에 따른 블록 단위가 추가로 정의될 수 있다. 블록의 크기 및 형태는 블록이 갖는 가로, 세로 길이에 의해 정의될 수 있다.
블록 분할부에 의해 획득 가능한 블록은 부/복호화 설정(예를 들어, 블록의 종류, 분할 방식 및 분할 설정 등)에 따라 결정될 수 있다.
도 4는 본 발명의 일 실시예에 따른 트리 기반의 블록 형태를 나타낸 도면이다.
블록 형태는 분할에 사용된 트리의 종류에 따라 결정될 수 있다. 도 4를 참조하면, 블록 형태는 분할이 수행되지 않은 하나의 2N Х 2N, 바이너리 트리 기반의 가로 분할이 수행된 두 개의 2N Х N, 바이너리 트리 기반의 세로 분할이 수행된 두 개의 N Х 2N 및 쿼드 트리 기반의 분할이 수행된 4개의 N Х N 등이 존재할 수 있으나, 이에 한정되는 것은 아니다.
보다 상세히 설명하면, 쿼드 트리 기반의 분할이 수행된 경우, 획득 가능한 후보 블록은 4a 및 4d일 수 있으며, 바이너리 트리 기반의 분할이 수행된 경우, 획득 가능한 후보 블록은 4a, 4b 및 4c일 수 있다.
쿼드 트리 기반의 분할이 수행된 경우에는 하나의 분할 플래그가 지원될 수 있다. 여기서, 하나의 분할 플래그는 분할 여부 플래그일 수 있다. 다시 말해, 쿼드 트리의 분할 플래그가 0인 경우 분할을 수행하지 않으며 4a의 블록을 획득할 수 있고, 1인 경우 분할을 수행하여 4d의 블록을 획득할 수 있다.
바이너리 트리 기반의 분할이 수행된 경우, 복수의 분할 플래그가 지원될 수 있다. 여기서, 복수의 분할 플래그 중 하나는 분할 여부 플래그일 수 있으며, 다른 하나는 분할 방향 플래그일 수 있다. 다시 말해, 바이너리 트리의 분할 플래그 중 분할 여부 플래그가 0인 경우 분할을 수행하지 않으며 4a의 블록을 획득할 수 있고, 1인 경우, 분할 방향 플래그에 따라 4b 또는 4c의 블록을 획득할 수 있다.
도 5는 본 발명의 일 실시예에 따른 다양한 블록 형태를 나타낸 도면이다.
도 5를 참조하면, 블록(4N Х 4N)은 분할 설정 및 분할 방법에 따라 다양한 형태로 분할될 수 있으며, 도 5에 도시하지 않은 다른 형태로 분할될 수도 있다.
일 실시예로, 트리 기반의 비대칭 분할이 허용될 수 있다. 예를 들어, 바이너리 트리 분할의 경우, 블록(4N Х 4N)은 4N Х 2N(5b) 및 2N Х 4N(5c)와 같은 대칭 블록이 허용될 수 있으며, 4N Х 3N/4N Х N(5d), 4N Х N/4N Х 3N(5e), 3N Х 4N/N Х 4N(5f) 및 N Х 4N/3N Х 4N(5g)와 같은 비대칭 블록이 허용될 수도 있다. 분할 플래그에서 비대칭 분할을 허용하는 플래그가 분할 설정 등에 따라 명시적 또는 묵시적으로 비활성화될 경우, 후보 블록은 분할 방향 플래그에 따라 5b 또는 5c일 수 있고, 비대칭 분할을 허용하는 플래그가 활성화될 경우, 후보 블록은 분할 방향 플래그에 따라 5b, 5d 및 5e 또는 5c, 5f 및 5g일 수 있다. 여기서, 비대칭 분할에 따른 5d 내지 5g는 좌우 또는 상하의 길이 비율이 1:3 또는 3:1인 경우를 나타내고 있으나, 1:2, 1:4, 2:3, 2:4 및 3:4 등의 경우도 가능하므로, 이에 한정되는 것은 아니다.
바이너리 트리의 분할 플래그는 분할 여부 플래그 및 분할 방향 플래그에 추가적으로 분할 형태 플래그가 발생될 수 있다. 여기서, 분할 형태 플래그는 대칭 또는 비대칭을 나타낼 수 있으며, 분할 형태 플래그가 비대칭을 나타내는 경우, 분할 비율을 나타내는 플래그가 발생될 수 있다. 분할 비율을 나타내는 플래그는 기-설정된 후보군에 따라 할당된 인덱스를 나타낼 수 있다. 예를 들어, 1:3 또는 3:1의 분할 비율이 후보군으로 지원되는 경우, 1비트의 플래그를 통해 분할 비율이 선택될 수 있다.
또한, 바이너리 트리의 분할 플래그는 분할 여부 플래그 및 분할 방향 플래그에 추가적으로 분할 비율을 나타내는 플래그가 발생될 수 있다. 이러한 경우, 분할 비율에 대한 후보에는 1:1의 대칭 비율을 가지는 후보가 포함될 수 있다.
본 발명에서 바이너리 트리는 추가적인 분할 형태 플래그로 구분하는 경우를 가정하여 설명하며, 특별한 설명이 없는 한 바이너리 트리는 대칭 바이너리 트리를 의미할 수 있다.
다른 실시예로, 트리 기반의 분할에 추가적인 트리 분할이 허용될 수 있다. 예를 들어, 터너리 트리(Ternary Tree), 쿼드 타입 트리(Quad Type Tree), 옥타 트리(Octa Tree) 등의 분할이 허용될 수 있으며, 이를 통해 n개의 분할 블록(n은 정수)이 획득될 수 있다. 다시 말해, 터너리 트리의 경우, 3개의 분할 블록이, 쿼드 타입 트리의 경우 4개의 분할 블록이, 옥타 트리의 경우 8개의 블록 분할이 획득될 수 있다.
터너리 트리의 경우 지원되는 블록은 4N Х 2N/4N Х N_2(5h), 4N Х N/4N Х 2N/4N Х N(5i), 4N Х N_2/4N Х 2N(5j), 2N Х 4N/N Х 4N_2(5k), N Х 4N/2N Х 4N/N Х 4N(5l) 및 N Х 4N_2/2N Х 4N(5m)일 수 있으며, 쿼드 타입 트리의 경우 지원되는 블록은 2N Х 2N(5n), 4N Х N(5o) 및 N Х 4N(5p)일 수 있고, 옥타 트리의 경우 지원되는 블록은 N Х N(5q)일 수 있다.
트리 기반의 분할의 지원 여부는 부/복호화 설정에 따라 묵시적으로 결정되거나 또는 명시적으로 관련 정보가 생성될 수 있다. 또한, 부/복호화 설정에 따라 단독으로 사용되거나 또는 바이너리 트리, 터너리 트리 및 쿼드 트리 등의 분할이 혼합 사용될 수 있다.
예를 들어, 바이너리 트리의 경우 분할 방향에 따라 5b 또는 5c와 같은 블록이 지원될 수 있고, 바이너리 트리의 사용 범위와 터너리 트리의 사용 범위가 일부 중복되는 것으로 가정하면, 바이너리 트리와 터너리 트리가 혼합 사용되는 경우 5b, 5c, 5i 및 5l와 같은 블록이 지원될 수 있다. 기존 트리 외의 추가 분할을 허용하는 플래그가 부/복호화 설정에 따라 명시적 또는 묵시적으로 비활성화될 경우 획득 가능한 후보 블록은 5b 또는 5c일 수 있고, 활성화될 경우 획득 가능한 후보 블록은 분할 방향에 따라 5b, 5i(또는 5b, 5h, 5i, 5j)이거나 5c, 5l(또는 5c, 5k, 5l, 5m)일 수 있다.
여기서, 터너리 트리 분할의 좌/중/우 또는 상/중/하의 길이 비율은 2:1:1, 1:2:1 또는 1:1:2 인 경우를 나타내고 있으나, 부호화 설정에 따라 그 외의 비율도 가능하므로, 이에 한정되는 것은 아니다.
터너리 트리 기반의 분할이 수행된 경우, 복수의 분할 플래그가 지원될 수 있다. 여기서, 복수의 분할 플래그 중 하나는 분할 여부 플래그일 수 있으며, 다른 하나는 분할 방향 플래그 일 수 있으며, 분할 비율 플래그를 더 포함할 수 있다. 이는 바이너리 트리의 분할 플래그와 유사할 수 있으며, 본 발명에서는 분할 방향에 따라 지원되는 비율이 1:2:1인 하나의 후보가 존재하여 분할 비율 플래그가 생략되는 경우를 가정한다.
도 6은 포인트 클라우드 비디오 데이터의 송/수신 시스템을 나타낸 도면이다.
본 발명에 있어서, 포인트 클라우드 비디오(Point Cloud Video)은, 포인트 클라우드 영상/프레임/픽쳐를 포함할 수 있으며, 포인트 클라우드 비디오는 포인트 클라우드 영상/프레임/픽쳐와 혼용되어 사용될 수 있다.
본 발명의 포인트 클라우드 비디오 데이터의 송/수신 시스템은, VR(Virtual Reality, 가상현실), AR(Augmented Reality, 증강현실), MR(Mixed Reality, 혼합현실), 및 자율 주행 서비스 등의 다양한 서비스를 제공하기 위한 포인트 클라우드 비디오 데이터를 송/수신할 수 있다. 여기서, 포인트 클라우드 비디오 데이터는 포인트 클라우드의 2D 영상 자체에 대한 데이터는 물론 포인트 클라우드와 관련된 정보인 부가 정보를 포함할 수 있다.
포인트 클라우드 비디오 데이터의 송/수신 시스템은 포인트 클라우드 데이터 전송 장치(Point Cloud Transmission device, 600) 및 포인트 클라우드 데이터 수신 장치(Point Cloud Receptive device, 601)으로 구성될 수 있다.
포인트 클라우드 데이터 전송 장치(Point Cloud Transmission device, 600)는, 포인트 클라우드 비디오 획득부(Point Cloud Video Acquisition, 6001), 포인트 클라우드 비디오 인코더(Point Cloud Video Encoder, 6002), 파일/세그먼트 인캡슐레이션부(File/Segment Encapsulation module, 6003) 또는 전송부(Transmitter or Communication module, 6004) 중 적어도 하나를 포함할 수 있다.
포인트 클라우드 비디오 획득부(Point Cloud Video Acquisition, 6001)는, 포인트 클라우드 비디오의 캡쳐, 합성 또는 생성 과정 등을 통해 포인트 클라우드 비디오 데이터를 획득할 수 있다. 획득 과정에서 포인트 클라우드 영상 자체의 데이터 외에 포인트 클라우드와 관련된 정보인 부가 정보가 획득될 수 있다. 또한, 부가 정보로 포인트 클라우드의 점들에 대한 3D 위치(x, y, z), 속성 (color, reflectance, transparency 등) 데이터, 예를 들어, PLY(Polygon File format or the Stanford Triangle format) 파일 등이 획득될 수 있다. 이때, 포인트 클라우드 비디오가 여러 개의 프레임을 가지는 경우, 각 프레임에 대해서 하나의 파일이 획득되거나 일부 또는 전부의 프레임들 간의 공유 파일이 획득될 수 있으므로, 하나 이상의 파일들이 획득될 수 있다.
포인트 클라우드 비디오 인코더(Point Cloud Video Encoder, 6002)는, 획득한 포인트 클라우드 비디오 데이터에 대한 Video-based Point Cloud Compression (V-PCC) 절차를 수행할 수 있다. 구체적으로, 3D 형태의 포인트 클라우드 비디오를 패치 분할하여 2D 형태로 변환한 후, 영상 자체 데이터 및/또는 부가 정보에 대한 예측, 변환, 양자화, 엔트로피 코딩 등의 일련의 절차를 수행하여 포인트 클라우드 비디오 데이터를 부호화할 수 있다. 즉, 포인트 클라우드 비디오 인코더는 도 2의 2D 영상에 대한 영상 부호화 장치를 포함하여 포인트 클라우드 비디오 데이터의 부호화를 수행할 수 있다. 구체적으로, 포인트 클라우드 비디오 인코더는 포인트 클라우드 비디오를 기하 영상 패치, 색 영상 패치, 점유 영상 패치로 나누고, 부가 정보(Auxiliary Information)와 함께 부호화할 수 있다.
파일/세그먼트 인캡슐레이션부(File/Segment Encapsulation module, 6003)는, 부호화된 포인트 클라우드 비디오 데이터를 파일 및/또는 세그먼트 형태로 인캡슐레이션(Encapsulation)할 수 있다. 구체적으로, 파일/세그먼트 인캡슐레이션부(6003)는 해당 데이터들을 ISOBMFF 등의 파일 포맷으로 인캡슐레이션하거나, 기타 DASH 세그먼트 등의 형태로 처리할 수 있다. 포인트 클라우드 비디오 데이터에 포함된 부가 정보는 ISOBMFF 등의 파일 포맷 상의 다양한 레벨의 박스(box)에 포함되거나, 파일 내에서 별도의 트랙 내의 데이터로 포함되어 인캡슐레이션될 수 있다. 부가 정보는 부가 정보 처리부 등으로부터 전달받은 것일 수 있고, 부가 정보 처리부는 포인트 클라우드 비디오 인코더에 포함되거나 별도의 컴포넌트/모듈로 구성될 수 있다.
전송부(Transmitter, 6004)는, 파일 및/또는 세그먼트 형태로 인캡슐레이션된 포인트 클라우드 비디오 데이터를 디지털 저장매체 및/또는 네트워크를 통하여 포인트 클라우드 데이터 수신 장치(601)의 수신부로 송신할 수 있다. 여기서, 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다. 또한, 전송부(6004)는 포인트 클라우드 데이터 수신 장치의 수신부(6014)과 피드백 정보(Feedback information)를 송/수신할 수 있다.
포인트 클라우드 데이터 수신 장치(Point Cloud Reception device, 601)는, 수신부(Receiver, 6014), 파일/세그먼트 디캡슐레이션부(File/Segment Decapsulation module 6013), 포인트 클라우드 비디오 디코더(Point Cloud Video Decoder, 6012) 또는 렌더러(Renderer, 6011) 중 적어도 하나를 포함할 수 있다.
수신부(Receiver, 6014)는, 디지털 저장매체 및/또는 네트워크를 통하여, 파일 및/또는 세그먼트 형태로 인캡슐레이션된 포인트 클라우드 비디오 데이터를 수신할 수 있다. 또한, 수신부(6014)는 포인트 클라우드 데이터 전송 장치의 전송부(6004)와 피드백 정보(Feedback Information)를 송/수신할 수 있다.
파일/세그먼트 디캡슐레이션부(File/Segment Decapsulation module, 6013)는, 포인트 클라우드 비디오 데이터를 포함하는 파일 및/또는 세그먼트를 디캡슐레이션(Decapsulation)할 수 있다.
파일/세그먼트 디캡슐레이션부(6013)는 ISOBMFF 등의 파일 포맷으로 인캡슐레이션되거나 기타 DASH 세그먼트 등의 형태로 처리된 데이터를 디캡슐레이션할 수 있다. 상기 디캡슐레이션을 통해, 포인트 클라우드 비디오 데이터 비트스트림을 획득할 수 있다. 여기서, 포인트 클라우드 비디오 데이터 비트스트림은 영상 자체에 대한 비트스트림(영상 비트스트림) 외에 부가 정보에 대한 부가 정보 비트스트림을 포함할 수 있다. 획득한 영상 비트스트림은, 포인트 클라우드 비디오 디코더(6012)로, 획득한 부가 정보 비트스트림은 부가 정보 처리부로 전달될 수 있다. 여기서, 부가 정보 처리부는 포인트 클라우드 비디오 디코더에 포함되거나 별도의 컴포넌트/모듈로 구성될 수 있다. 여기서, 부가 정보는 포인트 클라우드 비디오에 관련된 정보로 각종 절차(디캡슐레이션, 복호화, 랜더링 등)에서 사용될 수 있다.
포인트 클라우드 비디오 디코더(Point Cloud Decoder, 6012)는, 수신된 포인트 클라우드 비디오의 데이터를 복호화할 수 있다. 포인트 클라우드 비디오 디코더(6012)은, 포인트 클라우드 비디오 인코더(6002) 절차의 역으로 수행하여 포인트 클라우드 비디오 데이터를 복호화할 수 있다. 구체적으로, 2D 형태의 영상 자체 데이터 및/또는 부가 정보에 대해 엔트로피 디코딩, 역양자화, 역변환, 예측 등의 일련의 절차를 수행한 후, 3D 형태의 포인트 클라우드 비디오로 변환하여 복호화를 수행할 수 있다. 즉, 포인트 클라우드 비디오 디코더는 도 3의 2D 영상에 대한 영상 복호화 장치를 포함하여 포인트 클라우드 비디오 데이터의 복호화를 수행할 수 있다. 포인트 클라우드 비디오 디코더는 포인트 클라우드 비디오를 기하(Geometry) 영상 패치, 색(Color Attribute) 영상 패치, 점유(Occupancy) 영상 패치로 나누고, 부가 정보(Auxiliary Information)와 함께 복호화할 수 있다.
렌더러(Renderer, 6011)는, 복호화된 포인트 클라우드 비디오 데이터를 렌더링한다.
도 7는 포인트 클라우드 비디오 인코더의 구조를 나타낸 도면이다.
포인트 클라우드 비디오 인코더는, 도 7과 같이, 3D 영상인 포인트 클라우드 비디오를 2D 비디오 코덱으로 압축하기 위해서, 3D 포인트 클라우드 비디오를 패치로 분할할 수 있다. 여기서, 패치는 기하 영상 패치, 색 영상 패치, 또는 점유 영상 패치 중 적어도 하나를 포함할 수 있다. 이후, 각각의 패치들 및 부가 정보를 부호화하여 패치들의 비트스트림(영상 비트스트림) 및 부가 정보의 비트스트림(부가 정보의 비트스트림)을 획득할 수 있다. 상기 영상 비트스트림 및 부가 정보 비트스트림은 하나의 비트스트림으로 압축되어 송신될 수 있다.
부가 정보는 포인트 클라우드에 관련된 정보이며, 부가 패치 정보를 포함할 수 있다. 부가 패치 정보(Auxiliary Patch Information)는 패치들의 패킹 위치 및 법선 벡터 등의 정보를 포함할 수 있다.
기하 영상 패치는, 포인트 클라우드의 위치 정보를 저장하는 패치이고, 색 영상 패치는 포인트 클라우드의 색 정보를 저장하는 패치일 수 있다.
기하 영상 패치 및 색 영상 패치는, 가까운 점들을 모아서 만든 근층(Near Layer) 영상과 상대적으로 멀리 위치한 점들을 모아서 만든 원층(Far Layer)영상으로 구성되어 처리될 수 있다. 여기서, 근층 영상 및 원층 영상은 한 쌍을 이루어 하나의 프레임을 형성할 수 있다. 여기서, 원층 영상은 근층 영상을 참조하여 부호화/복호화가 수행되고, 근층 영상은 시간 순서상 앞에 있는 근층 영상을 참조하여 부호화/복호화가 수행될 수 있다.
점유 영상 패치는 기하 영상 패치와 색 영상 패치의 점유 정보를 이진화된 영상으로 표현된 것입니다. 구체적으로, 점유 영상 패치의 화소의 값이 0이면 해당 화소와 연결되는 3차원 공간 상의 포인트 클라우드의 점은 점유되지 않은 점임을 나타내고, 점유 영상 패치의 화소의 값이 1이면 해당 화소와 연결되는 3차원 공간 상의 포인트 클라우드의 점은 점유된 점임을 나타낼 수 있다. 다만, 이는 일 실시예로, 상기 화소 값 0이 상기 점유된 점임을 나타내고, 상기 화소 값 1이 상기 점유되지 않은 점을 나타낼 수도 있다.
위의 예와 같이, 점유 영상 패치의 하나의 화소는 기하 영상 패치와 색 영상 패치의 화소와 1대1 대응 관계를 가질 수 있다. 이때, 점유 정보는 1x1의 해상도로 표현되었다고 할 수 있다. 이와 달리, 점유 정보는 2x2, 4x4, 8x8 등의 다양한 해상도로도 표현될 수 있다. 예를 들어, 점유 영상 패치의 하나의 화소가 기하 영상 패치와 색 영상 패치의 2x2 블록과 대응되면 점유 정보가 2x2 해상도로 표현된 것이고, 점유 영상 패치의 하나의 화소가 기하 영상 패치와 색 영상 패치의 4x4 블록과 대응되면 점유 정보가 4x4 해상도로 표현된 것일 수 있다. V-PCC에서는 무손실 또는 고화질의 압축에서 1x1의 해상도를 사용하고, 손실 압축에서 2x2, 4x4 등의 해상도를 사용하고 있다.
도 7을 참조하면, 분할된 패치들은 각각 Video Compression 단계에서 비디오 압축 코덱에 의해 부호화될 수 있다. 즉, 각각의 Video Compression 단계에서 2D 형태의 영상 자체 데이터 및 부가 정보가 본 발명의 부호화 장치를 통해 부호화될 수 있다.
도 8은 포인트 클라우드 비디오 디코더의 구조를 나타낸 도면이다.
포인트 클라우드 비디오 디코더는, 도 8과 같은 구조를 통해, 부호화된 비트스트림을 이용하여 포인트 클라우드 비디오 데이터를 복호화할 수 있다.
포인트 클라우드 비디오 디코더는, 하나로 압축된 비트스트림으로부터 영상 비트스트림 및 부가 정보 비트스트림을 획득할 수 있다. 또한, 영상 비트스트림으로부터 기하 영상 패치, 색 영상 패치 또는 점유 영상 패치 중 적어도 하나를 획득하고, 부가 정보 비트스트림으로부터 부가 정보를 획득할 수 있다.
포인트 클라우드 비디오 디코더는, 획득한 패치들 및 부가 정보를 활용하여, 포인트 클라우드 비디오를 재구성 할 수 있다. 구체적으로, 기하 영상 패치 및 색 영상 패치의 현재 화소 또는 현재 블록의 점유 정보를 점유 영상 패치를 기초로 확인하고, 점유하고 있는 것으로 확인되는 경우 기하 영상 패치의 위치 정보 및 색 영상 패치의 색상 정보를 활용하여 포인트 클라우드 비디오를 재구성할 수 있다.
포인트 클라우드 비디오의 부호화/복호화가 패치로 분할되어 수행되었는 바, 재구성된 비디오의 패치 경계에 해당하는 부분에 불연속적인 내용을 포함할 수 있다. 이에 따라, Smoothing 단계에서 필터링을 통해 이를 수정할 수 있다.
구체적으로, Smoothing 단계는, 재구성된 포인트 클라우드 비디오의 포인트 클라우드의 점(=포인트)의 위치 정보를 주변 포인트의 위치 정보를 참조하여 수정하는 기하 스무딩(Geometry Smoothing), 기하 스무딩 과정을 진행 한 후 포인트의 색상과 같은 속성 정보를 주변 포인트의 속성 정보를 참조하여 수정하는 속성 스무딩(Attribute Smoothing)을 포함할 수 있습니다.
도 9는 그리드 스무딩(Grid Smoothing) 과정의 순서도를 도시한 도면이다.
V-PCC에서는, 도 9와 같이, 재구성된 포인트 클라우드 비디오에 대한 그리드 스무딩(Grid Smoothing) 과정이 수행될 수 있다.
그리드 스무딩 과정에서는, 그리드 내 셀(cell)에 색인을 다는 그리드 인덱스(Grid index) 과정이 수행될 수 있다. 여기서, 인덱싱된 셀은, 인덱싱된 셀의 cellID와 그리드의 cellIndex 값과 비교하여, 경계 셀(boundary cell) 및 경계 셀이 아닌 셀로 구분될 수 있다.
또한, 그리드 스무딩 과정에서는 경계 셀(boundary cells)을 위한 그리드 중심(grid centroid, grid center)가 산출될 수 있다. 다만, TMC2(버전 12.0)에서의 그리드 인덱스(Grid index) 과정은 각 처리 루프에서 소프트웨어의 구현이 기존 소프트웨어와 상이한 특징이 있다. 그 구체적인 실시예는 도 10 및 도 11에 도시되어 있다.
그리드 스무딩에 있어서, 포인트 클라우드의 점들은 3차원의 그리드로 분할될 수 있다(901). 3차원의 그리드는 x, y, z 좌표로 표현될 수 있으며, 하나의 포인트 클라우드 비디오에 크기가 다양한 그리드들이 사용되거나 통일된 크기의 하나의 그리드가 사용될 수 있다. 또한, 이하 3차원 그리드를 중심으로 설명하나, 3차원의 그리드 대신에 2차원 그리드가 사용될 수도 있다. 여기서, 2차원 그리드는 x,y 좌표, y,z 좌표, 또는 x,z 좌표와 같이 2개의 좌표로 표현될 수 있다.
그리드 스무딩에 있어서, 포인트 클라우드 점들 중 경계 점(boundary point)에 해당하는 점들이 식별될 수 있다(902). 여기서, 경계 점은 포인트 클라우드 점들 중 포인트 클라우드의 점들의 부/복호화에 이용되는 패치의 경계에 속하는 점일 수 있다. 또는, 부/복호화가 수행되는 단위나 비트스트림을 통해 전송되는 단위의 경계의 포인트 클라우드의 점일 수 있다. 또는, 바운딩박스(boundingbox)의 경계에 인접하거나 경계에서 가까운 포인트 클라우드의 점일 수 있다. 여기서, 경계에 가까운 포인트 클라우드의 점은 경계로부터 기준 값 이하의 범위 내에 있는 포인트 클라우드의 점일 수 있다. 여기서, 상기 기준 값은 픽셀 단위 또는 블록 단위로 표현될 수 있으며, 기-고정된 값이거나 비트스트림으로부터 시그날링되는 값일 수 있다.
그리드 스무딩에 있어서, 그리드의 셀(cell)들 중 경계 셀(boundary cell)이 획득될 수 있다(903). 즉, 그리드는 적어도 하나의 셀을 포함하며, 그리드 내 셀을 경계 셀 및 경계 셀이 아닌 셀로 구분될 수 있다. 그리드의 경계 셀은 그리드의 경계에 인접하거나 경계에 가까운 셀일 수 있다. 여기서, 경계에 가까운 셀은 경계로부터 기준 값 이하의 범위 내에 있는 셀일 수 있다. 여기서, 상기 기준 값은 픽셀 단위 또는 블록의 정수 단위로 표현될 수 있으며, 기-고정된 값이거나 비트스트림으로부터 시그날링되는 값일 수 있다. 상기 경계 셀은 포인트 클라우드의 경계 점을 기초로 획득될 수 있다. 일 예로, 경계 셀은 경계 점과 일치할 수 있다. 다른 예로, 경계 셀은 경계 점을 x축, y축 또는 z 축 중 적어도 하나로 shift한 것을 기초로 획득될 수 있다. 다른 예로, 경계 셀은 그리드 크기와 바운딩박스의 크기를 기초로 획득 될 수 있다. 이 경우, 바운딩박스 크기를 그리드 크기로 나눈 값 또는 비율을 이용하여, 경계 점을 기초로 경계 셀을 획득할 수 있다.
여기서, 바운딩박스(boundingbox)는, V-PCC를 통해 광범위한 영역의 데이터를 가진 포인트 클라우드 비디오를 분할하여 압축하기 위해, 상기 포인트 클라우드 비디오를 분할한 압축이 수행되는 단위일 수 있다.
또한, 바운딩박스는 포인트 클라우드의 점들을 모두 포함할 수 있는 정육면체로 구성될 수 있다. 또는, 포인트 클라우드 비디오의 일부 부분의 점들을 포함할 수 있는 정육면체로 구성될 수 있다. 바운딩박스의 x,y,z 축의 모서리의 길이는 상기 바운딩박스에 포함된 포인트 클라우드의 점들의 x,y,z 축에 대한 최소값과 최대값의 차이로 결정될 수 있다. 구체적으로 아래와 같은 수학식 1에 의해 계산될 수 있습니다.
[수학식 1]
boundingBox.x_range = x_pmax - x_pmin
boundingBox.y_range = y_pmax - y_pmin
boundingBox.z_range = z_pmax - z_pmin
그리드 스무딩에 있어서, 메모리 접근 위반을 방지하기 위해, 그리드의 셀의 cellID가 그리드의 cellIndex 크기 범위 내 인지 확인할 수 있다(904). 그리드 셀의 cellID가 그리드의 cellIndex 크기 범위 내 인지 여부에 따라, 해당 그리드 셀과 연결된 포인트 클라우드가 다음 경계 셀을 위한 그리드 중심 산출하는 단계에서 제외되는지가 결정될 수 있다. 구체적으로, 그리드 셀의 cellID가 그리드의 cellIndex 크기 범위를 벗어날 경우(cellIndex 범위의 값보다 cellID 값이 클 경우), 해당 그리드 셀과 연결된 포인트 클라우드 점은 경계 셀을 위한 그리드 중심 산출 과정에서 제외될 수 있다. 이에 대한 구체적인 내용은 후술한다.
그리드 스무딩에 있어서, 경계 셀을 위한 그리드 중심(grid centroid, grid center)가 산출될 수 있다(905). 상기 산출은 addGridCenter(=addGridCentroid) 함수에 의해 수행될 수 있다. 경계 셀을 위한 그리드 중심이 산출되는 과정에 대한 일 실시예는 도 11에 도시되어 있다. 그리드 중심 산출은 그리드와 연결된 포인트 클라우드 점을 이용하여 수행될 수 있다. 다만, 포인트 클라우드의 점이 그리드 범위 내에 있지 않는 경우, 해당 포인트 클라우드 점은 그리드 중심 산출 과정에서 제외될 수 있다. 이에 대한 구체적인 내용은 후술한다.
그리드 스무딩에 있어서, 식별된 경계 셀 및 산출된 그리드 중심을 기초로, 상기 그리드 중심에 대해 삼선형 필터링(Tri-Linear Filtering)이 적용될 수 있다(906). 여기서, 상기 삼선형 필터링의 계수, 종류 등의 정보는 부호화/복호화 장치에 고정된 것이거나, 비트스트림으로부터 시그널링될 수 있다.
그리드 스무딩에 있어서, 쿼리 포인트(query point) 값과 필터링의 결과 값의 비교 결과에 따라, 쿼리 포인트 값은 필터링 결과 값을 기초로 대체될 수 있다(907). 구체적으로, 쿼리 포인트 값과 필터링의 결과 값의 차이가 기준치를 초과하는 경우, 쿼리 포인트 값은 필터링 결과 값을 기초로 대체될 수 있다. 이와 달리, 쿼리 포인트 값과 필터링의 결과 값의 차이가 기준치 이하인 경우, 쿼리 포인트 값은 필터링 결과 값을 기초로 대체되지 않을 수 있다. 여기서, 쿼리 포인트는 현재 그리드 스무딩을 수행하는 현재 그리드의 경계 셀 또는 상기 경계 셀과 연결된 포인트 클라우드의 점일 수 있다.
도 10은 포인트 클라우드의 경계 점을 식별하는 구체적인 과정을 나태내는 도면이고, 도 11은 경계 셀을 위한 그리드 중심을 산출하는 구체적인 과정을 나타내는 도면이다.
도 10을 참조하면, 포인트 클라우드의 경계 점이 식별될 수 있다. 여기서, 포인트 클라우드는 바운딩박스에 의해 구분된 포인트 클라우드일 수 있다. 구체적으로, 포인트 클라우드의 점이 포인트 클라우드의 범위 또는 포인트 클라우드의 바운딩박스의 범위를 벗어나는 경우, continue 함수를 통해 해당 포인트 클라우드의 경계 점을 식별하는 과정은 스킵된다. 그렇지 않은 경우, 해당 포인트 클라우드 점에 대한 포인트 클라우드의 경계 점을 식별하는 과정은 수행될 수 있다.
본 과정에서 사용되는 cellIndex의 크기는 그리드의 개수(numOfGrid)에 의해 조정될 수 있으며, numOfGrid는 아래 수학식 2에 의해 계산될 수 있다.
[수학식 2]
numOfGrid = (boundingBox.x_range/grid_size) * (boundingBox.y_range/grid_size) * (boundingBox.z_range/grid_size)
즉, numOfGrid는 바운딩박스의 각 x, y, z 좌표 범위를 그리드의 사이즈를 나눈 값을 기초로 획득될 수 있다.
특정 조건에서는 cellID가 도 11의 경계 셀을 위한 그리드 중심을 계산하는 과정에서 cellIndex의 크기를 초과될 수 있다. cellID가 cellIndex의 크기를 초과할 경우, 소프트웨어는 메모리 접근 위반이 발생할 수 있다.
예를 들어, boundary에서 가장 큰 Z축의 값을 가진 포인트 클라우드 점의 경우, 이 포인트 클라우드 점에서는 Z축의 값이 480이고, w는 다음 수학식 3에 의해 60이 될 수 있다. 따라서, 도 11의 cellID는 cellIndex의 크기보다 큰 값이 나오게 될 수 있다.
[수학식 3]
maxSize = ( std::max )( ( std::max )( boundingBox.max_.x(), boundingBox.max_.y() ), boundingBox.max_.z() );
w = (maxSize+(params.gridSize_)-1) / ((params.gridSize_));
도 12은 addGridCenter 함수를 호출하기 전에 cellID 탐지하는 구조를 나타내는 도면이다.
그리드의 셀의 cellID가 그리드의 cellIndex의 크기를 초과한 경우 등과 같은 경우 소프트웨어의 메모리 접근 위반이 발생할 수 있다. 이에 따라, 상기 메모리 접근 위반을 방지하기 위해 그리드의 셀의 cellID는 그리드의 cellIndex 크기 내로 제한할 수 있다.
본 발명에 있어서, 메모리 접근 위반을 방지하기 위해, addGridCenter 함수를 호출하기 전 cellID를 탐지하는 구조를 가질 수 있다. 상기 cellID를 탐지하는 구조는, 그리드의 cellID가 그리드의 cellIndex 범위 내에 있는 지 여부를 탐지하여, 탐지 결과에 따라 해당 cellID를 가지는 포인트 클라우드의 점에 대한 addGridCenter 함수의 수행(또는 스킵) 여부를 결정하는 것일 수 있다.
일 예로, 도 12에서는 경계 셀을 위한 그리드 중심을 산출하는 과정에서 addGridCenter 함수 호출 전 cellID의 range detection을 통해 cellID를 탐지하는 구조를 제시하고 있다.
cellID의 range detection에 의해 그리드의 cellID가 그리드 cellIndex 범위 내에 있는지 결정될 수 있다. 이에 따라, 포인트 클라우드의 점과 연결된 그리드 셀의 cellID가 cellIndex 범위 바깥에 있는 경우(= 해당 셀의 cellID 값이 그리드의 cellIndex 범위 값보다 큰 경우), 경계 셀에 대한 그리드 중심 산출 과정에서, 상기 그리드의 cellID를 가진 그리드 셀과 연결된 포인트 클라우드 점은 제외될 수 있다. 다시 말해, 상기 그리드의 cellID를 가진 그리드 셀과 연결된 포인트 클라우드 점에 대한 addGridCenter함수는 스킵될 수 있다. 상기 스킵은, addGridCenter 함수 전에 상기 cellID 탐지 과정에 의해 continue 함수를 호출하여 수행될 수 있다.
도 12의 cellID를 탐지하는 구조는 경계 셀을 위한 그리드 중심을 산출하는 단계에서 포함된 것이나, 본 발명의 실시예는 이에 한정되지 않는다.
구체적으로, cellID를 탐지하는 구조는 addGridCenter 함수가 호출되기 전만 수행되면 되는 바, 포인트 클라우드의 경계 점 식별 과정에서도 수행될 수 있다. 또한, cellID를 탐지하는 구조는 포인트 클라우드의 경계 점 식별 과정과 경계 셀을 위한 그리드 중심을 산출하는 과정 사이에 별도의 과정으로 수행될 수 있다. 도 9의 (904)단계가 이와 같이 별도의 단계로 수행되는 것을 나타내는 것일 수 있다.
결론적으로, 본 발명은 cellID를 탐지하는 구조를 포함시킴으로써, 메모리 접근 위반이 발생하는 포인트 클라우드 점의 그리드 셀의 cellID를 사전에 탐지하여, addGridCenter 함수를 스킵하는 방법으로 메모리 접근 위반을 방지할 수 있다.
도 13은 경계 셀을 위한 그리드 중심을 계산하는 과정에서 현재 점의 그리드 범위를 탐지하는 구조를 나타내는 도면이다.
본 발명은 메모리 접근 위반을 방지하기 위해, 포인트 클라우드의 경계 점의 식별 과정과 동일한 방식으로, 현재 포인트 클라우드의 점의 그리드 범위를 탐지하는 방법이 수행될 수 있다. 이와 관련하여, 도 13은 경계 셀을 위한 그리드 중심을 산출하는 과정에서 포인트 클라우드의 점의 그리드 범위를 탐지하는 구조를 도시하고 있다. 상기 탐지 결과에 따라, 포인트 클라우드의 점의 좌표가 그리드 범위 내에 있지 않으면, 포인트 클라우드에 대한 addGridCenter(=addGridCentroid) 함수의 호출이 continue 함수를 통해 스킵될 수 있다. 다시 말해, 경계 셀을 위한 그리드 중심 계산에서 그리드 범위 내 있지 않은 포인트 클라우드 점은 제외될 수 있다.
도 13의 그리드 범위를 탐지하는 구조는 경계 셀을 위한 그리드 중심을 산출하는 단계에서 포함된 것이나, 본 발명의 실시예는 이에 한정되지 않는다.
구체적으로, 그리드 범위를 탐지하는 구조는 addGridCenter 함수가 호출되기 전만 수행되면 되는 바, 포인트 클라우드의 경계 점 식별 과정에서도 수행될 수 있다. 또한, 그리드 범위를 탐지하는 구조는 포인트 클라우드의 경계 점 식별 과정과 경계 셀을 위한 그리드 중심을 산출하는 과정 사이에 별도의 과정으로 수행될 수 있다.
도 14는 포인트 클라우드의 색 영상 패치를 도시한 도면이다.
3D 포인트 클라우드는 V-PCC(비디오 기반 포인트 클라우드 압축) 인코딩 프로세스에서 점유 영상 패치, 기하 영상 패치 및 색 영상 패치로 분할할 수 있다. 도 14에 도시된 것과 같이 기하 영상 패치 및 색 영상 패치는 시각적 관점에서 원층(far layer)과 근층(near layer)을 포함한다. 이에 따라, 비디오 코덱에서의 all-intra와 같은 포인트 클라우드에서 인트라 프레임에 대한 접근성을 갖추려면 모든 포인트 클라우드 프레임 내부에 인트라 프레임 액세스 지점을 생성해야 한다. 또한, 인트라 부호화된 근층(intra near layer)으로부터 원층(far layer)을 예측하게 하면, 보다 향상된 부호화 성능을 얻을 수 있다. 즉, V-PCC의 구현을 위해 인트라 프레임(Intra frame)/예측 프레임(Prediction frame)이 반복하여 코딩되는 구조가 필요하다(예를 들어, Video frame 8장일 때, IPIPIPIP 구조). 여기서, 인트라 프레임은 인트라 예측만을 사용하는 프레임이고 예측 프레임은 인트라 예측 및 인터 예측을 모두 사용할 수 있는 프레임을 나타낼 수 있다.
도 15는 본 발명의 일 실시예에 따른 그리드 스무딩 방법을 나타낸 순서도이다.
인코더에서 그리드 스무딩을 수행하는 방법은, 포인트 클라우드(Point Cloud)를 3차원 그리드로 분할하는 그리드 분할 단계(S1501) 상기 그리드의 포인트 클라우드 점들 중 경계 점을 식별하는 경계 점 식별 단계(S1502), 상기 식별된 경계 점을 기초로, 상기 그리드의 경계 셀을 획득하는 경계 셀 획득 단계(S1503), 상기 획득한 그리드의 경계 셀을 위한 상기 그리드 중심을 산출하는 그리드 중심 산출 단계(S1504)를 포함할 수 있다.
다만, 상기 그리드의 포인트 클라우드 점들 중 제1 조건을 만족하는 포인트 클라우드 점은 상기 그리드 중심 산출에 이용되지 않을 수 있다.
일 실시예로, 상기 제1 조건은, 상기 포인트 클라우드 점과 연결된 그리드의 셀의 CellID가 상기 그리드의 CellIndex의 크기보다 큰 것이고, 상기 CellID는 상기 CellID를 가진 셀을 상기 그리드 내에 다른 셀들과 구분하는 것일 수 있다. 여기서, 상기 CellIndex 크기는 상기 포인트 클라우드가 분할된 그리드의 개수에 의해 결정될 수 있다. 여기서, 상기 그리드의 개수는 상기 포인트 클라우드의 바운딩박스(boundingbox)의 x, y 및 z 축의 범위 각각을 상기 그리드의 크기로 나눈 값을 기초로 획득될 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드 뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (9)

  1. 포인트 클라우드를 3차원 그리드로 분할하는 그리드 분할 단계;
    상기 그리드의 포인트 클라우드 점들 중 경계 점을 식별하는 경계 점 식별 단계;
    상기 식별된 경계 점을 기초로, 상기 그리드의 경계 셀을 획득하는 경계 셀 획득 단계;
    상기 획득한 그리드의 경계 셀을 위한 상기 그리드 중심을 산출하는 그리드 중심 산출 단계를 포함하되,
    상기 그리드의 포인트 클라우드 점들 중 제1 조건을 만족하는 포인트 클라우드 점은 상기 그리드 중심 산출에 이용되지 않는, 영상 부호화 방법.
  2. 제1 항에 있어서,
    상기 제1 조건은, 상기 포인트 클라우드 점과 연결된 그리드의 셀의 CellID가 상기 그리드의 CellIndex의 크기보다 큰 것이고,
    상기 CellID는 상기 CellID를 가진 셀을 상기 그리드 내에 다른 셀들과 구분하는 것인, 영상 부호화 방법.
  3. 제2 항에 있어서,
    상기 CellIndex 크기는 상기 포인트 클라우드가 분할된 그리드의 개수에 의해 결정되는, 영상 부호화 방법.
  4. 제3 항에 있어서,
    상기 그리드의 개수는 상기 포인트 클라우드의 바운딩박스의 x, y 및 z 축의 범위 각각을 상기 그리드의 크기로 나눈 값을 기초로 획득되는, 영상 부호화 방법.
  5. 제1 항에 있어서,
    상기 그리드 중심 산출 단계는, 상기 그리드의 포인트 클라우드 점들에 대한 addGridCentroid 함수에 의해 수행되고,
    상기 그리드의 포인트 클라우드 점들 중 제1 조건을 만족하는 포인트 클라우드 점에 대한 상기 addGridCentroid 함수는 continue 함수에 의해 스킵되는 것인, 영상 부호화 방법.
  6. 제1 항에 있어서,
    상기 그리드 중심 산출 단계에서 산출된 상기 그리드 중심은, 삼선형 필터링(Tri-Linear Filtering)가 적용되는, 영상 부호화 방법.
  7. 제1 항에 있어서,
    상기 제1 조건은, 상기 포인트 클라우드 점이 상기 포인트 클라우드와 연결된 그리드의 범위를 벗어난 것인, 영상 부호화 방법.
  8. 포인트 클라우드를 3차원 그리드로 분할하는 그리드 분할 단계;
    상기 그리드의 포인트 클라우드 점들 중 경계 점을 식별하는 경계 점 식별 단계;
    상기 식별된 경계 점을 기초로, 상기 그리드의 경계 셀을 획득하는 경계 셀 획득 단계;
    상기 획득한 그리드의 경계 셀을 위한 상기 그리드 중심을 산출하는 그리드 중심 산출 단계를 포함하되,
    상기 그리드의 포인트 클라우드 점들 중 제1 조건을 만족하는 포인트 클라우드 점은 상기 그리드 중심 산출에 이용되지 않는, 영상 복호화 방법.
  9. 비트스트림을 저장하는 컴퓨터로 판독가능한 기록 매체에 있어서,
    상기 비트스트림은, 부호화된 포인트 클라우드를 포함하되,
    상기 비트스트림으로부터 획득된 포인트 클라우드는 3차원 그리드로 분할되고,
    상기 그리드의 포인트 클라우드 점들 중 경계 점이 식별되고,
    상기 식별된 경계 점을 기초로, 상기 그리드의 경계 셀이 획득되고,
    상기 획득한 그리드의 경계 셀을 위한 상기 그리드 중심이 산출되고,
    상기 그리드의 포인트 클라우드 점들 중 제1 조건을 만족하는 포인트 클라우드 점은 상기 그리드 중심의 산출에 이용되지 않는, 컴퓨터로 판독가능한 기록 매체.
KR1020220046177A 2021-04-20 2022-04-14 V-pcc 그리드 평활화 과정의 셀 색인화를 보완하는 영상 부호화/복호화 방법, 장치 및 컴퓨터로 판독가능한 기록 매체 KR20220144765A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210051404 2021-04-20
KR1020210051404 2021-04-20

Publications (1)

Publication Number Publication Date
KR20220144765A true KR20220144765A (ko) 2022-10-27

Family

ID=83810246

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220046177A KR20220144765A (ko) 2021-04-20 2022-04-14 V-pcc 그리드 평활화 과정의 셀 색인화를 보완하는 영상 부호화/복호화 방법, 장치 및 컴퓨터로 판독가능한 기록 매체

Country Status (1)

Country Link
KR (1) KR20220144765A (ko)

Similar Documents

Publication Publication Date Title
KR102398408B1 (ko) 포인트 클라우드 압축
US11202005B2 (en) Image data encoding/decoding method and apparatus
US11509914B2 (en) Method and device for decoding image by using partition unit including additional region
KR102164399B1 (ko) 영상 부호화/복호화 방법 및 장치
US11528414B2 (en) Method and apparatus for reconstructing 360-degree image according to projection format
US20240007602A1 (en) Image data encoding/decoding method and apparatus
US11483476B2 (en) Image data encoding/decoding method and apparatus
US9998761B2 (en) Apparatus for coding a bit stream representing a three-dimensional video
KR102588425B1 (ko) 적응적 분할 코딩
KR102549987B1 (ko) 영상 처리 방법 및 이를 위한 장치
CN110622511B (zh) 图像编码/解码方法及其设备
US20230051471A1 (en) Method and device for decoding image by using partition unit including additional region
US11778331B2 (en) Image data encoding/decoding method and apparatus
KR20180009048A (ko) 영상의 부호화/복호화 방법 및 이를 위한 장치
KR20220144765A (ko) V-pcc 그리드 평활화 과정의 셀 색인화를 보완하는 영상 부호화/복호화 방법, 장치 및 컴퓨터로 판독가능한 기록 매체
KR20220097259A (ko) MPEG-5 EVC 인코더의 baseline coding 구조 개선 방법