KR20210043436A - 참조픽처 리스트를 구성하는 방법 및 장치 - Google Patents

참조픽처 리스트를 구성하는 방법 및 장치 Download PDF

Info

Publication number
KR20210043436A
KR20210043436A KR1020200122444A KR20200122444A KR20210043436A KR 20210043436 A KR20210043436 A KR 20210043436A KR 1020200122444 A KR1020200122444 A KR 1020200122444A KR 20200122444 A KR20200122444 A KR 20200122444A KR 20210043436 A KR20210043436 A KR 20210043436A
Authority
KR
South Korea
Prior art keywords
reference picture
slice
list
syntax elements
picture list
Prior art date
Application number
KR1020200122444A
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 KR20210043436A publication Critical patent/KR20210043436A/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/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/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/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

Abstract

참조픽처 리스트를 구성하는 방법 및 영상 복호화 장치를 개시한다.
본 발명의 일 실시예에 의하면, 비트스트림의 SPS(sequence parameter set) 레벨에서 정의된 후보 리스트 신택스 요소들에 기초하여, 하나 이상의 참조픽처 리스트(reference picture list) 후보들을 설정하는 단계; 상기 비트스트림의 픽처 헤더(picture header) 레벨 및 슬라이스 헤더(slice header) 레벨 중 하나 이상의 레벨에서 정의된 리스트 신택스 요소들을 이용하여, 현재픽처 내 슬라이스들의 예측을 위한 참조픽처 리스트를 유도하는 단계; 및 상기 비트스트림에서 정의된 활성화 신택스 요소들에 기초하여, 상기 참조픽처 리스트 내 참조픽처들 중에서 상기 슬라이스들의 예측에 이용되는 하나 이상의 참조픽처들을 결정하는 단계를 포함하는 것을 특징으로 하는 참조픽처 리스트 구성 방법을 제공한다.

Description

