KR20230128569A - 디코딩 방법, 인코딩 방법, 장치, 기기 및 저장매체 - Google Patents

디코딩 방법, 인코딩 방법, 장치, 기기 및 저장매체 Download PDF

Info

Publication number
KR20230128569A
KR20230128569A KR1020237028128A KR20237028128A KR20230128569A KR 20230128569 A KR20230128569 A KR 20230128569A KR 1020237028128 A KR1020237028128 A KR 1020237028128A KR 20237028128 A KR20237028128 A KR 20237028128A KR 20230128569 A KR20230128569 A KR 20230128569A
Authority
KR
South Korea
Prior art keywords
coding unit
motion information
augmented
block
temporal
Prior art date
Application number
KR1020237028128A
Other languages
English (en)
Other versions
KR102696422B1 (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 KR1020247027215A priority Critical patent/KR20240127495A/ko
Publication of KR20230128569A publication Critical patent/KR20230128569A/ko
Application granted granted Critical
Publication of KR102696422B1 publication Critical patent/KR102696422B1/ko

Links

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/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/57Motion estimation characterised by a search window with variable size or shape
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Peptides Or Proteins (AREA)
  • Steroid Compounds (AREA)
  • Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)

Abstract

본 출원은 디코딩 방법, 인코딩 방법, 장치, 기기 및 저장매체를 제공한다. 당해 디코딩 방법은: 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 획득하는 단계; 상기 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제1 값일 경우: 상기 현재 코딩 유닛의 좌표 정보에 기반하여 상기 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계; 상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계; 상기 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여 타깃 매칭 코딩 유닛의 좌표 정보를 결정하는 단계; 상기 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 단계를 포함한다. 당해 방법은 인코딩 및 디코딩 성능을 향상시킬 수 있다.

Description

