KR20190008809A - 복수의 참조 화소 계층을 지원하는 영상 복호화 방법 및 장치 - Google Patents

복수의 참조 화소 계층을 지원하는 영상 복호화 방법 및 장치 Download PDF

Info

Publication number
KR20190008809A
KR20190008809A KR1020180076932A KR20180076932A KR20190008809A KR 20190008809 A KR20190008809 A KR 20190008809A KR 1020180076932 A KR1020180076932 A KR 1020180076932A KR 20180076932 A KR20180076932 A KR 20180076932A KR 20190008809 A KR20190008809 A KR 20190008809A
Authority
KR
South Korea
Prior art keywords
reference pixel
block
prediction
filtering
pixel
Prior art date
Application number
KR1020180076932A
Other languages
English (en)
Inventor
김기백
Original Assignee
김기백
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김기백 filed Critical 김기백
Priority to PCT/KR2018/007520 priority Critical patent/WO2019009590A1/ko
Priority to CA3105474A priority patent/CA3105474A1/en
Priority to US16/627,905 priority patent/US10986351B2/en
Priority to SG11202100010SA priority patent/SG11202100010SA/en
Publication of KR20190008809A publication Critical patent/KR20190008809A/ko
Priority to US17/184,685 priority patent/US11509914B2/en
Priority to US17/964,281 priority patent/US20230051471A1/en

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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/176Methods 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 block, e.g. a macroblock
    • 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/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

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

Abstract

복수의 참조 화소 계층을 지원하는 영상 복호화 방법 및 장치가 개시된다. 복수의 참조 화소 계층을 지원하는 영상 복호화 방법은, 비트스트림에서 복수의 참조 화소 계층을 지원하는지 여부를 확인하는 단계, 복수의 참조 화소 계층이 지원되면, 상기 비트스트림에 포함된 구문 정보를 참조하여 현재 블록에 사용할 참조 화소 계층을 결정하는 단계, 결정된 참조 화소 계층에 속하는 화소를 이용하여 참조 화소를 구성하는 단계 및 구성된 참조 화소를 이용하여 상기 현재 블록에 대한 화면내 예측을 수행하는 단계를 포함한다. 따라서, 영상 부/복호화 효율을 향상시킬 수 있다.

Description

복수의 참조 화소 계층을 지원하는 영상 복호화 방법 및 장치{IMAGE DECODING METHOD AND APPARATUS SUPPORTING A PLURALITY OF REFERENCE PIXEL LAYERS}
본 발명은 복수의 참조 화소 계층을 지원하는 영상 복호화 방법 및 장치에 관한 것으로, 더욱 상세하게는 현재 블록과 인접한 화소 거리에 따라 복수의 참조 화소 계층을 설정하고, 설정된 참조 화소 계층 중에서 현재 블록에 대해 최적의 예측 블록을 생성할 수 있는 참조 화소 계층에 포함된 참조 화소를 이용하여 화면내 예측을 수행하는 방법에 관한 것이다.
최근, 인터넷에서는 동영상과 같은 멀티미디어 데이터 수요가 급속도록 증가하고 있다. 하지만, 채널(Channel)의 대역폭(Bandwidth)이 발전하는 속도는 급격히 증가하고 있으며 멀티미디어 데이터의 양을 효율적인 압축 방법이 필요한 상황이다. ISO/ISE MPEG (Moving Picture Experts Group)과 ITU-T VCEG (Video Coding Experts Group)에서는 꾸준한 공동 연구를 통하여 동영상 압축 표준을 연구하고 있다.
한편, 기존의 영상 부/복호화 방법에 따른 화면내 예측은 현재 블록과 가장 인접한 화소들을 사용하여 참조 화소를 구성하는데, 영상의 종류에 따라서는 반드시 가장 인접한 화소로 참조 화소를 구성하는 것이 바람직하지 않을 수 있다.
따라서, 참조 화소를 기존과 달리 구성하여 화면내 예측 효율을 향상시킬 수 있는 방안이 필요한 실정이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 복수의 참조 화소 계층을 지원하는 영상 복호화 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 복수의 참조 화소 계층을 지원하는 영상 복호화 장치를 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명은, 복수의 참조 화소 계층을 지원하는 영상 복호화 방법을 제공한다.
복수의 참조 화소 계층을 지원하는 영상 복호화 방법은, 비트스트림에서 복수의 참조 화소 계층을 지원하는지 여부를 확인하는 단계, 복수의 참조 화소 계층이 지원되면, 상기 비트스트림에 포함된 구문 정보를 참조하여 현재 블록에 사용할 참조 화소 계층을 결정하는 단계, 결정된 참조 화소 계층에 속하는 화소를 이용하여 참조 화소를 구성하는 단계 및 구성된 참조 화소를 이용하여 상기 현재 블록에 대한 화면내 예측을 수행하는 단계를 포함할 수 있다.
여기서 상기 복수의 참조 화소 계층을 지원하는지 여부를 확인하는 단계 이후에, 비트스트림에서 적응적인 참조 화소 필터링 방법을 지원하는지 여부를 확인하는 단계를 더 포함할 수 있다.
여기서 상기 복수의 참조 화소 계층을 지원하는지 여부를 확인하는 단계 이후에, 복수의 참조 화소 계층이 지원되지 않으면, 미리 설정된 참조 화소 계층을 사용하여 참조 화소를 구성하는 단계를 포함할 수 있다.
상기와 같은 본 발명에 따른 복수의 참조 화소 계층을 지원하는 영상 복호화 방법 및 장치를 이용할 경우에는 다수의 참조 화소를 이용하므로 화면내 예측 정밀도가 증가할 수 있다.
또한, 본 발명에 따르면, 적응적인 참조 화소 필터링을 지원하므로, 영상의 특성에 따라 최적의 참조 화소 필터링을 수행할 수 있다.
또한, 영상 부/복호화에 따른 압축 효율이 증가할 수 있는 장점이 있다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 구성도이다.
도 4은 본 발명 일 실시예에 따른 화면내 예측 모드를 나타낸 예시도이다.
도 5는 본 발명의 일 실시예에 따른 화면내 예측에 사용되는 참조 화소 구성에 대한 제1 예시도이다.
도 6a 내지 도 6c는 본 발명의 일 실시예에 따른 참조 화소 구성에 대한 제2 예시도이다.
도 7은 본 발명의 일 실시예에 따른 참조 화소 구성에 대한 제3 예시도이다.
도 8은 본 발명의 일 실시예에 따른 참조 화소 구성에 대한 제4 예시도이다.
도 9a 내지 도 9b는 사용 불가능한 참조 후보 블록에서 미리 설정된 위치에 참조 화소를 채우는 방법에 대한 예시도이다.
도 10a 내지 도 10c는 본 발명의 일 실시예에 따라 구성된 참조 화소들에 대해 소수 화소 단위를 기반으로 보간을 수행하는 방법에 대한 예시도이다.
도 11a 및 도 11b는 본 발명의 일 실시예에 따른 적응적인 참조 화소 필터링 방법을 설명하기 위한 제1 예시도이다.
도 12는 본 발명의 일 실시예에 따른 적응적인 참조 화소 필터링 방법을 설명하기 위한 제2 예시도이다.
도 13a 내지 도 13b는 본 발명의 일 실시예에 따른 참조 화소 필터링에서 하나의 참조 화소 계층을 이용하는 예시도이다.
도 14는 본 발명의 일 실시예에 따른 참조 화소 필터링에서 복수의 참조 화소 계층을 이용하는 예시도이다.
도 15는 본 발명의 일 실시예에 따른 화면내 예측 모드에 대한 부/복호화 방법을 설명하기 위한 블록도이다.
도 16은 참조 화소 구성에 따른 화면내 예측에 대한 비트스트림 구성을 설명하기 위한 제1 예시도이다.
도 17는 참조 화소 구성에 따른 화면내 예측에 대한 비트스트림 구성을 설명하기 위한 제2 예시도이다.
도 18는 참조 화소 구성에 따른 화면내 예측에 대한 비트스트림 구성을 설명하기 위한 제3 예시도이다.
도 19은 본 발명의 일 실시예에 따른 복수의 참조 화소 계층을 지원하는 영상 복호화 방법에 대한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제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)의 계수값, 부호화/복호화 과정 중에 생성, 결정되는 다양한 부호화/복호화 정보일 수 있다.
영상을 이루는 최소 단위는 화소일 수 있으며, 하나의 화소를 표현하는데 사용되는 비트수를 비트 심도라고 한다. 일반적으로 비트 심도는 8비트일 수 있으며 부호화 설정에 따라 다른 비트 심도를 지원할 수 있다. 비트 심도는 컬러 공간(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 등에 따라 결정)에 비례하거나 의존적인 설정을 갖는 것으로 의미할 수 있고, 각 컬러 공간에 독립적인 설정은 각 성분의 구성 비에 관계없거나 독립적으로 해당 컬러 공간만의 설정을 갖는 것으로 의미할 수 있다. 본 발명에서는 부/복호화기에 따라 일부 구성에 대해서는 독립적인 설정을 갖거나 의존적인 설정을 가질 수 있다.
영상 부호화 과정에서 필요한 설정 정보 또는 구문 요소는 비디오, 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위 수준에서 정해질 수 있으며 이는 VPS(Video Parameter Set), SPS(Sequence Parameter Set), PPS(Picture Parameter Set), Slice Header, Tile Header, Block Header 등과 같은 단위로 비트스트림에 수록되어 복호화기로 전송될 수 있고, 복호화기에서는 동일 수준의 단위에서 파싱(Parsing)하여 부호화기에서 전송된 설정 정보를 복원하여 영상 복호화 과정에 사용할 수 있다. 또한, SEI(Supplement Enhancement Information) 또는 메타 데이터(Metadata) 등의 형태로 관련 정보를 비트스트림으로 전송하고 파싱하여 사용할 수 있다. 각 파라미터 세트는 고유의 아이디값을 갖고 있으며, 하위 파라미터 세트에서는 참조할 상위 파라미터 세트의 아이디값을 가질 수 있다. 예를 들어, 하위 파라미터 세트에서 하나 이상의 상위 파라미터 세트 중 일치하는 아이디값을 갖는 상위 파라미터 세트의 정보를 참조할 수 있다. 위에서 언급된 다양한 단위의 예 중 어떤 하나의 단위가 하나 이상의 다른 단위를 포함하는 경우에 해당하는 단위는 상위 단위, 포함되는 단위는 하위 단위라 칭할 수 있다.
상기 단위에서 발생하는 설정 정보의 경우 해당 단위마다 독립적인 설정에 대한 내용을 포함하거나 이전, 이후 또는 상위 단위 등에 의존적인 설정에 대한 내용을 포함할 수 있다. 여기서 의존적인 설정이란 이전, 이후, 상위 단위의 설정을 따른다는 플래그 정보(예를 들어, 1 비트 플래그로 1이면 따름. 0이면 따르지 않음)로 해당 단위의 설정 정보를 나타내는 것이라 이해될 수 있다. 본 발명에서의 설정 정보는 독립적인 설정에 대한 예를 중심으로 설명을 할 것이나, 현재 단위의 이전, 이후의 단위 또는 상위 단위의 설정 정보에 의존적인 관계에 대한 내용으로의 추가 또는 대체되는 예 또한 포함될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 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는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
본 실시예에 따른 영상 부호화 장치(20)는, 도 2에 나타낸 바와 같이, 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 부호화 픽쳐 버퍼(240) 및 엔트로피 부호화부(245)를 포함할 수 있다.
예측부(200)는 화면내 예측을 수행하는 화면내 예측부와 화면간 예측을 수행하는 화면간 예측부를 포함할 수 있다. 화면내 예측은 현재 블록의 인접한 블록의 화소를 이용하여 공간적인 예측을 수행하여 예측 블록을 생성할 수 있고, 화면간 예측은 참조 영상으로부터 현재 블록과 가장 매치가 되는 영역을 찾아 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다. 해당 단위(부호화 단위 또는 예측 단위)에 대해 화면내 예측 또는 화면간 예측 중 어떤 방식을 사용할 지에 대한 것을 결정하고, 각 예측 방법에 따른 구체적인 정보(예를 들어, 화면내 예측 모드, 움직임 벡터, 참조 영상 등)를 결정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 부/복호화 설정에 따라 정해질 수 있다. 예를 들어, 예측 방법, 예측 모드 등은 예측 단위로 결정되고, 예측의 수행은 변환 단위로 수행될 수 있다.
감산부(205)는 현재 블록에서 예측 블록을 감산하여 잔차 블록을 생성한다. 즉, 감산부(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개 이상의 양자화 기법을 후보로 둘 수 있으며 부호화 모드, 예측 모드 정보 등에 의해 결정될 수 있다.
엔트로피 부호화부(245)는 생성된 양자화 주파수 계수열을 다양한 스캔 방식에 따라 스캔하여 양자화 계수열을 생성하고, 이를 엔트로피 부호화 기법 등을 이용하여 부호화 함으로써 출력한다. 스캔 패턴은 지그재그, 대각선, 래스터(raster) 등 다양한 패턴들 중 하나로 설정할 수 있다. 또한, 각 구성부로부터 전달되는 부호화 정보를 포함하는 부호화 데이터를 생성하여 비트스트림으로 출력할 수 있다.
역양자화부(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)에 제공될 수 있다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 구성도이다.
도 3을 참조하면, 영상 복호화 장치(30)는, 엔트로피 복호화부(305), 예측부(310), 역양자화부(315), 역변환부(320), 가감산기(325), 필터(330), 복호화 픽쳐 버퍼(335)를 포함하여 구성될 수 있다.
또한, 예측부(310)는 다시 화면내 예측 모듈 및 화면간 예측 모듈을 포함하여 구성될 수 있다.
먼저, 영상 부호화 장치(20)로부터 전달된 영상 비트스트림이 수신되면, 엔트로피 복호화부(305)로 전달될 수 있다.
엔트로피 복호화부(305)는 비트스트림을 복호화하여 양자화된 계수들과 각 구성부로 전달되는 복호화 정보를 포함하는 복호화 데이터를 복호화할 수 있다.
예측부(310)는 엔트로피 복호화부(305)로부터 전달된 데이터들에 기초하여 예측 블록을 생성할 수 있다. 이때, 복호화된 픽쳐 버퍼(335)에 저장된 참조 영상에 기초하여, 디폴트(default) 구성 기법을 이용한 참조 픽쳐 리스트를 구성할 수도 있다.
역양자화부(315)는 비트스트림으로 제공되어 엔트로피 복호화부(305)에 의해 복호화된 양자화된 변환 계수들을 역양자화할 수 있다.
역변환부(320)는 역 DCT, 역 정수 변환 또는 그와 유사한 개념의 역변환 기법들을 변환 계수에 적용하여 잔차 블록을 생성할 수 있다.
이때, 역양자화부(315), 역변환부(320)는 앞서 설명한 영상 부호화 장치(20)의 변환부(210) 및 양자화부(215)에서 수행한 과정을 역으로 수행하며 다양한 방법으로 구현될 수 있다. 예를 들어, 변환부(210) 및 양자화부(215)와 공유하는 동일한 과정 및 역변환을 사용할 수도 있고, 영상 부호화 장치(20)로부터 변환 및 양자화 과정에 관한 정보(예를 들면, 변환 크기, 변환 모양, 양자화 타입 등)를 이용하여 변환 및 양자화 과정을 역으로 수행할 수 있다.
역양자화 및 역변환 과정을 거친 잔차 블록은 예측부(310)에 의해 도출된 예측 블록과 가산되어 복원된 영상 블록이 생성될 수 있다. 이러한 가산은 가감산기(325)에 의해 이루어 질 수 있다.
필터(330)는 복원된 영상 블록에 대하여, 필요에 따라 블로킹(blocking) 현상을 제거하기 위하여 디블로킹 필터를 적용할 수도 있고, 상기 복호화 과정 전 후에 다른 루프 필터들을 비디오 품질을 향상시키기 위해 추가로 사용할 수도 있다.
복원 및 필터를 거친 영상 블록은 복호화 픽쳐 버퍼(335)에 저장될 수 있다.
영상 복호화 장치(30)는 도면에는 도시하지 않았으나 분할부를 더 포함할 수 있으며, 이때 분할부는 픽쳐 분할부와 블록 분할부로 구성될 수 있다. 분할부에 대해서는 도 2에 따른 영상 부호화 장치에서와 동일 또는 상응하는 구성으로 통상의 기술자가 용이하게 이해할 수 있으므로 구체적인 설명은 생략한다.
한편, 블록 분할부를 통해 다양한 크기의 부호화 단위(또는 블록)로 분할할 수 있다. 이때, 부호화 단위는 컬러 포맷에 따라 복수개의 부호화 블록으로 구성(예를 들어, 하나의 휘도 부호화 블록, 둘의 색차 부호화 블록 등)될 수 있다. 설명의 편의를 위해 하나의 컬러 성분 단위를 가정하여 설명한다. 부호화 블록은 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 등)과 같은 가변 크기를 가질 수 있다. 이때, 부호화 블록은 화면내 예측, 화면간 예측, 변환, 양자화, 엔트로피 부호화 등의 기초가 되는 단위일 수 있다.
본 발명에서는 분할 방식에 따라 동일한 크기 및 형태를 갖는 복수 개의 서브 블록(대칭)이 획득되는 가정 하에 설명하지만, 비대칭적인 서브 블록(예를 들어, 바이너리 트리의 경우 분할 블록 간의 가로 비율<세로는 동일>이 1:3 또는 3:1이거나 세로 비율<가로는 동일>이 1:3 또는 3:1 등. 터너리 트리의 경우 분할 블록 간의 가로 비율<세로는 동일>이 1:2:1 이거나 세로 비율<가로는 동일> 1:2:1 등)을 갖는 경우로의 적용 또한 가능할 수 있다.
부호화 블록(M×N)의 분할은 재귀적인 트리 기반의 구조를 가질 수 있다. 이때, 분할 여부는 분할 플래그를 통해 나타낼 수 있다. 예를 들어, 분할 깊이(Depth)가 k인 부호화 블록의 분할 플래그가 0인 경우 부호화 블록의 부호화는 분할 깊이가 k인 부호화 블록에서 수행되며, 분할 깊이가 k인 부호화 블록의 분할 플래그가 1인 경우 부호화 블록의 부호화는 분할 방식에 따라 분할 깊이가 k+1인 4개의 서브 부호화 블록(쿼드 트리 분할) 또는 2개의 서브 부호화 블록(바이너리 트리 분할) 또는 3개의 서브 부호화 블록(터너리 트리 분할)에서 수행된다.
상기 서브 부호화 블록은 다시 부호화 블록(k+1)으로 설정되어 상기 과정을 거쳐 서브 부호화 블록(k+2)으로 분할될 수 있으며, 쿼드 트리 분할의 경우 분할 플래그(예를 들어, 분할 여부를 나타냄)가 지원될 수 있다.
바이너리 트리 분할의 경우 분할 플래그와 분할 방향 플래그(가로 또는 세로)가 지원될 수 있다. 만약 바이너리 트리 분할에서 하나 이상의 분할 비율(예를 들어, 가로 또는 세로 비율이 1:1 외의 추가 분할 비율. 즉, 비대칭 분할도 지원)을 지원하는 경우에는 분할 비율 플래그(예를 들어, 가로 또는 세로 비율 후보군<1:1, 1:2, 2:1, 1:3, 3:1> 중 하나의 비율 선택)가 지원될 수 있거나 다른 형태의 플래그(예를 들어, 대칭 분할 여부. 1이면 대칭 분할로 추가 정보는 없으며, 0이면 비대칭 분할로 비율에 관한 추가 정보가 필요)가 지원될 수 있다.
터너리 트리 분할의 경우 분할 플래그와 분할 방향 플래그가 지원될 수 있다. 만약 터너리 트리 분할에서 하나 이상의 분할 비율을 지원하는 경우에는 상기 바이너리 트리와 같은 추가 분할 정보가 필요할 수 있다.
상기 예는 하나의 트리 분할만 유효한 경우에 발생하는 분할 정보이고, 복수의 트리 분할이 유효한 경우에는 다음과 같이 분할 정보가 구성될 수 있다.
예를 들어, 복수의 트리 분할이 지원되는 경우에 기 설정된 분할 우선 순위가 존재할 경우 선 순위에 해당하는 분할 정보가 먼저 구성될 수 있다. 이때, 앞선 순위에 해당하는 분할 플래그가 참인 경우(분할 수행)에는 해당 분할 방식의 추가적인 분할 정보가 이어질 수 있으며, 거짓인 경우(분할 수행x)에는 후 순위에 해당하는 분할 방식의 분할 정보(분할 플래그, 분할 방향 플래그 등)로 구성될 수 있다.
또는, 복수의 트리 분할이 지원되는 경우에 분할 방식에 대한 선택 정보가 추가로 발생할 수 있으며, 선택된 분할 방식에 따른 분할 정보로 구성될 수 있다.
상기 일부 분할 플래그의 경우 선행하는 상위 또는 이전 분할 결과에 따라 생략가능할 수 있다.
블록 분할은 최대 부호화 블록에서 시작하여 최소 부호화 블록까지 진행할 수 있다. 또는, 최소 분할 깊이(0)에서 시작하여 최대 분할 깊이까지 진행할 수 있다. 즉, 블록의 크기가 최소 부호화 블록 크기에 도달하거나 분할 깊이가 최대 분할 깊이에 도달할 때까지 재귀적으로 분할을 수행할 수 있다. 이때, 부/복호화 설정(예를 들어, 영상<슬라이스, 타일> 타입<I/P/B>, 부호화 모드<Intra/Inter>, 색차 성분<Y/Cb/Cr> 등)에 따라 최대 부호화 블록의 크기와 최소 부호화 블록의 크기, 최대 분할 깊이가 적응적으로 설정될 수 있다.
예를 들어, 최대 부호화 블록은 128×128일 때, 쿼드 트리 분할은 32×32 ~ 128×128 범위에서 수행될 수 있고, 바이너리 트리 분할은 16×16 ~ 64×64 범위와 최대 분할 깊이 3인 범위에서 수행될 수 있으며, 터너리 트리 분할은 8×8 ~ 32×32 범위와 최대 분할 깊이 3인 범위에서 수행될 수 있다. 또는, 쿼드 트리 분할은 8×8 ~ 128×128 범위에서 수행될 수 있고, 바이너리 트리와 터너리 트리 분할은 4×4 ~ 128×128 범위와 최대 분할 깊이 3인 경우에 수행될 수 있다. 전자의 경우 I 영상 타입(예를 들어, 슬라이스), 후자의 경우 P나 B 영상 타입에서의 설정일 수 있다.
상기 예에서 설명된 것과 같이 최대 부호화 블록의 크기, 최소 부호화 블록의 크기, 최대 분할 깊이 등과 같은 분할 설정은 분할 방식과 전술한 부/복호화 설정에 따라 공통되거나 또는 개별적으로 지원될 수 있다.
복수의 분할 방식이 지원되는 경우 각 분할 방식의 블록 지원 범위 내에서 분할이 수행되며, 각 분할 방식의 블록 지원 범위가 겹치는 경우에는 분할 방식의 우선 순위가 존재할 수 있다. 예를 들어, 쿼드 트리 분할이 바이너리 트리 분할을 선행할 수 있다.
또는, 분할 지원 범위가 겹치는 경우 수행되는 분할 선택 정보가 발생할 수 있다. 예를 들어, 바이너리 트리와 터너리 트리 분할 중 수행되는 분할 방식에 대한 선택 정보가 발생할 수 있다.
또한, 복수의 분할 방식이 지원되는 경우 선행하는 분할의 결과에 따라 후행하는 분할의 수행 여부가 결정될 수 있다. 예를 들어, 선행하는 분할(본 예에서 쿼드 트리)의 결과가 분할을 수행함을 나타낼 경우 후행하는 분할(본 예에서 바이너리 트리 또는 터너리 트리)은 수행하지 않고 선행한 분할에 따라 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되어 분할을 수행할 수 있다.
또는, 선행하는 분할의 결과가 분할을 수행하지 않음을 나타낼 경우 후행하는 분할의 결과에 따라 분할을 수행할 수 있다. 이때, 후행하는 분할(본 예에서 바이너리 트리 또는 터너리 트리)의 결과가 분할을 수행함을 나타낼 경우 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되어 분할을 수행할 수 있고, 후행하는 분할의 결과가 분할을 수행하지 않음을 나타낼 경우 더 이상의 분할은 수행하지 않는다. 이때, 후행하는 분할 결과가 분할을 수행함을 나타내고 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되었을 때의 상황도 복수의 분할 방식이 지원되는 경우(예를 들어, 각 분할 방식의 블록 지원 범위가 겹치는 경우)일 때, 선행하는 분할은 수행하지 않고 후행하는 분할만 지원할 수 있다. 즉, 복수의 분할 방식이 지원되는 경우에 선행하는 분할의 결과가 분할이 수행되지 않음을 나타낼 경우 더 이상 선행의 분할은 수행하지 않음을 의미한다.
예를 들어, M × N부호화 블록은 쿼드 트리 분할과 바이너리 트리 분할이 가능할 경우 우선 쿼드 트리 분할 플래그를 확인할 수 있고, 상기 분할 플래그가 1인 경우에는 (M >> 1) × (N >> 1) 크기의 4개의 서브 부호화 블록으로 분할이 수행이 되고 상기 서브 부호화 블록은 다시 부호화 블록으로 설정되어 분할(쿼드 트리 분할 또는 바이너리 트리 분할)을 수행할 수 있다. 상기 분할 플래그가 0인 경우에는 바이너리 트리 분할 플래그를 확인할 수 있고, 해당 플래그가 1인 경우에는 (M >> 1) × N 또는 M × (N >> 1) 크기의 2 개의 서브 부호화 블록으로 분할이 수행되고 상기 서브 부호화 블록은 다시 부호화 블록으로 설정되어 분할(바이너리 트리 분할)을 수행할 수 있다. 상기 분할 플래그가 0인 경우에는 분할 과정을 종료하고 부호화를 진행한다.
상기 예를 통해 복수의 분할 방식이 수행되는 경우를 설명하였지만, 이에 한정되지 않고 다양한 분할 방식의 지원 조합이 가능할 수 있다. 예를 들어, 쿼드 트리/바이너리 트리/터너리 트리/쿼드 트리 + 바이너리 트리/쿼드 트리 + 바이너리 트리 + 터너리 트리 등의 분할 방식이 사용될 수 있다. 이때, 추가적인 분할 방식의 지원 여부에 대한 정보가 묵시적으로 결정되거나 명시적으로 시퀀스, 픽쳐, 서브 픽쳐, 슬라이스, 타일 등의 단위에 포함될 수 있다.
상기 예에서 부호화 블록의 크기 정보, 부호화 블록의 지원 범위, 최대 분할 깊이 등 분할에 관련된 정보는 시퀀스, 픽쳐, 서브 픽쳐, 슬라이스, 타일 등의 단위에 포함되거나 묵시적으로 결정될 수 있다. 정리하면, 최대 부호화 블록의 크기, 지원되는 블록의 범위, 최대 분할 깊이 등에 의해 허용 가능한 블록의 범위가 정해질 수 있다.
상기 과정을 통해 분할이 수행되어 획득되는 부호화 블록은 화면내 예측 또는 화면간 예측의 최대 크기로 설정될 수 있다. 즉, 블록 분할이 끝난 부호화 블록은 화면내 예측 또는 화면간 예측을 위해 예측 블록의 분할의 시작 크기일 수 있다. 예를 들어, 부호화 블록이 2M×2N일 경우 예측 블록은 그보다 같거나 작은 2M×2N, M×N의 크기를 가질 수 있다. 또는, 2M×2N, 2M×N, M×2N, M×N의 크기를 가질 수 있다. 또는, 부호화 블록와 동일한 크기로 2M×2N의 크기를 가질 수 있다. 이때, 부호화 블록과 예측 블록이 동일한 크기를 갖는다는 것은 예측 블록의 분할을 수행하지 않고 부호화 블록의 분할을 통해 획득된 크기로 예측을 수행한다는 것을 의미할 수 있다. 즉, 예측 블록을 위한 분할 정보는 생성되지 않는다는 것을 의미한다. 이와 같은 설정은 변환 블록에도 적용될 수 있으며 분할된 부호화 블록 단위로 변환을 수행할 수도 있다.
다음과 같은 부/복호화 설정에 따라 다양한 구성이 가능할 수 있다. 예를 들어, (부호화 블록이 결정된 후) 부호화 블록에 기반하여 적어도 하나의 예측 블록과 적어도 하나의 변환 블록을 획득할 수 있다. 또는, 부호화 블록과 동일한 크기의 하나의 예측 블록을 획득할 수 있고, 부호화 블록에 기반하여 적어도 하나의 변환 블록을 획득할 수 있다. 또는, 부호화 블록과 동일한 크기의 하나의 예측 블록과 하나의 변환 블록을 획득할 수 있다. 상기 예에서 적어도 하나의 블록이 획득되는 경우는 각 블록의 분할 정보가 발생(생성)할 수 있고, 하나의 블록이 획득되는 경우는 각 블록의 분할 정보는 발생하지 않는다.
상기 결과에 따라 획득되는 다양한 크기의 정사각 또는 직사각 형태의 블록이 화면내 예측, 화면간 예측에 사용되는 블록일 수 있고, 잔차 성분에 대한 변환, 양자화에 사용되는 블록일 수 있으며, 필터 과정에 사용되는 블록일 수 있다.
도 4은 본 발명의 일 실시예에 따른 화면내 예측 모드를 나타낸 예시도이다.
도 4를 참조하면, 35개의 예측 모드를 확인할 수 있고, 35개의 예측 모드는, 33개의 방향성 모드와 2개의 비방향성 모드(DC, Planar)로 분류할 수 있다. 이때, 방향성 모드는 기울기(예를 들어, dy/dx) 또는 각도 정보로 식별할 수 있다. 상기 예는 휘도 성분 또는 색차 성분에 대한 예측 모드 후보군을 의미할 수 있다. 또는, 색차 성분은 일부 예측 모드(예를 들어, DC, Planar, 수직, 수평, 대각선 모드 등)가 지원될 수 있다. 또한, 휘도 성분의 예측 모드가 결정되면 해당 모드를 색차 성분의 예측 모드로 포함하거나 해당 모드로부터 유도되는 모드를 예측 모드로 포함할 수 있다.
또한, 컬러 공간들 사이의 상관성을 이용하여 부/복호화가 완료된 다른 컬러 공간의 복원 블록을 현재 블록의 예측에 사용할 수 있고, 이를 지원하는 예측 모드를 포함할 수 있다. 예를 들어, 색차 성분의 경우 현재 블록과 대응되는 휘도 성분의 복원된 블록을 현재 블록의 예측 블록으로 생성할 수 있다.
부/복호화 설정에 따라 예측 모드 후보군을 적응적으로 결정할 수 있다. 예측의 정확도를 높이기 위한 목적으로 후보군의 수를 늘릴 수 있고, 예측 모드에 따른 비트량을 줄이기 위한 목적으로 후보군의 수를 줄일 수 있다.
예를 들어, A 후보군(67개. 65개 방향성 모드와 2개의 비방향성 모드), B 후보군(35개. 33개의 방향성 모드와 2개의 비방향성 모드), C 후보군(19개. 17개의 방향성 모드와 2개의 비방향성 모드) 등의 후보군 중 하나를 사용할 수 있다. 본 발명에서 특별한 설명이 없다면, 기 설정된 하나의 예측 모드 후보군(A 후보군)으로 화면내 예측을 수행하는 경우로 전제한다.
도 5는 본 발명의 일 실시예에 따른 화면내 예측에 사용되는 참조 화소 구성에 대한 제1 예시도이다.
본 발명의 일 실시예에 따른 영상 부호화에서 화면내 예측 방법은, 참조 화소 구성 단계, 구성된 참조 화소를 참조하여 하나 이상의 예측 모드를 이용한 예측 블록 생성 단계, 최적의 예측 모드를 결정하는 단계, 결정된 예측 모드를 부호화하는 단계를 포함할 수 있다. 또한, 영상 부호화 장치는 참조 화소 구성 단계, 예측 블록 생성 단계, 예측 모드 결정 단계, 예측 모드 부호화 단계를 구현하는 참조 화소 구성부, 예측 블록 생성부, 예측 모드 결정부, 예측 모드 부호화부를 포함하도록 구성할 수 있다. 전술한 과정의 일부는 생략될 수 있거나 다른 과정이 추가될 수 있고, 상기 기재된 순서가 아닌 다른 순서로 변경될 수 있다.
한편, 본 발명의 일 실시예에 따른 영상 복호화에서 화면내 예측 방법은, 참조 화소를 구성하고, 영상 부호화 장치에서 수신한 구문 정보(Syntax Element)를 통해 획득된 예측 모드에 따라 현재 블록에 대한 예측 블록을 생성할 수 있다.
화면내 예측이 수행되는 현재 블록의 크기 및 형태(M × N)는 블록 분할부로부터 획득될 수 있으며, 4×4 내지 256×256 의 크기를 가질 수 있다. 화면내 예측은 예측 블록 단위로 수행되는 것이 일반적일 수 있으나 블록 분할부의 설정에 따라 부호화 블록(또는 부호화 유닛으로 지칭), 변환 블록(또는 변환 유닛으로 지칭) 등의 단위로 수행될 수 있다. 블록 정보를 확인한 후 참조 화소 구성부에서는 현재 블록의 예측에 사용되는 참조 화소를 구성할 수 있다. 이때, 참조 화소는 임시 메모리(예를 들어, 배열<Array>. 1차, 2차 배열 등)를 통해 관리될 수 있으며, 블록의 화면내 예측 과정마다 생성 및 제거되고, 임시 메모리의 크기는 참조 화소의 구성에 따라 결정될 수 있다.
참조 화소는 현재 블록을 중심으로 좌, 상, 좌상, 우상, 좌하에 위치한 인접 블록(참조 블록으로 지칭될 수 있음)에 속하는 화소일 수 있으나, 이에 한정되지 않고 다른 구성의 블록 후보군이 현재 블록의 예측에 사용될 수도 있다. 여기서 좌, 상, 좌상, 우상, 좌하에 위치한 인접 블록은 래스터 또는 Z 스캔에 따라 부/복호화가 수행될 경우에 따라 선정된 블록일 수 있으며, 스캔 순서를 달리하면 다른 위치의 인접 블록(예를 들어, 우, 하, 우하 블록 등)에 속하는 화소도 참조 화소가 될 수 있다.
또한, 참조 블록은 현재 블록이 속한 컬러 공간과 다른 컬러 공간에서 현재 블록과 대응되는 블록이 될 수 있다. 여기서 Y/Cb/Cr 포맷을 예로 들 때, 컬러 공간은 Y, Cb, Cr 중 하나를 의미할 수 있다. 또한, 현재 블록과 대응되는 블록이란, 현재 블록과 동일한 위치 좌표를 갖거나, 컬러 성분 구성 비율에 따라 현재 블록과 대응되는 위치 좌표를 갖는 블록을 의미할 수 있다.
또한, 설명의 편의를 위해 상기 기 설정된 위치(좌, 상, 좌상, 우상, 좌하)에 따른 참조 블록이 하나의 블록으로 구성된 것을 전제로 설명하지만, 블록 분할에 따라 복수의 서브 블록으로 구성될 수도 있다.
정리하면, 현재 블록의 인접한 영역이 현재 블록의 화면내 예측을 위한 참조 화소의 위치일 수 있고, 예측 모드에 따라 다른 컬러 공간의 현재 블록과 대응되는 영역이 추가로 참조 화소의 위치로 고려될 수 있다. 상기 예 외에도 예측 모드, 방법 등에 따라 정의되는 참조 화소의 위치가 결정될 수 있다. 예를 들어, 블록 매칭 등의 방법을 통해 예측 블록을 생성할 경우에 참조 화소 위치는 현재 영상의 현재 블록 이전의 부/복호화가 완료된 영역 혹은 부/복호화가 완료된 영역에서 탐색 범위(예를 들어, 현재 블록의 왼쪽 또는 위쪽 또는 왼쪽 위, 오른쪽 위 등을 포함) 내에 포함된 영역이 참조 화소의 위치로 고려될 수 있다.
도 5를 참조하면, 현재 블록(M×N의 크기)의 화면내 예측에 사용되는 참조 화소는 현재 블록의 좌, 상, 좌상, 우상, 좌하로 인접한 화소(도 5의 Ref_L, Ref_T, Ref_TL, Ref_TR, Ref_BL)로 구성될 수 있다. 이때, 도 5에서 P(x,y)와 같은 형식으로 표현된 것은 화소 좌표를 의미할 수 있다.
한편, 현재 블록과 인접한 화소는 적어도 하나의 참조 화소 계층으로 분류할 수 있는데, 현재 블록과 가장 인접한 화소는 ref_0{현재 블록의 경계 화소와 화소값 차이가 1인 화소들. p(-1,-1) ~ p(2M-1,-1), p(-1,0) ~ p(-1,2N-1)}, 그 다음 인접한 화소{현재 블록의 경계 화소와 화소값 차이 2. p(-2,-2) ~ p(2M,-2), p(-2,-1) ~ p(-2,2N)}는 ref_1, 그 다음 인접한 화소{현재 블록의 경계 화소와 화소값 차이 3. p(-3,-3) ~ p(2M+1, -3), p(-3,-2) ~ p(-3,2N+1)}는 ref_2 등으로 나눌 수 있다. 즉, 현재 블록의 경계 화소와 인접한 화소 거리에 따라 참조 화소를 복수의 참조 화소 계층으로 분류할 수 있다.
또한, 여기서 참조 화소 계층은 인접한 이웃 블록마다 달리 설정할 수 있다. 예를 들어, 현재 블록과 상단으로 이웃한 블록을 참조 블록으로 사용할 때에는 ref_0번 계층에 따른 참조 화소를 사용하고, 우상단으로 이웃한 블록을 참조 블록으로 사용할 때에는 ref_1번 계층에 따른 참조 화소를 사용할 수 있다.
여기서 일반적으로 화면내 예측을 수행할 때 참조되는 참조 화소 집합은 현재 블록과 좌하, 좌, 좌상, 상단, 우상단으로 인접한 이웃 블록들에 속하고, ref_0번 계층(경계 화소와 가장 인접한 화소들)에 속하는 화소들이며, 이하에서 별도의 설명이 없다면, 이러한 화소들임을 전제한다. 그러나, 앞서 언급한 이웃 블록들 중 일부 블록에 속하는 화소들만 참조 화소 집합으로 사용할 수도 있고, 둘 이상의 계층에 속하는 화소들을 참조 화소 집합으로 사용할 수도 있다. 여기서 참조 화소 집합이나 계층은 묵시적으로 결정(부/복호화 장치에서 미리 설정)될 수도 있고, 명시적으로 결정(부호화 장치로부터 결정할 수 있는 정보를 수신)될 수도 있다.
여기서, 지원되는 참조 화소 계층은 최대 3개인 것을 전제로 설명하지만 그 이상의 값 또한 가질 수 있고, 참조 화소 계층의 개수와 참조 가능한 이웃 블록들의 위치에 따른 참조 화소 집합의 수(또는 참조 화소 후보군으로 지칭될 수 있음)는 블록의 크기, 형태, 예측 모드, 영상 타입<I/P/B. 이때, 영상은 픽쳐, 슬라이스, 타일 등>, 컬러 성분 등에 따라 달리 설정될 수 있고, 관련 정보를 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에 포함할 수 있다.
본 발명에서는 현재 블록과 가장 인접한 참조 화소 계층부터 낮은 인덱스(0부터 1씩 증가)를 할당하는 경우를 전제로 설명하지만, 이에 한정되지 않는다. 또한, 후술하는 참조 화소 구성 관련 정보는 위와 같은 인덱스 설정(복수의 참조 화소 집합 중 하나를 선택하는 경우에 작은 인덱스에 짧은 비트를 할당하는 이진화 등) 하에 생성될 수 있다.
또한, 지원되는 참조 화소 계층이 두 개 이상인 경우, 두 개 이상의 참조 화소 계층에 포함된 각각의 참조 화소를 이용하여 가중치 평균 등을 적용할 수 있다.
예를 들어, 도 5의 ref_0번 계층과 ref_1번 계층에 위치한 화소들의 가중치 합으로 획득한 참조 화소를 사용하여 예측 블록을 생성할 수 있다. 이때, 각 참조 화소 계층에서 가중치 합이 적용되는 화소는 예측 모드(예를 들어, 예측 모드 방향성 등)에 따라 정수 단위 화소뿐만 아니라 소수 단위 화소일 수도 있다. 또한, 제1 참조 화소 계층에 따른 참조 화소를 사용하여 획득되는 예측 블록과 제2 참조 화소 계층에 따른 참조 화소를 사용하여 획득되는 예측 블록에 각각 가중치(예를 들어, 7:1, 3:1, 2:1, 1:1 등)를 주어 하나의 예측 블록을 획득할 수 있다. 이때, 가중치는 현재 블록과 인접한 참조 화소 계층에 따른 예측 블록일수록 더 높은 가중치를 가질 수 있다.
참조 화소 구성 관련하여 명시적으로 정보가 생성되는 경우를 가정할 때 적응적인 참조 화소 구성을 허용하는 지시 정보(본 예에서 adaptive_intra_ref_sample_enabled_flag)는 비디오, 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에서 발생할 수 있다.
상기 지시 정보가 적응적인 참조 화소 구성을 허용(본 예에서 adaptive_intra_ref_sample_enabled_flag = 1)하는 것을 의미하면, 적응적인 참조 화소 구성 정보(본 예에서 adaptive_intra_ref_sample_flag)는 픽쳐, 슬라이스, 타일, 블록 등의 단위에서 발생할 수 있다.
상기 구성 정보가 적응적인 참조 화소 구성(본 예에서 adaptive_intra_ref_sample_flag = 1)을 의미하면, 참조 화소 구성 관련 정보(예를 들어, 참조 화소 계층과 집합에 대한 선택 정보 등. 본 예에서 intra_ref_idx)는 픽쳐, 슬라이스, 타일, 블록 등의 단위에서 발생할 수 있다.
이때, 적응적인 참조 화소 구성을 허용하지 않거나 적응적인 참조 화소 구성이 아닌 경우에 참조 화소는 미리 정해진 설정에 따라 구성될 수 있다. 일반적으로 이웃 블록의 가장 인접한 화소를 참조 화소로 구성하는 것이 그에 대한 예일 수 있으나, 이에 한정되지 않고 다양한 경우의 수(예를 들어, ref_0와 ref_1이 참조 화소 계층으로 선택되고 ref_0와 ref_1을 통해 가중치 합 등의 방법으로 예측 화소값을 생성하는 경우 등. 즉, 묵시적인 경우)가 가능할 수 있다.
또한, 참조 화소 구성 관련 정보(예를 들어 참조 화소 계층 또는 집합에 대한 선택 정보 등)는 미리 설정된 정보(예를 들어, 참조 화소 계층이 ref_0로 미리 설정된 경우)를 제외하고 구성(예를 들어, ref_1, ref_2, ref_3 등)될 수 있으나, 역시 이에 한정되지 않는다.
상기 예를 통해 참조 화소 구성에 관한 일부 경우를 살펴보았는데, 이는 다양한 부/복호화 정보 등과 결합되어 화면내 예측 설정이 정해질 수 있다. 이때, 부/복호화 정보는 영상 타입, 컬러 성분, 현재 블록의 크기, 형태, 예측 모드{예측 모드의 종류(방향성, 비방향성), 예측 모드의 방향(수직, 수평, 대각선1, 대각선2 등)} 등이 해당될 수 있으며, 이웃 블록의 부/복호화 정보와 현재 블록과 이웃 블록의 부/복호화 정보 조합 등에 따라 화면내 예측 설정(본 예에서는 참조 화소 구성 설정)이 정해질 수 있다.
도 6a 내지 도 6c는 본 발명의 일 실시예에 따른 참조 화소 구성에 대한 제2 예시도이다.
도 6a를 참조하면, 도 5의 ref_0번 참조 화소 계층만으로 참조 화소를 구성하는 경우를 확인할 수 있다. ref_0번 참조 화소 계층을 대상으로 이웃 블록(예를 들면, 좌하, 좌, 좌상, 상, 우상)에 속하는 화소들을 이용하여 참조 화소를 구성한 후에 후속하는 화면내 예측(참조 화소 생성, 참조 화소 필터링, 참조 화소 보간, 예측 블록 생성, 후처리 필터링 등. 참조 화소 구성에 따라 일부 화면내 예측 과정이 적응적으로 수행될 수 있음)을 수행할 수 있다. 본 예에서는 기 설정된 하나의 참조 화소 계층을 사용하는 경우로, 참조 화소 계층에 대한 설정 정보는 발생하지 않고, 비방향성 모드를 사용하여 화면내 예측을 수행하는 예를 나타낸다.
도 6b를 참조하면, 지원되는 2개의 참조 화소 계층을 모두 이용하여 참조 화소를 구성하는 경우를 확인할 수 있다. 즉, 계층 ref_0와 계층 ref_1에 속하는 화소들을 이용하여(또는 두 계층에 속하는 화소들의 가중치 평균값을 이용하여) 참조 화소를 구성한 후 화면내 예측을 수행할 수 있다. 본 예에서는 기 설정된 복수의 참조 화소 계층을 사용하는 경우로, 참조 화소 계층에 대한 설정 정보는 발생하지 않고, 일부 방향성 예측 모드(도면에서 오른쪽 위에서 왼쪽 아래 방향 또는 그 반대 방향)를 사용하여 화면내 예측을 수행하는 예를 나타낸다.
도 6c를 참조하면, 지원되는 3개의 참조 화소 계층 중에서 하나의 참조 화소 계층만을 이용하여 참조 화소를 구성하는 경우를 확인할 수 있다. 본 예에서는 복수의 참조 화소 계층 후보가 존재하여 이 중 사용되는 참조 화소 계층에 대한 설정 정보가 발생하고, 일부 방향성 예측 모드(도면에서 왼쪽 위에서 오른쪽 아래 방향)를 사용하여 화면내 에측을 수행하는 예를 나타낸다.
도 7은 본 발명의 일 실시예에 따른 참조 화소 구성에 대한 제3 예시도이다.
도 7의 도면 기호 a는 크기가 64×64 이상인 블록이며, 도면 기호 b는 크기가 16×16 이상 ~ 64×64 미만인 블록이고, 도면 기호 c는 크기가 16×16미만인 블록이다.
도면 기호 a에 따른 블록을 화면내 예측을 수행할 현재 블록으로 하면, 가장 인접한 하나의 참조 화소 계층(ref_0)을 이용하여 화면내 예측을 수행할 수 있다.
또한, 도면 기호 b에 따른 블록을 화면내 예측을 수행할 현재 블록으로 하면, 지원 가능한 2개의 참조 화소 계층(ref_0, ref_1)을 이용하여 화면내 예측을 수행할 수 있다.
또한, 도면 기호 c에 따른 블록을 화면내 예측을 수행할 현재 블록으로 하면, 지원 가능한 3개의 참조 화소 계층(ref_0, ref_1, ref_2)을 이용하여 화면내 예측을 수행할 수 있다.
도면 기호 a 내지 c에 따른 설명을 참조하면, 화면내 예측을 수행할 현재 블록의 크기에 따라 지원 가능한 참조 화소 계층의 개수를 달리 결정할 수 있다. 도 7에서는 현재 블록의 크기가 클수록 이웃 블록의 크기는 작을 확률이 높아지는데, 이는 다른 영상 특성으로 인한 분할의 결과일 수 있기 때문에, 현재 블록과 화소값 거리가 큰 화소로부터 예측을 수행하는 것을 방지하고자 하는 목적으로 블록의 크기가 커질수록 지원되는 참조 화소 계층의 개수가 줄어드는 경우를 가정하지만, 그 반대를 포함한 다른 변형의 경우도 가능하다.
도 8은 본 발명의 일 실시예에 따른 참조 화소 구성에 대한 제4 예시도이다.
도 8을 참조하면, 화면내 예측을 수행하는 현재 블록이 직사각 형태인 경우를 확인할 수 있다. 현재 블록이 직사각 형태로 가로 및 세로가 비대칭이라면, 현재 블록에서 길이가 긴 가로측 경계면과 인접한 참조 화소 계층의 지원 개수를 크게 설정하고, 현재 블록에서 길이가 짧은 세로측 경계면과 인접한 참조 화소 계층의 지원 개수를 적게 설정할 수 있다. 도면에서는 현재 블록의 가로 경계면과 인접한 참조 화소 계층을 2개로 설정하고, 현재 블록의 세로 경계면과 인접한 참조 화소 계층을 1개로 설정한 것을 확인할 수 있다. 이것은 현재 블록에서 길이가 짧은 세로측 경계면과 인접한 화소들은 현재 블록에 포함된 화소들과의 거리가 먼 경우가 많기 때문에(가로 길이가 길기 때문), 예측의 정확도가 감소될 수 있다. 따라서, 길이가 짧은 세로측 경계면과 인접한 참조 화소 계층의 지원 개수를 적게 설정하였으나, 그 반대의 경우도 가능할 수 있다.
또한, 화면내 예측 모드의 종류 또는 현재 블록과 이웃한 이웃 블록의 위치에 따라 예측에 사용할 참조 화소 계층을 달리 결정할 수 있다. 예를 들어, 현재 블록의 상단, 우상단으로 인접한 블록에 속하는 화소를 참조 화소로 사용하는 방향성 모드는 두 개 이상의 참조 화소 계층을 사용하고, 현재 블록의 좌단, 좌하단으로 인접한 블록에 속하는 화소를 참조 화소로 사용하는 방향성 모드는 가장 인접한 하나의 참조 화소 계층만을 사용할 수도 있다.
한편, 복수의 참조 화소 계층에서 각 참조 화소 계층을 통해 생성되는 예측 블록이 서로 동일하거나 유사하다면, 참조 화소 계층의 설정 정보를 생성하는 것은 불필요한 데이터를 추가로 발생하게 하는 결과일 수 있다.
예를 들어, 각 참조 화소 계층을 구성하는 화소들의 분포 특성이 서로 유사하거나 동일하다면 어느 참조 화소 계층을 사용하더라도 비슷하거나 동일한 예측 블록이 생성될 수 있으므로, 참조 화소 계층을 선정하는 데이터를 생성할 필요가 없다. 이때, 참조 화소 계층을 구성하는 화소들의 분포 특성은 화소들의 평균이나 분산값을 미리 설정된 임계값과 비교함으로써 판단할 수 있다.
즉, 최종적으로 결정된 화면내 예측 모드를 기준으로 참조 화소 계층들이 서로 동일 또는 유사하다면, 미리 설정된 방법(예를 들면 가장 인접한 참조 화소 계층을 선정)으로 참조 화소 계층을 선정할 수 있다.
이때, 복호화기에서는 부호화 장치로부터 화면내 예측 정보(또는 화면내 예측 모드 정보)를 수신하고, 수신된 정보를 기초로 참조 화소 계층을 선정하는 정보를 수신할지 여부를 판단할 수 있다.
상기 다양한 예를 통해 복수의 참조 화소 계층을 이용해 참조 화소를 구성되는 경우를 나타내었지만, 이에 한정되지 않고 다양한 변형의 예가 가능하며 다른 추가적인 구성과 결합되어 나타낼 수도 있다.
화면내 예측의 참조 화소 구성부는 참조 화소 생성부, 참조 화소 보간부, 참조 화소 필터부 등을 포함할 수 있으며, 상기 구성의 전부 또는 일부를 포함하여 구성할 수 있다. 여기서 참조 화소가 될 수 있는 화소들을 포함하는 블록을 참조 후보 블록으로 지칭할 수 있다. 또한, 참조 후보 블록은 일반적으로 현재 블록과 인접한 이웃 블록일 수 있다.
참조 화소 구성부에서 참조 후보 블록에 대하여 설정되는 참조 화소 사용 가능성(Availability)에 따라, 참조 후보 블록에 속하는 화소를 참조 화소로 사용할 수 있는지 결정할 수 있다.
상기 참조 화소 사용 가능성은 다음의 조건 중 적어도 하나를 만족하는 경우에 사용 불가로 판단할 수 있다. 예를 들어, 참조 후보 블록이 픽쳐 경계 바깥에 위치하는 경우, 현재 블록과 동일한 분할 단위(예를 들어, 슬라이스, 타일 등)에 속하지 않는 경우, 부/복호화가 완료되지 않은 경우, 부/복호화 설정에 따라 사용이 제한되는 경우 중 하나라도 만족하는 경우에는 해당하는 참조 후보 블록에 속하는 화소들은 참조할 수 없는 것으로 판단할 수 있다. 이때, 앞선 조건들을 모두 만족하지 않는 경우에는 사용 가능으로 판단할 수 있다.
또한, 부/복호화 설정에 의해 참조 화소 사용을 제한할 수 있다. 예를 들어, 참조 후보 블록에 대한 참조를 제한하는 플래그(예를 들어, constrained_intra_pred_flag)가 활성화된 경우, 해당 참조 후보 블록에 속하는 화소를 참조 화소로 사용할 수 없도록 제한될 수 있다. 상기 플래그는 통신 환경을 비롯한 각종 외부 요인으로 인한 오류에 강인한 부/복호화를 수행하기 위하여, 참조 후보 블록이 현재 픽쳐와 시간적으로 다른 영상을 참조하여 복원된 블록인 경우에 적용될 수 있다.
여기서 참조를 제한하는 플래그가 비활성화 된 경우(예를 들어, I 픽쳐 타입 또는 P나 B 픽쳐 타입에서 constrained_intra_pred_flag = 0일 수 있음)에는 참조 후보 블록의 화소를 참조 화소로 모두 사용할 수 있다. 또한, 참조를 제한하는 플래그가 활성화된 경우(예를 들어, P나 B 픽쳐 타입에서 constrained_intra_pred_flag = 1일 수 있음)에 참조 후보 블록이 화면내 예측으로 부호화되었는지, 화면간 예측으로 부호화되었는지에 따라, 참조 가능 여부가 결정될 수 있다. 즉, 참조 후보 블록이 화면내 예측(Intra prediction)으로 부호화되었다면, 해당 참조 후보 블록은 상기 플래그의 활성화 여부와 관계없이 참조가 가능할 수 있고, 참조 후보 블록이 화면간 예측(Inter prediction)으로 부호화되었다면, 해당 참조 후보 블록은 상기 플래그의 활성화 여부에 따라 참조 가능 여부가 결정될 수 있다.
또한, 다른 컬러 공간에서 현재 블록과 대응되는 위치를 갖는 복원 블록이 참조 후보 블록이 될 수 있다. 이때에는 참조 후보 블록의 부호화 모드에 따라 참조 가능 여부가 결정될 수 있다. 예를 들어, 현재 블록이 일부 색차 성분(Cb, Cr)에 속하면, 휘도 성분(Y)에서 현재 블록과 대응되는 위치를 갖고 부/복호화가 완료된 블록(=참조 후보 블록)의 부호화 모드에 따라 참조 가능 여부가 결정될 수 있다. 이것은 컬러 공간에 따라 독립적으로 부호화 모드가 결정되는 경우에 해당하는 예시일 수 있다.
참조를 제한하는 플래그는 일부 영상 타입(예를 들어, P 또는 B 슬라이스/타일 타입 등)에서 적용되는 설정일 수 있다.
참조 화소 사용 가능성을 통해 참조 후보 블록이 모두 사용 가능, 일부 사용 가능, 모두 사용 불가한 경우로 분류할 수 있다. 모두 사용 가능한 경우를 제외한 나머지 경우에는 사용 불가한 후보 블록 위치의 참조 화소를 채우거나 생성할 수 있다.
참조 후보 블록이 사용 가능한 경우에는 해당 블록의 기 설정된 위치의 화소(또는 현재 블록과 인접한 화소)를 현재 블록의 참조 화소 메모리에 저장할 수 있다. 이때, 해당 블록 위치의 화소 데이터는 그대로 복사되거나 참조 화소 필터링 등의 과정을 통해 참조 화소 메모리에 저장될 수 있다.
참조 후보 블록이 사용 불가인 경우에는 참조 화소 생성 과정을 통해 획득된 화소를 현재 블록의 참조 화소 메모리에 포함할 수 있다.
정리하면, 참조 화소 후보 블록이 사용 가능 상태인 경우 참조 화소를 구성할 수 있고, 참조 화소 후보 블록이 사용 불가 상태인 경우 참소 화소를 생성할 수 있다.
사용 불가능한 참조 후보 블록에서 미리 설정된 위치에 참조 화소를 채우는 방법은 다음과 같다. 먼저, 임의의 화소값을 사용하여 참조 화소를 생성할 수 있다. 여기서 임의의 화소값은 화소값 범위에 속하는 특정 화소값으로서, 비트 심도에 기초한 화소값 조정 과정 또는 영상의 화소값 범위 정보에 기초한 화소값 조정 과정 등에서 사용되는 화소값의 최소값, 최대값, 중앙값이거나, 그 값들로부터 유도되는 값일 수 있다. 여기서 임의의 화소값으로 참조 화소를 생성하는 것은 참조 후보 블록 모두가 사용 불가한 경우에 적용될 수도 있다.
다음으로, 사용 불가능한 참조 후보 블록과 인접한 블록에 속하는 화소를 이용하여 참조 화소를 생성할 수 있다. 구체적으로, 인접 블록에 속하는 화소를 사용 불가능한 참조 후보 블록에서 미리 설정된 위치에 외삽, 내삽 또는 복사하여 채워넣을 수 있다. 이때, 복사나 외삽 등을 수행하는 방향은 시계 방향 또는 시계 반대 방향일 수 있으며, 부/복호화 설정에 따라 정해질 수 있다. 예를 들어, 블록 내의 참조 화소 생성 방향은 기 설정된 하나의 방향을 따르거나 사용 불가한 블록의 위치에 따라 적응적으로 결정되는 방향을 따를 수 있다.
도 9a 내지 도 9b는 사용 불가능한 참조 후보 블록에서 미리 설정된 위치에 참조 화소를 채우는 방법에 대한 예시도이다.
도 9a를 참조하면, 하나의 참조 화소 계층으로 이루어진 참조 화소들 중에서 사용 불가능한 참조 후보 블록에 속하는 화소들을 채우는 방법을 확인할 수 있다. 도 9a에서 현재 블록과 우상단으로 인접한 이웃 블록이 사용 불가능한 참조 후보 블록인 경우, 우상단으로 인접한 이웃 블록에 속하는 참조 화소(<1>로 표시)는 현재 블록의 상단으로 인접한 이웃 블록에 속하는 참조 화소를 시계 방향으로 외삽 또는 선형 외삽하여 생성할 수 있다.
또한, 도 9a에서 현재 블록의 좌측으로 인접한 이웃 블록이 사용 불가능한 참조 후보 블록인 경우, 좌측으로 인접한 이웃 블록에 속하는 참조 화소(<2>로 표시)는, 현재 블록의 좌상단으로 인접한 이웃 블록(사용 가능한 블록에 해당)에 속하는 참조 화소를 시계 반대 방향으로 외삽 또는 선형 외삽하여 생성될 수 있다. 이때, 시계 방향으로 외삽 또는 선형 외삽하면 현재 블록의 좌하단으로 인접한 이웃 블록에 속하는 참조 화소를 이용할 수 있다.
또한, 도 9a에서 현재 블록의 상측으로 인접한 이웃 블록에 속하는 참조 화소 일부(<3>으로 표시)는 양쪽에 사용 가능한 참조 화소를 내삽 또는 선형 내삽함으로써 생성될 수 있다. 즉, 이웃 블록에 속하는 참조 화소 전체가 아니라 일부가 사용 불가능한 경우도 설정될 수 있고, 이 경우 사용 불가능한 참조 화소의 인접 화소를 이용하여 사용 불가능한 참조 화소를 채울 수 있다.
도 9b를 참조하면, 복수의 참조 화소 계층으로 구성된 참조 화소들 중에서 일부 참조 화소가 사용 불가능 할 때에 사용 불가능한 참조 화소를 채우는 방법을 확인할 수 있다. 도 9b를 참조하면, 현재 블록의 우상단으로 인접한 이웃 블록이 사용 불가능한 참조 후보 블록인 경우, 해당 이웃 블록에 속하는 3개의 참조 화소 계층에 속하는 화소들(<1>로 표시)은, 현재 블록의 상단으로 인접한 이웃 블록(사용 가능한 블록에 해당)에 속하는 화소들을 이용하여 시계 방향으로 생성될 수 있다.
또한, 도 9b에서 현재 블록의 좌측으로 인접한 이웃 블록이 사용 불가능한 참조 후보 블록이고, 현재 블록의 좌상단과 좌하단으로 인접한 이웃 블록이 사용 가능한 참조 후보 블록이라면, 사용 가능한 참조 후보 블록의 참조 화소를 시계 방향, 시계 반대 방향 또는 양방향으로 채워넣어 사용 불가능한 참조 후보 블록의 참조 화소를 생성할 수 있다.
이때, 각 참조 화소 계층의 사용 불가능한 참조 화소는 동일한 참조 화소 계층의 화소를 이용하여 생성될 수 있으나, 동일하지 않은 참조 화소 계층의 화소를 이용하는 것을 배제하지 않는다. 예를 들어 도 9b에서 현재 블록의 상단으로 인접한 이웃 블록에 속하는 3개의 참조 화소 계층에 따른 참조 화소들(<3>으로 표시)이 사용 불가능한 참조 화소로 전제한다. 이때, 현재 블록과 가장 인접한 참조 화소 계층(ref_0)과 가장 먼 참조 화소 계층(ref_2)에 속하는 화소들은 동일한 참조 화소 계층에 속하고 사용가능한 참조 화소를 이용하여 생성될 수 있다. 또한, 현재 블록과 1화소 거리만큼 떨어진 참조 화소 계층(ref_1)에 속하는 화소들은 동일한 참조 화소 계층(ref_1)에 속하는 화소를 이용하는 것뿐만 아니라, 다른 참조 화소 계층(ref_0, ref_2)에 속하는 화소를 이용하여 생성될 수 있다. 이때, 양쪽으로 사용가능한 참조 화소를 2차 선형 내삽 등의 방법을 사용하여 사용 불가능한 참조 화소를 채워넣을 수 있다.
상기 예는 복수의 참조 화소 계층이 참조 화소로 구성될 때 일부 참조 후보 블록이 사용 불가한 경우에 참조 화소를 생성하는 예를 나타낸다. 또는, 부/복호화 설정(예를 들어, 적어도 하나의 참조 후보 블록이 사용 불가한 경우 또는 모든 참조 후보 블록이 사용 불가한 경우 등)에 따라 적응적인 참조 화소 구성을 허용하지 않는 설정(본 예에서 adaptive_intra_ref_sample_flag = 0)이 가능할 수 있다. 즉, 어떤 추가적으로 발생하는 정보없이 참조 화소는 미리 정해진 설정에 따라 구성될 수 있다.
참조 화소 보간부는 참조 화소의 선형 보간을 통해 소수 단위의 참조 화소를 생성할 수 있다. 본 발명에서는 참조 화소 구성부의 일부 과정으로 가정하여 설명하나, 예측 블록 생성부에 포함되어 구성될 수 있으며 예측 블록을 생성하기 전에 수행되는 과정으로 이해할 수 있다.
또한, 후술하는 참조 화소 필터부와 구분되는 별개의 과정으로 가정하지만, 하나의 과정으로 통합되어 구성될 수 있다. 이는 참조 화소 보간부와 참조 화소 필터부를 통해 복수의 필터링이 적용될 때 참조 화소에 적용되는 필터링 횟수의 증가로 참조 화소에 왜곡을 발생시키는 경우를 대비하고자 하는 구성일 수도 있다.
참조 화소 보간 과정은 일부 예측 모드(예를 들어, 수평, 수직, 일부 대각선 모드<Diagonal down right, Diagonal down left, Diagonal up right와 같이 45도 각도를 이루는 모드>, 비방향성 모드, 컬러 모드, 컬러 복사 모드 등. 즉, 예측 블록 생성 시에 소수 단위의 보간이 필요 없는 모드)에는 수행하지 않으며, 그 외의 예측 모드(예측 블록 생성 시에 소수 단위의 보간이 필요한 모드)에 수행될 수 있다.
보간 정밀도(예를 들어, 1, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64 등의 화소 단위)는 예측 모드(또는 예측 모드 방향성)에 따라 결정될 수 있다. 예를 들어, 45도 각도를 이루는 예측 모드의 경우 보간 과정은 필요하지 않으며, 22.5도나 67.5도 각도를 이루는 예측 모드의 경우 1/2 화소 단위의 보간이 필요하다. 위와 같이 예측 모드에 따라 적어도 하나의 보간 정밀도 및 최대 보간 정밀도가 결정될 수 있다.
참조 화소 보간을 위해 미리 설정된 하나의 보간 필터(예를 들어, 2-tap 선형 보간 필터)만을 사용하거나, 복수의 보간 필터 후보군(예를 들어, 4-tap 큐빅 필터, 4-tap 가우시안 필터, 6-tap 위너 필터, 8-tap 칼만 필터등) 중에서 부/복호화기 설정에 따라 선택된 필터를 사용할 수도 있다. 이때, 보간 필터는 필터 tap의 수(즉, 필터링이 적용되는 화소의 개수), 필터 계수 등의 차이로 구분될 수 있다.
보간은 낮은 정밀도에서 높은 정밀도 순서(예를 들어, 1/2 -> 1/4 - 1/8)로 단계적으로 수행될 수 있고, 일괄적으로 수행될 수도 있다. 전자의 경우는 정수 단위의 화소와 소수 단위의 화소(현재 보간하고자 하는 화소보다 낮은 정밀도로 앞서 보간된 화소)를 기반으로 보간을 수행하는 것을 의미하고, 후자의 경우는 정수 단위의 화소를 기반으로 보간을 수행하는 것을 의미할 수 있다.
복수의 필터 후보군 중 하나를 사용하는 경우 필터 선택 정보를 명시적으로 생성할 수 있거나 또는 묵시적으로 정할 수 있으며, 부/복호화 설정(예를 들어, 보간 정밀도, 블록의 크기, 형태, 예측 모드 등)에 따라 정해질 수 있다. 이때, 명시적으로 생성되는 단위는 비디오, 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등이 해당된다.
예를 들어, 1/4 이상의 보간 정밀도(1/2, 1/4)를 갖는 경우에는 정수 단위의 참조 화소에 8-tap 칼만 필터를 적용하고, 1/4 미만 1/16 이상의 보간 정밀도(1/8, 1/16)를 갖는 경우에는 정수 단위의 참조 화소와 1/4 이상 단위의 보간된 참조 화소에 4-tap 가우시안 필터를 적용하고, 1/16 미만의 보간 정밀도(1/32, 1/64)를 갖는 경우에는 정수 단위 참조 화소와 1/16 이상 단위의 보간된 참조 화소에 2-tap 선형 필터를 적용할 수 있다.
또는, 64 × 64 이상 블록의 경우에는 8-tap 칼만 필터를 적용하고, 64 × 64 미만 16 × 16 이상 블록의 경우에는 6-tap 위너 필터를 적용하고, 16 × 16 미만 블록의 경우에는 4-tap 가우시안 필터를 적용할 수 있다.
또는, 수직 또는 수평 모드를 기준으로 22.5도 각도 차이 미만인 예측 모드의 경우에는 4-tap 큐빅 필터를 적용하고, 22.5도 각도 차이 이상인 예측 모드의 경우 4-tap 가우시안 필터를 적용할 수 있다.
또한, 복수의 필터 후보군은 일부 부/복호화 설정에는 4-tap 큐빅 필터, 6-tap 위너 필터, 8-tap 칼만 필터으로 구성될 수 있고, 일부 부/복호화 설정에는 2-tap 선형 필터, 6-tap 위너 필터로 구성될 수 있다.
도 10a 내지 도 10c는 본 발명의 일 실시예에 따라 구성된 참조 화소들에 대해 소수 화소 단위를 기반으로 보간을 수행하는 방법에 대한 예시도이다.
도 10a를 참조하면, 하나의 참조 화소 계층(ref_i)이 참조 화소로 지원되는 경우에 소수 단위의 화소를 보간하는 방법을 확인할 수 있다. 구체적으로 보간 대상 화소(x로 표기)와 인접한 화소들(본 예에서는 정수 단위 화소에 필터를 적용하는 경우를 가정)에 필터링(int_func_1D을 필터링 함수로 표기)을 적용하여 보간을 수행할 수 있다. 여기서는 하나의 참조 화소 계층이 참조 화소로 사용되므로 보간 대상 화소(x)와 동일한 참조 화소 계층에 속하는 인접 화소를 이용하여 보간이 수행될 수 있다.
도 10b를 참조하면, 두 개 이상의 참조 화소 계층(ref_i, ref_j, ref_k)이 참조 화소로 지원되는 경우에서 소수 단위의 보간 화소를 획득하는 방법을 확인할 수 있다. 도 10b에서는 참조 화소 계층 ref_j에서 참조 화소 보간 과정을 수행할 때, 다른 참조 화소 계층(ref_k, ref_i)을 추가로 이용하여 소수 단위의 보간 대상 화소의 보간을 수행할 수 있다. 구체적으로, 보간 대상 화소(xj의 위치) 및 다른 참조 화소 계층에 속하고 보간 대상 화소와 대응되는 위치(예측 모드의 방향에 따라 각 참조 화소 계층에서 상응하는 위치)의 화소(xk, xi)들 각각을 인접 화소들(ak ~ hk, aj ~ hj, ai ~ hi)을 필터링(보간 과정. int_func_1D 함수)하여 획득하고, 획득된 1차 보간 화소들(xk, xj, xi)에 대해 추가적인 필터링(보간 과정이 아닌 [1, 2, 1] / 4, [1, 6, 1] / 8와 같은 가중치 평균 등에 해당되는 필터링일 수 있음)을 수행함으로써 최종적으로 참조 화소 계층 ref_j에서의 최종 보간 화소(x)를 획득할 수 있다. 본 예에서는 보간 대상 화소에 대응되는 다른 참조 화소 계층의 화소(xk, xi)가 보간 과정을 통해 획득 가능한 소수 단위 화소인 경우를 가정하여 설명하였다.
위 예시에서는 각 참조 화소 계층에서 필터링을 통해 1차 보간 화소를 얻고, 1차 보간 화소들을 대상으로 추가적인 필터링을 수행하여 최종 보간 화소를 얻는 경우로 서술하였으나, 여러 참조 화소 계층의 인접 화소들(ak ~ hk, aj ~ hj, ai ~ hi)을 필터링하여 한번에 최종 보간 화소를 획득할 수도 있다.
도 10b에서 지원되는 3개의 참조 화소 계층 중에서 실제 참조 화소로 사용되는 계층은 ref_j인 경우일 수 있다. 즉, 참조 화소로 구성되는 하나의 참조 화소 계층의 보간을 위해 후보군에 포함(예를 들어, 참조 화소로 구성되지 않는다는 것은 해당 참조 화소 계층의 화소는 예측에 사용되지는 않는다는 의미일 수 있으나 이 경우에는 보간을 위해 해당 화소들을 참조하는 것이니 정확히 따지면 사용되는 경우에 포함될 수도 있음)되는 다른 참조 화소 계층을 이용하는 경우일 수 있다.
도 10c를 참조하면, 지원되는 2개의 참조 화소 계층이 모두 참조 화소로 사용되는 경우에 대한 예시이다. 지원되는 각 참조 화소 계층에서 보간하고자 하는 소수 단위 위치와 인접 화소들(본 예에서 di, dj, ei, ej)를 입력 화소로 구성하고, 인접 화소들에 대하여 필터링을 수행함으로써, 최종 보간 화소(x)를 획득할 수 있다. 다만, 여기서도 도 10b에서와 같이 각 참조 화소 계층에서 1차 보간 화소를 얻고 1차 보간 화소에 추가적인 필터링을 수행하여 최종 보간 화소(x)를 얻는 방법도 가능할 수 있다.
상기 예시는 참조 화소 보간 과정으로 한정되는 것은 아니며, 화면내 예측의 다른 과정(예를 들어, 참조 화소 필터 과정, 예측 블록 생성 과정 등) 등과 결합되는 과정으로도 이해될 수 있다.
도 11a 및 도 11b는 본 발명의 일 실시예에 따른 적응적인 참조 화소 필터링 방법을 설명하기 위한 제1 예시도이다.
참조 화소 필터부는 일반적으로 저역 통과 필터{Low-pass Filter. 예를 들어, [1, 2, 1] / 4, [2, 3, 6, 3, 2] / 16와 같은 3-tap, 5-tap 필터 등}를 사용하여 평활화(Smoothing)하는 것이 참조 화소 필터부의 주된 목적일 수 있으나, 필터 적용 목적{예를 들어, 선명화(Sharpening) 등}에 따라 다른 종류의 필터(예를 들어, 고역 통과 필터 등)가 사용될 수 있다. 본 발명에서는 평활화를 목적으로 필터링을 수행하여 부/복호화 과정에 발생하는 열화를 줄여주는 것을 중심으로 설명한다.
참조 화소 필터링은 부/복호화 설정에 따라 수행 여부가 결정될 수 있다. 그러나 일괄적으로 필터링 유무를 적용하는 것은 영상의 부분적인 특성을 반영하지 못하는 단점이 발생하므로, 영상의 부분적인 특성에 기반하여 필터링을 수행하는 것이 부호화 성능 향상에 유리할 수 있다. 여기서 영상의 특성은 영상 타입, 컬러 성분, 양자화 파라미터, 현재 블록의 부/복호화 정보(예를 들어, 현재 블록의 크기, 형태, 분할 정보, 예측 모드 등)뿐만 아니라 이웃 블록의 부/복호화 정보, 그리고 현재 블록과 이웃 블록의 부/복호화 정보의 조합 등에 따라 판단할 수 있다. 또한, 참조 화소 분포 특성(예를 들어, 참조 화소 영역의 분산, 표준편차, 평탄한 영역, 불연속적 영역 등)에 따라 판단할 수 있다.
도 11a를 참조하면, 일부 부/복호화 설정(예를 들어, 블록 크기 범위 A, 예측 모드 B, 컬러 성분 C 등)에 따른 분류(카테고리 0)에 속하면, 필터링을 적용하지 않고, 일부 부/복호화 설정(예를 들어, 현재 블록의 예측 모드 A, 기 설정된 이웃 블록의 예측 모드 B 등)에 따른 분류(카테고리 1)에 속하면, 필터링을 적용할 수 있다.
도 11b를 참조하면, 일부 부/복호화 설정(예를 들어, 현재 블록의 크기 A, 이웃 블록의 크기 B, 현재 블록의 예측 모드 C 등)에 따른 분류(카테고리 0)에 속하면 필터링을 적용하지 않고, 일부 부/복호화 설정(예를 들어, 현재 블록의 크기 A, 현재 블록의 형태 B, 이웃 블록의 크기 C 등)에 따른 분류(카테고리 1)에 속하면 필터 A를 이용하여 필터링을 수행하고, 일부 부/복호화 설정(예를 들어, 현재 블록의 부모 블록 A, 이웃 블록의 부모 블록 B 등)에 따른 분류(카테고리 2)에 속하면 필터 b를 이용하여 필터링을 수행할 수 있다.
따라서, 현재 블록과 이웃 블록의 크기, 예측 모드, 컬러 성분 등에 따라 필터링의 적용 여부, 필터의 종류, 필터 정보의 부호화 여부(명시적/묵시적), 필터링 횟수 등을 결정할 수 있고, 필터의 종류는 필터의 tap의 수, 필터 계수 등의 차이로 분류될 수 있다. 이때, 필터링 횟수가 2번 이상은 동일한 필터를 여러 번 적용하던지 또는 다른 필터를 각각 적용하는 등의 응용도 가능할 수 있다.
상기 예는 영상의 특성에 따라 참조 화소 필터링이 미리 설정된 경우일 수 있다. 즉, 묵시적으로 필터 관련 정보가 정해지는 경우일 수 있다. 그러나 전술한 것과 같은 영상의 특성에 대한 판단이 맞지 않을 경우에는 오히려 부호화 효율이 부정적인 영향을 끼칠 수 있기 때문에 이를 위한 부분을 고려할 필요가 있다.
위와 같은 경우를 방지하고자 하는 목적으로 참조 화소 필터링은 명시적인 설정이 가능할 수 있다. 예를 들어, 필터링 적용 여부에 대한 정보가 발생할 수 있다. 이때, 필터가 하나일 경우에는 필터 선택 정보는 발생하지 않으며, 복수의 필터 후보군이 존재하는 경우에는 필터 선택 정보가 발생할 수 있다.
상기 예를 통해 참조 화소 필터링 관련하여 묵시적인 설정과 명시적인 설정에 대해 설명하였지만, 일부 경우에는 명시적인 설정으로 정해지고, 일부 경우에는 묵시적인 설정으로 정해지는 혼합적인 경우가 가능할 수 있다. 여기서 묵시적의 의미는 복호화기에서 참조 화소 필터에 관련된 정보(예를 들어, 필터링 적용 여부 정보, 필터 종류 정보)를 유도할 수 있음을 의미한다.
도 12는 본 발명의 일 실시예에 따른 적응적인 참조 화소 필터링 방법을 설명하기 위한 제2 예시도이다.
도 12를 참조하면, 부/복호화 정보를 통해 확인되는 영상의 특성에 따라 카테고리를 분류하고, 분류된 카테고리에 따라 참조 화소 필터링을 적응적으로 수행할 수 있다.
예를 들어, 카테고리 0으로 분류되는 경우에는 필터링을 적용하지 않고, 카데고리 1로 분류되는 경우에는 필터링 A를 적용한다. 카테고리 0와 1의 경우에는 묵시적인 참조 화소 필터링의 일 예일 수 있다.
또한, 카테고리 2로 분류되는 경우에는 필터링을 적용하지 않거나 필터링 A를 적용할 수 있으며, 이때 발생하는 정보는 필터링 적용 여부에 대한 정보일 수 있으며 필터 선택 정보는 발생하지 않는다.
또한, 카테고리 3으로 분류되는 경우에는 필터링 A를 적용하거나 필터링 B를 적용할 수 있으며, 이때 발생하는 정보는 필터 선택 정보일 수 있으며 필터링 적용은 무조건 수행하는 예일 수 있다. 즉, 카테고리 3으로 분류되는 경우는 필터링을 꼭 수행하되 필터링의 종류를 선택해야 하는 상황으로 이해될 수 있다.
또한, 카테고리 4로 분류되는 경우에는 필터링을 적용하지 않거나 필터링 A를 적용하거나 또는 필터링 B를 적용할 수 있으며, 이때 발생하는 정보는 필터링 적용 여부에 대한 정보와 필터 선택 정보일 수 있다.
정리하면, 카테고리에 따라 명시적 또는 묵시적인 처리가 결정될 수 있으며, 명시적인 처리로 진행되는 경우 각 참조 화소 필터 관련 후보군 설정이 적응적으로 구성될 수 있다.
상기 카테고리 관련하여 다음과 같은 예를 고려할 수 있다.
먼저, 64 × 64 이상의 크기를 갖는 블록의 경우 현재 블록의 예측 모드에 따라 <필터링 off>, <필터링 on + 필터 A>, <필터링 on + 필터 B>, <필터링 on + 필터 C> 중 하나가 묵시적으로 결정될 수 있다. 이때, 참조 화소 분포 특성을 고려할 경우 추가되는 후보는 <필터링 on + 필터 C>일 수 있다. 즉, 필터링 on인 상황에서는 필터 A, 필터 B가 적용되거나 또는 필터 C가 적용될 수 있다.
또한, 64 × 64 미만 16 × 16 이상의 크기를 갖는 블록의 경우 현재 블록의 예측 모드에 따라 <필터링 off>, <필터링 on + 필터 A>, <필터링 on + 필터 B> 중 하나가 묵시적으로 결정될 수 있다.
또한, 16 × 16 미만의 크기를 갖는 블록의 경우 현재 블록의 예측 모드에 따라 <필터링 off>, <필터링 on + 필터 A>, <필터링 on + 필터 B> 중 하나가 선택된다. 이때, 일부 예측 모드의 경우 <필터링 off>로 묵시적으로 결정되고, 일부 예측 모드의 경우 <필터링 off>, <필터링 on + 필터 A> 중 하나가 명시적으로 선택되고, 일부 예측 모드의 경우 <필터링 off>, <필터링 + 필터 B> 중 하나가 명시적으로 선택될 수 있다.
복수의 참조 화소 필터 관련 정보에 대한 명시적 처리에 대한 일 예로, 각 필터링(본 예에서는 필터링 off 상황도 포함)에 따른 획득되는 참조 화소가 동일하거나 비슷한 경우에는 참조 화소 필터 정보(예를 들어, 참조 화소 필터링 허용 정보, 참조 화소 필터 정보 등)를 생성하는 것은 불필요한 중복 정보를 생성하는 결과일 수 있다. 예를 들어, 각 필터링에 따라 획득되는 참조 화소 분포 특성(예를 들어, 각 참조 화소의 평균, 분산 등을 통해 획득된 값과 경계값<Threshold>을 비교하여 판단되는 특성)이 동일하거나 비슷하다면 참조 화소 필터 관련 정보는 생략될 수 있다. 참조 화소 필터 관련 정보가 생략되면, 미리 설정된 방법(예를 들어, 필터링 off)으로 필터링을 적용할 수 있다. 복호화기에서는 화면내 예측 정보를 수신하여 참조 화소 필터 관련 정보를 수신할 지 여부에 대해 부호화기와 동일한 판단이 가능할 수 있고, 이 판단에 기반하여 참조 화소 필터 관련 정보 수신 여부를 결정할 수 있다.
참조 화소 필터링 관련하여 명시적으로 정보가 생성되는 경우를 가정할 때 적응적인 참조 화소 필터링을 허용하는 지시 정보(본 예에서 adaptive_ref_filter_enabled_flag)는 비디오, 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에서 발생할 수 있다.
상기 지시 정보가 적응적인 참조 화소 필터링을 허용(본 예에서 adaptive_ref_filter_enabled_flag = 1)하는 것을 의미하면, 적응적인 참조 화소 필터링 허용 정보(본 예에서 adaptive_ref_filter_flag)는 픽쳐, 슬라이스, 타일, 블록 등의 단위에서 발생할 수 있다.
상기 허용 정보가 적응적인 참조 화소 필터링(본 예에서 adaptive_ref_filter_flag = 1)을 의미하면, 참조 화소 필터링 관련 정보(예를 들어, 참조 화소 필터 선택 정보 등. 본 예에서 ref_filter_idx)는 픽쳐, 슬라이스, 타일, 블록 등의 단위에서 발생할 수 있다.
이때, 적응적인 참조 화소 필터링을 허용하지 않거나 적응적인 참조 화소 필터링이 적용되지 않는 경우에 참조 화소는 미리 정해진 설정(전술한 것과 같이 미리 영상 부/복호화 정보 등에 따라 필터링 적용 여부, 필터의 종류 등이 결정됨)에 따라 필터링 동작이 정해질 수 있다.
도 13a 내지 도 13b는 본 발명의 일 실시예에 따른 참조 화소 필터링에서 하나의 참조 화소 계층을 이용하는 예시도이다.
도 13a를 참조하면, 참조 화소 계층 ref_i에 속하는 화소들 중에서 대상 화소(d) 및 대상 화소(d)와 인접한 화소(a, b, c, e, f, g)에 필터링(smt_func_1 함수로 지칭함)을 적용하여 보간을 수행하는 것을 확인할 수 있다.
도 13a는 일반적으로 한 번의 필터링이 적용되는 예일 수 있으나, 복수의 필터링이 적용되는 경우 또한 가능할 수 있다. 예를 들어, 1차 필터링을 적용하여 획득된 참조 화소(본 예에서 a*, b*, c*, d* 등)에 2차 필터링을 적용할 수 있다.
도 13b를 참조하면, 대상 화소(e)를 중심으로 양 쪽에 위치한 화소에 대하여 거리(예를 들면 a와의 거리 z)에 비례한 선형 보간을 통해 필터링(smt_func_2함수로 지칭)된 화소(e*)를 획득할 수 있다. 여기서 양쪽에 위치한 화소는 현재 블록의 상 블록, 좌 블록, 상 블록 + 우상 블록, 좌 블록 + 좌하 블록, 좌상 블록 + 상 블록 + 우상 블록, 좌상 블록 + 좌 블록 + 좌하 블록, 좌상 블록 + 좌 블록 + 상 블록 + 좌하 블록 + 우상 블록 등으로 이루어지는 블록내 인접 화소들의 양 끝점에 위치한 화소가 될 수 있다. 도 13b는 참조 화소 분포 특성에 따라 수행되는 참조 화소 필터링일 수 있다.
도 13a 내지 도 13b는 참조 화소 필터링을 위해 필터링 대상 참조 화소와 동일한 참조 화소 계층의 화소를 이용하는 경우를 나타낸다. 이때, 참조 화소 필터링에 사용되는 필터의 종류는 참조 화소 계층에 따라 동일하거나 동일하지 않을 수 있다.
또한, 복수의 참조 화소 계층을 이용할 경우에는 일부 참조 화소 계층에서 참조 화소 필터링을 위해 동일한 참조 화소 계층의 화소 뿐만 아니라 동일하지 않은 참조 화소 계층의 화소를 이용하는 경우가 가능할 수 있다.
도 14는 본 발명의 일 실시예에 따른 참조 화소 필터링에서 복수의 참조 화소 계층을 이용하는 예시도이다.
도 14를 참조하면, 먼저, 참조 화소 계층 ref_k와 ref_i에서는 각각 동일한 참조 화소 계층에 속하는 화소들을 이용하여 필터링이 수행될 수 있다. 즉, 참조 화소 계층 ref_k에서 대상 화소 dk 및 그 인접 화소(ak 내지 gk)에 대한 필터링(함수 smt_func_1D로 정의)을 수행하여 필터링한 화소(dk*)를 획득할 수 있고, 참조 화소 계층 ref_i에서 대상 화소 di 및 그 인접 화소(ai 내지 gi)에 대한 필터링(함수 smt_func_1D로 정의)을 수행하여 필터링한 화소(di*)를 획득할 수 있다.
또한, 참조 화소 계층 ref_j에서 참조 화소 필터링을 수행할 때는 동일한 참조 화소 계층 ref_j뿐만 아니라, 참조 화소 계층 ref_j와 공간적으로 인접한 다른 참조 화소 계층인 ref_i, ref_k에 속하는 화소를 이용할 수 있다. 상세하게는, 대상 화소 dj를 중심으로 공간적으로 인접한 화소들(ck, dk, ek, cj, ej, ci, di, ei. 즉, 3×3 정사각 마스크를 갖는 필터일 수 있음)에 대한 필터링(smt_func_2D 함수로 정의)을 적용하여 보간된 화소(dj*)를 획득할 수 있다. 다만, 3×3 정사각 형태에 한정되는 것은 아니며, 대상 화소를 중심으로 5×2 직사각 형태(bk, ck, dk, ek, fk, bj, cj, ej, fj), 3×3 다이아몬드 형태(dk, cj, ej, di), 5×3 십자가 형태(dk, bj, cj, ej, fj, di) 등의 마스크를 갖는 필터를 사용할 수도 있다.
여기서 참조 화소 계층은 앞선 도 5 내지 도 9b등에서 도시한 것과 같이 현재 블록과 인접한 이웃 블록에 속하고 현재 블록의 경계와 가까운 화소들로 구성된다. 이러한 측면을 고려할 때, 참조 화소 계층 ref_k와 참조 화소 계층 ref_i에서 동일한 참조 화소 계층에 있는 화소들을 이용한 필터링은 보간 대상 화소와 가로 또는 세로로 인접한 화소들을 사용한 1차원 마스크 형태의 필터를 적용할 수 있다. 그러나, 참조 화소 계층 ref_j에서 참조 화소 dj에 대한 보간 화소는 공간적으로 상/하/좌/우 방향으로 인접한 화소들을 모두 이용한 2차원 마스크 형태의 필터를 적용하여 획득될 수 있다.
또한, 각 참조 화소 계층에서 1차 참조 화소 필터링이 적용된 참조 화소를 대상으로 2차 참조 화소 필터링을 적용할 수 있다. 예를 들어, 각 참조 화소 계층(ref_k, ref_j, ref_i)에 포함된 참조 화소를 사용하여 1차 참조 화소 필터링을 수행할 수 있고, 1차 참조 화소 팔터링이 수행된 필터링이 수행된 참조 화소 계층(ref_k*, ref_j*, ref_i*으로 지칭)에서 각자의 참조 화소 계층뿐만 아니라 다른 참조 화소 계층의 참조 화소를 사용하여 참조 화소 필터링을 수행할 수 있다.
예측 블록 생성부에서 적어도 하나의 화면내 예측 모드(또는 간략히 예측 모드로 지칭될 수 있음)에 따라 예측 블록을 생성할 수 있으며, 상기 예측 모드에 기반하여 참조 화소를 사용할 수 있다. 이때, 예측 모드에 따라 참조 화소를 외삽(Extrapolation)하거나, 내삽(Interpolation) 또는 평균(DC 모드) 또는 복사(Copy)하여 예측 블록을 생성할 수 있다. 여기서 외삽은 화면내 예측모드 중에서 방향성 모드에 적용될 수 있고, 나머지는 비방향성 모드에 적용될 수 있다.
한편, 참조 화소를 복사하는 경우 하나의 참조 화소를 예측 블록 내에 복수의 화소에 복사함으로써, 하나 이상의 예측 화소를 생성할 수도 있고, 하나 이상의 참조 화소를 복사하여 하나 이상의 예측 화소를 생성할 수 있으며, 복사한 참조 화소의 개수는 복사된 예측 화소의 개수와 동일하거나 적을 수 있다.
또한, 예측 블록은 하나의 화면내 예측 모드에 따른 예측마다 하나의 예측 블록이 생성되는 것이 일반적일 수 있으나, 복수의 예측 블록을 획득하고, 획득된 복수의 예측 블록에 대해 가중치 합을 적용하는 등의 방식으로 최종 예측 블록을 생성할 수도 있다. 여기서 복수의 예측 블록은 참조 화소 계층에 따라 획득되는 예측 블록을 의미할 수 있다.
부호화 장치의 예측 모드 결정부에서는 복수의 예측 모드 후보군 중 최적의 모드를 선정하기 위한 과정이 수행된다. 일반적으로 블록의 왜곡{예를 들어, 현재 블록과 복원 블록의 Distortion. SAD(Sum of Absolute Difference), SSD(Sum of Square Difference 등}과 예측 모드에 따른 발생 비트량을 예상하는 율-왜곡(Rate-Distortion) 기법을 이용하여 부호화 비용 측면에서 최적인 모드를 결정할 수 있다. 상기 과정을 통해 결정되는 예측 모드에 기반하여 생성되는 예측 블록을 감산부와 가산부로 송신할 수 있다. (이때, 복호화 장치는 최적의 예측 모드를 지시하는 정보를 부호화 장치로부터 획득할 수 있으므로, 최적의 예측 모드를 선정하는 과정은 생략될 수 있다.)
부호화 장치의 예측 모드 부호화부에서는 예측 모드 결정부를 통해 선정된 최적의 화면내 예측 모드를 부호화할 수 있다. 이때, 최적의 예측 모드를 지시하는 인덱스 정보를 그대로 부호화하거나, 최적의 예측 모드를 주변의 다른 블록 등에서 획득 가능한 예측 모드를 통해 예측하고, 예측 모드에 대한 예측 정보(예를 들면 예측된 예측 모드 인덱스와 현재 블록의 예측 모드 인덱스 사이의 차분값)를 부호화할 수도 있다. 여기서 전자의 경우는 색차 성분, 후자의 경우 휘도 성분에 적용될 수 있다.
현재 블록에 대한 최적의 예측 모드를 예측하여 부호화하는 경우에 예측 모드에 대한 예측값(또는 예측 정보)을 MPM(Most Probable Mode)으로 지칭할 수 있다. 이때, MPM은 현재 블록에 대한 최적의 예측 모드가 될 가능성이 높은 예측 모드로서, 미리 설정된 예측 모드(예를 들어, DC, Planar, 수직, 수평, 대각선 모드 등) 또는 공간적으로 인접한 블록(예를 들어, 좌, 상, 좌상, 우상, 좌하 블록 등)의 예측 모드로 구성될 수 있다. 여기서 대각선 모드는 Diagonal up right, Diagonal down right, Diagonal down left를 의미하고, 도 4의 2번, 18번, 34번 모드에 대응되는 모드일 수 있다.
또한, MPM으로 구성될 수 있는 예측 모드의 집합인 MPM 후보군에 포함된 예측 모드에서 유도되는 모드를 MPM 후보군으로 추가할 수 있다. 방향성 모드의 경우, MPM 후보군에 포함되어 있는 예측 모드와의 인덱스 간격이 미리 설정된 값을 갖는 예측 모드를 MPM 후보군에 포함할 수 있다. 예를 들어, 도 4에서 10번 모드가 MPM 후보군에 포함된 모드인 경우 9번, 11번, 8번, 12번 모드 등이 유도되는 모드에 해당될 수 있다.
상기 예는 MPM 후보군이 복수 개의 모드로 구성되는 경우에 해당할 수 있으며, MPM 후보군 구성(예를 들어, MPM 후보군에 포함되는 예측 모드 개수, 구성 우선 순위)은 부/복호화 설정(예를 들어, 예측 모드 후보군, 영상 타입, 블록 크기, 블록 형태 등)에 따라 정해지며 적어도 하나의 모드를 포함하여 구성될 수 있다.
MPM 후보군에 포함될 예측 모드의 우선 순위를 설정할 수 있다. 설정된 우선 순위에 따라 MPM 후보군에 포함될 예측 모드의 순서가 정해질 수 있으며, 미리 설정된 갯수만큼 예측 모드를 채우면 MPM 후보군 구성을 완료할 수 있다. 여기서 우선 순위는, 예측할 현재 블록과 공간적으로 인접한 블록의 예측 모드, 미리 설정된 예측 모드, MPM 후보군에 먼저 포함된 예측 모드로부터 유도되는 모드 순서로 설정될 수 있으며, 이에 한정되지 않는다.
더 상세하게는, 공간적으로 인접한 블록 중에서는 좌 - 상 - 좌하 - 우상 - 좌상 블록의 순서로 우선 순위가 설정될 수 있고, 미리 설정된 예측 모드 중에서는 DC - Planar - 수직 - 수평 모드의 순서로 우선 순위가 설정될 수 있고, MPM 후보군에 포함된 예측 모드에 따른 인덱스값(도 4에 따른 예측 모드 번호가 해당)에서 +1, -1 등(정수값)을 가산하여 획득된 예측 모드를 MPM 후보군에 포함할 수 있다. 그러한 예시 중 하나로서, 좌 - 상 - DC - Planar - 좌하 - 우상 - 좌상 - (공간 인접 블록 모드)+1 - (공간 인접 블록 모드)-1 - 수평 - 수직 - 대각선 등의 순서로 우선 순위를 설정할 수 있다.
상기 예에서 MPM 후보군 구성의 우선 순위가 고정적인 경우를 나타냈지만, 블록의 형태, 크기 등에 따라 상기 우선 순위는 적응적으로 정해질 수 있다.
MPM을 사용하여 현재 블록의 예측 모드 부호화를 수행하는 경우 예측 모드가 MPM과 일치하는지 여부에 대한 정보(예를 들어, most_probable_mode_flag)를 생성할 수 있다.
MPM과 일치하는 경우(예를 들어, most_probable_mode_flag = 1)에는 MPM의 구성에 따라 MPM 인덱스 정보(예를 들어, mpm_idx)를 추가로 생성할 수 있다. 예를 들어, MPM이 하나의 예측 모드로 구성되는 경우에는 추가적인 MPM 인덱스 정보는 생성하지 않으며, 복수의 예측 모드로 구성되는 경우에는 MPM 후보군에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 생성할 수 있다.
MPM과 일치하지 않는 경우(예를 들어, most_probable_mode_flag = 0)에는 지원되는 화면내 예측 모드 중에서 MPM 후보군을 제외한 나머지 예측 모드 후보군(non-MPM 후보군으로 지칭)에서 현재 블록의 예측 모드에 대응하는 non-MPM 인덱스 정보(예를 들어, non_mpm_idx)를 생성할 수 있으며, 이는 non-MPM이 하나의 그룹으로 구성되는 경우에 해당하는 예일 수 있다.
non-MPM 후보군이 복수의 그룹으로 구성되는 경우에 현재 블록의 예측 모드가 어떤 그룹에 속하는지에 대한 정보를 생성할 수 있다. 예를 들어, non-MPM은 A와 B 그룹으로 구성되며 현재 블록의 예측 모드가 A 그룹의 예측 모드와 일치하는 경우(예를 들어, non_mpm_A_flag = 1)에는 A 그룹 후보군에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 생성할 수 있으며, 일치하지 않는 경우(예를 들어, non_mpm_A_flag = 0)에는 나머지 예측 모드 후보군(또는 B 그룹 후보군)에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 생성할 수 있다. 상기 예와 같이 non-MPM은 복수의 그룹으로 구성될 수 있으며, 예측 모드 후보군에 따라 그룹의 갯수가 정해질 수 있다. 예를 들어, 예측 모드 후보군이 35개 이하일 경우에는 1개, 그 이외의 경우에는 2개 이상일 수 있다.
이때, 특정 A 그룹은 MPM 후보군 다음으로 현재 블록의 예측 모드와 일치할 확률이 높다고 판단되는 모드들로 구성될 수 있다. 예를 들어, MPM 후보군에 포함되지 못한 다음 순위의 예측 모드들을 A 그룹에 포함시키거나 일정한 간격을 갖는 방향성 모드들을 A 그룹에 포함시킬 수 있다.
상기 예와 같이 non-MPM이 복수의 그룹으로 구성되는 경우는 예측 모드의 개수가 많고 현재 블록의 예측 모드가 MPM과 일치하지 않을 경우에 모드 부호화 비트량이 감소하는 효과를 가질 수 있다.
MPM을 사용하여 현재 블록의 예측 모드 부호화(또는 예측 모드 복호화)를 수행하는 경우 각 예측 모드 후보군(예를 들어, MPM 후보군, non-MPM 후보군 등)에 적용되는 이진화 테이블은 개별적으로 생성될 수 있으며, 각 후보군에 따라 적용되는 이진화 방법 또한 개별적으로 적용될 수 있다.
상기 예에서 MPM 후보군, non-MPM 후보군 등과 같은 용어는 본 발명에서 사용되는 일부 용어일 뿐 이에 한정되지 않는다. 상세하게는, 현재 화면내 예측 모드를 복수의 카데고리로 분류하여 어떤 카테고리에 속했는지에 대한 정보와 해당 카테고리 내 모드 정보로 표현하는 것으로, 다른 표현으로 1차 MPM 후보군, 2차 MPM 후보군 등의 용어로 사용되는 것 또한 가능할 수 있다.
도 15는 본 발명의 일 실시예에 따른 화면내 예측 모드에 대한 부/복호화 방법을 설명하기 위한 블록도이다.
도 15를 참조하면, 먼저 mpm_flag를 획득하여(S10) 1차 MPM과 일치하는지 여부(mpm_flag에 의해 지시됨)를 확인(S11)한 후, 일치하는 경우에는 MPM 인덱스 정보(mpm_idx)를 확인(S12)할 수 있다. MPM과 일치하지 않는 경우에는 rem_mpm_flag를 획득하여(S13) 2차 MPM과 일치하는지 여부(rem_mpm_flag에 의해 지시됨)를 확인(S14)한 후 일치하는 경우에는 2차 MPM 인덱스 정보(rem_mpm_idx)를 확인(S16)할 수 있다. 2차 MPM과도 일치하지 않는 경우에는 나머지 예측 모드로 구성된 후보군에 대한 인덱스 정보(rem_mode_idx)를 확인(S15)할 수 있다. 본 예에서는 2차 MPM과의 일치 여부에 따라 발생하는 인덱스 정보가 동일 구문 요소로 표현되는 경우로 설명하였지만, 다른 모드 부호화 설정(예를 들어, 이진화 방법 등)이 적용될 수 있고, 또는 상기 인덱스 정보를 다르게 설정하여 처리할 수도 있다.
본 발명의 일 실시예에 따른 영상 복호화 방법에서 화면내 예측은 다음과 같이 구성될 수 있다. 예측부의 화면내 예측은 예측 모드 복호화 단계, 참조 화소 구성 단계, 예측 블록 생성 단계를 포함할 수 있다. 또한, 영상 복호화 장치는 예측 모드 복호화 단계, 참조 화소 구성 단계, 예측 블록 생성 단계를 구현하는 예측 모드 복호화부, 참조 화소 구성부, 예측 블록 생성부를 포함하도록 구성할 수 있다. 전술한 과정의 일부는 생략될 수 있거나 다른 과정이 추가될 수 있고, 상기 기재된 순서가 아닌 다른 순서로 변경될 수 있다.
영상 복호화 장치의 참조 화소 구성부, 예측 블록 생성부는 영상 부호화 장치의 대응되는 구성과 동일한 역할을 수행하므로 상세한 설명은 생략하며, 예측 모드 복호화부는 예측 모드 부호화부에서 사용한 방식을 역으로 사용하여 수행될 수 있다.
이하에서는 복호화 장치의 참조 화소 구성에 따른 화면내 예측에 대한 다양한 실시예 도 16 내지 도 18에서 살펴본다. 이때, 앞에서 도면을 참조하여 설명한 참조 화소 계층의 지원과 참조 화소 필터링 방법에 관한 설명은 복호화 장치에서도 동일하게 적용될 수 있는 것으로 해석되어야 하며, 중복 설명을 방지하기 위해 자세한 설명은 생략하였다.
도 16은 참조 화소 구성에 따른 화면내 예측에 대한 비트스트림 구성을 설명하기 위한 제1 예시도이다.
도 16에 따른 제1 예시도에서는, 복수의 참조 화소 계층이 지원되고, 지원되는 참조 화소 계층 중 적어도 하나의 참조 화소 계층이 참조 화소로 사용되며, 참조 화소 필터링에 관한 복수의 후보군이 지원되고 이 중 하나의 필터가 선택된다고 전제한다.
부호화기에서 복수의 참조 화소 계층을 참조 화소 후보군으로 구성(본 예에서 참조 화소 생성 과정까지 완료된 상태)한 후에, 적어도 하나의 참조 화소 계층을 참조 화소로 구성한 후에 참조 화소 필터링, 참조 화소 보간을 적용한다. 이때, 참조 화소 필터링에 관한 복수의 후보군이 지원된다.
예측 모드 후보군 중 최적의 모드를 선정하기 위한 과정이 수행되며, 최적의 예측 모드가 결정되면 해당 모드에 따른 예측 블록을 생성하여 감산부로 전달하고 화면내 예측 관련 정보에 대한 부호화 과정을 수행한다. 본 예에서는 참조 화소 계층과 참조 화소 필터링은 부호화 정보에 따라 묵시적으로 결정되는 것으로 전제하였다.
복호화기에서는 화면내 예측 관련 정보(예를 들어, 예측 모드 등)를 복원하고, 복원된 예측 모드에 따른 예측 블록을 생성하여 감산부로 전달한다. 이때, 예측 블록 생성을 위한 참조 화소 계층과 참조 화소 필터링은 묵시적으로 결정되는 것으로 전제하였다.
도 16을 참조하면, 화면내 예측 모드(intra_mode) 하나(S20)로 비트스트림을 구성할 수 있다. 이때 현재 블록에서 지원(또는 사용)되는 참조 화소 계층(ref_idx)과 참조 화소 필터링 카테고리(ref_filter_idx)는 화면내 예측 모드에 따라 묵시적으로 결정(각각 CategoryA, B로 결정, S21~S22)될 수 있다. 다만, 이때 부/복호화 정보(예를 들어, 영상 타입, 컬러 성분, 블록의 크기, 형태 등)가 추가적으로 고려될 수 있다.
도 17은 참조 화소 구성에 따른 화면내 예측에 대한 비트스트림 구성을 설명하기 위한 제2 예시도이다.
도 17에 따른 제2 예시도에서는, 복수의 참조 화소 계층이 지원되고, 지원되는 복수의 참조 화소 계층 중에서 하나의 참조 화소 계층이 참조 화소로 사용되는 것으로 전제하였다. 또한, 참조 화소 필터링에 관한 복수의 후보군이 지원되고 이 중 하나의 필터가 선택되는 것으로 전제하였다. 도 16과의 차이점은 선택에 대한 정보를 부호화 장치가 명시적으로 생성한 것에 있다.
부호화기에서 복수의 참조 화소 계층을 지원하는 것으로 결정하면, 하나의 참조 화소 계층을 참조 화소로 구성한 후에 참조 화소 필터링, 참조 화소 보간을 적용한다. 이때, 참조 화소 필터링에 관한 복수의 필터링 방법이 지원된다.
부호화기에서 현재 블록에 대한 최적의 예측 모드를 결정하는 과정이 수행될 때, 각 예측 모드에 최적의 참조 화소 계층을 선정하는 것과 최적의 참조 화소 필터링을 선정하는 것이 추가로 고려될 수 있다. 현재 블록에 대한 최적의 예측 모드 및 참조 화소 계층과 참조 화소 필터링이 결정되면 그에 따라 생성된 예측 블록을 감산부로 전달하고 화면내 예측 관련 정보에 대한 부호화 과정을 수행한다.
복호화기에서는 화면내 예측 관련 정보(예를 들어, 예측 모드와 참조 화소 계층, 참조 화소 필터링 정보 등)를 복원하고, 복원된 정보를 이용해 예측 블록을 생성하여 감산부로 전달한다. 이때, 예측 블록 생성을 위한 참조 화소 계층과 참조 화소 필터링은 부호화기에서 전송된 정보에 따라 결정되는 설정에 따른다.
도 17을 참조하면, 복호화기는 비트스트림에 포함된 화면내 예측 모드 정보(intra_mode)를 통해 현재 블록에 대한 최적의 예측 모드를 확인(S30)하고, 복수의 참조 화소 계층이 지원되는지 여부(multi_ref_flag)를 확인(S31)할 수 있다. 복수의 참조 화소 계층이 지원되면, 참조 화소 계층 선택 정보(ref_idx)를 확인(S32)하여 화면내 예측에 사용되는 참조 화소 계층을 결정할 수 있다. 복수의 참조 화소 계층이 지원되지 않는다면, 참조 화소 계층 선택 정보(ref_idx)를 획득하는 과정(S32)은 생략될 수 있다.
다음으로, 적응적인 참조 화소 필터링이 지원되는지 여부(adap_ref_smooth_flag)를 확인(S33)하고, 적응적인 참조 화소 필터링이 지원되면 참조 화소 필터 정보(ref_filter_idx)를 통해 참조 화소에 대한 필터링 방법을 결정(S34)할 수 있다.
도 18은 참조 화소 구성에 따른 화면내 예측에 대한 비트스트림 구성을 설명하기 위한 제3 예시도이다.
도 18에 따른 제3 예시도에서, 복수의 참조 화소 계층이 지원되고, 복수의 참조 화소 계층 중에서 하나의 참조 화소 계층이 사용되는 경우를 전제한다. 그리고 참조 화소 필터링에 관한 복수의 후보군이 지원되고 이 중 하나의 필터가 선택된다고 전제한다. 도 17와 다른 점은 선택 정보가 적응적으로 생성된다는 것에 있다.
부호화기에서 지원되는 복수의 참조 화소 계층 중에서 하나의 참조 화소 계층을 이용하여 참조 화소로 구성한 후에 참조 화소 필터링, 참조 화소 보간을 적용한다. 이때, 참조 화소 필터링에 관한 복수의 필터링이 지원된다.
복수의 예측 모드 후보군 중 최적의 모드를 선정하기 위한 과정이 수행될 때 각 예측 모드에 최적의 참조 화소 계층을 선정하는 것과 최적의 참조 화소 필터링을 선정하는 것이 추가로 고려될 수 있다. 최적의 예측 모드 및 참조 화소 계층과 참조 화소 필터링이 결정되면 그에 따른 예측 블록을 생성하여 감산부로 전달하고 화면내 예측 관련 정보에 대한 부호화 과정을 수행한다.
이때, 생성되는 예측 블록의 중복성을 확인하고, 다른 참조 화소 계층을 사용하여 획득되는 예측 블록과 동일 또는 유사하다면, 최적의 참조 화소 계층에 대한 선정 정보는 생략하고 미리 설정된 참조 화소 계층을 사용할 수 있다. 이때, 미리 설정된 참조 화소 계층은 현재 블록과 가장 인접한 계층일 수 있다.
예를 들어, 도 6c의 ref_0를 통해 생성된 예측 블록과 ref_1을 통해 생성된 예측 블록의 차이값(왜곡값)에 기반하여 중복성 여부를 판단할 수 있다. 상기 차이값이 미리 설정한 임계값보다 작은 경우에는 예측 블록의 중복성이 있는 것으로 판단하고, 그렇지 않은 경우에는 예측 블록의 중복성이 없는 것으로 판단할 수 있다. 이때, 상기 임계값은 양자화 파라미터 등에 따라 적응적으로 정해질 수 있다.
또한, 최적의 참조 화소 필터링 정보도 예측 블록의 중복성을 확인하고, 다른 참조 화소 필터링을 적용하여 획득되는 예측 블록과 동일 또는 유사하다면, 참조 화소 필터링 정보는 생략하고 미리 설정된 참조 화소 필터링이 적용될 수 있다.
예를 들어, 필터링 A(본 예에서 3-tap 필터)를 통해 획득된 예측 블록과 필터링 B(본 예에서 5-tap 필터)를 통해 획득된 예측 블록의 차이값에 기반하여 중복성 여부를 판단한다. 이때도 차이값이 미리 설정된 임계값과 비교하여 작은 경우 예측 블록의 중복성이 있는 것으로 판단될 수 있다. 만약 예측 블록의 중복성이 있다면, 미리 설정된 참조 화소 필터링 방법을 통해 예측 블록을 생성할 수 있다. 여기서 미리 설정된 참조 화소 필터링은 탭수가 낮거나 복잡도가 낮은 필터링 방법일 수 있으며, 필터링 적용을 생략하는 경우가 포함될 수 있다.
복호화기에서는 화면내 예측 관련 정보(예를 들어, 예측 모드와 참조 화소 계층 정보, 참조 화소 필터링 정보 등)를 복원하여, 그에 따른 예측 블록을 생성하여 감산부로 전달한다. 이때, 예측 블록 생성을 위한 참조 화소 계층 정보와 참조 화소 필터링은 부호화기에서 전송된 정보에 따라 결정되는 설정에 따르되, 복호화기는 중복성 여부를 직접 확인(구문 요소를 통하지 않고)하고, 중복성이 있다면 미리 설정된 방법에 따른다.
도 18을 참조하면, 복호화기는 먼저 현재 블록에 대한 화면내 예측 모드(intra_mode) 정보를 확인(S40)하고, 복수의 참조 화소 계층이 지원되는지 여부(multi_ref_flag)를 확인(S41)할 수 있다. 복수의 참조 화소 계층이 지원되면, 지원되는 복수의 참조 화소 계층에 따른 예측 블록의 중복성을 검사(ref_check 과정으로 표시, S42)하고, 중복성 확인 결과 예측 블록의 중복성이 없다면(redund_ref=0, S43), 비트 스트림으로부터 참조 화소 계층에 대한 선택 정보(ref_idx)를 참조(S44)하여 최적의 참조 화소 계층을 결정할 수 있다.
다음으로, 적응적인 참조 화소 필터링이 지원되는지 여부(adap_ref_smooth_flag)를 확인(S45)하고, 적응적인 참조 화소 필터링이 지원된다면, 지원되는 복수의 참조 화소 필터링 방법에 따른 예측 블록의 중복성을 검사(ref_check 과정으로 표시, S46)할 수 있다. 예측 블록의 중복성이 없다면(redund_ref=0, S47), 비트스트림으로부터 참조 화소 필터링 방법에 대한 선택 정보(ref_filter_idx)를 참조(S48)하여 최적의 참조 화소 필터링 방법을 결정할 수 있다.
이때, 도면에서 redund_ref는 중복성 확인에 대한 결과를 지시하는 값으로 0이면 중복성이 없는 것을 의미한다.
또한, 복호화기는 예측 블록의 중복성이 있는 경우에는 미리 설정되는 참조 화소 계층과 미리 설정된 참조 화소 필터링 방법을 사용하여 화면내 예측을 수행할 수 있다.
도 19는 본 발명의 일 실시예에 따른 복수의 참조 화소 계층을 지원하는 영상 복호화 방법에 대한 흐름도이다.
도 19를 참조하면, 복수의 참조 화소 계층을 지원하는 영상 복호화 방법은, 비트스트림에서 복수의 참조 화소 계층을 지원하는지 여부를 확인하는 단계(S100), 복수의 참조 화소 계층이 지원되면, 상기 비트스트림에 포함된 구문 정보를 참조하여 현재 블록에 사용할 참조 화소 계층을 결정하는 단계(S110), 결정된 참조 화소 계층에 속하는 화소를 이용하여 참조 화소를 구성하는 단계(S120) 및 구성된 참조 화소를 이용하여 상기 현재 블록에 대한 화면내 예측을 수행하는 단계(S130)를 포함할 수 있다.
여기서 상기 복수의 참조 화소 계층을 지원하는지 여부를 확인하는 단계(S100) 이후에, 비트스트림에서 적응적인 참조 화소 필터링 방법을 지원하는지 여부를 확인하는 단계를 더 포함할 수 있다.
여기서 상기 복수의 참조 화소 계층을 지원하는지 여부를 확인하는 단계(S100) 이후에, 복수의 참조 화소 계층이 지원되지 않으면, 미리 설정된 참조 화소 계층을 사용하여 참조 화소를 구성하는 단계를 포함할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (3)

  1. 복수의 참조 화소 계층을 지원하는 영상 복호화 방법으로,
    비트스트림에서 복수의 참조 화소 계층을 지원하는지 여부를 확인하는 단계;
    복수의 참조 화소 계층이 지원되면, 상기 비트스트림에 포함된 구문 정보를 참조하여 현재 블록에 사용할 참조 화소 계층을 결정하는 단계;
    결정된 참조 화소 계층에 속하는 화소를 이용하여 참조 화소를 구성하는 단계; 및
    구성된 참조 화소를 이용하여 상기 현재 블록에 대한 화면내 예측을 수행하는 단계를 포함하는, 영상 복호화 방법.
  2. 청구항 1에서,
    상기 복수의 참조 화소 계층을 지원하는지 여부를 확인하는 단계 이후에,
    비트스트림에서 적응적인 참조 화소 필터링 방법을 지원하는지 여부를 확인하는 단계를 더 포함하는, 영상 복호화 방법.
  3. 청구항 1에서,
    상기 복수의 참조 화소 계층을 지원하는지 여부를 확인하는 단계 이후에,
    복수의 참조 화소 계층이 지원되지 않으면, 미리 설정된 참조 화소 계층을 사용하여 참조 화소를 구성하는 단계를 포함하는, 영상 복호화 방법.
KR1020180076932A 2017-07-03 2018-07-03 복수의 참조 화소 계층을 지원하는 영상 복호화 방법 및 장치 KR20190008809A (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
PCT/KR2018/007520 WO2019009590A1 (ko) 2017-07-03 2018-07-03 추가 영역을 포함하는 분할 단위를 이용한 영상 복호화 방법 및 장치
CA3105474A CA3105474A1 (en) 2017-07-03 2018-07-03 Method and device for decoding image by using partition unit including additional region
US16/627,905 US10986351B2 (en) 2017-07-03 2018-07-03 Method and device for decoding image by using partition unit including additional region
SG11202100010SA SG11202100010SA (en) 2017-07-03 2018-07-03 Method and device for decoding image by using partition unit including additional region
US17/184,685 US11509914B2 (en) 2017-07-03 2021-02-25 Method and device for decoding image by using partition unit including additional region
US17/964,281 US20230051471A1 (en) 2017-07-03 2022-10-12 Method and device for decoding image by using partition unit including additional region

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20170090638 2017-07-17
KR1020170090638 2017-07-17
KR20180055980 2018-05-16
KR1020180055980 2018-05-16

Publications (1)

Publication Number Publication Date
KR20190008809A true KR20190008809A (ko) 2019-01-25

Family

ID=65280597

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180076932A KR20190008809A (ko) 2017-07-03 2018-07-03 복수의 참조 화소 계층을 지원하는 영상 복호화 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20190008809A (ko)

Similar Documents

Publication Publication Date Title
US11368675B2 (en) Method and device for encoding and decoding intra-frame prediction
US9549198B2 (en) Apparatus for decoding a moving picture
US9609352B2 (en) Apparatus for encoding a moving picture
CN112369034B (zh) 使用合并候选的视频编码方法和装置
KR20190123288A (ko) 적응적인 화소 분류 기준에 따른 인루프 필터링 방법
CN117692639A (zh) 图像编码/解码方法、介质和传送比特流的方法
KR20130091800A (ko) 인트라 예측 복호화 방법
KR102514392B1 (ko) 움직임 벡터 차분치를 이용하는 영상 부호화 및 복호화 방법과 영상 복호화 장치
US9473789B2 (en) Apparatus for decoding a moving picture
KR102476541B1 (ko) 화면내 예측에서의 참조 화소 구성에 관한 부호화/복호화 방법 및 장치
US11509895B2 (en) Image encoding/decoding method using pixel value range constituting image
KR20170110556A (ko) 움직임 벡터 차분치를 이용하는 영상 부호화 및 복호화 방법과 영상 복호화 장치
JP2024063178A (ja) 画像符号化/復号化方法及び装置
KR102476230B1 (ko) 움직임 벡터 정밀성을 이용하는 영상 부호화 및 복호화 방법과 영상 복호화 장치
US20210289202A1 (en) Intra prediction method and apparatus for performing adaptive filtering on reference pixel
KR20190087329A (ko) 복수의 예측 모드 후보군을 사용하여 화면내 예측을 수행하는 영상 부호화/복호화 방법 및 장치
KR20190008809A (ko) 복수의 참조 화소 계층을 지원하는 영상 복호화 방법 및 장치
KR20180080114A (ko) 예측 블록의 중복성을 고려한 화면 내 예측 방법 및 화면 내 예측을 수행하는 영상 복호화 장치
US20230254483A1 (en) Intra prediction method and apparatus for performing adaptive filtering on reference pixel

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal