KR20230002091A - 화면내 예측 기반의 비디오 신호 부호화/복호화 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체 - Google Patents

화면내 예측 기반의 비디오 신호 부호화/복호화 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체 Download PDF

Info

Publication number
KR20230002091A
KR20230002091A KR1020220078232A KR20220078232A KR20230002091A KR 20230002091 A KR20230002091 A KR 20230002091A KR 1020220078232 A KR1020220078232 A KR 1020220078232A KR 20220078232 A KR20220078232 A KR 20220078232A KR 20230002091 A KR20230002091 A KR 20230002091A
Authority
KR
South Korea
Prior art keywords
block
prediction
sub
intra
current block
Prior art date
Application number
KR1020220078232A
Other languages
English (en)
Inventor
임성원
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Publication of KR20230002091A publication Critical patent/KR20230002091A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

본 개시에 따른 영상 부호화/복호화 방법 및 장치는, 트리 구조 기반의 블록 분할을 통해 현재 블록을 결정하고, 현재 블록을 서브 샘플링하여 현재 블록으로부터 하나 또는 그 이상의 서브 블록을 구성하며, 소정의 스캔 순서에 따라 현재 블록에 속한 서브 블록을 부호화/복호화할 수 있다.

Description

화면내 예측 기반의 비디오 신호 부호화/복호화 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체{METHOD AND APPARATUS FOR ENCODING/DECODING A VIDEO SIGNAL BASED ON INTRA PREDICTION, AND A RECORDING MEDIUM STORING A BITSTREAM}
본 개시는 비디오 신호 처리 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 응용 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 데이터량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 저장하는 경우, 전송 비용과 저장 비용이 증가하게 된다. 영상 데이터가 고해상도, 고품질화 됨에 따라 발생하는 이러한 문제들을 해결하기 위해서는 고효율의 영상 압축 기술들이 활용될 수 있다.
영상 압축 기술로 현재 픽쳐의 이전 또는 이후 픽쳐로부터 현재 픽쳐에 포함된 화소값을 예측하는 화면 간 예측 기술, 현재 픽쳐 내의 화소 정보를 이용하여 현재 픽쳐에 포함된 화소값을 예측하는 화면 내 예측 기술, 출현 빈도가 높은 값에 짧은 부호를 할당하고 출현 빈도가 낮은 값에 긴 부호를 할당하는 엔트로피 부호화 기술 등 다양한 기술이 존재하고 이러한 영상 압축 기술을 이용해 영상 데이터를 효과적으로 압축하여 전송 또는 저장할 수 있다.
한편, 고해상도 영상에 대한 수요가 증가함과 함께, 새로운 영상 서비스로서 입체 영상 컨텐츠에 대한 수요도 함께 증가하고 있다. 고해상도 및 초고해상도의 입체 영상 콘텐츠를 효과적으로 제공하기 위한 비디오 압축 기술에 대하여 논의가 진행되고 있다.
본 개시는 트리 구조의 블록 분할 방법 및 장치를 제공하고자 한다.
본 개시는 화면내 예측을 위한 화면내 예측 모드를 유도하는 방법 및 장치를 제공하고자 한다.
본 개시는 화면내 예측을 위한 확장된 참조 화소를 유도하는 방법 및 장치를 제공하고자 한다.
본 개시는 개선된 화면내 예측을 수행하는 방법 및 장치를 제공하고자 한다.
본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시에 따른 영상 복호화 방법은, 트리 구조 기반의 블록 분할을 통해 현재 블록을 결정하고, 상기 현재 블록을 서브 샘플링하여, 상기 현재 블록으로부터 하나 또는 그 이상의 서브 블록을 구성하며, 소정의 스캔 순서에 따라, 상기 현재 블록에 속한 서브 블록을 복호화할 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 트리 구조 기반의 블록 분할은, 펜타 트리(Penta-tree) 분할 또는 쿼드 트리(quad-tree) 분할 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 쿼드 트리 분할은, 수직 방향 또는 수평 방향 중 어느 하나의 방향으로, 부호화 블록을 4개의 부호화 블록으로 분할하고, 상기 쿼드 트리 분할은, 소정의 분할 비율을 가진 복수의 분할 타입 중 어느 하나를 선택적으로 이용하여 수행될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 현재 블록은 NxM 크기의 서브 영역 단위로 구분되고, 상기 서브 블록은 각 서브 영역 단위로로부터 추출된 동일 위치의 화소들로 구성될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 서브 샘플링은 수평 방향 또는 수직 방향 중 어느 하나의 방향에 대해서만 수행될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 서브 영역 단위의 크기는, 상기 현재 블록에 관한 부호화 파라미터에 기초하여 적응적으로 결정되고, 상기 부호화 파라미터는, 슬라이스 타입, 블록 크기, 화면내 예측 모드, 화면내 예측 모드의 방향성, 성분 타입, 변환 타입, 변환 스킵 여부, 또는 스캔 순서 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 서브 블록을 복호화하는 단계는, 상기 서브 블록의 예측을 위한 참조 화소를 유도하는 단계, 상기 서브 블록의 예측을 위한 화면내 예측 모드를 유도하는 단계, 또는 상기 서브 블록의 화면내 예측을 수행하는 단계 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 참조 화소는, 상기 현재 블록에 인접화 화소 또는 상기 현재 블록 내 기-복원된 서브 블록의 화소 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 화면내 예측 모드는, 상기 현재 블록의 MPM 리스트로부터 유도되고, 상기 MPM 리스트는 복수의 MPM 후보를 포함하고, 상기 복수의 MPM 후보 중 적어도 하나는, 상기 현재 블록의 좌측 중앙 블록, 상단 중앙 블록, 우측 블록, 또는 하단 블록 중 적어도 하나를 이용하여 유도될 수 있다.
본 개시에 따른 영상 복호화 방법에 있어서, 상기 서브 블록의 화면내 예측은, 화면내 예측 모드 기반의 화면내 예측 방법 또는 선형 모델 기반의 화면내 예측 방법 중 적어도 하나를 이용하여 수행될 수 있다.
본 개시에 따른 영상 부호화 방법은, 트리 구조 기반의 블록 분할을 통해 현재 블록을 결정하고, 상기 현재 블록을 서브 샘플링하여, 상기 현재 블록으로부터 하나 또는 그 이상의 서브 블록을 구성하며, 소정의 스캔 순서에 따라, 상기 현재 블록에 속한 서브 블록을 부호화하는 단계를 포함할 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 트리 구조 기반의 블록 분할은, 펜타 트리(Penta-tree) 분할 또는 쿼드 트리(quad-tree) 분할 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 쿼드 트리 분할은, 수직 방향 또는 수평 방향 중 어느 하나의 방향으로, 부호화 블록을 4개의 부호화 블록으로 분할하고, 상기 쿼드 트리 분할은, 소정의 분할 비율을 가진 복수의 분할 타입 중 어느 하나를 선택적으로 이용하여 수행될 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 현재 블록은 NxM 크기의 서브 영역 단위로 구분되고, 상기 서브 블록은 각 서브 영역 단위로로부터 추출된 동일 위치의 화소들로 구성될 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 서브 샘플링은 수평 방향 또는 수직 방향 중 어느 하나의 방향에 대해서만 수행될 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 서브 영역 단위의 크기는, 상기 현재 블록에 관한 부호화 파라미터에 기초하여 적응적으로 결정되고, 상기 부호화 파라미터는, 슬라이스 타입, 블록 크기, 화면내 예측 모드, 화면내 예측 모드의 방향성, 성분 타입, 변환 타입, 변환 스킵 여부, 또는 스캔 순서 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 서브 블록을 부호화하는 단계는, 상기 서브 블록의 예측을 위한 참조 화소를 유도하는 단계, 상기 서브 블록의 예측을 위한 화면내 예측 모드를 결정하는 단계, 또는 상기 서브 블록의 화면내 예측을 수행하는 단계 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 참조 화소는, 상기 현재 블록에 인접화 화소 또는 상기 현재 블록 내 기-복원된 서브 블록의 화소 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 화면내 예측 모드는, 상기 현재 블록의 MPM 리스트로부터 결정되고, 상기 MPM 리스트는 복수의 MPM 후보를 포함하고, 상기 복수의 MPM 후보 중 적어도 하나는, 상기 현재 블록의 좌측 중앙 블록, 상단 중앙 블록, 우측 블록, 또는 하단 블록 중 적어도 하나를 이용하여 유도될 수 있다.
본 개시에 따른 영상 부호화 방법에 있어서, 상기 서브 블록의 화면내 예측은, 화면내 예측 모드 기반의 화면내 예측 방법 또는 선형 모델 기반의 화면내 예측 방법 중 적어도 하나를 이용하여 수행될 수 있다.
본 개시에 따른 컴퓨터로 판독가능한 기록 매체는 전술한 영상 부호화 방법에 의해 생성된 혹은 영상 복호화 방법에 의해 복호화되는 비트스트림을 저장할 수 있다.
본 개시에 따른 컴퓨팅 장치는 전술한 영상 부호화 방법에 의해 생성된 비트스트림을 전송하기 위한 프로그램(instructions)을 저장할 수 있다.
본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.
본 개시에 의하면, 다양한 트리 구조의 블록 분할을 통해 효과적으로 부호화 블록, 예측 블록 또는 변환 블록의 크기와 형태를 결정할 수 있다.
본 개시에 의하면, 확장된 MPM 후보 및 참조 화소를 기반으로 이용하여 화면내 예측의 부호화 효율을 향상시킬 수 있다.
본 개시에 의하면, 개선된 화면내 예측을 통해 부호화 효율을 향상시킬 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 일실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 2는 본 개시의 일실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 3 내지 도 12는 본 개시에 따른 블록 분할 방법을 도시한 것이다.
도 13 내지 도 17은 본 개시에 따른 블록 분할 방식에 따른 부호화 순서를 도시한 것이다.
도 18은 본 개시에 따른 서브 블록 기반의 화면내 예측 방법을 도시한 것이다.
도 19는 본 개시가 적용되는 일실시예로서, 현재 블록을 서브 샘플링하여 복수의 서브 블록을 구성하는 방법을 도시한 것이다.
도 20 내지 도 25는 본 개시가 적용되는 일실시예로서, 서브 블록의 예측을 위한 참조 화소를 유도하는 방법을 도시한 것이다.
도 26 및 도 27은 본 개시가 적용되는 일실시예로서, 현재 블록이 이용 가능한 기-정의된 화면내 예측 모드들을 도시한 것이다.
도 28 및 도 29는 본 개시가 적용되는 일실시예로서, MPM 리스트를 구성할 때 사용되는 주변 참조 위치를 도시한 것이다.
도 30 내지 도 34는 본 개시가 적용되는 일실시예로서, 화면내 예측 모드 별 예측 화소 생성 방법을 도시한 것이다.
도 35는 본 개시가 적용되는 일실시예로서, 선형 모델 기반의 화면내 예측 방법을 도시한 것이다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 개시를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 개시를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 개시의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 개시의 일실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 1을 참조하면, 영상 부호화 장치(100)는 픽쳐 분할부(110), 예측부(120, 125), 변환부(130), 양자화부(135), 재정렬부(160), 엔트로피 부호화부(165), 역양자화부(140), 역변환부(145), 필터부(150) 및 메모리(155)를 포함할 수 있다.
도 1에 나타난 각 구성부들은 영상 부호화 장치에서 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시한 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 개시의 본질에서 벗어나지 않는 한 본 개시의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 개시에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 개시는 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 개시의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 개시의 권리범위에 포함된다.
픽쳐 분할부(110)는 입력된 픽쳐를 적어도 하나의 처리 단위로 분할할 수 있다. 이때, 처리 단위는 예측 단위(Prediction Unit: PU)일 수도 있고, 변환 단위(Transform Unit: TU)일 수도 있으며, 부호화 단위(Coding Unit: CU)일 수도 있다. 픽쳐 분할부(110)에서는 하나의 픽쳐에 대해 복수의 부호화 단위, 예측 단위 및 변환 단위의 조합으로 분할하고 소정의 기준(예를 들어, 비용 함수)으로 하나의 부호화 단위, 예측 단위 및 변환 단위 조합을 선택하여 픽쳐를 부호화 할 수 있다.
예를 들어, 하나의 픽쳐는 복수개의 부호화 단위로 분할될 수 있다. 픽쳐에서 부호화 단위를 분할하기 위해서는 쿼드 트리(Quad Tree), 터너리 트리 (Ternary Tree), 또는 바이너리 트리(Binary Tree) 와 같은 재귀적인 트리 구조를 사용할 수 있는데 하나의 영상 또는 최대 크기 부호화 단위(largest coding unit)를 루트로 하여 다른 부호화 단위로 분할되는 부호화 유닛은 분할된 부호화 단위의 개수만큼의 자식 노드를 가지고 분할될 수 있다. 일정한 제한에 따라 더 이상 분할되지 않는 부호화 단위는 리프 노드가 된다. 일 예로, 하나의 코딩 유닛에 대해 쿼드 트리 분할이 적용되는 것으로 가정하는 경우, 하나의 부호화 단위는 최대 4개의 다른 부호화 단위로 분할될 수 있다.
이하, 본 개시의 실시예에서는 부호화 단위는 부호화를 수행하는 단위의 의미로 사용할 수도 있고, 복호화를 수행하는 단위의 의미로 사용할 수도 있다.
예측 단위는 하나의 부호화 단위 내에서 동일한 크기의 적어도 하나의 정사각형 또는 직사각형 등의 형태를 가지고 분할된 것일 수도 있고, 하나의 부호화 단위 내에서 분할된 예측 단위 중 어느 하나의 예측 단위가 다른 하나의 예측 단위와 상이한 형태 및/또는 크기를 가지도록 분할된 것일 수도 있다.
화면내 예측시, 변환 단위와 예측 단위가 동일하게 설정될 수 있다. 이때, 부호화 유닛을 복수의 변환 단위들로 분할한 뒤, 각 변환 단위마다 화면내 예측을 수행할 수도 있다. 부호화 유닛은, 수평 방향 또는 수직 방향으로 분할될 수 있다. 부호화 단위를 분할하여 생성되는 변환 단위들의 개수는 부호화 단위의 크기에 따라, 2개 또는 4개일 수 있다.
예측부(120, 125)는 화면간 예측을 수행하는 화면간 예측부(120)와 화면내 예측을 수행하는 화면내 예측부(125)를 포함할 수 있다. 부호화 단위에 대해 화면간 예측을 사용할 것인지 또는 화면내 예측을 수행할 것인지를 결정하고, 각 예측 방법에 따른 구체적인 정보(예컨대, 화면내 예측 모드, 움직임 벡터, 참조 픽쳐 등)를 결정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 다를 수 있다. 예컨대, 예측의 방법과 예측 모드 등은 부호화 단위로 결정되고, 예측의 수행은 예측 단위 또는 변환 단위로 수행될 수도 있다. 생성된 예측 블록과 원본 블록 사이의 잔차값(잔차 블록)은 변환부(130)로 입력될 수 있다. 또한, 예측을 위해 사용한 예측 모드 정보, 움직임 벡터 정보 등은 잔차값과 함께 엔트로피 부호화부(165)에서 부호화되어 복호화 장치에 전달될 수 있다. 특정한 부호화 모드를 사용할 경우, 예측부(120, 125)를 통해 예측 블록을 생성하지 않고, 원본 블록을 그대로 부호화하여 복호화부에 전송하는 것도 가능하다.
화면간 예측부(120)는 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐의 정보를 기초로 예측 단위를 예측할 수도 있고, 경우에 따라서는 현재 픽쳐 내의 부호화가 완료된 일부 영역의 정보를 기초로 예측 단위를 예측할 수도 있다. 화면간 예측부(120)는 참조 픽쳐 보간부, 움직임 예측부, 움직임 보상부를 포함할 수 있다.
참조 픽쳐 보간부에서는 메모리(155)로부터 참조 픽쳐 정보를 제공받고 참조 픽쳐에서 정수 화소 이하의 화소 정보를 생성할 수 있다. 휘도 화소의 경우, 1/4 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 8탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다. 색차 신호의 경우 1/8 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 4탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다.
움직임 예측부는 참조 픽쳐 보간부에 의해 보간된 참조 픽쳐를 기초로 움직임 예측을 수행할 수 있다. 움직임 벡터를 산출하기 위한 방법으로 FBMA(Full search-based Block Matching Algorithm), TSS(Three Step Search), NTS(New Three-Step Search Algorithm) 등 다양한 방법이 사용될 수 있다. 움직임 벡터는 보간된 화소를 기초로 1/2 또는 1/4 화소 단위의 움직임 벡터값을 가질 수 있다. 움직임 예측부에서는 움직임 예측 방법을 다르게 하여 현재 예측 단위를 예측할 수 있다. 움직임 예측 방법으로 스킵(Skip) 방법, 머지(Merge) 방법, AMVP(Advanced Motion Vector Prediction) 방법, 화면내 블록 카피(Intra Block Copy) 방법 등 다양한 방법이 사용될 수 있다.
화면내 예측부(125)는 현재 픽쳐 내의 화소 정보인 참조 픽셀 정보를 기초로 예측 블록을 생성할 수 있다. 복수의 참조 픽셀 라인들 중 선택된 하나로부터 참조 픽셀 정보를 유도할 수 있다. 복수의 참조 픽셀 라인들 중 N번째 참조 픽셀 라인은, 현재 블록 내 좌상단 픽셀과의 x축 차분이 N인 좌측 픽셀들 및 상기 좌상단 픽셀과의 y축 차분이 N인 상단 픽셀들을 포함할 수 있다. 현재 블록이 선택할 수 있는 참조 픽셀 라인들의 개수는, 1개, 2개, 3개 또는 4개일 수 있다.
현재 예측 단위의 주변 블록이 화면간 예측을 수행한 블록이어서, 참조 픽셀이 화면간 예측을 수행한 픽셀일 경우, 화면간 예측을 수행한 블록에 포함되는 참조 픽셀을 주변의 화면내 예측을 수행한 블록의 참조 픽셀 정보로 대체하여 사용할 수 있다. 즉, 참조 픽셀이 가용하지 않는 경우, 가용하지 않은 참조 픽셀 정보를 가용한 참조 픽셀들 중 적어도 하나의 정보로 대체하여 사용할 수 있다.
화면내 예측에서 예측 모드는 참조 픽셀 정보를 예측 방향에 따라 사용하는 방향성 예측 모드와 예측을 수행시 방향성 정보를 사용하지 않는 비방향성 모드를 가질 수 있다. 휘도 정보를 예측하기 위한 모드와 색차 정보를 예측하기 위한 모드가 상이할 수 있고, 색차 정보를 예측하기 위해 휘도 정보를 예측하기 위해 사용된 화면내 예측 모드 정보 또는 예측된 휘도 신호 정보를 활용할 수 있다.
화면내 예측을 수행할 때 예측 단위의 크기와 변환 단위의 크기가 동일할 경우, 예측 단위의 좌측에 존재하는 픽셀, 좌측 상단에 존재하는 픽셀, 상단에 존재하는 픽셀을 기초로 예측 단위에 대한 화면내 예측을 수행할 수 있다.
화면내 예측 방법은 예측 모드에 따라 참조 화소에 스무딩(Smoothing) 필터를 적용한 후 예측 블록을 생성할 수 있다. 선택된 참조 픽셀 라인에 따라, 스무딩 필터의 적용 여부가 결정될 수 있다.
화면내 예측 방법을 수행하기 위해 현재 예측 단위의 화면내 예측 모드는 현재 예측 단위의 주변에 존재하는 예측 단위의 화면내 예측 모드로부터 예측할 수 있다. 주변 예측 단위로부터 예측된 모드 정보를 이용하여 현재 예측 단위의 예측 모드를 예측하는 경우, 현재 예측 단위와 주변 예측 단위의 화면내 예측 모드가 동일하면 소정의 플래그 정보를 이용하여 현재 예측 단위와 주변 예측 단위의 예측 모드가 동일하다는 정보를 전송할 수 있고, 만약 현재 예측 단위와 주변 예측 단위의 예측 모드가 상이하면 엔트로피 부호화를 수행하여 현재 블록의 예측 모드 정보를 부호화할 수 있다.
또한, 예측부(120, 125)에서 생성된 예측 단위를 기초로 예측을 수행한 예측 단위와 예측 단위의 원본 블록과 차이값인 잔차값(Residual) 정보를 포함하는 잔차 블록이 생성될 수 있다. 생성된 잔차 블록은 변환부(130)로 입력될 수 있다.
변환부(130)에서는 원본 블록과 예측부(120, 125)를 통해 생성된 예측 단위의 잔차값(residual)정보를 포함한 잔차 블록을 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT와 같은 변환 방법을 사용하여 변환시킬 수 있다. 잔차 블록을 변환하기 위해 DCT를 적용할지, DST를 적용할지 또는 KLT를 적용할지는, 변환 단위의 크기, 변환 단위의 형태, 예측 단위의 예측 모드 또는 예측 단위의 화면내 예측 모드 정보 중 적어도 하나를 기초로 결정할 수 있다.
양자화부(135)는 변환부(130)에서 주파수 영역으로 변환된 값들을 양자화할 수 있다. 블록에 따라 또는 영상의 중요도에 따라 양자화 계수는 변할 수 있다. 양자화부(135)에서 산출된 값은 역양자화부(140)와 재정렬부(160)에 제공될 수 있다.
재정렬부(160)는 양자화된 잔차값에 대해 계수값의 재정렬을 수행할 수 있다.
재정렬부(160)는 계수 스캐닝(Coefficient Scanning) 방법을 통해 2차원의 블록 형태 계수를 1차원의 벡터 형태로 변경할 수 있다. 예를 들어, 재정렬부(160)에서는 지그-재그 스캔(Zig-Zag Scan)방법을 이용하여 DC 계수부터 고주파수 영역의 계수까지 스캔하여 1차원 벡터 형태로 변경시킬 수 있다. 변환 단위의 크기 및 화면내 예측 모드에 따라 지그-재그 스캔 대신 2차원의 블록 형태 계수를 열 방향으로 스캔하는 수직 스캔, 2차원의 블록 형태 계수를 행 방향으로 스캔하는 수평 스캔, 또는 2차원의 블록 형태 계수를 대각 방향으로 스캔하는 대각 스캔이 사용될 수도 있다. 즉, 변환 단위의 크기 및 화면내 예측 모드에 따라 지그-재그 스캔, 수직 방향 스캔, 수평 방향 스캔 또는 대각 스캔 중 어떠한 스캔 방법이 사용될지 여부를 결정할 수 있다.
엔트로피 부호화부(165)는 재정렬부(160)에 의해 산출된 값들을 기초로 엔트로피 부호화를 수행할 수 있다. 엔트로피 부호화는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 부호화 방법을 사용할 수 있다.
엔트로피 부호화부(165)는 재정렬부(160) 및 예측부(120, 125)로부터 부호화 단위의 잔차값 계수 정보 및 블록 타입 정보, 예측 모드 정보, 분할 단위 정보, 예측 단위 정보 및 전송 단위 정보, 움직임 벡터 정보, 참조 프레임 정보, 블록의 보간 정보, 필터링 정보 등 다양한 정보를 부호화할 수 있다.
엔트로피 부호화부(165)에서는 재정렬부(160)에서 입력된 부호화 단위의 계수값을 엔트로피 부호화할 수 있다.
역양자화부(140) 및 역변환부(145)에서는 양자화부(135)에서 양자화된 값들을 역양자화하고 변환부(130)에서 변환된 값들을 역변환한다. 역양자화부(140) 및 역변환부(145)에서 생성된 잔차값(Residual)은 예측부(120, 125)에 포함된 움직임 추정부, 움직임 보상부 및 화면내 예측부를 통해서 예측된 예측 단위와 합쳐져 복원 블록(Reconstructed Block)을 생성할 수 있다.
필터부(150)는 디블록킹 필터, 오프셋 보정부, ALF(Adaptive Loop Filter)중 적어도 하나를 포함할 수 있다.
디블록킹 필터는 복원된 픽쳐에서 블록간의 경계로 인해 생긴 블록 왜곡을 제거할 수 있다. 디블록킹을 수행할지 여부를 판단하기 위해 블록에 포함된 몇 개의 열 또는 행에 포함된 픽셀을 기초로 현재 블록에 디블록킹 필터 적용할지 여부를 판단할 수 있다. 블록에 디블록킹 필터를 적용하는 경우 필요한 디블록킹 필터링 강도에 따라 강한 필터(Strong Filter) 또는 약한 필터(Weak Filter)를 적용할 수 있다. 또한 디블록킹 필터를 적용함에 있어 수직 필터링 및 수평 필터링 수행시 수평 방향 필터링 및 수직 방향 필터링이 병행 처리되도록 할 수 있다.
오프셋 보정부는 디블록킹을 수행한 영상에 대해 픽셀 단위로 원본 영상과의 오프셋을 보정할 수 있다. 특정 픽쳐에 대한 오프셋 보정을 수행하기 위해 영상에 포함된 픽셀을 일정한 수의 영역으로 구분한 후 오프셋을 수행할 영역을 결정하고 해당 영역에 오프셋을 적용하는 방법 또는 각 픽셀의 에지 정보를 고려하여 오프셋을 적용하는 방법을 사용할 수 있다.
ALF(Adaptive Loop Filtering)는 필터링한 복원 영상과 원래의 영상을 비교한 값을 기초로 수행될 수 있다. 영상에 포함된 픽셀을 소정의 그룹으로 나눈 후 해당 그룹에 적용될 하나의 필터를 결정하여 그룹마다 차별적으로 필터링을 수행할 수 있다. ALF를 적용할지 여부에 관련된 정보는 휘도 신호는 부호화 단위(Coding Unit, CU) 별로 전송될 수 있고, 각각의 블록에 따라 적용될 ALF 필터의 모양 및 필터 계수는 달라질 수 있다. 또한, 적용 대상 블록의 특성에 상관없이 동일한 형태(고정된 형태)의 ALF 필터가 적용될 수도 있다.
메모리(155)는 필터부(150)를 통해 산출된 복원 블록 또는 픽쳐를 저장할 수 있고, 저장된 복원 블록 또는 픽쳐는 화면간 예측을 수행 시 예측부(120, 125)에 제공될 수 있다.
도 2는 본 개시의 일실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 2를 참조하면, 영상 복호화 장치(200)는 엔트로피 복호화부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230, 235), 필터부(240), 메모리(245)가 포함될 수 있다.
영상 부호화 장치에서 영상 비트스트림이 입력된 경우, 입력된 비트스트림은 영상 부호화 장치와 반대의 절차로 복호화될 수 있다.
엔트로피 복호화부(210)는 영상 부호화 장치의 엔트로피 부호화부에서 엔트로피 부호화를 수행한 것과 반대의 절차로 엔트로피 복호화를 수행할 수 있다. 예를 들어, 영상 부호화 장치에서 수행된 방법에 대응하여 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 방법이 적용될 수 있다.
엔트로피 복호화부(210)에서는 부호화 장치에서 수행된 화면내 예측 및 화면간 예측에 관련된 정보를 복호화할 수 있다.
재정렬부(215)는 엔트로피 복호화부(210)에서 엔트로피 복호화된 비트스트림을 부호화부에서 재정렬한 방법을 기초로 재정렬을 수행할 수 있다. 1차원 벡터 형태로 표현된 계수들을 다시 2차원의 블록 형태의 계수로 복원하여 재정렬할 수 있다. 재정렬부(215)에서는 부호화부에서 수행된 계수 스캐닝에 관련된 정보를 제공받고 해당 부호화부에서 수행된 스캐닝 순서에 기초하여 역으로 스캐닝하는 방법을 통해 재정렬을 수행할 수 있다.
역양자화부(220)는 부호화 장치에서 제공된 양자화 파라미터와 재정렬된 블록의 계수값을 기초로 역양자화를 수행할 수 있다.
역변환부(225)는 영상 부호화 장치에서 수행한 양자화 결과에 대해 변환부에서 수행한 변환 즉, DCT, DST, 및 KLT에 대해 역변환 즉, 역 DCT, 역 DST 및 역 KLT를 수행할 수 있다. 역변환은 영상 부호화 장치에서 결정된 전송 단위를 기초로 수행될 수 있다. 영상 복호화 장치의 역변환부(225)에서는 예측 방법, 현재 블록의 크기, 형태, 예측 모드 및 화면내 예측 방향 등 복수의 정보에 따라 변환 기법(예를 들어, DCT, DST, KLT)이 선택적으로 수행될 수 있다.
예측부(230, 235)는 엔트로피 복호화부(210)에서 제공된 예측 블록 생성 관련 정보와 메모리(245)에서 제공된 이전에 복호화된 블록 또는 픽쳐 정보를 기초로 예측 블록을 생성할 수 있다.
전술한 바와 같이 영상 부호화 장치에서의 동작과 동일하게 화면내 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 동일할 경우, 예측 단위의 좌측에 존재하는 픽셀, 좌측 상단에 존재하는 픽셀, 상단에 존재하는 픽셀을 기초로 예측 단위에 대한 화면내 예측을 수행하지만, 화면내 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 상이할 경우, 변환 단위를 기초로 한 참조 픽셀을 이용하여 화면내 예측을 수행할 수 있다. 또한, 최소 부호화 단위에 대해서만 NxN 분할을 사용하는 화면내 예측을 사용할 수도 있다.
예측부(230, 235)는 예측 단위 판별부, 화면간 예측부 및 화면내 예측부를 포함할 수 있다. 예측 단위 판별부는 엔트로피 복호화부(210)에서 입력되는 예측 단위 정보, 화면내 예측 방법의 예측 모드 정보, 화면간 예측 방법의 움직임 예측 관련 정보 등 다양한 정보를 입력 받고 현재 부호화 단위에서 예측 단위를 구분하고, 예측 단위가 화면간 예측을 수행하는지 아니면 화면내 예측을 수행하는지 여부를 판별할 수 있다. 화면간 예측부(230)는 영상 부호화 장치에서 제공된 현재 예측 단위의 화면간 예측에 필요한 정보를 이용해 현재 예측 단위가 포함된 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐에 포함된 정보를 기초로 현재 예측 단위에 대한 화면간 예측을 수행할 수 있다. 또는, 현재 예측 단위가 포함된 현재 픽쳐 내에서 기-복원된 일부 영역의 정보를 기초로 화면간 예측을 수행할 수도 있다.
화면간 예측을 수행하기 위해 부호화 단위를 기준으로 해당 부호화 단위에 포함된 예측 단위의 움직임 예측 방법이 스킵 모드(Skip Mode), 머지 모드(Merge 모드), AMVP 모드(AMVP Mode), 화면내 블록 카피 모드 중 어떠한 방법인지 여부를 판단할 수 있다.
화면내 예측부(235)는 현재 픽쳐 내의 화소 정보를 기초로 예측 블록을 생성할 수 있다. 예측 단위가 화면내 예측을 수행한 예측 단위인 경우, 영상 부호화 장치에서 제공된 예측 단위의 화면내 예측 모드 정보를 기초로 화면내 예측을 수행할 수 있다. 화면내 예측부(235)에는 AIS(Adaptive Intra Smoothing) 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 부분으로써 현재 예측 단위의 예측 모드에 따라 필터의 적용 여부를 결정하여 적용할 수 있다. 영상 부호화 장치에서 제공된 예측 단위의 예측 모드 및 AIS 필터 정보를 이용하여 현재 블록의 참조 화소에 AIS 필터링을 수행할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.
참조 화소 보간부는 예측 단위의 예측 모드가 참조 화소를 보간한 화소값을 기초로 화면내 예측을 수행하는 예측 단위일 경우, 참조 화소를 보간하여 정수값 이하의 화소 단위의 참조 화소를 생성할 수 있다. 현재 예측 단위의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.
복원된 블록 또는 픽쳐는 필터부(240)로 제공될 수 있다. 필터부(240)는 디블록킹 필터, 오프셋 보정부, ALF를 포함할 수 있다.
영상 부호화 장치로부터 해당 블록 또는 픽쳐에 디블록킹 필터를 적용하였는지 여부에 대한 정보 및 디블록킹 필터를 적용하였을 경우, 강한 필터를 적용하였는지 또는 약한 필터를 적용하였는지에 대한 정보를 제공받을 수 있다. 영상 복호화 장치의 디블록킹 필터에서는 영상 부호화 장치에서 제공된 디블록킹 필터 관련 정보를 제공받고 영상 복호화 장치에서 해당 블록에 대한 디블록킹 필터링을 수행할 수 있다.
오프셋 보정부는 부호화시 영상에 적용된 오프셋 보정의 종류 및 오프셋 값 정보 등을 기초로 복원된 영상에 오프셋 보정을 수행할 수 있다.
ALF는 부호화 장치로부터 제공된 ALF 적용 여부 정보, ALF 계수 정보 등을 기초로 부호화 단위에 적용될 수 있다. 이러한 ALF 정보는 특정한 파라메터 셋에 포함되어 제공될 수 있다.
메모리(245)는 복원된 픽쳐 또는 블록을 저장하여 참조 픽쳐 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽쳐를 출력부로 제공할 수 있다.
전술한 바와 같이 이하, 본 개시의 실시예에서는 설명의 편의상 코딩 유닛(Coding Unit)을 부호화 단위라는 용어로 사용하지만, 부호화뿐만 아니라 복호화를 수행하는 단위가 될 수도 있다.
또한, 현재 블록은, 부호화/복호화 대상 블록을 나타내는 것으로, 부호화/복호화 단계에 따라, 코딩 트리 블록(또는 코딩 트리 유닛), 부호화 블록(또는 부호화 유닛), 변환 블록(또는 변환 유닛), 예측 블록(또는 예측 유닛) 또는 인루프 필터의 적용 대상인 블록 등을 나타내는 것일 수 있다. 본 명세서에서, '유닛'은 특정 부호화/복호화 프로세스를 수행하기 위한 기본 단위를 나타내고, '블록'은 소정 크기의 화소 어레이를 나타낼 수 있다. 별도의 구분이 없는 한, '블록'과 '유닛'은 동등한 의미로 사용될 수 있다. 예컨대, 후술되는 실시예에서, 부호화 블록(코딩 블록) 및 부호화 유닛(코딩 유닛)은 상호 동등한 의미인 것으로 이해될 수 있다.
도 3 내지 도 12는 본 개시에 따른 블록 분할 방법을 도시한 것이다.
후술되는 실시예에서, '블록'은, 부호화/복호화의 대상이 되는 것으로서, 코딩 블록, 예측 블록 또는 변환 블록 중 어느 하나를 나타낼 수 있다.
하나의 블록은 트리 구조(tree structure)를 통해 다양한 크기와 형태를 가진 복수의 블록으로 분할될 수 있다. 분할된 블록 역시 다양한 크기와 형태를 가진 복수의 블록으로 다시 분할될 수 있다. 이와 같이, 블록을 재귀적으로 분할하는 것을, '트리 구조' 기반의 분할이라 정의할 수 있다.
상기 트리 구조 기반의 분할은, 소정의 분할 정보에 기초하여 수행될 수 있다. 여기서, 분할 정보는 부호화 장치에서 부호화되어 비트스트림을 통해 전송된 것일 수도 있고, 부호화/복호화 장치에서 유도되는 것일 수도 있다. 상기 분할 정보는 블록의 분할 여부를 지시하는 정보(이하, 분할 플래그라 함)를 포함할 수 있다. 분할 플래그가 블록의 분할을 지시하면, 블록을 분할하고, 부호화 순서에 따라 다음 블록으로 이동한다. 여기서 다음 블록은 분할된 블록들 중 첫 번째로 부호화가 수행될 블록을 의미한다. 분할 플래그가 블록이 분할되지 않음을 지시하면, 블록의 부호화 정보를 부호화한 후, 다음 블록의 존재 여부에 따라 다음 블록으로 이동하던지 혹은 블록의 분할 과정을 종료한다.
분할 정보는 트리(tree) 분할에 대한 정보가 포함할 수 있다. 이하, 블록 분할에 사용되는 트리(tree) 분할 방식에 대해 설명한다.
BT(Binary Tree) 분할 방식은, 블록을 2분할하는 방식이다. 2분할로 생성된 블록들은 동일한 크기를 가질 수 있다. 도 3은 BT 플래그를 통해 블록을 BT 분할하는 예시를 나타낸다.
BT flag를 통해 블록의 분할 여부를 결정할 수 있다. 일 예로, BT flag가 0인 경우에는 BT 분할을 종료한다. 반면, BT flag가 1인 경우에는 분할 방향을 지시하는 Dir flag를 이용하여 블록을 2개의 블록으로 분할할 수 있다.
또한, 분할된 블록을 깊이(depth) 정보로 표현할 수 있다. 도 4는 깊이 정보에 대한 예시를 나타낸다.
도 4의 (a)는 블록(400)이 BT 분할을 통해 분할되는 과정과 깊이 정보(depth)의 값을 나타내는 예시이다. 블록이 분할될 때마다, 깊이 정보의 값은 1씩 증가할 수 있다. Depth N의 블록이 depth (N+1)의 블록들로 분할된 경우, depth N의 블록은 depth (N+1)의 블록들의 부모(parent) 블록이라 부른다. 반대로, Depth (N+1)의 블록은 depth N의 블록의 자식(child) 블록이라 부른다. 이는 후술하는 트리 구조에서 동일하게 적용될 수 있다. 도 4의 (b)는, 블록(400)이 BT를 이용하여 (a)와 같이 분할되는 경우, 최종적으로 분할된 모양을 나타낸 것이다.
TT(Ternary-tree) 분할 방식은, 블록을 3분할하는 방식이다. 이때, 자식 블록들은 1:2:1의 비율을 가질 수 있다. 도 5는 TT flag를 통해 블록을 TT 분할하는 예시를 나타낸다.
TT flag를 통해 블록의 분할 여부를 결정할 수 있다. 일 예로, TT flag가 0인 경우에는 TT 분할을 종료한다. 반면, TT flag가 1인 경우에는 Dir flag를 이용하여 가로 방향 혹은 세로 방향으로 블록을 3분할할 수 있다.
QT(quad-tree) 분할 방식은, 블록을 4분할하는 방식이다. 4개의 자식 블록들은 동일한 크기를 가질 수 있다. 도 6은 QT flag를 통해 블록을 QT 분할하는 예시를 나타낸다.
QT flag를 통해 블록의 분할 여부를 결정할 수 있다. 일 예로, QT flag가 0인 경우에는 QT 분할을 종료한다. 반면, QT flag가 1인 경우에는 블록을 4분할할 수 있다.
하나의 블록은 도 4 내지 도 6에 따른 BT 분할, TT 분할 및 QT 분할 이외에 다양한 방식으로 분할될 수도 있다. 일 예로, 하나의 블록을 5개의 자식 블록들로 분할하는 방식을 적용할 수 있다. 도 7은 블록을 PT(Penta-tree) flag를 이용하여 5분할하는 PT 분할 방식에 대한 예시를 나타낸다.
블록에 대한 PT flag를 통해 블록의 5분할 여부를 결정할 수 있다. PT flag가 0인 경우에는 PT 분할을 종료한다. 만약, PT flag가 1인 경우, 분할 방향을 알려주는 Dir flag를 이용하여 가로 방향 혹은 세로 방향 중 어떤 방향으로 분할할지 여부를 결정할 수 있다.
추가적으로 인덱스(index)를 이용하여 분할 타입을 지시할 수 있다. 5분할이 적용되는 경우, 4개의 자식 블록들은 동일한 크기를 가지고, 나머지 1개의 자식 블록은 다른 자식 블록들보다 4배의 크기를 가질 수 있다. 이때, 다른 자식 블록들보다 크기가 큰 자식 블록의 위치는, 인덱스에 의해 지시될 수 있다. 즉, 상기 인덱스는 부호화/복호화 장치에 기-정의된 복수의 PT 분할 타입 중 어느 하나를 특정하거나, 5개의 자식 블록들 중 가장 큰 자식 블록의 위치를 특정하는 것으로 정의될 수 있다.
복수의 PT 분할 타입은, 1:1:4:1:1의 분할비율을 가진 제1 타입, 1:4:1:1:1의 분할 비용을 가진 제2 타입 및 1:1:1:4:1의 분할 비율을 가진 제3 타입을 포함할 수 있다. 도 7에 도시된 바와 같이, index의 값, 즉 0 내지 2에 따라 각각 1:1:4:1:1, 1:4:1:1:1, 1:1:1:4:1의 비율로 분할 가능하다.
혹은, 복수의 PT 분할 타입은 제1 내지 제3 타입 중 2개의 타입만을 포함할 수도 있다. 예를 들어, 복수의 PT 분할 타입은 제2 타입(1:4:1:1:1)과 제3 타입(1:1:1:4:1)만으로 구성될 수도 있고, 제2 또는 제3 타입 중 어느 하나만으로 분할될 수 있다. 이 경우, index는 0 내지 1의 범위에 속하게 된다. 도 8은 이와 관련된 예시를 나타낸다.
도 7 및 도 8의 예시에서, PT 분할에 따른 5개의 블록들 중 가장 큰 블록이 추가적으로 분할되는 경우, 분할 방향에 제한 사항을 적용할 수 있다. 일 예로, 부모 블록이 가로 방향으로 분할된 경우, 자식 블록에 대해서 세로 방향으로의 분할만이 허용될 수 있다. 도 9는 상기 언급한 제한 사항을 적용한 예시이다. 도 7에서 PT flag=0, Dir flag=0, index=0을 이용해서 부모 블록이 분할되고, 가장 큰 자식 블록에 추가적으로 PT 분할이 적용되는 경우, 도 9의 (a)에 도시된 바와 같이 가로 방향으로의 분할은 허용되지 않으며, 도 9의 (b)에 도시된 바와 같이 세로 방향으로의 분할만이 허용된다. 혹은 반대로, 가장 큰 자식 블록이 추가적으로 분할되는 경우, 부모 블록의 분할 방향을 그대로 적용하는 방식 또한 가능하다. 상기 두 예시에서, 가장 큰 자식 블록에 대해서는 dir flag의 시그널링이 생략되고, 가장 큰 자식 블록의 dir flag는 부모 블록의 dir flag를 이용하여 유도될 수 있다. 도 8의 예시에서도 전술한 제한 사항이 동일하게 적용될 수 있다. 혹은, 동일한 크기를 가진 나머지 4개의 자식 블록들에 대해서도 전술한 제한 사항이 동일하게 적용될 수도 있다.
다른 예로, 5개의 자식 블록들 중 크기가 가장 큰 자식 블록(즉, 4의 비율을 갖는 자식 블록)에 대해서만, 추가적인 분할을 허용할 수 있다. 이때, 가장 큰 자식 블록에 대해서는, PT 분할의 적용을 불허하는 한편, BT, TT 또는 QT 중 적어도 하나의 적용을 허용할 수도 있다. 이때, 상술한 제한사항이, BT, TT 또는 QT 분할에도 적용될 수 있다. 일 예로, 부모 블록의 PT 분할 방향과 상이한 방향으로만, BT, TT 또는 QT 분할이 적용되도록 강제될 수 있다. 또는, 가장 큰 자식 블록에 대해서도 추가적인 PT 분할이 허용될 수 있다. 다만, 이는 가중 큰 자식 또는 부모 블록의 크기가 소정의 문턱크기보다 크거나 같은 경우에 한하여 제한적으로 허용될 수 있다. 여기서, 크기는 너비, 높이, 너비와 높이의 비(ratio), 너비와 높이의 곱, 너비와 높이의 최소값/최대값 등으로 표현될 수 있다. 문턱크기는, 4, 8, 16, 32, 64, 128, 256 또는 그 이상의 정수일 수 있다.
또는, 자식 블록들 중 크기가 작은 자식 블록들에 대해서는, PT 분할의 적용을 불허하는 한편, BT, TT 또는 QT 중 적어도 하나의 적용을 허용할 수도 있다. 이때, 상술한 제한 사항이, 크기가 작은 자식 블록들에 대해서도 동일하게 적용될 수 있다. 일 예로, 부모 블록의 PT 분할 방향과 상이한 방향으로만, BT, TT 또는 QT 분할이 적용되도록 강제될 수 있다.
또는, 가장 큰 자식 블록에 대해서만 전술한 제한 사항이 적용되고, 크기가 작은 자식 블록들에 대해서는 전술한 제한 사항이 적용되지 않을 수도 있다. 반대로, 가장 큰 자식 블록에 대해서는 전술한 제한 사항이 적용되지 않고, 크기가 작은 자식 블록들에 대해서만 전술한 제한 사항이 적용될 수도 있다. 또는, 전술한 제한 사항은 부모 블록 또는 PT 분할에 따른 자식 블록의 크기가 소정의 문턱크기보다 작거나 같은 경우에 한하여 적용될 수도 있다. 반대로, 전술한 제한 사항은 부모 블록 또는 PT 분할에 따른 자식 블록의 크기가 소정의 문턱크기보다 크거나 같은 경우에 한하여 적용될 수도 있다. 여기서의 크기와 문턱크기는 전술한 바와 동일하므로 자세한 설명은 생략하기로 한다.
PT 분할의 허용 여부는, 블록의 크기, 형태 또는 깊이 중 적어도 하나에 의해 결정될 수 있다. 일 예로, PT 분할은, 코딩 트리 블록에 대해서만 허용되거나, 크기가 128x128, 64x64, 또는 32x32 이상인 블록에 대해서만 허용될 수 있다. 또는, PT 분할은 블록의 너비 또는 높이 중 최소값이 128, 64, 또는 32보다 크거나 같은 경우에 한해서만 허용될 수도 있다. 또는, PT 분할은, 정방형 블록에 대해서만 허용되고, 비정방형 블록에 대해서는 허용되지 않을 수 있다. 또는, PT 분할은 블록의 형태와 관계없이 크기에 종속적으로 허용될 수도 있다.
부모 블록을 가로 방향 또는 세로 방향 중 어느 하나의 방향으로만 4분할할 수 있으며, 이를 이하 변형된 4분할 방식이라 부르기로 한다. 부모 블록은 비대칭으로 4개의 자식 블록으로 분할될 수 있다. 여기서, 4개의 자식 블록 중 적어도 하나는 다른 하나와 다른 크기를 가지도록 분할될 수 있다. 예를 들어, 변형된 4분할 방식에 따른 분할 타입은 도 10에 도시된 바와 같이 정의될 수 있다. Index 0의 분할 타입은 1:4:2:1의 비율로 부모 블록의 너비 또는 높이를 분할하는 타입이고, index 1의 분할 타입은 1:2:4:1의 비율로 부모 블록의 너비 또는 높이를 분할하는 타입이며, index 2의 분할 타입은 1:4:1:2의 비율로 부모 블록의 너비 또는 높이를 분할하는 타입이고, index 3의 분할 타입은 2:1:4:1의 비율로 부모 블록의 너비 또는 높이를 분할하는 타입일 수 있다. 도 10은 변형된 4분할 방식에 따른 분할 타입으로 4개의 분할 타입을 도시하나, 이는 일예에 불과하며, 변형된 4분할 방식에 따른 분할 타입은 4개의 분할 타입 전부가 아닌 일부만으로 구성될 수도 있다. 또는, 변형된 4분할 방식에 따른 분할 타입은, 대칭 분할을 통해 4개의 자식 블록이 동일한 크기를 가지도록 분할하는 분할 타입을 더 포함할 수도 있다. 복수의 분할 타입 중 어느 하나가 선택적으로 이용될 수 있으며, 이를 위해 인덱스 정보가 부호화/복호화될 수 있다. 인덱스 정보는 부호화 장치에서 부호화되어 전송될 수도 있고, 복호화 장치에서 소정의 부호화 파라미터에 기초하여 유도될 수도 있다. 부호화 파라미터는, 부모 블록보다 작은 뎁스를 가진 상위 블록의 분할 타입, 크기, 부모 블록의 크기, 위치 등을 의미할 수 있다.
도 11은 변형된 4분할 방식(QT1)에 따른 분할 타입이 도 10에 도시된 index 0 내지 1의 분할 타입만으로 구성된 경우의 분할 방법을 도시한 것이다.
QT1 flag를 통해 블록의 분할 여부를 결정한다. 예컨대, QT1 flag가 0인 경우에는 분할을 수행하지 않고 종료한다. 반면, QT1 flag가 1인 경우, 분할 방향을 알려주는 Dir flag를 이용하여 가로 방향 혹은 세로 방향 중 어떤 방향으로 분할할지 여부를 결정한다. 또한, 추가적으로 인덱스를 이용하여 분할 타입을 지시하며, 부모 블록은 index 값에 따라 1:4:2:1 또는 1:2:4:1의 비율로 분할될 수 있다.
혹은 도 11과 다른 4분할 방식(QT2)도 가능하다. 도 12는 이를 나타낸 예시이다.
도 12는 변형된 4분할 방식(QT2)에 따른 분할 타입이 도 10에 도시된 index 2 내지 3의 분할 타입만으로 구성된 경우의 분할 방법을 도시한 것이다.
QT2 flag를 통해 블록의 분할 여부를 결정한다. 예컨대, QT2 flag가 0인 경우에는 분할을 수행하지 않고 종료한다. 반면, QT2 flag가 1인 경우, 분할 방향을 알려주는 Dir flag를 이용하여 가로 방향 혹은 세로 방향 중 어떤 방향으로 분할할지 여부를 결정한다. 또한, 추가적으로 인덱스를 이용하여 분할 타입을 지시하며, 부모 블록은 index 값에 따라 1:4:1:2 또는 2:1:4:1의 비율로 분할될 수 있다.
변형된 4분할 방식에서도, 도 9에서 살펴본 PT 분할과 유사하게 분할 방향에 대해서 제한 사항을 적용할 수 있다. 일 예로 부모 블록이 가로 방향으로 1:4:2:1의 비율로 분할되고, 4 혹은 2의 비율을 가진 자식 블록이 추가적으로 분할된다고 가정하자. 이때 4 또는 2의 비율을 가진 자식 블록은 Dir flag의 시그널링 없이 부모 블록의 Dir flag를 이용하여 분할할 수 있다. 일 예로, 자식 블록의 분할 방향은, 부모 블록과 상이한 방향으로 결정될 수 있다. 혹은 4의 비율을 가진 블록에서만 상기 제한 사항을 적용할 수도 있으며, 2의 비율을 가진 블록에서만 상기 제한 사항을 적용하는 것 또한 가능하다. 혹은 1의 비율을 가진 블록에서만 상기 제한 사항을 적용할 수도 있다. 또는 4와 2의 비율을 가진 블록에서만 상기 제한 사항을 적용하고, 1의 비율을 가진 블록에 대해서는 상기 제한 사항을 적용하지 않을 수 있다. 또는, 전술한 제한 사항은 부모 블록 또는 변형된 4분할 방식에 따른 자식 블록의 크기가 소정의 문턱크기보다 작거나 같은 경우에 한하여 적용될 수도 있다. 반대로, 전술한 제한 사항은 부모 블록 또는 변형된 4분할 방식에 따른 자식 블록의 크기가 소정의 문턱크기보다 크거나 같은 경우에 한하여 적용될 수도 있다. 여기서의 크기와 문턱크기는 전술한 바와 동일하므로 자세한 설명은 생략하기로 한다.
다른 예로, 자식 블록들 중 비율이 4인 블록 또는 비율이 2인 블록 중 적어도 하나에 대해서만, 추가적인 분할을 허용할 수 있다. 일 예로, 위 자식 블록에, BT, TT, QT, PT 또는 변형된 4분할 방식 중 적어도 하나가 적용될 수 있다. 이때, 상술한 제한사항이, BT, TT, QT, PT 또는 변형된 4분할 방식에도 적용될 수 있다. 일 예로, 부모 블록의 PT 분할 방향과 상이한 방향으로만, BT, TT, QT, PT 또는 변형된 4분할 방식이 적용되도록 강제될 수 있다.
또는, 자식 블록들 중 크기가 작은 자식 블록들(즉, 비율이 1인 블록)에 대해서도, 추가적인 분할을 허용할 수도 있다. 이때, 상술한 제한 사항이, 크기가 작은 자식 블록들에 대해서도 적용될 수 있다.
변형된 4분할 방식의 허용 여부는, 블록의 크기, 형태 또는 깊이 중 적어도 하나에 의해 결정될 수 있다. 일 예로, 변형된 4분할 방식은, 코딩 트리 블록에 대해서만 허용되거나, 크기가 128x128, 64x64, 또는 32x32 이상인 블록에 대해서만 허용될 수 있다. 또는, 변형된 4분할 방식은 블록의 너비 또는 높이 중 최소값이 128, 64, 또는 32보다 크거나 같은 경우에 한해서만 허용될 수도 있다. 또는, 변형된 4분할 방식은, 정방형 블록에 대해서만 허용되고, 비정방형 블록에 대해서는 허용되지 않을 수 있다. 또는, 변형된 4분할 방식은 블록의 형태와 관계없이 크기에 종속적으로 허용될 수도 있다.
상기 언급한 BT, TT, QT, PT, 변형된 4분할 방식과 같은 트리 분할 방식들의 사용 여부를 지시하는 정보는 각각 VPS(Video Parameter Set), SPS(Sequence Parameter Set), PPS(Picture Parameter Set), PH(Picture Header), SH(Slice Header)와 같은 상위 헤더를 통해 복호화 장치로 시그널링될 수 있다.
또는, 이 트리 분할 방식들의 사용 여부를 지시하는 정보는 각각 병렬 처리가 수행되는 영역마다 복호화 장치로 시그널링될 수 있다.
상기 언급한 트리 분할 방식들은 우선 순위를 가지고 혼용될 수 있다. 우선 순위는 상위 헤더 혹은 병렬 처리가 수행되는 영역마다 시그널링될 수 있다.
전술한 분할 방식들 중 적어도 하나는, 코딩 블록을 복수의 코딩 블록들로 분할하는 경우에 적용될 수 있다. 또는, 전술한 분할 방식들 중 적어도 하나는, 코딩 블록을 복수의 예측 블록들로 분할하는 경우에 적용되거나, 코딩 블록을 복수의 변환 블록들로 분할하는 경우에 적용될 수도 있다. 또는, 전술한 분할 방식들 중 적어도 하나는, 서브 블록 단위의 예측을 위해 하나의 예측 블록을 복수의 서브 블록으로 분할하는 경우에 적용될 수 있다. 또는, 전술한 분할 방식들 중 적어도 하나는, 서브 블록 단위의 변환을 위해 하나의 변환 블록을 복수의 서브 블록으로 분할하는 경우에 적용될 수 있다.
도 13 내지 도 17은 본 개시에 따른 블록 분할 방식에 따른 부호화 순서를 도시한 것이다.
본 개시에 따른 분할 정보에는, 분할 플래그를 이용한 블록 분할 방식 외에도 추가적으로 자식 블록들 간의 부호화 순서가 포함될 수도 있다. 이하, 부모 블록이 트리 분할을 통해 자식 블록들로 분할될 때, 자식 블록들의 부호화 순서 정보(COI : Coding Order Information)에 대한 예시를 설명한다.
도 13은 BT 분할에 사용될 수 있는 부호화 순서를 나타낸다.
도 13에서, 각 블록에 할당된 숫자는 부호화 순서를 나타낸다. 도 3에서 설명한 것과 같이 BT flag가 1로 설정되어 분할이 수행되는 경우, 자식 블록의 부호화 순서를 나타내는 정보를 추가적으로 시그널링할 수 있다. 만약 BT flag가 0이라면 자식 블록으로의 분할이 수행되지 않기 때문에 부호화 순서를 나타내는 정보를 시그널링할 필요가 없다. 분할 방식에 따라 이용 가능한 부호화 순서의 개수는 (분할방향) x (분할개수)! 의 값으로 표현되며, BT 분할의 경우 2 x 2! (즉, 4)가 된다.
도 14는 TT 분할에 사용될 수 있는 부호화 순서를 나타낸다.
도 14에서, 각 블록에 할당된 숫자는 부호화 순서를 나타낸다. 도 5에서 설명한 것과 같이 TT flag가 1로 설정되어 분할이 수행되는 경우, 자식 블록의 부호화 순서를 나타내는 정보를 추가적으로 시그널링할 수 있다. 만약 TT flag가 0이라면 자식 블록으로의 분할이 수행되지 않기 때문에 부호화 순서를 나타내는 정보를 시그널링할 필요가 없다. TT 분할의 경우, 이용 가능한 부호화 순서의 개수는 2 x 3!(즉, 12)가 된다.
도 15는 QT 분할에 사용될 수 있는 부호화 순서를 나타낸다.
도 15에서, 각 블록에 할당된 숫자는 부호화 순서를 나타낸다. 도 6에서 설명한 것과 같이 QT flag가 1로 설정되어 분할이 수행되는 경우, 자식 블록의 부호화 순서를 나타내는 정보를 추가적으로 시그널링할 수 있다. 만약 QT flag가 0이라면 자식블록으로의 분할이 수행되지 않기 때문에 부호화 순서를 타내는 정보를 시그널링할 필요가 없다. QT 분할은 4분할을 의미하고, 분할 방향이 존재하지 않으므로, 이용 가능한 부호화 순서의 개수는 1 x 4!(즉, 24)가 된다.
PT 분할도 상기 언급한 방식과 유사하게 PT flag가 1로 설정되어 분할이 수행되는 경우, 자식 블록의 부호화 순서를 나타내는 정보를 추가적으로 시그널링할 수 있다. 만약 PT flag가 0이라면 자식 블록으로의 분할이 수행되지 않기 때문에 부호화 순서를 나타내는 정보를 시그널링할 필요가 없다. PT 분할은 5분할을 의미하고, 가로 혹은 세로 방향의 분할이 수행되므로, 이용 가능한 부호화 순서의 개수는 2 x 5!(즉, 240)이 된다. 도 16은 240개의 부호화 순서 중 일부를 나타낸 예시이다.
도 8, 도 11, 또는 도 12의 예시에도 상기 언급한 방식과 동일하게, 분할이 되는 경우에 한하여 부호화 순서를 나타내는 정보를 시그널링할 수 있다. 이용 가능한 부호화 순서의 개수도 마찬가지로 (분할방향) x (분할개수)!로 산출될 수 있다.
혹은 간소화를 위해, 도 13 내지 도 16처럼 이용 가능한 모든 부호화 순서를 후보로 이용하지 않을 수 있다. 일 예로, 분할 방향에 따라 부호화 방향을 시그널링할 수 있다. 부호화 방향은, 좌에서 우, 우에서 좌, 위에서 아래, 아래에서 위, 대각 방향 또는 역 대각 방향 중 적어도 하나로 설정될 수 있다. 일 예로, 도 13과 같이 블록이 2분할되었다면, 가로 방향 분할인지 세로 방향 분할인지에 따라 부호화 방향을 시그널링할 수 있다. 만약 블록이 가로로 분할되었다면, 위쪽에서 아래쪽 방향과 아래쪽에서 위쪽 방향 중 어느 방향으로 부호화가 진행되었는지 여부를 시그널링할 수 있다. 반대로 블록이 세로로 분할되었다면, 왼쪽에서 오른쪽 방향과 오른쪽에서 왼쪽 방향 중 어느 방향으로 부호화가 진행되었는지 여부를 시그널링 할 수 있다. 마찬가지로, 도 14 내지 도 16에서도 동일한 내용이 적용될 수 있다.
다른 예로, 부호화 시작 위치 및/또는 종료 위치, 또는 부호화 시작 위치 및/또는 진행 방향을 시그날링할 수도 있다. 일 예로, 도 15의 예와 달리, QT 분할이 적용된 경우, 항상 지그재그 스캔 방식을 사용하되 부호화 시작 위치와 진행 방향만 시그널링할 수 있다. 도 17은 이와 관련된 예시를 나타낸다.
도 17의 예에서, 부호화 순서가 첫번째인 블록을 가리키는 정보 및 진행 방향이 가로 방향인지 또는 세로 방향인지 여부를 나타내는 정보가 부호화될 수 있다.
도 18은 본 개시에 따른 서브 블록 기반의 화면내 예측 방법을 도시한 것이다.블록은, 공간적으로 존재하는 중복 데이터를 제거하는 기술인 화면 내 예측이 적용되어 부호화/복호화될 수 있다. 화면 내 예측이 적용되는 경우, 원본 블록에 인접한 주변 화소 또는 원본 블록과 일정 거리(D)만큼 떨어진 라인에 속한 화소를 참조 화소로 이용하여 원본 블록에 대한 예측 값(예측 화소)들로 이루어진 예측 블록이 생성된다. 그 후, 원본 블록과 예측 블록의 차분 값인 잔차 블록을 생성하여 중복 데이터를 제거한다.
도 18을 참조하면, 현재 블록으로부터 하나 혹은 그 이상의 서브 블록을 구성할 수 있다(S1800).
여기서, 현재 블록은, 전술한 분할 방식들 중 적어도 하나에 기초하여 코딩 블록을 분할하여 획득된 것일 수 있다.
본 개시에 따른 서브 블록은 현재 블록을 서브 샘플링하여 생성된 것일 수 있다. 현재 블록은 NxM 크기의 서브 영역 단위로 구분될 수 있고, 각 서브 영역 단위로부터 동일 위치의 화소를 추출하고, 추출된 화소들을 그룹핑하여 하나의 서브 블록을 구성할 수 있다. 이러한 과정을 통해, 현재 블록으로부터 (NxM)개의 서브 블록을 구성할 수 있다. 이하 도 19를 참조하여 자세히 살펴보기로 한다.
도 19는 본 개시가 적용되는 일실시예로서, 현재 블록을 서브 샘플링하여 복수의 서브 블록을 구성하는 방법을 도시한 것이다.
본 개시는 2x2 크기의 서브 영역 단위가 이용되는 경우를 가정한다. WxH 크기를 가지는 현재 블록에 대해 위치 기반의 서브샘플링을 수행하여 (W/2)x(H/2) 크기를 가지는 4개의 서브 블록을 생성할 수 있다. 서브 샘플링을 수행할 때, 현재 블록에 속한 화소의 위치(또는 좌표)를 이용할 수 있다. 현재 블록을 나타내는 변수를 Blk라 할 때, 이 변수는 다음 수학식 1과 같이 표현될 수 있다.
[수학식 1]
Blk[x][y], 0 <= x < W, 0 <= y < H
또한, 서브 샘플링을 통해 생성되는 4개의 서브 블록은 다음 수학식 2와 같이 표현될 수 있다.
[수학식 2]
Sub_Blk_1[x][y] = Blk[x*2][y*2], 0 <= x < W/2, 0 <= y < H/2
Sub_Blk_2[x][y] = Blk[x*2+1][y*2], 0 <= x < W/2, 0 <= y < H/2
Sub_Blk_3[x][y] = Blk[x*2][y*2+1], 0 <= x < W/2, 0 <= y < H/2
Sub_Blk_4[x][y] = Blk[x*2+1][y*2+1], 0 <= x < W/2, 0 <= y < H/2
N과 M은 각각 서브 영역 단위의 너비와 높이를 의미한다. N과 M은 1, 2, 4, 8, 16, 32, 또는 그 이상의 정수일 수 있다. 다만, N은 현재 블록의 너비보다 작거나 같다. 마찬가지로, M은 현재 블록의 높이보다 작거나 같다. N과 M은 서로 동일할 수도 있고 서로 상이할 수도 있다. 즉, 서브 영역 단위는 정방형일 수도 있고, 비-정방형일 수도 있다.
상기 예시와 같이, 서브 샘플링은 수평 방향 및 수직 방향에 대해서 수행될 수 있다. 이는, N과 M이 모두 1보다 큰 정수로 설정된 경우에 해당한다. 또는, 서브 샘플링은 수평 방향에 대해서만 수행될 수도 있고, 이는 N은 1보다 크고, M은 1인 경우에 해당한다. 또는, 서브 샘플링은 수직 방향에 대해서만 수행될 수도 있고, 이는 N이 1이고, M은 1보다 큰 경우에 해당한다.
서브 샘플링은 부호화/복호화 장치에 기-정의된 복수의 방향 후보들 중 어느 하나를 선택적으로 이용하여 수행될 수 있다. 복수의 방향 후보들은, 수직 및 수평 방향으로의 서브 샘플링을 나타내는 제1 후보, 수직 방향으로의 서브 샘플링을 나타내는 제2 후보, 수평 방향으로의 서브 샘플링을 나타내는 제3 후보, 또는 서브 샘플링이 수행되지 않음을 나타내는 제4 후보 중 적어도 하나를 포함할 수 있다. 상기 선택은, 복수의 방향 후보들 중 어느 하나를 특정하는 인덱스 정보에 기초하여 수행되며, 인덱스 정보는 부호화 장치에서 부호화되어 복호화 장치로 시그널링될 수 있다. 또는, 상기 선택은, 현재 블록에 관한 소정의 부호화 파라미터에 기초하여 수행될 수 있다. 여기서, 부호화 파라미터는 슬라이스 타입, 블록 크기/형태, 화면내 예측 모드, 화면내 예측 모드의 방향성(각도), 성분 타입, 변환 타입, 변환 스킵 여부, 또는 스캔 순서 중 적어도 하나를 포함할 수 있다. 또는 현재 블록이 이용 가능한 방향 후보들의 개수는 전술한 부호화 파라미터에 따라 상이하게 결정될 수도 있다.
또는, 수평 방향의 서브 샘플링 레이트와 수직 방향의 서브 샘플링 레이트를 상이하게 설정할 수도 있다. 이는 N과 M이 서로 상이하게 설정된 경우에 해당한다. N과 M의 값은 부호화/복호화 장치에 기-정의된 고정된 값일 수도 있고, 전술한 부호화 파라미터에 기초하여 적응적으로 결정될 수도 있다.
예를 들어, 현재 블록이 전술한 분할 방식 중 제1 분할 방식을 통해 생성된 것일 경우, N과 M은 각각 현재 블록의 너비와 높이로 설정되고, 현재 블록이 전술한 분할 방식 중 제2 분할 방식을 통해 생성된 것일 경우, N과 M은 각각 0, 2, 4, 8, 16, 32, 또는 64 중 어느 하나의 값으로 설정될 수 있다. 다만, 이에 한정되지 아니하며, N과 M은 64보다 큰 값으로 설정될 수도 있다. 또는, 현재 블록이 전술한 분할 방식 중 제1 분할 방식을 통해 생성된 것일 경우, N과 M은 각각 0, 2, 4, 또는 8 중 어느 하나의 값으로 설정되고, 현재 블록이 전술한 분할 방식 중 제2 분할 방식을 통해 생성된 것일 경우, N과 M은 각각 8, 16 또는 32 중 어느 하나의 값으로 설정될 수 있다.
예를 들어, 현재 블록의 크기가 제1 문턱값보다 작거나 같은 경우, N과 M은 각각 현재 블록의 너비(W)와 높이(H)로 설정되고, 현재 블록의 크기가 제1 문턱크기보다 큰 경우, N과 M은 각각 0, 2, 4, 8, 16, 32, 또는 64 중 어느 하나의 값으로 설정될 수 있다. 또는, 현재 블록의 크기가 제1 문턱값보다 작거나 같은 경우, N과 M은 각각 0, 2, 4, 또는 8 중 어느 하나의 값으로 설정되고, 현재 블록의 크기가 제1 문턱값보다 큰 경우, N과 M은 각각 8, 16 또는 32 중 어느 하나의 값으로 설정될 수 있다.
예를 들어, 현재 블록이 정방형인 경우, N과 M은 각각 0, 2, 4, 8, 16, 32, 또는 64 중 어느 하나의 값으로 설정되고, 현재 블록이 비-정방형인 경우, N은 W/2, W/4, W/8, 또는 W/16 중 어느 하나의 값으로, M은 H/2, H/4, H/8, 또는 H/16 중 어느 하나의 값으로 각각 설정될 수 있다.
예를 들어, 현재 블록의 인트라 예측 모드가 비-방향성 모드인 경우, N과 M은 각각 현재 블록의 너비와 높이로 설정되고, 현재 블록의 인트라 예측 모드가 방향성 모드인 경우, N과 M은 각각 0, 2, 4, 8, 16, 32, 또는 64 중 어느 하나의 값으로 설정될 수 있다. 역으로, 현재 블록의 인트라 예측 모드가 비-방향성 모드인 경우에만, N과 M은 각각 0, 2, 4, 8, 16, 32, 또는 64 중 어느 하나의 값으로 설정될 수도 있다.
예를 들어, 현재 블록의 인트라 예측 모드의 각도가 제2 문턱값보다 작거나 같은 경우, N과 M은 각각 현재 블록의 너비(W)와 높이(H)로 설정되고, 현재 블록의 인트라 예측 모드의 각도가 제2 문턱값보다 큰 경우, N과 M은 각각 0, 2, 4, 8, 16, 32, 또는 64 중 어느 하나의 값으로 설정될 수 있다. 또는, 현재 블록의 인트라 예측 모드의 각도가 제2 문턱값보다 작거나 같은 경우, N과 M은 각각 0, 2, 4, 또는 8 중 어느 하나의 값으로 설정되고, 현재 블록의 인트라 예측 모드의 각도가 제1 문턱값보다 큰 경우, N과 M은 각각 8, 16 또는 32 중 어느 하나의 값으로 설정될 수 있다.
또는, 각 서브 영역 단위로부터 기-정의된 일부 위치의 화소만을 선택적으로 추출함으로써, (NxM)개보다 작은 개수의 서브 블록이 구성될 수도 있다. 여기서, 일부 위치는, 서브 영역 단위 내에서 좌상단 화소 위치, 우상단 화소 위치, 좌하단 화소 위치, 우하단 화소 위치, 중앙 화소 위치 또는 중앙 화소 위치에 인접한 적어도 하나의 화소 위치 중 적어도 하나를 포함할 수 있다.
한편, 본 개시에 따른 서브 블록은, 서브 샘플링을 통해 생성된 것에 한정되지 아니하며, 경우에 따라 현재 블록을 하나 또는 그 이상의 분할 라인에 기초하여 분할하여 생성된 것일 수도 있다. 여기서, 분할 라인들은 서로 교차하지 않을 수도 있고, 적어도 하나의 분할 라인이 다른 분할 라인을 교차할 수도 있다.
도 18을 참조하면, 소정의 스캔 순서에 따라 서브 블록을 부호화/복호화할 수 있다(S1810).
부호화/복호화 장치에 기-정의된 고정된 스캔 순서가 이용될 수 있다. 또는, 부호화/복호화 장치에 기-정의된 복수의 스캔 순서 후보들 중 어느 하나가 선택적으로 이용될 수 있다. 복수의 스캔 순서 후보들은 래스터 스캔, 지그재그 스캔, 수평 스캔, 수직 스캔, 또는 대각 스캔 중 적어도 하나를 포함할 수 있다. 또한, 복수의 스캔 순서 후보들은, 전술한 스캔 순서 후보들 중 적어도 하나의 역방향 스캔 순서를 더 포함할 수도 있다. 상기 선택은, 복수의 스캔 순서 후보 후보들 중 어느 하나를 특정하는 인덱스 정보에 기초하여 수행되며, 인덱스 정보는 부호화 장치에서 부호화되어 복호화 장치로 시그널링될 수 있다. 또는, 상기 선택은, 현재 블록에 관한 소정의 부호화 파라미터에 기초하여 수행될 수도 있으며, 부호화 파라미터는 앞서 살펴본 바와 같다, 또는 현재 블록이 이용 가능한 스캔 순서 후보들의 개수는 전술한 부호화 파라미터에 따라 상이하게 결정될 수도 있다.
본 개시에서는 래스터 스캔이 적용된 경우를 가정한다. 먼저, 도 19에 도시된 바와 같이, (0,0), (2,0), (0,2), (2,2) 화소 위치를 가지는 서브 블록 Sub_Blk_1[x][y]이 부호화한 후, Sub_Blk_2, Sub_Blk_3, Sub_Blk_4의 순서로 부호화한다. 스캔 순서는, 각 서브 블록의 좌상단 화소의 좌표를 기준으로 결정될 수 있다. 일 예로, 래스터 스캔을 따를 경우, (0, 0) → (1, 0) → (0, 1) → (1, 1) 을 포함하는 서브 블록 순으로 부호화/복호화가 수행될 수 있다.
서브 블록을 부호화/복호화하는 과정은, 1) 서브 블록의 예측을 위한 참조 화소를 유도하는 과정, 2) 화면내 예측 모드를 유도하는 과정, 또는 3) 화면내 예측을 수행하는 과정 중 적어도 하나를 포함할 수 있다. 이하, 각 과정에 대해서 자세히 살펴보기로 한다.
1. 참조 화소 유도 과정
각 서브 블록은 참조 화소를 이용하여 부호화/복호화될 수 있다. 각 서브 블록의 예측을 위한 참조 화소를 유도하는 방법에 대해서는 도 20 내지 도 25를 참조하여 살펴보기로 한다.
도 20은 본 개시가 적용되는 일실시예로서, 각 서브 블록마다 참조 화소를 할당하는 방법을 도시한 것이다.
서브 블록의 참조 화소는 현재 블록(BLK)에 인접한 화소 또는 현재 블록 내 기-복원된 서브 블록의 화소 중 적어도 하나를 포함할 수 있다. 일 예로, Sub_Blk_1의 경우, 상단과 좌측에 인접한 화소 (u1, u3, l1, l3)을 참조 화소로 이용할 수 있다. Sub_Blk_2의 경우, 상단에 인접한 화소 (u2, u4)를 이용할 수 있다. 또한, (0,0) 화소 위치와 (0,2) 화소 위치에서 복원된 화소인 R(0,0)과 R(0,2)를 참조 화소로 이용할 수 있다. Sub_Blk_3 및 Sub_Blk_4의 경우도, 각각 좌측과 상단에 인접한 화소를 참조 화소로 이용할 수 있다.
부호화 순서(또는 스캔 순서)에 따라, 예측 화소의 우측 또는 하단에 기-복원된 화소가 존재하는 경우가 발생할 수도 있다. 이에 따라, 우측 또는 하단의 복원 화소를 참조 화소로 이용하는 것도 가능하다.
즉, 위 예시에서는 서브 블록의 좌측과 상단에 존재하는 화소들만 참조 화소로 사용되는 것으로 나타내었으나, 후술할 화면내 예측 모드에 따라 현재 블록의 좌상단, 우상단, 또는 좌하단에 존재하는 화소들을 참조 화소로 이용할 수도 있다.
현재 블록의 참조 화소들은 현재 블록에 인접한 참조 화소 라인(이하, 인접 화소 라인이라 함)으로부터 유도될 수도 있고, 현재 블록에 인접하지 않은 참조 화소 라인(이하, 비인접 화소 라인이라 함)으로부터 유도될 수도 있다. 또는, 현재 블록의 참조 화소들의 일부는 인접 화소 라인으로부터 유도되고, 나머지는 비인접 화소 라인으로부터 유도될 수 있다. 여기서, 비인접 화소 라인은, 부호화/복호화 장치에 기-정의된 P개의 참조 화소 라인 전부 또는 일부를 의미할 수 있다.
블록의 부호화 순서, 블록의 경계가 영상(예를 들어, 픽쳐, 타일, 슬라이스, CTU raw)의 경계에 위치하는 경우 등의 이유로 이용 불가능한 참조 화소가 존재할 수 있다. 따라서 해당 위치에서는 패딩 과정을 통해 참조 화소를 생성하여야 한다.
패딩은 현재 블록의 주변 영역을 2개의 영역으로 구분하여 수행될 수 있다. 일 예로 현재 블록의 왼쪽과 위쪽을 제1 영역으로 설정하고, 오른쪽과 아래쪽을 제2 영역으로 설정할 수 있다. 우선 각 영역마다, 참조 화소의 이용 가능 여부를 판단하기 위해 탐색 시작 위치를 설정한다. 도 21은 각 영역마다 탐색 시작 위치와 탐색 방향을 나타내는 예시이다. 도 21(a)는 현재 블록의 좌측과 상단의 참조 화소들을 포함하는 제1 영역을 나타내고, 도 21(b)는 현재 블록의 하단과 우측 참조 화소들을 포함하는 제2 영역을 나타낸다.
일 예로 도 21(a)에서, 탐색 시작 위치가 설정되었다면, 탐색 시작 위치에 이용 가능한 참조 화소가 존재하는지 확인한다. 만약 존재하지 않는다면 탐색 방향으로 순차적으로 이용 가능한 참조 화소가 탐색될 때까지 탐색을 진행한다. 도 22는 탐색 과정에 대한 예시를 나타낸다.
도 22에서, 탐색 시작 위치부터 탐색 방향으로 탐색을 수행하다가 A 위치에서 처음으로 이용 가능한 참조 화소가 탐색된 예시이다. A 위치에서 이용 가능한 참조 화소가 탐색된 후, A 위치의 참조 화소를 탐색 시작 위치로 복사한다. 그 후, 복사된 참조 화소를 탐색 방향으로 A 직전의 위치까지 순차적으로 복사하여 패딩을 수행한다. 즉, 탐색 시작 위치의 화소가 이용 불가능한 경우, 첫번째로 발견된 이용 가능한 화소를, 탐색 시작 위치까지 패딩할 수 있다.
위 예시와 달리, 탐색 시작 위치 이후부터 이용 불가능한 참조 화소가 존재할 수 있다. 도 23은 이와 관련된 예시를 나타낸다.
도 23(a)를 참조하면, 참조 화소 라인의 중간 위치에 이용 불가능한 참조 화소가 존재하는 경우, A 위치와 B 위치에 존재하는 참조 화소에 보간을 수행하여 패딩을 수행한다. 즉, N번째 화소가 이용 불가능한 경우, 해당 화소는 N 이전 가장 마지막으로 발견된 이용 가능한 화소 및 N 이후 가장 처음으로 발견된 이용 가능한 화소 간의 보간을 통해 생성될 수 있다.
도 23(b)와 같이 참조 화소 라인의 중간 지점부터 끝 지점까지 이용 가능한 참조 화소가 없는 경우, 가장 가까운 A 위치에 존재하는 참조 화소를 B 위치까지 순차적으로 복사하여 패딩을 수행한다. 즉, N번째 이후 모든 화소들이 이용 불가능한 경우, (N-1)번째 화소를 마지막 위치까지 복사하여 패딩이 수행된다.
혹은, 탐색 시작 위치에서부터 탐색 방향으로 탐색을 수행하다가 처음으로 이용 가능한 참조 화소를 기준 화소로 결정하고, 이 기준 화소를 이용 불가능한 모든 위치로 복사하여 패딩을 수행하는 방식 또한 가능하다.
도 21(b)와 같은 영역에서도 상기 설명한 방식이 동일/유사하게 적용될 수 있다.
제1 영역 내 모든 참조 화소가 이용 불가능한 경우, 기-설정된 값을 이용하여 패딩을 수행할 수 있다. 일 예로, 모든 참조 화소가 이용 불가능한 경우, 비트심도를 이용한 중간값을 이용하여 참조 화소에 패딩을 수행할 수 있다. 일 예로 화소의 비트심도가 10비트인 경우, 화소값의 범위는 0~1023이 되고 중간값은 512가 될 수 있다.
또한 제2 영역 내 모든 참조 화소가 이용 불가능한 경우, 비트심도를 이용한 중간값을 이용하여 참조 화소에 패딩을 수행할 수 있다. 일 예로 화소의 비트심도가 10비트인 경우 화소값의 범위는 0~1023이 되고 중간값은 512가 될 수 있다.
전술한 패딩 방식을 통해, 현재 블록의 4면(좌측, 우측, 상단 및 하단)에 전부 이용 가능한 참조 화소를 생성할 수 있다.
또는, 각 영역 내에서 패딩을 수행할 때, 다른 영역의 화소를 이용할 수도 있다. 일 예로, 제2 영역의 패딩을 수행하는 경우, 제1 영역에 존재하는 화소를 이용할 수 잇다. 반대로 제1 영역의 패딩을 수행하는 경우, 제2 영역에 존재하는 화소를 이용하는 것 또한 가능하다.
현재 블록의 4면에 참조 화소가 존재하는 경우, 방향성 모드에 따라 간소화된 참조 화소를 이용할 수 있다. 도 24를 참조하면, 방향성 모드가 어느 구역에 속하는지에 따라 좌측 참조 화소 라인, 상단 참조 화소 라인, 우측 참조 화소 라인, 하단 참조 화소 라인 중 하나의 참조 화소 라인만 사용할 수 있다. 도 24에서는 화면내 예측 모드의 번호를 0 내지 129로 표현하였으며, 0번과 1번은 각각 평면 모드와 DC 모드를 나타내며, 2번 내지 129번은 방향성 모드를 나타낸다.
도 25의 (a)~(f)는 화면내 예측 모드가 3 구역 내지 8 구역에 각각 속하는 경우, 하나의 참조 화소 라인을 사용하는 방법에 대한 예시이다.
도 25에 도시된 바와 같이, 참조 화소들이 1차원으로 재배열될 수 있다. 화소(2500)는, 방향성 모드와 평행으로 프로젝션된 위치의 화소를 복사하여 생성되거나, 프로젝션된 위치의 주변 정수 화소들을 보간하여 생성될 수 있다.
2. 화면내 예측 모드 유도 과정
현재 블록의 화면내 예측 모드는, 부호화/복호화 장치에 기-정의된 화면내 예측 모드들 중 어느 하나로 유도될 수 있다. 현재 블록에 대해서 하나의 화면내 예측 모드가 할당되고, 현재 블록으로부터 구성된 서브 블록들은 동일한 화면내 예측 모드를 공유할 수 있다. 또는, 현재 블록의 화면내 예측 모드는, 서브 블록 각각에 대해서 유도될 수도 있다.
도 26 및 도 27은 현재 블록이 이용 가능한 기-정의된 화면내 예측 모드들을 도시한 것이다.
도 26을 참조하면, 평면을 이용하여 예측하는 방법에는 0번을 할당하였으며, 평면 모드(Planar mode) 혹은 0번 모드라 한다. 또한, DC를 이용하여 예측하는 방법에는 1번을 할당하였으며 DC 모드 혹은 1번 모드라 한다. 그외 방향성을 이용한 방법(방향성 모드)들의 경우 -14에서부터 80까지 번호를 할당하였으며, 방향을 화살표로 표시하였다. 일 예로 18번 모드는 가로 방향을 이용한 예측 방법을 나타내며, 50번 모드는 세로 방향을 이용한 예측 방법을 나타낸다.
상기 설명한 COI(Coding Order Information)정보에 따라, 부호화하려는 블록 주변에 이용 가능한 참조 화소가 확장될 수 있다. 이에 따라 블록 주변에 존재하는 참조 화소가 블록의 왼쪽 및 위쪽 뿐만 아니라 오른쪽 및/또는 아래쪽에도 존재할 수 있다. 이에 따라, 오른쪽 및/또는 아래쪽의 참조 화소를 이용하는 화면내 예측 모드가 추가적으로 정의될 수 있다. 도 27은 도 26의 방향성 모드가 360도 전체로 확장된 예시를 나타낸다. 여기서 도 26과 다르게, 설명의 편의성을 위해 방향성 모드에 대해 2번~ 129번으로 표시하였다.
화면 내 예측 모드 부호화시, MPM(Most Probable Mode) 리스트를 구성 후, MPM 리스트에 속한 복수의 MPM 후보들 중 어느 하나를 특정하는 인덱스를 시그널링할 수 있다. 복호화 장치는 부호화 장치와 동일한 방식으로 MPM 리스트를 구성하고, MPM 리스트와 시그날링된 인덱스를 기반으로 현재 블록의 화면내 예측 모드를 유도할 수 있다.
도 28 및 도 29는 MPM 리스트를 구성할 때 사용되는 주변 참조 위치를 도시한 것이다.
도 28 및 도 29에 도시된 주변 참조 위치는, 각각 하나의 화소를 의미하거나 블록을 의미할 수 있다. 상기 주변 참조 위치는 현재 블록 주변의 서로 다른 블록에 포함되는 경우를 가정한다.
도 28을 참조하면, LB는 현재 블록 내에서 가장 왼쪽 아래에 위치한 화소의 위치를 의미하고, RT는 현재 블록 내에서 가장 오른쪽 위에 위치한 화소의 위치를 의미한다. 일 예로, L을 포함하는 블록과 A를 포함하는 블록에 존재하는 화면내 예측 모드들을 이용하여 MPM 리스트를 구성할 수 있다. 그 후, 현재 블록의 화면 내 예측 모드가 MPM 리스트에 포함되는지를 지시하는 정보, MPM 리스트의 어떤 모드와 동일한지를 알려주는 인덱스 정보(MPM 인덱스), MPM에 포함되지 않는다면 나머지 모드들 중 어느 하나를 특정하는 정보를 이용하여 현재 블록의 화면 내 예측 모드를 시그널링할 수 있다.
또는, 좌측 중앙에 위치하는 샘플(h 또는 g)를 포함하는 블록과 상단 중앙에 위치하는 샘플(d 혹은 c)를 포함하는 블록 중 적어도 하나의 화면내 예측 모드를 이용하여 MPM 리스트를 구성할 수도 있다. 또는, 좌측 상단에 위치하는 샘플(f)을 포함하는 블록과 상단 좌측에 위치하는 샘플(b)를 포함하는 블록 중 적어도 하나의 화면내 예측 모드를 이용하여 MPM 리스트를 구성할 수도 있다.
또한, 현재 블록의 우측과 하단에 위치한 참조 화소가 이용 가능한 경우, 도 29에 따른 MPM은 확장이 가능하다. 구체적으로, 현재 블록의 우측에 인접하는 이웃 블록 및/또는 현재 블록의 하단에 인접하는 이웃 블록 중 적어도 하나를 이용하여 MPM 후보를 유도할 수 있다.
도 29에서, LB는 현재 블록 내에서 가장 왼쪽 아래에 위치한 화소의 위치를 의미하고, RT는 현재 블록 내에서 가장 오른쪽 위에 위치한 화소의 위치를 의미한다. 일 예로, L을 포함하는 블록과 A를 포함하는 블록에 존재하는 화면내 예측 모드들을 이용하여 MPM 리스트를 구성할 수 있다. 또는, R을 포함하는 블록과 B를 포함하는 블록 중 적어도 하나에 존재하는 화면내 예측 모드를 이용하여 MPM 리스트를 구성할 수 있다.
또는, 하측 중앙(k 혹은 l) 샘플 또는 하단 우측(j) 샘플 중 적어도 하나를 포함하는 하단 블록을 이용하거나, 우측 중앙(g 혹은 f) 샘플 또는 우측 하단(h) 샘플 중 적어도 하나를 포함하는 우측 블록을 이용하여 MPM 리스트를 구성할 수 있다.
또는, 전술한 우측 및 하단에 위치한 주변 블록들의 화면내 예측 모드 중 어느 하나의 대표 모드만이 MPM 리스트에 추가될 수도 있다. 여기서, 대표 모드는, 우측 및 하단에 위치한 주변 블록들의 화면내 예측 모드들 중 최소값, 최대값, 또는 최빈값을 의미할 수도 있고, 부호화/복호화 장치에 기-약속된 고정된 위치의 모드를 의미할 수도 있다.
우측 블록 및/또는 하단 블록은, 좌측 블록 및/또는 상단 블록 대신 MPM 후보를 유도하는데 이용될 수 있다. 또는, 좌측 및/또는 상단 블록과 함께, 우측 블록 또는 하단 블록 중 적어도 하나를 더 이용하여 MPM 후보를 유도할 수 있다.
3. 화면내 예측 과정
(1) 화면내 예측 모드 기반의 화면내 예측 방법
화면내 예측은 참조 화소와 화면내 예측 모드를 기반으로 수행될 수 있다. 화면내 예측은 현재 블록의 단위로 수행될 수도 있고, 현재 블록의 서브 블록 단위로 수행될 수도 있다.
이하, 도 30 내지 도 34를 참조하여, 화면내 예측 모드 별 예측 화소 생성 방법에 대해서 자세히 살펴보기로 한다.
도 30은 평면 모드에서 예측 화소를 생성하는 방법을 나타내는 예시이다.
도 30에서, T와 L은 평면 모드로 예측 화소를 생성할 때 사용되는 주변 참조 화소에 대한 예시이다. T는 우측 상단 코너에 위치하는 참조 화소를, L은 좌측 하단 코너에 위치하는 참조 화소를 나타낸다. 여기서 A는 수직 방향에 대한 예측 화소이다. A는, A와 Y축으로 동일 위치에 있는 참조 화소와 L을 선형 보간하여 생성할 수 있다. B는 수평 방향에 대한 예측 화소이다. B는, B와 X축으로 동일 위치에 있는 참조 화소와 T를 선형 보간하여 생성할 수 있다. 여기서 A와 B는 블록 내 동일 위치이다. 그 후, 수학식 3을 이용하여, 즉, A와 B를 가중합(weighted sum)하여 최종적인 예측 화소를 생성한다.
[수학식 3]
(α×A+β×B)/(α+β)
이 때, 수학식 3에서 가중치 α와 β는 동일한 값일 수 있다. 또는, 화소의 위치에 따라, 가중치 α와 β가 적응적으로 결정될 수 있다. 상기 설명한 방식을 블록 내 모든 화소 위치에서 적용하여 평면 모드를 이용한 예측 블록을 생성한다.
도 31은 DC 모드에서 예측 화소를 생성하는 방법을 나타내는 예시이다.
도 31에서와 같이, 블록 주변에 존재하는 참조 화소들의 평균값을 계산한 후에, 계산된 값을 예측 블록 안의 모든 예측 화소로 설정한다. 평균값을 계산할 때 이용되는 참조 화소들은 블록의 상단, 좌측 및 좌상단에 위치하는 참조 화소들을 포함할 수 있다. 또는, 상단과 좌측에 인접한 참조 화소들만을 이용하여(즉, 좌상단에 위치하는 참조 화소를 제외) 평균값을 계산할 수도 있다.
혹은, 블록의 형태에 따라, 상단 참조 화소들 또는 좌측 참조 화소들만을 이용하여 평균값을 계산할 수도 있다. 일 예로, 현재 블록의 가로 길이가 세로 길이보다 더 길다면, 상단 참조 화소들만을 이용하여 평균값을 계산할 수 있다. 또는, 현재 블록의 가로 길이가 세로 길이보다 더 긴 경우라도, 가로 길이가 소정의 문턱크기보다 작거나 같은 경우에는 상단 참조 화소들만을 이용하여 평균값을 계산하고, 가로 길이가 소정의 문턱크기보다 큰 경우에는 상단 참조 화소들 외에 적어도 하나의 상단 우측 참조 화소를 이용하여 평균값을 계산할 수 있다. 또는, 현재 블록의 가로 길이가 세로 길이보다 더 긴 경우라도, 가로 길이가 소정의 문턱크기보다 작거나 같은 경우에는 현재 블록에 인접한 상단 참조 화소들만을 이용하여 평균값을 계산하고, 가로 길이가 소정의 문턱크기보다 큰 경우에는 현재 블록에 인접한 상단 참조 화소들 외에 현재 블록에 인접하지 않은 적어도 하나의 상단 우측 참조 화소를 이용하여 평균값을 계산할 수 있다. 반면, 현재 블록의 세로 길이가 가로 길이보다 더 길다면, 좌측 참조 화소들만을 이용하여 평균값을 계산할 수 있다. 마찬가지로, 현재 블록의 세로 길이가 가로 길이보다 더 긴 경우라도, 세로 길이가 소정의 문턱크기보다 작거나 같은 경우에는 좌측 참조 화소들만을 이용하여 평균값을 계산하고, 세로 길이가 소정의 문턱크기보다 큰 경우에는 좌측 참조 화소들 외에 적어도 하나의 좌측 하단 참조 화소를 이용하여 평균값을 계산할 수 있다. 또는, 현재 블록의 세로 길이가 가로 길이보다 더 긴 경우라도, 세로 길이가 소정의 문턱크기보다 작거나 같은 경우에는 현재 블록에 인접한 좌측 참조 화소들만을 이용하여 평균값을 계산하고, 세로 길이가 소정의 문턱크기보다 큰 경우에는 현재 블록에 인접한 좌측 참조 화소들 외에 현재 블록에 인접하지 않은 적어도 하나의 좌측 참조 화소를 이용하여 평균값을 계산할 수 있다. 혹은, 위와 반대의 경우도 가능하다.
상기 설명한 방식에 따라, DC 모드에서는 블록 내 예측 화소의 값이 전부 동일하다.
방향성 모드에서는, 각 방향성 모드의 각도에 따른 참조 방향으로 프로젝션(projection)을 수행한다. 해당 위치에 참조 화소가 존재하면 해당 참조 화소를 예측 화소로 설정한다. 만약, 해당 위치가 참조 화소가 존재하지 않으면, 주변 참조 화소를 보간하여 해당 위치의 화소를 생성하고, 보간된 화소를 예측 화소로 설정한다. 도 32는 이에 대한 예시를 나타낸다.
위 예시에서 예측 화소 B의 경우, 해당 위치에서 화면내 예측 모드의 각도에 따른 참조 방향으로 프로젝션하였을 때, 정수 위치 참조 화소가 존재한다(정수 위치의 참조 화소, R3). 이 경우, 해당 참조 화소를 예측 화소로 설정한다. 예측 화소 A의 경우, 해당 위치에서 화면내 예측 모드의 각도에 따른 참조 방향으로 프로젝션하였을 때 정수 위치의 참조 화소가 존재하지 않는다(즉, 프로젝션된 위치가 분수 위치의 참조 화소를 가리킴). 이 경우, 주변 정수 위치의 참조 화소들을 이용하여 보간을 수행 후, 보간된 값(분수 위치의 참조 화소, r)을 예측 화소로 설정한다.
도 32의 예시처럼 방향성 모드를 이용한 화면내 예측을 수행할 때, 구현의 간소화를 위해 특정 모드에서 참조 화소의 위치를 변경할 수 있다. 일 예로 도 19에서 2 내지 18번 모드의 경우 블록의 왼쪽에 존재하는 참조 화소만 사용하며, 50 내지 66번 모드의 경우 블록의 위쪽에 존재하는 참조 화소만 사용한다. 하지만 19 내지 49번 모드들의 경우, 블록의 왼쪽과 위쪽에 존재하는 참조 화소를 전부 사용하여야 한다. 이 경우, 블록 내 생성하려는 예측 화소의 위치에 따라, 왼쪽 혹은 위쪽의 참조 화소 라인 중 어떤 참조 화소 라인이 사용되어야 하는지 결정되어야 한다. 이 과정을 간소화하기 위해, 방향성 모드에 따라 어느 한 방향의 참조 화소 라인만 사용할 수 있다. 도 33은 방향성 모드가 34 내지 49번 중 어느 하나인 경우의 화면내 예측 방법에 대한 예시이다.
방향성 모드가 34 내지 49번 중 어느 하나인 경우, 블록의 위쪽 참조 화소 라인에 우선순위를 부여하여 위쪽 참조 화소 라인만 사용한다. 이 때, 도 33에서 위쪽 참조 화소 라인의 참조 화소(3300)를 생성하기 위해, 방향성 모드와 평행한 방향으로, 왼쪽 참조 화소 라인으로 프로젝션한다. 프로젝션된 위치의 왼쪽 참조 화소를 참조 화소(3300)로 설정할 수 있다. 이 때 프로젝션한 위치가 정수 위치가 아닌 분수 위치인 경우, 해당 분수 위치에 인접한 정수 위치의 참조 화소들을 보간하여, 분수 위치의 화소를 생성한다. 그 후, 위쪽 참조 화소 라인만 이용하여 블록 내 예측 화소를 생성한다.
한편, 도 34는 방향성 모드가 19 내지 33번 중 어느 하나인 경우의 화면내 예측 방법에 대한 예시이다. 이 경우, 왼쪽 참조 화소 라인의 참조 화소(3400)는, 참조 화소(3400)의 위치에서 방향성 모드와 평행한 방향으로 프로젝션하여 지정된 상단 참조 화소를 기초로 유도될 수 있다. 이는 도 33을 참조하여 살펴본 바와 같으며, 자세한 설명은 생략하기로 한다.
(2) 선형 모델 기반의 화면내 예측 방법
서브 샘플링된 서브 블록 간에 선형 모델을 적용하여 부호화/복호화를 수행할 수 있다. 이하, 도 35를 참조하여, 선형 모델을 이용하여 파라미터를 유도하고, 유도된 파라미터를 이용하여 서브 블록 간에 예측을 수행하는 방법에 대해 설명한다.
도 35는 본 개시가 적용되는 일실시예로서, 서브 블록2(Sub_Blk_2)와 서브 블록3(Sub_Blk_3)의 예시를 나타낸다. 이때, 서브 블록2가 먼저 부호화/복호화되었다고 가정하며, 이 예시를 통해, 서브 블록3을 위한 파라미터를 유도하는 방법을 설명한다.
파라미터를 유도할 때는 서브 블록 주변에 존재하는 참조 화소들을 이용할 수 있다.
우선, 서브 블록2의 주변에 존재하는 하나 또는 그 이상의 참조 화소들을, 서브 블록3의 주변에 존재하는 하나 또는 그 이상의 참조 화소들과 유사하게 만들어 주는 파라미터를 유도할 수 있다. 여기서, 파라미터는 가중치(a) 또는 오프셋(b) 중 적어도 하나를 포함할 수 있다. 예를 들어, 파라미터는 수학식 4에 기초하여 유도될 수 있다.
[수학식 4]
Y=a*X+b
수학식 4에서 X와 Y는 각각 벡터값이며, X는 서브 블록2의 참조 화소이고 Y는 서브 블록3의 참조 화소이다. 파라미터 a와 b는 스칼라 값일 수 있다. 파라미터 a와 b를 유도하기 위해 회귀 분석이 사용될 수 있으며, 일 예로 최소자승법(Least mean square method)이 사용될 수 있다.
혹은 분석의 간소화를 위해, X와 Y 안에 존재하는 참조 화소들을 전부 사용하는 것이 아니라, 서브 샘플링하여 일부만 사용할 수 있다.
혹은 서브 블록의 모양에 따라 사용되는 참조 화소가 달라질 수 있다. 일 예로 서브 블록의 너비가 높이보다 긴 직사각형이라면 상단 참조 화소만 이용하여 파라미터를 유도할 수 있다. 혹은 서브 블록의 높이가 너비보다 긴 직사각형이라면 좌측 참조 화소만 이용하여 파라미터를 유도할 수 있다.
파라미터를 유도한 후, 서브 블록2에 존재하는 적어도 하나의 화소에 파라미터를 적용하여 서브 블록3에 해당하는 예측 블록을 생성할 수 있다. 즉, 서브 블록3의 예측 블록은 서브 블록2의 화소에 가중치를 곱하거나, 오프셋을 더하여 생성될 수 있다. 또는, 서브 블록3의 예측 블록은 서브 블록2의 화소에 가중치를 곱하고 오프셋을 더하여 생성될 수도 있다.
(3) 적응적 화면내 예측 방법
전술한 화면내 예측 모드 기반의 화면내 예측 방법과 선형 모델 기반의 화면내 예측 방법 중 어느 하나가 선택적으로 이용될 수 있다.
예를 들어, 현재 블록에 대해 화면내 예측 모드 기반의 화면내 예측 방법이 적용되는지 여부를 나타내는 플래그가 정의될 수 있다. 여기서, 플래그가 제1 값인 경우, 현재 블록에 속한 서브 블록들은 화면내 예측 모드 기반의 화면내 예측 방법을 이용하여 예측되고, 플래그가 제2 값인 경우, 현재 블록에 속한 서브 블록들은 선형 모델 기반의 화면내 예측 방법을 이용하여 예측될 수 있다.
또는, 전술한 플래그는 현재 블록에 속한 서브 블록의 단위로 정의될 수도 있고, 이를 통해 서브 블록마다 화면내 예측 방법이 결정될 수 있다. 즉, 현재 블록의 서브 블록들 중 어느 하나는 다른 하나와 상이한 화면내 예측 방법을 이용할 수 있다. 또한, 플래그에 따라 해당 서브 블록이 선형 모델 기반의 화면내 예측 방법을 이용하여 예측되는 경우, 해당 서브 블록이 선형 모델 기반의 파라미터를 유도하기 위해 이용하는 서브 블록의 위치를 특정하는 정보가 부호화/복호화될 수 있다. 일 예로, 현재 블록 내 세번째 스캔 순서를 가진 서브 블록이 선형 모델 기반의 화면내 예측 방법을 이용하는 경우, 첫번째 스캔 순서를 가진 서브 블록과 두번째 스캔 순서를 가진 서브 블록 중 어떤 서브 블록을 이용하여 선형 모델 기반의 파라미터를 유도하는지 알려주는 정보가 부호화되어 시그널링될 수 있다.
상기 플래그는 부호화 장치에서 부호화되어 시그널링될 수도 있고, 소정의 부호화 파라미터에 기초하여 부호화/복호화 장치에서 유도될 수도 있다. 여기서, 부호화 파라미터는 전술한 바와 같으며, 자세한 설명은 생략하기로 한다.
현재 블록 내 서브 블록들에 대해 래스터 스캔이 적용된 경우, 현재 블록 내 가장 먼저 부호화/복호화되는 서브 블록은 서브 블록1이며, 이는 전술한 화면내 예측 모드 기반의 화면내 예측 방법만을 이용하여 부호화/복호화되도록 제한될 수 있다. 이 경우, 화면내 예측 모드 기반의 화면내 예측 방법과 선형 모델 기반의 화면내 예측 방법 중 어느 하나를 특정하는 플래그가 부호화되지 않으며, 플래그는는 선형 모델 기반의 화면내 예측 방법이 이용되지 않음으로 추론될 수 있다.
또는, 현재 블록에 속한 서브 블록들 중 적어도 하나는, 화면내 예측 모드 기반의 화면내 예측 방법과 선형 모델 기반의 화면내 예측 방법을 둘다 이용할 수도 있다. 일예로, 화면내 예측 모드 기반의 화면내 예측 방법을 이용하여 서브 블록의 제1 예측 블록을, 선형 모델 기반의 화면내 예측 방법을 이용하여 서브 블록의 제2 예측 블록을 각각 생성할 수 있다. 제1 예측 블록과 제2 예측 블록 간의 가중합을 통해 서브 블록의 최종 예측 블록을 생성할 수도 있다. 여기서, 가중합을 위한 가중치는 현재 블록에 인접한 주변 블록이 이용한 화면내 예측 방법을 고려하여 결정될 수 있다. 일예로, 상기 가중치는, 화면내 예측 모드 기반의 화면내 예측 방법을 이용한 주변 블록과 선형 모델 기반의 화면내 예측 방법을 이용한 주변 블록의 개수 또는 비율을 고려하여 적응적으로 결정될 수 있다.
또는, 현재 블록에 속한 서브 블록들 중 적어도 하나는, 화면내 예측 모드 기반의 화면내 예측 방법을 이용하여 예측되고, 그런 다음 선형 모델 기반의 화면내 예측 방법을 이용하여 보정될 수도 있다. 역으로, 현재 블록에 속한 서브 블록들 중 적어도 하나는, 선형 모델 기반의 화면내 예측 방법을 이용하여 예측되고, 그런 다음 화면내 예측 모드 기반의 화면내 예측 방법을 이용하여 보정될 수도 있다.
상기 예시와 같이, 현재 블록이 서브 샘플링을 통해 구성된 서브 블록을 기반으로 화면내 예측이 수행된 경우, 이후의 부호화/복호화 순서를 가진 블록들의 부호화/복호화시에 MPM 후보로서 MPM 리스트에 삽입될 수 있다. 이 때, 서브 샘플링을 이용한 예측 방식으로 저장될 수도 있으며 혹은, 기-정의된 모드를 저장하게 할 수도 있다. 일 예로, 이 기-정의된 단 일모드는 평면 모드 혹은 DC 모드가 될 수 있다.
복호화 과정 또는 부호화 과정을 중심으로 설명된 실시예들을, 부호화 과정 또는 복호화 과정에 적용하는 것은, 본 개시의 범주에 포함되는 것이다. 소정의 순서로 설명된 실시예들을, 설명된 것과 상이한 순서로 변경하는 것 역시, 본 개시의 범주에 포함되는 것이다.
상술한 개시는 일련의 단계 또는 순서도를 기초로 설명되고 있으나, 이는 발명의 시계열적 순서를 한정한 것은 아니며, 필요에 따라 동시에 수행되거나 다른 순서로 수행될 수 있다. 또한, 상술한 개시에서 블록도를 구성하는 구성요소(예를 들어, 유닛, 모듈 등) 각각은 하드웨어 장치 또는 소프트웨어로 구현될 수도 있고, 복수의 구성요소가 결합하여 하나의 하드웨어 장치 또는 소프트웨어로 구현될 수도 있다. 상술한 개시는 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 하드웨어 장치는 본 개시에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 본 개시에 따른 장치는, 전술한 부호화 방법에 의해 생성된 비트스트림을 저장하거나 전송하기 위한 프로그램 명령어(instructions)을 가질 수 있다.

Claims (21)

  1. 트리 구조 기반의 블록 분할을 통해 현재 블록을 결정하는 단계;
    상기 현재 블록을 서브 샘플링하여, 상기 현재 블록으로부터 하나 또는 그 이상의 서브 블록을 구성하는 단계; 및
    소정의 스캔 순서에 따라, 상기 현재 블록에 속한 서브 블록을 복호화하는 단계를 포함하는, 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 트리 구조 기반의 블록 분할은, 펜타 트리(Penta-tree) 분할 또는 쿼드 트리(quad-tree) 분할 중 적어도 하나를 포함하는, 영상 복호화 방법.
  3. 제2항에 있어서,
    상기 쿼드 트리 분할은, 수직 방향 또는 수평 방향 중 어느 하나의 방향으로, 부호화 블록을 4개의 부호화 블록으로 분할하고,
    상기 쿼드 트리 분할은, 소정의 분할 비율을 가진 복수의 분할 타입 중 어느 하나를 선택적으로 이용하여 수행되는, 영상 복호화 방법.
  4. 제1항에 있어서,
    상기 현재 블록은 NxM 크기의 서브 영역 단위로 구분되고,
    상기 서브 블록은 각 서브 영역 단위로로부터 추출된 동일 위치의 화소들로 구성되는, 영상 복호화 방법.
  5. 제4항에 있어서,
    상기 서브 샘플링은 수평 방향 또는 수직 방향 중 어느 하나의 방향에 대해서만 수행되는, 영상 복호화 방법.
  6. 제4항에 있어서,
    상기 서브 영역 단위의 크기는, 상기 현재 블록에 관한 부호화 파라미터에 기초하여 적응적으로 결정되고,
    상기 부호화 파라미터는, 슬라이스 타입, 블록 크기, 화면내 예측 모드, 화면내 예측 모드의 방향성, 성분 타입, 변환 타입, 변환 스킵 여부, 또는 스캔 순서 중 적어도 하나를 포함하는, 영상 복호화 방법.
  7. 제6항에 있어서,
    상기 서브 블록을 복호화하는 단계는, 상기 서브 블록의 예측을 위한 참조 화소를 유도하는 단계, 상기 서브 블록의 예측을 위한 화면내 예측 모드를 유도하는 단계, 또는 상기 서브 블록의 화면내 예측을 수행하는 단계 중 적어도 하나를 포함하는, 영상 복호화 방법.
  8. 제7항에 있어서,
    상기 참조 화소는, 상기 현재 블록에 인접화 화소 또는 상기 현재 블록 내 기-복원된 서브 블록의 화소 중 적어도 하나를 포함하는, 영상 복호화 방법.
  9. 제7항에 있어서,
    상기 화면내 예측 모드는, 상기 현재 블록의 MPM 리스트로부터 유도되고,
    상기 MPM 리스트는 복수의 MPM 후보를 포함하고,
    상기 복수의 MPM 후보 중 적어도 하나는, 상기 현재 블록의 좌측 중앙 블록, 상단 중앙 블록, 우측 블록, 또는 하단 블록 중 적어도 하나를 이용하여 유도되는, 영상 복호화 방법.
  10. 제7항에 있어서,
    상기 서브 블록의 화면내 예측은, 화면내 예측 모드 기반의 화면내 예측 방법 또는 선형 모델 기반의 화면내 예측 방법 중 적어도 하나를 이용하여 수행되는, 영상 복호화 방법.
  11. 트리 구조 기반의 블록 분할을 통해 현재 블록을 결정하는 단계;
    상기 현재 블록을 서브 샘플링하여, 상기 현재 블록으로부터 하나 또는 그 이상의 서브 블록을 구성하는 단계; 및
    소정의 스캔 순서에 따라, 상기 현재 블록에 속한 서브 블록을 부호화하는 단계를 포함하는, 영상 부호화 방법.
  12. 제11항에 있어서,
    상기 트리 구조 기반의 블록 분할은, 펜타 트리(Penta-tree) 분할 또는 쿼드 트리(quad-tree) 분할 중 적어도 하나를 포함하는, 영상 부호화 방법.
  13. 제12항에 있어서,
    상기 쿼드 트리 분할은, 수직 방향 또는 수평 방향 중 어느 하나의 방향으로, 부호화 블록을 4개의 부호화 블록으로 분할하고,
    상기 쿼드 트리 분할은, 소정의 분할 비율을 가진 복수의 분할 타입 중 어느 하나를 선택적으로 이용하여 수행되는, 영상 부호화 방법.
  14. 제11항에 있어서,
    상기 현재 블록은 NxM 크기의 서브 영역 단위로 구분되고,
    상기 서브 블록은 각 서브 영역 단위로로부터 추출된 동일 위치의 화소들로 구성되는, 영상 부호화 방법.
  15. 제14항에 있어서,
    상기 서브 샘플링은 수평 방향 또는 수직 방향 중 어느 하나의 방향에 대해서만 수행되는, 영상 부호화 방법.
  16. 제14항에 있어서,
    상기 서브 영역 단위의 크기는, 상기 현재 블록에 관한 부호화 파라미터에 기초하여 적응적으로 결정되고,
    상기 부호화 파라미터는, 슬라이스 타입, 블록 크기, 화면내 예측 모드, 화면내 예측 모드의 방향성, 성분 타입, 변환 타입, 변환 스킵 여부, 또는 스캔 순서 중 적어도 하나를 포함하는, 영상 부호화 방법.
  17. 제16항에 있어서,
    상기 서브 블록을 부호화하는 단계는, 상기 서브 블록의 예측을 위한 참조 화소를 유도하는 단계, 상기 서브 블록의 예측을 위한 화면내 예측 모드를 결정하는 단계, 또는 상기 서브 블록의 화면내 예측을 수행하는 단계 중 적어도 하나를 포함하는, 영상 부호화 방법.
  18. 제17항에 있어서,
    상기 참조 화소는, 상기 현재 블록에 인접화 화소 또는 상기 현재 블록 내 기-복원된 서브 블록의 화소 중 적어도 하나를 포함하는, 영상 부호화 방법.
  19. 제17항에 있어서,
    상기 화면내 예측 모드는, 상기 현재 블록의 MPM 리스트로부터 결정되고,
    상기 MPM 리스트는 복수의 MPM 후보를 포함하고,
    상기 복수의 MPM 후보 중 적어도 하나는, 상기 현재 블록의 좌측 중앙 블록, 상단 중앙 블록, 우측 블록, 또는 하단 블록 중 적어도 하나를 이용하여 유도되는, 영상 부호화 방법.
  20. 제17항에 있어서,
    상기 서브 블록의 화면내 예측은, 화면내 예측 모드 기반의 화면내 예측 방법 또는 선형 모델 기반의 화면내 예측 방법 중 적어도 하나를 이용하여 수행되는, 영상 부호화 방법.
  21. 영상 복호화 방법에 의해 복호화되는 비트스트림을 저장하는 컴퓨터로 판독가능한 기록 매체에 있어서,
    상기 영상 복호화 방법은,
    트리 구조 기반의 블록 분할을 통해 현재 블록을 결정하는 단계;
    상기 현재 블록을 서브 샘플링하여, 상기 현재 블록으로부터 하나 또는 그 이상의 서브 블록을 구성하는 단계; 및
    소정의 스캔 순서에 따라, 상기 현재 블록에 속한 서브 블록을 복호화하는 단계를 포함하는, 컴퓨터로 판독가능한 기록 매체.
