KR20230006017A - 코딩 및 디코딩 방법, 장치 및 이의 기기 - Google Patents

코딩 및 디코딩 방법, 장치 및 이의 기기 Download PDF

Info

Publication number
KR20230006017A
KR20230006017A KR1020227043009A KR20227043009A KR20230006017A KR 20230006017 A KR20230006017 A KR 20230006017A KR 1020227043009 A KR1020227043009 A KR 1020227043009A KR 20227043009 A KR20227043009 A KR 20227043009A KR 20230006017 A KR20230006017 A KR 20230006017A
Authority
KR
South Korea
Prior art keywords
motion information
current block
weight
value
information
Prior art date
Application number
KR1020227043009A
Other languages
English (en)
Inventor
위청 쑨
샤오챵 차오
팡둥 천
리 왕
Original Assignee
항조우 힉비젼 디지털 테크놀로지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 항조우 힉비젼 디지털 테크놀로지 컴퍼니 리미티드 filed Critical 항조우 힉비젼 디지털 테크놀로지 컴퍼니 리미티드
Publication of KR20230006017A publication Critical patent/KR20230006017A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

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)

Abstract

본 출원은 코딩 및 디코딩 방법, 장치 및 이의 기기를 제공하는 바, 가중치 예측 각도 및 가중치 구성 파라미터를 획득하는 단계; 가중치 구성 파라미터에 근거하여 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성하는 단계; 가중치 예측 각도에 근거하여 현재 블록 외부의 주변 위치에서 픽셀 위치가 지향하는 주변 매칭 위치를 결정하고; 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 픽셀 위치의 타깃 가중치 값을 결정하며, 픽셀 위치의 타깃 가중치 값에 근거하여 픽셀 위치의 관련 가중치 값을 결정하는 단계; 제1 타깃 모션 정보에 근거하여 픽셀 위치의 제1 예측값을 결정하고, 제2 타깃 모션 정보에 근거하여 픽셀 위치의 제2 예측값을 결정하는 단계; 제1 예측값, 타깃 가중치 값, 제2 예측값 및 관련 가중치 값에 근거하여 픽셀 위치의 가중 예측값을 결정하는 단계; 각 픽셀 위치의 가중 예측값에 근거하여 현재 블록의 가중 예측값을 결정하는 단계를 포함한다. 본 출원을 통해 예측 정확성을 향상시킨다.

Description

코딩 및 디코딩 방법, 장치 및 이의 기기
본 출원은 2020년 6월 30일에 제출되고, 출원 번호가 202010622752.7이고 발명의 명칭이 "코딩 및 디코딩 방법, 장치 및 이의 기기”인 중국 특허출원의 우선권을 주장하며, 당해 출원의 모든 내용은 인용을 통해 본 명세서에 결부된다.
본 출원은 코딩 및 디코딩 기술분야에 관한 것으로, 특히 코딩 및 디코딩 방법, 장치 및 이의 기기에 관한 것이다.
공간을 절약하는 목적을 달성하기 위하여 비디오 이미지는 모두 코딩을 거친 후 전송되는 바, 비디오 코딩은 예측, 변환, 양자화, 엔트로피 코딩, 필터링 등 과정을 포함할 수 있다. 예측은 인트라 예측 및 인터 예측을 포함할 수 있다. 인터 예측이란, 비디오 시간적(temporal) 연관성을 이용하여 인접한 코딩된 픽처의 픽셀을 사용하여 현재 픽셀을 예측함으로써 비디오 시간적 리던던시를 효과적으로 제거하는 목적을 달성하는 것을 말한다. 인트라 예측이란, 비디오 공간적(spatial) 연관성을 이용하여 현재 픽처의 코딩된 블록의 픽셀을 사용하여 현재 픽셀을 예측함으로써 비디오 공간적 리던던시를 제거하는 목적을 달성하는 것을 말한다.
관련 기술에서, 현재 블록은 직사각형이고, 실제 물체의 가장자리는 흔히 직사각형이 아니므로 물체 가장자리에 있어서, 흔히 두 개의 상이한 오브젝트(예컨대 전경이 존재하는 물체와 배경)가 존재한다. 이에 기반하여, 두 개의 오브젝트의 모션이 일치하지 않을 경우, 직사각형 분할은 두 개의 오브젝트를 양호하게 분할할 수 없으며, 설령 현재 블록을 두 개의 비 직사각형 서브 블록으로 분할하고, 두 개의 비 직사각형 서브 블록을 통해 현재 블록을 예측하더라도 현재로서는 예측 효과가 양호하지 못하고 코딩 성능이 약한 등 문제점이 존재한다.
이 점을 감안하여, 본 출원은 코딩 및 디코딩 방법, 장치 및 이의 기기를 제공하여 예측 정확성을 향상시킨다.
본 출원은 코딩 및 디코딩 방법을 제공하는 바, 상기 방법은,
현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 상기 현재 블록의 가중치 예측 각도와 가중치 구성 파라미터를 획득하는 단계;
상기 가중치 구성 파라미터에 근거하여 상기 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성하는 단계;
상기 현재 블록의 각 픽셀 위치에 대하여, 상기 가중치 예측 각도에 근거하여 상기 현재 블록 외부의 주변 위치에서 상기 픽셀 위치가 지향하는 주변 매칭 위치를 결정하고; 상기 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 상기 픽셀 위치의 타깃 가중치 값을 결정하며, 상기 픽셀 위치의 타깃 가중치 값에 근거하여 상기 픽셀 위치의 관련 가중치 값을 결정하는 단계;
적어도 하나의 후보 모션 정보를 포함하는 모션 정보 후보 리스트를 획득하고; 상기 모션 정보 후보 리스트에 기반하여 상기 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득하는 단계;
상기 현재 블록의 제1 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제1 예측값을 결정하고, 상기 현재 블록의 제2 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제2 예측값을 결정하며; 상기 제1 예측값, 상기 타깃 가중치 값, 상기 제2 예측값 및 상기 관련 가중치 값에 근거하여 상기 픽셀 위치의 가중 예측값을 결정하는 단계;
상기 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 상기 현재 블록의 가중 예측값을 결정하는 단계를 포함한다.
본 출원은 코딩 및 디코딩 장치를 제공하는 바, 상기 장치는, 현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 상기 현재 블록의 가중치 예측 각도와 가중치 구성 파라미터를 획득하는 획득 모듈; 상기 가중치 구성 파라미터에 근거하여 상기 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성하는 구성 모듈; 상기 현재 블록의 각 픽셀 위치에 대하여, 상기 가중치 예측 각도에 근거하여 상기 현재 블록 외부의 주변 위치에서 상기 픽셀 위치가 지향하는 주변 매칭 위치를 결정하고; 상기 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 상기 픽셀 위치의 타깃 가중치 값을 결정하며, 상기 픽셀 위치의 타깃 가중치 값에 근거하여 상기 픽셀 위치의 관련 가중치 값을 결정하는 결정 모듈을 포함하되; 상기 획득 모듈은 또한, 적어도 하나의 후보 모션 정보를 포함하는 모션 정보 후보 리스트를 획득하고; 상기 모션 정보 후보 리스트에 기반하여 상기 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득하며; 상기 결정 모듈은 또한, 상기 현재 블록의 제1 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제1 예측값을 결정하고, 상기 현재 블록의 제2 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제2 예측값을 결정하며; 상기 제1 예측값, 상기 타깃 가중치 값, 상기 제2 예측값 및 상기 관련 가중치 값에 근거하여 상기 픽셀 위치의 가중 예측값을 결정하고; 상기 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 상기 현재 블록의 가중 예측값을 결정한다.
본 출원은 디코딩단 기기를 제공하는 바, 이는 프로세서 및 상기 프로세서에 의해 실행될 수 있는 기계 실행 가능 명령이 저장되는 기계 판독 가능 저장 매체를 포함하며;
상기 프로세서는 기계 실행 가능 명령을 실행하여,
현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 상기 현재 블록의 가중치 예측 각도와 가중치 구성 파라미터를 획득하는 단계;
상기 가중치 구성 파라미터에 근거하여 상기 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성하는 단계;
상기 현재 블록의 각 픽셀 위치에 대하여, 상기 가중치 예측 각도에 근거하여 상기 현재 블록 외부의 주변 위치에서 상기 픽셀 위치가 지향하는 주변 매칭 위치를 결정하고; 상기 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 상기 픽셀 위치의 타깃 가중치 값을 결정하며, 상기 픽셀 위치의 타깃 가중치 값에 근거하여 상기 픽셀 위치의 관련 가중치 값을 결정하는 단계;
적어도 하나의 후보 모션 정보를 포함하는 모션 정보 후보 리스트를 획득하고; 상기 모션 정보 후보 리스트에 기반하여 상기 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득하는 단계;
상기 현재 블록의 제1 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제1 예측값을 결정하고, 상기 현재 블록의 제2 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제2 예측값을 결정하며; 상기 제1 예측값, 상기 타깃 가중치 값, 상기 제2 예측값 및 상기 관련 가중치 값에 근거하여 상기 픽셀 위치의 가중 예측값을 결정하는 단계;
상기 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 상기 현재 블록의 가중 예측값을 결정하는 단계를 수행한다.
본 출원은 코딩단 기기를 제공하는 바, 이는 프로세서 및 상기 프로세서에 의해 실행될 수 있는 기계 실행 가능 명령이 저장되는 기계 판독 가능 저장 매체를 포함하며;
상기 프로세서는 기계 실행 가능 명령을 실행하여,
현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 상기 현재 블록의 가중치 예측 각도와 가중치 구성 파라미터를 획득하는 단계;
상기 가중치 구성 파라미터에 근거하여 상기 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성하는 단계;
상기 현재 블록의 각 픽셀 위치에 대하여, 상기 가중치 예측 각도에 근거하여 상기 현재 블록 외부의 주변 위치에서 상기 픽셀 위치가 지향하는 주변 매칭 위치를 결정하고; 상기 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 상기 픽셀 위치의 타깃 가중치 값을 결정하며, 상기 픽셀 위치의 타깃 가중치 값에 근거하여 상기 픽셀 위치의 관련 가중치 값을 결정하는 단계;
적어도 하나의 후보 모션 정보를 포함하는 모션 정보 후보 리스트를 획득하고; 상기 모션 정보 후보 리스트에 기반하여 상기 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득하는 단계;
상기 현재 블록의 제1 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제1 예측값을 결정하고, 상기 현재 블록의 제2 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제2 예측값을 결정하며; 상기 제1 예측값, 상기 타깃 가중치 값, 상기 제2 예측값 및 상기 관련 가중치 값에 근거하여 상기 픽셀 위치의 가중 예측값을 결정하는 단계;
상기 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 상기 현재 블록의 가중 예측값을 결정하는 단계를 수행한다.
이상의 기술적 해결수단으로부터 알 수 있다시피, 본 출원의 실시예에서는 가중치 값을 구성하는 효과적인 방식을 제안하여 현재 블록의 각 픽셀 위치에 합리적인 타깃 가중치 값을 구성함으로써 예측 정확성을 향상시키고, 예측 성능을 향상시키며, 코딩 성능을 향상시키고, 현재 블록의 예측값이 원본 픽셀값에 보다 근접하도록 하며, 코딩 성능을 향상시킬 수 있다.
도 1은 비디오 코딩 프레임워크의 모식도이다;
도 2a 내지 도 2e는 가중 예측의 모식도이다;
도 3은 본 출원의 실시형태에 따른 코딩 및 디코딩 방법의 흐름도이다;
도 4a 내지 도 4d는 현재 블록 외부의 주변 위치의 모식도이다;
도 5는 본 출원의 실시형태에 따른 코딩 및 디코딩 방법의 흐름도이다;
도 6은 본 출원의 실시형태에 따른 가중치 예측 각도의 모식도이다;
도 7은 본 출원의 실시형태에 따른 네 가지 가중치 변환율의 참조 가중치 값의 모식도이다;
도 8a 내지 도 8c는 본 출원의 실시형태에 따른 가중치 예측 각도와 각도 파티션의 모식도이다;
도 9a는 본 출원의 실시형태에 따른 현재 블록의 인접 블록의 모식도이다;
도 9b 내지 도 9d는 본 출원의 실시형태에 따른 현재 블록의 타깃 위치의 모식도이다;
도 10a는 본 출원의 실시형태에 따른 코딩 및 디코딩 장치의 구조 모식도이다;
도 10b는 본 출원의 실시형태에 따른 코딩 및 디코딩 장치의 구조 모식도이다;
도 10c는 본 출원의 실시형태에 따른 디코딩단 기기의 하드웨어 구조도이다;
도 10d는 본 출원의 실시형태에 따른 코딩단 기기의 하드웨어 구조도이다.
본 출원에서 사용되는 용어는 단지 특정 실시예들을 설명하기 위한 것이며, 본 출원을 제한하려고 의도되는 것은 아니다. 본 출원 및 첨부된 청구항들에서 사용되는 단수 형태들('a', 'said' 및 'the')은 문맥이 다른 의미들을 명확히 표시하지 않는 한 복수 개의 형태를 포함하는 것으로 또한 의도된다. 또한 본 명세서에서 사용된 용어 "및/또는"은 하나 이상의 연관된 나열된 항목의 임의의 또는 모든 가능한 조합을 지칭하고 포함하는 것으로 이해되어야 한다. 비록 본 개시에서 "제1", "제2", "제3" 등 용어를 사용하여 여러 가지 정보를 설명할 수 있으나 이러한 정보는 이러한 용어에 한정되지 말아야 하는 것을 이해해야 한다. 이러한 용어는 단지 동일한 유형의 정보를 서로 구별하기 위한 것이다. 예를 들어, 본 개시의 범위를 벗어나지 않을 경우, 제1 정보가 제2 정보로 불릴 수도 있고, 유사하게, 제2 정보는 제1 정보로 불릴 수도 있다. 또한, 문맥에 따라, 본 명세서에서 사용되는 바와 같은 단어 "~한 경우(if)"는 "~할 때(when)" 또는 "~할 시(upon)" 또는 "에 응답하여"로서 해석될 수 있다.
본 출원의 실시예는 코딩 및 디코딩 방법, 장치 및 이의 기기를 제안하는 바, 아래와 같은 개념과 관련될 수 있다:
인트라 예측(intra prediction), 인터 예측(inter prediction)과 IBC(인트라 블록 카피) 예측:
인트라 예측이란, 비디오 공간적 연관성에 기반하고, 코딩된 블록을 사용하여 예측함으로써 비디오 공간적 리던던시를 제거하는 목적을 달성하는 것을 말한다. 인트라 예측은 여러 가지 예측 모드를 규정하고, 각 예측 모드는 한 가지 텍스처 방향(DC 모드 제외)에 대응하는 바, 예를 들면, 만약 이미지 텍스처가 수평 방향 배열을 나타내면 수평 예측 모드는 이미지 정보를 더 잘 예측할 수 있다.
인터 예측이란, 비디오 시간적 연관성에 기반하여, 비디오 시퀀스가 강한 시간적 연관성을 포함하므로 인접한 코딩된 픽처 픽셀을 상용하여 현재 픽처의 픽셀을 예측함으로써 비디오 시간적의 리던던시를 효과적으로 제거하는 목적을 달성하는 것을 말한다.
인트라 블록 카피(IBC, Intra Block Copy)란, 동일 픽처 참조를 허용하고, 현재 블록의 참조 데이터가 동일한 픽처에서 유래되며, 인트라 블록 카피는 인트라 블록 복제라고 지칭될 수도 있다. 인트라 블록 카피 기술에서는 현재 블록의 블록 벡터를 사용하여 현재 블록의 예측값을 획득할 수 있는 바, 예시적으로, 스크린 콘텐츠 중 동일한 픽처에 대량의 중복되어 나타나는 텍스처가 존재한다는 이 특성에 기반하여, 블록 벡터를 사용하여 현재 블록의 예측 값을 획득할 경우, 스크린 콘텐츠 시퀀스의 압축 효율을 향상시킬 수 있다.
예측 픽셀(Prediction Signal): 예측 픽셀이란 이미 코딩 및 디코딩된 픽셀에서 도출된 픽셀값을 말하는 바, 원본 픽셀과 예측 픽셀의 차이를 통해 잔차를 획득하고, 나아가 잔차 변환, 양자화 및 계수 코딩을 수행한다. 픽처 사이의 예측 픽셀이란 현재 블록이 참조 픽처에서 도출한 픽셀값을 말하는 바, 픽셀 위치의 이산으로 인하여 보간 연산을 통해 최종적인 예측 픽셀을 획득해야 한다. 예측 픽셀이 원본 픽셀에 근접할수록 양자를 서로 감하여 얻은 잔차 에너지가 더 작고, 코딩 압축성도 더 높다.
모션 벡터(Motion Vector, MV): 인터 예측에서, 모션 벡터를 사용하여 현재 슬라이스의 현재 블록과 참조 픽처의 참조 블록 사이의 상대적 변위를 나타낼 수 있다. 분할된 각 블록은 모두 상응한 모션 벡터를 디코딩단에 전송하는 바, 만약 각 블록의 모션 벡터, 특히 작은 사이즈의 대량의 블록에 대해 독립적인 코딩과 전송을 수행하면 많은 비트를 소모하게 된다. 모션 벡터를 코딩하기 위한 비트 수를 저하시키기 위하여 인접 블록 사이의 공간 연관성을 이용하여 인접한 코딩된 블록의 모션 벡터에 근거하여 현재 블록의 모션 벡터를 예측한 다음, 예측 차이에 대해 코딩을 수행함으로써 모션 벡터를 나타내는 비트 수를 효과적으로 저하시킬 수 있다. 현재 블록의 모션 벡터를 코딩할 경우, 먼저 인접한 코딩된 블록의 모션 벡터를 사용하여 현재 블록의 모션 벡터를 예측한 다음, 당해 모션 벡터의 예측값(MVP, Motion Vector Prediction)과 모션 벡터의 실제 값 사이의 차이값(MVD, Motion Vector Difference)을 코딩할 수 있다.
모션 정보(Motion Information): 모션 벡터가 현재 블록과 특정 참조 블록 사이의 위치 오프셋을 나타내므로 지향 블록의 정보를 정확하게 획득하기 위하여, 모션 벡터를 외에도 참조 픽처의 인덱스 정보를 통해 현재 블록이 어느 참조 픽처를 사용하는지를 나타내야 한다. 비디오 코딩 기술에서, 현재 슬라이스에 대하여 통상적으로 하나의 참조 픽처 리스트를 구축할 수 있는 바, 참조 픽처 인덱스 정보는 현재 블록이 참조 픽처 리스트 중 몇 번째 참조 픽처를 사용하는지를 나타낸다.
이 외에, 수많은 코딩 기술은 복수 개의 참조 픽처 리스트를 더 지원하므로, 하나의 인덱스 값을 사용하여 어느 하나의 참조 픽처 리스트를 사용하였는지 나타낼 수 있고, 당해 인덱스 값은 참조 방향이라고 할 수 있다. 요약하면, 비디오 코딩 기술에서는 모션 벡터, 참조 픽처 인덱스, 참조 방향 등이 모션과 관련되는 정보를 모션 정보라고 총칭할 수 있다.
율-왜곡 원칙(Rate-Distortion Optimized): 코딩 효율을 평가하는 것은 코드 레이트와 PSNR(Peak Signal to Noise Ratio, 첨두 신호 대 잡음비)와 같은 두 가지 큰 지표가 있는 바, 비트 스트림이 작을수록 압축률이 더 크고, PSNR이 클수록 재구성 이미지 품질이 더 양호하며; 모드 선택에서, 판별 수학식은 본질적으로 양자에 대한 종합적인 평가이다. 예를 들면, 모드에 대응하는 대가는 J(mode)=D+λ*R이고, 여기서, D는 Distortion(왜곡)을 나타내며, 통상적으로 SSE 지표를 사용하여 가늠하고, SSE란 재구성 이미지 블록과 소스 이미지의 차이값의 평균 제곱의 합이며; λ는 라그랑주 승수이고; R은 당해 모드에서의 이미지 블록 코딩에 필요한 실제 비트 수로서, 코딩 모드 정보, 모션 정보, 잔차 등에 필요한 비트 총합을 포함한다. 모드 선택에서, 만약 RDO 원칙을 사용하여 코딩 모드에 대해 비교 책략을 수행하면 통상적으로 코딩 성능이 더 우수하도록 담보할 수 있다.
비디오 코딩 프레임워크: 도 1에 도시된 내용을 참조하면, 비디오 코딩 프레임워크를 사용하여 본 출원의 실시예에 따른 코딩단 처리 과정을 구현할 수 있고; 비디오 디코딩 프레임워크의 모식도는 도 1과 유사하므로 여기서 더 이상 설명하지 않는 바, 비디오 디코딩 프레임워크를 사용하여 본 출원의 실시예에 따른 디코딩단 처리 과정을 구현할 수 있다. 예시적으로, 비디오 코딩 프레임워크와 비디오 디코딩 프레임워크에는 인트라 예측/인터 예측, 모션 추정/모션 보상, 참조 픽처 버퍼, 인루프 필터링, 재구성, 변환, 양자화, 역변환, 역양자화, 엔트로피 코딩 등 모듈이 포함될 수 있으나 이에 한정되지 않는다. 코딩단에서는, 이러한 모듈 사이의 협력을 통해 코딩단 처리 과정을 구현할 수 있고, 디코딩단에서는, 이러한 모듈 사이의 협력을 통해 디코딩단 처리 과정을 구현할 수 있다.
관련 기술에서, 현재 블록은 직사각형일 수 있으나 실제 물체의 가장자리는 흔히 직사각형이 아니므로 물체 가장자리에 있어서, 흔히 두 개의 상이한 오브젝트(예컨대 전경이 존재하는 물체와 배경)가 존재한다. 두 개의 오브젝트의 모션이 일치하지 않을 경우, 직사각형 분할은 두 개의 오브젝트를 양호하게 분할할 수 없어 현재 블록을 두 개의 비 직사각형 서브 블록으로 분할하고 두 개의 비 직사각형 서브 블록에 대해 가중 예측을 수행할 수 있다. 예시적으로, 가중 예측은 복수 개의 예측값을 이용하여 가중 조작을 수행함으로써 최종 예측값을 획득하는 것이고, 가중 예측은 인터 및 인트라 연합 가중 예측(Combined inter/intra prediction, CIIP), 인터 및 인터 연합 가중 예측, 인트라 및 인트라 연합 가중 예측 등을 포함할 수 있다. 연합 가중 예측의 가중치 값에 대하여, 현재 블록의 상이한 픽셀 위치에 동일한 가중치 값을 구성할 수도 있고, 현재 블록의 상이한 픽셀 위치에 상이한 가중치 값을 구성할 수도 있다.
도 2a에 도시된 내용을 참조하면, 이는 인터 인트라 연합 가중 예측의 모식도이다.
CIIP 예측 블록은 인트라 예측 블록(즉 인트라 예측 모드를 사용하여 픽셀 위치의 인트라 예측값을 얻음)과 인터 예측 블록(즉 인터 예측 모드를 사용하여 픽셀 위치의 인터 예측값을 얻음)을 가중하여 얻은 것으로, 각 픽셀 위치가 사용한 인트라 예측값과 인터 예측값의 가중치 비는 1:1이다. 예를 들면, 각 픽셀 위치에 대하여, 당해 픽셀 위치의 인트라 예측값과 당해 픽셀 위치의 인터 예측값을 가중하여 당해 픽셀 위치의 연합 예측값을 얻으며, 최종적으로 각 픽셀 위치의 연합 예측값으로 CIIP 예측 블록을 조성한다.
도 2b에 도시된 내용을 참조하면, 이는 인터 삼각 파티션 가중 예측(Triangular Partition Mode, TPM)의 모식도이다.
TPM 예측 블록은 인터 예측 블록 1(즉 인터 예측 모드 1을 사용하여 픽셀 위치의 인터 예측값을 얻음)과 인터 예측 블록 2(즉 인터 예측 모드 2를 사용하여 픽셀 위치의 인터 예측값을 얻음)을 조합하여 얻는다. TPM 예측 블록은 두 개의 영역으로 분할될 수 있는 바, 한 영역은 인터 영역 1일 수 있고, 다른 영역은 인터 영역 2일 수 있으며, TPM 예측 블록의 두 개의 인터 영역은 비 직사각형 분포를 이루고, 점선 분계선의 각도는 주대각선 또는 부대각선과 같은 두 가지일 수 있다.
인터 영역 1의 각 픽셀 위치에 대하여, 주로 인터 예측 블록 1의 인터 예측값에 기반하여 당해 픽셀 위치의 예측값을 결정하는 바, 예를 들면, 당해 픽셀 위치의 인터 예측 블록 1의 인터 예측값과 당해 픽셀 위치의 인터 예측 블록 2의 인터 예측값을 가중할 경우, 인터 예측 블록 1의 인터 예측값의 가중치 값이 크고, 인터 예측 블록 2의 인터 예측값의 가중치 값이 작으며(심지어 0), 당해 픽셀 위치의 연합 예측값을 얻는다. 인터 영역 2의 각 픽셀 위치에 대하여, 주로 인터 예측 블록 2의 인터 예측값에 기반하여 당해 픽셀 위치의 예측값을 결정하는 바, 예를 들면, 당해 픽셀 위치의 인터 예측 블록 1의 인터 예측값과 당해 픽셀 위치의 인터 예측 블록 2의 인터 예측값을 가중할 경우, 인터 예측 블록 2의 인터 예측값의 가중치 값이 크고, 인터 예측 블록 1의 인터 예측값의 가중치 값이 작으며(심지어 0), 당해 픽셀 위치의 연합 예측값을 얻는다.
도 2c에 도시된 내용을 참조하면, 이는 인터 인트라 연합 삼각 가중 예측의 모식도이다. 인터 인트라 연합 가중 예측을 수정하는 것을 통해 CIIP 예측 블록의 인터 영역과 인트라 영역이 삼각 가중 분할 예측의 가중치 분포를 나타내게 한다.
CIIP 예측 블록은 인트라 예측 블록(즉 인트라 예측 모드를 사용하여 픽셀 위치의 인트라 예측값을 얻음)과 인터 예측 블록(즉 인터 예측 모드를 사용하여 픽셀 위치의 인터 예측값을 얻음)을 조합하여 얻는다. CIIP 예측 블록은 두 개의 영역으로 분할될 수 있는 바, 한 영역은 인트라 영역일 수 있고, 다른 영역은 인터 영역일 수 있으며, CIIP 예측 블록의 인터 인트라는 비 직사각형 분포를 이룰 수 있고, 점선 분계선 영역은 혼합 가중 방식을 사용하거나 직접 분할할 수 있으며, 당해 점선 분계선의 각도는 주대각선 또는 부대각선과 같은 두 가지 일 수 있고, 인트라 영역과 인터 영역의 위치는 변화될 수 있다.
인트라 영역의 각 픽셀 위치에 대하여, 주로 인트라 예측값에 기반하여 당해 픽셀 위치의 예측값을 결정하는 바, 예를 들면, 당해 픽셀 위치의 인트라 예측값과 당해 픽셀 위치의 인터 예측값을 가중할 경우, 인트라 예측값의 가중치 값이 크고, 인터 예측값의 가중치 값이 작으며, 당해 픽셀 위치의 연합 예측값을 얻는다. 인터 영역의 각 픽셀 위치에 대하여, 주로 인터 예측값에 기반하여 당해 픽셀 위치의 예측값을 결정하는 바, 예를 들면, 당해 픽셀 위치의 인트라 예측값과 당해 픽셀 위치의 인터 예측값을 가중할 경우, 인터 예측값의 가중치 값이 크고, 인트라 예측값의 가중치 값이 작으며, 당해 픽셀 위치의 연합 예측값을 얻는다.
도 2d에 도시된 내용을 참조하면, 이는 인터 블록 기하학적 분할모드(Geometrical partitioning for inter blocks, GEO)의 모식도이고, GEO 모드는 한 갈래의 분할선을 이용하여 인터 예측 블록을 두 개의 서브 블록으로 분할하며, TPM 모드와 달리 GEO 모드는 더 많은 분할 방향을 사용할 수 있고, GEO 모드의 가중 예측 과정은 TPM 모드와 유사하다.
GEO 예측 블록은 인터 예측 블록 1(즉 인터 예측 모드 1을 사용하여 픽셀 위치의 인터 예측값을 얻음)과 인터 예측 블록 2(즉 인터 예측 모드 2를 사용하여 픽셀 위치의 인터 예측값을 얻음)를 조합하여 얻는다. GEO 예측 블록은 두 개의 영역으로 분할될 수 있는 바, 한 영역은 인터 영역 1일 수 있고, 다른 영역은 인터 영역 2일 수 있다.
인터 영역 1의 각 픽셀 위치에 대하여, 주로 인터 예측 블록 1의 인터 예측값에 기반하여 당해 픽셀 위치의 예측값을 결정하는 바, 예를 들면, 당해 픽셀 위치의 인터 예측 블록 1의 인터 예측값과 당해 픽셀 위치의 인터 예측 블록 2의 인터 예측값을 가중할 경우, 인터 예측 블록 1의 인터 예측값의 가중치 값이 크고, 인터 예측 블록 2의 인터 예측값의 가중치 값이 작다. 인터 영역 2의 각 픽셀 위치에 대하여, 주로 인터 예측 블록 2의 인터 예측값에 기반하여 당해 픽셀 위치의 예측값을 결정하는 바, 예를 들면, 당해 픽셀 위치의 인터 예측 블록 1의 인터 예측값과 당해 픽셀 위치의 인터 예측 블록 2의 인터 예측값을 가중할 경우, 인터 예측 블록 2의 인터 예측값의 가중치 값이 크고, 인터 예측 블록 1의 인터 예측값의 가중치 값이 작다.
예시적으로, GEO 예측 블록의 가중치 값 구성은 픽셀 위치와 분할선과의 거리와 관련되는 바, 도 2e에 도시된 내용을 참조하면, 픽셀 위치A, 픽셀 위치B 및 픽셀 위치C는 분할선의 오른쪽 하측(오른쪽 아래)에 위치하고, 픽셀 위치D, 픽셀 위치E 및 픽셀 위치F는 분할선의 왼쪽 상측(왼쪽 위)에 위치한다. 픽셀 위치A, 픽셀 위치B 및 픽셀 위치C에 대해, 인터 영역 2의 가중치 값은 B≥A≥C로 정렬되고, 인터 영역 1의 가중치 값은 C≥A≥B로 정렬된다. 픽셀 위치D, 픽셀 위치E 및 픽셀 위치F에 대하여, 인터 영역 1의 가중치 값은 D≥F≥E로 정렬되고, 인터 영역 2의 가중치 값은 E≥F≥D로 정렬된다. 상기 방식은 픽셀 위치와 분할선의 거리를 계산하여 픽셀 위치의 가중치 값을 결정해야 한다.
상기 여러 가지 경우에 대하여, 가중 예측을 구현하기 위하여 모두 현재 블록의 각 픽셀 위치의 가중치 값을 결정해야 하고, 픽셀 위치의 가중치 값에 기반하여 당해 픽셀 위치에 대해 가중 예측을 수행해야 한다. 그러나, 관련 기술에서는 가중치 값을 구성하는 효과적인 방식이 없어서 합리적인 가중치 값을 구성할 수 없어 예측 효과가 양호하지 않고 코딩 성능이 약한 등 문제점을 초래한다.
상기 발견에 대하여, 본 출원의 실시예에서는 가중치 값의 도출 방식을 제안하는 바, 현재 블록 외부의 주변 위치의 참조 가중치 값에 근거하여 현재 블록의 각 픽셀 위치의 타깃 가중치 값을 결정하고, 각 픽셀 위치에 합리적인 타깃 가중치 값을 구성하여 예측 정확성을 향상시키고, 예측 성능을 향상시키며, 코딩 성능을 향상시켜 예측값이 원본 픽셀에 보다 근접하도록 할 수 있다.
이하 몇 개의 구체적인 실시예와 결부하여 본 출원의 실시예에 따른 코딩 및 디코딩 방법을 상세하게 설명한다.
실시예 1: 도 3에 도시된 내용을 참조하면, 이는 코딩 및 디코딩 방법의 흐름 모식도이고, 당해 방법은 디코딩단(비디오 디코더라고도 지칭함) 또는 코딩단(비디오 코더라고도 지칭함)에 응용될 수 있으며, 당해 방법은 아래 단계를 포함할 수 있다:
단계(301), 현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 현재 블록의 가중치 예측 각도와 가중치 구성 파라미터를 획득하되, 당해 가중치 구성 파라미터는 가중치 변환율과 가중치 변환의 시작 위치를 포함한다. 가중치 변환의 시작 위치는 현재 블록의 가중치 예측 각도, 현재 블록의 가중치 예측 위치, 현재 블록의 사이즈 파라미터 중 적어도 하나에 의해 결정될 수 있다.
예시적으로, 현재 블록을 예측해야 할 경우, 디코딩단 또는 코딩단은 현재 블록에 대해 가중 예측 활성화할지 여부를 먼저 결정할 수 있다. 만약 현재 블록에 대해 가중 예측을 활성화하면 본 출원의 실시예에 따른 코딩 및 디코딩 방법을 사용, 즉 단계(301)과 후속 단계를 수행한다. 만약 현재 블록이 가중 예측을 수행하지 않으면 본 출원의 실시예에는 구현 방식에 대해 한정하지 않는다.
예시적으로, 현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 현재 블록의 가중치 예측 각도, 현재 블록의 가중치 예측 위치, 및 현재 블록의 가중치 변환율을 획득할 수 있다. 다음, 현재 블록의 가중치 예측 각도, 현재 블록의 가중치 예측 위치 및 현재 블록의 사이즈 중 적어도 하나에 기반하여 현재 블록의 가중치 변환의 시작 위치를 결정할 수 있다. 이로써, 현재 블록의 가중치 예측 각도, 현재 블록의 가중치 변환율 및 현재 블록의 가중치 변환의 시작 위치를 얻을 수 있다.
단계(302), 현재 블록의 가중치 구성 파라미터에 근거하여 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성한다.
예시적으로, 현재 블록 외부의 주변 위치의 수량은 현재 블록의 사이즈 및/또는 현재 블록의 가중치 예측 각도에 기반하여 결정될 수 있는 바, 예를 들면, 현재 블록의 사이즈 및/또는 현재 블록의 가중치 예측 각도에 기반하여 현재 블록 외부의 주변 위치의 수량 M을 결정하고, 현재 블록의 가중치 구성 파라미터에 근거하여 M개의 주변 위치에 참조 가중치 값을 구성할 수 있다.
예시적으로, 현재 블록 외부의 주변 위치의 참조 가중치 값은 단조 증가할 수 있거나; 또는, 현재 블록 외부의 주변 위치의 참조 가중치 값은 단조 감소할 수 있다. 예를 들어, 현재 블록 외부의 주변 위치의 참조 가중치 값의 배열은 00…0024688…88이거나, 또는, 현재 블록 외부의 주변 위치의 참조 가중치 값의 배열은 88…8864200…00일 수 있다.
예시적으로, 현재 블록 외부의 주변 위치는 정수 픽셀 위치, 또는, 서브 픽셀 위치, 또는, 정수 픽셀 위치 및 서브 픽셀 위치를 포함할 수 있다. 현재 블록 외부의 주변 위치는: 현재 블록 외부의 상측 한 행의 주변 위치, 또는, 현재 블록 외부의 좌측 한 열의 주변 위치, 또는, 현재 블록 외부의 하측 1행의 주변 위치, 또는, 현재 블록 외부의 우측 1열의 주변 위치를 포함할 수 있으나 이에 한정되지 않는다. 물론, 상술한 내용은 단지 주변 위치의 예시일 뿐, 이에 대해 한정하지 않는다.
가능한 일 실시형태에서, 현재 블록 외부의 주변 위치의 참조 가중치 값은 타깃 영역의 참조 가중치 값, 타깃 영역의 제1 인접 영역의 참조 가중치 값, 타깃 영역의 제2 인접 영역의 참조 가중치 값을 포함한다.
예시적으로, 제1 인접 영역의 참조 가중치 값은 모두 제1 참조 가중치 값이고, 제2 인접 영역의 참조 가중치 값은 단조 증가한다. 또는, 제1 인접 영역의 참조 가중치 값은 모두 제1 참조 가중치 값이고, 제2 인접 영역의 참조 가중치 값은 단조 감소한다. 또는, 제1 인접 영역의 참조 가중치 값은 모두 제2 참조 가중치 값이고, 제2 인접 영역의 참조 가중치 값은 모두 제3 참조 가중치 값이며, 당해 제2 참조 가중치 값과 당해 제3 참조 가중치 값은 상이하다. 또는, 제1 인접 영역의 참조 가중치 값은 단조 증가하고, 제2 인접 영역의 참조 가중치 값은 단조 증가한다. 또는, 제1 인접 영역의 참조 가중치 값은 단조 감소하고, 제2 인접 영역의 참조 가중치 값은 단조 감소한다.
예시적으로, 타깃 영역은 하나의 참조 가중치 값 또는 적어도 두 개의 참조 가중치 값을 포함하되; 만약 타깃 영역이 적어도 두 개의 참조 가중치 값을 포함하면 타깃 영역의 적어도 두 개의 참조 가중치 값은 단조 증가하거나 또는 단조 감소한다.
단계(303), 현재 블록의 각 픽셀 위치에 대하여, 현재 블록의 가중치 예측 각도에 근거하여 현재 블록 외부의 주변 위치에서 당해 픽셀 위치가 지향하는 주변 매칭 위치를 결정하고; 당해 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 당해 픽셀 위치의 타깃 가중치 값을 결정하며, 당해 픽셀 위치의 타깃 가중치 값에 근거하여 당해 픽셀 위치의 관련 가중치 값을 결정한다.
예시적으로, 가중치 예측 각도는 현재 블록 내부의 픽셀 위치가 지향하는 각도 방향을 나타내는 바, 예를 들면, 현재 블록의 하나의 픽셀 위치에 대해, 어느 한 가지 가중치 예측 각도에 기반하여, 당해 가중치 예측 각도에 대응하는 각도 방향이 현재 블록의 어느 하나의 외부 주변 위치를 지향한다. 이에 기반하여, 현재 블록의 각 픽셀 위치에 대하여, 당해 가중치 예측 각도에 기반하여 당해 픽셀 위치가 지향하는 각도 방향을 결정하고, 나아가 당해 각도 방향에 근거하여 현재 블록 외부의 주변 위치에서 당해 픽셀 위치가 지향하는 주변 매칭 위치를 결정한다.
현재 블록의 각 픽셀 위치에 대하여, 당해 픽셀 위치가 지향하는 주변 매칭 위치를 결정한 다음, 당해 주변 매칭 위치와 연관되는 참조 가중치 값에 기반하여 당해 픽셀 위치의 타깃 가중치 값을 결정하는 바, 예를 들면, 당해 주변 매칭 위치와 연관되는 참조 가중치 값을 당해 픽셀 위치의 타깃 가중치 값으로 결정한다. 다음, 당해 픽셀 위치의 타깃 가중치 값에 근거하여 당해 픽셀 위치의 관련 가중치 값을 결정하는 바, 예를 들면, 각 픽셀 위치의 타깃 가중치 값과 관련 가중치 값의 합은 모두 고정된 기설정된 수치일 수 있으므로 관련 가중치 값은 기설정된 수치와 타깃 가중치 값의 차이일 수 있다. 기설정된 수치가 8이고, 픽셀 위치의 타깃 가중치 값이 0이라고 가정하면 당해 픽셀 위치의 관련 가중치 값은 8이고; 만약 픽셀 위치의 타깃 가중치 값이 1이면 당해 픽셀 위치의 관련 가중치 값은 7이며, 이러한 방법으로 유추하면, 타깃 가중치 값과 관련 가중치 값의 합이 8이면 된다.
단계(304), 적어도 하나의 후보 모션 정보를 포함하는 모션 정보 후보 리스트를 획득하고; 당해 모션 정보 후보 리스트에 기반하여 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득한다.
단계(305), 현재 블록의 각 픽셀 위치에 대하여, 현재 블록의 제1 타깃 모션 정보에 근거하여 당해 픽셀 위치의 제1 예측값을 결정하고, 현재 블록의 제2 타깃 모션 정보에 근거하여 당해 픽셀 위치의 제2 예측값을 결정하며; 당해 제1 예측값, 당해 타깃 가중치 값, 당해 제2 예측값 및 당해 관련 가중치 값에 근거하여 당해 픽셀 위치의 가중 예측값을 결정한다.
예시적으로, 타깃 가중치 값이 제1 타깃 모션 정보에 대응하는 가중치 값이고, 관련 가중치 값이 제2 타깃 모션 정보에 대응하는 가중치 값이라고 가정하면 당해 픽셀 위치의 가중 예측값은: (당해 픽셀 위치의 제1 예측값*당해 픽셀 위치의 타깃 가중치 값+당해 픽셀 위치의 제2 예측값*당해 픽셀 위치의 관련 가중치 값)/고정된 기설정된 수치일 수 있다. 또는, 타깃 가중치 값이 제2 타깃 모션 정보에 대응하는 가중치 값이고, 관련 가중치 값이 제1 타깃 모션 정보에 대응하는 가중치 값이라고 가정하면 당해 픽셀 위치의 가중 예측값은: (당해 픽셀 위치의 제2 예측값*당해 픽셀 위치의 타깃 가중치 값+당해 픽셀 위치의 제1 예측값*당해 픽셀 위치의 관련 가중치 값)/고정된 기설정된 수치일 수 있다.
단계(306), 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 현재 블록의 가중 예측값을 결정한다.
예를 들면, 현재 블록의 각 픽셀 위치의 가중 예측값으로 현재 블록의 가중 예측값을 조성한다.
이상의 기술적 해결수단으로부터 알 수 있다시피, 본 출원의 실시예에서는 가중치 값을 구성하는 효과적인 방식을 제안하여 현재 블록의 각 픽셀 위치에 합리적인 타깃 가중치 값을 구성함으로써 예측 정확성을 향상시키고, 예측 성능을 향상시키며, 코딩 성능을 향상시키고, 현재 블록의 예측값이 원본 픽셀값에 보다 근접하도록 하며, 코딩 성능을 향상시킬 수 있다.
실시예 2: 본 출원의 실시예는 코딩단에 응용될 수 있는 다른 코딩 및 디코딩 방법을 제안하는 바, 당해 방법은 아래 단계를 포함한다:
단계(a1), 현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 코딩단은 현재 블록의 가중치 예측 각도, 현재 블록의 가중치 예측 위치, 및 현재 블록의 가중치 변환율을 획득한다. 예시적으로, 코딩단은 현재 블록에 대해 가중 예측 활성화할지 여부를 결정하되, 만약 "예"이면, 단계 (a1) 및 후속 단계를 수행하고, 만약 "아니오"이면, 본 출원은 처리 방식에 대해 한정하지 않는다.
가능한 일 실시형태에서, 만약 현재 블록이 가중 예측을 활성화하는 조건을 충족시키면 현재 블록에 대해 가중 예측을 활성화하는 것을 결정한다. 만약 현재 블록이 가중 예측을 활성화하는 조건을 충족시키지 않으면 현재 블록에 대해 가중 예측을 활성화하지 않는 것을 결정한다. 예를 들면, 현재 블록의 특징 정보가 특정 조건을 충족시키는지 여부를 판정한다. 만약 "예"이면, 현재 블록에 대해 가중 예측을 활성화하는 것을 결정하고; 만약 "아니오"이면, 현재 블록에 대해 가중 예측을 활성화하지 않는 것을 결정한다. 특징 정보는 현재 블록이 위치하는 현재 슬라이스의 슬라이스 유형, 현재 블록의 사이즈 정보, 스위칭 제어 정보 중 하나 또는 임의의 조합을 포함하나 이에 한정되지 않는다. 스위칭 제어 정보는 시퀀스 레벨(SPS, SH) 스위칭 제어 정보, 또는, 픽처 레벨(PPS, PH) 스위칭 제어 정보, 또는, 칩 레벨 (Slice, Tile, Patch), 또는, 최대 코딩 유닛 레벨(LCU, CTU), 또는 블록 레벨(CU, PU, TU) 스위칭 제어 정보를 포함할 수 있으나 이에 한정되지 않는다.
예를 들면, 만약 특징 정보가 현재 블록이 위치하는 현재 슬라이스의 슬라이스 유형이고, 현재 블록이 위치하는 현재 슬라이스의 슬라이스 유형이 특정 조건을 충족시키는 것은, 만약 현재 블록이 위치하는 현재 슬라이스의 슬라이스 유형이 B 슬라이스이면 슬라이스 유형이 특정 조건을 충족시킨다고 결정하는 것을 포함할 수 있으나 이에 한정되지 않는다. 또는, 만약 현재 블록이 위치하는 현재 슬라이스의 슬라이스 유형이 I 슬라이스이면 슬라이스 유형이 특정 조건을 충족시킨다고 결정한다.
예를 들면, 만약 특징 정보가 현재 블록의 사이즈 정보, 예컨대 현재 블록의 너비와 높이이고, 사이즈 정보가 특정 조건을 충족시킨다는 것은, 만약 너비가 제1 수치보다 크거나 같고, 높이가 제2 수치보다 크거나 같다면 현재 블록의 사이즈 정보가 특정 조건을 충족시킨다고 결정하는 것을 포함하나 이에 한정되지 않는다. 또는, 만약 너비가 제3 수치보다 크거나 같고, 높이가 제4 수치보다 크거나 같으며, 너비가 제5 수치보다 작거나 같고, 높이가 제6 수치보다 작거나 같으면 현재 블록의 사이즈 정보가 특정 조건을 충족시킨다고 결정한다. 또는 만약 너비와 높이의 승적이 제7 수치보다 크거나 같으면 현재 블록의 사이즈 정보가 특정 조건을 충족시킨다고 결정한다. 상기 수치는 경험에 따라 구성될 수 있는 바, 예컨대 8, 16, 32, 64, 128 등이다. 예를 들어, 제1 수치가 8, 제2 수치가 8, 제3 수치가 8, 제4 수치가 8, 제5 수치가 64, 제6 수치가 64, 제7 수치가 64이다. 요약하면, 만약 너비가 8보다 크거나 같고, 높이가 8보다 크거나 같으면 현재 블록의 사이즈 정보가 특정 조건을 충족시킨다고 결정한다. 또는 만약 너비가 8보다 크거나 같고, 높이가 8보다 크거나 같으며, 너비가 64보다 작거나 같고, 높이가 64보다 작거나 같으면 현재 블록의 사이즈 정보가 특정 조건을 충족시킨다고 결정한다. 또는, 만약 너비와 높이의 승적이 64보다 크거나 같으면 현재 블록의 사이즈 정보가 특정 조건을 충족시킨다고 결정한다.
예를 들면, 만약 특징 정보가 현재 블록의 사이즈 정보, 예컨대 현재 블록의 너비와 높이이면 현재 블록의 사이즈 정보가 특정 조건을 충족시키는 것은 너비가 a보다 작지 않고, b보다 크지 않으며, 높이가 a보다 작지 않고, b보다 크지 않을 것을 포함할 수 있으나 이에 한정되지 않는다. 한 예시에서 a는 16보다 작거나 같을 수 있고, 16보다 크거나 같을 수 있다. 예를 들면, a는 8과 같고, b는 64와 같거나 또는 b는 32와 같다.
예를 들면, 만약 특징 정보가 스위칭 제어 정보이면 당해 스위칭 제어 정보가 특정 조건을 충족시키는 것은: 만약 스위칭 제어 정보가 현재 블록이 가중 예측을 사용하는 것을 허용하면 당해 스위칭 제어 정보가 특정 조건을 충족시키는 것을 포함할 수 있으나 이에 한정되지 않는다.
예를 들면, 만약 특징 정보가 현재 블록이 위치하는 현재 슬라이스의 슬라이스 유형, 현재 블록의 사이즈 정보이면 슬라이스 유형이 특정 조건을 충족시키고, 또한 사이즈 정보가 특정 조건을 충족시킬 경우, 현재 블록의 특징 정보가 특정 조건을 충족시킨다고 결정할 수 있다. 또는, 만약 특징 정보가 현재 블록이 위치하는 현재 슬라이스의 슬라이스 유형, 스위칭 제어 정보이면 슬라이스 유형이 특정 조건을 충족시키고, 또한 스위칭 제어 정보가 특정 조건을 충족시킬 경우, 현재 블록의 특징 정보가 특정 조건을 충족시킨다고 결정할 수 있다. 또는, 만약 특징 정보가 현재 블록의 사이즈 정보, 스위칭 제어 정보이면 사이즈 정보가 특정 조건을 충족시키고, 스위칭 제어 정보가 특정 조건을 충족시킬 경우, 현재 블록의 특징 정보가 특정 조건을 충족시킨다고 결정할 수 있다. 또는, 만약 특징 정보가 현재 블록이 위치하는 현재 슬라이스의 슬라이스 유형, 현재 블록의 사이즈 정보, 스위칭 제어 정보이면, 슬라이스 유형이 특정 조건을 충족시키고, 사이즈 정보가 특정 조건을 충족시키며, 스위칭 제어 정보가 특정 조건을 충족시킬 경우, 현재 블록의 특징 정보가 특정 조건을 충족시킨다고 결정할 수 있다.
가능한 일 실시형태에서, 현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 코딩단은 현재 블록의 가중치 예측 각도, 현재 블록의 가중치 예측 위치, 및 현재 블록의 가중치 변환율을 획득할 수 있다.
예시적으로, 가중치 예측 각도는 현재 블록 내부의 픽셀 위치가 지향하는 각도 방향을 나타내는 바, 도 4a에 도시된 내용을 참조하면, 어느 한 가지 가중치 예측 각도에 기반하여 현재 블록 내부의 픽셀 위치(예컨대 픽셀 위치 1, 픽셀 위치 2 및 픽셀 위치 3)가 지향하는 각도 방향을 도시하고, 당해 블록 내부의 한 픽셀 위치에 대해, 당해 각도 방향은 현재 블록 외부의 특정 주변 위치를 지향한다. 도 4b에 도시된 내용을 참조하면, 다른 가중치 예측 각도에 기반하여 현재 블록 내부의 픽셀 위치(예컨대 픽셀 위치 2, 픽셀 위치 3 및 픽셀 위치 4)가 지향하는 각도 방향을 도시하고, 당해 블록 내부의 한 픽셀 위치에 대해, 당해 각도 방향은 현재 블록 외부의 특정 주변 위치를 지향한다.
예시적으로, 가중치 예측 위치(거리 파라미터라고도 지칭함)는 현재 블록 외부의 주변 위치의 참조 가중치 값을 구성한다. 예를 들면, 현재 블록의 가중치 예측 각도, 현재 블록의 사이즈 등 파라미터에 근거하여 현재 블록 외부의 주변 위치의 범위(즉 현재 블록 외부의 주변 위치의 수량)을 결정하는 바, 이는 도 4a 또는 도 4b에 도시된 내용을 참조할 수 있다.
다음, 주변 위치의 범위를 N 등분하는 바, N의 값은 4, 6, 8 등과 같이 임의로 구성할 수 있고, 8을 예로 들어 설명하면, 가중치 예측 위치는 현재 블록 외부의 어느 주변 위치를 현재 블록의 가중치 변환의 시작 위치로 사용할 것인지를 나타냄으로써 가중치 변환의 시작 위치에 근거하여 현재 블록 외부의 주변 위치의 참조 가중치 값을 구성한다.
도 4c에 도시된 내용을 참조하면, 모든 주변 위치를 8등분한 후, 7개의 가중치 예측 위치를 얻을 수 있다. 이 기초 상에, 가중치 예측 위치가 0인 경우, 주변 위치a0(즉 점선0이 지향하는 주변 위치로서, 실제 응용에서는 점선0이 존재하지 않으며, 점선0은 단지 이해의 편리를 위하여 예시한 것이고, 점선0 내지 점선6은 모든 주변 위치를 8등분함)을 현재 블록 외부의 주변 위치의 가중치 변환의 시작 위치로 사용하는 것을 나타낼 수 있다. 이러한 방법으로 유추하면, 가중치 예측 위치가 6인 경우, 주변 위치a6을 현재 블록 외부의 주변 위치의 가중치 변환의 시작 위치로 사용하는 것을 나타낸다.
상이한 가중치 예측 각도에 대하여, N의 값은 상이할 수 있는 바, 예를 들면, 가중치 예측 각도 A에 대하여, N의 값이 6인 것은 가중치 예측 각도 A에 기반하여 결정된 주변 위치의 범위를 6등분하는 것을 나타내고, 가중치 예측 각도 B에 대하여, N의 값이 8인 것은 가중치 예측 각도 B에 기반하여 결정된 주변 위치의 범위를 8등분하는 것을 나타낸다.
상이한 가중치 예측 각도에 대하여, N의 값도 동일할 수 있고, N의 값이 동일한 경우, 가중치 예측 위치의 수량은 상이할 수 있는 바, 예컨대 가중치 예측 각도 A에 대하여, N의 값이 8인 것은 가중치 예측 각도 A에 기반하여 결정된 주변 위치의 범위를 8등분하는 것을 나타내고, 가중치 예측 각도 B에 대하여, N의 값이 8인 것은 가중치 예측 각도 B에 기반하여 결정된 주변 위치의 범위를 8등분하는 것을 나타내지만, 가중치 예측 각도 A에 대응하는 가중치 예측 위치는 a1 내지 a5와 같이 모두 5개의 위치를 선택하고, 가중치 예측 각도 B에 대응하는 가중치 예측 위치는 a0 내지 a6과 같이 모두 7개의 위치를 선택한다.
상술한 내용은 주변 위치의 범위를 N등분하는 것을 예로 들었으나, 실제 응용에서는, 균일하지 않은 분할 방식을 사용할 수도 있는 바, 예를 들어, 주변 위치의 범위를 N등분이 아닌 N분으로 분할할 수 있으며, 이에 대해 한정하지 않는다.
모든 주변 위치를 8등분한 다음, 7개의 가중치 예측 위치를 얻을 수 있는 바, 단계(a1)에서, 예를 들면, 코딩단은 7개의 가중치 예측 위치에서 하나의 가중치 예측 위치를 획득할 수도 있고, 7개의 가중치 예측 위치에서 일부 가중치 예측 위치(예컨대 5개의 가중치 예측 위치)를 선택할 수도 있으며, 5개의 가중치 예측 위치에서 하나의 가중치 예측 위치를 획득할 수도 있다.
예시적으로, 가중치 변환율은 현재 블록 외부의 주변 위치의 참조 가중치 값의 변환율을 나타내고, 참조 가중치 값의 변화속도를 나타내며, 가중치 변환율은 0이 아닌 임의의 수 일 수 있는 바, 예컨대 가중치 변환율은 -4, -2, -1, 1, 2, 4, 0.5, 0.75, 1.5 등일 수 있다. 가중치 변환율의 절대값이 1일 경우, 즉 가중치 변환율이 -1 또는 1일 경우, 참조 가중치 값의 변화속도가 1인 것을 나타내고, 참조 가중치 값은 0으로부터 8까지 0, 1, 2, 3, 4, 5, 6, 7, 8 등 수치를 거쳐야 하며, 참조 가중치 값은 8로부터 0까지 8, 7, 6, 5, 4, 3, 2, 1, 0 등 수치를 거쳐야 한다. 가중치 변환율의 절대값이 2일 경우, 즉 가중치 변환율이 -2 또는 2일 경우, 참조 가중치 값의 변화속도가 2인 것을 나타내고, 참조 가중치 값은 0으로부터 8까지 0, 2, 4, 6, 8 등 수치를 거쳐야 하며, 참조 가중치 값은 8로부터 0까지 8, 6, 4, 2, 0 등 수치를 거쳐야 한다. 가중치 변환율의 절대값이 4일 경우, 즉 가중치 변환율이 -4 또는 4일 경우, 참조 가중치 값의 변화속도가 4인 것을 나타내고, 참조 가중치 값0으로부터 8까지 0, 4, 8 등 수치를 거쳐야 하며, 참조 가중치 값은 8로부터 0까지 8, 4, 0 등 수치를 거쳐야 한다. 가중치 변환율의 절대값이 0.5일 경우, 즉 가중치 변환율이 -0.5 또는 0.5일 경우, 참조 가중치 값의 변화속도가 0.5인 것을 나타내고, 참조 가중치 값은 0으로부터 8까지 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8 등 수치를 거쳐야 하며, 참조 가중치 값은 8로부터 0까지 8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0 등 수치를 거쳐야 한다. 물론, 상기 예는 0으로부터 8까지이지만 0과 8을 임의의 수로 대체할 수 있다.
단계(a2), 코딩단은 현재 블록의 가중치 변환율과 가중치 변환의 시작 위치(가중치 변환율과 가중치 변환의 시작 위치는 가중치 구성 파라미터라고 지칭할 수 있음)에 근거하여 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성한다.
예시적으로, 가중치 변환의 시작 위치는 현재 블록의 가중치 예측 각도, 현재 블록의 가중치 예측 위치, 현재 블록의 사이즈 파라미터 중 적어도 하나에 의해 결정될 수 있으므로 현재 블록의 가중치 예측 각도, 현재 블록의 가중치 예측 위치 및 현재 블록의 사이즈 중 적어도 하나에 기반하여 현재 블록의 가중치 변환의 시작 위치를 결정할 수 있다. 다음, 현재 블록의 가중치 변환율과 가중치 변환의 시작 위치에 근거하여 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성한다.
단계(a3), 현재 블록의 각 픽셀 위치에 대하여, 코딩단이 현재 블록의 가중치 예측 각도에 근거하여 현재 블록 외부의 주변 위치에서 당해 픽셀 위치가 지향하는 주변 매칭 위치를 결정한다. 구별의 편리를 위하여, 본 실시예에서는 당해 픽셀 위치가 지향하는 현재 블록 외부의 주변 위치를 당해 픽셀 위치의 주변 매칭 위치라고 지칭할 수 있다.
예시적으로, 가중치 예측 각도는 현재 블록 내부의 픽셀 위치가 지향하는 각도 방향을 나타내므로 현재 블록의 각 픽셀 위치에 대하여, 당해 가중치 예측 각도에 기반하여 당해 픽셀 위치가 지향하는 각도 방향을 결정하고, 나아가 당해 각도 방향에 근거하여 현재 블록 외부의 주변 위치에서 당해 픽셀 위치가 지향하는 주변 매칭 위치를 결정한다.
현재 블록 외부의 주변 위치는 현재 블록 외부의 상측 한 행의 주변 위치, 예컨대 현재 블록 외부 상측의 n1번째 행의 주변 위치를 포함할 수 있는 바, n1은 1일 수도 있고 2, 3 등일 수도 있으며, 이에 대해 한정하지 않는다. 또는, 현재 블록 외부의 좌측 한 열의 주변 위치, 예컨대 현재 블록 외부 좌측의 n2번째 열의 주변 위치를 포함할 수 있는 바, n2는 1일 수도 있고 2, 3 등일 수도 있으며, 이에 대해 한정하지 않는다. 또는, 현재 블록 외부의 하측 1행의 주변 위치, 예컨대 현재 블록 외부 하측의 n3번째 행의 주변 위치를 포함할 수 있는 바, n3은 1일 수도 있고 2, 3 등일 수도 있으며, 이에 대해 한정하지 않는다. 또는, 현재 블록 외부의 우측 1열의 주변 위치, 예컨대 현재 블록 외부 우측의 n4번째 열의 주변 위치를 포함할 수 있는 바, n4는 1일 수도 있고 2, 3 등일 수도 있으며, 이에 대해 한정하지 않는다.
물론, 상술한 내용은 단지 주변 위치의 몇 개의 예시일 뿐, 이에 대해 한정하지 않는 바, 실제 응용에서는, 현재 블록 외부의 주변 위치를 이용하는 것 외에, 현재 블록 내부 위치, 즉 현재 블록의 내부 위치를 이용하여 현재 블록 외부의 주변 위치를 대체할 수도 있는 바, 예를 들면, 현재 블록 내부의 n5번째 행의 내부 위치에 위치하되, n5는 1일 수도 있고 2, 3 등일 수도 있으며, 또 예를 들면, 현재 블록 내부의 n6번째 열의 내부 위치에 위치하되, n6은 1일 수도 있고 2, 3 등일 수도 있다. 물론, 내부 위치의 길이(즉, 현재 블록 내에서 당해 내부 위치에 위치하는 1행)는 현재 블록의 범위를 초과할 수 있는 바, 예컨대 n7번째 행의 위치는 현재 블록의 범위를 초과할 수 있는 바, 즉 양쪽으로 연장되는 것과 같다.
물론, 현재 블록의 내부 위치와 현재 블록 외부의 주변 위치를 동시에 사용할 수도 있다.
현재 블록의 내부 위치를 사용하거나, 또는, 현재 블록의 내부 위치와 현재 블록 외부의 주변 위치를 동시에 사용하는 경우에 대하여, 내부 위치에 소재하는 행을 통해 당해 현재 블록을 상하 두 개의 작은 블록으로 분류하거나, 또는 내부 위치에 소재하는 열을 통해 좌우 두 개의 작은 블록으로 분류할 수 있는 바, 이때, 두 개의 작은 블록은 동일한 가중치 예측 각도 및 동일한 참조 가중치 구성을 가지게 된다.
예시적으로, 현재 블록 외부의 주변 위치는 픽셀 위치 사이, 즉 서브 픽셀 위치에 위치할 수 있고, 이때, 현재 블록의 외부 주변 위치는 x번째 행으로 간단하게 설명되는 것이 아니라 x번째 행과 y번째 행 사이에 위치하는 서브 픽셀 위치 행으로 설명되어야 한다.
설명의 편리를 위하여, 후속 실시예에서는 현재 블록의 외부 상측 첫 번째 행의 주변 위치, 또는, 현재 블록의 외부 좌측 첫 번째 열의 주변 위치를 예로 들며, 기타 주변 위치의 경우에 대해 구현 방식은 이와 유사하다.
예시적으로, 현재 블록 외부의 주변 위치의 범위에 대하여, 특정 범위를 현재 블록 외부의 주변 위치의 범위로 미리 지정하거나; 또는, 가중치 예측 각도에 근거하여 현재 블록 외부의 주변 위치의 범위를 결정할 수 있는 바, 예를 들면, 가중치 예측 각도에 근거하여 현재 블록 내부의 각 픽셀 위치가 지향하는 주변 위치를 결정할 수 있고, 각 픽셀 위치가 지향하는 주변 위치의 경계는 현재 블록 외부의 주변 위치의 범위일 수 있으며, 이러한 주변 위치의 범위를 한정하지 않는다.
현재 블록 외부의 주변 위치는 정수 픽셀 위치를 포함하거나; 또는, 현재 블록 외부의 주변 위치는 비 정수 픽셀 위치를 포함할 수 있는 바, 비 정수 픽셀 위치는 서브 픽셀 위치, 예컨대 1/2서브 픽셀 위치, 1/4서브 픽셀 위치, 3/4서브 픽셀 위치 등 일수 있으며, 이에 대해 한정하지 않거나; 또는, 현재 블록 외부의 주변 위치는 정수 픽셀 위치와 서브 픽셀 위치를 포함할 수 있다.
예시적으로, 현재 블록 외부의 두 개의 주변 위치는 하나의 정수 픽셀 위치에 대응하거나; 또는, 현재 블록 외부의 네 개의 주변 위치는 하나의 정수 픽셀 위치에 대응하거나; 또는, 현재 블록 외부의 한 개 주변 위치는 하나의 정수 픽셀 위치에 대응하거나; 또는, 현재 블록 외부의 한 개 주변 위치는 두 개의 정수 픽셀 위치에 대응할 수 있다. 물론, 상술한 내용은 몇 개의 예시일 뿐, 이에 대해 한정하지 않는 바, 주변 위치와 정수 픽셀 위치의 관계는 임의로 구성될 수 있다.
도 4a와 도 4b에 도시된 내용을 참조하면, 이는 하나의 주변 위치가 하나의 정수 픽셀 위치에 대응하는 것이고, 도 4d에 도시된 내용을 참조하면, 이는 두 개의 주변 위치가 하나의 정수 픽셀 위치에 대응하는 것이며, 기타 경우에 대하여 본 실시예는 더 이상 설명하지 않는다.
단계(a4), 코딩단이 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 당해 픽셀 위치의 타깃 가중치 값을 결정한다.
현재 블록의 각 픽셀 위치에 대하여, 당해 픽셀 위치가 지향하는 주변 매칭 위치를 결정한 다음, 코딩단은 당해 주변 매칭 위치와 연관되는 참조 가중치 값을 결정하고, 당해 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 당해 픽셀 위치의 타깃 가중치 값을 결정하는 바, 예를 들면, 당해 주변 매칭 위치와 연관되는 참조 가중치 값을 당해 픽셀 위치의 타깃 가중치 값으로 결정한다.
가능한 일 실시형태에서, 코딩단이 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 당해 픽셀 위치의 타깃 가중치 값을 결정하는 단계는 아래 경우를 포함할 수 있다: 경우 1, 만약 당해 주변 매칭 위치가 정수 픽셀 위치이고, 당해 정수 픽셀 위치에 이미 참조 가중치 값이 구성되었으면 당해 정수 픽셀 위치의 참조 가중치 값에 근거하여 당해 픽셀 위치의 타깃 가중치 값을 결정한다.
경우 2, 만약 당해 주변 매칭 위치가 정수 픽셀 위치이고, 당해 정수 픽셀 위치에 참조 가중치 값이 구성되지 않았으면 당해 정수 픽셀 위치의 인접 위치의 참조 가중치 값에 근거하여 당해 픽셀 위치의 타깃 가중치 값을 결정할 수 있다. 예를 들면, 인접 위치의 참조 가중치 값에 대해 위로 반올림 조작을 수행하여 당해 픽셀 위치의 타깃 가중치 값을 얻거나; 또는, 인접 위치의 참조 가중치 값에 대해 아래로 반내림 조작을 수행하여 당해 픽셀 위치의 타깃 가중치 값을 얻거나; 또는 당해 정수 픽셀 위치의 인접 위치의 참조 가중치 값의 보간에 근거하여 당해 픽셀 위치의 타깃 가중치 값을 결정할 수 있으며, 이에 대해 한정하지 않는다.
경우 3, 만약 당해 주변 매칭 위치가 서브 픽셀 위치이고, 당해 서브 픽셀 위치에 이미 참조 가중치 값이 구성되었으면 당해 서브 픽셀 위치의 참조 가중치 값에 근거하여 당해 픽셀 위치의 타깃 가중치 값을 결정할 수 있다.
경우 4, 만약 당해 주변 매칭 위치가 서브 픽셀 위치이고, 당해 서브 픽셀 위치에 참조 가중치 값이 구성되지 않았으면 당해 서브 픽셀 위치의 인접 위치의 참조 가중치 값에 근거하여 당해 픽셀 위치의 타깃 가중치 값을 결정할 수 있다. 예를 들면, 인접 위치의 참조 가중치 값에 대해 위로 반올림 조작을 수행하여 당해 픽셀 위치의 타깃 가중치 값을 얻거나; 또는, 인접 위치의 참조 가중치 값에 대해 아래로 반내림 조작을 수행하여 당해 픽셀 위치의 타깃 가중치 값을 얻거나; 또는, 당해 서브 픽셀 위치의 인접 위치의 참조 가중치 값의 보간에 근거하여 당해 픽셀 위치의 타깃 가중치 값을 결정할 수 있으며, 이에 대해 한정하지 않는다.
경우 5, 주변 매칭 위치와 연관되는 복수 개의 참조 가중치 값에 근거하여 당해 픽셀 위치의 타깃 가중치 값을 결정하는 바, 예를 들면, 주변 매칭 위치가 정수 픽셀 위치 또는 서브 픽셀 위치일 경우, 주변 매칭 위치의 복수 개의 인접 위치의 참조 가중치 값을 획득한다. 만약 주변 매칭 위치에 이미 참조 가중치 값이 구성되면 주변 매칭 위치의 참조 가중치 값과 복수 개의 인접 위치의 참조 가중치 값에 근거하여 가중 연산을 수행함으로써 당해 픽셀 위치의 타깃 가중치 값을 얻고; 만약 주변 매칭 위치에 참조 가중치 값이 구성되지 않으면 복수 개의 인접 위치의 참조 가중치 값에 근거하여 가중 연산을 수행함으로써 당해 픽셀 위치의 타깃 가중치 값을 얻는다.
단계(a5), 코딩단이 당해 픽셀 위치의 타깃 가중치 값에 근거하여 당해 픽셀 위치의 관련 가중치 값을 결정한다.
예시적으로, 각 픽셀 위치에 있어서, 당해 픽셀 위치의 타깃 가중치 값과 당해 픽셀 위치의 관련 가중치 값의 합은 고정된 기설정된 수치, 즉 관련 가중치 값은 기설정된 수치와 타깃 가중치 값의 차이일 수 있다. 이에 기반하여, 기설정된 수치가 8이고, 당해 픽셀 위치의 타깃 가중치 값이 2라고 가정하면 당해 픽셀 위치의 관련 가중치 값은 6이다.
단계(a6), 코딩단이 적어도 하나의 후보 모션 정보를 포함하는 모션 정보 후보 리스트를 획득하고; 당해 모션 정보 후보 리스트에 기반하여 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득한다.
단계(a7), 현재 블록의 각 픽셀 위치에 대하여, 코딩단은 현재 블록의 제1 타깃 모션 정보에 근거하여 당해 픽셀 위치의 제1 예측값을 결정하고, 현재 블록의 제2 타깃 모션 정보에 근거하여 당해 픽셀 위치의 제2 예측값을 결정한다.
단계(a8), 코딩단은 당해 픽셀 위치의 제1 예측값, 당해 픽셀 위치의 타깃 가중치 값, 당해 픽셀 위치의 제2 예측값 및 당해 픽셀 위치의 관련 가중치 값에 근거하여 당해 픽셀 위치의 가중 예측값을 결정한다.
예를 들면, 당해 픽셀 위치의 가중 예측값은: (당해 픽셀 위치의 제1 예측값*당해 픽셀 위치의 타깃 가중치 값+당해 픽셀 위치의 제2 예측값*당해 픽셀 위치의 관련 가중치 값)/고정된 기설정된 수치일 수 있다.
단계(a9), 코딩단은 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 현재 블록의 가중 예측값을 결정한다.
실시예 3: 본 출원의 실시예는 디코딩단에 응용될 수 있는 다른 코딩 및 디코딩 방법을 제안하는 바, 당해 방법은 아래 단계를 포함한다:
단계(b1), 현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 디코딩단이 현재 블록의 가중치 예측 각도, 현재 블록의 가중치 예측 위치, 및 현재 블록의 가중치 변환율을 획득한다. 예시적으로, 디코딩단은 현재 블록에 대해 가중 예측 활성화할지 여부를 결정하되, 만약 "예"이면, 단계(b1) 및 후속 단계를 수행하고, 만약 "아니오"이면, 본 출원은 처리 방식에 대해 한정하지 않는다.
가능한 일 실시형태에서, 코딩단은 현재 블록의 특징 정보가 특정 조건을 충족시키는지 여부를 판정하는 바, 만약 "예"이면, 현재 블록에 대해 가중 예측을 활성화하는 것을 결정한다. 디코딩단도 현재 블록의 특징 정보가 특정 조건을 충족시키는지 여부를 판정하는 바, 만약 "예"이면, 현재 블록에 대해 가중 예측을 활성화하는 것을 결정하고; 만약 "아니오"이면, 현재 블록에 대해 가중 예측을 활성화하지 않는 것을 결정한다. 디코딩단이 어떻게 특징 정보에 기반하여 현재 블록이 가중 예측을 활성화하였는지 여부를 결정하는 것은 코딩단의 결정 방식과 유사한 바, 여기서 더 이상 중복하여 설명하지 않는다.
다른 가능한 일 실시형태에서, 코딩단은 현재 블록의 특징 정보에 근거하여 현재 블록이 가중 예측을 지원하는지 여부를 결정하고, 현재 블록이 가중 예측을 지원할 경우, 기타 전략을 사용하여 현재 블록에 대해 가중 예측 활성화할지 여부를 결정할 수도 있는 바, 예컨대 율-왜곡 원칙을 사용하여 현재 블록에 대해 가중 예측 활성화할지 여부를 결정한다. 현재 블록에 대해 가중 예측 활성화할지 여부를 결정한 다음, 코딩단이 현재 블록의 코딩된 비트 스트림을 발송할 경우, 당해 코딩된 비트 스트림은 가중 예측을 활성화할지 여부에 관한 신택스를 포함할 수 있으며, 당해 신택스는 현재 블록이 가중 예측을 활성화할지 여부를 나타낸다. 디코딩단은 현재 블록의 특징 정보에 근거하여 현재 블록이 가중 예측을 지원하는지 여부를 결정하는 바, 구체적인 방식은 코딩단의 결정 방식과 유사하며, 여기서 더 이상 설명하지 않는다. 현재 블록이 가중 예측을 지원할 경우, 디코딩단은 코딩된 비트 스트림에서 가중 예측을 활성화할지 여부에 관한 신택스를 해석하고, 당해 신택스에 따라 현재 블록에 대해 가중 예측 활성화할지 여부를 결정할 수도 있다.
예시적으로, 현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 디코딩단은 현재 블록의 가중치 예측 각도, 현재 블록의 가중치 예측 위치, 및 현재 블록의 가중치 변환율을 더 획득할 수 있는 바, 당해 가중치 예측 각도에 관하여, 당해 가중치 예측 위치 및 당해 가중치 변환율의 관련 설명은 단계(a1)을 참조할 수 있으며, 여기서 더 이상 설명하지 않는다.
단계(b2), 디코딩단은 현재 블록의 가중치 변환율과 가중치 변환의 시작 위치(가중치 변환율과 가중치 변환의 시작 위치는 가중치 구성 파라미터라고 할 수 있음)에 근거하여 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성한다.
예시적으로, 디코딩단은 현재 블록의 가중치 예측 각도, 현재 블록의 가중치 예측 위치 및 현재 블록의 사이즈 중 적어도 하나에 기반하여 현재 블록의 가중치 변환의 시작 위치를 결정할 수 있다. 다음, 디코딩단은 현재 블록의 가중치 변환율과 가중치 변환의 시작 위치에 근거하여 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성한다.
단계(b3), 현재 블록의 각 픽셀 위치에 대하여, 디코딩단이 현재 블록의 가중치 예측 각도에 근거하여 현재 블록 외부의 주변 위치에서 당해 픽셀 위치가 지향하는 주변 매칭 위치를 결정한다.
단계(b4), 디코딩단이 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 당해 픽셀 위치의 타깃 가중치 값을 결정한다.
단계(b5), 디코딩단이 당해 픽셀 위치의 타깃 가중치 값에 근거하여 당해 픽셀 위치의 관련 가중치 값을 결정한다.
단계(b6), 디코딩이 적어도 하나의 후보 모션 정보를 포함하는 모션 정보 후보 리스트를 획득하고; 당해 모션 정보 후보 리스트에 기반하여 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득한다.
단계(b7), 현재 블록의 각 픽셀 위치에 대하여, 디코딩단은 현재 블록의 제1 타깃 모션 정보에 근거하여 당해 픽셀 위치의 제1 예측값을 결정하고, 현재 블록의 제2 타깃 모션 정보에 근거하여 당해 픽셀 위치의 제2 예측값을 결정한다.
단계(b8), 디코딩단은 당해 픽셀 위치의 제1 예측값, 당해 픽셀 위치의 타깃 가중치 값, 당해 픽셀 위치의 제2 예측값 및 당해 픽셀 위치의 관련 가중치 값에 근거하여 당해 픽셀 위치의 가중 예측값을 결정한다.
단계(b9), 디코딩단은 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 현재 블록의 가중 예측값을 결정한다.
예시적으로, 단계(b2) 내지 단계(b8)에 대하여, 이의 구현 과정은 단계(a2) 내지 단계(a8)을 참조할 수 있는 바, 상이한 점은 단계(b2) 내지 단계(b8)은 코딩단의 처리 과정이 아니라 디코딩단의 처리 과정인 것이며, 여기서 더 이상 설명하지 않는다.
실시예 4: 도 5에 도시된 내용을 참조하면, 이는 코딩 및 디코딩 방법의 흐름 모식도이고, 당해 방법은 디코딩단(비디오 디코더라고 지칭할 수도 있음) 또는 코딩단(비디오 코더라고 지칭할 수도 있음)에 응용될 수 있으며, 당해 방법은 아래 단계를 포함할 수 있다.
단계(501), 현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 현재 블록의 가중치 예측 각도와 가중치 구성 파라미터를 획득하되, 당해 가중치 구성 파라미터는 가중치 변환율과 가중치 변환의 시작 위치를 포함한다. 가중치 변환의 시작 위치는 현재 블록의 가중치 예측 각도, 현재 블록의 가중치 예측 위치, 현재 블록의 사이즈 파라미터 중 적어도 하나에 의해 결정될 수 있다.
단계(502), 현재 블록의 가중치 구성 파라미터에 근거하여 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성한다.
단계(503), 현재 블록의 각 픽셀 위치에 대하여, 현재 블록의 가중치 예측 각도에 근거하여 현재 블록 외부의 주변 위치에서 당해 픽셀 위치가 지향하는 주변 매칭 위치를 결정하고; 당해 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 당해 픽셀 위치의 타깃 가중치 값을 결정하며, 당해 픽셀 위치의 타깃 가중치 값에 근거하여 당해 픽셀 위치의 관련 가중치 값을 결정한다.
예시적으로, 단계(501) 내지 단계(503)은 단계(301) 내지 단계(303)을 참조할 수 있으며, 여기서 더 이상 중복하여 설명하지 않는다.
단계(504), 참조 픽처 정보를 획득하고, 당해 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트를 획득하되, 당해 모션 벡터 후보 리스트는 적어도 하나의 후보 모션 벡터를 포함하고, 당해 참조 픽처 정보는 제1 참조 픽처 정보와 제2 참조 픽처 정보를 포함하며; 당해 모션 벡터 후보 리스트에 기반하여 현재 블록의 제1 타깃 모션 벡터와 제2 타깃 모션 벡터를 획득한다.
단계(505), 현재 블록의 각 픽셀 위치에 대하여, 현재 블록의 제1 타깃 모션 정보에 근거하여 당해 픽셀 위치의 제1 예측값을 결정하고, 현재 블록의 제2 타깃 모션 정보에 근거하여 당해 픽셀 위치의 제2 예측값을 결정하며; 당해 제1 예측값, 당해 타깃 가중치 값, 당해 제2 예측값 및 당해 관련 가중치 값에 근거하여 당해 픽셀 위치의 가중 예측값을 결정한다.
가능한 일 실시형태에서, 현재 블록의 당해 제1 타깃 모션 정보는 현재 블록의 당해 제1 타깃 모션 벡터 및 당해 제1 타깃 모션 벡터에 대응하는 제1 참조 픽처 정보를 포함하고, 현재 블록의 당해 제2 타깃 모션 정보는 현재 블록의 당해 제2 타깃 모션 벡터 및 당해 제2 타깃 모션 벡터에 대응하는 제2 참조 픽처 정보를 포함할 수 있다.
예시적으로, 제1 참조 픽처 정보와 제2 참조 픽처 정보는 동일할 수 있거나, 또는, 제1 참조 픽처 정보와 제2 참조 픽처 정보는 상이할 수 있다. 만약 제1 참조 픽처 정보와 제2 참조 픽처 정보가 동일하면 제1 타깃 모션 벡터가 지향하는 참조 픽처와 제2 타깃 모션 벡터가 지향하는 참조 픽처는 동일한 픽처이고, 만약 제1 참조 픽처 정보와 제2 참조 픽처 정보가 상이하면 제1 타깃 모션 벡터가 지향하는 참조 픽처와 제2 타깃 모션 벡터가 지향하는 참조 픽처는 상이한 픽처이다.
단계(506), 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 현재 블록의 가중 예측값을 결정한다.
예시적으로, 코딩 및 디코딩 방법이 코딩단에 응용될 경우, 단계(501) 내지 단계(506)의 상세한 과정에 대하여, 실시예 2를 통해 구현할 수도 있는 바, 상이한 점은: 단계(a6)에서, 코딩단이 획득한 것은 모션 벡터 후보 리스트이고, 당해 모션 벡터 후보 리스트에 기반하여 현재 블록의 제1 타깃 모션 벡터와 제2 타깃 모션 벡터를 획득하며, 제1 타깃 모션 벡터 및 제1 타깃 모션 벡터에 대응하는 제1 참조 픽처 정보에 기반하여 제1 타깃 모션 정보를 얻고, 제2 타깃 모션 벡터 및 제2 타깃 모션 벡터에 대응하는 제2 참조 픽처 정보에 기반하여 제2 타깃 모션 정보를 얻는 것인 바, 여기서 더 이상 설명하지 않는다.
예시적으로, 코딩 및 디코딩 방법이 디코딩단에 응용될 경우, 단계(501) 내지 단계(506)의 상세한 과정에 대하여, 실시예 3을 통해 구현할 수도 있는 바, 상이한 점은: 단계(b6)에서, 디코딩단이 획득한 것은 모션 벡터 후보 리스트이고, 당해 모션 벡터 후보 리스트에 기반하여 현재 블록의 제1 타깃 모션 벡터와 제2 타깃 모션 벡터를 획득하며, 제1 타깃 모션 벡터 및 제1 타깃 모션 벡터에 대응하는 제1 참조 픽처 정보에 기반하여 제1 타깃 모션 정보를 얻고, 제2 타깃 모션 벡터 및 제2 타깃 모션 벡터에 대응하는 제2 참조 픽처 정보에 기반하여 제2 타깃 모션 정보를 얻는 것인 바, 여기서 더 이상 설명하지 않는다.
이상의 기술적 해결수단으로부터 알 수 있다시피, 본 출원의 실시예에서는 가중치 값을 구성하는 효과적인 방식을 제안하여 현재 블록의 각 픽셀 위치에 합리적인 타깃 가중치 값을 구성함으로써 예측 정확성을 향상시키고, 예측 성능을 향상시키며, 코딩 성능을 향상시키고, 현재 블록의 예측값이 원본 픽셀값에 보다 근접하도록 하며, 코딩 성능을 향상시킬 수 있다.
실시예 5: 실시예 1 내지 실시예 4에서는 가중치 예측 각도에 기반하여 가중 처리를 수행해야 하는 바, 이러한 가중 처리 방식을 인터 각도 가중 예측(Angular Weighted Prediction, AWP) 모드라고 표기할 수 있는 바, 즉 현재 블록이 AWP 모드를 지원할 경우, 실시예 1 내지 실시예 4를 사용하여 현재 블록을 예측함으로써 현재 블록의 예측값을 얻을 수 있다.
실시예 1 내지 실시예 4는 가중치 예측 각도에 관한 것으로, 당해 가중치 예측 각도는 180도 이내의 임의의 각도, 또는, 360도 이내의 임의의 각도와 같은 임의의 각도일 수 있으며, 이러한 가중치 예측 각도에 대해 한정하지 않는 바, 예컨대 10도, 20도, 30도 등일 수 있다.
가능한 일 실시형태에서, 당해 가중치 예측 각도는 수평 각도이거나; 또는, 당해 가중치 예측 각도는 수직 각도이거나; 또는, 당해 가중치 예측 각도의 기울기의 절대값(가중치 예측 각도의 기울기의 절대값은 가중치 예측 각도의 tan값)은 2의 n승일 수 있으며, n은 양의 정수, 0, 음의 정수와 같은 정수일 수 있다.
예를 들면, 당해 가중치 예측 각도의 기울기의 절대값은 1(즉 2의 0승), 또는 2(즉 2의 1승), 또는 1/2(즉 2의 -1승), 또는 4(즉 2의 2승), 또는 1/4(즉 2의 -2승), 또는 8(즉 2의 3승), 또는 1/8(즉 2의 -3승) 등 일 수 있다. 예시적으로, 도 6에 도시된 내용을 참조하면, 이는 8가지 가중치 예측 각도를 도시하는 바, 이러한 가중치 예측 각도의 기울기의 절대값은 2의 n승이다.
본 출원의 실시예에서는 가중치 예측 각도에 대해 시프팅 조작을 수행할 수 있는 바, 가중치 예측 각도에 대해 시프팅 조작을 수행하는 예는 후속 실시예를 참조하면 되므로 가중치 예측 각도의 기울기의 절대값이 2의 n승일 경우, 가중치 예측 각도에 대해 시프팅 조작을 수행할 경우, 나눗셈 조작이 나타나는 것을 방지하여 시프팅을 편리하게 수행할 수 있다.
예시적으로, 상이한 블록 사이즈(즉 현재 블록의 사이즈)가 지원하는 가중치 예측 각도의 수량은 동일하거나 상이할 수 있다. 예를 들면, 블록 사이즈A는 8가지 가중치 예측 각도를 지원하고, 블록사이즈 B는 6가지 가중치 예측 각도를 지원하는 것 등이다.
실시예 6: 상기 실시예 1 내지 실시예 4에서, 코딩단/디코딩단은 현재 블록의 가중치 변환율과 현재 블록의 가중치 변환의 시작 위치에 근거하여 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성해야 한다. 가능한 일 실시형태에서는, 현재 블록 외부의 각 주변 위치에 대하여, 당해 주변 위치의 좌표값, 당해 가중치 변환의 시작 위치의 좌표값 및 당해 가중치 변환율에 근거하여 당해 주변 위치의 참조 가중치 값을 구성할 수 있다.
예시적으로, 현재 블록 외부의 각 주변 위치에 대하여, 만약 당해 주변 위치가 현재 블록 외부의 상측 한 행 또는 하측 1행의 주변 위치이면 당해 주변 위치의 좌표값은 횡좌표값일 수 있고, 가중치 변환의 시작 위치의 좌표값은 횡좌표값일 수 있다. 또는, 만약 당해 주변 위치가 현재 블록 외부의 좌측 한 열 또는 우측 1열의 주변 위치이면 당해 주변 위치의 좌표값은 종좌표값일 수 있고, 가중치 변환의 시작 위치의 좌표값은 종좌표값일 수 있다.
예시적으로, 현재 블록의 왼쪽 상단의 픽셀 위치(예컨대 왼쪽 상단의 첫 번째 픽셀 위치)를 좌표 원점으로 사용할 수 있는 바, 현재 블록의 주변 위치의 좌표값(예컨대 횡좌표값 또는 종좌표값)과 가중치 변환의 시작 위치의 좌표값(예컨대 횡좌표값 또는 종좌표값)은 좌표, 모두 당해 좌표 원점에 대한 좌표값이다. 물론, 현재 블록의 기타 픽셀 위치를 좌표 원점으로 사용할 수도 있는 바, 구현 방식은 왼쪽 상단의 픽셀 위치를 좌표 원점으로 사용하는 구현 방식과 유사하다.
가능한 일 실시형태에서, 먼저 당해 주변 위치의 좌표값과 가중치 변환의 시작 위치의 좌표값의 차이값을 결정하고, 당해 차이값과 현재 블록의 가중치 변환율의 승적을 결정한다. 만약 당해 승적이 제1 임계치(즉 참조 가중치 값의 최소치, 예컨대 0 등)보다 작으면 당해 주변 위치와 연관되는 참조 가중치 값을 제1 임계치로 결정하고; 만약 당해 승적이 제2 임계치(즉 참조 가중치 값의 최대치, 예컨대 8 등)보다 크면 당해 주변 위치와 연관되는 참조 가중치 값을 제2 임계치로 결정하며; 만약 당해 승적이 제1 임계치보다 작지 않고, 당해 승적이 제2 임계치보다 크지 않으면 당해 주변 위치와 연관되는 참조 가중치 값을 당해 승적으로 결정한다. 다른 가능한 일 실시형태에서는 당해 주변 위치의 좌표값과 가중치 변환의 시작 위치의 좌표값의 크기 관계에 근거하여 당해 주변 위치와 연관되는 참조 가중치 값을 직접 결정할 수도 있다. 예를 들면, 만약 당해 주변 위치의 좌표값이 가중치 변환의 시작 위치의 좌표값보다 작으면 당해 주변 위치와 연관되는 참조 가중치 값을 제1 임계치로 결정하고; 만약 당해 주변 위치의 좌표값이 가중치 변환의 시작 위치의 좌표값보다 작지 않으면 당해 주변 위치와 연관되는 참조 가중치 값을 제2 임계치로 결정한다. 또 예를 들면, 만약 당해 주변 위치의 좌표값이 가중치 변환의 시작 위치의 좌표값보다 작으면 당해 주변 위치와 연관되는 참조 가중치 값을 제2 임계치로 결정하고; 만약 당해 주변 위치의 좌표값이 가중치 변환의 시작 위치의 좌표값보다 작지 않으면 당해 주변 위치와 연관되는 참조 가중치 값을 제1 임계치로 결정한다.
예시적으로, 제1 임계치와 제2 임계치는 모두 경험에 따라 구성할 수 있고, 제1 임계치는 제2 임계치보다 작은 바, 이러한 제1 임계치와 제2 임계치는 모두 한정하지 않는다. 예를 들면, 제1 임계치는 미리 약정한 참조 가중치 값의 최소치, 예컨대 0이고, 제2 임계치는 미리 약정한 참조 가중치 값의 최대치, 예컨대 8이며, 물론, 0과 8도 예시일 뿐이다.
예시적으로, 도 4c에 도시된 내용을 참조하면, 모든 주변 위치를 8등분한 다음, 7개의 가중치 예측 위치를 얻을 수 있는 바, 가중치 예측 위치가 0일 경우, 주변 위치a0을 나타내고, 가중치 변환의 시작 위치의 좌표값이 주변 위치a0의 좌표값이다. 가중치 예측 위치가 1일 경우, 주변 위치a1을 나타내고, 가중치 변환의 시작 위치의 좌표값이 주변 위치a1의 좌표값이며, 이러한 방법으로 유추하면, 가중치 변환의 시작 위치의 좌표값에 관한 결정 방식은 여기서 더 이상 설명하지 않는다.
실시예 7: 실시예 1 내지 실시예 4에서, 코딩단/디코딩단은 현재 블록의 가중치 변환율과 현재 블록의 가중치 변환의 시작 위치에 근거하여 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성해야 한다. 가능한 일 실시형태에서는, 현재 블록의 가중치 예측 각도, 현재 블록의 가중치 변환율과 현재 블록의 가중치 예측 위치를 획득하고, 현재 블록의 가중치 예측 위치에 기반하여 현재 블록의 가중치 변환의 시작 위치를 결정하며, 당해 가중치 변환의 시작 위치와 당해 가중치 변환율에 기반하여 가중치 구성 파라미터를 결정하는 방식을 사용할 수 있는 바, 즉 당해 가중치 구성 파라미터는 가중치 변환의 시작 위치와 가중치 변환율을 포함한다. 다음, 당해 가중치 구성 파라미터에 근거하여 현재 블록 외부의 주변 위치의 참조 가중치 값을 결정할 수 있다.
이하 구체적인 단계와 결부하여 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성하는 과정을 설명한다.
단계(c1), 유효 수량의 참조 가중치 값을 획득한다.
예시적으로, 현재 블록 외부의 주변 위치의 수량이 유효 수량이면, 단계(c1)에서는 유효 수량의 참조 가중치 값을 획득해야 하는 바, 당해 유효 수량은 현재 블록의 사이즈 및/또는 현재 블록의 가중치 예측 각도에 기반하여 결정된 것일 수 있다. 예를 들면, ValidLength=(N+(M>>X))<<1과 같은 방식을 사용하여 당해 유효 수량을 결정하는 바, N과 M은 각각 현재 블록의 높이와 너비이고, X는 현재 블록의 가중치 예측 각도의 기울기의 절대값의 log2 로그값, 예컨대 0 또는 1이다.
가능한 일 실시형태에서, 유효 수량의 참조 가중치 값에 대하여, 단조 증가 또는 단조 감소할 수 있다. 또는 유효 수량의 참조 가중치 값에 대하여, 먼저 복수 개의 제1 참조 가중치 값을 포함한 다음, 다시 복수 개의 제2 참조 가중치 값을 포함하거나, 또는, 먼저 복수 개의 제2 참조 가중치 값을 포함한 다음, 다시 복수 개의 제1 참조 가중치 값을 포함할 수 있다. 이하 몇 개의 구체적인 경우와 결부하여 이를 설명한다.
경우 1: 유효 수량의 참조 가중치 값에 대하여, 단조 증가 또는 단조 감소할 수 있다. 예를 들면, 유효 수량의 참조 가중치 값은 [88...88765432100...00], 즉 단조 감소할 수 있다. 또 예를 들면, 유효 수량의 참조 가중치 값은 [00...00123456788...88], 즉 단조 증가할 수 있다. 물론, 상술한 내용은 단지 예시일 뿐, 이에 대해 한정하지 않는다.
예시적으로, 참조 가중치 값은 가중치 구성 파라미터에 근거하여 구성될 수 있고, 당해 가중치 구성 파라미터는 가중치 변환율과 가중치 변환의 시작 위치를 포함할 수 있으며, 가중치 변환율의 획득 방식은 후속의 실시예를 참조할 수 있는 바, 가중치 변환의 시작 위치는 경험에 따라 구성된 수치일 수도 있고 가중치 예측 위치에 의해 가중치 변환의 시작 위치를 결정할 수도 있으며, 또 가중치 예측 각도와 가중치 예측 위치에 의해 가중치 변환의 시작 위치를 결정할 수도 있으며, 이에 대해 한정하지 않는다.
유효 수량의 참조 가중치 값에 대하여, 첫 번째로부터 제일 마지막까지의 순서에 따라 단조 증가 또는 단조 감소할 수 있다. 예를 들면, 참조 가중치 값의 최대치가 M1이고, 참조 가중치 값의 최소치가 M2이며, 유효 수량의 참조 가중치 값에 대하여, 최대치 M1로부터 최소치 M2까지 단조 감소하거나; 또는, 최소치 M2로부터 최대치 M1까지 단조 증가한다. M1이 8이고 M2가 0이라고 가정하면 복수 개의 참조 가중치 값은 8로부터 0까지 단조 감소하거나; 또는 0으로부터 8까지 단조 증가할 수 있다.
예시적으로, 먼저 가중치 변환율과 가중치 변환의 시작 위치를 획득한 다음, 가중치 변환율과 가중치 변환의 시작 위치에 근거하여 복수 개의 참조 가중치 값을 결정한다. 예를 들면, y=Clip3(최소치, 최대치, a*(x-s))의 방식을 사용하여 참조 가중치 값을 결정하는 바, x는 주변 위치의 인덱스를 나타내는 바, 즉 x의 값의 범위는 1 내지 유효 수량값, 예컨대 x가 1이면, 첫 번째 주변 위치를 나타내고, y는 첫 번째 주변 위치의 참조 가중치 값을 나타내며, x가 2이면, 두 번째 주변 위치를 나타내고, y는 두 번째 주변 위치의 참조 가중치 값을 나타낸다. a는 가중치 변환율을 나타내고, s는 가중치 변환의 시작 위치를 나타낸다.
Clip3은 참조 가중치 값이 최소치와 최대치 사이에 위치하도록 한정하고, 최소치와 최대치는 모두 경험에 따라 구성될 수 있으며, 설명의 편리를 위하여, 후속 과정에서는 최소치가 0, 최대치가 8인 것을 예로 들어 설명한다.
a는 가중치 변환율을 나타내고, a는 -4, -2, -1, 1, 2, 4 등과 같은 0이 아닌 정수이며, 이 a의 값에 대해 한정하지 않는다. 만약 a의 절대값이 1이면 참조 가중치 값은 0으로부터 8까지 0, 1, 2, 3, 4, 5, 6, 7, 8을 거쳐야 하거나, 또는 참조 가중치 값은 8로부터 0까지 8, 7, 6, 5, 4, 3, 2, 1, 0을 거쳐야 한다.
s는 가중치 변환의 시작 위치를 나타내고, s는 가중치 예측 위치에 의해 결정될 수 있는 바, 예를 들면, s=f (가중치 예측 위치), 즉 s는 가중치 예측 위치와 관련되는 하나의 함수이다. 예를 들면, 현재 블록 외부의 주변 위치의 범위를 결정한 후, 주변 위치의 유효 수량을 결정하고, 모든 주변 위치를 N등분할 수 있는 바, N의 값은 4, 6, 8 등과 같이 임의로 구성할 수 있고, 가중치 예측 위치는 현재 블록 외부의 어느 주변 위치를 현재 블록의 타깃 주변 위치로 사용할 것인지를 나타낼 수 있으며, 이러한 가중치 예측 위치에 대응하는 주변 위치는 가중치 변환의 시작 위치이다. 또는, s는 가중치 예측 각도와 가중치 예측 위치에 의해 결정될 수 있는 바, 예를 들면, s=f (가중치 예측 각도, 가중치 예측 위치), 즉 s는 가중치 예측 각도 및 가중치 예측 위치와 관련되는 하나의 함수이다. 예를 들면, 가중치 예측 각도에 근거하여 현재 블록 외부의 주변 위치의 범위를 결정할 수 있고, 현재 블록 외부의 주변 위치의 범위를 결정한 후, 주변 위치의 유효 수량을 결정할 수 있으며, 모든 주변 위치를 N등분하는 바, 가중치 예측 위치는 현재 블록 외부의 어느 주변 위치를 현재 블록의 타깃 주변 위치로 사용할 것인지를 나타낼 수 있으며, 이러한 가중치 예측 위치에 대응하는 주변 위치는 가중치 변환의 시작 위치이다.
요약하면, y=Clip3(최소치, 최대치, a*(x-s))에서, 가중치 변환율a와 가중치 변환의 시작 위치 s는 모두 이미 알고 있는 값으로서, 현재 블록 외부의 각 주변 위치에 대하여, 당해 함수관계를 통해 당해 주변 위치의 참조 가중치 값을 결정할 수 있다. 예를 들면, 가중치 변환율 a가 2이고, 가중치 변환의 시작 위치 s가 2라고 가정하면 당해 함수관계는 y=2*(x-2)일 수 있고, 현재 블록 외부의 각 주변 위치 x에 대하여 참조 가중치 값 y를 얻을 수 있다.
요약하면, 현재 블록의 유효 수량의 참조 가중치 값을 얻을 수 있는 바, 이러한 참조 가중치 값은 단조 증가하거나 또는 단조 감소한다. 가능한 일 실시형태에서, 현재 블록 외부의 주변 위치의 참조 가중치 값은 타깃 영역의 참조 가중치 값, 타깃 영역의 제1 인접 영역의 참조 가중치 값, 타깃 영역의 제2 인접 영역의 참조 가중치 값을 포함한다.
예시적으로, 타깃 영역은 하나의 참조 가중치 값 또는 적어도 두 개의 참조 가중치 값을 포함한다. 예를 들면, 가중치 변환의 시작 위치에 기반하여 하나의 참조 가중치 값을 결정하고, 당해 참조 가중치 값을 타깃 영역의 참조 가중치 값으로 사용한다. 또 예를 들면, 가중치 변환의 시작 위치에 기반하여 적어도 두 개의 참조 가중치 값을 결정하고, 이 적어도 두 개의 참조 가중치 값을 타깃 영역의 참조 가중치 값으로 사용한다.
만약 타깃 영역이 적어도 두 개의 참조 가중치 값을 포함하면 타깃 영역의 적어도 두 개의 참조 가중치 값은 단조 증가하거나 또는 단조 감소한다. 단조 증가는 엄격한 단조 증가(즉 타깃 영역의 적어도 두 개의 참조 가중치 값이 엄격히 단조 증가)하는 것일 수 있고; 단조 감소는 엄격한 단조 감소(즉 타깃 영역의 적어도 두 개의 참조 가중치 값이 엄격히 단조 감소)하는 것일 수 있다. 예를 들면, 타깃 영역의 참조 가중치 값은 1로부터 7까지 단조 증가하거나, 또는, 타깃 영역의 참조 가중치 값이 7로부터 1까지 단조 감소한다.
예시적으로, 제1 인접 영역의 참조 가중치 값은 모두 제1 참조 가중치 값일 수 있고, 제2 인접 영역의 참조 가중치 값은 단조 증가할 수 있다. 예를 들면, 제1 인접 영역의 참조 가중치 값은 모두 0일 수 있고, 타깃 영역은 하나의 참조 가중치 값을 포함하며, 당해 참조 가중치 값은 1이고, 제2 인접 영역의 참조 가중치 값은 2로부터 8까지 단조 증가한다.
또는, 제1 인접 영역의 참조 가중치 값은 모두 제1 참조 가중치 값일 수 있고, 제2 인접 영역의 참조 가중치 값은 단조 감소할 수 있다. 예를 들면, 제1 인접 영역의 참조 가중치 값은 모두 8일 수 있고, 타깃 영역은 하나의 참조 가중치 값을 포함하며, 당해 참조 가중치 값은 7이고, 제2 인접 영역의 참조 가중치 값은 6으로부터 0까지 단조 감소한다.
또는, 제1 인접 영역의 참조 가중치 값은 모두 제2 참조 가중치 값이고, 제2 인접 영역의 참조 가중치 값은 모두 제3 참조 가중치 값이며, 제2 참조 가중치 값과 제3 참조 가중치 값은 상이하다. 예를 들면, 제1 인접 영역의 참조 가중치 값은 모두 0이고, 타깃 영역이 적어도 두 개의 참조 가중치 값을 포함하면 참조 가중치 값은 1로부터 7까지 단조 증가하며, 제2 인접 영역의 참조 가중치 값이 모두 8인바, 물론 제1 인접 영역의 참조 가중치 값과 제2 인접 영역의 참조 가중치 값이 상이하다.
또는, 제1 인접 영역의 참조 가중치 값은 단조 증가하거나 단조 감소하고, 제2 인접 영역의 참조 가중치 값은 단조 증가하거나 단조 감소하는 바; 예를 들면, 제1 인접 영역의 참조 가중치 값은 단조 증가하고, 제2 인접 영역의 참조 가중치 값도 단조 증가하며; 또 예를 들면, 제1 인접 영역의 참조 가중치 값은 단조 감소하고, 제2 인접 영역의 참조 가중치 값도 단조 감소한다. 예를 들면, 제1 인접 영역의 참조 가중치 값은 0으로부터 3까지 단조 증가하고, 타깃 영역은 하나의 참조 가중치 값을 포함하며, 당해 참조 가중치 값은 4이고, 제2 인접 영역의 참조 가중치 값은 5로부터 8까지 단조 증가한다.
경우 2: 유효 수량의 참조 가중치 값에 대하여, 먼저 복수 개의 제1 수치를 포함한 다음, 다시 복수 개의 제2 참조 가중치 값을 포함하거나, 또는, 먼저 복수 개의 제2 가중치 값을 포함한 다음, 다시 복수 개의 제1 참조 가중치 값을 포함할 수 있다. 예를 들면, 유효 수량의 참조 가중치 값은 [88...8800...00]이거나 또는 [00...0088...88]일 수 있다. 예시적으로, 가중치 변환의 시작 위치에 근거하여 복수 개의 참조 가중치 값을 결정할 수 있다. 예를 들면, 가중치 변환의 시작 위치는 s번째 참조 가중치 값을 나타내므로 s번째 참조 가중치 값 이전(s번째 참조 가중치 값을 포함하지 않음)의 모든 참조 가중치 값은 제1 수치(예컨대 8)이고, s번째 참조 가중치 값 다음(s번째 참조 가중치 값을 포함)의 모든 참조 가중치 값은 제2 수치(예컨대 0)이다. 또는, s번째 참조 가중치 값 이전의 모든 참조 가중치 값은 제2 참조 가중치값이고, s번째 참조 가중치 값 다음의 모든 참조 가중치 값은 제1 참조 가중치 값이다.
단계(c2), 유효 수량의 참조 가중치 값에 근거하여 현재 블록 외부의 주변 위치의 참조 가중치 값을 구성한다.
예시적으로, 현재 블록 외부의 주변 위치의 수량이 유효 수량이고, 참조 가중치 값의 수량이 유효 수량이므로 유효 수량의 참조 가중치 값을 현재 블록 외부의 주변 위치의 참조 가중치 값으로 구성할 수 있다.
예를 들면, 첫 번째 참조 가중치 값을 현재 블록 외부의 첫 번째 주변 위치의 참조 가중치 값으로 구성하고, 두 번째 참조 가중치 값을 현재 블록 외부의 두 번째 주변 위치의 참조 가중치 값으로 구성하며, 이러한 방법으로 유추한다.
요약하면, 현재 블록 외부의 주변 위치에 참조 가중치 값을 이미구성, 즉 각 주변 위치마다 모두 참조 가중치 값을 가지므로 현재 블록 외부의 주변 위치에서 픽셀 위치가 지향하는 주변 매칭 위치를 결정한 다음, 당해 주변 매칭 위치와 연관되는 참조 가중치 값, 즉 당해 픽셀 위치의 타깃 가중치 값을 결정할 수 있다.
이하 몇 개의 구체적인 응용 시나리오와 결부하여 상기 과정의 실시형태를 설명한다. 예시적으로, 후속적인 몇 개의 응용 시나리오에서, 현재 블록의 사이즈는 M*N이고, M은 현재 블록의 너비이며, N은 현재 블록의 높이라고 가정한다. X는 가중치 예측 각도의 tan값의 log2 로그값, 예컨대 0 또는 1이다. Y는 가중치 예측 위치의 인덱스 값이고, a, b, c, d는 기설정된 상수값이다. ValidLength는 유효 수량을 나타내고, FirstPos는 가중치 변환의 시작 위치를 나타내며, ReferenceWeights[i]는 i번째 주변 위치의 참조 가중치 값을 나타내고, Clip3은 참조 가중치 값이 최소치 0과 최대치 8 사이에 위치하도록 한정하며, i는 현재 블록 외부의 주변 위치의 인덱스를 나타내고, a는 가중치 변환율의 절대값을 나타낸다.
응용 시나리오 1: 현재 블록의 사이즈와 현재 블록의 가중치 예측 각도에 기반하여 유효 수량(참조 가중치의 유효 길이, 즉 ValidLength라고도 지칭함)을 결정하고, 가중치 변환의 시작 위치(즉 FirstPos)를 획득한다. 예를 들면, ValidLength=(N+(M>>X))<<1과 같은 수학식을 통해 ValidLength를 결정할 수 있고; FirstPos=(ValidLength>>1)-a+Y*((ValidLength-1)>>3)와 같은 수학식을 통해 FirstPos를 결정할 수 있다. 이 기초 상에, ReferenceWeights[i]=Clip3(0, 8, a*(i-FirstPos))와 같은 수학식을 통해 현재 블록의 각 주변 위치의 참조 가중치 값을 도출한다. I의 값의 범위는 0 내지 ValidLength -1; 또는 1 내지 ValidLength 일 수 있다. 현재 블록의 주변 위치의 참조 가중치 값ReferenceWeights[i]을 얻은 다음, SampleWeight[x][y]=ReferenceWeights[(y<<1)+((x<<1)>>X)]와 같은 수학식을 통해 현재 블록의 픽셀 위치(x, y)의 타깃 가중치 값을 도출하는 바, <<는 왼쪽으로의 시프트를 나타내고, >>는 오른쪽으로의 시프트를 나타낸다.
응용 시나리오 2: ValidLength=(N+(M>>X))<<1과 같은 수학식을 통해 ValidLengt를 결정할 수 있고; FirstPos=(ValidLength>>1)-b+Y*((ValidLength-1)>>3)-((M<<1)>>X)와 같은 수학식을 통해 FirstPos를 결정할 수 있다. 이 기초 상에, ReferenceWeights[i]=Clip3(0, 8, a*(i-FirstPos))와 같은 수학식을 통해 현재 블록의 각 주변 위치의 참조 가중치 값을 도출한다. SampleWeight[x][y]=ReferenceWeights[(y<<1)-((x<<1)>>X)]와 같은 수학식을 통해 현재 블록의 각 픽셀 위치(x, y)의 타깃 가중치 값을 도출할 수 있다.
응용 시나리오 3: ValidLength=(M+(N>>X))<<1과 같은 수학식을 통해 ValidLength를 결정할 수 있고; FirstPos=(ValidLength>>1)-c+Y*((ValidLength-1)>>3)-((N<<1)>>X)와 같은 수학식을 통해 FirstPos를 결정할 수 있다. 이 기초 상에, ReferenceWeights[i]=Clip3(0, 8, a*(i-FirstPos))와 같은 수학식을 통해 현재 블록의 각 주변 위치의 참조 가중치 값을 도출할 수 있다. SampleWeight[x][y]=ReferenceWeights[(x<<1)-((y<<1)>>X)]와 같은 수학식을 통해 현재 블록의 각 픽셀 위치(x, y)의 타깃 가중치 값을 도출할 수 있다.
응용 시나리오 4: ValidLength=(M+(N>>X))<<1과 같은 수학식을 통해 ValidLength를 결정할 수 있고; FirstPos=(ValidLength>>1)-d+Y*((ValidLength-1)>>3)과 같은 수학식을 통해 FirstPos를 결정할 수 있으며; 이 기초 상에, ReferenceWeights[i]=Clip3(0, 8, a*(i-FirstPos))와 같은 수학식을 통해 현재 블록의 각 주변 위치의 참조 가중치 값을 도출할 수 있다. SampleWeight[x][y]=ReferenceWeights[(x<<1)+((y<<1)>>X)]와 같은 수학식을 통해 현재 블록의 각 픽셀 위치(x, y)의 타깃 가중치 값을 도출할 수 있다.
응용 시나리오 5: 도 7에 도시된 내용을 참조하면, 이는 네 가지 가중치 변환율의 참조 가중치 값의 모식도를 도시한다.
가중치 변환율의 절대값이 1일 경우, 즉 가중치 변환율이 1이거나 또는 가중치 변환율이 -1일 경우, ReferenceWeights[i]=Clip3(0, 8, 1*(i-FirstPos))와 같은 수학식을 통해 현재 블록의 각 주변 위치의 참조 가중치 값을 도출할 수 있는 바, 상기 수학식은 ReferenceWeight[i]=Clip3(0, 8, i-FirstPos)와 등가일 수 있다. 이 경우, 도 7에 도시된 첫 번째 종류의 경우를 참조하면, FirstPos는 4, 즉 첫 번째부터 4번째까지의 주변 위치의 참조 가중치 값이 0, 5번째 주변 위치의 참조 가중치 값이 1, 6번째 주변 위치의 참조 가중치 값이 2일 수 있으며, 이러한 방법으로 유추한다.
가중치 변환율의 절대값이 2일 경우, 즉 가중치 변환율이 2이거나 또는 가중치 변환율이 -2일 경우, ReferenceWeights[i]=Clip3(0, 8, 2*(i-FirstPos))와 같은 수학식을 통해 현재 블록의 각 주변 위치의 참조 가중치 값을 도출하고, 상기 수학식은 ReferenceWeight[i]=Clip3(0, 8, (i-FirstPos)<<1)와 등가일 수 있다. 이 경우, 도 7에 도시된 두 번째 종류의 경우를 참조하면, FirstPos는 6, 즉 첫 번째부터 6번째까지의 주변 위치의 참조 가중치 값이 0, 7번째 주변 위치의 참조 가중치 값이 2, 8번째 주변 위치의 참조 가중치 값이 4일 수 있으며, 이러한 방법으로 유추한다.
가중치 변환율의 절대값이 4일 경우, 즉 가중치 변환율이 4거나 또는 가중치 변환율이 -4일 경우, ReferenceWeights[i]=Clip3(0, 8, 4*(i-FirstPos))와 같은 수학식을 통해 현재 블록의 각 주변 위치의 참조 가중치 값을 도출할 수 있고, 상기 수학식은 ReferenceWeight[i]=Clip3(0, 8, (i-FirstPos) <<2)와 등가일 수 있다. 이 경우, 도 7에 도시된 세 번째 종류의 경우를 참조하면, FirstPos는 7, 첫 번째부터 7번째까지의 주변 위치의 참조 가중치 값이 0, 8번째 주변 위치의 참조 가중치 값이 4, 9번째 내지 17번째 주변 위치의 참조 가중치 값이 8일 수 있으며, 이러한 방법으로 유추한다.
가중치 변환율의 절대값이 8일 경우, 즉 가중치 변환율이 8이거나 또는 가중치 변환율이 -8일 경우, ReferenceWeights[i]=Clip3(0, 8, 8*(i-FirstPos))와 같은 수학식을 통해 현재 블록의 각 주변 위치의 참조 가중치 값을 도출할 수 있고, 상기 수학식은 ReferenceWeight[i]=Clip3(0, 8, (i-FirstPos) <<3)과 등가일 수 있다. 이 경우, 도 7에 도시된 네 번째 종류의 경우를 참조하면, FirstPos는 8, 즉 첫 번째부터 8번째까지의 주변 위치의 참조 가중치 값이 0, 9번째 주변 위치의 참조 가중치 값이 9, 10번째 내지 17번째 주변 위치의 참조 가중치 값이 8일 수 있으며, 이러한 방법으로 유추한다.
요약하면, 가중치 변환율의 절대값이 1일 경우, FirstPos는 4이고, 가중치 변환율의 절대값이 2일 경우, FirstPos는 6(즉 가중치 변환율 1일 때의 FirstPos+2)이며, 가중치 변환율의 절대값이 4일 경우, FirstPos는 7(즉 가중치 변환율 1일 때의 FirstPos+3)이고, 이에 기반하여 참조 가중치 값이 4인 위치를 정렬할 수 있다.
예시적으로, 현재 블록에 있어서, 가중치 변환율 전환을 지원하는 동시에 가중치 변환율 전환을 활성화할 경우, 도 7에 도시된 4가지 가중치 변환율의 참조 가중치 값 분포 예시에서 하나를 선택하여 전환함으로써 이미지 또는 이미지의 국부 영역에 대해 가중치 변환율의 전환을 수행하여 일부 이미지 표시 시나리오에서의 이미지 표시의 점프 돌출을 약화시킬 수 있다. 예를 들어, 일부 이미지 표시 시나리오에서는 점프가 비교적 돌출되는 문제점을 해결해야 하는 바, AWP 모드의 가중치 변환율 전환은 이러한 문제점을 해결할 수 있다. 예를 들면, 혼합 이미지 콘텐츠에 일부 스크린 콘텐츠, 애니메이션, 애니메이션을 포함하는 이미지 등이 포함되고, 스크린 콘텐츠를 포함하는 특정 영역에 대해 가중치 변환율 전환을 수행하여 점프가 비교적 돌출되는 문제점을 해결한다.
상기 과정에서, ValidLength는 현재 블록의 가중치 예측 각도 및 현재 블록의 사이즈와 관련되는 바, 방안의 간략화를 위하여 일부 파라미터를 고정화하여 최적화 목적을 달성할 수 있는 바, 예를 들면, 현재 블록의 가중치 예측 각도를 고정된 파라미터 값으로 구성할 수 있고, ValidLength는 단지 현재 블록의 사이즈와 연관될 수 있다. FirstPos는 현재 블록의 가중치 예측 각도, 현재 블록의 사이즈, 현재 블록의 가중치 예측 위치와 연관되는 바, 방안의 간략화를 위하여 일부 파라미터를 고정화하여 최적화 목적을 달성할 수 있는 바, 예를 들면, 현재 블록의 가중치 예측 각도를 고정된 파라미터 값으로 구성할 수 있고, FirstPos는 단지 현재 블록의 사이즈 및 현재 블록의 가중치 예측 위치와 연관될 수 있다. 또는, 현재 블록의 가중치 예측 위치를 고정된 파라미터 값으로 구성할 수 있고, FirstPos는 단지 현재 블록의 사이즈 및 현재 블록의 가중치 예측 각도와 연관될 수 있다. 또는, 현재 블록의 가중치 예측 각도 및 현재 블록의 가중치 예측 위치를 모두 고정된 파라미터 값으로 구성할 수 있는 바, 당해 두개의 고정된 파라미터 값은 동일하거나 상이할 수 있고, FirstPos는 단지 현재 블록의 사이즈와 연관될 수 있다.
실시예 8: 실시예 1 내지 실시예 4에서, 코딩단/디코딩단은 현재 블록의 가중치 변환율과 현재 블록의 가중치 변환의 시작 위치에 근거하여 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성해야 한다. 가능한 일 실시형태에서, M와 N을 현재 블록의 너비와 높이로 표기하고, 각도 가중 예측 모드(AWP)의 가중치 어레이의 도출 방식은 아래 단계를 포함한다:
단계(d1), AwpIdx에 근거하여 stepIdx, angleIdx 및 subAngleIdx 등 파라미터를 획득한다.
예시적으로, AwpIdx는 가중치 예측 위치와 가중치 예측 각도의 인덱스 값을 표시하는 바, 7가지 가중치 예측 위치, 8가지 가중치 예측 각도가 존재한다고 가정하면 AwpIdx의 값의 범위는 0 내지 55이다. 만약 가중치 예측 위치가 -3 내지 3(4번째 가중치 예측 위치는 중심이고, 4번째 가중치 예측 위치는 0인 것을 나타냄)이고, 가중치 예측 각도의 인덱스가 0 내지 7이면 AwpIdx의 56개의 인덱스 값에 대응하는 가중치 예측 위치와 가중치 예측 각도는 표 1에 도시된 내용을 참조할 수 있다.
표 1
Figure pct00001
예시적으로, stepIdx는 가중치 예측 위치(즉 가중치 예측 위치의 인덱스 값)를 나타내고, 가중치 예측 위치의 범위는 -3 내지 3일 수 있다. 예를 들면, 첫 번째 가중치 예측 위치에 대하여, 가중치 예측 위치는 -3이고, 두 번째 가중치 예측 위치에 대하여, 가중치 예측 위치는 -2이며, 이러한 방법으로 유추하면, 7번째 가중치 예측 위치에 대하여, 가중치 예측 위치는 3이다.
angleIdx는 가중치 예측 각도의 기울기의 절대값의 log2 로그값(예컨대 0, 또는 1, 또는 큰 상수)를 나타내고, subAngleIdx는 가중치 예측 각도가 위치하는 각도 파티션을 나타낸다. 도 8a에 도시된 내용을 참조하면, 이는 8가지 가중치 예측 각도를 나타내는 바, 가중치 예측 각도 0의 angleIdx는 가중치 예측 각도 0의 기울기의 절대값의 log2 로그값이고, 가중치 예측 각도 1의 angleIdx는 가중치 예측 각도 1의 기울기의 절대값의 log2 로그값이며, 이러한 방법으로 유추하면, 가중치 예측 각도 7의 angleIdx는 가중치 예측 각도 7의 기울기의 절대값의 log2 로그값이다. 가중치 예측 각도 0과 가중치 예측 각도 1은 각도 파티션0에 위치하고, 가중치 예측 각도 2와 가중치 예측 각도 3은 각도 파티션 1에 위치하며, 가중치 예측 각도 4와 가중치 예측 각도 5는 각도 파티션 2에 위치하고, 가중치 예측 각도 6과 가중치 예측 각도 7은 각도 파티션 3에 위치한다.
예시적으로, stepIdx=(AwpIdx>>3)-3과 같은 수학식을 이용하여 stepIdx를 결정할 수 있다.
예시적으로, modAngNum=AwpIdx % 8과 같은 수학식에 근거하여 modAngNum(각도 번호)을 결정할 수 있고; modAngNum에 기반하여, 만약 modAngNum이 2이면 angleIdx=7; 만약 modAngNum이 6이면 angleIdx=8; 그렇지 않으면 angleIdx=modAngNum % 2와 같은 방식을 사용하여 angleIdx를 결정할 수 있다.
예시적으로, subAngleIdx=modAngNum>>1과 같은 수학식을 이용하여 subAngleIdx를 결정할 수 있다.
요약하면, 코딩단은 현재 블록의 가중치 예측 각도와 현재 블록의 가중치 예측 위치를 결정한 후, 당해 가중치 예측 각도와 당해 가중치 예측 위치에 기반하여 AwpIdx의 값을 결정할 수 있으며, 표 1에 도시된 내용을 참조한다. 코딩단은 디코딩단에 코딩된 비트 스트림을 송신할 경우, 당해 코딩된 비트 스트림은 AwpIdx의 값을 휴대할 수 있고, 이에 기반하여, 디코딩단은 AwpIdx의 값을 얻을 수 있으며, AwpIdx에 근거하여 stepIdx, angleIdx 및 subAngleIdx를 획득할 수 있다.
예시적으로, angleIdx 및 subAngleIdx는 하나의 가중치 예측 각도를 유일하게 결정할 수 있고, 표 2에 도시된 내용을 참조할 수 있으며, 물론, 기타 방식을 사용하여 가중치 예측 각도를 결정할 수도 있는 바, 예를 들면, 파티션 번호를 변경하는 등이다.
표 2
Figure pct00002
단계(d2), stepIdx, angleIdx 및 subAngleIdx에 근거하여 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성한다.
경우 1, 만약 subAngleIdx가 0, 즉 가중치 예측 각도가 각도 파티션0에 위치하면, 예를 들어, 가중치 예측 각도가 가중치 예측 각도 0 또는 가중치 예측 각도 1이면 FirstPos=(ValidLength_H>>1)-6+DeltaPos_H와 같은 수학식을 이용하여 가중치 변환의 시작 위치 FirstPos를 결정할 수 있다. 다음, ReferenceWeights[x]=Clip3(0, 8, x-FirstPos)와 같은 수학식을 이용하여 현재 블록 외부의 주변 위치의 참조 가중치 값을 결정하는 바, 당해 수학식에서는 참조 가중치 값의 최소치가 0이고, 참조 가중치 값의 최대치가 8이며, 가중치 변환율이 1인 것을 예로 들어 설명하는 바, 다시 말하면 상기 수학식은 ReferenceWeights[x]=Clip3(최소치, 최대치, a*(x-FirstPos))와 등가일 수 있다. x는 현재 블록 외부의 주변 위치의 인덱스일 수 있고, x의 값의 범위는 0 내지 ValidLength_H-1이며, a는 가중치 변환율을 나타낸다.
상기 수학식에서, ValidLength_H는 현재 블록 외부의 주변 위치의 수량(즉 유효 수량, 유효 길이라고도 지칭할 수 있음)을 나타낼 수 있고, subAngleIdx가 0일 경우, 가중치 예측 각도가 지향하는 현재 블록 외부의 주변 위치는 좌측 한 열의 주변 위치일 수 있으므로 유효 수량을 ValidLength_H로 표기할 수 있다. 예시적으로, ValidLength_H=(N+(M>>angleIdx))<<1과 같은 수학식을 이용하여 유효 수량 ValidLength_H를 결정할 수 있다. 여기서 왼쪽으로 한 자리 시프트하는 것은 수학식이 1/2-pel 정밀도를 사용하기 때문인 바, 만약 1-pel 정밀도이면 ValidLength_H=(N+(M>>angleIdx))이고; 만약 1/4-pel 정밀도이면 ValidLength_H=(N+(M>>angleIdx))<<2이며; 만약 2-pel 정밀도이면 ValidLength_H=(N+(M>>angleIdx))>>1이고, 기타 픽셀 정밀도는 이러한 방법으로 유추하는 바, 여기서 더 이상 설명하지 않는다. 아래의 수학식에서 관련된 부분의 >> 1조작은 모두 픽셀 정밀도의 상이함으로 인하여 변화될 수 있다.
상기 수학식에서, DeltaPos_H는 위치 변화량 파라미터(즉 하나의 중간 파라미터)를 나타내고, subAngleIdx가 0일 경우, 가중치 예측 각도가 지향하는 현재 블록 외부의 주변 위치는 현재 블록 외부의 좌측 한 열의 주변 위치이므로 위치 변화량 파라미터를 DeltaPos_H로 표기할 수 있다. 예시적으로, DeltaPos_H=stepIdx*((ValidLength_H>>3)-1)과 같은 수학식을 이용하여 DeltaPos_H를 결정할 수 있다.
경우 2, 만약 subAngleIdx가 1, 즉 가중치 예측 각도가 각도 파티션 1에 위치하면, 예를 들어, 가중치 예측 각도가 가중치 예측 각도 2 또는 가중치 예측 각도 3이면 FirstPos=(ValidLength_H>>1)-4+DeltaPos_H-((M<<1)>>angleIdx)와 같은 수학식을 이용하여 가중치 변환의 시작 위치FirstPos를 결정할 수 있다. 다음, ReferenceWeights[x]=Clip3(0, 8, a*(x-FirstPos))와 같은 수학식을 이용하여 현재 블록 외부의 주변 위치의 참조 가중치 값을 결정할 수 있는 바, 당해 수학식에서는 참조 가중치 값의 최소치가 0이고, 참조 가중치 값의 최대치가 8이며, 가중치 변환율이 a인 것을 예로 들어 설명한다. x는 현재 블록 외부의 주변 위치의 인덱스일 수 있고, x의 값의 범위는 0 내지 ValidLength_H-1이다.
상기 수학식에서, ValidLength_H와 DeltaPos_H는 경우 1을 참조할 수 있는 바, 여기서 더 이상 설명하지 않는다.
경우 3, 만약 subAngleIdx가 2, 즉 가중치 예측 각도가 각도 파티션 2에 위치하면, 예를 들어, 가중치 예측 각도가 가중치 예측 각도 4 또는 가중치 예측 각도 5이면 FirstPos=(ValidLength_W>>1)-4+DeltaPos_W-((N<<1)>>angleIdx)와 같은 수학식을 이용하여 가중치 변환의 시작 위치FirstPos를 결정한다. 다음, ReferenceWeights[x]=Clip3(0, 8, a*(x-FirstPos))와 같은 수학식을 이용하여 현재 블록 외부의 주변 위치의 참조 가중치 값을 결정하는 바, 당해 수학식에서는 참조 가중치 값의 최소치가 0이고, 참조 가중치 값의 최대치가 8이며, 가중치 변환율이 a인 것을 예로 들어 설명한다. x는 현재 블록 외부의 주변 위치의 인덱스일 수 있고, x의 값의 범위는 0 내지 ValidLength_W-1일 수 있다.
상기 수학식에서, ValidLength_W는 현재 블록 외부의 주변 위치의 수량(즉 유효 수량, 유효 길이라고도 지칭할 수 있음)을 나타내고, subAngleIdx가 2일 경우, 가중치 예측 각도가 지향하는 현재 블록 외부의 주변 위치는 상측 한 행의 주변 위치일 수 있으므로 유효 수량을 ValidLength_W로 표기한다. 예시적으로, ValidLength_W=(M+(N>>angleIdx))<<1와 같은 수학식을 이용하여 유효 수량ValidLength_W를 결정할 수 있다.
상기 수학식에서, DeltaPos_W는 위치 변화량 파라미터(즉 하나의 중간 파라미터)를 나타내고, subAngleIdx가 2일 경우, 가중치 예측 각도가 지향하는 현재 블록 외부의 주변 위치는 현재 블록 외부의 상측 한 행의 주변 위치일 수 있으므로 위치 변화량 파라미터를 DeltaPos_W로 표기할 수 있다. 예시적으로, DeltaPos_W=stepIdx*((ValidLength_W>>3)-1)과 같은 수학식을 이용하여 DeltaPos_W를 결정할 수 있다.
경우 4, 만약 subAngleIdx가 3, 즉 가중치 예측 각도가 각도 파티션 3에 위치하면, 예를 들어, 가중치 예측 각도가 가중치 예측 각도 6 또는 가중치 예측 각도 7이면 FirstPos=(ValidLength_W>>1)-6+DeltaPos_W와 같은 수학식을 이용하여 가중치 변환의 시작 위치 FirstPos를 결정할 수 있다. 다음, ReferenceWeights[x]=Clip3(0, 8, a*(x-FirstPos))와 같은 수학식을 이용하여 현재 블록 외부의 주변 위치의 참조 가중치 값을 결정할 수 있는 바, 당해 수학식에서는 참조 가중치 값의 최소치가 0이고, 참조 가중치 값의 최대치가 8이며, 가중치 변환율이 a인 것을 예로 들어 설명한다. x는 현재 블록 외부의 주변 위치의 인덱스일 수 있고, x의 값의 범위는 0 내지 ValidLength_W-1일 수 있다.
상기 수학식에서, ValidLength_W와 DeltaPos_W는 경우 3을 참조할 수 있는 바, 여기서 더 이상 설명하지 않는다.
요약하면, subAngleIdx에 근거하여 어느 경우를 사용하여 처리할 것인지 결정할 수 있는 바, 예를 들면, 경우 1과 경우 2에서는, angleIdx와 stepIdx에 근거하여 ValidLength_H와 DeltaPos_H를 결정할 수 있고, ValidLength_H와 DeltaPos_H에 근거하여 FirstPos를 결정할 수 있으며, 나아가 FirstPos에 근거하여 참조 가중치 값을 구성할 수 있다. 경우 3과 경우 4에서는 angleIdx와 stepIdx에 근거하여 ValidLength_W와 DeltaPos_W를 결정하고, ValidLength_W와 DeltaPos_W에 근거하여 FirstPos를 결정할 수 있으며, 나아가 FirstPos에 근거하여 참조 가중치 값을 구성할 수 있다.
상기 각 경우 중 수학식의 구별점은, 현재 블록의 왼쪽 상단을 좌표 원점으로 사용할 경우, 참조 가중치 값 ReferenceWeights[x]의 시작 위치에 변화가 발생하는 것이다. 예를 들면, 도 8b에 도시된 내용을 참조하면, 이는 각도 파티션 2와 각도 파티션 3의 예시를 도시하는 바, 1/2-pel 정밀도일 경우, 참조 가중치 값 ReferenceWeights[x]의 시작 위치는 (높이<<1)>>angleIdx, 즉 수학식 중의 오프셋 "-((N<<1)>>angleIdx)"이다. 각도 파티션0과 각도 파티션 1의 구현은 유사하고, 단지 수학식 중의 오프셋이 "-((M<<1)>>angleIdx)"인 바, 즉 높이를 너비로 변화시키면 된다.
단계(d3), angleIdx와 참조 가중치 값 ReferenceWeights[x]에 근거하여 픽셀 위치의 휘도 가중치 값을 획득한다.
경우 1, 만약 subAngleIdx가 0이면AwpWeightArrayY[x][y]=ReferenceWeights[(y<<1)+((x<<1)>>angleIdx)]와 같은 수학식을 이용하여 픽셀 위치(x, y)의 휘도 가중치 값을 결정할 수 있는 바, (y<<1)+((x<<1)>>angleIdx)는 픽셀 위치(x, y)가 지향하는 주변 위치를 나타내고, ReferenceWeights[(y<<1)+((x<<1)>>angleIdx)]는 당해 주변 위치의 참조 가중치 값을 나타낸다. x의 값의 범위는 0 내지 M-1이고, y의 값의 범위는 0 내지 N-1이다.
경우 2, 만약 subAngleIdx가 1이면, AwpWeightArrayY[x][y]=ReferenceWeights[(y<<1)-((x<<1)>>angleIdx)]와 같은 수학식을 이용하여 픽셀 위치(x, y)의 휘도 가중치 값을 결정할 수 있는 바, (y<<1)-((x<<1)>>angleIdx)는 픽셀 위치(x, y)가 지향하는 주변 위치를 나타내고, ReferenceWeights[(y<<1)-((x<<1)>>angleIdx)]는 당해 주변 위치의 참조 가중치 값을 나타낸다. x의 값의 범위는 0 내지 M-1이고; y의 값의 범위는 0 내지 N-1이다.
경우 3, 만약 subAngleIdx가 2이면 AwpWeightArrayY[x][y]=ReferenceWeights[(x<<1)-((y<<1)>>angleIdx)]와 같은 수학식을 이용하여 픽셀 위치(x, y)의 휘도 가중치 값을 결정할 수 있는 바, (x<<1)-((y<<1)>>angleIdx)는 픽셀 위치(x, y)가 지향하는 주변 위치를 나타내고, ReferenceWeights[(x<<1)-((y<<1)>>angleIdx)]는 당해 주변 위치의 참조 가중치 값을 나타낸다. x의 값의 범위는 0 내지 M-1이고; y의 값의 범위는 0 내지 N -1이다.
경우 4, 만약 subAngleIdx가 3이면 AwpWeightArrayY[x][y]=ReferenceWeights[(x<<1)+((y<<1)>>angleIdx)]와 같은 수학식을 이용하여 픽셀 위치(x, y)의 휘도 가중치 값을 결정할 수 있는 바, (x<<1)+((y<<1)>>angleIdx)는 픽셀 위치(x, y)가 지향하는 주변 위치를 나타내고, ReferenceWeights[(x<<1)+((y<<1)>>angleIdx)]는 당해 주변 위치의 참조 가중치 값을 나타낸다. x의 값의 범위는 0 내지 M-1이고; y의 값의 범위는 0 내지 N -1이다.
상기 단계(d2)와 단계(d3)은 하나의 단계로 연합될 수 있는 바, 즉 단계(d2)(stepIdx, angleIdx 및 subAngleIdx에 근거하여 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성)와 단계(d3)(angleIdx와 참조 가중치 값 ReferenceWeights[x]에 근거하여 휘도 가중치 값을 획득)을, stepIdx, angleIdx 및 subAngleIdx에 근거하여 픽셀 위치의 휘도 가중치 값을 획득, 즉 주변 매칭 위치의 좌표값과 가중치 변환 시작 위치의 좌표값에 근거하여 결정하는 단계로 연합할 수 있다.
경우 1을 예로 들면: 만약 subAngleIdx가 0, 즉 가중치 예측 각도가 각도 파티션0에 위치하면, 예컨대 가중치 예측 각도가 가중치 예측 각도 0 또는 가중치 예측 각도 1이면 FirstPos=(ValidLength_H>>1)-6+DeltaPos_H와 같은 수학식을 이용하여 가중치 변환의 시작 위치FirstPos를 결정한다. 다음, AwpWeightArrayY[x][y]=Clip3(0, 8, (y<<1)+((x<<1)>>angleIdx)-FirstPos)와 같은 수학식을 이용하여 픽셀 위치(x, y)의 휘도 가중치 값을 결정하는 바: (y<<1)+((x<<1)>>angleIdx)는 픽셀 위치(x, y)가 지향하는 주변 매칭 위치를 나타낸다.
단계(d4), 픽셀 위치의 휘도 가중치 값에 근거하여 당해 픽셀 위치의 색도 가중치 값을 획득하되, 당해 픽셀 위치의 휘도 가중치 값과 당해 픽셀 위치의 색도 가중치 값은 당해 픽셀 위치의 타깃 가중치 값을 조성할 수 있다.
예를 들면, 만약 색도 해상도의 포맷이 4:2:0이면 AwpWeightArrayUV[x][y]=AwpWeightArrayY[x<<1][y<<1]와 같은 수학식을 사용하여 픽셀 위치(x, y)의 색도 가중치 값을 결정한다. 또 예를 들면, 만약 색도 해상도의 포맷이 4:4:4이면, AwpWeightArrayUV[x][y]=AwpWeightArrayY[x][y]와 같은 수학식을 이용하여 픽셀 위치(x, y)의 색도 가중치 값을 결정한다. 여기서, x의 값의 범위는 0 내지 M/2-1이고; y의 값의 범위는 0 내지 N/2-1이다.
단계(d4)의 다른 한 가지 구현 방식은: 휘도 가중치 값에 근거하여 색도 가중치 값을 획득하는 것이 아니라 angleIdx와 참조 가중치 값ReferenceWeights[x]에 근거하여 픽셀 위치의 색도 가중치 값을 획득하는 것이다. 예를 들면, 만약 색도 해상도의 포맷이 4:2:0이면 angleIdx와 참조 가중치 값ReferenceWeights[x]에 근거하여 픽셀 위치의 색도 가중치 값을 획득한다.
예를 들면, 만약 subAngleIdx가 0이면 AwpWeightArrayUV[x][y]=ReferenceWeights[(y<<2)+((x<<2)>>angleIdx)]와 같은 수학식을 사용하여 픽셀 위치(x, y)의 색도 가중치 값을 결정한다.
예를 들면, 만약 subAngleIdx가 1이면 AwpWeightArrayUV[x][y]=ReferenceWeights[(y<<2)-((x<<2)>>angleIdx)]와 같은 수학식을 사용하여 픽셀 위치(x, y)의 색도 가중치 값을 결정한다.
예를 들면, 만약 subAngleIdx가 2이면 AwpWeightArrayUV[x][y]=ReferenceWeights[(x<<2)-((y<<2)>>angleIdx)]와 같은 수학식을 사용하여 픽셀 위치(x, y)의 색도 가중치 값을 결정한다.
예를 들면, 만약 subAngleIdx가 3이면 AwpWeightArrayUV[x][y]=ReferenceWeights[(x<<2)+((y<<2)>>angleIdx)]와 같은 수학식을 사용하여 픽셀 위치(x, y)의 색도 가중치 값을 결정한다.
상기 각 수학식에서, x의 값의 범위는 0 내지 M-1이고, y의 값의 범위는 0 내지 N-1이다.
단계(d3)와 단계(d4)에서, 각 경우에서의 수학식의 구별점은, 도 8c에 도시된 내용을 참조하면, 이는 각도 파티션 2와 각도 파티션 3의 예시를 도시한다. 현재 블록의 왼쪽 상단을 좌표 원점으로 사용할 경우, (x, y)의 주변 매칭 위치의 각도 파티션 2에서의 계산 수학식은 x-y>>angleIdx일 수 있고, (x, y)의 주변 매칭 위치의 각도 파티션 3에서의 계산 수학식은 x+y>>angleIdx일 수 있다. 1/2-pel 정밀도일 경우, (x, y)의 주변 매칭 위치의 각도 파티션 2에서의 계산 수학식은 (x<<1)-(y<<1)>>angleIdx일 수 있고, (x, y)의 주변 매칭 위치의 각도 파티션 3에서의 계산 수학식은 (x<<1)+(y<<1)>>angleIdx일 수 있다. 각도 파티션0과 각도 파티션 1의 구현은 유사한 바, x, y의 위치를 교환하기만 하면 된다.
실시예 9: 실시예 1 내지 실시예 4에서, 코딩단/디코딩단은 현재 블록의 가중치 변환율을 획득해야 하는 바, 만약 현재 블록이 가중치 변환율 전환 모드를 지원하면, 현재 블록의 가중치 변환율 지시정보를 획득하고, 당해 가중치 변환율 지시정보에 근거하여 현재 블록의 가중치 변환율을 결정하는 방식을 사용하여 현재 블록의 가중치 변환율을 획득한다. 예시적으로, 만약 당해 가중치 변환율 지시정보가 제1 지시정보이면 현재 블록의 가중치 변환율은 제1 가중치 변환율이고; 만약 가중치 변환율 지시정보가 제2 지시정보이면 현재 블록의 가중치 변환율은 제2 가중치 변환율이다. 만약 현재 블록이 가중치 변환율 전환 모드를 지원하지 않으면 기설정된 가중치 변환율을 현재 블록의 가중치 변환율로 결정한다.
요약하면, 만약 현재 블록이 가중치 변환율 전환 모드를 지원하면 현재 블록의 가중치 변환율은 제1 가중치 변환율 또는 제2 가중치 변환율일 수 있고, 제1 가중치 변환율과 제2 가중치 변환율이 상이한 바, 즉, 현재 블록의 가중치 변환율은 변화될 수 있어 통일된 하나의 가중치 변환율을 사용하는 것이 아니라 가중치 변환율을 적응적으로 전환할 수 있다.
예시적으로, 만약 스위칭 제어 정보가 현재 블록이 가중치 변환율 전환 모드를 사용하는 것을 허용하면 현재 블록은 가중치 변환율 전환 모드를 지원하고, 만약 스위칭 제어 정보가 현재 블록이 가중치 변환율 전환 모드를 사용하는 것을 허용하지 않으면 현재 블록은 가중치 변환율 전환 모드를 지원하지 않는다. 당해 스위칭 제어 정보는 시퀀스 레벨 스위칭 제어 정보, 픽처 레벨 스위칭 제어 정보, Slice 레벨 스위칭 제어 정보, Tile 레벨 스위칭 제어 정보, Patch 레벨 스위칭 제어 정보, CTU(Coding Tee Unit, 코딩 트리 유닛) 레벨 스위칭 제어 정보, LCU(Largest Coding Unit, 최대 코딩 유닛) 레벨 스위칭 제어 정보, 블록 레벨 스위칭 제어 정보, CU(Coding Unit, 코딩 유닛) 레벨 스위칭 제어 정보, PU(Prediction Unit, 예측 유닛) 레벨 스위칭 제어 정보 등을 포함할 수 있으나 이에 한정되지 않고, 본 명세서는 이에 대해 한정하지 않는다.
코딩단에 있어서, 스위칭 제어 정보를 인지할 수 있고, 스위칭 제어 정보가 현재 블록이 가중치 변환율 전환 모드 사용을 허용하는지 여부를 인지할 수 있으며, 이어서 현재 블록이 가중치 변환율 전환 모드를 지원하는지 여부를 결정할 수 있다. 코딩단은 스위칭 제어 정보를 비트 스트림에 코딩하여 디코딩단이 비트 스트림에서 스위칭 제어 정보를 해석할 수 있도록 하고, 스위칭 제어 정보가 현재 블록이 가중치 변환율 전환 모드 사용을 허용하는지 여부를 인지할 수 있으며, 이어서 현재 블록이 가중치 변환율 전환 모드를 지원하는지 여부를 결정할 수 있다. 코딩단은 스위칭 제어 정보를 비트 스트림에 코딩하는 것이 아니라 디코딩단이 스위칭 제어 정보를 암시적으로 유도(derive)할 수도 있고, 스위칭 제어 정보가 현재 블록이 가중치 변환율 전환 모드 사용을 허용하는지 여부를 인지할 수 있으며, 이어서 현재 블록이 가중치 변환율 전환 모드를 지원하는지 여부를 결정할 수 있다.
시퀀스 레벨 스위칭 제어 정보를 예로 들면, 시퀀스 레벨 스위칭 제어 정보는 awp_adptive_flag(인터 각도 가중 예측 적응 플래그 비트)일 수 있는 바, 만약 awp_adptive_flag가 제1 값이면 시퀀스 레벨 스위칭 제어 정보가 현재 시퀀스가 가중치 변환율 전환 모드를 사용하는 것을 허용하여 현재 블록이 가중치 변환율 전환 모드를 사용하는 것을 허용함을 나타내고, 만약 awp_adptive_flag가 제2 값이면 시퀀스 레벨 스위칭 제어 정보가 현재 시퀀스가 가중치 변환율 전환 모드를 사용하는 것을 허용하지 않아 현재 블록이 가중치 변환율 전환 모드를 사용하는 것을 허용하지 않음을 나타낸다. 예시적으로, 제1 값은 1이고, 제2 값은 0이거나, 또는, 제1 값은 0이고, 제2 값은 1이다. 물론, 상술한 내용은 단지 제1 값과 제2 값의 예시일 뿐, 이에 대해 한정하지 않는다. 기타 유형의 스위칭 제어 정보에 있어서, 구현 과정이 시퀀스 레벨 스위칭 제어 정보와 유사하며, 여기서 더 이상 설명하지 않는다.
가능한 일 실시형태에서, 현재 블록의 가중치 변환율 지시정보는 현재 블록에 대응하는 SCC(Screen Content Coding, 스크린 콘텐츠 코딩) 식별자일 수 있고, 제1 지시정보는 현재 블록이 스크린 콘텐츠 코딩에 속하는 것을 지시하며, 제2 지시정보는 현재 블록이 비 스크린 콘텐츠 코딩에 속하는 것을 지시한다. 이 기초 상에, 현재 블록에 대응하는 SCC 식별자를 획득하고, 당해 SCC 식별자에 근거하여 현재 블록의 가중치 변환율을 결정할 수 있다. 예를 들면, 만약 당해 SCC 식별자가 현재 블록이 스크린 콘텐츠 코딩에 속하는 것을 지시하면 현재 블록의 가중치 변환율은 제1 가중치 변환율이고; 만약 당해 SCC 식별자가 현재 블록이 비 스크린 콘텐츠 코딩에 속하는 것을 지시하면 현재 블록의 가중치 변환율은 제2 가중치 변환율이다.
예시적으로, 제1 가중치 변환율의 절대값은 제2 가중치 변환율의 절대값보다 클 수 있다. 예를 들면, 제1 가중치 변환율의 절대값은 4일 수 있고, 제2 가중치 변환율의 절대값은 1 또는 2일 수 있다. 또 예를 들면, 제1 가중치 변환율의 절대값은 2일 수 있고, 제2 가중치 변환율의 절대값은 1일 수 있다. 또 예를 들면, 제1 가중치 변환율의 절대값은 8일 수 있고, 제2 가중치 변환율의 절대값은 1 또는 2 또는 4일 수 있다. 또 예를 들면, 제1 가중치 변환율의 절대값은 8 또는 4일 수 있고, 제2 가중치 변환율의 절대값은 1 또는 2일 수 있다. 물론, 상술한 내용은 몇 개의 예시일 뿐, 이에 대해 한정하지 않는 바, 제1 가중치 변환율의 절대값이 제2 가중치 변환율의 절대값보다 크기만 하면 된다.
예시적으로, SCC 식별자는 시퀀스 레벨 SCC 식별자, 픽처 레벨 SCC 식별자, Slice 레벨 SCC 식별자, Tile 레벨 SCC 식별자, Patch 레벨 SCC 식별자, CTU 레벨 SCC 식별자, LCU 레벨 SCC 식별자, 블록 레벨 SCC 식별자, CU 레벨 SCC 식별자, PU 레벨 SCC 식별자 등을 포함할 수 있으나 이에 한정되지 않고, 본 명세서는 이에 대해 한정하지 않는다. 예를 들면, 현재 블록에 대응하는 시퀀스 레벨 SCC 식별자를 현재 블록에 대응하는 SCC 식별자로 결정하거나, 또는 현재 블록에 대응하는 픽처 레벨 SCC 식별자를 현재 블록에 대응하는 SCC 식별자로 결정할 수 있으며, 이러한 방법으로 유추하면, 현재 블록에 대응하는 SCC 식별자를 획득할 수만 있으면 된다.
예시적으로, 코딩단에 있어서, 현재 블록이 스크린 콘텐츠 코딩에 속하는지 아니면 비 스크린 콘텐츠 코딩에 속하는지를 결정할 수 있다. 만약 현재 블록이 스크린 콘텐츠 코딩에 속하면 코딩단은 현재 블록의 가중치 변환율을 제1 가중치 변환율로 결정한다. 만약 현재 블록이 비 스크린 콘텐츠 코딩에 속하면 코딩단은 현재 블록의 가중치 변환율을 제2 가중치 변환율로 결정한다. 또는, 코딩단에 있어서, 현재 블록에 대응하는 SCC 식별자를 획득할 수 있는 바, 만약 당해 SCC 식별자가 현재 블록이 스크린 콘텐츠 코딩에 속하는 것을 지시하면 코딩단은 현재 블록의 가중치 변환율을 제1 가중치 변환율로 결정한다. 만약 당해 SCC 식별자가 현재 블록이 비 스크린 콘텐츠 코딩에 속하는 것을 지시하면 코딩단은 현재 블록의 가중치 변환율을 제2 가중치 변환율로 결정한다.
코딩단은 SCC 식별자(예컨대 시퀀스 레벨 SCC 식별자, 픽처 레벨 SCC 식별자, Slice 레벨 SCC 식별자 등)를 비트 스트림에 코딩하여 디코딩단이 비트 스트림에서 당해 SCC 식별자를 해석하고, 당해 SCC 식별자를 현재 블록에 대응하는 SCC 식별자로 결정할 수 있는 바, 예를 들면, 현재 블록에 대응하는 시퀀스 레벨 SCC 식별자를 현재 블록에 대응하는 SCC 식별자로 결정할 수 있다. 요약하면, 디코딩단은 현재 블록에 대응하는 SCC 식별자를 인지할 수 있는 바, 만약 당해 SCC 식별자가 현재 블록이 스크린 콘텐츠 코딩에 속하는 것을 지시하면 디코딩단은 현재 블록의 가중치 변환율을 제1 가중치 변환율로 결정한다. 만약 당해 SCC 식별자가 현재 블록이 비 스크린 콘텐츠 코딩에 속하는 것을 지시하면 디코딩단은 현재 블록의 가중치 변환율을 제2 가중치 변환율로 결정한다. 예를 들면, 만약 SCC 식별자가 제1 값이면 현재 블록이 스크린 콘텐츠 코딩에 속하는 것을 지시하고, 만약 SCC 식별자가 제2 값이면 현재 블록이 비 스크린 콘텐츠 코딩에 속하는 것을 지시한다. 제1 값은 1이고, 제2 값은 0이거나, 또는, 제1 값은 0이고, 제2 값은 1이다. 물론, 상술한 내용은 단지 제1 값과 제2 값의 예시일 뿐, 이에 대해 한정하지 않는다.
코딩단은 SCC 식별자를 비트 스트림에 코딩하지 않고, 디코딩단과 일치한 정보를 이용하여 SCC 식별자를 암시적으로 유도할 수 있는 바, 이때 디코딩단도 SCC 식별자를 암시적으로 유도할 수 있고, 당해 SCC 식별자를 현재 블록에 대응하는 SCC 식별자로 결정할 수 있다. 예를 들면, 만약 연속적인 복수 개의 픽처가 모두 스크린 콘텐츠 코딩이면 현재 슬라이스가 스크린 콘텐츠 코딩인 것으로 유도하므로 디코딩단은 픽처 레벨 SCC 식별자를 암시적으로 유도하고, 당해 SCC 식별자를 현재 블록에 대응하는 SCC 식별자로 결정하며, 당해 SCC 식별자는 현재 블록이 스크린 콘텐츠 코딩에 속하는 것을 지시한다. 예를 들면, 만약 연속적인 복수 개의 픽처가 모두 비 스크린 콘텐츠 코딩이면 현재 슬라이스를 비 스크린 콘텐츠 코딩으로 유도하므로 디코딩단은 픽처 레벨 SCC 식별자를 암시적으로 유도하고, 당해 SCC 식별자는 현재 블록이 비 스크린 콘텐츠 코딩에 속하는 것을 지시한다. 예를 들면, 만약 IBC 모드 비율이 일정한 백분율보다 작으면 다음 픽처를 비 스크린 콘텐츠 코딩으로 결정하고, 그렇지 않으면 계속하여 스크린 콘텐츠 코딩이다. 물론, 상기 방식은 단지 SCC 식별자를 암시적으로 유도하는 예시일 뿐, 암시적인 유도 방식에 대하여 한정하지 않는다. 요약하면, 디코딩단은 현재 블록에 대응하는 SCC 식별자를 획득할 수 있는 바, 만약 당해 SCC 식별자가 현재 블록이 스크린 콘텐츠 코딩에 속하는 것을 지시하면 디코딩단은 현재 블록의 가중치 변환율을 제1 가중치 변환율로 결정한다. 만약 당해 SCC 식별자가 현재 블록이 비 스크린 콘텐츠 코딩에 속하는 것을 지시하면 디코딩단은 현재 블록의 가중치 변환율을 제2 가중치 변환율로 결정한다. 예를 들면, 만약 SCC 식별자가 제1 값이면 현재 블록이 스크린 콘텐츠 코딩에 속하는 것을 지시하고, 만약 SCC 식별자가 제2 값이면 현재 블록이 비 스크린 콘텐츠 코딩에 속하는 것을 지시한다.
요약하면, 현재 블록의 가중치 변환율은 제1 가중치 변환율 또는 제2 가중치 변환율, 즉 현재 블록의 가중치 변환율은 전환될 수 있고, 가중치 변환율의 전환의 특정 레벨의 SCC 명시적 식별자 또는 SCC 암시적 식별자에 의존하며, SCC 명시적 식별자란 scc_flag(SCC 식별자)를 비트 스트림에 코딩하여 디코딩단이 비트 스트림에서 SCC 식별자를 해석하게 하는 것을 가리키고, SCC 암시적 식별자란 디코딩단이 얻을 수 있는 정보에 근거하여 SCC 식별자를 적응적으로 유도하는 것을 말한다.
특정 레벨의 SCC 식별자는, 현재 시퀀스의 SCC 식별자를 지시하기 위한 시퀀스 레벨 SCC 식별자(당해 SCC 식별자는 현재 시퀀스에 속하는 모든 블록의 SCC 식별자로 사용됨); 현재 픽처의 SCC 식별자를 지시하기 위한 픽처 레벨 SCC 식별자(당해 SCC 식별자는 현재 슬라이스에 속하는 모든 블록의 SCC 식별자로 사용됨); 현재 Slice의 SCC 식별자를 지시하기 위한 Slice 레벨SCC 식별자(당해 SCC 식별자는 현재 Slice에 속하는 모든 블록의 SCC 식별자로 사용됨); 현재 Tile의 SCC 식별자를 지시하기 위한 Tile 레벨 SCC 식별자(당해 SCC 식별자는 현재 Tile에 속하는 모든 블록의 SCC 식별자로 사용됨); 현재 Patch의 SCC 식별자를 지시하기 위한 Patch 레벨 SCC 식별자(당해 SCC 식별자는 현재 Patch에 속하는 모든 블록의 SCC 식별자로 사용됨); 현재 CTU의 SCC 식별자를 지시하기 위한 CTU 레벨 SCC 식별자(당해 SCC 식별자는 현재 CTU에 속하는 모든 블록의 SCC 식별자로 사용됨); 현재 LCU의 SCC 식별자를 지시하기 위한 LCU 레벨 SCC 식별자(당해 SCC 식별자는 현재 LCU에 속하는 모든 블록의 SCC 식별자로 사용됨); 현재 블록의 SCC 식별자를 지시하기 위한 블록 레벨 SCC 식별자(당해 SCC 식별자는 현재 블록의 모든 블록에 속하는 SCC 식별자로 사용됨); 현재 CU의 SCC 식별자를 지시하기 위한 CU 레벨 SCC 식별자(당해 SCC 식별자는 현재 CU에 속하는 모든 서브 블록의 SCC 식별자로 사용됨); 및 현재 PU의 SCC 식별자를 지시하기 위한 PU 레벨 SCC 식별자(당해 SCC 식별자는 현재 PU에 속하는 모든 블록의 SCC 식별자로 사용됨)을 포함한다.
예시적으로, 제2 가중치 변환율을 디폴드 가중치 변환율로 사용할 수 있는 바, SCC 식별자는 현재 블록이 비 스크린 콘텐츠 코딩에 속하는 것을 지시할 경우, 가중치 변환율을 전환, 즉 현재 블록의 가중치 변환율을 제2 가중치 변환율로 결정해야 한다. SCC 식별자는 현재 블록이 스크린 콘텐츠 코딩에 속하는 것을 지시할 경우, 가중치 변환율을 전환, 즉 현재 블록의 가중치 변환율을 제1 가중치 변환율로 결정해야 한다. 또는, 제1 가중치 변환율을 디폴드 가중치 변환율로 사용할 수 있는 바, SCC 식별자는 현재 블록이 비 스크린 콘텐츠 코딩에 속하는 것을 지시할 경우, 가중치 변환율을 전환, 즉 현재 블록의 가중치 변환율을 제2 가중치 변환율로 결정해야 한다. SCC 식별자는 현재 블록이 스크린 콘텐츠 코딩에 속하는 것을 지시할 경우, 가중치 변환율을 전환해야 하는 바, 즉 현재 블록의 가중치 변환율을 제1 가중치 변환율로 결정해야 한다.
요약하면, 현재 블록이 스크린 콘텐츠 코딩에 속할 경우, 현재 블록의 가중치 변환율은 제1 가중치 변환율이고, 현재 블록이 비 스크린 콘텐츠 코딩에 속할 경우, 현재 블록의 가중치 변환율은 제2 가중치 변환율이며, 제1 가중치 변환율의 절대값은 제2 가중치 변환율의 절대값보다 큰 바, 예컨대 제1 가중치 변환율의 절대값은 4이고, 제2 가중치 변환율의 절대값은 1로서, SCC시퀀스에 속하는 현재 블록의 가중치 변환율의 절대값이 증가, 즉 변환 속도가 증가하도록 한다.
다른 가능한 일 실시형태에서, 현재 블록의 가중치 변환율 지시정보는 현재 블록에 대응하는 가중치 변환율 전환 식별자일 수 있고, 제1 지시정보는 현재 블록이 가중치 변환율 전환을 수행할 필요가 없는 것을 지시하며, 제2 지시정보는 현재 블록이 가중치 변환율 전환을 수행해야 하는 것을 지시한다. 이 기초 상에, 현재 블록에 대응하는 가중치 변환율 전환 식별자를 획득하고, 당해 가중치 변환율 전환 식별자에 근거하여 현재 블록의 가중치 변환율을 결정할 수 있다. 예를 들면, 만약 당해 가중치 변환율 전환 식별자가 현재 블록이 가중치 변환율 전환을 수행할 필요가 없는 것을 지시하면 현재 블록의 가중치 변환율은 제1 가중치 변환율일 수 있고; 만약 당해 가중치 변환율 전환 식별자가 현재 블록이 가중치 변환율 전환을 수행해야 하는 것을 지시하면 현재 블록의 가중치 변환율은 제2 가중치 변환율일 수 있다. 제1 가중치 변환율의 절대값은 제2 가중치 변환율의 절대값과 같지 않다.
예를 들면, 제1 가중치 변환율의 절대값은 제2 가중치 변환율의 절대값보다 클 수 있는 바, 예컨대 제1 가중치 변환율의 절대값은 4일 수 있고, 제2 가중치 변환율의 절대값은 1 또는 2일 수 있다. 또는, 제1 가중치 변환율의 절대값은 2일 수 있고, 제2 가중치 변환율의 절대값은 1일 수 있다. 또는, 제1 가중치 변환율의 절대값은 8일 수 있고, 제2 가중치 변환율의 절대값은 1 또는 2 또는 4일 수 있다. 또 예를 들면, 제1 가중치 변환율의 절대값은 제2 가중치 변환율의 절대값보다 작을 수 있는 바, 예컨대 제1 가중치 변환율의 절대값은 1일 수 있고, 제2 가중치 변환율의 절대값은 2 또는 4 또는 8일 수 있다. 또는, 제1 가중치 변환율의 절대값은 2일 수 있고, 제2 가중치 변환율의 절대값은 4 또는 8일 수 있다. 또는, 제1 가중치 변환율의 절대값은 4일 수 있고, 제2 가중치 변환율의 절대값은 8일 수 있다. 물론, 상술한 내용은 몇 개의 예시일 뿐, 이에 대해 한정하지 않는 바, 제1 가중치 변환율의 절대값이 제2 가중치 변환율의 절대값과 같지 않으면 된다.
예시적으로, 가중치 변환율 전환 식별자는: 시퀀스 레벨 가중치 변환율 전환 식별자, 픽처 레벨 가중치 변환율 전환 식별자, Slice 레벨 가중치 변환율 전환 식별자, Tile 레벨 가중치 변환율 전환 식별자, Patch 레벨 가중치 변환율 전환 식별자, CTU 레벨 가중치 변환율 전환 식별자, LCU 레벨 가중치 변환율 전환 식별자, 블록 레벨 가중치 변환율 전환 식별자, CU 레벨 가중치 변환율 전환 식별자, PU 레벨 가중치 변환율 전환 식별자 등을 포함할 수 있으나 이에 한정되지 않고, 본 명세서는 이에 대해 한정하지 않는다.
예를 들면, 현재 블록에 대응하는 시퀀스 레벨 가중치 변환율 전환 식별자를 현재 블록에 대응하는 가중치 변환율 전환 식별자로 결정하거나, 또는, 현재 블록에 대응하는 픽처 레벨 가중치 변환율 전환 식별자를 현재 블록에 대응하는 가중치 변환율 전환 식별자로 결정할 수 있으며, 이러한 방법으로 유추하면, 현재 블록에 대응하는 가중치 변환율 전환 식별자를 얻을 수만 있으면 된다.
예시적으로, 제1 가중치 변환율을 디폴드 가중치 변환율로 사용할 수 있는 바, 코딩단에 있어서, 현재 블록이 가중치 변환율 전환을 수행해야 할지 여부를 인지할 수 있고, 만약 현재 블록이 가중치 변환율 전환을 수행할 필요가 없으면 코딩단은 현재 블록의 가중치 변환율을 제1 가중치 변환율로 결정한다. 만약 현재 블록이 가중치 변환율 전환을 수행해야 하면 코딩단은 현재 블록의 가중치 변환율을 제2 가중치 변환율로 결정한다. 또는, 코딩단에 있어서, 현재 블록에 대응하는 가중치 변환율 전환 식별자를 인지할 수 있고, 만약 당해 가중치 변환율 전환 식별자가 현재 블록이 가중치 변환율 전환을 수행할 필요가 없다고 지시하면 코딩단은 현재 블록의 가중치 변환율을 제1 가중치 변환율로 결정할 수 있다. 만약 당해 가중치 변환율 전환 식별자가 현재 블록이 가중치 변환율 전환을 수행해야 한다고 지시하면 코딩단은 현재 블록의 가중치 변환율을 제2 가중치 변환율로 결정한다.
예를 들면, 코딩단은 제1 가중치 변환율에 대응하는 율-왜곡 코스트 값 1, 제2 가중치 변환율에 대응하는 율-왜곡 코스트 값 2를 결정한다. 만약 율-왜곡 코스트 값 1이 율-왜곡 코스트 값 2보다 작으면 현재 블록이 가중치 변환율 전환을 수행할 필요가 없다고 결정하고, 만약 율-왜곡 코스트 값 2가 율-왜곡 코스트 값 1보다 작으면 현재 블록이 가중치 변환율 전환을 수행해야 한다고 결정한다.
코딩단은 가중치 변환율 전환 식별자(예컨대 시퀀스 레벨 가중치 변환율 전환 식별자 등)를 비트 스트림에 코딩하여 디코딩단이 비트 스트림에서 당해 가중치 변환율 전환 식별자를 해석하도록 하고, 당해 가중치 변환율 전환 식별자를 현재 블록에 대응하는 가중치 변환율 전환 식별자로 결정하게 한다. 요약하면, 디코딩단은 현재 블록에 대응하는 가중치 변환율 전환 식별자를 인지할 수 있는 바, 만약 당해 가중치 변환율 전환 식별자가 현재 블록이 가중치 변환율 전환을 수행할 필요가 없다고 지시하면 디코딩단은 현재 블록의 가중치 변환율을 제1 가중치 변환율로 결정한다. 만약 당해 가중치 변환율 전환 식별자가 현재 블록이 가중치 변환율 전환을 수행해야 한다고 지시하면 디코딩단은 현재 블록의 가중치 변환율을 제2 가중치 변환율로 결정한다. 예를 들면, 만약 가중치 변환율 전환 식별자가 제1 값이면 현재 블록이 가중치 변환율 전환을 수행할 필요가 없다고 지시하고, 만약 가중치 변환율 전환 식별자가 제2 값이면 현재 블록이 가중치 변환율 전환을 수행해야 한다고 지시한다. 제1 값은 1이고, 제2 값은 0이거나, 또는, 제1 값은 0이고, 제2 값은 1이다. 물론, 상술한 내용은 단지 제1 값과 제2 값의 예시일 뿐, 이에 대해 한정하지 않는다.
코딩단은 가중치 변환율 전환 식별자를 비트 스트림에 코딩하지 않고, 디코딩단에 의해 가중치 변환율 전환 식별자를 암시적으로 유도하며, 당해 가중치 변환율 전환 식별자를 현재 블록에 대응하는 가중치 변환율 전환 식별자로 결정할 수도 있다. 예를 들면, 만약 연속되는 복수 개의 블록이 모두 가중치 변환율 전환을 수행해야 하면 현재 블록도 가중치 변환율 전환을 수행해야 하고, 디코딩단은 가중치 변환율 전환 식별자를 암시적으로 유도하며, 당해 가중치 변환율 전환 식별자를 현재 블록에 대응하는 가중치 변환율 전환 식별자로 결정하고, 당해 가중치 변환율 전환 식별자는 현재 블록이 가중치 변환율 전환을 수행해야 한다고 지시한다. 만약 연속되는 복수 개의 블록이 모두 가중치 변환율 전환을 수행할 필요가 없으면 현재 블록도 가중치 변환율 전환을 수행할 필요가 없으며, 디코딩단은 가중치 변환율 전환 식별자를 암시적으로 유도하고, 가중치 변환율 전환 식별자는 현재 블록이 가중치 변환율 전환을 수행할 필요가 없다고 지시한다. 물론, 상기 방식은 가중치 변환율 전환 식별자를 암시적으로 유도하는 예시일 뿐, 이 유도 방식에 대해 한정하지 않는다. 요약하면, 디코딩단은 현재 블록에 대응하는 가중치 변환율 전환 식별자를 인지할 수 있는 바, 만약 당해 가중치 변환율 전환 식별자가 현재 블록이 가중치 변환율 전환을 수행할 필요가 없다고 지시하면 현재 블록의 가중치 변환율을 제1 가중치 변환율로 결정한다. 만약 당해 가중치 변환율 전환 식별자가 현재 블록이 가중치 변환율 전환을 수행해야 한다고 지시하면 현재 블록의 가중치 변환율을 제2 가중치 변환율로 결정한다.
요약하면, 현재 블록의 가중치 변환율은 제1 가중치 변환율 또는 제2 가중치 변환율일 수 있는 바, 즉 현재 블록의 가중치 변환율은 전환될 수 있고, 가중치 변환율의 전환은 특정 레벨의 가중치 변환율 전환 식별자(refine_flag)에 의존하며, 당해 refine_flag는 명시적 식별자 또는 암시적 식별자이고, 명시적 식별자란 refine_flag를 비트 스트림에 코딩하여 디코딩단이 비트 스트림에서 refine_flag를 해석하는 것을 말하며, 암시적 식별자란 디코딩단이 얻을 수 있는 정보에 근거하여 refine_flag를 적응적으로 유도하는 것을 말한다.
예시적으로, 특정 레벨의 refine_flag는, 현재 시퀀스의 refine_flag를 지시하기 위한 시퀀스 레벨 refine_flag(현재 시퀀스에 속하는 모든 블록의refine_flag로 사용됨); 현재 픽처의 refine_flag를 지시하기 위한 픽처 레벨 refine_flag(현재 슬라이스에 속하는 모든 블록의 refine_flag로 사용됨); 현재 Slice의 refine_flag를 지시하기 위한 Slice 레벨 refine_flag(현재 Slice에 속하는 모든 블록의 refine_flag로 사용됨); 현재 Tile의 refine_flag를 지시하기 위한Tile 레벨 refine_flag(현재 Tile에 속하는 모든 블록의 refine_flag로 사용됨); 현재 Patch의 refine_flag를 지시하기 위한 Patch 레벨 refine_flag(현재 Patch에 속하는 모든 블록의 refine_flag로 사용됨); 현재 CTU의 refine_flag를 지시하기 위한 CTU 레벨 refine_flag(현재 CTU에 속하는 모든 블록의 refine_flag로 사용됨); 현재 LCU의 refine_flag를 지시하기 위한 LCU 레벨 refine_flag(현재 LCU에 속하는 모든 블록의 refine_flag로 사용됨); 현재 블록의 refine_flag를 지시하기 위한 블록 레벨(현재 블록에 속하는 refine_flag로 사용됨); 현재 CU의 refine_flag를 지시하기 위한 CU 레벨 refine_flag(현재 CU에 속하는 모든 블록의 refine_flag로 사용됨); 및 현재 PU의 refine_flag를 지시하기 위한 PU 레벨 refine_flag(현재 PU에 속하는 모든 블록의 refine_flag로 사용됨)을 포함한다. 물론, 상술한 내용은 몇 개의 예시일 뿐, 이에 대해 한정하지 않는다.
예시적으로, 제1 가중치 변환율을 디폴드 가중치 변환율로 사용할 수 있는 바, 가중치 변환율 전환 식별자가 현재 블록이 가중치 변환율 전환을 수행할 필요가 없다고 지시할 경우, 가중치 변환율을 전환하지 않는 바, 즉 현재 블록의 가중치 변환율을 제1 가중치 변환율로 결정한다. 가중치 변환율 전환 식별자가 현재 블록이 가중치 변환율 전환을 수행해야 한다고 지시할 경우, 가중치 변환율을 전환해야 하는 바, 즉 현재 블록의 가중치 변환율을 제2 가중치 변환율로 결정해야 한다.
실시예 10: 실시예 1 내지 실시예 4에서, 코딩단/디코딩단은 현재 블록의 가중치 예측 각도와 가중치 예측 위치를 획득해야 하는 바, 실시예 9에서는, 현재 블록의 가중치 변환율, 예컨대 제1 가중치 변환율 또는 제2 가중치 변환율을 얻을 수 있고, 이 기초 상에, 아래와 같은 방식을 사용하여 현재 블록의 가중치 예측 각도와 가중치 예측 위치를 획득할 수 있다.
방식 1, 코딩단과 디코딩단이 동일한 가중치 예측 각도를 현재 블록의 가중치 예측 각도로 약정하고, 동일한 가중치 예측 위치를 현재 블록의 가중치 예측 위치로 약정한다. 예를 들면, 코딩단과 디코딩단이 가중치 예측 각도 A를 현재 블록의 가중치 예측 각도로 사용하고, 코딩단과 디코딩단이 가중치 예측 위치 4를 현재 블록의 가중치 예측 위치로 사용한다.
방식 2, 코딩단이 가중치 예측 각도 리스트를 구축하는 바, 가중치 예측 각도 리스트는 적어도 하나의 가중치 예측 각도, 예컨대 가중치 예측 각도 A와 가중치 예측 각도 B를 포함한다. 코딩단이 가중치 예측 위치 리스트를 구축하는 바, 가중치 예측 위치 리스트는 적어도 하나의 가중치 예측 위치, 예컨대 가중치 예측 위치 0 내지 가중치 예측 위치6을 포함한다. 가중치 예측 각도 리스트 중 각 가중치 예측 각도를 순차적으로 순회하고, 가중치 예측 위치 리스트 중 각 가중치 예측 위치를 순회, 즉 각 가중치 예측 각도 및 각 가중치 예측 위치의 조합을 순회한다. 각 조합을 단계(a1)에서 획득한 가중치 예측 각도 및 가중치 예측 위치로 사용하고, 당해 가중치 예측 각도, 당해 가중치 예측 위치 및 가중치 변환율에 기반하여 현재 블록의 가중 예측값을 얻는다.
예를 들면, 코딩단이 가중치 예측 각도 A와 가중치 예측 위치 0에 순회할 경우, 가중치 예측 각도 A와 가중치 예측 위치 0에 기반하여 현재 블록의 가중 예측값을 얻는다. 가중치 예측 각도 A와 가중치 예측 위치 1에 순회할 경우, 가중치 예측 각도 A와 가중치 예측 위치 1에 기반하여 현재 블록의 가중 예측값을 얻는다. 가중치 예측 각도 B와 가중치 예측 위치 0에 순회할 경우, 가중치 예측 각도 B와 가중치 예측 위치 0에 기반하여 현재 블록의 가중 예측값을 얻으며, 이러한 방법으로 유추한다. 코딩단은 가중치 예측 각도와 가중치 예측 위치의 각 조합에 기반하여 현재 블록의 가중 예측값을 얻을 수 있다.
코딩단은 가중치 예측 각도와 가중치 예측 위치의 조합에 기반하여 현재 블록의 가중 예측값을 얻은 다음, 현재 블록의 가중 예측값에 근거하여 율-왜곡 코스트 값을 결정할 수 있는 바, 당해 율-왜곡 코스트 값의 결정 방식은 한정되지 않으며, 코딩단은 각 조합의 율-왜곡 코스트 값을 얻을 수 있고, 모든 율-왜곡 코스트 값 중 최소 율-왜곡 코스트 값을 선택할 수 있다.
다음, 코딩단은 최소 율-왜곡 코스트 값에 대응하는 가중치 예측 각도 및 가중치 예측 위치 조합을 타깃 가중치 예측 각도 및 타깃 가중치 예측 위치로 사용하고, 마지막으로 타깃 가중치 예측 각도의 가중치 예측 각도 리스트에서의 인덱스 값 및 타깃 가중치 예측 위치의 가중치 예측 위치 리스트에서의 인덱스 값을 비트 스트림에 코딩한다.
디코딩단에 있어서, 디코딩단이 가중치 예측 각도 리스트를 구축하되, 당해 가중치 예측 각도 리스트는 코딩단의 가중치 예측 각도 리스트와 동일하고, 가중치 예측 각도 리스트는 적어도 하나의 가중치 예측 각도를 포함한다. 가중치 예측 위치 리스트를 구축하되, 당해 가중치 예측 위치 리스트는 코딩단의 가중치 예측 위치 리스트와 동일하고, 가중치 예측 위치 리스트는 적어도 하나의 가중치 예측 위치를 포함한다. 디코딩단은 현재 블록의 코딩된 비트 스트림을 수신한 후, 코딩된 비트 스트림에서 지시정보를 해석하고, 당해 지시정보에 근거하여 가중치 예측 각도 리스트에서 하나의 가중치 예측 각도를 선택하여 현재 블록의 가중치 예측 각도로 이용할 수 있으며, 당해 지시정보에 근거하여 가중치 예측 위치 리스트에서 하나의 가중치 예측 위치를 선택하여 현재 블록의 가중치 예측 위치로 이용할 수 있다.
응용 시나리오 1: 코딩단이 디코딩단에 코딩된 비트 스트림을 송신할 경우, 당해 코딩된 비트 스트림은 지시정보 1을 포함할 수 있는 바, 지시정보 1은 현재 블록의 가중치 예측 각도(즉 타깃 가중치 예측 각도)와 현재 블록의 가중치 예측 위치(즉 타깃 가중치 예측 위치)를 지시한다. 예를 들면, 지시정보 1이 0일 경우, 가중치 예측 각도 리스트 중 첫 번째 가중치 예측 각도를 지시하고, 가중치 예측 위치 리스트 중 첫 번째 가중치 예측 위치를 지시하며, 지시정보 1가 1일 경우, 가중치 예측 각도 리스트 중 첫 번째 가중치 예측 각도를 지시하고, 가중치 예측 위치 리스트 중 두 번째 가중치 예측 위치를 지시하며, 이러한 방법으로 유추하면, 지시정보 1의 값에 대하여, 어느 가중치 예측 각도와 어느 가중치 예측 위치를 지시할 것인지는 코딩단과 디코딩단이 약정하기만 하면 되는 바, 본 실시예에서는 이에 대해 한정하지 않는다.
디코딩단은 코딩된 비트 스트림을 수신한 후, 당해 코딩된 비트 스트림에서 지시정보 1을 해석하고, 당해 지시정보 1에 기반하여 디코딩단은 가중치 예측 각도 리스트에서 당해 지시정보 1에 대응하는 가중치 예측 각도를 선택하며, 당해 가중치 예측 각도를 현재 블록의 가중치 예측 각도로 사용한다. 당해 지시정보 1에 기반하여 디코딩단은 가중치 예측 위치 리스트에서 당해 지시정보 1에 대응하는 가중치 예측 위치를 선택하고, 당해 가중치 예측 위치를 현재 블록의 가중치 예측 위치로 사용할 수 있다.
응용 시나리오 2: 코딩단이 디코딩단에 코딩된 비트 스트림을 송신할 경우, 당해 코딩된 비트 스트림은 지시정보 2와 지시정보 3을 포함할 수 있다. 지시정보 2는 현재 블록의 타깃 가중치 예측 각도, 예컨대 타깃 가중치 예측 각도의 가중치 예측 각도 리스트에서의 인덱스 값 1을 지시하고, 인덱스 값 1은 타깃 가중치 예측 각도가 가중치 예측 각도 리스트 중 몇 번째 가중치 예측 각도인지를 나타낸다. 지시정보 3은 현재 블록의 타깃 가중치 예측 위치, 예컨대 타깃 가중치 예측 위치의 가중치 예측 위치 리스트에서의 인덱스 값 2를 지시하고, 인덱스 값 2는 타깃 가중치 예측 위치가 가중치 예측 위치 리스트 중 몇 번째 가중치 예측 위치인지를 나타낸다. 디코딩단은 코딩된 비트 스트림을 수신한 후, 코딩된 비트 스트림에서 지시정보 2와 지시정보 3을 해석하고, 지시정보 2에 기반하여 가중치 예측 각도 리스트에서 당해 인덱스 값 1에 대응하는 가중치 예측 각도를 선택하며, 당해 가중치 예측 각도를 현재 블록의 가중치 예측 각도로 사용한다. 당해 지시정보 3에 기반하여 가중치 예측 위치 리스트에서 당해 인덱스 값 2에 대응하는 가중치 예측 위치를 선택하고, 당해 가중치 예측 위치를 현재 블록의 가중치 예측 위치로 사용한다.
응용 시나리오 3: 코딩단과 디코딩단은 최적화 구성 조합을 약정할 수 있는 바, 당해 최적화 구성 조합은 한정되지 않으며, 실제 경험에 근거하여 구성할 수 있는 바, 예를 들면, 코딩단과 디코딩단이 가중치 예측 각도 A와 가중치 예측 위치 4를 포함하는 최적화 구성 조합 1을 포함하고, 가중치 예측 각도 B와 가중치 예측 위치 4를 포함하는 최적화 구성 조합 2를 약정한다.
코딩단은 현재 블록의 타깃 가중치 예측 각도와 타깃 가중치 예측 위치를 결정한 후, 타깃 가중치 예측 각도와 타깃 가중치 예측 위치가 최적화 구성 조합인지 여부를 결정한다. 만약 "예"이면, 코딩단이 디코딩단에 코딩된 비트 스트림을 송신할 경우, 당해 코딩된 비트 스트림은 지시정보 4와 지시정보 5를 포함할 수 있다. 지시정보 4는 현재 블록이 최적화 구성 조합을 사용하는지 여부를 지시하는 바, 예컨대 지시정보 4는 제1 값(예컨대 0)이고, 이는 현재 블록이 최적화 구성 조합을 사용하는 것을 나타낸다. 지시정보 5는 현재 블록이 어느 최적화 구성 조합을 사용하는지 지시하는 바, 예컨대 지시정보 5가 0일 경우, 현재 블록이 최적화 구성 조합 1을 사용하는 것을 지시하고, 지시정보 5가 1일 경우, 현재 블록이 최적화 구성 조합 2를 사용하는 것을 지시한다.
디코딩단은 코딩된 비트 스트림을 수신한 후, 당해 코딩된 비트 스트림에서 지시정보 4와 지시정보 5를 해석하고, 당해 지시정보 4에 기반하여 디코딩단은 현재 블록이 최적화 구성 조합을 사용하는지 여부를 결정한다. 만약 지시정보 4가 제1 값이면 현재 블록이 최적화 구성 조합을 사용하는 것을 결정한다. 현재 블록이 최적화 구성 조합을 사용할 경우, 디코딩단은 지시정보 5에 기반하여 현재 블록이 어느 최적화 구성 조합을 사용하는지를 결정할 수 있는 바, 예컨대 지시정보 5가 0일 경우, 현재 블록이 최적화 구성 조합 1, 즉 현재 블록의 가중치 예측 각도가 가중치 예측 각도 A이고, 현재 블록의 가중치 예측 위치가 가중치 예측 위치 4인 것을 사용한다고 결정한다. 또 예를 들면, 지시정보 5가 1일 경우, 현재 블록이 최적화 구성 조합 2, 즉 현재 블록의 가중치 예측 각도가 가중치 예측 각도 B이고, 현재 블록의 가중치 예측 위치가 가중치 예측 위치 4인 것을 사용한다고 결정한다.
예시적으로, 만약 코딩단과 디코딩단이 한 그룹의 최적화 구성 조합, 예컨대 가중치 예측 각도 A와 가중치 예측 위치 4의 최적화 구성 조합만 약정하면 당해 코딩된 비트 스트림은 지시정보 5를 포함하지 않고 지시정보 4를 포함할 수 있으며, 지시정보 4는 현재 블록이 최적화 구성 조합을 사용하는지 여부를 지시한다. 디코딩단은 당해 코딩된 비트 스트림에서 지시정보 4를 해석한 후, 만약 지시정보 4가 제1 값이면 현재 블록이 최적화 구성 조합을 사용하는 것을 결정하고, 당해 최적화 구성 조합에 기반하여 현재 블록의 가중치 예측 각도를 가중치 예측 각도 A로 결정하고, 현재 블록의 가중치 예측 위치를 가중치 예측 위치 4로 결정한다.
응용 시나리오 4: 코딩단과 디코딩단은 최적화 구성 조합을 약정할 수 있는 바, 코딩단은 현재 블록의 타깃 가중치 예측 각도와 타깃 가중치 예측 위치를 결정한 후, 타깃 가중치 예측 각도와 타깃 가중치 예측 위치가 최적화 구성 조합인지 여부를 결정한다. 만약 "아니오"이면, 코딩단은 디코딩단에 코딩된 비트 스트림을 송신할 경우, 당해 코딩된 비트 스트림이 지시정보 4와 지시정보 6을 포함한다. 지시정보 4는 현재 블록이 최적화 구성 조합을 사용하는지 여부를 지시하는 바, 예컨대 지시정보 4가 제2 값(예컨대 1)이고, 현재 블록이 최적화 구성 조합을 사용하지 않는다는 것을 나타낸다. 지시정보 6은 현재 블록의 타깃 가중치 예측 각도와 현재 블록의 타깃 가중치 예측 위치를 지시한다. 예를 들면, 지시정보 6이 0일 경우, 가중치 예측 각도 리스트 중 첫 번째 가중치 예측 각도를 지시하고, 가중치 예측 위치 리스트 중 첫 번째 가중치 예측 위치를 지시하며, 이러한 방법으로 유추한다.
디코딩단은 코딩된 비트 스트림을 수신한 후, 당해 코딩된 비트 스트림에서 지시정보 4와 지시정보 6을 해석하고, 당해 지시정보 4에 기반하여 디코딩단은 현재 블록이 최적화 구성 조합을 사용하는지 여부를 결정한다. 만약 지시정보 4가 제2 값이면 현재 블록이 최적화 구성 조합을 사용하지 않는다고 결정한다. 현재 블록이 최적화 구성 조합을 사용하지 않을 경우, 디코딩단은 지시정보 6에 기반하여 가중치 예측 각도 리스트에서 당해 지시정보 6에 대응하는 가중치 예측 각도를 결정하고, 당해 가중치 예측 각도를 현재 블록의 가중치 예측 각도로 사용하며, 당해 지시정보 6에 기반하여 디코딩단은 가중치 예측 위치 리스트에서 당해 지시정보 6에 대응하는 가중치 예측 위치를 선택하고, 당해 가중치 예측 위치를 현재 블록의 가중치 예측 위치로 사용할 수 있다.
응용 시나리오 5: 코딩단과 디코딩단은 최적화 구성 조합을 약정할 수 있는 바, 코딩단은 현재 블록의 타깃 가중치 예측 각도와 타깃 가중치 예측 위치를 결정한 후, 타깃 가중치 예측 각도와 타깃 가중치 예측 위치가 최적화 구성 조합인지 여부를 결정한다. 만약 "아니오"이면, 코딩단은 디코딩단에 코딩된 비트 스트림을 송신할 경우, 당해 코딩된 비트 스트림이 지시정보 4, 지시정보 7 및 지시정보 8을 포함한다. 예시적으로, 지시정보 4는 현재 블록이 최적화 구성 조합을 사용하는지 여부를 지시하는 바, 예컨대 지시정보 4가 제2 값이고, 현재 블록이 최적화 구성 조합을 사용하지 않는다는 것을 나타낸다. 지시정보 7은 현재 블록의 타깃 가중치 예측 각도, 예컨대 타깃 가중치 예측 각도의 가중치 예측 각도 리스트에서의 인덱스 값 1을 지시하고, 인덱스 값 1은 타깃 가중치 예측 각도가 가중치 예측 각도 리스트 중 몇 번째 가중 예측 각도인지를 나타낸다. 지시정보 8은 현재 블록의 타깃 가중치 예측 위치, 예컨대 타깃 가중치 예측 위치의 가중치 예측 위치 리스트에서의 인덱스 값 2를 지시하고, 인덱스 값 2은 타깃 가중치 예측 위치가 가중치 예측 위치 리스트 중 몇 번째 가중치 예측 위치인지를 나타낸다.
디코딩단은 코딩된 비트 스트림을 수신한 후, 당해 코딩된 비트 스트림에서 지시정보 4, 지시정보 7 및 지시정보 8를 해석하고, 당해 지시정보 4에 기반하여 디코딩단은 현재 블록이 최적화 구성 조합을 사용하는지 여부를 결정한다. 만약 지시정보 4가 제2 값이면 현재 블록이 최적화 구성 조합을 사용하지 않는다는 것을 결정한다. 현재 블록이 최적화 구성 조합을 사용하지 않을 경우, 디코딩단은 당해 지시정보 7에 기반하여 가중치 예측 각도 리스트에서 당해 인덱스 값 1에 대응하는 가중치 예측 각도를 선택하고, 당해 가중치 예측 각도를 현재 블록의 가중치 예측 각도로 사용한다. 디코딩단은 당해 지시정보 8에 기반하여 가중치 예측 위치 리스트에서 당해 인덱스 값 2에 대응하는 가중치 예측 위치를 선택하고, 당해 가중치 예측 위치를 현재 블록의 가중치 예측 위치로 사용한다.
실시예 11: 실시예 1 내지 실시예 4에서, 코딩단/디코딩단은 현재 블록의 가중치 변환율을 획득해야 하는 바, 만약 현재 블록이 가중치 변환율 전환 모드를 지원하면: 현재 블록의 가중치 변환율 지시정보를 획득하는 방식; 기설정된 조회 테이블에서 당해 가중치 변환율 지시정보에 대응하는 가중치 변환율을 선택하되; 당해 기설정된 조회 테이블은 적어도 두 개의 가중치 변환율을 포함하는 방식을 사용하여 현재 블록의 가중치 변환율을 획득한다. 선택된 가중치 변환율을 현재 블록의 가중치 변환율로 결정한다.
기설정된 조회 테이블이 적어도 두 개의 가중치 변환율을 포함하므로 만약 현재 블록이 가중치 변환율 전환 모드를 지원하면 적어도 두 개의 가중치 변환율에서 현재 블록의 가중치 변환율을 선택할 수 있는 바, 즉, 현재 블록의 가중치 변환율은 변화될 수 있음으로써 통일된 하나의 가중치 변환율을 사용하는 것이 아니라 가중치 변환율로 적응적으로 전환할 수 있다.
예시적으로, 만약 스위칭 제어 정보가 현재 블록이 가중치 변환율 전환 모드를 사용하는 것을 허용하면 현재 블록은 가중치 변환율 전환 모드를 지원하고, 만약 스위칭 제어 정보가 현재 블록이 가중치 변환율 전환 모드를 사용하는 것을 허용하지 않으면 현재 블록은 가중치 변환율 전환 모드를 지원하지 않는 바, 현재 블록이 가중치 변환율 전환 모드를 지원하는지 여부에 관한 내용은 실시예 9를 참조한다.
가능한 일 실시형태에서, 기설정된 조회 테이블은 적어도 두 개의 가중치 변환율을 포함할 수 있고, 가중치 변환율 지시정보는 가중치 변환율 인덱스 정보(조회 테이블 중 모든 가중치 변환율 중의 특정 가중치 변환율을 지시)를 포함할 수 있다. 이에 기반하여, 당해 조회 테이블에서 당해 가중치 변환율 인덱스 정보에 대응하는 가중치 변환율을 선택할 수 있다.
코딩단에 있어서, 만약 하나의 조회 테이블만 존재하면 조회 테이블 중 각 가중치 변환율에 대하여, 코딩단은 당해 가중치 변환율에 대응하는 율-왜곡 코스트 값을 결정하고, 제일 작은 율-왜곡 코스트 값에 대응하는 가중치 변환율을 현재 블록의 타깃 가중치 변환율로 사용하며, 타깃 가중치 변환율의 조회 테이블에서의 인덱스 정보, 즉 가중치 변환율 인덱스 정보를 결정할 수 있는 바, 당해 가중치 변환율 인덱스 정보는 당해 조회 테이블에서의 몇 번째 가중치 변환율인지를 나타낸다.
디코딩단에 있어서, 만약 하나의 조회 테이블만 존재하면 코딩단은 디코딩단에 현재 블록의 코딩된 비트 스트림을 송신할 경우, 당해 코딩된 비트 스트림은 가중치 변환율 인덱스 정보를 휴대할 수 있고, 당해 가중치 변환율 인덱스 정보는 타깃 가중치 변환율의 조회 테이블에서의 인덱스 정보를 지시한다. 디코딩단은 당해 조회 테이블에서 당해 가중치 변환율 인덱스 정보에 대응하는 가중치 변환율을 선택하고, 당해 가중치 변환율을 현재 블록의 타깃 가중치 변환율로 사용한다.
실시예 12: 실시예 1 내지 실시예 4에서, 코딩단/디코딩단은 현재 블록의 가중치 예측 각도, 현재 블록의 가중치 예측 위치 및 현재 블록의 가중치 변환율을 획득해야 하는 바, 실시예 11에서 현재 블록의 가중치 변환율을 획득할 수 있고, 이 기초 상에, 아래와 같은 방식을 사용하여 현재 블록의 가중치 예측 각도와 가중치 예측 위치를 획득할 수 있다.
방식 1, 코딩단과 디코딩단이 동일한 가중치 예측 각도를 현재 블록의 가중치 예측 각도로 약정하고, 동일한 가중치 예측 위치를 현재 블록의 가중치 예측 위치로 약정한다. 예를 들면, 코딩단과 디코딩단이 가중치 예측 각도 A를 현재 블록의 가중치 예측 각도로 사용하고, 코딩단과 디코딩단이 가중치 예측 위치 4를 현재 블록의 가중치 예측 위치로 사용한다.
방식 2, 코딩단이 가중치 예측 각도 리스트를 구축하는 바, 가중치 예측 각도 리스트는 적어도 하나의 가중치 예측 각도를 포함한다. 코딩단이 가중치 예측 위치 리스트를 구축하는 바, 가중치 예측 위치 리스트는 적어도 하나의 가중치 예측 위치를 포함한다. 코딩단은 적어도 두 개의 조회 테이블을 구축함에 있어서, 제1 조회 테이블과 제2 조회 테이블을 예로 들면, 제1 조회 테이블은 적어도 하나의 가중치 변환율을 포함하고, 제2 조회 테이블은 적어도 하나의 가중치 변환율을 포함한다. 코딩단이 타깃 조회 테이블을 결정함에 있어서, 결정 방식은 실시예 11을 참조하고, 타깃 조회 테이블이 제1 조회 테이블인 것을 예로 한다. 코딩단은 가중치 예측 각도 리스트 중 각 가중치 예측 각도를 순차적으로 순회하고, 가중치 예측 위치 리스트 중 각 가중치 예측 위치를 순회하며, 타깃 조회 테이블 중 각 가중치 변환율을 순회, 즉 각 가중치 예측 각도, 각 가중치 예측 위치, 각 가중치 변환율의 조합을 순회한다. 가중치 예측 각도에 대하여, 가중치 예측 위치 및 가중치 변환율의 각 조합은, 단계(a1)에서 획득한 가중치 예측 각도, 가중치 예측 위치 및 가중치 변환율로서, 가중치 예측 각도, 가중치 예측 위치 및 가중치 변환율에 기반하여 현재 블록의 가중 예측값을 얻는다.
요약하면, 코딩단은 각 조합에 기반하여 현재 블록의 가중 예측값을 얻을 수 있다. 현재 블록의 가중 예측값을 얻은 다음, 코딩단은 현재 블록의 가중 예측값에 근거하여 율-왜곡 코스트 값을 결정할 수 있는 바, 즉, 코딩단은 각 조합의 율-왜곡 코스트 값을 얻을 수 있고, 모든 율-왜곡 코스트 값에서 최소 율-왜곡 코스트 값을 선택할 수 있다.
다음, 코딩단은 최소 율-왜곡 코스트 값에 대응하는 가중치 예측 각도, 가중치 예측 위치 및 가중치 변환율을 각각 타깃 가중치 예측 각도, 타깃 가중치 예측 위치 및 타깃 가중치 변환율로 사용하고, 마지막으로 타깃 가중치 예측 각도의 가중치 예측 각도 리스트에서의 인덱스 값, 타깃 가중치 예측 위치의 가중치 예측 위치 리스트에서의 인덱스 값, 및 타깃 가중치 변환율의 타깃 조회 테이블에서의 인덱스 값을 모두 현재 블록의 비트 스트림에 코딩한다.
디코딩단에 있어서, 디코딩단이 가중치 예측 각도 리스트를 구축하되, 당해 가중치 예측 각도 리스트는 코딩단의 가중치 예측 각도 리스트와 동일하고, 디코딩단이 가중치 예측 위치 리스트를 구축하되, 당해 가중치 예측 위치 리스트는 코딩단의 가중치 예측 위치 리스트와 동일하며, 디코딩단은 제1 조회 테이블과 제2 조회 테이블을 구축하되, 당해 제1 조회 테이블은 코딩단의 제1 조회 테이블과 동일하고, 당해 제2 조회 테이블은 코딩단의 제2 조회 테이블과 동일하다. 디코딩단은 현재 블록의 코딩된 비트 스트림을 수신한 다음, 당해 코딩된 비트 스트림에서 지시정보를 해석하고, 당해 지시정보에 근거하여 가중치 예측 각도 리스트에서 하나의 가중치 예측 각도를 선택하여 현재 블록의 가중치 예측 각도로 이용하며, 당해 지시정보에 근거하여 가중치 예측 위치 리스트에서 하나의 가중치 예측 위치를 선택하여 현재 블록의 가중치 예측 위치로 이용하고, 가중치 예측 각도와 가중치 예측 위치의 획득 방식은 실시예 10을 참조할 수 있는 바, 여기서 더 이상 설명하지 않는다. 디코딩단은 현재 블록의 코딩된 비트 스트림을 수신한 후, 타깃 조회 테이블(예컨대 제1 조회 테이블 또는 제2 조회 테이블)을 결정하고, 가중치 변환율 인덱스 정보에 근거하여 타깃 조회 테이블에서 하나의 가중치 변환율을 선택하여 현재 블록의 가중치 변환율로 이용할 수 있으며, 가중치 변환율의 획득 방식은 실시예 11을 참조할 수 있는 바, 여기서 더 이상 설명하지 않는다.
실시예 13: 실시예 1 내지 실시예 3에서, 코딩단/디코딩단은 모션 정보 후보 리스트를 획득해야 하는 바, 예컨대: 모션 정보 후보 리스트에 추가될 적어도 하나의 사용 가능 모션 정보를 획득하는 방식; 적어도 하나의 사용 가능 모션 정보에 기반하여 모션 정보 후보 리스트를 획득하는 방식을 사용하여 모션 정보 후보 리스트를 획득한다. 예시적으로, 적어도 하나의 사용 가능 모션 정보는 공간적 모션 정보; 시간적 모션 정보; HMVP(History-based Motion Vector Prediction, 과거 기반 모션 벡터 예측) 모션 정보; 기설정된 모션 정보 중 적어도 하나를 포함하나 이에 한정되지 않는다.
예시적으로, 공간적 모션 정보에 대하여, 현재 블록의 공간적 인접 블록에 대하여, 만약 공간적 인접 블록이 존재하고, 공간적 인접 블록이 인터 예측 모드를 사용하면 당해 공간적 인접 블록의 모션 정보를 사용 가능 모션 정보로 결정하는 방식을 사용하여 모션 정보 후보 리스트에 추가될 적어도 하나의 사용 가능 모션 정보를 획득할 수 있다.
예시적으로, 시간적 모션 정보에 대하여, 현재 블록의 기설정된 위치(예를 들면, 현재 블록의 왼쪽 상단 픽셀 위치)에 기반하여, 현재 블록의 참조 픽처에서 당해 기설정된 위치에 대응하는 시간적 인접 블록을 선택하고, 당해 시간적 인접 블록의 모션 정보를 사용 가능 모션 정보로 결정하는 방식을 사용하여 모션 정보 후보 리스트에 추가될 적어도 하나의 사용 가능 모션 정보를 획득할 수 있다.
예시적으로, 기설정된 모션 정보에 대하여: 기설정된 모션 정보를 사용 가능 모션 정보로 결정하되, 당해 기설정된 모션 정보는 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보에 기반하여 도출된 디폴트 모션 정보를 포함하나 이에 한정되지 않는 방식을 사용하여 모션 정보 후보 리스트에 추가될 적어도 하나의 사용 가능 모션 정보를 획득할 수 있다.
가능한 일 실시형태에서, 적어도 하나의 사용 가능 모션 정보에 기반하여: 현재 모션 정보 후보 리스트에 추가될 사용 가능 모션 정보에 대하여: 만약 사용 가능 모션 정보가 단방향 모션 정보이고, 당해 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보가 중복되지 않으면 당해 단방향 모션 정보를 모션 정보 후보 리스트에 추가하는 방식; 만약 사용 가능 모션 정보가 양방향 모션 정보이면 당해 양방향 모션 정보를 제1 단방향 모션 정보와 제2 단방향 모션 정보로 커팅(cutting)하는 방식; 만약 제1 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보가 중복되지 않으면 당해 제1 단방향 모션 정보를 모션 정보 후보 리스트에 추가하는 방식을 사용하여 모션 정보 후보 리스트를 획득할 수 있다.
상기 실시예에서, 제1 단방향 모션 정보는 제1 참조 픽처 리스트 중의 참조 픽처를 지향하는 단방향 모션 정보일 수 있고; 제2 단방향 모션 정보는 제2 참조 픽처 리스트 중의 참조 픽처를 지향하는 단방향 모션 정보일 수 있다.
가능한 일 실시형태에서, List0은 포워드 참조 픽처 리스트일 수 있고, List1은 백워드 참조 픽처 리스트일 수 있다.
상기 실시예에서, 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보에 대한 중복 확인 조작은, 만약 단방향 모션 정보가 지향하는 참조 픽처의 POC(표시 순서)와 후보 모션 정보가 지향하는 참조 픽처의 POC가 동일하고, 당해 단방향 모션 정보의 모션 벡터와 당해 후보 모션 정보의 모션 벡터가 동일하면 당해 단방향 모션 정보는 당해 후보 모션 정보와 중복된다고 결정하는 조작; 그렇지 않으면 당해 단방향 모션 정보는 당해 후보 모션 정보와 중복되지 않는 조작을 포함할 수 있으나 이에 한정되지 않는다.
제1 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보에 대한 중복 확인 조작은: 만약 제1 단방향 모션 정보가 지향하는 참조 픽처 리스트가 후보 모션 정보가 지향하는 참조 픽처 리스트와 동일하고, 당해 제1 단방향 모션 정보의 refIdx가 당해 후보 모션 정보의 refIdx와 동일하며, 당해 제1 단방향 모션 정보의 모션 벡터가 당해 후보 모션 정보의 모션 벡터와 동일하면 당해 제1 단방향 모션 정보가 당해 후보 모션 정보와 중복된다고 결정하는 조작; 그렇지 않으면 당해 제1 단방향 모션 정보가 당해 후보 모션 정보와 중복되지 않는다고 결정하는 조작을 포함할 수 있으나 이에 한정되지 않는다. 또는, 만약 제1 단방향 모션 정보가 지향하는 참조 픽처의 POC와 후보 모션 정보가 지향하는 참조 픽처의 POC가 동일하고, 당해 제1 단방향 모션 정보의 모션 벡터가 당해 후보 모션 정보의 모션 벡터와 동일하면 당해 제1 단방향 모션 정보가 당해 후보 모션 정보와 중복된다고 결정하고; 그렇지 않으면 당해 제1 단방향 모션 정보가 당해 후보 모션 정보와 중복되지 않는다고 결정한다.
제2 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보의 중복 확인 조작은: 만약 제2 단방향 모션 정보가 지향하는 참조 픽처 리스트가 후보 모션 정보가 지향하는 참조 픽처 리스트와 동일하고, 당해 제2 단방향 모션 정보의 refIdx가 당해 후보 모션 정보의 refIdx와 동일하며, 당해 제2 단방향 모션 정보의 모션 벡터가 당해 후보 모션 정보의 모션 벡터와 동일하면 당해 제2 단방향 모션 정보가 당해 후보 모션 정보와 중복된다고 결정하는 조작; 그렇지 않으면 당해 제2 단방향 모션 정보가 당해 후보 모션 정보와 중복되지 않는다고 결정하는 조작을 포함할 수 있으나 이에 한정되지 않는다. 또는, 만약 제2 단방향 모션 정보가 지향하는 참조 픽처의 POC와 후보 모션 정보가 지향하는 참조 픽처의 POC가 동일하고, 당해 제2 단방향 모션 정보의 모션 벡터가 당해 후보 모션 정보의 모션 벡터와 동일하면, 당해 제2 단방향 모션 정보가 당해 후보 모션 정보와 중복된다고 결정하고; 그렇지 않으면 당해 제2 단방향 모션 정보가 당해 후보 모션 정보와 중복되지 않는다고 결정한다.
예시적으로, 상기 과정은 단방향 모션 정보가 지향하는 참조 픽처의 POC와 후보 모션 정보가 지향하는 참조 픽처의 POC의 동일 여부를 비교해야 하는 바, 유의해야 할 점은, 참조 픽처의 POC는 단지 참조 픽처가 동일한 하나의 예시인지 여부를 결정하는 것으로, POC를 외에도, 참조 픽처의 동일 여부를 결정할 수 있는 기타 속성, 예컨대 참조 픽처의 DOC(디코딩 순서 표기) 등을 사용할 수도 있는 바, 이에 대해 한정하지 않는다. 요약하면, 단방향 모션 정보가 지향하는 참조 픽처의 DOC와 후보 모션 정보가 지향하는 참조 픽처의 DOC의 동일 여부를 비교할 수도 있으며, 구현 원리는 POC의 구현 원리와 유사하다.
실시예 14: 실시예 13에 대하여, 공간적 모션 정보(본 명세서에서는 현재 블록의 공간적 인접 블록의 모션 정보를 공간적 모션 정보라고 지칭함) 및/또는 시간적 모션 정보(본 명세서에서는 현재 블록의 시간적 인접 블록의 모션 정보를 시간적 모션 정보라고 지칭함)를 이용하여 모션 정보 후보 리스트를 획득할 수 있으므로 먼저 공간적 모션 정보 및/또는 시간적 모션 정보에서 사용 가능 모션 정보를 선택할 수 있다. 도 9a에 도시된 내용을 참조하면, 이는 현재 블록의 공간적 인접 블록의 모식도이고, 공간적 모션 정보는 F, G, C, A, B, D 등 공간적 인접 블록의 모션 정보일 수 있으며, 시간적 모션 정보는 적어도 하나의 시간적 인접 블록의 모션 정보일 수 있다.
공간적 모션 정보에 대하여, 아래와 같은 방식을 사용하여 모션 정보 후보 리스트에 추가될 사용 가능 모션 정보를 획득할 수 있다:
방식 11, 도 9a에 도시된 내용을 참조하면 F, G, C, A, B, D는 현재 블록E의 공간적 인접 블록이고, F, G, C, A, B, D의 모션 정보의 "사용 가능"성을 결정할 수 있다. 예시적으로, 만약 F가 존재하는 동시에 인터 예측 모드를 사용하면 F의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 F의 모션 정보는 사용이 불가능한 모션 정보이다. 만약 G가 존재하는 동시에 인터 예측 모드를 사용하면 G의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 G의 모션 정보는 사용이 불가능한 모션 정보이다. 만약 C가 존재하는 동시에 인터 예측 모드를 사용하면 C의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 C의 모션 정보는 사용이 불가능한 모션 정보이다. 만약 A가 존재하는 동시에 인터 예측 모드를 사용하면 A의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 A의 모션 정보는 사용이 불가능한 모션 정보이다. 만약 B가 존재하는 동시에 인터 예측 모드를 사용하면 B의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 B의 모션 정보는 사용이 불가능한 모션 정보이다. 만약 D가 존재하는 동시에 인터 예측 모드를 사용하면 D의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 D의 모션 정보는 사용이 불가능한 모션 정보이다.
방식 12, F, G, C, A, B, D는 현재 블록E의 공간적 인접 블록이고, F, G, C, A, B, D의 모션 정보의 "사용 가능"성을 결정한다. 만약 F가 존재하는 동시에 인터 예측 모드를 사용하면 F의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 F의 모션 정보는 사용이 불가능한 모션 정보이다. 만약 G가 존재하는 동시에 인터 예측 모드를 사용하고, G의 모션 정보가 F의 모션 정보와 상이하면 G의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 G의 모션 정보는 사용이 불가능한 모션 정보이다. 만약 C가 존재하는 동시에 인터 예측 모드를 사용하고, C의 모션 정보가 G의 모션 정보와 상이하면 C의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 C의 모션 정보는 사용이 불가능한 모션 정보이다. 만약 A가 존재하는 동시에 인터 예측 모드를 사용하고, A의 모션 정보가 F의 모션 정보와 상이하면 A의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 A의 모션 정보는 사용이 불가능한 모션 정보이다. 만약 B가 존재하는 동시에 인터 예측 모드를 사용하고, B의 모션 정보가 G의 모션 정보와 상이하면 B의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 B의 모션 정보는 사용이 불가능한 모션 정보이다. 만약 D가 존재하는 동시에 인터 예측 모드를 사용하고, D의 모션 정보가 A의 모션 정보와 상이하며, D의 모션 정보가 G의 모션 정보와 상이하면 D의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 D의 모션 정보는 사용이 불가능한 모션 정보이다.
방식 13, F, G, C, A, B, D는 현재 블록E의 공간적 인접 블록이고, F, G, C, A, B, D의 모션 정보의 "사용 가능"성을 결정할 수 있다. 예시적으로, 만약 F가 존재하는 동시에 인터 예측 모드를 사용하면 F의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 F의 모션 정보는 사용이 불가능한 모션 정보이다. 만약 G가 존재하는 동시에 인터 예측 모드를 사용하고, G의 모션 정보가 F의 모션 정보와 상이하면 G의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 G의 모션 정보는 사용이 불가능한 모션 정보이다. 만약 C가 존재하는 동시에 인터 예측 모드를 사용하고, C의 모션 정보가 G의 모션 정보와 상이하면 C의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 C의 모션 정보는 사용이 불가능한 모션 정보이다. 만약 A가 존재하는 동시에 인터 예측 모드를 사용하고, A의 모션 정보가 F의 모션 정보와 상이하면 A의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 A의 모션 정보는 사용이 불가능한 모션 정보이다. 만약 B가 존재하는 동시에 인터 예측 모드를 사용하면 B의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 B의 모션 정보는 사용이 불가능한 모션 정보이다. 만약 D가 존재하는 동시에 인터 예측 모드를 사용하고, D의 모션 정보가 A의 모션 정보와 상이하며, D의 모션 정보가 G의 모션 정보와 상이하면 D의 모션 정보는 사용 가능 모션 정보이고; 그렇지 않으면 D의 모션 정보는 사용이 불가능한 모션 정보이다.
예시적으로, 방식 12와 방식 13에서, 공간적 인접 블록의 모션 정보가 사용 가능 모션 정보인지 여부를 결정할 경우, 두 개의 공간적 인접 블록(예컨대 당해 공간적 인접 블록과 다른 공간적 인접 블록)의 모션 정보의 동일 여부를 비교해야 하는 바, 예를 들면, G의 모션 정보와 F의 모션 정보의 동일 여부를 비교하고, 모션 정보의 동일 여부의 비교 과정은 실제로 모션 정보의 중복 확인 조작인 바, 만약 중복 확인결과가 중복이면 모션 정보의 비교결과는 동일하며, 만약 중복 확인결과가 중복이 아니면 모션 정보의 비교결과는 상이하다. 모션 정보의 중복 확인 조작에 관하여 후속 실시예를 참조할 수 있는 바, 여기서 더 이상 설명하지 않는다.
시간적 모션 정보에 대하여, 아래 방식을 사용하여 모션 정보 후보 리스트에 추가될 사용 가능 모션 정보를 획득할 수 있다.
방식 21, 현재 블록의 기설정된 위치에 기반하여 현재 블록의 참조 픽처에서 당해 기설정된 위치에 대응하는 시간적 인접 블록을 선택하고, 당해 시간적 인접 블록의 모션 정보를 사용 가능 모션 정보로 결정한다. 예를 들어, 만약 현재 블록이 위치하는 현재 슬라이스가 B 슬라이스이면 co-located 참조 픽처의 co-located 블록에 근거하여 단방향 모션 정보 또는 양방향 모션 정보를 도출하고, 당해 단방향 모션 정보 또는 양방향 모션 정보를 사용 가능 모션 정보로 사용한다. 만약 현재 슬라이스가 P 슬라이스이면 co-located 참조 픽처의 co-located 블록에 근거하여 단방향 모션 정보를 도출하고, 당해 단방향 모션 정보를 사용 가능 모션 정보로 사용한다.
예시적으로, co-located 블록은 co-located 참조 픽처 내의 현재 블록의 기설정된 위치에 대응하는 시간적 인접 블록이고, 현재 블록의 기설정된 위치는 경험에 따라 구성될 수 있으며, 이 현재 블록의 기설정된 위치를 한정하지 않는 바, 예컨대 현재 블록의 왼쪽 상단 픽셀 위치, 현재 블록의 오른쪽 상단 픽셀 위치, 현재 블록의 왼쪽 하단 픽셀 위치, 현재 블록의 오른쪽 하단 픽셀 위치, 현재 블록의 중심 픽셀 위치 등일 수 있다. co-located 참조 픽처가 기설정된 참조 픽처일 수 있다는 것은, 예컨대 현재 블록의 List0에서의 첫 번째 참조 픽처를 co-located 참조 픽처로 사용할 수도 있고, 도출된 참조 픽처일 수도 있는 바, 예컨대 현재 블록의 List0 중 현재 슬라이스와 제일 가까운 참조 픽처를 co-located 참조 픽처로 이용할 수도 있고, 비트 스트림에서 해석된 참조 픽처일 수도 있으며, 예컨대 디코딩단에 있어서, 비트 스트림에서 co-located 참조 픽처의 정보를 해석하고, 이어서 co-located 참조 픽처를 결정할 수 있다.
만약 현재 블록이 위치하는 현재 슬라이스가 B 슬라이스이면 co-located 블록의 모션 정보에 근거하여 단방향 모션 정보 또는 양방향 모션 정보를 도출하고, 만약 현재 블록이 위치하는 현재 슬라이스가 P 슬라이스이면 co-located 블록의 모션 정보에 근거하여 단방향 모션 정보를 도출한다.
방식 22, 현재 블록의 가중치 예측 각도와 가중치 예측 위치에 기반하여 현재 블록의 타깃 위치를 결정하고; 현재 블록의 참조 픽처에서 당해 타깃 위치에 대응하는 시간적 인접 블록을 선택하며, 당해 시간적 인접 블록의 모션 정보를 사용 가능 모션 정보로 결정한다. 예를 들어, 현재 블록의 가중치 예측 각도와 가중치 예측 위치에 기반하여 현재 블록의 타깃 위치를 결정할 수 있는 바, 예컨대 현재 블록의 가중치 예측 각도와 가중치 예측 위치의 인덱스 값에 기반하여 현재 블록의 타깃 위치를 결정할 수 있다. 다음, 현재 블록의 타깃 위치에 근거하여 co-located 참조 픽처의 co-located 블록을 결정하되, 만약 현재 블록이 위치하는 현재 슬라이스가 B 슬라이스이면co-located 참조 픽처의 co-located 블록에 근거하여 단방향 모션 정보 또는 양방향 모션 정보를 도출하고, 당해 단방향 모션 정보 또는 양방향 모션 정보를 사용 가능 모션 정보로 사용한다. 만약 현재 슬라이스가 P 슬라이스이면 co-located 참조 픽처의 co-located 블록에 근거하여 단방향 모션 정보를 도출하고, 당해 단방향 모션 정보를 사용 가능 모션 정보로 사용한다.
co-located 블록은 co-located 참조 픽처 내의 현재 블록의 타깃 위치에 대응하는 시간적 인접 블록이고, 타깃 위치는 현재 블록의 왼쪽 상단 픽셀 위치, 오른쪽 상단 픽셀 위치, 왼쪽 하단 픽셀 위치, 오른쪽 하단 픽셀 위치 등일 수 있다.
예를 들면, 현재 블록의 가중치 예측 각도와 현재 블록의 가중치 예측 위치에 기반하여 현재 블록의 가중치 매트릭스를 얻을 수 있는 바, 도 9b에 도시된 내용을 참조하면, 오른쪽 상측 가중치 부분의 비율이 작고(검정 부분), 공간적 모션 정보와 검정 부분의 연관성이 낮으므로 시간적 모션 정보의 선택은 오른쪽 상측 가중치 부분에 편향할 수 있으며, 이로써 적합한 후보 모션 정보를 제공할 수 있으며, 이 기초 상에, co-located 블록은 현재 블록의 오른쪽 상단 픽셀 위치(즉 비율이 작은 가중치 부분)에 대응하는 시간적 인접 블록, 즉, 현재 블록의 타깃 위치는 현재 블록의 오른쪽 상단 픽셀 위치일 수 있다.
같은 도리로, 도 9c에 도시된 내용을 참조하면, 현재 블록의 가중치 예측 각도와 현재 블록의 가중치 예측 위치에 기반하여 현재 블록의 타깃 위치를 현재 블록의 오른쪽 하단 픽셀 위치로 결정할 수 있다. 도 9d에 도시된 내용을 참조하면, 현재 블록의 가중치 예측 각도와 현재 블록의 가중치 예측 위치에 기반하여 현재 블록의 타깃 위치를 현재 블록의 왼쪽 하단 픽셀 위치로 결정할 수 있다.
사용 가능 모션 정보를 얻은 다음, 각 사용 가능 모션 정보(예컨대 공간적 모션 정보, 시간적 모션 정보 등)에 대하여 아래와 같은 방식 중 하나 또는 조합을 사용하여 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가할 수 있다.
방식 31, 중복 확인 처리를 수행하지 않는다. 예를 들어, 만약 사용 가능 모션 정보가 단방향 모션 정보이면 당해 단방향 모션 정보를 모션 정보 후보 리스트에 추가한다. 만약 사용 가능 모션 정보가 양방향 모션 정보이면 당해 양방향 모션 정보를 제1 단방향 모션 정보와 제2 단방향 모션 정보로 커팅하고, 커팅된 특정 단방향 모션 정보를 모션 정보 후보 리스트에 추가할 수 있는 바, 예를 들면, 당해 제1 단방향 모션 정보를 모션 정보 후보 리스트에 추가할 수 있다.
방식 32, 반중복 확인 처리를 수행하는 바, 즉 양방향 모션 정보의 다른 절반을 중복 확인하지 않는다. 예를 들어, 만약 사용 가능 모션 정보가 단방향 모션 정보이고, 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보가 중복되지 않으면 당해 단방향 모션 정보를 모션 정보 후보 리스트에 추가한다. 만약 사용 가능 모션 정보가 양방향 모션 정보이면 당해 양방향 모션 정보를 제1 단방향 모션 정보와 제2 단방향 모션 정보로 커팅하고, 특정 단방향 모션 정보를 모션 정보 후보 리스트에 추가하는 바, 예를 들면, 만약 양방향 모션 정보 중의 제1 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보가 중복되지 않으면 당해 제1 단방향 모션 정보를 모션 정보 후보 리스트에 추가한다.
방식 33, 전체 중복 확인 처리를 수행한다. 예를 들어, 만약 사용 가능 모션 정보가 단방향 모션 정보이고, 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보가 중복되지 않으면 단방향 모션 정보를 모션 정보 후보 리스트에 추가한다. 만약 사용 가능 모션 정보가 양방향 모션 정보이면 당해 양방향 모션 정보를 제1 단방향 모션 정보와 제2 단방향 모션 정보로 커팅하고, 특정 단방향 모션 정보를 모션 정보 후보 리스트에 추가하는 바, 예를 들면, 만약 양방향 모션 정보 중의 제1 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보가 중복되지 않으면 제1 단방향 모션 정보를 모션 정보 후보 리스트에 추가하며; 만약 제1 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보가 중복되고, 양방향 모션 정보 중의 제2 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보가 중복되지 않으면 제2 단방향 모션 정보를 모션 정보 후보 리스트에 추가한다.
방식 31, 방식 32 및 방식 33에서, 제1 단방향 모션 정보는 제1 참조 픽처 리스트 중의 참조 픽처를 지향하는 단방향 모션 정보일 수 있고; 제2 단방향 모션 정보는 제2 참조 픽처 리스트 중의 참조 픽처를 지향하는 단방향 모션 정보일 수 있다.
예시적으로, 만약 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보의 총 수량(즉 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가할 때, 당해 모션 정보 후보 리스트에 현재 이미 존재하는 후보 모션 정보의 총 수량)이 짝수이면 제1 참조 픽처 리스트는 List0이고, 제2 참조 픽처 리스트는 List1이며; 만약 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보의 총 수량이 홀수이면 제1 참조 픽처 리스트는 List1이고, 제2 참조 픽처 리스트는 List0이다. 또는, 만약 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보의 총 수량이 홀수이면 제1 참조 픽처 리스트는 List0이고, 제2 참조 픽처 리스트는 List1이며; 만약 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보의 총 수량이 짝수이면 제1 참조 픽처 리스트는 List1이고, 제2 참조 픽처 리스트는 List0이다. 또는, 제1 참조 픽처 리스트는 List0이고, 제2 참조 픽처 리스트는 List1이다. 또는, 제1 참조 픽처 리스트는 List1이고, 제2 참조 픽처 리스트는 List0이다.
상기 실시예에서, 단방향 모션 정보(예컨대 단방향 모션 정보, 제1 단방향 모션 정보, 제2 단방향 모션 정보 등)와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보에 대해 중복 확인 조작을 수행하는 것에 관하여, 중복 확인 조작의 결과는 중복일 수도 있고 중복이 아닐 수도 있다. 또 두 개의 공간적 인접 블록의 모션 정보에 대해 중복 확인을 수행하는 것에 관하여, 중복 확인 조작의 결과는 중복일 수도 있고 중복이 아닐 수도 있다. 후속 실시예 19에서는, 또 양방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보에 대해 중복 확인 조작을 수행하는 것에 관하여, 중복 확인 조작의 결과는 중복일 수도 있고 중복이 아닐 수도 있다.
설명의 편리를 위하여, 중복 확인 조작을 수행하는 두 개의 모션 정보를 모션 정보 1 및 모션 정보 2라고 지칭하는 바, 모션 정보 1이 중복 확인될 단방향 모션 정보일 경우, 모션 정보 2는 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보이고; 모션 정보 1이 중복 확인될 양방향 모션 정보일 경우, 모션 정보 2는 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보이며; 모션 정보 1이 사용 가능성을 결정해야 하는 공간적 인접 블록의 모션 정보일 경우, 모션 정보 2는 사용 가능성을 이미 결정한 공간적 인접 블록의 모션 정보이며, 방식 12를 참조하면, 예컨대 F의 모션 정보가 사용 가능할 경우, G의 모션 정보의 사용 가능 여부를 결정해야 할 때, 모션 정보 1은 G의 모션 정보이고, 모션 정보 2는 F의 모션 정보이다.
이 중복 확인 조작에 대하여 아래와 같은 방식을 사용하여 구현할 수 있다:
방식 41, List+refIdx+MV_x+MV_y에 기반하여 중복 확인 조작을 수행한다. 예를 들어, 먼저 지향하는 List 리스트의 동일 여부(즉 List0을 지향하는지 아니면 List1을 지향하는지 아니면 List0과 List1을 동시에 지향하는지)를 검사한 다음 refidx의 동일 여부를 검사하고, 그 다음 MV의 동일 여부(즉 수평 컴포넌트의 동일 여부, 및 수직 컴포넌트의 동일 여부)를 검사한다.
예시적으로, 먼저 모션 정보 1이 지향하는 참조 픽처 리스트와 모션 정보 2가 지향하는 참조 픽처 리스트의 동일 여부를 조회하되, 만약 상이하면 모션 정보 1과 모션 정보 2는 중복되지 않는다. 만약 동일하면 모션 정보 1의 refIdx와 모션 정보 2의 refIdx의 동일 여부를 조회하고, 만약 상이하면 모션 정보 1과 모션 정보 2는 중복되지 않는다. 만약 동일하면 모션 정보 1의 모션 벡터와 모션 정보 2의 모션 벡터의 동일 여부를 조회하고, 만약 "아니오"이면 모션 정보 1과 모션 정보 2는 중복되지 않으며, 만약 "예"이면 모션 정보 1과 모션 정보 2가 중복된다고 결정한다.
예시적으로, 만약 모션 정보 1이 지향하는 참조 픽처 리스트와 모션 정보 2가 지향하는 참조 픽처 리스트가 모두 List0이면 양자는 동일하거나, 또는, 만약 모션 정보 1이 지향하는 참조 픽처 리스트와 모션 정보 2가 지향하는 참조 픽처 리스트가 모두 List1이면 양자는 동일하거나, 또는, 만약 모션 정보 1이 지향하는 참조 픽처 리스트는 List0이고, 모션 정보 2가 지향하는 참조 픽처 리스트는 List1이면 양자는 상이하거나, 또는, 만약 모션 정보 1이 지향하는 참조 픽처 리스트는 List1이고, 모션 정보 2가 지향하는 참조 픽처 리스트는 List0이면 양자는 상이하거나, 또는, 만약 모션 정보 1이 지향하는 참조 픽처 리스트는 List0이고, 모션 정보 2가 지향하는 참조 픽처 리스트는 List0 및 List1이면 양자는 상이하거나, 또는, 만약 모션 정보 1이 지향하는 참조 픽처 리스트는 List1이고, 모션 정보 2가 지향하는 참조 픽처 리스트는 List0 및 List1이면 양자는 상이하거나, 또는, 만약 모션 정보 1이 참조 픽처 리스트 List0 중 참조 픽처 인덱스가 refIdx0인 참조 픽처를 지향하고, List1 중 참조 픽처 인덱스가 refIdx1인 참조 픽처를 지향하며, 모션 정보 2가 List0 중 참조 픽처 인덱스가 refIdx2인 참조 픽처를 지향하고, List1 중 참조 픽처 인덱스가 refIdx3인 참조 픽처를 지향하며, refIdx0이 refIdx2와 같지 않거나, 또는 refIdx1이 refIdx3과 같지 않으면 양자는 상이하다. 물론, 상술한 내용은 단지 참조 픽처 리스트를 비교하는 몇 개의 예시일 뿐, 이에 대해 한정하지 않는다.
예시적으로, 만약 모션 정보 1의 모션 벡터의 수평 컴포넌트와 모션 정보 2의 모션 벡터의 수평 컴포넌트가 동일하고, 모션 정보 1의 모션 벡터의 수직 컴포넌트와 모션 정보 2의 모션 벡터의 수직 컴포넌트가 동일하면 모션 정보 1의 모션 벡터와 모션 정보 2의 모션 벡터가 동일하다는 것을 설명한다.
방식 42, POC+MV_x+MV_y에 기반하여 중복 확인 조작을 수행한다.
예를 들어, 먼저 지향하는 참조 픽처의 POC 동일 여부(즉 만약 List0에서 참조 픽처 인덱스가 refIdx0인 참조 픽처를 지향하는 POC가 List1에서 참조 픽처 인덱스가 refIdx1인 참조 픽처를 지향하는 POC와 같아도, 동일한 것으로 판정되며, 단방향 모션 정보와 단방향 모션 정보의 중복 확인, 및, 양방향 모션 정보와 양방향 모션 정보의 중복 확인에 모두 적용됨)를 검사하고; 그 다음 MV 동일 여부(즉 수평 컴포넌트의 동일 여부, 및 수직 컴포넌트의 동일 여부)를 검사한다.
예시적으로, 먼저 모션 정보 1이 지향하는 참조 픽처의 POC와 모션 정보 2가 지향하는 참조 픽처의 POC 동일 여부를 조회하되, 만약 상이하면 모션 정보 1과 모션 정보 2는 중복되지 않는다. 만약 동일하면 계속하여 모션 정보 1의 모션 벡터와 모션 정보 2의 모션 벡터의 동일 여부를 조회하는 바, 만약 상이하면 모션 정보 1과 모션 정보 2는 중복되지 않으며, 만약 동일하면 모션 정보 1과 모션 정보 2가 중복된다고 결정한다.
예시적으로, 지향하는 참조 픽처의 POC가 동일하다는 것은 아래 내용을 포함할 수 있다: 모션 정보 1이 List0에서 참조 픽처 인덱스가 refIdx0인 참조 픽처를 지향하고, 모션 정보 2가 List0에서 참조 픽처 인덱스가 refIdx0인 참조 픽처를 지향하며, 모션 정보 1이 지향하는 참조 픽처의 POC와 모션 정보 2가 지향하는 참조 픽처의 POC가 동일하다. 또는, 모션 정보 1이 List1에서 참조 픽처 인덱스가 refIdx1인 참조 픽처를 지향하고, 정보 2가 List1에서 참조 픽처 인덱스가 refIdx1인 참조 픽처를 지향하며, 모션 정보 1이 지향하는 참조 픽처의 POC와 모션 정보 2가 지향하는 참조 픽처의 POC가 동일하다. 또는, 모션 정보 1이 List0에서 참조 픽처 인덱스가 refIdx0인 참조 픽처를 지향하고, 정보 2가 List1에서 참조 픽처 인덱스가 refIdx1인 참조 픽처를 지향하며, 모션 정보 1이 지향하는 참조 픽처의 POC와 모션 정보 2가 지향하는 참조 픽처의 POC가 동일하다. 또는, 모션 정보 1이 List1에서 참조 픽처 인덱스가 refIdx1인 참조 픽처를 지향하고, 모션 정보 2가 List0에서 참조 픽처 인덱스가 refIdx0인 참조 픽처를 지향하며, 모션 정보 1이 지향하는 참조 픽처의 POC와 모션 정보 2가 지향하는 참조 픽처의 POC가 동일하다. 또는, 모션 정보 1이 List0에서 참조 픽처 인덱스가 refIdx0인 참조 픽처를 지향하고, List1에서 참조 픽처 인덱스가 refIdx1인 참조 픽처를 지향하며, 모션 정보 2가 List0에서 참조 픽처 인덱스가 refIdx2인 참조 픽처를 지향하고, List1에서 참조 픽처 인덱스가 refIdx3인 참조 픽처를 지향하며, 모션 정보 1이 지향하는 List0에서 참조 픽처 인덱스가 refIdx0인 참조 픽처의 POC와 모션 정보 2가 지향하는 List1에서 참조 픽처 인덱스가 refIdx3인 참조 픽처의 POC는 동일하고, 모션 정보 1이 지향하는 List1에서 참조 픽처가 refIdx1인 참조 픽처의 POC와 모션 정보 2가 지향하는 List0에서 참조 픽처 인덱스가 refIdx2인 참조 픽처의 POC는 동일하다. 물론, 상술한 내용은 단지 참조 픽처의 POC가 동일한 몇 개의 예시일 뿐, 이에 대해 한정하지 않는다.
예시적으로, 상기 과정은 참조 픽처의 POC에 대해 중복 확인을 수행하는 것으로서, 유의해야 할 점은, 참조 픽처의 POC는 단지 중복 확인 조작의 하나의 예시일 뿐, POC를 외에도, 참조 픽처의 동일 여부를 결정할 수 있는 기타 속성, 예컨대 참조 픽처의 DOC 등을 사용할 수도 있으며, 이에 대해 한정하지 않는다. 요약하면, 상기 POC를 DOC로 대체할 수 있다.
요약하면, 모션 정보 후보 리스트를 획득할 수 있는 바, 당해 모션 정보 후보 리스트는 AwpUniArray라고도 하며, 아래에서는 몇 개의 구체적인 응용 시나리오와 결부하여 상기 모션 정보 후보 리스트의 획득 과정을 설명한다. 후속적인 응용 시나리오에서, 만약 모션 정보 후보 리스트의 길이를 X, 즉 X개의 사용 가능 모션 정보를 추가해야 한다고 가정하면, 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가한 후, 이미 추가한 모션 정보를 후보 모션 정보라고 지칭한다.
응용 시나리오 1: 공간적 모션 정보를 모션 정보 후보 리스트에 추가하되, 만약 리스트 길이가 X와 같으면 추가 과정을 완료하고, 만약 리스트 길이가 X보다 작으면 리스트 길이가 X가 될 때까지 기설정된 모션 정보를 모션 정보 후보 리스트에 추가한다.
예시적으로, 먼저 모션 정보 후보 리스트에 추가될 사용 가능 모션 정보(즉 공간적 모션 정보)를 결정한다. 예를 들어, 방식 11을 사용하여 사용 가능 모션 정보를 결정하거나, 또는, 방식 12를 사용하여 사용 가능 모션 정보를 결정하거나, 또는, 방식 13을 사용하여 사용 가능 모션 정보를 결정한다. 방식 12 또는 방식 13을 사용하여 사용 가능 모션 정보를 결정할 경우, 두 개의 공간적 인접 블록의 모션 정보의 중복 확인 조작에 관하여 방식 41을 사용하여 중복 확인 조작을 수행하거나 또는 방식 42를 사용하여 중복 확인 조작을 수행할 수 있다.
예시적으로, 도 9a에 도시된 내용을 참조하면, F, G, C, A, B, D에서의 사용 가능 모션 정보의 순서(이 순서는 변화될 수 있음)에 따라 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가할 수 있다. 각 사용 가능 모션 정보에 대하여, 방식 31을 사용하여 당해 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가할 수도 있고, 방식 32를 사용하여 당해 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가할 수도 있으며, 또 방식 33을 사용하여 당해 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가할 수도 있다.
예시적으로, 방식 32 또는 방식 33을 사용하여 당해 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가할 경우, 단방향 모션 정보 및 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보에 대해 중복 확인 조작을 수행할 수도 있는 바, 예를 들면, 방식 41을 사용하여 중복 확인 조작을 수행하거나, 또는, 방식 42를 사용하여 중복 확인 조작을 수행할 수 있다.
응용 시나리오 2: 시간적 모션 정보를 모션 정보 후보 리스트에 추가하되, 만약 리스트 길이가 X와 같으면 추가 과정을 완료하고, 만약 리스트 길이가 X보다 작으면 리스트 길이가 X가 될 때까지 기설정된 모션 정보를 모션 정보 후보 리스트에 추가한다.
예시적으로, 먼저 모션 정보 후보 리스트에 추가될 사용 가능 모션 정보(즉 시간적 모션 정보)를 결정한다. 예를 들어, 방식 21을 사용하여 사용 가능 모션 정보를 결정하거나, 또는, 방식 22를 사용하여 사용 가능 모션 정보를 결정한다.
예시적으로, 각 사용 가능 모션 정보에 대하여, 방식 31을 사용하여 당해 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가할 수도 있고, 방식 32를 사용하여 당해 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가할 수도 있으며, 또 방식 33을 사용하여 당해 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가할 수도 있다.
예시적으로, 방식 32 또는 방식 33을 사용하여 당해 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가할 경우, 단방향 모션 정보 및 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보에 대해 중복 확인 조작을 더 수행할 수도 있는 바, 예를 들면, 방식 41을 사용하여 중복 확인 조작을 수행하거나, 또는, 방식 42를 사용하여 중복 확인 조작을 수행할 수도 있다.
응용 시나리오 3: 공간적 모션 정보와 시간적 모션 정보를 함께 모션 정보 후보 리스트(공간적 모션 정보는 시간적 모션 정보 전에 위치할 수 있고, 시간적 모션 정보도 공간적 모션 정보 전에 위치할 수 있으며, 설명의 편리를 위하여 아래에서는 공간적 모션 정보가 시간적 모션 정보 전에 위치하는 것을 예로 함)에 추가하기 전에, 만약 리스트 길이가 X와 같으면 추가 과정을 완료하고, 만약 리스트 길이가 X보다 작으면 리스트 길이가 X가 될 때까지 기설정된 모션 정보를 모션 정보 후보 리스트에 추가한다.
예시적으로, 모션 정보 후보 리스트에 추가될 사용 가능 모션 정보(즉 공간적 모션 정보와 시간적 모션 정보)를 결정한다. 예를 들어, 방식 11과 방식 21을 사용하여 사용 가능 모션 정보를 결정하거나, 또는, 방식 11과 방식 22를 사용하여 사용 가능 모션 정보를 결정하거나, 또는, 방식 12와 방식 21을 사용하여 사용 가능 모션 정보를 결정하거나, 또는, 방식 12와 방식 22를 사용하여 사용 가능 모션 정보를 결정하거나, 또는, 방식 13과 방식 21을 사용하여 사용 가능 모션 정보를 결정하거나, 또는, 방식 13과 방식 22를 사용하여 사용 가능 모션 정보를 결정한다. 물론, 상술한 내용은 몇 개의 예시일 뿐, 이에 대해 한정하지 않는다.
방식 12 또는 방식 23을 사용하여 사용 가능 모션 정보를 결정할 경우, 두 개의 공간적 인접 블록의 모션 정보의 중복 확인 조작에 관하여 방식 41을 사용하여 중복 확인 조작을 수행하거나, 또는, 방식 42를 사용하여 중복 확인 조작을 수행할 수 있다.
예시적으로, F, G, C, A, B, D 중 사용 가능 모션 정보의 순서, 및 시간적 모션 정보(즉 사용 가능 모션 정보)의 순서에 따라 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가한다. 각 사용 가능 모션 정보에 대하여, 방식 31을 사용하여 당해 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가하거나, 또는 방식 32를 사용하여 당해 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가하거나, 또는 방식 33을 사용하여 당해 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가한다.
예시적으로, 방식 32 또는 방식 33을 사용하여 당해 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가할 경우, 단방향 모션 정보 및 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보에 대해 중복 확인 조작을 수행할 수도 있는 바, 예를 들면, 방식 41을 사용하여 중복 확인 조작을 수행하거나, 또는, 방식 42를 사용하여 중복 확인 조작을 수행할 수 있다.
요약하면, 공간적 모션 정보와 시간적 모션 정보의 순서에 기반하여 리스트 길이가 X가 되거나 또는 순회가 완료될 때까지, 공간적 모션 정보와 시간적 모션 정보를 함께 모션 정보 후보 리스트에 추가하고; 만약 리스트 길이가 X보다 작으면, 리스트 길이가 X가 될 때까지 기설정된 모션 정보를 모션 정보 후보 리스트에 추가한다.
응용 시나리오 4: 공간적 모션 정보를 모션 정보 후보 리스트에 추가한 후, 시간적 모션 정보를 위해 적어도 Y개의 위치 미리 남기며, 시간적 모션 정보가 양방향 모션 정보이면 또는 단방향 모션 정보이다. 예시적으로, 공간적 모션 정보를 모션 정보 후보 리스트에 추가하되, 만약 리스트 길이가 X-Y와 같으면 공간적 모션 정보의 추가 과정을 완료하거나, 또는 공간적 모션 정보 순회가 완료될 때까지 수행한다. 다음, 시간적 모션 정보를 모션 정보 후보 리스트에 추가하되, 만약 리스트 길이가 X와 같으면 시간적 모션 정보의 추가 과정을 완료하거나, 또는 시간적 모션 정보 순회가 완료될 때까지 수행하며, 리스트 길이가 X보다 작으면 시간적 모션 정보의 추가 과정을 완료하고, 리스트 길이가 X가 될 때까지 기설정된 모션 정보를 모션 정보 후보 리스트에 추가한다.
예시적으로, 모션 정보 후보 리스트에 추가될 사용 가능 모션 정보(즉 공간적 모션 정보와 시간적 모션 정보)를 결정한다. 예를 들어, 방식 11과 방식 21을 사용하여 사용 가능 모션 정보를 결정하거나, 또는, 방식 11과 방식 22를 사용하여 사용 가능 모션 정보를 결정하거나, 또는, 방식 12와 방식 21을 사용하여 사용 가능 모션 정보를 결정하거나, 또는, 방식 12와 방식 22를 사용하여 사용 가능 모션 정보를 결정하거나, 또는, 방식 13과 방식 21을 사용하여 사용 가능 모션 정보를 결정하거나, 또는, 방식 13과 방식 22를 사용하여 사용 가능 모션 정보를 결정한다. 물론, 상술한 내용은 몇 개의 예시일 뿐, 이에 대해 한정하지 않는다.
방식 12 또는 방식 23을 사용하여 사용 가능 모션 정보를 결정할 경우, 두 개의 공간적 인접 블록의 모션 정보의 중복 확인 조작에 관하여 방식 41을 사용하여 중복 확인 조작을 수행하거나, 또는, 방식 42를 사용하여 중복 확인 조작을 수행할 수 있다.
예시적으로, 리스트 길이가 X-Y와 같거나 공간적 모션 정보 순회가 완료될 때까지 F, G, C, A, B, D 중 사용 가능 모션 정보(즉 공간적 모션 정보)의 순서에 따라 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가한다. 다음, 리스트 길이가 X와 같거나 또는 시간적 모션 정보 순회가 완료될 때까지 시간적 모션 정보(즉 사용 가능 모션 정보)를 모션 정보 후보 리스트에 추가한다. 사용 가능 모션 정보의 추가 과정에서, 각 사용 가능 모션 정보에 대하여, 방식 31을 사용하여 당해 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가하거나, 또는 방식 32를 사용하여 당해 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가하거나, 또는 방식 33을 사용하여 당해 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가한다.
예시적으로, 방식 32 또는 방식 33을 사용하여 당해 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가할 경우, 단방향 모션 정보 및 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보에 대해 중복 확인 조작을 수행할 수도 있는 바, 예를 들면, 방식 41을 사용하여 중복 확인 조작을 수행하거나, 또는, 방식 42를 사용하여 중복 확인 조작을 수행할 수 있다.
상기 각 응용 시나리오에서, X는 임의의 양의 정수를 취할 수 있는 바, 예를 들면, X의 값은 4, 5 등일 수 있다.
상기 각 응용 시나리오에서는, 모두 기설정된 모션 정보(디폴트 모션 정보라고도 지칭함)를 모션 정보 후보 리스트에 추가할 수 있는 바, 기설정된 모션 정보의 구현 방식에 관하여 아래와 같은 방식을 포함할 수 있으나 이에 한정되지 않는다:
방식 51, 기설정된 모션 정보는 제로 모션 정보, 예컨대 ListX를 지향하고, refIdx는 ListX 중 참조 픽처 수량보다 작은 제로 모션 벡터이다. 예를 들어, 0 채우기 연산을 수행할 수 있는 바, 즉 모션 정보는 (0, 0, ref_idx3, ListZ) 일 수 있다.
방식 52, 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보에 기반하여 도출된 디폴트 모션 정보.
예를 들어, 확대 또는 축소해야 할 x축 방향 또는 y축 방향의 모션 벡터의 절대값이 temp_val, 결과가 result라고 하면:
1, 만약 temp_val<8이면 result=8, 또는, result=-8이다.
예시적으로, 만약 후보 모션 정보의 x축 방향의 temp_val이 8보다 작으면 디폴트 모션 정보의 x축 방향의 모션 벡터는 8이거나, 또는, 디폴트 모션 정보의 x축 방향의 모션 벡터는 -8이다.
만약 후보 모션 정보의 y축 방향의 temp_val이 8보다 작으면 디폴트 모션 정보의 y축 방향의 모션 벡터는 8이거나, 또는, 디폴트 모션 정보의 y축 방향의 모션 벡터는 -8이다.
2, 1을 만족시키지 않는다고 가정할 경우, 만약 temp_val <=64이면 result=(temp_val*5+2)>>2이거나, 또는, result=(temp_val*3+2)>>2이며, 부호는 후보 모션 정보의 모션 벡터의 부호와 동일하다.
예시적으로, 만약 후보 모션 정보의 x축 방향의 모션 벡터가 양의 수이고, x축 방향의 모션 벡터의 절대값(즉 temp_val)이 64보다 작거나 같으면 디폴트 모션 정보의 x축 방향의 모션 벡터는 (temp_val*5+2)>>2이고, 만약 후보 모션 정보의 x축 방향의 모션 벡터가 음의 수이고 x축 방향의 모션 벡터의 절대값(즉 temp_val)이 64보다 작거나 같으면 디폴트 모션 정보의 x축 방향의 모션 벡터는 result=(temp_val*3+2)>>2이다.
디폴트 모션 정보의 y축 방향의 모션 벡터에 대하여, x축 방향의 모션 벡터는 유사하다.
3, 1과 2를 만족시키지 않는다고 가정할 경우, 만약 temp_val <=128이면 result=(temp_val*9+4)>>3이거나, 또는, result=(temp_val*7+4)>>3이고, 부호는 후보 모션 정보의 모션 벡터의 부호와 동일하다.
4, 1을 만족시키지 않고, 2를 만족시키지 않으며, 3을 만족시키지 않는다고 가정하면 result=(temp_val*33+16)>>5거나, 또는, result=(temp_val*31+16)>>5이며, 부호는 후보 모션 정보의 모션 벡터의 부호와 동일하다.
방식 53, 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보에 기반하여 도출된 디폴트 모션 정보.
예를 들어, 모션 정보 후보 리스트 중 임의의 하나의 유효한 후보 모션 정보(x, y, ref_idx, ListX)를 기반으로 하면, ref_idx와 ListX는 각각 참조 픽처 인덱스와 참조 픽처 리스트이고, 양자를 참조 픽처 정보로 총칭하며, 아래 중 적어도 하나의 모션 정보를 추가할 수 있다: (x+a, y+b, ref_idx, ListX), a, b는 임의의 정수를 취할 수 있고; (k1*x, k1*y, ref_idx_new1, ListX), k1는 임의의 0이 아닌 양의 정수, 즉 모션 벡터에 대해 신축조작을 수행하며; (k2*x, k2*y, ref_idx_new2, ListY), k2는 임의의 0이 아닌 양의 정수, 즉 모션 벡터에 대해 신축조작을 수행한다.
방식 54, 기설정된 모션 정보는 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보인 바, 즉 패딩(padding)조작을 수행할 경우, 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보를 사용하여 중복 충진(filling) 조작을 수행할 수 있다. 예를 들면, 모션 정보 후보 리스트에 이미 존재하는 제일 마지막 하나의 단방향 모션 정보를 사용하여 중복 충진을 수행할 수 있다.
요약하면, 리스트 길이가 X보다 작아 기설정된 모션 정보를 모션 정보 후보 리스트에 추가해야 할 경우, 리스트 길이가 X가 될 때까지 방식 51에 따른 기설정된 모션 정보를 모션 정보 후보 리스트에 추가할 수 있다. 또는, 리스트 길이가 X가 될 때까지 방식 52에 따른 기설정된 모션 정보를 모션 정보 후보 리스트에 추가할 수 있다. 또는, 리스트 길이가 X가 될 때까지 방식 53에 따른 기설정된 모션 정보를 모션 정보 후보 리스트에 추가할 수 있다. 또는, 리스트 길이가 X가 될 때까지 방식 51 및 방식 52에 따른 기설정된 모션 정보를 모션 정보 후보 리스트에 추가할 수 있다. 또는, 리스트 길이가 X가 될 때까지 방식 51 및 방식 53에 따른 기설정된 모션 정보를 모션 정보 후보 리스트에 추가할 수 있다. 또는, 리스트 길이가 X가 될 때까지 방식 52 및 방식 53에 따른 기설정된 모션 정보를 모션 정보 후보 리스트에 추가할 수 있다. 또는, 리스트 길이가 X가 될 때까지 방식 51, 방식 52 및 방식 53에 따른 기설정된 모션 정보를 모션 정보 후보 리스트에 추가할 수 있다.
예시적으로, 상기 방식을 사용하여 기설정된 모션 정보를 모션 정보 후보 리스트에 추가한 다음, 만약 리스트 길이가 여전히 X보다 작으면 방식 54에 따른 기설정된 모션 정보를 모션 정보 후보 리스트에 추가, 즉, 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보를 사용하여 리스트 길이가 X가 될 때까지 중복 충진 조작을 수행할 수 있다.
다른 가능한 일 실시형태에서, 리스트 길이가 X보다 작아 기설정된 모션 정보를 모션 정보 후보 리스트에 추가해야 할 경우, 방식 54에 따른 기설정된 모션 정보를 직접 모션 정보 후보 리스트에 추가, 즉, 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보를 사용하여 리스트 길이가 X가 될 때까지 중복 충진 조작을 수행할 수 있다.
상기 실시예에서, 기설정된 모션 정보는 단방향 모션 정보일 수도 있고, 양방향 모션 정보일 수도 있다. 만약 기설정된 모션 정보가 단방향 모션 정보이면 당해 기설정된 모션 정보를 모션 정보 후보 리스트에 추가할 경우, 중복 확인 조작을 수행할 수도 있고, 중복 확인 조작을 수행하지 않을 수도 있다. 만약 중복 확인 조작을 수행하지 않으면 당해 기설정된 모션 정보를 직접 모션 정보 후보 리스트에 추가한다. 만약 중복 확인 조작을 수행하면 방식 41을 사용하여 중복 확인 조작을 수행하거나, 또는, 방식 42를 사용하여 중복 확인 조작을 수행할 수 있다. 만약 중복 확인 조작의 결과가 중복이 아니면 당해 기설정된 모션 정보를 모션 정보 후보 리스트에 추가한다. 만약 중복 확인 조작의 결과가 중복이면 당해 기설정된 모션 정보를 모션 정보 후보 리스트에 추가하지 않는다.
실시예 15: 실시예 1 내지 실시예 3에서, 코딩단/디코딩단은 모션 정보 후보 리스트(실시예 13 및 실시예 14를 참조)를 얻은 다음, 당해 모션 정보 후보 리스트에 기반하여 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득할 수 있는 바, 제1 타깃 모션 정보와 제2 타깃 모션 정보의 획득 방식에 관하여 아래와 같은 방식을 사용하여 구현할 수 있다:
방식 1, 모션 정보 후보 리스트에서 하나의 후보 모션 정보를 현재 블록의 제1 타깃 모션 정보로 선택하고, 모션 정보 후보 리스트에서 다른 한 후보 모션 정보를 현재 블록의 제2 타깃 모션 정보로 선택한다.
예시적으로, 코딩단과 디코딩단에 있어서, 모두 모션 정보 후보 리스트를 획득할 수 있고, 코딩단의 모션 정보 후보 리스트는 디코딩단의 모션 정보 후보 리스트와 동일한 바, 당해 모션 정보 후보 리스트에 대해 한정하지 않는다.
코딩단에 있어서, 율-왜곡 원칙에 기반하여 모션 정보 후보 리스트에서 하나의 후보 모션 정보를 현재 블록의 제1 타깃 모션 정보로 선택하고, 모션 정보 후보 리스트에서 다른 한 후보 모션 정보를 현재 블록의 제2 타깃 모션 정보로 선택하며, 제1 타깃 모션 정보와 제2 타깃 모션 정보는 상이한 바, 이에 대해 한정하지 않는다.
가능한 일 실시형태에서, 코딩단이 디코딩단에 코딩된 비트 스트림을 송신할 경우, 당해 코딩된 비트 스트림은 지시정보 a와 지시정보 b를 휴대할 수 있는 바, 지시정보 a는 현재 블록의 제1 타깃 모션 정보의 인덱스 값 1을 지시하고, 인덱스 값 1은 제1 타깃 모션 정보가 모션 정보 후보 리스트 중 몇 번째 후보 모션 정보인지를 나타낸다. 지시정보 b는 현재 블록의 제2 타깃 모션 정보의 인덱스 값 2를 지시하고, 인덱스 값 2는 제2 타깃 모션 정보가 모션 정보 후보 리스트 중 몇 번째 후보 모션 정보인지를 나타낸다. 예시적으로, 인덱스 값 1과 인덱스 값 2는 상이할 수 있다.
디코딩단은 코딩된 비트 스트림을 수신한 후, 코딩된 비트 스트림에서 지시정보 a와 지시정보 b를 해석한다. 지시정보 a에 기반하여 디코딩단은 모션 정보 후보 리스트에서 인덱스 값 1에 대응하는 후보 모션 정보를 선택하고, 당해 후보 모션 정보를 현재 블록의 제1 타깃 모션 정보로 사용한다. 지시정보 b에 기반하여 디코딩단은 모션 정보 후보 리스트에서 인덱스 값 2에 대응하는 후보 모션 정보를 선택하고, 당해 후보 모션 정보를 현재 블록의 제2 타깃 모션 정보로 사용한다.
다른 가능한 일 실시형태에서, 코딩단이 디코딩단에 코딩된 비트 스트림을 송신할 경우, 당해 코딩된 비트 스트림은 지시정보 a와 지시정보 c를 휴대할 수 있는 바, 당해 지시정보 a는 현재 블록의 제1 타깃 모션 정보의 인덱스 값 1을 지시할 수 있고, 인덱스 값 1은 제1 타깃 모션 정보가 모션 정보 후보 리스트 중 몇 번째 후보 모션 정보인지를 나타낼 수 있다. 당해 지시정보 c는 인덱스 값 2와 인덱스 값 1의 차이값을 지시할 수 있고, 인덱스 값 2는 제2 타깃 모션 정보가 모션 정보 후보 리스트 중 몇 번째 후보 모션 정보인지를 나타낼 수 있다. 예시적으로, 인덱스 값 1과 인덱스 값 2는 상이할 수 있다.
디코딩단은 코딩된 비트 스트림을 수신한 후, 코딩된 비트 스트림에서 지시정보 a와 지시정보 c를 해석할 수 있다. 지시정보 a에 기반하여 디코딩단은 모션 정보 후보 리스트에서 인덱스 값 1에 대응하는 후보 모션 정보를 선택할 수 있는 바, 당해 후보 모션 정보를 현재 블록의 제1 타깃 모션 정보로 사용한다. 지시정보 c에 기반하여 디코딩단은 먼저 인덱스 값 2와 인덱스 값 1의 차이값 및 인덱스 값 1에 근거하여 인덱스 값 2를 결정한 다음, 디코딩단은 모션 정보 후보 리스트에서 인덱스 값 2에 대응하는 후보 모션 정보를 선택하여 당해 후보 모션 정보를 현재 블록의 제2 타깃 모션 정보로 사용할 수 있다.
예시적으로, 제1 타깃 모션 정보의 지시정보와 제2 타깃 모션 정보의 지시정보는 서로 호환될 수 있고, 코딩단과 디코딩단이 일치하기만 하면 되며, 여기서는 지시정보의 호환으로서, 해석과정에 영향을 미치지 않는 바, 즉 해석 의존이 존재하지 않는다. 제1 타깃 모션 정보의 지시정보와 제2 타깃 모션 정보의 지시정보는 같을 수 없으며, 두 개의 인덱스 값을 코딩하되, 인덱스 값 a의 값이 1이고, 인덱스 값 b의 값이 3이며 먼저 인덱스 값 a를 코딩한다고 가정할 경우, 인덱스 값 b는 2(즉, 3-1)를 코딩할 수 있고, 먼저 인덱스 값 b를 코딩할 경우, 인덱스 값 b는 3을 코딩해야 한다. 요약하면, 먼저 인덱스 값이 작은 지시정보를 코딩하면, 큰 인덱스 값의 코딩 코스트를 저하시킬 수 있다. 예를 들어, 먼저 제1 타깃 모션 정보의 지시정보, 예컨대 인덱스 값 a를 코딩한 다음 제2 타깃 모션 정보의 지시정보, 예컨대 인덱스 값 b를 코딩한다. 또한 먼저 제2 타깃 모션 정보의 지시정보, 예컨대 인덱스 값 b를 코딩한 다음 제1 타깃 모션 정보의 지시정보, 예컨대 인덱스 값 a를 코딩할 수도 있다. 예를 들면, 인덱스 값 a의 값이 1이고, 인덱스 값 b의 값이 3이라고 가정하면 먼저 인덱스 값 a를 코딩한 다음 인덱스 값 b를 코딩한다. 또 예를 들면, 인덱스 값 b의 값을 1로, 인덱스 값 a의 값을 3으로 코딩하면 인덱스 값 b를 코딩한 다음 인덱스 값 a를 코딩한다.
방식 2, 모션 정보 후보 리스트에서 후보 모션 정보를 선택하여 현재 블록의 제1 원본 모션 정보로 이용하고, 모션 정보 후보 리스트에서 후보 모션 정보를 선택하여 현재 블록의 제2 원본 모션 정보로 이용하되, 예시적으로, 당해 제1 원본 모션 정보와 당해 제2 원본 모션 정보는 상이할 수 있는 바, 즉 모션 정보 후보 리스트에서 두 개의 상이한 후보 모션 정보를 선택하여 제1 원본 모션 정보와 제2 원본 모션 정보로 이용하거나; 또는, 당해 제1 원본 모션 정보와 당해 제2 원본 모션 정보가 동일할 수도 있는 바, 즉 모션 정보 후보 리스트에서 동일한 후보 모션 정보를 선택하여 제1 원본 모션 정보와 제2 원본 모션 정보로 이용할 수 있다. 다음, 당해 제1 원본 모션 정보에 근거하여 현재 블록의 제1 타깃 모션 정보를 결정하고, 당해 제2 원본 모션 정보에 근거하여 현재 블록의 제2 타깃 모션 정보를 결정할 수 있다. 예시적으로, 당해 제1 타깃 모션 정보와 당해 제2 타깃 모션 정보는 상이할 수 있다.
어떻게 원본 모션 정보에 근거하여 타깃 모션 정보를 결정할 것인가에 관하여, 본 실시예에서는 각도 가중 예측 모션 벡터 수정(Angular Weighted Prediction with Motion Vector Refinement, AWP_MVR) 방안을 제안하는 바, 예를 들어, 제1 원본 모션 정보는 제1 원본 모션 벡터를 포함하고, 제1 타깃 모션 정보는 제1 타깃 모션 벡터를 포함하며, 제2 원본 모션 정보는 제2 원본 모션 벡터를 포함하고, 제2 타깃 모션 정보는 제2 타깃 모션 벡터를 포함하며, 이 기초 상에, 제1 원본 모션 벡터에 대응하는 제1 모션 벡터 차이(즉 MVD)를 획득하며; 제1 모션 벡터 차이와 제1 원본 모션 벡터에 근거하여 제1 타깃 모션 벡터를 결정(즉 제1 모션 벡터 차이와 제1 원본 모션 벡터의 합을 제1 타깃 모션 벡터로 사용)한다. 제2 원본 모션 벡터에 대응하는 제2 모션 벡터 차이를 획득할 수 있고; 제2 모션 벡터 차이와 제2 원본 모션 벡터에 근거하여 제2 타깃 모션 벡터를 결정(즉 제2 모션 벡터 차이와 제2 원본 모션 벡터의 합을 제2 타깃 모션 벡터로 사용)할 수 있다.
예시적으로, 제1 타깃 모션 벡터를 결정할 경우, 제1 모션 벡터 차이를 중첩하지 않을 수도 있는 바, 즉 제1 원본 모션 벡터를 제1 타깃 모션 벡터로 결정할 수 있다. 그러나, 제2 타깃 모션 벡터를 결정할 경우, 제2 모션 벡터 차이를 중첩할 수 있는 바, 즉 제2 모션 벡터 차이와 제2 원본 모션 벡터에 근거하여 제2 타깃 모션 벡터를 결정할 수 있다. 또는,
제2 타깃 모션 벡터를 결정할 경우, 제2 모션 벡터 차이를 중첩하지 않을 수도 있는 바, 즉 제2 원본 모션 벡터를 제2 타깃 모션 벡터로 결정할 수 있다. 그러나, 제1 타깃 모션 벡터를 결정할 경우, 제1 모션 벡터 차이를 중첩할 수 있는 바, 즉 제1 모션 벡터 차이와 제1 원본 모션 벡터에 근거하여 제1 타깃 모션 벡터를 결정할 수 있다. 또는,
제1 타깃 모션 벡터를 결정할 경우, 제1 모션 벡터 차이를 중첩할 수 있는 바, 즉 제1 모션 벡터 차이와 제1 원본 모션 벡터에 근거하여 제1 타깃 모션 벡터를 결정할 수 있다. 제2 타깃 모션 벡터를 결정할 경우, 제2 모션 벡터 차이를 중첩할 수 있는 바, 즉 제2 모션 벡터 차이와 제2 원본 모션 벡터에 근거하여 제2 타깃 모션 벡터를 결정할 수 있다.
예시적으로, 제1 모션 벡터 차이의 방향 정보와 진폭 정보를 획득하고, 제1 모션 벡터 차이의 방향 정보와 진폭 정보에 근거하여 제1 모션 벡터 차이를 결정할 수 있다. 또한, 제2 모션 벡터 차이의 방향 정보와 진폭 정보를 획득하고, 제2 모션 벡터 차이의 방향 정보와 진폭 정보에 근거하여 제2 모션 벡터 차이를 결정할 수 있다.
예시적으로, 디코딩단에 있어서, 디코딩단이 현재 블록의 코딩된 비트 스트림에서 제1 모션 벡터 차이의 방향 정보를 해석하거나; 또는, 디코딩단이 현재 블록의 가중치 예측 각도에 근거하여 제1 모션 벡터 차이의 방향 정보를 유도하는 방식을 사용하여 제1 모션 벡터 차이의 방향 정보를 획득할 수 있다. 디코딩단에 있어서, 디코딩단은 현재 블록의 코딩된 비트 스트림에서 제2 모션 벡터 차이의 방향 정보를 해석하거나; 또는, 디코딩단이 현재 블록의 가중치 예측 각도에 근거하여 제2 모션 벡터 차이의 방향 정보를 유도하는 방식을 사용하여 제2 모션 벡터 차이의 방향 정보를 획득할 수 있다.
예시적으로, 디코딩단에 있어서, 현재 블록의 코딩된 비트 스트림에서 제1 모션 벡터 차이의 진폭 정보를 해석하는 방식을 사용하여 제1 모션 벡터 차이의 진폭 정보를 획득할 수 있다. 현재 블록의 코딩된 비트 스트림에서 제2 모션 벡터 차이의 진폭 정보를 해석하는 방식을 사용하여 제2 모션 벡터 차이의 진폭 정보를 획득할 수 있다.
가능한 일 실시형태에서, 코딩단과 디코딩단은 모션 벡터 차이의 방향 정보와 진폭 정보를 약정할 수 있는 바, 만약 방향 정보가 방향이 오른쪽을 향하는 것을 나타내고, 진폭 정보가 진폭이 A인 것을 나타내면 모션 벡터 차이는 (A, 0)이고; 만약 방향 정보가 방향이 아래를 향하는 것을 나타내고, 진폭 정보가 진폭이 A인 것을 나타내면 모션 벡터 차이는 (0, -A)이며; 만약 방향 정보가 방향이 왼쪽을 향하는 것을 나타내고, 진폭 정보가 진폭이 A인 것을 나타내면 모션 벡터 차이는 (-A, 0)이고; 만약 방향 정보가 방향이 위를 향하는 것을 나타내고, 진폭 정보가 진폭이 A인 것을 나타내면 모션 벡터 차이는 (0, A)이며; 만약 방향 정보가 방향이 오른쪽 위를 향하는 것을 나타내고, 진폭 정보가 진폭이 A인 것을 나타내면 모션 벡터 차이는 (A, A)이고; 만약 방향 정보가 방향이 왼쪽 위를 향하는 것을 나타내고, 진폭 정보가 진폭이 A인 것을 나타내면 모션 벡터 차이는 (-A, A)이며; 만약 방향 정보가 방향이 왼쪽 아래를 향하는 것을 나타내고, 진폭 정보가 진폭이 A인 것을 나타내면 모션 벡터 차이는 (-A, -A)이고; 만약 방향 정보가 방향이 오른쪽 아래를 향하는 것을 나타내고, 진폭 정보가 진폭이 A인 것을 나타내면 모션 벡터 차이는 (A, -A)이다. 물론, 상술한 내용은 몇 개의 예시일 뿐, 당해 방향 정보와 진폭 정보를 한정하지 않는다.
예시적으로, 모션 벡터 차이는 상기 방향 정보의 일부 또는 전부를 지원할 수 있고, 모션 벡터 차이가 지원하는 진폭 A의 값의 범위는 경험에 따라 구성할 수 있으며, 적어도 하나의 값인 바, 이에 대해 한정하지 않는다. 예컨대 모션 벡터 차이는 상, 하, 좌, 우 등 방향을 지원하고, 모션 벡터 차이는 ¼-pel, ½-pel, 1-pel, 2-pel, 4-pel, 즉 진폭 A의 값이 1, 2, 4, 8, 16인 5종류의 보폭 구성을 지원한다. 요약하면, 방향이 위를 향할 경우, 모션 벡터 차이는 (0, 1), (0, 2), (0, 4), (0, 8), (0, 16)일 수 있다. 방향이 아래를 향할 경우, 모션 벡터 차이는 (0, -1), (0, -2), (0, -4), (0, -8), (0, -16)일 수 있다. 방향이 왼쪽을 향할 경우, 모션 벡터 차이는 (-1, 0), (-2, 0), (-4, 0), (-8, 0), (-16, 0)일 수 있다. 방향이 오른쪽을 향할 경우, 모션 벡터 차이는 (1, 0), (2, 0), (4, 0), (8, 0), (16, 0)일 수 있다.
또 예를 들면, 모션 벡터 차이는 상, 하, 좌, 우 등 방향을 지원하고, 모션 벡터 차이는 ¼-pel, ½-pel, 1-pel, 2-pel, 3-pel, 4-pel 6종류의 보폭 구성을 지원하는 바, 즉 진폭 A의 값이 1, 2, 4, 8, 12, 16일 수 있다.
또 예를 들면, 모션 벡터 차이는 상, 하, 좌, 우, 왼쪽 위, 왼쪽 아래, 오른쪽 위, 오른쪽 아래 등 8개 방향을 지원하고, 모션 벡터 차이는 ¼-pel, ½-pel, 1-pel 3종류의 보폭 구성을 지원하는 바, 즉 진폭 A의 값이 1, 2, 4일 수 있다.
또 예를 들면, 모션 벡터 차이는 상, 하, 좌, 우 등 4개 방향을 지원하고, 모션 벡터 차이는 ¼-pel, ½-pel, 1-pel, 2-pel 4종류의 보폭 구성을 지원하는 바, 즉 진폭 A의 값이 1, 2, 4, 8일 수 있다.
물론, 상술한 내용은 단지 몇 개의 예시를 제안할 뿐, 이에 대해 한정하지 않는다. 예를 들면, 모션 벡터 차이가 지원하는 방향은 임의로 선택할 수 있는 바, 예컨대 상, 하, 좌, 우, 왼쪽 위, 왼쪽 아래와 같은 6개 방향을 지원할 수 있거나, 또는, 상, 하와 같은 두 개의 방향을 지원할 수도 있다. 또 예를 들면, 모션 벡터 차이가 지원하는 보폭 구성은 변화될 수 있는 바, 원활하게 구성될 수 있다. 또 예를 들면, 양자화 파라미터 QP 등 코딩 파라미터에 근거하여 보폭 구성을 적응적으로 구성할 수 있는 바, 예컨대 큰 QP에 대해 1-pel, 2-pel, 4-pel, 8-pel을 사용하고, 작은 QP에 대해 ¼-pel, ½-pel, 1-pel, 2-pel을 사용한다. 또 예를 들면, 시퀀스 레벨, 픽처 레벨, 프레임 레벨, Slice 레벨, Tile 레벨, Patch 레벨, CTU 레벨 등에 적합한 보폭 구성을 구성하여 디코딩단이 시퀀스 레벨, 픽처 레벨, 프레임 레벨, Slice 레벨, Tile 레벨, Patch 레벨, CTU 레벨에 근거하여 해석된 보폭 구성에 대해 디코딩 조작을 수행할 수 있도록 한다.
설명의 편리를 위하여, 후속 실시예에서 모션 벡터 차이가 상, 하 등 방향을 지원하고, 1-pel, 2-pel 등 보폭 구성을 지원하며, ¼-pel 정밀도에 따라 설명한다고 가정하면 모션 벡터 차이는 (0, 4), (0, 8), (0, -4), (0, -8), 즉, (0, 1<<2), (0, 1<<3), (0, -1<<2), (0, -1<<3) 일 수 있다.
코딩단에 있어서, 모션 정보 후보 리스트를 획득한 후, 모션 정보 후보 리스트 중 각 후보 모션 정보 조합을 순차적으로 순회하며, 당해 후보 모션 정보 조합은 두 개의 후보 모션 정보를 포함하되, 하나의 후보 모션 정보를 제1 원본 모션 정보로 사용하고, 다른 한 후보 모션 정보를 제2 원본 모션 정보로 사용한다. 유의해야 할 점은, 제1 원본 모션 정보와 제2 원본 모션 정보는 동일(즉 모션 정보 후보 리스트에서 선택된 두 개의 후보 모션 정보가 동일)할 수도 있고 상이할 수도 있다. 만약 제1 원본 모션 정보와 제2 원본 모션 정보가 동일하면 상이한 모션 벡터 차이를 중첩하는 것을 통해 제1 타깃 모션 정보와 제2 타깃 모션 정보가 상이하도록 담보할 수 있다. 각 후보 모션 정보 조합에 대하여, 모션 벡터 차이 조합을 순차적으로 순회하되, 당해 모션 벡터 차이 조합은 제1 모션 벡터 차이와 제2 모션 벡터 차이를 포함하고, 제1 모션 벡터 차이와 제2 모션 벡터 차이는 동일하거나 상이할 수 있다. 예를 들어, 각각 모션 벡터 차이 1과 모션 벡터 차이 2인 두 개의 모션 벡터 차이가 존재하되, 모션 벡터 차이 조합 1은 모션 벡터 차이 1과 모션 벡터 차이 1이고, 모션 벡터 차이 조합 2은 모션 벡터 차이 1(즉 제1 모션 벡터 차이)과 모션 벡터 차이 2이며, 모션 벡터 차이 조합 3은 모션 벡터 차이 2(즉 제1 모션 벡터 차이)와 모션 벡터 차이 1이고, 모션 벡터 차이 조합 4는 모션 벡터 차이 2와 모션 벡터 차이 2이다.
예시적으로, 현재 순회된 후보 모션 정보 조합과 모션 벡터 차이 조합에 대하여, 만약 제1 원본 모션 정보와 제2 원본 모션 정보가 상이하면 제1 모션 벡터 차이와 제2 모션 벡터 차이는 동일하거나 상이할 수 있다. 만약 제1 원본 모션 정보와 제2 원본 모션 정보가 동일하면 제1 모션 벡터 차이와 제2 모션 벡터 차이는 상이할 수 있다.
현재 순회된 후보 모션 정보 조합과 모션 벡터 차이 조합에 대하여, 제1 원본 모션 정보의 모션 벡터와 제1 모션 벡터 차이의 합을 제1 타깃 모션 벡터로 사용하고, 제2 원본 모션 정보의 모션 벡터와 제2 모션 벡터 차이의 합을 제2 타깃 모션 벡터로 사용하며, 제1 타깃 모션 벡터와 제2 타깃 모션 벡터에 기반하여 율-왜곡 코스트 값을 결정하되, 당해 결정 방식을 한정하지 않는다. 각 후보 모션 정보 조합 및 각 모션 벡터 차이 조합에 대해 상기 처리를 수행하여 모두 율-왜곡 코스트 값을 얻는다. 다음, 모든 율-왜곡 코스트 값에서 최소 율-왜곡 코스트 값을 선택하고, 현재 블록의 코딩된 비트 스트림에서 최소 율-왜곡 코스트 값에 대응하는 후보 모션 정보 조합(제1 원본 모션 정보와 제2 원본 모션 정보)의 정보 및 모션 벡터 차이 조합(제1 모션 벡터 차이와 제2 모션 벡터 차이)의 정보를 코딩한다.
예를 들어, 현재 블록의 코딩된 비트 스트림에서 최소 율-왜곡 코스트 값에 대응하는 제1 원본 모션 정보의 모션 정보 후보 리스트에서의 인덱스 값, 최소 율-왜곡 코스트 값에 대응하는 제2 원본 모션 정보의 모션 정보 후보 리스트에서의 인덱스 값, 최소 율-왜곡 코스트 값에 대응하는 제1 모션 벡터 차이의 방향 정보와 진폭 정보, 최소 율-왜곡 코스트 값에 대응하는 제2 모션 벡터 차이의 방향 정보와 진폭 정보를 코딩한다. 예를 들면, 제1 모션 벡터 차이의 방향 정보 또는 제2 모션 벡터 차이의 방향 정보에 있어서, 당해 방향 정보의 지시정보는 0일 수 있고, 방향 리스트 중 첫 번째 방향을 나타낼 수 있다. 제1 모션 벡터 차이의 진폭 정보 또는 제2 모션 벡터 차이의 진폭 정보에 있어서, 당해 진폭 정보의 지시정보는 0일 수 있고, 보폭 구성 리스트 중 첫 번째 보폭 구성을 나타낼 수 있다.
예시적으로, 만약 모션 벡터 차이가 상, 하, 좌, 우 등 네 개의 방향을 지원하고, 모션 벡터 차이가 ¼-pel, ½-pel, 1-pel, 2-pel, 4-pel 등 5종류의 보폭 구성을 지원할 경우, 모션 벡터 차이의 방향 정보는 2bin 고정된 길이 코드(모두 4 종류의 값)를 사용하여 코딩할 수 있고, 2bin 고정된 길이 코드의 4개의 값은 상, 하, 좌, 우 네 개의 방향을 각각 나타낸다. 모션 벡터 차이의 진폭 정보는 절단된 단항 코드를 사용하여 코딩할 수 있는 바, 즉 절단된 단항 코드를 통해 5 종류의 보폭 구성을 나타낼 수 있다.
또 예를 들면, 만약 모션 벡터 차이가 상, 하, 좌, 우 네 개의 방향을 지원하고, 모션 벡터 차이가 ¼-pel, ½-pel, 1-pel, 2-pel, 3-pel, 4-pel과 같은 6종류의 보폭 구성을 지원할 경우, 모션 벡터 차이의 방향 정보는 2bin 고정된 길이 코드(모두 4종류의 값)를 사용하여 코딩할 수 있고, 모션 벡터 차이의 진폭 정보는 절단된 단항 코드를 사용하여 코딩할 수 있다.
또 예를 들면, 만약 모션 벡터 차이가 상, 하, 좌, 우, 왼쪽 위, 왼쪽 아래, 오른쪽 위, 오른쪽 아래와 같은 여덟 개 방향을 지원하고, 모션 벡터 차이가 ¼-pel, ½-pel, 1-pel 등 3종류의 보폭 구성을 지원할 경우, 모션 벡터 차이의 방향 정보는 3bin 고정된 길이 코드(모두 8종류의 값)를 사용하여 코딩할 수 있고, 모션 벡터 차이의 진폭 정보는 절단된 단항 코드를 사용하여 코딩할 수 있다.
또 예를 들면, 만약 모션 벡터 차이가 상, 하, 좌, 우와 같은 네 개의 방향을 지원하고, 모션 벡터 차이가 ¼-pel, ½-pel, 1-pel, 2-pel과 같은 4종류의 보폭 구성을 지원할 경우, 이에 기반하여, 모션 벡터 차이의 방향 정보는 절단된 단항 코드를 사용하여 코딩할 수 있고, 모션 벡터 차이의 진폭 정보는 2bin 고정된 길이 코드(모두 4종류의 값)를 사용하여 코딩할 수 있다.
물론, 상술한 내용은 단지 코딩 방식의 몇 개의 예시일 뿐, 당해 코딩 방식을 한정하지 않는다.
요약하면, 코딩단에 있어서, 일정한 영역 내에서 가장 우수한 모션 벡터(즉 타깃 모션 벡터)를 검색한 다음, 가장 우수한 모션 벡터와 원본 모션 벡터의 차이값을 모션 벡터 차이(MVD)로 사용하고, 모션 벡터 차이의 진폭 정보와 방향 정보를 비트 스트림에 코딩할 수 있다. 코딩단이 일정한 영역 내에서 가장 우수한 모션 벡터를 검색할 경우, 모션 벡터 차이의 방향 및 진폭을 약정, 즉, (A, 0), (0, -A), (-A, 0), (0, A), (A, A), (-A, A), (-A, -A), (A, -A) 등 모션 벡터 차이의 제한 범위 내에서 가장 우수한 모션 벡터를 검색해야 한다.
디코딩단에 있어서, 현재 블록의 코딩된 비트 스트림을 수신한 후, 코딩된 비트 스트림에서 제1 원본 모션 정보의 모션 정보 후보 리스트에서의 인덱스 값을 해석하고, 모션 정보 후보 리스트에서 당해 인덱스 값에 대응하는 후보 모션 정보를 선택하며, 당해 후보 모션 정보를 현재 블록의 제1 원본 모션 정보로 사용할 수 있다. 디코딩단은 코딩된 비트 스트림에서 제2 원본 모션 정보의 모션 정보 후보 리스트에서의 인덱스 값을 해석하고, 모션 정보 후보 리스트에서 당해 인덱스 값에 대응하는 후보 모션 정보를 선택하며, 당해 후보 모션 정보를 현재 블록의 제2 원본 모션 정보로 사용할 수 있다.
디코딩단은 당해 코딩된 비트 스트림에서 제1 모션 벡터 차이의 방향 정보와 진폭 정보를 해석하고, 당해 방향 정보와 당해 진폭 정보에 근거하여 제1 모션 벡터 차이를 결정할 수 있다. 그리고, 당해 코딩된 비트 스트림에서 제2 모션 벡터 차이의 방향 정보와 진폭 정보를 해석하고, 당해 방향 정보와 당해 진폭 정보에 근거하여 제2 모션 벡터 차이를 결정할 수 있다.
다음, 디코딩단은 제1 모션 벡터 차이와 제1 원본 모션 정보에 근거하여 현재 블록의 제1 타깃 모션 정보를 결정하고, 제2 모션 벡터 차이와 제2 원본 모션 정보에 근거하여 현재 블록의 제2 타깃 모션 정보를 결정할 수 있다.
예시적으로, 제1 모션 벡터 차이의 방향 정보와 제1 모션 벡터 차이의 진폭 정보에 근거하여 제1 모션 벡터 차이를 결정할 경우, 만약 제1 모션 벡터 차이의 방향 정보가 방향이 오른쪽을 향하는 것을 나타내고, 제1 모션 벡터 차이의 진폭 정보가 진폭이 A인 것을 나타내면 제1 모션 벡터 차이는 (A, 0)이며; 만약 제1 모션 벡터 차이의 방향 정보가 방향이 아래를 향하는 것을 나타내고, 제1 모션 벡터 차이의 진폭 정보가 진폭이 A인 것을 나타내면 제1 모션 벡터 차이는 (0, -A)이며; 만약 제1 모션 벡터 차이의 방향 정보가 방향이 왼쪽을 향하는 것을 나타내고, 제1 모션 벡터 차이의 진폭 정보가 진폭이 A인 것을 나타내면 제1 모션 벡터 차이는 (-A, 0)이며; 만약 제1 모션 벡터 차이의 방향 정보가 방향이 위를 향하는 것을 나타내고, 제1 모션 벡터 차이의 진폭 정보가 진폭이 A인 것을 나타내면 제1 모션 벡터 차이는 (0, A)이다. 제2 모션 벡터 차이의 방향 정보와 제2 모션 벡터 차이의 진폭 정보에 근거하여 제2 모션 벡터 차이를 결정할 경우, 만약 제2 모션 벡터 차이의 방향 정보가 방향이 오른쪽을 향하는 것을 나타내고, 제2 모션 벡터 차이의 진폭 정보가 진폭이 A인 것을 나타내면 제2 모션 벡터 차이는 (A, 0)이고; 만약 제2 모션 벡터 차이의 방향 정보가 방향이 아래를 향하는 것을 나타내고, 제2 모션 벡터 차이의 진폭 정보가 진폭이 A인 것을 나타내면 제2 모션 벡터 차이는 (0, -A)이며; 만약 제2 모션 벡터 차이의 방향 정보가 방향이 왼쪽을 향하는 것을 나타내고, 제2 모션 벡터 차이의 진폭 정보가 진폭이 A인 것을 나타내면 제2 모션 벡터 차이는 (-A, 0)이고 만약 제2 모션 벡터 차이의 방향 정보가 방향이 위를 향하는 것을 나타내고, 제2 모션 벡터 차이의 진폭 정보가 진폭이 A인 것을 나타내면 제2 모션 벡터 차이는 (0, A)이다.
상기 실시예를 참조하면, 코딩단이 모션 벡터 차이의 방향 정보를 코딩할 경우, 고정된 길이 코드, 절단된 단항 코드 등 방식을 사용하므로 디코딩단은 고정된 길이 코드, 절단된 단항 코드 등 방식을 사용하여 모션 벡터 차이의 방향 정보를 디코딩함으로써 모션 벡터 차이의 방향 정보, 예컨대 상, 하, 좌, 우, 왼쪽 위, 왼쪽 아래, 오른쪽 위, 오른쪽 아래 등을 얻을 수 있다.
상기 실시예를 참조하면, 코딩단이 모션 벡터 차이의 진폭 정보를 코딩할 경우, 고정된 길이 코드, 절단된 단항 코드 등 방식을 사용하므로 디코딩단은 고정된 길이 코드, 절단된 단항 코드 등 방식을 사용하여 모션 벡터 차이의 진폭 정보를 디코딩함으로써 모션 벡터 차이의 진폭 정보, 예컨대 ¼-pel, ½-pel, 1-pel, 2-pel 등 보폭 구성을 얻고, 이어서 ¼-pel, ½-pel, 1-pel, 2-pel 등 보폭 구성에 근거하여 모션 벡터 차이의 진폭 A의 값을 결정할 수 있다.
가능한 일 실시형태에서, 코딩단은 또 코딩된 비트 스트림에 향상된(enhanced) 각도 가중 예측 모드의 제1 서브 모드 플래그 및 제2 서브 모드 플래그를 코딩할 수도 있는 바, 당해 제1 서브 모드 플래그가 제1 원본 모션 정보에 모션 벡터 차이를 중첩하거나, 또는, 제1 원본 모션 정보에 모션 벡터 차이를 중첩하지 않는 것을 지시한다. 당해 제2 서브 모드 플래그는 제2 원본 모션 정보에 모션 벡터 차이를 중첩하거나, 또는, 제2 원본 모션 정보에 모션 벡터 차이를 중첩하지 않는 것을 지시한다.
디코딩단은 현재 블록의 코딩된 비트 스트림을 수신한 후, 현재 블록의 코딩된 비트 스트림에서 향상된 각도 가중 예측 모드의 제1 서브 모드 플래그 및 제2 서브 모드 플래그를 해석할 수 있다. 만약 제1 서브 모드 플래그가 제1 원본 모션 정보에 모션 벡터 차이를 중첩하는 것을 지시하면 현재 블록의 코딩된 비트 스트림에서 제1 모션 벡터 차이의 방향 정보 및 진폭 정보를 해석하고, 제1 모션 벡터 차이의 방향 정보와 진폭 정보에 근거하여 제1 모션 벡터 차이를 결정하며, 이어서 제1 원본 모션 정보와 제1 모션 벡터 차이에 근거하여 현재 블록의 제1 타깃 모션 정보를 결정한다. 만약 제1 서브 모드 플래그가 제1 원본 모션 정보에 모션 벡터 차이를 중첩하지 않는 것을 지시하면 제1 모션 벡터 차이의 방향 정보와 진폭 정보를 해석하지 않고, 직접 제1 원본 모션 정보를 현재 블록의 제1 타깃 모션 정보로 사용할 수 있다. 만약 제2 서브 모드 플래그가 제2 원본 모션 정보에 모션 벡터 차이를 중첩하는 것을 지시하면 현재 블록의 코딩된 비트 스트림에서 제2 모션 벡터 차이의 방향 정보 및 진폭 정보를 해석하고, 제2 모션 벡터 차이의 방향 정보와 진폭 정보에 근거하여 제2 모션 벡터 차이를 결정하며, 이어서 제2 원본 모션 정보와 제2 모션 벡터 차이에 근거하여 현재 블록의 제2 타깃 모션 정보를 결정한다. 만약 제2 서브 모드 플래그가 제2 원본 모션 정보에 모션 벡터 차이를 중첩하지 않는 것을 지시하면 제2 모션 벡터 차이의 방향 정보와 진폭 정보를 해석하지 않고, 직접 제2 원본 모션 정보를 현재 블록의 제2 타깃 모션 정보로 사용할 수 있다.
예시적으로, 향상된 각도 가중 예측 모드의 제1 서브 모드 플래그가 제1 값일 경우, 제1 원본 모션 정보에 모션 벡터 차이를 중첩하는 것을 지시하고, 향상된 각도 가중 예측 모드의 제1 서브 모드 플래그가 제2 값일 경우, 제1 원본 모션 정보에 모션 벡터 차이를 중첩하지 않는 것을 나타낸다. 향상된 각도 가중 예측 모드의 제2 서브 모드 플래그가 제1 값일 경우, 제2 원본 모션 정보에 모션 벡터 차이를 중첩하는 것을 지시하고, 향상된 각도 가중 예측 모드의 제2 서브 모드 플래그가 제2 값일 경우, 제2 원본 모션 정보에 모션 벡터 차이를 중첩하지 않는 것을 나타낸다. 제1 값과 제2 값은 경험에 따라 구성할 수 있는 바, 예컨대 제1 값이 1이고, 제2 값이 0이거나, 또는, 예컨대 제1 값이 0이고, 제2 값이 1이다.
상기 실시예에서, 디코딩단은 현재 블록의 코딩된 비트 스트림에서 제1 모션 벡터 차이의 방향 정보 및 제2 모션 벡터 차이의 방향 정보를 해석하며, 실제 응용에서는, 현재 블록의 가중치 예측 각도에 근거하여 제1 모션 벡터 차이의 방향 정보를 유도하고, 현재 블록의 가중치 예측 각도에 근거하여 제2 모션 벡터 차이의 방향 정보를 유도할 수 있다.
예를 들어, 현재 블록의 가중치 예측 각도는 각도 방향을 나타내는 바, 도 6에 도시된 8가지 각도 방향을 참조하면, 현재 블록의 가중치 예측 각도는 8가지 각도 방향 중 특정 각도 방향을 나타내고, 디코딩단에 있어서, 모든 방향 정보(예컨대 상, 하, 좌, 우, 왼쪽 위, 왼쪽 아래, 오른쪽 위, 오른쪽 아래 등)에서 당해 각도 방향과 매칭되는 방향 정보를 선택하며, 직접 당해 방향 정보를 제1 모션 벡터 차이의 방향 정보와 제2 모션 벡터 차이의 방향 정보로 사용할 수 있다.
당해 각도 방향과 매칭되는 방향 정보는, 당해 방향 정보와 당해 각도 방향 사이의 각도 차이가 기설정된 각도이거나 또는 기설정된 각도에 근접하거나, 또는, 모든 방향 정보에서, 당해 방향 정보와 당해 각도 방향 사이의 각도 차이와 기설정된 각도의 차이값이 제일 작은 것을 포함할 수 있다. 당해 기설정된 각도는 경험에 따라 구성할 수 있으며, 예컨대 당해 기설정된 각도는 90도일 수 있다.
예시적으로, 코딩단에 있어서, 율-왜곡 코스트 값의 방식을 사용하여 제1 모션 벡터 차이의 방향 정보와 제2 모션 벡터 차이의 방향 정보를 결정할 필요가 없이 현재 블록의 가중치 예측 각도에 근거하여 제1 모션 벡터 차이의 방향 정보를 유도하고, 현재 블록의 가중치 예측 각도에 근거하여 제2 모션 벡터 차이의 방향 정보를 유도할 수 있다. 코딩단은 디코딩단에 현재 블록의 코딩된 비트 스트림을 송신할 경우, 제1 모션 벡터 차이의 방향 정보와 제2 모션 벡터 차이의 방향 정보를 코딩하지 않고 디코딩단이 제1 모션 벡터 차이의 방향 정보와 제2 모션 벡터 차이의 방향 정보를 유도할 수도 있다.
실시예 16: 실시예 15에서, 디코딩단은 코딩된 비트 스트림에서 제1 모션 벡터 차이의 진폭 정보와 제2 모션 벡터 차이의 진폭 정보를 해석할 수 있는 바, 가능한 일 실시형태에서, 코딩단과 디코딩단은 동일한 하나의 모션 벡터 차이 진폭 리스트를 구축할 수 있고, 코딩단은 제1 모션 벡터 차이의 진폭 정보의 당해 모션 벡터 차이 진폭 리스트에서의 진폭 인덱스를 결정하며, 코딩된 비트 스트림은 제1 모션 벡터 차이의 진폭 인덱스를 포함한다. 디코딩단은 현재 블록의 코딩된 비트 스트림에서 제1 모션 벡터 차이의 진폭 인덱스를 해석하고, 당해 모션 벡터 차이 진폭 리스트에서 당해 진폭 인덱스에 대응하는 진폭 정보를 선택하며, 당해 진폭 정보가 바로 제1 모션 벡터 차이의 진폭 정보이다. 코딩단은 제2 모션 벡터 차이의 진폭 정보의 당해 모션 벡터 차이 진폭 리스트에서의 진폭 인덱스를 결정하고, 코딩된 비트 스트림은 제2 모션 벡터 차이의 진폭 인덱스를 포함한다. 디코딩단은 현재 블록의 코딩된 비트 스트림에서 제2 모션 벡터 차이의 진폭 인덱스를 해석하고, 당해 모션 벡터 차이 진폭 리스트에서 당해 진폭 인덱스에 대응하는 진폭 정보를 선택하며, 당해 진폭 정보가 바로 제2 모션 벡터 차이의 진폭 정보이다.
다른 가능한 일 실시형태에서, 코딩단과 디코딩단은 동일한 적어도 두 개의 모션 벡터 차이 진폭 리스트를 구축할 수 있는 바, 예컨대 코딩단과 디코딩단은 동일한 모션 벡터 차이 진폭 리스트 1을 구축하고, 동일한 모션 벡터 차이 진폭 리스트 2를 구축한다. 코딩단은 먼저 모션 벡터 차이 진폭 리스트의 지시정보에 기반하여 모든 모션 벡터 차이 진폭 리스트에서 타깃 모션 벡터 차이 진폭 리스트를 선택하고; 코딩단은 제1 모션 벡터 차이의 진폭 정보의 당해 타깃 모션 벡터 차이 진폭 리스트에서의 진폭 인덱스를 결정하며, 코딩된 비트 스트림은 제1 모션 벡터 차이의 진폭 인덱스를 포함한다.
코딩단은 또한 제2 모션 벡터 차이의 진폭 정보의 당해 타깃 모션 벡터 차이 진폭 리스트에서의 진폭 인덱스를 결정할 수도 있고, 코딩된 비트 스트림은 제2 모션 벡터 차이의 진폭 인덱스를 포함할 수 있다. 디코딩단은 현재 블록의 코딩된 비트 스트림에서 제2 모션 벡터 차이의 진폭 인덱스를 해석할 수 있고, 당해 타깃 모션 벡터 차이 진폭 리스트에서 당해 진폭 인덱스에 대응하는 진폭 정보를 선택하며, 당해 진폭 정보가 바로 제2 모션 벡터 차이의 진폭 정보이다.
예시적으로, 모션 벡터 차이 진폭 리스트의 지시정보는 임의의 레벨의 지시정보 일 수 있는 바, 예를 들어, 시퀀스 레벨의 모션 벡터 차이 진폭 리스트의 지시정보, 픽처 레벨의 모션 벡터 차이 진폭 리스트의 지시정보, Slice 레벨의 모션 벡터 차이 진폭 리스트의 지시정보, Tile 레벨의 모션 벡터 차이 진폭 리스트의 지시정보, Patch 레벨의 모션 벡터 차이 진폭 리스트의 지시정보, CTU 레벨의 모션 벡터 차이 진폭 리스트의 지시정보, LCU 레벨의 모션 벡터 차이 진폭 리스트의 지시정보, 블록 레벨의 모션 벡터 차이 진폭 리스트의 지시정보, CU 레벨의 모션 벡터 차이 진폭 리스트의 지시정보, PU 레벨의 모션 벡터 차이 진폭 리스트의 지시정보일 수 있고, 이에 대해 한정하지 않는 바, 설명의 편리를 위하여, 픽처 레벨의 모션 벡터 차이 진폭 리스트의 지시정보를 예로 들며, 픽처 레벨의 모션 벡터 차이 진폭 리스트의 지시정보는 awp_umve_offset_list_flag일 수 있고, awp_umve_offset_list_flag를 통해 모션 벡터 차이 진폭 리스트의 전환을 제어할 수 있다.
예를 들어, 코딩단과 디코딩단은 모션 벡터 차이 진폭 리스트 1과 모션 벡터 차이 진폭 리스트 2를 구축할 수 있으며, 표 3 및 표 4에 도시된 내용을 참조한다. 모션 벡터 차이 진폭 리스트 1에 대해 이진화 처리를 수행하고, 모션 벡터 차이 진폭 리스트 2에 대해 이진화 처리를 수행할 수 있으며, 당해 처리 방식을 한정하지 않는다. 예를 들면, 모션 벡터 차이 진폭 리스트 1에 대해 절단된 단항 코드를 사용하고, 모션 벡터 차이 진폭 리스트 2에 대해 절단된 단항 코드를 사용하거나, 또는, 모션 벡터 차이 진폭 리스트 1에 대해 절단된 단항 코드를 사용하고, 모션 벡터 차이 진폭 리스트 2에 대해 고정된 길이 코드를 사용하거나, 또는, 모션 벡터 차이 진폭 리스트 1에 대해 고정된 길이 코드를 사용하고, 모션 벡터 차이 진폭 리스트 2에 대해 절단된 단항 코드를 사용할 수 있으며, 이에 대해 한정하지 않는 바, 표 5 및 표 6에 도시된 내용을 참조한다.
표 3
Figure pct00003
표 4
Figure pct00004
표 5
Figure pct00005
표 6
Figure pct00006
상기 응용 시나리오에서, awp_umve_offset_list_flag를 통해 모션 벡터 차이 진폭 리스트의 전환을 제어, 즉 표 3에 도시된 모션 벡터 차이 진폭 리스트, 또는 표 4에 도시된 모션 벡터 차이 진폭 리스트 사용을 제어한다. 예를 들면, 만약 awp_umve_offset_list_flag의 값이 제1 값이면 표 3에 도시된 모션 벡터 차이 진폭 리스트가 타깃 모션 벡터 차이 진폭 리스트이고, 만약 awp_umve_offset_list_flag의 값이 제2 값이면 표 4에 도시된 모션 벡터 차이 진폭 리스트가 타깃 모션 벡터 차이 진폭 리스트이거나; 또는, 만약 awp_umve_offset_list_flag의 값이 제2 값이면 표 3에 도시된 모션 벡터 차이 진폭 리스트가 타깃 모션 벡터 차이 진폭 리스트이고, 만약 awp_umve_offset_list_flag의 값이 제1 값이면 표 4에 도시된 모션 벡터 차이 진폭 리스트가 타깃 모션 벡터 차이 진폭 리스트이다.
타깃 모션 벡터 차이 진폭 리스트가 표 3일 경우, 코딩단은 표 5에 도시된 이진화 방식을 사용하여 코딩하고, 디코딩단은 표 5에 도시된 이진화 방식을 사용하여 디코딩한다. 타깃 모션 벡터 차이 진폭 리스트가 표 4일 경우, 코딩단은 표 6에 도시된 이진화 방식을 사용하여 코딩하고, 디코딩단은 표 6에 도시된 이진화 방식을 사용하여 디코딩한다.
실시예 17: 실시예 15 또는 실시예 16의 기초 상에, 제1 모션 벡터 차이와 제2 모션 벡터 차이에 대하여 아래에서는 구체적인 응용 시나리오와 결부하여 각도 가중 예측 모션 벡터 수정 AWP_MVR 관련 신택스를 설명한다.
응용 시나리오 1: 표 7에 도시된 내용을 참조하면, 이는 관련 신택스의 예시로서, SkipFlag는 현재 블록이 Skip 모드인지 여부를 나타내고, DirectFlag는 현재 블록이 Direct 모드인지 여부를 나타내며, AwpFlag는 현재 블록이 AWP 모드인지 여부를 나타낸다.
awp_idx(각도 가중 예측 모드 인덱스): 스킵 모드 또는 다이렉트 모드에서의 각도 가중 예측 모드 인덱스 값, AwpIdx의 값은 awp_idx의 값과 같을 수 있다. 만약 비트 스트림에 awp_idx가 존재하지 않으면 AwpIdx의 값은 0과 같다.
awp_cand_idx0(각도 가중 예측 모드의 제1 모션 정보 인덱스): 스킵 모드 또는 다이렉트 모드에서의 각도 가중 예측 모드의 제1 모션 정보 인덱스 값이다. AwpCandIdx0의 값은 awp_cand_idx0의 값과 같고, 만약 비트 스트림에 awp_cand_idx0이 존재하지 않으면 AwpCandIdx0의 값은 0이다.
awp_cand_idx1(각도 가중 예측 모드 제2 모션 정보 인덱스): 스킵 모드 또는 다이렉트 모드에서의 각도 가중 예측 모드의 제2 모션 정보 인덱스 값이다. AwpCandIdx1의 값은 awp_cand_idx1의 값과 같고, 만약 비트 스트림에 awp_cand_idx1이 존재하지 않으면 AwpCandIdx1의 값은 0이다.
awp_mvd_flag(향상된 각도 가중 예측 모드 플래그)는 이진 변수이고, awp_mvd_flag가 제1 값(예컨대 1)일 경우, 현재 블록이 향상된 각도 가중 예측 모드인 것을 나타내며, awp_mvd_flag가 제2 값(예컨대 0)일 경우, 현재 블록이 비 향상된 각도 가중 예측 모드인 것을 나타낸다. 예시적으로, AwpMvdFlag의 값은 awp_mvd_flag의 값과 같을 수 있고, 만약 비트 스트림에 awp_mvd_flag가 존재하지 않으면 AwpMvdFlag의 값은 0과 같다.
awp_mvd_sub_flag0(향상된 각도 가중 예측 모드 제1 서브 모드 플래그)는 하나의 이진 변수일 수 있고, awp_mvd_sub_flag0이 제1 값일 경우, 각도 가중 예측 모드의 제1 모션 정보에 모션 정보 차이를 중첩해야 하는 것을 나타낼 수 있으며; awp_mvd_sub_flag0이 제2 값일 경우, 각도 가중 예측 모드의 제1 모션 정보에 모션 정보 차이를 중첩할 필요가 없는 것을 나타낼 수 있다. 예시적으로, AwpMvdSubFlag0의 값은 awp_mvd_sub_flag0의 값과 같을 수 있는 바, 만약 비트 스트림에 awp_mvd_sub_flag0이 존재하지 않으면 AwpMvdSubFlag0의 값은 0과 같다.
awp_mvd_sub_flag1(향상된 각도 가중 예측 모드 제2 서브 모드 플래그)은 하나의 이진 변수일 수 있고, awp_mvd_sub_flag1이 제1 값일 경우, 각도 가중 예측 모드의 제2 모션 정보에 모션 정보 차이를 중첩해야 하는 것을 나타낼 수 있으며; awp_mvd_sub_flag1이 제2 값일 경우, 각도 가중 예측 모드의 제2 모션 정보에 모션 정보 차이를 중첩할 필요가 없는 것을 나타낼 수 있다. 예시적으로, AwpMvdSubFlag1의 값은 awp_mvd_sub_flag1의 값과 같을 수 있는 바, 만약 비트 스트림에 awp_mvd_sub_flag1이 존재하지 않으면, AwpMvdFlag가 1과 같을 경우, AwpMvdSubFlag1의 값은 1과 같고, 그렇지 않으면 AwpMvdSubFlag1의 값은 0과 같을 수 있는 경우가 더 존재할 수 있다.
awp_mvd_dir0(제1 모션 정보 모션 벡터 차이 방향 인덱스 값), 각도 가중 예측 모드 제1 모션 정보의 모션 벡터 차이 방향 인덱스 값이다. 예시적으로, AwpMvdDir0의 값은 awp_mvd_dir0의 값과 같을 수 있는 바, 만약 비트 스트림에 awp_mvd_dir0이 존재하지 않으면 AwpMvdDir0의 값은 0과 같을 수 있다.
awp_mvd_step0(제1 모션 정보 모션 벡터 차이 보폭 인덱스 값), 각도 가중 예측 모드 제1 모션 정보의 모션 벡터 차이 보폭 인덱스 값이다. 예시적으로, AwpMvdStep0의 값은 awp_mvd_step0의 값과 같을 수 있는 바, 만약 비트 스트림에 awp_mvd_step0이 존재하지 않으면 AwpMvdStep0의 값은 0과 같을 수 있다.
awp_mvd_dir1(제2 모션 정보 모션 벡터 차이 방향 인덱스 값), 각도 가중 예측 모드 제2 모션 정보의 모션 벡터 차이 방향 인덱스 값이다. 예시적으로, AwpMvdDir1의 값은 awp_mvd_dir1의 값과 같을 수 있다. 만약 비트 스트림에 awp_mvd_dir1이 존재하지 않으면 AwpMvdDir1의 값은 0과 같을 수 있다.
awp_mvd_step1(제2 모션 정보 모션 벡터 차이 보폭 인덱스 값), 각도 가중 예측 모드 제2 모션 정보의 모션 벡터 차이 보폭 인덱스 값이다. 예시적으로, AwpMvdStep1의 값은 awp_mvd_step1의 값과 같을 수 있다. 만약 비트 스트림에 awp_mvd_step1이 존재하지 않으면 AwpMvdStep1의 값은 0과 같을 수 있다.
표 7
Figure pct00007
응용 시나리오 2: 표 8에 도시된 내용을 참조하면, 이는 관련 신택스의 예시로서, SkipFlag는 현재 블록이 Skip 모드인지 여부를 나타내고, DirectFlag는 현재 블록이 Direct 모드인지 여부를 나타내며, AwpFlag는 현재 블록이 AWP 모드인지 여부를 나타낸다.
awp_idx, awp_cand_idx0 및 awp_cand_idx1에 관하여 응용 시나리오 1을 참조할 수 있는 바, 여기서 더 이상 설명하지 않는다.
awp_mvd_sub_flag0(향상된 각도 가중 예측 모드 제1 서브 모드 플래그)는 하나의 이진 변수일 수 있는 바, awp_mvd_sub_flag0이 제1 값일 경우, 각도 가중 예측 모드의 제1 모션 정보에 모션 정보 차이를 중첩해야 하는 것을 나타낼 수 있으며; awp_mvd_sub_flag0이 제2 값일 경우, 각도 가중 예측 모드의 제1 모션 정보에 모션 정보 차이를 중첩할 필요가 없는 것을 나타낼 수 있다. 예시적으로, AwpMvdSubFlag0의 값은 awp_mvd_sub_flag0의 값과 같을 수 있는 바, 만약 비트 스트림에 awp_mvd_sub_flag0이 존재하지 않으면 AwpMvdSubFlag0의 값은 0과 같다.
awp_mvd_sub_flag1(향상된 각도 가중 예측 모드 제2 서브 모드 플래그)는 하나의 이진 변수일 수 있는 바, awp_mvd_sub_flag1이 제1 값일 경우, 각도 가중 예측 모드의 제2 모션 정보에 모션 정보 차이를 중첩해야 하는 것을 나타낼 수 있고; awp_mvd_sub_flag1이 제2 값일 경우, 각도 가중 예측 모드의 제2 모션 정보에 모션 정보 차이를 중첩할 필요가 없는 것을 나타낼 수 있다. 예시적으로, AwpMvdSubFlag1의 값은 awp_mvd_sub_flag1의 값과 같을 수 있는 바, 만약 비트 스트림에 awp_mvd_sub_flag1이 존재하지 않으면 AwpMvdSubFlag1의 값은 0과 같을 수 있다.
awp_mvd_dir0, awp_mvd_step0, awp_mvd_dir1, awp_mvd_step1에 관하여 응용 시나리오 1을 참조한다.
표 8
Figure pct00008
예시적으로, 응용 시나리오 1과 응용 시나리오 2에 있어서, 양자의 구별점은: 응용 시나리오 1에는 신택스 awp_mvd_flag가 존재하고, 응용 시나리오 2에는 신택스 awp_mvd_flag가 존재하지 않는 것이다. 응용 시나리오 1에서는 awp_mvd_flag를 통해 향상된 각도 가중 예측 모드를 제어, 즉 마스터 스위치를 통해 향상된 각도 가중 예측 모드를 제어할 수 있다.
응용 시나리오 3: 응용 시나리오 1과 응용 시나리오 2에 대한 유도를 통해 AWP 모드와 AWP_MVR모드를 융합, 즉 스팬에 0스팬을 증가하여 코딩의 활성화 여부에 대한 플래그 비트가 필요 없게 된다. 예를 들면, 모션 벡터 차이가 상, 하, 좌, 우 등 방향을 지원하고, 모션 벡터 차이가 0-pel, ¼-pel, ½-pel, 1-pel, 2-pel, 4-pel과 같은 보폭 구성을 지원, 즉 보폭 구성 0-pel을 증가한다. 이 기초 상에, 표 7/표 8은 표 9로 업데이트할 수 있고, 관련 신택스는 표 7을 참조할 수 있다.
표 9
Figure pct00009
Figure pct00010
예시적으로, 각 응용 시나리오에 있어서, 관련 신택스에서 신택스 요소의 순서는 상응하게 조절할 수 있는 바, 예를 들어, 표 8에 도시된 관련 신택스에서는 신택스 요소의 순서를 상응하게 조절하여 표 10에 도시된 관련 신택스를 얻을 수 있다.
표 10
Figure pct00011
표 8 및 표 10으로부터 알 수 있다시피, awp_cand_idx0과 awp_cand_idx1의 순서를 조정할 수 있는 바, 예시적으로, 표 10에서, awp_cand_idx0과 awp_cand_idx1의 해석 방식은 AwpMvdSubFlag0, AwpMvdSubFlag1, AwpMvdDir0, AwpMvdStep0, AwpMvdDir1, AwpMvdStep1 중 하나 또는 복수 개의 값에 따라 조정할 수 있다. 예를 들면, AwpMvdSubFlag0, AwpMvdSubFlag1 중 적어도 하나의 값이 1일 경우, awp_cand_idx0 및 awp_cand_idx1의 해석 방식은 완전히 일치하고, 그렇지 않으면 해석 방식은 일치하지 않다.
예시적으로, AwpMvdSubFlag0은 제1 원본 모션 정보에 MVD를 중첩하는지 여부를 나타내는 바, 만약 중첩하면 AwpMvdDir0과 AwpMvdStep0에 기반하여 제1 원본 모션 정보에 대응하는 MVD 값을 결정하고, AwpMvdSubFlag1은 제2 원본 모션 정보에 MVD를 중첩하는지 여부를 나타내는 바, 만약 중첩하면, AwpMvdDir1과 AwpMvdStep1에 기반하여 제2 원본 모션 정보에 대응하는 MVD 값을 결정한다. 분명한 것은, 만약 하나의 원본 모션 정보에 MVD를 중첩하고 다른 한 원본 모션 정보에 MVD를 중첩하지 않거나, 또는 두 개의 원본 모션 정보가 중첩한 MVD 값이 상이하면 제1 원본 모션 정보와 제2 원본 모션 정보가 동일한 것을 허락하고, awp_cand_idx0은 제1 원본 모션 정보의 인덱스 값을 나타내며, awp_cand_idx1은 제2 원본 모션 정보의 인덱스 값을 나타내므로 awp_cand_idx0과 awp_cand_idx1의 해석 방식은 완전히 일치, 즉 완전한 모션 정보 후보 리스트에서 awp_cand_idx0에 대응하는 제1 원본 모션 정보를 해석하고, 완전한 모션 정보 후보 리스트에서 awp_cand_idx1에 대응하는 제2 원본 모션 정보를 해석한다.
만약 두 개의 원본 모션 정보에 모두 MVD를 중첩하지 않거나, 또는, 두 개의 원본 모션 정보에 중첩한 MVD 값이 동일하면 제1 원본 모션 정보와 제2 원본 모션 정보는 상이하고, 이에 기반하여, awp_cand_idx0과 awp_cand_idx1의 해석 방식은 일치하지 않으며, 완전한 모션 정보 후보 리스트에서 awp_cand_idx0에 대응하는 제1 원본 모션 정보를 해석하되, 제2 원본 모션 정보와 제1 원본 모션 정보가 상이하므로 완전한 모션 정보 후보 리스트에서 awp_cand_idx1에 대응하는 제2 원본 모션 정보를 해석하는 것이 아니라 제1 원본 모션 정보를 배제한 기초 상에, 불완전한 모션 정보 후보 리스트에서 awp_cand_idx1에 대응하는 제2 원본 모션 정보를 해석한다.
모션 정보 후보 리스트 AwpUniArray에 기반하여 AwpUniArray에서 두 개의 후보 모션 정보를 선택하고, 당해 두 개의 후보 모션 정보에 기반하여 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 결정한다. 예를 들어, 디코딩단은 코딩된 비트 스트림에서 AwpCandIdx0과 AwpCandIdx1을 해석하고, AwpUniArray 중 AwpCandIdx0+1번째 모션 정보를 mvAwp0L0, mvAwp0L1, RefIdxAwp0L0, RefIdxAwp0L1에 할당한다. AwpUniArray 중 AwpCandIdx1+1번째 모션 정보를 mvAwp1L0, mvAwp1L1, RefIdxAwp1L0, RefIdxAwp1L1에 할당한다. 물론, AwpUniArray 중 AwpCandIdx0+1번째 모션 정보를 mvAwp1L0, mvAwp1L1, RefIdxAwp1L0, RefIdxAwp1L1에 할당하고, AwpUniArray 중 AwpCandIdx1+1번째 모션 정보를 mvAwp0L0, mvAwp0L1, RefIdxAwp0L0, RefIdxAwp0L1에 할당할 수도 있다.
AwpCandIdx0은 제1 타깃 모션 정보의 인덱스 값을 나타내므로 AwpUniArray 중 AwpCandIdx0+1번째 모션 정보를 제1 타깃 모션 정보에 할당할 수 있다. 예를 들면, 만약 AwpCandIdx0이 0이면 AwpUniArray 중 첫 번째 모션 정보를 제1 타깃 모션 정보에 할당할 수 있고, 이러한 방법으로 유추한다.
mvAwp0L0, mvAwp0L1, RefIdxAwp0L0, RefIdxAwp0L1을 함께 제1 타깃 모션 정보로 사용하는 바, 즉 제1 타깃 모션 정보는 List0을 지향하는 단방향 모션 정보 및 List1을 지향하는 단방향 모션 정보를 포함한다.
만약 AwpUniArray 중 AwpCandIdx0+1번째 모션 정보가 List0을 지향하는 단방향 모션 정보이면 제1 타깃 모션 정보는 List0을 지향하는 단방향 모션 정보를 포함하고, List1을 지향하는 단방향 모션 정보는 NULL이다.
만약 AwpUniArray 중 AwpCandIdx0+1번째 모션 정보가 List1을 지향하는 단방향 모션 정보이면 제1 타깃 모션 정보는 List1을 지향하는 단방향 모션 정보를 포함하고, List0을 지향하는 단방향 모션 정보는 NULL이다.
예시적으로, mvAwp0L0과 RefIdxAwp0L0은 제1 타깃 모션 정보 중 List0을 지향하는 단방향 모션 정보를 나타내고, mvAwp0L1과 RefIdxAwp0L1은 제1 타깃 모션 정보 중 List1을 지향하는 단방향 모션 정보를 나타낸다.
만약 RefIdxAwp0L0이 유효하면 List0을 지향하는 단방향 모션 정보가 유효한 것을 나타내므로 제1 타깃 모션 정보의 예측 모드는 PRED_List0이다. 만약 RefIdxAwp0L1이 유효하면 List1을 지향하는 단방향 모션 정보가 유효한 것을 나타내므로 제1 타깃 모션 정보의 예측 모드는 PRED_List1이다.
예시적으로, AwpCandIdx1이 제2 타깃 모션 정보의 인덱스 값을 나타내므로 AwpUniArray 중 AwpCandIdx1+1번째 모션 정보를 제2 타깃 모션 정보에 할당할 수 있다. 예를 들면, 만약 AwpCandIdx1이 0이면 AwpUniArray 중 첫 번째 모션 정보를 제2 타깃 모션 정보에 할당하며, 이러한 방법으로 유추한다.
mvAwp1L0, mvAwp1L1, RefIdxAwp1L0, RefIdxAwp1L1을 함께 제2 타깃 모션 정보로 사용, 즉 제2 타깃 모션 정보는 List0을 지향하는 단방향 모션 정보 및 List1을 지향하는 단방향 모션 정보를 포함한다.
만약 AwpUniArray 중 AwpCandIdx1+1번째 모션 정보가 List0을 지향하는 단방향 모션 정보이면 제2 타깃 모션 정보는 List0을 지향하는 단방향 모션 정보를 포함하고, List1을 지향하는 단방향 모션 정보는 NULL이다.
만약 AwpUniArray 중 AwpCandIdx1+1번째 모션 정보가 List1을 지향하는 단방향 모션 정보이면 제2 타깃 모션 정보는 List1을 지향하는 단방향 모션 정보를 포함하고, List0을 지향하는 단방향 모션 정보는 NULL이다.
예시적으로, mvAwp1L0과 RefIdxAwp1L0은 제2 타깃 모션 정보 중 List0을 지향하는 단방향 모션 정보를 나타내고, mvAwp1L1과 RefIdxAwp1L1은 제2 타깃 모션 정보 중 List1을 지향하는 단방향 모션 정보를 나타낸다.
만약 RefIdxAwp1L0이 유효하면 List0을 지향하는 단방향 모션 정보가 유효한 것을 나타내므로 제2 타깃 모션 정보의 예측 모드는 PRED_List0이다. 만약 RefIdxAwp1L1이 유효하면 List1을 지향하는 단방향 모션 정보가 유효한 것을 나타내므로 제2 타깃 모션 정보의 예측 모드는 PRED_List1이다.
약간의 응용에서, 참조 픽처의 저장 공간이 한정되므로 만약 현재 슬라이스가 B 슬라이스이지만 List0과 List1 중 참조 픽처의 POC가 일치, 즉 동일한 픽처이면 AWP 모드의 성능을 최대화하기 위하여 전송된 두 개의 모션 정보의 신택스 요소를 다시 설계할 수 있는 바, 즉 본 실시에의 방식을 사용하여 모션 정보를 전송할 수 있다. 다른 한편으로, P 슬라이스의 경우에 대하여, 만약 동일한 픽처를 지향하는 두 개의 모션 벡터가 일정한 범위 내에 한정되고, P 슬라이스의 대역폭 한정을 증가하지 않으면 AWP 모드는 P 슬라이스에 응용될 수 있다.
상기 발견에 대하여, 본 실시예에서, 제1 타깃 모션 정보가 지향하는 참조 픽처와 제2 타깃 모션 정보가 지향하는 참조 픽처가 동일한 픽처일 경우, 즉 AWP 모드의 두 개의 모션 벡터가 동일한 픽처이면 제2 타깃 모션 정보의 모션 벡터는 제1 타깃 모션 정보의 모션 벡터에 의해 도출, 즉 첫 번째 모션 정보가 인덱스 값을 전달하고, 두 번째 모션 정보는 첫 번째 모션 정보의 기초 상에 MVD를 중첩하며, MVD의 코딩 방식은 실시예 15 또는 실시예 16을 참조한다.
표 11에 도시된 내용을 참조하면, 이는 신택스 요소의 하나의 예시이고, awp_mvd_dir0은 제약적 각도 가중 예측 모드 제1 모션 정보 모션 벡터 차이 방향 인덱스 값을 나타내고, AwpMvdDir0의 값은 awp_mvd_dir0의 값과 같으며, 만약 비트 스트림에awp_mvd_dir0이 존재하지 않으면 AwpMvdDir0의 값은 0과 같다. awp_mvd_step0은 제약적 각도 가중 예측 모드 제1 모션 정보 모션 벡터 차이 보폭 인덱스 값을 나타내고, AwpMvdStep0의 값은 awp_mvd_step0의 값과 같으며, 만약 비트 스트림에 awp_mvd_step0이 존재하지 않으면 AwpMvdStep0의 값은 0과 같다. awp_mvd_dir1은 제약적 각도 가중 예측 모드 제2 모션 정보 모션 벡터 차이 방향 인덱스 값을 나타내고, AwpMvdIdx1의 값은 awp_mvd_dir1의 값과 같으며, 만약 비트 스트림에 awp_mvd_dir1이 존재하지 않으면 AwpMvdDir1의 값은 0과 같다. awp_mvd_step1은 제약적 각도 가중 예측 모드 제2 모션 정보 모션 벡터 차이 보폭 인덱스 값을 나타내고, AwpMvdStep1의 값은 awp_mvd_step1의 값과 같으며, 만약 비트 스트림에 awp_mvd_step1이 존재하지 않으면 AwpMvdStep1의 값은 0과 같다.
표 11
Figure pct00012
Figure pct00013
상술한 내용을 종합하면, awp_cand_idx에 기반하여 원본 모션 정보(원본 모션 정보는 원본 모션 벡터를 포함)를 결정할 수 있고, awp_mvd_dir0과 awp_mvd_step0에 근거하여 제1 모션 벡터 차이 MVD0과 제2 모션 벡터 차이 MVD1을 결정할 수 있다. 이 기초 상에, 원본 모션 벡터와 제1 모션 벡터 차이 MVD0에 근거하여 제1 타깃 모션 벡터, 예컨대 원본 모션 벡터+ MVD0를 결정한다. 제1 타깃 모션 벡터와 제2 모션 벡터 차이 MVD1에 근거하여 제2 타깃 모션 벡터, 예컨대 제1 타깃 모션 벡터+ MVD1을 결정한다. 제1 타깃 모션 벡터를 얻은 후, 제1 타깃 모션 벡터에 기반하여 제1 타깃 모션 정보를 얻되, 제1 타깃 모션 정보는 제1 타깃 모션 벡터를 포함한다. 제2 타깃 모션 벡터를 얻은 후, 제2 타깃 모션 벡터에 기반하여 제2 타깃 모션 정보를 얻되, 제2 타깃 모션 정보는 제2 타깃 모션 벡터를 포함한다.
또 예를 들면, 원본 모션 벡터와 제1 모션 벡터 차이 MVD0에 근거하여 제1 타깃 모션 벡터, 예컨대 원본 모션 벡터+ MVD0을 결정한다. 원본 모션 벡터와 제2 모션 벡터 차이 MVD1에 근거하여 제2 타깃 모션 벡터, 예컨대 원본 모션 벡터+MVD1을 결정한다. 제1 타깃 모션 벡터를 얻은 후, 제1 타깃 모션 벡터에 기반하여 제1 타깃 모션 정보를 얻되, 제1 타깃 모션 정보는 제1 타깃 모션 벡터를 포함한다. 제2 타깃 모션 벡터를 얻은 후, 제2 타깃 모션 벡터에 기반하여 제2 타깃 모션 정보를 얻되, 제2 타깃 모션 정보는 제2 타깃 모션 벡터를 포함한다.
표 12에 도시된 내용을 참조하면, 이는 신택스 요소의 다른 예시인바, awp_mvd_dir과 awp_mvd_step은 두 번째 모션 정보(즉 제2 타깃 모션 정보)의 첫 번째 모션 정보(즉 제1 타깃 모션 정보)에서의 MVD의 신택스 표현을 조성한다. awp_mvd_dir은 제약적 각도 가중 예측 모드 모션 벡터 차이 방향 인덱스 값을 나타내고, AwpMvdDir의 값은 awp_mvd_dir의 값과 같으며, 만약 비트 스트림에 awp_mvd_dir이 존재하지 않으면 AwpMvdDir의 값은 0과 같다. awp_mvd_step은 제약적 각도 가중 예측 모드 모션 벡터 차이 보폭 인덱스 값을 나타내고, AwpMvdStep의 값은 awp_mvd_step의 값과 같으며, 만약 비트 스트림에 awp_mvd_step이 존재하지 않으면 AwpMvdStep의 값은 0과 같다.
표 12
Figure pct00014
요약하면, awp_cand_idx에 기반하여 원본 모션 정보(원본 모션 정보는 원본 모션 벡터를 포함)를 결정할 수 있고, awp_mvd_dir과 awp_mvd_step에 기반하여 모션 벡터 차이 MVD를 결정할 수 있다.
이 기초상에, 원본 모션 벡터에 근거하여 제1 타깃 모션 벡터를 결정하되, 예컨대 제1 타깃 모션 벡터는 원본 모션 벡터이다. 제1 타깃 모션 벡터와 모션 벡터 차이 MVD에 근거하여 제2 타깃 모션 벡터, 예컨대 제1 타깃 모션 벡터+MVD를 결정한다. 제1 타깃 모션 벡터를 얻은 후, 제1 타깃 모션 벡터에 기반하여 제1 타깃 모션 정보를 얻되, 제1 타깃 모션 정보는 제1 타깃 모션 벡터를 포함한다. 제2 타깃 모션 벡터를 얻은 후, 제2 타깃 모션 벡터에 기반하여 제2 타깃 모션 정보를 얻되, 제2 타깃 모션 정보는 제2 타깃 모션 벡터를 포함한다.
또 예를 들면, 원본 모션 벡터와 모션 벡터 차이 MVD에 근거하여 제1 타깃 모션 벡터, 예컨대 원본 모션 벡터+ MVD를 결정한다. 원본 모션 벡터와 모션 벡터 차이 MVD에 근거하여 제2 타깃 모션 벡터, 예컨대 원본 모션 벡터- MVD를 결정한다. 또는, 원본 모션 벡터와 모션 벡터 차이 MVD에 근거하여 제1 타깃 모션 벡터, 예컨대 원본 모션 벡터-MVD를 결정한다. 원본 모션 벡터와 모션 벡터 차이 MVD에 근거하여 제2 타깃 모션 벡터, 예컨대 원본 모션 벡터+MVD를 결정한다. 제1 타깃 모션 벡터를 얻은 후, 제1 타깃 모션 벡터에 기반하여 제1 타깃 모션 정보를 얻되, 제1 타깃 모션 정보는 제1 타깃 모션 벡터를 포함한다. 제2 타깃 모션 벡터를 얻은 후, 제2 타깃 모션 벡터에 기반하여 제2 타깃 모션 정보를 얻되, 제2 타깃 모션 정보는 제2 타깃 모션 벡터를 포함한다. 상술한 내용으로부터 알 수 있다시피, MVD는 반대되는 두 개의 방향에 동시에 작용하여 원본 모션 정보가 두 개의 타깃 모션 정보를 도출할 수 있도록 한다.
가능한 일 실시형태에서, MVD의 신택스 표현은 수평 컴포넌트와 수직 컴포넌트의 별도 표현일 수도 있는 바, 표 13에 도시된 내용을 참조하면, 이는 별도 표현의 한 예시이다. awp_mv_diff_x_abs는 제약적 각도 가중 예측 모드 모션 벡터 수평 컴포넌트 차이 절대값을 나타내고, awp_mv_diff_y_abs는 제약적 각도 가중 예측 모드 모션 벡터 수직 컴포넌트 차이 절대값을 나타낸다. awp_mv_diff_x_sign은 제약적 각도 가중 예측 모드 모션 벡터 수평 컴포넌트 차이 부호값을 나타내고, awp_mv_diff_y_sign은 제약적 각도 가중 예측 모드 모션 벡터 수직 컴포넌트 차이 부호값을 나타낸다.
예시적으로, 제약적 각도 가중 예측 모드의 모션 벡터 수평 컴포넌트 차이값의 절대값과 모션 벡터 수직 컴포넌트 차이값의 절대값에 있어서, AwpMvDiffXAbs는 awp_mv_diff_x_abs의 값과 같고, AwpMvDiffYAbs는 awp_mv_diff_y_abs의 값과 같다.
예시적으로, 제약적 각도 가중 예측 모드의 모션 벡터 수평 컴포넌트 차이값의 부호 비트와 모션 벡터 수직 컴포넌트 차이값의 부호 비트에 있어서, AwpMvDiffXSign의 값은 awp_mv_diff_x_sign의 값과 같고, AwpMvDiffYSign의 값은 awp_mv_diff_y_sign0과 같다. 만약 비트 스트림에 awp_mv_diff_x_sign 또는 awp_mv_diff_y_sign이 존재하지 않으면 AwpMvDiffXSign 또는 AwpMvDiffYSign의 값은 0이다. 만약 AwpMvDiffXSign의 값이 0이면 AwpMvDiffX가 AwpMvDiffXAbs와 같고; 만약 AwpMvDiffXSign의 값이 1이면 AwpMvDiffX는 -AwpMvDiffXAbs와 같다. 만약 AwpMvDiffYSign의 값이 0이면 AwpMvDiffY는 AwpMvDiffYAbs와 같고; 만약 AwpMvDiffYSign의 값이 1이면 AwpMvDiffY는 -AwpMvDiffYAbs와 같다. AwpMvDiffX와 AwpMvDiffY의 값의 범위는 -32768~32767이다.
표 13
Figure pct00015
다른 가능한 일 실시형태에서, 표 14에 도시된 내용을 참조하면, 이는 별도 표현의 다른 예시이다. 표 14에 도시된 내용을 기반으로 하여 |MVD_X|가 0보다 큰지 여부를 판정할 수 있는 바, |...|는 절대값 부호이고, MVD_X는 MVD의 수평 방향 컴포넌트를 나타내며; |MVD_Y|가 0보다 큰지 여부를 판정할 수 있는 바, |...|는 절대값 부호이고, MVD_Y는 MVD의 수직 방향 컴포넌트를 나타내며; 만약 |MVD_X|가 0보다 크면 |MVD_X|가 1보다 큰지 여부를 판정하고; 만약 |MVD_Y|가 0보다 크면 |MVD_Y|가 1보다 큰지 여부를 판정하며; 만약 |MVD_X|가 1보다 크면 |MVD_X|-2를 코딩하고; 만약 |MVD_X|가 0보다 크면 MVD_X의 부호 비트를 코딩하며; 만약 |MVD_Y|가 1보다 크면 |MVD_Y|-2를 코딩하고; 만약 |MVD_Y|가 0보다 크면 MVD_Y의 부호 비트를 코딩한다.
표 14
Figure pct00016
실시예 19: 실시예 1 내지 실시예 3에서, 코딩단/디코딩단은 모션 정보 후보 리스트를 획득해야 하는 바, 예컨대 모션 정보 후보 리스트에 추가될 적어도 하나의 사용 가능 모션 정보를 획득하는 방식; 적어도 하나의 사용 가능 모션 정보에 기반하여 모션 정보 후보 리스트를 획득하는 방식을 사용하여 모션 정보 후보 리스트를 획득한다. 예시적으로, 적어도 하나의 사용 가능 모션 정보는 공간적 모션 정보; 시간적 모션 정보; 기설정된 모션 정보 중 적어도 하나를 포함하나 이에 한정되지 않고, 각 사용 가능 모션 정보의 획득 방식은 실시예 13을 참조할 수 있으며, 여기서 더 이상 설명하지 않는다.
예시적으로, 적어도 하나의 사용 가능 모션 정보에 기반하여 모션 정보 후보 리스트를 획득하는 것은, 현재 모션 정보 후보 리스트에 추가될 사용 가능 모션 정보에 대하여, 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가하는 것을 포함할 수 있다. 예를 들어, 사용 가능 모션 정보에 대하여, 사용 가능 모션 정보가 단방향 모션 정보이든 양방향 모션 정보이든 모두 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가할 수 있다. 실시예 13 및 실시예 14와의 상이한 점은, 사용 가능 모션 정보가 양방향 모션 정보일 경우, 양방향 모션 정보를 제1 단방향 모션 정보와 제2 단방향 모션 정보로 커팅할 필요가 없이 양방향 모션 정보를 직접 모션 정보 후보 리스트에 추가하면 되는 바, 즉 모션 정보 후보 리스트는 양방향 모션 정보를 포함할 수 있다.
예시적으로, 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가할 경우, 사용 가능 모션 정보에 대해 중복 확인 조작을 수행할 수도 있고 사용 가능 모션 정보에 대해 중복 확인 조작을 수행하지 않을 수도 있으며, 이에 대해 한정하지 않는다. 만약 사용 가능 모션 정보에 대해 중복 확인 조작을 수행하면 List+refIdx+MV_x+MV_y에 기반하여 중복 확인 조작을 수행하거나, 또는, POC+MV_x+MV_y에 기반하여 중복 확인 조작을 수행할 수 있고, 당해 중복 확인 조작의 방식은 더 이상 설명하지 않으며, 실시예 14를 참조할 수 있다.
실시예 20: 실시예 1 내지 실시예 3에서, 코딩단/디코딩단은 모션 정보 후보 리스트를 얻은 후, 당해 모션 정보 후보 리스트에 기반하여 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득하고, 제1 타깃 모션 정보가 지향하는 참조 픽처와 제2 타깃 모션 정보가 지향하는 참조 픽처가 동일한 픽처인 것을 결정할 경우, 모션 정보 후보 리스트 중 후보 모션 정보는 모두 양방향 모션 정보일 수 있다.
예시적으로, 만약 제1 타깃 모션 정보가 지향하는 참조 픽처와 제2 타깃 모션 정보가 지향하는 참조 픽처가 동일한 픽처라고 한정, 즉 AWP 모드의 두 개의 모션 벡터가 동일한 픽처를 지향하면 모션 정보 후보 리스트를 구축할 경우, 모션 정보 후보 리스트에 추가된 사용 가능 모션 정보는 모두 양방향 모션 정보이다. 이에 기반하여, 코딩단에 있어서, 율-왜곡 코스트 값을 사용하여 모션 정보 후보 리스트에서 하나의 후보 모션 정보를 선택할 수 있고, 코딩단은 디코딩단에 현재 블록의 코딩된 비트 스트림을 송신할 경우, 당해 후보 모션 정보의 모션 정보 후보 리스트에서의 인덱스 값을 휴대할 수 있으며, 디코딩단에 있어서, 당해 인덱스 값에 기반하여 모션 정보 후보 리스트에서 하나의 후보 모션 정보를 선택할 수 있다.
실시예 21: 실시예 4에서, 코딩단/디코딩단은 모션 벡터 후보 리스트를 획득해야 하는 바, 예를 들면, 참조 픽처 정보(즉 현재 블록의 참조 픽처 정보)을 획득해야 하고, 당해 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트(즉 현재 블록의 모션 벡터 후보 리스트)를 획득해야 하는 바, 즉 모션 벡터 후보 리스트는 참조 픽처 정보에 대해 구축된 것이다. 예시적으로, 당해 참조 픽처 정보는 제1 참조 픽처 정보와 제2 참조 픽처 정보를 포함하므로 당해 모션 벡터 후보 리스트는 제1 참조 픽처 정보(예컨대 참조 픽처 인덱스와 참조 픽처 방향 등)에 대응하는 모션 벡터 후보 리스트 및 제2 참조 픽처 정보(예컨대 참조 픽처 인덱스와 참조 픽처 방향 등)에 대응하는 모션 벡터 후보 리스트를 포함할 수 있으며, 제1 참조 픽처 정보는 제1 타깃 모션 벡터에 대응하는 참조 픽처 정보이고, 제2 참조 픽처 정보는 제2 타깃 모션 벡터에 대응하는 참조 픽처 정보이다.
예시적으로, 코딩단에 있어서, 제1 참조 픽처 정보와 제2 참조 픽처 정보를 획득할 수 있는 바, 예를 들어, 율-왜곡 코스트 값에 기반하여 하나의 참조 픽처 리스트에서 제1 참조 픽처 정보와 제2 참조 픽처 정보를 선택할 수도 있고, 두 개의 참조 픽처 리스트에서 제1 참조 픽처 정보와 제2 참조 픽처 정보를 선택할 수도 있는 바, 예를 들면, 두 개의 참조 픽처 리스트는 각각 List0과 List1이고, List0에서 제1 참조 픽처 정보를 선택하고, List1에서 제2 참조 픽처 정보를 선택한다.
예시적으로, 디코딩단에 있어서, 제1 참조 픽처 정보와 제2 참조 픽처 정보를 획득할 수 있는 바, 예를 들어, 현재 블록의 코딩된 비트 스트림 중의 인덱스 정보에 기반하여 하나의 참조 픽처 리스트에서 제1 참조 픽처 정보와 제2 참조 픽처 정보를 선택할 수도 있고, 두 개의 참조 픽처 리스트에서 제1 참조 픽처 정보와 제2 참조 픽처 정보를 선택할 수도 있는 바, 예를 들면, 두 개의 참조 픽처 리스트는 각각 List0과 List1이고, 제1 참조 픽처 정보의 인덱스 정보에 기반하여 List0에서 제1 참조 픽처 정보를 선택하며, 제2 참조 픽처 정보의 인덱스 정보에 기반하여 List1에서 제2 참조 픽처 정보를 선택한다.
물론, 상술한 내용은 단지 제1 참조 픽처 정보와 제2 참조 픽처 정보를 획득하는 예시일 뿐, 이에 대해 한정하지 않는다.
가능한 일 실시형태에서, 제1 참조 픽처 정보와 제2 참조 픽처 정보는 동일할 수 있고, 이 경우에, 제1 타깃 모션 벡터가 지향하는 참조 픽처와 제2 타깃 모션 벡터가 지향하는 참조 픽처는 동일한 픽처이며, 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트와 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트는 동일한 모션 벡터 후보 리스트, 즉, 코딩단/디코딩단이 획득한 것은 하나의 모션 벡터 후보 리스트이다.
다른 가능한 일 실시형태에서, 제1 참조 픽처 정보와 제2 참조 픽처 정보는 상이할 수 있고, 이 경우, 제1 타깃 모션 벡터가 지향하는 참조 픽처와 제2 타깃 모션 벡터가 지향하는 참조 픽처는 상이한 픽처이며, 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트 및 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트는 상이한 모션 벡터 후보 리스트, 즉 코딩단/디코딩단이 획득한 것은 두 개의 상이한 모션 벡터 후보 리스트이다.
설명의 편리를 위하여, 하나의 모션 벡터 후보 리스트이든 두 개의 상이한 모션 벡터 후보 리스트이든 모두 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트 및 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트로 표기한다.
이에 기반하여, 아래와 같은 방식을 사용하여 현재 블록의 제1 타깃 모션 벡터와 제2 타깃 모션 벡터를 획득할 수 있다.
방식 1, 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서 하나의 후보 모션 벡터를 선택하여 현재 블록의 제1 타깃 모션 벡터로 이용하고, 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서 하나의 후보 모션 벡터를 선택하여 현재 블록의 제2 타깃 모션 벡터로 이용한다. 제2 타깃 모션 벡터와 제1 타깃 모션 벡터는 상이할 수 있다.
코딩단에 있어서, 율-왜곡 원칙에 기반하여 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서 하나의 후보 모션 벡터를 선택하여 현재 블록의 제1 타깃 모션 벡터로 이용하고, 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서 하나의 후보 모션 벡터를 선택하여 현재 블록의 제2 타깃 모션 벡터로 이용할 수 있으며, 이에 대해 한정하지 않는다.
가능한 일 실시형태에서, 코딩단이 디코딩단에 코딩된 비트 스트림을 송신할 경우, 당해 코딩된 비트 스트림은 지시정보 a와 지시정보 b를 휴대할 수 있는 바, 지시정보 a는 현재 블록의 제1 타깃 모션 벡터의 인덱스 값 1을 지시하고, 인덱스 값 1은 제1 타깃 모션 벡터가 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트 중 몇 번째 후보 모션 벡터인지를 나타낸다. 지시정보 b는 현재 블록의 제2 타깃 모션 벡터의 인덱스 값 2를 지시하고, 인덱스 값 2는 제2 타깃 모션 벡터가 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트 중 몇 번째 후보 모션 벡터인지를 나타낸다.
디코딩단은 코딩된 비트 스트림을 수신한 후, 코딩된 비트 스트림에서 지시정보 a와 지시정보 b를 해석한다. 지시정보 a에 기반하여 디코딩단은 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서 인덱스 값 1에 대응하는 후보 모션 벡터를 선택하고, 당해 후보 모션 벡터를 현재 블록의 제1 타깃 모션 벡터로 사용한다. 지시정보 b에 기반하여 디코딩단은 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서 인덱스 값 2에 대응하는 후보 모션 벡터를 선택하고, 당해 후보 모션 벡터를 현재 블록의 제2 타깃 모션 벡터로 사용한다.
방식 2, 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서 하나의 후보 모션 벡터를 현재 블록의 제1 원본 모션 벡터로 선택하고, 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서 하나의 후보 모션 벡터를 현재 블록의 제2 원본 모션 벡터로 선택하며, 예시적으로, 당해 제1 원본 모션 벡터와 당해 제2 원본 모션 벡터는 상이할 수 있거나, 또는, 당해 제1 원본 모션 벡터와 당해 제2 원본 모션 벡터는 동일할 수도 있다. 다음, 당해 제1 원본 모션 벡터에 근거하여 현재 블록의 제1 타깃 모션 벡터를 결정하고, 당해 제2 원본 모션 벡터에 근거하여 현재 블록의 제2 타깃 모션 벡터를 결정한다. 예시적으로, 당해 제1 타깃 모션 벡터와 당해 제2 타깃 모션 벡터는 상이할 수 있다.
어떻게 원본 모션 벡터에 근거하여 타깃 모션 벡터를 결정할 것인가에 관하여, 본 실시예에서는 단방향 모션 벡터에 모션 벡터 차이를 중첩하는 방안을 제안하는 바, 예를 들어, 제1 원본 모션 벡터에 대응하는 제1 모션 벡터 차이(즉 MVD)를 획득하고, 제1 모션 벡터 차이와 제1 원본 모션 벡터에 근거하여 제1 타깃 모션 벡터를 결정(즉 제1 모션 벡터 차이와 제1 원본 모션 벡터의 합을 제1 타깃 모션 벡터로 사용)할 수 있다. 또는, 제1 원본 모션 벡터를 제1 타깃 모션 벡터로 결정할 수 있다. 그리고, 제2 원본 모션 벡터에 대응하는 제2 모션 벡터 차이를 획득하고, 제2 모션 벡터 차이와 제2 원본 모션 벡터에 근거하여 제2 타깃 모션 벡터를 결정(즉 제2 모션 벡터 차이와 제2 원본 모션 벡터의 합을 제2 타깃 모션 벡터로 사용)할 수 있다. 또는, 제2 원본 모션 벡터를 제2 타깃 모션 벡터로 결정한다.
예시적으로, 제1 모션 벡터 차이의 방향 정보와 진폭 정보를 획득하고, 제1 모션 벡터 차이의 방향 정보와 진폭 정보에 근거하여 제1 모션 벡터 차이를 결정할 수 있다. 또한, 제2 모션 벡터 차이의 방향 정보와 진폭 정보를 획득하고, 제2 모션 벡터 차이의 방향 정보와 진폭 정보에 근거하여 상기 제2 모션 벡터 차이를 결정할 수 있다.
예시적으로, 디코딩단에 있어서, 디코딩단은 현재 블록의 코딩된 비트 스트림에서 제1 모션 벡터 차이의 방향 정보를 해석하는 방식; 또는, 디코딩단이 현재 블록의 가중치 예측 각도에 근거하여 제1 모션 벡터 차이의 방향 정보를 유도하는 방식을 사용하여 제1 모션 벡터 차이의 방향 정보를 획득할 수 있다. 디코딩단에 있어서, 디코딩단이 현재 블록의 코딩된 비트 스트림에서 제2 모션 벡터 차이의 방향 정보를 해석하는 방식; 또는, 디코딩단이 현재 블록의 가중치 예측 각도에 근거하여 제2 모션 벡터 차이의 방향 정보를 유도하는 방식을 사용하여 제2 모션 벡터 차이의 방향 정보를 획득할 수 있다.
예시적으로, 디코딩단에 있어서, 현재 블록의 코딩된 비트 스트림에서 제1 모션 벡터 차이의 진폭 정보를 해석하는 방식을 사용하여 제1 모션 벡터 차이의 진폭 정보를 획득할 수 있다. 현재 블록의 코딩된 비트 스트림에서 제2 모션 벡터 차이의 진폭 정보를 해석하는 방식을 사용하여 제2 모션 벡터 차이의 진폭 정보를 획득할 수 있다.
가능한 일 실시형태에서, 코딩단과 디코딩단은 모션 벡터 차이의 방향 정보와 진폭 정보를 약정할 수 있는 바, 만약 방향 정보가 방향이 오른쪽을 향하는 것을 나타내고, 진폭 정보가 진폭이 A인 것을 나타내면 모션 벡터 차이는 (A, 0)이고; 만약 방향 정보가 방향이 아래를 향하는 것을 나타내고, 진폭 정보가 진폭이 A인 것을 나타내면 모션 벡터 차이는 (0, -A)이며; 만약 방향 정보가 방향이 왼쪽을 향하는 것을 나타내고, 진폭 정보가 진폭이 A인 것을 나타내면 모션 벡터 차이는 (-A, 0)이고; 만약 방향 정보가 방향이 위를 향하는 것을 나타내고, 진폭 정보가 진폭이 A인 것을 나타내면 모션 벡터 차이는 (0, A)이며; 만약 방향 정보가 방향이 오른쪽 위를 향하는 것을 나타내고, 진폭 정보가 진폭이 A인 것을 나타내면 모션 벡터 차이는 (A, A)이고; 만약 방향 정보가 방향이 왼쪽 위를 향하는 것을 나타내고, 진폭 정보가 진폭이 A인 것을 나타내면 모션 벡터 차이는 (-A, A)이며; 만약 방향 정보가 방향이 왼쪽 아래를 향하는 것을 나타내고, 진폭 정보가 진폭이 A인 것을 나타내면 모션 벡터 차이는 (-A, -A)이고; 만약 방향 정보가 방향이 오른쪽 아래를 향하는 것을 나타내고, 진폭 정보가 진폭이 A인 것을 나타내면 모션 벡터 차이는 (A, -A)이다. 물론, 상술한 내용은 몇 개의 예시일 뿐, 당해 방향 정보와 진폭 정보를 한정하지 않는다.
예시적으로, 모션 벡터 차이의 관련 소개는 실시예 15를 참조할 수 있으며, 여기서 더 이상 설명하지 않는다.
코딩단에 있어서, 율-왜곡 코스트 값에 기반하여 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서 제1 원본 모션 벡터를 선택하고, 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서 제2 원본 모션 벡터를 선택하며, 율-왜곡 코스트 값에 기반하여 제1 원본 모션 벡터에 대응하는 제1 모션 벡터 차이의 방향 정보와 진폭 정보를 결정하고, 제2 원본 모션 벡터에 대응하는 제2 모션 벡터 차이의 방향 정보와 진폭 정보를 결정할 수 있다. 코딩단은 디코딩단에 코딩된 비트 스트림을 송신할 경우, 코딩된 비트 스트림에 제1 원본 모션 벡터의 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서의 인덱스 값, 제2 원본 모션 벡터의 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서의 인덱스 값, 제1 모션 벡터 차이의 방향 정보와 진폭 정보, 제2 모션 벡터 차이의 방향 정보와 진폭 정보를 코딩한다.
디코딩단에 있어서, 현재 블록의 코딩된 비트 스트림을 수신한 후, 제1 원본 모션 벡터의 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서의 인덱스 값에 기반하여 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서 제1 원본 모션 벡터를 선택하고, 제2 원본 모션 벡터의 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서의 인덱스 값에 기반하여 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서 제2 원본 모션 벡터를 선택한다.
디코딩단은 코딩된 비트 스트림에서 제1 모션 벡터 차이의 방향 정보와 진폭 정보를 해석하고, 당해 방향 정보와 당해 진폭 정보에 근거하여 제1 모션 벡터 차이를 결정할 수도 있다. 및, 당해 코딩된 비트 스트림에서 제2 모션 벡터 차이의 방향 정보와 진폭 정보를 해석하고, 당해 방향 정보와 당해 진폭 정보에 근거하여 제2 모션 벡터 차이를 결정할 수 있다.
예시적으로, 코딩된 비트 스트림에는 제1 원본 모션 벡터에 대응하는 제1 참조 픽처 정보가 더 포함될 수 있고, 디코딩단은 제1 원본 모션 벡터 및 제1 원본 모션 벡터에 대응하는 제1 참조 픽처 정보에 근거하여 제1 원본 모션 정보를 결정할 수 있다. 코딩된 비트 스트림에는 제2 원본 모션 벡터에 대응하는 제2 참조 픽처 정보가 더 포함될 수 있고, 디코딩단은 제2 원본 모션 벡터 및 제2 원본 모션 벡터에 대응하는 제2 참조 픽처 정보에 근거하여 제2 원본 모션 정보를 결정할 수 있다.
다음, 디코딩단은 제1 모션 벡터 차이와 제1 원본 모션 정보에 근거하여 현재 블록의 제1 타깃 모션 정보를 결정하고, 제2 모션 벡터 차이와 제2 원본 모션 정보에 근거하여 현재 블록의 제2 타깃 모션 정보를 결정할 수 있다.
예시적으로, 코딩단은 또 코딩된 비트 스트림에 향상된 각도 가중 예측 모드의 제1 서브 모드 플래그 및 제2 서브 모드 플래그를 코딩할 수도 있는 바, 제1 서브 모드 플래그는 제1 원본 모션 벡터에 모션 벡터 차이를 중첩하거나, 또는 제1 원본 모션 벡터에 모션 벡터 차이를 중첩하지 않는 것을 지시한다. 제2 서브 모드 플래그는 제2 원본 모션 벡터에 모션 벡터 차이를 중첩하거나, 또는 제2 원본 모션 벡터에 모션 벡터 차이를 중첩하지 않는 것을 지시한다. 관련 처리는 실시예 15를 참조하며, 여기서 더 이상 설명하지 않는다.
상기 실시예에서, 디코딩단은 현재 블록의 코딩된 비트 스트림에서 제1 모션 벡터 차이의 방향 정보와 제2 모션 벡터 차이의 방향 정보를 해석하는 바, 실제 응용에서는, 현재 블록의 가중치 예측 각도에 근거하여 제1 모션 벡터 차이의 방향 정보를 유도하며, 현재 블록의 가중치 예측 각도에 근거하여 제2 모션 벡터 차이의 방향 정보를 유도할 수도 있다.
코딩단에 있어서, 현재 블록의 가중치 예측 각도에 근거하여 제1 모션 벡터 차이의 방향 정보를 유도하고, 현재 블록의 가중치 예측 각도에 근거하여 제2 모션 벡터 차이의 방향 정보를 유도할 수도 있다.
예시적으로, 디코딩단은 코딩된 비트 스트림에서 제1 모션 벡터 차이의 진폭 정보와 제2 모션 벡터 차이의 진폭 정보를 해석할 수 있는 바, 가능한 일 실시형태에서, 코딩단과 디코딩단은 동일한 하나의 모션 벡터 차이 진폭 리스트를 구축할 수 있고, 코딩단은 제1 모션 벡터 차이의 진폭 정보의 당해 모션 벡터 차이 진폭 리스트에서의 진폭 인덱스를 결정하며, 코딩된 비트 스트림은 제1 모션 벡터 차이의 진폭 인덱스를 포함한다. 디코딩단은 현재 블록의 코딩된 비트 스트림에서 제1 모션 벡터 차이의 진폭 인덱스를 해석하고, 당해 모션 벡터 차이 진폭 리스트에서 당해 진폭 인덱스에 대응하는 진폭 정보를 선택하는 바, 당해 진폭 정보는 바로 제1 모션 벡터 차이의 진폭 정보이다. 코딩단은 제2 모션 벡터 차이의 진폭 정보의 당해 모션 벡터 차이 진폭 리스트에서의 진폭 인덱스를 결정하고, 코딩된 비트 스트림은 제2 모션 벡터 차이의 진폭 인덱스를 포함한다. 디코딩단은 현재 블록의 코딩된 비트 스트림에서 제2 모션 벡터 차이의 진폭 인덱스를 해석하고, 당해 모션 벡터 차이 진폭 리스트에서 당해 진폭 인덱스에 대응하는 진폭 정보를 선택하는 바, 당해 진폭 정보는 바로 제2 모션 벡터 차이의 진폭 정보이다.
다른 가능한 일 실시형태에서, 코딩단과 디코딩단은 동일한 적어도 두 개의 모션 벡터 차이 진폭 리스트를 구축할 수 있는 바, 예컨대 코딩단과 디코딩단은 동일한 모션 벡터 차이 진폭 리스트 1를 구축하고, 동일한 모션 벡터 차이 진폭 리스트 2를 구축한다. 코딩단은 먼저 모션 벡터 차이 진폭 리스트의 지시정보에 기반하여 모든 모션 벡터 차이 진폭 리스트에서 타깃 모션 벡터 차이 진폭 리스트를 선택하고; 코딩단은 제1 모션 벡터 차이의 진폭 정보의 당해 타깃 모션 벡터 차이 진폭 리스트에서의 진폭 인덱스를 결정하며, 코딩된 비트 스트림은 제1 모션 벡터 차이의 진폭 인덱스를 포함한다.
코딩단은 제2 모션 벡터 차이의 진폭 정보의 당해 타깃 모션 벡터 차이 진폭 리스트에서의 진폭 인덱스를 결정할 수도 있고, 코딩된 비트 스트림은 제2 모션 벡터 차이의 진폭 인덱스를 포함할 수 있다. 디코딩단은 현재 블록의 코딩된 비트 스트림에서 제2 모션 벡터 차이의 진폭 인덱스를 해석하고, 당해 타깃 모션 벡터 차이 진폭 리스트에서 당해 진폭 인덱스에 대응하는 진폭 정보를 선택할 수 있으며, 당해 진폭 정보는 바로 제2 모션 벡터 차이의 진폭 정보이다.
예시적으로, 모션 벡터 차이 진폭 리스트의 관련 내용에 관하여, 실시예 16을 참조할 수 있으며, 여기서 더 이상 설명하지 않는다.
실시예 22: 실시예 4에서, 코딩단/디코딩단은 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트 및 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에 기반하여 현재 블록의 제1 타깃 모션 벡터와 제2 타깃 모션 벡터를 획득할 수 있고, 제1 타깃 모션 벡터가 지향하는 참조 픽처와 제2 타깃 모션 벡터가 지향하는 참조 픽처가 동일한 픽처일 경우, 제1 참조 픽처 정보는 제2 참조 픽처 정보와 동일한 바, 즉 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트와 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트는 동일한 것이며, 이에 기반하여, 모션 벡터 후보 리스트에서 하나의 후보 모션 벡터를 선택하여 현재 블록의 원본 모션 벡터로 이용하는 방식; 원본 모션 벡터에 근거하여 현재 블록의 제1 타깃 모션 벡터를 결정하는 방식을 사용하여 제1 타깃 모션 벡터와 제2 타깃 모션 벡터를 획득한다. 제1 타깃 모션 벡터에 근거하여 현재 블록의 제2 타깃 모션 벡터를 결정하거나, 또는, 원본 모션 벡터에 근거하여 현재 블록의 제2 타깃 모션 벡터를 결정한다.
예시적으로, 원본 모션 벡터에 대응하는 모션 벡터 차이를 획득하고, 당해 원본 모션 벡터에 근거하여 현재 블록의 제1 타깃 모션 벡터를 결정하며, 제1 타깃 모션 벡터와 당해 모션 벡터 차이에 근거하여 현재 블록의 제2 타깃 모션 벡터를 결정한다. 또는, 당해 원본 모션 벡터에 대응하는 모션 벡터 차이를 획득하고, 당해 원본 모션 벡터와 당해 모션 벡터 차이에 근거하여 현재 블록의 제1 타깃 모션 벡터를 결정하며, 당해 원본 모션 벡터와 당해 모션 벡터 차이에 근거하여 현재 블록의 제2 타깃 모션 벡터를 결정한다. 또는, 당해 원본 모션 벡터에 대응하는 제1 모션 벡터 차이 및 제2 모션 벡터 차이를 획득하고; 당해 원본 모션 벡터와 제1 모션 벡터 차이에 근거하여 현재 블록의 제1 타깃 모션 벡터를 결정하며, 당해 제1 타깃 모션 벡터와 제2 모션 벡터 차이에 근거하여 현재 블록의 제2 타깃 모션 벡터를 결정한다. 또는, 당해 원본 모션 벡터에 대응하는 제1 모션 벡터 차이 및 제2 모션 벡터 차이를 획득하고; 당해 원본 모션 벡터와 제1 모션 벡터 차이에 근거하여 현재 블록의 제1 타깃 모션 벡터를 결정하며; 당해 원본 모션 벡터와 제2 모션 벡터 차이에 근거하여 현재 블록의 제2 타깃 모션 벡터를 결정한다.
상기 실시예에서, 제1 타깃 모션 벡터와 제2 타깃 모션 벡터는 상이할 수 있다.
실시예 21 또는 실시예 22에서는, 모션 정보 후보 리스트를 구축하는 것이 아니라 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트 및 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트를 구축하는 바, 예를 들면, 참조 픽처 리스트 ListX의 refIdx번째 픽처를 사용하여 모션 벡터 후보 리스트를 구축하되, 구축 방식은 인터 일반 모드의 모션 벡터 후보 리스트 구축 방식일 수도 있고, 실시예 13 또는 실시예 14의 기초 상에 참조 픽처를 지향하는 제한을 추가할 수도 있으며, 참조 픽처를 지향하는 제한을 추가할 경우, 모션 정보 후보 리스트는 모션 벡터 후보 리스트일 수 있다. 예시적으로, 모션 벡터 후보 리스트를 구축할 경우, 사용 가능성을 판정할 때 참조 픽처에 대한 판정을 증가하거나, 또는 단방향 모션 벡터를 추가될 때 신축조작(Scale) 등을 수행하는 수단을 사용할 수 있다.
실시예 1 내지 실시예 4에서, 코딩단/디코딩단은 제1 타깃 모션 정보에 근거하여 픽셀 위치의 제1 예측값을 결정하고, 제2 타깃 모션 정보에 근거하여 픽셀 위치의 제2 예측값을 결정하며, 당해 과정은 인터 예측과정을 참조할 수 있으며, 이에 대해 한정하지 않는다. 예시적으로, 제1 타깃 모션 정보에 근거하여 픽셀 위치의 제1 예측값을 결정할 경우, 인터 가중 예측 모드를 사용하여 픽셀 위치의 제1 예측값을 사용할 수 있다. 예를 들면, 먼저 제1 타깃 모션 정보를 이용하여 픽셀 위치의 초기 예측값을 결정한 다음, 당해 초기 예측값에 기설정된 인자를 곱하여 조정된 예측값을 얻는다. 만약 조정된 예측값이 최대 예측값보다 크면 최대 예측값을 현재 블록의 제1 예측값으로 사용하고, 만약 조정된 예측값이 최소 예측값보다 작으면 최소 예측값을 현재 블록의 제1 예측값으로 사용하며, 만약 조정된 예측값이 최소 예측값보다 작지 않은 동시에 최대 예측값보다 크지 않으면 조정된 예측값을 현재 블록의 제1 예측값으로 사용한다. 물론, 상기 방식은 단지 예시일 뿐, 이에 대해 한정하지 않는다. 같은 도리로, 제2 타깃 모션 정보에 근거하여 픽셀 위치의 제2 예측값을 결정할 경우, 인터 가중 예측 모드를 사용하여 픽셀 위치의 제2 예측값을 얻을 수도 있으며, 구체적인 구현 방식은 상기 예시를 참조할 수 있는 바, 여기서 더 이상 중복하여 설명하지 않는다.
예시적으로, 실시예 1 내지 실시예 3, 실시예 5 내지 실시예 12, 실시예 13 내지 실시예 20는 단독으로 구현할 수도 있고 조합하여 구현할 수도 있다. 예를 들면, 실시예 1과 실시예 2를 조합하여 구현하고; 실시예 1과 실시예 3을 조합하여 구현하며; 실시예 1과 실시예 5 내지 실시예 12 중 적어도 하나의 실시예를 조합하여 구현하고; 실시예 1과 실시예 13 내지 실시예 20 중 적어도 하나의 실시예를 조합하여 구현하며; 실시예 2와 실시예 5 내지 실시예 12 중 적어도 하나의 실시예를 조합하여 구현하고; 실시예 2와 실시예 13 내지 실시예 20 중 적어도 하나의 실시예를 조합하여 구현하며; 실시예 3과 실시예 5 내지 실시예 12 중 적어도 하나의 실시예를 조합하여 구현하고; 실시예 3과 실시예 13 내지 실시예 20 중 적어도 하나의 실시예를 조합하여 구현할 수 있으며; 물론, 실시예 사이의 조합 방식은 한정되지 않는다.
예시적으로, 실시예 4, 실시예 5 내지 실시예 12, 실시예 21 내지 실시예 22는 단독으로 구현할 수도 있고 조합하여 구현할 수도 있다. 예를 들면, 실시예 4와 실시예 5 내지 실시예 12 중 적어도 하나의 실시예를 조합하여 구현하고; 실시예 4와 실시예 21를 조합하여 구현하며; 실시예 4와 실시예 22를 조합하여 구현하고; 실시예 4와 실시예 21, 실시예 22를 조합하여 구현할 수 있으며; 물론, 실시예 사이의 조합 방식은 한정되지 않는다.
실시예 23: 상기 방법과 동일한 출원 구상에 기반하여, 본 출원의 실시예는 코딩 및 디코딩 장치를 더 제안하는 바, 상기 장치는 코딩단 또는 디코딩단에 응용되고, 도 10a에 도시된 내용을 참조하면, 이는 상기 장치의 구조도로서,
현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 상기 현재 블록의 가중치 예측 각도와 가중치 구성 파라미터를 획득하는 획득 모듈(111); 상기 가중치 구성 파라미터에 근거하여 상기 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성하는 구성 모듈(112); 상기 현재 블록의 각 픽셀 위치에 대하여, 상기 가중치 예측 각도에 근거하여 상기 현재 블록 외부의 주변 위치에서 상기 픽셀 위치가 지향하는 주변 매칭 위치를 결정하고; 상기 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 상기 픽셀 위치의 타깃 가중치 값을 결정하며, 상기 픽셀 위치의 타깃 가중치 값에 근거하여 상기 픽셀 위치의 관련 가중치 값을 결정하는 결정 모듈(113)을 포함하며; 상기 획득 모듈(111)은 또한, 적어도 하나의 후보 모션 정보를 포함하는 모션 정보 후보 리스트를 획득하고; 상기 모션 정보 후보 리스트에 기반하여 상기 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득하며; 상기 결정 모듈(113)은 또한, 상기 현재 블록의 제1 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제1 예측값을 결정하고, 상기 현재 블록의 제2 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제2 예측값을 결정하며; 상기 제1 예측값, 상기 타깃 가중치 값, 상기 제2 예측값 및 상기 관련 가중치 값에 근거하여 상기 픽셀 위치의 가중 예측값을 결정하고; 상기 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 상기 현재 블록의 가중 예측값을 결정한다.
예시적으로, 상기 획득 모듈(111)은 모션 정보 후보 리스트를 획득할 때 구체적으로,
모션 정보 후보 리스트에 추가될 적어도 하나의 사용 가능 모션 정보를 획득하고; 상기 적어도 하나의 사용 가능 모션 정보에 기반하여 상기 모션 정보 후보 리스트를 획득하며; 여기서, 상기 사용 가능 모션 정보는 공간적 모션 정보; 시간적 모션 정보; 기설정된 모션 정보 중 적어도 하나를 포함한다.
예시적으로, 상기 획득 모듈(111)이 상기 적어도 하나의 사용 가능 모션 정보에 기반하여 상기 모션 정보 후보 리스트를 획득할 때 구체적으로, 현재 모션 정보 후보 리스트에 추가될 사용 가능 모션 정보에 대하여,
만약 상기 사용 가능 모션 정보가 단방향 모션 정보이면, 상기 단방향 모션 정보를 모션 정보 후보 리스트에 추가하며;
만약 상기 사용 가능 모션 정보가 양방향 모션 정보이면, 상기 양방향 모션 정보를 제1 단방향 모션 정보와 제2 단방향 모션 정보로 커팅하고, 상기 제1 단방향 모션 정보를 모션 정보 후보 리스트에 추가한다.
또는, 현재 모션 정보 후보 리스트에 추가될 사용 가능 모션 정보에 대하여,
만약 상기 사용 가능 모션 정보가 단방향 모션 정보이고, 상기 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보가 중복되지 않으면 상기 단방향 모션 정보를 모션 정보 후보 리스트에 추가하며;
만약 상기 사용 가능 모션 정보가 양방향 모션 정보이면, 상기 양방향 모션 정보를 제1 단방향 모션 정보와 제2 단방향 모션 정보로 커팅하고; 만약 상기 제1 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보가 중복되지 않으면 상기 제1 단방향 모션 정보를 모션 정보 후보 리스트에 추가한다.
또는, 현재 모션 정보 후보 리스트에 추가될 사용 가능 모션 정보에 대하여,
만약 상기 사용 가능 모션 정보가 단방향 모션 정보이고, 상기 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보가 중복되지 않으면 상기 단방향 모션 정보를 모션 정보 후보 리스트에 추가하며;
만약 상기 사용 가능 모션 정보가 양방향 모션 정보이면, 상기 양방향 모션 정보를 제1 단방향 모션 정보와 제2 단방향 모션 정보로 커팅하고; 만약 제1 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보가 중복되지 않으면 상기 제1 단방향 모션 정보를 모션 정보 후보 리스트에 추가하며; 만약 제1 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보가 중복되고, 제2 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보가 중복되지 않으면 상기 제2 단방향 모션 정보를 모션 정보 후보 리스트에 추가한다.
예시적으로, 상기 획득 모듈(111)은 상기 모션 정보 후보 리스트에 기반하여 상기 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득할 때 구체적으로, 상기 모션 정보 후보 리스트에서 후보 모션 정보를 선택하여 상기 현재 블록의 제1 원본 모션 정보로 이용하고, 상기 모션 정보 후보 리스트에서 후보 모션 정보를 선택하여 상기 현재 블록의 제2 원본 모션 정보로 이용하며; 상기 제1 원본 모션 정보에 근거하여 상기 현재 블록의 제1 타깃 모션 정보를 결정하고; 상기 제2 원본 모션 정보에 근거하여 상기 현재 블록의 제2 타깃 모션 정보를 결정한다.
예시적으로, 상기 제1 원본 모션 정보는 제1 원본 모션 벡터를 포함하고, 상기 제1 타깃 모션 정보는 제1 타깃 모션 벡터를 포함하며, 상기 획득 모듈(111)은 상기 제1 원본 모션 정보에 근거하여 상기 현재 블록의 제1 타깃 모션 정보를 결정할 때 구체적으로, 상기 제1 원본 모션 벡터에 대응하는 제1 모션 벡터 차이를 획득하되; 상기 제1 모션 벡터 차이와 상기 제1 원본 모션 벡터에 근거하여 상기 제1 타깃 모션 벡터를 결정하거나; 또는, 제1 원본 모션 벡터를 제1 타깃 모션 벡터로 결정하며; 상기 제2 원본 모션 정보는 제2 원본 모션 벡터를 포함하고, 상기 제2 타깃 모션 정보는 제2 타깃 모션 벡터를 포함하며, 상기 획득 모듈(111)상기 제2 원본 모션 정보에 근거하여 상기 현재 블록의 제2 타깃 모션 정보를 결정할 때 구체적으로, 상기 제2 원본 모션 벡터에 대응하는 제2 모션 벡터 차이를 획득하되; 상기 제2 모션 벡터 차이와 상기 제2 원본 모션 벡터에 근거하여 상기 제2 타깃 모션 벡터를 결정하거나; 또는, 제2 원본 모션 벡터를 제2 타깃 모션 벡터로 결정한다.
예시적으로, 상기 제1 타깃 모션 정보가 지향하는 참조 픽처 및 상기 제2 타깃 모션 정보가 지향하는 참조 픽처가 동일한 픽처일 경우, 상기 획득 모듈(111)은 상기 모션 정보 후보 리스트에 기반하여 상기 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득할 때 구체적으로, 상기 모션 정보 후보 리스트에서 하나의 후보 모션 정보를 선택하여 상기 현재 블록의 원본 모션 정보로 이용하고; 상기 원본 모션 정보에 근거하여 상기 현재 블록의 제1 타깃 모션 정보를 결정하며; 상기 제1 타깃 모션 정보에 근거하여 상기 현재 블록의 제2 타깃 모션 정보를 결정하거나, 또는, 상기 원본 모션 정보에 근거하여 상기 현재 블록의 제2 타깃 모션 정보를 결정한다.
예시적으로, 상기 원본 모션 정보는 원본 모션 벡터를 포함하고, 상기 제1 타깃 모션 정보는 제1 타깃 모션 벡터를 포함하며, 상기 제2 타깃 모션 정보는 제2 타깃 모션 벡터를 포함하고, 상기 획득 모듈(111)은 구체적으로, 상기 원본 모션 벡터에 대응하는 모션 벡터 차이를 획득하고; 상기 원본 모션 벡터에 근거하여 상기 현재 블록의 제1 타깃 모션 벡터를 결정하며; 상기 제1 타깃 모션 벡터와 상기 모션 벡터 차이에 근거하여 상기 현재 블록의 제2 타깃 모션 벡터를 결정하거나; 또는, 상기 원본 모션 벡터에 대응하는 모션 벡터 차이를 획득하고; 상기 원본 모션 벡터와 상기 모션 벡터 차이에 근거하여 상기 현재 블록의 제1 타깃 모션 벡터를 결정하며; 상기 원본 모션 벡터와 상기 모션 벡터 차이에 근거하여 상기 현재 블록의 제2 타깃 모션 벡터를 결정하거나; 또는, 상기 원본 모션 벡터에 대응하는 제1 모션 벡터 차이 및 제2 모션 벡터 차이를 획득하고; 상기 원본 모션 벡터와 상기 제1 모션 벡터 차이에 근거하여 상기 현재 블록의 제1 타깃 모션 벡터를 결정하며; 상기 제1 타깃 모션 벡터와 상기 제2 모션 벡터 차이에 근거하여 상기 현재 블록의 제2 타깃 모션 벡터를 결정하거나; 또는, 상기 원본 모션 벡터에 대응하는 제1 모션 벡터 차이 및 제2 모션 벡터 차이를 획득하고; 상기 원본 모션 벡터와 상기 제1 모션 벡터 차이에 근거하여 상기 현재 블록의 제1 타깃 모션 벡터를 결정하며; 상기 원본 모션 벡터와 상기 제2 모션 벡터 차이에 근거하여 상기 현재 블록의 제2 타깃 모션 벡터를 결정한다.
상기 실시예에서, 제1 타깃 모션 벡터와 제2 타깃 모션 벡터는 상이할 수 있다.
상기 방법과 동일한 출원 구상에 기반하여, 본 출원의 실시예는 코딩 및 디코딩 장치를 더 제안하는 바, 상기 장치는 코딩단 또는 디코딩단에 응용되고, 도 10b에 도시된 내용을 참조하면, 이는 상기 장치의 구조도로서,
현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 상기 현재 블록의 가중치 예측 각도와 가중치 구성 파라미터를 획득하는 획득 모듈(121); 상기 가중치 구성 파라미터에 근거하여 상기 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성하는 구성 모듈(122); 상기 현재 블록의 각 픽셀 위치에 대하여, 상기 가중치 예측 각도에 근거하여 상기 현재 블록 외부의 주변 위치에서 상기 픽셀 위치가 지향하는 주변 매칭 위치를 결정하고; 상기 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 상기 픽셀 위치의 타깃 가중치 값을 결정하며, 상기 픽셀 위치의 타깃 가중치 값에 근거하여 상기 픽셀 위치의 관련 가중치 값을 결정하는 결정 모듈(123)을 포함하며; 상기 획득 모듈(121)은 또한, 참조 픽처 정보를 획득하고, 상기 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트를 획득하며, 상기 모션 벡터 후보 리스트는 적어도 하나의 후보 모션 벡터를 포함하고, 상기 참조 픽처 정보는 제1 참조 픽처 정보와 제2 참조 픽처 정보를 포함하며; 상기 모션 벡터 후보 리스트에 기반하여 상기 현재 블록의 제1 타깃 모션 벡터와 제2 타깃 모션 벡터를 획득하며; 상기 결정 모듈(123)은 또한, 상기 현재 블록의 제1 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제1 예측값을 결정하고, 상기 현재 블록의 제2 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제2 예측값을 결정하며; 상기 제1 예측값, 상기 타깃 가중치 값, 상기 제2 예측값 및 상기 관련 가중치 값에 근거하여 상기 픽셀 위치의 가중 예측값을 결정하는 바; 여기서, 상기 제1 타깃 모션 정보는 제1 타깃 모션 벡터 및 상기 제1 타깃 모션 벡터에 대응하는 제1 참조 픽처 정보를 포함하고, 상기 제2 타깃 모션 정보는 제2 타깃 모션 벡터 및 상기 제2 타깃 모션 벡터에 대응하는 제2 참조 픽처 정보를 포함하며; 상기 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 상기 현재 블록의 가중 예측값을 결정한다.
예시적으로, 상기 가중치 구성 파라미터는 가중치 변환율을 포함하는 바, 만약 상기 현재 블록이 가중치 변환율 전환 모드를 지원하면, 상기 획득 모듈(121)은, 상기 현재 블록의 가중치 변환율 지시정보를 획득하는 방식; 상기 가중치 변환율 지시정보에 근거하여 상기 현재 블록의 가중치 변환율을 결정하는 방식을 사용하여 상기 현재 블록의 가중치 변환율을 획득하되: 여기서, 만약 상기 가중치 변환율 지시정보가 제1 지시정보이면 상기 현재 블록의 가중치 변환율은 제1 가중치 변환율이고; 만약 상기 가중치 변환율 지시정보가 제2 지시정보이면 상기 현재 블록의 가중치 변환율은 제2 가중치 변환율이다.
예시적으로, 상기 현재 블록의 가중치 변환율 지시정보는 상기 현재 블록에 대응하는 가중치 변환율 전환 식별자이고, 상기 제1 지시정보는 상기 현재 블록이 가중치 변환율 전환을 수행할 필요가 없는 것을 지시하며, 상기 제2 지시정보는 상기 현재 블록이 가중치 변환율 전환을 수행할 필요가 있는 것을 지시한다.
상기 가중치 구성 파라미터는 가중치 변환율과 가중치 변환의 시작 위치를 포함하고, 상기 구성 모듈(122)이 상기 가중치 구성 파라미터에 근거하여 상기 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성할 때 구체적으로,
상기 현재 블록 외부의 각 주변 위치에 대하여, 상기 주변 위치의 좌표값, 상기 가중치 변환의 시작 위치의 좌표값, 및 상기 가중치 변환율에 근거하여 상기 주변 위치의 참조 가중치 값을 구성한다.
예시적으로, 상기 모션 벡터 후보 리스트는 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트 및 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트를 포함하고, 상기 획득 모듈(121)이 상기 모션 벡터 후보 리스트에 근거하여 상기 현재 블록의 제1 타깃 모션 벡터와 제2 타깃 모션 벡터를 획득할 때 구체적으로,
상기 제1 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서 하나의 후보 모션 벡터를 선택하여 상기 현재 블록의 제1 원본 모션 벡터로 이용하고, 상기 제2 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트에서 하나의 후보 모션 벡터를 선택하여 상기 현재 블록의 제2 원본 모션 벡터로 이용하며; 상기 제1 원본 모션 벡터에 근거하여 상기 현재 블록의 제1 타깃 모션 벡터를 결정하고; 상기 제2 원본 모션 벡터에 근거하여 상기 현재 블록의 제2 타깃 모션 벡터를 결정한다.
예시적으로, 상기 획득 모듈(121)이 상기 제1 원본 모션 벡터에 근거하여 상기 현재 블록의 제1 타깃 모션 벡터를 결정할 때 구체적으로, 상기 제1 원본 모션 벡터에 대응하는 제1 모션 벡터 차이를 획득하되; 상기 제1 모션 벡터 차이와 상기 제1 원본 모션 벡터에 근거하여 상기 제1 타깃 모션 벡터를 결정하거나; 또는, 제1 원본 모션 벡터를 제1 타깃 모션 벡터로 결정한다.
예시적으로, 상기 획득 모듈(121)이 상기 제2 원본 모션 벡터에 근거하여 상기 현재 블록의 제2 타깃 모션 벡터를 결정할 때 구체적으로, 상기 제2 원본 모션 벡터에 대응하는 제2 모션 벡터 차이를 획득하되; 상기 제2 모션 벡터 차이와 상기 제2 원본 모션 벡터에 근거하여 상기 제2 타깃 모션 벡터를 결정하거나; 또는, 제2 원본 모션 벡터를 제2 타깃 모션 벡터로 결정한다.
예시적으로, 상기 제1 타깃 모션 벡터가 지향하는 참조 픽처와 상기 제2 타깃 모션 벡터가 지향하는 참조 픽처가 동일한 픽처일 경우, 상기 제1 참조 픽처 정보와 상기 제2 참조 픽처 정보는 동일하고, 상기 모션 벡터 후보 리스트는 하나의 모션 벡터 후보 리스트이며, 상기 획득 모듈(121)은 상기 모션 벡터 후보 리스트에 근거하여 상기 현재 블록의 제1 타깃 모션 벡터와 제2 타깃 모션 벡터를 획득할 때 구체적으로, 상기 모션 벡터 후보 리스트에서 하나의 후보 모션 벡터를 선택하여 상기 현재 블록의 원본 모션 벡터로 이용하고; 상기 원본 모션 벡터에 근거하여 상기 현재 블록의 제1 타깃 모션 벡터를 결정하며; 상기 제1 타깃 모션 벡터에 근거하여 상기 현재 블록의 제2 타깃 모션 벡터를 결정하거나, 또는, 상기 원본 모션 벡터에 근거하여 상기 현재 블록의 제2 타깃 모션 벡터를 결정한다.
예시적으로, 상기 획득 모듈(121)은 구체적으로,
상기 원본 모션 벡터에 대응하는 모션 벡터 차이를 획득하고; 상기 원본 모션 벡터에 근거하여 상기 현재 블록의 제1 타깃 모션 벡터를 결정하며; 상기 제1 타깃 모션 벡터와 상기 모션 벡터 차이에 근거하여 상기 현재 블록의 제2 타깃 모션 벡터를 결정하거나; 또는, 상기 원본 모션 벡터에 대응하는 모션 벡터 차이를 획득하고; 상기 원본 모션 벡터와 상기 모션 벡터 차이에 근거하여 상기 현재 블록의 제1 타깃 모션 벡터를 결정하며; 상기 원본 모션 벡터와 상기 모션 벡터 차이에 근거하여 상기 현재 블록의 제2 타깃 모션 벡터를 결정한다. 또는, 상기 원본 모션 벡터에 대응하는 제1 모션 벡터 차이 및 제2 모션 벡터 차이를 획득하고; 상기 원본 모션 벡터와 상기 제1 모션 벡터 차이에 근거하여 상기 현재 블록의 제1 타깃 모션 벡터를 결정하며; 상기 제1 타깃 모션 벡터와 상기 제2 모션 벡터 차이에 근거하여 상기 현재 블록의 제2 타깃 모션 벡터를 결정하거나; 또는, 상기 원본 모션 벡터에 대응하는 제1 모션 벡터 차이 및 제2 모션 벡터 차이를 획득하고; 상기 원본 모션 벡터와 상기 제1 모션 벡터 차이에 근거하여 상기 현재 블록의 제1 타깃 모션 벡터를 결정하며; 상기 원본 모션 벡터와 상기 제2 모션 벡터 차이에 근거하여 상기 현재 블록의 제2 타깃 모션 벡터를 결정한다.
상기 실시예에서, 제1 타깃 모션 벡터와 제2 타깃 모션 벡터는 상이할 수 있다.
상기 방법과 동일한 출원 구상에 기반하여, 본 출원의 실시예에서 제공하는 디코딩단 기기(비디오 디코더라고도 지칭함)는 하드웨어 관점에서, 이의 하드웨어 구조 모식도는 구체적으로 도 10c에 도시된 내용을 참조할 수 있는 바, 프로세서(131)와 기계 판독 가능 저장 매체(132)를 포함하되, 여기서, 상기 기계 판독 가능 저장 매체(132)에는 상기 프로세서(131)에 의해 실행될 수 있는 기계 실행 가능 명령이 저장되고; 상기 프로세서(131)는 기계 실행 가능 명령을 실행하여 본 출원의 상기 예시에서 개시한 방법을 구현한다. 예를 들면, 상기 프로세서(131)는 기계 실행 가능 명령을 실행하여,
현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 상기 현재 블록의 가중치 예측 각도와 가중치 구성 파라미터를 획득하는 단계;
상기 가중치 구성 파라미터에 근거하여 상기 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성하는 단계;
상기 현재 블록의 각 픽셀 위치에 대하여, 상기 가중치 예측 각도에 근거하여 상기 현재 블록 외부의 주변 위치에서 상기 픽셀 위치가 지향하는 주변 매칭 위치를 결정하고; 상기 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 상기 픽셀 위치의 타깃 가중치 값을 결정하며, 상기 픽셀 위치의 타깃 가중치 값에 근거하여 상기 픽셀 위치의 관련 가중치 값을 결정하는 단계;
적어도 하나의 후보 모션 정보를 포함하는 모션 정보 후보 리스트를 획득하고; 상기 모션 정보 후보 리스트에 기반하여 상기 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득하는 단계;
상기 현재 블록의 제1 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제1 예측값을 결정하고, 상기 현재 블록의 제2 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제2 예측값을 결정하며; 상기 제1 예측값, 상기 타깃 가중치 값, 상기 제2 예측값 및 상기 관련 가중치 값에 근거하여 상기 픽셀 위치의 가중 예측값을 결정하는 단계;
상기 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 상기 현재 블록의 가중 예측값을 결정하는 단계; 또는,
현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 상기 현재 블록의 가중치 예측 각도와 가중치 구성 파라미터를 획득하는 단계;
상기 가중치 구성 파라미터에 근거하여 상기 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성하는 단계;
상기 현재 블록의 각 픽셀 위치에 대하여, 상기 가중치 예측 각도에 근거하여 상기 현재 블록 외부의 주변 위치에서 상기 픽셀 위치가 지향하는 주변 매칭 위치를 결정하고; 상기 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 상기 픽셀 위치의 타깃 가중치 값을 결정하며, 상기 픽셀 위치의 타깃 가중치 값에 근거하여 상기 픽셀 위치의 관련 가중치 값을 결정하는 단계;
참조 픽처 정보를 획득하고, 상기 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트를 획득하며, 상기 모션 벡터 후보 리스트는 적어도 하나의 후보 모션 벡터를 포함하고, 상기 참조 픽처 정보는 제1 참조 픽처 정보와 제2 참조 픽처 정보를 포함하며; 상기 모션 벡터 후보 리스트에 근거하여 상기 현재 블록의 제1 타깃 모션 벡터와 제2 타깃 모션 벡터를 획득하는 단계;
상기 현재 블록의 제1 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제1 예측값을 결정하고, 상기 현재 블록의 제2 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제2 예측값을 결정하며; 상기 제1 예측값, 상기 타깃 가중치 값, 상기 제2 예측값 및 상기 관련 가중치 값에 근거하여 상기 픽셀 위치의 가중 예측값을 결정하되; 여기서, 상기 제1 타깃 모션 정보는 제1 타깃 모션 벡터 및 상기 제1 타깃 모션 벡터에 대응하는 제1 참조 픽처 정보를 포함하고, 상기 제2 타깃 모션 정보는 제2 타깃 모션 벡터 및 상기 제2 타깃 모션 벡터에 대응하는 제2 참조 픽처 정보를 포함하는 단계;
상기 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 상기 현재 블록의 가중 예측값을 결정하는 단계를 구현한다.
상기 방법과 동일한 출원 구상에 기반하여, 본 출원의 실시예에서 제공하는 코딩단 기기(비디오 코더라고도 지칭함)는 하드웨어 관점에서, 이의 하드웨어 구조 모식도는 구체적으로 도 10d에 도시된 내용을 참조할 수 있는 바. 프로세서(141)와 기계 판독 가능 저장 매체(142)를 포함하되, 여기서, 상기 기계 판독 가능 저장 매체(142)에는 상기 프로세서(141)에 의해 실행될 수 있는 기계 실행 가능 명령이 저장되고; 상기 프로세서(141)는 기계 실행 가능 명령을 실행하여 본 출원의 상기 예시에서 개시한 방법을 구현한다. 예를 들면, 상기 프로세서(141)는 기계 실행 가능 명령을 실행하여,
현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 상기 현재 블록의 가중치 예측 각도와 가중치 구성 파라미터를 획득하는 단계;
상기 가중치 구성 파라미터에 근거하여 상기 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성하는 단계;
상기 현재 블록의 각 픽셀 위치에 대하여, 상기 가중치 예측 각도에 근거하여 상기 현재 블록 외부의 주변 위치에서 상기 픽셀 위치가 지향하는 주변 매칭 위치를 결정하고; 상기 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 상기 픽셀 위치의 타깃 가중치 값을 결정하며, 상기 픽셀 위치의 타깃 가중치 값에 근거하여 상기 픽셀 위치의 관련 가중치 값을 결정하는 단계;
적어도 하나의 후보 모션 정보를 포함하는 모션 정보 후보 리스트를 획득하고; 상기 모션 정보 후보 리스트에 기반하여 상기 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득하는 단계;
상기 현재 블록의 제1 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제1 예측값을 결정하고, 상기 현재 블록의 제2 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제2 예측값을 결정하며; 상기 제1 예측값, 상기 타깃 가중치 값, 상기 제2 예측값 및 상기 관련 가중치 값에 근거하여 상기 픽셀 위치의 가중 예측값을 결정하는 단계;
상기 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 상기 현재 블록의 가중 예측값을 결정하는 단계; 또는,
현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 상기 현재 블록의 가중치 예측 각도와 가중치 구성 파라미터를 획득하는 단계;
상기 가중치 구성 파라미터에 근거하여 상기 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성하는 단계;
상기 현재 블록의 각 픽셀 위치에 대하여, 상기 가중치 예측 각도에 근거하여 상기 현재 블록 외부의 주변 위치에서 상기 픽셀 위치가 지향하는 주변 매칭 위치를 결정하고; 상기 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 상기 픽셀 위치의 타깃 가중치 값을 결정하며, 상기 픽셀 위치의 타깃 가중치 값에 근거하여 상기 픽셀 위치의 관련 가중치 값을 결정하는 단계;
참조 픽처 정보를 획득하고, 상기 참조 픽처 정보에 대응하는 모션 벡터 후보 리스트를 획득하며, 상기 모션 벡터 후보 리스트는 적어도 하나의 후보 모션 벡터를 포함하고, 상기 참조 픽처 정보는 제1 참조 픽처 정보와 제2 참조 픽처 정보를 포함하며; 상기 모션 벡터 후보 리스트에 근거하여 상기 현재 블록의 제1 타깃 모션 벡터와 제2 타깃 모션 벡터를 획득하는 단계;
상기 현재 블록의 제1 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제1 예측값을 결정하고, 상기 현재 블록의 제2 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제2 예측값을 결정하며; 상기 제1 예측값, 상기 타깃 가중치 값, 상기 제2 예측값 및 상기 관련 가중치 값에 근거하여 상기 픽셀 위치의 가중 예측값을 결정하되; 여기서, 상기 제1 타깃 모션 정보는 제1 타깃 모션 벡터 및 상기 제1 타깃 모션 벡터에 대응하는 제1 참조 픽처 정보를 포함하고, 상기 제2 타깃 모션 정보는 제2 타깃 모션 벡터 및 상기 제2 타깃 모션 벡터에 대응하는 제2 참조 픽처 정보를 포함하는 단계;
상기 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 상기 현재 블록의 가중 예측값을 결정하는 단계를 구현한다.
상기 방법과 동일한 출원 구상에 기반하여, 본 출원의 실시예는 기계 판독 가능 저장 매체를 더 제공하는 바, 상기 기계 판독 가능 저장 매체에는 약간의 컴퓨터 명령이 저장되고, 상기 컴퓨터 명령이 프로세서에 의해 실행될 경우, 본 출원의 상기 예시에서 개시된 방법, 예컨대 상기 각 실시예에 따른 코딩 및 디코딩 방법을 구현할 수 있다.
상기 실시예에서 설명된 시스템, 장치, 모듈 또는 유닛은 컴퓨터 칩 또는 엔티티에 의해 구현될 수 있거나, 또는 특정 기능이 있는 제품에 의해 구현될 수 있다. 전형적인 구현 기기는 컴퓨터이고, 컴퓨터의 형태는 개인용 컴퓨터, 랩톱 컴퓨터, 셀룰러폰, 카메라폰, 스마트폰, 개인 휴대 정보 단말기, 멀티미디어 플레이어, 내비게이션 기기, 전자 메일 송수신 기기, 태블릿 컴퓨터, 웨어러블 기기 또는 이러한 기기 중 어느 몇 가지 기기의 조합일 수 있다. 설명의 편리를 위해, 상기 장치를 설명할 때 기능을 다양한 유닛으로 나누어 각각 설명한다. 물론, 본 발명을 구현할 때 각 유닛의 기능을 동일한 하나 또는 복수의 소프트웨어 및/또는 하드웨어에서 구현할 수 있다.
본 기술분야의 통상의 기술자라면 본 발명의 실시예가 방법, 시스템, 또는 컴퓨터 프로그램 제품으로서 제공될 수 있음을 이해해야 한다. 따라서, 본 발명은 하드웨어 실시예, 소프트웨어 실시예, 또는 소프트웨어와 하드웨어를 결합한 실시예 형태를 사용할 수 있다. 또한, 본 발명의 실시예는 컴퓨터 사용 가능 프로그램 코드가 포함된 하나 또는 복수의 컴퓨터 사용 가능 저장 매체(자기 디스크 메모리, CD-ROM 및 광 메모리 등을 포함하지만 이에 제한되지 않음)에서 구현되는 컴퓨터 프로그램 제품의 형태를 사용할 수 있다.
전술한 내용은 단지 본 발명의 바람직한 실시예일 뿐, 본 발명을 제한하기 위함이 아니다. 본 기술분야의 통상의 기술자는 본 발명에 대해 다양한 변경 및 변형을 진행할 수 있다. 본 발명의 사상 및 원칙 내에서 이루어진 임의의 수정, 등가적 대체, 개선 등은 모두 본 발명의 특허청구범위 내에 포함되어야 한다.

Claims (18)

  1. 코딩 및 디코딩 방법으로서,
    현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 상기 현재 블록의 가중치 예측 각도와 가중치 구성 파라미터를 획득하는 단계;
    상기 가중치 구성 파라미터에 근거하여 상기 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성하는 단계;
    상기 현재 블록의 각 픽셀 위치에 대하여, 상기 가중치 예측 각도에 근거하여 상기 현재 블록 외부의 주변 위치에서 상기 픽셀 위치가 지향하는 주변 매칭 위치를 결정하는 단계;
    상기 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 상기 픽셀 위치의 타깃 가중치 값을 결정하며, 상기 픽셀 위치의 타깃 가중치 값에 근거하여 상기 픽셀 위치의 관련 가중치 값을 결정하는 단계;
    적어도 하나의 후보 모션 정보를 포함하는 모션 정보 후보 리스트를 획득하는 단계;
    상기 모션 정보 후보 리스트에 기반하여 상기 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득하는 단계;
    상기 현재 블록의 제1 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제1 예측값을 결정하고, 상기 현재 블록의 제2 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제2 예측값을 결정하는 단계;
    상기 제1 예측값, 상기 타깃 가중치 값, 상기 제2 예측값 및 상기 관련 가중치 값에 근거하여 상기 픽셀 위치의 가중 예측값을 결정하는 단계;
    상기 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 상기 현재 블록의 가중 예측값을 결정하는 단계를 포함하는 것을 특징으로 하는 코딩 및 디코딩 방법.
  2. 제1항에 있어서,
    모션 정보 후보 리스트를 획득하는 단계는,
    모션 정보 후보 리스트에 추가될 적어도 하나의 사용 가능 모션 정보를 획득하는 단계;
    상기 적어도 하나의 사용 가능 모션 정보에 기반하여 상기 모션 정보 후보 리스트를 획득하는 단계를 포함하되;
    상기 사용 가능 모션 정보는,
    공간적(spatial) 모션 정보; 시간적(temporal) 모션 정보; 기설정된 모션 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 코딩 및 디코딩 방법.
  3. 제2항에 있어서,
    모션 정보 후보 리스트에 추가될 적어도 하나의 사용 가능 모션 정보를 획득하는 단계는,
    상기 현재 블록의 공간적 인접 블록에 대하여, 만약 상기 공간적 인접 블록이 존재하고, 상기 공간적 인접 블록이 인터 예측 모드를 사용하면 상기 공간적 인접 블록의 모션 정보를 사용 가능 모션 정보로 결정하는 단계를 포함하는 것을 특징으로 하는 코딩 및 디코딩 방법.
  4. 제2항에 있어서,
    모션 정보 후보 리스트에 추가될 적어도 하나의 사용 가능 모션 정보를 획득하는 단계는,
    상기 현재 블록의 기설정된 위치에 기반하여 상기 현재 블록의 참조 픽처에서 상기 기설정된 위치에 대응하는 시간적 인접 블록을 선택하고, 상기 시간적 인접 블록의 모션 정보를 사용 가능 모션 정보로 결정하는 단계를 포함하는 것을 특징으로 하는 코딩 및 디코딩 방법.
  5. 제2항에 있어서,
    모션 정보 후보 리스트에 추가될 적어도 하나의 사용 가능 모션 정보를 획득하는 단계는,
    기설정된 모션 정보를 사용 가능 모션 정보로 결정하는 단계를 포함하되, 상기 기설정된 모션 정보는,
    모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보에 기반하여 도출된 디폴트 모션 정보를 포함하는 것을 특징으로 하는 코딩 및 디코딩 방법.
  6. 제2항에 있어서,
    상기 적어도 하나의 사용 가능 모션 정보에 기반하여 상기 모션 정보 후보 리스트를 획득하는 단계는,
    현재 모션 정보 후보 리스트에 추가될 사용 가능 모션 정보에 대하여,
    만약 상기 사용 가능 모션 정보가 단방향 모션 정보이고, 상기 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보가 중복되지 않으면 상기 단방향 모션 정보를 모션 정보 후보 리스트에 추가하는 단계;
    만약 상기 사용 가능 모션 정보가 양방향 모션 정보이면, 상기 양방향 모션 정보를 제1 단방향 모션 정보와 제2 단방향 모션 정보로 커팅하고; 만약 상기 제1 단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보가 중복되지 않으면 상기 제1 단방향 모션 정보를 모션 정보 후보 리스트에 추가하는 단계를 포함하는 것을 특징으로 하는 코딩 및 디코딩 방법.
  7. 제2항에 있어서,
    상기 적어도 하나의 사용 가능 모션 정보에 기반하여 상기 모션 정보 후보 리스트를 획득하는 단계는,
    현재 모션 정보 후보 리스트에 추가될 사용 가능 모션 정보에 대하여, 상기 사용 가능 모션 정보를 모션 정보 후보 리스트에 추가하는 단계를 포함하는 것을 특징으로 하는 코딩 및 디코딩 방법.
  8. 제6항에 있어서,
    상기 제1 단방향 모션 정보는 제1 참조 픽처 리스트 중의 참조 픽처를 지향하는 단방향 모션 정보이고;
    상기 제2 단방향 모션 정보는 제2 참조 픽처 리스트 중의 참조 픽처를 지향하는 단방향 모션 정보이며;
    상기 제1 참조 픽처 리스트는 List0이고, 상기 제2 참조 픽처 리스트는 List1이거나; 또는,
    상기 제1 참조 픽처 리스트는 List1이고, 상기 제2 참조 픽처 리스트는 List0인 것을 특징으로 하는 코딩 및 디코딩 방법.
  9. 제6항에 있어서,
    단방향 모션 정보와 모션 정보 후보 리스트에 이미 존재하는 후보 모션 정보에 대한 중복 확인 조작은,
    만약 단방향 모션 정보가 지향하는 참조 픽처의 표시 순서 POC와 후보 모션 정보가 지향하는 참조 픽처의 POC가 동일하고, 당해 단방향 모션 정보의 모션 벡터와 당해 후보 모션 정보의 모션 벡터가 동일하면 당해 단방향 모션 정보는 당해 후보 모션 정보와 중복된다고 결정하고; 그렇지 않으면 당해 단방향 모션 정보는 당해 후보 모션 정보와 중복되지 않는다고 결정하는 단계를 포함하는 것을 특징으로 하는 코딩 및 디코딩 방법.
  10. 제1항에 있어서,
    상기 모션 정보 후보 리스트에 기반하여 상기 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득하는 단계는,
    상기 모션 정보 후보 리스트에서 후보 모션 정보를 선택하여 상기 현재 블록의 제1 원본 모션 정보로 이용하고, 상기 모션 정보 후보 리스트에서 후보 모션 정보를 선택하여 상기 현재 블록의 제2 원본 모션 정보로 이용하는 단계;
    상기 제1 원본 모션 정보에 근거하여 상기 현재 블록의 제1 타깃 모션 정보를 결정하는 단계;
    상기 제2 원본 모션 정보에 근거하여 상기 현재 블록의 제2 타깃 모션 정보를 결정하는 단계를 포함하는 것을 특징으로 하는 코딩 및 디코딩 방법.
  11. 제10항에 있어서,
    상기 제1 원본 모션 정보는 제1 원본 모션 벡터를 포함하고, 상기 제1 타깃 모션 정보는 제1 타깃 모션 벡터를 포함하며, 상기 제1 원본 모션 정보에 근거하여 상기 현재 블록의 제1 타깃 모션 정보를 결정하는 단계는,
    상기 제1 원본 모션 벡터에 대응하는 제1 모션 벡터 차이를 획득하고; 상기 제1 모션 벡터 차이와 상기 제1 원본 모션 벡터에 근거하여 상기 제1 타깃 모션 벡터를 결정하는 단계; 또는,
    상기 제1 원본 모션 벡터를 상기 제1 타깃 모션 벡터로 결정하는 단계를 포함하며;
    상기 제2 원본 모션 정보는 제2 원본 모션 벡터를 포함하고, 상기 제2 타깃 모션 정보는 제2 타깃 모션 벡터를 포함하며, 상기 제2 원본 모션 정보에 근거하여 상기 현재 블록의 제2 타깃 모션 정보를 결정하는 단계는,
    상기 제2 원본 모션 벡터에 대응하는 제2 모션 벡터 차이를 획득하고; 상기 제2 모션 벡터 차이와 상기 제2 원본 모션 벡터에 근거하여 상기 제2 타깃 모션 벡터를 결정하는 단계; 또는,
    상기 제2 원본 모션 벡터를 상기 제2 타깃 모션 벡터로 결정하는 단계를 포함하는 것을 특징으로 하는 코딩 및 디코딩 방법.
  12. 제11항에 있어서,
    상기 제1 원본 모션 벡터에 대응하는 제1 모션 벡터 차이를 획득하는 단계는,
    상기 제1 모션 벡터 차이의 방향 정보와 진폭 정보를 획득하는 단계;
    상기 제1 모션 벡터 차이의 방향 정보와 진폭 정보에 근거하여 상기 제1 모션 벡터 차이를 결정하는 단계를 포함하며;
    상기 제2 원본 모션 벡터에 대응하는 제2 모션 벡터 차이를 획득하는 단계는,
    상기 제2 모션 벡터 차이의 방향 정보와 진폭 정보를 획득하는 단계;
    상기 제2 모션 벡터 차이의 방향 정보와 진폭 정보에 근거하여 상기 제2 모션 벡터 차이를 결정하는 단계를 포함하는 것을 특징으로 하는 코딩 및 디코딩 방법.
  13. 제12항에 있어서,
    만약 상기 코딩 및 디코딩 방법이 디코딩단에 응용되면,
    상기 제1 모션 벡터 차이의 방향 정보를 획득하는 단계는,
    상기 현재 블록의 코딩된 비트 스트림에서 상기 제1 모션 벡터 차이의 방향 정보를 해석하는 단계; 또는,
    상기 현재 블록의 가중치 예측 각도에 근거하여 상기 제1 모션 벡터 차이의 방향 정보를 유도하는 단계를 포함하고;
    상기 제2 모션 벡터 차이의 방향 정보를 획득하는 단계는,
    상기 현재 블록의 코딩된 비트 스트림에서 상기 제2 모션 벡터 차이의 방향 정보를 해석하는 단계; 또는,
    상기 현재 블록의 가중치 예측 각도에 근거하여 상기 제2 모션 벡터 차이의 방향 정보를 유도하는 단계를 포함하는 것을 특징으로 하는 코딩 및 디코딩 방법.
  14. 제12항에 있어서,
    만약 상기 방법이 디코딩단에 응용되면,
    상기 제1 모션 벡터 차이의 진폭 정보를 획득하는 단계는,
    상기 현재 블록의 코딩된 비트 스트림에서 상기 제1 모션 벡터 차이의 진폭 정보를 해석하는 단계를 포함하고;
    상기 제2 모션 벡터 차이의 진폭 정보를 획득하는 단계는,
    상기 현재 블록의 코딩된 비트 스트림에서 상기 제2 모션 벡터 차이의 진폭 정보를 해석하는 단계를 포함하는 것을 특징으로 하는 코딩 및 디코딩 방법.
  15. 제12항 내지 제14항 중 어느 항에 있어서,
    만약 제1 모션 벡터 차이의 방향 정보가 방향이 오른쪽을 향하는 것을 나타내고, 제1 모션 벡터 차이의 진폭 정보가 Ar1이면 제1 모션 벡터 차이는 (Ar1, 0)이고; 만약 제1 모션 벡터 차이의 방향 정보가 방향이 아래를 향하는 것을 나타내고, 제1 모션 벡터 차이의 진폭 정보가 Ad1이면 제1 모션 벡터 차이는 (0, -Ad1)이며; 만약 제1 모션 벡터 차이의 방향 정보가 방향이 왼쪽을 향하는 것을 나타내고, 제1 모션 벡터 차이의 진폭 정보가 Al1이면 제1 모션 벡터 차이는 (-Al1, 0)이고; 만약 제1 모션 벡터 차이의 방향 정보가 방향이 위를 향하는 것을 나타내고, 제1 모션 벡터 차이의 진폭 정보가 Au1이면 제1 모션 벡터 차이는 (0, Au1)이며;
    만약 제2 모션 벡터 차이의 방향 정보가 방향이 오른쪽을 향하는 것을 나타내고, 제2 모션 벡터 차이의 진폭 정보가 Ar2이면 제2 모션 벡터 차이는 (Ar2, 0)이고; 만약 제2 모션 벡터 차이의 방향 정보가 방향이 아래를 향하는 것을 나타내고, 제2 모션 벡터 차이의 진폭 정보가 Ad2이면 제2 모션 벡터 차이는 (0, -Ad2)이며; 만약 제2 모션 벡터 차이의 방향 정보가 방향이 왼쪽을 향하는 것을 나타내고, 제2 모션 벡터 차이의 진폭 정보가 Al2이면 제2 모션 벡터 차이는 (-Al2, 0)이고; 만약 제2 모션 벡터 차이의 방향 정보가 방향이 위를 향하는 것을 나타내고, 제2 모션 벡터 차이의 진폭 정보가 Au2이면 제2 모션 벡터 차이는 (0, Au2)인 것을 특징으로 하는 코딩 및 디코딩 방법.
  16. 코딩 및 디코딩 장치로서,
    현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 상기 현재 블록의 가중치 예측 각도와 가중치 구성 파라미터를 획득하는 획득 모듈;
    상기 가중치 구성 파라미터에 근거하여 상기 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성하는 구성 모듈;
    상기 현재 블록의 각 픽셀 위치에 대하여, 상기 가중치 예측 각도에 근거하여 상기 현재 블록 외부의 주변 위치에서 상기 픽셀 위치가 지향하는 주변 매칭 위치를 결정하고; 상기 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 상기 픽셀 위치의 타깃 가중치 값을 결정하며, 상기 픽셀 위치의 타깃 가중치 값에 근거하여 상기 픽셀 위치의 관련 가중치 값을 결정하는 결정 모듈을 포함하되,
    상기 획득 모듈은 또한, 적어도 하나의 후보 모션 정보를 포함하는 모션 정보 후보 리스트를 획득하고; 상기 모션 정보 후보 리스트에 기반하여 상기 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득하며;
    상기 결정 모듈은 또한, 상기 현재 블록의 제1 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제1 예측값을 결정하고, 상기 현재 블록의 제2 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제2 예측값을 결정하며; 상기 제1 예측값, 상기 타깃 가중치 값, 상기 제2 예측값 및 상기 관련 가중치 값에 근거하여 상기 픽셀 위치의 가중 예측값을 결정하고; 상기 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 상기 현재 블록의 가중 예측값을 결정하는 것을 특징으로 하는 코딩 및 디코딩 장치.
  17. 디코딩단 기기로서,
    프로세서 및 기계 판독 가능 저장 매체를 포함하되, 상기 기계 판독 가능 저장 매체에는 프로세서에 의해 실행될 수 있는 기계 실행 가능 명령이 저장되고,
    상기 프로세서는 기계 실행 가능 명령을 실행하여,
    현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 상기 현재 블록의 가중치 예측 각도와 가중치 구성 파라미터를 획득하는 단계;
    상기 가중치 구성 파라미터에 근거하여 상기 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성하는 단계;
    상기 현재 블록의 각 픽셀 위치에 대하여, 상기 가중치 예측 각도에 근거하여 상기 현재 블록 외부의 주변 위치에서 상기 픽셀 위치가 지향하는 주변 매칭 위치를 결정하고; 상기 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 상기 픽셀 위치의 타깃 가중치 값을 결정하며, 상기 픽셀 위치의 타깃 가중치 값에 근거하여 상기 픽셀 위치의 관련 가중치 값을 결정하는 단계;
    적어도 하나의 후보 모션 정보를 포함하는 모션 정보 후보 리스트를 획득하고; 상기 모션 정보 후보 리스트에 기반하여 상기 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득하는 단계;
    상기 현재 블록의 제1 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제1 예측값을 결정하고, 상기 현재 블록의 제2 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제2 예측값을 결정하며; 상기 제1 예측값, 상기 타깃 가중치 값, 상기 제2 예측값 및 상기 관련 가중치 값에 근거하여 상기 픽셀 위치의 가중 예측값을 결정하는 단계;
    상기 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 상기 현재 블록의 가중 예측값을 결정하는 단계를 구현하는 것을 특징으로 하는 디코딩단 기기.
  18. 코딩단 기기로서,
    프로세서 및 기계 판독 가능 저장 매체를 포함하되, 상기 기계 판독 가능 저장 매체에는 프로세서에 의해 실행될 수 있는 기계 실행 가능 명령이 저장되고,
    상기 프로세서는 기계 실행 가능 명령을 실행하여,
    현재 블록에 대해 가중 예측을 활성화하는 것을 결정할 경우, 상기 현재 블록의 가중치 예측 각도와 가중치 구성 파라미터를 획득하는 단계;
    상기 가중치 구성 파라미터에 근거하여 상기 현재 블록 외부의 주변 위치에 참조 가중치 값을 구성하는 단계;
    상기 현재 블록의 각 픽셀 위치에 대하여, 상기 가중치 예측 각도에 근거하여 상기 현재 블록 외부의 주변 위치에서 상기 픽셀 위치가 지향하는 주변 매칭 위치를 결정하고; 상기 주변 매칭 위치와 연관되는 참조 가중치 값에 근거하여 상기 픽셀 위치의 타깃 가중치 값을 결정하며, 상기 픽셀 위치의 타깃 가중치 값에 근거하여 상기 픽셀 위치의 관련 가중치 값을 결정하는 단계;
    적어도 하나의 후보 모션 정보를 포함하는 모션 정보 후보 리스트를 획득하고; 상기 모션 정보 후보 리스트에 기반하여 상기 현재 블록의 제1 타깃 모션 정보와 제2 타깃 모션 정보를 획득하는 단계;
    상기 현재 블록의 제1 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제1 예측값을 결정하고, 상기 현재 블록의 제2 타깃 모션 정보에 근거하여 상기 픽셀 위치의 제2 예측값을 결정하며; 상기 제1 예측값, 상기 타깃 가중치 값, 상기 제2 예측값 및 상기 관련 가중치 값에 근거하여 상기 픽셀 위치의 가중 예측값을 결정하는 단계;
    상기 현재 블록의 각 픽셀 위치의 가중 예측값에 근거하여 상기 현재 블록의 가중 예측값을 결정하는 단계를 구현하는 것을 특징으로 하는 코딩단 기기.
KR1020227043009A 2020-06-30 2021-06-24 코딩 및 디코딩 방법, 장치 및 이의 기기 KR20230006017A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202010622752.7A CN113873249B (zh) 2020-06-30 2020-06-30 一种编解码方法、装置及其设备
CN202010622752.7 2020-06-30
PCT/CN2021/102199 WO2022001837A1 (zh) 2020-06-30 2021-06-24 一种编解码方法、装置及其设备

Publications (1)

Publication Number Publication Date
KR20230006017A true KR20230006017A (ko) 2023-01-10

Family

ID=78668983

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227043009A KR20230006017A (ko) 2020-06-30 2021-06-24 코딩 및 디코딩 방법, 장치 및 이의 기기

Country Status (9)

Country Link
US (1) US20230344985A1 (ko)
EP (1) EP4152750A4 (ko)
JP (1) JP2023531010A (ko)
KR (1) KR20230006017A (ko)
CN (2) CN113873249B (ko)
AU (1) AU2021298606C1 (ko)
TW (1) TWI790662B (ko)
WO (1) WO2022001837A1 (ko)
ZA (1) ZA202213605B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113873249B (zh) * 2020-06-30 2023-02-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN114598889B (zh) * 2020-12-03 2023-03-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN115002486A (zh) * 2022-05-26 2022-09-02 百果园技术(新加坡)有限公司 编码单元预测块的权重确定方法及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103533376B (zh) * 2012-07-02 2017-04-12 华为技术有限公司 帧间预测编码运动信息的处理方法、装置和编解码系统
EP3217663A4 (en) * 2014-11-06 2018-02-14 Samsung Electronics Co., Ltd. Video encoding method and apparatus, and video decoding method and apparatus
CA3025488A1 (en) * 2016-05-25 2017-11-30 Arris Enterprises Llc Weighted angular prediction for intra coding
US10542264B2 (en) * 2017-04-04 2020-01-21 Arris Enterprises Llc Memory reduction implementation for weighted angular prediction
CN110800302A (zh) * 2017-06-07 2020-02-14 联发科技股份有限公司 用于视频编解码的帧内-帧间预测的方法及装置
CN112040244B (zh) * 2018-03-29 2021-06-29 华为技术有限公司 一种双向帧间预测方法及装置
US11470348B2 (en) * 2018-08-17 2022-10-11 Hfi Innovation Inc. Methods and apparatuses of video processing with bi-direction prediction in video coding systems
CN114866777A (zh) * 2018-09-20 2022-08-05 杭州海康威视数字技术股份有限公司 一种解码、编码方法及其设备
EP3644612A1 (en) * 2018-10-23 2020-04-29 InterDigital VC Holdings, Inc. Method and device for picture encoding and decoding
CN112565787B (zh) * 2018-12-28 2022-05-31 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备
CN110225346A (zh) * 2018-12-28 2019-09-10 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备
CN112543323B (zh) * 2019-09-23 2022-05-31 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN112584142B (zh) * 2019-09-30 2022-09-30 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113452997B (zh) * 2020-03-25 2022-07-29 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113873249B (zh) * 2020-06-30 2023-02-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备

Also Published As

Publication number Publication date
WO2022001837A1 (zh) 2022-01-06
CN113873249B (zh) 2023-02-28
EP4152750A1 (en) 2023-03-22
CN113709488B (zh) 2023-02-28
CN113873249A (zh) 2021-12-31
ZA202213605B (en) 2024-04-24
TW202205852A (zh) 2022-02-01
TWI790662B (zh) 2023-01-21
AU2021298606B2 (en) 2024-02-01
AU2021298606C1 (en) 2024-05-09
EP4152750A4 (en) 2023-10-18
US20230344985A1 (en) 2023-10-26
AU2021298606A1 (en) 2023-02-02
CN113709488A (zh) 2021-11-26
JP2023531010A (ja) 2023-07-20

Similar Documents

Publication Publication Date Title
KR102616766B1 (ko) 인터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치
CN108141604B (zh) 图像编码和解码方法和图像解码设备
CN111567045A (zh) 使用帧间预测信息的方法和装置
KR20230006017A (ko) 코딩 및 디코딩 방법, 장치 및 이의 기기
CN115134609A (zh) 使用自适应去块滤波编码和解码图像的方法及其装置
KR102625314B1 (ko) 타일 독립성 제약을 이용하는 인터 예측 개념
KR101782154B1 (ko) 움직임 벡터 차분치를 이용하는 영상 부호화 및 복호화 방법과 영상 복호화 장치
KR102608181B1 (ko) 어파인 예측을 이용하여 비디오 신호를 처리하기 위한 방법 및 장치
KR20220133161A (ko) 적응적인 디블록킹 필터링을 이용하는 영상 부호화 방법과 영상 복호화 방법 및 장치
KR20220158799A (ko) 코딩/디코딩 방법, 장치 및 그 기기
KR102420559B1 (ko) 움직임 벡터 후보 선택 방법 및 이를 이용하는 영상 부호화/복호화 방법
KR20230003054A (ko) 코딩 및 디코딩 방법, 장치 및 그 기기
CN113709499B (zh) 一种编解码方法、装置及其设备
CN114598889B (zh) 一种编解码方法、装置及其设备
RU2809701C1 (ru) Способ, оборудование и устройство для кодирования и декодирования
CN112806014A (zh) 图像编码/解码方法和装置

Legal Events

Date Code Title Description
A201 Request for examination