KR20210129729A - 인트라-예측을 위한 방법 및 장치 - Google Patents

인트라-예측을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20210129729A
KR20210129729A KR1020217033168A KR20217033168A KR20210129729A KR 20210129729 A KR20210129729 A KR 20210129729A KR 1020217033168 A KR1020217033168 A KR 1020217033168A KR 20217033168 A KR20217033168 A KR 20217033168A KR 20210129729 A KR20210129729 A KR 20210129729A
Authority
KR
South Korea
Prior art keywords
prediction
reference line
samples
block
intra prediction
Prior art date
Application number
KR1020217033168A
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 KR20210129729A publication Critical patent/KR20210129729A/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

DC 인트라 예측 모드의 인트라 예측을 위한 디바이스들 및 방법들이 제공된다. 방법은, 변환 블록의 인트라 예측 참조 라인 인덱스(intra prediction reference line index)의 값을 획득하는 단계; 참조 라인으로부터의 참조 샘플들에 기반하여 상기 변환 블록의 예측 샘플들을 획득하는 단계를 포함한다. 참조 라인은 인트라 예측 참조 라인 인덱스의 값에 의해 인덱싱된다. 방법은 MRL 및 비-방향성 인트라 예측(즉, DC)의 조화(harmonization)를 도입한다. 조화는, 참조 라인으로부터의 참조 샘플들을 정렬하는 것으로 구성되며, 참조 라인은 인트라 예측 참조 라인 인덱스의 값에 의해 인덱싱된다.

Description