KR1020220078232A 2021-06-29 2022-06-27 화면내 예측 기반의 비디오 신호 부호화/복호화 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체 KR20230002091A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210085114 2021-06-29
KR1020210085114 2021-06-29

Publications (1)

Publication Number Publication Date
KR20230002091A true KR20230002091A (ko) 2023-01-05

Family

ID=84692912

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220078232A KR20230002091A (ko) 2021-06-29 2022-06-27 화면내 예측 기반의 비디오 신호 부호화/복호화 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체

Country Status (2)

Country Link
KR (1) KR20230002091A (ko)
WO (1) WO2023277486A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117395408A (zh) * 2016-10-04 2024-01-12 韩国电子通信研究院 对图像进行编码/解码的方法和设备以及记录介质
US20190342545A1 (en) * 2016-10-28 2019-11-07 Lg Electronics Inc. Intra-prediction mode-based image processing method and apparatus for same
US11012715B2 (en) * 2018-02-08 2021-05-18 Qualcomm Incorporated Intra block copy for video coding
AU2018233042A1 (en) * 2018-09-21 2020-04-09 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a tree of blocks of video samples
EP4042692A4 (en) * 2019-10-29 2022-11-30 Beijing Bytedance Network Technology Co., Ltd. COMPONENT ADAPTIVE LOOP FILTER

Also Published As

Publication number Publication date
WO2023277486A1 (ko) 2023-01-05

Similar Documents

Publication Publication Date Title
US20210337197A1 (en) Method and apparatus for processing video signal
CN109923866B (zh) 视频解码方法、编码方法
CN109417641B (zh) 用于处理视频信号的方法和装置
CN110024410B (zh) 用于对视频进行编码和解码的方法
CN109644281B (zh) 用于处理视频信号的方法和设备
KR20200105434A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
US11184639B2 (en) Method and device for video signal processing
CN109716775B (zh) 用于处理视频信号的方法和装置
CN117041561A (zh) 对视频进行解码或编码的方法和存储视频数据的设备
CN109983776B (zh) 视频信号处理方法和设备
US20230049912A1 (en) Method and apparatus for processing video signal
CN112166609A (zh) 用于处理视频信号的方法和设备
KR20200084306A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20200104252A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20200132766A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20230002091A (ko) 화면내 예측 기반의 비디오 신호 부호화/복호화 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체
US20240129528A1 (en) Video signal encoding/decoding method and apparatus based on intra prediction, and recording medium storing bitstream
KR20230002095A (ko) 서브 블록 단위의 화면 내 예측에 기반한 비디오 신호 부호화/복호화 방법, 그리고 비트스트림을 저장한 기록 매체
KR20230043747A (ko) 비디오 신호 부호화/복호화 방법, 그리고 비트스트림을 저장한 기록 매체