디코딩 방법, 인코딩 방법, 장치, 기기 및 저장매체
본 출원은 비디오 인코딩 및 디코딩 기술에 관한 것으로, 특히 디코딩 방법, 인코딩 방법, 장치, 기기 및 기계 판독 가능 저장매체에 관한 것이다.
완전한 비디오 인코딩 방법은 일반적으로 예측, 변환, 양자화, 엔트로피 부호화, 필터링 등 조작을 포함한다. 예측은 인트라 예측 및 인터 예측으로 나뉠 수 있으며, 인트라 예측은 주변에 인코딩된 유닛을 참조로 이용하여 현재 인코딩되지 않은 유닛에 대해 예측을 수행하여, 공간 리던던시를 효과적으로 제거한다. 인터 예측은 인접한 이미 인코딩된 픽처를 이용하여 현재 픽처에 대해 예측을 수행하여, 시간적 리던던시를 효과적으로 제거한다.
다용도 비디오 부호화(Versatile Video Coding, VVC라고 약칭함) 표준에 활성화되는 선택 가능한 시간적 모션 벡터(Alternative Temporal Motion Vector Prediction, ATMVP라고 약칭함) 기술은 시간적 서브 블록의 모션 정보를 이용하여 현재 코딩 유닛 내의 각 서브 블록에 상이한 모션 정보를 제공한다.
이를 감안하여, 본 출원은 디코딩 방법, 인코딩 방법, 장치, 기기 및 기계 판독 가능 저장매체를 제공한다.
본 출원의 실시예의 제1 양태에 따르면, 디코딩 방법을 제공하는 바, 이는: 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 획득하는 단계; 상기 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제1 값일 경우: 상기 현재 코딩 유닛의 좌표 정보에 기반하여 상기 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계; 상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계; 상기 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여 상기 증강된 시간적 후보 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드 번호를 획득하고, 또한 상기 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정하는 단계; 상기 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 타깃 매칭 코딩 유닛의 모션 정보를 결정하고, 상기 타깃 매칭 코딩 유닛의 모션 정보는 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보를 포함하며, 또한 상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 단계를 포함한다.
본 출원의 실시예의 제2 양태에 따르면, 인코딩 방법을 제공하는 바: 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계; 상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계; 순서대로 증강된 시간적 후보 리스트 중 각 증강된 시간적 모션 벡터 예측 모드 번호를 순회하여, 각 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정하는 단계; 상기 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 타깃 매칭 코딩 유닛의 모션 정보를 결정하고, 상기 타깃 매칭 코딩 유닛의 모션 정보는 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보를 포함하며, 또한 상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 단계; 상기 현재 코딩 유닛 내의 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내의 대응하는 서브 블록에 대해 모션 보상을 수행하는 단계; 증강된 시간적 모션 벡터 예측 모드에 대응하는 율-왜곡 코스트값을 계산하고, 또한 당해 율-왜곡 코스트값과 기타 예측 모드의 율-왜곡 코스트값을 비교하여, 가장 작은 율-왜곡 코스트값에 대응하는 예측 모드를 선택하며, 또한 대응하는 증강된 시간적 모션 벡터 예측 모드 플래그 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 비트 스트림에 라이트(write)하여 디코딩 기기에 전송하는 단계를 포함한다.
본 출원의 실시예의 제3 양태에 따르면, 디코딩 장치를 제공하는 바: 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 획득하기 위한 획득 유닛; 상기 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제1 값일 경우, 상기 현재 코딩 유닛의 좌표 정보에 기반하여 상기 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하기 위한 제1 결정 유닛; 상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하기 위한 구축 유닛; 상기 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여 상기 증강된 시간적 후보 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드 번호를 획득하고, 또한 상기 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정하기 위한 제2 결정 유닛; 상기 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 타깃 매칭 코딩 유닛의 모션 정보를 결정하고, 상기 타깃 매칭 코딩 유닛의 모션 정보는 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보를 포함하며, 또한 상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하기 위한 제3 결정 유닛을 포함한다.
본 출원의 실시예의 제4 양태에 따르면, 인코딩 장치를 제공하는 바, 이는: 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하기 위한 제1 결정 유닛; 상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하기 위한 구축 유닛; 순서대로 증강된 시간적 후보 리스트 중 각 증강된 시간적 후보 모드를 순회하여, 각 모드에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정하기 위한 제2 결정 유닛; 상기 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 타깃 매칭 코딩 유닛의 모션 정보를 결정하고, 상기 타깃 매칭 코딩 유닛의 모션 정보는 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보를 포함하며, 또한 상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하기 위한 제3 결정 유닛; 상기 현재 코딩 유닛 내의 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내의 대응하는 서브 블록에 대해 모션 보상을 수행하기 위한 모션 보상 유닛; 증강된 시간적 모션 벡터 예측 모드에 대응하는 율-왜곡 코스트값을 계산하고, 또한 당해 율-왜곡 코스트값과 기타 예측 모드의 율-왜곡 코스트값을 비교하여, 가장 작은 율-왜곡 코스트값에 대응하는 예측 모드를 선택하며, 또한 대응하는 증강된 시간적 모션 벡터 예측 모드 플래그 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 비트 스트림에 라이트하여 디코딩 기기에 전송하기 위한 인코딩 유닛을 포함한다.
본 출원의 실시예의 제5 양태에 따르면, 디코딩 기기를 제공하는 바, 이는, 프로세서 및 기계 판독 가능 저장매체를 포함하고, 상기 기계 판독 가능 저장매체에는 상기 프로세서에 의해 실행 가능한 기계 실행 가능 명령이 저장되며, 상기 프로세서는 기계 실행 가능 명령을 실행하여, 제1 양태에 따른 디코딩 방법을 구현한다.
본 출원의 실시예의 제6 양태에 따르면, 인코딩 기기를 제공하는 바, 이는, 프로세서 및 기계 판독 가능 저장매체를 포함하고, 상기 기계 판독 가능 저장매체에는 상기 프로세서에 의해 실행 가능한 기계 실행 가능 명령이 저장되며, 상기 프로세서는 기계 실행 가능 명령을 실행하여, 제2 양태에 따른 인코딩 방법을 구현한다.
본 출원의 실시예의 제7 양태에 따르면, 기계 판독 가능 저장매체를 제공하는 바, 이는, 상기 기계 판독 가능 저장매체에는 기계 실행 가능 명령이 저장되어 있고, 상기 기계 실행 가능 명령이 프로세서에 의해 실행될 경우 제1 양태 또는 제2 양태에 따른 방법을 구현한다.
본 출원의 실시예의 디코딩 방법은, 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 획득하는 단계; 당해 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제1 값일 경우, 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하고, 또한 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계; 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여 증강된 시간적 후보 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드 번호를 획득하고, 또한 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정하는 단계; 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 타깃 매칭 코딩 유닛의 모션 정보를 결정하고, 당해 타깃 매칭 코딩 유닛의 모션 정보는 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보를 포함하며, 또한 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 단계를 통해 인코딩 및 디코딩 성능을 향상시켰다.
도 1은 본 출원의 예시적 실시예에서 도시한 인코딩 및 디코딩 방법의 모식도이다;
도 2는 본 출원의 예시적 실시예에서 도시한 Clip 조작의 모식도이다;
도 3은 본 출원의 예시적 실시예에서 도시한 디코딩 방법의 흐름 모식도이다;
도 4은 본 출원의 예시적 실시예에서 도시한 매칭 코딩 유닛에 대해 오프셋을 수행할 경우의 참조 블록의 모식도이다;
도 5는 본 출원의 예시적 실시예에서 도시한 현재 코딩 유닛의 제1 주변 블록의 모식도이다;
도 6은 본 출원의 예시적 실시예에서 도시한 또 하나의 디코딩 방법의 흐름 모식도이다;
도 7은 본 출원의 예시적 실시예에서 도시한 디코딩 장치의 구조 모식도이다;
도 8은 본 출원의 예시적 실시예에서 도시한 또 하나의 디코딩 장치의 구조 모식도이다;
도 9는 본 출원의 예시적 실시예에서 도시한 디코딩 기기의 하드웨어 구조 모식도이다;
도 10은 본 출원의 예시적 실시예에서 도시한 인코딩 장치의 구조 모식도이다;
도 11은 본 출원의 예시적 실시예에서 도시한 인코딩 기기의 하드웨어 구조 모식도이다.
예들이 본 명세서에서 상세히 설명될 것이며, 그 예시들은 도면들에 나타나 있다. 이하의 설명들이 도면들을 포함할 때, 상이한 도면들에서의 동일한 번호들은 달리 지시되지 않는 한 동일하거나 유사한 요소들을 지칭한다. 하기 예들에 설명된 실시예들은 본 개시내용에 부합하는 모든 실시예를 나타내지 않는다. 오히려 이들은 본 개시내용의 일부 양태들과 부합하며 첨부된 청구항들에 상술된 바와 같은 장치들 및 방법들의 예들에 불과하다.
본 출원에서 활성화되는 용어들은 단지 특정 예들을 설명하기 위한 것이며, 본 개시내용을 제한하려는 의도는 아니다. 본 개시내용 및 첨부된 청구항들에서 단수 형태("a", "the" 및 "said")의 용어들은, 문맥상 명확히 달리 지시되지 않는 한, 복수 형태를 포함하도록 또한 의도된다.
본 기술분야에서 통상의 지식을 가진 자들이 본 출원의 실시예에서 제공하는 기술적 해결수단을 더 잘 이해하도록 하기 위해, 아래에는 먼저 본 출원의 실시예와 관련된 부분 기술 용어 및 종래의 비디오 코딩의 주요 과정에 대해 간단하게 설명한다.
본 기술분야에서 통상의 지식을 가진 자들이 본 출원의 실시예에서 제공하는 기술적 해결수단을 더 잘 이해하도록 하기 위해, 아래에는 먼저 본 출원의 실시예와 관련된 일부 기술 용어에 대해 간단하게 설명한다.
기술 용어:
1. 예측 신호(Prediction Signal): 이미 디코딩된 픽셀로부터 유도된 픽셀값을 가리키며, 원본 신호와 예측 신호의 차이를 통해 잔차를 획득하고, 나아가 잔차 변환 양자화 및 계수 인코딩을 수행한다.
예시적으로, 인터 예측 신호는 현재 픽처 블록이 참조 프레임(제구성된 픽셀 프레임)으로부터 유도한 픽셀값을 가리키며, 픽셀 위치의 이산으로 인해, 보간 연산을 통해 최종의 예측 신호를 획득해야 한다. 예측 신호와 원본 신호가 근접할수록, 양자를 서로 감하여 얻은 잔차 에너지가 더 작고, 인코딩 압축 성능이 더 높다.
2. 모션 벡터(Motion Vector, MV라고 약칭함): 인터 인코딩에서, MV로 현재 코딩 유닛과 이의 참조 픽처 중의 최적의 매칭 코딩 유닛 사이의 상대 변위를 표시한다. 각 분할된 블록(서브 블록이라고도 지칭할 수 있음)에는 모두 디코딩단으로 전송되는 상응한 모션 벡터가 구비된다. 만약 각 서브 블록의 MV에 대해 독립적인 인코딩 및 전송을 수행하면, 특히 작은 사이즈의 서브 블록으로 분할될 경우, 상당히 많은 비트를 소모해야 한다. MV를 인코딩하기 위한 비트 수를 줄이기 위해, 비디오 인코딩 중, 인접 픽처 블록 사이의 공간 관련성을 이용하고, 인접한 인코딩된 블록의 MV에 기반하여 현재 인코딩될 블록의 MV에 대해 예측을 수행한 다음, 예측 차를 인코딩함으로써, MV를 나타내는 비트 수를 효과적으로 줄인다. 이러한 방법에 기초하여, 현재 픽처 블록의 MV에 대해 인코딩하는 과정 중, 일반적으로 먼저 인코딩된 블록의 MV를 이용하여 현재 픽처 블록의 MV를 예측한 다음, MV의 예측값(Motion Vector Prediction, MVP라고 약칭함)과 모션 벡터의 실제 추정 값 사이의 차이값, 즉, 모션 벡터 차이(Motion Vector Difference, MVD라고 약칭함)에 대해 디코딩을 수행함으로써, MV의 인코딩 비트 수를 효과적으로 줄인다.
3. 모션 정보(Motion Information): MV가 현재 코딩 유닛과 특정 참조 픽처 중 최적의 매칭 코딩 유닛 사이의 상대 변위를 나타내므로, 픽처 블록을 가리키는 정보를 정확하게 획득하기 위해, MV 정보 외에, 추가로 참조 픽처의 인덱스 정보를 통해 어느 참조 픽처를 사용하였는지를 나타낸다. 비디오 인코딩 기술 중, 현재 픽처에 대해, 일반적으로 일정한 원칙에 기초하여 하나의 참조 픽처 리스트를 구축하는 바, 참조 픽처 인덱스 정보는 현재 픽처 블록이 참조 픽처 리스트 중 몇 번째 참조 픽처를 사용하였는지를 나타낸다. 추가로, 많은 인코딩 기술은 복수 개의 참조 픽처 리스트를 더 지원하며, 따라서, 어느 참조 픽처 리스트를 사용하였는지를 나타내는 하나의 인덱스 값이 더 필요하며, 당해 인덱스 값을 참조 방향이라고도 지칭할 수 있다. 비디오 인코딩 중, MV. 참조 프레임 인덱스, 참조 방향 등 모션과 관련되는 인코딩 정보를 통틀어 모션 정보라고 지칭하는 바, 예를 들면, 모션 정보는: 인터 예측에 사용되는 퀀튜플(quintuple)이며, 이는 예측 참조 모드, L제로 모션 벡터, L1 모션 벡터, L0 참조 인덱스 및 L1 참조 인덱스로 구성된다.
4. 율-왜곡 최적화(Rate-Distortion Optimized, RDO라고 약칭함): 코딩 효율을 평가하는 지표는, 비트 레이트와 피크 신호 대 잡음비(Peak Signal to Noise Ratio, PSNR라고 약칭함)를 포함한다. 비트 레이트가 작을 수록 압축률이 더 크고; PSNR이 클수록 재구성된 픽처 품질이 더 양호하다. 모드를 선택할 경우, 판별 공식은 실질적으로 양자에 대한 종합 평가이다. 모드에 대응하는 코스트는 아래와 같다:
J(mode)=D+λ*R.
여기서, D는 왜곡(Distortion)을 나타내는 바, 일반적으로 SSE(Sum of the Squared Errors, 차이값 제곱합) 지표를 사용하여 측정하고, SSE는 재구성된 블록과 소스 픽처 블록의 차이값 제곱합을 가리키며; λ는 라그랑주 승수이고; R은 당해 모드에서 픽처 블록 인코딩에 필요한 실제 비트수로서, 인코딩 모드 정보, 모션 정보, 잔차 등 필요한 비트 총합을 포함한다.
모드를 선택할 경우, 만약 RDO 원칙을 사용하여 코딩 모드를 비교 결정하면 일반적으로 인코딩 성능의 최적화를 확보할 수 있다.
5. 양방향 광학적 흐름(BI-directional Optical flow, BIO라고 약칭함): BIO 기술은 포워드 및 백워드 참조 프레임 중 픽셀값의 기울기 정보를 이용하여 현재 코딩 유닛에 광학적 흐름 보상값을 추가한다. 예시적으로, BIO의 기술적 세부 사항은 아래와 같다:
5.1. 기울기와 S1. S2. S3. S5 및 S6을 연산한다:
여기서, 의 연산은 아래와 같다:
여기서, 포워드 모션 보상값과 백워드 모션 보상값 및 이들의 확장값이다. 이들의 확장 방식은 블록 경계의 모션 보상값으로부터 카피한 것일 수도 있고, 참조 픽셀 위치로부터 획득한 것일 수도 있다. 는 픽셀 포인트의 포워드 참조 프레임 및 백워드 참조 프레임에서의 수평 및 수직 컴포넌트의 변화율이다. 는 포워드 모션 보상값 및 이의 확장값과 백워드 모션 보상값 및 이들의 확장값의 픽셀 차이값이다.
5.2. 다음 개선된 모션 벡터 를 연산한다:
여기서, 는 좌로의 시프트 연산자이고, "x>y?z: a"는 "x>y"이 성립될 경우, 값이 z임을 나타내고, "x>y" 이 성립되지 않을 경우, 값이 a임을 나타내며; m 및 는 모두 임계값이고, r은 규칙항(regularization term)이며, 0으로 나누기 조작을 피한다. S1. S2. S3. S5 및 S6은 픽셀의 기울기 합이고, clip3은 안에 있는 값이 사이에 있는 것으로 확보하는 것을 나타낸다.
5.3. 개선된 모션 벡터에 기반하여 광학적 흐름 오프셋값 b를 얻는다.
여기서, (x, y)가 현재 코딩 유닛 내 각 픽셀의 좌표, 가 포워드 모션 보상값 및 백워드 모션 보상값 및 이들의 확장값이다.
5.4. 마지막으로 광학적 흐름 오프셋값에 기반하여 현재 코딩 유닛의 각 픽셀의 예측값 을 결정한다:
여기서, 는 포워드 모션 보상값 및 백워드 모션 보상값이다.
6. 디코더-사이드 모션 벡터 개선(Decoder-side Motion Vector Refinement, DMVR라고 약칭함): 디코딩 모션 벡터 조정 기술 DMVR은 직접 모드 또는 스킵 모드에 응용된다.
예시적으로, DMVR 기술 세부 사항은 아래와 같다:
6.1. 초기의 MV를 이용하여 예측 블록 및 검색 영역 내 필요한 참조 픽셀을 획득한다;
6.2. 최적의 정수 픽셀 위치를 획득한다;
예시적으로, 현재 코딩 유닛의 휘도(luma) 픽처 블록을 중첩되지 않고 또한 위치가 인접한 서브 블록으로 분할하고, 모든 서브 블록의 초기 MV가 모두 MV0 및 MV1이다. 각 서브 블록에 대해, 초기 MV0 및 MV1에 대응하는 위치를 중심으로, 근처의 일정한 범위 내의 템플릿 매칭 왜곡이 가장 작은 위치를 찾기 시작하고, 템플릿 매칭 왜곡의 연산 방식은 포워드 검색 영역 중 중심 위치로부터 시작한 서브 블록 너비에 서브 블록 높이를 곱한 블록과, 백워드 검색 영역 중 중심 위치로부터 시작한 서브 블록 너비에 서브 블록 높이를 곱한 블록 사이의 SAD(Sum of Absolute Differences, 차이의 절댓값의 합) 값을 연산한다.
6.3. 최적의 서브-픽셀 위치를 획득한다;
예시적으로, 서브-픽셀 위치의 결정은 정수 위치의 최적의 위치, 이의 좌측, 이의 우측, 이의 상방, 이의 하방 총 5개 위치의 템플릿 매칭 왜곡값을 이용하여, 정수 위치의 최적의 위치 근처의 2차 왜곡 평면을 추정하여, 왜곡 평면 중 왜곡이 가장 작은 위치를 연산하여 얻어 서브-픽셀 위치로 이용한다. 이 연산 수학식은 아래와 같다:
수평 서브-픽셀 위치= (sad_left - sad_right)*N/((sad_right+sad_left-2*sad_mid)*2)
수직 서브-픽셀 위치= (sad_btm - sad_top)*N/((sad_top+sad_btm-2*sad_mid)*2)
여기서, sad_mid, sad_left, sad_right, sad_top 및 sad_btm은 각각 정수 위치의 최적의 위치, 이의 좌측, 이의 우측, 이의 상방, 이의 하방 총 5개 위치의 템플릿 매칭 왜곡값이고, N은 정밀도이다.
6.4. 최적의 MV에 기반하여 최종의 예측 블록을 연산하여 얻는다.
아래 종래의 비디오 인코딩의 주요 흐름에 대해 간단하게 설명한다.
도 1 중의 (a)를 참조하면, 비디오 인코딩을 예로 들면, 비디오 인코딩은 일반적으로 예측, 변환, 양자화, 엔트로피 인코딩 등 과정을 포함하며, 나아가, 인코딩 과정은 도 1 중의 (b)의 프레임워크를 참조하여 구현할 수 있다.
여기서, 예측은 인트라 예측 및 인터 예측으로 나눌 수 있으며, 인트라 예측은 주변의 블록을 참조로 이용하여 현재 인코딩되지 않은 블록에 대해 예측을 수행하여, 공간적 리던던시를 효과적으로 제거한다. 인터 예측은 인접한 이미 인코딩된 픽처를 이용하여 현재 픽처에 대해 예측을 수행하여, 시간적 리던던시를 효과적으로 제거한다.
변환이란 이미지를 공간 영역으로부터 변환 영역으로 전환하여 변환 계수를 이용하여 이미지를 나타내는 것을 말한다. 대부분의 이미지는 모두 많은 평탄한 영역과 천천히 변화되는 영역을 포함하고, 적당한 변환은 이미지로 하여금 공간 영역에서의 분산된 분포로부터 변환 영역에서의 상대적으로 집중된 분포로 전환하게 할 수 있고, 신호 사이의 주파수 영역 상관성을 제거하고, 양자화 과정과 협력하여 비트 스트림을 효과적으로 압축시킬 수 있다.
엔트로피 인코딩은 무손실 코딩 방식으로서, 일련의 요소 부호를 전송 또는 저장을 위한 하나의 이진 비트 스트림으로 변환시킬 수 있고, 입력된 부호는 양자화된 변환 계수, 모션 벡터 정보, 예측 모드 정보, 변환 양자화 관련 신택스 등을 포함할 수 있다. 엔트로피 인코딩은 비디오 요소 부호의 리던던시를 효과적으로 제거할 수 있다.
위에서 인코딩을 예로 들어 소개하였고, 비디오 디코딩과 비디오 인코딩의 과정은 상대적인바, 즉 비디오 디코딩은 일반적으로 엔트로피 디코딩, 예측, 역양자화, 역변환, 필터링 등 과정을 포함하고, 각 과정의 구현 원리는 비디오 인코딩과 동일하거나 유사하다.
아래 ATMVP 기술의 구현에 대해 간단하게 설명한다.
종래의 ATMVP 기술의 구현은 주로 아래 과정을 포함한다:
1), 시간적 모션 벡터 예측(Temporal Motion Vector Prediction, TMVP라고 약칭함): 현재 코딩 유닛의 A0 위치의 모션 정보가 아래 조건을 충족시키는지 여부를 판단한다:
a) A0 위치가 존재하고, 또한 현재 코딩 유닛과 동일한 슬라이스(Slice) 및 유닛에 처하고;
b) A0 위치의 예측 모드는 인터 모드이며;
c) A0 위치의 참조 프레임 인덱스는 현재 프레임의 co-located프레임의 참조 프레임 인덱스와 일치(먼저 L0 방향을 판단하고, 후에 L1 방향을 판단함)하다.
여기서, A0 위치가 (xCb-1, yCb + CbHeight-1)의 위치이고; (xCb, yCb)가 현재 유닛의 좌상단의 좌표이고, CbHeight가 현재 코딩 유닛의 높이이다.
2), 중심 참조 블록의 위치를 연산한다: 단계 1)에서 획득된TMVP의 정밀도는 1/16이고, 오른쪽으로 4비트 시프팅하여 정수 픽셀로 전환한다. 동시에, 참조 블록의 위치를 현재 LCU(Largest Coding Unit, 최대 코딩 유닛)의 참조 프레임에서의 동일 위치(co-located)의 LCU의 범위 내로 클립(Clip)해야 하는 바, 즉 참조 블록의 위치가 현재 LCU의 참조 프레임에서의 동일 위치의 LCU의 범위 내에 처하지 않을 경우, 참조 블록을 수평 시프팅 또는/및 수직 시프팅하여 현재 LCU의 참조 프레임에서의 동일 위치의 LCU의 범위 내에 처하게 해야 하는바, 그 모식도는 도 2에 도시된 바와 같다.
중심 참조 블록의 위치의 연산 방식은 아래에 도시된 바와 같다:
여기서, (xColCb, yColCb)가 중심 참조 블록의 좌상단의 좌표이고, (xCtb, yCtb)가 현재 LCU의 참조 프레임에서의 동일 위치의 LCU의 좌상단의 좌표이며, PicWidth 및 PicHeight는 각각 현재 프레임의 너비 및 높이이고, CtbLog2Size는 기저가 2이고, 현재 LCU의 사이즈에 대해 로그를 취한 것이며, (xColCtrCb, yColCtrCb)가 현재 코딩 유닛의 중심 위치의 좌표이고, tempMv[0] 및 tempMv[1]는 각각 A0 위치의 수평 모션 벡터 및 수직 모션 벡터이다.
3), 중심 참조 블록의 예측 모드를 판단하여, 만약 예측 모드가 비인터 예측 모드이면, ctrPredFlagL0 및 ctrPredFlagL1 모두가 0이고; 그렇지 않으면, 예측 모드가 인터 예측 모드이고, 단계 4)를 수행한다.
4), 참조 위치를 조정한다: 서브 블록 크기가 8*8이기에, 모션 정보는 8*8를 단위로 이용한다. 따라서, 중심 참조 블록의 좌상단의 좌표를 8배의 좌표 위치로 조정해야 한다. 조정 수학식은 아래에 도시된 바와 같다:
xColCb = ((xColCb >> 3) << 3)
yColCb = ((yColCb >> 3) << 3)
5), 조정 후의 중심 참조 블록의 모션 정보를 획득한다: 만약 조정 후의 중심 참조 블록의 예측 모드가 인트라 예측 또는 인트라 블록 카피(Intra Block Copy, IBC라고 약칭함) 모드이면, FlagLXCol=0이고; 그렇지 않으면, 조정 후의 중심 참조 블록의 L0 및 L1 방향의 모션 정보가 존재하는지 여부를 각각 판단하여, 만약 존재하면, FlagLXCol=1이고, 조정 후의 중심 참조 블록의 L0 및 L1 방향의 모션 정보를 획득한다.
예시적으로, LX=L0 또는 LX=L1이고, 조정 후의 중심 참조 블록의 예측 모드가 인트라 예측 또는 인트라 블록 카피 모드일 경우, FlagL0Col=0이고, 또한 FlagL1Col=0이다.
조정 후의 중심 참조 블록의 예측 모드가 인트라 예측도 아니고, 인트라 블록 카피 모드도 아닐 경우, 조정 후의 중심 참조 블록의 L0 방향의 모션 정보가 존재하면, FlagL0Col=1이고, 조정 후의 중심 참조 블록의 L0 방향의 모션 정보가 존재하지 않으면, FlagL0Col=0이며; 조정 후의 중심 참조 블록의 L1 방향의 모션 정보가 존재하면, FlagL1Col=1이고, 조정 후의 중심 참조 블록의 L1 방향의 모션 정보가 존재하지 않으면, FlagL1Col=0이다.
FlagLXCol=1일 경우, 만약 현재 프레임의 장기 참조 프레임 및 co-located프레임의 장기 참조 프레임이 동일하지 않으면, 조정 후의 중심 참조 블록의 모션 정보가 사용 불가인 것을 결정하고, ctrPredFlagLX=0이며; 그렇지 않으면, 당해 조정 후의 중심 참조 블록의 모션 정보를 ListX(X=0 또는 1)를 가리키는 제1 프레임까지 스케일링(scaling)하여, 현재 중심 참조 블록 위치의 모션 정보로 이용하고, ctrPredFlagLX=1이다.
6), ctrPredFlagLX=1일 경우, 각 서브 블록의 모션 정보를 연산한다: 매칭 코딩 유닛 내의 각 서브 블록을 순회하여, 임의의 서브 블록에 대해, 당해 서브 블록을 매칭 코딩 유닛이 소재하는 LCU의 범위 내로clip하여, 만약 clip 후의 서브 블록의 모션 정보가 사용 가능하면, 당해 clip 후의 서브 블록의 모션 정보를 ListX를 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하고; 만약 clip 후의 서브 블록의 모션 정보가 사용 불가능하면, 조정 후의 중심 참조 블록의 중심 위치의 모션 정보를 ListX를 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여한다.
예시적으로, 현재 코딩 유닛의 인접한 블록의 모션 정보를 통해, Co-located(동일 위치) 프레임 중 현재 코딩 유닛의 인접한 코딩 유닛과 대응하는 코딩 유닛을 찾고, 다음에 현재 코딩 유닛의 Co-located 프레임 중 대응하는 위치의 코딩 유닛 내의 각 서브 블록의 모션 정보를 현재 코딩 유닛 내의 각 서브 블록에 제공하여 사용하게 할 수 있다.
co-located 프레임에서 현재 코딩 유닛과 대응하는 위치의 코딩 유닛을 찾는 것은 현재 코딩 유닛의 주변 코딩 유닛의 모션 정보에 의존해야 하는바, 만약 주변 코딩 유닛의 모션 정보가 정확하지 않으면, 찾은, 대응하는 위치의 코딩 유닛의 모션 정보도 신뢰할 수 없으며, 따라서 인코딩 및 디코딩 성능에 영향 준다.
매칭 코딩 유닛의 실행 정보의 신뢰성을 향상시키고, 인코딩 및 디코딩 성능을 최적화하기 위해, 본 출원의 실시예는 현재 코딩 유닛의 co-located 프레임에서의 동일 위치의 코딩 유닛의 모션 정보를 이용하여 매칭 코딩 유닛을 결정하고, 또한 찾은 매칭 코딩 유닛에 대해 상하좌우 등 일련의 오프셋을 수행하여, 복수 개의 시간적 후보 모드를 생성함으로써, 주변 코딩 유닛의 모션 정보가 정확하지 않음으로 인해 찾은 매칭 코딩 유닛이 정확하지 않은 문제점을 어느 정도 피한다.
본 출원의 실시예의 주요 구현 과정은 아래 6개 부분을 포함할 수 있다:
제1 부분(A로 표기할 수 있음), 현재 코딩 유닛의 인코딩/디코딩 조건에 기반하여, 증강된 시간적 모션 벡터 예측(Enhanced Temporal Motion Vector Prediction, ETMVP라고 약칭함) 모드 플래그 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 인코딩/해석한다;
제2 부분(B로 표기할 수 있음), 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정한다;
제3 부분(C로 표기할 수 있음), 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축한다;
제4 부분(D로 표기할 수 있음), 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여 증강된 시간적 후보 모드 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드를 획득하고, 또한 당해 증강된 시간적 모션 벡터 예측 모드에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정한다.
제5 부분(E로 표기할 수 있음), 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛 내 각 서브 블록의 모션 정보를 획득한다;
제6 부분(F로 표기할 수 있음), 현재 코딩 유닛 내의 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 대응하는 서브 블록에 대해 모션 보상을 수행한다.
예시적으로, 상술한 6개 부분의 선후 순서는 조정될 수 있다.
본 개시의 실시예의 상기 목적, 특징 및 장점이 보다 뚜렷하고 이해하기 용이하게 하기 위하여 아래에는 도면에 결부하여 본 개시의 실시예에 따른 기술적 해결수단을 더 상세하게 설명한다.
도 3을 참조하면, 이는 본 출원의 실시예에서 제공하는 디코딩 방법의 흐름 모식도이며, 여기서, 당해 디코딩 방법은 디코딩 기기에 응용될 수 있는 바, 도 3에 도시된 바와 같이, 당해 디코딩 방법은 아래 단계를 포함할 수 있다:
단계 S300, 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 획득한다.
본 출원의 실시예에서, 현재 코딩 유닛은 처리될 픽처 중의 임의의 하나의 코딩 유닛일 수 있다. 실시예에서, 처리될 픽처를 상이한 코딩 유닛으로 분할한 후, 일정한 순서에 따라 각 코딩 유닛을 처리할 수 있다. 여기서, 각 코딩 유닛의 크기 및 모양은 기설정된 분할 규칙에 기반하여 설정될 수 있다.
예시적으로, 현재 코딩 유닛에 대해 디코딩을 수행할 경우, 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 획득할 수 있다.
예시적으로, 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값은 비트 스트림으로부터 해석하여 얻거나, 또는, 현재 코딩 유닛이 일정한 조건을 충족시키는 경우 유도하여 얻을 수 있다.
예시적으로, 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 인덱스 값은 비트 스트림으로부터 해석하여 얻거나, 또는, 현재 코딩 유닛이 일정한 조건을 충족시키는 경우 유도하여 얻을 수 있다.
획득된 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제1 값일 경우, 단계 S310 내지 단계 S340를 수행한다.
예시적으로, 증강된 시간적 모션 벡터 예측 모드 플래그의 값은 증강된 시간적 모션 벡터 예측 모드를 활성화하는 것을 나타내는 값(본문에서 제1 값이라고 지칭하며, 예컨대 1)을 포함할 수 있다.
단계 S310, 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정한다.
본 출원의 실시예에서, 획득된 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제1 값일 경우, 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드를 활성화하는 조건을 결정할 수 있고, 이때, 초기 매칭 코딩 유닛 좌표 정보의 결정을 수행할 수 있다.
예시적으로, 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정할 수 있다.
예시적으로, 당해 초기 매칭 코딩 유닛의 좌표 정보는 당해 초기 매칭 코딩 유닛의 참조 픽처에서의 좌표 정보, 예컨대 좌상단 좌표일 수 있다.
단계 S320, 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축한다.
본 출원의 실시예에서, 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정한 경우, 당해 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축할 수 있다.
예시적으로, 당해 증강된 시간적 후보 리스트는 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호를 포함한다.
예시적으로, 상이한 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 매칭 코딩 유닛의 좌표 정보는 상이할 수 있다.
단계 S330, 획득된 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여 증강된 시간적 후보 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드 번호를 획득하고, 또한 당해 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정한다.
본 출원의 실시예에서, 단계 S300에서 획득된 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여, 증강된 시간적 후보 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드 번호를 획득할 수 있고, 또한 당해 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정한다.
예시적으로, 타깃 매칭 코딩 유닛은 초기 매칭 코딩 유닛을 포함할 수 있거나, 또는, 초기 매칭 코딩 유닛에 대해 상/하/좌/우 오프셋을 수행하여 얻은 매칭 코딩 유닛을 포함할 수 있다.
예시적으로, 타깃 매칭 코딩 유닛의 좌표 정보는 초기 매칭 코딩 유닛의 좌표 정보와 일치하거나, 또는, 초기 매칭 코딩 유닛의 좌표 정보의 기초 상에, 기설정된 오프셋 량에 기반하여 조정을 수행하여 얻을 수 있다.
단계 S340, 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 타깃 매칭 코딩 유닛의 모션 정보를 결정하고, 당해 타깃 매칭 코딩 유닛의 모션 정보는 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보를 포함하며, 또한 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정한다.
본 출원의 실시예에서, 타깃 매칭 코딩 유닛의 좌표 정보를 결정한 경우, 당해 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 타깃 매칭 코딩 유닛의 모션 정보를 결정할 수 있다. 예시적으로, 타깃 매칭 코딩 유닛의 모션 정보는 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보를 포함한다.
예시적으로, 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정할 수 있다. 예를 들면, 타깃 매칭 코딩 유닛 내 h번째 행 l번째 열의 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 h번째 행 1번째 열의 서브 블록의 모션 정보를 결정한다.
일부 실시예에서, 단계 S300 중, 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값을 획득하는 단계는: 현재 코딩 유닛이 제1 해석 조건을 충족시킬 경우, 비트 스트림으로부터 증강된 시간적 모션 벡터 예측 모드 플래그의 값을 해석하는 단계; 그렇지 않으면, 증강된 시간적 모션 벡터 예측 모드 플래그의 값을 제2 값으로 결정하고, 당해 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제2 값인 것은 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드를 비활성화하는 것을 나타내는 단계를 포함할 수 있다.
예시적으로, 증강된 시간적 모션 벡터 예측 모드의 사용이 일반적으로 일정한 조건을 충족시켜야 하는 것을 고려하여, 당해 조건을 충족시키지 않는 경우, 증강된 시간적 모션 벡터 예측 모드가 적합하지 않을 수 있으며, 당해 경우, 증강된 시간적 모션 벡터 예측 모드 플래그의 값은 비트 스트림으로부터 해석될 필요가 없이 유도하여 얻을 수 있다.
예시적으로, 현재 코딩 유닛이 지정된 조건(본문에서 제1 해석 조건이라고 지칭)을 충족시키는지 여부에 기반하여, 비트 스트림으로부터 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값을 해석하거나, 또는, 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값을 유도하여 얻는 것을 결정할 수 있다.
예시적으로, 현재 코딩 유닛이 제1 해석 조건을 충족시킬 경우, 비트 스트림으로부터 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값을 해석하고; 현재 코딩 유닛이 제1 해석 조건을 충족시키지 않을 경우, 비트 스트림으로부터 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값을 해석할 필요가 없이 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드를 비활성화하는 것을 결정할 수 있고, 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값은 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드를 비활성화하는 것을 나타내는 값(본문에서 제2 값이라고 지칭함)이다.
하나의 예시에서, 상술한 현재 코딩 유닛이 제1 해석 조건을 충족시키는 것은, 현재 코딩 유닛의 예측 모드가 스킵 모드 또는 직접 모드인 것; 현재 코딩 유닛의 사이즈가 기설정된 사이즈 제한을 충족시키는 것; 시퀀스 레벨 하이-레벨 신택스에 따라 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 기술을 활성화하는 것; 현재 코딩 유닛이 각도 가중 예측 사용 조건을 충족시키거나 또는 고급 모션 벡터 표현 사용 조건을 충족시키는 것 중 적어도 하나를 포함할 수 있다.
예시적으로, 증강된 시간적 모션 벡터 예측 모드의 사용이 코딩 유닛의 예측 모드 및 사이즈 등에 대해 일정한 요구가 있는 것을 고려하여, 코딩 유닛의 예측 모드 및/또는 사이즈 등의 요구를 충족시키는지 여부에 의거하여 코딩 유닛이 적용하는지 여부를 결정할 수 있다.
추가로, 하이-레벨 신택스에 따라 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 기술을 비활성화할 경우, 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 기술을 비활성화하는 것을 결정할 수 있다.
예시적으로, 현재 코딩 유닛의 예측 모드가 스킵(skip) 모드 또는 직접(direct) 모드인 것, 현재 코딩 유닛의 사이즈가 기설정된 사이즈 제한을 충족시키는 것, 시퀀스 레벨 하이-레벨 신택스에 따라 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 기술을 활성화하는 것, 현재 코딩 유닛이 각도 가중 예측(Angle Weight Prediction, AWP라고 약칭함) 사용 조건을 충족시키거나 또는 하이-레벨 모션 벡터 표현(Ultimate Motion Vector Expression, UMVE라고 약칭함) 사용 조건을 충족시키는 것 등 조건 중 하나 또는 복수 개를 충족시킬 경우, 현재 코딩 유닛이 제1 해석 조건을 충족시키는 것을 결정할 수 있다.
예를 들면, 현재 코딩 유닛의 예측 모드가 스킵 모드 또는 직접 모드인 조건이거나, 또는, 현재 코딩 유닛의 사이즈가 기설정된 사이즈 제한을 충족시키거나, 또는, 시퀀스 레벨 하이-레벨 신택스에 따라 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 기술을 활성화하거나, 또는, 현재 코딩 유닛이 각도 가중 예측 사용 조건을 충족시키거나 또는 고급 모션 벡터 표현 사용 조건을 충족시킬 경우, 현재 코딩 유닛이 제1 해석 조건을 충족시키는 것을 결정한다.
예를 들면, 현재 코딩 유닛의 예측 모드가 스킵 모드 또는 직접 모드일 경우, 현재 코딩 유닛이 제1 해석 조건을 충족시키는 것을 결정한다.
예를 들면, 현재 코딩 유닛의 사이즈가 기설정된 사이즈 제한을 충족시킬 경우, 현재 코딩 유닛이 제1 해석 조건을 충족시키는 것을 결정한다.
예를 들면, 시퀀스 레벨 하이-레벨 신택스에 따라 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 기술을 활성화할 경우, 현재 코딩 유닛이 제1 해석 조건을 충족시키는 것을 결정한다.
예를 들면, 현재 코딩 유닛이 각도 가중 예측 사용 조건을 충족시키거나 또는 고급 모션 벡터 표현 사용 조건을 충족시킬 경우, 현재 코딩 유닛이 제1 해석 조건을 충족시키는 것을 결정한다.
또 예를 들면, 현재 코딩 유닛의 예측 모드가 스킵 모드 또는 직접 모드이고, 현재 코딩 유닛의 사이즈가 기설정된 사이즈 제한을 충족시키며, 시퀀스 레벨 하이-레벨 신택스에 따라 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 기술을 활성화할 경우, 즉 상술한 조건을 모두 충족시킬 경우, 현재 코딩 유닛이 제1 해석 조건을 충족시키는 것을 결정할 수 있다.
또 예를 들면, 현재 코딩 유닛의 예측 모드가 스킵 모드 또는 직접 모드이고, 현재 코딩 유닛의 사이즈가 기설정된 사이즈 제한을 충족시키며, 시퀀스 레벨 하이-레벨 신택스에 따라 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 기술을 활성화하고, 또한 현재 코딩 유닛이 각도 가중 예측 사용 조건을 충족시키거나 또는 고급 모션 벡터 표현 사용 조건을 충족시킬 경우, 즉 상술한 조건을 모두 충족시킬 경우, 현재 코딩 유닛이 제1 해석 조건을 충족시키는 것을 결정할 수 있다.
예시적으로, 현재 코딩 유닛의 사이즈가 기설정된 사이즈 제한을 충족시키는 것은 현재 코딩 유닛의 너비와 높이 모두가 N0보다 크거나 같은 것을 포함할 수 있다. 예시적으로, N0=8이다.
설명해야 할 것은, 상술한 현재 코딩 유닛의 사이즈가 기설정된 사이즈 제한을 충족시키는 것에 대한 설명은 단지 본 출원의 실시예 중 관련 구현의 일종의 구체적인 예시일뿐, 본 출원의 보호범위에 대한 한정이 아니며, 본 출원의 실시예에서, 현재 코딩 유닛의 사이즈가 기설정된 사이즈 제한을 충족시키는 것은 기타 경우를 포함할 수도 있는바, 예컨대 현재 코딩 유닛의 너비가 N0보다 크거나 같고, 현재 코딩 유닛의 높이가 N0보다 크거나 같거나, 또는 현재 코딩 유닛의 높이 및 너비 모두가 N0보다 크거나 같고, 또한 너비와 높이가 동시에 N0과 같지 않은 등이다.
예시적으로, 현재 코딩 유닛이 각도 가중 예측 사용 조건을 충족시키는 것은: 시퀀스 레벨 하이-레벨 신택스에 따라 현재 코딩 유닛이 각도 가중 예측 기술을 활성화하는 것; 현재 코딩 유닛의 너비와 높이 모두가 N1보다 크거나 같고, 현재 코딩 유닛의 너비와 높이 모두가 N2보다 작거나 같은 것; 현재 픽처 타입이 B 픽처인 것을 포함할 수 있다.
예시적으로, 현재 코딩 유닛이 고급 모션 벡터 표현 사용 조건을 충족시키는 것은, 시퀀스 레벨 하이-레벨 신택스에 따라 상기 현재 코딩 유닛이 하이-레벨 모션 벡터 표현 기술을 활성화하는 것을 포함할 수 있다.
하나의 예시에서, 현재 코딩 유닛이 제1 해석 조건을 충족시키는 것은: 현재 코딩 유닛의 예측 모드가 스킵 모드 또는 직접 모드인 것; 현재 코딩 유닛의 사이즈가 사이즈 제한: 현재 코딩 유닛의 너비와 높이 모두가 N0보다 크거나 같은 것을 충족시키는 것; 시퀀스 레벨 하이-레벨 신택스에 따라 상기 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 기술을 활성화하는 것; 상기 현재 코딩 유닛이 각도 가중 예측 사용 조건을 충족시키거나 또는 고급 모션 벡터 표현 사용 조건을 충족시키는 것을 포함한다.
하나의 예시에서, 증강된 시간적 모션 벡터 예측 모드 플래그는 문맥에 기초한 이진법 산술 인코딩(Binary Arithmetic Coding)을 사용할 수 있으며, 또한 하나의 문맥 모델을 사용한다.
다른 하나의 실시예에서, 증강된 시간적 모션 벡터 예측 모드 플래그는 문맥에 기초한 이진법 산술 코딩(Context-Based Adaptive Binary Arithmetic Coding(CABAC))을 사용할 수 있으며, 또한 복수 개의 문맥 모델을 사용한다. 예시적으로, 당해 복수 개의 문맥 모델은 현재 코딩 유닛의 사이즈에 기반하여 결정될 수 있다. 예시적으로, 현재 코딩 유닛의 사이즈는 현재 코딩 유닛의 너비 및/또는 높이, 현재 코딩 유닛의 너비와 높이 중의 최대치 또는 최소치, 또는 현재 코딩 유닛의 너비와 높이의 승적 등을 포함할 수 있으며 이에 한정되지 않는다.
일부 실시예에서, 단계 S300에서, 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 획득하는 단계는: 현재 코딩 유닛이 제2 해석 조건을 충족시킬 경우, 비트 스트림으로부터 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 해석하는 단계; 그렇지 않으면, 증강된 시간적 모션 벡터 예측 모드 인덱스 값이 제3 값인 것을 결정하는 단계를 포함할 수 있다.
예시적으로, 증강된 시간적 모션 벡터 예측 모드 인덱스 값이 제3 값인 것은 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드를 비활성화하는 것을 나타낸다.
예시적으로, 증강된 시간적 모션 벡터 예측 모드의 사용이 일정한 조건을 충족시켜야 하는 것을 고려하면, 조건을 충족시키지 않을 경우, 증강된 시간적 모션 벡터 예측 모드가 적용되지 않고, 이때, 증강된 시간적 모션 벡터 예측 모드 인덱스 값은 비트 스트림으로부터 해석될 필요가 없이 유도하여 얻을 수 있다.
예시적으로, 현재 코딩 유닛이 지정된 조건(본문에서 제2 해석 조건이라고 지칭)을 충족시킬 경우, 비트 스트림으로부터 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 해석할 수 있고; 그렇지 않으면, 증강된 시간적 모션 벡터 예측 모드 인덱스 값이 제3 값인 것을 결정할 수 있으며, 당해 증강된 시간적 모션 벡터 예측 모드 인덱스 값이 제3 값인 것은 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드를 비활성화하는 것을 나타낸다.
예시적으로, 제3 값은 상술한 제1 값 또는 제2 값과 같을 수 있거나, 또는, 제3 값은 상술한 제1 값 및 제2 값 모두와 상이할 수 있다.
하나의 예시에서, 현재 코딩 유닛이 제2 해석 조건을 충족시키는 것은: 현재 코딩 유닛의 예측 모드가 스킵 모드 또는 직접 모드인 것; 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드를 활성화하는 것 중 적어도 하나를 포함할 수 있다.
하나의 예시에서, 증강된 시간적 모션 벡터 예측 모드 인덱스 값의 역이진화 방식은 최대치가 4인 절삭형 단항 코드를 사용하여 구현되고, 절삭형 단항 코드는 최대 4개의 빈 스트링(bin string)을 사용하며, 각 빈(bin)는 개별적인 문맥 모델을 사용하고, 총 4개의 문맥 모델을 포함한다.
예시적으로, 인코딩 비트 레이트 코스트를 절약하고, 인코딩 및 디코딩 성능을 향상시키기 위해, 증강된 시간적 모션 벡터 예측 모드 인덱스 값의 역이진화 방식은 최대치가 4인 절삭형 단항 코드(Truncated Unary)를 사용하여 구현하고, 최대 4개의 빈 스트링을 사용하며, 각 빈은 개별적인 문맥 모델을 사용하고, 총 4개의 문맥 모델이다.
예를 들면, 증강된 시간적 모션 벡터 예측 모드 인덱스 값의 역이진화 구현은 표 1을 참조할 수 있다:
cu_etmvp_cand_index 빈 스트링
0 1
1 0 1
2 0 0 1
3 0 0 0 1
4 0 0 0 0 1
여기서, cu_etmvp_cand_index는 증강된 시간적 모션 벡터 예측 모드 인덱스 값이다.
일부 실시예에서, 단계 S310에서, 현재 코딩 유닛의 좌표 정보에 기반하여 상기 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계는: 현재 픽처 타입에 기반하여 매칭 코딩 유닛이 소재하는 시간적 참조 픽처를 결정하는 단계; 상기 현재 코딩 유닛의 좌표 정보에 기반하여 상기 초기 매칭 코딩 유닛의 시간적 참조 픽처에서의 좌표 정보를 결정하는 단계를 포함한다.
예시적으로, 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하기 위해, 현재 코딩 유닛이 소재하는 픽처(본문에서 현재 픽처라고 지칭)에서의 프레임 타입(즉 현재 픽처 타입)을 결정하고, 현재 픽처 타입에 기반하여 매칭 코딩 유닛이 소재하는 시간적 참조 픽처를 결정할 수 있다.
예시적으로, 만약 현재 픽처 타입이 P 픽처이면, 시간적 참조 픽처가 참조 픽처 리스트 0(즉 List0) 중 참조 프레임 인덱스 값이 0인 참조 픽처이고; 만약 현재 픽처 타입이 B 픽처이면, 시간적 참조 픽처가 참조 픽처 리스트 1(즉 List1) 중 참조 프레임 인덱스 값이 0인 참조 픽처이다.
예시적으로, 매칭 코딩 유닛이 소재하는 시간적 참조 픽처를 결정한 경우, 현재 코딩 유닛의 좌표 정보에 기반하여 초기 매칭 코딩 유닛의 당해 시간적 참조 픽처에서의 좌표 정보를 결정할 수 있다.
하나의 예시에서, 현재 코딩 유닛의 좌표 정보가 현재 코딩 유닛의 현재 픽처에서의 좌상단 좌표이고; 매칭 코딩 유닛의 좌표 정보가 매칭 코딩 유닛의 시간적 참조 픽처에서의 좌상단 좌표이다.
예시적으로, 매칭 코딩 유닛은 초기 매칭 코딩 유닛 또는 타깃 매칭 코딩 유닛을 포함할 수 있으며, 즉 만약 아래에 특수한 설명이 없는 한, 언급된 초기 매칭 코딩 유닛의 좌표 정보는 초기 매칭 코딩 유닛의 좌상단 좌표를 가리킬 수 있고, 타깃 매칭 코딩 유닛의 좌표 정보는 타깃 매칭 코딩 유닛의 좌상단 좌표를 가리킬 수 있다.
하나의 예시에서, 상술한 현재 코딩 유닛의 좌표 정보에 기반하여 초기 매칭 코딩 유닛의 시간적 참조 픽처에서의 좌표 정보를 결정하는 단계는, 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표, 최대 코딩 유닛의 크기, 현재 픽처의 사이즈, 현재 코딩 유닛의 사이즈, 현재 코딩 유닛의 픽처에서의 좌상단 좌표에 기반하여 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계를 포함할 수 있다.
예시적으로, 하나의 최대 코딩 유닛은 하나 또는 복수 개의 코딩 유닛을 포함할 수 있다.
예시적으로, 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표. 최대 코딩 유닛의 크기, 현재 코딩 유닛의 사이즈, 현재 픽처의 사이즈, 현재 코딩 유닛의 픽처에서의 좌상단 좌표에 기반하여 현재 코딩 유닛의 매칭 코딩 유닛의 좌표 정보를 획득할 수 있다.
하나의 예시에서, 상술한 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표, 최대 코딩 유닛의 크기, 현재 픽처의 사이즈, 현재 코딩 유닛의 사이즈, 현재 코딩 유닛의 픽처에서의 좌상단 좌표에 기반하여 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계는, 현재 최대 코딩 유닛의 픽처에서의 좌상단 횡좌표, 최대 코딩 유닛의 크기, 현재 코딩 유닛의 너비, 현재 픽처의 너비, 현재 코딩 유닛의 픽처에서의 좌상단 횡좌표에 기반하여 초기 매칭 코딩 유닛의 횡좌표를 결정하는 단계; 현재 최대 코딩 유닛의 픽처에서의 좌상단 종좌표, 최대 코딩 유닛의 크기, 현재 코딩 유닛의 높이, 현재 픽처의 높이, 현재 코딩 유닛의 픽처에서의 좌상단 종좌표에 기반하여 초기 매칭 코딩 유닛의 종좌표를 결정하는 단계를 포함할 수 있다.
예시적으로, 현재 코딩 유닛의 좌표 정보를 현재 코딩 유닛의 현재 픽처에서의 좌상단 좌표로 이용하고; 매칭 코딩 유닛의 좌표 정보는 매칭 코딩 유닛의 시간적 참조 픽처에서의 좌상단 좌표이다.
예시적으로, 픽처 평면 내에서 오른쪽으로의 방향이 좌표계 횡축의 양의 방향이고, 아래로의 방향이 좌표계 종축의 양의 방향(아래 동일함)임을 예로 든다.
예를 들어 설명하면, (Xpos, Ypos)가 현재 코딩 유닛의 픽처에서의 좌상단 좌표이고, (x_ctb_pos, y_ctb_pos)가 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표이며, cu_width 및 cu_height가 각각 현재 코딩 유닛의 너비와 높이이고, horizontal_size와 vertical_size가 각각 현재 픽처의 너비와 높이이며, lcu_size가 최대 코딩 유닛의 크기인 것을 가정하고, 이하 방법에 따라 매칭 코딩 유닛의 좌표(Mx, My)를 유도한다:
Mx=Clip3(x_ctb_pos, min(x_ctb_pos+lcu_size-cu_width, horizontal_size-cu_width), ((Xpos+4)>>3)<<3)
My=Clip3 (y_ctb_pos, min(y_ctb_pos+lcu_size-cu_height, vertical_size-cu_height), ((Ypos+4)>>3)<<3)
또 예를 들어 설명하면, (Xpos, Ypos)가 현재 코딩 유닛의 픽처에서의 좌상단 좌표이고, (x_ctb_pos, y_ctb_pos)가 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표이며, cu_width 및 cu_height가 각각 현재 코딩 유닛의 너비와 높이이고, horizontal_size와 vertical_size가 각각 현재 픽처의 너비와 높이이며, lcu_size가 최대 코딩 유닛의 크기라고 가정하고, 아래 방법에 따라 매칭 코딩 유닛의 좌표(Mx, My)을 유도한다:
Mx = min (((Xpos+4)>>3)<<3, min (x_ctb_pos + lcu_size - cu_width, horizontal_size - cu_width))
My = min (((Ypos+4)>>3)<<3, min(y_ctb_pos + lcu_size - cu_height, vertical_size - cu_height))
일부 실시예에서, 단계 S320에서, 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계는: 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호를 결정하는 단계; 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계를 포함할 수 있다.
예시적으로, 당해 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호는 초기 매칭 코딩 유닛의 좌표 정보에 대응하는 증강된 시간적 모션 벡터 예측 모드 번호, 및 하나 또는 복수 개의 초기 매칭 코딩 유닛에 대해 오프셋을 수행하여 얻은 복수 개의 새로운 매칭 코딩 유닛(만약 사용 가능하면)에 대응하는 증강된 시간적 모션 벡터 예측 모드 번호를 포함할 수 있다.
예시적으로, 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호를 결정한 경우, 당해 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호에 기반하여 증강된 시간적 후보 리스트를 구축할 수 있다.
예시적으로, 증강된 시간적 후보 리스트를 구축할 때, 당해 증강된 시간적 후보 리스트의 길이를 0으로 초기화할 수 있는바, 즉 당해 증강된 시간적 후보 리스트의 초기 길이가 0이다.
예시적으로, 당해 증강된 시간적 후보 리스트의 길이는 추가된 증강된 시간적 모션 벡터 예측 모드 번호의 수량의 증가에 기반하여 증가될 수 있다.
하나의 예시에서, 매칭 코딩 유닛의 좌표 정보는 매칭 코딩 유닛의 시간적 참조 픽처에서의 좌상단 좌표이고; 상술한 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계는: 증강된 시간적 모션 벡터 예측 모드 번호 0을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 단계;
만약 My+8이 y_ctb_pos + lcu_size - cu_height 및 vertical_size - cu_height 중의 작은 값보다 작거나 같고, 또한 A1 위치의 모션 정보가 C3 위치의 모션 정보와 상이하거나, 또는 A2 위치의 모션 정보가 C4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 1을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 단계;
만약 Mx+8이 x_ctb_pos + lcu_size - cu_width 및 horizontal_size - cu_width 중 작은 값보다 작거나 같고, 또한 A1 위치의 모션 정보가 B2 위치의 모션 정보와 상이하거나, 또는 A3 위치의 모션 정보가 B4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 2을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 단계;
만약 My-8이 y_ctb_pos보다 크거나 같고, 또한 A3 위치의 모션 정보가 C1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 C2 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 3을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 단계;
만약 Mx-8이 x_ctb_pos보다 크거나 같고, 또한 A2 위치의 모션 정보가 B1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 B3 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 4를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 단계를 포함할 수 있다.
예시적으로, (Mx, My)가 상기 초기 매칭 코딩 유닛의 좌표 정보이고, (x_ctb_pos, y_ctb_pos)가 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표이며, lcu_size가 최대 코딩 유닛의 크기이고, cu_width와 cu_height는 각각 현재 코딩 유닛의 너비와 높이이며, horizontal_size와 vertical_size는 각각 현재 픽처의 너비와 높이이다.
예시적으로, A1이 초기 매칭 코딩 유닛의 좌상단 4*4 블록이고, B1이 A1 바로 왼쪽의 4*4 블록이며, C1이 A1 바로 위측의 4*4 블록이고; A2가 초기 매칭 코딩 유닛의 우상단 4*4 블록이며, B2가 A2 바로 오른쪽의 4*4 블록이고, C2가 A2 바로 위측의 4*4 블록이며; A3이 초기 매칭 코딩 유닛의 좌하단 4*4 블록이고, B3이 A3 바로 왼쪽의 4*4 블록이며, C3이 A3 바로 아래측의 4*4 블록이고; A4가 초기 매칭 코딩 유닛의 우하단 4*4 블록이며. B4가 A4 바로 오른쪽의 4*4 블록이고, C4가 A4 바로 아래측의 4*4 블록이며, 이의 모식도는 도 4에 도시된 바와 같을 수 있다.
예시적으로, 매칭 코딩 유닛에 대해 오프셋을 수행할 때, 오프셋의 단위가 8 픽셀인 것을 예로 든다. 예를 들면, 매칭 코딩 유닛에 대해 아래로 오프셋을 수행할 경우, 매칭 코딩 유닛에 대해 아래로 8개 픽셀 오프셋한다.
본 출원의 실시예에서 매칭 코딩 유닛에 대해 상/하/좌/우로 오프셋하여 매칭 코딩 유닛을 얻는 것을 고려하여, 후보 매칭 코딩 유닛을 추가하여 새로운 후보 모션 정보를 추가한다.
매칭 코딩 유닛에 대해 아래로 오프셋을 수행하는 것을 예로 들면, A1과 C3 위치의 모션 정보가 같고, 또한 A2와 C4 위치의 모션 정보가 같을 때, 매칭 코딩 유닛을 아래로 오프셋하여 얻은 새로운 매칭 코딩 유닛의 모션 정보가 기존의 매칭 코딩 유닛의 모션 정보와 같을 확률이 높은 것을 고려할 경우, 이번의 오프셋은 새로운 모션 정보를 얻지 못할 수 있다.
따라서, A1 위치의 모션 정보와 C3 위치의 모션 정보, 및 A2 위치의 모션 정보와 C4 위치의 모션 정보를 각각 비교할 수 있으며, 또한 두 개의 비교 결과 중 적어도 하나의 비교 결과가 일치하지 않을 경우, 아래로 오프셋하여 새로운 모션 정보를 얻는 것을 결정할 수 있는바, 즉 아래로 오프셋하여 얻은 매칭 코딩 유닛을 후보 매칭 코딩 유닛으로 이용할 수 있다.
예시적으로, 매칭 코딩 유닛에 대해 오프셋을 수행할 경우, 오프셋 후에 얻은 새로운 매칭 코딩 유닛의 오프셋 방향에서의 경계가 당해 매칭 코딩 유닛(오프셋 전의 매칭 코딩 유닛)이 소재하는 최대 코딩 유닛에 대응하는 좌표 범위를 초과하지 않도록 확보해야 하는바, 즉 당해 최대 코딩 유닛의 오프셋 방향에서의 경계를 초과하지 말고, 또한 당해 매칭 코딩 유닛이 소재하는 픽처에 대응하는 좌표 범위를 초과하지 말아야 하는 바, 즉 당해 픽처의 오프셋 방향에서의 경계를 초과하지 말아야 한다.
예시적으로, 위로의 오프셋에 대해, 오프셋 방향에서의 경계가 상측 경계이고; 아래로의 오프셋에 대해, 오프셋 방향에서의 경계가 하측 경계이며; 왼쪽으로의 오프셋에 대해, 오프셋 방향에서의 경계가 좌측 경계이고; 오른쪽으로의 오프셋에 대해, 오프셋 방향에서의 경계가 우측 경계이다.
예시적으로, 아래로의 오프셋을 예로 들면, 매칭 코딩 유닛에 대해 아래로 오프셋할 경우, 한 측면으로는, 오프셋 후의 종좌표(즉 My+8)가 y_ctb_pos + lcu_size - cu_height(즉 오프셋 후 얻은 새로운 매칭 코딩 유닛의 하측 경계가 오프셋 전의 매칭 코딩 유닛이 소재하는 최대 코딩 유닛의 하측 경계를 초과하지 않음)보다 작거나 같아야 하고, 다른 한 측면으로는, 오프셋 후의 종좌표가 vertical_size - cu_height(오프셋 후 얻은 새로운 매칭 코딩 유닛의 하측 경계가 오프셋 전의 매칭 코딩 유닛이 소재하는 픽처의 하측 경계를 초과하지 않음)보다 작거나 같아야 하는 바, 즉 My+8이 y_ctb_pos + lcu_size - cu_height 및 vertical_size - cu_height 중 작은 값보다 작거나 같아야 한다.
하나의 예시에서, 단계 S320에서, 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계는: 증강된 시간적 후보 리스트 길이가 5보다 작을 경우, 증강된 시간적 후보 리스트 길이가 5와 같을 때까지, 현재 증강된 시간적 후보 리스트 중 마지막 하나의 증강된 시간적 모션 벡터 예측 모드 번호와 동일한 증강된 시간적 모션 벡터 예측 모드 번호를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 조작을 반복하는 단계를 더 포함할 수 있다.
예시적으로, 매칭 코딩 유닛에 대해 위로 오프셋, 아래로 오프셋, 왼쪽으로 오프셋, 오른쪽으로 오프셋하여 모두 사용 가능한 후보 매칭 코딩 유닛을 얻는 경우를 고려하면, 후보 매칭 코딩 유닛은 오프셋 전의 매칭 코딩 유닛, 및 매칭을 통해 얻은 4개 매칭 코딩 유닛을 포함할 수 있는바, 즉 증강된 시간적 후보 리스트 길이가 5이다.
강건성을 향상시키고, 디코딩 오류를 피하기 위해, 상술한 방식에 따라 구축된 증강된 시간적 후보 리스트의 길이가 5보다 작을 경우, 책략을 통해 증강된 시간적 후보 리스트 길이를 5로 확장할 수 있다.
예시적으로, 증강된 시간적 후보 리스트 길이가 5보다 작을 경우, 증강된 시간적 후보 리스트 길이가 5와 같을 때까지, 현재 증강된 시간적 후보 리스트 중 마지막 하나의 증강된 시간적 모션 벡터 예측 모드 번호와 동일한 증강된 시간적 모션 벡터 예측 모드 번호를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 조작을 순환하여 수행할 수 있다.
일부 실시예에서, 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여 증강된 시간적 후보 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드 번호를 획득하고, 또한 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정하는 단계는:
만약 증강된 시간적 모션 벡터 예측 모드 번호가 0이면, Px가 Mx와 같고, Py가 My와 같은 단계;
만약 증강된 시간적 모션 벡터 예측 모드 번호가 1이면, Px가 Mx와 같고, Py가 My+n과 같은 단계;
만약 증강된 시간적 모션 벡터 예측 모드 번호가 2이면, Px가 Mx+n과 같고, Py가 My와 같은 단계;
만약 증강된 시간적 모션 벡터 예측 모드 번호가 3이면, Px가 Mx와 같고, Py가 My-n과 같은 단계;
만약 증강된 시간적 모션 벡터 예측 모드 번호가 4이면, Px가 Mx-n과 같고, Py가 My와 같은 단계를 포함할 수 있다;
예시적으로, (Mx, My)가 초기 매칭 코딩 유닛의 좌상단 좌표이고, (Px, Py)가 타깃 매칭 코딩 유닛의 좌상단 좌표이다.
예시적으로, 매칭 코딩 유닛에 대해 상/하/좌/우로 n개 픽셀만큼 오프셋하여 새로운 매칭 코딩 유닛을 얻는 것을 예로 든다. 예시적으로, n=8이다.
예시적으로, 초기 매칭 코딩 유닛에 대응하는 증강된 시간적 모션 벡터 예측 모드 번호가 0이고, 아래로 오프셋하여 얻은 매칭 코딩 유닛에 대응하는 증강된 시간적 모션 벡터 예측 모드 번호가 1이며, 오른쪽으로 오프셋하여 얻은 매칭 코딩 유닛에 대응하는 증강된 시간적 모션 벡터 예측 모드 번호가 2이고, 위로 오프셋하여 얻은 매칭 코딩 유닛에 대응하는 증강된 시간적 모션 벡터 예측 모드 번호가 3이며, 왼쪽으로 오프셋하여 얻은 매칭 코딩 유닛에 대응하는 증강된 시간적 모션 벡터 예측 모드 번호가 4라고 가정한다.
상술한 방식에 따라 증강된 시간적 후보 리스트를 구축하여 얻을 경우, 단계 S300에서 획득된 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여, 당해 증강된 시간적 후보 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드 번호를 획득할 수 있다.
예시적으로, 만약 증강된 시간적 모션 벡터 예측 모드 번호가 1이면, 타깃 매칭 코딩 유닛이 초기 매칭 코딩 유닛 전체를 아래로 n개 픽셀만큼 오프셋하여 얻은 시간적 참조 코딩 유닛인바, 즉 Px가 Mx와 같고, Py가 My+n과 같다.
만약 증강된 시간적 모션 벡터 예측 모드 번호가 2이면, 타깃 매칭 코딩 유닛이 초기 매칭 코딩 유닛 전체를 오른쪽으로 n개 픽셀만큼 오프셋하여 얻은 시간적 참조 코딩 유닛인바, 즉 Px가 Mx+n과 같고, Py가 My와 같은 단계.
만약 증강된 시간적 모션 벡터 예측 모드 번호가 3이면, 타깃 매칭 코딩 유닛이 초기 매칭 코딩 유닛 전체를 위로 n개 픽셀만큼 오프셋하여 얻은 시간적 참조 코딩 유닛인바, 즉 Px가 Mx와 같고, Py가 My-n과 같다.
만약 증강된 시간적 모션 벡터 예측 모드 번호가 4이면, 타깃 매칭 코딩 유닛이 초기 매칭 코딩 유닛 전체를 왼쪽으로 n개 픽셀만큼 오프셋하여 얻은 시간적 참조 코딩 유닛인바, 즉 Px가 Mx-n과 같고, Py가 My와 같다.
일부 실시예에서, 단계 S340에서, 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 단계는: 타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해, 현재 픽처 타입이 P 픽처인 경우, 만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보를 상기 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계를 포함할 수 있다.
일부 실시예에서, 단계 S340에서, 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 단계는: 타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해, 현재 픽처 타입이 B 픽처인 경우, 만약 당해 서브 블록의 포워드 모션 정보와 백워드 모션 정보가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여는 단계; 만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하지만, 백워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계; 만약 당해 서브 블록의 백워드 모션 정보가 사용 가능하지만, 포워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계를 포함할 수 있다.
예시적으로, 현재 코딩 유닛의 각 서브 블록의 모션 정보를 결정하는 효율을 향상시키기 위해, 타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해, 당해 서브 블록의 모션 정보가 사용 가능한지 여부를 판단할 수 있다.
예시적으로, 현재 픽처 타입이 P 픽처일 경우, 당해 서브 블록의 포워드 모션 정보가 사용 가능한지 여부를 판단할 수 있고; 현재 픽처 타입이 B 픽처일 경우, 당해 서브 블록의 포워드 모션 정보 및 백워드 모션 정보가 사용 가능한지 여부를 각각 판단할 수 있다.
예시적으로, 타깃 매칭 코딩 유닛 내의 임의의 서브 블록에 대해, 판단 결과가 포워드 모션 정보가 사용 가능한 것일 경우, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여할 수 있다.
예시적으로, 타깃 매칭 코딩 유닛 내의 임의의 서브 블록에 대해, 판단 결과가 백워드 모션 정보가 사용 가능한 것일 경우(현재 픽처 타입이 B 픽처인 것인 경우), 당해 서브 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여할 수 있다.
예시적으로, 타깃 매칭 코딩 유닛 내의 임의의 서브 블록에 대해, 판단 결과가 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 가능한 것일 경우(현재 픽처 타입이 B 픽처인 것인 경우), 당해 서브 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 상기 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여할 수 있다.
일부 실시예에서, 단계 S340에서, 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 단계는: 타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해, 현재 픽처 타입이 P 픽처인 경우, 만약 서브 블록의 포워드 모션 정보가 사용 불가능하고, 현재 코딩 유닛의 제1 주변 블록의 포워드 모션 정보가 사용 가능할 경우, 제1 주변 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계; 제1 주변 블록의 포워드 모션 정보가 사용 불가능하면, 제로 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계; 현재 픽처 타입이 B 픽처인 경우, 만약 서브 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가능하고, 현재 코딩 유닛의 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 가능할 경우, 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계; 제1 주변 블록의 포워드 모션 정보가 사용 가능하지만, 백워드 모션 정보가 사용 불가능하면, 제1 주변 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계; 제1 주변 블록의 백워드 모션 정보가 사용 가능하지만, 포워드 모션 정보가 사용 불가능할 경우, 제1 주변 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계; 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가능하면, 제로 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계를 포함할 수 있다.
예시적으로, 현재 코딩 유닛의 주변 블록(본문에서 제1 주변 블록이라고 지칭함)의 모션 정보에 기반하여 현재 코딩 유닛 내 서브 블록의 모션 정보를 결정할 수 있다.
예시적으로, 현재 코딩 유닛의 제1 주변 블록은 현재 코딩 유닛의 임의의 디코딩된 인접 블록 또는 비인접 블록을 포함할 수 있으며 이에 한정되지 않는다.
예를 들어 설명하면, 현재 코딩 유닛의 제1 주변 블록은 도 5에 도시된 바와 같을 수 있다. 도 5에 도시된 바와 같이, E가 현재 코딩 유닛이고, 현재 코딩 유닛의 제1 주변 블록은 A. B. C. D. F 및 G 중 임의의 블록을 포함할 수 있다.
예시적으로, 하나의 코딩 유닛은 적어도 하나의 서브 블록을 포함하고, 각 서브 블록의 너비가 현재 코딩 유닛의 너비를 초과하지 않으며, 각 서브 블록의 높이가 현재 코딩 유닛의 높이를 초과하지 않는 바, 예를 들면 각 서브 블록이 8*8 블록이다.
하나의 예시에서, 현재 코딩 유닛의 제1 주변 블록이 도 5 중의 F이다. 예시적으로, F의 사이즈는 8*8일 수 있는바, 즉 제1 주변 블록이 현재 코딩 유닛 좌하단의 인접한8*8 블록일 수 있다. 예시적으로, F의 사이즈는 4*4일 수 있는바, 즉 제1 주변 블록이 현재 코딩 유닛 좌하단의 인접한4*4 블록일 수 있다.
예시적으로, 현재 픽처 타입이 P 픽처인 경우에 대해, 타깃 매칭 코딩 유닛의 서브 블록의 포워드 모션 정보가 사용 불가인 경우, 또한 현재 코딩 유닛의 제1 주변 블록의 모션 정보에 기반하여 현재 코딩 유닛의 서브 블록의 모션 정보를 결정할 수 있다.
예시적으로, 현재 픽처 타입이 B 픽처인 것인 경우, 타깃 매칭 코딩 유닛의 서브 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가인 경우, 또한 현재 코딩 유닛의 제1 주변 블록의 모션 정보에 기반하여 현재 코딩 유닛의 서브 블록의 모션 정보를 결정할 수 있다.
예시적으로, 현재 픽처 타입이 P 픽처인 경우에 대해, 타깃 매칭 코딩 유닛의 서브 블록의 포워드 모션 정보 및 현재 픽처 코딩 유닛의 제1 주변 블록의 포워드 모션 정보 모두가 사용 불가인 경우, 제로(zero) 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여할 수 있다.
예시적으로, 현재 픽처 타입이 B 픽처인 것인 경우, 타깃 매칭 코딩 유닛의 서브 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가이고, 또한 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가인 경우, 제로 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여할 수 있다.
일부 실시예에서, 도 6을 참조하면, 단계 S340에서, 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정한 후, 아래 단계를 더 포함할 수 있다: 단계 S350, 현재 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 대응하는 서브 블록에 대해 모션 보상을 수행한다.
예시적으로, 상술한 방식에 따라 현재 코딩 유닛 내 각 서브 블록의 모션 정보를 결정한 경우, 현재 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 대응하는 서브 블록에 대해 모션 보상을 수행할 수 있다. 예를 들면, 현재 코딩 유닛 내 h번째 행 l번째 열의 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 h번째 행 l번째 열의 서브 블록에 대해 모션 보상을 수행할 수 있다.
하나의 예시에서, 단계 S350에서, 현재 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 대응하는 서브 블록에 대해 모션 보상을 수행하는 단계는: 현재 코딩 유닛의 임의의 서브 블록에 있어서, 당해 서브 블록의 모션 정보에 대해 디코딩 모션 벡터 조정 기술을 수행하지 않는 단계; 만약 당해 서브 블록이 양방향 광학적 흐름 조건을 충족시키면, 당해 서브 블록의 모션 정보에 기반하여 당해 서브 블록에 대해 모션 보상을 수행하고, 또한 양방향 광학적 흐름 기술을 이용하여 보상 후의 픽셀값에 광학적 흐름 오프셋값을 추가하여 당해 서브 블록의 예측 샘플 매트릭스를 얻은 단계; 충족시키지 않으면, 당해 서브 블록의 모션 정보에 기반하여 당해 서브 블록에 대해 모션 보상을 수행하여 당해 서브 블록의 예측 샘플 매트릭스를 얻는 단계를 포함할 수 있다.
예시적으로, 현재 코딩 유닛의 예측 샘플은 각 서브 블록의 예측 샘플로 구성된다.
하나의 예시에서, 서브 블록이 양방향 광학적 흐름 조건을 충족시키는 것은: 시퀀스 레벨 하이-레벨 신택스에 따라 양방향 광학적 흐름 기술을 활성화하는 것; 현재 코딩 유닛의 모션 벡터 정밀도가 0과 같은 것; 당해 서브 블록이 양방향 예측을 사용하는 것; 당해 서브 블록의 참조 픽처 리스트 0 중 참조 프레임 인덱스 값이 refIdxL0인 참조 프레임 및 참조 픽처 리스트 1 중 참조 인덱스 값이 refIdxL1인 참조 프레임 디스플레이 순서가 각각 현재 프레임의 양측에 위치하는 것을 포함한다.
실시예로서, 본 출원의 실시예는 인코딩 방법을 더 제공하는 바, 여기서, 당해 인코딩 방법은 인코딩 기기에 응용될 수 있고, 당해 방법은 아래 단계를 포함할 수 있다:
T100, 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정한다. 이의 구체적인 구현은 도 3에 도시된 실시예 중 단계 S310을 참조할 수 있으며, 본 출원의 실시예는 더 이상 반복하여 설명하지 않는다.
T110, 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축한다. 이의 구체적인 구현은 도 3에 도시된 실시예 중 단계 S320을 참조할 수 있으며, 본 출원의 실시예는 더 이상 반복하여 설명하지 않는다.
T120, 순서대로 증강된 시간적 후보 리스트 중 각 증강된 시간적 모션 벡터 예측 모드 번호를 순회하여, 각 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정한다.
예시적으로, 단계 T110에 설명된 방식에 따라 증강된 시간적 후보 리스트를 구축한 경우, 인코딩 기기는 증강된 시간적 후보 리스트 중 각 후보 증강된 시간적 모션 벡터 예측 모드 번호를 순회할 수 있다.
임의의 후보 증강된 시간적 모션 벡터 예측 모드 번호에 대해, 인코딩 기기는 당해 후보 증강된 시간적 모션 벡터 예측 모드 번호에 기반하여 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정할 수 있는바, 이의 구체적인 구현은 도 3에 도시된 실시예 중 단계 S330을 참조할 수 있으며, 본 출원의 실시예는 더 이상 반복하여 설명하지 않는다.
T130, 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 타깃 매칭 코딩 유닛의 모션 정보를 결정하고, 당해 타깃 매칭 코딩 유닛의 모션 정보는 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보를 포함하며, 또한 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정한다. 이의 구체적인 구현은 도 3에 도시된 실시예 중 단계 S340을 참조할 수 있으며, 본 출원의 실시예는 더 이상 반복하여 설명하지 않는다.
T140, 현재 코딩 유닛 내의 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내의 대응하는 서브 블록에 대해 모션 보상을 수행한다. 이의 구체적인 구현은 도 6에 도시된 실시예 중 단계 S350을 참조할 수 있으며, 본 출원의 실시예는 더 이상 반복하여 설명하지 않는다.
T150, 증강된 시간적 모션 벡터 예측 모드에 대응하는 율-왜곡 코스트값을 계산하고, 또한 당해 율-왜곡 코스트값과 기타 예측 모드의 율-왜곡 코스트값을 비교하여, 가장 작은 율-왜곡 코스트값에 대응하는 예측 모드를 선택하며, 또한 대응하는 증강된 시간적 모션 벡터 예측 모드 플래그 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 비트 스트림에 라이트하여 디코딩 기기에 전송한다.
예시적으로, 인코딩 기기는 RDO 결책에 기초하여 율-왜곡 코스트값이 가장 작은 예측 모드를 결정하고, 또한 최소 율-왜곡 코스트값에 대응하는 예측 모드에 기반하여 증강된 시간적 모션 벡터 예측 모드 플래그의 값 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 결정하고, 또한 이를 비트 스트림에 라이트하여 디코딩 기기에 전송할 수 있다.
예시적으로, 상술한 각 실시예의 인코딩 및 디코딩의 구현 과정은 서로 참조할 수 있다.
본 기술분야의 통상의 기술자들이 본 출원의 실시예에서 제공하는 기술적 해결 방안을 더 잘 이해하기 위해, 아래 구체적인 실시예와 결부하여 본 출원의 실시예에서 제공하는 기술적 해결 방안에 대해 설명한다.
실시예 1
본 출원의 실시예는 증강된 시간적 모션 정보 예측 방법을 제공하는 바, 현재 코딩 유닛의 co-located 프레임에서의 동일 위치의 코딩 유닛의 모션 정보를 이용하여 매칭 코딩 유닛을 결정하고, 또한 찾은 매칭 코딩 유닛에 대해 상하좌우 등 일련의 오프셋을 수행하여, 복수 개의 시간적 후보 모드를 생성함으로써, 주변 코딩 유닛의 모션 정보가 정확하지 않음으로 인해 찾은 매칭 코딩 유닛이 정확하지 않은 문제점을 어느 정도 피한다.
본 출원의 실시예의 주요 구현 과정은 아래 6개 부분을 포함할 수 있다:
제1 부분. 증강된 시간적 모션 벡터 예측 모드 플래그 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 인코딩/해석한다;
제2 부분. 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정한다;
제3 부분. 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축한다;
제4 부분. 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여 증강된 시간적 후보 모드 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드를 획득하고, 또한 당해 증강된 시간적 모션 벡터 예측 모드에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정한다;
제5 부분. 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛 내 각 서브 블록의 모션 정보를 획득한다;
제6 부분. 현재 코딩 유닛 내의 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 대응하는 서브 블록에 대해 모션 보상을 수행한다.
예시적으로, 상술한 6개 부분의 선후 순서는 조정될 수 있다.
실시예 2
본 출원의 실시예에서 제공하는 인코딩 방법은 아래 단계를 포함할 수 있다:
1, 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정한다;
2, 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축한다;
3, 순서대로 증강된 시간적 후보 리스트 중 각종의 증강된 시간적 후보 모드를 순회하여 각 모드에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정한다;
4, 타깃 매칭 코딩 유닛의 좌표 정보에 대응하는 모션 정보에 기반하여 현재 코딩 유닛 내의 각 서브 블록의 모션 정보를 결정한다;
5, 현재 코딩 유닛 내의 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내의 대응하는 서브 블록에 대해 모션 보상을 수행한다;
6, 증강된 시간적 모션 벡터 예측 모드에 대응하는 율-왜곡 코스트값을 계산하고, 또한 당해 율-왜곡 코스트값과 기타 예측 모드의 율-왜곡 코스트값을 비교하여, 가장 작은 율-왜곡 코스트값에 대응하는 예측 모드를 선택하며, 또한 대응하는 증강된 시간적 모션 벡터 예측 모드 플래그 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 비트 스트림에 라이트하여 디코딩 기기에 전송한다.
실시예3
본 출원의 실시예에서 제공하는 디코딩 방법은 아래 단계를 포함할 수 있다:
1, 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 획득하고; 획득된 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제1 값일 경우, 단계 2 내지 6을 수행한다.
2, 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정한다;
3, 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축한다;
4, 획득된 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여 증강된 시간적 후보 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드 번호를 획득하고, 또한 당해 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정한다;
5, 타깃 매칭 코딩 유닛의 좌표 정보에 대응하는 모션 정보에 기반하여 현재 코딩 유닛 내 각 서브 블록의 모션 정보를 결정한다;
6, 현재 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 대응하는 서브 블록에 대해 모션 보상을 수행한다.
아래 실시예와 결부하여 본 출원의 실시예의 주요 과정의 각 부분(즉 제1 부분 내지 제6 부분 중 각 부분)에 대해 각각 설명한다.
제1 부분. 증강된 시간적 모션 벡터 예측 모드 플래그 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 인코딩/해석한다.
예시적으로, 증강된 시간적 모션 벡터 예측 모드 플래그 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 해석하는 단계는: 1), 증강된 시간적 모션 벡터 예측 모드 플래그(etmvp_flag로 표기할 수 있음)를 해석하는 단계; 2), 증강된 시간적 모션 벡터 예측 모드 인덱스 값(cu_etmvp_cand_index로 표기할 수 있음)을 해석하는 단계를 포함할 수 있다.
실시예4
만약 현재 코딩 유닛이 해석 조건 1(즉 상술한 제1 해석 조건)을 충족시키면, 비트 스트림으로부터 증강된 시간적 모션 벡터 예측 모드 플래그를 해석하고, 그렇지 않으면, 증강된 시간적 모션 벡터 예측 모드 플래그값이 0(즉 상술한 제2 값이 0임)이다.
예시적으로, 현재 코딩 유닛이 해석 조건 1을 충족시키는 경우는 각각 실시예 5 내지 실시예 10을 참조할 수 있다.
실시예 5
현재 코딩 유닛이 해석 조건 1을 충족시키는 것은, 현재 코딩 유닛이 스킵 모드 또는 직접 모드인 것을 포함한다.
실시예 6
현재 코딩 유닛이 해석 조건 1을 충족시키는 것은, 현재 코딩 유닛 사이즈가 아래 제한(즉 상술한 기설정된 사이즈 제한): 현재 코딩 유닛의 너비와 높이 모두가 N0보다 크거나 같은 것을 충족시키는 것을 포함한다. 예시적으로, N0=8이다.
실시예 7
현재 코딩 유닛이 해석 조건 1을 충족시키는 것은, 시퀀스 레벨 하이-레벨 신택스에 따라 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 기술을 활성화하는 것을 포함한다.
실시예 8
현재 코딩 유닛이 해석 조건 1을 충족시키는 것은, 현재 코딩 유닛이 각도 가중 예측 사용 조건을 충족시키거나 또는 고급 모션 벡터 표현 사용 조건을 충족시키는 것을 포함한다.
예시적으로, 각도 가중 예측 사용 조건은: 시퀀스 레벨 하이-레벨 신택스에 따라 상기 현재 코딩 유닛이 각도 가중 예측 기술을 활성화하는 것; 현재 코딩 유닛의 너비와 높이 모두가 N1보다 크거나 같고, 현재 코딩 유닛의 너비와 높이 모두가 N2보다 작거나 같은 것; 현재 픽처 타입이 B 픽처인 것을 포함할 수 있다.
예시적으로, N1=8이다. 예시적으로, N2=64이다.
예시적으로, 현재 코딩 유닛이 고급 모션 벡터 표현 사용 조건을 충족시키는 것은: 시퀀스 레벨 하이-레벨 신택스에 따라 현재 코딩 유닛이 하이-레벨 모션 벡터 표현 기술을 활성화하는 것을 포함한다.
실시예 9
현재 코딩 유닛이 해석 조건 1을 충족시키는 것은:
1), 현재 코딩 유닛이 스킵 모드 또는 직접 모드인 것;
2), 현재 코딩 유닛 사이즈가 아래 제한을 충족시키는 것:
2.1), 현재 코딩 유닛의 너비와 높이 모두가 N0보다 크거나 같다. 예시적으로, N0=8임;
3), 시퀀스 레벨 하이-레벨 신택스에 따라 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 기술을 활성화하는 것을 포함한다.
실시예 10
현재 코딩 유닛이 해석 조건 1을 충족시키는 것은:
1), 현재 코딩 유닛이 스킵 모드 또는 직접 모드인 것;
2), 현재 코딩 유닛 사이즈가 아래 제한을 충족시키는 것:
2.1), 현재 코딩 유닛의 너비와 높이 모두가 N0보다 크거나 같다. 예시적으로, N0=8임;
3), 시퀀스 레벨 하이-레벨 신택스에 따라 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 기술을 활성화하는 것.
4), 현재 코딩 유닛이 각도 가중 예측 사용 조건을 충족시키거나 또는 고급 모션 벡터 표현 사용 조건을 충족시키는 것을 포함한다.
예시적으로, 각도 가중 예측 사용 조건은:
4.1), 시퀀스 레벨 하이-레벨 신택스에 따라 상기 현재 코딩 유닛이 각도 가중 예측 기술을 활성화하는 것;
4.2), 현재 코딩 유닛의 너비와 높이 모두가 N1보다 크거나 같고, 현재 코딩 유닛의 너비와 높이 모두가 N2보다 작거나 같은 것;
4.3), 현재 픽처 타입이 B 픽처인 것을 포함할 수 있다.
예시적으로, N1=8이다. 예시적으로, N2=64이다.
예시적으로, 현재 코딩 유닛이 고급 모션 벡터 표현 사용 조건을 충족시키는 것은, 시퀀스 레벨 하이-레벨 신택스에 따라 현재 코딩 유닛이 하이-레벨 모션 벡터 표현 기술을 활성화하는 것을 포함한다.
설명해야 할 것은, 본 출원의 실시예에서, 현재 코딩 유닛이 해석 조건 1을 충족시키는 것은, 상술한 실시예 5 내지 실시예 10에 설명된 경우에 한정되지 않고, 실시예 5 내지 실시예 8 중 각 실시예 중 임의의 두 개의 조합을 통해 얻은 경우, 및 임의의 3개 조합을 통해 얻은 경우(실시예 5 내지 실시예 7를 조합하여 얻은 것이 실시예 9임)를 포함할 수도 있다.
실시예 11
만약 현재 코딩 유닛이 해석 조건 1을 충족시키면, 비트 스트림으로부터 증강된 시간적 모션 벡터 예측 모드 플래그를 해석하고; 그렇지 않으면, 증강된 시간적 모션 벡터 예측 모드 플래그값이 0이다.
예시적으로, 증강된 시간적 모션 벡터 예측 모드 플래그가 문맥에 기초한 이진법 산술 인코딩을 사용한다.
실시예 12
만약 현재 코딩 유닛이 해석 조건 1을 충족시키면, 비트 스트림으로부터 증강된 시간적 모션 벡터 예측 모드 플래그를 해석하고; 그렇지 않으면, 증강된 시간적 모션 벡터 예측 모드 플래그값이 0이다.
예시적으로, 현재 코딩 유닛이 해석 조건 1을 충족시키는 구체적인 경우는 상술한 실시예 중의 관련 설명, 예컨대 실시예 5 내지 실시예 10 중 임의의 실시예의 설명을 참조할 수 있다.
예시적으로, 증강된 시간적 모션 벡터 예측 모드 플래그가 문맥에 기초한 이진법 산술 인코딩을 사용하고, 또한 1개 문맥 모델을 사용한다.
실시예 13
만약 현재 코딩 유닛이 해석 조건 1을 충족시키면, 비트 스트림으로부터 증강된 시간적 모션 벡터 예측 모드 플래그를 해석하고; 그렇지 않으면, 증강된 시간적 모션 벡터 예측 모드 플래그값이 0이다.
예시적으로, 현재 코딩 유닛이 해석 조건 1을 충족시키는 구체적인 경우는 상술한 실시예 중의 관련 설명, 예컨대 실시예 5 내지 실시예 10 중 임의의 실시예의 설명을 참조할 수 있다.
예시적으로, 증강된 시간적 모션 벡터 예측 모드 플래그가 문맥에 기초한 이진법 산술 인코딩을 사용하고, 또한 복수 개의 문맥 모델을 사용한다.
예시적으로, 당해 복수 개의 문맥 모델은 현재 코딩 유닛의 사이즈에 기반하여 결정될 수 있다.
예시적으로, 현재 코딩 유닛의 사이즈는 현재 코딩 유닛의 너비 및/또는 높이. 현재 코딩 유닛의 너비와 높이 중의 최대치 또는 최소치, 또는 현재 코딩 유닛의 너비와 높이의 승적 등을 포함할 수 있으며 이에 한정되지 않는다.
실시예 14
만약 현재 코딩 유닛이 해석 조건 2(즉 상술한 제2 해석 조건)를 충족시키면, 비트 스트림으로부터 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 해석하고; 그렇지 않으면, 증강된 시간적 모션 벡터 예측 모드 인덱스 값이 0(즉 상술한 제3 값이 0)이다.
예시적으로, 현재 코딩 유닛이 해석 조건 2를 충족시키는 경우는 각각 실시예 15 내지 실시예 17을 참조할 수 있다.
실시예 15
현재 코딩 유닛이 해석 조건 2를 충족시키는 것은, 현재 코딩 유닛이 스킵 모드 또는 직접 모드인 것을 포함한다.
실시예 16
현재 코딩 유닛이 해석 조건 2를 충족시키는 것은, 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드인 것을 포함한다.
실시예 17
현재 코딩 유닛이 해석 조건 2를 충족시키는 것은:
1), 현재 코딩 유닛이 스킵 모드 또는 직접 모드인 것;
2), 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드인 것을 포함한다.
예를 들면, 증강된 시간적 모션 벡터 예측 모드 인덱스 값의 신택스 설명은 아래와 같을 수 있다:
실시예 18
만약 현재 코딩 유닛이 해석 조건 2(즉 상술한 제2 해석 조건)를 충족시키면, 비트 스트림으로부터 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 해석하고; 그렇지 않으면, 증강된 시간적 모션 벡터 예측 모드 인덱스 값이 0(즉 상술한 제3 값이 0)이다.
예시적으로, 현재 코딩 유닛이 해석 조건 2를 충족시키는 경우는 실시예 15 내지 실시예 17 중 임의의 실시예 중의 설명을 참조할 수 있다.
예시적으로, 증강된 시간적 모션 벡터 예측 모드 인덱스 값의 역이진화 방식은 최대치가 4인 절삭형 단항 코드를 사용하여 구현되고, 절삭형 단항 코드는 최대 4개의 빈 스트링을 사용하며, 각 빈은 개별적인 문맥 모델을 사용하고, 총 4개의 문맥 모델을 포함한다. 예를 들면, 증강된 시간적 모션 벡터 예측 모드 인덱스 값의 역이진화 구현은 표 1을 참조할 수 있다.
제2 부분. 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정한다.
예시적으로, 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계는: 현재 픽처 타입에 기반하여 매칭 코딩 유닛이 소재하는 시간적 참조 픽처를 결정하는 단계; 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계를 포함할 수 있다.
예시적으로, 시간적 참조 픽처 중 너비와 높이가 현재 코딩 유닛의 너비와 높이와 일치한 시간적 참조 블록이 현재 코딩 유닛의 매칭 코딩 유닛이다.
예시적으로, 만약 현재 픽처 타입이 P 픽처이면, 시간적 참조 픽처가 참조 픽처 리스트 0 중 참조 프레임 인덱스 값이 0인 참조 픽처이고; 만약 현재 픽처 타입이 B 픽처이면, 시간적 참조 픽처가 참조 픽처 리스트 1 중 참조 프레임 인덱스 값이 0인 참조 픽처이다.
예시적으로, 현재 코딩 유닛의 좌표 정보가 현재 코딩 유닛의 픽처(현재 픽처)에서의 좌상단 좌표일 수 있고; 매칭 코딩 유닛의 좌표 정보가 매칭 코딩 유닛의 시간적 참조 픽처에서의 좌상단 좌표일 수 있다.
예시적으로, 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계는: 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표, 최대 코딩 유닛의 크기, 현재 픽처의 사이즈, 현재 코딩 유닛의 사이즈, 현재 코딩 유닛의 픽처에서의 좌상단 좌표에 기반하여, 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계를 포함할 수 있다.
예시적으로, 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표, 최대 코딩 유닛의 크기, 현재 픽처의 사이즈, 현재 코딩 유닛의 사이즈, 현재 코딩 유닛의 픽처에서의 좌상단 좌표에 기반하여 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계는: 현재 최대 코딩 유닛의 픽처에서의 좌상단 횡좌표, 최대 코딩 유닛의 크기, 현재 코딩 유닛의 너비, 현재 픽처의 너비, 현재 코딩 유닛의 픽처에서의 좌상단 횡좌표에 기반하여 초기 매칭 코딩 유닛의 횡좌표를 결정하는 단계; 현재 최대 코딩 유닛의 픽처에서의 좌상단 종좌표, 최대 코딩 유닛의 크기, 현재 코딩 유닛의 높이, 현재 픽처의 높이, 현재 코딩 유닛의 픽처에서의 좌상단 종좌표에 기반하여 초기 매칭 코딩 유닛의 종좌표를 결정하는 단계를 포함한다.
예시적으로, 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계의 구체적인 구현은 실시예 19 내지 실시예 21 중 임의의 실시예의 설명을 참조할 수 있다.
실시예 19
(Xpos, Ypos)가 현재 코딩 유닛의 픽처에서의 좌상단 좌표이고, (x_ctb_pos, y_ctb_pos)가 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표이며, cu_width 및 cu_height가 각각 현재 코딩 유닛의 너비와 높이이고, horizontal_size와 vertical_size가 각각 현재 픽처의 너비와 높이이며, lcu_size가 최대 코딩 유닛의 크기라고 가정하며, 아래 방법에 따라 매칭 코딩 유닛의 좌표(Mx, My)를 유도한다:
Mx = Clip3(x_ctb_pos, min(x_ctb_pos + lcu_size - cu_width, horizontal_size - cu_width), ((Xpos+4)>>3)<<3)
My = Clip3 (y_ctb_pos, min(y_ctb_pos + lcu_size - cu_height, vertical_size - cu_height), ((Ypos+4)>>3)<<3)
실시예 20
(Xpos, Ypos)가 현재 코딩 유닛의 픽처에서의 좌상단 좌표이고, (x_ctb_pos, y_ctb_pos)가 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표이며, cu_width 및 cu_height가 각각 현재 코딩 유닛의 너비와 높이이고, horizontal_size와 vertical_size가 각각 현재 픽처의 너비와 높이이며, lcu_size가 최대 코딩 유닛의 크기라고 가정하며, 아래 방법에 따라 매칭 코딩 유닛의 좌표(Mx, My)를 유도한다:
Mx = min (((Xpos+4)>>3)<<3, min (x_ctb_pos + lcu_size - cu_width, horizontal_size - cu_width))
My = min (((Ypos+4)>>3)<<3, min(y_ctb_pos + lcu_size - cu_height, vertical_size - cu_height))
실시예 21
(Xpos, Ypos)가 현재 코딩 유닛의 픽처에서의 좌상단 좌표이고, (x_ctb_pos, y_ctb_pos)가 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표이며, cu_width 및 cu_height가 각각 현재 코딩 유닛의 너비와 높이이고, horizontal_size와 vertical_size가 각각 현재 픽처의 너비와 높이이며, lcu_size가 최대 코딩 유닛의 크기라고 가정하며, 아래 방법에 따라 매칭 코딩 유닛의 좌표(Mx, My)를 유도한다:
Mx = Clip3(x_ctb_pos, min(x_ctb_pos + lcu_size - cu_width, horizontal_size - cu_width), (Xpos>>3)<<3)
My = Clip3 (y_ctb_pos, min(y_ctb_pos + lcu_size - cu_height, vertical_size - cu_height), (Ypos>>3)<<3)
실시예 22
(Xpos, Ypos)가 현재 코딩 유닛의 픽처에서의 좌상단 좌표라고 가정하면, 아래 방법에 따라 매칭 코딩 유닛의 좌표(Mx, My)를 유도할 수 있다:
Mx= (Xpos>>shift)<<shift
My= (Ypos>>shift)<<shift)
예시적으로, Shift는 서브 블록의 크기와 관련되고, N*N 서브 블록에 대해, N=1<<shift이다. 예를 들면, 만약 서브 블록 크기가 8*8이면, shift=3이다.
제3 부분. 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축한다
예시적으로, (Mx, My)가 초기 매칭 코딩 유닛의 시간적 참조 픽처에서의 좌상단 좌표이고, A1 내지 A4, B1 내지 B4, C1 내지 C4가 시간적 참조 픽처 내 초기 매칭 코딩 유닛 주변에 위치한 인접한 4*4 블록이라고 가정할 경우, 이의 모식도는 도 4에 도시된 바와 같을 수 있다.
실시예 23
23.0, 증강된 시간적 후보 리스트의 길이를 0으로 초기화한다. 예시적으로, 증강된 시간적 후보 리스트의 초기 길이가 0이다.
23.1. 증강된 시간적 모션 벡터 예측 모드 번호 0을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
23.2, 만약 (Mx, My)가 소재하는 매칭 코딩 유닛이 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 하측 경계를 초과하지 않고, 또한 A1 위치의 모션 정보가 C3 위치의 모션 정보와 상이하거나, 또는 A2 위치의 모션 정보가 C4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 1을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
23.3, 만약 (Mx, My)가 소재하는 매칭 코딩 유닛이 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 우측 경계를 초과하지 않고, 또한 A1 위치의 모션 정보가 B2 위치의 모션 정보와 상이하거나, 또는 A3 위치의 모션 정보가 B4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 2을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
23.4, 만약 (Mx, My)가 소재하는 매칭 코딩 유닛이 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 상측 경계를 초과하지 않고, 또한 A3 위치의 모션 정보가 C1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 C2 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 3을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
23.5, 만약 (Mx, My)가 소재하는 매칭 코딩 유닛이 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 좌측 경계를 초과하지 않고, 또한 A2 위치의 모션 정보가 B1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 B3 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 4를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
23.6, 만약 증강된 시간적 후보 리스트 길이가 5보다 작으면, 아래 조작을 순환하여 수행한다:
23.6.1, 증강된 시간적 후보 리스트 중 마지막 하나의 증강된 시간적 모션 벡터 예측 모드 번호를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
23.6.2, 만약 증강된 시간적 후보 리스트 길이가 5와 같으면, 리스트 구축 과정을 종료한다.
예시적으로, 이의 구현 로직은 아래와 같을 수 있다:
1), EtmvpCandArray[i]를 0으로 초기화하고, i=0 내지 4이고; length를 0으로 초기화한다;
2), 우선 EtmvpCandArray[0]=0이고, length에 1을 더한다;
3), 만약 (Mx, My)가 소재하는 매칭 코딩 유닛이 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 하측 경계를 초과하지 않고, 또한 A1 위치의 모션 정보가 C3 위치의 모션 정보와 상이하거나, 또는 A2 위치의 모션 정보가 C4 위치의 모션 정보와 상이하면, EtmvpCandArray[length]=1이고, length에 1을 더한다;
4), 만약 (Mx, My)가 소재하는 매칭 코딩 유닛이 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 우측 경계를 초과하지 않고, 또한 A1 위치의 모션 정보가 B2 위치의 모션 정보와 상이하거나, 또는 A3 위치의 모션 정보가 B4 위치의 모션 정보와 상이하면, EtmvpCandArray[length]=2이고, length에 1을 더한다;
5), 만약 (Mx, My)가 소재하는 매칭 코딩 유닛이 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 상측 경계를 초과하지 않고, 또한 A3 위치의 모션 정보가 C1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 C2 위치의 모션 정보와 상이하면, EtmvpCandArray[length]=3이고, length에 1을 더한다;
6), 만약 (Mx, My)가 소재하는 매칭 코딩 유닛이 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 좌측 경계를 초과하지 않고, 또한 A2 위치의 모션 정보가 B1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 B3 위치의 모션 정보와 상이하면, EtmvpCandArray[length]=4, length에 1을 더한다;
7), 만약 length가 5보다 작으면, 아래 조작을 순환하여 수행한다:
7.1), EtmvpCandArray[length]=EtmvpCandArray[length-1]이면, length에 1을 더한다.
7.2), 만약 length가 5와 같으면, 리스트 구축 과정을 종료한다.
실시예 24
24.0, 증강된 시간적 후보 리스트의 길이를 0으로 초기화한다. 예시적으로, 증강된 시간적 후보 리스트의 초기 길이가 0이다.
24.1, 증강된 시간적 모션 벡터 예측 모드 번호 0을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
24.2, 만약 (Mx, My)가 소재하는 매칭 코딩 유닛이 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 하측 경계를 초과하지 않고, 또한 A1 위치의 모션 정보가 C3 위치의 모션 정보와 상이하거나, 또는 A2 위치의 모션 정보가 C4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 1을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
24.3, 만약 (Mx, My)가 소재하는 매칭 코딩 유닛이 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 우측 경계를 초과하지 않고, 또한 A1 위치의 모션 정보가 B2 위치의 모션 정보와 상이하거나, 또는 A3 위치의 모션 정보가 B4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 2을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
24.4, 만약 (Mx, My)가 소재하는 매칭 코딩 유닛이 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 상측 경계를 초과하지 않고, 또한 A3 위치의 모션 정보가 C1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 C2 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 3을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
24.5, 만약 (Mx, My)가 소재하는 매칭 코딩 유닛이 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 좌측 경계를 초과하지 않고, 또한 A2 위치의 모션 정보가 B1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 B3 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 4를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다.
실시예 25
25.0, 증강된 시간적 후보 리스트의 길이를 0으로 초기화한다. 예시적으로, 증강된 시간적 후보 리스트의 초기 길이가 0이다.
25.1, 증강된 시간적 모션 벡터 예측 모드 번호 0을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다 예시적으로, 증강된 시간적 후보 리스트의 초기 길이가 0이다.
25.2, 만약 (Mx, My+8)가 소재하는 매칭 코딩 유닛의 하측 경계가 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 하측 경계를 초과하지 않고, 또한 A1 위치의 모션 정보가 C3 위치의 모션 정보와 상이하거나, 또는 A2 위치의 모션 정보가 C4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 1을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
25.3, 만약 (Mx+8, My)가 소재하는 매칭 코딩 유닛의 우측 경계가 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 우측 경계를 초과하지 않고, 또한 A1 위치의 모션 정보가 B2 위치의 모션 정보와 상이하거나, 또는 A3 위치의 모션 정보가 B4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 2을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
25.4, 만약 (Mx, My-8)가 소재하는 매칭 코딩 유닛의 상측 경계가 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 상측 경계를 초과하지 않고, 또한 A3 위치의 모션 정보가 C1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 C2 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 3을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
25.5, 만약 (Mx-8, My)가 소재하는 매칭 코딩 유닛의 좌측 경계가 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 좌측 경계를 초과하지 않고, 또한 A2 위치의 모션 정보가 B1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 B3 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 4를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
25.6, 만약 증강된 시간적 후보 리스트 길이가 5보다 작으면, 아래 조작을 순환하여 수행한다:
25.6.1, 증강된 시간적 후보 리스트 중 마지막 하나의 증강된 시간적 모션 벡터 예측 모드 번호를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
25.6.2, 만약 증강된 시간적 후보 리스트 길이가 5와 같으면, 리스트 구축 과정을 종료한다.
실시예 26
26.0, 증강된 시간적 후보 리스트의 길이를 0으로 초기화한다.
26.1, 증강된 시간적 모션 벡터 예측 모드 번호 0을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다. 예시적으로, 증강된 시간적 후보 리스트의 초기 길이가 0이다.
26.2, 만약 (Mx, My+8)가 소재하는 매칭 코딩 유닛의 하측 경계가 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 하측 경계를 초과하지 않고, 또한 A1 위치의 모션 정보가 C3 위치의 모션 정보와 상이하거나, 또는 A2 위치의 모션 정보가 C4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 1을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
26.3, 만약 (Mx+8, My)가 소재하는 매칭 코딩 유닛의 우측 경계가 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 우측 경계를 초과하지 않고, 또한 A1 위치의 모션 정보가 B2 위치의 모션 정보와 상이하거나, 또는 A3 위치의 모션 정보가 B4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 2을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
26.4, 만약 (Mx, My-8)가 소재하는 매칭 코딩 유닛의 상측 경계가 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 상측 경계를 초과하지 않고, 또한 A3 위치의 모션 정보가 C1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 C2 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 3을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
26.5, 만약 (Mx-8, My)가 소재하는 매칭 코딩 유닛의 좌측 경계가 당해 매칭 코딩 유닛이 소재하는LCU 또는 픽처의 좌측 경계를 초과하지 않고, 또한 A2 위치의 모션 정보가 B1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 B3 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 4를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다.
실시예 27
27.0, 증강된 시간적 후보 리스트의 길이를 0으로 초기화한다. 예시적으로, 증강된 시간적 후보 리스트의 초기 길이가 0이다.
27.1, 증강된 시간적 모션 벡터 예측 모드 번호 0을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다
27.2, 만약 My+8이 y_ctb_pos + lcu_size - cu_height 및 vertical_size - cu_height 중의 작은 값보다 작거나 같고, 또한 A1 위치의 모션 정보가 C3 위치의 모션 정보와 상이하거나, 또는 A2 위치의 모션 정보가 C4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 1을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다
27.3, 만약 Mx+8이 x_ctb_pos + lcu_size - cu_width 및 horizontal_size - cu_width 중 작은 값보다 작거나 같고, 또한 A1 위치의 모션 정보가 B2 위치의 모션 정보와 상이하거나, 또는 A3 위치의 모션 정보가 B4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 2을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다
27.4, 만약 My-8이 y_ctb_pos보다 크거나 같고, 또한 A3 위치의 모션 정보가 C1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 C2 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 3을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
27.5, 만약 Mx-8이 x_ctb_pos보다 크거나 같고, 또한 A2 위치의 모션 정보가 B1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 B3 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 4를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
27.6, 만약 증강된 시간적 후보 리스트 길이가 5보다 작으면, 아래 조작을 순환하여 수행한다:
27.6.1, 증강된 시간적 후보 리스트 중 마지막 하나의 증강된 시간적 모션 벡터 예측 모드 번호를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
27.6.2, 만약 증강된 시간적 후보 리스트 길이가 5와 같으면, 리스트 구축 과정을 종료한다.
실시예 28
28.0, 증강된 시간적 후보 리스트의 길이를 0으로 초기화한다. 예시적으로, 증강된 시간적 후보 리스트의 초기 길이가 0이다.
28.1, 증강된 시간적 모션 벡터 예측 모드 번호 0을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
28.2, 만약 My+8이 y_ctb_pos + lcu_size - cu_height 및 vertical_size - cu_height 중의 작은 값보다 작거나 같고, 또한 A1 위치의 모션 정보가 C3 위치의 모션 정보와 상이하거나, 또는 A2 위치의 모션 정보가 C4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 1을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
28.3, 만약 Mx+8이 x_ctb_pos + lcu_size - cu_width 및 horizontal_size - cu_width 중 작은 값보다 작거나 같고, 또한 A1 위치의 모션 정보가 B2 위치의 모션 정보와 상이하거나, 또는 A3 위치의 모션 정보가 B4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 2을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
28.4, 만약 My-8이 y_ctb_pos보다 크거나 같고, 또한 A3 위치의 모션 정보가 C1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 C2 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 3을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다;
28.5, 만약 Mx-8이 x_ctb_pos보다 크거나 같고, 또한 A2 위치의 모션 정보가 B1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 B3 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 4를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더한다.
제4 부분. 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여 증강된 시간적 후보 모드 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드를 획득하고, 또한 당해 증강된 시간적 모션 벡터 예측 모드에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정한다.
예시적으로, 증강된 시간적 모션 벡터 예측 모드 인덱스 (EtmvpCandIndex로 표기할 수 있음)에 기반하여, 증강된 시간적 후보 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드 번호(etmvp_mode로 표기할 수 있음)를 획득하고, 증강된 시간적 모션 벡터 예측 모드 번호 etmvp_mode에 기반하여 타깃 매칭 코딩 유닛의 위치 좌표(Px, Py)를 얻는 것을 결정한다. 예시적으로,
etmvp_mode = EtmvpCandArray[EtmvpCandIndex]이다.
실시예 29
증강된 시간적 모션 벡터 예측 모드 번호에 기반하여, 표 조회(table lookup)를 통해 타깃 매칭 코딩 유닛의 위치 좌표(Px, Py)를 결정한다. 예시적으로, etmvp_mode와 Px. Py의 대응 관계는 표 2에 도시된 바와 같을 수 있다:
etmvp_mode Px의 값 Py의 값
0 Mx My
1 Mx My + n
2 Mx + n My
3 Mx My - n
4 Mx - n My
예시적으로, n은 8일 수 있다.
실시예 30
만약 증강된 시간적 모션 벡터 예측 모드 번호가 0이면, 타깃 매칭 코딩 유닛이 초기 매칭 코딩 유닛인바, 즉 Px가 Mx와 같고, Py가 My와 같다;
만약 증강된 시간적 모션 벡터 예측 모드 번호가 1이면, 타깃 매칭 코딩 유닛이 초기 매칭 코딩 유닛 전체를 아래로 n개 픽셀만큼 오프셋하여 얻은 시간적 참조 블록인바, 즉 Px가 Mx와 같고, Py가 My+n과 같다;
만약 증강된 시간적 모션 벡터 예측 모드 번호가 2이면, 타깃 매칭 코딩 유닛이 초기 매칭 코딩 유닛 전체를 오른쪽으로 n개 픽셀만큼 오프셋하여 얻은 시간적 참조 블록인바, 즉 Px가 Mx+n과 같고, Py가 My와 같다;
만약 증강된 시간적 모션 벡터 예측 모드 번호가 3이면, 타깃 매칭 코딩 유닛이 초기 매칭 코딩 유닛 전체를 위로 n개 픽셀만큼 오프셋하여 얻은 시간적 참조 블록인바, 즉 Px가 Mx와 같고, Py가 My-n과 같다;
만약 증강된 시간적 모션 벡터 예측 모드 번호가 4이면, 타깃 매칭 코딩 유닛이 초기 매칭 코딩 유닛 전체를 왼쪽으로 n개 픽셀만큼 오프셋하여 얻은 시간적 참조 블록인바, 즉 Px가 Mx-n과 같고, Py가 My와 같다.
예시적으로, n은 8일 수 있다.
제5 부분. 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛 내 각 서브 블록의 모션 정보를 획득한다
예시적으로, 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 타깃 매칭 코딩 유닛의 모션 정보를 결정할 수 있고, 타깃 매칭 코딩 유닛의 모션 정보는 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보를 포함하고; 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛에 대응하는 위치의 서브 블록의 모션 정보를 결정할 수 있다.
예시적으로, 현재 코딩 유닛의 제1 주변 블록은 도 5에 도시된 바와 같을 수 있다. 도 5에 도시된 바와 같이, E가 현재 코딩 유닛이고, 현재 코딩 유닛의 제1 주변 블록은 A. B. C. D. F 및 G 중 임의의 블록을 포함할 수 있다.
예시적으로, 하나의 코딩 유닛은 적어도 하나의 서브 블록을 포함하고, 각 서브 블록의 너비가 현재 코딩 유닛의 너비를 초과하지 않고, 각 서브 블록의 높이가 현재 코딩 유닛의 높이를 초과하지 않는 바, 예를 들면 각 서브 블록이 8*8 블록이다.
하나의 예시에서, 현재 코딩 유닛의 제1 주변 블록이 도 5 중의 F이다.
예시적으로, 타깃 매칭 코딩 유닛 중의 임의의 서브 블록(8*8 서브 블록을 예로 듬)에 대해, 각 8*8 서브 블록의 좌상단 좌표가 (Px+(i<<3), Py+(j<<3))이고, i가 서브 블록 수평 인덱스 값이며, j가 서브 블록 수직 인덱스 값이고, i=0 내지 (cu_width >> 3)-1이며, j=0 내지 (cu_height >> 3)-1이다.
예시적으로, 현재 코딩 유닛 내의 임의의 서브 블록(8*8 서브 블록을 예로 듬)에 대해, 각 8*8 서브 블록의 모션 정보를 MotionArray[i][j]로 표시하고, i가 서브 블록 수평 인덱스 값이며, j가 서브 블록 수직 인덱스 값, i=0 내지 (cu_width >> 3)-1이고, j=0 내지 (cu_height >> 3)-1이다.
실시예 31
타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해:
31.1, 만약 당해 서브 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
31.2, 만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하지만, 백워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
31.3, 만약 당해 서브 블록의 백워드 모션 정보가 사용 가능하지만, 포워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
31.4, 만약 서브 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가능하면, 디폴드 모션 정보를 필링(filling)한다.
예시적으로, 본 출원의 실시예는 디폴트 모션 정보에 대해 제한하지 않을 수 있는바, 예를 들면, 디폴드 모션 정보가 제로 모션 정보 또는 현재 코딩 유닛의 주변 블록에 의해 유도된 모션 정보일 수 있다.
실시예 32
타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해:
32.1, 만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하고;
32.2, 만약 당해 서브 블록의 포워드 모션 정보가 사용 불가능하면, 디폴트 모션 정보를 필링한다.
예시적으로, 본 출원의 실시예는 디폴트 모션 정보에 대해 제한하지 않을 수 있는바, 예를 들면, 디폴트 모션 정보가 제로 모션 정보 또는 현재 코딩 유닛의 주변 블록에 의해 유도된 모션 정보일 수 있다.
실시예 33
타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해:
33.1, 현재 픽처 타입이 P 픽처인 경우:
33.1.1, 만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하고;
33.1.2, 만약 당해 서브 블록의 포워드 모션 정보가 사용 불가능하면, 디폴트 모션 정보를 필링한다.
예시적으로, 본 출원의 실시예는 디폴트 모션 정보에 대해 제한하지 않을 수 있는바, 예를 들면, 디폴드 모션 정보가 제로 모션 정보 또는 현재 코딩 유닛의 주변 블록에 의해 유도된 모션 정보일 수 있다.
33.2, 현재 픽처 타입이 B 픽처인 경우:
33.2.1, 만약 당해 서브 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
33.2.2, 만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하지만, 백워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
33.2.3, 만약 당해 서브 블록의 백워드 모션 정보가 사용 가능하지만, 포워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
33.2.4, 만약 서브 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가능하면, 디폴드 모션 정보를 필링한다.
예시적으로, 본 출원의 실시예는 디폴트 모션 정보에 대해 제한하지 않을 수 있는바, 예를 들면, 디폴드 모션 정보가 제로 모션 정보 또는 현재 코딩 유닛의 주변 블록에 의해 유도된 모션 정보일 수 있다.
실시예 34
타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해:
34.1, 만약 당해 서브 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
34.2, 만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하지만, 백워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
34.3, 만약 당해 서브 블록의 백워드 모션 정보가 사용 가능하지만, 포워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
34.4, 만약 서브 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가능하면:
34.4.1, 현재 코딩 유닛의 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 가능할 경우, 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
34.4.2, 제1 주변 블록의 포워드 모션 정보가 사용 가능하지만, 백워드 모션 정보가 사용 불가능하면, 제1 주변 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
34.4.3, 제1 주변 블록의 백워드 모션 정보가 사용 가능하지만, 포워드 모션 정보가 사용 불가능할 경우, 제1 주변 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
34.4.4, 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가능할 경우, 제로 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여한다.
실시예 35
타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해:
35.1, 만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
35.2, 만약 당해 서브 블록의 포워드 모션 정보가 사용 불가능하면:
35.2.1, 현재 코딩 유닛의 제1 주변 블록의 포워드 모션 정보가 사용 가능할 경우, 제1 주변 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
35.2.2, 제1 주변 블록의 포워드 모션 정보가 사용 불가능하면, 제로 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여한다.
실시예 36
타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해:
36.1, 현재 픽처 타입이 P 픽처인 경우:
36.1.1, 만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
36.1.2, 만약 당해 서브 블록의 포워드 모션 정보가 사용 불가능하면:
36.1.2.1, 현재 코딩 유닛의 제1 주변 블록의 포워드 모션 정보가 사용 가능할 경우, 제1 주변 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
36.1.2.2, 제1 주변 블록의 포워드 모션 정보가 사용 불가능하면, 제로 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여한다.
36.2, 현재 픽처 타입이 B 픽처인 경우:
36.2.1, 만약 당해 서브 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
36.2.2, 만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하지만, 백워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
36.2.3, 만약 당해 서브 블록의 백워드 모션 정보가 사용 가능하지만, 포워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
36.2.4, 만약 서브 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가능하면:
36.2.4.1, 현재 코딩 유닛의 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 가능할 경우, 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
36.2.4.2, 제1 주변 블록의 포워드 모션 정보가 사용 가능하지만, 백워드 모션 정보가 사용 불가능하면, 제1 주변 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
36.2.4.3, 제1 주변 블록의 백워드 모션 정보가 사용 가능하지만, 포워드 모션 정보가 사용 불가능할 경우, 제1 주변 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며;
36.2.4.4, 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가능할 경우, 제로 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여한다.
제6 부분. 현재 코딩 유닛 내의 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내 대응하는 서브 블록에 대해 모션 보상을 수행한다.
예시적으로, 하나의 코딩 유닛은 적어도 하나의 서브 블록을 포함하고, 각 서브 블록의 너비가 현재 코딩 유닛의 너비를 초과하지 않고, 각 서브 블록의 높이가 현재 코딩 유닛의 높이를 초과하지 않는다.
예를 들면, 각 서브 블록이 8*8 크기의 블록이다.
예시적으로, 현재 코딩 유닛 중 임의의 서브 블록(8*8 서브 블록을 예로 듬)에 대해, 각 8*8 서브 블록의 모션 정보를 MotionArray[i][j]로 표시하고, i는 서브 블록 수평 인덱스 값이며, j는 서브 블록 수직 인덱스 값이고, i=0 내지 (cu_width >> 3)-1, j=0 내지 (cu_height >> 3)-1이다.
실시예 37
현재 코딩 유닛의 임의의 서브 블록에 대해, 현재 서브 블록의 모션 정보에 기반하여 현재 서브 블록에 대해 모션 보상을 수행하여 현재 서브 블록의 예측 샘플 매트릭스를 얻는다. 예시적으로, 현재 코딩 유닛의 예측 샘플은 각 서브 블록의 예측 샘플로 구성된다.
실시예 38
현재 코딩 유닛의 임의의 서브 블록에 대해, 만약 현재 서브 블록이 BIO조건을 충족시키면, 현재 서브 블록의 모션 정보에 기반하여 현재 서브 블록에 대해 모션 보상을 수행하고, 또한 BIO 기술을 이용하여 보상 후의 픽셀값에 광학적 흐름 오프셋값을 추가하여, 현재 서브 블록의 예측 샘플 매트릭스를 얻고; 그렇지 않으면, 현재 서브 블록의 모션 정보에 기반하여 현재 서브 블록에 대해 모션 보상을 수행하여 현재 서브 블록의 예측 샘플 매트릭스를 얻는다.
예시적으로, 현재 코딩 유닛의 예측 샘플은 각 서브 블록의 예측 샘플로 구성된다. 예시적으로, 서브 블록이 양방향 광학적 흐름 조건을 충족시키는 것은:
1), 시퀀스 레벨 하이-레벨 신택스에 따라 양방향 광학적 흐름 기술을 활성화하는 것;
2), 현재 코딩 유닛의 모션 벡터 정밀도가 0과 같은 것;
3), 당해 서브 블록이 양방향 예측을 사용하는 것;
4), 당해 서브 블록의 참조 픽처 리스트 0 중 참조 프레임 인덱스 값이 refIdxL0인 참조 프레임 및 참조 픽처 리스트 1 중 참조 인덱스 값이 refIdxL1인 참조 프레임 디스플레이 순서가 각각 현재 프레임의 양측에 위치하는 것을 포함한다.
실시예 39
현재 코딩 유닛의 임의의 서브 블록에 있어서, 현재 서브 블록의 모션 정보에 대해 디코딩 모션 벡터 조정(DMVR) 기술을 활성화하지 않고, 현재 서브 블록의 모션 정보에 기반하여 현재 서브 블록에 대해 모션 보상을 수행하여 현재 서브 블록의 예측 샘플 매트릭스를 얻는다. 예시적으로, 현재 코딩 유닛의 예측 샘플은 각 서브 블록의 예측 샘플로 구성된다.
실시예 40
현재 코딩 유닛의 임의의 서브 블록에 있어서, 현재 서브 블록의 모션 정보에 대해 디코딩 모션 벡터 조정(DMVR) 기술을 활성화하지 않고, 만약 현재 서브 블록이 BIO조건을 충족시키면, 현재 서브 블록의 모션 정보에 기반하여 현재 서브 블록에 대해 모션 보상을 수행하고, 또한 BIO 기술을 이용하여 보상 후의 픽셀값에 광학적 흐름 오프셋값을 추가하여, 현재 서브 블록의 예측 샘플 매트릭스를 얻고; 그렇지 않으면, 현재 서브 블록의 모션 정보에 기반하여 현재 서브 블록에 대해 모션 보상을 수행하여 현재 서브 블록의 예측 샘플 매트릭스를 얻는다.
예시적으로, 현재 코딩 유닛의 예측 샘플은 각 서브 블록의 예측 샘플로 구성된다.
예시적으로, 서브 블록이 양방향 광학적 흐름 조건을 충족시키는 것은:
1), 시퀀스 레벨 하이-레벨 신택스에 따라 양방향 광학적 흐름 기술을 활성화하는 것;
2), 현재 코딩 유닛의 모션 벡터 정밀도가 0과 같은 것;
3), 당해 서브 블록이 양방향 예측을 사용하는 것;
4), 당해 서브 블록의 참조 픽처 리스트 0 중 참조 프레임 인덱스 값이 refIdxL0인 참조 프레임 및 참조 픽처 리스트 1 중 참조 인덱스 값이 refIdxL1인 참조 프레임 디스플레이 순서가 각각 현재 프레임의 양측에 위치하는 것을 포함한다.
설명해야 할 것은, 상술한 실시예는 단지 본 출원의 실시예의 구현 방식의 구체적인 실시예일뿐, 본 출원의 보호범위에 대한 한정이 아니며, 상술한 실시예에 기초하여, 실시예 사이의 조합, 즉 하나 또는 복수 개의 실시예 사이의 임의의 조합, 또는 실시예에 대해 변형을 수행하여 새로운 실시예를 얻을 수 있으며, 이들은 모두 본 출원의 보호범위에 속한다.
추가로, 상술한 각 실시예 사이는 상호 참조 가능하며, 또한 인코딩 및 디코딩의 구현 과정도 상호 참조 가능하다.
이상은 본 출원에서 제공하는 방법에 대해 설명하였다. 아래 본 출원에서 제공하는 장치에 대해 설명한다:
도 7을 참조하면, 도 7은 본 출원의 실시예에서 제공하는 디코딩 장치의 구조 모식도이다, 당해 장치는: 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 획득하기 위한 획득 유닛(710); 상기 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제1 값일 경우, 상기 현재 코딩 유닛의 좌표 정보에 기반하여 상기 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하기 위한 제1 결정 유닛(720); 상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하기 위한 구축 유닛(730); 상기 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여 상기 증강된 시간적 후보 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드 번호를 획득하고, 또한 상기 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정하기 위한 제2 결정 유닛(740); 상기 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 타깃 매칭 코딩 유닛의 모션 정보를 결정하고, 상기 타깃 매칭 코딩 유닛의 모션 정보는 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보를 포함하며, 또한 상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하기 위한 제3 결정 유닛(750)을 포함할 수 있다.
일부 실시예에서, 상기 획득 유닛(710)이 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값을 획득하는 것은: 상기 현재 코딩 유닛이 제1 해석 조건을 충족시킬 경우, 비트 스트림으로부터 상기 증강된 시간적 모션 벡터 예측 모드 플래그의 값을 해석하는 것; 충족시키지 않을 경우, 상기 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제2 값인 것을 결정하는 것; 상기 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제1 값일 경우, 상기 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드를 활성화하는 것을 나타내고, 상기 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제2 값인 것은 상기 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드를 비활성화하는 것을 나타내는 것을 포함한다.
일부 실시예에서, 상기 현재 코딩 유닛이 제1 해석 조건을 충족시키는 것은: 상기 현재 코딩 유닛의 예측 모드가 스킵 모드 또는 직접 모드인 것; 상기 현재 코딩 유닛의 사이즈가 기설정된 사이즈 제한을 충족시키는 것; 시퀀스 레벨 하이-레벨 신택스에 따라 상기 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 기술을 활성화하는 것; 상기 현재 코딩 유닛이 각도 가중 예측 사용 조건을 충족시키거나 또는 고급 모션 벡터 표현 사용 조건을 충족시키는 것 중 적어도 하나를 포함한다.
일부 실시예에서, 상기 현재 코딩 유닛이 제1 해석 조건을 충족시키는 것은: 상기 현재 코딩 유닛의 예측 모드가 스킵 모드 또는 직접 모드인 것; 상기 현재 코딩 유닛의 사이즈가 현재 코딩 유닛의 너비와 높이 모두가 N0보다 크거나 같은 것을 충족시키는 것; 시퀀스 레벨 하이-레벨 신택스에 따라 상기 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 기술을 활성화하는 것; 상기 현재 코딩 유닛이 각도 가중 예측 사용 조건을 충족시키거나 또는 고급 모션 벡터 표현 사용 조건을 충족시키는 것을 포함한다.
일부 실시예에서, 상기 증강된 시간적 모션 벡터 예측 모드 플래그가 문맥에 기초한 이진법 산술 인코딩을 사용하고, 또한 하나의 문맥 모델을 사용한다.
일부 실시예에서, 상기 획득 유닛(710)이 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 획득하는 것은, 상기 현재 코딩 유닛이 제2 해석 조건을 충족시킬 경우, 비트 스트림으로부터 상기 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 해석하는 것을 포함한다.
일부 실시예에서, 상기 현재 코딩 유닛이 제2 해석 조건을 충족시키는 것은: 상기 현재 코딩 유닛의 예측 모드가 스킵 모드 또는 직접 모드인 것; 상기 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드를 활성화하는 것 중 적어도 하나를 포함한다.
일부 실시예에서, 상기 증강된 시간적 모션 벡터 예측 모드 인덱스 값의 역이진화 방식은 최대치가 4인 절삭형 단항 코드를 사용하여 구현되고, 절삭형 단항 코드는 최대 4개의 빈 스트링을 사용하며, 각 빈은 개별적인 문맥 모델을 사용하고, 총 4개의 문맥 모델을 포함한다.
일부 실시예에서, 상기 제1 결정 유닛(720)이 현재 코딩 유닛의 좌표 정보에 기반하여 상기 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 것은: 현재 픽처 타입에 기반하여 매칭 코딩 유닛이 소재하는 시간적 참조 픽처를 결정하는 것; 상기 현재 코딩 유닛의 좌표 정보에 기반하여 상기 초기 매칭 코딩 유닛의 상기 시간적 참조 픽처에서의 좌표 정보를 결정하는 것; 여기서, 만약 상기 현재 픽처 타입이 P 픽처이면, 상기 시간적 참조 픽처가 참조 픽처 리스트 0 중 참조 프레임 인덱스 값이 0인 참조 픽처인 것; 만약 현재 픽처 타입이 B 픽처이면, 상기 시간적 참조 픽처가 참조 픽처 리스트 1 중 참조 프레임 인덱스 값이 0인 참조 픽처인 것을 포함한다.
일부 실시예에서, 상기 제1 결정 유닛(720)이 상기 현재 코딩 유닛의 좌표 정보에 기반하여 상기 초기 매칭 코딩 유닛의 상기 시간적 참조 픽처에서의 좌표 정보를 결정하는 것은: 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표, 최대 코딩 유닛의 크기, 현재 픽처의 사이즈, 현재 코딩 유닛의 사이즈, 현재 코딩 유닛의 픽처에서의 좌상단 좌표에 기반하여 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 것을 포함한다.
일부 실시예에서, 상기 제1 결정 유닛(720)이 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표, 최대 코딩 유닛의 크기, 현재 픽처의 사이즈, 현재 코딩 유닛의 사이즈, 현재 코딩 유닛의 픽처에서의 좌상단 좌표에 기반하여 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 것은: 현재 최대 코딩 유닛의 픽처에서의 좌상단 횡좌표, 최대 코딩 유닛의 크기, 현재 코딩 유닛의 너비, 현재 픽처의 너비, 현재 코딩 유닛의 픽처에서의 좌상단 횡좌표에 기반하여 상기 초기 매칭 코딩 유닛의 횡좌표를 결정하는 것; 현재 최대 코딩 유닛의 픽처에서의 좌상단 종좌표, 최대 코딩 유닛의 크기, 현재 코딩 유닛의 높이, 현재 픽처의 높이, 현재 코딩 유닛의 픽처에서의 좌상단 종좌표에 기반하여 상기 초기 매칭 코딩 유닛의 종좌표를 결정하는 것을 포함한다.
일부 실시예에서, 상기 구축 유닛(730)이 상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 것은: 상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호를 결정하는 것; 상기 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호에 기반하여 증강된 시간적 후보 리스트를 구축하는 것을 포함한다.
일부 실시예에서, 매칭 코딩 유닛의 좌표 정보는 매칭 코딩 유닛의 시간적 참조 픽처에서의 좌상단 좌표이고; 상기 구축 유닛(730)이 상기 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호에 기반하여 증강된 시간적 후보 리스트를 구축하는 것은: 증강된 시간적 모션 벡터 예측 모드 번호 0을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 것;
만약 My+8이 y_ctb_pos + lcu_size - cu_height 및 vertical_size - cu_height 중의 작은 값보다 작거나 같고, 또한 A1 위치의 모션 정보가 C3 위치의 모션 정보와 상이하거나, 또는 A2 위치의 모션 정보가 C4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 1을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 것;
만약 Mx+8이 x_ctb_pos + lcu_size - cu_width 및 horizontal_size - cu_width 중 작은 값보다 작거나 같고, 또한 A1 위치의 모션 정보가 B2 위치의 모션 정보와 상이하거나, 또는 A3 위치의 모션 정보가 B4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 2을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 것;
만약 My-8이 y_ctb_pos보다 크거나 같고, 또한 A3 위치의 모션 정보가 C1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 C2 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 3을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 것;
만약 Mx-8이 x_ctb_pos보다 크거나 같고, 또한 A2 위치의 모션 정보가 B1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 B3 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 4를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 것을 포함하고;
여기서, (Mx, My)가 상기 초기 매칭 코딩 유닛의 좌표 정보이고, (x_ctb_pos, y_ctb_pos)가 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표이며, lcu_size가 최대 코딩 유닛의 크기이고, cu_width와 cu_height는 각각 현재 코딩 유닛의 너비와 높이이며, horizontal_size와 vertical_size는 각각 현재 픽처의 너비와 높이이고;
A1이 상기 초기 매칭 코딩 유닛의 좌상단 4*4 블록이고, B1이 A1 바로 왼쪽의 4*4 블록이며, C1이 A1 바로 위측의 4*4 블록이고; A2가 상기 초기 매칭 코딩 유닛의 우상단 4*4 블록이고, B2가 A2 바로 오른쪽의 4*4 블록이며, C2가 A2 바로 위측의 4*4 블록이고; A3이 상기 초기 매칭 코딩 유닛의 좌하단 4*4 블록이고, B3이 A3 바로 왼쪽의 4*4 블록이며, C3이 A3 바로 아래측의 4*4 블록이고; A4가 상기 초기 매칭 코딩 유닛의 우하단 4*4 블록이고, B4가 A4 바로 오른쪽의 4*4 블록이며, C4가 A4 바로 아래측의 4*4 블록이다.
일부 실시예에서, 상기 구축 유닛(730)이 상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 것은: 상기 증강된 시간적 후보 리스트 길이가 5보다 작을 경우, 증강된 시간적 후보 리스트 길이가 5와 같을 때까지, 현재 증강된 시간적 후보 리스트 중 마지막 하나의 증강된 시간적 모션 벡터 예측 모드 번호와 동일한 증강된 시간적 모션 벡터 예측 모드 번호를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 조작을 반복하는 것을 더 포함한다.
일부 실시예에서, 상기 제2 결정 유닛(740)이 상기 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여 상기 증강된 시간적 후보 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드 번호를 획득하고, 또한 상기 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정하는 것은:
만약 증강된 시간적 모션 벡터 예측 모드 번호가 0이면, Px가 Mx와 같고, Py가 My와 같은 것;
만약 증강된 시간적 모션 벡터 예측 모드 번호가 1이면, Px가 Mx와 같고, Py가 My+n과 같은 것;
만약 증강된 시간적 모션 벡터 예측 모드 번호가 2이면, Px가 Mx+n과 같고, Py가 My와 같은 것;
만약 증강된 시간적 모션 벡터 예측 모드 번호가 3이면, Px가 Mx와 같고, Py가 My-n과 같은 것;
만약 증강된 시간적 모션 벡터 예측 모드 번호가 4이면, Px가 Mx-n과 같고, Py가 My와 같은 것을 포함하고;
여기서, (Mx, My)가 상기 초기 매칭 코딩 유닛의 좌상단 좌표이고, (Px, Py)가 상기 타깃 매칭 코딩 유닛의 좌상단 좌표이다.
일부 실시예에서, 상기 제3 결정 유닛(750)이 상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 것은: 타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해, 현재 픽처 타입이 P 픽처인 경우, 만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보를 상기 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것을 포함한다.
일부 실시예에서, 상기 제3 결정 유닛(750)이 상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 것은: 타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해, 현재 픽처 타입이 B 픽처인 경우, 만약 당해 서브 블록의 포워드 모션 정보와 백워드 모션 정보가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 상기 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것; 만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하지만, 백워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것; 만약 당해 서브 블록의 백워드 모션 정보가 사용 가능하지만, 포워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것을 포함한다.
일부 실시예에서, 상기 결정 유닛(750)이 상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 것은: 타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해, 현재 픽처 타입이 P 픽처인 경우, 만약 서브 블록의 포워드 모션 정보가 사용 불가능하고, 현재 코딩 유닛의 제1 주변 블록의 포워드 모션 정보가 사용 가능할 경우, 제1 주변 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것; 제1 주변 블록의 포워드 모션 정보가 사용 불가능하면, 제로 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것; 현재 픽처 타입이 B 픽처인 경우, 만약 서브 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가능하고, 현재 코딩 유닛의 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 가능할 경우, 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것; 제1 주변 블록의 포워드 모션 정보가 사용 가능하지만, 백워드 모션 정보가 사용 불가능하면, 제1 주변 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것; 제1 주변 블록의 백워드 모션 정보가 사용 가능하지만, 포워드 모션 정보가 사용 불가능할 경우, 제1 주변 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것; 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가능하면, 제로 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것을 포함한다. 여기서, 상기 제1 주변 블록은 상기 현재 코딩 유닛의 임의의 디코딩된 인접 블록을 포함한다.
일부 실시예에서, 도 8에 도시된 바와 같이, 상기 디코딩 장치는: 상기 현재 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 서브 블록에 대해 모션 보상을 수행하기 위한 모션 보상 유닛(760)을 더 포함한다.
일부 실시예에서, 상기 모션 보상 유닛(760)이 상기 현재 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 서브 블록에 대해 모션 보상을 수행하는 것은: 현재 코딩 유닛의 임의의 서브 블록에 있어서, 당해 서브 블록의 모션 정보에 대해 디코딩 모션 벡터 조정 기술을 수행하지 않는 것; 만약 당해 서브 블록이 양방향 광학적 흐름 조건을 충족시키면, 당해 서브 블록의 모션 정보에 기반하여 당해 서브 블록에 대해 모션 보상을 수행하고, 또한 양방향 광학적 흐름 기술을 이용하여 보상 후의 픽셀값에 광학적 흐름 오프셋값을 추가하여 당해 서브 블록의 예측 샘플 매트릭스를 얻은 것; 충족시키지 않으면, 당해 서브 블록의 모션 정보에 기반하여 당해 서브 블록에 대해 모션 보상을 수행하여 당해 서브 블록의 예측 샘플 매트릭스를 얻는 것을 포함하고; 여기서, 현재 코딩 유닛의 예측 샘플은 각 서브 블록의 예측 샘플로 구성된다.
가능한 실시예에서, 상술한 디코딩 장치는 비디오 디코더를 포함할 수 있다.
도 9를 참조하면, 이는 본 출원의 실시예에서 제공하는 디코딩 기기의 하드웨어 구조 모식도이다. 당해 디코딩 기기는 프로세서(901), 기계 실행 가능 명령이 저장된 기계 판독 가능 저장매체(902)를 포함할 수 있다. 프로세서(901)와 기계 판독 가능 저장매체(902)는 시스템 버스(903)를 통해 통신 가능하다. 또한, 기계 판독 가능 저장매체(902) 내 디코딩 제어 로직에 대응하는 기계 실행 가능 명령을 리드(read)하고 또한 실행하는 것을 통해 프로세서(901)는 위에서 설명한 디코딩 방법을 수행할 수 있다.
본문에 언급된 기계 판독 가능 저장매체(902)는 실행 가능 명령어, 데이터 등과 같은 정보를 포함하거나 저장할 수 있는 임의의 전기적, 자기적, 광학적 또는 다른 물리 저장 장치일 수 있다. 예를 들어, 기계 판독 가능 저장 매체는 RAM(Radom Access Memory, 랜덤 액세스 메모리), 휘발성 메모리, 비휘발성 메모리, 플래시 메모리, 메모리 드라이버(예컨대, 하드디스크 드라이버), 솔리드 스테이트 하드디스크, 임의의 유형의 메모리 디스크(예컨대, CD, dvd 등), 또는 유사한 저장 매체, 또는 이들의 조합일 수 있다.
일부 실시예에서, 기계 판독 가능 저장매체를 더 제공하는 바, 당해 기계 판독 가능 저장매체에는 기계 실행 가능 명령이 저장되어 있고, 상기 기계 실행 가능 명령이 프로세서에 의해 실행될 경우 위에서 설명한 디코딩 방법을 구현한다. 예를 들면, 상기 기계 판독 가능 저장매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학 데이터 자장 기기 등 일 수 있다.
도 10을 참조하면, 도 10은 본 출원의 실시예에서 제공하는 인코딩 장치의 구조 모식도인바, 당해 장치는: 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하기 위한 제1 결정 유닛(1010); 상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하기 위한 구축 유닛(1020); 순서대로 증강된 시간적 후보 리스트 중의 각 증강된 시간적 모션 벡터 예측 모드 번호를 순회하여, 각 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정하기 위한 제2 결정 유닛(1030); 상기 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 타깃 매칭 코딩 유닛의 모션 정보를 결정하고, 상기 타깃 매칭 코딩 유닛의 모션 정보는 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보를 포함하며, 또한 상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하기 위한 제3 결정 유닛(1040); 상기 현재 코딩 유닛 내의 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내의 대응하는 서브 블록에 대해 모션 보상을 수행하기 위한 모션 보상 유닛(1050); 증강된 시간적 모션 벡터 예측 모드에 대응하는 율-왜곡 코스트값을 계산하고, 또한 당해 율-왜곡 코스트값과 기타 예측 모드의 율-왜곡 코스트값을 비교하여, 가장 작은 율-왜곡 코스트값에 대응하는 예측 모드를 선택하며, 또한 대응하는 증강된 시간적 모션 벡터 예측 모드 플래그 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 비트 스트림에 라이트하여 디코딩 기기에 전송하기 위한 인코딩 유닛(1060)을 포함할 수 있다.
일부 실시예에서, 상기 제1 결정 유닛(1010)이 현재 코딩 유닛의 좌표 정보에 기반하여 상기 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 것은: 현재 픽처 타입에 기반하여 매칭 코딩 유닛이 소재하는 시간적 참조 픽처를 결정하는 것; 상기 현재 코딩 유닛의 좌표 정보에 기반하여 상기 초기 매칭 코딩 유닛의 상기 시간적 참조 픽처에서의 좌표 정보를 결정하는 것을 포함하고; 여기서, 만약 상기 현재 픽처 타입이 P 픽처이면, 상기 시간적 참조 픽처가 참조 픽처 리스트 0 중 참조 프레임 인덱스 값이 0인 참조 픽처이고; 만약 현재 픽처 타입이 B 픽처이면, 상기 시간적 참조 픽처가 참조 픽처 리스트 1 중 참조 프레임 인덱스 값이 0인 참조 픽처이다.
일부 실시예에서, 상기 제1 결정 유닛(1010)이 상기 현재 코딩 유닛의 좌표 정보에 기반하여 상기 초기 매칭 코딩 유닛의 상기 시간적 참조 픽처에서의 좌표 정보를 결정하는 것은: 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표, 최대 코딩 유닛의 크기, 현재 픽처의 사이즈, 현재 코딩 유닛의 사이즈, 현재 코딩 유닛의 픽처에서의 좌상단 좌표에 기반하여 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 것을 포함한다.
일부 실시예에서, 상기 제1 결정 유닛(1010)이 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표, 최대 코딩 유닛의 크기, 현재 픽처의 사이즈, 현재 코딩 유닛의 사이즈, 현재 코딩 유닛의 픽처에서의 좌상단 좌표에 기반하여 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 것은: 현재 최대 코딩 유닛의 픽처에서의 좌상단 횡좌표, 최대 코딩 유닛의 크기, 현재 코딩 유닛의 너비, 현재 픽처의 너비, 현재 코딩 유닛의 픽처에서의 좌상단 횡좌표에 기반하여 상기 초기 매칭 코딩 유닛의 횡좌표를 결정하는 것; 현재 최대 코딩 유닛의 픽처에서의 좌상단 종좌표, 최대 코딩 유닛의 크기, 현재 코딩 유닛의 높이, 현재 픽처의 높이, 현재 코딩 유닛의 픽처에서의 좌상단 종좌표에 기반하여 상기 초기 매칭 코딩 유닛의 종좌표를 결정하는 것을 포함한다.
일부 실시예에서, 상기 구축 유닛(1020)이 상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 것은: 상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호를 결정하는 것; 상기 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호에 기반하여 증강된 시간적 후보 리스트를 구축하는 것을 포함한다.
일부 실시예에서, 매칭 코딩 유닛의 좌표 정보는 매칭 코딩 유닛의 시간적 참조 픽처에서의 좌상단 좌표이고; 상기 구축 유닛(1020)이 상기 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호에 기반하여 증강된 시간적 후보 리스트를 구축하는 것은, 증강된 시간적 모션 벡터 예측 모드 번호 0을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 것;
만약 My+8이 y_ctb_pos + lcu_size - cu_height 및 vertical_size - cu_height 중의 작은 값보다 작거나 같고, 또한 A1 위치의 모션 정보가 C3 위치의 모션 정보와 상이하거나, 또는 A2 위치의 모션 정보가 C4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 1을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 것;
만약 Mx+8이 x_ctb_pos + lcu_size - cu_width 및 horizontal_size - cu_width 중 작은 값보다 작거나 같고, 또한 A1 위치의 모션 정보가 B2 위치의 모션 정보와 상이하거나, 또는 A3 위치의 모션 정보가 B4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 2을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 것;
만약 My-8이 y_ctb_pos보다 크거나 같고, 또한 A3 위치의 모션 정보가 C1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 C2 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 3을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 것;
만약 Mx-8이 x_ctb_pos보다 크거나 같고, 또한 A2 위치의 모션 정보가 B1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 B3 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 4를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 것을 포함하고;
여기서, (Mx, My)가 상기 초기 매칭 코딩 유닛의 좌표 정보이고, (x_ctb_pos, y_ctb_pos)가 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표이며, lcu_size가 최대 코딩 유닛의 크기이고, cu_width와 cu_height는 각각 현재 코딩 유닛의 너비와 높이이며, horizontal_size와 vertical_size는 각각 현재 픽처의 너비와 높이이고;
A1이 상기 초기 매칭 코딩 유닛의 좌상단 4*4 블록이고, B1이 A1 바로 왼쪽의 4*4 블록이며, C1이 A1 바로 위측의 4*4 블록이고; A2가 상기 초기 매칭 코딩 유닛의 우상단 4*4 블록이고, B2가 A2 바로 오른쪽의 4*4 블록이며, C2가 A2 바로 위측의 4*4 블록이고; A3이 상기 초기 매칭 코딩 유닛의 좌하단 4*4 블록이고, B3이 A3 바로 왼쪽의 4*4 블록이며, C3이 A3 바로 아래측의 4*4 블록이고; A4가 상기 초기 매칭 코딩 유닛의 우하단 4*4 블록이고, B4가 A4 바로 오른쪽의 4*4 블록이며, C4가 A4 바로 아래측의 4*4 블록이다.
일부 실시예에서, 상기 구축 유닛(1020)이 상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 것은: 상기 증강된 시간적 후보 리스트 길이가 5보다 작을 경우, 증강된 시간적 후보 리스트 길이가 5와 같을 때까지, 현재 증강된 시간적 후보 리스트 중 마지막 하나의 증강된 시간적 모션 벡터 예측 모드 번호와 동일한 증강된 시간적 모션 벡터 예측 모드 번호를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 조작을 반복하는 것을 더 포함한다.
일부 실시예에서, 상기 제2 결정 유닛(1030)이 순서대로 증강된 시간적 후보 리스트 중의 각 증강된 시간적 모션 벡터 예측 모드 번호를 순회하여, 각 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정하는 것은: 현재 순회된 증강된 시간적 모션 벡터 예측 모드 번호에 대해,
만약 당해 증강된 시간적 모션 벡터 예측 모드 번호가 0이면, Px가 Mx와 같고, Py가 My와 같은 것;
만약 당해 증강된 시간적 모션 벡터 예측 모드 번호가 1이면, Px가 Mx와 같고, Py가 My+n과 같은 것;
만약 당해 증강된 시간적 모션 벡터 예측 모드 번호가 2이면, Px가 Mx+n과 같고, Py가 My와 같은 것;
만약 당해 증강된 시간적 모션 벡터 예측 모드 번호가 3이면, Px가 Mx와 같고, Py가 My-n과 같은 것;
만약 당해 증강된 시간적 모션 벡터 예측 모드 번호가 4이면, Px가 Mx-n과 같고, Py가 My와 같은 것을 포함하고;
여기서, (Mx, My)가 상기 초기 매칭 코딩 유닛의 좌상단 좌표이고, (Px, Py)가 상기 타깃 매칭 코딩 유닛의 좌상단 좌표이다.
일부 실시예에서, 상기 제3 결정 유닛(1040)이 상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 것은: 타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해: 현재 픽처 타입이 P 픽처인 경우: 만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보를 상기 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것은 포함한다.
일부 실시예에서, 상기 제3 결정 유닛(1040)이 상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 것은: 타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해, 현재 픽처 타입이 B 픽처인 경우, 만약 당해 서브 블록의 포워드 모션 정보와 백워드 모션 정보가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 상기 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것; 만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하지만, 백워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것; 만약 당해 서브 블록의 백워드 모션 정보가 사용 가능하지만, 포워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것을 포함한다.
일부 실시예에서, 상기 제3 결정 유닛(1040)이 상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 것은: 타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해, 현재 픽처 타입이 P 픽처인 경우, 만약 서브 블록의 포워드 모션 정보가 사용 불가능하고, 현재 코딩 유닛의 제1 주변 블록의 포워드 모션 정보가 사용 가능할 경우, 제1 주변 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것; 제1 주변 블록의 포워드 모션 정보가 사용 불가능하면, 제로 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것; 현재 픽처 타입이 B 픽처인 경우: 만약 서브 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가능하고, 현재 코딩 유닛의 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 가능할 경우, 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것; 제1 주변 블록의 포워드 모션 정보가 사용 가능하지만, 백워드 모션 정보가 사용 불가능하면, 제1 주변 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것; 제1 주변 블록의 백워드 모션 정보가 사용 가능하지만, 포워드 모션 정보가 사용 불가능할 경우, 제1 주변 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 또한 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것; 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가능하면, 제로 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 것을 포함하고; 여기서, 상기 제1 주변 블록은 상기 현재 코딩 유닛의 임의의 디코딩된 인접 블록을 포함한다.
일부 실시예에서, 상기 모션 보상 유닛(1050)이 상기 현재 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 서브 블록에 대해 모션 보상을 수행하는 것은: 현재 코딩 유닛의 임의의 서브 블록에 있어서, 당해 서브 블록의 모션 정보에 대해 디코딩 모션 벡터 조정 기술을 수행하지 않는 것; 만약 당해 서브 블록이 양방향 광학적 흐름 조건을 충족시키면, 당해 서브 블록의 모션 정보에 기반하여 당해 서브 블록에 대해 모션 보상을 수행하고, 또한 양방향 광학적 흐름 기술을 이용하여 보상 후의 픽셀값에 광학적 흐름 오프셋값을 추가하여 당해 서브 블록의 예측 샘플 매트릭스를 얻은 것; 충족시키지 않으면, 당해 서브 블록의 모션 정보에 기반하여 당해 서브 블록에 대해 모션 보상을 수행하여 당해 서브 블록의 예측 샘플 매트릭스를 얻는 것을 포함하고; 여기서, 현재 코딩 유닛의 예측 샘플은 각 서브 블록의 예측 샘플로 구성된다.
가능한 실시예에서, 상술한 디코딩 장치는 비디오 인코더를 포함할 수 있다.
도 11을 참조하면, 이는 본 출원의 실시예에서 제공하는 인코딩 기기의 하드웨어 구조 모식도이다. 당해 인코딩 기기는 프로세서(1101), 기계 실행 가능 명령이 저장된 기계 판독 가능 저장매체(1102)를 포함할 수 있다. 프로세서(1101)와 기계 판독 가능 저장매체(1102)는 시스템 버스(1103)를 통해 통신 가능하다. 또한, 기계 판독 가능 저장매체(1102) 중 인코딩 제어 로직에 대응하는 기계 실행 가능 명령을 리드하고 또한 수행하는 것을 통해, 프로세서(1101)는 위에서 설명한 인코딩 방법을 수행할 수 있다.
본문에 언급된 기계 판독 가능 저장매체(1102)는 실행 가능 명령어, 데이터 등과 같은 정보를 포함하거나 저장할 수 있는 임의의 전기적, 자기적, 광학적 또는 다른 물리 저장 장치일 수 있다. 예를 들어, 기계 판독 가능 저장 매체는 RAM(Radom Access Memory, 랜덤 액세스 메모리), 휘발성 메모리, 비휘발성 메모리, 플래시 메모리, 메모리 드라이버(예컨대, 하드디스크 드라이버), 솔리드 스테이트 하드디스크, 임의의 유형의 메모리 디스크(예컨대, CD, dvd 등), 또는 유사한 저장 매체, 또는 이들의 조합일 수 있다.
일부 실시예에서, 기계 판독 가능 저장매체를 더 제공하는 바, 당해 기계 판독 가능 저장매체에는 기계 실행 가능 명령이 저장되어 있고, 상기 기계 실행 가능 명령이 프로세서에 의해 실행될 경우 위에서 설명한 인코딩 방법을 구현한다. 예를 들면, 상기 기계 판독 가능 저장매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학 데이터 자장 기기 등 일 수 있다.
일부 실시예에서, 카메라 기기를 더 제공하는 바, 상술한 임의의 실시예 중의 디코딩 장치 및 상술한 임의의 실시예 중의 디코딩 장치를 포함한다.
설명해야 할 점은, 본 명세서에서 "제1" 및 "제2"와 같은 관계 용어는 하나의 엔티티 또는 조작을 다른 엔티티 또는 조작과 구별하기 위해 사용된 것으로, 반드시 이러한 엔티티 또는 조작 간의 실제 관계 또는 순서를 반드시 요구하거나 암시하지 않는다. 용어 "포함”, "포괄” 또는 이들의 다른 변형체는 일련의 요소를 포함하는 프로세스, 방법, 물품 또는 기기가 해당 요소를 포함할 뿐만 아니라 명시적으로 나열되지 않은 다른 요소도 포함하거나 그러한 프로세스, 방법, 물품 또는 기기에 고유한 요소를 포함할 수도 있도록 의도된다. 추가 제한 없이, 문구 "...를 포함하는"에 의해 한정된 요소는 상기 요소를 포함하는 프로세스, 방법, 물품 또는 기기 중 추가로 존재하는 동일한 요소의 존재를 배제하지 않는다.
상기의 설명은 본 개시내용의 바람직한 예들일 뿐이고, 본 개시내용을 제한하려는 의도가 아니며, 본 개시내용의 사상 및 원리들 내에서 이루어진 임의의 수정, 균등물들, 개선들 등은 본 개시내용의 범위에 포함되어야 한다.

Claims (51)

  1. 디코딩 방법으로서,
    현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 획득하는 단계;
    상기 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제1 값일 경우:
    상기 현재 코딩 유닛의 좌표 정보에 기반하여 상기 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계;
    상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계;
    상기 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여 상기 증강된 시간적 후보 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드 번호를 획득하고, 상기 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정하는 단계;
    상기 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 타깃 매칭 코딩 유닛의 모션 정보를 결정하고, 상기 타깃 매칭 코딩 유닛의 모션 정보는 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보를 포함하며, 상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  2. 제1항에 있어서,
    상기 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값을 획득하는 단계는:
    상기 현재 코딩 유닛이 제1 해석 조건을 충족시킬 경우, 비트 스트림으로부터 상기 증강된 시간적 모션 벡터 예측 모드 플래그의 값을 해석하는 단계;
    충족시키지 않을 경우, 상기 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제2 값인 것을 결정하는 단계;
    상기 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제1 값일 경우, 상기 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드를 활성화(enable)하는 것을 나타내고,
    상기 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제2 값일 경우, 상기 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드를 비활성화(disable)하는 것을 나타내는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  3. 제2항에 있어서,
    상기 현재 코딩 유닛이 제1 해석 조건을 충족시키는 것은,
    상기 현재 코딩 유닛의 예측 모드가 스킵 모드 또는 직접 모드인 것;
    상기 현재 코딩 유닛의 사이즈가 기설정된 사이즈 제한을 충족시키는 것;
    시퀀스 레벨 하이-레벨 신택스에 따라 상기 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 기술을 활성화하는 것;
    상기 현재 코딩 유닛이 각도 가중 예측 사용 조건을 충족시키거나 또는 고급 모션 벡터 표현 사용 조건을 충족시키는 것 중 적어도 하나를 포함하는 것을 특징으로 하는 디코딩 방법.
  4. 제3항에 있어서,
    상기 기설정된 사이즈 제한은, 현재 코딩 유닛의 너비와 높이 모두가 N0보다 크거나 같은 것을 포함하는 것을 특징으로 하는 디코딩 방법.
  5. 제4항에 있어서,
    N0이 8인 것을 특징으로 하는 디코딩 방법.
  6. 제3항에 있어서,
    상기 현재 코딩 유닛이 각도 가중 예측 사용 조건을 충족시키는 것은,
    시퀀스 레벨 하이-레벨 신택스에 따라 현재 코딩 유닛이 각도 가중 예측 기술을 활성화하는 것;
    현재 코딩 유닛의 너비와 높이 모두가 N1보다 크거나 같고, 현재 코딩 유닛의 너비와 높이 모두가 N2보다 작거나 같은 것;
    현재 픽처 타입이 B 픽처인 것을 포함하고;
    상기 현재 코딩 유닛이 고급 모션 벡터 표현 사용 조건을 충족시키는 것은,
    시퀀스 레벨 하이-레벨 신택스에 따라 상기 현재 코딩 유닛이 하이-레벨 모션 벡터 표현 기술을 활성화하는 것을 포함하는 것을 특징으로 하는 디코딩 방법.
  7. 제2항 내지 제6항 중 어느 한 항에 있어서,
    상기 증강된 시간적 모션 벡터 예측 모드 플래그가 문맥에 기초한 이진법 산술 인코딩(Context-based Adaptive Binary Arithmetic Coding)을 사용하고, 하나의 문맥 모델을 사용하는 것을 특징으로 하는 디코딩 방법.
  8. 제1항에 있어서,
    상기 현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 획득하는 단계는,
    상기 현재 코딩 유닛이 제2 해석 조건을 충족시킬 경우, 비트 스트림으로부터 상기 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 해석하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  9. 제8항에 있어서,
    상기 현재 코딩 유닛이 제2 해석 조건을 충족시키는 것은,
    상기 현재 코딩 유닛의 예측 모드가 스킵 모드 또는 직접 모드인 것;
    상기 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드를 활성화하는 것 중 적어도 하나를 포함하는 것을 특징으로 하는 디코딩 방법.
  10. 제8항 또는 제9항에 있어서,
    상기 증강된 시간적 모션 벡터 예측 모드 인덱스 값의 역이진화 방식은 최대치가 4인 절삭형 단항 코드를 사용하여 구현되고, 절삭형 단항 코드는 최대 4개의 빈 스트링을 사용하며, 각 빈은 개별적인 문맥 모델을 사용하고, 총 4개의 문맥 모델을 포함하는 을 특징으로 하는 디코딩 방법.
  11. 제1항에 있어서,
    상기 현재 코딩 유닛의 좌표 정보에 기반하여 상기 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계는,
    현재 픽처 타입에 기반하여 매칭 코딩 유닛이 소재하는 시간적 참조 픽처를 결정하는 단계;
    상기 현재 코딩 유닛의 좌표 정보에 기반하여 상기 초기 매칭 코딩 유닛의 상기 시간적 참조 픽처에서의 좌표 정보를 결정하는 단계를 포함하고;
    만약 상기 현재 픽처 타입이 P 픽처이면, 상기 시간적 참조 픽처가 참조 픽처 리스트 0 중 참조 프레임 인덱스 값이 0인 참조 픽처이고;
    만약 현재 픽처 타입이 B 픽처이면, 상기 시간적 참조 픽처가 참조 픽처 리스트 1 중 참조 프레임 인덱스 값이 0인 참조 픽처이며;
    상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계는,
    상기 초기 매칭 코딩 유닛의 상기 시간적 참조 픽처에서의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  12. 제11항에 있어서,
    상기 현재 코딩 유닛의 좌표 정보에 기반하여 상기 초기 매칭 코딩 유닛의 상기 시간적 참조 픽처에서의 좌표 정보를 결정하는 단계는,
    현재 최대 코딩 유닛의 픽처에서의 좌상단(upper left corner) 좌표, 최대 코딩 유닛의 크기, 현재 픽처의 사이즈, 현재 코딩 유닛의 사이즈, 현재 코딩 유닛의 픽처에서의 좌상단 좌표에 기반하여 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  13. 제12항에 있어서,
    상기 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표, 최대 코딩 유닛의 크기, 현재 픽처의 사이즈, 현재 코딩 유닛의 사이즈, 현재 코딩 유닛의 픽처에서의 좌상단 좌표에 기반하여 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계는,
    현재 최대 코딩 유닛의 픽처에서의 좌상단 횡좌표, 최대 코딩 유닛의 크기, 현재 코딩 유닛의 너비, 현재 픽처의 너비, 현재 코딩 유닛의 픽처에서의 좌상단 횡좌표에 기반하여 상기 초기 매칭 코딩 유닛의 횡좌표를 결정하는 단계;
    현재 최대 코딩 유닛의 픽처에서의 좌상단 종좌표, 최대 코딩 유닛의 크기, 현재 코딩 유닛의 높이, 현재 픽처의 높이, 현재 코딩 유닛의 픽처에서의 좌상단 종좌표에 기반하여 상기 초기 매칭 코딩 유닛의 종좌표를 결정하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  14. 제1항에 있어서,
    상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계는,
    상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호를 결정하는 단계;
    상기 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  15. 제14항에 있어서,
    매칭 코딩 유닛의 좌표 정보는 매칭 코딩 유닛의 시간적 참조 픽처에서의 좌상단 좌표이고;
    상기 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계는,
    증강된 시간적 모션 벡터 예측 모드 번호 0을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 단계;
    만약 My+8이 y_ctb_pos+lcu_size-cu_height 및 vertical_size-cu_height 중 작은 값보다 작거나 같고, A1 위치의 모션 정보가 C3 위치의 모션 정보와 상이하거나, 또는 A2 위치의 모션 정보가 C4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 1을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 단계;
    만약 Mx+8이 x_ctb_pos+lcu_size-cu_width 및 horizontal_size-cu_width 중 작은 값보다 작거나 같고, A1 위치의 모션 정보가 B2 위치의 모션 정보와 상이하거나, 또는 A3 위치의 모션 정보가 B4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 2을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 단계;
    만약 My-8이 y_ctb_pos보다 크거나 같고, A3 위치의 모션 정보가 C1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 C2 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 3을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 단계;
    만약 Mx-8이 x_ctb_pos보다 크거나 같고, A2 위치의 모션 정보가 B1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 B3 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 4를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 단계를 포함하며;
    (Mx, My)가 상기 초기 매칭 코딩 유닛의 좌표 정보이고, (x_ctb_pos, y_ctb_pos)가 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표이며, lcu_size가 최대 코딩 유닛의 크기이고, cu_width와 cu_height는 각각 현재 코딩 유닛의 너비와 높이이며, horizontal_size와 vertical_size는 각각 현재 픽처의 너비와 높이이고;
    A1이 상기 초기 매칭 코딩 유닛의 좌상단 4*4 블록이고, B1이 A1 바로 왼쪽의 4*4 블록이며, C1이 A1 바로 위측의 4*4 블록이고; A2가 상기 초기 매칭 코딩 유닛의 우상단(upper right corner) 4*4 블록이고, B2가 A2 바로 오른쪽의 4*4 블록이며, C2가 A2 바로 위측의 4*4 블록이고; A3이 상기 초기 매칭 코딩 유닛의 좌하단(lower left corner) 4*4 블록이고, B3이 A3 바로 왼쪽의 4*4 블록이며, C3이 A3 바로 아래측의 4*4 블록이고; A4가 상기 초기 매칭 코딩 유닛의 우하단(lower right corner) 4*4 블록이고, B4가 A4 바로 오른쪽의 4*4 블록이며, C4가 A4 바로 아래측의 4*4 블록인 것을 특징으로 하는 디코딩 방법.
  16. 제15항에 있어서,
    상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계는,
    상기 증강된 시간적 후보 리스트 길이가 5보다 작을 경우, 증강된 시간적 후보 리스트 길이가 5와 같을 때까지,
    현재 증강된 시간적 후보 리스트 중 마지막 하나의 증강된 시간적 모션 벡터 예측 모드 번호와 동일한 증강된 시간적 모션 벡터 예측 모드 번호를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 조작을 반복하는 단계를 더 포함하는 것을 특징으로 하는 디코딩 방법.
  17. 제1항에 있어서,
    상기 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여 상기 증강된 시간적 후보 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드 번호를 획득하고, 상기 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정하는 단계는,
    만약 증강된 시간적 모션 벡터 예측 모드 번호가 0이면, Px가 Mx와 같고, Py가 My와 같은 단계;
    만약 증강된 시간적 모션 벡터 예측 모드 번호가 1이면, Px가 Mx와 같고, Py가 My+n과 같은 단계;
    만약 증강된 시간적 모션 벡터 예측 모드 번호가 2이면, Px가 Mx+n과 같고, Py가 My와 같은 단계;
    만약 증강된 시간적 모션 벡터 예측 모드 번호가 3이면, Px가 Mx와 같고, Py가 My-n과 같은 단계;
    만약 증강된 시간적 모션 벡터 예측 모드 번호가 4이면, Px가 Mx-n과 같고, Py가 My와 같은 단계를 포함하고;
    (Mx, My)가 상기 초기 매칭 코딩 유닛의 좌상단 좌표이고, (Px, Py)가 상기 타깃 매칭 코딩 유닛의 좌상단 좌표인 것을 특징으로 하는 디코딩 방법.
  18. 제17항에 있어서,
    n이 8인 것을 특징으로 하는 디코딩 방법.
  19. 제1항에 있어서,
    상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 단계는,
    타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해:
    현재 픽처 타입이 P 픽처인 경우:
    만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보를 상기 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  20. 제1항에 있어서,
    상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 단계는,
    타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해:
    현재 픽처 타입이 B 픽처인 경우:
    만약 당해 서브 블록의 포워드 모션 정보와 백워드 모션 정보가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 상기 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계;
    만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하지만, 백워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계;
    만약 당해 서브 블록의 백워드 모션 정보가 사용 가능하지만, 포워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  21. 제1항에 있어서,
    상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 단계는,
    타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해:
    현재 픽처 타입이 P 픽처인 경우:
    만약 서브 블록의 포워드 모션 정보가 사용 불가능하고, 현재 코딩 유닛의 제1 주변 블록의 포워드 모션 정보가 사용 가능할 경우, 제1 주변 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하고; 제1 주변 블록의 포워드 모션 정보가 사용 불가능하면, 제로(zero) 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계;
    현재 픽처 타입이 B 픽처인 경우:
    만약 서브 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가능하고, 현재 코딩 유닛의 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 가능할 경우, 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며; 제1 주변 블록의 포워드 모션 정보가 사용 가능하지만, 백워드 모션 정보가 사용 불가능하면, 제1 주변 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하고; 제1 주변 블록의 백워드 모션 정보가 사용 가능하지만, 포워드 모션 정보가 사용 불가능할 경우, 제1 주변 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계를 포함하고; 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가능하면, 제로 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계를 포함하고,
    상기 제1 주변 블록은 상기 현재 코딩 유닛의 임의의 디코딩된 인접 블록을 포함하는 것을 특징으로 하는 디코딩 방법.
  22. 제1항 내지 제21항 중 어느 한 항에 있어서,
    상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정한 후,
    상기 현재 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 서브 블록에 대해 모션 보상을 수행하는 단계를 더 포함하는 것을 특징으로 하는 디코딩 방법.
  23. 제22항에 있어서,
    상기 현재 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 서브 블록에 대해 모션 보상을 수행하는 단계는,
    현재 코딩 유닛의 임의의 서브 블록에 있어서, 당해 서브 블록의 모션 정보에 대해 디코딩 모션 벡터 조정 기술을 수행하지 않는 단계;
    만약 당해 서브 블록이 양방향 광학적 흐름 조건을 충족시키면, 당해 서브 블록의 모션 정보에 기반하여 당해 서브 블록에 대해 모션 보상을 수행하고, 양방향 광학적 흐름 기술을 이용하여 보상 후의 픽셀값에 광학적 흐름 오프셋값을 추가하여 당해 서브 블록의 예측 샘플 매트릭스를 얻은 단계;
    충족시키지 않으면, 당해 서브 블록의 모션 정보에 기반하여 당해 서브 블록에 대해 모션 보상을 수행하여 당해 서브 블록의 예측 샘플 매트릭스를 얻는 단계를 포함하고;
    현재 코딩 유닛의 예측 샘플은 각 서브 블록의 예측 샘플로 구성되는 것을 특징으로 하는 디코딩 방법.
  24. 제23항에 있어서,
    상기 당해 서브 블록이 양방향 광학적 흐름 조건을 충족시키는 것은, 적어도:
    시퀀스 레벨 하이-레벨 신택스에 따라 양방향 광학적 흐름 기술을 활성화하는 것;
    현재 코딩 유닛의 모션 벡터 정밀도가 0과 같은 것;
    당해 서브 블록이 양방향 예측을 사용하는 것;
    당해 서브 블록의 참조 픽처 리스트 0 중 참조 프레임 인덱스 값이 refIdxL0인 참조 프레임 및 참조 픽처 리스트 1 중 참조 인덱스 값이 refIdxL1인 참조 프레임 디스플레이 순서가 각각 현재 프레임의 양측에 위치하는 것을 포함하는 것을 특징으로 하는 디코딩 방법.
  25. 제23항에 있어서,
    상기 양방향 광학적 흐름 기술을 이용하여 보상 후의 픽셀값에 광학적 흐름 오프셋값을 추가하여 당해 서브 블록의 예측 샘플 매트릭스를 얻는 단계는,
    서브 블록의 포워드 모션 보상값, 백워드 모션 보상값 및 광학적 흐름 오프셋값에 기반하여 당해 서브 블록의 예측 샘플 매트릭스를 결정하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  26. 인코딩 방법으로서,
    현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계;
    상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계;
    순서대로 증강된 시간적 후보 리스트 중 각 증강된 시간적 모션 벡터 예측 모드 번호를 순회하여, 각 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정하는 단계;
    상기 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 타깃 매칭 코딩 유닛의 모션 정보를 결정하고, 상기 타깃 매칭 코딩 유닛의 모션 정보는 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보를 포함하며, 상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 단계;
    상기 현재 코딩 유닛 내의 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내의 대응하는 서브 블록에 대해 모션 보상을 수행하는 단계;
    증강된 시간적 모션 벡터 예측 모드에 대응하는 율-왜곡 코스트값을 계산하고, 당해 율-왜곡 코스트값과 기타 예측 모드의 율-왜곡 코스트값을 비교하여, 가장 작은 율-왜곡 코스트값에 대응하는 예측 모드를 선택하며, 대응하는 증강된 시간적 모션 벡터 예측 모드 플래그 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 비트 스트림에 라이트(write)하여 디코딩 기기에 전송하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  27. 제26항에 있어서,
    상기 현재 코딩 유닛 내의 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내의 대응하는 서브 블록에 대해 모션 보상을 수행하는 단계는,
    현재 코딩 유닛의 임의의 서브 블록에 있어서, 당해 서브 블록의 모션 정보에 대해 디코딩 모션 벡터 조정 기술을 수행하지 않는 단계;
    만약 당해 서브 블록이 양방향 광학적 흐름 조건을 충족시키면, 당해 서브 블록의 모션 정보에 기반하여 당해 서브 블록에 대해 모션 보상을 수행하고, 양방향 광학적 흐름 기술을 이용하여 보상 후의 픽셀값에 광학적 흐름 오프셋값을 추가하여 당해 서브 블록의 예측 샘플 매트릭스를 얻은 단계;
    충족시키지 않으면, 당해 서브 블록의 모션 정보에 기반하여 당해 서브 블록에 대해 모션 보상을 수행하여 당해 서브 블록의 예측 샘플 매트릭스를 얻는 단계를 포함하고;
    여기서, 현재 코딩 유닛의 예측 샘플은 각 서브 블록의 예측 샘플로 구성되는 것을 특징으로 하는 인코딩 방법.
  28. 제27항에 있어서,
    상기 당해 서브 블록이 양방향 광학적 흐름 조건을 충족시키는 것은, 적어도:
    시퀀스 레벨 하이-레벨 신택스에 따라 양방향 광학적 흐름 기술을 활성화하는 것;
    현재 코딩 유닛의 모션 벡터 정밀도가 0과 같은 것;
    당해 서브 블록이 양방향 예측을 사용하는 것;
    당해 서브 블록의 참조 픽처 리스트 0 중 참조 프레임 인덱스 값이 refIdxL0인 참조 프레임 및 참조 픽처 리스트 1 중 참조 인덱스 값이 refIdxL1인 참조 프레임 디스플레이 순서가 각각 현재 프레임의 양측에 위치하는 것을 포함하는 것을 특징으로 하는 인코딩 방법.
  29. 제27항에 있어서,
    상기 양방향 광학적 흐름 기술을 이용하여 보상 후의 픽셀값에 광학적 흐름 오프셋값을 추가하여 당해 서브 블록의 예측 샘플 매트릭스를 얻는 단계는,
    서브 블록의 포워드 모션 보상값, 백워드 모션 보상값 및 광학적 흐름 오프셋값에 기반하여 당해 서브 블록의 예측 샘플 매트릭스를 결정하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  30. 제26항에 있어서,
    상기 대응하는 증강된 시간적 모션 벡터 예측 모드 플래그를 비트 스트림에 라이트하는 단계는,
    상기 현재 코딩 유닛이 제1 해석 조건을 충족시킬 경우, 대응하는 증강된 시간적 모션 벡터 예측 모드 플래그를 비트 스트림에 라이트하는 단계;
    충족시키지 않을 경우, 대응하는 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제2 값인 것을 결정하는 단계;
    상기 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제1 값일 경우, 상기 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드를 활성화하는 것을 나타내고, 상기 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제2 값인 것은 상기 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드를 비활성화하는 것을 나타내는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  31. 제30항에 있어서,
    상기 현재 코딩 유닛이 제1 해석 조건을 충족시키는 것은:
    상기 현재 코딩 유닛의 예측 모드가 스킵 모드 또는 직접 모드인 것;
    상기 현재 코딩 유닛의 사이즈가 현재 코딩 유닛의 너비와 높이 모두가 8보다 크거나 같은 것을 충족시키는 것;
    시퀀스 레벨 하이-레벨 신택스에 따라 상기 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 기술을 활성화하는 것;
    상기 현재 코딩 유닛이 각도 가중 예측 사용 조건을 충족시키거나 또는 고급 모션 벡터 표현 사용 조건을 충족시키는 것 중 적어도 하나를 포함하는 것을 특징으로 하는 인코딩 방법.
  32. 제31항에 있어서,
    상기 현재 코딩 유닛이 각도 가중 예측 사용 조건을 충족시키는 것은:
    시퀀스 레벨 하이-레벨 신택스에 따라 현재 코딩 유닛이 각도 가중 예측 기술을 활성화하는 것;
    현재 코딩 유닛의 너비와 높이 모두가 N1보다 크거나 같고, 현재 코딩 유닛의 너비와 높이 모두가 N2보다 작거나 같은 것;
    현재 픽처 타입이 B 픽처인 것을 포함하고;
    상기 현재 코딩 유닛이 고급 모션 벡터 표현 사용 조건을 충족시키는 것은:
    시퀀스 레벨 하이-레벨 신택스에 따라 상기 현재 코딩 유닛이 하이-레벨 모션 벡터 표현 기술을 활성화하는 것을 포함하는 것을 특징으로 하는 인코딩 방법.
  33. 제26항 내지 제32항 중 어느 한 항에 있어서,
    상기 증강된 시간적 모션 벡터 예측 모드 플래그가 문맥에 기초한 이진법 산술 인코딩을 사용하고, 하나의 문맥 모델을 사용하는 것을 특징으로 하는 인코딩 방법.
  34. 제26항에 있어서,
    상기 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 비트 스트림에 라이트하는 단계는,
    상기 현재 코딩 유닛이 제2 해석 조건을 충족시킬 경우, 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 비트 스트림에 라이트하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  35. 제34항에 있어서,
    상기 현재 코딩 유닛이 제2 해석 조건을 충족시키는 것은,
    상기 현재 코딩 유닛의 예측 모드가 스킵 모드 또는 직접 모드인 것;
    상기 현재 코딩 유닛이 증강된 시간적 모션 벡터 예측 모드를 활성화하는 것 중 적어도 하나를 포함하는 것을 특징으로 하는 인코딩 방법.
  36. 제34항 또는 제35항에 있어서,
    상기 증강된 시간적 모션 벡터 예측 모드 인덱스 값의 역이진화 방식은 최대치가 4인 절삭형 단항 코드(Truncated Unary)를 사용하여 구현하고, 최대 4개의 빈 스트링을 활성화하며, 각 빈은 개별적인 문맥 모델을 사용하고, 총 4개의 문맥 모델인 것을 특징으로 하는 인코딩 방법.
  37. 제26항에 있어서,
    상기 현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계는,
    현재 픽처 타입에 기반하여 매칭 코딩 유닛이 소재하는 시간적 참조 픽처를 결정하는 단계;
    상기 현재 코딩 유닛의 좌표 정보에 기반하여 상기 초기 매칭 코딩 유닛의 상기 시간적 참조 픽처에서의 좌표 정보를 결정하는 단계를 포함하고;
    만약 상기 현재 픽처 타입이 P 픽처이면, 상기 시간적 참조 픽처가 참조 픽처 리스트 0 중 참조 프레임 인덱스 값이 0인 참조 픽처이고; 만약 현재 픽처 타입이 B 픽처이면, 상기 시간적 참조 픽처가 참조 픽처 리스트 1 중 참조 프레임 인덱스 값이 0인 참조 픽처이며;
    상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계는,
    상기 초기 매칭 코딩 유닛의 상기 시간적 참조 픽처에서의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  38. 제37항에 있어서,
    상기 현재 코딩 유닛의 좌표 정보에 기반하여 상기 초기 매칭 코딩 유닛의 상기 시간적 참조 픽처에서의 좌표 정보를 결정하는 단계는,
    현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표, 최대 코딩 유닛의 크기, 현재 픽처의 사이즈, 현재 코딩 유닛의 사이즈, 현재 코딩 유닛의 픽처에서의 좌상단 좌표에 기반하여 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  39. 제38항에 있어서,
    상기 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표, 최대 코딩 유닛의 크기, 현재 픽처의 사이즈, 현재 코딩 유닛의 사이즈, 현재 코딩 유닛의 픽처에서의 좌상단 좌표에 기반하여 초기 매칭 코딩 유닛의 좌표 정보를 결정하는 단계는,
    현재 최대 코딩 유닛의 픽처에서의 좌상단 횡좌표, 최대 코딩 유닛의 크기, 현재 코딩 유닛의 너비, 현재 픽처의 너비, 현재 코딩 유닛의 픽처에서의 좌상단 횡좌표에 기반하여 상기 초기 매칭 코딩 유닛의 횡좌표를 결정하는 단계;
    현재 최대 코딩 유닛의 픽처에서의 좌상단 종좌표, 최대 코딩 유닛의 크기, 현재 코딩 유닛의 높이, 현재 픽처의 높이, 현재 코딩 유닛의 픽처에서의 좌상단 종좌표에 기반하여 상기 초기 매칭 코딩 유닛의 종좌표를 결정하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  40. 제26항에 있어서,
    상기 순서대로 증강된 시간적 후보 리스트 중 각 증강된 시간적 모션 벡터 예측 모드 번호를 순회하여, 각 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정하는 단계는,
    만약 증강된 시간적 모션 벡터 예측 모드 번호가 0이면, Px가 Mx와 같고, Py가 My와 같은 단계;
    만약 증강된 시간적 모션 벡터 예측 모드 번호가 1이면, Px가 Mx와 같고, Py가 My+8과 같은 단계;
    만약 증강된 시간적 모션 벡터 예측 모드 번호가 2이면, Px가 Mx+8과 같고, Py가 My와 같은 단계;
    만약 증강된 시간적 모션 벡터 예측 모드 번호가 3이면, Px가 Mx와 같고, Py가 My-8과 같은 단계;
    만약 증강된 시간적 모션 벡터 예측 모드 번호가 4이면, Px가 Mx-8과 같고, Py가 My와 같은 단계를 포함하고;
    (Mx, My)가 상기 초기 매칭 코딩 유닛의 좌상단 좌표이고, (Px, Py)가 상기 타깃 매칭 코딩 유닛의 좌상단 좌표인 것을 특징으로 하는 인코딩 방법.
  41. 제26항에 있어서,
    상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계는,
    상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호를 결정하는 단계;
    상기 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  42. 제41항에 있어서,
    매칭 코딩 유닛의 좌표 정보는 매칭 코딩 유닛의 시간적 참조 픽처에서의 좌상단 좌표이고;
    상기 적어도 하나의 증강된 시간적 모션 벡터 예측 모드 번호에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계는,
    증강된 시간적 모션 벡터 예측 모드 번호 0을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 단계;
    만약 My+8이 y_ctb_pos+lcu_size-cu_height 및 vertical_size-cu_height 중 작은 값보다 작거나 같고, A1 위치의 모션 정보가 C3 위치의 모션 정보와 상이하거나, 또는 A2 위치의 모션 정보가 C4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 1을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 단계;
    만약 Mx+8이 x_ctb_pos+lcu_size-cu_width 및 horizontal_size-cu_width 중 작은 값보다 작거나 같고, A1 위치의 모션 정보가 B2 위치의 모션 정보와 상이하거나, 또는 A3 위치의 모션 정보가 B4 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 2을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 단계;
    만약 My-8이 y_ctb_pos보다 크거나 같고, A3 위치의 모션 정보가 C1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 C2 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 3을 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 단계;
    만약 Mx-8이 x_ctb_pos보다 크거나 같고, A2 위치의 모션 정보가 B1 위치의 모션 정보와 상이하거나, 또는 A4 위치의 모션 정보가 B3 위치의 모션 정보와 상이하면, 증강된 시간적 모션 벡터 예측 모드 번호 4를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 단계를 포함하고;
    (Mx, My)가 상기 초기 매칭 코딩 유닛의 좌표 정보이고, (x_ctb_pos, y_ctb_pos)가 현재 최대 코딩 유닛의 픽처에서의 좌상단 좌표이며, lcu_size가 최대 코딩 유닛의 크기이고, cu_width와 cu_height는 각각 현재 코딩 유닛의 너비와 높이이며, horizontal_size와 vertical_size는 각각 현재 픽처의 너비와 높이이고;
    A1이 상기 초기 매칭 코딩 유닛의 좌상단 4*4 블록이고, B1이 A1 바로 왼쪽의 4*4 블록이며, C1이 A1 바로 위측의 4*4 블록이고; A2가 상기 초기 매칭 코딩 유닛의 우상단 4*4 블록이고, B2가 A2 바로 오른쪽의 4*4 블록이며, C2가 A2 바로 위측의 4*4 블록이고; A3이 상기 초기 매칭 코딩 유닛의 좌하단 4*4 블록이고, B3이 A3 바로 왼쪽의 4*4 블록이며, C3이 A3 바로 아래측의 4*4 블록이고; A4가 상기 초기 매칭 코딩 유닛의 우하단 4*4 블록이고, B4가 A4 바로 오른쪽의 4*4 블록이며, C4가 A4 바로 아래측의 4*4 블록인 것을 특징으로 하는 인코딩 방법.
  43. 제42항에 있어서,
    상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하는 단계는,
    상기 증강된 시간적 후보 리스트 길이가 5보다 작을 경우, 증강된 시간적 후보 리스트 길이가 5와 같을 때까지,
    현재 증강된 시간적 후보 리스트 중 마지막 하나의 증강된 시간적 모션 벡터 예측 모드 번호와 동일한 증강된 시간적 모션 벡터 예측 모드 번호를 증강된 시간적 후보 리스트에 추가하고, 증강된 시간적 후보 리스트 길이에 1을 더하는 조작을 반복하는 단계를 더 포함하는 것을 특징으로 하는 인코딩 방법.
  44. 제26항에 있어서,
    상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 단계는,
    타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해:
    현재 픽처 타입이 P 픽처인 경우,
    만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보를 상기 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  45. 제26항에 있어서,
    상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 단계는,
    타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해:
    현재 픽처 타입이 B 픽처인 경우,
    만약 당해 서브 블록의 포워드 모션 정보와 백워드 모션 정보가 사용 가능하면, 당해 서브 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 상기 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계;
    만약 당해 서브 블록의 포워드 모션 정보가 사용 가능하지만, 백워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계;
    만약 당해 서브 블록의 백워드 모션 정보가 사용 가능하지만, 포워드 모션 정보가 사용 불가능하면, 당해 서브 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  46. 제26항에 있어서,
    상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하는 단계는,
    타깃 매칭 코딩 유닛 중의 임의의 서브 블록에 대해:
    현재 픽처 타입이 P 픽처인 경우,
    만약 서브 블록의 포워드 모션 정보가 사용 불가능하고, 현재 코딩 유닛의 제1 주변 블록의 포워드 모션 정보가 사용 가능할 경우, 제1 주변 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하고; 제1 주변 블록의 포워드 모션 정보가 사용 불가능하면, 제로 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계;
    현재 픽처 타입이 B 픽처인 경우,
    만약 서브 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가능하고, 현재 코딩 유닛의 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 가능할 경우, 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보를 각각 List0을 가리키는 제1 프레임 및 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보 및 백워드 모션 정보를 각각 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하며; 제1 주변 블록의 포워드 모션 정보가 사용 가능하지만, 백워드 모션 정보가 사용 불가능하면, 제1 주변 블록의 포워드 모션 정보를 List0을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 포워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하고; 제1 주변 블록의 백워드 모션 정보가 사용 가능하지만, 포워드 모션 정보가 사용 불가능할 경우, 제1 주변 블록의 백워드 모션 정보를 List1을 가리키는 제1 프레임까지 스케일링하고, 스케일링된 백워드 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계를 포함하고; 제1 주변 블록의 포워드 모션 정보 및 백워드 모션 정보 모두가 사용 불가능하면, 제로 모션 정보를 현재 코딩 유닛에 대응하는 위치의 서브 블록에 부여하는 단계를 포함하고;
    상기 제1 주변 블록은 상기 현재 코딩 유닛의 임의의 디코딩된 인접 블록을 포함하는 것을 특징으로 하는 인코딩 방법.
  47. 디코딩 장치로서,
    현재 코딩 유닛의 증강된 시간적 모션 벡터 예측 모드 플래그의 값 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 획득하기 위한 획득 유닛;
    상기 증강된 시간적 모션 벡터 예측 모드 플래그의 값이 제1 값일 경우, 상기 현재 코딩 유닛의 좌표 정보에 기반하여 상기 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하기 위한 제1 결정 유닛;
    상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하기 위한 구축 유닛;
    상기 증강된 시간적 모션 벡터 예측 모드 인덱스 값에 기반하여 상기 증강된 시간적 후보 리스트로부터 대응하는 증강된 시간적 모션 벡터 예측 모드 번호를 획득하고, 상기 증강된 시간적 모션 벡터 예측 모드 번호에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정하기 위한 제2 결정 유닛;
    상기 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 타깃 매칭 코딩 유닛의 모션 정보를 결정하고, 상기 타깃 매칭 코딩 유닛의 모션 정보는 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보를 포함하며, 상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하기 위한 제3 결정 유닛을 포함하는 것을 특징으로 하는 디코딩 장치.
  48. 인코딩 장치로서,
    현재 코딩 유닛의 좌표 정보에 기반하여 현재 코딩 유닛의 초기 매칭 코딩 유닛의 좌표 정보를 결정하기 위한 제1 결정 유닛;
    상기 초기 매칭 코딩 유닛의 좌표 정보에 기반하여 증강된 시간적 후보 리스트를 구축하기 위한 구축 유닛;
    순서대로 증강된 시간적 후보 리스트 중 각 증강된 시간적 후보 모드를 순회하여, 각 모드에 대응하는 타깃 매칭 코딩 유닛의 좌표 정보를 결정하기 위한 제2 결정 유닛;
    상기 타깃 매칭 코딩 유닛의 좌표 정보에 기반하여 타깃 매칭 코딩 유닛의 모션 정보를 결정하고, 상기 타깃 매칭 코딩 유닛의 모션 정보는 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보를 포함하며, 상기 타깃 매칭 코딩 유닛 내 각 서브 블록의 모션 정보에 기반하여 상기 현재 코딩 유닛 내 대응하는 위치의 서브 블록의 모션 정보를 결정하기 위한 제3 결정 유닛;
    상기 현재 코딩 유닛 내의 각 서브 블록의 모션 정보에 기반하여 현재 코딩 유닛 내의 대응하는 서브 블록에 대해 모션 보상을 수행하기 위한 모션 보상 유닛;
    증강된 시간적 모션 벡터 예측 모드에 대응하는 율-왜곡 코스트값을 계산하고, 당해 율-왜곡 코스트값과 기타 예측 모드의 율-왜곡 코스트값을 비교하여, 가장 작은 율-왜곡 코스트값에 대응하는 예측 모드를 선택하며, 대응하는 증강된 시간적 모션 벡터 예측 모드 플래그 및 증강된 시간적 모션 벡터 예측 모드 인덱스 값을 비트 스트림에 라이트하여 디코딩 기기에 전송하기 위한 인코딩 유닛을 포함하는 것을 특징으로 하는 인코딩 장치.
  49. 디코딩 기기로서,
    프로세서 및 기계 판독 가능 저장매체를 포함하고, 상기 기계 판독 가능 저장매체에는 상기 프로세서에 의해 실행 가능한 기계 실행 가능 명령이 저장되며, 상기 프로세서는 기계 실행 가능 명령을 실행하여 제1항 내지 제25항 중 어느 한 항에 따른 방법을 구현하는 것을 특징으로 하는 디코딩 기기.
  50. 인코딩 기기로서,
    프로세서 및 기계 판독 가능 저장매체를 포함하고, 상기 기계 판독 가능 저장매체에는 상기 프로세서에 의해 실행 가능한 기계 실행 가능 명령이 저장되며, 상기 프로세서는 기계 실행 가능 명령을 실행하여, 제26항 내지 제46항 중 어느 한 항에 따른 방법을 구현하는 것을 특징으로 하는 인코딩 기기.
  51. 기계 판독 가능 저장매체로서,
    상기 기계 판독 가능 저장매체에는 기계 실행 가능 명령이 저장되어 있고, 상기 기계 실행 가능 명령이 프로세서에 의해 실행될 경우 제1항 내지 제25항 또는 제26항 내지 제46항 중 어느 한 항에 따른 방법을 구현하는 것을 특징으로 하는 기계 판독 가능 저장매체.