인트라-예측을 위한 방법 및 장치
본 특허 출원은, 2019년 3월 21일자로 출원된 미국 가특허 출원 제62/822,047호뿐만 아니라, 2019년 4월11일자로 출원된 미국 가특허 출원 제62/832,878호를 우선권으로 주장한다. 이로써, 전술된 특허 출원들의 개개의 개시내용들은 그 전체가 인용에 의해 본원에 포함된다.
본 출원(개시내용)의 실시예들은 일반적으로 픽처(picture) 프로세싱 분야에 관한 것으로, 더 구체적으로는 인트라-예측에 관한 것으로, 특히 인트라-서브파티션(intra-subpartition) 또는 다중-참조 라인 인트라-예측(multi-reference line intra-prediction)에서 사용되는 평면 또는 DC 모드를 위한 방법 및 장치에 관한 것이다.
비디오 코딩(비디오 인코딩 및 디코딩)은, 광범위한 디지털 비디오 애플리케이션들, 예컨대 브로드캐스트 디지털 TV, 인터넷 및 모바일 네트워크들을 통한 비디오 전송, 실시간 대화 애플리케이션들, 이를테면 비디오 채팅(video chat), 화상 회의, DVD 및 블루-레이 디스크(ray disc)들, 비디오 콘텐츠 획득 및 편집 시스템들, 및 보안 애플리케이션들의 캠코더들에 사용된다.
비교적 짧은 비디오라도 묘사하는 데 필요한 비디오 데이터의 양은 상당할 수 있으며, 이는, 데이터가 제한된 대역폭 용량을 갖는 통신 네트워크에 걸쳐 스트리밍되거나 아니면 통신될 때 어려움들을 초래할 수 있다. 따라서, 비디오 데이터는 일반적으로, 현대의 원격통신 네트워크(telecommunications network)들에 걸쳐 통신되기 전에 압축된다. 메모리 자원들이 제한될 수 있기 때문에 비디오가 저장 디바이스에 저장될 때 비디오의 크기가 또한 문제(issue)가 될 수 있다. 비디오 압축 디바이스들은 종종, 소스에서 소프트웨어 및/또는 하드웨어를 사용하여, 전송 또는 저장 전에 비디오 데이터를 코딩함으로써, 디지털 비디오 이미지들을 표현하는 데 필요한 데이터의 수량을 감소시킨다. 그런 다음, 압축된 데이터는, 비디오 데이터를 디코딩하는 비디오 압축해제(decompression) 디바이스에 의해 목적지에서 수신된다. 제한된 네트워크 자원들 및 더 높은 비디오 품질의 요구들이 계속 증가함에 따라, 픽처 품질의 희생이 거의 또는 전혀 없이 압축 비율을 개선하는 개선된 압축 및 압축해제 기법들이 바람직하다.
본 출원의 실시예들은 독립항들에 따른 인코딩 및 디코딩을 위한 장치들 및 방법들을 제공한다.
전술한 및 다른 목적들이 독립항들의 청구 대상에 의해 달성된다. 추가 구현 형태들은 종속항들, 상세한 설명 및 도면들로부터 명백하다.
본 개시내용은 비디오 인코딩 및 디코딩을 위한 시스템들 및 기법들을 설명하고, 구체적으로는 평면 또는 DC 모드를 사용하는 인트라 예측을 위한 방법 및 장치를 설명한다.
일반적으로, 하나의 혁신적인 양상에서, 방법은,
-ISP 또는 다중-참조 라인 예측을 포함하는 인트라 예측 툴(tool)들의 조합에 기반한 참조 샘플 샘플 필터의 선택
- 블록의 인트라 예측
- 인트라 예측의 결과에 PDPC의 조건적 적용을 포함한다.
본 개시내용은 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법을 제공하며, 방법은,
변환 블록의 인트라 예측 참조 라인 인덱스(intra prediction reference line index)의 값을 획득하는 단계;
참조 라인으로부터의 참조 샘플들에 기반하여 변환 블록의 예측 샘플들을 획득하는 단계를 포함하며, 참조 라인은 인트라 예측 참조 라인 인덱스의 값에 의해 인덱싱된다.
본 출원에서 참조 라인은 참조 샘플들의 행(row)뿐만 아니라 참조 샘플들의 열(column)을 포함한다. 참조 샘플들의 행은 참조 라인의 예이다. 참조 샘플들의 열은 참조 라인의 다른 예이다.
선행 기술의 비디오 코딩(예컨대, 다용도 비디오 코딩(Versatile Video Coding))은, VVC 사양 초안에 후보 인트라 예측 모드(candModeList)로서 또한 알려진 가장 가능성있는 모드(MPM: most probable mode) 리스트의 개념을 사용하여 시그널링되는, 방향성, DC 및 평면 인트라 예측 모드들을 포함한다. MRL이 사용 중(참조 라인 인덱스가 0이 아님)인 경우, DC 및 평면 인트라 예측 모드들이 선택된 참조 라인 내에서 상이한 포지션들의 참조 샘플들을 사용하는 것이 발생할 수 있다. 본 개시내용은 MRL 및 비-방향성 인트라 예측의 조화(harmonization)를 도입한다. 조화는 참조 샘플 세트들을 변환 블록의 상부-좌측(top-left) 샘플의 포지션과 정렬시키는 것으로 구성된다.
본 발명에 대한 근거들 중 하나는 DC 및 평면 모드 둘 다가 MPM 리스트에 표현될 수 있도록 하는 가장 가능성있는 모드(MPM; MOST PROBABLE MODE) 리스트 유도의 통합이다. 이러한 통합은, 하드웨어 및 소프트웨어 구현들 둘 모두에 유익한 조건적 분기부들의 총 수를 감소시킴으로써 MPM에서 시그널링된 모드들의 프로세싱을 더 규칙적으로 만든다.
앞서 설명된 바와 같은 방법에서, 변환 블록의 폭이 변환 블록의 높이보다 더 큰 경우, 상부 참조 라인으로부터의 참조 샘플들만이 예측 샘플들을 획득하는 데 사용될 수 있다.
앞서 설명된 바와 같은 방법에서, 변환 블록의 높이가 변환 블록의 폭보다 더 큰 경우, 좌측 참조 라인으로부터의 참조 샘플들만이 예측 샘플들을 획득하는 데 사용될 수 있다.
앞서 설명된 바와 같은 방법에서, 변환 블록의 높이가 변환 블록의 폭과 동일한 경우, 좌측 참조 라인으로부터의 참조 샘플들과 상부 참조 라인으로부터의 참조 샘플들 둘 다가 예측 샘플들을 획득하는 데 사용될 수 있다.
앞서 설명된 바와 같은 방법에서, 인트라 예측 참조 라인 인덱스의 값은 intra_luma_ref_idx에 의해 지시될 수 있다.
앞서 설명된 바와 같은 방법에서, 인트라 예측 참조 라인 인덱스의 값을 획득하는 단계는,
다중-참조 라인(MRL) 예측이 인에이블링(enable)되는지 여부를 결정하는 단계;
MRL 예측이 인에이블링되는 경우, 인트라 예측 참조 라인 인덱스의 값을 획득하는 단계를 포함한다.
앞서 설명된 바와 같은 방법에서, 방법은,
인트라 예측 참조 라인 인덱스의 값이 0인 경우, PDPC를 예측 샘플들에 적용하는 단계; 또는
인트라 예측 참조 라인 인덱스의 값이 0이 아닌 경우, PDPC를 예측 샘플들에 적용하는 것을 스킵(skip)하는 단계를 더 포함할 수 있다.
앞서 설명된 바와 같은 방법에서, 인트라 예측 참조 라인 인덱스의 값은 0, 1 또는 2일 수 있다.
앞서 설명된 바와 같은 방법에서, 참조 샘플들의 수는 변환 블록의 폭에 대응할 수 있다.
앞서 설명된 바와 같은 방법에서, 참조 샘플들의 수는 변환 블록의 높이에 대응할 수 있다.
앞서 설명된 바와 같은 방법에서, 참조 샘플들은 참조 라인 내에서 연속적인 간격 또는 연속적인 거리를 형성할 수 있다.
앞서 설명된 바와 같은 방법에서, 참조 샘플들은 수평 인덱스 또는 수직 인덱스를 특정함으로써 결정될 수 있고, 인덱스들 각각은 정수 값들의 범위에 속하는 정수 값이고, 그리고 인덱스들은 각각 참조 라인 내에서 수평 좌표(x') 또는 수직 좌표(y')를 특정할 수 있다.
앞서 설명된 바와 같은 방법에서, 오프셋은, 변환 블록의 참조 샘플들의 좌측 열의 상부-좌측 예측 샘플의 수직 포지션과 최좌측(left-most) 참조 샘플의 수직 인덱스 간의 차이일 수 있다.
앞서 설명된 바와 같은 방법에서, 오프셋은, 변환 블록의 참조 샘플들의 상부 행의 상부-좌측 예측 샘플의 수평 포지션과 최상부(top-most) 참조 샘플의 수평 인덱스 간의 차이일 수 있다.
앞서 설명된 바와 같은 방법에서, 참조 라인의 최상부 참조 샘플은 변환 블록의 상부-좌측 예측 샘플의 포지션에 대해 수직으로 오프셋될 수 있다.
앞서 설명된 바와 같은 방법에서, 참조 라인의 최좌측 참조 샘플은 변환 블록의 상부-좌측 예측 샘플의 포지션에 대해 수평으로 오프셋될 수 있다.
앞서 설명된 바와 같은 방법에서, 오프셋의 값은 인트라 예측 참조 라인 인덱스의 값과 동일할 수 있다.
앞서 설명된 바와 같은 방법에서, 참조 라인의 최상부 참조 샘플의 수직 포지션은 변환 블록의 상부-좌측 예측 샘플의 수직 포지션과 동일할 수 있다.
앞서 설명된 바와 같은 방법에서, 참조 라인의 최좌측 참조 샘플의 수평 포지션은 변환 블록의 상부-좌측 예측 샘플의 수평 포지션과 동일할 수 있다.
본 개시내용은 추가로 디코더를 제공하며, 디코더는, 하나 이상의 프로세서들; 및 프로세서들에 커플링되고 프로세서들에 의한 실행을 위한 프로그래밍을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체를 포함하며, 프로그래밍은, 프로세서들에 의해 실행될 때, 앞서 설명된 바와 같은 방법을 수행하도록 디코더를 구성한다.
본 개시내용은 추가로 인코더를 제공하며, 인코더는, 하나 이상의 프로세서들; 및 프로세서들에 커플링되고 프로세서들에 의한 실행을 위한 프로그래밍을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체를 포함하며, 프로그래밍은, 프로세서들에 의해 실행될 때, 앞서 설명된 바와 같은 방법을 수행하도록 인코더를 구성한다.
본 개시내용은 추가로, 위에서 설명된 바와 같은 방법을 수행하기 위한 프로세싱 회로부를 포함하는 인코더를 제공한다.
본 개시내용은 추가로, 앞서 설명된 바와 같은 방법을 수행하기 위한 프로세싱 회로부를 포함하는 디코더를 제공한다.
본 개시내용은 추가로, 앞서 설명된 바와 같은 방법을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품을 제공한다.
본 개시내용은 추가로 프로그램 코드를 보유하는 비-일시적 컴퓨터-판독가능 매체를 제공하며, 프로그램 코드는, 컴퓨터 디바이스에 의해 실행될 때, 컴퓨터 디바이스로 하여금 앞서 설명된 바와 같은 방법을 수행하게 한다.
본 개시내용은 추가로 인코더를 제공한다. 인코더는 획득 유닛 및 예측 유닛을 포함한다. 획득 유닛은, 변환 블록의 인트라 예측 참조 라인 인덱스의 값을 획득하도록 구성된다. 예측 유닛은, 참조 라인으로부터의 참조 샘플들에 기반하여 변환 블록의 예측 샘플들을 획득하도록 구성되며, 참조 라인은 인트라 예측 참조 라인 인덱스의 값에 의해 인덱싱된다.
본 개시내용은 추가로 디코더를 제공한다. 디코더는 획득 유닛 및 예측 유닛을 포함한다. 획득 유닛은, 변환 블록의 인트라 예측 참조 라인 인덱스의 값을 획득하도록 구성된다. 예측 유닛은, 참조 라인으로부터의 참조 샘플들에 기반하여 변환 블록의 예측 샘플들을 획득하도록 구성되며, 참조 라인은 인트라 예측 참조 라인 인덱스의 값에 의해 인덱싱된다.
앞서 설명된 바와 같은 디코더에서, 변환 블록의 폭이 변환 블록의 높이보다 더 큰 경우, 상부 참조 라인으로부터의 참조 샘플들만이 예측 샘플들을 획득하는 데 사용될 수 있다.
앞서 설명된 바와 같은 디코더에서, 변환 블록의 높이가 변환 블록의 폭보다 더 큰 경우, 좌측 참조 라인으로부터의 참조 샘플들만이 예측 샘플들을 획득하는 데 사용될 수 있다.
앞서 설명된 바와 같은 디코더에서, 변환 블록의 높이가 변환 블록의 폭과 동일한 경우, 좌측 참조 라인으로부터의 참조 샘플들과 상부 참조 라인으로부터의 참조 샘플들 둘 다가 예측 샘플들을 획득하는 데 사용될 수 있다.
앞서 설명된 바와 같은 디코더에서, 인트라 예측 참조 라인 인덱스의 값은 intra_luma_ref_idx에 의해 지시될 수 있다.
앞서 설명된 바와 같은 디코더에서, 획득 유닛은 인트라 예측 참조 라인 인덱스의 값을 획득하도록 구성될 수 있으며, 획득하는 것은,
다중-참조 라인(MRL) 예측이 인에이블링(enable)되는지 여부를 결정하는 것;
MRL 예측이 인에이블링되는 경우 인트라 예측 참조 라인 인덱스의 값을 획득하는 것을 포함한다.
앞서 설명된 바와 같은 디코더는,
인트라 예측 참조 라인 인덱스의 값이 0인 경우, PDPC를 예측 샘플들에 적용하도록 구성된 적용 유닛; 또는
인트라 예측 참조 라인 인덱스의 값이 0이 아닌 경우, PDPC를 예측 샘플들에 적용하는 것을 스킵하도록 구성된 적용 유닛을 더 포함할 수 있다.
앞서 설명된 바와 같은 디코더에서, 인트라 예측 참조 라인 인덱스의 값은 0, 1 또는 2일 수 있다.
앞서 설명된 바와 같은 디코더에서, 참조 샘플들의 수는 변환 블록의 폭에 대응할 수 있다.
앞서 설명된 바와 같은 디코더에서, 참조 샘플들의 수는 변환 블록의 높이에 대응할 수 있다.
앞서 설명된 바와 같은 디코더에서, 참조 샘플들은 참조 라인 내에서 연속적인 간격 또는 연속적인 거리를 형성할 수 있다.
앞서 설명된 바와 같은 디코더에서, 참조 샘플들은 수평 인덱스 또는 수직 인덱스를 특정함으로써 결정될 수 있고, 인덱스들 각각은 정수 값들의 범위에 속하는 정수 값이고, 그리고 인덱스들은 각각 참조 라인 내에서 수평 좌표(x') 또는 수직 좌표(y')를 특정할 수 있다.
앞서 설명된 바와 같은 디코더에서, 오프셋은, 변환 블록의 참조 샘플들의 좌측 열의 상부-좌측 예측 샘플의 수직 포지션과 최좌측 참조 샘플의 수직 인덱스 간의 차이이다.
앞서 설명된 바와 같은 디코더에서, 오프셋은, 변환 블록의 참조 샘플들의 상부 행의 상부-좌측 예측 샘플의 수평 포지션과 최상부 참조 샘플의 수평 인덱스 간의 차이이다.
앞서 설명된 바와 같은 디코더에서, 참조 라인의 최상부 참조 샘플은 변환 블록의 상부-좌측 예측 샘플의 포지션에 대해 수직으로 오프셋될 수 있다.
앞서 설명된 바와 같은 디코더에서, 참조 라인의 최좌측 참조 샘플은 변환 블록의 상부-좌측 예측 샘플의 포지션에 대해 수평으로 오프셋될 수 있다.
앞서 설명된 바와 같은 디코더에서, 오프셋의 값은 인트라 예측 참조 라인 인덱스의 값과 동일할 수 있다.
앞서 설명된 바와 같은 디코더에서, 참조 라인의 최상부 참조 샘플의 수직 포지션은 변환 블록의 상부-좌측 예측 샘플의 수직 포지션과 동일할 수 있다.
앞서 설명된 바와 같은 디코더에서, 참조 라인의 최좌측 참조 샘플의 수평 포지션은 변환 블록의 상부-좌측 예측 샘플의 수평 포지션과 동일할 수 있다.
본 발명의 실시예들은 MRL 및 비-방향성 인트라 예측(즉, DC 또는 평면)의 조화를 도입한다. 조화는, 참조 라인으로부터의 참조 샘플들을 정렬하는 것으로 구성되며, 참조 라인은 인트라 예측 참조 라인 인덱스의 값에 의해 인덱싱된다.
하나 이상의 실시예들의 세부사항들은 첨부 도면들 및 아래의 설명에 제시된다. 다른 특징들, 목적들 및 이점들은 설명, 도면들 및 청구항들로부터 명백할 것이다.
하기에서, 본 발명의 실시예들은 첨부된 도해들 및 도면들을 참조하여 보다 상세하게 설명되며, 여기서:
도 1a는 본 발명의 실시예들을 구현하도록 구성된 비디오 코딩 시스템의 예를 도시하는 블록도이다.
도 1b는 본 발명의 실시예들을 구현하도록 구성된 비디오 코딩 시스템의 다른 예를 도시하는 블록도이다.
도 1c는 본 발명의 실시예들을 구현하도록 구성된 모바일 디바이스의 예를 도시하는 블록도이다.
도 2는 본 발명의 실시예들을 구현하도록 구성된 비디오 인코더의 예를 도시하는 블록도이다.
도 3은 본 발명의 실시예들을 구현하도록 구성된 비디오 디코더의 예시적인 구조를 도시하는 블록도이다.
도 4는 인코딩 장치 또는 디코딩 장치의 예를 예시하는 블록도이다.
도 5는 인코딩 장치 또는 디코딩 장치의 다른 예를 예시하는 블록도이다.
도 6은 ISP 툴에서 세분된(split) 2개의 서브파티션들의 예시이다.
도 7은 ISP 툴에서 세분된 4개의 서브파티션들의 예시이다.
도 8은 다중-참조 라인 인트라 예측의 예시이다.
도 9는 PLANAR 인트라 예측을 위한 참조 샘플 선택 방법을 예시한다
도 10은 PLANAR 인트라 예측 모드에 대한 다른 참조 샘플 선택 방법을 예시한다.
도 11은 PLANAR 인트라 예측 모드에 대한 또 다른 상이한 참조 샘플 선택 방법들을 예시한다.
도 12는 본 개시내용의 일 실시예에 따른 DC 인트라 예측을 위한 참조 샘플 선택 방법을 예시한다.
도 12a-도 12c는 본 개시내용의 실시예들에 따른 DC 인트라 예측 모드에 대한 추가적인 상이한 참조 샘플 선택 방법들을 예시한다.
도 13은 본 개시내용의 일 실시예에 따른 DC 인트라 예측 모드에 대한 또 다른 상이한 참조 샘플 선택 방법을 예시한다.
도 14는 본 개시내용의 일 실시예에 따른 방법을 예시한다.
도 15는 본 개시내용에 따른 인코더를 예시한다.
도 16은 본 개시내용에 따른 디코더를 예시한다.
도 17은 콘텐츠 전달 서비스를 실현하는 콘텐츠 공급 시스템(3100)의 예시적인 구조를 도시하는 블록도이다.
도 18은 단말 디바이스의 예의 구조를 도시하는 블록도이다.
하기에서, 동일한 참조 부호들은, 달리 명시적으로 지정되지 않는 한 동일한 또는 적어도 기능적으로 동등한 특징들을 지칭한다.
하기의 설명에서는, 본 개시내용의 일부를 형성하고 그리고 본 발명의 실시예들의 특정 양상들이나 본 발명의 실시예들이 사용될 수 있는 특정 양상을 예시로서 도시하는 첨부 도면이 참조된다. 본 발명의 실시예들은 다른 양상들에서 사용될 수 있고 도해들에 묘사되지 않은 구조적 또는 논리적 변경들을 포함할 수 있음이 이해된다. 따라서, 하기의 상세한 설명은 제한적인 의미로 취해지지 않을 것이며, 본 발명의 범위는 첨부된 청구항들에 의해 정의된다.
예컨대, 설명되는 방법과 관련한 본 개시내용은 방법을 수행하도록 구성된 대응하는 디바이스 또는 시스템에 대해서도 또한 사실을 유지할 수 있고 그 반대도 마찬가지라는 것이 이해된다. 예를 들어, 하나 또는 복수의 특정 방법 단계들이 설명되는 경우, 대응하는 디바이스는, 하나 이상의 유닛들이 도해들에 명시적으로 설명되거나 예시되지 않더라도, 설명된 하나 또는 복수의 방법 단계들을 수행하기 위한 하나 또는 복수의 유닛들, 예컨대 기능 유닛들(예를 들어, 하나 또는 복수의 단계들을 수행하는 하나의 유닛, 또는 복수의 단계들 중 하나 이상을 각각 수행하는 복수의 유닛들)을 포함할 수 있다. 한편, 예를 들면, 특정 장치가 하나 또는 복수의 유닛들(예를 들면, 기능 유닛들)을 기반으로 설명되는 경우, 대응하는 방법은, 하나 또는 복수의 단계들이 도해들에 명시적으로 설명되거나 예시되지 않더라도, 하나 또는 복수의 유닛들의 기능을 수행하기 위한 하나의 단계(예를 들어, 하나 또는 복수의 유닛들의 기능을 수행하는 하나의 단계, 또는 복수의 유닛들 중 하나 이상의 유닛들의 기능을 각각 수행하는 복수의 단계들)를 포함할 수 있다. 추가로, 구체적으로 달리 언급되지 않는 한, 본 명세서에서 설명되는 다양한 예시적인 실시예들 및/또는 양상들의 특징들이 서로 조합될 수 있는 것으로 이해된다.
비디오 코딩은 통상적으로, 비디오 또는 비디오 시퀀스를 형성하는 픽처들의 시퀀스의 프로세싱을 지칭한다. "픽처"라는 용어 대신에, "프레임" 또는 "이미지"라는 용어가 비디오 코딩 분야에서 동의어들로서 사용될 수 있다. 비디오 코딩(또는 일반적으로 코딩)은 비디오 인코딩 및 비디오 디코딩의 두 부분을 포함한다. 비디오 인코딩은 소스 측에서 수행되며, 통상적으로, (더 효율적인 저장 및/또는 전송을 위해) 비디오 픽처들을 표현하기 위해 요구되는 데이터의 양을 감소시키기 위해 오리지널 비디오 픽처들을 (예컨대, 압축에 의해) 프로세싱하는 것을 포함한다. 비디오 디코딩은 목적지 측에서 수행되며, 통상적으로 비디오 픽처들을 재구성하기 위해 인코더와 비교되는 역프로세싱(inverse processing)을 포함한다. 비디오 픽처들(또는 일반적으로 픽처들)의 "코딩"을 참조하는 실시예들은, 비디오 픽처들 또는 개개의 비디오 시퀀스들의 "인코딩" 또는 "디코딩"과 관련되는 것으로 이해될 것이다. 인코딩 부분과 디코딩 부분의 결합은 또한 CODEC(Coding and Decoding)으로 지칭된다.
무손실 비디오 코딩의 경우, 오리지널 비디오 픽처들이 재구성될 수 있는데, 즉, 재구성된 비디오 픽처들은 (저장 또는 전송 동안 어떠한 전송 손실도 또는 다른 데이터 손실도 없다고 가정하여) 오리지널 비디오 픽처들과 동일한 품질을 갖는다. 손실 비디오 코딩의 경우, 디코더에서 완전히 재구성될 수 없는 비디오 픽처들을 표현하는 데이터의 양을 감소시키기 위해, 예컨대 양자화(quantization)에 의한 추가의 압축이 수행되는데, 즉, 재구성된 비디오 픽처들의 품질은 오리지널 비디오 픽처들의 품질에 비해 더 낮거나 더 열악하다.
몇몇 비디오 코딩 표준들은 "손실 하이브리드 비디오 코덱들"의 그룹(즉, 변환 도메인에서 양자화를 적용하기 위한 2D 변환 코딩 및 샘플 도메인에서 공간적 및 시간적 예측을 결합)에 속한다. 비디오 시퀀스의 각각의 픽처는 통상적으로 한 세트의 비-중첩 블록들로 파티셔닝되고, 코딩은 통상적으로 블록 레벨에서 수행된다. 다시 말해서, 인코더에서, 비디오는 통상적으로, 예컨대, 예측 블록을 생성하기 위해 공간적(인트라 픽처) 예측 및/또는 시간적(인터 픽처) 예측을 사용하고, 잔차 블록(residual block)을 획득하기 위해 현재 블록(현재 프로세싱된/프로세싱될 블록)에서 예측 블록을 차감하고, 잔차 블록을 변환하고, 그리고 전송될 데이터의 양을 감소시키기 위해 변환 도메인에서 잔차 블록을 양자화(압축)함으로써, 블록(비디오 블록) 레벨에서 프로세싱, 즉 인코딩되는 반면, 디코더에서는, 표현을 위해 현재 블록을 재구성하기 위해, 인코더와 비교할 때 역프로세싱이 인코딩된 또는 압축된 블록에 적용된다. 또한, 인코더는 디코더 프로세싱 루프를 복제하며, 이로써 이 둘다가 후속 블록들을 프로세싱(즉, 코딩)하기 위한 동일한 예측들(예컨대, 인트라 예측 및 인터 예측) 및/또는 재구성들을 생성할 것이다.
비디오 코딩 시스템(10)의 다음의 실시예들에서, 비디오 인코더(20) 및 비디오 디코더(30)는 도 1 내지 도 3에 기반하여 설명된다.
도 1a는 예시적인 코딩 시스템(10), 예컨대, 본 출원의 기법들을 활용할 수 있는 비디오 코딩 시스템(10)(또는 줄여서 코딩 시스템(10))을 예시하는 개략적인 블록도이다. 비디오 코딩 시스템(10)의 비디오 인코더(20)(또는 줄여서 인코더(20)) 및 비디오 디코더(30)(또는 줄여서 디코더(30))는, 본 출원에서 설명된 다양한 예들에 따른 기법들을 수행하도록 구성될 수 있는 디바이스들의 예들을 표현한다.
도 1a에 도시된 바와 같이, 코딩 시스템(10)은, 인코딩된 픽처 데이터(21)를, 예컨대 인코딩된 픽처 데이터(13)를 디코딩하기 위한 목적지 디바이스(14)에 제공하도록 구성된 소스 디바이스(12)를 포함한다.
소스 디바이스(12)는 인코더(20)를 포함하고 그리고 부가적으로, 즉 선택적으로, 픽처 소스(16), 프리-프로세서(또는 프리-프로세싱 유닛)(18), 예컨대 픽처 프리-프로세서(18), 및 통신 인터페이스 또는 통신 유닛(22)을 포함할 수 있다.
픽처 소스(16)는 임의의 종류의 픽처 캡처 디바이스, 예컨대 실세계 픽처를 캡처하기 위한 카메라, 및/또는 임의의 종류의 픽처 생성 디바이스, 예컨대 애니메이팅된 픽처를 생성하기 위한 컴퓨터-그래픽 프로세서, 또는 실세계 픽처, 컴퓨터로 생성된 픽처(예컨대, 스크린 콘텐츠, 가상 현실(VR) 픽처)를 획득 및/또는 제공하기 위한 임의의 종류의 다른 디바이스, 및/또는 이들의 임의의 조합(예컨대, 증강 현실(AR) 픽처)일 수 있거나 또는 이를 포함할 수 있다. 픽처 소스는 전술된 픽처들 중 임의의 것을 저장하는 임의의 종류의 메모리 또는 저장소일 수 있다.
프리-프로세서(18) 및 프리-프로세싱 유닛(18)에 의해 수행되는 프로세싱과는 달리, 픽처 또는 픽처 데이터(17)는 또한 원시 픽처(raw picture) 또는 원시 픽처 데이터(17)로 지칭될 수 있다.
프리-프로세서(18)는, (원시) 픽처 데이터(17)를 수신하고 그리고 픽처 데이터(17)에 대해 프리-프로세싱을 수행하여 프리-프로세싱된 픽처(19) 또는 프리-프로세싱된 픽처 데이터(19)를 획득하도록 구성된다. 프리-프로세서(18)에 의해 수행되는 프리-프로세싱은, 예컨대 트리밍, 컬러 포맷 변환(예컨대, RGB에서 YCbCr로), 컬러 보정, 또는 잡음 제거(de-noising)를 포함할 수 있다. 프리-프로세싱 유닛(18)은 선택적 컴포넌트일 수 있다는 것이 이해될 수 있다.
비디오 인코더(20)는, 프리-프로세싱된 픽처 데이터(19)를 수신하고 그리고 인코딩된 픽처 데이터(21)를 제공하도록 구성된다(추가 세부사항들은, 예컨대, 도 2에 기반하여 아래에서 설명될 것이다). 소스 디바이스(12)의 통신 인터페이스(22)는, 인코딩된 픽처 데이터(21)를 수신하고 그리고 인코딩된 픽처 데이터(21)(또는 인코딩된 픽처 데이터(21)의 임의의 추가적인 프로세싱된 버전)를, 통신 채널(13)을 통해, 다른 디바이스(예컨대, 목적지 디바이스(14)) 또는 저장 또는 직접 재구성을 위한 임의의 다른 디바이스에 전송하도록 구성될 수 있다.
목적지 디바이스(14)는 디코더(30)(예컨대, 비디오 디코더(30))를 포함하고 그리고 부가적으로, 즉 선택적으로, 통신 인터페이스 또는 통신 유닛(28), 포스트-프로세서(32)(또는 포스트-프로세싱 유닛(32)) 및 디스플레이 디바이스(34)를 포함할 수 있다.
목적지 디바이스(14)의 통신 인터페이스(28)는, 예컨대, 소스 디바이스(12)로부터 또는 임의의 다른 소스, 예컨대 저장 디바이스, 예컨대, 인코딩된 픽처 데이터 저장 디바이스로부터 직접, 인코딩된 픽처 데이터(21)(또는 코딩된 픽처 데이터(21)의 임의의 추가 프로세싱된 버전)를 수신하고 그리고 인코딩된 픽처 데이터(21)를 디코더(30)에 제공하도록 구성된다.
통신 인터페이스(22) 및 통신 인터페이스(28)는, 소스 디바이스(12)와 목적지 디바이스(14) 사이의 직접 통신 링크(direct communication link), 예컨대 직접 유선 또는 무선 연결을 통해, 또는 임의의 종류의 네트워크, 예컨대 유선 또는 무선 네트워크 또는 이들의 임의의 조합, 또는 임의의 종류의 사설 및 공용 네트워크, 또는 임의의 종류의 이들의 조합을 통해, 인코딩된 픽처 데이터(21) 또는 인코딩된 데이터(13)를 전송하거나 수신하도록 구성될 수 있다.
통신 인터페이스(22)는, 예컨대, 인코딩된 픽처 데이터(21)를 적절한 포맷, 예컨대 패킷들로 패키징하고 그리고/또는 통신 링크 또는 통신 네트워크를 통한 전송을 위한 임의의 종류의 전송 인코딩 또는 프로세싱을 사용하여, 인코딩된 픽처 데이터를 프로세싱하도록 구성될 수 있다.
통신 인터페이스(22)의 대응부(counterpart)를 형성하는 통신 인터페이스(28)는, 예컨대, 전송된 데이터를 수신하고 그리고 임의의 종류의 대응하는 전송 디코딩 또는 프로세싱 및/또는 디-패키징(de-packaging)을 사용하여 전송 데이터를 프로세싱하여, 인코딩된 픽처 데이터(21)를 획득하도록 구성될 수 있다.
통신 인터페이스(22) 및 통신 인터페이스(28) 둘 모두는, 소스 디바이스(12)로부터 목적지 디바이스(14)를 가리키는, 도 1a의 통신 채널(13)에 대한 화살표로 지시된 바와 같이 단방향 통신 인터페이스(unidirectional communication interface)들, 또는 양방향 통신 인터페이스(bi-directional communication interface)들로서 구성될 수 있고, 그리고 메시지들을 송신 및 수신하고, 예컨대 연결을 설정(set up)하고, 통신 링크 및/또는 데이터 전송(예컨대, 인코딩된 픽처 데이터 전송)과 관련된 임의의 다른 정보를 확인응답(acknowledge) 및 교환하도록 구성될 수 있다.
디코더(30)는, 인코딩된 픽처 데이터(21)를 수신하고 그리고 디코딩된 픽처 데이터(31) 또는 디코딩된 픽처(31)를 제공하도록 구성된다(추가 세부사항들은, 예컨대, 도 3 또는 도 5에 기반하여 아래에서 설명될 것이다).
목적지 디바이스(14)의 포스트-프로세서(32)는 디코딩된 픽처 데이터(31)(또한 재구성된 픽처 데이터로 지칭됨), 예컨대 디코딩된 픽처(31)를 포스트-프로세싱하여, 포스트-프로세싱된 픽처 데이터(33), 예컨대 포스트-프로세싱된 픽처(33)를 획득하도록 구성된다. 포스트-프로세싱 유닛(32)에 의해 수행되는 포스트-프로세싱은, 예컨대 컬러 포맷 변환(예컨대, YCbCr에서 RGB로), 컬러 보정, 트리밍, 또는 리샘플링(re-sampling), 또는 예컨대, 예를 들어 디스플레이 디바이스(34)에 의한, 디스플레이를 위해 디코딩된 픽처 데이터(31)를 준비하기 위한 임의의 다른 프로세싱을 포함할 수 있다.
목적지 디바이스(14)의 디스플레이 디바이스(34)는, 예컨대 사용자 또는 뷰어(viewer)에게 픽처를 디스플레이하기 위한 포스트-프로세싱된 픽처 데이터(33)를 수신하도록 구성된다. 디스플레이 디바이스(34)는 재구성된 픽처를 표현하기 위한 임의의 종류의 디스플레이, 예컨대 통합된 또는 외부 디스플레이 또는 모니터일 수 있거나 또는 이를 포함할 수 있다. 디스플레이들은, 예컨대, 액정 디스플레이둘(LCD), 유기 발광 다이오드(OLED) 디스플레이들, 플라즈마 디스플레이들, 프로젝터들, 마이크로 LED 디스플레이들, 실리콘 액정(LCoS), 디지털 광 프로세서(DLP) 또는 임의의 종류의 다른 디스플레이를 포함할 수 있다.
도 1a가 소스 디바이스(12) 및 목적지 디바이스(14)를 별개의 디바이스들로서 묘사하지만, 디바이스들의 실시예들은 또한, 소스 디바이스(12)와 목적지 디바이스(14) 둘 모두, 또는 소스 디바이스(12)의 대응하는 기능과 목적지 디바이스(14)의 대응하는 기능 둘 모두를 포함할 수 있다. 그러한 실시예들에서, 소스 디바이스(12) 또는 대응하는 기능 및 목적지 디바이스(14) 또는 대응하는 기능은, 동일한 하드웨어 및/또는 소프트웨어를 사용하여 또는 별개의 하드웨어 및/또는 소프트웨어 또는 이들의 임의의 조합에 의해 구현될 수 있다.
설명에 기반하여 당업자에게 명백할 바와 같이, 도 1a에 도시된 바와 같은 소스 디바이스(12) 및/또는 목적지 디바이스(14) 내의 상이한 유닛들 또는 기능들의 존재 및 (정확한) 세분은 실제 디바이스 및 애플리케이션에 따라 달라질 수 있다.
인코더(20)(예컨대, 비디오 인코더(20)) 또는 디코더(30)(예컨대, 비디오 디코더(30)) 또는 인코더(20)와 디코더(30) 둘 모두는 도 1b에 도시된 바와 같은 프로세싱 회로부, 이를테면 하나 이상의 마이크로 프로세서들, 디지털 신호 프로세서들(DSP들), 주문형 집적 회로(ASIC들), 필드-프로그램가능 게이트 어레이들(FPGA들), 이산 로직, 하드웨어, 전용 비디오 코딩 또는 이들의 임의의 조합들을 통해 구현될 수 있다. 인코더(20)는, 도 2의 인코더(20) 및/또는 본원에 설명된 임의의 다른 인코더 시스템 또는 서브시스템과 관련하여 논의된 바와 같은 다양한 모듈들을 구체화하기 위해 프로세싱 회로부(46)를 통해 구현될 수 있다. 디코더(30)는, 도 3의 디코더(30) 및/또는 본원에 설명된 임의의 다른 디코더 시스템 또는 서브시스템과 관련하여 논의된 바와 같은 다양한 모듈들을 구체화하기 위해 프로세싱 회로부(46)를 통해 구현될 수 있다. 프로세싱 회로부는 나중에 논의되는 바와 같이 다양한 동작들을 수행하도록 구성될 수 있다. 도 5에 도시된 바와 같이, 기법들이 소프트웨어로 부분적으로 구현되는 경우, 디바이스는, 소프트웨어에 대한 명령들을 적절한 비-일시적 컴퓨터-판독가능 저장 매체에 저장할 수 있고, 본 개시내용의 기법들을 수행하기 위해 하나 이상의 프로세서들을 사용하여 명령들을 하드웨어에서 실행할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30) 중 어느 하나는, 예컨대,도 1b에 도시된 바와 같이, 단일 디바이스에서 결합된 인코더/디코더(CODEC)의 일부로서 통합될 수 있다.
소스 디바이스(12) 및 목적지 디바이스(14)는, 임의의 종류의 핸드헬드 또는 고정 디바이스들, 예컨대, 노트북 또는 랩톱 컴퓨터들, 모바일 폰들, 스마트 폰들, 태블릿들 또는 태블릿 컴퓨터들, 카메라들, 데스크톱 컴퓨터둘, 셋-톱 박스들, 텔레비전들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게임 콘솔들, 비디오 스트리밍 디바이스들(이를테면, 콘텐츠 서비스 서버들 또는 콘텐츠 전달 서버들), 브로드캐스트 수신기 디바이스, 브로드캐스트 전송기 디바이스 등을 포함하는, 광범위한 디바이스들 중 임의의 것을 포함할 수 있으며, 그리고 임의의 종류의 운영 시스템을 사용하거나 사용하지 않을 수 있다. 일부 경우들에서, 소스 디바이스(12) 및 목적지 디바이스(14)는 무선 통신을 위해 구비될 수 있다. 따라서, 소스 디바이스(12) 및 목적지 디바이스(14)는 무선 통신 디바이스들일 수 있다.
일부 경우들에서, 도 1a에 예시된 비디오 코딩 시스템(10)은 단지 예일 뿐이며, 본 출원의 기법들은, 인코딩 디바이스와 디코딩 디바이스 간의 임의의 데이터 통신을 반드시 포함하지는 않는 비디오 코딩 설정들(예컨대, 비디오 인코딩 또는 비디오 디코딩)에 적용될 수 있다. 다른 예들에서, 데이터는 로컬 메모리로부터 리트리브되거나, 네트워크를 통해 스트리밍되거나 하는 식으로 처리된다. 비디오 인코딩 디바이스는 데이터를 인코딩하여 메모리에 저장할 수 있고, 그리고/또는 비디오 디코딩 디바이스는 메모리로부터 데이터를 리트리브하고 디코딩할 수 있다. 일부 예들에서, 인코딩 및 디코딩은, 서로 통신하는 것이 아니라 단순히 메모리로 데이터를 인코딩하고 그리고/또는 메모리로부터 데이터를 리트리브 및 디코딩하는 디바이스들에 의해 수행된다.
도 1c는 본 개시내용의 실시예들을 구현하도록 구성된 모바일 디바이스의 예를 도시하는 블록도를 도시한다.
설명의 편의를 위해, 본 발명의 실시예들은, 예컨대, HEVC(High-Efficiency Video Coding) 또는 VVC(Versatile Video coding)의 참조 소프트웨어, ISO/IEC MPEG(Motion Picture Experts Group) 및 ITU-T VCEG(Video Coding Experts Group)의 JCT-VC(joint Collaboration Team on Video Coding)에 의해 개발된 차세대 비디오 코딩 표준을 참조로 본원에서 설명된다. 당업자는 본 발명의 실시예들이 HEVC 또는 VVC로 제한되지 않는다는 것을 이해할 것이다.
인코더 및 인코딩 방법
도 2는 본 출원의 기법들을 구현하도록 구성된 예시적인 비디오 인코더(20)의 개략적인 블록도를 도시한다. 도 2의 예에서, 비디오 인코더(20)는 입력(201)(또는 입력 인터페이스(201)), 잔차 계산 유닛(204), 변환 프로세싱 유닛(206), 양자화 유닛(208), 역양자화 유닛(210), 및 역변환 프로세싱 유닛(212), 재구성 유닛(214), 루프 필터 유닛(220), 디코딩된 픽처 버퍼(DPB)(230), 모드 선택 유닛(260), 엔트로피 인코딩 유닛(270) 및 출력(272)(또는 출력 인터페이스(272))를 포함한다. 모드 선택 유닛(260)은 인터 예측 유닛(244), 인트라 예측 유닛(254) 및 파티셔닝 유닛(262)을 포함할 수 있다. 인터 예측 유닛(244)은 모션 추정 유닛 및 모션 보상 유닛(미도시)을 포함할 수 있다. 도 2에 도시된 비디오 인코더(20)는 또한, 하이브리드 비디오 코덱(hybrid video codec)에 따라 하이브리드 비디오 인코더 또는 비디오 인코더로 지칭될 수 있다.
잔차 계산 유닛(204), 변환 프로세싱 유닛(206), 양자화 유닛(208), 모드 선택 유닛(260)은 인코더(20)의 순방향 신호 경로(forward signal path)를 형성하는 것으로 참조될 수 있는 반면, 역양자화 유닛(210), 역변환 프로세싱 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터(220), 디코딩된 픽처 버퍼(DPB)(230), 인터 예측 유닛(244) 및 인트라-예측 유닛(254)은 비디오 인코더(20)의 역방향 신호 경로(backward signal path)를 형성하는 것으로 지칭될 수 있고, 비디오 인코더(20)의 역방향 신호 경로는 디코더(도 3의 비디오 디코더(30) 참조)의 신호 경로에 대응한다. 역양자화 유닛(210), 역변환 프로세싱 유닛(212), 재구성 유닛(214), 루프 필터(220), 디코딩된 픽처 버퍼(DPB)(230), 인터 예측 유닛(244) 및 인트라-예측 유닛(254)은 또한, 비디오 인코더(20)의 "빌트-인 디코더(built-in decoder)"를 형성하는 것으로 지칭된다.
픽처들 및 픽처 파티셔닝(픽처들 및 블록들)
인코더(20)는, 예컨대 입력(201)을 통해, 픽처(17)(또는 픽처 데이터(17)), 예컨대 비디오 또는 비디오 시퀀스를 형성하는 픽처들의 시퀀스 중의 픽처를 수신하도록 구성될 수 있다. 수신된 픽처 또는 픽처 데이터는 또한 프리-프로세싱된 픽처(19)(또는 프리-프로세싱된 픽처 데이터(19))일 수 있다. 간략화를 위해, 다음의 설명은 픽처(17)을 참조한다. 픽처(17)는 또한, (특히, 현재 픽처를 다른 픽처들, 예를 들어 동일한 비디오 시퀀스, 즉, 현재 픽처를 또한 포함하는 비디오 시퀀스의 이전에 인코딩 및/또는 디코딩된 픽처들과 구별하기 위한 비디오 코딩에서) 코딩될 픽처 또는 현재 픽처로 지칭될 수 있다.
(디지털) 픽처는, 세기 값(intensity value)들을 갖는 샘플들의 행렬 또는 2-차원 어레이이거나 또는 이로 간주될 수 있다. 어레이 내의 샘플은 픽셀(픽처 엘리먼트의 축약형) 또는 pel로 지칭될 수 있다. 어레이 또는 픽처의 수평 및 수직 방향(또는 축)에서의 샘플들의 수는 픽처의 크기 및/또는 해상도를 정의한다. 컬러의 표현을 위해, 통상적으로 3개의 컬러 성분들이 이용되는데, 즉, 픽처가 3개의 샘플 어레이들을 포함할 수 있거나 이로 표현될 수 있다. RBG 포맷 또는 컬러 공간에서, 픽처는 대응하는 적색, 녹색 및 청색 샘플 어레이를 포함한다. 그러나, 비디오 코딩에서, 각각의 픽셀은 통상적으로, 루미넌스(luminance) 및 크로미넌스(chrominance) 포맷 또는 컬러 공간, 예컨대 YCbCr로 표현되며, 이는 Y로 지시된 루미넌스 성분(때로는 또한 L이 대신 사용됨) 및 Cb 및 Cr로 지시된 2개의 크로미넌스 성분들을 포함한다. 루미넌스(또는 줄여서 루마) 성분(Y)은, (예컨대, 그레이-스케일 픽처에서와 같이) 밝기 또는 그레이 레벨 세기를 표현하는 한편, 2개의 크로미넌스(또는 줄여서 크로마) 성분들(Cb 및 Cr)은 색도(chromaticity) 또는 컬러 정보 성분들을 표현한다. 이에 따라, YCbCr 포맷의 픽처는 루미넌스 샘플 값들(Y)의 루미넌스 샘플 어레이, 및 크로미넌스 값들(Cb 및 Cr)의 2개의 크로미넌스 샘플 어레이들을 포함한다. RGB 포맷의 픽처들은 YCbCr 포맷으로 컨버팅 또는 변환될 수 있고, 그 반대도 가능하며, 프로세스는 또한 컬러 변환 또는 컨버전으로 알려져 있다. 픽처가 단색(monochrome)이면, 픽처는 루미넌스 샘플 어레이만을 포함할 수 있다. 이에 따라, 픽처는 예컨대 단색 포맷의 루마 샘플들의 어레이, 또는 4:2:0, 4:2:2 및 4:4:4 컬러 포맷의 루마 샘플들의 어레이 및 크로마 샘플들의 2개의 대응하는 크로마 샘플 어레이들일 수 있다.
비디오 인코더(20)의 실시예들은 픽처(17)를 복수의(전형적으로 비중첩) 픽처 블록들(203)로 파티셔닝하도록 구성된 픽처 파티셔닝 유닛(도 2에 묘사되지 않음)을 포함할 수 있다. 이러한 블록들은 또한, 루트 블록들, 매크로 블록들(H.264/AVC) 또는 코딩 트리 블록들(CTB) 또는 코딩 트리 유닛들(CTU)(H.265/HEVC 및 VVC)로 지칭될 수 있다. 픽처 파티셔닝 유닛은, 비디오 시퀀스의 모든 픽처에 대해 동일한 블록 크기를 그리고 블록 크기를 정의하는 대응하는 그리드를 사용하도록 또는 픽처들 또는 픽처들의 서브세트들 또는 그룹들 사이의 블록 크기를 변경하도록 구성될 수 있고, 그리고 각각의 픽처를 대응하는 블록들로 파티셔닝할 수 있다.
추가적인 실시예들에서, 비디오 인코더는 픽처(17)의 블록(203), 예컨대 픽처(17)를 형성하는 하나, 수 개의 또는 모든 블록들을 직접 수신하도록 구성될 수 있다. 픽처 블록(203)은 또한, 코딩될 픽처 블록 또는 현재 픽처 블록으로 지칭될 수 있다.
픽처(17)와 같이, 픽처 블록(203)은 또한, 픽처(17)보다는 작은 차원이지만, 세기 값들(샘플 값들)을 갖는 샘플들의 2차원 어레이 또는 행렬이거나 또는 이로서 간주될 수 있다. 다시 말해서, 블록(203)은, 예컨대, 하나의 샘플 어레이(예컨대, 단색 픽처(17)의 경우 루마 어레이, 또는 컬러 픽처의 경우 루마 또는 크로마 어레이) 또는 3개의 샘플 어레이(예컨대, 컬러 픽처(17)의 경우 루마 및 2개의 크로마 어레이들) 또는 적용된 컬러 포맷에 의존하는 임의의 다른 수 및/또는 종류의 어레이들을 포함할 수 있다. 블록(203)의 수평 및 수직 방향(또는 축)에서의 샘플들의 수는 블록(203)의 크기를 정의한다. 이에 따라, 블록은, 예컨대, 샘플들의 MxN(M-열 x N-행) 어레이, 또는 변환 계수들의 MxN 어레이일 수 있다.
도 2에 도시된 바와 같은 비디오 인코더(20)의 실시예들은 블록 단위로(block by block) 픽처(17)를 인코딩하도록 구성될 수 있는데, 예컨대 인코딩 및 예측은 블록(203)마다 수행된다.
도 2에 도시된 바와 같은 비디오 인코더(20)의 실시예들은, 슬라이스들(또한, 비디오 슬라이스들로 지칭됨)을 사용함으로써 픽처를 파티셔닝 및/또는 인코딩하도록 추가로 구성될 수 있으며, 여기서 픽처는 하나 이상의 슬라이스들(통상적으로 비중첩)로 파티셔닝되거나 또는 하나 이상의 슬라이스들(통상적으로 비중첩)을 사용하여 인코딩될 수 있으며, 각각의 슬라이스는 하나 이상의 블록들(예컨대, CTU들)을 포함할 수 있다.
도 2에 도시된 바와 같은 비디오 인코더(20)의 실시예들은 타일 그룹들(또한 비디오 타일 그룹들로 지칭됨) 및/또는 타일들(또한 비디오 타일들로도 지칭됨)을 사용함으로써 픽처를 파티셔닝 및/또는 인코딩하도록 추가로 구성될 수 있으며, 여기서, 픽처는 하나 이상의 타일 그룹들(전형적으로 비중첩)로 퍼티셔닝되거나 또는 하나 이상의 타일 그룹들(전형적으로 비중첩)을 사용하여 인코딩될 수 있으며, 각각의 타일 그룹은 예컨대 하나 이상의 블록들(예컨대, CTU들) 또는 하나 이상의 타일들을 포함할 수 있으며, 각각의 타일은, 예컨대 직사각형 형상일 수 있고 그리고 하나 이상의 블록들(예컨대, CTU들), 예컨대 완전(complete) 또는 프랙셔널(fractional) 블록들을 포함할 수 있다.
잔차 계산
잔차 계산 유닛(204)은, 샘플 도메인에서 잔차 블록(205)을 획득하기 위해 샘플 단위(픽셀 단위)로, 예컨대 픽처 블록(203)의 샘플 값들로부터 예측 블록(265)의 샘플 값들을 감산함으로써, 픽처 블록(203) 및 예측 블록(265)(예측 블록(265)에 대한 추가 세부사항들은 나중에 제공됨)에 기반하여 잔차 블록(205)(또한 잔차(205)로 지칭됨)을 계산하도록 구성될 수 있다.
변환
변환 프로세싱 유닛(206)은, 변환 도메인에서 변환 계수들(207)을 획득하기 위해, 잔차 블록(205)의 샘플 값들에 대해 변환, 예컨대 이산 코사인 변환(DCT) 또는 이산 사인 변환(DST)을 적용하도록 구성될 수 있다. 변환 계수들(207)은 또한, 변환 잔차 계수들로 지칭될 수 있고, 변환 도메인에서 잔차 블록(205)을 표현할 수 있다.
변환 프로세싱 유닛(206)은 DCT/DST의 정수 근사화들, 이를테면 H.265/HEVC에 대해 특정된 변환들을 적용하도록 구성될 수 있다. 직교 DCT 변환과 비교하여, 그러한 정수 근사화들은 통상적으로 특정 팩터만큼 스케일링된다. 순방향 변환 및 역변환에 의해 프로세싱되는 잔차 블록의 노름(norm)을 보존하기 위해, 부가적인 스케일링 팩터들이 변환 프로세스의 일부로서 적용된다. 스케일링 팩터들은 통상적으로, 시프트 연산들에 대해 2의 거듭 제곱인 스케일링 팩터들, 변환 계수들의 비트 깊이, 정확도와 구현 비용들 간의 트레이드 오프 등과 같은 특정 제약들에 기반하여 선정된다. 예컨대, 특정 스케일링 팩터들은, 예컨대 역변환 프로세싱 유닛(212)에 의해, 역변환에 대해 (및 예컨대, 비디오 디코더(30)에서 역변환 프로세싱 유닛(312)에 의한 대응하는 역변환)에 대해 특정되며, 그리고 예컨대, 인코더(20)에서 변환 프로세싱 유닛(206)에 의한 순방향 변환에 대한 대응하는 스케일링 팩터들이 그에 따라 특정될 수 있다.
비디오 인코더(20)(각각, 변환 프로세싱 유닛(206))의 실시예들은 변환 파라미터들, 예를 들어, 직접적으로 또는 엔트로피 인코딩 유닛(270)을 통해 인코딩 또는 압축된, 예를 들어 변환들 또는 변환들의 타입을 출력하도록 구성될 수 있어, 예를 들어, 비디오 디코더(30)는 디코딩을 위해 변환 파라미터들을 수신하고 사용할 수 있다.
양자화
양자화 유닛(208)은, 예컨대 스칼라 양자화 또는 벡터 양자화를 적용함으로써, 양자화된 계수들(209)을 획득하기 위해 변환 계수들(207)을 양자화하도록 구성될 수 있다. 양자화된 계수들(209)은 또한 양자화된 변환 계수들(209) 또는 양자화된 잔차 계수들(209)로 지칭될 수 있다.
양자화 프로세스는 변환 계수들(207)의 일부 또는 전부와 연관된 비트 깊이를 감소시킬 수 있다. 예를 들어, n-비트 변환 계수는 양자화 동안 m-비트 계수로 자릿수 내림(rounded down)될 수 있고, 여기서 n은 m보다 크다. 양자화의 정도는 양자화 파라미터(QP)를 조정함으로써 수정될 수 있다. 예컨대, 스칼라 양자화의 경우, 더 미세한(finer) 또는 더 조악한(coarser) 양자화를 달성하기 위해 상이한 스케일링이 적용될 수 있다. 더 작은 양자화 스텝 크기들은 더 미세한 양자화에 대응하는 반면, 더 큰 양자화 스텝 크기들은 더 조악한 양자화에 대응한다. 적용가능한 양자화 스텝 크기는 양자화 파라미터(QP)에 의해 지시될 수 있다. 양자화 파라미터는, 예컨대, 미리정의된 세트의 적용가능한 양자화 스텝 크기들에 대한 인덱스일 수 있다. 예컨대, 작은 양자화 파라미터들은 미세한 양자화(작은 양자화 스텝 크기들)에 대응할 수 있고, 큰 양자화 파라미터들은 조악한 양자화(큰 양자화 스텝 크기들)에 대응할 수 있거나, 또는 그 반대도 가능하다. 양자화는 양자화 스텝 크기에 의한 나눗셈을 포함할 수 있고 그리고 예컨대 역양자화 유닛(210)에 의한 대응하는 및/또는 역 탈양자화(inverse dequantization)는 양자화 스텝 크기에 의한 곱셈을 포함할 수 있다. 일부 표준들, 예컨대 HEVC에 따른 실시예들은, 양자화 스텝 크기를 결정하기 위해 양자화 파라미터를 사용하도록 구성될 수 있다. 일반적으로, 양자화 스텝 크기는 나눗셈을 포함하는 방정식의 고정 소수점 근사화(fixed point approximation)를 사용하여 양자화 파라미터에 기반하여 계산될 수 있다. 잔차 블록의 노름을 복원하기 위해 양자화 및 탈양자화를 위해 부가적인 스케일링 팩터들이 도입될 수 있으며, 이는 양자화 스텝 크기 및 양자화 파라미터에 대한 방정식의 고정 소수점 근사화에서 사용되는 스케일링으로 인해 수정될 수 있다. 일 예시적인 구현에서, 역변환 및 탈양자화의 스케일링은 결합될 수 있다. 대안적으로, 맞춤화된 양자화 테이블들이 사용될 수 있고, 예컨대 비트스트림에서, 인코더로부터 디코더로 시그널링될 수 있다. 양자화는 손실 동작이며, 여기서 손실은 양자화 스텝 크기들이 증가함에 따라 증가한다.
비디오 인코더(20)(각각 양자화 유닛(208))의 실시예들은, 예컨대 직접적으로 또는 엔트로피 인코딩 유닛(270)을 통해 인코딩된 양자화 파라미터(QP)를 출력하도록 구성될 수 있어서, 예컨대 비디오 디코더(30)는 디코딩을 위해 양자화 파라미터들을 수신하고 적용할 수 있다.
역양자화
역양자화 유닛(210)은, 예컨대, 양자화 유닛(208)과 동일한 양자화 스텝 크기에 기반하여 또는 이를 사용하여 양자화 유닛(208)에 의해 적용되는 양자화 방식의 역을 적용함으로써, 양자화 유닛(208)의 역양자화를 양자화된 계수들에 적용하여 탈양자화된 계수들(211)을 획득하도록 구성된다. 탈양자화된 계수들(211)은 또한, 탈양자화된 잔차 계수들(211)로 지칭될 수 있고 그리고 ―비록 양자화에 의한 손실로 인한 변환 계수들과 통상적으로 동일하지는 않지만― 변환 계수들(207)에 대응한다.
역변환
역변환 프로세싱 유닛(212)은, 변환 프로세싱 유닛(206)에 의해 적용되는 변환의 역변환, 예컨대 역 이산 코사인 변환(DCT) 또는 역 이산 사인 변환(DST) 또는 다른 역변환들을 적용하여 샘플 도메인에서 재구성된 잔차 블록(213)(또는 대응하는 탈양자화된 계수들(213))을 획득하도록 구성된다. 재구성된 잔차 블록(213)은 또한 변환 블록(213)으로 지칭될 수 있다.
재구성
재구성 유닛(214)(예컨대, 가산기(adder) 또는 합산기(214))은, 예컨대, ―샘플 단위로― 재구성된 잔차 블록(213)의 샘플 값들 및 예측 블록(265)의 샘플 값들을 추가함으로써, 샘플 도메인에서 재구성된 블록(215)을 획득하기 위해 변환 블록(213)(즉, 재구성된 잔차 블록(213))을 예측 블록(265)에 추가하도록 구성된다.
필터링
루프 필터 유닛(220)(또는 줄여서 "루프 필터"(220))은, 필터링된 블록(221)을 획득하기 위해, 재구성된 블록(215)을 필터링하도록, 또는 일반적으로 필터링된 샘플들을 획득하기 위해, 재구성된 샘플들을 필터링하도록 구성된다. 루프 필터 유닛은, 예컨대, 픽셀 트랜지션들을 평활화하거나 또는 아니면 비디오 품질을 개선하도록 구성된다. 루프 필터 유닛(220)은 하나 이상의 루프 필터들, 이를테면 디-블로킹 필터(de-blocking filter), 샘플-적응형 오프셋(SAO; sample-adaptive offset) 필터, 또는 하나 이상의 다른 필터들, 예컨대, 양방향 필터(bilateral filter), 적응형 루프 필터(ALF; adaptive loop filter), 샤프닝(sharpening), 평활화 필터(smoothing filter)들 또는 협력 필터(collaborative filter)들, 또는 이들의 임의의 조합을 포함할 수 있다. 루프 필터 유닛(220)이 루프 필터인 것으로 도 2에서 도시되지만, 다른 구성들에서, 루프 필터 유닛(220)은 포스트 루프 필터(post loop filter)로서 구현될 수 있다. 필터링된 블록(221)은 또한, 필터링된 재구성된 블록(221)으로 지칭될 수 있다.
비디오 인코더(20)(각각 루프 필터 유닛(220))의 실시예들은, 예컨대 직접적으로 또는 엔트로피 인코딩 유닛(270)을 통해 인코딩된 루프 필터 파라미터들(이를테면, 샘플 적응형 오프셋 정보)을 출력하도록 구성될 수 있어서, 예컨대 디코더(30)는 디코딩을 위해 동일한 루프 필터 파라미터들 또는 개개의 루프 필터들을 수신하고 적용할 수 있다.
디코딩된 픽처 버퍼
디코딩된 픽처 버퍼(DPB)(230)는, 비디오 인코더(20)에 의해 비디오 데이터를 인코딩하기 위한 참조 픽처들 또는 일반적으로는, 참조 픽처 데이터를 저장하는 메모리일 수 있다. DPB(230)는, 동기식 DRAM(SDRAM), 자기저항 RAM(MRAM), 저항성 RAM(RRAM)을 포함하는 동적 랜덤 액세스 메모리(DRAM), 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중 임의의 것에 의해 형성될 수 있다. 디코딩된 픽처 버퍼(DPB)(230)는 하나 이상의 필터링된 블록들(221)을 저장하도록 구성될 수 있다. 디코딩된 픽처 버퍼(230)는, 동일한 현재 픽처 또는 상이한 픽처들, 예를 들어 이전에 재구성된 픽처들의 다른 이전에 필터링된 블록들, 예를 들어 이전에 재구성되고 필터링된 블록들(221)을 저장하도록 추가로 구성될 수 있으며, 예를 들어 인터 예측을 위해, 완전한 이전에 재구성된, 즉 디코딩된 픽처들(및 대응하는 참조 블록들 및 샘플들) 및/또는 부분적으로 재구성된 현재 픽처(및 대응하는 참조 블록들 및 샘플들)를 제공할 수 있다. 디코딩된 픽처 버퍼(DPB)(230)는 또한, 예컨대, 재구성된 블록(215)이 루프 필터 유닛(220)에 의해 필터링되지 않는 경우, 하나 이상의 필터링 되지 않은 재구성된 블록들(215), 또는 일반적으로, 필터링되지 않은 재구성된 샘플들, 또는 임의의 다른 추가적으로 프로세싱된 버전의 재구성된 블록들 또는 샘플들을 저장하도록 구성될 수 있다.
모드 선택(파티셔닝 및 예측)
모드 선택 유닛(260)은 파티셔닝 유닛(262), 인터-예측 유닛(244) 및 인트라-예측 유닛(254)을 포함하고, 그리고 오리지널 픽처 데이터, 예컨대 오리지널 블록(203)(현재 픽처(17)의 현재 블록(203) 및 동일한(현재) 픽처의 그리고/또는 하나 또는 복수의 이전에 디코딩된 픽처들로부터의, 예컨대 디코딩된 픽처 버퍼(230) 또는 다른 버퍼들(예컨대, 라인 버퍼, 미도시)로부터의 재구성된 픽처 데이터, 예컨대 필터링된 및/또는 필터링되지 않은 재구성된 샘플들 또는 블록들을 수신하거나 획득하도록 구성된다. 재구성된 픽처 데이터는, 예측 블록(265) 또는 예측자(265)를 획득하기 위해, 예측, 예컨대 인터-예측 또는 인트라-예측을 위한 참조 픽처 데이터로서 사용된다.
모드 선택 유닛(260)은, 현재 블록 예측 모드(파티셔닝을 포함하지 않음) 및 예측 모드(예컨대, 인트라 또는 인터 예측 모드)에 대한 파티셔닝을 결정 또는 선택하고 그리고 대응하는 예측 블록(265)을 생성하도록 구성될 수 있으며, 이는 잔차 블록(205)의 계산을 위해 그리고 재구성된 블록(215)의 재구성을 위해 사용된다.
모드 선택 유닛(260)의 실시예들은(예컨대, 모드 선택 유닛(260)에 의해 지원되는 또는 모드 선택 유닛(260)에 대해 이용가능한 것들로부터) 파티셔닝 및 예측 모드를 선택하도록 구성될 수 있으며, 이는, 최상의 매칭 또는 다시 말해서, 최소 잔차(최소 잔차는 송신 또는 저장을 위한 더 나은 압축을 의미함) 또는 최소 시그널링 오버헤드(최소 시그널링 오버헤드는 전송 또는 저장을 위한 더 나은 압축을 의미함)를 제공하거나, 또는 이 둘 다를 고려하거나 밸런싱한다. 모드 선택 유닛(260)은 레이트 왜곡 최적화(RDO; rate distortion optimization)에 기반하여 파티셔닝 및 예측 모드를 결정하도록, 즉 최소 레이트 왜곡을 제공하는 예측 모드를 선택하도록 구성될 수 있다. 이러한 맥락에서 "최상의", "최소한", "최적의" 등과 같은 용어들은, 반드시 전체적인 "최상의", "최소한", "최적의" 등을 지칭하는 것은 아니지만, 임계치를 초과하거나 임계치 미만으로 떨어지는 값 또는 잠재적으로 "준-최적(sub-optimum) 선택"을 유도하지만 복잡성과 프로세싱 시간을 줄이는 다른 제약들과 같은, 종료 또는 선택 기준의 이행을 또한 지칭할 수도 있다.
다시 말해서, 파티셔닝 유닛(262)은, 예를 들어 쿼드-트리-파티셔닝(QT), 바이너리 파티셔닝(BT) 또는 트리플-트리 파티셔닝(TT) 또는 이들의 임의의 조합을 사용하여 반복적으로, 블록(203)을 더 작은 블록 파티션들 또는 서브-블록들(다시 블록들을 형성함)으로 파티셔닝하도록, 그리고 예를 들어, 블록 파티션들 또는 서브-블록들 각각에 대한 예측을 수행하도록 구성될 수 있으며, 여기서 모드 선택은 파티셔닝된 블록(203)의 트리-구조의 선택을 포함하고 예측 모드들은 블록 파티션들 또는 서브-블록들 각각에 적용된다.
다음에서, 예시적인 비디오 인코더(20)에 의해 수행되는 (예컨대, 파티셔닝 유닛(260)에 의한) 파티셔닝 및 (인터-예측 유닛(244) 및 인트라-예측 유닛(254)에 의한) 예측 프로세싱이 더 상세히 설명될 것이다.
파티셔닝
파티셔닝 유닛(262)은 현재 블록(203)을 더 작은 파티션들, 예컨대 정사각형 또는 직사각형 크기의 더 작은 블록들로 파티셔닝(또는 세분)할 수 있다. 이들 더 작은 블록들(서브-블록들로 또한 지칭될 수 있음)은 훨씬 더 작은 파티션들로 추가로 파티셔닝될 수 있다. 이는 또한, 트리-파티셔닝 또는 계층적 트리-파티셔닝으로 지칭되며, 여기서, 루트 블록, 예컨대 루트 트리-레벨 0(계층-레벨 0, 깊이 0)은 재귀적으로 파티셔닝될 수 있는데, 예컨대 그 다음으로 낮은 트리-레벨의 2개 이상의 블록들, 예컨대 트리 레벨 1에서의 노드들(계층-레벨 1, 깊이 1)로 파티셔닝될 수 있으며, 여기서 이들 블록들은, 예컨대, 종료 기준이 충족(예컨대, 최대 트리 깊이 또는 최소 블록 크기가 도달)됨으로 인해 파티셔닝이 종료될 때까지, 그 다음 하위 레벨, 예컨대 트리-레벨 2(계층-레벨 2, 깊이 2) 등의 2개 이상의 블록들로 다시 파티셔닝될 수 있다. 추가로 파티셔닝되지 않은 블록들은 또한, 트리의 리프(leaf)-블록들 또는 리프 노드들로 지칭된다. 2개의 파티션들로의 파티셔닝을 사용하는 트리는 바이너리-트리(BT; binary-tree)로 지칭되고, 3개의 파티션들로의 파티셔닝을 사용하는 트리는 터너리-트리(TT; ternary-tree)로 지칭되고, 4개의 파티션들로의 파티셔닝을 사용하는 트리는 쿼드-트리(QT; quad-tree)로 지칭된다.
이전에 언급된 바와 같이, 본원에서 사용되는 바와 같은 "블록"이라는 용어는 픽처의 부분, 특히 정사각형 또는 직사각형 부분일 수 있다. 예를 들어, HEVC 및 VVC를 참조하면, 블록은 CTU(coding tree unit), CU(coding unit), PU(prediction unit) 및 TU(transform unit)일 수 있거나 이에 대응할 수 있고, 그리고/또는 대응하는 블록들, 예컨대 CTB(coding tree block), CB(coding block), TB(transform block) 또는 PB(prediction block)일 수 있거나 이에 대응할 수 있다.
예를 들어, 코딩 트리 유닛(CTU)은 루마 샘플들의 CTB, 3개의 샘플 어레이들을 갖는 픽처의 크로마 샘플들의 2개의 대응하는 CTB들, 또는 샘플들을 코딩하는 데 사용되는 3개의 개별 컬러 평면들 및 신택스 구조들을 사용하여 코딩되는 픽처 또는 단색 픽처의 샘플들의 CTB이거나 이를 포함할 수 있다. 대응하게, 코딩 트리 블록(CTB)은, CTB들로의 컴포넌트의 분할이 파티셔닝이도록, N의 일부 값에 대한 샘플들의 NxN 블록일 수 있다. 코딩 유닛(CU)은 루마 샘플들의 코딩 블록, 3개의 샘플 어레이들을 갖는 픽처의 크로마 샘플들의 2개의 대응하는 코딩 블록들, 또는 샘플들을 코딩하는 데 사용되는 3개의 개별 컬러 평면들 및 신택스 구조들을 사용하여 코딩되는 픽처 또는 단색 픽처의 샘플들의 코딩 블록이거나 이를 포함할 수 있다. 대응하여, 코딩 블록(CB)은, 코딩 블록들로의 CTB의 분할이 파티셔닝이도록 M 및 N의 일부 값들에 대한 샘플들의 MxN 블록일 수 있다.
실시예들에서, 예컨대, HEVC에 따라, 코딩 트리 유닛(CTU)은 코딩 트리로 표시된 쿼드-트리 구조를 사용함으로써 CU로 세분될 수 있다. 인터-픽처(시간적) 또는 인트라-픽처(공간적) 예측을 사용하여 픽처 영역을 코딩할지 여부가 CU 레벨에서 판단된다. 각각의 CU는 PU 세분 타입에 따라 1개, 2개 또는 4개의 PU들로 추가로 세분될 수 있다. 하나의 PU 내에서도 동일한 예측 프로세스가 적용되며 관련 정보는 PU 단위로 디코더에 전송된다. PU 세분화 타입에 기반한 예측 프로세스를 적용함으로써 잔차 블록을 획득한 후, CU는 CU에 대한 코딩 트리와 유사한 다른 쿼드트리 구조에 따라 변환 유닛(TU)들로 파티셔닝될 수 있다.
실시예들에서, 예를 들어 VVC(Versatile Video Coding)로 지칭되는 현재 개발 중인 최신 비디오 코딩 표준에 따르면, 결합된 쿼드-트리 및 바이너리 트리(QTBT; Quad-tree and binary tree) 파티셔닝이 예를 들어 코딩 블록을 파티셔닝하는 데 사용된다. QTBT 블록 구조에서, CU는 정사각형이나 직사각형 형상을 가질 수 있다. 예를 들어, CTU(Coding Tree Unit)는 먼저 쿼드트리 구조로 파티셔닝된다. 쿼드트리 리프 노드들은 바이너리 트리 또는 터너리(또는 트리플) 트리 구조에 의해 추가로 파티셔닝된다. 파티셔닝 트리 리프 노드들은 코딩 유닛(CU)들로 불리며, 해당 세그먼트화는 임의의 추가적인 파티셔닝없이 예측 및 변환 프로세싱에 사용된다. 이는, QTBT 코딩 블록 구조에서 CU, PU 및 TU가 동일한 블록 크기를 갖는다는 것을 의미한다. 병렬로, QTBT 블록 구조와 함께 다중 파티셔닝, 예를 들어 트리플 트리 파티션이 사용될 수 있다.
일 예에서, 비디오 인코더(20)의 모드 선택 유닛(260)은, 본원에서 설명되는 파티셔닝 기법들의 임의의 조합을 수행하도록 구성될 수도 있다.
위에서 설명된 바와 같이, 비디오 인코더(20)는 (예를 들어, 미리-결정된) 예측 모드들의 세트로부터 최상의 또는 최적의 예측 모드를 결정하거나 선택하도록 구성된다. 예측 모드들의 세트는 예를 들어 인트라-예측 모드들 및/또는 인터-예측 모드들을 포함할 수 있다.
인트라-예측
인트라-예측 모드들의 세트는, 35개의 상이한 인트라-예측 모드들, 예컨대 HEVC에 정의된 바와 같은, 예를 들어 DC(또는 평균) 모드 및 평면 모드와 같은 비-방향성 모드들, 또는 67개의 상이한 인트라-예측 모드들, 예컨대 VVC에 대해 정의된 바와 같은, 예를 들어 DC(또는 평균) 모드 및 평면 모드와 같은 비-방향성 모드들, 또는 방향성 모드들을 포함할 수 있다.
인트라-예측 유닛(254)은. 인트라-예측 모드들의 세트 중 한 인트라-예측 모드에 따라, 인트라-예측 블록(265)을 생성하기 위해 동일한 현재 픽처의 이웃 블록들의 재구성된 샘플들을 사용하도록 구성된다.
인트라 예측 유닛(254)(또는 일반적으로 모드 선택 유닛(260))은 추가로, 인코딩된 픽처 데이터(21)로의 포함을 위해 신택스 엘리먼트(266)의 형태로 엔트로피 인코딩 유닛(270)에 인트라-예측 파라미터들(또는 일반적으로 블록에 대해 선택된 인트라 예측 모드를 지시하는 정보)을 출력하도록 구성되어, 예를 들어, 비디오 디코더(30)가 디코딩을 위해 예측 파라미터들을 수신하고 사용할 수 있다.
인터-예측
세트의(또는 가능한) 인터-예측 모드들은, 이용가능한 참조 픽처들(즉, 예컨대 DBP(230)에 저장된 이전의 적어도 부분적으로 디코딩된 픽처들) 및 다른 인터-예측 파라미터들, 예컨대 전체 참조 픽처 또는 참조 픽처의 단지 일부(예컨대, 현재 블록의 영역 주위의 검색 윈도우 영역)가 가장 매칭하는 참조 블록을 검색하는 데 사용되는지 여부, 및/또는 예컨대, 픽셀 보간(pixel interpolation)이 적용되는지 여부, 예컨대 절반/세미-pel 및/또는 쿼터-pel 보간이 적용되는지 여부에 따른다.
전술한 예측 모드들에 추가하여, 스킵 모드 및/또는 다이렉트 모드가 적용될 수 있다.
인터 예측 유닛(244)은 모션 추정(ME) 유닛 및 모션 보상(MC) 유닛(도 2에서는 둘 다 미도시)을 포함할 수 있다. 모션 추정 유닛은, 픽처 블록(203)(현재 픽처(17)의 현재 픽처 블록(203)) 및 디코딩된 픽처(231) 또는 적어도 하나 또는 복수의 이전에 재구성된 블록들, 예컨대, 모션 추정을 위한, 하나 또는 복수의 다른/상이한 이전에 디코딩된 픽처들(231)의 재구성된 블록들을 수신하거나 획득하도록 구성될 수 있다. 예컨대, 비디오 시퀀스는 현재 픽처 및 이전에 디코딩된 픽처들(231)을 포함할 수 있거나, 다시 말해서, 현재 픽처 및 이전에 디코딩된 픽처들(231)은 비디오 시퀀스를 형성하는 픽처들의 시퀀스의 일부이거나 이를 형성할 수 있다.
인코더(20)는, 예를 들어, 복수의 다른 픽처들의 동일한 또는 상이한 픽처들의 복수의 참조 블록들로부터 참조 블록을 선택하고 그리고 참조 픽처(또는 참조 픽처 인덱스), 및/또는 참조 블록의 포지션(x, y 좌표)와 현재 블록의 포지션 사이의 오프셋(공간적 오프셋)을 인터 예측 파라미터로서 모션 추정 유닛에 제공하도록 구성될 수 있다. 이 오프셋은 또한, 모션 벡터(MV)로 불린다.
모션 보상 유닛은, 인터 예측 파라미터를 획득하도록, 예컨대 수신하도록 그리고 인터 예측 블록(265)을 획득하기 위해 인터 예측 파라미터에 기반하여 또는 인터 예측 파라미터를 사용하여 인터 예측을 수행하도록 구성된다. 모션 보상 유닛에 의해 수행되는 모션 보상은, 모션 추정에 의해 결정된 모션/블록 벡터에 기반하여 예측 블록을 페칭하거나 생성하는 것을 수반할 수 있고, 가능하게는 서브-픽셀 정밀도에 대한 보간들을 수행할 수 있다. 보간 필터링은 알려진 픽셀 샘플들로부터 추가적인 픽셀 샘플들을 생성할 수 있으며, 이에 따라 잠재적으로, 픽처 블록을 코딩하는 데 사용될 수 있는 후보 예측 블록들의 수를 증가시킬 수 있다. 현재 픽처 블록의 PU에 대한 모션 벡터를 수신하면, 모션 보상 유닛은 참조 픽처 리스트들 중 하나에서 모션 벡터가 가리키는 예측 블록을 로케이팅할 수 있다.
모션 보상 유닛은 또한, 비디오 슬라이스의 픽처 블록들을 디코딩할 시에 비디오 디코더(30)에 의한 사용을 위해 블록들 및 비디오 슬라이스들과 연관된 신택스 엘리먼트들을 생성할 수 있다. 슬라이스들 및 개개의 신택스 엘리먼트들에 추가하여 또는 이에 대한 대안으로서, 타일 그룹들 및/또는 타일들 및 개개의 신택스 엘리먼트들이가 생성되거나 사용될 수 있다.
엔트로피 코딩
엔트로피 인코딩 유닛(270)은, 예컨대, 엔트로피 인코딩 알고리즘 또는 방식(예컨대, 가변 길이 코딩(VLC) 방식, 콘텍스트 적응형 VLC 방식(CAVLC), 산술 코딩 방식, 이진화, 콘텍스트 적응형 바이너리 산술 코딩(CABAC), 신택스-기반 콘텍스트-적응형 바이너리 산술 코딩(SBAC), 확률 간격 파티셔닝 엔트로피(PIPE) 코딩 또는 다른 엔트로피 인코딩 방법론 또는 기법), 또는 양자화된 계수들(209)에 대한 바이패스(비 압축), 인터 예측 파라미터들, 인트라 예측 파라미터들, 루프 필터 파라미터들, 및/또는 다른 신택스 엘리먼트들을 적용하여 코딩된 픽처 데이터(21)를 획득하도록 구성되며, 이 코딩된 픽처 데이터(21)는, 예컨대, 비디오 디코더(30)가 디코딩을 위해 파라미터들을 수신하고 사용할 수 있도록, 예컨대 인코딩된 비트스트림(21)의 형태로 출력(272)을 통해 출력될 수 있다. 인코딩된 비트스트림(21)은, 비디오 디코더(30)로 전송될 수 있거나 또는 비디오 디코더(30)에 의한 추후의 전송 또는 리트리벌(retrieval)을 위해 메모리에 저장될 수 있다.
비디오 인코더(20)의 다른 구조적 변경들은 비디오 스트림을 인코딩하기 위해 사용될 수 있다. 예컨대, 비-변환 기반 인코더(20)는, 특정 블록들 또는 프레임들에 대한 변환 프로세싱 유닛이(206) 없이, 잔차 신호를 직접 양자화할 수 있다. 다른 구현에서, 인코더(20)는, 단일 유닛으로 결합되는 양자화 유닛(208) 및 역양자화 유닛(210)을 가질 수 있다.
디코더 및 디코딩 방법
도 3은 본 출원의 기법들을 구현하도록 구성된 비디오 디코더(30)의 예를 도시한다. 비디오 디코더(30)는, 디코딩된 픽처(331)를 획득하기 위해, 예컨대 인코더(20)에 의해 인코딩되는 인코딩된 픽처 데이터(21)(예컨대, 인코딩된 비트스트림(21))를 수신하도록 구성된다. 인코딩된 픽처 데이터 또는 비트스트림은, 인코딩된 픽처 데이터, 예컨대, 인코딩된 비디오 슬라이스의 픽처 블록들 (및/또는 타일 그룹들 또는 타일들) 및 연관된 신택스 엘리먼트들 표현하는 데이터를 디코딩하기 위한 정보를 포함한다.
도 3의 예에서, 디코더(30)는, 엔트로피 디코딩 유닛(304), 역양자화 유닛(310), 역변환 프로세싱 유닛(312), 재구성 유닛(314)(예를 들어, 합산기(314)), 루프 필터(320), 디코딩된 픽처 버퍼(DBP)(330), 모드 적용 유닛(360), 인터 예측 유닛(344) 및 인트라 예측 유닛(354)을 포함한다. 인터 예측 유닛(344)은 모션 보상 유닛일 수 있거나 이를 포함할 수 있다. 비디오 디코더(30)는, 일부 예들에서, 도 2로부터의 비디오 인코더(100)에 대해 설명된 인코딩 패스(encoding pass)에 대해 일반적으로 상반(reciprocal)인 디코딩 패스를 수행할 수 있다.
인코더(20)에 관해 설명된 바와 같이, 역양자화 유닛(210), 역변환 프로세싱 유닛(212), 재구성 유닛(214), 루프 필터(220), 디코딩된 픽처 버퍼(DPB)(230), 인터 예측 유닛(344) 및 인트라-예측 유닛(354)은 또한, 비디오 인코더(20)의 "빌트-인 디코더"를 형성하는 것으로 지칭된다. 이에 따라, 역양자화 유닛(310)은 역양자화 유닛(110)과 기능이 동일할 수 있고, 역변환 프로세싱 유닛(312)은 기능이 역변환 프로세싱 유닛(212)과 동일할 수 있고, 재구성 유닛(314)은 기능이 재구성 유닛(214)과 동일할 수 있고, 루프 필터(320)는 기능이 루프 필터(220)와 동일할 수 있고, 그리고 디코딩된 픽처 버퍼(330)는 기능이 디코딩된 픽처 버퍼(230)와 동일할 수 있다. 따라서, 비디오(20) 인코더의 개개의 유닛들 및 기능들에 대해 제공된 설명들은, 비디오 디코더(30)의 개개의 유닛들 및 기능들에 대응하게 적용된다.
엔트로피 디코딩
엔트로피 디코딩 유닛(304)은, 비트스트림(21)(또는, 일반적으로, 인코딩된 픽처 데이터(21))을 파싱하고(parse) 그리고 예컨대, 양자화된 계수들(309) 및/또는 디코딩된 코딩 파라미터들(도 3에는 도시되지 않음), 예컨대 인터 예측 파라미터들(예컨대, 참조 픽처 인덱스 및 모션 벡터), 인트라 예측 파라미터(예컨대, 인트라 예측 모드 또는 인덱스), 변환 파라미터들, 양자화 파라미터들, 루프 필터 파라미터들, 및/또는 다른 신택스 엘리먼트들 모두 또는 이들 중 임의의 것을 획득하기 위해, 인코딩된 픽처 데이터(21)에 대한 엔트로피 디코딩을 수행하도록 구성된다. 엔트로피 디코딩 유닛(304)은, 인코더(20)의 엔트로피 인코딩 유닛(270)과 관련하여 설명되는 바와 같은 인코딩 방식들에 대응하는 디코딩 알고리즘들 또는 방식들을 적용하도록 구성될 수 있다. 엔트로피 디코딩 유닛(304)은 추가로, 인터 예측 파라미터들, 인트라 예측 파라미터 및/또는 다른 신택스 엘리먼트들을 모드 적용 유닛(360)에 제공하고 그리고 다른 파라미터들을 디코더(30)의 다른 유닛들에 제공하도록 구성될 수 있다. 비디오 디코더(30)는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 엘리먼트들을 수신할 수 있다. 슬라이스들 및 개개의 신택스 엘리먼트들에 추가하여 또는 이에 대한 대안으로서, 타일 그룹들 및/또는 타일들 및 개개의 신택스 엘리먼트들이 수신되고 그리고/또는 사용될 수 있다.
역양자화
역양자화 유닛(310)은, (예컨대, 예를 들어 엔트로피 디코딩 유닛(304)에 의한 디코딩 및/또는 파싱에 의해) 인코딩된 픽처 데이터(21)로부터 양자화 파라미터들(QP)(또는 일반적으로 역양자화와 관련된 정보) 및 양자화된 계수들을 수신하고 그리고 변환 계수들(311)로 또한 지칭될 수 있는 역양자화된 계수들(311)을 획득하기 위해, 양자화 파라미터들에 기반하여, 디코딩된 양자화된 계수들(309)에 역양자화를 적용하도록 구성될 수 있다. 역양자화 프로세스는, 양자화 정도 및 마찬가지로 적용되어야 하는 역양자화 정도를 결정하기 위해, 비디오 슬라이스 내의 각각의 비디오 블록(또는 타일 또는 타일 그룹)에 대해 비디오 인코더(20)에 의해 결정되는 양자화 파라미터의 사용을 포함할 수 있다.
역변환
역변환 프로세싱 유닛(312)은, 변환 계수들(311)로 또한 지칭되는 역양자화된 계수들(311)을 수신하고 그리고 샘플 도메인에서 재구성된 잔차 블록들(213)을 획득하기 위해, 역양자화된 계수들(311)에 변환을 적용하도록 구성될 수 있다. 재구성된 잔차 블록들(213)은 또한, 변환 블록들(313)로 지칭될 수 있다. 변환은 역변환, 예컨대 역 DCT, 역 DST, 정수형 역변환(inverse integer transform), 또는 개념적으로 유사한 역변환 프로세스일 수 있다. 역변환 프로세싱 유닛(312)은 추가로, 탈양자화된 계수들(311)에 적용될 변환을 결정하기 위해, (예컨대, 예를 들어 엔트로피 디코딩 유닛(304)에 의한 디코딩 및/또는 파싱에 의해) 인코딩된 픽처 데이터(21)로부터 변환 파라미터들 또는 대응하는 정보를 수신하도록 구성될 수 있다.
재구성
재구성 유닛(314)(예컨대, 가산기 또는 합산기(314))은, 예컨대, 재구성된 잔차 블록(313)의 샘플 값들 및 예측 블록(365)의 샘플 값들을 추가함으로써, 샘플 도메인에서 재구성된 블록(315)을 획득하기 위해, 재구성된 잔차 블록(313)을 예측 블록(365)에 추가하도록 구성될 수 있다.
필터링
루프 필터 유닛(320)은, (코딩 루프에서 또는 코딩 루프 후에), 필터링된 블록(321)을 획득하기 위해, 예컨대 픽셀 트랜지션들을 평활화하거나 또는 아니면, 비디오 품질을 개선하기 위해, 재구성된 블록(315)을 필터링하도록 구성된다. 루프 필터 유닛(320)은 하나 이상의 루프 필터들, 이를테면 디-블로킹 필터(de-blocking filter), 샘플-적응형 오프셋(SAO; sample-adaptive offset) 필터, 또는 하나 이상의 다른 필터들, 예컨대, 양방향 필터(bilateral filter), 적응형 루프 필터(ALF; adaptive loop filter), 샤프닝(sharpening), 평활화 필터(smoothing filter)들 또는 협력 필터(collaborative filter)들, 또는 이들의 임의의 조합을 포함할 수 있다. 루프 필터 유닛(320)이 루프 필터인 것으로 도 3에서 도시되지만, 다른 구성들에서, 루프 필터 유닛(320)은 포스트 루프 필터(post loop filter)로서 구현될 수 있다.
디코딩된 픽처 버퍼
이후, 픽처의 디코딩된 비디오 블록들(321)은 디코딩된 픽처 버퍼(330)에 저장되며, 디코딩된 픽처 버퍼(330)는 디코딩된 픽처들(331)을 다른 픽처들에 대한 후속 모션 보상을 위한 그리고/또는 각각의 디스플레이를 출력하기 위한 참조 픽처들로서 저장한다.
디코더(30)는 사용자에게의 프리젠테이션 또는 뷰잉을 위해, 예컨대 출력(312)을 통해, 디코딩된 픽처(311)를 출력하도록 구성된다.
예측
인터 예측 유닛(344)은 인터 예측 유닛(244)(특히, 모션 보상 유닛)과 동일할 수 있고 그리고 인트라 예측 유닛(354)은, 기능이 인터 예측 유닛(254)과 동일할 수 있으며, (예컨대, 예를 들어 엔트로피 디코딩 유닛(304)에 의한 디코딩 및/또는 파싱에 의해) 인코딩된 픽처 데이터(21)로부터 수신되는 파티셔닝 및/또는 예측 파라미터들 또는 개개의 정보에 기반하여, 세분화 또는 파티셔닝 판단들 및 예측을 수행한다. 모드 적용 유닛(360)은, 예측 블록(365)을 획득하기 위해, 재구성된 픽처들, 블록들 또는 개개의 샘플들(필터링되거나 필터링되지 않음)에 기반하여 블록마다 예측(인트라 또는 인터 예측)을 수행하도록 구성될 수 있다.
비디오 슬라이스가 인트라 코딩된(I) 슬라이스로서 코딩되는 경우, 모드 적용 유닛(360)의 인트라 예측 유닛(354)은, 시그널링된 인트라 예측 모드 및 현재 픽처의 이전에 디코딩된 블록들로부터의 데이터에 기반하여 현재 비디오 슬라이스의 픽처 블록에 대한 예측 블록(365)을 생성하도록 구성된다. 비디오 픽처가 인터 코딩된(즉, B 또는 P) 슬라이스로서 코딩되는 경우, 모드 적용 유닛(360)의 인터 예측 유닛(344)(예컨대, 모션 보상 유닛)은, 엔트로피 디코딩 유닛(304)으로부터 수신되는 모션 벡터들 및 다른 신택스 엘리먼트들에 기반하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 블록(365)을 생성하도록 구성된다. 인터 예측을 위해, 예측 블록들은 참조 픽처 리스트들 중 하나에서의 참조 픽처들 중 하나로부터 생성될 수 있다. 비디오 디코더(30)는, DPB(330)에 저장된 참조 픽처들에 기반하여, 디폴트 구성 기법들을 사용하여 참조 프레임 리스트들, 즉, 리스트 0 및 리스트 1을 구성할 수 있다. 동일하거나 유사한 것이, 슬라이스들(예컨대, 비디오 슬라이스들)에 추가하여 또는 대안적으로, 타일 그룹들(예를 들어, 비디오 타일 그룹들) 및/또는 타일들(예를 들어, 비디오 타일들)을 사용하는 실시예들에 대해 또는 이 실시예들에 의해 적용될 수 있는데, 예를 들면, 비디오는 I, P 또는 B 타일 그룹들 및/또는 타일들을 사용하여 코딩될 수 있다.
모드 적용 유닛(360)은, 모션 벡터들 또는 관련된 정보 및 다른 신택스 엘리먼트들을 파싱함으로써 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고 그리고 디코딩되는 현재 비디오 블록에 대한 예측 블록들을 생성하기 위해, 예측 정보를 사용하도록 구성된다. 예를 들어, 모드 적용 유닛(360)은, 비디오 슬라이스의 비디오 블록들을 코딩하기 위해 사용되는 예측 모드(예를 들어, 인트라 예측 또는 인터 예측), 인터 예측 슬라이스 타입(예를 들어, B 슬라이스, P 슬라이스, 또는 GPS 슬라이스), 슬라이스에 대한 참조 픽처 리스트들 중 하나 이상에 대한 구성 정보, 슬라이스의 각각의 인터 인코딩된 비디오 블록에 대한 모션 벡터들, 슬라이스의 각각의 인터 코딩된 비디오 블록에 대한 인터 예측 상태, 및 현재 비디오 슬라이스 내의 비디오 블록들을 디코딩하기 위한 다른 정보를 결정하기 위해, 수신된 신택스 엘리먼트들 중 일부를 사용한다. 동일하거나 유사한 것이, 슬라이스들(예컨대, 비디오 슬라이스들)에 추가하여 또는 대안적으로, 타일 그룹들(예를 들어, 비디오 타일 그룹들) 및/또는 타일들(예를 들어, 비디오 타일들)을 사용하는 실시예들에 대해 또는 이 실시예들에 의해 적용될 수 있는데, 예를 들면, 비디오는 I, P 또는 B 타일 그룹들 및/또는 타일들을 사용하여 코딩될 수 있다.
도 3에 도시된 바와 같은 비디오 디코더(30)의 실시예들은, 슬라이스들(또한, 비디오 슬라이스들로 지칭됨)을 사용함으로써 픽처를 파티셔닝 및/또는 인코딩하도록 구성될 수 있으며, 여기서 픽처는 하나 이상의 슬라이스들(통상적으로 비중첩)로 파티셔닝되거나 또는 하나 이상의 슬라이스들(통상적으로 비중첩)을 사용하여 디코딩될 수 있으며, 각각의 슬라이스는 하나 이상의 블록들(예컨대, CTU들)을 포함할 수 있다.
도 3에 도시된 바와 같은 비디오 디코더(30)의 실시예들은, 타일 그룹들(또한 비디오 타일 그룹들로 지칭됨) 및/또는 타일들(또한 비디오 타일들로도 지칭됨)을 사용함으로써 픽처를 파티셔닝 및/또는 디코딩하도록 구성될 수 있으며, 여기서, 픽처는 하나 이상의 타일 그룹들(전형적으로 비중첩)로 퍼티셔닝되거나 또는 하나 이상의 타일 그룹들(전형적으로 비중첩)을 사용하여 디코딩될 수 있으며, 각각의 타일 그룹은 예컨대 하나 이상의 블록들(예컨대, CTU들) 또는 하나 이상의 타일들을 포함할 수 있으며, 각각의 타일은, 예컨대 직사각형 형상일 수 있고 그리고 하나 이상의 블록들(예컨대, CTU들), 예컨대 완전 또는 프랙셔널 블록들을 포함할 수 있다.
비디오 디코더(30)의 다른 변경들이 인코딩된 픽처 데이터(21)를 디코딩하기 위해 사용될 수 있다. 예컨대, 디코더(30)는 루프 필터링 유닛(320) 없이 출력 비디오 스트림을 생성할 수 있다. 예컨대, 비-변환 기반 디코더(30)는, 특정 블록들 또는 프레임들에 대한 역변환 프로세싱 유닛(312) 없이, 잔차 신호를 직접 역양자화할 수 있다. 다른 구현에서, 비디오 디코더(30)는, 단일 유닛으로 결합되는 역양자화 유닛(310) 및 역변환 프로세싱 유닛(312)을 가질 수 있다.
인코더(20) 및 디코더(30)에서, 현재 단계의 프로세싱 결과가 추가로 프로세싱된 이후 그 다음 단계로 출력될 수 있다는 것이 이해되어야 한다. 예컨대, 보간 필터링, 모션 벡터 유도 또는 루프 필터링 후에, 클립(Clip) 또는 시프트와 같은 추가 연산이 보간 필터링, 모션 벡터 유도 또는 루프 필터링의 프로세싱 결과에 대해 수행될 수 있다.
추가 연산들이 현재 블록의 유도된 모션 벡터들(이로 제한되는 것은 아니지만, 아핀 모드의 제어 포인트 모션 벡터들, 아핀, 평면, ATMVP 모드들에서의 서브-블록 모션 벡터들, 시간적 모션 벡터들)에 적용될 수 있다는 것이 주목되어야 한다. 예컨대, 모션 벡터의 값은, 그를 표현하는 비트에 따라, 미리 정의된 범위로 제약된다. 모션 벡터의 표현 비트가 bitDepth이면, 범위는 -2^(bitDepth-1) ~ 2^(bitDepth-1)-1이며, 여기서 "^"는 지수화(exponentiation)를 의미한다. 예를 들어, bitDepth가 16과 동일하게 설정되면, 범위는 -32768 ~ 32767이고; bitDepth가 18과 동일하게 설정되면, 범위는 -131072 ~ 131071이다. 예컨대, 유도된 모션 벡터의 값(예컨대, 하나의 8x8 블록 내의 4개의 4x4 서브-블록들의 MV들)은, 4개의 4x4 서브-블록 MV들의 정수부들 간의 최대 차가 N 개의 이하 픽셀들(이를테면, 1개 이하 픽셀)이 되도록 제약된다. 여기서는 bitDepth에 따라 모션 벡터를 제약하기 위한 2개의 방법들을 제공한다.
방법 1: 연산들의 플로잉에 의한 오버플로 MSB(most significant bit) 제거
Figure pct00001
여기서, mvx는 이미지 블록 또는 서브-블록의 모션 벡터의 수평 성분이고, mvy는 이미지 블록 또는 서브-블록의 모션 벡터의 수직 성분이고, ux 및 uy는 중간 값을 지시하고;
예컨대, 식 (1) 및 (2)를 적용한 후, mvx의 값이 -32769이면, 결과적인 값은 32767이다. 컴퓨터 시스템에서, 십진수들은 2의 보수(complement)로서 저장된다. -32769의 2의 보수가
Figure pct00002
(17 비트)이면 MSB는 폐기되므로, 결과적인 2의 보수는
Figure pct00003
(10진수로는 32767임)이며, 이는 식 (1) 및 (2)를 적용한 출력과 같다.
Figure pct00004
연산들은 식 (5) 내지 (8)에 도시된 바와 같이, mvp와 mvd의 합산 중에 적용될 수 있다.
방법 2: 값의 클리핑(clipping)에 의한 오버플로우 MSB 제거
Figure pct00005
여기서 vx는 이미지 블록 또는 서브-블록의 모션 벡터의 수평 성분이고, vy는 이미지 블록 또는 서브-블록의 모션 벡터의 수직 성분이고; x, y 및 z는 각각 MV 클리핑 프로세스의 3개 입력 값에 해당하며, Clip3 함수의 정의는 다음과 같다:
Figure pct00006
도 4는 본 개시내용의 실시예에 따른 비디오 코딩 디바이스(400)의 개략도이다. 비디오 코딩 디바이스(400)는, 본원에 설명된 바와 같은, 개시된 실시예들을 구현하기에 적합하다. 실시예에서, 비디오 코딩 디바이스(400)는 도 1a의 비디오 디코더(30)와 같은 디코더 또는 도 1a의 비디오 인코더(20)와 같은 인코더일 수 있다.
비디오 코딩 디바이스(400)는, 데이터를 수신하기 위한 입구 포트들(410)(또는 입력 포트들(410)) 및 수신기 유닛들(Rx)(420); 데이터를 프로세싱하기 위한 프로세서, 로직 유닛, 또는 CPU(central processing unit)(430); 데이터를 전송하기 위한 전송기 유닛들(Tx)(440) 및 출구 포트들(450)(또는 출력 포트들(450)); 및 데이터를 저장하기 위한 메모리(460)를 포함한다. 비디오 코딩 디바이스(400)는 또한, 광학 또는 전기 신호들의 배출 또는 진입을 위한 입구 포트들(410), 수신기 유닛들(420), 전송기 유닛들(440) 및 출구 포트들(450)에 커플링된 광학-전기(OE; optical-to-electrical) 컴포넌트들 및 전기-광학(EO; electrical-to-optical) 컴포넌트들을 포함할 수 있다.
프로세서(430)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(430)는 하나 이상의 CPU 칩들, 코어들(예컨대, 멀티-코어 프로세서로서), FPGA들, ASIC들 및 DSP들로서 구현될 수 있다. 프로세서(430)는 입구 포트들(410), 수신기 유닛들(420), 전송기 유닛들(440), 출구 포트들(450) 및 메모리(460)와 통신한다. 프로세서(430)는 코딩 모듈(470)을 포함한다. 코딩 모듈(470)은 위에서 설명된 개시된 실시예들을 구현한다. 이를테면, 코딩 모듈(470)은 다양한 코딩 동작들을 구현, 프로세싱, 준비 또는 제공한다. 따라서, 코딩 모듈(470)의 포함은, 비디오 코딩 디바이스(400)의 기능에 상당한 개선을 제공하고, 상이한 상태로의 비디오 코딩 디바이스(400)의 변환에 영향을 미친다. 대안적으로, 코딩 모듈(470)은, 메모리(460)에 저장되고 프로세서(430)에 의해 실행되는 명령들로서 구현된다.
메모리(460)는, 하나 이상의 디스크들, 테이프 드라이브들 및 솔리드-스테이트 드라이브들을 포함할 수 있고 그리고 오버플로우 데이터 저장 디바이스로서 사용되어, 그러한 프로그램들이 실행을 위해 선택되는 경우 프로그램들을 저장하고, 프로그램 실행 동안 판독되는 명령들 및 데이터를 저장할 수 있다. 메모리(460)는, 예컨대, 휘발성 및/또는 비-휘발성일 수 있고, ROM(read-only memory), RAM(random access memory), TCAM(ternary content-addressable memory), 및/또는 SRAM(static random-access memory)일 수 있다.
도 5는, 예시적인 실시예에 따른, 도 1로부터의 소스 디바이스(12) 및 목적지 디바이스(14) 중 하나 또는 둘 모두로서 사용될 수 있는 장치(500)의 간략화된 블록도이다.
장치(500) 내의 프로세서(502)는 중앙 프로세싱 유닛일 수 있다. 대안적으로, 프로세서(502)는, 현재-존재하거나 이후에 개발되는, 정보를 조작 또는 프로세싱할 수 있는 임의의 다른 타입의 디바이스 또는 다수의 디바이스들일 수 있다. 개시된 구현들이 도시된 바와 같은 단일 프로세서, 예컨대, 프로세서(502)를 이용하여 실시될 수 있지만, 속도 및 효율에서의 이점들은 1개 초과의 프로세서를 사용하여 달성될 수 있다.
장치(500) 내의 메모리(504)는 일 구현에서 판독 전용 메모리(ROM) 디바이스 또는 랜덤 액세스 메모리(RAM) 디바이스일 수 있다. 임의의 다른 적합한 타입의 저장 디바이스가 메모리(504)로서 사용될 수 있다. 메모리(504)는 버스(512)를 사용하여 프로세서(502)에 의해 액세스되는 코드 및 데이터(506)를 포함할 수 있다. 메모리(504)는 운영 시스템(508) 및 애플리케이션 프로그램들(510)을 더 포함할 수 있으며, 애플리케이션 프로그램들(510)은 프로세서(502)가 본원에서 설명되는 방법들을 수행하게 허용하는 적어도 하나의 프로그램을 포함한다. 예컨대, 애플리케이션 프로그램들(510)은, 본원에서 설명되는 방법들을 수행하는 비디오 코딩 애플리케이션을 더 포함하는 애플리케이션들 1 내지 N을 포함할 수 있다.
장치(500)는 또한, 디스플레이(518)와 같은 하나 이상의 출력 디바이스들을 포함할 수 있다. 일 예에서, 디스플레이(518)는, 터치 입력들을 감지하도록 동작가능한 터치 감지 엘리먼트와 디스플레이를 결합한 터치 감지 디스플레이일 수 있다. 디스플레이(518)는 버스(512)를 통해 프로세서(502)에 커플링될 수 있다.
본원에서 단일 버스로서 묘사되지만, 장치(500)의 버스(512)는 다수의 버스들로 구성될 수 있다. 추가로, 2차 저장소(514)는 장치(500)의 다른 컴포넌트들에 직접 커플링될 수 있거나, 또는 네트워크를 통해 액세스될 수 있으며, 메모리 카드와 같은 단일의 통합된 유닛 또는 다수의 메모리 카드들과 같은 다수의 유닛들을 포함할 수 있다. 따라서, 장치(500)는 광범위하게 다양한 구성들로 구현될 수 있다.
인코딩된 픽처 데이터(21)는, 인코더(유닛(254) 및 디코더(유닛(354))에서 블록 예측이 어떻게 수행되는지에 관한 정보를 포함한다. 인코딩된 픽처 데이터의 신택스는 다음의 엘리먼트들(표 1)을 포함할 수 있다:
Figure pct00007
<블록의 인트라 예측과 관련된 예시적인 신택스 엘리먼트들>
intra _ luma _ref_ idx[x0][y0]은, 표 2에서 특정된 바와 같이,
Figure pct00008
Figure pct00009
에 대한 인트라 예측 참조 라인 인덱스 IntraLumaRefLineIdx[x][y]를 특정한다. intra_luma_ref_idx[x0][y0]가 존재하지 않는 경우, 이는 0인 것으로 추론된다.
Figure pct00010
<intra_luma_ref_idx[x0][y0]에 기반한 IntraLumaRefLineIdx[x][y]의 사양>
IntraLumaRefLineIdx는 인트라 예측 참조 라인 인덱스 refIdx의 값을 결정하는 데 사용된다:
refIdx = (cIdx = = 0) ? IntraLumaRefLineIdx[xTbCmp][yTbCmp] : 0,
여기서 cIdx는 예측된 블록의 루마 또는 크로마 성분을 지시하는 변수이다. 0인 cIdx는 루마 성분을 지시하고, 2인 cIdx는 크로마 성분들을 지시한다.
추가로 주어지는 설명에서, cbWidth는 블록 폭에 대응하고, cbHeight는 블록 높이에 대응하고, MaxTbSizeY는 임계 값에 대응하며, 이는 다음과 같이 정의될 수 있다:
Figure pct00011
예측된 블록은 또한 코딩 블록으로 지칭된다.
1인 intra _ subpartitions _mode_flag[x0][y0]는, 현재 인트라 코딩 유닛이 NumIntraSubPartitions[x0][y0] 직사각형 변환 블록 서브 파티션들로 파티셔닝되는 것을 특정한다. 0인 intra_subpartitions_mode_flag[x0][y0]는 현재 인트라 코딩 유닛이 직사각형 변환 블록 서브파티션들로 파티셔닝되지 않음을 특정한다.
intra_subpartitions_mode_flag[x0][y0]가 존재하지 않는 경우, 이는 0인 것으로 추론된다.
intra _ subpartitions _split_flag[x0][y0]는, 인트라 서브파티션 세분화 타입이 수평인지 또는 수직인지 여부를 특정한다. intra_subpartitions_split_flag[x0][y0]가 존재하지 않는 경우, 이는 다음과 같이 추론된다:
- cbHeight가 MaxTbSizeY보다 크면, intra_subpartitions_split_flag[x0][y0]는 0인 것으로 추론된다.
- 그렇지 않으면(cbWidth가 MaxTbSizeY보다 크면), intra_subpartitions_split_flag[x0][y0]는 1인 것으로 추론된다.
변수 IntraSubPartitionsSplitType은, 표 3에 예시된 바와 같이 현재 루마 코딩 블록에 대해 사용되는 세분화의 타입을 특정한다. IntraSubPartitionsSplitType은 다음과 같이 유도된다:
-intra_subpartitions_mode_flag[x0][y0]가 0이면, IntraSubpartitionsSplitType은 0으로 설정된다.
- 그렇지 않으면, IntraSubPartitionsSplitType은 1 + intra_subpartitions_split_flag[x0][y0]로 설정된다.
Figure pct00012
<IntraSubPartitionsSplitType에 대한 명칭 연관>
변수 NumIntraSubPartitions는, 인트라 루마 코딩 블록이 분할되는 변환 블록 서브파티션들의 수를 특정한다. NumIntraSubPartitions는 다음과 같이 유도된다:
- IntraSubPartitionsSplitType이 ISP_NO_SPLIT과 동일한 경우, NumIntraSubPartitions는 1로 설정된다.
- 그렇지 않고, 다음의 조건들 중 하나가 참이면, NumIntraSubPartitions는 2로 설정된다:
- cbWidth는 4이고 cbHeight는 8이며,
- cbWidth는 8이고 cbHeight는 4이다.
- 그렇지 않으면, NumIntraSubPartitions는 4로 설정된다.
신택스 엘리먼트들 intra _ luma _ mpm _flag[x0][y0], intra_luma_not_planar_flag[x0][y0], intra _ luma _ mpm _ idx[x0][y0] 및 intra_luma_mpm_remainder[x0][y0]는 루마 샘플들에 대한 인트라 예측 모드를 특정한다. 어레이 인덱스들 x0, y0은, 픽처의 상부-좌측 루마 샘플에 대한 고려되는 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다. intra_luma_mpm_flag[x0][y0]가 1인 경우, 인트라 예측 모드는 이웃 인트라-예측된 코딩 유닛로부터 추론된다.
intra_luma_mpm_flag[x0][y0]가 존재하지 않는 경우, 이는 1로 추론된다.
intra_luma_not_planar_flag[x0][y0]가 존재하지 않는 경우, 이는 1로 추론된다.
intra_luma_not_planar_flag[xCb][yCb]가 0일 때, 블록 인트라 예측 모드(IntraPredModeY[xCb][yCb])는 INTRA_PLANAR과 동일하게 설정된다.
intra _ chroma _ pred _mode[x0][y0]는 크로마 샘플들(블록의 크로마 성분에 대한 인트라 예측 모드를 특정한다. 어레이 인덱스들 x0, y0은, 픽처의 상부-좌측 루마 샘플에 대한 고려되는 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다.
ISP(intra sub-partition) 툴의 세부사항들은 JVET-M0102에서 발견될 수 있는데, 이 툴의 간단한 설명은 아래에 주어진다:
ISP 툴은, 표 4에 도시된 바와 같이, 루마 인트라-예측된 블록들을 블록 사이즈 치수들에 따라 수직으로 또는 수평으로 2개 또는 4개의 서브-파티션들로 분할한다. 도 6 및 도 7은 2개의 가능성들의 예들을 도시한다. 모든 서브-파티션들은 적어도 16개의 샘플들을 갖는 조건을 충족시킨다.
Figure pct00013
<블록 크기에 따른 서브-파티션들의 수>
이들 서브-파티션들 각각에 대해, 인코더에 의해 송신된 계수들을 엔트로피 디코딩하고 이어서 이들을 역양자화하고 역변환함으로써, 잔차 신호가 생성된다. 이후, 서브-파티션이 인트라 예측되고, 마지막으로, 예측 신호에 잔차 신호를 추가함으로써 대응하는 재구성된 샘플들이 획득된다. 따라서, 각각의 서브-파티션의 재구성된 값들은 프로세스 등을 반복할 그 다음 서브-파티션의 예측을 생성하는 데 이용가능할 것이다. 모든 서브-파티션들은 동일한 인트라 모드를 공유한다.
활용되는 인트라 모드 및 세분화에 기반하여, 정상 순서 및 역순(reversed order)으로 지칭되는 2개의 상이한 클래스들의 프로세싱 순서들이 사용된다. 정상 순서에서, 프로세싱될 제1 서브-파티션은, CU의 상부-좌측 샘플을 포함하고 이어서 하향으로(수평 세분) 또는 우측으로(수직 세분) 계속되는 서브-파티션이다. 결과적으로, 서브-파티션들의 예측 신호들을 생성하기 위해 사용되는 참조 샘플들은 라인들의 좌측 및 상부 측들에만 위치된다. 다른 한편으로, 역프로세싱 순서는, CU의 하부-좌측 샘플을 포함하는 서브-파티션으로 시작하여 상향으로 계속되거나 또는 CU의 상부-우측 샘플을 포함하는 서브-파티션으로 시작하여 좌측으로 계속된다.
일반적으로, 인트라 예측 프로세스는 다음과 같이 설명될 수 있다.
이 프로세스에 대한 입력은 다음과 같다:
-현재 픽처의 상부-좌측 샘플에 대한 현재 변환 블록의 상부-좌측 샘플을 특정하는 샘플 위치(xTbCmp, yTbCmp),
- 인트라 예측 모드를 특정하는 변수 predModeIntra,
- 변환 블록 폭을 특정하는 변수 nTbW,
- 변환 블록 높이를 특정하는 변수 nTbH,
- 코딩 블록 폭을 특정하는 변수 nCbW,
- 코딩 블록 높이를 특정하는 변수 nCbH,
- 현재 블록의 컬러 성분을 특정하는 변수 cIdx.
이 프로세스의 출력들은
Figure pct00014
인 예측된 샘플들 predSamples[x][y]이다.
변수들 refW 및 RefH은 다음과 같이 유도된다:
- IntraSubPartitionsSplitType이 ISP_NO_SPLIT과 동일하거나 또는 cIdx가 0이 아니면, 다음이 적용된다:
Figure pct00015
- 그렇지 않으면(IntraSubPartitionsSplitType이 ISP_NO_SPLIT과 동일하지 않고 cIdx가 0이면), 다음이 적용된다:
Figure pct00016
인트라 예측 참조 라인 인덱스를 특정하는 변수 refIdx는 다음과 같이 유도된다:
Figure pct00017
Figure pct00018
Figure pct00019
Figure pct00020
인 참조 샘플들 p[x][y]의 생성에 대해, 다음의 순서화된 단계들이 적용된다:
1. 참조 샘플 이용가능성 마킹 프로세스는, 샘플 위치(xTbCmp, yTbCmp), 인트라 예측 참조 라인 인덱스 refIdx, 참조 샘플 폭 refW, 참조 샘플 높이 refH, 컬러 성분 인덱스 cIdx를 입력들로서 그리고
Figure pct00021
Figure pct00022
Figure pct00023
인 참조 샘플들 refUnfilt[x][y]을 출력으로서 사용하여 호출된다.
2.
Figure pct00024
Figure pct00025
Figure pct00026
인 적어도 하나의 샘플 refUnfilt[x][y]이 "인트라 예측에 대해 이용가능하지 않음"으로 마킹되는 경우, 참조 샘플 치환 프로세스는, 인트라 예측 참조 라인 인덱스 refIdx, 참조 샘플 폭 refW, 참조 샘플 높이 refH,
Figure pct00027
Figure pct00028
인 참조 샘플들 refUnfilt[x][y] 및 컬러 성분 인덱스 cIdx를 입력들로서 그리고
Figure pct00029
Figure pct00030
인 수정된 참조 샘플들 refUnfilt[x][y]을 출력으로서 사용하여 호출된다.
3. 참조 샘플 필터링 프로세스는, 인트라 예측 참조 라인 인덱스 refIdx, 변환 블록 폭 nTbW 및 높이 nTbH, 참조 샘플 폭 refW, 참조 샘플 높이 refH,
Figure pct00031
Figure pct00032
인 필터링되지 않은 샘플들 및 컬러 성분 인덱스 cIdx를 입력으로서 그리고
Figure pct00033
Figure pct00034
인 참조 샘플들 p[x][y]을 출력으로서 사용하여 호출된다.
predModeIntra에 따른 인트라 샘플 예측 프로세스는 다음과 같이 적용된다:
- predModeIntra가 INTRA_PLANAR과 동일한 경우, 대응하는 인트라 예측 모드 프로세스는, 변환 블록 폭 nTbW, 및 변환 블록 높이 nTbH, 및 참조 샘플 어레이 p를 입력들로서 사용하여 호출되고, 출력은 예측된 샘플 어레이 predsamples이다.
- 그렇지 않고, predModeIntra가 INTRA_DC와 동일한 경우, 대응하는 인트라 예측 모드 프로세스는, 변환 블록 폭 nTbW, 변환 블록 높이 nTbH, 인트라 예측 참조 라인 인덱스 refIdx, 및 참조 샘플 어레이 p를 입력들로서 사용하여 호출되고, 출력은 예측된 샘플 어레이 predsamples이다.
- 그렇지 않고, predModeIntra가 INTRA_LT_CCLM, INTRA_L_CCLM 또는 INTRA_T_CCLM과 동일한 경우, 대응하는 인트라 예측 모드 프로세스는, 인트라 예측 모드 predModeIntra, (xTbCmp, yTbCmp)와 동일하게 설정된 샘플 위치(xTbC, yTbC)는, 변환 블록 폭 nTbW 및 높이 nTbH, 및 참조 샘플 어레이 p를 입력들로서 사용하여 호출되고, 출력은 예측된 샘플 어레이 predsamples이다.
- 그렇지 않으면, 대응하는 인트라 예측 모드 프로세스는, 인트라 예측 모드 predModeIntra, 인트라 예측 참조 라인 인덱스 refIdx, 변환 블록 폭 nTbW, 변환 블록 높이 nTbH, 참조 샘플 폭 refW, 참조 샘플 높이 refH, 및 코딩 블록 폭 nCbW 및 높이 nCbH, 컬러 성분 인덱스 cIdx, 및 참조 샘플 어레이 p를 입력들로서 그리고 수정된 인트라 예측 모드 predModeIntra 및 예측된 샘플 어레이 predsamples를 출력들로서 사용하여 호출된다.
다음의 모든 조건들이 참인 경우, 포지션-의존적 예측 샘플 필터링(position-dependent prediction sample filtering) 프로세스는, 인트라 예측 모드 predModeIntra, 변환 블록 폭 nTbW, 변환 블록 높이 nTbH,
Figure pct00035
인 예측된 샘플들 predSamples[x][y], 참조 샘플 폭 refW, 참조 샘플 높이 refH,
Figure pct00036
,
Figure pct00037
Figure pct00038
인 참조 샘플들 p[x][y] 및 컬러 성분 인덱스 cIdx를 입력들로서 사용하여 호출되고, 출력은 수정된 예측된 샘플 어레이 predsamples이다:
- IntraSubPartitionsSplitType이 ISP_NO_SPLIT과 동일하거나 cIdx가 0이 아님
- refIdx가 0이거나 cIdx가 0이 아님
다음 조건 중 하나는 참임:
- predModeIntra가 INTRA_PLANAR와 동일
- predModeIntra는 INTRA_DC과 동일
- predModeIntra는 INTRA_ANGULAR18과 동일
- predModeIntra는 INTRA_ANGULAR50과 동일
- predModeIntra는 INTRA_ANGULAR10 이하임
- predModeIntra는 INTRA_ANGULAR58 이상임.
도 8은 블록의 인트라 예측에 사용되는 참조 샘플들의 라인들의 포지션들을 도시한다. 참조 라인("Reference line")의 인덱스에 따라, 예측된 블록("Block unit")의 샘플들은, 예측된 블록에 인접하지 않은 참조 샘플들(즉, 참조 라인의 인덱스가 0이 아닌 경우)을 사용하여 예측될 수 있다.
평면 인트라 예측 모드는 다음과 같이 VVC 초안에서 특정된다:
이 프로세스에 대한 입력은 다음과 같다:
- 변환 블록 폭을 특정하는 변수 nTbW,
-변환 블록 높이를 특정하는 변수 nTbH,
-
Figure pct00039
Figure pct00040
인 이웃 샘플들 p[x][y].
이 프로세스의 출력들은
Figure pct00041
인 예측된 샘플들 predSamples[x][y]이다.
변수들 nW 및 nH는 다음과 같이 유도된다:
Figure pct00042
Figure pct00043
Figure pct00044
인 예측 샘플들 predSamples[x][y]의 값들은 다음과 같이 유도된다:
Figure pct00045
DC 인트라 예측 프로세스는 다음과 같이 VVC 초안에서 특정된다:
이 프로세스에 대한 입력들은 다음과 같다:
- 변환 블록 폭을 특정하는 변수 nTbW,
- 변환 블록 높이를 특정하는 변수 nTbH,
-
Figure pct00046
Figure pct00047
인 이웃 샘플들 p[x][y].
이 프로세스의 출력들은
Figure pct00048
인 예측된 샘플들 predSamples[x][y]이다.
Figure pct00049
인 예측 샘플들 predSamples[x][y]의 값들은 다음의 순서화된 단계들에 의해 유도된다:
1. 변수 dcVal은 다음과 같이 유도된다:
- nTbW가 nTbH인 경우:
Figure pct00050
- nTbW가 nTbH보다 큰 경우:
Figure pct00051
- nTbW가 nTbH 미만인 경우 :
Figure pct00052
2. 예측 샘플들 predSamples[x][y]은 다음과 같이 유도된다:
predSamples[x][y] = dcVal,
Figure pct00053
선행 기술의 방법들은, 참조 라인의 인덱스가 0이 아닌 경우에만 방향성 인트라 예측을 사용하는데, 즉, DC 인트라 예측 모드 및 PLANAR 인트라 예측 모드는 이 경우에 디스에이블링된다.
DC 인트라 예측 모드가 수행되지 않는 다른 경우는 인트라 서브-파티셔닝(ISP)이 사용되는 경우이다.
VVC 초안의 버전은 인트라 예측 모드의 상이한 코딩을 특정한다. 비트스트림에서 시그널링되는 신택스 엘리먼트들의 시퀀스의 선택은 인에이블 또는 디스에이블로 조정되는 특정 툴들에 의존한다. 구체적으로, "intra_luma_ref_idx" 플래그 및 "intra_subpartitions_mode_flag" 플래그들이 0인 경우에만, mpm 플래그가 시그널링된다(표 5 참조).
Figure pct00054
<VVC 사양 텍스트 초안 버전 4 개정판 7의 코딩 유닛 신택스에 특정된 인트라 모드 인덱스의 코딩>
PDPC는 포지션-의존적 예측 조합을 나타낸다. 이 프로세스는 다음과 같이 설명될 수 있다.
이 프로세스에 대한 입력은 다음과 같다:
- 인트라 예측 모드 predModeIntra,
- 변환 블록 폭을 특정하는 변수 nTbW,
- 변환 블록 높이를 특정하는 변수 nTbH,
- 참조 샘플들의 폭을 특정하는 변수 refW,
- 참조 샘플 높이를 특정하는 변수 refH,
-
Figure pct00055
인 예측된 샘플들 predSamples[x][y]
-
Figure pct00056
Figure pct00057
인 이웃 샘플들 p[x][y]
- 현재 블록의 컬러 성분을 특정하는 변수 cIdx.
이 프로세스의 출력들은,
Figure pct00058
인 수정된 예측된 샘플들 predSamples[x][y]이다.
cIdx의 값에 따라, 함수 clip1Cmp는 다음과 같이 설정된다:
- cIdx가 0이면, clip1Cmp는 Clip1Y과 동일하게 설정된다.
- 그렇지 않으면, clip1Cmp는 Clip 1C과 동일하게 설정된다.
변수 nScale은
Figure pct00059
로 설정된다.
Figure pct00060
Figure pct00061
인 참조 샘플 어레이들 mainRef[x] 및 sideRef[y]는 다음과 같이 유도된다:
Figure pct00062
변수들 refL[x][y], refT[x][y], wT[y], wL[x], 및 wTL[x][y](
Figure pct00063
임)은 다음과 같이 유도된다:
- predModeIntra가 INTRA_PLANAR 또는 INTRA_DC와 동일한 경우, 다음이 적용된다:
Figure pct00064
- 그렇지 않고, predModeIntra가 INTRA_ANGULAR18 또는 INTRA_ANGULAR50과 동일한 경우, 다음이 적용된다:
Figure pct00065
- 그렇지 않고, predModeIntra가 INTRA_ANGULAR2 또는 INTRA_ANGULAR66과 동일한 경우, 다음이 적용된다:
Figure pct00066
- 그렇지 않고, predModeIntra가 INTRA_ANGULAR10 이하인, 다음의 순서화된 단계들이 적용된다:
1. 변수들 dXPos[y], dXFrac[y], dXInt[y] 및 dX[x][y]는, intraPredMode에 따라, 조항 8.4.4.2.7에서 특정된 invAngle을 사용하여 다음과 같이 유도된다:
Figure pct00067
2. 변수들 refL[x][y], refT[x][y], wT[y], wL[x] 및 wTL[x][y]은 다음과 같이 유도된다:
Figure pct00068
- 그렇지 않고, predModeIntra가 INTRA_ANGULAR58 이상인 경우, 다음의 순서화된 단계들이 적용된다:
1. 변수들 dYPos[x], dYFrac[x], dYInt[x] 및 dY[x][y]는, intraPredMode에 따라, 조항 8.4.4.2.7에서 특정된 invAngle을 사용하여 다음과 같이 유도된다:
Figure pct00069
2. 변수들 refL[x][y], refT[x][y], wT[y], wL[x] 및 wTL[x][y]은 다음과 같이 유도된다:
Figure pct00070
- 그렇지 않으면, RefL[x][y], refT[x][y], wT[y], wL[x] 및 wTL[x][y]는 모두 0으로 설정된다.
Figure pct00071
인 수정된 예측된 샘플들 predSamples[x][y]의 값들은 다음과 같이 유도된다:
Figure pct00072
현재, MPM 리스트의 몇몇 버전들은 VVC 소프트웨어 및 사양 초안에서 유지된다. 몇몇 MPM 리스트들을 사용하는 하드웨어 설계는 또한 바람직하지 않다. 그러나, 이들이 현재 디스에이블링된 경우들에 대해 인트라 예측 모드들을 인에이블링하면, 유사한 인트라 예측된 블록들을 생성하는 인트라 플래그들의 2개의 조합들이 초래될 것이다. 분명히, 이러한 설계는 리던던트(redundant)하며, 이러한 문제를 해결하기 위해, 시그널링 또는 인트라 예측 부분이 수정되어야 한다.
본 발명의 범위는, 참조 샘플들이 예측되는 블록에 인접하지 않거나 또는 예측될 블록이 (예컨대, ISP를 사용하여) 추가로 세분화되는 경우들에 대한 PLANAR 및 DC 인트라 예측 프로세스들의 수정에 있다. 수정들은, 예측 샘플들 결정의 프로세스뿐만 아니라 참조 샘플 필터링 및 PDPC를 포함한다.
그러한 수정의 목적은, 모든 인트라 예측 툴들에 대해 통합된 인트라 모드 시그널링 메커니즘을 갖는 가능성에 있다.
본 발명은, DC 또는 PLANAR 인트라 예측 모드들이 사용되는 경우 그리고 참조 샘플들이 예측되는 블록에 인접하지 않거나 예측된 블록이 추가 세분 대상인 경우(즉, ISP의 경우), 참조 샘플들의 프로세싱을 수정하고 PDPC의 조건적 스위칭을 도입하는 것을 제안한다. 프로세싱은, (도 6에 도시된 바와 같이) 상부 및 좌측 영역에서 재구성된 샘플들로부터의 참조 샘플들의 선택 및 이들의 필터링을 포함한다.
본 발명은, 인트라 예측 모드를 인코딩하기 위한 단일의 통합된 시그널링 메커니즘을 가질 가능성을 제공하는 것을 목적으로 한다. 인트라 예측 모드 코딩의 예시적인 통합된 시그널링 방법은 표 6에 주어진다.
Figure pct00073
<인트라 모드 인덱스의 예시적인 통합된 코딩>
표 5와 표 6에 도시된 코딩 방법들 간의 차이는, intra _ luma _ mpm _flag의 조건적 시그널링이 제안된 예시적인 신택스에서 제거된다는 것이다.
사양으로부터, 참조 라인의 인덱스가 0이 경우, PLANAR 인트라 예측 모드가 동작할 수 없다는 것이 주목될 수 있다. 도 9에 도시된 본 발명의 실시예는, 이 실시예가 어떻게 다뤄질 수 있는지를 개시한다. 이 도면은, 제3 참조 라인이 사용되는 경우이다. PLANAR 인트라 예측 모드를 위해 선택된 참조 샘플들은 비스듬히 채워진 정사각형으로 표현된다. 제1 상부-좌측 샘플("A"로 표기됨)의 포지션이 (0, 0)이라고 가정하면, PLANAR 인트라 예측은 다음과 같이 수정될 수 있다:
이 프로세스에 대한 입력은 다음과 같다:
- 인트라 예측 참조 라인 인덱스를 특정하는 변수 refIdx,
- 변환 블록 폭을 특정하는 변수 nTbW,
- 변환 블록 높이를 특정하는 변수 nTbH,
참조 샘플들 p[x][y],
Figure pct00074
Figure pct00075
임.
이 프로세스의 출력들은
Figure pct00076
인 예측된 샘플들 predSamples[x][y]이다.
변수들 nW 및 nH는 다음과 같이 유도된다:
Figure pct00077
Figure pct00078
Figure pct00079
인 예측 샘플들 predSamples[x][y]의 값들은 다음과 같이 유도된다:
Figure pct00080
도 10에 도시된 대안적인 실시예는 PLANAR 인트라 예측 모드를 위해 참조 라인으로부터 참조 샘플들을 선택하는 다른 방법을 개시한다. 이 방법은 다음과 같이 설명될 수 있다.
이 프로세스에 대한 입력은 다음과 같다:
- 인트라 예측 참조 라인 인덱스를 특정하는 변수 refIdx,
- 변환 블록 폭을 특정하는 변수 nTbW,
- 변환 블록 높이를 특정하는 변수 nTbH,
-
Figure pct00081
Figure pct00082
인 이웃 샘플들 p[x][y]
이 프로세스의 출력들은
Figure pct00083
인 예측된 샘플들 predSamples[x][y]이다.
변수들 nW 및 nH는 다음과 같이 유도된다:
Figure pct00084
Figure pct00085
Figure pct00086
인 예측 샘플들 predSamples[x][y]의 값들은 다음과 같이 유도된다:
Figure pct00087
다른 대안적인 실시예는 2개의 샘플들에 대한 특수한 변위를 적용하는 것으로 구성되며, 그 2개의 샘플들의 값들은, 각각, 양방향-예측에서 하부-라인 샘플 값 및 우측 샘플 값으로서 사용된다. 도 11에서, 갭을 갖는 참조 라인으로부터 참조 샘플들이 선택된다는 것이 주목될 수 있다. 이 실시예에 대한 사양 텍스트는 다음과 같을 수 있다:
이 프로세스에 대한 입력은 다음과 같다:
- 인트라 예측 참조 라인 인덱스를 특정하는 변수 refIdx,
- 변환 블록 폭을 특정하는 변수 nTbW,
- 변환 블록 높이를 특정하는 변수 nTbH,
-
Figure pct00088
Figure pct00089
인 이웃 샘플들 p[x][y]
이 프로세스의 출력들은
Figure pct00090
인 예측된 샘플들 predSamples[x][y]이다.
변수들 nW 및 nH는 다음과 같이 유도된다:
Figure pct00091
Figure pct00092
Figure pct00093
인 예측 샘플들 predSamples[x][y]의 값들은 다음과 같이 유도된다:
Figure pct00094
DC 인트라 예측 프로세스는 또한, 참조 라인 인덱스가 0이 아닌 경우 호출될 수 없다.
도 12 - 도 12c 및 도 13에 도시된 본 발명의 실시예들은, 참조 라인 인덱스가 0이 아닌 경우 DC 모드를 사용하여 인트라 예측을 수행하는 방법을 개시한다. 이 경우의 샘플링 메커니즘은 PLANAR 인트라 예측 모드에 대해 위에서 개시된 것들과 유사하다 :
이 프로세스에 대한 입력은 다음과 같다:
- 변환 블록 폭을 특정하는 변수 nTbW,
- 변환 블록 높이를 특정하는 변수 nTbH,
- 인트라 예측 참조 라인 인덱스를 특정하는 변수 refIdx,
-
Figure pct00095
Figure pct00096
인 이웃 샘플들 p[x][y].
이 프로세스의 출력들은
Figure pct00097
인 예측된 샘플들 predSamples[x][y]이다.
Figure pct00098
Figure pct00099
인 예측 샘플들 predSamples[x][y]의 값들은 다음의 순서화된 단계들에 의해 유도된다:
1. 변수 dcVal은 다음과 같이 유도된다:
- nTbW가 nTbH인 경우:
Figure pct00100
- nTbW가 nTbH보다 큰 경우:
Figure pct00101
- nTbW가 nTbH 미만인 경우:
Figure pct00102
2. 예측 샘플들 predSamples[x][y]은 다음과 같이 유도된다:
Figure pct00103
인 predSamples[x][y] = dcVal
위에서 설명된 단계 1은, 참조 샘플들의 라인 및/또는 열(이를테면, 상부 참조 샘플 라인 및/또는 좌측 참조 샘플 열)로부터 참조 샘플 샘플들을 선택하는 단계를 포함한다. 이 목적을 위해, 2개의 인덱스들이 도입된다:
Figure pct00104
Figure pct00105
상부 참조 샘플 라인으로부터의 참조 샘플들의 선택은 다음과 같이 인덱스 x' 및 refIdx를 사용하여 수행된다:
Figure pct00106
좌측 참조 샘플 열로부터의 참조 샘플들의 선택은 다음과 같이 인덱스 y' 및 refIdx를 사용하여 수행된다:
Figure pct00107
선택 프로세스의 결과는, 단계 1에서 위에서 설명된 바와 같이, 변수 dcVal의 값(DC 값)을 결정하는 데 추가로 사용되는 선택된 참조 샘플들이다.
위에서 설명된 DC 인트라 예측 모드를 사용하여 블록을 인트라 예측하는 단계 2는, 예측된 샘플들 predSamples의 값들, 즉 예측될 블록의 샘플들을 얻기 위해, 계산된 변수 dcVa의 값l(DC 값)을 사용한다.
도 12a는, W의 값이 H의 값과 동일하다는 점에서 도 12와 유사하다. 그러나, 도 12a는 단지 3개의 참조 라인들, 즉 참조 샘플들의 3개의 행들 및 참조 샘플들의 3개의 열들을 각각 도시한다. 이들 참조 라인들은 예측될 블록의 상부 및 좌측 위에 있다.
도 12b 및 12c는 12a와 유사하지만, 이들은 W > H(도 12b) 및 W < H(도 12c)인 경우를 예시한다. 즉, 두 경우들 모두에서, 예측될 블록은 직사각형 형상이다.
도 12-도 12c 및 도 13에 도시된 바와 같이, 변환 블록을 예측하는 데 사용되는 참조 샘플들은 참조 라인의 참조 샘플들의 서브 세트이다. 참조 라인이 참조 샘플들의 행뿐만 아니라 참조 샘플들의 열을 포함하는 것으로 이해되어야 한다는 것이, 다시 반복되어야 한다. 참조 샘플들의 행은 참조 라인의 예이다. 참조 샘플들의 열은 참조 라인의 다른 예이다. 도 12 - 도 12c 및 도 13에 도시된 바와 같이, 변환 블록을 예측하는 데 사용되는 참조 샘플들은 연속적이며, 참조 라인 내에서 이들 사이에 갭이 없으므로, 이들은 연속적인 간격 또는 연속적인 거리를 형성한다. 참조 샘플들 각각은, 또한 인트라 예측을 위한 이웃 샘플들에 수평으로 또는 수직으로 인접한다.
INTRA_DC 인트라 예측 모드에 대한 입력들은 다음과 같다:
- 변환 블록 폭을 특정하는 변수 nTbW,
- 변환 블록 높이를 특정하는 변수 nTbH,
- 인트라 예측 참조 라인 인덱스를 특정하는 변수 refIdx,
-
Figure pct00108
Figure pct00109
인 이웃 샘플들 p[x][y].
이 프로세스의 출력들은
Figure pct00110
인 예측된 샘플들 predSamples[x][y]이다.
도 12 및 도 12a에 도시된 예들로서, 블록은 정사각형이다. 변환 블록의 폭(nTbW)은 변환 블록의 높이(nTbH)와 동일하다. 이러한 상황에서, 변수 dcVal는 다음과 같이 유도된다:
- nTbW가 nTbH와 동일한 경우 :
Figure pct00111
인트라 예측 참조 라인 인덱스의 값은 도 12의 예에서 3이고, 도 12a의 예에서 2이다. 도 12a의 예를 들면, redIdx의 값이 2이고, nTbW가 nTbH와 동일하다. 따라서, 참조 샘플들의 상부 3번째 행 및 참조 샘플들의 좌측 3번째 열이 선택된다. 참조 샘플들의 상부 3번째 행 및 참조 샘플들의 좌측 3번째 열은 인트라 예측 참조 라인 인덱스의 값에 의해 인덱싱된 참조 라인들이다.
도 12b 및 도 12c에 도시된 예들로서, 블록은 정사각형이 아니다. 변환 블록의 폭 nTbW이 변환 블록의 높이 nTbH와 동일하지 않다. 이러한 상황에서, 변수 dcVal는 다음과 같이 유도된다:
- nTbW가 nTbH보다 큰 경우(도 12b) :
Figure pct00112
- nTbW가 nTbH 미만인 경우(도 12c) :
Figure pct00113
그런 다음, 예측 샘플들 predSamples[x][y]은 다음과 같이 유도된다:
Figure pct00114
인 predSamples[x][y] = dcVal
인트라 예측 참조 라인 인덱스의 값은 도 12b 및 도 12c의 예에서 3이다. 도 12b의 예를 들면, redIdx의 값은 2이고, nTbW는 nTbH보다 크다. 따라서, 참조 샘플들의 상부 3번째 행만이 선택된다. 참조 샘플들의 상부 3번째 행은 인트라 예측 참조 라인 인덱스의 값에 의해 인덱싱된 참조 라인이다. 참조 샘플들의 수는 변환 블록의 폭에 대응한다. 참조 라인의 최좌측 참조 샘플(즉, p[0][-idx-1])은, 변환 블록의 참조 샘플들의 상부 행 내에서 상부-좌측 예측 샘플의 포지션(즉, A)에 대해 수평으로 오프셋된다. 오프셋은, 변환 블록의 참조 샘플들의 좌측 열의 상부-좌측 예측 샘플의 수직 포지션(즉, A)과 최좌측 참조 샘플의 수직 인덱스(즉, [-idx-1]) 간의 차이이다. 오프셋은, 행렬 p의 제1 인덱스(이는 0임)에 의해 표현된다. 참조 라인의 최좌측 참조 샘플(즉, p[0][-idx-1])의 수평 포지션은 변환 블록의 상부-좌측 예측 샘플의 수평 포지션(즉, A)과 동일하고, 둘 모두 0이다.
도 12c의 예를 들면, redIdx의 값은 2이고, nTbH는 nTbW보다 크다. 따라서, 참조 샘플들의 좌측 3번째 열만이 선택된다. 참조 샘플들의 좌측 3번째 열은 인트라 예측 참조 라인 인덱스의 값에 의해 인덱싱된 참조 라인이다. 참조 샘플들의 수는 변환 블록의 높이에 대응한다. 참조 라인의 최상부 참조 샘플(즉, p[-idx-1][0])은, 변환 블록의 참조 샘플들의 좌측 열 내 상부-좌측 예측 샘플의 포지션(즉, A)에 대해 수직으로 오프셋된다. 오프셋은, 변환 블록의 참조 샘플들의 상부 행의 상부-좌측 예측 샘플의 수평 포지션(즉, A)과 최상부 참조 샘플의 수평 인덱스(즉, [-idx-1]) 간의 차이이다. 오프셋은 행렬 p의 제2 인덱스(이는 인트라 예측 참조 라인 인덱스의 값과 동일함)에 의해 표현된다. 참조 라인의 최상부 참조 샘플(즉, p [-idx-1][0])의 수직 포지션은 변환 블록의 상부-좌측 예측 샘플의 수직 포지션(즉, A)과 동일하고, 둘 모두 0이다.
임의의 다른 인트라 예측 모드(DC 인트라 예측 모드를 포함함)는 다음의 단계들을 포함한다:
단계 1은, 참조 라인 인덱스(refIdx)에 기반한 참조 라인 및 참조 열의 선택이다. 이 인덱스는, 예측된 샘플들의 값들을 얻기 위해 추가로 사용되는, 예측된 블록의 좌측 또는 상부 경계와, 이웃 블록들의 재구성된 샘플들의 열 또는 행 사이의 오프셋을 결정한다.
단계 2는, 참조 샘플 필터가 참조 샘플들의 선택된 라인 및 열에 적용되는지 여부의 결정으로 구성된다. 이러한 조건들은, 인트라 예측 모드, 컬러 인덱스(cIdx), 인트라 예측 프로세스와 관련된 신택스 엘리먼트들의 값들(예컨대, 표 1에 도시 됨)뿐만 아니라 이러한 엘리먼트들의 값들로부터 유도된 변수들의 값들, 예측될 블록의 차원을 포함한다. ISP가 수행되는 경우, 이러한 조건들은 추가로, 인트라 예측 프로세스가 적용되는 서브블록들로 세분화된 블록의 크기를 포함한다. 조건들이 충족되는지 여부의 체크 결과에 기반하여, 참조 샘플들의 선택된 열 또는 라인의 샘플들은 참조 샘플 필터에 의해 프로세싱된다. 이 필터는 통상적으로, [1 2 1] / 4로 정의된 3개의 계수들을 갖는 FIR(finite impulse response) 필터이다.
단계 3은, 참조 샘플들의 선택된 열 또는 라인으로부터 참조 샘플들을 선택하는 것으로 구성된다. 이러한 선택은, 참조 샘플들의 선택된 라인 또는 열에 속하는 샘플들이 예측된 샘플들의 값들을 유도하기 위해 추가로 사용될 것임을 지시하는 인덱스 범위를 결정하는 것으로 구성된다.
단계 4는, 단계 3에서 결정된 선택된 참조 샘플들로부터 예측된 샘플들을 유도하는 것으로 구성된다. 이러한 유도는 모드-의존적이며, 추가 서브샘플링하는 것, 보간 필터링을 적용하는 것; 적용하거나, 또는 참조 샘플들로부터 선형 방정식을 계산하는 것을 포함할 수 있으며, 여기서 예측된 샘플의 값을 얻기 위해 사용되는 참조 샘플들은 예측된 블록 내 예측된 샘플의 포지션에 따라 결정된다.
다른 발명 실시예는, 참조 샘플들이 예측되는 블록에 인접하지 않는 경우, 즉, 참조 샘플들의 참조 라인의 인덱스("intra _ luma _ref_ idx"에 의해 시그널링됨)가 0이 아닌 경우, 인트라 참조 샘플 평활화를 디스에이블링한다. 다른 실시예는, 참조 샘플들의 참조 라인의 인덱스에 대해 PLANAR 인트라 예측 모드에 대한 참조 샘플 필터를 변화시키는 것으로 구성된다.
예시적인 필터 선택은 표 7 및 표 8에 주어진다.
Figure pct00115
<참조 샘플들의 참조 라인의 인덱스에 대한 예시적인 필터 선택>
Figure pct00116
<참조 샘플들의 참조 라인의 인덱스에 대한 예시적인 필터 선택>
본 발명의 다른 실시예는, 인트라 서브파티션(ISP) 플래그가 1로 설정되는 경우, PLANAR 및 DC 인트라 예측 모드들이 서브-파티션들의 인트라 예측을 위해 사용될 수 있게 한다. ISP 플래그가 1로 설정되는 경우 PDPC 동작을 수행하지 않는 것이 제안된다.
- ISP 모드가 온(on)인 경우에, DC 인트라를 프로세싱하는 방법의 예시적인 실시예는 다음과 같다: 전체 블록의 참조 샘플에 대한 DC 값을 계산하고, 그리고
- 예측되는 블록에 속하는 모든 서브블록들에 대해, 예측된 DC 값을 인트라 예측자로서 사용한다.
다른 실시예는, 코딩된 픽처의 크로마 및 루마 성분들이 블록들로의 동일한 공간적 파티셔닝을 공유하는 경우(즉, SINGLE_TREE 파티셔닝 모드가 선택되는 경우)를 개시한다. 이 경우, PDPC를 조건적으로 적용하는 2개의 경우들이 고려된다.
실시예의 제1 경우에서, ISP 플래그가 1로 설정되는 경우, 루마 성분의 예측된 샘플들을 갖는 블록은 루마 서브블록들로 세분화되지만, 병치된(collocated) 크로마 블록(즉, 크로마 성분의 예측된 샘플들과의 병치된 블록)은 세분화되지 않는다. 이 경우, PDPC는 루마 서브블록들에 적용되는 않지만, PDPC는 크로마 블록에 적용된다.
실시예의 제2 경우에서, 인트라 예측 참조 라인 인덱스가 0이 아닌 경우, PDPC는 예측된 루마 블록에 적용되지 않지만, 이는 병치된 크로마 블록에 적용되며, 그리고 크로마 블록의 예측을 위해, 인트라 예측 참조 라인 인덱스는 시그널링되지 않지만 0으로 추론된다.
도 14는 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법의 흐름도를 예시하며, 이는, 변환 블록의 인트라 예측 참조 라인 인덱스의 값을 획득하는 단계(1601); 및 참조 라인으로부터의 참조 샘플들에 기반하여 변환 블록의 예측 샘플들을 획득하는 단계(1603)를 포함하며, 참조 라인은 인트라 예측 참조 라인 인덱스의 값에 의해 인덱싱된다.
단계(1603) 전에, 방법은, 도 9-도 13에 도시된 예들과 같이, 인트라 예측 참조 라인 인덱스의 값에 기반하여 참조 샘플들의 라인을 선택하는 단계(1602)를 포함할 수 있다.
도 15는 본 개시내용에 따른 인코더(20)를 예시하며, 인코더(20)는, 변환 블록의 인트라 예측 참조 라인 인덱스의 값을 획득하도록 구성된 획득 유닛(2001); 및 참조 라인으로부터의 참조 샘플들에 기반하여 변환 블록의 예측 샘플들을 획득하도록 구성된 예측 유닛(2003)을 포함하며, 참조 라인은 인트라 예측 참조 라인 인덱스의 값에 의해 인덱싱된다.
인코더(20)는, 도 9-도 13에 도시된 예들과 같이, 인트라 예측 참조 라인 인덱스의 값에 기반하여 참조 샘플들의 라인을 선택하도록 구성된 선택 유닛(2002)(도 15에는 도시되지 않음)을 포함할 수 있다.
도 16은 본 개시내용에 따른 디코더(30)를 예시하며, 디코더는, 변환 블록의 인트라 예측 참조 라인 인덱스의 값을 획득하도록 구성된 획득 유닛(3001); 및 참조 라인으로부터의 참조 샘플들에 기반하여 변환 블록의 예측 샘플들을 획득하도록 구성된 예측 유닛(3003)을 포함하며, 참조 라인은 인트라 예측 참조 라인 인덱스의 값에 의해 인덱싱된다.
디코더(30)는, 도 9-도 13에 도시된 예들과 같이, 인트라 예측 참조 라인 인덱스의 값에 기반하여 참조 샘플들의 라인을 선택하도록 구성된 선택 유닛(3002)(도 16에는 도시되지 않음)을 포함할 수 있다.
본 개시내용은 다음의 16개의 추가 양상들의 세트를 제공한다:
블록에 대한 DC 또는 평면 인트라 예측 모드의 인트라 예측 방법의 제1 양상으로서, 방법이, 다중-참조 라인(MRL) 예측이 인에이블링되는 경우, 참조 샘플들의 라인 및/또는 열(이를테면, (선택된) 상부 참조 샘플 라인 및/또는 (선택된) 좌측 참조 샘플 열)로부터의 참조 샘플들의 선택을 포함하는, DC 또는 평면 인트라 예측 모드를 사용하여 블록을 인트라 예측하는 단계를 포함하는, 제1 양상.
제1 양상에 따른 방법의 제2 양상으로서, 방법이:
인트라 예측의 결과에 (PDPC와 같은) 포지션 의존적 예측 조합을 조건적으로 적용하는 단계를 더 포함하는, 제2 양상.
제1 및 제2 양상에 따른 방법의 제3 양상으로서, 참조 샘플들의 라인 및/또는 열이 (인트라 예측 참조 라인 인덱스 또는 참조 라인 인덱스와 같은) refIdx에 의해 지시되거나, 참조 샘플들의 라인이 다중-참조 라인 중 (제1 refIdx와 같은) refIdx에 의해 지시되는 하나의 라인이거나, 또는 단일 열이 다중-참조 열들 중 참조 샘플들의 (제2 refIdx와 같은) refIdx에 의해 지시되는 하나의 열인, 제3 양상.
제1 내지 제3 양상들 중 어느 하나에 따른 방법의 제4 양상으로서, SINGLE_TREE 파티셔닝 모드가 블록이 속한 픽처에 대해 선택되며, 방법이, (ISP 플래그와 같은) 제1 지시의 값에 기반하여, 예측될 블록의 루마 성분을 루마 서브블록들로 세분화하는 단계를 더 포함하고; 인트라 예측의 결과에 PDPC를 조건적으로 적용하는 단계는, 루마 서브블록들에 대해서는 PPDC 적용을 스킵하지만, 병치된 크로마 블록(즉, 예측될 블록의 크로마 성분)에 대해서는 PDPC를 적용하는 단계를 더 포함하는, 제4 양상.
제1 내지 제4 양상들 중 어느 하나에 따른 방법의 제5 양상으로서, SINGLE_TREE 파티셔닝 모드가 블록이 속한 픽처에 대해 선택되며, 인트라 예측의 결과에 PDPC를 조건적으로 적용하는 단계는, 인트라 예측 참조 라인 인덱스가 0이 아닌 경우, 블록의 루마 성분에 PPDC를 적용하는 단계; 병치된 크로마 블록을 예측하는 경우, 인트라 예측 참조 라인 인덱스를 0으로 추론하는 단계 및 병치된 크로마 블록 예측의 결과(이를테면, 병치된 크로마 블록의 인트라 예측 결과)에 PDPC를 적용하는 단계를 포함하는, 제5 양상.
제1 내지 제5 양상들 중 어느 하나에 따른 방법의 제6 양상으로서, DC 인트라 예측 모드가 블록의 인트라 예측을 위해 사용되며, 다중-참조 라인 예측이 인에이블링되고, 인트라 예측 참조 라인 인덱스가 0이 아닌, 제6 양상.
제1 내지 제6 양상들 중 어느 하나에 따른 방법의 제7 양상으로서, DC 값(변수 dcVal)이 예측될 블록의 좌측에 위치된 참조 샘플(이를테면, 좌측 참조 샘플 열)의 라인 및/또는 열로부터 유도되고, 참조 샘플들의 수가 DC 값을 유도하기 위해 참조 라인 및/또는 열(이를테면, 좌측 참조 샘플 열)로부터 선택되며, 참조 샘플의 수가 블록의 폭에 대응하거나 또는 참조 샘플들의 수가 블록의 높이와 동일한, 제7 양상.
제1 내지 제7 양상들 중 임의의 양상의 방법에 대한 제8 양상으로서, DC 값(변수 dcVal)이 예측될 블록의 위에 위치된 참조 샘플들의 라인(이를테면, 상부 참조 샘플 라인(들))으로부터 유도되고, 복수의 참조 샘플들이 DC 값을 유도하기 위해 참조 라인(이를테면, 상부 참조 샘플 라인(들))으로부터 선택되며, 복수의 참조 샘플들의 수가 블록의 폭과 동일하거나 또는 복수의 참조 샘플들의 수가 블록의 폭에 대응하는, 제8 양상.
제1 내지 제8 양상들 중 임의의 양상의 방법에 대한 제9 양상으로서, 선택된 참조 샘플들이 연속적인 간격 또는 연속적인 거리를 형성하는데, 즉 선택된 참조 샘플들 각각이, 또한 선택된 참조 샘플들인 수평으로 또는 수직으로 인접한 이웃 샘플들을 갖고, 그리고 선택된 참조 샘플들 중 오직 2개만이 하나의 선택된 이웃 샘플을 갖는 반면 다른 선택된 참조 샘플들은 적어도 2개의 선택된 참조 샘플들(이를테면, 이웃 샘플들)을 갖는, 제9 양상.
제1 내지 제9 양상들 중 임의의 양상의 방법에 대한 제10 양상으로서, 선택된 참조 샘플들이 수평 또는 수직 인덱스들을 특정함으로써 결정되고, 각각의 인덱스가 정수 값들의 범위에 속하는 정수 값이며, 인덱스가 참조 샘플들의 선택된 열 또는 선택된 라인 내의 수평 좌표(x') 또는 수직 좌표(y')를 특정하는, 제10 양상.
제1 내지 제10 양상들 중 임의의 양상의 방법에 대한 제11 양상으로서, DC 값(변수 dcVal)이 예측될 블록의 좌측에 위치된 참조 샘플들의 라인(이를테면, 좌측 참조 샘플 열(들))로부터 유도되고, 최상부 선택 참조 샘플이 블록의 상부-좌측 예측 샘플의 포지션에 대해 수직으로 오프셋되는, 제11 양상.
제1 내지 제11 양상들 중 임의의 양상의 방법에 대한 제12 양상으로서, 오프셋의 값이 인트라 예측 참조 라인 인덱스에 대응하거나, 오프셋의 값이 인트라 예측 참조 라인 인덱스와 연관되거나, 또는 오프셋 값이 인트라 예측 참조 라인 인덱스와 동일한, 제12 양상.
제1 내지 제12 양상들 중 임의의 양상의 방법에 대한 제13 양상으로서, DC 값(변수 dcVal)이 예측될 블록의 위에 위치된 참조 샘플들의 라인(이를테면, 상부 참조 샘플 라인(들))로부터 유도되고, 최좌측 선택 참조 샘플이 블록의 상부-좌측 예측 샘플의 포지션에 대해 수평으로 오프셋되는, 제13 양상.
제1 내지 제13 양상들 중 임의의 양상의 방법에 대한 제14 양상으로서, 오프셋의 값이 인트라 예측 참조 라인 인덱스에 대응하거나, 오프셋의 값이 인트라 예측 참조 라인 인덱스와 연관되거나, 또는 오프셋 값이 인트라 예측 참조 라인 인덱스와 동일한, 제14 양상.
제1 내지 제14 양상들 중 임의의 양상의 방법에 대한 제15 양상으로서, DC 값(변수 dcVal)이 예측될 블록의 좌측에 위치된 참조 샘플들의 라인(이를테면, 좌측 참조 샘플 열(들))로부터 유도되며, 최상부 선택 참조 샘플들의 수직 포지션(이를테면, (x1, y)의 y)이 블록의 상부-좌측 예측 샘플의 수직 포지션(이를테면, (x2, y)의 y)과 동일한, 제15 양상.
제1 내지 제15 양상들 중 임의의 양상의 방법에 대한 제16 양상으로서, DC 값(변수 dcVal)은 예측될 블록 위에 위치된 참조 샘플들 라인(이를테면, 상부 참조 샘플 라인(들))으로부터 유도되며, 최좌측 선택 참조 샘플의 수평 포지션(이를테면, (x, y1)의 x)이 블록의 상부-좌측 예측 샘플의 수평 포지션(이를테면, (x, y2)의 x)와 동일한, 제16 양상.
본 개시내용은 16개의 추가 양상들의 다른 세트를 제공한다:
블록에 대한 인트라 예측의 방법에 대한 제1 양상으로서, 블록이 DC 인트라 예측 모드를 사용하여 예측되고, 방법이:
- ISP(intra _ subpartitions)가 (예컨대, intra_subpartitions_mode_idx 및 intra_subpartitions_mode_flag를 사용하여) 인에이블링되는 경우, 블록을 서브블록들로 서브분할하는 단계; 및
- DC 인트라 예측 모드를 사용하여 서브블록들을 인트라 예측하는 단계를 포함하는, 제1 양상.
제1 양상에 따른 방법의 제2 양상으로서, 방법이:
- 인트라 예측의 결과에 (PDPC와 같은) 포지션 의존적 예측 조합을 조건적으로 적용하는 단계를 더 포함하는, 제2 양상.
제1 및 제2 양상에 따른 방법의 제3 양상으로서, 참조 샘플들의 라인 및/또는 열이 (인트라 예측 참조 라인 인덱스 또는 참조 라인 인덱스와 같은) refIdx에 의해 지시되거나, 참조 샘플들의 라인이 다중-참조 라인 중 (제1 refIdx와 같은) refIdx에 의해 지시되는 하나의 라인이거나, 또는 단일 열이 다중-참조 열들 중 참조 샘플들의 (제2 refIdx와 같은) refIdx에 의해 지시되는 하나의 열인, 제3 양상.
제1 내지 제3 양상들 중 어느 하나에 따른 방법의 제4 양상으로서, SINGLE_TREE 파티셔닝 모드가 블록이 속한 픽처에 대해 선택되고, 방법이,
- (ISP 플래그와 같은) 제1 지시의 값에 기반하여, 예측될 블록의 루마 성분을 루마 서브블록들로 세분화하는 단계를 더 포함하며,
인트라 예측의 결과에 PDPC를 조건적으로 적용하는 단계는,
루마 서브블록들에 대해서는 PPDC의 적용을 스킵하지만, 병치된 크로마 블록(즉, 예측될 블록의 크로마 성분)에 대해서는 PDPC를 적용하는 단계를 포함하는, 제4 양상.
제1 내지 제4 양상들 중 어느 하나에 따른 방법의 제5 양상으로서, SINGLE_TREE 파티셔닝 모드가 블록이 속한 픽처에 대해 선택되고,
인트라 예측의 결과에 PDPC를 조건적으로 적용하는 단계는,
- 인트라 예측 참조 라인 인덱스가 0이 아닌 경우 블록의 루마 성분에 PPDC를 적용하는 단계;
- 병치된 크로마 블록을 예측하는 경우, 인트라 예측 참조 라인 인덱스를 0으로 추론하는 단계 및 병치된 크로마 블록 예측의 결과(이를테면, 병치된 크로마 블록의 인트라 예측 결과)에 PDPC를 적용하는 단계를 포함하는, 제5 양상.
제1 내지 제5 양상들 중 어느 하나에 따른 방법의 제6 양상으로서, DC 인트라 예측 모드가 블록의 인트라 예측을 위해 사용되며, 다중-참조 라인 예측이 인에이블링되고, 인트라 예측 참조 라인 인덱스가 0이 아닌, 제6 양상.
제1 내지 제6 양상들 중 어느 하나에 따른 방법의 제7 양상으로서, DC 값(변수 dcVal)이 예측될 블록의 좌측에 위치된 참조 샘플(이를테면, 좌측 참조 샘플 열)의 라인 및/또는 열로부터 유도되고, 참조 샘플들의 수가 DC 값을 유도하기 위해 참조 라인 및/또는 열(이를테면, 좌측 참조 샘플 열)로부터 선택되며, 참조 샘플의 수가 블록의 폭에 대응하거나 또는 참조 샘플들의 수가 블록의 높이와 동일한, 제7 양상.
제1 내지 제7 양상들 중 임의의 양상의 방법에 대한 제8 양상으로서, DC 값(변수 dcVal)이 예측될 블록의 위에 위치된 참조 샘플들의 라인(이를테면, 상부 참조 샘플 라인(들))으로부터 유도되고, 복수의 참조 샘플들이 DC 값을 유도하기 위해 참조 라인(이를테면, 상부 참조 샘플 라인(들))으로부터 선택되며, 복수의 참조 샘플들의 수가 블록의 폭과 동일하거나 또는 복수의 참조 샘플들의 수가 블록의 폭에 대응하는, 제8 양상.
제1 내지 제8 양상들 중 임의의 양상의 방법에 대한 제9 양상으로서, 선택된 참조 샘플들이 연속적인 간격 또는 연속적인 거리를 형성하는데, 즉 선택된 참조 샘플들 각각이, 또한 선택된 참조 샘플들인 수평으로 또는 수직으로 인접한 이웃 샘플들을 갖고, 그리고 선택된 참조 샘플들 중 오직 2개만이 하나의 선택된 이웃 샘플을 갖는 반면 다른 선택된 참조 샘플들은 적어도 2개의 선택된 참조 샘플들(이를테면, 이웃 샘플들)을 갖는, 제9 양상.
제1 내지 제9 양상들 중 임의의 양상의 방법에 대한 제10 양상으로서, 선택된 참조 샘플들이 수평 또는 수직 인덱스들을 특정함으로써 결정되고, 각각의 인덱스가 정수 값들의 범위에 속하는 정수 값이며, 인덱스가 참조 샘플들의 선택된 열 또는 선택된 라인 내의 수평 좌표(x') 또는 수직 좌표(y')를 특정하는, 제10 양상.
제1 내지 제10 양상들 중 임의의 양상의 방법에 대한 제11 양상으로서, DC 값(변수 dcVal)이 예측될 블록의 좌측에 위치된 참조 샘플들의 라인(이를테면, 좌측 참조 샘플 열(들))로부터 유도되고, 최상부 선택 참조 샘플이 블록의 상부-좌측 예측 샘플의 포지션에 대해 수직으로 오프셋되는, 제11 양상.
제1 내지 제11 양상들 중 임의의 양상의 방법에 대한 제12 양상으로서, 오프셋의 값이 인트라 예측 참조 라인 인덱스에 대응하거나, 오프셋의 값이 인트라 예측 참조 라인 인덱스와 연관되거나, 또는 오프셋 값이 인트라 예측 참조 라인 인덱스와 동일한, 제12 양상.
제1 내지 제12 양상들 중 임의의 양상의 방법에 대한 제13 양상으로서, DC 값(변수 dcVal)이 예측될 블록의 위에 위치된 참조 샘플들의 라인(이를테면, 상부 참조 샘플 라인(들))로부터 유도되고, 최좌측 선택 참조 샘플이 블록의 상부-좌측 예측 샘플의 포지션에 대해 수평으로 오프셋되는, 제13 양상.
제1 내지 제13 양상들 중 임의의 양상의 방법에 대한 제14 양상으로서, 오프셋의 값이 인트라 예측 참조 라인 인덱스에 대응하거나, 오프셋의 값이 인트라 예측 참조 라인 인덱스와 연관되거나, 또는 오프셋 값이 인트라 예측 참조 라인 인덱스와 동일한, 제14 양상.
제1 내지 제14 양상들 중 임의의 양상의 방법에 대한 제15 양상으로서, DC 값(변수 dcVal)이 예측될 블록의 좌측에 위치된 참조 샘플들의 라인(이를테면, 좌측 참조 샘플 열(들))로부터 유도되며, 최상부 선택 참조 샘플들의 수직 포지션(이를테면, (x1, y)의 y)이 블록의 상부-좌측 예측 샘플의 수직 포지션(이를테면, (x2, y)의 y)과 동일한, 제15 양상.
제1 내지 제15 양상들 중 임의의 양상의 방법에 대한 제16 양상으로서, DC 값(변수 dcVal)은 예측될 블록 위에 위치된 참조 샘플들 라인(이를테면, 상부 참조 샘플 라인(들))으로부터 유도되며, 최좌측 선택 참조 샘플의 수평 포지션(이를테면, (x, y1)의 x)이 블록의 상부-좌측 예측 샘플의 수평 포지션(이를테면, (x, y2)의 x)와 동일한, 제16 양상.
본 개시내용은 16개의 추가 양상들의 또 다른 세트를 제공한다:
블록에 대한 인트라 예측의 방법에 대한 제1 양상으로서, 블록이 PLANAR 인트라 예측 모드를 사용하여 예측되고, 방법이, 인트라 예측 참조 라인 인덱스(이를테면, 참조 라인 인덱스)에 기반하거나 이에 의존하는 참조 샘플 필터를 선택하는 단계; 선택된 참조 샘플 필터를 참조 샘플들의 라인 및/또는 열(이를테면, (선택된 또는 단일) 상부 참조 샘플 라인 및/또는 (선택된 또는 단일) 좌측 참조 샘플 열)에 적용하는 단계; 및 필터링된 참조 샘플들의 라인 및/또는 열로부터 참조 샘플들의 선택(또는 결정)(이를테면, 인트라 예측 참조 라인 인덱스에 기반하여, 필터링된 참조 샘플들의 라인 및/또는 열로부터 참조 샘플의 선택(또는 결정))을 포함하는, 블록을 인트라 예측하는 단계를 포함하는, 제1 양상.
제1 양상에 따른 방법의 제2 양상으로서, 방법이: 인트라 예측의 결과에 (PDPC와 같은) 포지션 의존적 예측 조합을 조건적으로 적용하는 단계를 더 포함하는, 제2 양상.
제1 및 제2 양상에 따른 방법의 제3 양상으로서, 참조 샘플들의 라인 및/또는 열이 (인트라 예측 참조 라인 인덱스 또는 참조 라인 인덱스와 같은) refIdx에 의해 지시되거나, 참조 샘플들의 라인이 다중-참조 라인 중 (제1 refIdx와 같은) refIdx에 의해 지시되는 하나의 라인이거나, 또는 단일 열이 다중-참조 열들 중 참조 샘플들의 (제2 refIdx와 같은) refIdx에 의해 지시되는 하나의 열인, 제3 양상.
제1 내지 제3 양상들 중 어느 하나에 따른 방법의 제4 양상으로서, SINGLE_TREE 파티셔닝 모드가 블록이 속한 픽처에 대해 선택되며, 방법이, (ISP 플래그와 같은) 제1 지시의 값에 기반하여, 예측될 블록의 루마 성분을 루마 서브블록들로 세분화하는 단계를 더 포함하고; 인트라 예측의 결과에 PDPC를 조건적으로 적용하는 단계는, 루마 서브블록들에 대해서는 PPDC 적용을 스킵하지만, 병치된 크로마 블록(즉, 예측될 블록의 크로마 성분)에 대해서는 PDPC를 적용하는 단계를 포함하는, 제4 양상.
제1 내지 제4 양상들 중 어느 하나에 따른 방법의 제5 양상으로서, SINGLE_TREE 파티셔닝 모드가 블록이 속한 픽처에 대해 선택되고, 인트라 예측의 결과에 PDPC를 조건적으로 적용하는 단계는,
- 인트라 예측 참조 라인 인덱스가 0이 아닌 경우 블록의 루마 성분에 PPDC를 적용하는 단계; 병치된 크로마 블록을 예측하는 경우, 인트라 예측 참조 라인 인덱스를 0으로 추론하는 단계 및 병치된 크로마 블록 예측의 결과(이를테면, 병치된 크로마 블록의 인트라 예측 결과)에 PDPC를 적용하는 단계를 포함하는, 제5 양상.
제1 내지 제5 양상들 중 어느 하나에 따른 방법의 제6 양상으로서, DC 인트라 예측 모드가 블록의 인트라 예측을 위해 사용되며, 다중-참조 라인 예측이 인에이블링되고, 인트라 예측 참조 라인 인덱스가 0이 아닌, 제6 양상.
제1 내지 제6 양상들 중 어느 하나에 따른 방법의 제7 양상으로서, DC 값(변수 dcVal)이 예측될 블록의 좌측에 위치된 참조 샘플(이를테면, 좌측 참조 샘플 열)의 라인 및/또는 열로부터 유도되고, 참조 샘플들의 수가 DC 값을 유도하기 위해 참조 라인 및/또는 열(이를테면, 좌측 참조 샘플 열)로부터 선택되며, 참조 샘플의 수가 블록의 폭에 대응하거나 또는 참조 샘플들의 수가 블록의 높이와 동일한, 제7 양상.
제1 내지 제7 양상들 중 임의의 양상의 방법에 대한 제8 양상으로서, DC 값(변수 dcVal)이 예측될 블록의 위에 위치된 참조 샘플들의 라인(이를테면, 상부 참조 샘플 라인(들))으로부터 유도되고, 복수의 참조 샘플들이 DC 값을 유도하기 위해 참조 라인(이를테면, 상부 참조 샘플 라인(들))으로부터 선택되며, 복수의 참조 샘플들의 수가 블록의 폭과 동일하거나 또는 복수의 참조 샘플들의 수가 블록의 폭에 대응하는, 제8 양상.
제1 내지 제8 양상들 중 임의의 양상의 방법에 대한 제9 양상으로서, 선택된 참조 샘플들이 연속적인 간격 또는 연속적인 거리를 형성하는데, 즉 선택된 참조 샘플들 각각이, 또한 선택된 참조 샘플들인 수평으로 또는 수직으로 인접한 이웃 샘플들을 갖고, 그리고 선택된 참조 샘플들 중 오직 2개만이 하나의 선택된 이웃 샘플을 갖는 반면 다른 선택된 참조 샘플들은 적어도 2개의 선택된 참조 샘플들(이를테면, 이웃 샘플들)을 갖는, 제9 양상.
제1 내지 제9 양상들 중 임의의 양상의 방법에 대한 제10 양상으로서, 선택된 참조 샘플들이 수평 또는 수직 인덱스들을 특정함으로써 결정되고, 각각의 인덱스가 정수 값들의 범위에 속하는 정수 값이며, 인덱스가 참조 샘플들의 선택된 열 또는 선택된 라인 내의 수평 좌표(x') 또는 수직 좌표(y')를 특정하는, 제10 양상.
제1 내지 제10 양상들 중 임의의 양상의 방법에 대한 제11 양상으로서, DC 값(변수 dcVal)이 예측될 블록의 좌측에 위치된 참조 샘플들의 라인(이를테면, 좌측 참조 샘플 열(들))로부터 유도되고, 최상부 선택 참조 샘플이 블록의 상부-좌측 예측 샘플의 포지션에 대해 수직으로 오프셋되는, 제11 양상.
제1 내지 제11 양상들 중 임의의 양상의 방법에 대한 제12 양상으로서, 오프셋의 값이 인트라 예측 참조 라인 인덱스에 대응하거나, 오프셋의 값이 인트라 예측 참조 라인 인덱스와 연관되거나, 또는 오프셋 값이 인트라 예측 참조 라인 인덱스와 동일한, 제12 양상.
제1 내지 제12 양상들 중 임의의 양상의 방법에 대한 제13 양상으로서, DC 값(변수 dcVal)이 예측될 블록의 위에 위치된 참조 샘플들의 라인(이를테면, 상부 참조 샘플 라인(들))으로부터 유도되고, 최좌측 선택 참조 샘플이 블록의 상부-좌측 예측 샘플의 포지션에 대해 수평으로 오프셋되는, 제13 양상.
제1 내지 제13 양상들 중 임의의 양상의 방법에 대한 제14 양상으로서, 오프셋의 값이 인트라 예측 참조 라인 인덱스에 대응하거나, 오프셋의 값이 인트라 예측 참조 라인 인덱스와 연관되거나, 또는 오프셋 값이 인트라 예측 참조 라인 인덱스와 동일한, 제14 양상.
제1 내지 제14 양상들 중 임의의 양상의 방법에 대한 제15 양상으로서, DC 값(변수 dcVal)이 예측될 블록의 좌측에 위치된 참조 샘플들의 라인(이를테면, 좌측 참조 샘플 열(들))로부터 유도되며, 최상부 선택 참조 샘플들의 수직 포지션(이를테면, (x1, y)의 y)이 블록의 상부-좌측 예측 샘플의 수직 포지션(이를테면, (x2, y)의 y)과 동일한, 제15 양상.
제1 내지 제15 양상들 중 임의의 양상의 방법에 대한 제16 양상으로서, DC 값(변수 dcVal)은 예측될 블록 위에 위치된 참조 샘플들 라인(이를테면, 상부 참조 샘플 라인(들))으로부터 유도되며, 최좌측 선택 참조 샘플의 수평 포지션(이를테면, (x, y1)의 x)이 블록의 상부-좌측 예측 샘플의 수평 포지션(이를테면, (x, y2)의 x)와 동일한, 제16 양상.
본 개시내용은, 다음과 같이, 이전 3개의 세트의 양상들의 방법에 대한 각각의 양상에 대해 결합하는, 다음의 디바이스 및 시스템 양상들을 추가로 제공한다:
디코더의 양상으로서, 하나 이상의 프로세서들; 및 프로세서들에 커플링되고 프로세서들에 의한 실행을 위한 프로그래밍을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체를 포함하며, 프로그래밍은, 프로세서들에 의해 실행될 때, 앞서 열거된 3개의 세트들의 양상들 중 임의의 세트의 제1 내지 제16 양상들 중 임의의 하나에 따른 방법을 수행하도록 디코더를 구성하는, 디코더의 양상.
인코더의 양상으로서, 하나 이상의 프로세서들; 및 프로세서들에 커플링되고 프로세서들에 의한 실행을 위한 프로그래밍을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체를 포함하며, 프로그래밍은, 프로세서들에 의해 실행될 때, 앞서 열거된 3개의 세트들의 양상들 중 임의의 세트의 제1 내지 제16 양상들 중 임의의 하나에 따른 방법을 수행하도록 인코더를 구성하는, 인코더의 양상.
인코더의 양상으로서, 앞서 열거된 3개 세트들의 양상들 중 임의의 세트의 제1 내지 제16 양상들 중 임의의 하나에 따른 방법을 실행하기 위한 프로세싱 회로부를 포함하는, 인코더의 양상.
디코더(30)의 양상으로서, 앞서 열거된 3개의 세트들의 양상들 중 임의의 세트의 제1 내지 제16 양상들 중 임의의 하나에 따른 방법을 실행하기 위한 프로세싱 회로부를 포함하는, 디코더(30)의 양상.
컴퓨터 프로그램 제품의 양상으로서, 앞서 열거된 3개 세트들의 양상들 중 임의의 세트의 제1 내지 제16 양상들 중 임의의 하나에 따른 방법을 수행하기 위한 프로그램 코드를 포함하는, 컴퓨터 프로그램 제품의 양상.
디코더의 양상으로서, 하나 이상의 프로세서들; 및 프로세서들에 커플링되고 프로세서들에 의한 실행을 위한 프로그래밍을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체를 포함하며, 프로그래밍은, 프로세서들에 의해 실행될 때, 앞서 열거된 3개의 세트들의 양상들 중 임의의 세트의 제1 내지 제16 양상들 중 임의의 하나에 따른 방법을 수행하도록 디코더를 구성하는, 디코더의 양상.
인코더의 양상으로서, 하나 이상의 프로세서들; 및 프로세서들에 커플링되고 프로세서들에 의한 실행을 위한 프로그래밍을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체를 포함하며, 프로그래밍은, 프로세서들에 의해 실행될 때, 앞서 열거된 3개의 세트들의 양상들 중 임의의 세트의 제1 내지 제16 양상들 중 임의의 하나에 따른 방법을 수행하도록 인코더를 구성하는, 인코더의 양상.
컴퓨터 디바이스에 의해 실행될 때, 컴퓨터 디바이스로 하여금, 앞서 열거된 3개의 세트들의 양상들 중 임의의 세트의 제1 내지 제16 양상들 중 임의의 하나에 따른 방법을 수행하게 하는, 프로그램 코드를 보유하는 비-일시적 컴퓨터-판독가능 매체의 양상.
선행 기술의 비디오 코딩(예컨대, 다용도 비디오 코딩(Versatile Video Coding))은, VVC 사양 초안에 후보 인트라 예측 모드(candModeList)로서 또한 알려진 가장 가능성있는 모드(MPM: most probable mode) 리스트의 개념을 사용하여 시그널링되는 방향성, DC 및 평면 인트라 예측 모드들을 포함한다. MRL이 사용 중(참조 라인 인덱스가 0이 아님)인 경우, DC 및 평면 인트라 예측 모드들이 선택된 참조 라인 내에서 상이한 포지션들의 참조 샘플들을 사용하는 것이 발생할 수 있다.
본 발명의 실시예들은 MRL 및 비-방향성 인트라 예측(즉, DC 또는 평면)의 조화를 도입한다. 조화는 참조 샘플 세트들을 변환 블록의 상부-좌측 샘플의 포지션과 정렬시키는 것으로 구성된다.
본 발명의 실시예들의 이면의 이론적 근거들 중 하나는, DC 및 평면 모드 둘 다가 MPM 리스트에 표현될 수 있도록 하는 가장 가능성있는 모드(MPM; MOST PROBABLE MODE) 리스트 유도의 통합이다. 이러한 통합은, 하드웨어 및 소프트웨어 구현들 둘 모두에 유익한 조건적 분기부들의 총 수를 감소시킴으로써 MPM에서 시그널링된 모드들의 프로세싱을 더 규칙적으로 만든다.
다음은 상술된 실시예들에 도시된 바와 같은 인코딩 방법뿐만 아니라 디코딩 방법의 적용 및 이를 사용하는 시스템에 대한 설명이다.
도 17은 콘텐츠 분배 서비스를 실현하기 위한 콘텐츠 공급 시스템(3100)을 도시하는 블록도이다. 이 콘텐츠 공급 시스템(3100)은 캡처 디바이스(3102), 단말 디바이스(3106)를 포함하고, 선택적으로 디스플레이(3126)를 포함한다. 캡처 디바이스(3102)는 통신 링크(3104)를 통해 단말 디바이스(3106)와 통신한다. 통신 링크는 앞서 설명된 통신 채널(13)을 포함할 수 있다. 통신 링크(3104)는, 이로 제한되는 것은 아니지만, WIFI, 이더넷, 케이블, 무선(3G/4G/5G), USB, 또는 이들의 임의의 종류의 조합 등을 포함한다.
캡처 디바이스(3102)는 데이터를 생성하고, 앞선 실시예들에서 도시된 바와 같이 인코딩 방법에 의해 데이터를 인코딩할 수 있다. 대안적으로, 캡처 디바이스(3102)는 데이터를 스트리밍 서버(도면들에는 도시되지 않음)에 분배할 수 있고, 서버는 데이터를 인코딩하고 인코딩된 데이터를 단말 디바이스(3106)에 전송한다. 캡처 디바이스(3102)는, 이로 제한되는 것은 아니지만, 카메라, 스마트 폰 또는 패드, 컴퓨터 또는 랩톱, 화상 회의 시스템, PDA, 차량 탑재 디바이스, 또는 이들 중 임의의 것의 조합 등을 포함한다. 예컨대, 캡처 디바이스(3102)는 위에서 설명된 바와 같은 소스 디바이스(12)를 포함할 수 있다. 데이터가 비디오를 포함하는 경우, 캡처 디바이스(3102)에 포함된 비디오 인코더(20)는 실제로 비디오 인코딩 프로세싱을 수행할 수 있다. 데이터가 오디오(즉, 음성)를 포함하는 경우, 캡처 디바이스(3102)에 포함된 오디오 인코더는 실제로 오디오 인코딩 프로세싱을 수행할 수 있다. 일부 실제 시나리오들의 경우, 캡처 디바이스(3102)는, 인코딩된 비디오 및 오디오 데이터를 함께 멀티플렉싱함으로써 이들을 분배한다. 다른 실제 시나리오들의 경우, 예컨대 화상 회의 시스템에서, 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터는 멀티플렉싱되지 않는다. 캡처 디바이스(3102)는, 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터를 단말 디바이스(3106)에 개별적으로 분배한다.
콘텐츠 공급 시스템(3100)에서, 단말 디바이스(310)는 인코딩된 데이터를 수신하고 재생한다. 단말 디바이스(3106)는, 데이터 수신 및 복원 능력을 갖는 디바이스, 이를테면 스마트 폰 또는 패드(3108), 컴퓨터 또는 랩톱(3110), 네트워크 비디오 레코더(NVR)/디지털 비디오 레코더(DVR)(3112), TV(3114), 셋톱 박스(STB)(3116), 화상 회의 시스템(3118), 비디오 감시 시스템(3120), PDA(personal digital assistant)(3122), 차량 탑재 디바이스(3124), 또는 이들 중 임의의 것의 조합, 또는 위에서 언급된 인코딩된 데이터의 디코딩이 가능한 것일 수 있다. 예컨대, 단말 디바이스(3106)는 위에서 설명된 바와 같은 목적지 디바이스(14)를 포함할 수 있다. 인코딩된 데이터가 비디오를 포함하는 경우, 단말 디바이스에 포함된 비디오 디코더(30)는 비디오 디코딩을 수행하도록 우선순위화된다. 인코딩된 데이터가 오디오를 포함하는 경우, 단말 디바이스에 포함된 오디오 디코더는 오디오 디코딩 프로세싱을 수행하도록 우선순위화된다.
자체 디스플레이를 갖는 단말 디바이스의 경우, 예컨대, 스마트 폰 또는 패드(3108), 컴퓨터 또는 랩톱(3110), 네트워크 비디오 레코더(NVR)/디지털 비디오 레코더(DVR)(3112), TV(3114), 개인용 정보 단말기(PDA)(3122) 또는 차량 탑재 디바이스(3124)의 경우, 단말 디바이스는 디코딩된 데이터를 자신의 디스플레이에 피딩할 수 있다. 디스플레이가 구비되지 않은 단말 디바이스의 경우, 예컨대, STB(3116), 화상 회의 시스템(3118) 또는 비디오 감시 시스템(3120)의 경우, 디코딩된 데이터를 수신하고 표시하기 위해, 외부 디스플레이(3126)가 그 디바이스에 접속된다.
이 시스템에서의 각각의 디바이스가 코딩 또는 디코딩을 수행하는 경우, 위에서 언급된 실시예들에 도시된 바와 같은 픽처 코딩 디바이스 또는 픽처 디코딩 디바이스가 사용될 수 있다.
도 18은 단말 디바이스(3106)의 예의 구조를 도시하는 도면이다. 단말 디바이스(3106)가 캡처 디바이스(3102)로부터 스트림을 수신한 후에, 프로토콜 진행 유닛(3202)은 스트림의 전송 프로토콜을 분석한다. 프로토콜은, 이로 제한되는 것은 아니지만, 실시간 스트리밍 프로토콜(RTSP), 하이퍼 텍스트 전송 프로토콜(HLS), HTTP 라이브 스트리밍 프로토콜(HLS), MPEG-DASH, 실시간 전송 프로토콜(RTP), 실시간 메시징 프로토콜(RTMP), 또는 이들의 임의의 종류의 조합 등을 포함한다.
프로토콜 진행 유닛(3202)이 스트림을 프로세싱한 후에, 스트림 파일이 생성된다. 파일은 디멀티플렉싱 유닛(3204)에 출력된다. 디멀티플렉싱 유닛(3204)은 멀티플렉싱된 데이터를 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터로 분리할 수 있다. 위에서 설명된 바와 같이, 일부 실제 시나리오들의 경우, 예컨대 화상 회의 시스템에서, 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터는 멀티플렉싱되지 않는다. 이러한 상황에서, 인코딩된 데이터는 디멀티플렉싱 유닛(3204)을 통하지 않고 비디오 디코더(3206) 및 오디오 디코더(3208)에 전송된다.
디멀티플렉싱 프로세싱을 통해, 비디오 ES(elementary stream), 오디오 ES, 및 선택적으로 서브타이틀이 생성된다. 위에서 언급된 실시예들에서 설명된 바와 같은 비디오 디코더(30)를 포함하는 비디오 디코더(3206)는, 비디오 프레임을 생성하기 위해 위에서 언급된 실시예들에서 도시된 바와 같은 디코딩 방법에 의해 비디오 ES를 디코딩하고 이 데이터를 동기화 유닛(3212)에 피딩한다. 오디오 디코더(3208)는, 오디오 프레임을 생성하기 위해 오디오 ES를 디코딩하고 이 데이터를 동기화 유닛(3212)에 피딩한다. 대안적으로, 비디오 프레임이 동기화 유닛(3212)에 피딩되기 전에, 이는 버퍼(도 18에는 도시되지 않음)에 저장할 수 있다. 유사하게, 오디오 프레임이 동기화 유닛(3212)에 피딩되기 전에, 이는 버퍼(도 18에는 도시되지 않음)에 저장할 수 있다.
동기화 유닛(3212)은, 비디오 프레임 및 오디오 프레임을 동기화하고 비디오/오디오를 비디오/오디오 디스플레이(3214)에 공급한다. 예컨대, 동기화 유닛(3212)은 비디오 및 오디오 정보의 프리젠테이션을 동기화한다. 정보는, 코딩된 오디오 및 시각적 데이터의 프리젠테이션에 관한 타임 스탬프들 및 데이터 스트림 자체의 전달에 관한 타임 스탬프들을 사용하여 신택스에서 코딩될 수 있다.
서브타이틀이 스트림에 포함되는 경우, 서브타이틀 디코더(3210)는, 서브타이틀을 디코딩하고 이를 비디오 프레임 및 오디오 프레임과 동기화하고 그리고 비디오/오디오/서브타이틀을 비디오/오디오/서브타이틀 디스플레이(3216)에 공급한다.
본 발명은, 위에서 언급된 시스템으로 제한되지 않으며, 위에서 언급된 실시예들에서의 픽처 인코딩 디바이스 또는 픽처 디코딩 디바이스는 다른 시스템, 예컨대 자동차 시스템에 통합될 수 있다.
수학 연산자들
본 출원에서 사용되는 수학 연산자들은 C 프로그래밍 언어에서 사용되는 것들과 유사하다. 그러나, 정수 나눗셈 및 산술 시프트 연산들의 결과들은 더 정확하게 정의되고, 부가적인 연산들, 이를테면, 지수화 및 실수-값 나눗셈이 정의된다. 넘버링 및 카운팅 규정들은 일반적으로, 0으로부터 시작하는데, 예컨대, "첫번째"는 0번째와 동등하고, "두번째"는 1번째와 동등하다.
산술 연산자들
하기의 산술 연산자들은 다음과 같이 정의된다:
+ 덧셈
- 뺄셈(2-인수 연산자) 또는 부정(단항 전치 연산자)
* 행렬 곱셈을 포함한 곱셈
xy 지수화. x의 y 승을 특정한다. 다른 상황들에서는, 이러한 표기는 지수화로서 해석할 의도가 아닌 위첨자에 사용된다
/ 결과가 0으로 잘라버림(truncation)되는 정수 나눗셈. 예컨대, 7/4 및 -7/-4은 1로 잘라버림되고, -7/4 및 7/-4는 -1로 잘라버림된다.
÷ 잘라버림 또는 반올림(rounding)이 의도되지 않는 수학 방정식에서의 나눗셈을 표기하기 위해 사용된다.
Figure pct00117
잘라버림 또는 반올림이 의도되지 않는 수학 방정식에서의 나눗셈을 표기하기 위해 사용된다.
Figure pct00118
i가 x로부터 y까지(y 포함)의 모든 정수 값들을 취하는 f(i)의 합산.
Figure pct00119
모듈러스. x를 y로 나눈 것의 나머지, x >= 0 및 y > 0인 x 및 y 정수들에 대해서만 정의된다.
논리 연산자들
하기의 논리 연산자들이 다음과 같이 정의된다:
Figure pct00120
x와 y의 부울 논리(Boolean logical) "and"
Figure pct00121
x와 y의 부울 논리 "or"
Figure pct00122
부울 논리 "not"
Figure pct00123
x가 참이거나 0이 아니면, y의 값으로 어림되고; 그렇지 않으면, z의 값으로 어림된다.
관계 연산자들
하기의 관계 연산자들은 다음과 같이 정의된다:
> 보다 큼
Figure pct00124
이상
< 미만
Figure pct00125
이하
= = 같음
Figure pct00126
같지 않음
관계 연산자가 "na" 값(해당 사항 없음)가 할당된 신택스 엘리먼트 또는 변수에 적용될 때, "na" 값은 신택스 엘리먼트 또는 변수에 대한 고유 값(distinct value)으로 처리된다. 값 "na"는 임의의 다른 값과 동일하지 않은 것으로 간주된다.
비트 단위(bit-wise) 연산자들
하기의 비트 단위 연산자들은 다음과 같이 정의된다:
& 비트 단위 "and". 정수 인수들에 대해 연산할 때, 정수 값의 2의 보수 표현에 대해 연산한다. 다른 인수보다 더 적은 비트들을 포함하는 바이너리 인수에 대해 연산할 때, 더 짧은 인수는 0과 동일한 최상위 비트들을 추가함으로써 확장된다.
| 비트 단위 "or". 정수 인수들에 대해 연산할 때, 정수 값의 2의 보수 표현에 대해 연산한다. 다른 인수보다 더 적은 비트들을 포함하는 바이너리 인수에 대해 연산할 때, 더 짧은 인수는 0과 동일한 최상위 비트들을 추가함으로써 확장된다.
^ 비트 단위 "배타적 or". 정수 인수들에 대해 연산할 때, 정수 값의 2의 보수 표현에 대해 연산한다. 다른 인수보다 더 적은 비트들을 포함하는 바이너리 인수에 대해 연산할 때, 더 짧은 인수는 0과 동일한 최상위 비트들을 추가함으로써 확장된다.
x >>y x의 2의 보수 정수 표현을 y 이진 숫자들로 산술 우측 시프트. 이 함수는 y의 음이 아닌 정수 값들에 대해서만 정의된다. 우측 시프트의 결과로서 MSB(most significant bits)들로 시프트된 비트들은 시프트 연산 이전의 x의 MSB와 동일한 값을 갖는다.
x << y x의 2의 보수 정수 표현을 y 이진 숫자들로 산술 좌측 시프트. 이 함수는 y의 음이 아닌 정수 값들에 대해서만 정의된다. 좌측 시프트의 결과로서 최하위 비트(LSB)들로 시프트된 비트들은 0과 동일한 값을 갖는다.
할당 연산자들
다음의 산술 연산자들은 다음과 같이 정의된다:
= 할당 연산자
+ + 증분, 즉, x++는 x = x + 1과 등가이고; 어레이 인덱스에서 사용되는 경우, 증분 연산 이전의 변수의 값으로 어림된다.
- - 감소, 즉, x--는 x = x - 1과 등가이고; 어레이 인덱스에서 사용되는 경우, 감소 연산 이전의에 변수의 값으로 어림된다.
+= 지정된 양만큼의 증분, 즉, x + = 3은 x = x + 3과 등가이고, 그리고
x + =(-3)는 x = x +(-3)와 등가이다.
-= 지정된 양만큼의 감소, 즉, x -= 3은 x = x - 3과 등가이고, 그리고
x -=(-3)는 x = x -(-3)과 등가이다.
범위 표기
하기의 표기는 값들의 범위를 특정하는 데 사용된다:
Figure pct00127
x는 y에서 z까지(y 및 z를 포함)의 정수 값들을 취하며, x, y 및 z는 정수들이고 z는 y보다 크다.
수학 함수들
하기의 수학 함수들이 정의된다:
Figure pct00128
Asin(x) -1.0 내지 1.0(-1.0 및 1.0 포함) 범위에 있는 인수 x에 대해 연산되고 출력 값이 라디안 단위로 π÷2 내지 π÷2(π÷2 및 π÷2 포함) 범위인, 역삼각 사인 함수.
Asin(x) 인수 x에 대해 연산되고 출력 값이 라디안 단위로 π÷2 내지 π÷2(π÷2 및 π÷2 포함) 범위인, 역삼각 탄젠트 함수.
Figure pct00129
Ceil(x) x 이상인 가장 작은 정수.
Figure pct00130
Cos(x) 라디안 단위의 인수 x에 대해 연산되는 삼각 코사인 함수.
Floor(x) x 이하인 가장 큰 정수.
Figure pct00131
Ln(x) x의 자연 로그(natural logarithm)(base-e 로그, 여기서 e는 자연 로그 기본 상수 2.718 281 828...)임.
Log2(x) x의 밑이 2인 로그.
Log10(x) x의 밑이 10인 로그.
Figure pct00132
Figure pct00133
Sin(x) 라디안 단위의 인수 x에 대해 연산되는 삼각 사인 함수
Figure pct00134
Tan(x) 라디안 단위의 인수 x에 대해 연산되는 삼각 탄젠트 함수
연산 우선순위 순서
식에서의 우선순위의 순서가 괄호를 사용하여 명시적으로 지시되지 않는 경우, 다음의 규칙들이 적용된다:
- 더 높은 우선순위의 연산들은 더 낮은 우선순위의 연산 이전에 어림된다.
- 동일한 우선순위의 연산들은 좌측에서 우축으로 순차적으로 어림된다.
아래의 표는 가장 높은 것부터 가장 낮은 것으로 연산들의 우선순위를 특정한다; 표에서 더 높은 포지션은 더 높은 우선순위를 지시한다.
C 프로그래밍 언어에서도 또한 사용되는 그러한 연산자들의 경우, 본 명세서에서 사용되는 우선순위의 순서는 C 프로그래밍 언어에서 사용되는 것과 동일하다.
Figure pct00135
<(표의 상단에서의) 가장 높은 것으로부터 (표의 하단에서의) 가장 낮은 것까지의 연산 우선순위>
논리 연산들의 텍스트 설명
텍스트에서, 하기의 형태:
Figure pct00136
로 수학적으로 설명되는 논리 연산들의 명령문은, 하기의 방식으로 설명될 수 있다:
Figure pct00137
각각의 "If... Otherwise, if...Otherwise,..." 텍스트로 된 명령문은, "...as follows" 또는 "...the following applies"로 시작되고 바로 뒤에 "If... "이 온다. "If...Otherwise, if...Otherwise,..."의 마지막 조건은 항상 "Otherwise,..."이다. 인터리빙된 "If...Otherwise, if...Otherwise,..." 명령문은 "...as follows" 또는 "...the following applies"를 "Otherwise,..."의 끝맺음으로 매칭시킴으로써 식별될 수 있다.
텍스트에서, 하기의 형태:
Figure pct00138
로 수학적으로 설명되는 논리 연산들의 명령문은, 하기의 방식으로 설명될 수 있다:
Figure pct00139
텍스트에서, 하기의 형태:
Figure pct00140
로 수학적으로 설명되는 논리 연산들의 명령문은, 하기의 방식으로 설명될 수 있다:
Figure pct00141
본 발명의 실시예들이 주로 비디오 코딩에 기반하여 설명되었지만, 코딩 시스템(10), 인코더(20) 및 디코더(30)(및 이에 대응하여 시스템(10))의 실시예들 및 본원에서 설명되는 다른 실시예들이 또한, 스틸 픽처(still picture) 프로세싱 또는 코딩 즉, 비디오 코딩에서와 같이 임의의 선행 또는 연속 픽처와 독립적인 개별 픽처의 프로세싱 또는 코딩을 위해 구성될 수 있다는 것이 주목되어야 한다. 일반적으로, 픽처 프로세싱 코딩이 단일 픽처(17)로 제한되는 경우에는 인터-예측 유닛들(인코더(244) 및 디코더(344))만이 이용가능하지 않을 수 있다. 비디오 인코더(20) 및 비디오 디코더(30)의 다른 모든 기능들(또한, 툴들 또는 기술들로 지칭됨)은 스틸 픽처 프로세싱, 예컨대, 잔차 계산(204/304), 변환(206), 양자화(208), 역양자화(210/310), (역)변환(212/312), 파티셔닝(262/362), 인트라 예측(254/354), 및/또는 루프 필터링(220, 320), 및 엔트로피 코딩(270) 및 엔트로피 디코딩(304)에 동일하게 사용될 수 있다.
예컨대 인코더(20) 및 디코더(30) 그리고, 예컨대 인코더(20) 및 디코더(30)를 참조하여, 본원에서 설명되는 기능들의 실시예들은, 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능들은 컴퓨터-판독가능 매체에 저장되거나 또는 하나 이상의 명령들 또는 코드로서 통신 매체를 통해 전송되며 하드웨어-기반 프로세싱 유닛에 의해 실행될 수 있다. 컴퓨터-판독가능 매체들은, 예를 들어, 통신 프로토콜에 따라, 일 장소에서 다른 장소로의 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체들을 포함하는 유형의 매체(tangible medium), 예를 들어, 데이터 저장 매체 또는 통신 매체에 대응하는 컴퓨터-판독가능 저장 매체를 포함할 수 있다. 이러한 방식으로, 컴퓨터-판독가능 매체는 일반적으로, (1) 비-일시적인 유형의(tangible) 컴퓨터-판독가능 저장 매체 또는 (2) 신호 또는 캐리어파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체들은, 본 개시내용에 설명된 기법들의 구현을 위해 명령들, 코드 및/또는 데이터 구조들을 리트리브하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 이용가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수 있다.
제한이 아닌 예로서, 그러한 컴퓨터-판독가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장부, 자기 디스크 저장부 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고, 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결수단(connection)이 컴퓨터-판독가능 매체로 적절히 지칭된다. 예를 들어, 명령들이 동축 케이블, 광섬유 케이블, 꼬임 쌍선, 디지털 가입자 회선(DSL: digital subscriber line), 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 송신된다면, 동축 케이블, 광섬유 케이블, 꼬임 쌍선, DSL, 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들이 매체의 정의에 포함된다. 그러나, 컴퓨터-판독가능 저장 매체 및 데이터 저장 매체는 접속들, 캐리어파들, 신호들 또는 다른 일시적 매체를 포함하지 않지만, 그 대신 비일시적 유형의 저장 매체에 관한 것임을 이해해야 한다. 본원에서 사용된 것과 같은 디스크(disk 및 disc)는 콤팩트 디스크(CD: compact disc), 레이저 디스크(laser disc), 광 디스크(optical disc), 디지털 다기능 디스크(DVD: digital versatile disc), 플로피 디스크(floppy disk) 및 블루레이 디스크(disc)를 포함하며, 여기서 디스크(disk)들은 통상 데이터를 자기적으로 재생하는 한편, 디스크(disc)들은 데이터를 레이저들에 의해 광학적으로 재생한다. 전술한 것들의 결합들이 또한 컴퓨터-판독가능 매체의 범위 내에 포함되어야 한다.
명령들은, 하나 이상의 디지털 신호 프로세서(DSP)들, 범용 마이크로프로세서들, 주문형 집적 회로(ASIC)들, 필드 프로그래밍가능 로직 어레이(FPGA)들, 또는 다른 동등한 집적 또는 이산 로직 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수 있다. 이에 따라, 본원에서 사용된 바와 같은, "프로세서"라는 용어는, 본원에 설명된 기법들의 구현에 적합한 전술한 구조 또는 임의의 다른 구조 중 임의의 구조를 지칭할 수 있다. 부가적으로, 일부 양상들에서, 본원에 설명된 기능은, 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에서 제공되거나, 결합된 코덱으로 포함될 수도 있다. 또한, 기법들은 하나 또는 그 초과의 회로들 또는 로직 엘리먼트로 완전히 구현될 수 있다.
본 개시내용의 기법들은 무선 핸드셋, 집적 회로(IC: integrated circuit) 또는 IC들의 세트(예컨대, 칩셋)를 포함하는 매우 다양한 디바이스들 또는 장치들에서 구현될 수 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은, 기재된 기법들을 수행하도록 구성된 디바이스들의 기능 양상들을 강조하기 위해 본 발명에서 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구할 필요는 없다. 오히려, 상술된 바와 같이, 다양한 유닛들은, 코덱 하드웨어 유닛으로 결합될 수도 있거나, 적절한 소프트웨어 및/또는 펌웨어와 함께 전술된 바와 같은 하나 또는 그 초과의 프로세서들을 포함하는 상호동작하는 하드웨어 유닛들의 집합에 의해 제공될 수 있다.

Claims (45)

  1. 블록에 대한 DC 인트라 예측 모드(DC intra prediction mode)의 인트라 예측 방법으로서,
    변환 블록의 인트라 예측 참조 라인 인덱스(intra prediction reference line index)의 값을 획득하는 단계;
    참조 라인으로부터의 참조 샘플들에 기반하여 상기 변환 블록의 예측 샘플들을 획득하는 단계
    를 포함하며, 상기 참조 라인은 상기 인트라 예측 참조 라인 인덱스의 값에 의해 인덱싱되는, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  2. 제1항에 있어서,
    상기 변환 블록의 폭이 상기 변환 블록의 높이보다 더 큰 경우, 상부(top) 참조 라인으로부터의 참조 샘플들만이 상기 예측 샘플들을 획득하는 데 사용되는, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  3. 제1항에 있어서,
    상기 변환 블록의 높이가 상기 변환 블록의 폭보다 더 큰 경우, 좌측 참조 라인으로부터의 참조 샘플들만이 상기 예측 샘플들을 획득하는 데 사용되는, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  4. 제1항에 있어서,
    상기 변환 블록의 높이가 상기 변환 블록의 폭과 동일한 경우, 좌측 참조 라인으로부터의 참조 샘플들과 상부 참조 라인으로부터의 참조 샘플들 둘 다가 상기 예측 샘플들을 획득하는 데 사용되는, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 인트라 예측 참조 라인 인덱스의 값은 intra _ luma _ref_ idx에 의해 지시되는, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 인트라 예측 참조 라인 인덱스의 값을 획득하는 단계는,
    다중-참조 라인(MRL) 예측이 인에이블링(enable)되는지 여부를 결정하는 단계;
    상기 MRL 예측이 인에이블링되는 경우, 상기 인트라 예측 참조 라인 인덱스의 값을 획득하는 단계
    를 포함하는, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법은,
    상기 인트라 예측 참조 라인 인덱스의 값이 0(zero)인 경우, 포지션-의존적 예측 조합(PDPC: position-dependent prediction combination)을 상기 예측 샘플들에 적용하는 단계; 또는
    상기 인트라 예측 참조 라인 인덱스의 값이 0이 아닌 경우, 상기 PDPC를 상기 예측 샘플들에 적용하는 것을 스킵(skip)하는 단계
    를 더 포함하는, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 인트라 예측 참조 라인 인덱스의 값은 0, 1, 또는 2인, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  9. 제2항 또는 제4항에 있어서,
    상기 참조 샘플들의 수는 상기 변환 블록의 폭에 대응하는, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  10. 제3항 또는 제4항에 있어서,
    상기 참조 샘플들의 수는 상기 변환 블록의 높이에 대응하는, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 참조 샘플들은 상기 참조 라인 내에서 연속적인 간격 또는 연속적인 거리를 형성하는, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 참조 샘플들은 수평 인덱스 또는 수직 인덱스를 특정함으로써 결정되고, 상기 인덱스들 각각은 정수 값들의 범위에 속하는 정수 값이고, 그리고 상기 인덱스들은 각각 상기 참조 라인 내에서 수평 좌표(x') 또는 수직 좌표(y')를 특정하는, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  13. 제12항에 있어서,
    오프셋은, 상기 변환 블록의 참조 샘플들의 좌측 열(left column)의 상부-좌측(top-left) 예측 샘플의 수직 포지션과 최좌측(left-most) 참조 샘플의 수직 인덱스 간의 차이인, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  14. 제12항에 있어서,
    오프셋은, 상기 변환 블록의 참조 샘플들의 상부 행(top row)의 상부-좌측 예측 샘플의 수평 포지션과 최상부(top-most) 참조 샘플의 수평 인덱스 간의 차이인, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  15. 제1항, 제3항, 제4항, 제10항 또는 제14항에 있어서,
    상기 참조 라인의 최상부 참조 샘플은 상기 변환 블록의 상부-좌측 예측 샘플의 포지션에 대해 수직으로 오프셋되는, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  16. 제1항, 제2항, 제4항, 제9항 또는 제13항에 있어서,
    상기 참조 라인의 최좌측 참조 샘플은 상기 변환 블록의 상부-좌측 예측 샘플의 포지션에 대해 수평으로 오프셋되는, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  17. 제13항 내지 제16항 중 어느 한 항에 있어서,
    상기 오프셋의 값은 상기 인트라 예측 참조 라인 인덱스의 값과 동일한, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  18. 제1항, 제3항, 제4항, 및 제10항, 제14항, 제15항 및 제17항 중 어느 한 항에 있어서,
    상기 참조 라인의 최상부 참조 샘플의 수직 포지션은 상기 변환 블록의 상부-좌측 예측 샘플의 수직 포지션과 동일한, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  19. 제1항, 제2항, 제4항, 제10항, 제13항, 제16항 및 제17항 중 어느 한 항에 있어서,
    상기 참조 라인의 최좌측 참조 샘플의 수평 포지션은 상기 변환 블록의 상부-좌측 예측 샘플의 수평 포지션과 동일한, 블록에 대한 DC 인트라 예측 모드의 인트라 예측 방법.
  20. 디코더(30)로서,
    하나 이상의 프로세서들; 및
    상기 프로세서들에 커플링되고 상기 프로세서들에 의한 실행을 위한 프로그래밍을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체
    를 포함하며, 상기 프로그래밍은, 상기 프로세서들에 의해 실행될 때, 제1항 내지 제19항 중 어느 한 항에 따른 방법을 수행하도록 상기 디코더를 구성하는, 디코더(30).
  21. 인코더(20)로서:
    하나 이상의 프로세서들; 및
    상기 프로세서들에 커플링되고 상기 프로세서들에 의한 실행을 위한 프로그래밍을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체
    를 포함하며, 상기 프로그래밍은, 상기 프로세서들에 의해 실행될 때, 제1항 내지 제19항 중 어느 한 항에 따른 방법을 수행하도록 상기 인코더를 구성하는, 인코더(20).
  22. 제1항 내지 제19항 중 어느 한 항에 따른 방법을 수행하기 위한 프로세싱 회로부(processing circuitry)를 포함하는, 인코더(20).
  23. 제1항 내지 제19항 중 어느 한 항에 따른 방법을 수행하기 위한 프로세싱 회로부를 포함하는, 디코더(30).
  24. 제1항 내지 제19항 중 어느 한 항에 따른 방법을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
  25. 컴퓨터 디바이스에 의해 실행될 때, 상기 컴퓨터 디바이스로 하여금, 제1항 내지 제19항 중 어느 한 항의 방법을 수행하게 하는 프로그램 코드를 보유하는 비-일시적 컴퓨터-판독 가능 매체.
  26. 인코더(20)로서,
    변환 블록의 인트라 예측 참조 라인 인덱스의 값을 획득하도록 구성된 획득 유닛(2001);
    참조 라인으로부터의 참조 샘플들에 기반하여 상기 변환 블록의 예측 샘플들을 획득하도록 구성된 예측 유닛(2003)
    을 포함하며, 상기 참조 라인은 상기 인트라 예측 참조 라인 인덱스의 값에 의해 인덱싱되는, 인코더(20).
  27. 디코더(30)로서,
    변환 블록의 인트라 예측 참조 라인 인덱스의 값을 획득하도록 구성된 획득 유닛(3001);
    참조 라인으로부터의 참조 샘플들에 기반하여 상기 변환 블록의 예측 샘플들을 획득하도록 구성된 예측 유닛(3003)
    을 포함하며, 상기 참조 라인은 상기 인트라 예측 참조 라인 인덱스의 값에 의해 인덱싱되는, 디코더(30).
  28. 제27항에 있어서,
    상기 변환 블록의 폭이 상기 변환 블록의 높이보다 더 큰 경우, 상부 참조 라인으로부터의 참조 샘플들만이 상기 예측 샘플들을 획득하는 데 사용되는, 디코더(30).
  29. 제27항에 있어서,
    상기 변환 블록의 높이가 상기 변환 블록의 폭보다 더 큰 경우, 좌측 참조 라인으로부터의 참조 샘플들만이 상기 예측 샘플들을 획득하는 데 사용되는, 디코더(30).
  30. 제27항에 있어서,
    상기 변환 블록의 높이가 상기 변환 블록의 폭과 동일한 경우, 좌측 참조 라인으로부터의 참조 샘플들과 상부 참조 라인으로부터의 참조 샘플들 둘 다가 상기 예측 샘플들을 획득하는 데 사용되는, 디코더(30).
  31. 제27항 내지 제30항 중 어느 한 항에 있어서,
    상기 인트라 예측 참조 라인 인덱스의 값은 intra _ luma _ref_ idx에 의해 지시되는, 디코더(30).
  32. 제27항 내지 제31항 중 어느 한 항에 있어서,
    상기 획득 유닛은, 상기 인트라 예측 참조 라인 인덱스의 값을 획득하도록 구성되며, 상기 획득하는 것은,
    MRL(multi-reference line) 예측이 인에이블링되는지 여부를 결정하는 것;
    상기 MRL 예측이 인에이블링되는 경우, 상기 인트라 예측 참조 라인 인덱스의 값을 획득하는 것
    을 포함하는, 디코더(30).
  33. 제27항 내지 제32항 중 어느 한 항에 있어서,
    상기 인트라 예측 참조 라인 인덱스의 값이 0인 경우, 포지션-의존적 예측 조합(PDPC)을 상기 예측 샘플들에 적용하도록 구성된 적용 유닛; 또는
    상기 인트라 예측 참조 라인 인덱스의 값이 0이 아닌 경우, 상기 PDPC를 상기 예측 샘플들에 적용하는 것을 스킵하도록 구성된 적용 유닛
    을 더 포함하는, 디코더(30).
  34. 제27항 내지 제33항 중 어느 한 항에 있어서,
    상기 인트라 예측 참조 라인 인덱스의 값은 0, 1, 또는 2인, 디코더(30).
  35. 제28항 또는 제30항에 있어서,
    상기 참조 샘플들의 수는 상기 변환 블록의 폭에 대응하는, 디코더(30).
  36. 제29항 또는 제30항에 있어서,
    상기 참조 샘플들의 수는 상기 변환 블록의 높이에 대응하는, 디코더(30).
  37. 제27항 내지 제36항 중 어느 한 항에 있어서,
    상기 참조 샘플들은 상기 참조 라인 내에서 연속적인 간격 또는 연속적인 거리를 형성하는, 디코더(30).
  38. 제27항 내지 제37항 중 어느 한 항에 있어서,
    상기 참조 샘플들은 수평 인덱스 또는 수직 인덱스를 특정함으로써 결정되고, 상기 인덱스들 각각은 정수 값들의 범위에 속하는 정수 값이고, 그리고 상기 인덱스들은 각각 상기 참조 라인 내에서 수평 좌표(x') 또는 수직 좌표(y')를 특정하는, 디코더(30).
  39. 제38항에 있어서,
    오프셋은, 상기 변환 블록의 참조 샘플들의 좌측 열의 상부-좌측 예측 샘플의 수직 포지션과 최좌측 참조 샘플의 수직 인덱스 간의 차이인, 디코더(30).
  40. 제38항에 있어서,
    오프셋은, 상기 변환 블록의 참조 샘플들의 상부 행의 상부-좌측 예측 샘플의 수평 포지션과 최상부 참조 샘플의 수평 인덱스 간의 차이인, 디코더(30).
  41. 제27항, 제29항, 제30항, 제36항 또는 제40항에 있어서,
    상기 참조 라인의 최상부 참조 샘플은 상기 변환 블록의 상부-좌측 예측 샘플의 포지션에 대해 수직으로 오프셋되는, 디코더(30).
  42. 제27항, 제28항, 제30항, 제35항 또는 제39항에 있어서,
    상기 참조 라인의 최좌측 참조 샘플은 상기 변환 블록의 상부-좌측 예측 샘플의 포지션에 대해 수평으로 오프셋되는, 디코더(30).
  43. 제39항 내지 제42항 중 어느 한 항에 있어서,
    상기 오프셋의 값은 상기 인트라 예측 참조 라인 인덱스의 값과 동일한, 디코더(30).
  44. 제27항, 제29항, 제30항, 제36항, 제40항, 제41항 및 제43항 중 어느 한 항에 있어서,
    상기 참조 라인의 최상부 참조 샘플의 수직 포지션은 상기 변환 블록의 상부-좌측 예측 샘플의 수직 포지션과 동일한, 디코더(30).
  45. 제27항, 제28항, 제30항, 제36항, 제39항, 제42항 및 제43항 중 어느 한 항 있어서,
    상기 참조 라인의 최좌측 참조 샘플의 수평 포지션은 상기 변환 블록의 상부-좌측 예측 샘플의 수평 포지션과 동일한, 디코더(30).
KR1020217033168A 2019-03-21 2020-03-23 인트라-예측을 위한 방법 및 장치 KR20210129729A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962822047P 2019-03-21 2019-03-21
US62/822,047 2019-03-21
US201962832878P 2019-04-11 2019-04-11
US62/832,878 2019-04-11
PCT/RU2020/050055 WO2020190179A1 (en) 2019-03-21 2020-03-23 Method and apparatus for intra-prediction

Publications (1)

Publication Number Publication Date
KR20210129729A true KR20210129729A (ko) 2021-10-28

Family

ID=72521159

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217033168A KR20210129729A (ko) 2019-03-21 2020-03-23 인트라-예측을 위한 방법 및 장치

Country Status (11)

Country Link
US (1) US20220007052A1 (ko)
EP (1) EP3932056A4 (ko)
JP (1) JP7314300B2 (ko)
KR (1) KR20210129729A (ko)
CN (2) CN114125468A (ko)
AU (1) AU2020240981A1 (ko)
BR (1) BR112021018515A2 (ko)
CA (1) CA3138231A1 (ko)
CL (1) CL2021002434A1 (ko)
MX (1) MX2021011369A (ko)
WO (1) WO2020190179A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023200249A1 (ko) * 2022-04-12 2023-10-19 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2024005480A1 (ko) * 2022-06-29 2024-01-04 엘지전자 주식회사 다중 참조 라인에 기반한 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020197152A1 (ko) * 2019-03-22 2020-10-01 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측 모드 후보 리스트를 사용하는 영상 디코딩 방법 및 그 장치
US20220337875A1 (en) * 2021-04-16 2022-10-20 Tencent America LLC Low memory design for multiple reference line selection scheme
WO2023129918A1 (en) * 2021-12-28 2023-07-06 Innopeak Technology, Inc. Intra prediction with multiple reference lines

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9654785B2 (en) * 2011-06-09 2017-05-16 Qualcomm Incorporated Enhanced intra-prediction mode signaling for video coding using neighboring mode
CN109076241B (zh) * 2016-05-04 2023-06-23 微软技术许可有限责任公司 利用样本值的非相邻参考线进行帧内图片预测
ES2699723B2 (es) * 2016-06-24 2020-10-16 Kt Corp Metodo y aparato para tratar una senal de video
US10742975B2 (en) * 2017-05-09 2020-08-11 Futurewei Technologies, Inc. Intra-prediction with multiple reference lines
US10491893B1 (en) * 2018-08-29 2019-11-26 Tencent America LLC Method and apparatus for multi-line intra prediction
CN117201773A (zh) 2019-01-13 2023-12-08 Lg 电子株式会社 用于执行基于mrl的帧内预测的图像编译方法和装置
WO2020171632A1 (ko) 2019-02-20 2020-08-27 엘지전자 주식회사 Mpm 리스트 기반 인트라 예측 방법 및 장치
EP3939313A4 (en) * 2019-03-12 2022-12-21 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR PERFORMING INTERCODING IN VIDEO CODING

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023200249A1 (ko) * 2022-04-12 2023-10-19 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2024005480A1 (ko) * 2022-06-29 2024-01-04 엘지전자 주식회사 다중 참조 라인에 기반한 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체

Also Published As

Publication number Publication date
JP7314300B2 (ja) 2023-07-25
CN113597761A (zh) 2021-11-02
WO2020190179A1 (en) 2020-09-24
CA3138231A1 (en) 2020-09-24
JP2022526304A (ja) 2022-05-24
BR112021018515A2 (pt) 2021-11-23
CN114125468A (zh) 2022-03-01
MX2021011369A (es) 2021-11-12
US20220007052A1 (en) 2022-01-06
AU2020240981A1 (en) 2021-10-28
EP3932056A1 (en) 2022-01-05
EP3932056A4 (en) 2022-08-03
CL2021002434A1 (es) 2022-04-29
NZ780730A (en) 2023-10-27

Similar Documents

Publication Publication Date Title
US20210344915A1 (en) Encoder, a decoder and corresponding methods of intra prediction
US20210014505A1 (en) Encoder, decoder and corresponding methods for intra prediction
US11388422B2 (en) Encoder, a decoder and corresponding methods related to intra prediction mode
JP2022523369A (ja) クロマサブブロックのアフィンベースのインター予測のための方法及び装置
JP7314300B2 (ja) イントラ予測のための方法および装置
US11876997B2 (en) Encoder, decoder and corresponding methods of most probable mode list construction for blocks with multi-hypothesis prediction
AU2020247242B2 (en) Method and apparatus for intra smoothing
JP2022524357A (ja) エンコーダ、デコーダ、及び対応するインター予測方法
JP2022529030A (ja) 行列ベースのイントラ予測と二次変換コア選択を調和させるエンコーダ、デコーダ、および対応する方法
KR20220065880A (ko) 아핀 모션 보상에서 dct 기반 보간 필터 및 향상된 쌍선형 보간 필터의 사용
KR20210094057A (ko) 비디오 코딩에서 크로마 인트라 예측을 위한 방법 및 장치
AU2020227859B2 (en) An encoder, a decoder and corresponding methods using intra mode coding for intra prediction
WO2020211849A1 (en) Method and apparatus for division-free intra-prediction
WO2021057755A1 (en) An encoder, a decoder and corresponding methods of complexity reduction on intra prediction for the planar mode
WO2020182079A1 (en) An encoder, a decoder and corresponding methods using intra mode coding for intra prediction
NZ780730B2 (en) Method and apparatus for intra-prediction
WO2021034229A2 (en) Method and apparatus of reference sample interpolation filtering for directional intra prediction

Legal Events

Date Code Title Description
A201 Request for examination