KR20200041801A - 영상 부호화/복호화 방법 및 장치 - Google Patents

영상 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
KR20200041801A
KR20200041801A KR1020190125883A KR20190125883A KR20200041801A KR 20200041801 A KR20200041801 A KR 20200041801A KR 1020190125883 A KR1020190125883 A KR 1020190125883A KR 20190125883 A KR20190125883 A KR 20190125883A KR 20200041801 A KR20200041801 A KR 20200041801A
Authority
KR
South Korea
Prior art keywords
mode
intra
intra prediction
block
prediction
Prior art date
Application number
KR1020190125883A
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 KR20200041801A publication Critical patent/KR20200041801A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 기-정의된 예측 모드를 기반으로 현재 블록의 예측 블록을 생성하고, 소정의 변환을 통해 현재 블록의 변환 블록을 생성하며, 예측 블록과 변환 블록을 기반으로 현재 블록을 복원할 수 있다.

Description

영상 부호화/복호화 방법 및 장치{VIDEO SIGNAL ENCODING/DECODING METHOD AND APPARATUS}
본 발명은 비디오 신호 처리 방법 및 장치에 관한 것이다.
고해상도 비디오에 대한 시장의 수요가 증가하고 있으며, 이에 따라 고해상도 영상을 효율적으로 압축할 수 있는 기술이 필요하다. 이러한 시장의 요구에 따라 ISO/IEC의 MPEG (Moving Picture Expert Group)과 ITU-T의 VCEG (Video Coding Expert Group)이 공동으로 JCT-VC (Joint Collaborative Team on Video Coding)를 결성하여, HEVC (High Efficiency Video Coding) 비디오 압축 표준을 2013년 1월에 개발을 완료했으며, 차세대 압축 표준에 대한 연구 및 개발을 활발히 진행해오고 있다.
동영상 압축은 크게 화면 내 예측 (또는 인트라 예측), 화면 간 예측(또는 인터 예측), 변환, 양자화, 엔트로피(Entropy coding) 부호화, 인루프 필터(In-loop filter)로 구성된다. 한편, 고해상도 영상에 대한 수요가 증가함과 함께, 새로운 영상 서비스로서 입체 영상 컨텐츠에 대한 수요도 함께 증가하고 있다. 고해상도 및 초고해상도의 입체 영상 콘텐츠를 효과적으로 제공하기 위한 비디오 압축 기술에 대하여 논의가 진행되고 있다.
본 발명은 효율이 향상된 영상 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명은 인터 모드 별 예측 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명은 인트라 예측 모드를 유도하는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명은 인트라 예측을 위한 참조 화소를 구성하는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명은 인트라 예측/보정 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명은 멀티 타입 기반의 변환 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명은 영상 부호화 방법 및 장치에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독 가능한 기록 매체를 제공하는 것을 목적으로 한다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 기-정의된 예측 모드를 기반으로, 현재 블록의 예측 블록을 생성하고, 소정의 변환을 통해, 상기 현재 블록의 변환 블록을 생성하며, 상기 예측 블록과 상기 변환 블록을 기반으로, 상기 현재 블록을 복원할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 예측 블록을 생성하는 단계는, 상기 현재 블록의 인트라 레퍼런스 라인을 결정하는 단계, 소정의 후보 그룹으로부터 상기 현재 블록의 인트라 예측 모드를 결정하는 단계 및 상기 결정된 인트라 레퍼런스 라인과 상기 인트라 예측 모드를 기반으로, 상기 현재 블록의 인트라 예측을 수행하는 단계를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 후보 그룹은, 제1 후보 그룹과 제2 후보 그룹으로 구분되고, 상기 제1 후보 그룹은, 복호화 장치에 기-정의된 디폴트 모드로 구성되고, 상기 제2 후보 그룹은, 복수의 MPM 후보로 구성될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 현재 블록의 인트라 예측 모드는, 상기 제1 후보 그룹 또는 상기 제2 후보 그룹 중 어느 하나를 선택적으로 이용하여 유도될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 디폴트 모드는, Planar 모드, DC 모드, 수직 모드, 수평 모드, 수직 모드 또는 대각 모드 중 적어도 하나일 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 복수의 MPM 후보는, 주변 블록의 인트라 예측 모드(candIntraPredMode), candIntraPredMode-n, candIntraPredMode+n 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 복수의 MPM 후보는, DC 모드, 수직 모드, 수평 모드, (수직 모드-m), (수직 모드+m), (수평 모드-m) 또는 (수평 모드+m) 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 결정된 인트라 예측 모드는, 소정의 오프셋을 가산 또는 감산하여 변경될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 오프셋의 적용은, 상기 현재 블록의 크기, 형태, 분할 정보, 인트라 예측 모드의 값 또는 성분 타입 중 적어도 하나에 기초하여 선택적으로 수행될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 인트라 예측을 수행하는 단계는, 수직선 또는 수평선을 이용하여, 상기 현재 블록을 복수의 서브 블록으로 분할하는 단계 및 상기 서브 블록의 단위로, 순차적으로 인트라 예측을 수행하는 단계를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 현재 블록에 속한 서브 블록의 개수는, 상기 현재 블록의 크기 또는 형태 중 적어도 하나에 기초하여 가변적으로 결정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 인트라 예측을 수행하는 단계는, 소정의 참조 샘플과 가중치를 기반으로, 상기 인트라 예측에 따른 예측값을 보정하는 단계를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 참조 샘플과 가중치 각각은, 상기 현재 블록의 크기, 보정 대상인 현재 샘플의 위치 또는 상기 현재 블록의 인트라 예측 모드 중 적어도 하나에 기초하여 결정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 변환은, DCT-2, DST-7 또는 DCT-8 중 적어도 하나를 선택적으로 이용하여 수행될 수 있다.
본 발명에 따른 디지털 저장 매체는, 전술한 영상 부호화 방법/장치에 따라 생성된 비디오 비트스트림을 저장할 수 있다.
본 발명은 효율적인 인트라 예측 모드 유도 방법 및 장치를 제공할 수 있다.
본 발명은 적응적인 참조 샘플을 구성하여 부호화 효율을 향상시킬 수 있다.
본 발명은 인트라 예측의 보정을 통해 인트라 예측의 정확도를 향상시킬 수 있다.
본 발명은 멀티 타입 기반의 변환 뿐만 아니라 추가적인 변환을 수행함으로써, 잔차 샘플의 부호화 효율을 향싱시킬 수 있다.
본 발명에 따르면, 본 발명에 따른 영상 부호화 방법/장치에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독 가능한 기록 매체가 제공될 수 있다.
도 1은 본 발명에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 2는 본 발명에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 3 내지 도 5는 본 발명이 적용되는 일실시예로서, 픽쳐를 복수의 블록으로 분할하는 방법을 도시한 것이다.
도 6은 본 발명이 적용되는 일실시예로서, 현재 블록을 복원하는 과정을 개략적으로 도시한 것이다.
도 7은 본 발명이 적용되는 일실시예로서, 인터 예측 방법을 도시한 것이다.
도 8 내지 도 10은 본 발명이 적용되는 일실시예로서, 어파인 인터 예측 방법을 도시한 것이다.
도 11 및 도 12는 본 발명이 적용되는 일실시예로서, 머지 모드 기반의 인터 예측 방법을 도시한 것이다.
도 13은 본 발명이 적용되는 일실시예로서, 인트라 예측 과정을 도시한 것이다.
도 14는 본 발명이 적용되는 일실시예로서, 현재 블록의 인트라 레퍼런스 라인을 결정하는 방법을 도시한 것이다.
도 15 내지 도 17은 본 발명이 적용되는 일실시예로서, 제2 플래그의 시그날링 방법을 도시한 것이다.
도 18 내지 도 21은 본 발명이 적용되는 일실시예로서, 유도된 인트라 예측 모드를 변경하는 방법을 도시한 것이다.
도 22는 본 발명이 적용되는 일실시예로서, 서브 파티션 기반의 인트라 예측 방법을 도시한 것이다.
도 23 및 도 24는 본 발명이 적용되는 일실시예로서, 인트라 예측에 따른 예측값을 보정하는 방법에 관한 것이다.
도 25 내지 도 27은 본 발명이 적용되는 일실시예로서, 변환 및/또는 양자화를 기반으로 잔차 영상을 부호화/복호화하는 방법을 도시한 것이다.
도 28 및 도 29는 본 발명이 적용되는 일실시예로서, 복원 영상에 인루프 필터를 적용하는 방법을 도시한 것이다.
본 명세서에 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다.
또한, 본 명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
또한, 본 명세서에서 설명되는 장치 및 방법에 관한 실시예에 있어서, 장치의 구성 일부 또는 방법의 단계 일부는 생략될 수 있다. 또한 장치의 구성 일부 또는 방법의 단계 일부의 순서가 변경될 수 있다. 또한 장치의 구성 일부 또는 방법의 단계 일부에 다른 구성 또는 다른 단계가 삽입될 수 있다.
또한, 본 발명의 제1 실시예의 일부 구성 또는 일부 단계는 본 발명의 제2 실시예에 부가되거나, 제2 실시예의 일부 구성 또는 일부 단계를 대체할 수 있다.
덧붙여, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
본 명세서에서, 블록은 단위, 영역, 유닛, 파티션 등으로 다양하게 표현될 수 있고, 샘플은 화소, 펠(pel), 픽셀 등으로 다양하게 표현될 수 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 1을 참조하면, 종래 영상 부호화 장치(100)는 픽쳐 분할부(110), 예측부(120, 125), 변환부(130), 양자화부(135), 재정렬부(160), 엔트로피 부호화부(165), 역양자화부(140), 역변환부(145), 필터부(150) 및 메모리(155)를 포함할 수 있다.
픽쳐 분할부(110)는 입력된 픽쳐를 적어도 하나의 처리 단위로 분할할 수 있다. 이때, 처리 단위는 예측 단위(Prediction Unit: PU)일 수도 있고, 변환 단위(Transform Unit: TU)일 수도 있으며, 부호화 단위(Coding Unit: CU)일 수도 있다. 이하, 본 발명의 실시예에서는 부호화 단위는 부호화를 수행하는 단위의 의미로 사용할 수도 있고, 복호화를 수행하는 단위의 의미로 사용할 수도 있다.
예측 단위는 하나의 부호화 단위 내에서 동일한 크기의 적어도 하나의 정사각형 또는 직사각형 등의 형태를 가지고 분할된 것일 수도 있고, 하나의 부호화 단위 내에서 분할된 예측 단위 중 어느 하나의 예측 단위가 다른 하나의 예측 단위와 상이한 형태 및/또는 크기를 가지도록 분할된 것일 수도 있다. 부호화 단위를 기초로 인트라 예측을 수행하는 예측 단위를 생성시 최소 부호화 단위가 아닌 경우, 복수의 예측 단위 NxN 으로 분할하지 않고 인트라 예측을 수행할 수 있다.
예측부(120, 125)는 인터 예측 또는 화면 간 예측을 수행하는 인터 예측부(120)와 인트라 예측 또는 화면 내 예측을 수행하는 인트라 예측부(125)를 포함할 수 있다. 예측 단위에 대해 인터 예측을 사용할 것인지 또는 인트라 예측을 수행할 것인지를 결정하고, 각 예측 방법에 따른 구체적인 정보(예컨대, 인트라 예측 모드, 모션 벡터, 참조 픽쳐 등)를 결정할 수 있다. 생성된 예측 블록과 원본 블록 사이의 잔차값(잔차 블록)은 변환부(130)로 입력될 수 있다. 또한, 예측을 위해 사용한 예측 모드 정보, 모션 벡터 정보 등은 잔차값과 함께 엔트로피 부호화부(165)에서 부호화되어 복호화기에 전달될 수 있다.
인터 예측부(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 Mode), 병합 모드(Merge 모드), AMVP 모드(AMVP Mode), 인트라 블록 카피(Intra Block Copy) 모드, 어파인 모드(Affine mode) 등 다양한 방법이 사용될 수 있다.
인트라 예측부(125)는 현재 픽쳐 내의 화소 정보인 현재 블록 주변의 참조 픽셀 정보를 기초로 예측 단위를 생성할 수 있다. 현재 예측 단위의 주변 블록이 인터 예측을 수행한 블록이어서, 참조 픽셀이 인터 예측을 수행한 픽셀일 경우, 인터 예측을 수행한 블록에 포함되는 참조 픽셀을 주변의 인트라 예측을 수행한 블록의 참조 픽셀 정보로 대체하여 사용할 수 있다. 즉, 참조 픽셀이 가용하지 않는 경우, 가용하지 않은 참조 픽셀 정보를 가용한 참조 픽셀 중 적어도 하나의 참조 픽셀로 대체하여 사용할 수 있다.
또한, 예측부(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차원의 블록 형태 계수를 행 방향으로 스캔하는 수평 스캔이 사용될 수도 있다. 즉, 변환 단위의 크기 및 인트라 예측 모드에 따라 지그-재그 스캔, 수직 방향 스캔 및 수평 방향 스캔 중 어떠한 스캔 방법이 사용될지 여부를 결정할 수 있다.
엔트로피 부호화부(165)는 재정렬부(160)에 의해 산출된 값들을 기초로 엔트로피 부호화를 수행할 수 있다. 엔트로피 부호화는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 부호화 방법을 사용할 수 있다. 관련하여, 엔트로피 부호화부(165)는 재정렬부(160) 및 예측부(120, 125)로부터 부호화 단위의 잔차값 계수 정보를 부호화 할 수 있다. 또한, 본 발명에 따라 움직임 정보를 디코더 측면에서 유도하여 사용함을 지시하는 정보 및 움직임 정보 유도에 사용된 기법에 대한 정보를 시그널링(signaling)하여 전송하는 것이 가능하다.
역양자화부(140) 및 역변환부(145)에서는 양자화부(135)에서 양자화된 값들을 역양자화하고 변환부(130)에서 변환된 값들을 역변환한다. 역양자화부(140) 및 역변환부(145)에서 생성된 잔차값(Residual)은 예측부(120, 125)에 포함된 움직임 추정부, 움직임 보상부 및 인트라 예측부를 통해서 예측된 예측 단위와 합쳐져 복원 블록(Reconstructed Block)을 생성할 수 있다.
필터부(150)는 디블록킹 필터, 오프셋 보정부, ALF(Adaptive Loop Filter)중 적어도 하나를 포함할 수 있다. 디블록킹 필터는 복원된 픽쳐에서 블록간의 경계로 인해 생긴 블록 왜곡을 제거할 수 있다. 오프셋 보정부는 디블록킹을 수행한 영상에 대해 픽셀 단위로 원본 영상과의 오프셋을 보정할 수 있다. 특정 픽쳐에 대한 오프셋 보정을 수행하기 위해 영상에 포함된 픽셀을 일정한 수의 영역으로 구분한 후 오프셋을 수행할 영역을 결정하고 해당 영역에 오프셋을 적용하는 방법 또는 각 픽셀의 에지 정보를 고려하여 오프셋을 적용하는 방법을 사용할 수 있다. ALF(Adaptive Loop Filtering)는 필터링한 복원 영상과 원래의 영상을 비교한 값을 기초로 수행될 수 있다. 영상에 포함된 픽셀을 소정의 그룹으로 나눈 후 해당 그룹에 적용될 하나의 필터를 결정하여 그룹마다 차별적으로 필터링을 수행할 수 있다.
메모리(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차원의 블록 형태의 계수로 복원하여 재정렬할 수 있다.
역양자화부(220)는 부호화기에서 제공된 양자화 파라미터와 재정렬된 블록의 계수값을 기초로 역양자화를 수행할 수 있다.
역변환부(225)는 영상 부호화기에서 수행한 양자화 결과에 대해 변환부에서 수행한 변환 즉, DCT, DST, 및 KLT에 대해 역변환 즉, 역 DCT, 역 DST 및 역 KLT를 수행할 수 있다. 역변환은 영상 부호화기에서 결정된 전송 단위를 기초로 수행될 수 있다. 영상 복호화기의 역변환부(225)에서는 예측 방법, 현재 블록의 크기 및 예측 방향 등 복수의 정보에 따라 변환 기법(예를 들어, DCT, DST, KLT)이 선택적으로 수행될 수 있다.
예측부(230, 235)는 엔트로피 복호화부(210)에서 제공된 예측 블록 생성 관련 정보와 메모리(245)에서 제공된 이전에 복호화된 블록 또는 픽쳐 정보를 기초로 예측 블록을 생성할 수 있다.
전술한 바와 같이 영상 부호화기에서의 동작과 동일하게 인트라 예측 또는 화면 내 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 동일할 경우, 예측 단위의 좌측에 존재하는 픽셀, 좌측 상단에 존재하는 픽셀, 상단에 존재하는 픽셀을 기초로 예측 단위에 대한 인트라 예측을 수행하지만, 인트라 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 상이할 경우, 변환 단위를 기초로 한 참조 픽셀을 이용하여 인트라 예측을 수행할 수 있다. 또한, 최소 부호화 단위에 대해서만 NxN 분할을 사용하는 인트라 예측을 사용할 수도 있다.
예측부(230, 235)는 예측 단위 판별부, 인터 예측부 및 인트라 예측부를 포함할 수 있다. 예측 단위 판별부는 엔트로피 복호화부(210)에서 입력되는 예측 단위 정보, 인트라 예측 방법의 예측 모드 정보, 인터 예측 방법의 모션 예측 관련 정보 등 다양한 정보를 입력 받고 현재 부호화 단위에서 예측 단위를 구분하고, 예측 단위가 인터 예측을 수행하는지 아니면 인트라 예측을 수행하는지 여부를 판별할 수 있다. 반면, 만약 부호화기(100)에서 상기 인터 예측을 위한 모션 예측 관련 정보를 전송하지 않고, 대신 움직임 정보를 디코더 측면에서 유도하여 사용함을 지시하는 정보 및 움직임 정보 유도에 사용된 기법에 대한 정보를 전송하는 경우에는, 상기 예측 단위 판별부는 부호화기(100)로부터 전송된 정보를 기초로 하여, 인터 예측부(230)의 예측 수행을 판별하게 된다.
인터 예측부(230)는 영상 부호화기에서 제공된 현재 예측 단위의 인터 예측에 필요한 정보를 이용해 현재 예측 단위가 포함된 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐에 포함된 정보를 기초로 현재 예측 단위에 대한 인터 예측을 수행할 수 있다. 인터 예측을 수행하기 위해 부호화 단위를 기준으로 해당 부호화 단위에 포함된 예측 단위의 모션 예측 방법이 스킵 모드(Skip Mode), 병합 모드(Merge 모드), AMVP 모드(AMVP Mode), 인트라 블록 카피 모드(Intra block copy mode), 어파인 모드(Affine mode) 중 어떠한 방법인지 여부를 판단할 수 있다.
인트라 예측부(235)는 현재 픽쳐 내의 화소 정보를 기초로 예측 블록을 생성할 수 있다. 예측 단위가 인트라 예측을 수행한 예측 단위인 경우, 영상 부호화기에서 제공된 예측 단위의 인트라 예측 모드 정보를 기초로 인트라 예측을 수행할 수 있다.
인트라 예측부(235)에는 AIS(Adaptive Intra Smoothing) 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 부분으로써 현재 예측 단위의 예측 모드에 따라 필터의 적용 여부를 결정하여 적용할 수 있다. 영상 부호화기에서 제공된 예측 단위의 예측 모드 및 AIS 필터 정보를 이용하여 현재 블록의 참조 화소에 AIS 필터링을 수행할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.
참조 화소 보간부는 예측 단위의 예측 모드가 참조 화소를 보간한 화소값을 기초로 인트라 예측을 수행하는 예측 단위일 경우, 참조 화소를 보간하여 정수값 이하의 화소 단위의 참조 화소를 생성할 수 있다. 현재 예측 단위의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.
복원된 블록 또는 픽쳐는 필터부(240)로 제공될 수 있다. 필터부(240)는 디블록킹 필터, 오프셋 보정부, ALF를 포함할 수 있다.
영상 부호화기로부터 해당 블록 또는 픽쳐에 디블록킹 필터를 적용하였는지 여부에 대한 정보 및 디블록킹 필터를 적용하였을 경우, 강한 필터를 적용하였는지 또는 약한 필터를 적용하였는지에 대한 정보를 제공받을 수 있다. 영상 복호화기의 디블록킹 필터에서는 영상 부호화기에서 제공된 디블록킹 필터 관련 정보를 제공받고 영상 복호화기에서 해당 블록에 대한 디블록킹 필터링을 수행할 수 있다.
오프셋 보정부는 부호화시 영상에 적용된 오프셋 보정의 종류 및 오프셋 값 정보 등을 기초로 복원된 영상에 오프셋 보정을 수행할 수 있다. ALF는 부호화기로부터 제공된 ALF 적용 여부 정보, ALF 계수 정보 등을 기초로 부호화 단위에 적용될 수 있다. 이러한 ALF 정보는 특정한 파라메터 셋에 포함되어 제공될 수 있다.
메모리(245)는 복원된 픽쳐 또는 블록을 저장하여 참조 픽쳐 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽쳐를 출력부로 제공할 수 있다.
도 3 내지 도 5는 본 발명이 적용되는 일실시예로서, 픽쳐를 복수의 블록으로 분할하는 방법을 도시한 것이다.
도 3을 참조하면, 픽쳐는 복수개의 기본 코딩 유닛(Coding Tree Unit, 이하, CTU)으로 나누어진다.
픽쳐 또는 비디오 시퀀스 단위로 CTU의 크기를 규정할 수 있으며, 각 CTU는 다른 CTU와 겹치지 않도록 구성되어 있다. 예를 들어, 전체 시퀀스에서 CTU 사이즈를 128x128로 설정할 수 있고, 픽쳐 단위로 128x128 내지 256x256 중 어느 하나를 선택해서 사용할 수도 있다.
CTU를 계층적으로 분할하여 코딩 블록/코딩 유닛(Coding Unit, 이하 CU)을 생성할 수 있다. 코딩 유닛 단위로 예측 및 변환을 수행할 수 있으며, 예측 부호화 모드를 결정하는 기본 단위가 된다. 예측 부호화 모드는 예측 영상을 생성하는 방법을 나타내며, 화면 내 예측 (intra prediction, 이하, 인트라 예측), 화면 간 예측(inter prediction, 이하, 인터 예측) 또는 복합 예측(combined prediction) 등을 예로 들 수 있다. 구체적으로 예를 들어, 코딩 유닛 단위로 인트라 예측, 인터 예측 또는 복합 예측 중 적어도 어느 하나의 예측 부호화 모드를 이용하여 예측 블록(prediction block)을 생성할 수 있다. 화면 간 예측 모드에서 참조 픽쳐가 현재 픽쳐를 가리키는 경우에는 이미 복호화된 현재 픽쳐 내 영역을 기반으로 예측 블록을 생성할 수 있다. 이는, 참조 픽쳐 인덱스와 모션 벡터를 이용하여 예측 블록을 생성하기 때문에 화면 간 예측에 포함될 수 있다. 인트라 예측은 현재 픽쳐의 정보를 이용하여 예측 블록을 생성하는 방법이고, 인터 예측은 이미 복호화된 다른 픽쳐의 정보를 이용하여 예측 블록을 생성하는 방법이며, 복합 예측은 인터 예측과 인트라 예측을 혼합하여 사용하는 방법이다. 복합 예측은, 하나의 코딩 블록을 구성하는 복수의 서브 영역 중 일부 영역은 인터 예측으로 부호화/복호화하고, 나머지 영역은 인트라 예측으로 부호화/복호화할 수 있다. 또는, 복합 예측은, 복수의 서브 영역에 대해서 1차적으로 인터 예측을 수행하고, 2차적으로 인트라 예측을 수행할 수 있다. 이 경우, 코딩 블록의 예측값은, 인터 예측에 따른 예측값과 인트라 예측에 따른 예측값을 가중 평균하여 유도될 수 있다. 하나의 코딩 블록을 구성하는 서브 영역의 개수는, 2개, 3개, 4개 또는 그 이상일 수 있고, 서브 영역의 형태는, 사각형, 삼각형, 기타 다각형일 수 있다.
도 4를 참조하면, CTU는 쿼드 트리, 바이너리 트리 또는 트리플 트리 형태로 분할 (파티셔닝)될 수 있다. 분할된 블록은 다시 쿼드 트리, 바이너리 트리 또는 트리플 트리 형태로 추가 분할될 수 있다. 현재 블록을 4개의 정방 형태 파티션으로 나누는 방법을 쿼드 트리 파티셔닝이라고 부르고, 현재 블록을 2개의 정방 또는 비정방 형태 파티션으로 나누는 방법을 바이너리 트리 파티셔닝이라고 부르며, 현재 블록을 3개의 파티션으로 나누는 방법을 바이너리 트리 파티셔닝이라고 정의한다.
수직 방향으로 바이너리 파티셔닝(도 4의 SPLIT_BT_VER)을 수직 바이너리 트리 파티셔닝이라고 부르며, 수평 방향으로 바이너리 트리 파티셔닝 (도 4의 SPLIT_BT_HOR)을 수평 바이너리 트리 파티셔닝이라고 정의한다.
수직 방향으로 트리플 파티셔닝 (도 4의 SPLIT_TT_VER)을 수직 트리플 트리 파티셔닝이라고 부르며, 수평 방향으로 트리플 트리 파티셔닝 (도 4의 SPLIT_TT_HOR)을 수평 트리플 트리 파티셔닝이라고 정의한다.
분할 횟수를 파티셔닝 뎁스(partitioning depth)라고 부르며, 시퀀스, 픽쳐, 서브 픽쳐, 슬라이스 또는 타일 별로 파티셔닝 뎁스의 최대치를 서로 다르게 설정할 수도 있으며, 파티셔닝 트리 형태(쿼드 트리/바이너리 트리/트리플 트리)에 따라 서로 다른 파티셔닝 뎁스를 가지도록 설정할 수 있으며, 이를 나타내는 신택스를 시그날링할 수도 있다.
쿼드 트리 파티션닝, 바이너리 트리 파니셔닝 또는 트리플 트리 파티셔닝과 같은 방법으로, 분할된 코딩 유닛을 추가로 분할하여 리프 노드(leaf node)의 코딩 유닛을 구성하거나, 추가 분할 없이 리프 노드(leaf node)의 코딩 유닛을 구성할 수도 있다.
도 5를 참조하면, 하나의 CTU를 계층적으로 분할하여 코딩 유닛을 설정할 수 있으며, 바이너리 트리 파티셔닝, 쿼드 트리 파티셔닝/트리플 트리 파티셔닝 중 적어도 어느 하나를 이용하여 코딩 유닛을 분할할 수 있다. 이와 같은 방법을 멀티 트리 파티셔닝(Multi tree partitioning)이라고 정의한다.
파티셔닝 뎁스가 k인 임의의 코딩 유닛을 분할하여 생성된 코딩 유닛을 하위 코딩 유닛이라 하며, 파티셔닝 뎁스는 (k+1)이 된다. 파티셔닝 뎁스 (k+1)인 하위 코딩 유닛을 포함하고 있는 파티셔닝 뎁스 k인 코딩 유닛을 상위 코딩 유닛이라 한다.
상위 코딩 유닛의 파티셔닝 타입 및/또는 현재 코딩 유닛의 주변에 있는 코딩 유닛의 파티셔닝 타입에 따라 현재 코딩 유닛의 파티셔닝 타입이 제한될 수도 있다.
여기서, 파티셔닝 타입은 바이너리 트리 파티셔닝, 쿼드 트리 파티셔닝/트리플 트리 파티셔닝 중 어느 파티셔닝을 사용했는지를 알려주는 지시자를 나타낸다.
도 6은 본 발명이 적용되는 일실시예로서, 현재 블록을 복원하는 과정을 개략적으로 도시한 것이다.
도 6을 참조하면, 부호화/복호화 장치에 기-정의된 예측 모드를 기반으로 현재 블록의 예측 블록을 생성할 수 있다(S600).
비디오 부호화/복호화에서 예측 영상은 복수 개의 방법으로 생성할 수 있으며, 예측 영상을 생성하는 방법을 예측 부호화 모드라고 한다.
예측 부호화 모드는 인트라 예측 부호화 모드, 인터 예측 부호화 모드, 현재 픽쳐 레퍼런스 부호화 모드 또는 결합 부호화 모드(combined prediction) 등으로 구성될 수 있다.
인터 예측 부호화 모드는 이전 픽쳐의 정보를 이용하여 현재 블록의 예측 블록(예측 영상)을 생성하는 예측 부호화 모드라고 하고, 인트라 예측 부호화 모드는 현재 블록과 이웃한 샘플을 이용하여 예측 블록을 생성하는 예측 부호화 모드라 한다. 현재 픽쳐의 이미 복원된 영상을 이용하여 예측 블록을 생성할 수도 있으며, 이를 현재 픽쳐 레퍼런스 모드 또는 인트라 블록 카피 모드라고 정의한다.
인터 예측 부호화 모드, 인트라 예측 부호화 모드 또는 현재 픽쳐 레퍼런스 부호화 모드 중 적어도 2개 이상의 예측 부호화 모드를 사용하여 예측 블록을 생성할 수도 있으며, 이를 결합 부호화 모드(Combined prediction)이라고 정의한다. 인터 예측 부호화 모드에 대해서는 도 7 내지 도 12를 참조하여 자세히 살펴보도록 한다. 인트라 예측 부호화 모드에 대해서는 도 13 내지 도 24를 참조하여 자세히 살펴보도록 한다.
도 6을 참조하면, 소정의 변환을 통해 현재 블록의 변환 블록을 생성할 수 있다(S610).
부호화/복호화 장치에 기-정의된 n개의 변환 타입 중 적어도 하나에 기초하여, 변환 블록이 생성될 수 있다. n은 1, 2, 3, 4, 또는 그 이상의 정수일 수 있다. 상기 변환 타입으로, DCT2, DCT8, DST7, 변환 스킵 모드 등이 이용될 수 있다. 하나의 블록의 수직/수평 방향에 대해서 하나의 동일한 변환 타입만이 적용될 수도 있고, 수직/수평 방향 각각에 대해서 상이한 변환 타입이 적용될 수도 있다. 이를 위해, 하나의 동일한 변환 타입이 적용되는지 여부를 나타내는 플래그가 이용될 수 있다. 상기 플래그는 부호화 장치에서 시그날링될 수 있다.
또한, 상기 변환 타입은, 부호화 장치에서 시그날링되는 정보에 기초하여 결정되거나, 소정의 부호화 파라미터에 기초하여 결정될 수 있다. 여기서, 부호화 파라미터는, 블록의 크기, 형태, 인트라 예측 모드 또는 성분 타입(e.g., 휘도, 색차) 중 적어도 하나를 의미할 수 있다. 블록의 크기는, 너비, 높이, 너비와 높이의 비, 너비와 높이의 곱, 너비와 높이의 합/차 등으로 표현될 수 있다. 예를 들어, 현재 블록의 크기가 소정의 문턱값보다 큰 경우, 수평 방향의 변환 타입은 제1 변환 타입(e.g., DCT2)으로 결정되고, 수직 방향의 변환 타입은 제2 변환 타입(e.g., DST7)으로 결정될 수 있다. 상기 문턱값은, 0, 4, 8, 16, 32 또는 그 이상의 정수일 수 있다. 변환 타입을 결정하는 방법에 대해서는 도 25를 참조하여 살펴보기로 한다.
한편, 본 발명에 따른 잔차 계수는, 제1 변환 이후 제2 변환을 수행하여 획득된 것일 수 있다. 제2 변환은 현재 블록 내 일부 영역의 잔차 계수에 대해서 수행될 수 있다. 이 경우, 복호화 장치는, 상기 일부 영역에 대해 제2 역변환을 수행하고, 상기 역변환된 일부 영역을 포함한 현재 블록에 대해서 제1 역변환을 수행함으로써, 현재 블록의 변환 블록을 획득할 수 있다. 이에 대해서는 도 26 및 도 27을 참조하여 살펴보기로 한다.
도 6을 참조하면, 예측 블록과 변환 블록을 기반으로, 현재 블록을 복원할 수 있다(S620).
복원된 현재 블록에 대해서 소정의 인-루프 필터가 적용될 수 있다. 인-루프 필터는, 디블록킹 필터, SAO(sample adaptive offset) 필터 또는 ALF(adaptive loop filter) 중 적어도 하나를 포함할 수 있으며, 도 28 및 도 29를 참조하여 살펴보기로 한다.
도 7은 본 발명이 적용되는 일실시예로서, 인터 예측 방법을 도시한 것이다.
이전 픽쳐의 정보를 이용하여 현재 픽쳐에 있는 블록의 예측 블록(예측 영상)을 생성하는 방법을 인터 예측 부호화 모드라 정의한다.
예를 들어, 이전 픽쳐의 동일 위치 블록(colocated block/co-located 블록)을 기반으로 예측 영상을 생성하거나, 이전 픽쳐의 특정 블록을 기반으로 예측 블록(예측 영상)을 생성할 수 있다.
여기서 특정 블록은 motion vector로부터 유도될 수 있다. 동일 위치 블록은 도 7과 같이 현재 블록과 좌상단 샘플의 위치 및 크기가 같은 해당 픽쳐의 블록을 나타낸다. 해당 픽쳐는 참조 픽쳐 레퍼런스와 같은 신택스로부터 특정될 수 있다.
인터 예측 부호화 모드에서는 오브젝트의 움직임을 고려하여 예측 블록을 생성할 수 있다.
예를 들어, 이전 픽쳐에 있는 오브젝트가 현재 픽쳐에서 어느 방향으로 어느 정도 움직였는지 알면 현재 블록에서 움직임을 고려한 블록을 기반으로 예측 블록(예측 영상)을 생성할 수 있으며, 이를 움직임 예측 블록이라 정의한다.
현재 블록에서 움직임 예측 블록 또는 해당 예측 블록을 차분하여 잔차 블록을 생성할 수 있다.
오브젝트에 움직임이 발생하면, 해당 예측 블록보다 움직임 예측 블록을 사용하면 잔차 블록의 에너지가 작아져서 압축 성능이 좋아질 수 있다.
이와 같이 움직임 예측 블록을 이용하는 방법을 움직임 보상 예측이라고 부르며, 대부분의 인터 예측 부호화에서는 움직임 보상 예측을 사용한다.
이전 픽쳐에 있는 오브젝트가 현재 픽쳐에서 어느 방향으로, 어느 정도 움직였는지를 나타내는 값을 모션 벡터라고 한다. 모션 벡터는 시퀀스, 픽쳐, 서브 픽쳐, 슬라이스, 타일, 브릭(brick), CTU 또는 CU의 단위로 서로 다른 화소 정밀도를 갖는 모션 벡터를 사용할 수 있다. 예를 들어, 특정 블록에서 모션 벡터의 화소 정밀도는 1/16, 1/8, 1/4, 1/2, 1, 2, 4 또는 8 중 적어도 어느 하나일수 있다. 후술하는 인터 예측 부호화 모드 별로, 이용 가능한 화소 정밀도 후보의 종류 및/또는 개수가 상이할 수 있다. 예를 들어, 어파인 인터 예측 방법의 경우, k개의 화소 정밀도가 이용 가능하고, translation 모션을 이용한 인터 예측 방법의 경우, i개의 화소 정밀도가 이용 가능하다. 현재 픽쳐 레퍼런스 모드의 경우, j개의 화소 정밀도가 이용 가능하다. 여기서, k, i와 j는 1, 2, 3, 4, 5, 또는 그 이상의 자연수일 수 있다. 다만, k는 i보다 작고, i는 j보다 작을 수 있다. 어파인 인터 예측 방법은 1/16, 1/4 또는 1 중 적어도 하나의 화소 정밀도를 이용하고, translation 모션을 이용한 인터 예측 방법(e.g., 머지 모드, AMVP 모드)은 1/4, 1/2, 1 또는 4 중 적어도 하나의 화소 정밀도를 이용할 수 있다. 현재 픽쳐 레퍼런스 모드는, 1, 4 또는 8 중 적어도 하나의 화소 정밀도를 이용할 수 있다.
인터 예측 모드는 translation 모션을 이용한 인터 예측 방법과 affine 모션을 이용한 affine 인터 예측 방법이 선택적으로 사용될 수도 있다. 이하, 도 8 내지 도 12를 참조하여 살펴보기로 한다.
도 8 내지 도 10은 본 발명이 적용되는 일실시예로서, 어파인 인터 예측 방법을 도시한 것이다.
비디오에서 특정 물체(object)의 움직임이 선형적으로 나타나지 않는 경우가 많이 발생한다. 예를 들어, 도 8과 같이 카메라 줌인 (Zoom-in), 줌 아웃(Zoom-out), 회전(roation), 임의 형태로 변환을 가능하게 하는 affine 변환 등의 affine motion이 사용된 영상에서는 오브젝트의 움직임을 translation 움직임 벡터만 사용하는 경우 물체의 움직임을 효과적으로 표현할 수 없으며, 부호화 성능이 낮아질 수 있다.
어파인 모션은 다음 수학식 1과 같이 표현될 수 있다.
Figure pat00001
어파인 모션을 총 6개의 파라미터를 사용하여 표현하는 것은 복잡한 움직임이 있는 영상에 효과적이지만, 어파인 모션 파라미터를 부호화하는데 사용하는 비트가 많아서 부호화 효율이 떨어질 수도 있다.
이에, 4개의 파라미터로 어파인 모션을 간략화하여 표현할 수 있으며, 이를 4-파라미터 어파인 모션 모델이라고 정의한다. 수학식 2는 4개의 파라미터로 어파인 모션을 표현한 것이다.
Figure pat00002
4-파라미터 어파인 모션 모델은 현재 블록의 2개 컨트롤 포인트에서의 움직임 벡터를 포함할 수 있다. 컨트롤 포인트는 현재 블록의 좌상단 코너, 우상단 코너 또는 좌하단 코너 중 적어도 하나를 포함할 수 있다. 일 예로, 4-파라미터 어파인 모션 모델은 도 9의 좌측과 같이 코딩 유닛의 좌상단 샘플 (x0,y0)에서의 모션 벡터 sv0와 코딩 유닛의 우상단 샘플 (x1,y1)에서의 모션 벡터 sv1에 의해서 결정될 수 있으며, sv0와 sv1을 어파인 시드 벡터라고 정의한다. 이하, 좌상단에 위치한 어파인 시드 벡터 sv0를 제1 어파인 시드 벡터라 가정하고, 우상단에 위치한 어파인 시드 벡터 sv1를 제2 어파인 시드 벡터라 가정하기로 한다. 4-파라미터 어파인 모션 모델에서 제1 및 제2 어파인 시드 벡터 중 하나를 좌하단에 위치한 어파인 시드 벡터로 교체하여 사용하는 것도 가능하다.
6-파라미터 어파인 모션 모델은 도 9의 우측과 같이 4-파라미터 어파인 모션 모델에 잔여 컨트롤 포인트(예컨대, 좌하단에 샘플 (x2, y2))의 모션 벡터 sv2가 추가된 어파인 모션 모델이다. 이하, 좌상단에 위치한 어파인 시드 벡터 sv0를 제1 어파인 시드 벡터라 가정하고, 우상단에 위치한 어파인 시드 벡터 sv1를 제2 어파인 시드 벡터라 가정하고, 좌하단에 위치한 어파인 시드 벡터 sv2를 제3 어파인 시드 벡터라 가정한다.
어파인 모션을 표현하기 위한 파라미터의 개수에 관한 정보가 비트스트림에 부호화될 수 있다. 예컨대, 6-파라미터의 사용 여부를 나타내는 플래그, 4-파라미터의 사용 여부를 나타내는 플래그가 픽쳐, 서브 픽쳐, 슬라이스, 타일, 브릭(brick), 코딩 유닛 또는 CTU 중 적어도 하나의 단위로 부호화될 수 있다. 이에 따라, 소정의 단위로 4-파라미터 어파인 모션 모델 또는 6-파라미터 어파인 모션 모델 중 어느 하나를 선택적으로 사용할 수도 있다.
어파인 시드 벡터를 이용하여 도 10과 같이 코딩 유닛의 서브 블록 별로 모션 벡터를 유도할 수 있으며, 이를 어파인 서브 블록 벡터라고 정의한다.
어파인 서브 블록 벡터는 다음 수학식 3과 같이 유도될 수도 있다. 여기서 서브 블록의 기준 샘플 위치(x, y)는 블록의 코너에 위치한 샘플(예컨대, 좌상단 샘플)일 수도 있고, x축 또는 y축 중 적어도 하나가 중앙인 샘플(예컨대, 중앙 샘플)일 수도 있다.
Figure pat00003
어파인 서브 블록 벡터를 이용하여 코딩 유닛 단위 또는 코딩 유닛 내 서브 블록 단위로 움직임 보상을 수행할 수 있으며, 이를 어파인 인터 예측 모드라고 정의한다. 수학식 3에서 (x1-x0)는 코딩 유닛의 너비와 같은 값을 가질 수 있다.
도 11 및 도 12는 본 발명이 적용되는 일실시예로서, 머지 모드 기반의 인터 예측 방법을 도시한 것이다.
현재 코딩 유닛의 모션 정보(모션 벡터, 참조 픽쳐 인덱스 등)를 부호화 하지 않고, 주변 블록의 모션 정보로부터 유도할 수 있다. 주변 블록 중 어느 하나의 모션 정보를 현재 코딩 유닛의 모션 정보로 설정할 수 있으며, 이를 머지 모드(merge mode)라고 정의한다.
머지 모드에 사용되는 주변 블록은 도 11의 머지 후보 인덱스 0 내지 4 와 같이 현재 코딩 유닛과 인접한 블록 (현재 코딩 유닛의 경계와 맞닿은 블록)일 수도 있고, 도 11의 머지 후보 인덱스 5 내지 26과 같이 인접하지 않은 블록일 수도 있다. 또는, 도 12의 머지 후보 인덱스 5 내지 34와 같이 인접하지 않은 블록일 수도 있다.
머지 후보가 현재 블록과의 거리가 기정의된 임계값을 넘어가면 가용(available)하지 않은 것으로 설정할 수 있다.
예를 들어, 기 정의된 임계값을 CTU의 높이(ctu_height) 또는 ctu_height+N으로 설정할 수도 있으며, 이를 머지 후보 가용 임계값이라고 정의한다. 즉 머지 후보의 y축 좌표(yi)와 현재 코딩 유닛의 좌상단 샘플(이하, 현재 코딩 유닛 기준 샘플)의 y축 좌표(y0) 간의 차분 즉, (yi - y0)이 머지 후보 가용 임계값보다 큰 경우에는 머지 후보를 가용(Available)하지 않은 것으로 설정할 수 있다. 여기서 N은 기-정의된 오프셋 값이다. 구체적으로 예를 들어, N을 16으로 설정할 수도 있고, ctu_height으로 설정할 수도 있다.
도 13은 본 발명이 적용되는 일실시예로서, 인트라 예측 과정을 도시한 것이다.
도 13을 참조하면, 현재 블록의 인트라 레퍼런스 라인을 결정할 수 있다(S1300).
인트라 레퍼런스 라인은, 현재 블록의 인트라 예측을 위해 참조되는 주변 영역을 의미할 수 있다. 상기 주변 영역은, 현재 블록에 인접한 화소 라인 또는 현재 블록에 인접하지 않은 화소 라인 중 적어도 하나를 포함할 수 있다. 현재 블록의 주변에 위치한 복수의 화소 라인 중 어느 하나를 선택하고, 이를 인트라 레퍼런스 라인으로 이용할 수 있다. 이에 대해서는 도 14를 참조하여 살펴보기로 한다.
도 13을 참조하면, 현재 블록의 인트라 예측 모드를 결정할 수 있다(S1310).
현재 블록의 인트라 예측 모드는, 부호화/복호화 장치에 기-정의된 p개의 인트라 예측 모드 중 어느 하나로 결정될 수 있다. p는 33, 67 또는 그 이상일 수 있다. 상기 기-정의된 인트라 예측 모드는, 후보 그룹과 넌-후보 그룹으로 구분될 수 있다. 부호화/복호화 장치는, 후보 그룹과 넌-후보 그룹 중 어느 하나를 선택하고, 선택된 그룹으로부터 현재 블록의 인트라 예측 모드를 유도할 수 있다. 상기 선택은, 현재 블록의 인트라 예측 모드가 후보 그룹으로부터 유도되는지 여부를 나타내는 플래그(이하, 제1 플래그)에 기초하여 수행될 수 있다. 예를 들어, 제1 플래그가 제1 값인 경우, 후보 그룹이 이용되고, 그렇지 않은 경우, 넌-후보 그룹이 이용될 수 있다.
구체적으로, 제1 플래그가 제1 값인 경우, 현재 블록의 인트라 예측 모드는, 적어도 하나의 MPM 후보를 포함한 후보 그룹(candModeList) 및 MPM 인덱스를 기반으로 결정될 수 있다. MPM 인덱스는, 후보 그룹에 속한 MPM 후보 중 어느 하나를 특정하는 정보일 수 있다. MPM 인덱스는, 후보 그룹에 복수의 MPM 후보가 속한 경우에 한하여 시그날링될 수 있다.
반면, 제1 플래그가 제2 값인 경우(즉, 후보 그룹에 현재 블록의 인트라 예측 모드와 동일한 MPM 후보가 존재하지 않는 경우), 현재 블록의 인트라 예측 모드는, 시그날링되는 잔여 모드 정보에 기초하여 결정될 수 있다. 상기 잔여 모드 정보는, 부호화/복호화 장치에 MPM 후보를 제외한 나머지 모드 중 어느 하나를 특정할 수 있다.
이하, 후보 그룹을 결정하는 방법에 대해서 살펴보기로 한다.
현재 코딩 유닛의 인트라 예측 모드 부호화 효율을 높이기 위해 주변 코딩 유닛의 인트라 예측 모드를 이용할 수도 있다.
주변 블록의 인트라 예측 모드와 현재 블록의 인트라 예측 모드가 서로 같거나 비슷한 모드를 가질 확률이 높다. 주변 블록의 인트라 예측 모드 중 어느 하나와 같은지를 부호화하는 MPM(Most probable mode) 모드를 이용하여 현재 코딩 유닛의 인트라 예측 모드를 부호화할 수 있다. MPM 모드에서는 인트라 예측 모드를 직접 부호화하지 않고, MPM 인덱스(MPM index)를 부호화하여 압축 효율을 높일 수 있다. 주변 블록은, 현재 블록의 좌측 주변 블록(주변 블록 A) 또는 상단 주변 블록(주변 블록 B) 중 적어도 하나를 포함할 수 있다.
현재 코딩 유닛의 인트라 예측 모드가 MPM 모드 중 어느 하나가 아닌 경우에는 현재 코딩 유닛의 인트라 예측 모드 값을 부호화 할 수 있다.
후보 그룹은, 기-정의된 N개의 MPM 후보(MPM candidates)로 구성될 수 있다. N은, 1, 2, 3, 4, 5, 6 또는 그 이상의 정수일 수 있다. 이하, 6개의 MPM 후보를 구성하는 방법에 대해서 살펴보기로 한다.
[CASE 1] 후보 그룹은, 주변 블록 A의 인트라 예측 모드(candIntraPredModeA), candIntraPredModeA와 같은 값을 갖지 않는 비방향성 인트라 예측 모드 (DC 또는 PLANAR 모드), 수직 모드(INTRA_ANGULAR50), 수평 모드(INTRA_ANGULAR18) 또는 대각 모드(INTRA_ANGULAR2, INTRA_ANGULAR34 또는 INTRA_ANGULAR66 중 적어도 하나) 중 적어도 하나로 구성될 수 있다.
구체적으로 예를 들어, candModeList[0]는 candIntraPredModeA로 설정할 수 있고, candModeList[1]는 candIntraPredModeA가 INTRA_PLANAR이면 INTRA_DC값으로 설정하고, candIntraPredModeA가 INTRA_PLANAR가 아니면 INTRA_PLANAR 값으로 설정할 수 있으며, candModeList[ 2 ]는 INTRA_ANGULAR50, candModeList[ 3 ]는 INTRA_ANGULAR18, candModeList[ 4 ]는 INTRA_ANGULAR34, candModeList[ 5 ]는 INTRA_ANGULAR2로 각각 설정될 수 있다.
[CASE 2] candIntraPredA와 주변 블록 B의 인트라 예측 모드(candIntraPredB)가 같고, candIntraPredA 및 candIntraPredB가 2보다 크거나 같은 경우에는, 상기 후보 그룹은, candIntraPredA, INTRA_PLANAR, INTRA_DC, candIntraPredA-1, candIntraPredA+1 또는 candIntraPredA와 수직인 모드 중 적어도 하나를 포함할 수 있다.
구체적으로 예를 들어, candModeList[0]은 candIntraPredModeA로 설정할 수 있고, candModeList[1]은 INTRA_PLANAR로 설정하고, candModeList[ 2 ]는 INTRA_DC, candModeList[ 3 ]는 candIntraPredModeA - 1 (즉, 2 + ( ( candIntraPredModeA + 62 ) % 65 )), candModeList[ 4 ]는 candIntraPredModeA + 1 (즉, 2 + ( ( candIntraPredModeA - 1 ) % 65 ) ), candModeList[ 5 ]는 candIntraPredA와 수직인 모드 (즉, candModeList[ 5 ] = 2 + ( ( candIntraPredModeA + 94) % 65 ) )로 각각 설정될 수 있다.
[CASE 3] candIntraPredModeA와 candIntraPredModeB가 동일하지 않은 경우, candModeList[ 0 ]와 candModeList[ 1 ]은, candIntraPredModeA와 candIntraPredModeB로 각각 설정될 수 있다. candIntraPredModeA와 candIntraPredModeB 둘다 방향성 모드인 경우, candModeList[ 2 ] 또는 candModeList[ 3 ] 중 적어도 하나는, 비방향성 모드로 설정될 수 있다. 예를 들어, candModeList[ 2 ]와 candModeList[ 3 ]는, PLANAR 모드와 DC 모드로 각각 설정될 수 있다. 한편, candModeList[ 4 ] 또는 candModeList[ 5 ] 중 적어도 하나는 candIntraPredModeA와 candIntraPredModeB 간의 크기 비교에 기초하여 결정될 수 있다. 예를 들어, candIntraPredModeA가 candIntraPredModeB보다 큰 경우, candModeList[ 4 ]는 최대값인 candIntraPredModeA에서 1을 뺀 모드로 유도되고, candModeList[ 5 ]는 최대값인 candIntraPredModeA에 1을 더한 모드로 유도될 수 있다. 다만, candIntraPredModeA와 candIntraPredModeB의 차이값이 소정의 문턱값보다 크거나 같은 경우, candModeList[ 4 ]는 최대값인 candIntraPredModeA에서 1 또는 2를 뺀 모드로 유도되고, candModeList[ 5 ]는 최대값인 candIntraPredModeA에 1 또는 2를 더한 모드로 유도될 수 있다. 상기 문턱값은 1 내지 64 범위에 속한 임의의 자연수일 수 있다. 예를 들어, 상기 문턱값은, 1 또는 2로 설정되거나, 62, 63 또는 64로 설정될 수 있다.
[CASE 4] candIntraPredModeA와 candIntraPredModeB 중 어느 하나는 2보다 크거나 같고, 다른 하나는 2보다 작은 경우에 candIntraModeMax, INTRA_PLANAR/INTRA_DC, candIntraModeMax-1, candIntraModeMax+1, candIntraModeMax-2, candIntraModeMax+2 또는 candIntraModeMax와 수직인 모드 중 적어도 하나로 MPM 후보를 설정할 수도 있다. 여기서, candIntraModeMax 값은 candIntraPredModeA와 candIntraPredModeB 중 큰 값을 나타낸다. candIntraModeMin 값은 candIntraPredModeA와 candIntraPredModeB 중 작은 값으로 설정할 수 있다.
구체적으로 예를 들어, candModeList[2]는 candIntraPredModeMin이 INTRA_PLNAR이면 INTRA_DC로 설정할 수 있고, candIntraPredModeMin이 INTRA_DC이면 INTRA_PLANAR로 설정할 수 있다. cacandModeList[ 3 ]는 candIntraPredModeMax - 1 (즉, 2 + ( ( candIntraPredModeMax + 62 ) % 65 )),candModeList[ 4 ]는 candIntraPredModeMax + 1 (즉, 2 + ( ( candIntraPredModeMax - 1 ) % 65 ) ), candModeList[ 5 ]는 candIntraPredMax와 수직인 모드 (즉, candModeList[ 5 ] = 2 + ( ( candIntraPredModeMax + 94) % 65 ) )로 설정할 수 있다.
다만 전술한 실시예에서, MPM 후보에 할당된 인덱스는 일예에 불과하며, 후보 그룹 내에서의 위치를 한정하는 것은 아니다. 따라서, 후보 그룹 내에서 MPM 후보의 배열은, 전술한 실시예와 다른 우선 순서로 수행될 수 있음은 물론이다.
전술한 후보 그룹은, m개의 후보 그룹으로 구분될 수도 있다. m은 2, 3, 4 또는 그 이상의 정수일 수 있다. 이하, 설명의 편의를 위해, 후보 그룹은 제1 후보 그룹과 제2 후보 그룹으로 구분됨을 가정한다.
부호화/복호화 장치는, 제1 후보 그룹 또는 제2 후보 그룹 중 어느 하나를 선택할 수 있다. 상기 선택은, 현재 블록의 인트라 예측 모드가 제1 후보 그룹에 속하는지 아니면 제2 후보 그룹에 속하는지를 특정하는 플래그(이하, 제2 플래그)를 기반으로 수행될 수 있다. 예를 들어, 제2 플래그가 제1 값인 경우, 현재 블록의 인트라 예측 모드는 제1 후보 그룹으로부터 유도되고, 그렇지 않은 경우, 현재 블록의 인트라 예측 모드는 제2 후보 그룹으로부터 유도될 수 있다.
한편, 상기 제2 플래그는, 전술한 제1 플래그가 제1 값인 경우에 한하여 시그날링될 수 있다. 또한, 상기 제2 플래그는, 현재 블록의 인트라 레퍼런스 라인이 인접 인트라 레퍼런스 라인으로 결정된 경우에 한하여 시그날링될 수 있다. 현재 블록이 인접하지 않은 화소 라인을 참조하는 경우, 제1 후보 그룹의 MPM 후보가 사용되지 않도록 제한될 수 있다. 또는, 역으로, 제2 플래그에 따라, 현재 블록의 인트라 예측 모드가 제1 후보 그룹으로부터 유도되는 경우, 현재 블록이 인접하지 않은 화소 라인을 참조하지 않도록 제한될 수도 있다. 제1 플래그의 시그날링 방법에 대해서는 도 15 내지 도 17을 참조하여 살펴보기로 한다.
여기서, 제1 후보 그룹은, 기-정의된 디폴트 모드로 구성될 수 있다. 상기 디폴트 모드는, 방향성 모드 또는 비방향성 모드 중 적어도 하나일 수 있다. 예를 들어, 방향성 모드는, 수직 모드, 수평 모드 또는 대각선 모드 중 적어도 하나를 포함할 수 있다. 비방향성 모드는, Planar 모드 또는 DC 모드 중 적어도 하나를 포함할 수 있다.
제1 후보 그룹은 r개의 비방향성 모드 또는 방향성 모드만으로 구성될 수 있다. r은 1, 2, 3, 4, 5 또는 그 이상의 정수일 수 있다. r은 부호화/복호화 장치에 기-약속된 고정된 값일 수도 있고, 소정의 부호화 파라미터에 기초하여 가변적으로 결정될 수도 있다. 제1 후보 그룹에 복수의 디폴트 모드가 포함된 경우, 복수의 디폴트 모드 중 어느 하나를 특정하는 인덱스가 시그날링될 수 있다. 시그날링된 인덱스에 대응하는 디폴트 모드는, 현재 블록의 인트라 예측 모드로 설정될 수 있다. 반면, 제1 후보 그룹이 하나의 디폴트 모드로 구성된 경우, 상기 인덱스는 시그날링되지 않으며, 현재 블록의 인트라 예측 모드는 제1 후보 그룹의 디폴트 모드로 설정될 수 있다.
한편, 제2 후보 그룹은, 복수의 MPM 후보를 포함할 수 있다. 다만, 제2 후보 그룹은 제1 후보 그룹에 속한 디폴트 모드를 포함하지 않도록 제한될 수 있다. 상기 MPM 후보의 개수는, 2개, 3개, 4개, 5개, 6개 또는 그 이상일 수 있다. MPM 후보의 개수는, 부호화/복호화 장치에 기-약속된 고정된 값이거나, 부호화 파라미터에 기초하여 가변적으로 결정될 수 있다. MPM 후보는, 현재 블록에 인접한 주변 블록의 인트라 예측 모드에 기초하여 유도될 수 있다. 주변 블록은 현재 블록의 좌측, 상단, 좌상단, 좌하단 또는 우상단 중 적어도 하나에 인접한 블록일 수 있다.
구체적으로, 좌측 블록의 인트라 예측 모드(candIntraPredModeA)와 상단 블록의 인트라 예측 모드(candIntraPredModeB) 간의 동일 여부, candIntraPredModeA와 candIntraPredModeB가 비방향성 모드인지 여부를 고려하여 MPM 후보가 결정될 수 있다.
[CASE 1] 예를 들어, candIntraPredModeA와 candIntraPredModeB이 동일하고, candIntraPredModeA가 비방향성 모드가 아닌 경우, 현재 블록의 MPM 후보는 candIntraPredModeA, (candIntraPredModeA-n), (candIntraPredModeA+n) 또는 비방향성 모드 중 적어도 하나를 포함할 수 있다. 여기서, n은 1, 2, 또는 그 이상의 정수일 수 있다. 상기 비방향성 모드는, Planar 모드 또는 DC 모드 중 적어도 하나를 포함할 수 있다. 일예로, 현재 블록의 MPM 후보는 다음 표 1과 같이 결정될 수 있다. 표 1의 index는 MPM 후보의 위치 또는 우선순위를 특정하나, 이에 한정되지 아니한다.
index MPM 후보
0 candIntraPredModeA
1 2 + ( ( candIntraPredModeA + 61 ) % 64 )
2 2 + ( ( candIntraPredModeA - 1 ) % 64 )
3 2 + ( ( candIntraPredModeA + 60 ) % 64 )
4 2 + ( ( candIntraPredModeA % 64 )
[CASE 2] 또는, candIntraPredModeA와 candIntraPredModeB가 동일하지 않고, candIntraPredModeA와 candIntraPredModeB 둘다 비방향성 모드가 아닌 경우, 현재 블록의 MPM 후보는 candIntraPredModeA, candIntraPredModeB, (maxAB-n), (maxAB+n), (minAB-n), (minAB+n) 또는 비방향성 모드 중 적어도 하나를 포함할 수 있다. 여기서, maxAB와 minAB은 candIntraPredModeA와 candIntraPredModeB 중 최대값과 최소값을 각각 의미하고, n은 1, 2, 또는 그 이상의 정수일 수 있다. 상기 비방향성 모드는, Planar 모드 또는 DC 모드 중 적어도 하나를 포함할 수 있다. 일예로, 현재 블록의 MPM 후보는 다음 표 2와 같이 결정될 수 있다. 표 2의 index는 MPM 후보의 위치 또는 우선순위를 특정하나, 이에 한정되지 아니한다.한편, candIntraPredModeA와 candIntraPredModeB의 차이값에 기초하여, MPM 후보가 상이하게 결정될 수도 있다. 예를 들어, candIntraPredModeA와 candIntraPredModeB의 차이값이 소정의 문턱범위에 속하는 경우, 표 2의 MPM 후보 1이 적용되고, 그렇지 않은 경우, MPM 후보 2가 적용될 수 있다. 여기서, 문턱범위는, 62보다 크거나 같은 제1 범위, 63보다 크거나 같은 제2 범위 또는 64보다 크거나 같은 제3 범위 중 어느 하나일 수 있다.
Index MPM 후보 1 MPM 후보 2
0 candIntraPredModeA candIntraPredModeA
1 candIntraPredModeB candIntraPredModeB
2 2 + ( ( minAB - 1 ) % 64 ) 2 + ( ( minAB + 61 ) % 64 )
3 2 + ( ( maxAB + 61 ) % 64 ) 2 + ( ( minAB - 1 ) % 64 )
4 2 + ( minAB % 64 ) 2 + ( ( maxAB + 61 ) % 64 )
다만, candIntraPredModeA와 candIntraPredModeB의 차이값이 1 또는 2인 경우, 표 2의 MPM 후보 2 대신에, 다음 표 3과 같이 MPM 후보가 결정될 수 있다. 예를 들어, 상기 차이값이 1인 경우, MPM 후보 3이 적용되고, 상기 차이값이 2인 경우, MPM 후보 4가 적용될 수 있다. 또는, 역으로, 상기 차이값이 1인 경우, MPM 후보 4가 적용되고, 상기 차이값이 2인 경우, MPM 후보 3이 적용될 수도 있다.
Index MPM 후보 3 MPM 후보 4
0 candIntraPredModeA candIntraPredModeA
1 candIntraPredModeB candIntraPredModeB
2 2 + ( ( minAB + 61 ) % 64 ) 2 + ( ( minAB - 1 ) % 64 )
3 2 + ( ( maxAB - 1 ) % 64 ) 2 + ( ( minAB + 61 ) % 64 )
4 2 + ( (minAB + 60 ) % 64 ) 2 + ( ( maxAB - 1 ) % 64 )
전술한 표 2와 표 3에서, MPM 후보 중 어느 하나는 minAB에 기초하여 유도되고, 다른 하나는 maxAB에 기초하여 유도된다. 다만, 이에 한정되지 아니하며, MPM 후보는 minAB와 관계없이 maxAB에 기초하여 유도될 수 있고, 반대로 maxAB에 관계없이 minAB에 기초하여 유도될 수 있다.
[CASE 3] candIntraPredModeA와 candIntraPredModeB가 동일하지 않고, candIntraPredModeA와 candIntraPredModeB 중 어느 하나만이 비방향성 모드인 경우, 현재 블록의 MPM 후보는 maxAB, (maxAB-n), (maxAB+n) 또는 비방향성 모드 중 적어도 하나를 포함할 수 있다. 여기서, maxAB은 candIntraPredModeA와 candIntraPredModeB 중 최대값을 의미하고, n은 1, 2, 또는 그 이상의 정수일 수 있다. 상기 비방향성 모드는, Planar 모드 또는 DC 모드 중 적어도 하나를 포함할 수 있다. 일예로, 현재 블록의 MPM 후보는 다음 표 4와 같이 결정될 수 있다. 표 4의 index는 MPM 후보의 위치 또는 우선순위를 특정하나, 이에 한정되지 아니한다.
Index MPM 후보
0 maxAB
1 2 + ( ( maxAB + 61 ) % 64 )
2 2 + ( ( maxAB - 1 ) % 64 )
3 2 + ( ( maxAB + 60 ) % 64 )
4 2 + ( maxAB % 64 )
[CASE 4] candIntraPredModeA와 candIntraPredModeB이 동일하지 않고, candIntraPredModeA와 candIntraPredModeB 둘다 비방향성 모드인 경우, 현재 블록의 MPM 후보는 비방향성 모드, 수직 모드, 수평 모드, (수직 모드-m), (수직 모드+m), (수평 모드-m) 또는 (수평 모드+m) 중 적어도 하나를 포함할 수 있다. 여기서, m은 1, 2, 3, 4 또는 그 이상의 정수일 수 있다. 상기 비방향성 모드는, Planar 모드 또는 DC 모드 중 적어도 하나를 포함할 수 있다. 일예로, 현재 블록의 MPM 후보는 다음 표 5와 같이 결정될 수 있다. 표 5의 index는 MPM 후보의 위치 또는 우선순위를 특정하나, 이에 한정되지 아니한다. 예를 들어, 수평 모드에 index 1이 할당되거나, 가장 큰 index가 할당될 수 있다. 또한, MPM 후보는, 대각선 모드(e.g., 모드 2, 모드 34, 모드 66), (대각선 모드-m) 또는 (대각선 모드+m) 중 적어도 하나를 포함할 수도 있다.
Index MPM 후보
0 INTRA_DC
1 수직 모드
2 수평 모드
3 (수직 모드-4)
4 (수직 모드+4)
전술한 과정을 통해 복호화된 인트라 예측 모드(IntraPredMode)는 소정의 오프셋에 기반하여 변경될 수 있다. 상기 오프셋의 적용은, 블록의 속성 즉, 크기, 형태, 분할 정보, 분할 뎁스, 인트라 예측 모드의 값 또는 성분 타입 중 적어도 하나에 기초하여 선택적으로 수행될 수 있다. 여기서, 블록은 상기 현재 블록 및/또는 현재 블록의 주변 블록을 의미할 수 있다.
상기 분할 정보는, 현재 블록이 복수의 서브 블록으로 분할되는지 여부를 나타내는 제1 정보, 분할 방향(e.g., 수평 또는 수직)을 나타내는 제2 정보, 또는 분할된 서브 블록의 개수에 관한 제3 정보 중 적어도 하나를 포함할 수 있다. 상기 분할 정보는 부호화 장치에서 부호화되어 시그날링될 수 있다. 또는, 상기 분할 정보의 일부는, 전술한 블록의 속성에 기초하여 복호화 장치에서 가변적으로 결정될 수도 있고, 부호화/복호화 장치에 기-정의된 고정된 값으로 설정될 수도 있다.
예를 들어, 상기 제1 정보가 제1 값인 경우, 현재 블록은 복수의 서브 블록으로 분할되고, 그렇지 않은 경우, 현재 블록은 복수의 서브 블록으로 분할되지 않을 수 있다(NO_SPLIT). 현재 블록이 복수의 서브 블록으로 분할되는 경우, 상기 제2 정보에 기초하여 현재 블록은 수평 분할(HOR_SPLIT) 또는 수직 분할(VER_SPLIT)될 수 있다. 이때, 현재 블록은 k개의 서브 블록으로 분할될 수 있다. 여기서, k는 2,3,4 또는 그 이상의 정수일 수 있다. 또는, k는 1, 2, 4 등과 같이 2의 지수승으로 제한될 수 있다. 또는, 현재 블록의 너비 또는 높이 중 적어도 하나가 4인 블록(예를 들어, 4x8, 8x4)의 경우, 상기 k는 2로 설정되고, 그렇지 않은 경우, 상기 k는 4, 8, 또는 16으로 설정될 수 있다. 현재 블록이 비-분할인 경우(NO_SPLIT), 상기 k는 1로 설정될 수 있다.
상기 현재 블록은, 서로 동일한 너비와 높이를 가진 서브 블록으로 분할될 수도 있고, 서로 상이한 너비와 높이를 가진 서브 블록으로 분할될 수도 있다. 현재 블록은, 전술한 블록의 속성에 관계없이, 부호화/복호화 장치에 기-약속된 NxM 블록 단위(예를 들어, 2x2, 2x4, 4x4, 8x4, 8x8 등)로 분할될 수도 있다.
상기 오프셋은, 현재 블록의 크기가 소정의 문턱값(T1)보다 작거나 같은 경우에만 적용될 수 있다. 여기서, 문턱값(T1)은 오프셋이 적용되는 최대 블록 크기를 의미할 수 있다. 또는, 현재 블록의 크기가 소정의 문턱값(T2)보다 크거나 같은 경우에만 적용될 수도 있다. 이때, 문턱값(T2)은 오프셋이 적용되는 최소 블록 크기를 의미할 수 있다. 상기 문턱값은 비트스트림을 통해 시그날링될 수도 있다. 또는, 전술한 블록의 속성 중 적어도 하나에 기초하여 복호화 장치에서 가변적으로 결정될 수도 있고, 부호화/복호화 장치에 기-약속된 고정된 값일 수도 있다.
또는, 상기 오프셋은, 현재 블록의 형태가 non-square인 경우에만 적용될 수 있다. 일예로, 다음 조건을 만족하는 경우, 현재 블록의 IntraPredMode에 소정의 오프셋(예를 들어, 65)이을 가산될 수 있다.
- nW is greater than nH
- IntraPredMode is greater than or equal to 2
- IntraPredMode is less than (whRatio>1) ? (8+2*whRatio) : 8
여기서, nW와 nH는 현재 블록의 너비와 높이를 각각 의미하고, whRatio는 Abs(Log2(nW/nH))로 설정될 수 있다.
또는, 다음 조건을 만족하는 경우, 현재 블록의 IntraPredMode에 소정의 오프셋(예를 들어, 67)을 감산할 수 있다.
- nH is greater than nW
- IntraPredMode is less than or equal to 66
- IntraPredMode is greater than (whRatio>1) ? (60-2*whRatio) : 60
전술한 바와 같이, 현재 블록의 속성을 고려하여, 현재 블록의 인트라 예측 모드(IntraPredMode)에 오프셋을 가산/감산하여 최종 인트라 예측 모드를 결정할 수 있다. 다만, 이에 한정되지 아니하며, 오프셋의 적용은, 현재 블록에 속한 서브 블록의 속성을 고려하여 동일/유사하게 수행될 수도 있다. 인트라 예측 모드의 변경에 대해서는 도 18 내지 도 21을 참조하여 살펴보기로 한다.
도 13을 참조하면, 상기 결정된 인트라 레퍼런스 라인과 인트라 예측 모드를 기반으로, 현재 블록의 인트라 예측을 수행할 수 있다(S1320).
구체적으로, 인트라 예측은, 현재 블록 단위로 수행될 수도 있고, 현재 블록을 구성하는 소정의 서브 블록 단위로 수행될 수도 있다. 서브 블록 단위의 인트라 예측에 대해서는 도 22를 참조하여 살펴보기로 한다.
또한, 상기 인트라 예측에 따른 예측값을 보정할 수 있다. 보정 과정은, 소정의 참조 화소와 가중치를 기반으로 수행되며, 이에 대해서는 도 23 및 도 24를 참조하여 살펴보기로 한다.
도 14는 본 발명이 적용되는 일실시예로서, 현재 블록의 인트라 레퍼런스 라인을 결정하는 방법을 도시한 것이다.
도 14를 참조하면, 현재 블록의 인트라 예측을 위해 복수 개의 인트라 레퍼런스 라인 중 적어도 하나가 이용될 수 있다.
일 예로, 인접한 인트라 레퍼런스 라인과 비인접 인트라 레퍼런스 라인으로 구성된 복수개의 인트라 레퍼런스 라인 중 어느 하나를 선택해서 인트라 예측을 수행할 수 있으며, 이를 멀티 라인 인트라 예측 방법이라고 정의한다. 비인접 인트라 레퍼런스 라인은 제1 비인접 인트라 레퍼런스 라인(비인접 레퍼런스 라인 인덱스 1), 제2 비인접 인트라 레퍼런스 라인(비인접 레퍼런스 라인 인덱스 2) 또는 제3 비인접 인트라 레퍼런스 라인(비인접 레퍼런스 라인 인덱스 3) 중 적어도 하나를 포함할 수 있다. 비인접 인트라 레퍼런스 라인 중 일부만 사용할 수도 있다. 일 예로, 제1 비인접 인트라 레퍼런스 라인 과 제2 비인접 인트라 레퍼런스 라인만 사용할 수도 있고, 제1 비인접 인트라 레퍼런스 라인과 제3 비인접 인트라 레퍼런스 라인만 사용할 수도 있다.
인트라 예측에 사용된 레퍼런스 라인을 특정하는 신택스인 인트라 레퍼런스 라인 인덱스(intra_luma_ref_idx)를 코딩 유닛 단위로 시그날링할 수 있다.
구체적으로 인접 인트라 레퍼런스 라인, 제1 비인접 인트라 레퍼런스 라인, 제3 비인접 인트라 레퍼런스 라인을 사용하는 경우에 다음 표 6과 같이 intra_luma_ref_idx를 정의할 수도 있다.
Intra_luma_ref_idx[x0][y0] 인트라 예측에 사용된 레퍼런스 라인
0 인접 인트라 레퍼런스 라인
1 제1 비인접 레퍼런스 라인
2 제3 비인접 레퍼런스 라인
또는, 현재 블록의 크기, 형태 또는 인트라 예측 모드에 따라, 비인접 레퍼런스 라인의 위치가 특정될 수도 있다. 예컨대, 라인 인덱스가 0인 것은 인접 인트라 레퍼런스 라인을 나타내고, 라인 인덱스가 1인 것은 제1 비인접 인트라 레퍼런스 라인을 나타낼 수 있다. 한편, 현재 블록의 크기, 형태 또는 인트라 예측 모드에 따라, 라인 인덱스가 2는 제2 비인접 인트라 레퍼런스 라인 또는 제3 비인접 인트라 레퍼런스 라인을 나타낼 수 있다.인트라 모드에 따라서 사용 가능한 비인접 레퍼런스 라인을 결정할 수도 있다. 예를 들어, 대각 모드를 사용하는 경우에는 인접 레퍼런스 라인, 제1 비인접 레퍼런스 라인 또는 제3 비인접 레퍼런스 라인 중 적어도 하나만 사용할 수도 있고, 수직 또는 수평 모드에서는 인접 레퍼런스 라인, 제1 비인접 레퍼런스 라인 또는 제2 비인접 레퍼런스 라인 중 적어도 하나만을 사용하도록 설정할 수도 있다.
비인접 인트라 레퍼런스 라인을 사용하는 경우에는 비방향성 모드를 사용하지 않도록 설정할 수도 있다. 즉, 비인접 인트라 레퍼런스 라인을 사용하는 경우에는 DC 모드 또는 플래너 모드 (Planar mode)를 사용하지 않도록 제한할 수도 있다. 반대로, 현재 블록이 비방향성 모드를 사용하는 경우, 현재 블록이 비인접 인트라 레퍼런스 라인을 사용하지 않도록 설정할 수도 있다. 예를 들어, 현재 블록이 비방향성 모드인 경우, 상기 라인 인덱스는 시그날링되지 않고, 묵시적으로 0으로 설정될 수 있다.
도 15 내지 도 17은 본 발명이 적용되는 일실시예로서, 제2 플래그의 시그날링 방법을 도시한 것이다.
본 발명에 따른 제2 플래그는, 현재 블록의 인트라 예측 모드가 디폴트 모드로 구성된 제1 후보 그룹으로부터 유도되는지 여부를 나타낼 수 있다. 디폴트 모드는 전술한 바와 같으며, 여기서 자세한 설명은 생략하기로 한다. 설명의 편의를 위해, 본 실시예에서는 상기 디폴트 모드가 비방향성 모드임을 가정하여 설명한다. 도 15를 참조하면, 인트라 예측 모드가 비방향성 모드(DC 또는 Planar 모드) 인지를 나타내는 제2 플래그(isNonDir_flag)를 비트스트림을 통해 시그날링할 수 있다. isNonDir_flag 값이 1 이면, 인트라 예측 모드가 비방향성 모드임을 나타내며, 비인접 인트라 레퍼런스 라인을 인트라 레퍼런스 라인으로 사용하지 않도록 설정할 수 있다. 비방향성 모드 중 DC 모드인지 Planar 모드인지를 나타내는 플래그(NonDirIdx)를 비트스트림을 통해 시그날링할 수 있다. isNonDir_flag 값이 1인 경우에 한정하여 NonDirIdx를 시그날링할 수 있다.
도 15와 같이 isNonDir_flag 값이 0인 경우에 한하여 인트라 레퍼런스 라인을 특정하는 intra_luma_ref_idx를 시그날링할 수 있다. isNonDir_flag이 1이면 인접 인트라 레퍼런스 라인만 인트라 예측에 이용되고, 비인접 인트라 레퍼런스 라인은 이용되지 않는다.
도 16을 참조하면, 코딩 블록의 인트라 예측 모드가 DC 또는 Planar mode인 경우(즉, isNorDir_flag 값이 1 인 경우), 서브 파티션 기반의 인트라 예측 방법이 사용되는지를 나타내는 플래그(intra_subpartitions_mode_flag)를 비트스트림을 통해 시그날링할 수 있고, intra_subpartitions_mode_flag 값이 1인 경우에 수직 방향 파티션 또는 수평 방향 파티션으로 나누는지를 나타내는 플래그(intra_subpartitions_split_flag)를 시그날링할 수 있다. 구체적으로, 다음 표 7과 같은 신택스 테이블을 사용하여 인트라 예측 모드를 파싱할 수 있다.
coding_unit( x0, y0, cbWidth, cbHeight, treeType ) { Descriptor
if( tile_group_type != I ) {
if( treeType != DUAL_TREE_CHROMA )
cu_skip_flag[ x0 ][ y0 ] ae(v)
if( cu_skip_flag[ x0 ][ y0 ] = = 0 )
pred_mode_flag ae(v)
}
if( CuPredMode[ x0 ][ y0 ] = = MODE_INTRA ) {
if( sps_pcm_enabled_flag &&
cbWidth >= MinIpcmCbSizeY && cbWidth <= MaxIpcmCbSizeY &&
cbHeight >= MinIpcmCbSizeY && cbHeight <= MaxIpcmCbSizeY )
... ae(v)
} else {
if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_LUMA ) {
isNonDir_flag ae(v)
if(isNonDir_flag){
NonDirIdx ae(v)
}
if ( ( cbWidth <= MaxTbSizeY | | cbHeight <= MaxTbSizeY ) &&
( cbWidth * cbHeight > MinTbSizeY * MinTbSizeY ))
intra_subpartitions_mode_flag[ x0 ][ y0 ] ae(v)
if( intra_subpartitions_mode_flag[ x0 ][ y0 ] = = 1 &&
cbWidth <= MaxTbSizeY && cbHeight <= MaxTbSizeY )
intra_subpartitions_split_flag[ x0 ][ y0 ] ae(v)
}
if(!isNonDir_flag && ( y0 % CtbSizeY )  >  0 )
intra_luma_ref_idx[ x0 ][ y0 ] ae(v)
if (intra_luma_ref_idx[ x0 ][ y0 ] = = 0 &&
( cbWidth <= MaxTbSizeY | | cbHeight <= MaxTbSizeY ) &&
( cbWidth * cbHeight > MinTbSizeY * MinTbSizeY ))
intra_subpartitions_mode_flag[ x0 ][ y0 ] ae(v)
if( intra_subpartitions_mode_flag[ x0 ][ y0 ] = = 1 &&
cbWidth <= MaxTbSizeY && cbHeight <= MaxTbSizeY )
intra_subpartitions_split_flag[ x0 ][ y0 ] ae(v)
if( intra_luma_ref_idx[ x0 ][ y0 ] = = 0 &&
intra_subpartitions_mode_flag[ x0 ][ y0 ] = = 0 )
intra_luma_mpm_flag[ x0 ][ y0 ] ae(v)
if( intra_luma_mpm_flag[ x0 ][ y0 ] )
intra_luma_mpm_idx[ x0 ][ y0 ] ae(v)
else
intra_luma_mpm_remainder[ x0 ][ y0 ] ae(v)
}
if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_CHROMA )
intra_chroma_pred_mode[ x0 ][ y0 ] ae(v)
}
} else if( treeType != DUAL_TREE_CHROMA ) { /* MODE_INTER */
...
}
}
코딩 유닛의 인트라 예측 모드가 비방향성 예측 모드(예컨대, Planar 또는 DC 모드)인 경우, 서브 파티션 기반의 인트라 예측 방법이 사용되지 않도록 설정될 수 있다. 도 17을 참조하면, isNonDir_flag이 1인 경우, 부호화 단계에서 intra_subpartitions_mode_flag 및 intra_subpartitions_split_flag을 시그날링하지 않을 수 있다. 구체적으로, 다음 표 8 내지 표 9와 같은 신택스 테이블을 사용하여 인트라 예측 모드를 파싱할 수 있다.
coding_unit( x0, y0, cbWidth, cbHeight, treeType ) { Descriptor
if( tile_group_type != I ) {
if( treeType != DUAL_TREE_CHROMA )
cu_skip_flag[ x0 ][ y0 ] ae(v)
if( cu_skip_flag[ x0 ][ y0 ] = = 0 )
pred_mode_flag ae(v)
}
if( CuPredMode[ x0 ][ y0 ] = = MODE_INTRA ) {
if( sps_pcm_enabled_flag && cbWidth >= MinIpcmCbSizeY && cbWidth <= MaxIpcmCbSizeY && cbHeight >= MinIpcmCbSizeY && cbHeight <= MaxIpcmCbSizeY )
... ae(v)
} else {
if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_LUMA ) {
isNonDir_flag ae(v)
if(isNonDir_flag){
NonDirIdx ae(v)
}
if(!isNonDir_flag && ( y0 % CtbSizeY )  >  0 )
intra_luma_ref_idx[ x0 ][ y0 ] ae(v)
if (intra_luma_ref_idx[ x0 ][ y0 ] = = 0 &&
( cbWidth <= MaxTbSizeY | | cbHeight <= MaxTbSizeY ) &&
( cbWidth * cbHeight > MinTbSizeY * MinTbSizeY ))
intra_subpartitions_mode_flag[ x0 ][ y0 ] ae(v)
if( intra_subpartitions_mode_flag[ x0 ][ y0 ] = = 1 && cbWidth <= MaxTbSizeY && cbHeight <= MaxTbSizeY )
intra_subpartitions_split_flag[ x0 ][ y0 ] ae(v)
if( intra_luma_ref_idx[ x0 ][ y0 ] = = 0 &&
intra_subpartitions_mode_flag[ x0 ][ y0 ] = = 0 )
intra_luma_mpm_flag[ x0 ][ y0 ] ae(v)
if( intra_luma_mpm_flag[ x0 ][ y0 ] )
intra_luma_mpm_idx[ x0 ][ y0 ] ae(v)
else
intra_luma_mpm_remainder[ x0 ][ y0 ] ae(v)
}
if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_CHROMA )
intra_chroma_pred_mode[ x0 ][ y0 ] ae(v)
}
} else if( treeType != DUAL_TREE_CHROMA ) { /* MODE_INTER */
...
}
}
coding_unit( x0, y0, cbWidth, cbHeight, treeType ) { Descriptor
if( tile_group_type != I ) {
if( treeType != DUAL_TREE_CHROMA )
cu_skip_flag[ x0 ][ y0 ] ae(v)
if( cu_skip_flag[ x0 ][ y0 ] = = 0 )
pred_mode_flag ae(v)
}
if( CuPredMode[ x0 ][ y0 ] = = MODE_INTRA ) {
if( sps_pcm_enabled_flag &&
cbWidth >= MinIpcmCbSizeY && cbWidth <= MaxIpcmCbSizeY &&
cbHeight >= MinIpcmCbSizeY && cbHeight <= MaxIpcmCbSizeY )
... ae(v)
} else {
if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_LUMA ) {
isNonDir_flag ae(v)
if(isNonDir_flag){
NonDirIdx ae(v)
}
if(!isNonDir_flag){
intra_luma_mpm_flag[ x0 ][ y0 ] ae(v)
if( intra_luma_mpm_flag[ x0 ][ y0 ] )
intra_luma_mpm_idx[ x0 ][ y0 ] ae(v)
if( ( y0 % CtbSizeY )  >  0 )
intra_luma_ref_idx[ x0 ][ y0 ] ae(v)
if (intra_luma_ref_idx[ x0 ][ y0 ] = = 0 &&
( cbWidth <= MaxTbSizeY | | cbHeight <= MaxTbSizeY ) &&
( cbWidth * cbHeight > MinTbSizeY * MinTbSizeY ))
intra_subpartitions_mode_flag[ x0 ][ y0 ] ae(v)
if( intra_subpartitions_mode_flag[ x0 ][ y0 ] = = 1 &&
cbWidth <= MaxTbSizeY && cbHeight <= MaxTbSizeY )
intra_subpartitions_split_flag[ x0 ][ y0 ] ae(v)
}
else
intra_luma_mpm_remainder[ x0 ][ y0 ] ae(v)
}
if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_CHROMA )
intra_chroma_pred_mode[ x0 ][ y0 ] ae(v)
}
} else if( treeType != DUAL_TREE_CHROMA ) { /* MODE_INTER */
...
}
}
또는, 현재 블록의 인트라 예측 모드가 기-정의된 디폴트 모드인지를 나타내는 제2 플래그(intra_default_mode_flag)를 비트스트림을 통해 시그날링할 수 있다. intra_default_mode_flag값이 1이면 인트라 예측 모드가 디폴트 모드임을 나타낸다. 디폴트 모드 중 어떤 모드가 사용되었는지를 지시하는 인덱스(intra_defualt_mode_idx)를 비트스트림을 통해 시그날링할 수 있다. intra_default_mode_flag 값이 1인 경우에 한하여 intra_defualt_mode_idx를 시그날링할 수 있다.
intra_default_mode_flag 값이 0인 경우에 한하여 인트라 레퍼런스 라인을 특정하는 intra_luma_ref_idx를 시그날링할 수 있다. 반대로, intra_luma_ref_idx가 0인 경우에 한하여, intra_default_mode_flag가 시그날링될 수 있다.
intra_default_mode_flag이 1이면 인접 인트라 레퍼런스 라인만이 인트라 예측에 이용되도록 한정할 수도 있다. 구체적으로, 다음 표 10과 같은 신택스 테이블을 사용하여 인트라 예측 모드를 파싱할 수 있다.
coding_unit( x0, y0, cbWidth, cbHeight, treeType ) { Descriptor
if( tile_group_type != I ) {
if( treeType != DUAL_TREE_CHROMA )
cu_skip_flag[ x0 ][ y0 ] ae(v)
if( cu_skip_flag[ x0 ][ y0 ] = = 0 )
pred_mode_flag ae(v)
}
if( CuPredMode[ x0 ][ y0 ] = = MODE_INTRA ) {
if( sps_pcm_enabled_flag &&
cbWidth >= MinIpcmCbSizeY && cbWidth <= MaxIpcmCbSizeY &&
cbHeight >= MinIpcmCbSizeY && cbHeight <= MaxIpcmCbSizeY )
... ae(v)
} else {
if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_LUMA ) {
intra_default_mode_flag ae(v)
if(intra_default_mode_flag){
intra_default_mode_idx ae(v)
}
if(!intra_default_mode_flag && ( y0 % CtbSizeY )  >  0 )
intra_luma_ref_idx[ x0 ][ y0 ] ae(v)
if (intra_luma_ref_idx[ x0 ][ y0 ] = = 0 &&
( cbWidth <= MaxTbSizeY | | cbHeight <= MaxTbSizeY ) &&
( cbWidth * cbHeight > MinTbSizeY * MinTbSizeY ))
intra_subpartitions_mode_flag[ x0 ][ y0 ] ae(v)
if( intra_subpartitions_mode_flag[ x0 ][ y0 ] = = 1 &&
cbWidth <= MaxTbSizeY && cbHeight <= MaxTbSizeY )
intra_subpartitions_split_flag[ x0 ][ y0 ] ae(v)
if( intra_luma_ref_idx[ x0 ][ y0 ] = = 0 &&
intra_subpartitions_mode_flag[ x0 ][ y0 ] = = 0 )
intra_luma_mpm_flag[ x0 ][ y0 ] ae(v)
if( intra_luma_mpm_flag[ x0 ][ y0 ] )
intra_luma_mpm_idx[ x0 ][ y0 ] ae(v)
else
intra_luma_mpm_remainder[ x0 ][ y0 ] ae(v)
}
if( treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_CHROMA )
intra_chroma_pred_mode[ x0 ][ y0 ] ae(v)
}
} else if( treeType != DUAL_TREE_CHROMA ) { /* MODE_INTER */
...
}
}
예를 들어, 디폴트 모드는 DC 모드, Planar 모드, 수평 모드 또는 수직 모드 중 적어도 하나로 설정할 수도 있다. 또 다른 예를 들어, 디폴트 모드는 DC 모드, Planar 모드, 수평 모드, 수직 모드 또는 대각 모드(e.g., INTRA_ANGULAR2, INTRA_ANGULAR66) 중 적어도 하나로 설정할 수도 있다.
또 다른 예를 들어, 디폴트 모드는, 수평 모드, 수직 모드, 대각 모드(e.g., INTRA_ANGULAR2, INTRA_ANGULAR66, INTRA_ANGUAR34) 중 적어도 하나로 설정할 수도 있다.
도 18 내지 도 21은 본 발명이 적용되는 일실시예로서, 유도된 인트라 예측 모드를 변경하는 방법을 도시한 것이다.
방향성 모드의 예측 각도는 도 18과 같이 45도 내지 -135도 사이로 설정될 수 있다. 비정방 형태의 코딩 유닛에서 인트라 예측을 수행하는 경우, 기-정의된 예측 각도 때문에 현재 샘플과 가까운 인트라 레퍼런스 샘플 대신 현재 샘플과 거리가 먼 인트라 레퍼런스 샘플을 이용하여 현재 샘플을 예측하는 단점이 발생할 수 있다.
예를 들어, 도 19의 왼쪽 그림과 같이 코딩 유닛의 너비가 코딩 유닛의 높이보다 큰 코딩 유닛(이하, 수평 방향 코딩 유닛)에서는 거리가 가까운 샘플 T 대신에 거리가 먼 L에서 인트라 예측을 수행할 수 있다. 또 다른 예를 들어, 도 19의 오른쪽 그림과 같이 코딩 유닛의 높이가 코딩 유닛의 너비보다 큰 코딩 유닛(이하, 수직 방향 코딩 유닛)에서는 거리가 가까운 샘플 L 대신에 거리가 먼 샘플 T로부터 인트라 예측을 수행할 수 있다. 비정방 형태의 코딩 유닛에서는 기-정의된 예측 각도를 벗어난 예측 각도에서 인트라 예측을 수행할 수도 있으며, 이를 와이드 앵글 인트라 예측 모드라 한다.
와이드 앵글 인트라 예측 모드는 (45-α) 내지 (-135-β)의 예측 각도를 가질 수 있으며, 기존 인트라 예측 모드에서 사용된 각도를 벗어나는 예측 각도를 와이드 앵글 각도라 한다.
도 19의 좌측 그림에서 수평 방향 코딩 유닛에 있는 샘플 A는 와이드 앵글 인트라 예측 모드를 사용하여 인트라 레퍼런스 샘플 T로부터 예측할 수 있다.
도 19의 우측 그림에서 수직 방향 코딩 유닛에 있는 샘플 A는 와이드 앵글 인트라 예측 모드를 사용하여 인트라 레퍼런스 샘플 L로부터 예측할 수 있다.
와이드 앵글 인트라 예측 모드는 기존 인트라 예측 모드 N개에 20개의 와이드 앵글 각도를 더해 N+20 개의 인트라 예측 모드를 사용할 수도 있다. 구체적으로 예를 들어, 67개 인트라 모드를 사용하는 경우에는 표 11과 같이 와이드 앵글 각도를 더해 총 87개 인트라 예측 모드를 사용할 수 있다.
predModeIntra -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 2 3 4
intraPredAngle 512 341 256 171 128 102 86 73 64 57 51 45 39 35 32 29 26
predModeIntra 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
intraPredAngle 23 20 18 16 14 12 10 8 6 4 3 2 1 0 -1 -2 -3
predModeIntra 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
intraPredAngle -4 -6 -8 -10 -12 -14 -16 -18 -20 -23 -26 -29 -32 -29 -26 -23 -20
predModeIntra 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
intraPredAngle -18 -16 -14 -12 -10 -8 -6 -4 -3 -2 -1 0 1 2 3 4 6
predModeIntra 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
intraPredAngle 8 10 12 14 16 18 20 23 26 29 32 35 39 45 51 57 64
predModeIntra 73 74 75 76 77 78 79 80
intraPredAngle 73 86 102 128 171 256 341 512
와이드 앵글 인트라 예측 모드를 사용하는 경우, 도 20과 같이 상측 인트라 레퍼런스 샘플의 길이를 (2W+1)로 설정하고, 좌측 인트라 레퍼런스 샘플의 길이를 (2H+1)로 설정할 수 있다. 와이드 앵글 인트라 예측을 사용하는 경우에 와이드 앵글 인트라 예측 모드의 인트라 예측 모드를 부호화하는 경우에는 인트라 예측 모드의 개수가 많아져서 부호화 효율이 낮아질 수 있다. 와이드 앵글 인트라 예측 모드는 와이드 앵글 인트라에서 사용되지 않는 기존 인트라 예측 모드로 대체하여 부호화할 수 있으며, 대체되는 예측 모드를 와이드 앵글 대체 모드라고 한다.
구체적으로 예를 들어, 도 21과 같이 35개의 인트라 예측 모드를 사용하는 경우 와이드 앵글 인트라 예측 모드 35는 와이드 앵글 대체 모드인 인트라 예측 모드 2로 부호화할 수 있고, 와이드 앵글 인트라 예측 모드 36은 와이드 앵글 대체 모드인 인트라 예측 모드 3으로 부호화 할 수 있다. 코딩 블록의 형태 또는 코딩 블록 높이 대 너비의 비에 따라 대체하는 모드와 개수를 다르게 설정할 수 있다. 구체적으로 예를 들어, 표 12 내지 표 13과 같이 코딩 블록의 형태에 따라 대체하는 모드와 개수를 다르게 설정할 수 있다. 표 12는 35개의 인트라 예측 모드가 사용된 경우를 나타내고, 표 13은 67개의 인트라 예측 모드가 사용된 경우를 나타낸다.
Condition Replaced Intra Prediction Modes
W/H = 2 Modes 2, 3, 4
W/H > 2 Modes 2, 3, 4, 5, 6
W/H = 1 None
H/W = 1/2 Modes 32, 33, 34
H/W < 1/2 Modes 30, 31, 32, 33, 34
Condition Replaced Intra Prediction Modes
W/H = 2 Modes 2, 3, 4, 5, 6, 7
W/H > 2 Modes 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
W/H = 1 None
H/W = 1/2 Modes 61, 62, 63, 64, 65, 66
H/W < 1/2 Modes 57, 58, 59, 60, 61, 62, 63, 64, 65, 66
또는, 코딩 블록의 형태 또는 코딩 블록 높이 대 너비의 비에 따라 대체하는 모드의 종류와 개수를 다르게 설정할 수 있다. 구체적으로 예를 들어, 표 14와 같이 코딩 블록의 형태에 따라 대체하는 모드와 개수를 다르게 설정할 수 있다. 표 14는 코딩 블록의 너비와 높이의 비에 따라 사용되는 인트라 예측 대체 모드를 나타낸다.
Aspect ratio Replaced intra prediction modes
W / H == 16 Modes 12, 13,14,15
W / H == 8 Modes 12, 13
W / H == 4 Modes 2,3,4,5,6,7,8,9,10,11
W / H == 2 Modes 2,3,4,5,6,7,
W / H == 1 None
W / H == 1/2 Modes 61,62,63,64,65,66
W / H == 1/4 Mode 57,58,59,60,61,62,63,64,65,66
W / H == 1/8 Modes 55, 56
W / H == 1/16 Modes 53, 54, 55, 56
도 22는 본 발명이 적용되는 일실시예로서, 서브 파티션 기반의 인트라 예측 방법을 도시한 것이다.
도 22를 참조하면, 코딩 유닛을 복수의 서브 블록으로 분할하고, 소정의 우선순서에 기반하여 순차적으로 서브 블록을 예측/복원할 수 있으며, 이를 서브 파티션 기반의 인트라 예측 방법이라 한다. 현재 서브 블록은, 코딩 유닛 내 기-복원된 서브 블록의 샘플을 참조하여 예측될 수 있다. 여기서, 복원된 서브 블록의 샘플은 인-루프 필터가 적용되지 않은 샘플일 수 있다. 상기 우선순서는, 좌측에서 우측 또는 상단에서 하단 중 어느 하나일 수 있다. 다만, 이에 한정되지 아니하며, 우측에서 좌측 또는 하단에서 상단으로 결정될 수 있다. 이하, 코딩 유닛은 현재 블록을 의미할 수 있다.
서브 파티션 기반의 인트라 예측 방법에서, 코딩 유닛 내 모든 서브 블록들은 동일한 인트라 예측 모드를 사용하도록 제한될 수 있다.
또는, 서브 파티션 기반의 인트라 예측 방법에서, 코딩 유닛 내 서브 블록들 중 적어도 하나의 인트라 예측 모드는 다른 서브 블록과 상이할 수 있다. 일 예로, n번째 서브 블록의 인트라 예측 모드는 (n-1)번째 서브 블록의 인트라 예측 모드에서 오프셋을 가산/감산하여 유도될 수 있다. 오프셋은 부호화기/복호화기에서 기-정의되어 있을 수도 있고, 코딩 유닛의 형태, 크기, 인트라 예측 모드, 서브 파티션의 형태, 크기에 따라 유도될 수도 있다. 또는, 오프셋을 결정하기 위한 정보가 비트스트림을 통해 시그날링될 수도 있다.
또는, 복수의 서브 블록 중 일부는 방향성 모드를 사용하고, 나머지는 비방향성 모드를 사용할 수 있다. 또는, 복수의 서브 블록 중 어느 하나는 기-정의된 디폴트 모드를 사용하고, 다른 하나는 넌-디폴트 모드를 사용할 수도 있다. 이때, 제1 서브 블록의 방향성 모드가 기-정의된 인트라 예측 모드인 경우에 한하여, 제2 서브 블록에서 비방향성 모드가 사용될 수 있다.
또는, 서브 파티션 기반의 인트라 예측 방법에서, 코딩 유닛 내 서브 블록들의 인트라 예측 모드는 기-정의된 후보들 중에서 선택될 수 있다. 여기서, 기-정의된 후보는 수평 모드, 수직 모드, 대각 모드(예컨대, 좌상단, 우상단, 좌하단 인트라 예측 모드), 비방향성 모드 중 적어도 하나를 포함할 수 있다.
또는, 서브 파티션 기반의 인트라 예측 방법에서, 코딩 유닛 내 서브 블록들의 인트라 예측 모드는 MPM 후보에서만 유도될 수 있다.
또는, 코딩 유닛의 인트라 예측 모드에 따라, 서브 파티션 기반의 인트라 예측 방법의 사용이 제한될 수 있다. 예컨대, 코딩 유닛의 인트라 예측 모드가 비방향성 모드(예컨대, Planar 또는 DC 모드)인 경우 또는 기-정의된 방향성 모드(예컨대, 수평, 수직 또는 대각 모드)인 경우, 서브 파티션 기반의 인트라 예측 방법이 사용되지 않도록 설정될 수 있다. 또는, 코딩 유닛의 인트라 예측 모드가, 이웃하는 서브 블록을 참조 샘플로서 활용할 수 없는 인트라 예측 모드인 경우(예컨대, 대각 모드 또는 와이드 앵글 인트라 예측 모드), 서브 파티션 기반의 인트라 예측 방법이 사용되지 않도록 설정될 수 있다.
또는, 코딩 유닛의 크기 또는 형태에 따라, 서브 파티션 기반의 인트라 예측 방법의 사용이 제한될 수 있다. 예컨대, 코딩 유닛의 높이와 -너비의 비가 문턱값 이상인 경우 또는 현재 블록의 너비 또는 높이 중 적어도 하나가 문턱값 이하인 경우, 서브 파티션 기반의 인트라 예측 방법이 사용되지 않도록 설정될 수 있다.
코딩 유닛의 인트라 레퍼런스 라인의 개수/위치에 따라, 서브 파티션 기반의 인트라 예측 방법의 사용이 제한될 수 있다. 예컨대, 코딩 유닛의 인트라 레퍼런스 라인의 위치가 인접 인트라 레퍼런스 라인인 경우에 한하여, 서브 파티션 기반의 인트라 예측 방법이 사용될 수 있다. 또는, 코딩 유닛의 인트라 레퍼런스 라인의 개수가 1개인 경우에 한하여, 서브 파티션 기반의 인트라 예측 방법이 사용될 수 있다.
각 서브 블록 단위로 서로 다른 양자화 파라미터 값을 사용할 수도 있으며, 이전 서브 블록의 양자화 파라미터 값과 현재 서브 블록의 양자화 파라미터 값의 차분값을 부호화할 수도 있다. 다시 말해, 현재 서브 블록의 양자화 파라미터는, 부호화된 차분값과 이전 서브 블록의 양자화 파라미터를 기반으로 유도될 수 있다.
서브 블록(파티션)은, 수직 방향 파티션 및 수평 방향 파티션으로 나눌 수 있다. 수직 방향 파티션은 적어도 하나의 수직선을 이용하여 코딩 블록을 분할함으로써 생성되고, 수평 방향 파티션은 적어도 하나의 수평선을 이용하여 코딩 블록을 분할함으로써 생성될 수 있다. 코딩 유닛은, 수직선만을 이용하여 분할되거나, 수평선만을 이용하여 분할될 수 있다. 또는, 코딩 유닛은 수직선 및 수평선 둘다 사용하여 분할될 수도 있다.
서브 블록의 개수는 코딩 유닛의 크기/형태에 따라 결정될 수 있다. 일 예로, 4x4 코딩 유닛에서는 서브 파티션을 나누지 않고, 8x4 내지 4x8 코딩 유닛에서는 2개의 서브 파티션으로 나눌 수 있으며, 그 외의 코딩 유닛에서는 4개의 파티션으로 나눌 수 있다.
또는, 서브 블록의 개수, 크기 또는 형태를 나타내는 정보가 비트스트림을 통해 시그날링될 수 있다. 시그날링되는 정보에 의해 결정되는 파티션의 개수에 따라, 서브 블록의 크기 또는 형태가 결정되거나, 시그날링되는 정보에 의해 결정되는 서브 블록의 크기/형태에 따라, 서브 블록의 개수가 결정될 수 있다.
도 22를 참조하면, 코딩 유닛을 수직 방향 파티션 내지 수평 방향 파티션으로 나눌 수 있다. 코딩 블록에서 서브 파티션 기반의 인트라 예측 방법을 사용할지를 나타내는 플래그 intra_subpartitions_mode_flag를 비트스트림을 통해 시그날링 할 수 있다.
수직 방향 파티션으로 나눌지 수평 방향 파티션으로 나눌지를 나타내는 인트라 파티션 타입 플래그 (intra_subpartitions_split_flag)을 비트스트림을 통해 전송할 수 있다. intra_subpartitions_split_flag값이 1이면 수평 방향 파티션으로 나누어 서브 파티션을 구성할 수 있음을 나타내고, intra_subpartitions_split_flag값이 0이면 수직 방향 파티션으로 나누어 서브 파티션을 구성할 수 있음을 나타낸다.
도 23 및 도 24는 본 발명이 적용되는 일실시예로서, 인트라 예측에 따른 예측값을 보정하는 방법에 관한 것이다.
본 발명에 따른 예측값의 보정은, 소정의 참조 샘플과 가중치를 기반으로 수행될 수 있다. 여기서, 참조 샘플과 가중치는, 보정 대상인 현재 블록 내 샘플(이하, 현재 샘플라 함)의 위치에 기초하여 결정될 수 있다. 또한, 참조 샘플의 위치는, 현재 블록의 인트라 예측 모드에 기초하여 결정될 수 있다.
인트라 예측 영상을 생성한 후, 화소 위치에 기초하여 각 화소 별로 인트라 예측 영상을 보정할 수 있으며, 이를 화소 위치 기반의 인트라 가중 예측 방법(Position dependent prediction combination, PDPC)라고 정의한다.
(실시예 1)
도 23을 참조하면, 현재 샘플과 하나 또는 복수개의 주변 샘플(인트라 레퍼런스 라인 내에 위치하는 샘플)의 가중 예측을 사용하여 최종 인트라 예측 영상을 생성할 수 있다. 가중 예측에 사용하는 샘플 별 가중치는 샘플의 위치 및 코딩 유닛의 너비 및/또는 코딩 유닛의 높이에 비례하는 값으로 설정할 수도 있다. 다만, 도 23은 PDPC를 위한 참조 샘플의 일 예에 불과하며, 참조 샘플의 위치 및/또는 개수를 한정하는 것은 아니다. 예를 들어, 현재 블록의 인트라 예측 모드에 따라, PDPC를 위한 참조 샘플의 위치 및/또는 개수가 상이하게 결정될 수 있다.
PDPC는 멀티 라인 인트라 예측에서도 사용될 수 있다. 인트라 레퍼런스 라인 인덱스 intra_luma_ref_idx 값에 따라 PDPC 참조 샘플을 특정하기 위한 PDPC_ref_idx를 표 15와 같이 정의할 수 있다.
intra_luma_ref_idx[ x0 ][ y0 ] PDPC_ref_idx
0 0
1 1
2 3
구체적으로 예를 들어, PDPC는 다음 수학식 4와 같이 최종 인트라 예측 영상을 생성할 수도 있다.
Figure pat00004
PDPC 부호화에서 가중 예측에 사용되는 참조 샘플을 PDPC 참조 샘플이라고 한다. 상측 인트라 레퍼런스 라인에 있는 PDPC 참조 샘플을 상측 PDPC 참조 샘플(refT)이라고 하고, 좌측 인트라 레퍼런스 라인에 있는 참조 샘플을 좌측 PDPC 참조 샘플(refL)이라고 하며, 좌상단 (예를 들어, R(-1,-1) 또는 R(-2,-2) 또는 R(-4,-4))에 위치한 참조 샘플을 좌상단 PDPC 참조 샘플이라고 한다.
상측 PDPC 참조 샘플 refT의 위치는 R(x+y+1, -1)로 설정할 수도 있고, R(x, -1)로 설정할 수도 있다. 또는 좌측 PDPC 참조 샘플의 위치는 코딩 유닛의 형태나 인트라 예측 모드 값에 따라 다르게 설정할 수도 있고, 복수개의 샘플에서 가중 예측을 이용하여 유도할 수도 있다.
구체적으로 예를 들어, 인트라 예측 모드가 DC 모드, 플래너 모드, 수평 모드 (모드 값 18) 또는 수직 모드 (모드 값 50) 중 어느 하나인 경우에는 상측 PDPC 참조 샘플 refT[x][y]는 다음 수학식 5와 같이 유도할 수 있다.
Figure pat00005
인트라 예측 모드가 INTRA_2 또는 INTRA_66인 경우에는 상측 PDPC 참조 샘플 refT[x][y]는 다음 수학식 6과 같이 유도될 수 있다.
Figure pat00006
Top-right 대각 모드(67개 인트라 또는 와이드 앵글 인트라 예측 모드에서 인트라 예측 모드 값이 2보다 크고 10 보다 작은 예측 모드)에서는 다음 수학식 7과 같이 상측 PDPC 참조 샘플을 유도할 수 있다.
Figure pat00007
수학식 7에서 refW는 참조 샘플 레퍼런스의 너비를 나타낸다.
수학식 7에서 dX[x][y]는 인트라 예측 모드의 각도에 따른 인트라 레퍼런스 샘플의 위치를 특정하는 파라미터이며, 다음 수학식 8과 같이 유도될 수 있으며, 이를 인트라 레퍼런스 샘플 상측 위치 파라미터라 한다.
Figure pat00008
Bottom-left 대각 모드(67개 인트라 또는 와이드 앵글 인트라 예측 모드에서 인트라 예측 모드 값이 58 보다 크고 66보다 작은 예측 모드)에서는 다음 수학식 9와 같이 상측 PDPC 참조 샘플을 유도할 수 있다.
Figure pat00009
좌측 PDPC 참조 샘플의 위치는 R(-1-PDPC_ref_idx, x+y+1)( p[-1-PDPC_ref_idx][ x+y+1] )로 설정할 수도 있고, R(-1-PDPC_ref_idx, x)( p[-1-PDPC_ref_idx][ x] )로 설정할 수도 있다. 또는 상측 PDPC 참조 샘플의 위치는 코딩 유닛의 형태나 인트라 예측 모드 값에 따라 다르게 설정할 수도 있고, 복수개의 샘플에서 가중 예측을 이용하여 유도할 수도 있다.
구체적으로 예를 들어, 인트라 예측 모드가 DC 모드, 플래너 모드, 수평 인트라 예측 모드 (인트라 예측 모드 값 18) 내지 수직 인트라 예측 모드 (인트라 예측 모드 값 50) 중 어느 하나인 경우에는 좌측 PDPC 참조 샘플 refL[x][y]는 다음 수학식 10과 같이 유도될 수 있다.
Figure pat00010
인트라 예측 모드가 INTRA_2 또는 INTRA_66인 경우에는 좌측 PDPC 참조 샘플 refT[x][y]는 다음 수학식 11과 같이 유도할 수 있다.
Figure pat00011
Top-right 대각 모드에서는 다음 수학식 12와 같이 좌측 PDPC 참조 샘플을 유도할 수 있다.
Figure pat00012
Bottom-left 대각 모드에서는 다음 수학식 13과 같이 좌측 PDPC 참조 샘플을 유도할 수 있다.
Figure pat00013
수학식 13에서 refH는 참조 샘플 레퍼런스의 높이를 나타낸다. 수학식 13에서 dY[x][y]는 인트라 예측 모드의 각도에 따른 인트라 레퍼런스 샘플의 위치를 특정하는 파라미터이며, 다음 수학식 14와 같이 유도될 수 있으며, 이를 인트라 레퍼런스 샘플 좌측 위치 파라미터라 한다.
Figure pat00014
위 수학식 14에서 invAngle은 인트라 예측 각도로부터 유도된 파라미터이며, 수학식 15와 같이 유도할 수 있다.
Figure pat00015
intraPredAngle은 표 11에 도시된 예측 모드 별 인트라 예측 각도를 나타낸다.
멀티 라인 인트라 예측 모드에서 비인접 인트라 레퍼런스 샘플을 사용하여 PDPC를 수행하는 경우에는 현재 샘플과 인트라 참조 샘플의 불연속성이 커져서 화질 열화가 발생할 수 있다. 화질 열화를 줄이기 위해 선택된 비인접 인트라 레퍼런스 샘플과 인접 레퍼런스 샘플/다른 비인접 인트라 레퍼런스 샘플을 가중 예측하여 스무딩할 수도 있다.
예를 들어, 멀티 라인 인트라 예측 모드를 사용하는 경우, 도 24와 같이 선택된 레퍼런스 샘플 라인과 다른 레퍼런스 샘플 라인을 가중 예측하여 좌측 PDPC 참조 샘플 및 상측 PDPC 참조 샘플을 유도할 수도 있다.
구체적으로 예를 들어, 멀티 라인 인트라 중 비인접 레퍼런스 샘플을 사용하고, Top-Right 대각 모드인 경우에는 비인접 레퍼런스 샘플과 인접 레퍼런스 샘플의 가중 예측을 이용해 refT[x][y]를 유도할 수 있으며, 가중 예측 파라미터 w는 현재 블록과의 거리에 비례 또는 반비례하는 값으로 설정할 수 있다. 구체적으로 예를 들어, 다음 수학식 16과 같이 refT[x][y]를 유도할 수 있다.
Figure pat00016
또 다른 예를 들어, 멀티 라인 인트라 중 비인접 레퍼런스 샘플을 사용하고, Bottom-left 대각 모드인 경우에는 비인접 레퍼런스 샘플과 인접 레퍼런스 샘플의 가중 예측을 이용해 refL[x][y]를 유도할 수 있으며, 가중 예측 파라미터 w는 현재 블록과의 거리에 비례 또는 반비례하는 값으로 설정할 수 있다. 구체적으로 예를 들어, 다음 수학식 17과 같이 refL[x][y]를 유도할 수 있다.
Figure pat00017
또 다른 예를 들어, 멀티 라인 인트라 중 비인접 레퍼런스 샘플을 사용하고, 수평 예측 모드(INTRA_18)인 경우에는 비인접 레퍼런스 샘플과 인접 레퍼런스 샘플의 가중 예측을 이용해 refL[x][y]를 유도하거나, 좌상단 PDPC 샘플과 좌측 PDPC 샘플의 차분을 스케일링한 값을 더할 수 있다.
구체적으로 예를 들어, 다음 수학식 18과 같이 refL[x][y]를 유도할 수 있다.
Figure pat00018
또 다른 예를 들어, 멀티 라인 인트라 중 비인접 레퍼런스 샘플을 사용하고, 수직 예측 모드(INTRA_50)인 경우에는 비인접 레퍼런스 샘플과 인접 레퍼런스 샘플의 가중 예측을 이용해 refT[x][y]를 유도하거나, 좌상단 PDPC 샘플과 상측 PDPC 샘플의 차분을 스케일링한 값을 더할 수 있다.
구체적으로 예를 들어, 다음 수학식 19와 같이 refL[x][y]를 유도할 수 있다.
Figure pat00019
PDPC 가중 예측의 샘플 단위 가중치 wL, wT, wTL 및 (64 - wL - wT + wTL) (이하, PDPC 샘플 단위 가중치)은 인트라 예측 모드에 기초하여 유도할 수 있다. 예를 들어, x축 좌표값 및/또는 y축 좌표값 및/또는 코딩 블록의 너비/높이에 비례 또는 반비례한 값으로 유도될 수도 있다.
wL은 좌측 PDPC 가중치라고 하고, wT는 상측 PDPC 가중치라하고, wTL은 좌상단 PDPC 가중치, (64 - wL - wT + wTL)은 현재 샘플 PDPC 가중치라고 한다.
구체적으로 예를 들어, DC 모드, 플래너 모드, 수평 인트라 예측 모드 (인트라 예측 모드 값 18) 내지 수직 인트라 예측 모드 (인트라 예측 모드 값 50) 중 어느 하나인 경우에는 다음 수학식 20과 같이 유도할 수도 있다.
Figure pat00020
여기서 shift값은 다음 수학식 21과 같이 정의될 수 있다.
Figure pat00021
인트라 예측 모드가 INTRA_2 또는 INTRA_66인 경우에는 다음 수학식 22와 같이 PDPC 샘플 단위 가중치를 유도할 수 있다.
Figure pat00022
Top-right 대각 모드(67개 인트라 또는 와이드 앵글 인트라 예측 모드에서 인트라 예측 모드가 10 보다 작은 예측 모드)에서는 다음 수학식 23과 같이 PDPC 샘플 단위 가중치를 유도할 수 있다.
Figure pat00023
Bottom-left 대각 모드(67개 인트라 또는 와이드 앵글 인트라 예측 모드에서 인트라 예측 모드가 58 보다 크고 67보다 작은 예측 모드)에서는 다음 수학식 24와 같이 PDPC 샘플 단위 가중치를 유도할 수 있다.
Figure pat00024
(실시예 2)
현재 블록의 인트라 예측 모드가 비방향성 모드인 경우, 현재 샘플의 참조 화소(refL, refT)는, 현재 블록에 인접한 제1 화소 라인에 속하며, 현재 샘플과 동일한 수평/수직 라인에 위치할 수 있다. 가중치는, x축 방향의 제1 가중치(wL), y축 방향의 제2 가중치(wT) 또는 대각 방향의 제3 가중치(wTL) 중 적어도 하나를 포함할 수 있다. 제1 가중치는 좌측 참조 화소에 적용되는 가중치를, 제2 가중치는 상단 참조 화소에 적용되는 가중치를, 제3 가중치는 좌상단 참조 화소에 적용되는 가중치를 각각 의미할 수 있다. 여기서, 제1 및 제2 가중치는, 현재 샘플의 위치 정보와 소정의 스케일링 팩터(nScale)에 기초하여 결정될 수 있다. 스케일링 팩터는 현재 블록의 너비(W)와 높이(H)에 기초하여 결정될 수 있다. 예를 들어, 현재 샘플(predSample[x][y])의 제1 가중치(wL[x])는 (32 >> ((x << 1) >> nScale))으로 결정되고, 제2 가중치(wT[x])는 (32 >> ((y << 1) >> nScale))으로 결정될 수 있다. 제3 가중치(wTL[x][y])는 ((wL[x] >> 4) + (wT[y] >> 4))으로 결정될 수 있다. 다만, 인트라 예측 모드가 Planar 모드인 경우, 제3 가중치는 0으로 결정될 수 있다. 상기 스케일링 팩터는, ((Log2(nTbW) + Log2(nTbH) - 2) >> 2)으로 설정될 수 있다.
현재 블록의 인트라 예측 모드가 수직/수평 모드인 경우, 현재 샘플의 참조 화소(refL, refT)는, 현재 블록에 인접한 제1 화소 라인에 속하며, 현재 샘플과 동일한 수평/수직 라인에 위치할 수 있다. 수직 모드인 경우, 현재 샘플(predSample[x][y])의 제1 가중치(wL[x])는 (32 >> ((x << 1) >> nScale))으로 결정되고, 제2 가중치(wT[y])는 0으로 결정되며, 제3 가중치(wTL[x][y])는 제1 가중치와 동일하게 결정될 수 있다. 한편, 수평 모드인 경우, 현재 샘플(predSample[x][y])의 제1 가중치(wL[x])는 0으로 결정되고, 제2 가중치(wT[y])는 (32 >> ((y << 1) >> nScale))으로 결정되며, 제3 가중치(wTL[x][y])는 제2 가중치와 동일하게 결정될 수 있다.
현재 블록의 인트라 예측 모드가 대각 모드인 경우, 현재 샘플의 참조 화소(refL, refT)는, 현재 블록에 인접한 제1 화소 라인에 속하며, 현재 샘플과 동일한 대각 라인에 위치할 수 있다. 여기서, 대각 라인은 현재 블록의 인트라 예측 모드와 동일한 각도를 가진다. 상기 대각 라인은 좌하단에서 우상단 방향의 대각 라인을 의미할 수도 있고, 좌상단에서 우하단 방향의 대각 라인을 의미할 수도 있다. 이때, 현재 샘플(predSample[x][y])의 제1 가중치(wL[x])는 (32 >> ((x << 1) >> nScale))으로 결정되고, 제2 가중치(wT[y])는 (32 >> ((y << 1) >> nScale))으로 결정되며, 제3 가중치(wTL[x][y])는 0으로 결정될 수 있다.
또는, 현재 블록의 인트라 예측 모드가 18번 모드보다 작은 경우, 현재 샘플의 참조 샘플(refL, refT)은, 현재 블록의 인접 인트라 레퍼런스 라인에 속할 수 있다. 상기 참조 샘플은, 현재 샘플과 동일한 대각 라인 상에 위치하거나, 대각 라인에 인접할 수 있다.
예를 들어, 상기 대각 라인이 인접 인트라 레퍼런스 라인 내 정수 펠을 지나는 경우, 상기 참조 샘플은, 대각 라인 상의 정수 펠로 결정될 수 있다. 반면, 상기 대각 라인이 인접 인트라 레퍼런스 라인에 속한 2개 정수 펠 사이를 지나는 경우, 상기 참조 샘플은, 2개 정수 펠을 보간하여 생성된 1개의 소수 펠로 결정될 수 있다. 또는, 별도의 보간 과정없이, 2개의 정수 펠 중 대각 라인에 가장 가까운 정수 펠이 참조 샘플로 결정되거나, 대각 라인을 기준으로 특정 방향의 정수 펠이 참조 샘플로 결정될 수도 있다. 여기서, 특정 방향은 좌측 또는 우측 중 어느 하나를 의미하거나, 상단 또는 하단 중 어느 하나를 의미할 수 있다. 상기 대각 라인은 현재 블록의 인트라 예측 모드의 각도에 따라 결정될 수 있다.
다만, 참조 샘플은 현재 블록의 좌측 또는 상단 참조 샘플 중 어느 하나만이 이용되도록 제한될 수 있다. 현재 샘플(predSample[x][y])의 제1 가중치(wL[x])는 0으로 결정되고, 제2 가중치(wT[y])는 (32 >> ((y << 1) >> nScale))으로 결정되며, 제3 가중치(wTL[x][y])는 0으로 결정될 수 있다.
현재 블록의 인트라 예측 모드가 50번 모드보다 큰 경우, 현재 샘플의 참조 화소(refL, refT)는, 현재 블록의 인접 인트라 레퍼런스 라인에 속할 수 있다. 상기 참조 샘플은, 현재 샘플과 동일한 대각 라인 상에 위치하거나, 대각 라인에 인접할 수 있다.
예를 들어, 상기 대각 라인이 인접 인트라 레퍼런스 라인 내 정수 펠을 지나는 경우, 상기 참조 샘플은, 대각 라인 상의 정수 펠로 결정될 수 있다. 반면, 상기 대각 라인이 인접 인트라 레퍼런스 라인에 속한 2개 정수 펠 사이를 지나는 경우, 상기 참조 샘플은, 2개 정수 펠을 보간하여 생성된 1개의 소수 펠로 결정될 수 있다. 또는, 별도의 보간 과정없이, 2개의 정수 펠 중 대각 라인에 가장 가까운 정수 펠이 참조 샘플로 결정되거나, 대각 라인을 기준으로 특정 방향의 정수 펠이 참조 샘플로 결정될 수도 있다. 여기서, 특정 방향은 좌측 또는 우측 중 어느 하나를 의미하거나, 상단 또는 하단 중 어느 하나를 의미할 수 있다. 상기 대각 라인은 현재 블록의 인트라 예측 모드의 각도에 따라 결정될 수 있다.
다만, 참조 샘플은 현재 블록의 좌측 또는 상단 참조 화소 중 어느 하나만이 이용되도록 제한될 수 있다. 현재 샘플(predSample[x][y])의 제1 가중치(wL[x])는 (32 >> ((x << 1) >> nScale))으로 결정되고, 제2 가중치(wT[y])는 0으로 결정되며, 제3 가중치(wTL[x][y])는 0으로 결정될 수 있다.
상기 결정된 참조 화소(refL[x][y], refT[x][y]) 및 가중치(wL[x], wT[y], wTL[x][y])에 기반하여, 현재 샘플(predSamples[x][y])는 전술한 수학식 4와 같이 보정될 수 있다.
다만, 전술한 보정 과정은, 현재 블록이 서브 블록 단위의 인트라 예측을 수행하지 않는 경우에 한하여 수행될 수 있다. 상기 보정 과정은, 현재 블록의 참조 화소가 제1 화소 라인인 경우에 한하여 수행될 수 있다. 상기 보정 과정은, 현재 블록의 인트라 예측 모드가 특정 모드에 해당하는 경우에 한하여 수행될 수 있다. 여기서, 특정 모드는, 비방향성 모드, 수직 모드, 수평 모드, 소정의 제1 문턱모드보다 작은 모드, 소정의 제2 문턱모드보다 큰 모드 중 적어도 하나를 포함할 수 있다. 상기 제1 문턱모드는, 8, 9, 10, 11 또는 12번 모드이거나, 수평 모드 또는 66번 대각 모드일 수 있고, 상기 제2 문턱모드는 56, 57, 58, 59 또는 60번 모드이거나, 수직 모드 또는 2번 대각 모드일 수 있다.
도 25 내지 도 27은 본 발명이 적용되는 일실시예로서, 변환 및/또는 양자화를 기반으로 잔차 영상을 부호화/복호화하는 방법을 도시한 것이다.
원본 영상에서 예측 영상을 차분한 영상을 잔차 영상(residual)이라 한다.
잔차 영상에 DCT(Discrete cosine transform)와 같은 2차원 변환(Transform)을 통하여 2원 주파수 성분으로 분해할 수 있다. 영상에서 고주파 성분을 제거해도 시각적으로 왜곡이 크게 발생하지 않는 특성이 있다. 고주파에 해당하는 값을 작게 하거나 0으로 설정하면 시각적 왜곡이 크지 않으면서도 압축 효율을 크게 할 수 있다.
예측 블록의 크기나 예측 모드에 따라 DST (Discrete sine transform)을 사용할 수도 있다. 구체적으로 예를 들어, 인트라 예측 모드이고, 예측 블록/코딩 블록의 크기가 NxN 보다 작은 크기인 경우에는 DST 변환을 사용하도록 설정하고, 그 외의 예측 블록/코딩 블록에서는 DCT를 사용하도록 설정할 수도 있다.
DCT는 영상을 cos 변환을 이용하여 2차원 주파수 성분으로 분해(변환)하는 처리이고, 그 때의 주파수 성분들은 기저 영상으로 표현된다. 예를 들어, NxN 블록에서 DCT 변환을 수행하면 N2 개의 기본 패턴 성분을 얻을 수 있다. DCT 변환을 수행한다는 것은 원화소 블록에 포함된 기본 패턴 성분들 각각의 크기를 구하는 것이다. 각 기본 패턴 성분들의 크기는 DCT 계수라 한다.
대체적으로 저주파에 0이 아닌 성분들이 많이 분포하는 영상에서는 이산 여현 변환(Discrete Cosine Transform, DCT)을 주로 사용하고, 고주파 성분이 많이 분포하는 영상에서는 DST (Discrete Sine Transform)을 사용할 수도 있다.
DST는 영상을 sin 변환을 이용하여 2차원 주파수 성분으로 분해(변환)하는 처리를 나타낸다. DCT 또는 DST 변환 이외의 변환 방법을 사용하여 2차원 영상을 2차원 주파수 성분으로 분해(변환)할 수 있으며, 이를 2차원 영상 변환이라 한다.
잔차 영상 중 특정 블록에서는 2차원 영상 변환을 수행하지 않을 수 있으며, 이를 변환 스킵(transform skip)이라 한다. 변환 스킵 이후에 양자화를 적용할 수 있다.
2차원 영상 내에 있는 임의의 블록을 DCT 또는 DST 또는 2차원 영상 변환을 적용할 수 있으며, 이 때 사용된 변환을 제 1 변환이라고 정의한다. 제 1 변환을 수행 후 변환 블록의 일부 영역에서 변환을 다시 수행할 수 있으며, 이를 제 2 변환이라고 정의한다.
제 1 변환은 복수개의 변환 코어 중 하나를 사용할 수 있다. 구체적으로 예를 들어, 변환 블록에서 DCT2, DCT8 또는 DST7 중 어느 하나를 선택하여 사용할 수 하거나, 변환 블록의 수평 방향 변환과 수직 방향 변환에서 서로 다른 변환 코어를 사용할 수도 있으며, 이를 복수 변환 선택 방법(Multiple Transform Selection, MTS)이라고 부른다. 여기서 DCT2, DCT8 또는 DST7을 변환 코어라고 부른다.
일 예로, 코딩 블록에서 수평 방향과 수직 방향 변환 코어로 DCT2를 사용할 지 여부를 선택하는 cu_mts_flag 을 시그날링할 수도 있다.
cu_mts_flag 값이 1이면, 수평 방향과 수직 방향 변환 코어로 DCT2를 사용함을 나타낸다.
cu_mts_flag 값이 0이면, 수평 방향과 수직 방향 변환 코어로 DCT8 또는 DST 7을 사용함을 나타낸다.
cu_mts_flag 값이 0인 경우에 한정하여, 변환 코어 인덱스(mts_idx)를 시그날링할 수 있다.
수직 방향 코딩 유닛 또는 수평 방향 코딩 유닛인 경우에는 cu_mts_flag값을 0으로 설정할 수도 있다.
mts_idx INTRA INTER
수평방향 변환코어 수직방향 변환 코어 수평방향 변환 코어 수직방향 변환 코어
0 DST7 DST7 DCT8 DCT8
1 DCT8 DST7 DST7 DCT8
2 DST7 DCT8 DCT8 DST7
3 DCT8 DCT8 DST7 DST7
인트라 코딩 유닛이고 논-제로 변환 계수의 수가 임계값보다 작거나 같은 경우에는 변환 코어 인덱스를 시그날링하지 않을 수 있고, 수평 방향 변환 코어 및 수직 방향 변환 코어로 DST7을 사용할 수도 있다. 이 때 사용된 임계값을 제 1 변환 선택 임계값이라고 부른다. 일 예로, 제 1 변환 선택 임계값을 2로 설정하거나, 코딩 유닛의 크기와 비례한 값으로 설정할 수도 있다. 구체적으로 예를 들어, 32x32 보다 작거나 같은 코딩 유닛에서는 제 1 변환 선택 임계값을 2로 설정하고, 32x32 보다 큰 코딩 유닛(예를 들어, 32x64, 64x32 또는 64x64 크기의 코딩 유닛)에서는 제 1 변환 선택 임계값을 4로 설정할 수도 있다.
또는, 코딩 유닛의 형태에 따라 서로 다른 변환 코어를 사용할 수도 있다. 일 예로, 수평 방향 코딩 유닛이나 수직 방향 코딩 유닛에서는 수평 방향 변환 코어와 수직 방향 변환 코어가 같지 않도록 설정할 수도 있다. 즉, 변환 코어 인덱스가 1 내지 2 값만 가지도록 설정할 수 있으며, 표 16과 같이 변환 코어 플래그 (mts_flag)을 시그날링 할 수 있다.
변환 코어 플래그 값이 0이면 변환 코어 인덱스를 1로 설정할 수 있고, 변환 코어 플래그 값이 1이면 변환 코어 인덱스를 2 로 설정할 수 있다.
residual_coding( x0, y0, log2TbWidth, log2TbHeight, cIdx ) { Descriptor
...
if( cu_mts_flag[ x0 ][ y0 ] && ( cIdx = = 0 ) &&
!transform_skip_flag[ x0 ][ y0 ][ cIdx ] &&
( ( CuPredMode[ x0 ][ y0 ] = = MODE_INTRA && numSigCoeff > 2 ) | |
( CuPredMode[ x0 ][ y0 ] = = MODE_INTER ) ) ) {
if (cbHeight == cbWidth) {
mts_idx[ x0 ][ y0 ] ae(v)
} else {
mts_flag[ x0 ][ y0 ] u(1)
}
}
또는, 코딩 유닛의 형태에 따라 mts_idx 값을 재정렬(리오더링, reordering)할 수 있다. 일 예로, 코딩 유닛이 수직 방향 코딩 유닛이거나 수평 방향 코딩 유닛인 경우에는 표 17과 같이 mts_idx를 재정렬 할 수 있다.
mts_idx INTRA INTER
수평방향 변환 코어 수직방향 변환 코어 수평방향 변환 코어 수직방향 변환 코어
0 DCT8 DST7 DST7 DCT8
1 DST7 DCT8 DCT8 DST7
2 DST7 DST7 DST7 DST7
3 DCT8 DCT8 DST7 DST7
도 25를 참조하면, 인트라 코딩 유닛이고, 수평 방향 논-제로 계수의 최대 개수가 2보다 작은 경우에는 수평 방향 변환 코어로 DST7을 사용할 수 있다. 여기서, 수평 방향 논-제로 계수의 최대 개수는 코딩 유닛 내 1xN 서브 블록에 있는 논-제로 계수의 개수를 나타낸다. 인트라 코딩 유닛이고, 수직 방향 논-제로 계수의 최대 개수가 2보다 작은 경우에는 수직 방향 변환 코어로 DST7을 사용할 수 있다. 여기서, 수평 방향 논-제로 계수의 최대 개수는 코딩 유닛 내 Nx1 서브 블록에 있는 논-제로 계수의 개수를 나타낸다.
수평 방향 변환 코어와 수직 방향 변환 코어가 같은지에 기초하여 제 2 변환 수행 여부를 선택적으로 결정할 수 있다. 일 예로, 수평 방향 변환 코어와 수직 방향 변환 코어가 같은 경우에만 제 2 변환을 수행하도록 설정할 수 있다. 또 다른 예로, 수평 방향 변환 코어와 수직 방향 변환 코어가 서로 다른 경우에만 제 2 변환을 수행하도록 설정할 수 있다.
또는 인트라 코딩 유닛이고, 논-제로 변환 계수의 개수가 제 1 변환 선택 임계값보다 작은 경우에는 제 2 변환을 사용하지 않도록 설정할 수도 있다.
또 다른 예를 들어, 코딩 유닛 내 논-제로 변환 계수의 개수에 기초하여 제 2 변환을 사용하지 않도록 설정할 수도 있다.
논-제로 변환 계수의 개수가 N보다 크면 제 2 변환을 수행하고, N보다 작거나 같으면 제 2 변환을 수행하지 않도록 설정할 수도 있다.
제 1 변환과 제 2 변환을 수행하는 블록 단위가 서로 다르게 설정할 수도 있다. 구체적으로 예를 들어, 잔차 영상의 8x8 블록에서 제 1 변환을 수행한 후, 4x4 서브 블록 별로 제 2 변환을 각각 수행할 수도 있다. 또 다른 예를 들어, 각 4x4 블록에서 제 1 변환을 수행한 후, 8x8 크기의 블록에서 제 2 변환을 각각 수행할 수도 있다.
코딩 유닛의 형태에 기초하여 제 2 변환을 수행할 서브 블록의 크기 및 형태를 다르게 설정할 수도 있다.
일 예로, 정방 형태 코딩 유닛에서 제 1 변환을 수행한 후에, 좌상단에 있는 NxN 서브 블록의 전부 또는 일부 영역에서만 제 2 변환을 수행할 수도 있다. 구체적으로 예를 들어, 도 26과 같이 8x8 크기의 코딩 유닛에서 제 1 변환을 수행한 후에, 4x4 좌상단 서브 블록에 제 2 변환을 수행할 수도 있다. 수평 방향 코딩 유닛 중 코딩 유닛의 너비가 코딩 유닛의 높이의 4배 이상인 코딩 유닛을 극대 수평 방향 코딩 유닛이라고 한다.
수직 방향 코딩 유닛 중 코딩 유닛의 높이가 코딩 유닛의 너비의4배 이상인 코딩 유닛을 극대 수평 방향 코딩 유닛이라고 한다.
또 다른 예로, 극대 수평 방향 코딩 유닛에서 제 1 변환을 수행한 후에, 좌상단 (kN)x(4kN) 서브 블록의 전부 또는 일부 영역에서만 제 2 변환을 수행할 수도 있다.
구체적으로 예를 들어, 도 27의 상측 그림과 같이 16x4 극대 수평 방향 코딩 유닛에서 제 1 변환을 수행한 후에, 2x8 좌상단 서브 블록에 제 2 변환을 수행할 수도 있다.
도 27의 하측 그림과 같이 극대 수직 방향 코딩 유닛에서 제 1 변환을 수행한 후에, 좌상단 (4kN)x(kN) 서브 블록에서만 제 2 변환을 수행할 수도 있다.
제 1 변환이 적용된 잔차 영상을 제 1 변환 잔차 영상이라고 정의한다.
제 1 변환 잔차 영상에 DCT 또는 DST 또는 2차원 영상 변환을 적용할 수 있으며, 이 때 사용된 변환을 제 2 변환이라고 정의한다. 제 2 변환이 적용된 2차원 영상을 제 2 변환 잔차 영상이라고 정의한다.
제 1 변환 및/또는 제 2 변환을 수행한 후의 블록 내 샘플 값을 변환 계수라고 정의한다. 양자화는 블록의 에너지를 줄이기 위해 변환 계수를 기 정의된 값으로 나누는 과정을 말한다. 변환 계수에 양자화를 적용하기 위해 정의된 값을 양자화 파라미터라고 정의한다.
시퀀스 단위 또는 블록 단위로 기 정의된 양자화 파라미터를 적용할 수 있다. 통상적으로 1에서 51 사이의 값으로 양자화 파라미터를 정의할 수 있다.
변환 및 양자화를 수행한 후에, 역양자화 및 역변환을 수행하여 잔차 복원 영상을 생성할 수 있다. 잔차 복원 영상에 예측 영상을 더해서 제 1 복원 영상을 생성할 수 있다.
복호화 장치는, 전술한 부호화 장치에서의 변환 및 양자화 과정을 역으로 수행하여 잔차 영상을 복원할 수 있다. 상기 변환이 제1 변환과 제2 변환을 포함하는 경우, 복호화 장치는 시그날링된 변환 블록의 잔차 계수에 대해 역양자화를 수행하고, 변환 블록에 제2 변환 및 제1 변환을 순차적으로 수행할 수 있다. 여기서, 제2 변환은, 변환 블록 내 일부 영역에 대해서만 적용되고, 일부 영역은 좌상단, 좌측 또는 상단 서브 영역을 의미할 수 있다.
도 28 및 도 29는 본 발명이 적용되는 일실시예로서, 복원 영상에 인루프 필터를 적용하는 방법을 도시한 것이다.
인루프 필터링(In-loop filtering)은 양자화 및 부호화 과정에서 발생하는 정보의 손실을 줄이기 위해 복호화 된 영상에 적응적으로 필터링을 수행하는 기술이다. 디블록킹 필터(Deblocking filter), 샘플 적응적 오프셋 필터(sample adaptive offset filter, SAO), 적응적 루프 필터(adaptive loop filter, ALF)는 인루프 필터링의 한 예이다.
제 1 복원 영상에 디블록킹 필터, 샘플 적응적 오프셋(Sample Adaptive Offset, SAO) 또는 적응적 루프 필터(adaptive loop filter, ALF) 중 적어도 어느 하나를 수행하여 제 2 복원 영상을 생성할 수 있다.
복원 영상에 디블록킹 필터를 적용한 후, SAO 및 ALF를 적용할 수 있다.
비디오 부호화 과정에서 블록 단위로 변환과 양자화를 수행한다. 양자화 과정에서 발생한 손실이 발생하고, 이를 복원한 영상의 경계에서는 불연속이 발생한다. 블록 경계에 나타난 불연속 영상을 블록 화질 열화(blocking artifact)라고 정의한다.
Deblocking filter는 제 1 영상의 블록 경계에서 발생하는 블록 화질 열화(blocking artifact)를 완화시키고, 부호화 성능을 높여주는 방법이다.
블록 경계에서 필터링을 수행하여 블록 화질 열화를 완화 시킬수 있으며, 도 28과 같이 블록이 인트라 예측 모드로 부호화 되었는지 여부, 또는 이웃한 블록의 모션 벡터 절대값의 차이가 기 정의된 소정의 문턱값 보다 큰지 여부, 이웃한 블록의 참조 픽쳐가 서로 동일한 지 여부 중 적어도 어느 하나에 기초하여 블록 필터 강도 (blocking strength, 이하 BS) 값을 결정할 수 있다. BS 값이 0이면 필터링을 수행하지 않으며, BS 값이 1 또는 2인 경우에 블록 경계에서 필터링을 수행할 수 있다.
주파수 영역에서 양자화를 수행하기 때문에, 물체 가장 자리에 링이 현상 (ringing artifact)를 발생시키거나, 화소 값이 원본에 비해 일정한 값만큼 커지거나 작아지게 된다. SAO는 제 1 복원 영상의 패턴을 고려하여 블록 단위로 특정 오프셋을 더하거나 빼는 방법으로 링잉 현상을 효과적으로 줄일 수 있다. SAO는 복원 영상의 특징에 따라 에지 오프셋(Edge offset, 이하 EO)과 밴드 오프셋(Band offset, BO)으로 구성된다. 에지 오프셋은 주변 화소 샘플 패턴에 따라 현재 샘플에 오프셋을 다르게 더해주는 방법이다. 밴드 오프셋은 영역 안의 비슷한 화소 밝기 값을 가진 화소 집합에 대해 일정 값을 더해 부호화 오류를 줄이는 것이다. 화소 밝기를 32개의 균일한 밴드로 나눠 비슷한 밝기 값을 가지는 화소를 하나의 집합이 되도록 할 수 있다. 예를 들어, 인접한 4개의 밴드를 하나의 범주로 묶을 수 있다. 하나의 범주에서는 동일한 오프셋 값을 사용하도록 설정할 수 있다.
ALF (Adaptive Loop Filter)는 수학식 25와 같이 제 1 복원 영상 또는 제 1 복원 영상에 deblocking filtering을 수행한 복원 영상에 기 정의된 필터 중 어느 하나를 사용하여 제 2 복원 영상을 생성하는 방법이다.
Figure pat00025
이 때, 필터는 픽쳐 단위 또는 CTU 단위로 선택할 수 있다.
Luma 성분에서는 도 29와 같이 5x5, 7x7 또는 9x9 다이아몬드 형태 중 어느 하나를 선택할 수 있다. Chroma 성분에서는 5x5 다이아몬드 형태만 사용할 수 있도록 제한할 수도 있다.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.

Claims (13)

  1. 기-정의된 예측 모드를 기반으로, 현재 블록의 예측 블록을 생성하는 단계;
    소정의 변환을 통해, 상기 현재 블록의 변환 블록을 생성하는 단계; 및
    상기 예측 블록과 상기 변환 블록을 기반으로, 상기 현재 블록을 복원하는 단계를 포함하되,
    상기 예측 블록을 생성하는 단계는,
    상기 현재 블록의 인트라 레퍼런스 라인을 결정하는 단계;
    소정의 후보 그룹으로부터 상기 현재 블록의 인트라 예측 모드를 결정하는 단계; 및
    상기 결정된 인트라 레퍼런스 라인과 상기 인트라 예측 모드를 기반으로, 상기 현재 블록의 인트라 예측을 수행하는 단계를 포함하는, 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 후보 그룹은, 제1 후보 그룹과 제2 후보 그룹으로 구분되고,
    상기 제1 후보 그룹은, 복호화 장치에 기-정의된 디폴트 모드로 구성되고,
    상기 제2 후보 그룹은, 복수의 MPM 후보로 구성되는, 영상 복호화 방법.
  3. 제2항에 있어서,
    상기 현재 블록의 인트라 예측 모드는, 상기 제1 후보 그룹 또는 상기 제2 후보 그룹 중 어느 하나를 선택적으로 이용하여 유도되는, 영상 복호화 방법.
  4. 제2항에 있어서,
    상기 디폴트 모드는, Planar 모드, DC 모드, 수직 모드, 수평 모드, 수직 모드 또는 대각 모드 중 적어도 하나인, 영상 복호화 방법.
  5. 제2항에 있어서,
    상기 복수의 MPM 후보는, 주변 블록의 인트라 예측 모드(candIntraPredMode), candIntraPredMode-n, candIntraPredMode+n 중 적어도 하나를 포함하고,
    n은 1, 2, 또는 그 이상의 자연수를 의미하는, 영상 복호화 방법.
  6. 제2항에 있어서,
    상기 복수의 MPM 후보는, DC 모드, 수직 모드, 수평 모드, (수직 모드-m), (수직 모드+m), (수평 모드-m) 또는 (수평 모드+m) 중 적어도 하나를 포함하고,
    m은 1, 2, 3, 4 또는 그 이상의 자연수인, 영상 복호화 방법.
  7. 제1항에 있어서,
    상기 결정된 인트라 예측 모드는, 소정의 오프셋을 가산 또는 감산하여 변경되고,
    상기 오프셋의 적용은, 상기 현재 블록의 크기, 형태, 분할 정보, 인트라 예측 모드의 값 또는 성분 타입 중 적어도 하나에 기초하여 선택적으로 수행되는, 영상 복호화 방법.
  8. 제1항에 있어서, 상기 인트라 예측을 수행하는 단계는,
    수직선 또는 수평선을 이용하여, 상기 현재 블록을 복수의 서브 블록으로 분할하는 단계; 및
    상기 서브 블록의 단위로, 순차적으로 인트라 예측을 수행하는 단계를 포함하고,
    상기 현재 블록에 속한 서브 블록의 개수는, 상기 현재 블록의 크기 또는 형태 중 적어도 하나에 기초하여 가변적으로 결정되는, 영상 복호화 방법.
  9. 제1항에 있어서, 상기 인트라 예측을 수행하는 단계는,
    소정의 참조 샘플과 가중치를 기반으로, 상기 인트라 예측에 따른 예측값을 보정하는 단계를 포함하는, 영상 복호화 방법.
  10. 제9항에 있어서,
    상기 참조 샘플과 가중치 각각은, 상기 현재 블록의 크기, 보정 대상인 현재 샘플의 위치 또는 상기 현재 블록의 인트라 예측 모드 중 적어도 하나에 기초하여 결정되는, 영상 복호화 방법.
  11. 제1항에 있어서,
    상기 변환은, DCT-2, DST-7 또는 DCT-8 중 적어도 하나를 선택적으로 이용하여 수행되는, 영상 복호화 방법.
  12. 현재 블록의 인트라 레퍼런스 라인을 결정하는 단계;
    소정의 후보 그룹으로부터 상기 현재 블록의 인트라 예측 모드를 결정하는 단계; 및
    상기 결정된 인트라 레퍼런스 라인과 상기 인트라 예측 모드를 기반으로, 상기 현재 블록의 인트라 예측을 수행하는 단계를 포함하되,
    상기 후보 그룹은, 제1 후보 그룹과 제2 후보 그룹으로 구분되고,
    상기 제1 후보 그룹은, 복호화 장치에 기-정의된 디폴트 모드로 구성되고, 상기 제2 후보 그룹은, 복수의 MPM 후보로 구성되며,
    상기 디폴트 모드는, Planar 모드, DC 모드, 수직 모드, 수평 모드, 수직 모드 또는 대각 모드 중 적어도 하나이고,
    상기 복수의 MPM 후보는, 상기 현재 블록에 인접한 주변 블록의 인트라 예측 모드에 기초하여 결정되는, 영상 부호화 방법.
  13. 비디오 비트스트림을 저장하기 위한 디지털 저장 매체에 있어서,
    상기 비디오 비트스트림은,
    현재 블록의 인트라 예측 모드를 결정하기 위한 제1 후보 그룹 또는 제2 후보 그룹 중 어느 하나를 특정하는 정보를 포함하고,
    상기 제1 후보 그룹은 기-정의된 디폴트 모드로 구성되고, 상기 제2 후보 그룹은 복수의 MPM 후보로 구성되며,
    상기 디폴트 모드는, Planar 모드, DC 모드, 수직 모드, 수평 모드, 수직 모드 또는 대각 모드 중 적어도 하나이고,
    상기 복수의 MPM 후보는, 상기 현재 블록에 인접한 주변 블록의 인트라 예측 모드에 기초하여 결정되는, 디지털 저장 매체.
KR1020190125883A 2018-10-12 2019-10-11 영상 부호화/복호화 방법 및 장치 KR20200041801A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020180121738 2018-10-12
KR20180121738 2018-10-12
KR1020190027607 2019-03-11
KR20190027607 2019-03-11

Publications (1)

Publication Number Publication Date
KR20200041801A true KR20200041801A (ko) 2020-04-22

Family

ID=70165083

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190125883A KR20200041801A (ko) 2018-10-12 2019-10-11 영상 부호화/복호화 방법 및 장치

Country Status (4)

Country Link
US (3) US11516507B2 (ko)
KR (1) KR20200041801A (ko)
CN (4) CN118214860A (ko)
WO (1) WO2020076116A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023022389A1 (ko) * 2021-08-19 2023-02-23 현대자동차주식회사 직사각형이 아닌 블록 분할 구조를 이용하는 비디오 코딩방법 및 장치
WO2023128489A1 (ko) * 2021-12-28 2023-07-06 주식회사 케이티 영상 부호화/복호화 방법 및 장치

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020084475A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Utilization of refined motion vector
CN111436230A (zh) 2018-11-12 2020-07-21 北京字节跳动网络技术有限公司 仿射预测的带宽控制方法
EP3861742A4 (en) 2018-11-20 2022-04-13 Beijing Bytedance Network Technology Co., Ltd. DIFFERENCE CALCULATION BASED ON SPATIAL POSITION
WO2020111982A1 (en) * 2018-11-26 2020-06-04 Huawei Technologies Co., Ltd. Method of intra predicting a block of a picture
US11546632B2 (en) 2018-12-19 2023-01-03 Lg Electronics Inc. Method and device for processing video signal by using intra-prediction
JP2022521554A (ja) 2019-03-06 2022-04-08 北京字節跳動網絡技術有限公司 変換された片予測候補の利用
WO2020184566A1 (ja) * 2019-03-11 2020-09-17 日本放送協会 画像符号化装置、画像復号装置、及びプログラム
KR20210126765A (ko) * 2019-03-23 2021-10-20 엘지전자 주식회사 영상 코딩 시스템에서의 인트라 예측 기반 영상 코딩
WO2020256466A1 (ko) * 2019-06-19 2020-12-24 한국전자통신연구원 화면 내 예측 모드 및 엔트로피 부호화/복호화 방법 및 장치
KR20220038690A (ko) 2019-08-14 2022-03-29 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인트라 모드에서 예측 샘플 필터링을 위한 가중 인자들
CN114223200B (zh) * 2019-08-14 2023-11-17 北京字节跳动网络技术有限公司 位置相关帧内预测样点滤波
US11582460B2 (en) * 2021-01-13 2023-02-14 Lemon Inc. Techniques for decoding or coding images based on multiple intra-prediction modes

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2840587C (en) * 2011-06-28 2017-06-20 Samsung Electronics Co., Ltd. Method and apparatus for coding video and method and apparatus for decoding video, accompanied with intra prediction
CN104935943B (zh) * 2011-10-24 2018-05-25 英孚布瑞智有限私人贸易公司 对帧内预测模式进行解码的方法
EP3780623A1 (en) * 2011-10-24 2021-02-17 Innotive Ltd Method and apparatus for image decoding
KR20130049525A (ko) * 2011-11-04 2013-05-14 오수미 잔차 블록 복원을 위한 역변환 방법
CN115134591A (zh) * 2015-06-05 2022-09-30 杜比实验室特许公司 图像编解码方法、比特流存储方法
KR20180059482A (ko) * 2015-10-22 2018-06-04 엘지전자 주식회사 비디오 코딩 시스템에서 인트라 예측 방법 및 장치
US10200719B2 (en) * 2015-11-25 2019-02-05 Qualcomm Incorporated Modification of transform coefficients for non-square transform units in video coding
ES2688624R1 (es) 2016-04-06 2018-12-04 Kt Corporation Método y aparato para procesar señales de vídeo
US10547854B2 (en) 2016-05-13 2020-01-28 Qualcomm Incorporated Neighbor based signaling of intra prediction modes
KR20180040319A (ko) 2016-10-12 2018-04-20 가온미디어 주식회사 영상 처리 방법, 그를 이용한 영상 복호화 및 부호화 방법
CN110089115B (zh) * 2016-08-26 2021-07-06 夏普株式会社 图像解码装置、图像编码装置
KR20180043149A (ko) * 2016-10-19 2018-04-27 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
US10986351B2 (en) * 2017-07-03 2021-04-20 Iucf-Hyu (Industry-University Cooperation Foundation Hanyang University) Method and device for decoding image by using partition unit including additional region

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023022389A1 (ko) * 2021-08-19 2023-02-23 현대자동차주식회사 직사각형이 아닌 블록 분할 구조를 이용하는 비디오 코딩방법 및 장치
WO2023128489A1 (ko) * 2021-12-28 2023-07-06 주식회사 케이티 영상 부호화/복호화 방법 및 장치

Also Published As

Publication number Publication date
US11917199B2 (en) 2024-02-27
CN118214859A (zh) 2024-06-18
CN112823513A (zh) 2021-05-18
CN118214860A (zh) 2024-06-18
CN118214861A (zh) 2024-06-18
US11516507B2 (en) 2022-11-29
WO2020076116A1 (ko) 2020-04-16
US20230109828A1 (en) 2023-04-13
US20240163474A1 (en) 2024-05-16
CN112823513B (zh) 2024-05-28
US20210392371A1 (en) 2021-12-16

Similar Documents

Publication Publication Date Title
KR20200041801A (ko) 영상 부호화/복호화 방법 및 장치
KR20200041810A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20200063092A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR102597461B1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20200115322A (ko) 영상 부호화/복호화 방법 및 장치
KR20200084306A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20200104252A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20210077625A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20200081327A (ko) 영상 부/복호화 방법 및 장치
KR20210042257A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20200081328A (ko) 영상 부/복호화 방법 및 장치
KR20210123950A (ko) 비디오 신호 처리 방법 및 장치
KR20210085404A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20210082877A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20210082876A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
KR20230063322A (ko) 영상 신호 부호화/복호화 방법 및 이를 기초로 생성된 비트스트림을 저장하는 기록 매체
KR20210122524A (ko) 비디오 신호 처리 방법 및 장치
KR20210103763A (ko) 비디오 신호 처리 방법 및 장치
KR20210118541A (ko) 비디오 신호 처리 방법 및 장치
KR20230063314A (ko) 영상 신호 부호화/복호화 방법 및 이를 기초로 생성된 비트스트림을 저장하는 기록 매체
KR20210111602A (ko) 비디오 신호 처리 방법 및 장치
KR20210121528A (ko) 비디오 신호 처리 방법 및 장치
KR20210121484A (ko) 비디오 신호 처리 방법 및 장치
KR20220134476A (ko) 영상 신호 부호화/복호화 방법 및 이를 기초로 생성된 비트스트림을 저장하는 기록 매체
KR20210108834A (ko) 비디오 신호 처리 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination