KR20210036405A - 비디오 디코딩 방법 및 비디오 디코더 - Google Patents

비디오 디코딩 방법 및 비디오 디코더 Download PDF

Info

Publication number
KR20210036405A
KR20210036405A KR1020217007649A KR20217007649A KR20210036405A KR 20210036405 A KR20210036405 A KR 20210036405A KR 1020217007649 A KR1020217007649 A KR 1020217007649A KR 20217007649 A KR20217007649 A KR 20217007649A KR 20210036405 A KR20210036405 A KR 20210036405A
Authority
KR
South Korea
Prior art keywords
syntax element
current block
block
entropy
context model
Prior art date
Application number
KR1020217007649A
Other languages
English (en)
Other versions
KR102571317B1 (ko
Inventor
후안방 첸
하이타오 양
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Priority to KR1020237028542A priority Critical patent/KR20230128578A/ko
Publication of KR20210036405A publication Critical patent/KR20210036405A/ko
Application granted granted Critical
Publication of KR102571317B1 publication Critical patent/KR102571317B1/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/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/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/513Processing of motion vectors
    • 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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

본 발명은 비디오 디코딩 방법 및 비디오 디코더를 개시한다. 이 방법은 현재 블록 내의 엔트로피 인코딩될 신택스 요소를 획득하는 단계 - 현재 블록 내의 엔트로피 디코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 - 와, 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하는 단계 - 신택스 요소 1에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 신택스 요소 2에 대응하는 컨텍스트 모델이 컨텍스트 모델 세트로부터 결정됨 - 와, 현재 블록 내의 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하는 단계와, 현재 블록 내에 있고 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 현재 블록에 대해 예측 처리를 수행하는 단계와, 현재 블록의 예측 블록에 기초하여 현재 블록의 재구성된 이미지를 획득하는 단계를 포함한다. 본 발명에 따르면, 보다 적은 저장 공간이 컨텍스트 모델에 의해 점유될 수 있다.

Description

비디오 디코딩 방법 및 비디오 디코더
본 출원은, 2018년 9월 10일 중국특허청에 출원된, 발명의 명칭이 "비디오 디코딩 방법 및 비디오 디코더"인 중국 특허출원번호 제201811053068.0호를 우선권 주장하며, 그 전체가 본 명세서에 참고로 포함된다.
본 출원의 실시예는 일반적으로, 비디오 코딩 분야에 관한 것으로, 보다 구체적으로는 비디오 디코딩 방법 및 비디오 디코더에 관한 것이다.
비디오 코딩(비디오 인코딩 및 디코딩)은, 예컨대 브로드캐스트 디지털 TV, 인터넷 및 모바일 네트워크를 통한 비디오 전송, 화상 채팅 및 화상 회의와 같은 실시간 대화형 애플리케이션, DVD 및 블루레이 디스크, 비디오 콘텐츠 수집 및 편집 시스템과 캠코더의 보안 애플리케이션과 같은, 광범위한 디지털 비디오 애플리케이션에 사용된다.
1990년 H.261 표준에서 블록 기반 하이브리드 비디오 코딩 모드가 개발됨에 따라, 새로운 비디오 코딩 기법 및 툴이 개발되었고 새로운 비디오 코딩 표준에 대한 기초가 마련되었다. 다른 비디오 코딩 표준들로는, MPEG-1 비디오, MPEG-2 비디오, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4 파트 10: 어드밴스드 비디오 코딩(Advanced Video Coding, AVC), 및 ITU-T H.265/고효율 비디오 코딩(High Efficiency Video Coding, HEVC), 및 이들 표준의 확장성 및/또는 3D(3차원) 확장이 있다. 비디오를 생성하고 사용하는 것이 널리 증가하고 있으며, 비디오 트래픽은 통신 네트워크 및 데이터 저장부에 가장 큰 부담이 되고 있다. 따라서, 대부분의 비디오 코딩 표준의 목적들 중 하나는 이전 표준에 비해 화질을 희생하지 않으면서 비트 레이트를 줄이는 것이다. 최근의 고효율 비디오 코딩(high efficiency video coding, HEVC)은 화질을 희생시키지 않고도 비디오를 AVC의 약 2배로 압축할 수 있지만, HEVC에 비해 비디오를 더욱 압축하기 위한 새로운 기술이 여전히 시급하다.
본 출원의 실시예들은 콘텍스트를 저장하기 위해 인코더 또는 디코더가 필요로 하는 공간을 줄이기 위한, 비디오 디코딩 방법 및 비디오 디코더를 제공한다.
상기 및 다른 목적들은 독립 청구항의 청구대상에 의해 달성된다. 다른 구현예들은 종속항, 상세한 설명, 및 첨부 도면에서 확인할 수 있다.
제1 양태에 따르면, 수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소 - 현재 블록 내의 엔트로피 디코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 - 를 획득하는 단계와, 현재 블록 내의 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하는 단계 - 현재 블록 내의 신택스 요소 1에 대한 엔트로피 디코딩이 미리 설정된 컨텍스트 모델을 사용하여 완료되거나, 또는 현재 블록 내의 신택스 요소 2에 대한 엔트로피 디코딩이 컨텍스트 모델을 사용하여 완료됨 - 와, 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 현재 블록에 대해 예측 처리를 수행하여, 현재 블록의 예측 블록을 획득하는 단계와, 현재 블록의 예측 블록에 기초하여 현재 블록의 재구성된 이미지를 획득하는 단계를 포함하는, 비디오 디코딩 방법이 제공된다.
현재 블록 내의 신택스 요소 1 및 신택스 요소 2는 하나의 컨텍스트 모델을 공유하기 때문에, 디코더는 엔트로피 디코딩을 수행할 때 컨텍스트 모델을 확인할 필요가 없어, 디코더에 의한 비디오 디코딩 수행 효율을 향상시킨다. 또한, 비디오 디코더는 신택스 요소 1과 신택스 요소 2에 대해 하나의 컨텍스트 모델만 저장하면 되므로, 비디오 디코더가 차지하는 저장 공간이 줄어든다.
제2 양태에 따르면, 수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 인코딩될 신택스 요소를 획득하는 단계 - 현재 블록 내의 엔트로피 디코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 - 와, 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하는 단계 - 신택스 요소 1에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 신택스 요소 2에 대응하는 컨텍스트 모델이 컨텍스트 모델 세트로부터 결정됨 - 와, 현재 블록 내의 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하는 단계와, 현재 블록 내에 있고 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 현재 블록에 대해 예측 처리를 수행하는 단계와, 현재 블록의 예측 블록에 기초하여 현재 블록의 재구성된 이미지를 획득하는 단계를 포함하는 비디오 디코딩 방법이 제공된다.
현재 블록 내의 신택스 요소 1 및 신택스 요소 2가 하나의 컨텍스트 모델을 공유하기 때문에, 비디오 인코더는 신택스 요소 1 및 신택스 요소 2에 대해 하나의 컨텍스트 모델만 저장하면 되어, 비디오 인코더의 저장 공간을 덜 차지한다.
제2 양태와 관련하여, 가능한 구현예에서, 미리 설정된 컨텍스트 모델 세트 내의 컨텍스트 모델의 개수는 2개 또는 3개이다.
제2 양태와 관련하여, 가능한 구현예에셔, 현재 블록 내의 신택스 요소 1에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되는 것은, 현재 블록의 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2와, 현재 블록의 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 기초하여 현재 블록 내의 신택스 요소 1의 컨텍스트 인덱스를 결정하는 것을 포함하고, 여기서 현재 블록 내의 신택스 요소 1의 컨텍스트 인덱스는 현재 블록 내의 신택스 요소 1에 대응하는 컨텍스트 모델을 나타내는 데 사용되며, 또는
현재 블록 내의 신택스 요소 2에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되는 것은, 현재 블록의 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2와, 현재 블록의 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 기초하여 현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스를 결정하는 것을 포함하고, 여기서 현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스는 현재 블록 내의 신택스 요소 2에 대응하는 컨텍스트 모델을 나타내는 데 사용된다.
제2 양태와 관련하여, 가능한 구현예에서, 미리 설정된 컨텍스트 모델 세트 내의 컨텍스트 모델의 개수가 3개인 경우, 현재 블록 내의 신택스 요소 1의 컨텍스트 인덱스의 값이 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값의 합이거나, 또는
현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스의 값이, 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값의 합이다.
제2 양태와 관련하여, 가능한 구현예에서, 미리 설정된 컨텍스트 모델 세트 내의 컨텍스트 모델의 개수가 2개인 경우, 현재 블록 내의 신택스 요소 1의 컨텍스트 인덱스의 값이 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값에 대해 OR 연산을 수행하여 얻은 결과이거나, 또는
현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스의 값이, 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값에 대해 OR 연산을 수행하여 얻은 결과이다.
제1 양태 또는 제2 양태와 관련하여, 가능한 구현예에서, 현재 블록 내의 신택스 요소 1이 affine_merge_flag이고, 아핀 모션 모델 기반의 병합 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는 현재 블록 내의 신택스 요소 2가 affine_inter_flag이고, 현재 블록이 위치해 있는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우 아핀 모션 모델 기반의 AMVP 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는
현재 블록 내의 신택스 요소 1이 subblock_merge_flag이고, 서브블록 기반의 병합 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는 현재 블록 내의 신택스 요소 2가 affine_inter_flag이고, 현재 블록이 위치해 있는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우 아핀 모션 모델 기반의 AMVP 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용된다.
제3 양태에 따르면, 수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소를 획득하는 단계 - 현재 블록 내의 엔트로피 디코딩될 신택스 요소는 현재 블록 내의 신택스 요소 3 또는 현재 블록 내의 신택스 요소 4를 포함함 - 와, 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하는 단계 - 현재 블록 내의 신택스 요소 3에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 현재 블록 내의 신택스 요소 4에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정됨 - 와, 현재 블록 내의 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하는 단계와, 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 현재 블록에 대해 예측 처리를 수행하여, 현재 블록의 예측 블록을 획득하는 단계와, 현재 블록의 예측 블록에 기초하여 현재 블록의 재구성된 이미지를 획득하는 단계를 포함하는, 비디오 디코딩 방법이 제공된다.
현재 블록 내의 신택스 요소 3 및 신택스 요소 4가 하나의 컨텍스트 모델을 공유하기 때문에, 비디오 디코더는 신택스 요소 3 및 신택스 요소 4에 대해 하나의 컨텍스트 모델만 저장하면 되어, 비디오 디코더의 저장 공간을 덜 차지한다.
제3 양태와 관련하여, 가능한 구현예에서, 미리 설정된 컨텍스트 모델 세트는 5개의 컨텍스트 모델을 포함한다.
제3 양태와 관련하여, 가능한 구현예에서, 현재 블록 내의 신택스 요소 3이 merge_idx이고, 현재 블록의 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되거나, 현재 블록 내의 신택스 요소 4가 affine_merge_idx이고, 현재 블록의 아핀 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되거나, 또는
현재 블록 내의 신택스 요소 3이 merge_idx이고, 현재 블록의 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되거나, 또는, 현재 블록 내의 신택스 요소 4가 subblock_merge_idx이고, 서브블록 병합 후보 리스트의 인덱스 값을 나타내는 데 사용된다.
제4 양태에 따르면, 수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소 - 현재 블록 내의 엔트로피 디코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 - 를 획득하는 단계와, 현재 블록의 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2의 값과 현재 블록의 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2의 값에 기초하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소의 컨텍스트 인덱스의 값을 결정하는 단계와, 현재 블록 내의 엔트로피 디코딩될 신택스 요소의 컨텍스트 인덱스의 값에 기초하여 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하는 단계와, 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 현재 블록에 대해 예측 처리를 수행하여, 현재 블록의 예측 블록을 획득하는 단계와, 현재 블록의 예측 블록에 기초하여 현재 블록의 재구성된 이미지를 획득하는 단계를 포함하는, 비디오 디코딩 방법이 제공된다.
제4 양태와 관련하여, 가능한 구현예에서, 현재 블록 내의 신택스 요소 1이 affine_merge_flag이고, 아핀 모션 모델 기반의 병합 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는 현재 블록 내의 신택스 요소 2가 affine_inter_flag이고, 현재 블록이 위치해 있는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우 아핀 모션 모델 기반의 AMVP 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는
현재 블록 내의 신택스 요소 1이 subblock_merge_flag이고, 서브블록 기반의 병합 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는 현재 블록 내의 신택스 요소 2가 affine_inter_flag이고, 현재 블록이 위치해 있는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우 아핀 모션 모델 기반의 AMVP 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용된다.
제4 양태와 관련하여, 가능한 구현예에서, 현재 블록의 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2의 값과 현재 블록의 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2의 값에 기초하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소의 컨텍스트 인덱스의 값을 결정하는 단계는,
논리 표현식 Context index = (condL && availableL) + (condA && availableA)에 따라 현재 블록 내의 엔트로피 디코딩될 신택스 요소의 컨텍스트 인덱스의 값을 결정하는 단계를 포함하되,
condL = 신택스 요소 1 [x0-1][y0] | 신택스 요소 2 [x0-1][y0]이고, 신택스 요소 1 [x0-1][y0]은 좌측 이웃 블록 내의 신택스 요소 1의 값을 나타내며, 신택스 요소 2 [x0-1][y0]는 좌측 이웃 블록 내의 신택스 요소 2의 값을 나타내고,
condA = 신택스 요소 1 [x0][y0-1] | 신택스 요소 2 [x0][y0-1] 이고, 신택스 요소 1 [x0][y0-1]은 상부 이웃 블록 내의 신택스 요소 1의 값을 나타내며, 신택스 요소 2 [x0][y0-1] 는 상부 이웃 블록 내의 신택스 요소 2의 값을 나타내고,
availableL은 좌측 이웃 블록이 이용가능한지 여부를 나타내고, availableA는 상부 이웃 블록이 이용가능한지 여부를 나타낸다.
제5 양태에 따르면, 수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소 - 현재 블록 내의 엔트로피 디코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 - 를 획득하고, 현재 블록의 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2의 값과 현재 블록의 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2의 값에 기초하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소의 컨텍스트 인덱스의 값을 결정하며, 현재 블록 내의 엔트로피 디코딩될 신택스 요소의 컨텍스트 인덱스의 값에 기초하여 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하도록 구성된, 엔트로피 디코딩 유닛과, 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 현재 블록에 대해 예측 처리를 수행하여, 현재 블록의 예측 블록을 획득하도록 구성된 예측 처리 유닛과, 현재 블록의 예측 블록에 기초하여 현재 블록의 재구성된 이미지를 획득하도록 구성된 재구성 유닛을 포함하는, 비디오 디코더가 제공된다.
제5 양태와 관련하여, 가능한 구현예에서, 현재 블록 내의 신택스 요소 1이 affine_merge_flag이고, 아핀 모션 모델 기반의 병합 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는 현재 블록 내의 신택스 요소 2가 affine_inter_flag이고, 현재 블록이 위치해 있는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우 아핀 모션 모델 기반의 AMVP 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는
현재 블록 내의 신택스 요소 1이 subblock_merge_flag이고, 서브블록 기반의 병합 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는 현재 블록 내의 신택스 요소 2가 affine_inter_flag이고, 현재 블록이 위치해 있는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우 아핀 모션 모델 기반의 AMVP 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용된다.
제5 양태와 관련하여, 가능한 구현예에서, 엔트로피 디코딩 유닛은 또한,
논리 표현식 Context index = (condL && availableL) + (condA && availableA)에 따라 현재 블록 내의 엔트로피 디코딩될 신택스 요소의 컨텍스트 인덱스의 값을 결정하되,
condL = 신택스 요소 1 [x0-1][y0] | 신택스 요소 2 [x0-1][y0]이고, 신택스 요소 1 [x0-1][y0]은 좌측 이웃 블록 내의 신택스 요소 1의 값을 나타내며, 신택스 요소 2 [x0-1][y0]는 좌측 이웃 블록 내의 신택스 요소 2의 값을 나타내고,
condA = 신택스 요소 1 [x0][y0-1] | 신택스 요소 2 [x0][y0-1] 이고, 신택스 요소 1 [x0][y0-1]은 상부 이웃 블록 내의 신택스 요소 1의 값을 나타내며, 신택스 요소 2 [x0][y0-1] 는 상부 이웃 블록 내의 신택스 요소 2의 값을 나타내고,
availableL은 좌측 이웃 블록이 이용가능한지 여부를 나타내고, availableA는 상부 이웃 블록이 이용가능한지 여부를 나타낸다.
제6 양태에 따르면, 수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소 - 현재 블록 내의 엔트로피 디코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 - 를 획득하고, 현재 블록 내의 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행 - 현재 블록 내의 신택스 요소 1에 대한 엔트로피 디코딩이 미리 설정된 컨텍스트 모델을 사용하여 완료되거나, 또는 현재 블록 내의 신택스 요소 2에 대한 엔트로피 디코딩이 컨텍스트 모델을 사용하여 완료됨 - 하도록 구성된, 엔트로피 디코딩 유닛과, 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 현재 블록에 대해 예측 처리를 수행하여, 현재 블록의 예측 블록을 획득하도록 구성된, 예측 처리 유닛과, 현재 블록의 예측 블록에 기초하여 현재 블록의 재구성된 이미지를 획득하도록 구성된, 재구성 유닛을 포함하는, 비디오 디코더가 제공된다.
제7 양태에 따르면, 수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소 - 현재 블록 내의 엔트로피 디코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 - 를 획득하고, 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하며 - 현재 블록 내의 신택스 요소 1에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 현재 블록 내의 신택스 요소 2에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정됨 -, 현재 블록 내의 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하도록 구성된, 엔트로피 디코딩 유닛과, 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 현재 블록에 대해 예측 처리를 수행하여, 현재 블록의 예측 블록을 획득하도록 구성된, 예측 처리 유닛과, 현재 블록의 예측 블록에 기초하여 현재 블록의 재구성된 이미지를 획득하도록 구성된, 재구성 유닛을 포함하는, 비디오 디코더가 제공된다.
제7 양태와 관련하여, 가능한 구현예에서, 미리 설정된 컨텍스트 모델 세트 내의 컨텍스트 모델의 개수는 2개 또는 3개이다.
제7 양태와 관련하여, 가능한 구현예에서, 엔트로피 디코딩 유닛은 또한, 현재 블록의 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2와, 현재 블록의 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 기초하여 현재 블록 내의 신택스 요소 1의 컨텍스트 인덱스 - 현재 블록 내의 신택스 요소 1의 컨텍스트 인덱스는 현재 블록 내의 신택스 요소 1에 대응하는 컨텍스트 모델을 나타내는 데 사용됨 - 를 결정하거나, 또는
현재 블록의 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2와, 현재 블록의 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 기초하여 현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스 - 현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스는 현재 블록 내의 신택스 요소 2에 대응하는 컨텍스트 모델을 나타내는 데 사용됨 - 를 결정하도록 구성된다.
제7 양태와 관련하여, 가능한 구현예에서, 미리 설정된 컨텍스트 모델 세트 내의 컨텍스트 모델의 개수가 3개인 경우, 현재 블록 내의 신택스 요소 1의 컨텍스트 인덱스의 값이 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값의 합이거나, 또는
현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스의 값이, 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값의 합이다.
제7 양태와 관련하여, 가능한 구현예에서, 미리 설정된 컨텍스트 모델 세트 내의 컨텍스트 모델의 개수가 2개인 경우, 현재 블록 내의 신택스 요소 1의 컨텍스트 인덱스의 값이 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값에 대해 OR 연산을 수행하여 얻은 결과이거나, 또는
현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스의 값이, 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값에 대해 OR 연산을 수행하여 얻은 결과이다.
제6 양태 또는 제7 양태와 관련하여, 가능한 구현예에서, 현재 블록 내의 신택스 요소 1이 affine_merge_flag이고, 아핀 모션 모델 기반의 병합 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는 현재 블록 내의 신택스 요소 2가 affine_inter_flag이고, 현재 블록이 위치해 있는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우 아핀 모션 모델 기반의 AMVP 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는
현재 블록 내의 신택스 요소 1이 subblock_merge_flag이고, 서브블록 기반의 병합 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는 현재 블록 내의 신택스 요소 2가 affine_inter_flag이고, 현재 블록이 위치해 있는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우 아핀 모션 모델 기반의 AMVP 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용된다.
제8 양태에 따르면, 수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소 - 현재 블록 내의 엔트로피 디코딩될 신택스 요소는 현재 블록 내의 신택스 요소 3 또는 현재 블록 내의 신택스 요소 4를 포함함 - 를 획득하고, 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하며 - 현재 블록 내의 신택스 요소 3에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 현재 블록 내의 신택스 요소 4에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정됨 -, 현재 블록 내의 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하도록 구성된, 엔트로피 디코딩 유닛과, 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 현재 블록에 대해 예측 처리를 수행하여, 현재 블록의 예측 블록을 획득하도록 구성된, 예측 처리 유닛과, 현재 블록의 예측 블록에 기초하여 현재 블록의 재구성된 이미지를 획득하도록 구성된, 재구성 유닛을 포함하는, 비디오 디코더가 제공된다.
제8 양태와 관련하여, 가능한 구현예에서, 미리 설정된 컨텍스트 모델 세트는 5개의 컨텍스트 모델을 포함한다.
제8 양태와 관련하여, 가능한 구현예에서, 현재 블록 내의 신택스 요소 3이 merge_idx이고, 현재 블록의 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되거나, 현재 블록 내의 신택스 요소 4가 affine_merge_idx이고, 현재 블록의 아핀 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되거나, 또는
현재 블록 내의 신택스 요소 3이 merge_idx이고, 현재 블록의 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되거나, 또는, 현재 블록 내의 신택스 요소 4가 subblock_merge_idx이고, 서브블록 병합 후보 리스트의 인덱스 값을 나타내는 데 사용된다.
제9 양태에 따르면, 현재 블록 내의 엔트로피 인코딩될 신택스 요소를 획득하는 단계 - 현재 블록 내의 엔트로피 인코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 - 와, 현재 블록 내의 엔트로피 인코딩될 신택스 요소에 대해 엔트로피 인코딩을 수행하는 단계 - 현재 블록 내의 엔트로피 인코딩될 신택스 요소에 대해 엔트로피 인코딩이 수행될 경우, 현재 블록 내의 신택스 요소 1에 대한 엔트로피 인코딩이 미리 설정된 컨텍스트 모델을 사용하여 완료되거나, 또는 현재 블록 내의 신택스 요소 2에 대한 엔트로피 인코딩이 컨텍스트 모델을 사용하여 완료됨 - 와, 현재 블록 내에 있고 엔트로피 인코딩을 통해 획득되는 신택스 요소를 포함하는 비트스트림을 출력하는 단계를 포함하는, 인코딩 방법이 제공된다.
구체적인 신택스 요소 및 구체적인 컨텍스트 모델에 대해서는, 제1 양태를 참조하라.
제10 양태에 따르면, 현재 블록 내의 엔트로피 인코딩될 신택스 요소를 획득하는 단계 - 현재 블록 내의 엔트로피 인코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 - 와, 엔트로피 인코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하는 단계 - 현재 블록 내의 신택스 요소 1에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 현재 블록 내의 신택스 요소 2에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정됨 - 와, 현재 블록 내의 엔트로피 인코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 인코딩될 신택스 요소에 대해 엔트로피 인코딩을 수행하는 단계와, 현재 블록 내에 있고 엔트로피 인코딩을 통해 획득되는 신택스 요소를 포함하는 비트스트림을 출력하는 단계를 포함하는, 인코딩 방법이 제공된다.
구체적인 신택스 요소 및 구체적인 컨텍스트 모델에 대해서는, 제2 양태를 참조하라.
제11 양태에 따르면, 현재 블록 내의 엔트로피 인코딩될 신택스 요소를 획득하는 단계 - 현재 블록 내의 엔트로피 인코딩될 신택스 요소는 현재 블록 내의 신택스 요소 3 또는 현재 블록 내의 신택스 요소 4를 포함함 - 와, 엔트로피 인코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하는 단계 - 현재 블록 내의 신택스 요소 3에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 현재 블록 내의 신택스 요소 4에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정됨 - 와, 현재 블록 내의 엔트로피 인코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 인코딩될 신택스 요소에 대해 엔트로피 인코딩을 수행하는 단계와, 현재 블록 내에 있고 엔트로피 인코딩을 통해 획득되는 신택스 요소를 포함하는 비트스트림을 출력하는 단계를 포함하는, 인코딩 방법이 제공된다.
구체적인 신택스 요소 및 구체적인 컨텍스트 모델에 대해서는, 제3 양태를 참조하라.
제12 양태에 따르면, 현재 블록 내의 엔트로피 인코딩될 신택스 요소를 획득하고 - 현재 블록 내의 엔트로피 인코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 -, 현재 블록 내의 엔트로피 인코딩될 신택스 요소에 대해 엔트로피 인코딩을 수행하도록 구성된 엔트로피 인코딩 유닛 - 현재 블록 내의 엔트로피 인코딩될 신택스 요소에 대해 엔트로피 인코딩이 수행될 경우, 현재 블록 내의 신택스 요소 1에 대한 엔트로피 인코딩은 미리 설정된 컨텍스트 모델을 사용하여 완료되고, 현재 블록 내의 신택스 요소 2에 대한 엔트로피 인코딩은 컨텍스트 모델을 사용하여 완료됨 - 과, 현재 블록 내에 있고 엔트로피 인코딩을 통해 획득되는 신택스 요소를 포함하는 비트스트림을 출력하도록 구성된 출력부를 포함하는, 비디오 인코더가 제공된다.
구체적인 신택스 요소 및 구체적인 컨텍스트 모델에 대해서는, 제4 양태를 참조하라.
제13 양태에 따르면, 현재 블록 내의 엔트로피 인코딩될 신택스 요소 - 현재 블록 내의 엔트로피 인코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 - 를 획득하고, 엔트로피 인코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하며 - 현재 블록 내의 신택스 요소 1에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 현재 블록 내의 신택스 요소 2에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정됨 -, 현재 블록 내의 엔트로피 인코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 인코딩될 신택스 요소에 대해 엔트로피 인코딩을 수행하도록 구성된 엔트로피 인코딩 유닛과, 현재 블록 내에 있고 엔트로피 인코딩을 통해 획득되는 신택스 요소를 포함하는 비트스트림을 출력하도록 구성된 출력부를 포함하는, 비디오 인코더가 제공된다.
구체적인 신택스 요소 및 구체적인 컨텍스트 모델에 대해서는, 제5 양태를 참조하라.
제14 양태에 따르면, 현재 블록 내의 엔트로피 인코딩될 신택스 요소 - 현재 블록 내의 엔트로피 인코딩될 신택스 요소는 현재 블록 내의 신택스 요소 3 또는 현재 블록 내의 신택스 요소 4를 포함함 - 를 획득하고, 엔트로피 인코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하며 - 현재 블록 내의 신택스 요소 3에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 현재 블록 내의 신택스 요소 4에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정됨 -, 현재 블록 내의 엔트로피 인코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 인코딩될 신택스 요소에 대해 엔트로피 인코딩을 수행하도록 구성된 엔트로피 인코딩 유닛과, 현재 블록 내에 있고 엔트로피 인코딩을 통해 획득되는 신택스 요소를 포함하는 비트스트림을 출력하도록 구성된 출력부를 포함하는, 비디오 인코더가 제공된다.
구체적인 신택스 요소 및 구체적인 컨텍스트 모델에 대해서는, 제6 양태를 참조하라.
제15 양태에 따르면, 본 발명은 프로세서 및 메모리를 포함하는 비디오 스트림을 디코딩하기 위한 장치와 관련된다. 메모리는 명령어를 저장하며, 명령어는 프로세스로 하여금 제1 양태, 제2 양태, 제3 양태 또는 제4 양태의 방법 또는 이들의 가능한 구현예를 수행할 수 있게 한다.
제16 양태에 따르면, 본 발명은 프로세서 및 메모리를 포함하는 비디오 스트림을 디코딩하기 위한 장치와 관련된다. 메모리는 명령어를 저장하며, 명령어는 프로세스로 하여금 제7 양태, 제8 양태, 또는 제9 양태의 방법 또는 이들의 가능한 구현예를 수행할 수 있게 한다.
제17 양태에 따르면, 컴퓨터 판독가능 저장 매체가 제안된다. 컴퓨터 판독가능 저장 매체는 명령어를 저장하며, 명령어가 실행될 경우, 하나 이상의 프로세서가 비디오 데이터를 인코딩할 수 있다. 명령어는 하나 이상의 프로세서로 하여금 제1 양태, 제2 양태, 제3 양태, 제4 양태, 제7 양태, 제8 양태, 또는 제9 양태의 방법, 또는 이들의 가능한 구현예를 수행할 수 있게 한다.
제18 양태에 따르면, 본 발명은 프로그램 코드를 포함하는 컴퓨터 프로그램과 관련된다. 프로그램 코드가 컴퓨터 상에서 실행될 경우, 제1 양태, 제2 양태, 제3 양태, 제4 양태, 제7 양태, 제8 양태, 또는 제9 양태의 방법, 또는 이들의 가능한 구현예가 수행된다.
하나 이상의 실시예의 세부사항은 첨부 도면 및 이어지는 상세한 설명에서 설명한다. 다른 특징, 목적 및 이점은 상세한 설명, 도면 및 청구범위에서 분명히 알 수 있을 것이다.
본 출원의 실시예 또는 배경에서의 기술적 해법을 보다 명확히 설명하기 위해, 다음은 본 출원의 실시예 또는 배경을 설명하는데 필요한 첨부 도면을 간략하게 설명한다.
도 1은 본 발명의 일 실시예를 구현하는 비디오 인코딩 시스템의 일례의 블록도이다.
도 2는 본 발명의 일 실시예를 구현하는 비디오 인코더의 예시적인 구조를 도시한 블록도이다.
도 3은 본 발명의 일 실시예를 구현하는 비디오 디코더의 예시적인 구조를 도시한 블록도이다.
도 4는 도 2의 인코더(20) 및 도 3의 디코더(30)를 포함하는 비디오 코딩 시스템을 도시한 것이다.
도 5는 또 다른 인코딩 장치 또는 디코딩 장치의 일례를 도시한 블록도이다.
도 6은 일 실시예에 따른, 현재 블록의 공간 도메인 및 시간 도메인에서 후보 모션 정보의 위치를 도시한 개략도이다.
도 7은 일 실시예에 따른, 현재 블록의 위치 및 복수의 이웃 위치 블록을 도시한 개략도이다.
도 8a는 일 실시예에 따른, 구성된 제어 포인트 모션 벡터(control point motion vector)를 예측하는 방법을 도시한 흐름도이다.
도 8b는 일 실시예에 따른, 구성된 제어 포인트 모션 벡터를 예측하는 방법을 도시한 흐름도이다.
도 9a는 일 실시예에 따른, 인터 예측(inter prediction) 방법을 도시한 흐름도이다.
도 9b는 일 실시예에 따른, 구성된 제어 포인트 모션 벡터를 예측하는 방법을 도시한 흐름도이다.
도 9c는 일 실시예에 따른 모션 압축 유닛의 중심점에 기초한 모션 보상의 위치를 도시한 개략도이다.
도 10은 일 실시예에 따른, 비디오 디코딩 방법을 도시한 흐름도이다.
도 11은 일 실시예에 따른, 비디오 디코딩 방법을 도시한 흐름도이다.
도 12는 일 실시예에 따른, 비디오 디코딩 방법을 도시한 흐름도이다.
이하에서는, 달리 명시하지 않는 한, 동일한 참조 부호는 동일하거나 또는 적어도 기능적으로 등가의 특징부를 나타낸다.
다음의 설명에서, 본 개시의 일부를 형성하며 예시로서 본 발명의 실시예들의 특정 양태들 또는 본 발명의 실시 예들이 사용될 수 있는 특정 양태들을 보여주는 첨부 도면을 참조한다. 본 발명의 실시예들은 다른 양태들에 사용될 수도 있고, 첨부 도면에 도시되지 않은 구조적 또는 논리적 변경들을 포함할 수 있음을 이해해야 한다. 따라서, 다음의 상세한 설명은 제한으로 해석되어서는 안 되며, 본 발명의 범위는 첨부된 청구범위에 의해 정의된다.
예를 들어, 설명된 방법과 관련하여 개시된 내용은 방법을 수행하도록 구성된 대응하는 장치 또는 시스템에도 적용될 수 있으며, 그 반대의 경우도 마찬가지임을 이해해야 한다. 예를 들어, 하나 이상의 특정 방법 단계를 설명하면, 대응하는 장치는 설명된 하나 이상의 방법 단계를 수행하기 위한 기능 유닛과 같은 하나 이상의 유닛(예컨대, 하나 이상의 단계를 수행하는 하나의 유닛, 또는 복수의 단계 중 하나 이상을 각각 수행하는 복수의 유닛)을 포함한다(이러한 하나 이상의 유닛은 첨부 도면에 명시적으로 설명되거나 도시되지 않을 수도 있다). 또한, 예를 들어, 기능 유닛과 같은 하나 이상의 유닛을 기초하여 특정 장치를 설명한 경우, 대응하는 방법은 하나 이상의 유닛의 기능을 수행하는 하나의 단계(예컨대, 하나 이상의 유닛의 기능을 수행하기 위한 하나의 단계, 또는 각각은 복수의 유닛 중 하나 이상의 기능을 수행하는 데 각각 사용되는 복수의 단계)를 포함할 수 있다(이러한 하나 이상의 단계는 첨부 도면에 명시적으로 설명되거나 도시되지 않을 수도 있다). 또한, 특별히 달리 언급하지 않는 한, 다양한 실시예들의 특징들 및/또는 본 명세서에 기술된 양태들은 서로 결합될 수도 있음을 이해해야 한다.
비디오 코딩은 일반적으로 비디오 또는 비디오 시퀀스를 형성하는 일련의 픽처를 처리한다. 비디오 코딩 분야에서, "픽처(picture)", "프레임(frame)", 및 "이미지(image)"는 동의어로 사용될 수 있다. 본 출원(또는 본 개시)에 사용된 비디오 코딩은 비디오 인코딩 또는 비디오 디코딩을 나타낸다. 비디오 인코딩은 소스측에서 수행되며, 일반적으로 (저장 및/또는 전송을 보다 효율적으로 하기 위해) 비디오 픽처를 표현하는데 필요한 데이터 양을 줄이기 위해 (예컨대, 압축을 통해) 원본 비디오 픽처를 처리하는 것을 포함한다. 비디오 디코딩은 목적지측에서 수행되며, 일반적으로 비디오 픽처를 재구성하기 위한 인코더에 대한 역 처리를 포함한다. 실시예들에서 비디오 픽처(또는 일반적으로 픽처라고도 하며, 이하에서 설명됨)의 "코딩"은 비디오 시퀀스와 관련된 "인코딩" 또는 "디코딩"으로 이해하면 된다. 인코딩과 디코딩의 조합을 코딩(인코딩 및 디코딩)이라고도 한다.
무손실 비디오 코딩의 경우, 원본 비디오 픽처가 복원될 수 있는데, 즉, 재구성된 비디오 픽처가 원본 비디오 픽처와 동일한 품질을 갖는다(저장 또는 전송 중에 전송 손실 또는 기타 데이터 손실이 발생하지 않는다고 가정할 경우). 손실이 있는 비디오 코딩의 경우, 비디오 픽처를 표현하는 데 필요한 데이터의 양을 줄이기 위해 양자화 등을 통해 추가 압축이 수행되며, 비디오 픽처는 디코더 측에서 완전히 재구성될 수 없는데, 즉, 재구성된 비디오 픽처의 품질이 원본 비디오 픽처의 품질보다 열악하다.
일부 H.261 비디오 코딩 표준은 "손실 하이브리드 비디오 코딩"과 관련된다(즉, 샘플 도메인에서의 공간 및 시간적 예측은 변환 도메인에서 양자화를 적용하기 위해 2D 변환 코딩과 결합된다). 비디오 시퀀스의 각 픽처는 일반적으로 겹치지 않는 블록 세트로 분할되고, 코딩은 일반적으로 블록 레벨에서 수행된다. 구체적으로, 인코더 측에서, 비디오는 일반적으로 블록(비디오 블록) 레벨로 처리, 즉, 인코딩된다. 예를 들어, 공간(인트라 픽처) 예측 및 시간(인터 픽처) 예측을 통해 예측 블록이 생성되고, 현재 블록(현재 처리 중이거나 처리될 블록)으로부터 예측 블록을 빼서 잔차 블록을 구하며, 잔차 블록은 변환 도메인에서 변환되고 양자화되어 전송(압축)될 데이터 양을 줄인다. 디코더측에서, 인코딩 또는 압축된 블록에 인코더에 대한 역처리가 적용되어 표현을 위해 현재 블록을 재구성한다. 또한, 인코더는 디코더의 처리 루프를 복제하며, 따라서 인코더와 디코더가 동일한 예측(예컨대, 인트라 예측 및 인터 예측) 및/또는 처리를 위한 재구성을 하며, 즉 후속 블록을 인코딩한다.
본 명세서에서 사용되는 "블록"이란 용어는 픽처 또는 프레임의 일부분일 수 있다. 설명을 쉽게 하기 위해, VCEG(Video Coding Experts Group) 및 ISO/IEC MPEG(Motion Picture Experts Group)의 JCT-VC(Joint Collaboration Team on Video Coding)에 의해 개발된 VVC(Versatile Video Coding) 또는 HEVC(High-Efficiency Video Coding)를 참조하여 본 발명의 실시예를 설명한다. 당업자는 본 발명의 실시예들이 HEVC나 VVC에 제한되지 않고, 블록이 CU, PU, 또는 TU일 수 있다는 것을 이해할 것이다. HEVC에서, CTU는 코딩 트리(coding tree)로 표시된 쿼드트리(quadtree) 구조를 사용하여 복수의 CU로 분할된다. 픽처 영역이 CU 레벨에서 인터 픽처(시간적) 예측을 통해 코딩되는지 아니면 인트라 픽처(공간적) 예측을 통해 코딩되는지 여부가 판정된다. 각각의 CU는 또한 PU 분할 타입에 따라 1, 2, 또는 4개의 PU로 분할될 수 있다. 동일한 예측 프로세스가 하나의 PU 내에서 적용되며, 관련 정보가 PU에 기초하여 디코더로 전송된다. PU 분할 타입(splitting type)에 기초하여 예측 프로세스를 적용해서 잔차 블록을 구한 후에, CU는 CU에 사용되는 코딩 트리와 유사한 또 다른 쿼드트리 구조에 기초하여 변환 유닛(transform unit, TU)으로 분할될 수 있다. 비디오 압축 기술의 최신 개발에서, 프레임은 코딩 블록을 분할하기 위해 쿼드트리 + 이진 트리(Quad-tree plus binary tree, QTBT)를 통해 분할된다. QTBT 블록 구조에서, CU는 정사각형 또는 직사각형일 수 있다. VVC에서, 코딩 트리 유닛(coding tree unit, CTU)이 먼저 쿼드트리 구조를 사용하여 분할되고, 쿼드트리 리프 노드가 이진 트리 구조를 사용하여 더 분할된다. 이진 트리 리프 노드는 코딩 유닛(CU)이라고도 하며, 분할은 다른 분할없이 예측 및 변환 처리에 사용된다. 이것은 CU, PU, 및 TU가 QTBT 코딩 블록 구조에서 동일한 블록 크기를 갖는다는 것을 의미한다. 또한, 멀티플라이 분할(multiply partitioning)이 QTBT 블록 구조(예컨대, 트리플 트리 분할)와 함께 사용된다.
다음은, 도 1 내지 도 4에 기초하여 인코더(20), 디코더(30), 인코딩 시스템(10) 및 디코딩 시스템(40)의 실시예를 설명한다(이후 도 10에 기초하여 본 발명의 실시예를 보다 상세히 설명한다).
도 1은, 예시적인 인코딩 시스템(10), 예컨대 본 출원(본 개시)의 기술을 사용할 수 있는 비디오 인코딩 시스템(10)을 도시한 개념적 또는 개략적인 블록도이다. 비디오 인코딩 시스템(10) 내의 인코더(20)(예컨대, 비디오 인코더(20)) 및 디코더(30)(예컨대, 비디오 디코더(30))는 본 출원에서 설명하는 다양한 실시예에 따른 (분할/인트라 예측/...)에 대한 기술들을 수행하도록 구성될 수 있는 장치 예를 나타낸다. 도 1에 도시되어 있는 바와 같이, 인코딩 시스템(10)은 인코딩된 픽처(13)와 같은 인코딩된 데이터(13)를, 인코딩된 데이터(13) 등을 디코딩하는 목적지 장치(14)에게 제공하도록 구성된 소스 장치(12)를 포함한다.
소스 장치(12)는 인코더(20)를 포함하며, 이에 더하여 또는 선택적으로, 픽처 소스(16), 픽처 전처리 유닛(18)와 같은 전처리 유닛(18), 및 통신 인터페이스 또는 통신 유닛(22)을 포함할 수 있다.
픽처 소스(16)는, 실제 픽처 등을 캡처하도록 구성된 임의의 유형의 픽처 캡처 장치 및/또는 픽처 또는 코멘트를 생성하는 임의의 유형의 장치(화면 콘텐츠 인코딩의 경우, 화면 상의 일부 텍스트는 인코딩될 픽처 또는 이미지의 일부로 간주됨), 예컨대, 컴퓨터 애니메이션 픽처를 생성하도록 구성된 컴퓨터 그래픽 처리 유닛, 또는 실제 픽처 또는 컴퓨터 애니메이션 픽처(예컨대, 화면 콘텐츠 또는 가상 현실(virtual reality, VR) 픽처), 및/또는 이들의 임의의 조합(예컨대, 증강 현실(augmented reality, AR) 픽처)을 획득 및/또는 제공하도록 구성된 임의의 유형의 장치일 수도 있고 또는 이들을 포함할 수도 있다.
(디지털) 픽처는 휘도 값을 갖는 샘플의 매트릭스 또는 2차원 어레이로 간주될 수 있다. 어레이 내의 샘플은 픽셀(pixel)(화소(picture element)의 축약 형태) 또는 펠(pel)이라고도 한다. 어레이 또는 픽처의 수평 및 수직 방향(또는 축)의 샘플의 양은 픽처의 크기 및/또는 해상도를 정의한다. 컬러 표현을 위해, 일반적으로 세 가지 컬러 성분이 사용되는데, 즉, 픽처는 3개의 샘플 어레이로 표현되거나 이를 포함할 수 있다. RBG 포맷 또는 컬러 공간에서는, 픽처가 대응하는 레드, 그린 및 블루 샘플 어레이를 포함한다. 그러나, 비디오 코딩에서, 각 샘플은 일반적으로 휘도/색차 포맷 또는 컬러 공간으로 표현되는데, 예컨대, YCbCr 포맷의 픽처는 Y(때론 L로 표시됨)로 표시되는 휘도 성분과 Cb 및 Cr로 표시되는 2개의 색차 성분을 포함한다. 휘도(luminance)(간단히 루마(luma)) 성분 Y는 휘도 또는 그레이 레벨 세기(예컨대, 이들 둘은 그레이 스케일 픽처에서 동일함)를 나타내고, 2개의 색차(chrominance)(간단히 크로마(chroma)) 성분 Cb 및 Cr은 색차 또는 컬러 정보 성분을 나타낸다. 따라서, YCbCr 포맷의 픽처는 쉬도 샘플 값(Y)의 휘도 샘플 어레이와, 색차 값(Cb 및 Cr)의 2개의 색차 샘플 어레이를 포함한다. RGB 포맷의 픽처가 YCbCr 포맷의 픽처로 전환 또는 변환될 수도 있고, 그 반대로 변환될 수도 있다. 이 프로세스를 컬러 전환 또는 변환이라고도 한다. 픽처가 단색(monochrome)이면, 그 픽처는 휘도 샘플 어레이만 포함할 수 있다.
픽처 소스(16)(예컨대, 비디오 소스(16)는, 예컨대 픽처를 캡처하도록 구성된 카메라, 이전에 캡처되었거나 생성된 픽처를 포함하거나 저장하는 픽처 메모리와 같은 메모리, 및/또는 픽처를 획득 또는 수신하기 위한 임의의 유형의 (내부 또는 외부) 인터페이스일 수 있다. 카메라는, 예컨대 로컬 카메라 또는 소스 장치에 통합된 통합형 카메라일 수 있고, 메모리는 로컬 메모리 또는 소스 장치에 통합된 통합형 메모리일 수 있다. 인터페이스는, 예컨대 외부 비디오 소스로부터 픽처를 수신하기 위한 외부 인터페이스일 수 있다. 외부 비디오 소스는, 예를 들면, 카메라, 외부 메모리 또는 외부 픽처 생성 장치와 같은 외부 픽처 캡처 장치이다. 외부 픽처 생성 장치는, 예를 들면 외부 컴퓨터 그래픽 처리 장치, 컴퓨터 또는 서버이다. 인터페이스는, 예를 들어 유선 또는 무선 인터페이스 또는 광학 인터페이스와 같이, 임의의 개인 소유 또는 표준화된 인터페이스 프로토콜에 따른 임의의 유형의 인터페이스일 수 있다. 픽처 데이터를 획득하기 위한 인터페이스(17)는 통신 인터페이스(22)와 동일한 인터페이스일 수도 있고, 통신 인터페이스(22)의 일부일 수도 있다.
전처리 유닛(18) 및 전처리 유닛(18)에 의해 수행된 처리와 달리, 픽처(17) 또는 픽처 데이터(17)(예컨대, 비디오 데이터(16))는 원본 픽처(17) 또는 원본 픽처 데이터(17)라고도 한다.
전처리 유닛(18)은 (원본) 픽처 데이터(17)를 수신하고, 픽처 데이터(17)에 대해 전처리를 수행하여 전처리된 픽처(19) 또는 전처리된 픽처 데이터(19)를 획득한다. 예를 들어, 전처리 유닛(18)에 의해 수행되는 전처리는 트리밍, 컬러 포맷 변환(예컨대, RGB로부터 YCbCr로), 색 보정, 또는 잡음 저감을 포함할 수 있다. 전처리 유닛(18)은 선택적인 구성요소일 수 있음을 이해할 수 있을 것이다.
인코더(20)(예컨대, 비디오 인코더(20))는 전처리된 픽처 데이터(19)를 수신하고 인코딩된 픽처 데이터(21)를 제공하도록 구성된다(상세한 내용은, 예를 들어, 도 2 또는 도 4에 기초하여 아래에서 더 설명한다). 한 예에서, 인코더(20)는 픽처를 인코딩하도록 구성될 수 있다.
소스 장치(12)의 통신 인터페이스(22)는 인코딩된 픽처 데이터(21)를 수신하고, 인코딩된 픽처 데이터(21)를 저장 또는 직접 재구성을 위해 다른 장치, 예를 들어 목적지 장치(14) 또는 임의의 다른 장치로 전송하도록 구성될 수 있으며, 또는 인코딩된 데이터(13)를 상응하게 저장하고/저장하거나 인코딩된 데이터(13)를 다른 장치로 전송하기 전에 인코딩된 픽처 데이터(21)를 처리하도록 구성될 수 있다. 다른 장치는, 예컨대 목적지 장치(14) 또는 디코딩 또는 저장에 사용되는 임의의 다른 장치이다.
목적지 장치(14)는 디코더(30)(예컨대, 비디오 디코더(30)를 포함하고, 이에 더하여 또는 선택적으로, 통신 인터페이스 또는 통신 유닛(28), 전처리 유닛(32), 및 디스플레이 장치(34)를 포함할 수 있다.
예를 들어, 목적지 장치(14)의 통신 인터페이스(28)는 인코딩된 픽처 데이터(21) 또는 인코딩된 데이터(13)를 소스 장치(12) 또는 임의의 다른 소스로부터 직접 수신하도록 구성된다. 임의의 다른 소스는, 예를 들면, 저장 장치이고, 저장 장치는, 예컨대 인코딩된 픽처 데이터 저장 장치이다.
통신 인터페이스(22) 및 통신 인터페이스(28)는 소스 장치(12)와 목적지 장치(14) 사이의 직접 통신 링크를 통해 또는 임의의 유형의 네트워크를 통해 인코딩된 픽처 데이터(21) 또는 인코딩된 데이터(13)를 송신 또는 수신하도록 구성될 수 있다. 직접 통신 링크는, 예를 들면, 직접 유신 또는 무선 접속이고, 임의의 유형의 네트워크는, 예를 들면, 유선 또는 무선 네트워크 또는 이들의 임의의 조합, 또는 임의의 유형의 사설 네트워크 또는 공용 네트워크 또는 이들의 임의의 조합이다.
통신 인터페이스(22)는, 예를 들면, 인코딩된 픽처 데이터(21)를, 통신 링크 또는 통신 네트워크를 통해 전송하기 위한 패킷과 같이, 적절한 포맷으로 캡슐화하도록 구성될 수 있다.
통신 인터페이스(22)의 대응하는 부분으로서의 통신 인터페이스(28)는 인코딩된 데이터(13)를 역캡슐화하여(decapsulate) 인코딩된 픽처 데이터(21) 등을 획득하도록 구성될 수 있다.
통신 인터페이스(22) 및 통신 인터페이스(28)는 모두, 예를 들어 도 1의 인코딩된 픽처 데이터(13)에 사용되는 소스 장치(12)로부터 목적지 장치(14)를 가리키는 화살표와 같은 단방향 통신 인터페이스로 구성될 수 있고, 또는 양방향 통신 인터페이스로 구성될 수도 있으며, 예를 들어 접속 확립 메시지를 송수신하고, 인코딩된 픽처 데이터 전송과 같은 데이터 전송 및/또는 통신과 관련된 임의의 다른 정보를 확인 및 교환하도록 구성될 수 있다.
디코더(30)는, 인코딩된 픽처 데이터(21)를 수신하고, 디코딩된 픽처 데이터(31) 또는 디코딩된 픽처(31)를 제공하도록 구성된다(세부 사항은 예컨대 도 3 또는 도 5에 기초하여 더 후술한다).
목적지 장치(14)의 후처리기(32)는 디코딩된 픽처(31)와 같은 디코딩된 픽처 데이터(31)(재구성된 픽처 데이터라고도 함)를 후처리하여, 후처리된 픽처(33)와 같은 후처리된 픽처(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), 또는 임의의 다른 유형의 디스플레이를 포함할 수 있다.
도 1은 소스 장치(12) 및 목적지 장치(14)를 별개의 장치로 도시하고 있지만, 장치 실시예들은 소스 장치(12) 및 목적지 장치(14) 모두 또는 소스 장치(12)의 기능과 목적지 장치(14)의 기능 모두를, 즉, 소스 장치(12) 또는 대응하는 기능과 목적지 장치(14) 또는 대응하는 기능을 포함할 수도 있다. 이러한 실시예에서, 소스 장치(12) 또는 대응하는 기능과 목적지 장치(14) 또는 대응하는 기능은 동일한 하드웨어 및/또는 소프트웨어, 별도의 하드웨어 및/또는 소프트웨어, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다.
설명에 기초하여, 당업자들은 상이한 유닛들의 기능들 또는 도 1에 도시된 소스 장치(12) 및/또는 목적지 장치(14)의 기능들/기능의 존재 및 (정확한) 분할이 실제 장치 및 적용에 따라 달라질 수 있음을 쉽게 이해할 것이다.
인코더(20)(예컨대, 비디오 인코더(20) 및 디코더(30)(예컨대, 비디오 디코더(30))는 각각 다양한 적절한 회로들, 예컨대 마이크로프로세서, 디지털 신호 프로세서(digital signal processor, DSP), 주문형 집적 회로(application-specific integrated circuit, ASIC), 필드 프로그래머블 게이트 어레이(field-programmable gate array, FPGA), 별개의 로직, 하드웨어 또는 이들의 임의의 조합 중 어느 하나로 구현될 수 있다. 이 기술이 부분적으로 소프트웨어로 구현될 경우, 장치는 소프트웨어 명령어를 적절한 비일시적 컴퓨터 판독가능 저장 매체에 저장하고, 본 개시의 기술을 수행하기 위해 하나 이상의 프로세서를 사용하여 하드웨어에서 명령어를 실행할 수 있다. (하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함하는) 전술한 내용은 하나 이상의 프로세서로 간주될 수 있다. 비디오 인코더(20) 및 비디오 디코더(30)는 각각 하나 이상의 인코더 또는 디코더에 포함될 수 있으며, 인코더나 디코더 중 어느 하나는 해당 장치에서 결합된 인코더/디코더(코덱)의 일부로서 통합될 수 있다.
소스 장치(12)는 비디오 인코딩 디바이스 또는 비디오 인코딩 장치로 지칭될 수 있다. 목적지 장치(14)는 비디오 디코딩 디바이스 또는 비디오 디코딩 장치로 지칭될 수 있다. 소스 장치(12) 및 목적지 장치(14)는 각각 비디오 인코딩 장치 또는 비디오 디코딩 장치의 예일 수 있다.
소스 장치(12) 및 목적지 장치(14)는 각각, 임의의 유형의 핸드헬드 또는 고정 장치(예컨대, 노트북 또는 랩톱 컴퓨터, 모바일 폰, 스마트 폰, 태블릿 또는 태블릿 컴퓨터, 비디오 카메라, 데스크톱 컴퓨터, 셋톱 박스, 텔레비전, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 전송 장치(예컨대, 콘텐츠 서비스 서버 또는 콘텐츠 배포 서버), 브로드캐스트 수신기 장치 또는 브로드캐스트 송신기 장치)를 포함하는 다양한 장치들 중 어느 하나를 포함하며, 임의의 유형의 운영 체제를 사용하거나 또는 사용하지 않을 수 있다.
일부 경우에, 소스 장치(12) 및 목적지 장치(14)는 무선 통신 장비를 갖출 수 있다. 따라서, 소스 장치(12) 및 목적지 장치(14)는 무선 통신 장치일 수 있다.
일부 경우에, 도 1에 도시된 비디오 인코딩 시스템(10)은 단지 일례일 뿐이고, 본 출원의 기술은, 인코딩 장치와 디코딩 장치 사이에 어떠한 데이터 통신을 포함할 필요가 없는 비디오 코딩 설정(예컨대, 비디오 인코딩 또는 비디오 디코딩)에 적용될 수도 있다. 다른 예에서, 데이터는 로컬 메모리로부터 가져올 수도 있고, 네트워크 등을 통해 스트리밍될 수도 있다. 비디오 인코딩 장치는 데이터를 인코딩하고, 이를 메모리에 저장할 수 있으며, 그리고/또는 비디오 디코딩 장치는 메모리로부터 데이터를 가져와서 이를 디코딩할 수 있다. 일부 예에서, 인코딩 및 디코딩은, 서로 통신하지 않고 데이터를 메모리로 인코딩만 하고/하거나 메모리로부터 데이터를 가져와서 이를 디코딩하는 장치에 의해 수행된다.
비디오 인코더(20)를 참조하여 설명한 각각의 전술한 예에서, 비디오 디코더(30)는 역 프로세스를 수행하도록 구성될 수 있다는 것을 이해해야 한다. 시그널링 신택스 요소의 경우, 비디오 디코더(30)는 신택스 요소를 수신 및 파싱하고, 그에 따라 관련 비디오 데이터를 디코딩하도록 구성될 수 있다. 일부 예에서, 비디오 인코더(20)는 ...를 정의하는 하나 이상의 신택스 요소를 인코딩된 비디오 비트스트림으로 엔트로피 인코딩할 수 있다. 이런 예에서, 비디오 디코더(30)는 이러한 신택스 요소를 파싱하고 그에 따라 관련 비디오 데이터를 디코딩할 수 있다.
인코더 및 인코딩 방법
도 2는 본 출원(개시)에서의 기술을 구현하도록 구성된 비디오 인코더(20)의 한 예의 개략적/개념적 블록도이다. 도 2에서, 비디오 인코더(20)는 잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 역 양자화 유닛(210), 역 변환 처리 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터 유닛(220), 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230), 예측 처리 유닛(260) 및 엔트로피 인코딩 유닛(270)을 포함한다. 예측 처리 유닛(260)은 인터 예측 유닛(244), 인트라 예측 유닛(254), 및 모드 선택 유닛(262)을 포함할 수 있다. 인터 예측 유닛(244)은 모션 추정 유닛 및 모션 보상 유닛(도면에 도시되어 있지 않음)을 포함할 수 있다. 도 2에 도시되어 있는 비디오 인코더(20)는 하이브리드 비디오 인코더 또는 하이브리드 비디오 코덱 기반 비디오 인코더라고도 한다.
예를 들어, 잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 예측 처리 유닛(260) 및 엔트로피 인코딩 유닛(270)은 인코더(20)의 순방향 신호 경로를 형성하고, 역 양자화 유닛(210), 역변환 처리 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터(220), 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230), 예측 처리 유닛(260) 등은 인코더의 역방향 신호 경로를 형성한다. 인코더의 역방향 신호 경로는 디코더(도 3의 디코더 (30) 참조)의 신호 경로에 대응한다
인코더(20)는 입력(202) 등을 사용하여 픽처(201) 또는 픽처(201)의 블록(203), 예컨대 비디오 또는 비디오 시퀀스를 형성하는 일련의 픽처 내의 픽처를 수신한다. 픽처 블록(203)은 또한 현재 픽처 블록 또는 인코딩될 픽처 블록이라고도 하며, 픽처(201)는 현재 픽처 또는 인코딩될 픽처라고도 한다(특히 현재 픽처가 비디오 코딩 중의 다른 픽처와 구별될 때, 예컨대, 동일한 비디오 시퀀스 내의 다른 픽처들도 현재 픽처의 비디오 시퀀스 내의 이전에 인코딩 및/또는 디코딩된 픽처들을 포함한다).
분할
인코더(20)의 실시예는, 픽처(201)를 블록(203)과 같은 복수의 중복되지 않는 블록들로 분할하도록 구성된 분할 유닛(도 2에 도시되어 있지 않음)을 포함한다. 분할 유닛은 비디오 시퀀스의 모든 픽처 및 블록 크기를 정의하는 대응하는 래스터에 대해 동일한 블록 크기를 사용하도록 구성될 수도 있고, 또는 픽처들, 서브세트들 또는 픽처 그룹들 사이에서 블록 크기를 변경하고, 각 픽처를 대응하는 블록으로 분할하도록 구성될 수도 있다.
한 예에서, 비디오 인코더(20)의 예측 처리 유닛(260)은 전술한 분할 기술들의 임의의 조합을 수행하도록 구성될 수 있다.
예를 들어, 블록(203)의 크기가 픽처(201)의 크기보다 작지만, 픽처(201)에서, 블록(203)은 또한 휘도 값(샘플 값)을 갖는 샘플들의 2차원 어레이 또는 행렬이거나 또는 그렇게 간주될 수도 있다. 즉, 블록(203)은, 사용되는 컬러 포맷에 따라, 예컨대, 하나의 샘플 어레이(예를 들면, 단색 픽처(201)의 경우, 휘도 어레이), 3개의 샘플 어레이(예를 들면, 컬러 픽처의 경우, 하나의 휘도 어레이와 2개의 색차 어레이), 또는 임의의 다른 수 및/또는 유형의 어레이를 포함할 수 있다. 블록(203)의 수평 및 수직 방향(또는 축)의 샘플의 양은 블록(203)의 크기를 정의한다.
도 2에 도시된 인코더(20)는 픽처(201)를 블록 단위로 인코딩하도록, 예컨대 각 블록(203)에 대한 인코딩 및 예측을 수행하도록 구성된다.
잔차 계산
잔차 계산 유닛(204)은 픽처 블록(203) 및 예측 블록(265)(예측 블록(265)에 대한 보다 자세한 사항은 후술한다)에 기초하여 잔차 블록(205)을 계산하도록 구성되는데, 예를 들면, 샘플 단위(픽셀 단위)로 픽처 블록(203)의 샘플 값에서 예측 블록(265)의 샘플 값을 감산하여 샘플 도메인에서 잔차 블록(205)을 획득하도록 구성된다.
변환
변환 처리 유닛(206)은 잔차 블록(205)의 샘플 값에 이산 코사인 변환(discrete cosine transform, DCT) 또는 이산 사인 변환(discrete sine transform, DST)과 같은 변환을 적용하여 변환 도메인에서 변환 계수(207)를 구하도록 구성된다. 변환 계수(207)는 잔차 변환 계수라고도 하며, 변환 도메인에서의 잔차 블록(205)을 나타낸다.
변환 처리 유닛(206)은 DCT/DST의 정수 근사, 예컨대, HEVC/H.265에서 지정된 변환을 적용하도록 구성될 수 있다. 이 정수 근사는 일반적으로 직교 DCT 변환과 비교하여 팩터(factor)에 비례하여 조정된다. 순방향 변환 및 역방향 변환을 통해 얻은 잔차 블록의 기준(norm)을 유지하기 위해, 추가적인 스케일 팩터(scale factor)가 변환 프로세스의 일부로서 적용된다. 스케일 팩터는 일반적으로 일부 제약 조건에 기초하여 선택되는데, 그 예로 2의 멱, 변환 계수의 비트 깊이, 또는 정확도와 시프트 동작에 사용되는 구현 코스트가 있다. 예를 들어, 역 변환 처리 유닛(212)을 사용하여 디코더(30) 측에서 역변환하도록(이에 상응하여 역변환 처리 유닛(212) 등을 사용하여 인코더(20) 측에서 역변환하도록) 특정 스케일 팩터가 지정되고, 이에 상응하여 변환 처리 유닛(206)을 사용하여 인코더(20) 측에서 순방향 변환을 하도록 대응하는 스케일 팩터가 지정될 수 있다.
양자화
양자화 유닛(208)은 스케일 양자화, 벡터 양자화 등을 적용함으로써 변환 계수(207)를 양자화하여 양자화된 변환 계수(209)를 구하도록 구성된다. 양자화된 변환 계수(209)는 양자화된 잔차 계수(209)라고도 한다. 양자화 프로세서는 변환 계수들(207) 중 일부 또는 전부와 관련된 비트 깊이를 줄일 수 있다. 예를 들면, n-비트 변환 계수가 양자화 동안에 m-비트 변환 계수로 내림(round down)될 수 있으며, 여기서 n은 m보다 더 크다. 양자화 정도는 양자화 파라미터(quantization parameter, QP)를 조정하여 수정될 수 있다. 예를 들어, 스케일 양자화의 경우, 더 정교하거나(finer) 또는 더 성긴(coarser) 양자화를 위해 상이한 스케일이 적용될 수도 있다. 보다 작은 양자화 스텝은 보다 정교한 양자화에 대응하고, 보다 큰 양자화 스텝은 보다 성긴 양자화에 대응한다. 양자화 파라미터(quantization parameter, QP)를 사용하여 적절한 양자화 스텝을 나타낼 수 있다. 예를 들면, 양자화 파라미터는 미리 정의된 적절한 양자화 스텝들의 집합의 인덱스일 수 있다. 예를 들면, 보다 작은 양자화 파라미터는 보다 정교한 양자화(보다 작은 양자화 스텝)에 대응하고, 보다 큰 양자화 파라미터는 보다 성긴 양자화(보다 큰 양자화 스텝)에 대응할 수 있으며, 그 역도 마찬가지다. 양자화는 양자화 스텝에 의한 분할 및 대응하는 양자화 또는 역 양자화 유닛(210)에 의해 수행되는 역 양자화 등을 포함할 수도 있고, 양자화 스텝에 의한 곱셈을 포함할 수도 있다. HEVC와 같은 일부 표준에 따른 실시예에서, 양자화 파라미터는 양자화 스텝을 결정하는데 사용될 수 있다. 일반적으로, 양자화 스텝은 나눗셈을 포함하는 수식의 고정 소수점 근사(fixed point approximation)를 통해 양자화 파라미터를 기반으로 하여 계산될 수 있다. 잔차 블록일 수 있고, 양자화 스텝 및 양자화 파라미터에 사용된 수식의 고정 소수점 근사에 사용되는 스케일로 인해 수정될 수 있는 기준(norm)을 복원하기 위해 양자화 및 역 양자화에 추가적인 스케일 팩터가 도입될 수 있다. 한 구현예에서, 역 변환의 스케일은 역 양자화의 스케일과 결합될 수 있다. 또는, 주문형 양자화 테이블이 사용되어, 인코더로부터 디코더로, 예를 들어 비트 스트림으로 시그널링될 수 있다. 양자화는 손실이 있는 동작이며, 양자화 스텝이 클수록 손실이 커진다.
역 양자화 유닛(210)은, 양자화된 계수에 양자화 유닛(208)의 역 양자화를 적용하여 역 양자화된 계수(211)를 획득하도록 구성되는데, 예컨대, 양자화 유닛(208)과 동일한 양자화 스텝에 기초하여 또는 이를 사용하여 양자화 유닛(208)에 의해 적용된 양자화 방식의 역 양자화 방식을 적용하도록 구성된다. 역 양자화된 계수(211)는 역 양자화된 잔차 계수(211)라고도 하며, 양자화로 인한 손실이 일반적으로 변환 계수와 상이하긴 하지만, 변환 계수(207)에 대응한다.
역 변환 처리 유닛(212)는 변환 처리 유닛(206)에 의해 적용된 변환의 역 변환, 예를 들면, 역 이산 코사인 변환(discrete cosine transform, DCT) 또는 역 이산 사인 변환(discrete sine transform, DST)을 을 적용하여 동일 도메인에서 역 변환 블록(213)을 획득하도록 구성된다. 역 변환 블록(213)은 역 변환 역 양자화된 블록(213) 또는 역 변환 잔차 블록(213)이라고도 한다.
재구성 유닛(214)(예컨대, 가산기(214))는, 재구성된 잔차 블록(213)의 샘플 값과 예측 블록(265)의 샘플 값을 더함으로써, 역 변환 블록(213)(즉, 재구성된 잔차 블록(213))을 예측 블록(265)에 더하여 샘플 도메인에서 재구성된 블록(215)을 획득하도록 구성된다.
선택적으로, 라인 버퍼(216)와 같은 버퍼 유닛(216)(또는 간단히 "버퍼"(216))은 인트라 예측 등을 위해 재구성된 블록(215) 및 대응하는 샘플 값을 버퍼링 또는 저장하도록 구성된다. 다른 실시예에서, 인코더는 인트라 예측과 같은 임의의 유형의 추정 및/또는 예측을 위해 버퍼 유닛(216)에 저장되는 필터링되지 않은 재구성된 블록 및/또는 대응하는 샘플 값을 사용하도록 구성될 수 있다.
예를 들어, 인코더(20)의 실시예는, 버퍼 유닛(216)이 인트라 예측을 위해 재구성된 블록(215)을 저장하도록 구성될 뿐만 아니라, 루프 필터 유닛(220)의 필터링된 블록(221)을 저장하도록(도 2에는 도시되어 있지 않음) 구성되고, 그리고/또는 버퍼 유닛(216) 및 디코딩된 픽처 버퍼 유닛(230)이 하나의 버퍼를 형성하도록, 구성될 수 있다. 다른 실시예는, 필터링된 블록(221) 및/또는 디코딩된 픽처 버퍼(230)로부터의 블록 또는 샘플(도 2에 도시되어 있지 않음)을 인트라 예측(254)에 대한 입력 또는 기준으로 사용하도록 사용될 수 있다.
루프 필터 유닛(220)(또는 간단히 "루프 필터"(220))은, 샘플 변환을 원활하게 수행하거나 또는 비디오 품질을 향상시키기 위해, 재구성된 블록(215)에 대해 필터링을 수행하여 필터링된 블록(221)을 획득하도록 구성된다. 루프 필터 유닛(220)은 하나 이상의 루프 필터, 예컨대, 디블로킹 필터, 샘플 적응 오프셋(sample-adaptive offset, SAO) 필터, 또는 양방향 필터, 적응 루프 필터(adaptive loop filter, ALF), 샤프닝 또는 스무딩 필터(sharpening or smoothing filter) 또는 협업 필터(cooperative filter)와 같은 다른 필터를 나타내기 위한 것이다. 루프 필터 유닛(220)은 도 2에 인루프 필터(in-loop filter)로서 도시되어 있지만, 루프 필터 유닛(220)은 다른 구성에서는 포스트 루프 필터(post-loop filter)로서 구현될 수도 있다. 필터링된 블록(221)은 필터링된 재구성된 블록(221)이라고도 한다. 디코딩된 픽처 버퍼(230)는, 루프 필터 유닛(220)이 재구성된 코딩 블록에 대해 필터링 동작을 수행한 후에 재구성된 코딩 블록을 저장할 수 있다.
인코더(20)의 실시예(이에 상응하여 루프 필터 유닛(220))는 루프 필터 파라미터(예컨대, 샘플 적응 오프셋 정보)를 출력하는데 사용될 수 있는데, 예를 들면, 루프 필터 파라미터를 직접 출력하거나 또는 엔트로피 인코딩 유닛(270) 또는 임의의 다른 엔트로피 인코딩 유닛이 엔트로피 인코딩을 수행한 후에 루프 필터 파라미터를 출력하여, 디코더(30)가 디코딩을 위해 동일한 루프 필터 파라미터를 수신하고 적용할 수 있도록 한다.
디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230)는 비디오 데이터를 인코딩하기 위해 비디오 인코더(20)에 대한 참조 픽처 데이터를 저장하는 참조 픽처 메모리일 수 있다. DPB(230)는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM)(동기 DRAM(synchronous DRAM, SDRAM), 자기 저항 RAM(magnetoresistive RAM, MRAM), 또는 저항성 RAM(resistive RAM, RRAM)을 포함함) 또는 다른 유형의 메모리와 같은 복수의 메모리 중 어느 하나일 수 있다. DPB(230) 및 버퍼(216)는 동일한 메모리 또는 별도의 메모리에 의해 제공될 수 있다. 일례로, 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230)는 필터링된 블록(221)을 저장하도록 구성된다. 디코딩된 픽처 버퍼(230)는 또한, 동일한 현재 픽처 또는 이전에 재구성된 픽처들과 같은 다른 픽처들의 이전에 재구성되고 필터링된 블록(221)과 같이 다른 이전에 필터링된 블록을 저장하도록 구성될 수 있으며, 완전한 이전에 재구성된, 즉 디코딩된 픽처(및 대응하는 참조 블록 및 대응하는 샘플) 및/또는 내부 예측 등을 위해 부분적으로 재구성된 현재 픽처(및 대응하는 참조 블록 및 대응하는 샘플)를 제공할 수 있다. 일례에서, 재구성된 블록(215)이 인루프 필터링 없이 재구성되면, 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230)가 재구성된 블록(215)을 저장하도록 구성된다.
예측 처리 유닛(260)은 블록 예측 처리 유닛(260)이라고도 하며, 블록(203)(현재 픽처(201)의 현재 블록(203)) 및 재구성된 픽처 데이터, 예컨대, 버퍼(216) 내의 동일한 (현재) 픽처로부터의 참조 샘플 및/또는 디코딩된 픽처 버퍼(230) 내의 하나 이상의 이전의 디코딩된 픽처로부터의 참조 픽처 데이터(231)를 수신하거나 획득하고, 예측을 위해 이러한 데이터를 처리하도록, 즉 인터 예측 블록(245) 또는 인트라 예측 블록(255)일 수 있는 예측 블록(265)을 제공하도록 구성된다.
모드 선택 유닛(262)은, 잔차(205)를 계산하고 재구성된 블록(215)을 재구성하기 위해, 예측 모드(예컨대 인트라 또는 인터 예측 모드) 및/또는 대응하는 예측 블록(245 또는 255)을 예측 블록(265)으로 선택하도록 구성될 수 있다.
모드 선택 유닛(262)의 실시예는 (예컨대, 예측 처리 유닛(260)에 의해 지원되는 예측 모드로부터)예측 모드를 선택하는데 사용될 수 있다. 예측 모드는 최상의 매칭 또는 최소의 잔차(최소 잔차는 전송 또는 저장에서 보다 양호한 압축을 의미한다)를 제공하거나, 최소 시그널링 오버헤드(최소 시그널링 오버헤드는 전송 또는 저장에서 보다 양호한 압축을 의미한다)를 제공하거나, 또는 이들 둘을 고려하거나 조화시킨다. 모드 선택 유닛(262)은 레이트 왜곡 최적화(rate distortion optimization, RDO)에 기초하여 예측 모드를 결정하도록, 즉, 최소 레이트 왜곡 최적화를 제공하는 예측 모드를 선택하거나, 또는 관련된 레이트 왜곡이 적어도 예측 모드 선택 기준을 만족하는 예측 모드를 선택하도록 구성될 수 있다.
인코더(20)의 한 예에 의해 수행된 (예컨대, 모드 선택 유닛(262)을 이용한) 모드 선택 및 (예컨대, 예측 처리 유닛(260)을 이용한) 예측 처리는 이하에 상세히 설명한다.
전술한 바와 같이, 인코더(20)는 (미리 결정된) 예측 모드 세트로부터 최상의 또는 최적의 예측 모드를 결정하거나 선택하도록 구성된다. 예측 모드 세트는, 예를 들어 인트라 예측 모드 및/또는 인터 예측 모드를 포함할 수 있다.
인트라 예측 모드 세트는 35개의 서로 다른 인트라 예측 모드, 예를 들면 DC(또는 평균) 모드 및 평면 모드와 같은 비 방향 모드, 또는 H.265에서 정의된 방향 모드를 포함할 수도 있고, 67개의 다른 인트라 예측 모드, 예컨대 DC(또는 평균) 모드 및 평면 모드 또는 H.266에 정의된 개발 방향 모드와 같은 비 방향 모드를 포함할 수 있다.
(가능한) 인터 예측 모드 세트는 이용 가능한 참조 픽처(예컨대, DBP(230)에 저장된 디코딩된 픽처의 적어도 일부)에 의존하고, 다른 인터 예측 파라미터는, 예컨대, 전체 참조 픽처가 사용되는지 아니면 참조 픽처의 일부만 사용되는지 여부, 예를 들면, 현재 블록의 영역을 둘러싼 검색 윈도우 영역이 최상의 매칭된 참조 블록으로 검색되는지에 의존하고/또는, 1/2 샘플 및/또는 1/4 샘플 보간과 같은 샘플 보간이 적용되는지 여부에 의존한다.
전술한 예측 모드에 더하여, 스킵 모드 및/또는 다이렉트 모드가 또한 적용될 수 있다.
예측 처리 유닛(260)은 또한, 예를 들어 쿼드트리(quad-tree, QT) 분할, 바이너리트리(binary-tree, BT) 분할, 트리플트리 또는 테너리트리(triple-tree or ternary-tree, TT) 분할, 또는 이들의 임의의 조합을 반복적으로 사용하여 블록(203)을 작은 블록 파티션 또는 서브블록으로 분할하고, 각각의 블록 파티션 또는 서브블록에 대해 예측 등을 수행하도록 구성될 수 있다. 모드 선택은 분할된 블록(203)의 트리 구조를 선택하는 것과 각각의 블록 파티션 또는 서브블록에 적용되는 예측 모드를 선택하는 것을 포함한다.
인터 예측 유닛(244)은 모션 추정(motion estimation, ME) 유닛(도 2에 도시되어 있지 않음) 및 모션 보상(motion compensation, MC) 유닛(도 2에 도시되어 있지 않음)을 포함할 수 있다. 모션 추정 유닛은 픽처 블록(203)(현재 픽처(201)의 현재 픽처 블록(203)) 및 디코딩된 픽처(31) 또는 적어도 하나 이상의 이전의 재구성된 블록, 예컨대 이전의 디코딩된 픽처(31)와 다른 하나 이상의 다른 재구성된 블록을 수신 또는 획득하여 모션 추정을 수행하도록 구성된다. 예를 들어, 비디오 시퀀스는 현재의 픽처 및 이전의 디코딩된 픽처(31)를 포함할 수 있다. 즉, 현재 픽처 및 이전의 디코딩된 픽처(31)는 비디오 시퀀스를 형성하거나 또는 픽처 시퀀스를 형성하는 일련의 픽처의 일부일 수 있다.
예를 들어, 인코더(20)는, 동일 픽처의 복수의 참조 블록들 또는 복수의 다른 픽처들 내의 상이한 픽처들로부터 참조 블록을 선택하고, 참조 픽처(또는 참조 픽처 인덱스) 및/또는 참조 블록의 위치(X-Y 좌표)와 현재 블록의 위치 사이의 오프셋(공간 오프셋)을 인터 예측 파라미터로서 모션 추정 유닛(도 2에 도시되어 있지 않음)에 제공하도록 구성될 수 있다. 이 오프셋은 모션 벡터(motion vector, MV)라고도 한다.
모션 보상 유닛은, 예를 들어, 인터 예측 파라미터를 수신하고, 인터 예측 파라미터에 기초하여 또는 이를 사용하여 인터 예측을 수행해서 인터 예측 블록(245)을 획득하도록 구성된다. 모션 보상 유닛(도 2에 도시되어 있지 않음)에 의해 수행된 모션 보상은 모션 추정(가능하게는 서브샘플 정밀도에 대해 보간을 수행함)을 통해 결정된 모션/블록 벡터에 기초하여 예측 블록을 페치 또는 생성하는 것을 포함할 수 있다. 보간 필터링 동안, 알려진 샘플들로부터 추가 샘플이 생성될 수 있고, 이에 따라 픽처 블록을 인코딩하는데 사용될 수 있는 후보 예측 블록 양이 잠재적으로 증가할 수 있다. 현재 픽처 블록의 PU에 사용되는 모션 벡터가 수신되면, 모션 보상 유닛(246)은 참조 픽처 리스트에서 모션 벡터가 가리키는 예측 블록을 찾을 수 있다. 모션 보상 유닛(246)은 또한 블록 및 비디오 슬라이스와 연관된 신택스 요소를 더 생성할 수 있으며, 따라서 비디오 디코더(30)는 비디오 슬라이스의 픽처 블록을 디코딩할 때 신택스 요소를 사용한다.
인트라 예측 유닛(254)은, 예컨대 동일 픽처의 픽처 블록(203)(현재 픽처 블록) 및 재구성된 이웃 블록과 같은 하나 이상의 이전의 재구성된 블록을 획득하여 인트라 추정을 수행하도록 구성된다. 예를 들어, 인코더(20)는 복수의 (미리 결정된) 인트라 예측 모드들 중에서 인트라 예측 모드를 선택하도록 구성될 수 있다.
인코더(20)의 실시예는 최적화 기준에 기초하여, 예를 들면 최소 잔차(예컨대, 현재 픽처 블록(203)과 가장 유사한 예측 블록(255)을 제공하는 인트라 예측) 또는 최소 레이트 왜곡에 기초하여 인트라 예측 모드를 선택하도록 구성될 수 있다.
인트라 예측 유닛(254)은 또한, 선택된 인트라 예측 모드의 인트라 예측 파라미터에 기초하여 인트라 예측 블록(255)을 결정하도록 구성된다. 어쨌든, 블록에 사용되는 인트라 예측 모드를 선택한 후, 인트라 예측 유닛(254)은 또한 엔트로피 인코딩 유닛(270)에게 인트라 예측 파라미터를 제공하도록, 즉 블록에 사용된 선택된 인트라 예측 모드를 나타내는 정보를 제공하도록 구성된다. 한 예에서, 인트라 예측 유닛(254)은 다음 인트라 예측 기술들의 임의의 조합을 수행하도록 구성될 수 있다.
엔트로피 인코딩 유닛(270)은, 엔트로피 인코딩 알고리즘 또는 방식(예컨대, 가변 길이 코딩(variable length coding, VLC) 방식, 컨텍스트 적응 VLC(context adaptive VLC, CAVLC) 방식, 산술 코딩 방식, 컨텍스트 적응 이진 산술 코딩(context adaptive binary arithmetic coding, CABAC) 방식, 신택스 기반 컨텍스트 적응 이진 산술 코딩(syntax-based context-adaptive binary arithmetic coding, SBAC) 방식, 확률 간격 분할 엔트로피(probability interval partitioning entropy, PIPE) 코딩 방식, 또는 다른 엔트로피 인코딩 방법 또는 기술을 양자화된 잔차 계수(209), 인터 예측 파라미터, 인트라 예측 파라미터, 및/또는 루프 필터 파라미터 중 하나 이상에 적용하여(또는 어느 것에도 적용하지 않고), 출력(272)을 사용하여 출력될 수 있는 인코딩된 픽처 데이터(21)를, 예컨대 인코딩된 비트스트림의 형태로, 획득하도록 구성된다. 인코딩된 비트스트림은 비디오 디코더(30)로 전송될 수도 있고, 또는 비디오 디코더(30)에 의한 추후 전송 또는 검색을 위해 보관될 수도 있다. 엔트로피 인코딩 유닛(270)은 또한 인코딩되고 있는 현재 비디오 슬라이스의 또 다른 신택스 요소에 대해 엔트로피 인코딩을 수행하도록 구성될 수 있다.
비디오 인코더(20)의 또 다른 구조적 변형은 비디오 스트림을 인코딩하도록 구성될 수 있다. 예를 들어, 비 전송 기반 인코더(20)가 일부 블록 또는 프레임에 대해 변환 처리 유닛(206) 없이 잔차 신호를 직접 양자화할 수 있다. 또 다른 구현예에서, 인코더(20)는 하나의 유닛으로 결합되는 양자화 유닛(208) 및 역 양자화 유닛(210)을 포함할 수 있다.
도 3은 본 출원의 기술들을 구현하도록 구성된 비디오 디코더(30)의 일례를 보여준다. 비디오 디코더(30)는 인코더(20) 등에 의해 인코딩된 픽처 데이터(예컨대, 인코딩된 비트스트림)(21)를 수신하여 디코딩 픽처(31)를 획득하도록 구성된다. 디코딩 프로세스에서, 비디오 디코더(30)는 비디오 인코더(20)로부터 비디오 데이터, 예컨대, 인코딩된 비디오 슬라이스의 픽처 블록 및 관련 신택스 요소를 나타내는 인코딩된 비디오 비트스트림을 수신한다.
도 3의 예에서, 디코더(30)는 엔트로피 디코딩 유닛(304), 역 양자화 유닛(310), 역 변환 처리 유닛(312), 재구성 유닛(314)(예컨대, 가산기(314)), 버퍼(316), 루프 필터(320), 디코딩된 픽처 버퍼(330), 및 예측 처리 유닛(360)을 포함한다. 예측 처리 유닛(360)은 인터 예측 유닛(344), 인트라 예측 유닛(354), 및 모드 선택 유닛(362)을 포함할 수 있다. 일부 예에서, 비디오 디코더(30)는 일반적으로 도 2의 비디오 인코더(20)를 참조하여 설명한 인코딩 순회(encoding traversal)와 반대되는 디코딩 순회를 수행할 수 있다.
엔트로피 디코딩 유닛(304)은, 인코딩된 픽처 데이터(21)에 대해 엔트로피 디코딩을 수행하여 양자화된 계수(309), 디코딩된 코딩 파라미터(도 3에 도시되어 있지 않음) 등, 예컨대, 인터 예측 파라미터, 인트라 예측 파라미터, 루프 필터 파라미터, 및/또는 또 다른 (디코딩된) 신택스 요소 중 어느 하나 또는 전부를 획득하도록 구성된다. 엔트로피 디코딩 유닛(304)은 또한 인터 예측 파라미터, 인트라 예측 파라미터, 및/또는 또 다른 신택스 요소를 예측 처리 유닛(360)으로 포워딩하도록 구성된다. 비디오 디코더(30)는 비디오 슬라이스 레벨의 신택스 요소 및/또는 비디오 블록 레벨의 신택스 요소를 수신할 수 있다.
역 양자화 유닛(310)은 역 양자화 유닛(110)과 동일한 기능을 가질 수 있고, 역 변환 처리 유닛(312)은 역 변환 처리 유닛(212)과 동일한 기능을 가질 수 있으며, 재구성 유닛(314)은 재구성 유닛(214)과 동일한 기능을 가질 수 있고, 버퍼(316)는 버퍼(216)와 동일한 기능을 가질 수 있으며, 루프 필터(320)는 루프 필터(220)와 동일한 기능을 가질 수 있고, 디코딩된 픽처 버퍼(330)는 디코딩된 픽처 버퍼(230)와 동일한 기능을 가질 수 있다.
예측 처리 유닛(360)은 인터 예측 유닛(344)과 인트라 예측 유닛(354)을 포함할 수 있다. 인트라 예측 유닛(344)은 인터 예측 유닛(244)의 기능과 유사한 기능을 가질 수 있고, 인트라 예측 유닛(354)은 인트라 예측 유닛(254)의 기능과 유사한 기능을 가질 수 있다. 예측 처리 유닛(360)은 일반적으로 블록 예측을 수행하고/하거나 인코딩된 데이터(21)로부터 예측 블록(365)을 획득하며, 예컨대 엔트로피 디코딩 유닛(304)으로부터 예측 관련 파라미터 및/또는 선택된 예측 모드에 대한 정보를 (명시적으로 또는 암시적으로) 수신 또는 획득하도록 구성된다.
비디오 슬라이스가 인트라 인코딩된(I) 슬라이스로서 인코딩되는 경우, 예측 처리 유닛(360)의 인트라 예측 유닛(354)은 시그널링된 인트라 예측 모드 및 현재 프레임 또는 픽처의 이전에 디코딩된 블록으로부터의 데이터에 기초하여 현재 비디오 슬라이스의 픽처 블록에 사용된 예측 블록(365)을 생성하도록 구성된다. 비디오 프레임이 인터코딩된(즉, B 또는 P) 슬라이스로서 인코딩될 경우, 예측 처리 유닛(360)의 인터 예측 유닛(344)(예컨대, 모션 보상 유닛)은, 엔트로피 디코딩 유닛(304)으로부터 수신된 모션 벡터 및 또 다른 신택스 요소에 기초하여 현재 비디오 슬라이스의 비디오 블록에 사용된 예측 블록(365)을 생성하도록 구성된다. 인터 예측의 경우, 예측 블록은 하나의 참조 픽처 리스트 내의 참조 픽처들 중 하나로부터 생성될 수 있다. 비디오 디코더(30)는 DPB(330)에 저장된 참조 픽처에 기초한 디폴트 구성 기술을 사용하여 리스트 0 및 리스트 1의 참조 프레임 리스트를 구성할 수 있다.
예측 처리 유닛(360)은 모션 벡터 및 다른 신택스 요소를 파싱하여 현재 비디오 슬라이스의 비디오 블록에 사용되는 예측 정보를 결정하고, 예측 정보를 사용하여 디코딩 중인 현재 비디오 블록에 사용되는 예측 블록을 생성하도록 구성된다. 예를 들어, 예측 처리 유닛(360)은, 현재 비디오 슬라이스의 비디오 블록을 디코딩하기 위해, 일부 수신된 신택스 요소를 사용하여, 비디오 슬라이스의 비디오 블록을 인코딩하는데 사용되는 예측 모드(예컨대, 인트라 또는 인터 예측), 예측 슬라이스 타입(예컨대, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스에 사용된 참조 픽처 리스트 내의 픽처들 중 하나 이상에 대한 구성 정보, 슬라이스에 사용된 각각의 인터 인코딩된 비디오 블록의 모션 벡터, 슬라이스에 사용된 각각의 인터 인코딩된 비디오 블록의 인터 예측 상태, 및 기타 정보를 결정한다.
역 양자화 유닛(310)은, 비트스트림에 제공되며 엔트로피 디코딩 유닛(304)에 의해 디코딩된 양자화된 변환 계수에 대한 역 양자화(dequantization)를 수행하도록 구성될 수 있다. 역 양자화 프로세스는, 비디오 슬라이스 내의 각각의 비디오 블록에 대해 비디오 인코더(20)에 의해 계산된 양자화 파라미터를 사용하여, 적용해야 하는 양자화 정도를 결정하고 적용해야 하는 역 양자화 정도를 결정하는 것을 포함할 수 있다.
역 변환 처리 유닛(312)은 변환 계수에 역 변환(예를 들어, 역 DCT, 역 정수 변환, 또는 개념적으로 유사한 역 변환 프로세스)을 적용하여, 샘플 도메인에서 잔차 블록을 생성하도록 구성된다.
재구성 유닛(314)(예컨대, 가산기(314))는, 재구성된 잔차 블록(313)의 샘플 값을 예측 블록(365)의 샘플 값에 더함으로써, 역 변환 블록(313)(즉, 재구성된 잔차 블록(313))을 예측 블록(365)에 더하여 샘플 도메인에서 재구성된 블록(315)을 획득하도록 구성된다.
(인코딩 루프에서 또는 인코딩 루프 이후) 루프 필터 유닛(320)은, 샘플 변환을 원활하게 수행하거나 또는 비디오 품질을 향상시키기 위해, 재구성된 블록(315)을 필터링하여 필터링된 블록(321)을 획득하도록 구성된다. 한 예에서, 루프 필터 유닛(320)은 다음 필터링 기술들의 임의의 조합을 수행하도록 구성될 수 있다. 루프 필터 유닛(320)은 하나 이상의 루프 필터, 예컨대, 디블로킹 필터, 샘플 적응 오프셋(sample-adaptive offset, SAO) 필터, 또는 양방향 필터, 적응 루프 필터(adaptive loop filter, ALF), 샤프닝 또는 스무딩 필터(sharpening or smoothing filter) 또는 협업 필터(cooperative filter)와 같은 다른 필터를 나타내기 위한 것이다. 루프 필터 유닛(320)은 도 3에 인루프 필터(in-loop filter)로서 도시되어 있지만, 루프 필터 유닛(320)은 다른 구성에서는 포스트 루프 필터(post-loop filter)로서 구현될 수도 있다.
주어진 프레임 또는 픽처 내의 필터링된 블록(321)은 이후 후속 모션 보상에 사용되는 참조 픽처를 저장하는 디코딩된 픽처 버퍼(330)에 저장된다.
디코더(30)는 출력(332) 등을 이용하여 디코딩된 픽처(31)를 출력하여 사용자에게 디코딩된 픽처(31)를 제시하거나 또는 사용자가 볼 수 있도록 디코딩된 픽처(31)를 제공하도록 구성된다.
비디오 디코더(30)의 또 다른 변형예는 압축된 비트스트림을 디코딩하도록 구성될 수 있다. 예를 들어, 디코더(30)는 루프 필터 유닛(320) 없이 출력 비디오 스트림을 생성할 수 있다. 예를 들어, 비 전송 기반 인코더(30)가 일부 블록 또는 프레임에 대해 변환 처리 유닛(312) 없이 잔차 신호를 직접 양자화할 수 있다. 또 다른 구현예에서, 비디오 디코더(30)는 하나의 유닛으로 결합되는 양자화 유닛(310) 및 역 변환 처리 유닛(312)을 가질 수 있다.
도 4는 일 실시예에 따른, 도 2의 인코더(20) 및/또는 도 3의 디코더(30)를 포함하는 비디오 코딩 시스템(40)의 한 예를 도시한 것이다. 시스템(40)은 본 출원의 다양한 기술의 조합을 구현할 수 있다. 도시된 구현예에서, 비디오 코딩 시스템(40)은 이미징 장치(41), 비디오 인코더(20), 비디오 디코더(30)(및/또는 처리 유닛(46)의 로직 회로(47)로 구현된 비디오 디코더), 안테나(42), 하나 이상의 프로세서(43), 하나 이상의 메모리(44), 및/또는 디스플레이 장치(45)를 포함할 수 있다.
도면에 도시되어 있는 바와 같이, 이미징 장치(41), 안테나(42), 처리 유닛(46), 로직 회로(47), 비디오 인코더(20), 비디오 디코더(30), 프로세서(43), 메모리(44), 및/또는 디스플레이 장치(45)는 서로 통신할 수 있다. 상술한 바와 같이, 비디오 코딩 시스템(40)이 비디오 인코더(20) 및 비디오 디코더(30)를 모두 갖도록 도시되어 있지만, 다른 예에서는, 비디오 코딩 시스템(40)이 비디오 인코더(20) 또는 비디오 디코더(30)만 포함할 수 있다.
일부 예에서, 도면에 도시되어 있는 바와 같이, 비디오 코딩 시스템(40)은 안테나(42)를 포함할 수 있다. 예를 들어, 안테나(42)는 비디오 데이터의 인코딩된 비트스트림을 송신 또는 수신하도록 구성될 수 있다. 또한, 일부 예에서, 비디오 코딩 시스템(40)은 디스플레이 장치(45)를 포함할 수도 있다. 디스플레이 장치(45)는 비디오 데이터를 제시하도록 구성될 수 있다. 일부 예에서, 도면에 도시되어 있는 바와 같이, 로직 회로(47)는 처리 유닛(46)에 의해 구현될 수 있다. 처리 유닛(46)은 주문형 집적 회로(application-specific integrated circuit, ASIC) 로직, 그래픽 처리 유닛, 범용 프로세서 등을 포함할 수 있다. 비디오 코딩 시스템(40)은 또한 선택적 프로세서(43)를 포함할 수도 있다. 선택적 유닛(43)은 마찬가지로 주문형 집적 회로(application-specific integrated circuit, ASIC) 로직, 그래픽 처리 유닛, 범용 프로세서 등을 포함할 수 있다. 일부 예에서, 로직 회로(47)는 비디오 인코딩 전용 하드웨어로 구현될 수 있으며, 프로세서(43)는 범용 소프트웨어, 운영 체제 등으로 구현될 수 있다. 또한, 메모리(44)는 임의의 유형의 메모리, 예를 들면, 휘발성 메모리(예컨대, 정적 랜덤 액세스 메모리(Static Random Access Memory, SRAM) 또는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM)) 또는 비휘발성 메모리(예컨대, 플래시 메모리)일 수 있다. 비제한적인 예에서, 메모리(44)는 캐시 메모리로 구현될 수 있다. 일부 예에서, 로직 회로(47)는 (예를 들어, 이미지 버퍼를 구현하는)메모리(44)에 액세스할 수 있다. 다른 예에서, 로직 회로(47) 및/또는 처리 유닛(46)은 이미지 버퍼 등을 구현하는 메모리(예컨대, 캐시)를 포함할 수 있다.
일부 예에서, 로직 회로에 의해 구현되는 비디오 인코더(20)는 이미지 버퍼(예컨대 처리 유닛(46) 또는 메모리(44)에 의해 구현됨) 및 그래픽 처리 유닛(예컨대 처리 유닛(46)에 의해 구현됨)을 포함할 수 있다. 그래픽 처리 유닛은 이미지 버퍼에 통신가능하게 결합될 수 있다. 그래픽 처리 유닛은, 도 2를 참조하여 설명되는 다양한 모듈 및/또는 본 명세서에 기술된 임의의 다른 인코더 시스템 또는 서브시스템을 구현하도록, 로직 회로(47)에 의해 구현되는 비디오 인코더(20)를 포함할 수 있다. 로직 회로는 본 명세서에 기술된 다양한 동작을 수행하도록 구성될 수 있다.
비디오 디코더(30)는, 도 3의 디코더(30)를 참조하여 설명되는 다양한 모듈 및/또는 본 명세서에 기술된 임의의 다른 디코더 시스템 또는 서브시스템을 구현하도록, 로직 회로(47)에 의해 유사하게 구현될 수 있다. 일부 예에서, 로직 회로에 의해 구현되는 비디오 디코더(30)는 이미지 버퍼(예컨대, 처리 유닛(46) 또는 메모리(44)에 의해 구현됨) 및 그래픽 처리 유닛(예컨대, 처리 유닛(46)에 의해 구현됨)을 포함할 수 있다. 그래픽 처리 유닛은 이미지 버퍼에 통신가능하게 결합될 수 있다. 그래픽 처리 유닛은, 도 3을 참조하여 설명되는 다양한 모듈 및/또는 본 명세서에 기술된 임의의 다른 인코더 시스템 또는 서브시스템을 구현하도록, 로직 회로(47)에 의해 구현되는 비디오 디코더(30)를 포함할 수 있다.
일부 예에서, 비디오 코딩 시스템(40)의 안테나(42)는 비디오 데이터의 인코딩된 비트스트림을 수신하도록 구성될 수 있다. 상술한 바와 같이, 인코딩된 비트스트림은 본 명세서에 기술된 비디오 프레임 인코딩과 관련되는 데이터, 지표, 인덱스 값, 모드 선택 데이터 등, 예를 들어, 인코딩 분할(예컨대, 변환 계수 또는 양자화된 변환 계수, (상술한)선택적 지표 및/또는 인코딩 분할을 정의하는 데이터)과 관련된 데이터를 포함할 수 있다. 비디오 코딩 시스템(40)은, 안테나(42)에 결합되어 인코딩된 비트스트림을 디코딩하도록 구성되는 비디오 디코더(30)를 더 포함할 수 있다. 디스플레이 장치(45)는 비디오 프레임을 제시하도록 구성된다.
도 5는 일 실시예에 따른, 도 1의 소스 장치(12) 및 목적지 장치(14) 중 어느 하나 또는 두 장치로서 사용될 수 있는 장치(500)의 간략화된 블록도이다. 장치(500)는 본 출원의 기술들을 구현할 수 있다. 장치(500)는 복수의 컴퓨팅 장치를 포함하는 컴퓨팅 시스템 형태를 사용하거나, 또는 모바일 폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 노트북 컴퓨터, 데스크톱 컴퓨터와 같은 단일 컴퓨팅 장치의 형태를 사용할 수 있다.
장치(500) 내의 프로세서(502)는 중앙 처리 장치일 수 있다. 또는, 프로세서(502)는 임의의 다른 유형의 기존의 또는 미래의 장치 또는 정보를 제어 또는 처리할 수 있는 장치일 수 있다. 도면에 도시되어 있는 바와 같이, 개시된 구현예들이 프로세서(502)와 같은 단일 프로세서를 사용하여 실시될 수도 있지만, 하나 초과의 프로세서를 사용하면 속도 및 효율에 있어서 더 많은 이점을 누릴 수 있다.
한 구현예에서, 장치(500)의 메모리(504)는 판독 전용 메모리(Read Only Memory, ROM) 또는 랜덤 액세스 메모리(random access memory, RAM)일 수 있다. 임의의 다른 적절한 유형의 저장 장치가 메모리(504)로서 사용될 수 있다. 메모리(504)는 버스(512)를 사용하여 프로세서(502)에 의해 액세스되는 코드 및 데이터(506)를 포함할 수 있다. 메모리(504)는 운영 체제(508) 및 애플리케이션 프로그램(510)을 더 포함할 수 있다. 애플리케이션 프로그램(510)은 프로세서(502)로 하여금 본 명세서에 기술된 방법을 수행하게 하는 적어도 하나의 프로그램을 포함한다. 예를 들어, 애플리케이션 프로그램(510)은 애플리케이션1 내지 N을 포함할 수 있고, 애플리케이션 1 내지 N은 본 명세서에 기술된 방법을 수행하기 위한 비디오 인코딩 애플리케이션을 더 포함한다. 장치(500)는 2차 메모리(514) 형태의 추가 메모리를 더 포함할 수 있다. 2차 메모리(514)는, 예를 들면, 모바일 컴퓨팅 장치와 함께 사용되는 메모리 카드일 수 있다. 비디오 통신 세션은 대량의 정보를 포함할 수 있고, 이 정보는 2차 메모리(514)에 완전히 또는 부분적으로 저장되고 필요할 때 처리를 위해 메모리(504)에 로딩될 수 있다.
장치(500)는 하나 이상의 출력 장치, 예컨대 디스플레이(518)를 더 포함할 수 있다. 한 예에서, 디스플레이(518)는 디스플레이를 터치 입력을 감지하도록 동작할 수 있는 터치 감지 요소에 결합하는 터치 감지 디스플레이일 수 있다. 디스플레이(518)는 버스(512)를 사용하여 프로세서(502)에 연결될 수 있다. 디스플레이(518) 외에, 사용자로 하여금 장치(500)를 프로그램할 수 있게 하거나 또는 다른 방식으로 장치(500)를 사용할 수 있게 하는 또 다른 출력 장치가 더 제공될 수도 있고, 또 다른 출력 장치가 디스플레이(518)의 대안으로 제공될 수도 있다. 출력 장치가 디스플레이이거나 또는 디스플레이를 포함하는 경우, 디스플레이는, 예를 들어 액정 디스플레이(liquid crystal display, LCD), 음극선관(cathode-ray tube, CRT) 디스플레이, 플라즈마 디스플레이, 또는 유기 LED (organic LED, OLED)와 같은 발광 다이오드(LED) 디스플레이를 사용하여 다르게 구현될 수도 있다.
장치(500)는 이미지 감지 장치(520)를 더 포함할 수도 있고, 또는 이미지 감지 장치(520)에 연결될 수도 있다. 이미지 감지 장치(520)는, 예를 들면, 카메라 또는 이미지를 감지할 수 있는 임의의 다른 기존의 또는 미래의 이미지 감지 장치(520)이다. 이미지는, 예컨대 장치(500)를 실행하는 사용자의 이미지이다. 이미지 감지 장치(520)는 장치(500)를 실행하는 사용자를 직접 마주보도록 배치될 수 있다. 한 예에서, 이미지 감지 장치(520)의 위치 및 광학 축은, 이미지 감지 장치(520)의 시야가 디스플레이(518)에 인접한 영역을 포함하고 디스플레이(518)가 이 영역에서 보이도록 구성될 수 있다.
장치(500)는 소리 감지 장치(522)를 더 포함할 수도 있고, 또는 소리 감지 장치(522)에 연결될 수도 있다. 소리 감지 장치(522)는, 예를 들어, 마이크로폰 또는 장치(500) 근처에서 음성을 감지할 수 있는 임의의 다른 기존의 또는 미래의 소리 감지 장치이다. 소리 감지 장치(522)는 장치(500)를 실행하는 사용자를 직접 마주보도록 위치할 수 있고, 사용자가 장치(500)를 실행할 때 사용자가 내는 음성 또는 다른 소리와 같은 소리를 수신하도록 구성될 수 있다.
장치(500)의 프로세서(502) 및 메모리(504)가 도 5에 도시된 바와 같이 하나의 유닛에 통합되더라도, 다른 구성이 사용될 수 있다. 프로세서(502)의 실행은 직접 연결될 수 있는 복수의 머신(각 머신이 하나 이상의 프로세서를 가짐)에 분산될 수도 있고, 또는 로컬 영역 또는 다른 네트워크에 분산될 수도 있다. 메모리(504)는, 네트워크 기반 메모리 및 장치(500)를 실행하는 복수의 머신의 메모리와 같이, 복수의 머신에 분산될 수 있다. 여기서는 단일 버스가 도시되어 있지만, 장치(500)의 복수의 버스(512)가 있을 수도 있다. 또한, 2차 메모리(514)는 장치(500)의 다른 구성요소들에 직접 결합될 수도 있고, 네트워크를 통해 액세스될 수도 있으며, 메모리 카드와 같은 단일의 집적 유닛 또는 복수의 메모리 카드와 같은 복수의 유닛을 포함할 수 있다. 따라서, 장치(500)는 복수의 구성으로 구현될 수 있다.
다음은 본 출원의 개념을 설명한다.
1. 인터 예측 모드
HEVC에서, 2개의 인터 예측 모드, 즉 어드밴스드 모션 벡터 예측(advanced motion vector prediction, AMVP) 모드 및 병합(merge) 모드가 사용된다.
AMVP 모드에서, 현재 블록의 공간적으로 또는 시간적으로 이웃하는 인코딩된 블록(이웃 블록으로 표시됨)이 먼저 탐색되고, 이웃 블록의 모션 정보에 기초하여 후보 모션 벡터 리스트(모션 정보 후보 리스트라고도 함)가 구성된다. 그 다음에, 레이트 왜곡 코스트에 기초하여 후보 모션 벡터 리스트로부터 최적의 모션 벡터가 결정되고, 최소 레이트 왜곡 코스트를 갖는 후보 모션 정보가 현재 블록의 모션 벡터 예측자(motion vector predictor, MVP)로 사용된다. 이웃 블록의 위치 및 그 순회 순서는 모두 미리 정의된다. 레이트 왜곡 코스트는 수식 (1)에 따라 계산되는데, 여기서 J는 레이트 왜곡 코스트(RD) 코스트를 나태니고, SAD는 원본 샘플 값과 후보 모션 벡터 예측자를 사용하여 모션 추정을 통해 얻은 예측된 샘플 값 사이의 절대 차의 합(sum of absolute differences, SAD)이며, R은 비트 레이트를 나타내고, λ는 라그랑주 승수(Lagrange multiplier)를 나타낸다. 인코더측은 후보 모션 벡터 리스트 내의 선택된 모션 벡터 예측자의 인덱스 및 참조 프레임의 인덱스 값을 디코더측으로 전송한다. 또한, 모션 검색은 MVP를 중심으로 한 이웃에서 수행되어, 현재 블록의 실제 모션 벡터를 획득한다. 인코더측은 MVP와 실제 모션 벡터 사이의 차(모션 벡터 차)를 디코더측으로 전송한다.
Figure pct00001
(1)
병합 모드에서, 현재 블록의 공간적으로 또는 시간적으로 이웃하는 인코딩된 블록의 모션 정보에 기초하여 후보 모션 벡터 리스트가 먼저 구성된다. 그 다음에, 현재 블록의 모션 정보 역할을 하는 레이트 왜곡 코스트에 기초하여 후보 모션 벡터 리스트로부터 최적의 모션 정보가 결정된다. 다음으로, 후보 모션 벡터 리스트 내의 최적 모션 정보의 위치의 인덱스 값(이하에서는 병합 인덱스로 표시됨)이 디코더측으로 전송된다. 현재 블록의 공간 후보 모션 정보 및 시간 후보 모션 정보는 도 6에 도시되어 있다. 공간 후보 모션 정보는 5개의 공간적으로 이웃하는 블록(A0, A1, B0, B1, 및 B2)으로부터의 것이다. 이웃 블록이 이용가능하지 않으면(이웃 블록이 존재하지 않거나, 이웃 블록이 인코딩되지 않거나, 또는 이웃 블록에 사용된 예측 모드가 인터 예측 모드가 아니면), 이웃 블록의 모션 정보는 후보 모션 벡터 리스트에 추가되지 않는다. 현재 블록의 시간 후보 모션 정보는 참조 프레임 및 현재 프레임의 픽처 순서 카운트(picture order count, POC)에 기초하여 참조 프레임 내의 대응하는 위치에서의 블록의 MV를 스케일링하여 획득한다. 참조 프레임 내의 T 위치에서의 블록이 이용가능한지 여부가 먼저 결정된다. 이 블록이 이용가능하지 않으면, C 위치에서의 블록이 선택된다.
AMVP 모드와 유사하게, 병합 모드에서는, 이웃 블록들의 위치 및 그 순회 순서가 모두 미리 정의된다. 또한, 이웃 블록의 위치 및 그 순회 순서는 모드에 따라 변할 수 있다.
후보 모션 벡터 리스트는 AMVP 모드와 병합 모드 모두에서 유지될 필요가 있다는 것을 알 수 있다. 새로운 모션 정보가 후보 리스트에 추가되기 전에 매번 동일한 모션 정보가 리스트 내에 존재하는지 여부가 먼저 확인된다. 동일한 모션 정보가 존재하면, 그 모션 정보는 리스트에 추가되지 않는다. 이 확인 프로세스는 후보 모션 벡터 리스트의 트리밍이라고도 한다. 리스트의 트리밍은 리스트 내의 동일 모션 정보를 회피하기 위한 것이며, 이에 따라 중복 레이트 왜곡 코스트 계산을 회피하기 위한 것이다.
HEVC 인터 예측에서, 코딩 블록 내의 모든 샘플이 동일한 모션 정보를 사용하며, 그 후 모션 정보에 기초하여 모션 보상이 수행되어, 코딩 블록의 샘플의 예측을 얻는다. 그러나, 코딩 블록에서, 모든 샘플이 동일한 모션 특징을 갖는 것은 아니다. 동일한 모션 정보를 사용하면, 모션 보상 예측이 부정확할 수 있고 잔차 정보가 더 많아질 수 있다.
기존의 비디오 코딩 표준에서는, 병진 모션 모델에 기초한 블록 매칭 모션 추정이 사용되고, 블록 내의 모든 샘플의 모션이 일관적이라고 가정된다. 그러나, 현실 세계에서는 다양한 모션이 있다. 많은 객체들이 비병진(non-translational) 모션 상태에 있는데, 예를 들면, 회전하는 객체, 상이한 방향으로 회전하는 롤러 코스터, 불꽃놀이, 및 영화에서의 일부 스턴트, 특히 UGC 시나리오에서의 움직이는 객체가 있다. 이들 움직이는 객체의 경우, 기존의 코딩 표준에서의 병진 모션 모델에 기초한 블록 모션 보상 기술이 코딩에 사용되면, 코딩 효율이 크게 영향 받을 수 있다. 따라서, 코딩 효율을 더욱 향상시키기 위해 아핀 모션 모델과 같은 비병진 모션 모델이 도입된다.
따라서, 다른 모션 모델의 관점에서, AMVP 모드는 병진 모델 기반의 AMVP 모드와 비병진 모델 기반의 AMVP 모드로 분류될 수 있고, 병합 모드는 병진 모델 디반의 병합 모드와 비병진 모델 기반의 병합 모드로 분류될 수 있다.
2. 비병진 모션 모델
비병진 모션 모델 기반 예측에서, 코덱측은 하나의 모션 모델을 사용하여 현재 블록 내의 각각의 자식 모션 보상 유닛의 모션 정보를 도출하고, 예측 효율을 향상시키기 위해 자식 모션 보상 유닛의 모션 정보에 기초하여 모션 보상을 수행하여 예측 블록을 획득한다. 일반적인 비병진 모션 모델은 4-파라미터 아핀 모션 모델 또는 6-파라미터 아핀 모션 모델이다.
본 출원의 실시예 내의 자식 모션 보상 유닛은 샘플 또는 특정 방법에 따른 분할을 통해 얻은 N1×N2 샘플 블록일 수 있으며, 여기서 N1과 N2는 모두 양의 정수이고, N1은 N2와 같을 수도 있고, N2와 같지 않을 수도 있다.
4-파라미터 아핀 모션 모델은 수식(2)로 표현된다.
Figure pct00002
(2)
4-파라미터 아핀 모션 모델은 두 샘플의 모션 벡터 및 현재 블록의 좌상단 샘플에 대한 이들 두 샘플의 좌표로 표현될 수 있다. 모션 모델 파라미터를 나타내는데 사용되는 샘플은 제어 포인트라고도 한다. 좌상단 샘플(0, 0)과 우상단 샘플(W, 0)이 제어 포인트로 사용되면, 현재 블록의 좌상단 제어 포인트와 우상단 제어 포인트의 모션 벡터 (vx0,vy0)와 (vx1,vy1)가 먼저 결정된다. 그 다음에, 현재 블록 내 각 자식 모션 보상 유닛의 모션 정보가 수식(3)에 따라 얻어지는데, 여기서 (x, y)는 현재 블록의 좌상단 샘플에 대한 자식 모션 보상 유닛의 좌표이고, W는 현재 블록의 폭을 나타낸다.
Figure pct00003
(3)
6-파라미터 아핀 모션 모델은 수식(4)로 표현된다.
Figure pct00004
(4)
6-파라미터 아핀 모션 모델은 세 샘플의 모션 벡터 및 현재 블록의 좌상단 샘플에 대한 이들 세 샘플의 좌표로 표현될 수 있다. 좌상단 샘플(0, 0)과 우상단 샘플(W, 0) 및 좌하단 샘플(0, H)이 제어 포인트로 사용되면, 현재 블록의 좌상단 제어 포인트, 우상단 제어 포인트 및 좌하단 제어 포인트의 모션 벡터(vx0,vy0), (vx1,vy1), 및 (vx2,vy2)가 먼저 결정된다. 그 다음에, 현재 블록 내 각 자식 모션 보상 유닛의 모션 정보가 수식(5)에 따라 얻어지는데, 여기서 (x, y)는 현재 블록의 좌상단 샘플에 대한 자식 모션 보상 유닛의 좌표이고, W 및 H는 현재 블록의 폭 및 높이를 각각 나타낸다.
Figure pct00005
(5)
아핀 모션 모델을 사용하여 예측되는 코딩 블록은 아핀 코딩 블록이라고도 한다.
일반적으로, 아핀 코딩 블록의 제어 포인트의 모션 정보는 아핀 모션 모델 기반의 어드밴스드 모션 벡터 예측(Advanced Motion Vector Prediction, AMVP) 모드 또는 아핀 모션 모델 기반의 병합(Merge) 모드를 사용하여 획득될 수 있다.
현재 코딩 블록의 제어 포인트의 모션 정보는 상속된 제어 포인트 모션 벡터 예측 방법 또는 구성된 제어 포인트 모션 벡터 예측 방법을 사용하여 획득될 수 있다.
3. 상속된 제어 포인트 모션 벡터 예측 방법
상속된 제어 포인트 모션 벡터 예측 방법은 이웃 인코딩 아핀 코딩 블록의 모션 모델을 사용하여 현재 블록의 후보 제어 포인트 모션 벡터를 결정한다.
도 7에 도시된 현재 블록을 한 예로서 사용한다. 현재 블록 주위의 이웃 블록들을, 예컨대 A1->B1->B0->A0->B2의 지정된 순서로 순회하여, 현재 블록의 이웃 블록이 위치하는 아핀 코딩 블록을 찾고, 아핀 코딩 블록의 제어 포인트 모션 정보를 획득한다. 또한, 아핀 코딩 블록의 제어 포인트 모션 정보를 사용하여 구성된 모션 모델을 사용하여 현재 블록의 제어 포인트 모션 벡터(병합 모드의 경우) 또는 제어 포인트 모션 벡터 예측자(AMVP 모드의 경우)를 도출한다. 순서 A1->B1->B0->A0->B2는 단지 예로서 사용된다. 다른 조합의 순서를 본 출원에 적용할 수도 있다. 또한, 이웃 블록들은 A1, B1, B0, A0, 및 B2로 제한되지 않는다.
이웃 블록은 샘플 또는 특정 분할 방법에 기초하여 얻은 미리 설정된 크기의 샘플 블록일 수 있는데, 예를 들면 4×4 샘플 블록, 4×2 샘플 블록 또는 다른 크기의 샘플 블록일 수 있다. 이는 제한되지 않는다.
다음은 예로서 A1을 사용하여 결정 프로세스를 설명하며, 다른 경우도 이와 유사하다.
도 7에 도시되어 있는 바와 같이, A1이 위치해 있는 코딩 블록이 4-파라미터 아핀 코딩 블록인 경우, 아핀 코딩 블록의 좌상단 샘플(x4, y4)의 모션 벡터(vx4, vy4)와 우상단 샘플(x5, y5)의 모션 벡터(vx5, vy5)가 획득된다. 현재 아핀 코딩 블록의 좌상단 샘플(x0, y0)의 모션 벡터(vx0, vy0)는 수식(6)에 따라 계산되며, 현재 아핀 코딩 블록의 우상단 샘플(x1, y1)의 모션 벡터(vx1, vy1)는 수식(7)에 따라 계산된다.
Figure pct00006
(6)
Figure pct00007
(7)
A1이 위치해 있는 아핀 코딩 블록에 기초하여 얻어지는 현재 블록의 좌상단 샘플(x0, y0)의 모션 벡터(vx0, vy0) 및 우상단 샘플(x1, y1)의 모션 벡터(vx1, vy1)의 조합이 현재 블록의 후보 제어 포인트 모션 벡터이다.
A1이 위치해 있는 코딩 블록이 6-파라미터 아핀 코딩 블록인 경우, 아핀 코딩 블록의 좌상단 샘플(x4, y4)의 모션 벡터(vx4, vy4), 우상단 샘플(x5, y5)의 모션 벡터(vx5, vy5), 좌하단 샘플(x6, y6)의 모션 벡터(vx6, vy6)가 획득된다. 현재 블록의 좌상단 샘플(x0, y0)의 모션 벡터(vx0, vy0)는 수식(8)에 따라 계산되고, 우상단 샘플(x1, y1)의 모션 벡터(vx1, vy1)는 수식(9)에 따라 계산되며, 좌하단 샘플(x2, y2)의 모션 벡터(vx2, vy2)는 수식(10)에 따라 계산된다.
Figure pct00008
(8)
Figure pct00009
(9)
Figure pct00010
(10)
A1이 위치해 있는 아핀 코딩 블록에 기초하여 얻어지는 현재 블록의 좌상단 샘플(x0, y0)의 모션 벡터(vx0, vy0) 및 우상단 샘플(x1, y1)의 모션 벡터(vx1, vy1), 및 좌하단 샘플(x2, y2)의 모션 벡터(vx2, vy2)의 조합이 현재 블록의 후보 제어 포인트 모션 벡터이다.
다른 모션 모델, 후보 위치, 및 검색 및 순회 순서가 본 출원에 적용될 수도 있음을 주의해야 한다. 세부사항은 본 출원의 실시예에서 설명하지 않는다.
이웃하는 현재 코딩 블록들에 대한 모션 모델을 표현하기 위해 다른 제어 포인트를 사용하는 방법이 본 출원에 적용될 수도 있다는 점에 주의해야 한다. 세부사항은 본 명세서에서 설명하지 않는다.
4. 구성된 제어 포인트 모션 벡터(constructed control point motion vectors) 예측 방법 1
구성된 제어 포인트 모션 벡터 예측 방법은, 현재 블록의 제어 포인트 주위의 이웃하는 인코딩된 블록들의 모션 벡터들을 결합하고, 이웃하는 인코딩된 블록들이 아핀 코딩 블록인지 여부를 고려하지 않고, 결합된 모션 벡터를 현재 아핀 코딩 블록의 제어 포인트 모션 벡터로서 사용하는 것이다.
현재 블록의 좌상단 샘플 및 우상단 샘플의 모션 벡터는 현재 블록 주위의 이웃하는 인코딩된 블록의 모션 정보를 사용하여 결정된다. 도 8a는 구성된 제어 포인트 모션 벡터 예측 방법을 설명하기 위한 한 예로 사용된다. 도 8a는 한 예일 뿐이라는 것에 주의해야 한다.
도 8a에 도시되어 있는 바와 같이, 좌상단 샘플의 이웃하는 인코딩된 블록의 모션 벡터(A2, B2, 및 B3)는 현재 블록의 좌상단 샘플의 모션 벡터에 대한 후보 모션 벡터로서 사용되고, 우상단 샘플의 이웃하는 인코딩된 블록(B1 및 B0)의 모션 벡터는 현재 블록의 우상단 샘플의 모션 벡터에 대한 후보 모션 벡터로서 사용된다. 좌상단 샘플 및 우상단 샘플의 후보 모션 벡터는 결합되어 복수의 2-튜플(tuple)을 구성한다. 2-튜플에 포함된 2개의 인코딩된 블록의 모션 벡터는, 다음 수식 11(A)에서 알 수 있듯이, 현재 블록의 후보 제어 포인트 모션 벡터로 사용될 수 있다.
Figure pct00011
11(A)
vA2는 A2의 모션 벡터를 나타내고, vB1은 B1의 모션 벡터를 나타내며, vB0은 B0의 모션 벡터를 나타내고, vB2는 B2의 모션 벡터를 나타내며, vB3은 B3의 모션 벡터를 나타낸다.
도 8a에 도시되어 있는 바와 같이, 좌상단 샘플의 이웃하는 인코딩된 블록(A2, B2, 및 B3)의 모션 벡터는 현재 블록의 좌상단 샘플의 모션 벡터에 대한 후보 모션 벡터로서 사용되고, 우상단 샘플의 이웃하는 인코딩된 블록(B1 및 B0)의 모션 벡터는 현재 블록의 우상단 샘플의 모션 벡터에 대한 후보 모션 벡터로서 사용되며, 좌하단 샘플의 이웃하는 인코딩된 블록(A0 및 A1)의 모션 벡터는 현재 블록의 좌하단 샘플의 모션 벡터에 대한 후보 모션 벡터로서 사용된다. 좌상단 샘플, 우상단 샘플 및 좌하단 샘플의 후보 모션 벡터는 결합되어 3-튜플을 구성한다. 3-튜플에 포함된 3개의 인코딩된 블록의 모션 벡터는, 다음 수식(11B) 및 (11C)에서 알 수 있듯이, 현재 블록의 후보 제어 포인트 모션 벡터로 사용될 수 있다.
Figure pct00012
(11B)
Figure pct00013
(11C)
vA2는 A2의 모션 벡터를 나타내고, vB1은 B1의 모션 벡터를 나타내며, vB0은 B0의 모션 벡터를 나타내고, vB2는 B2의 모션 벡터를 나타내며, vB3은 B3의 모션 벡터를 나타내고, vA0은 A0의 모션 벡터를 나타내며, vA1은 A1의 모션 벡터를 나타낸다.
제어 포인트 모션 벡터들을 결합하는 다른 방법들이 본 출원에 적용될 수도 있다는 것에 주의해야 한다. 세부사항은 본 명세서에서 설명하지 않는다.
이웃하는 현재 코딩 블록들의 모션 모델을 표현하기 위해 다른 제어 포인트를 사용하는 방법이 본 출원에도 적용될 수도 있다는 점에 주의해야 한다. 세부사항은 본 명세서에서 설명하지 않는다.
5. 구성된 제어 포인트 모션 벡터(constructed control point motion vectors) 예측 방법 2: 이를 위해 도 8b를 참조한다.
단계 801: 현재 블록의 제어 포인트의 모션 정보를 획득한다.
예를 들어, 도 8a에서, CPk(k = 1, 2, 3, 또는 4)는 k번째 제어 포인트를 나타내고, A0, A1, A2, B0, B1, B2, 및 B3은 현재 블록의 공간적으로 이웃하는 위치이고 CP1, CP2, 또는 CP3을 예측하는데 사용되며, T는 현재 블록의 시간적으로 이웃하는 위치이고 CP4를 예측하는 데 사용된다.
CP1, CP2, CP3, 및 CP4의 좌표는 각각 (0, 0), (W, 0), (H, 0), 및 (W, H)이고, 여기서 W 및 H는 현재 블록의 폭 및 높이를 나타낸다.
각 제어 포인트의 모션 정보는 다음 순서로 얻어진다.
(1) CP1에 대해, 확인 순서는 B2->A2->B3이다. B2가 이용가능하면, B2의 모션 정보가 사용된다. B2가 이용가능하지 않으면, A2 및 B3가 확인된다. 세 위치 모두의 모션 정보가 이용가능하지 않으면, CP1의 모션 정보는 획득될 수 없다.
(2) CP2에 대해, 확인 순서는 B0->B1이다. B0가 이용가능하면, CP2에 대해 B0의 모션 정보가 사용된다. B0가 이용가능하지 않으면, B1이 확인된다. 두 위치 모두의 모션 정보가 이용가능하지 않으면, CP2의 모션 정보는 획득될 수 없다.
(3) CP3에 대해, 확인 순서는 A0->A1이다.
(4) CP4에 대해, T의 모션 정보가 사용된다.
여기서, X가 이용가능하다는 것은 X(X is A0, A1, A2, B0, B1, B2, B3, 또는 T) 위치에서의 블록이 인코딩되었고 인터 예측 모드가 사용된다는 것을 의미한다. 그렇지 않으면, X 위치는 이용가능하지 않다.
제어 포인트의 모션 정보를 획득하는 다른 방법이 본 출원에 적용될 수도 있다는 것에 주의해야 한다. 세부사항은 본 명세서에서 설명하지 않는다.
단계 802: 제어 포인트들의 모션 정보를 결합하여 구성된 제어 포인트 모션 정보를 획득한다.
2개의 제어 포인트의 모션 정보가 결합되어 2-튜플을 구성하고, 4-파라미터 아핀 모션 모델을 구성한다. 2개의 제어 포인트를 결합하는 방식은 {CP1, CP4}, {CP2, CP3}, {CP1, CP2}, {CP2, CP4}, {CP1, CP3}, 또는 {CP3, CP4}일 수 있다. 예를 들어, 제어 포인트(CP1 및 CP2)를 포함하는 2-튜플을 사용하여 구성된 4-파라미터 아핀 모션 모델은 Affine(CP1, CP2)로 표시될 수 있다.
3개의 제어 포인트의 모션 정보가 결합되어 3-튜플을 구성하고, 6-파라미터 아핀 모션 모델을 구성한다. 3개의 제어 포인트를 결합하는 방식은 {CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4}, 또는 {CP1, CP3, CP4}일 수 있다. 예를 들어, 제어 포인트(CP1, CP2 및 CP3)를 포함하는 3-튜플을 사용하여 구성된 6-파라미터 아핀 모션 모델은 Affine(CP1, CP2, CP3)으로 표시될 수 있다.
4개의 제어 포인트의 모션 정보가 결합되어 4-튜플을 구성하고, 8-파라미터 이중 선형 모델을 구성한다. 제어 포인트(CP1, CP2, CP3, 및 CP4)를 포함하는 4-튜플을 사용하여 구성된 8-파라미터 이중 선형 모델은 "이중 선형(Bilinear)" (CP1, CP2, CP3, CP4)로 표시될 수 있다.
본 출원의 이 실시예에서, 설명을 쉽게 하기 위해, 2개의 제어 포인트(또는 2개의 인코딩된 블록)의 모션 정보의 조합은 간단히 2-튜플이라고 하며, 3개의 제어 포인트(또는 3개의 인코딩된 블록)의 모션 정보의 조합은 간단히 3-튜플이라고 하며, 4개의 제어 포인트(또는 4개의 인코딩된 블록)의 모션 정보의 조합은 간단히 4-튜플이라고 한다.
이들 모델은 미리 설정된 순서로 순회된다. 결합 모델에 대응하는 제어 포인트의 모션 정보가 이용가능하지 않으면, 그 모델은 이용가능하지 않은 것으로 간주된다. 그렇지 않으면, 모델의 참조 프레임이 결정되고, 제어 포인트의 모션 벡터가 스케일링된다. 모든 제어 포인트의 스케일링된 모션 정보가 일치하면, 그 모델은 유효하지 ?榜?. 모델을 제어하는 모든 제어 포인트의 모션 정보가 이용가능하고 모델이 유효하면, 모델을 구성하는 제어 포인트의 모션 정보가 모션 정보 후보 리스트에 추가된다.
제어 포인트 모션 벡터 스케일링 방법은 수식(12)에 나와 있다.
Figure pct00014
(12)
CurPoc는 현재 프레임의 POC 번호를 나타내고, DesPoc는 현재 블록의 현재 프레임의 POC 번호를 나타내며, SrcPoc는 제어 포인트의 참조 프레임의 POC 번호를 나타내고, MVs는 스케일링을 통해 얻어진 모션 벡터를 나타내며, MV는 제어 포인트의 모션 벡터를 나타낸다.
서로 다른 제어 포인트들의 조합이 동일 위치의 제어 포인트로 변환될 수도 있다는 것에 주의해야 한다.
예를 들어, {CP1, CP4}, {CP2, CP3}, {CP2, CP4}, {CP1, CP3}, 또는 {CP3, CP4}의 조합을 통해 얻어진 4-파라미터 아핀 모션 모델이 {CP1, CP2} 또는 {CP1, CP2, CP3}에 의한 표현으로 변환된다. 변환 방법은, 모션 벡터 및 제어 포인트의 좌표 정보를 수식 (2)로 대체하여 모델 파라미터를 구한 다음, {CP1, CP2}의 좌표 정보를 수식 (3)으로 대체하여 모션 벡터를 구하는 것이다.
보다 직접적으로, 변환은 다음 수식 (13) 내지 (21)에 따라 수행될 수 있는데, 여기서 W는 현재 블록의 폭을 나타내고, H는 현재 블록의 높이를 나타낸다. 수식 (13) 내지 (21)에서, (vx0,vy0)는 CP1의 모션 벡터를 나타내고, (vx1,vy1)는 CP2의 모션 벡터를 나타내며, (vx2,vy2)는 CP3의 모션 벡터를 나타내고, (vx3,vy3)는 CP4의 모션 벡터를 나타낸다.
{CP1, CP2}는 다음 수식(13)에 따라 {CP1, CP2, CP3}로 변환될 수 있다. 즉, {CP1, CP2, CP3}에서 CP3의 모션 벡터는 수식 (13)에 따라 결정될 수 있다.
Figure pct00015
(13)
{CP1, CP3}는 다음 수식(14)에 따라 {CP1, CP2} 또는 {CP1, CP2, CP3}으로 변환될 수 있다.
Figure pct00016
(14)
{CP2, CP3}는 다음 수식(15)에 따라 {CP1, CP2} 또는 {CP1, CP2, CP3}으로 변환될 수 있다.
Figure pct00017
(15)
{CP1, CP4}는 다음 수식(16) 또는 (17)에 따라 {CP1, CP2} 또는 {CP1, CP2, CP3}으로 변환될 수 있다.
Figure pct00018
(16)
Figure pct00019
(17)
{CP2, CP4}는 다음 수식 (18)에 따라 {CP1, CP2}로 변환될 수 있고, {CP2, CP4}는 다음 수식 (18) 및 (19)에 따라 {CP1, CP2, CP3}으로 변환될 수 있다.
Figure pct00020
(18)
Figure pct00021
(19)
{CP3, CP4}는 다음 수식 (20)에 따라 {CP1, CP2}로 변환될 수 있고, {CP3, CP4}는 다음 수식 (20) 및 (21)에 따라 {CP1, CP2, CP3}으로 변환될 수 있다.
Figure pct00022
(20)
Figure pct00023
(21)
예를 들어, {CP1, CP2, CP4}, {CP2, CP3, CP4}, 또는 {CP1, CP3, CP4}의 조합을 통해 얻어진 6-파라미터 아핀 모션 모델이 {CP1, CP2, CP3}에 의한 표현으로 변환된다. 변환 방법은, 모션 벡터 및 제어 포인트의 좌표 정보를 수식 (4)로 대체하여 모델 파라미터를 구한 다음, {CP1, CP2, CP3}의 좌표 정보를 수식 (5)로 대체하여 모션 벡터를 구하는 것이다.
보다 직접적으로, 변환은 다음 수식 (22) 내지 (24)에 따라 수행될 수 있는데, 여기서 W는 현재 블록의 폭을 나타내고, H는 현재 블록의 높이를 나타낸다. 수식 (13) 내지 (21)에서, (vx0,vy0)는 CP1의 모션 벡터를 나타내고, (vx1,vy1)는 CP2의 모션 벡터를 나타내며, (vx2,vy2)는 CP3의 모션 벡터를 나타내고, (vx3,vy3)는 CP4의 모션 벡터를 나타낸다.
{CP1, CP2, CP4}는 다음 수식(22)에 따라 {CP1, CP2, CP3}로 변환될 수 있다.
Figure pct00024
(22)
{CP1, CP2, CP4}는 다음 수식(23)에 따라 {CP1, CP2, CP3}로 변환될 수 있다.
Figure pct00025
(23)
{CP1, CP2, CP4}는 다음 수식(24)에 따라 {CP1, CP2, CP3}로 변환될 수 있다.
Figure pct00026
(24)
6. 아핀 모션 모델 기반의 어드밴스드 모션 벡터 예측 모드(Affine AMVP mode)
(1) 후보 모션 벡터 리스트 구성
아핀 모션 모델 기반의 AMVP 모드에 대한 후보 모션 벡터 리스트는 상속된 제어 포인트 모션 벡터 예측 방법 및/또는 구성된 제어 포인트 모션 벡터 예측 방법을 사용하여 구성된다. 본 출원의 이 실시예에서, 아핀 모션 모델 기반의 AMVP 모드에 대한 후보 모션 벡터 리스트는 제어 포인트 모션 벡터 예측자 후보 리스트(control point motion vectors predictor candidate list)라고도 한다. 각 제어 포인트의 모션 벡터 예측자는 2개의(4-파라미터 아핀 모션 모델) 제어 포인트의 모션 벡터 또는 3개의(6-파라미터 아핀 모션 모델) 제어 포인트의 모션 벡터를 포함한다.
선택적으로, 제어 포인트 모션 벡터 예측자 후보 리스트는 특정 규칙에 따라 프루닝되고 정렬되며, 특정 수량으로 잘리거나 패딩될 수 있다.
(2) 최적의 제어 포인트 모션 벡터 예측자 결정
인코더측에서, 각 자식 모션 보상 유닛이 가리키는 참조 프레임 내의 대응하는 위치의 샘플 값을 획득하기 위해, 수식 (3)/(5)를 사용하여 제어 포인트 모션 벡터 예측자 후보 리스트 내의 각 제어 포인트 모션 벡터 예측자에 기초하여, 현재 코딩 블록 내의 각 자식 모션 보상 유닛의 모션 벡터가 획득되고, 아핀 모션 모델을 사용하여 모션 보상을 수행하기 위한 예측자로서 샘플 값이 사용된다. 현재 코딩 블록 내의 각 샘플의 원래 값과 예측자 사이의 평균 차이가 계산된다. 최소 평균 차이에 대응하는 제어 포인트 모션 벡터 예측자가 최적의 제어 포인트 모션 벡터 예측자로서 선택되고, 현재 코딩 블록의 2/3개의 제어 포인트의 모션 벡터 예측자로서 사용된다. 제어 포인트 모션 벡터 예측자 후보 리스트 내의 제어 포인트 모션 벡터 예측자의 위치를 나타내는 인덱스 번호는 비트스트림으로 인코딩되고 디코더로 전송된다.
디코더측에서, 인덱스 번호가 파싱되고, 인덱스 번호에 기초하여 제어 포인트 모션 벡터 예측자 후보 리스트로부터 제어 포인트 모션 벡터 예측자(control point motion vectors predictor, CPMVP)가 결정된다.
(3) 제어 포인트 모션 벡터 결정
인코더측에서, 제어 포인트 모션 벡터 예측자가 특정 검색 범위 내의 모션 검색을 위한 검색 시작점으로 사용되어, 제어 포인트 모션 벡터(control point motion vectors, CPMV)를 획득한다. 제어 포인트 모션 벡터와 제어 포인트 모션 벡터 예측자 사이의 차이(control point motion vectors differences, CPMVD)가 디코더측으로 전송된다.
디코더측에서, 제어 포인트 모션 벡터 차이가 파싱되고 제어 포인트 모션 벡터 예측자에 추가되어, 제어 포인트 모션 벡터를 획득한다.
7. 아핀 병합 모드(Affine Merge mode)
상속된 제어 포인트 모션 벡터 예측 방법 및/또는 구성된 제어 포인트 모션 벡터 예측 방법을 사용하여 제어 포인트 모션 벡터 병합 후보 리스트(control point motion vectors merge candidate list)가 구성된다.
선택적으로, 제어 포인트 모션 벡터 병합 후보 리스트가 특정 규칙에 따라 프루닝되고 정렬되며, 특정 수량으로 잘리거나 패딩될 수 있다.
인코더측에서, 각각의 차일드 모션 보상 유닛이 가리키는 참조 프레임 내의 위치의 샘플 값을 획득하기 위해, 수식 (3)/(5)를 사용하여 병합 후보 리스트 내의 각각의 제어 포인트 모션 벡터에 기초하여 현재 코딩 블록 내의 각각의 차일드 모션 보상 유닛(샘플 또는 특정 방법에 따른 분할을 통해 얻어진 N1×N2 샘플 블록)의 모션 벡터가 획득되고, 샘플 값은 아핀 모션 보상을 수행하기 위한 예측자로서 사용된다. 현재 코딩 블록 내의 각 샘플의 원래 값과 예측자 사이의 평균 차이가 계산된다. 최소 평균 차이에 대응하는 제어 포인트 모션 벡터가 현재 코딩 블록의 2/3개의 제어 포인트의 모션 벡터로서 선택된다. 후보 리스트 내의 제어 포인트 모션 벡터의 위치를 나타내는 인덱스 번호가 비트스트림으로 인코딩되고 디코더로 전송된다.
디코더측에서, 인덱스 번호가 파싱되고, 인덱스 번호에 기초하여 제어 포인트 모션 벡터 병합 후보 리스트로부터 제어 포인트 모션 벡터(control point motion vectors, CPMV)가 결정된다.
또한, 본 명세서에서 "적어도 하나"는 하나 이상을 의미하고, "복수의"는 둘 이상을 의미한다. "및/또는"이란 용어는 관련 객체를 기술하는 연관 관계를 기술하며 세 관계가 존재할 수 있음을 나타낸다. 예를 들면, A 및/또는 B는, A만 존재하는 경우, A와 B가 모두 존재하는 경우, B만 존재하는 경우를 나타낼 수 있는데, 여기서 A와 B는 단수 또는 복수일 수 있다. "/" 문자는 일반적으로 관련 객체들 사이의 "또는"의 관계를 나타낸다. "다음 항목들(부분들) 중 적어도 하나" 또는 이와 유사한 표현은, 단일 항목(부분)을 비롯하여 이들 항목들의 임의의 조합 또는 복수의 항목(부분)의 임의의 조합을 나타낸다. 예를 들어, a, b, 또는 c 중 적어도 하나는 a, b, c, a와 b, a와 c, b와 c, 또는 a, b, 및 c를 나타낼 수 있으며, 여기서 a, b, 및 c는 단수 또는 복수일 수 있다.
본 출원에서, 현재 블록을 디코딩하기 위해 인터 예측 모드가 사용될 경우, 인터 예측 모드를 시그널링하기 위해 신택스 요소가 사용될 수 있다.
현재 블록을 파싱하기 위해 사용되는 인터 예측 모드의 일부 현재 사용되는 신택스 구조에 대해서는 표 1을 참조하라. 신택스 구조 내의 신택스 요소는 대안적으로 다른 식별자로 표현될 수 있다. 이는 본 명세서에서 특별히 제한되지 않는다.
coding_unit(x0,y0,cbWidth,cbHeight) { 디스크립터
(Descriptor)
merge_flag[x0][y0] ae(v)
if(merge_flag[x0][y0]) {
if (allowAffineMerge)
affine_merge_flag[x0][y0] ae(v)
if(MaxNumMergeCand>1 && affine_merge_flag[x0][y0]==0)
merge_idx[x0][y0] ae(v)
if(MaxNumAffineMergeCand>1 && affine_merge_flag[x0][y0])
affine_merge_idx[x0][y0] ae(v)
} else {
if(slice_type==B)
inter_pred_idc[x0][y0] ae(v)
if(allowAffineInter) {
affine_inter_flag[x0][y0] ae(v)
if(affine_inter_flag[x0][y0])
affine_type_flag[x0][y0] ae(v)
}
MotionModelIdc[x0][y0]=affine_inter_flag[x0][y0] +affine_type_flag[x0][y0]
if(inter_pred_idc[x0][y0]!=PRED_L1) {
if(num_ref_idx_l0_active_minus1>0)
ref_idx_l0[x0][y0] ae(v)
mvd_coding(x0,y0,0,0)
if(MotionModelIdc[x0][y0]>0) {
mvd_coding(x0,y0,0,1)
if(MotionModelIdc[x0][y0]>1)
mvd_coding(x0,y0,0,2)
}
mvp_l0_flag[x0][y0] ae(v)
}
if(inter_pred_idc[x0][y0]!=PRED_L0) {
if(num_ref_idx_l1_active_minus1>0)
ref_idx_l1[x0][y0] ae(v)
mvd_coding(x0,y0,1,0)
if(MotionModelIdc[x0][y0]>0) {
mvd_coding(x0,y0,1,1)
if(MotionModelIdc[x0][y0]>1)
mvd_coding(x0,y0,1,2)
}
mvp_l1_flag[x0][y0] ae(v)
}
}
}
신택스 요소(merge_flag[x0][y0])는 병합 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용될 수 있다. 예를 들어, merge_flag[x0][y0]=1인 경우, 이것은 병합 모드가 현재 블록에 사용됨을 나타내고, merge_flag[x0][y0]=0인 경우, 이것은 병합 모드가 현재 블록에 사용되지 않음을 나타내며, 여기서 x0 및 y0은 비디오 픽처 내의 현재 블록의 좌표를 나타낸다.변수(allowAffineMerge)는 현재 블록이 아핀 모션 모델 기반의 병합 모드를 사용하기 위한 조건을 만족하는지 여부를 나타내는 데 사용될 수 있다. 예를 들어, allowAffineInter=0인 경우, 이것은 아핀 모션 모델 기반의 병합 모드를 사용하기 위한 조건이 만족되지 않음을 나타내고, allowAffineInter=1인 경우, 이것은 아핀 모션 모델 기반의 병합 모드를 사용하기 위한 조건이 만족됨을 나타낸다. 아핀 모션 모델 기반의 병합 모드를 사용하기 위한 조건은, 현재 블록의 폭과 높이가 모두 8이상일 것일 수 있고, 여기서 cbWidth는 현재 블록의 폭을 나타내고, cbHeight는 현재 블록의 높이를 나타낸다. 즉, cbWidth<8 또는 cbHeight<8인 경우, allowAffineMerge=0이고, cbWidth≥8 및 cbHeight≥8인 경우, allowAffineMerge=1이다.
변수 allowAffineInter는 현재 블록이 아핀 모션 모델 기반의 AMVP 모드를 사용하기 위한 조건을 만족하는지 여부를 나타내는 데 사용될 수 있다. 예를 들어, allowAffineInter=0인 경우, 이것은 아핀 모션 모델 기반의 AMVP 모드를 사용하기 위한 조건이 만족되지 않음을 나타내고, allowAffineInter=1인 경우, 이것은 아핀 모션 모델 기반의 AMVP 모드를 사용하기 위한 조건이 만족됨을 나타낸다. 아핀 모션 모델 기반의 AMVP 모드를 사용하기 위한 조건은 현재 블록의 폭과 높이가 모두 16 이상일 것일 수 있다. 즉, cbWidth<16 또는 cbHeight<16인 경우, allowAffineInter=0이고, cbWidth≥16 및 cbHeight≥16인 경우, allowAffineInter=1이다.
신택스 요소(affine_merge_flag[x0][y0])는 아핀 모션 모델 기반의 병합 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용될 수 있다. 현재 블록이 위치해 있는 슬라이의 유형(slice_type)은 P 타입 또는 B 타입이다. 예를 들어, affine_merge_flag[x0][y0]=1인 경우, 이것은 아핀 모션 모델 기반의 병합 모드가 현재 블록에 사용됨을 나타내고, affine_merge_flag[x0][y0]=0인 경우, 이것은 아핀 모션 모델 기반의 병합 모드가 현재 블록에 사용되지 않지만, 병진 모션 모델 기반의 병합 모드가 사용될 수 있음을 나타낸다.
신택스 요소(merge_idx[x0][y0])는 병합 후보 리스트의 인덱스 값을 나타내기 위해 사용될 수 있다.
affine_merge_idx[x0][y0]는 아핀 병합 후보 리스트의 인덱스 값을 나타내기 위해 사용될 수 있다.
신택스 요소(affine_inter_flag[x0][y0])는, 현재 블록이 위치하는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우, 아핀 모션 모델 기반의 AMVP 모드가 현재 블록에 사용되는지 여부를 나타내는 데 사용될 수 있다. 예를 들어, allowAffineInter=0인 경우, 이것은 아핀 모션 모델 기반의 AMVP 모드가 현재 블록에 사용됨을 나타내고, allowAffineInter=1인 경우, 이것은 아핀 모션 모델 기반의 AMVP 모드가 현재 블록에 사용되지 않지만, 병진 모션 모델 기반의 AMVP 모드가 사용될 수 있음을 나타낸다.
신택스 요소(affine_type_flag[x0][y0])는, 현재 블록이 위치하는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우, 6-파라미터 아핀 모션 모델이 현재 블록에 대한 모션 보상을 수행하는 데 사용되는지 여부를 나타내기 위해 사용될 수 있다. affine_type_flag[x0][y0]=0인 경우, 이것은 6-파라미터 아핀 모션 모델이 현재 블록에 대한 모션 보상을 수행하는 데 사용되지 않자만, 4-파라미터 아핀 모션 모델은 모션 보상을 수행하는 데 사용될 수 있음을 나타내고, affine_type_flag[x0][y0]=1인 경우, 이것은 6-파라미터 아핀 모션 모델이 현재 블록에 대한 모션 보상을 수행하는 데 사용됨을 나타낸다.
표 2에 도시되어 있는 바와 같이, MotionModelIdc[x0][y0]=1인 경우, 이것은 4- 파라미터 아핀 모션 모델이 사용됨을 나타내고, MotionModelIdc[x0][y0]=2인 경우, 이것은 6-파라미터 아핀 모션 모델이 사용됨을 나타내며, MotionModelIdc[x0][y0]=0인 경우, 이것은 병진 모션 모델이 사용됨을 나타낸다.
MotionModelIdc[x0][y0] 모션 보상을 위한 모션 모델(motion model for motion compensation)
0 병진 모션(translational motion)
1 4-파라미터 아핀 모션(4-parameter affine motion)
2 6-파라미터 아핀 모션(6-parameter affine motion)
변수 MaxNumMergeCand 및 MaxAffineNumMrgCand는 최대 리스트 길이를 나타내는 데 사용되고, 구성된 후보 모션 벡터 리스트의 최대 길이를 나타내며, inter_pred_idc[x0][y0]는 예측 방향을 나타내는 데 사용되고, PRED_L1은 역방향을 나타내는 데 사용되며, num_ref_idx_l0_active_minus1은 순방향 참조 프레임 리스트 내의 참조 프레임의 양을 나타내고, ref_idx_l0[x0][y0]는 현재 블록의 순방향 참조 프레임 인덱스 값을 나타내며, mvd_coding(x0, y0, 0, 0)은 제1 모션 벡터 차를 나타내고, mvp_l0_flag[x0][y0]은 순방향 MVP 후보 리스트 인덱스 값을 나타내며, PRED_L0은 순방향 예측을 나타내고, num_ref_idx_l1_active_minus1은 역방향 참조 프레임 리스트 내의 참조 프레임의 양을 나타내며, ref_idx_l1[x0][y0]은 현재 블록의 역방향 참조 프레임 인덱스 값을 나타내고, mvp_l1_flag[x0][y0]은 역방향 MVP 후보 리스트 인덱스 값을 나타낸다.표 1에서, ae(v)는 컨텍스트 기반의 적응 이진 산술 코딩(context-based adaptive binary arithmetic coding, CABAC)을 통해 인코딩된 신택스 요소를 나타낸다.
다음은 인터 예측 프로세스를 상세하게 설명한다. 이를 위해, 도 9a를 참조한다.
단계 601: 표 1에 도시된 신택스 구조에 기초하여 비트스트림을 파싱하여 현재 블록에 대한 인터 예측 모드를 결정한다.
현재 블록에 대한 인터 예측 모드가 아핀 모션 모델 기반의 AMVP 모드이면, 단계 602a가 수행된다.
구체적으로, 신택스 요소 merge_flag=0이고 신택스 요소 affine_inter_flag=1이면, 이것은 현재 블록에 대한 인터 예측 모드가 아핀 모션 모델 기반의 AMVP 모드임을 나타낸다.
현재 블록에 대한 인터 예측 모드가 아핀 모션 모델 기반의 병합(merge) 모드이면, 단계 602b가 수행된다.
구체적으로, 신택스 요소 merge_flag=1이고 신택스 요소 affine_merge_flag=1이면, 이것은 현재 블록에 대한 인터 예측 모드가 아핀 모션 모델 기반의 병합 모드임을 나타낸다.
단계 602a: 아핀 모션 모델 기반의 AMVP 모드에 대응하는 후보 모션 벡터 리스트를 구성하고, 단계 603a를 수행한다.
현재 블록의 후보 제어 포인트 모션 벡터는 상속된 제어 포인트 모션 벡터 예측 방법 및/또는 구성된 제어 포인트 모션 벡터 예측 방법을 사용하여 도출되며, 후보 모션 벡터 리스트에 추가된다.
후보 모션 벡터 리스트는 2-튜플 리스트(4-파라미터 아핀 모션 모델이 현재 코딩 블록에 사용된다) 또는 3-튜플 리스트를 포함할 수 있다. 2-튜플 리스트는 4-파라미터 아핀 모션 모델을 구성하기 위해 사용되는 2-튜플을 하나 이상 포함한다. 3-튜플 리스트는 6-파라미터 아핀 모션 모델을 구성하기 위해 사용되는 3-튜플을 하나 이상 포함한다.
선택적으로, 후보 모션 벡터 2-튜플/3-튜플 리스트는 특정 규칙에 따라 프루닝되고 정렬되며, 특정 수량으로 잘리거나 패딩될 수 있다.
A1: 상속된 제어 포인트 모션 벡터 예측 방법을 사용하여 후보 모션 벡터 리스트를 구성하는 프로세스가 설명된다.
도 7은 한 예로서 사용된다. 예를 들면, 현재 블록 주위의 이웃 블록들을, A1->B1->B0->A0->B2의 순서로 순회하여, 이웃 블록이 위치하는 아핀 코딩 블록을 찾고, 아핀 코딩 블록의 제어 포인트 모션 정보를 획득한다. 또한, 아핀 코딩 블록의 제어 포인트 모션 정보에 기초하여 구성된 모션 모델을 사용하여, 현재 블록의 후보 제어 포인트 모션 정보가 도출된다. 세부사항에 대해서는 도 3의 상속된 제어 포인트 모션 벡터 예측 방법의 관련 설명을 참조하라. 세부사항은 본 명세서에서 설명하지 않는다.
예를 들어, 현재 블록에 사용되는 아핀 모션 모델이 4-파라미터 아핀 모션 모델(즉, MotionModelIdc=1)인 경우, 4-파라미터 아핀 모션 모델이 이웃하는 아핀 디코딩 블록에 사용되면, 아핀 디코딩 블록의 2개의 제어 포인트의 모션 벡터, 즉 좌상단 제어 포인트 (x4, y4)의 모션 벡터(vx4, vy4)와 우상단 제어 포인트(x5, y5)의 모션 벡터(vx5, vy5)가 얻어진다. 아핀 디코딩 블록은 아핀 모션 모델을 사용하여 인코딩 단계에서 예측된 아핀 코딩 블록이다.
현재 블록의 좌상단 제어 포인트 및 우상단 제어 포인트의 모션 벡터는 제각기, 이웃 아핀 디코딩 블록의 2개의 제어 포인트를 포함하는 4-파라미터 아핀 모션 모델을 사용하여, 4-파라미터 아핀 모션 모델에 대응하는 수식 (6) 및 (7)에 따라 도출된다.
이웃 아핀 디코딩 블록에 대해 6-파라미터 아핀 모션 모델이 사용되면, 이웃 아핀 디코딩 블록의 3개의 제어 포인트의 모션 벡터가 얻어지는데, 예를 들면, 도 7의 좌상단 제어 포인트(x4, y4)의 모션 벡터(vx4, vy4), 우상단 제어 포인트(x5, y5)의 모션 벡터(vx5, vy5), 및 좌하단 제어 포인트(x6, y6)의 모션 벡터(vx6, vy6)가 얻어진다.
현재 블록의 좌상단 제어 포인트 및 우상단 제어 포인트의 모션 벡터는, 이웃 아핀 디코딩 블록의 3개의 제어 포인트를 포함하는 6-파라미터 아핀 모션 모델을 사용하여, 6-파라미터 아핀 모션 모델에 대응하는 수식 (8) 및 (9)에 따라 제각기 도출된다.
예를 들어, 현재 디코딩 블록에 사용되는 아핀 모션 모델은 6-파라미터 아핀 모션 모델(즉, MotionModelIdc=2)이다.
이웃 아핀 디코딩 블록에 대해 사용되는 아핀 모션 모델이 6-파라미터 아핀 모션 모델이면, 이웃 아핀 디코딩 블록의 3개의 제어 포인트의 모션 벡터가 얻어지는데, 예를 들면, 도 7의 좌상단 제어 포인트(x4, y4)의 모션 벡터(vx4, vy4), 우상단 제어 포인트의 모션 벡터(vx5, vy5), 및 좌하단 제어 포인트(x6, y6)의 모션 벡터(vx6, vy6)가 얻어진다.
현재 블록의 좌상단 제어 포인트, 우상단 제어 포인트, 및 좌하단 제어 포인트의 모션 벡터는, 이웃 아핀 디코딩 블록의 3개의 제어 포인트를 포함하는 6-파라미터 아핀 모션 모델을 사용하여, 6-파라미터 아핀 모션 모델에 대응하는 수식 (8), (9), (10)에 따라 제각기 도출된다.
이웃 아핀 디코딩 블록에 사용되는 아핀 모션 모델이 4-파라미터 아핀 모션 모델이면, 이웃 아핀 디코딩 블록의 2개의 제어 포인트의 모션 벡터가 얻어지는데, 예를 들면, 도 7의 좌상단 제어 포인트(x4, y4)의 모션 벡터(vx4, vy4) 및 우상단 제어 포인트(x5, y5)의 모션 벡터(vx5, vy5)가 얻어진다.
현재 블록의 좌상단 제어 포인트, 우상단 제어 포인트, 및 좌하단 제어 포인트의 모션 벡터는, 이웃 아핀 디코딩 블록의 2개의 제어 포인트를 포함하는 4-파라미터 아핀 모션 모델을 사용하여, 4-파라미터 아핀 모션 모델에 대응하는 수식 (6) 및 (7)에 따라 제각기 도출된다.
다른 모션 모델, 후보 위치, 및 검색 순서가 본 출원에 적용될 수도 있음을 주의해야 한다. 세부사항은 본 명세서에서 설명하지 않는다. 이웃하는 현재 코딩 블록들에 대한 모션 모델을 표현하기 위해 다른 제어 포인트를 사용하는 방법이 본 출원에 적용될 수도 있다는 점에 주의해야 한다. 세부사항은 본 명세서에서 설명하지 않는다.
A2: 구성된 제어 포인트 모션 벡터 예측 방법을 사용하여 후보 모션 벡터 리스트를 구성하는 프로세스가 설명된다.
예를 들어, 현재 디코딩 블록에 사용되는 아핀 모션 모델이 4-파라미터 아핀 모션 모델(즉, MotionModelIdc=1)이면, 현재 코딩 블록의 좌상단 샘플의 모션 벡터 및 우상단 샘플의 모션 벡터는 현재 코딩 블록의 이웃하는 인코딩 블록의 모션 정보를 사용하여 결정된다. 구체적으로, 후보 모션 벡터 리스트는 구성된 제어 포인트 모션 벡터 예측 방법 1 또는 구성된 제어 포인트 모션 벡터 예측 방법 2를 사용하여 구성될 수 있다. 구체적인 방법에 대해서는 4 및 5의 설명을 참조하라. 세부사항은 본 명세서에서 설명하지 않는다.
예를 들어, 현재 디코딩 블록에 사용되는 아핀 모션 모델이 6-파라미터 아핀 모션 모델(즉, MotionModelIdc=2)이면, 현재 코딩 블록의 좌상단 샘플, 우상단 샘플 및 좌하단 샘플의 모션 벡터가 현재 코딩 블록의 이웃하는 인코딩 블록의 모션 정보를 사용하여 결정된다. 구체적으로, 후보 모션 벡터 리스트는 구성된 제어 포인트 모션 벡터 예측 방법 1 또는 구성된 제어 포인트 모션 벡터 예측 방법 2를 사용하여 구성될 수 있다. 구체적인 방법에 대해서는 4 및 5의 설명을 참조하라. 세부사항은 본 명세서에서 설명하지 않는다.
제어 포인트 모션 정보를 결합하는 다른 방법들이 본 출원에 적용될 수도 있다는 것에 주의해야 한다. 세부사항은 본 명세서에서 설명하지 않는다.
단계 603a: 비트스트림을 파싱하여 최적 제어 포인트 모션 벡터 예측자를 결정하고, 단계 604a를 수행한다.
B1: 현재 디코딩 블록에 사용되는 아핀 모션 모델이 4-파라미터 아핀 모션 모델(MotionModelIdc=1)이면, 인덱스 번호가 파싱되고, 인덱스 번호에 기초하여 후보 모션 벡터 리스트로부터 2개의 제어 포인트 내의 최적 모션 벡터 예측자가 결정된다.
예를 들어, 인덱스 번호는 mvp_l0_flag 또는 mvp_l1_flag이다.
B2: 현재 디코딩 블록에 사용되는 아핀 모션 모델이 6-파라미터 아핀 모션 모델(MotionModelIdc=2)이면, 인덱스 번호가 파싱되고, 인덱스 번호에 기초하여 후보 모션 벡터 리스트로부터 3개의 제어 포인트 내의 최적 모션 벡터 예측자가 결정된다.
단계 604a: 비트스트림을 파싱하여 제어 포인트 모션 벡터를 결정한다.
C1: 현재 디코딩 블록에 사용되는 아핀 모션 모델이 4-파라미터 아핀 모션 모델(MotionModelIdc=1)이면, 디코딩을 통해 비트스트림으로부터 현재 블록의 2개의 제어 포인트의 모션 벡터 차가 얻어지고, 제어 포인트의 모션 벡터 차 및 모션 벡터 예측자에 기초하여 제어 포인트의 모션 벡터가 얻어진다. 순방향 예측을 예로 들면, 두 제어 포인트의 모션 벡터 차는 각각 mvd_coding(x0, y0, 0, 0) 및 mvd_coding(x0, y0, 0, 1)이다.
예를 들어, 좌상단 데어 포인트 및 우상단 제어 포인트는 디코딩을 통해 비트스트림으로부터 얻어지고, 모션 벡터 예측자에 각각 추가되어, 현재 블록의 좌상단 제어 포인트 및 우상단 제어 포인트의 모션 벡터를 획득한다.
C2: 현재 디코딩 블록에 사용되는 아핀 모션 모델은 6-파라미터 아핀 모션 모델(즉, MotionModelIdc=2)이다.
현재 블록의 세 개의 제어 포인트의 모션 벡터 차는 디코딩을 통해 비트스트림으로부터 획득되고, 제어 포인트의 모션 벡터는 제어 포인트의 모션 벡터 차 및 모션 벡터 예측자에 기초하여 얻어진다. 순방향 예측을 예로 들면, 세 제어 포인트의 모션 벡터 차는 각각 mvd_coding(x0, y0, 0, 0), mvd_coding(x0, y0, 0, 1), 및 mvd_coding(x0, y0, 0, 2)이다.
예를 들어, 좌상단 데어 포인트, 우상단 제어 포인트 및 좌하단 제어 포인트는 디코딩을 통해 비트스트림으로부터 얻어지고, 모션 벡터 예측자에 각각 추가되어, 현재 블록의 좌상단 제어 포인트, 우상단 제어 포인트 및 좌하단 제어 포인트의 모션 벡터를 획득한다.
단계 605a: 현재 디코딩 블록에 사용되는 아핀 모션 모델 및 제어 포인트 모션 정보에 기초하여 현재 블록 내의 각 서브블록의 모션 벡터를 획득한다.
현재 아핀 디코딩 블록내의 각 서브블록에 대해(하나의 서브블록은 하나의 모션 보상 유닛에 해당할 수 있으며, 서브 블록의 폭과 높이는 현재 블록의 폭과 높이보다 작음), 모션 보상 유닛 내의 미리 설정된 위치에서의 샘플의 모션 정보는 모션 보상 유닛 내의 모든 샘플의 모션 정보를 나타내는 데 사용될 수 있다. 모션 보상 유닛의 크기가 M×N이라고 가정하면, 미리 설정된 위치에서의 샘플은 중심 샘플(M/2, N/2), 좌상단 샘플(0, 0), 우상단 샘플(M-1, 0), 또는 모션 보상 유닛의 다른 위치의 샘플일 수 있다. 다음은 모션 보상 유닛의 중심 샘플을 예로 들어 설명한다. 도 9c를 참고하면, V0는 좌상단 제어 포인트의 모션 벡터를 나타내고, V1은 우상단 제어 포인트의 모션 벡터를 나타낸다. 각각의 작은 박스는 하나의 모션 보상 유닛을 나타낸다.
현재 아핀 디코딩 블록의 좌상단 샘플에 대한 모션 보상 유닛의 중심 샘플의 좌표는 수식 (25)를 사용하여 계산되는데, 여기서 i는 수평 방향의 (좌에서 우로의) i번째 모션 보상 유닛을 나타내고, j는 수직 방향의 (위에서 아래로의) j번째 모션 보상 유닛을 나타내며, (x(i,j), y(i,j))는 현재 아핀 디코딩 블록의 좌상단 샘플에 대한 (i, j)번째 모션 보상 유닛의 중심 샘플의 좌표를 나타낸다.
현재 아핀 디코딩 블록에 사용되는 아핀 모션 모델이 6-파라미터 아핀 모션 모델이면, (x(i,j), y(i,j))는 6-파라미터 아핀 모션 모델에 대응하는 수식 (26)으로 대체되어, 각각의 모션 보상 유닛의 중심 샘플의 모션 벡터를 획득하고, 중심 샘플의 모션 벡터는 모션 보상 유닛 내의 모든 샘플의 모션 벡터(vx(i,j), vy(i,j))로 사용된다.
현재 아핀 디코딩 블록에 사용되는 아핀 모션 모델이 4-파라미터 아핀 모션 모델이면, (x(i,j), y(i,j))는 4-파라미터 아핀 모션 모델에 대응하는 수식 (27)로 대체되어, 각각의 모션 보상 유닛의 중심 샘플의 모션 벡터를 획득하고, 중심 샘플의 모션 벡터는 모션 보상 유닛 내의 모든 샘플의 모션 벡터(vx(i,j), vy(i,j))로 사용된다.
Figure pct00027
(25)
Figure pct00028
(26)
Figure pct00029
(27)
단계 606a: 서브블록의 결정된 모션 벡터에 기초하여 각 서브블록에 대해 모션 보상을 수행하여 서브블록의 샘플 예측자를 획득한다.
단계 602b: 아핀 모션 모델 기반의 병합 모드에 대응하는 모션 정보 후보 리스트를 구성한다.
아핀 모션 모델 기반의 병합 모드에 대응하는 모션 정보 후보 리스트는 상속된 제어 포인트 모션 벡터 예측 방법 및/또는 구성된 제어 포인트 모션 벡터 예측 방법을 사용하여 구성될 수 있다.
선택적으로, 모션 정보 후보 리스트는 특정 규칙에 따라 프루닝되고 정렬되며, 특정 수량으로 잘리거나 패딩될 수 있다.
D1: 상속된 제어 포인트 모션 벡터 예측 방법을 사용하여 후보 모션 벡터 리스트를 구성하는 프로세스가 설명된다.
현재 블록의 후보 제어 포인트 모션 정보는 상속된 제어 포인트 모션 벡터 예측 방법을 사용하여 도출되며, 모션 정보 후보 리스트에 추가된다.
현재 블록 주위의 이웃 블록들이, 도 8a의 A1->B1->B0->A0->B2의 순서로 순회하여, 이웃 블록이 위치하는 아핀 코딩 블록을 찾고, 아핀 코딩 블록의 제어 포인트 모션 정보를 획득한다. 또한, 아핀 코딩 블록에 대한 모션 모델을 사용하여 현재 블록의 후보 제어 포인트 모션 정보가 도출된다.
후보 모션 벡터 리스트가 비어 있으면, 후보 제어 포인트 모션 정보가 후보 리스트에 추가된다. 그렇지 않으면, 후보 모션 벡터 리스트 내의 모션 정보를 순차적으로 순회하여, 후보 제어 포인트 모션 정보와 동일한 모션 정보가 후보 모션 벡터 리스트에 존재하는지 여부를 확인한다. 후보 제어 포인트 모션 정보와 동일한 모션 정보가 후보 모션 벡터 리스트에 없으면, 후보 제어 포인트 모션 정보가 후보 모션 벡터 리스트에 추가된다.
두 후보 모션 정보가 동일한지 여부를 판단하기 위해, 두 후보 모션 정보 내의 순방향 참조 프레임, 역방항 참조 프레임, 각각의 순방향 모션 벡터의 수평 및 수직 성분, 및 각각의 역방향 모션 벡터의 수평 및 수직 성분이 동일한지 여부를 순차적으로 판단할 필요가 있다. 두 후보 모션 정보는, 전술한 요소들 모두가 상이할 때에만 상이한 것으로 간주된다.
후보 모션 벡터 리스트 내의 모션 정보의 양이 최대 리스트 길이(MaxAffineNumMrgCand)에 달하면(MaxAffineNumMrgCand는 1, 2, 3, 4, 또는 5와 같은 양의 정수이고, 다음은 예로서 5의 길이를 사용하여 설명하며, 본 명세서에서 세부사항은 설명하지 않는다), 후보 리스트가 완성된다. 그렇지 않으면, 그 다음 이웃 블록이 순회된다.
D2: 현재 블록의 후보 제어 포인트 모션 정보는 구성된 제어 포인트 모션 벡터 예측 방법을 사용하여 도출되며, 모션 정보 후보 리스트에 추가된다. 이를 위해, 도 9b를 참조한다.
단계 601c: 현재 블록의 제어 포인트의 모션 정보를 획득한다. 이를 위해, 5의 구성된 제어 포인트 모션 벡터 예측 방법 2에서 단계 801을 참조한다. 세부사항은 본 명세서에서 다시 설명하지 않는다.
단계 602c: 제어 포인트들의 모션 정보를 결합하여 구성된 제어 포인트 모션 정보를 획득한다. 이를 위해, 도 8b의 단계 801을 참조한다. 세부사항은 본 명세서에서 다시 설명하지 않는다.
단계 603c: 구성된 제어 포인트 모션 정보를 후보 모션 벡터 리스트에 추가한다.
후보 리스트의 길이가 최대 리스트 길이(MaxAffineNumMrgCand)보다 작으면, 이들 조합을 미리 결정된 순서로 순회하여, 유효한 조합을 후보 제어 포인트 모션 정보로서 획득한다. 이 경우, 후보 모션 벡터 리스트가 비어 있으면, 후보 제어 포인트 모션 정보가 후보 모션 벡터 리스트에 추가된다. 그렇지 않으면, 후보 모션 벡터 리스트 내의 모션 정보를 순차적으로 순회하여, 후보 제어 포인트 모션 정보와 동일한 모션 정보가 후보 모션 벡터 리스트에 존재하는지 여부를 확인한다. 후보 제어 포인트 모션 정보와 동일한 모션 정보가 후보 모션 벡터 리스트에 없으면, 후보 제어 포인트 모션 정보가 후보 모션 벡터 리스트에 추가된다.
예를 들어, 미리 설정된 순서는 다음과 같다: Affine(CP1, CP2, CP3) -> 아핀 (CP1, CP2, CP4) -> Affine(CP1, CP3, CP4) -> Affine(CP2, CP3, CP4) -> Affine(CP1, CP2) -> Affine(CP1, CP3) -> Affine(CP2, CP3) -> Affine(CP1, CP4) -> Affine(CP2, CP4) -> Affine(CP3, CP4). 총 10개의 조합이 있다.
조합에 대응하는 제어 포인트 모션 정보가 이용가능하지 않으면, 이 조합은 이용가능하지 않은 것으로 간주된다. 조합이 이용가능하면, 그 조합의 참조 프레임 인덱스가 결정되고,(2개의 제어 포인트의 경우, 보다 작은 참조 프레임 인덱스가 그 조합의 참조 프레임 인덱스로 선택되고, 2개 초과의 제어 포인트의 경우, 가장 빈번하게 나타나는 참조 프레임 인덱스가 선택되며, 복수의 참조 프레임 인덱스가 동시에 나타나는 횟수가 동일하고, 최소 참조 프레임 인덱스가 그 조합의 참조 프레임 인덱스로 선택된다), 제어 포인트의 모션 벡터가 스케일링된다. 모든 제어 포인트의 스케일링된 모션 정보가 일치하면, 그 조합은 유효하지 ?榜?.
선택적으로, 본 출원의 이 실시예에서, 후보 모션 벡터 리스트가 패딩될 수 있다. 예를 들어, 전술한 순회 프로세스 이후에, 후보 모션 벡터 리스트의 길이가 최대 리스트 길이(MaxAffineNumMrgCand)보다 작으면, 후보 모션 벡터 리스트는 리스트 길이가 MaxAffineNumMrgCand와 동일할 때까지 패딩될 수 있다.
패딩은 제로 모션 벡터 패딩 방법을 이용하거나 또는 기존의 리스트 내의 기존의 후보 모션 정보를 조합하거나 또는 가중 평균함으로써 수행될 수 있다. 후보 모션 벡터 리스트를 패딩하기 위한 다른 방법도 본 출원에 적용가능하다는 것에 주의해야 한다. 세부사항은 본 명세서에서 설명하지 않는다.
단계 603b: 비트스트림을 파싱하여 최적의 제어 포인트 모션 정보를 결정한다.
인덱스 번호가 파싱되고, 인덱스 번호에 기초하여 후보 모션 벡터 리스트로부터 최적의 제어 포인트 모션 정보가 결정된다.
단계 604b: 현재 디코딩 블록에 사용되는 아핀 모션 모델 및 최적 제어 포인트 모션 정보에 기초하여 현재 블록 내의 각 서브블록의 모션 벡터를 획득한다.
이 단계는 단계 605a와 동일하다.
단계 605b: 서브블록의 결정된 모션 벡터에 기초하여 각 서브블록에 대해 모션 보상을 수행하여 서브블록의 샘플 예측자를 획득한다.
본 발명의 기술들은, 컨텍스트 적응 이진 산술 코딩(CABAC) 엔트로피 디코더 또는 확률 간격 분할 엔트로피(PIPE) 디코더 또는 관련 디코더와 같은 다른 엔트로피 디코더와 관련된다. 산술 디코딩은, 심볼이 산술 디코딩에서 비정수 길이 코드에 매핑되기 때문에, 높은 디코딩 효율을 갖는 많은 압축 알고리즘에서 사용되는 엔트로피 디코딩 형태이다. 일반적으로, CABAC를 통해 데이터 심볼을 디코딩하는 것은 다음 단계들 중 하나 이상을 포함한다.
(1) 바이너리: 디코딩될 심볼이 바이너리가 아닌 경우, 심볼은 "바이너리" 시퀀스에 매핑되고, 각각의 바이너리 비트는 "0" 또는 "1"의 값을 가질 수 있다.
(2) 컨텍스트 할당: 하나의 컨텍스트가 각 바이너리 비트에 할당된다(일반 모드에서). 컨텍스트 모델은 이진 비트에 적용가능한 정보에 기초하여 주어진 이진 비트에 대해 컨텍스트를 계산하는 방법을 결정하는 데 사용된다. 이 정보는, 예를 들면 이전의 디코딩된 심볼의 값 또는 이진수이다.
(3) 바이너리 인코딩: 산술 인코더는 바이너리 비트를 인코딩한다. 바이너리 비트를 인코딩하기 위해, 산술 인코더는 입력으로 바이너리 비트의 값의 확률을 필요로 하고, 이 확률은 바이너리 비트의 값이 "0"일 확률과 바이너리 비트의 값이 "1"일 확률이다. 각 컨텍스트의 (추정) 확률은 "컨텍스트 상태"라고 하는 정수 값으로 표현된다. 각각의 컨텍스트는 상태를 가지며, 따라서 이 상태(즉, 추정 확률)는 하나의 컨텍스트가 할당되는 바이너리 비트에 대해 동일하며 컨텍스트들 사이에 상이하다.
(4) 상태 업데이트: 바이너리 비트의 실제 디코딩된 값에 기초하여 컨텍스트를 선택할 확률(상태)이 업데이트된다(예컨대, 바이너리 비트의 값이 "1"이면, "1"의 확률이 증가한다).
종래 기술에서, 아핀 모션 모델의 파라미터 정보가 CABAC를 통해 파싱될 경우, 예컨대, 표 1의 affine_merge_flag, affine_merge_idx, affine_inter_flag, 및 affine_type_flag와 같이, CABAC 파싱에서 상이한 신택스 요소에 상이한 컨텍스트가 사용될 필요가 있다. 본 발명에서, CABAC에 사용된 컨텍스트의 양이 감소한다. 따라서, 코딩 효율에 영향을 주지 않으면서 컨텍스트를 저장하기 위해 인코더와 디코더가 차지하는 공간이 더 적게 필요하다.
affine_merge_flag 및 affine_inter_flag에 대해, 종래 기술의 CABAC에서는 2개의 상이한 컨텍스트 세트(각 컨텍스트 세트는 3개의 컨텍스트를 포함함)가 사용된다. 각 세트에 사용되는 실제 컨텍스트 인덱스는, 도 3에 도시되어 있는 것과 같이, 현재 디코딩 블록의 좌측 이웃 블록 내의 동일한 신택스 요소의 값과 현재 디코딩 블록의 상부 이웃 블록 내의 동일한 신택스 요소의 값의 합과 같다. 여기서, availableL은 현재 디코딩 블록의 좌측 이웃 블록의 이용가능성(좌측 이웃 블록이 존재하는지 그리고 디코딩되었는지 여부)을 나타내고, availableA는 현재 디코딩 블록의 상부 이웃 블록의 이용가능성(상부 이웃 블록이 존재하는지 그리고 디코딩되었는지 여부)을 나타낸다. 종래기술에서, affine_merge_flag 및 affine_inter_flag의 컨텍스트의 개수는 6개이다
컨텍스트 인덱스
신택스 요소 condL condA 컨텍스트 인덱스
affine_merge_flag[x0][y0] affine_merge_flag[x0-1][y0] affine_merge_flag[x0][y0-1] (condL && availableL) + (condA && availableA)
affine_inter_flag[x0][y0] affine_inter_flag[x0-1][y0] affine_inter_flag[x0][y0-1] (condL && availableL) + (condA && availableA)
도 10은 본 발명의 일 실시예에 따른 비디오 디코딩 방법의 절차를 도시한 것이다. 이 실시예는 도 3에 도시된 비디오 디코더에 의해 실행될 수 있다. 도 10에 도시되어 있는 바와 같이, 이 방법은 다음 단계들을 포함한다.1001. 수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소를 획득하며, 여기서 현재 블록 내의 엔트로피 디코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함한다.
일 구현예에서, 현재 블록 내의 신택스 요소 1이 affine_merge_flag이거나, 또는 현재 블록 내의 신택스 요소 2가 affine_inter_flag이다.
일 구현예에서, 현재 블록 내의 신택스 요소 1이 subblock_merge_flag이거나, 또는 현재 블록 내의 신택스 요소 2가 affine_inter_flag이다.
이 단계는 구체적으로 도 3의 엔트로피 디코딩 유닛(304)에 의해 수행될 수 있다.
본 발명의 이 실시예에서 현재 블록은 CU일 수 있다.
1002. 현재 블록 내의 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하며, 여기서 현재 블록 내의 신택스 요소 1에 대한 엔트로피 디코딩이 미리 설정된 컨텍스트 모델을 사용하여 완료되거나, 또는 현재 블록 내의 신택스 요소 2에 대한 엔트로피 디코딩이 컨텍스트 모델을 사용하여 완료된다.
이 단계는 구체적으로 도 3의 엔트로피 디코딩 유닛(304)에 의해 수행될 수 있다.
1003. 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 현재 블록에 대해 예측 처리를 수행하여 현재 블록의 예측 블록을 획득한다.
이 단계는 구체적으로 도 3의 엔트로피 처리 유닛(360)에 의해 수행될 수 있다.
1004. 현재 블록의 예측 블록에 기초하여 현재 블록의 재구성된 이미지를 획득한다.
이 단계는 구체적으로 도 3의 재구성 유닛(314)에 의해 수행될 수 있다.
이 실시예에서, 현재 블록 내의 신택스 요소 1 및 신택스 요소 2는 하나의 컨텍스트 모델을 공유하기 때문에, 디코더는 엔트로피 디코딩을 수행할 때 컨텍스트 모델을 확인할 필요가 없어, 디코더에 의한 비디오 디코딩 수행 효율을 향상시킨다. 또한, 비디오 디코더는 신택스 요소 1과 신택스 요소 2에 대해 하나의 컨텍스트 모델만 저장하면 되므로, 비디오 디코더가 차지하는 저장 공간이 줄어든다.
도 10에 개시된 비디오 디코딩 방법에 따르면, 본 발명의 일 실시예는 또한, 인코딩 방법을 제공하며, 이 인코딩 방법은,
현재 블록 내의 엔트로피 인코딩될 신택스 요소를 획득하는 단계 - 현재 블록 내의 엔트로피 인코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 - 와, 현재 블록 내의 엔트로피 인코딩될 신택스 요소에 대해 엔트로피 인코딩을 수행하는 단계 - 현재 블록 내의 엔트로피 인코딩될 신택스 요소에 대해 엔트로피 인코딩이 수행될 경우, 현재 블록 내의 신택스 요소 1에 대한 엔트로피 인코딩은 미리 설정된 컨텍스트 모델을 사용하여 완료되고, 현재 블록 내의 신택스 요소 2에 대한 엔트로피 인코딩은 컨텍스트 모델을 사용하여 완료됨 - 와, 현재 블록 내에 있고 엔트로피 인코딩을 통해 획득되는 신택스 요소를 포함하는 비트스트림을 출력하는 단계를 포함한다. 현재 블록에 대해 엔트로피 인코딩이 수행될 때 사용되는 컨텍스트 모델은 도 10에 도시된 비디오 디코딩 방법에서의 컨텍스트 모델과 동일하다. 이 실시예에서, 현재 블록 내의 신택스 요소 1 및 신택스 요소 2가 하나의 컨텍스트 모델을 공유하기 때문에, 인코더는 엔트로피 인코딩을 수행할 때 컨텍스트 모델을 확인할 필요가 없어, 인코더에 의한 비디오 인코딩 수행 효율을 향상시킨다. 또한, 비디오 인코더는 신택스 요소 1과 신택스 요소 2에 대해 하나의 컨텍스트 모델만 저장하면 되므로, 비디오 인코더가 차지하는 저장 공간이 줄어든다.
도 11은 본 발명의 다른 실시예에 따른 비디오 디코딩 방법의 절차를 도시한 것이다. 이 실시예는 도 3에 도시된 비디오 디코더에 의해 실행될 수 있다. 도 11에 도시되어 있는 바와 같이, 이 방법은 다음 단계들을 포함한다.
1101. 수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소를 획득하며, 여기서 현재 블록 내의 엔트로피 디코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함한다.
일 구현예에서, 현재 블록 내의 신택스 요소 1이 affine_merge_flag이거나, 또는 현재 블록 내의 신택스 요소 2가 affine_inter_flag이다.
일 구현예에서, 현재 블록 내의 신택스 요소 1이 subblock_merge_flag이거나, 또는 현재 블록 내의 신택스 요소 2가 affine_inter_flag이다.
이 단계는 구체적으로 도 3의 엔트로피 디코딩 유닛(304)에 의해 수행될 수 있다.
1102. 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하며, 여기서 현재 블록 내의 신택스 요소 1에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 현재 블록 내의 신택스 요소 2에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정된다.
비디오 디코더는 신택스 요소 1 및 신택스 요소 2에 대해 하나의 컨텍스트 모델 세트만 저장하면 된다.
일부 구현예에서, 미리 설정된 컨텍스트 모델 세트는 2개의 컨텍스트 모델만 포함한다. 일부 구현예에서, 미리 설정된 컨텍스트 모델 세트는 3개의 컨텍스트 모델만 포함한다. 또는 미리 설정된 컨텍스트 모델 세트는 4, 5, 또는 6개의 컨텍스트 모델을 포함할 수도 있음을 이해할 수 있을 것이다. 미리 설정된 컨텍스트 모델 세트에 포함된 컨텍스트 모델의 개수는 본 발명의 이 실시예에 제한되지 않는다.
일 구현예에셔, 현재 블록 내의 신택스 요소 1에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되는 것은, 현재 블록의 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2와, 현재 블록의 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 기초하여 현재 블록 내의 신택스 요소 1의 컨텍스트 인덱스를 결정하는 것을 포함하고, 여기서 현재 블록 내의 신택스 요소 1의 컨텍스트 인덱스는 현재 블록 내의 신택스 요소 1에 대응하는 컨텍스트 모델을 나타내는 데 사용된다.
또 다른 구현예에셔, 현재 블록 내의 신택스 요소 2에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되는 것은, 현재 블록의 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2와, 현재 블록의 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 기초하여 현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스를 결정하는 것을 포함하고, 여기서 현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스는 현재 블록 내의 신택스 요소 2에 대응하는 컨텍스트 모델을 나타내는 데 사용된다.
예를 들어, 미리 설정된 컨텍스트 모델 세트 내의 컨텍스트 모델의 개수가 3개이면, 현재 블록 내의 신택스 요소 1의 컨텍스트 인덱스의 값이 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값의 합이거나, 또는 현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스의 값이 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값의 합이다.
구체적으로, 신택스 요소 1(affine_merge_flag) 및 신택스 요소 2(affine_inter_flag)는 하나의 컨텍스트 모델 세트(이 세트는 3개의 컨텍스트 모델을 포함한다)를 공유할 수 있다. 각 세트에서 사용된 실제 컨텍스트 인덱스는, 표 4에 도시된 바와 같이, 현재 디코딩 블록의 좌측 이웃 블록 내의 두 신택스 요소에 대해 OR 연산을 수행하여 얻은 값과, 현재 디코딩 블록의 상부 이웃 블록 내의 두 신택스 요소에 대해 OR 연산을 수행하여 얻은 값을 더하여 얻은 값과 같다. 여기서, "|"는 OR 연산을 나타낸다.
본 발명의 컨텍스트 인덱스
신택스 요소 condL condA 컨텍스트 인덱스
affine_merge_flag[x0][y0]
affine_inter_flag[x0][y0]
affine_merge_flag[x0-1][y0] | affine_inter_flag [x0-1][y0] affine_merge_flag[x0][y0-1] | affine_inter_flag[x0] [y0-1] (condL && availableL) + (condA && availableA)
예를 들어, 미리 설정된 컨텍스트 모델 세트 내의 컨텍스트 모델의 개수가 2개이면, 현재 블록 내의 신택스 요소 1의 컨텍스트 인덱스의 값이 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값에 대해 OR 연산을 수행하여 얻은 결과이거나, 또는 현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스의 값이 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값에 대해 OR 연산을 수행하여 얻은 결과이다.구체적으로, 신택스 요소 1(affine_merge_flag) 및 신택스 요소 2(affine_inter_flag)는 하나의 컨텍스트 모델 세트(이 세트는 3개의 컨텍스트 모델을 포함한다)를 공유한다. 각 세트에서 사용된 실제 컨텍스트 인덱스는, 표 5에 도시된 바와 같이, 현재 디코딩 블록의 좌측 이웃 블록 내의 두 신택스 요소에 대해 OR 연산을 수행하여 얻은 값과, 현재 디코딩 블록의 상부 이웃 블록 내의 두 신택스 요소에 대해 OR 연산을 수행하여 얻은 값에 대해 OR 연산을 수행하여 얻은 결과와 같다. 여기서, "|"는 OR 연산을 나타낸다. 본 발명의 이 실시예에서, affine_merge_flag 및 affine_inter_flag에 대한 컨텍스트의 개수는 2로 감소한다.
본 발명의 컨텍스트 인덱스
신택스 요소 condL condA 컨텍스트 인덱스
affine_merge_flag[x0]y0]
affine_inter_flag[x0][y0]
affine_merge_flag[x0-1][y0] | affine_inter_flag [x0-1][y0] affine_merge_flag[x0][y0-1] | affine_inter_flag[x0] [y0-1] (condL && availableL) | (condA && availableA)
1103. 현재 블록 내의 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행한다.이 단계는 구체적으로 도 3의 엔트로피 디코딩 유닛(304)에 의해 수행될 수 있다.
1104. 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 현재 블록에 대해 예측 처리를 수행하여 현재 블록의 예측 블록을 획득한다.
이 단계는 구체적으로 도 3의 엔트로피 처리 유닛(360)에 의해 수행될 수 있다.
1105. 현재 블록의 예측 블록에 기초하여 현재 블록의 재구성된 이미지를 획득한다.
이 단계는 구체적으로 도 3의 재구성 유닛(314)에 의해 수행될 수 있다.
이 실시예에서, 현재 블록 내의 신택스 요소 1 및 신택스 요소 2가 하나의 컨텍스트 모델을 공유하기 때문에, 비디오 인코더는 신택스 요소 1 및 신택스 요소 2에 대해 하나의 컨텍스트 모델만 저장하면 되어, 비디오 인코더의 저장 공간을 덜 차지한다.
도 11에 개시된 비디오 디코딩 방법에 따르면, 본 발명의 일 실시예는 또한, 인코딩 방법을 제공하며, 이 인코딩 방법은,
현재 블록 내의 엔트로피 인코딩될 신택스 요소를 획득하는 단계 - 현재 블록 내의 엔트로피 인코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 - 와, 엔트로피 인코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하는 단계 - 현재 블록 내의 신택스 요소 1에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 현재 블록 내의 신택스 요소 2에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정됨 - 와, 현재 블록 내의 엔트로피 인코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 인코딩될 신택스 요소에 대해 엔트로피 인코딩을 수행하는 단계와, 현재 블록 내에 있고 엔트로피 인코딩을 통해 획득되는 신택스 요소를 포함하는 비트스트림을 출력하는 단계를 포함한다. 현재 블록에 대해 엔트로피 인코딩이 수행될 때 사용되는 컨텍스트 모델은 도 11에 도시된 비디오 디코딩 방법에서 설정된 컨텍스트 모델과 동일하다. 이 실시예에서, 현재 블록 내의 신택스 요소 1 및 신택스 요소 2가 하나의 컨텍스트 모델을 공유하기 때문에, 비디오 인코더는 신택스 요소 1 및 신택스 요소 2에 대해 하나의 컨텍스트 모델만 저장하면 되어, 비디오 인코더의 저장 공간을 덜 차지한다.
도 12는 본 발명의 일 실시예에 따른 비디오 디코딩 방법의 절차를 도시한 것이다. 이 실시예는 도 3에 도시된 비디오 디코더에 의해 실행될 수 있다. 도 12에 도시되어 있는 바와 같이, 이 방법은 다음 단계들을 포함한다.
1201. 수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소를 획득하며, 여기서 현재 블록 내의 엔트로피 디코딩될 신택스 요소는 현재 블록 내의 신택스 요소 3 또는 현재 블록 내의 신택스 요소 4를 포함한다.
일 구현예에서, 현재 블록 내의 신택스 요소 3이 merge_idx이거나, 또는 현재 블록 내의 신택스 요소 4가 affine_merge_idx이다.
일 구현예에서, 현재 블록 내의 신택스 요소 3이 merge_idx이거나, 또는 현재 블록 내의 신택스 요소 4가 subblock_merge_idx이다.
이 단계는 구체적으로 도 3의 엔트로피 디코딩 유닛(304)에 의해 수행될 수 있다.
1202. 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하며, 여기서 현재 블록 내의 신택스 요소 3에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 현재 블록 내의 신택스 요소 4에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정된다.
일 부현예에서, 미리 설정된 컨텍스트 모델 세트에 포함된 컨텍스트 모델의 개수는 5개이다. 미리 설정된 컨텍스트 모델 세트에 포함된 컨텍스트 모델의 수는 1, 2, 3 또는 4와 같이 다른 값일 수도 있음을 이해할 수 있을 것이다. 미리 설정된 컨텍스트 모델 세트에 포함된 컨텍스트 모델의 개수가 1개인 경우, 미리 설정된 컨텍스트 모델 세트는 하나의 컨텍스트 모델이다. 미리 설정된 컨텍스트 모델 세트에 포함된 컨텍스트 모델의 수량은 본 발명의 이 실시예에 제한되지 않는다.
이 단계는 구체적으로 도 3의 엔트로피 디코딩 유닛(304)에 의해 수행될 수 있다.
1203. 현재 블록 내의 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행한다.
이 단계는 구체적으로 도 3의 엔트로피 디코딩 유닛(304)에 의해 수행될 수 있다.
1204. 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 현재 블록에 대해 예측 처리를 수행하여 현재 블록의 예측 블록을 획득한다.
이 단계는 구체적으로 도 3의 엔트로피 처리 유닛(360)에 의해 수행될 수 있다.
1205. 현재 블록의 예측 블록에 기초하여 현재 블록의 재구성된 이미지를 획득한다.
이 단계는 구체적으로 도 3의 재구성 유닛(314)에 의해 수행될 수 있다.
이 실시예에서, 현재 블록 내의 신택스 요소 3 및 신택스 요소 4가 하나의 컨텍스트 모델을 공유하기 때문에, 비디오 디코더는 신택스 요소 3 및 신택스 요소 4에 대해 하나의 컨텍스트 모델만 저장하면 되어, 비디오 디코더의 저장 공간을 덜 차지한다.
도 12에 개시된 비디오 디코딩 방법에 따르면, 본 발명의 일 실시예는 또한, 현재 블록 내의 엔트로피 인코딩될 신택스 요소를 획득하는 단계 - 현재 블록 내의 엔트로피 인코딩될 신택스 요소는 현재 블록 내의 신택스 요소 3 또는 현재 블록 내의 신택스 요소 4를 포함함 - 와, 엔트로피 인코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하는 단계 - 현재 블록 내의 신택스 요소 3에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 현재 블록 내의 신택스 요소 4에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정됨 - 와, 현재 블록 내의 엔트로피 인코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 인코딩될 신택스 요소에 대해 엔트로피 인코딩을 수행하는 단계와, 현재 블록 내에 있고 엔트로피 인코딩을 통해 획득되는 신택스 요소를 포함하는 비트스트림을 출력하는 단계를 포함한다. 현재 블록에 대해 엔트로피 인코딩이 수행될 때 사용되는 컨텍스트 모델은 도 12에 도시된 비디오 디코딩 방법에서 설정된 컨텍스트 모델과 동일하다. 이 실시예에서, 현재 블록 내의 신택스 요소 3 및 신택스 요소 4가 하나의 컨텍스트 모델을 공유하기 때문에, 비디오 인코더는 신택스 요소 3 및 신택스 요소 4에 대해 하나의 컨텍스트 모델만 저장하면 되어, 비디오 인코더의 저장 공간을 덜 차지한다.
본 발명의 일 실시예는, 엔트로피 디코딩 유닛(304), 예측 처리 유닛(360), 및 재구성 유닛(314)을 포함하는 비디오 디코더(30)를 제공한다.
엔트로피 디코딩 유닛(304)은, 수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소 - 현재 블록 내의 엔트로피 디코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 - 를 획득하고, 현재 블록 내의 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하도록 구성되며, 현재 블록 내의 신택스 요소 1에 대한 엔트로피 디코딩이 미리 설정된 컨텍스트 모델을 사용하여 완료되거나, 또는 현재 블록 내의 신택스 요소 2에 대한 엔트로피 디코딩이 컨텍스트 모델을 사용하여 완료된다.
일 구현예에서, 현재 블록 내의 신택스 요소 1이 affine_merge_flag이거나, 또는 현재 블록 내의 신택스 요소 2가 affine_inter_flag이다.
일 구현예에서, 현재 블록 내의 신택스 요소 1이 subblock_merge_flag이거나, 또는 현재 블록 내의 신택스 요소 2가 affine_inter_flag이다.
예측 처리 유닛(360)은, 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 현재 블록에 대해 예측 처리를 수행하여, 현재 블록의 예측 블록을 획득하도록 구성된다.
재구성 유닛(314)은 현재 블록의 예측 블록에 기초하여 현재 블록의 재구성된 이미지를 획득하도록 구성된다.
이 실시예에서, 현재 블록 내의 신택스 요소 1 및 신택스 요소 2는 하나의 컨텍스트 모델을 공유하기 때문에, 디코더는 엔트로피 디코딩을 수행할 때 컨텍스트 모델을 확인할 필요가 없어, 디코더에 의한 비디오 디코딩 수행 효율을 향상시킨다. 또한, 비디오 디코더는 신택스 요소 1과 신택스 요소 2에 대해 하나의 컨텍스트 모델만 저장하면 되므로, 비디오 디코더가 차지하는 저장 공간이 줄어든다.
따라서, 본 발명의 실시예는, 현재 블록 내의 엔트로피 인코딩될 신택스 요소를 획득하고 - 현재 블록 내의 엔트로피 인코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 -, 현재 블록 내의 엔트로피 인코딩될 신택스 요소에 대해 엔트로피 인코딩을 수행하도록 구성된 엔트로피 인코딩 유닛(270) - 현재 블록 내의 엔트로피 인코딩될 신택스 요소에 대해 엔트로피 인코딩이 수행될 경우, 현재 블록 내의 신택스 요소 1에 대한 엔트로피 인코딩은 미리 설정된 컨텍스트 모델을 사용하여 완료되고, 현재 블록 내의 신택스 요소 2에 대한 엔트로피 인코딩은 컨텍스트 모델을 사용하여 완료됨 - 과, 현재 블록 내에 있고 엔트로피 인코딩을 통해 획득되는 신택스 요소를 포함하는 비트스트림을 출력하도록 구성된 출력부(272)를 포함하는 비디오 인코더(20)를 제공한다. 현재 블록에 대해 엔트로피 인코딩이 수행될 때 사용되는 컨텍스트 모델은 도 10에 도시된 방법에서의 컨텍스트 모델과 동일하다. 이 실시예에서, 현재 블록 내의 신택스 요소 1 및 신택스 요소 2가 하나의 컨텍스트 모델을 공유하기 때문에, 인코더는 엔트로피 인코딩을 수행할 때 컨텍스트 모델을 확인할 필요가 없어, 인코더에 의한 비디오 인코딩 수행 효율을 향상시킨다. 또한, 비디오 인코더는 신택스 요소 1과 신택스 요소 2에 대해 하나의 컨텍스트 모델만 저장하면 되므로, 비디오 인코더가 차지하는 저장 공간이 줄어든다.
본 발명의 일 실시예는, 엔트로피 디코딩 유닛(304), 예측 처리 유닛(360), 및 재구성 유닛(314)을 포함하는 비디오 디코더(30)를 제공한다.
엔트로피 디코딩 유닛(304)은, 수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소를 획득하고 - 현재 블록 내의 엔트로피 디코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 - 와, 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하며 - 현재 블록 내의 신택스 요소 1에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 현재 블록 내의 신택스 요소 2에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정됨 - 와, 현재 블록 내의 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하도록 구성된다.
일 구현예에서, 현재 블록 내의 신택스 요소 1이 affine_merge_flag이거나, 또는 현재 블록 내의 신택스 요소 2가 affine_inter_flag이다.
일 구현예에서, 현재 블록 내의 신택스 요소 1이 subblock_merge_flag이거나, 또는 현재 블록 내의 신택스 요소 2가 affine_inter_flag이다.
일 구현예에셔, 엔트로피 디코딩 유닛(304)은, 현재 블록의 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2와, 현재 블록의 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 기초하여 현재 블록 내의 신택스 요소 1의 컨텍스트 인덱스 - 현재 블록 내의 신택스 요소 1의 컨텍스트 인덱스는 현재 블록 내의 신택스 요소 1에 대응하는 컨텍스트 모델을 나타내는 데 사용됨 - 를 결정하거나, 또는
현재 블록의 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2와, 현재 블록의 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 기초하여 현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스 - 현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스는 현재 블록 내의 신택스 요소 2에 대응하는 컨텍스트 모델을 나타내는 데 사용됨 - 를 결정하도록 구성된다.
예를 들어, 현재 블록 내의 신택스 요소 1의 컨텍스트 인덱스의 값이, 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값의 합이거나, 또는
현재 블록 내의 상기 신택스 요소 2의 컨텍스트 인덱스의 값이, 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 상기 좌측 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값의 합이다.
예를 들어, 현재 블록 내의 신택스 요소 1의 컨텍스트 인덱스의 값이, 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값에 대해 OR 연산을 수행하여 얻은 결과이거나, 또는
상기 현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스의 값이, 상기 상부 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 상기 좌측 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값에 대해 OR 연산을 수행하여 얻은 결과이다.
예측 처리 유닛(360)은, 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 현재 블록에 대해 예측 처리를 수행하여, 현재 블록의 예측 블록을 획득하도록 구성된다.
재구성 유닛(314)은 현재 블록의 예측 블록에 기초하여 현재 블록의 재구성된 이미지를 획득하도록 구성된다.
이 실시예에서, 현재 블록 내의 신택스 요소 1 및 신택스 요소 2가 하나의 컨텍스트 모델을 공유하기 때문에, 비디오 인코더는 신택스 요소 1 및 신택스 요소 2에 대해 하나의 컨텍스트 모델만 저장하면 되어, 비디오 인코더의 저장 공간을 덜 차지한다.
따라서, 본 발명의 일 실시예는 또한, 현재 블록 내의 엔트로피 인코딩될 신택스 요소 - 현재 블록 내의 엔트로피 인코딩될 신택스 요소는 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 - 를 획득하고, 엔트로피 인코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하며 - 현재 블록 내의 신택스 요소 1에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 현재 블록 내의 신택스 요소 2에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정됨 -, 현재 블록 내의 엔트로피 인코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 인코딩될 신택스 요소에 대해 엔트로피 인코딩을 수행하도록 구성된 엔트로피 인코딩 유닛(270)과, 현재 블록 내에 있고 엔트로피 인코딩을 통해 획득되는 신택스 요소를 포함하는 비트스트림을 출력하도록 구성된 출력부(272)를 포함하는 비디오 인코더를 제공한다. 현재 블록에 대해 엔트로피 인코딩이 수행될 때 사용되는 컨텍스트 모델은 도 11에 도시된 비디오 디코딩 방법에서 설정된 컨텍스트 모델과 동일하다. 이 실시예에서, 현재 블록 내의 신택스 요소 1 및 신택스 요소 2가 하나의 컨텍스트 모델을 공유하기 때문에, 비디오 인코더는 신택스 요소 1 및 신택스 요소 2에 대해 하나의 컨텍스트 모델만 저장하면 되어, 비디오 인코더의 저장 공간을 덜 차지한다.
본 발명의 일 실시예는, 엔트로피 디코딩 유닛(304), 예측 처리 유닛(360), 및 재구성 유닛(314)을 포함하는 비디오 디코더(30)를 제공한다.
엔트로피 디코딩 유닛(304)은, 수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소를 획득하고 - 현재 블록 내의 엔트로피 디코딩될 신택스 요소는 현재 블록 내의 신택스 요소 3 또는 현재 블록 내의 신택스 요소 4를 포함함 -, 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하며 - 현재 블록 내의 신택스 요소 3에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 현재 블록 내의 신택스 요소 4에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정됨 -, 현재 블록 내의 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하도록 구성된다.
미리 설정된 컨텍스트 모델 세트는 1, 2, 3, 4, 또는 5개의 모델을 포함한다. 미리 설정된 컨텍스트 모델 세트가 하나의 컨텍스트 모델만 포함할 경우, 미리 설정된 컨텍스트 모델 세트는 하나의 컨텍스트 모델이다.
일 구현예에서, 현재 블록 내의 신택스 요소 3이 merge_idx이고, 현재 블록의 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되거나, 현재 블록 내의 신택스 요소 4가 affine_merge_idx이고, 현재 블록의 아핀 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되거나, 또는
상기 현재 블록 내의 상기 신택스 요소 3이 merge_idx이고, 상기 현재 블록의 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되거나, 또는, 상기 현재 블록 내의 상기 신택스 요소 4가 subblock_merge_idx이고, 서브블록 병합 후보 리스트의 인덱스 값을 나타내는 데 사용된다.
예측 처리 유닛(360)은, 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 현재 블록에 대해 예측 처리를 수행하여, 현재 블록의 예측 블록을 획득하도록 구성된다.
재구성 유닛(314)은 현재 블록의 예측 블록에 기초하여 현재 블록의 재구성된 이미지를 획득하도록 구성된다.
이 실시예에서, 현재 블록 내의 신택스 요소 3 및 신택스 요소 4가 하나의 컨텍스트 모델을 공유하기 때문에, 비디오 디코더는 신택스 요소 3 및 신택스 요소 4에 대해 하나의 컨텍스트 모델만 저장하면 되어, 비디오 디코더의 저장 공간을 덜 차지한다.
따라서, 본 발명의 일 실시예는 또한, 현재 블록 내의 엔트로피 인코딩될 신택스 요소 - 현재 블록 내의 엔트로피 인코딩될 신택스 요소는 현재 블록 내의 신택스 요소 3 또는 현재 블록 내의 신택스 요소 4를 포함함 - 를 획득하고, 엔트로피 인코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하며 - 현재 블록 내의 신택스 요소 3에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 현재 블록 내의 신택스 요소 4에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정됨 -, 현재 블록 내의 엔트로피 인코딩될 신택스 요소에 대응하는 컨텍스트 모델에 기초하여 엔트로피 인코딩될 신택스 요소에 대해 엔트로피 인코딩을 수행하도록 구성된 엔트로피 인코딩 유닛(270)과, 현재 블록 내에 있고 엔트로피 인코딩을 통해 획득되는 신택스 요소를 포함하는 비트스트림을 출력하도록 구성된 출력부(272)를 포함하는, 비디오 인코더를 제공한다. 현재 블록에 대해 엔트로피 인코딩이 수행될 때 사용되는 컨텍스트 모델은 도 12에 도시된 비디오 디코딩 방법에서 설정된 컨텍스트 모델과 동일하다. 이 실시예에서, 현재 블록 내의 신택스 요소 3 및 신택스 요소 4가 하나의 컨텍스트 모델을 공유하기 때문에, 비디오 인코더는 신택스 요소 3 및 신택스 요소 4에 대해 하나의 컨텍스트 모델만 저장하면 되어, 비디오 인코더의 저장 공간을 덜 차지한다.
본 발명의 실시예 1은, 표 4에서 볼 수 있는 바와 같이, affine_merge_flag 및 affine_inter_flag가 하나의 컨텍스트 세트를 공유하고(이 세트는 3개의 컨텍스트를 포함함), 각 세트에 사용된 실제 컨텍스트 인덱스는 현재 디코딩 블록의 좌측 이웃 블록 내의 2개의 신택스 요소에 대해 OR 연산을 수행하여 얻은 값과 현재 디코딩 블록의 상부 이웃 블록 내의 2개의 신택스 요소에 대해 OR 연산을 수행하여 얻은 값을 더하여 얻은 결과와 동일하다. 여기서, "|"는 OR 연산을 나타낸다. 본 발명의 실시예 1에서, affine_merge_flag 및 affine_inter_flag에 대한 컨텍스트의 개수는 3으로 감소한다.
본 발명의 실시예 2는, 표 5에서 볼 수 있는 바와 같이, affine_merge_flag 및 affine_inter_flag가 하나의 컨텍스트 세트를 공유하고(이 세트는 2개의 컨텍스트를 포함함), 각 세트에 사용된 실제 컨텍스트 인덱스는 현재 디코딩 블록의 좌측 이웃 블록 내의 2개의 신택스 요소에 대해 OR 연산을 수행하여 얻은 값과 현재 디코딩 블록의 상부 이웃 블록 내의 2개의 신택스 요소에 대해 OR 연산을 수행하여 얻은 값에 대해 OR 연산을 수행하여 얻은 결과와 동일하다. 여기서, "|"는 OR 연산을 나타낸다. 본 발명의 실시예 2에서, affine_merge_flag 및 affine_inter_flag에 대한 컨텍스트의 개수는 2로 감소한다.
본 발명의 실시예 3은 affine_merge_flag 및 affine_inter_flag가 하나의 컨텍스트를 공유할 것을 제안한다. 본 발명의 실시예 3에서, affine_merge_flag 컨텍스트의 수와 affine_inter_flag 컨텍스트의 수는 1로 감소한다.
종래 기술에서, 절단된 일진 코드(truncated unary code)를 사용하여 merge_idx 및 affine_merge_idx에 대해 이진화(binarization)가 수행되며, 2개의 상이한 컨텍스트 세트(각 컨텍스트 세트는 5개의 컨텍스트를 포함함)가 CABAC에 사용되고, 이진화 후에 각각의 이진 비트에 대해 상이한 컨텍스트가 사용된다. 종래 기술에서, merge_idx 및 affine_merge_idx에 대한 컨텍스트의 개수는 10이다.
본 발명의 실시예 4는 merge_idx 및 affine_merge_idx가 하나의 컨텍스트 세트(각 컨텍스트 세트는 5개의 컨텍스트를 포함함)를 공유할 것을 제안한다. 본 발명의 실시예 4에서, merge_idx 및 affine_merge_idx에 대한 컨텍스트의 개수는 5로 감소한다.
일부 다른 기술에서, 표 1의 신택스 요소 affine_merge_flag[x0][y0]은 subblock_merge_flag[x0][y0]로 대체될 수 있고, 표 1의 신택스 요소 affine_merge_idx[x0][y0]는 subblock_merge_idx[x0][y0]로 대체될 수 있으며, 서브블록 병합 후보 리스트의 인덱스 값을 나타내는데 사용된다.
이 경우, 본 발명의 실시예 1 내지 실시예 4가 여전히 적용될 수 있는데, 즉 subblock_merge_flag 및 affine_inter_flag가 하나의 컨텍스트 세트(또는 컨텍스트) 및 하나의 인덱스 획득 방법을 공유하고, merge_idx 및 subblock_merge_idx가 하나의 컨텍스트 세트(또는 컨텍스트)를 공유한다.
본 발명의 실시예는 또한, 전술한 방법들 중 어느 한 방법을 수행하도록 구성된 실행 회로를 포함하는 비디오 디코더를 제공한다.
본 발명의 일 실시예는 또한, 적어도 하나의 프로세서와, 적어도 하나의 프로세서에 연결된 비휘발성 컴퓨터 판독가능 저장 매체를 포함하는 비디오 디코더를 제공한다. 비휘발성 컴퓨터 판독가능 저장 매체는 적어도 하나의 프로세서에 의해 실행될 수 있는 컴퓨터 프로그램을 저장하고, 컴퓨터 프로그램이 적어도 하나의 프로세서에 의해 실행될 경우, 비디오 디코더가 전술한 방법들 중 어느 한 방법을 수행할 수 있다.
본 발명의 실시예는 또한, 프로세서에 의해 실행될 수 있는 컴퓨터 프로그램을 저장하도록 구성된 컴퓨터 판독가능 저장 매체를 제공한다. 적어도 하나의 프로세서에 의해 컴퓨터 프로그램이 실행될 경우, 전술한 방법들 중 어느 한 방법이 수행된다.
본 발명의 일 실시예는 또한, 컴퓨터 프로그램을 제공한다. 컴퓨터 프로그램이 실행될 경우, 전술한 방법들 중 어느 한 방법이 수행된다.
전술한 예들 중 하나 이상의 예에서, 기술된 기능은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합에 의해 구현될 수 있다. 소프트웨어로 구현될 경우, 이들 기능은 컴퓨터 판독가능 매체에 저장되거나 또는 이를 통해 전송될 수 있고, 하드웨어 기반의 처리 유닛에 의해 하나 이상의 명령어 또는 코드로서 실행될 수 있다. 컴퓨터 판독가능 매체는, 데이터 저장 매체 또는 통신 매체와 같은 유형의(tangible) 매체에 대응하는 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 통신 매체는, 예를 들면, 통신 프로토콜에 따라 한 장소에서 다른 장소로 컴퓨터 프로그램을 전송하는 것을 가능하게 하는 임의의 매체를 포함한다. 그러므로, 컴퓨터 판독가능 매체는 일반적으로 (1) 비일시적 유형의 컴퓨터 판독가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는, 본 발명에서 설명한 기술들을 구현하기 위한 명령어, 코드 및/또는 데이터 구조를 가져오기 위해, 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수 있다.
제한이 아니라 예로서, 이러한 컴퓨터 판독가능 매체는, RAM, ROM, EEPROM, CD-ROM 또는 기타 광 디스크 저장 장치, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 플레시 메모리 또는 필요한 프로그램 코드를 명령어 또는 데이터 구조 형태로 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 기타 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 지칭될 수도 있다. 예를 들어, 동축 케이블, 광섬유 케이블, 꼬임선(twisted pair), 디지털 가입자 회선(digital subscriber line, DSL), 또는 적외선, 무선 및 마이크로파와 같은 무선 기술을 이용하여 명령어가 웹사이트, 서버, 또는 다른 원격 소스로부터 전송되면, 동축 케이블, 광섬유 케이블, 꼬임선, DSL 또는 적외선, 무선 및 마이크로파와 같은 무선 기술이 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체는 접속, 반송파, 신호 또는 임의의 다른 전송 매체를 포함하지 않고, 실제로는 비일시적 유형의 저장 매체에 관련됨을 이해해야 한다. 본 명세서에서 사용되는 바와 같이, 디스크 및 광 디스크는 컴팩트 디스크(compact disc, CD), 레이저 디스크, 광 디스크, 디지털 다목적 디스크(digital versatile disc, DVD), 플로피 디스크 및 블루레이 디스크를 포함한다. 디스크는 일반적으로 데이터를 자기적으로 재생하고, 광 디스크는 레이저를 사용하여 데이터를 광학적으로 재생한다. 전술한 것들의 임의의 조합도 컴퓨터 판독가능 매체의 범위 내에 있을 것이다.
명령어는 하나 이상의 프로세서에 의해 실행될 수 있고, 하나 이상의 프로세서는, 예를 들어 하나 이상의 디지털 신호 프로세서(digital signal processor, DSP), 하나 이상의 범용 마이크로프로세서, 하나 이상의 주문식 집적 회로(application specific integrated circuit, ASIC), 하나 이상의 필드 프로그래머블 로직 어레이(field programmable logic arrays, FPGA), 또는 다른 등가의 집적 또는 이산 로직 회로이다. 따라서, 본 명세서에 사용되는 "프로세서"라는 용어는 본 명세서에 기술된 기술을 구현하기 위해 적용할 수 있는 전술한 구조 또는 다른 구조들 중 어느 하나를 나타낼 수 있다. 또한, 본 명세서에 기술된 기능들은 인코딩 및 디코딩을 수행하도록 구성된 전용 하드웨어 및/또는 소프트웨어 모듈 내에서 제공될 수도 있고, 또는 결합 코덱에 통합될 수도 있다. 또한, 이들 기술은 하나 이상의 회로 또는 로직 요소로 완전히 구현될 수 있다.
본 개시의 기술은 무선 핸드셋, 집적 회로(integrated circuit, IC), 또는 IC 세트(예컨대, 칩셋)를 포함하는 복수의 디바이스 또는 장치로 구현될 수 있다. 개시된 기술을 수행하도록 구성된 장치의 기능을 강조하기 위해 다양한 구성요소, 모듈 또는 유닛을 설명하였는데, 이들은 반드시 상이한 하드웨어 유닛으로 구현되지는 않는다. 실제로는, 전술한 바와 같이, 다양한 유닛들이 적절한 소프트웨어 및/또는 펌웨어와 함께 코덱 하드웨어 유닛 내에 결합될 수도 있고, 상호 호환성 하드웨어 유닛 세트에 의해 제공될 수 있다. 이들 하드웨어 유닛은 전술한 하나 이상의 프로세서를 포함한다.

