KR20210111323A - 색차 성분에 관한 화면내 예측 부호화/복호화 방법 및 장치 - Google Patents

색차 성분에 관한 화면내 예측 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
KR20210111323A
KR20210111323A KR1020217027252A KR20217027252A KR20210111323A KR 20210111323 A KR20210111323 A KR 20210111323A KR 1020217027252 A KR1020217027252 A KR 1020217027252A KR 20217027252 A KR20217027252 A KR 20217027252A KR 20210111323 A KR20210111323 A KR 20210111323A
Authority
KR
South Korea
Prior art keywords
block
prediction
pixel
mode
case
Prior art date
Application number
KR1020217027252A
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 KR1020237026449A priority Critical patent/KR20230117490A/ko
Publication of KR20210111323A publication Critical patent/KR20210111323A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/117Filters, e.g. for pre-processing or post-processing
    • 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/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/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component

Abstract

색차 성분의 화면내 예측을 위해 컬러 성분 간의 상관성을 활용하는 영상 복호화 방법이 개시된다. 여기서 색차 성분의 화면내 예측을 위해 컬러 성분 간의 상관성을 활용하는 영상 복호화 방법은, 비트스트림에서 영상 데이터와 예측 모드를 확인하는 단계, 복원된 예측 모드에 따라 예측 블록을 생성하는 단계, 현재 블록의 크기와 복원된 예측 모드에 따른 보정 설정을 결정하는 단계, 결정된 보정 설정에 따라 예측 블록을 보정하는 단계 및 복원된 영상 데이터와 예측 블록을 가산하여 현재 블록을 복원하는 단계를 포함한다.

Description

