KR20210021142A - 인터 프레임 예측을 위한 이미지 코딩 및 디코딩을 위한 방법 및 디바이스 - Google Patents
인터 프레임 예측을 위한 이미지 코딩 및 디코딩을 위한 방법 및 디바이스 Download PDFInfo
- Publication number
- KR20210021142A KR20210021142A KR1020217004758A KR20217004758A KR20210021142A KR 20210021142 A KR20210021142 A KR 20210021142A KR 1020217004758 A KR1020217004758 A KR 1020217004758A KR 20217004758 A KR20217004758 A KR 20217004758A KR 20210021142 A KR20210021142 A KR 20210021142A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- prediction
- decoding
- coding
- prediction block
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/53—Multi-resolution motion estimation; Hierarchical motion estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/533—Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
인터 예측을 통한 이미지 코딩 및 디코딩을 위한 방법 및 장치가 제공된다. 디코딩 방법은 다음을 포함한다: 제1 디코딩 블록의 예측 움직임 정보를 결정하는 단계; 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여 제1 디코딩 예측 블록을 획득하는 단계; 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하여 적어도 하나의 제2 디코딩 예측 블록을 획득하는 단계- 움직임 검색의 검색 위치는 움직임 벡터 예측자 및 제1 정밀도를 사용하여 결정됨 -; 제1 디코딩 예측 블록과 각각의 제2 디코딩 예측 블록 사이의 차이를 계산하여 제1 디코딩 블록의 타겟 움직임 벡터 예측자를 획득하는 단계; 및 움직임 검색을 통해 타겟 움직임 벡터 예측자를 업데이트하는 단계. 따라서, 인터 예측의 움직임 정밀도가 개선된다.
Description
본 발명은 비디오 이미지 기술들의 분야에 관한 것이고, 특히, 인터 예측을 통한 이미지 코딩 및 디코딩을 위한 방법 및 장치에 관한 것이다.
비디오 코딩 및 디코딩 프레임워크에서, 하이브리드 코딩 구조는 일반적으로 비디오 시퀀스 코딩 및 디코딩에 사용된다. 하이브리드 코딩 구조의 인코더 측은 일반적으로 예측 모듈, 변환 모듈, 양자화 모듈, 및 엔트로피 인코딩 모듈을 포함한다. 하이브리드 코딩 구조의 디코더 측은 일반적으로 엔트로피 디코딩 모듈, 역양자화 모듈, 역변환 모듈, 및 예측 보상 모듈을 포함한다. 이러한 코딩 및 디코딩 모듈들은 비디오 시퀀스의 중복 정보를 효과적으로 제거하고 비디오 시퀀스의 코딩된 이미지가 디코더 측에서 획득되는 것을 보장하도록 조합될 수 있다.
비디오 코딩 및 디코딩 프레임워크에서, 비디오 시퀀스의 이미지는 일반적으로 코딩을 위한 이미지 블록들로 분할된다. 하나의 이미지는 여러 이미지 블록들로 분할되고, 이러한 이미지 블록들은 전술한 모듈들을 사용하여 코딩되고 디코딩된다.
전술한 모듈들에서, 예측 모듈은 인코더 측의 비디오 시퀀스의 코딩된 이미지의 이미지 블록의 예측 블록 정보를 획득하여, 특정 모드에 기초하여, 이미지 블록의 잔차가 획득될 필요가 있는지를 결정하도록 구성된다. 예측 보상 모듈은 디코더 측에서 현재 디코딩된 이미지 블록의 예측 블록 정보를 획득하고, 이어서 특정 모드에 기초하여, 디코딩을 통해 획득된 이미지 블록 잔차에 기초하여 현재 디코딩된 이미지 블록을 획득할지를 결정하도록 구성된다. 예측 모듈 및 예측 보상 모듈은 일반적으로 2가지 기술: 인트라 예측 및 인터 예측을 포함한다. 인터 예측 기술에서, 현재 이미지에 인접하고 인터 예측을 위해 사용되는 이미지는 참조 이미지로서 지칭된다.
인터 예측 기술에서, 현재 이미지 블록의 중복 정보를 효과적으로 제거하기 위해, 인코더 측 및 디코더 측은 현재 이미지 블록의 잔차를 감소시키기 위해, 참조 이미지로부터의 현재 이미지 블록과 가장 유사한 매칭된 이미지 블록을 획득할 필요가 있다. 현재 이미지 블록에 대해 인터 예측이 수행될 때, 참조 이미지는 예측 움직임 정보에 기초하여 적절한 매칭된 이미지 블록에 대해 검색된다. 이 경우, 예측 움직임 정보 내의 움직임 벡터 정보는 인접 블록의 움직임 벡터 정보에 의해 결정된다. 즉, 현재 이미지 블록을 코딩 및 디코딩하기 위해 참조 이미지의 모든 정보가 사용될 수 있다. 인터프레임 코딩 및 디코딩에서, 인접 블록의 움직임 벡터 정보가 현재 블록의 움직임 벡터 예측자로서 직접 사용된다는 것을 알 수 있다. 인터 예측의 움직임 벡터 예측자를 직접 획득하는 이러한 방식은 예측 움직임 정밀도의 편차를 불가피하게 야기한다.
본 발명의 실시예들은 인터 예측의 움직임 정밀도를 개선시키기 위해 인터 예측을 통한 이미지 코딩 및 디코딩을 위한 방법 및 장치를 제공한다.
제1 양태에 따르면, 인터 예측을 통한 이미지 코딩을 위한 방법이 제공되는데, 이 방법은 다음을 포함한다: 제1 코딩 블록의 예측 움직임 정보를 결정하는 단계- 예측 움직임 정보는 움직임 벡터 예측자 및 예측 참조 이미지 정보를 포함하고, 예측 참조 이미지 정보는 예측 참조 이미지 블록을 표현하기 위해 사용됨 -; 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행하여 제1 코딩 블록의 초기 코딩 예측 블록을 획득하고, 초기 코딩 예측 블록에 기초하여 제1 코딩 블록의 제1 코딩 예측 블록을 획득하는 단계; 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하여 적어도 하나의 제2 코딩 예측 블록을 획득하는 단계- 움직임 검색의 검색 위치는 움직임 벡터 예측자 및 제1 정밀도를 사용하여 결정됨 -; 제1 코딩 예측 블록과 각각의 제2 코딩 예측 블록 사이의 차이를 계산하고, 제1 코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 코딩 예측 블록과 제1 코딩 블록 사이의 움직임 벡터 예측자를 사용하는 단계; 타겟 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행하여 제1 코딩 블록의 제3 코딩 예측 블록을 획득하는 단계; 및 제3 코딩 예측 블록에 기초하여 제1 코딩 블록의 타겟 코딩 예측 블록을 획득하고, 타겟 코딩 예측 블록에 기초하여 제1 코딩 블록을 코딩하는 단계.
유익한 효과는, 제1 코딩 블록을 코딩할 때, 인코더 측이 움직임 검색을 통해 타겟 움직임 벡터 예측자를 업데이트할 수 있어, 인터 예측의 움직임 정밀도를 개선시킨다는 점에 있다.
제1 양태를 참조하여, 가능한 설계에서, 예측 움직임 정보는 순방향 예측 움직임 정보 및 역방향 예측 움직임 정보를 포함하고, 움직임 벡터 예측자는 순방향 움직임 벡터 예측자 및 역방향 움직임 벡터 예측자를 포함하고, 예측 참조 이미지 블록은 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록을 포함한다.
제1 양태를 참조하여, 가능한 설계에서, 초기 코딩 예측 블록은 초기 순방향 코딩 예측 블록 및 초기 역방향 코딩 예측 블록을 포함하고, 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행하여 제1 코딩 블록의 초기 코딩 예측 블록을 획득하는 것은 다음을 포함한다: 순방향 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 순방향 예측을 수행하여 제1 코딩 블록의 초기 순방향 코딩 예측 블록을 획득하는 것; 및 역방향 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 역방향 예측을 수행하여 제1 코딩 블록의 초기 역방향 코딩 예측 블록을 획득하는 것.
제1 양태를 참조하여, 가능한 설계에서, 초기 코딩 예측 블록에 기초하여 제1 코딩 블록의 제1 코딩 예측 블록을 획득하는 것은 이하의: 초기 순방향 코딩 예측 블록과 초기 역방향 코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 제1 코딩 블록의 제1 코딩 예측 블록을 획득하거나; 또는 초기 순방향 코딩 예측 블록을 제1 코딩 블록의 제1 코딩 예측 블록으로서 사용하거나; 또는 초기 역방향 코딩 예측 블록을 제1 코딩 블록의 제1 코딩 예측 블록으로서 사용하는 방식을 포함한다.
유익한 효과는 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행한 후에, 인코더 측이 초기 순방향 코딩 예측 블록과 초기 역방향 코딩 예측 블록을 조합하여 제1 코딩 예측 블록을 획득할 수 있거나, 단일 방향에서의 초기 코딩 예측 블록에 기초하여 제1 코딩 예측 블록을 획득할 수 있다는 점에 있다. 구현들은 다양화되고, 실제 상황에 기초하여 유연하게 선택될 수 있다.
제1 양태를 참조하여, 가능한 설계에서, 제2 코딩 예측 블록은 순방향 제2 코딩 예측 블록 및 역방향 제2 코딩 예측 블록을 포함하고, 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하여 적어도 하나의 제2 코딩 예측 블록을 획득하는 것은 다음을 포함한다: 순방향 움직임 벡터 예측자에 기초하여 순방향 예측 참조 이미지 블록에 대한 제1 정밀도의 움직임 검색을 수행하고, 각각의 발견된 순방향 코딩 예측 블록을 순방향 제2 코딩 예측 블록으로서 사용하여 적어도 하나의 제2 코딩 예측 블록을 획득하는 것; 및 역방향 움직임 벡터 예측자에 기초하여 역방향 예측 참조 이미지 블록에 대한 제1 정밀도의 움직임 검색을 수행하고, 각각의 발견된 역방향 코딩 예측 블록을 역방향 제2 코딩 예측 블록으로서 사용하여 적어도 하나의 제2 코딩 예측 블록을 획득하는 것- 여기서 제1 정밀도는 정수 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도, 또는 1/8 픽셀 정밀도를 포함함 -.
제1 양태를 참조하여, 가능한 설계에서, 타겟 움직임 벡터 예측자는 타겟 순방향 움직임 벡터 예측자와 타겟 역방향 움직임 벡터 예측자를 포함하고, 제1 코딩 예측 블록과 각각의 제2 코딩 예측 블록 사이의 차이들을 계산하고, 제1 코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 코딩 예측 블록과 제1 코딩 블록 사이의 움직임 벡터 예측자를 사용하는 것은 다음을 포함한다: 순방향 제2 코딩 예측 블록들과 제1 코딩 예측 블록 사이의 차이들을 비교하고, 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 순방향 제2 코딩 예측 블록과 제1 코딩 블록 사이의 타겟 순방향 움직임 벡터 예측자를 사용하는 것; 역방향 제2 코딩 예측 블록들과 제1 코딩 예측 블록 사이의 차이들을 비교하고, 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 역방향 제2 코딩 예측 블록과 제1 코딩 블록 사이의 타겟 역방향 움직임 벡터 예측자를 사용하는 것.
유익한 효과는 예측 참조 이미지 블록 및 제1 코딩 예측 블록에 대해 움직임 검색을 수행함으로써 획득된 제2 코딩 예측 블록들 사이의 차이들이 비교되어 제1 코딩 블록의 타겟 움직임 벡터 예측자를 업데이트함으로써, 인터 예측의 움직임 정밀도를 개선한다는 점에 있다.
제1 양태를 참조하여, 가능한 설계에서, 제1 코딩 블록의 제3 코딩 예측 블록은 순방향 제3 코딩 예측 블록 및 역방향 제3 코딩 예측 블록을 포함하고, 타겟 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행하여 제1 코딩 블록의 제3 코딩 예측 블록을 획득하는 것은 다음을 포함한다: 타겟 순방향 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 순방향 예측을 수행하여 제1 코딩 블록의 제3 코딩 예측 블록을 획득하는 것; 및 타겟 역방향 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 역방향 예측을 수행하여 제1 코딩 블록의 역방향 제3 코딩 예측 블록을 획득하는 것.
제1 양태를 참조하여, 가능한 설계에서, 제3 코딩 예측 블록에 기초하여 제1 코딩 블록의 타겟 코딩 예측 블록을 획득하는 것은 다음을 포함한다: 순방향 제3 코딩 예측 블록 및 역방향 제3 코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 제1 코딩 블록의 타겟 코딩 예측 블록을 획득하는 것; 또는 순방향 제3 코딩 예측 블록을 제1 코딩 블록의 타겟 코딩 예측 블록으로서 사용하는 것; 또는 역방향 제3 코딩 예측 블록을 제1 코딩 블록의 타겟 코딩 예측 블록으로서 사용하는 것.
유익한 효과는, 제3 코딩 예측 블록을 획득하기 위해 타겟 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행한 후에, 인코더 측이 순방향 제3 코딩 예측 블록과 역방향 제3 코딩 예측 블록을 조합하여 제1 코딩 블록의 타겟 코딩 예측 블록을 획득할 수 있거나, 단일 방향에서의 제3 코딩 예측 블록에 기초하여 제1 코딩 블록의 타겟 코딩 예측 블록을 획득할 수 있다는 점에 있다. 구현들은 다양화되고, 실제 상황에 기초하여 유연하게 선택될 수 있다.
제2 양태에 따르면, 인터 예측을 통한 이미지 디코딩을 위한 방법이 제공되는데, 이 방법은 다음을 포함한다: 제1 디코딩 블록의 예측 움직임 정보를 결정하는 단계- 예측 움직임 정보는 움직임 벡터 예측자 및 예측 참조 이미지 정보를 포함하고, 예측 참조 이미지 정보는 예측 참조 이미지 블록을 표현하기 위해 사용됨 -; 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여 제1 디코딩 블록의 초기 디코딩 예측 블록을 획득하고, 초기 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 제1 디코딩 예측 블록을 획득하는 단계; 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하여 적어도 하나의 제2 디코딩 예측 블록을 획득하는 단계- 움직임 검색의 검색 위치는 움직임 벡터 예측자 및 제1 정밀도를 사용하여 결정됨 -; 제1 디코딩 예측 블록과 각각의 제2 디코딩 예측 블록 사이의 차이를 계산하고, 제1 디코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 디코딩 예측 블록과 제1 디코딩 블록 사이의 움직임 벡터 예측자를 사용하는 단계; 타겟 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여 제1 디코딩 블록의 제3 디코딩 예측 블록을 획득하는 단계; 및 제3 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 타겟 디코딩 예측 블록을 획득하고, 타겟 디코딩 예측 블록에 기초하여 제1 디코딩 블록을 디코딩하는 단계.
유익한 효과는, 제1 디코딩 블록을 디코딩할 때, 디코더 측이 움직임 검색을 통해 타겟 움직임 벡터 예측자를 업데이트할 수 있어, 인터 예측의 움직임 정밀도를 개선시킨다는 점에 있다.
제2 양태를 참조하여, 가능한 설계에서, 예측 움직임 정보는 순방향 예측 움직임 정보 및 역방향 예측 움직임 정보를 포함하고, 움직임 벡터 예측자는 순방향 움직임 벡터 예측자 및 역방향 움직임 벡터 예측자를 포함하고, 예측 참조 이미지 블록은 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록을 포함한다.
제2 양태를 참조하여, 가능한 설계에서, 초기 디코딩 예측 블록은 초기 순방향 디코딩 예측 블록 및 초기 역방향 디코딩 예측 블록을 포함하고, 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여 제1 디코딩 블록의 초기 디코딩 예측 블록을 획득하는 것은 다음을 포함한다: 순방향 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 순방향 예측을 수행하여 제1 디코딩 블록의 초기 순방향 디코딩 예측 블록을 획득하는 것; 및 역방향 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 역방향 예측을 수행하여 제1 디코딩 블록의 초기 역방향 디코딩 예측 블록을 획득하는 것.
제2 양태를 참조하여, 가능한 설계에서, 초기 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 제1 디코딩 예측 블록을 획득하는 것은 이하의: 초기 순방향 디코딩 예측 블록과 초기 역방향 디코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 제1 디코딩 블록의 제1 디코딩 예측 블록을 획득하거나; 또는 초기 순방향 디코딩 예측 블록을 제1 디코딩 블록의 제1 디코딩 예측 블록으로서 사용하거나; 또는 초기 역방향 디코딩 예측 블록을 제1 디코딩 블록의 제1 디코딩 예측 블록으로서 사용하는 방식을 포함한다.
유익한 효과는 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행한 후에, 디코더 측이 초기 순방향 디코딩 예측 블록과 초기 역방향 디코딩 예측 블록을 조합하여 제1 디코딩 예측 블록을 획득할 수 있거나, 단일 방향에서의 초기 디코딩 예측 블록에 기초하여 제1 디코딩 예측 블록을 획득할 수 있다는 점에 있다. 구현들은 다양화되고, 실제 상황에 기초하여 유연하게 선택될 수 있다.
제2 양태를 참조하여, 가능한 설계에서, 제2 디코딩 예측 블록은 순방향 제2 디코딩 예측 블록 및 역방향 제2 디코딩 예측 블록을 포함하고, 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하여 적어도 하나의 제2 디코딩 예측 블록을 획득하는 것은 다음을 포함한다: 순방향 움직임 벡터 예측자에 기초하여 순방향 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하고, 각각의 발견된 순방향 디코딩 예측 블록을 순방향 제2 디코딩 예측 블록으로서 사용하여 적어도 하나의 제2 디코딩 예측 블록을 획득하는 것; 및 역방향 움직임 벡터 예측자에 기초하여 역방향 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하고, 각각의 발견된 역방향 디코딩 예측 블록을 역방향 제2 디코딩 예측 블록으로서 사용하여 적어도 하나의 제2 디코딩 예측 블록을 획득하는 것- 여기서 제1 정밀도는 정수 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도, 또는 1/8 픽셀 정밀도를 포함함 -.
제2 양태를 참조하여, 가능한 설계에서, 타겟 움직임 벡터 예측자는 타겟 순방향 움직임 벡터 예측자와 타겟 역방향 움직임 벡터 예측자를 포함하고, 제1 디코딩 예측 블록과 각각의 제2 디코딩 예측 블록 사이의 차이를 계산하고, 제1 디코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 디코딩 예측 블록과 제1 디코딩 블록 사이의 움직임 벡터 예측자를 사용하는 것은 다음을 포함한다: 순방향 제2 디코딩 예측 블록들과 제1 디코딩 예측 블록 사이의 차이들을 비교하고, 타겟 움직임 벡터 예측자로서 가장 작은 차이를 갖는 순방향 제2 디코딩 예측 블록과 제1 디코딩 블록 사이의 타겟 순방향 움직임 벡터 예측자를 사용하는 것; 역방향 제2 디코딩 예측 블록들과 제1 디코딩 예측 블록 사이의 차이들을 비교하고, 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 역방향 제2 디코딩 예측 블록과 제1 디코딩 블록 사이의 타겟 역방향 움직임 벡터 예측자를 사용하는 것.
유익한 효과는 예측 참조 이미지 블록에 대해 움직임 검색을 수행함으로써 획득된 제2 디코딩 예측 블록들과 제1 디코딩 예측 블록 사이의 차이들이 비교되어 제1 디코딩 블록의 타겟 움직임 벡터 예측자를 업데이트함으로써, 인터 예측의 움직임 정밀도를 개선한다는 점에 있다.
제2 양태를 참조하여, 가능한 설계에서, 제1 디코딩 블록의 제3 디코딩 예측 블록은 순방향 제3 디코딩 예측 블록 및 역방향 제3 디코딩 예측 블록을 포함하고, 타겟 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여 제1 디코딩 블록의 제3 디코딩 예측 블록을 획득하는 것은 다음을 포함한다: 타겟 순방향 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 순방향 예측을 수행하여 제1 디코딩 블록의 순방향 제3 디코딩 예측 블록을 획득하는 것; 및 타겟 역방향 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 역방향 예측을 수행하여 제1 디코딩 블록의 역방향 제3 디코딩 예측 블록을 획득하는 것.
제2 양태를 참조하여, 가능한 설계에서, 제3 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 타겟 디코딩 예측 블록을 획득하는 것은 이하의: 순방향 제3 디코딩 예측 블록과 역방향 제3 디코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 제1 디코딩 블록의 타겟 디코딩 예측 블록을 획득하거나; 또는 순방향 제3 디코딩 예측 블록을 제1 디코딩 블록의 타겟 디코딩 예측 블록으로서 사용하거나; 또는 역방향 제3 디코딩 예측 블록을 제1 디코딩 블록의 타겟 디코딩 예측 블록으로서 사용하는 방식을 포함한다.
유익한 효과는, 제3 디코딩 예측 블록을 획득하기 위해 타겟 움직임 벡터 예측자에 기초하여 제3 디코딩 블록에 대해 양방향 예측을 수행한 후에, 디코더 측이 순방향 제3 디코딩 예측 블록과 역방향 제3 디코딩 예측 블록을 조합하여 제1 디코딩 블록의 타겟 디코딩 예측 블록을 획득할 수 있거나, 단일 방향에서의 제3 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 타겟 디코딩 예측 블록을 획득할 수 있다는 점에 있다. 구현들은 다양화되고, 실제 상황에 기초하여 유연하게 선택될 수 있다.
제3 양태에 따르면, 인터 예측을 통한 이미지 코딩을 위한 장치가 제공되는데, 이 장치는 다음을 포함한다: 제1 코딩 블록의 예측 움직임 정보를 결정하도록 구성되는 결정 유닛- 예측 움직임 정보는 움직임 벡터 예측자 및 예측 참조 이미지 정보를 포함하고, 예측 참조 이미지 정보는 예측 참조 이미지 블록을 표현하기 위해 사용됨 -; 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행하여, 제1 코딩 블록의 초기 코딩 예측 블록을 획득하고, 초기 코딩 예측 블록에 기초하여 제1 코딩 블록의 제1 코딩 예측 블록을 획득하고; 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하여 적어도 하나의 제2 코딩 예측 블록을 획득하고- 움직임 검색의 검색 위치는 움직임 벡터 예측자 및 제1 정밀도를 사용하여 결정됨 -; 제1 코딩 예측 블록과 각각의 제2 코딩 예측 블록 사이의 차이를 계산하고, 제1 코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 코딩 예측 블록과 제1 코딩 블록 사이의 움직임 벡터 예측자를 사용하고; 타겟 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행하여 제1 코딩 블록의 제3 코딩 예측 블록을 획득하도록 구성되는 처리 유닛; 및 제3 코딩 예측 블록에 기초하여 제1 코딩 블록의 타겟 코딩 예측 블록을 획득하고, 타겟 코딩 예측 블록에 기초하여 제1 코딩 블록을 코딩하도록 구성되는 코딩 유닛.
제3 양태를 참조하여, 가능한 설계에서, 예측 움직임 정보는 순방향 예측 움직임 정보 및 역방향 예측 움직임 정보를 포함하고, 움직임 벡터 예측자는 순방향 움직임 벡터 예측자 및 역방향 움직임 벡터 예측자를 포함하고, 예측 참조 이미지 블록은 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록을 포함한다.
제3 양태를 참조하여, 가능한 설계에서, 초기 코딩 예측 블록은 초기 순방향 코딩 예측 블록 및 초기 역방향 코딩 예측 블록을 포함하고, 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행하여 제1 코딩 블록의 초기 코딩 예측 블록을 획득할 때, 처리 유닛은 구체적으로: 순방향 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 순방향 예측을 수행하여 제1 코딩 블록의 초기 순방향 코딩 예측 블록을 획득하고; 역방향 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 역방향 예측을 수행하여 제1 코딩 블록의 초기 역방향 코딩 예측 블록을 획득하도록 구성된다.
제3 양태를 참조하여, 가능한 설계에서, 초기 코딩 예측 블록에 기초하여 제1 코딩 블록의 제1 코딩 예측 블록을 획득할 때, 처리 유닛은 구체적으로: 초기 순방향 코딩 예측 블록 및 초기 역방향 코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 제1 코딩 블록의 제1 코딩 예측 블록을 획득하거나; 또는 초기 순방향 코딩 예측 블록을 제1 코딩 블록의 제1 코딩 예측 블록으로서 사용하거나; 또는 초기 역방향 코딩 예측 블록을 제1 코딩 블록의 제1 코딩 예측 블록으로서 사용하도록 구성된다.
제3 양태를 참조하여, 가능한 설계에서, 제2 코딩 예측 블록은 순방향 제2 코딩 예측 블록 및 역방향 제2 코딩 예측 블록을 포함하고, 움직임 벡터 예측자에 기초하여 예측 참조 이미지 블록에 대한 제1 정밀도의 움직임 검색을 수행하여 적어도 하나의 제2 코딩 예측 블록을 획득할 때, 처리 유닛은 구체적으로: 순방향 움직임 벡터 예측자에 기초하여 순방향 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하고, 각각의 발견된 순방향 코딩 예측 블록을 순방향 제2 코딩 예측 블록으로서 사용하여 적어도 하나의 제2 코딩 예측 블록을 획득하고; 역방향 움직임 벡터 예측자에 기초하여 역방향 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하고, 각각의 발견된 역방향 코딩 예측 블록을 역방향 제2 코딩 예측 블록으로서 사용하여 적어도 하나의 제2 코딩 예측 블록을 획득하도록 구성되고, 여기서 제1 정밀도는 정수 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도, 또는 1/8 픽셀 정밀도를 포함한다.
제3 양태를 참조하여, 가능한 설계에서, 타겟 움직임 벡터 예측자는 타겟 순방향 움직임 벡터 예측자 및 타겟 역방향 움직임 벡터 예측자를 포함하고, 제1 코딩 예측 블록과 각각의 제2 코딩 예측 블록 사이의 차이를 계산하고, 제1 코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 코딩 예측 블록과 제1 코딩 블록 사이의 움직임 벡터 예측자를 사용할 때, 처리 유닛은 구체적으로: 순방향 제2 코딩 예측 블록들과 제1 코딩 예측 블록 사이의 차이들을 비교하고, 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 순방향 제2 코딩 예측 블록과 제1 코딩 블록 사이의 타겟 순방향 움직임 벡터 예측자를 사용하거나; 또는 역방향 제2 코딩 예측 블록들과 제1 코딩 예측 블록 사이의 차이들을 비교하고, 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 역방향 제2 코딩 예측 블록과 제1 코딩 블록 사이의 타겟 역방향 움직임 벡터 예측자를 사용하도록 구성된다.
제3 양태를 참조하여, 가능한 설계에서, 제1 코딩 블록의 제3 코딩 예측 블록은 순방향 제3 코딩 예측 블록 및 역방향 제3 코딩 예측 블록을 포함하고, 타겟 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행하여 제1 코딩 블록의 제3 코딩 예측 블록을 획득할 때, 처리 유닛은 구체적으로: 타겟 순방향 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 순방향 예측을 수행하여 제1 코딩 블록의 제3 코딩 예측 블록을 획득하고; 타겟 역방향 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 역방향 예측을 수행하여 제1 코딩 블록의 역방향 제3 코딩 예측 블록을 획득하도록 구성된다.
제3 양태를 참조하여, 가능한 설계에서, 제3 코딩 예측 블록에 기초하여 제1 코딩 블록의 타겟 코딩 예측 블록을 획득할 때, 처리 유닛은 구체적으로: 순방향 제3 코딩 예측 블록 및 역방향 제3 코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 제1 코딩 블록의 타겟 코딩 예측 블록을 획득하거나; 또는 순방향 제3 코딩 예측 블록을 제1 코딩 블록의 타겟 코딩 예측 블록으로서 사용하거나; 또는 역방향 제3 코딩 예측 블록을 제1 코딩 블록의 타겟 코딩 예측 블록으로서 사용하도록 구성된다.
제4 양태에 따르면, 인터 예측을 통한 이미지 디코딩을 위한 장치가 제공되는데, 이 장치는 다음을 포함한다: 제1 디코딩 블록의 예측 움직임 정보를 결정하도록 구성되는 결정 유닛- 예측 움직임 정보는 움직임 벡터 예측자 및 예측 참조 이미지 정보를 포함하고, 예측 참조 이미지 정보는 예측 참조 이미지 블록을 표현하기 위해 사용됨 -; 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여, 제1 디코딩 블록의 초기 디코딩 예측 블록을 획득하고, 초기 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 제1 디코딩 예측 블록을 획득하고; 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하여 적어도 하나의 제2 디코딩 예측 블록을 획득하고- 움직임 검색의 검색 위치는 움직임 벡터 예측자 및 제1 정밀도를 사용하여 결정됨 -; 제1 디코딩 예측 블록과 각각의 제2 디코딩 예측 블록 사이의 차이를 계산하고, 제1 디코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 디코딩 예측 블록과 제1 디코딩 블록 사이의 움직임 벡터 예측자를 사용하고; 타겟 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여 제1 디코딩 블록의 제3 디코딩 예측 블록을 획득하도록 구성되는 처리 유닛; 및 제3 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 타겟 디코딩 예측 블록을 획득하고, 타겟 디코딩 예측 블록에 기초하여 제1 디코딩 블록을 디코딩하도록 구성되는 디코딩 유닛.
제4 양태를 참조하여, 가능한 설계에서, 예측 움직임 정보는 순방향 예측 움직임 정보 및 역방향 예측 움직임 정보를 포함하고, 움직임 벡터 예측자는 순방향 움직임 벡터 예측자 및 역방향 움직임 벡터 예측자를 포함하고, 예측 참조 이미지 블록은 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록을 포함한다.
제4 양태를 참조하여, 가능한 설계에서, 초기 디코딩 예측 블록은 초기 순방향 디코딩 예측 블록 및 초기 역방향 디코딩 예측 블록을 포함하고, 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여 제1 디코딩 블록의 초기 디코딩 예측 블록을 획득할 때, 처리 유닛은 구체적으로: 순방향 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 순방향 예측을 수행하여 제1 디코딩 블록의 초기 순방향 디코딩 예측 블록을 획득하고; 역방향 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 역방향 예측을 수행하여 제1 디코딩 블록의 초기 역방향 디코딩 예측 블록을 획득하도록 구성된다.
제4 양태를 참조하여, 가능한 설계에서, 초기 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 제1 디코딩 예측 블록을 획득할 때, 처리 유닛은 구체적으로: 초기 순방향 디코딩 예측 블록과 초기 역방향 디코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 제1 디코딩 블록의 제1 디코딩 예측 블록을 획득하거나; 또는 초기 순방향 디코딩 예측 블록을 제1 디코딩 블록의 제1 디코딩 예측 블록으로서 사용하거나; 또는 초기 역방향 디코딩 예측 블록을 제1 디코딩 블록의 제1 디코딩 예측 블록으로서 사용하도록 구성된다.
제4 양태를 참조하여, 가능한 설계에서, 제2 디코딩 예측 블록은 순방향 제2 디코딩 예측 블록 및 역방향 제2 디코딩 예측 블록을 포함하고, 움직임 벡터 예측자에 기초하여 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하여 적어도 하나의 제2 디코딩 예측 블록을 획득할 때, 처리 유닛은 구체적으로: 순방향 움직임 벡터 예측자에 기초하여 순방향 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하고, 각각의 발견된 순방향 디코딩 예측 블록을 순방향 제2 디코딩 예측 블록으로서 사용하여 적어도 하나의 제2 디코딩 예측 블록을 획득하고; 역방향 움직임 벡터 예측자에 기초하여 역방향 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하고, 각각의 발견된 역방향 디코딩 예측 블록을 역방향 제2 디코딩 예측 블록으로서 사용하여 적어도 하나의 제2 디코딩 예측 블록을 획득하도록 구성되고, 여기서 제1 정밀도는 정수 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도, 또는 1/8 픽셀 정밀도를 포함한다.
제4 양태를 참조하여, 가능한 설계에서, 타겟 움직임 벡터 예측자는 타겟 순방향 움직임 벡터 예측자와 타겟 역방향 움직임 벡터 예측자를 포함하고, 제1 디코딩 예측 블록과 각각의 제2 디코딩 예측 블록 사이의 차이를 계산하고, 제1 디코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 디코딩 예측 블록과 제1 디코딩 블록 사이의 움직임 벡터 예측자를 사용할 때, 처리 유닛은 구체적으로: 순방향 제2 디코딩 예측 블록들과 제1 디코딩 예측 블록 사이의 차이들을 비교하고, 타겟 움직임 벡터 예측자로서 가장 작은 차이를 갖는 순방향 제2 디코딩 예측 블록과 제1 디코딩 블록 사이의 타겟 순방향 움직임 벡터 예측자를 사용하거나; 또는 역방향 제2 디코딩 예측 블록들과 제1 디코딩 예측 블록 사이의 차이들을 비교하고, 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 역방향 제2 디코딩 예측 블록과 제1 디코딩 블록 사이의 타겟 역방향 움직임 벡터 예측자를 사용하도록 구성된다.
제4 양태를 참조하여, 가능한 설계에서, 제1 디코딩 블록의 제3 디코딩 예측 블록은 순방향 제3 디코딩 예측 블록 및 역방향 제3 디코딩 예측 블록을 포함하고, 타겟 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여 제1 디코딩 블록의 제3 디코딩 예측 블록을 획득할 때, 처리 유닛은 구체적으로: 타겟 순방향 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 순방향 예측을 수행하여 제1 디코딩 블록의 순방향 제3 디코딩 예측 블록을 획득하고; 타겟 역방향 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 역방향 예측을 수행하여 제1 디코딩 블록의 역방향 제3 디코딩 예측 블록을 획득하도록 구성된다.
제4 양태를 참조하여, 가능한 설계에서, 제3 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 타겟 디코딩 예측 블록을 획득할 때, 처리 유닛은 구체적으로: 순방향 제3 디코딩 예측 블록과 역방향 제3 디코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 제1 디코딩 블록의 타겟 디코딩 예측 블록을 획득하거나; 또는 순방향 제3 디코딩 예측 블록을 제1 디코딩 블록의 타겟 디코딩 예측 블록으로서 사용하거나; 또는 역방향 제3 디코딩 예측 블록을 제1 디코딩 블록의 타겟 디코딩 예측 블록으로서 사용하도록 구성된다.
제5 양태에 따르면, 코딩 디바이스가 제공되고, 디바이스는 프로세서 및 메모리를 포함하고, 여기서 메모리는 컴퓨터 판독가능 프로그램을 저장하고, 프로세서는 제1 양태에 따른 코딩 방법을 구현하기 위해 메모리에서의 프로그램을 실행한다.
제6 양태에 따르면, 디코딩 디바이스가 제공되고, 디바이스는 프로세서 및 메모리를 포함하고, 여기서 메모리는 컴퓨터 판독가능 프로그램을 저장하고, 프로세서는 제2 양태에 따른 디코딩 방법을 구현하기 위해 메모리에서의 프로그램을 실행한다.
제7 양태에 따르면, 제1 양태 및 제2 양태에 대한 컴퓨터 소프트웨어 명령어를 저장하도록 구성되는 컴퓨터 저장 매체가 제공되며, 컴퓨터 소프트웨어 명령어는 전술한 양태들을 수행하기 위해 설계된 프로그램을 포함한다.
본 발명의 실시예들의 제3 내지 제7 양태들은 본 발명의 실시예들의 제1 및 제2 양태들의 기술적 해결책들과 일치하고, 모든 양태들 및 대응하는 구현가능 설계 방식들에 의해 획득되는 유익한 효과들은 유사하다는 것을 이해해야 한다. 세부 사항들은 다시 설명되지 않는다.
도 1a 및 도 1b는 각각 병합 모드 및 비-병합 모드에서 현재 블록의 예측 움직임 정보를 선택하는 개략도들이다;
도 2는 비디오 코덱 장치 또는 전자 디바이스의 개략적인 블록도이다;
도 3은 비디오 코덱 시스템의 개략적인 블록도이다;
도 4는 본 발명의 실시예에 따른 인터 예측을 통한 이미지 코딩을 위한 방법의 흐름도이다;
도 5는 본 발명의 실시예에 따른 인터 예측을 통한 이미지 디코딩을 위한 방법의 흐름도이다;
도 6a, 도 6b, 도 7, 도 8a, 도 8b, 도 8c, 도 8d, 도 9a 및 도 9b는 본 발명의 실시예에 따른 인터 예측을 위한 이미지 디코딩을 위한 프로세스의 개략도들이다;
도 10은 본 발명의 실시예에 따른 인터 예측을 위한 이미지 코딩을 위한 장치의 구조도이다;
도 11은 본 발명의 실시예에 따른 인터 예측을 사용하는 이미지 코더의 구조도이다;
도 12는 본 발명의 실시예에 따른 인터 예측을 통한 이미지 디코딩을 위한 장치의 구조도이다; 및
도 13은 본 발명의 실시예에 따른 인터 예측을 사용하는 이미지 디코더의 구조도이다.
도 2는 비디오 코덱 장치 또는 전자 디바이스의 개략적인 블록도이다;
도 3은 비디오 코덱 시스템의 개략적인 블록도이다;
도 4는 본 발명의 실시예에 따른 인터 예측을 통한 이미지 코딩을 위한 방법의 흐름도이다;
도 5는 본 발명의 실시예에 따른 인터 예측을 통한 이미지 디코딩을 위한 방법의 흐름도이다;
도 6a, 도 6b, 도 7, 도 8a, 도 8b, 도 8c, 도 8d, 도 9a 및 도 9b는 본 발명의 실시예에 따른 인터 예측을 위한 이미지 디코딩을 위한 프로세스의 개략도들이다;
도 10은 본 발명의 실시예에 따른 인터 예측을 위한 이미지 코딩을 위한 장치의 구조도이다;
도 11은 본 발명의 실시예에 따른 인터 예측을 사용하는 이미지 코더의 구조도이다;
도 12는 본 발명의 실시예에 따른 인터 예측을 통한 이미지 디코딩을 위한 장치의 구조도이다; 및
도 13은 본 발명의 실시예에 따른 인터 예측을 사용하는 이미지 디코더의 구조도이다.
이하에서는 본 발명의 실시예들에서의 첨부 도면들을 참조하여 본 발명의 실시예들에서의 기술적 해결책들을 명확하고 완전하게 설명한다. 명백하게, 설명된 실시예들은 본 발명의 실시예들 전부가 아니라 일부이다. 본 기술분야의 통상의 기술자에 의해 창의적 노력 없이 본 발명의 실시예들에 기초하여 획득되는 모든 다른 실시예들은 본 발명의 보호 범위 내에 속할 것이다.
인터 예측 기술은 병합(Merge) 모드와 비-병합 모드로 분류되고, 비-병합 모드는 스킵(SKIP) 모드 및 비-스킵 모드로 추가로 분류된다.
인터 예측 기술에서의 병합 모드의 비-스킵 모드 및 비-병합 모드에서, 현재 이미지 블록의 중복 정보는 현재 이미지에 인접한 코딩된 또는 디코딩된 이미지의 픽셀 정보에 기초하여 제거되어 잔차를 획득한다.
인터 예측 기술에서, 현재 이미지 블록의 중복 정보를 효과적으로 제거하기 위해, 인코더 측 또는 디코더 측은 현재 이미지 블록의 잔차를 감소시키기 위해, 참조 이미지로부터의 현재 이미지 블록과 가장 유사한 이미지 블록을 획득할 필요가 있다. 인코더 측 또는 디코더 측은 일반적으로 움직임 추정을 통해 전술한 참조 이미지의 이미지 블록을 획득한다. 기존의 비디오 코딩 및 디코딩 기술에서, 참조 이미지는 일반적으로 움직임 추정 프로세스에서 코딩 및 디코딩 동안 이미지 블록의 유닛에서 적절한 매칭된 이미지 블록에 대해 검색된다. 일부 실시예들에서, 이미지 블록은 인코더 측에 의해 코딩되는 이미지의 예측 유닛 또는 디코더 측에 의해 재구성되는 이미지의 예측 유닛이다. 일부 실시예들에서, 이미지 블록은 인코더 측에 의해 코딩되는 이미지의 변환 유닛 또는 디코더 측에 의해 재구성되는 이미지의 변환 유닛이다. 일부 실시예들에서, 이미지 블록은 인코더 측에 의해 코딩되는 이미지의 코딩 유닛 또는 코딩 서브유닛, 또는 디코더 측에 의해 재구성되는 이미지의 디코딩 유닛 또는 디코딩 서브유닛이다. 어떠한 제한도 부과되지 않는다.
인터 예측 기술의 비-병합 모드에서, 인코더 측은 현재 이미지 블록에 대응하는 픽셀 값 및 매칭된 이미지 블록에 대응하는 픽셀 값에 대해 감산을 수행하여 잔차를 획득하고, 잔차가 변환 및 양자화된 후에 획득된 값에 대해 엔트로피 인코딩을 수행하고, 최종적으로 엔트로피 인코딩을 통해 획득된 비트 스트림과 검색을 통해 획득된 움직임 오프셋(즉, 움직임 벡터 차이) 양자 모두를 코드 스트림 내로 기입한다. 이에 대응하여, 예측 보상(또는 움직임 보상으로서 지칭됨) 동안, 디코더 측은 먼저 엔트로피 인코딩 비트 스트림을 획득한 후에 엔트로피 인코딩을 수행하여, 대응하는 잔차 및 대응하는 움직임 벡터 차이를 획득하고; 그 후 인접 블록의 움직임 벡터 값 및 획득된 움직임 벡터 차이에 기초하여 움직임 벡터 값을 획득하고; 움직임 벡터 값에 기초하여 참조 이미지로부터 대응하는 매칭된 이미지 블록을 획득하고; 매칭된 이미지 블록에 대응하는 픽셀 값 및 잔차에 대응하는 픽셀 값을 가산하여 디코딩된 현재 이미지 블록의 값을 획득한다.
인터 예측 기술의 병합 모드의 비-스킵 모드에서, 인코더 측은 현재 이미지 블록에 대응하는 픽셀 값 및 매칭된 이미지 블록에 대응하는 픽셀 값에 대해 감산을 수행하여, 잔차를 획득하고, 잔차가 변환 및 양자화된 후에 획득된 값에 대해 엔트로피 인코딩을 수행하고, 최종적으로 엔트로피 인코딩을 통해 획득된 비트 스트림을 코드 스트림 내로 기입한다. 이에 대응하여, 예측 보상(또는 움직임 보상으로서 지칭됨) 동안, 디코더 측은 먼저 엔트로피 인코딩 비트 스트림을 획득한 후에 엔트로피 인코딩을 수행하여, 대응하는 잔차를 획득하고; 인접 블록의 움직임 벡터 값에 기초하여 참조 이미지로부터 대응하는 매칭된 이미지 블록을 획득하고; 매칭된 이미지 블록에 대응하는 픽셀 값 및 잔차에 대응하는 픽셀 값을 가산하여 디코딩된 현재 이미지 블록의 값을 획득한다.
인터 예측 기술의 병합 모드의 스킵 모드에서, 비트 레이트를 절약하기 위해, 잔차 및 움직임 벡터 차이가 획득될 필요가 없다. 코딩 및 디코딩 프로세스들 양자 모두에서, 대응하는 매칭된 이미지 블록은 인접 블록의 움직임 정보에 기초하여 직접 획득되고, 현재 이미지 블록의 값으로서 사용된다.
도 1a에 도시된 바와 같이, 병합 모드에서, 인접 블록들은 상이한 인덱스 값들로서 마킹되고, 인덱스 값들은 그 움직임 벡터 정보가 현재 블록에 의해 현재 블록의 예측 움직임 정보로서 사용되는 인접 블록을 결정하기 위해 사용된다. 도 1b에 도시된 바와 같이, 비-병합 모드에서, 움직임 벡터 예측자 목록은 인접 블록을 검출함으로써 구성되고, 움직임 벡터 예측자는 현재 블록의 움직임 벡터 예측자로서 현재 블록에 대한 움직임 벡터 예측자 목록으로부터 선택된다. 인터프레임 코딩 및 디코딩에서, 인접 블록의 움직임 벡터 정보가 현재 블록의 움직임 벡터 예측자로서 직접 사용된다는 것을 알 수 있다. 인터 예측의 움직임 벡터 예측자를 직접 획득하는 이러한 방식은 예측 움직임 정밀도의 편차를 불가피하게 야기한다.
도 2는 비디오 코덱 장치 또는 전자 디바이스(50)의 개략적인 블록도이다. 장치 또는 전자 디바이스는 본 발명의 실시예에 따른 코덱에 통합될 수 있다. 도 3은 본 발명의 실시예에 따른 비디오 코덱 시스템의 개략적인 장치도이다. 이하는 도 2 및 도 3의 유닛들을 설명한다.
전자 디바이스(50)는 예를 들어 무선 통신 시스템 내의 모바일 단말기일 수 있다. 본 발명의 실시예들은 비디오 이미지를 코딩하거나, 또는 디코딩하거나, 또는 코딩 및 디코딩할 필요가 있을 수 있는 임의의 전자 디바이스 또는 장치에 의해 구현될 수 있다는 것을 이해해야 한다.
장치(50)는 장치에 통합되고 장치를 보호하도록 구성되는 하우징을 포함할 수 있다. 장치(50)는 액정 디스플레이의 형태로 디스플레이(32)를 추가로 포함할 수 있다. 본 발명의 다른 실시예에서, 디스플레이는 이미지 또는 비디오 디스플레이에 적용되는 임의의 적절한 디스플레이 기술일 수 있다. 장치(50)는 키패드(34)를 추가로 포함할 수 있다. 본 발명의 다른 실시예에서, 임의의 적절한 데이터 또는 사용자 인터페이스 메커니즘이 사용될 수 있다. 예를 들어, 사용자 인터페이스는 터치 감지 디스플레이의 일부로서 역할을 하기 위해 가상 키보드 또는 데이터 입력 시스템으로서 구현될 수 있다. 장치는 마이크로폰(36) 또는 임의의 적절한 오디오 입력을 포함할 수 있고, 오디오 입력은 디지털 또는 아날로그 신호 입력일 수 있다. 장치(50)는 다음의 오디오 출력 디바이스를 추가로 포함할 수 있다. 본 발명의 이 실시예에서, 오디오 출력 디바이스는 헤드셋(38), 스피커, 아날로그 오디오 출력 커넥션, 또는 디지털 오디오 출력 커넥션 중 어느 하나일 수 있다. 장치(50)는 또한 배터리(40)를 포함할 수 있다. 본 발명의 다른 실시예에서, 장치는 태양 전지, 연료 전지, 또는 클록 메커니즘 생성기와 같은 임의의 적절한 모바일 에너지 디바이스에 의해 전력을 공급받을 수 있다. 장치는 다른 디바이스와의 단거리 가시선 통신을 수행하도록 구성된 적외선 포트(42)를 추가로 포함할 수 있다. 다른 실시예에서, 장치(50)는 블루투스 무선 접속 또는 USB/라이브 라인 유선 접속과 같은 임의의 적절한 단거리 통신 해결책을 추가로 포함할 수 있다.
장치(50)는 장치(50)를 제어하도록 구성된 프로세서 또는 컨트롤러(56)를 포함할 수 있다. 컨트롤러(56)는 메모리(58)에 접속될 수 있다. 본 발명의 이 실시예에서, 메모리는 이미지 데이터 및 오디오 데이터를 저장할 수 있고/있거나, 컨트롤러(56) 상에 구현된 명령어를 저장할 수 있다. 컨트롤러(56)는 또한 오디오 및/또는 비디오 데이터 코딩 및 디코딩을 구현하도록 적응된 코덱 회로(54)에 접속될 수 있거나, 또는 컨트롤러(56)는 코덱 회로(54)에 접속되어 보조 코딩 및 디코딩을 구현한다.
장치(50)는 사용자 정보를 제공하도록 구성되고 네트워크 인증 및 허가된 사용자 인증을 위한 정보를 제공하도록 적응되는 카드 판독기(48) 및 스마트 카드(46)를 추가로 포함할 수 있다.
장치(50)는 무선 인터페이스 회로(52)를 추가로 포함할 수 있다. 무선 인터페이스 회로는 컨트롤러에 접속되고, 예를 들어, 셀룰러 통신 네트워크, 무선 통신 시스템, 또는 무선 로컬 영역 네트워크와 통신하기 위해 사용되는 무선 통신 신호를 생성하도록 적응된다. 장치(50)는 안테나(44)를 추가로 포함할 수 있다. 안테나는 무선 인터페이스 회로(52)에 접속되어 무선 인터페이스 회로(52)에서 생성된 무선 주파수 신호들을 다른(복수의) 장치들로 전송하고 다른(복수의) 장치들로부터 무선 주파수 신호들을 수신한다.
본 발명의 일부 실시예들에서, 장치(50)는 단일 프레임을 기록 또는 검출할 수 있는 카메라를 포함한다. 코덱(54) 또는 컨트롤러는 이러한 단일 프레임들을 수신하고 처리한다. 본 발명의 일부 실시예들에서, 장치는 송신 및/또는 저장 전에 다른 디바이스로부터 처리될 비디오 이미지 데이터를 수신할 수 있다. 본 발명의 일부 실시예들에서, 장치(50)는 코딩/디코딩을 위한 이미지를 무선 또는 유선 접속을 통해 수신할 수 있다.
도 3은 본 발명의 실시예에 따른 다른 비디오 코덱 시스템(10)의 개략적인 블록도이다. 도 3에 도시된 바와 같이, 비디오 코덱 시스템(10)은 소스 장치(12) 및 목적지 장치(14)를 포함한다. 소스 장치(12)는 코딩된 비디오 데이터를 생성한다. 따라서, 소스 장치(12)는 비디오 코딩 장치 또는 비디오 코딩 디바이스로서 지칭될 수 있다. 목적지 장치(14)는 소스 장치(12)에 의해 생성된 코딩된 비디오 데이터를 디코딩할 수 있다. 따라서, 목적지 장치(14)는 비디오 디코딩 장치 또는 비디오 디코딩 디바이스로서 지칭될 수 있다. 소스 장치(12) 및 목적지 장치(14)는 비디오 코덱 장치 또는 비디오 코덱 디바이스의 사례들일 수 있다. 소스 장치(12) 및 목적지 장치(14)는 데스크톱 컴퓨터, 모바일 컴퓨팅 장치, 노트북(예를 들어, 랩톱) 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, 스마트폰과 같은 핸드셋, 텔레비전, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 차량-내 컴퓨터, 또는 다른 유사한 장치를 포함하는 광범위한 장치들을 포함할 수 있다.
목적지 장치(14)는 채널(16)을 통해 소스 장치(12)로부터 코딩된 비디오 데이터를 수신할 수 있다. 채널(16)은 소스 장치(12)로부터 목적지 장치(14)로 코딩된 비디오 데이터를 송신할 수 있는 하나 이상의 매체 및/또는 장치를 포함할 수 있다. 예에서, 채널(16)은 소스 장치(12)가 실시간으로 목적지 장치(14)에 코딩된 비디오 데이터를 직접 송신할 수 있게 하는 하나 이상의 통신 매체를 포함할 수 있다. 이 경우에, 소스 장치(12)는 통신 표준(예를 들어, 무선 통신 프로토콜)에 따라 코딩된 비디오 데이터를 변조할 수 있고, 변조된 비디오 데이터를 목적지 장치(14)에 송신할 수 있다. 하나 이상의 통신 매체는 무선 주파수(RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인과 같은 무선 및/또는 유선 통신 매체를 포함할 수 있다. 하나 이상의 통신 매체는 패킷 기반 네트워크(예를 들어, 로컬 영역 네트워크, 광역 네트워크, 또는 글로벌 네트워크(예를 들어, 인터넷))의 일부를 형성할 수 있다. 하나 이상의 통신 매체는 라우터, 스위치, 기지국, 또는 소스 장치(12)로부터 목적지 장치(14)로의 통신을 용이하게 하는 다른 디바이스를 포함할 수 있다.
다른 예에서, 채널(16)은 소스 장치(12)에 의해 생성된 코딩된 비디오 데이터를 저장하는 저장 매체를 포함할 수 있다. 이 경우, 목적지 장치(14)는 디스크 액세스 또는 카드 액세스를 통해 저장 매체에 액세스할 수 있다. 저장 매체는 블루레이, DVD, CD-ROM, 플래시 메모리, 또는 코딩된 비디오 데이터를 저장하도록 구성된 다른 적절한 디지털 저장 매체와 같은 다양한 로컬 액세스 데이터 저장 매체를 포함할 수 있다.
다른 예에서, 채널(16)은 소스 장치(12)에 의해 생성된 코딩된 비디오 데이터를 저장하는 파일 서버 또는 다른 중간 저장 장치를 포함할 수 있다. 이 예에서, 목적지 장치(14)는 파일 서버 또는 다른 중간 저장 장치에 저장된 코딩된 비디오 데이터를 스트리밍 송신 또는 다운로딩을 통해 액세스할 수 있다. 파일 서버는 코딩된 비디오 데이터를 저장하고 코딩된 비디오 데이터를 목적지 장치(14)에 송신할 수 있는 서버 타입일 수 있다. 인스턴스 파일 서버는 웹 서버(예를 들어, 웹사이트에 적용됨), FTP(File Transfer Protocol) 서버, NAS(network-attached storage) 장치, 및 로컬 디스크 드라이브를 포함한다.
목적지 장치(14)는 표준 데이터 접속(예를 들어, 인터넷 접속)을 통해 코딩된 비디오 데이터에 액세스할 수 있다. 데이터 접속의 인스턴스 타입은 무선 채널(예를 들어, Wi-Fi 접속), 유선 접속(예를 들어, DSL 또는 케이블 모뎀), 또는 파일 서버 상에 저장된 코딩된 비디오 데이터에 액세스하도록 적응된 양자 모두의 조합을 포함한다. 파일 서버로부터의 코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이들의 조합일 수 있다.
본 발명의 기술은 무선 애플리케이션 시나리오로 제한되지 않는다. 예를 들어, 기술은 다음과 같은 다양한 멀티미디어 애플리케이션들에서 비디오 코딩 및 디코딩을 지원하기 위해 사용될 수 있다: 오버-디-에어(over-the-air) 텔레비전 방송, 케이블 텔레비전 송신, 위성 텔레비전 송신, (예를 들어, 인터넷을 통한) 스트리밍 비디오 송신, 데이터 저장 매체에 저장된 비디오 데이터의 코딩, 데이터 저장 매체에 저장된 비디오 데이터의 디코딩, 및 다른 애플리케이션들. 일부 경우들에서, 비디오 코덱 시스템(10)은 비디오 스트리밍 송신, 비디오 재생, 비디오 방송, 및/또는 비디오-텔레포니 등의 애플리케이션들을 지원하도록 단방향 또는 양방향 비디오 송신을 지원하도록 구성될 수 있다.
도 3의 경우에서, 소스 장치(12)는 비디오 소스(18), 비디오 코더(20), 및 출력 인터페이스(22)를 포함한다. 일부 경우들에서, 출력 인터페이스(22)는 변조기/복조기(모뎀) 및/또는 송신기를 포함할 수 있다. 비디오 소스(18)는 비디오 캡처 장치(예를 들어, 비디오 카메라), 이전에 캡처된 비디오 데이터를 포함하는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하도록 구성된 비디오 입력 인터페이스, 및/또는 비디오 데이터를 생성하도록 구성된 컴퓨터 그래픽 시스템, 또는 전술한 비디오 데이터 소스들의 조합을 포함할 수 있다.
비디오 코더(20)는 비디오 소스(18)로부터의 비디오 데이터를 코딩할 수 있다. 일부 경우들에서, 소스 장치(12)는 출력 인터페이스(22)를 사용하여 목적지 장치(14)에 코딩된 비디오 데이터를 직접 송신한다. 코딩된 비디오 데이터는 또한 디코딩 및/또는 재생을 위해 목적지 장치(14)에 의한 추후 액세스를 위해 저장 매체 또는 파일 서버에 저장될 수 있다.
도 3의 경우에서, 목적지 장치(14)는 입력 인터페이스(28), 비디오 디코더(30), 및 디스플레이 장치(32)를 포함한다. 일부 경우들에서, 입력 인터페이스(28)는 수신기 및/또는 모뎀을 포함한다. 입력 인터페이스(28)는 채널(16)을 통해 코딩된 비디오 데이터를 수신할 수 있다. 디스플레이 장치(32)는 목적지 장치(14) 내에 통합될 수 있거나, 목적지 장치(14) 외부에 위치될 수 있다. 일반적으로, 디스플레이 장치(32)는 디코딩된 비디오 데이터를 디스플레이한다. 디스플레이 장치(32)는 액정 디스플레이(LCD), 플라즈마 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 다른 타입의 디스플레이 장치와 같은 다양한 디스플레이 장치들을 포함할 수 있다.
비디오 코더(20) 및 비디오 디코더(30)는 비디오 압축 표준(예를 들어, 고효율 비디오 코딩(High Efficiency Video Coding) H.265 표준)에 따라 동작할 수 있고, HEVC 테스트 모델(HM)에 따를 수 있다. H.265 표준의 텍스트 설명 ITU-TH.265(V3) (04/2015)은 2015년 4월 29일에 발표되었고, http://handle.itu.int/11.1002/1000/12455로부터 다운로딩될 수 있고, 파일의 전체 내용은 본 명세서에 참고로 포함된다.
대안적으로, 비디오 코더(20) 및 비디오 디코더(30)는 다른 사유 또는 산업 표준에 따라 동작할 수 있다. 이 표준은 ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262, ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual, 또는 ITU-T H.264(ISO/IEC MPEG-4 AVC라고도 함)를 포함하고, 스케일러블 비디오 코딩(SVC) 및 멀티-뷰 비디오 코딩(MVC) 확장들을 포함한다. 본 발명의 기술은 임의의 특정 코덱 표준 또는 기술로 제한되지 않는다는 것을 이해해야 한다.
또한, 도 3은 단지 사례일 뿐이며, 본 발명의 기술은 코딩 장치와 디코딩 장치 사이의 임의의 데이터 통신을 반드시 포함하는 것은 아닌 비디오 코덱 애플리케이션들(예를 들어, 단방향 비디오 코딩 또는 비디오 디코딩)에 적용될 수 있다. 다른 경우에서, 데이터는 로컬 메모리로부터 검색되고, 데이터는 네트워크 스트리밍 송신을 통해 송신되거나, 데이터는 유사한 방식으로 동작된다. 코딩 장치는 데이터를 코딩하고 데이터를 메모리에 저장할 수 있고, 및/또는 디코딩 장치는 메모리로부터 데이터를 검색하고 데이터를 디코딩할 수 있다. 많은 경우에, 코딩 및 디코딩은, 서로 통신하지 않지만 단지 메모리에 대해 데이터를 코딩하고/하거나 메모리로부터 데이터를 검색하고 데이터를 디코딩하는 복수의 장치에 의해 수행된다.
비디오 코더(20) 및 비디오 디코더(30) 각각은 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드-프로그램가능 게이트 어레이(FPGA), 이산 로직, 하드웨어, 또는 이들의 임의의 조합과 같은 복수의 적절한 회로 중 임의의 하나로서 구현될 수 있다. 기술이 소프트웨어를 사용하여 부분적으로 또는 전체적으로 구현되는 경우, 장치는 소프트웨어의 명령어를 적절한 비일시적 컴퓨터 판독가능 저장 매체에 저장할 수 있고, 하나 이상의 프로세서를 사용하여, 본 발명에서 기술을 실행하기 위한 하드웨어에서 명령어를 실행할 수 있다. (하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함하는) 전술한 항목들 중 임의의 하나가 하나 이상의 프로세서로서 고려될 수 있다. 비디오 코더(20) 및 비디오 디코더(30) 각각은 하나 이상의 코더 또는 디코더에 포함될 수 있고, 비디오 코더(20) 및 비디오 디코더(30) 중 어느 하나는 다른 장치에서 조합된 코더/디코더(코덱(CODEC))의 일부로서 통합될 수 있다.
본 발명에서는, 비디오 코더(20)가 신호를 사용하는 것에 의해 다른 장치(예를 들어, 비디오 디코더(30))에 정보를 전송하는 것이 일반적으로 표시될 수 있다. "신호를 사용하는 것에 의해 전송"이라는 용어는 일반적으로 구문 요소를 지칭할 수 있고/있거나 코딩된 비디오 데이터의 송신을 지칭할 수 있다. 송신은 실시간으로 또는 거의 실시간으로 발생할 수 있다. 대안적으로, 송신은 시간 스팬에 걸쳐 발생할 수 있는데, 예를 들어, 구문 요소가 코딩 동안 코딩된 이진 데이터를 사용하여 컴퓨터 판독가능 저장 매체에 저장될 때 발생할 수 있다. 구문 요소는 매체에 저장된 후에 임의의 시간에 디코딩 장치에 의해 검색될 수 있다.
도 4에 도시된 바와 같이, 본 발명의 실시예는 인터 예측을 통한 이미지 코딩을 위한 방법을 제공한다. 구체적인 절차는 다음과 같다.
단계 401: 제1 코딩 블록의 예측 움직임 정보를 결정하고, 여기서 예측 움직임 정보는 움직임 벡터 예측자 및 예측 참조 이미지 정보를 포함하고, 예측 참조 이미지 정보는 예측 참조 이미지 블록을 나타내기 위해 사용된다.
제1 코딩 블록은 현재 처리될 및 코딩될 블록이고, 예측 움직임 정보 내의 움직임 벡터 예측자는 순방향 움직임 벡터 예측자 및 역방향 움직임 벡터 예측자를 포함하고, 예측 참조 이미지 정보는 순방향 예측 참조 이미지 블록의 참조 프레임 인덱스 정보 및 역방향 예측 참조 이미지 블록의 참조 프레임 인덱스 정보를 포함한다.
또한, 제1 코딩 블록의 예측 참조 이미지 블록은 움직임 벡터 예측자 또는 제1 코딩 블록의 예측 참조 이미지 정보에 기초하여 획득된다.
선택적으로, 제1 코딩 블록의 예측 움직임 정보는 순방향 움직임 벡터 예측자, 역방향 움직임 벡터 예측자, 순방향 예측 참조 이미지 블록에 대응하는 픽처 오더 카운트(Picture Order Count, POC), 및 역방향 예측 참조 이미지 블록에 대응하는 POC를 포함하거나; 또는 순방향 움직임 벡터 예측자 및 순방향 예측 참조 이미지 블록에 대응하는 POC만을 포함할 수 있거나; 또는 역방향 움직임 벡터 예측자 및 역방향 예측 참조 이미지 블록에 대응하는 POC만을 포함할 수 있다.
구체적으로, 제1 코딩 블록의 예측 움직임 정보를 결정하기 위한 방법에 대해서는, 종래 기술에서의 현재 코딩 블록의 예측 움직임 정보를 결정하기 위한 방법을 참조한다.
인터 예측의 병합 모드가 사용되는 경우, 제1 코딩 블록의 인접 블록의 움직임 정보에 기초하여 후보 예측 움직임 정보 목록이 구성되고, 후보 예측 움직임 정보가 후보 예측 움직임 정보 목록으로부터 제1 코딩 블록의 예측 움직임 정보로서 선택된다. 후보 움직임 정보 목록은 움직임 벡터 예측자, 참조 이미지 블록의 참조 프레임 인덱스 정보 등을 포함한다. 이 모드에서의 움직임 벡터 예측자는 인접 블록의 움직임 벡터 값이라는 점을 유의해야 한다.
인터 예측의 비-병합 모드가 사용되는 경우, 제1 코딩 블록의 인접 블록의 움직임 정보에 기초하여 움직임 벡터 예측자 목록이 구성되고, 움직임 벡터가 움직임 벡터 예측자 목록으로부터 제1 코딩 블록의 움직임 벡터 예측자로서 선택된다. 이 모드에서의 움직임 벡터 예측자는 인접 블록의 움직임 벡터 값일 수 있거나, 선택된 인접 블록의 움직임 벡터 값과 제1 코딩 블록의 움직임 벡터 차이의 합일 수 있다는 점에 유의해야 한다. 움직임 벡터 차이는 제1 코딩 블록에 대해 움직임 추정을 수행함으로써 획득된 움직임 벡터와 선택된 인접 블록의 움직임 벡터 값 사이의 차이이다.
단계 402: 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행하여, 제1 코딩 블록의 초기 코딩 예측 블록을 획득하고, 초기 코딩 예측 블록에 기초하여 제1 코딩 블록의 제1 코딩 예측 블록을 획득한다.
또한, 예측 참조 이미지 블록에 대응하는 POC가 제1 코딩 블록의 POC와 동일하지 않을 때, 순방향 예측 및 역방향 예측을 포함하는 양방향 예측이 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 수행된다. 예측 참조 이미지 블록에 대응하는 POC가 제1 코딩 블록의 POC보다 작을 때, 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 순방향 예측이 수행되거나; 또는 예측 참조 이미지 블록에 대응하는 POC가 제1 코딩 블록의 POC보다 클 때, 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 역방향 예측이 수행된다.
구체적으로, 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행하여 제1 코딩 블록의 순방향 초기 코딩 예측 블록을 획득하는 것은 다음의 프로세스들을 포함한다.
S421. 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 순방향 예측을 수행하여, 구체적으로, 순방향 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 순방향 예측을 수행하여, 제1 코딩 블록의 초기 순방향 코딩 예측 블록을 획득한다.
가능한 구현에서, 순방향 예측은 예측 움직임 정보에서의 순방향 예측 참조 이미지 블록에 기초하여 제1 코딩 블록에 대해 수행되어 제1 코딩 블록의 초기 순방향 코딩 예측 블록을 획득한다.
다른 가능한 구현에서, 순방향 예측은 예측 움직임 정보에서의 순방향 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 수행되어 제1 코딩 블록의 초기 순방향 코딩 예측 블록을 획득한다.
S422. 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 역방향 예측을 수행하여, 구체적으로, 역방향 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 역방향 예측을 수행하여, 제1 코딩 블록의 초기 역방향 코딩 예측 블록을 획득한다.
가능한 구현에서, 예측 움직임 정보에서의 역방향 예측 참조 이미지 블록에 기초하여 제1 코딩 블록에 대해 역방향 예측이 수행되어, 제1 코딩 블록의 역방향 초기 코딩 예측 블록을 획득한다.
다른 가능한 구현에서, 예측 움직임 정보에서의 역방향 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 역방향 예측이 수행되어 제1 코딩 블록의 역방향 초기 코딩 예측 블록을 획득한다.
초기 코딩 예측 블록은 초기 순방향 코딩 예측 블록 및 초기 역방향 코딩 예측 블록을 포함한다.
또한, 초기 코딩 예측 블록에 기초하여 제1 코딩 블록의 제1 코딩 예측 블록을 획득하는 것은 다음의 3개의 구현을 포함한다.
제1 구현에서, 초기 순방향 코딩 예측 블록 및 초기 역방향 코딩 예측 블록에 대해 가중치를 부여한 합산이 수행되어 제1 코딩 블록의 제1 코딩 예측 블록을 획득한다.
이 구현에서, 선택적으로, 초기 순방향 코딩 예측 블록과 초기 역방향 코딩 예측 블록의 평균 값이 제1 코딩 블록의 제1 코딩 예측 블록으로서 사용된다.
제2 구현에서, 초기 순방향 코딩 예측 블록은 제1 코딩 블록의 제1 코딩 예측 블록으로서 사용된다.
제3 구현에서, 초기 역방향 코딩 예측 블록은 제1 코딩 블록의 제1 코딩 예측 블록으로서 사용된다.
단계 403: 적어도 하나의 제2 코딩 예측 블록을 획득하기 위해 움직임 벡터 예측자에 기초하여 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 추정을 수행한다.
일부 실시예들에서, 이 단계는 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하는 것이고, 여기서 움직임 검색의 검색 위치는 움직임 벡터 예측자 및 제1 정밀도를 사용하여 결정된다. 실현가능한 구현에서, 움직임 검색의 위치는 움직임 벡터 예측자에 의해 표현되는 위치 주위에 있고 제1 정밀도의 커버리지 내에 있는 위치이다. 예를 들어, 움직임 벡터 예측자에 의해 표시된 위치가 (1, 1)이고, 제1 정밀도가 1/2 픽셀 정밀도이면, 움직임 검색의 위치는 (1.5, 1), (1.5, 1.5), (1.5, -0.5), (1, 1), (1, 1.5), (1, -0.5), (-0.5, 1), (-0.5, 1.5), 및 (-0.5, -0.5)이다.
구체적으로, 움직임 벡터 예측자에 기초하여 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 추정을 수행하여 적어도 하나의 제2 코딩 예측 블록을 획득하는 것은 다음의 프로세스들을 포함한다:
S431. 순방향 움직임 벡터 예측자에 기초하여 순방향 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하고, 각각의 발견된 순방향 코딩 예측 블록을 순방향 제2 코딩 예측 블록으로서 사용하여 적어도 하나의 제2 코딩 예측 블록을 획득한다.
S432. 역방향 움직임 벡터 예측자에 기초하여 역방향 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하고, 각각의 발견된 역방향 코딩 예측 블록을 역방향 제2 코딩 예측 블록으로서 사용하여 적어도 하나의 제2 코딩 예측 블록을 획득하고, 제2 코딩 예측 블록은 순방향 제2 코딩 예측 블록 및 역방향 제2 코딩 예측 블록을 포함한다.
제1 정밀도는 정수 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도, 또는 1/8 픽셀 정밀도를 포함한다. 이는 제한되지 않는다.
단계 404: 제1 코딩 예측 블록과 각각의 제2 코딩 예측 블록 사이의 차이를 계산하고, 제1 코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 코딩 예측 블록과 제1 코딩 블록 사이의 움직임 벡터 예측자를 사용한다.
구체적으로, 제1 코딩 예측 블록과 각각의 제2 코딩 예측 블록 사이의 차이를 계산하고, 제1 코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 코딩 예측 블록과 제1 코딩 블록 사이의 움직임 벡터 예측자를 사용하는 것은 다음의 프로세스들을 포함한다:
S441. 순방향 제2 코딩 예측 블록들과 제1 코딩 예측 블록 사이의 차이들을 비교하고, 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 순방향 제2 코딩 예측 블록과 제1 코딩 블록 사이의 타겟 순방향 움직임 벡터 예측자를 사용한다.
S442. 역방향 제2 코딩 예측 블록들과 제1 코딩 예측 블록 사이의 차이들을 비교하고, 타겟 움직임 벡터 예측자로서 가장 작은 차이를 갖는 역방향 제2 코딩 예측 블록과 제1 코딩 블록 사이의 타겟 역방향 움직임 벡터 예측자를 사용하며, 타겟 움직임 벡터 예측자는 타겟 순방향 움직임 벡터 예측자 및 타겟 역방향 움직임 벡터 예측자를 포함한다.
구체적으로, 제2 코딩 예측 블록들과 제1 코딩 예측 블록 사이의 차이들이 비교될 때, 2개의 이미지 블록에서의 픽셀 차이들의 절대값들의 합은 제2 코딩 예측 블록과 제1 코딩 예측 블록 사이의 차이의 값으로서 사용될 수 있다. 선택적으로, 2개의 이미지 블록에서의 픽셀 차이들의 제곱값들의 합은 제2 코딩 예측 블록과 제1 코딩 예측 블록 사이의 차이의 값으로서 사용될 수 있다. 차이 비교 방법은 구체적으로 제한되지 않는다.
단계 405: 타겟 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행하여 제1 코딩 블록의 제3 코딩 예측 블록을 획득한다.
구체적으로, 타겟 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행하여 제1 코딩 블록의 제3 코딩 예측 블록을 획득하는 것은 다음의 프로세스들을 포함한다:
S451. 타겟 순방향 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 순방향 예측을 수행하여 제1 코딩 블록의 순방향 제3 코딩 예측 블록을 획득한다.
S452. 타겟 역방향 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 역방향 예측을 수행하여 제1 코딩 블록의 역방향 제3 코딩 예측 블록을 획득하고, 여기서 제1 코딩 블록의 제3 코딩 예측 블록은 순방향 제3 코딩 예측 블록 및 역방향 제3 코딩 예측 블록을 포함한다.
단계 406: 제3 코딩 예측 블록에 기초하여 제1 코딩 블록의 타겟 코딩 예측 블록을 획득하고, 타겟 코딩 예측 블록에 기초하여 제1 코딩 블록을 코딩한다.
구체적으로, 제3 코딩 예측 블록에 기초하여 제1 코딩 블록의 타겟 코딩 예측 블록을 획득하는 것은 다음의 3개의 구현을 포함한다.
제1 구현에서, 순방향 제3 코딩 예측 블록 및 역방향 제3 코딩 예측 블록에 대해 가중치를 부여한 합산이 수행되어 제1 코딩 블록의 타겟 코딩 예측 블록을 획득한다.
이 구현에서, 선택적으로, 순방향 제3 코딩 예측 블록과 역방향 제3 코딩 예측 블록의 평균 값은 제1 코딩 블록의 타겟 코딩 예측 블록으로서 사용된다.
제2 구현에서, 순방향 제3 코딩 예측 블록은 제1 코딩 블록의 타겟 코딩 예측 블록으로서 사용된다.
제3 구현에서, 역방향 제3 코딩 예측 블록은 제1 코딩 블록의 타겟 코딩 예측 블록으로서 사용된다.
일부 실시예들에서, 플래그 비트는 슬라이스 레벨, 픽처 레벨, 또는 시퀀스 레벨과 같은 코드 스트림의 상위 계층 정보에서 코딩될 수 있고, 플래그 비트는 도 4에 도시된 이미지 코딩 방법이 적용되는지를 표시하기 위해 사용된다는 것을 이해해야 한다.
도 5에 도시된 바와 같이, 본 발명의 실시예는 인터 예측을 통한 이미지 디코딩을 위한 방법을 제공한다. 구체적인 절차는 다음과 같다.
단계 501: 제1 디코딩 블록의 예측 움직임 정보를 결정하고, 여기서 예측 움직임 정보는 움직임 벡터 예측자 및 예측 참조 이미지 정보를 포함하고, 예측 참조 이미지 정보는 예측 참조 이미지 블록을 나타내기 위해 사용된다.
제1 디코딩 블록은 파싱된 코드 스트림 정보에 기초하여 구성될 필요가 있는 현재 처리될 블록이고, 예측 움직임 정보 내의 움직임 벡터 예측자는 순방향 움직임 벡터 예측자 및 역방향 움직임 벡터 예측자를 포함하고, 예측 참조 이미지 정보는 순방향 예측 참조 이미지 블록의 참조 프레임 인덱스 정보 및 역방향 예측 참조 이미지 블록의 참조 프레임 인덱스 정보를 포함한다.
또한, 제1 디코딩 블록의 예측 참조 이미지 블록은 제1 디코딩 블록의 예측 참조 이미지 정보 또는 움직임 벡터 예측자에 기초하여 획득된다.
선택적으로, 제1 디코딩 블록의 예측 움직임 정보는 순방향 움직임 벡터 예측자, 역방향 움직임 벡터 예측자, 순방향 예측 참조 이미지 블록에 대응하는 픽처 오더 카운트(Picture Order Count, POC), 및 역방향 예측 참조 이미지 블록에 대응하는 POC를 포함하거나; 또는 순방향 움직임 벡터 예측자 및 순방향 예측 참조 이미지 블록에 대응하는 POC만을 포함할 수 있거나; 또는 역방향 움직임 벡터 예측자 및 역방향 예측 참조 이미지 블록에 대응하는 POC만을 포함할 수 있다.
구체적으로, 제1 디코딩 블록의 예측 움직임 정보를 결정하기 위한 방법에 대해서는, 종래 기술에서의 현재 디코딩 블록의 예측 움직임 정보를 결정하기 위한 방법을 참조한다.
인터 예측의 병합 모드가 사용되는 경우, 제1 디코딩 블록의 인접 블록의 움직임 정보에 기초하여 후보 예측 움직임 정보 목록이 구성되고, 후보 예측 움직임 정보가 후보 예측 움직임 정보 목록으로부터 제1 디코딩 블록의 예측 움직임 정보로서 선택된다. 후보 움직임 정보 목록은 움직임 벡터 예측자, 참조 이미지 블록의 참조 프레임 인덱스 정보 등을 포함한다. 이 모드에서의 움직임 벡터 예측자는 인접 블록의 움직임 벡터 값이라는 점을 유의해야 한다.
인터 예측의 비-병합 모드가 사용되는 경우, 제1 디코딩 블록의 인접 블록의 움직임 정보에 기초하여 움직임 벡터 예측자 목록이 구성되고, 움직임 벡터 예측자 목록으로부터 제1 디코딩 블록의 움직임 벡터 예측자로서 움직임 벡터가 선택된다. 이 모드에서의 움직임 벡터 예측자는 인접 블록의 움직임 벡터 값일 수 있거나, 선택된 인접 블록의 움직임 벡터 값과 제1 디코딩 블록의 움직임 벡터 차이의 합일 수 있다는 점에 유의해야 한다. 움직임 벡터 차이는 디코딩을 통해 직접 획득될 수 있다.
단계 502: 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여, 제1 디코딩 블록의 초기 디코딩 예측 블록을 획득하고, 초기 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 제1 디코딩 예측 블록을 획득한다.
또한, 예측 참조 이미지 블록에 대응하는 POC가 제1 디코딩 블록의 POC와 동일하지 않을 때, 순방향 예측 및 역방향 예측을 포함하는 양방향 예측이 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 수행된다. 예측 참조 이미지 블록에 대응하는 POC가 제1 디코딩 블록의 POC보다 작은 경우, 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 순방향 예측이 수행되거나; 또는 예측 참조 이미지 블록에 대응하는 POC가 제1 디코딩 블록의 POC보다 클 때, 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 역방향 예측이 수행된다.
구체적으로, 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여 제1 디코딩 블록의 초기 디코딩 예측 블록을 획득하는 것은 다음의 프로세스들을 포함한다.
S521. 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 순방향 예측을 수행하여, 구체적으로, 순방향 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 순방향 예측을 수행하여, 제1 디코딩 블록의 초기 순방향 디코딩 예측 블록을 획득한다.
가능한 구현에서, 순방향 예측은 예측 움직임 정보에서의 순방향 예측 참조 이미지 블록에 기초하여 제1 디코딩 블록에 대해 수행되어, 제1 디코딩 블록의 초기 순방향 디코딩 예측 블록을 획득한다.
다른 가능한 구현에서, 순방향 예측은 예측 움직임 정보에서의 순방향 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 수행되어 제1 디코딩 블록의 초기 순방향 디코딩 예측 블록을 획득한다.
S522. 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 역방향 예측을 수행하여, 구체적으로, 역방향 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 역방향 예측을 수행하여, 제1 디코딩 블록의 초기 역방향 디코딩 예측 블록을 획득한다.
가능한 구현에서, 예측 움직임 정보에서의 역방향 예측 참조 이미지 블록에 기초하여 제1 디코딩 블록에 대해 역방향 예측이 수행되어, 제1 디코딩 블록의 역방향 초기 디코딩 예측 블록을 획득한다.
다른 가능한 구현에서, 예측 움직임 정보에서의 역방향 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 역방향 예측이 수행되어, 제1 디코딩 블록의 역방향 초기 디코딩 예측 블록을 획득한다.
초기 디코딩 예측 블록은 초기 순방향 디코딩 예측 블록 및 초기 역방향 디코딩 예측 블록을 포함한다.
또한, 초기 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 제1 디코딩 예측 블록을 획득하는 것은 다음의 3개의 구현을 포함한다.
제1 구현에서, 초기 순방향 디코딩 예측 블록 및 초기 역방향 디코딩 예측 블록에 대해 가중치를 부여한 합산이 수행되어 제1 디코딩 블록의 제1 디코딩 예측 블록을 획득한다.
이 구현에서, 선택적으로, 초기 순방향 디코딩 예측 블록과 초기 역방향 디코딩 예측 블록의 평균 값이 제1 디코딩 블록의 제1 디코딩 예측 블록으로서 사용된다.
제2 구현에서, 초기 순방향 디코딩 예측 블록은 제1 디코딩 블록의 제1 디코딩 예측 블록으로서 사용된다.
제3 구현에서, 초기 역방향 디코딩 예측 블록은 제1 디코딩 블록의 제1 디코딩 예측 블록으로서 사용된다.
단계 503: 적어도 하나의 제2 디코딩 예측 블록을 획득하기 위해 움직임 벡터 예측자에 기초하여 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 추정을 수행한다.
일부 실시예들에서, 이 단계는 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하는 것이고, 여기서 움직임 검색의 검색 위치는 움직임 벡터 예측자 및 제1 정밀도를 사용하여 결정된다. 실현가능한 구현에서, 움직임 검색의 위치는 움직임 벡터 예측자에 의해 표현되는 위치 주위에 있고 제1 정밀도의 커버리지 내에 있는 위치이다. 예를 들어, 움직임 벡터 예측자에 의해 표시된 위치가 (1, 1)이고, 제1 정밀도가 1/2 픽셀 정밀도이면, 움직임 검색의 위치는 (1.5, 1), (1.5, 1.5), (1.5, -0.5), (1, 1), (1, 1.5), (1, -0.5), (-0.5, 1), (-0.5, 1.5), 및 (-0.5, -0.5)이다.
구체적으로, 움직임 벡터 예측자에 기초하여 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 추정을 수행하여 적어도 하나의 제2 디코딩 예측 블록을 획득하는 것은 다음의 프로세스들을 포함한다:
S531. 순방향 움직임 벡터 예측자에 기초하여 순방향 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하고, 각각의 발견된 순방향 디코딩 예측 블록을 순방향 제2 디코딩 예측 블록으로서 사용하여 적어도 하나의 제2 디코딩 예측 블록을 획득한다.
S532. 역방향 움직임 벡터 예측자에 기초하여 역방향 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하고, 각각의 발견된 역방향 디코딩 예측 블록을 역방향 제2 디코딩 예측 블록으로서 사용하여 적어도 하나의 제2 디코딩 예측 블록을 획득하고, 제2 디코딩 예측 블록은 순방향 제2 디코딩 예측 블록 및 역방향 제2 디코딩 예측 블록을 포함한다.
제1 정밀도는 정수 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도, 또는 1/8 픽셀 정밀도를 포함한다. 이는 제한되지 않는다.
단계 504: 제1 디코딩 예측 블록과 각각의 제2 디코딩 예측 블록 사이의 차이를 계산하고, 제1 디코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 디코딩 예측 블록과 제1 디코딩 블록 사이의 움직임 벡터 예측자를 사용한다.
구체적으로, 제1 디코딩 예측 블록과 각각의 제2 디코딩 예측 블록 사이의 차이를 계산하고, 제1 디코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 디코딩 예측 블록과 제1 디코딩 블록 사이의 움직임 벡터 예측자를 사용하는 것은 다음의 프로세스를 포함한다:
S541. 순방향 제2 디코딩 예측 블록들과 제1 디코딩 예측 블록 사이의 차이들을 비교하고, 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 순방향 제2 디코딩 예측 블록과 제1 디코딩 블록 사이의 타겟 순방향 움직임 벡터 예측자를 사용한다.
S542. 역방향 제2 디코딩 예측 블록들과 제1 디코딩 예측 블록 사이의 차이들을 비교하고, 타겟 움직임 벡터 예측자로서 가장 작은 차이를 갖는 역방향 제2 디코딩 예측 블록과 제1 디코딩 블록 사이의 타겟 역방향 움직임 벡터 예측자를 사용하며, 타겟 움직임 벡터 예측자는 타겟 순방향 움직임 벡터 예측자 및 타겟 역방향 움직임 벡터 예측자를 포함한다.
구체적으로, 제2 디코딩 예측 블록들과 제1 디코딩 예측 블록 사이의 차이들이 비교될 때, 2개의 이미지 블록에서의 픽셀 차이들의 절대값들의 합은 제2 디코딩 예측 블록과 제1 디코딩 예측 블록 사이의 차이의 값으로서 사용될 수 있다. 선택적으로, 2개의 이미지 블록에서의 픽셀 차이들의 제곱값들의 합은 제2 디코딩 예측 블록과 제1 디코딩 예측 블록 사이의 차이의 값으로서 사용될 수 있다. 차이 비교 방법은 구체적으로 제한되지 않는다.
단계 505: 타겟 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여 제1 디코딩 블록의 제3 디코딩 예측 블록을 획득한다.
구체적으로, 타겟 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여 제1 디코딩 블록의 제3 디코딩 예측 블록을 획득하는 것은 다음의 프로세스들을 포함한다:
S551. 타겟 순방향 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 순방향 예측을 수행하여 제1 디코딩 블록의 순방향 제3 디코딩 예측 블록을 획득한다.
S552. 타겟 역방향 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 역방향 예측을 수행하여 제1 디코딩 블록의 역방향 제3 디코딩 예측 블록을 획득하고, 여기서 제1 디코딩 블록의 제3 디코딩 예측 블록은 순방향 제3 디코딩 예측 블록 및 역방향 제3 디코딩 예측 블록을 포함한다.
단계 506: 제3 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 타겟 디코딩 예측 블록을 획득하고, 타겟 디코딩 예측 블록에 기초하여 제1 디코딩 블록을 디코딩한다.
구체적으로, 제3 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 타겟 디코딩 예측 블록을 획득하는 것은 다음의 3개의 구현을 포함한다.
제1 구현에서, 순방향 제3 디코딩 예측 블록 및 역방향 제3 디코딩 예측 블록에 대해 가중치를 부여한 합산이 수행되어, 제1 디코딩 블록의 타겟 디코딩 예측 블록을 획득한다.
이 구현에서, 선택적으로, 순방향 제3 디코딩 예측 블록과 역방향 제3 디코딩 예측 블록의 평균 값은 제1 디코딩 블록의 타겟 디코딩 예측 블록으로서 사용된다.
제2 구현에서, 순방향 제3 디코딩 예측 블록은 제1 디코딩 블록의 타겟 디코딩 예측 블록으로서 사용된다.
제3 구현에서, 역방향 제3 디코딩 예측 블록은 제1 디코딩 블록의 타겟 디코딩 예측 블록으로서 사용된다.
일부 실시예들에서, 인코더 측에 대응하여, 플래그 비트는 스트립 레벨, 이미지 레벨, 또는 시퀀스 레벨과 같은 코드 스트림의 상위 계층 정보에서 먼저 파싱될 수 있고, 플래그 비트는 도 5에 도시된 이미지 디코딩 방법이 적용되는지를 표시하기 위해 사용된다는 것을 이해해야 한다.
이하에서는 여러 특정 실시예들을 사용하여 도 4의 코딩 방법 및 도 5의 디코딩 방법을 상세히 설명한다.
실시예 1
도 6a 및 도 6b에 도시된 바와 같이, 현재 디코딩 블록은 제1 디코딩 블록이고, 현재 디코딩 블록의 예측 움직임 정보가 획득된다. 현재 디코딩 블록의 순방향 및 역방향 움직임 벡터 예측자들은 각각 (-10, 4) 및 (5, 6)이고, 현재 디코딩 블록에 대응하는 POC는 4이고, 순방향 예측 참조 이미지 블록에 대응하는 POC는 2이고, 역방향 예측 참조 이미지 블록에 대응하는 POC는 6인 것으로 가정된다.
순방향 예측 및 역방향 예측은 현재 디코딩 블록에 대해 개별적으로 수행되어 현재 디코딩 블록의 초기 순방향 디코딩 예측 블록(Forward Prediction Block, FPB) 및 초기 역방향 디코딩 예측 블록(Backward Prediction Block, BPB)을 획득하고, 초기 순방향 디코딩 예측 블록 및 초기 역방향 디코딩 예측 블록이 각각 FPB 1 및 BPB 1인 것으로 가정된다. FPB 1 및 BPB 1에 대해 가중치를 부여한 합산이 수행되어 현재 디코딩 블록의 제1 디코딩 예측 블록(Decoding Prediction Block, DPB)을 획득하고, 제1 디코딩 예측 블록이 DPB 1인 것으로 가정된다.
(-10, 4) 및(5, 6)은 순방향 및 역방향 움직임 벡터 예측자들의 참조 입력으로서 사용되고, 제1 정밀도의 움직임 검색은 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록에 대해 개별적으로 수행된다. 이 경우, 제1 정밀도는 1 픽셀 범위에서 1/2 픽셀 정밀도이다. 제1 디코딩 예측 블록 DPB 1은 참조로서 사용된다. 제1 디코딩 예측 블록 DPB 1과 움직임 검색을 통해 발견된 대응하는 새로운 순방향 및 역방향 디코딩 예측 블록들 각각 사이의 차이들은 비교되어 DPB 1과 가장 작은 차이를 갖는 새로운 디코딩 예측 블록에 대응하는 순방향 및 역방향 움직임 벡터 예측자들을 획득하여, 타겟 움직임 벡터 예측자들로서 역할을 한다. 순방향 및 역방향 움직임 벡터 예측자들은 각각 (-11, 4) 및 (6, 6)인 것으로 가정된다.
타겟 움직임 벡터 예측자들은 (-11,4) 및 (6,6)으로 업데이트된다. 또한, 타겟 움직임 벡터 예측자들에 기초하여 제1 디코딩 블록에 대해 순방향 예측 및 역방향 예측이 수행되고, 획득된 새로운 순방향 디코딩 예측 블록 및 역방향 디코딩 예측 블록에 대해 가중치를 부여한 합산이 수행되어 타겟 디코딩 예측 블록을 획득한다. 타겟 디코딩 예측 블록은 DPB 2이고, 현재 디코딩 블록의 디코딩 예측 블록은 DPB 2로 업데이트되는 것으로 가정된다.
제1 정밀도의 움직임 검색이 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록에 대해 수행될 때, 제1 정밀도는 임의의 지정된 정밀도일 수 있고, 예를 들어, 정수 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도, 또는 1/8 픽셀 정밀도일 수 있다는 점에 유의해야 한다.
실시예 2
도 6a 및 도 6b에 도시된 바와 같이, 현재 코딩 블록은 제1 코딩 블록이고, 현재 코딩 블록의 예측 움직임 정보가 획득된다. 현재 코딩 블록의 순방향 및 역방향 움직임 벡터 예측자들은 각각 (-10, 4) 및 (5, 6)이고, 현재 코딩 블록에 대응하는 POC는 4이고, 순방향 예측 참조 이미지 블록에 대응하는 POC는 2이고, 역방향 예측 참조 이미지 블록에 대응하는 POC는 6인 것으로 가정된다.
순방향 예측 및 역방향 예측은 현재 코딩 블록에 대해 개별적으로 수행되어 현재 코딩 블록의 초기 순방향 코딩 예측 블록 및 초기 역방향 코딩 예측 블록을 획득하고, 초기 순방향 코딩 예측 블록 및 초기 역방향 코딩 예측 블록은 각각 FPB 1 및 BPB 1인 것으로 가정된다. 현재 코딩 블록의 제1 코딩 예측 블록을 획득하기 위해 FPB 1 및 BPB 1에 대해 가중치를 부여한 합산이 수행되고, 제1 코딩 예측 블록이 DPB 1인 것으로 가정된다.
(-10, 4) 및(5, 6)은 순방향 및 역방향 움직임 벡터 예측자들의 참조 입력으로서 사용되고, 제1 정밀도의 움직임 검색은 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록에 대해 개별적으로 수행된다. 이 경우, 제1 정밀도는 1 픽셀 범위에서 1/2 픽셀 정밀도이다. 제1 코딩 예측 블록 DPB 1은 참조로서 사용된다. 제1 코딩 예측 블록 DPB 1과 움직임 검색을 통해 발견된 대응하는 새로운 순방향 및 역방향 코딩 예측 블록들 각각 사이의 차이들은 비교되어 DPB 1과 가장 작은 차이를 갖는 새로운 코딩 예측 블록에 대응하는 순방향 및 역방향 움직임 벡터 예측자들을 획득하여, 타겟 움직임 벡터 예측자들로서 역할을 한다. 순방향 및 역방향 움직임 벡터 예측자들은 각각 (-11, 4) 및 (6, 6)인 것으로 가정된다.
타겟 움직임 벡터 예측자들은 (-11,4) 및 (6,6)으로 업데이트된다. 또한, 타겟 움직임 벡터 예측자들에 기초하여 제1 코딩 블록에 대해 순방향 예측 및 역방향 예측이 수행되고, 획득된 새로운 순방향 코딩 예측 블록 및 역방향 코딩 예측 블록에 대해 가중치를 부여한 합산이 수행되어 타겟 코딩 예측 블록을 획득한다. 타겟 코딩 예측 블록은 DPB 2이고, 현재 코딩 블록의 코딩 예측 블록은 DPB 2로 업데이트되는 것으로 가정된다.
제1 정밀도의 움직임 검색이 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록에 대해 수행될 때, 제1 정밀도는 임의의 지정된 정밀도일 수 있고, 예를 들어, 정수 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도, 또는 1/8 픽셀 정밀도일 수 있다는 점에 유의해야 한다.
실시예 3
도 7에 도시된 바와 같이, 현재 디코딩 블록은 제1 디코딩 블록이고, 현재 디코딩 블록의 예측 움직임 정보가 획득된다. 현재 디코딩 블록의 순방향 움직임 벡터 예측자는 (-21, 18)이고, 현재 디코딩 블록에 대응하는 POC는 4이고, 순방향 예측 참조 이미지 블록에 대응하는 POC는 2인 것으로 가정된다.
현재 디코딩 블록에 대해 순방향 예측이 수행되어 현재 디코딩 블록의 초기 순방향 디코딩 예측 블록을 획득하고, 초기 순방향 디코딩 예측 블록이 FPB 1인 것으로 가정된다. 이 경우, FPB 1은 현재 디코딩 블록의 제1 디코딩 예측 블록으로서 사용되고, 제1 디코딩 예측 블록은 DPB 1로서 표시된다.
(-21, 18)은 순방향 움직임 벡터 예측자의 참조 입력으로서 사용되고, 제1 정밀도의 움직임 검색은 순방향 예측 참조 이미지 블록에 대해 수행된다. 이 경우, 제1 정밀도는 5 픽셀 범위에서 1 픽셀 정밀도이다. 제1 디코딩 예측 블록 DPB 1은 참조로서 사용된다. 제1 디코딩 예측 블록 DPB 1과 움직임 검색을 통해 발견된 대응하는 새로운 역방향 디코딩 예측 블록들 사이의 차이들이 비교되어, DPB 1과 가장 작은 차이를 갖는 새로운 디코딩 예측 블록에 대응하는 순방향 움직임 벡터 예측자를 획득하여, 타겟 움직임 벡터 예측자로서 역할을 한다. 순방향 움직임 벡터 예측자는 (-19, 19)인 것으로 가정한다.
타겟 움직임 벡터 예측자는 (-19,19)로 업데이트된다. 또한, 타겟 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 순방향 예측이 수행되고, 획득된 새로운 순방향 디코딩 예측 블록은 타겟 디코딩 예측 블록으로서 사용된다. 타겟 디코딩 예측 블록은 DPB 2이고, 현재 디코딩 블록의 디코딩 예측 블록은 DPB 2로 업데이트되는 것으로 가정된다.
제1 정밀도의 움직임 검색이 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록에 대해 수행될 때, 제1 정밀도는 임의의 지정된 정밀도일 수 있고, 예를 들어, 정수 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도, 또는 1/8 픽셀 정밀도일 수 있다는 점에 유의해야 한다.
실시예 4
도 7에 도시된 바와 같이, 현재 코딩 블록은 제1 코딩 블록이고, 현재 코딩 블록의 예측 움직임 정보가 획득된다. 현재 코딩 블록의 순방향 움직임 벡터 예측자가 (-21, 18)이고, 현재 코딩 블록에 대응하는 POC가 4이고, 순방향 예측 참조 이미지 블록에 대응하는 POC가 2인 것으로 가정된다.
현재 코딩 블록에 대해 순방향 예측이 수행되어 현재 코딩 블록의 초기 순방향 코딩 예측 블록을 획득하고, 초기 순방향 코딩 예측 블록이 FPB 1인 것으로 가정된다. 이 경우, FPB 1은 현재 코딩 블록의 제1 코딩 예측 블록으로서 사용되고, 제1 코딩 예측 블록은 DPB 1로서 표시된다.
(-21, 18)은 순방향 움직임 벡터 예측자의 참조 입력으로서 사용되고, 제1 정밀도의 움직임 검색은 순방향 예측 참조 이미지 블록에 대해 수행된다. 이 경우, 제1 정밀도는 5 픽셀 범위에서 1 픽셀 정밀도이다. 제1 코딩 예측 블록 DPB 1은 참조로서 사용된다. 제1 코딩 예측 블록 DPB 1과 움직임 검색을 통해 발견된 대응하는 새로운 역방향 코딩 예측 블록들 사이의 차이들은 비교되어 DPB 1과 가장 작은 차이를 갖는 새로운 코딩 예측 블록에 대응하는 순방향 움직임 벡터 예측자를 획득하여, 타겟 움직임 벡터 예측자로서 역할을 한다. 순방향 움직임 벡터 예측자는 (-19, 19)인 것으로 가정한다.
타겟 움직임 벡터 예측자는 (-19,19)로 업데이트된다. 또한, 타겟 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 순방향 예측이 수행되고, 획득된 새로운 순방향 코딩 예측 블록은 타겟 코딩 예측 블록으로서 사용된다. 타겟 코딩 예측 블록은 DPB 2이고, 현재 코딩 블록의 코딩 예측 블록은 DPB 2로 업데이트되는 것으로 가정된다.
제1 정밀도의 움직임 검색이 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록에 대해 수행될 때, 제1 정밀도는 임의의 지정된 정밀도일 수 있고, 예를 들어, 정수 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도, 또는 1/8 픽셀 정밀도일 수 있다는 점에 유의해야 한다.
실시예 5
도 8a, 도 8b, 도 8c 및 도 8d에 도시된 바와 같이, 현재 코딩 블록은 제1 코딩 블록이고, 현재 코딩 블록의 예측 움직임 정보가 획득된다. 현재 코딩 블록의 순방향 및 역방향 움직임 벡터 예측자들은 각각 (-6, 12) 및 (8, 4)이고, 현재 코딩 블록에 대응하는 POC는 8이고, 순방향 예측 참조 이미지 블록에 대응하는 POC는 4이고, 역방향 예측 참조 이미지 블록에 대응하는 POC는 12인 것으로 가정된다.
순방향 예측 및 역방향 예측은 현재 코딩 블록에 대해 개별적으로 수행되어 현재 코딩 블록의 초기 순방향 코딩 예측 블록 및 초기 역방향 코딩 예측 블록을 획득하고, 초기 순방향 코딩 예측 블록 및 초기 역방향 코딩 예측 블록은 각각 FPB 1 및 BPB 1인 것으로 가정된다. 현재 코딩 블록의 제1 코딩 예측 블록을 획득하기 위해 FPB 1 및 BPB 1에 대해 가중치를 부여한 합산이 수행되고, 제1 코딩 예측 블록이 DPB 1인 것으로 가정된다.
(-6, 12) 및 (8, 4)는 순방향 및 역방향 움직임 벡터 예측자들의 참조 입력으로서 사용되고, 제1 정밀도의 움직임 검색은 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록에 대해 개별적으로 수행된다. 제1 코딩 예측 블록 DPB 1은 참조로서 사용된다. 제1 코딩 예측 블록 DPB 1과 움직임 검색을 통해 발견된 대응하는 새로운 순방향 및 역방향 코딩 예측 블록들 각각 사이의 차이들은 비교되어 DPB 1과 가장 작은 차이를 갖는 새로운 코딩 예측 블록에 대응하는 순방향 및 역방향 움직임 벡터 예측자들을 획득하여, 타겟 움직임 벡터 예측자들로서 역할을 한다. 순방향 및 역방향 움직임 벡터 예측자들은 각각 (-11, 4) 및 (6, 6)인 것으로 가정된다.
타겟 움직임 벡터 예측자들은 (-11,4) 및 (6,6)으로 업데이트된다. 또한, 타겟 움직임 벡터 예측자들에 기초하여 제1 코딩 블록에 대해 순방향 예측 및 역방향 예측이 수행되고, 획득된 새로운 순방향 코딩 예측 블록 및 역방향 코딩 예측 블록에 대해 가중치를 부여한 합산이 수행되어 타겟 코딩 예측 블록을 획득한다. 타겟 코딩 예측 블록은 DPB 2이고, 현재 코딩 블록의 코딩 예측 블록은 DPB 2로 업데이트되는 것으로 가정된다.
후속하여, (-11, 4) 및 (6, 6)은 순방향 및 역방향 움직임 벡터 예측자들의 참조 입력으로서 사용되고, 제1 정밀도의 움직임 검색은 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록에 대해 개별적으로 수행된다. 현재 코딩 블록의 코딩 예측 블록 DPB 2가 참조로서 사용된다. 제1 코딩 예측 블록 DPB 2와 움직임 검색을 통해 발견된 대응하는 새로운 순방향 및 역방향 코딩 예측 블록들 각각 사이의 차이들은 비교되어 DPB 2와 가장 작은 차이를 갖는 새로운 코딩 예측 블록에 대응하는 순방향 및 역방향 움직임 벡터 예측자들을 획득하여, 새로운 타겟 움직임 벡터 예측자들로서 역할을 한다. 순방향 및 역방향 움직임 벡터 예측자들은 각각 (-7,11) 및 (6,5)인 것으로 가정된다.
후속하여, 타겟 움직임 벡터 예측자들은 (-7,11) 및 (6,5)로 업데이트된다. 또한, 최근 타겟 움직임 벡터 예측자들에 기초하여 제1 코딩 블록에 대해 순방향 예측 및 역방향 예측이 수행되고, 획득된 새로운 순방향 코딩 예측 블록 및 역방향 코딩 예측 블록에 대해 가중치를 부여한 합산이 수행되어 타겟 코딩 예측 블록을 획득한다. 타겟 코딩 예측 블록은 DPB 3이고, 현재 코딩 블록의 코딩 예측 블록은 DPB 3으로 업데이트되는 것으로 가정된다.
또한, 타겟 움직임 벡터 예측자는 전술한 방법에 따라 후속하여 업데이트될 수 있어서, 반복들의 수량이 제한되지 않는다.
제1 정밀도의 움직임 검색이 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록에 대해 수행될 때, 제1 정밀도는 임의의 지정된 정밀도일 수 있고, 예를 들어, 정수 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도, 또는 1/8 픽셀 정밀도일 수 있다는 점에 유의해야 한다.
실시예 6
이 실시예에서, 인터 예측의 비-병합 모드의 코딩 프로세스에서 움직임 벡터 예측자를 획득하는 방식은 전술한 실시예들에서의 것과 상이하다. 실시예 6은 인터 예측의 비-병합 모드의 디코딩 프로세스를 상세히 설명한다. 유사하게, 코딩 프로세스 및 디코딩 프로세스는 인터 예측의 비-병합 모드에서 유사하고, 세부 사항들은 본 명세서에서 다시 설명되지 않는다.
도 9a 및 도 9b에 도시된 바와 같이, 현재 디코딩 블록은 제1 디코딩 블록이고, 현재 디코딩 블록의 예측 움직임 정보가 획득된다. 현재 디코딩 블록의 순방향 및 역방향 움직임 벡터 값들은 각각 (-10, 4) 및 (5, 6)이고, 순방향 및 역방향 움직임 벡터 차이들은 각각 (-2,1) 및 (1,1)이고, 현재 디코딩 블록에 대응하는 POC는 4이고, 순방향 예측 참조 이미지 블록에 대응하는 POC는 2이고, 역방향 예측 참조 이미지 블록에 대응하는 POC는 6인 것으로 가정된다.
순방향 예측 및 역방향 예측은 현재 디코딩 블록에 대해 개별적으로 수행되어 현재 디코딩 블록의 초기 순방향 디코딩 예측 블록(FPB) 및 초기 역방향 디코딩 예측 블록(BPB)을 획득하고, 초기 순방향 디코딩 예측 블록 및 초기 역방향 디코딩 예측 블록이 각각 FPB 1 및 BPB 1인 것으로 가정된다. 현재 디코딩 블록의 제1 디코딩 예측 블록(DPB)을 획득하기 위해 FPB 1 및 BPB 1에 대해 가중치를 부여한 합산이 수행되고, 제1 디코딩 예측 블록이 DPB 1인 것으로 가정된다.
순방향 및 역방향 움직임 벡터 예측자들 (-10, 4) + (-2, 1) = (-12, 5) 및 (5, 6) + (1, 1) = (6, 7)은 순방향 및 역방향 움직임 벡터들의 참조 입력으로서 사용되고, 제1 정밀도의 움직임 검색은 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록에 대해 개별적으로 수행된다. 이 경우, 제1 정밀도는 1 픽셀 범위에서 1/4 픽셀 정밀도이다. 제1 디코딩 예측 블록 DPB 1은 참조로서 사용된다. 제1 디코딩 예측 블록 DPB 1과 움직임 검색을 통해 발견된 대응하는 새로운 순방향 및 역방향 디코딩 예측 블록들 각각 사이의 차이들은 비교되어 DPB 1과 가장 작은 차이를 갖는 새로운 디코딩 예측 블록에 대응하는 순방향 및 역방향 움직임 벡터들을 획득하여, 타겟 움직임 벡터 예측자들로서 역할을 한다. 순방향 및 역방향 움직임 벡터들은 각각 (-11,4) 및 (6,6)인 것으로 가정된다.
타겟 움직임 벡터 예측자들은 (-11,4) 및 (6,6)으로 업데이트된다. 또한, 타겟 움직임 벡터 예측자들에 기초하여 제1 디코딩 블록에 대해 순방향 예측 및 역방향 예측이 수행되고, 획득된 새로운 순방향 디코딩 예측 블록 및 역방향 디코딩 예측 블록에 대해 가중치를 부여한 합산이 수행되어 타겟 디코딩 예측 블록을 획득한다. 타겟 디코딩 예측 블록은 DPB 2이고, 현재 디코딩 블록의 디코딩 예측 블록은 DPB 2로 업데이트되는 것으로 가정된다.
제1 정밀도의 움직임 검색이 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록에 대해 수행될 때, 제1 정밀도는 임의의 지정된 정밀도일 수 있고, 예를 들어, 정수 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도, 또는 1/8 픽셀 정밀도일 수 있다는 점에 유의해야 한다.
결론적으로, 전술한 코딩 및 디코딩 방법들은 비디오 이미지 코딩 및 디코딩에서 모든 양방향 예측 프로세스에 적용될 수 있고, 업데이트된 움직임 벡터 예측자와 코딩 및 디코딩 예측 블록들은 모든 비디오 이미지 코딩 및 디코딩 프로세스에 적용될 수 있다. 코덱 시스템은 현재의 코딩 및 디코딩 블록들의 예측 움직임 정보에 기초하여 현재의 코딩 및 디코딩 예측 블록들을 획득하고; 움직임 벡터 예측자 및 예측 참조 이미지 블록에 기초하여 움직임 검색을 수행하여 새로운 코딩 및 디코딩 예측 블록들을 획득하고; 현재의 코딩 및 디코딩 예측 블록들과의 차이 비교를 통해 현재의 코딩 및 디코딩 블록들의 코딩 및 디코딩 예측 블록들 및 움직임 벡터 예측자를 업데이트하여, 움직임 정밀도를 개선한다.
전술한 실시예들에 따르면, 도 10에 도시된 바와 같이, 본 발명의 실시예는 인터 예측을 통한 이미지 코딩을 위한 장치(1000)를 제공한다. 도 10에 도시된 바와 같이, 장치(1000)는 결정 유닛(1001), 처리 유닛(1002), 및 코딩 유닛(1003)을 포함한다.
결정 유닛(1001)은 제1 코딩 블록의 예측 움직임 정보를 결정하도록 구성되고, 여기서 예측 움직임 정보는 움직임 벡터 예측자 및 예측 참조 이미지 정보를 포함하고, 예측 참조 이미지 정보는 예측 참조 이미지 블록을 나타내기 위해 사용된다.
처리 유닛(1002)은: 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행하여 제1 코딩 블록의 초기 코딩 예측 블록을 획득하고, 초기 코딩 예측 블록에 기초하여 제1 코딩 블록의 제1 코딩 예측 블록을 획득하고; 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하여 적어도 하나의 제2 코딩 예측 블록을 획득하고- 움직임 검색의 검색 위치는 움직임 벡터 예측자 및 제1 정밀도를 사용하여 결정됨 -; 제1 코딩 예측 블록과 각각의 제2 코딩 예측 블록 사이의 차이를 계산하고, 제1 코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 코딩 예측 블록과 제1 코딩 블록 사이의 움직임 벡터 예측자를 사용하고; 타겟 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행하여 제1 코딩 블록의 제3 코딩 예측 블록을 획득하도록 구성된다.
코딩 유닛(1003)은: 제3 코딩 예측 블록에 기초하여 제1 코딩 블록의 타겟 코딩 예측 블록을 획득하고, 타겟 코딩 예측 블록에 기초하여 제1 코딩 블록을 코딩하도록 구성된다.
선택적으로, 예측 움직임 정보는 순방향 예측 움직임 정보 및 역방향 예측 움직임 정보를 포함하고, 움직임 벡터 예측자는 순방향 움직임 벡터 예측자 및 역방향 움직임 벡터 예측자를 포함하고, 예측 참조 이미지 블록은 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록을 포함한다.
선택적으로, 초기 코딩 예측 블록은 초기 순방향 코딩 예측 블록 및 초기 역방향 코딩 예측 블록을 포함하고, 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행하여 제1 코딩 블록의 초기 코딩 예측 블록을 획득할 때, 처리 유닛(1002)은 구체적으로:
순방향 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 순방향 예측을 수행하여 제1 코딩 블록의 초기 순방향 코딩 예측 블록을 획득하고;
역방향 예측 움직임 정보에 기초하여 제1 코딩 블록에 대해 역방향 예측을 수행하여 제1 코딩 블록의 초기 역방향 코딩 예측 블록을 획득하도록 구성된다.
선택적으로, 초기 코딩 예측 블록에 기초하여 제1 코딩 블록의 제1 코딩 예측 블록을 획득할 때, 처리 유닛(1002)은 구체적으로:
초기 순방향 코딩 예측 블록 및 초기 역방향 코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 제1 코딩 블록의 제1 코딩 예측 블록을 획득하거나; 또는
초기 순방향 코딩 예측 블록을 제1 코딩 블록의 제1 코딩 예측 블록으로서 사용하거나; 또는
초기 역방향 코딩 예측 블록을 제1 코딩 블록의 제1 코딩 예측 블록으로서 사용하도록 구성된다.
선택적으로, 제2 코딩 예측 블록은 순방향 제2 코딩 예측 블록 및 역방향 제2 코딩 예측 블록을 포함하고, 움직임 벡터 예측자에 기초하여 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하여 적어도 하나의 제2 코딩 예측 블록을 획득할 때, 처리 유닛(1002)은 구체적으로:
순방향 움직임 벡터 예측자에 기초하여 순방향 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하고, 각각의 발견된 순방향 코딩 예측 블록을 순방향 제2 코딩 예측 블록으로서 사용하여 적어도 하나의 제2 코딩 예측 블록을 획득하고;
역방향 움직임 벡터 예측자에 기초하여 역방향 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하고, 각각의 발견된 역방향 코딩 예측 블록을 역방향 제2 코딩 예측 블록으로서 사용하여 적어도 하나의 제2 코딩 예측 블록을 획득하도록 구성된다.
제1 정밀도는 정수 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도, 또는 1/8 픽셀 정밀도를 포함한다.
선택적으로, 타겟 움직임 벡터 예측자는 타겟 순방향 움직임 벡터 예측자 및 타겟 역방향 움직임 벡터 예측자를 포함하고, 제1 코딩 예측 블록과 각각의 제2 코딩 예측 블록 사이의 차이를 계산하고, 제1 코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 코딩 예측 블록과 제1 코딩 블록 사이의 움직임 벡터 예측자를 사용할 때, 처리 유닛(1002)은 구체적으로:
순방향 제2 코딩 예측 블록들과 제1 코딩 예측 블록 사이의 차이들을 비교하고, 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 순방향 제2 코딩 예측 블록과 제1 코딩 블록 사이의 타겟 순방향 움직임 벡터 예측자를 사용하고; 또는
역방향 제2 코딩 예측 블록들과 제1 코딩 예측 블록 사이의 차이들을 비교하고, 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 역방향 제2 코딩 예측 블록과 제1 코딩 블록 사이의 타겟 역방향 움직임 벡터 예측자를 사용하도록 구성된다.
선택적으로, 제1 코딩 블록의 제3 코딩 예측 블록은 순방향 제3 코딩 예측 블록 및 역방향 제3 코딩 예측 블록을 포함하고, 타겟 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 양방향 예측을 수행하여 제1 코딩 블록의 제3 코딩 예측 블록을 획득할 때, 처리 유닛(1002)은 구체적으로:
타겟 순방향 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 순방향 예측을 수행하여 제1 코딩 블록의 순방향 제3 코딩 예측 블록을 획득하고;
타겟 역방향 움직임 벡터 예측자에 기초하여 제1 코딩 블록에 대해 역방향 예측을 수행하여 제1 코딩 블록의 역방향 제3 코딩 예측 블록을 획득하도록 구성된다.
선택적으로, 제3 코딩 예측 블록에 기초하여 제1 코딩 블록의 타겟 코딩 예측 블록을 획득할 때, 처리 유닛(1002)은 구체적으로:
순방향 제3 코딩 예측 블록 및 역방향 제3 코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 제1 코딩 블록의 타겟 코딩 예측 블록을 획득하거나; 또는
순방향 제3 코딩 예측 블록을 제1 코딩 블록의 타겟 코딩 예측 블록으로서 사용하거나; 또는
역방향 제3 코딩 예측 블록을 제1 코딩 블록의 타겟 코딩 예측 블록으로서 사용하도록 구성된다.
본 발명의 이 실시예에서의 장치(1000)의 각각의 유닛의 기능 구현 및 상호작용 방식에 대해서는, 관련 방법 실시예에서의 설명들을 추가로 참조한다는 점에 유의해야 한다. 세부 사항들은 본 명세서에서 다시 설명되지 않는다.
동일한 발명 개념에 따르면, 도 11에 도시된 바와 같이, 본 발명의 실시예는 코더(1100)를 추가로 제공한다. 도 11에 도시된 바와 같이, 코더(1100)는 프로세서(1101) 및 메모리(1102)를 포함한다. 본 발명의 해결책들을 실행하기 위해 사용되는 프로그램 코드는 메모리(1102)에 저장되고, 도 4에 도시된 코딩 방법을 수행하도록 프로세서(1101)에 지시하기 위해 사용된다.
도 4에 도시된 방법에 대응하는 코드는 또한 프로세서에 대한 설계 프로그래밍을 수행함으로써 칩에 내장될 수 있어서, 칩이 실행될 때, 도 4에 도시된 방법이 수행될 수 있다.
전술한 실시예들에 따르면, 도 12에 도시된 바와 같이, 본 발명의 실시예는 인터 예측을 통한 이미지 디코딩을 위한 장치(1200)를 제공한다. 도 12에 도시된 바와 같이, 장치(1200)는 결정 유닛(1201), 처리 유닛(1202), 및 디코딩 유닛(1203)을 포함한다.
결정 유닛(1201)은 제1 디코딩 블록의 예측 움직임 정보를 결정하도록 구성되고, 여기서 예측 움직임 정보는 움직임 벡터 예측자 및 예측 참조 이미지 정보를 포함하고, 예측 참조 이미지 정보는 예측 참조 이미지 블록을 나타내기 위해 사용된다.
처리 유닛(1202)은: 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여 제1 디코딩 블록의 초기 디코딩 예측 블록을 획득하고, 초기 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 제1 디코딩 예측 블록을 획득하고; 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하여 적어도 하나의 제2 디코딩 예측 블록을 획득하고- 움직임 검색의 검색 위치는 움직임 벡터 예측자 및 제1 정밀도를 사용하여 결정됨 -; 제1 디코딩 예측 블록과 각각의 제2 디코딩 예측 블록 사이의 차이를 계산하고, 제1 디코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 디코딩 예측 블록과 제1 디코딩 블록 사이의 움직임 벡터 예측자를 사용하고; 타겟 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여 제1 디코딩 블록의 제3 디코딩 예측 블록을 획득하도록 구성된다.
디코딩 유닛(1203)은 제3 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 타겟 디코딩 예측 블록을 획득하고, 타겟 디코딩 예측 블록에 기초하여 제1 디코딩 블록을 디코딩하도록 구성된다.
선택적으로, 예측 움직임 정보는 순방향 예측 움직임 정보 및 역방향 예측 움직임 정보를 포함하고, 움직임 벡터 예측자는 순방향 움직임 벡터 예측자 및 역방향 움직임 벡터 예측자를 포함하고, 예측 참조 이미지 블록은 순방향 예측 참조 이미지 블록 및 역방향 예측 참조 이미지 블록을 포함한다.
선택적으로, 초기 디코딩 예측 블록은 초기 순방향 디코딩 예측 블록 및 초기 역방향 디코딩 예측 블록을 포함하고, 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여 제1 디코딩 블록의 초기 디코딩 예측 블록을 획득할 때, 처리 유닛(1202)은 구체적으로:
순방향 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 순방향 예측을 수행하여 제1 디코딩 블록의 초기 순방향 디코딩 예측 블록을 획득하고;
역방향 예측 움직임 정보에 기초하여 제1 디코딩 블록에 대해 역방향 예측을 수행하여 제1 디코딩 블록의 초기 역방향 디코딩 예측 블록을 획득하도록 구성된다.
선택적으로, 초기 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 제1 디코딩 예측 블록을 획득할 때, 처리 유닛(1202)은 구체적으로:
초기 순방향 디코딩 예측 블록 및 초기 역방향 디코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 제1 디코딩 블록의 제1 디코딩 예측 블록을 획득하거나; 또는
초기 순방향 디코딩 예측 블록을 제1 디코딩 블록의 제1 디코딩 예측 블록으로서 사용하거나; 또는
초기 역방향 디코딩 예측 블록을 제1 디코딩 블록의 제1 디코딩 예측 블록으로서 사용하도록 구성된다.
선택적으로, 제2 디코딩 예측 블록은 순방향 제2 디코딩 예측 블록 및 역방향 제2 디코딩 예측 블록을 포함하고, 움직임 벡터 예측자에 기초하여 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하여 적어도 하나의 제2 디코딩 예측 블록을 획득할 때, 처리 유닛(1202)은 구체적으로:
순방향 움직임 벡터 예측자에 기초하여 순방향 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하고, 각각의 발견된 순방향 디코딩 예측 블록을 순방향 제2 디코딩 예측 블록으로서 사용하여 적어도 하나의 제2 디코딩 예측 블록을 획득하고;
역방향 움직임 벡터 예측자에 기초하여 역방향 예측 참조 이미지 블록에 대해 제1 정밀도의 움직임 검색을 수행하고, 각각의 발견된 역방향 디코딩 예측 블록을 역방향 제2 디코딩 예측 블록으로서 사용하여 적어도 하나의 제2 디코딩 예측 블록을 획득하도록 구성된다.
제1 정밀도는 정수 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도, 또는 1/8 픽셀 정밀도를 포함한다.
선택적으로, 타겟 움직임 벡터 예측자는 타겟 순방향 움직임 벡터 예측자 및 타겟 역방향 움직임 벡터 예측자를 포함하고, 제1 디코딩 예측 블록과 각각의 제2 디코딩 예측 블록 사이의 차이를 계산하고, 제1 디코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 디코딩 예측 블록과 제1 디코딩 블록 사이의 움직임 벡터 예측자를 사용할 때, 처리 유닛(1202)은 구체적으로:
순방향 제2 디코딩 예측 블록들과 제1 디코딩 예측 블록 사이의 차이들을 비교하고, 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 순방향 제2 디코딩 예측 블록과 제1 디코딩 블록 사이의 타겟 순방향 움직임 벡터 예측자를 사용하거나; 또는
역방향 제2 디코딩 예측 블록들과 제1 디코딩 예측 블록 사이의 차이들을 비교하고, 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 역방향 제2 디코딩 예측 블록과 제1 디코딩 블록 사이의 타겟 역방향 움직임 벡터 예측자를 사용하도록 구성된다.
선택적으로, 제1 디코딩 블록의 제3 디코딩 예측 블록은 순방향 제3 디코딩 예측 블록 및 역방향 제3 디코딩 예측 블록을 포함하고, 타겟 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 양방향 예측을 수행하여 제1 디코딩 블록의 제3 디코딩 예측 블록을 획득할 때, 처리 유닛(1202)은 구체적으로:
타겟 순방향 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 순방향 예측을 수행하여 제1 디코딩 블록의 순방향 제3 디코딩 예측 블록을 획득하고;
타겟 역방향 움직임 벡터 예측자에 기초하여 제1 디코딩 블록에 대해 역방향 예측을 수행하여 제1 디코딩 블록의 역방향 제3 디코딩 예측 블록을 획득하도록 구성된다.
선택적으로, 제3 디코딩 예측 블록에 기초하여 제1 디코딩 블록의 타겟 디코딩 예측 블록을 획득할 때, 처리 유닛(1202)은 구체적으로:
순방향 제3 디코딩 예측 블록 및 역방향 제3 디코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 제1 디코딩 블록의 타겟 디코딩 예측 블록을 획득하거나; 또는
순방향 제3 디코딩 예측 블록을 제1 디코딩 블록의 타겟 디코딩 예측 블록으로서 사용하거나; 또는
역방향 제3 디코딩 예측 블록을 제1 디코딩 블록의 타겟 디코딩 예측 블록으로서 사용하도록 구성된다.
본 발명의 이 실시예에서의 장치(1200)의 각각의 유닛의 기능 구현 및 상호작용 방식에 대해서는, 관련 방법 실시예에서의 설명들을 추가로 참조한다는 점에 유의해야 한다. 세부 사항들은 본 명세서에서 다시 설명되지 않는다.
장치(1200) 및 장치(1000) 내의 유닛들의 분할은 단지 논리적 기능 분할이라는 것을 이해해야 한다. 실제 구현에서, 유닛들의 전부 또는 일부는 하나의 물리적 엔티티에 통합될 수 있거나, 유닛들은 물리적으로 분리될 수 있다. 예를 들어, 전술한 유닛들은 개별적으로 배치된 처리 요소들일 수 있거나, 구현을 위해 컨트롤러의 칩 내에 통합될 수 있거나, 프로그램 코드의 형태로 컨트롤러의 메모리 요소에 저장되고 컨트롤러의 처리 요소에 의해 호출되어 전술한 유닛들의 기능들을 구현할 수 있다. 또한, 유닛들은 통합될 수 있거나 별개로 구현될 수 있다. 처리 요소는 집적 회로 칩일 수 있고 신호 처리 능력을 갖는다. 구현 프로세스에서, 전술한 방법들 또는 전술한 유닛들에서의 단계들은 처리 요소 내의 하드웨어 집적 로직 회로를 사용하거나, 소프트웨어의 형태의 명령어들을 사용함으로써 구현될 수 있다. 처리 요소는 중앙 처리 유닛(영문: central processing unit, 줄여서 CPU)과 같은 범용 프로세서일 수 있거나; 또는 하나 이상의 주문형 집적 회로(영문: application-specific integrated circuit, 줄여서 ASIC), 하나 이상의 디지털 신호 프로세서(영문: digital signal processor, 줄여서 DSP), 또는 하나 이상의 필드 프로그램가능 게이트 어레이(영문: field-programmable gate array, 줄여서 FPGA)와 같은 전술한 방법들을 수행하는 하나 이상의 집적 회로로서 구성될 수 있다.
동일한 발명 개념에 따르면, 본 발명의 실시예는 디코더(1300)를 추가로 제공한다. 도 13에 도시된 바와 같이, 디코더(1300)는 프로세서(1301) 및 메모리(1302)를 포함한다. 본 발명의 해결책들을 실행하기 위해 사용되는 프로그램 코드는 메모리(1302)에 저장되고, 도 5에 도시된 디코딩 방법을 수행하도록 프로세서(1301)에 지시하기 위해 사용된다.
도 5에 도시된 방법에 대응하는 코드는 또한 프로세서에 대한 설계 프로그래밍을 수행함으로써 칩에 내장될 수 있어서, 칩이 실행될 때, 도 5에 도시된 방법이 수행될 수 있다.
본 발명의 실시예들에서의 코더(1100) 및 디코더(1300) 내의 프로세서는 CPU, DSP, ASIC, 또는 본 발명의 해결책들에서의 프로그램 실행을 제어하도록 구성된 하나 이상의 집적 회로일 수 있다는 것이 이해될 수 있다. 컴퓨터 시스템에 포함된 하나 이상의 메모리는 판독 전용 메모리(영문: read-only memory, 줄여서 ROM) 또는 정적 정보 및 정적 명령어를 저장할 수 있는 다른 타입의 정적 저장 디바이스, 랜덤 액세스 메모리(영문: random access memory, 줄여서 RAM) 또는 정보 및 명령어를 저장할 수 있는 다른 타입의 동적 저장 디바이스일 수 있거나, 또는 자기 디스크 메모리일 수 있다. 이러한 메모리들은 버스를 사용하여 프로세서에 접속되거나, 전용 접속 케이블을 사용하여 프로세서에 접속될 수 있다.
본 기술분야의 통상의 기술자는, 실시예들의 전술한 방법들의 단계들의 전부 또는 일부가 프로세서에 명령하는 프로그램에 의해 구현될 수 있음을 이해할 수 있다. 전술한 프로그램은 컴퓨터 판독가능 저장 매체에 저장될 수 있다. 저장 매체는 랜덤 액세스 메모리, 판독 전용 메모리, 플래시 메모리, 하드 디스크, 솔리드 스테이트 드라이브, 자기 테이프(영문: magnetic tape), 플로피 디스크(영문: floppy disk), 광학 디스크(영문: optical disc), 또는 이들의 임의의 조합과 같은 비일시적(영문: non-transitory) 매체이다.
본 발명은 본 발명의 실시예들에서의 방법들 및 디바이스들의 각각의 흐름도들 및 블록도들을 참조하여 설명된다. 흐름도들 및 블록도들에서의 각 프로세스 및 각 블록 및 흐름도들 및 블록도들에서의 프로세스 및 블록의 조합을 구현하기 위해 컴퓨터 프로그램 명령어들이 사용될 수 있다는 것을 이해해야 한다. 이 컴퓨터 프로그램 명령어들은, 범용 컴퓨터, 전용 컴퓨터, 임베디드 프로세서, 또는 임의의 다른 프로그램가능 데이터 처리 디바이스의 프로세서를 위해 제공되어 머신을 생성할 수 있어서, 컴퓨터 또는 임의의 다른 프로그램가능 데이터 처리 디바이스의 프로세서에 의해 실행되는 명령어들은, 흐름도들의 하나 이상의 프로세스 또는 블록도들의 하나 이상의 블록에서 특정 기능을 구현하기 위한 장치를 생성한다.
전술한 설명들은 본 발명의 단지 예시적인 구현들이지만, 본 발명의 보호 범위를 제한하는 것으로 의도되지 않는다. 본 발명에 개시되는 기술적 범위 내에서 본 기술분야에서의 통상의 기술자에 의해 용이하게 도출되는 임의의 변형 또는 치환은 본 발명의 보호 범위 내에 속할 것이다. 따라서, 본 발명의 보호 범위는 청구항들의 보호 범위에 따를 것이다.
Claims (20)
- 인터-예측을 통한 이미지 코딩을 위한 방법으로서,
제1 코딩 블록의 예측 움직임 정보를 결정하는 단계 - 상기 예측 움직임 정보는 움직임 벡터 예측자 및 예측 참조 이미지 블록을 나타내기 위해 사용되는 예측 참조 이미지 정보를 포함함 -;
상기 예측 움직임 정보에 기초하여 상기 제1 코딩 블록에 대해 양방향 예측을 수행하여 상기 제1 코딩 블록의 초기 코딩 예측 블록을 획득하는 단계 - 상기 초기 코딩 예측 블록은 상기 제1 코딩 블록의 순방향 예측에 기초하여 획득된 초기 순방향 코딩 예측 블록 또는 상기 제1 코딩 블록의 역방향 예측에 기초하여 획득된 초기 역방향 코딩 예측 블록 중 적어도 하나를 포함함 -;
상기 초기 순방향 코딩 예측 블록 또는 상기 초기 역방향 코딩 예측 블록 중 적어도 하나를 사용하여 상기 제1 코딩 블록의 제1 코딩 예측 블록을 획득하는 단계;
상기 예측 참조 이미지 블록에 대해 제1 정밀도의 양방향 움직임 검색을 수행하여 적어도 하나의 제2 코딩 예측 블록을 획득하는 단계 - 상기 움직임 검색의 검색 위치는 상기 움직임 벡터 예측자 및 상기 제1 정밀도에 기초함 -;
상기 제1 코딩 예측 블록과 각각의 제2 코딩 예측 블록 사이의 차이를 계산하는 단계;
상기 제1 코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 코딩 예측 블록과 상기 제1 코딩 블록 사이의 최소 움직임 벡터 예측자를 사용하는 단계;
상기 타겟 움직임 벡터 예측자에 기초하여 상기 제1 코딩 블록에 대해 양방향 예측을 수행하여 상기 제1 코딩 블록의 제3 코딩 예측 블록을 획득하는 단계;
상기 제3 코딩 예측 블록에 기초하여 상기 제1 코딩 블록의 타겟 코딩 예측 블록을 획득하는 단계; 및
상기 타겟 코딩 예측 블록에 기초하여 상기 제1 코딩 블록을 코딩하는 단계
를 포함하는 방법. - 제1항에 있어서,
상기 예측 움직임 정보는 순방향 예측 움직임 정보를 포함하고, 상기 움직임 벡터 예측자는 순방향 움직임 벡터 예측자를 포함하고, 상기 예측 참조 이미지 블록은 순방향 예측 참조 이미지 블록을 포함하고, 상기 초기 코딩 예측 블록은 상기 초기 순방향 코딩 예측 블록을 포함하고, 상기 예측 움직임 정보에 기초하여 상기 제1 코딩 블록에 대해 양방향 예측을 수행하여 상기 제1 코딩 블록의 상기 초기 코딩 예측 블록을 획득하는 단계는 상기 순방향 예측 움직임 정보에 기초하여 상기 제1 코딩 블록에 대해 순방향 예측을 수행하여 상기 제1 코딩 블록의 상기 초기 순방향 코딩 예측 블록을 획득하는 것을 포함하는, 방법. - 제1항에 있어서,
상기 예측 움직임 정보는 역방향 예측 움직임 정보를 포함하고, 상기 움직임 벡터 예측자는 역방향 움직임 벡터 예측자를 포함하고, 상기 예측 참조 이미지 블록은 역방향 예측 참조 이미지 블록을 포함하고, 상기 초기 코딩 예측 블록은 상기 초기 역방향 코딩 예측 블록을 포함하고, 상기 예측 움직임 정보에 기초하여 상기 제1 코딩 블록에 대해 양방향 예측을 수행하여 상기 제1 코딩 블록의 상기 초기 코딩 예측 블록을 획득하는 단계는 상기 역방향 예측 움직임 정보에 기초하여 상기 제1 코딩 블록에 대해 역방향 예측을 수행하여 상기 제1 코딩 블록의 상기 초기 역방향 코딩 예측 블록을 획득하는 것을 포함하는, 방법. - 제1항에 있어서,
상기 제1 코딩 블록의 상기 제1 코딩 예측 블록을 획득하는 단계는:
상기 초기 순방향 코딩 예측 블록 및 상기 초기 역방향 코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 상기 제1 코딩 블록의 상기 제1 코딩 예측 블록을 획득하는 것;
상기 초기 순방향 코딩 예측 블록을 상기 제1 코딩 블록의 상기 제1 코딩 예측 블록으로서 사용하는 것; 또는
상기 초기 역방향 코딩 예측 블록을 상기 제1 코딩 블록의 상기 제1 코딩 예측 블록으로서 사용하는 것을 포함하는, 방법. - 제1항에 있어서,
상기 움직임 벡터 예측자는 순방향 움직임 벡터 예측자 또는 역방향 움직임 벡터 예측자를 포함하고 상기 예측 참조 이미지 블록은 순방향 예측 참조 이미지 블록 또는 역방향 예측 참조 이미지 블록을 포함하고, 각각의 제2 코딩 예측 블록은 순방향 제2 코딩 예측 블록 또는 역방향 제2 코딩 예측 블록을 포함하고, 상기 예측 참조 이미지 블록에 대해 상기 제1 정밀도의 움직임 검색을 수행하여 상기 적어도 하나의 제2 코딩 예측 블록을 획득하는 단계는:
상기 순방향 움직임 벡터 예측자에 기초하여 상기 순방향 예측 참조 이미지 블록에 대해 상기 제1 정밀도의 상기 움직임 검색을 수행하여 상기 적어도 하나의 제2 코딩 예측 블록을 획득하는 것; 또는
상기 역방향 움직임 벡터 예측자에 기초하여 상기 역방향 예측 참조 이미지 블록에 대해 상기 제1 정밀도의 상기 움직임 검색을 수행하여 상기 적어도 하나의 제2 코딩 예측 블록을 획득하는 것을 포함하고,
상기 제1 정밀도는 정수 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도, 또는 1/8 픽셀 정밀도를 포함하는, 방법. - 제5항에 있어서,
상기 타겟 움직임 벡터 예측자는 타겟 순방향 움직임 벡터 예측자 또는 타겟 역방향 움직임 벡터 예측자를 포함하고, 상기 제1 코딩 예측 블록과 각각의 제2 코딩 예측 블록 사이의 상기 차이를 계산하고, 상기 제1 코딩 블록의 상기 타겟 움직임 벡터 예측자로서 상기 최소 차이를 갖는 상기 제2 코딩 예측 블록과 상기 제1 코딩 블록 사이의 상기 최소 움직임 벡터 예측자를 사용하는 단계는:
상기 순방향 제2 코딩 예측 블록들과 상기 제1 코딩 예측 블록 사이의 차이들을 비교하고, 상기 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 최소 순방향 제2 코딩 예측 블록과 상기 제1 코딩 블록 사이의 타겟 순방향 움직임 벡터 예측자를 사용하는 것; 또는
상기 역방향 제2 코딩 예측 블록들과 상기 제1 코딩 예측 블록 사이의 차이들을 비교하고, 상기 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 최소 역방향 제2 코딩 예측 블록과 상기 제1 코딩 블록 사이의 타겟 역방향 움직임 벡터 예측자를 사용하는 것을 포함하는, 방법. - 제6항에 있어서,
상기 제1 코딩 블록의 상기 제3 코딩 예측 블록은 순방향 제3 코딩 예측 블록 또는 역방향 제3 코딩 예측 블록을 포함하고, 상기 타겟 움직임 벡터 예측자에 기초하여 상기 제1 코딩 블록에 대해 양방향 예측을 수행하여 상기 제1 코딩 블록의 상기 제3 코딩 예측 블록을 획득하는 단계는 :
상기 타겟 순방향 움직임 벡터 예측자에 기초하여 상기 제1 코딩 블록에 대해 순방향 예측을 수행하여 상기 제1 코딩 블록의 상기 순방향 제3 코딩 예측 블록을 획득하는 것; 또는
상기 타겟 역방향 움직임 벡터 예측자에 기초하여 상기 제1 코딩 블록에 대해 역방향 예측을 수행하여 상기 제1 코딩 블록의 상기 역방향 제3 코딩 예측 블록을 획득하는 것을 포함하는, 방법. - 제7항에 있어서,
상기 제3 코딩 예측 블록에 기초하여 상기 제1 코딩 블록의 상기 타겟 코딩 예측 블록을 획득하는 단계는:
상기 순방향 제3 코딩 예측 블록 및 상기 역방향 제3 코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 상기 제1 코딩 블록의 상기 타겟 코딩 예측 블록을 획득하는 것; 또는
상기 순방향 제3 코딩 예측 블록을 상기 제1 코딩 블록의 상기 타겟 코딩 예측 블록으로서 사용하는 것; 또는
상기 역방향 제3 코딩 예측 블록을 상기 제1 코딩 블록의 상기 타겟 코딩 예측 블록으로서 사용하는 것을 포함하는, 방법. - 인터-예측을 통한 이미지 디코딩을 위한 방법으로서,
제1 디코딩 블록의 예측 움직임 정보를 결정하는 단계 - 상기 예측 움직임 정보는 움직임 벡터 예측자 및 예측 참조 이미지를 나타내기 위해 사용되는 예측 참조 이미지 정보를 포함함 -;
상기 예측 움직임 정보에 기초하여 상기 제1 디코딩 블록에 대해 양방향 예측을 수행하여 상기 제1 디코딩 블록의 초기 디코딩 예측 블록을 획득하는 단계 - 상기 초기 디코딩 예측 블록은 상기 제1 디코딩 블록의 순방향 디코딩 예측에 기초하여 획득된 초기 순방향 디코딩 예측 블록 또는 상기 제1 디코딩 블록의 역방향 디코딩 예측에 기초하여 획득된 초기 역방향 디코딩 예측 블록 중 적어도 하나를 포함함 -;
상기 초기 순방향 디코딩 예측 블록 또는 상기 초기 역방향 디코딩 예측 블록 중 적어도 하나를 사용하여 상기 제1 디코딩 블록의 제1 디코딩 예측 블록을 획득하는 단계;
상기 예측 참조 이미지 블록에 대해 제1 정밀도의 양방향 움직임 검색을 수행하여 적어도 하나의 제2 디코딩 예측 블록을 획득하는 단계 - 상기 움직임 검색의 검색 위치는 상기 움직임 벡터 예측자 및 상기 제1 정밀도에 기초함 -;
상기 제1 디코딩 예측 블록과 각각의 제2 디코딩 예측 블록 사이의 차이를 계산하는 단계;
상기 제1 디코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 디코딩 예측 블록과 상기 제1 디코딩 블록 사이의 최소 움직임 벡터 예측자를 사용하는 단계;
상기 타겟 움직임 벡터 예측자에 기초하여 상기 제1 디코딩 블록에 대해 양방향 예측을 수행하여 상기 제1 디코딩 블록의 제3 디코딩 예측 블록을 획득하는 단계;
상기 제3 디코딩 예측 블록에 기초하여 상기 제1 디코딩 블록의 타겟 디코딩 예측 블록을 획득하는 단계; 및
상기 타겟 디코딩 예측 블록에 기초하여 상기 제1 디코딩 블록을 디코딩하는 단계
를 포함하는 방법. - 제9항에 있어서,
상기 예측 움직임 정보는 순방향 예측 움직임 정보를 포함하고, 상기 움직임 벡터 예측자는 순방향 움직임 벡터 예측자를 포함하고, 상기 예측 참조 이미지 블록은 순방향 예측 참조 이미지 블록을 포함하고, 상기 초기 디코딩 예측 블록은 상기 초기 순방향 디코딩 예측 블록을 포함하고, 상기 예측 움직임 정보에 기초하여 상기 제1 디코딩 블록에 대해 양방향 예측을 수행하여 상기 제1 디코딩 블록의 상기 초기 디코딩 예측 블록을 획득하는 단계는 상기 순방향 예측 움직임 정보에 기초하여 상기 제1 디코딩 블록에 대해 순방향 예측을 수행하여 상기 제1 디코딩 블록의 상기 초기 순방향 디코딩 예측 블록을 획득하는 것을 포함하는, 방법. - 제9항에 있어서,
상기 예측 움직임 정보는 역방향 예측 움직임 정보를 포함하고, 상기 움직임 벡터 예측자는 역방향 움직임 벡터 예측자를 포함하고, 상기 예측 참조 이미지 블록은 역방향 예측 참조 이미지 블록을 포함하고, 상기 초기 디코딩 예측 블록은 상기 초기 역방향 디코딩 예측 블록을 포함하고, 상기 예측 움직임 정보에 기초하여 상기 제1 디코딩 블록에 대해 양방향 예측을 수행하여 상기 제1 디코딩 블록의 상기 초기 디코딩 예측 블록을 획득하는 단계는 상기 역방향 예측 움직임 정보에 기초하여 상기 제1 디코딩 블록에 대해 역방향 예측을 수행하여 상기 제1 디코딩 블록의 상기 초기 역방향 디코딩 예측 블록을 획득하는 것을 포함하는, 방법. - 제9항에 있어서,
상기 초기 디코딩 예측 블록에 기초하여 상기 제1 디코딩 블록의 상기 제1 디코딩 예측 블록을 획득하는 단계는:
상기 초기 순방향 디코딩 예측 블록 및 상기 초기 역방향 디코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 상기 제1 디코딩 블록의 상기 제1 디코딩 예측 블록을 획득하는 것;
상기 초기 순방향 디코딩 예측 블록을 상기 제1 디코딩 블록의 상기 제1 디코딩 예측 블록으로서 사용하는 것; 또는
상기 초기 역방향 디코딩 예측 블록을 상기 제1 디코딩 블록의 상기 제1 디코딩 예측 블록으로서 사용하는 것을 포함하는, 방법. - 제9항에 있어서,
상기 움직임 벡터 예측자는 순방향 움직임 벡터 예측자 또는 역방향 움직임 벡터 예측자를 포함하고 상기 예측 참조 이미지 블록은 순방향 예측 참조 이미지 블록 또는 역방향 예측 참조 이미지 블록을 포함하고, 각각의 제2 디코딩 예측 블록은 순방향 제2 디코딩 예측 블록 또는 역방향 제2 디코딩 예측 블록을 포함하고, 상기 예측 참조 이미지 블록에 대해 상기 제1 정밀도의 상기 움직임 검색을 수행하여 상기 적어도 하나의 제2 디코딩 예측 블록을 획득하는 단계는:
상기 순방향 움직임 벡터 예측자에 기초하여 상기 순방향 예측 참조 이미지 블록에 대해 상기 제1 정밀도의 움직임 검색을 수행하여 상기 적어도 하나의 제2 디코딩 예측 블록을 획득하는 것; 또는
상기 역방향 움직임 벡터 예측자에 기초하여 상기 역방향 예측 참조 이미지 블록에 대해 상기 제1 정밀도의 움직임 검색을 수행하여 상기 적어도 하나의 제2 디코딩 예측 블록을 획득하는 것을 포함하고,
상기 제1 정밀도는 정수 픽셀 정밀도, 1/2 픽셀 정밀도, 1/4 픽셀 정밀도, 또는 1/8 픽셀 정밀도를 포함하는, 방법. - 제13항에 있어서,
상기 타겟 움직임 벡터 예측자는 타겟 순방향 움직임 벡터 예측자 또는 타겟 역방향 움직임 벡터 예측자를 포함하고, 상기 제1 디코딩 예측 블록과 각각의 제2 디코딩 예측 블록 사이의 상기 차이를 계산하고, 상기 제1 디코딩 블록의 상기 타겟 움직임 벡터 예측자로서 상기 최소 차이를 갖는 상기 제2 디코딩 예측 블록과 상기 제1 디코딩 블록 사이의 상기 최소 움직임 벡터 예측자를 사용하는 단계는:
상기 순방향 제2 디코딩 예측 블록들과 상기 제1 디코딩 예측 블록 사이의 차이들을 비교하고, 상기 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 최소 순방향 제2 디코딩 예측 블록과 상기 제1 디코딩 블록 사이의 타겟 순방향 움직임 벡터 예측자를 사용하는 것; 또는
상기 역방향 제2 디코딩 예측 블록들과 상기 제1 디코딩 예측 블록 사이의 차이들을 비교하고, 상기 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 최소 역방향 제2 디코딩 예측 블록과 상기 제1 디코딩 블록 사이의 타겟 역방향 움직임 벡터 예측자를 사용하는 것을 포함하는, 방법. - 제14항에 있어서,
상기 제1 디코딩 블록의 상기 제3 디코딩 예측 블록은 순방향 제3 디코딩 예측 블록 또는 역방향 제3 디코딩 예측 블록을 포함하고, 상기 타겟 움직임 벡터 예측자에 기초하여 상기 제1 디코딩 블록에 대해 양방향 예측을 수행하여 상기 제1 디코딩 블록의 상기 제3 디코딩 예측 블록을 획득하는 단계는:
상기 타겟 순방향 움직임 벡터 예측자에 기초하여 상기 제1 디코딩 블록에 대해 순방향 예측을 수행하여 상기 제1 디코딩 블록의 상기 순방향 제3 디코딩 예측 블록을 획득하는 것; 또는
상기 타겟 역방향 움직임 벡터 예측자에 기초하여 상기 제1 디코딩 블록에 대해 역방향 예측을 수행하여 상기 제1 디코딩 블록의 상기 역방향 제3 디코딩 예측 블록을 획득하는 것을 포함하는, 방법. - 제15항에 있어서,
상기 제3 디코딩 예측 블록에 기초하여 상기 제1 디코딩 블록의 상기 타겟 디코딩 예측 블록을 획득하는 단계는:
상기 순방향 제3 디코딩 예측 블록 및 상기 역방향 제3 디코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 상기 제1 디코딩 블록의 상기 타겟 디코딩 예측 블록을 획득하는 것; 또는
상기 순방향 제3 디코딩 예측 블록을 상기 제1 디코딩 블록의 상기 타겟 디코딩 예측 블록으로서 사용하는 것; 또는
상기 역방향 제3 디코딩 예측 블록을 상기 제1 디코딩 블록의 상기 타겟 디코딩 예측 블록으로서 사용하는 것을 포함하는, 방법. - 인터-예측을 통한 이미지 디코딩을 위한 장치로서,
프로세서; 및
상기 프로세서에 결합되고 명령어들을 저장하는 메모리
를 포함하고, 상기 명령어들은 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금:
제1 디코딩 블록의 예측 움직임 정보를 결정하고 - 상기 예측 움직임 정보는 움직임 벡터 예측자 및 예측 참조 이미지 블록을 나타내기 위해 사용되는 예측 참조 이미지 정보를 포함함 -;
상기 예측 움직임 정보에 기초하여 상기 제1 디코딩 블록에 대해 양방향 예측을 수행하여 상기 제1 디코딩 블록의 초기 디코딩 예측 블록을 획득하고 - 상기 초기 디코딩 예측 블록은 상기 제1 디코딩 블록의 순방향 디코딩 예측에 기초하여 획득된 초기 순방향 디코딩 예측 블록 또는 상기 제1 디코딩 블록의 역방향 디코딩 예측에 기초하여 획득된 초기 역방향 디코딩 예측 블록 중 적어도 하나를 포함함 -;
상기 초기 순방향 디코딩 예측 블록 또는 상기 초기 역방향 디코딩 예측 블록 중 적어도 하나를 사용하여 상기 제1 디코딩 블록의 제1 디코딩 예측 블록을 획득하고;
상기 예측 참조 이미지 블록에 대해 제1 정밀도의 양방향 움직임 검색을 수행하여 적어도 하나의 제2 디코딩 예측 블록을 획득하고 - 상기 움직임 검색의 검색 위치는 상기 움직임 벡터 예측자 및 상기 제1 정밀도에 기초함 -;
상기 제1 디코딩 예측 블록과 각각의 제2 디코딩 예측 블록 사이의 차이를 계산하고;
상기 제1 디코딩 블록의 타겟 움직임 벡터 예측자로서 최소 차이를 갖는 제2 디코딩 예측 블록과 상기 제1 디코딩 블록 사이의 최소 움직임 벡터 예측자를 사용하고;
상기 타겟 움직임 벡터 예측자에 기초하여 상기 제1 디코딩 블록에 대해 양방향 예측을 수행하여 상기 제1 디코딩 블록의 제3 디코딩 예측 블록을 획득하고;
상기 제3 디코딩 예측 블록에 기초하여 상기 제1 디코딩 블록의 타겟 디코딩 예측 블록을 획득하고;
상기 타겟 디코딩 예측 블록에 기초하여 상기 제1 디코딩 블록을 디코딩하게 하는, 장치. - 제17항에 있어서,
상기 예측 움직임 정보는 순방향 예측 움직임 정보를 포함하고, 상기 움직임 벡터 예측자는 순방향 움직임 벡터 예측자를 포함하고, 상기 예측 참조 이미지 블록은 순방향 예측 참조 이미지 블록을 포함하고, 상기 초기 디코딩 예측 블록은 상기 초기 순방향 디코딩 예측 블록을 포함하고, 상기 명령어들은 또한, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 상기 순방향 예측 움직임 정보에 기초하여 상기 제1 디코딩 블록에 대해 순방향 예측을 수행하여 상기 제1 디코딩 블록의 초기 순방향 디코딩 예측 블록을 획득하게 하는, 장치. - 제18항에 있어서,
상기 예측 움직임 정보는 역방향 예측 움직임 정보를 포함하고, 상기 움직임 벡터 예측자는 역방향 움직임 벡터 예측자를 포함하고, 상기 예측 참조 이미지 블록은 역방향 예측 참조 이미지 블록을 포함하고, 상기 초기 디코딩 예측 블록은 상기 초기 역방향 디코딩 예측 블록을 포함하고, 상기 명령어들은 또한, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 상기 역방향 예측 움직임 정보에 기초하여 상기 제1 디코딩 블록에 대해 역방향 예측을 수행하여 상기 제1 디코딩 블록의 초기 역방향 디코딩 예측 블록을 획득하게 하는, 장치. - 제19항에 있어서,
상기 명령어들은, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금:
상기 초기 순방향 디코딩 예측 블록 및 상기 초기 역방향 디코딩 예측 블록에 대해 가중치를 부여한 합산을 수행하여 상기 제1 디코딩 블록의 상기 제1 디코딩 예측 블록을 획득하고;
상기 초기 순방향 디코딩 예측 블록을 상기 제1 디코딩 블록의 상기 제1 디코딩 예측 블록으로서 사용하거나; 또는
상기 초기 역방향 디코딩 예측 블록을 상기 제1 디코딩 블록의 상기 제1 디코딩 예측 블록으로서 사용하게 하는, 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/101289 WO2018058622A1 (zh) | 2016-09-30 | 2016-09-30 | 一种帧间预测的图像编解码方法和装置 |
KR1020197010259A KR102219320B1 (ko) | 2016-09-30 | 2016-09-30 | 인터 프레임 예측을 위한 이미지 코딩 및 디코딩을 위한 방법 및 디바이스 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197010259A Division KR102219320B1 (ko) | 2016-09-30 | 2016-09-30 | 인터 프레임 예측을 위한 이미지 코딩 및 디코딩을 위한 방법 및 디바이스 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210021142A true KR20210021142A (ko) | 2021-02-24 |
KR102322437B1 KR102322437B1 (ko) | 2021-11-05 |
Family
ID=61763050
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217004758A KR102322437B1 (ko) | 2016-09-30 | 2016-09-30 | 인터 프레임 예측을 위한 이미지 코딩 및 디코딩을 위한 방법 및 디바이스 |
KR1020197010259A KR102219320B1 (ko) | 2016-09-30 | 2016-09-30 | 인터 프레임 예측을 위한 이미지 코딩 및 디코딩을 위한 방법 및 디바이스 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197010259A KR102219320B1 (ko) | 2016-09-30 | 2016-09-30 | 인터 프레임 예측을 위한 이미지 코딩 및 디코딩을 위한 방법 및 디바이스 |
Country Status (11)
Country | Link |
---|---|
US (1) | US11039144B2 (ko) |
EP (1) | EP3509304B1 (ko) |
JP (1) | JP6700489B2 (ko) |
KR (2) | KR102322437B1 (ko) |
CN (1) | CN109479143B (ko) |
AU (1) | AU2016425069B2 (ko) |
BR (1) | BR112019005678B1 (ko) |
MX (1) | MX2019003549A (ko) |
MY (1) | MY194555A (ko) |
RU (1) | RU2715010C1 (ko) |
WO (1) | WO2018058622A1 (ko) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019218286A1 (zh) | 2018-05-16 | 2019-11-21 | 华为技术有限公司 | 一种视频编解码方法和装置 |
JP7137008B2 (ja) | 2018-06-29 | 2022-09-13 | 北京字節跳動網絡技術有限公司 | 1つまたは複数のルックアップテーブルを使用して、以前コーディングされた動き情報を順に記憶させてそれらを後続のブロックのコーディングに使用する概念 |
CN110662052B (zh) | 2018-06-29 | 2022-07-08 | 北京字节跳动网络技术有限公司 | 更新查找表(lut)的条件 |
AU2019293670B2 (en) | 2018-06-29 | 2023-06-08 | Beijing Bytedance Network Technology Co., Ltd. | Update of look up table: FIFO, constrained FIFO |
CN114900694A (zh) | 2018-06-29 | 2022-08-12 | 抖音视界(北京)有限公司 | 哪个查找表需要更新或不更新 |
EP3791588A1 (en) | 2018-06-29 | 2021-03-17 | Beijing Bytedance Network Technology Co. Ltd. | Checking order of motion candidates in lut |
EP3791585A1 (en) | 2018-06-29 | 2021-03-17 | Beijing Bytedance Network Technology Co. Ltd. | Partial/full pruning when adding a hmvp candidate to merge/amvp |
WO2020003270A1 (en) | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Number of motion candidates in a look up table to be checked according to mode |
CN110662043B (zh) | 2018-06-29 | 2021-12-21 | 北京字节跳动网络技术有限公司 | 一种用于处理视频数据的方法、装置和计算机可读介质 |
CN110677667B (zh) | 2018-07-02 | 2022-06-07 | 北京字节跳动网络技术有限公司 | 查找表的使用 |
EP3811621A4 (en) * | 2018-07-06 | 2022-04-06 | HFI Innovation Inc. | ACQUIRED MOTION INFORMATION TO DECODE A CURRENT ENCODER UNIT IN A VIDEO ENCODER SYSTEM |
CN110858794B (zh) | 2018-08-24 | 2022-11-11 | 华为技术有限公司 | 多频段传输方法及装置 |
EP3840386A4 (en) | 2018-09-04 | 2021-09-22 | Huawei Technologies Co., Ltd. | METHOD AND DEVICE FOR DETERMINING A REFERENCE FRAME FOR BIDIRECTIONAL INTER-FRAME PREDICTION |
WO2020053800A1 (en) | 2018-09-12 | 2020-03-19 | Beijing Bytedance Network Technology Co., Ltd. | How many hmvp candidates to be checked |
AU2019377757A1 (en) * | 2018-11-08 | 2021-06-03 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Image signal encoding/decoding method and apparatus therefor |
CN111263152B (zh) | 2018-11-30 | 2021-06-01 | 华为技术有限公司 | 视频序列的图像编解码方法和装置 |
JP7275286B2 (ja) | 2019-01-10 | 2023-05-17 | 北京字節跳動網絡技術有限公司 | Lut更新の起動 |
CN113383554B (zh) | 2019-01-13 | 2022-12-16 | 北京字节跳动网络技术有限公司 | LUT和共享Merge列表之间的交互 |
CN113330739A (zh) | 2019-01-16 | 2021-08-31 | 北京字节跳动网络技术有限公司 | Lut中的运动候选的***顺序 |
CN113615193B (zh) | 2019-03-22 | 2024-06-25 | 北京字节跳动网络技术有限公司 | Merge列表构建和其他工具之间的交互 |
JP7303330B2 (ja) | 2019-04-28 | 2023-07-04 | 北京字節跳動網絡技術有限公司 | 対称動きベクトル差分符号化 |
CN115037933B (zh) * | 2022-08-09 | 2022-11-18 | 浙江大华技术股份有限公司 | 一种帧间预测的方法及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160286230A1 (en) * | 2015-03-27 | 2016-09-29 | Qualcomm Incorporated | Motion information derivation mode determination in video coding |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778097A (en) * | 1996-03-07 | 1998-07-07 | Intel Corporation | Table-driven bi-directional motion estimation using scratch area and offset valves |
ES2665693T3 (es) * | 2001-11-06 | 2018-04-26 | Panasonic Intellectual Property Corporation Of America | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento |
CN1236624C (zh) * | 2003-09-04 | 2006-01-11 | 上海大学 | 多种块模式的快速整像素运动估计方法 |
EP1578137A2 (en) | 2004-03-17 | 2005-09-21 | Matsushita Electric Industrial Co., Ltd. | Moving picture coding apparatus with multistep interpolation process |
JP2006080925A (ja) * | 2004-09-09 | 2006-03-23 | Toshiba Corp | 動画符号化装置、動画符号化方法および動画符号化プログラム |
EP2595381B1 (en) * | 2006-04-28 | 2016-05-18 | NTT DoCoMo, Inc. | Image predictive decoding device |
JP2008011158A (ja) * | 2006-06-29 | 2008-01-17 | Matsushita Electric Ind Co Ltd | 動きベクトル探索方法及び動きベクトル探索装置 |
CN100551073C (zh) * | 2006-12-05 | 2009-10-14 | 华为技术有限公司 | 编解码方法及装置、分像素插值处理方法及装置 |
CN102067601B (zh) | 2008-04-11 | 2014-03-12 | 汤姆森特许公司 | 视频编码和解码中模板匹配预测(tmp)的方法和装置 |
JP2010028220A (ja) * | 2008-07-15 | 2010-02-04 | Sony Corp | 動きベクトル検出装置、動きベクトル検出方法、画像符号化装置及びプログラム |
CN101931803B (zh) * | 2009-06-26 | 2013-01-09 | 华为技术有限公司 | 视频图像运动信息获取方法、装置及设备、模板构造方法 |
CN101860747B (zh) * | 2010-03-31 | 2012-05-23 | 北京大学 | 亚像素运动估计***及方法 |
JP5304708B2 (ja) * | 2010-03-31 | 2013-10-02 | 株式会社Jvcケンウッド | 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム |
CN107046644B (zh) * | 2010-04-09 | 2020-03-24 | 三菱电机株式会社 | 运动图像编码装置以及运动图像解码装置 |
CN103503458B (zh) * | 2011-01-07 | 2017-09-22 | 诺基亚技术有限公司 | 视频编码中的运动预测 |
MX2013008691A (es) * | 2011-02-10 | 2013-08-21 | Panasonic Corp | Metodo de codificacion de imagenes en movimiento, aparato de codificacion de imagenes en movimiento, metodo de decodificacion de imagenes en movimiento, aparato de decodificacion de imagenes en movimiento y aparato de codificacion y decodificacion de imagenes en movimiento. |
JP5649523B2 (ja) | 2011-06-27 | 2015-01-07 | 日本電信電話株式会社 | 映像符号化方法,装置,映像復号方法,装置およびそれらのプログラム |
US9819963B2 (en) * | 2011-07-12 | 2017-11-14 | Electronics And Telecommunications Research Institute | Inter prediction method and apparatus for same |
TWI586155B (zh) * | 2011-09-28 | 2017-06-01 | Jvc Kenwood Corp | A motion picture decoding apparatus, a motion picture decoding method, and a recording medium |
SG11201400294SA (en) * | 2011-10-17 | 2014-09-26 | Toshiba Kk | Encoding device, decoding device, encoding method, and decoding method |
-
2016
- 2016-09-30 KR KR1020217004758A patent/KR102322437B1/ko active IP Right Grant
- 2016-09-30 MY MYPI2019001630A patent/MY194555A/en unknown
- 2016-09-30 CN CN201680088009.XA patent/CN109479143B/zh active Active
- 2016-09-30 WO PCT/CN2016/101289 patent/WO2018058622A1/zh unknown
- 2016-09-30 JP JP2019517277A patent/JP6700489B2/ja active Active
- 2016-09-30 BR BR112019005678-5A patent/BR112019005678B1/pt active IP Right Grant
- 2016-09-30 RU RU2019113299A patent/RU2715010C1/ru active
- 2016-09-30 MX MX2019003549A patent/MX2019003549A/es unknown
- 2016-09-30 AU AU2016425069A patent/AU2016425069B2/en active Active
- 2016-09-30 KR KR1020197010259A patent/KR102219320B1/ko active IP Right Grant
- 2016-09-30 EP EP16917372.1A patent/EP3509304B1/en active Active
-
2019
- 2019-04-01 US US16/371,499 patent/US11039144B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160286230A1 (en) * | 2015-03-27 | 2016-09-29 | Qualcomm Incorporated | Motion information derivation mode determination in video coding |
Non-Patent Citations (1)
Title |
---|
Jianle Chen ET. AL., Algorithm Description of Joint Exploration Test Model 3, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 3rd Meeting,Geneva, CH, 2016.07.02., JVET-C1001_v1.* * |
Also Published As
Publication number | Publication date |
---|---|
EP3509304B1 (en) | 2023-11-01 |
JP2019530362A (ja) | 2019-10-17 |
US20190230362A1 (en) | 2019-07-25 |
KR20190045935A (ko) | 2019-05-03 |
CN109479143A (zh) | 2019-03-15 |
RU2715010C1 (ru) | 2020-02-21 |
EP3509304A1 (en) | 2019-07-10 |
JP6700489B2 (ja) | 2020-05-27 |
AU2016425069A1 (en) | 2019-04-11 |
BR112019005678A2 (pt) | 2019-06-11 |
US11039144B2 (en) | 2021-06-15 |
WO2018058622A1 (zh) | 2018-04-05 |
EP3509304A4 (en) | 2019-08-21 |
KR102322437B1 (ko) | 2021-11-05 |
KR102219320B1 (ko) | 2021-02-23 |
MY194555A (en) | 2022-12-01 |
MX2019003549A (es) | 2019-08-12 |
BR112019005678B1 (pt) | 2023-12-12 |
CN109479143B (zh) | 2020-09-08 |
AU2016425069B2 (en) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102219320B1 (ko) | 인터 프레임 예측을 위한 이미지 코딩 및 디코딩을 위한 방법 및 디바이스 | |
KR102563706B1 (ko) | 비디오 인코딩 방법, 비디오 디코딩 방법, 및 단말 | |
US11818379B2 (en) | Picture encoding and decoding method and apparatus for video sequence | |
JP6968228B2 (ja) | インター予測を介する画像符号化および復号のための方法および装置 | |
JP7036893B2 (ja) | 映像符号化方法、映像復号方法、および端末 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |