KR20220097259A - MPEG-5 EVC 인코더의 baseline coding 구조 개선 방법 - Google Patents

MPEG-5 EVC 인코더의 baseline coding 구조 개선 방법 Download PDF

Info

Publication number
KR20220097259A
KR20220097259A KR1020210184828A KR20210184828A KR20220097259A KR 20220097259 A KR20220097259 A KR 20220097259A KR 1020210184828 A KR1020210184828 A KR 1020210184828A KR 20210184828 A KR20210184828 A KR 20210184828A KR 20220097259 A KR20220097259 A KR 20220097259A
Authority
KR
South Korea
Prior art keywords
poc
block
picture
pictures
unit
Prior art date
Application number
KR1020210184828A
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 KR20220097259A publication Critical patent/KR20220097259A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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
    • 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

본 발명은 MPEG-5 EVC 인코더의 baseline coding 구조 개선 방법 및 장치를 제공한다.
본 발명은, 부호화기의 초기화에 따라 픽쳐 그룹(GOP, group of pictures)을 결정하는 단계, 상기 픽쳐 그룹의 크기에 기초하여 서브 픽쳐 그룹의 길이를 결정하는 단계, 여기서, 서브 픽쳐 그룹은 상기 픽쳐 그룹을 상기 픽쳐 그룹의 크기에 기초하여 분할한 것임, POC derivation 함수를 호출하여 상기 픽쳐 그룹 내 픽쳐들의 POC 값을 획득하는 단계, 여기서, 상기 POC derivation 함수는 상기 서브 픽쳐 그룹의 길이를 입력값으로 하여 상기 POC 값을 산출하는 함수임, 상기 POC 값에 따라 상기 픽쳐 그룹 내 픽쳐들의 부호화 순서를 결정하는 단계 및 상기 부호화 순서에 기초하여 상기 픽쳐 그룹 내 픽쳐들을 부호화 하는 단계를 포함하되, 상기 POC derivation 함수는 Nal unit의 종류, 슬라이스의 종류 및 코딩 구조의 종류에 기초하여 호출되는 영상 부호화 방법 및 상기 영상 부호화 방법과 관련된 컴퓨터로 판독가능한 기록매체를 제공한다.

Description