참조픽처 리스트를 구성하는 방법 및 장치{METHOD AND APPARATUS FOR CONSTRUCTING REFERENCE PICTURE LIST}
본 발명은 영상의 부호화 및 복호화에 관한 것으로서, 더욱 구체적으로는 참조픽처 리스트에 대한 정보를 효율적으로 정의함으로써 부호화 및 복호화의 효율을 향상시킨 참조픽처 리스트 구성 방법 및 장치에 관한 것이다.
동영상 데이터는 음성 데이터나 정지 영상 데이터 등에 비하여 많은 데이터량을 가지기 때문에, 압축을 위한 처리 없이 그 자체를 저장하거나 전송하기 위해서는 메모리를 포함하여 많은 하드웨어 자원을 필요로 한다.
따라서, 통상적으로 동영상 데이터를 저장하거나 전송할 때에는 부호화기를 사용하여 동영상 데이터를 압축하여 저장하거나 전송하며, 복호화기에서는 압축된 동영상 데이터를 수신하여 압축을 해제하고 재생한다. 이러한 동영상 압축 기술로는 H.264/AVC를 비롯하여, H.264/AVC에 비해 약 40% 정도의 부호화 효율을 향상시킨 HEVC(High Efficiency Video Coding)가 존재한다.
그러나, 영상의 크기 및 해상도, 프레임율이 점차 증가하고 있고, 이에 따라 부호화해야 하는 데이터량도 증가하고 있으므로 기존의 압축 기술보다 더 부호화 효율이 좋고 화질 개선 효과도 높은 새로운 압축 기술이 요구된다.
이러한 요구에 부응하기 위해 본 발명은 개선된 영상 부호화 및 복호화 기술을 제공하는 것을 목적으로 하며, 특히, 본 발명의 일 측면은 슬라이스들에 공통되는 정보를 픽처 레벨에서 단일 번 정의함으로써 부호화 및 복호화의 효율을 향상시키는 기술과 관련된다.
본 발명의 일 측면은, 비트스트림의 SPS(sequence parameter set) 레벨에서 정의된 후보 리스트 신택스 요소들에 기초하여, 하나 이상의 참조픽처 리스트(reference picture list) 후보들을 설정하는 단계; 상기 비트스트림의 픽처 헤더(picture header) 레벨 및 슬라이스 헤더(slice header) 레벨 중 하나 이상의 레벨에서 정의된 리스트 신택스 요소들을 이용하여, 현재픽처 내 슬라이스들의 예측을 위한 참조픽처 리스트를 유도하는 단계; 및 상기 비트스트림에서 정의된 활성화 신택스 요소들에 기초하여, 상기 참조픽처 리스트 내 참조픽처들 중에서 상기 슬라이스들의 예측에 이용되는 하나 이상의 참조픽처들을 결정하는 단계를 포함하는 것을 특징으로 하는 참조픽처 리스트 구성 방법을 제공한다.
본 발명의 다른 일 측면은, 비트스트림의 SPS(sequence parameter set) 레벨에서 정의된 후보 리스트 신택스 요소들에 기초하여, 하나 이상의 참조픽처 리스트(reference picture list) 후보들을 설정하는 설정부; 상기 비트스트림의 픽처 헤더(picture header) 레벨 및 슬라이스 헤더(slice header) 레벨 중 하나 이상의 레벨에서 정의된 리스트 신택스 요소들을 이용하여, 현재픽처 내 슬라이스들의 예측을 위한 참조픽처 리스트를 유도하는 유도부; 및 상기 비트스트림에서 정의된 활성화 신택스 요소들에 기초하여, 상기 참조픽처 리스트 내 참조픽처들 중에서 상기 슬라이스들의 예측에 이용되는 하나 이상의 참조픽처들을 결정하는 결정부를 포함하는 것을 특징으로 하는 영상 복호화 장치를 제공한다.
이상에서 설명한 바와 같이 본 발명의 일 실시예에 의하면, 참조픽처 리스트에 대한 정보를 픽처 헤더에서 정의할 수 있으므로, 데이터의 중복을 방지할 수 있고 부호화 및 복호화의 효율을 향상시킬 수 있다.
또한, 본 발명의 다른 일 실시예에 의하면, 예측에 이용되는 참조픽처들의 디폴트 개수를 픽처 레벨에서 지정하고, 이를 슬라이스 레벨에서 재설정 가능하므로, 예측에 실제 사용되는 참조픽처의 개수를 더욱 효율적으로 관리할 수 있다.
도 1은 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 예시적인 블록도이다.
도 2는 QTBTTT 구조를 이용하여 블록을 분할하는 방법을 설명하기 위한 도면이다.
도 3은 복수의 인트라 예측 모드들을 설명하기 위한 도면이다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다.
도 5는 본 개시의 기술들을 구현할 수 있는 예측부의 예시적인 블록도이다.
도 6은 참조픽처 리스트를 구성하는 방법의 일 예를 설명하기 위한 순서도이다.
도 7은 참조픽처 리스트 후보들을 설정하는 방법의 일 예를 설명하기 위한 순서도이다.
도 8 및 도 9는 슬라이스의 예측에 이용되는 참조픽처들을 결정하는 방법의 예들을 설명하기 위한 순서도이다.
도 10은 도 8 및 도 9를 통해 설명된 방법의 효율성을 설명하기 위한 도면이다.
도 11은 다수 개의 슬라이스들로 구분되는 픽처의 형태에 대한 일 예를 설명하기 위한 도면이다.
도 12는 종래 방법의 비트스트림 구성 예와 본 발명의 비트스트림 구성 예를 비교 설명하기 위한 도면이다.
도 13 및 도 14는 참조픽처 리스트를 유도하는 방법의 예들을 설명하기 위한 순서도이다.
도 15는 참조픽처 리스트에 대한 정보를 정의하는 종래 방법과 본 발명의 방법을 비교 설명하기 위한 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 식별 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 1은 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 예시적인 블록도이다. 이하에서는 도 1을 참조하여 영상 부호화 장치와 이 장치의 하위 구성들에 대하여 설명하도록 한다.
영상 부호화 장치는 블록 분할부(110), 예측부(120), 감산기(130), 변환부(140), 양자화부(145), 부호화부(150), 역양자화부(160), 역변환부(165), 가산기(170), 필터부(180) 및 메모리(190)를 포함하여 구성될 수 있다.
영상 부호화 장치의 각 구성요소는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 각 구성요소의 기능이 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
하나의 영상(비디오)는 복수의 픽처들로 구성된다. 각 픽처들은 복수의 영역으로 분할되고 각 영역마다 부호화가 수행된다. 예를 들어, 하나의 픽처는 하나 이상의 타일(Tile) 또는/및 슬라이스(Slice)로 분할된다. 여기서, 하나 이상의 타일을 타일 그룹(Tile Group)으로 정의할 수 있다. 각 타일 또는/슬라이스는 하나 이상의 CTU(Coding Tree Unit)로 분할된다. 그리고 각 CTU는 트리 구조에 의해 하나 이상의 CU(Coding Unit)들로 분할된다. 각 CU에 적용되는 정보들은 CU의 신택스로서 부호화되고, 하나의 CTU에 포함된 CU들에 공통적으로 적용되는 정보는 CTU의 신택스로서 부호화된다. 또한, 하나의 타일 내의 모든 블록들에 공통적으로 적용되는 정보는 타일의 신택스로서 부호화되거나 다수 개의 타일을 모아 놓은 타일 그룹의 신택스로서 부호화되며, 하나의 픽처들을 구성하는 모든 블록들에 적용되는 정보는 픽처 파라미터 셋(PPS, Picture Parameter Set) 혹은 픽처 헤더에 부호화된다. 나아가, 복수의 픽처가 공통으로 참조하는 정보들은 시퀀스 파라미터 셋(SPS, Sequence Parameter Set)에 부호화된다. 그리고, 하나 이상의 SPS가 공통으로 참조하는 정보들은 비디오 파라미터 셋(VPS, Video Parameter Set)에 부호화된다.
블록 분할부(110)는 CTU(Coding Tree Unit)의 크기를 결정한다. CTU의 크기에 대한 정보(CTU size)는 SPS 또는 PPS의 신택스로서 부호화되어 영상 복호화 장치로 전달된다.
블록 분할부(110)는 영상을 구성하는 각 픽처(picture)를 미리 결정된 크기를 가지는 복수의 CTU(Coding Tree Unit)들로 분할한 이후에, 트리 구조(tree structure)를 이용하여 CTU를 반복적으로(recursively) 분할한다. 트리 구조에서의 리프 노드(leaf node)가 부호화의 기본 단위인 CU(coding unit)가 된다.
트리 구조로는 상위 노드(혹은 부모 노드)가 동일한 크기의 네 개의 하위 노드(혹은 자식 노드)로 분할되는 쿼드트리(QuadTree, QT), 또는 상위 노드가 두 개의 하위 노드로 분할되는 바이너리트리(BinaryTree, BT), 또는 상위 노드가 1:2:1 비율로 세 개의 하위 노드로 분할되는 터너리트리(TernaryTree, TT), 또는 이러한 QT 구조, BT 구조 및 TT 구조 중 둘 이상을 혼용한 구조일 수 있다. 예컨대, QTBT(QuadTree plus BinaryTree) 구조가 사용될 수 있고, 또는 QTBTTT(QuadTree plus BinaryTree TernaryTree) 구조가 사용될 수 있다. 여기서, BTTT를 합쳐서 MTT(Multiple-Type Tree)라 칭할 수 있다.
도 2는 QTBTTT 분할 트리 구조를 보인다. 도 2에서 보는 바와 같이, CTU는 먼저 QT 구조로 분할될 수 있다. 쿼드트리 분할은 분할 블록(splitting block)의 크기가 QT에서 허용되는 리프 노드의 최소 블록 크기(MinQTSize)에 도달할 때까지 반복될 수 있다. QT 구조의 각 노드가 하위 레이어의 4개의 노드들로 분할되는지 여부를 지시하는 제1 플래그(QT_split_flag)는 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다. QT의 리프 노드가 BT에서 허용되는 루트 노드의 최대 블록 크기(MaxBTSize)보다 크지 않은 경우, BT 구조 또는 TT 구조 중 어느 하나 이상으로 더 분할될 수 있다. BT 구조 및/또는 TT 구조에서는 복수의 분할 방향이 존재할 수 있다. 예컨대, 해당 노드의 블록이 가로로 분할되는 방향과 세로로 분할되는 방향 두 가지가 존재할 수 있다. 도 2와 같이, MTT 분할이 시작되면, 노드들이 분할되었는지 여부를 지시하는 제2 플래그(mtt_split_flag)와, 분할이 되었다면 추가적으로 분할 방향(vertical 혹은 horizontal)을 나타내는 플래그 및/또는 분할 타입(Binary 혹은 Ternary)을 나타내는 플래그가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다.
트리 구조의 다른 예로서, QTBTTT 구조를 사용하여 블록을 분할하는 경우, 먼저 분할 되었음을 나타내는 CU 분할 플래그(split_cu_flag) 및 분할 타입이 QT 분할인지를 지시하는 QT 분할 플래그(split_qt_flag) 정보가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다. CU 분할 플래그(split_cu_flag) 값이 분할되지 않았음을 지시하는 경우, 해당 노드의 블록이 분할 트리 구조에서의 리프 노드(leaf node)가 되어 부호화의 기본 단위인 CU(coding unit)가 된다. CU 분할 플래그(split_cu_flag) 값이 분할되었음을 지시하는 경우, QT 분할 플래그(split_qt_flag) 값을 통해 분할 타입이 QT 혹은 MTT인지를 구분한다. 분할 타입이 QT인 경우에는 더 이상의 추가 정보가 없으며, 분할 타입이 MTT인 경우에는 추가적으로 MTT 분할 방향(vertical 혹은 horizontal)을 나타내는 플래그(mtt_split_cu_vertical_flag) 및/또는 MTT 분할 타입(Binary 혹은 Ternary)을 나타내는 플래그(mtt_split_cu_binary_flag)가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다.
트리 구조의 다른 예시로서 QTBT가 사용되는 경우, 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입(즉, symmetric horizontal splitting)과 세로로 분할하는 타입(즉, symmetric vertical splitting) 두 가지가 존재할 수 있다. BT 구조의 각 노드가 하위 레이어의 블록으로 분할되는지 여부를 지시하는 분할 플래그(split_flag) 및 분할되는 타입을 지시하는 분할 타입 정보가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다. 한편, 해당 노드의 블록을 서로 비대칭 형태의 두 개의 블록으로 분할하는 타입이 추가로 더 존재할 수도 있다. 비대칭 형태에는 해당 노드의 블록을 1:3의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태가 포함될 수 있고, 혹은 해당 노드의 블록을 대각선 방향으로 분할하는 형태가 포함될 수도 있다.
CU는 CTU로부터의 QTBT 또는 QTBTTT 분할에 따라 다양한 크기를 가질 수 있다. 이하에서는, 부호화 또는 복호화하고자 하는 CU(즉, QTBTTT의 리프 노드)에 해당하는 블록을 '현재블록'이라 칭한다.
예측부(120)는 현재블록을 예측하여 예측블록을 생성한다. 예측부(120)는 인트라 예측부(122)와 인터 예측부(124)를 포함한다.
일반적으로, 픽처 내 현재블록들은 각각 예측적으로 코딩될 수 있다. 일반적으로 현재블록의 예측은 (현재블록을 포함하는 픽처로부터의 데이터를 사용하는) 인트라 예측 기술 또는 (현재블록을 포함하는 픽처 이전에 코딩된 픽처로부터의 데이터를 사용하는) 인터 예측 기술을 사용하여 수행될 수 있다. 인터 예측은 단방향 예측과 양방향 예측 모두를 포함한다.
인트라 예측부(122)는 현재블록이 포함된 현재 픽처 내에서 현재블록의 주변에 위치한 픽셀(참조 픽셀)들을 이용하여 현재블록 내의 픽셀들을 예측한다. 예측 방향에 따라 복수의 인트라 예측모드가 존재한다. 예컨대, 도 3에서 보는 바와 같이, 복수의 인트라 예측모드는 planar 모드와 DC 모드를 포함하는 비방향성 모드와 65개의 방향성 모드를 포함할 수 있다. 각 예측모드에 따라 사용할 주변 픽셀과 연산식이 다르게 정의된다.
인트라 예측부(122)는 현재블록을 부호화하는데 사용할 인트라 예측 모드를 결정할 수 있다. 일부 예들에서, 인트라 예측부(122)는 여러 인트라 예측 모드들을 사용하여 현재블록을 인코딩하고, 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측부(122)는 여러 테스트된 인트라 예측 모드들에 대한 레이트 왜곡(rate-distortion) 분석을 사용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중 최선의 레이트 왜곡 특징들을 갖는 인트라 예측 모드를 선택할 수도 있다.
인트라 예측부(122)는 복수의 인트라 예측 모드 중에서 하나의 인트라 예측 모드를 선택하고, 선택된 인트라 예측 모드에 따라 결정되는 주변 픽셀(참조 픽셀)과 연산식을 사용하여 현재블록을 예측한다. 선택된 인트라 예측 모드에 대한 정보가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다.
인터 예측부(124)는 움직임 보상 과정을 통해 현재블록에 대한 예측블록을 생성한다. 현재 픽처보다 먼저 부호화 및 복호화된 참조픽처 내에서 현재블록과 가장 유사한 블록을 탐색하고, 그 탐색된 블록을 이용하여 현재블록에 대한 예측블록을 생성한다. 그리고, 현재 픽처 내의 현재블록과 참조픽처 내의 예측블록 간의 변위(displacement)에 해당하는 움직임벡터(motion vector)를 생성한다. 일반적으로, 움직임 추정은 루마(luma) 성분에 대해 수행되고, 루마 성분에 기초하여 계산된 모션 벡터는 루마 성분 및 크로마 성분 모두에 대해 사용된다. 현재블록을 예측하기 위해 사용된 참조픽처에 대한 정보 및 움직임벡터에 대한 정보를 포함하는 움직임 정보는 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다.
감산기(130)는 현재블록으로부터 인트라 예측부(122) 또는 인터 예측부(124)에 의해 생성된 예측블록을 감산하여 잔차블록을 생성한다.
변환부(140)는 공간 영역의 픽셀 값들을 가지는 잔차블록 내의 잔차 신호를 주파수 도메인의 변환 계수로 변환한다. 변환부(140)는 잔차블록의 전체 크기를 변환 단위로 사용하여 잔차블록 내의 잔차 신호들을 변환할 수 있으며, 또는 잔차블록을 변환 영역 및 비변환 영역인 두 개의 서브블록으로 구분하여, 변환 영역 서브블록만 변환 단위로 사용하여 잔차 신호들을 변환할 수 있다. 여기서, 변환 영역 서브블록은 가로축 (혹은 세로축) 기준 1:1의 크기 비율을 가지는 두 개의 직사각형 블록 중 하나일 수 있다. 이런 경우, 서브블록 만을 변환하였음을 지시하는 플래그(cu_sbt_flag), 방향성(vertical/horizontal) 정보(cu_sbt_horizontal_flag) 및/또는 위치 정보(cu_sbt_pos_flag)가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다. 또한, 변환 영역 서브블록의 크기는 가로축 (혹은 세로축) 기준 1:3의 크기 비율을 가질 수 있으며, 이런 경우 해당 분할을 구분하는 플래그(cu_sbt_quad_flag)가 추가적으로 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다.
양자화부(145)는 변환부(140)로부터 출력되는 변환 계수들을 양자화하고, 양자화된 변환 계수들을 부호화부(150)로 출력한다.
부호화부(150)는 양자화된 변환 계수들을 CABAC(Context-based Adaptive Binary Arithmetic Code) 등의 부호화 방식을 사용하여 부호화함으로써 비트스트림을 생성한다. 부호화부(150)는 블록 분할과 관련된 CTU size, CU 분할 플래그, QT 분할 플래그, MTT 분할 방향, MTT 분할 타입 등의 정보를 부호화하여, 영상 복호화 장치가 영상 부호화 장치와 동일하게 블록을 분할할 수 있도록 한다.
또한, 부호화부(150)는 현재블록이 인트라 예측에 의해 부호화되었는지 아니면 인터 예측에 의해 부호화되었는지 여부를 지시하는 예측 타입에 대한 정보를 부호화하고, 예측 타입에 따라 인트라 예측정보(즉, 인트라 예측 모드에 대한 정보) 또는 인터 예측정보(참조픽처 및 움직임벡터에 대한 정보)를 부호화한다.
역양자화부(160)는 양자화부(145)로부터 출력되는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 생성한다. 역변환부(165)는 역양자화부(160)로부터 출력되는 변환 계수들을 주파수 도메인으로부터 공간 도메인으로 변환하여 잔차블록을 복원한다.
가산부(170)는 복원된 잔차블록과 예측부(120)에 의해 생성된 예측블록을 가산하여 현재블록을 복원한다. 복원된 현재블록 내의 픽셀들은 다음 순서의 블록을 인트라 예측할 때 참조 픽셀로서 사용된다.
필터부(180)는 블록 기반의 예측 및 변환/양자화로 인해 발생하는 블록킹 아티팩트(blocking artifacts), 링잉 아티팩트(ringing artifacts), 블러링 아티팩트(blurring artifacts) 등을 줄이기 위해 복원된 픽셀들에 대한 필터링을 수행한다. 필터부(180)는 디블록킹 필터(182)와 SAO(Sample Adaptive Offset) 필터(184)를 포함할 수 있다.
디블록킹 필터(180)는 블록 단위의 부호화/복호화로 인해 발생하는 블록킹 현상(blocking artifact)을 제거하기 위해 복원된 블록 간의 경계를 필터링하고, SAO 필터(184)는 디블록킹 필터링된 영상에 대해 추가적인 필터링을 수행한다. SAO 필터(184)는 손실 부호화(lossy coding)로 인해 발생하는 복원된 픽셀과 원본 픽셀 간의 차이를 보상하기 위해 사용되는 필터이다.
디블록킹 필터(182) 및 SAO 필터(184)를 통해 필터링된 복원블록은 메모리(190)에 저장된다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다. 이하에서는 도 4를 참조하여 영상 복호화 장치와 이 장치의 하위 구성들에 대하여 설명하도록 한다.
영상 복호화 장치는 복호화부(410), 역양자화부(420), 역변환부(430), 예측부(440), 가산기(450), 필터부(460) 및 메모리(470)를 포함하여 구성될 수 있다.
도 1의 영상 부호화 장치와 마찬가지로, 영상 복호화 장치의 각 구성요소는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 각 구성요소의 기능이 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
복호화부(410)는 영상 부호화 장치로부터 수신한 비트스트림을 복호화하여 블록 분할과 관련된 정보를 추출함으로써 복호화하고자 하는 현재블록을 결정하고, 현재블록을 복원하기 위해 필요한 예측정보와 잔차신호에 대한 정보 등을 추출한다.
복호화부(410)는 SPS(Sequence Parameter Set) 또는 PPS(Picture Parameter Set)로부터 CTU size에 대한 정보를 추출하여 CTU의 크기를 결정하고, 픽처를 결정된 크기의 CTU로 분할한다. 그리고, CTU를 트리 구조의 최상위 레이어, 즉, 루트 노드로 결정하고, CTU에 대한 분할정보를 추출함으로써 트리 구조를 이용하여 CTU를 분할한다.
예컨대, QTBTTT 구조를 사용하여 CTU를 분할하는 경우, 먼저 QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여 각 노드를 하위 레이어의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 MTT의 분할과 관련된 제2 플래그(MTT_split_flag) 및 분할 방향(vertical / horizontal) 및/또는 분할 타입(binary / ternary) 정보를 추출하여 해당 리프 노드를 MTT 구조로 분할한다. 이를 통해 QT의 리프 노드 이하의 각 노드들을 BT 또는 TT 구조로 반복적으로(recursively) 분할한다.
또 다른 예로서, QTBTTT 구조를 사용하여 CTU를 분할하는 경우, 먼저 CU의 분할 여부를 지시하는 CU 분할 플래그(split_cu_flag)를 추출하고, 해당 블록이 분할된 경우, QT 분할 플래그(split_qt_flag)를 추출한다. 분할 타입이 QT가 아니고 MTT인 경우, MTT 분할 방향(vertical 혹은 horizontal)을 나타내는 플래그(mtt_split_cu_vertical_flag) 및/또는 MTT 분할 타입(Binary 혹은 Ternary)을 나타내는 플래그(mtt_split_cu_binary_flag)를 추가적으로 추출한다. 분할 과정에서 각 노드는 0번 이상의 반복적인 QT 분할 후에 0번 이상의 반복적인 MTT 분할이 발생할 수 있다. 예컨대, CTU는 바로 MTT 분할이 발생하거나, 반대로 다수 번의 QT 분할만 발생할 수도 있다.
다른 예로서, QTBT 구조를 사용하여 CTU를 분할하는 경우, QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여 각 노드를 하위 레이어의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 BT로 더 분할되는지 여부를 지시하는 분할 플래그(split_flag) 및 분할 방향 정보를 추출한다.
한편, 복호화부(410)는 트리 구조의 분할을 통해 복호화하고자 하는 현재블록을 결정하게 되면, 현재블록이 인트라 예측되었는지 아니면 인터 예측되었는지를 지시하는 예측 타입에 대한 정보를 추출한다. 예측 타입 정보가 인트라 예측을 지시하는 경우, 복호화부(410)는 현재블록의 인트라 예측정보(인트라 예측 모드)에 대한 신택스 요소를 추출한다. 예측 타입 정보가 인터 예측을 지시하는 경우, 복호화부(410)는 인터 예측정보에 대한 신택스 요소, 즉, 움직임벡터 및 그 움직임벡터가 참조하는 참조픽처를 나타내는 정보를 추출한다.
한편, 복호화부(410)는 잔차신호에 대한 정보로서 현재블록의 양자화된 변환계수들에 대한 정보를 추출한다.
역양자화부(420)는 양자화된 변환계수들을 역양자화하고, 역변환부(430)는 역양자화된 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환하여 잔차신호들을 복원함으로써 현재블록에 대한 잔차블록을 생성한다.
또한, 역변환부(430)는 변환블록의 일부 영역(서브블록)만 역변환하는 경우, 변환블록의 서브블록만을 변환하였음을 지시하는 플래그(cu_sbt_flag), 서브블록의 방향성(vertical/horizontal) 정보(cu_sbt_horizontal_flag) 및/또는 서브블록의 위치 정보(cu_sbt_pos_flag)를 추출하여, 해당 서브블록의 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환함으로써 잔차신호들을 복원하고, 역변환되지 않은 영역에 대해서는 잔차신호로 "0" 값을 채움으로써 현재블록에 대한 최종 잔차블록을 생성한다.
예측부(440)는 인트라 예측부(442) 및 인터 예측부(444)를 포함할 수 있다. 인트라 예측부(442)는 현재블록의 예측 타입이 인트라 예측일 때 활성화되고, 인터 예측부(444)는 현재블록의 예측 타입이 인터 예측일 때 활성화된다.
인트라 예측부(442)는 복호화부(410)로부터 추출된 인트라 예측 모드에 대한 신택스 요소로부터 복수의 인트라 예측 모드 중 현재블록의 인트라 예측 모드를 결정하고, 인트라 예측 모드에 따라 현재블록 주변의 참조 픽셀들을 이용하여 현재블록을 예측한다.
인터 예측부(444)는 복호화부(410)로부터 추출된 인터 예측 모드에 대한 신택스 요소를 이용하여 현재블록의 움직임벡터와 그 움직임벡터가 참조하는 참조픽처를 결정하고, 움직임벡터와 참조픽처를 이용하여 현재블록을 예측한다.
가산기(450)는 역변환부로부터 출력되는 잔차블록과 인터 예측부 또는 인트라 예측부로부터 출력되는 예측블록을 가산하여 현재블록을 복원한다. 복원된 현재블록 내의 픽셀들은 이후에 복호화할 블록을 인트라 예측할 때의 참조픽셀로서 활용된다.
필터부(460)는 디블록킹 필터(462) 및 SAO 필터(464)를 포함할 수 있다. 디블록킹 필터(462)는 블록 단위의 복호화로 인해 발생하는 블록킹 현상(blocking artifact)를 제거하기 위해, 복원된 블록 간의 경계를 디블록킹 필터링한다. SAO 필터(464)는 손실 부호화(lossy coding)으로 인해 발생하는 복원된 픽셀과 원본 픽셀 간의 차이를 보상하기 위해, 디블록킹 필터링 이후의 복원된 블록에 대해 추가적인 필터링을 수행한다. 디블록킹 필터(462) 및 SAO 필터(464)를 통해 필터링된 복원블록은 메모리(470)에 저장된다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
픽처 또는 슬라이스의 예측을 위해 실제 사용되는 참조픽처 리스트(reference picture list, RPL)는 L0 방향의 RPL(reference picture list 0, 리스트 0) 및/또는 L1 방향의 RPL(reference picture list 1, 리스트 1)로 설정된다. RPL 0의 경우에는 현재픽처의 이전 픽처, 현재픽처의 이후 픽처 및/또는 long term 참조픽처들로 구성되고, RPL 1의 경우에는 현재픽처의 이후 픽처, 현재픽처의 이전 픽처 및/또는 long term 참조픽처들로 구성된다.
종래에는, 인터 예측 시에 사용되는 참조픽처 리스트에 대한 정보(RPL 정보)가 비트스트림의 SPS(sequence parameter set) 레벨 및/또는 슬라이스(slice) 레벨에서 정의되었다.
SPS 레벨에서 정의되는 RPL 정보를 통해, 컨텐츠 전체에서 사용되는 RPL들의 여러 세트(set)가 정의된다. SPS 레벨에서 정의되는 RPL 정보에 대한 신택스 요소들 및 신택스 요소들의 구조가 표 1에 나타나 있다.
Figure pat00001
먼저, 정의하려는 RPL의 개수에 대한 신택스 요소(num_short_term_ref_pic_sets)가 부호화되어 영상 부호화 장치로부터 영상 복호화 장치로 시그널링된다. 다음으로, RPL의 한 세트를 정의하는 함수(st_ref_pic_set(i))가 RPL의 개수만큼 호출되어, RPL의 개수만큼의 RPL이 설정된다.
표 2는 호출된 st_ref_pic_set(i)를 이용하여 RPL의 한 세트를 정의하는 과정의 신택스 요소들 및 신택스 요소들의 구조를 나타낸다.
Figure pat00002
참조픽처는 시간 상(display order 상) 현재픽처를 기준으로 하여 이전에 디스플레이되는(나오는) 이전 참조픽처 및 이후에 디스플레이되는 이후 참조픽처로 구분될 수 있다. 먼저, 이전 참조픽처의 개수를 지시하는 신택스 요소(num_negative_pics) 및 이후 참조픽처의 개수를 지시하는 신택스 요소(num_positive_pics)가 부호화되어 영상 부호화 장치로부터 영상 복호화 장치로 시그널링된다.
다음으로, 이전 참조픽처 및 이후 참조픽처 각각에 대해, 전송된 개수(num_negative_pics 및 num_positive_pics)만큼의 참조픽처 정보가 부호화되어 영상 부호화 장치로부터 영상 복호화 장치로 시그널링된다. 참조픽처 정보는 현재픽처의 POC(picture order count) 값과 참조픽처의 POC 값 사이의 차이 값에서 1을 뺀 값(delta_poc_s0_minus1 및 delta_poc_s1_minus1)을 나타낸다. 여기서, delta_poc_s0_minus1은 현재픽처의 POC 값과 이전 참조픽처의 POC 값 사이의 차이에서 1을 뺀 값을 나타내며, delta_poc_s1_minus1은 현재픽처의 POC 값과 이후 참조픽처의 POC 값 사이의 차이에서 1을 뺀 값을 나타낸다. delta_poc_s0_minus1의 값에는 마이너스 부호가 적용될 수 있고, delta_poc_s1_minus1의 값에는 + 부호가 적용될 수 있다.
한편, 종래 방법에서는 슬라이스 레벨에서 정의되는 RPL 정보를 통해, 해당 슬라이스에서 사용되는 하나의 RPL이 정의된다. 슬라이스 레벨에서 정의되는 RPL 정보는 SPS 레벨에서 정의된 RPL들 중에서 어느 하나를 지시하거나, SPS 레벨에서 정의된 RPL들과는 다른 별도의 RPL을 지시할 수도 있다. 슬라이스 레벨(구체적으로, 슬라이스 헤더 레벨)에서 정의되는 RPL 정보에 대한 신택스 요소들 및 신택스 요소들의 구조가 표 3에 나타나 있다.
Figure pat00003
해당 슬라이스의 NAL(network abstraction layer) 유닛 타입이 IDR(instantaneous decoder refresh)인 경우에는 RPL 정보를 전송할 필요가 없으므로, 가장 먼저 해당 슬라이스의 NAL 유닛 타입을 확인한다. 여기서, IDR은 두 가지의 NAL 유닛 타입인 IDR_W_RADL 혹은 IDR_N_LP 중에서 어느 하나로 정의된다.
해당 슬라이스의 NAL 유닛 타입이 IDR이 아닌 경우에는(nal_unit_type!=IDR_W_RADL && nal_unit_type!=IDR_N_LP), short_term_ref_pic_set_sps_flag 신택스 요소가 부호화되어 영상 부호화 장치로부터 영상 복호화 장치로 시그널링된다. short_term_ref_pic_set_sps_flag는 SPS 레벨에서 정의된 RPL 세트들 중에서 어느 하나를 해당 슬라이스의 예측을 위해 사용할지 여부를 나타내는 신택스 요소이다.
SPS 레벨에서 정의된 RPL 세트들 중에서 어느 하나를 해당 슬라이스의 예측을 위해 사용하고(short_term_ref_pic_set_sps_flag==1) SPS 레벨에서 정의된 RPL 세트의 개수가 복수 개인 경우에는(num_short_term_ref_pic_sets>1), short_term_ref_pic_set_idx 신택스 요소가 부호화되어 영상 부호화 장치로부터 영상 복호화 장치로 시그널링된다. short_term_ref_pic_set_idx는 SPS 레벨에서 정의된 RPL 세트들 중에서 어느 하나의 인덱스 값을 지시하는 신택스 요소이다. short_term_ref_pic_set_idx에 의해 지시된 RPL이 해당 슬라이스의 예측을 위해 사용되는 RPL 0 및/또는 RPL 1에 해당한다.
이와 달리, SPS 레벨에서 정의된 RPL 세트들을 해당 슬라이스의 예측을 위해 사용하지 않는 경우에는(short_term_ref_pic_set_sps_flag==0), 표 2에서 설명된 st_ref_pic_set(i)를 호출하여 해당 슬라이스의 예측을 위해 사용되는 RPL(RPL 0 및/또는 RPL 1)을 정의한다.
한편, 종래 방법에서는, RPL 0 및/또는 RPL 1에서 설정된 참조픽처들 중에서 해당 슬라이스의 예측을 위해 실제 사용되는 참조픽처의 개수가 PPS(picture parameter set) 레벨 및/또는 슬라이스 레벨에서 결정될 수 있다. PPS 레벨에서 결정되는 참조픽처의 개수는 해당 슬라이스의 예측을 위해 사용되는 참조픽처의 디폴트(default) 개수이며, 슬라이스 레벨에서 결정되는 참조픽처의 개수는 해당 슬라이스의 예측을 위해 실제 사용되는 참조픽처의 개수이다.
PPS 레벨에서 참조픽처의 디폴트 개수를 결정하기 위한 신택스 요소들 및 신택스 요소들의 구조가 표 4에 나타나 있다.
Figure pat00004
표 4에 나타낸 바와 같이, RPL 0에 대한 참조픽처의 디폴트 개수에서 1을 뺀 값을 나타내는 신택스 요소(num_ref_idx_l0_default_active_minus1) 및 RPL 1에 대한 참조픽처의 디폴트 개수에서 1을 뺀 값을 나타내는 신택스 요소(num_ref_idx_l1_default_active_minus1)가 부호화되어 영상 부호화 장치로부터 영상 복호화 장치로 시그널링된다.
슬라이스 레벨(구체적으로, 슬라이스 헤더 레벨)에서 참조픽처의 개수를 결정하기 위한 신택스 요소들 및 신택스 요소들의 구조가 표 5에 나타나 있다.
Figure pat00005
PPS 레벨에서 결정된 디폴트 개수를 슬라이스 레벨에서 재설정할지 여부가 먼저 결정될 수 있다. 이를 위해, 실제 사용되는 참조픽처의 개수에 대한 정보가 슬라이스 레벨에서 시그널링되는지 여부를 나타내는 신택스 요소(num_ref_idx_active_override_flag)가 부호화되어 영상 부호화 장치로부터 영상 복호화 장치로 시그널링된다.
참조픽처의 개수에 대한 정보가 슬라이스 레벨에서 시그널링되면(num_ref_idx_active_override_flag==1), 실제 사용되는 참조픽처의 개수에서 1을 뺀 값을 나타내는 신택스 요소들(num_ref_idx_l0_active_minus1 및/또는 num_ref_idx_l1_active_minus1)dl 부호화되어 영상 부호화 장치로부터 영상 복호화 장치로 시그널링된다.
이와 달리, 참조픽처의 개수에 대한 정보가 슬라이스 레벨에서 시그널링되지 않으면(num_ref_idx_active_override_flag==0), 실제 사용되는 참조픽처의 개수를 나타내는 신택스 요소들(num_ref_idx_l0_active_minus1 및/또는 num_ref_idx_l1_active_minus1)이 시그널링되지 않으며, PPS 레벨에서 정의된 디폴트 개수에 따라 실제 사용되는 참조픽처가 결정된다.
본 명세서를 통해, RPL을 정의하는 다양한 방법들이 제안된다. RPL을 정의하는 다양한 방법에는 1) 예측을 위해 사용될 수 있는 RPL 세트들을 정의 또는 설정하는 방법, 2) RPL 세트들 각각의 참조픽처들을 정의 또는 설정하는 방법, 3) 예측에 사용되는 RPL을 정의 또는 유도하는 방법, 4) 정의된 RPL 내 참조픽처들에 대해, 참조픽처의 디폴트 개수 및 참조픽처의 실제 개수(실제 사용되는 참조픽처의 개수)를 정의 또는 결정하는 방법 등이 포함된다.
본 개시의 기술들을 구현할 수 있는 예측부(440)의 예시적인 블록도가 도 5에 나타나 있으며, 참조픽처 리스트를 구성하는 방법의 일 예가 도 6에 나타나 있다. 도 5에 나타낸 바와 같이, 예측부(440)는 설정부(510), 유도부(520) 및 결정부(530)를 포함하여 구성될 수 있다.
먼저, 영상 부호화 장치는 컨텐츠 전체에서 사용될 수 있는 RPL들의 여러 세트를 정의하고, 정의된 RPL 세트들에 대한 신택스 요소들을 부호화하여 영상 복호화 장치로 시그널링할 수 있다. 여기서, 정의된 RPL들의 세트는 '참조픽처 리스트 후보들(RPL 후보들)'일 수 있으며, RPL 세트들에 대한 신택스 요소들은 '후보 리스트 신택스 요소들'일 수 있다. 후보 리스트 신택스 요소들은 비트스트림의 SPS 레벨에서 정의될 수 있다.
복호화부(410)는 비트스트림의 SPS 레벨로부터 후보 리스트 신택스 요소들을 복호화하고, 설정부(510)는 후보 리스트 신택스 요소들에 기초하여 RPL 후보들을 정의 또는 설정할 수 있다(S610).
영상 부호화 장치는 현재픽처 내 슬라이스들의 예측을 위한 RPL을 정의 또는 유도할 수 있다. 현재픽처 내 슬라이스들의 예측을 위한 RPL은 RPL 후보들 중에서 어느 하나에 해당하거나, RPL 후보들에 속하지 않는 새로운 RPL일 수 있다. 유도된 RPL에 대한 신택스 요소들(리스트 신택스 요소들)은 부호화되어 영상 복호화 장치로 시그널링될 수 있다. 리스트 신택스 요소들은 비트스트림의 픽처 레벨(픽처 헤더 레벨) 또는 슬라이스 레벨(슬라이스 헤더 레벨)에서 정의될 수 있다.
복호화부(410)는 비트스트림의 픽처 레벨 또는 슬라이스 레벨로부터 리스트 신택스 요소들을 복호화하고, 유도부(520)는 리스트 신택스 요소들을 이용하여 현재픽처 내 슬라이스들의 예측을 위한 RPL을 정의 또는 유도할 수 있다(S620). 여기서, RPL은 L0 방향의 RPL(RPL 0) 및/또는 L1 방향의 RPL(RPL 1)을 포함할 수 있다.
영상 부호화 장치는 유도된 RPL 내 참조픽처들 중에서 슬라이스의 예측을 위해 사용되는 참조픽처의 디폴트 개수를 결정할 수 있다. 결정된 디폴트 개수에 대한 신택스 요소(디폴트 신택스 요소)가 부호화되어 영상 복호화 장치로 시그널링될 수 있다. 디폴트 신택스 요소는 비트스트림의 PPS 레벨 또는 픽처 레벨(픽처 헤더 레벨)에서 정의될 수 있다.
또한, 영상 부호화 장치는 슬라이스의 예측을 위해 실제 사용된 참조픽처의 개수(참조픽처의 실제 개수)를 판단하고, 참조픽처의 실제 개수와 디폴트 개수가 서로 같은지 여부를 판단할 수 있다.
영상 부호화 장치는 참조픽처의 실제 개수와 디폴트 개수가 서로 다른 경우에, 참조픽처의 실제 개수에 대한 신택스 요소(개수 신택스 요소)를 부호화하여 영상 복호화 장치로 시그널링할 수 있다. 개수 신택스 요소는 비트스트림의 슬라이스 레벨(슬라이스 헤더 레벨)에서 정의될 수 있다. 이와 달리, 영상 부호화 장치는 참조픽처의 실제 개수와 디폴트 개수가 서로 같은 경우에, 개수 신택스 요소를 시그널링하지 않을 수 있다.
두 경우 모두에서, 개수 신택스 요소가 슬라이스 레벨에서 정의되는지 여부를 지시하는 신택스 요소(제3플래그)가 부호화되어 영상 복호화 장치로 시그널링될 수 있다.
복호화부(410)는 비트스트림으로부터 활성화 신택스 요소들을 복호화할 수 있다. 활성화 신택스 요소들에는 디폴트 신택스 요소 및 제3플래그가 포함되거나, 제3플래그의 값에 따라 개수 신택스 요소가 더 포함될 수 있다. 결정부(530)는 활성화 신택스 요소들에 기초하여 RPL 내 참조픽처들 중에서 슬라이스의 예측에 이용되는 참조픽처를 하나 이상 결정할 수 있다(S630).
실시예 1
실시예 1은 RPL 후보들을 설정하는 방법이다. 실시예 1을 설명하기 위한 순서도가 도 7에 나타나 있으며, 실시예 1에 대한 신택스 구조가 표 6 및 표 7에 나타나 있다.
Figure pat00006
Figure pat00007
후보 리스트 신택스 요소들에는 rpl1_same_as_rpl0_flag(제2플래그), num_ref_pic_lists_in_sps[i], num_ref_entries, abs_delta_poc_st 및 strp_entry_sign_flag가 포함될 수 있다.
제2플래그는 RPL 후보 0와 RPL 후보 1이 서로 대칭 관계에 있는지 여부를 나타낼 수 있다. 여기서, RPL 후보 0은 P-슬라이스(predictive slice) 또는 B-슬라이스(bi-predictive slice)의 예측에 이용될 수 있는 참조픽처 리스트 후보(제1참조픽처 리스트 후보)이며, RPL 후보 1은 B-슬라이스의 예측에만 이용될 수 있는 참조픽처 리스트 후보(제2참조픽처 리스트 후보)이다.
디스플레이 순서 상, 현재픽처를 기준으로 이전 참조픽처들의 위치와 이후 참조픽처들의 위치가 서로 대칭 관계에 있을 수 있다. 예를 들어, 현재픽처의 POC가 10인 경우에, 이전 참조픽처들의 POC가 9 및 8이고, 이후 참조픽처들의 POC가 11 및 12라면, RPL 후보 0과 RPL 후보 1은 서로 대칭 관계에 있다고 할 수 있다. 이러한 경우에는 RPL 후보 0과 RPL 후보 1 모두에 대한 정보를 시그널링할 필요 없이, 어느 한 방향의 정보로부터 다른 방향의 정보를 유도할 수 있다. 따라서, 제2플래그는 RPL 후보 1에 대한 신택스 요소들이 SPS 레벨에서 정의되는지 여부(시그널링되는지 여부)를 지시한다고 할 수 있다.
num_ref_pic_lists_in_sps[i]은 RPL 후보 0 및 RPL 후보 1 중에서 i(표 6의 i)에 해당하는 참조픽처 리스트 후보의 개수(표 6의 j)를 지시할 수 있다. 예를 들어, num_ref_pic_lists_in_sps[0]은 RPL 후보 0의 개수를 지시하며, num_ref_pic_lists_in_sps[1]은 RPL 후보 1의 개수를 지시할 수 있다.
ref_pic_list_struct(i, j)는 RPL 후보 0 및/또는 RPL 후보 1에 포함된 참조픽처를 정의하는 함수이다. num_ref_entries는 ref_pic_list_struct(i, j)에 의해 지시되는 RPL 후보 내 참조픽처의 개수를 나타내며, abs_delta_poc_st 및 strp_entry_sign_flag은 ref_pic_list_struct(i, j)에 의해 지시되는 RPL 후보 내 참조픽처의 정보를 나타낸다.
abs_delta_poc_st은 현재픽처의 POC 값과 해당 참조픽처의 POC 값 사이의 차이에 대한 절대 값(현재픽처로부터 참조픽처까지의 거리)을 나타내며, strp_entry_sign_flag은 차이에 대한 부호 값(현재픽처를 기준으로 한 이전 참조픽처 또는 이후 참조픽처)을 나타낸다. 예를 들어, 현재픽처의 POC 값이 10이고, 이전 참조픽처의 POC 값이 8인 경우에, abs_delta_poc_st==8이고 strp_entry_sign_flag==0(마이너스)이다. 다른 예로, 현재픽처의 POC 값이 10이고, 이후 참조픽처의 POC 값이 11인 경우에, abs_delta_poc_st==1이고 strp_entry_sign_flag==1(플러스)이다.
먼저, 영상 복호화 장치는 비트스트림의 SPS 레벨로부터 제2플래그를 복호화할 수 있다(S710). 또한, 영상 복호화 장치는 제2플래그의 값을 판단하고(S720), 그 판단 결과에 따라, RPL 후보 0에 대한 신택스 요소들에 기초하여 RPL 후보 1을 설정하거나(S730 내지 S750), RPL 후보 1에 대한 신택스 요소들에 기초하여 RPL 후보 1을 설정할 수 있다(S760 내지 S780).
일 예로, RPL 후보 1에 대한 신택스 요소들이 SPS 레벨에서 정의되지 않는 경우에(rpl1_same_as_rpl0_flag==1), 영상 복호화 장치는 RPL 후보 0에 대한 신택스 요소들을 복호화할 수 있다(S730). RPL 후보 0에 대한 신택스 요소들에는 num_ref_pic_lists_in_sps[0], abs_delta_poc_st 및 strp_entry_sign_flag이 포함된다. 영상 복호화 장치는 num_ref_pic_lists_in_sps[0] 신택스 요소가 나타내는 RPL 후보 0의 개수(j)만큼 ref_pic_list_struct(0, j)를 반복적으로 호출하여 RPL 후보 0 각각에 대한 abs_delta_poc_st 및 strp_entry_sign_flag를 복호화할 수 있다. 이 후, 영상 복호화 장치는 RPL 후보 0에 대한 신택스 요소들에 기초하여 RPL 후보 0을 설정할 수 있다(S740).
또한, 영상 복호화 장치는 RPL 후보 0 및 RPL 후보 1 사이의 대칭 관계가 성립함을 전제로, RPL 후보 0에 대한 신택스 요소들에 기초하여 RPL 후보 1을 설정할 수 있다(S750). S750 과정에서, num_ref_pic_lists_in_sps[1]을 num_ref_pic_lists_in_sps[0]과 같게 설정하고, ref_pic_list_struct(1, j)을 ref_pic_list_struct(0, j)과 같게 설정함으로써 RPL 후보 1에 대한 신택스 요소들이 유도될 수 있으며, 유도된 RPL 후보 1에 대한 신택스 요소들에 기초하여 RPL 후보 1이 설정될 수 있다.
다른 예로, RPL 후보 1에 대한 신택스 요소들이 SPS 레벨에서 정의되는 경우에(rpl1_same_as_rpl0_flag==0), 영상 복호화 장치는 RPL 후보 0에 대한 신택스 요소들 및 RPL 후보 1에 대한 신택스 요소들을 복호화할 수 있다(S760). RPL 후보 1에 대한 신택스 요소들에는 num_ref_pic_lists_in_sps[1], abs_delta_poc_st 및 strp_entry_sign_flag이 포함된다. 영상 복호화 장치는 num_ref_pic_lists_in_sps[1] 신택스 요소가 나타내는 RPL 후보 1의 개수(j)만큼 ref_pic_list_struct(1, j)를 반복적으로 호출하여 RPL 후보 1 각각에 대한 abs_delta_poc_st 및 strp_entry_sign_flag를 복호화할 수 있다. 이 후, 영상 복호화 장치는 RPL 후보 0에 대한 신택스 요소들에 기초하여 RPL 후보 0을 설정하고(S770), RPL 후보 1에 대한 신택스 요소들에 기초하여 RPL 후보 1을 설정할 수 있다(S780).
실시예 2
실시예 2는 RPL 0 및/또는 RPL 1 내 참조픽처들 중에서 예측을 위해 사용되는 참조픽처를 결정하는 방법이다. 실시예 2는 참조픽처들의 디폴트 개수를 결정하는 방법과 참조픽처들의 실제 개수를 결정하는 방법으로 구분될 수 있다.
실시예 2-1
실시예 2-1은 참조픽처들의 디폴트 개수를 결정하는 방법이다. 실시예 2-1을 설명하기 위한 순서도가 도 8에 나타나 있으며, 실시예 2-1에 대한 신택스 구조가 표 8에 나타나 있다.
Figure pat00008
pic_type은 해당 픽처 내에 존재하는 슬라이스 타입을 구분하기 위한 신택스 요소이다. pic_type 신택스 요소의 값에 따라 해당 픽처 내에 존재하는 슬라이스들의 타입이 구분되는 예가 표 9에 나타나 있다.
Figure pat00009
표 9와 같이, pic_type==0은 I-슬라이스(intra slice)들만이 해당 픽처 내에 존재함을 나타내고, pic_type==1은 P-슬라이스와 I-슬라이스가 해당 픽처 내에 존재함을 나타내며, pic_type==2는 P-슬라이스, I-슬라이스 및 B-슬라이스가 해당 픽처 내에 존재함을 나타낸다.
num_ref_idx_default_active_minus1[i]은 참조픽처의 디폴트 개수에서 1을 뺀 값을 나타내는 신택스 요소로서, num_ref_idx_default_active_minus1[0]은 RPL 0 내 참조픽처들(제1참조픽처들)의 디폴트 개수에서 1을 뺀 값을 나타내고, num_ref_idx_default_active_minus1[1]은 RPL 1 내 참조픽처들(제2참조픽처들)의 디폴트 개수에서 1을 뺀 값을 나타낸다. 여기서, num_ref_idx_default_active_minus1[0]은 제1디폴트 신택스 요소이며, num_ref_idx_default_active_minus1[1]은 제2디폴트 신택스 요소이다.
먼저, 영상 복호화 장치는 pic_type 신택스 요소를 비트스트림으로부터 복호화하고(S810), pic_type 신택스 요소의 값에 따라 제1디폴트 신택스 요소 및 제2디폴트 신택스 요소 중에서 비트스트림에 정의된 신택스 요소를 판단할 수 있다(S820).
pic_type>0인 경우에는 해당 픽처에 P-슬라이스 또는 B-슬라이스가 포함되므로, 제1디폴트 신택스 요소 및/또는 제2디폴트 신택스 요소가 비트스트림에서 정의될 수 있다. 이 경우, 영상 복호화 장치는 비트스트림으로부터 제1디폴트 신택스 요소를 복호화할 수 있다(S830).
pic_type==1인 경우에는(S840) 해당 픽처에 P-슬라이스와 I-슬라이스만이 포함되므로, 제1디폴트 신택스 요소만이 비트스트림에서 정의될 수 있다. 이 경우, 영상 복호화 장치는 제1디폴트 신택스 요소만을 복호화하고, 제2디폴트 신택스 요소를 복호화하지 않는다.
pic_type==2인 경우에는 해당 픽처에 B-슬라이스가 포함되므로, 제1디폴트 신택스 요소 및 제2디폴트 신택스 요소가 비트스트림에서 정의될 수 있다. 이 경우, 영상 복호화 장치는 제2디폴트 신택스 요소를 더 복호화할 수 있다(S850).
영상 복호화 장치는 복호화된 제1디폴트 신택스 요소 및/또는 제2디폴트 신택스 요소를 이용하여, RPL 0 및/또는 RPL 1 내 참조픽처들의 디폴트 개수를 설정 또는 결정할 수 있다.
실시예 2-1에서는 pic_type 신택스 요소와 디폴트 신택스 요소가 픽처 헤더 레벨에서 정의되는 예를 기준으로 하여 디폴트 개수를 결정하는 방법을 설명하였다. 그러나, pic_type 신택스 요소와 디폴트 신택스 요소는 PPS 및 SPS 중에서 하나 이상의 위치에 정의될 수도 있다. 다만, PPS 레벨에서 정의되는 경우에는, 제1디폴트 신택스 요소와 제2디폴트 신택스 요소가 pic_type 신택스 요소의 값에 무관하게 정의될 수 있다.
실시예 2-2
실시예 2-2는 참조픽처들의 실제 개수를 결정하는 방법이다. 실시예 2-2를 설명하기 위한 순서도가 도 9에 나타나 있으며, 실시예 2-2에 대한 신택스 구조가 표 10에 나타나 있다.
Figure pat00010
num_ref_idx_active_minus1[i] 해당 슬라이스의 예측을 위해 실제 사용되는 참조픽처들의 개수(참조픽처들의 실제 개수)에서 1을 뺀 값을 나타내는 신택스 요소이다. num_ref_idx_active_minus1[0]은 RPL 0 내 참조픽처들의 실제 개수에서 1을 뺀 값을 나타내며, num_ref_idx_active_minus1[1]은 RPL 1 내 참조픽처들의 실제 개수에서 1을 뺀 값을 나타낸다. num_ref_idx_active_minus1[0]은 제1개수 신택스 요소이며, num_ref_idx_active_minus1[1]은 제2개수 신택스 요소이다.
num_ref_idx_active_override_flag 신택스 요소는 개수 신택스 요소가 슬라이스 레벨에서 정의되는지 여부를 지시하는 제3플래그이다. 즉, 제3플래그는 해당 슬라이스의 예측을 위해 사용되는 참조픽처의 개수를 슬라이스 레벨에서 다시 설정할지 여부를 지시할 수 있다. num_ref_idx_active_override_flag==1은 개수 신택스 요소가 슬라이스 레벨에서 정의됨(실제 참조픽처의 개수를 다시 설정함)을 나타내며, num_ref_idx_active_override_flag==0은 개수 신택스 요소가 슬라이스 레벨에서 정의되지 않음(실제 참조픽처의 개수를 다시 설정하지 않음)을 나타낸다.
먼저, 영상 복호화 장치는 비트스트림의 슬라이스 헤더 레벨로부터 제3플래그를 복호화하고(S910), 제3플래그의 값을 판단한다(S920). num_ref_idx_active_override_flag==0인 경우에, 영상 복호화 장치는 디폴트 신택스 요소의 값에 따라 참조픽처의 실제 개수를 결정할 수 있다(S950).
이와 달리, num_ref_idx_active_override_flag==1인 경우에, 영상 복호화 장치는 비트스트림의 슬라이스 헤더 레벨로부터 개수 신택스 요소를 복호화할 수 있다(S930). 여기서, RPL 0 및/또는 RPL 1 내에 포함된 참조픽처의 개수(num_ref_entries[i][RplsIdx[i]])가 복수 개인 경우에(num_ref_entries[i][RplsIdx[i]]>1), 개수 신택스 요소가 복호화될 수도 있다. 영상 복호화 장치는 복호화된 개수 신택스 요소의 값에 따라 참조픽처들의 실제 개수를 결정할 수 있다(S940).
실시예 2에서 제안된 참조픽처 개수 결정 방법과 종래 방법을 비교하는 도면이 도 10에 나타나 있다.
도 10은 GOP(group of picture) 사이즈가 8인 일반적인 Hierarchical GOP 구조를 보인다. 도 10에서, 실선의 화살표는 특정 픽처를 기준으로 이전 참조픽처를 참조하는 관계를 나타내며, 점선의 화살표는 특정 픽처를 기준으로 이후 참조픽처를 참조하는 관계를 나타내다. 특정 픽처에 대해 실제 사용된 이전 참조픽처의 개수와 이후 참조픽처의 개수를 {이전 참조픽처의 개수, 이후 참조픽처의 개수}로 표현하였다.
도 10에 나타낸 바와 같이, Hierarchical GOP 내 특정 픽처의 위치에 따라 {이전 참조픽처의 개수, 이후 참조픽처의 개수}가 서로 다름을 알 수 있다. 예를 들어, B #1 픽처는 {1, 1}이며, B #4 픽처는 {2, 1}이고, B #16 픽처는 {1, 0}이다.
따라서, {이전 참조픽처의 개수, 이후 참조픽처의 개수}을 다수 개의 픽처를 위한 데이터를 기술하는 PPS에 기술하는 것은, {이전 참조픽처의 개수, 이후 참조픽처의 개수}가 특정 픽처의 위치에 따라 달라지는 특성을 충분히 반영할 수 없다.
실시예 2에서 제안된 방법과 같이, 각 픽처에서 사용되는 참조픽처의 디폴트 개수를 픽처 레벨(픽처 헤더 레벨)에서 정의하고, 해당 픽처 내 각 슬라이스마다 필요에 따라 디폴트 개수를 override하여 참조픽처들의 실제 개수를 재결정하는 방법이 {이전 참조픽처의 개수, 이후 참조픽처의 개수}가 특정 픽처의 위치에 따라 달라지는 특성을 충분히 반영할 수 있음은 물론 더욱 효율적일 수 있다.
실시예 3
실시예 3은 현재픽처 내 슬라이스들의 예측을 위한 RPL을 정의 또는 유도하는 방법이다. 실시예 3을 설명하기 위한 도면이 도 11 내지 도 15에 나타나 있다.
앞서 설명된 바와 같이, 종래 방법은 예측을 위해 사용될 수 있는 RPL 후보들을 SPS 레벨에서 정의하고, 예측을 위해 사용되는 RPL을 슬라이스 레벨에서 정의하는 구조를 가진다. 이러한 종래 방법의 구조는 아래와 같은 이유에서 부호화 및 복호화의 효율을 저하시킬 수 있다.
복원된 픽처들 또는 출력을 대기하는 복원된 픽처들은 참조픽처로 사용되기 위해 DPB(decoded picture buffer)에 저장된다. 즉, DPB 내에는 복원된 픽처들 중에서 이후에 복원될 픽처들의 참조픽처로 사용되는 픽처들이 저장되며, RPL 정보는 참조픽처로 사용되기 위해 DPB 내에 저장되는(머무르는) 픽처들에 대한 정보이다. 이와 같이, DPB 내에 저장되는 기본 단위는 픽처이고, DPB로부터 출력되는(추출되는) 기본 단위도 픽처이다(즉, 픽처 단위로 DPB 내에 저장되고, 픽처 단위로 DPB로부터 추출된다).
도 11에 나타낸 바와 같이 하나의 픽처가 다수 개(12개)의 슬라이스들로 구분될 수 있다. 또한, 특정 컨텐츠 또는 특정 어플리케이션에서는 하나의 픽처가 수십 개의 슬라이스들로 구분될 수 있다. 나아가, 360 이미지 컨텐츠의 경우, 하나의 픽처가 100개 내외의 슬라이스들로 구분될 수도 있다. 이와 같은 경우, 하나의 픽처 내 모든 슬라이스들에 공통적으로 적용되는(사용되는) 정보가 각 슬라이스 헤더마다 반복적으로 정의되면(기록되면), 데이터의 중복이 발생할 수 있고, 그로 인해 압축 성능이 저하될 수 있다. 가장 대표적인 데이터의 중복은 RPL 정보일 수 있다. 따라서, 앞서 언급한 바와 같이, DPB 내에 저장되는 복원된 픽처들을 관리하는 기본 단위가 픽처이므로, 한 픽처 내의 모든 슬라이스들에 대한 RPL 정보도 동일해야 한다.
이러한 문제를 해결하기 위하여, 본 발명에서는 RPL을 정의하는 새로운 방법을 제안한다. 새로운 방법은 RPL 정보를 SPS 레벨과 픽처 레벨에서 정의할 수 있다. SPS 레벨에서는 컨텐츠 전체에서 사용되는 RPL들의 여러 세트(RPL 후보들)가 정의되며, 픽처 레벨에서는 픽처 내 슬라이스들에서 사용되는 하나의(공통되는) RPL이 정의된다.
이러한 차이점으로 인하여, 종래 방법은 RPL이 슬라이스 헤더 레벨에서 정의되는 비트스트림 구조를 가지나, 본 발명의 방법은 RPL이 픽처 헤더 레벨에서 정의되는 비트스트림 구조 가지게 된다. 종래 방법의 비트스트림 구조와 본 발명의 방법의 비트스트림 구조를 비교하기 위한 도면이 도 12에 나타나 있다. 도 12 (a)는 종래의 비트스트림 구조를 나타내며, 도 12 (b)는 본 발명의 비트스트림 구조를 나타내고, 점선의 화살표는 참조를 나타낸다.
도 12 (a)와 같이, 종래 방법의 비트스트림은, SPS가 위치하고, 다음으로 PPS가 위치하면서 앞선 SPS를 참조한다. PPS에는 모든 픽처에서 사용되는 공통된 데이터 값들이 기록되는 데, 이는 픽처들 각각에서 사용되는 데이터 값들을 기록하는 개념과는 차이가 있다. 다음으로, 2개의 픽처(픽처 #1 및 픽처 #2) 각각에 대한 정보가 위치하면서 앞선 PPS를 참조하는 구조를 가진다. 여기서, 2개의 픽처 각각은 2개의 슬라이스들로 나누어지고, 하나의 슬라이스는 NAL 유닛 헤더(NALU header), 슬라이스 헤더(SH) 및 슬라이스 데이터(Slice data)로 구성된다. 종래 방법의 비트스트림은 픽처 각각마다 별도로 관리되는 데이터가 PPS에 기록되는 것이 아닌, SH에 기록되는 구조를 가진다.
도 12 (b)와 같이, 본 발명의 비트스트림은, SPS가 위치하고, 다음으로 PPS가 위치하면서 앞선 SPS를 참조하며, 픽처 각각에 대한 픽처 헤더(PH)가 위치하면서 앞선 PPS를 참조하고, 픽처 각각에 대한 슬라이스 정보는 앞선 PH를 참조하는 구조를 가진다. 본 발명의 비트스트림은 하나의 픽처가 복수 개의 슬라이스들로 구분되는 컨텐츠의 경우에, 슬라이스 정보(RPL 정보)를 복수 개의 SH 각각에 중복하여 저장하지 않고, 하나의 PH에 한 번 저장할 수 있는 구조를 가진다. 도 12 (b)는 SH가 PH를 참조하는 예를 나타내나, SH가 PH를 거치지 않고 직접 PPS를 참조할 수도 있다.
실시예 3은 픽처 헤더 레벨에서 RPL을 정의하기 위한 조건(미리 설정된 조건)의 고려 여부에 따라, 두 가지 실시예들로 구분될 수 있다. 미리 설정된 조건은 아래와 같다.
미리 설정된 조건
미리 설정된 조건은 픽처 내 존재하는 슬라이스의 타입에 따라 RPL 정보의 시그널링 여부 또는 정의 여부를 결정하기 위한 조건에 해당한다. 미리 설정된 조건에는 1) 현재픽처에 P-슬라이스 또는 B-슬라이스가 포함되는지 여부에 대한 제1조건, 2) 현재픽처에 I-슬라이스만이 포함되면서 I-슬라이스의 NAL 유닛 타입이 CRA(clean random access)인지 여부에 대한 제2조건 및, 3) 현재픽처에 I-슬라이스만이 포함되고, I-슬라이스의 NAL 유닛 타입이 IDR이며, IDR의 NAL 유닛 타입을 가지는 I-슬라이스에 대한 리스트 신택스 요소들이 비트스트림에서 정의되는지 여부에 대한 제3조건이 포함될 수 있다.
표 9에서 나타낸 pic_type을 미리 설정된 조건에 따라 세분화하면 표 11과 같다.
Figure pat00011
표 11에서, I-슬라이스만을 포함하는 픽처에 대한 pic_type이 두 개의 그룹으로 분류될 수 있다. pic_type==0은 I-슬라이스의 NAL 유닛 타입이 IDR인 경우를 나타내며, pic_type==1은 I-슬라이스의 NAL 유닛 타입이 IDR이 아닌 경우(I-슬라이스의 NAL 유닛 타입이 CRA인 경우)를 나타낸다. 표 11에서는 pic_type 값의 일 예를 나타낸 것이므로, pic_type 값은 임의로 변경될 수도 있다. 일 예로, pic_type 값은 표 11의 pic_type 값과 반대로 설정될 수 있다.
실시예 3-1
실시예 3-1은 미리 설정된 조건을 고려하지 않거나, 미리 설정된 조건 중에서 어느 하나가 만족됨을 전제로 하여 RPL을 유도하는 방법이다. 실시예 3-1을 설명하기 위한 순서도가 도 13에 나타나 있으며, 실시예 3-1의 신택스 구조가 표 12에 나타나 있다.
Figure pat00012
리스트 신택스 요소들에는 ref_pic_list_sps_flag[i] 및 ref_pic_list_idx[i]가 포함되거나, ref_pic_list_sps_flag[i] 및 참조픽처 신택스 요소들이 포함될 수 있다.
ref_pic_list_sps_flag[i]는 SPS 레벨에서 미리 정의된(미리 설정된) RPL 후보들 중에서 어느 하나를 슬라이스들의 예측을 위한 RPL로 사용할지 여부를 지시하는 제1플래그이다. 즉, ref_pic_list_sps_flag[i]는 RPL 후보들로부터 RPL이 유도되는지 여부를 지시할 수 있다. ref_pic_list_sps_flag[i]==0은 RPL 후보들로부터 RPL이 유도되지 않음을 나타내며, ref_pic_list_sps_flag[i]==1은 RPL 후보들로부터 RPL이 유도됨을 나타낸다.
ref_pic_list_idx[i]는 RPL 후보들 중에서 어느 하나(RPL)을 지시하는 인덱스 신택스 요소이다. ref_pic_list_idx[i]는 ref_pic_list_sps_flag[i]==1이면서 RPL 후보들의 개수(num_ref_pic_lists_in_sps[i])가 복수 개인 경우에(num_ref_pic_lists_in_sps[i]>1) 비트스트림에서 정의될 수 있다(리스트 신택스 요소들에 포함될 수 있다).
참조픽처 신택스 요소들은 해당 슬라이스에서 사용될 RPL을 정의하기 위한 신택스 요소들로서, 표 7의 num_ref_entries, abs_delta_poc_st 및 strp_entry_sign_flag를 포함할 수 있다. 참조픽처 신택스 요소들은 ref_pic_list_sps_flag[i]==0인 경우에 비트스트림에서 정의될 수 있다(리스트 신택스 요소들에 포함될 수 있다).
먼저, 영상 복호화 장치는 제1플래그를 비트스트림의 픽처 레벨(픽처 헤더 레벨)로부터 복호화하고(S1310), 제1플래그의 값을 판단할 수 있다(S1320). 제1플래그==1이면서 RPL 후보들의 개수가 복수 개인 경우에는(S1320) RPL 후보들 중에서 어느 하나가 RPL로 유도된다(S1330 및 S1340). 이와 달리, 제1플래그==0인 경우에는(S1320) 참조픽처 신택스 요소들을 이용하여 RPL이 유도된다(S1350 및 S1360).
S1330 과정 및 S1340 과정과 관련하여, 제1플래그==1이면서 RPL 후보들의 개수가 복수 개인 경우에는 비트스트림의 픽처 헤더 레벨로부터 인덱스 신택스 요소가 복호화될 수 있다(S1330). 또한, RPL 후보들 중에서 인덱스 신택스 요소가 지시하는 RPL 후보가 RPL로 유도될 수 있다(S1340).
S1350 과정 및 S1360 과정과 관련하여, 제1플래그==0인 경우에는 참조픽처 신택스 요소들이 비트스트림의 픽처 헤더 레벨로부터 복호화될 수 있다(S1350). 참조픽처 신택스 요소들은 제1플래그==0인 경우에 호출되는 ref_pic_list_struct(i, num_ref_pic_lists_in_sps[i])를 통해 복호화될 수 있다. 또한, 참조픽처 신택스 요소들을 이용하여, RPL이 유도될 수 있다.
실시예 3-2
실시예 3-2는 미리 설정된 조건을 고려하여 RPL을 유도하는 방법이다. 실시예 3-2를 설명하기 위한 순서도가 도 14에 나타나 있으며, 실시예 3-2의 신택스 구조가 표 13에 나타나 있다.
Figure pat00013
표 13에서, sps_idr_rpl_present_flag 신택스 요소는 NAL 유닛 타입이 IDR인 슬라이스에 대한 RPL 정보(리스트 신택스 요소들)가 시그널링 또는 정의되는지 여부를 지시하는 플래그이다. sps_idr_rpl_present_flag==0은 NAL 유닛 타입이 IDR인 슬라이스에 대한 리스트 신택스 요소들이 정의되지 않음을 지시하며, sps_idr_rpl_present_flag==1은 NAL 유닛 타입이 IDR인 슬라이스에 대한 리스트 신택스 요소들이 정의됨을 지시한다.
sps_idr_rpl_present_flag 신택스 요소는 앞서 설명된 제3조건의 “IDR의 NAL 유닛 타입을 가지는 I-슬라이스에 대한 리스트 신택스 요소들이 비트스트림에서 정의되는지 여부”에 해당한다.
먼저, 영상 복호화 장치는 pic_type 신택스 요소와 sps_idr_rpl_present_flag 신택스 요소를 비트스트림으로부터 복호화하고(S1410), pic_type 신택스 요소의 값과 sps_idr_rpl_present_flag 신택스 요소의 값을 판단한다(S1420).
pic_type>0인 경우에는 제1조건 및 제2조건 중에서 어느 하나가 만족되므로, 영상 복호화 장치는 비트스트림의 픽처 헤더 레벨로부터 제1플래그를 복호화할 수 있다(S1430). 이 후, 실시예 3-1에서 설명된 각 과정들을 통해 RPL이 유도될 수 있다.
또한, sps_idr_rpl_present_flag==1인 경우에는 제3조건이 만족되므로, 영상 복호화 장치는 비트스트림의 픽처 헤더 레벨로부터 제1플래그를 복호화할 수 있다(S1430). 이 후, 실시예 3-1에서 설명된 각 과정들을 통해 RPL이 유도될 수 있다.
pic_type≤0이면서 sps_idr_rpl_present_flag==0인 경우에는 미리 설정된 조건이 만족되지 않으므로, 제1플래그의 복호화 과정이 수행되지 않으며, RPL 유도 과정이 수행되지 않는다.
실시예 3에서 제안하는 RPL 유도 방법과 종래 방법을 비교하는 도면이 도 15에 나타나 있다.
도 15 (a)와 같이 슬라이스 헤더 레벨에서 RPL 정보를 정의하는 종래 방법의 경우, 하나의 픽처 내 모든 슬라이스 헤더들 각각에서 서로 같은 RPL 정보가 중복적으로 정의된다. 따라서, 종래 방법의 경우에 데이터의 중복이 발생하게 되어 부호화 및 복호화의 효율이 저하되게 된다.
도 15 (b)와 같이 픽처 헤더 레벨에서 RPL 정보를 정의하는 본 발명의 방법의 경우, 하나의 픽처 내 모든 슬라이스 헤더들 각각의 서로 같은 RPL 정보를 픽처 헤더 레벨에서 한 번만 정의하고, 픽처 내 슬라이스들에서 이를 참조할 수 있다. 따라서, 본 발명의 방법은 데이터의 중복을 방지할 수 있고, 이로 인해 부호화 및 복호화의 효율이 향상되게 된다.
한편, 영상 부호화 장치는 L1 방향 리스트에 대한 정보(RPL 후보 1, RPL 1, RPL 1 내 참조픽처의 디폴트 개수, RPL 1 내 참조픽처의 실제 개수 등)가 설정 또는 정의되는지 여부를 판단하고, 그 판단 결과를 제4플래그의 값으로 설정하며, 제4플래그를 부호화하여 영상 복호화 장치로 시그널링할 수 있다.
제4플래그==0은 L1 방향 리스트에 대한 정보가 정의되지 않음을 나타내며, 제4플래그==1은 L1 방향 리스트에 대한 정보가 정의됨을 나타낸다. 제4플래그는 표 8, 표 12 및 표 13에서 정의된 rpl1_idx_present_flag 신택스 요소로 구현될 수 있으며, DPS(decoder parameter set) 레벨, SPS 레벨, PPS 레벨, 픽처 헤더 레벨 및 슬라이스 헤더 레벨 중에서 하나 이상의 위치에서 정의될 수 있다.
영상 복호화 장치는 제4플래그를 비트스트림으로부터 복호화하고, 제4플래그의 값을 기준으로 하여 RPL 후보 1의 설정 여부 또는 RPL 1의 유도 여부 또는 RPL 1 내 참조픽처의 디폴트 개수 결정 여부 또는, RPL 1 내 참조픽처의 실제 개수 결정 여부 등을 판단할 수 있다.
예를 들어, 제4플래그==0인 경우에 RPL 후보 1에 대한 정보가 정의되지 않으므로, RPL 후보 0에 대한 정보로부터 RPL 후보 1에 대한 정보를 유도할 수 있다. 즉, ref_pic_list_sps_flag[0]==1이면 ref_pic_list_sps_flag[1]==1로 설정하고, ref_pic_list_idx[1]==ref_pic_list_idx[0]로 설정한다. 결과적으로 RPL 후보 0이 SPS에서 미리 설정된 RPL 후보들 중에서 어느 하나를 사용하는 경우, RPL 후보 1도 그와 동일한 RPL로 설정된다. 그러나, rpl1_idx_present_flag==1인 경우라도 ref_pic_list_sps_flag[0]==0이면 RPL 후보 1을 표 7의 과정을 통해 설정하게 된다.
다른 예로, 제4플래그==0인 경우에 RPL 1 내 참조픽처의 디폴트 개수와 RPL 1 내 참조픽처의 실제 개수가 정의되지 않으므로, RPL 0 내 참조픽처의 디폴트 개수와 RPL 0 내 참조픽처의 실제 개수로부터 유도하여 RPL 1 내 참조픽처의 디폴트 개수와 RPL 1 내 참조픽처의 실제 개수를 결정할 수 있다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
120, 440: 예측부 130: 감산기
170, 450: 가산기 180, 460: 필터부

