KR20210100183A - 예측 코딩을 위한 보간 필터링 방법 및 장치 - Google Patents

예측 코딩을 위한 보간 필터링 방법 및 장치 Download PDF

Info

Publication number
KR20210100183A
KR20210100183A KR1020217022061A KR20217022061A KR20210100183A KR 20210100183 A KR20210100183 A KR 20210100183A KR 1020217022061 A KR1020217022061 A KR 1020217022061A KR 20217022061 A KR20217022061 A KR 20217022061A KR 20210100183 A KR20210100183 A KR 20210100183A
Authority
KR
South Korea
Prior art keywords
filter
subpixel
video
intra
block
Prior art date
Application number
KR1020217022061A
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 KR20210100183A publication Critical patent/KR20210100183A/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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • 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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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

Landscapes

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

Abstract

본 개시내용은 비디오 인코딩 및 디코딩을 위한 인트라 또는 인터 예측에 관한 것이다. 이를 위해, 장치 및 방법은 참조 샘플과 서브픽셀 오프셋 값을 획득한다. 서브픽셀 4-탭 보간 필터는 참조 샘플을 필터링하여 예측된 샘플 값을 획득하는 데 사용된다. 서브픽셀 4-탭 보간 필터의 필터 계수(c0, c1, c2 및 c3)는
Figure pct00100
,
Figure pct00101
,
Figure pct00102

Description

