KR102010510B1 - 비디오 이미지 인코딩 방법, 비디오 이미지 디코딩 방법, 인코딩 장치, 및 디코딩 장치 - Google Patents
비디오 이미지 인코딩 방법, 비디오 이미지 디코딩 방법, 인코딩 장치, 및 디코딩 장치 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 128
- 230000033001 locomotion Effects 0.000 claims abstract description 1527
- 239000013598 vector Substances 0.000 claims abstract description 1349
- 230000005540 biological transmission Effects 0.000 claims abstract description 125
- 238000005457 optimization Methods 0.000 claims description 194
- 238000013139 quantization Methods 0.000 claims description 130
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 63
- 230000008569 process Effects 0.000 description 24
- 238000004364 calculation method Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010008 shearing Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods 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/196—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
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를 아래의 수식에 따라 결정하는 단계를 포함한다.
여기서, P는 상기 움직임 벡터 그룹의 양자화 정밀도이고, W는 상기 현재 인코딩 블록의 폭이며, H는 상기 현재 인코딩 블록의 높이이다.
제1 양태 및 전술한 구현을 참조하여, 제1 양태의 또 다른 구현에서, 상기 움직임 모델 초기화 벡터 및 상기 움직임 모델 최적화 벡터 각각은 6개의 성분을 포함하고, 상기 움직임 모델 초기화 벡터의 6개의 성분은 상기 움직임 모델 최적화 벡터의 6개의 성분과 일대일 대응관계에 있으며, 상기 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하고, 상기 3개의 움직임 벡터는 상기 현재 인코딩 블록 내의 3개의 화소에 대응하고 있다.
제1 양태 및 전술한 구현을 참조하여, 제1 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분 중 적어도 하나의 성분을 포함하고, 상기 움직임 모델 초기화 벡터의 6개의 성분 는 아래의 수식에 따라 결정된다.
여기서, i=0, 1, 2, 3, 4, 5이고, W는 상기 현재 인코딩 블록의 폭이며, H는 상기 현재 인코딩 블록의 높이이고, 는 상기 움직임 벡터 의 x-방향 성분이며, 는 상기 움직임 벡터 의 y-방향 성분이고, j=0, 1, 2이다.
제1 양태 및 전술한 구현을 참조하여, 제1 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 2개의 성분을 포함하고; 상기 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 상기 제1 성분 세트의 전송될 값을 결정하는 단계는, 과 를 포함하는 상기 제1 성분 세트의 전송될 값을 결정하는 단계를 포함한다. 여기서, 이고, 이며, 와 는 상기 제1 성분 세트에 대응하는 양자화된 움직임 모델 최적화 벡터이고, 과 은 상기 제1 성분 세트의 예측값 과 이 양자화된 후에 획득된 수치 값이다.
제1 양태 및 전술한 구현을 참조하여, 제1 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분을 포함하고; 상기 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 상기 제1 성분 세트의 전송될 값을 결정하는 단계는, 를 포함하는 상기 제1 성분 세트의 전송될 값을 결정하는 단계를 포함한다. 여기서, i=0, 1, 2, 3, 4, 5이고, 이며, 는 상기 양자화된 움직임 모델 최적화 벡터이고, 는 상기 제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를 아래의 수식에 따라 결정하는 단계를 포함한다.
여기서, P는 상기 움직임 벡터 그룹의 양자화 정밀도이고, W는 상기 현재 디코딩 블록의 폭이며, H는 상기 현재 디코딩 블록의 높이이다.
제2 양태 및 전술한 구현을 참조하여, 제2 양태의 또 다른 구현에서, 상기 움직임 모델 초기화 벡터, 상기 움직임 모델 전송 벡터, 및 상기 움직임 모델 최적화 벡터 각각은 6개의 성분을 포함하고, 상기 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하며, 상기 3개의 움직임 벡터는 상기 현재 디코딩 블록 내의 3개의 화소와 일대일 대응관계에 있다.
제2 양태 및 전술한 구현을 참조하여, 제2 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분 중 적어도 하나의 성분을 포함하고, 상기 움직임 모델 초기화 벡터의 6개의 성분 는 아래의 수식에 따라 결정된다.
여기서, i=0, 1, 2, 3, 4, 5이고, W는 상기 현재 디코딩 블록의 폭이며, H는 상기 현재 디코딩 블록의 높이이고, 는 상기 움직임 벡터 의 x-방향 성분이고, 는 상기 움직임 벡터 의 y-방향 성분이며, j=0, 1, 2이다.
제2 양태 및 전술한 구현을 참조하여, 제2 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 2개의 성분을 포함하고; 상기 제1 성분 세트의 예측값 및 상기 움직임 모델 전송 벡터에 따라 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정하는 단계는, 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터가 라고 결정하는 단계를 포함한다. 여기서, 이고, 이며, 는 상기 움직임 모델 전송 벡터이고, 과 은 상기 제1 성분 세트의 예측값 과 이 양자화된 후에 획득된 수치 값이다.
제2 양태 및 전술한 구현을 참조하여, 제2 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분을 포함하고; 상기 움직임 모델의 예측 파라미터 및 상기 움직임 모델의 디코딩 파라미터에 따라 상기 현재 디코딩 블록의 움직임 모델의 최적 파라미터를 결정하는 단계는, 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터가 라고 결정하는 단계를 포함한다. 여기서, 이고, 는 상기 움직임 모델 전송 벡터이며, 는 상기 제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를 아래의 수식에 따라 결정하도록 구성된다.
여기서, P는 상기 움직임 벡터 그룹의 양자화 정밀도이고, W는 상기 현재 인코딩 블록의 폭이며, H는 상기 현재 인코딩 블록의 높이이다.
제3 양태 및 전술한 구현을 참조하여, 제3 양태의 또 다른 구현에서, 상기 움직임 모델 초기화 벡터 및 상기 움직임 모델 최적화 벡터 각각은 6개의 성분을 포함하고, 상기 움직임 모델 초기화 벡터의 6개의 성분은 상기 움직임 모델 최적화 벡터의 6개의 성분과 일대일 대응관계에 있으며, 상기 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하고, 상기 3개의 움직임 벡터는 상기 현재 인코딩 블록 내의 3개의 화소에 대응하고 있다.
제3 양태 및 전술한 구현을 참조하여, 제3 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분 중 적어도 하나의 성분을 포함하고, 상기 제2 결정 모듈은 구체적으로, 상기 움직임 모델 초기화 벡터의 6개의 성분 를 아래의 수식에 따라 결정하도록 구성된다.
여기서, i=0, 1, 2, 3, 4, 5이고, W는 상기 현재 인코딩 블록의 폭이며, H는 상기 현재 인코딩 블록의 높이이고, 는 상기 움직임 벡터 의 x-방향 성분이며, 는 상기 움직임 벡터 의 y-방향 성분이고, j=0, 1, 2이다.
제3 양태 및 전술한 구현을 참조하여, 제3 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 2개의 성분을 포함하고, 상기 제2 결정 모듈은 구체적으로, 상기 제1 성분 세트의 전송될 값을 결정하도록 구성된다. 여기서, 상기 제1 성분 세트의 전송될 값은 과 을 포함하고, 이고, 이며, 와 는 상기 제1 성분 세트에 대응하는 양자화된 움직임 모델 최적화 벡터이고, 과 은 상기 제1 성분 세트의 예측값 과 이 양자화된 후에 획득된 수치 값이다.
제3 양태 및 전술한 구현을 참조하여, 제3 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분을 포함하고, 상기 제2 결정 모듈은 구체적으로, 상기 제1 성분 세트의 전송될 값을 결정하도록 구성된다. 여기서, 상기 제1 성분 세트의 전송될 값은 를 포함하고, i=0, 1, 2, 3, 4, 5이며, 이고, 는 상기 양자화된 움직임 모델 최적화 벡터이며, 는 상기 제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를 아래의 수식에 따라 결정하도록 구성된다.
여기서, P는 상기 움직임 벡터 그룹의 양자화 정밀도이고, W는 상기 현재 디코딩 블록의 폭이며, H는 상기 현재 디코딩 블록의 높이이다.
제4 양태 및 전술한 구현을 참조하여, 제4 양태의 또 다른 구현에서, 상기 움직임 모델 초기화 벡터, 상기 움직임 모델 전송 벡터, 및 상기 움직임 모델 최적화 벡터 각각은 6개의 성분을 포함하고, 상기 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하며, 상기 3개의 움직임 벡터는 상기 현재 디코딩 블록 내의 3개의 화소와 일대일 대응관계에 있다.
제4 양태 및 전술한 구현을 참조하여, 제4 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분 중 적어도 하나의 성분을 포함하고, 상기 제2 결정 모듈은 구체적으로, 상기 움직임 모델 초기화 벡터의 6개의 성분 를 아래의 수식에 따라 결정하도록 구성된다.
여기서, i=0, 1, 2, 3, 4, 5이고, W는 상기 현재 디코딩 블록의 폭이며, H는 상기 현재 디코딩 블록의 높이이고, 는 상기 움직임 벡터 의 x-방향 성분이며, 는 상기 움직임 벡터 의 y-방향 성분이고, j=0, 1, 2이다.
제4 양태 및 전술한 구현을 참조하여, 제4 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 2개의 성분을 포함하고; 상기 제2 결정 모듈은 구체적으로, 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터가 라고 결정하도록 구성된다. 여기서, 이고, 이며, 는 상기 움직임 모델 전송 벡터이고, 과 은 상기 제1 성분 세트의 예측값 과 이 양자화된 후에 획득된 수치 값이다.
제4 양태 및 전술한 구현을 참조하여, 제4 양태의 또 다른 구현에서, 상기 제1 성분 세트는 상기 움직임 모델 초기화 벡터의 6개의 성분을 포함하고; 상기 제2 결정 모듈은 구체적으로, 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터가 라고 결정하도록 구성된다. 여기서, 이고, 는 상기 움직임 모델 전송 벡터이며, 는 상기 제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은 본 발명의 일 실시예에 따른 비디오 이미지 인코딩 방법의 개략적인 흐름도이다.
도 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개의 움직임 벡터를 포함할 수 있다. 예를 들어, 아핀 움직임의 경우, 현재 인코딩 블록 내의 모든 화소가 아핀 움직임 모델을 이용하여 표현되는 경우, 일반적으로 아핀 움직임 모델은 로서 표현될 수 있다. 즉, 아핀 움직임 모델은 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)에 따라 결정될 수 있다.
여기서, 는 화소의 원래 화소값이고, 는 후보 블록이 가리키는 프레임 내의 화소의 예측 화소값이며, 와 는 화소의 좌표값이고, 는 화소의 위치의 수평 기울기이며, 는 화소의 위치의 수직 기울기이다. 이러한 기울기는 소벨(Sobel) 연산자를 이용하여 계산을 통해 얻어질 수 있다.
본 발명의 본 실시예에서, 전술한 공식에 따라, 후보 블록의 움직임 벡터에 대응하는 예측 블록과 관련된 현재 인코딩 블록 내의 각각의 화소의 매칭 에러값이 결정될 수 있다. 현재 인코딩 블록 내의 모든 화소의 매칭 에러값의 절대값이 합산되고, 현재 인코딩 블록과 후보 블록에 대응하는 예측 블록 간의 매칭 에러값이 얻어질 수 있다. 하지만, 본 발명은 이에 제한되지 않는다. 전술한 방법에 따라, 현재 인코딩 블록과 각각의 후보 블록에 대응하는 예측 블록 간의 매칭 에러값이 순차적으로 결정된다. 가장 작은 매칭 에러값에 대응하는 후보 블록이 현재 인코딩 블록의 타깃 후보 블록으로서 사용된다.
선택적으로, 일 실시예에서, 아핀 움직임이 예로서 사용된다. 현재 인코딩 블록의 움직임 벡터 그룹이 결정된다. 이 움직임 벡터 그룹은 3개의 움직임 벡터를 포함한다. 이 움직임 벡터 그룹의 하나의 움직임 벡터, 즉 제1 움직임 벡터가 전술한 방법에 따라 결정된 후에, 도 2에 도시된 바와 같이, 제1 움직임 벡터는 현재 인코딩 블록의 꼭지점에 대응하는 움직임 벡터일 수 있다. 선택적으로, 현재 인코딩 블록의 꼭지점에 인접한 2개의 꼭지점의 움직임 벡터가 이 움직임 벡터 그룹 내의 다른 움직임 벡터로서 선택될 수 있다. 이 움직임 벡터 그룹은 로서 표현될 수 있고, 이 움직임 벡터 그룹 내의 움직임 벡터의 좌표가 (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)에 따라 결정될 수 있다.
여기서, W는 현재 인코딩 블록의 폭이고, H는 현재 인코딩 블록의 높이이며, 는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터 의 x-방향 성분이고, 는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터 의 y-방향 성분이며, j=0, 1, 2이고, x와 y는 현재 인코딩 블록 내의 각각의 화소의 좌표값이며, 와 는 제1 후보 움직임 벡터 그룹 내의 참조 프레임에 대응하는 예측점에서의 화소의 좌표값이다.
현재 인코딩 블록 내의 각각의 화소의 좌표값 및 현재 인코딩 블록 내의 화소의 좌표값에 따라, 참조 프레임에 대응하는 예측 포인트에서, 제1 후보 움직임 벡터 그룹에 대해서, 현재 인코딩 블록 내의 각각의 화소와 제1 후보 움직임 벡터 그룹의 참조 프레임에 대응하는 예측 포인트 간의 매칭 에러값이 수식 (1)에 따라 결정된다. 여기서, 이다. 제1 후보 움직임 벡터 그룹과 관련된 현재 인코딩 블록의 매칭 에러값을 결정하기 위해, 제1 후보 움직임 벡터 그룹과 관련된 각각의 화소의 매칭 에러값의 절대값이 계산되고, 이 절대값이 합산된다. 유사하게, 각각의 후보 움직임 벡터 그룹과 관련된 현재 인코딩 블록의 매칭 에러값이 결정되고, 복수의 후보 움직임 벡터 그룹에 대응하는 복수의 매칭 에러값 중에서 가장 작은 값에 대응하는 후보 움직임 벡터 그룹이 현재 인코딩 블록의 움직임 벡터 그룹으로서 결정된다. 디코더 측이 인덱스 값에 따라 이 움직임 벡터 그룹을 결정할 수 있도록, 이 움직임 벡터 그룹에 포함된 움직임 벡터의 인덱스 값이 인코딩되어 디코더 측에 전송된다.
본 발명의 본 실시예에서, 결정된 움직임 벡터 그룹에 대해서, 이 움직임 벡터 그룹의 어떠한 움직임 벡터도 후속 움직임 추정의 검색 시작점으로서 사용될 수 있다. 선택적으로, 도 2에 도시된 바와 같이, 현재 인코딩 블록의 좌측 상부 모서리에서의 꼭지점의 예측 위치가 후속 움직임 추정에 있어서의 검색 시작점으로서 사용될 수 있다. 본 발명은 이에 제한되지 않는다.
S120에서, 현재 인코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값이 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 결정된다. 이 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함한다. 제1 성분 세트는 움직임 모델 초기화 벡터의 적어도 하나의 성분을 포함한다. 구체적으로, 아핀 움직임 모델이 예로서 사용된다. 아핀 모델은 6개의 파라미터를 이용하여 나타낼 수 있고, 6개의 파라미터는 로서 표현될 수 있다. 현재 인코딩 블록 내의 참조 프레임에서의 각각의 화소의 위치가 아래의 수식 (7)에 따라 결정될 수 있다.
x와 y는 현재 인코딩 블록 내의 임의의 화소의 좌표값이고, 와 는 참조 프레임 내의 대응하는 예측점에서의 화소의 좌표값이며, 와 는 현재 인코딩 블록 내의 임의의 화소의 움직임 벡터이다. 아래의 수식 (8)이 얻어질 수 있다.
S110에서 결정된 움직임 벡터 그룹에 따라, 이 움직임 벡터 그룹은 로서 표현될 수 있다. 이 움직임 벡터 그룹에 대응하는 타깃 후보 블록은 도 2에 도시된 블록 A 내지 블록 G이다. 따라서, 이 움직임 벡터 그룹 내의 움직임 벡터의 좌표가 (0,0), (W,0), 및 (0,H)로서 표현될 수 있다. 여기서, W는 현재 인코딩 블록의 폭이고, H는 현재 인코딩 블록의 높이이다. 이 움직임 벡터 그룹과 좌표를 수식 (8)에 대입하여 아래의 수식 (9)를 얻을 수 있다.
여기서, 는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터 의 x-방향 성분이고, 는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터 의 y-방향 성분이며, j=0, 1, 2이다. 따라서, 아핀 움직임 모델 내의 모든 파라미터를 얻을 수 있다. 수식 (6)에 나타낸 바와 같이, 현재 인코딩 블록의 움직임 벡터 그룹 이 수식 (6)에 대입되고, 현재 인코딩 블록의 움직임 모델 초기화 벡터 가 결정될 수 있다. 이 움직임 모델 초기화 벡터는 6차원 벡터이다. 선택적으로, 다른 움직임 모델의 경우, 이 초기화 벡터는 적어도 4개의 차원을 포함하는 벡터이다. 제1 성분 세트의 예측값이 움직임 모델 초기화 벡터에 따라 결정될 수 있다. 제1 성분 세트의 예측값은 움직임 모델 초기화 벡터의 적어도 하나의 성분을 포함할 수 있다.
S130에서, 제1 성분 세트의 전송될 값이 제1 성분 세트의 예측값에 따라 결정된다. 구체적으로, 움직임 모델 양자화 정밀도 및 움직임 모델 최적화 벡터가 현재 인코딩 블록에 따라 결정될 수 있다. 이 움직임 모델 최적화 벡터는 움직임 모델 양자화 정밀도에 따라 양자화된다. 제1 성분 세트의 전송될 값이 움직임 모델의 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 결정된다.
본 발명의 본 실시예에서, 움직임 모델 최적화 벡터가 먼저 결정될 수 있다. 선택적으로, 이 움직임 모델 최적화 벡터가 종래 기술에 따라 결정될 수 있다. 구체적으로, 현재 인코딩 블록의 매칭 에러값이 수식 (1) 내지 수식 (4)에 따라 결정될 수 있다. 현재 인코딩 블록이 현재 인코딩 블록의 참조 프레임의 특정 범위 내에서 기울기 반복 방식(gradient iterative manner)으로 검색된다. 가장 작은 매칭 에러값에 대응하는 후보 블록이 현재 인코딩 블록의 타깃 후보 블록으로서 결정되고, 이때의 대응하는 움직임 모델 파라미터 가 수식 (4)에 따라 현재 인코딩 블록의 최적화 벡터로서 결정된다.
선택적으로, 현재 인코딩 블록의 움직임 모델 초기화 벡터가 수식 (6)에 따라 추가로 결정될 수 있고, 이 움직임 모델 초기화 벡터가 움직임 모델 최적화 벡터로서 결정된다.
선택적으로, 현재 인코딩 블록의 움직임 모델 초기화 벡터가 수식 (6)에 따라 추가로 결정될 수 있다. 현재 인코딩 블록 내의 각각의 화소의 참조 프레임 내 대응하는 위치가 수식 (7)에 따라 계산을 통해 얻어진다. 현재 인코딩 블록의 매칭 에러값이 수식 (1) 및 수식 (6)에 따라 계산된다. 이 매칭 에러값이 움직임 모델 파라미터에 대응하고 있는 매칭 에러값으로서, 공식 (1) 내지 공식 (4)와 종래 기술에 따라 결정되는 매칭 에러값과 비교된다. 가장 작은 매칭 에러값에 대응하는 움직임 모델 파라미터 가 현재 인코딩 블록의 최적화 벡터로서 선택된다. 본 발명은 이에 제한되지 않는다.
본 발명의 본 실시예에서, 움직임 모델 최적화 벡터가 양자화될 수 있도록, 움직임 모델 양자화 정밀도가 추가로 결정될 필요가 있다. 구체적으로, 움직임 모델 최적화 벡터는 2개의 병진 운동 파라미터 와 를 포함한다. 2개의 병진 운동 파라미터의 양자화 정밀도가 1/16 또는 1/4일 수 있다. 본 발명은 이에 제한되지 않는다. 이 움직임 모델 최적화 벡터 내의 다른 파라미터 의 양자화 정밀도가 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이다.
본 발명의 본 실시예에서, 제1 성분 세트의 전송될 값이 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 결정된다. 구체적으로, 이 결정이 다음의 방법을 이용하여 수행될 수 있다. 여기서, 아핀 움직임이 예로서 사용된다. 움직임 모델 초기화 벡터가 수식 (6)에 따라 결정된다. 이 움직임 모델 초기화 벡터에서, 과 은 병진 운동 파라미터이고, 움직임 벡터 그룹 내의 제1 움직임 벡터 과 관련되어 있다. 선택적으로, 과 이 제1 성분 세트로서 결정될 수 있고, 수식 (6)에 따라 결정되는 값 과 은 제1 성분 세트의 예측값이다. 선택적으로, 2개의 파라미터의 양자화 정밀도가 1/16 또는 1/4일 수 있다. 1/16이 예로서 사용된다. 먼저, 의 정밀도가 1/4에서 1/16로 높아질 수 있도록, 이 4배만큼 스케일업(scale up)된다. 그 다음에, 정밀도가 또한 1/16인 양자화된 과 이 정밀도가 1/16인 를 이용하여 계산되어 과 을 얻는다. 즉, 과 은 제1 성분 세트의 양자화된 예측값이다.
본 발명의 본 실시예에서, 현재 인코딩 블록의 제1 성분 세트의 전송될 값이 제1 성분 세트의 양자화된 예측값 과 및 결정된 움직임 모델 최적화 벡터에 따라 결정된다. 현재 인코딩 블록의 움직임 모델 전송 값은 일 수 있다. 제1 성분 세트는 2개의 성분을 포함할 수 있다. 제1 성분 세트의 전송 값은 과 일 수 있고, 이며, 이다. 다른 전송 값은 이고, 는 양자화된 움직임 모델 최적화 벡터이며, 과 은 제1 성분 세트의 예측값 와 의 양자화된 값이다. 이 경우에, 인코딩 전송 파라미터 중의 2개의 파라미터는 양자화된 제1 성분 세트와 움직임 모델 최적화 벡터 간의 차이이다. 직접 인코딩 전송에서는 이 차이가 양자화된 움직임 모델 최적화 벡터에 의해 점유된 비트의 수보다 작다. 이로 인해 전송되는 데이터의 양이 줄어든다.
선택적으로, 일 실시예에서, 제1 성분 세트의 전송될 값이 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 결정된다. 구체적으로, 이 결정이 다음의 방법을 이용하여 추가로 수행될 수 있다. 수식 (6)에 따라, 움직임 모델 초기화 벡터의 6개의 성분 가 결정된다. 여기서, i= 0, 1, 2, 3, 4, 5이다. 그 다음에, 제1 성분 세트도 또한 6개의 파라미터를 포함한다고 결정되며, 현재 인코딩 블록의 움직임 모델 전송 값이 결정될 수 있다. 즉, 제1 성분 세트의 전송 값은 이다. 여기서, 이고, 는 양자화된 움직임 모델 최적화 벡터이며, 는 제1 성분 세트의 예측값이다.
S140에서, 결정된 제1 성분 세트의 전송될 값이 인코딩되고, 제1 성분 세트의 인코딩된 전송될 값이 디코더 측에 전송된다. 구체적으로, 현재 인코딩 블록의 결정된 움직임 모델 전송될 벡터가 인코딩되어 디코더 측에 전송될 수 있다. 또한, 현재 인코딩 블록의 각각의 화소 샘플의 예측 화소 샘플이 결정되고, 현재 인코딩 블록의 예측 잔차(prediction residual)가 추가로 결정되며, 이 예측 잔차가 인코딩되어 디코더 측에 전송될 수 있도록 움직임 모델 최적화 벡터가 움직임 모델 양자화 정밀도에 따라 추가로 양자화될 수 있다. 구체적으로, 양자화된 움직임 모델 최적화 벡터 를 얻기 위해, 움직임 모델 최적화 벡터 의 경우, 각각의 파라미터 가 수식 (10)에 따라 결정되는 움직임 모델 양자화 정밀도에 따라 양자화된다. 양자화된 움직임 모델 최적화 벡터가 수식 (7)에 대입되고, 현재 인코딩 블록 내의 정밀도 Q를 가진 각각의 화소의 참조 오프셋 위치 를 얻을 수 있다. 현재 인코딩 블록 내의 각각의 화소 샘플의 예측 화소 샘플이 참조 오프셋 위치에서 계산을 통해 얻어진다. 또한, 현재 인코딩 블록의 예측 잔차가 결정되고, 이 예측 잔차는 인코딩되어 디코더 측에 전송된다. 선택적으로, 이 화소 샘플이 하나의 화소 또는 복수의 화소를 포함하는 작은 화소 블록일 수 있다. 본 발명은 이에 제한되지 않는다.
전술한 과정의 시퀀스 번호가 본 발명의 다양한 실시예에서의 실행 시퀀스를 의미하지 않는다고 이해해야 한다. 이 과정의 실행 시퀀스는 기능 및 프로세스의 내부의 로직에 따라 결정되어야 하고, 본 발명의 실시예의 구현 과정에 대한 어떠한 제한으로서 해석되지 말아야 한다.
따라서, 본 발명의 본 실시예의 비디오 이미지 인코딩 방법에 따르면, 현재 인코딩 블록의 움직임 벡터 그룹이 결정되고; 현재 인코딩 블록의 움직임 모델 초기화 벡터가 움직임 벡터 그룹에 따라 결정되며; 움직임 모델의 전송될 값이 움직임 모델 초기화 벡터에 따라 결정되고; 디코더 측이 움직임 모델의 전송될 값에 따라 디코딩을 수행할 수 있도록, 움직임 모델의 전송될 값이 전송을 위해 인코딩된다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다. 또한, 이 움직임 모델 최적화 벡터가 결정되고 이 최적화 벡터가 양자화되는 경우에, 결정되는 양자화 정밀도가 현재 인코딩 블록의 크기 및 현재 인코딩 블록의 움직임 벡터의 양자화 정밀도에 따라 결정된다. 이로 인해 인코딩 파라미터에 필요한 비트의 수를 줄일 수도 있다.
도 3은 본 발명의 일 실시예에 따른 비디오 이미지 디코딩 방법(200)의 개략적인 흐름도이다. 도 3에 도시된 비디오 이미지 디코딩 방법은 이미지나 비디오 디코딩 과정에 사용될 수 있고, 디코딩 장치에 의해 실행된다. 도 3에 도시된 바와 같이, 비디오 이미지 디코딩 방법은 다음의 단계를 포함한다.
S210. 비트스트림에 따라 현재 디코딩 블록의 움직임 벡터 그룹과 움직임 모델 전송 벡터를 결정한다. 여기서, 움직임 벡터 그룹은 현재 디코딩 블록의 적어도 하나의 움직임 벡터를 포함하고, 움직임 모델 전송 벡터는 적어도 4개의 성분을 포함한다.
S220. 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 현재 디코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정한다. 여기서, 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함한다.
S230. 움직임 모델 최적화 벡터에 따라 현재 디코딩 블록을 디코딩할 수 있도록, 제1 성분 세트의 예측값 및 움직임 모델 전송 벡터에 따라 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정한다.
구체적으로, 디코더 측이 인코더 측에 의해 전송된 비트스트림을 수신하고, 이 비트스트림에 따라 디코딩을 수행하며, 현재 디코딩 블록의 움직임 벡터 그룹과 움직임 모델 전송 벡터를 결정한다. 여기서, 이 움직임 벡터 그룹은 현재 디코딩 블록 내의 화소에 대응하는 적어도 하나의 움직임 벡터를 포함한다. 디코더 측이 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 현재 디코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정한다. 여기서, 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함하고, 제1 성분 세트는 움직임 모델 초기화 벡터의 적어도 하나의 성분을 포함한다. 디코더 측이 제1 성분 세트의 예측값 및 움직임 모델 전송 벡터에 따라 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정한다. 그 다음에, 디코더 측이 양자화된 움직임 모델 최적화 벡터에 따라 현재 디코딩 블록의 예측 샘플을 결정하고, 이 예측 샘플에 따라 현재 디코딩 블록에 대해 디코딩 및 복원을 수행한다.
따라서, 본 발명의 본 실시예의 비디오 이미지 디코딩 방법에 따르면, 움직임 벡터 그룹 및 현재 디코딩 블록의 움직임 모델 전송 벡터가 수신된 비트스트림에 따라 결정되고; 현재 디코딩 블록의 움직임 모델 초기화 벡터가 이 움직임 벡터 그룹에 따라 결정되며; 움직임 모델 최적화 벡터가 움직임 모델 초기화 벡터 및 움직임 모델 전송 벡터에 따라 결정되고; 디코딩 및 복원이 움직임 모델 최적화 벡터에 대해 수행된다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다.
S210에서, 디코딩 장치가 비트스트림에 따라 현재 디코딩 블록의 움직임 벡터 그룹과 움직임 모델 전송 벡터를 결정한다. 움직임 벡터 그룹은 현재 디코딩 블록의 적어도 하나의 움직임 벡터를 포함하고, 각각의 움직임 벡터는 현재 디코딩 블록 내의 하나의 화소에 대응하고 있다. 선택적으로, 움직임 모델을 설명하는 데 필요한 파라미터의 개수가 움직임 모델에 따라 달라진다. 2n개의 파라미터를 가진 움직임 모델의 경우, 디코더 측에 의해 결정된 움직임 모델 전송 벡터는 2n개의 차원의 벡터이고, 현재 디코딩 블록의 움직임 벡터 그룹은 일반적으로 n개의 움직임 벡터를 포함할 수 있다. 예를 들어, 아핀 움직임의 경우, 현재 디코딩 블록 내의 모든 화소가 아핀 움직임 모델을 이용하여 표현되면, 일반적으로 아핀 움직임 모델은 로서 표현될 수 있다. 즉, 아핀 움직임 모델은 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개의 파라미터는 로서 표현될 수 있다. 현재 디코딩 블록 내의 각각의 화소의 참조 프레임 내 위치가 수식 (7)에 따라 결정될 수 있다. 여기서, x와 y는 현재 디코딩 블록 내의 임의의 화소의 좌표값이고, 와 는 상기 참조 프레임 내의 대응하는 예측 포인트에서 상기 화소의 좌표값이며, 와 는 현재 디코딩 블록 내의 임의의 화소의 움직임 벡터이다. 수식 (8)이 얻어질 수 있다. S210에서 결정된 움직임 벡터 그룹에 따라, 이 움직임 벡터 그룹이 로서 표현될 수 있고, 이 움직임 벡터 그룹 내의 움직임 벡터의 좌표가 (0,0), (W,0), 및 (0,H)일 수 있다. 여기서, W는 현재 디코딩 블록의 폭이고, H는 현재 디코딩 블록의 높이이다. 움직임 벡터 그룹과 좌표를 수식 (8)에 대입하여 수식 (9)를 얻을 수 있다. 여기서, 는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터 의 x-방향 성분이고, 는 j번째 후보 움직임 벡터 의 y-방향 성분이며, j=0, 1, 2이다. 따라서, 아핀 움직임 모델 내의 모든 파라미터를 얻을 수 있다. 수식 (6)에 나타낸 바 같이, 현재 디코딩 블록의 움직임 벡터 그룹이 수식 (6)에 대입되고, 현재 디코딩 블록의 움직임 모델 초기화 벡터 가 결정될 수 있다. 이 움직임 모델 초기화 벡터는 6차원 벡터이다. 선택적으로, 다른 움직임 모델의 경우, 이 초기화 벡터는 적어도 4개의 차원을 포함하는 벡터이다. 제1 성분 세트의 예측값이 움직임 모델 초기화 벡터에 따라 결정될 수 있다. 제1 성분 세트의 예측값은 움직임 모델 초기화 벡터의 적어도 하나의 성분을 포함할 수 있다.
S230에서, 디코더 측이 움직임 모델 최적화 벡터에 따라 디코딩을 수행할 수 있도록, 현재 디코딩 블록의 움직임 모델 최적화 벡터가 제1 성분 세트의 예측값 및 움직임 모델 전송 벡터에 따라 결정된다. 구체적으로, 현재 디코딩 블록의 움직임 모델 전송 벡터가 로서 표현될 수 있다. 과 이 제1 성분 세트의 전송 값을 나타낼 수 있고, 이며, 이다. 여기서, 과 은 제1 성분 세트의 예측값 과 이 양자화된 후에 획득되는 수치 값이다. 현재 디코딩 블록의 다른 파라미터 전송 값이 로서 표현될 수 있고, 가 결정될 수 있으며, 는 현재 디코딩 블록의 움직임 모델 최적화 벡터이다.
본 발명의 본 실시예에서, 제1 성분 세트의 예측값 과 이 양자화되어 제1 성분 세트의 양자화된 예측값 과 을 결정할 수 있다. 구체적으로, 아핀 움직임이 예로서 사용된다. 움직임 모델 초기화 벡터가 수식 (6)에 따라 결정된다. 이 움직임 모델 초기화 벡터에서, 과 은 병진 운동 파라미터이고, 움직임 벡터 그룹 내의 제1 움직임 벡터 와 관련되어 있다. 과 은 제1 성분 세트로서 결정될 수 있다. 선택적으로, 2개의 파라미터의 양자화 정밀도가 1/16 또는 1/4일 수 있다.
1/16이 예로서 사용된다. 먼저, 의 정밀도가 1/4에서 1/16로 높아질 수 있도록, 이 4배 스케일업되고; 그 다음에, 정밀도가 또한 1/16인 양자화된 과 이 정밀도가 1/16인 를 이용하여 계산되어 과 를 얻는다. 즉, 과 은 제1 성분 세트의 양자화된 예측값이다.
선택적으로, 일 실시예에서, 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값 가 수식 (6)에 따라 결정될 수 있다. 제1 성분 세트는 움직임 모델 초기화 벡터의 모든 컴포넌트를 포함한다. 즉, 제1 성분 세트는 6개의 파라미터를 포함하고, 그래서 현재 디코딩 블록의 움직임 모델 전송 값이 결정된다. 즉, 제1 성분 세트의 전송 값은 이다. 여기서, 이고, 는 현재 디코딩 블록의 움직임 모델 최적화 벡터이다.
본 발명의 일 실시예에서, 도 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이다.
S260에서, 현재 디코딩 블록이 양자화된 움직임 모델 최적화 벡터에 따라 디코딩된다. 구체적으로, 움직임 모델 최적화 벡터 가 수식 (7)에 대입되고, 그 다음에 현재 디코딩 블록 내에서 정밀도 Q를 가진 각각의 화소의 참조 오프셋 위치 를 얻을 수 있다. 현재 디코딩 블록 내의 각각의 화소 샘플의 예측 화소 샘플이 참조 오프셋 위치에서 계산을 통해 얻어진다. 그 다음에, 수신된 비트스트림 내의 현재 디코딩 블록의 결정된 예측 잔차에 따라 예측 화소 샘플에 대해 디코딩 및 복원이 수행된다. 선택적으로, 이 화소 샘플이 하나의 화소 또는 복수의 화소를 포함하는 작은 화소 블록일 수 있다. 본 발명은 이에 제한되지 않는다.
전술한 과정의 시퀀스 번호가 본 발명의 다양한 실시예에서의 실행 시퀀스를 의미하지 않는다는 것을 이해해야 한다. 이 과정의 실행 시퀀스가 기능 및 프로세스의 내부의 로직에 따라 결정되어야 하고, 본 발명의 실시예의 구현 과정에 대한 어떠한 제한으로서 해석되지 말아야 한다.
따라서, 본 발명의 본 실시예의 비디오 이미지 디코딩 방법에 따르면, 움직임 벡터 그룹 및 현재 디코딩 블록의 움직임 모델 전송 벡터가 수신된 비트스트림에 따라 결정되고; 현재 디코딩 블록의 움직임 모델 초기화 벡터가 이 움직임 벡터 그룹에 따라 결정되며; 움직임 모델 최적화 벡터가 움직임 모델 초기화 벡터 및 움직임 모델 전송 벡터에 따라 결정되고; 디코딩 및 복원이 움직임 모델 최적화 벡터에 대해 수행된다. 이런 방식으로, 전송을 인코딩하고 디코딩하는 데 있어서 데이터의 양과 점유되는 비트의 수가 줄어들 수 있다. 또한, 이 움직임 모델 최적화 벡터가 결정되고 이 최적화 벡터가 양자화되는 경우에, 결정되는 양자화 정밀도는 현재 디코딩 블록의 크기 및 현재 디코딩 블록의 움직임 벡터의 양자화 정밀도에 따라 결정된다. 이로 인해 파라미터 전송에 필요한 비트의 수가 줄어들 수도 있다.
종래 기술와 비교하여 본 발명의 본 실시예의 유리한 효과를 더 잘 입증하기 위해, 본 발명의 본 실시예가 최신 비디오 인코딩 표준 HEVC에 기반한 인코더 상에서 구현되어 있다. HM12.0를 레퍼런스로서 이용하여, 방법들이 실험을 통해 비교되고, 본 발명의 본 실시예에서의 방법을 이용하여 얻은 결과가 사례 1에서의 HM12.0 방법을 이용하여 얻은 결과보다 명백히 더 낫다는 것이 밝혀졌다.
표 1을 참조하라.
(표 1)
사례 4는 레퍼런스 비교 결과를 나타낸다. 여기서, 단지 파라미터 만이 예측되고, 이 1/16의 정밀도를 이용하여 양자화되며, 가 수식 (10)에 따라 계산된 정밀도를 이용하여 양자화된다.
사례 5는 레퍼런스 비교 결과를 나타낸다. 여기서, 단지 파라미터 만이 예측되고, 이 1/4의 정밀도를 이용하여 양자화되며, 가 수식 (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개의 움직임 벡터를 포함할 수 있다. 예를 들어, 아핀 움직임의 경우, 현재 인코딩 블록 내의 모든 화소가 아핀 움직임 모델을 이용하여 표현되는 경우, 일반적으로 아핀 움직임 모델은 로서 표현될 수 있다. 즉, 아핀 움직임 모델이 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)에 따라 결정될 수 있다. 여기서, 는 화소의 원래 화소값이고, 는 후보 블록의 움직임 벡터가 가리키는 프레임 내의 화소의 예측 화소값이며, 와 는 화소의 좌표값이고, 는 화소의 위치의 수평 기울기이며, 는 화소의 위치의 수직 기울기이다. 이러한 기울기는 소벨(Sobel) 연산자를 이용하여 계산을 통해 얻어질 수 있다.
본 발명의 본 실시예에서, 제1 결정 모듈(310)이 수식 (1) 내지 수식 (4)에 따라, 후보 블록의 움직임 벡터에 대응하는 예측 블록과 관련된 현재 인코딩 블록 내의 각각의 화소의 매칭 에러값을 결정하고, 현재 인코딩 블록 내의 모든 화소의 매칭 에러값의 절대값을 합산할 수 있다. 현재 인코딩 블록과 후보 블록에 대응하는 예측 블록 간의 매칭 에러값을 얻을 수 있다. 하지만, 본 발명은 이에 제한되지 않는다. 전술한 방법에 따라, 현재 인코딩 블록과 각각의 후보 블록에 대응하는 예측 블록 간의 매칭 에러값이 순차적으로 결정된다. 가장 작은 매칭 에러값에 대응하는 후보 블록이 현재 인코딩 블록의 타깃 후보 블록으로서 사용된다.
선택적으로, 일 실시예에서, 아핀 움직임이 예로서 사용된다. 제1 결정 모듈(310)이 현재 인코딩 블록의 움직임 벡터 그룹을 결정한다. 이 움직임 벡터 그룹은 3개의 움직임 벡터를 포함한다. 이 움직임 벡터 그룹의 하나의 움직임 벡터, 즉 제1 움직임 벡터가 전술한 방법에 따라 결정된 후에, 도 2에 도시된 바와 같이, 제1 움직임 벡터는 현재 인코딩 블록의 꼭지점에 대응하는 움직임 벡터일 수 있다. 선택적으로, 현재 인코딩 블록의 꼭지점에 인접한 2개의 꼭지점의 움직임 벡터가 움직임 벡터 그룹 내의 다른 움직임 벡터로서 선택될 수 있다. 이 움직임 벡터 그룹은 로서 표현될 수 있고, 이 움직임 벡터 그룹 내의 움직임 벡터의 좌표가 (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는 현재 인코딩 블록의 높이이며, 는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터 의 x-방향 성분이고, 는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터 의 y-방향 성분이며, j=0, 1, 2이고, x와 y는 현재 인코딩 블록 내의 각각의 화소의 좌표값이며, 와 는 제1 후보 움직임 벡터 그룹 내의 참조 프레임에 대응하는 예측점에서의 화소의 좌표값이다.
현재 인코딩 블록 내의 각각의 화소의 좌표값 및 현재 인코딩 블록 내의 화소의 좌표값에 따라, 참조 프레임에 대응하는 예측 포인트에서, 제1 후보 움직임 벡터 그룹에 대해서, 현재 인코딩 블록 내의 각각의 화소와 제1 후보 움직임 벡터 그룹의 참조 프레임에 대응하는 예측 포인트 간의 매칭 에러값이 수식 (1)에 따라 결정된다. 여기서, 이다. 제1 후보 움직임 벡터 그룹과 관련된 각각의 화소의 매칭 에러값의 절대값이 계산되고, 이 절대값이 합산되어 현재 인코딩 블록에 대응하는 제1 후보 움직임 벡터 그룹의 매칭 에러값을 결정한 다. 유사하게, 각각의 후보 움직임 벡터 그룹과 관련된 현재 인코딩 블록의 매칭 에러값이 결정되고, 복수의 후보 움직임 벡터 그룹에 대응하는 복수의 매칭 에러값 중에서 가장 작은 값에 대응하는 후보 움직임 벡터 그룹이 현재 인코딩 블록의 움직임 벡터 그룹으로서 결정된다. 디코더 측이 인덱스 값에 따라 이 움직임 벡터 그룹을 결정할 수 있도록, 이 움직임 벡터 그룹의 인덱스 값이 인코딩되어 디코더 측에 전송된다.
본 발명의 본 실시예에서, 제1 결정 모듈(310)에 의해 결정된 움직임 벡터 그룹의 경우, 이 움직임 벡터 그룹의 임의의 움직임 벡터가 후속 움직임 추정의 검색 시작점으로서 사용될 수 있다. 선택적으로, 도 2에 도시된 바와 같이, 현재 인코딩 블록의 좌측 상부 모서리에서의 꼭지점의 예측 위치가 후속 움직임 추정에 있어서의 검색 시작점으로서 사용될 수 있다. 본 발명은 이에 제한되지 않는다.
본 발명의 본 실시예에서, 제2 결정 모듈(320)이 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라 현재 인코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정한다. 이 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함한다. 제1 성분 세트는 움직임 모델 초기화 벡터의 적어도 하나의 성분을 포함한다. 구체적으로, 아핀 움직임 모델이 예로서 사용된다. 아핀 모델은 6개의 파라미터를 이용하여 나타낼 수 있고, 6개의 파라미터는 로서 표현될 수 있다. 현재 인코딩 블록 내의 각각의 화소의 참조 프레임 내의 위치가 수식 (7)에 따라 결정될 수 있고, x와 y는 현재 인코딩 블록 내의 임의의 화소의 좌표값이며, 와 는 화소의 참조 프레임 내의 대응하는 예측 포인트에서의 좌표값이며, 와 는 현재 인코딩 블록 내의 임의의 화소의 움직임 벡터이다. 수식 (8)이 얻어질 수 있다. 제1 결정 모듈(310)에 의해 결정된 움직임 벡터 그룹에 따라, 이 움직임 벡터는 로서 표현될 수 있다. 이 움직임 벡터 그룹에 대응하는 타깃 후보 블록은 도 2에 도시된 블록 A 내지 블록 G이다. 따라서, 움직임 벡터 그룹 내의 움직임 벡터의 좌표가 (0,0), (W,0), 및 (0,H)일 수 있다. 여기서, W는 현재 인코딩 블록의 폭이고, H는 현재 인코딩 블록의 높이이다. 움직임 벡터 그룹과 좌표를 수식 (8)에 대입하여 수식 (9)를 얻을 수 있다. 여기서, 는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터 의 x-방향 성분이고, 는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터 의 y-방향 성분이며, j=0, 1, 2이다. 따라서, 아핀 움직임 모델 에서의 모든 파라미터가 얻어질 수 있다. 수식 (6)에 나타낸 바와 같이, 현재 인코딩 블록의 움직임 벡터 그룹 이 수식 (6)에 대입되고, 현재 인코딩 블록의 움직임 모델 초기화 벡터 가 결정될 수 있다. 이 움직임 모델 초기화 벡터는 6차원 벡터이다. 선택적으로, 다른 움직임 모델의 경우, 이 초기화 벡터가 적어도 4개의 차원을 포함하는 벡터이다. 제1 성분 세트의 예측값이 움직임 모델 초기화 벡터에 따라 결정될 수 있다. 제1 성분 세트의 예측값은 움직임 모델 초기화 벡터의 적어도 하나의 성분일 수 있다.
본 발명의 본 실시예에서, 제3 결정 모듈(330)이 제1 성분 세트의 예측값에 따라 제1 성분 세트의 전송될 값을 결정한다. 구체적으로, 제3 결정 모듈(330)이 현재 인코딩 블록에 따라 움직임 모델 양자화 정밀도 및 움직임 모델 최적화 벡터를 결정하고, 이 움직임 모델 양자화 정밀도에 따라 움직임 모델 최적화 벡터를 양자화하며, 움직임 모델의 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 제1 성분 세트의 전송될 값을 결정할 수 있다.
본 발명의 본 실시예에서, 제3 결정 모듈(330)이 움직임 모델 최적화 벡터를 먼저 결정할 수 있다. 선택적으로, 움직임 모델 최적화 벡터가 종래 기술에 따라 결정될 수 있다. 구체적으로, 현재 인코딩 블록의 매칭 에러값이 수식 (1) 내지 수식 (4)에 따라 결정될 수 있다. 현재 인코딩 블록의 예측 블록이 현재 인코딩 블록의 참조 프레임의 특정 범위 내에서 기울기 반복 방식으로 검색된다. 가장 작은 매칭 에러값에 대응하는 예측 블록이 현재 인코딩 블록의 예측 블록으로서 결정되고, 이때의 대응하는 움직임 모델 파라미터 가 수식 (4)에 따라 현재 인코딩 블록의 최적화 벡터로서 결정된다.
선택적으로, 제3 결정 모듈(330)이 추가적으로, 수식 (6)에 따라 현재 인코딩 블록의 움직임 모델 초기화 벡터를 결정하고, 이 움직임 모델 초기화 벡터를 움직임 모델 최적화 벡터로서 결정할 수 있다.
선택적으로, 현재 인코딩 블록의 움직임 모델 초기화 벡터가 수식 (6)에 따라 추가로 결정될 수 있다. 현재 인코딩 블록 내의 각각의 화소의 참조 프레임 내의 대응하는 위치가 수식 (7)에 따라 계산을 통해 얻어진다. 현재 인코딩 블록의 매칭 에러값이 수식 (1) 및 수식 (6)에 따라 계산된다. 이 매칭 에러값은 움직임 모델 파라미터에 대응하고 있고 공식 (1) 내지 공식 (4)와 종래 기술에 따라 결정되는 매칭 에러값과 비교된다. 가장 작은 매칭 에러값에 대응하는 움직임 모델 파라미터 가 현재 인코딩 블록의 최적화 벡터로서 선택된다. 본 발명은 이에 제한되지 않는다.
본 발명의 본 실시예에서, 움직임 모델 최적화 벡터를 양자화하기 위해, 제3 결정 모듈(330)은 추가적으로, 움직임 모델 양자화 정밀도를 결정할 필요가 있다. 구체적으로, 움직임 모델 최적화 벡터는 2개의 병진 운동 파라미터 와 를 포함한다. 2개의 병진 운동 파라미터의 양자화 정밀도가 1/16 또는 1/4일 수 있다. 본 발명은 이에 제한되지 않는다. 움직임 모델 최적화 벡터 내의 다른 파라미터 의 양자화 정밀도가 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이다.
본 발명의 본 실시예에서, 제3 결정 모듈(330)이 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 제1 성분 세트의 전송될 값을 결정한다. 구체적으로, 이 결정이 다음의 방법을 이용하여 수행될 수 있다. 여기서, 아핀 움직임이 예로서 사용된다. 움직임 모델 초기화 벡터는 수식 (6)에 따라 결정된다. 이 움직임 모델 초기화 벡터에서, 과 이 병진 운동 파라미터이고, 움직임 벡터 그룹 내의 제1 움직임 벡터 와 관련되어 있다. 과 이 제1 성분 세트로서 결정될 수 있고, 수식 (6)에 따라 결정된 값 과 은 제1 성분 세트의 예측값이다. 선택적으로, 2개의 파라미터의 양자화 정밀도가 1/16 또는 1/4일 수 있다. 1/16이 예로서 사용된다. 먼저, 의 정밀도가 1/4에서 1/16로 높아질 수 있도록, 이 4배 스케일업된다. 그 다음에, 과 을 획득하기 위해, 정밀도가 또한 1/16인 양자화된 과 이 정밀도가 1/16인 을 이용하여 계산된다. 즉, 과 은 제1 성분 세트의 양자화된 예측값이다.
본 발명의 본 실시예에서, 제3 결정 모듈(330)이 제1 성분 세트의 양자화된 예측값 과 및 결정된 움직임 모델 최적화 벡터에 따라 현재 인코딩 블록의 제1 성분 세트의 전송될 값을 결정한다. 현재 인코딩 블록의 움직임 모델 전송 값은 일 수 있다. 제1 성분 세트는 2개의 성분을 포함할 수 있다. 제1 성분 세트의 전송 값은 과 일 수 있고, 이며, 이다. 다른 전송 값은 이고, 는 양자화된 움직임 모델 최적화 벡터이며, 과 은 제1 성분 세트의 예측값 과 의 양자화된 값이다. 이 경우에, 인코딩 전송 파라미터 중의 2개의 파라미가는 양자화된 제1 성분 세트와 움직임 모델 최적화 벡터 간의 차이이다. 직접 인코딩 전송에서는 이 차이가 양자화된 움직임 모델 최적화 벡터에 의해 점유된 비트의 수보다 작다. 이로 인해 전송되는 데이터의 양이 줄어든다.
선택적으로, 일 실시예에서, 제3 결정 모듈(330)이 제1 성분 세트의 예측값 및 양자화된 움직임 모델 최적화 벡터에 따라 제1 성분 세트의 전송될 값을 결정한다. 구체적으로, 결정하는 단계가 다음의 방법에 따라 추가로 수행될 수 있다. 수식 (6)에 따라, 움직임 모델 초기화 벡터의 6개의 성분 가 결정된다. 여기서, i= 0, 1, 2, 3, 4, 5이다. 그 다음에, 제1 성분 세트도 또한 6개의 파라미터를 포함한다고 결정되고, 현재 인코딩 블록의 움직임 모델 전송 값이 결정될 수 있다. 즉, 제1 성분 세트의 전송 값은 이다. 여기서, 이고, 는 양자화된 움직임 모델 최적화 벡터이며, 는 제1 성분 세트의 예측값이다.
본 발명의 본 실시예에서, 인코딩 모듈(340)이 제3 결정 모듈(330)에 의해 결정되는 제1 성분 세트의 전송될 값을 인코딩하고, 제1 성분 세트의 인코딩된 전송될 값을 디코더 측에 전송할 수 있다. 구체적으로, 인코딩 모듈(340)이 현재 인코딩 블록의 움직임 모델 전송될 벡터를 인코딩할 수 있고, 현재 인코딩 블록의 인코딩된 움직임 모델 전송될 벡터를 디코더 측에 전송한다. 또한, 인코딩 모듈(340)은 추가적으로, 제3 결정 모듈(330)에 의해 결정된 움직임 모델 양자화 정밀도에 따라 움직임 모델 최적화 벡터를 양자화하고; 현재 인코딩 블록의 각각의 화소 샘플의 예측 화소 샘플을 결정하며; 추가적으로, 현재 인코딩 블록의 예측 잔차를 결정하고, 예측 잔차를 인코딩하며, 이 인코딩된 예측 잔차를 디코더 측에 전송할 수 있다. 구체적으로, 움직임 모델 최적화 벡터 의 경우, 양자화된 움직임 모델 최적화 벡터 를 획득하기 위해, 각각의 파라미터 가 수식 (10)에 따라 결정된 움직임 모델 양자화 정밀도에 따라 양자화된다. 양자화된 움직임 모델 최적화 벡터는 수식 (7)에 대입되고, 현재 인코딩 블록 내에서 정밀도 Q를 가진 각각의 화소의 참조 오프셋 위치 가 얻어질 수 있다. 현재 인코딩 블록 내의 각각의 화소 샘플의 예측 화소 샘플이 참조 오프셋 위치에서 계산을 통해 얻어진다. 또한, 현재 인코딩 블록의 예측 잔차가 결정되고, 이 예측 잔차는 인코딩되어 디코더 측에 전송된다. 선택적으로, 이 화소 샘플이 하나의 화소 또는 복수의 화소를 포함하는 작은 화소 블록일 수 있다. 본 발명은 이에 제한되지 않는다.
본 발명의 본 실시예에 따른 인코딩 장치(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개의 움직임 벡터를 포함할 수 있다. 예를 들어, 아핀 움직임의 경우, 현재 디코딩 블록 내의 모든 화소가 아핀 움직임 모델을 이용하여 표현되는 경우, 일반적으로 아핀 움직임 모델은 로서 표현될 수 있다. 즉, 아핀 움직임 모델이 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개의 파라미터는 로서 표현될 수 있다. 현재 디코딩 블록 내의 각각의 화소의 참조 프레임 내 위치가 수식 (7)에 따라 결정될 수 있다. 여기서, x와 y는 현재 디코딩 블록 내의 임의의 화소의 좌표값이고, 와 는 이 화소의 참조 프레임 내의 대응하는 예측 포인트에서의 좌표값이며, 와 는 현재 디코딩 블록 내의 임의의 화소의 움직임 벡터이다. 수식 (8)이 얻어질 수 있다. S210에서 결정된 움직임 벡터 그룹에 따라, 이 움직임 벡터 그룹은 로서 표현될 수 있고, 이 움직임 벡터 그룹 내의 움직임 벡터의 좌표가 (0,0), (W,0), 및 (0,H)일 수 있다. 여기서, W는 현재 디코딩 블록의 폭이고, H는 현재 디코딩 블록의 높이이다. 이 움직임 벡터 그룹과 좌표를 수식 (8)에 대입하여 수식 (9)가 얻어질 수 있다. 여기서, 는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터 의 x-방향 성분이고, 는 제1 후보 움직임 벡터 그룹 내의 j번째 후보 움직임 벡터 의 y-방향 성분이며, j=0, 1, 2이다. 따라서, 아핀 움직임 모델 에서의 모든 파라미터가 얻어질 수 있다. 수식 (6)에 나타낸 바와 같이, 현재 디코딩 블록의 움직임 벡터 그룹이 수식 (6)에 대입되고, 현재 디코딩 블록의 움직임 모델 초기화 벡터 가 결정될 수 있다. 이 움직임 모델 초기화 벡터는 6차원 벡터이다. 선택적으로, 다른 움직임 모델의 경우, 이 초기화 벡터가 적어도 4개의 차원을 포함하는 벡터이다. 제1 성분 세트의 예측값이 이 움직임 모델 초기화 벡터에 따라 결정될 수 있다. 제1 성분 세트의 예측값은 이 움직임 모델 초기화 벡터의 적어도 하나의 성분일 수 있다.
본 발명의 본 실시예에서, 디코더 측이 움직임 모델 최적화 벡터에 따라 디코딩을 수행할 수 있도록, 제3 결정 모듈(430)이 제1 성분 세트의 예측값 및 움직임 모델 전송 벡터에 따라 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정한다. 구체적으로, 현재 디코딩 블록의 움직임 모델 전송 값이 로서 표현될 수 있다. 과 은 제1 성분 세트의 전송 값을 나타낼 수 있고, 이며, 이다. 여기서, 과 는 제1 성분 세트의 예측값 과 이 양자화된 후에 획득되는 수치 값이다. 현재 디코딩 블록의 다른 파라미터 전송 값이 로서 표현될 수 있고, 가 결정될 수 있으며, 는 현재 디코딩 블록의 움직임 모델 최적화 벡터이다.
본 발명의 본 실시예에서, 제1 성분 세트의 양자화된 예측값 과 을 결정하기 위해, 제3 결정 모듈(430)이 제1 성분 세트의 예측값 과 을 양자화할 수 있다. 구체적으로, 아핀 움직임이 예로서 사용된다. 움직임 모델 초기화 벡터가 수식 (6)에 따라 결정된다. 이 움직임 모델 초기화 벡터에서, 과 은 병진 운동 파라미터이고, 이 움직임 벡터 그룹 내의 제1 움직임 벡터 와 관련되어 있다. 과 은 제1 성분 세트로서 결정될 수 있다. 선택적으로, 2개의 파라미터의 양자화 정밀도가 1/16 또는 1/4일 수 있다. 1/16이 예로서 사용된다. 먼저, 의 정밀도가 1/4에서 1/16로 높아질 수 있도록, 이 4배 스케일업되고; 그 다음에, 과 를 획득하기 위해 정밀도가 역시 1/16인 양자화된 과 가 정밀도가 1/16인 을 이용하여 계산된다. 즉, 과 은 제1 성분 세트의 양자화된 예측값이다.
선택적으로, 일 실시예에서, 제3 결정 모듈(430)이 수식 (6)에 따라 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값 를 결정할 수 있다. 제1 성분 세트는 이 움직임 모델 초기화 벡터의 모든 컴포넌트를 포함한다. 즉, 제1 성분 세트는 6개의 파라미터를 포함하고, 그래서 현재 디코딩 블록의 움직임 모델 전송 값이 결정된다. 즉, 제1 성분 세트의 전송 값이 이다. 여기서, 이고, 는 현재 디코딩 블록의 움직임 모델 최적화 벡터이다.
본 발명의 본 실시예에서, 제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)이, 결정되는 양자화 정밀도에 따라 결정된 움직임 모델 최적화 벡터를 양자화하여, 양자화된 움직임 모델 최적화 벡터 를 얻는다.
구체적으로, 본 발명의 본 실시예에서, 제3 결정 모듈(430)이 양자화된 움직임 모델 최적화 벡터에 따라 현재 디코딩 블록을 인코딩한다. 구체적으로, 이 움직임 모델 최적화 벡터 가 수식 (7)에 대입되고, 그 다음에 현재 디코딩 블록 내에서 정밀도 Q를 가진 각각의 화소의 참조 오프셋 위치 가 얻어질 수 있다. 현재 디코딩 블록 내의 각각의 화소 샘플의 예측 화소 샘플이 참조 오프셋 위치에서 계산을 통해 얻어진다. 그 다음에, 현재 디코딩 블록의 수신된 비트스트림 내의 결정된 예측 잔차에 따라 이 예측 화소 샘플에 대해 디코딩 및 복원이 수행된다. 선택적으로, 이 화소 샘플이 하나의 화소 또는 복수의 화소를 포함하는 작은 화소 블록일 수 있다. 본 발명은 이에 제한되지 않는다.
이에 따라, 본 발명의 본 실시예에 따른 디코딩 장치(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개의 성분 를 결정하는 동작을 수행한다. 여기서, i=0, 1, 2, 3, 4, 5이고, W는 현재 인코딩 블록의 폭이며, H는 현재 인코딩 블록의 높이이고, 는 움직임 벡터 의 x-방향 성분이며, 는 움직임 벡터 의 y-방향 성분이고, j=0, 1, 2이다.
선택적으로, 일 실시예에서, 제1 성분 세트가 움직임 모델 초기화 벡터의 2개의 성분을 포함하고, 프로세서(510)가 메모리에 저장된 프로그램 코드(520)을 호출함으로써, 제1 성분 세트의 전송될 값을 결정하는 동작을 수행한다. 여기서, 제1 성분 세트의 전송될 값이 과 를 포함하고, 이며, 이고, 와 는 제1 성분 세트에 대응하는 양자화된 움직임 모델 최적화 벡터이며, 과 은 제1 성분 세트의 예측값 과 이 양자화된 후에 획득되는 수치 값이다.
선택적으로, 일 실시예에서, 제1 성분 세트가 움직임 모델 초기화 벡터의 6개의 성분을 포함하고, 프로세서(510)가 메모리에 저장된 프로그램 코드(520)을 호출함으로써, 제1 성분 세트의 전송될 값을 결정하는 동작을 수행한다. 여기서, 제1 성분 세트의 전송될 값은 를 포함하고, i= 0, 1, 2, 3, 4, 5이며, 이고, 는 양자화된 움직임 모델 최적화 벡터이며, 는 제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개의 성분 을 결정하는 동작을 수행할 수 있다. 여기서, i= 0, 1, 2, 3, 4, 5이고, W는 현재 디코딩 블록의 폭이며, H는 현재 디코딩 블록의 높이이고, 는 움직임 벡터 의 x-방향 성분이며, 는 움직임 벡터 의 y-방향 성분이고, j=0, 1, 2이다.
선택적으로, 일 실시예에서, 제1 성분 세트가 움직임 모델 초기화 벡터의 2개의 성분을 포함하고, 프로세서(610)가 메모리에 저장된 프로그램 코드(620)를 호출함으로써, 현재 디코딩 블록의 움직임 모델 최적화 벡터가 이고, 이며, 라고 결정하는 동작을 수행할 수 있다. 여기서, 는 움직임 모델 전송 벡터이고, 과 은 제1 성분 세트의 예측값 과 을 양자화하여 획득되는 수치 값이다.
선택적으로, 일 실시예에서, 제1 성분 세트가 움직임 모델 초기화 벡터의 6개의 성분을 포함하고, 프로세서(610)가 메모리에 저장된 프로그램 코드(620)를 호출함으로써, 현재 디코딩 블록의 움직임 모델 최적화 벡터가 라고 결정하는 동작을 수행할 수 있다. 여기서, 이고, 는 움직임 모델 전송 벡터이며, 는 제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)
- 비디오 이미지 디코딩 방법으로서,
비트스트림에 따라 움직임 벡터 그룹(motion vector group) 및 현재 디코딩 블록의 움직임 모델 전송 벡터(motion model transmission vector)를 결정하는 단계 - 상기 움직임 벡터 그룹은 상기 현재 디코딩 블록의 적어도 하나의 움직임 벡터를 포함하고, 상기 움직임 모델 전송 벡터는 적어도 4개의 성분을 포함하고 있음 -;
상기 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라, 상기 현재 디코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정하는 단계 - 상기 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함하고 있음 -; 및
움직임 모델 최적화 벡터에 따라 상기 현재 디코딩 블록을 디코딩할 수 있도록, 상기 제1 성분 세트의 예측값 및 상기 움직임 모델 전송 벡터에 따라 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정하는 단계
를 포함하고,
상기 비디오 이미지 디코딩 방법은,
상기 현재 디코딩 블록의 크기 및 정밀도 정보에 따라, 상기 현재 디코딩 블록의 움직임 모델 양자화 정밀도(motion model quantization precision)를 결정하는 단계;
상기 움직임 모델 양자화 정밀도에 따라 상기 움직임 모델 최적화 벡터를 양자화하는 단계; 및
양자화된 움직임 모델 최적화 벡터에 따라 상기 현재 디코딩 블록을 디코딩하는 단계
를 더 포함하고,
상기 현재 디코딩 블록의 크기는 상기 현재 디코딩 블록의 폭 및 상기 현재 디코딩 블록의 높이를 포함하고, 상기 정밀도 정보는 상기 움직임 벡터 그룹의 양자화 정밀도를 포함하며;
이에 따라, 상기 현재 디코딩 블록의 크기 및 정밀도 정보에 따라 상기 움직임 모델 양자화 정밀도를 결정하는 단계는,
상기 움직임 모델 양자화 정밀도 Q를 아래의 수식에 따라 결정하는 단계를 포함하고,
여기서, P는 상기 움직임 벡터 그룹의 양자화 정밀도이고, W는 상기 현재 디코딩 블록의 폭이며, H는 상기 현재 디코딩 블록의 높이인, 비디오 이미지 디코딩 방법. - 제1항에 있어서,
상기 움직임 모델 초기화 벡터, 상기 움직임 모델 전송 벡터, 및 상기 움직임 모델 최적화 벡터 각각은 6개의 성분을 포함하고, 상기 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하며, 상기 3개의 움직임 벡터는 상기 현재 디코딩 블록 내의 3개의 화소와 일대일 대응관계에 있는, 비디오 이미지 디코딩 방법. - 제1항 내지 제5항 중 어느 한 항에 있어서,
상기 움직임 벡터 그룹 및 현재 디코딩 블록의 움직임 모델 전송 벡터를 결정하는 단계는,
상기 비트스트림에 따라 상기 현재 디코딩 블록의 타깃 후보 블록 및 상기 타깃 후보 블록의 움직임 벡터를 결정하는 단계;
상기 현재 디코딩 블록의 참조 프레임(reference frame)의 픽쳐 오더 카운트(picture order count) 및 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트를 획득하는 단계;
상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 상기 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율에 따라, 상기 움직임 벡터 그룹 내의 제1 움직임 벡터를 결정하는 단계 - 상기 타깃 후보 블록의 움직임 벡터에 대한 상기 제1 움직임 벡터의 비율은 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 상기 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율과 동일함 -; 및
상기 제1 움직임 벡터에 따라 상기 움직임 벡터 그룹을 결정하는 단계
를 포함하는, 비디오 이미지 디코딩 방법. - 제1항 내지 제5항 중 어느 한 항에 있어서,
상기 비트스트림에 따라 움직임 벡터 그룹 및 현재 디코딩 블록의 움직임 모델 전송 벡터를 결정하는 단계는,
상기 비트스트림에 따라 상기 현재 디코딩 블록 중 타깃 후보 블록의 움직임 벡터를 결정하는 단계;
상기 현재 디코딩 블록 중 상기 타깃 후보 블록의 움직임 벡터를 상기 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정하는 단계;
상기 제1 움직임 벡터에 따라 상기 움직임 벡터 그룹 내의 제2 움직임 벡터를 결정하는 단계; 및
상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 따라 상기 움직임 벡터 그룹을 결정하는 단계
를 포함하는, 비디오 이미지 디코딩 방법. - 비디오 이미지 디코딩을 위한 디코딩 장치로서,
비트스트림에 따라 움직임 벡터 그룹(motion vector group) 및 현재 디코딩 블록의 움직임 모델 전송 벡터(motion model transmission vector)를 결정하도록 구성된 제1 결정 모듈 - 상기 움직임 벡터 그룹은 상기 현재 디코딩 블록의 적어도 하나의 움직임 벡터를 포함하고, 상기 움직임 모델 전송 벡터는 적어도 4개의 성분을 포함하고 있음 -;
상기 움직임 벡터 그룹의 적어도 하나의 움직임 벡터에 따라, 상기 현재 디코딩 블록의 움직임 모델 초기화 벡터의 제1 성분 세트의 예측값을 결정하도록 구성된 제2 결정 모듈 - 상기 움직임 모델 초기화 벡터는 적어도 4개의 성분을 포함하고 있음 -; 및
움직임 모델 최적화 벡터에 따라 상기 현재 디코딩 블록을 디코딩할 수 있도록, 상기 제1 성분 세트의 예측값 및 상기 움직임 모델 전송 벡터에 따라 상기 현재 디코딩 블록의 움직임 모델 최적화 벡터를 결정하도록 구성된 제3 결정 모듈
을 포함하고,
상기 제3 결정 모듈은 구체적으로,
상기 현재 디코딩 블록의 크기 및 정밀도 정보에 따라, 상기 현재 디코딩 블록의 움직임 모델 양자화 정밀도(motion model quantization precision)를 결정하고;
상기 움직임 모델 양자화 정밀도에 따라 상기 움직임 모델 최적화 벡터를 양자화하며;
양자화된 움직임 모델 최적화 벡터에 따라 상기 현재 디코딩 블록을 디코딩하도록 구성되며,
상기 현재 디코딩 블록의 크기는 상기 현재 디코딩 블록의 폭 및 상기 현재 디코딩 블록의 높이를 포함하고, 상기 정밀도 정보는 상기 움직임 벡터 그룹의 양자화 정밀도를 포함하며;
상기 제3 결정 모듈은 구체적으로,
상기 움직임 모델 양자화 정밀도 Q를 아래의 수식에 따라 결정하도록 구성되고,
여기서, P는 상기 움직임 벡터 그룹의 양자화 정밀도이고, W는 상기 현재 디코딩 블록의 폭이며, H는 상기 현재 디코딩 블록의 높이인, 디코딩 장치. - 제8항에 있어서,
상기 움직임 모델 초기화 벡터, 상기 움직임 모델 전송 벡터, 및 상기 움직임 모델 최적화 벡터 각각은 6개의 성분을 포함하고, 상기 움직임 벡터 그룹은 3개의 움직임 벡터를 포함하며, 상기 3개의 움직임 벡터는 상기 현재 디코딩 블록 내의 3개의 화소와 일대일 대응관계에 있는, 디코딩 장치. - 제8항에 있어서,
상기 제1 결정 모듈은 구체적으로,
상기 비트스트림에 따라 상기 현재 디코딩 블록의 타깃 후보 블록 및 상기 타깃 후보 블록의 움직임 벡터를 결정하고;
상기 현재 디코딩 블록의 참조 프레임(reference frame)의 픽쳐 오더 카운트(picture order count) 및 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트를 획득하며;
상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 상기 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율에 따라, 상기 움직임 벡터 그룹 내의 제1 움직임 벡터를 결정하고 - 여기서, 상기 타깃 후보 블록의 움직임 벡터에 대한 상기 제1 움직임 벡터의 비율은 상기 타깃 후보 블록의 참조 프레임의 픽쳐 오더 카운트에 대한 상기 현재 디코딩 블록의 참조 프레임의 픽쳐 오더 카운트의 비율과 동일함 -; 및
상기 제1 움직임 벡터에 따라 상기 움직임 벡터 그룹을 결정하도록 구성된, 디코딩 장치. - 제8항에 있어서,
상기 제1 결정 모듈은 구체적으로,
상기 비트스트림에 따라 상기 현재 디코딩 블록 중 타깃 후보 블록의 움직임 벡터를 결정하고;
상기 현재 디코딩 블록 중 상기 타깃 후보 블록의 움직임 벡터를 상기 움직임 벡터 그룹 내의 제1 움직임 벡터로서 결정하며;
상기 제1 움직임 벡터에 따라 상기 움직임 벡터 그룹 내의 제2 움직임 벡터를 결정하고;
상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 따라 상기 움직임 벡터 그룹을 결정하도록 구성된, 디코딩 장치. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
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)
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)
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 |
-
2015
- 2015-02-16 CN CN201510085362.XA patent/CN104661031B/zh active Active
- 2015-02-16 CN CN201711090963.5A patent/CN107809642B/zh active Active
- 2015-08-12 MY MYPI2017703005A patent/MY185702A/en unknown
- 2015-08-12 KR KR1020177025899A patent/KR102010510B1/ko active IP Right Grant
- 2015-08-12 EP EP15882368.2A patent/EP3249927B1/en active Active
- 2015-08-12 JP JP2017542855A patent/JP6481912B2/ja active Active
- 2015-08-12 RU RU2017132279A patent/RU2679195C1/ru active
- 2015-08-12 MX MX2017010564A patent/MX2017010564A/es unknown
- 2015-08-12 SG SG11201706698YA patent/SG11201706698YA/en unknown
- 2015-08-12 WO PCT/CN2015/086724 patent/WO2016131229A1/zh active Application Filing
-
2017
- 2017-08-16 US US15/678,635 patent/US10349079B2/en active Active
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 |