Claims (14)

  1. 비트스트림의 SPS(sequence parameter set) 레벨에서 정의된 후보 리스트 신택스 요소들에 기초하여, 하나 이상의 참조픽처 리스트(reference picture list) 후보들을 설정하는 단계;
    상기 비트스트림의 픽처 헤더(picture header) 레벨 및 슬라이스 헤더(slice header) 레벨 중 하나 이상의 레벨에서 정의된 리스트 신택스 요소들을 이용하여, 현재픽처 내 슬라이스들의 예측을 위한 참조픽처 리스트를 유도하는 단계; 및
    상기 비트스트림에서 정의된 활성화 신택스 요소들에 기초하여, 상기 참조픽처 리스트 내 참조픽처들 중에서 상기 슬라이스들의 예측에 이용되는 하나 이상의 참조픽처들을 결정하는 단계를 포함하는 것을 특징으로 하는 참조픽처 리스트 구성 방법.
  2. 제1항에 있어서,
    상기 리스트 신택스 요소들은,
    상기 참조픽처 리스트 후보들로부터 상기 참조픽처 리스트가 유도되는지 여부를 나타내는 제1플래그를 포함하되,
    상기 참조픽처 리스트가 상기 참조픽처 리스트 후보들로부터 유도되고, 상기 참조픽처 리스트 후보들이 복수 개인 경우에, 상기 참조픽처 리스트 후보들 중에서 어느 하나를 지시하는 인덱스 신택스 요소를 더 포함하고,
    상기 유도하는 단계는,
    상기 인덱스 신택스 요소가 지시하는 참조픽처 리스트 후보를 상기 참조픽처 리스트로 유도하는 것을 특징으로 하는 참조픽처 리스트 구성 방법.
  3. 제2항에 있어서,
    상기 리스트 신택스 요소들은,
    상기 참조픽처 리스트가 상기 참조픽처 리스트 후보들로부터 유도되지 않는 경우에, 상기 참조픽처 리스트 내 참조픽처들을 구성하기 위한 참조픽처 신택스 요소들을 더 포함하고,
    상기 유도하는 단계는,
    상기 참조픽처 신택스 요소들을 이용하여, 상기 참조픽처 리스트를 유도하며,
    상기 참조픽처 신택스 요소들은,
    상기 참조픽처 리스트 내 참조픽처들의 개수를 나타내는 개수 신택스 요소 및, 상기 참조픽처 리스트 내 참조픽처들 각각과 상기 현재픽처 사이의 POC(picture order count) 차이를 나타내는 POC 신택스 요소들을 포함하는 것을 특징으로 하는 참조픽처 리스트 구성 방법.
  4. 제1항에 있어서,
    상기 리스트 신택스 요소들은,
    상기 현재픽처가 미리 설정된 조건들 중에서 어느 하나를 만족하는 경우에, 정의되며,
    상기 미리 설정된 조건은,
    상기 현재픽처에 P-슬라이스 또는 B-슬라이스가 포함되는지 여부에 대한 제1조건;
    상기 현재픽처에 I-슬라이스만이 포함되고, 상기 I-슬라이스의 NAL 유닛 타입이 CRA인지 여부에 대한 제2조건; 및
    상기 현재픽처에 I-슬라이스만이 포함되고, 상기 I-슬라이스의 NAL 유닛 타입이 IDR이며, 상기 IDR의 NAL 유닛 타입을 가지는 I-슬라이스에 대한 리스트 신택스 요소들이 상기 비트스트림에서 정의되는지 여부에 대한 제3조건을 포함하는 것을 특징으로 하는 참조픽처 리스트 구성 방법.
  5. 제1항에 있어서,
    상기 후보 리스트 신택스 요소들은,
    B-슬라이스(bi-predictive slice)의 예측에만 이용될 수 있는 하나 이상의 제2참조픽처 리스트 후보들에 대한 신택스 요소들이 상기 SPS 레벨에서 정의되는지 여부를 지시하는 제2플래그; 및
    P-슬라이스(predictive slice) 또는 B-슬라이스의 예측에 이용될 수 있는 하나 이상의 제1참조픽처 리스트 후보들에 대한 신택스 요소들을 포함하고,
    상기 설정하는 단계는,
    상기 제2참조픽처 리스트 후보들에 대한 신택스 요소들이 상기 SPS 레벨에서 정의되지 않는 경우에, 상기 제1참조픽처 리스트 후보들에 대한 신택스 요소들에 기초하여 상기 제2참조픽처 리스트 후보들을 설정하는 것을 특징으로 하는 참조픽처 리스트 구성 방법.
  6. 제1항에 있어서,
    상기 활성화 신택스 요소들은,
    상기 슬라이스들의 예측에 이용되는 참조픽처들의 디폴트(default) 개수를 나타내는 디폴트 신택스 요소; 및
    상기 슬라이스들의 예측에 이용되는 참조픽처들의 개수를 나타내는 개수 신택스 요소가 상기 비트스트림의 슬라이스 헤더 레벨에서 정의되는지 여부를 나타내는 제3플래그를 포함하고,
    상기 결정하는 단계는,
    상기 개수 신택스 요소가 상기 슬라이스 헤더 레벨에서 정의되지 않는 경우에, 상기 디폴트 신택스 요소에 기초하여 상기 슬라이스들의 예측에 이용되는 참조픽처들을 결정하되,
    상기 개수 신택스 요소가 상기 슬라이스 헤더 레벨에서 정의되는 경우에, 상기 개수 신택스 요소에 기초하여 상기 슬라이스들의 예측에 이용되는 참조픽처들을 결정하는 것을 특징으로 하는 참조픽처 리스트 구성 방법.
  7. 제6항에 있어서,
    상기 디폴트 신택스 요소는,
    상기 비트스트림의 픽처 헤더 레벨에서 정의되며, P-슬라이스 또는 B-슬라이스의 예측에 이용되는 하나 이상의 제1참조픽처들의 디폴트 개수를 나타내는 제1디폴트 신택스 요소; 및
    상기 픽처 헤더 레벨에서 정의되며, B-슬라이스의 예측에만 이용되는 하나 이상의 제2참조픽처들의 디폴트 개수를 나타내는 제2디폴트 신택스 요소를 포함하고,
    상기 제2디폴트 신택스 요소는,
    상기 현재픽처에 B-슬라이스가 포함되는 경우에, 상기 픽처 헤더 레벨에서 정의되는 것을 특징으로 하는 참조픽처 리스트 구성 방법.
  8. 비트스트림의 SPS(sequence parameter set) 레벨에서 정의된 후보 리스트 신택스 요소들에 기초하여, 하나 이상의 참조픽처 리스트(reference picture list) 후보들을 설정하는 설정부;
    상기 비트스트림의 픽처 헤더(picture header) 레벨 및 슬라이스 헤더(slice header) 레벨 중 하나 이상의 레벨에서 정의된 리스트 신택스 요소들을 이용하여, 현재픽처 내 슬라이스들의 예측을 위한 참조픽처 리스트를 유도하는 유도부; 및
    상기 비트스트림에서 정의된 활성화 신택스 요소들에 기초하여, 상기 참조픽처 리스트 내 참조픽처들 중에서 상기 슬라이스들의 예측에 이용되는 하나 이상의 참조픽처들을 결정하는 결정부를 포함하는 것을 특징으로 하는 영상 복호화 장치.
  9. 제8항에 있어서,
    상기 리스트 신택스 요소들은,
    상기 참조픽처 리스트 후보들로부터 상기 참조픽처 리스트가 유도되는지 여부를 나타내는 제1플래그를 포함하되,
    상기 참조픽처 리스트가 상기 참조픽처 리스트 후보들로부터 유도되고, 상기 참조픽처 리스트 후보들이 복수 개인 경우에, 상기 참조픽처 리스트 후보들 중에서 어느 하나를 지시하는 인덱스 신택스 요소를 더 포함하고,
    상기 유도부는,
    상기 인덱스 신택스 요소가 지시하는 참조픽처 리스트 후보를 상기 참조픽처 리스트로 유도하는 것을 특징으로 하는 영상 복호화 장치.
  10. 제9항에 있어서,
    상기 리스트 신택스 요소들은,
    상기 참조픽처 리스트가 상기 참조픽처 리스트 후보들로부터 유도되지 않는 경우에, 상기 참조픽처 리스트 내 참조픽처들을 구성하기 위한 참조픽처 신택스 요소들을 더 포함하고,
    상기 유도부는,
    상기 참조픽처 신택스 요소들을 이용하여, 상기 참조픽처 리스트를 유도하며,
    상기 참조픽처 신택스 요소들은,
    상기 참조픽처 리스트 내 참조픽처들의 개수를 나타내는 개수 신택스 요소 및, 상기 참조픽처 리스트 내 참조픽처들 각각과 상기 현재픽처 사이의 POC(picture order count) 차이를 나타내는 POC 신택스 요소들을 포함하는 것을 특징으로 하는 영상 복호화 장치.
  11. 제8항에 있어서,
    상기 리스트 신택스 요소들은,
    상기 현재픽처가 미리 설정된 조건들 중에서 어느 하나를 만족하는 경우에, 정의되며,
    상기 미리 설정된 조건은,
    상기 현재픽처에 P-슬라이스 또는 B-슬라이스가 포함되는지 여부에 대한 제1조건;
    상기 현재픽처에 I-슬라이스만이 포함되고, 상기 I-슬라이스의 NAL 유닛 타입이 CRA인지 여부에 대한 제2조건; 및
    상기 현재픽처에 I-슬라이스만이 포함되고, 상기 I-슬라이스의 NAL 유닛 타입이 IDR이며, 상기 IDR의 NAL 유닛 타입을 가지는 I-슬라이스에 대한 리스트 신택스 요소들이 상기 비트스트림에서 정의되는지 여부에 대한 제3조건을 포함하는 것을 특징으로 하는 영상 복호화 장치.
  12. 제8항에 있어서,
    상기 후보 리스트 신택스 요소들은,
    B-슬라이스(bi-predictive slice)의 예측에만 이용될 수 있는 하나 이상의 제2참조픽처 리스트 후보들에 대한 신택스 요소들이 상기 SPS 레벨에서 정의되는지 여부를 지시하는 제2플래그; 및
    P-슬라이스(predictive slice) 또는 B-슬라이스의 예측에 이용될 수 있는 하나 이상의 제1참조픽처 리스트 후보들에 대한 신택스 요소들을 포함하고,
    상기 설정부는,
    상기 제2참조픽처 리스트 후보들에 대한 신택스 요소들이 상기 SPS 레벨에서 정의되지 않는 경우에, 상기 제1참조픽처 리스트 후보들에 대한 신택스 요소들에 기초하여 상기 제2참조픽처 리스트 후보들을 설정하는 것을 특징으로 하는 영상 복호화 장치.
  13. 제8항에 있어서,
    상기 활성화 신택스 요소들은,
    상기 슬라이스들의 예측에 이용되는 참조픽처들의 디폴트(default) 개수를 나타내는 디폴트 신택스 요소; 및
    상기 슬라이스들의 예측에 이용되는 참조픽처들의 개수를 나타내는 개수 신택스 요소가 상기 비트스트림의 슬라이스 헤더 레벨에서 정의되는지 여부를 나타내는 제3플래그를 포함하고,
    상기 결정부는,
    상기 개수 신택스 요소가 상기 슬라이스 헤더 레벨에서 정의되지 않는 경우에, 상기 디폴트 신택스 요소에 기초하여 상기 슬라이스들의 예측에 이용되는 참조픽처들을 결정하되,
    상기 개수 신택스 요소가 상기 슬라이스 헤더 레벨에서 정의되는 경우에, 상기 개수 신택스 요소에 기초하여 상기 슬라이스들의 예측에 이용되는 참조픽처들을 결정하는 것을 특징으로 하는 영상 복호화 장치.
  14. 제13항에 있어서,
    상기 디폴트 신택스 요소는,
    상기 비트스트림의 픽처 헤더 레벨에서 정의되며, P-슬라이스 또는 B-슬라이스의 예측에 이용되는 하나 이상의 제1참조픽처들의 디폴트 개수를 나타내는 제1디폴트 신택스 요소; 및
    상기 픽처 헤더 레벨에서 정의되며, B-슬라이스의 예측에만 이용되는 하나 이상의 제2참조픽처들의 디폴트 개수를 나타내는 제2디폴트 신택스 요소를 포함하고,
    상기 제2디폴트 신택스 요소는,
    상기 현재픽처에 B-슬라이스가 포함되는 경우에, 상기 픽처 헤더 레벨에서 정의되는 것을 특징으로 하는 영상 복호화 장치.