MPEG-5 EVC 인코더의 baseline coding 구조 개선 방법{BASELINE CODING STRUCTURE IMPROVEMENT METHOD OF MPEG-5 EVC ENCODER}
본 발명은 EVC Baseline Profile의 인코더에서 POC derivation 함수를 이용하여 픽쳐들의 부호화 순서를 결정하는 영상 부호화 방법 및 컴퓨터로 판독가능한 저장매체에 관한 것이다.
비디오 영상은 시공간적 중복성 및 시점 간 중복성을 제거하여 압축 부호화되며, 이는 통신 회선을 통해 전송되거나 저장 매체에 적합한 형태로 저장될 수 있다.
본 발명은 EVC Baseline Profile의 인코더에서 POC derivation 함수를 이용하여 정확한 POC 값을 획득하고, 그에 따라 비디오 신호의 코딩 효율을 향상시키고자 함에 있다.
상기 과제를 해결하기 위하여 본 발명은 baseline coding 구조 개선 방법 및 장치를 제공한다.
본 발명에 따른 영상 부호화 방법은, 부호화기의 초기화에 따라 픽쳐 그룹(GOP, group of pictures)을 결정하는 단계, 상기 픽쳐 그룹의 크기에 기초하여, 서브 픽쳐 그룹의 길이를 결정하는 단계, 여기서, 서브 픽쳐 그룹은 상기 픽쳐 그룹을 상기 픽쳐 그룹의 크기에 기초하여 분할한 것임, POC derivation 함수를 호출하여 상기 픽쳐 그룹 내 픽쳐들의 POC 값을 획득하는 단계, 여기서, 상기 POC derivation 함수는 상기 서브 픽쳐 그룹의 길이를 입력값으로 하여 상기 POC 값을 산출하는 함수임, 상기 POC 값에 따라 상기 픽쳐 그룹 내 픽쳐들의 부호화 순서를 결정하는 단계, 상기 부호화 순서에 기초하여 상기 픽쳐 그룹 내 픽쳐들을 부호화 하는 단계를 포함하되, 상기 POC derivation 함수는 Nal unit의 종류, 슬라이스의 종류 및 코딩 구조의 종류에 기초하여 호출될 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 픽쳐 그룹의 구조는 인트라 픽쳐 및 예측 픽쳐가 반복하여 부호화되는 구조이고, 상기 인트라 픽쳐는 인트라 예측만 수행되는 픽쳐이고, 상기 예측 픽쳐는 인트라 예측 및 인터 예측 중 어느 하나가 수행되는 픽쳐일 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 POC derivation 함수는, 상기 Nal unit의 종류가 IDR(Instantaneous Decoding Refresh) Nal unit이 아닐 것, 상기 슬라이스의 종류가 B 슬라이스가 아닐 것 및 상기 코딩 구조가 Lowdelay 일 것을 모두 만족하는 경우, 호출될 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 픽쳐 그룹은, 3D 포인트 클라우드 비디오가 V-PCC(비디오 기반 포인트 클라우드 압축) 인코딩 프로세스에서 분할된 어큐판시 맵(Occupancy map), 지오메트리(Geometry) 비디오 또는 어트리뷰트(Attribute) 비디오 중 어느 하나를 부호화함에 있어서 참조될 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 POC derivation 함수의 입력값은, temporal_id(tid) 및 POC 메모리 주소를 더 포함하되, 상기 temporal_id는 상기 NAL unit의 헤더에서 시그날링되는 값일 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 temporal_id의 값에 따라, 상기 POC derivation 함수의 POC값을 산출하는 방법이 달라질 수 있다.
본 발명에 따른 비트스트림을 저장하는 컴퓨터로 판독가능한 기록 매체에 있어서, 상기 비트스트림은, 픽쳐 그룹(GOP, group of pictures) 내 픽쳐들이 부호화된 데이터를 포함하고, 상기 픽쳐 그룹 내 픽쳐들의 부호화는, 부호화 순서에 기초하여 수행되고, 상기 부호화 순서는, 상기 픽쳐 그룹 내 픽쳐들의 POC 값에 따라 결정되고, 상기 POC 값은, POC derivation 함수가 호출되어 산출되고, 상기 POC derivation 함수는, 상기 픽쳐 그룹의 서브 픽쳐 그룹의 길이를 입력값으로 하여 상기 POC 값을 산출하는 함수이고, 상기 서브 픽쳐 그룹은, 상기 픽쳐 그룹을 상기 픽쳐 그룹의 크기에 기초하여 분할한 것일 수 있다.
본 발명에 따른 비디오 신호 처리 방법 및 장치는 baseline coding 구조를 개선함으로써 비디오 신호의 코딩 효율을 향상시킬 수 있다.
도 1는 본 발명의 실시예에 따른 3D 영상인 포인트 클라우드 비디오가 변환된 2D 영상에 대한 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 3D 영상인 포인트 클라우드 비디오가 변환된 2D 영상에 대한 영상 부호화 장치에 대한 블록 구성도이다.
도 3은 본 발명의 일 실시예에 따른 3D 영상인 포인트 클라우드 비디오가 변환된 2D 영상에 대한 영상 복호화 장치에 대한 블록 구성도이다.
도 4는 본 발명의 일 실시예에 따른 트리 기반의 블록 형태를 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 다양한 블록 형태를 나타낸 도면이다.
도 6은 본 발명의 실시예에 따른 포인트 클라우드 콘텐츠(Point Cloud Contents) 제공을 위한 송/수신 시스템에 대한 개념도이다.
도 7는 포인트 클라우드 비디오 인코더의 구조를 나타낸 도면이다.
도 8은 포인트 클라우드 비디오 디코더의 구조를 나타낸 도면이다.
도 9는 POC derivation 함수를 도시한 도면이다.
도 10는 포인트 클라우드의 attribute 이미지를 도시한 도면이다.
도 11는 본 발명의 일 실시예에 따른 인코더에서 POC derivation을 수행하는 방법을 나타낸 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제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이면 따르지 않음)로 해당 단위의 설정 정보를 나타내는 것이라 이해될 수 있다. 본 발명에서의 설정 정보는 독립적인 설정에 대한 예를 중심으로 설명을 할 것이나, 현재 단위의 이전, 이후의 단위 또는 상위 단위의 설정 정보에 의존적인 관계에 대한 내용으로의 추가 또는 대체되는 예 또한 포함될 수 있다.
본 발명에 있어서, '프레임' 및 '픽쳐'의 용어는 서로 혼용 사용될 수 있다.
본 발명에 있어서, 3D 영상인 포인트 클라우드 비디오는 2D 비디오 코덱으로 압축하기 위해서 패치로 분할하여 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, Planar, 수직, 수평, 대각선 모드 등) 또는 공간적으로 인접한 블록(예를 들어, 좌, 상, 좌상, 우상, 좌하 블록 등)의 예측 모드 등이 포함될 수 있다. 또한, MPM 후보군에 기-포함된 모드로부터 유도되는 모드를 MPM 후보군으로 구성할 수 있다. 여기서, 기-포함된 모드로부터 유도되는 모드는 기-포함된 모드에 자연수(예를 들어, 1, 2, 3, 4)를 더하거나 뺀 값을 가지는 모드일 수 있다(기-포함된 모드 ±1, ±2, ±3, ±4). 여기서, 좌측 인접한 블록의 예측 모드가 포함되는 것은 좌측 인접한 블록 내 최상단 화소의 예측 모드가 포함되는 것을 나타낼 수 있다. 또한, 상측 인접한 블록의 예측 모드가 포함되는 것은 상측 인접한 블록 내 최좌측 화소의 예측 모드가 포함되는 것을 나타낼 수 있다.
MPM 후보군 구성을 위한 예측 모드의 우선 순위가 존재할 수 있다. 상기 우선 순위에 따라 MPM 후보군에 포함되는 순서가 정해질 수 있으며, 상기 우선 순위에 따라 MPM 후보군의 개수(예측 모드 후보군 개수에 따라 정해짐)만큼 채워지면 MPM 후보군 구성을 완료할 수 있다. 이때, 공간적으로 인접한 블록의 예측 모드, 기-설정된 예측 모드, MPM 후보군에 먼저 포함된 예측 모드로부터 유도되는 모드 순서로 우선 순위가 정해질 수 있으나, 그 외의 변형 또한 가능하다.
예를 들어, MPM 후보군은 비방향성 모드, 공간적 인접한 블록으로부터 유도되는 모드, 수직 및 수평 모드 순서로 8개의 후보로 구성될 수 있다. 여기서, 비방향성 모드는 BI 모드, DC 모드, PLN 모드를 포함할 수 있다. 여기서, 공간적 인접한 블록으로부터 유도되는 모드에서는, 좌측 또는 상측의 인접한 블록의 모드들 중 인덱스 번호가 작은 모드로부터 유도된 모드가, 좌측 또는 상측의 인접한 블록의 모드들 중 인덱스 번호가 큰 모드로부터 유도된 모드보다 우선할 수 있다.
화면간 예측부에서 움직임 예측 방법에 따라 이동 움직임 모델과 이동외 움직임 모델로 구분할 수 있다. 이동 움직임 모델의 경우 평행 이동만을 고려하여 예측을 수행하고, 이동외 움직임 모델의 경우 평행 이동뿐만 아니라 회전, 원근, 줌 인/아웃(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 등), 타일, 슬라이스, 기본 부호화 단위(또는 최대 부호화 단위) 등과 같은 적어도 하나의 처리 단위로 분할(또는 구획)할 수 있고, 블록 분할부는 기본 부호화 단위를 적어도 하나의 처리 단위(예를 들어, 부호화, 예측, 변환, 양자화, 엔트로피 및 인루프 필터 단위 등)로 분할할 수 있다.
기본 부호화 단위는 가로 방향과 세로 방향으로 픽쳐를 일정한 간격으로 분할하여 획득될 수 있다. 이를 기반으로 타일, 슬라이스 등의 분할이 수행(즉, 타일과 슬라이스와 같은 분할 단위는 기본 부호화 블록의 정수배로 구성. 단, 영상 경계에 위치한 분할 단위에서는 예외적인 경우가 발생할 수 있음)될 수 있으나 이에 한정하지는 않는다.
예를 들어, 픽쳐를 기본 부호화 단위로 구획한 후에 상기 단위로 분할할 수 있거나 또는 픽쳐를 상기 단위로 구획한 후에 기본 부호화 단위로 분할할 수 있다. 본 발명에서는 각 단위의 구획 및 분할 순서가 전자인 경우를 가정하여 설명하나 이에 한정되지 않고, 부/복호화 설정에 따라 후자의 경우 또한 가능할 수 있다. 후자의 경우 기본 부호화 단위의 크기가 분할 단위(타일 등)에 따라 적응적인 경우(즉, 각 단위마다 다른 크기의 기본 부호화 블록이 적용될 수 있음)로의 변형이 가능할 수 있다.
본 발명에서는 픽쳐에서 기본 부호화 단위로 구획하는 경우를 기본 설정(즉, 픽쳐가 타일이나 슬라이스로 분할되지 않거나 또는 픽쳐가 하나의 타일 또는 하나의 슬라이스인 경우)으로 두어 후술하는 예를 설명할 것이나, 위의 경우처럼 각 분할 단위를 먼저 구획하여 획득된 단위에 기반하여 기본 부호화 단위로 분할하는 경우(즉, 각 분할 단위가 기본 부호화 단위의 정수배가 되지 않는 경우)에도 후술하는 다양한 예에서 제안하는 설정 등이 동일하거나 변경 적용되는 것임을 이해하여야 한다.
상기 분할 단위 중 슬라이스의 경우 스캔 패턴에 따라 연속하는 적어도 하나의 블록들의 묶음으로 구성될 수 있고, 타일의 경우 공간적으로 인접한 블록들의 직사각형 형태의 묶음으로 구성될 수 있으며, 그 외의 추가적인 분할 단위가 지원되어 그에 따른 정의에 의해 구성될 수 있다. 특히, 타일의 경우 픽쳐를 체크 무늬와 같이 하나 이상의 가로선과 세로선을 사용하여 분할할 수 있다. 또는, 위와 같이 일괄적인 가로선과 세로선의 분할이 아닌 다양한 크기를 갖는 직사각형들로 구성될 수 있다.
한편, 블록 분할부를 통해 다양한 크기의 부호화 단위(또는 블록)로 분할할 수 있다. 이때, 부호화 단위는 컬러 포맷에 따라 복수개의 부호화 블록으로 구성(예를 들어, 하나의 휘도 부호화 블록 및 둘의 색차 부호화 블록 등)될 수 있으며, 컬러 포맷에 따라 블록의 크기가 결정될 수 있다. 이하에서는 설명의 편의를 위해 하나의 컬러 성분(휘도 성분)에 따른 블록을 기준으로 설명한다.
후술하는 내용은 하나의 컬러 성분을 대상으로 하지만 컬러 포맷에 따른 길이 비율(예를 들어, YCbCr 4:2:0의 경우 휘도 성분과 색차 성분의 가로 및 세로 길이 비율은 2:1)에 비례하여 다른 컬러 성분에 변경 적용될 수 있음을 이해하여야 한다. 또한, 다른 컬러 성분에 의존적인 블록 분할(예를 들어, CbCr에서 Y의 블록 분할 결과에 의존적인 경우)이 가능할 수 있지만, 각 컬러 성분에 독립적인 블록 분할이 가능할 수 있음을 이해하여야 한다. 또한, 공통되는 하나의 블록 분할 설정(길이 비율에 비례하는 것은 고려)을 사용할 수 있지만, 컬러 성분에 따라 개별적인 블록 분할 설정이 사용되는 것 또한 고려하여 이해할 필요가 있다.
부호화 블록은 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 등)과 같은 가변 크기, 형태를 가질 수 있다. 이때, 부호화 블록은 화면내 예측, 화면간 예측, 변환, 양자화 및 엔트로피 부호화 등의 기초가 되는 단위일 수 있으며, 블록은 각 단위가 결정된 후에 획득될 수 있는 단위라고 가정한다.
블록 분할부는 영상 부호화 장치 및 복호화 장치의 각 구성부에 관계되어 설정될 수 있으며, 이 과정을 통해 블록의 크기와 형태가 정해질 수 있다. 이때, 설정되는 블록은 구성부에 따라 달리 정의될 수 있으며, 예측부의 경우 예측 블록, 변환부의 경우 변환 블록, 양자화부의 경우 양자화 블록 등이 이에 해당할 수 있다. 다만, 이에 한정되지 않고 다른 구성부에 따른 블록 단위가 추가로 정의될 수 있다. 블록의 크기 및 형태는 블록이 갖는 가로, 세로 길이에 의해 정의될 수 있다.
블록 분할부에서 각 블록의 최대값과 최소값이 범위 내에서 블록이 획득될 수 있다. 예를 들어, 블록의 형태는 정사각을 지원하며 블록의 최대값을 256Х256, 최소값을 8Х8로 정할 경우, 2m Х 2n 크기의 블록(본 예에서 m은 3부터 8까지의 정수, 예를 들어, 8Х8, 16Х16, 32Х32, 64Х64, 128Х128, 256Х256), 2m Х 2m 크기의 블록(본 예에서 m은 4부터 128까지의 정수) 또는 m Х m 크기의 블록(본 예에서 m은 8부터 256까지의 정수)을 획득할 수 있다.
또는, 블록의 형태는 정사각과 직사각을 지원하며 상기 예와 동일한 범위를 가질 경우, 2m Х 2n 크기의 블록(본 예에서 m과 n은 3부터 8까지의 정수. 가로와 세로 비율이 최대 2:1인 경우를 가정하는 경우, 8Х8, 8Х16, 16Х8, 16Х16, 16Х32, 32Х16, 32Х32, 32Х64, 64Х32, 64Х64, 64Х128, 128Х64, 128Х128, 128Х256, 256Х128, 256Х256)이 획득될 수 있다. 다만, 부/복호화 설정에 따라 가로와 세로의 비율에 대한 제한이 없거나 비율의 최대값(예를 들어, 1:2, 1:3, 1:7 등)이 존재할 수도 있다. 또는, 2m Х 2n 크기의 블록(본 예에서 m과 n은 4부터 128까지의 정수)이 획득될 수 있으며, m Х n 크기의 블록(본 예에서 m과 n은 8부터 256까지의 정수)이 획득될 수도 있다.
블록 분할부에 의해 획득 가능한 블록은 부/복호화 설정(예를 들어, 블록의 종류, 분할 방식 및 분할 설정 등)에 따라 결정될 수 있다. 예를 들어, 부호화 블록은 2m Х 2n 크기의 블록, 예측 블록은 2m Х 2n 또는 m Х n 크기의 블록, 변환 블록은 2m Х 2n 크기의 블록으로 획득될 수 있다. 다시 말해, 상기 부/복호화 설정을 기초로 블록 크기 및 범위 등의 정보(예를 들어, 지수, 배수 관련 정보 등)가 생성될 수 있다.
블록 크기의 최대값 및 최소값과 같은 범위는 블록의 종류에 따라 결정될 수 있다. 또한, 일부 블록은 블록의 범위 정보가 명시적으로 생성될 수 있고, 일부 블록은 블록의 범위 정보가 묵시적으로 결정될 수 있다. 예를 들어, 부호화 블록 및 변환 블록은 명시적으로 관련 정보가 생성될 수 있고, 예측 블록은 묵시적으로 관련 정보가 처리될 수 있다.
명시적인 경우에는 적어도 하나의 범위 정보가 생성될 수 있다. 예를 들어, 부호화 블록의 경우 범위에 대한 정보는 최대값과 최소값에 대한 정보를 생성할 수 있으며, 최대값과 기-설정된 최소값(예를 들어, 4)의 차이에 기반하여 생성될 수도 있다. 다시 말해, 범위에 대한 정보는 상기 설정에 기반하여 생성될 수 있으며, 최대값 및 최소값의 지수의 차이값 정보에 기반하여 생성될 수도 있으나, 이에 한정되는 것은 아니다. 또한, 직사각 형태의 블록의 가로, 세로 길이를 위한 복수의 범위에 대한 정보가 생성될 수도 있다.
묵시적인 경우에는 부/복호화 설정(예를 들어, 블록의 종류, 분할 방식, 분할 설정 등)에 기반하여 범위 정보가 획득될 수 있다. 예를 들어, 예측 블록의 경우 상위 단위인 부호화 블록(예를 들어, 부호화 블록의 최대 크기 M Х N. 최소 크기 m Х n)에서는 예측 블록의 분할 설정(예를 들어, 쿼드 트리 분할 + 분할 깊이 0)으로부터 획득 가능한 후보군(본 예에서 M Х N과 m/2 Х n/2)에 따라 최대값과 최소값 정보를 획득할 수 있다.
블록 분할부의 초기(또는 시작) 블록의 크기 및 형태는 상위 단위로부터 결정될 수 있다. 다시 말해, 부호화 블록의 경우 기본 부호화 블록이 초기 블록일 수 있고, 예측 블록의 경우 부호화 블록이 초기 블록일 수 있다. 또한, 변환 블록의 경우 부호화 블록 또는 예측 블록이 초기 블록일 수 있으며, 이는 부/복호화 설정에 따라 정해질 수 있다.
예를 들어, 부호화 모드가 인트라(intra)일 경우 예측 블록은 변환 블록의 상위 단위일 수 있고, 인터(inter)일 경우 예측 블록은 변환 블록에 독립적인 단위일 수 있다. 분할의 시작 단위인 초기 블록은 작은 크기의 블록으로 분할될 수 있으며, 블록의 분할에 따른 최적의 크기 및 형태가 결정되면 그 블록은 하위 단위의 초기 블록으로 결정될 수 있다. 분할의 시작 단위인 초기 블록을 상위 단위의 초기 블록이라 볼 수 있다. 여기서, 상위 단위는 부호화 블록, 하위 단위는 예측 블록 또는 변환 블록일 수 있으나, 이에 한정되는 것은 아니다. 상기 예와 같이 하위 단위의 초기 블록이 정해지면 상위 단위와 같이 최적의 크기 및 형태의 블록을 찾기 위한 분할 과정이 수행될 수 있다.
정리하면, 블록 분할부는 기본 부호화 단위(또는 최대 부호화 단위)를 적어도 하나의 부호화 단위(또는 하위 부호화 단위)로 분할을 수행할 수 있다. 또한, 부호화 단위는 적어도 하나의 예측 단위로 분할을 수행할 수 있고, 적어도 하나의 변환 단위로 분할을 수행할 수 있다. 부호화 단위는 적어도 하나의 부호화 블록으로 분할을 수행할 수 있고, 부호화 블록은 적어도 하나의 예측 블록으로 분할을 수행할 수 있고, 적어도 하나의 변환 블록으로 분할을 수행할 수 있다. 예측 단위는 적어도 하나의 예측 블록으로 분할을 수행할 수 있고, 변환 단위는 적어도 하나의 변환 블록으로 분할을 수행할 수 있다.
상기 예는 블록의 종류에 따라 분할 설정을 달리 두는 경우를 설명하였다. 또한, 일부 블록의 경우 다른 블록과 결합되어 하나의 분할 과정을 수행할 수 있다. 예를 들어, 부호화 블록과 변환 블록이 하나의 단위로 결합할 경우 최적의 블록의 크기 및 형태를 획득하기 위한 분할 과정이 수행되며, 이는 부호화 블록의 최적의 크기 및 형태 뿐만 아니라 변환 블록의 최적의 크기 및 형태일 수 있다. 또는, 부호화 블록과 변환 블록이 하나의 단위로 결합할 수 있고, 예측 블록과 변환 블록이 하나의 단위로 결합할 수 있고, 부호화 블록과 예측 블록과 변환 블록이 하나의 단위로 결합할 수 있고, 그 외의 블록들의 결합이 가능할 수 있다.
상술한 바와 같이 최적의 크기 및 형태의 블록을 찾은 경우, 이에 대한 모드 정보(예를 들어, 분할 정보 등)가 생성될 수 있다. 모드 정보는 블록이 속하는 구성부에서 발생하는 정보(예를 들어, 예측 관련 정보 및 변환 관련 정보 등)과 함께 비트스트림에 수록되어 복호화기로 전송될 수 있고, 복호화기에서 동일 수준의 단위로 파싱되어 영상 복호화 과정에서 사용될 수 있다.
이하에서는 분할 방식에 대한 설명할 것이며, 설명의 편의를 위해 초기 블록이 정사각 형태인 것을 가정하지만, 초기 블록이 직사각 형태인 경우에도 동일하거나 유사하게 적용할 수 있으므로, 이에 한정되는 것은 아니다.
도 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인 하나의 후보가 존재하여 분할 비율 플래그가 생략되는 경우를 가정한다.
본 발명에서는 분할 방식에 따라 적응적인 부/복호화 설정을 적용할 수 있다.
일 실시예로, 블록의 종류에 따라 분할 방식이 결정될 수 있다. 예를 들어, 부호화 블록과 변환 블록은 쿼드 트리 분할이, 예측 블록은 쿼드 트리 및 바이너리 트리(또는 터너리 트리 등) 분할이 가능할 수 있다.
다른 실시예로, 블록의 크기에 따라 분할 방식이 결정될 수 있다. 예를 들어, 블록의 최대값과 최소값 사이의 일부 범위(예를 들어, aХb ~ cХd)에는 쿼드 트리 분할이, 다른 일부 범위(예를 들어, eХf ~ gХh)에는 바이너리 트리(또는 터너리 트리 등) 분할이 가능할 수 있다. 여기서, 일부 범위는 다른 일부 범위보다 큰 크기를 의미할 수 있으나, 이에 한정되는 것은 아니다. 여기서, 분할 방식에 따른 범위 정보는 명시적으로 생성될 수 있거나 묵시적으로 정해질 수 있으며, 범위는 중첩될 수도 있다.
또 다른 실시예로, 블록(또는 분할 전 블록)의 형태에 따라 분할 방식이 결정될 수 있다. 예를 들어, 블록의 형태가 정사각일 경우 쿼드 트리와 바이너리 트리(또는 터너리 트리 등) 분할이 가능할 수 있다. 또는, 블록의 형태가 직사각일 경우에 바이너리 트리(또는 터너리 트리 등) 분할이 가능할 수 있다.
트리 기반의 분할은 재귀적인 방식을 사용하여 수행될 수 있다. 예를 들어, 분할 깊이(depth)가 k인 부호화 블록의 분할 플래그가 0인 경우 부호화 블록의 부호화는 분할 깊이가 k인 부호화 블록에서 수행되며, 분할 깊이가 k인 부호화 블록의 분할 플래그가 1인 경우 부호화 블록의 부호화는 분할 방식에 따라 분할 깊이가 k+1인 4개의 서브 부호화 블록(쿼드 트리 분할의 경우), 2개의 서브 부호화 블록(바이너리 트리 분할의 경우) 또는 3개의 서브 부호화 블록(터너리 트리 분할의 경우)에서 수행된다. 서브 부호화 블록은 다시 부호화 블록(k+1)으로 설정되어 상기 과정을 거쳐 서브 부호화 블록(k+2)으로 분할될 수 있으며, 이러한 계층적 분할 방식은 분할 범위 및 분할 허용 깊이 등의 분할 설정에 따라 결정될 수 있다.
이때, 분할 정보를 표현하기 위한 비트스트림 구조는 하나 이상의 스캔 방법 중 선택할 수 있다. 예를 들어, 분할 깊이 순서 기준으로 분할 정보의 비트스트림을 구성할 수 있거나 분할 여부 기준으로 분할 정보의 비트스트림을 구성할 수 있다. 예를 들어, 분할 깊이 순서 기준의 경우 최초 블록 기준으로 현 수준의 깊이에서의 분할 정보를 획득한 후 다음 수준의 깊이에서의 분할 정보를 획득하는 방법이며, 분할 여부 기준의 경우 최초 블록 기준으로 분할된 블록에서의 추가 분할 정보를 우선적으로 획득하는 방법을 의미하며, 다른 추가적인 스캔 방법이 고려될 수 있다. 본 발명에서는 분할 여부 기준으로 분할 정보의 비트스트림을 구성하는 경우를 가정한다.
상술한 바와 같이 부/복호화 설정에 따라 하나의 트리 분할이 지원되거나 또는 복수의 트리 분할이 지원될 수도 있다.
복수의 트리 분할이 가능한 경우에는 기-설정된 우선 순위를 두어 분할을 수행할 수 있다. 상세하게는, 우선 순위에 따라 분할을 수행하되 앞선 순위의 분할이 수행된 경우(즉, 2개 이상 블록으로 분할)에는 해당 분할 깊이에서의 분할은 종료되고 서브 블록이 다시 부호화 블록으로 설정되어 다음 분할 깊이에서 분할이 수행되며, 앞선 순위의 분할이 수행되지 않은 경우에는 다음 순위의 분할이 수행될 수 있다. 만약 모든 트리 분할이 수행되지 않는 경우에는 해당 블록에서의 분할 과정을 종료한다.
상기 예에서 선순위에 해당하는 분할 플래그가 참인 경우(분할 o)에는 해당 분할 방식의 추가적인 분할 정보(분할 방향 플래그 등)가 이어질 수 있으며, 거짓인 경우(분할 x)에는 후순위에 해당하는 분할 방식의 분할 정보(분할 플래그, 분할 방향 플래그 등)로 구성될 수 있다.
상기 예에서 적어도 하나의 분할 방식에 의해 분할이 수행되는 경우, 다음 서브 블록(또는 다음 분할 깊이)에서 다시 상기 우선 순위에 따라 분할을 수행할 수 있다. 또는, 이전 분할 결과에서 분할이 수행되지 않은 선순위에 해당하는 분할은 다음 서브 블록에서는 분할 후보군에서 제외할 수 있다.
예를 들어, 쿼드 트리와 바이너리 트리 분할이 지원되고 쿼드 트리가 앞선 순위를 가지며 분할 깊이 k에서 쿼드 트리 분할을 수행할 때, 쿼드 트리로 분할된 경우 분할 깊이 k+1인 서브 블록에서는 다시 쿼드 트리부터 분할을 수행할 수 있다.
만약 분할 깊이 k에서 쿼드 트리로 분할되지 않고 바이너리 트리로 분할되었을 때, 분할 깊이 k+1인 다음 서브 블록에서 다시 쿼드 트리부터 분할을 시작하거나 또는 쿼드 트리를 후보군에서 제외하여 바이너리 트리 분할만을 허용하는 설정이 가능할 수 있다. 이는 부/복호화 설정에 따라 정해질 수 있으며, 본 발명에서는 후자의 경우를 가정하여 설명한다.
또한, 복수의 트리 분할이 가능한 경우에는 분할 방식에 대한 선택 정보가 추가로 발생할 수 있으며 선택된 분할 방식에 따라 분할을 수행할 수 있다. 본 예에서는 선택된 분할 방식에 따른 분할 정보가 후속할 수 있다.
도 6은 본 발명의 실시예에 따른 포인트 클라우드 콘텐츠(Point Cloud Contents) 제공을 위한 송/수신 시스템에 대한 개념도이다.
본 발명에 있어서, 포인트 클라우드 비디오(Point Cloud Video)은, 포인트 클라우드 영상/프레임/픽쳐를 포함할 수 있으며, 포인트 클라우드 비디오는 포인트 클라우드 영상/프레임/픽쳐와 혼용되어 사용될 수 있다.
본 발명의 포인트 클라우드 콘텐츠(Point Cloud Contents) 송/수신 시스템은, VR(Virtual Reality, 가상현실), AR(Augmented Reality, 증강현실), MR(Mixed Reality, 혼합현실), 및 자율 주행 서비스 등의 다양한 서비스를 제공하기 위한 포인트 클라우드 콘텐츠를 송/수신할 수 있다.
포인트 클라우드 콘텐츠 송/수신 시스템은 포인트 클라우드 데이터 전송 장치(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 영상에 대한 영상 부호화 장치를 포함하며, 상기 영상 부호화 장치는 분할된 각각의 2D 형태의 영상에 대해 예측, 변환, 양자화, 엔트로피 코딩 등의 영상 부호화를 수행할 수 있다. 포인트 클라우드 비디오 인코더는 포인트 클라우드 비디오를 지오메트리(Geometry) 비디오, 어트리뷰트(Attribute or Color Attribute) 비디오, 어큐판시 맵(Occupancy Map), 그리고 부가 정보(Auxiliary Information)로 나누어 부호화할 수 있다. 여기서, 지오메트리 비디오는 지오메트리 이미지를 포함할 수 있고, 어트리뷰트 비디오는 어트리뷰트 이미지를 포함할 수 있다. 또한, 부가 정보는 부가 패치 정보(auxiliary patch information)를 포함할 수 있다. 어트리뷰트 비디오/이미지는 텍스쳐 비디오/이미지를 포함할 수 있다.
파일/세그먼트 인캡슐레이션부(File/Segment Encapsulation module, 6003)는, 부호화된 포인트 클라우드 비디오 데이터 및/또는 포인트 클라우드 관련 메타데이터를 파일 및/또는 세그먼트 형태로 인캡슐레이션(Encapsulation)할 수 있다. 구체적으로, 파일/세그먼트 인캡슐레이션부(6003)는 해당 데이터들을 ISOBMFF 등의 파일 포맷으로 인캡슐레이션하거나, 기타 DASH 세그먼트 등의 형태로 처리할 수 있다. 또한, 파일/세그먼트 인캡슐레이션부(6003)는 포인트 클라우드 비디오 관련 메타데이터를 파일 포맷 상에 포함시킬 수 있다. 예를 들어, 포인트 클라우드 비디오 메타데이터는 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 영상에 대한 영상 복호화 장치를 포함하며, 상기 영상 복호화 장치는 분할된 각각의 2D 형태의 영상에 대해 엔트로피 디코딩, 역양자화, 역변환, 예측 등의 영상 복호화를 수행할 수 있다. 포인트 클라우드 비디오 디코더는 포인트 클라우드 비디오를 지오메트리(Geometry) 비디오, 어트리뷰트(Attribute) 비디오, 어큐판시 맵(Occupancy Map), 그리고 부가 정보(Auxiliary Information)으로 나누어 복호화할 수 있다. 여기서, 지오메트리 비디오는 지오메트리 이미지를 포함할 수 있고, 어트리뷰트 비디오는 어트리뷰트 이미지를 포함할 수 있다. 또한, 부가 정보는 부가 패치 정보(auxiliary patch information)를 포함할 수 있다. 어트리뷰트 비디오/이미지는 텍스쳐 비디오/이미지를 포함할 수 있다.
렌더러(Renderer, 6011)는, 복호화된 포인트 클라우드 비디오 데이터를 렌더링한다.
도 7는 포인트 클라우드 비디오 인코더의 구조를 나타낸 도면이다.
포인트 클라우드 비디오 인코더는, 도 7와 같은 구조를 통해, 3D 영상인 포인트 클라우드 비디오를 2D 비디오 코덱으로 압축하기 위해서 패치로 분할하여 2D 영상으로 변환할 수 있다.
패치는 포인트 클라우드의 법선 벡터를 기준으로 생성되며, 분할된 패치들을 2D 평면에 위치시켜 비디오 코덱으로 압축한다. 이때, 지오메트리(Geometry) 비디오에는 포인트 클라우드의 위치 정보를 저장할 수 있고, 어트리뷰트(Attribute) 비디오에는 색상 정보를 저장할 수 있고, 어큐판시 맵(Occupancy Map)은 2D 평면 내 패치의 유무를 나타낼 수 있다. 각각의 비디오 또는 데이터는 2D 비디오 코덱을 통해 압축되며, 하나의 압축된 비트스트림으로 출력될 수 있다.
도 8은 포인트 클라우드 비디오 디코더의 구조를 나타낸 도면이다.
포인트 클라우드 비디오 디코더는, 도 8과 같은 구조를 통해, 부호화된 비트스트림을 이용하여 포인트 클라우드 비디오를 재구성할 수 있다. 구체적으로, 포인트 클라우드 비디오 디코더는, 지오메트리(Geometry) 비디오, 어큐판시 맵(Occupancy Map), 패치의 패킹 위치 및 법선 벡터 등의 정보를 포함하는 부가 패치 정보(Auxiliary Patch Information)을 활용하여, 포인트 클라우드 비디오의 위치 정보를 재구성할 수 있다. 이후, 포인트 클라우드 비디오 디코더는, 상기 위치 정보를 갖는 포인트 클라우드 비디오에 어트리뷰트(Attribute) 비디오를 활용하여 색상 정보를 입혀 포인트 클라우드 비디오를 복원할 수 있다.
본 발명에 있어서, POC(Picture order count) 값은 픽쳐(Picture)들의 디스플레이 순서(Display Order)를 표시할 수 있으나, 부호화/복호화 순서(coding order)를 나타낼 수 있다. 또한, POC 값은 다른 픽쳐와 해당 픽쳐를 식별하는데 사용될 수도 있다. 일 예로, POC 값이 0인 제1 픽쳐는 POC 값이 1인 제2 픽쳐보다 먼저 디스플레이 될 수 있다. 다른 예로, POC 값이 0인 제1 픽쳐는 POC 값이 1인 제2 픽쳐보다 먼저 부호화/복호화 될 수 있다.
또한, 현재 픽쳐의 현재 블록이 참조 픽쳐를 참조하여 인터 예측을 수행할 때, 상기 참조 픽쳐를 식별하기 위해 POC 값을 이용할 수 있다. 또한, 인코더는 POC 값을 직접적으로 전송할 수 있으나, POC 값에 소요되는 비트량을 줄이기 위해 POC 관련 파라미터를 전송할 수 있다. 이때, POC 값은 시퀀스 파라미터 세트 (SPS), 픽쳐 파라미터 세트 (PPS), 또는 슬라이스 헤더 등과 같은 파라미터 세트를 통해 전송될 수 있다. 이에 따라, 디코더는 인코더로부터 전송받은 POC 값 또는 POC 관련 파라미터를 기초로 산출된 POC 값을 이용하여 참조 픽쳐를 식별할 수 있다.
본 발명에 있어서, POC 값은 3D 포인트 클라우드 비디오가 V-PCC(비디오 기반 포인트 클라우드 압축) 인코딩 프로세스에서 분할된 어큐판시 맵(Occupancy map), 지오메트리(Geometry) 비디오 또는 어트리뷰트(Attribute) 비디오 중 어느 하나를 부호화함에 있어서 참조되는 픽쳐의 POC 값일 수 있다.
POC 관련 파라미터를 기초로 POC 값을 산출하는 것을 POC derivation이라 할 수 있다. POC derivation는 일반적으로 디코더에서 사용되나, 본 발명에서는 인코더에서도 사용될 수 있다. POC derivation은 POC derivation 함수의 호출로 수행될 수 있다. 또한, 상기 호출은 현재 nal unit의 종류, 현재 슬라이스의 종류, 현재 코딩 구조가 lowdelay 구조인지 여부 등을 고려하여 선택적으로 수행될 수 있다. 이에 대한 구체적인 내용은 후술한다.
도 9는 POC derivation 함수를 도시한 도면이다.
EVC Baseline Profile에서 Random-access 외의 코딩 모드가 선택되면, 일정 조건 하 POC derivation이 호출되어 log2_sub_gop_length를 기초로 POC 값이 산출될 수 있다. 여기서, 상기 Random-access 외의 코딩 모드는 Lowdelay 코딩 모드를 나타낼 수 있다.
POC derivation 함수는 Sequence Parameter Set(SPS), temporal id(tid), POC 메모리 주소를 입력값으로 받을 수 있다. 여기서, Sequence Parameter Set(SPS)는 부호화기의 초기화시에 Sequence에 대한 각종 정보를 나타낼 수 있다. 또한, temporal id(tid)는 NAL unit header의 nuh_temporal_id 또는 nuh_temporal_id_plus1 등에 의해 시그날링되는 값으로, 현재 처리하는 nal(network abstraction layer) unit의 ID를 나타낼 수 있다. 또한, POC 메모리 주소는 POC 값을 저장하는 메모리의 주소를 나타낼 수 있다.
POC derivation 함수의 POC 값은 이하 설명하는 조건에 따라, 다른 방법으로 산출될 수 있다.
[제1 조건] tid 값이 0인 경우 (현재 처리하는 nal unit ID가 0인 경우)
POC derivation 함수로부터 산출되는 POC 값(poc->poc_val)은 이전 POC 값(poc->prev_poc_val) 및 sub_gop_length 값을 합산한 값일 수 있다.
이전 POC 값은 복호화 순서에 따라 현재 픽쳐 이전의 TemporalId가 0인 픽쳐의 POC 값을 나타낼 수 있다. 또한, sub_gop_length값은 Sequence Parameter Set(SPS)에서 전달받은 log2_sub_gop_length에 의해 결정될 수 있으며, log2_sub_gop_length은 부호화기를 초기화 할 때 GOP(Group of pictures)의 크기에 따라 초기 설정되는 값을 나타낼 수 있습니다. 일 예로, log2_sub_gop_length는 부호화기를 초기화 할 때 GOP(Group of Picture)가 GOP 크기에 따라 적응적으로 분할된 Sub-Gop의 길이를 나타내는 값일 수 있다.
[제2 조건] tid 값이 0이 아닌 경우 (현재 처리하는 nal unit ID가 0이 아닌 경우)
POC derivation 함수로부터 산출되는 POC 값(poc->poc_val)은 이전 POC 값(poc->prev_poc_val) 및 poc_offset 값을 합산한 값으로 설정될 수 있다.
poc_offset은, 복호화 순서에 따라 현재 픽쳐 이전의 TemporalId가 0인 픽쳐와 현재 픽쳐의 POC 값의 차분값을 나타낼 수 있다. 또한, poc_offset은 sub_gop_length, doc_offset 또는 tid 중 적어도 하나를 기초로 산출될 수 있다. 예를 들어, poc_offset은 "poc_offset = (int)(sub_gop_length * ((2.0 * doc_offset + 1) / (int)pow(2.0, tid) - 2))"의 식으로 산출될 수 있다. 또한, doc_offset은 sub_gop_length 또는 poc->prev_doc_offset 중 적어도 하나를 기초로 산출될 수 있다.
MPEG-5 Essential Video Coding(EVC) Baseline Profile에서는 참조 픽쳐 부호화 순서(reference picture coding order)에 대한 지원이 제한되기 때문에 인코더에서 Picture Order of Coding(POC)이 올바르게 생성되지 않는다. 본 발명에서 제안하는 방법은 EVC 인코더에서 poc_derivation 기능을 사용하여 정확한 POC 값을 생성하는 것이다. 본 발명에 의하여 MPEG-EVC에 기반한 MPEG-I V-PCC Encoder/decoder를 구성할 수 있고, 보다 짧은 인트라 구간(intra period)을 가진 비디오 코딩 구조(video coding structure)를 부호화 할 수 있다.
도 10는 포인트 클라우드의 attribute 이미지를 도시한 도면이다.
3D 포인트 클라우드는 V-PCC(비디오 기반 포인트 클라우드 압축) 인코딩 프로세스에서 어큐판시 맵(Occupancy map), 지오메트리(Geometry) 이미지 및 어트리뷰트(Attribute) 이미지로 분할할 수 있다. 도 10에 도시된 것과 같이 지오메트리(Geometry) 및 어트리뷰트(Attribute) 이미지는 시각적 관점에서 원거리 레이어(far layer)와 근거리 레이어(near layer)를 포함한다. 이에 따라, 비디오 코덱에서의 all-intra와 같은 포인트 클라우드에서 인트라 프레임에 대한 접근성을 갖추려면 모든 포인트 클라우드 프레임 내부에 인트라 프레임 액세스 지점을 생성해야 한다. 또한, 인트라 부호화된 근거리 레이어(intra near layer)로부터 원거리 레이어(far layer)를 예측하게 하면, 보다 향상된 부호화 성능을 얻을 수 있다. 즉, V-PCC의 구현을 위해 인트라 프레임(Intra frame)/예측 프레임(Prediction frame)이 반복하여 코딩되는 구조가 필요하다(예를 들어, Video frame 8장일 때, IPIPIPIP 구조). 여기서, 인트라 프레임은 인트라 예측만을 사용하는 프레임이고 예측 프레임은 인트라 예측 및 인터 예측을 모두 사용할 수 있는 프레임을 나타낼 수 있다.
하지만 baseline 프로필(profile)에서는 참조 픽쳐 부호화 순서(reference picture coding order)에 대한 지원이 제한되어 있기 때문에 아래 표 1과 같이 인코더의 POC가 올바르게 생성되지 않는다. 디코더 측면에서는 poc_derivation 프로세스에 의해 reference picture order를 정확하게 식별할 수 있다. 따라서 이와 같은 성능 개선을 위해서는 V-PCC에서 IPIPIP가 구현되어야 하며, 이는 인코더에서 poc_derivation을 추가하는 것으로 해결할 수 있다.
인코더와 디코더의 Coding order 차이 비교
종래 인코더 디코더
POC Tid Ftype Ref. List0 0 (I) [L0 ] [L1 ]
1 0 (P) [L0 0 ] [L1 ]
0 0 (I) [L0 0 ] [L1 ]
1 0 (P) [L0 0 ] [L1 ]
[ 0] NALU --> Sequence Parameter Set (26 bytes)
[ 1] NALU --> Picture Parameter Set (8 bytes)
[ 2] NALU -->I-slice (18140 bytes, poc=0, tid=0, [L0 ] [L1 ]
[ 3] NALU --> SEI message: MD5 check OK
[ 4] NALU -->P-slice (111 bytes, poc=1, tid=0, [L0 0 ] [L1 ]
[ 5] NALU --> SEI message: MD5 check OK
[ 6] NALU -->I-slice (19428 bytes, poc=2, tid=0, [L0 0 ] [L1 ]
[ 7] NALU --> SEI message: MD5 check OK
[ 8] NALU --> P-slice (9757 bytes, poc=3, tid=0, [L0 2 ] [L1 ]
[ 9] NALU --> SEI message: MD5 check mismatch!
본 발명에서는 MPEG-EVC 인코더에서 더 짧은 Intra 구간을 지원하도록 수정하는 방법을 제안한다. 제안된 방법은 MPEG-I V-PCC에서 EVC와 유사한 picture 인코딩 구조를 사용할 수 있도록 할 수 있다. EVC 디코더의 poc_derivation 기능을 인코더에서 사용하여 IDR(Instantaneous Decoding Refresh) 프레임 및 Bi-prediction frame 및 random access구조를 제외한 다른 프레임에 대한 정확한 POC를 생성할 수 있다. 여기서 , IDR(Instantaneous Decoding Refresh) 프레임(픽쳐)란 순간 복호 리프레쉬 프레임로서, 영상 시퀀스의 선두 프레임를 의미한다. IDR 프레임에서는 프레임 비트스트림을 복호화하기 위해 필요한 모든 상태가 초기화된다.
또한, EVC Baseline Profile에서 nalu 변수 값이 생성될 수 있다. 여기서, nalu는 nal unit을 나타낼 수 있다. 구체적으로, 기존에는 EVC Main Profile에서 set nalu() 함수를 호출하여 nalu 변수 값을 생성할 뿐, EVC Baseline Profile에서 nalu 변수 값을 생성하지 않았으나, 본 발명에서는 Baseline Profile에서 set nalu() 함수를 호출하여, nalu 변수 값을 생성할 수 있다. 또한, nalu 변수의 생성은 참조 픽쳐 리스트(reference picture list)를 고려하여 수행될 수 있다. 일 예로, reference picture list 값이 0인 경우 nalu 변수가 생성되지 않으나, reference picture list 값이 0인 아닌 경우 nalu 변수는 생성될 수 있다. 여기서, reference picture list 값이 0이 아닌 경우의 의미는, 부호화기가 reference picture list'라는 tool를 사용하고 있지 않는 것일 수 있다.
Anchor 인코더 프로세스와 제안된 방법은 표 2와 같다.
기존 anchor와 제안된 방법의 Pseudo-code 비교
종래 기술 제안기술
if ( ! reference picture list) //baseline profile{ evc_picman_refp_init()
}else{//main profile }
set nalu()

if ( ! reference picture list) //baseline profile
{
set nalu()
if (! IDR nalu && ! Slice_B && lowdelay)
evc_poc_derivation(*, nalu,*)
evc_picman_refp_init()
}
else{//main profile }
if (reference picture list)
set nalu()
표 2를 살펴보면, Anchor 인코더는, EVC Baseline Profile에서 Random-access 외의 코딩 모드가 선택되면, 특정 조건 하에 POC derivation 수행하여 POC 값을 산출할 수 있다. POC derivation 함수에 대한 내용은 전술한 바 생략한다. 또한, POC derivation 수행함에 있어서, nalu 변수 값이 활용될 수 있다.여기서, 특정 조건은 Nal unit의 종류, 슬라이스의 종류, Random Access 인지 여부(또는 Lowdelay)인지 여부가 될 수 있다. 본 발명에서의 코딩 구조는 Low delay 및 Random Access 2종류만 있을 수 있다. 따라서, 코딩 구조가 Random access 구조가 아닐 것의 의미는 코딩 구조가 lowdelay일 것과 같은 의미를 나타낼 수 있다.
일 예로, 상기 특정 조건은 ⅰ) Nal unit이 IDR Nal unit이 아닐 것, ⅱ) Slice가 B 슬라이스가 아닐 것 및 ⅲ) 코딩 구조가 Lowdelay 일 것(또는 코딩 구조가 Random access 구조가 아닐 것)일 수 있다. 따라서, 상기 특정 조건을 모두 만족하는 경우만 POC derivation 함수가 호출될 수 있다.
POC derivation 함수는, 표 2와 같이, evc_picman_refp_init() 함수 이전에 호출될 수 있고, set nalu() 함수 이후에 호출될 수 있다. POC derivation 함수가 evc_picman_refp_init() 함수 이전에 호출되는 이유는 evc_picman_refp_init() 함수가 IPIPIP 구조의 POC를 정확하게 계산 못하기 때문에 POC derivation 함수를 먼저 호출하여, 정확한 POC 값을 계산하기 위함 일 수 있다.
제안된 EVC 인코더에서는 POC 값이 올바르게 생성 및 코딩될 수 있다. 디코더는 인코더처럼 화면을 재구성할 수 있다. 제안한 기술에 의하여 MPEG-EVC에 기반한 MPEG-I V-PCC Encoder/decoder를 구성할 수 있다. 또한, 보다 짧은 인트라 구간(intra period)을 가진 비디오 코딩 구조(video coding structure)를 부호화할 수 있다.
제안된 기술을 EVC reference software인 ETM 7.1에서 실시하였다. ETM 7.1 인코더에서는 표 3에 표시된 것처럼 POC가 올바르게 생성 및 코딩되어 있다. 디코더는 인코더처럼 화면을 재구성할 수 있다. 또한, 표 4에서는 picture coding의 구성이 다른 CTC 시퀀스를 여러 개 선택하여 결과를 비교했다. 표 5는 제안된 수정 사항이 기존 인코딩/디코딩 프로세스에 영향을 미치지 않음을 보여준다.
인코더와 디코더에서의 코딩 순서(coding order)
제안된 인코더 디코더
POC Tid Ftype Ref. List0 0 (I) [L0 ] [L1 ]
1 0 (P) [L0 0 ] [L1 ]
2 0 (I) [L0 0 ] [L1 ]
3 0 (P) [L0 2 ] [L1 ]
[ 0] NALU --> Sequence Parameter Set (26 bytes)
[ 1] NALU --> Picture Parameter Set (8 bytes)
[ 2] NALU --> I-slice (18140 bytes, poc=0, tid=0, [L0 ] [L1 ]
[ 3] NALU --> SEI message: MD5 check OK
[ 4] NALU -->P-slice (111 bytes, poc=1, tid=0, [L0 0 ] [L1 ]
[ 5] NALU --> SEI message: MD5 check OK
[ 6] NALU -->I-slice (19428 bytes, poc=2, tid=0, [L0 0 ] [L1 ]
[ 7] NALU --> SEI message: MD5 check OK
[ 8] NALU -->P-slice (108 bytes, poc=3, tid=0, [L0 2 ] [L1 ]
[ 9] NALU --> SEI message: MD5 check OK!
인코딩 설정에서 선택한 시퀀스들
Class Sequence name Frame count Frame rate Bit depth Random access Low-delay
A Tango2 294 60 10 M -
A DaylightRoad2 300 60 10 M -
A ParkRunning3 300 50 10 M -
B MarketPlace 600 60 10 M M
B BasketballDrive 500 50 8 M M
B BQTerrace 600 60 8 M M
E FourPeople 600 60 8 -O M
시퀀스 체크리스트
Class Sequence name Random access Low-delay
A Tango2 Checked
Figure pat00001
-
A DaylightRoad2 Checked
Figure pat00002
-
A ParkRunning3 Checked
Figure pat00003
-
B MarketPlace Checked
Figure pat00004
Checked
Figure pat00005
B BasketballDrive Checked
Figure pat00006
Checked
Figure pat00007
B BQTerrace Checked
Figure pat00008
Checked
Figure pat00009
E FourPeople - Checked
Figure pat00010
도 11는 본 발명의 일 실시예에 따른 인코더에서 POC derivation을 수행하는 방법을 나타낸 순서도이다.
인코더에서 POC derivation을 수행하는 방법은, 인코더의 초기화에 따라 픽쳐 그룹(GOP, group of pictures)를 결정하는 단계(S1100); 상기 픽쳐 그룹의 크기에 기초하여, 서브 픽쳐 그룹의 길이를 결정하는 단계(S1101), 여기서, 서브 픽쳐 그룹은 상기 픽쳐 그룹을 상기 픽쳐 그룹의 크기에 기초하여 분할한 것임; POC derivation 함수를 호출하여 상기 픽쳐 그룹 내 픽쳐들의 POC 값을 획득하는 단계(S1102); 여기서, POC derivation 함수는 상기 서브 픽쳐 그룹의 길이를 입력 받아 상기 POC 값을 산출하는 함수임, 상기 POC 값에 따라 상기 픽쳐 그룹 내 픽쳐들의 부호화 순서를 결정하는 단계(S1103); 상기 부호화 순서에 기초하여, 상기 픽쳐 그룹 내 픽쳐들을 부호화하는 단계(S1104)를 포함하되, 상기 POC derivation 함수는, 현재 Nal unit의 종류, 슬라이스의 종류 및 코딩 구조의 종류에 기초하여 호출되는 것일 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드 뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (7)

  1. 부호화기의 초기화에 따라 픽쳐 그룹(GOP, group of pictures)을 결정하는 단계;
    상기 픽쳐 그룹의 크기에 기초하여, 서브 픽쳐 그룹의 길이를 결정하는 단계, 여기서, 서브 픽쳐 그룹은, 상기 픽쳐 그룹을 상기 픽쳐 그룹의 크기에 기초하여 분할한 것임;
    POC derivation 함수를 호출하여, 상기 픽쳐 그룹 내 픽쳐들의 POC 값을 획득하는 단계; 여기서, 상기 POC derivation 함수는 상기 서브 픽쳐 그룹의 길이를 입력값으로 하여 상기 POC 값을 산출하는 함수임,
    상기 POC 값에 따라, 상기 픽쳐 그룹 내 픽쳐들의 부호화 순서를 결정하는 단계;
    상기 부호화 순서에 기초하여, 상기 픽쳐 그룹 내 픽쳐들을 부호화 하는 단계를 포함하되,
    상기 POC derivation 함수는, Nal unit의 종류, 슬라이스의 종류 및 코딩 구조의 종류에 기초하여 호출되는 것을 특징으로 하는, 영상 부호화 방법.
  2. 제1항에 있어서,
    상기 픽쳐 그룹의 구조는, 인트라 픽쳐 및 예측 픽쳐가 반복하여 부호화되는 구조이고,
    상기 인트라 픽쳐는, 인트라 예측만 수행되는 픽쳐이고,
    상기 예측 픽쳐는, 인트라 예측 및 인터 예측 중 어느 하나가 수행되는 픽쳐인 것을 특징으로 하는, 영상 부호화 방법.
  3. 제1항에 있어서,
    상기 POC derivation 함수는, 상기 Nal unit의 종류가 IDR(Instantaneous Decoding Refresh) Nal unit이 아닐 것, 상기 슬라이스의 종류가 B 슬라이스가 아닐 것 및 상기 코딩 구조가 Lowdelay 일 것을 모두 만족하는 경우, 호출되는 것을 특징으로 하는, 영상 부호화 방법.
  4. 제1항에 있어서,
    상기 픽쳐 그룹은, 3D 포인트 클라우드 비디오가 V-PCC(비디오 기반 포인트 클라우드 압축) 인코딩 프로세스에서 분할된 어큐판시 맵(Occupancy map), 지오메트리(Geometry) 비디오 또는 어트리뷰트(Attribute) 비디오 중 어느 하나를 부호화함에 있어서 참조되는 것인, 영상 부호화 방법.
  5. 제1항에 있어서,
    상기 POC derivation 함수의 입력값은, temporal_id(tid) 및 POC 메모리 주소를 더 포함하되,
    상기 temporal_id는, 상기 NAL unit의 헤더에서 시그날링되는 값인 것을 특징으로 하는, 영상 부호화 방법.
  6. 제5항에 있어서,
    상기 temporal_id의 값에 따라, 상기 POC derivation 함수의 POC값을 산출하는 방법이 달라지는 것을 특징으로 하는, 영상 부호화 방법.
  7. 비트스트림을 저장하는 컴퓨터로 판독가능한 기록 매체에 있어서,
    상기 비트스트림은, 픽쳐 그룹(GOP, group of pictures) 내 픽쳐들이 부호화된 데이터를 포함하되,
    상기 픽쳐 그룹 내 픽쳐들의 부호화는, 부호화 순서에 기초하여 수행되고,
    상기 부호화 순서는, 상기 픽쳐 그룹 내 픽쳐들의 POC 값에 따라 결정되고,
    상기 POC 값은, POC derivation 함수가 호출되어 산출되고,
    상기 POC derivation 함수는, 상기 픽쳐 그룹의 서브 픽쳐 그룹의 길이를 입력값으로 하여 상기 POC 값을 산출하는 함수이고,
    상기 서브 픽쳐 그룹은, 상기 픽쳐 그룹을 상기 픽쳐 그룹의 크기에 기초하여 분할된 것임을 특징으로 하는, 컴퓨터로 판독가능한 기록 매체.
KR1020210184828A 2020-12-31 2021-12-22 MPEG-5 EVC 인코더의 baseline coding 구조 개선 방법 KR20220097259A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200189772 2020-12-31
KR20200189772 2020-12-31

Publications (1)

Publication Number Publication Date
KR20220097259A true KR20220097259A (ko) 2022-07-07

Family

ID=82397819

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210184828A KR20220097259A (ko) 2020-12-31 2021-12-22 MPEG-5 EVC 인코더의 baseline coding 구조 개선 방법

Country Status (1)

Country Link
KR (1) KR20220097259A (ko)

Similar Documents

Publication Publication Date Title
US20210067777A1 (en) Encoding and decoding methods and apparatuses with multiple image block division manners
KR102171788B1 (ko) 적응적 분할 코딩
KR102344178B1 (ko) 분할 코딩을 이용한 효과적인 예측
US9998761B2 (en) Apparatus for coding a bit stream representing a three-dimensional video
KR102351029B1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US20240048765A1 (en) Method and apparatus of encoding/decoding image data based on tree structure-based block division
KR20180048713A (ko) 영상의 부호화/복호화 방법 및 이를 위한 장치
US20210014484A1 (en) Picture encoding and decoding, picture encoder, and picture decoder
KR102661461B1 (ko) 팔레트 모드 기반 영상 또는 비디오 코딩
JP2022179505A (ja) ビデオ復号方法およびビデオデコーダ
KR20210036405A (ko) 비디오 디코딩 방법 및 비디오 디코더
KR102660881B1 (ko) 팔레트 이스케이프 코딩 기반 영상 또는 비디오 코딩
CN113796069A (zh) 使用量化残差差分脉冲编解码调制编解码的帧内编解码视频
US20200099942A1 (en) Extending supported components for encoding image data
KR20220097511A (ko) 예측 가중 테이블 기반 영상/비디오 코딩 방법 및 장치
KR20220074952A (ko) 영상/비디오 코딩 방법 및 장치
CN115988202B (zh) 一种用于帧内预测的设备和方法
KR20220097259A (ko) MPEG-5 EVC 인코더의 baseline coding 구조 개선 방법
KR20220073834A (ko) 영상/비디오 코딩을 위한 상위 레벨 신택스 시그널링 방법 및 장치
KR20220098005A (ko) 가중된 예측에 기반한 영상/비디오 코딩 방법 및 장치
KR20220038123A (ko) 팔레트 코딩 기반 영상 또는 비디오 코딩
US20190325615A1 (en) Image encoding/decoding method and apparatus
KR20200004348A (ko) 타겟 영역 수정을 통해 비디오 신호를 처리하는 방법 및 장치
KR20220144765A (ko) V-pcc 그리드 평활화 과정의 셀 색인화를 보완하는 영상 부호화/복호화 방법, 장치 및 컴퓨터로 판독가능한 기록 매체
RU2793826C1 (ru) Кодирование изображения или видео на основе режима палитры