KR102010510B1 - 비디오 이미지 인코딩 방법, 비디오 이미지 디코딩 방법, 인코딩 장치, 및 디코딩 장치 - Google Patents

비디오 이미지 인코딩 방법, 비디오 이미지 디코딩 방법, 인코딩 장치, 및 디코딩 장치 Download PDF

Info

Publication number
KR102010510B1
KR102010510B1 KR1020177025899A KR20177025899A KR102010510B1 KR 102010510 B1 KR102010510 B1 KR 102010510B1 KR 1020177025899 A KR1020177025899 A KR 1020177025899A KR 20177025899 A KR20177025899 A KR 20177025899A KR 102010510 B1 KR102010510 B1 KR 102010510B1
Authority
KR
South Korea
Prior art keywords
motion
vector
block
motion vector
motion model
Prior art date
Application number
KR1020177025899A
Other languages
English (en)
Other versions
KR20170118161A (ko
Inventor
시신 린
환방 천
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20170118161A publication Critical patent/KR20170118161A/ko
Application granted granted Critical
Publication of KR102010510B1 publication Critical patent/KR102010510B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search

Landscapes

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

Abstract

본 발명의 실시예는 비디오 이미지 인코딩 방법, 비디오 이미지 디코딩 방법, 인코딩 장치, 및 디코딩 장치에 관한 것이다. 이 비디오 이미지 인코딩 방법은, 현재 인코딩 블록의 움직임 벡터 그룹을 결정하는 단계; 움직임 벡터 그룹에 따라 현재 인코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정하는 단계; 제1 성분 세트의 예측값에 따라 제1 성분 세트의 전송될 값을 결정하는 단계; 및 제1 성분 세트의 전송될 값을 인코딩하고, 제1 성분 세트의 인코딩된 전송될 값을 디코더 측에 전송하는 단계를 포함한다. 본 발명의 장치 실시예의 비디오 이미지 인코딩 방법, 비디오 이미지 디코딩 방법, 인코딩 장치, 및 디코딩 장치에 따르면, 현재 인코딩 블록의 움직임 모델 초기화 벡터가 움직임 벡터 그룹에 따라 결정되고; 움직임 모델의 전송될 값이 이 움직임 모델 초기화 벡터에 따라 결정되며; 디코더 측이 이 움직임 모델의 전송될 값에 따라 디코딩을 수행할 수 있도록, 이 움직임 모델의 전송될 값이 전송을 위해 인코딩된다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다.

Description

비디오 이미지 인코딩 방법, 비디오 이미지 디코딩 방법, 인코딩 장치, 및 디코딩 장치
삭제
본 발명은 비디오 이미지 처리 분야에 관한 것으로, 상세하게는 비디오 이미지 인코딩 방법, 비디오 이미지 디코딩 방법, 인코딩 장치, 및 디코딩 장치에 관한 것이다.
다양한 비디오 코덱에서는, 움직임 추정/움직임 보상이 인코딩 성능에 영향을 미치는 핵심 기술이다. 기존의 다양한 비디오 코덱에서는, 물체가 항상 병진 운동을 유지한다고 가정하고, 물체 전체의 모든 부분이 동일한 방향 및 동일한 속도로 움직인다고 가정하면, 블록 기반의 움직임 보상 기법을 이용한다. 하지만, 이러한 모든 방법은 병진 움직임 모델(Translational Motion Model)에 기초하고 있으며, 블록 기반의 움직임 보상 방법에 기초하여 개선이 이루어진다. 현실에서는, 움직임이 다양하다. 아핀 움직임(affine motion), 스케일링(scaling), 회전, 및 전단(shearing)과 같은 불규칙 움직임이 보편적이다. 이러한 움직임이 존재함으로 인해 블록 기반의 움직임 보상의 움직임 예측 결과를 사용하지 못하게 된다. 1990년대 이래로, 비디오 인코딩 전문가들은 불규칙 움직임이 보편적임을 깨닫고, 아핀 움직임 모델과 같은 불규칙 움직임 모델을 도입하여 비디오 인코딩 효율을 개선하였다.
종래 기술에서는, 아핀 움직임 모델이 인코딩에 사용된다. 레이트-왜곡 최적화 원리에 따라, 현재 블록을 인코딩하기 위해 아핀 파라미터 모델을 이용하는 데 있어서의 라그랑지안 비용(Lagrangian cost)이 인코더에서 다른 모델을 이용하는 데 있어서의 비용과 비교될 수 있다. 아핀 파라미터 모델을 이용하여 인코딩하는 데 있어서의 비용이 다른 인코딩 모델에서의 비용보다 작으면, 현재 블록을 인코딩하기 위해 아핀 파라미터 모델이 최종적으로 선택된다. 디코더가 파라미터를 이용하여 현재 블록을 재구성할 수 있도록, 양자화되는 아핀 모델 파라미터가 비트스트림에 인코딩된다. 하지만, 종래 기술에서는, 6개의 파라미터의 아핀 모션 파라미터 모델이 사용될 필요가 있다. 즉, 각각의 블록 내의 추가적인 비트가 6개의 아핀 움직임 모델 파라미터를 인코딩하기 위해 필요하다. 이로 인해 인코딩 효율을 추가적으로 개선하는 것이 제한된다.
본 발명은, 인코딩 및 디코딩 효율을 향상시킬 수 있는 비디오 이미지 인코딩 방법, 비디오 이미지 디코딩 방법, 인코딩 장치, 및 디코딩 장치를 제공한다.
제1 양태에 따르면, 비디오 이미지 인코딩 방법이 제공된다. 상기 비디오 이미지 인코딩 방법은, 현재 인코딩 블록의 움직임 벡터 그룹(motion vector group)을 결정하는 단계 - 상기 움직임 벡터 그룹은 상기 현재 인코딩 블록의 적어도 하나의 움직임 벡터를 포함하고 있음 -; 상기 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 상기 현재 인코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정하는 단계 - 상기 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함하고 있음 -; 상기 제1 성분 세트의 예측값에 따라 상기 제1 성분 세트의 전송될 값을 결정하는 단계; 및 상기 제1 성분 세트의 전송될 값을 인코딩하고, 상기 제1 성분 세트의 인코딩된 전송될 값을 디코더 측에 전송하는 단계를 포함한다.
제1 양태를 참조하여, 제1 양태의 일 구현에서, 상기 제1 성분 세트의 예측값에 따라 상기 제1 성분 세트의 전송될 값을 결정하는 단계는, 상기 현재 인코딩 블록의 움직임 모델 최적화 벡터를 결정하는 단계; 및 상기 제1 성분 세트의 예측값 및 상기 움직임 모델 최적화 벡터에 따라 상기 제1 성분 세트의 전송될 값을 결정하는 단계를 포함한다.
제1 양태 및 전술한 구현을 참조하여, 제1 양태의 다른 구현에서, 상기 비디오 이미지 인코딩 방법은, 정밀도 정보 및 상기 현재 인코딩 블록의 크기에 따라 움직임 모델 양자화 정밀도(motion model quantization precision)를 결정하는 단계를 더 포함하고; 이에 따라, 상기 제1 성분 세트의 예측값 및 상기 움직임 모델 최적화 벡터에 따라 상기 제1 성분 세트의 전송될 값을 결정하는 단계는, 상기 움직임 모델 양자화 정밀도에 따라 상기 움직임 모델 최적화 벡터를 양자화하는 단계; 및 상기 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 상기 제1 성분 세트의 전송될 값을 결정하는 단계를 포함한다.
제1 양태 및 전술한 구현을 참조하여, 제1 양태의 또 다른 구현에서, 상기 현재 인코딩 블록의 크기는 상기 현재 인코딩 블록의 폭 및 상기 현재 인코딩 블록의 높이를 포함하고, 상기 정밀도 정보는 상기 움직임 벡터 그룹의 양자화 정밀도를 포함하며; 이에 따라, 상기 정밀도 정보 및 상기 현재 인코딩 블록의 크기에 따라 움직임 모델 양자화 정밀도를 결정하는 단계는, 상기 움직임 모델 양자화 정밀도 Q를 아래의 수식에 따라 결정하는 단계를 포함한다.
Figure 112017089288300-pct00001
여기서, P는 상기 움직임 벡터 그룹의 양자화 정밀도이고, W는 상기 현재 인코딩 블록의 폭이며, H는 상기 현재 인코딩 블록의 높이이다.
제1 양태 및 전술한 구현을 참조하여, 제1 양태의 또 다른 구현에서, 상기 움직임 모델 초기화 벡터 및 상기 움직임 모델 최적화 벡터 각각은 6개의 성분을 포함하고, 상기 움직임 모델 초기화 벡터의 6개의 성분은 상기 움직임 모델 최적화 벡터의 6개의 성분과 일대일 대응관계에 있으며, 상기 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하고, 상기 3개의 움직임 벡터는 상기 현재 인코딩 블록 내의 3개의 화소에 대응하고 있다.
제1 양태 및 전술한 구현을 참조하여, 제1 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분 중 적어도 하나의 성분을 포함하고, 상기 움직임 모델 초기화 벡터의 6개의 성분
Figure 112017089288300-pct00002
는 아래의 수식에 따라 결정된다.
Figure 112017089288300-pct00003
Figure 112017089288300-pct00004
Figure 112017089288300-pct00005
Figure 112017089288300-pct00006
Figure 112017089288300-pct00007
Figure 112017089288300-pct00008
여기서, i=0, 1, 2, 3, 4, 5이고, W는 상기 현재 인코딩 블록의 폭이며, H는 상기 현재 인코딩 블록의 높이이고,
Figure 112017089288300-pct00009
는 상기 움직임 벡터
Figure 112017089288300-pct00010
의 x-방향 성분이며,
Figure 112017089288300-pct00011
는 상기 움직임 벡터
Figure 112017089288300-pct00012
의 y-방향 성분이고, j=0, 1, 2이다.
제1 양태 및 전술한 구현을 참조하여, 제1 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 2개의 성분을 포함하고; 상기 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 상기 제1 성분 세트의 전송될 값을 결정하는 단계는,
Figure 112017089288300-pct00013
Figure 112017089288300-pct00014
를 포함하는 상기 제1 성분 세트의 전송될 값을 결정하는 단계를 포함한다. 여기서,
Figure 112017089288300-pct00015
이고,
Figure 112017089288300-pct00016
이며,
Figure 112017089288300-pct00017
Figure 112017089288300-pct00018
는 상기 제1 성분 세트에 대응하는 양자화된 움직임 모델 최적화 벡터이고,
Figure 112017089288300-pct00019
Figure 112017089288300-pct00020
은 상기 제1 성분 세트의 예측값
Figure 112017089288300-pct00021
Figure 112017089288300-pct00022
이 양자화된 후에 획득된 수치 값이다.
제1 양태 및 전술한 구현을 참조하여, 제1 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분을 포함하고; 상기 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 상기 제1 성분 세트의 전송될 값을 결정하는 단계는,
Figure 112017089288300-pct00023
를 포함하는 상기 제1 성분 세트의 전송될 값을 결정하는 단계를 포함한다. 여기서, i=0, 1, 2, 3, 4, 5이고,
Figure 112017089288300-pct00024
이며,
Figure 112017089288300-pct00025
는 상기 양자화된 움직임 모델 최적화 벡터이고,
Figure 112017089288300-pct00026
는 상기 제1 성분 세트의 예측값이다.
제1 양태 및 전술한 구현을 참조하여, 제1 양태의 또 다른 구현에서, 상기 현재 인코딩 블록의 움직임 벡터 그룹을 결정하는 단계는, 상기 현재 인코딩 블록의 복수의 후보 블록을 결정하는 단계 - 상기 복수의 후보 블록의 각각의 후보 블록은 상기 현재 인코딩 블록에 인접한 인코딩된 블록임 -; 상기 복수의 후보 블록의 각각의 후보 블록의 움직임 벡터에 대응하는 예측 블록과 상기 현재 인코딩 블록 간의 매칭 에러값을 결정하는 단계; 상기 복수의 후보 블록에 대응하는 복수의 매칭 에러값 중에서 가장 작은 매칭 에러값에 대응하는 후보 블록을, 상기 현재 인코딩 블록의 타깃 후보 블록으로서 결정하는 단계; 상기 현재 인코딩 블록의 참조 프레임(reference frame)의 픽쳐 오더 카운트(picture order count) 및 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트를 획득하는 단계; 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 상기 현재 인코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율에 따라, 상기 움직임 벡터 그룹 내의 제1 움직임 벡터를 결정하는 단계 - 상기 타깃 후보 블록의 움직임 벡터에 대한 상기 제1 움직임 벡터의 비율은 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 상기 현재 인코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율과 동일함 -; 및 상기 제1 움직임 벡터에 따라 상기 움직임 벡터 그룹을 결정하는 단계를 포함한다.
제1 양태 및 전술한 구현을 참조하여, 제1 양태의 또 다른 구현에서, 상기 현재 인코딩 블록의 움직임 벡터 그룹을 결정하는 단계는, 상기 현재 인코딩 블록 내의 동일한 화소에 대응하는 복수의 후보 블록을 결정하는 단계 - 상기 복수의 후보 블록의 각각의 후보 블록은 상기 현재 인코딩 블록에 인접한 인코딩된 블록임 -; 상기 복수의 후보 블록의 각각의 후보 블록의 움직임 벡터에 대응하는 예측 블록과 상기 현재 인코딩 블록 간의 매칭 에러값을 결정하는 단계; 상기 복수의 후보 블록에 대응하는 복수의 매칭 에러값 중에서 가장 작은 매칭 에러값에 대응하는 후보 블록을, 상기 현재 인코딩 블록의 타깃 후보 블록으로서 결정하는 단계; 상기 타깃 후보 블록의 움직임 벡터를 상기 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정하는 단계; 상기 제1 움직임 벡터에 따라 상기 움직임 벡터 그룹 내의 제2 움직임 벡터를 결정하는 단계; 및 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 따라 상기 움직임 벡터 그룹을 결정하는 단계를 포함한다.
제1 양태 및 전술한 구현을 참조하여, 제1 양태의 또 다른 구현에서, 상기 현재 인코딩 블록의 움직임 벡터 그룹을 결정하는 단계는, 상기 현재 인코딩 블록의 복수의 후보 움직임 벡터 그룹을 결정하는 단계 - 상기 복수의 후보 움직임 벡터 그룹의 각각의 후보 움직임 벡터 그룹은 3개의 후보 움직임 벡터를 포함하고 있음 -; 상기 복수의 후보 움직임 벡터 그룹의 각각의 후보 움직임 벡터 그룹에 대응하는 후보 참조 프레임을 결정하는 단계; 각각의 후보 움직임 벡터 그룹에 대해서, 상기 후보 참조 프레임 내의 대응하는 예측 포인트에서, 상기 현재 인코딩 블록 내의 각각의 화소의 좌표값을 결정하는 단계; 각각의 후보 움직임 벡터 그룹에 대해서, 상기 후보 참조 프레임 내의 상기 대응하는 예측 포인트에서, 상기 현재 인코딩 블록 내의 각각의 화소의 좌표값 및 상기 현재 인코딩 블록 내의 상기 각각의 화소의 좌표값에 따라 상기 현재 인코딩 블록의 매칭 에러값을 결정하는 단계; 및 상기 현재 인코딩 블록의 가장 작은 매칭 에러값에 대응하는 상기 후보 움직임 벡터 그룹을 상기 현재 인코딩 블록의 움직임 벡터 그룹으로서 결정하는 단계를 포함한다.
제1 양태 및 전술한 구현을 참조하여, 제1 양태의 또 다른 구현에서, 상기 현재 인코딩 블록의 움직임 모델 최적화 벡터를 결정하는 단계는, 상기 움직임 모델 초기화 벡터에 따라 상기 현재 인코딩 블록의 제1 예측 블록을 결정하는 단계; 상기 현재 인코딩 블록과 상기 제1 예측 블록 간의 제1 매칭 에러값을 결정하는 단계; 상기 현재 인코딩 블록의 참조 프레임에 포함된 복수의 예측 블록 중에서, 상기 현재 인코딩 블록에 대해 가장 작은 매칭 에러값을 가진 제2 예측 블록을 결정하는 단계; 상기 현재 인코딩 블록과 상기 제2 예측 블록 간의 제2 매칭 에러값을 결정하는 단계; 및 상기 제1 매칭 에러값 및 상기 제2 매칭 에러값에 따라 상기 현재 인코딩 블록의 움직임 모델 최적화 벡터를 결정하는 단계를 포함한다.
제1 양태 및 전술한 구현을 참조하여, 제1 양태의 또 다른 구현에서, 상기 제1 매칭 에러값 및 상기 제2 매칭 에러값에 따라 상기 현재 인코딩 블록의 움직임 모델 최적화 벡터를 결정하는 단계는, 상기 제1 매칭 에러값이 상기 제2 매칭 에러값보다 작은 경우, 상기 움직임 모델 초기화 벡터를 상기 움직임 모델 최적화 벡터로서 결정하는 단계; 또는 상기 제1 매칭 에러값이 상기 제2 매칭 에러값보다 큰 경우, 상기 제2 예측 블록의 화소 및 상기 현재 인코딩 블록의 화소에 따라 상기 움직임 모델 최적화 벡터를 결정하는 단계를 포함한다.
제2 양태에 따르면, 비디오 이미지 디코딩 방법이 제공된다. 상기 비디오 이미지 디코딩 방법은, 비트스트림에 따라 움직임 벡터 그룹(motion vector group) 및 현재 디코딩 블록의 움직임 모델 전송 벡터(motion model transmission vector)를 결정하는 단계 - 상기 움직임 벡터 그룹은 상기 현재 디코딩 블록의 적어도 하나의 움직임 벡터를 포함하고, 상기 움직임 모델 전송 벡터는 적어도 4개의 성분을 포함하고 있음 -; 상기 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라, 상기 현재 디코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정하는 단계 - 상기 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함하고 있음 -; 및 움직임 모델 최적화 벡터에 따라 상기 현재 디코딩 블록을 디코딩할 수 있도록, 상기 제1 성분 세트의 예측값 및 상기 움직임 모델 전송 벡터에 따라 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정하는 단계를 포함한다.
제2 양태를 참조하여, 제2 양태의 일 구현에서, 상기 비디오 이미지 디코딩 방법은, 상기 현재 디코딩 블록의 움직임 모델 양자화 정밀도(motion model quantization precision)를 결정하는 단계; 상기 움직임 모델 양자화 정밀도에 따라 상기 움직임 모델 최적화 벡터를 양자화하는 단계; 및 양자화된 움직임 모델 최적화 벡터에 따라 상기 현재 디코딩 블록을 디코딩하는 단계를 더 포함한다.
제2 양태 및 전술한 구현을 참조하여, 제2 양태의 다른 구현에서, 상기 현재 디코딩 블록의 움직임 모델 양자화 정밀도를 결정하는 단계는, 정밀도 정보 및 상기 현재 디코딩 블록의 크기에 따라 상기 움직임 모델 양자화 정밀도를 결정하는 단계를 포함한다.
제2 양태 및 전술한 구현을 참조하여, 제2 양태의 또 다른 구현에서, 상기 현재 디코딩 블록의 크기는 상기 현재 디코딩 블록의 폭 및 상기 현재 디코딩 블록의 높이를 포함하고, 상기 정밀도 정보는 상기 움직임 벡터 그룹의 양자화 정밀도를 포함하며; 이에 따라, 상기 정밀도 정보 및 상기 현재 디코딩 블록의 크기에 따라 상기 움직임 모델 양자화 정밀도를 결정하는 단계는, 상기 움직임 모델 양자화 정밀도 Q를 아래의 수식에 따라 결정하는 단계를 포함한다.
Figure 112017089288300-pct00027
여기서, P는 상기 움직임 벡터 그룹의 양자화 정밀도이고, W는 상기 현재 디코딩 블록의 폭이며, H는 상기 현재 디코딩 블록의 높이이다.
제2 양태 및 전술한 구현을 참조하여, 제2 양태의 또 다른 구현에서, 상기 움직임 모델 초기화 벡터, 상기 움직임 모델 전송 벡터, 및 상기 움직임 모델 최적화 벡터 각각은 6개의 성분을 포함하고, 상기 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하며, 상기 3개의 움직임 벡터는 상기 현재 디코딩 블록 내의 3개의 화소와 일대일 대응관계에 있다.
제2 양태 및 전술한 구현을 참조하여, 제2 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분 중 적어도 하나의 성분을 포함하고, 상기 움직임 모델 초기화 벡터의 6개의 성분
Figure 112017089288300-pct00028
는 아래의 수식에 따라 결정된다.
Figure 112017089288300-pct00029
Figure 112017089288300-pct00030
Figure 112017089288300-pct00031
Figure 112017089288300-pct00032
Figure 112017089288300-pct00033
Figure 112017089288300-pct00034
여기서, i=0, 1, 2, 3, 4, 5이고, W는 상기 현재 디코딩 블록의 폭이며, H는 상기 현재 디코딩 블록의 높이이고,
Figure 112017089288300-pct00035
는 상기 움직임 벡터
Figure 112017089288300-pct00036
의 x-방향 성분이고,
Figure 112017089288300-pct00037
는 상기 움직임 벡터
Figure 112017089288300-pct00038
의 y-방향 성분이며, j=0, 1, 2이다.
제2 양태 및 전술한 구현을 참조하여, 제2 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 2개의 성분을 포함하고; 상기 제1 성분 세트의 예측값 및 상기 움직임 모델 전송 벡터에 따라 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정하는 단계는, 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터가
Figure 112017089288300-pct00039
라고 결정하는 단계를 포함한다. 여기서,
Figure 112017089288300-pct00040
이고,
Figure 112017089288300-pct00041
이며,
Figure 112017089288300-pct00042
는 상기 움직임 모델 전송 벡터이고,
Figure 112017089288300-pct00043
Figure 112017089288300-pct00044
은 상기 제1 성분 세트의 예측값
Figure 112017089288300-pct00045
Figure 112017089288300-pct00046
이 양자화된 후에 획득된 수치 값이다.
제2 양태 및 전술한 구현을 참조하여, 제2 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분을 포함하고; 상기 움직임 모델의 예측 파라미터 및 상기 움직임 모델의 디코딩 파라미터에 따라 상기 현재 디코딩 블록의 움직임 모델의 최적 파라미터를 결정하는 단계는, 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터가
Figure 112017089288300-pct00047
라고 결정하는 단계를 포함한다. 여기서,
Figure 112017089288300-pct00048
이고,
Figure 112017089288300-pct00049
는 상기 움직임 모델 전송 벡터이며,
Figure 112017089288300-pct00050
는 상기 제1 성분 세트의 예측값이고, i=0, 1, 2, 3, 4, 5이다.
제2 양태 및 전술한 구현을 참조하여, 제2 양태의 또 다른 구현에서, 상기 현재 디코딩 블록의 움직임 벡터 그룹과 움직임 모델 전송 벡터를 결정하는 단계는, 상기 비트스트림에 따라 상기 현재 디코딩 블록의 타깃 후보 블록 및 상기 타깃 후보 블록의 움직임 벡터를 결정하는 단계; 상기 현재 디코딩 블록의 참조 프레임(reference frame)의 픽쳐 오더 카운트(picture order count) 및 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트를 획득하는 단계; 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 상기 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율에 따라, 상기 움직임 벡터 그룹 내의 제1 움직임 벡터를 결정하는 단계 - 상기 타깃 후보 블록의 움직임 벡터에 대한 상기 제1 움직임 벡터의 비율은 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 상기 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율과 동일함 -; 및 상기 제1 움직임 벡터에 따라 상기 움직임 벡터 그룹을 결정하는 단계를 포함한다.
제2 양태 및 전술한 구현을 참조하여, 제2 양태의 또 다른 구현에서, 상기 비트스트림에 따라 현재 디코딩 블록의 움직임 벡터 그룹과 움직임 모델 전송 벡터를 결정하는 단계는, 상기 비트스트림에 따라 상기 현재 디코딩 블록 중 타깃 후보 블록의 움직임 벡터를 결정하는 단계; 상기 현재 디코딩 블록 중 상기 타깃 후보 블록의 움직임 벡터를 상기 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정하는 단계; 상기 제1 움직임 벡터에 따라 상기 움직임 벡터 그룹 내의 제2 움직임 벡터를 결정하는 단계; 및 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 따라 상기 움직임 벡터 그룹을 결정하는 단계를 포함한다.
제3 양태에 따르면, 인코딩 장치가 제공된다. 상기 인코딩 장치는, 현재 인코딩 블록의 움직임 벡터 그룹(motion vector group)을 결정하도록 구성된 제1 결정 모듈 - 상기 움직임 벡터 그룹은 상기 현재 인코딩 블록의 적어도 하나의 움직임 벡터를 포함하고 있음 -; 상기 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 상기 현재 인코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정하도록 구성된 제2 결정 모듈 - 상기 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함하고 있음 -; 상기 제1 성분 세트의 예측값에 따라 상기 제1 성분 세트의 전송될 값을 결정하도록 구성된 제3 결정 모듈; 및 상기 제1 성분 세트의 전송될 값을 인코딩하고, 상기 제1 성분 세트의 인코딩된 전송될 값을 디코더 측에 전송하도록 구성된 인코딩 모듈을 포함한다.
제3 양태를 참조하여, 제3 양태의 일 구현에서, 상기 제3 결정 모듈은 구체적으로, 상기 현재 인코딩 블록의 움직임 모델 최적화 벡터를 결정하고; 상기 제1 성분 세트의 예측값 및 상기 움직임 모델 최적화 벡터에 따라 상기 제1 성분 세트의 전송될 값을 결정하도록 구성된다.
제3 양태 및 전술한 구현을 참조하여, 제3 양태의 다른 구현에서, 상기 제3 결정 모듈은 구체적으로, 정밀도 정보 및 상기 현재 인코딩 블록의 크기에 따라 움직임 모델 양자화 정밀도(motion model quantization precision)를 결정하고; 상기 움직임 모델 양자화 정밀도에 따라 상기 움직임 모델 최적화 벡터를 양자화하며; 상기 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 상기 제1 성분 세트의 전송될 값을 결정하도록 구성된다.
제3 양태 및 전술한 구현을 참조하여, 제3 양태의 또 다른 구현에서, 상기 현재 인코딩 블록의 크기는 상기 현재 인코딩 블록의 폭 및 상기 현재 인코딩 블록의 높이를 포함하고, 상기 정밀도 정보는 상기 움직임 벡터 그룹의 양자화 정밀도를 포함하며; 상기 제3 결정 모듈은 구체적으로, 상기 움직임 모델 양자화 정밀도 Q를 아래의 수식에 따라 결정하도록 구성된다.
Figure 112017089288300-pct00051
여기서, P는 상기 움직임 벡터 그룹의 양자화 정밀도이고, W는 상기 현재 인코딩 블록의 폭이며, H는 상기 현재 인코딩 블록의 높이이다.
제3 양태 및 전술한 구현을 참조하여, 제3 양태의 또 다른 구현에서, 상기 움직임 모델 초기화 벡터 및 상기 움직임 모델 최적화 벡터 각각은 6개의 성분을 포함하고, 상기 움직임 모델 초기화 벡터의 6개의 성분은 상기 움직임 모델 최적화 벡터의 6개의 성분과 일대일 대응관계에 있으며, 상기 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하고, 상기 3개의 움직임 벡터는 상기 현재 인코딩 블록 내의 3개의 화소에 대응하고 있다.
제3 양태 및 전술한 구현을 참조하여, 제3 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분 중 적어도 하나의 성분을 포함하고, 상기 제2 결정 모듈은 구체적으로, 상기 움직임 모델 초기화 벡터의 6개의 성분
Figure 112017089288300-pct00052
를 아래의 수식에 따라 결정하도록 구성된다.
Figure 112017089288300-pct00053
Figure 112017089288300-pct00054
Figure 112017089288300-pct00055
Figure 112017089288300-pct00056
Figure 112017089288300-pct00057
Figure 112017089288300-pct00058
여기서, i=0, 1, 2, 3, 4, 5이고, W는 상기 현재 인코딩 블록의 폭이며, H는 상기 현재 인코딩 블록의 높이이고,
Figure 112017089288300-pct00059
는 상기 움직임 벡터
Figure 112017089288300-pct00060
의 x-방향 성분이며,
Figure 112017089288300-pct00061
는 상기 움직임 벡터
Figure 112017089288300-pct00062
의 y-방향 성분이고, j=0, 1, 2이다.
제3 양태 및 전술한 구현을 참조하여, 제3 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 2개의 성분을 포함하고, 상기 제2 결정 모듈은 구체적으로, 상기 제1 성분 세트의 전송될 값을 결정하도록 구성된다. 여기서, 상기 제1 성분 세트의 전송될 값은
Figure 112017089288300-pct00063
Figure 112017089288300-pct00064
을 포함하고,
Figure 112017089288300-pct00065
이고,
Figure 112017089288300-pct00066
이며,
Figure 112017089288300-pct00067
Figure 112017089288300-pct00068
는 상기 제1 성분 세트에 대응하는 양자화된 움직임 모델 최적화 벡터이고,
Figure 112017089288300-pct00069
Figure 112017089288300-pct00070
은 상기 제1 성분 세트의 예측값
Figure 112017089288300-pct00071
Figure 112017089288300-pct00072
이 양자화된 후에 획득된 수치 값이다.
제3 양태 및 전술한 구현을 참조하여, 제3 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분을 포함하고, 상기 제2 결정 모듈은 구체적으로, 상기 제1 성분 세트의 전송될 값을 결정하도록 구성된다. 여기서, 상기 제1 성분 세트의 전송될 값은
Figure 112017089288300-pct00073
를 포함하고, i=0, 1, 2, 3, 4, 5이며,
Figure 112017089288300-pct00074
이고,
Figure 112017089288300-pct00075
는 상기 양자화된 움직임 모델 최적화 벡터이며,
Figure 112017089288300-pct00076
는 상기 제1 성분 세트의 예측값이다.
제3 양태 및 전술한 구현을 참조하여, 제3 양태의 또 다른 구현에서, 상기 제1 결정 모듈은 구체적으로, 상기 현재 인코딩 블록의 복수의 후보 블록을 결정하고 - 상기 복수의 후보 블록의 각각의 후보 블록은 상기 현재 인코딩 블록에 인접한 인코딩된 블록임 -; 상기 복수의 후보 블록의 각각의 후보 블록의 움직임 벡터에 대응하는 예측 블록과 상기 현재 인코딩 블록 간의 매칭 에러값을 결정하며; 상기 복수의 후보 블록에 대응하는 복수의 매칭 에러값 중에서 가장 작은 매칭 에러값에 대응하는 후보 블록을, 상기 현재 인코딩 블록의 타깃 후보 블록으로서 결정하고; 상기 현재 인코딩 블록의 참조 프레임(reference frame)의 픽쳐 오더 카운트(picture order count) 및 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트를 획득하며; 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 상기 현재 인코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율에 따라, 상기 움직임 벡터 그룹 내의 제1 움직임 벡터를 결정하고 - 여기서, 상기 타깃 후보 블록의 움직임 벡터에 대한 상기 제1 움직임 벡터의 비율은 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 상기 현재 인코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율과 동일함 -; 상기 제1 움직임 벡터에 따라 상기 움직임 벡터 그룹을 결정하도록 구성된다.
제3 양태 및 전술한 구현을 참조하여, 제3 양태의 또 다른 구현에서, 상기 제1 결정 모듈은 구체적으로, 상기 현재 인코딩 블록 내의 동일한 화소에 대응하는 복수의 후보 블록을 결정하고 - 여기서, 상기 복수의 후보 블록의 각각의 후보 블록은 상기 현재 인코딩 블록에 인접한 인코딩된 블록임 -; 상기 복수의 후보 블록의 각각의 후보 블록의 움직임 벡터에 대응하는 예측 블록과 상기 현재 인코딩 블록 간의 매칭 에러값을 결정하며; 상기 복수의 후보 블록에 대응하는 복수의 매칭 에러값 중에서 가장 작은 매칭 에러값에 대응하는 후보 블록을, 상기 현재 인코딩 블록의 타깃 후보 블록으로서 결정하고; 상기 타깃 후보 블록의 움직임 벡터를 상기 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정하며; 상기 제1 움직임 벡터에 따라 상기 움직임 벡터 그룹 내의 제2 움직임 벡터를 결정하고; 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 따라 상기 움직임 벡터 그룹을 결정하도록 구성된다.
제3 양태 및 전술한 구현을 참조하여, 제3 양태의 또 다른 구현에서, 상기 제1 결정 모듈은 구체적으로, 상기 현재 인코딩 블록의 복수의 후보 움직임 벡터 그룹을 결정하고 - 여기서, 상기 복수의 후보 움직임 벡터 그룹의 각각의 후보 움직임 벡터 그룹은 3개의 후보 움직임 벡터를 포함하고 있음 -; 상기 복수의 후보 움직임 벡터 그룹의 각각의 후보 움직임 벡터 그룹에 대응하는 후보 참조 프레임을 결정하며; 각각의 후보 움직임 벡터 그룹에 대해서, 상기 후보 참조 프레임 내의 대응하는 예측 포인트에서, 상기 현재 인코딩 블록 내의 각각의 화소의 좌표값을 결정하고; 각각의 후보 움직임 벡터 그룹에 대해서, 상기 후보 참조 프레임 내의 상기 대응하는 예측 포인트에서, 상기 현재 인코딩 블록 내의 각각의 화소의 좌표값 및 상기 현재 인코딩 블록 내의 상기 각각의 화소의 좌표값에 따라 상기 현재 인코딩 블록의 매칭 에러값을 결정하며; 상기 현재 인코딩 블록의 가장 작은 매칭 에러값에 대응하는 상기 후보 움직임 벡터 그룹을, 상기 현재 인코딩 블록의 움직임 벡터 그룹으로서 결정하도록 구성된다.
제3 양태 및 전술한 구현을 참조하여, 제3 양태의 또 다른 구현에서, 상기 제3 결정 모듈은 구체적으로, 상기 움직임 모델 초기화 벡터에 따라 상기 현재 인코딩 블록의 제1 예측 블록을 결정하고; 상기 현재 인코딩 블록과 상기 제1 예측 블록 간의 제1 매칭 에러값을 결정하며; 상기 현재 인코딩 블록의 참조 프레임에 포함된 복수의 예측 블록 중에서, 상기 현재 인코딩 블록에 대해 가장 작은 매칭 에러값을 가진 제2 예측 블록을 결정하고; 상기 현재 인코딩 블록과 상기 제2 예측 블록 간의 제2 매칭 에러값을 결정하며; 상기 제1 매칭 에러값 및 상기 제2 매칭 에러값에 따라 상기 현재 인코딩 블록의 움직임 모델 최적화 벡터를 결정하도록 구성된다.
제3 양태 및 전술한 구현을 참조하여, 제3 양태의 또 다른 구현에서, 상기 제3 결정 모듈은 구체적으로, 상기 제1 매칭 에러값이 상기 제2 매칭 에러값보다 작은 경우, 상기 움직임 모델 초기화 벡터를 상기 움직임 모델 최적화 벡터로서 결정하거나; 또는 상기 제1 매칭 에러값이 상기 제2 매칭 에러값보다 큰 경우, 상기 제2 예측 블록의 화소 및 상기 현재 인코딩 블록의 화소에 따라 상기 움직임 모델 최적화 벡터를 결정하도록 구성된다.
제4 양태에 따르면, 비디오 이미지 디코딩을 위한 디코딩 장치가 제공된다. 상기 디코딩 장치는, 비트스트림에 따라 움직임 벡터 그룹(motion vector group) 및 현재 디코딩 블록의 움직임 모델 전송 벡터(motion model transmission vector)를 결정하도록 구성된 제1 결정 모듈 - 상기 움직임 벡터 그룹은 상기 현재 디코딩 블록의 적어도 하나의 움직임 벡터를 포함하고, 상기 움직임 모델 전송 벡터는 적어도 4개의 성분을 포함하고 있음 -; 상기 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라, 상기 현재 디코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정하도록 구성된 제2 결정 모듈 - 상기 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함하고 있음 -; 및 움직임 모델 최적화 벡터에 따라 상기 현재 디코딩 블록을 디코딩할 수 있도록, 상기 제1 성분 세트의 예측값 및 상기 움직임 모델 전송 벡터에 따라 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정하도록 구성된 제3 결정 모듈을 포함한다.
제4 양태를 참조하여, 제4 양태의 일 구현에서, 상기 제3 결정 모듈은 구체적으로, 상기 현재 디코딩 블록의 움직임 모델 양자화 정밀도(motion model quantization precision)를 결정하고; 상기 움직임 모델 양자화 정밀도에 따라 상기 움직임 모델 최적화 벡터를 양자화하며; 양자화된 움직임 모델 최적화 벡터에 따라 상기 현재 디코딩 블록을 디코딩하도록 구성된다.
제4 양태 및 전술한 구현을 참조하여, 제4 양태의 다른 구현에서, 상기 제3 결정 모듈은 구체적으로, 정밀도 정보 및 상기 현재 디코딩 블록의 크기에 따라 상기 움직임 모델 양자화 정밀도를 결정하도록 구성된다.
제4 양태 및 전술한 구현을 참조하여, 제4 양태의 또 다른 구현에서, 상기 현재 디코딩 블록의 크기는 상기 현재 디코딩 블록의 폭 및 상기 현재 디코딩 블록의 높이를 포함하고, 상기 정밀도 정보는 상기 움직임 벡터 그룹의 양자화 정밀도를 포함하며; 상기 제3 결정 모듈은 구체적으로, 상기 움직임 모델 양자화 정밀도 Q를 아래의 수식에 따라 결정하도록 구성된다.
Figure 112017089288300-pct00077
여기서, P는 상기 움직임 벡터 그룹의 양자화 정밀도이고, W는 상기 현재 디코딩 블록의 폭이며, H는 상기 현재 디코딩 블록의 높이이다.
제4 양태 및 전술한 구현을 참조하여, 제4 양태의 또 다른 구현에서, 상기 움직임 모델 초기화 벡터, 상기 움직임 모델 전송 벡터, 및 상기 움직임 모델 최적화 벡터 각각은 6개의 성분을 포함하고, 상기 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하며, 상기 3개의 움직임 벡터는 상기 현재 디코딩 블록 내의 3개의 화소와 일대일 대응관계에 있다.
제4 양태 및 전술한 구현을 참조하여, 제4 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분 중 적어도 하나의 성분을 포함하고, 상기 제2 결정 모듈은 구체적으로, 상기 움직임 모델 초기화 벡터의 6개의 성분
Figure 112017089288300-pct00078
를 아래의 수식에 따라 결정하도록 구성된다.
Figure 112017089288300-pct00079
Figure 112017089288300-pct00080
Figure 112017089288300-pct00081
Figure 112017089288300-pct00082
Figure 112017089288300-pct00083
Figure 112017089288300-pct00084
여기서, i=0, 1, 2, 3, 4, 5이고, W는 상기 현재 디코딩 블록의 폭이며, H는 상기 현재 디코딩 블록의 높이이고,
Figure 112017089288300-pct00085
는 상기 움직임 벡터
Figure 112017089288300-pct00086
의 x-방향 성분이며,
Figure 112017089288300-pct00087
는 상기 움직임 벡터
Figure 112017089288300-pct00088
의 y-방향 성분이고, j=0, 1, 2이다.
제4 양태 및 전술한 구현을 참조하여, 제4 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 2개의 성분을 포함하고; 상기 제2 결정 모듈은 구체적으로, 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터가
Figure 112017089288300-pct00089
라고 결정하도록 구성된다. 여기서,
Figure 112017089288300-pct00090
이고,
Figure 112017089288300-pct00091
이며,
Figure 112017089288300-pct00092
는 상기 움직임 모델 전송 벡터이고,
Figure 112017089288300-pct00093
Figure 112017089288300-pct00094
은 상기 제1 성분 세트의 예측값
Figure 112017089288300-pct00095
Figure 112017089288300-pct00096
이 양자화된 후에 획득된 수치 값이다.
제4 양태 및 전술한 구현을 참조하여, 제4 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분을 포함하고; 상기 제2 결정 모듈은 구체적으로, 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터가
Figure 112017089288300-pct00097
라고 결정하도록 구성된다. 여기서,
Figure 112017089288300-pct00098
이고,
Figure 112017089288300-pct00099
는 상기 움직임 모델 전송 벡터이며,
Figure 112017089288300-pct00100
는 상기 제1 성분 세트의 예측값이고, i=0, 1, 2, 3, 4, 5이다.
제4 양태 및 전술한 구현을 참조하여, 제4 양태의 또 다른 구현에서, 상기 제1 결정 모듈은 구체적으로, 상기 비트스트림에 따라 상기 현재 디코딩 블록의 타깃 후보 블록 및 상기 타깃 후보 블록의 움직임 벡터를 결정하고; 상기 현재 디코딩 블록의 참조 프레임(reference frame)의 픽쳐 오더 카운트(picture order count) 및 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트를 획득하며; 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 상기 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율에 따라, 상기 움직임 벡터 그룹 내의 제1 움직임 벡터를 결정하고 - 여기서, 상기 타깃 후보 블록의 움직임 벡터에 대한 상기 제1 움직임 벡터의 비율은 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 상기 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율과 동일함 -; 상기 제1 움직임 벡터에 따라 상기 움직임 벡터 그룹을 결정하도록 구성된다.
제4 양태 및 전술한 구현을 참조하여, 제4 양태의 또 다른 구현에서, 상기 제1 결정 모듈은 구체적으로, 상기 비트스트림에 따라 상기 현재 디코딩 블록 중 타깃 후보 블록의 움직임 벡터를 결정하고; 상기 현재 디코딩 블록 중 상기 타깃 후보 블록의 움직임 벡터를 상기 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정하며; 상기 제1 움직임 벡터에 따라 상기 움직임 벡터 그룹 내의 제2 움직임 벡터를 결정하고; 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 따라 상기 움직임 벡터 그룹을 결정하도록 구성된다.
전술한 과제 해결수단에 기초하여, 본 발명의 본 실시예의 비디오 이미지 인코딩 방법, 비디오 이미지 디코딩 방법, 인코딩 장치, 및 디코딩 장치에 따르면, 현재 인코딩 블록의 움직임 벡터 그룹이 결정되고; 현재 인코딩 블록의 움직임 모델 초기화 벡터가 움직임 벡터 그룹에 따라 결정되며; 움직임 모델의 전송될 값이 움직임 모델 초기화 벡터에 따라 결정되고; 디코더 측이 움직임 모델의 전송될 값에 따라 디코딩을 수행할 수 있도록, 움직임 모델의 전송될 값이 전송을 위해 인코딩된다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다.
이하, 본 발명의 실시예의 과제 해결수단을 더 명확하게 설명하기 위하여, 본 발명의 실시예를 설명하는 데 필요한 첨부 도면에 대해 간략히 설명한다. 명백히, 다음의 설명에서의 첨부 도면은 본 발명의 일부 실시예를 나타낼 뿐이며, 당업자는 창의적인 노력 없이도 이들 첨부 도면으로부터 다른 도면을 여전히 도출해낼 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 비디오 이미지 인코딩 방법의 개략적인 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 현재 인코딩 블록이나 현재 디코딩 블록 및 후보 블록의 개략도이다.
도 3은 본 발명의 다른 실시예에 따른 비디오 이미지 디코딩 방법의 개략적인 흐름도이다.
도 4는 본 발명의 또 다른 실시예에 따른 비디오 이미지 디코딩 방법의 다른 개략적인 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 인코딩 장치의 개략적인 블록도이다.
도 6은 본 발명의 일 실시예에 따른 디코딩 장치의 개략적인 블록도이다.
도 7은 본 발명의 일 실시예에 따른 인코딩 장치의 다른 개략적인 블록도이다.
도 8은 본 발명의 일 실시예에 따른 디코딩 장치의 또 다른 개략적인 블록도이다.
이하, 본 발명의 실시예의 첨부 도면을 참조하여, 본 발명의 실시예의 과제 해결수단에 대해 명확하고 완전하게 설명한다. 명백히, 이하의 실시예는 본 발명의 실시예의 전부가 아니라 단지 일부일 뿐이다. 창작적인 노력 없이 본 발명의 실시예에 기반하여 당업자에 의해 획득되는 다른 모든 실시예는 본 발명의 보호 범위에 속할 것이다.
도 1은 본 발명의 일 실시예에 따른 비디오 이미지 인코딩 방법의 개략적인 흐름도이다. 도 1에 도시된 비디오 이미지 인코딩 방법은 인코딩 장치, 예컨대 인코더에 의해 실행될 수 있다. 구체적으로, 도 1에 도시된 바와 같이, 비디오 이미지 인코딩 방법(100)은 다음의 단계를 포함한다.
S110. 현재 인코딩 블록의 움직임 벡터 그룹(motion vector group)을 결정한다. 여기서, 움직임 벡터 그룹은 현재 인코딩 블록의 적어도 하나의 움직임 벡터를 포함한다.
S120. 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 현재 인코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정한다. 여기서, 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함한다.
S130. 제1 성분 세트의 예측값에 따라 제1 성분 세트의 전송될 값을 결정한다.
S140. 제1 성분 세트의 전송될 값을 인코딩하고, 제1 성분 세트의 인코딩된 전송될 값을 디코더 측에 전송한다.
구체적으로, 현재 인코딩 블록의 움직임 벡터 그룹이 결정된다. 여기서, 이 움직임 벡터 그룹은 현재 인코딩 블록 내의 화소에 대응하는 적어도 하나의 움직임 벡터를 포함한다. 현재 인코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값이 이 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 결정된다. 여기서, 이 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함하고, 제1 성분 세트는 이 움직임 모델 초기화 벡터의 적어도 하나의 성분을 포함한다. 그 다음에, 움직임 모델 양자화 정밀도(motion model quantization precision) 및 움직임 모델 최적화 벡터가 현재 인코딩 블록에 따라 결정되고, 이 움직임 모델 최적화 벡터는 양자화 정밀도에 따라 양자화된다. 디코더 측이 디코딩 연산을 수행할 수 있도록, 제1 성분 세트의 전송될 값이 이 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 결정될 수 있고, 제1 성분 세트의 전송될 값이 인코딩되어 디코더 측에 전송된다. 또한, 현재 인코딩 블록의 예측 샘플이 양자화된 움직임 모델 최적화 벡터에 따라 결정될 수 있고, 이 예측 샘플에 따라 현재 인코딩 블록이 인코딩되어 전송된다.
그러므로, 본 발명의 본 실시예의 비디오 이미지 인코딩 방법에 따르면, 현재 인코딩 블록의 움직임 벡터 그룹이 결정되고; 현재 인코딩 블록의 움직임 모델 초기화 벡터가 이 움직임 벡터 그룹에 따라 결정되며; 움직임 모델의 전송될 값이 이 움직임 모델 초기화 벡터에 따라 결정되고; 디코더 측이 이 움직임 모델의 전송될 값에 따라 디코딩을 수행할 수 있도록, 이 움직임 모델의 전송될 값이 전송을 위해 인코딩된다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다.
본 발명의 본 실시예에서, 모든 인코딩 표준에서의 비디오 이미지 인코딩 과정의 경우, 화면 간 예측에 대해서, 아핀 움직임 모델(affine motion model), 일반 움직임 모델(general motion model), 또는 관점 모델(perspective model)과 같은 복수의 움직임 모델이 움직임 보상 계산 과정에서 사용될 수 있다. 여기서, 아핀 움직임 모델 설명을 위한 예로서 사용되지만, 본 발명은 이에 제한되지 않는다.
S110에서, 현재 인코딩 블록의 움직임 벡터 그룹이 결정된다. 이 움직임 벡터 그룹은 현재 인코딩 블록의 적어도 하나의 움직임 벡터를 포함하고, 각각의 움직임 벡터는 현재 인코딩 블록 내의 화소에 대응하고 있을 수 있다. 움직임 모델을 설명하는 데 필요한 파라미터의 개수가 움직임 모델에 따라 달라진다. 2n개의 파라미터를 가진 움직임 모델의 경우, 현재 인코딩 블록의 움직임 벡터 그룹이 일반적으로 n개의 움직임 벡터를 포함할 수 있다. 예를 들어, 아핀 움직임의 경우, 현재 인코딩 블록 내의 모든 화소가 아핀 움직임 모델을 이용하여 표현되는 경우, 일반적으로 아핀 움직임 모델은
Figure 112017089288300-pct00101
로서 표현될 수 있다. 즉, 아핀 움직임 모델은 6개의 파라미터를 가지며, 움직임 벡터 그룹이 적어도 3개의 움직임 벡터를 포함한다. 일반 움직임 모델의 경우, 12개의 파라미터가 일반적으로 사용되고, 움직임 벡터 그룹이 적어도 6개의 움직임 벡터를 포함한다. 선택적으로, 움직임 벡터 그룹의 적어도 하나의 움직임 벡터를 결정하는 것은, 움직임 벡터 그룹의 하나의 움직임 벡터를 결정하는 것이거나, 또는 움직임 벡터 그룹의 n개의 움직임 벡터 또는 모든 움직임 벡터를 결정하는 것일 수 있다. 예를 들어, 아핀 움직임의 경우, 움직임 벡터 그룹이 적어도 3개의 움직임 벡터를 포함할 수 있고, 현재 인코딩 블록의 움직임 벡터 그룹을 결정하는 것이 하나의 움직임 벡터, 또는 3개의 움직임 벡터, 또는 계산 벡터 그룹의 모든 움직임 벡터를 결정하는 것일 수 있다. 본 발명은 이에 제한되지 않는다.
선택적으로, 일 실시예에서, 아핀 움직임이 예로서 사용된다. 움직임 벡터 그룹이 3개의 움직임 벡터를 포함하고, 현재 인코딩 블록의 움직임 벡터 그룹을 결정하는 것은 계산 벡터 그룹의 적어도 하나의 움직임 벡터를 결정하는 것일 수 있다. 고효율 비디오 코딩(High Efficiency Video Coding, HEVC) 표준의 경우, 현재 인코딩 블록의 움직임 벡터 그룹 내의 제1 움직임 벡터가 AMVP(Advanced Motion Vector Prediction) 기술을 이용하여 결정될 수 있다. 구체적으로, 먼저, 현재 인코딩 블록의 복수의 후보 블록이 현재 인코딩 블록 주위의 이웃하는 인코딩된 블록 중에서 결정된다. 이 복수의 후보 블록은 좌표 위치에 따라 결정될 수 있고, 이 복수의 후보 블록은 현재 인코딩 블록에 인접해 있다. 예를 들어, 도 2에 도시된 바와 같이, 현재 인코딩 블록의 경우, 일반적으로 A 내지 G가 현재 인코딩 블록의 복수의 후보 블록으로서 결정될 수 있다. 그 다음에, 각각의 후보 블록의 움직임 벡터에 대응하는 예측 블록과 현재 인코딩 블록 간의 매칭 에러값이 결정된다. 구체적으로, 참조 프레임 내에서 후보 블록의 움직임 벡터에 대응하는 예측 블록이 이 후보 블록의 움직임 벡터 및 현재 인코딩 블록에 따라 결정되고; 그 다음에, 예측 블록과 현재 인코딩 블록 간의 매칭 에러값이 계산되며, 가장 작은 매칭 에러값에 대응하는 후보 블록이 현재 인코딩 블록의 타깃 후보 블록으로서 결정된다. 다음, 현재 인코딩 블록의 참조 프레임의 픽쳐 오더 카운트(picture order count, POC) 및 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트(POC)가 개별적으로 결정된다. 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트(POC)에 대한 현재 인코딩 블록의 참조 프레임의 픽쳐 오더 카운트(POC)의 비율에 따라, 이 타깃 후보 블록의 움직임 벡터에 대해 스케일링이 수행된다. 이 타깃 후보 블록의 스케일링된 움직임 벡터가 현재 인코딩 블록의 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정된다. 이 타깃 후보 블록의 움직임 벡터에 대한 제1 움직임 벡터의 비율은 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 현재 인코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율과 동일하다.
본 발명의 본 실시예에서, 이 타깃 후보 블록의 결정된 움직임 벡터가 후속 움직임 추정의 검색 시작점으로서 결정될 수 있다. 디코더 측이 디코딩을 수행하고 이 타깃 후보 블록과 이 타깃 후보 블록의 움직임 벡터를 결정할 수 있도록, 인코딩 장치가 이 타깃 후보 블록에 대응하는 인덱스 값을 인코딩하고, 인코딩된 인덱스 값을 디코더 측에 전송할 수 있다.
본 발명의 본 실시예에서, 각각의 후보 블록의 움직임 벡터에 대응하는 예측 블록과 현재 인코딩 블록 간의 매칭 에러값이 다음의 방법에 따라 결정될 수 있다. 구체적으로, 현재 인코딩 블록 내의 각각의 화소의 경우, 각각의 화소의 매칭 에러값이 아래의 수식 (1) 내지 수식 (4)에 따라 결정될 수 있다.
Figure 112017089288300-pct00102
여기서,
Figure 112017089288300-pct00103
는 화소의 원래 화소값이고,
Figure 112017089288300-pct00104
는 후보 블록이 가리키는 프레임 내의 화소의 예측 화소값이며,
Figure 112017089288300-pct00105
Figure 112017089288300-pct00106
는 화소의 좌표값이고,
Figure 112017089288300-pct00107
는 화소의 위치의 수평 기울기이며,
Figure 112017089288300-pct00108
는 화소의 위치의 수직 기울기이다. 이러한 기울기는 소벨(Sobel) 연산자를 이용하여 계산을 통해 얻어질 수 있다.
본 발명의 본 실시예에서, 전술한 공식에 따라, 후보 블록의 움직임 벡터에 대응하는 예측 블록과 관련된 현재 인코딩 블록 내의 각각의 화소의 매칭 에러값이 결정될 수 있다. 현재 인코딩 블록 내의 모든 화소의 매칭 에러값의 절대값이 합산되고, 현재 인코딩 블록과 후보 블록에 대응하는 예측 블록 간의 매칭 에러값이 얻어질 수 있다. 하지만, 본 발명은 이에 제한되지 않는다. 전술한 방법에 따라, 현재 인코딩 블록과 각각의 후보 블록에 대응하는 예측 블록 간의 매칭 에러값이 순차적으로 결정된다. 가장 작은 매칭 에러값에 대응하는 후보 블록이 현재 인코딩 블록의 타깃 후보 블록으로서 사용된다.
선택적으로, 일 실시예에서, 아핀 움직임이 예로서 사용된다. 현재 인코딩 블록의 움직임 벡터 그룹이 결정된다. 이 움직임 벡터 그룹은 3개의 움직임 벡터를 포함한다. 이 움직임 벡터 그룹의 하나의 움직임 벡터, 즉 제1 움직임 벡터가 전술한 방법에 따라 결정된 후에, 도 2에 도시된 바와 같이, 제1 움직임 벡터는 현재 인코딩 블록의 꼭지점에 대응하는 움직임 벡터일 수 있다. 선택적으로, 현재 인코딩 블록의 꼭지점에 인접한 2개의 꼭지점의 움직임 벡터가 이 움직임 벡터 그룹 내의 다른 움직임 벡터로서 선택될 수 있다. 이 움직임 벡터 그룹은
Figure 112017089288300-pct00109
로서 표현될 수 있고, 이 움직임 벡터 그룹 내의 움직임 벡터의 좌표가 (0,0), (W,0), 및 (0,H)이다. 여기서, W는 현재 인코딩 블록의 폭이고, H는 현재 인코딩 블록의 높이이다.
선택적으로, 일 실시예에서, 아핀 움직임이 예로서 사용된다. 이 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하고, 현재 인코딩 블록의 움직임 벡터 그룹을 결정하는 것은 이 움직임 벡터 그룹의 각각의 움직임 벡터를 결정하는 것일 수 있다. 구체적으로, 먼저, 복수의 현재 인코딩 블록 주위의 이웃하는 인코딩된 블록이 복수의 후보 블록으로서 결정될 수 있다. 이 복수의 후보 블록은 현재 인코딩 블록 내의 동일한 화소에 대응하고 있다. 선택적으로, 이 화소는 현재 인코딩 블록의 꼭지점일 수 있다. 예를 들어, 도 2에 도시된 바와 같이, A, B, 및 C가 현재 인코딩 블록의 복수의 후보 블록으로서 결정될 수 있다. 수식 (1) 내지 수식 (4)에 따라, 각각의 후보 블록의 움직임 벡터에 대응하는 예측 블록과 관련된 현재 인코딩 블록 내의 각각의 화소의 매칭 에러값이 개별적으로 결정된다. 그 다음에, 모든 화소의 매칭 에러값의 절대값이 합산된다. 현재 인코딩 블록과 관련된 각각의 후보 블록의 매칭 에러값이 결정된다. 가장 작은 매칭 에러값에 대응하는 후보 블록이 현재 인코딩 블록의 타깃 후보 블록으로서 선택된다. 이 타깃 후보 블록의 움직임 벡터가 현재 인코딩 블록의 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정된다. 이 타깃 후보 블록의 참조 프레임이 현재 인코딩 블록의 참조 프레임으로서 결정된다. 이 타깃 후보 블록의 움직임 벡터가 현재 인코딩 블록의 제1 움직임 벡터로서 사용된다. 또한, 제1 움직임 벡터가 후속 움직임 추정의 검색 시작점으로서 사용될 수 있다. 디코더 측이 디코딩을 수행하고 이 타깃 후보 블록과 이 타깃 후보 블록의 움직임 벡터를 결정할 수 있도록, 인코딩 장치가 이 타깃 후보 블록에 대응하는 인덱스 값을 인코딩하고, 인코딩된 인덱스 값을 디코더 측에 전송할 수 있다.
본 발명의 본 실시예에서, 현재 인코딩 블록의 움직임 벡터 그룹 내의 제1 움직임 벡터가 결정된 후에, 제1 움직임 벡터에 따라 현재 인코딩 블록의 움직임 벡터 그룹 내의 제2 움직임 벡터가 결정된다. 제2 움직임 벡터는 제1 움직임 벡터와는 다른, 이 움직임 벡터 그룹 내의 움직임 벡터이다. 구체적으로, 먼저, 현재 인코딩 블록의 복수의 후보 블록이 현재 인코딩 블록 주위의 이웃하는 인코딩된 블록 중에서 결정된다. 이 복수의 인코딩 블록이 현재 인코딩 블록 내의 동일한 화소에 대응하고 있다. 선택적으로, 이 화소는 현재 인코딩 블록의 꼭지점일 수 있다. 제1 움직임 벡터를 결정하는 데 있어서, 이 화소는 복수의 후보 블록에 대응하는 화소와는 다르다. 예를 들어, 도 2에 도시된 바와 같이, 후보 블록이 D와 E를 포함할 수 있고, 이 복수의 후보 블록은 제1 움직임 벡터를 결정하는 과정에서 이 후보 블록을 포함하지 않는다. 그 다음에, 각각의 후보 블록의 참조 프레임(reference frame)이 결정된다. 이 후보 블록의 참조 프레임이 제1 움직임 벡터에 대응하는 타깃 후보 블록의 참조 프레임, 즉 현재 인코딩 블록의 참조 프레임과 동일한 프레임이 아니면, 이 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 현재 블록의 참조 프레임의 픽쳐 오더 카운트의 비율이 움직임 벡터 간의 비율과 동일할 수 있도록, 이 후보 블록의 참조 프레임의 픽쳐 오더 카운트(POC)에 대한 타깃 후보 블록의 현재 인코딩 블록의 참조 프레임의 픽쳐 오더 카운트(POC)의 비율에 따라 이 후보 블록의 움직임 벡터에 대해 스케일링이 수행된다. 스케일링된 각각의 후보 블록의 움직임 벡터가 제1 움직임 벡터와 개별적으로 비교된다. 이 후보 블록의 스케일링된 움직임 벡터는 제1 움직임 벡터와는 다르고, 차이가 가장 작은 경우 이 후보 블록이 현재 인코딩 블록의 제2 타깃 후보 블록으로서 결정되고, 이 타깃 후보 블록에 대응하는 스케일링된 움직임 벡터가 현재 인코딩 블록의 움직임 벡터 그룹 내의 제2 움직임 벡터로서 결정된다.
본 발명의 본 실시예에서, 복수의 제2 움직임 벡터가 전술한 방법에 따라 결정될 수 있다. 예를 들어, 현재 인코딩 블록의 움직임 벡터 그룹이 3개의 움직임 벡터를 포함하는 경우, 이 움직임 벡터 그룹의 하나의 제1 움직임 벡터가 결정된 후에, 다른 2개의 제2 움직임 벡터가 전술한 방법에 따라 결정될 수 있다. 하지만, 본 발명은 이에 제한되지 않는다.
선택적으로, 일 실시예에서, 아핀 움직임이 예로서 사용된다. 현재 인코딩 블록의 움직임 벡터 그룹이 결정된다. 이 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하고, 이 움직임 벡터 그룹의 각각의 움직임 벡터가 다음의 방법에 따라 추가로 결정될 수 있다. 구체적으로, 현재 인코딩 블록의 복수의 후보 블록이 결정된다. 모든 복수의 후보 블록은 현재 인코딩 블록에 인접한 인코딩된 블록이다. 예를 들어, 도 2에 도시된 바와 같이, A 내지 F가 현재 인코딩 블록의 복수의 후보 블록이다. 그 다음에, 현재 인코딩 블록의 복수의 후보 움직임 벡터 그룹이 복수의 후보 블록에 따라 결정된다. 각각의 후보 움직임 벡터 그룹이 3개의 움직임 벡터를 포함하고, 3개의 움직임 벡터는 현재 인코딩 블록 내의 3개의 화소에 대응하고 있다. 선택적으로, 복수의 후보 블록 중에서 선택된 여러 후보 블록의 움직임 벡터가 이 후보 움직임 벡터 그룹으로서 사용될 수 있다. 예를 들어, 도 2에 도시된 바와 같이, 복수의 후보 블록 A 내지 F의 경우, 동일한 화소에 대응하고 있는 후보 블록 A, B, 및 C 중에서 무작위로 선택된 블록의 움직임 벡터를 포함하는 3개의 움직임 벡터, 다른 화소에 대응하고 있는 D와 E 중에서 무작위로 선택된 블록의 움직임 벡터, 및 또 다른 화소에 대응하고 있는 F와 G 중에서 무작위로 선택된 블록의 움직임 벡터가 후보 움직임 벡터 그룹을 구성할 수 있다. 서로 다른 선택이 있기 때문에, 이들 후보 블록이 12개의 후보 움직임 벡터 그룹을 구성할 수 있다. 제1 후보 움직임 벡터 그룹의 각각의 움직임 벡터의 참조 프레임이 결정된다. 제1 후보 움직임 벡터 그룹은 복수의 후보 움직임 벡터 그룹 중의 임의의 후보 움직임 벡터 그룹이다. 제1 후보 움직임 벡터 그룹의 3개의 움직임 벡터가 동일한 참조 프레임 인덱스 번호와 픽쳐 오더 카운트에 대응하고 있을 수 있도록, 비례 스케일링(proportional scaling)이 제1 후보 움직임 벡터 그룹의 각각의 움직임 벡터에 대응하는 후보 블록의 참조 프레임의 인덱스 번호와 픽쳐 오더 카운트에 대해 수행된다.
본 발명의 본 실시예에서, 제1 후보 움직임 벡터 그룹의 참조 프레임 내에서, 현재 인코딩 블록 내의 각각의 화소의 예측 위치가 아래의 수식 (5) 및 수식 (6)에 따라 결정될 수 있다.
Figure 112017089288300-pct00110
여기서, W는 현재 인코딩 블록의 폭이고, H는 현재 인코딩 블록의 높이이며,
Figure 112017089288300-pct00111
는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터
Figure 112017089288300-pct00112
의 x-방향 성분이고,
Figure 112017089288300-pct00113
는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터
Figure 112017089288300-pct00114
의 y-방향 성분이며, j=0, 1, 2이고, x와 y는 현재 인코딩 블록 내의 각각의 화소의 좌표값이며,
Figure 112017089288300-pct00115
Figure 112017089288300-pct00116
는 제1 후보 움직임 벡터 그룹 내의 참조 프레임에 대응하는 예측점에서의 화소의 좌표값이다.
현재 인코딩 블록 내의 각각의 화소의 좌표값 및 현재 인코딩 블록 내의 화소의 좌표값에 따라, 참조 프레임에 대응하는 예측 포인트에서, 제1 후보 움직임 벡터 그룹에 대해서, 현재 인코딩 블록 내의 각각의 화소와 제1 후보 움직임 벡터 그룹의 참조 프레임에 대응하는 예측 포인트 간의 매칭 에러값이 수식 (1)에 따라 결정된다. 여기서,
Figure 112017089288300-pct00117
이다. 제1 후보 움직임 벡터 그룹과 관련된 현재 인코딩 블록의 매칭 에러값을 결정하기 위해, 제1 후보 움직임 벡터 그룹과 관련된 각각의 화소의 매칭 에러값의 절대값이 계산되고, 이 절대값이 합산된다. 유사하게, 각각의 후보 움직임 벡터 그룹과 관련된 현재 인코딩 블록의 매칭 에러값이 결정되고, 복수의 후보 움직임 벡터 그룹에 대응하는 복수의 매칭 에러값 중에서 가장 작은 값에 대응하는 후보 움직임 벡터 그룹이 현재 인코딩 블록의 움직임 벡터 그룹으로서 결정된다. 디코더 측이 인덱스 값에 따라 이 움직임 벡터 그룹을 결정할 수 있도록, 이 움직임 벡터 그룹에 포함된 움직임 벡터의 인덱스 값이 인코딩되어 디코더 측에 전송된다.
본 발명의 본 실시예에서, 결정된 움직임 벡터 그룹에 대해서, 이 움직임 벡터 그룹의 어떠한 움직임 벡터도 후속 움직임 추정의 검색 시작점으로서 사용될 수 있다. 선택적으로, 도 2에 도시된 바와 같이, 현재 인코딩 블록의 좌측 상부 모서리에서의 꼭지점의 예측 위치가 후속 움직임 추정에 있어서의 검색 시작점으로서 사용될 수 있다. 본 발명은 이에 제한되지 않는다.
S120에서, 현재 인코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값이 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 결정된다. 이 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함한다. 제1 성분 세트는 움직임 모델 초기화 벡터의 적어도 하나의 성분을 포함한다. 구체적으로, 아핀 움직임 모델이 예로서 사용된다. 아핀 모델은 6개의 파라미터를 이용하여 나타낼 수 있고, 6개의 파라미터는
Figure 112017089288300-pct00118
로서 표현될 수 있다. 현재 인코딩 블록 내의 참조 프레임에서의 각각의 화소의 위치가 아래의 수식 (7)에 따라 결정될 수 있다.
Figure 112017089288300-pct00119
x와 y는 현재 인코딩 블록 내의 임의의 화소의 좌표값이고,
Figure 112017089288300-pct00120
Figure 112017089288300-pct00121
는 참조 프레임 내의 대응하는 예측점에서의 화소의 좌표값이며,
Figure 112017089288300-pct00122
Figure 112017089288300-pct00123
는 현재 인코딩 블록 내의 임의의 화소의 움직임 벡터이다. 아래의 수식 (8)이 얻어질 수 있다.
Figure 112017089288300-pct00124
S110에서 결정된 움직임 벡터 그룹에 따라, 이 움직임 벡터 그룹은
Figure 112017089288300-pct00125
로서 표현될 수 있다. 이 움직임 벡터 그룹에 대응하는 타깃 후보 블록은 도 2에 도시된 블록 A 내지 블록 G이다. 따라서, 이 움직임 벡터 그룹 내의 움직임 벡터의 좌표가 (0,0), (W,0), 및 (0,H)로서 표현될 수 있다. 여기서, W는 현재 인코딩 블록의 폭이고, H는 현재 인코딩 블록의 높이이다. 이 움직임 벡터 그룹과 좌표를 수식 (8)에 대입하여 아래의 수식 (9)를 얻을 수 있다.
Figure 112017089288300-pct00126
여기서,
Figure 112017089288300-pct00127
는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터
Figure 112017089288300-pct00128
의 x-방향 성분이고,
Figure 112017089288300-pct00129
는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터
Figure 112017089288300-pct00130
의 y-방향 성분이며, j=0, 1, 2이다. 따라서, 아핀 움직임 모델
Figure 112017089288300-pct00131
내의 모든 파라미터를 얻을 수 있다. 수식 (6)에 나타낸 바와 같이, 현재 인코딩 블록의 움직임 벡터 그룹
Figure 112017089288300-pct00132
이 수식 (6)에 대입되고, 현재 인코딩 블록의 움직임 모델 초기화 벡터
Figure 112017089288300-pct00133
가 결정될 수 있다. 이 움직임 모델 초기화 벡터는 6차원 벡터이다. 선택적으로, 다른 움직임 모델의 경우, 이 초기화 벡터는 적어도 4개의 차원을 포함하는 벡터이다. 제1 성분 세트의 예측값이 움직임 모델 초기화 벡터에 따라 결정될 수 있다. 제1 성분 세트의 예측값은 움직임 모델 초기화 벡터의 적어도 하나의 성분을 포함할 수 있다.
S130에서, 제1 성분 세트의 전송될 값이 제1 성분 세트의 예측값에 따라 결정된다. 구체적으로, 움직임 모델 양자화 정밀도 및 움직임 모델 최적화 벡터가 현재 인코딩 블록에 따라 결정될 수 있다. 이 움직임 모델 최적화 벡터는 움직임 모델 양자화 정밀도에 따라 양자화된다. 제1 성분 세트의 전송될 값이 움직임 모델의 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 결정된다.
본 발명의 본 실시예에서, 움직임 모델 최적화 벡터가 먼저 결정될 수 있다. 선택적으로, 이 움직임 모델 최적화 벡터가 종래 기술에 따라 결정될 수 있다. 구체적으로, 현재 인코딩 블록의 매칭 에러값이 수식 (1) 내지 수식 (4)에 따라 결정될 수 있다. 현재 인코딩 블록이 현재 인코딩 블록의 참조 프레임의 특정 범위 내에서 기울기 반복 방식(gradient iterative manner)으로 검색된다. 가장 작은 매칭 에러값에 대응하는 후보 블록이 현재 인코딩 블록의 타깃 후보 블록으로서 결정되고, 이때의 대응하는 움직임 모델 파라미터
Figure 112017089288300-pct00134
가 수식 (4)에 따라 현재 인코딩 블록의 최적화 벡터로서 결정된다.
선택적으로, 현재 인코딩 블록의 움직임 모델 초기화 벡터가 수식 (6)에 따라 추가로 결정될 수 있고, 이 움직임 모델 초기화 벡터가 움직임 모델 최적화 벡터로서 결정된다.
선택적으로, 현재 인코딩 블록의 움직임 모델 초기화 벡터가 수식 (6)에 따라 추가로 결정될 수 있다. 현재 인코딩 블록 내의 각각의 화소의 참조 프레임 내 대응하는 위치가 수식 (7)에 따라 계산을 통해 얻어진다. 현재 인코딩 블록의 매칭 에러값이 수식 (1) 및 수식 (6)에 따라 계산된다. 이 매칭 에러값이 움직임 모델 파라미터에 대응하고 있는 매칭 에러값으로서, 공식 (1) 내지 공식 (4)와 종래 기술에 따라 결정되는 매칭 에러값과 비교된다. 가장 작은 매칭 에러값에 대응하는 움직임 모델 파라미터
Figure 112017089288300-pct00135
가 현재 인코딩 블록의 최적화 벡터로서 선택된다. 본 발명은 이에 제한되지 않는다.
본 발명의 본 실시예에서, 움직임 모델 최적화 벡터가 양자화될 수 있도록, 움직임 모델 양자화 정밀도가 추가로 결정될 필요가 있다. 구체적으로, 움직임 모델 최적화 벡터는 2개의 병진 운동 파라미터
Figure 112017089288300-pct00136
Figure 112017089288300-pct00137
를 포함한다. 2개의 병진 운동 파라미터의 양자화 정밀도가 1/16 또는 1/4일 수 있다. 본 발명은 이에 제한되지 않는다. 이 움직임 모델 최적화 벡터 내의 다른 파라미터
Figure 112017089288300-pct00138
의 양자화 정밀도가 1/512일 수 있다. 또는, 양자화 정밀도가 정밀도 정보 및 현재 인코딩 블록의 크기에 따라 결정될 수 있다. 현재 인코딩 블록의 크기는 현재 인코딩 블록의 폭 및 현재 인코딩 블록의 높이를 포함하고, 정밀도 정보는 현재 인코딩 블록의 움직임 벡터 그룹의 양자화 정밀도를 포함할 수 있다. 구체적으로, 수식 (6)에 따라, 움직임 모델에서의 정밀도 정보의 4개의 파라미터가 현재 인코딩 블록의 폭과 높이와 관련되어 있다는 것을 알 수 있을 것이다. 따라서, 양자화 정밀도는 아래의 수식 (10)에 따라 결정될 수 있다.
Figure 112017089288300-pct00139
P는 현재 인코딩 블록의 정밀도 정보에 따라 결정될 수 있다. 구체적으로, 1/P는 현재 인코딩 블록의 움직임 벡터 그룹의 양자화 정밀도이다. 선택적으로, 움직임 벡터 그룹의 양자화 정밀도가 일반적으로 1/4이고, 그래서 P=4이다. W는 현재 인코딩 블록의 폭이다. H는 현재 인코딩 블록의 높이이다. 예를 들어, 현재 인코딩 블록의 폭이 16이고 높이가 32이면, 움직임 벡터 그룹의 양자화 정밀도가 1/(32×4)=1/128이고; 인코딩 블록의 폭이 16이고 높이가 8이면, 양자화 정밀도가 1/(16×4)=1/64이다.
본 발명의 본 실시예에서, 양자화된 움직임 모델 최적화 벡터
Figure 112017089288300-pct00140
를 얻기 위해, 결정된 양자화 정밀도에 따라 움직임 모델 최적화 벡터
Figure 112017089288300-pct00141
가 양자화된다.
본 발명의 본 실시예에서, 제1 성분 세트의 전송될 값이 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 결정된다. 구체적으로, 이 결정이 다음의 방법을 이용하여 수행될 수 있다. 여기서, 아핀 움직임이 예로서 사용된다. 움직임 모델 초기화 벡터가 수식 (6)에 따라 결정된다. 이 움직임 모델 초기화 벡터에서,
Figure 112017089288300-pct00142
Figure 112017089288300-pct00143
은 병진 운동 파라미터이고, 움직임 벡터 그룹 내의 제1 움직임 벡터
Figure 112017089288300-pct00144
과 관련되어 있다. 선택적으로,
Figure 112017089288300-pct00145
Figure 112017089288300-pct00146
이 제1 성분 세트로서 결정될 수 있고, 수식 (6)에 따라 결정되는 값
Figure 112017089288300-pct00147
Figure 112017089288300-pct00148
은 제1 성분 세트의 예측값이다. 선택적으로, 2개의 파라미터의 양자화 정밀도가 1/16 또는 1/4일 수 있다. 1/16이 예로서 사용된다. 먼저,
Figure 112017089288300-pct00149
의 정밀도가 1/4에서 1/16로 높아질 수 있도록,
Figure 112017089288300-pct00150
이 4배만큼 스케일업(scale up)된다. 그 다음에, 정밀도가 또한 1/16인 양자화된
Figure 112017089288300-pct00151
Figure 112017089288300-pct00152
이 정밀도가 1/16인
Figure 112017089288300-pct00153
를 이용하여 계산되어
Figure 112017089288300-pct00154
Figure 112017089288300-pct00155
을 얻는다. 즉,
Figure 112017089288300-pct00156
Figure 112017089288300-pct00157
은 제1 성분 세트의 양자화된 예측값이다.
본 발명의 본 실시예에서, 현재 인코딩 블록의 제1 성분 세트의 전송될 값이 제1 성분 세트의 양자화된 예측값
Figure 112017089288300-pct00158
Figure 112017089288300-pct00159
및 결정된 움직임 모델 최적화 벡터에 따라 결정된다. 현재 인코딩 블록의 움직임 모델 전송 값은
Figure 112017089288300-pct00160
일 수 있다. 제1 성분 세트는 2개의 성분을 포함할 수 있다. 제1 성분 세트의 전송 값은
Figure 112017089288300-pct00161
Figure 112017089288300-pct00162
일 수 있고,
Figure 112017089288300-pct00163
이며,
Figure 112017089288300-pct00164
이다. 다른 전송 값은
Figure 112017089288300-pct00165
이고,
Figure 112017089288300-pct00166
는 양자화된 움직임 모델 최적화 벡터이며,
Figure 112017089288300-pct00167
Figure 112017089288300-pct00168
은 제1 성분 세트의 예측값
Figure 112017089288300-pct00169
Figure 112017089288300-pct00170
의 양자화된 값이다. 이 경우에, 인코딩 전송 파라미터 중의 2개의 파라미터는 양자화된 제1 성분 세트와 움직임 모델 최적화 벡터 간의 차이이다. 직접 인코딩 전송에서는 이 차이가 양자화된 움직임 모델 최적화 벡터에 의해 점유된 비트의 수보다 작다. 이로 인해 전송되는 데이터의 양이 줄어든다.
선택적으로, 일 실시예에서, 제1 성분 세트의 전송될 값이 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 결정된다. 구체적으로, 이 결정이 다음의 방법을 이용하여 추가로 수행될 수 있다. 수식 (6)에 따라, 움직임 모델 초기화 벡터의 6개의 성분
Figure 112017089288300-pct00171
가 결정된다. 여기서, i= 0, 1, 2, 3, 4, 5이다. 그 다음에, 제1 성분 세트도 또한 6개의 파라미터를 포함한다고 결정되며, 현재 인코딩 블록의 움직임 모델 전송 값이 결정될 수 있다. 즉, 제1 성분 세트의 전송 값은
Figure 112017089288300-pct00172
이다. 여기서,
Figure 112017089288300-pct00173
이고,
Figure 112017089288300-pct00174
는 양자화된 움직임 모델 최적화 벡터이며,
Figure 112017089288300-pct00175
는 제1 성분 세트의 예측값이다.
S140에서, 결정된 제1 성분 세트의 전송될 값이 인코딩되고, 제1 성분 세트의 인코딩된 전송될 값이 디코더 측에 전송된다. 구체적으로, 현재 인코딩 블록의 결정된 움직임 모델 전송될 벡터가 인코딩되어 디코더 측에 전송될 수 있다. 또한, 현재 인코딩 블록의 각각의 화소 샘플의 예측 화소 샘플이 결정되고, 현재 인코딩 블록의 예측 잔차(prediction residual)가 추가로 결정되며, 이 예측 잔차가 인코딩되어 디코더 측에 전송될 수 있도록 움직임 모델 최적화 벡터가 움직임 모델 양자화 정밀도에 따라 추가로 양자화될 수 있다. 구체적으로, 양자화된 움직임 모델 최적화 벡터
Figure 112017089288300-pct00176
를 얻기 위해, 움직임 모델 최적화 벡터
Figure 112017089288300-pct00177
의 경우, 각각의 파라미터
Figure 112017089288300-pct00178
가 수식 (10)에 따라 결정되는 움직임 모델 양자화 정밀도에 따라 양자화된다. 양자화된 움직임 모델 최적화 벡터가 수식 (7)에 대입되고, 현재 인코딩 블록 내의 정밀도 Q를 가진 각각의 화소의 참조 오프셋 위치
Figure 112017089288300-pct00179
를 얻을 수 있다. 현재 인코딩 블록 내의 각각의 화소 샘플의 예측 화소 샘플이 참조 오프셋 위치에서 계산을 통해 얻어진다. 또한, 현재 인코딩 블록의 예측 잔차가 결정되고, 이 예측 잔차는 인코딩되어 디코더 측에 전송된다. 선택적으로, 이 화소 샘플이 하나의 화소 또는 복수의 화소를 포함하는 작은 화소 블록일 수 있다. 본 발명은 이에 제한되지 않는다.
전술한 과정의 시퀀스 번호가 본 발명의 다양한 실시예에서의 실행 시퀀스를 의미하지 않는다고 이해해야 한다. 이 과정의 실행 시퀀스는 기능 및 프로세스의 내부의 로직에 따라 결정되어야 하고, 본 발명의 실시예의 구현 과정에 대한 어떠한 제한으로서 해석되지 말아야 한다.
따라서, 본 발명의 본 실시예의 비디오 이미지 인코딩 방법에 따르면, 현재 인코딩 블록의 움직임 벡터 그룹이 결정되고; 현재 인코딩 블록의 움직임 모델 초기화 벡터가 움직임 벡터 그룹에 따라 결정되며; 움직임 모델의 전송될 값이 움직임 모델 초기화 벡터에 따라 결정되고; 디코더 측이 움직임 모델의 전송될 값에 따라 디코딩을 수행할 수 있도록, 움직임 모델의 전송될 값이 전송을 위해 인코딩된다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다. 또한, 이 움직임 모델 최적화 벡터가 결정되고 이 최적화 벡터가 양자화되는 경우에, 결정되는 양자화 정밀도가 현재 인코딩 블록의 크기 및 현재 인코딩 블록의 움직임 벡터의 양자화 정밀도에 따라 결정된다. 이로 인해 인코딩 파라미터에 필요한 비트의 수를 줄일 수도 있다.
도 3은 본 발명의 일 실시예에 따른 비디오 이미지 디코딩 방법(200)의 개략적인 흐름도이다. 도 3에 도시된 비디오 이미지 디코딩 방법은 이미지나 비디오 디코딩 과정에 사용될 수 있고, 디코딩 장치에 의해 실행된다. 도 3에 도시된 바와 같이, 비디오 이미지 디코딩 방법은 다음의 단계를 포함한다.
S210. 비트스트림에 따라 현재 디코딩 블록의 움직임 벡터 그룹과 움직임 모델 전송 벡터를 결정한다. 여기서, 움직임 벡터 그룹은 현재 디코딩 블록의 적어도 하나의 움직임 벡터를 포함하고, 움직임 모델 전송 벡터는 적어도 4개의 성분을 포함한다.
S220. 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 현재 디코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정한다. 여기서, 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함한다.
S230. 움직임 모델 최적화 벡터에 따라 현재 디코딩 블록을 디코딩할 수 있도록, 제1 성분 세트의 예측값 및 움직임 모델 전송 벡터에 따라 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정한다.
구체적으로, 디코더 측이 인코더 측에 의해 전송된 비트스트림을 수신하고, 이 비트스트림에 따라 디코딩을 수행하며, 현재 디코딩 블록의 움직임 벡터 그룹과 움직임 모델 전송 벡터를 결정한다. 여기서, 이 움직임 벡터 그룹은 현재 디코딩 블록 내의 화소에 대응하는 적어도 하나의 움직임 벡터를 포함한다. 디코더 측이 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 현재 디코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정한다. 여기서, 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함하고, 제1 성분 세트는 움직임 모델 초기화 벡터의 적어도 하나의 성분을 포함한다. 디코더 측이 제1 성분 세트의 예측값 및 움직임 모델 전송 벡터에 따라 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정한다. 그 다음에, 디코더 측이 양자화된 움직임 모델 최적화 벡터에 따라 현재 디코딩 블록의 예측 샘플을 결정하고, 이 예측 샘플에 따라 현재 디코딩 블록에 대해 디코딩 및 복원을 수행한다.
따라서, 본 발명의 본 실시예의 비디오 이미지 디코딩 방법에 따르면, 움직임 벡터 그룹 및 현재 디코딩 블록의 움직임 모델 전송 벡터가 수신된 비트스트림에 따라 결정되고; 현재 디코딩 블록의 움직임 모델 초기화 벡터가 이 움직임 벡터 그룹에 따라 결정되며; 움직임 모델 최적화 벡터가 움직임 모델 초기화 벡터 및 움직임 모델 전송 벡터에 따라 결정되고; 디코딩 및 복원이 움직임 모델 최적화 벡터에 대해 수행된다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다.
S210에서, 디코딩 장치가 비트스트림에 따라 현재 디코딩 블록의 움직임 벡터 그룹과 움직임 모델 전송 벡터를 결정한다. 움직임 벡터 그룹은 현재 디코딩 블록의 적어도 하나의 움직임 벡터를 포함하고, 각각의 움직임 벡터는 현재 디코딩 블록 내의 하나의 화소에 대응하고 있다. 선택적으로, 움직임 모델을 설명하는 데 필요한 파라미터의 개수가 움직임 모델에 따라 달라진다. 2n개의 파라미터를 가진 움직임 모델의 경우, 디코더 측에 의해 결정된 움직임 모델 전송 벡터는 2n개의 차원의 벡터이고, 현재 디코딩 블록의 움직임 벡터 그룹은 일반적으로 n개의 움직임 벡터를 포함할 수 있다. 예를 들어, 아핀 움직임의 경우, 현재 디코딩 블록 내의 모든 화소가 아핀 움직임 모델을 이용하여 표현되면, 일반적으로 아핀 움직임 모델은
Figure 112017089288300-pct00180
로서 표현될 수 있다. 즉, 아핀 움직임 모델은 6개의 파라미터를 가지고 있고, 움직임 벡터 그룹은 3개의 움직임 벡터를 포함할 수 있다. 일반 움직임 모델의 경우, 12개의 파라미터가 일반적으로 사용되고, 이 움직임 벡터 그룹이 6개의 움직임 벡터를 포함할 수 있다. 선택적으로, 움직임 벡터 그룹을 결정하는 것은 움직임 벡터 그룹의 적어도 하나의 움직임 벡터를 결정하는 것일 수 있거나, 또는 움직임 벡터 그룹의 하나의 움직임 벡터를 결정하는 것일 수 있거나, 또는 n개의 움직임 벡터 또는 움직임 벡터 그룹의 모든 움직임 벡터를 결정하는 것일 수 있다. 예를 들어, 아핀 움직임의 경우, 이 움직임 벡터 그룹이 적어도 3개의 움직임 벡터를 포함할 수 있고, 현재 디코딩 블록의 움직임 벡터 그룹을 결정하는 것이 하나의 움직임 벡터, 또는 3개의 움직임 벡터, 또는 계산 벡터 그룹의 모든 움직임 벡터를 결정하는 것일 수 있다. 인코더 측에 의해 결정된 움직임 벡터의 개수에 따라, 디코더 측도 또한 그에 따라 대응하는 움직임 벡터의 개수를 결정한다. 본 발명은 이에 제한되지 않는다.
본 발명의 본 실시예에서, 디코더 측이 수신된 비트스트림에 따라 움직임 모델 전송 벡터 및 현재 디코딩 블록의 움직임 벡터 그룹을 결정할 수 있다. 구체적으로, 디코더 측이 수신된 비트스트림에 따라 현재 디코딩 블록의 움직임 모델 전송 벡터를 먼저 결정할 수 있다. 이 움직임 모델 전송 벡터의 모든 성분이 움직임 모델 초기화 벡터와 움직임 모델 최적화 벡터 간의 차이일 수 있다. 또는, 움직임 모델 전송 벡터의 일부 성분이 움직임 모델 초기화 벡터와 움직임 모델 최적화 벡터 간의 차이이고, 일부 성분이 움직임 모델 최적화 벡터의 대응하는 위치에서의 성분이다. 본 발명은 이에 제한되지 않는다.
선택적으로, 일 실시예에서, 아핀 움직임이 예로서 사용된다. 현재 디코딩 블록의 움직임 벡터 그룹이 결정되고, 이 움직임 벡터 그룹이 3개의 움직임 벡터를 포함하는 경우, 계산 벡터 그룹의 적어도 하나의 움직임 벡터가 비트스트림에 따라 먼저 결정될 수 있다. 구체적으로, 움직임 모델 전송 벡터의 일부 성분이 움직임 모델 초기화 벡터와 움직임 모델 최적화 벡터 간의 차이이고, 일부 성분이 움직임 모델 최적화 벡터의 대응하는 위치에서의 성분이라고 디코더 측이 결정하는 경우, 디코더 측이 비트스트림에 따라 계산 벡터 그룹의 적어도 하나의 움직임 벡터를 결정할 수 있다. 디코더 측이 비디오 비트스트림을 인코딩하고, 현재 디코딩 블록의 타깃 후보 블록을 결정하며, 이 타깃 후보 블록의 움직임 벡터 및 이 타깃 후보 블록의 참조 프레임을 결정한다. 디코더 측이 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트(POC) 및 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트(POC)를 개별적으로 획득하고, 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트(POC)에 대한 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트(POC)의 비율에 따라 이 타깃 후보 블록의 움직임 벡터에 대해 스케일링을 수행하며, 스케일링된 움직임 벡터를 현재 디코딩 블록의 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정한다. 이 타깃 후보 블록의 움직임 벡터에 대한 제1 움직임 벡터의 비율은 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율과 동일하다.
선택적으로, 일 실시예에서, 아핀 움직임이 예로서 사용된다. 이 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하고, 현재 디코딩 블록의 움직임 벡터 그룹을 결정하는 것은, 비트스트림에 따라 이 움직임 벡터 그룹의 각각의 움직임 벡터를 결정하는 것일 수 있다. 구체적으로, 움직임 모델 전송 벡터의 모든 성분이 움직임 모델 초기화 벡터와 움직임 모델 최적화 벡터 간의 차이일 수 있다고 결정하는 경우, 디코더 측이 비트스트림에 따라 이 움직임 벡터 그룹의 각각의 움직임 벡터를 결정할 수 있다. 디코더 측이 비트스트림 내의 인덱스 값에 따라 현재 디코딩 블록의 타깃 후보 블록을 먼저 결정할 수 있고, 타깃 후보 블록의 참조 프레임을 현재 디코딩 블록의 참조 프레임으로서 결정하며, 타깃 후보 블록의 움직임 벡터를 현재 디코딩 블록의 움직임 벡터 그룹 내의 제1 움직임 벡터로서 사용한다.
본 발명의 본 실시예에서, 현재 디코딩 블록의 움직임 벡터 그룹 내의 제1 움직임 벡터가 결정된 후에, 현재 디코딩 블록의 움직임 벡터 그룹 내의 제2 움직임 벡터가 제1 움직임 벡터에 따라 결정된다. 제2 움직임 벡터는 제1 움직임 벡터와는 다른, 이 움직임 벡터 그룹 내의 움직임 벡터이다. 구체적으로, 현재 디코딩 블록의 복수의 후보 블록이 현재 디코딩 블록 주변의 이웃하는 디코딩된 블록 중에서 먼저 결정된다. 복수의 후보 블록은 동일한 화소에 대응하고 있다. 선택적으로, 이 화소는 현재 디코딩 블록의 꼭지점일 수 있다. 예를 들어, 도 2에 도시된 바와 같이, 현재 디코딩 블록의 경우, 후보 블록이 D와 E를 포함할 수 있고, 복수의 후보 블록은 결정된 제1 움직임 벡터에 대응하는, 현재 디코딩 블록의 타깃 후보 블록을 포함하지 않는다. 그 다음에, 각각의 후보 블록의 참조 프레임이 결정된다. 이 후보 블록의 참조 프레임이 제1 움직임 벡터에 대응하는 타깃 후보 블록의 참조 프레임과 동일한 프레임이 아니면, 즉 현재 디코딩 블록의 참조 프레임이면, 이 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 현재 블록의 참조 프레임의 픽쳐 오더 카운트의 비율이 움직임 벡터 간의 비율과 동일할 수 있도록, 이 후보 블록의 참조 프레임의 픽쳐 오더 카운트(POC)에 대한 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트(POC)의 비율에 따라 이 후보 블록의 움직임 벡터에 대해 스케일링이 수행된다. 스케일링된 각각의 후보 블록의 움직임 벡터가 제1 움직임 벡터와 개별적으로 비교된다. 후보 블록의 스케일링된 움직임 벡터는 제1 움직임 벡터와는 다르고, 차이가 가장 작은 경우, 이 후보 블록이 현재 디코딩 블록의 타깃 후보 블록으로서 결정되고, 이 타깃 후보 블록에 대응하는 스케일링된 움직임 벡터가 현재 디코딩 블록의 움직임 벡터 그룹 내의 제2 움직임 벡터로서 결정된다.
본 발명의 본 실시예에서, 전술한 방법에 따라, 복수의 제2 움직임 벡터가 결정될 수 있다. 예를 들어, 현재 디코딩 블록의 움직임 벡터 그룹이 3개의 움직임 벡터를 포함하는 경우, 이 움직임 벡터 그룹 내의 제1 움직임 벡터가 결정된 후에, 다른 2개의 제2 움직임 벡터가 전술한 방법에 따라 결정될 수 있고, 추가적으로 움직임 벡터 그룹의 각각의 움직임 벡터가 결정된다. 하지만, 본 발명은 이에 제한되지 않는다.
선택적으로, 일 실시예에서, 아핀 움직임이 예로서 사용된다. 현재 디코딩 블록의 움직임 벡터 그룹이 결정된다. 이 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하고, 이 움직임 벡터 그룹의 각각의 움직임 벡터는 비트스트림을 디코딩하여 결정될 수 있다. 구체적으로, 움직임 모델 전송 벡터의 모든 성분이 움직임 모델 초기화 벡터와 움직임 모델 최적화 벡터 간의 차이일 수 있다고 결정하는 경우, 디코더 측이 비트스트림에 따라 이 움직임 벡터 그룹의 각각의 움직임 벡터를 결정할 수 있고, 비트스트림에 따라 현재 디코딩 블록의 움직임 벡터 그룹의 각각의 움직임 벡터 값을 직접 획득한다. 또한, 이 움직임 벡터 그룹 내의 모든 움직임 벡터에 대응하는 현재 디코딩 블록의 타깃 후보 블록이 동일한 참조 프레임을 가지며, 이 참조 프레임은 현재 디코딩 블록의 참조 프레임이다.
S220에서, 현재 디코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값이 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 결정된다. 이 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함한다. 제1 성분 세트는 움직임 모델 초기화 벡터의 적어도 하나의 성분을 포함한다. 구체적으로, 아핀 움직임 모델이 예로서 사용된다. 아핀 모델은 6개의 파라미터를 이용하여 나타낼 수 있고, 6개의 파라미터는
Figure 112017089288300-pct00181
로서 표현될 수 있다. 현재 디코딩 블록 내의 각각의 화소의 참조 프레임 내 위치가 수식 (7)에 따라 결정될 수 있다. 여기서, x와 y는 현재 디코딩 블록 내의 임의의 화소의 좌표값이고,
Figure 112017089288300-pct00182
Figure 112017089288300-pct00183
는 상기 참조 프레임 내의 대응하는 예측 포인트에서 상기 화소의 좌표값이며,
Figure 112017089288300-pct00184
Figure 112017089288300-pct00185
는 현재 디코딩 블록 내의 임의의 화소의 움직임 벡터이다. 수식 (8)이 얻어질 수 있다. S210에서 결정된 움직임 벡터 그룹에 따라, 이 움직임 벡터 그룹이
Figure 112017089288300-pct00186
로서 표현될 수 있고, 이 움직임 벡터 그룹 내의 움직임 벡터의 좌표가 (0,0), (W,0), 및 (0,H)일 수 있다. 여기서, W는 현재 디코딩 블록의 폭이고, H는 현재 디코딩 블록의 높이이다. 움직임 벡터 그룹과 좌표를 수식 (8)에 대입하여 수식 (9)를 얻을 수 있다. 여기서,
Figure 112017089288300-pct00187
는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터
Figure 112017089288300-pct00188
의 x-방향 성분이고,
Figure 112017089288300-pct00189
는 j번째 후보 움직임 벡터
Figure 112017089288300-pct00190
의 y-방향 성분이며, j=0, 1, 2이다. 따라서, 아핀 움직임 모델
Figure 112017089288300-pct00191
내의 모든 파라미터를 얻을 수 있다. 수식 (6)에 나타낸 바 같이, 현재 디코딩 블록의 움직임 벡터 그룹이 수식 (6)에 대입되고, 현재 디코딩 블록의 움직임 모델 초기화 벡터
Figure 112017089288300-pct00192
가 결정될 수 있다. 이 움직임 모델 초기화 벡터는 6차원 벡터이다. 선택적으로, 다른 움직임 모델의 경우, 이 초기화 벡터는 적어도 4개의 차원을 포함하는 벡터이다. 제1 성분 세트의 예측값이 움직임 모델 초기화 벡터에 따라 결정될 수 있다. 제1 성분 세트의 예측값은 움직임 모델 초기화 벡터의 적어도 하나의 성분을 포함할 수 있다.
S230에서, 디코더 측이 움직임 모델 최적화 벡터에 따라 디코딩을 수행할 수 있도록, 현재 디코딩 블록의 움직임 모델 최적화 벡터가 제1 성분 세트의 예측값 및 움직임 모델 전송 벡터에 따라 결정된다. 구체적으로, 현재 디코딩 블록의 움직임 모델 전송 벡터가
Figure 112017089288300-pct00193
로서 표현될 수 있다.
Figure 112017089288300-pct00194
Figure 112017089288300-pct00195
이 제1 성분 세트의 전송 값을 나타낼 수 있고,
Figure 112017089288300-pct00196
이며,
Figure 112017089288300-pct00197
이다. 여기서,
Figure 112017089288300-pct00198
Figure 112017089288300-pct00199
은 제1 성분 세트의 예측값
Figure 112017089288300-pct00200
Figure 112017089288300-pct00201
이 양자화된 후에 획득되는 수치 값이다. 현재 디코딩 블록의 다른 파라미터 전송 값이
Figure 112017089288300-pct00202
로서 표현될 수 있고,
Figure 112017089288300-pct00203
가 결정될 수 있으며,
Figure 112017089288300-pct00204
는 현재 디코딩 블록의 움직임 모델 최적화 벡터이다.
본 발명의 본 실시예에서, 제1 성분 세트의 예측값
Figure 112017089288300-pct00205
Figure 112017089288300-pct00206
이 양자화되어 제1 성분 세트의 양자화된 예측값
Figure 112017089288300-pct00207
Figure 112017089288300-pct00208
을 결정할 수 있다. 구체적으로, 아핀 움직임이 예로서 사용된다. 움직임 모델 초기화 벡터가 수식 (6)에 따라 결정된다. 이 움직임 모델 초기화 벡터에서,
Figure 112017089288300-pct00209
Figure 112017089288300-pct00210
은 병진 운동 파라미터이고, 움직임 벡터 그룹 내의 제1 움직임 벡터
Figure 112017089288300-pct00211
와 관련되어 있다.
Figure 112017089288300-pct00212
Figure 112017089288300-pct00213
은 제1 성분 세트로서 결정될 수 있다. 선택적으로, 2개의 파라미터의 양자화 정밀도가 1/16 또는 1/4일 수 있다.
1/16이 예로서 사용된다. 먼저,
Figure 112017089288300-pct00214
의 정밀도가 1/4에서 1/16로 높아질 수 있도록,
Figure 112017089288300-pct00215
이 4배 스케일업되고; 그 다음에, 정밀도가 또한 1/16인 양자화된
Figure 112017089288300-pct00216
Figure 112017089288300-pct00217
이 정밀도가 1/16인
Figure 112017089288300-pct00218
를 이용하여 계산되어
Figure 112017089288300-pct00219
Figure 112017089288300-pct00220
를 얻는다. 즉,
Figure 112017089288300-pct00221
Figure 112017089288300-pct00222
은 제1 성분 세트의 양자화된 예측값이다.
선택적으로, 일 실시예에서, 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값
Figure 112017089288300-pct00223
가 수식 (6)에 따라 결정될 수 있다. 제1 성분 세트는 움직임 모델 초기화 벡터의 모든 컴포넌트를 포함한다. 즉, 제1 성분 세트는 6개의 파라미터를 포함하고, 그래서 현재 디코딩 블록의 움직임 모델 전송 값이 결정된다. 즉, 제1 성분 세트의 전송 값은
Figure 112017089288300-pct00224
이다. 여기서,
Figure 112017089288300-pct00225
이고,
Figure 112017089288300-pct00226
는 현재 디코딩 블록의 움직임 모델 최적화 벡터이다.
본 발명의 일 실시예에서, 도 4는 본 발명의 본 실시예에 따른 비디오 이미지 디코딩 방법의 다른 개략적인 흐름도이다. 도 4에 도시된 방법은 디코더와 같은 디코딩 장치에 의해 실행될 수 있다. 구체적으로, 도 4에 도시된 바와 같이, 비디오 이미지 디코딩 방법(200)은 다음의 단계를 더 포함한다.
S240. 현재 디코딩 블록의 움직임 모델 양자화 정밀도를 결정한다.
S250. 움직임 모델 양자화 정밀도에 따라 움직임 모델 최적화 벡터를 양자화한다.
S260. 양자화된 움직임 모델 최적화 벡터에 따라 현재 디코딩 블록을 디코딩한다.
구체적으로, 움직임 모델 양자화 정밀도가 현재 디코딩 블록에 따라 결정될 수 있고; 움직임 모델 최적화 벡터가 움직임 모델 양자화 정밀도에 따라 양자화되며; 양자화된 움직임 모델 최적화 벡터에 따라 현재 디코딩 블록에 대해 파싱(parsing), 디코딩, 및 복원이 수행된다.
S240에서, 현재 디코딩 블록의 움직임 모델 양자화 정밀도가 결정된다. 구체적으로, 양자화 정밀도가 현재 디코딩 블록의 크기 및 정밀도 정보에 따라 결정될 수 있다. 현재 디코딩 블록의 크기는 현재 디코딩 블록의 폭 및 현재 디코딩 블록의 높이를 포함하고, 정밀도 정보는 움직임 벡터 그룹의 양자화 정밀도를 포함한다. 구체적으로, 수식 (6)에 따라, 움직임 모델의 파라미터가 현재 디코딩 블록의 폭과 높이와 관련되어 있음을 알 수 있을 것이다. 따라서, 이 양자화 정밀도는 수식 (10)에 따라 결정될 수 있다. 1/P이 현재 디코딩 블록의 움직임 벡터 그룹의 양자화 정밀도이다. 선택적으로, 움직임 벡터 그룹의 양자화 정밀도는 일반적으로 1/4이고, 그래서 P=4이다. W는 현재 디코딩 블록의 폭이고, H는 현재 디코딩 블록의 높이이다. 예를 들어, 현재 디코딩 블록의 폭이 16이고 높이가 32이면, 움직임 벡터 그룹의 양자화 정밀도가 1/(32×4)=1/128이고; 현재 디코딩 블록의 폭이 16이고 높이가 8이면, 양자화 정밀도가 1/(16×4)=1/64이다.
S250에서, 결정된 움직임 모델 최적화 벡터가 결정된 양자화 정밀도에 따라 양자화되어 양자화된 움직임 모델 최적화 벡터
Figure 112017089288300-pct00227
를 얻는다.
S260에서, 현재 디코딩 블록이 양자화된 움직임 모델 최적화 벡터에 따라 디코딩된다. 구체적으로, 움직임 모델 최적화 벡터
Figure 112017089288300-pct00228
가 수식 (7)에 대입되고, 그 다음에 현재 디코딩 블록 내에서 정밀도 Q를 가진 각각의 화소의 참조 오프셋 위치
Figure 112017089288300-pct00229
를 얻을 수 있다. 현재 디코딩 블록 내의 각각의 화소 샘플의 예측 화소 샘플이 참조 오프셋 위치에서 계산을 통해 얻어진다. 그 다음에, 수신된 비트스트림 내의 현재 디코딩 블록의 결정된 예측 잔차에 따라 예측 화소 샘플에 대해 디코딩 및 복원이 수행된다. 선택적으로, 이 화소 샘플이 하나의 화소 또는 복수의 화소를 포함하는 작은 화소 블록일 수 있다. 본 발명은 이에 제한되지 않는다.
전술한 과정의 시퀀스 번호가 본 발명의 다양한 실시예에서의 실행 시퀀스를 의미하지 않는다는 것을 이해해야 한다. 이 과정의 실행 시퀀스가 기능 및 프로세스의 내부의 로직에 따라 결정되어야 하고, 본 발명의 실시예의 구현 과정에 대한 어떠한 제한으로서 해석되지 말아야 한다.
따라서, 본 발명의 본 실시예의 비디오 이미지 디코딩 방법에 따르면, 움직임 벡터 그룹 및 현재 디코딩 블록의 움직임 모델 전송 벡터가 수신된 비트스트림에 따라 결정되고; 현재 디코딩 블록의 움직임 모델 초기화 벡터가 이 움직임 벡터 그룹에 따라 결정되며; 움직임 모델 최적화 벡터가 움직임 모델 초기화 벡터 및 움직임 모델 전송 벡터에 따라 결정되고; 디코딩 및 복원이 움직임 모델 최적화 벡터에 대해 수행된다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다. 또한, 이 움직임 모델 최적화 벡터가 결정되고 이 최적화 벡터가 양자화되는 경우에, 결정되는 양자화 정밀도는 현재 디코딩 블록의 크기 및 현재 디코딩 블록의 움직임 벡터의 양자화 정밀도에 따라 결정된다. 이로 인해 파라미터 전송에 필요한 비트의 수가 줄어들 수도 있다.
종래 기술와 비교하여 본 발명의 본 실시예의 유리한 효과를 더 잘 입증하기 위해, 본 발명의 본 실시예가 최신 비디오 인코딩 표준 HEVC에 기반한 인코더 상에서 구현되어 있다. HM12.0를 레퍼런스로서 이용하여, 방법들이 실험을 통해 비교되고, 본 발명의 본 실시예에서의 방법을 이용하여 얻은 결과가 사례 1에서의 HM12.0 방법을 이용하여 얻은 결과보다 명백히 더 낫다는 것이 밝혀졌다.
표 1을 참조하라.
(표 1)
Figure 112017089288300-pct00230
사례 1은 레퍼런스 비교 결과를 나타낸다. 여기서, 파라미터
Figure 112017089288300-pct00231
가 예측되지 않고,
Figure 112017089288300-pct00232
이 1/16의 정밀도를 이용하여 양자화되며,
Figure 112017089288300-pct00233
가 1/512의 정밀도를 이용하여 양자화된다.
사례 2는 레퍼런스 비교 결과를 나타낸다. 여기서, 단지 파라미터
Figure 112017089288300-pct00234
만이 예측되고,
Figure 112017089288300-pct00235
이 1/16의 정밀도를 이용하여 양자화되며,
Figure 112017089288300-pct00236
가 1/512의 정밀도를 이용하여 양자화된다.
사례 3은 레퍼런스 비교 결과를 나타낸다. 여기서, 파라미터
Figure 112017089288300-pct00237
가 예측되고,
Figure 112017089288300-pct00238
이 1/16의 정밀도를 이용하여 양자화되며,
Figure 112017089288300-pct00239
가 1/512의 정밀도를 이용하여 양자화된다.
사례 4는 레퍼런스 비교 결과를 나타낸다. 여기서, 단지 파라미터
Figure 112017089288300-pct00240
만이 예측되고,
Figure 112017089288300-pct00241
이 1/16의 정밀도를 이용하여 양자화되며,
Figure 112017089288300-pct00242
가 수식 (10)에 따라 계산된 정밀도를 이용하여 양자화된다.
사례 5는 레퍼런스 비교 결과를 나타낸다. 여기서, 단지 파라미터
Figure 112017089288300-pct00243
만이 예측되고,
Figure 112017089288300-pct00244
이 1/4의 정밀도를 이용하여 양자화되며,
Figure 112017089288300-pct00245
가 수식 (10)에 따라 계산된 정밀도를 이용하여 양자화된다.
따라서, 본 발명의 실시예의 비디오 이미지 인코딩 방법 및 비디오 이미지 디코딩 방법에 따르면, 인코더 측이 현재 인코딩 블록의 움직임 벡터 그룹을 결정하고, 이 움직임 벡터 그룹에 따라 현재 인코딩 블록의 움직임 모델 초기화 벡터를 결정하며, 이 움직임 모델 초기화 벡터에 따라 움직임 모델의 전송될 값을 결정하고, 전송을 위한 움직임 모델의 전송될 값을 인코딩하며; 디코더 측이 수신된 비트스트림에 따라 이 움직임 모델의 전송될 값을 결정하고, 움직임 모델 전송 값에 따라 디코딩 및 복원을 수행한다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다.
이상에서는, 도 1 내지 도 4를 참조하여, 본 발명의 실시예에 따른 비디오 이미지 인코딩 방법 및 비디오 이미지 디코딩 방법에 대해 자세히 설명하였다. 이하에서는, 도 5 및 도 6을 참조하여, 본 발명의 실시예에 따른 인코딩 장치 및 디코딩 장치에 대해 설명한다.
도 5는 본 발명의 일 실시예에 따른 인코딩 장치(300)의 개략적인 흐름도이다. 이 인코딩 장치는 UE와 같은 사용자 장비일 수 있거나; 또는 RNC 또는 eNB와 같은 네트워크 장치일 수 있다. 도 5에 도시된 바와 같이, 인코딩 장치(300)는,
현재 인코딩 블록의 움직임 벡터 그룹을 결정하도록 구성된 제1 결정 모듈(310) - 움직임 벡터 그룹은 현재 인코딩 블록의 적어도 하나의 움직임 벡터를 포함하고 있음 - ;
움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 현재 인코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정하도록 구성된 제2 결정 모듈(320) - 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함하고 있음 -;
제1 성분 세트의 예측값에 따라 제1 성분 세트의 전송될 값을 결정하도록 구성된 제3 결정 모듈(330); 및
제1 성분 세트의 전송될 값을 인코딩하고, 제1 성분 세트의 인코딩된 전송될 값을 디코더 측에 전송하도록 구성된 인코딩 모듈(340)을 포함한다.
구체적으로, 제1 결정 모듈(310)은 현재 인코딩 블록의 움직임 벡터 그룹을 결정한다. 여기서, 이 움직임 벡터 그룹은 현재 인코딩 블록 내의 화소에 대응하는 적어도 하나의 움직임 벡터를 포함한다. 제2 결정 모듈(320)은 이 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 현재 인코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정하고 - 여기서, 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함하고, 제1 성분 세트는 움직임 모델 초기화 벡터의 적어도 하나의 성분을 포함하고 있음 -; 그 다음에 현재 인코딩 블록에 따라 움직임 모델 양자화 정밀도 및 움직임 모델 최적화 벡터를 결정하며, 양자화 정밀도에 따라 움직임 모델 최적화 벡터를 양자화한다. 디코더 측이 디코딩 연산을 수행할 수 있도록, 제3 결정 모듈(330)은 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 제1 성분 세트의 전송될 값을 결정하고, 제1 성분 세트의 전송될 값을 인코딩하며, 인코딩된 전송될 값을 디코더 측에 전송할 수 있다. 제3 결정 모듈(330)은 추가적으로, 양자화된 움직임 모델 최적화 벡터에 따라 현재 인코딩 블록의 예측 샘플을 결정하고, 전송을 위한 예측 샘플에 따라 현재 인코딩 블록을 인코딩할 수 있다.
따라서, 디코더 측이 움직임 모델의 전송될 값에 따라 디코딩을 수행할 수 있도록, 본 발명의 본 실시예의 인코딩 장치가 현재 인코딩 블록의 움직임 벡터 그룹을 결정하고; 이 움직임 벡터 그룹에 따라 현재 인코딩 블록의 움직임 모델 초기화 벡터를 결정하며; 이 움직임 모델 초기화 벡터에 따라 움직임 모델의 전송될 값을 결정하고; 전송을 위한 움직임 모델의 전송될 값을 인코딩한다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다.
본 발명의 본 실시예에서, 모든 인코딩 표준에서의 비디오 이미지 인코딩 과정의 경우, 화면 간 예측에 대해서, 아핀 움직임 모델, 일반 움직임 모델, 또는 관점 모델과 같은 복수의 움직임 모델이 움직임 보상 계산 과정에서 사용될 수 있다. 여기서, 아핀 움직임 모델 설명을 위한 예로서 사용되지만, 본 발명은 이에 제한되지 않는다.
본 발명의 본 실시예에서, 제1 결정 모듈(310)은 현재 인코딩 블록의 움직임 벡터 그룹을 결정하고, 움직임 벡터 그룹은 현재 인코딩 블록 내의 화소에 대응하는 적어도 하나의 움직임 벡터를 포함한다. 움직임 모델을 설명하는 데 필요한 파라미터의 개수가 움직임 모델에 따라 달라진다. 2n개의 파라미터를 가진 움직임 모델의 경우, 현재 인코딩 블록의 움직임 벡터 그룹은 일반적으로 n개의 움직임 벡터를 포함할 수 있다. 예를 들어, 아핀 움직임의 경우, 현재 인코딩 블록 내의 모든 화소가 아핀 움직임 모델을 이용하여 표현되는 경우, 일반적으로 아핀 움직임 모델은
Figure 112017089288300-pct00246
로서 표현될 수 있다. 즉, 아핀 움직임 모델이 6개의 파라미터를 가지며, 움직임 벡터 그룹이 적어도 3개의 움직임 벡터를 포함한다. 일반 움직임 모델의 경우, 12개의 파라미터가 일반적으로 사용되며, 움직임 벡터 그룹이 적어도 6개의 움직임 벡터를 포함한다. 선택적으로, 움직임 벡터 그룹의 적어도 하나의 움직임 벡터를 결정하는 것은, 움직임 벡터 그룹의 하나의 움직임 벡터를 결정하는 것이거나, 또는 n개의 움직임 벡터 또는 움직임 벡터 그룹의 모든 움직임 벡터를 결정하는 것일 수 있다. 예를 들어, 아핀 움직임의 경우, 이 움직임 벡터 그룹이 적어도 3개의 움직임 벡터를 포함할 수 있고, 현재 인코딩 블록의 움직임 벡터 그룹을 결정하는 것은 하나의 움직임 벡터, 또는 3개의 움직임 벡터, 또는 계산 벡터 그룹의 모든 움직임 벡터를 결정하는 것일 수 있다. 본 발명은 이에 제한되지 않는다.
선택적으로, 일 실시예에서, 아핀 움직임이 예로서 사용된다. 이 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하고, 제1 결정 모듈(310)이 현재 인코딩 블록의 움직임 벡터 그룹을 결정한다는 것은 계산 벡터 그룹의 적어도 하나의 움직임 벡터를 결정한다는 것일 수 있다. 고효율 비디오 코딩(High Efficiency Video Coding, HEVC) 표준의 경우, 현재 인코딩 블록의 움직임 벡터 그룹 내의 제1 움직임 벡터가 AMVP(Advanced Motion Vector Prediction) 기술을 이용하여 결정될 수 있다. 구체적으로, 먼저, 현재 인코딩 블록의 복수의 후보 블록이 현재 인코딩 블록 주위의 이웃하는 인코딩된 블록 중에서 결정된다. 복수의 후보 블록이 좌표 위치에 따라 결정될 수 있고, 복수의 후보 블록은 현재 인코딩 블록에 인접해 있다. 예를 들어, 도 2에 도시된 바와 같이, 현재 인코딩 블록의 경우, 일반적으로, A 내지 G가 현재 인코딩 블록의 복수의 후보 블록으로서 결정될 수 있다. 그 다음에, 각각의 후보 블록의 움직임 벡터에 대응하는 예측 블록과 현재 인코딩 블록 간의 매칭 에러값이 결정된다. 구체적으로, 참조 프레임 내에서 후보 블록의 움직임 벡터에 대응하는 예측 블록이 후보 블록의 움직임 벡터 및 현재 인코딩 블록에 따라 결정되고; 그 다음에, 예측 블록과 현재 인코딩 블록 간의 매칭 에러값이 계산되며, 가장 작은 매칭 에러값에 대응하는 후보 블록이 현재 인코딩 블록의 타깃 후보 블록으로서 결정된다. 다음, 현재 인코딩 블록의 참조 프레임의 픽쳐 오더 카운트(POC) 및 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트(POC)가 개별적으로 결정된다. 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트(POC)에 대한 현재 인코딩 블록의 참조 프레임의 픽쳐 오더 카운트(POC)의 비율에 따라, 타깃 후보 블록의 움직임 벡터에 대해 스케일링이 수행된다. 타깃 후보 블록의 스케일링된 움직임 벡터가 현재 인코딩 블록의 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정된다. 타깃 후보 블록의 움직임 벡터에 대한 제1 움직임 벡터의 비율이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 현재 인코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율과 동일하다.
본 발명의 본 실시예에서, 이 타깃 후보 블록의 결정된 움직임 벡터가 후속 움직임 추정의 검색 시작점으로서 결정될 수 있다. 디코더 측이 디코딩을 수행하고 이 타깃 후보 블록과 이 타깃 후보 블록의 움직임 벡터를 결정할 수 있도록, 인코딩 장치가 이 타깃 후보 블록에 대응하는 인덱스 값을 인코딩하고, 인코딩된 인덱스 값을 디코더 측에 전송할 수 있다.
본 발명의 본 실시예에서, 제1 결정 모듈(310)은 다음의 방법에 따라, 각각의 후보 블록의 움직임 벡터에 대응하는 예측 블록과 현재 인코딩 블록 간의 매칭 에러값을 결정할 수 있다. 구체적으로, 현재 인코딩 블록 내의 각각의 화소의 경우, 각각의 화소의 매칭 에러값이 수식 (1) 내지 수식 (4)에 따라 결정될 수 있다. 여기서,
Figure 112017089288300-pct00247
는 화소의 원래 화소값이고,
Figure 112017089288300-pct00248
는 후보 블록의 움직임 벡터가 가리키는 프레임 내의 화소의 예측 화소값이며,
Figure 112017089288300-pct00249
Figure 112017089288300-pct00250
는 화소의 좌표값이고,
Figure 112017089288300-pct00251
는 화소의 위치의 수평 기울기이며,
Figure 112017089288300-pct00252
는 화소의 위치의 수직 기울기이다. 이러한 기울기는 소벨(Sobel) 연산자를 이용하여 계산을 통해 얻어질 수 있다.
본 발명의 본 실시예에서, 제1 결정 모듈(310)이 수식 (1) 내지 수식 (4)에 따라, 후보 블록의 움직임 벡터에 대응하는 예측 블록과 관련된 현재 인코딩 블록 내의 각각의 화소의 매칭 에러값을 결정하고, 현재 인코딩 블록 내의 모든 화소의 매칭 에러값의 절대값을 합산할 수 있다. 현재 인코딩 블록과 후보 블록에 대응하는 예측 블록 간의 매칭 에러값을 얻을 수 있다. 하지만, 본 발명은 이에 제한되지 않는다. 전술한 방법에 따라, 현재 인코딩 블록과 각각의 후보 블록에 대응하는 예측 블록 간의 매칭 에러값이 순차적으로 결정된다. 가장 작은 매칭 에러값에 대응하는 후보 블록이 현재 인코딩 블록의 타깃 후보 블록으로서 사용된다.
선택적으로, 일 실시예에서, 아핀 움직임이 예로서 사용된다. 제1 결정 모듈(310)이 현재 인코딩 블록의 움직임 벡터 그룹을 결정한다. 이 움직임 벡터 그룹은 3개의 움직임 벡터를 포함한다. 이 움직임 벡터 그룹의 하나의 움직임 벡터, 즉 제1 움직임 벡터가 전술한 방법에 따라 결정된 후에, 도 2에 도시된 바와 같이, 제1 움직임 벡터는 현재 인코딩 블록의 꼭지점에 대응하는 움직임 벡터일 수 있다. 선택적으로, 현재 인코딩 블록의 꼭지점에 인접한 2개의 꼭지점의 움직임 벡터가 움직임 벡터 그룹 내의 다른 움직임 벡터로서 선택될 수 있다. 이 움직임 벡터 그룹은
Figure 112017089288300-pct00253
로서 표현될 수 있고, 이 움직임 벡터 그룹 내의 움직임 벡터의 좌표가 (0,0), (W,0), 및 (0,H)이다. 여기서, W는 현재 인코딩 블록의 폭이고, H는 현재 인코딩 블록의 높이이다.
선택적으로, 일 실시예에서, 아핀 움직임이 예로서 사용된다. 이 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하고, 제1 결정 모듈(310)이 현재 인코딩 블록의 움직임 벡터 그룹을 결정한다는 것은, 움직임 벡터 그룹의 각각의 움직임 벡터를 결정한다는 것일 수 있다. 구체적으로, 먼저, 복수의 현재 인코딩 블록 주위의 이웃하는 인코딩된 블록이 복수의 후보 블록으로서 결정될 수 있다. 이 복수의 후보 블록은 현재 인코딩 블록 내의 동일한 화소에 대응하고 있다. 선택적으로, 이 화소는 현재 인코딩 블록의 꼭지점일 수 있다. 예를 들어, 도 2에 도시된 바와 같이, A, B, 및 C가 현재 인코딩 블록의 복수의 후보 블록으로서 결정될 수 있다. 수식 (1) 내지 수식 (4)에 따라, 각각의 후보 블록의 움직임 벡터에 대응하는 예측 블록과 관련된 현재 인코딩 블록 내의 각각의 화소의 매칭 에러값이 개별적으로 결정된다. 그 다음에, 모든 화소의 매칭 에러값의 절대값이 합산된다. 현재 인코딩 블록과 관련된 각각의 후보 블록의 매칭 에러값이 결정된다. 가장 작은 매칭 에러값에 대응하는 후보 블록이 현재 인코딩 블록의 타깃 후보 블록으로서 선택된다. 이 타깃 후보 블록의 움직임 벡터가 현재 인코딩 블록의 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정된다. 이 타깃 후보 블록의 참조 프레임이 현재 인코딩 블록의 참조 프레임으로서 결정된다. 이 타깃 후보 블록의 움직임 벡터가 현재 인코딩 블록의 제1 움직임 벡터로서 사용되고, 제1 움직임 벡터가 후속 움직임 추정의 검색 시작점으로서 사용될 수 있다. 디코더 측이 디코딩을 수행하고 이 타깃 후보 블록과 이 타깃 후보 블록의 움직임 벡터를 결정할 수 있도록, 인코딩 장치가 이 타깃 후보 블록에 대응하는 인덱스 값을 인코딩하고, 인코딩된 인덱스 값을 디코더 측에 전송할 수 있다.
본 발명의 본 실시예에서, 현재 인코딩 블록의 움직임 벡터 그룹 내의 제1 움직임 벡터를 결정하는 단계 이후에, 제1 결정 모듈(310)이 제1 움직임 벡터에 따라 현재 인코딩 블록의 움직임 벡터 그룹 내의 제2 움직임 벡터를 결정한다. 제2 움직임 벡터는 제1 움직임 벡터와는 다른, 이 움직임 벡터 그룹 내의 움직임 벡터이다. 구체적으로, 먼저, 현재 인코딩 블록의 복수의 후보 블록이 현재 인코딩 블록 주위의 이웃하는 인코딩된 블록 중에서 결정된다. 이 복수의 인코딩 블록이 현재 인코딩 블록 내의 동일한 화소에 대응하고 있다. 선택적으로, 이 화소는 현재 인코딩 블록의 꼭지점일 수 있다. 제1 움직임 벡터를 결정하는 데 있어서, 이 화소는 복수의 후보 블록에 대응하는 화소와는 다르다. 예를 들어, 도 2에 도시된 바와 같이, 이 후보 블록은 D와 E를 포함할 수 있고, 복수의 후보 블록은 제1 움직임 벡터를 결정하는 과정에서 이 후보 블록을 포함하지 않는다. 그 다음에, 각각의 후보 블록의 참조 프레임이 결정된다. 이 후보 블록의 참조 프레임이 제1 움직임 벡터에 대응하는 타깃 후보 블록의 참조 프레임, 즉 현재 인코딩 블록의 참조 프레임과 동일한 프레임이 아니면, 이 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 현재 블록의 참조 프레임의 픽쳐 오더 카운트의 비율이 움직임 벡터 간의 비율과 동일할 수 있도록, 이 후보 블록의 참조 프레임의 픽쳐 오더 카운트(POC)에 대한 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트(POC)의 비율에 따라 이 후보 블록의 움직임 벡터에 대해 스케일링이 수행된다. 스케일링된 각각의 후보 블록의 움직임 벡터는 제1 움직임 벡터와 개별적으로 비교된다. 이 후보 블록의 스케일링된 움직임 벡터는 제1 움직임 벡터와는 다르고, 차이가 가장 작은 경우, 이 후보 블록이 현재 인코딩 블록의 제2 타깃 후보 블록으로서 결정되고, 이 타깃 후보 블록에 대응하는 스케일링된 움직임 벡터가 현재 인코딩 블록의 움직임 벡터 그룹 내의 제2 움직임 벡터로서 결정된다.
본 발명의 본 실시예에서, 제1 결정 모듈(310)이 전술한 방법에 따라 복수의 제2 움직임 벡터를 결정할 수 있다. 예를 들어, 현재 인코딩 블록의 움직임 벡터 그룹이 3개의 움직임 벡터를 포함하는 경우, 이 움직임 벡터 그룹의 하나의 제1 움직임 벡터가 결정된 후에, 다른 2개의 제2 움직임 벡터가 전술한 방법에 따라 결정될 수 있다. 하지만, 본 발명은 이에 제한되지 않는다.
선택적으로, 일 실시예에서, 아핀 움직임이 예로서 사용된다. 제1 결정 모듈(310)이 현재 인코딩 블록의 움직임 벡터 그룹을 결정한다. 이 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하고, 이 움직임 벡터 그룹의 각각의 움직임 벡터가 다음의 방법에 따라 추가로 결정될 수 있다. 구체적으로, 현재 인코딩 블록의 복수의 후보 블록이 결정된다. 모든 복수의 후보 블록이 현재 인코딩 블록에 인접한 인코딩된 블록이다. 예를 들어, 도 2에 도시된 바와 같이, A 내지 F가 현재 인코딩 블록의 복수의 후보 블록이다. 그 다음에, 현재 인코딩 블록의 복수의 후보 움직임 벡터 그룹이 복수의 후보 블록에 따라 결정된다. 각각의 후보 움직임 벡터 그룹이 3개의 움직임 벡터를 포함하고, 3개의 움직임 벡터는 현재 인코딩 블록 내의 3개의 화소에 대응하고 있다. 선택적으로, 복수의 후보 블록 중에서 선택된 여러 후보 블록의 움직임 벡터가 이 후보 움직임 벡터 그룹으로서 사용될 수 있다. 예를 들어, 도 2에 도시된 바와 같이, 복수의 후보 블록 A 내지 F의 경우, 동일한 화소에 대응하고 있는 후보 블록 A, B, 및 C 중에서 무작위로 선택된 블록의 움직임 벡터를 포함하는 3개의 움직임 벡터, 다른 화소에 대응하고 있는 D와 E 중에서 무작위로 선택된 블록의 움직임 벡터, 및 또 다른 화소에 대응하고 있는 F와 G 중에서 무작위로 선택된 블록의 움직임 벡터가 후보 움직임 벡터 그룹을 구성할 수 있다. 서로 다른 선택이 있기 때문에, 이들 후보 블록이 12개의 후보 움직임 벡터 그룹을 구성할 수 있다. 제1 후보 움직임 벡터 그룹의 각각의 움직임 벡터의 참조 프레임이 결정된다. 제1 후보 움직임 벡터 그룹은 복수의 후보 움직임 벡터 그룹 중의 임의의 후보 움직임 벡터 그룹이다. 제1 후보 움직임 벡터 그룹의 3개의 움직임 벡터가 동일한 참조 프레임 인덱스 번호와 픽쳐 오더 카운트에 대응하고 있을 수 있도록, 제1 후보 움직임 벡터 그룹의 각각의 움직임 벡터에 대응하는 후보 블록의 참조 프레임의 인덱스 번호와 픽쳐 오더 카운트에 대해 비례 스케일링이 수행된다.
본 발명의 본 실시예에서, 제1 결정 모듈(310)이 현재 인코딩 블록 내의 각각의 화소의 제1 후보 움직임 벡터 그룹의 참조 프레임 내의 예측 위치를 수식 (5) 및 수식 (6)에 따라 결정할 수 있다. 여기서, W는 현재 인코딩 블록의 폭이고, H는 현재 인코딩 블록의 높이이며,
Figure 112017089288300-pct00254
는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터
Figure 112017089288300-pct00255
의 x-방향 성분이고,
Figure 112017089288300-pct00256
는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터
Figure 112017089288300-pct00257
의 y-방향 성분이며, j=0, 1, 2이고, x와 y는 현재 인코딩 블록 내의 각각의 화소의 좌표값이며,
Figure 112017089288300-pct00258
Figure 112017089288300-pct00259
는 제1 후보 움직임 벡터 그룹 내의 참조 프레임에 대응하는 예측점에서의 화소의 좌표값이다.
현재 인코딩 블록 내의 각각의 화소의 좌표값 및 현재 인코딩 블록 내의 화소의 좌표값에 따라, 참조 프레임에 대응하는 예측 포인트에서, 제1 후보 움직임 벡터 그룹에 대해서, 현재 인코딩 블록 내의 각각의 화소와 제1 후보 움직임 벡터 그룹의 참조 프레임에 대응하는 예측 포인트 간의 매칭 에러값이 수식 (1)에 따라 결정된다. 여기서,
Figure 112017089288300-pct00260
이다. 제1 후보 움직임 벡터 그룹과 관련된 각각의 화소의 매칭 에러값의 절대값이 계산되고, 이 절대값이 합산되어 현재 인코딩 블록에 대응하는 제1 후보 움직임 벡터 그룹의 매칭 에러값을 결정한 다. 유사하게, 각각의 후보 움직임 벡터 그룹과 관련된 현재 인코딩 블록의 매칭 에러값이 결정되고, 복수의 후보 움직임 벡터 그룹에 대응하는 복수의 매칭 에러값 중에서 가장 작은 값에 대응하는 후보 움직임 벡터 그룹이 현재 인코딩 블록의 움직임 벡터 그룹으로서 결정된다. 디코더 측이 인덱스 값에 따라 이 움직임 벡터 그룹을 결정할 수 있도록, 이 움직임 벡터 그룹의 인덱스 값이 인코딩되어 디코더 측에 전송된다.
본 발명의 본 실시예에서, 제1 결정 모듈(310)에 의해 결정된 움직임 벡터 그룹의 경우, 이 움직임 벡터 그룹의 임의의 움직임 벡터가 후속 움직임 추정의 검색 시작점으로서 사용될 수 있다. 선택적으로, 도 2에 도시된 바와 같이, 현재 인코딩 블록의 좌측 상부 모서리에서의 꼭지점의 예측 위치가 후속 움직임 추정에 있어서의 검색 시작점으로서 사용될 수 있다. 본 발명은 이에 제한되지 않는다.
본 발명의 본 실시예에서, 제2 결정 모듈(320)이 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 현재 인코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정한다. 이 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함한다. 제1 성분 세트는 움직임 모델 초기화 벡터의 적어도 하나의 성분을 포함한다. 구체적으로, 아핀 움직임 모델이 예로서 사용된다. 아핀 모델은 6개의 파라미터를 이용하여 나타낼 수 있고, 6개의 파라미터는
Figure 112017089288300-pct00261
로서 표현될 수 있다. 현재 인코딩 블록 내의 각각의 화소의 참조 프레임 내의 위치가 수식 (7)에 따라 결정될 수 있고, x와 y는 현재 인코딩 블록 내의 임의의 화소의 좌표값이며,
Figure 112017089288300-pct00262
Figure 112017089288300-pct00263
는 화소의 참조 프레임 내의 대응하는 예측 포인트에서의 좌표값이며,
Figure 112017089288300-pct00264
Figure 112017089288300-pct00265
는 현재 인코딩 블록 내의 임의의 화소의 움직임 벡터이다. 수식 (8)이 얻어질 수 있다. 제1 결정 모듈(310)에 의해 결정된 움직임 벡터 그룹에 따라, 이 움직임 벡터는
Figure 112017089288300-pct00266
로서 표현될 수 있다. 이 움직임 벡터 그룹에 대응하는 타깃 후보 블록은 도 2에 도시된 블록 A 내지 블록 G이다. 따라서, 움직임 벡터 그룹 내의 움직임 벡터의 좌표가 (0,0), (W,0), 및 (0,H)일 수 있다. 여기서, W는 현재 인코딩 블록의 폭이고, H는 현재 인코딩 블록의 높이이다. 움직임 벡터 그룹과 좌표를 수식 (8)에 대입하여 수식 (9)를 얻을 수 있다. 여기서,
Figure 112017089288300-pct00267
는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터
Figure 112017089288300-pct00268
의 x-방향 성분이고,
Figure 112017089288300-pct00269
는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터
Figure 112017089288300-pct00270
의 y-방향 성분이며, j=0, 1, 2이다. 따라서, 아핀 움직임 모델
Figure 112017089288300-pct00271
에서의 모든 파라미터가 얻어질 수 있다. 수식 (6)에 나타낸 바와 같이, 현재 인코딩 블록의 움직임 벡터 그룹
Figure 112017089288300-pct00272
이 수식 (6)에 대입되고, 현재 인코딩 블록의 움직임 모델 초기화 벡터
Figure 112017089288300-pct00273
가 결정될 수 있다. 이 움직임 모델 초기화 벡터는 6차원 벡터이다. 선택적으로, 다른 움직임 모델의 경우, 이 초기화 벡터가 적어도 4개의 차원을 포함하는 벡터이다. 제1 성분 세트의 예측값이 움직임 모델 초기화 벡터에 따라 결정될 수 있다. 제1 성분 세트의 예측값은 움직임 모델 초기화 벡터의 적어도 하나의 성분일 수 있다.
본 발명의 본 실시예에서, 제3 결정 모듈(330)이 제1 성분 세트의 예측값에 따라 제1 성분 세트의 전송될 값을 결정한다. 구체적으로, 제3 결정 모듈(330)이 현재 인코딩 블록에 따라 움직임 모델 양자화 정밀도 및 움직임 모델 최적화 벡터를 결정하고, 이 움직임 모델 양자화 정밀도에 따라 움직임 모델 최적화 벡터를 양자화하며, 움직임 모델의 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 제1 성분 세트의 전송될 값을 결정할 수 있다.
본 발명의 본 실시예에서, 제3 결정 모듈(330)이 움직임 모델 최적화 벡터를 먼저 결정할 수 있다. 선택적으로, 움직임 모델 최적화 벡터가 종래 기술에 따라 결정될 수 있다. 구체적으로, 현재 인코딩 블록의 매칭 에러값이 수식 (1) 내지 수식 (4)에 따라 결정될 수 있다. 현재 인코딩 블록의 예측 블록이 현재 인코딩 블록의 참조 프레임의 특정 범위 내에서 기울기 반복 방식으로 검색된다. 가장 작은 매칭 에러값에 대응하는 예측 블록이 현재 인코딩 블록의 예측 블록으로서 결정되고, 이때의 대응하는 움직임 모델 파라미터
Figure 112017089288300-pct00274
가 수식 (4)에 따라 현재 인코딩 블록의 최적화 벡터로서 결정된다.
선택적으로, 제3 결정 모듈(330)이 추가적으로, 수식 (6)에 따라 현재 인코딩 블록의 움직임 모델 초기화 벡터를 결정하고, 이 움직임 모델 초기화 벡터를 움직임 모델 최적화 벡터로서 결정할 수 있다.
선택적으로, 현재 인코딩 블록의 움직임 모델 초기화 벡터가 수식 (6)에 따라 추가로 결정될 수 있다. 현재 인코딩 블록 내의 각각의 화소의 참조 프레임 내의 대응하는 위치가 수식 (7)에 따라 계산을 통해 얻어진다. 현재 인코딩 블록의 매칭 에러값이 수식 (1) 및 수식 (6)에 따라 계산된다. 이 매칭 에러값은 움직임 모델 파라미터에 대응하고 있고 공식 (1) 내지 공식 (4)와 종래 기술에 따라 결정되는 매칭 에러값과 비교된다. 가장 작은 매칭 에러값에 대응하는 움직임 모델 파라미터
Figure 112017089288300-pct00275
가 현재 인코딩 블록의 최적화 벡터로서 선택된다. 본 발명은 이에 제한되지 않는다.
본 발명의 본 실시예에서, 움직임 모델 최적화 벡터를 양자화하기 위해, 제3 결정 모듈(330)은 추가적으로, 움직임 모델 양자화 정밀도를 결정할 필요가 있다. 구체적으로, 움직임 모델 최적화 벡터는 2개의 병진 운동 파라미터
Figure 112017089288300-pct00276
Figure 112017089288300-pct00277
를 포함한다. 2개의 병진 운동 파라미터의 양자화 정밀도가 1/16 또는 1/4일 수 있다. 본 발명은 이에 제한되지 않는다. 움직임 모델 최적화 벡터 내의 다른 파라미터
Figure 112017089288300-pct00278
의 양자화 정밀도가 1/512일 수 있다. 또는, 양자화 정밀도가 정밀도 정보 및 현재 인코딩 블록의 크기에 따라 결정될 수 있다. 현재 인코딩 블록의 크기는 현재 인코딩 블록의 폭 및 현재 인코딩 블록의 높이를 포함하고, 정밀도 정보는 현재 인코딩 블록의 움직임 벡터 그룹의 양자화 정밀도를 포함할 수 있다. 구체적으로, 수식 (6)에 따라, 움직임 모델에서의 나중의 4개의 파라미터가 현재 인코딩 블록의 폭과 높이와 관련되어 있음을 알 수 있을 것이다. 따라서, 양자화 정밀도가 수식 (10)에 따라 결정될 수 있다. P는 현재 인코딩 블록의 정밀도 정보에 따라 결정될 수 있다. 구체적으로, 1/P이 현재 인코딩 블록의 움직임 벡터 그룹의 양자화 정밀도이다. 선택적으로, 움직임 벡터 그룹의 양자화 정밀도가 일반적으로 1/4이고, 그래서 P=4이다. W는 현재 인코딩 블록의 폭이고, H는 현재 인코딩 블록의 높이이다. 예를 들어, 현재 인코딩 블록의 폭이 16이고 높이가 32이면, 움직임 벡터 그룹의 양자화 정밀도가 1/(32×4)=1/128이고; 인코딩 블록의 폭이 16이고 높이가 8이면, 양자화 정밀도가 1/(16×4)=1/64이다.
본 발명의 본 실시예에서, 양자화된 움직임 모델 최적화 벡터
Figure 112017089288300-pct00279
를 얻을 수 있도록, 제3 결정 모듈(330)은 결정된 양자화 정밀도에 따라 움직임 모델 최적화 벡터
Figure 112017089288300-pct00280
를 양자화한다.
본 발명의 본 실시예에서, 제3 결정 모듈(330)이 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 제1 성분 세트의 전송될 값을 결정한다. 구체적으로, 이 결정이 다음의 방법을 이용하여 수행될 수 있다. 여기서, 아핀 움직임이 예로서 사용된다. 움직임 모델 초기화 벡터는 수식 (6)에 따라 결정된다. 이 움직임 모델 초기화 벡터에서,
Figure 112017089288300-pct00281
Figure 112017089288300-pct00282
이 병진 운동 파라미터이고, 움직임 벡터 그룹 내의 제1 움직임 벡터
Figure 112017089288300-pct00283
와 관련되어 있다.
Figure 112017089288300-pct00284
Figure 112017089288300-pct00285
이 제1 성분 세트로서 결정될 수 있고, 수식 (6)에 따라 결정된 값
Figure 112017089288300-pct00286
Figure 112017089288300-pct00287
은 제1 성분 세트의 예측값이다. 선택적으로, 2개의 파라미터의 양자화 정밀도가 1/16 또는 1/4일 수 있다. 1/16이 예로서 사용된다. 먼저,
Figure 112017089288300-pct00288
의 정밀도가 1/4에서 1/16로 높아질 수 있도록,
Figure 112017089288300-pct00289
이 4배 스케일업된다. 그 다음에,
Figure 112017089288300-pct00290
Figure 112017089288300-pct00291
을 획득하기 위해, 정밀도가 또한 1/16인 양자화된
Figure 112017089288300-pct00292
Figure 112017089288300-pct00293
이 정밀도가 1/16인
Figure 112017089288300-pct00294
을 이용하여 계산된다. 즉,
Figure 112017089288300-pct00295
Figure 112017089288300-pct00296
은 제1 성분 세트의 양자화된 예측값이다.
본 발명의 본 실시예에서, 제3 결정 모듈(330)이 제1 성분 세트의 양자화된 예측값
Figure 112017089288300-pct00297
Figure 112017089288300-pct00298
및 결정된 움직임 모델 최적화 벡터에 따라 현재 인코딩 블록의 제1 성분 세트의 전송될 값을 결정한다. 현재 인코딩 블록의 움직임 모델 전송 값은
Figure 112017089288300-pct00299
일 수 있다. 제1 성분 세트는 2개의 성분을 포함할 수 있다. 제1 성분 세트의 전송 값은
Figure 112017089288300-pct00300
Figure 112017089288300-pct00301
일 수 있고,
Figure 112017089288300-pct00302
이며,
Figure 112017089288300-pct00303
이다. 다른 전송 값은
Figure 112017089288300-pct00304
이고,
Figure 112017089288300-pct00305
는 양자화된 움직임 모델 최적화 벡터이며,
Figure 112017089288300-pct00306
Figure 112017089288300-pct00307
은 제1 성분 세트의 예측값
Figure 112017089288300-pct00308
Figure 112017089288300-pct00309
의 양자화된 값이다. 이 경우에, 인코딩 전송 파라미터 중의 2개의 파라미가는 양자화된 제1 성분 세트와 움직임 모델 최적화 벡터 간의 차이이다. 직접 인코딩 전송에서는 이 차이가 양자화된 움직임 모델 최적화 벡터에 의해 점유된 비트의 수보다 작다. 이로 인해 전송되는 데이터의 양이 줄어든다.
선택적으로, 일 실시예에서, 제3 결정 모듈(330)이 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 제1 성분 세트의 전송될 값을 결정한다. 구체적으로, 결정하는 단계가 다음의 방법에 따라 추가로 수행될 수 있다. 수식 (6)에 따라, 움직임 모델 초기화 벡터의 6개의 성분
Figure 112017089288300-pct00310
가 결정된다. 여기서, i= 0, 1, 2, 3, 4, 5이다. 그 다음에, 제1 성분 세트도 또한 6개의 파라미터를 포함한다고 결정되고, 현재 인코딩 블록의 움직임 모델 전송 값이 결정될 수 있다. 즉, 제1 성분 세트의 전송 값은
Figure 112017089288300-pct00311
이다. 여기서,
Figure 112017089288300-pct00312
이고,
Figure 112017089288300-pct00313
는 양자화된 움직임 모델 최적화 벡터이며,
Figure 112017089288300-pct00314
는 제1 성분 세트의 예측값이다.
본 발명의 본 실시예에서, 인코딩 모듈(340)이 제3 결정 모듈(330)에 의해 결정되는 제1 성분 세트의 전송될 값을 인코딩하고, 제1 성분 세트의 인코딩된 전송될 값을 디코더 측에 전송할 수 있다. 구체적으로, 인코딩 모듈(340)이 현재 인코딩 블록의 움직임 모델 전송될 벡터를 인코딩할 수 있고, 현재 인코딩 블록의 인코딩된 움직임 모델 전송될 벡터를 디코더 측에 전송한다. 또한, 인코딩 모듈(340)은 추가적으로, 제3 결정 모듈(330)에 의해 결정된 움직임 모델 양자화 정밀도에 따라 움직임 모델 최적화 벡터를 양자화하고; 현재 인코딩 블록의 각각의 화소 샘플의 예측 화소 샘플을 결정하며; 추가적으로, 현재 인코딩 블록의 예측 잔차를 결정하고, 예측 잔차를 인코딩하며, 이 인코딩된 예측 잔차를 디코더 측에 전송할 수 있다. 구체적으로, 움직임 모델 최적화 벡터
Figure 112017089288300-pct00315
의 경우, 양자화된 움직임 모델 최적화 벡터
Figure 112017089288300-pct00316
를 획득하기 위해, 각각의 파라미터
Figure 112017089288300-pct00317
가 수식 (10)에 따라 결정된 움직임 모델 양자화 정밀도에 따라 양자화된다. 양자화된 움직임 모델 최적화 벡터는 수식 (7)에 대입되고, 현재 인코딩 블록 내에서 정밀도 Q를 가진 각각의 화소의 참조 오프셋 위치
Figure 112017089288300-pct00318
가 얻어질 수 있다. 현재 인코딩 블록 내의 각각의 화소 샘플의 예측 화소 샘플이 참조 오프셋 위치에서 계산을 통해 얻어진다. 또한, 현재 인코딩 블록의 예측 잔차가 결정되고, 이 예측 잔차는 인코딩되어 디코더 측에 전송된다. 선택적으로, 이 화소 샘플이 하나의 화소 또는 복수의 화소를 포함하는 작은 화소 블록일 수 있다. 본 발명은 이에 제한되지 않는다.
본 발명의 본 실시예에 따른 인코딩 장치(300)가 이에 상응하여 본 발명의 실시예의 비디오 이미지 인코딩 방법(100)을 실행하도록 구성될 수 있다는 것을 이해해야 한다. 또한, 인코딩 장치(300) 내의 모듈의 전술한 동작과 다른 동작 및/또는 기능은 도 1 및 도 2의 비디오 이미지 인코딩 방법의 대응하는 과정을 구현하고자 하는 것이다. 간략화를 위해, 여기서는 세부사항을 추가로 설명하지 않는다.
따라서, 디코더 측이 움직임 모델의 전송될 값에 따라 디코딩을 수행할 수 있도록, 본 발명의 본 실시예의 인코딩 장치가 현재 인코딩 블록의 움직임 벡터 그룹을 결정하고; 이 움직임 벡터 그룹에 따라 현재 인코딩 블록의 움직임 모델 초기화 벡터를 결정하며; 이 움직임 모델 초기화 벡터에 따라 움직임 모델의 전송될 값을 결정하고; 전송을 위한 움직임 모델의 전송될 값을 인코딩한다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서의 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다. 또한, 이 움직임 모델 최적화 벡터가 결정되고 이 최적화 벡터가 양자화되는 경우에, 결정되는 양자화 정밀도가 현재 인코딩 블록의 크기 및 현재 인코딩 블록의 움직임 벡터의 양자화 정밀도에 따라 결정된다. 이로 인해 인코딩 파라미터에 필요한 비트의 수를 줄일 수도 있다.
도 6은 본 발명의 일 실시예에 따른 디코딩 장치(400)의 개략적인 블록도이다. 이 디코딩 장치는 UE와 같은 사용자 장비일 수 있거나; 또는 RNC 또는 Enb와 같은 네트워크 장치일 수 있다. 도 6에 도시된 바와 같이, 디코딩 장치(400)는,
비트스트림에 따라 현재 디코딩 블록의 움직임 벡터 그룹과 움직임 모델 전송 벡터를 결정하도록 구성된 제1 결정 모듈(410) - 이 움직임 벡터 그룹은 현재 디코딩 블록의 적어도 하나의 움직임 벡터를 포함하고, 이 움직임 모델 전송 벡터는 적어도 4개의 성분을 포함하고 있음 -;
이 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 현재 디코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정하도록 구성된 제2 결정 모듈(420) - 이 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함하고 있음 -; 및
이 움직임 모델 최적화 벡터에 따라 현재 디코딩 블록을 디코딩할 수 있도록, 제1 성분 세트의 예측값 및 움직임 모델 전송 벡터에 따라 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정하도록 구성된 제3 결정 모듈(430)을 포함한다.
구체적으로, 디코더 측의 제1 결정 모듈(410)이 인코더 측에 의해 전송된 비트스트림을 수신하고, 이 비트스트림에 따라 디코딩을 수행하며, 현재 디코딩 블록의 움직임 벡터 그룹과 움직임 모델 전송 벡터를 결정한다. 이 움직임 벡터 그룹은 현재 디코딩 블록 내의 화소에 대응하는 적어도 하나의 움직임 벡터를 포함한다. 제2 결정 모듈(420)은 이 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 현재 디코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정한다. 이 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함한다. 제1 성분 세트는 움직임 모델 초기화 벡터의 적어도 하나의 성분을 포함한다. 제3 결정 모듈(430)이 제1 성분 세트의 예측값 및 움직임 모델 전송 벡터에 따라 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정한다. 그 다음에, 제3 결정 모듈(430)이 양자화된 움직임 모델 최적화 벡터에 따라 현재 디코딩 블록의 예측 샘플을 결정하고, 이 예측 샘플에 따라 현재 디코딩 블록에 대해 디코딩 및 복원을 수행한다.
따라서, 본 발명의 본 실시예의 디코딩 장치가 수신된 비트스트림에 따라 현재 디코딩 블록의 움직임 벡터 그룹과 움직임 모델 전송 벡터를 결정하고; 이 움직임 벡터 그룹에 따라 현재 디코딩 블록의 움직임 모델 초기화 벡터를 결정하며; 이 움직임 모델 초기화 벡터 및 움직임 모델 전송 벡터에 따라 움직임 모델 최적화 벡터를 결정하고; 이 움직임 모델 최적화 벡터를 인코딩하고 재구성한다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다.
본 발명의 본 실시예에서, 디코딩 장치가 비트스트림에 따라 디코딩을 수행한다. 제1 결정 모듈(410)은 현재 디코딩 블록의 움직임 벡터 그룹과 움직임 모델 전송 벡터를 결정한다. 이 움직임 벡터 그룹은 현재 디코딩 블록의 적어도 하나의 움직임 벡터를 포함하고, 각각의 움직임 벡터는 현재 디코딩 블록 내의 하나의 화소에 대응하고 있다. 선택적으로, 움직임 모델을 설명하는 데 필요한 파라미터의 개수가 움직임 모델에 따라 달라진다. 2n개의 파라미터를 가진 움직임 모델의 경우, 디코더 측에 의해 결정되는 움직임 모델 전송 벡터가 2n개의 차원의 벡터이고, 현재 디코딩 블록의 움직임 벡터 그룹이 일반적으로 n개의 움직임 벡터를 포함할 수 있다. 예를 들어, 아핀 움직임의 경우, 현재 디코딩 블록 내의 모든 화소가 아핀 움직임 모델을 이용하여 표현되는 경우, 일반적으로 아핀 움직임 모델은
Figure 112017089288300-pct00319
로서 표현될 수 있다. 즉, 아핀 움직임 모델이 6개의 파라미터를 가지고 있고, 이 움직임 벡터 그룹이 3개의 움직임 벡터를 포함할 수 있다. 일반 움직임 모델의 경우, 12개의 파라미터가 일반적으로 사용되고, 이 움직임 벡터 그룹이 6개의 움직임 벡터를 포함할 수 있다. 선택적으로, 움직임 벡터 그룹을 결정하는 것은 움직임 벡터 그룹의 적어도 하나의 움직임 벡터를 결정하는 것, 또는 움직임 벡터 그룹의 하나의 움직임 벡터를 결정하는 것, 또는 n개의 움직임 벡터 또는 움직임 벡터 그룹의 모든 움직임 벡터를 결정하는 것일 수 있다. 예를 들어, 아핀 움직임의 경우, 이 움직임 벡터 그룹이 적어도 3개의 움직임 벡터를 포함할 수 있고, 현재 디코딩 블록의 움직임 벡터 그룹을 결정하는 것이 하나의 움직임 벡터, 또는 3개의 움직임 벡터, 또는 계산 벡터 그룹의 모든 움직임 벡터를 결정하는 것일 수 있다. 인코더 측에 의해 결정된 움직임 벡터의 개수에 따라, 디코더 측 역시 그에 따라 대응하는 움직임 벡터의 개수를 결정한다. 본 발명은 이에 제한되지 않는다.
본 발명의 본 실시예에서, 디코딩 장치의 제1 결정 모듈(410)이 수신된 비트스트림에 따라 현재 디코딩 블록의 움직임 모델 전송 벡터와 움직임 벡터 그룹을 결정할 수 있다. 구체적으로, 디코더 측이 수신된 비트스트림에 따라 현재 디코딩 블록의 움직임 모델 전송 벡터를 먼저 결정할 수 있다. 이 움직임 모델 전송 벡터의 모든 성분은 움직임 모델 초기화 벡터와 움직임 모델 최적화 벡터 간의 차이일 수 있다. 또는, 움직임 모델 전송 벡터의 일부 성분이 움직임 모델 초기화 벡터와 움직임 모델 최적화 벡터 간의 차이이고, 일부 성분은 움직임 모델 최적화 벡터의 대응하는 위치에서의 성분이다. 본 발명은 이에 제한되지 않는다.
선택적으로, 일 실시예에서, 아핀 움직임이 예로서 사용된다. 제1 결정 모듈(410)이 현재 디코딩 블록의 움직임 벡터 그룹을 결정하고, 이 움직임 벡터 그룹이 3개의 움직임 벡터를 포함하는 경우, 계산 벡터 그룹의 적어도 하나의 움직임 벡터가 비트스트림에 따라 먼저 결정될 수 있다. 구체적으로, 디코딩 장치의 제1 결정 모듈(410)이 이 움직임 모델 전송 벡터의 일부 성분이 움직임 모델 초기화 벡터와 움직임 모델 최적화 벡터 간의 차이라고 결정하는 경우, 또한 일부 성분이 움직임 모델 최적화 벡터의 대응하는 위치에서의 성분이라고 결정하는 경우, 디코더 측이 비트스트림에 따라 계산 벡터 그룹의 적어도 하나의 움직임 벡터를 결정할 수 있다. 디코더 측이 비디오 비트스트림을 인코딩하고, 현재 디코딩 블록의 타깃 후보 블록을 결정하며, 이 타깃 후보 블록의 움직임 벡터 및 이 타깃 후보 블록의 참조 프레임을 결정한다. 디코더 측이 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트(POC) 및 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트(POC)를 개별적으로 획득하고; 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트(POC)에 대한 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트(POC)의 비율이 스케일링 이후의 움직임 벡터에 대한 스케일링 이전의 움직임 벡터의 비율과 동일할 수 있도록, 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트(POC)에 대한 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트(POC)의 비율에 따라 이 타깃 후보 블록의 움직임 벡터에 대해 스케일링을 수행하고; 그 다음에, 스케일링된 움직임 벡터를 현재 디코딩 블록의 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정한다. 이 타깃 후보 블록의 움직임 벡터에 대한 제1 움직임 벡터의 비율은 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율과 동일하다.
선택적으로, 일 실시예에서, 아핀 움직임이 예로서 사용된다. 제1 결정 모듈(410)이 현재 디코딩 블록의 움직임 벡터 그룹을 결정한다. 이 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하고, 이 움직임 벡터 그룹의 각각의 움직임 벡터가 비트스트림에 따라 결정될 수 있다. 구체적으로, 움직임 모델 전송 벡터의 모든 성분이 움직임 모델 초기화 벡터와 움직임 모델 최적화 벡터 간의 차이일 수 있다고 결정하는 경우, 디코더 측의 제1 결정 모듈(410)이 비트스트림에 따라 이 움직임 벡터 그룹의 각각의 움직임 벡터를 결정할 수 있다. 현재 디코딩 블록의 타깃 후보 블록이 이 비트스트림 내의 인덱스 값에 따라 먼저 결정될 수 있다. 이 타깃 후보 블록의 참조 프레임이 현재 디코딩 블록의 참조 프레임으로서 결정된다. 이 타깃 후보 블록의 움직임 벡터가 현재 디코딩 블록의 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정된다.
본 발명의 본 실시예에서, 현재 디코딩 블록의 움직임 벡터 그룹 내의 제1 움직임 벡터를 결정하는 단계 이후에, 제1 결정 모듈(410)이 제1 움직임 벡터에 따라 현재 디코딩 블록의 움직임 벡터 그룹 내의 제2 움직임 벡터를 결정한다. 제2 움직임 벡터는 제1 움직임 벡터와는 다른, 이 움직임 벡터 그룹 내의 움직임 벡터이다. 구체적으로, 현재 디코딩 블록의 복수의 후보 블록이 현재 디코딩 블록 주변의 이웃하는 디코딩된 블록 중에서 먼저 결정된다. 이 복수의 후보 블록은 동일한 화소에 대응하고 있다. 선택적으로, 이 화소가 현재 디코딩 블록의 꼭지점일 수 있다. 예를 들어, 도 2에 도시된 바와 같이, 현재 디코딩 블록의 경우, 이 후보 블록이 D와 E를 포함할 수 있고, 복수의 후보 블록은 결정된 제1 움직임 벡터의 타깃 후보 블록을 포함하지 않는다. 그 다음에, 각각의 후보 블록의 참조 프레임이 결정된다. 이 후보 블록의 참조 프레임이 제1 움직임 벡터에 대응하는 타깃 후보 블록의 참조 프레임과 동일한 프레임이 아니면, 즉 현재 디코딩 블록의 참조 프레임이면, 이 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 현재 블록의 참조 프레임의 픽쳐 오더 카운트의 비율이 움직임 벡터들 간의 비율과 동일할 수 있도록, 후보 블록의 참조 프레임의 픽쳐 오더 카운트(POC)에 대한 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트(POC)의 비율에 따라 이 후보 블록의 움직임 벡터에 대해 스케일링이 수행된다. 스케일링된 각각의 후보 블록의 움직임 벡터가 제1 움직임 벡터와 개별적으로 비교된다. 후보 블록의 스케일링된 움직임 벡터는 제1 움직임 벡터와는 다르고, 그 차이가 가장 작은 경우, 이 후보 블록이 현재 디코딩 블록의 타깃 후보 블록으로서 결정되고, 이 타깃 후보 블록에 대응하는 스케일링된 움직임 벡터가 현재 디코딩 블록의 움직임 벡터 그룹 내의 제2 움직임 벡터로서 결정된다.
본 발명의 본 실시예에서, 전술한 방법에 따라, 제1 결정 모듈(410)이 복수의 제2 움직임 벡터를 결정할 수 있다. 예를 들어, 현재 디코딩 블록의 움직임 벡터 그룹이 3개의 움직임 벡터를 포함하는 경우, 이 움직임 벡터 그룹 내의 제1 움직임 벡터가 결정된 후에, 다른 2개의 제2 움직임 벡터가 전술한 방법에 따라 결정될 수 있고, 추가적으로 이 움직임 벡터 그룹의 각각의 움직임 벡터가 결정된다. 하지만, 본 발명은 이에 제한되지 않는다.
선택적으로, 본 발명의 일 실시예에서, 일 실시 형태에서, 아핀 움직임이 예로서 사용된다. 제1 결정 모듈(410)이 현재 디코딩 블록의 움직임 벡터 그룹을 결정한다. 이 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하고, 이 움직임 벡터 그룹의 각각의 움직임 벡터가 비트스트림에 따라 추가로 결정될 수 있다. 구체적으로, 움직임 모델 전송 벡터의 모든 성분이 움직임 모델 초기화 벡터와 움직임 모델 최적화 벡터 간의 차이일 수 있다고 결정하는 경우, 디코더 측이 비트스트림에 따라 이 움직임 벡터 그룹의 각각의 움직임 벡터를 결정할 수 있고, 이 비트스트림에 따라 현재 디코딩 블록의 움직임 벡터 그룹의 각각의 움직임 벡터 값을 직접 획득한다. 또한, 움직임 벡터 그룹 내의 모든 움직임 벡터에 대응하는 현재 디코딩 블록의 타깃 후보 블록이 동일한 참조 프레임을 가지며, 이 참조 프레임은 현재 디코딩 블록의 참조 프레임이다.
본 발명의 본 실시예에서, 제2 결정 모듈(420)이 이 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 현재 디코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정한다. 이 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함한다. 제1 성분 세트는 움직임 모델 초기화 벡터의 적어도 하나의 성분을 포함한다. 구체적으로, 아핀 움직임 모델이 예로서 사용된다. 아핀 모델은 6개의 파라미터를 이용하여 나타낼 수 있고, 6개의 파라미터는
Figure 112017089288300-pct00320
로서 표현될 수 있다. 현재 디코딩 블록 내의 각각의 화소의 참조 프레임 내 위치가 수식 (7)에 따라 결정될 수 있다. 여기서, x와 y는 현재 디코딩 블록 내의 임의의 화소의 좌표값이고,
Figure 112017089288300-pct00321
Figure 112017089288300-pct00322
는 이 화소의 참조 프레임 내의 대응하는 예측 포인트에서의 좌표값이며,
Figure 112017089288300-pct00323
Figure 112017089288300-pct00324
는 현재 디코딩 블록 내의 임의의 화소의 움직임 벡터이다. 수식 (8)이 얻어질 수 있다. S210에서 결정된 움직임 벡터 그룹에 따라, 이 움직임 벡터 그룹은
Figure 112017089288300-pct00325
로서 표현될 수 있고, 이 움직임 벡터 그룹 내의 움직임 벡터의 좌표가 (0,0), (W,0), 및 (0,H)일 수 있다. 여기서, W는 현재 디코딩 블록의 폭이고, H는 현재 디코딩 블록의 높이이다. 이 움직임 벡터 그룹과 좌표를 수식 (8)에 대입하여 수식 (9)가 얻어질 수 있다. 여기서,
Figure 112017089288300-pct00326
는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터
Figure 112017089288300-pct00327
의 x-방향 성분이고,
Figure 112017089288300-pct00328
는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터
Figure 112017089288300-pct00329
의 y-방향 성분이며, j=0, 1, 2이다. 따라서, 아핀 움직임 모델
Figure 112017089288300-pct00330
에서의 모든 파라미터가 얻어질 수 있다. 수식 (6)에 나타낸 바와 같이, 현재 디코딩 블록의 움직임 벡터 그룹이 수식 (6)에 대입되고, 현재 디코딩 블록의 움직임 모델 초기화 벡터
Figure 112017089288300-pct00331
가 결정될 수 있다. 이 움직임 모델 초기화 벡터는 6차원 벡터이다. 선택적으로, 다른 움직임 모델의 경우, 이 초기화 벡터가 적어도 4개의 차원을 포함하는 벡터이다. 제1 성분 세트의 예측값이 이 움직임 모델 초기화 벡터에 따라 결정될 수 있다. 제1 성분 세트의 예측값은 이 움직임 모델 초기화 벡터의 적어도 하나의 성분일 수 있다.
본 발명의 본 실시예에서, 디코더 측이 움직임 모델 최적화 벡터에 따라 디코딩을 수행할 수 있도록, 제3 결정 모듈(430)이 제1 성분 세트의 예측값 및 움직임 모델 전송 벡터에 따라 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정한다. 구체적으로, 현재 디코딩 블록의 움직임 모델 전송 값이
Figure 112017089288300-pct00332
로서 표현될 수 있다.
Figure 112017089288300-pct00333
Figure 112017089288300-pct00334
은 제1 성분 세트의 전송 값을 나타낼 수 있고,
Figure 112017089288300-pct00335
이며,
Figure 112017089288300-pct00336
이다. 여기서,
Figure 112017089288300-pct00337
Figure 112017089288300-pct00338
는 제1 성분 세트의 예측값
Figure 112017089288300-pct00339
Figure 112017089288300-pct00340
이 양자화된 후에 획득되는 수치 값이다. 현재 디코딩 블록의 다른 파라미터 전송 값이
Figure 112017089288300-pct00341
로서 표현될 수 있고,
Figure 112017089288300-pct00342
가 결정될 수 있으며,
Figure 112017089288300-pct00343
는 현재 디코딩 블록의 움직임 모델 최적화 벡터이다.
본 발명의 본 실시예에서, 제1 성분 세트의 양자화된 예측값
Figure 112017089288300-pct00344
Figure 112017089288300-pct00345
을 결정하기 위해, 제3 결정 모듈(430)이 제1 성분 세트의 예측값
Figure 112017089288300-pct00346
Figure 112017089288300-pct00347
을 양자화할 수 있다. 구체적으로, 아핀 움직임이 예로서 사용된다. 움직임 모델 초기화 벡터가 수식 (6)에 따라 결정된다. 이 움직임 모델 초기화 벡터에서,
Figure 112017089288300-pct00348
Figure 112017089288300-pct00349
은 병진 운동 파라미터이고, 이 움직임 벡터 그룹 내의 제1 움직임 벡터
Figure 112017089288300-pct00350
와 관련되어 있다.
Figure 112017089288300-pct00351
Figure 112017089288300-pct00352
은 제1 성분 세트로서 결정될 수 있다. 선택적으로, 2개의 파라미터의 양자화 정밀도가 1/16 또는 1/4일 수 있다. 1/16이 예로서 사용된다. 먼저,
Figure 112017089288300-pct00353
의 정밀도가 1/4에서 1/16로 높아질 수 있도록,
Figure 112017089288300-pct00354
이 4배 스케일업되고; 그 다음에,
Figure 112017089288300-pct00355
Figure 112017089288300-pct00356
를 획득하기 위해 정밀도가 역시 1/16인 양자화된
Figure 112017089288300-pct00357
Figure 112017089288300-pct00358
가 정밀도가 1/16인
Figure 112017089288300-pct00359
을 이용하여 계산된다. 즉,
Figure 112017089288300-pct00360
Figure 112017089288300-pct00361
은 제1 성분 세트의 양자화된 예측값이다.
선택적으로, 일 실시예에서, 제3 결정 모듈(430)이 수식 (6)에 따라 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값
Figure 112017089288300-pct00362
를 결정할 수 있다. 제1 성분 세트는 이 움직임 모델 초기화 벡터의 모든 컴포넌트를 포함한다. 즉, 제1 성분 세트는 6개의 파라미터를 포함하고, 그래서 현재 디코딩 블록의 움직임 모델 전송 값이 결정된다. 즉, 제1 성분 세트의 전송 값이
Figure 112017089288300-pct00363
이다. 여기서,
Figure 112017089288300-pct00364
이고,
Figure 112017089288300-pct00365
는 현재 디코딩 블록의 움직임 모델 최적화 벡터이다.
본 발명의 본 실시예에서, 제3 결정 모듈(430)이 현재 디코딩 블록에 따라 움직임 모델 양자화 정밀도를 결정하고; 이 움직임 모델 양자화 정밀도에 따라 움직임 모델 최적화 벡터를 양자화하며; 이 양자화된 움직임 모델 최적화 벡터에 따라 현재 디코딩 블록에 대해 파싱, 디코딩 및 복원을 수행할 수 있다.
구체적으로, 제3 결정 모듈(430)이 현재 디코딩 블록의 움직임 모델 양자화 정밀도를 결정한다. 구체적으로, 이 양자화 정밀도는 현재 디코딩 블록의 크기 및 정밀도 정보에 따라 결정될 수 있다. 현재 디코딩 블록의 크기는 현재 디코딩 블록의 폭 및 현재 디코딩 블록의 높이를 포함하고, 정밀도 정보는 움직임 벡터 그룹의 양자화 정밀도를 포함한다. 구체적으로, 수식 (6)에 따라, 움직임 모델의 파라미터가 현재 디코딩 블록의 폭과 높이와 관련되어 있음을 알 수 있을 것이다. 따라서, 양자화 정밀도가 수식 (10)에 따라 결정될 수 있다. 1/P이 현재 디코딩 블록의 움직임 벡터 그룹의 양자화 정밀도이다. 선택적으로, 움직임 벡터 그룹의 양자화 정밀도가 일반적으로 1/4이고, 그래서 P=4이다. W는 현재 디코딩 블록의 폭이고, H는 현재 디코딩 블록의 높이이다. 예를 들어, 현재 디코딩 블록의 폭이 16이고 높이가 32이면, 이 움직임 벡터 그룹의 양자화 정밀도가 1/(32×4)=1/128이고; 현재 디코딩 블록의 폭이 16이고 높이가 8이면, 양자화 정밀도가 1/(16×4)=1/64이다.
구체적으로, 본 발명의 본 실시예에서, 제3 결정 모듈(430)이, 결정되는 양자화 정밀도에 따라 결정된 움직임 모델 최적화 벡터를 양자화하여, 양자화된 움직임 모델 최적화 벡터
Figure 112017089288300-pct00366
를 얻는다.
구체적으로, 본 발명의 본 실시예에서, 제3 결정 모듈(430)이 양자화된 움직임 모델 최적화 벡터에 따라 현재 디코딩 블록을 인코딩한다. 구체적으로, 이 움직임 모델 최적화 벡터
Figure 112017089288300-pct00367
가 수식 (7)에 대입되고, 그 다음에 현재 디코딩 블록 내에서 정밀도 Q를 가진 각각의 화소의 참조 오프셋 위치
Figure 112017089288300-pct00368
가 얻어질 수 있다. 현재 디코딩 블록 내의 각각의 화소 샘플의 예측 화소 샘플이 참조 오프셋 위치에서 계산을 통해 얻어진다. 그 다음에, 현재 디코딩 블록의 수신된 비트스트림 내의 결정된 예측 잔차에 따라 이 예측 화소 샘플에 대해 디코딩 및 복원이 수행된다. 선택적으로, 이 화소 샘플이 하나의 화소 또는 복수의 화소를 포함하는 작은 화소 블록일 수 있다. 본 발명은 이에 제한되지 않는다.
이에 따라, 본 발명의 본 실시예에 따른 디코딩 장치(400)가 본 발명의 실시예의 비디오 이미지 디코딩 방법(200)를 실행하도록 구성될 수 있다는 것을 이해해야 한다. 또한, 디코딩 장치(400) 내의 모듈의 전술한 동작과 다른 동작 및/또는 기능은 도 3과 도 4의 비디오 이미지 디코딩 방법의 대응하는 프로세스를 구현하고자 하는 것이다. 간략화를 위해, 여기서는 세부사항을 추가로 설명하지 않는다.
따라서, 본 발명의 본 실시예의 디코딩 장치가 수신된 비트스트림에 따라 현재 디코딩 블록의 움직임 벡터 그룹과 움직임 모델 전송 벡터를 결정하고; 이 움직임 벡터 그룹에 따라 현재 디코딩 블록의 움직임 모델 초기화 벡터를 결정하며; 이 움직임 모델 초기화 벡터 및 움직임 모델 전송 벡터에 따라 움직임 모델 최적화 벡터를 결정하고; 이 움직임 모델 최적화 벡터를 인코딩하고 재구성한다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다. 또한, 이 움직임 모델 최적화 벡터가 결정되고 이 최적화 벡터가 양자화되는 경우에, 결정되는 양자화 정밀도는 현재 디코딩 블록의 크기 및 현재 디코딩 블록의 움직임 벡터의 양자화 정밀도에 따라 결정된다. 이로 인해 파라미터 전송에 필요한 비트의 수가 줄어들 수도 있다.
도 7에 도시된 바와 같이, 본 발명의 일 실시예는 프로세서(510), 메모리(520), 및 버스 시스템(530)을 포함하는 인코딩 장치(500)를 추가로 제공한다. 프로세서(510)와 메모리(520)는 버스 시스템(530)를 이용하여 연결된다. 메모리(520)는 명령을 저장하도록 구성된다. 프로세서(510)는 메모리(520)에 저장된 명령을 실행하도록 구성된다. 인코딩 장치(500)의 메모리(520)는 프로그램 코드를 저장하고 있고, 프로세서(510)는 메모리에 저장된 프로그램 코드(520)를 호출함으로써 현재 인코딩 블록의 움직임 벡터 그룹을 결정하고 - 여기서, 이 움직임 벡터 그룹은 현재 인코딩 블록의 적어도 하나의 움직임 벡터를 포함하고 있음 -; 이 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 현재 인코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정하며 - 여기서, 이 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함하고 있음 -; 제1 성분 세트의 예측값에 따라 제1 성분 세트의 전송될 값을 결정하고; 제1 성분 세트의 전송될 값을 인코딩하고, 제1 성분 세트의 인코딩된 전송될 값을 디코더 측에 전송하는 동작을 수행한다.
따라서, 본 발명의 본 실시예의 인코딩 장치가 현재 인코딩 블록의 움직임 벡터 그룹을 결정하고; 이 움직임 벡터 그룹에 따라 현재 인코딩 블록의 움직임 모델 초기화 벡터를 결정하며; 이 움직임 모델 초기화 벡터에 따라 움직임 모델의 전송될 값을 결정하고; 디코더 측이 이 움직임 모델의 전송될 값에 따라 디코딩을 수행할 수 있도록, 전송을 위한 움직임 모델의 전송될 값을 인코딩한다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다.
본 발명의 본 실시예에서, 프로세서(510)가 중앙처리장치(Central Processing Unit, CPU)일 수 있거나, 또는 프로세서(510)가 다른 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 반도체(ASIC), 필드 프로그래머블 게이트 어레이(FPGA)나 다른 프로그램 가능한 로직 장치, 디스크리트 게이트(discrete gate) 또는 트랜지스터 논리적인 장치, 또는 독립된 하드웨어 어셈블리 등 일 수 있음을 이해해야 한다. 이 범용 프로세서는 마이크로프로세서일 수 있거나, 또는 이 프로세서는 어떤 기존의 프로세서 또는 이와 유사한 것일 수 있다.
메모리(520)는 읽기 전용 메모리 및 랜덤 액세스 메모리를 포함할 수 있고, 프로세서(510)를 위한 명령 및 데이터를 제공한다. 메모리(520) 중 일부가 비휘발성 랜덤 액세스 메모리를 더 포함할 수 있다. 예를 들어, 메모리(520)는 장치 유형 정보를 추가로 저장하고 있을 수 있다.
데이터 버스 외에도, 버스 시스템(530)은 전원 버스, 제어버스, 및 상태 신호 버스 등을 더 포함할 수 있다. 하지만, 명확한 설명을 위해, 도면에서의 버스 시스템(530)이 다양한 버스를 나타낸다.
구현 과정에서, 전술한 방법의 단계가 프로세서(510) 내의 하드웨어의 통합 로직 회로를 이용하여 구현되거나 또는 소프트웨어의 형태의 명령을 이용하여 구현될 수 있다. 본 발명의 실시예를 참조하여 개시되는 방법의 단계가 하드웨어 프로세서에 의해 직접 구현될 수 있거나, 또는 프로세서 내의 하드웨어와 소프트웨어의 모듈의 조합에 의해 구현될 수 있다. 이 소프트웨어 모듈은 당해 분야에서 성숙한 저장 매체, 예컨대 랜덤 액세스 메모리, 플래쉬 메모리, 읽기 전용 메모리, 피롬(programmable ROM), 전기적 소거 가능한 프로그램 가능 메모리, 또는 레지스터에 위치하고 있을 수 있다. 이 저장 매체는 메모리(520)에 위치하고, 프로세서(510)는 프로세서(501)의 하드웨어와 결합하여 메모리(520)로부터 정보를 읽고 전술한 방법의 단계를 구현한다. 중복을 피하기 위하여, 여기서는 세부사항에 대해 추가로 설명하지 않는다.
선택적으로, 일 실시예에서, 프로세서(510)가 메모리에 저장된 프로그램 코드(520)을 호출함으로써, 현재 인코딩 블록의 움직임 모델 최적화 벡터를 결정하고; 제1 성분 세트의 예측값 및 이 움직임 모델 최적화 벡터에 따라 제1 성분 세트의 전송될 값을 결정하는 동작을 수행할 수 있다.
선택적으로, 일 실시예에서, 프로세서(510)가 메모리에 저장된 프로그램 코드(520)을 호출함으로써, 정밀도 정보 및 현재 인코딩 블록의 크기에 따라 움직임 모델 양자화 정밀도를 결정하고; 이 움직임 모델 양자화 정밀도에 따라 움직임 모델 최적화 벡터를 양자화하며; 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 제1 성분 세트의 전송될 값을 결정하는 동작을 수행할 수 있다.
선택적으로, 일 실시예에서, 현재 인코딩 블록의 크기가 현재 인코딩 블록의 폭 및 현재 인코딩 블록의 높이를 포함하고, 정밀도 정보가 움직임 벡터 그룹의 양자화 정밀도를 포함한다. 프로세서(510)는 메모리에 저장된 프로그램 코드(520)을 호출함으로써, 수식 (10)에 따라 움직임 모델 양자화 정밀도 Q를 결정하는 동작을 수행한다. 여기서, P는 움직임 벡터 그룹의 양자화 정밀도이고, W는 현재 인코딩 블록의 폭이며, H는 현재 인코딩 블록의 높이이다.
선택적으로, 일 실시예에서, 제1 성분 세트가 움직임 모델 초기화 벡터의 6개의 성분 중 적어도 하나의 성분을 포함하고, 프로세서(510)가 메모리에 저장된 프로그램 코드(520)을 호출함으로써, 수식 (6)에 따라 움직임 모델 초기화 벡터의 6개의 성분
Figure 112017089288300-pct00369
를 결정하는 동작을 수행한다. 여기서, i=0, 1, 2, 3, 4, 5이고, W는 현재 인코딩 블록의 폭이며, H는 현재 인코딩 블록의 높이이고,
Figure 112017089288300-pct00370
는 움직임 벡터
Figure 112017089288300-pct00371
의 x-방향 성분이며,
Figure 112017089288300-pct00372
는 움직임 벡터
Figure 112017089288300-pct00373
의 y-방향 성분이고, j=0, 1, 2이다.
선택적으로, 일 실시예에서, 제1 성분 세트가 움직임 모델 초기화 벡터의 2개의 성분을 포함하고, 프로세서(510)가 메모리에 저장된 프로그램 코드(520)을 호출함으로써, 제1 성분 세트의 전송될 값을 결정하는 동작을 수행한다. 여기서, 제1 성분 세트의 전송될 값이
Figure 112017089288300-pct00374
Figure 112017089288300-pct00375
를 포함하고,
Figure 112017089288300-pct00376
이며,
Figure 112017089288300-pct00377
이고,
Figure 112017089288300-pct00378
Figure 112017089288300-pct00379
는 제1 성분 세트에 대응하는 양자화된 움직임 모델 최적화 벡터이며,
Figure 112017089288300-pct00380
Figure 112017089288300-pct00381
은 제1 성분 세트의 예측값
Figure 112017089288300-pct00382
Figure 112017089288300-pct00383
이 양자화된 후에 획득되는 수치 값이다.
선택적으로, 일 실시예에서, 제1 성분 세트가 움직임 모델 초기화 벡터의 6개의 성분을 포함하고, 프로세서(510)가 메모리에 저장된 프로그램 코드(520)을 호출함으로써, 제1 성분 세트의 전송될 값을 결정하는 동작을 수행한다. 여기서, 제1 성분 세트의 전송될 값은
Figure 112017089288300-pct00384
를 포함하고, i= 0, 1, 2, 3, 4, 5이며,
Figure 112017089288300-pct00385
이고,
Figure 112017089288300-pct00386
는 양자화된 움직임 모델 최적화 벡터이며,
Figure 112017089288300-pct00387
는 제1 성분 세트의 예측값이다.
선택적으로, 일 실시예에서, 프로세서(510)가 메모리에 저장된 프로그램 코드(520)을 호출함으로써, 현재 인코딩 블록의 복수의 후보 블록을 결정하고 - 여기서, 이 복수의 후보 블록의 각각의 후보 블록은 현재 인코딩 블록에 인접한 인코딩된 블록임 -; 이 복수의 후보 블록의 각각의 후보 블록의 움직임 벡터에 대응하는 예측 블록과 현재 인코딩 블록 간의 매칭 에러값을 결정하며; 복수의 후보 블록에 대응하는 복수의 매칭 에러값 중에서 가장 작은 매칭 에러값에 대응하는 후보 블록을, 현재 인코딩 블록의 타깃 후보 블록으로서 결정하고; 현재 인코딩 블록의 참조 프레임의 픽쳐 오더 카운트 및 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트를 획득하며; 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 현재 인코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율에 따라 움직임 벡터 그룹 내의 제1 움직임 벡터를 결정하고 - 여기서, 이 타깃 후보 블록의 움직임 벡터에 대한 제1 움직임 벡터의 비율은 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 현재 인코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율과 동일함 -; 제1 움직임 벡터에 따라 움직임 벡터 그룹을 결정하는 동작을 수행한다.
선택적으로, 일 실시예에서, 프로세서(510)가 메모리에 저장된 프로그램 코드(520)을 호출함으로써, 현재 인코딩 블록 내의 동일한 화소에 대응하는 복수의 후보 블록을 결정하고 - 여기서, 이 복수의 후보 블록의 각각의 후보 블록은 현재 인코딩 블록에 인접한 인코딩된 블록임 -; 이 복수의 후보 블록의 각각의 후보 블록의 움직임 벡터에 대응하는 예측 블록과 현재 인코딩 블록 간의 매칭 에러값을 결정하며; 이 복수의 후보 블록에 대응하는 복수의 매칭 에러값 중에서 가장 작은 매칭 에러값에 대응하는 후보 블록을, 현재 인코딩 블록의 타깃 후보 블록으로서 결정하고; 이 타깃 후보 블록의 움직임 벡터를 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정하고; 제1 움직임 벡터에 따라 움직임 벡터 그룹 내의 제2 움직임 벡터를 결정하며; 제1 움직임 벡터 및 제2 움직임 벡터에 따라 움직임 벡터 그룹을 결정하는 동작을 수행한다.
선택적으로, 일 실시예에서, 프로세서(510)가 메모리에 저장된 프로그램 코드(520)을 호출함으로써, 현재 인코딩 블록의 복수의 후보 움직임 벡터 그룹을 결정하고 - 여기서, 이 복수의 후보 움직임 벡터 그룹의 각각의 후보 움직임 벡터 그룹은 3개의 후보 움직임 벡터를 포함하고 있음 -; 이 복수의 후보 움직임 벡터 그룹의 각각의 후보 움직임 벡터 그룹에 대응하는 후보 참조 프레임을 결정하며; 각각의 후보 움직임 벡터 그룹에 대해서, 이 후보 참조 프레임 내의 대응하는 예측 포인트에서, 현재 인코딩 블록 내의 각각의 화소의 좌표값을 결정하고; 각각의 후보 움직임 벡터 그룹에 대해서, 이 후보 참조 프레임 내의 대응하는 예측 포인트에서, 현재 인코딩 블록 내의 각각의 화소의 좌표값 및 현재 인코딩 블록 내의 각각의 화소의 좌표값에 따라 현재 인코딩 블록의 매칭 에러값을 결정하며; 현재 인코딩 블록의 가장 작은 매칭 에러값에 대응하는 후보 움직임 벡터 그룹을 현재 인코딩 블록의 움직임 벡터 그룹으로서 결정하는 동작을 수행한다. 선택적으로, 일 실시예에서, 프로세서(510)가 메모리에 저장된 프로그램 코드(520)을 호출함으로써, 움직임 모델 초기화 벡터에 따라 현재 인코딩 블록의 제1 예측 블록을 결정하고; 현재 인코딩 블록과 제1 예측 블록 간의 제1 매칭 에러값을 결정하며; 현재 인코딩 블록의 참조 프레임에 포함된 복수의 예측 블록 중에서, 현재 인코딩 블록에 대해 가장 작은 매칭 에러값을 가진 제2 예측 블록을 결정하고; 현재 인코딩 블록과 제2 예측 블록 간의 제2 매칭 에러값을 결정하며; 및 제1 매칭 에러값 및 제2 매칭 에러값에 따라 현재 인코딩 블록의 움직임 모델 최적화 벡터를 결정하는 동작을 수행한다.
선택적으로, 일 실시예에서, 프로세서(510)가 메모리에 저장된 프로그램 코드(520)을 호출함으로써, 제1 매칭 에러값이 제2 매칭 에러값보다 작은 경우, 움직임 모델 초기화 벡터를 움직임 모델 최적화 벡터로서 결정하거나; 또는 제1 매칭 에러값이 제2 매칭 에러값보다 큰 경우, 제2 예측 블록의 화소 및 현재 인코딩 블록의 화소에 따라 움직임 모델 최적화 벡터를 결정하는 동작을 수행한다.
본 발명의 본 실시예에 따른 인코딩 장치(500)가 본 발명의 실시예의 인코딩 장치(300)에 대응하고 있을 수 있고, 본 발명의 실시예의 방법(100)를 실행하는 대응하는 본체에 대응하고 있을 수 있음을 이해해야 한다 또한, 인코딩 장치(500) 내의 모듈의 전술한 동작과 다른 동작 및/또는 기능은 도 1과 도 2의 방법의 대응하는 과정을 구현하고자 하는 것이다. 간략화를 위해, 여기서는 세부사항을 추가로 설명하지 않는다.
따라서, 본 발명의 본 실시예의 인코딩 장치가 현재 인코딩 블록의 움직임 벡터 그룹을 결정하고; 이 움직임 벡터 그룹에 따라 현재 인코딩 블록의 움직임 모델 초기화 벡터를 결정하며; 이 움직임 모델 초기화 벡터에 따라 움직임 모델의 전송될 값을 결정하고; 디코더 측이 이 움직임 모델의 전송될 값에 따라 디코딩을 수행할 수 있도록, 전송을 위한 움직임 모델의 전송될 값을 인코딩한다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다. 또한, 이 움직임 모델 최적화 벡터가 결정되고 최적화 벡터가 양자화되는 경우에, 결정되는 양자화 정밀도가 현재 인코딩 블록의 크기 및 현재 인코딩 블록의 움직임 벡터의 양자화 정밀도에 따라 결정된다. 이로 인해 인코딩 파라미터에 필요한 비트의 수를 줄일 수도 있다.
도 8에 도시된 바와 같이, 본 발명의 일 실시예는 프로세서(610), 메모리(620), 및 버스 시스템(630)을 포함하는 디코딩 장치(600)를 추가로 제공한다. 프로세서(610)와 메모리(620)는 버스 시스템(630)을 이용하여 연결된다. 메모리(620)은 명령을 저장하도록 구성된다. 프로세서(610)는 메모리(620)에 저장된 명령을 실행하도록 구성된다. 디코딩 장치(600)의 메모리(620)는 프로그램 코드를 저장하고, 프로세서(610)는 메모리에 저장된 프로그램 코드(620)를 호출함으로써, 비트스트림에 따라 현재 디코딩 블록의 움직임 벡터 그룹과 움직임 모델 전송 벡터를 결정하고 - 여기서, 이 움직임 벡터 그룹은 현재 디코딩 블록의 적어도 하나의 움직임 벡터를 포함하고, 이 움직임 모델 전송 벡터는 적어도 4개의 성분을 포함하고 있음 -; 이 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 현재 디코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정하며 - 여기서, 이 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함하고 있음 -; 이 움직임 모델 최적화 벡터에 따라 현재 디코딩 블록을 디코딩할 수 있도록, 제1 성분 세트의 예측값 및 움직임 모델 전송 벡터에 따라 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정하는 동작을 수행할 수 있다.
따라서, 본 발명의 본 실시예의 디코딩 장치가 수신된 비트스트림에 따라 현재 디코딩 블록의 움직임 벡터 그룹과 움직임 모델 전송 벡터를 결정하고; 이 움직임 벡터 그룹에 따라 현재 디코딩 블록의 움직임 모델 초기화 벡터를 결정하며; 이 움직임 모델 초기화 벡터 및 이 움직임 모델 전송 벡터에 따라 움직임 모델 최적화 벡터를 결정하고; 이 움직임 모델 최적화 벡터를 인코딩하고 재구성한다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다.
본 발명의 본 실시예에서, 프로세서(610)가 중앙처리장치(Central Processing Unit, CPU)일 수 있거나, 또는 프로세서(610)가 다른 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 반도체(ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 또는 다른 프로그램 가능한 로직 장치, 디스크리트 게이트(discrete gate) 또는 트랜지스터 논리적인 장치, 또는 독립된 하드웨어 어셈블리 등일 수 있다는 것을 이해해야 한다. 이 범용 프로세서가 마이크로프로세서일 수 있거나, 또는 이 프로세서가 어떤 기존의 프로세서 또는 이와 유사한 것일 수 있다.
메모리(620)는 읽기 전용 메모리 및 랜덤 액세스 메모리를 포함할 수 있고, 프로세서(610)를 위한 명령과 데이터를 제공한다. 메모리(620) 중 일부가 비휘발성 랜덤 액세스 메모리를 더 포함할 수 있다. 예를 들어, 메모리(620)는 장치 유형 정보를 더 저장할 수 있다.
데이터 버스 외에도, 버스 시스템(630)은 전원 버스, 제어버스, 및 상태 신호 버스 등을 더 포함할 수 있다. 하지만, 명확한 설명을 위해, 도면에서의 버스 시스템(630)은 다양한 버스를 나타낸다.
구현 과정에서, 전술한 방법의 단계가 프로세서(610) 내의 하드웨어의 통합 로직 회로를 이용하여 또는 소프트웨어의 형태의 명령을 이용하여 구현될 수 있다. 본 발명의 실시예를 참조하여 개시되는 방법의 단계가 하드웨어 프로세서에 의해 직접 구현될 수 있거나, 또는 프로세서 내의 하드웨어와 소프트웨어의 모듈의 조합에 의해 구현될 수 있다. 이 소프트웨어 모듈은 당해 분야에서 성숙한 저장 매체, 예컨대 랜덤 액세스 메모리, 플래쉬 메모리, 읽기 전용 메모리, 피롬(programmable ROM), 전기적 소거 가능한 프로그램 가능 메모리, 또는 레지스터에 위치하고 있을 수 있다. 이 저장 매체는 메모리(620)에 위치하고, 프로세서(610)는 메모리(620)로부터 정보를 읽고 프로세서(610)의 하드웨어와 결합하여 전술한 방법의 단계를 구현한다. 중복을 피하기 위하여, 여기서는 세부사항에 대해 추가로 설명하지 않는다.
선택적으로, 일 실시예에서, 프로세서(610)가 메모리에 저장된 프로그램 코드(620)를 호출함으로써, 현재 디코딩 블록의 움직임 모델 양자화 정밀도를 결정하고; 이 움직임 모델 양자화 정밀도에 따라 움직임 모델 최적화 벡터를 양자화하며; 이 양자화된 움직임 모델 최적화 벡터에 따라 현재 디코딩 블록을 디코딩하는 동작을 수행할 수 있다.
선택적으로, 일 실시예에서, 프로세서(610)가 메모리에 저장된 프로그램 코드(620)를 호출함으로써, 정밀도 정보 및 현재 디코딩 블록의 크기에 따라 움직임 모델 양자화 정밀도를 결정하는 동작을 수행할 수 있다.
선택적으로, 일 실시예에서, 현재 디코딩 블록의 크기가 현재 디코딩 블록의 폭 및 현재 디코딩 블록의 높이를 포함하고, 정밀도 정보가 움직임 벡터 그룹의 양자화 정밀도를 포함한다. 프로세서(610)는 메모리에 저장된 프로그램 코드(620)를 호출함으로써, 수식 (10)에 따라 이 움직임 모델 양자화 정밀도 Q를 결정하는 동작을 수행할 수 있다. 여기서, P는 움직임 벡터 그룹의 양자화 정밀도이고, W는 현재 디코딩 블록의 폭이며, H는 현재 디코딩 블록의 높이이다.
선택적으로, 일 실시예에서, 제1 성분 세트가 움직임 모델 초기화 벡터의 6개의 성분 중 적어도 하나의 성분을 포함하고, 프로세서(610)가 메모리에 저장된 프로그램 코드(620)를 호출함으로써, 수식 (6)에 따라 움직임 모델 초기화 벡터의 6개의 성분
Figure 112017089288300-pct00388
을 결정하는 동작을 수행할 수 있다. 여기서, i= 0, 1, 2, 3, 4, 5이고, W는 현재 디코딩 블록의 폭이며, H는 현재 디코딩 블록의 높이이고,
Figure 112017089288300-pct00389
는 움직임 벡터
Figure 112017089288300-pct00390
의 x-방향 성분이며,
Figure 112017089288300-pct00391
는 움직임 벡터
Figure 112017089288300-pct00392
의 y-방향 성분이고, j=0, 1, 2이다.
선택적으로, 일 실시예에서, 제1 성분 세트가 움직임 모델 초기화 벡터의 2개의 성분을 포함하고, 프로세서(610)가 메모리에 저장된 프로그램 코드(620)를 호출함으로써, 현재 디코딩 블록의 움직임 모델 최적화 벡터가
Figure 112017089288300-pct00393
이고,
Figure 112017089288300-pct00394
이며,
Figure 112017089288300-pct00395
라고 결정하는 동작을 수행할 수 있다. 여기서,
Figure 112017089288300-pct00396
는 움직임 모델 전송 벡터이고,
Figure 112017089288300-pct00397
Figure 112017089288300-pct00398
은 제1 성분 세트의 예측값
Figure 112017089288300-pct00399
Figure 112017089288300-pct00400
을 양자화하여 획득되는 수치 값이다.
선택적으로, 일 실시예에서, 제1 성분 세트가 움직임 모델 초기화 벡터의 6개의 성분을 포함하고, 프로세서(610)가 메모리에 저장된 프로그램 코드(620)를 호출함으로써, 현재 디코딩 블록의 움직임 모델 최적화 벡터가
Figure 112017089288300-pct00401
라고 결정하는 동작을 수행할 수 있다. 여기서,
Figure 112017089288300-pct00402
이고,
Figure 112017089288300-pct00403
는 움직임 모델 전송 벡터이며,
Figure 112017089288300-pct00404
는 제1 성분 세트의 예측값이고, i= 0, 1, 2, 3, 4, 5이다.
선택적으로, 일 실시예에서, 프로세서(610)가 메모리에 저장된 프로그램 코드(620)를 호출함으로써, 비트스트림에 따라 현재 디코딩 블록의 타깃 후보 블록 및 타깃 후보 블록의 움직임 벡터를 결정하고; 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트 및 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트를 획득하며; 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율에 따라 움직임 벡터 그룹 내의 제1 움직임 벡터를 결정하고 - 여기서, 이 타깃 후보 블록의 움직임 벡터에 대한 제1 움직임 벡터의 비율은 이 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율과 동일함 -; 제1 움직임 벡터에 따라 움직임 벡터 그룹을 결정하는 동작을 수행할 수 있다.
선택적으로, 일 실시예에서, 프로세서(610)가 메모리에 저장된 프로그램 코드(620)를 호출함으로써, 비트스트림에 따라 현재 디코딩 블록의 타깃 후보 블록의 움직임 벡터를 결정하고; 현재 디코딩 블록 중 이 타깃 후보 블록의 움직임 벡터를 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정하며; 제1 움직임 벡터에 따라 움직임 벡터 그룹 내의 제2 움직임 벡터를 결정하고; 제1 움직임 벡터 및 제2 움직임 벡터에 따라 움직임 벡터 그룹을 결정하는 동작을 수행할 수 있다.
본 발명의 본 실시예에 따른 디코딩 장치(600)가 본 발명의 실시예의 디코딩 장치(400)에 대응하고 있을 수 있고, 본 발명의 실시예의 방법(200)를 실행하는 대응하는 본체에 대응하고 있을 수 있다는 것을 이해해야 한다. 또한, 디코딩 장치(600) 내의 모듈의 전술한 동작과 다른 동작 및/또는 기능은 도 3 및 도 4의 방법의 대응하는 과정을 구현하고자 하는 것이다. 간략화를 위해, 여기서는 세부사항을 추가로 설명하지 않는다.
따라서, 본 발명의 본 실시예의 디코딩 장치가 수신된 비트스트림에 따라 현재 디코딩 블록의 움직임 벡터 그룹과 움직임 모델 전송 벡터를 결정하고; 이 움직임 벡터 그룹에 따라 현재 디코딩 블록의 움직임 모델 초기화 벡터를 결정하며; 이 움직임 모델 초기화 벡터 및 이 움직임 모델 전송 벡터에 따라 움직임 모델 최적화 벡터를 결정하고; 이 움직임 모델 최적화 벡터를 인코딩하고 재구성한다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다. 또한, 이 움직임 모델 최적화 벡터가 결정되고 이 최적화 벡터가 양자화되는 경우에, 결정되는 양자화 정밀도가 현재 디코딩 블록의 크기 및 현재 디코딩 블록의 움직임 벡터의 양자화 정밀도에 따라 결정된다. 이로 인해 파라미터 전송에 필요한 비트의 수가 줄어들 수도 있다.
본 명세서에서 개시된 실시 형태를 참조하여 설명된 예에서의 유닛과 알고리즘 단계가 전자 하드웨어 또는 컴퓨터 소프트웨어와 전자 하드웨어의 조합에 의해 구현될 수 있다는 것을 당업자라면 알 수 있을 것이다. 이들 기능이 하드웨어에 의해 수행되는지 또는 소프트웨어에 의해 수행되는지 여부는 구체적인 적용 및 기술적 해결방안의 설계 제한 조건에 따라 달라진다. 당업자는 각각의 구체적인 적용을 위해 설명되는 기능을 구현하기 위해 다른 방법을 사용할 수 있지만, 이러한 구현이 본 발명의 범위를 벗어나는 것으로 간주해서는 안된다.
편리하면서도 단순하게 설명하기 위해, 전술한 시스템, 장치, 그리고 유닛의 세부적인 동작 프로세스에 대해, 전술한 방법 실시예에서의 대응하는 과정이 참조될 수 있고, 여기서는 전술한 방법 실시예에서의 대응하는 과정 및 세부사항에 대해 추가로 설명하지 않는다.
본 출원에서 제공되는 몇몇 실시예에서, 공개된 시스템, 장치, 및 방법이 다른 방식으로 구현될 수 있다고 이해하여야 한다. 예를 들어, 전술한 장치 실시예는 단지 예일 뿐이다. 예를 들어, 유닛 구분은 단지 논리적 기능 구분일 뿐이고 실제 구현에서는 이와 다르게 구분될 수 있다. 예를 들어, 복수의 유닛 또는 구성 요소는 다른 시스템으로 결합되거나 통합될 수 있거나, 또는 몇몇 특징은 무시되거나 수행되지 않을 수도 있다. 또한, 표시되거나 논의된 상호 연결 또는 직접 연결 또는 통신 연결은 간접적인 연결이거나 또는 일부 인터페이스들, 장치들, 또는 유닛들 간의 통신 연결일 수 있고, 전자적 형태, 또는 기계적 형태, 또는 다른 형태로 구현될 수 있다.
분리된 부분으로서 설명된 유닛은 물리적으로 분리되어 있을 수 있거나 또는 분리되어 있지 않을 수 있다. 유닛으로 표시된 부분은 물리적 유닛일 수 있거나 또는 물리적 유닛이 아닐 수 있으며, 하나의 위치에 위치할 수 있거나 또는 복수의 네트워크 유닛 상에 분산되어 있을 수 있다. 유닛 중 일부 또는 전부가 실시예의 해결수단의 목적을 달성하기 위한 실제 필요에 따라 선택될 수 있다.
또한, 본 발명의 실시예의 기능 유닛은 하나의 처리 유닛으로 통합될 수 있거나, 또는 각각의 유닛이 물리적으로 단독으로 존재할 수도 있거나, 또는 2개 이상의 유닛이 하나의 유닛으로 통합될 수 있다.
이 기능들이 소프트웨어 기능 유닛의 형태로 구현되어 독립적인 제품으로 판매되거나 사용되는 경우, 이 기능들은 컴퓨터 판독가능 저장매체에 저장될 수 있다. 이러한 이해를 바탕으로, 본 발명의 과제 해결수단은 본질적으로, 또는 종래 기술에 기여하는 부분은, 또는 과제 해결수단의 일부는 소프트웨어 제품의 형태로 구현될 수 있다. 이 소프트웨어 제품은 저장 매체에 저장되고, 본 발명의 실시예에서 설명된 방법의 단계 중 전부 또는 일부를 수행하도록 컴퓨터 장치(개인용 컴퓨터, 서버, 또는 네트워크 장치 등일 수 있음)에게 지시하기 위한 몇몇 명령을 포함한다 전술한 저장 매체는 프로그램 코드를 저장할 수 있는 임의의 저장 매체, 예컨대, USB 플래쉬 드라이브, 착탈식 하드디스크, 읽기 전용 메모리, 랜덤 액세스 메모리, 자기 디스크, 또는 광 디스크를 포함한다.
전술한 설명은 단지 본 발명의 특정한 구현일 뿐이지만, 본 발명의 보호 범위을 제한하고자 하는 것은 아니다. 당업자가 본 발명에서 개시되는 기술적인 보호범위 내에서 즉시 파악할 수 있는 임의의 변경 또는 대체는 본 발명의 보호 범위에 속할 것이다. 따라서, 본 발명의 보호 범위는 특허 청구 범위의 보호 범위에 따른다.

Claims (46)

  1. 비디오 이미지 디코딩 방법으로서,
    비트스트림에 따라 움직임 벡터 그룹(motion vector group) 및 현재 디코딩 블록의 움직임 모델 전송 벡터(motion model transmission vector)를 결정하는 단계 - 상기 움직임 벡터 그룹은 상기 현재 디코딩 블록의 적어도 하나의 움직임 벡터를 포함하고, 상기 움직임 모델 전송 벡터는 적어도 4개의 성분을 포함하고 있음 -;
    상기 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라, 상기 현재 디코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정하는 단계 - 상기 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함하고 있음 -; 및
    움직임 모델 최적화 벡터에 따라 상기 현재 디코딩 블록을 디코딩할 수 있도록, 상기 제1 성분 세트의 예측값 및 상기 움직임 모델 전송 벡터에 따라 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정하는 단계
    를 포함하고,
    상기 비디오 이미지 디코딩 방법은,
    상기 현재 디코딩 블록의 크기 및 정밀도 정보에 따라, 상기 현재 디코딩 블록의 움직임 모델 양자화 정밀도(motion model quantization precision)를 결정하는 단계;
    상기 움직임 모델 양자화 정밀도에 따라 상기 움직임 모델 최적화 벡터를 양자화하는 단계; 및
    양자화된 움직임 모델 최적화 벡터에 따라 상기 현재 디코딩 블록을 디코딩하는 단계
    를 더 포함하고,
    상기 현재 디코딩 블록의 크기는 상기 현재 디코딩 블록의 폭 및 상기 현재 디코딩 블록의 높이를 포함하고, 상기 정밀도 정보는 상기 움직임 벡터 그룹의 양자화 정밀도를 포함하며;
    이에 따라, 상기 현재 디코딩 블록의 크기 및 정밀도 정보에 따라 상기 움직임 모델 양자화 정밀도를 결정하는 단계는,
    상기 움직임 모델 양자화 정밀도 Q를 아래의 수식에 따라 결정하는 단계를 포함하고,
    Figure 112019007680274-pct00513

    여기서, P는 상기 움직임 벡터 그룹의 양자화 정밀도이고, W는 상기 현재 디코딩 블록의 폭이며, H는 상기 현재 디코딩 블록의 높이인, 비디오 이미지 디코딩 방법.
  2. 제1항에 있어서,
    상기 움직임 모델 초기화 벡터, 상기 움직임 모델 전송 벡터, 및 상기 움직임 모델 최적화 벡터 각각은 6개의 성분을 포함하고, 상기 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하며, 상기 3개의 움직임 벡터는 상기 현재 디코딩 블록 내의 3개의 화소와 일대일 대응관계에 있는, 비디오 이미지 디코딩 방법.
  3. 제2항에 있어서,
    상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분 중 적어도 하나의 성분을 포함하고, 상기 움직임 모델 초기화 벡터의 6개의 성분
    Figure 112019007680274-pct00514
    는 아래의 수식에 따라 결정되며,
    Figure 112019007680274-pct00515

    Figure 112019007680274-pct00516

    Figure 112019007680274-pct00517

    Figure 112019007680274-pct00518

    Figure 112019007680274-pct00519

    Figure 112019007680274-pct00520

    여기서, i=0, 1, 2, 3, 4, 5이고, W는 상기 현재 디코딩 블록의 폭이며, H는 상기 현재 디코딩 블록의 높이이고,
    Figure 112019007680274-pct00521
    는 상기 움직임 벡터
    Figure 112019007680274-pct00522
    의 x-방향 성분이며,
    Figure 112019007680274-pct00523
    는 상기 움직임 벡터
    Figure 112019007680274-pct00524
    의 y-방향 성분이고, j=0, 1, 2인, 비디오 이미지 디코딩 방법.
  4. 제3항에 있어서,
    상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 2개의 성분을 포함하고;
    상기 제1 성분 세트의 예측값 및 상기 움직임 모델 전송 벡터에 따라 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정하는 단계는,
    상기 현재 디코딩 블록의 움직임 모델 최적화 벡터가
    Figure 112019007680274-pct00525
    이라고 결정하는 단계 -
    Figure 112019007680274-pct00526
    이고,
    Figure 112019007680274-pct00527
    이며,
    Figure 112019007680274-pct00528
    는 상기 움직임 모델 전송 벡터이고,
    Figure 112019007680274-pct00529
    Figure 112019007680274-pct00530
    은 상기 제1 성분 세트의 예측값
    Figure 112019007680274-pct00531
    Figure 112019007680274-pct00532
    이 양자화된 후에 획득된 수치 값임 -
    를 포함하는, 비디오 이미지 디코딩 방법.
  5. 제3항에 있어서,
    상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분을 포함하고;
    상기 움직임 모델의 예측 파라미터 및 상기 움직임 모델의 디코딩 파라미터에 따라 상기 현재 디코딩 블록의 움직임 모델의 최적 파라미터를 결정하는 단계는,
    상기 현재 디코딩 블록의 움직임 모델 최적화 벡터가
    Figure 112019007680274-pct00533
    라고 결정하는 단계 -
    Figure 112019007680274-pct00534
    이고,
    Figure 112019007680274-pct00535
    는 상기 움직임 모델 전송 벡터이며,
    Figure 112019007680274-pct00536
    는 상기 제1 성분 세트의 예측값이고, i=0, 1, 2, 3, 4, 5임 -
    를 포함하는, 비디오 이미지 디코딩 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 움직임 벡터 그룹 및 현재 디코딩 블록의 움직임 모델 전송 벡터를 결정하는 단계는,
    상기 비트스트림에 따라 상기 현재 디코딩 블록의 타깃 후보 블록 및 상기 타깃 후보 블록의 움직임 벡터를 결정하는 단계;
    상기 현재 디코딩 블록의 참조 프레임(reference frame)의 픽쳐 오더 카운트(picture order count) 및 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트를 획득하는 단계;
    상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 상기 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율에 따라, 상기 움직임 벡터 그룹 내의 제1 움직임 벡터를 결정하는 단계 - 상기 타깃 후보 블록의 움직임 벡터에 대한 상기 제1 움직임 벡터의 비율은 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 상기 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율과 동일함 -; 및
    상기 제1 움직임 벡터에 따라 상기 움직임 벡터 그룹을 결정하는 단계
    를 포함하는, 비디오 이미지 디코딩 방법.
  7. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 비트스트림에 따라 움직임 벡터 그룹 및 현재 디코딩 블록의 움직임 모델 전송 벡터를 결정하는 단계는,
    상기 비트스트림에 따라 상기 현재 디코딩 블록 중 타깃 후보 블록의 움직임 벡터를 결정하는 단계;
    상기 현재 디코딩 블록 중 상기 타깃 후보 블록의 움직임 벡터를 상기 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정하는 단계;
    상기 제1 움직임 벡터에 따라 상기 움직임 벡터 그룹 내의 제2 움직임 벡터를 결정하는 단계; 및
    상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 따라 상기 움직임 벡터 그룹을 결정하는 단계
    를 포함하는, 비디오 이미지 디코딩 방법.
  8. 비디오 이미지 디코딩을 위한 디코딩 장치로서,
    비트스트림에 따라 움직임 벡터 그룹(motion vector group) 및 현재 디코딩 블록의 움직임 모델 전송 벡터(motion model transmission vector)를 결정하도록 구성된 제1 결정 모듈 - 상기 움직임 벡터 그룹은 상기 현재 디코딩 블록의 적어도 하나의 움직임 벡터를 포함하고, 상기 움직임 모델 전송 벡터는 적어도 4개의 성분을 포함하고 있음 -;
    상기 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라, 상기 현재 디코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정하도록 구성된 제2 결정 모듈 - 상기 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함하고 있음 -; 및
    움직임 모델 최적화 벡터에 따라 상기 현재 디코딩 블록을 디코딩할 수 있도록, 상기 제1 성분 세트의 예측값 및 상기 움직임 모델 전송 벡터에 따라 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정하도록 구성된 제3 결정 모듈
    을 포함하고,
    상기 제3 결정 모듈은 구체적으로,
    상기 현재 디코딩 블록의 크기 및 정밀도 정보에 따라, 상기 현재 디코딩 블록의 움직임 모델 양자화 정밀도(motion model quantization precision)를 결정하고;
    상기 움직임 모델 양자화 정밀도에 따라 상기 움직임 모델 최적화 벡터를 양자화하며;
    양자화된 움직임 모델 최적화 벡터에 따라 상기 현재 디코딩 블록을 디코딩하도록 구성되며,
    상기 현재 디코딩 블록의 크기는 상기 현재 디코딩 블록의 폭 및 상기 현재 디코딩 블록의 높이를 포함하고, 상기 정밀도 정보는 상기 움직임 벡터 그룹의 양자화 정밀도를 포함하며;
    상기 제3 결정 모듈은 구체적으로,
    상기 움직임 모델 양자화 정밀도 Q를 아래의 수식에 따라 결정하도록 구성되고,
    Figure 112019007680274-pct00537

    여기서, P는 상기 움직임 벡터 그룹의 양자화 정밀도이고, W는 상기 현재 디코딩 블록의 폭이며, H는 상기 현재 디코딩 블록의 높이인, 디코딩 장치.
  9. 제8항에 있어서,
    상기 움직임 모델 초기화 벡터, 상기 움직임 모델 전송 벡터, 및 상기 움직임 모델 최적화 벡터 각각은 6개의 성분을 포함하고, 상기 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하며, 상기 3개의 움직임 벡터는 상기 현재 디코딩 블록 내의 3개의 화소와 일대일 대응관계에 있는, 디코딩 장치.
  10. 제9항에 있어서,
    상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분 중 적어도 하나의 성분을 포함하고, 상기 제2 결정 모듈은 구체적으로,
    상기 움직임 모델 초기화 벡터의 6개의 성분
    Figure 112019007680274-pct00538
    를 아래의 수식에 따라 결정하도록 구성되며,
    Figure 112019007680274-pct00539

    Figure 112019007680274-pct00540

    Figure 112019007680274-pct00541

    Figure 112019007680274-pct00542

    Figure 112019007680274-pct00543

    Figure 112019007680274-pct00544

    여기서, i=0, 1, 2, 3, 4, 5이고, W는 상기 현재 디코딩 블록의 폭이며, H는 상기 현재 디코딩 블록의 높이이고,
    Figure 112019007680274-pct00545
    는 상기 움직임 벡터
    Figure 112019007680274-pct00546
    의 x-방향 성분이며,
    Figure 112019007680274-pct00547
    는 상기 움직임 벡터
    Figure 112019007680274-pct00548
    의 y-방향 성분이고, j=0, 1, 2인, 디코딩 장치.
  11. 제10항에 있어서,
    상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 2개의 성분을 포함하고;
    상기 제2 결정 모듈은 구체적으로,
    상기 현재 디코딩 블록의 움직임 모델 최적화 벡터가
    Figure 112019007680274-pct00549
    라고 결정하도록 구성되고,
    Figure 112019007680274-pct00550
    이며,
    Figure 112019007680274-pct00551
    이고,
    Figure 112019007680274-pct00552
    는 상기 움직임 모델 전송 벡터이고,
    Figure 112019007680274-pct00553
    Figure 112019007680274-pct00554
    은 상기 제1 성분 세트의 예측값
    Figure 112019007680274-pct00555
    Figure 112019007680274-pct00556
    이 양자화된 후에 획득된 수치 값인, 디코딩 장치.
  12. 제10항에 있어서,
    상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분을 포함하고;
    상기 제2 결정 모듈은 구체적으로,
    상기 현재 디코딩 블록의 움직임 모델 최적화 벡터가
    Figure 112019007680274-pct00557
    라고 결정하도록 구성되고,
    Figure 112019007680274-pct00558
    이며,
    Figure 112019007680274-pct00559
    는 상기 움직임 모델 전송 벡터이고,
    Figure 112019007680274-pct00560
    는 상기 제1 성분 세트의 예측값이며, i=0, 1, 2, 3, 4, 5인, 디코딩 장치.
  13. 제8항에 있어서,
    상기 제1 결정 모듈은 구체적으로,
    상기 비트스트림에 따라 상기 현재 디코딩 블록의 타깃 후보 블록 및 상기 타깃 후보 블록의 움직임 벡터를 결정하고;
    상기 현재 디코딩 블록의 참조 프레임(reference frame)의 픽쳐 오더 카운트(picture order count) 및 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트를 획득하며;
    상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 상기 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율에 따라, 상기 움직임 벡터 그룹 내의 제1 움직임 벡터를 결정하고 - 여기서, 상기 타깃 후보 블록의 움직임 벡터에 대한 상기 제1 움직임 벡터의 비율은 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 상기 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율과 동일함 -; 및
    상기 제1 움직임 벡터에 따라 상기 움직임 벡터 그룹을 결정하도록 구성된, 디코딩 장치.
  14. 제8항에 있어서,
    상기 제1 결정 모듈은 구체적으로,
    상기 비트스트림에 따라 상기 현재 디코딩 블록 중 타깃 후보 블록의 움직임 벡터를 결정하고;
    상기 현재 디코딩 블록 중 상기 타깃 후보 블록의 움직임 벡터를 상기 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정하며;
    상기 제1 움직임 벡터에 따라 상기 움직임 벡터 그룹 내의 제2 움직임 벡터를 결정하고;
    상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 따라 상기 움직임 벡터 그룹을 결정하도록 구성된, 디코딩 장치.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
KR1020177025899A 2015-02-16 2015-08-12 비디오 이미지 인코딩 방법, 비디오 이미지 디코딩 방법, 인코딩 장치, 및 디코딩 장치 KR102010510B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510085362.XA CN104661031B (zh) 2015-02-16 2015-02-16 用于视频图像编码和解码的方法、编码设备和解码设备
CN201510085362.X 2015-02-16
PCT/CN2015/086724 WO2016131229A1 (zh) 2015-02-16 2015-08-12 用于视频图像编码和解码的方法、编码设备和解码设备

Publications (2)

Publication Number Publication Date
KR20170118161A KR20170118161A (ko) 2017-10-24
KR102010510B1 true KR102010510B1 (ko) 2019-08-13

Family

ID=53251655

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177025899A KR102010510B1 (ko) 2015-02-16 2015-08-12 비디오 이미지 인코딩 방법, 비디오 이미지 디코딩 방법, 인코딩 장치, 및 디코딩 장치

Country Status (10)

Country Link
US (1) US10349079B2 (ko)
EP (1) EP3249927B1 (ko)
JP (1) JP6481912B2 (ko)
KR (1) KR102010510B1 (ko)
CN (2) CN104661031B (ko)
MX (1) MX2017010564A (ko)
MY (1) MY185702A (ko)
RU (1) RU2679195C1 (ko)
SG (1) SG11201706698YA (ko)
WO (1) WO2016131229A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104661031B (zh) * 2015-02-16 2017-12-22 华为技术有限公司 用于视频图像编码和解码的方法、编码设备和解码设备
CN106331722B (zh) 2015-07-03 2019-04-26 华为技术有限公司 图像预测方法和相关设备
CN108965871B (zh) * 2015-09-29 2023-11-10 华为技术有限公司 图像预测的方法及装置
CN107046645B9 (zh) 2016-02-06 2020-08-14 华为技术有限公司 图像编解码方法及装置
JP6768145B2 (ja) * 2016-08-15 2020-10-14 ノキア テクノロジーズ オーユー ビデオの符号化および復号
US10979732B2 (en) * 2016-10-04 2021-04-13 Qualcomm Incorporated Adaptive motion vector precision for video coding
CN108271028A (zh) * 2016-12-30 2018-07-10 北京优朋普乐科技有限公司 一种子像素全搜索方法及装置
JP7261750B2 (ja) * 2017-06-26 2023-04-20 インターデジタル ヴイシー ホールディングス, インコーポレイテッド 動き補償のための複数の予測子候補
US11889100B2 (en) 2017-11-14 2024-01-30 Qualcomm Incorporated Affine motion vector prediction in video coding
CN111919439B (zh) * 2018-04-02 2022-01-14 华为技术有限公司 一种运动矢量的获取方法和装置、一种运动矢量集合的构建方法和装置及计算机可读存储介质
KR20200133327A (ko) * 2018-04-12 2020-11-27 삼성전자주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
CN110536135B (zh) * 2018-05-25 2021-11-05 腾讯美国有限责任公司 用于视频编解码的方法和设备
WO2019244051A1 (en) 2018-06-19 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Selected mvd precision without mvp truncation
MX2021000351A (es) * 2018-07-11 2021-05-12 Huawei Tech Co Ltd Codificador de video, decodificador de video y método correspondiente.
TWI815967B (zh) 2018-09-19 2023-09-21 大陸商北京字節跳動網絡技術有限公司 仿射模式編解碼的模式相關自適應調整運動矢量分辨率
IL304953A (en) * 2018-09-21 2023-10-01 Guangdong Oppo Mobile Telecommunications Corp Ltd A method of encoding/decoding image signals and a device therefor
CN117880495A (zh) * 2018-12-03 2024-04-12 北京字节跳动网络技术有限公司 候选的最大数量的指示方法
CN118118659A (zh) 2019-01-31 2024-05-31 北京字节跳动网络技术有限公司 记录仿射模式自适应运动矢量分辨率的上下文
WO2020165493A1 (en) * 2019-02-15 2020-08-20 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
CN113519160B (zh) * 2019-03-05 2023-09-05 寰发股份有限公司 视频编码中具有运动微调的双向预测视频处理方法和装置
CN112511830A (zh) 2019-03-11 2021-03-16 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
US11343525B2 (en) * 2019-03-19 2022-05-24 Tencent America LLC Method and apparatus for video coding by constraining sub-block motion vectors and determining adjustment values based on constrained sub-block motion vectors
CN109874029B (zh) * 2019-04-22 2021-02-12 腾讯科技(深圳)有限公司 视频描述生成方法、装置、设备及存储介质
CN110263547B (zh) * 2019-05-31 2021-07-20 创新先进技术有限公司 基于合约状态的修改次序实现动态加密的方法及装置
US11076167B2 (en) * 2019-06-24 2021-07-27 FG Innovation Company Limited Device and method for coding video data

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4703350A (en) * 1985-06-03 1987-10-27 Picturetel Corporation Method and apparatus for efficiently communicating image sequences
WO1998042134A1 (en) * 1997-03-17 1998-09-24 Mitsubishi Denki Kabushiki Kaisha Image encoder, image decoder, image encoding method, image decoding method and image encoding/decoding system
US6738423B1 (en) * 2000-01-21 2004-05-18 Nokia Mobile Phones Ltd. Method for encoding and decoding video information, a motion compensated video encoder and a corresponding decoder
JP3681342B2 (ja) * 2000-05-24 2005-08-10 三星電子株式会社 映像コーディング方法
KR100359115B1 (ko) * 2000-05-24 2002-11-04 삼성전자 주식회사 영상 코딩 방법
KR100924850B1 (ko) * 2002-01-24 2009-11-02 가부시키가이샤 히타치세이사쿠쇼 동화상 신호의 부호화 방법 및 복호화 방법
US20040091047A1 (en) * 2002-11-11 2004-05-13 Sony Corporation Method and apparatus for nonlinear multiple motion model and moving boundary extraction
US7881376B2 (en) * 2004-05-14 2011-02-01 Panasonic Corporation Motion compensation apparatus
US8565307B2 (en) * 2005-02-01 2013-10-22 Panasonic Corporation Picture encoding method and picture encoding device
EP1755342A1 (en) 2005-08-19 2007-02-21 Thomson Licensing Method and apparatus for iteratively calculating a set of global motion parameters for a picture sequence from block motion vectors
US9258519B2 (en) 2005-09-27 2016-02-09 Qualcomm Incorporated Encoder assisted frame rate up conversion using various motion models
CN101114851B (zh) * 2006-07-24 2010-10-20 大唐移动通信设备有限公司 一种hsdpa的功率控制方法及装置
CN101888559B (zh) * 2006-11-09 2013-02-13 Lg电子株式会社 用于解码/编码视频信号的方法及装置
KR101383540B1 (ko) * 2007-01-03 2014-04-09 삼성전자주식회사 복수의 움직임 벡터 프리딕터들을 사용하여 움직임 벡터를추정하는 방법, 장치, 인코더, 디코더 및 복호화 방법
CN101257366B (zh) * 2008-03-27 2010-09-22 华为技术有限公司 编解码方法、通讯系统及设备
ES2629027T3 (es) * 2009-06-19 2017-08-07 Orange Codificación de vectores de movimiento por competición de predictores
WO2011013253A1 (ja) * 2009-07-31 2011-02-03 株式会社 東芝 幾何変換動き補償予測を用いる予測信号生成装置、動画像符号化装置及び動画像復号化装置
US20120201293A1 (en) 2009-10-14 2012-08-09 Guo Liwei Methods and apparatus for adaptive coding of motion information
CN102595110B (zh) * 2011-01-10 2015-04-29 华为技术有限公司 视频编码方法、解码方法及终端
KR101484171B1 (ko) 2011-01-21 2015-01-23 에스케이 텔레콤주식회사 예측 움직임벡터 색인부호화에 기반한 움직임정보 생성/복원 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법
CN102685504B (zh) * 2011-03-10 2015-08-19 华为技术有限公司 视频图像的编解码方法、编码装置、解码装置及其系统
EP2717574B1 (en) * 2011-05-31 2021-02-17 JVC KENWOOD Corporation Moving image decoding device, moving image decoding method and moving image decoding program
CN105430390B (zh) * 2011-06-30 2017-04-12 Jvc建伍株式会社 图像解码装置、图像解码方法、接收装置及接收方法
JP2013098899A (ja) * 2011-11-04 2013-05-20 Sony Corp 符号化装置および符号化方法、並びに、復号装置および復号方法
US20130114686A1 (en) * 2011-11-08 2013-05-09 Sharp Laboratories Of America, Inc. Video decoder with enhanced cabac motion vector decoding
EP2683165B1 (en) * 2012-07-04 2015-10-14 Thomson Licensing Method for coding and decoding a block of pixels from a motion model
CN103856711A (zh) * 2012-12-05 2014-06-11 联咏科技股份有限公司 滚动快门的校正方法与图像处理装置
US9491460B2 (en) * 2013-03-29 2016-11-08 Qualcomm Incorporated Bandwidth reduction for video coding prediction
KR20140124920A (ko) * 2013-04-15 2014-10-28 인텔렉추얼디스커버리 주식회사 움직임 벡터 예측을 이용한 비디오 부호화/복호화 방법 및 장치
CN103338372A (zh) * 2013-06-15 2013-10-02 浙江大学 一种视频处理方法及装置
CN104661031B (zh) * 2015-02-16 2017-12-22 华为技术有限公司 用于视频图像编码和解码的方法、编码设备和解码设备
US10477238B2 (en) * 2016-09-07 2019-11-12 Qualcomm Incorporated Sub-PU based bi-directional motion compensation in video coding

Also Published As

Publication number Publication date
KR20170118161A (ko) 2017-10-24
EP3249927A4 (en) 2017-12-13
EP3249927B1 (en) 2020-07-29
CN107809642B (zh) 2020-06-16
BR112017017481A2 (pt) 2018-05-08
CN107809642A (zh) 2018-03-16
EP3249927A1 (en) 2017-11-29
US20170347116A1 (en) 2017-11-30
SG11201706698YA (en) 2017-09-28
MX2017010564A (es) 2018-03-15
JP2018509087A (ja) 2018-03-29
RU2679195C1 (ru) 2019-02-06
CN104661031B (zh) 2017-12-22
US10349079B2 (en) 2019-07-09
WO2016131229A1 (zh) 2016-08-25
JP6481912B2 (ja) 2019-03-13
MY185702A (en) 2021-05-31
CN104661031A (zh) 2015-05-27

Similar Documents

Publication Publication Date Title
KR102010510B1 (ko) 비디오 이미지 인코딩 방법, 비디오 이미지 디코딩 방법, 인코딩 장치, 및 디코딩 장치
JP7004782B2 (ja) 画像予測方法および関連装置
JP6995952B2 (ja) インタ予測方法及びその装置
JP6689499B2 (ja) 画像予測方法および関連装置
JP7481538B2 (ja) 変換行列選択の係数依存コーディング
JP6345805B2 (ja) Intraブロックコピーモード符号化のブロックベクトル予測の方法
JP6549246B2 (ja) 画像符号化/復号方法および関連装置
JP2021182752A (ja) 画像予測方法および関連装置
CN109729352B (zh) 确定仿射编码块的运动矢量的方法和装置
CN110832869A (zh) 用于视频编码或解码的运动信息获取方法与装置
US20220360814A1 (en) Enhanced motion vector prediction
US10805611B2 (en) Method and apparatus of constrained sequence header
JP6323185B2 (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
WO2022236316A1 (en) Enhanced motion vector prediction
CN118160309A (zh) 视频编解码中仿射合并模式的候选推导
BR112017017481B1 (pt) Método de decodificação de imagem de vídeo e dispositivo de decodificação para decodificação de imagem de vídeo

Legal Events

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