KR1020200122444A 2019-10-10 2020-09-22 참조픽처 리스트를 구성하는 방법 및 장치 KR20210043436A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190125100 2019-10-10
KR20190125100 2019-10-10

Publications (1)

Publication Number Publication Date
KR20210043436A true KR20210043436A (ko) 2021-04-21

Family

ID=75744258

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200122444A KR20210043436A (ko) 2019-10-10 2020-09-22 참조픽처 리스트를 구성하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20210043436A (ko)

Similar Documents

Publication Publication Date Title
US11368722B2 (en) Method and device for encoding or decoding video
US11973966B2 (en) Method and apparatus for efficiently coding residual blocks
KR20230098714A (ko) 영상 처리 방법 및 이를 위한 장치
KR20220110846A (ko) 하이 레벨 정보 시그널링과 관련된 비디오 인코딩 또는 디코딩 방법들 및 장치들
US11812061B2 (en) Method and device for encoding or decoding video
KR20230133262A (ko) 현재 픽처 참조 모드를 이용한 예측 방법 및 영상 복호화 장치
KR20210035036A (ko) 시간적 움직임벡터 예측자 유도 방법 및 영상 복호화 장치
CN111801940A (zh) 使用ycbcr的相关性的图像编码/解码方法和设备
US11924453B2 (en) Coding tool setting method and video decoding apparatus
US20220353505A1 (en) Method for reconstructing residual blocks of chroma blocks, and video decoding apparatus
KR20200132761A (ko) 동영상 데이터의 병렬 부호화 및 복호화를 위한 방법 및 장치
KR20210043436A (ko) 참조픽처 리스트를 구성하는 방법 및 장치
KR20210002321A (ko) 해상도를 적응적으로 설정하는 방법 및 영상 복호화 장치
KR102648468B1 (ko) 레벨 설정 방법 및 이를 이용한 영상 복호화 장치
CN114303372B (zh) 自适应地设置分辨率的方法及图像解码装置
CN113170204B (zh) 编码工具设置方法和图像解码设备
US20240007620A1 (en) Image encoding and decoding method using adaptive alternative mode
US20220353516A1 (en) Method for adaptively setting resolution, and image decoding apparatus
KR102617469B1 (ko) Sao 필터링을 위한 방법 및 장치
KR20230155387A (ko) 레벨 설정 방법 및 이를 이용한 영상 복호화 장치
KR20230137232A (ko) 컨텍스트 모델 초기화를 사용하는 비디오 코딩방법 및 장치
KR20220118334A (ko) 서브블록 분할 기반 인트라 예측을 이용하는 비디오 코딩방법 및 장치
KR20230059135A (ko) 다양한 블록 분할 구조를 이용하는 비디오 코딩방법 및 장치
KR20240037834A (ko) 하나의 블록에 싱글 트리와 듀얼 트리를 적응적으로 이용하는 비디오 코딩방법 및 장치
KR20230160171A (ko) 혼합 성분간 예측을 사용하는 비디오 코딩방법 및 장치