색차 성분에 관한 화면내 예측 부호화/복호화 방법 및 장치{INTRA PREDICTION ENCODING/DECODING METHOD AND APPARATUS FOR CHROMA COMPONENT}
본 발명은 색차 성분에 관한 영상 부호화/복호화 방법 및 장치에 관한 것으로, 더욱 상세하게는 컬러 성분 간의 상관성 정보에 기반하여 예측 블록을 생성하고, 생성된 예측 블록에 보정을 적용함으로써 블록 간의 열화를 줄이는 방법 및 장치에 관한 것이다.
인터넷과 휴대 단말의 보급과 정보 통신 기술의 발전에 따라 멀티미디어 데이터에 대한 이용이 급증하고 있다. 따라서, 각종 시스템에서 영상 예측을 통해 다양한 서비스나 작업을 수행하기 위하여 영상 처리 시스템의 성능 및 효율 개선에 대한 필요성이 상당히 증가하고 있으나, 이러한 분위기에 호응할 수 있는 연구 개발 결과가 미흡한 실정이다.
이와 같이, 종래 기술의 영상 부호화 복호화 방법 및 장치에서는 영상 처리 특히 영상 부호화 또는 영상 복호화에 대한 성능 개선이 요구되고 있는 실정이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 컬러 성분 간의 상관성을 활용하여 화면내 예측을 수행하는 영상 부호화/복호화 방법 및 장치를 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 영상을 복호화하는 방법은 비트스트림에서 영상 데이터와 예측 모드를 확인하는 단계, 복원된 예측 모드에 따라 예측 블록을 생성하는 단계, 현재 블록의 크기와 복원된 예측 모드에 따른 보정 설정을 결정하는 단계, 결정된 보정 설정에 따라 예측 블록을 보정하는 단계 및 복원된 영상 데이터와 예측 블록을 가산하여 현재 블록을 복원하는 단계를 포함할 수 있다.
여기서, 보정 설정을 결정하는 단계는, 현재 블록의 크기와 예측 모드의 종류에 따라 보정 수행 여부를 결정하는 단계를 더 포함할 수 있다.
여기서, 보정 설정을 결정하는 단계, 현재 블록의 크기와 예측 모드의 종류에 따라 보정 대상 영역을 결정하는 단계를 더 포함할 수 있다.
상기와 같은 본 발명에 따른 컬러 성분 간의 상관성을 활용하여 화면내 예측을 수행하는 방법을 이용하는 경우 예측의 정확도가 높아 부호화 성능을 향상시킬 수 있다.
또한, 예측 블록의 경계 영역에 보정을 수행하기 때문에 블록 열화를 감소시킬 수 있는 장점이 있다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록 구성도이다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 블록 구성도이다.
도 4는 본 발명의 일 실시예에 따른 화면내 예측 모드를 나타낸 예시도이다.
도 5는 본 발명의 일 실시예에 따른 방향성 모드와 비방향성 모드에 관한 화면내 예측을 나타내는 개념도이다.
도 6은 본 발명의 일 실시예에 따른 컬러 복사 모드에 관한 화면내 예측을 나타내는 개념도이다.
도 7은 본 발명의 일 실시예에 따른 컬러 복사 모드와 관련하여 각 컬러 공간의 대응되는 블록과 그에 인접한 영역을 나타내는 예시도이다.
도 8은 본 발명의 일 실시예에 따른 화면내 예측에 사용되는 참조 화소 구성을 설명하기 위한 예시도이다.
도 9는 본 발명의 일 실시예에 따른 화면내 예측의 대상 블록과 인접한 블록을 나타내는 개념도이다.
도 10은 본 발명의 일 실시예에 따른 영상 부호화 방법의 구현 예를 설명하기 위한 순서도이다.
도 11은 본 발명의 일 실시예에 따른 영상 복호화 방법의 구현 예를 설명하기 위한 순서도이다.
도 12는 본 발명의 일 실시예에 따른 컬러 복사 모드의 세부 설정에 관한 예시도이다.
도 13은 본 발명의 일 실시예에 따른 현재 블록 내 보정 대상 화소의 다양한 구성 예를 나타내기 위한 개념도이다.
도 14는 본 발명의 일 실시예에 따른 컬러 복사 모드에서 보정이 수행되는 경우를 설명하기 위한 예시도이다.
도 15는 본 발명의 일 실시예에 따른 컬러 복사 모드에서 보정이 수행되는 경우를 설명하기 위한 예시도이다.
발명의 실시를 위한 최선의 형태
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 영상을 복호화하는 방법은 비트스트림에서 영상 데이터와 예측 모드를 확인하는 단계, 복원된 예측 모드에 따라 예측 블록을 생성하는 단계, 현재 블록의 크기와 복원된 예측 모드에 따른 보정 설정을 결정하는 단계, 결정된 보정 설정에 따라 예측 블록을 보정하는 단계 및 복원된 영상 데이터와 예측 블록을 가산하여 현재 블록을 복원하는 단계를 포함할 수 있다.
여기서, 보정 설정을 결정하는 단계는, 현재 블록의 크기와 예측 모드의 종류에 따라 보정 수행 여부를 결정하는 단계를 더 포함할 수 있다.
여기서, 보정 설정을 결정하는 단계, 현재 블록의 크기와 예측 모드의 종류에 따라 보정 대상 영역을 결정하는 단계를 더 포함할 수 있다.
발명의 실시를 위한 형태
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 발명에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 발명에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 것을 의미한다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
통상적으로 영상의 컬러 포맷(Color Format)에 따라 하나 이상의 컬러 공간으로 구성될 수 있다. 컬러 포맷에 따라 일정 크기를 갖는 1개 이상의 픽쳐 또는 다른 크기를 갖는 1개 이상의 픽쳐로 구성될 수 있다. 일 예로, YCbCr 컬러 구성에서 4:4:4, 4:2:2, 4:2:0, Monochrome(Y로만 구성) 등의 컬러 포맷이 지원될 수 있다. 일 예로, YCbCr 4:2:0인 경우 1개의 휘도 성분(본 예에서, Y)과 2개의 색차 성분(본 예에서, Cb/Cr)으로 구성될 수 있으며, 이때 색차 성분과 휘도 성분의 구성 비는 가로, 세로 1:2를 가질 수 있다. 일 예로, 4:4:4인 경우 가로, 세로 동일한 구성 비를 가질 수 있다. 상기 예처럼 하나 이상의 컬러 공간으로 구성이 되는 경우 픽쳐는 각 컬러 공간으로의 분할을 수행할 수 있다.
영상은 영상 타입(예를 들어, 픽쳐 타입, 슬라이스 타입, 타일 타입 등)에 따라 I, P, B 등으로 분류할 수 있는데, I 영상 타입은 참조 픽쳐를 사용하지 않고 자체적으로 부/복호화되는 영상을 의미할 수 있고, P 영상 타입은 참조 픽쳐를 사용하여 부/복호화를 하되 전방향 예측만을 허용하는 영상을 의미할 수 있으며, B 영상 타입은 참조 픽쳐를 사용하여 부/복호화를 하며 전/후방향 예측을 허용하는 영상을 의미할 수 있으나, 부/복호화 설정에 따라 상기 타입의 일부가 결합(P와 B를 결합)되거나 다른 구성의 영상 타입이 지원될 수도 있다.
도 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는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록 구성도이다.
도 2를 참조하면, 영상 부호화 장치(20)는 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 부호화 픽쳐 버퍼(240) 및 엔트로피 부호화부(245)를 포함할 수 있다.
예측부(200)는 소프트웨어 모듈인 예측 모듈(prediction module)을 이용하여 구현될 수 있고, 부호화할 블록에 대하여 화면내 예측 방식(Intra Prediction)이나 화면간 예측 방식(Inter Prediction)으로 예측 블록을 생성할 수 있다. 예측부(200)는 영상에서 현재 부호화하고자 하는 현재 블록을 예측하여 예측 블록을 생성할 수 있다. 다시 말해, 예측부(200)는 영상에서 부호화하고자 하는 현재 블록의 각 화소의 화소값(pixel value)을 화면내 예측 또는 화면간 예측에 따라 예측하여 생성된 각 화소의 예측 화소값(prediced pixel value)를 갖는 예측 블록을 생성할 수 있다. 또한, 예측부(200)는 화면내 예측 모드 또는 화면간 예측 모드와 같은 예측 모드에 대한 정보와 같은 예측 블록을 생성하는데 필요한 정보를 부호화부로 전달하여 부호화부로 하여금 예측 모드에 대한 정보를 부호화하도록 할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 부/복호화 설정에 따라 정해질 수 있다. 예를 들어, 예측 방법, 예측 모드 등은 예측 단위로 결정되고, 예측의 수행은 변환 단위로 수행될 수 있다.
화면간 예측부에서 움직임 예측 방법에 따라 이동 움직임 모델과 이동외 움직임 모델로 구분할 수 있다. 이동 움직임 모델의 경우 평행 이동만을 고려하여 예측을 수행하고, 이동외 움직임 모델의 경우 평행 이동뿐만 아니라 회전, 원근, 줌 인/아웃(Zoom in/out) 등과 같은 움직임을 고려하여 예측을 수행할 수 있다. 단방향 예측을 가정할 때 이동 움직임 모델의 경우 하나의 움직임 벡터가 필요할 수 있지만, 이동외 움직임 모델의 경우 하나 이상의 움직임 벡터가 필요할 수 있다. 이동외 움직임 모델의 경우 각 움직임 벡터는 현재 블록의 좌상측 꼭지점, 우상측 꼭지점 등과 같이 현재 블록의 기 설정된 위치에 적용되는 정보일 수 있고, 해당 움직임 벡터를 통해 현재 블록의 예측하고자 하는 영역의 위치를 화소 단위 또는 서브 블록 단위로 획득할 수 있다. 화면간 예측부는 상기 움직임 모델에 따라 후술하는 일부 과정은 공통으로 적용될 수 있고 일부 과정은 개별적으로 적용될 수 있다.
화면간 예측부는 참조 픽쳐 구성부, 움직임 추정부, 움직임 보상부, 움직임 정보 결정부, 움직임 정보 부호화부를 포함할 수 있다. 참조 픽쳐 구성부는 현재 픽쳐를 중심으로 이전 또는 이후에 부호화된 픽쳐를 참조 픽쳐 리스트(L0, L1)에 포함할 수 있다. 상기 참조 픽쳐 리스트에 포함된 참조 픽쳐로부터 예측 블록을 획득할 수 있으며, 부호화 설정에 따라 현재 영상 또한 참조 픽쳐로 구성되어 참조 픽쳐 리스트 중 적어도 한 곳에 포함될 수 있다.
화면간 예측부에서 참조 픽쳐 구성부는 참조 픽쳐 보간부를 포함할 수 있으며, 보간 정밀도에 따라 소수 단위 화소를 위한 보간 과정을 수행할 수 있다. 예를 들어, 휘도 성분의 경우 8-tap DCT 기반의 보간 필터를 적용하고, 색차 성분의 경우 4-tap DCT 기반의 보간 필터를 적용할 수 있다.
화면간 예측부에서 움직임 추정부는 현재 블록과 상관성이 높은 블록을 참조 픽쳐를 통해 탐색하는 과정이며 FBMA(Full search-based block matching algorithm), TSS(Three step search) 등의 다양한 방법이 사용될 수 있고, 움직임 보상부는 움직임 추정 과정을 통해 예측 블록을 획득하는 과정을 의미한다.
화면간 예측부에서 움직임 정보 결정부는 현재 블록의 최적의 움직임 정보를 선정하기 위한 과정이 수행될 수 있으며, 움직임 정보는 스킵 모드(Skip Mode), 병합 모드(Merge Mode), 경쟁 모드(Competition Mode) 등의 움직임 정보 부호화 모드에 의해 부호화될 수 있다. 상기 모드는 움직임 모델에 따라 지원되는 모드가 결합되어 구성될 수 있으며, 스킵 모드(이동), 스킵 모드(이동외), 병합 모드(이동), 병합 모드(이동외), 경쟁 모드(이동), 경쟁 모드(이동외)가 그에 대한 예가 될 수 있다. 부호화 설정에 따라 상기 모드 중 일부가 후보군에 포함될 수 있다.
상기 움직임 정보 부호화 모드는 적어도 하나의 후보 블록에서 현재 블록의 움직임 정보(움직임 벡터, 참조 픽쳐, 예측 방향 등)의 예측값을 획득할 수 있으며, 둘 이상의 후보 블록이 지원되는 경우에는 최적의 후보 선택 정보가 발생할 수 있다. 스킵 모드(잔차 신호 없음)와 병합 모드(잔차 신호 존재)는 상기 예측값을 그대로 현재 블록의 움직임 정보로 사용할 수 있고, 경쟁 모드는 현재 블록의 움직임 정보와 상기 예측값과의 차분치 정보가 발생할 수 있다.
현재 블록의 움직임 정보 예측값을 위한 후보군은 움직임 정보 부호화 모드에 따라 적응적이고 다양한 구성을 가질 수 있다. 현재 블록에 공간적으로 인접한 블록(예를 들어, 좌, 상, 좌상, 우상, 좌하 블록 등)의 움직임 정보가 후보군에 포함될 수 있고, 시간적으로 인접한 블록의 움직임 정보가 후보군에 포함될 수 있으며, 공간적 후보와 시간적 후보의 혼합 움직임 정보등이 후보군에 포함될 수 있다.
상기 시간적으로 인접한 블록은 현재 블록과 대응(또는 상응)하는 다른 영상 내 블록을 포함하고, 해당 블록을 중심으로 좌, 우, 상, 하, 좌상, 우상, 좌하, 우하 블록 등에 위치한 블록을 의미할 수 있다. 상기 혼합 움직임 정보는 공간적으로 인접한 블록의 움직임 정보와 시간적으로 인접한 블록의 움직임 정보를 통해 평균, 중앙값 등으로 획득되는 정보를 의미할 수 있다.
움직임 정보 예측값 후보군 구성을 위한 우선 순위가 존재할 수 있다. 상기 우선 순위에 따라 예측값 후보군 구성에 포함되는 순서가 정해질 수 있으며, 상기 우선 순위에 따라 후보군의 개수(움직임 정보 부호화 모드에 따라 정해짐)만큼 채워지면 후보군 구성을 완료할 수 있다. 이때, 공간적으로 인접한 블록의 움직임 정보, 시간적으로 인접한 블록의 움직임 정보, 공간적 후보와 시간적 후보의 혼합 움직임 정보 순서로 우선 순위가 정해질 수 있으나, 그 외의 변형 또한 가능하다.
예를 들어, 공간적으로 인접한 블록 중에서는 좌 - 상 - 우상 - 좌하 - 좌상 블록 등의 순서로 후보군에 포함할 수 있고, 시간적으로 인접한 블록 중에서는 우하 - 중 - 우 - 하 블록 등의 순서로 후보군에 포함할 수 있다.
감산부(205)는 현재 블록에서 예측 블록을 감산하여 잔차 블록(residual block)을 생성할 수 있다. 다시 말해, 감산부(205)는 부호화하고자 하는 현재 블록의 각 화소의 화소값과 예측부를 통해 생성된 예측 블록의 각 화소의 예측 화소값의 차이를 계산하여 블록 형태의 잔차 신호(residual signal)인 잔차 블록을 생성할 수 있다. 또한, 감산부(205)는 후술하는 블록 분할부를 통해 획득된 블록 단위 이외의 단위에 따라 잔차 블록을 생성할 수도 있다.
변환부(210)는 공간 영역에 속하는 신호를 주파수 영역에 속하는 신호로 변환할 수 있으며, 변환 과정을 거쳐 획득되는 신호를 변환 계수(Transformed Coeffcient)라고 한다. 예를 들어, 감산부로부터 전달받은 잔차 신호를 갖는 잔차 블록을 변환하여 변환 계수를 갖는 변환 블록을 획득할 수 있는데, 입력 받은 신호는 부호화 설정에 따라 결정되며 이는 잔차 신호에 한정되지 않는다.
변환부는 잔차 블록을 하다마드 변환(Hadamard Transform), 이산 사인 변환(DST Based-Transform: Discrete Sine Transform), 이산 코사인 변환(DCT Based-Transform: Discrete Cosine Transform) 등과 같은 변환 기법을 사용하여 변환할 수 있으며, 이에 한정되지 않고 이를 개량 및 변형한 다양한 변환 기법이 사용될 수 있다.
상기 변환 기법 중 적어도 하나의 변환 기법이 지원될 수 있으며, 각 변환 기법에서 적어도 하나의 세부 변환 기법이 지원될 수 있다. 이때, 상기 세부 변한 기법은 각 변환 기법에서 기저 벡터의 일부가 달리 구성되는 변환 기법일 수 있다.
예를 들어, DCT의 경우 DCT-I 내지 DCT-VIII 중 하나 이상의 세부 변환 기법이 지원될 수 있고, DST의 경우 DST-I 내지 DST-VIII 중 하나 이상의 세부 변환 기법이 지원될 수 있다. 상기 세부 변환 기법의 일부를 구성하여 변환 기법 후보군을 구성할 수 있다. 일 예로, DCT-II, DCT-VIII, DST-VII를 변환 기법 후보군으로 구성하여 변환을 수행할 수 있다.
변환은 수평/수직 방향으로 수행될 수 있다. 예를 들어, DCT-II의 변환 기법을 사용하여 수평 방향으로 1차원 변환을 수행하고, DST-VIII의 변환 기법을 사용하여 수직 방향으로 1차원 변환을 수행하여 총 2차원 변환을 수행함으로써 공간 영역의 화소값을 주파수 영역으로 변환할 수 있다.
고정적인 하나의 변환 기법을 사용하여 변환을 수행할 수 있거나 부/복호화 설정에 따라 변환 기법을 적응적으로 선택하여 변환을 수행할 수 있다. 이때, 적응적인 경우에는 명시적 또는 묵시적인 방법을 사용하여 변환 기법을 선택할 수 있다. 명시적인 경우에는 수평, 수직 방향에 적용되는 각각의 변환 기법 선택 정보 또는 변환 기법 세트 선택 정보가 블록 등의 단위에서 발생할 수 있다. 묵시적인 경우는 영상 타입(I/P/B), 컬러 성분, 블록의 크기, 형태, 화면내 예측 모드 등에 따라 부호화 설정이 정의될 수 있으며, 이에 따라 기 정의된 변환 기법이 선택될 수 있다.
또한, 부호화 설정에 따라 상기 일부 변환이 생략되는 경우가 가능할 수 있다. 즉, 명시적 또는 묵시적으로 수평/수직 단위 중 하나 이상을 생략할 수 있음을 의미한다.
또한, 변환부는 변환 블록을 생성하는데 필요한 정보를 부호화부로 전달하여 이를 부호화하도록 할 수 있고, 그에 따른 정보를 비트스트림에 수록하여 이를 복호화기에 전송하고, 복호화기의 복호화부는 이에 대한 정보를 파싱하여 역변환 과정에 사용할 수 있다.
양자화부(215)는 입력 받은 신호를 양자화할 수 있으며, 이때 양자화 과정을 거쳐 획득되는 신호를 양자화 계수(Quantized Coefficient)라고 한다. 예를 들어, 변환부로부터 전달받은 잔차 변환 계수를 갖는 잔차 블록을 양자화하여 양자화 계수를 갖는 양자화 블록을 획득할 수 있는데, 입력 받은 신호는 부호화 설정에 따라 결정되며 이는 잔차 변환 계수에 한정되지 않는다.
양자화부는 변환된 잔차 블록을 데드존 균일 경계 양자화(Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization Weighted Matrix) 등과 같은 양자화 기법을 사용하여 양자화할 수 있으며, 이에 한정되지 않고 이를 개량 및 변형한 다양한 양자화 기법이 사용될 수 있다.
부호화 설정에 따라 양자화 과정은 생략할 수 있다. 예를 들어, 부호화 설정(예를 들어, 양자화 파라미터가 0. 즉, 무손실 압축 환경)에 따라 양자화 과정을 생략(역과정도 포함)할 수 있다. 다른 예로, 영상의 특성에 따라 양자화를 통한 압축 성능이 발휘되지 않는 경우에는 양자화 과정을 생략할 수 있다. 이때, 양자화 블록(M x N) 중 양자화 과정이 생략되는 영역은 전체 영역이거나 또는 일부 영역(M/2 x N/2, M x N/2, M/2 x N 등)일 수 있으며, 양자화 생략 선택 정보는 묵시적 또는 명시적으로 정해질 수 있다.
양자화부는 양자화 블록을 생성하는데 필요한 정보를 부호화부로 전달하여 이를 부호화하도록 할 수 있고, 그에 따른 정보를 비트스트림에 수록하여 이를 복호화기에 전송하고, 복호화기의 복호화부는 이에 대한 정보를 파싱하여 이를 역양자화 과정에 사용할 수 있다.
상기 예에서는 변환부와 양자화부를 통해 잔차 블록을 변환하고 양자화하는 가정 하에 설명하였지만, 잔차 블록을 잔차 신호를 변환하여 변환 계수를 갖는 잔차 블록을 생성하고 양자화 과정을 수행하지 않을 수 있으며, 잔차 블록의 잔차 신호를 변환 계수로 변환하지 않고 양자화 과정만을 수행할 수 있을 뿐만 아니라, 변환과 양자화 과정 모두 수행하지 않을 수 있다. 이는 부호화기 설정에 따라 결정될 수 있다.
역양자화부(220)는 양자화부(215)에 의해 양자화된 잔차 블록을 역 양자화한다. 즉, 역양자화부(220)는 양자화 주파수 계수열을 역양자화하여 주파수 계수를 갖는 잔차 블록을 생성한다.
역변환부(225)는 역양자화부(220)에 의해 역양자화된 잔차 블록을 역변환한다. 즉, 역변환부(225)는 역양자화된 잔차 블록의 주파수 계수들을 역변환하여 화소값을 갖는 잔차 블록, 즉 복원된 잔차 블록을 생성한다. 여기서, 역변환부(225)는 변환부(210)에서 사용한 변환한 방식을 역으로 사용하여 역변환을 수행할 수 있다.
가산부(230)는 예측부(200)에서 예측된 예측 블록과 역변환부(225)에 의해 복원된 잔차 블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록은 부호화 픽쳐 버퍼(240)에 참조 픽쳐(또는 참조 블록)로서 저장되어 현재 블록의 다음 블록이나 향후 다른 블록, 다른 픽쳐를 부호화할 때 참조 픽쳐로서 사용될 수 있다.
필터부(235)는 디블록킹 필터, SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 등의 하나 이상의 후처리 필터 과정을 포함할 수 있다. 디블록킹 필터는 복원된 픽쳐에서 블록 간의 경계에 생긴 블록 왜곡을 제거할 수 있다. ALF는 디블록킹 필터를 통해 블록이 필터링된 후 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. SAO는 디블록킹 필터가 적용된 잔차 블록에 대하여, 화소 단위로 원본 영상과의 오프셋 차이를 복원할 수 있다. 이와 같은 후처리 필터는 복원된 픽쳐 또는 블록에 적용될 수 있다.
부호화 픽쳐 버퍼(240)는 필터부(235)를 통해 복원된 블록 또는 픽쳐를 저장할 수 있다. 부호화 픽쳐 버퍼(240)에 저장된 복원 블록 또는 픽쳐는 화면내 예측 또는 화면간 예측을 수행하는 예측부(200)에 제공될 수 있다.
엔트로피 부호화부(245)는 생성된 양자화 주파수 계수열을 다양한 스캔 방식에 따라 스캔하여 양자화 계수열을 생성하고, 이를 엔트로피 부호화 기법 등을 이용하여 부호화 함으로써 출력한다. 스캔 패턴은 지그재그, 대각선, 래스터(raster) 등 다양한 패턴들 중 하나로 설정할 수 있다. 또한, 각 구성부로부터 전달되는 부호화 정보를 포함하는 부호화 데이터를 생성하여 비트스트림으로 출력할 수 있다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 블록 구성도이다.
도 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)에 저장될 수 있다.
도면에 도시하지 않았지만 영상 부호화/복호화 장치에 픽쳐 분할부와 블록 분할부를 더 포함할 수 있다.
픽쳐 분할부는 픽쳐를 컬러 공간(예를 들어, YCbCr, RGB 또는 XYZ 등), 타일, 슬라이스, 기본 부호화 단위(또는 최대 부호화 단위) 등과 같은 적어도 하나의 처리 단위로 분할(또는 구획)할 수 있고, 블록 분할부는 기본 부호화 단위를 적어도 하나의 처리 단위(예를 들어, 부호화, 예측, 변환, 양자화, 엔트로피 및 인루프 필터 단위 등)로 분할할 수 있다.
기본 부호화 단위는 가로 방향과 세로 방향으로 픽쳐를 일정한 간격으로 분할하여 획득될 수 있다. 이를 기반으로 타일, 슬라이스 등의 분할이 수행될 수 있으나 이에 한정하지는 않는다. 상기 타일과 슬라이스와 같은 분할 단위는 기본 부호화 블록의 정수배로 구성될 수 있으나, 영상 경계에 위치한 분할 단위에서는 예외적인 경우가 발생할 수 있다. 이를 위해 기본 부호화 블록 크기의 조정이 발생할 수도 있다.
예를 들어, 픽쳐를 기본 부호화 단위로 구획한 후에 상기 단위로 분할할 수 있거나 또는 픽쳐를 상기 단위로 구획한 후에 기본 부호화 단위로 분할할 수 있다. 본 발명에서는 각 단위의 구획 및 분할 순서가 전자인 경우를 가정하여 설명하나 이에 한정되지 않고, 부/복호화 설정에 따라 후자의 경우 또한 가능할 수 있다. 후자의 경우 기본 부호화 단위의 크기가 분할 단위(타일 등)에 따라 적응적인 경우로의 변형이 가능할 수 있다. 즉, 각 분할 단위마다 다른 크기를 갖는 기본 부호화 블록이 지원될 수 있음을 의미한다.
본 발명에서는 픽쳐를 기본 부호화 단위로 구획하는 경우를 기본 설정으로 두어 후술하는 예를 설명할 것이다. 상기 기본 설정은 픽쳐가 타일 또는 슬라이스로 분할되지 않거나 또는 픽쳐가 하나의 타일 또는 하나의 슬라이스인 경우를 의미할 수 있다. 그러나 전술한 것처럼 각 분할 단위(타일, 슬라이스 등)를 먼저 구획하고 획득된 단위에 기반하여 기본 부호화 단위로 분할하는 경우(즉, 각 분할 단위가 기본 부호화 단위의 정수배가 되지 않는 경우 등)에도 후술하는 다양한 실시예가 동일하거나 변경되어 적용될 수 있음이 이해되어야 한다.
상기 분할 단위 중 슬라이스의 경우 스캔 패턴에 따라 연속하는 적어도 하나의 블록들의 묶음으로 구성될 수 있고, 타일의 경우 공간적으로 인접한 블록들의 직사각형 형태의 묶음으로 구성될 수 있으며, 그 외의 추가적인 분할 단위가 지원되어 그에 따른 정의에 의해 구성될 수 있다. 슬라이스와 타일은 병렬 처리 등을 위한 목적으로 지원되는 분할 단위일 수 있으며, 이를 위해 분할 단위 간의 참조는 제한(즉, 참조할 수 없음)할 수 있다.
이때, 슬라이스와 타일은 부/복호화 설정에 따라 복수의 단위로 구분될 수 있다.
예를 들어, 일부 단위<A>는 부/복호화 과정에 영향을 주는 설정 정보를 포함하는 단위(즉, 타일 헤더 또는 슬라이스 헤더를 포함)일 수 있고, 일부 단위<B>는 설정 정보를 포함하지 않는 단위일 수 있다. 또는, 일부 단위<A>는 부/복호화 과정에서 다른 단위를 참조할 수 없는 단위일 수 있고, 일부 단위<B>는 참조할 수 있는 단위일 수 있다. 또한, 일부 단위<A>는 다른 단위<B>를 포함하는 상하 관계일 수 있거나 일부 단위<A>는 다른 단위<B>와 대등한 관계일 수 있다.
여기서 A와 B는 슬라이스와 타일(또는 타일과 슬라이스)일 수 있다. 또는, A와 B는 슬라이스나 타일 중 하나로 구성될 수 있다. 예를 들어, A는 슬라이스/타일<타입 1>이고 B는 슬라이스/타일<타입 2>와 같은 구성이 가능할 수 있다.
여기서 타입 1과 타입 2는 각각 하나의 슬라이스 또는 타일일 수 있다. 또는, 타입 1은 (타입 2를 포함하는) 복수의 슬라이스 또는 타일(슬라이스 집합 또는 타일 집합)일 수 있고, 타입 2는 하나의 슬라이스 또는 타일일 수 있다.
이미 전술한 것과 같이 본 발명은 픽쳐가 하나의 슬라이스 또는 타일로 구성되는 경우를 가정하여 설명하지만, 둘 이상의 분할 단위가 발생하는 경우라면 위의 설명이 후술하는 실시예에 적용되어 이해될 수 있다. 또한, A와 B는 분할 단위가 가질 수 있는 특성에 대한 예시로 각 예시의 A와 B가 혼합 구성되는 예 또한 가능하다.
한편, 블록 분할부를 통해 다양한 크기의 블록으로 분할할 수 있다. 이때, 블록은 컬러 포맷에 따라 하나 이상의 블록으로 구성(예를 들어, 하나의 휘도 블록 및 둘의 색차 블록 등)될 수 있으며, 컬러 포맷에 따라 블록의 크기가 결정될 수 있다. 이하에서는 설명의 편의를 위해 하나의 컬러 성분(휘도 성분)에 따른 블록을 기준으로 설명한다.
후술하는 내용은 하나의 컬러 성분을 대상으로 하지만 컬러 포맷에 따른 비율(예를 들어, YCbCr 4:2:0의 경우 휘도 성분과 색차 성분의 가로 및 세로 길이 비율은 2:1)에 비례하여 다른 컬러 성분에 변경 적용될 수 있음을 이해하여야 한다. 또한, 다른 컬러 성분에 의존적인 블록 분할(예를 들어, Cb/Cr에서 Y의 블록 분할 결과에 의존적인 경우)이 가능할 수 있지만, 각 컬러 성분에 독립적인 블록 분할이 가능할 수 있음을 이해하여야 한다. 또한, 공통되는 하나의 블록 분할 설정(길이 비율에 비례하는 것은 고려)을 사용할 수 있지만, 컬러 성분에 따라 개별적인 블록 분할 설정이 사용되는 것 또한 고려하여 이해할 필요가 있다.
블록은 M × N(M과 N은 4, 8, 16, 32, 64, 128 등의 정수)과 같은 가변 크기를 가질 수 있으며, 부호화 수행을 위한 단위(부호화 블록. Coding Block)일 수 있다. 상세하게는 예측, 변환, 양자화 및 엔트로피 부호화 등의 기초가 되는 단위일 수 있으며, 본 발명에서는 이를 통칭하여 블록이라 표현한다. 여기서 블록은 사각형의 블록만을 의미하는 것이 아니라 삼각형, 원형 등 다양한 형태의 영역을 포함하는 넓은 개념으로 이해될 수 있으며, 본 발명에서는 사각형 형태인 경우를 중심으로 설명한다.
블록 분할부는 영상 부호화 장치 및 복호화 장치의 각 구성부에 관계되어 설정될 수 있으며, 이 과정을 통해 블록의 크기와 형태가 정해질 수 있다. 이때, 설정되는 블록은 구성부에 따라 달리 정의될 수 있으며, 예측부의 경우 예측 블록(Prediction Block), 변환부의 경우 변환 블록(Transform Block), 양자화부의 경우 양자화 블록(Quantization Block) 등이 이에 해당할 수 있다. 다만, 이에 한정되지 않고 다른 구성부에 따른 블록 단위가 추가로 정의될 수 있다. 본 발명에서는 각 구성부에서 입력과 출력이 블록(즉, 직사각 형태)인 경우를 가정하여 설명하지만, 일부 구성부에서는 다른 형태(예를 들어, 사각형, 삼각형 등)의 입/출력이 가능할 수도 있다.
블록 분할부의 초기(또는 시작) 블록의 크기 및 형태는 상위 단위로부터 결정될 수 있다. 예를 들어, 부호화 블록의 경우 기본 부호화 블록이 초기 블록일 수 있고, 예측 블록의 경우 부호화 블록이 초기 블록일 수 있다. 또한, 변환 블록의 경우 부호화 블록 또는 예측 블록이 초기 블록일 수 있으며, 이는 부/복호화 설정에 따라 정해질 수 있다.
예를 들어, 부호화 모드가 인트라(intra)일 경우 예측 블록은 변환 블록의 상위 단위일 수 있고, 인터(inter)일 경우 예측 블록은 변환 블록에 독립적인 단위일 수 있다. 분할의 시작 단위인 초기 블록은 작은 크기의 블록으로 분할될 수 있으며, 블록의 분할에 따른 최적의 크기 및 형태가 결정되면 그 블록은 하위 단위의 초기 블록으로 결정될 수 있다. 분할의 시작 단위인 초기 블록을 상위 단위의 초기 블록이라 볼 수 있다. 여기서, 상위 단위는 부호화 블록, 하위 단위는 예측 블록 또는 변환 블록일 수 있으나, 이에 한정되는 것은 아니다. 상기 예와 같이 하위 단위의 초기 블록이 정해지면 상위 단위와 같이 최적의 크기 및 형태의 블록을 찾기 위한 분할 과정이 수행될 수 있다.
정리하면, 블록 분할부는 기본 부호화 단위(또는 최대 부호화 단위)를 적어도 하나의 부호화 단위(또는 하위 부호화 단위)로 분할을 수행할 수 있다. 또한, 부호화 단위는 적어도 하나의 예측 단위로 분할을 수행할 수 있고, 적어도 하나의 변환 단위로 분할을 수행할 수 있다. 부호화 단위는 적어도 하나의 부호화 블록으로 분할을 수행할 수 있고, 부호화 블록은 적어도 하나의 예측 블록으로 분할을 수행할 수 있고, 적어도 하나의 변환 블록으로 분할을 수행할 수 있다. 예측 단위는 적어도 하나의 예측 블록으로 분할을 수행할 수 있고, 변환 단위는 적어도 하나의 변환 블록으로 분할을 수행할 수 있다.
이때, 일부 블록의 경우 다른 블록과 결합되어 하나의 분할 과정을 수행할 수 있다. 예를 들어, 부호화 블록과 변환 블록이 하나의 단위로 결합할 경우 최적의 블록의 크기 및 형태를 획득하기 위한 분할 과정이 수행되며, 이는 부호화 블록의 최적의 크기 및 형태뿐만 아니라 변환 블록의 최적의 크기 및 형태일 수 있다. 또는, 부호화 블록과 변환 블록이 하나의 단위로 결합할 수 있고, 예측 블록과 변환 블록이 하나의 단위로 결합할 수 있고, 부호화 블록과 예측 블록과 변환 블록이 하나의 단위로 결합할 수 있고, 그 외의 블록들의 결합이 가능할 수 있다.
상술한 바와 같이 최적의 크기 및 형태의 블록을 찾은 경우, 이에 대한 모드 정보(예를 들어, 분할 정보 등)가 생성될 수 있다. 모드 정보는 블록이 속하는 구성부에서 발생하는 정보(예를 들어, 예측 관련 정보 및 변환 관련 정보 등)과 함께 비트스트림에 수록되어 복호화기로 전송될 수 있고, 복호화기에서 동일 수준의 단위로 파싱되어 영상 복호화 과정에서 사용될 수 있다.
이하에서는 분할 방식에 대한 설명할 것이며, 설명의 편의를 위해 초기 블록이 정사각 형태인 것을 가정하지만, 초기 블록이 직사각 형태인 경우에도 동일하거나 유사하게 적용할 수 있으므로, 이에 한정되는 것은 아니다.
블록 분할을 위한 다양한 방법이 지원될 수 있지만 본 발명에서는 트리 기반의 분할에 중점을 두어 설명할 것이며, 최소 하나의 트리 분할이 지원될 수 있다. 이때, 트리 방식은 쿼드 트리(Quad Tree. QT), 바이너리 트리(Binary Tree. BT), 터너리 트리(Ternary Tree. TT) 등이 지원될 수 있다. 하나의 트리 방식이 지원되는 경우는 단일 트리 분할, 둘 이상의 트리 방식이 지원되는 경우는 다중 트리 방식이라 지칭할 수 있다.
쿼드 트리 분할의 경우 블록이 가로와 세로 방향으로 각각 2분할되는 방식을 의미하고, 바이너리 트리 분할의 경우 블록이 가로 또는 세로 중 한 방향으로 2분할되는 방식을 의미하며, 터너리 트리 분할의 경우 블록이 가로 또는 세로 중 한 방향으로 3분할되는 방식을 의미한다.
본 발명에서 분할 전 블록이 M x N일 경우 쿼드 트리 분할은 4개의 M/2 x N/2으로 분할되고, 바이너리 트리 분할은 2개의 M/2 x N 또는 M x N/2로 분할되고, 터너리 트리 분할의 경우 M/4 x N / M/2 x N / M/4 x N 또는 M x N/4 / M x N/2 / M x N/4로 분할되는 경우를 가정한다. 하지만 분할 결과가 위의 경우에만 한정되지는 않으며, 다양한 변형의 예가 가능할 수 있다.
부/복호화 설정에 따라 상기 트리 분할 중 하나 이상의 방식이 지원될 수 있다. 예를 들어, 쿼드 트리 분할을 지원할 수 있거나 또는 쿼드 트리 분할과 바이너리 트리 분할을 지원할 수 있거나 또는 쿼드 트리 분할과 터너리 트리 분할을 지원할 수 있거나 또는 쿼드 트리 분할과 바이너리 트리 분할과 터너리 트리 분할을 지원할 수 있다.
상기 예는 기본 분할 방식이 쿼드 트리이며 기타 트리 지원 여부에 따라 바이너리 트리 분할과 터너리 트리 분할이 추가 분할 방식에 포함되는 경우에 대한 예이지만, 다양한 변형이 가능할 수 있다. 이때, 기타 트리 지원 여부에 대한 정보(bt_enabled_flag, tt_enabled_flag, bt_tt_enabled_flag 등. 0 또는 1의 값을 가질 수 있고, 0이면 지원하지 않고 1이면 지원)는 부/복호화 설정에 따라 묵시적으로 정해지거나 또는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 명시적으로 결정될 수 있다.
분할 정보는 분할 여부에 대한 정보(tree_part_flag. 또는, qt_part_flag, bt_part_flag, tt_part_flag, bt_tt_part_flag. 0 또는 1의 값을 가질 수 있고, 0이면 분할되지 않고 1이면 분할)가 포함될 수 있다. 또한, 분할 방식(바이너리 트리, 터너리 트리)에 따라 분할 방향(dir_part_flag. 또는, bt_dir_part_flag, tt_dir_part_flag, bt_tt_dir_part_flag. 0 또는 1의 값을 가질 수 있고, 0이면 <가로/수평>이고 1이면 <세로/수직>)에 대한 정보가 추가될 수 있으며, 이는 분할이 수행되는 경우에 발생 가능한 정보일 수 있다.
복수의 트리 분할이 지원되는 경우에는 다양한 분할 정보 구성이 가능할 수 있다. 다음은 하나의 깊이(Depth) 수준(즉, 지원되는 분할 깊이가 하나 이상으로 설정되어 재귀적인 분할이 가능할 수도 있지만 설명의 편의를 위한 목적)에서 분할 정보가 어떻게 구성되어 있는지에 대한 예로 가정하여 설명한다.
일 예(1)로, 분할 여부에 대한 정보를 확인한다. 이때, 분할이 수행되지 않는 경우라면 분할이 종료된다.
만약 분할이 수행되는 경우라면 분할 종류에 대한 선택 정보(예를 들어, tree_idx. 0이면 QT, 1이면 BT, 2이면 TT)를 확인한다. 이때, 선택되는 분할 종류에 따라 분할 방향 정보를 추가로 확인하고 다음 단계(분할 깊이가 최대에 도달하지 않은 경우 등의 이유로 추가 분할이 가능하다면 다시 처음부터 시작하고, 분할이 불가한 경우라면 분할 종료)로 넘어간다.
일 예(2)로, 일부 트리 방식(QT)에 대한 분할 여부에 대한 정보를 확인하고 다음 단계로 넘어간다. 이때, 분할이 수행되지 않는 경우라면 일부 트리 방식(BT)의 분할 여부에 대한 정보를 확인한다. 이때, 분할이 수행되지 않는 경우라면 일부 트리 방식(TT)의 분할 여부에 대한 정보를 확인한다. 이때, 분할이 수행되지 않는 경우라면 분할이 종료된다.
만약 일부 트리 방식(QT)의 분할이 수행되는 경우라면 다음 단계로 넘어간다. 또한, 만약 일부 트리 방식(BT)의 분할이 수행되는 경우라면 분할 방향 정보를 확인하고 다음 단계로 넘어간다. 또한, 만약 일부 트리 분할 방식(TT)의 분할이 수행되는 경우라면 분할 방향 정보를 확인하고 다음 단계로 넘어간다.
일 예(3)로, 일부 트리 방식(QT)에 대한 분할 여부에 대한 정보를 확인한다. 이때, 분할이 수행되지 않는 경우라면 일부 트리 방식(BT와 TT)의 분할 여부에 대한 정보를 확인한다. 이때, 분할이 수행되지 않는 경우라면 분할이 종료된다.
만약 일부 트리 방식(QT)의 분할이 수행되는 경우라면 다음 단계로 넘어간다. 또한, 만약 일부 트리 방식(BT와 TT)의 분할이 수행되는 경우라면 분할 방향 정보를 확인하고 다음 단계로 넘어간다.
상기 예는 트리 분할의 우선 순위가 존재(2번과 3번 예)하거나 존재하지 않는 경우(1번 예)일 수 있으나, 다양한 변형의 예가 가능할 수 있다. 또한, 상기 예에서 현재 단계의 분할은 이전 단계의 분할 결과와는 무관한 경우를 설명하는 예이지만, 현재 단계의 분할이 이전 단계의 분할 결과에 의존적인 설정 또한 가능할 수 있다.
예를 들어, 1 내지 3번 예의 경우 이전 단계에서 일부 트리 방식의 분할(QT)이 수행되어 현재 단계로 넘어온 경우라면 현재 단계에서도 동일 트리 방식(QT)의 분할이 지원될 수 있다.
반면, 이전 단계에서 일부 트리 방식의 분할(QT)이 수행되지 않고 다른 트리 방식의 분할(BT 또는 TT)이 수행되어 현재 단계로 넘어온 경우라면 일부 트리 방식의 분할(QT)을 제외하고 일부 트리 방식의 분할(BT와 TT)이 현재 단계를 포함한 후속 단계에 지원되는 설정 또한 가능할 수 있다.
위와 같은 경우에는 블록 분할에 지원되는 트리 구성이 적응적일 수 있다는 것을 의미하므로, 전술한 분할 정보 구성 또한 달리 구성될 수 있음을 의미한다. (후술하는 예는 3번 예로 가정) 즉, 상기 예에서 일부 트리 방식(QT)의 분할이 이전 단계에서 수행되지 않았을 경우, 현재 단계에서는 일부 트리 방식(QT)은 고려하지 않고 분할 과정이 수행될 수 있다. 또한, 관련 트리 방식에 관한 분할 정보(예를 들어, 분할 여부에 대한 정보, 분할 방향 정보 등. 본 예<QT>에서는 분할 여부에 대한 정보)는 제거하여 구성될 수 있다.
상기 예는 블록 분할이 허용되는 경우(예를 들어, 블록 크기가 최대값과 최소값 사이의 범위 내에 존재, 각 트리 방식의 분할 깊이가 최대 깊이<허용 깊이>에 도달하지 않음 등)에 대한 적응적인 분할 정보 구성에 관한 경우이며, 블록 분할이 제한되는 경우(예를 들어, 블록 크기가 최대값과 최소값 사이의 범위에 존재하지 않음, 각 트리 방식의 분할 깊이가 최대 깊이에 도달함 등)에도 적응적인 분할 정보 구성이 가능할 수 있다.
이미 언급한 것과 같이 본 발명에서 트리 기반의 분할은 재귀적인 방식을 사용하여 수행될 수 있다. 예를 들어, 분할 깊이가 k인 부호화 블록의 분할 플래그가 0인 경우 부호화 블록의 부호화는 분할 깊이가 k인 부호화 블록에서 수행되며, 분할 깊이가 k인 부호화 블록의 분할 플래그가 1인 경우 부호화 블록의 부호화는 분할 방식에 따라 분할 깊이가 k+1인 N개의 서브 부호화 블록(이때, N은 2, 3, 4와 같은 2 이상의 정수)에서 수행된다.
상기 서브 부호화 블록은 다시 부호화 블록(k+1)으로 설정되어 상기 과정을 거쳐 서브 부호화 블록(k+2)으로 분할될 수 있으며, 이러한 계층적 분할 방식은 분할 범위 및 분할 허용 깊이 등의 분할 설정에 따라 결정될 수 있다.
이때, 분할 정보를 표현하기 위한 비트스트림 구조는 하나 이상의 스캔 방법 중 선택할 수 있다. 예를 들어, 분할 깊이 순서 기준으로 분할 정보의 비트스트림을 구성할 수 있거나 분할 여부 기준으로 분할 정보의 비트스트림을 구성할 수 있다.
예를 들어, 분할 깊이 순서 기준의 경우 최초 블록 기준으로 현 수준의 깊이에서의 분할 정보를 획득한 후 다음 수준의 깊이에서의 분할 정보를 획득하는 방법이며, 분할 여부 기준의 경우 최초 블록 기준으로 분할된 블록에서의 추가 분할 정보를 우선적으로 획득하는 방법을 의미하며, 다른 추가적인 스캔 방법이 고려될 수 있다. 본 발명에서는 분할 여부 기준으로 분할 정보의 비트스트림을 구성하는 경우를 가정한다.
전술한 것과 같이 블록 분할에 관한 다양한 경우를 살펴보았으며, 블록 분할에 관한 고정적이거나 적응적인 설정이 지원될 수 있다.
이때, 블록 분할에 관한 설정은 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에서 관련 정보를 명시적으로 포함할 수 있다. 또는, 부/복호화 설정에 따라 묵시적으로 블록 분할 설정이 정해질 수 있으며, 여기서 부/복호화 설정은 영상 타입(I/P/B), 컬러 성분, 분할 종류, 분할 깊이 등의 다양한 부/복호화 요소 중 하나 또는 둘 이상의 조합에 따라 구성될 수 있다.
본 발명의 일 실시예에 따른 영상 부호화 방법에서 화면내 예측은 다음과 같이 구성될 수 있다. 예측부의 화면내 예측은 참조 화소 구성 단계, 예측 블록 생성 단계, 예측 모드 결정 단계, 예측 모드 부호화 단계를 포함할 수 있다. 또한, 영상 부호화 장치는 참조 화소 구성 단계, 예측 블록 생성 단계, 예측 모드 결정 단계, 예측 모드 부호화 단계를 구현하는 참조 화소 구성부, 예측 블록 생성부, 예측 모드 부호화부를 포함하도록 구성할 수 있다. 전술한 과정의 일부는 생략될 수 있거나 다른 과정이 추가될 수 있고, 상기 기재된 순서가 아닌 다른 순서로 변경될 수 있다.
도 4는 본 발명의 일 실시예에 따른 화면내 예측 모드를 나타낸 예시도이다.
도 4를 참조하면, 67개의 예측 모드가 화면내 예측을 위한 예측 모드 후보군으로 구성되어 있으며, 이 중 65개는 방향성 모드이고 2개는 비방향성 모드(DC, Planar)인 경우를 가정하여 설명하지만 이에 한정되지 않고 다양한 구성이 가능할 수 있다. 이때, 방향성 모드는 기울기(예를 들어, dy/dx) 또는 각도 정보(Degree)로 구분할 수 있다. 또한, 상기 예측 모드의 전부 또는 일부가 휘도 성분 또는 색차 성분의 예측 모드 후보군에 포함될 수 있고, 그 외의 추가적인 모드가 예측 모드 후보군에 포함될 수 있다.
본 발명에서 방향성 모드의 방향은 직선형(Straight line)을 의미할 수 있으며, 곡선형(Curve)의 방향성 모드 또한 추가로 예측 모드로 구성할 수 있다. 또한, 비방향성 모드의 경우 현재 블록의 인접한 주변 블록(예를 들어, 좌, 상, 좌상, 우상, 좌하 블록 등)의 화소의 평균(또는 가중치 평균 등)으로 예측 블록을 획득하는 DC 모드, 주변 블록의 화소를 선형 보간 등을 통해 예측 블록을 획득하는 Planar 모드를 포함할 수 있다.
여기서, DC 모드의 경우 예측 블록 생성에 사용되는 참조 화소는 좌, 상, 좌+상, 좌+좌하, 상+우상, 좌+상+좌하+우상 등과 같은 다양한 조합으로 묶인 블록에서 획득될 수 있으며, 영상 타입, 컬러 성분, 블록의 크기/형태/위치 등에 의해 정의되는 부/복호화 설정에 따라 참조 화소 획득 블록 위치가 정해질 수 있다.
여기서, Planar 모드의 경우 예측 블록 생성에 사용되는 화소는 참조 화소로 구성된 영역(예를 들어, 좌, 상, 좌상, 우상, 좌하 등)과 참조 화소로 구성되지 않는 영역(예를 들어, 우, 하, 우하 등)에서 획득될 수 있는데, 참조 화소로 구성되지 않는 영역(즉, 부호화되지 않음)의 경우 참조 화소로 구성된 영역에서 하나 이상의 화소를 사용(예를 들어, 그대로 복사, 가중치 평균 등)하여 묵시적으로 획득할 수 있거나 또는 참조 화소로 구성되지 않는 영역의 최소 하나의 화소에 대한 정보를 명시적으로 발생시킬 수 있다. 그래서 위와 같이 참조 화소로 구성된 영역과 참조 화소로 구성되지 않는 영역을 사용하여 예측 블록을 생성할 수 있다.
도 5는 본 발명의 일 실시예에 따른 방향성 모드와 비방향성 모드에 관한 화면내 예측을 나타내는 개념도이다.
도 5의 (a)를 참조하면 수직(5a), 수평(5b), 대각선(5c 내지 5e) 방향의 모드에 따른 화면내 예측을 나타내고 있다. 도 5의 (b)를 참조하면, DC 모드에 따른 화면내 예측을 나타내고 있다. 도 5의 (c)를 참조하면, Planar 모드에 따른 화면내 예측을 나타내고 있다.
상기 설명 외의 추가적인 비방향성 모드가 포함될 수 있으며, 본 발명에서는 직선형 방향성 모드와 DC, Planar의 비방향성 모드를 중심으로 설명하지만, 다른 경우로의 변경 적용 또한 가능할 수 있다.
도 4는 블록의 크기에 상관없이 고정적으로 지원되는 예측 모드일 수 있다. 또한, 블록의 크기에 따라 지원되는 예측 모드는 도 4와 다를 수 있다.
예를 들어, 예측 모드 후보군의 개수가 적응적(예를 들어, 예측 모드 사이의 각도는 등간격이지만, 각도를 달리 설정함. 방향성 모드를 기준으로 9, 17, 33, 65, 129개 등)이거나 또는 예측 모드 후보군의 개수는 고정적이지만 다른 구성(예를 들어, 방향성 모드 각도, 비방향성 종류 등)으로 이뤄질 수 있다.
또한, 도 4는 블록의 형태에 상관없이 고정적으로 지원되는 예측 모드일 수 있다. 또한, 블록의 형태에 따라 지원되는 예측 모드는 도 4와 다를 수 있다.
예를 들어, 예측 모드 후보군의 개수가 적응적(예를 들어, 블록의 가로/세로 비에 따라 수평 또는 수직 방향에서 파생되는 예측 모드의 개수를 적거나 많게 설정)이거나 또는 예측 모드 후보군의 개수는 고정적이지만 다른 구성(예를 들어, 블록의 가로/세로 비에 따라 수평 또는 수직 방향에서 파생되는 예측 모드를 더 세밀하게 설정)으로 이뤄질 수 있다.
또는, 블록의 길이가 긴 쪽의 예측 모드는 더 많은 개수를, 블록의 길이가 짧은 쪽의 예측 모드는 더 적은 개수를 지원할 수 있으며, 블록의 길이가 긴 쪽의 경우 예측 모드 간격을 도 4에서 66번 모드의 오른쪽에 위치한 모드(예를 들어, 50번 모드 기준으로 +45도 이상의 각도를 갖는 모드. 즉, 67 내지 80번 등의 번호를 갖는 모드) 또는 2번 모드의 왼쪽에 위치한 모드(예를 들어, 18번 모드 기준으로 -45도 이상의 각도를 갖는 모드. 즉, -1 내지 -14번 등의 번호를 갖는 모드)를 지원할 수도 있다. 이는 블록의 가로와 세로의 길이 비에 따라 결정될 수 있으며, 그 반대의 상황이 가능할 수도 있다.
본 발명에서는 도 4와 같이 예측 모드가 (어떤 부/복호화 요소에 상관없이) 고정적으로 지원되는 예측 모드인 경우를 중심으로 설명하지만, 부호화 설정에 따라 적응적으로 지원되는 예측 모드 설정 또한 가능할 수 있다.
또한, 예측 모드를 분류할 때 수평과 수직 모드(18번과 50번 모드), 일부 대각선 모드(Diagonal up right<2번>, Diagonal down right<34번>, Diagonal down left<66번> 등) 등이 기준이 될 수 있는데, 이는 일부 방향성(또는 각도. 45도, 90도 등)에 기반하여 수행되는 분류 방법일 수 있다.
그리고 방향성 모드 중 양 끝에 위치한 일부 모드(2번과 66번 모드)가 예측 모드 분류에 기준이 되는 모드일 수 있는데, 이는 도 4와 같은 화면내 예측 모드 구성일 때 가능한 예이다. 즉, 예측 모드 구성이 적응적일 경우에는 상기 기준이 되는 모드가 변경되는 예 또한 가능할 수 있다. 예를 들어, 2번 모드가 2보다 작거나 큰 번호를 갖는 모드(-2, -1, 3, 4 등)로 대체되거나, 66번 모드가 66보다 작거나 큰 번호를 갖는 모드(64, 66, 67, 68 등)로 대체되는 것이 가능할 수 있다.
또한, 컬러 성분에 관한 추가적인 예측 모드가 예측 모드 후보군에 포함될 수 있다. 다음을 통해 상기 예측 모드에 대한 예로 컬러 복사 모드와 컬러 모드에 대한 설명을 이어간다.
(컬러 복사 모드)
다른 컬러 공간 내 위치한 영역으로부터 예측 블록 생성을 위한 데이터를 획득하는 방법과 관련된 예측 모드가 지원될 수 있다.
예를 들어, 컬러 공간 간의 상관성을 이용하여 예측 블록 생성을 위한 데이터를 다른 컬러 공간에서 획득하는 방법에 대한 예측 모드가 그에 대한 예가 될 수 있다.
도 6은 본 발명의 일 실시예에 따른 컬러 복사 모드에 관한 화면내 예측을 나타내는 개념도이다. 도 6을 참조하면, 현재 공간(M)의 현재 블록(C)은 동일 시간(t)에 다른 컬러 공간(N)의 대응되는 영역(D)의 데이터를 사용하여 예측을 수행할 수 있다.
이때, 컬러 공간 간의 상관성은 YCbCr을 예로 들 경우 Y와 Cb, Y와 Cr, Cb와 Cr 간의 상관성을 의미할 수 있다. 즉, 색차 성분(Cb 또는 Cr)의 경우 현재 블록과 대응되는 휘도 성분(Y)의 복원된 블록을 현재 블록의 예측 블록으로 사용할 수 있다(색차 vs 휘도가 후술하는 예의 기본 설정). 또는, 일부 색차 성분(Cr 또는 Cb)의 현재 블록과 대응되는 일부 색차 성분(Cb 또는 Cr)의 복원된 블록을 현재 블록의 예측 블록으로 사용할 수 있다.
여기서, 현재 블록과 대응되는 영역은 일부 컬러 포맷(예로, YCbCr 4:4:4 등)의 경우 각 영상 내 절대적인 위치가 동일할 수 있다. 또는, 일부 컬러 포맷(예로, YCbCr 4:2:0 등)의 경우 각 영상 내 상대적인 위치가 동일할 수 있다. 이는 컬러 포맷에 따른 가로와 세로 길이 비에 따라 대응되는 위치가 정해질 수 있으며, 현재 영상의 화소와 다른 컬러 공간의 대응되는 화소는 현재 화소의 좌표의 각 구성 성분에 컬러 포맷에 따른 가로와 세로의 길이 비로 곱하거나 나눠줌으로써 획득 가능할 수 있다.
설명의 편의를 위해 일부 컬러 포맷(4:4:4)인 경우를 중심으로 설명하지만, 다른 컬러 공간의 대응되는 영역의 위치는 컬러 포맷에 따른 가로/세로 길이 비에 따라 결정될 수 있음을 이해하여야 한다.
컬러 복사 모드에서 다른 컬러 공간의 복원된 블록을 그대로 예측 블록으로 사용할 수 있거나 컬러 공간 간의 상관성을 고려하여 획득된 블록을 예측 블록으로 사용할 수 있다. 컬러 공간 간의 상관성을 고려하여 획득된 블록은 기존 블록에 보정을 수행하여 획득될 수 있는 블록을 의미한다. 상세하게는, {P = a * R + b}의 수식에서 a와 b는 보정을 위해 사용되는 값을 의미하고, R과 P는 각각 다른 컬러 공간에서 획득된 값과 현재 컬러 공간의 예측값을 의미할 수 있다. 여기서 P가 컬러 공간 간의 상관성을 고려하여 획득된 블록을 의미한다.
본 예에서는 컬러 공간 간의 상관성을 이용하여 획득되는 데이터를 현재 블록의 예측값으로 사용하는 경우를 가정하여 설명하나, 해당 데이터를 이미 존재하는 현재 블록의 예측값에 적용되는 보정값으로 사용되는 경우 또한 가능할 수 있다. 즉, 다른 컬러 공간의 잔차값으로 현재 블록의 예측값을 보정할 수 사용할 수 있다.
본 발명에서는 전자의 경우를 가정하여 설명하오나 이에 한정되지 않고 보정값으로 사용되는 경우로의 동일하거나 변경 적용이 가능할 수 있다.
컬러 복사 모드는 부/복호화 설정에 따라 명시적 또는 묵시적으로 지원 여부가 정해질 수 있다. 이때, 영상 타입, 컬러 성분, 블록의 위치/크기/형태, 블록의 가로/세로 비 등에서 하나 또는 둘 이상의 조합에 따라 부/복호화 설정이 정의될 수 있다. 그리고 명시적인 경우에는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 관련 정보가 포함될 수 있다. 또한, 부/복호화 설정에 따라 컬러 복사의 지원 여부는 일부 경우에 묵시적으로 정해질 수 있고, 일부 경우에는 명시적으로 관련 정보가 발생할 수도 있다.
컬러 복사 모드에서 컬러 공간 간의 상관성 정보(a와 b 등)는 부/복호화 설정에 따라 명시적으로 발생하거나 묵시적으로 획득될 수 있다.
이때, 상관성 정보를 획득하기 위해 비교(또는 참조)되는 영역은 현재 블록(도 6의 C)과 다른 컬러 공간의 대응되는 영역(도 6의 D)일 수 있다. 또는, 현재 블록의 인접한 영역(도 6의 C를 중심으로 좌, 상, 좌상, 우상, 좌하 블록 등)과 다른 컬러 공간이 대응되는 영역의 인접한 영역(도 6의 D를 중심으로 좌, 상, 좌상, 우상, 좌하 블록 등)일 수 있다.
상기 설명에서 전자의 경우 상관성 정보는 현재 블록과 대응되는 블록의 데이터를 사용하여 직접 획득되어야 하므로 관련 정보를 명시적으로 처리하는 예에 해당할 수 있다. 즉, 현재 블록의 데이터는 아직 부호화가 완료되지 않았기 때문에 상관성 정보가 생성되어야 하는 경우일 수 있다. 후자의 경우 상관성 정보를 현재 블록의 인접한 영역과 대응되는 블록의 인접한 영역의 데이터를 사용하여 간접적으로 획득될 수 있으므로 관련 정보를 묵시적으로 처리하는 예에 해당할 수 있다.
정리하면, 전자의 경우 현재 블록과 대응되는 블록을 비교하여 상관성 정보를 획득하고, 후자의 경우 현재 블록과 대응되는 블록에 각각 인접한 영역을 비교하여 상관성 정보를 획득한다. 그리고 상관성 정보를 대응되는 블록에 적용하여 획득된 데이터를 현재 블록의 예측 화소로 사용할 수 있다.
여기서, 전자의 경우 상관성 정보를 그대로 부호화할 수 있거나 또는 인접한 영역을 비교하여 획득되는 상관성 정보를 예측값으로 삼아 그 차분치에 대한 정보를 부호화할 수 있다. 상기 상관성 정보는 컬러 복사 모드가 예측 모드로 선정될 경우 발생 가능한 정보일 수 있다.
여기서, 후자의 경우 예측 모드 후보군에서 컬러 복사 모드가 최적의 모드로 선정되는 것을 제외하면 추가적으로 발생하는 정보가 없는 것으로 묵시적인 경우의 일 예로 이해할 수 있다. 즉, 이것은 하나의 상관성 정보가 지원되는 설정 하에 가능한 예일 수 있다.
만약 둘 이상의 상관성 정보가 지원되는 설정 하에서는 컬러 복사 모드가 최적의 모드로 선정되는 것에 추가적으로 상관성 정보에 대한 선택 정보가 요구될 수 있다. 상기 예와 같이 부/복호화 설정에 따라 명시적인 경우와 묵시적인 경우가 혼합되는 구성 또한 가능할 수도 있다.
본 발명에서는 상관성 정보가 간접적으로 획득되는 경우를 중심으로 설명할 것이며, 이때 획득되는 상관성 정보는 N개 이상(N은 1, 2, 3과 같은 1 이상의 정수)일 수 있다. 상관성 정보의 개수에 대한 설정 정보는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에서 포함될 수 있다. 후술하는 예 중 일부에서 상관성 정보가 2개 이상 지원되는 경우는 컬러 복사 모드가 2개 이상 지원되는 경우와 동일한 의미일 수 있음을 이해하여야 한다.
도 7은 본 발명의 일 실시예에 따른 컬러 복사 모드와 관련하여 각 컬러 공간의 대응되는 블록과 그에 인접한 영역을 나타내는 예시도이다. 도 7을 참조하면, 현재 컬러 공간(M)과 다른 컬러 공간(N)에서 화소 간 대응되는 예시(p와 q)를 나타내고 있으며, 일부 컬러 포맷(4:2:0)인 경우에 발생 가능한 경우로 이해할 수 있다. 그리고 상관성 정보 획득을 위해 대응되는 관계(7a)와 예측값 적용을 위해 대응되는 관계(7b)를 확인할 수 있다.
다음은 컬러 복사 모드에서 상관성 정보를 획득하는 것과 관련된 설명을 이어간다. 상관성 정보를 획득하기 위해서는 각 컬러 공간의 기 설정되는 영역(현재 블록과 대응되는 블록에 인접한 영역의 전부 또는 일부) 내의 화소의 화소값이 비교(또는 사용)될 수 있다(즉, 1:1 화소값 비교 과정이 수행). 이때, 비교되는 화소값은 각 컬러 공간의 대응되는 화소 위치에 기반하여 획득될 수 있다. 상기 화소값은 각 컬러 공간에서 적어도 하나의 화소로부터 유도되는 값일 수 있다.
예를 들어, 일부 컬러 포맷(4:4:4)의 경우 색차 공간의 하나의 화소의 화소값과 휘도 공간의 하나의 화소의 화소값이 상관성 정보 획득 과정에 대응되는 화소값으로 사용될 수 있다. 또는, 일부 컬러 포맷(4:2:0)의 경우 색차 공간의 하나의 화소의 화소값과 휘도 공간의 하나 이상의 화소로부터 유도되는 화소값이 상관성 정보 획득 과정에 대응되는 화소값으로 사용될 수 있다.
상세하게는, 전자의 경우 색차 공간의 p[x, y]은 휘도 공간의 q[x, y]와 비교될 수 있다. 이때, 화소값은 하나의 화소가 갖는 밝기값이 그대로 사용될 수 있다. 후자의 경우 색차 공간의 p[x, y]은 휘도 공간의 q[2x, 2y], q[2x, 2y+1], q[2x+1, 2y], q[2x+1, 2y+1] 등과 비교될 수 있다.
여기서 1:1 화소값 비교가 수행되어야 하기 때문에 휘도 공간의 경우 상기 복수의 화소 중 하나를 색차 화소의 화소값과 비교하는 값으로 사용할 수 있다. 즉, 상기 복수의 화소 중 하나의 화소가 갖는 밝기값이 그대로 사용됨을 의미한다. 또는, 상기 복수의 화소 중 둘 이상의 화소(2개 내지 4개)로부터 하나의 화소값을 유도하여 비교하는 값으로 사용할 수 있다. 즉, 둘 이상의 화소에 가중치 평균(각 화소에 가중치가 균등 할당될 수 있거나 또는 비균등 할당될 수 있음) 등을 적용할 수 있다.
상기 예와 같이 대응되는 화소가 복수로 존재할 경우 기 설정된 하나의 화소의 화소값 또는 둘 이상의 화소로부터 유도되는 화소값을 비교되는 값으로 사용할 수 있다. 이때, 부/복호화 설정에 따라 각 컬러 공간에서 비교되는 화소값 유도에 관한 상기 두 방법 중 하나를 단독으로 사용하거나 또는 혼합하여 사용할 수 있다.
다음은 현재 컬러 공간에서 하나의 화소의 화소값이 비교에 사용되고, 다른 컬러 공간에서 하나 이상의 화소가 화소값 유도에 사용될 수 있음을 전제하는 설명일 수 있다. 예를 들어, 컬러 포맷은 YCbCr 4:2:0이고 현재 컬러 공간은 색차 공간이고 다른 컬러 공간은 휘도 공간인 경우를 가정한다. 화소값 유도에 관한 방법은 다른 컬러 공간을 중심으로 설명한다.
일 예로, 블록의 형태(가로/세로 길이 비)에 따라 정해질 수 있다. 상세한 예로, 현재 블록(또는 예측 대상 블록)의 길이가 긴 쪽에 인접한 색차 공간의 p[x, y]은 휘도 공간의 q[2x, 2y]와 비교될 수 있고, 길이가 짧은 쪽에 인접한 색차 공간의 p[x, y]은 휘도 공간의 q[2x, 2y]와 q[2x+1, 2y]의 평균과 비교될 수 있다.
이때, 가로/세로 길이 비에 관계없이 일부 블록 형태(직사각)에 상기 내용이 적용될 수 있거나 또는 가로/세로 길이 비가 일정 비율(k:1 또는 1:k. 예로, 2:1, 4:1 등과 같이 k는 2 이상) 이상/초과인 경우에만 적용될 수 있는 등의 적응적인 설정이 가능할 수 있다.
일 예로, 블록의 크기에 따라 정해질 수 있다. 상세한 예로, 현재 블록의 크기가 일정 크기(M x N. 예로, 2m x 2n으로 m과 n은 2 ~ 6 과 같은 1 이상 정수) 이상/초과인 경우에 색차 공간의 p[x, y]은 휘도 공간의 q[2x+1, 2y]와 비교될 수 있고, 일정 크기 이하/미만인 경우에 색차 공간의 p[x, y]은 휘도 공간의 q[2x, 2y], q[2x, 2y+1]의 평균과 비교될 수 있다.
이때, 크기 비교를 위한 경계값이 상기 예와 같이 하나 존재할 수 있거나 또는 둘 이상 존재(M1 x N1, M2 x N2 등)하는 등의 적응적인 설정이 가능할 수 있다.
상기 예들은 연산량 측면에서 고려될 수 있는 일부 경우이며, 상기 예와 반대되는 경우를 포함한 다양한 변형의 예가 가능하다.
일 예로, 블록의 위치에 따라 정해질 수 있다. 상세한 예로, 현재 블록이 기 설정된 영역(본 예에서 최대 부호화 블록이라 가정)의 내부에 위치할 경우 색차 공간의 p[x, y]은 휘도 공간의 q[2x, 2y]. q[2x+1, 2y], q[2x, 2y+1], q[2x+1, 2y+1]의 평균과 비교될 수 있고, 기 설정된 영역의 경계(본 예에서 왼쪽 위 경계라 가정)에 위치할 경우 색차 공간의 p[x, y]은 휘도 공간의 q[2x+1, 2y+1]와 비교될 수 있다. 상기 기 설정된 영역은 슬라이스, 타일, 블록 등에 기반하여 설정되는 영역을 의미할 수 있다. 상세하게는, 슬라이스, 타일, 최대 부호화/예측/변환 블록의 정수배에 기반하여 획득될 수 있다.
다른 예로, 현재 블록이 상기 영역의 일부 경계(본 예에서 위쪽 경계라 가정)에 위치할 경우 일부 경계(위쪽)에 인접한 색차 공간의 p[x, y]는 휘도 공간의 q[2x+1, 2y+1]와 비교될 수 있고, 상기 영역 내부(왼쪽)에 인접한 색차 공간의 p[x, y]는 휘도 공간의 q[2x, 2y]. q[2x+1, 2y], q[2x, 2y+1], q[2x+1, 2y+1]의 평균과 비교될 수 있다.
상기 예는 메모리 측면에서 고려될 수 있는 일부 경우이며, 상기 예와 반대되는 경우를 포함한 다양한 변형의 예가 가능하다.
전술한 예를 통해 각 컬러 공간에서 비교되는 화소값 유도에 관해 다양한 경우를 살펴보았다. 상기 예와 같이 블록의 크기/형태/위치뿐만 아니라 다양한 부/복호화 요소를 고려하여 상기 상관성 정보 획득을 위한 화소값 유도 설정이 정해질 수 있다.
상기 예를 통해 상관성 정보 획득을 위해 비교되는 영역은 도 7과 같이 현재 블록과 대응되는 블록의 각각 1개 또는 2개의 참조 화소 라인이 사용되는 경우를 설명하였다. 즉, YCbCr 4:4:4와 같은 경우 각각 1개의 참조 화소 라인을 사용하고, 그 외의 포맷의 경우 일부 컬러 공간에서는 도 7의 일부 컬러 공간<color N>과 같이 2개의 참조 화소 라인을 사용하는 경우를 의미하나, 이에 한정되지 않고 다양한 변형의 예가 가능할 수 있다.
다음은 현재 컬러 공간의 참조 화소 라인에 중점을 두어 설명할 것이며, 다른 컬러 공간의 경우 컬러 포맷에 따라 참조 화소 라인이 정해질 수 있음을 이해하여야 한다. 즉, 동일한 참조 화소 라인 개수가 사용되거나 또는 2배의 참조 화소 라인이 사용될 수 있다.
본 발명의 컬러 복사 모드에서는 k개의 참조 화소 라인(여기서 k는 1, 2와 같은 1 이상 정수)이 상관성 정보 획득을 위해 사용(또는 비교)될 수 있다. 또한, k개의 참조 화소 라인이 고정적으로 사용되거나 또는 적응적으로 사용될 수 있다. 다음은 참조 화소 라인 개수 설정에 관한 다양한 예를 살펴본다.
일 예로, 블록의 형태(가로/세로 길이 비)에 따라 정해질 수 있다. 상세한 예로, 현재 블록의 길이가 긴 쪽에 인접한 2개의 참조 화소 라인이 사용될 수 있고, 길이가 짧은 쪽에 인접한 1개의 참조 화소 라인이 사용될 수 있다.
이때, 가로/세로 길이 비에 관계없이 일부 블록 형태(직사각)에 상기 내용이 적용될 수 있거나 또는 가로/세로 길이 비가 일정 비율(k:1 또는 1:k. 예로, 2:1, 4:1 등과 같이 k는 2 이상) 이상/초과인 경우에만 적용될 수 있다. 또한, 가로/세로 길이 비에 대한 경계값은 2개 이상 존재하여, 2:1 또는 1:2인 경우에는 길이가 긴 쪽(또는 짧은 쪽)에 인접한 2개의 참조 화소 라인을 사용하고, 4:1 또는 1:4인 경우에는 길이가 긴 쪽(또는 짧은 쪽)에 인접한 3개의 참조 화소 라인을 사용하는 등의 확장이 가능할 수도 있다.
상기 예는 가로/세로 길이 비에 따라 길이가 긴 쪽(또는 짧은 쪽)은 s개의 참조 화소 라인을 사용하고, 길이가 짧은 쪽(또는 긴 쪽)은 t개의 참조 화소 라인을 사용하며, 이때, s가 t보다 크거나 같은 경우(즉, s와 t는 1 이상 정수)에 대한 일 예일 수 있다.
일 예로, 블록의 크기에 따라 정해질 수 있다. 상세한 예로, 현재 블록의 크기가 일정 크기(M x N. 예로, 2m x 2n으로 m과 n은 2 ~ 6 과 같은 1 이상 정수) 이상/초과인 경우에 2개의 참조 화소 라인이 사용될 수 있고, 일정 크기 이하/미만인 경우 1개의 참조 화소 라인이 사용될 수 있다.
이때, 크기 비교를 위한 경계값이 상기 예와 같이 하나 존재할 수 있거나 또는 둘 이상 존재(M1 x N1, M2 x N2 등)하는 등의 적응적인 설정이 가능할 수 있다.
일 예로, 블록의 위치에 따라 정해질 수 있다. 상세한 예로, 현재 블록이 기 설정된 영역(상관성 정보 획득과 관련된 이전 설명에서 유도 가능. 본 예에서 최대 부호화 블록이라 가정)의 내부에 위치할 경우 2개의 참조 화소 라인이 사용될 수 있고, 기 설정된 영역의 경계(본 예에서 왼쪽 위 경계라 가정)에 위치할 경우 1개의 참조 화소 라인이 사용될 수 있다.
다른 예로, 현재 블록이 상기 영역의 일부 경계(본 예에서 위쪽 경계라 가정)에 위치할 경우 일부 경계(위쪽)에 인접한 1개의 참조 화소 라인이 사용될 수 있고, 상기 영역 내부(왼쪽)에 인접한 2개의 참조 화소 라인이 사용될 수 있다.
상기 예는 상관성 정보의 정확성과 메모리 측면 등에서 고려될 수 있는 일부 경우이며, 상기 예와 반대되는 경우를 포함한 다양한 변형의 예가 가능하다.
전술한 예를 통해 각 컬러 공간에서 상관성 정보를 획득하기 위해 사용되는 참조 화소 라인 설정에 관한 다양한 경우를 살펴보았다. 상기 예와 같이 블록의 크기/형태/위치뿐만 아니라 다양한 부/복호화 요소를 고려하여 상관성 정보 획득을 위한 참조 화소 라인 설정이 정해질 수 있다.
다음은 상관성 정보 획득을 위해 비교(또는 참조)되는 영역에 대한 다른 경우를 살펴본다. 상기 비교되는 영역은 현재 컬러 공간의 현재 블록에 인접한 좌, 상, 좌상, 우상, 좌하 등의 위치에 인접한 화소가 대상일 수 있다.
이때, 비교되는 영역은 좌, 상, 좌상, 우상, 좌하 위치의 블록을 모두 포함하여 설정할 수 있다. 또는, 일부 위치의 블록의 조합으로 참조 화소 영역을 구성할 수 있다. 예를 들어, 좌 / 상 / 좌 + 상 / 좌 + 상 + 좌상 / 좌 + 좌하 / 상 + 우상 / 좌 + 좌상 + 좌하 / 상 + 좌상 + 우상 / 좌 + 상 + 우상 / 좌 + 상 + 좌하 등의 인접한 블록의 조합으로 비교되는 영역을 구성할 수 있다.
정리하면, 상관성 정보 획득을 위해 비교되는 영역은 기 설정된 영역으로 구성할 수 있다. 또는, 일부 영역의 다양한 조합으로 구성할 수 있다. 즉, 부/복호화 설정에 따라 상기 비교되는 영역은 고정적이거나 적응적으로 구성될 수 있다.
다음은 현재 컬러 공간의 현재 블록을 중심으로 어떤 방향의 인접한 영역이 참조 영역으로 구성되는 지에 대한 다양한 예를 살펴볼 것이다. 여기서, 다른 컬러 공간의 대응되는 블록에서는 어떤 방향의 인접한 영역이 참조 영역으로 구성되는지는 현재 컬러 블록의 참조 영역 구성에 따라 정해짐을 전제한다. 또한, 기본 참조 영역은 좌, 상 블록으로 구성됨을 전제한다.
일 예로, 블록의 형태(가로/세로 길이 비)에 따라 정해질 수 있다. 상세한 예로, 현재 블록이 가로로 긴 경우 좌, 상, 우상 블록이 참조 영역으로 설정되고, 세로로 긴 경우 좌, 상, 좌하 블록이 참조 영역으로 설정될 수 있다.
이때, 가로/세로 길이 비에 관계없이 일부 블록 형태(직사각)에 상기 내용이 적용될 수 있거나 또는 가로/세로 길이 비가 일정 비율(k:1 또는 1:k. 예로, 2:1, 4:1 등과 같이 k는 2 이상) 이상/초과인 경우에만 적용될 수 있다. 또한, 가로/세로 길이 비에 대한 경계값은 2개 이상 존재하여, 2:1(또는 1:2)인 경우에는 좌, 상, 우상(또는 좌, 상, 좌하) 블록이 참조 영역으로 설정되고, 4:1(또는 1:4)인 경우에는 상, 우상(또는 좌, 좌하) 블록이 참조 영역으로 설정되는 등의 확장이 가능할 수 있다.
일 예로, 블록의 크기에 따라 정해질 수 있다. 상세한 예로, 현재 블록의 크기가 일정 크기(M x N. 예로, 2m x 2n으로 m과 n은 2 ~ 6 과 같은 1 이상 정수) 이상/초과인 경우에 좌, 상 블록이 참조 영역으로 설정되고, 일정 크기 이하/미만인 경우에 좌, 상, 좌상 블록이 참조 영역으로 설정될 수 있다.
이때, 크기 비교를 위한 경계값이 상기 예와 같이 하나 존재할 수 있거나 또는 둘 이상 존재(M1 x N1, M2 x N2 등)하는 등의 적응적인 설정이 가능할 수 있다.
일 예로, 블록의 위치에 따라 정해질 수 있다. 상세한 예로, 현재 블록이 기 설정된 영역(상관성 정보 획득과 관련된 이전 설명에서 유도 가능. 본 예에서 최대 부호화 블록이라 가정)의 내부에 위치할 경우 좌, 상, 좌상, 우상, 좌하 블록이 참조 영역으로 설정되고, 기 설정된 영역의 경계(본 예에서 왼쪽 위 경계라 가정)에 위치할 경우 좌, 상 블록이 참조 영역으로 설정될 수 있다.
다른 예로, 현재 블록이 상기 영역의 일부 경계(본 예에서 위쪽 경계라 가정)에 위치할 경우 일부 경계(위쪽 경계)에 인접한 블록을 제외하고, 상기 영역 내부에 인접한 좌, 좌하 블록이 참조 영역으로 설정될 수 있다. 즉, 좌, 좌하 블록이 참조 영역으로 설정될 수 있다.
상기 예는 연산량, 메모리 측면 등에서 고려될 수 있는 일부 경우이며, 상기 예와 반대되는 경우를 포함한 다양한 변형의 예가 가능하다.
전술한 예를 통해 각 컬러 공간에서 상관성 정보를 획득하기 위해 사용되는 참조 영역 설정에 관한 다양한 경우를 살펴보았다. 상기 예와 같이 블록의 크기/형태/위치뿐만 아니라 다양한 부/복호화 요소를 고려하여 상관성 정보 획득을 위한 참조 영역 설정이 정해질 수 있다.
또한, 상기 비교되는 영역은 현재 컬러 공간의 현재 블록에 인접한 화소가 그 대상이 될 수 있다. 여기서 참조 화소 모두를 상관성 정보를 획득하기 위해 사용할 수 있거나 또는 그 중 일부 화소를 사용할 수 있다.
예를 들어, (도 7의 color M을 기준) 현재 블록이 (a, b) ~ (a+7, b+7)의 화소 범위를 갖는 블록(즉, 8 x 8)일 경우, 상기 비교되는 영역(대응되는 블록은 컬러 포맷에 따라 설명이 유도 가능하므로 생략)은 현재 블록의 좌, 상 블록의 하나의 참조 화소 라인이라고 가정한다.
이때, 상기 비교되는 영역에 (a, b-1) ~ (a+7, b-1)과 (a-1, b) ~ (a-1, b+7)의 범위 내의 모든 화소가 포함될 수 있다. 또는, 상기 범위 중 일부 화소인 (a, b-1), (a+2, b-1), (a+4, b-1), (a+6, b-1)과 (a-1, b), (a-1, b+2), (a-1, b+4), (a-1, b+6)가 포함될 수 있다. 또는, 상기 범위 중 일부 화소인 (a, b-1), (a+4, b-1)과 (a-1, b), (a-1, b+4)가 포함될 수 있다.
상기 예는 상관성 획득을 위해 요구되는 연산량을 줄이기 위한 목적으로 적용 가능할 수 있다. 이미 전술한 많은 예와 함께 상관성 정보 획득을 위한 비교되는 영역의 참조 화소 샘플링에 관한 설정은 블록의 크기/형태/위치 등의 다양한 부/복호화 요소가 고려될 수 있으며, 이전 예로부터 관련 적용에 대한 예는 유도 가능하므로 상세한 설명은 생략한다.
전술한 다양한 예를 통해 상관성 정보 획득에 영향을 주는 다양한 요소(대응되는 화소값 유도, 참조 화소 라인 개수, 참조 영역 방향 설정, 참조 화소 샘플링 등)를 살펴보았다. 상기 예가 단독 또는 혼합되어 상관성 정보 획득에 영향을 주는 다양한 경우의 수가 가능할 수 있다.
상기 설명은 하나의 상관성 정보를 획득하기 위한 사전 설정 과정으로 이해할 수 있다. 또한, 이미 언급한 것과 같이 부/복호화 설정에 따라 하나 이상의 상관성 정보가 지원될 수 있다. 이때, 둘 이상의 상관성 정보는 상기 사전 설정(즉, 상관성 정보 획득에 영향을 주는 요소의 조합)을 둘 이상 둠으로써 지원될 수 있다.
정리하면, 현재 블록의 인접한 영역과 대응되는 블록의 인접한 영역으로부터 상관성 정보에 기반한 파라미터 정보를 유도할 수 있다. 즉, 상관성 정보에 기반하여 적어도 하나의 파라미터(예를 들어, <a1, b1>, <a2, b2>, <a3, b3> 등)가 생성될 수 있으며, 이는 다른 컬러 공간의 복원된 블록의 화소에 곱해지거나 더해지는 값으로 사용될 수 있다.
다음은 컬러 복사 모드에서 적용되는 선형 모델에 관한 설명을 이어간다. 상기 과정을 통해 획득되는 파라미터를 적용하여 다음과 같은 선형 모델에 기반한 예측을 수행할 수 있다.
Figure pat00001
상기 수식에서 pred_sample_C는 현재 컬러 공간의 현재 블록의 예측 화소값을 의미하고, rec_sample_D는 다른 컬러 공간의 대응되는 블록의 복원 화소값을 의미한다. a와 b는 현재 블록의 인접한 영역과 대응되는 블록의 인접한 영역 사이의 regression error를 최소화하여 얻어질 수 있으며, 다음의 수식을 통해 계산될 수 있다.
Figure pat00002
상기 수식에서 D(n)은 대응되는 블록의 인접한 영역을 의미하고, C(n)은 현재 블록의 인접한 영역을 의미하며, N은 현재 블록의 가로 또는 세로 길이에 기반하여 설정되는 값(본 예에서 가로, 세로 중 최소값의 2배라 가정)을 의미한다.
또한, 각 컬러 공간의 인접한 영역의 최소값과 최대값에 기반하여 상관성 정보를 획득하는 직선 모델(Simplified Straight-Line Equation) 등의 다양한 방법이 사용될 수 있다. 이때, 상관성 정보를 구하는 모델은 기 설정된 하나의 모델이 사용될 수 있거나 또는 복수의 모델 중 하나가 선택될 수 있다. 여기서 복수의 모델 중 하나가 선택되는 것의 의미는 상관성 정보에 기반한 파라미터 정보에 대한 부/복호화 요소로 모델 정보가 고려될 수 있음을 의미한다. 즉, 복수의 파라미터가 지원되는 경우에 나머지 상관성 정보 관련 설정은 동일하더라도 상관성 구하는 모델이 다름에 따라 다른 파라미터 정보로 구분될 수 있음을 의미할 수 있다.
일부 컬러 포맷의 경우(4:4:4가 아닌 경우) 현재 블록의 1개 화소는 대응되는 블록의 1개 이상(2개, 4개 등) 화소에 대응될 수 있다. 예를 들어, 4:2:0인 경우 색차 공간의 p[x, y]는 휘도 공간의 q[2x, 2y], q[2x, 2y+1], q[2x+1, 2y], q[2x+1, 2y+1] 등과 대응될 수 있다.
하나의 예측 화소값을 위해 상기 대응되는 복수의 화소 중 기 설정된 하나의 화소의 화소값(또는 예측값) 또는 둘 이상의 화소로부터 하나의 화소값을 유도할 수 있다. 부/복호화 설정에 따라 다양한 경우의 수가 가능할 수 있으며, 이는 상관성 정보 획득하기 위해 대응되는 화소값 유도에 관한 부분에서 관련 설명을 유도할 수 있으므로 상세한 설명은 생략한다.
(컬러 모드)
다른 컬러 공간 내 위치한 영역으로부터 예측 블록 생성을 위한 예측 모드를 획득하는 방법과 관련된 예측 모드가 지원될 수 있다.
예를 들어, 컬러 공간 간의 상관성을 이용하여 예측 블록 생성을 위한 예측 모드를 다른 컬러 공간에서 획득하는 방법에 대한 예측 모드가 그에 대한 예가 될 수 있다. 즉, 컬러 모드는 어떤 특정한 예측 방향이나 예측 방법을 갖는 것이 아니라 기존의 존재하는 예측 방향 및 방법을 사용하되 다른 컬러 공간에 대응되는 블록의 예측 모드에 따라 적응적으로 정해지는 모드일 수 있다.
이때, 블록 분할 설정에 따라 다양한 컬러 모드가 획득되는 경우가 가능할 수 있다.
예를 들어, 일부 컬러 성분(휘도)에 대한 블록 분할 결과에 따라 일부 컬러 성분(색차)에 대한 블록 분할이 묵시적으로 정해지는 설정(즉, 휘도 성분의 블록 분할은 명시적으로 정해지는 경우)에서는 일부 컬러 성분(색차)의 하나의 블록이 일부 컬러 공간(휘도)의 하나의 블록과 대응될 수 있다. 그렇기 때문에 (4:4:4인 경우를 가정. 그 외의 포맷의 경우 가로/세로 길이 비에 따라 본 예에 대한 설명이 유도 가능) 현재 블록(색차)이 (a, b) ~ (a+m, b+n)의 화소 범위를 갖는다면, 이에 대응되는 블록(휘도)의 (a, b) ~ (a+m, b+n)의 화소 범위 내의 어떤 화소 위치를 가리키더라도 하나의 블록을 가리키므로 해당 화소를 포함하는 블록에서 하나의 예측 모드가 획득될 수 있다.
또는, 각 컬러 성분에 따라 개별적인 블록 분할이 지원되는 경우(즉, 각 컬러 공간의 블록 분할이 명시적으로 정해지는 경우)에서는 일부 컬러 성분(색차)의 하나의 블록이 일부 컬러 공간(휘도)의 하나 이상의 블록과 대응될 수 있다. 그렇기 때문에 현재 블록(색차)이 상기 예와 동일한 화소 범위를 갖더라도, 대응되는 블록(휘도)은 블록 분할 결과에 따라 하나 이상의 블록으로 구성될 수 있다. 그래서 현재 블록의 화소 범위 내의 화소 위치에 따라 해당 화소가 가리키는 대응되는 블록에서 다른 예측 모드(즉, 하나 이상의 모드)가 획득될 수도 있다.
만약 색차 성분을 위한 화면내 예측 모드 후보군에서 하나의 컬러 모드를 지원하는 경우, 대응되는 블록의 어떤 위치에서 예측 모드를 가져올 지 설정할 수 있다.
예를 들어, 대응되는 블록의 중앙 - 좌상 - 우상 - 좌하 - 우하 등의 위치에서 예측 모드를 가져올 수 있다. 즉, 상기 순서대로 예측 모드를 가져오되 대응되는 블록이 이용 불가한 경우(예를 들어, 부호화 모드가 Inter 등)에는 그 다음 순서에 해당하는 위치의 예측 모드를 가져올 수 있다. 또는, 상기 위치의 블록들에서 빈도수(2번 이상)가 높은 예측 모드를 가져올 수도 있다.
또는, 복수의 컬러 모드를 지원한다고 할 경우, 상기 우선 순위에 따라 어디서 예측 모드를 가져올 지 설정할 수 있다. 또는, 상기 우선 순위에 따라 일부 예측 모드를 가져오고, 상기 위치의 블록들에서 빈도수가 높은 일부 예측 모드를 가져오는 조합이 가능할 수도 있다. 여기서 상기 우선 순위의 경우 하나의 예이며, 다양한 변형의 예가 가능할 수 있다.
컬러 모드와 컬러 복사 모드는 색차 성분에 지원 가능한 예측 모드일 수 있다. 예를 들어, 수평, 수직, DC, Planar, 대각선 모드 등을 포함하여 색차 성분을 위한 예측 모드 후보군을 구성할 수 있다. 또는, 컬러 모드와 컬러 복사 모드를 포함하여 화면내 예측 모드 후보군을 구성할 수 있다.
즉, 방향성 + 비방향성 + 컬러 모드로 구성하거나 또는 방향성 + 비방향성 + 컬러 복사 모드로 구성할 수 있고, 방향성 + 비방향성 + 컬러 모드 + 컬러 복사 모드로 구성할 수도 있으며, 이 밖의 추가적인 색차 성분을 위한 모드가 포함되어 구성될 수도 있다.
부/복호화 설정에 따라 컬러 모드와 컬러 복사 모드의 지원 여부가 정해질 수 있으며, 이는 묵시적 또는 명시적인 처리가 가능할 수 있다. 또는, 명시적 + 묵시적인 혼합 구성의 처리가 가능할 수 있다. 여기에 컬러 모드와 컬러 복사 모드에 관련된 세부 설정(예를 들어, 지원되는 모드 개수 등)이 포함되어 묵시적 또는 명시적인 처리가 가능할 수 있다.
예를 들어, 상기 관련 정보는 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위로 명시적으로 관련 정보가 포함될 수 있거나 또는 다양한 부/복호화 요소(예를 들어, 영상 타입, 블록의 위치, 블록의 크기, 블록의 형태, 블록의 가로/세로 비 등)에 따라 묵시적으로 정해질 수 있다. 또는, 부/복호화 요소에 따라 일부 조건에는 묵시적으로 정해지거나 또는 일부 조건에는 명시적으로 관련 정보가 발생할 수도 있다.
도 8은 본 발명의 일 실시예에 따른 화면내 예측에 사용되는 참조 화소 구성을 설명하기 위한 예시도이다. 예측 블록의 크기 및 형태(M x N)은 블록 분할부를 통해 획득될 수 있다.
화면내 예측을 위한 최소 블록 및 최대 블록 크기 등으로 정의되는 블록 범위 정보는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에 관련 정보가 포함될 수 있다. 일반적으로 가로와 세로 길이가 특정(예를 들어, 32 x 32, 64 x 64 등)되어 크기 정보가 설정될 수 있으나, 가로와 세로 길이의 곱의 형태로 크기 정보가 설정될 수도 있다. 예를 들어, 최소 블록의 크기는 가로와 세로의 곱이 64일 경우, 4 x 16, 8 x 8, 16 x 4 등이 해당될 수 있다.
또한, 가로와 세로 길이를 특정하여 크기 정보를 설정하거나 곱의 형태로 크기 정보를 설정하는 것이 혼합되어 사용될 수 있다. 예를 들어, 최대 블록의 크기는 가로와 세로 길이의 곱이 4096이고 둘 중 하나의 길이가 갖는 최대값이 64일 경우, 64 x 64가 최대 블록의 크기에 해당될 수 있다.
상기 예와 같이 최소 블록과 최대 블록 크기 정보 외에 블록 분할 정보가 혼합되어 예측 블록의 크기 및 형태가 최종 결정될 수 있다. 본 발명에서는 예측 블록은 가로와 세로 길이의 곱이 s(예를 들어, s는 16, 32 등 2의 배수)보다 크거나 같아야 하며 가로/세로 길이 중 하나가 k(예를 들어, k는 4, 8 등 2의 배수)보다 크거나 같아야 한다. 또한, 블록의 가로와 세로가 각각 v와 w(예를 들어, v와 w는 16, 32, 64 등 2의 배수)보다 작거나 같은 설정 하에 정의될 수 있으나. 이에 한정되지 않고 다양한 블록 범위 설정이 가능할 수 있다.
화면내 예측은 예측 블록 단위로 수행되는 것이 일반적일 수 있으나 블록 분할부의 설정에 따라 부호화 블록, 변환 블록 등의 단위로 수행될 수 있다. 블록 정보를 확인한 후 참조 화소 구성부에서는 현재 블록의 예측에 사용되는 참조 화소를 구성할 수 있다. 이때, 참조 화소는 임시 메모리(예를 들어, 배열<Array>. 1차, 2차 배열 등)를 통해 관리될 수 있으며, 블록의 화면내 예측 과정마다 생성 및 제거되고, 임시 메모리의 크기는 참조 화소의 구성에 따라 결정될 수 있다.
본 예에서는 현재 블록을 중심으로 좌, 상, 좌상, 우상, 좌하 블록이 현재 블록의 예측에 사용되는 경우를 가정하여 설명하지만, 이에 한정되지 않고 다른 구성의 블록 후보군이 현재 블록의 예측에 사용될 수도 있다. 예를 들어, 상기 참조 화소를 위한 이웃 블록의 후보군은 래스터 또는 Z 스캔을 따르는 경우의 일 예일 수 있으며, 스캔 순서에 따라 상기 후보군 중 일부를 제거할 수 있거나 또는 다른 블록 후보군(예를 들어, 우, 하, 우하 블록 등이 추가 구성)을 포함하여 구성될 수 있다.
또한, 일부 예측 모드(컬러 복사 모드)가 지원되는 경우라면 다른 컬러 공간의 일부 영역이 현재 블록의 예측에 사용될 수 있기 때문에 이 또한 참조 화소로 고려할 수 있다. 기존의 참조 화소(현재 블록의 공간적 인접한 영역)과 상기 추가적인 참조 화소를 하나로 관리할 수 있거나 또는 따로 관리(예를 들어, 참조 화소 A와 참조 화소 B. 즉, 임시 메모리가 따로 사용되는 것처럼 참조 화소 메모리도 따로 명명할 수 있음)할 수 있다.
예를 들어, 기본 참조 화소의 임시 메모리는 (하나의 참조 화소 라인 기준) <2 x blk_width + 2 x blk_height + 1>의 크기를 가질 수 있고, 추가적인 참조 화소의 임시 메모리는 (4:4:4인 경우) <blk_width x blk_height>의 크기(4:2:0인 경우에는 blk_width/2 x blk_height/2가 필요)를 가질 수 있다. 상기 임시 메모리 크기는 하나의 예이며 이에 한정되지 않는다.
또한, 상관성 정보를 획득하기 위해 비교(또는 참조)되는 현재 블록과 대응되는 블록의 인접한 영역까지 포함하여 참조 화소로 관리될 수도 있다. 즉, 컬러 복사 모드에 따라 추가적인 참조 화소가 관리될 수 있다는 것을 의미한다.
정리하면, 현재 블록의 인접한 영역이 현재 블록의 화면내 예측을 위한 참조 화소로 포함될 수 있고, 예측 모드에 따라 다른 컬러 공간의 대응되는 블록과 그 인접한 영역까지 참조 화소로 포함될 수 있다. 설명의 편의를 위해 기본 참조 화소 구성인 경우를 중심으로 설명한다.
도 8과 같이 현재 블록의 예측에 사용되는 참조 화소는 좌, 상, 좌상, 우상, 좌하 블록의 인접한 화소(도 8의 Ref_L, Ref_T, Ref_TL, Ref_TR, Ref_BL)로 구성할 수 있다. 이때, 참조 화소는 현재 블록과 가장 인접한 이웃 블록의 화소들(도 8의 a. 이것을 참조 화소 라인으로 표현)로 구성하는 것이 일반적이나 그 외의 화소들(도 8의 b와 그 외의 바깥 라인의 화소들)도 참조 화소에 구성하는 것이 가능할 수 있다.
현재 블록과 인접한 화소는 적어도 하나의 참조 화소 라인으로 분류할 수 있는데, 현재 블록과 가장 인접한 화소는 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 등으로 나눌 수 있다. 즉, 현재 블록의 경계 화소와 인접한 화소 거리에 따라 참조 화소 라인으로 분류할 수 있다.
여기서 지원되는 참조 화소 라인은 N개 이상일 수 있으며, N은 1 내지 5와 같은 1 이상의 정수일 수 있다. 이때, 현재 블록에 최인접한 참조 화소 라인부터 순차적으로 참조 화소 라인 후보군에 포함되는 것이 일반적이나, 이에 한정되지 않는다. 예를 들어, N이 3일 경우 <ref_0, ref_1, ref_2>와 같이 순차적으로 상기 후보군이 구성될 수 있거나 또는 <ref_0, ref_1, ref_3>, <ref_0, ref_2, ref_3>, <ref_1, ref_2, ref_3>와 같이 순차적이지 않거나 최인접한 참조 화소 라인을 제외하는 구성으로 상기 후보군이 구성되는 것 또한 가능할 수 있다.
상기 후보군 내의 모든 참조 화소 라인을 사용하여 예측을 수행하거나 또는 일부 참조 화소 라인(하나 이상)을 사용하여 예측을 수행할 수 있다.
예를 들어, 부/복호화 설정에 따라 복수의 참조 화소 라인 중 하나가 선택되어 해당 참조 화소 라인을 사용하여 화면내 예측을 수행할 수 있다. 또는, 복수의 참조 화소 라인 중 둘 이상이 선택되어 해당 참조 화소 라인을 사용(예를 들어, 각 참조 화소 라인의 데이터에 가중치 평균 등을 적용)하여 화면내 예측을 수행할 수 있다.
여기서 참조 화소 라인 선택은 묵시적 또는 명시적으로 정해질 수 있다. 예를 들어, 묵시적인 경우에는 영상 타입, 컬러 성분, 블록의 크기/형태/위치 등의 요소 중 하나 또는 둘 이상의 조합에 따라 정의되는 부/복호화 설정에 따라 정해지는 것을 의미한다. 또한, 명시적인 경우는 블록 등의 단위에서 참조 화소 라인 선택 정보가 발생할 수 있음을 의미한다.
본 발명에서는 최인접한 참조 화소 라인을 사용하여 화면내 예측을 수행하는 경우를 중심으로 설명하지만, 후술하는 다양한 실시예가 복수의 참조 화소 라인을 사용하는 경우에도 동일하거나 비슷한 적용이 가능함을 이해하여야 한다.
본 발명의 화면내 예측의 참조 화소 구성부는 참조 화소 생성부, 참조 화소 보간부, 참조 화소 필터부 등을 포함할 수 있으며, 상기 구성의 전부 또는 일부를 포함하여 구성할 수 있다.
참조 화소 구성부에서 참조 화소 사용 가능성(Availability)을 확인하여 사용 가능한 참조 화소와 사용 불가한 참조 화소를 분류할 수 있다. 여기서 상기 참조 화소 사용 가능성은 다음의 조건 중 적어도 하나를 만족하는 경우에 사용 불가로 판단한다.
예를 들어, 픽쳐 경계 바깥에 위치하는 경우, 현재 블록과 동일한 분할 단위(예를 들어, 슬라이스, 타일 등과 같이 서로 참조가 불가능한 단위. 단, 참조 가능한 특성을 갖는 분할 단위는 예외)에 속하지 않는 경우, 부/복호화가 완료되지 않은 경우 중 하나라도 만족하는 경우에는 사용 불가로 판단할 수 있다. 즉, 상기 조건을 하나도 만족하지 않는 경우에는 사용 가능으로 판단할 수 있다.
또한, 부/복호화 설정에 의해 참조 화소 사용을 제한할 수 있다. 예를 들어, 상기 조건에 따라 사용 가능으로 판단된 경우라 할지라도 제한된 화면내 예측(예를 들어, constrained_intra_pred_flag)의 수행 여부에 따라 참조 화소 사용이 제한될 수 있다. 제한된 화면내 예측은 통신 환경 등의 외부 요인에 에러 강인한 부/복호화를 수행하고자 할 때 다른 영상으로부터 참조되어 복원된 블록을 참조 화소로 사용을 금지하고자 할 때 수행될 수 있다.
제한된 화면내 예측이 비활성화된 경우(예를 들어, I 영상 타입. 또는 P나 B 영상 타입에서 constrained_intra_pred_flag = 0)에 참조 화소 후보 블록은 모두 사용 가능할 수 있다.
또는, 제한된 화면내 예측이 활성화된 경우(예를 들어, P나 B 영상 타입에서 constrained_intra_pred_flag = 1)에 참조 화소 후보 블록은 부호화 모드(Intra or Inter)에 따라 사용 여부를 판단하는 조건으로 가정할 것이나, 이 외의 다양한 부/복호화 요소에 따라 상기 조건이 정해질 수도 있다.
참조 화소는 하나 이상의 블록으로 구성되어 있기 때문에 상기 참조 화소 가능성을 확인한 후 분류하면 <모두 사용 가능>, <일부 사용 가능>, <모두 사용 불가>와 같이 세 가지 경우로 분류할 수 있다. 모두 사용 가능한 경우를 제외한 나머지 경우에는 사용 불가한 후보 블록 위치의 참조 화소를 채우거나 생성할 수 있다.
참조 화소 후보 블록이 사용 가능한 경우에는 해당 위치의 화소를 현재 블록의 참조 화소 메모리에 포함할 수 있다. 이때, 상기 화소 데이터는 그대로 복사되거나 참조 화소 필터링, 참조 화소 보간 등의 과정을 통해 참조 화소 메모리에 포함할 수 있다. 또한, 참조 화소 후보 블록이 사용 불가한 경우에는 참조 화소 생성 과정을 통해 획득된 화소를 현재 블록의 참조 화소 메모리에 포함할 수 있다.
다음은 다양한 방법을 사용하여 사용 불가한 블록 위치의 참조 화소를 생성하는 예를 나타낸다.
예를 들어, 임의의 화소값을 사용하여 참조 화소를 생성할 수 있다. 여기서 임의의 화소값이란 화소값 범위(예를 들어, 비트 심도에 기초한 화소값 범위 또는 해당 영상 내 화소 분포에 따른 화소값 범위)에 속하는 하나의 화소값(예를 들어, 화소값 범위의 최소값, 최대값, 중앙값 등)일 수 있다. 상세하게는, 참조 화소 후보 블록이 모두 사용 불가한 경우에 적용되는 예일 수 있다.
또는, 영상의 부/복호화가 완료된 영역으로부터 참조 화소를 생성할 수 있다. 상세하게는, 사용 불가한 블록에 인접한 적어도 하나의 사용 가능한 블록으로부터 참조 화소를 생성할 수 있다. 이때, 외삽, 내삽, 복사 등의 방법 중 적어도 하나를 사용할 수 있다.
참조 화소 보간부에서 상기 참조 화소 구성을 완료한 후 참조 화소의 선형 보간을 통해 소수 단위의 참조 화소를 생성할 수 있다. 또는, 후술하는 참조 화소 필터 과정을 수행한 후에 참조 화소 보간 과정을 수행할 수도 있다.
이때, 수평, 수직, 일부 대각선 모드(예를 들어, Diagonal up right, Diagonal down right, Diagonal down left와 같이 수직/수평에 45도 차이의 모드. 도 4에서 2번, 34번, 66번 모드에 대응)와 비방향성 모드, 컬러 복사 모드 등의 경우에는 보간 과정을 수행하지 않으며, 그 외의 모드(다른 대각선 모드)의 경우 보간 과정을 수행할 수 있다.
예측 모드(예를 들어, 예측 모드의 방향성. dy/dx 등)와 참조 화소 및 예측 화소의 위치에 따라 보간이 수행되는 화소 위치(즉, 어느 소수 단위가 보간되는지. 1/2 ~ 1/64 등에서 정해짐)가 정해질 수 있다. 이때, 소수 단위의 정밀도에 상관없이 하나의 필터(예를 들어, 필터 계수나 필터 탭의 길이를 결정하기 위해 사용되는 수학식은 동일한 필터를 가정. 단, 소수 단위의 정밀도<예로, 1/32, 7/32, 19/32>에 따라 계수만 조정되는 필터를 가정)가 적용될 수 있거나 또는 복수의 필터(예를 들어, 필터 계수나 필터 탭의 길이를 결정하기 위해 사용되는 수학식이 구분되는 필터를 가정) 중 하나가 소수 단위에 따라 선택되어 적용될 수 있다.
전자의 경우 소수 단위 화소의 보간을 위해 정수 단위의 화소를 입력으로 사용하는 예일 수 있고, 후자의 경우 단계별로 입력 화소를 달리하는 예(예를 들어, 1/2 단위의 경우 정수 화소 사용. 1/4 단위의 경우 정수와 1/2 단위 화소 사용 등)일 수 있으나, 이에 한정되지 않으며 본 발명에서는 전자인 경우를 중심으로 설명한다.
참조 화소 보간을 위해 고정적인 필터링 또는 적응적인 필터링을 수행할 수 있으며, 이는 부/복호화 설정(예를 들어, 영상 타입, 컬러 성분, 블록의 위치/크기/형태, 블록의 가로/세로 비, 예측 모드 등에서 하나 또는 둘 이상의 조합)에 따라 정해질 수 있다.
고정적인 필터링은 하나의 필터를 사용하여 참조 화소 보간을 수행할 수 있고, 적응적인 필터링은 복수의 필터 중 하나를 사용하여 참조 화소 보간을 수행할 수 있다.
이때, 적응적인 필터링의 경우 부/복호화 설정에 따라 복수의 필터 중 하나가 묵시적으로 정해질 수 있거나 명시적으로 결정될 수 있다. 이때, 필터의 종류는 4-tap DCT-IF 필터, 4-tap 큐빅 필터, 4-tap 가우시안 필터, 6-tap 위너 필터, 8-tap 칼만 필터 등으로 구성될 수 있으며, 컬러 성분에 따라 지원되는 필터 후보군이 달리 정의되는 것(예를 들어, 필터의 종류가 일부는 같거나 다르거나, 그리고 필터 탭의 길이가 짧거나 길거나 등) 또한 가능할 수 있다.
참조 화소 필터부에서 부/복호화 과정을 통해 남아있는 열화를 줄여줌으로써 예측의 정확도를 높이는 목적으로 참조 화소에 필터링을 수행할 수 있으며, 이때 사용되는 필터는 저역 통과 필터(Low-pass Filter)일 수 있으나 이에 한정되지 않는다. 부/복호화 설정(전술한 설명에서 유도 가능)에 따라 필터링의 적용 유무가 결정될 수 있다. 또한, 필터링이 적용되는 경우에는 고정적인 필터링 또는 적응적인 필터링이 적용될 수 있다.
고정적인 필터링은 참조 화소 필터링이 수행되지 않거나 또는 하나의 필터를 사용하여 참조 화소 필터링이 적용되는 것을 의미한다. 적응적인 필터링은 필터링의 적용 여부가 부/복호화 설정에 따라 결정되며 지원되는 필터 종류가 둘 이상인 경우 그 중 하나가 선택될 수 있음을 의미한다.
이때, 필터의 종류는 [1, 2, 1] / 4와 같은 3-tap 필터, [2, 3, 6, 3, 2] / 16과 같은 5-tap 필터 등과 같은 다양한 필터 계수, 필터 탭 길이 등으로 구분되는 복수의 필터가 지원될 수 있다.
상기 참조 화소 구성 단계에서 소개된 참조 화소 보간부와 참조 화소 필터부는 예측의 정확성 향상을 위해 필요한 구성일 수 있다. 상기 두 과정은 독립적으로 수행되는 과정일 수 있으나, 두 과정을 혼합하는 구성 또한 가능할 수 있다.
예측 블록 생성부에서 적어도 하나의 예측 모드에 따라 예측 블록을 생성할 수 있으며, 상기 예측 모드에 기반하여 참조 화소를 사용할 수 있다. 이때, 참조 화소는 예측 모드에 따라 외삽(Extrapolation) 등의 방법(방향성 모드)에 사용될 수 있고, 내삽(Interpolation) 또는 평균(DC) 또는 복사(Copy) 등의 방법(비방향성 모드)에 사용될 수 있다.
도 9는 본 발명의 일 실시예에 따른 화면내 예측의 대상 블록과 인접한 블록을 나타내는 개념도이다. 상세하게는, 도 9의 좌측은 현재 컬러 공간의 현재 블록와 인접한 블록을 나타내고, 우측은 다른 컬러 공간의 대응되는 블록을 나타낸다.
다음을 통해 예측 모드에 따라 사용되는 참조 화소에 대한 설명을 이어간다.
방향성 모드의 경우 수평과 일부 대각선 모드(Diagonal up right) 사이의 모드(도 4에서 2번 내지 17번 모드)는 좌하+좌 블록(도 9에서 Ref_BL, Ref_L), 수평 모드는 좌 블록, 수평과 수직 사이의 모드(도 4에서 19번 내지 49번 모드)는 좌+좌상+상 블록(도 9에서 Ref_L, Ref_TL, Ref_T), 수직 모드는 상 블록(도 9에서 Ref_L), 수직과 일부 대각선 모드(Diagonal down left) 사이의 모드(도 4에서 51번 내지 66번 모드)는 상+우상 블록(도 9에서 Ref_T, Ref_TR)의 참조 화소를 사용할 수 있다.
또한, 비방향성 모드의 경우 좌하, 좌, 좌상, 상, 우상 블록(도 9에서 Ref_BL, Ref_L, Ref_TL, Ref_T, Ref_TR)의 블록 중 하나 이상의 블록에 위치하는 참조 화소를 사용할 수 있다. 예를 들어, 좌, 상, 좌+상, 좌+상+좌상, 좌+상+좌상+우상+좌하 등의 다양한 참조 화소 조합의 형태로 화면내 예측에 사용될 수 있으며, 이는 비방향성 모드(DC, Planar 등)에 따라 결정될 수 있다. 후술하는 예에서 DC 모드는 좌+상 블록, Planar 모드는 좌+상+좌하+우상 블록이 참조 화소로 예측에 사용되는 경우를 가정한다.
또한, 컬러 복사 모드의 경우 다른 컬러 공간의 복원된 블록(도 9에서 Ref_C)을 참조 화소로 사용할 수 있다. 후술하는 예에서 현재 블록과 대응되는 블록이 참조 화소로 예측에 사용되는 경우를 가정한다.
여기서 화면내 예측에 사용되는 참조 화소는 복수의 개념(또는 단위)으로 구분할 수 있다. 예를 들어, 화면내 예측에 사용되는 참조 화소는 제 1 참조 화소와 제 2 참조 화소와 같은 하나 이상의 카테고리로 구분할 수 있다. 본 예에서는 참조 화소를 2개의 카데고리로 분류하는 경우를 가정하여 설명한다.
이때, 제 1 참조 화소는 현재 블록의 예측값 생성에 직접적으로 사용되는 화소일 수 있고, 제 2 참조 화소는 현재 블록의 예측값 생성에 간접적으로 사용되는 화소일 수 있다.
또는, 제 1 참조 화소는 현재 블록의 모든 화소의 예측값 생성에 사용되는 화소일 수 있고, 제 2 참조 화소는 현재 블록의 일부 화소의 예측값 생성에 사용되는 화소일 수 있다.
또는, 제 1 참조 화소는 현재 블록의 1차 예측값 생성에 사용되는 화소일 수 있고, 제 2 참조 화소는 현재 블록의 2차 예측값 생성에 사용되는 화소일 수 있다.
또는, 제 1 참조 화소는 사전 처리(예를 들어, 참조 화소 필터링 등)가 적용되어 획득되는 화소일 수 있고, 제 2 참조 화소는 사전 처리가 적용되지 않고 획득되는 화소일 수 있다.
또는, 제 1 참조 화소는 현재 블록의 예측 방향의 시작점에 위치한 영역(예를 들어, 수직 모드의 경우 상 블록이 예측 방향의 시작점에 해당)에 위치하는 화소일 수 있고, 제 2 참조 화소는 현재 블록의 예측 방향에 무관하게 위치한 영역(예를 들어, 예측 방향의 시작점에 위치할 수 있거나 그렇지 않을 수 있음)에 위치하는 화소일 수 있다.
상기 제 1 참조 화소와 제 2 참조 화소 등은 화면내 예측을 위해 필요한 데이터일 수 있다. 상세하게는, 제 1 참조 화소는 화면내 예측을 위해 기본적으로 요구되는 필수적인 데이터일 수 있고, 그 외 참조 화소는 예측의 정확도 향상을 위해 도움이 되는 선택적인 데이터일 수 있다.
본 발명에서 예측 블록 생성 과정은 제 1 참조 화소를 사용하는 것을 기본으로 할 수 있으나, 이 외의 추가적인 참조 화소를 사용하여 예측을 수행하는 것 또한 가능할 수 있다. 이때, 추가적인 참조 화소를 사용하여 예측을 수행하는 것을 예측 블록(또는 화소) 보정이라 지칭할 수 있다.
본 발명에서 예측 블록 생성부는 예측 블록 보정부를 더 포함할 수 있는 구성일 수 있다. 여기서 예측 블록 보정부란 보정 설정에 따라 예측 블록에 보정을 수행하는 단계라 볼 수 있다. 이때, 보정 설정은 예측 모드, 블록의 정보 등에 의해 결정될 수 있다. 상세하게는, 예측 블록 생성부 이후에 예측 블록 보정부가 후속하는 구성일 수 있으나, 설명의 편의를 위해 예측 블록 생성부에서 예측 블록 보정부를 포함하는 경우로 가정하자.
전술한 예를 통해 설명된 참조 화소는 제 1 참조 화소일 수 있으며, 추가적으로 제 2 참조 화소가 예측 블록 생성에 관여할 수 있다. 다음은 예측 모드에 따라 사용되는 참조 화소에 대한 설명을 이어간다.
방향성 모드의 경우 제 1 참조 화소에 추가로 제 2 참조 화소를 사용할 수 있다. 상세하게는, 수평과 일부 대각선 모드(Diagonal up right) 사이의 모드는 좌상, 상, 우상 블록이 추가로 사용될 수 있고, 수평 모드는 좌하, 좌상, 상, 우상 블록이 추가로 사용될 수 있다. 수평과 수직 사이의 모드는 좌하, 우상 블록이 추가로 사용될 수 있고, 수직 모드는 좌하, 좌, 좌상, 우상 블록이 추가로 사용될 수 있다. 수직과 일부 대각선 모드(Diagonal down left) 사이의 모드는 좌하, 좌, 좌상 블록이 추가로 사용될 수 있다.
또한, 비방향성 모드의 경우 제 1 참조 화소에 추가로 제 2 참조 화소를 사용할 수 있다. 상세하게는, DC 모드는 좌하, 좌상, 우상 블록이 추가로 사용될 수 있고, Planar 모드는 좌상 블록이 추가로 사용될 수 있다.
또한, 컬러 복사 모드의 경우 제 1 참조 화소에 추가로 제 2 참조 화소를 사용할 수 있다. 상세하게는, 현재 블록을 중심으로 좌, 상, 좌상, 우상, 좌하 블록이 추가로 사용될 수 있다. 또는, 다른 컬러 공간의 대응되는 블록을 중심으로 좌, 우, 상, 하, 좌상, 우상, 좌하, 우하 블록이 추가로 사용될 수 있다.
상기 설명에서 현재 블록의 인접한 영역과 대응되는 블록의 인접한 영역은 컬러 복사 모드의 상관성 정보를 획득하기 위해 참조되는 영역으로 현재 블록의 예측에 직접적으로 관여하지 않는 영역일 수 있다. 그러나 보정의 경우 예측의 정확도를 향상시키기 위한 목적으로 수행되는 것으로, 상기 영역이 현재 블록의 예측에 추가로 사용될 수 있음을 의미한다.
예를 들어, 다른 컬러 공간의 데이터도 후처리 필터가 적용되기 전이라면 블록 경계의 열화가 남아있기 때문에 예측 블록의 정확도를 향상시키기 위한 목적으로 보정을 수행할 수 있다. 또는, 현재 블록의 예측 데이터로 획득하더라도 현재 블록의 인접한 영역과 불연속적인 특성이 강하게 나타날 수 있으므로 예측 블록의 정확도를 향상시키기 위한 목적으로 보정을 수행할 수도 있다.
본 발명의 화면내 예측에서 제 2 참조 화소는 부/복호화가 완료된 화소뿐만 아니라 현재 블록 내의 화소(본 예에서 예측 화소)도 포함하여 고려될 수 있다. 즉, 1차 예측값이 2차 예측값 생성에 사용되는 화소일 수 있다. 본 발명에서는 부/복호화가 완료된 화소를 제 2 참조 화소로 고려하는 예를 중심으로 설명하지만, 이에 한정되지 않고 부/복호화가 완료되지 않은 화소를 사용하는 변형의 예 또한 가능할 수 있다.
복수의 참조 화소를 사용하여 예측 블록을 생성 또는 보정하는 것은 기존의 예측 모드의 단점을 보완하기 위한 목적으로 수행되는 경우일 수 있다.
예를 들어, 방향성 모드의 경우 일부 참조 화소(제 1 참조 화소)를 사용하여 해당 블록의 방향성을 반영하여 예측을 수행하고자 하는 목적으로 사용되는 모드이지만, 블록 내의 방향성을 정확하게 반영하지 못할 수 있으며 이는 예측의 정확도가 감소되는 경우가 발생할 수 있다. 이때, 추가적인 참조 화소(제 2 참조 화소)를 사용하여 예측 블록을 생성하거나 보정하는데 사용할 경우 예측의 정확도를 증가시킬 수 있다.
이를 위해 후술하는 예에서는 다양한 참조 화소를 사용하여 예측 블록을 생성하는 경우에 대해 설명할 것이며, 제 1, 2 참조 화소와 같은 용어를 사용하지 않는 경우에도 상기 정의로부터 유도되어 이해될 수 있다.
추가적인 참조 화소를 사용하여 예측 블록을 생성하는 것(또는 예측 화소나 예측 블록 보정)의 지원 여부는 부/복호화 설정에 따라 묵시적으로 정해지거나 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에서 지원 여부에 대한 정보가 명시적으로 포함될 수 있다. 예측 화소 보정이 지원되는 경우 추가적인 참조 화소를 사용하는 것과 관련된 세부 설정(예를 들어, 보정 적용에 대한 정보. <보정 적용이 되는 경우> 보정에 사용되는 참조 화소 정보, 참조 화소에 적용되는 가중치 설정 등)은 부/복호화 설정에 따라 묵시적으로 정해지거나 또는 명시적으로 픽쳐, 슬라이스, 타일, 블록 등의 단위에서 정해질 수 있다. 또는, 부/복호화 설정에 따라 명시적과 묵시적인 경우가 혼합되어 상기 설정이 정해질 수 있다.
이때, 부/복호화 설정은 영상 타입, 컬러 성분, 블록의 크기/형태/위치, 블록의 가로/세로 길이 비, 예측 모드, (예측) 화소의 위치 등에서 하나 또는 둘 이상의 조합에 따라 정의될 수 있다.
후술하는 예에서는 묵시적으로 처리하는 경우를 설명할 것이나 이에 한정되지 않고 다른 변형의 예(명시적인 경우 또는 혼합 사용의 경우)가 가능할 수 있다.
예측 모드에 따라 다양한 방법으로 예측 블록을 생성할 수 있다. 후술하는 예를 통해 예측 모드에 따른 보정에 관한 다양한 경우를 설명한다. 후술하는 예에서는 주 참조 화소(또는 제 1 참조 화소)가 포함되는 영역은 예측 과정에 사용되고 보정 과정에는 그 외의 참조 화소(또는 제 2 참조 화소)를 사용하는 경우를 중심으로 설명할 것이다. 단, 예측 과정(1차 예측)에 사용된 주 참조 화소가 보정 과정(2차 예측)에도 사용되는 경우를 따로 언급하지 않을 뿐 후술하는 예에서 대체 또는 결합되어 구현 가능할 수 있음을 이해하여야 한다.
다음은 수평 모드에 따른 예측에 대해 살펴본다.
수평 모드는 좌 블록을 참조 화소(도 9에서 Ref_L)로 사용하는 경우로 해당 블록의 인접한 화소(L0 내지 L3)를 사용하여 수평 방향으로 예측 블록을 생성할 수 있다.
또한, 예측 방향에 상응(또는 평행)하는 현재 블록과 인접한 참조 화소(도 9에서 Ref_TL, Ref_T, Ref_TR)를 사용하여 예측 블록을 생성(또는 보정)할 수 있다. 상세하게는, 해당 블록의 인접 화소(TL, T0 내지 T3, R0 내지 R3)를 사용하여 예측값을 보정할 수 있다.
예를 들어, 현재 화소(f)와 제 1 참조 화소(L1)에 상응하는 하나 이상의 제 2 참조 화소(TL, T1)을 사용하여 보정할 수 있다. 상세하게는, 현재 화소와 제 1 참조 화소의 거리 차이(f와 L1의 x 성분 차이)에 따른 화소값 변화(f - L1)를 제 2 참조 화소(T1과 TL)로부터 간접적으로 획득(예를 들어, T1 - TL 등)하여 보정을 수행하는 경우일 수 있다.
이때, 상기 제 2 참조 화소들의 거리 차이는 일부 예(T1과 TL)이며, 둘 이상의 화소들의 화소값 변화(또는 기울기 정보)가 적용되는 다양한 경우{예를 들어, (T1 - TL)/(R0 - TL), (T1x2 + T0 + T2) - TL 등}가 가능할 수 있다.
정리하면, 현재 화소(f)의 예측값 생성에 관여하는 참조 화소는 현재 화소 위치(x와 y 성분. 예를 들어, 특정 좌표<도 9에서 a와 같이 현재 블록의 좌상단 좌표. 또는 도 9에서 TL과 같이 좌상단 블록의 좌표 등>를 기준으로 측정되는 x, y 성분값)와 예측 모드에 따라 기 설정된 하나 이상의 화소(L1, T1, TL)가 포함될 수 있다. 이때, 각 참조 화소에 적용되는 가중치는 현재 화소의 위치와 예측 모드뿐만 아니라 다양한 부/복호화 요소가 고려될 수 있으며, 이에 대한 부분은 후술한다.
수직 모드의 경우 상기 수평 모드의 예측 방법에 방향만 달리 적용하여 유도할 수 있기 때문에 상세한 설명은 생략한다.
다음은 일부 대각선 모드(Diagonal up right)에 따른 예측에 대해 살펴본다. 본 예의 대각선 모드는 도 4의 2번 내지 17번 모드와 같이 왼쪽 아래를 예측의 시작점으로 삼아 오른쪽 위로 향하는 방향성 모드를 의미하며, 설명의 편의를 위해 2번 모드인 경우를 가정한다. 본 예의 대각선 모드뿐만 아니라 다른 대각선 모드(Diagonal down left, Diagonal down right)에서도 정수 단위의 화소만으로 예측 및 보정이 수행되는 경우를 중심으로 설명할 것이다.
대각선 모드는 좌, 좌하 블록을 참조 화소(도 9에서 Ref_L, Ref_BL)로 사용하는 경우로 해당 블록의 인접한 화소(L0 내지 L3, B0 내지 B3)을 사용하여 대각선 방향으로 예측 블록을 생성할 수 있다.
또한, 예측 방향에 상응(또는 반전)하는 현재 블록과 인접한 참조 화소(도 9에서 Ref_T, Ref_TR)를 사용하여 예측 블록을 생성할 수 있다. 상세하게는, 해당 블록의 인접한 화소(T0 내지 T3, R0 내지 R3)을 사용하여 예측값을 보정할 수 있다.
예를 들어, 현재 화소(f)와 제 1 참조 화소(L3)에 상응하는 하나 이상의 제 2 참조 화소(T3)를 사용하여 보정할 수 있다. 상세하게는, 제 1 참조 화소(L3)와 제 2 참조 화소(T3)의 선형 보간으로 인해 획득되는 화소값{예를 들어, L3 x w + T3 x (1 - w) 등. 여기서 w는 보간 위치에 따른 가중치}으로 현재 화소를 추정하여 보정을 수행하는 경우일 수 있다.
이때, 상기 예는 보정에 사용되는 제 2 참조 화소가 하나인 경우이며, 둘 이상의 제 2 참조 화소가 사용되는 다양한 경우가 가능할 수 있다. 예를 들어, 제 1 참조 화소에 대응되는 제 2 참조 화소(T3) 외에 추가적인 제 2 참조 화소(T2, R0)를 사용하여 제 2 참조 화소를 보정{예를 들어, T2*. T2*는 (T3 x 2 + T2 + R0) 등}한 후 현재 화소 보정에 사용될 수 있다.
복수의 제 2 참조 화소를 사용하는 것은 보정에 직접 사용되는 제 2 참조 화소에 포함된 양자화 에러 등을 제거하기 위한 목적으로 보정 전에 인접한 화소와 함께 필터링(예를 들어, 저역 통과 필터 등)을 수행하는 것으로 이해할 수 있다. 이때, 제 1 참조 화소는 참조 화소 필터링 등의 이전 화면내 예측 과정(또는 단계)에서 비슷한 동작이 수행된 경우임을 가정하지만, 그렇지 않을 경우 제 1 참조 화소 또한 하나 이상의 화소가 사용될 수 있음을 이해하여야 한다.
정리하면, 현재 화소(f)의 예측값 생성에 관여하는 참조 화소는 현재 화소 위치와 예측 모드 등에 따라 기 설정된 하나 이상의 화소(L3, T3)가 포함될 수 있다. 이때, 각 참조 화소에 적용되는 가중치는 후술한다.
전술한 예에서 화면내 예측에 사용되는 참조 화소(제 1, 제 2 참조 화소 모두)는 정수 단위의 화소인 예측 모드에 관한 경우이다. 그러나 예측 모드의 방향성(예를 들어, 도 4의 3번 모드 등)에 따라 정수 단위 화소뿐만 아니라 소수 단위 화소가 예측에 사용될 수 있다.
본 예는 참조 화소 보간부를 통해 제 1 참조 화소는 소수 단위의 화소까지 참조 화소 메모리에 구성된 경우를 전제한다. 제 2 참조 화소 또한 참조 화소 보간부를 통해 구성된 참조 화소 메모리로부터 획득 가능한 경우라면 제 2 참조 화소는 제 1 참조 화소에 상응하는 위치의 하나 이상의 정수 단위 화소 또는 하나 이상의 소수 단위 화소를 획득할 수 있다.
만약 참조 화소 보간부에서 예측 방향에 상응하는 곳의 소수 단위 참조 화소는 메모리에 구성하지 않을 경우, 제 2 참조 화소의 보간 과정이 요구될 수 있다.
예를 들어, 도 4에서 3번 예측 모드의 경우 현재 화소(f)에 사용되는 제 1 참조 화소는 소수 단위이며, 2개 이상의 참조 화소(L2와 L3. 또는 L1와 L2와 L3와 B0 등) 사이의 보간된 화소값{예를 들어, L2 x w + L3 x (1 - w). 여기서 w는 보간 위치에 따른 가중치}을 가질 수 있다. 이에 상응하는 제 2 참조 화소는 역시 소수 단위이며, 2개의 정수 단위 참조 화소(T3와 R0) 사이의 보간된 화소값을 가질 수 있다.
상기 예와 같은 제 2 참조 화소의 보간은 연산량 증가로 이어질 수 있기 때문에 다음과 같은 방법을 통해 제 2 참조 화소를 대체 획득할 수도 있다.
예를 들어, 제 1 참조 화소(L2와 L3 사이)에 상응하는 제 2 참조 화소(T3와 R0 사이)는 인접한 정수 단위 화소(T3, R0) 중 하나로 대체할 수 있다. 상세하게는, 제 2 참조 화소와 가까운 정수 단위 화소로 대체할 수 있다. 또는, 둘 이상의 인접한 정수 단위의 화소(T3와 R0. 또는 T2와 T3와 R0, T3와 R0와 R1 등)에 가중치를 할당할 수 있다. 상세하게는, 제 2 참조 화소에 가까운 정수 단위 화소에 더 높은 가중치를 할당할 수 있다. 본 예는 다른 대각선 모드에도 적용 가능한 설명이므로 후술하는 예에서는 상세한 설명은 생략한다.
일부 대각선 모드(Diagonal down left)의 경우 상기 예의 대각선 모드(Diagonal up right)의 예측 방법에 방향만 달리 적용하여 유도할 수 있기 때문에 상세한 설명은 생략한다.
다음은 일부 대각선 모드(Diagonal down right)에 따른 예측에 대해 살펴본다. 본 예의 대각선 모드는 도 4의 19번 내지 49번 모드와 같이 왼쪽 위를 예측의 시작점으로 삼아 오른쪽 아래로 향하는 방향성 모드를 의미하며, 설명의 편의를 위해 34번 모드인 경우를 가정한다.
대각선 모드는 좌, 좌상, 상 블록을 참조 화소(도 9에서 Ref_L, Ref_TL, Ref_T)로 사용하는 경우로 해당 블록의 인접한 화소(TL, L0 내지 L3, T0 내지 T3)을 사용하여 대각선 방향으로 예측 블록을 생성할 수 있다.
또한, 예측 방향에 상응(또는 직교)하는 현재 블록과 인접한 참조 화소(도 9에서 Ref_BL, Ref_TR)를 사용하여 예측 블록을 생성할 수 있다. 상세하게는, 해당 블록의 인접한 화소(B0 내지 B3, R0 내지 R3)을 사용하여 예측값을 보정할 수 있다.
예를 들어, 현재 화소(k)와 제 1 참조 화소(TL)에 상응하는 하나 이상의 제 2 참조 화소(B1, R1)을 사용하여 보정할 수 있다. 상세하게는, 제 2 참조 화소(B1과 R1) 간의 선형 보간으로 인해 획득되는 화소값{예를 들어, B1 x w + R1 x (1 - w) 등. 여기서 w는 보간 위치에 따른 가중치}으로 현재 화소를 추정하여 보정을 수행하는 경우일 수 있다.
이때, 상기 예는 보정에 사용되는 제 2 참조 화소 간의 보간값이 하나인 경우이며, 둘 이상의 보간값을 사용하여 보정을 수행하는 다양한 경우가 가능할 수 있다. 예를 들어, 현재 화소(k)와 예측 방향에 직교하지 않지만 현재 화소를 중심으로 서로 상응(또는 대칭)하는 참조 화소(예를 들어, B0와 R1 또는 B3와 T3 등) 간의 선형 보간이 추가로 수행될 수 있다. 즉, 현재 화소에 예측에 영향을 주는 참조 화소는 제 1 참조 화소(TL)과 제 2 참조 화소(B1과 R1, B0과 R1, B3와 T3 등)이 해당하며, 이 중 제 2 참조 화소의 일부(B1와 R1, B0와 R1, B3와 T3)는 현재 화소를 중심으로 서로 대칭하는 곳에 위치할 수 있다.
정리하면, 현재 화소(k)의 예측값 생성에 관여하는 참조 화소는 현재 화소 위치와 예측 모드 등에 따라 기 설정된 하나 이상의 화소(B1, R1)가 포함될 수 있다. 이때, 참조 화소에 적용되는 가중치는 후술한다.
다음은 비방향성 모드에 따른 예측에 대해 살펴본다.
DC 모드는 좌, 상 블록을 참조 화소(도 9에서 Ref_L, Ref_T)로 사용하는 경우로 해당 블록의 인접한 화소를 사용하여 기 설정된 값(예를 들어, 평균 등)을 획득한 후 예측 블록을 생성할 수 있으나 이에 한정되지 않는다.
또한, 현재 블록과 인접한 추가적인 참조 화소(도 9에서 Ref_TL, Ref_BL, Ref_TR)를 사용하여 예측 블록을 생성할 수 있다. 상세하게는, 해당 블록의 인접 화소(TL, B0 내지 B3, R0 내지 R3)를 사용하여 예측값을 보정할 수 있다.
예를 들어, 현재 화소에 상응(또는 인접)하는 하나 이상의 참조 화소(제 1, 제 2 참조 화소)를 사용하여 보정할 수 있다. 상세하게는, 일부 현재 화소(g)와 최인접한 하나의 제 1 참조 화소(T2)를 사용하여 보정할 수 있고, 일부 현재 화소(f)와 최인접한 둘 이상의 제 1 참조 화소(L1, T1)을 사용하여 보정할 수 있고, 일부 현재 화소(b)와 인접한 둘 이상의 제 1 참조 화소(T0, T1, T2)를 사용하여 보정할 수 있고, 일부 현재 화소(a)와 인접한 하나 이상의 제 1 참조 화소(L0, T0)와 하나의 제 2 참조 화소(TL)를 사용하여 보정할 수 있다.
한편, Planar 모드는 좌, 우, 상, 하 블록을 통한 선형 보간으로 예측값이 생성되는 모드로, 이 중 좌, 상 블록(도 9에서 Ref_L, Ref_T)은 해당 블록의 인접한 화소(L0 내지 L3, T0 내지 T3)를 참조 화소로 사용할 수 있다. 한편, 우, 하 블록은 이용 불가한 위치로 기존 참조 화소 영역(도 9의 Ref_TL, Ref_T, Ref_TR, Ref_L, Ref_BL)에서 획득되어 해당 위치의 참조 화소를 구성할 수 있다.
예를 들어, 우, 하 블록은 각각 인접한 일부 영역(Ref_TR, Ref_BL)의 데이터를 그대로 채워넣거나 유도(예를 들어, 우 블록은 R0, R1 중 하나의 화소를 그대로 복사하여 채우거나 또는 R0, R1 등에 필터링을 적용하여 획득된 값을 채우는 등의 방법 사용)될 수 있고, 둘 이상 영역의 데이터로부터 유도(예를 들어, Ref_TR과 Ref_BL의 데이터를 사용하여 보간 등을 적용)하여 채워넣을 수 있다. 또는, 기존 일부 영역(Ref_TL, Ref_T, Ref_L)의 데이터를 그대로 채워넣거나 또는 해당 데이터로부터 유도(예를 들어, Ref_TL, Ref_T, Ref_L에 위치하는 하나의 화소 또는 둘 이상의 화소의 가중치 평균을 현재 블록의 우하 블록 위치에 채워 넣고 이와 Ref_TR, Ref_BL의 데이터와 보간 등을 적용)하여 채워넣을 수 있다.
상기 과정을 통해 좌, 우, 상, 하 블록을 참조 화소(도 9에서 Ref_T, Ref_L, Ref_TR, Ref_BL)로 사용하여 보간 과정을 통해 예측 블록을 생성할 수 있다. 이때, 보간 과정은 수직과 수평 방향으로 1차 보간이 수행될 수 있으며, 1차 보간값에 가중치 평균 등을 적용하여 최종 예측값을 획득할 수 있으나 이에 한정되지 않는다.
또한, 현재 블록과 인접한 추가적인 참조 화소(도 9에서 Ref_TL)를 사용하여 예측 블록을 생성할 수 있다. 상세하게는, 해당 블록의 인접한 화소(TL)를 사용하여 예측값을 보정할 수 있다.
예를 들어, 현재 화소(f)에 상응하는 하나 이상의 참조 화소(제 1, 제 2 참조 화소)를 사용하여 보정할 수 있다.
상세하게는, 현재 화소에 상응하는 참조 화소(T1)을 가상의 화소로 가정하여 수평 방향으로 보간(TL과 R0를 사용)한 후 획득되는 보간값을 해당 참조 화소(T1)와 비교하여 현재 화소의 수평 방향에 따른 1차 보간값을 보정할 수 있다.
또한, 현재 화소에 상응하는 참조 화소(L1)을 가상의 화소로 가정하여 수직 방향으로 보간(TL과 B0를 사용)한 후 획득되는 보간값을 해당 참조 화소(L1)과 비교하여 현재 화소의 수직 방향에 따른 1차 보간값을 보정할 수 있다.
상기 보정된 1차 보간값을 사용하여 최종 예측값을 획득할 수 있다. 즉, 상기 참조 화소를 가상의 화소로 가정한 후 획득되는 값을 통해 현재 블록의 수평, 수직 방향에 따른 보간으로 획득되는 최종 예측값을 보정하는 효과를 가져올 수 있다.
정리하면, 현재 화소(f)의 예측값 생성에 관여하는 참조 화소는 현재 화소와 예측 모드 등에 따라 기 설정된 하나 이상의 화소(TL, T1, L1, R0, B0)가 포함될 수 있다. 이때, 각 참조 화소에 적용되는 가중치는 후술한다.
다음은 컬러 복사 모드에 따른 예측에 대해 살펴본다.
컬러 복사 모드는 다른 컬러 공간의 대응되는 블록을 참조 화소(도 9에서 Ref_C)로 사용하는 경우로 해당 블록 내의 화소를 사용하여 예측 블록을 생성할 수 있다.
또한, 현재 컬러 공간의 인접한 참조 화소(도 9에서 Ref_TL, Ref_T, Ref_TR, Ref_L, Ref_BL)를 사용하여 예측 블록을 생성할 수 있다. 상세하게는, 해당 블록의 인접한 화소(Tl, T0 내지 T3, R0 내지 R3, L0 내지 L3, B0 내지 B3)를 사용하여 예측값을 보정할 수 있다.
컬러 복사 모드의 경우 전술한 예측 모드와 예측 방법에서의 차이가 존재할 뿐, 동일하거나 비슷한 방법으로 참조 화소를 사용하여 예측 블록을 생성(또는 보정)할 수 있다. 후술하는 예에서 언급되지 않은 내용이라도 전술한 다른 예측 모드의 보정에 관한 다양한 예가 컬러 복사 모드에도 동일하거나 비슷하게 적용 또는 유도 가능함을 이해하여야 한다.
예를 들어, 현재 화소에 상응하는 하나 이상의 제 2 참조 화소를 사용하여 보정할 수 있다. 상세하게는, 현재 화소에 인접한 제 2 참조 화소를 사용할 수 있는데, 현재 화소의 x 성분 또는 y 성분이 동일하거나 비슷한 참조 화소를 보정에 사용할 수 있다. 현재 화소가 k에 위치할 경우 <T2>, <L2>, <T2, L2>, <T1, T2, T3>, <L1, L2, L3>, <T1, T2, T3, L1, L2, L3> 등의 참조 화소가 보정에 사용될 수 있다.
또는, 현재 화소를 중심으로 수평, 수직, 대각선 방향(Diagonal down right, Diagonal down left, Diagoanl up right 등)에서 하나 이상의 방향에 위치한 참조 화소(z개. z는 1, 2, 3 등의 정수. 각 방향에서 참조되는 화소가 z개일 수 있거나 또는 전체 방향에서 참조되는 화소가 z개일 수 있음)를 보정에 사용할 수 있다. 상세하게는, 현재 화소가 c에 위치할 경우 <T2>, <T1, T2, T3> 등과 같이 수직 방향으로 인접한 참조 화소가 보정에 사용될 수 있고, 현재 화소가 m에 위치할 경우 <L3>, <L3, B0> 등과 같이 수평 방향으로 인접한 참조 화소가 보정에 사용될 수 있으며, 현재 화소가 j에 위치할 경우 <T1, L2>, <T0, T1, T2, L1, L2, L3> 등과 같이 수평, 수직 방향으로 인접한 참조 화소가 보정에 사용될 수 있다. 또한, 현재 화소가 k에 위치할 경우 <R0>, <B0>, <TL>, <R0, B0>, <TL, R0, B0> 등과 같이 하나 이상의 대각선 방향으로 인접한 참조 화소가 보정에 사용될 수 있다.
정리하면, 현재 화소(f)의 예측값 생성에 관여하는 참조 화소는 현재 화소와 예측 모드 등에 따라 기 설정된 하나 이상의 화소(ff, T1, L1, TL)가 포함될 수 있다. 이때, 각 참조 화소에 적용되는 가중치는 후술한다.
상기 예를 통해 예측 모드에 따라 다양한 참조 화소를 사용하여 예측을 수행하는 경우를 살펴보았다. 상기 예는 보정이 적용되는 경우를 가정하여 설명하였으나, 부/복호화 설정에 따라 현재 블록의 보정 여부가 정해질 수 있다.
또한, 상기 예는 (보정이 적용되는 경우) 보정 대상이 되는 화소에 제한이 없는 경우를 가정하여 설명하였으나, 부/복호화 설정에 따라 현재 블록 내의 모든 화소 또는 일부 화소에 보정이 수행될 수 있다.
이때, 일부 화소에 한정되는 경우 해당 화소는 낱개 단위로 존재할 수 있거나 또는 수직/수평/대각선과 같은 라인 단위으로 존재할 수 있거나 또는 서브 블록 단위 등으로 존재할 수 있다. 예를 들어, 도 9에서 보정 대상이 a, b, c와 같은 화소에 한정될 수 있고, a 내지 d 또는 a, e, i 등와 같이 행, 열 단위의 화소(4 x 1, 1 x 3)에 한정될 수 있고, a 내지 c 그리고 e 내지 g 등과 같이 사각형 단위의 화소(3 x 2)에 한정될 수 있다. 설명의 편의를 위해 보정 대상 화소가 일부에 한정될 경우 라인 단위로 보정이 적용되는 화소가 정해지는 경우를 중심으로 설명한다.
또한, 상기 예는 예측값에 영향을 주는 요소인 참조 화소의 개수, 위치 등이 고정적인 경우를 설명하였으나, 부/복호화 설정에 따라 참조 화소 설정이 정해질 수도 있다. 또한, 상기 예는 예측값에 영향을 주는 각 참조 화소에 적용되는 가중치 설정에 대한 간략한 설명을 하였으나, 부/복호화 설정에 따라 참조 화소에 관한 가중치 설정이 정해질 수 있다.
전술한 부/복호화 설정은 영상 타입, 컬러 성분, 예측 모드, 블록의 크기/형태/위치, 블록의 가로/세로 비, 블록 내 화소의 위치 등에서 하나 또는 둘 이상의 조합에 따라 정의될 수 있다.
상기 설명은 화면내 예측(또는 보정)에 관한 세부 설정이 묵시적으로 정해지는 경우로 언급하였으나 명시적으로 결정되는 사항일 수 있으며, 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위에서 관련 정보를 포함할 수 있다.
도 10은 본 발명의 일 실시예에 따른 영상 부호화 방법의 구현 예를 설명하기 위한 순서도이다. 상세하게는, 화면내 예측(제 1 참조 화소 사용)과 보정 과정(제 1 참조 화소와 제 2 참조 화소 사용)이 분리되는 경우를 가정한 순서도를 의미한다. 본 예에서 예측 블록의 크기는 전술한 블록 분할부를 통해 M x N 크기의 블록이 획득됨을 전제한다.
최적의 예측 모드를 선정하기 위한 목적으로 예측 모드 후보군 중 하나를 후보 예측 모드로 설정한다(S1010). 일반적으로 컬러 성분에 따라 예측 모드 후보군의 구성은 다를 수 있으며, 각 컬러 성분에서는 고정적인 하나의 예측 모드 후보군 설정이 가능할 수 있지만, 이에 한정되지 않고 다양한 후보군 구성이 가능할 수 있다.
상기 과정을 통해 선정된 후보 예측 모드에 따라 화면내 예측을 수행하여 예측 블록을 생성한다(S1020). 예측 블록 생성에 대한 예는 전술하였으므로 이에 대한 설명은 생략한다.
현재 블록의 크기와 후보 예측 모드에 따라 화면내 예측에 관한 보정 설정을 결정한다(S1030). 본 예에서 보정 설정을 위해 고려되는 부호화 요소는 현재 블록의 크기와 예측 모드인 경우를 가정하지만, 다양한 부/복호화 요소가 고려되어 보정 설정이 정해질 수 있음을 이미 언급하였다.
결정된 보정 설정에 따라 예측 블록에 대한 보정 과정이 수행된다(S1040). 이때, 보정 설정은 보정의 수행 여부뿐만 아니라 보정이 수행될 경우 참조 화소의 위치와 개수, 각 참조 화소의 가중치, 그리고 보정 대상 화소 등을 포함할 수 있다.
예측 모드의 후보별 영상 데이터의 부호화 비용을 고려하여 최적의 예측 모드를 선정한다(S1050). 그리고 결정된 최적의 예측 모드로 부호화된 영상 데이터와 예측 모드에 대한 정보를 포함하는 비트스트림을 생성한다(S1060).
이때, 상기 영상 데이터는 현재 블록의 잔차 성분에 관한 데이터를 포함할 수 있으며, 예측 모드 정보 외에 현재 블록의 크기, 형태에 관한 정보(예를 들어, 블록 분할 정보 등)가 포함될 수 있다. 상기 잔차 성분에 관한 데이터는 잔차 성분의 스캔 정보, 기 설정된 블록(현재 블록 또는 현재 블록의 서브 블록)에 0이 아닌 잔차 계수 존재 여부, 잔차 계수가 0인지 여부, 잔차 계수의 절대값, 부호 정보 등을 포함할 수 있다.
도 11은 본 발명의 일 실시예에 따른 영상 복호화 방법의 구현 예를 설명하기 위한 순서도이다.
비트스트림으로부터 추출되는 영상 데이터와 예측 모드에 대한 정보를 복원한다(S1110). 그리고 복원된 예측 모드에 따라 화면내 에측을 수행하여 예측 블록을 생성한다(S1120). 현재 블록의 크기와 복원된 예측 모드에 따라 화면내 예측에 관한 보정 설정을 결정한다(S1130). 상기 과정을 통해 결정된 보정 설정에 따라 예측 블록을 보정한다(S1140). 복원된 영상 데이터와 예측 블록을 가산하여 현재 블록을 복원한다(S1150). 상기 복호화 방법은 일부 구성(예를 들어, 최적의 예측 모드 선정 등)을 제외하고 부호화 방법으로부터 상세한 설명을 유도할 수 있으므로, 후술하는 예에서는 부호화 방법을 중심으로 전개할 것이다.
다음을 통해 화면내 예측에 관한 세부 설정에 관한 설명을 이어간다. 예측 블록의 보정 수행 여부에 관해 다양한 부/복호화 요소가 고려될 수 있다. 다음을 통해 보정 수행 여부에 영향을 주는 요소들에 대한 상세한 예를 살펴본다.
일 예(1)로, 블록의 크기에 따라 보정 수행 여부가 정해질 수 있다. 블록의 크기가 작다는 것은 해당 블록과 인접한 영역이 하나의 블록으로 예측되기 어려워 블록 분할이 수행된 경우일 수 있다. 그렇기 때문에 현재 블록과 인접한 영역 간의 영상 특성이 다를 가능성이 높아 인접한 화소로 구성되는 참조 화소를 사용하여 예측 외에 보정을 추가적으로 수행하는 것은 예측의 정확도에 좋지 않은 영향을 줄 수 있다. 물론, 위와 같은 상황이 항상 발생하는 것은 아닐 수 있으며, 그 반대되는 경우 또한 발생 가능한 상황일 수 있다. 그리고 명시적으로 보정 수행 여부를 결정하는 상황이라면 위의 경우를 고려하지 않을 수 있다. 다만, 본 예를 포함하여 후술하는 예에서는 묵시적으로 보정 설정이 정해지는 경우를 중심으로 설명할 것이기 때문에 이를 고려하여 설명하기로 한다.
블록의 크기가 일정 크기(M x N. 예로, 2m x 2n으로 m과 n은 2 ~ 6같은 1 이상 정수) 이상/초과인 경우에 보정을 수행할 수 있고, 일정 크기 이하/미만인 경우에 보정을 수행할 수 없다. 이때, 블록의 크기에 관한 경계값은 하나 이상 존재할 수 있다.
예를 들어, 16 x 16 미만의 블록에서는 보정을 수행하지 않고, 16 x 16 이상의 블록에서는 보정을 수행할 수 있다. 여기에 명시적인 경우가 혼합되는 구성 또한 가능할 수 있다.
예를 들어, 8 x 8 이하의 블록에서는 묵시적으로 보정을 수행하지 않고, 64 x 64 이상의 블록에서는 묵시적으로 보정을 수행할 수 있으며, 8 x 8 초과 내지 64 x 64 미만의 블록에서는 명시적으로 보정 수행 여부를 결정할 수 있다.
일 예(2)로, 블록의 형태에 따라 보정 수행 여부가 정해질 수 있다. 본 발명에서 블록 분할은 바이너리 또는 터너리 트리 분할을 통해 직사각 형태의 블록(예를 들어, 64 x 8 등)이 획득될 수 있다. 이 경우 인접한 블록 또한 가로/세로 길이 비가 해당 블록과 비슷할 확률이 높으며 이러한 인접한 블록 내의 화소를 사용하여 예측 외에 추가적으로 보정을 수행하는 것 역시 예측의 정확도를 부정적인 영향을 줄 수 있다.
블록의 형태가 직사각이며 가로/세로 길이 비가 일정 비율(k:1 또는 1:k. k는 2, 3, 4 등의 1 이상의 정수) 이상/초과인 경우에 보정을 수행할 수 있고, 일정 크기 이하/미만인 경우에 보정을 수행할 수 없다. 이때, 블록의 가로/세로 길이 비에 관한 경계값은 하나 이상 존재할 수 있다.
예를 들어, 16 x 16나 32 x 64와 같이 가로/세로 길이 비가 4:1 또는 1:4 미만인 블록에서는 보정을 수행하지 않고, 8 x 32나 64 x 16와 같이 가로/세로 길이 비가 4:1 또는 1:4 이상인 블록에서는 보정을 수행할 수 있다. 여기에 명시적인 경우가 혼합되는 구성 또한 가능할 수 있다.
예를 들어, 16 x 16과 같은 정사각 형태(즉, 1:1)인 블록에서는 묵시적으로 보정을 수행하고, 64 x 8과 같은 가로/세로 길이 비가 4:1 또는 1:4 이상인 블록에서는 묵시적으로 보정을 수행하지 않으며, 직사각 형태이며 4:1 또는 1:4 미만인 블록에서는 명시적으로 보정 수행 여부를 결정할 수 있다.
일 예(3)로, 예측 모드에 따라 보정 수행 여부가 정해질 수 있다. 보정을 적용하는 것은 예측의 정확도를 향상시키기 위한 목적일 수 있다. 그렇기 때문에 기존 예측 과정에서 보완하지 못한 예측 블록의 방향성 특성을 활용하고자 하는 것인데, 일부 예측 모드에서는 이를 활용하기 어려운 예측 모드(또는 방법)을 가질 수 있다. 이것 또한 명시적인 경우에는 다른 이야기가 될 수 있으나 본 예에서도 묵시적인 경우를 중심으로 설명하겠다. 보정이 수행(또는 허용)되는 예측 모드는 다양한 조합으로 구성이 가능할 수 있다.
예를 들어, 방향성 모드의 전부 또는 일부에 보정을 수행할 수 있으며, 수직, 수평, 대각선 모드(도 4에서 2번, 34번, 66번 모드) 등이 보정 가능 모드에 포함될 수 있다. 상세하게는, <수직+수평>, <수직+수평+34번>, <수직+수평+2번+66번>, <수직+수평+2번+34번+66번> 등과 같은 구성이 가능할 수 있다.
또한, 일부 예측 모드(수직, 수평, 대각선 모드 등)를 기준으로 인접한 일정 범위(예를 들어, a 모드일 경우 좌측으로 m개, 우측으로 n개를 포함. 이때, m과 n은 1, 2, 3 등과 같은 1 이상 정수) 내의 예측 모드에 보정을 수행할 수 있다. 상세한 예로, 수직 모드(50번)의 경우 48, 49, 51, 52번 모드(m과 n이 2)에 보정을 수행할 수 있다.
또는, 비방향성 모드의 전부 또는 일부에 보정을 수행할 수 있으며, 컬러 복사 모드의 전부 또는 일부에 보정을 수행할 수 있다.
정리하면, 예측 모드 후보군에서 다양한 조합(방향성 모드 일부 + 비방향성 모드, 방향성 모드 일부 + 컬러 복사 모드, 방향성 일부 + 비방향성 모드 + 컬러 복사 모드 일부 등)으로 보정 대상이 되는 예측 모드를 분류할 수 있으며, 예측 모드가 분류된 모드 중 하나일 경우 보정을 수행할 수 있다. 또한, 여기에 명시적인 경우가 혼합되는 구성 또한 가능할 수 있다.
예를 들어, 일부 예측 모드(본 예에서 Diagonal down right를 포함하여 이와 비슷한 방향성을 갖는 모드)를 갖는 블록에서는 보정을 수행하지 않고, 일부 예측 모드(본 예에서 비방향성 모드, 컬러 복사 모드, 수평, 수직 모드를 포함하여 이와 비슷한 방향성을 갖는 모드)를 갖는 블록에서는 보정을 수행할 수 있으며, 일부 예측 모드(본 예에서 Diagonal down left, Diagonal up right를 포함하여 이와 비슷한 방향성을 갖는 모드)에서는 명시적으로 보정 수행 여부를 결정할 수 있다.
컬러 복사 모드의 경우 하나 이상의 상관성 정보가 획득될 수 있음을 전술하였고, 이는 복수의 컬러 복사 모드가 지원됨을 의미한다. 즉, 상관성 정보 획득을 위한 세부 설정의 차이로 복수의 컬러 복사 모드가 지원될 수 있다는 것을 의미한다. 이때, 컬러 복사 모드의 설정(즉, 상관성 정보를 어떻게 획득하는가 등)에 따라 보정 수행 여부가 정해질 수 있다.
도 12는 본 발명의 일 실시예에 따른 컬러 복사 모드의 세부 설정에 관한 예시도이다. 상세하게는, 상관성 정보 획득을 위해 참조(또는 비교)되는 영역(도면에서 빗금친 부분)에 따라 도 12의 a 내지 c가 구분될 수 있다. 본 예에서는 그 외의 상관성 정보 획득에 관한 설정은 동일하며 상관성 정보 획득을 위해 비교되는 영역의 설정이 차이인 경우를 전제하여 설명하지만, 그 외의 세부 설정으로 컬러 복사 모드가 구분될 수 있고 그에 따라 보정 수행 여부가 정해질 수 있음도 이해하여야 한다.
도 12의 a 내지 c는 현재 블록과 대응되는 블록의 좌와 상 블록, 상과 우상 블록, 좌와 좌하 블록이 각각 비교되는 영역으로 설정되어 있다. 즉, 해당 인접 블록에서 상관성 정보를 획득하고, 현재 블록과 대응되는 블록에 상관성 정보를 적용하여 획득된 데이터를 현재 블록의 예측 블록을 사용하겠다는 것을 의미한다.
도 12의 a를 참조하면, 현재 블록과 이에 인접한 좌와 상 블록을 묶은 영역과 다른 컬러 공간의 대응되는 블록과 이에 인접한 좌와 상 블록을 묶은 영역이 서로 상관성이 높다는 것을 의미할 수 있다. 본 예에서 현재 블록의 보정에 사용되는 참조 화소는 현재 블록의 좌, 상 블록에 한정하는 경우를 가정한다.
그렇기 때문에 도 12의 a는 다른 컬러 공간에서 예측 블록을 획득한 후 보정을 수행할 때 인접한 블록인 좌, 상 블록을 사용하는 것이 예측의 정확도 향상에 도움이 줄 수 있다고 예상할 수 있다. 특히, 블록 간의 경계에 발생하는 열화를 줄여줄 수 있는 효과도 발생할 수 있다.
도 12의 b와 c를 참조하면, 현재 블록과 이에 인접한 상과 우상 블록을 묶은 영역과 다른 컬러 공간의 대응되는 블록과 이에 인접한 상과 우상 블록을 묶은 영역이 서로 상관성이 높다는 것을 의미할 수 있는데, 좌와 상 블록을 사용하여 보정을 수행하는 것은 예측의 정확도에 오히려 부정적일 수 있다. 특히, 컬러 복사 모드가 도 12의 a, b, c가 모두 지원되는 경우(3개 모드)에 b 내지 c가 선택된 경우라면 역효과가 훨씬 클 수 있다.
이 경우는 상과 우상 블록을 사용하여 보정을 수행하는 것이 더 효율적일 수 있으나, 본 예에서 보정에 사용되는 참조 화소는 좌, 상 블록에 한정되는 경우일 수 있으니 보정을 수행하지 않는 것이 묵시적으로 정해지는 설정을 두는 것이 효율적일 수 있다.
정리하면, 컬러 복사 모드의 전부 또는 일부에 보정을 수행할 수 있는데, 이는 컬러 복사 모드에 관한 설정 정보에 기반하여 결정될 수 있다. 이때, 상기 설정 정보는 전술한 컬러 복사 모드에서 관련 설명을 유도할 수 있으므로, 상세한 설명은 생략한다.
상기 예(1 ~ 3번)는 단일 부/복호화 요소에 의해 보정 수행 여부가 정해지는 경우를 나타내고 있으며, 상기 예의 반대되는 경우를 포함한 다양한 변형의 예가 가능할 수 있다. 또한, 둘 이상의 요소가 결합되어 보정 수행 여부가 정해지는 경우가 가능할 수 있으며, 1 내지 3번 예에서 언급되지 않은 다른 부/복호화 요소 또한 보정 수행 여부를 결정하는 부/복호화 설정에 포함되어 고려될 수 있다.
다음을 통해 화면내 예측에 관한 세부 설정에 관한 설명을 이어간다. 예측 블록의 보정이 수행되는 경우에 블록 내의 전체 또는 일부 화소가 보정 대상으로 고려될 수 있다. 설명의 편의를 위해 일부 화소만 보정 대상으로 고려되는 경우를 전제하며, 다음을 통해 보정 대상 화소 결정에 영향을 주는 요소들에 대한 상세한 예를 살펴본다.
도 13은 본 발명의 일 실시예에 따른 현재 블록 내 보정 대상 화소의 다양한 구성 예를 나타내기 위한 개념도이다. 도 13을 참조하면, 블록 내 화소는 Zx,y로 표시될 수 있고, 블록 내 행과 열은 각각 Rk와 Ck로 표시될 수 있다. 보정 대상 화소가 낱개로 표현될 경우 Z로 표현을 하고, 라인 단위로 표현될 경우 R과 C로 표현할 것을 전제한다.
일 예(1)로, 블록의 크기에 따라 보정 대상 화소가 정해질 수 있다. 64 x 64와 같은 블록의 경우 참조 화소와 블록 내 화소의 최대 거리는 (수평/수직을 기준) 63일 수 있는 반면, 8 x 8과 같은 블록의 경우는 7일 수 있다. 위의 예시를 통해 블록의 크기를 고려하여 보정 대상 화소를 정할 필요가 있음을 알 수 있다. 물론, 명시적인 경우를 차치하고 이해할 필요가 있음을 다시 언급한다.
블록의 크기(2M x 2N)에 기반하여 보정 대상 화소 및 위치가 정해질 수 있는데, 블록의 크기에 비례하는 설정을 둘 수 있다.
예를 들어, 블록의 크기에 비례(예를 들어, 보정 대상 화소의 범위가 현재 블록의 크기에 비례할 수 있거나 또는 2의 지수승으로 표현할 때 2의 지수에 비례할 수 있음)하여 획득되는 일정 영역(예를 들어, 2M x 2S, 2T x 2N. 이때, T와 S는 M과 N에서 v, w만큼 뺀 값. v와 w는 0, 1, 2 등의 정수)이 보정 대상 화소로 결정될 수 있다. 상세하게는, 현재 블록이 도 13과 같은 4 x 4일 경우 보정 대상 화소는 R0와 C0로 표현(4 x 1, 1 x 4. 블록의 좌상측을 기준으로 설정되는 경우)되는 7개의 화소일 수 있다. 이때, 블록의 크기에 관한 하나 이상의 경계값이 존재하여 보정 대상 화소 결정에 영향을 줄 수 있다.
예를 들어, 블록의 크기가 일정 크기(A x B. 예로, 2a x 2b으로 a와 b는 2 ~ 6같은 1 이상 정수) 이하/미만인 경우에 블록의 크기에 비례하여 일정 영역이 보정 대상 화소로 정해질 수 있고, 일정 크기 이상/초과인 경우에 기 설정된 영역이 보정 대상 화소로 정해질 수 있다.
추가 예로, 블록의 크기가 4 x 4 이하일 때 블록의 크기에 따라 보정 대상 화소(예를 들어, 4 x 4일 때 R0, R1와 C0, C1으로 표현되는 12개의 화소)가 정해질 수 있고, 4 x 4 초과일 때 기 설정된 영역(경계값에 해당할 때의 보정 대상 화소와 동일하게 R0, R1와 C0, C1으로 표현되는 12개의 화소)으로 보정 대상 화소가 정해질 수 있다. 이때, 명시적인 경우가 혼합되는 구성 또한 가능할 수 있다. 이에 대한 설명은 전술한 다양한 예에서 관련 설명을 유도할 수 있다.
일 예(2)로, 블록의 형태에 따라 보정 대상 화소가 정해질 수 있다. 128 x 16과 같은 블록의 경우 우하단 화소 기준으로 참조 화소와 블록 내 화소를 고려하자. 이때, 참조 화소와 우하단 화소의 최대 거리는 수직 방향으로 15일 수 있고, 수평 방향으로 127일 수 있다. 위의 예 역시 블록의 형태에 따라 보정 대상 화소를 정할 필요가 있음을 나타내는 경우일 수 있다.
블록의 형태에 기반하여 보정 대상 화소 및 위치가 정해질 수 있는데, 블록의 형태(또는 블록의 가로/세로 길이 비. 현재 블록이 2M x 2N일 때, 2M:2N 또는 M:N)에 비례하는 설정을 둘 수 있다.
예를 들어, 블록의 가로/세로의 길이 비(본 예에서 M:N으로 비교)에 따라 획득되는 일정 영역(M x N 또는 2S x 2T. 이때, S와 T는 M과 N<여기서 M과 N은 블록 길이의 지수를 의미>에서 v, w만큼 뺀 값. v와 w는 0, -1, 1 등의 정수. 본 예는 M x N으로 설명)이 보정 대상 화소로 결정될 수 있다. 상세하게는, 현재 블록이 8 x 4일 경우 보정 대상 화소는 도 13에는 도시되지 않았지만 R0 내지 R2(3개의 행), C0 내지 C1(2개의 열)로 표현되는 26개의 화소일 수 있다. 이때, 블록의 가로/세로 길이 비에 관한 하나 이상의 경계값이 존재하여 보정 대상 화소 결정에 영향을 줄 수 있다.
예를 들어, 블록의 가로/세로 길이 비가 일정 비율(k:1 또는 1:k. k는 2, 3, 4 등의 1 이상 정수) 이하/미만인 경우에 블록의 가로/세로 길이 비에 비례하여 일정 영역이 보정 대상 화소로 정해질 수 있고, 일정 비율 이상/초과인 경우에 기 설정된 영역이 보정 대상 화소로 정해질 수 있다.
추가 예로, 블록의 가로/세로 길이 비가 2:1(또는 1:2) 이하일 때 블록의 가로/세로 길이 비에 따라 보정 대상 화소(상기 예와 동일하게 설정. 즉, 2개의 행과 1개의 열 또는 1개의 행과 2개의 열)가 정해질 수 있고, 2:1(또는 1:2) 초과일 때 기 설정된 영역(경계값에 해당할 때 보정 대상 화소 설정과 동일하게 적용)으로 보정 대상 화소가 정해질 수 있다. 이때, 명시적인 경우가 혼합되는 구성이 가능할 수 있고, 관련 설명은 전술한 예에서 유도할 수 있다.
일 예(3)로, 예측 모드에 따라 보정 대상 화소가 정해질 수 있다. 예측 모드(또는 방법)에 따라 참조 화소와 블록 내 화소의 거리가 고려될 수 있다. 블록의 우상단 화소 기준을 고려할 때, 바로 윗 화소가 참조 화소이지만, Diagonal up right와 같은 방향성 모드일 경우 실제로 예측에 참조되는 화소와 많은 거리 차이가 존재할 수 있다. 위와 같이 예측 모드에 따라 보정 대상이 되는 화소를 고려하는 것이 필요할 수 있다.
예측 모드의 세부 설정(예측 방법, 방향성, 참조 화소 위치 등)에 기반하여 보정 대상 화소가 정해질 수 있다. 다음은 방향성 모드, 비방향성 모드, 컬러 복사 모드를 구분하여 각 예측 모드에 관한 경우를 살펴본다. 후술하는 예에서 블록 내 화소와 참조 화소를 가리키기 위한 도면은 도 9를 참조하며, 보정 대상 화소를 가리키기 위한 도면은 도 13을 참조한다. 도면 번호를 따로 언급하지 않아도 두 도면의 예시 블록의 크기가 동일하고 도면 기호가 중복되지 않으니, 각 도면에서 대응되는 도면 기호를 통해 상세한 예시를 유도할 수 있다.
방향성 모드의 경우 (예측 또는 보정에 사용되는) 참조 화소의 위치, 대상 화소와 참조 화소와의 거리, 예측 모드 방향(또는 각도) 등에 기반하여 보정 대상 화소가 정해질 수 있다.
일부 예측 모드(diagonal down left)에서 m 화소의 예측을 위한 제 1 참조 화소는 R0일 수 있다. 예측에 사용되는 제 1 참조 화소와의 거리가 멀기 때문에 예측 방향에 상응하는 제 2 참조 화소(본 예에서 B0)를 통해 보정을 수행할 수 있다. 한편, d 화소의 경우 예측 방향에 상응하는 제 2 참조 화소(본 예에서 B0)와의 거리가 멀기 때문에 보정을 수행하지 않을 수 있다. 즉, 제 1 참조 화소에 인접한 영역은 보정 대상에서 제외할 수 있고, 인접하지 않은 영역은 보정 대상에 포함될 수 있다.
예를 들어, diagonal down left와 같은 방향성 모드의 경우 C0와 C1(또는 R2와 R3)에 해당하는 참조 화소가 보정 대상에 속하며, 그 외의 화소들은 보정 대상에 제외될 수 있다. diagonal up right와 같은 방향성 모드는 상기 예측 모드와 방향을 바꿔 유도할 수 있으므로 상세한 설명은 생략한다.
일부 예측 모드(diagonal down right)에서 a 화소의 예측을 위한 제 1 참조 화소는 TL일 수 있다. 예측 방향에 상응하는 제 2 참조 화소(본 예에서 T1, L1)와의 거리가 가깝기 때문에 이를 통해 보정을 수행할 수 있다. 한편, p 화소의 경우 예측 방향에 상응하는 제 2 참조 화소와의 거리 또한 멀기 때문에 보정을 수행하지 않을 수 있다. 즉, 제 1 참조 화소에 인접하며 제 2 참조 화소와도 인접한 영역은 보정 대상에 포함될 수 있고, 그 외의 경우에는 보정 대상에 제외할 수 있다.
예를 들어, diagonal down right와 같은 방향성 모드의 경우 C0, C1, R0, R1에 해당하는 참조 화소가 보정 대상에 속하며, 그 외의 화소들은 보정 대상에 제외될 수 있다.
일부 예측 모드(수평 모드)에서 d 화소의 예측을 위한 제 1 참조 화소는 L0일 수 있다. L0를 제 1 참조 화소로 사용하는 a 내지 c 화소와 비교할 때 제 1 참조 화소와의 거리가 멀 수 있지만, 예측 방향에 상응하는 제 2 참조 화소(본 예에서 T3, TL이지만 변화도 비교를 위해 TL은 L0와 비교되고 T3가 d와 비교될 수 있으므로 T3와의 거리를 가정)와의 거리는 가까운 경우일 수 있다. 즉, 제 1 참조 화소에 인접 여부와 상관없이 제 2 참조 화소와 인접한 영역은 보정 대상에 포함될 수 있고, 그 외의 경우에는 보정 대상에 제외할 수 있다.
예를 들어, 수평 모드와 같은 방향성 모드의 경우 R0, R1에 해당하는 참조 화소가 보정 대상에 포함될 수 있고, 그 외의 경우에는 보정 대상에 제외할 수 있다. 수직 모드와 같은 방향성 모드는 상기 예측 모드와 방향을 바꿔 유도할 수 있으므로 상세한 설명은 생략한다.
비방향성 모드의 경우 참조 화소의 위치, 대상 화소와 참조 화소의 거리, 예측 방법 등에 기반하여 보정 대상 화소가 정해질 수 있다.
일부 예측 모드(DC 모드)에서 단일 참조 화소가 아닌 인접한 복수의 화소로부터 유도되는 값으로 a 내지 p 화소를 예측하는 방법을 사용할 수 있다. 보정의 경우 단일 참조 화소가 사용되는 경우로 대상 화소와 제 2 참조 화소의 거리에 기반하여 인접한 화소에 보정을 수행할 수 있다. 즉, 제 2 참조 화소에 인접한 영역은 보정 대상에 포함될 수 있고, 그 외의 영역은 보정 대상에 제외될 수 있다.
예를 들어, DC 모드와 같은 비방향성 모드의 경우 R0와 C0에 해당하는 참조 화소가 보정 대상에 포함될 수 있고, 그 외의 경우에는 보정 대상에 제외할 수 있다.
일부 예측 모드(Planar 모드)에서 제 1 참조 화소는 복수의 카테고리로 분류할 수 있다. 일부 카테고리 a(좌, 상 블록)에는 실제 해당 위치에 사용 가능한 데이터를 포함하는 영역일 수 있고, 일부 카테고리 b(우, 하 블록)에는 실제 해당 위치에 사용 가능한 데이터가 존재하지 않아 다양한 방법으로 유도되는 데이터를 포함하는 영역일 수 있다. 이 경우 카테고리 1를 포함하는 영역에 인접한 화소에 보정을 수행할 수 있다. 즉, 제 1 참조 화소에 인접한 영역이며 상기 카테고리 a와 같이 분류되는 곳에 인접한 영역은 보정 대상에 포함될 수 있고, 그 외의 영역은 보정 대상에 제외될 수 있다.
예를 들어, Planar 모드와 같은 비방향성 모드의 경우 R0, R1와 C0, C1이 중첩되는 참조 화소(Z0,0, Z1,0, Z0,1, Z1,1)가 보정 대상에 포함될 수 있고, 그 외의 경우에는 보정 대상에 제외할 수 있다. 다른 예로, R0, R1와 C0, C1이 해당하는 참조 화소가 보정 대상에 포함하고 그 외의 경우에는 보정 대상에 제외할 수 있다. 이때, 중첩되는 참조 화소(Z0,0, Z1,0, Z0,1, Z1,1)는 각 화소에 좌, 상 방향에 상응하는 화소가 제 2 참조 화소에 해당되어 보정에 사용될 수 있고, 중첩되지 않은 참조 화소는 각 화소에 좌(Z0,2) 또는 상(Z2,0) 방향에 상응하는 화소가 제 2 참조 화소에 해당되어 보정에 사용될 수 있다.
상기 방향성/비방향성 모드에 관한 예에서 보정 대상 화소를 구분하기 위한 x와 y 성분 등에 기반한 경계값(예를 들어, x/y 성분이 어느 특정 좌표를 기준<여기에선 좌상측 좌표라 가정>으로 p/q 이상/초과(또는 이하/미만)에 속하는 경우 보정 대상에 포함)이 하나 이상 존재할 수 있다. 또한, 보정 대상 화소를 정하기 위한 다양한 경계값 설정이 가능할 수 있다.
상기 복수의 예는 보정 대상을 선정하기 위한 일부 예에 한정되며, 보정 대상 화소 위치가 블록 내에서 반대되는 곳에 위치하거나 또는 수직/수평 대칭되는 곳에 위치하는 등의 다양한 변형의 예가 가능할 수 있다. 또한, 상기 예는 후술하는 컬러 복사 모드에도 동일하거나 비슷한 적용이 가능할 수 있다.
컬러 복사 모드의 경우 참조 화소의 위치, 대상 화소와 참조 화소의 거리, 컬러 복사 모드의 일부 설정(예를 들어, 컬러 복사 모드 선택 정보, 상관성 정보 획득 위치 등) 등에 기반하여 보정 대상 화소가 정해질 수 있다.
다음은 도 12의 a와 같이 좌, 상 블록을 참조하여 상관성 정보를 획득하는 경우라 가정한다. 도 12의 b, c와 같이 상관성 정보 획득을 위해 비교되는 영역이 다를 경우 도 12의 a로부터 관련 설명을 유도할 수 있다.
컬러 복사 모드에서 d 화소는 수직 방향으로 상응하는 하나 이상의 제 2 참조 화소(본 예에서 T3. 또는, T2, T3, R0)를 통해 보정을 수행할 수 있다. 한편, l 화소는 수직 방향으로 d 화소와 동일하거나 비슷한 제 2 참조 화소와 상응할 수 있지만, 제 2 참조 화소와의 거리가 멀기 때문에 보정을 수행하지 않을 수 있다. 즉, 수직 방향으로 제 2 참조 화소에 인접한 영역은 보정 대상에 포함될 수 있고, 인접하지 않은 영역은 보정 대상에서 제외할 수 있다.
예를 들어, R0, R1에 해당하는 참조 화소가 보정 대상에 속하며, R2, R3에 속하는 화소들은 보정 대상에 제외될 수 있다. 본 예에서 보정 대상 구분을 위한 경계값(Rw에서 w. 또는, Zx,y에서 y. 이때, w 또는 y와 같은 경계값은 0 이상/초과 ~ 블록의 세로 길이 이하/미만 사이의 값)은 2일 수 있다.
컬러 복사 모드에서 m 화소는 수평 방향으로 상응하는 하나 이상의 제 2 참조 화소(본 예에서 L3. 또는, L2, L3, B0)를 통해 보정을 수행할 수 있다. 한편, o 화소는 수평 방향으로 m 화소와 동일하거나 비슷한 제 2 참조 화소와 상응할 수 있지만, 제 2 참조 화소와의 거리가 멀기 때문에 보정을 수행하지 않을 수 있다. 즉, 수평 방향으로 제 2 참조 화소에 인접한 영역은 보정 대상에 포함될 수 있고, 인접하지 않은 영역은 보정 대상에서 제외할 수 있다.
예를 들어, C0, C1에 해당하는 참조 화소가 보정 대상에 속하며, C2, C3에 속하는 화소들은 보정 대상에서 제외될 수 있다. 본 예에서 보정 대상 구분을 위한 경계값(Cw에서 w. 또는, Zx,y에서 x. 이때, w 또는 x와 같은 경계값은 0 이상/초과 ~ 블록의 가로 길이 이하/미만 사이의 값)은 2일 수 있다.
컬러 복사 모드에서 f, h, n, p 화소는 수직, 수평 방향으로 상응하는 각각의 제 2 참조 화소를 통해 보정을 수행할 수 있다. f 화소의 경우 수직, 수평 방향으로 제 2 참조 화소(본 예에서 T1, L1)와는 거리가 가깝기 때문에 수직, 수평 방향으로 상응하는 제 2 참조 화소를 통해 보정을 수행할 수 있다. h 화소의 경우 수직 방향으로 상응하는 제 2 참조 화소(본 예에서 T3)와는 거리가 가깝지만, 수평 방향으로 상응하는 제 2 참조 화소(본 예에서 L1)와는 거리가 멀기 때문에 수직 방향으로 상응하는 제 2 참조 화소를 통해 보정을 수행할 수 있다. n 화소의 경우 수평 방향으로 상응하는 제 2 참조 화소(본 예에서 L3)와는 거리가 가깝지만, 수직 방향으로 상응하는 제 2 참조 화소(본 예에서 T1)와는 거리가 멀기 때문에 수평 방향으로 상응하는 제 2 참조 화소를 통해 보정을 수행할 수 있다. p 화소의 경우 수직, 수평 방향으로 제 2 참조 화소와는 거리가 멀기 때문에 보정을 수행하지 않을 수 있다.
예를 들어, C0, C1과 R0, R1에 해당하는 참조 화소가 보정 대상에 속하며, 그 외의 화소들은 보정 대상에서 제외될 수 있다. 본 예에서 보정 대상 구분을 위한 경계값(Zx,y에서 x, y. 이때, x의 경계값은 0 이상/초과 ~ 블록의 가로 길이 이하/미만 사이의 값이고, y의 경계값은 0 이상/초과 ~ 블록의 세로 길이 이하/미만 사이의 값)은 가로와 세로 방향에 각각 2일 수 있다.
이때, 보정 대상 영역은 가로와 세로에 공통 적용되는 부분(Z0,0, Z0,1, Z1,0, Z1,1)과 가로에만 적용되는 부분(Z2,0, Z2,1, Z3,0, Z3,1), 그리고 세로 방향에만 적용되는 부분(Z0,2, Z0,3, Z1,2, Z1,3)으로 구분될 수 있다. 즉, 상기 모든 영역은 보정 대상에 속하지만, 보정에 사용되는 제 2 참조 화소가 구분될 수 있음을 의미하는 경우일 수 있다. 또는, 상기 가로와 세로에 공통 적용되는 부분만 보정 대상으로 한정시킬 수 있으며, 다양한 경계값 설정이 가능할 수 있다.
도 14는 본 발명의 일 실시예에 따른 컬러 복사 모드에서 보정이 수행되는 경우를 설명하기 위한 예시도이다.
도 14를 참조하면, 보정 대상을 구분하기 위한 경계값이 가로와 세로 방향으로 1인 경우에 대한 예를 나타낸다. 이때, 가로와 세로 방향에만 보정이 적용되는 경우는 도 14의 a와 c를 의미하고, 가로와 세로 방향에 공통으로 보정이 적용되는 경우는 도 14의 b를 의미한다. 이미 전술한 것과 같이 보정에 사용되는 제 2 참조 화소가 다르게 구성될 수 있음을 나타낸다.
컬러 복사 모드에서 f 화소는 수직, 수평, 대각선 방향 중 하나 이상의 방향으로 상응하는 제 2 참조 화소(본 예에서 T1, L1, TL, T3, L3)를 통해 보정을 수행할 수 있다. 한편, p 화소의 경우 각 방향으로 상응하는 제 2 참조 화소(본 예에서 T3, L3, TL, R3, B3)와의 거리가 멀기 때문에 보정을 수행하지 않을 수 있다.
예를 들어, Z0,0 내지 Z3,0, Z0,1 내지 Z2,1, Z0,2, Z1,2, Z0,3에 해당하는 참조 화소가 보정 대상에 속하며, 그 외의 화소들은 보정 대상에서 제외될 수 있다. 본 예에서 보정 대상 구분을 위한 경계값(Zx,y에서 w. w는 x와 y의 합으로 비교되는 값일 수 있음. w는 0 이상/초과 ~ 블록의 가로와 세로 길이의 합 이하/미만 사이의 값)은 3일 수 있다. 이때, 보정 대상 영역은 가로와 세로 길이의 합으로 구분되는 예를 들었지만, 그 밖의 다양한 경계값 설정이 가능할 수 있다.
컬러 복사 모드의 경우 기존 예측 모드와 다르게 현재 블록의 인접한 영역이 아닌 다른 컬러 공간에서 예측값을 획득한 경우이다. 일반적으로 현재 화소를 중심으로 블록 스캔 순서에 기반하여 획득(또는 참조) 가능한 영역은 대상 화소를 중심으로 좌, 상, 좌상, 우상, 좌하 방향에 제한될 수 있다.
그러나 컬러 복사 모드의 경우 현재 블록의 모든 예측 화소가 다른 컬러 공간의 대응되는 블록에서 획득되었기 때문에, 이를 보정 과정에 사용하는 것 또한 가능할 수 있다. 이 경우 현재 화소를 중심으로 좌, 우, 상, 하, 좌상, 우상, 좌하, 우하 방향에서 예측을 위한 데이터를 획득할 수 있다.
도 15는 본 발명의 일 실시예에 따른 컬러 복사 모드에서 보정이 수행되는 경우를 설명하기 위한 예시도이다.
도 15를 참조하면, 현재 블록의 보정을 위해 현재 블록의 인접한 화소뿐만 아니라 다른 컬러 공간의 대응되는 블록으로부터 예측된 화소를 사용하는 경우를 나타낸다. 즉, 대응되는 블록은 제 1 참조 화소뿐만 아니라 제 2 참조 화소로 화면내 예측에 사용되는 경우를 의미한다. 도 15의 a 내지 c는 현재 블록의 상, 좌상, 좌 블록에 인접한 화소에 보정이 수행되는 경우를 나타내며, 도 15의 a를 중심으로 설명한다.
도 15의 a는 c 화소를 중심으로 좌, 우, 상, 하, 좌상, 우상, 좌하, 우하 등의 방향으로 인접한 화소를 제 2 참조 화소로 사용하여 보정을 수행하는 경우를 나타낸다. 이 중 T1, T2, T3는 현재 블록에 인접한 화소일 수 있고, b, d, f, g, h는 다른 컬러 공간의 대응되는 블록 내에 존재하는(또는 유도되는) 화소일 수 있다. 도면과 같이 보정 대상 화소를 중심으로 모든 방향에 인접한 화소를 제 2 참조 화소로 설정하는 것뿐만 아니라 다양한 제 2 참조 화소 구성이 가능할 수 있다.
예를 들어, 대상 화소를 중심으로 수직 방향(T2, g), 수평 방향(b, d), 십자가 형태(T2, b, d, g), X 형태(T1, T3, f, h) 등의 다양한 보정에 사용되는 제 2 참조 화소 구성이 가능할 수 있다. 이때, 제 2 참조 화소 구성은 보정 대상 화소의 블록 내 위치 등 전술한 다양한 부/복호화 요소를 고려하여 정해질 수 있다.
보정을 위해 대상 화소와 인접한 화소에 적용되는 가중치는 다양한 설정이 가능한데, 대상 화소에 적용되는 가중치는 a, 인접한 화소에 적용되는 가중치는 b(전체 가중치 합을 1로 둘 때, <1-a>에서 인접한 화소 개수로 나눠준 값)일 수 있다. 이때, 인접 화소에 적용되는 가중치는 동일하거나 또는 동일하지 않게 하는 설정 또한 가능할 수 있다. 또한, a에 적용되는 가중치는 양수의 값을 가지며, b에 적용되는 가중치는 양수 또는 음수의 값을 가질 수 있다.
본 예의 컬러 복사 모드에서 현재 블록의 인접한 영역뿐만 아니라 대응되는 블록의 화소 또한 보정에 사용되는 경우는 후술하는 예에서도 동일하거나 비슷한 구성으로 적용될 수 있으므로 상세한 설명은 생략한다.
상기 예는 컬러 복사 모드의 상관성 정보 획득을 위한 영역이 현재 블록의 좌, 상 블록에 해당하는 경우일 수 있다. 상기 예를 통해 보정을 위해 사용되는 제 2 참조 화소의 영역에 제한이 없는 경우를 설명하였지만, 현재 블록의 좌, 상 블록에 한정하는 예 또한 가능할 수 있다. 이미 도 12를 통해 상관성 정보 획득 위치에 기반하여 보정 수행 여부가 정해지는 경우에 대한 예를 살펴보았다. 본 예에서는 보정은 수행되는 경우를 전제하지만, 보정 대상 화소가 적응적으로 정해질 수 있는 경우에 대한 설명을 이어간다.
도 12의 b(또는 c)를 참조하면, 현재 블록의 상, 우상(또는 좌, 좌하) 블록, 그리고 대응되는 블록의 상, 우상(또는 좌, 좌하) 블록을 참조하여 상관성 정보를 획득하는 컬러 복사 모드에 대한 예를 나타낸다.
이때, 상관성 정보 획득에 사용되는 인접한 영역에 기반하여 보정 대상 화소가 정해질 수 있다.
예를 들어, 도 12의 b에서 현재 블록의 상, 우상 블록에 인접한 영역(예를 들어, R0, R1, C3, C2 등)이 보정 대상 화소로 포함될 수 있고, 그 외의 영역은 보정 대상 화소로 포함되지 않을 수 있다. 한편, 도 12의 c에서 현재 블록의 좌, 좌하 블록에 인접한 영역(예를 들어, C0, C1, R3, R2 등)이 보정 대상 화소로 포함될 수 있고, 그 외의 영역은 보정 대상 화소로 포함되지 않을 수 있다.
도 12의 b에서 보정 대상 선정을 위한 경계값(R0, R1이 선정된 경우)은 Rw에서 w가 2 미만으로 설정될 수 있거나 또는 경계값(C3, C2가 선정된 경우)이 Cw에서 w가 2 이상으로 설정될 수 있다. 도 12의 c는 앞선 예로부터 유도할 수 있으므로 상세한 설명은 생략한다. 또한, 상기 예뿐만 아니라 전술한 다양한 실시예를 통해 언급된 경계값 설정이 본 예에서 동일하거나 비슷하게 적용될 수 있다.
상기 예의 경우 컬러 복사 모드의 세부 설정 중 하나인 상관성 정보 획득 영역의 위치에 따라 보정 대상 화소가 선정되는 경우를 다루고 있으나, 그 밖의 컬러 복사 모드의 세부 설정에 따라 보정 대상 화소가 선정되는 다양한 경우가 가능할 수 있다.
또한, 상기 복수의 예는 보정 대상을 선정하기 위한 일부 예에 한정되며, 보정 대상 화소 위치가 블록 내에서 반대되는 곳에 위치하거나 또는 수직/수평 대칭되는 곳에 위치하는 등의 다양한 변형의 예가 가능할 수 있다. 또한, 상기 예는 전술한 기존 예측 모드에도 동일하거나 비슷한 적용이 가능할 수 있다.
전술한 복수의 예를 통해 블록의 크기, 형태, 예측 모드 등에 따라 보정 대상 화소 선정에 관한 부/복호화 설정이 정해지는 경우를 살펴보았으며, 그 밖의 다양한 요소가 고려되어 부/복호화 설정이 정해질 수도 있다. 또한, 부/복호화 설정은 상기 예와 같은 단일 부/복호화 요소에 따라 정의되는 것에 추가로 둘 이상의 요소의 조합에 따라 정의될 수 있다. 그럴 경우 상기 예를 통해 설명되었던 보정 대상 화소 선정을 위한 경계값 설정 또한 복수의 부/복호화 요소를 고려하여 정해질 수 있다. 즉, 하나 이상의 부/복호화 요소에 따라 정의되는 부/복호화 설정에 따라 보정 대상 화소 선정을 위한 최종 경계값 설정이 정해질 수 있음을 의미한다.
다음은 제 1 참조 화소를 통해 생성되는 예측 화소값(또는 1차 예측 화소값)과 제 1 참조 화소 또는 제 2 참조 화소를 통해 생성되는 예측 보정값(또는 2차 예측 화소값 또는 최종 예측 화소값)의 관계 설정에 대해 살펴본다. 이때, 관계 설정이란 각 화소에 적용되는 가중치 설정 등을 의미할 수 있다.
다음은 하나 이상의 참조 화소를 사용하여 화면내 예측이 수행되는 수식에 대한 예를 나타낸다.
Figure pat00003
상기 수식에서 pred_sample(i,j)과 pred_sample*(i,j)는 (i,j) 위치의 예측 화소값(또는 1차 예측 화소값)과 예측 보정값(또는 최종 예측 화소값)을 의미하고, ref_sampel_a 내지 ref_sample_c는 예측 화소 보정 과정에 사용되는 참조 화소를 의미한다. 이때, (ai,aj), (bi,bj), (ci,cj)는 상기 보정 과정에 사용되는 각 참조 화소의 위치를 나타낸다. 또한, wp, wa, wb, wc는 예측 화소 보정 과정에서 각 화소에 적용되는 가중치를 의미한다.
예측 화소 보정 과정에 사용(또는 참조)되는 화소의 개수는 k개(k는 1, 2, 3 등의 0 이상 정수)로 부/복호화 설정에 따라 고정적이거나 또는 적응적인 경우가 가능하다. 다양한 부/복호화 요소에 따라 보정 과정에 사용되는 참조 화소 개수가 정해질 수 있지만, 본 예에서는 최대 3개의 화소가 사용되는 경우를 가정한다. 3개 미만의 참조 화소가 사용되는 경우에는 일부 참조 화소에 0으로 채우거나 또는 일부 참조 화소의 가중치를 0으로 채워서 처리하는 경우를 가정한다.
예측 블록에 보정을 수행하는 경우는 상기 수식에서 0이 아닌 최소 하나 이상의 참조 화소(실제 참조 화소값이 0인 경우는 제외)가 보정에 사용되며 해당 참조 화소의 가중치가 0이 아닐 수 있고, 보정을 수행하지 않는 경우에는 상기 수식에서 모든 참조 화소에 0으로 채워지거나 또는 모든 참조 화소에 가중치를 0으로 설정할 수 있다. 예를 들어, 예측 모드에 따라 보정에 사용되는 참조 화소 위치를 획득할 수 있지만, 다른 부/복호화 요소(블록의 크기 등)에 의해 보정이 수행되지 않기로 결정되는 경우라면 해당 참조 화소에 적용되는 가중치를 0으로 설정하는 처리가 가능함을 의미한다. 즉, 예측 화소값(1차 예측 화소값)이 그대로 예측 보정값(2차 예측 화소값 또는 최종 예측 화소값)으로 정해지는 경우로 이해할 수 있다.
(예측 블록에 보정을 수행하는 경우) 보정 대상 범위에 포함된 화소는 상기 수식에서 0이 아닌 최소 하나 이상의 참조 화소가 보정에 사용되며 해당 참조 화소의 가중치가 0이 아닐 수 있고, 보정 대상 범위에 포함되지 않은 화소는 상기 수식에서 모든 참조 화소에 0으로 채워지거나 또는 모든 참조 화소에 가중치를 0으로 설정할 수 있다.
본 예는 예측 블록에 보정을 수행하며 블록 내 모든 화소가 보정 대상에 포함되는 경우를 전제하여 설명하지만, 일부 화소가 보정 대상에 포함되는 경우가 후술하는 내용과 결합되어 적용될 수 있음을 이해하여야 한다.
보정에 사용되는 참조 화소는 예측 모드에 따라 다양하게 구성될 수 있다. (i,j), (ai,aj), (bi,bj), (ci,cj)는 예측 블록(M x N)의 좌상측 좌표(0,0)를 기준으로 측정되는 것을 전제한다. 다음은 예측 모드에 따라 (ai,aj), (bi,bj), (ci,cj)가 설정되는 다양한 경우를 나타낸다.
예를 들어, 예측 모드가 수직 모드일 때 (-1,-1), (-1,j), (i,-1) 또는 (-1,-1), (-1,j), (-1,N-1)일 수 있다. 또는, 예측 모드가 수평 모드일 때 (-1,-1), (i,-1), (-1,j) 또는 (-1,-1), (i,-1), (M-1,-1)일 수 있다.
또는, 예측 모드가 Diagonal up right일 때 (-1,-1), (i+j+1,-1), (-1,i+j+1) 또는 (i+j,-1), (i+j+1,-1), (i+j+2,-1)일 수 있다. 또는, 예측 모드가 Diagonal down left일 때 (-1,-1), (-1,i+j+1), (i+j+1,-1) 또는 (-1,i+j), (-1,i+j+1), (-1,i+j+2)일 수 있다.
또는, 예측 모드가 Diagonal down right일 때 (-1,-1), (i+j+1,-1), (-1,i+j+1) 이거나 (i-j-1,-1), (i+j+1,-1), (-1,i+j+1) <i가 j보다 크거나 같을 경우> 또는 (-1,j-i-1), (-1,i+j+1), (i+j+1,-1) <i가 j보다 작을 경우>일 수 있다.
또한, 예측 모드가 DC 모드일 때 (-1,-1), (-1,j), (i,-1) 또는 (-1,-1), (M,-1), (-1,N)일 수 있다. 또는, 예측 모드가 Planar 모드일 때 (-1,-1), (-1,j), (i,-1) 또는 (-1, -1), (M,-1), (-1,N)일 수 있다.
또한, 예측 모드가 컬러 복사 모드일 때 (-1,-1), (i,-1), (-1,j) 또는 (i-1,j), (i,j), (i+1,j) 또는 (i,j-1), (i,j), (i,j+1) 또는 (i-1,j-1), (i,j), (i+1,j+1) 또는 (i-1,j+1), (i,j), (i+1,j-1)일 수 있다.
상기 예는 일부 예측 모드에 따라 정해지는 참조 화소 위치를 가정하며, 상기 예측 모드에 인접한 모드(예를 들어, 방향성 모드. 도 4의 50번 모드를 가정하면 인접한 49번, 51번 모드 등)의 경우 상기 예측 모드에 따라 정해진 참조 화소 위치(예를 들어, <i,-1>라 가정)에 인접한 참조 화소(예를 들어, <i+1,-1>, <i-1,-1>, <i+2, -1> 등)가 보정 과정에 사용될 수 있다.
또한, 상기 예를 포함하여 다양한 참조 화소 구성이 가능할 수 있다. 이때, 각 예측 모드에 따라 상기 예와 같은 참조 화소가 구성된다 하더라도 해당 참조 화소(또는 모든 참조 화소)에 항상 0이 아닌 가중치가 적용됨을 의미하는 것은 아닐 수 있다.
보정 과정에 사용되는 참조 화소에 적용되는 가중치는 예측 블록(M x N)의 가로(M), 세로(N) 길이(또는 길이를 p의 거듭제곱으로 표현할 때 지수. p는 2, 4 등의 정수. 본 예에서 길이 자체를 대상으로 설명)와 대상 화소의 위치 및 참조 화소의 위치에 기반하여 설정될 수 있다. 또는 예측 블록의 가로, 세로 길이와 대상 화소의 위치에 기반하여 설정될 수 있으며, 이를 중심으로 후술하는 예를 전개한다.
이때, 화소의 위치는 예측 블록(M x N)의 좌상측 좌표(0,0)를 기준으로 측정되는 것을 전제한다. 즉, 해당 화소에서 블록 내 좌상측 화소의 x와 y 성분을 각각 뺀 것으로 화소의 위치를 측정할 수 있다.
보정 과정에 사용되는 참조 화소는 현재 블록을 중심으로 수평 방향으로 인접한 블록(예를 들어, 도 9에서 Ref_T, Ref_TR 등)과 수직 방향으로 인접한 블록(예를 들어, 도 9에서 Ref_L, Ref_BL 등)과 수평과 수직 방향으로 인접한 블록(예를 들어, 도 9에서 Ref_TL 등)에 속할 수 있다.
가중치 설정에 대한 예로 상기 수평 방향으로 인접한 블록 내 참조 화소에 적용되는 가중치는 현재 블록의 세로 길이(또는 가로와 세로 길이의 합계 또는 평균)와 대상 화소의 y 성분에 기반하여 설정될 수 있고, 상기 수직 방향으로 인접한 블록 내 참조 화소에 적용되는 가중치는 현재 블록의 가로 길이(또는 가로와 세로 길이의 합계 또는 평균)와 대상 화소의 x 성분에 기반하여 설정될 수 있으며, 상기 수평과 수직 방향에 인접한 블록 내 참조 화소에 적용되는 가중치는 현재 블록의 가로와 세로 길이(또는 가로와 세로 길이의 합계 또는 평균)와 대상 화소의 x, y 성분에 기반하여 설정될 수 있다. 또한, 상기 예에 반대되거나 다른 변형의 경우를 고려하여 가중치 설정이 정해질 수 있으며, 다음을 통해 상기 예에 기반하여 가중치 설정이 적용되는 경우를 살펴보자.
예를 들어, 현재 블록의 예측 모드는 컬러 복사 모드이고 M x N 블록의 크기를 가지며 (i,j) 위치 화소가 보정될 때 참조 화소에 적용되는 가중치는 다음과 같이 둘 수 있다. 본 예에서 wa 내지 wc의 가중치는 (-1,j), (i,-1), (-1,-1) 위치의 참조 화소에 적용되는 경우를 가정하자.
S = ( ( Log2M + Log2N - 2 ) >> 2 )
wa = 32 >> ( ( i << 1 ) >> S ) / wb = 32 >> ( ( j << 1 ) >> S )
wc = ( wa >> 4 ) + ( wb >> 4 ) / wp = 64 - (wa + wb - wc)
상기 수식에서 S는 현재 블록의 가로와 세로 길이에 기반하여 획득되는 가중치 조정 요소이고, wa는 S와 대상 화소의 x 성분에 기반하여 획득되는 가중치이고, wb는 S와 대상 화소의 y 성분에 기반하여 획득되는 가중치이며, wc는 S와 wa 및 wb에 기반하여 획득되는 가중치이다. wc의 경우 현재 블록의 가로와 세로 길이와 대상 화소의 x, y 성분에 기반하여 획득되는 가중치를 의미할 수 있다. 상기 수식을 통해 획득된 가중치를 보정 과정 수식에 적용(단, 해당 수식에서 오른쪽으로 6만큼 쉬프트 연산이 수행되어야 함)하면 예측 보정값이 획득될 수 있다.
S의 경우 고정된 하나의 값을 가질 수 있거나 또는 복수의 후보 중 하나가 적응적으로 선택될 수 있다. 이때, 적응적인 경우는 상기 S를 획득하는 수식의 변형(예를 들어, S에 1, 2 등을 감산 또는 가산)을 적용하는 방법 등을 통해 복수의 S 후보를 획득할 수 있다.
상기 예를 통해 S에 대한 적응적인 경우를 설명하였지만, 그 밖의 다양한 가중치 설정이 고정적으로 정해지거나 또는 적응적으로 정해지는 경우가 가능할 수 있다. 고정적인 경우는 부/복호화 설정에 관계없이 영상 내 하나의 가중치 설정이 블록 단위에 사용됨을 의미하고, 적응적인 경우는 부/복호화 설정에 따라 가중치 설정이 결정되어 블록 단위에 사용됨을 의미할 수 있다. 이때, 부/복호화 설정은 영상 타입, 컬러 성분, 블록의 크기/형태/위치, 예측 모드 등에 요소 중 하나 또는 둘 이상에 의해 정의될 수 있다.
또한, 가중치 설정은 하나의 블록에 고정된 하나의 설정이 지원될 뿐 아니라 하나의 블록에 둘 이상의 설정이 지원되어 적응적으로 선택되는 변형의 예가 가능할 수 있다. 이미 전술한 것과 같이 블록 내 일부 영역에 보정을 수행하지 않고, 블록 내 일부 영역에 보정을 수행할 수 있다. 확장된 예로, 블록 내 일부 영역에 보정을 수행하지 않고, 블록 내 일부 영역(n개. n은 1 이상 정수)은 각 영역의 가중치 설정에 따라 보정을 수행할 수 있다.
예를 들어, 64 x 64 블록의 경우 오른쪽 아래 영역(본 예에서 도 13의 Z2,2, Z3,2, Z2,3, Z3,3)은 참조 화소와의 거리가 멀기 때문에 보정을 수행하지 않을 수 있다. 왼쪽 윗 영역(도 13의 R0와 C0)은 참조 화소와의 거리가 짧기 때문에 가중치 설정 A(예를 들어, 보정의 강도를 세게 함. 상기 수식의 S 사용)를 따라 보정을 수행할 수 있다. 상기 두 영역의 중간 영역(도 13의 Z1,1, Z2,1, Z3,1, Z1,2, Z1,3)은 참조 화소 거리가 중간이기 때문에 가중치 설정 B(예를 들어, 보정 강도를 중간으로함. 상기 수식의 S에 1을 가산)를 따라 보정을 수행할 수 있다.
또는, 16 x 16 블록의 경우 오른쪽 아래 영역(상기 예와 동일)은 참조 화소 거리가 멀기 때문에 보정을 수행하지 않을 수 있다. 왼쪽 윗 영역(도 13의 R0, R1, C0, C1)은 참조 화소와의 거리가 짧기 때문에 보정을 수행할 수 있다. 또는, 4 x 4 블록의 경우 모든 영역은 참조 화소와의 거리가 F기 때문에 보정을 수행할 수 있다.
상기 예는 블록의 크기에 따라 블록 내 가중치 설정이 적응적인 일부 경우를 나타내고 있으며, 상기 예에 한정되지 않고 다양한 변형의 예가 가능하다. 또한, 상기 예에서 각 영역을 구분하는 구체적인 경계값 조건이 하나 이상 존재할 수 있다. 또한, 상기 예에서 언급된 S 뿐만 아니라 보정 대상 화소의 위치에 따라 다른 가중치 설정(예를 들어, 참조 화소 개수, 참조 화소 위치 등)이 적응적으로 하나의 블록에서 설정될 수도 있다.
예측 모드 결정부에서는 복수의 예측 모드 후보군 중 최적의 모드를 선정하기 위한 과정이 수행된다. 일반적으로 블록의 왜곡{예를 들어, 현재 블록과 복원 블록의 Distortion. SAD(Sum of Absolute Difference), SSD(Sum of Square Difference 등}과 해당 모드에 따른 발생 비트량이 고려되는 율-왜곡(Rate-Distortion) 기법을 이용하여 부호화 비용 측면에서 최적인 모드를 결정할 수 있다. 상기 과정을 통해 결정되는 예측 모드에 기반하여 생성되는 예측 블록을 감산부와 가산부로 송신할 수 있다.
최적의 예측 모드를 결정하기 위해 예측 모드 후보군에 존재하는 모든 예측 모드를 탐색할 수 있거나 또는 연산량/복잡도 감소를 위한 목적으로 다른 결정 과정를 거처 최적의 예측 모드를 선정할 수 있다. 예를 들어, 첫번째 단계에서는 화면내 예측 모드 후보 전체에 대해 화질 열화 관점에서 좋은 성능을 보이는 일부 모드를 선정하고, 두번째 단계에서는 첫번째 단계에서 선정된 모드에 대해 화질 열화뿐만 아니라 발생 비트량까지 고려하여 최적의 예측 모드를 선정할 수 있다. 상기 방법 외 연산량/복잡도 감소 측면의 다양한 방법이 적용될 수 있다.
또한, 예측 모드 결정부는 일반적으로 부호화기에만 포함되는 구성일 수 있으나, 부/복호화 설정에 따라 복호화기에도 포함되는 구성일 수 있다. 예를 들어, 템플릿 매칭을 예측 방법으로 포함하거나 또는 화면내 예측 모드를 현재 블록의 인접한 영역에서 유도하는 방법을 포함하는 경우. 후자의 경우 예측 모드를 복호화기에서 묵시적으로 획득하는 방법이 사용되었다고 이해할 수 있다.
예측 모드 부호화부에서는 예측 모드 결정부를 통해 선정된 예측 모드를 부호화할 수 있다. 예측 모드 후보군에서 상기 예측 모드에 대응하는 인덱스 정보를 부호화할 수 있거나 또는 상기 예측 모드를 예측하여 그에 관한 정보를 부호화할 수 있다. 전자의 경우 휘도 성분에 적용되는 방법일 수 있고 후자의 경우 색차 성분에 적용되는 방법일 수 있으나 이에 한정되지 않는다.
예측 모드를 예측하여 부호화하는 경우 예측 모드의 예측값(또는 예측 정보)을 MPM(Most Probable Mode)으로 지칭할 수 있다. MPM은 하나의 예측 모드로 구성할 수 있거나 또는 복수의 예측 모드로 구성할 수 있는데, 예측 모드 후보군 개수 등에 따라 MPM의 개수(k개. k는 1, 2, 3, 6 등과 같은 1 이상 정수)가 정해질 수 있다. MPM이 복수의 예측 모드로 구성되는 경우로 MPM 후보군이라 지칭할 수 있다.
MPM은 예측 모드를 효율적으로 부호화하기 위해 지원되는 개념으로, 실제로 현재 블록의 예측 모드로 발생 가능성이 높은 예측 모드로 후보군을 구성할 수 있다.
예를 들어, MPM 후보군은 기 설정된 예측 모드(또는 통계적으로 자주 발생하는 예측 모드. DC, Plaanr, 수직, 수평, 일부 대각선 모드 등), 인접한 블록(좌, 상, 좌상, 우상, 좌하 블록 등)의 예측 모드 등으로 구성할 수 있다. 이때, 인접한 블록의 예측 모드는 도 9에서 L0 내지 L3(좌 블록), T0 내지 T3(상 블록), TL(좌상 블록), R0 내지 R3(우상 블록), B0 내지 B3(좌하 블록)에서 획득할 수 있다.
인접한 블록(예를 들어, 좌 블록)에서 둘 이상의 서브 블록 위치(예를 들어, L0, L2 등)로부터 MPM 후보군을 구성할 수 있을 경우 기 정의된 우선 순위(예를 들어, L0 - L1 - L2 등)에 따라 해당 블록의 예측 모드를 후보군에 구성할 수 있다. 또는, 둘 이상 서브 블록 위치로부터 MPM 후보군을 구성할 수 없는 경우 기 정의된 위치(예를 들어, L0 등)에 해당하는 서브 블록의 예측 모드를 후보군에 구성할 수 있다. 상세하게는, 인접한 블록 중 L3, T3, TL, R0, B0 위치의 예측 모드를 해당 인접한 블록의 예측 모드로 선정하여 MPM 후보군에 포함할 수 있다. 상기 설명은 인접한 블록의 예측 모드를 후보군에 구성하는 일부 경우이며, 이에 한정되지 않는다. 후술하는 예에서 기 정의된 위치의 예측 모드를 후보군에 구성하는 경우를 가정한다.
또한, 하나 이상의 예측 모드가 MPM 후보군으로 구성되어 있는 경우 기 포함된 하나 이상의 예측 모드로부터 유도되는 모드 또한 MPM 후보군으로 추가 구성할 수 있다. 상세하게는, k번 모드(방향성 모드)가 MPM 후보군에 포함된 경우 해당 모드로부터 유도 가능한 모드(k 기준으로 +a, -b의 간격을 갖는 모드. a와 는 1, 2, 3 등의 1 이상의 정수)를 MPM 후보군에 추가로 포함할 수 있다.
MPM 후보군 구성을 위한 우선 순위가 존재할 수 있는데, 인접한 블록의 예측 모드 - 기 설정된 예측 모드 - 유도되는 예측 모드 등의 순서로 MPM 후보군을 구성할 수 있다. MPM 후보군을 구성하는 과정은 우선 순위에 따라 최대 MPM 후보 개수만큼 채우면 완료할 수 있다. 상기 과정에서 기 포함된 예측 모드와 일치하는 경우에는 해당 예측 모드는 후보군에 구성하지 않고 다음 우선 순위의 후보로 순서가 넘어가는 중복성 확인 과정이 포함될 수 있다.
다음은 MPM 후보군이 6개의 예측 모드로 구성되는 경우를 전제한다.
예를 들어, L - T - TL - TR - BL - Planar - DC - 수직 - 수평 - 대각선 모드 등의 순서로 후보군을 구성할 수 있다. 인접한 블록의 예측 모드를 후보군에 우선적으로 구성하며, 기 설정된 예측 모드를 추가 구성하고자 하는 경우일 수 있다.
또는, L - T - Planar - DC - <L+1> - <L-1> - <T+1> - <T-1> - 수직 - 수평 - 대각선 모드 등의 순서로 후보군을 구성할 수 있다. 일부 인접한 블록의 예측 모드와 기 설정된 예측 모드의 일부를 우선적으로 구성하며, 인접한 블록의 예측 모드와 비슷한 방향의 예측 모드가 발생할 것이라는 가정 하에 유도되는 모드와 기 설정된 예측 모드의 일부를 추가 구성하고자 하는 경우일 수 있다.
상기 예는 MPM 후보군 구성에 관한 일부 경우이며, 이에 한정되지 않고 다양한 변형의 예가 가능할 수 있다.
MPM 후보군은 후보군 내 인덱스에 기반하여 단항 이진화(Unary Binarization), 절단된 Rice 이진화(Truncated Rice Binarization) 등의 이진화가 사용될 수 있다. 즉, 작은 인덱스를 갖는 후보에는 짧은 비트를 할당하고, 큰 인덱스를 갖는 후보에는 긴 비트를 할당하여 모드 비트를 표현할 수 있다.
MPM 후보군에 포함되지 못한 모드는 non-MPM 후보군으로 분류될 수 있다. 또한, 부/복호화 설정에 따라 non-MPM 후보군은 2개 이상의 후보군으로 분류될 수 있다.
다음은 예측 모드 후보군에 방향성 모드와 비방향성 모드를 포함하는 67개의 모드가 존재하며 MPM 후보는 6개가 지원되어 non-MPM 후보군에 61개의 예측 모드로 구성되는 경우를 전제한다.
non-MPM 후보군이 하나로 구성되는 경우는 MPM 후보군 구성 과정에 포함되지 못한 예측 모드가 남은 것이기 때문에 추가적인 후보군 구성 과정은 요구되지 않는다. 그래서 non-MPM 후보군 내 인덱스에 기반하여 고정 길이 이진화(Fixed Length Binarization), 절단된 단항 이진화(Truncated Unary Binarization) 등의 이진화가 사용될 수 있다.
non-MPM 후보군이 둘 이상의 후보군으로 구성되는 경우를 가정하여 본 예에서 non-MPM 후보군은 non-MPM_A(이상 A 후보군)와 non-MPM_B(이상 B 후보군)으로 분류한다. A 후보군(p개. MPM 후보군 개수 이상)이 B 후보군(q개. A 후보군 개수 이상)보다 현재 블록의 예측 모드로 발생 가능성이 높은 예측 모드로 후보군을 구성한다고 가정한다. 이때, A 후보군 구성 과정이 추가될 수 있다.
예를 들어, 방향성 모드 중 균등한 간격(예를 들어, 2번, 4번, 6번 모드 등)을 갖는 일부 예측 모드를 A 후보군에 구성하거나 기 설정된 예측 모드(예를 들어, MPM 후보군에 포함된 예측 모드로부터 유도되는 모드 등)를 구성할 수 있다. 상기 MPM 후보군 구성과 A 후보군 구성을 통해 남은 예측 모드는 B 후보군으로 구성될 수 있으며, 추가적인 후보군 구성 과정은 요구되지 않는다. A 후보군와 B 후보군 내 인덱스에 기반하여 고정 길이 이진화, 절단된 단항 이진화 등의 이진화가 사용될 수 있다.
상기 예는 non-MPM 후보군이 둘 이상으로 구성되어 있는 일부 경우이며, 이에 한정되지 않고 다양한 변형의 예가 가능할 수 있다.
다음은 예측 모드를 예측하여 부호화하는 경우에 대한 과정을 나타낸다.
현재 블록의 예측 모드가 MPM(또는 MPM 후보군 내 일부 모드)과 일치하는지 여부에 대한 정보(mpm_flag)를 확인할 수 있다.
MPM과 일치하는 경우에 MPM의 구성(1개 또는 2개 이상)에 따라 MPM 인덱스 정보(mpm_idx)가 추가로 확인할 수 있다. 이후 현재 블록의 부호화 과정을 완료한다.
MPM과 일치하지 않는 경우에 non-MPM 후보군이 하나로 구성되어 있으면 non-MPM 인덱스 정보(remaining_idx)를 확인할 수 있다. 이후 현재 블록의 부호화 과정을 완료한다.
만약 non-MPM 후보군이 복수(본 예에서 2개)로 구성되어 있으면 현재 블록의 예측 모드가 A 후보군 내 일부 예측 모드와 일치하는지 여부에 대한 정보(non_mpm_flag)를 확인할 수 있다.
A 후보군과 일치하는 경우 A 후보군 인덱스 정보(non_mpm_A_idx)를 확인할 수 있고, A 후보군과 일치하지 않는 경우 B 후보군 인덱스 정보(remaining_idx)를 확인할 수 있다. 이후 현재 블록의 부호화 과정을 완료한다.
예측 모드 후보군 구성이 고정적인 경우에 현재 블록에서 지원되는 예측 모드와 인접한 블록에서 지원되는 예측 모드, 그리고 기 설정된 예측 모드는 동일한 예측 번호 인덱스를 사용할 수 있다.
한편, 예측 모드 후보군 구성이 적응적인 경우에는 현재 블록에서 지원되는 예측 모드와 인접한 블록에서 지원되는 예측 모드, 그리고 기 설정된 예측 모드는 동일한 예측 번호 인덱스를 사용하거나 다른 예측 번호 인덱스를 사용할 수 있다. 다음 설명을 위해 도 4를 참조한다.
상기 예측 모드 부호화 과정에서 MPM 후보군 등의 구성을 위한 예측 모드 후보군 통일(또는 조정) 과정이 수행될 수 있다. 예를 들어, 현재 블록의 예측 모드는 -5번 내지 61번 모드의 예측 모드 후보군 중 하나이고, 인접한 블록의 예측 모드는 2번 내지 66번 모드의 예측 모드 후보군 중 하나일 수 있다. 이 경우 인접한 블록의 예측 모드 일부(66번 모드)는 현재 블록의 예측 모드에 지원되지 않는 모드일 수 있기 때문에 예측 모드 부호화 과정에서 이를 통일시키는 과정이 수행될 수 있다. 즉, 고정적인 화면내 예측 모드 후보군 구성이 지원되는 경우에 요구되지 않는 과정일 수 있고, 적응적인 화면내 예측 모드 후보군 구성이 지원되는 경우에는 요구되는 과정일 수 있으며, 이에 대한 상세한 설명은 생략한다.
상기 MPM을 이용하는 방식과 달리 예측 모드 후보군에 속한 예측 모드에 인덱스를 할당하여 부호화를 수행할 수 있다.
예를 들어, 기 정의된 우선 순위에 따라 예측 모드에 인덱스를 할당하고 현재 블록의 예측 모드가 선정되면 해당 인덱스를 부호화하는 방법이 그에 해당한다. 이는 고정적으로 예측 모드 후보군이 구성되고 예측 모드에 고정적인 인덱스가 할당되는 경우를 의미한다.
또는, 예측 모드 후보군이 적응적으로 구성되는 경우에는 상기 고정적인 인덱스 할당 방법이 적합하지 않을 수 있다. 이를 위해 적응적인 우선 순위에 따라 예측 모드에 인덱스를 할당하고 현재 블록의 예측 모드가 선정되면 해당 인덱스를 부호화하는 방법을 적용할 수 있다. 이는 예측 모드 후보군의 적응적인 구성으로 인해 예측 모드에 할당되는 인덱스를 달리 하여 예측 모드를 효율적으로 부호화할 수 있다. 즉, 적응적인 우선 순위는 현재 블록의 예측 모드로 선정될 가능성이 높은 후보를 짧은 모드 비트가 발생하는 인덱스에 할당하고자 함일 수 있다.
다음은 예측 모드 후보군에 기 설정된 예측 모드(방향성 모드과 비방향성 모드), 컬러 복사 모드와 컬러 모드를 포함하는 8개의 예측 모드가 지원되는 경우(색차 성분)를 전제한다.
예를 들어, 기 설정된 예측 모드는 Planar, DC, 수평, 수직, 대각선 모드(본 예에서 Diagonal down left) 중에서 4개가 지원되고, 컬러 모드 1개(C)와 컬러 복사 모드 3개(CP1, CP2, CP3)가 지원되는 경우를 가정하자. 예측 모드에 할당되는 인덱스의 기본 순서는 기 설정된 예측 모드 - 컬러 복사 모드 - 컬러 모드 등으로 주어질 수 있다.
이때, 기 설정된 예측 모드인 방향성 모드, 비방향성 모드와 컬러 복사 모드는 예측 방법이 구분되는 예측 모드로 쉽게 구분할 수 있다. 다만, 컬러 모드의 경우 방향성 모드 또는 비방향성 모드일 수 있으며, 이는 기 설정된 예측 모드와 중복될 가능성이 존재할 수 있다. 일 예로, 컬러 모드가 수직 모드인 경우 기 설정된 예측 모드 중 하나인 수직 모드와 중복되는 경우가 발생할 수 있다.
부/복호화 설정에 따라 예측 모드 후보군의 수를 적응적으로 조정하는 경우 상기 중복적인 경우가 발생하면 후보군의 수를 조정(8개 -> 7개)할 수 있다. 또는, 예측 모드 후보군의 수를 고정적으로 유지하는 경우 상기 중복적인 경우가 발생하면 다른 후보를 추가 및 고려하여 인덱스를 할당할 수 있으며, 본 설정을 가정하여 후술한다. 또한, 적응적인 예측 모드 후보군은 컬러 모드와 같이 가변적인 모드를 포함하는 경우에도 지원되는 구성일 수 있다. 따라서 적응적인 인덱스 할당이 수행되는 경우는 적응적인 예측 모드 후보군 구성의 일 예로 간주할 수 있다.
다음은 컬러 모드에 따라 적응적인 인덱스 할당이 수행되는 경우를 설명한다. 기본 인덱스는 Planar(0) - 수직(1) - 수평(2) - DC(3) - CP1(4) - CP2(5) - CP3(6) - C(7)의 순서로 할당된다고 전제한다. 또한, 컬러 모드가 기 설정된 예측 모드와 일치하지 않는 경우에는 상기 순서로 인덱스 할당이 수행됨을 전제한다.
예를 들어, 컬러 모드가 기 설정된 예측 모드(Planar, 수직, 수평, DC 모드) 중 하나와 일치하는 경우에는 컬러 모드의 인덱스(7)에 일치하는 예측 모드가 채워진다. 일치하는 예측 모드의 인덱스(0 내지 3 중 하나)에는 기 설정된 예측 모드(Diagoanl down left)가 채워진다. 상세하게는, 컬러 모드가 수평 모드인 경우 Planar(0) - 수직(1) - Diagoanal down left(2) - DC(3) - CP1(4) - CP2(5) - CP3(6) - 수평(7)와 같은 인덱스 할당이 수행될 수 있다.
또는, 컬러 모드가 기 설정된 예측 모드 중 하나와 일치하는 경우에는 0번 인덱스에 일치하는 예측 모드가 채워진다. 그리고 컬러 모드의 인덱스(7)에 기 설정된 예측 모드(Diagoanal down left)가 채워진다. 이때, 채워진 예측 모드가 기존의 0번 인덱스가 아닌 경우(즉, Planar 모드가 아닌 경우)라면 기존 인덱스 구성이 조정될 수 있다. 상세하게는, 컬러 모드가 DC 모드인 경우 DC(0) - Planar(1) - 수직(2) - 수평(3) - CP1(4) - CP2(5) - CP3(6) - Diagonal down left(7)와 같은 인덱스 할당이 수행될 수 있다.
상기 예는 적응적인 인덱스 할당에 관한 일부 경우이며, 이에 한정되지 않고 다양한 변형의 예가 가능할 수 있다. 또한, 상기 후보군 내 인덱스에 기반하여 고정 길이 이진화, 단항 이진화, 절단된 단항 이진화, 절단된 Rice 이진화 등의 이진화가 사용될 수 있다.
다음은 예측 모드 후보군에 속한 예측 모드에 인덱스를 할당하여 부호화를 수행하는 다른 예를 살펴본다.
예를 들어, 예측 모드, 예측 방법 등으로 구분하여 복수의 예측 모드 후보군으로 분류하고 해당 후보군에 속한 예측 모드에 인덱스를 할당하여 부호화하는 방법이 그에 해당한다. 이 경우 후보군 선택 정보 부호화가 상기 인덱스 부호화에 선행할 수 있다. 일 예로, 동일한 컬러 공간에서 예측을 수행하는 예측 모드인 방향성 모드, 비방향성 모드, 컬러 모드가 하나의 후보군(이상 S 후보군)에 속할 수 있고, 다른 컬러 공간에서 예측을 수행하는 예측 모드인 컬러 복사 모드가 하나의 후보군(이상 D 후보군)에 속할 수 있다.
다음은 예측 모드 후보군에 기 설정된 예측 모드, 컬러 복사 모드와 컬러 모드를 포함하는 9개의 예측 모드가 지원되는 경우(색차 성분)를 전제한다.
예를 들어, 기 설정된 예측 모드는 Planar, DC, 수평, 수직, 대각선 모드 중에서 4개가 지원되고, 컬러 모드 1개(C)와 컬러 복사 모드 4개(CP1, CP2, CP3, CP4)가 지원되는 경우를 가정하자. S 후보군은 기 설정된 예측 모드와 컬러 모드로 구성되는 5개의 후보를 가질 수 있고, D 후보군은 컬러 복사 모드로 구성되는 4개의 후보를 가질 수 있다.
S 후보군은 적응적으로 구성되는 예측 모드 후보군의 일 예이고 적응적인 인덱스 할당에 관한 예는 전술하였으므로 상세한 설명은 생략한다. D 후보군은 고정적으로 구성되는 예측 모드 후보군의 일 예이므로 고정적인 인덱스 할당 방법을 사용할 수 있다. 예를 들어, CP1(0) - CP2(1) - CP3(2) -CP4(3)와 같은 인덱스 할당이 수행될 수 있다.
상기 후보군 내 인덱스에 기반하여 고정 길이 이진화, 단항 이진화, 절단된 단항 이진화, 절단된 Rice 이진화 등의 이진화가 사용될 수 있다. 또한, 상기 예에 한정되지 않고 다양한 변형의 예가 가능할 수 있다.
예측 모드 부호화부를 통해 생성되는 예측 관련 정보는 부호화부로 전송되어 비트스트림에 수록될 수 있다.
본 발명의 일 실시예에 따른 영상 복호화 방법에서 화면내 예측은 다음과 같이 구성될 수 있다. 예측부의 화면내 예측은 예측 모드 복호화 단계, 참조 화소 구성 단계, 예측 블록 생성 단계를 포함할 수 있다. 또한, 영상 복호화 장치는 예측 모드 복호화 단계, 참조 화소 구성 단계, 예측 블록 생성 단계를 구현하는 예측 모드 복호화부, 참조 화소 구성부, 예측 블록 생성부를 포함하도록 구성할 수 있다. 전술한 과정의 일부는 생략될 수 있거나 다른 과정이 추가될 수 있고, 상기 기재된 순서가 아닌 다른 순서로 변경될 수 있다.
영상 복호화 장치의 참조 화소 구성부, 예측 블록 생성부는 영상 부호화 장치의 대응되는 구성과 동일한 역할을 수행하므로 상세한 설명은 생략하며, 예측 모드 복호화부는 예측 모드 부호화부에서 사용한 방식을 역으로 사용하여 수행될 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
[산업상 이용가능성]
본 발명은 영상 부호화/복호화 방법 및 장치에 이용될 수 있다.

Claims (8)

  1. 영상 복호화 장치에 의해 수행되는 영상 복호화 방법으로서,
    현재 영상에 포함된 기본 부호화 단위를 적어도 하나의 부호화 단위로 분할하는 블록 분할 단계; 및
    상기 적어도 하나의 부호화 단위를 복호화하는 단계를 포함하고,
    상기 블록 분할 단계는 제1 트리 방식 분할 및 제2 트리 방식 분할 중 적어도 하나를 수행하고,
    상기 블록 분할 단계는 상기 블록 분할 단계에 의해 생성된 부호화 단위에 대해 재귀적으로 수행되고,
    상기 제2 트리 방식 분할에 의해 생성된 부호화 단위에 대한 상기 블록 분할 단계는 상기 제1 트리 방식 분할을 수행하지 않는 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 블록 분할 단계는 비트스트림으로부터 획득한 상기 제1 트리 방식 분할에 관한 제1 블록 분할 정보 또는 상기 제2 트리 방식 분할에 관한 제2 블록 분할 정보 중 적어도 하나에 기반하여 수행되고,
    상기 제1 블록 분할 정보는 상기 제1 트리 방식 분할의 수행 여부에 관한 정보를 포함하고,
    상기 제2 블록 분할 정보는 상기 제1 블록 분할 정보가 상기 제1 트리 방식 분할이 수행되지 않음을 지시하는 경우에 상기 비트스트림으로부터 획득되는 영상 복호화 방법.
  3. 제2항에 있어서,
    상기 제2 블록 분할 정보는 분할 방향 정보를 포함하는 영상 복호화 방법.
  4. 제1항에 있어서,
    상기 블록 분할 단계에서 지원되는 트리 방식 분할의 종류는 상기 현재 영상의 상위 레벨에서 시그널링되는 정보 또는 상기 현재 영상의 영상 타입에 기반하여 적응적으로 결정되는 영상 복호화 방법.
  5. 제4항에 있어서,
    상기 상위 레벨은 시퀀스 레벨인 영상 복호화 방법.
  6. 제4항에 있어서,
    상기 현재 영상의 영상 타입은 I 타입, P 타입 또는 B 타입 중 하나를 의미하는 영상 복호화 방법.
  7. 영상 부호화 장치에 의해 수행되는 영상 부호화 방법으로서,
    현재 영상에 포함된 기본 부호화 단위를 적어도 하나의 부호화 단위로 분할하는 블록 분할 단계; 및
    상기 적어도 하나의 부호화 단위를 부호화하는 단계를 포함하고,
    상기 블록 분할 단계는 제1 트리 방식 분할 및 제2 트리 방식 분할 중 적어도 하나를 수행하고,
    상기 블록 분할 단계는 상기 블록 분할 단계에 의해 생성된 부호화 단위에 대해 재귀적으로 수행되고,
    상기 제2 트리 방식 분할에 의해 생성된 부호화 단위에 대한 상기 블록 분할 단계는 상기 제1 트리 방식 분할을 수행하지 않는 영상 부호화 방법.
  8. 영상 부호화 방법에 의해 생성된 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체로서, 상기 영상 부호화 방법은,
    현재 영상에 포함된 기본 부호화 단위를 적어도 하나의 부호화 단위로 분할하는 블록 분할 단계; 및
    상기 적어도 하나의 부호화 단위를 부호화하는 단계를 포함하고,
    상기 블록 분할 단계는 제1 트리 방식 분할 및 제2 트리 방식 분할 중 적어도 하나를 수행하고,
    상기 블록 분할 단계는 상기 블록 분할 단계에 의해 생성된 부호화 단위에 대해 재귀적으로 수행되고,
    상기 제2 트리 방식 분할에 의해 생성된 부호화 단위에 대한 상기 블록 분할 단계는 상기 제1 트리 방식 분할을 수행하지 않는 영상 부호화 방법.

KR1020217027252A 2018-01-15 2019-01-11 색차 성분에 관한 화면내 예측 부호화/복호화 방법 및 장치 KR20210111323A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237026449A KR20230117490A (ko) 2018-01-15 2019-01-11 색차 성분에 관한 화면내 예측 부호화/복호화 방법및 장치

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020180005294 2018-01-15
KR20180005294 2018-01-15
KR1020197021887A KR102296536B1 (ko) 2018-01-15 2019-01-11 색차 성분에 관한 화면내 예측 부호화/복호화 방법 및 장치
PCT/KR2019/000436 WO2019139393A1 (ko) 2018-01-15 2019-01-11 색차 성분에 관한 화면내 예측 부호화/복호화 방법 및 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020197021887A Division KR102296536B1 (ko) 2018-01-15 2019-01-11 색차 성분에 관한 화면내 예측 부호화/복호화 방법 및 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237026449A Division KR20230117490A (ko) 2018-01-15 2019-01-11 색차 성분에 관한 화면내 예측 부호화/복호화 방법및 장치

Publications (1)

Publication Number Publication Date
KR20210111323A true KR20210111323A (ko) 2021-09-10

Family

ID=67219778

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020237026449A KR20230117490A (ko) 2018-01-15 2019-01-11 색차 성분에 관한 화면내 예측 부호화/복호화 방법및 장치
KR1020217027252A KR20210111323A (ko) 2018-01-15 2019-01-11 색차 성분에 관한 화면내 예측 부호화/복호화 방법 및 장치
KR1020197021887A KR102296536B1 (ko) 2018-01-15 2019-01-11 색차 성분에 관한 화면내 예측 부호화/복호화 방법 및 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020237026449A KR20230117490A (ko) 2018-01-15 2019-01-11 색차 성분에 관한 화면내 예측 부호화/복호화 방법및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020197021887A KR102296536B1 (ko) 2018-01-15 2019-01-11 색차 성분에 관한 화면내 예측 부호화/복호화 방법 및 장치

Country Status (6)

Country Link
US (4) US11012689B2 (ko)
KR (3) KR20230117490A (ko)
CN (1) CN111602400B (ko)
CA (1) CA3105432A1 (ko)
SG (1) SG11202012036QA (ko)
WO (1) WO2019139393A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020004900A1 (ko) 2018-06-25 2020-01-02 김기백 화면내 예측 방법 및 장치
KR20210015963A (ko) * 2018-06-29 2021-02-10 후아웨이 테크놀러지 컴퍼니 리미티드 인트라-예측을 위한 디바이스 및 방법
US11677969B2 (en) * 2019-03-22 2023-06-13 Tencent America LLC Method and apparatus for video coding
CN116114245A (zh) * 2021-09-02 2023-05-12 辉达公司 在视频编码过程中视频帧的并行处理

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101375664B1 (ko) 2007-10-29 2014-03-20 삼성전자주식회사 영상의 디퓨전 특성을 이용한 영상 부호화/복호화 방법 및장치
BR122021004600B1 (pt) 2010-12-23 2022-08-16 Samsung Electronics Co., Ltd Método de decodificar uma imagem, e método de codificação de uma imagem
KR101789478B1 (ko) 2011-03-06 2017-10-24 엘지전자 주식회사 휘도 샘플을 이용한 색차 블록의 화면 내 예측 방법 및 이러한 방법을 사용하는 장치
KR20120140181A (ko) * 2011-06-20 2012-12-28 한국전자통신연구원 화면내 예측 블록 경계 필터링을 이용한 부호화/복호화 방법 및 그 장치
US9674521B2 (en) * 2011-06-28 2017-06-06 Samsung Electronics Co., Ltd. Prediction method and apparatus for chroma component of image using luma component of image
RS61146B1 (sr) * 2011-10-24 2020-12-31 Innotive Ltd Postupak i aparat za dekodiranje slike
CN110809157B (zh) 2012-01-18 2023-05-02 韩国电子通信研究院 视频解码装置、视频编码装置和传输比特流的方法
KR101691314B1 (ko) * 2012-06-11 2016-12-29 닛폰 호소 교카이 부호화 장치, 복호 장치 및 프로그램
KR101875762B1 (ko) * 2015-06-05 2018-07-06 인텔렉추얼디스커버리 주식회사 화면 내 예측 모드에 대한 부호화/복호화 방법 및 장치
CN115134595A (zh) 2015-06-05 2022-09-30 杜比实验室特许公司 用于执行帧间预测的图像编解码方法、比特流存储方法
US10212444B2 (en) * 2016-01-15 2019-02-19 Qualcomm Incorporated Multi-type-tree framework for video coding
US20190289301A1 (en) * 2016-05-23 2019-09-19 Kaonmedia Co., Ltd. Image processing method, and image encoding and decoding method using same
US10863186B2 (en) * 2016-08-26 2020-12-08 Sharp Kabushiki Kaisha Image decoding apparatus and image coding apparatus
US10419757B2 (en) * 2016-08-31 2019-09-17 Qualcomm Incorporated Cross-component filter
US10779004B2 (en) * 2016-10-12 2020-09-15 Mediatek Inc. Methods and apparatuses of constrained multi-type-tree block partition for video coding
WO2018116925A1 (ja) * 2016-12-21 2018-06-28 シャープ株式会社 イントラ予測画像生成装置、画像復号装置、および画像符号化装置
US20180199062A1 (en) * 2017-01-11 2018-07-12 Qualcomm Incorporated Intra prediction techniques for video coding
JP2021010046A (ja) * 2017-10-06 2021-01-28 シャープ株式会社 画像符号化装置及び画像復号装置

Also Published As

Publication number Publication date
US11838499B2 (en) 2023-12-05
KR102296536B1 (ko) 2021-09-01
CN111602400B (zh) 2024-04-19
US20210092363A1 (en) 2021-03-25
SG11202012036QA (en) 2021-01-28
US11381809B2 (en) 2022-07-05
CN111602400A (zh) 2020-08-28
US20240040111A1 (en) 2024-02-01
WO2019139393A1 (ko) 2019-07-18
US11012689B2 (en) 2021-05-18
KR20230117490A (ko) 2023-08-08
KR20190094468A (ko) 2019-08-13
US20200288122A1 (en) 2020-09-10
CA3105432A1 (en) 2019-07-18
US20220286670A1 (en) 2022-09-08

Similar Documents

Publication Publication Date Title
US20220182602A1 (en) Method and apparatus for encoding/decoding image
KR102296536B1 (ko) 색차 성분에 관한 화면내 예측 부호화/복호화 방법 및 장치
US11956425B2 (en) Image encoding/decoding method and device
KR20210016053A (ko) 영상 부호화/복호화 방법 및 장치
KR20240036533A (ko) 복수의 예측 모드 후보군을 사용하여 화면내 예측을 수행하는 영상 부호화/복호화 방법 및 장치
JP7453236B2 (ja) 画像符号化/復号化方法及び装置
US20240163422A1 (en) Encoding/decoding method and apparatus for coding unit partitioning
CN111937395B (zh) 用于编码/解码图像的方法和装置
KR20210009417A (ko) 영상 부호화/복호화 방법 및 장치

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
A107 Divisional application of patent
E601 Decision to refuse application