KR1020237028128A 2021-03-19 2022-03-14 디코딩 방법, 인코딩 방법, 장치, 기기 및 저장매체 KR102696422B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020247027215A KR20240127495A (ko) 2021-03-19 2022-03-14 디코딩 방법, 인코딩 방법, 장치, 기기 및 저장매체

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202110297136.3 2021-03-19
CN202110297136.3A CN114640856B (zh) 2021-03-19 2021-03-19 解码方法、编码方法、装置及设备
PCT/CN2022/080697 WO2022194103A1 (zh) 2021-03-19 2022-03-14 解码方法、编码方法、装置、设备及存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020247027215A Division KR20240127495A (ko) 2021-03-19 2022-03-14 디코딩 방법, 인코딩 방법, 장치, 기기 및 저장매체

Publications (2)

Publication Number Publication Date
KR20230128569A true KR20230128569A (ko) 2023-09-05
KR102696422B1 KR102696422B1 (ko) 2024-08-16

Family

ID=78668980

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020247027215A KR20240127495A (ko) 2021-03-19 2022-03-14 디코딩 방법, 인코딩 방법, 장치, 기기 및 저장매체
KR1020237028128A KR102696422B1 (ko) 2021-03-19 2022-03-14 디코딩 방법, 인코딩 방법, 장치, 기기 및 저장매체

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020247027215A KR20240127495A (ko) 2021-03-19 2022-03-14 디코딩 방법, 인코딩 방법, 장치, 기기 및 저장매체