Claims (29)

  1. 비디오 디코딩 방법으로서,
    수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소 - 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소는 상기 현재 블록 내의 신택스 요소 1 또는 상기 현재 블록 내의 신택스 요소 2를 포함함 - 를 획득하는 단계와,
    상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하는 단계 - 상기 현재 블록 내의 상기 신택스 요소 1에 대한 엔트로피 디코딩이 미리 설정된 컨텍스트 모델을 사용하여 완료되거나, 또는 상기 현재 블록 내의 상기 신택스 요소 2에 대한 엔트로피 디코딩이 상기 컨텍스트 모델을 사용하여 완료됨 - 와,
    상기 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 상기 현재 블록에 대해 예측 처리를 수행하여, 상기 현재 블록의 예측 블록을 획득하는 단계와,
    상기 현재 블록의 상기 예측 블록에 기초하여 상기 현재 블록의 재구성된 이미지를 획득하는 단계를 포함하는,
    비디오 디코딩 방법.
  2. 비디오 디코딩 방법으로서,
    수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소 - 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소는 상기 현재 블록 내의 신택스 요소 1 또는 상기 현재 블록 내의 신택스 요소 2를 포함함 - 를 획득하는 단계와,
    상기 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하는 단계 - 상기 현재 블록 내의 상기 신택스 요소 1에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 상기 현재 블록 내의 상기 신택스 요소 2에 대응하는 컨텍스트 모델이 상기 미리 설정된 컨텍스트 모델 세트로부터 결정됨 - 와,
    상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소에 대응하는 상기 컨텍스트 모델에 기초하여 상기 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하는 단계와,
    상기 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 상기 현재 블록에 대해 예측 처리를 수행하여, 상기 현재 블록의 예측 블록을 획득하는 단계와,
    상기 현재 블록의 상기 예측 블록에 기초하여 상기 현재 블록의 재구성된 이미지를 획득하는 단계를 포함하는,
    비디오 디코딩 방법.
  3. 제2항에 있어서,
    상기 미리 설정된 컨텍스트 모델 세트 내의 컨텍스트 모델의 개수는 2개 또는 3개인,
    비디오 디코딩 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 현재 블록 내의 상기 신택스 요소 1에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되는 것은,
    상기 현재 블록의 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2와, 상기 현재 블록의 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 기초하여 상기 현재 블록 내의 상기 신택스 요소 1의 컨텍스트 인덱스 - 상기 현재 블록 내의 상기 신택스 요소 1의 컨텍스트 인덱스는 상기 현재 블록 내의 상기 신택스 요소 1에 대응하는 컨텍스트 모델을 나타내는 데 사용됨 - 를 결정하는 것을 포함하고,
    상기 현재 블록 내의 상기 신택스 요소 2에 대응하는 컨텍스트 모델이 상기 미리 설정된 컨텍스트 모델 세트로부터 결정되는 것은,
    상기 현재 블록의 상기 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2와, 상기 현재 블록의 상기 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 기초하여 상기 현재 블록 내의 상기 신택스 요소 2의 컨텍스트 인덱스 - 상기 현재 블록 내의 상기 신택스 요소 2의 컨텍스트 인덱스는 상기 현재 블록 내의 상기 신택스 요소 2에 대응하는 컨텍스트 모델을 나타내는 데 사용됨 - 를 결정하는 것을 포함하는,
    비디오 디코딩 방법.
  5. 제4항에 있어서,
    상기 미리 설정된 컨텍스트 모델 세트 내의 상기 컨텍스트 모델의 개수가 3개인 경우, 상기 현재 블록 내의 상기 신택스 요소 1의 컨텍스트 인덱스의 값이 상기 상부 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 상기 좌측 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값의 합이거나, 또는
    상기 현재 블록 내의 상기 신택스 요소 2의 컨텍스트 인덱스의 값이, 상기 상부 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 상기 좌측 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값의 합인,
    비디오 디코딩 방법.
  6. 제4항에 있어서,
    상기 미리 설정된 컨텍스트 모델 세트 내의 상기 컨텍스트 모델의 개수가 2개인 경우, 상기 현재 블록 내의 상기 신택스 요소 1의 컨텍스트 인덱스의 값이 상기 상부 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 상기 좌측 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값에 대해 OR 연산을 수행하여 얻은 결과이거나, 또는
    상기 현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스의 값이, 상기 상부 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 상기 좌측 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값에 대해 OR 연산을 수행하여 얻은 결과인,
    비디오 디코딩 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 현재 블록 내의 상기 신택스 요소 1이 affine_merge_flag이고, 아핀 모션 모델 기반의 병합 모드(affine motion model-based merge mode)가 상기 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는 상기 현재 블록 내의 상기 신택스 요소 2가 affine_inter_flag이고, 상기 현재 블록이 위치해 있는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우 아핀 모션 모델 기반의 AMVP 모드가 상기 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는
    상기 현재 블록 내의 상기 신택스 요소 1이 subblock_merge_flag이고, 서브블록 기반의 병합 모드가 상기 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는 상기 현재 블록 내의 상기 신택스 요소 2가 affine_inter_flag이고, 상기 현재 블록이 위치해 있는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우 아핀 모션 모델 기반의 AMVP 모드가 상기 현재 블록에 사용되는지 여부를 나타내는 데 사용되는,
    비디오 디코딩 방법.
  8. 비디오 디코딩 방법으로서,
    수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소 - 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소는 상기 현재 블록 내의 신택스 요소 3 또는 상기 현재 블록 내의 신택스 요소 4를 포함함 - 를 획득하는 단계와,
    상기 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하는 단계 - 상기 현재 블록 내의 상기 신택스 요소 3에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 상기 현재 블록 내의 상기 신택스 요소 4에 대응하는 컨텍스트 모델이 상기 미리 설정된 컨텍스트 모델 세트로부터 결정됨 - 와,
    상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소에 대응하는 상기 컨텍스트 모델에 기초하여 상기 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하는 단계와,
    상기 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 상기 현재 블록에 대해 예측 처리를 수행하여, 상기 현재 블록의 예측 블록을 획득하는 단계와,
    상기 현재 블록의 상기 예측 블록에 기초하여 상기 현재 블록의 재구성된 이미지를 획득하는 단계를 포함하는,
    비디오 디코딩 방법.
  9. 제8항에 있어서,
    상기 미리 설정된 컨텍스트 모델 세트는 5개의 컨텍스트 모델을 포함하는,
    비디오 디코딩 방법.
  10. 제8항 또는 제9항에 있어서,
    상기 현재 블록 내의 상기 신택스 요소 3이 merge_idx이고, 상기 현재 블록의 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되거나, 상기 현재 블록 내의 상기 신택스 요소 4가 affine_merge_idx이고, 상기 현재 블록의 아핀 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되거나, 또는
    상기 현재 블록 내의 상기 신택스 요소 3이 merge_idx이고, 상기 현재 블록의 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되거나, 또는, 상기 현재 블록 내의 상기 신택스 요소 4가 subblock_merge_idx이고, 서브블록 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되는,
    비디오 디코딩 방법.
  11. 비디오 디코딩 방법으로서,
    수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소 - 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소는 상기 현재 블록 내의 신택스 요소 1 또는 상기 현재 블록 내의 신택스 요소 2를 포함함 - 를 획득하는 단계와,
    상기 현재 블록의 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2의 값과 상기 현재 블록의 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2의 값에 기초하여 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소의 컨텍스트 인덱스의 값을 결정하는 단계와,
    상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소의 상기 컨텍스트 인덱스의 값에 기초하여 상기 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하는 단계와,
    상기 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 상기 현재 블록에 대해 예측 처리를 수행하여, 상기 현재 블록의 예측 블록을 획득하는 단계와,
    상기 현재 블록의 상기 예측 블록에 기초하여 상기 현재 블록의 재구성된 이미지를 획득하는 단계를 포함하는,
    비디오 디코딩 방법.
  12. 제11항에 있어서,
    상기 현재 블록 내의 상기 신택스 요소 1이 affine_merge_flag이고, 아핀 모션 모델 기반의 병합 모드가 상기 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는 상기 현재 블록 내의 상기 신택스 요소 2가 affine_inter_flag이고, 상기 현재 블록이 위치해 있는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우 아핀 모션 모델 기반의 AMVP 모드가 상기 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는
    상기 현재 블록 내의 상기 신택스 요소 1이 subblock_merge_flag이고, 서브블록 기반의 병합 모드가 상기 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는 상기 현재 블록 내의 상기 신택스 요소 2가 affine_inter_flag이고, 상기 현재 블록이 위치해 있는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우 아핀 모션 모델 기반의 AMVP 모드가 상기 현재 블록에 사용되는지 여부를 나타내는 데 사용되는,
    비디오 디코딩 방법.
  13. 제11항 또는 제12항에 있어서,
    상기 현재 블록의 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2의 값과 상기 현재 블록의 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2의 값에 기초하여 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소의 컨텍스트 인덱스의 값을 결정하는 단계는,
    논리 표현식 Context index = (condL && availableL) + (condA && availableA)에 따라 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소의 상기 컨텍스트 인덱스의 값을 결정하는 단계를 포함하되,
    condL = 신택스 요소 1 [x0-1][y0] | 신택스 요소 2 [x0-1][y0]이고, 신택스 요소 1 [x0-1][y0]은 상기 좌측 이웃 블록 내의 상기 신택스 요소 1의 값을 나타내고, 신택스 요소 2 [x0-1][y0]는 상기 좌측 이웃 블록 내의 상기 신택스 요소 2의 값을 나타내며,
    condA = 신택스 요소 1 [x0][y0-1] | 신택스 요소 2 [x0][y0-1]이고, 신택스 요소 1 [x0][y0-1]은 상기 상부 이웃 블록 내의 상기 신택스 요소 1의 값을 나타내고, 신택스 요소 2 [x0][y0-1] 는 상기 상부 이웃 블록 내의 상기 신택스 요소 2의 값을 나타내며,
    availableL은 상기 좌측 이웃 블록이 이용가능한지 여부를 나타내고, availableA는 상기 상부 이웃 블록이 이용가능한지 여부를 나타내는,
    비디오 디코딩 방법.
  14. 비디오 디코더로서,
    수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소 - 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소는 상기 현재 블록 내의 신택스 요소 1 또는 현재 블록 내의 신택스 요소 2를 포함함 - 를 획득하고, 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하도록 - 상기 현재 블록 내의 상기 신택스 요소 1에 대한 엔트로피 디코딩이 미리 설정된 컨텍스트 모델을 사용하여 완료되거나, 또는 상기 현재 블록 내의 상기 신택스 요소 2에 대한 엔트로피 디코딩이 상기 컨텍스트 모델을 사용하여 완료됨 - 구성된, 엔트로피 디코딩 유닛과,
    상기 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 상기 현재 블록에 대해 예측 처리를 수행하여, 상기 현재 블록의 예측 블록을 획득하도록 구성된, 예측 처리 유닛과,
    상기 현재 블록의 상기 예측 블록에 기초하여 상기 현재 블록의 재구성된 이미지를 획득하도록 구성된, 재구성 유닛을 포함하는,
    비디오 디코더.
  15. 비디오 디코더로서,
    수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소 - 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소는 상기 현재 블록 내의 신택스 요소 1 또는 상기 현재 블록 내의 신택스 요소 2를 포함함 - 를 획득하고, 상기 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하며 - 상기 현재 블록 내의 상기 신택스 요소 1에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 상기 현재 블록 내의 상기 신택스 요소 2에 대응하는 컨텍스트 모델이 상기 미리 설정된 컨텍스트 모델 세트로부터 결정됨 -, 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소에 대응하는 상기 컨텍스트 모델에 기초하여 상기 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하도록 구성된, 엔트로피 디코딩 유닛과,
    상기 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 상기 현재 블록에 대해 예측 처리를 수행하여, 상기 현재 블록의 예측 블록을 획득하도록 구성된, 예측 처리 유닛과,
    상기 현재 블록의 상기 예측 블록에 기초하여 상기 현재 블록의 재구성된 이미지를 획득하도록 구성된, 재구성 유닛을 포함하는,
    비디오 디코더.
  16. 제15항에 있어서,
    상기 미리 설정된 컨텍스트 모델 세트 내의 컨텍스트 모델의 개수는 2개 또는 3개인,
    비디오 디코더.
  17. 제15항 또는 제16항에 있어서,
    상기 엔트로피 디코딩 유닛은 또한,
    상기 현재 블록의 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2와, 상기 현재 블록의 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 기초하여 상기 현재 블록 내의 상기 신택스 요소 1의 컨텍스트 인덱스 - 상기 현재 블록 내의 상기 신택스 요소 1의 컨텍스트 인덱스는 상기 현재 블록 내의 상기 신택스 요소 1에 대응하는 컨텍스트 모델을 나타내는 데 사용됨 - 를 결정하고,
    상기 현재 블록의 상기 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2와, 상기 현재 블록의 상기 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2에 기초하여 상기 현재 블록 내의 상기 신택스 요소 2의 컨텍스트 인덱스 - 상기 현재 블록 내의 상기 신택스 요소 2의 컨텍스트 인덱스는 상기 현재 블록 내의 상기 신택스 요소 2에 대응하는 컨텍스트 모델을 나타내는 데 사용됨 - 를 결정하도록 구성되는,
    비디오 디코더.
  18. 제17항에 있어서,
    상기 미리 설정된 컨텍스트 모델 세트 내의 상기 컨텍스트 모델의 개수가 3개인 경우, 상기 현재 블록 내의 상기 신택스 요소 1의 컨텍스트 인덱스의 값이 상기 상부 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 상기 좌측 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값의 합이거나, 또는
    상기 현재 블록 내의 상기 신택스 요소 2의 컨텍스트 인덱스의 값이, 상기 상부 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 상기 좌측 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값의 합인,
    비디오 디코더.
  19. 제17항에 있어서,
    상기 미리 설정된 컨텍스트 모델 세트 내의 상기 컨텍스트 모델의 개수가 2개인 경우, 상기 현재 블록 내의 상기 신택스 요소 1의 컨텍스트 인덱스의 값이 상기 상부 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 상기 좌측 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값에 대해 OR 연산을 수행하여 얻은 결과이거나, 또는
    상기 현재 블록 내의 신택스 요소 2의 컨텍스트 인덱스의 값이, 상기 상부 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값과 상기 좌측 이웃 블록 내의 상기 신택스 요소 1 및 상기 신택스 요소 2에 대해 OR 연산을 수행하여 얻은 값에 대해 OR 연산을 수행하여 얻은 결과인,
    비디오 디코더.
  20. 제14항 내지 제19항 중 어느 한 항에 있어서,
    상기 현재 블록 내의 상기 신택스 요소 1이 affine_merge_flag이고, 아핀 모션 모델 기반의 병합 모드가 상기 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는 상기 현재 블록 내의 상기 신택스 요소 2가 affine_inter_flag이고, 상기 현재 블록이 위치해 있는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우 아핀 모션 모델 기반의 AMVP 모드가 상기 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는
    상기 현재 블록 내의 상기 신택스 요소 1이 subblock_merge_flag이고, 서브블록 기반의 병합 모드가 상기 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는 상기 현재 블록 내의 상기 신택스 요소 2가 affine_inter_flag이고, 상기 현재 블록이 위치해 있는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우 아핀 모션 모델 기반의 AMVP 모드가 상기 현재 블록에 사용되는지 여부를 나타내는 데 사용되는,
    비디오 디코더.
  21. 비디오 디코더로서,
    수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소 - 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소는 상기 현재 블록 내의 신택스 요소 3 또는 상기 현재 블록 내의 신택스 요소 4를 포함함 - 를 획득하고, 상기 엔트로피 디코딩될 신택스 요소에 대응하는 컨텍스트 모델을 획득하며 - 상기 현재 블록 내의 상기 신택스 요소 3에 대응하는 컨텍스트 모델이 미리 설정된 컨텍스트 모델 세트로부터 결정되거나, 또는 상기 현재 블록 내의 상기 신택스 요소 4에 대응하는 컨텍스트 모델이 상기 미리 설정된 컨텍스트 모델 세트로부터 결정됨 -, 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소에 대응하는 상기 컨텍스트 모델에 기초하여 상기 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하도록 구성된, 엔트로피 디코딩 유닛과,
    상기 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 상기 현재 블록에 대해 예측 처리를 수행하여, 상기 현재 블록의 예측 블록을 획득하도록 구성된, 예측 처리 유닛과,
    상기 현재 블록의 상기 예측 블록에 기초하여 상기 현재 블록의 재구성된 이미지를 획득하도록 구성된, 재구성 유닛을 포함하는,
    비디오 디코더.
  22. 제21항에 있어서,
    상기 미리 설정된 컨텍스트 모델 세트는 5개의 컨텍스트 모델을 포함하는,
    비디오 디코더.
  23. 제21항 또는 제22항에 있어서,
    상기 현재 블록 내의 신택스 요소 3이 merge_idx이고, 상기 현재 블록의 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되거나, 상기 현재 블록 내의 신택스 요소 4가 affine_merge_idx이고, 상기 현재 블록의 아핀 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되거나, 또는
    상기 현재 블록 내의 상기 신택스 요소 3이 merge_idx이고, 상기 현재 블록의 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되거나, 또는, 상기 현재 블록 내의 상기 신택스 요소 4가 subblock_merge_idx이고, 서브블록 병합 후보 리스트의 인덱스 값을 나타내는 데 사용되는,
    비디오 디코더.
  24. 비디오 디코더로서,
    수신된 비트스트림을 파싱하여 현재 블록 내의 엔트로피 디코딩될 신택스 요소 - 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소는 상기 현재 블록 내의 신택스 요소 1 또는 상기 현재 블록 내의 신택스 요소 2를 포함함 - 를 획득하고, 상기 현재 블록의 좌측 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2의 값과 상기 현재 블록의 상부 이웃 블록 내의 신택스 요소 1 및 신택스 요소 2의 값에 기초하여 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스의 컨텍스트 인덱스의 값을 결정하며, 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소의 값에 기초하여 상기 엔트로피 디코딩될 신택스 요소에 대해 엔트로피 디코딩을 수행하도록 구성된, 엔트로피 디코딩 유닛과,
    상기 현재 블록 내에 있으며 엔트로피 디코딩을 통해 획득되는 신택스 요소에 기초하여 상기 현재 블록에 대해 예측 처리를 수행하여, 상기 현재 블록의 예측 블록을 획득하도록 구성된, 예측 처리 유닛과,
    상기 현재 블록의 상기 예측 블록에 기초하여 상기 현재 블록의 재구성된 이미지를 획득하도록 구성된, 재구성 유닛을 포함하는,
    비디오 디코더.
  25. 제24항에 있어서,
    상기 현재 블록 내의 상기 신택스 요소 1이 affine_merge_flag이고, 아핀 모션 모델 기반의 병합 모드가 상기 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는 상기 현재 블록 내의 상기 신택스 요소 2가 affine_inter_flag이고, 상기 현재 블록이 위치해 있는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우 아핀 모션 모델 기반의 AMVP 모드가 상기 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는
    상기 현재 블록 내의 상기 신택스 요소 1이 subblock_merge_flag이고, 서브블록 기반의 병합 모드가 상기 현재 블록에 사용되는지 여부를 나타내는 데 사용되거나, 또는 상기 현재 블록 내의 상기 신택스 요소 2가 affine_inter_flag이고, 상기 현재 블록이 위치해 있는 슬라이스가 P-타입 슬라이스 또는 B-타입 슬라이스인 경우 아핀 모션 모델 기반의 AMVP 모드가 상기 현재 블록에 사용되는지 여부를 나타내는 데 사용되는,
    비디오 디코더.
  26. 제24항 또는 제25항에 있어서,
    상기 엔트로피 디코딩 유닛은 또한,
    논리 표현식 Context index = (condL && availableL) + (condA && availableA)에 따라 상기 현재 블록 내의 상기 엔트로피 디코딩될 신택스 요소의 상기 컨텍스트 인덱스의 값을 결정하되,
    condL = 신택스 요소 1 [x0-1][y0] | 신택스 요소 2 [x0-1][y0]이고, 신택스 요소 1 [x0-1][y0]은 상기 좌측 이웃 블록 내의 상기 신택스 요소 1의 값을 나타내고, 신택스 요소 2 [x0-1][y0]는 상기 좌측 이웃 블록 내의 상기 신택스 요소 2의 값을 나타내며,
    condA = 신택스 요소 1 [x0][y0-1] | 신택스 요소 2 [x0][y0-1] 이고, 신택스 요소 1 [x0][y0-1]은 상기 상부 이웃 블록 내의 상기 신택스 요소 1의 값을 나타내고, 신택스 요소 2 [x0][y0-1]는 상기 상부 이웃 블록 내의 상기 신택스 요소 2의 값을 나타내며,
    availableL은 상기 좌측 이웃 블록이 이용가능한지 여부를 나타내고, availableA는 상기 상부 이웃 블록이 이용가능한지 여부를 나타내는,
    비디오 디코딩 방법.
  27. 제1항 내지 제13항 중 어느 한 항에 따른 방법을 수행하도록 구성된 실행 회로를 포함하는,
    비디오 디코더.
  28. 비디오 디코더로서,
    적어도 하나의 프로세서와,
    상기 적어도 하나의 프로세서에 결합된 비휘발성 컴퓨터 판독가능 매체를 포함하되, 상기 비휘발성 컴퓨터 판독가능 저장 매체는 상기 적어도 하나의 프로세서에 의해 실행될 수 있는 컴퓨터 프로그램을 저장하고, 상기 컴퓨터 프로그램은 상기 적어도 하나의 프로세서에 의해 실행되며, 상기 비디오 디코더는 제1항 내지 제13항 중 어느 한 항에 따른 방법을 수행할 수 있는,
    비디오 디코더.
  29. 적어도 하나의 프로세서에 의해 실행될 수 있는 컴퓨터 프로그램을 저장하도록 구성된 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 프로그램은 상기 적어도 하나의 프로세서에 의해 실행되어 제1항 내지 제13항 중 어느 한 항에 따른 방법을 수행하는,
    컴퓨터 판독가능 저장 매체.
