KR102584235B1 - 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램 - Google Patents

화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램 Download PDF

Info

Publication number
KR102584235B1
KR102584235B1 KR1020207037260A KR20207037260A KR102584235B1 KR 102584235 B1 KR102584235 B1 KR 102584235B1 KR 1020207037260 A KR1020207037260 A KR 1020207037260A KR 20207037260 A KR20207037260 A KR 20207037260A KR 102584235 B1 KR102584235 B1 KR 102584235B1
Authority
KR
South Korea
Prior art keywords
candidate
prediction
motion vector
history
candidate list
Prior art date
Application number
KR1020207037260A
Other languages
English (en)
Other versions
KR20210015901A (ko
Inventor
히데키 다케하라
히로야 나카무라
사토루 사카즈메
시게루 후쿠시마
토루 구마쿠라
히로유키 구라시게
Original Assignee
고도 가이샤 아이피 브릿지 1
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 고도 가이샤 아이피 브릿지 1 filed Critical 고도 가이샤 아이피 브릿지 1
Priority to KR1020237032747A priority Critical patent/KR20230141934A/ko
Publication of KR20210015901A publication Critical patent/KR20210015901A/ko
Application granted granted Critical
Publication of KR102584235B1 publication Critical patent/KR102584235B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree

Landscapes

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

Abstract

화상 부호화 및 복호화에 적합한 블록 분할을 행함으로써, 부호화 효율을 향상시키는 기술을 제공한다. 복호 대상 블록에 인접하는 블록의 인터 예측 정보로부터 공간 후보를 도출하여, 후보로서 제1 후보 리스트에 등록하는 공간 후보 도출부와, 이력 후보 리스트에 포함되는 이력 후보를 후보로서 제1 후보 리스트에 추가하여 제2 후보 리스트로 하는 이력 후보 도출부와, 제2 후보 리스트에 포함되는 후보로부터 선택 후보를 선택하는 후보 선택부와, 선택 후보를 이용하여 인터 예측하는 인터 예측부를 구비하고, 이력 후보 도출부는, 예측 모드에 따라서 제1 후보 리스트에 포함되는 후보와 중복되는 이력 후보를 추가할지 아닌지를 전환하는, 화상 복호 장치를 개시한다.

Description

화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램
본 발명은, 화상을 블록으로 분할하여, 예측을 행하는 화상 부호화 및 복호 기술에 관한 것이다.
화상의 부호화 및 복호에서는, 처리의 대상이 되는 화상을 소정수의 화소의 집합인 블록으로 분할하여, 블록 단위로 처리를 한다. 적절한 블록으로 분할하고, 화면 내 예측(인트라 예측), 화면간 예측(인터 예측)을 적절히 설정함으로써, 부호화 효율이 향상한다.
동화상의 부호화·복호에서는, 부호화·복호 완료 픽처로부터 예측하는 인터 예측에 의해 부호화 효율을 향상시키고 있다. 특허문헌 1에는, 인터 예측 시에, 아핀 변환을 적용하는 기술이 기재되어 있다. 동화상에서는, 물체가 확대·축소, 회전과 같은 변형을 수반하는 것은 드문 일이 아니고, 특허문헌 1의 기술을 적용함으로써, 효율적인 부호화가 가능해진다.
일본공개특허공보 평9-172644호
그러나, 특허문헌 1의 기술은 화상의 변환을 수반하는 것이기 때문에, 처리 부하가 다대하다는 과제가 있다. 본 발명은 상기의 과제를 감안하여, 저부하로 효율적인 부호화 기술을 제공한다.
후술의 실시 형태는, 예를 들면, 이하의 측면을 개시한다.
복호 대상 블록에 인접하는 블록의 인터 예측 정보로부터 공간 후보를 도출하여, 후보로서 제1 후보 리스트에 등록하는 공간 후보 도출부와, 이력 후보 리스트에 포함되는 이력 후보를 후보로서 제1 후보 리스트에 추가하여 제2 후보 리스트로 하는 이력 후보 도출부와, 제2 후보 리스트에 포함되는 후보로부터 선택 후보를 선택하는 후보 선택부와, 선택 후보를 이용하여 인터 예측하는 인터 예측부를 구비하고, 이력 후보 도출부는, 예측 모드에 따라서 제1 후보 리스트에 포함되는 후보와 중복되는 이력 후보를 추가할지 아닌지를 전환하는, 화상 복호 장치를 개시한다.
예측 모드는 머지 모드와 예측 움직임 벡터 모드이고, 예측 모드가 머지 모드인 경우의 후보는 움직임 정보이고, 예측 모드가 예측 움직임 벡터 모드인 경우의 후보는 움직임 벡터인, 상기의 화상 복호 장치를 개시한다.
이력 후보 도출부는, 예측 모드가 머지 모드인 경우, 이력 후보와 제1 후보 리스트에 포함되는 후보가 중복되지 않으면 이력 후보를 후보로서 제1 후보 리스트에 추가하고, 예측 모드가 예측 움직임 벡터 모드인 경우, 이력 후보와 제1 후보 리스트에 포함되는 후보가 중복될지 아닌지에 관계 없이 이력 후보를 후보로서 제1 후보 리스트에 추가하는, 상기의 화상 복호 장치를 개시한다.
예측 모드가 머지 모드인 경우, 이력 예측 움직임 벡터 후보 리스트가 중복되는 후보를 포함하지 않도록, 이력 예측 움직임 벡터 후보 리스트를 선택 후보로 갱신하고, 예측 모드가 예측 움직임 벡터 모드인 경우, 이력 예측 움직임 벡터 후보 리스트가 중복되는 후보를 포함하지 않도록, 적어도 선택 후보와 선택 후보가 참조하는 픽처를 나타내는 참조 인덱스를 포함하는 움직임 정보로 이력 예측 움직임 벡터 후보 리스트를 갱신하는 이력 예측 움직임 벡터 후보 리스트 갱신부를 추가로 구비하는, 상기의 화상 복호 장치를 개시한다.
예측 모드가 머지 모드인 경우의 후보 리스트에 포함되는 후보의 최대수는 예측 모드가 예측 움직임 벡터 모드인 경우의 후보 리스트에 포함되는 후보의 최대수보다도 큰, 상기의 화상 복호 장치를 개시한다.
이력 예측 움직임 벡터 후보 도출부는, 예측 모드가 예측 움직임 벡터 모드인 경우, 이력 후보의 참조 인덱스와 복호 대상 픽처의 참조 인덱스가 동일한 경우, 이력 후보와 제1 후보 리스트에 포함되는 후보가 중복될지 아닌지에 관계 없이 이력 후보를 후보로서 제1 후보 리스트에 추가하는, 상기의 화상 복호 장치를 개시한다.
화상 복호 장치에 있어서의 화상 복호 방법으로서, 복호 대상 블록에 인접하는 블록의 인터 예측 정보로부터 공간 후보를 도출하고, 도출된 공간 후보를 후보로서 제1 후보 리스트에 등록하는 스텝과, 이력 후보 리스트에 포함되는 이력 후보를 후보로서 제1 후보 리스트에 추가하여 제2 후보 리스트로 하는 스텝으로서, 예측 모드에 따라서 제1 후보 리스트에 포함되는 후보와 중복되는 이력 후보를 추가할지 아닌지를 전환하는 스텝과, 제2 후보 리스트에 포함되는 후보로부터 선택 후보를 선택하는 스텝과, 선택 후보를 이용하여 인터 예측을 행하는 스텝을 구비하는, 화상 복호 방법을 개시한다.
화상 복호 장치에 있어서의, 컴퓨터 읽어냄 가능한 비일시적 기억 매체에 격납된 컴퓨터 프로그램으로서, 컴퓨터 프로그램이, 복호 대상 블록에 인접하는 블록의 인터 예측 정보로부터 공간 후보를 도출하고, 도출된 공간 후보를 후보로서 제1 후보 리스트에 등록하는 스텝과, 이력 후보 리스트에 포함되는 이력 후보를 후보로서 제1 후보 리스트에 추가하여 제2 후보 리스트로 하는 스텝으로서, 예측 모드에 따라서 제1 후보 리스트에 포함되는 후보와 중복되는 이력 후보를 추가할지 아닌지를 전환하는 스텝과, 제2 후보 리스트에 포함되는 후보로부터 선택 후보를 선택하는 스텝과, 선택 후보를 이용하여 인터 예측을 행하는 스텝을 화상 복호 장치의 컴퓨터에 실행시키는 명령을 구비하는, 컴퓨터 읽어냄 가능한 비일시적 기억 매체에 격납된 컴퓨터 프로그램을 개시한다.
부호화 대상 블록에 인접하는 블록의 인터 예측 정보로부터 공간 후보를 도출하여, 후보로서 제1 후보 리스트에 등록하는 공간 후보 도출부와, 이력 후보 리스트에 포함되는 이력 후보를 후보로서 제1 후보 리스트에 추가하여 제2 후보 리스트로 하는 이력 후보 도출부와, 제2 후보 리스트에 포함되는 후보로부터 선택 후보를 선택하는 후보 선택부와, 선택 후보를 이용하여 인터 예측하는 인터 예측부를 구비하고, 이력 후보 도출부는, 예측 모드에 따라서 제1 후보 리스트에 포함되는 후보와 중복되는 이력 후보를 추가할지 아닌지를 전환하고, 예측 모드는 머지 모드와 예측 움직임 벡터 모드이고, 예측 모드가 머지 모드인 경우의 후보는 움직임 정보이고, 예측 모드가 예측 움직임 벡터 모드인 경우의 후보는 움직임 벡터인, 화상 부호화 장치를 개시한다.
이력 후보 도출부는, 예측 모드가 머지 모드인 경우, 이력 후보와 제1 후보 리스트에 포함되는 후보가 중복되지 않으면 이력 후보를 후보로서 제1 후보 리스트에 추가하고, 예측 모드가 예측 움직임 벡터 모드인 경우, 이력 후보와 제1 후보 리스트에 포함되는 후보가 중복될지 아닌지에 관계 없이 이력 후보를 후보로서 제1 후보 리스트에 추가하는, 상기의 화상 부호화 장치를 개시한다.
예측 모드가 머지 모드인 경우, 이력 예측 움직임 벡터 후보 리스트가 중복되는 후보를 포함하지 않도록, 이력 예측 움직임 벡터 후보 리스트를 선택 후보로 갱신하고, 예측 모드가 예측 움직임 벡터 모드인 경우, 이력 예측 움직임 벡터 후보 리스트가 중복되는 후보를 포함하지 않도록, 적어도 선택 후보와 선택 후보가 참조하는 픽처를 나타내는 참조 인덱스를 포함하는 움직임 정보로 이력 예측 움직임 벡터 후보 리스트를 갱신하는 이력 예측 움직임 벡터 후보 리스트 갱신부를 추가로 구비하는, 상기의 화상 부호화 장치를 개시한다.
예측 모드가 머지 모드인 경우의 후보 리스트에 포함되는 후보의 최대수는 예측 모드가 예측 움직임 벡터 모드인 경우의 후보 리스트에 포함되는 후보의 최대수보다도 큰, 상기의 화상 부호화 장치를 개시한다.
이력 예측 움직임 벡터 후보 도출부는, 예측 모드가 예측 움직임 벡터 모드인 경우, 이력 후보의 참조 인덱스와 복호 대상 픽처의 참조 인덱스가 동일한 경우, 이력 후보와 제1 후보 리스트에 포함되는 후보가 중복될지 아닌지에 관계 없이 이력 후보를 후보로서 제1 후보 리스트에 추가하는, 상기의 화상 부호화 장치를 개시한다.
부호화 대상 블록에 인접하는 블록의 인터 예측 정보로부터 공간 후보를 도출하여, 후보로서 제1 후보 리스트에 등록하는 스텝과, 이력 후보 리스트에 포함되는 이력 후보를 후보로서 제1 후보 리스트에 추가하여 제2 후보 리스트로 하는 스텝으로서, 예측 모드에 따라서 제1 후보 리스트에 포함되는 후보와 중복되는 이력 후보를 추가할지 아닌지를 전환하는 스텝과, 제2 후보 리스트에 포함되는 후보로부터 선택 후보를 선택하는 스텝과, 선택 후보를 이용하여 인터 예측하는 스텝을 구비하고, 예측 모드는 머지 모드와 예측 움직임 벡터 모드이고, 예측 모드가 머지 모드인 경우의 후보는 움직임 정보이고, 예측 모드가 예측 움직임 벡터 모드인 경우의 후보는 움직임 벡터인, 화상 부호화 방법을 개시한다.
화상 부호화 장치에 있어서의, 컴퓨터 읽어냄 가능한 비일시적 기억 매체에 격납된 컴퓨터 프로그램으로서, 컴퓨터 프로그램이, 부호화 대상 블록에 인접하는 블록의 인터 예측 정보로부터 공간 후보를 도출하여, 후보로서 제1 후보 리스트에 등록하는 스텝과, 이력 후보 리스트에 포함되는 이력 후보를 후보로서 제1 후보 리스트에 추가하여 제2 후보 리스트로 하는 스텝으로서, 예측 모드에 따라서 제1 후보 리스트에 포함되는 후보와 중복되는 이력 후보를 추가할지 아닌지를 전환하고, 예측 모드가 머지 모드인 경우, 이력 후보와 제1 후보 리스트에 포함되는 후보가 중복되지 않으면 이력 후보를 후보로서 제1 후보 리스트에 추가하고, 예측 모드는 머지 모드와 예측 움직임 벡터 모드이고, 예측 모드가 머지 모드인 경우의 후보는 움직임 정보이고, 예측 모드가 예측 움직임 벡터 모드인 경우의 후보는 움직임 벡터이고, 예측 모드가 예측 움직임 벡터 모드인 경우, 이력 후보와 제1 후보 리스트에 포함되는 후보가 중복될지 아닌지에 관계 없이 이력 후보를 후보로서 제1 후보 리스트에 추가하는 스텝과, 제2 후보 리스트에 포함되는 후보로부터 선택 후보를 선택하는 스텝과, 선택 후보를 이용하여 인터 예측하는 스텝을 화상 부호화 장치의 컴퓨터에 실행시키는 명령을 구비하는, 컴퓨터 읽어냄 가능한 비일시적 기억 매체에 격납된 컴퓨터 프로그램을 개시한다.
또한, 상기의 기재는 예시이다. 본원 및 본 발명의 범위는, 이 기재에 의해 한정 혹은 제한되는 것은 아니다. 또한, 본 명세서에 있어서, 「본 발명」이라는 기재는, 본 발명이나 본원의 범위를 한정하는 것이 아니고, 예시를 위해 사용되는 것임이 이해되어야 한다.
본 발명에 의하면, 고효율의 화상 부호화·복호 처리를 저부하로 실현할 수 있다.
도 1은 본 발명의 실시 형태에 따른 화상 부호화 장치의 블록도이다.
도 2는 본 발명의 실시 형태에 따른 화상 복호 장치의 블록도이다.
도 3은 트리 블록을 분할하는 동작을 설명하기 위한 플로우차트이다.
도 4는 입력된 화상을 트리 블록으로 분할하는 모습을 나타내는 도면이다.
도 5는 z-스캔을 설명하는 도면이다.
도 6a는 블록의 분할 형상을 나타내는 도면이다.
도 6b는 블록의 분할 형상을 나타내는 도면이다.
도 6c는 블록의 분할 형상을 나타내는 도면이다.
도 6d는 블록의 분할 형상을 나타내는 도면이다.
도 6e는 블록의 분할 형상을 나타내는 도면이다.
도 7은 블록을 4분할하는 동작을 설명하기 위한 플로우차트이다.
도 8은 블록을 2분할 또는 3분할하는 동작을 설명하기 위한 플로우차트이다.
도 9는 블록 분할의 형상을 표현하기 위한 신택스이다.
도 10a는 인트라 예측을 설명하기 위한 도면이다.
도 10b는 인트라 예측을 설명하기 위한 도면이다.
도 11은 인터 예측의 참조 블록을 설명하기 위한 도면이다.
도 12는 부호화 블록 예측 모드를 표현하기 위한 신택스이다.
도 13은 인터 예측에 관한 신택스 엘리먼트와 모드의 대응을 나타내는 도면이다.
도 14는 제어점 2점의 아핀 변환 움직임 보상을 설명하기 위한 도면이다.
도 15는 제어점 3점의 아핀 변환 움직임 보상을 설명하기 위한 도면이다.
도 16은 도 1의 인터 예측부(102)의 상세한 구성의 블록도이다.
도 17은 도 16의 통상 예측 움직임 벡터 모드 도출부(301)의 상세한 구성의 블록도이다.
도 18은 도 16의 통상 머지 모드 도출부(302)의 상세한 구성의 블록도이다.
도 19는 도 16의 통상 예측 움직임 벡터 모드 도출부(301)의 통상 예측 움직임 벡터 모드 도출 처리를 설명하기 위한 플로우차트이다.
도 20은 통상 예측 움직임 벡터 모드 도출 처리의 처리 순서를 나타내는 플로우차트이다.
도 21은 통상 머지 모드 도출 처리의 처리 순서를 설명하는 플로우차트이다.
도 22는 도 2의 인터 예측부(203)의 상세한 구성의 블록도이다.
도 23은 도 22의 통상 예측 움직임 벡터 모드 도출부(401)의 상세한 구성의 블록도이다.
도 24는 도 22의 통상 머지 모드 도출부(402)의 상세한 구성의 블록도이다.
도 25는 도 22의 통상 예측 움직임 벡터 모드 도출부(401)의 통상 예측 움직임 벡터 모드 도출 처리를 설명하기 위한 플로우차트이다.
도 26은 이력 예측 움직임 벡터 후보 리스트 초기화·갱신 처리 순서를 설명하는 도면이다.
도 27은 이력 예측 움직임 벡터 후보 리스트 초기화·갱신 처리 순서에 있어서의, 동일 요소 확인 처리 순서의 플로우차트이다.
도 28은 이력 예측 움직임 벡터 후보 리스트 초기화·갱신 처리 순서에 있어서의, 요소 시프트 처리 순서의 플로우차트이다.
도 29는 이력 예측 움직임 벡터 후보 도출 처리 순서를 설명하는 플로우차트이다.
도 30은 이력 머지 후보 도출 처리 순서를 설명하는 플로우차트이다.
도 31a는 이력 예측 움직임 벡터 후보 리스트 갱신 처리의 일 예를 설명하기 위한 도면이다.
도 31b는 이력 예측 움직임 벡터 후보 리스트 갱신 처리의 일 예를 설명하기 위한 도면이다.
도 31c는 이력 예측 움직임 벡터 후보 리스트 갱신 처리의 일 예를 설명하기 위한 도면이다.
도 32는 L0 예측으로서 L0의 참조 픽처(RefL0Pic)가 처리 대상 픽처(CurPic)보다 전의 시각에 있는 경우의 움직임 보상 예측을 설명하기 위한 도면이다.
도 33은 L0 예측으로서 L0 예측의 참조 픽처가 처리 대상 픽처보다 후의 시각에 있는 경우의 움직임 보상 예측을 설명하기 위한 도면이다.
도 34는 쌍예측으로서 L0 예측의 참조 픽처가 처리 대상 픽처보다 전의 시각에 있고, L1 예측의 참조 픽처가 처리 대상 픽처보다 후의 시각에 있는 경우의 움직임 보상 예측의 예측 방향을 설명하기 위한 도면이다.
도 35는 쌍예측으로서 L0 예측의 참조 픽처와 L1 예측의 참조 픽처가 처리 대상 픽처보다 전의 시각에 있는 경우의 움직임 보상 예측의 예측 방향을 설명하기 위한 도면이다.
도 36은 쌍예측으로서 L0 예측의 참조 픽처와 L1 예측의 참조 픽처가 처리 대상 픽처보다 후의 시각에 있는 경우의 움직임 보상 예측의 예측 방향을 설명하기 위한 도면이다.
도 37은 본 발명의 실시 형태의 부호화 복호 장치의 하드웨어 구성의 일 예를 설명하기 위한 도면이다.
도 38은 이력 예측 움직임 벡터 후보 리스트의 초기화에 의해 추가되는 이력 예측 움직임 벡터 후보의 일 예를 나타내는 표이다.
도 39는 이력 예측 움직임 벡터 후보 리스트의 초기화에 의해 추가되는 이력 예측 움직임 벡터 후보의 다른 일 예를 나타내는 표이다.
도 40은 이력 예측 움직임 벡터 후보 리스트의 초기화에 의해 추가되는 이력 예측 움직임 벡터 후보의 다른 일 예를 나타내는 표이다.
도 41은 제1 실시 형태의 변형예 2의 이력 예측 움직임 벡터 후보 도출 처리 순서를 설명하는 플로우차트이다.
(발명을 실시하기 위한 형태)
본 실시 형태에 있어서 사용하는 기술 및, 기술 용어를 정의한다.
<트리 블록>
실시 형태에서는, 소정의 크기로 부호화·복호 처리 대상 화상을 균등 분할한다. 이 단위를 트리 블록이라고 정의한다. 도 4에서는, 트리 블록의 사이즈를 128×128화소로 하고 있지만, 트리 블록의 사이즈는 이에 한정되는 것은 아니고, 임의의 사이즈를 설정해도 좋다. 처리 대상(부호화 처리에 있어서는 부호화 대상, 복호 처리에 있어서는 복호 대상에 대응함)의 트리 블록은, 래스터 스캔순, 즉 좌로부터 우, 상으로부터 하의 순서로 전환된다. 각 트리 블록의 내부는, 추가로 재귀적인 분할이 가능하다. 트리 블록을 재귀적으로 분할한 후의, 부호화·복호의 대상이 되는 블록을 부호화 블록이라고 정의한다. 또한, 트리 블록, 부호화 블록을 총칭하여 블록이라고 정의한다. 적절한 블록 분할을 행함으로써 효율적인 부호화가 가능해진다. 트리 블록의 사이즈는, 부호화 장치와 복호 장치에서 미리 결정한 고정값으로 할 수도 있고, 부호화 장치가 결정한 트리 블록의 사이즈를 복호 장치에 전송하는 바와 같은 구성을 취할 수도 있다. 여기에서는, 트리 블록의 최대 사이즈를 128×128화소, 트리 블록의 최소 사이즈를 16×16 화소로 한다. 또한, 부호화 블록의 최대 사이즈를 64×64화소, 부호화 블록의 최소 사이즈를 4×4화소로 한다.
<예측 모드>
처리 대상 부호화 블록 단위로, 처리 대상 화상의 처리 완료 화상 신호로부터 예측을 행하는 인트라 예측(MODE_INTRA) 및, 처리 완료 화상의 화상 신호로부터 예측을 행하는 인터 예측(MODE_INTER)을 전환한다.
처리 완료 화상은, 부호화 처리에 있어서는 부호화가 완료한 신호를 복호한 화상, 화상 신호, 트리 블록, 블록, 부호화 블록 등에 이용되고, 복호 처리에 있어서는 복호가 완료된 화상, 화상 신호, 트리 블록, 블록, 부호화 블록 등에 이용된다.
이 인트라 예측(MODE_INTRA)과 인터 예측(MODE_INTER)을 식별하는 모드를 예측 모드(PredMode)라고 정의한다. 예측 모드(PredMode)는 인트라 예측(MODE_INTRA), 또는 인터 예측(MODE_INTER)을 값으로서 갖는다.
<인터 예측>
처리 완료 화상의 화상 신호로부터 예측을 행하는 인터 예측에서는, 복수의 처리 완료 화상을 참조 픽처로서 이용할 수 있다. 복수의 참조 픽처를 관리하기 위해, L0(참조 리스트 0)과 L1(참조 리스트 1)의 2종류의 참조 리스트를 정의하고, 각각 참조 인덱스를 이용하여 참조 픽처를 특정한다. P 슬라이스에서는 L0 예측(Pred_L0)이 이용 가능하다. B 슬라이스에서는 L0 예측(Pred_L0), L1 예측(Pred_L1), 쌍예측(Pred_BI)이 이용 가능하다. L0 예측(Pred_L0)은 L0에서 관리되고 있는 참조 픽처를 참조하는 인터 예측이고, L1 예측(Pred_L1)은 L1에서 관리되고 있는 참조 픽처를 참조하는 인터 예측이다. 쌍예측(Pred_BI)은 L0 예측과 L1 예측이 함께 행해져, L0과 L1의 각각에서 관리되고 있는 1개씩의 참조 픽처를 참조하는 인터 예측이다. L0 예측, L1 예측, 쌍예측을 특정하는 정보를, 인터 예측 모드라고 정의한다. 이후의 처리에 있어서 출력에 첨자 LX가 붙어 있는 정수, 변수에 관해서는, L0, L1마다 처리가 행해지는 것을 전제로 한다.
<예측 움직임 벡터 모드>
예측 움직임 벡터 모드는, 예측 움직임 벡터를 특정하기 위한 인덱스, 차분 움직임 벡터, 인터 예측 모드, 참조 인덱스를 전송하고, 처리 대상 블록의 인터 예측 정보를 결정하는 모드이다. 예측 움직임 벡터는, 처리 대상 블록에 인접하는 처리 완료 블록, 또는 처리 완료 화상에 속하는 블록에서 처리 대상 블록과 동일 위치 또는 그의 부근(근방)에 위치하는 블록으로부터 도출한 예측 움직임 벡터 후보와, 예측 움직임 벡터를 특정하기 위한 인덱스로부터 도출한다.
<머지 모드>
머지 모드는, 차분 움직임 벡터, 참조 인덱스를 전송하지 않고, 처리 대상 블록에 인접하는 처리 완료 블록, 또는 처리 완료 화상에 속하는 블록에서 처리 대상 블록과 동일 위치 또는 그의 부근(근방)에 위치하는 블록의 인터 예측 정보로부터, 처리 대상 블록의 인터 예측 정보를 도출하는 모드이다.
처리 대상 블록에 인접하는 처리 완료 블록 및, 그 처리 완료 블록의 인터 예측 정보를 공간 머지 후보라고 정의한다. 처리 완료 화상에 속하는 블록에서 처리 대상 블록과 동일 위치 또는 그의 부근(근방)에 위치하는 블록 및, 그 블록의 인터 예측 정보로부터 도출되는 인터 예측 정보를 시간 머지 후보라고 정의한다. 각 머지 후보는 머지 후보 리스트에 등록되고, 머지 인덱스에 의해, 처리 대상 블록의 예측에서 사용하는 머지 후보를 특정한다.
<인접 블록>
도 11은, 예측 움직임 벡터 모드, 머지 모드에서, 인터 예측 정보를 도출하기 위해 참조하는 참조 블록을 설명하는 도면이다. A0, A1, A2, B0, B1, B2, B3은, 처리 대상 블록에 인접하는 처리 완료 블록이다. T0는, 처리 완료 화상에 속하는 블록으로, 처리 대상 화상에 있어서의 처리 대상 블록과 동일 위치 또는 그의 부근(근방)에 위치하는 블록이다.
A1, A2는, 처리 대상 부호화 블록의 좌측에 위치하고, 처리 대상 부호화 블록에 인접하는 블록이다. B1, B3은, 처리 대상 부호화 블록의 상측에 위치하고, 처리 대상 부호화 블록에 인접하는 블록이다. A0, B0, B2는 각각, 처리 대상 부호화 블록의 좌하, 우상, 좌상에 위치하는 블록이다.
예측 움직임 벡터 모드, 머지 모드에 있어서 인접 블록을 어떻게 취급할지의 상세에 대해서는 후술한다.
<아핀 변환 움직임 보상>
아핀 변환 움직임 보상은, 부호화 블록을 소정 단위의 서브 블록으로 분할하고, 분할된 각 서브 블록에 대하여 개별적으로 움직임 벡터를 결정하여 움직임 보상을 행하는 것이다. 각 서브 블록의 움직임 벡터는, 처리 대상 블록에 인접하는 처리 완료 블록, 또는 처리 완료 화상에 속하는 블록으로 처리 대상 블록과 동일 위치 또는 그의 부근(근방)에 위치하는 블록의 인터 예측 정보로부터 도출하는 1개 이상의 제어점에 기초하여 도출한다. 본 실시 형태에서는, 서브 블록의 사이즈를 4×4 화소로 하지만, 서브 블록의 사이즈는 이에 한정되는 것은 아니고, 화소 단위로 움직임 벡터를 도출해도 좋다.
도 14에, 제어점이 2개인 경우의 아핀 변환 움직임 보상의 예를 나타낸다. 이 경우, 2개의 제어점이 수평 방향 성분, 수직 방향 성분의 2개의 파라미터를 갖는다. 이 때문에, 제어점이 2개인 경우의 아핀 변환을, 4 파라미터 아핀 변환이라고 호칭한다. 도 14의 CP1, CP2가 제어점이다.
도 15에, 제어점이 3개인 경우의 아핀 변환 움직임 보상의 예를 나타낸다. 이 경우, 3개의 제어점이 수평 방향 성분, 수직 방향 성분의 2개의 파라미터를 갖는다. 이 때문에, 제어점이 3개인 경우의 아핀 변환을, 6 파라미터 아핀 변환이라고 호칭한다. 도 15의 CP1, CP2, CP3가 제어점이다.
아핀 변환 움직임 보상은, 예측 움직임 벡터 모드 및 머지 모드의 어느 모드에 있어서나 이용 가능하다. 예측 움직임 벡터 모드에서 아핀 변환 움직임 보상을 적용하는 모드를 서브 블록 예측 움직임 벡터 모드라고 정의하고, 머지 모드에서 아핀 변환 움직임 보상을 적용하는 모드를 서브 블록 머지 모드라고 정의한다.
<인터 예측의 신택스>
도 12, 도 13을 이용하여, 인터 예측에 관한 신택스를 설명한다.
도 12의 merge_flag는, 처리 대상 부호화 블록을 머지 모드로 할지, 예측 움직임 벡터 모드로 할지를 나타내는 플래그이다. merge_affine_flag는, 머지 모드의 처리 대상 부호화 블록에서 서브 블록 머지 모드를 적용할지 아닌지를 나타내는 플래그이다. inter_affine_flag는, 예측 움직임 벡터 모드의 처리 대상 부호화 블록에서 서브 블록 예측 움직임 벡터 모드를 적용할지 아닌지를 나타내는 플래그이다. cu_affine_type_flag는, 서브 블록 예측 움직임 벡터 모드에 있어서, 제어점의 수를 결정하기 위한 플래그이다.
도 13에 각 신택스 엘리먼트의 값과, 그에 대응하는 예측 방법을 나타낸다. merge_flag=1, merge_affine_flag=0은, 통상 머지 모드에 대응한다. 통상 머지 모드는, 서브 블록 머지가 아닌 머지 모드이다. merge_flag=1, merge_affine_flag=1은, 서브 블록 머지 모드에 대응한다. merge_flag=0, inter_affine_flag=0은, 통상 예측 움직임 벡터 모드에 대응한다. 통상 예측 움직임 벡터 모드는, 서브 블록 예측 움직임 벡터 모드가 아닌 예측 움직임 벡터 머지이다. merge_flag=0, inter_affine_flag=1은, 서브 블록 예측 움직임 벡터 모드에 대응한다. merge_flag=0, inter_affine_flag=1의 경우는, 추가로 cu_affine_type_flag를 전송하여, 제어점의 수를 결정한다.
<POC>
POC(Picture Order Count)는 부호화되는 픽처에 관련되는 변수이고, 픽처의 출력 시퀀스에 따른 1씩 증가하는 값이 설정된다. POC의 값에 의해, 동일한 픽처인지를 판별하거나, 출력 순서에서의 픽처 간의 전후 관계를 판별하거나, 픽처 간의 거리를 도출하거나 할 수 있다. 예를 들면, 2개의 픽처의 POC가 동일한 값을 갖는 경우, 동일한 픽처라고 판단할 수 있다. 2개의 픽처의 POC가 상이한 값을 갖는 경우, POC의 값이 작은 픽처의 쪽이, 먼저 출력되는 픽처라고 판단할 수 있고, 2개의 픽처의 POC의 차가 시간축 방향에서의 픽처 간 거리를 나타낸다.
(제1 실시 형태)
본 발명의 제1 실시 형태에 따른 화상 부호화 장치(100) 및 화상 복호 장치(200)에 대해서 설명한다.
도 1은, 제1 실시 형태에 따른 화상 부호화 장치(100)의 블록도이다. 실시 형태의 화상 부호화 장치(100)는, 블록 분할부(101), 인터 예측부(102), 인트라 예측부(103), 복호 화상 메모리(104), 예측 방법 결정부(105), 잔차 생성부(106), 직교 변환·양자화부(107), 비트열 부호화부(108), 역양자화·역직교 변환부(109), 복호 화상 신호 중첩부(110) 및, 부호화 정보 격납 메모리(111)를 구비한다.
블록 분할부(101)는, 입력된 화상을 재귀적으로 분할하여, 부호화 블록을 생성한다. 블록 분할부(101)는, 분할 대상이 되는 블록을 수평 방향과 수직 방향으로 각각 분할하는 4분할부와, 분할 대상이 되는 블록을 수평 방향 또는 수직 방향의 어느 하나로 분할하는 2-3분할부를 포함한다. 블록 분할부(101)는, 생성된 부호화 블록을 처리 대상 부호화 블록으로 하고, 그 처리 대상 부호화 블록의 화상 신호를, 인터 예측부(102), 인트라 예측부(103) 및 잔차 생성부(106)에 공급한다. 또한, 블록 분할부(101)는, 결정된 재귀 분할 구조를 나타내는 정보를 비트열 부호화부(108)에 공급한다. 블록 분할부(101)의 상세한 동작은 후술한다.
인터 예측부(102)는, 처리 대상 부호화 블록의 인터 예측을 행한다. 인터 예측부(102)는, 부호화 정보 격납 메모리(111)에 격납되어 있는 인터 예측 정보와, 복호 화상 메모리(104)에 격납되어 있는 복호 완료 화상 신호로부터, 복수의 인터 예측 정보의 후보를 도출하고, 도출한 복수의 후보 중에서 적합한 인터 예측 모드를 선택하고, 선택된 인터 예측 모드 및, 선택된 인터 예측 모드에 따른 예측 화상 신호를 예측 방법 결정부(105)에 공급한다. 인터 예측부(102)의 상세한 구성과 동작은 후술한다.
인트라 예측부(103)는, 처리 대상 부호화 블록의 인트라 예측을 행한다. 인트라 예측부(103)는, 복호 화상 메모리(104)에 격납되어 있는 복호 완료 화상 신호를 참조 화소로서 참조하여, 부호화 정보 격납 메모리(111)에 격납되어 있는 인트라 예측 모드 등의 부호화 정보에 기초하는 인트라 예측에 의해 예측 화상 신호를 생성한다. 인트라 예측에서는, 인트라 예측부(103)는, 복수의 인트라 예측 모드 중에서 적합한 인트라 예측 모드를 선택하고, 선택된 인트라 예측 모드 및, 선택된 인트라 예측 모드에 따른 예측 화상 신호를 예측 방법 결정부(105)에 공급한다.
도 10a 및 도 10b에 인트라 예측의 예를 나타낸다. 도 10a는, 인트라 예측의 예측 방향과 인트라 예측 모드 번호의 대응을 나타낸 것이다. 예를 들면, 인트라 예측 모드(50)는, 수직 방향으로 참조 화소를 카피함으로써 인트라 예측 화상을 생성한다. 인트라 예측 모드(1)는, DC 모드이고, 처리 대상 블록의 모든 화소값을 참조 화소의 평균값으로 하는 모드이다. 인트라 예측 모드 0은, Planar 모드이고, 수직 방향·수평 방향의 참조 화소로부터 2차원적인 인트라 예측 화상을 작성하는 모드이다. 도 10b는, 인트라 예측 모드(40)의 경우의 인트라 예측 화상을 생성하는 예이다. 인트라 예측부(103)는, 처리 대상 블록의 각 화소에 대하여, 인트라 예측 모드가 나타내는 방향의 참조 화소의 값을 카피한다. 인트라 예측부(103)는, 인트라 예측 모드의 참조 화소가 정수 위치가 아닌 경우에는, 주변의 정수 위치의 참조 화소값으로부터 보간에 의해 참조 화소값을 결정한다.
복호 화상 메모리(104)는, 복호 화상 신호 중첩부(110)에서 생성된 복호 화상을 격납한다. 복호 화상 메모리(104)는, 격납되어 있는 복호 화상을, 인터 예측부(102), 인트라 예측부(103)에 공급한다.
예측 방법 결정부(105)는, 인트라 예측과 인터 예측의 각각에 대하여, 부호화 정보 및 잔차의 부호량, 예측 화상 신호와 처리 대상 화상 신호의 사이의 변형량 등을 이용하여 평가함으로써, 최적의 예측 모드를 결정한다. 인트라 예측의 경우는, 예측 방법 결정부(105)는, 인트라 예측 모드 등의 인트라 예측 정보를 부호화 정보로서 비트열 부호화부(108)에 공급한다. 인터 예측의 머지 모드의 경우는, 예측 방법 결정부(105)는, 머지 인덱스, 서브 블록 머지 모드인지 아닌지를 나타내는 정보(서브 블록 머지 플래그) 등의 인터 예측 정보를 부호화 정보로서 비트열 부호화부(108)에 공급한다. 인터 예측의 예측 움직임 벡터 모드의 경우는, 예측 방법 결정부(105)는, 인터 예측 모드, 예측 움직임 벡터 인덱스, L0, L1의 참조 인덱스, 차분 움직임 벡터, 서브 블록 예측 움직임 벡터 모드인지 아닌지를 나타내는 정보(서브 블록 예측 움직임 벡터 플래그) 등의 인터 예측 정보를 부호화 정보로서 비트열 부호화부(108)에 공급한다. 추가로, 예측 방법 결정부(105)는, 결정한 부호화 정보를 부호화 정보 격납 메모리(111)에 공급한다. 예측 방법 결정부(105)는, 잔차 생성부(106) 및 예측 화상 신호를 복호 화상 신호 중첩부(110)에 공급한다.
잔차 생성부(106)는, 처리 대상의 화상 신호로부터 예측 화상 신호를 줄임으로써 잔차를 생성하여, 직교 변환·양자화부(107)에 공급한다.
직교 변환·양자화부(107)는, 잔차에 대하여 양자화 파라미터에 따라서 직교 변환 및 양자화를 행하여 직교 변환·양자화된 잔차를 생성하고, 생성된 잔차를 비트열 부호화부(108)와 역양자화·역직교 변환부(109)에 공급한다.
비트열 부호화부(108)는, 시퀀스, 픽처, 슬라이스, 부호화 블록 단위의 정보에 더하여, 부호화 블록마다 예측 방법 결정부(105)에 의해 결정된 예측 방법에 따른 부호화 정보를 부호화한다. 구체적으로는, 비트열 부호화부(108)는, 부호화 블록마다의 예측 모드 PredMode를 부호화한다. 예측 모드가 인터 예측(MODE_INTER)의 경우, 비트열 부호화부(108)는, 머지 모드인지 아닌지를 판별하는 플래그, 서브 블록 머지 플래그, 머지 모드의 경우는 머지 인덱스, 머지 모드가 아닌 경우는 인터 예측 모드, 예측 움직임 벡터 인덱스, 차분 움직임 벡터에 관한 정보, 서브 블록 예측 움직임 벡터 플래그 등의 부호화 정보(인터 예측 정보)를 규정의 신택스(비트열의 구문 규칙)에 따라서 부호화하여, 제1 비트열을 생성한다. 예측 모드가 인트라 예측(MODE_INTRA)인 경우, 인트라 예측 모드 등의 부호화 정보(인트라 예측 정보)를 규정의 신택스(비트열의 구문 규칙)에 따라서 부호화하여, 제1 비트열을 생성한다. 또한, 비트열 부호화부(108)는, 직교 변환 및 양자화된 잔차를 규정의 신택스에 따라서 엔트로피 부호화하여 제2 비트열을 생성한다. 비트열 부호화부(108)는, 제1 비트열과 제2 비트열을 규정의 신택스에 따라서 다중화하여, 비트 스트림을 출력한다.
역양자화·역직교 변환부(109)는, 직교 변환·양자화부(107)로부터 공급된 직교 변환·양자화된 잔차를 역양자화 및 역직교 변환하여 잔차를 산출하고, 산출한 잔차를 복호 화상 신호 중첩부(110)에 공급한다.
복호 화상 신호 중첩부(110)는, 예측 방법 결정부(105)에 의한 결정에 따른 예측 화상 신호와 역양자화·역직교 변환부(109)에서 역양자화 및 역직교 변환된 잔차를 중첩하여 복호 화상을 생성하여, 복호 화상 메모리(104)에 격납한다. 또한, 복호 화상 신호 중첩부(110)는, 복호 화상에 대하여 부호화에 의한 블록 변형 등의 변형을 감소시키는 필터링 처리를 실시한 후, 복호 화상 메모리(104)에 격납해도 좋다.
부호화 정보 격납 메모리(111)는, 예측 방법 결정부(105)에서 결정한, 예측 모드(인터 예측 또는 인트라 예측) 등의 부호화 정보를 격납한다. 인터 예측의 경우는, 부호화 정보 격납 메모리(111)가 격납하는 부호화 정보에는, 결정한 움직임 벡터, 참조 리스트 L0, L1의 참조 인덱스, 이력 예측 움직임 벡터 후보 리스트 등의 인터 예측 정보가 포함된다. 또한 인터 예측의 머지 모드의 경우는, 부호화 정보 격납 메모리(111)가 격납하는 부호화 정보에는, 전술의 각 정보에 더하여, 머지 인덱스, 서브 블록 머지 모드인지 아닌지를 나타내는 정보(서브 블록 머지 플래그)의 인터 예측 정보가 포함된다. 또한 인터 예측의 예측 움직임 벡터 모드의 경우는, 부호화 정보 격납 메모리(111)가 격납하는 부호화 정보에는, 전술의 각 정보에 더하여, 인터 예측 모드, 예측 움직임 벡터 인덱스, 차분 움직임 벡터, 서브 블록 예측 움직임 벡터 모드인지 아닌지를 나타내는 정보(서브 블록 예측 움직임 벡터 플래그) 등의 인터 예측 정보가 포함된다. 인트라 예측의 경우는, 부호화 정보 격납 메모리(111)가 격납하는 부호화 정보에는, 결정한 인트라 예측 모드 등의 인트라 예측 정보가 포함된다.
도 2는, 도 1의 화상 부호화 장치에 대응한 본 발명의 실시 형태에 따른 화상 복호 장치의 구성을 나타내는 블록이다. 실시 형태의 화상 복호 장치는, 비트열 복호부(201), 블록 분할부(202), 인터 예측부(203), 인트라 예측부(204), 부호화 정보 격납 메모리(205), 역양자화·역직교 변환부(206), 복호 화상 신호 중첩부(207) 및, 복호 화상 메모리(208)를 구비한다.
도 2의 화상 복호 장치의 복호 처리는, 도 1의 화상 부호화 장치의 내부에 형성되어 있는 복호 처리에 대응하는 것이기 때문에, 도 2의 부호화 정보 격납 메모리(205), 역양자화·역직교 변환부(206), 복호 화상 신호 중첩부(207) 및, 복호 화상 메모리(208)의 각 구성은, 도 1의 화상 부호화 장치의 부호화 정보 격납 메모리(111), 역양자화·역직교 변환부(109), 복호 화상 신호 중첩부(110) 및, 복호 화상 메모리(104)의 각 구성과 각각 대응하는 기능을 갖는다.
비트열 복호부(201)에 공급되는 비트 스트림은, 규정의 신택스의 규칙에 따라서 분리된다. 비트열 복호부(201)는, 분리된 제1 비트열을 복호하여, 시퀀스, 픽처, 슬라이스, 부호화 블록 단위의 정보 및, 부호화 블록 단위의 부호화 정보를 얻는다. 구체적으로는, 비트열 복호부(201)는, 부호화 블록 단위로 인터 예측(MODE_INTER)인지 인트라 예측(MODE_INTRA)인지를 판별하는 예측 모드 PredMode를 복호한다. 예측 모드가 인터 예측(MODE_INTER)인 경우, 비트열 복호부(201)는, 머지 모드인지 아닌지를 판별하는 플래그, 머지 모드인 경우는 머지 인덱스, 서브 블록 머지 플래그, 예측 움직임 벡터 모드인 경우는 인터 예측 모드, 예측 움직임 벡터 인덱스, 차분 움직임 벡터, 서브 블록 예측 움직임 벡터 플래그 등에 관한 부호화 정보(인터 예측 정보)를 규정의 신택스에 따라서 복호하고, 부호화 정보(인터 예측 정보)를 인터 예측부(203) 및, 블록 분할부(202)를 통하여 부호화 정보 격납 메모리(205)에 공급한다. 예측 모드가 인트라 예측(MODE_INTRA)인 경우, 인트라 예측 모드 등의 부호화 정보(인트라 예측 정보)를 규정의 신택스에 따라서 복호하고, 부호화 정보(인트라 예측 정보)를 인터 예측부(203) 또는 인트라 예측부(204) 및, 블록 분할부(202)를 통하여 부호화 정보 격납 메모리(205)에 공급한다. 비트열 복호부(201)는, 분리한 제2 비트열을 복호하여 직교 변환·양자화된 잔차를 산출하고, 직교 변환·양자화된 잔차를 역양자화·역직교 변환부(206)에 공급한다.
인터 예측부(203)는, 처리 대상의 부호화 블록의 예측 모드 PredMode가 인터 예측(MODE_INTER)에서 예측 움직임 벡터 모드일 때에, 부호화 정보 격납 메모리(205)에 기억되어 있는 이미 복호된 화상 신호의 부호화 정보를 이용하여, 복수의 예측 움직임 벡터의 후보를 도출하고, 도출한 복수의 예측 움직임 벡터의 후보를, 후술하는 예측 움직임 벡터 후보 리스트에 등록한다. 인터 예측부(203)는, 예측 움직임 벡터 후보 리스트에 등록된 복수의 예측 움직임 벡터의 후보 중에서, 비트열 복호부(201)에서 복호되어 공급되는 예측 움직임 벡터 인덱스에 따른 예측 움직임 벡터를 선택하고, 비트열 복호부(201)에서 복호된 차분 움직임 벡터와 선택된 예측 움직임 벡터로부터 움직임 벡터를 산출하고, 산출한 움직임 벡터를 다른 부호화 정보와 함께 부호화 정보 격납 메모리(205)에 격납한다. 여기에서 공급·격납하는 부호화 블록의 부호화 정보는, 예측 모드 PredMode, L0 예측 및, L1 예측을 이용할지 여부를 나타내는 플래그 predFlagL0[xP][yP], predFlagL1[xP][yP], L0, L1의 참조 인덱스 refIdxL0[xP][yP], refIdxL1[xP][yP], L0, L1의 움직임 벡터 mvL0[xP][yP], mvL1[xP][yP] 등이다. 여기에서, xP, yP는 픽처 내에서의 부호화 블록의 좌상의 화소의 위치를 나타내는 인덱스이다. 예측 모드 PredMode가 인터 예측(MODE_INTER)이고, 인터 예측 모드가 L0 예측(Pred_L0)인 경우, L0 예측을 이용할지 아닌지를 나타내는 플래그 predFlagL0은 1, L1 예측을 이용할지 아닌지를 나타내는 플래그 predFlagL1은 0이다. 인터 예측 모드가 L1 예측(Pred_L1)인 경우, L0 예측을 이용할지 아닌지를 나타내는 플래그 predFlagL0은 0, L1 예측을 이용할지 아닌*를 나타내는 플래그 predFlagL1은 1이다. 인터 예측 모드가 쌍예측(Pred_BI)인 경우, L0 예측을 이용할지 아닌지를 나타내는 플래그 predFlagL0, L1 예측을 이용할지 아닌지를 나타내는 플래그 predFlagL1은 모두 1이다. 추가로, 처리 대상의 부호화 블록의 예측 모드 PredMode가 인터 예측(MODE_INTER)에서 머지 모드일 때에, 머지 후보를 도출한다. 부호화 정보 격납 메모리(205)에 기억되어 있는 이미 복호된 부호화 블록의 부호화 정보를 이용하여, 복수의 머지의 후보를 도출하여 후술하는 머지 후보 리스트에 등록하고, 머지 후보 리스트에 등록된 복수의 머지 후보 중에서 비트열 복호부(201)에서 복호되어 공급되는 머지 인덱스에 대응한 머지 후보를 선택하고, 선택된 머지 후보의 L0 예측 및, L1 예측을 이용할지 아닌지를 나타내는 플래그 predFlagL0[xP][yP], predFlagL1[xP][yP], L0, L1의 참조 인덱스 refIdxL0[xP][yP], refIdxL1[xP][yP], L0, L1의 움직임 벡터 mvL0[xP][yP], mvL1[xP][yP] 등의 인터 예측 정보를 부호화 정보 격납 메모리(205)에 격납한다. 여기에서, xP, yP는 픽처 내에서의 부호화 블록의 좌상의 화소의 위치를 나타내는 인덱스이다. 인터 예측부(203)의 상세한 구성과 동작은 후술한다.
인트라 예측부(204)는, 처리 대상의 부호화 블록의 예측 모드 PredMode가 인트라 예측(MODE_INTRA)일 때에, 인트라 예측을 행한다. 비트열 복호부(201)에서 복호된 부호화 정보에는 인트라 예측 모드가 포함되어 있다. 인트라 예측부(204)는, 비트열 복호부(201)에서 복호된 부호화 정보에 포함되는 인트라 예측 모드에 따라서, 복호 화상 메모리(208)에 격납되어 있는 복호 완료 화상 신호로부터 인트라 예측에 의해 예측 화상 신호를 생성하고, 생성한 예측 화상 신호를 복호 화상 신호 중첩부(207)에 공급한다. 인트라 예측부(204)는, 화상 부호화 장치(100)의 인트라 예측부(103)에 대응하는 것이기 때문에, 인트라 예측부(103)와 동일한 처리를 행한다.
역양자화·역직교 변환부(206)는, 비트열 복호부(201)에서 복호된 직교 변환·양자화된 잔차에 대하여 역직교 변환 및 역양자화를 행하고, 역직교 변환·역양자화된 잔차를 얻는다.
복호 화상 신호 중첩부(207)는, 인터 예측부(203)에서 인터 예측된 예측 화상 신호, 또는 인트라 예측부(204)에서 인트라 예측된 예측 화상 신호와, 역양자화·역직교 변환부(206)에 의해 역직교 변환·역양자화된 잔차를 중첩함으로써, 복호 화상 신호를 복호하고, 복호한 복호 화상 신호를 복호 화상 메모리(208)에 격납한다. 복호 화상 메모리(208)에 격납할 때, 복호 화상 신호 중첩부(207)는, 복호 화상에 대하여 부호화에 의한 블록 변형 등을 감소시키는 필터링 처리를 실시한 후, 복호 화상 메모리(208)에 격납해도 좋다.
다음으로, 화상 부호화 장치(100)에 있어서의 블록 분할부(101)의 동작에 대해서 설명한다. 도 3은, 화상을 트리 블록으로 분할하고, 각 트리 블록을 추가로 분할하는 동작을 나타내는 플로우차트이다. 우선, 입력된 화상을, 소정 사이즈의 트리 블록으로 분할한다(스텝 S1001). 각 트리 블록에 대해서는, 소정의 순서, 즉 래스터 스캔순으로 주사하고(스텝 S1002), 처리 대상의 트리 블록의 내부를 분할한다(스텝 S1003).
도 7은, 스텝 S1003의 분할 처리의 상세 동작을 나타내는 플로우차트이다. 우선, 처리 대상의 블록을 4분할할지 아닌지를 판단한다(스텝 S1101).
처리 대상 블록을 4분할한다고 판단한 경우는, 처리 대상 블록을 4분할한다(스텝 S1102). 처리 대상 블록을 분할한 각 블록에 대해서, Z 스캔순, 즉 좌상, 우상, 좌하, 우하의 순으로 주사한다(스텝 S1103). 도 5는, Z 스캔순의 예이고, 도 6a의 601은, 처리 대상 블록을 4분할한 예이다. 도 6a의 601의 번호 0∼3은 처리의 차례를 나타낸 것이다. 그리고 스텝 S1101에서 분할한 각 블록에 대해서, 도 7의 분할 처리를 재귀적으로 실행한다(스텝 S1104).
처리 대상 블록을 4분할하지 않는다고 판단한 경우는, 2-3분할을 행한다(스텝 S1105).
도 8은, 스텝 S1105의 2-3분할 처리의 상세 동작을 나타내는 플로우차트이다. 우선, 처리 대상의 블록을 2-3분할할지 아닌지, 즉 2분할 또는 3분할의 어느 것을 행할지 아닌지를 판단한다(스텝 S1201).
처리 대상 블록을 2-3분할한다고 판단하지 않는 경우, 즉 분할하지 않는다고 판단한 경우는, 분할을 종료한다(스텝 S1211). 즉, 재귀적인 분할 처리에 의해 분할된 블록에 대하여, 더 한층의 재귀적인 분할 처리는 하지 않는다.
처리 대상의 블록을 2-3분할한다고 판단한 경우는, 추가로 처리 대상 블록을 2분할할지 아닌지(스텝 S1202)를 판단한다.
처리 대상 블록을 2분할한다고 판단한 경우는, 처리 대상 블록을 상하(수직 방향)로 분할할지 아닌지를 판단하고(스텝 S1203), 그 결과에 기초하여, 처리 대상 블록을 상하(수직 방향)로 2분할하거나(스텝 S1204), 처리 대상 블록을 좌우(수평 방향)로 2분할한다(스텝 S1205). 스텝 S1204의 결과, 처리 대상 블록은, 도 6b의 602에 나타내는 바와 같이, 상하(수직 방향) 2분할로 분할되고, 스텝 S1205의 결과, 처리 대상 블록은, 도 6d의 604에 나타내는 바와 같이, 좌우(수평 방향) 2분할로 분할된다.
스텝 S1202에 있어서, 처리 대상의 블록을 2분할한다고 판단하지 않은 경우, 즉 3분할한다고 판단한 경우는, 처리 대상 블록을 상중하(수직 방향)로 분할할지 아닌지를 판단하고(스텝 S1206), 그 결과에 기초하여, 처리 대상 블록을 상중하(수직 방향)로 3분할하거나(스텝 S1207), 처리 대상 블록을 좌중우(수평 방향)로 3분할한다(스텝 S1208). 스텝 S1207의 결과, 처리 대상 블록은, 도 6c의 603에 나타내는 바와 같이, 상중하(수직 방향) 3분할로 분할되고, 스텝 S1208의 결과, 처리 대상 블록은, 도 6e의 605에 나타내는 바와 같이, 좌중우(수평 방향) 3분할로 분할된다.
스텝 S1204, 스텝 S1205, 스텝 S1207, 스텝 S1208의 어느 하나를 실행 후, 처리 대상 블록을 분할한 각 블록에 대해서, 좌로부터 우, 상으로부터 하의 순으로 주사한다(스텝 S1209). 도 6b∼e의 602로부터 605의 번호 0∼2는 처리의 차례를 나타낸 것이다. 분할한 각 블록에 대해서, 도 8의 2-3분할 처리를 재귀적으로 실행한다(스텝 S1210).
여기에서 설명한 재귀적인 블록 분할은, 분할하는 회수, 또는, 처리 대상의 블록의 사이즈 등에 따라, 분할 요부(要否)를 제한해도 좋다. 분할 요부를 제한하는 정보는, 부호화 장치와 복호화 장치의 사이에서 미리 결정을 행함으로써, 정보의 전달을 행하지 않는 구성으로 실현해도 좋고, 부호화 장치가 분할 요부를 제한하는 정보를 결정하고, 비트열에 기록함으로써, 복호화 장치에 전달하는 구성으로 실현해도 좋다.
어느 블록을 분할했을 때, 분할 전의 블록을 친(親)블록이라고 부르고, 분할 후의 각 블록을 자(子)블록이라고 부른다.
다음으로, 화상 복호 장치(200)에 있어서의 블록 분할부(202)의 동작에 대해서 설명한다. 블록 분할부(202)는, 화상 부호화 장치(100)의 블록 분할부(101)와 동일한 처리 순서로 트리 블록을 분할하는 것이다. 단, 화상 부호화 장치(100)의 블록 분할부(101)에서는, 화상 인식에 의한 최적 형상의 추정이나 변형 레이트 최적화 등 최적화 수법을 적용하여, 최적인 블록 분할의 형상을 결정하는데 대하여, 화상 복호 장치(200)에 있어서의 블록 분할부(202)는, 비트열에 기록된 블록 분할 정보를 복호함으로써, 블록 분할 형상을 결정하는 점이 상이하다.
제1 실시 형태의 블록 분할에 관한 신택스(비트열의 구문 규칙)를 도 9에 나타낸다. coding_quadtree()는 블록의 4분할 처리에 따른 신택스를 나타낸다. multi_type_tree()는 블록의 2분할 또는 3분할 처리에 따른 신택스를 나타낸다. qt_split는 블록을 4분할할지 아닌지를 나타내는 플래그이다. 블록을 4분할하는 경우는, qt_split=1로 하고, 4분할하지 않는 경우는, qt_split=0으로 한다. 4분할하는 경우(qt_split=1), 4분할한 각 블록에 대해서, 재귀적으로 4분할 처리를 한다(coding_quadtree(0), coding_quadtree(1), coding_quadtree(2), coding_quadtree(3), 인수의 0∼3은 도 6a의 601의 번호에 대응함). 4분할하지 않는 경우(qt_split=0)는, multi_type_tree()에 따라서, 후속의 분할을 결정한다. mtt_split는, 추가로 분할을 할지 아닌지를 나타내는 플래그이다. 추가로 분할을 하는 경우(mtt_split=1), 수직 방향으로 분할할지 수평 방향으로 분할할지를 나타내는 플래그인 mtt_split_vertical와, 2분할할지 3분할할지를 결정하는 플래그인 mtt_split_binary를 전송한다. mtt_split_vertical=1은, 수직 방향으로 분할하는 것을 나타내고, mtt_split_vertical=0은, 수평 방향으로 분할하는 것을 나타낸다. mtt_split_binary=1은, 2분할하는 것을 나타내고, mtt_split_binary=0은 3분할하는 것을 나타낸다. 2분할하는 경우(mtt_split_binary=1), 2분할한 각 블록에 대해서, 재귀적으로 분할 처리를 한다(multi_type_tree(0), multi_type_tree(1), 인수의 0∼1은 도 6b∼d의 602 또는 604의 번호에 대응함). 3분할하는 경우(mtt_split_binary=0), 3분할한 각 블록에 대해서, 재귀적으로 분할 처리를 한다(multi_type_tree(0), multi_type_tree(1), multi_type_tree(2), 0∼2는 도 6b의 603 또는 도 6e의 605의 번호에 대응함). mtt_split=0이 될 때까지, 재귀적으로 multi_type_tree를 호출함으로써, 계층적인 블록 분할을 행한다.
<인터 예측>
실시 형태에 따른 인터 예측 방법은, 도 1의 화상 부호화 장치의 인터 예측부(102) 및 도 2의 화상 복호 장치의 인터 예측부(203)에 있어서 실시된다.
실시 형태에 의한 인터 예측 방법에 대해서, 도면을 이용하여 설명한다. 인터 예측 방법은 부호화 블록 단위로 부호화 및 복호의 처리의 어느 것으로도 실시된다.
<부호화측의 인터 예측부(102)의 설명>
도 16은 도 1의 화상 부호화 장치의 인터 예측부(102)의 상세한 구성을 나타내는 도면이다. 통상 예측 움직임 벡터 모드 도출부(301)는, 복수의 통상 예측 움직임 벡터 후보를 도출하여 예측 움직임 벡터를 선택하고, 선택한 예측 움직임 벡터와, 검출된 움직임 벡터의 차분 움직임 벡터를 산출한다. 검출된 인터 예측 모드, 참조 인덱스, 움직임 벡터, 산출된 차분 움직임 벡터가 통상 예측 움직임 벡터 모드의 인터 예측 정보가 된다. 이 인터 예측 정보가 인터 예측 모드 판정부(305)에 공급된다. 통상 예측 움직임 벡터 모드 도출부(301)의 상세한 구성과 처리에 대해서는 후술한다.
통상 머지 모드 도출부(302)에서는 복수의 통상 머지 후보를 도출하여 통상 머지 후보를 선택하고, 통상 머지 모드의 인터 예측 정보를 얻는다. 이 인터 예측 정보가 인터 예측 모드 판정부(305)에 공급된다. 통상 머지 모드 도출부(302)의 상세한 구성과 처리에 대해서는 후술한다.
서브 블록 예측 움직임 벡터 모드 도출부(303)에서는 복수의 서브 블록 예측 움직임 벡터 후보를 도출하여 서브 블록 예측 움직임 벡터를 선택하고, 선택한 서브 블록 예측 움직임 벡터와, 검출한 움직임 벡터의 차분 움직임 벡터를 산출한다. 검출된 인터 예측 모드, 참조 인덱스, 움직임 벡터, 산출된 차분 움직임 벡터가 서브 블록 예측 움직임 벡터 모드의 인터 예측 정보가 된다. 이 인터 예측 정보가 인터 예측 모드 판정부(305)에 공급된다.
서브 블록 머지 모드 도출부(304)에서는 복수의 서브 블록 머지 후보를 도출하여 서브 블록 머지 후보를 선택하고, 서브 블록 머지 모드의 인터 예측 정보를 얻는다. 이 인터 예측 정보가 인터 예측 모드 판정부(305)에 공급된다.
인터 예측 모드 판정부(305)에서는 통상 예측 움직임 벡터 모드 도출부(301), 통상 머지 모드 도출부(302), 서브 블록 예측 움직임 벡터 모드 도출부(303), 서브 블록 머지 모드 도출부(304)로부터 공급되는 인터 예측 정보에 기초하여, 인터 예측 정보를 판정한다. 인터 예측 모드 판정부(305)로부터 판정 결과에 따른 인터 예측 정보가 움직임 보상 예측부(306)에 공급된다.
움직임 보상 예측부(306)에서는 판정된 인터 예측 정보에 기초하여, 복호 화상 메모리(104)에 격납되어 있는 참조 화상 신호에 대하여 인터 예측을 행한다. 움직임 보상 예측부(306)의 상세한 구성과 처리에 대해서는 후술한다.
<복호측의 인터 예측부(203)의 설명>
도 22는 도 2의 화상 복호 장치의 인터 예측부(203)의 상세한 구성을 나타내는 도면이다.
통상 예측 움직임 벡터 모드 도출부(401)는 복수의 통상 예측 움직임 벡터 후보를 도출하여 예측 움직임 벡터를 선택하고, 선택한 예측 움직임 벡터와, 복호한 차분 움직임 벡터의 가산값을 산출하여 움직임 벡터로 한다. 복호된 인터 예측 모드, 참조 인덱스, 움직임 벡터가 통상 예측 움직임 벡터 모드의 인터 예측 정보가 된다. 이 인터 예측 정보가 스위치(408)를 경유하여 움직임 보상 예측부(406)에 공급된다. 통상 예측 움직임 벡터 모드 도출부(401)의 상세한 구성과 처리에 대해서는 후술한다.
통상 머지 모드 도출부(402)에서는 복수의 통상 머지 후보를 도출하여 통상 머지 후보를 선택하고, 통상 머지 모드의 인터 예측 정보를 얻는다. 이 인터 예측 정보가 스위치(408)를 경유하여 움직임 보상 예측부(406)에 공급된다. 통상 머지 모드 도출부(402)의 상세한 구성과 처리에 대해서는 후술한다.
서브 블록 예측 움직임 벡터 모드 도출부(403)에서는 복수의 서브 블록 예측 움직임 벡터 후보를 도출하여 서브 블록 예측 움직임 벡터를 선택하고, 선택한 서브 블록 예측 움직임 벡터와, 복호한 차분 움직임 벡터의 가산값을 산출하여 움직임 벡터로 한다. 복호된 인터 예측 모드, 참조 인덱스, 움직임 벡터가 서브 블록 예측 움직임 벡터 모드의 인터 예측 정보가 된다. 이 인터 예측 정보가 스위치(408)를 경유하여 움직임 보상 예측부(406)에 공급된다.
서브 블록 머지 모드 도출부(404)에서는 복수의 서브 블록 머지 후보를 도출하여 서브 블록 머지 후보를 선택하여, 서브 블록 머지 모드의 인터 예측 정보를 얻는다. 이 인터 예측 정보가 스위치(408)를 경유하여 움직임 보상 예측부(406)에 공급된다.
움직임 보상 예측부(406)에서는 판정된 인터 예측 정보에 기초하여, 복호 화상 메모리(208)에 격납되어 있는 참조 화상 신호에 대하여 인터 예측을 행한다. 움직임 보상 예측부(406)의 상세한 구성과 처리에 대해서는 부호화측의 움직임 보상 예측부(306)와 동일하다.
<통상 예측 움직임 벡터 모드 도출부(통상 AMVP)>
도 17의 통상 예측 움직임 벡터 모드 도출부(301)는, 공간 예측 움직임 벡터 후보 도출부(321), 시간 예측 움직임 벡터 후보 도출부(322), 이력 예측 움직임 벡터 후보 도출부(323), 예측 움직임 벡터 후보 보충부(325), 통상 움직임 벡터 검출부(326), 예측 움직임 벡터 후보 선택부(327), 움직임 벡터 감산부(328)를 포함한다.
도 23의 통상 예측 움직임 벡터 모드 도출부(401)는, 공간 예측 움직임 벡터 후보 도출부(421), 시간 예측 움직임 벡터 후보 도출부(422), 이력 예측 움직임 벡터 후보 도출부(423), 예측 움직임 벡터 후보 보충부(425), 예측 움직임 벡터 후보 선택부(426), 움직임 벡터 가산부(427)를 포함한다.
부호화측의 통상 예측 움직임 벡터 모드 도출부(301) 및 복호측의 통상 예측 움직임 벡터 모드 도출부(401)의 처리 순서에 대해서, 각각 도 19, 도 25의 플로우차트를 이용하여 설명한다. 도 19는 부호화측의 통상 움직임 벡터 모드 도출부(301)에 의한 통상 예측 움직임 벡터 모드 도출 처리 순서를 나타내는 플로우차트이고, 도 25는 복호측의 통상 움직임 벡터 모드 도출부(401)에 의한 통상 예측 움직임 벡터 모드 도출 처리 순서를 나타내는 플로우차트이다.
<통상 예측 움직임 벡터 모드 도출부(통상 AMVP):부호화측의 설명>
도 19를 참조하여 부호화측의 통상 예측 움직임 벡터 모드 도출 처리 순서를 설명한다. 도 19의 처리 순서의 설명에 있어서, 도 19에 나타낸 통상이라는 말을 생략하는 경우가 있다.
우선, 통상 움직임 벡터 검출부(326)에서 인터 예측 모드 및 참조 인덱스마다 통상 움직임 벡터를 검출한다(도 19의 스텝 S100).
계속하여, 공간 예측 움직임 벡터 후보 도출부(321), 시간 예측 움직임 벡터 후보 도출부(322), 이력 예측 움직임 벡터 후보 도출부(323), 예측 움직임 벡터 후보 보충부(325), 예측 움직임 벡터 후보 선택부(327), 움직임 벡터 감산부(328)에서, 통상 예측 움직임 벡터 모드의 인터 예측에서 이용하는 움직임 벡터의 차분 움직임 벡터를 L0, L1마다 각각 산출한다(도 19의 스텝 S101∼S106). 구체적으로는 처리 대상 블록의 예측 모드 PredMode가 인터 예측(MODE_INTER)이고, 인터 예측 모드가 L0 예측(Pred_L0)인 경우, L0의 예측 움직임 벡터 후보 리스트 mvpListL0을 산출하고, 예측 움직임 벡터 mvpL0을 선택하여, L0의 움직임 벡터 mvL0의 차분 움직임 벡터 mvdL0을 산출한다. 처리 대상 블록의 인터 예측 모드가 L1 예측(Pred_L1)인 경우, L1의 예측 움직임 벡터 후보 리스트 mvpListL1을 산출하고, 예측 움직임 벡터 mvpL1을 선택하고, L1의 움직임 벡터 mvL1의 차분 움직임 벡터 mvdL1을 산출한다. 처리 대상 블록의 인터 예측 모드가 쌍예측(Pred_BI)인 경우, L0 예측과 L1 예측이 함께 행해지고, L0의 예측 움직임 벡터 후보 리스트 mvpListL0을 산출하고, L0의 예측 움직임 벡터 mvpL0을 선택하고, L0의 움직임 벡터 mvL0의 차분 움직임 벡터 mvdL0을 산출함과 함께, L1의 예측 움직임 벡터 후보 리스트 mvpListL1을 산출하고, L1의 예측 움직임 벡터 mvpL1을 산출하고, L1의 움직임 벡터 mvL1의 차분 움직임 벡터 mvdL1을 각각 산출한다.
L0, L1 각각에 대해서, 차분 움직임 벡터 산출 처리를 행하지만, L0, L1 모두 공통의 처리가 된다. 따라서, 이하의 설명에 있어서는 L0, L1을 공통의 LX로서 나타낸다. L0의 차분 움직임 벡터를 산출하는 처리에서는 LX의 X가 0이고, L1의 차분 움직임 벡터를 산출하는 처리에서는 LX의 X가 1이다. 또한, LX의 차분 움직임 벡터를 산출하는 처리 중에, LX가 아니라, 다른 한쪽의 리스트의 정보를 참조하는 경우, 다른 한쪽의 리스트를 LY로서 나타낸다.
LX의 움직임 벡터 mvLX를 사용하는 경우(도 19의 스텝 S102:YES), LX의 예측 움직임 벡터의 후보를 산출하여 LX의 예측 움직임 벡터 후보 리스트 mvpListLX를 구축한다(도 19의 스텝 S103). 통상 예측 움직임 벡터 모드 도출부(301) 중의 공간 예측 움직임 벡터 후보 도출부(321), 시간 예측 움직임 벡터 후보 도출부(322), 이력 예측 움직임 벡터 후보 도출부(323), 예측 움직임 벡터 후보 보충부(325)에서 복수의 예측 움직임 벡터의 후보를 도출하여 예측 움직임 벡터 후보 리스트 mvpListLX를 구축한다. 도 19의 스텝 S103의 상세한 처리 순서에 대해서는 도 20의 플로우차트를 이용하여 후술한다.
계속하여, 예측 움직임 벡터 후보 선택부(327)에 의해, LX의 예측 움직임 벡터 후보 리스트 mvpListLX로부터 LX의 예측 움직임 벡터 mvpLX를 선택한다(도 19의 스텝 S104). 여기에서, 예측 움직임 벡터 후보 리스트 mvpListLX 중에서, 어느 1개의 요소(0으로부터 세어 i번째의 요소)를 mvpListLX[i]로서 나타낸다. 움직임 벡터 mvLX와 예측 움직임 벡터 후보 리스트 mvpListLX 중에 격납된 각 예측 움직임 벡터의 후보 mvpListLX[i]의 차분인 각각의 차분 움직임 벡터를 산출한다. 그들 차분 움직임 벡터를 부호화했을 때의 부호량을 예측 움직임 벡터 후보 리스트 mvpListLX의 요소(예측 움직임 벡터 후보)마다 산출한다. 그리고, 예측 움직임 벡터 후보 리스트 mvpListLX에 등록된 각 요소 중에서, 예측 움직임 벡터의 후보 마다의 부호량이 최소가 되는 예측 움직임 벡터의 후보 mvpListLX[i]를 예측 움직임 벡터 mvpLX로서 선택하고, 그의 인덱스 i를 취득한다. 예측 움직임 벡터 후보 리스트 mvpListLX 중에서 최소의 발생 부호량이 되는 예측 움직임 벡터의 후보가 복수 존재하는 경우에는, 예측 움직임 벡터 후보 리스트 mvpListLX 중의 인덱스 i가 작은 번호로 나타나는 예측 움직임 벡터의 후보 mvpListLX[i]를 최적의 예측 움직임 벡터 mvpLX로서 선택하고, 그의 인덱스 i를 취득한다.
계속하여, 움직임 벡터 감산부(328)에서, LX의 움직임 벡터 mvLX로부터 선택된 LX의 예측 움직임 벡터 mvpLX를 감산하고,
mvdLX = mvLX - mvpLX
로서 LX의 차분 움직임 벡터 mvdLX를 산출한다(도 19의 스텝 S105).
<통상 예측 움직임 벡터 모드 도출부(통상 AMVP):복호측의 설명>
다음으로, 도 25를 참조하여 복호측의 통상 예측 움직임 벡터 모드 처리 순서를 설명한다. 복호측에서는, 공간 예측 움직임 벡터 후보 도출부(421), 시간 예측 움직임 벡터 후보 도출부(422), 이력 예측 움직임 벡터 후보 도출부(423), 예측 움직임 벡터 후보 보충부(425)이고, 통상 예측 움직임 벡터 모드의 인터 예측에서 이용하는 움직임 벡터를 L0, L1마다 각각 산출한다(도 25의 스텝 S201∼S206). 구체적으로는 처리 대상 블록의 예측 모드 PredMode가 인터 예측(MODE_INTER)이고, 처리 대상 블록의 인터 예측 모드가 L0 예측(Pred_L0)인 경우, L0의 예측 움직임 벡터 후보 리스트 mvpListL0을 산출하고, 예측 움직임 벡터 mvpL0을 선택하고, L0의 움직임 벡터 mvL0을 산출한다. 처리 대상 블록의 인터 예측 모드가 L1 예측(Pred_L1)인 경우, L1의 예측 움직임 벡터 후보 리스트 mvpListL1을 산출하고, 예측 움직임 벡터 mvpL1을 선택하고, L1의 움직임 벡터 mvL1을 산출한다. 처리 대상 블록의 인터 예측 모드가 쌍예측(Pred_BI)인 경우, L0 예측과 L1 예측이 함께 행해지고, L0의 예측 움직임 벡터 후보 리스트 mvpListL0을 산출하고, L0의 예측 움직임 벡터 mvpL0을 선택하고, L0의 움직임 벡터 mvL0을 산출함과 함께, L1의 예측 움직임 벡터 후보 리스트 mvpListL1을 산출하고, L1의 예측 움직임 벡터 mvpL1을 산출하고, L1의 움직임 벡터 mvL1을 각각 산출한다.
부호화측과 동일하게, 복호측에서도 L0, L1 각각에 대해서, 움직임 벡터 산출 처리를 행하는데, L0, L1 모두 공통의 처리가 된다. 따라서, 이하의 설명에 있어서는 L0, L1을 공통의 LX로서 나타낸다. LX는 처리 대상의 부호화 블록의 인터 예측에 이용하는 인터 예측 모드를 나타낸다. L0의 움직임 벡터를 산출하는 처리에서는 X가 0이고, L1의 움직임 벡터를 산출하는 처리에서는 X가 1이다. 또한, LX의 움직임 벡터를 산출하는 처리 중에, 산출 대상의 LX와 동일한 참조 리스트가 아니라, 다른 한쪽의 참조 리스트의 정보를 참조하는 경우, 다른 한쪽의 참조 리스트를 LY로서 나타낸다.
LX의 움직임 벡터 mvLX를 사용하는 경우(도 25의 스텝 S202:YES), LX의 예측 움직임 벡터의 후보를 산출하여 LX의 예측 움직임 벡터 후보 리스트 mvpListLX를 구축한다(도 25의 스텝 S203). 통상 예측 움직임 벡터 모드 도출부(401) 중의 공간 예측 움직임 벡터 후보 도출부(421), 시간 예측 움직임 벡터 후보 도출부(422), 이력 예측 움직임 벡터 후보 도출부(423), 예측 움직임 벡터 후보 보충부(425)에서 복수의 예측 움직임 벡터의 후보를 산출하고, 예측 움직임 벡터 후보 리스트 mvpListLX를 구축한다. 도 25의 스텝 S203의 상세한 처리 순서에 대해서는 도 20의 플로우차트를 이용하여 후술한다.
계속하여, 예측 움직임 벡터 후보 선택부(426)에서 예측 움직임 벡터 후보 리스트 mvpListLX로부터 비트열 복호부(201)에서 복호되어 공급되는 예측 움직임 벡터의 인덱스 mvpIdxLX에 대응하는 예측 움직임 벡터의 후보 mvpListLX[mvpIdxLX]가 선택된 예측 움직임 벡터 mvpLX로서 취출한다(도 25의 스텝 S204).
계속하여, 움직임 벡터 가산부(427)에서 비트열 복호부(201)에서 복호되어 공급되는 LX의 차분 움직임 벡터 mvdLX와 LX의 예측 움직임 벡터 mvpLX를 가산하여,
mvLX=mvpLX+mvdLX
로서 LX의 움직임 벡터 mvLX를 산출한다(도 25의 스텝 S205).
<통상 예측 움직임 벡터 모드 도출부(통상 AMVP):움직임 벡터의 예측 방법>
도 20은 본 발명의 실시 형태에 따른 화상 부호화 장치의 통상 예측 움직임 벡터 모드 도출부(301) 및 화상 복호 장치의 통상 예측 움직임 벡터 모드 도출부(401)에서 공통되는 기능을 갖는 통상 예측 움직임 벡터 모드 도출 처리의 처리 순서를 나타내는 플로우차트이다.
통상 예측 움직임 벡터 모드 도출부(301) 및 통상 예측 움직임 벡터 모드 도출부(401)에서는, 예측 움직임 벡터 후보 리스트 mvpListLX를 구비하고 있다. 예측 움직임 벡터 후보 리스트 mvpListLX는 리스트 구조를 이루고, 예측 움직임 벡터 후보 리스트 내부의 소재를 나타내는 예측 움직임 벡터 인덱스와, 인덱스에 대응하는 예측 움직임 벡터 후보를 요소로서 격납하는 기억 영역이 형성되어 있다. 예측 움직임 벡터 인덱스의 숫자는 0부터 개시되고, 예측 움직임 벡터 후보 리스트 mvpListLX의 기억 영역에, 예측 움직임 벡터 후보가 격납된다. 본 실시 형태에 있어서는, 예측 움직임 벡터 후보 리스트 mvpListLX는 적어도 2개의 예측 움직임 벡터 후보(인터 예측 정보)를 등록할 수 있는 것으로 한다. 추가로, 예측 움직임 벡터 후보 리스트 mvpListLX에 등록되어 있는 예측 움직임 벡터 후보수를 나타내는 변수 numCurrMvpCand에 0을 설정한다.
공간 예측 움직임 벡터 후보 도출부(321 및 421)는, 좌측에 인접하는 블록으로부터의 예측 움직임 벡터의 후보를 도출한다. 이 처리에서는, 좌측에 인접하는 블록(도 11의 A0 또는 A1)의 인터 예측 정보, 즉 예측 움직임 벡터 후보를 이용할 수 있는지 아닌지를 나타내는 플래그 및, 움직임 벡터, 참조 인덱스 등을 참조하여 예측 움직임 벡터 mvLXA 도출하고, 도출한 mvLXA를 예측 움직임 벡터 후보 리스트 mvpListLX에 추가한다(도 20의 스텝 S301). 또한, L0 예측일 때 X는 0, L1 예측일 때 X는 1로 한다(이하 동일). 계속하여, 공간 예측 움직임 벡터 후보 도출부(321 및 421)는, 상측에 인접하는 블록으로부터의 예측 움직임 벡터의 후보를 도출한다. 이 처리에서는, 상측에 인접하는 블록(도 11의 B0, B1, 또는 B2)의 인터 예측 정보, 즉 예측 움직임 벡터 후보를 이용할 수 있는지 아닌지를 나타내는 플래그 및, 움직임 벡터, 참조 인덱스 등을 참조하여 예측 움직임 벡터 mvLXB를 도출하고, 각각 도출한 mvLXA와 mvLXB가 동일하지 않으면, mvLXB를 예측 움직임 벡터 후보 리스트 mvpListLX에 추가한다(도 20의 스텝 S302). 도 20의 스텝 S301과 S302의 처리는 참조하는 인접 블록의 위치와 수가 상이한 점 이외는 공통이고, 부호화 블록의 예측 움직임 벡터 후보를 이용할 수 있는지 아닌지를 나타내는 플래그 availableFlagLXN 및, 움직임 벡터 mvLXN, 참조 인덱스 refIdxN(N은 A 또는 B를 나타낸다, 이하 동일)을 도출한다.
계속하여, 시간 예측 움직임 벡터 후보 도출부(322 및 422)는, 현재의 처리 대상 픽처와는 시간이 상이한 픽처에 있어서의 블록으로부터의 예측 움직임 벡터의 후보를 도출한다. 이 처리에서는, 상이한 시간의 픽처의 부호화 블록의 예측 움직임 벡터 후보를 이용할 수 있는지 아닌지를 나타내는 플래그 availableFlagLXCol 및, 움직임 벡터 mvLXCol, 참조 인덱스 refIdxCol, 참조 리스트 listCol를 도출하고, mvLXCol을 예측 움직임 벡터 후보 리스트 mvpListLX에 추가한다(도 20의 스텝 S303).
또한, 시퀀스(SPS), 픽처(PPS), 또는 슬라이스의 단위로 시간 예측 움직임 벡터 후보 도출부(322 및 422)의 처리를 생략할 수 있는 것으로 한다.
계속하여, 이력 예측 움직임 벡터 후보 도출부(323 및 423)는 이력 예측 움직임 벡터 후보 리스트 HmvpCandList에 등록되어 있는 이력 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트 mvpListLX에 추가한다.(도 20의 스텝 S304). 이 스텝 S304의 등록 처리 순서의 상세에 대해서는 도 29의 플로우차트를 이용하여 후술한다.
계속하여 예측 움직임 벡터 후보 보충부(325 및 425)는 예측 움직임 벡터 후보 리스트 mvpListLX를 충족시킬 때까지, (0, 0) 등의, 소정의 값의 예측 움직임 벡터 후보를 추가한다(도 20의 S305).
<통상 머지 모드 도출부(통상 머지)>
도 18의 통상 머지 모드 도출부(302)는, 공간 머지 후보 도출부(341), 시간 머지 후보 도출부(342), 평균 머지 후보 도출부(344), 이력 머지 후보 도출부(345), 머지 후보 보충부(346), 머지 후보 선택부(347)를 포함한다.
도 24의 통상 머지 모드 도출부(402)는, 공간 머지 후보 도출부(441), 시간 머지 후보 도출부(442), 평균 머지 후보 도출부(444), 이력 머지 후보 도출부(445), 머지 후보 보충부(446), 머지 후보 선택부(447)를 포함한다.
도 21은 본 발명의 실시 형태에 따른 화상 부호화 장치의 통상 머지 모드 도출부(302) 및 화상 복호 장치의 통상 머지 모드 도출부(402)에서 공통되는 기능을 갖는 통상 머지 모드 도출 처리의 순서를 설명하는 플로우차트이다.
이하, 제(諸)과정을 순서를 쫓아 설명한다. 또한, 이하의 설명에 있어서는 특별히 언급이 없는 한 슬라이스 타입 slice_type이 B 슬라이스인 경우에 대해서 설명하지만, P 슬라이스인 경우에도 적용할 수 있다. 단, 슬라이스 타입 slice_type이 P 슬라이스인 경우, 인터 예측 모드로서 L0 예측(Pred_L0)만이 있고, L1 예측(Pred_L1), 쌍예측(Pred_BI)이 없기 때문에, L1에 관련된 처리를 생략할 수 있다.
통상 머지 모드 도출부(302) 및 통상 머지 모드 도출부(402)에서는, 머지 후보 리스트 mergeCandList를 구비하고 있다. 머지 후보 리스트 mergeCandList는 리스트 구조를 이루고, 머지 후보 리스트 내부의 소재를 나타내는 머지 인덱스와, 인덱스에 대응하는 머지 후보를 요소로서 격납하는 기억 영역이 형성되어 있다. 머지 인덱스의 숫자는 0으로부터 개시되고, 머지 후보 리스트 mergeCandList의 기억 영역에, 머지 후보가 격납된다. 이후의 처리에서는, 머지 후보 리스트 mergeCandList에 등록된 머지 인덱스 i의 머지 후보는, mergeCandList[i]로 나타내는 것으로 한다. 본 실시 형태에 있어서는, 머지 후보 리스트 mergeCandList는 적어도 6개의 머지 후보(인터 예측 정보)를 등록할 수 있는 것으로 한다. 추가로, 머지 후보 리스트 mergeCandList에 등록되어 있는 머지 후보수를 나타내는 변수 numCurrMergeCand에 0을 설정한다.
공간 머지 후보 도출부(341) 및 공간 머지 후보 도출부(441)에서는, 화상 부호화 장치의 부호화 정보 격납 메모리(111) 또는 화상 복호 장치의 부호화 정보 격납 메모리(205)에 격납되어 있는 부호화 정보로부터, 처리 대상 블록의 좌측과 상측에 인접하는 블록으로부터의 공간 머지 후보 A, B를 도출하여, 도출된 공간 머지 후보를 머지 후보 리스트 mergeCandList에 등록한다(도 21의 스텝 S401). 여기에서, 공간 머지 후보 A, B 또는 시간 머지 후보 Col의 어느 하나를 나타내는 N을 정의한다. 블록 N의 인터 예측 정보가 공간 머지 후보로서 이용할 수 있는지 아닌지를 나타내는 플래그 availableFlagN, 공간 머지 후보 N의 L0의 참조 인덱스 refIdxL0N 및 L1의 참조 인덱스 refIdxL1N, L0 예측이 행해지는지 아닌지를 나타내는 L0 예측 플래그 predFlagL0N 및 L1 예측이 행해지는지 아닌지를 나타내는 L1 예측 플래그 predFlagL1N, L0의 움직임 벡터 mvL0N, L1의 움직임 벡터 mvL1N을 도출한다. 단, 본 실시 형태에 있어서는 처리 대상이 되는 부호화 블록에 포함되는 블록의 인터 예측 정보를 참조하지 않고, 머지 후보를 도출하기 때문에, 처리 대상의 부호화 블록에 포함되는 블록의 인터 예측 정보를 이용하는 공간 머지 후보는 도출하지 않는다.
계속하여, 시간 머지 후보 도출부(342) 및 시간 머지 후보 도출부(442)에서는, 상이한 시간의 픽처로부터의 시간 머지 후보를 도출하고, 도출된 시간 머지 후보를 머지 후보 리스트 mergeCandList에 등록한다(도 21의 스텝 S402). 시간 머지 후보를 이용할 수 있는지 아닌지를 나타내는 플래그 availableFlagCol, 시간 머지 후보의 L0 예측이 행해지는지 아닌지를 나타내는 L0 예측 플래그 predFlagL0Col 및 L1 예측이 행해지는지 아닌지를 나타내는 L1 예측 플래그 predFlagL1Col 및, L0의 움직임 벡터 mvL0Col, L1의 움직임 벡터 mvL1Col를 도출한다.
또한, 시퀀스(SPS), 픽처(PPS), 또는 슬라이스의 단위로 시간 머지 후보 도출부(342) 및 시간 머지 후보 도출부(442)의 처리를 생략할 수 있는 것으로 한다.
계속하여, 이력 머지 후보 도출부(345) 및 이력 머지 후보 도출부(445)에서는, 이력 예측 움직임 벡터 후보 리스트 HmvpCandList에 등록되어 있는 이력 예측 움직임 벡터 후보를 머지 후보 리스트 mergeCandList에 등록한다(도 21의 스텝 S403).
또한, 머지 후보 리스트 mergeCandList 내에 등록되어 있는 머지 후보수 numCurrMergeCand가, 최대 머지 후보수 MaxNumMergeCand보다 작은 경우, 머지 후보 리스트 mergeCandList 내에 등록되어 있는 머지 후보수 numCurrMergeCand가 최대 머지 후보수 MaxNumMergeCand를 상한으로 하여 이력 머지 후보는 도출되고, 머지 후보 리스트 mergeCandList에 등록된다.
계속하여, 평균 머지 후보 도출부(344) 및 평균 머지 후보 도출부(444)에서는, 머지 후보 리스트 mergeCandList로부터 평균 머지 후보를 도출하고, 도출된 평균 머지 후보를 머지 후보 리스트 mergeCandList에 추가한다(도 21의 스텝 S404).
또한, 머지 후보 리스트 mergeCandList 내에 등록되어 있는 머지 후보수 numCurrMergeCand가, 최대 머지 후보수 MaxNumMergeCand보다 작은 경우, 머지 후보 리스트 mergeCandList 내에 등록되어 있는 머지 후보수 numCurrMergeCand가 최대 머지 후보수 MaxNumMergeCand를 상한으로 하여 평균 머지 후보는 도출되고, 머지 후보 리스트 mergeCandList에 등록된다.
여기에서, 평균 머지 후보는, 머지 후보 리스트 mergeCandList에 등록되어 있는 제1 머지 후보와 제2 머지 후보가 갖는 움직임 벡터를 L0 예측 및 L1 예측마다 평균하여 얻어지는 움직임 벡터를 갖는 새로운 머지 후보이다.
계속하여, 머지 후보 보충부(346) 및 머지 후보 보충부(446)에서는, 머지 후보 리스트 mergeCandList 내에 등록되어 있는 머지 후보수 numCurrMergeCand가, 최대 머지 후보수 MaxNumMergeCand보다 작은 경우, 머지 후보 리스트 mergeCandList 내에 등록되어 있는 머지 후보수 numCurrMergeCand가 최대 머지 후보수 MaxNumMergeCand를 상한으로 하여 추가 머지 후보를 도출하고, 머지 후보 리스트 mergeCandList에 등록한다(도 21의 스텝 S405). 최대 머지 후보수 MaxNumMergeCand를 상한으로 하고, P 슬라이스에서는, 움직임 벡터가 (0, 0)의 값을 갖는 예측 모드가 L0 예측(Pred_L0)의 머지 후보를 추가한다. B 슬라이스에서는, 움직임 벡터가 (0, 0)의 값을 갖는 예측 모드가 쌍예측(Pred_BI)의 머지 후보를 추가한다. 머지 후보를 추가할 때의 참조 인덱스는, 이미 추가한 참조 인덱스와 상이하다.
계속하여, 머지 후보 선택부(347) 및 머지 후보 선택부(447)에서는, 머지 후보 리스트 mergeCandList 내에 등록되어 있는 머지 후보로부터 머지 후보를 선택한다. 부호화측의 머지 후보 선택부(347)에서는, 부호량과 변형량을 산출함으로써 머지 후보를 선택하고, 선택된 머지 후보를 나타내는 머지 인덱스, 머지 후보의 인터 예측 정보를, 인터 예측 모드 판정부(305)를 통하여 움직임 보상 예측부(306)에 공급한다. 한편, 복호측의 머지 후보 선택부(447)에서는, 복호된 머지 인덱스에 기초하여, 머지 후보를 선택하고, 선택된 머지 후보를 움직임 보상 예측부(406)에 공급한다.
<이력 예측 움직임 벡터 후보 리스트의 갱신>
다음으로, 부호화측의 부호화 정보 격납 메모리(111) 및 복호측의 부호화 정보 격납 메모리(205)에 구비하는 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 초기화 방법 및 갱신 방법에 대해서 상세하게 설명한다. 도 26은 이력 예측 움직임 벡터 후보 리스트 초기화·갱신 처리 순서를 설명하는 플로우차트이다.
본 실시 형태에서는, 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 갱신은, 부호화 정보 격납 메모리(111) 및 부호화 정보 격납 메모리(205)에서 실시되는 것으로 한다. 인터 예측부(102) 및 인터 예측부(203) 중에 이력 예측 움직임 벡터 후보 리스트 갱신부를 설치하여 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 갱신을 실시시켜도 좋다.
슬라이스의 선두에서 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 초기 설정을 행하고, 부호화측에서는 예측 방법 결정부(105)에서 통상 예측 움직임 벡터 모드 또는 통상 머지 모드가 선택된 경우에 이력 예측 움직임 벡터 후보 리스트 HmvpCandList를 갱신하고, 복호측에서는, 비트열 복호부(201)에서 복호된 예측 정보가 통상 예측 움직임 벡터 모드 또는 통상 머지 모드인 경우에 이력 예측 움직임 벡터 후보 리스트 HmvpCandList를 갱신한다.
통상 예측 움직임 벡터 모드 또는 통상 머지 모드에서 인터 예측을 행할 때에 이용하는 인터 예측 정보를, 인터 예측 정보 후보 hMvpCand로서 이력 예측 움직임 벡터 후보 리스트 HmvpCandList에 등록한다. 인터 예측 정보 후보 hMvpCand에는, L0의 참조 인덱스 refIdxL0 및 L1의 참조 인덱스 refIdxL1, L0 예측이 행해지는지 아닌지를 나타내는 L0 예측 플래그 predFlagL0 및 L1 예측이 행해지는지 아닌지를 나타내는 L1 예측 플래그 predFlagL1, L0의 움직임 벡터 mvL0, L1의 움직임 벡터 mvL1이 포함된다.
부호화측의 부호화 정보 격납 메모리(111) 및 복호측의 부호화 정보 격납 메모리(205)에 구비하는 이력 예측 움직임 벡터 후보 리스트 HmvpCandList에 등록되어 있는 요소(즉, 인터 예측 정보) 중에, 인터 예측 정보 후보 hMvpCand와 동일한 값의 인터 예측 정보가 존재하는 경우는, 이력 예측 움직임 벡터 후보 리스트 HmvpCandList로부터 그의 요소를 삭제한다. 한편, 인터 예측 정보 후보 hMvpCand와 동일한 값의 인터 예측 정보가 존재하지 않는 경우는, 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 선두의 요소를 삭제하고, 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 최후에, 인터 예측 정보 후보 hMvpCand를 추가한다.
본 발명의 부호화측의 부호화 정보 격납 메모리(111) 및 복호측의 부호화 정보 격납 메모리(205)에 구비하는 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 요소의 수는 6으로 한다.
우선, 슬라이스 단위로의 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 초기화를 행한다. 슬라이스의 선두에서 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 모든 요소에 이력 예측 움직임 벡터 후보를 추가하고, 이력 예측 움직임 벡터 후보 리스트 HmvpCandList에 등록되어 있는 이력 예측 움직임 벡터 후보의 수 NumHmvpCand의 값은 6으로 설정한다(도 26의 스텝 S2101).
여기에서는, 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 초기화를 슬라이스 단위(슬라이스의 최초의 부호화 블록)로 실시한다고 했지만, 픽처 단위, 타일 단위나 트리 블록행 단위로 실시할 수도 있다.
도 38은 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 초기화에 의해 추가되는 이력 예측 움직임 벡터 후보의 일 예를 나타내는 표이다. 슬라이스 타입이 B 슬라이스이고, 참조 픽처의 매수가 4인 경우의 예를 나타낸다. 이력 예측 움직임 벡터 인덱스가 (이력 예측 움직임 벡터 후보의 수 NumHmvpCand-1)에서 0까지, 슬라이스 타입에 따라서 움직임 벡터의 값이 (0, 0)인 인터 예측 정보를 이력 예측 움직임 벡터 후보로서, 이력 예측 움직임 벡터 후보 리스트 HmvpCandList에 추가하여, 이력 예측 움직임 벡터 후보 리스트를 이력 후보로 충전한다. 이 때, 이력 예측 움직임 벡터 인덱스를 (이력 예측 움직임 벡터 후보의 수 NumHmvpCand-1)로부터 개시하고, 참조 인덱스 refIdxLX(X는 0 또는 1)에는 0에서 (참조 픽처의 수 numRefIdx-1)까지 1씩 인크리먼트한 값을 설정한다. 그 후는, 이력 예측 움직임 벡터 후보끼리의 중복을 허가하여, refIdxLX에는 0의 값을 설정한다. 이력 예측 움직임 벡터 후보의 수 NumHmvpCand에 모든 값을 설정하고, 이력 예측 움직임 벡터 후보의 수 NumHmvpCand의 값을 고정값으로 함으로써, 무효한 이력 예측 움직임 벡터 후보를 잃는다. 이와 같이, 예측 움직임 벡터 후보 리스트나 머지 후보 리스트에 추가될 확률이 높은 이력 예측 움직임 벡터 인덱스가 큰 값의 후보로부터, 일반적으로 선택률이 높은 참조 인덱스의 작은 값을 할당함으로써, 부호화 효율을 향상시킬 수 있다.
또한, 슬라이스 단위로 이력 예측 움직임 벡터 후보 리스트를 이력 예측 움직임 벡터 후보로 충전해 둠으로써, 이력 예측 움직임 벡터 후보의 수를 고정값으로서 취급할 수 있기 때문에, 예를 들면 이력 예측 움직임 벡터 후보 도출 처리나 이력 머지 후보 도출 처리를 간이화할 수 있다.
여기에서는, 움직임 벡터의 값을 일반적으로 선택 확률이 높은 (0, 0)으로 했지만, 소정의 값이면 좋다. 예를 들면, (4, 4), (0, 32), (-128, 0) 등의 값으로 하여 차분 움직임 벡터의 부호화 효율을 개선해도 좋고, 소정값을 복수 설정하여 차분 움직임 벡터의 부호화 효율을 개선해도 좋다.
또한, 이력 예측 움직임 벡터 인덱스를 (이력 예측 움직임 벡터 후보의 수 NumHmvpCand-1)로부터 개시하고, 참조 인덱스 refIdxLX(X는 0 또는 1)에는 0에서 (참조 픽처의 수 numRefIdx-1)까지 1씩 인크리먼트한 값을 설정한다고 했지만, 이력 예측 움직임 벡터 인덱스를 0으로부터 개시해도 좋다.
도 39는 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 초기화에 의해 추가되는 이력 예측 움직임 벡터 후보의 다른 일 예를 나타내는 표이다. 슬라이스 타입이 B슬라이스이고, 참조 픽처의 매수가 2인 경우의 예를 나타낸다. 이 예에서는 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 각 요소에 이력 예측 움직임 벡터 후보끼리의 중복이 없도록, 참조 인덱스 또는 움직임 벡터의 값 중 어느 하나가 상이한 인터 예측 정보를 이력 예측 움직임 벡터 후보로서 추가하여, 이력 예측 움직임 벡터 후보 리스트를 충전한다. 이 때, 이력 예측 움직임 벡터 인덱스를 (이력 예측 움직임 벡터 후보의 수 NumHmvpCand-1)로부터 개시하고, 참조 인덱스 refIdxLX(X는 0 또는 1)에는 0에서 (참조 픽처의 수 numRefIdx-1)까지 1씩 인크리먼트한 값을 설정한다. 그 후는, refIdxLX에는 0에서 상이한 값의 움직임 벡터를 이력 예측 움직임 벡터 후보로서 추가한다. 이력 예측 움직임 벡터 후보의 수 NumHmvpCand에 모든 값을 설정하고, 이력 예측 움직임 벡터 후보의 수 NumHmvpCand의 값을 고정값으로 함으로써, 무효한 이력 예측 움직임 벡터 후보를 잃는다.
이와 같이, 슬라이스 단위로 이력 예측 움직임 벡터 후보 리스트를 중복되지 않는 이력 예측 움직임 벡터 후보로 충전해 둠으로써, 추가로, 부호화 블록 단위로 실시하는 후술의 통상 머지 모드 도출부(302)에 있어서의 이력 머지 후보 도출부(345)보다 후의 머지 후보 보충부(346)의 처리를 생략할 수 있어, 처리량을 삭감할 수 있다.
여기에서는, 움직임 벡터의 값을 (0, 0)이나 (1, 0) 등 작은 값으로 했지만, 이력 예측 움직임 벡터 후보끼리의 중복이 발생하지 않으면, 움직임 벡터의 값을 크게 해도 좋다.
또한, 이력 예측 움직임 벡터 인덱스를 (이력 예측 움직임 벡터 후보의 수 NumHmvpCand-1)로부터 개시하고, 참조 인덱스 refIdxLX(X는 0 또는 1)에는 0에서 (참조 픽처의 수 numRefIdx-1)까지 1씩 인크리먼트한 값을 설정한다고 했지만, 이력 예측 움직임 벡터 인덱스를 0으로부터 개시해도 좋다.
도 40은 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 초기화에 의해 추가되는 이력 예측 움직임 벡터 후보의 다른 일 예를 나타내는 표이다.
슬라이스 타입이 B 슬라이스인 경우의 예를 나타낸다. 이 예에서는 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 각 요소에 이력 예측 움직임 벡터 후보끼리의 중복이 없도록, 참조 인덱스가 0이고, 움직임 벡터의 값이 상이한 인터 예측 정보를 이력 예측 움직임 벡터 후보로서 추가하여, 이력 예측 움직임 벡터 후보 리스트를 충전한다. 이 때, 이력 예측 움직임 벡터 인덱스를 (이력 예측 움직임 벡터 후보의 수 NumHmvpCand-1)로부터 개시하고, 참조 인덱스 refIdxLX(X는 0 또는 1)는 0을 설정한다. 이력 예측 움직임 벡터 후보의 수 NumHmvpCand에 모든 값을 설정하고, 이력 예측 움직임 벡터 후보의 수 NumHmvpCand의 값을 고정값으로 함으로써, 무효한 이력 예측 움직임 벡터 후보를 잃는다.
이와 같이, 참조 인덱스를 0으로 함으로써, 추가로, 참조 픽처의 수를 고려하는 일 없이 초기화할 수 있기 때문에 처리를 간이화할 수 있다.
여기에서는, 움직임 벡터의 값을 2의 배수로 했지만, 참조 인덱스가 0이고 이력 예측 움직임 벡터 후보끼리의 중복이 발생하지 않으면, 그 외의 값이라도 좋다.
또한, 이력 예측 움직임 벡터 인덱스를 (이력 예측 움직임 벡터 후보의 수 NumHmvpCand-1)로부터 개시하고, 참조 인덱스 refIdxLX(X는 0 또는 1)에는 0에서 (참조 픽처의 수 numRefIdx-1)까지 1씩 인크리먼트한 값을 설정한다고 했지만, 이력 예측 움직임 벡터 인덱스를 0으로부터 개시해도 좋다.
계속하여, 슬라이스 내의 부호화 블록마다 이하의 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 갱신 처리를 반복하여 행한다(도 26의 스텝 S2102∼S2111).
우선, 부호화 블록 단위로의 초기 설정을 행한다. 동일 후보가 존재할지 아닌지를 나타내는 플래그 identicalCandExist에 FALSE(거짓)의 값을 설정하고, 삭제 대상 인덱스 removeIdx에 0을 설정한다(도 26의 스텝 S2103).
또한, 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 초기화를 슬라이스 단위(슬라이스의 최초의 부호화 블록)로 실시한다고 했지만, 픽처 단위, 타일 단위나 트리 블록행 단위로 실시해도 좋다.
등록 대상의 인터 예측 정보 후보 hMvpCand가 존재할지 아닌지를 판정한다(도 26의 스텝 S2104). 부호화측의 예측 방법 결정부(105)에서 통상 예측 움직임 벡터 모드 또는 통상 머지 모드로 판정된 경우, 또는 복호측의 비트열 복호부(201)에서 통상 예측 움직임 벡터 모드 또는 통상 머지 모드로서 복호된 경우, 그 인터 예측 정보를 등록 대상의 인터 예측 정보 후보 hMvpCand로 한다. 부호화측의 예측 방법 결정부(105)에서 인트라 예측 모드, 서브 블록 예측 움직임 벡터 모드 또는 서브 블록 머지 모드로 판정된 경우, 또는 복호측의 비트열 복호부(201)에서 인트라 예측 모드, 서브 블록 예측 움직임 벡터 모드 또는 서브 블록 머지 모드로서 복호된 경우, 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 갱신 처리를 행하지 않고, 등록 대상의 인터 예측 정보 후보 hMvpCand는 존재하지 않는다. 등록 대상의 인터 예측 정보 후보 hMvpCand가 존재하지 않는 경우는 스텝 S2105∼S2106을 스킵한다(도 26의 스텝 S2104:NO). 등록 대상의 인터 예측 정보 후보 hMvpCand가 존재하는 경우는 스텝 S2105 이하의 처리를 행한다(도 26의 스텝 S2104:YES).
계속하여, 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 각 요소 중에 등록 대상의 인터 예측 정보 후보 hMvpCand와 동일한 값의 요소(인터 예측 정보), 즉 동일한 요소가 존재할지 아닌지를 판정한다(도 26의 스텝 S2105). 도 27은 이 동일 요소 확인 처리 순서의 플로우차트이다. 이력 예측 움직임 벡터 후보의 수 NumHmvpCand의 값이 0인 경우(도 27의 스텝 S2121:NO), 이력 예측 움직임 벡터 후보 리스트 HmvpCandList는 비어 있고, 동일 후보는 존재하지 않기 때문에 도 27의 스텝 S2122∼S2125를 스킵하고, 본 동일 요소 확인 처리 순서를 종료한다. 이력 예측 움직임 벡터 후보의 수 NumHmvpCand의 값이 0보다 큰 경우(도 27의 스텝 S2121의 YES), 이력 예측 움직임 벡터 인덱스 hMvpIdx가 0에서 NumHmvpCand-1까지, 스텝 S2123의 처리를 반복한다(도 27의 스텝 S2122∼S2125). 우선, 이력 예측 움직임 벡터 후보 리스트의 0으로부터 세어 hMvpIdx번째의 요소 HmvpCandList[hMvpIdx]가 인터 예측 정보 후보 hMvpCand와 동일한지 아닌지를 비교한다(도 27의 스텝 S2123). 동일한 경우(도 27의 스텝 S2123:YES), 동일 후보가 존재할지 아닌지를 나타내는 플래그 identicalCandExist에 TRUE(참)의 값을 설정하고, 삭제 대상의 요소의 위치를 나타내는 삭제 대상 인덱스 removeIdx에 현재의 이력 예측 움직임 벡터 인덱스 hMvpIdx의 값을 설정하고, 본 동일 요소 확인 처리를 종료한다. 동일하지 않은 경우(도 27의 스텝 S2123:NO), hMvpIdx를 1인크리먼트하고, 이력 예측 움직임 벡터 인덱스 hMvpIdx가 NumHmvpCand-1 이하이면, 스텝 S2123 이후의 처리를 행한다.
여기에서, 이력 예측 움직임 벡터 후보 리스트를 이력 예측 움직임 벡터 후보로 충전해 둠으로써, 도 27의 스텝 S2121은 생략할 수 있다.
다시 도 26의 플로우차트로 되돌아가, 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 요소의 시프트 및 추가 처리를 행한다(도 26의 스텝 S2106). 도 28은 도 26의 스텝 S2106의 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 요소 시프트/추가 처리 순서의 플로우차트이다. 우선, 이력 예측 움직임 벡터 후보 리스트 HmvpCandList에 격납되어 있는 요소를 제거하고 나서 새로운 요소를 추가하거나, 요소를 제거하지 않고 새로운 요소를 추가할지를 판정한다. 구체적으로는 동일 후보가 존재할지 아닌지를 나타내는 플래그 identicalCandExist에 TRUE(참) 또는 NumHmvpCand가 6인지 아닌지를 비교한다(도 28의 스텝 S2141). 동일 후보가 존재할지 아닌지를 나타내는 플래그 identicalCandExist에 TRUE(참) 또는 현재의 후보수 NumHmvpCand가 6의 어느 하나의 조건을 충족하는 경우(도 28의 스텝 S2141:YES), 이력 예측 움직임 벡터 후보 리스트 HmvpCandList에 격납되어 있는 요소를 제거하고 나서 새로운 요소를 추가한다. 인덱스 i의 초기값을 removeIdx+1의 값으로 설정한다. 이 초기값에서 NumHmvpCand까지, 스텝 S2143의 요소 시프트 처리를 반복한다.(도 28의 스텝 S2142∼S2144). HmvpCandList[i-1]에 HmvpCandList[i]의 요소를 카피함으로써 요소를 전방에 시프트하고(도 28의 스텝 S2143), i를 1인크리먼트한다(도 28의 스텝 S2142∼S2144). 계속하여, 이력 예측 움직임 벡터 후보 리스트의 최후에 상당하는 0으로부터 세어 (NumHmvpCand-1)번째 HmvpCandList[NumHmvpCand-1]에 인터 예측 정보 후보 hMvpCand를 추가하고(도 28의 스텝 S2145), 본 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 요소 시프트·추가 처리를 종료한다. 한편, 동일 후보가 존재할지 아닌지를 나타내는 플래그 identicalCandExist에 TRUE(참) 및 NumHmvpCand가 6의 어느 조건도 충족하지 않는 경우(도 28의 스텝 S2141:NO), 이력 예측 움직임 벡터 후보 리스트 HmvpCandList에 격납되어 있는 요소를 제거하지 않고, 이력 예측 움직임 벡터 후보 리스트의 최후에 인터 예측 정보 후보 hMvpCand를 추가한다(도 28의 스텝 S2146). 여기에서, 이력 예측 움직임 벡터 후보 리스트의 최후란, 0으로부터 세어 NumHmvpCand번째의 HmvpCandList[NumHmvpCand]이다. 또한, NumHmvpCand를 1인크리먼트하고, 본 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 요소 시프트 및 추가 처리를 종료한다.
여기에서는, 이력 예측 움직임 벡터 후보 리스트는 예측 움직임 벡터 모드와 머지 모드의 양쪽에 적용하는 것으로 하지만, 어느 한쪽에만 적용해도 좋다.
이상과 같이, 이력 예측 움직임 벡터 후보 리스트의 갱신에 있어서는, 이력 예측 움직임 벡터 후보 리스트에 격납되어 있는 동일한 요소를 제외하고 나서 새로운 요소를 추가하고 있기 때문에, 이력 예측 움직임 벡터 후보 리스트에 중복되는 요소는 존재하지 않고, 이력 예측 움직임 벡터 후보 리스트는 모두 상이한 요소에 의해 구성된다.
도 31은 이력 예측 움직임 벡터 후보 리스트의 갱신 처리의 일 예를 설명하는 도면이다. 6개의 요소(인터 예측 정보)를 등록 완료 이력 예측 움직임 벡터 후보 리스트 HmvpCandList에 새로운 요소를 추가하는 경우, 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 전방의 요소로부터 순서대로 새로운 인터 예측 정보와 비교하여(도 31a), 새로운 요소가 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 선두로부터 3번째의 요소 HMVP2와 동일한 값이면, 이력 예측 움직임 벡터 후보 리스트 HmvpCandList로부터 요소 HMVP2를 삭제하여 후방의 요소 HMVP3∼HMVP5를 전방에 1개씩 시프트(카피)하고, 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 마지막에 새로운 요소를 추가하여(도 31b), 이력 예측 움직임 벡터 후보 리스트 HmvpCandList의 갱신을 완료한다(도 31c).
<이력 예측 움직임 벡터 후보 도출 처리>
다음으로, 부호화측의 통상 예측 움직임 벡터 모드 도출부(301)의 이력 예측 움직임 벡터 후보 도출부(323), 복호측의 통상 예측 움직임 벡터 모드 도출부(401)의 이력 예측 움직임 벡터 후보 도출부(423)에서 공통의 처리인 도 20의 스텝 S304의 처리 순서인 이력 예측 움직임 벡터 후보 리스트 HmvpCandList로부터의 이력 예측 움직임 벡터 후보의 도출 방법에 대해서 상세하게 설명한다. 도 29는 이력 예측 움직임 벡터 후보 도출 처리 순서를 설명하는 플로우차트이다.
현재의 예측 움직임 벡터 후보의 수 numCurrMvpCand가 예측 움직임 벡터 후보 리스트 mvpListLX의 최대 요소수(여기에서는 2로 함) 이상 또는 이력 예측 움직임 벡터 후보의 수가 NumHmvpCand의 값이 0인 경우(도 29의 스텝 S2201의 NO), 도 29의 스텝 S2202로부터 S2208의 처리를 생략하고, 이력 예측 움직임 벡터 후보 도출 처리 시퀀스를 종료한다. 현재의 예측 움직임 벡터 후보의 수 numCurrMvpCand가 예측 움직임 벡터 후보 리스트 mvpListLX의 최대 요소수인 2보다 작은 경우, 또한 이력 예측 움직임 벡터 후보의 수 NumHmvpCand의 값이 0보다 큰 경우(도 29의 스텝 S2201의 YES), 도 29의 스텝 S2202로부터 S2208의 처리를 행한다.
계속하여, 인덱스 i가 1에서, 4와 이력 예측 움직임 벡터 후보의 수 numCheckedHMVPCand의 어느 작은 값까지, 도 29의 스텝 S2203으로부터 S2207의 처리를 반복한다(도 29의 스텝 S2202∼S2208). 현재의 예측 움직임 벡터 후보의 수 numCurrMvpCand가 예측 움직임 벡터 후보 리스트 mvpListLX의 최대 요소수인 2 이상인 경우(도 29의 스텝 S2203:NO), 도 29의 스텝 S2204로부터 S2208의 처리를 생략하고, 본 이력 예측 움직임 벡터 후보 도출 처리 순서를 종료한다. 현재의 예측 움직임 벡터 후보의 수 numCurrMvpCand가 예측 움직임 벡터 후보 리스트 mvpListLX의 최대 요소수인 2보다 작은 경우(도 29의 스텝 S2203:YES), 도 29의 스텝 S2204 이후의 처리를 행한다.
계속하여, 스텝 S2205와 S2206의 처리를 Y가 0과 1(L0과 L1)에 대해서 각각 행한다(도 29의 스텝 S2204∼S2207). 현재의 예측 움직임 벡터 후보의 수 numCurrMvpCand가 예측 움직임 벡터 후보 리스트 mvpListLX의 최대 요소수인 2 이상인 경우(도 29의 스텝 S2205:NO), 도 29의 스텝 S2206으로부터 S2209의 처리를 생략하고, 본 이력 예측 움직임 벡터 후보 도출 처리 순서를 종료한다. 현재의 예측 움직임 벡터 후보의 수 numCurrMvpCand이 예측 움직임 벡터 후보 리스트 mvpListLX의 최대 요소수인 2보다 작은 경우(도 29의 스텝 S2205:YES), 도 29의 스텝 S2206 이후의 처리를 행한다.
계속하여, LY 예측의 예측 움직임 벡터 후보 리스트의 0으로부터 세어 numCurrMvpCand번째의 요소 mvpListLY[numCurrMvpCand]에 이력 예측 움직임 벡터 후보 HmvpCandList[NumHmvpCand-i]의 LY의 움직임 벡터를 추가하고, 현재의 예측 움직임 벡터 후보의 수 numCurrMvpCand를 1인크리먼트한다(도 29의 스텝 S2206).
이상의 도 29의 스텝 S2205로부터 S2206의 처리를 L0과 L1에서 쌍방 모두에 행한다(도 29의 스텝 S2204∼S2207). 인덱스 i를 1인크리먼트하고, 인덱스 i가 4와 이력 예측 움직임 벡터 후보의 수 NumHmvpCand의 어느 작은 값 이하인 경우, 다시 스텝 S2203 이후의 처리를 행한다(도 29의 스텝 S2202∼S2208).
본 실시 형태에 있어서는, 전술한 바와 같이, 이력 예측 움직임 벡터 후보 도출 처리에 있어서는, 이력 예측 움직임 벡터 후보 리스트의 요소의 움직임 벡터와 예측 움직임 벡터 후보 리스트의 요소의 움직임 벡터의 비교를 행하는 일 없이, 이력 예측 움직임 벡터 후보 리스트의 요소의 움직임 벡터를 예측 움직임 벡터 후보 리스트로 추가한다.
이러한 구성을 취함으로써, 이력 예측 움직임 벡터 후보의 수가 2 이상이면, 이력 예측 움직임 벡터 후보 리스트 후보 도출 처리가 완료된 후, 예측 움직임 벡터 후보 리스트가 최대 요소수에 도달하는 것을 보증할 수 있다. 또한, 움직임 벡터가 동일한지 아닌지를 검사하기 위한 처리량과 회로 규모를 삭감할 수 있다.
통상 예측 움직임 벡터 모드는, 예측 움직임 벡터 후보 리스트에 포함되는 예측 움직임 벡터 후보와 차분 벡터에 의해, 처리 대상 블록의 움직임 정보를 결정하는 모드이고, 차분 벡터에 의해 적절한 움직임 벡터를 결정할 수 있는 여지가 있기 때문에, 어쩔 수 없이 예측 움직임 벡터 후보 리스트의 요소가 중복되는 바와 같은 경우라도, 선택지의 감소에 의한 부호화 효율의 저하를 최소한으로 머무르게 할 수 있다.
또한, 통상 예측 움직임 벡터 모드는, 예측 움직임 벡터 후보 리스트를 L0 예측과 L1 예측에서 별개로 처리한다. 그 때문에, L0 예측의 예측 움직임 벡터 후보 리스트에서는 요소가 중복되는 바와 같은 경우에서도, L1 예측의 예측 움직임 벡터 후보 리스트에서는 요소가 중복되지 않는 경우도 있다.
또한, 통상 예측 움직임 벡터 모드는, 예측 움직임 벡터 후보와 참조 인덱스를 별개로 처리한다. 그 때문에, 예측 움직임 벡터 후보 리스트에서는 요소가 중복되는 바와 같은 경우에서도, 참조 인덱스에는 영향을 미치지 않는다.
또한, 예측 움직임 벡터 후보 리스트에는 최대에서도 2개의 요소밖에 포함되지 않기 때문에, 예측 움직임 벡터 후보 리스트의 요소가 중복되는 바와 같은 경우라도, 감소하는 선택지의 수는 1뿐이다.
또한, 이력 예측 움직임 벡터 후보 리스트에는 동일한 요소는 포함되지 않기 때문에, 이력 예측 움직임 벡터 후보 리스트의 요소와 예측 움직임 벡터 후보 리스트의 요소의 비교가 실질적으로 의미를 갖는 것은, 공간 예측 움직임 벡터 후보 도출부(421)와 시간 예측 움직임 벡터 후보 도출부(422)에서 예측 움직임 벡터 후보 리스트의 요소가 1개밖에 생성되지 않았던 경우에 한정되기 때문에 빈도가 매우 적다. 또한, 일반적으로 통상 예측 움직임 벡터 모드가 선택되는 것은, 인접하는 블록과의 움직임이 유사하지 않는 경우이고, 이력 예측 움직임 벡터 후보 리스트의 요소는 예측 움직임 벡터 후보 리스트에 이미 추가되어 있는 요소와 중복될 가능성은 낮다.
이상과 같은 이유로부터, 예측 움직임 벡터 후보 리스트의 요소가 중복되는 경우에서도, 선택지의 감소에 의한 부호화 효율의 저하를 억제하면서, 이력 예측 움직임 벡터 후보의 움직임 벡터와 예측 움직임 벡터 후보의 움직임 벡터의 비교 처리를 삭감할 수 있다.
또한, 이력 예측 움직임 벡터 후보 리스트를 중복되지 않는 이력 예측 움직임 벡터 후보로 충전해 두고, 이력 예측 움직임 벡터 후보 리스트의 요소와 예측 움직임 벡터 후보 리스트의 요소의 비교를 행하는 일 없이, 이력 예측 움직임 벡터 후보 리스트의 요소를 예측 움직임 벡터 후보 리스트로 추가함으로써, 통상 예측 움직임 벡터 모드 도출부(301)에 있어서의 이력 예측 움직임 벡터 후보 도출부(323)보다 후의 예측 움직임 벡터 보충부(325)의 처리를 생략할 수 있다.
<이력 머지 후보 도출 처리>
다음으로, 부호화측의 통상 머지 모드 도출부(302)의 이력 머지 후보 도출부(345), 복호측의 통상 머지 모드 도출부(402)의 이력 머지 후보 도출부(445)에서 공통의 처리인 도 21의 스텝 S404의 처리 순서인 이력 머지 후보 리스트 HmvpCandList로부터의 이력 머지 후보의 도출 방법에 대해서 상세하게 설명한다. 도 30은 이력 머지 후보 도출 처리 순서를 설명하는 플로우차트이다.
우선, 초기화 처리를 행한다(도 30의 스텝 S2301). isPruned[i]의 0으로부터 (numCurrMergeCand-1)번째의 각각의 요소에 FALSE의 값을 설정하고, 변수 numOrigMergeCand에 현재의 머지 후보 리스트에 등록되어 있는 요소의 수 numCurrMergeCand를 설정한다.
계속하여, 인덱스 hMvpIdx의 초기값을 1에 설정하고, 이 초기값에서 NumHmvpCand까지, 도 30의 스텝 S2303에서 스텝 S2310까지의 추가 처리를 반복한다(도 30의 스텝 S2302∼S2311). 현재의 머지 후보 리스트에 등록되어 있는 요소의 수 numCurrMergeCand가 (최대 머지 후보수 MaxNumMergeCand-1) 이하가 아니면, 머지 후보 리스트의 모든 요소에 머지 후보가 추가되었기 때문에, 본 이력 머지 후보 도출 처리를 종료한다(도 30의 스텝 S2303의 NO). 현재의 머지 후보 리스트에 등록되어 있는 요소의 수 numCurrMergeCand가 (최대 머지 후보수 MaxNumMergeCand-1) 이하인 경우, 스텝 S2304 이후의 처리를 행한다. sameMotion에 FALSE(거짓)의 값을 설정한다(도 30의 스텝 S2304). 계속하여, 인덱스 i의 초기값을 0으로 설정하고, 이 초기값에서 numOrigMergeCand-1까지 도 30의 스텝 S2306, S2307의 처리를 행한다(도 30의 S2305∼S2308). 이력 움직임 벡터 예측 후보 리스트의 0으로부터 세어 (NumHmvpCand-hMvpIdx)번째의 요소 HmvpCandList[NumHmvpCand-hMvpIdx]가 머지 후보 리스트의 0으로부터 세어 i번째의 요소 mergeCandList[i]와 동일한 값인지 아닌지를 비교한다(도 30의 스텝 S2306).
머지 후보의 동일한 값이란 머지 후보가 갖는 모든 구성 요소(인터 예측 모드, 참조 인덱스, 움직임 벡터)의 값이 동일한 경우에 머지 후보가 동일한 값으로 한다. 머지 후보가 동일한 값, 또한 isPruned[i]가 FALSE인 경우(도 30의 스텝 S2306:YES), sameMotion 및 isPruned[i] 함께 TRUE(참)를 설정한다(도 30의 스텝 S2307). 동일한 값이 아닌 경우(도 30의 스텝 S2306:NO), 스텝 S2307의 처리를 스킵한다. 도 30의 스텝 S2305에서 스텝 S2308까지의 반복 처리가 완료하면 sameMotion가 FALSE(거짓)인지 아닌지를 비교하고(도 30의 스텝 S2309), sameMotion가 FALSE(거짓)인 경우(도 30의 스텝 S2309:YES), 즉 이력 예측 움직임 벡터 후보 리스트의 0으로부터 세어 (NumHmvpCand-hMvpIdx)번째의 요소 HmvpCandList[NumHmvpCand-hMvpIdx]는 mergeCandList에 존재하지 않기 때문에, 머지 후보 리스트의 numCurrMergeCand번째의 mergeCandList[numCurrMergeCand]에 이력 예측 움직임 벡터 후보 리스트의 0으로부터 세어 (NumHmvpCand-hMvpIdx)번째의 요소 HmvpCandList[NumHmvpCand-hMvpIdx]를 추가하고, numCurrMergeCand를 1인크리먼트한다(도 30의 스텝 S2310). 인덱스 hMvpIdx를 1인크리먼트하고(도 30의 스텝 S2302), 도 30의 스텝 S2302∼S2311의 반복 처리를 행한다.
이력 예측 움직임 벡터 후보 리스트의 모든 요소의 확인이 완료하거나, 머지 후보 리스트의 모든 요소에 머지 후보가 추가되면, 본 이력 머지 후보의 도출 처리를 완료한다.
본 실시 형태에 있어서는, 전술과 같이, 이력 머지 후보 도출 처리에 있어서는, 이력 예측 움직임 벡터 후보 리스트의 요소와 현재의 머지 후보 리스트의 요소의 비교를 행하여, 현재의 머지 후보 리스트에 존재하지 않는 이력 예측 움직임 벡터 후보 리스트의 요소만을 머지 후보 리스트에 추가한다.
통상 머지 모드는, 통상 예측 움직임 벡터 모드와 달리, 차분 벡터를 이용하지 않고 처리 대상 블록의 움직임 정보를 직접 결정하는 모드이기 때문에, 현재의 머지 후보 리스트의 요소와 중복되는 이력 머지 후보 리스트의 요소의 추가를 금지함으로써, 부호화 효율을 향상시킬 수 있다. 여기에서는, 이력 예측 움직임 벡터 후보 리스트의 요소와 현재의 머지 후보 리스트의 모든 후보끼리를 비교했다고 했지만, 적어도 이력 예측 움직임 벡터 후보 리스트의 요소와 현재의 머지 후보 리스트의 요소를 비교하여 부호화 효율을 향상시킬 수 있으면, 이에 한정되지 않는다.
예를 들면, 비교하는 이력 예측 움직임 벡터 후보 리스트의 요소의 수를 1이나 2 등으로 제한해도 좋다. 또한, 비교하는 현재의 머지 후보 리스트의 요소의 수를 1이나 2로 한정해도 좋다.
또한, 통상 머지 모드에서는, 머지 후보 리스트에는 L0 예측의 움직임 벡터와 L1 예측의 움직임 벡터의 양쪽이 포함된다. 그 때문에, 통상 예측 움직임 벡터 모드와 같이, L0 예측의 예측 움직임 벡터와 L1 예측의 예측 움직임 벡터를 별개로 조정할 수 없다.
또한, 통상 머지 모드는, 머지 후보 리스트에는 L0 예측의 참조 인덱스와 L1 예측의 참조 인덱스의 양쪽이 포함된다. 그 때문에, 통상 예측 움직임 벡터 모드와 같이, L0 예측의 참조 인덱스와 L1 예측의 참조 인덱스를 별개로 조정할 수 없다.
또한, 머지 후보 리스트에는 예측 움직임 벡터 후보 리스트보다도 많은 최대로 6개의 요소가 포함되기 때문에, 머지 후보 리스트 내에 중복되는 요소를 추가한 경우, 머지 후보 리스트 내에 중복되는 요소의 수가 증가하여, 머지 후보 리스트를 효율적으로 이용할 수 없다.
또한, 머지 후보 리스트에 추가되는 이력 예측 움직임 벡터 후보 리스트의 요소는, 이력 예측 움직임 벡터 후보 리스트의 요소 중에서 가장 후에 추가된 요소이다. 그 때문에, 머지 후보 리스트에 추가되는 이력 예측 움직임 벡터 후보 리스트의 요소는, 처리 대상의 부호화 블록과 공간적으로 가장 가까운 움직임 정보가 된다. 일반적으로, 통상 머지 모드가 선택되는 것은, 인접하는 블록과의 움직임이 유사하고 있는 경우이고, 이력 예측 움직임 벡터 후보 리스트의 요소는 머지 후보 리스트에 이미 추가되어 있는 요소와 중복될 가능성이 높아진다.
이상과 같은 과제에 대처하기 위해, 머지 후보 리스트의 요소와 중복되는 이력 예측 움직임 벡터 후보 리스트의 요소의 추가를 금지하여, 유효한 선택 요소를 증가시킴으로써, 부호화 효율을 향상시킬 수 있다.
또한, 머지 후보 리스트에 포함시킬 수 있는 요소의 최대수인 6을 예측 움직임 벡터 후보 리스트에 포함시킬 수 있는 요소의 최대수인 2보다 크게 함으로써, 통상 머지 모드의 선택 확률을 높임으로써, 예측 움직임 벡터 후보 리스트의 요소의 중복에 의한 부호화 효율의 저하를 억제하면서, 이력 예측 움직임 벡터 후보의 움직임 벡터와 예측 움직임 벡터 후보의 움직임 벡터의 비교 처리를 삭감할 수 있다.
또한, 공간 머지 후보에 더하여, 시간 머지 후보, 이력 머지 후보, 평균 머지 후보, 제로 머지 후보 등의 다양한 머지 후보를 포함시켜, 통상 머지 모드의 선택 확률을 높임으로써, 예측 움직임 벡터 후보 리스트의 요소의 중복에 의한 부호화 효율의 저하를 억제하면서, 이력 예측 움직임 벡터 후보의 움직임 벡터와 예측 움직임 벡터 후보의 움직임 벡터의 비교 처리를 삭감할 수 있다.
<움직임 보상 예측 처리>
움직임 보상 예측부(306)는, 부호화에 있어서 현재 예측 처리의 대상이 되어 있는 블록의 위치 및 사이즈를 취득한다. 또한, 움직임 보상 예측부(306)는, 인터 예측 정보를 인터 예측 모드 판정부(305)로부터 취득한다. 취득한 인터 예측 정보로부터 참조 인덱스 및 움직임 벡터를 도출하고, 복호 화상 메모리(104) 내의 참조 인덱스에서 특정되는 참조 픽처를, 움직임 벡터의 분만큼 예측 블록의 화상 신호와 동일 위치에서 이동시킨 위치의 화상 신호를 취득한 후에 예측 신호를 생성한다.
인터 예측에 있어서의 인터 예측 모드가 L0 예측이나 L1 예측과 같은, 단일의 참조 픽처로부터의 예측인 경우에는, 1개의 참조 픽처로부터 취득한 예측 신호를 움직임 보상 예측 신호로 하고, 인터 예측 모드가 BI 예측과 같은, 예측 모드가 2개의 참조 픽처로부터의 예측인 경우에는, 2개의 참조 픽처로부터 취득한 예측 신호를 가중치부여 평균한 것을 움직임 보상 예측 신호로 하고, 움직임 보상 예측 신호를 예측 방법 결정부(105)에 공급한다. 여기에서는 쌍예측의 가중치 부여 평균의 비율을 1:1로 하지만, 다른 비율을 이용하여 가중치 부여 평균을 행해도 좋다. 예를 들면, 예측 대상으로 되어 있는 픽처와 참조 픽처의 픽처 간격이 가까운 것일수록 가중치 부여의 비율이 커지도록 해도 좋다. 또한, 가중치 부여 비율의 산출을 픽처 간격의 조합과 가중치 부여 비율의 대응표를 이용하여 행하도록 해도 좋다.
움직임 보상 예측부(406)는, 부호화측의 움직임 보상 예측부(306)와 동일한 기능을 갖는다. 움직임 보상 예측부(406)는, 인터 예측 정보를, 통상 예측 움직임 벡터 모드 도출부(401), 통상 머지 모드 도출부(402), 서브 블록 예측 움직임 벡터 모드 도출부(403), 서브 블록 머지 모드 도출부(404)로부터, 스위치(408)를 통하여 취득한다. 움직임 보상 예측부(406)는, 얻어진 움직임 보상 예측 신호를, 복호 화상 신호 중첩부(207)에 공급한다.
<인터 예측 모드에 대해서>
단일의 참조 픽처로부터의 예측을 행하는 처리를 단예측이라고 정의하고, 단예측의 경우는 L0 예측 또는 L1 예측이라고 하는, 참조 리스트 L0, L1에 등록된 2개의 참조 픽처의 어느 한쪽을 이용한 예측을 행한다.
도 32는 단예측으로서 L0의 참조 픽처(RefL0Pic)가 처리 대상 픽처(CurPic)보다 전의 시각에 있는 경우를 나타내고 있다. 도 33은 단예측으로서 L0 예측의 참조 픽처가 처리 대상 픽처보다 후의 시각에 있는 경우를 나타내고 있다. 마찬가지로, 도 32 및 도 33의 L0 예측의 참조 픽처를 L1 예측의 참조 픽처(RefL1Pic)로 치환하여 단예측을 행할 수도 있다.
2개의 참조 픽처로부터의 예측을 행하는 처리를 쌍예측이라고 정의하고, 쌍예측의 경우는 L0 예측과 L1 예측의 쌍방을 이용하여 BI 예측이라고 표현한다. 도 34는 쌍예측으로서 L0 예측의 참조 픽처가 처리 대상 픽처보다 전의 시각에 있고, L1 예측의 참조 픽처가 처리 대상 픽처보다 후의 시각에 있는 경우를 나타내고 있다. 도 35는 쌍예측으로서 L0 예측의 참조 픽처와 L1 예측의 참조 픽처가 처리 대상 픽처보다 전의 시각에 있는 경우를 나타내고 있다. 도 36은 쌍예측으로서 L0 예측의 참조 픽처와 L1 예측의 참조 픽처가 처리 대상 픽처보다 후의 시각에 있는 경우를 나타내고 있다.
이와 같이, L0/L1의 예측 종별과 시간의 관계는, L0이 과거 방향, L1이 미래 방향으로는 한정되지 않고 이용하는 것이 가능하다. 또한 쌍예측의 경우에, 동일한 참조 픽처를 이용하여 L0 예측 및 L1 예측의 각각을 행해도 좋다. 또한, 움직임 보상 예측을 단예측으로 행할지 쌍예측으로 행할지의 판단은, 예를 들면 L0 예측을 이용할지 아닌지 및 L1 예측을 이용할지 아닌지를 나타내는 정보(예를 들면, 플래그)에 기초하여 판단된다.
<참조 인덱스에 대해서>
본 발명의 실시 형태에서는, 움직임 보상 예측의 정밀도 향상을 위해, 움직임 보상 예측에 있어서 복수의 참조 픽처 중에서 최적의 참조 픽처를 선택하는 것을 가능하게 한다. 그 때문에, 움직임 보상 예측에서 이용한 참조 픽처를 참조 인덱스로서 이용함과 함께, 참조 인덱스를 차분 움직임 벡터와 함께 비트 스트림 중에 부호화한다.
<통상 예측 움직임 벡터 모드에 기초하는 움직임 보상 처리>
움직임 보상 예측부(306)는, 도 16의 부호화측에 있어서의 인터 예측부(102)에서도 나타나는 바와 같이, 인터 예측 모드 판정부(305)에 있어서, 통상 예측 움직임 벡터 모드 도출부(301)에 의한 인터 예측 정보가 선택된 경우에는, 이 인터 예측 정보를 인터 예측 모드 판정부(305)로부터 취득하고, 현재 처리 대상이 되어 있는 블록의 인터 예측 모드, 참조 인덱스, 움직임 벡터를 도출하여, 움직임 보상 예측 신호를 생성한다. 생성된 움직임 보상 예측 신호는, 예측 방법 결정부(105)에 공급된다.
마찬가지로, 움직임 보상 예측부(406)는, 도 22의 복호측에 있어서의 인터 예측부(203)에서도 나타나는 바와 같이, 복호의 과정에서 스위치(408)가 통상 예측 움직임 벡터 모드 도출부(401)에 접속된 경우에는, 통상 예측 움직임 벡터 모드 도출부(401)에 의한 인터 예측 정보를 취득하고, 현재 처리 대상이 되어 있는 블록의 인터 예측 모드, 참조 인덱스, 움직임 벡터를 도출하여, 움직임 보상 예측 신호를 생성한다. 생성된 움직임 보상 예측 신호는, 복호 화상 신호 중첩부(207)에 공급된다.
<통상 머지 모드에 기초하는 움직임 보상 처리>
움직임 보상 예측부(306)는, 도 16의 부호화측에 있어서의 인터 예측부(102)에도 나타나는 바와 같이, 인터 예측 모드 판정부(305)에 있어서, 통상 머지 모드 도출부(302)에 의한 인터 예측 정보가 선택된 경우에는, 이 인터 예측 정보를 인터 예측 모드 판정부(305)로부터 취득하고, 현재 처리 대상이 되어 있는 블록의 인터 예측 모드, 참조 인덱스, 움직임 벡터를 도출하고, 움직임 보상 예측 신호를 생성한다. 생성된 움직임 보상 예측 신호는, 예측 방법 결정부(105)에 공급된다.
마찬가지로, 움직임 보상 예측부(406)는, 도 22의 복호측에 있어서의 인터 예측부(203)에도 나타나는 바와 같이, 복호의 과정에서 스위치(408)가 통상 머지 모드 도출부(402)에 접속된 경우에는, 통상 머지 모드 도출부(402)에 의한 인터 예측 정보를 취득하고, 현재 처리 대상이 되어 있는 블록의 인터 예측 모드, 참조 인덱스, 움직임 벡터를 도출하여, 움직임 보상 예측 신호를 생성한다. 생성된 움직임 보상 예측 신호는, 복호 화상 신호 중첩부(207)에 공급된다.
<서브 블록 예측 움직임 벡터 모드에 기초하는 움직임 보상 처리>
움직임 보상 예측부(306)는, 도 16의 부호화측에 있어서의 인터 예측부(102)에도 나타나는 바와 같이, 인터 예측 모드 판정부(305)에 있어서, 서브 블록 예측 움직임 벡터 모드 도출부(303)에 의한 인터 예측 정보가 선택된 경우에는, 이 인터 예측 정보를 인터 예측 모드 판정부(305)로부터 취득하고, 현재 처리 대상이 되어 있는 블록의 인터 예측 모드, 참조 인덱스, 움직임 벡터를 도출하여, 움직임 보상 예측 신호를 생성한다. 생성된 움직임 보상 예측 신호는, 예측 방법 결정부(105)에 공급된다.
마찬가지로, 움직임 보상 예측부(406)는, 도 22의 복호측에 있어서의 인터 예측부(203)에도 나타나는 바와 같이, 복호의 과정에서 스위치(408)가 서브 블록 예측 움직임 벡터 모드 도출부(403)에 접속된 경우에는, 서브 블록 예측 움직임 벡터 모드 도출부(403)에 의한 인터 예측 정보를 취득하고, 현재 처리 대상이 되어 있는 블록의 인터 예측 모드, 참조 인덱스, 움직임 벡터를 도출하여, 움직임 보상 예측 신호를 생성한다. 생성된 움직임 보상 예측 신호는, 복호 화상 신호 중첩부(207)에 공급된다.
<서브 블록 머지 모드에 기초하는 움직임 보상 처리>
움직임 보상 예측부(306)는, 도 16의 부호화측에 있어서의 인터 예측부(102)에도 나타나는 바와 같이, 인터 예측 모드 판정부(305)에 있어서, 서브 블록 머지 모드 도출부(304)에 의한 인터 예측 정보가 선택된 경우에는, 이 인터 예측 정보를 인터 예측 모드 판정부(305)로부터 취득하고, 현재 처리 대상이 되어 있는 블록의 인터 예측 모드, 참조 인덱스, 움직임 벡터를 도출하여, 움직임 보상 예측 신호를 생성한다. 생성된 움직임 보상 예측 신호는, 예측 방법 결정부(105)에 공급된다.
마찬가지로, 움직임 보상 예측부(406)는, 도 22의 복호측에 있어서의 인터 예측부(203)에도 나타나는 바와 같이, 복호의 과정에서 스위치(408)가 서브 블록 머지 모드 도출부(404)에 접속된 경우에는, 서브 블록 머지 모드 도출부(404)에 의한 인터 예측 정보를 취득하고, 현재 처리 대상이 되어 있는 블록의 인터 예측 모드, 참조 인덱스, 움직임 벡터를 도출하여, 움직임 보상 예측 신호를 생성한다. 생성된 움직임 보상 예측 신호는, 복호 화상 신호 중첩부(207)에 공급된다.
<아핀 변환 예측에 기초하는 움직임 보상 처리>
통상 예측 움직임 벡터 모드 및, 통상 머지 모드에서는, 이하의 플래그에 기초하여 아핀 모델에 의한 움직임 보상을 이용할 수 있다. 이하의 플래그는, 부호화 처리에 있어서 인터 예측 모드 판정부(305)에 의해 결정되는 인터 예측의 조건에 기초하여 이하의 플래그에 반영되고, 비트 스트림 중에 부호화된다. 복호 처리에 있어서는, 비트 스트림 중의 이하의 플래그에 기초하여 아핀 모델에 의한 움직임 보상을 행할지 아닌지를 특정한다.
sps_affine_enabled_flag는, 인터 예측에 있어서, 아핀 모델에 의한 움직임 보상을 이용할 수 있는지 아닌지를 나타낸다. sps_affine_enabled_flag가 0이면, 시퀀스 단위로 아핀 모델에 의한 움직임 보상이 아니도록 억제된다. 또한, inter_affine_flag와 cu_affine_type_flag는, 부호화 비디오 시퀀스의 CU(부호화 블록) 신택스에 있어서 전송되지 않는다. sps_affine_enabled_flag가 1이면, 부호화 비디오 시퀀스에 있어서 아핀 모델에 의한 움직임 보상을 이용할 수 있다.
sps_affine_type_flag는, 인터 예측에 있어서, 6 파라미터 아핀 모델에 의한 움직임 보상을 이용할 수 있는지 아닌지를 나타낸다. sps_affine_type_flag가 0이면, 6 파라미터 아핀 모델에 의한 움직임 보상이 아니도록 억제된다. 또한, cu_affine_type_flag는, 부호화 비디오 시퀀스의 CU 신택스에 있어서 전송되지 않는다. sps_affine_type_flag가 1이면, 부호화 비디오 시퀀스에 있어서 6 파라미터 아핀 모델에 의한 움직임 보상을 이용할 수 있다. sps_affine_type_flag가 존재하지 않는 경우에는, 0인 것으로 한다.
P 또는 B 슬라이스를 복호하고 있는 경우, 현재 처리 대상이 되어 있는 CU에 있어서, inter_affine_flag가 1이면, 현재 처리 대상이 되어 있는 CU의 움직임 보상 예측 신호를 생성하기 위해, 아핀 모델에 의한 움직임 보상이 이용된다. inter_affine_flag가 0이면, 현재 처리 대상이 되어 있는 CU에 아핀 모델은 이용되지 않는다. inter_affine_flag가 존재하지 않는 경우에는, 0인 것으로 한다.
P 또는 B 슬라이스를 복호하고 있는 경우, 현재 처리 대상이 되어 있는 CU에 있어서, cu_affine_type_flag가 1이면, 현재 처리 대상이 되어 있는 CU의 움직임 보상 예측 신호를 생성하기 위해, 6 파라미터 아핀 모델에 의한 움직임 보상이 이용된다. cu_affine_type_flag가 0이면, 현재 처리 대상이 되어 있는 CU의 움직임 보상 예측 신호를 생성하기 위해, 4 파라미터 아핀 모델에 의한 움직임 보상이 이용된다.
아핀 모델에 의한 움직임 보상에서는, 서브 블록 단위로 참조 인덱스나 움직임 벡터가 도출되는 점에서, 서브 블록 단위로 처리 대상이 되어 있는 참조 인덱스나 움직임 벡터를 이용하여 움직임 보상 예측 신호를 생성한다.
4 파라미터 아핀 모델은 2개의 제어점의 각각의 움직임 벡터의 수평 성분 및 수직 성분의 4개의 파라미터로부터 서브 블록의 움직임 벡터를 도출하고, 서브 블록 단위로 움직임 보상을 행하는 모드이다.
<변형예 1>
본 실시 형태의 변형예 1에 대해서 설명한다. 본 변형예는 본 실시 형태와는 머지 차분 움직임 벡터 모드가 추가되어 있는 것이 상이하고, 본 실시 형태와는 상이한 점만 설명한다. 도 12의 umve_flag가 1이면, 머지 차분 움직임 벡터 모드가 되고, umve_flag가 0이면, 통상 머지 모드가 된다.
계속하여, 머지 차분 움직임 벡터 모드의 동작에 대해서 설명한다. 머지 후보의 상위 2개(머지 후보 리스트 내의 머지 인덱스가 0 및 1인 머지 후보) 중 어느 1개의 머지 후보의 L0 예측의 움직임 벡터와 L1 예측의 움직임 벡터의 각각에 대하여, 1개의 머지 차분 움직임 벡터를 가산할 수 있는 모드이다.
또한, 머지 차분 움직임 벡터 모드의 경우에는, 머지 차분 움직임 벡터는 비트열 부호화부(108)에서 부호화되고, 비트열 복호부(201)에서 복호된다.
이상과 같이, 머지 후보 리스트는 머지 차분 움직임 벡터 모드에도 이용되기 때문에, 머지 후보 리스트의 요소와 중복되는 이력 예측 움직임 벡터 후보 리스트의 요소의 추가를 금지하여, 유효한 선택 요소를 증가시킴으로써, 부호화 효율을 향상시킬 수 있다.
또한, 머지 차분 움직임 벡터 모드를 추가하여 통상 예측 움직임 벡터 모드의 선택 확률을 내림으로써, 예측 움직임 벡터 후보 리스트의 요소의 중복에 의한 부호화 효율의 저하를 억제하면서, 이력 예측 움직임 벡터 후보의 움직임 벡터와 예측 움직임 벡터 후보의 움직임 벡터의 비교 처리를 삭감할 수 있다.
<변형예 2>
본 실시 형태의 변형예 2에 대해서 설명한다. 본 변형예는 본 실시 형태와는 도 29로 나타나는 이력 예측 움직임 벡터 후보 도출부(323 및 423)의 동작이 상이하고, 본 실시 형태와는 상이한 점만 설명한다. 도 41은 변형예 2의 이력 예측 움직임 벡터 후보 도출 처리 순서를 설명하는 플로우차트이다. 도 41은 도 29와는 스텝 S2209가 추가되어 있는 것이 상이하다. 도 29는 도 41의 스텝 S2209 이외는 동일한 동작이다.
numCurrMvpCand가 예측 움직임 벡터 후보 리스트의 최대 요소수인 2보다 작은 경우(도 41의 스텝 S2205의 YES)의 처리에 대해서 설명한다.
이력 예측 움직임 벡터 후보 HmvpCandList[NumHmvpCand-i]의 LY의 참조 인덱스와 처리 대상의 부호화 블록의 LY의 참조 인덱스가 동일한지 아닌지를 검사하여(도 41의 스텝 S2209), 이력 예측 움직임 벡터 후보 HmvpCandList[NumHmvpCand-i]의 LY의 참조 인덱스와 처리 대상의 부호화 블록의 LY의 참조 인덱스가 동일하면(도 41의 스텝 S2209의 YES), S2206으로 진행된다. 이력 예측 움직임 벡터 후보 HmvpCandList[NumHmvpCand-i]의 LY의 참조 인덱스와 처리 대상의 부호화 블록의 LY의 참조 인덱스가 동일하지 않으면(도 41의 스텝 S2209의 NO), S2207로 진행된다.
이상과 같이, 이력 예측 움직임 벡터 후보의 LY의 참조 인덱스와 처리 대상의 부호화 블록의 LY의 참조 인덱스가 동일한 경우에, 이력 예측 움직임 벡터 후보의 움직임 벡터를 LY 예측의 예측 움직임 벡터 후보 리스트에 추가함으로써, 이력 예측 움직임 벡터 후보의 움직임 벡터와 예측 움직임 벡터 후보의 움직임 벡터의 비교를 행하는 일 없이, 정밀도가 높은 이력 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 추가할 수 있다.
본 실시 형태에서는, 이력 예측 움직임 벡터 후보 도출 처리에 있어서는, 이력 예측 움직임 벡터 후보 리스트의 요소와 예측 움직임 벡터 후보 리스트의 요소의 비교를 행하는 일 없이, 이력 예측 움직임 벡터 후보 리스트의 요소를 예측 움직임 벡터 후보 리스트로 추가하는 한편, 이력 머지 후보 도출 처리에 있어서는, 이력 머지 후보 리스트의 요소와 머지 리스트의 요소의 비교를 행하고, 머지 리스트에 존재하지 않는 이력 머지 후보 리스트만을 머지 리스트에 추가한다. 상기 구성을 취함으로써 이하의 효과를 얻을 수 있다.
1. 이력 예측 움직임 벡터 후보 리스트 후보 도출 처리에 있어서, 추가의 후보 도출 처리를 행할 필요가 없어, 처리량, 회로 규모를 삭감할 수 있음과 함께, 어쩔 수 없이 예측 움직임 벡터 후보 리스트의 요소가 중복되는 바와 같은 경우라도, 선택지의 감소에 의한 부호화 효율의 저하를 최소한으로 머물게 할 수 있다.
2. 이력 머지 후보 도출 처리에 있어서는, 머지 리스트의 요소와 중복되는 이력 머지 후보 리스트의 요소의 추가를 금지함으로써, 차분 벡터를 이용하지 않고 처리 대상 블록의 움직임 정보를 결정하는 통상 머지 모드에 있어서, 적절한 머지 후보 리스트를 구축할 수 있어, 부호화 효율을 향상시킬 수 있다.
3. 이력 예측 움직임 벡터 후보 리스트를 중복되지 않는 이력 예측 움직임 벡터 후보로 충전해 두는 것, 통상 머지 모드 도출부(302)에 있어서의 이력 머지 후보 도출부(345)보다 후의 머지 후보 보충부(346)의 처리를 생략할 수 있어, 처리량을 삭감할 수 있다.
4. 이력 예측 움직임 벡터 후보 리스트를 중복되지 않는 이력 예측 움직임 벡터 후보로 충전해 두고, 또한 이력 예측 움직임 벡터 후보 리스트의 요소와 예측 움직임 벡터 후보 리스트의 요소의 비교를 행하는 일 없이, 이력 예측 움직임 벡터 후보 리스트의 요소를 예측 움직임 벡터 후보 리스트로 추가함으로써, 통상 예측 움직임 벡터 모드 도출부(301)에 있어서의 이력 예측 움직임 벡터 후보 도출부(323)보다 후의 예측 움직임 벡터 보충부(325)의 처리를 생략할 수 있다.
이상에 서술한 모든 실시 형태는, 복수를 조합해도 좋다.
이상에 서술한 모든 실시 형태에 있어서, 화상 부호화 장치가 출력하는 비트 스트림은, 실시 형태에서 이용된 부호화 방법에 따라 복호할 수 있도록 특정의 데이터 포맷을 갖고 있다. 또한, 이 화상 부호화 장치에 대응하는 화상 복호 장치는, 이 특정의 데이터 포맷의 비트 스트림을 복호할 수 있다.
화상 부호화 장치와 화상 복호 장치의 사이에서 비트 스트림을 주고 받기 위해, 유선 또는 무선의 네트워크가 이용되는 경우, 통신로의 전송 형태에 적합한 데이터 형식으로 비트 스트림을 변환하여 전송해도 좋다. 그 경우, 화상 부호화 장치가 출력하는 비트 스트림을 통신로의 전송 형태에 적합한 데이터 형식의 부호화 데이터로 변환하여 네트워크에 송신하는 송신 장치와, 네트워크로부터 부호화 데이터를 수신하여 비트 스트림으로 복원하여 화상 복호 장치에 공급하는 수신 장치가 형성된다. 송신 장치는, 화상 부호화 장치가 출력하는 비트 스트림을 버퍼하는 메모리와, 비트 스트림을 패킷화하는 패킷 처리부와, 네트워크를 통하여 패킷화된 부호화 데이터를 송신하는 송신부를 포함한다. 수신 장치는, 네트워크를 통하여 패킷화된 부호화 데이터를 수신하는 수신부와, 수신된 부호화 데이터를 버퍼하는 메모리와, 부호화 데이터를 패킷 처리하여 비트 스트림을 생성하고, 화상 복호 장치에 제공하는 패킷 처리부를 포함한다.
또한, 화상 복호 장치에서 복호된 화상을 표시하는 표시부를 구성에 추가함으로써, 표시 장치로 해도 좋다. 그 경우, 표시부는, 복호 화상 신호 중첩부(207)에 의해 생성되고, 복호 화상 메모리(208)에 격납된 복호 화상 신호를 읽어내 화면에 표시한다.
또한, 촬상부를 구성에 추가하고, 촬상한 화상을 화상 부호화 장치에 입력함으로써, 촬상 장치로 해도 좋다. 그 경우, 촬상부는, 촬상한 화상 신호를 블록 분할부(101)에 입력한다.
도 37에, 본 실시 형태의 부호화 복호 장치의 하드웨어 구성의 일 예를 나타낸다. 부호화 복호 장치는, 본 발명의 실시 형태에 따른 화상 부호화 장치 및, 화상 복호 장치의 구성을 포함한다. 관련된 부호화 복호 장치(9000)는, CPU(9001), 코덱 IC(9002), I/O 인터페이스(9003), 메모리(9004), 광학 디스크 드라이버(9005), 네트워크 인터페이스(9006), 비디오 인터페이스(9009)를 갖고, 각 부는 버스(9010)에 의해 접속된다.
화상 부호화부(9007)와 화상 복호부(9008)는, 전형적으로는 코덱 IC(9002)로서 실장된다. 본 발명의 실시 형태에 따른 화상 부호화 장치의 화상 부호화 처리는, 화상 부호화부(9007)에 의해 실행되고, 본 발명의 실시 형태에 따른 화상 복호 장치에 있어서의 화상 복호 처리는, 화상 복호부(9008)에 의해 실행된다. I/O 인터페이스(9003)는, 예를 들면 USB 인터페이스에 의해 실현되고, 외부의 키보드(9104), 마우스(9105) 등과 접속한다. CPU(9001)는, I/O 인터페이스(9003)를 통하여 입력한 유저 조작에 기초하여, 유저의 소망하는 동작을 실행하도록 부호화 복호 장치(9000)를 제어한다. 키보드(9104), 마우스(9105) 등에 의한 유저의 조작으로서는, 부호화, 복호의 어느 쪽의 기능을 실행할지의 선택, 부호화 품질의 설정, 비트 스트림의 입출력선, 화상의 입출력선 등이 있다.
유저가 디스크 기록 매체(9100)에 기록된 화상을 재생하는 조작을 소망하는 경우, 광학 디스크 드라이버(9005)는, 삽입된 디스크 기록 매체(9100)로부터 비트 스트림을 읽어내고, 읽어낸 비트 스트림을, 버스(9010)를 통하여 코덱 IC(9002)의 화상 복호부(9008)에 보낸다. 화상 복호부(9008)는 입력한 비트 스트림에 대하여 본 발명의 실시 형태에 따른 화상 복호 장치에 있어서의 화상 복호 처리를 실행하고, 복호 화상을, 비디오 인터페이스(9009)를 통하여 외부의 모니터(9103)로 보낸다. 또한, 부호화 복호 장치(9000)는, 네트워크 인터페이스(9006)를 갖고, 네트워크(9101)를 통하여, 외부의 배신 서버(9106)나, 휴대 단말(9107)과 접속 가능하다. 유저가 디스크 기록 매체(9100)에 기록된 화상을 대신하여, 전달 서버(9106)나 휴대 단말(9107)에 기록된 화상을 재생하는 것을 소망하는 경우는, 네트워크 인터페이스(9006)는, 입력된 디스크 기록 매체(9100)로부터 비트 스트림을 읽어내는 것을 대신하여, 네트워크(9101)에서 비트 스트림을 취득한다. 또한, 유저가 메모리(9004)에 기록된 화상을 재생하는 것을 소망하는 경우는, 메모리(9004)에 기록된 비트 스트림에 대하여, 본 발명의 실시 형태에 따른 화상 복호 장치에 있어서의 화상 복호 처리를 실행한다.
유저가 외부의 카메라(9102)에서 촬상한 화상을 부호화하여 메모리(9004)에 기록하는 조작을 소망하는 경우, 비디오 인터페이스(9009)는, 카메라(9102)로부터 화상을 입력하고, 버스(9010)를 통하여, 코덱 IC(9002)의 화상 부호화부(9007)에 보낸다. 화상 부호화부(9007)는, 비디오 인터페이스(9009)를 통하여 입력한 화상에 대하여 본 발명의 실시 형태에 따른 화상 부호화 장치에 있어서의 화상 부호화 처리를 실행하여, 비트 스트림을 작성한다. 그리고 비트 스트림을, 버스(9010)를 통하여, 메모리(9004)에 보낸다. 유저가 메모리(9004)를 대신하여, 디스크 기록 매체(9100)에 비트 스트림을 기록하는 것을 소망하는 경우는, 광학 디스크 드라이브(9005)는, 삽입된 디스크 기록 매체(9100)에 대하여 비트 스트림의 읽어냄을 행한다.
화상 부호화 장치를 갖고 화상 복호 장치를 갖지 않는 하드웨어 구성이나, 화상 복호 장치를 갖고 화상 부호화 장치를 갖지 않는 하드웨어 구성을 실현하는 것도 가능하다. 그러한 하드웨어 구성은, 예를 들면 코덱 IC(9002)가, 화상 부호화부(9007), 또는 화상 복호부(9008)로 각각 치환됨으로써 실현된다.
이상의 부호화 및 복호에 관한 처리는, 하드웨어를 이용한 전송, 축적, 수신 장치로서 실현되어도 좋은 것은 물론, ROM(리드·온리·메모리)나 플래쉬 메모리 등에 기억되어 있는 펌웨어나, 컴퓨터 등의 소프트웨어에 의해 실현되어도 좋다. 그 펌웨어 프로그램, 소프트웨어 프로그램을 컴퓨터 등으로 판독 가능한 기록 매체에 기록하여 제공해도 좋고, 유선 혹은 무선의 네트워크를 통하여 서버로부터 제공해도 좋고, 지상파 혹은 위성 디지털 방송의 데이터 방송으로서 제공해도 좋다.
이상, 본 발명을 실시 형태를 기초로 설명했다. 실시의 형태는 예시이며, 그들 각 구성 요소나 각 처리 프로세스의 조합에 여러가지 변형예가 가능한 것, 또한 그러한 변형예도 본 발명의 범위에 있는 것은 당업자에게 이해되는 바이다.
100 : 화상 부호화 장치
101 : 블록 분할부
102 : 인터 예측부
103 : 인트라 예측부
104 : 복호 화상 메모리
105 : 예측 방법 결정부
106 : 잔차 생성부
107 : 직교 변환·양자화부
108 : 비트열 부호화부
109 : 역양자화·역직교 변환부
110 : 복호 화상 신호 중첩부
111 : 부호화 정보 격납 메모리
200 : 화상 복호 장치
201 : 비트열 복호부
202 : 블록 분할부
203 : 인터 예측부 
204 : 인트라 예측부
205 : 부호화 정보 격납 메모리 
206 : 역양자화·역직교 변환부
207 : 복호 화상 신호 중첩부
208 : 복호 화상 메모리

Claims (15)

  1. 복호 대상 블록에 인접하는 블록의 인터 예측 정보로부터 공간 후보를 도출하여, 후보로서 제1 후보 리스트에 등록하는 공간 후보 도출부와,
    이력 후보 리스트에 포함되는 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하여 제2 후보 리스트로 하는 이력 후보 도출부와,
    상기 제2 후보 리스트에 포함되는 후보로부터 선택 후보를 선택하는 후보 선택부와,
    상기 선택 후보를 이용하여 인터 예측하는 인터 예측부
    를 구비하고,
    상기 이력 후보 도출부는, 복호 대상 블록의 예측 모드에 따라서 상기 제1 후보 리스트에 포함되는 후보와 중복되는 이력 후보를 추가할지 아닌지를 전환하고,
    상기 이력 후보 도출부는, 상기 예측 모드가 머지 모드인 경우, 상기 이력 후보와 상기 제1 후보 리스트에 포함되는 후보가 중복되지 않으면 상기 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하고, 상기 예측 모드가 예측 움직임 벡터 모드인 경우, 상기 이력 후보와 상기 제1 후보 리스트에 포함되는 후보가 중복되는지 아닌지에 관계 없이 상기 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하는,
    것을 특징으로 하는 화상 복호 장치.
  2. 화상 복호 장치에 있어서의 화상 복호 방법으로서,
    복호 대상 블록에 인접하는 블록의 인터 예측 정보로부터 공간 후보를 도출하고, 상기 도출된 공간 후보를 후보로서 제1 후보 리스트에 등록하는 스텝과,
    이력 후보 리스트에 포함되는 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하여 제2 후보 리스트로 하는 스텝으로서, 복호 대상 블록의 예측 모드에 따라서 상기 제1 후보 리스트에 포함되는 후보와 중복되는 이력 후보를 추가할지 아닌지를 전환하는 스텝으로서, 상기 예측 모드가 머지 모드인 경우, 상기 이력 후보와 상기 제1 후보 리스트에 포함되는 후보가 중복되지 않으면 상기 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하고, 상기 예측 모드가 예측 움직임 벡터 모드인 경우, 상기 이력 후보와 상기 제1 후보 리스트에 포함되는 후보가 중복되는지 아닌지에 관계 없이 상기 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하는 스텝과,
    상기 제2 후보 리스트에 포함되는 후보로부터 선택 후보를 선택하는 스텝과,
    상기 선택 후보를 이용하여 인터 예측을 행하는 스텝
    을 구비하는,
    화상 복호 방법.
  3. 화상 복호 장치에 있어서의, 컴퓨터 읽어냄 가능한 비일시적 기억 매체에 격납된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램이,
    복호 대상 블록에 인접하는 블록의 인터 예측 정보로부터 공간 후보를 도출하고, 상기 도출된 공간 후보를 후보로서 제1 후보 리스트에 등록하는 스텝과,
    이력 후보 리스트에 포함되는 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하여 제2 후보 리스트로 하는 스텝으로서, 복호 대상 블록의 예측 모드에 따라서 상기 제1 후보 리스트에 포함되는 후보와 중복되는 이력 후보를 추가할지 아닌지를 전환하는 스텝으로서, 상기 예측 모드가 머지 모드인 경우, 상기 이력 후보와 상기 제1 후보 리스트에 포함되는 후보가 중복되지 않으면 상기 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하고, 상기 예측 모드가 예측 움직임 벡터 모드 인 경우, 상기 이력 후보와 상기 제1 후보 리스트에 포함되는 후보가 중복되는지 아닌지에 관계 없이 상기 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하는 스텝과,
    상기 제2 후보 리스트에 포함되는 후보로부터 선택 후보를 선택하는 스텝과,
    상기 선택 후보를 이용하여 인터 예측을 행하는 스텝
    을 상기 화상 복호 장치의 컴퓨터에 실행시키는 명령을 구비하는
    상기 컴퓨터 읽어냄 가능한 비일시적 기억 매체에 격납된 컴퓨터 프로그램.
  4. 부호화 대상 블록에 인접하는 블록의 인터 예측 정보로부터 공간 후보를 도출하여, 후보로서 제1 후보 리스트에 등록하는 공간 후보 도출부와,
    이력 후보 리스트에 포함되는 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하여 제2 후보 리스트로 하는 이력 후보 도출부와,
    상기 제2 후보 리스트에 포함되는 후보로부터 선택 후보를 선택하는 후보 선택부와,
    상기 선택 후보를 이용하여 인터 예측하는 인터 예측부
    를 구비하고,
    상기 이력 후보 도출부는, 부호화 대상 블록의 예측 모드에 따라서 상기 제1 후보 리스트에 포함되는 후보와 중복되는 이력 후보를 추가할지 아닌지를 전환하고,
    상기 이력 후보 도출부는, 상기 예측 모드가 머지 모드인 경우, 상기 이력 후보와 상기 제1 후보 리스트에 포함되는 후보가 중복되지 않으면 상기 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하고, 상기 예측 모드가 예측 움직임 벡터 모드인 경우, 상기 이력 후보와 상기 제1 후보 리스트에 포함되는 후보가 중복되는지 아닌지에 관계 없이 상기 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하는, 화상 부호화 장치.
  5. 부호화 대상 블록에 인접하는 블록의 인터 예측 정보로부터 공간 후보를 도출하여, 후보로서 제1 후보 리스트에 등록하는 스텝과,
    이력 후보 리스트에 포함되는 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하여 제2 후보 리스트로 하는 스텝으로서, 부호화 대상 블록의 예측 모드에 따라서 상기 제1 후보 리스트에 포함되는 후보와 중복되는 이력 후보를 추가할지 아닌지를 전환하는 스텝으로서, 상기 예측 모드가 머지 모드인 경우, 상기 이력 후보와 상기 제1 후보 리스트에 포함되는 후보가 중복되지 않으면 상기 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하고, 상기 예측 모드가 예측 움직임 벡터 모드인 경우, 상기 이력 후보와 상기 제1 후보 리스트에 포함되는 후보가 중복되는지 아닌지에 관계 없이 상기 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하는 스텝과,
    상기 제2 후보 리스트에 포함되는 후보로부터 선택 후보를 선택하는 스텝과,
    상기 선택 후보를 이용하여 인터 예측하는 스텝
    을 구비하는 화상 부호화 방법.
  6. 화상 부호화 장치에 있어서의, 컴퓨터 읽어냄 가능한 비일시적 기억 매체에 격납된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램이,
    부호화 대상 블록에 인접하는 블록의 인터 예측 정보로부터 공간 후보를 도출하여, 후보로서 제1 후보 리스트에 등록하는 스텝과,
    이력 후보 리스트에 포함되는 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하여 제2 후보 리스트로 하는 스텝으로서, 부호화 대상 블록의 예측 모드에 따라서 상기 제1 후보 리스트에 포함되는 후보와 중복되는 이력 후보를 추가할지 아닌지를 전환하고, 상기 예측 모드가 머지 모드인 경우, 상기 이력 후보와 상기 제1 후보 리스트에 포함되는 후보가 중복되지 않으면 상기 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하고, 상기 예측 모드가 예측 움직임 벡터 모드인 경우, 상기 이력 후보와 상기 제1 후보 리스트에 포함되는 후보가 중복될지 아닌지에 관계 없이 상기 이력 후보를 후보로서 상기 제1 후보 리스트에 추가하는 스텝과,
    상기 제2 후보 리스트에 포함되는 후보로부터 선택 후보를 선택하는 스텝과,
    상기 선택 후보를 이용하여 인터 예측하는 스텝
    을 상기 화상 부호화 장치의 컴퓨터에 실행시키는 명령을 구비하는,
    상기 컴퓨터 읽어냄 가능한 비일시적 기억 매체에 격납된 컴퓨터 프로그램.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
KR1020207037260A 2018-12-28 2019-12-20 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램 KR102584235B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237032747A KR20230141934A (ko) 2018-12-28 2019-12-20 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JPJP-P-2018-247402 2018-12-28
JP2018247402 2018-12-28
JP2019171784 2019-09-20
JPJP-P-2019-171784 2019-09-20
PCT/JP2019/050093 WO2020137882A1 (ja) 2018-12-28 2019-12-20 画像復号装置、画像復号方法及び画像復号プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237032747A Division KR20230141934A (ko) 2018-12-28 2019-12-20 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램

Publications (2)

Publication Number Publication Date
KR20210015901A KR20210015901A (ko) 2021-02-10
KR102584235B1 true KR102584235B1 (ko) 2023-09-27

Family

ID=71127750

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020237032747A KR20230141934A (ko) 2018-12-28 2019-12-20 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램
KR1020207037260A KR102584235B1 (ko) 2018-12-28 2019-12-20 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020237032747A KR20230141934A (ko) 2018-12-28 2019-12-20 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램

Country Status (9)

Country Link
US (2) US11595680B2 (ko)
EP (1) EP3905691A4 (ko)
JP (4) JP6763470B1 (ko)
KR (2) KR20230141934A (ko)
CN (5) CN118075452A (ko)
BR (1) BR112021012435A8 (ko)
CA (1) CA3124076A1 (ko)
MX (1) MX2021007752A (ko)
WO (1) WO2020137882A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2770863C1 (ru) * 2018-12-28 2022-04-22 ДжейВиСиКЕНВУД Корпорейшн Устройство кодирования кадров, способ кодирования кадров, устройство декодирования кадров и способ декодирования кадров
WO2023072216A1 (en) * 2021-10-28 2023-05-04 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3277111B2 (ja) 1995-10-18 2002-04-22 シャープ株式会社 動画像符号化装置および動画像復号化装置
JP4232588B2 (ja) * 2003-09-19 2009-03-04 ソニー株式会社 画像処理装置および画像処理方法、並びに、プログラム
CN102860006B (zh) 2010-02-05 2016-11-23 瑞典爱立信有限公司 管理预测运动向量候选
SI2717574T1 (sl) * 2011-05-31 2021-04-30 JVC Kenwood Corporation Naprava za dekodiranje gibljivih slik, postopek za dekodiranje gibljivih slik, program za dekodiranje gibljivih slik
HUE053035T2 (hu) * 2011-06-30 2021-06-28 Jvc Kenwood Corp Képkódoló készülék, képkódoló eljárás, képkódoló program, képdekódoló készülék, képdekódoló eljárás és képdekódoló program
EP2800371A4 (en) * 2011-12-28 2015-08-12 Jvc Kenwood Corp VIDEO CODING DEVICE, VIDEO PROCESSING AND VIDEO PROGRAM, AND DEVICE, METHOD AND PROGRAM FOR VIDEO CODING
MX354306B (es) 2012-04-15 2018-02-23 Samsung Electronics Co Ltd Metodo y aparato para determinar imagenes de referencia para inter-prediccion.
US20130336406A1 (en) 2012-06-14 2013-12-19 Qualcomm Incorporated Redundancy removal for merge/skip mode motion information candidate list construction
CN116389726A (zh) 2016-10-14 2023-07-04 世宗大学校产学协力团 影像解码/编码方法、传送比特流的方法及记录介质
KR102480350B1 (ko) * 2016-10-14 2022-12-23 세종대학교산학협력단 영상 부호화 방법/장치, 영상 복호화 방법/장치 및 비트스트림을 저장한 기록 매체
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
BR112020024142A2 (pt) * 2018-06-29 2021-03-02 Beijing Bytedance Network Technology Co., Ltd. método para processamento de vídeo, aparelho para codificação de dados de vídeo, meio de armazenamento e meio de gravação legíveis por computador não transitório
GB2589241B (en) * 2018-07-02 2023-06-07 Beijing Bytedance Network Tech Co Ltd Update of look-up tables
TWI822839B (zh) * 2018-08-26 2023-11-21 大陸商北京字節跳動網絡技術有限公司 組合的基於歷史的運動矢量預測符和多運動模型解碼
US11184633B2 (en) * 2018-11-27 2021-11-23 Qualcomm Incorporated Simplification of history-based motion vector prediction
WO2020114406A1 (en) * 2018-12-03 2020-06-11 Beijing Bytedance Network Technology Co., Ltd. Partial pruning method for inter prediction
CN116668685A (zh) 2018-12-12 2023-08-29 Lg电子株式会社 图像编解码设备执行的处理视频信号的方法和发送方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Li Zhang, et. al., "CE4-related: History-based Motion Vector Prediction", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 11th Meeting: Ljubljana, SI, 2018.07.18, JVET-K0104-v5*
Weiwei Xu, et. al., "CE4-related: Constraint of Pruning in History-based Motion Vector Prediction", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Macao, CN, 2018.10.01., JVET-L0448-v2*

Also Published As

Publication number Publication date
CA3124076A1 (en) 2020-07-02
JP6763470B1 (ja) 2020-09-30
JP7060773B2 (ja) 2022-04-27
BR112021012435A8 (pt) 2022-08-02
US12003755B2 (en) 2024-06-04
EP3905691A4 (en) 2022-12-21
JP2021052390A (ja) 2021-04-01
JP7304548B2 (ja) 2023-07-07
BR112021012435A2 (pt) 2021-09-08
JP2023120329A (ja) 2023-08-29
WO2020137882A1 (ja) 2020-07-02
CN118075453A (zh) 2024-05-24
US20230132950A1 (en) 2023-05-04
CN112400321B (zh) 2024-04-19
CN118075452A (zh) 2024-05-24
CN118075451A (zh) 2024-05-24
EP3905691A1 (en) 2021-11-03
US11595680B2 (en) 2023-02-28
JP2022036090A (ja) 2022-03-04
KR20210015901A (ko) 2021-02-10
US20210314597A1 (en) 2021-10-07
KR20230141934A (ko) 2023-10-10
CN112954361B (zh) 2022-09-13
JP2021052372A (ja) 2021-04-01
CN112400321A (zh) 2021-02-23
CN112954361A (zh) 2021-06-11
MX2021007752A (es) 2021-08-05

Similar Documents

Publication Publication Date Title
KR102601014B1 (ko) 화상 부호화 장치, 화상 부호화 방법, 화상 부호화 프로그램, 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램
JP7283526B2 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム
JP7140224B2 (ja) 動画像復号装置、動画像復号方法、動画像復号プログラム、動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
KR102521264B1 (ko) 화상 부호화 장치, 화상 부호화 방법, 화상 부호화 프로그램, 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램
JP2024037837A (ja) 画像符号化装置、画像符号化方法、及び画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム
KR102617199B1 (ko) 동화상 부호화 장치, 동화상 부호화 방법, 동화상 부호화 프로그램, 동화상 복호 장치, 동화상 복호 방법 및 동화상 복호 프로그램
KR102584235B1 (ko) 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램
KR102583807B1 (ko) 화상 부호화 장치, 화상 부호화 방법, 화상 부호화 프로그램, 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램
KR102587946B1 (ko) 동화상 부호화 장치, 동화상 부호화 방법 및, 동화상 부호화 프로그램이 기록된 컴퓨터 판독가능 기록 매체, 동화상 복호 장치, 동화상 복호 방법 및 동화상 복호 프로그램이 기록된 컴퓨터 판독가능 기록 매체
KR102641302B1 (ko) 동화상 부호화 장치, 동화상 부호화 방법 및, 동화상 부호화 프로그램, 동화상 복호 장치, 동화상 복호 방법, 동화상 복호 프로그램 및 비트 스트림
JP2021057870A (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム

Legal Events

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