예측 코딩을 위한 보간 필터링 방법 및 장치
본 출원(개시내용)의 실시예는 일반적으로 픽처 처리 분야, 보다 구체적으로는 이미지 및/또는 비디오 코딩 및 디코딩, 특히 인트라/인터 예측을 위한 방법 및 장치에 관한 것이다.
비디오 코딩(비디오 인코딩 및 디코딩)은 광범위한 디지털 비디오 애플리케이션, 예를 들어, 브로드캐스트 디지털 TV, 인터넷 및 이동 네트워크를 통한 비디오 전송, 비디오 채팅, 비디오 회의, DVD 및 불루-레이 디스크와 같은 실시간 대화 애플리케이션, 비디오 콘텐츠 수집 및 편집 시스템, 및 보안 애플리케이션의 캠코더에서 사용된다.
비교적 짧은 비디오를 묘사하는 데 필요한 비디오 데이터의 양은 상당할 수 있으며, 이것은 데이터가 스트리밍될 때 또는 그렇지 않고 대역폭 용량이 제한된 통신 네트워크를 가로질러 통신될 때 어려움을 초래할 수 있다. 따라서, 비디오 데이터는 일반적으로 현대 통신 네트워크를 가로질러 통신되기 전에 압축된다. 메모리 자원이 제한될 수 있기 때문에 비디오가 저장 디바이스에 저장될 때 비디오의 크기가 문제가 될 수도 있다. 비디오 압축 디바이스는 종종 송신 또는 저장 전에 소스에서 소프트웨어 및/또는 하드웨어를 사용하여 비디오 데이터를 코딩하며, 그렇게 함으로써 디지털 비디오 이미지를 표현하는 데 필요한 데이터의 양을 줄인다. 그런 다음 압축된 데이터는 목적지에서 비디오 데이터를 디코딩하는 비디오 압축 해제 디바이스에 의해 수신된다. 제한된 네트워크 자원 및 더 높은 비디오 품질에 대한 요구의 계속적인 증가에 따라, 픽처 품질을 거의 또는 전혀 희생하지 않고 압축률을 개선하는 개선된 압축 및 압축 해제 기술이 바람직하다.
본 출원의 실시예는 독립항 및 종속항에 따른 인코딩 및 디코딩을 위한 장치 및 방법을 제공한다.
젼술한 목적 및 다른 목적은 독립항 및 종속항의 주제에 의해 달성된다. 추가의 구현 형태는 종속항, 설명 및 도면으로부터 분명하게 드러난다.
본 발명의 실시예는 독립항의 특징에 의해 정의되고, 실시예의 추가의 유리한 구현은 종속항의 특징에 의해 정의된다.
본 개시내용의 양태에 따르면, 비디오 프레임의 인트라 또는 인터 예측 처리를 위한 방법이 제공되며, 방법은, 참조 샘플을 획득하는 단계와, 서브픽셀 오프셋(subpixel offset)의 값을 획득하는 단계와, 서브픽셀 4-탭 보간 필터를 사용하여, 참조 샘플을 필터링하여 예측된 샘플 값을 획득하는 단계를 포함하고, 서브픽셀 4-탭 보간 필터의 필터 계수는 다음을 만족하고,
Figure pct00001
여기서 p 는 서브픽셀 오프셋의 값의 분수 부분이고, c0, c1, c2 및 c3은 서브픽셀 4-탭 보간 필터의 필터 계수이다.
하나의 예시적인 구현에서, 참조 샘플(들)은 ref[x], 즉,
Figure pct00002
로 지칭될 수 있으며, 여기서 ref[x]는 참조 샘플의 어레이에 대응하고 "p"는 샘플 값을 포함하는 x-y 2차원 어레이 p[x][y]를 말한다. 사용되는 참조 샘플의 수는 적어도 하나일 수 있다. 다른 예에서, 참조 샘플의 수는 4 개일 수 있다.
하나의 예시적인 구현에서, 획득된 서브픽셀 오프셋 값은 다음과 같이 지칭될 수 있다:
Figure pct00003
"IntraPredAngle"은 인트라 예측 각도(intra-prediction angle)의 값이다.
하나의 예시적인 구현에서, 예측된 샘플 값 "predSamples[x][y]"은 다음에 의해 획득될 수 있다:
Figure pct00004
fT[i]는 필터 계수를 나타낸다. 이러한 계수는 각자 fG 및 fC라고 하는 인터 예측을 위한 루마 또는 크로마 필터 계수일 수 있다.
루마 또는 크로마의 필터 계수의 선택은 플래그 "filterFlag"의 사용 및 설정에 의해, 예를 들면, 다음과 같이 구현될 수 있고,
Figure pct00005
이때
Figure pct00006
값 "31"은 서브픽셀 오프셋의 값의 분수 부분을 말하고 "31"과 상이한 다른 값을 취할 수 있다. 필터 계수 fG(루마) 및/또는 fC(크로마)의 값은 4-탭 필터의 필터 계수에 대한 위의 분석적 표현식을 사용하여 즉석에서 분석적으로 획득될 수 있다. 따라서, 필터 계수는 서브픽셀 오프셋 값에 따라 정의된다.
그러므로 필터 계수는 LUT로부터 각자의 필터 계수의 값에 액세스하지 않고, 오히려 계산에 의해 획득된다.
대안적으로, 필터 계수는 위의 수학식을 사용하여 계산될 수 있고, 값은 LUT에 저장될 수 있다.
본 개시내용의 양태에 따르면, 서브픽셀 4-탭 보간 필터의 필터 계수는 다음과 같이 테이블에서 정의된다.
Figure pct00007
본 개시내용의 양태에 따르면, 비디오 프레임의 인트라 또는 인터 예측 처리를 위한 방법이 제공되며, 방법은, 참조 샘플을 획득하는 단계와, 서브픽셀 오프셋의 값을 획득하는 단계와, 서브픽셀 4-탭 보간 필터를 사용하여, 참조 샘플을 필터링하여 예측된 샘플 값을 획득하는 단계를 포함하고, 서브픽셀 4-탭 보간 필터의 필터 계수는 다음과 같이 정의되고,
Figure pct00008
여기서 p는 서브픽셀 오프셋의 값의 분수 부분이고, c0, c1, c2 및 c3은 필터 계수이다.하나의 예시적인 구현에서, 필터 계수의 값은 LUT에 저장될 수 있다. 이것은 서브픽셀 보간 필터링을 위해 각자의 필터 계수의 값이 LUT로부터 가져 온다는 것(fetch)을 의미한다.
도 23은 인트라/인터 예측 처리의 흐름도를 나타낸다. 단계(2301)에서, 참조 샘플이 획득된다. 참조 샘플은 하나 이상의 참조 샘플을 포함할 수 있다. 그 다음에 단계(2302)에서, 서브픽셀 오프셋 값이 획득된다. 그 다음에 단계(2303)에서, 참조 샘플은 i = 0 ,… 3 인 필터 계수 {c i }를 갖는 서브픽셀 보간 필터를 사용하여 필터링된다. 이것은 4-탭 필터 및/또는 4-포인트 필터라고 한다.
필터 계수는 서브픽셀 오프셋의 값의 주어진 분수 부분(p)을 갖는 분석적 표현식으로부터 획득될 수 있다. 필터 계수는 p 값을 참조하여 LUT로부터 획득될 수도 있다.
본 개시내용의 양태에 따르면, p의 비트는 0으로 설정된다.
본 개시내용의 양태에 따르면, p는 1씩 증분되고 그 후에 증분된 p의 하위 비트는 상기 p가 필터 계수를 획득하는 데 사용되기 전에 0으로 설정된다.
본 개시내용의 양태에 따르면, 필터 계수를 획득하는 단계는,
Figure pct00009
에 따라 필터 계수를 계산하는 단계를 포함한다.
이것은 이전 필터 계수(ci)로부터 필터 계수(ci+1)를 계산하는 장점을 제공할 수 있다. 이것은 필터 계수를 계산하는 시간을 더 줄일 수 있다.
본 개시내용의 양태에 따르면, 비디오 코딩의 방법 - 방법은 비디오 프레임의 블록의 인트라 예측 처리 단계를 포함함 - 은 서브픽셀 4-탭 보간 필터를 사용하여, 비디오 프레임의 참조 샘플을 필터링하는 단계를 포함하며, 서브픽셀 4-탭 보간 필터는 필터의 조합이고, 필터 중 적어도 하나의 필터의 필터 계수는 다음을 만족하며,
Figure pct00010
여기서 p는 서브픽셀 오프셋의 분수 샘플 위치이고, c0, c1, c2 및 c3은 필터 계수이다.
도 24는 비디오 코딩의 흐름도를 도시한다. 단계(2410)에서, 인트라 예측 처리 단계는 서브픽셀 4-탭 보간 필터를 사용하여, 블록의 참조 샘플을 필터링함으로써 수행된다.
본 개시내용의 양태에 따르면, 서브픽셀 4-탭 보간 필터는 2 개의 위상 종속 선형 필터(phase-dependent linear filter)와 저역 통과 필터의 병렬 조합인 평활화 필터(smoothing filter)이다.
본 개시내용의 양태에 따르면, 서브픽셀 4-탭 보간 필터는 하나의 위상 종속 선형 필터와 강도 가변 고역 통과 필터(strength-varying high-pass filter)의 병렬 조합인 선명화 필터(sharpening filter)이다.
본 개시내용의 양태에 따르면, 강도 가변 고역 통과 필터는 위상 독립 고역 통과(phase-independent high-pass) 유한 임펄스 응답(finite impulse response)(FIR) 필터이고, 그 출력에는 위상 종속 강도 파라미터(phase-dependent strength parameter)가 곱해진다.
본 개시내용의 이전 양태 중 어느 하나에 따르면, p의 하위 비트는 0으로 설정된다.
본 개시내용의 양태에 따르면, p는 1씩 증분되고 그 후에 증분된 값의 하위 비트는 이 값이 보간 필터 계수를 도출하는 데 사용되기 전에 0으로 설정된다.
본 개시내용의 양태에 따르면, 강도 가변 고역 통과 필터의 출력에 대해 클립핑 동작이 수행된다.
본 개시내용의 양태에 따르면, 비디오 프레임의 인트라 또는 인터 예측 처리를 위한 장치가 제공되며, 장치는, 참조 샘플을 획득하도록 구성된 참조 샘플 획득 유닛과, 서브픽셀 오프셋의 값을 획득하도록 구성된 서브픽셀 오프셋 값 획득 유닛과, 참조 샘플을 필터링하여 예측된 샘플 값을 획득하도록 구성된 서브픽셀 4-탭 보간 필터를 포함하고, 서브픽셀 4-탭 보간 필터의 필터 계수는 다음을 만족하고,
Figure pct00011
여기서 p는 서브픽셀 오프셋의 값의 분수 부분이고, c0, c1, c2 및 c3은 서브픽셀 4-탭 보간 필터의 필터 계수이다.
본 개시내용의 양태에 따르면, 서브픽셀 4-탭 보간 필터의 필터 계수는 다음과 같이 테이블에 정의된다.
Figure pct00012
본 개시내용의 양태에 따르면, 비디오 프레임의 인트라 또는 인터 예측 처리를 위한 장치가 제공되며, 장치는, 참조 샘플을 획득하도록 구성된 참조 샘플 획득 유닛과, 서브픽셀 오프셋의 값을 획득하도록 구성된 서브픽셀 오프셋 값 획득 유닛과, 참조 샘플을 필터링하여 예측된 샘플 값을 획득하도록 구성된 서브픽셀 4-탭 보간 필터를 포함하고, 서브픽셀 4-탭 보간 필터의 필터 계수는 다음과 같이 정의되고,
Figure pct00013
여기서 p는 서브픽셀 오프셋의 값의 분수 부분이고, c0, c1, c2 및 c3은 필터 계수이다.도 25는 참조 샘플 획득 유닛(2510), 서브픽셀 오프셋 값 획득 유닛(2520) 및 서브픽셀 보간 필터(2530)를 포함하는 인트라/인터 처리 모듈(2500)의 개략도를 도시한다.
본 개시내용의 양태에 따르면, 비디오 코딩을 위한 장치가 제공되며, 장치는, 비디오 프레임의 블록을 인트라 예측하도록 구성된 인트라 예측 처리 유닛과, 비디오 프레임의 참조 샘플을 필터링하도록 구성된 서브픽셀 4-탭 보간 필터를 포함하고; 서브픽셀 4-탭 보간 필터는 필터의 조합이고, 필터 중 적어도 하나의 필터 계수는 다음을 만족하고,
Figure pct00014
여기서 p는 서브픽셀 오프셋의 분수 샘플 위치이고, c0, c1, c2 및 c3은 필터 계수이다.
도 26은 인트라 예측 처리 유닛(2610) 및 서브픽셀 보간 필터(2620)를 포함하는 비디오 코딩 모듈(2600)의 개략도를 도시한다.
본 개시내용의 양태에 따르면, 본 개시내용의 이전 양태 중 어느 하나에 따른 방법을 수행하기 위한 처리 회로를 포함하는 인코더(20)가 제공된다.
본 개시내용의 양태에 따르면, 본 개시내용의 이전 양태 중 어느 하나에 따른 방법을 수행하기 위한 처리 회로를 포함하는 디코더(30)가 제공된다.
본 개시내용의 양태에 따르면, 본 개시내용의 이전 양태 중 어느 하나에 따른 방법을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품이 제공된다.
본 개시내용의 양태에 따르면, 하나 이상의 프로세서와, 프로세서에 결합되고 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체를 포함하는 디코더가 제공되며, 프로그래밍은 프로세서에 의해 실행될 때, 디코더가 본 개시내용의 이전 양태 중 어느 하나에 따른 방법을 수행하도록 구성한다.
본 개시내용의 양태에 따르면, 하나 이상의 프로세서와, 프로세서에 결합되고 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체를 포함하는 인코더가 제공되며, 프로그래밍은 프로세서에 의해 실행될 때, 인코더가 본 개시내용의 이전 양태 중 어느 하나에 따른 방법을 수행하도록 구성한다.
임의의 이전 양태에 따른 본 개시내용은 비디오 프레임의 인트라/인터 예측을 빠른 방식으로 수행하는 장점을 제공할 수 있다. 이것은 보간 필터의 필터 계수가 분석적 방식으로 획득되기 때문이다, 즉, 상기 계수는 즉석에서 계산된다. 이것은 메모리로부터 계수를 판독하는 액세스 시간을 필요로 하는, 룩업 테이블(look-up table)(LUT)에 계수를 저장하는 것을 회피할 수 있다.
따라서, 예측이 더 효율적이 되고 필요한 메모리에 대한 요구를 덜 필요로 한다. 이것은 또한 예측의 저비용 구현을 가능하게 한다. 더욱이, 분석적 필터 계수 {ci}는 분수 샘플 위치(p)에서 선형적이고 2로 나눗셈하는 연산을 포함하기 때문에, 각자의 연산은 빠른 로우 레벨 비트 연산을 사용함으로써 효율적으로 수행될 수 있다. 비트 연산을 수행하고 필터 계수를 계산하는 각자의 시간은 LUT로부터 저장된 계수에 액세스하는 시간보다 짧다. 따라서 대기 시간이 줄어든다.
더욱이, 필터 계수의 특정한 분석적 구조는 필터 유닛(들)의 낮은 복잡도 구현이라는 장점을 제공할 수 있다. 위에서 상이한 서브픽셀 위치에 대한 필터 응답(즉, 주파수 응답)은 크기 및 위상과 관련하여 일관적이며 특히 고주파수에서 응답 시 아티팩트를 방지한다. 필터 계수의 선형성은 하드웨어를 재사용하는 장점을 제공할 수 있다.
하나 이상의 실시예의 세부 사항은 첨부 도면 및 아래의 설명에서 제시된다. 다른 특징, 목적 및 장점은 설명, 도면 및 청구항으로부터 명백해질 것이다.
본 발명은 하드웨어 및/또는 소프트웨어로 구현될 수 있다.
명확성을 위해, 전술한 실시예 중 어느 실시예는 전술한 다른 실시예 중 어느 하나 이상과 조합되어 본 개시내용의 범위 내에서 새로운 실시예를 생성할 수 있다.
이러한 특징 및 다른 특징은 첨부 도면 및 청구항과 함께 취해진 다음의 상세한 설명으로부터 보다 명확하게 이해될 것이다.
다음에서, 본 발명의 실시예는 첨부된 수치 및 도면을 참조하여 보다 상세하게 설명된다.
도 1a는 본 발명의 실시예를 구현하도록 구성된 비디오 코딩 시스템의 예를 도시하는 블록도이다.
도 1b는 본 발명의 실시예를 구현하도록 구성된 비디오 코딩 시스템의 다른 예를 도시하는 블록도이다.
도 2는 본 발명의 실시예를 구현하도록 구성된 비디오 인코더의 예를 도시하는 블록도이다.
도 3은 본 발명의 실시예를 구현하도록 구성된 비디오 디코더의 예시적인 구조를 도시하는 블록도이다.
도 4는 인코딩 장치 또는 디코딩 장치의 예를 예시하는 블록도이다.
도 5는 인코딩 장치 또는 디코딩 장치의 다른 예를 예시하는 블록도이다.
도 6은 HEVC에서 각도 인트라 예측 방향 및 연관된 인트라 예측 모드를 도시하는 도면이다.
도 7은 JEM에서 각도 인트라 예측 방향 및 연관된 인트라 예측 모드를 도시하는 도면이다.
도 8은 VTM-3.0 및 VVC 사양서 초안 v.3에서 각도 인트라 예측 방향 및 연관된 인트라 예측 모드를 도시하는 도면이다.
도 9는 참조 샘플의 세트가 보간 필터에 입력되는, 평활화를 위한 필터 조합의 예를 도시하는 도면이다.
도 10은 클립핑 동작을 포함하는 보간 필터링을 선명하게 하기 위한 필터의 예시적인 조합을 도시하는 도면이다.
도 11은 클립핑 동작의 대안적인 위치에 따른, 보간 필터링을 선명하게 하기 위한 필터의 예시적인 조합을 도시하는 도면이다.
도 12a는 조절 가능한 강도의 필터를 사용하여, 보간 필터링을 선명하게 하기 위한 필터의 예시적인 조합을 도시하는 도면이다.
도 12b는 조절 가능한 강도의 필터를 사용하여, 보간 필터링을 선명하게 하기 위한 필터의 다른 예시적인 조합을 도시하는 도면이다.
도 13 내지 도 21은 보간 필터 계수의 LUT 기반 및 분석적 표현의 상이한 조합을 도시하는 도면이다.
도 22는 계수 계산 방법의 예시적인 구현을 도시하는 도면이다.
도 23은 인트라/인터 예측 처리 단계 의 흐름도이다.
도 24는 비디오 코딩 단계의 흐름도이다.
도 25는 참조 샘플 획득 유닛, 서브픽셀 오프셋 값 획득 유닛 및 서브픽셀 보간 필터를 포함하는 인트라/인터 예측 처리 모듈의 블록도이다.
도 26은 인터 예측 처리 유닛 및 서브픽셀 보간 필터를 포함하는 비디오 코딩 모듈의 블록도이다.
다음에서 동일한 참조 부호는 달리 명시적으로 명시되지 않은 한 동일하거나 또는 적어도 기능적으로 동등한 특징을 나타낸다.
다음의 설명에서, 본 개시내용의 일부를 형성하고, 예시로서 본 발명의 실시예의 특정 양태 또는 본 발명의 실시예가 사용될 수 있는 특정 양태를 도시하는 첨부 도면이 참조된다. 본 발명의 실시예는 다른 양태에서 사용될 수 있으며 도면에 도시되지 않은 구조적 또는 논리적 변경을 포함할 수 있다는 것이 이해된다. 그러므로 다음의 상세한 설명은 제한적인 의미로 받아들여서는 안되며, 본 발명의 범위는 첨부된 청구항에 의해 정의된다.
예를 들어, 설명된 방법과 관련된 개시내용은 또한 방법을 수행하도록 구성된 대응하는 디바이스 또는 시스템에 대해 유효할 수 있고 그 반대의 경우도 마찬가지인 것으로 이해된다. 예를 들어, 하나 또는 복수의 특정 방법 단계가 설명된다면, 그러한 하나 이상의 유닛이 도면에서 명시적으로 설명되거나 예시되어 있지 않을지라도, 대응하는 디바이스는 하나 또는 복수의 유닛, 예를 들어, 설명된 하나 또는 복수의 방법 단계를 수행하는 기능 유닛(예를 들어, 하나 또는 복수의 단계를 수행하는 하나의 유닛, 또는 복수의 단계 중 하나 이상을 각각 수행하는 복수의 유닛)을 포함할 수 있다. 반면에, 예를 들어, 특정 장치가 하나 또는 복수의 유닛, 예를 들어, 기능 유닛에 기초하여 설명된다면, 그러한 하나 또는 복수의 단계가 도면에 명시적으로 설명되거나 예시되어 있지 않더라도, 대응하는 방법은 하나 또는 복수의 유닛의 기능성을 수행하는 하나의 단계(예를 들어, 하나 또는 복수의 유닛의 기능성을 수행하는 하나의 단계, 또는 하나 또는 복수의 유닛 중 하나 이상의 기능성을 각각 수행하는 복수의 단계)를 포함할 수 있다. 또한, 본 명세서에 설명된 다양한 예시적인 실시예 및/또는 양태의 특징은 구체적으로 달리 언급되지 않는 한, 서로 결합될 수 있다는 것이 이해된다.
비디오 코딩은 전형적으로 비디오 또는 비디오 시퀀스를 형성하는 픽처의 시퀀스를 처리하는 것을 말한다. "픽처"라는 용어 대신, "프레임" 또는 "이미지"라는 용어가 비디오 코딩 분야에서 동의어로서 사용될 수 있다. 비디오 코딩(또는 일반적으로 코딩)은 비디오 인코딩과 비디오 디코딩의 두 부분으로 구성된다. 비디오 인코딩은 소스 측에서 수행되며, 전형적으로 (보다 효율적인 저장 및/또는 송신을 위해) 비디오 픽처를 표현하는 데 필요한 데이터의 양을 줄이기 위해 원본 비디오 픽처를 처리(예를 들어, 압축)하는 것을 포함한다. 비디오 디코딩은 목적지 측에서 수행되며 전형적으로 비디오 픽처를 복원하도록 인코더에 대비한 역처리를 포함한다. 비디오 픽처(또는 일반적으로 픽처)의 "코딩"을 언급하는 실시예는 비디오 픽처 또는 각자의 비디오 시퀀스의 "인코딩" 또는 "디코딩"과 관련되는 것으로 이해되어야 한다. 인코딩 부분과 디코딩 부분의 결합은 또한 코덱(CODEC)(Coding and Decoding)이라고도 한다.
무손실 비디오 코딩의 경우, 원본 비디오 영상이 복원될 수 있다, 즉, 복원된 비디오 픽처는 (저장 또는 송신 중에 전송 손실 또는 다른 데이터 손실이 없다고 가정하면) 원본 비디오 픽처와 동일한 품질을 갖는다. 손실 비디오 코딩의 경우, 예를 들어, 비디오 픽처를 나타내는 데이터의 양을 줄이기 위해 양자화에 의한, 추가 압축이 수행되는데, 이것은 디코더에서 완전히 복원될 수 없다, 즉, 복원된 비디오 픽처의 품질은 원본 비디오 픽처의 품질과 비교하여 더 낮거나 열악하다.
여러 비디오 코딩 표준은 (즉, 샘플 도메인의 공간 및 시간 예측과 변환 도메인에서 양자화를 적용하기 위한 2D 변환 코딩을 결합하는) "손실 하이브리드 비디오 코덱" 그룹에 속한다. 비디오 시퀀스의 각 픽처는 전형적으로 겹치지 않는 블록의 세트로 분할되고, 코딩은 전형적으로 블록 레벨에서 수행된다. 다시 말해서, 인코더에서 비디오는, 예를 들어, 공간(인트라 픽처) 예측 및/또는 시간(인터 픽처) 예측을 사용하여 예측 블록을 생성하고, 현재 블록(현재 처리되는/처리될 블록)으로부터 예측 블록을 빼서 잔차 블록을 획득하고, 잔차 블록을 변환하고 송신될 데이터의 양을 줄이기(압축하기) 위해 변환 도메인에서 잔차 블록을 양자화함으로써, 전형적으로 블록(비디오 블록) 레벨로 처리되고, 즉, 인코딩되고, 반면에 디코더에서는 표현을 위한 현재 블록을 복원하기 위해 인코딩된 또는 압축된 블록에 인코더와 대비된 역처리가 적용된다. 또한, 둘 다 후속 블록을 처리하기 위한, 즉 코딩하기 위한 동일한 예측(예를 들어, 인트라 및 인터 예측) 및/또는 복원을 생성하도록 인코더는 디코더 처리 루프를 복제한다.
다음의 비디오 코딩 시스템(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)는 임의의 종류의 픽처 캡처 디바이스, 예를 들어 실세계 픽처를 캡처하기 위한 카메라, 및/또는 임의의 종류의 픽처 생성 디바이스, 예를 들어, 컴퓨터 애니메이션 픽처를 생성하기 위한 컴퓨터 그래픽 프로세서, 또는 실세계 픽처, 컴퓨터 생성 픽처(예를 들어, 스크린 콘텐츠, 가상 현실(virtual reality)(VR) 픽처) 및/또는 이들의 임의의 조합(예를 들어, 증강 현실(augmented reality)(AR) 픽처))을 획득 및/또는 제공하기 위한 임의의 종류의 다른 디바이스를 포함하거나 또는 이러한 디바이스일 수 있다. 픽처 소스는 위에서 언급한 임의의 픽처를 저장하는 임의의 종류의 메모리 또는 저장소일 수 있다.
프리-프로세서(18)와 전처리 유닛(18)에 의해 수행되는 처리를 구별하여, 픽처 또는 픽처 데이터(17)는 또한 원시 픽처 또는 원시 픽처 데이터(17)로 지칭될 수도 있다.
프리-프로세서(18)는 (원시) 픽처 데이터(17)를 수신하고 픽처 데이터(17)에 대해 전처리를 수행하여 전처리된 픽처(19) 또는 전처리된 픽처 데이터(19)를 획득하도록 구성된다. 프리-프로세서(18)에 의해 수행되는 전처리는, 예를 들어, 트리밍, 컬러 포맷 변환(예를 들어 RGB에서 YCbCr로), 컬러 보정 또는 노이즈 제거를 포함할 수 있다. 전처리 유닛(18)은 선택적 컴포넌트일 수 있다는 것이 이해될 수 있다.
비디오 인코더(20)는 전처리된 픽처 데이터(19)를 수신하고 인코딩된 픽처 데이터(21)를 제공하도록 구성된다(자세한 사항은, 예를 들어, 도 2에 기초하여 아래에서 설명될 것이다).
소스 디바이스(12)의 통신 인터페이스(22)는 인코딩된 픽처 데이터(21)를 수신하고, 인코딩된 픽처 데이터(21)(또는 그의 임의의 추가 처리된 버전)를 통신 채널(13)을 통해 다른 디바이스, 예를 들어, 저장 또는 직접 복원을 위한 목적지 디바이스(14) 또는 임의의 다른 디바이스로 송신하도록 구성될 수 있다.
목적지 디바이스(14)는 디코더(30)(예를 들어, 비디오 디코더(30))를 포함하고, 추가적으로, 즉, 선택적으로 통신 인터페이스 또는 통신 유닛(28), 포스트-프로세서(32)(또는 후처리 유닛(32)) 및 디스플레이 디바이스(34)를 포함할 수 있다.
목적지 디바이스(14)의 통신 인터페이스(28)는, 예를 들어, 소스 디바이스(12)로부터 직접 또는 임의의 다른 소스, 예를 들어, 저장 디바이스, 예를 들어, 인코딩된 픽처 데이터 저장 디바이스로부터, 인코딩된 픽처 데이터(21)(또는 그의 임의의 추가 처리된 버전)를 수신하고, 인코딩된 픽처 데이터(21)를 디코더(30)에 제공하도록 구성된다.
통신 인터페이스(22) 및 통신 인터페이스(28)는 인코딩된 픽처 데이터(21) 또는 인코딩된 데이터(13)를 소스 디바이스(12)와 목적지 디바이스(14) 사이의 직접 통신 링크, 예를 들어, 직접 유선 또는 무선 연결을 통해, 또는 임의의 종류의 네트워크, 예를 들어, 유선 또는 무선 네트워크 또는 이들의 조합, 또는 임의의 종류의 사설 및 공용 네트워크, 또는 이들의 임의의 종류의 조합을 통해 송신 또는 수신하도록 구성될 수 있다.
통신 인터페이스(22)는, 예를 들어, 인코딩된 픽처 데이터(21)를 적절한 포맷, 예를 들어, 패킷으로 패키징하고/하거나, 통신 링크 또는 통신 네트워크를 통해 송신하기 위한 임의의 종류의 송신 인코딩 또는 처리를 사용하여 인코딩된 픽처 데이터를 처리하도록 구성된다.
통신 인터페이스(22)의 상대방을 형성하는 통신 인터페이스(28)는, 예를 들어, 송신된 데이터를 수신하고 임의의 종류의 대응하는 송신 디코딩 또는 처리 및/또는 디패키징을 사용하여 송신 데이터를 처리하여 인코딩된 픽처 데이터(21)를 획득하도록 구성될 수 있다.
두 통신 인터페이스(22) 및 통신 인터페이스(28)는 모두 소스 디바이스(12)로부터 목적지 디바이스(14)로 향하는 도 1a의 통신 채널(13)에 대한 화살표로 표시된 바와 같이 단방향 통신 인터페이스 또는 양방향 통신 인터페이스로서 구성될 수 있으며, 예를 들어, 메시지를 송신 및 수신하도록, 예를 들어, 연결을 설정하고, 통신 링크 및/또는 데이터 송신, 예를 들어, 인코딩된 픽처 데이터 송신과 관련된 임의의 다른 정보를 확인응답하고 교환하도록 구성될 수 있다.
디코더(30)는 인코딩된 픽처 데이터(21)를 수신하고 디코딩된 픽처 데이터(31) 또는 디코딩된 픽처(31)를 제공하도록 구성된다(더 자세한 사항은 예를 들어, 도 3 또는 도 5에 기초하여 아래에서 설명될 것이다).
목적지 디바이스(14)의 포스트-프로세서(32)는 디코딩된 픽처 데이터(31)(복원된 픽처 데이터라고도 함), 예를 들어, 디코딩된 픽처(31)를 후처리하여 후처리된 픽처 데이터(33), 예를 들어, 후처리된 픽처(33)를 획득하도록 구성된다. 후처리 유닛(32)에 의해 수행되는 후처리는, 예를 들어, 컬러 포맷 변환(예를 들어, YCbCr에서 RGB로), 컬러 보정, 트리밍 또는 재샘플링 또는 예를 들어, 디스플레이 디바이스(34)에 의한 디스플레이를 위해 디코딩된 픽처 데이터(31)를 준비하기 위한 임의의 다른 처리를 포함할 수 있다.
목적지 디바이스(14)의 디스플레이 디바이스(34)는 픽처를, 예를 들어, 사용자 또는 뷰어에게 디스플레이하기 위해 후처리된 픽처 데이터(33)를 수신하도록 구성된다. 디스플레이 디바이스(34)는 복원된 픽처를 표현하기 위한 임의의 종류의 디스플레이, 예를 들어, 통합된 또는 외부의 디스플레이 또는 모니터일 수 있거나 이를 포함할 수 있다. 디스플레이는, 예를 들어, 액정 디스플레이(liquid crystal display)(LCD), 유기 발광 다이오드(organic light emitting diode)(OLED) 디스플레이, 플라즈마 디스플레이, 프로젝터, 마이크로 LED 디스플레이, 액정 온 실리콘(liquid crystal on silicon)(LCoS), 디지털 조명 프로세서(digital light processor)(DLP) 또는 임의의 종류의 다른 디스플레이를 포함할 수 있다.
도 1a는 소스 디바이스(12) 및 목적지 디바이스(14)를 별개의 디바이스로서 도시하지만, 디바이스의 실시예는 둘 모두 또는 두 기능성 모두 소스 디바이스(12) 또는 대응하는 기능성 및 목적지 디바이스(14) 또는 대응하는 기능성을 포함할 수 있다. 이러한 실시예에서, 소스 디바이스(12) 또는 대응하는 기능성 및 목적지 디바이스(14) 또는 대응하는 기능성은 동일한 하드웨어 및/또는 소프트웨어를 사용하여 또는 별개의 하드웨어 및/또는 소프트웨어 또는 이들의 임의의 조합에 의해 구현될 수 있다.
설명에 기초하여 관련 기술분야의 통상의 기술자에게 명백한 바와 같이, 상이한 유닛의 기능성 또는 도 1a에 도시된 바와 같은 소스 디바이스(12) 및/또는 목적지 디바이스(14) 내의 기능성의 존재 및 (정확한) 분할은 실제 디바이스 및 애플리케이션에 따라 변할 수 있다.
인코더(20)(예를 들어, 비디오 인코더(20)) 또는 디코더(30)(예를 들어, 비디오 디코더(30)) 또는 인코더(20)와 디코더(30) 둘 모두는 도 1b에 도시된 바와 같은 처리 회로, 이를테면, 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(digital signal processor)(DSP), 주문형 집적 회로(application-specific integrated circuit)(ASIC), 필드 프로그램 가능 게이트 어레이(field-programmable gate array)(FPGA), 이산 로직, 하드웨어, 전용 비디오 코딩 또는 이들의 임의의 조합을 통해 구현될 수 있다. 인코더(20)는 도 2의 인코더(20) 및/또는 본 명세서에 설명된 임의의 다른 인코더 시스템 또는 서브시스템과 관련하여 논의된 바와 같이 다양한 모듈을 구현하는 처리 회로(46)를 통해 구현될 수 있다. 디코더(30)는 도 3의 디코더(30) 및/또는 본 명세서에 설명된 임의의 다른 디코더 시스템 또는 서브시스템과 관련하여 논의된 바와 같이 다양한 모듈을 구현하는 처리 회로(46)를 통해 구현될 수 있다. 처리 회로는 나중에 논의되는 바와 같이 다양한 동작을 수행하도록 구성될 수 있다. 도 5에 도시된 바와 같이, 기술이 부분적으로 소프트웨어에서 구현된다면, 디바이스는 소프트웨어에 대한 명령어를 적합한 비일시적 컴퓨터 판독 가능 저장 매체에 저장할 수 있으며 하나 이상의 프로세서를 사용하여 하드웨어에서 명령어를 실행하여 본 개시내용의 기술을 수행할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30) 중 하나는, 예를 들어, 도 1b에 도시된 바와 같이 단일 디바이스에서 결합된 인코더/디코더(CODEC)의 일부로서 통합될 수 있다.
소스 디바이스(12) 및 목적지 디바이스(14)는 임의의 종류의 핸드헬드 또는 고정 디바이스, 예를 들어, 노트북 또는 랩톱 컴퓨터, 이동 전화, 스마트 폰, 태블릿 또는 태블릿 컴퓨터, 카메라, 데스크톱 컴퓨터, 셋톱 박스, 텔레비전, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 디바이스(이를테면, 콘텐츠 서비스 서버 또는 콘텐츠 전송 서버), 브로드캐스트 수신기 디바이스, 브로드캐스트 송신기 디바이스를 비롯한 광범위한 디바이스 중 임의의 디바이스를 포함할 수 있으며, 운영 체제를 전혀 사용하지 않거나 또는 임의의 종류의 운영 체제를 사용할 수 있다. 일부 경우에, 소스 디바이스(12) 및 목적지 디바이스(14)는 무선 통신을 위해 장착될 수 있다. 따라서, 소스 디바이스(12) 및 목적지 디바이스(14)는 무선 통신 디바이스일 수 있다.
일부 경우에, 도 1a에 예시된 비디오 코딩 시스템(10)은 단지 예일 뿐이며 본 출원의 기술은 인코딩 디바이스와 디코딩 디바이스 사이의 임의의 데이터 통신을 반드시 포함하지는 않는 비디오 코딩 설비(예를 들어, 비디오 인코딩 또는 비디오 디코딩)에 적용될 수 있다. 다른 예에서, 데이터는 로컬 메모리로부터 검색되거나, 네트워크 등을 통해 스트리밍된다. 비디오 인코딩 디바이스는 데이터를 인코딩하고 메모리에 저장할 수 있고/있거나, 비디오 디코딩 디바이스는 메모리로부터 데이터를 검색하고 디코딩할 수 있다. 일부 예에서, 인코딩 및 디코딩은 서로 통신하지 않고, 단순히 데이터를 메모리로 인코딩하고/하거나 메모리로부터 데이터를 검색하고 디코딩하는 디바이스에 의해 수행된다.
설명의 편의를 위해, 본 발명의 실시예는 예를 들어, ITU-T VCEG(Video Coding Experts Group) 및 MPEG(ISO/IEC Motion Picture Experts Group)의 비디오 코딩 공동 협업 팀(Joint Collaboration Team on Video Coding)(JCT-VC)에 의해 개발된 차세대 비디오 코딩 표준인, 고효율 비디오 코딩(High-Efficiency Video Coding)(HEVC) 또는 다기능 비디오 코딩(Versatile Video coding)(VVC)의 참조 소프트웨어를 참조하여 본 명세서에서 설명된다. 관련 기술분야의 통상의 기술자는 본 발명의 실시예가 HEVC 또는 VVC로 제한되지 않는다는 것을 이해할 것이다.
인코더 및 인코딩 방법(ENCODER AND ENCODING METHOD)
도 2는 본 출원의 기술을 구현하도록 구성된 예시적인 비디오 인코더(20)의 개략적인 블록도를 도시한다. 도 2의 예에서, 비디오 인코더(20)는 입력(201)(또는 입력 인터페이스(201)), 잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 역양자화 유닛(210) 및 역변환 처리 유닛(212), 복원 유닛(214), 루프 필터 유닛(220), 디코딩된 픽처 버퍼(decoded picture buffer)(DPB)(230), 모드 선택 유닛(260), 엔트로피 인코딩 유닛(270) 및 출력(272)(또는 출력 인터페이스(272))를 포함한다. 모드 선택 유닛(260)은 인터 예측 유닛(244), 인트라 예측 유닛(254) 및 파티셔닝 유닛(262)을 포함할 수 있다. 인터 예측 유닛(244)은 움직임 추정 유닛 및 움직임 보상 유닛(도시되지 않음)을 포함할 수 있다. 도 2에 도시된 바와 같은 비디오 인코더(20)는 또한 하이브리드 비디오 인코더 또는 하이브리드 비디오 코덱에 따른 비디오 인코더로 지칭될 수 있다.
잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 모드 선택 유닛(260)는 인코더(20)의 순방향 신호 경로를 형성하는 것으로 지칭될 수 있는 반면, 역양자화 유닛(210), 역변환 처리 유닛(212), 복원 유닛(214), 버퍼(216), 루프 필터(220), 디코딩된 픽처 버퍼(DPB)(230), 인터 예측 유닛(244) 및 인트라 예측 유닛(254)은 비디오 인코더의 역방향 신호 경로를 형성하는 것으로 지칭될 수 있으며, 여기서 비디오 인코더(20)의 역방향 신호 경로는 디코더의 신호 경로에 대응한다(도 3의 비디오 디코더(30)를 참고할 것). 역양자화 유닛(210), 역변환 처리 유닛(212), 복원 유닛(214), 루프 필터(220), 디코딩된 픽처 버퍼(DPB)(230), 인터 예측 유닛(244) 및 인트라 예측 유닛(254)은 또한 비디오 인코더(20)의 "빌트-인 디코더(built-in decoder)"를 형성하는 것으로 지칭된다.
픽처 및 픽처 파티셔닝(픽처 및 블록) (PICTURES & PICTURE PARTITIONING)(PICTURES & BLOCKS)
인코더(20)는 예를 들어, 입력(201)을 통해, 픽처(17)(또는 픽처 데이터(17)), 예를 들어, 비디오 또는 비디오 시퀀스를 형성하는 픽처 시퀀스의 픽처를 수신하도록 구성될 수 있다. 수신된 픽처 또는 픽처 데이터는 또한 전처리된 픽처(19)(또는 전처리된 픽처 데이터(19))일 수 있다. 간략함을 위해, 다음의 설명은 픽처(17)를 언급한다. 픽처(17)는 또한 현재 픽처 또는 (특히, 현재 픽처를 다른 픽처, 예를 들어, 동일한 비디오 시퀀스, 즉, 현재 픽처를 또한 포함하는 비디오 시퀀스의 이전에 인코딩된 및/또는 디코딩된 픽처와 구별하기 위해 비디오 코딩 시) 코딩될 픽처로 지칭될 수 있다.
(디지털) 픽처는 강도 값을 갖는 2차원 어레이 또는 샘플의 매트릭스이거나 또는 2차원 어레이 또는 샘플의 매트릭스로서 간주될 수 있다. 어레이의 샘플은 또한 픽셀(픽처 요소(picture element)의 짧은 형태) 또는 펠(pel)로도 지칭될 수 있다. 어레이 또는 픽처의 수평 및 수직 방향(또는 축)의 샘플 수는 픽처의 크기 및/또는 해상도를 정의한다. 컬러의 표현을 위해, 전형적으로 세 개의 컬러 컴포넌트가 사용된다, 즉, 픽처는 세 개의 샘플 어레이로 표현되거나 또는 이를 포함할 수 있다. RBG 포맷 또는 컬러 공간에서, 픽처는 대응하는 적색, 녹색 및 청색 샘플 어레이로 구성된다. 그러나 비디오 코딩에서, 각 픽셀은 전형적으로 루미넌스와 크로미넌스 포맷 또는 컬러 공간, 예를 들어, Y로 표시된 루미넌스 컴포넌트(때로는 또한 L이 대신 사용됨)와 Cb 및 Cr로 표시된 두 개의 크로미넌스 컴포넌트를 포함하는, YCbCr로 표현된다. 루미넌스(또는 짧게 루마) 컴포넌트(Y)는 밝기 또는 (예를 들어, 그레이 스케일 픽처에서와 같은) 그레이 레벨 강도를 나타내는 반면, 두 개의 크로미넌스(또는 짧게 크로마) 컴포넌트(Cb 및 Cr)는 색도 또는 컬러 정보 컴포넌트를 나타낸다. 따라서, YCbCr 포맷의 픽처는 루미넌스 샘플 값(Y)의 루미넌스 샘플 어레이 및 크로미넌스 값(Cb 및 Cr)의 두 개의 크로미넌스 샘플 어레이로 구성된다. RGB 포맷의 픽처는 YCbCr 포맷으로 전환되거나 변환될 수 있으며 그 반대의 경우도 마찬가지이며, 그 프로세스는 컬러 변환 또는 전환이라고도 한다. 픽처가 단색이면, 픽처는 루미넌스 샘플 어레이만 포함할 수 있다. 따라서, 픽처는 예를 들어, 단색 포맷의 루마 샘플의 어레이 또는 루마 샘플의 어레이와 4: 2: 0, 4: 2: 2 및 4: 4: 4 컬러 포맷의 두 개의 대응하는 크로마 샘플의 어레이일 수 있다.
비디오 인코더(20)의 실시예는 픽처(17)를 복수의 (전형적으로는 겹치지 않는) 픽처 블록(203)으로 파티션하도록 구성된 픽처 파티셔닝 유닛(도 2에 도시되지 않음)을 포함할 수 있다. 이러한 블록은 또한 루트 블록(root block), 매크로 블록(macro block)(H.264/AVC) 또는 코딩 트리 블록(coding tree block)(CTB) 또는 코딩 트리 유닛(coding tree unit)(CTU)(H.265/HEVC 및 VVC)으로 지칭될 수 있다. 픽처 파티셔닝 유닛은 비디오 시퀀스의 모든 픽처에 대해 동일한 블록 크기 및 블록 크기를 정의하는 대응하는 그리드를 사용하거나, 또는 픽처 또는 픽처의 서브세트 또는 그룹 사이에서 블록 크기를 변경하고, 각 픽처를 대응하는 블록으로 파티션하도록 구성될 수 있다.
추가 실시예에서, 비디오 인코더는 픽처(17)의 블록(203), 예를 들어, 픽처(17)를 형성하는 하나, 여러 또는 모든 블록을 직접 수신하도록 구성될 수 있다. 픽처 블록(203)은 또한 코딩될 현재 픽처 블록 또는 픽처 블록으로 지칭될 수 있다.
픽처(17)와 마찬가지로, 픽처 블록(203)은 픽처(17)보다 작은 치수를 갖지만, 강도 값(샘플 값)을 갖는 샘플의 2차원 어레이 또는 매트릭스이거나, 2차원 어레이 또는 매트릭스로서 간주될 수 있다. 다시 말해, 블록(203)은, 예를 들어, 하나의 샘플 어레이(예를 들어, 단색 픽처(17)의 경우 루마 어레이 또는 컬러 픽처의 경우 루마 또는 크로마 어레이) 또는 세 개의 샘플 어레이(예를 들어, 컬러 픽처(17)의 경우 하나의 루마 및 두 개의 크로마 어레이), 또는 적용된 컬러 포맷에 따라 임의의 다른 수 및/또는 종류의 어레이를 포함할 수 있다. 블록(203)의 수평 및 수직 방향(또는 축)에 있는 샘플의 수는 블록(203)의 크기를 정의한다. 따라서, 블록은, 예를 들어, 샘플의 MxN(M-열 x N-행) 어레이 또는 변환 계수의 MxN 어레이일 수 있다.
도 2에 도시된 바와 같이 비디오 인코더(20)의 실시예는 픽처(17)를 블록 별로 인코딩하도록 구성될 수 있다, 예를 들어, 인코딩 및 예측은 블록(203) 별로 수행된다.
잔차 계산(RESIDUAL CALCULATION)
잔차 계산 유닛(204)은 예를 들어, 픽처 블록(203)의 샘플 값으로부터 예측 블록(265)의 샘플 값을 샘플 단위로 (픽셀 단위로) 감산함으로써, 픽처 블록(203) 및 예측 블록(265)(예측 블록(265)에 관한 추가 세부 사항은 나중에 제공됨)에 기초하여 잔차 블록(205)(잔차(205)라고도 함)을 계산하여 샘플 도메인에서 잔차 블록(205)을 획득하도록 구성된다.
변환(TRANSFORM)
변환 처리 유닛(206)은 잔차 블록(205)의 샘플 값에 대해 변환, 예를 들어, 이산 코사인 변환(discrete cosine transform)(DCT) 또는 이산 사인 변환(discrete sine transform)(DST)을 적용하여 변환 도메인에서 변환 계수(207)를 획득하도록 구성될 수 있다. 변환 계수(207)는 또한 변환 잔차 계수로 지칭될 수 있고 변환 도메인에서 잔차 블록(205)을 나타낼 수 있다.
변환 처리 유닛(206)은 H.265/HEVC에 대해 명시된 변환과 같은 DCT/DST의 정수 근사치를 적용하도록 구성될 수 있다. 직교 DCT 변환과 비교할 때, 이러한 정수 근사는 전형적으로 특정 팩터에 의해 스케일링된다. 순방향 및 역방향 변환에 의해 처리되는 잔차 블록의 표준을 보존하기 위해, 추가 스케일링 팩터(scaling factor)가 변환 프로세스의 일부로서 적용된다. 스케일링 팩터는 전형적으로 시프트 연산에 대해 거듭 제곱인 스케일링 팩터, 변환 계수의 비트 깊이, 정확도와 구현 비용 간의 트레이드오프 등과 같은 특정 제약 조건에 기초하여 선택된다. 특정 스케일링 팩터는 예를 들어, 역변환 처리 유닛(212)에 의한 역방향 변환 (및 예를 들어, 비디오 디코더(30)의 역변환 처리 유닛(312)에 의한 대응하는 역방향 변환)에 대해 명시되며, 이에 따라, 예를 들어, 인코더(20)의 변환 처리 유닛(206)에 의한, 순방향 변환을 위한 대응하는 스케일링 팩터가 명시될 수 있다.
비디오 인코더(20)(각자 변환 처리 유닛(206))의 실시예는 예를 들어, 비디오 디코더(30)가 디코딩을 위해 변환 파라미터를 수신하고 사용할 수 있도록, 예를 들어, 직접적으로 또는 엔트로피 인코딩 유닛(270)을 통해 인코딩된 또는 압축된 변환 파라미터, 예를 들어, 변환 또는 변환들의 유형을 출력하도록 구성될 수 있다.
양자화(QUANTIZATION)
양자화 유닛(208)은 예를 들어, 스칼라 양자화 또는 벡터 양자화를 적용함으로써, 변환 계수(207)를 양자화하여 양자화된 계수(209)를 획득하도록 구성될 수 있다. 양자화된 계수(209)는 또한 양자화된 변환 계수(209) 또는 양자화된 잔차 계수(209)로 지칭될 수 있다.
양자화 프로세스는 변환 계수(207)의 일부 또는 전부와 연관된 비트 깊이를 감소시킬 수 있다. 예를 들어, n-비트 변환 계수는 양자화 동안 m-비트 변환 계수로 내림(rounded down)될 수 있으며, 여기서 n은 m보다 크다. 양자화의 정도는 양자화 파라미터(quantization parameter)(QP)를 조정함으로써 수정될 수 있다. 예를 들어, 스칼라 양자화의 경우, 더 미세하거나 거친 양자화를 달성하기 위해 상이한 스케일링이 적용될 수 있다. 더 작은 양자화 스텝 크기는 더 미세한 양자화에 대응하는 반면, 더 큰 양자화 스텝 크기는 더 거친 양자화에 대응한다. 적용 가능한 양자화 스텝 크기는 양자화 파라미터(QP)로 표시될 수 있다. 양자화 파라미터는 예를 들어, 적용 가능한 양자화 스텝 크기의 미리 정의된 세트에 대한 인덱스일 수 있다. 예를 들어, 작은 양자화 파라미터는 미세 양자화(작은 양자화 스텝 크기)에 대응할 수 있고 큰 양자화 파라미터는 거친 양자화(큰 양자화 스텝 크기)에 대응하거나, 그 반대도 마찬가지일 수 있다. 양자화는 양자화 스텝 크기 및 대응하는 및/또는 역의 양자화에 의한, 예를 들어, 역양자화 유닛(210)에 의한 나눗셈을 포함할 수 있고 양자화 스텝 크기에 의한 곱셈을 포함할 수 있다. 일부 표준, 예를 들어, HEVC에 따른 실시예는 양자화 파라미터를 사용하여 양자화 스텝 크기를 결정하도록 구성될 수 있다. 일반적으로, 양자화 스텝 크기는 나눗셈을 포함하는 수학식의 고정 소수점 근사를 사용하여 양자화 파라미터에 기초하여 계산될 수 있다. 양자화 스텝 크기 및 양자화 파라미터에 대한 수학식의 고정 소수점 근사에 사용되는 스케일링 때문에 수정될 수 있는, 추가 스케일링 팩터가 잔차 블록의 표준을 복원하기 위해 양자화 및 역양자화에 도입될 수 있다. 하나의 예시적인 구현에서, 역변환과 역양자화의 스케일링은 결합될 수 있다. 대안적으로, 맞춤형 양자화 테이블이 사용되어, 인코더로부터 디코더로, 예를 들어, 비트스트림으로 시그널링될 수 있다. 양자화는 손실 연산이며, 여기서 손실은 양자화 스텝 크기가 증가함에 따라 증가한다.
비디오 인코더(20)(각자 양자화 유닛(208))의 실시예는 예를 들어, 비디오 디코더(30)가 디코딩을 위해 양자화 파라미터를 수신하고 적용할 수 있도록, 예를 들어, 직접적으로 또는 엔트로피 인코딩 유닛(270)을 통해 인코딩된 양자화 파라미터(QP)를 출력하도록 구성된다.
역양자화(INVERSE QUANTIZATION)
역양자화 유닛(210)은 예를 들어, 양자화 유닛(208)과 동일한 양자화 스텝 크기에 기초하거나 이를 사용하여 양자화 유닛(208)에 의해 적용된 양자화 방식의 역을 적용함으로써, 양자화된 계수에 양자화 유닛(208)의 역양자화를 적용하여 역양자화 계수(211)를 획득하도록 구성된다. 역양자화된 계수(211)는 또한 역양자화된 잔차 계수(211)으로 지칭될 수도 있고 - 양자화에 의한 손실로 인해 전형적으로는 변환 계수와 동일하지 않겠지만 - 변환 계수(207)에 대응한다.
역변환(INVERSE TRANSFORM)
역변환 처리 유닛(212)은 변환 처리 유닛(206)에 의해 적용된 변환의 역변환, 예를 들어, 역 이산 코사인 변환(DCT) 또는 역 이산 사인 변환(DST) 또는 다른 역변환을 적용하여 샘플 도메인에서 복원된 잔차 블록(213)(또는 대응하는 역양자화된 계수(213))을 획득하도록 구성된다. 복원된 잔차 블록(213)은 또한 변환 블록(213)으로 지칭될 수도 있다.
복원(RECONSTRUCTION)
복원 유닛(214)(예를 들어, 가산기 또는 합산기(214))은 예를 들어, 샘플별로, 복원된 잔차 블록(213)의 샘플 값과 예측 블록(265)의 샘플 값을 가산함으로써, 변환 블록(213)(즉, 복원된 잔차 블록(213))을 예측 블록(265)에 가산하여 샘플 도메인에서 복원된 블록(215)을 획득하도록 구성된다.
필터링(FILTERING)
루프 필터 유닛(220)(또는 짧게 "루프 필터"(220))은 복원된 블록(215)을 필터링하여 필터링된 블록(221)을 획득하거나, 일반적으로는 복원된 샘플을 필터링하여 필터링된 샘플을 획득하도록 구성된다. 루프 필터 유닛은 예를 들어, 픽셀 전환을 부드럽게 하거나 또는 그렇지 않으면 비디오 품질을 개선하도록 구성된다. 루프 필터 유닛(220)은 디블로킹 필터, 샘플 적응 오프셋(sample-adaptive offset)(SAO) 필터 또는 하나 이상의 다른 필터, 예를 들어, 양방향 필터, 적응 루프 필터(adaptive loop filter)(ALF), 선명화, 평활화 필터 또는 협업 필터 또는 이들의 조합을 포함할 수 있다. 루프 필터 유닛(220)이 도 2에서 인 루프 필터인 것으로 도시되어 있지만, 다른 구성에서 루프 필터 유닛(220)은 포스트 루프 필터로서 구현될 수 있다. 필터링된 블록(221)은 또한 필터링된 복원된 블록(221)으로 지칭될 수도 있다.
비디오 인코더(20)(각자 루프 필터 유닛(220))의 실시예는 예를 들어, 디코더(30)가 디코딩을 위해 동일한 루프 필터 파라미터 또는 각자의 루프 필터를 수신하고 적용할 수 있도록, 직접적으로 또는 엔트로피 인코딩 유닛(270)을 통해 인코딩된 (샘플 적응 오프셋 정보와 같은) 루프 필터 파라미터를 출력하도록 구성될 수 있다.
디코딩된 픽처 버퍼(DECODED PICTURE BUFFER)
디코딩된 픽처 버퍼(DPB)(230)는 비디오 인코더(20)에 의해 비디오 데이터를 인코딩하기 위한 참조 픽처 또는 일반적으로는 참조 픽처 데이터를 저장하는 메모리일 수 있다. DPB(230)는 동기식 DRAM(synchronous DRAM)(SDRAM), 자기 저항성 RAM(magento-resistive RAM)((MRAM), 저항성 RAM(resistive RAM)(RRAM) 또는 다른 유형의 메모리 디바이스를 비롯한 동적 랜덤 액세스 메모리(dynamic random access memory)(DRAM)와 같은 임의의 다양한 메모리 디바이스에 의해 형성될 수 있다. 디코딩된 픽처 버퍼(DPB)(230)는 하나 이상의 필터링된 블록(221)을 저장하도록 구성될 수 있다. 디코딩된 픽처 버퍼(230)는 또한 동일한 현재 픽처 또는 상이한 픽처의 이전에 필터링된 다른 블록, 예들 들어, 이전에 복원되고 필터링된 블록(221)을 저장하도록 구성될 수 있으며, 예를 들어, 인터 예측을 위해, 완전히 이전에 복원된, 즉, 디코딩된 픽처(및 대응하는 참조 블록 및 샘플) 및/또는 부분적으로 복원된 현재 픽처(및 대응하는 참조 블록 및 샘플)를 제공할 수 있다. 디코딩된 픽처 버퍼(DPB)(230)는 또한 예를 들어, 복원된 블록(215)이 루프 필터 유닛(220)에 의해 필터링되지 않았다면, 하나 이상의 필터링되지 않은 복원된 블록(215), 또는 일반적으로는, 필터링되지 않은 복원된 샘플 또는 복원된 블록 또는 샘플의 임의의 다른 추가 처리된 버전을 저장하도록 구성될 수 있다.
모드 선택(파티셔닝 및 예측)(MODE SELECTION (PARTITIONING & PREDICTION)
모드 선택 유닛(260)은 파티셔닝 유닛(262), 인터 예측 유닛(244) 및 인트라 예측 유닛(254)을 포함하고, 원본 픽처 데이터, 예를 들어, 원본 블록(203)(현재 픽처(17)의 현재 블록(203)), 및 복원된 픽처 데이터, 예를 들어 동일한(현재) 픽처의 필터링된 및/또는 필터링되지 않은 복원된 샘플 또는 블록 및/또는 예를 들어, 디코딩된 픽처 버퍼(230) 또는 다른 버퍼(예를 들어, 도시 되지 않은 라인 버퍼)로부터의 하나 또는 복수의 이전에 디코딩된 픽처를 수신하거나 획득하도록 구성된다. 복원된 픽처 데이터는 예측, 예를 들어, 인터 예측 또는 인트라 예측을 위한 참조 픽처 데이터로서 사용되어, 예측 블록(265) 또는 예측기(265)를 획득한다.
모드 선택 유닛(260)은 현재 블록 예측 모드(파티셔닝하지 않은 것을 포함함) 및 예측 모드(예를 들어, 인트라 또는 인터 예측 모드)에 대한 파티셔닝을 결정 또는 선택하고, 잔차 블록(205)의 계산 및 복원된 블록(215)의 복원을 위해 사용되는 대응하는 예측 블록(265)을 생성하도록 구성될 수 있다.
모드 선택 유닛(260)의 실시예는 최상의 매치 또는 다른 말로 해서 최소 잔차(최소 잔차는 송신 또는 저장을 위한 더 나은 압축을 의미함), 또는 최소 샘플링 오버헤드(최소 샘플링 오버헤드는 송신 또는 저장을 위한 더 나은 압축을 의미함), 또는 최소 시그널링 오버헤드(최소 시그널링 오버헤드는 송신 또는 저장을 위한 더 나은 압축을 의미함)를 제공하는, 또는 둘 모두를 고려하거나 균형을 유지하는, (예를 들어, 모드 선택 유닛(260)에 의해 지원되거나 이용 가능한 것으로부터) 파티셔닝 및 예측 모드를 선택하도록 구성될 수 있다. 모드 선택 유닛(260)은 레이트 왜곡 최적화(rate distortion optimization)(RDO)에 기초하여 파티셔닝 및 예측 모드를 결정하도록, 즉, 최소 레이트 왜곡을 제공하는 예측 모드를 선택하도록 구성될 수 있다. 이러한 맥락에서 "최상", "최소", "최적" 등과 같은 용어는 반드시 전체적인 "최상", "최소", "최적" 등을 의미하는 것은 아니고, 잠재적으로는 "차선의 선택"으로 이어지지만 복잡성과 처리 시간을 줄여주는 임계치 또는 다른 제약 조건을 초과하거나 하회하는 값과 같은 한계 또는 선택 기준의 수행을 의미하기도 한다.
다시 말해서, 파티셔닝 유닛(262)은 예를 들어, 반복적으로 쿼드-트리 파티셔닝(quad-tree-partitioning)(QT), 바이너리 파티셔닝(binary partitioning)(BT) 또는 트리플-트리 파티셔닝(triple-tree-partitioning)(TT) 또는 이들의 임의의 조합을 사용하여, 블록(203)을 더 작은 블록 파티션 또는 (다시 블록을 형성하는) 서브블록으로 파티션하고, 예를 들어 각 블록 파티션 또는 서브블록에 대한 예측을 완수하도록 구성될 수 있으며, 여기서 모드 선택은 파티션된 블록(203)의 트리 구조의 선택을 포함하고 예측 모드는 각각의 블록 파티션 또는 서브블록에 적용된다.
다음에서, 예시적인 비디오 인코더(20)에 의해 수행되는 (예를 들어, 파티셔닝 유닛(260)에 의한) 파티셔닝 및 (인터 예측 유닛(244) 및 인트라 예측 유닛(254)에 의한) 예측 처리가 보다 상세히 설명될 것이다.
파티셔닝(PARTITIONING)
파티셔닝 유닛(262)은 현재 블록(203)을 더 작은 파티션으로, 예를 들어, 더 작은 정사각형 또는 직사각형 크기의 블록으로 파티션 (또는 분할)할 수 있다. 이러한 더 작은 블록(서브블록이라고도 함)은 심지어 더 작은 파티션으로 더 분할될 수 있다. 이것은 또한 트리-파티셔닝(tree-partitioning) 또는 계층적 트리-파티셔닝(hierarchical tree-partitioning)이라고도 하며, 여기서 예를 들어, 루트 트리 레벨 0(계층 레벨 0, 깊이 0)의 루트 블록은 재귀적으로 파티션될 수 있고, 예를 들어, 다음 하위 트리 레벨의 두 개 이상의 블록, 예를 들어, 트리 레벨 1(계층 레벨 1, 깊이 1)의 노드로 파티션될 수 있고, 여기서 이들 블록은 다음 하위 레벨, 예를 들어, 트리 레벨 2(계층 레벨 2, 깊이 2)의 둘 이상의 블록으로 다시 파티션될 수 있는 방식 등으로, 파티셔닝이 한계에 달할 때까지, 예를 들어, 한계 기준이 완수되기 때문에, 예를 들어, 최대 트리 깊이 또는 최소 블록 크기에 도달했기 때문에, 파티션될 수 있다. 더 이상 파티셔닝되지 않는 블록은 트리의 리프 블록 또는 리프 노드라고도 한다. 두 개의 파티션으로 파티셔닝하는 것을 이용하는 트리는 바이너리-트리(binary-tree)(BT)라 하고, 3개의 파티션으로 파티셔닝하는 것을 이용하는 트리는 터너리-트리(ternary-tree)(TT), 4개의 파티션으로 파티셔닝하는 것을 이용하는 트리는 쿼드-트리(quad-tree)(QT)라고 한다.
앞서 언급한 바와 같이, 본 명세서에서 사용되는 "블록"이라는 용어는 픽처의 일부, 특히 정사각형 또는 직사각형 부분일 수 있다. 예를 들어, HEVC 및 VVC를 참조하면, 블록은 코딩 트리 유닛(coding tree unit)(CTU), 코딩 유닛(coding unit)(CU), 예측 유닛(prediction unit)(PU) 및 변환 유닛(transform unit)(TU) 및/또는 대응하는 블록, 예를 들어, 코딩 트리 블록(coding tree block)(CTB), 코딩 블록(coding block)(CB), 변환 블록(transform block)(TB) 또는 예측 블록(prediction block)(PB)일 수 있거나 그에 대응할 수 있다.
예를 들어, 코딩 트리 유닛(CTU)은 3 개의 샘플 어레이를 갖는 픽처의 루마 샘플의 CTB, 크로마 샘플의 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)으로 파티션될 수 있다.
실시예에서, 예를 들어, 다기능 비디오 코딩(Versatile Video Coding)(VVC)이라고 하는 현재 개발중인 최신 비디오 코딩 표준에 따르면, 쿼드-트리 및 바이너라 트리(Quad-tree and binary tree)(QTBT) 파티셔닝은 코딩 블록을 파티션하는 데 사용된다. QTBT 블록 구조에서, CU는 정사각형 또는 직사각형 형상을 가질 수 있다. 예를 들어, 코딩 트리 유닛(CTU)은 먼저 쿼드-트리 구조로 파티션된다. 쿼드-트리 리프 노드는 바이너리 트리 또는 터너리(또는 트리플) 트리 구조로 더 파티션된다. 파티셔닝 트리 리프 노드는 코딩 유닛(CU)이라고 하며 그 세그먼테이션은 아무런 추가 파티셔닝 없이 예측 및 변환 처리에 사용된다. 이것은 CU, PU 및 TU가 QTBT 코딩 블록 구조에서 동일한 블록 크기를 갖는다는 것을 의미한다. 병렬로, 다중 파티션, 예를 들어, 트리플 트리 파티션 또한 QTBT 블록 구조와 함께 사용되는 것으로 제안되었다.
하나의 예에서, 비디오 인코더(20)의 모드 선택 유닛(260)은 본 명세서에 설명된 파티셔닝 기술의 임의의 조합을 수행하도록 구성될 수 있다.
위에서 설명한 바와 같이, 비디오 인코더(20)는 (미리 결정된) 예측 모드의 세트로부터 최상 또는 최적 예측 모드를 결정 또는 선택하도록 구성된다. 예측 모드의 세트는 예를 들어 인트라 예측 모드 및/또는 인터 예측 모드를 포함할 수 있다.
인트라 예측(INTRA PREDICTION)
인트라 예측 모드의 세트는 35 개의 상이한 인트라 예측 모드, 예를 들어, DC(또는 평균) 모드 및 평면 모드와 같은 비방향 모드 또는 예를 들어, HEVC에서 정의된 바와 같은 방향 모드를 포함할 수 있거나, 또는 67 개의 상이한 인트라 예측 모드, 예를 들어 DC(또는 평균) 모드 및 평면 모드와 같은 비방향 모드 또는 예를 들어, VVC에 대해 정의된 바와 같은 방향 모드를 포함할 수 있다.
인트라 예측 유닛(254)은 인트라 예측 모드 세트의 인트라 예측 모드에 따라 동일한 현재 픽처의 이웃 블록의 복원된 샘플을 사용하여 인트라 예측 블록(265)을 생성하도록 구성된다.
인트라 예측 유닛(254)(또는 일반적으로 모드 선택 유닛(260))은 또한, 예를 들어, 비디오 디코더(30)가 디코딩을 위해 예측 파라미터를 수신하고 사용할 수 있도록, 인트라 예측 파라미터(또는 일반적으로는 블록에 대해 선택된 인트라 예측 모드를 나타내는 정보)를 인코딩된 픽처 데이터(21)에 포함시키기 위한 신택스 요소(266)의 형태로 엔트로피 인코딩 유닛(270)으로 출력하도록 구성된다.
인터 예측(INTER PREDICTION)
(또는 가능한) 인터 예측 모드의 세트는, 예를 들어, 참조 픽처 중 전체 참조 픽처 또는 단지 일부가, 예를 들어, 현재 블록의 영역 주변의 탐색 윈도우 영역이 최상의 매칭 참조 블록을 탐색하는 데 사용되든 사용되지 않든, 및/또는 예를 들어, 픽셀 보간, 예를 들어, 하프/세미-펠(half/semi-pel) 및/또는 1/4 펠(quarter-pel) 보간이 적용되든 적용되지 않든, 이용 가능한 참조 픽처(즉, 예를 들어, DBP(230)에 저장된 이전의 적어도 부분적으로 디코딩된 픽처) 및 다른 인터 예측 파라미터에 종속적이다.
위의 예측 모드 외에, 스킵 모드 및/또는 직접 모드가 적용될 수 있다.
인터 예측 유닛(244)은 움직임 추정(motion estimation)(ME) 유닛 및 움직임 보상(motion compensation)(MC) 유닛(둘 모두 도 2에 도시되지 않음)을 포함할 수 있다. 움직임 추정 유닛은 픽처 블록(203)(현재 픽처(17)의 현재 픽처 블록(203)) 및 디코딩된 픽처(231), 또는 적어도 하나 또는 복수의 이전에 복원된 블록, 예를 들어, 움직임 추정을 위해, 하나 또는 복수의 다른/상이한 이전에 디코딩된 픽처(231)의 복원된 블록을 수신 또는 획득하도록 구성될 수 있다. 예를 들어, 비디오 시퀀스는 현재 픽처 및 이전에 디코딩된 픽처(231)를 포함할 수 있고, 또는 다른 말로 하면, 현재 픽처 및 이전에 디코딩된 픽처(231)는 비디오 시퀀스를 형성하는 픽처 시퀀스의 일부이거나 또는 이를 형성할 수 있다.
인코더(20)는, 예를 들어, 복수의 다른 픽처의 동일한 또는 상이한 픽처의 복수의 참조 블록으로부터 참조 블록을 선택하고 참조 픽처(또는 참조 픽처 인덱스) 및/또는 참조 블록의 위치(x, y 좌표)와 움직임 추정 유닛에 제공되는 인터 예측 파라미터로서 현재 블록의 위치 사이의 오프셋(공간 오프셋)을 제공하도록 구성될 수 있다. 이러한 오프셋은 움직임 벡터(motion vector)(MV)라고도 한다.
움직임 보상 유닛은 인터 예측 파라미터를 획득, 예를 들어, 수신하고 인터 예측 파라미터에 기초하여 또는 이를 사용하여 인터 예측을 수행하여 인터 예측 블록(265)을 획득한다. 움직임 보상 유닛에 의해 수행되는 움직임 보상은 움직임 추정에 의해 결정된 움직임/블록 벡터에 기초하여 예측 블록을 가져 오거나 생성하는 것, 가능하게는 서브픽셀 정밀도로 보간을 수행하는 것을 포함할 수 있다. 보간 필터링은 알려진 픽셀 샘플로부터 추가 픽셀 샘플을 생성하며, 이에 따라 픽처 블록을 코딩하는 데 사용될 수 있는 후보 예측 블록의 수를 잠재적으로 늘릴 수 있다. 현재 픽처 블록의 PU에 대한 움직임 벡터를 수신하면, 움직임 보상 유닛은 참조 픽처 리스트 중 하나에서 움직임 벡터가 가리키는 예측 블록을 찾을 수 있다.
움직임 보상 유닛은 또한 비디오 슬라이스의 픽처 블록을 디코딩할 때 비디오 디코더(30)에 의해 사용하기 위한 블록 및 비디오 슬라이스와 연관된 신택스 요소를 생성할 수 있다.
엔트로피 코딩(ENTROPY CODING)
엔트로피 인코딩 유닛(270)은, 예를 들어, 비디오 디코더(30)가 디코딩을 위한 파라미터를 수신하고 사용할 수 있도록, 예를 들어, 엔트로피 인코딩 알고리즘 또는 방식(예를 들어, 가변 길이 코딩(variable length coding)(VLC) 방식, 콘텍스트 적응 VLC 방식(context adaptive VLC scheme)(CAVLC), 산술 코딩 방식(arithmetic coding scheme), 이진화, 콘텍스트 적응 이진 산술 코딩(context adaptive binary arithmetic coding)(CABAC), 신택스 기반 콘텍스트 적응 이진 산술 코딩(syntax-based context-adaptive binary arithmetic coding)(SBAC), 확률 간격 파티셔닝 엔트로피(probability interval partitioning entropy)(PIPE) 코딩 또는 다른 엔트로피 인코딩 방법론 또는 기술) 또는 양자화된 계수(209)에 대한 바이패스(비압축), 인터 예측 파라미터, 인트라 예측 파라미터, 루프 필터 파라미터 및/또는 다른 신택스 요소를 적용하여, 예를 들어, 인코딩된 비트스트림(21)의 형태로, 출력(272)을 통해 출력될 수 있는 인코딩된 픽처 데이터(21)를 획득하도록 구성된다. 인코딩된 비트스트림(21)은 비디오 디코더(30)로 전송되거나, 또는 나중에 비디오 디코더(30)에 의한 전송 또는 검색을 위해 메모리에 저장될 수 있다.
비디오 인코더(20)의 다른 구조적 변형은 비디오 스트림을 인코딩하는 데 사용될 수 있다. 예를 들어, 비변환 기반 인코더(20)는 특정 블록 또는 프레임에 대해 변환 처리 유닛(206) 없이 잔차 신호를 직접 양자화할 수 있다. 다른 구현에서, 인코더(20)는 단일 유닛으로 결합된 양자화 유닛(208) 및 역양자화 유닛(210)을 가질 수 있다.
디코더 및 디코딩 방법(DECODER AND DECODING METHOD)
도 3은 본 출원의 기술을 구현하도록 구성된 비디오 디코더(30)의 예를 도시한다. 비디오 디코더(30)는 예를 들어, 인코더(20)에 의해 인코딩된 픽처 데이터(21)(예를 들어 인코딩된 비트스트림(21))를 수신하여 디코딩된 픽처(331)을 획득하도록 구성된다. 인코딩된 픽처 데이터 또는 비트스트림은 인코딩된 픽처 데이터, 예를 들어, 인코딩된 비디오 슬라이스 및 연관된 신택스 요소의 픽처 블록을 나타내는 데이터를 디코딩하기 위한 정보를 포함한다.
도 3의 예에서, 디코더(30)는 엔트로피 디코딩 유닛(304), 역양자화 유닛(310), 역변환 처리 유닛(312), 복원 유닛(314)(예를 들어 합산기(314)), 루프 필터(320), 디코딩된 픽처 버퍼(DBP)(330), 인터 예측 유닛(344) 및 인트라 예측 유닛(354)을 포함한다. 인터 예측 유닛(344)은 움직임 보상 유닛이거나 이를 포함할 수 있다. 비디오 디코더(30)는, 일부 예에서, 도 2의 비디오 인코더(100)와 관련하여 설명된 인코딩 패스에 일반적으로 역인 디코딩 패스를 수행할 수 있다.
디코더(20)와 관련하여 설명된 바와 같이, 인코더(20), 역양자화 유닛(210), 역변환 처리 유닛(212), 복원 유닛(214), 루프 필터(220), 디코딩된 픽처 버퍼(DPB)(230), 인터 예측 유닛(344) 및 인트라 예측 유닛(354)은 또한 비디오 인코더(20)의 “빌트-인 디코더”를 형성한다고도 말한다. 따라서, 역양자화 유닛(310)은 기능면에서 역양자화 유닛(110)과 동일할 수 있고, 역변환 처리 유닛(312)은 기능면에서 역변환 처리 유닛(212)과 동일할 수 있고, 복원 유닛(314)은 기능면에서 복원 유닛(214)과 동일할 수 있고, 루프 필터(320)는 기능면에서 루프 필터(220)와 동일할 수 있으며, 디코딩된 픽처 버퍼(330)는 기능면에서 디코딩된 픽처 버퍼(230)와 동일할 수 있다. 그러므로 비디오 인코더(20)의 각자의 유닛 및 기능에 대해 제공된 설명은 비디오 디코더(30)의 각자의 유닛 및 기능에 대응적으로 적용된다.
엔트로피 디코딩(ENTROPY DECODING)
엔트로피 디코딩 유닛(304)은 비트스트림(21)(또는 일반적으로는 인코딩된 픽처 데이터(21))을 파싱하고, 예를 들어, 인코딩된 픽처 데이터(21)에 엔트로피 디코딩을 수행하여, 예를 들어, 양자화된 계수(309) 및/또는 디코딩된 코딩 파라미터(도 3에 도시되지 않음), 예를 들어, 인터 예측 파라미터(예를 들어, 참조 픽처 인덱스 및 움직임 벡터), 인트라 예측 파라미터(예를 들어, 인트라 예측 모드 또는 인덱스), 변환 파라미터, 양자화 파라미터, 루프 필터 파라미터 및/또는 다른 신택스 요소 중 일부 또는 전부를 획득하도록 구성된다. 엔트로피 디코딩 유닛(304)은 인코더(20)의 엔트로피 인코딩 유닛(270)과 관련하여 설명된 바와 같은 인코딩 방식에 대응하는 디코딩 알고리즘 또는 방식을 적용하도록 구성될 수 있다. 엔트로피 디코딩 유닛(304)은 또한 인터 예측 파라미터, 인트라 예측 파라미터 및/또는 다른 신택스 요소를 모드 선택 유닛(360)에 제공하고 다른 파라미터를 디코더(30)의 다른 유닛에 제공하도록 구성될 수 있다. 비디오 디코더(30)는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨의 신택스 요소를 수신할 수 있다.
역양자화(INVERSE QUANTIZATION)
역양자화 유닛(310)은 (예를 들어, 엔트로피 디코딩 유닛(304)에 의해, 예를 들어, 파싱 및/또는 디코딩함으로써) 인코딩된 픽처 데이터(21)로부터 양자화 파라미터(QP) (또는 일반적으로는 역양자화와 관련된 정보) 및 양자화된 계수를 수신하고 양자화 파라미터에 기초하여 디코딩된 양자화된 계수(309)에 역양자화를 적용하여 변환 계수(311)라고 지칭될 수도 있는 역양자화된 계수(311)를 획득하도록 구성될 수 있다. 역양자화 프로세스는 비디오 슬라이스의 각 비디오 블록에 대해 비디오 인코더(20)에 의해 결정된 양자화 파라미터를 사용하여 양자화의 정도 및 마찬가지로 적용되어야 하는 역양자화의 정도를 결정하는 것을 포함할 수 있다.
역변환(INVERSE TRANSFORM)
역변환 처리 유닛(312)은 변환 계수(311)라고도 하는 역양자화된 계수(311)를 수신하고, 샘플 도메인에서 복원된 잔차 블록(213)을 획득하기 위해 역양자화된 계수(311)에 변환을 적용하도록 구성될 수 있다. 복원된 잔차 블록(213)은 변환 블록(313)으로 지칭될 수도 있다. 변환은 역변환, 예를 들어 역 DCT, 역 DST, 역정수 변환 또는 개념적으로 유사한 역변환 프로세스일 수 있다. 역변환 처리 유닛(312)은 (예를 들어, 엔트로피 디코딩 유닛(304)에 의해, 예를 들어, 파싱 및/또는 디코딩함으로써) 인코딩된 픽처 데이터(21)로부터 변환 파라미터 또는 대응하는 정보를 수신하여 역양자화된 계수(311)에 적용될 변환을 결정하도록 구성될 수 있다.
복원(RECONSTRUCTION)
복원 유닛(314)(예를 들어, 가산기 또는 합산기(314))은 예를 들어, 복원된 잔차 블록(313)의 샘플 값과 예측 블록(365)의 샘플 값을 가산함으로써, 복원된 잔차 블록(313)을 예측 블록(365)에 가산하여, 샘플 도메인에서 복원된 블록(315)을 획득하도록 구성될 수 있다.
필터링(FILTERING)
(코딩 루프에서 또는 코딩 루프 다음의) 루프 필터 유닛(320)은 복원된 블록(315)을 필터링하여, 예를 들어, 필터링된 블록(321)을 획득하도록, 예를 들어, 픽셀 전환을 원활하게 하거나, 또는 그렇지 않으면 비디오 품질을 개선하도록 구성된다. 루프 필터 유닛(320)은 디블로킹 필터, 샘플 적응 오프셋(SAO) 필터 또는 하나 이상의 다른 필터, 예를 들어, 양방향 필터, 적응 루프 필터(adaptive loop filter)(ALF), 선명화, 평활화 필터 또는 협업 필터 또는 이들의 조합과 같은 하나 이상의 루프 필터를 포함할 수 있다. 루프 필터 유닛(320)이 도 3에서 인 루프 필터로서 도시되어 있지만, 다른 구성에서 루프 필터 유닛(320)은 포스트 루프 필터로서 구현될 수 있다.
디코딩된 픽처 버퍼(DECODED PICTURE BUFFER)
그 다음에 픽처의 디코딩된 비디오 블록(321)은 디코딩된 픽처(331)를 다른 픽처에 대한 후속 움직임 보상을 위한 및/또는 각각의 디스플레이를 위한 참조 픽처로서 저장하는, 디코딩된 픽처 버퍼(330)에 저장된다.
디코더(30)는, 예를 들어, 출력(312)을 통해, 사용자에게 제시하거나 보여주기 위한 디코딩된 픽처(311)를 출력하도록 구성된다.
예측(PREDICTION)
인터 예측 유닛(344)은 인터 예측 유닛(244)(특히 움직임 보상 유닛)과 동일할 수 있고, 인트라 예측 유닛(354)은 기능면에서 인터 예측 유닛(254)과 동일할 수 있으며, (예를 들어, 파싱 및/또는 디코딩에 의해, 예를 들어 엔트로피 디코딩 유닛(304)에 의해) 인코딩된 픽처 데이터(21)로부터 수신된 파티셔닝 및/또는 예측 파라미터 또는 각자의 정보에 기초한 분할 또는 파티셔닝 결정 및 예측을 수행한다. 모드 선택 유닛(360)은 (필터링된 또는 필터링되지 않은) 복원된 픽처, 블록 또는 각각의 샘플에 기초하여 블록 별 예측(인트라 또는 인터 예측)을 수행하여 예측 블록(365)을 획득하도록 구성될 수 있다.
비디오 슬라이스가 인트라 코딩된 I 슬라이스로서 코딩될 때, 모드 선택 유닛(360)의 인트라 예측 유닛(354)은 현재 픽처의 이전에 디코딩된 블록으로부터 시그널링된 인트라 예측 모드 및 데이터에 기초하여 현재 비디오 슬라이스의 픽처 블록에 대한 예측 블록(365)을 생성하도록 구성된다. 비디오 픽처가 인터 코딩된 (즉, B 또는 P) 슬라이스로서 코딩될 때, 모드 선택 유닛(360)의 인터 예측 유닛(344)(예를 들어, 움직임 보상 유닛)은 엔트로피 디코딩 유닛(304)으로부터 수신된 움직임 벡터 및 다른 신택스 요소에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 블록(365)을 생성하도록 구성된다. 인터 예측을 위해, 예측 블록은 참조 픽처 리스트 중 하나 내의 참조 픽처 중 하나로부터 생성될 수 있다. 비디오 디코더(30)는 DPB(330)에 저장된 참조 픽처에 기초한 디폴트 구성 기술을 사용하여 참조 프레임 리스트(List 0 및 List 1)을 구성할 수 있다.
모드 선택 유닛(360)은 움직임 벡터 및 다른 신택스 요소를 파싱함으로써 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 예측 정보를 사용하여 디코딩되는 현재 비디오 블록에 대한 예측 블록을 생성하도록 구성된다. 예를 들어, 모드 선택 유닛(360)은 수신된 신택스 요소 중 일부를 사용하여 비디오 슬라이스의 비디오 블록을 코딩하는데 사용되는 예측 모드(예를 들어, 인트라 또는 인터 예측), 인터 예측 슬라이스 유형(예를 들어, B 슬라이스, P 슬라이스 또는 GPB 슬라이스), 슬라이스에 대한 참조 픽처 리스트 중 하나 이상의 참조 픽처 리스트에 대한 구성 정보, 슬라이스의 각 인터 인코딩된 비디오 블록에 대한 움직임 벡터, 슬라이스의 각 인터 코딩된 비디오 블록에 대한 인터 예측 상태 및 현재 비디오 슬라이스 내 비디오 블록을 디코딩하는 다른 정보를 결정한다.
비디오 디코더(30)의 다른 변형이 인코딩된 픽처 데이터(21)를 디코딩하는 데 사용될 수 있다. 예를 들어, 디코더(30)는 루프 필터링 유닛(320) 없이 출력 비디오 스트림을 생성할 수 있다. 예를 들어, 비변환 기반 디코더(30)는 특정 블록 또는 프레임에 대해 역변환 처리 유닛(312) 없이 잔차 신호를 직접 역양자화할 수 있다. 다른 구현에서, 비디오 디코더(30)는 단일 유닛으로 결합된 역양자화 유닛(310) 및 역변환 처리 유닛(312)을 가질 수 있다.
인코더(20) 및 디코더(30)에서, 현재 단계의 처리 결과는 추가 처리된 다음 다음 단계에 출력될 수 있다는 것을 이해해야 한다. 예를 들어, 보간 필터링, 움직임 벡터 도출 또는 루프 필터링 후에, 보간 필터링, 움직임 벡터 도출 또는 루프 필터링의 처리 결과에 대해 클립핑 또는 시프트와 같은 추가 동작이 수행될 수 있다.
추가 동작은 (이것으로 제한되는 것은 아니지만 아핀 모드의 제어점 움직임 벡터, 아핀, 평면, 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에 따라 움직임 벡터를 제한하는 두 개의 방법을 제공한다.
방법 1: 흐름 동작에 의해 오버플로우 MSB(most significant bit, 최상위 비트)를 제거
Figure pct00015
Figure pct00016
Figure pct00017
Figure pct00018
여기서 mvx는 이미지 블록 또는 서브블록의 움직임 벡터의 수평 컴포넌트이고, mvy는 이미지 블록 또는 서브블록의 움직임 벡터의 수직 컴포넌트이며, ux와 uy는 중간 값을 표시한다.
예를 들어, mvx의 값이 -32769 이면, 수학식 (1)과 (2)를 적용한 후에, 결과 값은 32767이다. 컴퓨터 시스템에서, 십진수는 2의 보수로서 저장된다. -32769의 2의 보수는 1,0111,1111,1111,1111 (17 비트)이고, 그런 다음 MSB는 폐기되므로, 결과적인 2의 보수는 01111,1111,1111,1111 (10 진수는 32767임)이며, 이것은 수학식 (1)과 (2)를 적용한 출력과 동일하다.
Figure pct00019
Figure pct00020
Figure pct00021
Figure pct00022
동작은 수학식 (5) 내지 수학식 (8)에서 보여지는 바와 같이 mvp와 mvd의 합산 동안 적용될 수 있다.
방법 2: 값을 클립핑함으로써 오버플로우 MSB를 제거
Figure pct00023
여기서 vx는 이미지 블록 또는 서브블록의 움직임 벡터의 수평 컴포넌트이고, vy는 이미지 블록 또는 서브블록의 움직임 벡터의 수직 컴포넌트이며; x, y 및 z는 각자 MV 클립핑 프로세스의 세 개의 입력 값에 대응하며 함수(Clip3)의 정의는 다음과 같다.
Figure pct00024
도 4는 본 개시내용의 실시예에 따른 비디오 코딩 디바이스(400)의 개략도이다. 비디오 코딩 디바이스(400)는 본 명세서에 설명된 바와 같이 개시된 실시예를 구현하기에 적합하다. 실시예에서, 비디오 코딩 디바이스(400)는 도 1a의 비디오 디코더(30)와 같은 디코더 또는 도 1a의 비디오 인코더(20)와 같은 인코더일 수 있다.
비디오 코딩 디바이스(400)는 데이터를 수신하기 위한 입구 포트(410)(또는 입력 포트(410)) 및 수신기 유닛(Rx)(420); 데이터를 처리하는 프로세서, 로직 유닛 또는 중앙 처리 유닛(central processing unit)(CPU)(430); 데이터를 송신하기 위한 송신기 유닛(Tx)(440) 및 출구 포트(450)(또는 출력 포트(450); 및 데이터를 저장하기 위한 메모리(460)를 포함한다. 비디오 코딩 디바이스(400)는 또한 입구 포트(410), 수신기 유닛(420), 송신기 유닛(440) 및 송신 포트(450)에 결합된, 전기 신호의 진출 또는 진입을 위한 광학-전기(optical-to-electrical)(OE) 컴포넌트 및 전기-광학(electrical-to-optical)(EO) 컴포넌트를 포함할 수 있다.
프로세서(430)는 하드웨어 및 소프트웨어로 구현된다. 프로세서(430)는 하나 이상의 CPU 칩, (예를 들어, 멀티 코어 프로세서로서) 코어, FPGA, ASIC 및 DSP로서 구현될 수 있다. 프로세서(430)는 입구 포트(410), 수신기 유닛(420), 송신기 유닛(440), 출구 포트(450) 및 메모리(460)와 통신한다. 프로세서(430)는 코딩 모듈(470)을 포함한다. 코딩 모듈(470)은 위에서 설명된 개시된 실시예를 구현한다. 예를 들어, 코딩 모듈(470)은 다양한 코딩 동작을 구현, 처리, 준비 또는 제공한다. 그러므로 코딩 모듈(470)을 포함하면 비디오 코딩 디바이스(400)의 기능성에 실질적인 개선을 제공하고 비디오 코딩 디바이스(400)의 상이한 상태로의 변환에 영향을 미친다. 대안적으로, 코딩 모듈(470)은 메모리(460)에 저장되고 프로세서(430)에 의해 실행되는 명령어로서 구현된다.
메모리(460)는 하나 이상의 디스크, 테이프 드라이브 및 솔리드 스테이트 드라이브를 포함할 수 있으며, 이러한 프로그램이 실행을 위해 선택될 때 프로그램을 저장하고, 프로그램 실행 동안 명령어 및 데이터를 저장하는 오버-플로우 데이터 저장 디바이스로서 사용될 수 있다. 메모리(460)는 예를 들어, 휘발성 및/또는 비휘발성일 수 있고 판독 전용 메모리(read-only memory)(ROM), 랜덤 액세스 메모리(random access memory)(RAM), 터너리 콘텐츠-어드레스 지정 가능 메모리(ternary content-addressable memory)(TCAM) 및/또는 정적 랜덤 액세스 메모리(static random-access memory)(SRAM)일 수 있다.
도 5는 예시적인 실시예에 따른 도 1의 소스 디바이스(12) 및 목적지 디바이스(14) 중 하나 또는 둘 모두로서 사용될 수 있는 장치(500)의 단순화된 블록도이다.
장치(500)의 프로세서(502)는 중앙 처리 유닛일 수 있다. 대안적으로, 프로세서(502)는 현재 존재하거나 향후 개발될 정보를 조작 또는 처리할 수 있는 임의의 다른 유형의 디바이스 또는 다중 디바이스일 수 있다. 개시된 구현은 도시된 바와 같이 단일 프로세서, 예를 들어 프로세서(502)로 실시될 수 있겠지만, 속도 및 효율성의 장점은 하나 이상의 프로세서를 사용하여 달성될 수 있다.
장치(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)는 다중 버스로 구성될 수 있다. 또한, 보조 저장소(514)는 장치(500)의 다른 컴포넌트에 직접 결합될 수 있거나 또는 네트워크를 통해 액세스될 수 있으며 메모리 카드와 같은 단일 통합 유닛 또는 다중 메모리 카드와 같은 다중 유닛을 포함할 수 있다. 따라서 장치(500)는 매우 다양한 구성으로 구현될 수 있다.
도 6은 HEVC UIP 방식에서 사용되는 복수의 인트라 예측 모드의 개략도를 예시한다. 루미넌스 블록의 경우, 인트라 예측 모드는 3 개의 비방향성 모드 및 33 개의 방향성 모드를 포함할 수 있는 최대 36 개의 인트라 예측 모드를 포함할 수 있다. 비방향성 모드는 평면 예측 모드, 평균(DC) 예측 모드 및 루마 기반 크로마(chroma from luma)(LM) 예측 모드를 포함할 수 있다. 평면 예측 모드는 블록의 경계로부터 도출된 수평 및 수직 xslope를 갖는 블록 진폭 표면을 가정함으로써 예측을 수행할 수 있다. DC 예측 모드는 블록 경계의 평균 값과 매칭하는 값을 갖는 평평한 블록 표면을 가정함으로써 예측을 수행할 수 있다. LM 예측 모드는 블록에 대한 크로마 값이 블록에 대한 루마 값과 매칭한다고 가정함으로써 예측을 수행할 수 있다.
도 7은 예를 들어, VVC에 대해 제안된 67 개의 인트라 예측 모드의 예를 도시하는 것으로, 67 개 인트라 예측 모드 중 복수의 인트라 예측 모드는 평면 모드(인덱스 0), dc 모드(인덱스 1) 및 인덱스 2 내지 66의 각도 모드(angular mode)를 포함하며, 여기서 도 7의 좌측 하단 각도 모드는 인덱스 2를 지칭하고 인덱스의 넘버링은 인덱스 66이 도 7의 최우측 상단 각도 모드가 될 때까지 증분된다.
도 8에 도시된 바와 같이, 두 번째 버전 VVC부터는 광각 방향 예측 방향(점선으로 도시됨)을 비롯한, 스큐 인트라 예측 방향(skew intra prediction direction)에 대응하는 일부 모드를 가지고 있다. 임의의 이러한 모드의 경우, 블록 측 내에서 대응하는 위치가 분수이면, 이웃 참조 샘플 세트의 블록 보간 내에서 샘플을 예측하는 것이 수행되어야 한다. HEVC 및 VVC는 인접한 두 참조 샘플 간의 선형 보간을 사용한다. JEM은 보다 정교한 4-탭 보간 필터를 사용한다. 필터 계수는 너비 또는 높이 값에 따라 가우스 또는 규빅 계수 중 어느 하나로 선택된다. 너비 또는 높이를 사용할지 여부의 결정은 주 기준 측 선택(main reference side selection)에 대한 결정과 일치한다: 인트라 예측 모드가 대각선 모드(diagonal mode)보다 크거나 같을 때, 참조 샘플의 상단 측이 주 기준 측으로 선택되고, 너비 값은 사용 중인 보간 필터를 결정하는 데 선택된다. 그와 달리, 주 기준 측은 블록의 좌측으로부터 선택되고 높이는 필터 선택 프로세스를 제어한다. 구체적으로, 선택된 측의 길이가 8 개 샘플이하이면, 큐빅 보간 4 탭이 적용된다. 그와 달리, 보간 필터는 4-탭 가우스 필터이다.
인터 예측과 유사하게, 인트라 예측은 블록 내 샘플이 분수 경사 방향 모드(fractional-slope directional mode)에 따라 예측될 때 보간 필터링을 필요로 할 수 있다. 선형 필터가 이러한 목적에 사용된다면, 필터 계수는 예측될 블록 내 샘플이 참조 샘플 내에서 분수(서브-펠(sub-pel)) 위치에 맞아 떨어지는 경우 쉽게 계산될 수 있다. 따라서, 선형 필터는 그 계수를 저장하기 위한 룩업 테이블(Look-Up Table)(LUT)이 필요하지 않다. 그럼에도 불구하고, 직접 계산보다는 이것이 사용될 수 있다. 그러나, 예측 모듈이 긴 탭(예를 들어, 4-탭 또는 8 탭) 보간 필터를 사용한다면, 예측 모듈은 루마에 대해 8 탭 DCT-IF 및 크로마에 대해 4-탭 DCT-IF가 각자 표 1 및 표 2에 도시된 바와 같이 표로 작성되어 있는 인터 예측 모듈에서처럼 보간 필터 계수를 유지하기 위해 LUT를 필요로 할 수 있다.
Figure pct00025
Figure pct00026
특정 계수 세트는 표 3에 도시된 바와 같이 정의될 수 있다.
Figure pct00027
인트라 예측된 샘플은 다음과 같이 서브픽셀 오프셋 및 필터 유형에 따라 정의된 계수로 컨벌루션함으로써 계산된다:
Figure pct00028
이 수학식에서 ">>"는 비트 단위 오른쪽 시프트 연산을 표시한다.
계수 세트 {c i }는 룩업 테이블(LUT)로부터 가져 온다. 표 3은 버전 3의 사양서 초안(JVET-L1001 “Versatile Video Coding(Draft 3)”에서 설명된 VVC의 현재 설계에 따라 저장된 값의 예를 제공한다. 평활화(fG)와 선명화(fC) 보간 필터 간의 선택은 MDIS(Mode-Dependent Intra Smoothing, 모드 종속 인트라 평활화) 조건을 사용하여 수행된다. 따라서 fC 또는 fG는 블록의 예측된 샘플을 생성하는 데 사용될 수 있다.
선명화 필터가 선택되면, 예측된 샘플 s(x)은 SPS를 사용하여 정의되거나 또는 선택된 컴포넌트의 비트 깊이로부터 도출되는 허용된 값의 범위로 더 클립핑된다.
일부 사용 사례(use-case)의 경우, LUT를 처리하는데 추가 메모리가 필요하고 이에 따라 에너지 소비뿐만 아니라 다이 크기가 증가하기 때문에 보간 필터에 대해 명시적인 LUT를 유지하지 않게 하는 것이 유익할 수 있다. 첫 번째 사례는 이동 애플리케이션에 중요하다. 두 번째 사례는 가격에 악영향을 미친다.
언급된 사용 사례의 경우, 보간 필터 계수를 분석적으로 정의하는 것이 합리적이다. LUT로부터 가져 오기를 수행하는 대신, 필터 계수는 입력 분수 샘플 위치(p)로부터 계산될 수 있다.
본 개시내용의 실시예에 따르면, 비디오 프레임의 인트라 또는 인터 예측 처리를 위한 방법이 제공되며, 방법은, 참조 샘플을 획득하는 단계와, 서브픽셀 오프셋의 값을 획득하는 단계와, 서브픽셀 4-탭 보간 필터를 사용하여, 참조 샘플을 필터링하여 예측된 샘플 값을 획득하는 단계를 포함하고, 서브픽셀 4-탭 보간 필터의 필터 계수는 다음을 만족하고,
Figure pct00029
여기서 p 는 서브픽셀 오프셋의 값의 분수 부분이고, c0, c1, c2 및 c3은 서브픽셀 4-탭 보간 필터의 필터 계수이다.
하나의 예시적인 구현에서, 참조 샘플(들)은 ref[x], 즉,
Figure pct00030
로 지칭될 수 있으며, 여기서 ref[x]는 참조 샘플의 어레이에 대응하고 "p"는 샘플 값을 포함하는 x-y 2차원 어레이 p[x][y]를 말한다. 사용되는 참조 샘플의 수는 적어도 하나일 수 있다. 다른 예에서, 참조 샘플의 수는 4 개일 수 있다.
하나의 예시적인 구현에서, 획득된 서브픽셀 오프셋 값은 다음과 같이 지칭될 수 있다:
Figure pct00031
"IntraPredAngle"은 인트라 예측 각도(intra-prediction angle)의 값이다.
하나의 예시적인 구현에서, 예측된 샘플 값 "predSamples[x][y]"은 다음에 의해 획득될 수 있다:
Figure pct00032
fT[i]는 필터 계수를 나타낸다. 이러한 계수는 각자 fG 및 fC라고 하는 인터 예측을 위한 루마 또는 크로마 필터 계수일 수 있다.
루마 또는 크로마의 필터 계수의 선택은 플래그 "filterFlag"의 사용 및 설정에 의해, 예를 들면, 다음과 같이 구현될 수 있고,
Figure pct00033
이때
Figure pct00034
값 "31"은 서브픽셀 오프셋의 값의 분수 부분을 말하고 "31"과 상이한 다른 값을 취할 수 있다. 필터 계수 fG(루마) 및/또는 fC(크로마)의 값은 4-탭 필터의 필터 계수에 대한 위의 분석적 표현식을 사용하여 즉석에서 분석적으로 획득될 수 있다. 따라서, 필터 계수는 서브픽셀 오프셋 값에 따라 정의된다.
그러므로 필터 계수는 LUT로부터 각자의 필터 계수의 값에 액세스하지 않고, 오히려 계산에 의해 획득된다.
대안적으로, 필터 계수는 위의 수학식을 사용하여 계산될 수 있고, 값은 LUT에 저장될 수 있다.
본 개시내용의 실시예에 따르면, 서브픽셀 4-탭 보간 필터의 필터 계수는 다음과 같이 테이블에서 정의된다.
Figure pct00035
본 개시내용의 실시예에 따르면, 비디오 프레임의 인트라 또는 인터 예측 처리를 위한 방법이 제공되며, 방법은, 참조 샘플을 획득하는 단계와, 서브픽셀 오프셋의 값을 획득하는 단계와, 서브픽셀 4-탭 보간 필터를 사용하여, 참조 샘플을 필터링하여 예측된 샘플 값을 획득하는 단계를 포함하며, 서브픽셀 4-탭 보간 필터의 필터 계수는 다음과 같이 정의되고,
Figure pct00036
여기서 p는 서브픽셀 오프셋의 값의 분수 부분이고, c0, c1, c2 및 c3은 필터 계수이다.하나의 예시적인 구현에서, 필터 계수의 값은 LUT에 저장될 수 있다. 이것은 서브픽셀 보간 필터링을 위해 각자의 필터 계수의 값이 LUT로부터 가져 온다는 것을 의미한다.
도 23은 인트라/인터 예측 처리의 흐름도를 나타낸다. 단계(2301)에서, 참조 샘플이 획득된다. 참조 샘플은 하나 이상의 참조 샘플을 포함할 수 있다. 그 다음에 단계(2302)에서, 서브픽셀 오프셋 값이 획득된다. 그 다음에 단계(2303)에서, 참조 샘플은 i = 0 ,… 3 인 필터 계수 {c i }를 갖는 서브픽셀 보간 필터를 사용하여 필터링된다. 이것은 4-탭 필터 및/또는 4-포인트 필터라고 한다.
필터 계수는 서브픽셀 오프셋의 값의 주어진 분수 부분(p)을 갖는 분석적 표현식으로부터 획득될 수 있다. 필터 계수는 p 값을 참조하여 LUT로부터 획득될 수도 있다.
본 개시내용의 실시예에 따르면, p의 비트는 0으로 설정된다.
본 개시내용의 실시예에 따르면, p는 1씩 증분되고 그 후에 증분된 p의 하위 비트는 상기 p가 필터 계수를 획득하는 데 사용되기 전에 0으로 설정된다.
본 개시내용의 실시예에 따르면, 필터 계수를 획득하는 단계는,
Figure pct00037
에 따라 필터 계수를 계산하는 단계를 포함한다.
이것은 이전 필터 계수 ci로부터 필터 계수 ci+1를 계산하는 장점을 제공할 수 있다. 이것은 필터 계수를 계산하는 시간을 더 줄일 수 있다.
제안된 발명은 필터 계수를 도출하기 위한 두 개의 접근 방식: LUT 가져 오기 및 제안된 수학식에 따른 직접 계산을 가능하게 한다.
보간 필터의 특징 중 하나는 분수 샘플 위치(p)에 대한 위상 시프트의 선형 종속성으로 이루어진다. 본 발명의 실시예는 이러한 종속성을 활용하여 분수 샘플 위치(p)를 통한 간단한 연산을 사용하여 필터 계수의 값을 취득한다.
선형 종속성은 평활화 보간 필터 계수(fG)를 도출하는 데 사용된다. 선명화 보간 필터 계수(fC)의 도출은 p에 기초한 선형 표현식의 절대 값을 취하는 것에 기초한다.
본 개시내용의 실시예에 따르면, 비디오 코딩의 방법 - 방법은 비디오 프레임의 블록의 인트라 예측 처리 단계를 포함함 - 은 서브픽셀 4-탭 보간 필터를 사용하여, 비디오 프레임의 참조 샘플을 필터링하는 단계를 포함하며, 서브픽셀 4-탭 보간 필터는 필터의 조합이고, 필터 중 적어도 하나의 필터의 필터 계수는 다음을 만족하며,
Figure pct00038
여기서 p는 서브픽셀 오프셋의 분수 샘플 위치이고, c0, c1, c2 및 c3은 필터 계수이다.
도 24는 비디오 코딩의 흐름도를 도시한다. 단계(2410)에서, 인트라 예측 처리 단계는 서브픽셀 4-탭 보간 필터를 사용하여, 블록의 참조 샘플을 필터링함으로써 수행된다.
본 개시내용의 실시예에 따르면, 서브픽셀 4-탭 보간 필터는 2 개의 위상 종속 선형 필터와 저역 통과 필터의 병렬 조합인 평활화 필터이다.
본 개시내용의 실시예에 따르면, 서브픽셀 4-탭 보간 필터는 하나의 위상 종속 선형 필터와 강도 가변 고역 통과 필터의 병렬 조합인 선명화 필터이다.
본 개시내용의 실시예에 따르면, 강도 가변 고역 통과 필터는 위상 독립 고역 통과 유한 임펄스 응답(FIR) 필터이고, 그 출력에는 위상 종속 강도 파라미터가 곱해진다.
본 개시내용의 이전 실시예 중 어느 하나에 따르면, p의 하위 비트는 0으로 설정된다.
본 개시내용의 실시예에 따르면, p는 1씩 증분되고 그 후에 증분된 값의 하위 비트는 이 값이 보간 필터 계수를 도출하는 데 사용되기 전에 0으로 설정된다.
본 개시내용의 실시예에 따르면, 강도 가변 고역 통과 필터의 출력에 대해 클립핑 동작이 수행된다.
본 발명의 실시예는 필터 계수를 두 개 이상의 FIR(finite impulse response) 필터의 조합으로서 표현한다. 이러한 조합은 다음과 같은 옵션을 포함할 수 있다:
- 순차적 조합, 즉, 계수의 컨볼루션;
- 병렬적 조합, 즉, 계수의 가중 합.
이러한 필터 각각은 분수 샘플 위치(p)의 함수인 위상 파라미터(P)에 종속적이거나 종속적이지 않을 수 있다. 조합에 속하는 필터의 계수는 위상 파라미터(P)로부터 간단하게 표현된다.
일 실시예에서, 도 9에서, 참조 샘플의 세트가 보간 필터에 입력된다.
일 실시예에서, 평활화 보간 필터의 경우, 위상 파라미터(P)의 값은 분수 샘플 위치(p)의 값과 동일하다. 도 9에서, 블록(F1 및 F2)은 선형 보간 필터를 나타낸다. 이러한 필터 각각에 대한 계수는 위상 파라미터(P)로부터 다음과 같이 표현된다:
Figure pct00039
,
Figure pct00040
예에서, 여기서 추가로, 나눗셈 연산은 반올림을 사용하거나 사용하지 않고 정의될 수 있다, 즉:
Figure pct00041
,
또는
Figure pct00042
,
여기서 "a"는 나눗셈 지정자이고 "n"은 분모의 거듭 제곱 파라미터이다.
블록(F3)은 다음과 같은 상수 계수를 갖는 2-탭 저역 통과 필터를 나타낸다.
Figure pct00043
,
Figure pct00044
.
예에서, 필터(F1 ... F3)는 정규화되지 않으며, F3은 F1보다 DC 이득이 더 높고 F3은 F2보다 DC 이득이 더 높다.
필터(F1 ... F3)의 출력은 합산되고 정규화된다. 정규화(">>" 블록)는 위에서 설명한 바와 같이 오른쪽 시프트에 의해 또는 반올림을 한 나눗셈에 의해 수행될 수 있다.
이러한 조합에 대한 결과적인 수학식(등가 4-탭 필터)은 다음과 같이 표현된다:
Figure pct00045
이러한 실시예는 LUT 기반 구현을 가능하게 한다. 이러한 구현에 따르면, 계수 값은 또한 LUT를 사용하여 정의될 수도 있다. 이러한 LUT에 저장된 값은 표 4를 사용하여 정의된다(두 경우 모두, 반올림을 사용 및 사용하지 않는다).
Figure pct00046
표 4로부터 계수는 [0, 31] 범위 내에 있다는 것을 알 수 있다. 이러한 사실은 사용되는 그리고 적어도 중간 관점에서는 가장 빈번하게 사용될 8 비트 및 10 비트 픽처에 대해 16 비트 곱셈기를 사용할 가능성을 구성하는 본 발명의 기술적 장점을 설명한다. 본 발명의 전형적인 구현은 4 개의 병렬 곱셈 연산을 포함하며, 여기서 곱셈의 피연산자는 필터 계수에 대해 최대 6, 샘플에 대해 10의 비트 깊이를 갖는다. 곱셈의 결과는 16 비트 값을 초과하지 않을 것이고, 그래서 제안된 계수가 구현 관점에서 사용하기 편해질 것이다.인터 예측 모드에서, 블록 움직임 보상이 수행된다. 움직임 보상은 인트라 보간 필터링과 유사한 보간 필터링의 단계를 포함할 수 있다. 본 발명의 또 다른 유익한 특성은 보간 필터의 계수가 인트라 및 인터 예측 모드 둘 모두에 대해 동일한 정밀도를 갖는다는 것(즉, 계수 값의 비트 깊이가 동일하다는 것)이다. 인트라 예측의 경우에 보간 필터 계수의 정밀도가 높으면, 이것은 비디오 코덱의 계산 복잡도에 악영향을 미칠 수 있다. 그 이유는 인트라 예측은 이전 블록의 복원된 샘플을 필요로 하기에 본질적으로 순차적이기 때문이다. 그에 반해, 인터 예측은 병렬로 수행될 수 있다. 따라서, 인터 예측보다 인트라 예측에 대한 보간의 정밀도가 더 높으면, 인트라 예측 파이프 라인과 인터 예측 파이프 라인 간의 구현 불균형이 심화될 수 있다. 정밀도의 이러한 정렬은 그와 같은 부정적인 결과를 회피할 수 있게 한다.
제안된 발명의 또 다른 장점은 계수의 다양성을 줄이는 데 있다. 표 4의 이웃 행의 쌍이 동일하다는 것을 고려하면, 본 발명의 실제 구현은 32 개의 행 대신에 단지 16 개의 행("반올림 없음"의 사례에서 p의 짝수 값에 대응하는 행 및 "반올림 있음"의 사례에서 대응하는 p의 홀수 값에 대응하는 행)을 갖는 LUT로부터 가져올 것이다.
본 발명의 기술적 효과는 적어도 다음과 같은 유형의 구현을 가능하게 한다는 것이다:
- p의 값을 사용하여 필터 계수를 계산하는 LUT가 없는 구현, 여기서 계산은 위에서 설명한 분석적 수학식에 기초함; 및
- p 값에 기초한 인덱스 값을 사용하여 LUT로부터 필터 계수를 가져 오는 LUT 기반 구현.
계수의 값을 계산할 때 p 값의 정밀도는 감소된다. 특히, 계수의 값은 정수를 2로 나눈 결과, 즉, 1씩 오른쪽 시프트로 구현할 수 있는
Figure pct00047
에 기초하여 도출되며, 이것은 하드웨어에서 간단히 구현될 수 있다. LUT 기반 구현의 경우, 이러한 정밀도 감소는 LUT를 저장하는 데 필요한 메모리의 감소를 가져온다. 하드웨어에서, 이것은 또한 LUT의 어드레스 버스의 배선 수를 감소시킬 것이다.
본 개시내용의 실시예에 따르면, 비디오 프레임의 인트라 또는 인터 예측 처리를 위한 장치가 제공되며, 장치는, 참조 샘플을 획득하도록 구성된 참조 샘플 획득 유닛과, 서브픽셀 오프셋의 값을 획득하도록 구성된 서브픽셀 오프셋 값 획득 유닛과, 참조 샘플을 필터링하여 예측된 샘플 값을 획득하도록 구성된 서브픽셀 4-탭 보간 필터를 포함하고, 서브픽셀 4-탭 보간 필터의 필터 계수는 다음을 만족하고,
Figure pct00048
여기서 p는 서브픽셀 오프셋의 값의 분수 부분이고, c0, c1, c2 및 c3은 서브픽셀 4-탭 보간 필터의 필터 계수이다.
본 개시내용의 실시예에 따르면, 서브픽셀 4-탭 보간 필터의 필터 계수는 다음과 같이 테이블에 정의된다.
Figure pct00049
본 개시내용의 실시예에 따르면, 비디오 프레임의 인트라 또는 인터 예측 처리를 위한 장치가 제공되며, 장치는, 참조 샘플을 획득하도록 구성된 참조 샘플 획득 유닛과, 서브픽셀 오프셋의 값을 획득하도록 구성된 서브픽셀 오프셋 값 획득 유닛과, 참조 샘플을 필터링하여 예측된 샘플 값을 획득하도록 구성된 서브픽셀 4-탭 보간 필터를 포함하고, 서브픽셀 4-탭 보간 필터의 필터 계수는 다음과 같이 정의되고,
Figure pct00050
여기서 p는 서브픽셀 오프셋의 값의 분수 부분이고, c0, c1, c2 및 c3 필터 계수이다.도 25는 참조 샘플 획득 유닛(2510), 서브픽셀 오프셋 값 획득 유닛(2520) 및 서브픽셀 보간 필터(2530)를 포함하는 인트라/인터 처리 모듈(2500)의 개략도를 도시한다.
본 개시내용의 실시예에 따르면, 비디오 코딩을 위한 장치가 제공되며, 장치는, 비디오 프레임의 블록을 인트라 예측하도록 구성된 인트라 예측 처리 유닛과, 비디오 프레임의 참조 샘플을 필터링하도록 구성된 서브픽셀 4-탭 보간 필터를 포함하고; 서브픽셀 4-탭 보간 필터는 필터의 조합이고, 필터 중 적어도 하나의 필터 계수는 다음을 만족하고,
Figure pct00051
여기서 p는 서브픽셀 오프셋의 분수 샘플 위치이고, c0, c1, c2 및 c3은 필터 계수이다.
도 26은 인트라 예측 처리 유닛(2610) 및 서브픽셀 보간 필터(2620)를 포함하는 비디오 코딩 모듈(2600)의 개략도를 도시한다.
본 개시내용의 실시예에 따르면, 본 개시내용의 이전 실시예 중 어느 하나에 따른 방법을 수행하기 위한 처리 회로를 포함하는 인코더(20)가 제공된다.
본 개시내용의 실시예에 따르면, 본 개시내용의 이전 실시예 중 어느 하나에 따른 방법을 수행하기 위한 처리 회로를 포함하는 디코더(30)가 제공된다.
본 개시내용의 실시예에 따르면, 본 개시내용의 이전 실시예 중 어느 하나에 따른 방법을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품이 제공된다.
본 개시내용의 실시예에 따르면, 하나 이상의 프로세서와, 프로세서에 결합되고 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체를 포함하는 디코더가 제공되며, 프로그래밍은 프로세서에 의해 실행될 때, 디코더가 본 개시내용의 이전 실시예 중 어느 하나에 따른 방법을 수행하도록 구성한다.
본 개시내용의 실시예에 따르면, 하나 이상의 프로세서와, 프로세서에 결합되고 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체를 포함하는 인코더가 제공되며, 프로그래밍은 프로세서에 의해 실행될 때, 인코더가 본 개시내용의 이전 실시예 중 어느 하나에 따른 방법을 수행하도록 구성한다.
임의의 이전 실시예에 따른 본 개시내용은 비디오 프레임의 인트라/인터 예측을 빠른 방식으로 수행하는 장점을 제공할 수 있다. 이것은 보간 필터의 필터 계수가 분석적 방식으로 획득되기 때문이다, 즉, 상기 계수는 즉석에서 계산된다. 이것은 메모리로부터 계수를 판독하는 액세스 시간을 필요로 하는, 룩업 테이블(LUT)에 계수를 저장하는 것을 회피할 수 있다.
따라서, 예측이 더 효율적이 되고 필요한 메모리에 대한 요구를 덜 필요로 한다. 이것은 또한 예측의 저비용 구현을 가능하게 한다. 더욱이, 분석적 필터 계수 {c i }는 분수 샘플 위치(p)에서 선형적이고 2로 나눗셈하는 연산을 포함하기 때문에, 각자의 연산은 빠른 로우 레벨 비트 연산을 사용함으로써 효율적으로 수행될 수 있다. 비트 연산을 수행하고 필터 계수를 계산하는 각자의 시간은 LUT로부터 저장된 계수에 액세스하는 시간보다 짧다. 따라서 대기 시간이 줄어든다.
더욱이, 필터 계수의 특정한 분석적 구조는 필터 유닛(들)의 낮은 복잡도 구현이라는 장점을 제공할 수 있다. 위에서 상이한 서브픽셀 위치에 대한 필터 응답(즉, 주파수 응답)은 크기 및 위상과 관련하여 일관적이며 특히 고주파수에서 응답 시 아티팩트를 방지한다. 필터 계수의 선형성은 하드웨어를 재사용하는 장점을 제공할 수 있다.
일 실시예에서, 선명화 보간 필터의 경우, 강도 파라미터(S)는 다음과 같이 정의된다:
Figure pct00052
이러한 강도 파라미터(S)는 하프-펠 위치(p=16)에서 최대 값을 갖도록 정의된다. 서브픽셀 위치가 정수 1에 가까운 경우, 강도 파라미터(S)는 더 낮은 값을 갖는다. 필터의 예시적인 조합이 도 10에 도시된다. 이 도면에서 블록(F1)은 다음과 같이 정의된 계수를 갖는 선형 필터를 나타낸다:
Figure pct00053
,
Figure pct00054
.
블록(F2)은 다음과 같은 계수를 갖는 고역 통과 필터를 나타낸다:
Figure pct00055
블록(F2)의 출력은 강도 파라미터(S)와 곱해진다. 곱셈의 결과는 선형 필터(F1)의 출력과 추가로 합산되고 결과의 합계는 정규화된다.
이러한 조합에 대한 결과 수학식(등가 4-탭 필터)은 다음과 같이 표현된다:
Figure pct00056
이러한 수학식의 경우, LUT 기반 구현이 또한 가능하다. 표 5는 계수의 값을 제공한다.
Figure pct00057
필터(F2)는 음의 계수를 가지므로, 정규화된 결과는 SPS에서 시그널링되거나 또는 샘플의 비트 깊이로부터 도출될 수 있는 허용된 값의 범위에 맞게 추가로 클립핑된다.대안적인 실시예는 클립핑 동작의 대안적인 위치를 명시하는 것이다(도 11 참조). 이러한 대안적인 설계는 선형 필터(F1)가 그의 임의의 입력 값보다 낮거나 높은 출력 값을 가질 수 없다는 것에 기초한다.
일 실시예에서, 클립핑 블록은 다음과 같은 단계를 사용하여 동작한다.
단계 1은 최소 임계치 설정 또는 최대 임계치 설정을 수행할지를 결정하는 것이다.
단계 2는 단계 1의 결과에 따라 다르다. 구체적으로, 최소 또는 최대 임계치 설정이 수행된다.
클립핑 블록으로의 입력이 음수인 경우 최소 임계치 설정이 적용된다. 그렇지 않으면, 최대 임계치 설정이 적용된다. 단계 2(및 클립핑 블록)의 출력
Figure pct00058
는 다음과 같이 정의될 수 있다:
Figure pct00059
입력 값
Figure pct00060
의 경우, 최소 임계치 설정의 출력
Figure pct00061
은 다음과 같이 계산된다:
Figure pct00062
최대 임계치 설정의 출력은 다음과 같이 계산된다:
Figure pct00063
여기서
Figure pct00064
는 샘플의 허용된 값의 범위의 최대 값이다.
Figure pct00065
Figure pct00066
의 값은 선형 필터(F1)의 입력인 도 11에 도시된 입력 참조 샘플이다.
일 실시예에서, 곱셈 연산 후에 클립핑이 수행되는 경우,
Figure pct00067
는 다음과 같이 계산된다:
Figure pct00068
일부 실시예에서, 도 9의 필터(F3), 도 10 및 도 11의 필터(F2)는 위상 파라미터(P)에 따라 종속적이지 않을 수 있다. 이러한 실시예는 이러한 필터의 출력이 예측된 샘플의 각 입력 행에 대해 동일할 수 있으므로 구현을 단순화할 수 있고, 따라서 이 단계는 보간 프로세스를 시작하기 전에, 예를 들어, 참조 샘플 필터링 프로세스의 단계에서 수행될 수 있다. 이러한 접근 방식은 병렬 처리를 증가시키고 이에 따라 방향성 필터링의 지연 시간을 감소시킨다.
다른 대안적인 실시예(도 12 참조)는 단지 필터 출력의 승수가 아니라 조절 가능한 강도의 필터를 사용한다. 도 12a는 클립핑이 고역 통과 필터(F2)의 출력에 대해 수행되는 경우를 도시한다. 도 12b는 클립핑이 F1과 F2의 조합의 정규화된 출력의 출력에 대해 수행되는 경우를 도시한다. 강도를 조절할 수 있는 필터의 예는 양방향 필터, 역변환 필터 등이다.
다른 실시예는 p의 감소된 해상도를 사용하는데, 즉, 32 개 엔트리 중 16 개만 사용된다. 이것은 예를 들어, p의 최하위 비트를 0으로 설정함으로써 달성된다.
도 13 내지 도 21에 도시된 바와 같이, 보간 필터 계수의 LUT 기반 및 분석적 표현의 상이한 조합이 인트라 및 인터 예측 둘 모두에 대해 가능하다. 예를 들어, 도 14는 인트라 예측 사례에서 사용되는 평활화 보간 필터를 위한 계수가 계산되는 반면, 인트라 및 인터 예측 둘 모두에 대한 다른 보간 필터를 위한 계수는 LUT에 저장되는 사용 사례를 예시한다. 또한, 비디오 코딩 사양은 보간 필터 계수의 LUT 기반 및 분석적 표현을 둘 모두 포함하여 상이한 구현을 가능하게 한다. 두 표현이 모두 서술된다면, LUT 기반 및 분석적 표현은 동일한 계수를 제공해야 한다.
도 22는 도 1에 도시된 계수 계산 방법의 구현을 나타낸다.
다음의 수학식에서,
Figure pct00069
강도 파라미터(S)는 다음과 같이 정의된다:
Figure pct00070
이러한 구현은 강도 파라미터(S)(도 22에서 "q"의 결과 값으로 표시됨)를 도출하는 상이한 방법에 대응한다. 분수 샘플 위치(p)의 값은 (인덱싱이 0부터 시작한다면 4의 인덱스를 갖는) p의 5 번째 최하위 비트 값으로 설정된, 입력 1 비트 신호(SEL)에 의해 제어되는 디멀티플렉서(DEMUX)로 포워딩된다. 이 비트가 "1"이면, SEL 신호는 p의 값이 16보다 크고 다음과 같은 값이 계산되어야야 한다는 것을 나타낸다:
Figure pct00071
여기서 "not" 및 "xor"는 각자 비트 단위 NOT 및 XOR 연산이다. 이러한 표현식은
Figure pct00072
와 같으며 C/C++ 프로그래밍 언어로 다음과 같이 작성될 수 있다.
Figure pct00073
.
그렇지 않다면(즉, 디멀티플렉서(DEMUX)의 입력 신호(SEL)이 "0"이면), 모든 계산은 바이패스되고 신호(p)는 신호(q)처럼 멀티플렉서(MUX)로 포워딩된다. 멀티플렉서(MUX)의 출력 신호(r)은 다음과 같이 t의 값을 계산하는 모듈로 전달되고,
Figure pct00074
여기서 "<<" 및 ">>"는 각각 왼쪽 및 오른쪽 시프트 연산이다.
사실, t의 이러한 값은 강도 파라미터(S)이다. 도 22에 도시된 단계를 선형 필터의 계수 중 하나와 병렬로 수행함으로써 추가 최적화가 가능하다:
Figure pct00075
z와 S의 값이 둘 모두 계산되자 마자, 이들 값은 서로 더해져서
Figure pct00076
를 획득할 수 있다.
본 발명의 실시예가 주로 비디오 코딩에 기초하여 설명되었지만, 코딩 시스템(10), 인코더(20) 및 디코더(30) (및 대응적으로 시스템(10))의 실시예 및 본 명세서에 설명된 다른 실시예는 또한 스틸 픽처 처리 또는 코딩, 즉, 비디오 코딩에서와 같이 임의의 선행하는 또는 연속하는 픽처와 독립적인 개별 픽처의 처리 또는 코딩을 위해 구성될 수 있다는 것을 유의해야 한다. 일반적으로, 픽처 처리 코딩이 단일 픽처(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)를 참조하여 본 명세서에 설명된 기능은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현된다면, 기능은 컴퓨터 판독 가능 매체에 저장되거나 또는 통신 매체를 통해 하나 이상의 명령어 또는 코드로 송신되고 하드웨어 기반 처리 디바이스에 의해 실행될 수 있다. 컴퓨터 판독 가능 매체는 데이터 저장 매체와 같은 유형 매체에 대응하는 컴퓨터 판독 가능 저장 매체 또는 예를 들어 통신 프로토콜에 따라 한 장소에서 다른 장소로 컴퓨터 프로그램의 이전을 용이하게 하는 임의의 매체를 포함하는 통신 매체를 포함할 수 있다. 이러한 방식으로, 컴퓨터 판독 가능 매체는 일반적으로 (1) 비일시적인 유형의 컴퓨터 판독 가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 개시내용에 설명된 기술의 구현을 위한 명령어, 코드 및/또는 데이터 구조를 검색하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 매체를 포함할 수 있다.
제한이 아닌 예로서, 이러한 컴퓨터 판독 가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장소, 자기 디스크 저장소, 또는 다른 자기 저장소 디바이스, 플래시 메모리, 또는 원하는 프로그램 코드를 명령어 또는 데이터 구조의 형태로 저장하는 데 사용할 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한 임의의 연결은 적절하게 컴퓨터 판독 가능 매체라고 명명된다. 예를 들어, 명령어가 동축 케이블, 광섬유 케이블, 트위스트 페어, 디지털 가입자 회선(digital subscriber line)(DSL) 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술을 사용하여 웹 사이트, 서버 또는 다른 원격 소스로부터 송신된다면, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독 가능 저장 매체 및 데이터 저장 매체는 연결, 반송파, 신호 또는 다른 일시적인 매체를 포함하지 않고, 그 대신 비일시적인 유형의 저장 매체를 대상으로 한다는 것을 이해해야 한다. 본 명세서에 사용되는 바와 같은 디스크(disk) 및 디스크(disc)는 콤팩트 디스크(compact disc)(CD)), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크(Digital Versatile Disc)(DVD), 플로피 디스크 및 블루레이(Blu-ray) 디스크를 포함하며, 이경우 디스크(disk)는 보통 데이터를 자기적으로 재생하는 반면, 디스크(disc)는 데이터를 광학적으로 레이저로 재생한다. 위의 조합은 또한 컴퓨터 판독 가능 매체의 범위 내에 포함되어야 한다.
명령어는 하나 이상의 디지털 신호 프로세서(digital signal processor)(DSP), 범용 마이크로프로세서, 주문형 집적 회로(application specific integrated circuit)(ASIC), 필드 프로그램 가능 로직 어레이(field programmable logic array)(FPGA) 또는 다른 동등한 통합된 또는 이산적 로직 회로와 같은 하나 이상의 프로세서에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용되는 바와 같은 "프로세서"라는 용어는 임의의 전술한 구조 또는 본 명세서에 설명된 기술의 구현에 적합한 임의의 다른 구조를 지칭할 수 있다. 또한, 일부 양태에서, 본 명세서에 설명된 기능성은 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈 내에 제공되거나 또는 결합된 코덱에 통합될 수 있다. 또한, 기술은 하나 이상의 회로 또는 로직 요소에서 완전히 구현될 수 있다.
본 개시내용의 기술은 무선 핸드셋, 집적 회로(integrated circuit)(IC) 또는 IC의 세트(예를 들어, 칩 세트)를 포함하는 매우 다양한 디바이스 또는 장치에서 구현될 수 있다. 다양한 컴포넌트, 모듈 또는 유닛이 개시된 기술을 수행하도록 구성된 디바이스의 기능적 양태를 강조하기 위해 본 개시내용에서 설명되지만, 반드시 상이한 하드웨어 유닛에 의한 실현을 필요로 하는 것은 아니다. 오히려, 위에서 설명한 바와 같이, 다양한 유닛은 코덱 하드웨어 유닛으로 결합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께 위에서 설명된 하나 이상의 프로세서를 포함하는 상호 작동적 하드웨어 유닛의 집합에 의해 제공될 수 있다.
요약하면, 본 개시내용은 비디오 인코딩 및 디코딩을 위한 인트라 또는 인터 예측에 관한 것이다. 이를 위해, 장치 및 방법은 참조 샘플 및 서브픽셀 오프셋 값을 획득한다. 서브픽셀 4-탭 보간 필터는 예측된 샘플 값을 획득하기 위해 참조 샘플을 필터링하는 데 사용된다. 서브픽셀 4-탭 보간 필터의 필터 계수는
Figure pct00077
,
Figure pct00078
,
Figure pct00079
Figure pct00080
와 같은 서브픽셀 오프셋의 값에 따라 정의되며, p는 서브픽셀 오프셋의 값의 분수 부분이다.
추가 실시예는 다음과 같은 조항에서 요약된다.
조항 1: 비디오 코딩 기술의 인트라 또는 인터 예측 프로세스를 위한 방법으로서,
참조 샘플(즉, 적어도 하나의 참조 샘플, 예에서, 참조 샘플의 수량은 4 개일 수 있음)을 획득하는 단계와,
서브픽셀 오프셋의 값을 획득하는 단계와,
서브픽셀 보간 필터를 사용하여, 참조 샘플을 필터링하여 예측된 샘플 값을 획득하는 단계를 포함하며, 서브픽셀 보간 필터의 필터 계수는 서브픽셀 오프셋의 값에 따라 획득된다.
조항 2: 조항 1의 방법에서, 서브픽셀 보간 필터의 필터 계수는 서브픽셀 오프셋의 값의 분수 부분에 따라 획득된다.
조항 3: 조항 1 또는 조항 2의 방법에서, 서브픽셀 보간 필터는 등가 4-탭 필터이다.
조항 4: 조항 3의 방법에서, 서브픽셀 보간 필터의 필터 계수는 다음에 따라 획득되며,
Figure pct00081
여기서 p는 서브픽셀 오프셋의 값의 일부이다.
조항 5: 조항 3의 방법에서, 서브픽셀 보간 필터의 필터 계수는 다음에 따라 획득되며,
Figure pct00082
여기서 강도 파라미터(S)는 다음과 같이 정의되고,
Figure pct00083
여기서 p는 서브픽셀 오프셋의 값의 분수 부분이다.
조항 6: 조항 1 내지 조항 5 중 어느 한 조항에서, 서브픽셀 오프셋(p)의 비트(예를 들어, 최하위 비트 또는 하위 비트)는 0으로 설정된다.
조항 7: 조항 1 내지 조항 5 중 어느 한 조항의 방법에서, 서브픽셀 오프셋(p)의 값은 1씩 증가하고 이후에 증분된 값의 하위 비트는 이 값이 필터 계수를 도출하는 데 사용되기 전에 0으로 설정된다.
조항 8: 비디오 코딩의 방법 - 방법은 블록의 인트라 예측 처리 단계를 포함함 - 으로서,
참조 샘플에 적용되는 서브픽셀 보간 필터링 단계를 포함하며,
서브픽셀 보간 필터는 필터의 조합이고, 필터 중 적어도 하나는 서브픽셀 오프셋에 따라 결정된다.
조항 9: 조항 8의 방법에서, 보간 필터는 두 개의 위상 종속 선형 필터와 저역 통과 필터의 병렬 조합인 평활화 필터이다.
조항 10: 조항 8의 방법에서, 보간 필터는 하나의 위상 종속 선형 필터와 강도 가변 고역 통과 필터의 병렬 조합인 선명화 필터이다.
조항 11: 조항 10의 방법에서, 강도 가변 고역 통과 필터는 위상 독립 고역 통과 FIR 필터이고, 그 출력에는 위상 종속 강도 파라미터가 곱해진다.
조항 12: 조항 9의 방법에서, 필터의 조합은 다음의 수학식에 따라 명시된 계수를 갖는 등가 4-탭 필터이며,
Figure pct00084
p는 분수 샘플 위치(p)이다.
조항 13: 조항 11의 방법에서, 필터의 조합은 다음의 수학식에 따라 명시된 계수를 갖는 등가 4-탭 필터이며:
Figure pct00085
강도 파라미터(S)는 다음과 같이 정의된다:
Figure pct00086
조항 14: 조항 1 내지 조항 13 중 어느 한 조항의 방법에서, 분수 샘플 위치(p)의 하위 비트는 0으로 설정된다.
조항 15: 조항 8 내지 조항 13 중 어느 한 조항의 방법에서, 분수 샘플 위치(p)는 1씩 증분되고 이후에 증분된 값의 하위 비트는 이 값이 보간 필터 계수를 도출하는 데 사용되기 전에 0으로 설정된다.
조항 16: 조항 10 또는 조항 11의 방법에서, 강도 가변 고역 통과 필터의 출력에 대해 클립핑 동작이 수행된다.
조항 17: 인코더(20)는 조항 1 내지 조항 16 중 어느 한 조항에 따른 방법을 수행하기 위한 처리 회로를 포함한다.
조항 18: 디코더(30)는 조항 1 내지 조항 16 중 어느 한 조항에 따른 방법을 수행하기 위한 처리 회로를 포함한다.
조항 19: 컴퓨터 프로그램 제품은 조항 1 내지 16 중 어느 한 조항에 따른 방법을 수행하기 위한 프로그램 코드를 포함한다.
조항 20: 디코더로서,
하나 이상의 프로세서와,
프로세서에 결합되고 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체를 포함하며, 프로그래밍은 프로세서에 의해 실행될 때, 디코더가 조항 1 내지 조항 16 중 어느 한 조항에 따른 방법을 수행하도록 구성한다.
조항 21: 인코더로서,
하나 이상의 프로세서와,
프로세서에 결합되고 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체를 포함하며, 프로그래밍은 프로세서에 의해 실행될 때, 인코더가 조항 1 내지 조항 16 중 어느 한 조항에 따른 방법을 수행하도록 구성한다.
조항 22: 비디오 코딩 기술의 인트라 또는 인터 예측 프로세스를 위한 방법으로서,
참조 샘플(즉, 적어도 하나의 참조 샘플, 예에서, 참조 샘플의 수량은 4 개일 수 있음)을 획득하는 단계와,
분수 샘플 위치를 획득하는 단계와,
서브픽셀 보간 필터를 사용하여, 참조 샘플을 필터링하여 예측된 샘플 값을 획득하는 단계를 포함하며, 서브픽셀 보간 필터의 필터 계수는 다음에 따라 획득되고,
Figure pct00087
여기서 S는 강도 파라미터, p는 분수 샘플 위치, c0, c1, c2 및 c3은 필터 계수이다.
조항 23: 조항 22의 방법에서, 방법은,
분수 샘플 위치(p)의 N 번째 최하위 비트를 취함으로써 SEL 신호의 값을 획득 - N은 양의 정수임 - 하는 단계와,
q의 중간 값을 획득 - q는 SEL 신호가 0 일 때 분수 샘플 위치(p)의 값과 동일하게 설정되고; 또는 q는 SEL 신호가 0이 아닐 때
Figure pct00088
로 설정됨 - 하는 단계와,
하나의 덧셈 연산 및 시프트 연산을 사용하여 강도 파라미터(S),
Figure pct00089
를 획득하는 단계를 포함한다.
조항 24: 조항 23의 방법에서, N은 5와 동일하다.
조항 25: 조항 22 내지 조항 24 중 어느 한 조항의 방법에서, 서브픽셀 보간 필터는 등가 4-탭 필터이다.
조항 26: 조항 22 내지 조항 25 중 어느 한 조항의 방법에서, 강도 파라미터(S)는 선형 필터(z)의 계수와 병렬로 계산되고, 선형 필터(z)의 계수는 서브픽셀 보간의 필터 계수(c1)을 획득하기 위해 사용되며, 여기서
Figure pct00090
조항 27: 조항 22 내지 조항 25 중 어느 한 조항의 방법에서, 분수 샘플 위치(p)의 비트(예를 들어, 최하위 비트 또는 하위 비트)는 0으로 설정된다.
조항 28: 조항 22 내지 조항 26 중 어느 한 조항의 방법에서, 분수 샘플 위치(p)는 1씩 증가되며 이후에 증분된 값의 하위 비트는 이 값이 필터 계수를 도출하는 데 사용되기 전에 0으로 설정된다.
조항 29: 비디오 코딩의 방법 - 방법은 블록의 인트라 예측 처리 단계를 포함함 - 으로서,
참조 샘플에 적용되는 서브픽셀 보간 필터링 단계를 포함하며,
서브픽셀 보간 필터는 필터의 조합이고, 필터 중 적어도 하나는 분수 샘플 위치에 따라 결정된다.
조항 29: 조항 28의 방법에서, 보간 필터는 2 개의 위상 종속 선형 필터와 저역 통과 필터의 병렬 조합인 평활화 필터이다.
조항 30: 조항 29의 방법에서, 보간 필터는 하나의 위상 종속 선형 필터와 강도 가변 고역 통과 필터의 병렬 조합인 선명화 필터이다.
조항 31: 조항 30의 방법에서, 강도 가변 고역 통과 필터는 위상 독립 고역 통과 FIR 필터이고, 그 출력에는 위상 종속 강도 파라미터가 곱해진다.
조항 32: 인코더(20)는 조항 22 내지 조항 31 중 어느 한 조항에 따른 방법을 수행하기 위한 처리 회로를 포함한다.
조항 33: 디코더(20)는 조항 22 내지 조항 31 중 어느 한 조항에 따른 방법을 수행하기 위한 처리 회로를 포함한다.
조항 34: 컴퓨터 프로그램 제품은 조항 22 내지 조항 31 중 어느 한 조항에 따른 방법을 수행하기 위한 프로그램 코드를 포함한다.
조항 35: 디코더로서,
하나 이상의 프로세서와,
프로세서에 결합되고 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체를 포함하며, 프로그래밍은 프로세서에 의해 실행될 때, 디코더가 조항 22 내지 조항 31 중 어느 한 조항에 따른 방법을 수행하도록 구성한다.
조항 36: 인코더로서,
하나 이상의 프로세서와,
프로세서에 결합되고 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체를 포함하며, 프로그래밍은 프로세서에 의해 실행될 때, 인코더가 조항 22 내지 조항 31 중 어느 한 조항에 따른 방법을 수행하도록 구성한다.
참조 기호 리스트
도 1a
10 비디오 코딩 시스템
12 소스 디바이스
13 통신 채널
14 목적지 디바이스
16 픽처 소스
17 픽처 데이터
18 프리-프로세서
19 전처리된 픽처 데이터
20 비디오 인코더
21 인코딩된 픽처 데이터
22 통신 인터페이스
28 통신 인터페이스
30 비디오 디코더
31 디코딩된 픽처 데이터
32 포스트-프로세서
33 후처리된 픽처 데이터
34 디스플레이 디바이스
도 1b
40 비디오 코딩 시스템
41 이미징 디바이스(들)
42 안테나
43 프로세서(들)
44 메모리 저장소(들)
45 디스플레이 디바이스
46 처리 회로
20 비디오 인코더
30 비디오 디코더
도 2
17 픽처(데이터)
19 전처리된 픽처(데이터)
20 인코더
21 인코딩된 픽처 데이터
201 입력(인터페이스)
204 잔차 계산 [유닛 또는 단계]
206 변환 처리 유닛
208 양자화 유닛
210 역양자화 유닛
212 역변환 처리 유닛
214 복원 유닛
220 루프 필터 유닛
230 디코딩된 픽처 버퍼(DPB)
260 모드 선택 유닛
270 엔트로피 인코딩 유닛
272 출력(인터페이스)
244 인터 예측 유닛
254 인트라 예측 유닛
262 파티셔닝 유닛
203 픽처 블록
205 잔차 블록
213 복원된 잔차 블록
215 복원된 블록
221 필터링된 블록
231 디코딩된 픽처
265 예측 블록
266 신택스 요소
207 변환 계수
209 양자화된 계수
211 역양자화 계수
도 3
21 인코딩된 픽처 데이터
30 비디오 디코더
304 엔트로피 디코딩 유닛
309 양자화된 계수
310 역양자화 유닛
311 역양자화 계수
312 역변환 처리 유닛
313 복원된 잔차 블록
314 복원 유닛
315 복원된 블록
320 루프 필터
321 필터링된 블록
330 디코딩된 픽처 버퍼(DBP)
331 디코딩된 픽처
360 모드 애플리케이션 유닛
365 예측 블록
366 신택스 요소
344 인터 예측 유닛
354 인트라 예측 유닛
도 4
400 비디오 코딩 디바이스
410 입구 포트/입력 포트
420 수신기 유닛(Rx)
430 프로세서
440 송신기 유닛(Tx)
450 출구 포트/출력 포트
460 메모리
470 코딩 모듈
도 5
500 소스 디바이스 또는 목적지 디바이스
502 프로세서
504 메모리
506 코드 및 데이터
508 운영 체제
510 애플리케이션
512 버스
518 디스플레이
도 23
2300 인트라/인터 예측 처리 방법의 흐름도
도 24
2400 비디오 코딩 방법의 흐름도
도 25
2500 인트라/인터 처리 모듈
2510 참조 샘플 획득 유닛
2520 서브픽셀 오프셋 값 획득 유닛
2530 서브픽셀 보간 필터
도 26
2600 비디오 코딩 모듈
2610 인트라 예측 처리 유닛
2620 서브픽셀 보간 필터

Claims (22)

  1. 비디오 프레임의 인트라 또는 인터 예측 처리를 위한 방법으로서,
    참조 샘플을 획득하는 단계와,
    서브픽셀 오프셋의 값을 획득하는 단계와,
    서브픽셀 4-탭 보간 필터를 사용하여, 상기 참조 샘플을 필터링하여 예측된 샘플 값을 획득하는 단계를 포함하며,
    상기 서브픽셀 4-탭 보간 필터의 필터 계수는 다음을 만족하고,
    Figure pct00091

    여기서 p는 상기 서브픽셀 오프셋의 값의 분수 부분이고, c0, c1, c2 및 c3은 상기 서브픽셀 4-탭 보간 필터의 필터 계수인,
    비디오 프레임의 인트라 또는 인터 예측 처리를 위한 방법.
  2. 제 1 항에 있어서,
    상기 서브픽셀 4-탭 보간 필터의 상기 필터 계수는 다음과 같이 테이블에 정의되는,
    Figure pct00092

    비디오 프레임의 인트라 또는 인터 예측 처리를 위한 방법.
  3. 비디오 프레임의 인트라 또는 인터 예측 처리를 위한 방법으로서,
    참조 샘플을 획득하는 단계와,
    서브픽셀 오프셋의 값을 획득하는 단계와,
    서브픽셀 4-탭 보간 필터를 사용하여, 상기 참조 샘플을 필터링하여 예측된 샘플 값을 획득하는 단계를 포함하고,
    상기 서브픽셀 4-탭 보간 필터의 필터 계수는 다음과 같이 정의되며,
    Figure pct00093

    여기서 p는 상기 서브픽셀 오프셋의 값의 분수 부분이고, c0, c1, c2 및 c3은 상기 필터 계수인,비디오 프레임의 인트라 또는 인터 예측 처리를 위한 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    p의 비트는 0으로 설정되는,
    비디오 프레임의 인트라 또는 인터 예측 처리를 위한 방법.
  5. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    p는 1씩 증분되고 그 후에 상기 증분된 p의 하위 비트는 상기 p가 상기 필터 계수를 획득하기 위해 사용되기 전에 0으로 설정되는,
    비디오 프레임의 인트라 또는 인터 예측 처리를 위한 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 필터 계수를 획득하는 단계는 다음에 따라 상기 필터 계수를 계산하는 단계를 포함하는,
    Figure pct00094

    비디오 프레임의 인트라 또는 인터 예측 처리를 위한 방법.
  7. 비디오 코딩의 방법 - 상기 방법은 비디오 프레임의 블록의 인트라 예측 처리 단계를 포함함 - 으로서,
    서브픽셀 4-탭 보간 필터를 사용하여, 상기 비디오 프레임의 참조 샘플을 필터링하는 단계를 포함하고,
    상기 서브픽셀 4-탭 보간 필터는 필터의 조합이고, 상기 필터 중 적어도 하나의 필터의 필터 계수는 다음을 만족하고,
    Figure pct00095

    여기서 p는 서브픽셀 오프셋의 분수 샘플 위치이고, c0, c1, c2 및 c3은 필터 계수인,
    비디오 코딩 방법.
  8. 제 7 항에 있어서,
    상기 서브픽셀 4-탭 보간 필터는 두 개의 위상 종속 선형 필터와 저역 통과 필터의 병렬 조합인 평활화 필터인,
    비디오 코딩 방법.
  9. 제 7 항에 있어서,
    상기 서브픽셀 4-탭 보간 필터는 하나의 위상 종속 선형 필터와 강도 가변 고역 통과 필터의 병렬 조합인 선명화 필터인,
    비디오 코딩 방법.
  10. 제 9 항에 있어서,
    상기 강도 가변 고역 통과 필터는 위상 독립 고역 통과(phase-independent high-pass finite impulse response) 유한 임펄스 응답(finite impulse response)(FIR) 필터이고, 그 출력에는 위상 종속 강도 파라미터가 곱해지는,
    비디오 코딩 방법.
  11. 제 7 항 내지 제 10 항 중 어느 한 항에 있어서,
    p의 하위 비트는 0으로 설정되는,
    비디오 코딩 방법.
  12. 제 7 항 내지 제 10 항 중 어느 한 항에 있어서,
    p는 1씩 증분되고 그 후에 상기 증분된 값의 하위 비트는 이 값이 보간 필터 계수를 도출하는 데 사용되기 전에 0으로 설정되는,
    비디오 코딩 방법.
  13. 제 9 항 또는 제 10 항에 있어서,
    상기 강도 가변 고역 통과 필터의 출력에 대해 클립핑 동작이 수행되는,
    비디오 코딩 방법.
  14. 비디오 프레임의 인트라 또는 인터 예측 처리를 위한 장치로서,
    참조 샘플을 획득하도록 구성된 참조 샘플 획득 유닛과,
    서브픽셀 오프셋의 값을 획득하도록 구성된 서브픽셀 오프셋 값 획득 유닛과,
    상기 참조 샘플을 필터링하여 예측된 샘플 값을 획득하도록 구성된 서브픽셀 4-탭 보간 필터를 포함하고,
    상기 서브픽셀 4-탭 보간 필터의 필터 계수는 다음을 만족하고,
    Figure pct00096

    여기서 p는 상기 서브픽셀 오프셋의 값의 분수 부분이고, c0, c1, c2 및 c3은 상기 서브픽셀 4-탭 보간 필터의 필터 계수인,
    비디오 프레임의 인트라 또는 인터 예측 처리를 위한 장치.
  15. 제 14 항에 있어서,
    상기 서브픽셀 4-탭 보간 필터의 상기 필터 계수는 다음과 같이 테이블에 정의되는,
    Figure pct00097

    비디오 프레임의 인트라 또는 인터 예측 처리를 위한 장치.
  16. 비디오 프레임의 인트라 또는 인터 예측 처리를 위한 장치로서,
    참조 샘플을 획득하도록 구성된 참조 샘플 획득 유닛과,
    서브픽셀 오프셋의 값을 획득하도록 구성된 서브픽셀 오프셋 값 획득 유닛과,
    상기 참조 샘플을 필터링하여 예측된 샘플 값을 획득하도록 구성된 서브픽셀 4-탭 보간 필터를 포함하고,
    상기 서브픽셀 4-탭 보간 필터의 필터 계수는 다음과 같이 정의되고,
    Figure pct00098

    여기서 p는 상기 서브픽셀 오프셋의 값의 분수 부분이고, c0, c1, c2 및 c3은 필터 계수인,비디오 프레임의 인트라 또는 인터 예측 처리를 위한 장치.
  17. 비디오 코딩을 위한 장치로서,
    비디오 프레임의 블록을 인트라 예측하도록 구성된 인트라 예측 처리 유닛과,
    상기 비디오 프레임의 참조 샘플을 필터링하도록 구성된 서브픽셀 4-탭 보간 필터를 포함하고,
    상기 서브픽셀 4-탭 보간 필터는 필터의 조합이고, 상기 필터 중 적어도 하나의 필터의 필터 계수는 다음을 만족하고,
    Figure pct00099

    여기서 p는 상기 서브픽셀 오프셋의 분수 샘플 위치이고, c0, c1, c2 및 c3은 필터 계수인,
    비디오 코딩을 위한 장치.
  18. 제 1 항 내지 제 13 항 중 어느 한 항에 따른 방법을 수행하기 위한 처리 회로를 포함하는 인코더(20).
  19. 제 1 항 내지 제 13 항 중 어느 한 항에 따른 방법을 수행하기 위한 처리 회로를 포함하는 디코더(30).
  20. 제 1 항 내지 제 13 항 중 어느 한 항에 따른 방법을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
  21. 디코더로서,
    하나 이상의 프로세서와,
    상기 프로세서에 결합되고 상기 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체를 포함하며,
    상기 프로그래밍은 상기 프로세서에 의해 실행될 때, 상기 디코더가 제 1 항 내지 제 13 항 중 어느 한 항에 따른 방법을 수행하도록 구성하는,
    디코더.
  22. 인코더로서,
    하나 이상의 프로세서와,
    상기 프로세서에 결합되고 상기 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체를 포함하며,
    상기 프로그래밍은 상기 프로세서에 의해 실행될 때, 상기 인코더가 제 1 항 내지 제 13 항 중 어느 한 항에 따른 방법을 수행하도록 구성하는,
    인코더.
KR1020217022061A 2018-12-21 2019-12-20 예측 코딩을 위한 보간 필터링 방법 및 장치 KR20210100183A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862784319P 2018-12-21 2018-12-21
US62/784,319 2018-12-21
PCT/RU2019/050251 WO2020130887A1 (en) 2018-12-21 2019-12-20 Method and apparatus of interpolation filtering for predictive coding

Publications (1)

Publication Number Publication Date
KR20210100183A true KR20210100183A (ko) 2021-08-13

Family

ID=71102388

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217022061A KR20210100183A (ko) 2018-12-21 2019-12-20 예측 코딩을 위한 보간 필터링 방법 및 장치

Country Status (12)

Country Link
US (2) US11877013B2 (ko)
EP (2) EP3891980B1 (ko)
JP (2) JP7293361B2 (ko)
KR (1) KR20210100183A (ko)
CN (2) CN113170119A (ko)
AU (2) AU2019401811B2 (ko)
BR (1) BR112021000657A2 (ko)
CA (1) CA3124104A1 (ko)
IL (1) IL284189A (ko)
MX (1) MX2021007537A (ko)
SG (1) SG11202106487VA (ko)
WO (1) WO2020130887A1 (ko)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8811484B2 (en) * 2008-07-07 2014-08-19 Qualcomm Incorporated Video encoding by filter selection
US10045046B2 (en) * 2010-12-10 2018-08-07 Qualcomm Incorporated Adaptive support for interpolating values of sub-pixels for video coding
KR101956284B1 (ko) * 2011-06-30 2019-03-08 엘지전자 주식회사 보간 방법 및 이를 이용한 예측 방법
KR102134367B1 (ko) 2012-09-10 2020-07-15 선 페이턴트 트러스트 화상 부호화 방법, 화상 복호화 방법, 화상 부호화 장치, 화상 복호화 장치, 및 화상 부호화 복호화 장치
KR102379609B1 (ko) * 2012-10-01 2022-03-28 지이 비디오 컴프레션, 엘엘씨 향상 레이어 모션 파라미터들에 대한 베이스-레이어 힌트들을 이용한 스케일러블 비디오 코딩
US10334259B2 (en) * 2012-12-07 2019-06-25 Qualcomm Incorporated Advanced residual prediction in scalable and multi-view video coding
US9451254B2 (en) * 2013-07-19 2016-09-20 Qualcomm Incorporated Disabling intra prediction filtering
US10462480B2 (en) * 2014-12-31 2019-10-29 Microsoft Technology Licensing, Llc Computationally efficient motion estimation
EP4221202A1 (en) * 2015-06-05 2023-08-02 Dolby Laboratories Licensing Corporation Image encoding and decoding method and image decoding device
MY201173A (en) 2015-11-17 2024-02-08 Huawei Tech Co Ltd Method and apparatus of adaptive filtering of samples for video coding
US10194170B2 (en) * 2015-11-20 2019-01-29 Mediatek Inc. Method and apparatus for video coding using filter coefficients determined based on pixel projection phase
US10390015B2 (en) * 2016-08-26 2019-08-20 Qualcomm Incorporated Unification of parameters derivation procedures for local illumination compensation and cross-component linear model prediction
US10341659B2 (en) * 2016-10-05 2019-07-02 Qualcomm Incorporated Systems and methods of switching interpolation filters
US10904565B2 (en) * 2017-06-23 2021-01-26 Qualcomm Incorporated Memory-bandwidth-efficient design for bi-directional optical flow (BIO)
WO2019160860A1 (en) * 2018-02-14 2019-08-22 Futurewei Technologies, Inc. Adaptive interpolation filter
JP7250917B2 (ja) * 2018-10-06 2023-04-03 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 補間フィルタを使用するイントラ予測のための方法および装置

Also Published As

Publication number Publication date
JP7293361B2 (ja) 2023-06-19
IL284189A (en) 2021-08-31
AU2019401811B2 (en) 2023-11-23
EP3891980B1 (en) 2024-05-08
US20240146974A1 (en) 2024-05-02
US11877013B2 (en) 2024-01-16
NZ777503A (en) 2023-10-27
AU2019401811A1 (en) 2021-07-15
MX2021007537A (es) 2021-09-28
CN113556566A (zh) 2021-10-26
US20210337238A1 (en) 2021-10-28
JP2023118725A (ja) 2023-08-25
CN113170119A (zh) 2021-07-23
SG11202106487VA (en) 2021-07-29
CA3124104A1 (en) 2020-06-25
EP3891980A1 (en) 2021-10-13
WO2020130887A1 (en) 2020-06-25
AU2024200360A1 (en) 2024-02-08
CN113556566B (zh) 2022-06-10
EP4358513A2 (en) 2024-04-24
JP2022514922A (ja) 2022-02-16
BR112021000657A2 (pt) 2021-04-13
EP3891980A4 (en) 2022-06-22

Similar Documents

Publication Publication Date Title
KR20210100737A (ko) 인코더, 디코더 및 적응 루프 필터를 사용한 대응 방법들
JP7277586B2 (ja) モードおよびサイズに依存したブロックレベル制限の方法および装置
US20210321113A1 (en) Encoder, a decoder and corresponding methods using compact mv storage
US11800152B2 (en) Separate merge list for subblock merge candidates and intra-inter techniques harmonization for video coding
KR20210151248A (ko) 적응 루프 필터를 사용하는 인코더, 디코더 및 대응하는 방법들
US20230074457A1 (en) Method and apparatus of subsample interpolation filtering
US11849107B2 (en) Method and apparatus of quantizing coefficients for matrix-based intra prediction technique
WO2019204672A1 (en) Interpolation filter for an intra prediction apparatus and method for video coding
WO2021037053A1 (en) An encoder, a decoder and corresponding methods of cabac coding for the indices of geometric partition flag
AU2019419322B2 (en) Method and apparatus of cross-component linear modeling for intra prediction
US11936860B2 (en) Method and apparatus of sharpening interpolation filtering for predictive coding
JP7293361B2 (ja) 予測コーディングのための補間フィルタ処理の方法および装置
RU2787217C1 (ru) Способ и устройство интерполяционной фильтрации для кодирования с предсказанием
KR20210122800A (ko) 인트라 서브 파티션 코딩 모드 도구로부터 서브 파티션의 크기를 제한하는 인코더, 디코더 및 대응하는 방법

Legal Events

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