KR1020217007649A 2018-09-10 2019-09-10 비디오 디코딩 방법 및 비디오 디코더 KR102571317B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237028542A KR20230128578A (ko) 2018-09-10 2019-09-10 비디오 디코딩 방법 및 비디오 디코더

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811053068.0 2018-09-10
CN201811053068.0A CN110891180B (zh) 2018-09-10 2018-09-10 视频解码方法及视频解码器
PCT/CN2019/105024 WO2020052534A1 (zh) 2018-09-10 2019-09-10 视频解码方法及视频解码器

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237028542A Division KR20230128578A (ko) 2018-09-10 2019-09-10 비디오 디코딩 방법 및 비디오 디코더

Publications (2)

Publication Number Publication Date
KR20210036405A true KR20210036405A (ko) 2021-04-02
KR102571317B1 KR102571317B1 (ko) 2023-08-25

Family

ID=69745196

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217007649A KR102571317B1 (ko) 2018-09-10 2019-09-10 비디오 디코딩 방법 및 비디오 디코더
KR1020237028542A KR20230128578A (ko) 2018-09-10 2019-09-10 비디오 디코딩 방법 및 비디오 디코더

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020237028542A KR20230128578A (ko) 2018-09-10 2019-09-10 비디오 디코딩 방법 및 비디오 디코더