Country Status (8)

Country Link
US (1) US12063386B2 (ko)
EP (1) EP4280605A4 (ko)
JP (2) JP7494403B2 (ko)
KR (2) KR20240127495A (ko)
CN (5) CN114640856B (ko)
AU (1) AU2022235881B2 (ko)
TW (1) TWI806495B (ko)
WO (1) WO2022194103A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114640856B (zh) * 2021-03-19 2022-12-23 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置及设备
CN115396672B (zh) * 2022-08-25 2024-04-26 广东中星电子有限公司 比特流存储方法、装置、电子设备和计算机可读介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020003259A1 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Improved tmvp derivation

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7924923B2 (en) * 2004-11-30 2011-04-12 Humax Co., Ltd. Motion estimation and compensation method and device adaptive to change in illumination
AU2006201490B2 (en) * 2005-04-19 2008-05-22 Samsung Electronics Co., Ltd. Method and apparatus for adaptively selecting context model for entropy coding
JP2008005112A (ja) * 2006-06-21 2008-01-10 Matsushita Electric Ind Co Ltd ストリームエンコーダ及びストリームデコーダ
US10057594B2 (en) * 2013-04-02 2018-08-21 Vid Scale, Inc. Enhanced temporal motion vector prediction for scalable video coding
US9762927B2 (en) 2013-09-26 2017-09-12 Qualcomm Incorporated Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3D-HEVC
CN108293131B (zh) * 2015-11-20 2021-08-31 联发科技股份有限公司 基于优先级运动矢量预测子推导的方法及装置
CN109996081B (zh) * 2017-12-31 2023-09-12 华为技术有限公司 图像预测方法、装置以及编解码器
US11265551B2 (en) * 2018-01-18 2022-03-01 Qualcomm Incorporated Decoder-side motion vector derivation
US10715812B2 (en) * 2018-07-13 2020-07-14 Tencent America LLC Method and apparatus for video coding
US10511852B1 (en) * 2018-07-13 2019-12-17 Tencent America LLC Method and apparatus for video coding
CN114866777A (zh) * 2018-09-20 2022-08-05 杭州海康威视数字技术股份有限公司 一种解码、编码方法及其设备
CN111385575A (zh) * 2018-12-29 2020-07-07 华为技术有限公司 帧间预测方法、装置以及相应的编码器和解码器
WO2020181504A1 (zh) * 2019-03-12 2020-09-17 深圳市大疆创新科技有限公司 视频编码的方法与装置,以及视频解码的方法与装置
CN111953997B (zh) * 2019-05-15 2024-08-09 华为技术有限公司 候选运动矢量列表获取方法、装置及编解码器
CN114079786A (zh) * 2019-05-17 2022-02-22 华为技术有限公司 一种帧间预测的方法和装置
CN111953995A (zh) * 2019-05-17 2020-11-17 华为技术有限公司 一种帧间预测的方法和装置
CN113747166B (zh) * 2019-08-23 2022-12-23 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
WO2021056205A1 (zh) * 2019-09-24 2021-04-01 北京大学 一种视频处理方法、设备及存储介质
CN112004097B (zh) * 2020-07-30 2021-09-14 浙江大华技术股份有限公司 帧间预测方法、图像处理装置以及计算机可读存储介质
CN112291565B (zh) * 2020-09-10 2021-09-14 浙江大华技术股份有限公司 视频编码方法及其相关装置
CN112218076B (zh) * 2020-10-17 2022-09-06 浙江大华技术股份有限公司 一种视频编码方法、装置、系统及计算机可读存储介质
US11924409B2 (en) * 2021-02-21 2024-03-05 Alibaba (China) Co., Ltd. Systems and methods for inter prediction compensation
US11778217B2 (en) * 2021-02-22 2023-10-03 Tencent America LLC High level syntax control for screen content coding
CN114640856B (zh) * 2021-03-19 2022-12-23 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置及设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020003259A1 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Improved tmvp derivation

Also Published As

Publication number Publication date
EP4280605A4 (en) 2024-08-07
KR20240127495A (ko) 2024-08-22
CN113709502A (zh) 2021-11-26
CN113727118B (zh) 2022-12-23
CN113709502B (zh) 2022-12-23
WO2022194103A1 (zh) 2022-09-22
AU2022235881A1 (en) 2023-09-07
CN113794889A (zh) 2021-12-14
CN113794889B (zh) 2022-12-23
EP4280605A1 (en) 2023-11-22
AU2022235881B2 (en) 2024-05-23
CN113794888B (zh) 2022-12-23
JP2024508193A (ja) 2024-02-22
JP2024098086A (ja) 2024-07-19
TWI806495B (zh) 2023-06-21
CN113794888A (zh) 2021-12-14
JP7494403B2 (ja) 2024-06-03
CN114640856A (zh) 2022-06-17
TW202245472A (zh) 2022-11-16
CN114640856B (zh) 2022-12-23
US20240171770A1 (en) 2024-05-23
US12063386B2 (en) 2024-08-13
KR102696422B1 (ko) 2024-08-16
CN113727118A (zh) 2021-11-30

Similar Documents

Publication Publication Date Title
US11936896B2 (en) Video encoding and decoding
US10812821B2 (en) Video encoding and decoding
KR20230128569A (ko) 디코딩 방법, 인코딩 방법, 장치, 기기 및 저장매체
RU2824460C1 (ru) Способы, оборудование, устройства и носители данных для кодирования или декодирования

Legal Events

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