Country Status (15)

Country Link
US (3) US11706417B2 (ko)
EP (2) EP4283999A3 (ko)
JP (3) JP7164710B2 (ko)
KR (2) KR102571317B1 (ko)
CN (6) CN110891180B (ko)
AU (2) AU2019337242B2 (ko)
BR (1) BR112021004442A2 (ko)
CA (1) CA3116614A1 (ko)
ES (1) ES2965276T3 (ko)
HU (1) HUE064178T2 (ko)
MX (2) MX2021002747A (ko)
PL (1) PL3843398T3 (ko)
SG (1) SG11202101762PA (ko)
WO (1) WO2020052534A1 (ko)
ZA (1) ZA202200892B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2577318B (en) * 2018-09-21 2021-03-10 Canon Kk Video coding and decoding
US11997279B2 (en) * 2018-10-10 2024-05-28 Interdigital Vc Holdings, Inc. Affine mode signaling in video encoding and decoding
GB2580084B (en) * 2018-12-20 2022-12-28 Canon Kk Video coding and decoding
US11516489B2 (en) * 2019-06-24 2022-11-29 Tencent America LLC Method and apparatus for video coding
CN112135135A (zh) * 2019-06-24 2020-12-25 腾讯美国有限责任公司 视频解码方法、装置、计算机设备及存储介质
CN110533165B (zh) * 2019-08-16 2022-05-17 浪潮电子信息产业股份有限公司 一种图像处理方法、装置及设备
CN112135127B (zh) * 2019-11-05 2021-09-21 杭州海康威视数字技术股份有限公司 一种编解码方法、装置、设备及机器可读存储介质
WO2023197104A1 (zh) * 2022-04-11 2023-10-19 Oppo广东移动通信有限公司 一种编解码方法、编码器、解码器及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130016789A1 (en) * 2011-07-15 2013-01-17 General Instrument Corporation Context modeling techniques for transform coefficient level coding
KR20140130171A (ko) * 2012-05-29 2014-11-07 미디어텍 인크. 샘플 어댑티브 오프셋 정보를 부호화하는 방법 및 장치

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7599435B2 (en) * 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
US7777654B2 (en) * 2007-10-16 2010-08-17 Industrial Technology Research Institute System and method for context-based adaptive binary arithematic encoding and decoding
KR20110112168A (ko) * 2010-04-05 2011-10-12 삼성전자주식회사 내부 비트뎁스 확장에 기반한 비디오 부호화 방법 및 그 장치, 내부 비트뎁스 확장에 기반한 비디오 복호화 방법 및 그 장치
US9369736B2 (en) * 2010-04-05 2016-06-14 Samsung Electronics Co., Ltd. Low complexity entropy-encoding/decoding method and apparatus
WO2012163199A1 (en) 2011-05-27 2012-12-06 Mediatek Inc. Method and apparatus for line buffer reduction for video processing
US8995523B2 (en) * 2011-06-03 2015-03-31 Qualcomm Incorporated Memory efficient context modeling
CN107529708B (zh) * 2011-06-16 2019-05-07 Ge视频压缩有限责任公司 解码器、编码器、解码和编码视频的方法及存储介质
US9282338B2 (en) 2011-06-20 2016-03-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
CA2842646C (en) 2011-06-27 2018-09-04 Panasonic Corporation Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
US9167253B2 (en) * 2011-06-28 2015-10-20 Qualcomm Incorporated Derivation of the position in scan order of the last significant transform coefficient in video coding
AU2012278484B2 (en) * 2011-07-01 2016-05-05 Samsung Electronics Co., Ltd. Method and apparatus for entropy encoding using hierarchical data unit, and method and apparatus for decoding
US9800870B2 (en) * 2011-09-16 2017-10-24 Qualcomm Incorporated Line buffer reduction for short distance intra-prediction
US9838692B2 (en) * 2011-10-18 2017-12-05 Qualcomm Incorporated Detecting availabilities of neighboring video units for video coding
US9088796B2 (en) * 2011-11-07 2015-07-21 Sharp Kabushiki Kaisha Video decoder with enhanced CABAC decoding
US9237358B2 (en) 2011-11-08 2016-01-12 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding
CN102611888B (zh) * 2011-11-18 2014-07-23 北京工业大学 一种对屏幕内容的编码方法
US20130176390A1 (en) 2012-01-06 2013-07-11 Qualcomm Incorporated Multi-hypothesis disparity vector construction in 3d video coding with depth
CN104093025B (zh) * 2012-01-20 2017-09-19 华为技术有限公司 编解码方法和装置
US9264706B2 (en) 2012-04-11 2016-02-16 Qualcomm Incorporated Bypass bins for reference index coding in video coding
US20130272412A1 (en) * 2012-04-12 2013-10-17 Qualcomm Incorporated Common motion information candidate list construction process
TWI752680B (zh) 2012-04-13 2022-01-11 美商Ge影像壓縮有限公司 用以自資料串流重構圖像的解碼器及方法、用以將圖像編碼入資料串流的編碼器及方法、與相關電腦程式及機器可存取媒體
US9503702B2 (en) 2012-04-13 2016-11-22 Qualcomm Incorporated View synthesis mode for three-dimensional video coding
CN103716629B (zh) 2012-09-29 2017-02-22 华为技术有限公司 用于图像处理的方法、装置、编码器和解码器
US9247271B2 (en) * 2012-10-08 2016-01-26 Inria Institut National De Recherche En Informatique Et En Automatique Method and device for motion information prediction in multi-view video coding
CN103024380B (zh) * 2012-12-10 2016-04-13 浙江大学 一种数据的熵编码方法和装置
US9369708B2 (en) 2013-03-27 2016-06-14 Qualcomm Incorporated Depth coding modes signaling of depth data for 3D-HEVC
US9516306B2 (en) 2013-03-27 2016-12-06 Qualcomm Incorporated Depth coding modes signaling of depth data for 3D-HEVC
KR101817589B1 (ko) * 2013-07-08 2018-01-11 미디어텍 싱가폴 피티이. 엘티디. 3d 비디오 코딩에서 단순화된 cabac 코딩의 방법
BR112016015109A2 (pt) 2013-12-30 2017-08-08 Qualcomm Inc Simplificação de codificação residual dc delta em codificação de vídeo 3d
EP3061247A1 (en) * 2014-01-07 2016-08-31 MediaTek Inc. Method and apparatus for color index prediction
KR102060871B1 (ko) 2015-04-08 2019-12-30 에이치에프아이 이노베이션 인크. 비디오 코딩에서의 팔레트 모드 콘텍스트 코딩 및 이진화를 위한 방법
EP3273692A4 (en) * 2015-06-10 2018-04-04 Samsung Electronics Co., Ltd. Method and apparatus for encoding or decoding image using syntax signaling for adaptive weight prediction
US10148977B2 (en) * 2015-06-16 2018-12-04 Futurewei Technologies, Inc. Advanced coding techniques for high efficiency video coding (HEVC) screen content coding (SCC) extensions
US10142627B2 (en) * 2015-06-18 2018-11-27 Qualcomm Incorporated Intra prediction and intra mode coding
WO2017041271A1 (en) 2015-09-10 2017-03-16 Mediatek Singapore Pte. Ltd. Efficient context modeling for coding a block of data
KR102469145B1 (ko) 2015-10-13 2022-11-21 삼성전자주식회사 영상을 부호화 또는 복호화하는 방법 및 장치
US10721489B2 (en) * 2016-09-06 2020-07-21 Qualcomm Incorporated Geometry-based priority for the construction of candidate lists
US10979732B2 (en) * 2016-10-04 2021-04-13 Qualcomm Incorporated Adaptive motion vector precision for video coding
US10555006B2 (en) 2016-12-22 2020-02-04 Qualcomm Incorporated Deriving bilateral filter information based on a prediction mode in video coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130016789A1 (en) * 2011-07-15 2013-01-17 General Instrument Corporation Context modeling techniques for transform coefficient level coding
KR20140130171A (ko) * 2012-05-29 2014-11-07 미디어텍 인크. 샘플 어댑티브 오프셋 정보를 부호화하는 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Haitao Yang et al, Draft text for affine motion compensation, JVET of ITU-T and ISO/IEC, JVET-K0565 (2018.07.18.) 1부.* *

Also Published As

Publication number Publication date
EP3843398A1 (en) 2021-06-30
MX2021002747A (es) 2021-05-12
JP2021536710A (ja) 2021-12-27
SG11202101762PA (en) 2021-03-30
CN117651149A (zh) 2024-03-05
CN112703735B (zh) 2022-03-08
ES2965276T3 (es) 2024-04-11
BR112021004442A2 (pt) 2021-05-25
EP4283999A3 (en) 2024-02-21
US20210195198A1 (en) 2021-06-24
US20240333935A1 (en) 2024-10-03
US11706417B2 (en) 2023-07-18
KR102571317B1 (ko) 2023-08-25
CN112040247B (zh) 2021-09-21
PL3843398T3 (pl) 2024-02-19
JP2023012484A (ja) 2023-01-25
CN112040247A (zh) 2020-12-04
KR20230128578A (ko) 2023-09-05
CN112703735A (zh) 2021-04-23
CN117714717A (zh) 2024-03-15
AU2023214364B2 (en) 2024-06-13
CA3116614A1 (en) 2020-03-19
JP7164710B2 (ja) 2022-11-01
US20230300335A1 (en) 2023-09-21
EP4283999A2 (en) 2023-11-29
JP7507827B2 (ja) 2024-06-28
HUE064178T2 (hu) 2024-02-28
AU2023214364A1 (en) 2023-08-31
EP3843398B1 (en) 2023-11-01
ZA202200892B (en) 2023-06-28
CN117676165A (zh) 2024-03-08
MX2024010328A (es) 2024-08-30
EP3843398A4 (en) 2021-10-20
CN110891180A (zh) 2020-03-17
AU2019337242A1 (en) 2021-03-18
US12047577B2 (en) 2024-07-23
WO2020052534A1 (zh) 2020-03-19
AU2019337242B2 (en) 2023-05-11
CN110891180B (zh) 2023-11-17
JP2024097048A (ja) 2024-07-17

Similar Documents

Publication Publication Date Title
KR102571317B1 (ko) 비디오 디코딩 방법 및 비디오 디코더
KR102620024B1 (ko) 아핀 모션 모델을 기반으로 한 모션 벡터 예측 방법 및 디바이스
CN112005551B (zh) 一种视频图像预测方法及装置
CN112040229B (zh) 视频解码方法、视频解码器及计算机可读存储介质
CN110958452B (zh) 视频解码方法及视频解码器
RU2783337C2 (ru) Способ декодирования видео и видеодекодер

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant