KR102447241B1 - 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치 - Google Patents

이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치 Download PDF

Info

Publication number
KR102447241B1
KR102447241B1 KR1020217023755A KR20217023755A KR102447241B1 KR 102447241 B1 KR102447241 B1 KR 102447241B1 KR 1020217023755 A KR1020217023755 A KR 1020217023755A KR 20217023755 A KR20217023755 A KR 20217023755A KR 102447241 B1 KR102447241 B1 KR 102447241B1
Authority
KR
South Korea
Prior art keywords
unit
motion vector
encoded
decoded
control point
Prior art date
Application number
KR1020217023755A
Other languages
English (en)
Other versions
KR20210095745A (ko
Inventor
환방 천
시신 린
하이타오 양
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20210095745A publication Critical patent/KR20210095745A/ko
Application granted granted Critical
Publication of KR102447241B1 publication Critical patent/KR102447241B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

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

Abstract

이미지 인코딩 방법은, 제1 사전 설정 규칙에 따라 인코딩될 유닛의 인접한 인코딩된 유닛으로부터 N 개의 인코딩된 유닛을 결정하는 단계 - 상기 N 개의 인코딩된 유닛의 움직임 예측 모드가 상기 인코딩될 유닛의 움직임 예측 모드와 동일함 -; 제1 사전 설정 알고리즘을 이용하고 n 번째 인코딩된 유닛의 움직임 벡터를 기반으로 하여, n번째 움직임 벡터 그룹을 생성하는 단계; 획득된 N 개의 움직임 벡터 그룹으로부터 제2 사전 설정 규칙에 따라 하나의 움직임 벡터 그룹을 최적 움직임 벡터 그룹으로 결정하는 단계; 제2 사전 설정 알고리즘을 이용하고 상기 최적 움직임 벡터 그룹을 기반으로 하여, 상기 인코딩될 유닛의 각각의 샘플 유닛의 예측 샘플 값을 결정하는 단계; 및 상기 각각의 샘플 유닛의 예측 잔차 및 상기 최적 움직임 벡터 그룹의 인덱스 식별자를 인코딩하여, 상기 인코딩될 유닛에 대응하는 비트 스트림을 획득하는 단계를 포함한다.

Description

이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치{IMAGE ENCODING/DECODING METHOD AND DEVICE}
본 발명의 실시 예는 이미지 처리 기술에 관한 것으로, 더욱 상세하게 말하자면, 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치에 관한 것이다.
비디오 이미지 회의, 비디오 감시 및 웹 텔레비전과 같은 비디오 멀티미디어 애플리케이션은 삶과 일(work)에 광범위하게 적용된다. 따라서, 비디오 이미지 품질, 비디오 이미지 전송 및 비디오 이미지 저장에 점점 더 높은 요구 사항이 부과되고 그에 따라 이미지 인코딩 기술이 부각된다. 이미지 인코딩 기술에서 비디오 이미지 데이터는 인코딩되어 비디오 이미지 데이터의 중복 정보를 감소시키고 비디오 이미지 전송 및 저장을 용이하게 하며 비디오 이미지 품질을 보장한다.
기존의 이미지 인코딩 방법에서, 프레임간 예측(inter-frame prediction)(인트라-픽처 예측(Intra-frame Prediction))을 기반으로 하는 인코딩 방식이 사용될 수 있다. 인코딩될 유닛의 움직임 벡터는 인코딩될 유닛의 인접한 인코딩된 유닛의 움직임 벡터를 기반으로 결정되며, 인코딩될 유닛의 예측 샘플 값은 인코딩될 유닛의 움직임 벡터를 기반으로 결정된다. 또한, 인코딩될 유닛의 원래 샘플 값과 예측 샘플 값 사이의 잔차(residual)를 인코딩하여 인코딩될 유닛의 비트 스트림을 획득한다.
인접한 인코딩된 유닛과 인코딩될 유닛 사이의 움직임 상관은 또한, 인코딩될 유닛의 움직임 벡터에 영향을 미친다. 따라서, 기존의 이미지 인코딩 방법에서 결정되는 인코딩될 유닛의 움직임 벡터가 정확하지 않아서 이미지 인코딩의 정확성이 상대적으로 떨어지게 된다.
본 발명의 실시 예들은 이미지 인코딩 및 디코딩의 정확성을 향상시키기 위해 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치를 제공한다.
본 발명의 실시 예는 이미지 인코딩 방법을 제공하며, 상기 이미지 인코딩 방법은,
제1 사전 설정 규칙에 따라 인코딩될 유닛(to-be-encoded unit)의 인접한 인코딩된 유닛(encoded unit)으로부터 N 개의 인코딩된 유닛을 결정하는 단계 - 상기 N 개의 인코딩된 유닛의 움직임 예측 모드가 상기 인코딩될 유닛의 움직임 예측 모드와 동일하고, 상기 N은 양의 정수임 -;
제1 사전 설정 알고리즘을 이용하고 n 번째 인코딩된 유닛의 움직임 벡터를 기반으로 하여, n번째 움직임 벡터 그룹을 생성하는 단계 - 상기 n은 상기 N보다 크지 않은 임의의 양의 정수를 포함함 -;
제2 사전 설정 규칙에 따라, 획득된 N 개의 움직임 벡터 그룹으로부터 하나의 움직임 벡터 그룹을 최적 움직임 벡터 그룹으로 결정하는 단계;
제2 사전 설정 알고리즘을 이용하고 상기 최적 움직임 벡터 그룹을 기반으로 하여, 상기 인코딩될 유닛에서 각각의 샘플 유닛의 예측 샘플 값을 결정하는 단계;
상기 각각의 샘플 유닛의 원래 샘플 값과 상기 각각의 샘플 유닛의 상기 예측 샘플 값 사이의 차이를 기반으로 상기 각각의 샘플 유닛의 예측 잔차(prediction residual)를 결정하는 단계;
상기 각각의 샘플 유닛의 예측 잔차 및 상기 최적 움직임 벡터 그룹의 인덱스 식별자를 인코딩하여 상기 인코딩될 유닛에 대응하는 비트 스트림을 획득하는 단계를 포함하고, 상기 최적 움직임 벡터 그룹의 인덱스 식별자는 디코딩 장치에게 상기 각각의 샘플 유닛의 예측 샘플 값을 결정하도록 명령하는 데 사용된다.
선택적으로, 상기 제1 사전 설정 알고리즘을 이용하고 n 번째 인코딩된 유닛의 움직임 벡터를 기반으로 하여, n번째 움직임 벡터 그룹을 생성하는 단계는,
상기 제1 사전 설정 알고리즘을 이용하고 상기 n 번째 인코딩된 유닛의 움직임 벡터, 상기 n 번째 인코딩된 유닛의 샘플 좌표 그리고 M 개의 제어점의 샘플 좌표를 기반으로 하여, 상기 인코딩될 유닛의 상기 M 개의 제어점의 움직임 벡터 예측자를 결정하는 단계; 및
상기 M 개의 제어점의 상기 움직임 벡터 예측자를 기반으로 상기 n 번째의 움직임 벡터 그룹을 생성하는 단계를 포함할 수 있으며, 상기 M은 상기 인코딩될 유닛의 움직임 예측 모드를 기반으로 결정된 양의 정수이다.
선택적으로, 상기 M 개의 제어점은 상기 인코딩될 유닛의 왼쪽 상단 정점(upper-left vertex) 및 오른쪽 상단 정점(upper-right vertex)을 포함하고,
상기 제1 사전 설정 알고리즘을 이용하고 상기 n 번째 인코딩된 유닛의 움직임 벡터, 상기 n 번째 인코딩된 유닛의 샘플 좌표 그리고 M 개의 제어점의 샘플 좌표를 기반으로 하여, 상기 인코딩될 유닛의 상기 M 개의 제어점의 움직임 벡터 예측자를 결정하는 단계는,
다음의 수식 (1):
Figure 112021086197705-pat00001
을 이용하고 상기 n번째 인코딩된 유닛의 왼쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00002
, 상기 n 번째 인코딩된 유닛의 오른쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00003
, 상기 n 번째 인코딩된 유닛의 왼쪽 하단 정점의 움직임 벡터
Figure 112021086197705-pat00004
, 상기 n 번째 인코딩된 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00005
, 상기 n 번째 인코딩된 유닛의 오른쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00006
, 상기 n 번째 인코딩된 유닛의 왼쪽 하단 정점의 샘플 좌표
Figure 112021086197705-pat00007
, 그리고 상기 인코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00008
를 기반으로 하여, 상기 인코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00009
를 결정하는 단계; 및
다음의 수식 (2):
Figure 112021086197705-pat00010
를 이용하고 상기 n번째 인코딩된 유닛의 왼쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00011
, 상기 n 번째 인코딩된 유닛의 오른쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00012
, 상기 n 번째 인코딩된 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00013
, 상기 n 번째 인코딩된 유닛의 오른쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00014
, 상기 인코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00015
, 상기 인코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00016
, 그리고 인코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00017
를 기반으로 하여, 상기 인코딩될 유닛의 오른쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00018
를 결정하는 단계를 포함한다.
선택적으로, 상기 제2 사전 설정 규칙에 따라, 획득된 N 개의 움직임 벡터 그룹으로부터 하나의 움직임 벡터 그룹을 최적 움직임 벡터 그룹으로 결정하는 단계는,
미리 설정된 정렬 규칙에 따라 상기 N 개의 움직임 벡터 그룹을 정렬하여 후보 움직임 벡터 큐(queue)를 생성하는 단계;
상기 N이 미리 설정된 값보다 크거나 같으면, 상기 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹들을 결정하는 단계;
상기 전방에서의 미리 설정된 수량의 움직임 벡터 그룹들 각각과 상기 인코딩될 유닛 사이의 매칭 에러(matching error)를 결정하는 단계; 및
가장 작은 매칭 에러를 갖는 하나의 움직임 벡터 그룹을 상기 최적 움직임 벡터 그룹으로 결정하는 단계를 포함할 수 있다.
선택적으로, 상기 미리 설정된 정렬 규칙은 상기 N 개의 인코딩된 유닛의 내림차순을 포함한다.
선택적으로, 상기 제2 사전 설정 규칙에 따라, 획득된 N 개의 움직임 벡터 그룹으로부터 하나의 움직임 벡터 그룹을 최적 움직임 벡터 그룹으로 결정하는 단계는,
상기 N 개의 움직임 벡터 그룹을 미리 설정된 정렬 규칙에 따라 정렬하는 단계;
상기 N이 미리 설정된 값보다 작으면 Q 개의 움직임 벡터 그룹을 생성하는 단계 - 상기 N과 Q의 합은 상기 미리 설정된 값보다 크거나 같고, 상기 Q는 양의 정수임 -;
상기 Q 개의 움직임 벡터 그룹을 상기 N 개의 움직임 벡터 그룹의 끝에 추가하여 후보 움직임 벡터 큐를 생성하는 단계;
상기 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹들을 결정하는 단계;
상기 전방에서의 미리 설정된 수량의 움직임 벡터 그룹들 각각과 상기 인코딩될 유닛 사이의 매칭 에러를 결정하는 단계; 및
가장 작은 매칭 에러를 갖는 하나의 움직임 벡터 그룹을 상기 최적 움직임 벡터 그룹으로 결정하는 단계를 포함할 수 있다.
선택적으로, 상기 Q 개의 움직임 벡터 그룹을 생성하는 단계는,
상기 인접한 인코딩된 유닛으로부터, 상기 인코딩될 유닛에서 m번째 제어점에 대응하는 인코딩된 유닛을 결정하는 단계 - 상기 m번째 제어점에 대응하는 상기 인코딩된 유닛과 상기 m번째 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, 상기 m은 상기 M보다 크지 않은 임의의 양의 정수를 포함함 -;
상기 m 번째 제어점에 대응하는 상기 인코딩된 유닛의 움직임 벡터를 상기 m 번째 제어점의 움직임 벡터 예측자로 결정하는 단계; 및
상기 M 개의 제어점의 움직임 벡터 예측자를 기반으로 상기 Q 개의 움직임 벡터 그룹을 생성하는 단계를 포함할 수 있다.
다르게는, 상기 Q 개의 움직임 벡터 그룹을 생성하는 단계는,
상기 인접한 인코딩된 유닛으로부터, 상기 인코딩될 유닛에서 m번째 제어점에 대응하는 인코딩된 유닛을 결정하는 단계 - 상기 m번째 제어점에 대응하는 상기 인코딩된 유닛과 상기 m번째 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, 상기 m은 M보다 크지 않은 임의의 양의 정수를 포함함 -;
상기 m 번째 제어점에 대응하는 상기 인코딩된 유닛의 움직임 벡터를 상기 m 번째 제어점의 제1 움직임 벡터 예측자로 결정하는 단계;
상기 M 개의 제어점의 제1 움직임 벡터 예측자를 기반으로 K 개의 제1 움직임 벡터 그룹을 생성하는 단계;
상기 인접한 인코딩된 유닛의 j번째 인코딩된 유닛의 움직임 벡터를 상기 m 번째 제어점의 제2 움직임 벡터 예측자로 결정하는 단계 - 상기 j는 1, ... 또는 J 중 어느 하나이며, 상기 J는 상기 인접한 인코딩된 유닛의 수량이며, 상기 J는 양의 정수임 -;
상기 M 개의 제어점의 제2 움직임 벡터 예측자를 기반으로 L 개의 제2 움직임 벡터 그룹을 생성하는 단계; 및
상기 K 개의 제1 움직임 벡터 그룹을 상기 L 개의 제2 움직임 벡터 그룹의 끝에 추가하여 상기 Q 개의 움직임 벡터 그룹을 생성하는 단계를 포함할 수 있다.
선택적으로, 상기 Q 개의 움직임 벡터 그룹을 상기 N 개의 움직임 벡터 그룹의 끝에 추가하여 후보 움직임 벡터 큐를 생성하는 단계는,
q 번째 움직임 벡터 그룹에 대응하는 고유값(eigenvalue)을 결정하는 단계 - 상기 q가 상기 Q보다 크지 않은 임의의 양의 정수를 포함함 -;
상기 Q 개의 움직임 벡터 그룹에 대응하는 고유값을 기반으로 상기 Q 개의 움직임 벡터 그룹을 오름차순으로 정렬하는 단계; 및
상기 정렬된 Q 개의 움직임 벡터 그룹을 상기 정렬된 N 개의 움직임 벡터 그룹의 끝에 추가하여 상기 후보 움직임 벡터 큐를 생성하는 단계를 포함할 수 있다.
선택적으로, 상기 q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하는 단계는,
상기 M 개의 제어점에서 인접한 제어점의 상기 q번째 움직임 벡터 그룹에서의 움직임 벡터 예측자의 하나의 예측 방향에서의 컴포넌트들 사이의 차이를 결정하는 단계;
상기 차이의 절대값을 미리 설정된 컴포넌트 임계값과 비교하는 단계 - 상기 미리 설정된 컴포넌트 임계값은 상기 예측 방향에서 상기 인코딩될 유닛의 범위(range)임 -; 및
상기 차이의 절대값이 상기 미리 설정된 컴포넌트 임계값보다 작거나 같으면, 상기 q 번째 움직임 벡터 그룹에 대응하는 상기 고유값을 결정하는 단계를 포함한다.
선택적으로, 상기 q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하는 단계는,
상기 인접한 인코딩된 유닛으로부터 다른 제어점에 대응하는 인코딩된 유닛을 결정하는 단계 - 상기 다른 제어점에 대응하는 상기 인코딩된 유닛과 상기 다른 제어점 사이의 거리가 상기 미리 설정된 거리보다 작거나 같으며, 상기 다른 제어점은 상기 인코딩될 유닛에서 상기 M 개의 제어점 이외의 제어점임 -;
상기 다른 제어점에 대응하는 상기 인코딩된 유닛의 움직임 벡터를 상기 다른 제어점의 움직임 벡터 예측자로 결정하는 단계; 및
제3 사전 설정 알고리즘을 이용하고 상기 다른 제어점의 움직임 벡터 예측자 및 상기 M 개의 제어점의 상기 q번째 움직임 벡터 그룹에서의 움직임 벡터 예측자를 기반으로 하여, 상기 q 번째 움직임 벡터 그룹에 대응하는 상기 고유값을 결정하는 단계를 포함할 수 있다.
선택적으로, 상기 인코딩될 유닛의 움직임 예측 모드는 트랜스레이션 움직임 예측 모드(translation motion prediction mode) 또는 아핀(affine) 움직임 예측 모드를 포함한다.
본 발명의 실시 예는 추가로 이미지 디코딩 방법을 제공하며, 상기 이미지 디코딩 방법은,
제1 사전 설정 규칙에 따라, 디코딩될 유닛의 인접한 디코딩된 유닛으로부터 N 개의 디코딩된 유닛을 결정하는 단계 - 상기 N 개의 디코딩된 유닛의 움직임 예측 모드가 상기 디코딩될 유닛의 움직임 예측 모드와 동일하고, N은 양의 정수임 -;
제1 사전 설정 알고리즘을 이용하고 n 번째 디코딩된 유닛의 움직임 벡터를 기반으로 하여, n 번째 움직임 벡터 그룹을 생성하는 단계 - 상기 n은 상기 N 보다 크지 않은 임의의 양의 정수를 포함함 -;
상기 디코딩될 유닛에 대응하는 비트 스트림을 디코딩하여 각각의 샘플 유닛의 예측 잔차와 최적 움직임 벡터 그룹의 인덱스 식별자를 획득하는 단계;
상기 최적 움직임 벡터 그룹의 인덱스 식별자를 기반으로 N 개의 움직임 벡터 그룹에서 상기 최적 움직임 벡터 그룹을 결정하는 단계;
제2 사전 설정 알고리즘을 이용하고 상기 최적 움직임 벡터 그룹을 기반으로 하여, 상기 디코딩될 유닛에서 각각의 샘플 유닛의 예측 샘플 값을 결정하는 단계; 및
상기 각각의 샘플 유닛의 예측 샘플 값과 상기 각각의 샘플 유닛의 예측 잔차의 합을 기반으로 상기 각각의 샘플 유닛의 재구성 샘플 값을 결정하는 단계를 포함한다.
선택적으로, 상기 제1 사전 설정 알고리즘을 이용하고 n 번째 디코딩된 유닛의 움직임 벡터를 기반으로 하여, n 번째 움직임 벡터 그룹을 생성하는 단계는,
상기 제1 사전 설정 알고리즘을 이용하고 상기 n 번째 디코딩된 유닛의 움직임 벡터, 상기 n번째 디코딩된 유닛의 샘플 좌표 그리고 M 개의 제어점의 샘플 좌표를 기반으로 하여, 상기 디코딩될 유닛의 상기 M 개의 제어점의 움직임 벡터 예측자를 결정하는 단계; 및
상기 M 개의 제어점의 움직임 벡터 예측자를 기반으로 상기 n 번째 움직임 벡터 그룹을 생성하는 단계를 포함할 수 있으며, 상기 M은 상기 디코딩될 유닛의 움직임 예측 모드를 기반으로 결정된 양의 정수이다.
선택적으로, 상기 M 개의 제어점은 상기 디코딩될 유닛의 왼쪽 상단 정점 및 오른쪽 상단 정점을 포함하고,
상기 제1 사전 설정 알고리즘을 이용하고 상기 n 번째 디코딩된 유닛의 움직임 벡터, 상기 n번째 디코딩된 유닛의 샘플 좌표 그리고 M 개의 제어점의 샘플 좌표를 기반으로 하여, 상기 디코딩될 유닛의 상기 M 개의 제어점의 움직임 벡터 예측자를 결정하는 단계는,
다음의 수식 (1):
Figure 112021086197705-pat00019
을 이용하고 상기 n번째 디코딩된 유닛의 왼쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00020
, 상기 n 번째 디코딩된 유닛의 오른쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00021
, 상기 n 번째 디코딩된 유닛의 왼쪽 하단 정점의 움직임 벡터
Figure 112021086197705-pat00022
, 상기 n 번째 디코딩된 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00023
, 상기 n 번째 디코딩된 유닛의 오른쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00024
, 상기 n 번째 디코딩된 유닛의 왼쪽 하단 정점의 샘플 좌표
Figure 112021086197705-pat00025
, 그리고 상기 디코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00026
를 기반으로 하여, 상기 디코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00027
를 결정하는 단계; 및
다음의 수식 (2):
Figure 112021086197705-pat00028
를 이용하고 상기 n번째 디코딩된 유닛의 왼쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00029
, 상기 n 번째 디코딩된 유닛의 오른쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00030
, 상기 n 번째 디코딩된 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00031
, 상기 n 번째 디코딩된 유닛의 오른쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00032
, 상기 디코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00033
, 상기 디코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00034
, 그리고 디코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00035
를 기반으로 하여, 상기 디코딩될 유닛의 오른쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00036
를 결정하는 단계를 포함한다.
선택적으로, 상기 최적 움직임 벡터 그룹의 인덱스 식별자를 기반으로 N 개의 움직임 벡터 그룹에서 상기 최적 움직임 벡터 그룹을 결정하는 단계는,
미리 설정된 정렬 규칙에 따라 상기 N 개의 움직임 벡터 그룹을 정렬하여 후보 움직임 벡터 큐를 생성하는 단계;
상기 N이 미리 설정된 값보다 크거나 같으면, 상기 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹을 결정하는 단계; 및
상기 최적 움직임 벡터 그룹의 인덱스 식별자를 기반으로 상기 전방에서의 미리 설정된 수량의 움직임 벡터 그룹에서 상기 최적 움직임 벡터 그룹을 결정하는 단계를 포함할 수 있다.
선택적으로, 상기 미리 설정된 정렬 규칙은 상기 N 개의 디코딩된 유닛의 내림차순을 포함한다.
선택적으로, 상기 최적 움직임 벡터 그룹의 인덱스 식별자를 기반으로 N 개의 움직임 벡터 그룹에서 상기 최적 움직임 벡터 그룹을 결정하는 단계는,
미리 설정된 정렬 규칙에 따라 상기 N 개의 움직임 벡터 그룹을 정렬하는 단계;
상기 N이 미리 설정된 값보다 작으면, Q 개의 움직임 벡터 그룹을 생성하는 단계 - 상기 N과 Q의 합은 상기 미리 설정된 값보다 크거나 같고, 상기 Q는 양의 정수임 -;
상기 Q 개의 움직임 벡터 그룹을 상기 N 개의 움직임 벡터 그룹의 끝에 추가하여 후보 움직임 벡터 큐를 생성하는 단계;
상기 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹을 결정하는 단계; 및
상기 최적 움직임 벡터 그룹의 인덱스 식별자를 기반으로 상기 전방에서의 미리 설정된 수량의 움직임 벡터 그룹에서 상기 최적 움직임 벡터 그룹을 결정하는 단계를 포함할 수 있다.
선택적으로, 상기 Q 개의 움직임 벡터 그룹을 생성하는 단계는,
상기 인접한 디코딩된 유닛으로부터, 상기 디코딩될 유닛에서 m번째 제어점에 대응하는 디코딩된 유닛을 결정하는 단계 - 상기 m번째 제어점에 대응하는 상기 디코딩된 유닛과 상기 m번째 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, 상기 m은 상기M보다 크지 않은 임의의 양의 정수를 포함함 -;
상기 m 번째 제어점에 대응하는 상기 디코딩된 유닛의 움직임 벡터를 상기 m 번째 제어점의 움직임 벡터 예측자로 결정하는 단계; 및
상기 M 개의 제어점의 움직임 벡터 예측자를 기반으로 상기 Q 개의 움직임 벡터 그룹을 생성하는 단계를 포함한다.
다르게는, 상기 Q 개의 움직임 벡터 그룹을 생성하는 단계는,
상기 인접한 디코딩된 유닛으로부터, 상기 디코딩될 유닛에서 m번째 제어점에 대응하는 디코딩된 유닛을 결정하는 단계 - 상기 m번째 제어점에 대응하는 상기 디코딩된 유닛과 상기 m번째 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, 상기 m은 상기 M보다 크지 않은 임의의 양의 정수를 포함함 -;
상기 m번째 제어점에 대응하는 상기 디코딩된 유닛의 움직임 벡터를 상기 m번째 제어점의 제1 움직임 벡터 예측자로 결정하는 단계;
상기 M 개의 제어점의 제1 움직임 벡터 예측자를 기반으로 K 개의 제1 움직임 벡터 그룹을 생성하는 단계;
상기 인접한 디코딩된 유닛에서 j번째 디코딩된 유닛의 움직임 벡터를 상기 m번째 제어점의 제2 움직임 벡터 예측자로 결정하는 단계 - 상기 j가 1, ... 또는 J 중 어느 하나이고, 상기 J가 상기 인접한 디코딩된 유닛의 수량이고, 그리고 상기 J는 양의 정수임 -;
상기 M 개의 제어점의 제2 움직임 벡터 예측자를 기반으로 L 개의 제2 움직임 벡터 그룹을 생성하는 단계; 및
상기 K 개의 제1 움직임 벡터 그룹을 상기 L 개의 제2 움직임 벡터 그룹의 끝에 추가하여 상기 Q 개의 움직임 벡터 그룹을 생성하는 단계를 포함한다.
선택적으로, 상기 Q 개의 움직임 벡터 그룹을 상기 N 개의 움직임 벡터 그룹의 끝에 추가하여 후보 움직임 벡터 큐를 생성하는 단계는,
q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하는 단계 - 상기 q가 상기 Q보다 크지 않은 임의의 양의 정수를 포함함 -;
상기 Q 개의 움직임 벡터 그룹에 대응하는 고유값을 기반으로 상기 Q 개의 움직임 벡터 그룹을 오름차순으로 정렬하는 단계; 및
상기 정렬된 Q 개의 움직임 벡터 그룹을 상기 정렬된 N 개의 움직임 벡터 그룹의 끝에 추가하여 상기 후보 움직임 벡터 큐를 생성하는 단계를 포함한다.
선택적으로, 상기 q번째 움직임 벡터 그룹에 대응하는 고유값을 결정하는 단계는,
상기 M 개의 제어점에서 인접한 제어점의 상기 q번째 움직임 벡터 그룹에서의 움직임 벡터 예측자의 하나의 예측 방향에서의 컴포넌트들 사이의 차이를 결정하는 단계;
상기 차이의 절대값을 미리 설정된 컴포넌트 임계값과 비교하는 단계 - 상기 미리 설정된 컴포넌트 임계값은 상기 예측 방향에서 상기 디코딩될 유닛의 범위임 -; 및
상기 차이의 절대값이 상기 미리 설정된 컴포넌트 임계값보다 작거나 같으면, 상기 q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하는 단계를 포함한다.
선택적으로, 상기 q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하는 단계는,
상기 인접한 디코딩된 유닛으로부터, 다른 제어점에 대응하는 디코딩된 유닛을 결정하는 단계 - 상기 다른 제어점에 대응하는 디코딩된 유닛과 상기 다른 제어점 사이의 거리가 상기 미리 설정된 거리보다 작거나 같으며, 상기 다른 제어점은 상기 디코딩될 유닛에서 상기 M 개의 제어점 이외의 제어점임 -;
상기 다른 제어점에 대응하는 상기 디코딩된 유닛의 움직임 벡터를 상기 다른 제어점의 움직임 벡터 예측자로 결정하는 단계; 및
제3 사전 설정 알고리즘을 이용하고 상기 다른 제어점의 움직임 벡터 예측자 및 상기 M 개의 제어점의 상기 q번째 움직임 벡터 그룹에서의 움직임 벡터 예측자를 기반으로 하여, 상기 q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하는 단계를 포함한다.
선택적으로, 상기 디코딩될 유닛의 움직임 예측 모드는 트랜스레이션 움직임 예측 모드 또는 아핀 움직임 예측 모드를 포함한다.
본 발명의 실시 예는 추가로 이미지 인코딩 장치를 제공하며, 상기 이미지 인코딩 장치는,
제1 사전 설정 규칙에 따라 인코딩될 유닛의 인접한 인코딩된 유닛으로부터 N 개의 인코딩된 유닛을 결정하도록 구성된 결정 모듈;
제1 사전 설정 알고리즘을 이용하고 상기 결정 모듈에 의해 결정된 n 번째 인코딩된 유닛의 움직임 벡터를 기반으로 하여, n번째 움직임 벡터 그룹을 생성하도록 구성된 계산 모듈; 및
각각의 샘플 유닛의 예측 잔차 및 최적 움직임 벡터 그룹의 인덱스 식별자를 인코딩하여 상기 인코딩될 유닛에 대응하는 비트 스트림을 획득하도록 구성된 인코딩 모듈을 포함하고,
상기 결정 모듈은 추가로, 제2 사전 설정 규칙에 따라, 획득된 N 개의 움직임 벡터 그룹으로부터 하나의 움직임 벡터 그룹을 상기 최적 움직임 벡터 그룹으로 결정하도록 구성되고,
상기 계산 모듈은 추가로, 제2 사전 설정 알고리즘을 이용하고 상기 결정 모듈에 의해 결정된 상기 최적 움직임 벡터 그룹을 기반으로 하여, 상기 인코딩될 유닛에서 상기 각각의 샘플 유닛의 예측 샘플 값을 결정하고, 상기 각각의 샘플 유닛의 원래 샘플 값과 상기 각각의 샘플 유닛의 예측 샘플 값 사이의 차이를 기반으로 상기 각각의 샘플 유닛의 예측 잔차를 결정하도록 구성되며,
상기 N 개의 인코딩된 유닛의 움직임 예측 모드가 상기 인코딩될 유닛의 움직임 예측 모드와 동일하고, 상기 N은 양의 정수이며, 상기 n은 상기 N보다 크지 않은 임의의 양의 정수를 포함하고, 상기 최적 움직임 벡터 그룹의 인덱스 식별자는 디코딩 장치에게 상기 각각의 샘플 유닛의 예측 샘플 값을 결정하도록 명령하는 데 사용된다.
선택적으로, 상기 계산 모듈은 구체적으로, 상기 제1 사전 설정 알고리즘을 이용하고 상기 결정 모듈에 의해 결정된 상기 n 번째 인코딩된 유닛의 움직임 벡터, 상기 n 번째 인코딩된 유닛의 샘플 좌표 그리고 M 개의 제어점의 샘플 좌표를 기반으로 하여, 상기 인코딩될 유닛의 상기 M 개의 제어점의 움직임 벡터 예측자를 결정하고; 그리고 상기 M 개의 제어점의 상기 움직임 벡터 예측자를 기반으로 상기 n 번째의 움직임 벡터 그룹을 생성하도록 구성되며, 상기 M은 상기 인코딩될 유닛의 움직임 예측 모드를 기반으로 결정된 양의 정수이다.
선택적으로, 상기 M 개의 제어점은 상기 인코딩될 유닛의 왼쪽 상단 정점 및 오른쪽 상단 정점을 포함하고,
상기 계산 모듈은 구체적으로,
Figure 112021086197705-pat00037
을 이용하고 상기 결정 모듈에 의해 결정된 상기 n번째 인코딩된 유닛의 왼쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00038
, 상기 n 번째 인코딩된 유닛의 오른쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00039
, 상기 n 번째 인코딩된 유닛의 왼쪽 하단 정점의 움직임 벡터
Figure 112021086197705-pat00040
, 상기 n 번째 인코딩된 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00041
, 상기 n 번째 인코딩된 유닛의 오른쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00042
, 상기 n 번째 인코딩된 유닛의 왼쪽 하단 정점의 샘플 좌표
Figure 112021086197705-pat00043
, 그리고 상기 인코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00044
를 기반으로 하여, 상기 인코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00045
를 결정하도록 구성되고; 그리고
상기 계산 모듈은 추가로, 다음의 수식 (2):
Figure 112021086197705-pat00046
를 이용하고 상기 결정 모듈에 의해 결정된 상기 n번째 인코딩된 유닛의 왼쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00047
, 상기 n 번째 인코딩된 유닛의 오른쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00048
, 상기 n 번째 인코딩된 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00049
, 상기 n 번째 인코딩된 유닛의 오른쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00050
, 상기 인코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00051
, 상기 인코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00052
, 그리고 인코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00053
를 기반으로 하여, 상기 인코딩될 유닛의 오른쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00054
를 결정하도록 구성된다.
선택적으로, 상기 결정 모듈은 구체적으로, 미리 설정된 정렬 규칙에 따라 상기 N 개의 움직임 벡터 그룹을 정렬하여 후보 움직임 벡터 큐를 생성하고; 상기 N이 미리 설정된 값보다 크거나 같으면, 상기 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹들을 결정하며; 상기 전방에서의 미리 설정된 수량의 움직임 벡터 그룹들 각각과 상기 인코딩될 유닛 사이의 매칭 에러를 결정하고; 그리고 가장 작은 매칭 에러를 갖는 하나의 움직임 벡터 그룹을 상기 최적 움직임 벡터 그룹으로 결정하도록 구성된다.
선택적으로, 상기 미리 설정된 정렬 규칙은 상기 N 개의 인코딩된 유닛의 내림차순을 포함한다.
선택적으로, 상기 결정 모듈은 추가로, 상기 N 개의 움직임 벡터 그룹을 미리 설정된 정렬 규칙에 따라 정렬하며; 상기 N이 미리 설정된 값보다 작으면 Q 개의 움직임 벡터 그룹을 생성하고; 상기 Q 개의 움직임 벡터 그룹을 상기 N 개의 움직임 벡터 그룹의 끝에 추가하여 후보 움직임 벡터 큐를 생성하며; 상기 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹들을 결정하고; 상기 전방에서의 미리 설정된 수량의 움직임 벡터 그룹들 각각과 상기 인코딩될 유닛 사이의 매칭 에러를 결정하며; 그리고 가장 작은 매칭 에러를 갖는 하나의 움직임 벡터 그룹을 상기 최적 움직임 벡터 그룹으로 결정하도록 구성되며, 상기 N과 Q의 합은 상기 미리 설정된 값보다 크거나 같고, 상기 Q는 양의 정수이다.
선택적으로, 상기 결정 모듈은 추가로, 상기 인접한 인코딩된 유닛으로부터, 상기 인코딩될 유닛에서 m번째 제어점에 대응하는 인코딩된 유닛을 결정하고; 상기 m 번째 제어점에 대응하는 상기 인코딩된 유닛의 움직임 벡터를 상기 m 번째 제어점의 움직임 벡터 예측자로 결정하며; 그리고 상기 M 개의 제어점의 움직임 벡터 예측자를 기반으로 상기 Q 개의 움직임 벡터 그룹을 생성하도록 구성되며, 상기 m번째 제어점에 대응하는 상기 인코딩된 유닛과 상기 m번째 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, 상기 m은 상기 M보다 크지 않은 임의의 양의 정수를 포함한다.
선택적으로, 상기 결정 모듈은 추가로, 상기 인접한 인코딩된 유닛으로부터, 상기 인코딩될 유닛에서 m번째 제어점에 대응하는 인코딩된 유닛을 결정하고; 상기 m 번째 제어점에 대응하는 상기 인코딩된 유닛의 움직임 벡터를 상기 m 번째 제어점의 제1 움직임 벡터 예측자로 결정하며; 상기 M 개의 제어점의 제1 움직임 벡터 예측자를 기반으로 K 개의 제1 움직임 벡터 그룹을 생성하며; 상기 인접한 인코딩된 유닛의 j번째 인코딩된 유닛의 움직임 벡터를 상기 m 번째 제어점의 제2 움직임 벡터 예측자로 결정하고; 상기 M 개의 제어점의 제2 움직임 벡터 예측자를 기반으로 L 개의 제2 움직임 벡터 그룹을 생성하며; 그리고 상기 K 개의 제1 움직임 벡터 그룹을 상기 L 개의 제2 움직임 벡터 그룹의 끝에 추가하여 상기 Q 개의 움직임 벡터 그룹을 생성하도록 구성되며, 상기 m번째 제어점에 대응하는 상기 인코딩된 유닛과 상기 m번째 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, 상기 m은 M보다 크지 않은 임의의 양의 정수를 포함하고, 상기 j는 1, ... 또는 J 중 어느 하나이며, 상기 J는 상기 인접한 인코딩된 유닛의 수량이고, 상기 J는 양의 정수이다.
선택적으로, 상기 결정 모듈은 추가로, q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하고; 상기 Q 개의 움직임 벡터 그룹에 대응하는 고유값을 기반으로 상기 Q 개의 움직임 벡터 그룹을 오름차순으로 정렬하며; 그리고 상기 정렬된 Q 개의 움직임 벡터 그룹을 상기 정렬된 N 개의 움직임 벡터 그룹의 끝에 추가하여 상기 후보 움직임 벡터 큐를 생성하도록 구성되고, 상기 q가 상기 Q보다 크지 않은 임의의 양의 정수를 포함한다.
선택적으로, 상기 결정 모듈은 추가로, 상기 M 개의 제어점에서 인접한 제어점의 상기 q번째 움직임 벡터 그룹에서의 움직임 벡터 예측자의 하나의 예측 방향에서의 컴포넌트들 사이의 차이를 결정하고; 상기 차이의 절대값을 미리 설정된 컴포넌트 임계값과 비교하며; 상기 차이의 절대값이 상기 미리 설정된 컴포넌트 임계값보다 작거나 같으면, 상기 q 번째 움직임 벡터 그룹에 대응하는 상기 고유값을 결정하도록 구성되며, 상기 미리 설정된 컴포넌트 임계값은 상기 예측 방향에서 상기 인코딩될 유닛의 범위이다.
선택적으로, 상기 결정 모듈은 추가로, 상기 인접한 인코딩된 유닛으로부터 다른 제어점에 대응하는 인코딩된 유닛을 결정하고; 상기 다른 제어점에 대응하는 상기 인코딩된 유닛의 움직임 벡터를 상기 다른 제어점의 움직임 벡터 예측자로 결정하며; 그리고 제3 사전 설정 알고리즘을 이용하고 상기 다른 제어점의 움직임 벡터 예측자 및 상기 M 개의 제어점의 상기 q번째 움직임 벡터 그룹에서의 움직임 벡터 예측자를 기반으로 하여, 상기 q 번째 움직임 벡터 그룹에 대응하는 상기 고유값을 결정하도록 구성되고, 상기 다른 제어점에 대응하는 상기 인코딩된 유닛과 상기 다른 제어점 사이의 거리가 상기 미리 설정된 거리보다 작거나 같으며, 상기 다른 제어점은 상기 인코딩될 유닛에서 상기 M 개의 제어점 이외의 제어점이다.
선택적으로, 상기 인코딩될 유닛의 움직임 예측 모드는 트랜스레이션 움직임 예측 모드 또는 아핀 움직임 예측 모드를 포함한다.
본 발명의 실시 예는 추가로 이미지 디코딩 장치를 제공하며, 상기 이미지 디코딩 장치는,
제1 사전 설정 규칙에 따라, 디코딩될 유닛의 인접한 디코딩된 유닛으로부터 N 개의 디코딩된 유닛을 결정하도록 구성된 결정 모듈;
제1 사전 설정 알고리즘을 이용하고 상기 결정 모듈에 의해 결정된n 번째 디코딩된 유닛의 움직임 벡터를 기반으로 하여, n 번째 움직임 벡터 그룹을 생성하도록 구성된 계산 모듈; 및
상기 디코딩될 유닛에 대응하는 비트 스트림을 디코딩하여 각각의 샘플 유닛의 예측 잔차와 최적 움직임 벡터 그룹의 인덱스 식별자를 획득하도록 구성된 디코딩 모듈을 포함하고,
상기 결정 모듈은 추가로, 상기 최적 움직임 벡터 그룹의 인덱스 식별자를 기반으로 N 개의 움직임 벡터 그룹에서 상기 최적 움직임 벡터 그룹을 결정하도록 구성되고,
상기 계산 모듈은 추가로, 제2 사전 설정 알고리즘을 이용하고 상기 결정 모듈에 의해 결정된 상기 최적 움직임 벡터 그룹을 기반으로 하여, 상기 디코딩될 유닛에서 각각의 샘플 유닛의 예측 샘플 값을 결정하고, 상기 각각의 샘플 유닛의 예측 샘플 값과 상기 각각의 샘플 유닛의 예측 잔차의 합을 기반으로 상기 각각의 샘플 유닛의 재구성 샘플 값을 결정하도록 구성되며,
상기 N 개의 디코딩된 유닛의 움직임 예측 모드가 상기 디코딩될 유닛의 움직임 예측 모드와 동일하고, 상기 N은 양의 정수이며, 상기 n은 상기 N보다 크지 않은 임의의 양의 정수를 포함한다.
선택적으로, 상기 계산 모듈은 구체적으로, 상기 제1 사전 설정 알고리즘을 이용하고 상기 결정 모듈에 의해 결정된 상기 n 번째 디코딩된 유닛의 움직임 벡터, 상기 n번째 디코딩된 유닛의 샘플 좌표 그리고 M 개의 제어점의 샘플 좌표를 기반으로 하여, 상기 디코딩될 유닛의 상기 M 개의 제어점의 움직임 벡터 예측자를 결정하고; 그리고 상기 M 개의 제어점의 움직임 벡터 예측자를 기반으로 상기 n 번째 움직임 벡터 그룹을 생성하도록 구성되고, 상기 M은 상기 디코딩될 유닛의 움직임 예측 모드를 기반으로 결정된 양의 정수이다.
선택적으로, 상기 M 개의 제어점은 상기 디코딩될 유닛의 왼쪽 상단 정점 및 오른쪽 상단 정점을 포함하고,
상기 계산 모듈은 구체적으로,
다음의 수식 (1):
Figure 112021086197705-pat00055
을 이용하고 상기 결정 모듈에 의해 결정된 상기 n번째 디코딩된 유닛의 왼쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00056
, 상기 n 번째 디코딩된 유닛의 오른쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00057
, 상기 n 번째 디코딩된 유닛의 왼쪽 하단 정점의 움직임 벡터
Figure 112021086197705-pat00058
, 상기 n 번째 디코딩된 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00059
, 상기 n 번째 디코딩된 유닛의 오른쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00060
, 상기 n 번째 디코딩된 유닛의 왼쪽 하단 정점의 샘플 좌표
Figure 112021086197705-pat00061
, 그리고 상기 디코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00062
를 기반으로 하여, 상기 디코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00063
를 결정하도록 구성되고,
구체적으로, 상기 계산 모듈은 추가로,
다음의 수식 (2):
Figure 112021086197705-pat00064
를 이용하고 상기 결정 모듈에 의해 결정된 상기 n번째 디코딩된 유닛의 왼쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00065
, 상기 n 번째 디코딩된 유닛의 오른쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00066
, 상기 n 번째 디코딩된 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00067
, 상기 n 번째 디코딩된 유닛의 오른쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00068
, 상기 디코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00069
, 상기 디코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00070
, 그리고 디코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00071
를 기반으로 하여, 상기 디코딩될 유닛의 오른쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00072
를 결정하도록 구성된다.
선택적으로, 상기 결정 모듈은 추가로, 미리 설정된 정렬 규칙에 따라 상기 N 개의 움직임 벡터 그룹을 정렬하여 후보 움직임 벡터 큐를 생성하고; 상기 N이 미리 설정된 값보다 크거나 같으면, 상기 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹을 결정하며; 그리고 상기 최적 움직임 벡터 그룹의 인덱스 식별자를 기반으로 상기 전방에서의 미리 설정된 수량의 움직임 벡터 그룹에서 상기 최적 움직임 벡터 그룹을 결정하도록 구성된다.
선택적으로, 상기 미리 설정된 정렬 규칙은 상기 N 개의 디코딩된 유닛의 내림차순을 포함한다.
선택적으로, 상기 결정 모듈은 추가로, 미리 설정된 정렬 규칙에 따라 상기 N 개의 움직임 벡터 그룹을 정렬하고; 상기 N이 미리 설정된 값보다 작으면, Q 개의 움직임 벡터 그룹을 생성하며; 상기 Q 개의 움직임 벡터 그룹을 상기 N 개의 움직임 벡터 그룹의 끝에 추가하여 후보 움직임 벡터 큐를 생성하고; 상기 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹을 결정하며; 그리고 상기 최적 움직임 벡터 그룹의 인덱스 식별자를 기반으로 상기 전방에서의 미리 설정된 수량의 움직임 벡터 그룹에서 상기 최적 움직임 벡터 그룹을 결정하도록 구성되며, 상기 N과 Q의 합은 상기 미리 설정된 값보다 크거나 같고, 상기 Q는 양의 정수이다.
선택적으로, 상기 결정 모듈은 추가로, 상기 인접한 디코딩된 유닛으로부터, 상기 디코딩될 유닛에서 m번째 제어점에 대응하는 디코딩된 유닛을 결정하고; 상기 m 번째 제어점에 대응하는 상기 디코딩된 유닛의 움직임 벡터를 상기 m 번째 제어점의 움직임 벡터 예측자로 결정하며; 그리고 상기 M 개의 제어점의 움직임 벡터 예측자를 기반으로 상기 Q 개의 움직임 벡터 그룹을 생성하도록 구성되며, 상기 m번째 제어점에 대응하는 상기 디코딩된 유닛과 상기 m번째 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, 상기 m은 상기 M보다 크지 않은 임의의 양의 정수를 포함한다.
선택적으로, 상기 결정 모듈은 추가로, 상기 인접한 디코딩된 유닛으로부터, 상기 디코딩될 유닛에서 m번째 제어점에 대응하는 디코딩된 유닛을 결정하고; 상기 m번째 제어점에 대응하는 상기 디코딩된 유닛의 움직임 벡터를 상기 m번째 제어점의 제1 움직임 벡터 예측자로 결정하며; 상기 M 개의 제어점의 제1 움직임 벡터 예측자를 기반으로 K 개의 제1 움직임 벡터 그룹을 생성하고; 상기 인접한 디코딩된 유닛에서 j번째 디코딩된 유닛의 움직임 벡터를 상기 m번째 제어점의 제2 움직임 벡터 예측자로 결정하며; 상기 M 개의 제어점의 제2 움직임 벡터 예측자를 기반으로 L 개의 제2 움직임 벡터 그룹을 생성하고; 그리고 상기 K 개의 제1 움직임 벡터 그룹을 상기 L 개의 제2 움직임 벡터 그룹의 끝에 추가하여 상기 Q 개의 움직임 벡터 그룹을 생성하도록 구성되며, 상기 m번째 제어점에 대응하는 상기 디코딩된 유닛과 상기 m번째 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, 상기 m은 상기 M보다 크지 않은 임의의 양의 정수를 포함하고, 상기 j가 1, ... 또는 J 중 어느 하나이고, 상기 J가 상기 인접한 디코딩된 유닛의 수량이고, 그리고 상기 J는 양의 정수이다.
선택적으로, 상기 결정 모듈은 추가로, q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하고; 상기 Q 개의 움직임 벡터 그룹에 대응하는 고유값을 기반으로 상기 Q 개의 움직임 벡터 그룹을 오름차순으로 정렬하며; 그리고 상기 정렬된 Q 개의 움직임 벡터 그룹을 상기 정렬된 N 개의 움직임 벡터 그룹의 끝에 추가하여 상기 후보 움직임 벡터 큐를 생성하도록 구성되며, 상기 q가 상기 Q보다 크지 않은 임의의 양의 정수를 포함한다.
선택적으로, 상기 결정 모듈은 추가로, 상기 M 개의 제어점에서 인접한 제어점의 상기 q번째 움직임 벡터 그룹에서의 움직임 벡터 예측자의 하나의 예측 방향에서의 컴포넌트들 사이의 차이를 결정하고; 상기 차이의 절대값을 미리 설정된 컴포넌트 임계값과 비교하며; 그리고 상기 차이의 절대값이 상기 미리 설정된 컴포넌트 임계값보다 작거나 같으면, 상기 q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하도록 구성되며, 상기 미리 설정된 컴포넌트 임계값은 상기 예측 방향에서 상기 디코딩될 유닛의 범위이다.
선택적으로, 상기 결정 모듈은 추가로, 상기 인접한 디코딩된 유닛으로부터, 다른 제어점에 대응하는 디코딩된 유닛을 결정하고; 상기 다른 제어점에 대응하는 상기 디코딩된 유닛의 움직임 벡터를 상기 다른 제어점의 움직임 벡터 예측자로 결정하며; 그리고 제3 사전 설정 알고리즘을 이용하고 상기 다른 제어점의 움직임 벡터 예측자 및 상기 M 개의 제어점의 상기 q번째 움직임 벡터 그룹에서의 움직임 벡터 예측자를 기반으로 하여, 상기 q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하도록 구성되며, 상기 다른 제어점에 대응하는 디코딩된 유닛과 상기 다른 제어점 사이의 거리가 상기 미리 설정된 거리보다 작거나 같으며, 상기 다른 제어점은 상기 디코딩될 유닛에서 상기 M 개의 제어점 이외의 제어점이다.
선택적으로, 상기 디코딩될 유닛의 움직임 예측 모드는 트랜스레이션 움직임 예측 모드 또는 아핀 움직임 예측 모드를 포함한다.
본 발명의 실시 예는 추가로 이미지 인코딩 장치를 제공하며, 상기 이미지 인코딩 장치는, 프로세서; 메모리; 통신 인터페이스; 및 버스를 포함하고,
상기 프로세서는 상기 버스를 이용하여 상기 메모리와 상기 통신 인터페이스에 연결되며, 상기 메모리는 명령을 저장하도록 구성되고,
상기 프로세서는 상기 명령을 실행하도록 구성되며, 상기 프로세서가 상기 메모리에 저장된 명령을 실행하는 경우, 상기 프로세서가 전술한 이미지 인코딩 방법들 중 어느 하나를 수행한다.
본 발명의 실시 예는 추가로 이미지 디코딩 장치를 제공하며, 상기 이미지 디코딩 장치는, 프로세서; 메모리; 통신 인터페이스; 및 버스를 포함하고,
상기 프로세서는 상기 버스를 이용하여 상기 메모리와 상기 통신 인터페이스에 연결되며, 상기 메모리는 명령을 저장하도록 구성되고,
상기 프로세서는 상기 명령을 실행하도록 구성되고, 상기 프로세서가 상기 메모리에 저장된 명령을 실행하는 경우, 상기 프로세서가 전술한 이미지 디코딩 방법들 중 어느 하나를 수행한다.
본 발명의 실시 예의 이미지 인코딩 방법 및 장치 그리고 이미지 디코딩 방법 및 장치에 따르면, N 개의 인코딩된 유닛이 제1 사전 설정 규칙에 따라 인코딩될 유닛의 인접한 인코딩된 유닛으로부터 결정될 수 있으며, N 개의 인코딩된 유닛의 움직임 예측 모드가 인코딩될 유닛의 움직임 예측 모드와 동일하고, N이 양의 정수이며, n번째 움직임 벡터 그룹은 제1 사전 설정 알고리즘을 이용하고 n 번째 인코딩된 유닛의 움직임 벡터를 기반으로 하여 생성되며, n은 N보다 크지 않은 임의의 양의 정수를 포함하며; 제2 사전 설정 규칙에 따라, 획득된 N 개의 움직임 벡터 그룹으로부터 하나의 움직임 벡터 그룹이 최적 움직임 벡터 그룹으로 결정되고; 인코딩될 유닛의 각각의 샘플 유닛의 예측 샘플 값이 제2 사전 설정 알고리즘을 이용하고 최적 움직임 벡터 그룹을 기반으로 하여 결정되며; 각각의 샘플 유닛의 예측 잔차는 각각의 샘플 유닛의 원래 샘플 값과 각각의 샘플 유닛의 예측 샘플 값 사이의 차이를 기반으로 결정되고; 각각의 샘플 유닛의 예측 잔차 및 최적 움직임 벡터 그룹의 인덱스 식별자가 인코딩되어 인코딩될 유닛에 대응하는 비트 스트림이 획득되며, 최적 움직임 벡터 그룹의 인덱스 식별자는 디코딩 장치에게 각각의 샘플 유닛의 예측 샘플 값을 결정하도록 명령하는데 사용된다. N 개의 인코딩된 유닛의 움직임 예측 모드가 인코딩될 유닛의 움직임 예측 모드와 동일하기 때문에, N 개의 인코딩된 유닛과 인코딩될 유닛 사이의 움직임 상관이 상대적으로 높다. 또한, N 개의 인코딩된 유닛의 움직임 벡터를 기반으로 결정된 N 개의 움직임 벡터 그룹으로부터 최적 움직임 벡터 그룹이 결정된다. 따라서, 인코딩될 유닛의 각각의 샘플 유닛의 최적 움직임 벡터 그룹을 기반으로 결정된 예측 샘플 값이 보다 정확해지고, 인코딩 정밀도가 높아진다.
본 발명의 실시 예의 기술적 해결 방안을 보다 명확하게 설명하기 위해, 실시 예를 설명하기 위해 요구되는 첨부 도면을 간단히 설명한다. 명백하게, 다음의 설명에서 첨부 도면은 본 발명의 일부 실시 예를 나타내며, 당업자는 창조적인 노력 없이 이들 첨부 도면으로부터 여전히 다른 도면을 유도할 수 있다.
도 1은 본 발명의 실시 예 1에 따른 이미지 인코딩 방법의 흐름도이다.
도 2는 본 발명의 실시 예 1에 따른 이미지 인코딩 방법에서 인코딩될 유닛 및 인접한 인코딩된 유닛의 개략적인 구조도이다.
도 3은 본 발명의 실시 예 2에 따른 이미지 인코딩 방법의 흐름도이다.
도 4는 본 발명의 실시 예 3에 따른 이미지 디코딩 방법의 흐름도이다.
도 5는 본 발명의 실시 예 4에 따른 이미지 인코딩 장치의 개략적인 구조도이다.
도 6은 본 발명의 실시 예 5에 따른 이미지 디코딩 장치의 개략적인 구조도이다.
도 7은 본 발명의 실시 예 6에 따른 이미지 인코딩 장치의 개략적인 구조도이다.
도 8은 본 발명의 실시 예 7에 따른 이미지 디코딩 장치의 개략적인 구조도이다.
본 발명의 실시 예들의 목적, 기술적 해결 방안 및 장점들을 보다 명확하게 하기 위해, 본 발명의 실시 예들에서의 기술적 해결 방안을 현재의 실시 예들에서의 첨부된 도면들을 참조하여 명확하게 설명한다. 명백하게, 설명된 실시 예는 본 발명의 일부 실시 예에 불과하지만 전부는 아니다. 창의적인 노력 없이 본 발명의 실시 예를 기반으로 당업자에 의해 획득된 다른 모든 실시 예는 본 발명의 보호 범위 내에 있다.
본 발명에서 제공하는 이미지 인코딩 방법 및 장치 그리고 이미지 디코딩 방법 및 장치는 위성 및 지상파 텔레비전 방송 시스템, 비디오 회의, 보안 감시, 의료 시연, 강의실 녹음 및 방송, 그리고 법원 듣기 시스템(court hearing systems)과 같은 시나리오에 적용될 수 있다. 움직임 예측은 프레임간 예측 모드를 이용하여 비디오 이미지의 처리될 유닛에 대해 수행되고, 비디오 이미지는 움직임 예측의 결과를 기반으로 인코딩 또는 디코딩된다. 이미지 인코딩 방법 및 장치에 따르면, 비디오 이미지에서 인코딩될 유닛의 각각의 샘플 유닛의 예측 샘플 값이 움직임 예측에 의해 획득될 수 있으며, 각각의 샘플 유닛의 예측 샘플 값과 각각의 샘플 유닛의 원래 샘플 값 사이의 차이가 인코딩되어 인코딩될 유닛에 대응하는 비트 스트림이 획득됨으로써, 인코딩될 유닛에 대응하는 이미지의 저장 또는 전송이 인코딩될 유닛에 대응하는 비트 스트림의 저장 또는 전송을 통해 구현된다. 이에 대응하여, 이미지 디코딩 방법 및 장치에 따르면, 비디오 이미지에서 디코딩될 유닛의 각각의 샘플 유닛의 예측 샘플 값이 움직임 예측에 의해 획득될 수 있으며, 디코딩될 유닛에 대응하는 비트 스트림이 디코딩되어 디코딩될 유닛의 각각의 샘플 유닛의 예측 샘플 값과 각각의 샘플 유닛의 원래 샘플 값 사이의 차이가 획득되며, 또한 상기 차이와 예측 샘플 값을 기반으로 각각의 샘플 유닛의 재구성 샘플 값이 획득됨으로써, 디코딩될 유닛에 대응하는 이미지가 각각의 샘플 유닛의 재구성 샘플 값를 기반으로 획득될 수 있다. 예를 들어, 디코딩될 유닛에 대응하는 비트 스트림은 이미지 인코딩 장치에 의해 전송되어 이미지 디코딩 장치에 의해 수신되거나, 이미지 디코딩 장치에 의해 저장 디바이스로부터 획득될 수 있으며, 저장 디바이스의 비트 스트림은 이미지 디코딩 장치에 의해 저장 디바이스에 저장될 수 있다.
본 발명의 실시 예 1은 이미지 인코딩 방법을 제공한다. 이미지 인코딩 방법은 이미지 인코딩 장치에 의해 수행될 수 있다. 예를 들어, 이미지 인코딩 장치는 이미지 처리 기능을 갖는 전자 디바이스에 소프트웨어 및/또는 하드웨어의 형태로 통합될 수 있다. 예를 들어, 전자 디바이스는 지능형 단말, 개인용 컴퓨터, 소비자 전자 제품 또는 비디오 서버일 수 있다. 도 1은 본 발명의 실시 예 1에 따른 이미지 인코딩 방법의 흐름도이다. 도 1에 도시된 바와 같이, 상기 방법은 다음 단계들을 포함할 수 있다.
S101 : 제1 사전 설정 규칙에 따라, 인코딩될 유닛의 인접한 인코딩된 유닛으로부터 N 개의 인코딩된 유닛을 결정하며, N 개의 인코딩된 유닛의 움직임 예측 모드가 인코딩될 유닛의 움직임 예측 모드와 동일하다.
구체적으로, 인코딩될 유닛은 고효율 비디오 코딩(High Efficiency Video Coding, HEVC) 표준 및 후속 코딩 표준에서의 코딩 유닛(Coding Unit, CU)일 수 있다. HEVC 표준에서, 최대 코딩 유닛은 코딩 트리 유닛(Coding Tree Unit, CTU)일 수 있고, 각각의 CTU는 더 작은 CU를 획득하기 위해 레벨마다 분할될 수 있다. CU의 크기는 64×64, 32×32, 16×16 및 8×8의 4개의 레벨과 같은 4개의 레벨을 포함할 수 있다. 64×64 레벨의 CU는 64×64 샘플을 포함하고, 32×32 레벨의 CU는 32×32 샘플을 포함하며, 16×16 레벨의 CU는 16×16 샘플을 포함하고, 8×8 레벨의 CU는 8×8 샘플을 포함한다. 인코딩될 유닛은 64×64, 32×32, 16×16 및 8×8의 4개의 레벨 중 어느 하나에 대응하는 코딩 유닛일 수 있다.
비디오 이미지의 이미지 프레임에서 상이한 코딩 유닛은 서로 독립적이다. 상이한 코딩 유닛은 동일하거나 상이할 수 있다. 구체적으로, 이미지의 각각의 프레임에서, 이미지 인코딩 장치는 각각의 코딩 유닛마다 인코딩을 수행할 수 있으며, 상이한 코딩 유닛을 인코딩하기 위해 사용되는 움직임 예측 모드는 동일하거나 상이할 수 있다. 이미지 인코딩 장치는 코딩 유닛의 움직임 예측 모드를 이용하여 코딩 유닛에서 각각의 샘플 유닛에 대한 움직임 예측을 수행하여 각각의 샘플 유닛의 예측 샘플 값을 결정하고 추가로 인코딩을 구현할 수 있다. 움직임 예측 모드는 코딩 유닛에서 제어점(control point)의 움직임 벡터를 결정하고, 추가로 코딩 유닛에서 각각의 샘플 유닛의 예측 샘플 값을 결정하는데 사용될 수 있다. 예를 들어, 샘플 유닛은 샘플 또는 샘플 블록을 포함할 수 있으며, 샘플 블록은 다수의 샘플을 포함할 수 있다.
인코딩될 유닛의 인접한 인코딩된 유닛은, 인코딩될 유닛의 경계에 인접하는 위치에서의 인코딩된 유닛일 수 있다.
S101에서 제1 사전 설정 규칙에 따라 인코딩될 유닛의 인접한 인코딩된 유닛으로부터 N 개의 인코딩된 유닛을 결정하는 단계는, 미리 설정된 순회 시퀀스(traversal sequence)에서 인코딩될 유닛의 인접한 인코딩된 유닛들을 트래버스(traverse)하여, 움직임 예측 모드가 인코딩될 유닛의 움직임 예측 모드와 동일한 인접한 인코딩된 유닛에서 N 개의 인코딩된 유닛을 결정하는 단계를 포함한다. 인접한 인코딩된 유닛을 트래버스하는 것은, 인접한 인코딩된 유닛의 움직임 예측 모드가 인코딩될 유닛의 움직임 예측 모드와 동일한지의 여부를 결정하는 것일 수 있다. 인코딩된 유닛의 움직임 예측 모드가 확실하며(certain), 이에 따라 인접한 인코딩된 유닛의 움직임 예측 모드는, 인코딩이 인접한 인코딩된 유닛에 대해 수행될 때 사용되는 움직임 예측 모드일 수 있다. 인코딩될 유닛의 움직임 예측 모드는 예측에 사용될 수 있는 움직임 예측 모드이다.
S101에서 제1 사전 설정된 규칙에 따라 인코딩될 유닛의 인접한 인코딩된 유닛들로부터 N 개의 인코딩된 유닛을 결정하는 단계 이후에, 상기 방법은 움직임 예측 모드에 대응하는 지시 정보를 결정하는 단계를 더 포함할 수 있다.
움직임 예측 모드가 아핀(affine) 움직임 예측 모드를 포함하면, 예를 들어, 구문 요소 아핀 병합 플래그(syntactic element affine-merge-flag)(affine-merge-flag)와 같은, 아핀 움직임 예측 모드에 대응하는 지시(indication) 정보가 결정될 수 있고, affine-merge-flag 가 1로 설정된다.
움직임 예측 모드가 아핀 움직임 예측 모드를 포함하지만, 인접한 인코딩된 유닛 중 어느 것도 인코딩될 유닛과 동일한 움직임 예측 모드를 갖지 않으면, affine-merge-flag 가 0으로 설정될 수 있다.
예를 들어, 인코딩될 유닛의 움직임 예측 모드가 아핀 움직임 예측 모드이면, 이미지 인코딩 장치는 미리 설정된 순회 시퀀스에서 인코딩될 유닛의 인접한 인코딩된 유닛들을 트래버스할 수 있으며, 인접한 인코딩된 유닛에서, 움직임 예측 모드가 아핀 움직임 예측 모드인 N 개의 인코딩된 유닛을 결정할 수 있다. 아핀 움직임 예측 모드는 또한 아핀 변환(transformation) 움직임 예측 모드로 지칭될 수 있다. 미리 설정된 순회 시퀀스는 인코딩될 유닛의 모든 인접한 인코딩된 유닛의 순회 시퀀스일 수 있다. 예를 들어, N 개의 인코딩된 유닛 각각은 4×4 유닛일 수 있다.
도 2는 본 발명의 실시 예 1에 따른 이미지 인코딩 방법에서의 인코딩될 유닛 및 인접한 인코딩된 유닛의 개략적인 구조도이다. 도 2에 도시된 바와 같이, 예를 들면, 인코딩될 유닛의 인접한 인코딩된 유닛은, 인코딩된 유닛 A, 인코딩된 유닛 B, 인코딩된 유닛 C, 인코딩된 유닛 D, 인코딩된 유닛 E를 포함할 수 있다. 인코딩될 유닛의 움직임 예측 모드가 아핀 움직임 예측 모드이면, 인코딩될 유닛에 복수의 제어점, 예를 들면 2개의 제어점이 존재할 수 있다. 예를 들면, 2개의 제어점은 인코딩될 유닛의 왼쪽 상단 정점(upper-left vertex)과 인코딩될 유닛의 오른쪽 상단 정점(upper-right vertex)일 수 있다. 인코딩될 유닛의 왼쪽 상단 정점이 샘플 유닛 0으로 나타내고, 인코딩될 유닛의 오른쪽 상단 정점이 샘플 유닛 1로 나타낼 수 있다.
이미지 인코딩 장치는 제1 예측 방향에서 인코딩된 유닛 A 및 인코딩된 유닛 B를 순차적으로 트래버스하여, 움직임 예측 모드가 아핀 움직임 예측 모드인 제1 예측 방향에서의 제1 인코딩된 유닛, 예를 들면, 인코딩된 유닛 B를 찾고; 제2 예측 방향에서 인코딩된 유닛 C, 인코딩된 유닛 D 및 인코딩된 유닛 E를 순차적으로 트래버스하여, 움직임 예측 모드가 아핀 움직임 예측 모드인 제1 인코딩된 유닛, 예를 들어, 인코딩된 유닛 D를 찾는다.
다르게는, 이미지 인코딩 장치는, 인코딩된 유닛 A, 인코딩된 유닛 B, 인코딩된 유닛 C, 인코딩된 유닛 D 및 인코딩된 유닛 E를 순차적으로 트래버스하고, 움직임 예측 모드가 아핀 움직임 예측 모드인 제1 인코딩된 유닛, 예를 들어, 인코딩된 유닛 B를 찾는다.
S102 : 제1 사전 설정 알고리즘을 이용하고 n 번째 인코딩된 유닛의 움직임 벡터를 기반으로 하여 n번째 움직임 벡터 그룹을 생성하고, n은 N보다 크지 않은 양의 정수이다.
선택적으로, S102에서 상기 제1 사전 설정 알고리즘을 이용하고 n 번째 인코딩된 유닛의 움직임 벡터를 기반으로 하여 n번째 움직임 벡터 그룹을 생성하는 단계는,
제1 사전 설정 알고리즘을 이용하고 n 번째 인코딩된 유닛의 움직임 벡터, n번째 인코딩된 유닛의 샘플 좌표 그리고 M 개의 제어점의 샘플 좌표를 기반으로 하여, 인코딩될 유닛의 M 개의 제어점의 움직임 벡터 예측자(predictor)를 결정하는 단계 - M은 인코딩된 유닛의 움직임 예측 모드를 기반으로 결정된 양의 정수임 -; 및
M 개의 제어점의 움직임 벡터 예측자를 기반으로 n 번째 움직임 벡터 그룹을 생성하는 단계를 포함할 수 있다.
구체적으로, M 개의 제어점은 인코딩될 유닛의 정점 위치에서의 샘플 유닛을 포함할 수 있다. 인코딩될 유닛의 움직임 예측 모드가 아핀 움직임 예측 모드이면, M은 1보다 클 수 있고, M 개의 제어점은 인코딩될 유닛의 M 개의 정점을 포함할 수 있다.
예를 들어, 인코딩될 유닛의 움직임 예측 모드가 아핀 움직임 예측 모드이면, M은 2일 수 있고, M 개의 제어점은 인코딩될 유닛의 왼쪽 상단 정점 및 인코딩될 유닛의 오른쪽 상단 정점을 포함할 수 있다. 인코딩될 유닛의 왼쪽 상단 정점은 도 2의 샘플 유닛 0일 수 있으며, 인코딩될 유닛의 오른쪽 상단 정점은 도 2의 샘플 유닛 1일 수 있다. 예를 들어, S101에서 결정된 N 개의 인코딩된 유닛에서 n번째 인코딩된 유닛은 도 2의 인코딩된 유닛 B 일 수 있다. 다음에, 인코딩된 유닛 B를 예로 사용하여 설명한다. 도 2의 인코딩된 유닛 B의 적어도 2개의 샘플 유닛은, 인코딩된 유닛 B의 왼쪽 상단 정점, 인코딩된 유닛 B의 오른쪽 상단 정점, 인코딩된 유닛 B의 왼쪽 하단 정점인 3개의 샘플 유닛일 수 있다. 인코딩된 유닛 B의 왼쪽 상단 정점은 샘플 유닛 2일 수 있고, 인코딩된 유닛 B의 오른쪽 상단 정점은 샘플 유닛 3으로 나타낼 수 있으며, 인코딩된 유닛 B의 왼쪽 하단 정점은 샘플 유닛 4로 나타낼 수 있다.
상기 제1 사전 설정 알고리즘을 이용하고 n 번째 인코딩된 유닛의 움직임 벡터, n 번째 인코딩된 유닛의 샘플 좌표 및 M 개의 제어점을 기반으로 하여, 인코딩될 유닛의 M 개의 제어점의 움직임 벡터 예측자를 결정하는 단계는,
다음의 수식 (1):
Figure 112021086197705-pat00073
을 이용하고 n번째 인코딩된 유닛의 왼쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00074
, n 번째 인코딩된 유닛의 오른쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00075
, n 번째 인코딩된 유닛의 왼쪽 하단 정점의 움직임 벡터
Figure 112021086197705-pat00076
, n 번째 인코딩된 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00077
, n 번째 인코딩된 유닛의 오른쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00078
, n 번째 인코딩된 유닛의 왼쪽 하단 정점의 샘플 좌표
Figure 112021086197705-pat00079
, 그리고 인코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00080
를 기반으로 하여, 인코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00081
를 결정하는 단계; 및
다음의 수식 (2):
Figure 112021086197705-pat00082
를 이용하고 n번째 인코딩된 유닛의 왼쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00083
, n 번째 인코딩된 유닛의 오른쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00084
, n 번째 인코딩된 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00085
, n 번째 인코딩된 유닛의 오른쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00086
, 인코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00087
, 인코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00088
, 그리고 인코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00089
를 기반으로 하여, 인코딩될 유닛의 오른쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00090
를 결정하는 단계를 포함한다.
S103 : 제2 사전 설정 규칙에 따라, 획득된 N 개의 움직임 벡터 그룹으로부터 하나의 움직임 벡터 그룹을 최적 움직임 벡터 그룹으로 결정한다.
선택적으로, S103에서 상기 제2 사전 설정 규칙에 따라, 획득된 N 개의 움직임 벡터 그룹 중에서 하나의 움직임 벡터 그룹을 최적 움직임 벡터 그룹으로 결정하는 단계는,
미리 설정된 정렬 규칙에 따라 N 개의 움직임 벡터 그룹을 정렬하여 후보 움직임 벡터 큐를 생성하는 단계;
N이 미리 설정된 값보다 크거나 같으면, 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹들을 결정하는 단계;
상기 전방에서의 미리 설정된 수량의 움직임 벡터 그룹들 각각과 인코딩될 유닛 사이의 매칭 에러를 결정하는 단계; 및
가장 작은 매칭 에러를 갖는 하나의 움직임 벡터 그룹을 최적 움직임 벡터 그룹으로 결정하는 단계를 포함한다.
구체적으로, 미리 설정된 정렬 규칙은 N 개의 인코딩된 유닛의 내림차순을 포함할 수 있다.
예를 들어, N 개의 인코딩된 유닛들 각각의 크기는 각각의 인코딩된 유닛의 수평 폭과 수직 높이의 곱일 수 있다. 예를 들어, N 개의 인코딩된 유닛 각각의 크기는 다음의 수식 (3):
Figure 112021086197705-pat00091
을 기반으로 결정될 수 있으며, 여기서
Figure 112021086197705-pat00092
는 각각의 인코딩된 유닛의 크기이며,
Figure 112021086197705-pat00093
는 각각의 인코딩된 유닛의 수평 폭이고,
Figure 112021086197705-pat00094
는 각각의 인코딩된 유닛의 수직 높이이며,
Figure 112021086197705-pat00095
는 각각의 인코딩된 유닛의 식별자이다.
예를 들어, N이 2이면, N 개의 인코딩된 유닛은 도 2에 도시된 인코딩된 유닛 B 및 인코딩된 유닛 D 일 수 있다.
인코딩된 유닛 B의 크기는
Figure 112021086197705-pat00096
일 수 있다.
Figure 112021086197705-pat00097
Figure 112021086197705-pat00098
Figure 112021086197705-pat00099
의 곱이다.
Figure 112021086197705-pat00100
는 인코딩된 유닛 B의 가로 폭이다.
Figure 112021086197705-pat00101
는 인코딩된 유닛 B의 수직 높이이다. 인코딩된 유닛 D의 크기는
Figure 112021086197705-pat00102
일 수 있다.
Figure 112021086197705-pat00103
Figure 112021086197705-pat00104
Figure 112021086197705-pat00105
의 곱이다.
Figure 112021086197705-pat00106
는 인코딩된 유닛 D의 가로 폭이다.
Figure 112021086197705-pat00107
는 인코딩된 유닛 B의 수직 높이이다. 예를 들어, 인코딩된 유닛 B가 인코딩된 유닛 D보다 크면, 순회 시퀀스는 B> D로 나타낼 수 있다.
예를 들어, 인코딩된 유닛 B를 기반으로 생성된 후보 움직임 벡터 큐에서의 움직임 벡터 그룹에 대응하는 인덱스 식별자는 1일 수 있다. 예를 들어, 인코딩된 유닛 D를 기반으로 생성된 후보 움직임 벡터 큐에서의 움직임 벡터 그룹에 대응하는 인덱스 식별자는 2일 수 있다.
예를 들어, N이 10이면, 즉 후보 움직임 벡터 큐가 10개의 움직임 벡터 그룹을 포함하면, 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹은, 10개의 움직임 벡터 그룹에서의 첫번째 5개의 움직임 그룹이다.
선택적으로, 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹으로부터 최적 움직임 벡터 그룹을 선택하는 것은, 전방에서의 미리 설정된 수량의 움직임 벡터 그룹들 각각과 인코딩될 유닛 사이의 매칭 에러를 결정하는 단계; 및 인코딩될 유닛과 가장 작은 매칭 에러를 가지는 하나의 움직임 벡터 그룹을 최적 움직임 그룹으로 결정하는 단계일 수 있다.
상기 전방에서의 미리 설정된 수량의 움직임 벡터 그룹들 각각과 인코딩될 유닛 사이의 매칭 에러를 결정하는 단계는,
움직임 벡터 그룹을 기반으로, 움직임 벡터 그룹에 대응하는 인코딩될 유닛에서의 샘플 유닛의 예측 샘플 값을 결정하는 단계;
움직임 벡터 그룹에 대응하는 샘플 유닛의 예측 샘플 값과 샘플 유닛의 원래 샘플 값 사이의 제곱된 차이의 합(Sum of Squared Differences, SSD) 또는 절대 차이의 합(Sum of Absolute Differences, SAD)을 기반으로, 움직임 벡터 그룹에 대응하는 레이트 왜곡 코스트(Rate Distortion Cost, RD)를 결정하는 단계; 및
움직임 벡터 그룹에 대응하는 레이트 왜곡 코스트를 기반으로 움직임 벡터 그룹과 인코딩될 유닛 사이의 매칭 에러를 결정하는 단계일 수 있다.
구체적으로, 상기 전술한 단계에서 상기 움직임 벡터 그룹을 기반으로, 움직임 벡터 그룹에 대응하는 인코딩될 유닛에서의 샘플 유닛의 예측 샘플 값을 결정하는 단계는, 움직임 벡터 그룹을 기반으로 샘플 유닛의 움직임 벡터 예측자를 결정하고, 추가로 샘플 유닛의 움직임 벡터 예측자를 기반으로 움직임 벡터 그룹에 대응하는 레이트 왜곡 코스트를 결정하는 단계를 포함할 수 있다.
예를 들어, SAD를 예로 들면, 이미지 인코딩 장치는 다음의 수식 (4):
Figure 112021086197705-pat00108
를 이용하고 인코딩될 유닛에 대응하는 비트 레이트 그리고 움직임 벡터 그룹에 대응하는 샘플 유닛의 예측 샘플 값과 샘플 유닛의 원래 샘플 값 사이의 SAD를 기반으로 하여, 움직임 벡터 그룹에 대응하는 레이트 왜곡 코스트를 결정할 수 있으며, 여기서,
Figure 112021086197705-pat00109
는 움직임 벡터 그룹에 대응하는 레이트 왜곡 코스트이고,
Figure 112021086197705-pat00110
는 움직임 벡터 그룹에 대응하는 샘플 유닛의 예측 샘플 값과 샘플 유닛의 원래 샘플 값 사이의 SAD이며,
Figure 112021086197705-pat00111
은 인코딩될 유닛에 대응하는 비트 레이트이고,
Figure 112021086197705-pat00112
는 라그랑지 승수(Lagrange multiplier)이고 미리 설정된 상수이다.
S104 : 제2 사전 설정 알고리즘을 이용하고 최적 움직임 벡터 그룹을 기반으로 하여, 인코딩될 유닛의 각각의 샘플 유닛의 예측 샘플 값을 결정한다.
선택적으로, S104에서 상기 제2 사전 설정 알고리즘을 이용하고 최적 움직임 벡터 그룹을 기반으로 하여, 인코딩될 유닛의 각각의 샘플 유닛의 예측 샘플 값을 결정하는 단계는,
제2 사전 설정 알고리즘을 이용하고 M 개의 제어점의 최적 움직임 벡터 그룹에서의 움직임 벡터 예측자와 각각의 샘플 유닛의 샘플 좌표를 기반으로 하여, 인코딩될 유닛의 각각의 샘플 유닛의 움직임 벡터 예측자를 결정하는 단계; 및
미리 설정된 기준 프레임에서, 각각의 샘플 유닛의 움직임 벡터 예측자를 기반으로 각각의 샘플 유닛의 예측 샘플 값을 결정하는 단계를 포함할 수 있다.
예를 들어, 인코딩될 유닛의 움직임 예측 모드가 아핀 움직임 예측 모드이면, 도 2에 도시된 바와 같이, 인코딩될 유닛의 왼쪽 상단 정점과 인코딩될 유닛의 오른쪽 상단 정점인 두 개의 제어점이 인코딩된 유닛에 있을 수 있다.
예를 들어, 이미지 인코딩 장치는 다음의 수식 (5):
Figure 112021086197705-pat00113
를 이용하고 두 개의 제어점의 최적 움직임 벡터 그룹에서의 움직임 벡터 예측자와 각각의 샘플 유닛의 샘플 좌표를 기반으로 하여, 인코딩될 유닛의 각각의 샘플 유닛의 움직임 벡터 예측자를 결정할 수 있으며, 여기서,
Figure 112021086197705-pat00114
는 각각의 샘플 유닛의 움직임 벡터 예측자이고,
Figure 112021086197705-pat00115
각각의 샘플 유닛의 움직임 벡터 예측자의 수평 컴포넌트이며,
Figure 112021086197705-pat00116
는 각각의 샘플 유닛의 움직임 벡터 예측자의 수직 컴포넌트이고,
Figure 112021086197705-pat00117
는 각각의 샘플 유닛의 샘플 좌표이며,
Figure 112021086197705-pat00118
는 각각의 샘플 유닛의 수평 샘플 좌표이고,
Figure 112021086197705-pat00119
는 각각의 샘플 유닛의 수직 샘플 좌표이며,
Figure 112021086197705-pat00120
인코딩될 유닛의 수평 폭이다.
S105 : 각각의 샘플 유닛의 원래 샘플 값과 각각의 샘플 유닛의 예측 샘플 값 사이의 차이를 기반으로 각각의 샘플 유닛의 예측 잔차를 결정한다.
S106 : 각각의 샘플 유닛의 예측 잔차와 최적 움직임 벡터 그룹의 인덱스 식별자를 인코딩하여 인코딩될 유닛에 대응하는 비트 스트림을 획득하며, 최적 움직임 벡터 그룹의 식별자는 디코딩 장치에게 각각의 샘플 유닛의 예측 샘플 값을 결정하도록 명령하는데 사용된다.
구체적으로, S106에서, 각각의 샘플 유닛의 예측 잔차와 최적 움직임 벡터 그룹의 인덱스 식별자에 대해 변환(Transformation) 및 양자화(Quantization)가 순차적으로 수행된 후에 인코딩이 수행되어, 인코딩될 유닛에 대응하는 비트 스트림을 획득할 수 있다.
변환은 카흐닌-뢰브 변환(
Figure 112021086197705-pat00121
, KLT), 이산 푸리에 변환, 이산 코사인 변환(Discrete Cosine Transform, DCT) 등 중에서 하나일 수 있다. 인코딩은 엔트로피(Entropy) 인코딩일 수 있다.
선택적으로, S106에서, 각각의 샘플 유닛의 예측 잔차, 최적 움직임 벡터 그룹의 인덱스 식별자 및 미리 설정된 기준 프레임의 인덱스 식별자를 인코딩하여 인코딩될 유닛에 대응하는 비트 스트림을 획득할 수 있다.
선택적으로, S106에서, 각각의 샘플 유닛의 예측 잔차, 최적 움직임 벡터 그룹의 인덱스 식별자, 미리 설정된 기준 프레임의 인덱스 식별자, 및 인코딩될 유닛의 움직임 예측 모드에 대응하는 지시 정보를 인코딩하여 인코딩된 유닛에 대응하는 비트 스트림을 획득할 수 있다.
N 개의 인코딩된 유닛은, 인코딩될 유닛의 인접한 인코딩된 유닛에서, 동일한 움직임 예측 모드를 갖는 인코딩된 유닛이기 때문에, N 개의 인코딩된 유닛과 인코딩될 유닛 사이의 움직임 상관이 상대적으로 높다. N 개의 인코딩된 유닛의 움직임 벡터를 기반으로 N 개의 움직임 벡터 그룹이 결정되기 때문에, N 개의 움직임 벡터 그룹에서 최적 움직임 벡터 그룹을 기반으로 결정된, 인코딩될 유닛의 각각의 샘플 유닛의 움직임 벡터 예측자가 보다 정확함으로써, 인코딩 정밀도가 높다.
또한, 최적 움직임 벡터 그룹이 후보 움직임 벡터 큐의 전방에서의 미리 설정된 수량의 움직임 벡터 그룹들로부터 결정될 수 있으며, 정렬된 N 개의 움직임 벡터 그룹들을 기반으로 후보 움직임 벡터 큐가 생성된다. 따라서, 후보 움직임 벡터 큐에서 최적 움직임 벡터 그룹의 인덱스 식별자는 상대적으로 작으므로, 최적 움직임 벡터 그룹의 인덱스 식별자를 인코딩하는데 사용되는 비트의 수량이 상대적으로 적고, 인코딩 효율이 향상된다.
본 발명의 실시 예 1에서 제공된 이미지 인코딩 방법에 따르면, N 개의 인코딩된 유닛이 제1 사전 설정 규칙에 따라 인코딩될 유닛의 인접한 인코딩된 유닛으로부터 결정될 수 있으며, N 개의 인코딩된 유닛의 움직임 예측 모드가 인코딩될 유닛의 움직임 예측 모드와 동일하고, n번째 움직임 벡터 그룹은 제1 사전 설정 알고리즘을 이용하고 n 번째 인코딩된 유닛의 움직임 벡터를 기반으로 하여 생성되며, n은 N보다 크지 않은 임의의 양의 정수를 포함하고; 획득된 N 개의 움직임 벡터 그룹으로부터 제2 사전 설정 규칙에 따라 하나의 움직임 벡터 그룹이 최적 움직임 벡터 그룹으로 결정되며; 인코딩될 유닛에서 각각의 샘플 유닛의 예측 샘플 값이 제2 사전 설정 알고리즘을 이용하고 최적 움직임 벡터 그룹을 기반으로 하여 결정되고; 각각의 샘플 유닛의 예측 잔차가 각각의 샘플 유닛의 원래 샘플 값과 각각의 샘플 유닛의 예측 샘플 값 사이의 차이를 기반으로 결정되며; 각각의 샘플 유닛의 예측 잔차 및 최적 움직임 벡터 그룹의 인덱스 식별자를 인코딩하여 인코딩될 유닛에 대응하는 비트 스트림을 획득한다. N 개의 인코딩된 유닛의 움직임 예측 모드가 인코딩될 유닛의 움직임 예측 모드와 동일하기 때문에, N 개의 인코딩된 유닛과 인코딩될 유닛 사이의 움직임 상관이 상대적으로 높다. 또한, N 개의 인코딩된 유닛의 움직임 벡터를 기반으로 결정되는 N 개의 움직임 벡터 그룹으로부터 최적 움직임 벡터 그룹이 결정된다. 따라서, 최적 움직임 벡터 그룹을 기반으로 결정된, 인코딩될 유닛의 각각의 샘플 유닛의 예측 샘플 값이 보다 정확해짐으로써, 인코딩 정밀도가 높다.
본 발명의 실시 예 2는 추가로 이미지 인코딩 방법을 제공한다. 도 3은 본 발명의 실시 예 2에 따른 이미지 인코딩 방법의 흐름도이다. 도 3에 도시된 바와 같이, 상기 방법에 따르면, 전술한 실시 예의 S103에서 상기 제2 사전 설정 규칙에 따라, 획득된 N 개의 움직임 벡터 그룹으로부터 하나의 움직임 벡터 그룹을 최적 움직임 벡터 그룹으로 결정하는 단계는 다음 단계들을 포함할 수 있다.
S301: 미리 설정된 정렬 규칙에 따라 N 개의 움직임 벡터 그룹을 정렬한다.
예를 들어, 미리 설정된 정렬 규칙은 N 개의 인코딩된 유닛의 오름차순 또는 내림차순일 수 있다.
S302 : N이 미리 설정된 값보다 작으면 Q 개의 움직임 벡터 그룹을 생성하며, N과 Q의 합이 미리 설정된 값보다 크거나 같으며, Q는 양의 정수이다.
N이 미리 설정된 값보다 작으면, 선택된 최적 움직임 벡터 그룹의 정확성을 보장하기 위해, Q 개의 움직임 벡터 그룹이 추가로 생성되어 후보 움직임 벡터 큐(queue)에서 움직임 벡터 그룹의 수량을 보장할 필요가 있다.
선택적으로, S302에서 상기 Q 개의 움직임 벡터 그룹을 생성하는 단계는,
인접한 인코딩된 유닛으로부터, 인코딩될 유닛의 m번째 제어점에 대응하는 인코딩된 유닛을 결정하는 단계 - m번째 제어점에 대응하는 인코딩된 유닛과 m번째 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, m은 M보다 크지 않은 임의의 양의 정수를 포함함 -;
m 번째 제어점에 대응하는 인코딩된 유닛의 움직임 벡터를 m 번째 제어점의 움직임 벡터 예측자로 결정하는 단계; 및
M 개의 제어점의 움직임 벡터 예측자를 기반으로 Q 개의 움직임 벡터 그룹을 생성하는 단계를 포함할 수 있다.
예를 들어, 도 2에 도시된 바와 같이, 인접한 인코딩된 유닛이 인코딩된 유닛 A, 인코딩된 유닛 B, 인코딩된 유닛 C, 인코딩된 유닛 D 및 인코딩된 유닛 E를 포함하고, 인코딩될 유닛에 2개의 제어점이 존재하면, 인접한 인코딩된 유닛에서 인코딩될 유닛의 왼쪽 상단 정점에 대응하는 인코딩된 유닛은 인코딩된 유닛 C를 포함할 수 있으며, 인접한 인코딩된 유닛에서 인코딩될 유닛의 오른쪽 상단 정점에 대응하는 인코딩된 유닛은 인코딩된 유닛 D 및 인코딩된 유닛 E를 포함할 수 있다.
예를 들어, 인코딩될 유닛의 왼쪽 상단 정점에 대응하는 인코딩된 유닛이 인코딩된 유닛 C를 포함하면, 왼쪽 상단 정점의 움직임 벡터 예측자가
Figure 112021086197705-pat00122
일 수 있다.
Figure 112021086197705-pat00123
는 는 인코딩된 유닛 C의 움직임 벡터를 기반으로 결정된, 왼쪽 상단 정점의 움직임 벡터 예측자일 수 있다.
예를 들어, 인코딩될 유닛의 오른쪽 상단 정점에 대응하는 인코딩된 유닛이 인코딩된 유닛 D와 인코딩된 유닛 E를 포함하면, 오른쪽 상단 정점의 움직임 벡터 예측자는
Figure 112021086197705-pat00124
일 수 있으며, 오른쪽 상단 정점의 다른 움직임 벡터 예측자는
Figure 112021086197705-pat00125
일 수 있다.
Figure 112021086197705-pat00126
는 인코딩된 유닛 D의 움직임 벡터를 기반으로 결정된, 오른쪽 상단 정점의 움직임 벡터 예측자일 수 있다.
Figure 112021086197705-pat00127
는 인코딩된 유닛 E의 움직임 벡터를 기반으로 결정된, 오른쪽 상단 정점의 움직임 벡터 예측자일 수 있다.
Q 개의 움직임 벡터 그룹은
Figure 112021086197705-pat00128
와 인
Figure 112021086197705-pat00129
2개의 움직임 벡터 그룹을 포함할 수 있다. 예를 들어 Q는 2일 수 있다.
다르게는, S302에서 상기 Q 개의 움직임 벡터 그룹을 생성하는 단계는,
인접한 인코딩된 유닛으로부터, 인코딩될 유닛의 m번째 제어점에 대응하는 인코딩된 유닛을 결정하는 단계 - m번째 제어점에 대응하는 인코딩된 유닛과 m번째 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, m은 M보다 크지 않은 임의의 양의 정수를 포함함 -;
m 번째 제어점에 대응하는 인코딩된 유닛의 움직임 벡터를 m 번째 제어점의 제1 움직임 벡터 예측자로 결정하는 단계;
M 개의 제어점의 제1 움직임 벡터 예측자를 기반으로 K 개의 움직임 벡터 그룹을 생성하는 단계;
인접한 인코딩된 유닛에서 j번째 인코딩된 유닛의 움직임 벡터를 m 번째 제어점의 제2 움직임 벡터 예측자로 결정하는 단계 - j는 1,... 또는 J 중 어느 하나이며, J는 인접한 인코딩된 유닛의 수량이고, J는 양의 정수임 -;
M 개의 제어점의 제2 움직임 벡터 예측자를 기반으로 L 개의 제2 움직임 벡터 그룹을 생성하는 단계; 및
K 개의 제1 움직임 벡터 그룹을 L 개의 제2 움직임 벡터 그룹의 끝에 추가하여 Q 개의 움직임 벡터 그룹을 생성하는 단계를 포함할 수 있다.
구체적으로, Q 개의 움직임 벡터 그룹은 다수의 시간에서(in a plurality of times) 생성될 수 있다. 예를 들어, K 개의 제1 움직임 벡터 그룹이 생성되고, L 개의 제2 움직임 벡터 그룹이 생성된다.
S303 : Q 개의 움직임 벡터 그룹을 N 개의 움직임 벡터 그룹의 끝에 추가하여 후보 움직임 벡터 큐를 생성한다.
S304 : 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹을 결정한다.
S304에서, 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹을 결정하는 프로세스의 구현은, 실시 예 1과 유사하다. 상세한 설명은 여기서 다시 설명하지 않는다.
S305: 전방에서의 미리 설정된 수량의 움직임 벡터 그룹들 각각과 인코딩될 유닛 사이의 매칭 에러를 결정한다.
S305에서의 각각의 움직임 벡터 그룹과 인코딩될 유닛 사이의 매칭 에러를 결정하는 구체적인 구현 프로세스는, 실시 예 1과 유사하다. 상세한 설명은 여기서 다시 설명하지 않는다.
S306 : 가장 작은 매칭 에러를 갖는 하나의 움직임 벡터 그룹을 최적 움직임 벡터 그룹으로 결정한다.
선택적으로, S303에서, 상기 Q 개의 움직임 벡터 그룹을 N 개의 움직임 벡터 그룹의 끝에 추가하여 후보 움직임 벡터 큐를 생성하는 단계는,
q 번째 움직임 벡터 그룹에 대응하는 고유값(eigenvalue)을 결정하는 단계 - q가 Q보다 크지 않은 임의의 양의 정수를 포함함 -;
Q 개의 움직임 벡터 그룹들에 대응하는 고유값을 기반으로 Q 개의 움직임 벡터 그룹을 오름차순으로 정렬하는 단계; 및
정렬된 Q 개의 움직임 벡터 그룹을 정렬된 N 개의 움직임 벡터 그룹의 끝에 추가하여 후보 움직임 벡터 큐를 생성하는 단계를 포함할 수 있다.
선택적으로, 상기 q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하는 단계는,
M 개의 제어점에서 인접한 제어점의 q번째 움직임 벡터에서의 움직임 벡터 예측자의 하나의 예측 방향에서의 컴포넌트들 사이의 차이를 결정하는 단계;
차이의 절대값을 미리 설정된 컴포넌트 임계값과 비교하는 단계 - 미리 설정된 컴포넌트 임계 값은 예측 방향에서 인코딩될 유닛의 범위임 -; 및
차이의 절대값이 미리 설정된 컴포넌트 임계 값보다 작거나 같으면, q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하는 단계를 포함할 수 있다.
구체적으로는, 미리 설정된 컴포넌트 임계 값은 수평 예측 방향에서 인코딩될 유닛의 수평 폭을 기반으로 결정될 수 있으며, 또는 미리 설정된 컴포넌트 임계 값은 수직 예측 방향에서 인코딩될 유닛의 수직 높이를 기반으로 결정될 수 있다.
예를 들면, 인코딩될 유닛의 M 개의 제어점이 도 2에 도시된 바와 같이, 인코딩될 유닛의 왼쪽 상단 정점과 오른쪽 상단 정점을 포함하면, Q 개의 움직임 벡터 그룹은
Figure 112021086197705-pat00130
Figure 112021086197705-pat00131
인 2개의 움직임 벡터 그룹을 포함할 수 있으며, 여기서
Figure 112021086197705-pat00132
는 인코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자이고,
Figure 112021086197705-pat00133
Figure 112021086197705-pat00134
는 모두 인코딩될 유닛의 오른쪽 상단 정점의 움직임 벡터 예측자이다.
예를 들어, 본 실시 예에서, M 개의 제어점에서 인접하는 제어점의 움직임 벡터 예측자의 한 예측 방향에서의 컴포넌트들 사이의 차이가 다음의 수식 (6):
Figure 112021086197705-pat00135
을 기반으로 미리 설정된 컴포넌트 임계값과 비교될 수 있으며, 여기서,
Figure 112021086197705-pat00136
는 왼쪽 상단 정점의 움직임 벡터 예측자의 수평 예측 방향에서의 컴포넌트이고,
Figure 112021086197705-pat00137
는 왼쪽 상단 정점의 움직임 벡터 예측자의 수직 예측 방향에서의 컴포넌트이며,
Figure 112021086197705-pat00138
는 오른쪽 상단 정점의 움직임 벡터 예측자의 수평 예측 방향에서의 컴포넌트이고,
Figure 112021086197705-pat00139
는 오른쪽 상단 정점의 움직임 벡터 예측자의 수직 예측 방향에서의 컴포넌트이며,
Figure 112021086197705-pat00140
는 C일 수 있고,
Figure 112021086197705-pat00141
는 D와 E 중 임의 하나일 수 있으며,
Figure 112021086197705-pat00142
는 인코딩될 유닛의 수평 폭이고; 그리고
Figure 112021086197705-pat00143
는 인코딩될 유닛의 수직 높이이다.
Figure 112021086197705-pat00144
가 C이면,
Figure 112021086197705-pat00145
는 D와 E 중 어느 하나이고,
Figure 112021086197705-pat00146
Figure 112021086197705-pat00147
사이의 차이의 절대값은
Figure 112021086197705-pat00148
보다 작거나 같으며,
Figure 112021086197705-pat00149
Figure 112021086197705-pat00150
사이의 차이의 절대값은
Figure 112021086197705-pat00151
다 작거나 같고, 움직임 벡터 그룹
Figure 112021086197705-pat00152
Figure 112021086197705-pat00153
는 정렬된다.
선택적으로, 상기 q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하는 단계는,
인접한 인코딩된 유닛으로부터 다른 제어점에 대응하는 인코딩된 유닛을 결정하는 단계 - 상기 다른 제어점에 대응하는 인코딩된 유닛과 상기 다른 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, 상기 다른 제어점은 인코딩될 유닛에서의 M 개의 제어점 이외의 제어점임 -;
상기 다른 제어점에 대응하는 인코딩된 유닛의 움직임 벡터를 상기 다른 제어점의 움직임 벡터 예측자로 결정하는 단계; 및
제3 사전 설정 알고리즘을 이용하고 상기 다른 제어점의 움직임 벡터 예측자 및 M 개의 제어점의 q번째 움직임 벡터 그룹에서의 움직임 벡터 예측자를 기반으로 하여, q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하는 단계를 포함할 수 있다.
예를 들어, 인코딩될 유닛의 M 개의 제어점이 인코딩될 유닛의 왼쪽 상단 정점 및 오른쪽 상단 정점을 포함할 수 있으면, 상기 다른 제어점은, 인코딩될 유닛의 왼쪽 하단 정점일 수 있으며, 예를 들면, 도 2의 인코딩될 유닛의 샘플 유닛(5)일 수 있다.
다른 제어점에 대응하는 인코딩된 유닛은 인코딩된 유닛 A와 인코딩된 유닛 B를 포함할 수 있다. 따라서, 인코딩된 유닛 A의 움직임 벡터는 다른 제어점의 움직임 벡터 예측자
Figure 112021086197705-pat00154
로 결정될 수 있으며, 인코딩된 유닛 B의 움직임 벡터는 다른 제어점의 움직임 벡터 예측자
Figure 112021086197705-pat00155
로 결정될 수 있다.
예를 들면, 본 실시 예에서, q 번째의 움직임 벡터 그룹에 대응하는 고유값은 다음의 수식 (7):
Figure 112021086197705-pat00156
을 이용하고 상기 다른 제어점의 움직임 벡터 예측자와 M 개의 제어점의 q번째 움직임 벡터 그룹에서의 움직임 벡터 예측자를 기반으로 하여 결정될 수 있으며, 여기서,
Figure 112021086197705-pat00157
는 q번째 움직임 벡터 그룹에 대응하는 고유값이며,
Figure 112021086197705-pat00158
는 왼쪽 하단 정점과 같은 다른 제어점의 움직임 벡터 예측자의 수평 예측 방향에서의 컴포넌트이며,
Figure 112021086197705-pat00159
는 왼쪽 하단 정점과 같은 다른 제어점의 움직임 벡터 예측자의 수직 예측 방향에서의 컴포넌트이고,
Figure 112021086197705-pat00160
는 A와 B 중 임의 하나일 수 있다.
선택적으로, 인코딩될 유닛의 움직임 예측 모드는 트랜스레이션 움직임 예측 모드(translation motion prediction mode) 또는 아핀 움직임 예측 모드를 포함할 수 있다.
인코딩될 유닛의 움직임 예측 모드가 트랜스레이션 움직임 예측 모드를 포함하면, 제어점의 수량, 즉 M은 1이 될 수 있다. 인코딩될 유닛의 움직임 예측 모드가 아핀 움직임 예측 모드를 포함하면, 제어점의 수량, 즉 M은 1보다 클 수 있다.
본 발명의 제2 실시 예는 후보 움직임 벡터 큐를 결정하는 복수의 구현 프로세스를 제공한다. 따라서, 인코딩될 유닛에서 각각의 샘플 유닛의, 후보 움직임 벡터 큐로부터 선택된 최적 움직임 벡터 그룹을 기반으로 결정된, 예측 샘플 값이 보다 정확함을 보다 확실하게 보증할 수 있으므로, 인코딩 정밀도가 보다 높아지며, 최적 움직임 벡터 그룹의 인덱스 식별자를 인코딩하는데 사용된 비트의 수량이 상대적으로 적고, 인코딩 효율이 향상된다.
본 발명의 실시 예 3은 이미지 디코딩 방법을 제공한다. 이미지 디코딩 방법은 전술한 이미지 인코딩 방법에 대응하는 디코딩 방법이다. 이미지 디코딩 방법은 이미지 디코딩 장치에 의해 수행될 수 있다. 예를 들어, 이미지 디코딩 장치는 이미지 처리 기능을 갖는 전자 디바이스에 소프트웨어 및/또는 하드웨어의 형태로 통합될 수 있다. 예를 들어, 전자 디바이스는 지능형 단말, 개인용 컴퓨터, 소비자 전자 제품 또는 비디오 서버일 수 있다. 도 4는 본 발명의 실시 예 3에 따른 이미지 디코딩 방법의 흐름도이다. 도 4에 도시된 바와 같이, 상기 방법은 다음의 단계들을 포함할 수 있다.
S401 : 디코딩될 유닛의 인접하는 디코딩된 유닛으로부터 제1 사전 설정 규칙에 따라 N 개의 디코딩된 유닛을 결정하며, N 개의 디코딩된 유닛의 움직임 예측 모드가 디코딩될 유닛의 움직임 예측 모드와 동일하다.
S401의 구체적인 구현 프로세스는 전술한 실시 예의 S101과 유사하다. 상세한 설명은 여기에서 다시 설명하지 않는다.
S401에서 상기 디코딩될 유닛의 인접하는 디코딩된 유닛으로부터 제1 사전 설정 규칙에 따라 N 개의 디코딩된 유닛을 결정하는 단계 이전에, 상기 방법은, 상기 디코딩될 유닛의 움직임 예측 모드를 결정하는 단계를 더 포함할 수 있다.
구체적으로, 상기 디코딩될 유닛의 움직임 예측 모드를 결정하는 단계는, 디코딩될 유닛에 대응하는 구문 요소(syntactic element)를 파싱하여 디코딩될 유닛의 움직임 예측 모드를 획득하는 단계를 포함할 수 있다. 파싱 후에 획득되는 구문 요소 affine-merge-flag가 1이면, 디코딩될 유닛의 움직임 예측 모드는 아핀 움직임 예측 모드이다. 파싱 후에 얻어진 구문 요소 affine-merge-flag가 0이면, 디코딩될 유닛의 움직임 예측 모드는 트랜스레이션 움직임 예측 모드이다.
S402 : 제1 사전 설정 알고리즘을 이용하고 n 번째 디코딩된 유닛의 움직임 벡터를 기반으로 하여, n 번째 움직임 벡터 그룹을 생성하며, n은 N 보다 크지 않은 양의 정수를 포함한다.
S402의 구체적인 구현 프로세스는 전술한 실시 예의 S102와 유사하다. 상세한 설명은 여기에서 다시 설명하지 않는다.
S403 : 디코딩될 유닛에 대응하는 비트 스트림을 디코딩하여 각각의 샘플 유닛의 예측 잔차와 최적 움직임 벡터 그룹의 인덱스 식별자를 획득한다.
구체적으로는, S403에서, 디코딩될 유닛의 유닛에 대응하는 비트 스트림이 디코딩되고, 디코딩 후에 획득된 정보에 대하여 역 양자화(de-quantization) 및 역변환(inverse transformation)이 순차적으로 수행되고, 추가로, 각각의 샘플 유닛의 예측 잔차와 최적 움직임 벡터 그룹의 인덱스 식별자가 획득된다. 역변환은 전술한 실시 예에서의 S106의 변환에 대응하는 역변환일 수 있다. 역양자화는 전술한 실시 예에서 S106의 양자화에 대응하는 역양자화일 수 있다. 디코딩은 S106에서의 인코딩에 대응하는 디코딩, 예를 들어 엔트로피 인코딩에 대응하는 디코딩일 수 있다.
S404 : 최적 움직임 벡터 그룹의 인덱스 식별자를 기반으로 N 개의 움직임 벡터 그룹에서 최적 움직임 벡터 그룹을 결정한다.
최적 움직임 벡터 그룹의 인덱스 식별자는 N 개의 움직임 벡터 그룹에서 최적 움직임 벡터 그룹의 인덱스 번호일 수 있다.
S405 : 제2 사전 설정 알고리즘을 이용하고 최적 움직임 벡터 그룹을 기반으로 하여, 디코딩될 유닛에서 각각의 샘플 유닛의 예측 샘플 값을 결정한다.
S405에서 디코딩될 유닛에서 각각의 샘플 유닛의 예측 샘플 값을 결정하는 프로세스는 전술한 실시 예의 S104의 것과 유사할 수 있다. 상세한 설명은 여기에서 다시 설명하지 않는다.
S406 : 각각의 샘플 유닛의 예측 샘플 값과 각각의 샘플 유닛의 예측 잔차의 합을 기반으로 각각의 샘플 유닛의 재구성 샘플 값을 결정한다.
선택적으로, S402에서 상기 제1 사전 설정 알고리즘을 이용하고 n 번째 디코딩된 유닛의 움직임 벡터를 기반으로 n 번째 움직임 벡터 그룹을 생성하는 단계는,
제1 사전 설정 알고리즘을 이용하고 n 번째 디코딩된 유닛의 움직임 벡터, n번째 디코딩된 유닛의 샘플 좌표 및 M 개의 제어점의 샘플 좌표를 기반으로, 디코딩될 유닛의 M 개의 제어점의 움직임 벡터 예측자를 결정하는 단계; 및
M 개의 제어점의 움직임 벡터 예측자를 기반으로 n 번째 움직임 벡터 그룹을 생성하는 단계를 포함할 수 있으며, M은 디코딩될 유닛의 움직임 예측 모드를 기반으로 결정되는 양의 정수이다.
선택적으로, M 개의 제어점은 디코딩될 유닛의 왼쪽 상단 정점 및 오른쪽 상단 정점을 포함한다.
상기 제1 사전 설정 알고리즘을 이용하고 n 번째 디코딩된 유닛의 움직임 벡터, n번째 디코딩된 유닛의 샘플 좌표 및 M 개의 제어점의 샘플 좌표를 기반으로, 디코딩될 유닛의 M 개의 제어점의 움직임 벡터 예측자를 결정하는 단계는,
다음의 수식 (1):
Figure 112021086197705-pat00161
을 이용하고 n번째 디코딩된 유닛의 왼쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00162
, n 번째 디코딩된 유닛의 오른쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00163
, n 번째 디코딩된 유닛의 왼쪽 하단 정점의 움직임 벡터
Figure 112021086197705-pat00164
, n 번째 디코딩된 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00165
, n 번째 디코딩된 유닛의 오른쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00166
, n 번째 디코딩된 유닛의 왼쪽 하단 정점의 샘플 좌표
Figure 112021086197705-pat00167
, 그리고 디코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00168
를 기반으로 하여, 디코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00169
를 결정하는 단계; 및
다음의 수식 (2):
Figure 112021086197705-pat00170
를 이용하고 n번째 디코딩된 유닛의 왼쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00171
, n 번째 디코딩된 유닛의 오른쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00172
, n 번째 디코딩된 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00173
, n 번째 디코딩된 유닛의 오른쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00174
, 디코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00175
, 디코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00176
, 그리고 디코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00177
를 기반으로 하여, 디코딩될 유닛의 오른쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00178
를 결정하는 단계를 포함한다.
선택적으로, S404에서 상기 최적 움직임 벡터 그룹의 인덱스 식별자를 기반으로 N 개의 움직임 벡터 그룹에서 최적 움직임 벡터 그룹을 결정하는 단계는,
미리 설정된 정렬 규칙에 따라 N 개의 움직임 벡터 그룹을 정렬하여 후보 움직임 벡터 큐를 생성하는 단계;
N이 미리 설정된 값보다 크거나 같으면, 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹을 결정하는 단계; 및
최적 움직임 벡터 그룹의 인덱스 식별자를 기반으로 전방에서의 미리 설정된 수량의 움직임 벡터 그룹에서 최적 움직임 벡터 그룹을 결정하는 단계를 포함할 수 있다.
선택적으로, 미리 설정된 정렬 규칙은 N 개의 디코딩된 유닛의 내림차순을 포함한다.
다르게는, S404에서 상기 최적 움직임 벡터 그룹의 인덱스 식별자를 기반으로 N 개의 움직임 벡터 그룹에서 최적 움직임 벡터 그룹을 결정하는 단계는,
미리 설정된 정렬 규칙에 따라 N 개의 움직임 벡터 그룹을 정렬하는 단계;
N이 미리 설정된 값보다 작으면, Q 개의 움직임 벡터 그룹을 생성하는 단계 - N 및 Q의 합은 미리 설정된 값보다 크거나 같고, Q는 양의 정수임 -;
Q 개의 움직임 벡터 그룹을 N 개의 움직임 벡터 그룹의 끝에 추가하여 후보 움직임 벡터 큐를 생성하는 단계;
후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹을 결정하는 단계; 및
최적 움직임 벡터 그룹의 인덱스 식별자를 기반으로, 전방에서의 미리 설정된 수량의 움직임 벡터 그룹에서 최적 움직임 벡터 그룹을 결정하는 단계를 포함할 수 있다.
선택적으로, 상기 Q 개의 움직임 벡터 그룹을 생성하는 단계는,
인접한 디코딩된 유닛으로부터, 디코딩될 유닛에서 m번째 제어점에 대응하는 디코딩된 유닛을 결정하는 단계 - m번째 제어점에 대응하는 디코딩된 유닛과 m번째 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, m은 M보다 크지 않은 임의의 양의 정수를 포함함 -;
m 번째 제어점에 대응하는 디코딩된 유닛의 움직임 벡터를 m 번째 제어점의 움직임 벡터 예측자로 결정하는 단계; 및
M 개의 제어점의 움직임 벡터 예측자를 기반으로 Q 개의 움직임 벡터 그룹을 생성하는 단계를 포함할 수 있다.
선택적으로, 상기 Q 개의 움직임 벡터 그룹을 생성하는 단계는,
인접한 디코딩된 유닛으로부터, 디코딩될 유닛에서 m번째 제어점에 대응하는 디코딩된 유닛을 결정하는 단계 - m번째 제어점에 대응하는 디코딩된 유닛과 m번째 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, m은 M보다 크지 않은 임의의 양의 정수를 포함함 -;
m번째 제어점에 대응하는 디코딩된 유닛의 움직임 벡터를 m번째 제어점의 제1 움직임 벡터 예측자로 결정하는 단계;
M 개의 제어점의 제1 움직임 벡터 예측자를 기반으로 K 개의 제1 움직임 벡터 그룹을 생성하는 단계;
인접한 디코딩된 유닛에서 j번째 디코딩된 유닛의 움직임 벡터를 m번째 제어점의 제2 움직임 벡터 예측자로 결정하는 단계 - j가 1,... 또는 J 중 어느 하나이고, J가 인접한 디코딩된 유닛의 수량이고, 그리고 J는 양의 정수임 -;
M 개의 제어점의 제2 움직임 벡터 예측자를 기반으로 L 개의 제2 움직임 벡터 그룹을 생성하는 단계; 및
K 개의 제1 움직임 벡터 그룹을 L 개의 제2 움직임 벡터 그룹의 끝에 추가하여 Q 개의 움직임 벡터 그룹을 생성하는 단계를 포함할 수 있다.
선택적으로, 상기 Q 개의 움직임 벡터 그룹을 N 개의 움직임 벡터 그룹의 끝에 추가하여 후보 움직임 벡터 큐를 생성하는 단계는,
q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하는 단계 - q가 Q보다 크지 않은 임의의 양의 정수를 포함함 -;
Q 개의 움직임 벡터 그룹에 대응하는 고유값을 기반으로 Q 개의 움직임 벡터 그룹을 오름차순으로 정렬하는 단계; 및
정렬된 Q 개의 움직임 벡터 그룹을 정렬된 N 개의 움직임 벡터 그룹의 끝에 추가하여 후보 움직임 벡터 큐를 생성하는 단계를 포함할 수 있다.
선택적으로, 상기 q번째 움직임 벡터 그룹에 대응하는 고유값을 결정하는 단계는,
M 개의 제어점에서 인접한 제어점의 q번째 움직임 벡터 그룹에서의 움직임 벡터 예측자의 하나의 예측 방향에서의 컴포넌트들 사이의 차이를 결정하는 단계;
차이의 절대값을 미리 설정된 컴포넌트 임계 값과 비교하는 단계 - 미리 설정된 컴포넌트 임계 값은 예측 방향에서 디코딩될 유닛의 범위임 -; 및
차이의 절대값이 미리 설정된 컴포넌트 임계 값보다 작거나 같으면, q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하는 단계를 포함한다.
선택적으로, 상기 q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하는 단계는,
인접한 디코딩된 유닛으로부터, 다른 제어점에 대응하는 디코딩된 유닛을 결정하는 단계 - 상기 다른 제어점에 대응하는 디코딩된 유닛과 상기 다른 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, 상기 다른 제어점은 디코딩될 유닛의 M 개의 제어점 이외의 제어점임 -;
상기 다른 제어점에 대응하는 디코딩된 유닛의 움직임 벡터를 상기 다른 제어점의 움직임 벡터 예측자로 결정하는 단계; 및
제3 사전 설정 알고리즘을 이용하고 상기 다른 제어점의 움직임 벡터 예측자 및 M 개의 제어점의 q번째 움직임 벡터 그룹에서의 움직임 벡터 예측자를 기반으로 하여, q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하는 단계를 포함할 수 있다.
선택적으로, 디코딩될 유닛의 움직임 예측 모드는 트랜스레이션 움직임 예측 모드 또는 아핀 움직임 예측 모드를 포함한다. 디코딩될 유닛의 움직임 예측 모드가 트랜스레이션 움직임 예측 모드를 포함하면, 제어점의 수량은 1이다. 디코딩될 유닛의 움직임 예측 모드가 아핀 움직임 예측 모드를 포함하면, 제어점의 수량이 1보다 크다.
본 발명의 실시 예 3에서 제공된 이미지 디코딩 방법은 실시 예 1 및 실시 예 2의 이미지 인코딩 방법에 대응하는 디코딩 방법이다. 이미지 디코딩 방법의 유리한 효과는 전술한 실시 예와 유사하다. 상세한 설명은 여기에서 다시 설명하지 않는다.
본 발명의 실시 예 4는 이미지 인코딩 장치를 제공한다. 도 5는 본 발명의 실시 예 4에 따른 이미지 인코딩 장치의 개략적인 구조도이다. 도 5에 도시된 바와 같이, 이미지 인코딩 장치(500)는 결정 모듈(501), 계산 모듈(502) 및 인코딩 모듈(503)을 포함한다.
결정 모듈(501)은 제1 사전 설정 규칙에 따라 인코딩될 유닛의 인접한 인코딩된 유닛으로부터 N 개의 인코딩된 유닛을 결정하도록 구성되고, N 개의 인코딩된 유닛의 움직임 예측 모드는 인코딩될 유닛의 움직임 예측 모드와 동일하며, N은 양의 정수이다.
계산 모듈(502)은 제1 사전 설정 알고리즘을 이용하고 결정 모듈(501)에 의해 결정된 n 번째 인코딩된 유닛의 움직임 벡터를 기반으로 하여, n번째 움직임 벡터 그룹을 생성하도록 구성되며, n은 N보다 크지 않은 임의의 양의 정수이다.
결정 모듈(501)은 추가로, 계산 모듈(502)에 의해 획득된 N 개의 움직임 벡터 그룹으로부터 제2 사전 설정 규칙에 따라 하나의 움직임 벡터 그룹을 최적 움직임 벡터 그룹으로서 결정하도록 구성된다.
계산 모듈(502)은 추가로, 제2 사전 설정 알고리즘을 이용하고 결정 모듈에 의해 결정된 최적 움직임 벡터 그룹을 기반으로 하여, 인코딩될 유닛에서 각각의 샘플 유닛의 예측 샘플 값을 결정하고, 각각의 샘플 유닛의 원래 샘플 값과 각각의 샘플 유닛의 예측 샘플 값 사이의 차이를 기반으로 각각의 샘플 유닛의 예측 잔차를 결정하도록 구성된다.
인코딩 모듈(503)은 각각의 샘플 유닛의 예측 잔차와 최적 움직임 벡터 그룹의 인덱스 식별자를 인코딩하여 인코딩된 유닛에 대응하는 비트 스트림을 획득하도록 구성되며, 최적의 인덱스 식별자 움직임 벡터 그룹은 디코딩 장치에게 각각의 샘플 유닛의 예측 샘플 값을 결정하도록 명령하는데 사용된다.
선택적으로, 계산 모듈(502)은 구체적으로, 제1 사전 설정 알고리즘을 이용하고 결정 모듈(501)에 의해 결정된 n 번째 인코딩된 유닛의 움직임 벡터, n 번째 인코딩된 유닛의 샘플 좌표 및 M 개의 제어점의 샘플 좌표를 기반으로 하여, 인코딩될 유닛의 M 개의 제어점의 움직임 벡터 예측자를 결정하고, M 개의 제어점의 움직임 벡터 예측자를 기반으로 n 번째의 움직임 벡터 그룹을 생성하도록 구성되며, M은 인코딩될 유닛의 움직임 예측 모드를 기반으로 결정되는 양의 정수이다.
선택적으로 M 개의 제어점은 인코딩될 유닛의 왼쪽 상단 정점 및 오른쪽 상단 정점을 포함하고;
계산 모듈(502)은 구체적으로, 다음의 수식 (1):
Figure 112021086197705-pat00179
을 이용하고 결정 모듈(501)에 의해 결정된 n번째 인코딩된 유닛의 왼쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00180
, n 번째 인코딩된 유닛의 오른쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00181
, n 번째 인코딩된 유닛의 왼쪽 하단 정점의 움직임 벡터
Figure 112021086197705-pat00182
, n 번째 인코딩된 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00183
, n 번째 인코딩된 유닛의 오른쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00184
, n 번째 인코딩된 유닛의 왼쪽 하단 정점의 샘플 좌표
Figure 112021086197705-pat00185
, 그리고 인코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00186
를 기반으로 하여, 인코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00187
를 결정하도록 구성되고; 그리고
계산 모듈(502)은 추가로, 다음의 수식 (2):
Figure 112021086197705-pat00188
를 이용하고 결정 모듈(501)에 의해 결정된 n번째 인코딩된 유닛의 왼쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00189
, n 번째 인코딩된 유닛의 오른쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00190
, n 번째 인코딩된 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00191
, n 번째 인코딩된 유닛의 오른쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00192
, 인코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00193
, 인코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00194
, 그리고 인코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00195
를 기반으로 하여, 인코딩될 유닛의 오른쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00196
를 결정하도록 구성된다.
선택적으로, 결정 모듈(501)은 구체적으로, 미리 설정된 정렬 규칙에 따라 N 개의 움직임 벡터 그룹을 정렬하여 후보 움직임 벡터 큐를 생성하고; N이 미리 설정된 값보다 크거나 같으면 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹들을 결정하며; 전방에서의 미리 설정된 수량의 움직임 벡터 그룹들 각각과 인코딩될 유닛 사이의 매칭 에러를 결정하고; 가장 작은 매칭 에러를 갖는 하나의 움직임 벡터 그룹을 최적 움직임 벡터 그룹으로 결정하도록 구성된다.
선택적으로, 미리 설정된 정렬 규칙은 N 개의 인코딩된 유닛의 내림차순을 포함한다.
선택적으로, 결정 모듈(501)은 추가로, 미리 설정된 정렬 규칙에 따라 N 개의 움직임 벡터 그룹을 정렬하고; N이 미리 설정된 값보다 작으면 Q 개의 움직임 벡터 그룹을 생성하고 - N과 Q의 합은 사전 설정된 값보다 크거나 같고, Q는 양의 정수임 -; Q 개의 움직임 벡터 그룹을 N 개의 움직임 벡터 그룹의 끝에 추가하여 후보 움직임 벡터 큐를 생성하며; 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹들을 결정하고; 전방에서의 미리 설정된 수량의 움직임 벡터 그룹들 각각과 인코딩될 유닛 사이의 매칭 에러를 결정하고; 가장 작은 매칭 에러를 갖는 하나의 움직임 벡터 그룹을 최적 움직임 벡터 그룹으로 결정하도록 구성된다.
선택적으로, 결정 모듈(501)은 추가로, 인접한 인코딩된 유닛들로부터, 인코딩될 유닛의 m 번째 제어점에 대응하는 인코딩된 유닛을 결정하고 - m번째 제어점에 대응하는 인코딩된 유닛과 m번째 제어점 사이의 거리는 미리 설정된 거리보다 작거나 같고, m은 M보다 크지 않은 임의의 양의 정수임 -; m 번째 제어점에 대응하는 인코딩된 유닛의 움직임 벡터를 m 번째 제어점의 움직임 벡터 예측자로 결정하며; M 개의 제어점의 움직임 벡터 예측자를 기반으로 Q 개의 움직임 벡터 그룹을 생성하도록 구성된다.
선택적으로, 결정 모듈(501)은 추가로, 인접한 인코딩된 유닛으로부터, 인코딩될 유닛의 m 번째 제어점에 대응하는 인코딩된 유닛을 결정하고 - m번째 제어점에 대응하는 인코딩된 유닛과 m번째 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같고, m은 M보다 크지 않은 임의의 양의 정수임 -; m번째 제어점에 대응하는 인코딩된 유닛의 움직임 벡터를 m번째 제어점의 제1 움직임 벡터 예측자로 결정하며; M 개의 제어점의 제1 움직임 벡터 예측자를 기반으로 K 개의 제1 움직임 벡터 그룹을 생성하고; 인접한 인코딩된 유닛에서 j번째 인코딩된 유닛의 움직임 벡터를 m번째 제어점의 제2 움직임 벡터 예측자로 결정하며 - j가 1, ... 또는 J 중 어느 하나이고, J가 인접한 인코딩된 유닛의 수량이고, 그리고 J는 양의 정수임 -; M 개의 제어점의 제2 움직임 벡터 예측자를 기반으로 L 개의 제2 움직임 벡터 그룹을 생성하고; 그리고 K 개의 제1 움직임 벡터 그룹을 L 개의 제2 움직임 벡터 그룹의 끝에 추가하여 Q 개의 움직임 벡터 그룹을 생성하도록 구성된다.
선택적으로, 결정 모듈(501)은 추가로, q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하고 - q가 Q보다 크지 않은 임의의 양의 정수를 포함함 -; Q 개의 움직임 벡터 그룹에 대응하는 고유값에 기초하여 오름차순 순으로 Q 개의 움직임 벡터 그룹을 정렬하며; 그리고 정렬된 Q 개의 움직임 벡터 그룹을 정렬된 N 개의 움직임 벡터 그룹의 끝에 추가하여 후보 움직임 벡터 큐를 생성하도록 구성된다.
선택적으로, 결정 모듈(501)은 추가로, M 개의 제어점에서 인접한 제어점의 q번째 움직임 벡터 그룹에서의 움직임 벡터 예측자의 하나의 예측 방향에서의 컴포넌트들 사이의 차이를 결정하고; 차이의 절대값을 미리 설정된 컴포넌트 임계 값과 비교하며 - 미리 설정된 컴포넌트 임계 값은 예측 방향에서 인코딩될 유닛의 범위임 -; 그리고 차이의 절대값이 미리 설정된 컴포넌트 임계 값보다 작거나 같으면, q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하도록 구성된다.
선택적으로, 결정 모듈(501)은 추가로, 인접한 인코딩된 유닛으로부터, 다른 제어점에 대응하는 인코딩된 유닛을 결정하고 - 상기 다른 제어점에 대응하는 인코딩된 유닛과 상기 다른 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, 상기 다른 제어점은 인코딩될 유닛의 M 개의 제어점 이외의 제어점임 -; 상기 다른 제어점에 대응하는 인코딩된 유닛의 움직임 벡터를 상기 다른 제어점의 움직임 벡터 예측자로 결정하며; 그리고 제3 사전 설정 알고리즘을 이용하고 상기 다른 제어점의 움직임 벡터 예측자 및 M 개의 제어점의 q번째 움직임 벡터 그룹에서의 움직임 벡터 예측자를 기반으로 하여, q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하도록 구성된다.
선택적으로, 인코딩될 유닛의 움직임 예측 모드는 트랜스레이션 움직임 예측 모드 또는 아핀 움직임 예측 모드를 포함한다.
본 발명의 실시 예 4에 제공된 이미지 인코딩 장치는 실시 예 1 또는 실시 예 2 중 어느 하나의 이미지 인코딩 방법을 수행하도록 구성될 수 있다. 특정 구현 프로세스 및 유리한 이점은 전술한 실시 예와 유사하다. 상세한 설명은 여기에서 다시 설명하지 않는다.
본 발명의 실시 예 5는 또한 이미지 디코딩 장치를 제공한다. 도 6은 본 발명의 실시 예 5에 따른 이미지 디코딩 장치의 개략적인 구조도이다. 도 6에 도시된 바와 같이, 이미지 디코딩 장치(600)는 결정 모듈(601), 계산 모듈(602) 및 디코딩 모듈(603)을 포함할 수 있다.
결정 모듈(601)은 제1 사전 설정 규칙에 따라 디코딩될 유닛의 인접한 디코딩된 유닛으로부터 N 개의 디코딩된 유닛을 결정하고, N 개의 디코딩된 유닛의 움직임 예측 모드는 디코딩될 유닛의 움직임 예측 모드와 동일하며, N은 양의 정수이다.
계산 모듈(602)은 제1 사전 설정 알고리즘을 이용하고 결정 모듈(601)에 의해 결정된 n 번째로 디코딩된 유닛의 움직임 벡터를 기반으로 하여, n 번째 움직임 벡터 그룹을 생성하도록 구성되며, n은 N보다 크지 않은 임의의 양의 정수를 포함한다.
디코딩 모듈(603)은 디코딩될 유닛에 대응하는 비트 스트림을 디코딩하여 각각의 샘플 유닛의 예측 잔차와 최적 움직임 벡터 그룹의 인덱스 식별자를 획득하도록 구성된다.
결정 모듈(601)은 추가로 디코딩 모듈(603)에 의해 결정된 최적 움직임 벡터 그룹의 인덱스 식별자를 기반으로, N 개의 움직임 벡터 그룹에서 최적 움직임 벡터 그룹을 결정하도록 구성된다.
계산 모듈(602)은 추가로, 제2 사전 설정 알고리즘을 이용하고 결정 모듈(601)에 의해 결정된 최적 움직임 벡터 그룹을 기반으로 하여, 디코딩될 유닛에서 각각의 샘플 유닛의 예측 샘플 값을 결정하고, 각각의 샘플 유닛의 예측 샘플 값과 각각의 샘플 유닛의 예측 잔차의 합을 기반으로 각각의 샘플 유닛의 재구성 샘플 값을 결정하도록 구성된다.
선택적으로, 계산 모듈(602)은 구체적으로, 제1 사전 설정 알고리즘을 이용하고 결정 모듈(601)에 의해 결정된 n 번째 디코딩된 유닛의 움직임 벡터, n 번째 디코딩된 유닛의 샘플 좌표 및 M 개의 제어점의 샘플 좌표를 기반으로 하여, 디코딩될 유닛의 M 개의 제어점의 움직임 벡터 예측자를 결정하며, M 개의 제어점의 움직임 벡터 예측자를 기반으로 n 번째 움직임 벡터 그룹을 생성하도록 구성되며, M은 디코딩될 유닛의 움직임 예측 모드를 기반으로 결정되는 양의 정수이다.
선택적으로, M 개의 제어점은 디코딩될 유닛의 왼쪽 상단 정점 및 오른쪽 상단 정점을 포함하고;
계산 모듈(602)은 구체적으로, 다음의 수식 (1):
Figure 112021086197705-pat00197
을 이용하고 결정 모듈(601)에 의해 결정된 n번째 디코딩된 유닛의 왼쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00198
, n 번째 디코딩된 유닛의 오른쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00199
, n 번째 디코딩된 유닛의 왼쪽 하단 정점의 움직임 벡터
Figure 112021086197705-pat00200
, n 번째 디코딩된 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00201
, n 번째 디코딩된 유닛의 오른쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00202
, n 번째 디코딩된 유닛의 왼쪽 하단 정점의 샘플 좌표
Figure 112021086197705-pat00203
, 그리고 디코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00204
를 기반으로 하여, 디코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00205
를 결정하도록 구성되고; 그리고
구체적으로, 계산 모듈(602)은 추가로, 다음의 수식 (2):
Figure 112021086197705-pat00206
를 이용하고 결정 모듈(601)에 의해 결정된 n번째 디코딩된 유닛의 왼쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00207
, n 번째 디코딩된 유닛의 오른쪽 상단 정점의 움직임 벡터
Figure 112021086197705-pat00208
, n 번째 디코딩된 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00209
, n 번째 디코딩된 유닛의 오른쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00210
, 디코딩될 유닛의 왼쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00211
, 디코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00212
, 그리고 디코딩될 유닛의 왼쪽 상단 정점의 샘플 좌표
Figure 112021086197705-pat00213
를 기반으로 하여, 디코딩될 유닛의 오른쪽 상단 정점의 움직임 벡터 예측자
Figure 112021086197705-pat00214
를 결정하도록 구성된다.
선택적으로, 결정 모듈(601)은 추가로, 미리 설정된 정렬 규칙에 따라 N 개의 움직임 벡터 그룹을 정렬하여 후보 움직임 벡터 큐를 생성하고; N이 미리 설정된 값보다 크거나 같으면 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹을 결정하고; 최적 움직임 벡터 그룹의 인덱스 식별자를 기반으로 전방에서의 미리 설정된 수량의 움직임 벡터 그룹의 최적 움직임 벡터 그룹을 결정하도록 구성된다.
선택적으로, 미리 설정된 정렬 규칙은 N 개의 디코딩된 유닛들의 내림차순을 포함한다.
선택적으로, 결정 모듈(601)은 추가로, 미리 설정된 정렬 규칙에 따라 N 개의 움직임 벡터 그룹을 정렬하고; N이 미리 설정된 값보다 작으면 Q 개의 움직임 벡터 그룹을 생성하고 - N과 Q의 합은 사전 설정된 값보다 크거나 같고 Q는 양의 정수임 - Q 개의 움직임 벡터 그룹을 N 개의 움직임 벡터 그룹의 끝에 추가하여 후보 움직임 벡터 큐를 생성하며; 후보 움직임 벡터 큐의 전방에서 미리 설정된 수량의 움직임 벡터 그룹을 결정하고; 최적 움직임 벡터 그룹의 인덱스 식별자를 기반으로 전방에서의 미리 설정된 수량의 움직임 벡터 그룹에서 최적 움직임 벡터 그룹을 결정하도록 구성된다.
선택적으로, 결정 모듈(601)은 추가로, 인접한 디코딩 유닛들로부터, 디코딩될 유닛의 m 번째 제어점에 대응하는 디코딩 유닛을 결정하고 - m번째 제어점에 대응하는 디코딩 유닛과 m번째 제어점 사이의 거리는 미리 설정된 거리보다 작거나 같으며, m은 M보다 크지 않은 임의의 양의 정수임 -; m번째 제어점에 대응하는 디코딩된 유닛의 움직임 벡터를 m번째 제어점의 움직임 벡터 예측자로 결정하며; 그리고 M 개의 제어점의 움직임 벡터 예측자를 기반으로 Q 개의 움직임 벡터 그룹을 생성하도록 구성된다.
선택적으로, 결정 모듈(601)은 추가로, 인접한 디코딩된 유닛으로부터, 디코딩될 유닛의 m 번째 제어점에 대응하는 디코딩된 유닛을 결정하고 - m번째 제어점에 대응하는 디코딩된 유닛과 m번째 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, m은 M보다 크지 않은 임의의 양의 정수임 -; m 번째 제어점에 대응하는 디코딩된 유닛의 움직임 벡터를 m 번째 제어점의 제1 움직임 벡터 예측자로 결정하며; M 개의 제어점의 제1 움직임 벡터 예측자를 기반으로 K 개의 제1 움직임 벡터 그룹을 생성하고; 인접한 디코딩된 유닛에서 j번째 디코딩된 유닛의 움직임 벡터를 m번째 제어점의 제2 움직임 벡터 예측자로 결정하고 - j가 1, ... 또는 J 중 어느 하나이고, J가 인접한 디코딩된 유닛의 수량이고, 그리고 J는 양의 정수임 -; M 개의 제어점의 제2 움직임 벡터 예측자를 기반으로 L 개의 제2 움직임 벡터 그룹을 생성하며; 그리고 K 개의 제1 움직임 벡터 그룹을 L 개의 제2 움직임 벡터 그룹의 끝에 추가하여 Q 개의 움직임 벡터 그룹을 생성하도록 구성된다.
선택적으로, 결정 모듈(601)은 추가로, q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하고 - q가 Q보다 크지 않은 임의의 양의 정수를 포함함 -; Q 개의 움직임 벡터 그룹에 대응하는 고유값을 기반으로 Q 개의 움직임 벡터 그룹을 오름차순으로 정렬하며; 정렬된 Q 개의 움직임 벡터 그룹을 정렬된 N 개의 움직임 벡터 그룹의 끝에 추가하여 후보 움직임 벡터 큐를 생성하도록 구성된다.
선택적으로, 결정 모듈(601)은 추가로, M 개의 제어점에서 인접한 제어점의 q 번째 움직임 벡터 그룹에서의 움직임 벡터 예측자의 하나의 예측 방향에서의 컴포넌트 사이의 차이를 결정하고; 차이의 절대값을 미리 설정된 컴포넌트 임계 값과 비교하며 - 미리 설정된 컴포넌트 임계 값은 예측 방향에서 디코딩될 유닛의 범위임 -; 차이의 절대값이 미리 설정된 컴포넌트 임계 값보다 작거나 같으면, q 번째 움직임 벡터 그룹에 대응하는 고유값을 결정하도록 구성된다.
선택적으로, 결정 모듈(601)은 추가로, 인접한 디코딩된 유닛들로부터, 다른 제어점에 대응하는 디코딩된 유닛을 결정하고 - 상기 다른 제어점에 대응하는 디코딩된 유닛과 상기 다른 제어점 사이의 거리가 미리 설정된 거리보다 작거나 같으며, 상기 다른 제어점은 디코딩될 유닛의 M 개의 제어점 이외의 제어점임 -; 상기 다른 제어점에 대응하는 디코딩된 유닛의 움직임 벡터를 상기 다른 제어점의 움직임 벡터 예측자로 결정하며; 제3 사전 설정 알고리즘을 이용하고 상기 다른 제어점의 움직임 벡터 예측자 및 M 개의 제어점의 q 번째의 움직임 벡터 그룹에서의 움직임 벡터 예측자를 기반으로 하여, q 번째의 움직임 벡터 그룹에 대응하는 고유값을 결정하도록 구성된다.
선택적으로, 디코딩될 유닛의 움직임 예측 모드는 트랜스레이션 움직임 예측 모드 또는 아핀 움직임 예측 모드를 포함한다.
본 발명의 실시 예 5에서 제공되는 이미지 디코딩 장치는 실시 예 3에서 제공된 이미지 디코딩 방법을 수행할 수 있다. 특정 구현 프로세스 및 유리한 효과는 전술한 실시 예와 유사하다. 상세한 설명은 여기에서 다시 설명하지 않는다.
본 발명의 실시 예 6은 이미지 인코딩 장치를 제공한다. 도 7은 본 발명의 실시 예 6에 따른 이미지 인코딩 장치의 개략적인 구조도이다. 도 7에 도시된 바와 같이, 이미지 인코딩 장치(700)는 프로세서(701), 메모리(702), 통신 인터페이스(703) 및 버스(704)를 포함한다. 프로세서(701)는 버스(704)를 이용하여 메모리(702) 및 통신 인터페이스(703)에 연결된다.
메모리(702)는 명령을 저장하도록 구성된다.
프로세서(701)는 명령을 실행하도록 구성된다. 프로세서(701)가 메모리(702)에 저장된 명령을 실행할 때, 프로세서(701)는 실시 예 1 또는 실시 예 2 중 어느 하나의 이미지 인코딩 방법을 수행한다.
본 발명의 실시 예 6에서 제공되는 이미지 인코딩 장치는 실시 예 1 또는 실시 예 2에서 제공된 이미지 인코딩 방법을 수행할 수 있다. 특정 구현 프로세스 및 유리한 효과는 전술한 실시 예와 유사하다. 상세한 설명은 여기에서 다시 설명하지 않는다.
본 발명의 실시 예 7은 이미지 디코딩 장치를 제공한다. 도 8은 본 발명의 실시 예 7에 따른 이미지 디코딩 장치의 개략적인 구조도이다. 도 8에 도시된 바와 같이, 이미지 디코딩 장치(800)는 프로세서(801), 메모리(802), 통신 인터페이스(803) 및 버스(804)를 포함할 수 있다. 프로세서(801)는 버스(804)를 이용하여 메모리(802) 및 통신 인터페이스(803)에 연결된다.
메모리(802)는 명령을 저장하도록 구성된다.
프로세서(801)는 명령을 실행하도록 구성된다. 프로세서(801)가 메모리(802)에 저장된 명령을 실행할 때, 프로세서(801)는 실시 예 3의 이미지 디코딩 방법을 수행한다.
본 발명의 실시 예 7에서 제공되는 이미지 디코딩 장치는 실시 예 3에서 제공된 이미지 디코딩 방법을 수행할 수 있다. 특정 구현 프로세스 및 유리한 효과는 전술한 실시 예와 유사하다. 상세한 설명은 여기에서 다시 설명하지 않는다.
당업자는 방법 실시 예의 단계의 전부 또는 일부가 관련 하드웨어를 명령하는 프로그램에 의해 구현될 수 있다는 것을 이해할 수 있다. 프로그램은 컴퓨터 판독 가능한 저장 매체에 저장될 수 있다. 프로그램이 실행될 때, 방법 실시 예들의 단계들이 수행된다. 전술한 저장 매체는 ROM, RAM, 자기 디스크 또는 광 디스크와 같은 프로그램 코드를 저장할 수 있는 임의의 매체를 포함한다.
마지막으로, 전술한 실시 예는 본 발명의 기술적 해결 방안을 설명하기 위한 것일 뿐이며, 본 발명을 제한하려는 것이 아님을 알아야 한다. 본 발명은 전술한 실시 예들을 참조하여 상세히 설명되었지만, 당업자는 본 발명의 실시 예의 기술적 해결책의 범위를 벗어나지 않고, 전술한 실시 예들에서 설명된 기술적 해결 방안들에 여전히 수정을 가할 수 있거나 또는 그 일부 또는 모든 기술적 특징들에 동등한 대체물을 가질 수 있다는 것을 이해해야 한다.

Claims (38)

  1. 이미지 디코딩 방법으로서,
    디코딩될 유닛의 좌측의 인접한 디코딩된 유닛 중에서 제1 디코딩된 유닛을 결정하는 단계;
    상기 디코딩될 유닛보다 위쪽의 인접한 디코딩된 유닛 중에서 제2 디코딩된 유닛을 결정하는 단계 - 여기서 상기 제1 디코딩된 유닛과 상기 제2 디코딩된 유닛의 움직임 예측 모드는 상기 디코딩될 유닛의 움직임 예측 모드와 동일한 것임 - ;
    상기 제1 디코딩된 유닛의 복수의 제어점의 움직임 벡터, 상기 제1 디코딩된 유닛의 복수의 제어점의 샘플 좌표 및 상기 디코딩될 유닛의 M개의 제어점의 샘플 좌표에 기초하여 M개의 제어점의 제1 움직임 벡터 예측자를 계산하고, 상기 M개의 제어점의 제1 움직임 벡터 예측자에 기초하여 제1 움직임 벡터 그룹을 생성하는 단계;
    상기 제2 디코딩된 유닛의 복수의 제어점의 움직임 벡터, 상기 제2 디코딩된 유닛의 복수의 제어점의 샘플 좌표 및 상기 디코딩될 유닛의 M개의 제어점의 샘플 좌표에 기초하여 M개의 제어점의 제2 움직임 벡터 예측자를 계산하고, 상기 M개의 제어점의 제2 움직임 벡터 예측자에 기초하여 제2 움직임 벡터 그룹을 생성하는 단계; 및
    복수의 움직임 벡터 그룹 중에서 타깃 움직임 벡터 그룹을 결정하는 단계 - 여기서 상기 복수의 움직임 벡터 그룹은 상기 제1 움직임 벡터 그룹과 상기 제2 움직임 벡터 그룹을 포함함 -
    를 포함하는 이미지 디코딩 방법.
  2. 제1항에 있어서,
    상기 움직임 예측 모드는 아핀 움직임 예측 모드를 포함하는, 이미지 디코딩 방법.
  3. 제1항에 있어서,
    상기 디코딩될 유닛의 좌측의 인접한 디코딩된 유닛 중에서 제1 디코딩된 유닛을 결정하는 단계가,
    상기 디코딩될 유닛의 좌측의 인접한 2개의 디코딩된 유닛 중에서, 제1 시퀀스에 따라 첫번째로 발견되며 또한 상기 디코딩될 유닛의 움직임 예측 모드와 동일한 움직임 예측 모드를 가지는 디코딩된 유닛을 상기 제1 디코딩된 유닛으로 결정하는 단계를 포함하고,
    상기 디코딩될 유닛보다 위쪽의 인접한 디코딩된 유닛 중에서 제2 디코딩된 유닛을 결정하는 단계가,
    상기 디코딩될 유닛보다 위쪽의 인접한 3개의 디코딩된 유닛 중에서, 제2 시퀀스에 따라 첫번째로 발견되며 또한 상기 디코딩될 유닛의 움직임 예측 모드와 동일한 움직임 예측 모드를 가지는 디코딩된 유닛을 상기 제2 디코딩된 유닛으로 결정하는 단계를 포함하는, 이미지 디코딩 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 복수의 움직임 벡터 그룹 중에서 타깃 움직임 벡터 그룹을 결정하는 단계가,
    Q개의 움직임 벡터 그룹을 생성하는 단계 - Q는 제1 값임 - ; 및
    상기 Q개의 움직임 벡터 그룹, 상기 제1 움직임 벡터 그룹 및 상기 제2 움직임 벡터 그룹 중에서 상기 타깃 움직임 벡터 그룹을 결정하는 단계를 포함하는, 이미지 디코딩 방법.
  5. 제4항에 있어서,
    Q+2는 사전 설정된 값 이상인, 이미지 디코딩 방법.
  6. 제4항에 있어서,
    상기 Q개의 움직임 벡터 그룹을 생성하는 단계가,
    상기 디코딩될 유닛의 M개의 제어점에 각각 대응하는 디코딩된 유닛의 움직임 벡터에 기초하여, 상기 Q개의 움직임 벡터 그룹을 생성하는 단계를 포함하는, 이미지 디코딩 방법.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 복수의 움직임 벡터 그룹 중에서 타깃 움직임 벡터 그룹을 결정하는 단계가,
    최적의 움직임 벡터 그룹의 인덱스 식별자를 획득하는 단계; 및
    상기 최적의 움직임 벡터 그룹의 인덱스 식별자에 기초하여 상기 복수의 움직임 벡터 그룹 중에서 상기 타깃 움직임 벡터 그룹을 결정하는 단계를 포함하는, 이미지 디코딩 방법.
  8. 제1항 내지 제3항 중 어느 한 항에 있어서,
    M은, 상기 디코딩될 유닛의 움직임 예측 모드에 기초하여 결정되는 양의 정수인, 이미지 디코딩 방법.
  9. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제1 디코딩된 유닛의 복수의 제어점의 움직임 벡터, 상기 제1 디코딩된 유닛의 복수의 제어점의 샘플 좌표 및 상기 디코딩될 유닛의 M개의 제어점의 샘플 좌표에 기초하여 M개의 제어점의 제1 움직임 벡터 예측자를 계산하는 것이,
    다음의 수식 (1):
    Figure 112022018492293-pat00215

    을 이용하고 또한 상기 제1 디코딩된 유닛의 왼쪽 상단 제어점의 움직임 벡터
    Figure 112022018492293-pat00216
    , 상기 제1 디코딩된 유닛의 오른쪽 상단 제어점의 움직임 벡터
    Figure 112022018492293-pat00217
    , 상기 제1 디코딩된 유닛의 왼쪽 하단 제어점의 움직임 벡터
    Figure 112022018492293-pat00218
    , 상기 제1 디코딩된 유닛의 왼쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00219
    , 상기 제1 디코딩된 유닛의 오른쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00220
    , 상기 제1 디코딩된 유닛의 왼쪽 하단 제어점의 샘플 좌표
    Figure 112022018492293-pat00221
    , 그리고 상기 디코딩될 유닛의 왼쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00222
    를 기반으로 하여, 상기 디코딩될 유닛의 왼쪽 상단 제어점의 움직임 벡터 예측자
    Figure 112022018492293-pat00223
    를 결정하는 것 - 상기 디코딩될 유닛의 왼쪽 상단 제어점은 상기 M개의 제어점에 속하는 것임 - 을 포함하는, 이미지 디코딩 방법.
  10. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제2 디코딩된 유닛의 복수의 제어점의 움직임 벡터, 상기 제2 디코딩된 유닛의 복수의 제어점의 샘플 좌표 및 상기 디코딩될 유닛의 M개의 제어점의 샘플 좌표에 기초하여 M개의 제어점의 제2 움직임 벡터 예측자를 계산하는 것이,
    다음의 수식 (1):
    Figure 112022018492293-pat00224

    을 이용하고 또한 상기 제2 디코딩된 유닛의 왼쪽 상단 제어점의 움직임 벡터
    Figure 112022018492293-pat00225
    , 상기 제2 디코딩된 유닛의 오른쪽 상단 제어점의 움직임 벡터
    Figure 112022018492293-pat00226
    , 상기 제2 디코딩된 유닛의 왼쪽 하단 제어점의 움직임 벡터
    Figure 112022018492293-pat00227
    , 상기 제2 디코딩된 유닛의 왼쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00228
    , 상기 제2 디코딩된 유닛의 오른쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00229
    , 상기 제2 디코딩된 유닛의 왼쪽 하단 제어점의 샘플 좌표
    Figure 112022018492293-pat00230
    , 그리고 상기 디코딩될 유닛의 왼쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00231
    를 기반으로 하여, 상기 디코딩될 유닛의 왼쪽 상단 제어점의 움직임 벡터 예측자
    Figure 112022018492293-pat00232
    를 결정하는 것 - 상기 디코딩될 유닛의 왼쪽 상단 제어점은 상기 M개의 제어점에 속하는 것임 - 을 포함하는, 이미지 디코딩 방법.
  11. 이미지 인코딩 방법으로서,
    인코딩될 유닛의 좌측의 인접한 인코딩된 유닛 중에서 제1 인코딩된 유닛을 결정하는 단계;
    상기 인코딩될 유닛보다 위쪽의 인접한 인코딩된 유닛 중에서 제2 인코딩된 유닛을 결정하는 단계 - 여기서 상기 제1 인코딩된 유닛과 상기 제2 인코딩된 유닛의 움직임 예측 모드는 상기 인코딩될 유닛의 움직임 예측 모드와 동일한 것임 - ;
    상기 제1 인코딩된 유닛의 복수의 제어점의 움직임 벡터, 상기 제1 인코딩된 유닛의 복수의 제어점의 샘플 좌표 및 상기 인코딩될 유닛의 M개의 제어점의 샘플 좌표에 기초하여 M개의 제어점의 제1 움직임 벡터 예측자를 계산하고, 상기 M개의 제어점의 제1 움직임 벡터 예측자에 기초하여 제1 움직임 벡터 그룹을 생성하는 단계;
    상기 제2 인코딩된 유닛의 복수의 제어점의 움직임 벡터, 상기 제2 인코딩된 유닛의 복수의 제어점의 샘플 좌표 및 상기 인코딩될 유닛의 M개의 제어점의 샘플 좌표에 기초하여 M개의 제어점의 제2 움직임 벡터 예측자를 계산하고, 상기 M개의 제어점의 제2 움직임 벡터 예측자에 기초하여 제2 움직임 벡터 그룹을 생성하는 단계; 및
    복수의 움직임 벡터 그룹 중에서 타깃 움직임 벡터 그룹을 결정하는 단계 - 여기서 상기 복수의 움직임 벡터 그룹은 상기 제1 움직임 벡터 그룹과 상기 제2 움직임 벡터 그룹을 포함함 -
    를 포함하는 이미지 인코딩 방법.
  12. 제11항에 있어서,
    상기 움직임 예측 모드는 아핀 움직임 예측 모드를 포함하는, 이미지 인코딩 방법.
  13. 제11항에 있어서,
    상기 인코딩될 유닛의 좌측의 인접한 인코딩된 유닛 중에서 제1 인코딩된 유닛을 결정하는 단계가,
    상기 인코딩될 유닛의 좌측의 인접한 2개의 인코딩된 유닛 중에서, 제1 시퀀스에 따라 첫번째로 발견되며 또한 상기 인코딩될 유닛의 움직임 예측 모드와 동일한 움직임 예측 모드를 가지는 인코딩된 유닛을 상기 제1 인코딩된 유닛으로 결정하는 단계를 포함하고,
    상기 인코딩될 유닛보다 위쪽의 인접한 인코딩된 유닛 중에서 제2 인코딩된 유닛을 결정하는 단계가,
    상기 인코딩될 유닛보다 위쪽의 인접한 3개의 인코딩된 유닛 중에서, 제2 시퀀스에 따라 첫번째로 발견되며 또한 상기 인코딩될 유닛의 움직임 예측 모드와 동일한 움직임 예측 모드를 가지는 인코딩된 유닛을 상기 제2 인코딩된 유닛으로 결정하는 단계를 포함하는, 이미지 인코딩 방법.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 복수의 움직임 벡터 그룹 중에서 타깃 움직임 벡터 그룹을 결정하는 단계가,
    Q개의 움직임 벡터 그룹을 생성하는 단계 - Q는 제1 값임 - ; 및
    상기 Q개의 움직임 벡터 그룹, 상기 제1 움직임 벡터 그룹 및 상기 제2 움직임 벡터 그룹 중에서 상기 타깃 움직임 벡터 그룹을 결정하는 단계를 포함하는, 이미지 인코딩 방법.
  15. 제14항에 있어서,
    Q+2는 사전 설정된 값 이상인, 이미지 인코딩 방법.
  16. 제14항에 있어서,
    상기 Q개의 움직임 벡터 그룹을 생성하는 단계가,
    상기 인코딩될 유닛의 M개의 제어점에 각각 대응하는 인코딩된 유닛의 움직임 벡터에 기초하여, 상기 Q개의 움직임 벡터 그룹을 생성하는 단계를 포함하는, 이미지 인코딩 방법.
  17. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 이미지 인코딩 방법이,
    상기 복수의 움직임 벡터 그룹과 상기 타깃 움직임 벡터 그룹에 기초하여 상기 타깃 움직임 벡터 그룹의 인덱스 식별자를 결정하는 단계; 및
    상기 인덱스 식별자를 비트스트림으로 인코딩하는 단계
    를 더 포함하는 이미지 인코딩 방법.
  18. 제11항 내지 제13항 중 어느 한 항에 있어서,
    M은, 상기 인코딩될 유닛의 움직임 예측 모드에 기초하여 결정되는 양의 정수인, 이미지 인코딩 방법.
  19. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 제1 인코딩된 유닛의 복수의 제어점의 움직임 벡터, 상기 제1 인코딩된 유닛의 복수의 제어점의 샘플 좌표 및 상기 인코딩될 유닛의 M개의 제어점의 샘플 좌표에 기초하여 M개의 제어점의 제1 움직임 벡터 예측자를 계산하는 것이,
    다음의 수식 (1):
    Figure 112022018492293-pat00233

    을 이용하고 또한 상기 제1 인코딩된 유닛의 왼쪽 상단 제어점의 움직임 벡터
    Figure 112022018492293-pat00234
    , 상기 제1 인코딩된 유닛의 오른쪽 상단 제어점의 움직임 벡터
    Figure 112022018492293-pat00235
    , 상기 제1 인코딩된 유닛의 왼쪽 하단 제어점의 움직임 벡터
    Figure 112022018492293-pat00236
    , 상기 제1 인코딩된 유닛의 왼쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00237
    , 상기 제1 인코딩된 유닛의 오른쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00238
    , 상기 제1 인코딩된 유닛의 왼쪽 하단 제어점의 샘플 좌표
    Figure 112022018492293-pat00239
    , 그리고 상기 인코딩될 유닛의 왼쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00240
    를 기반으로 하여, 상기 인코딩될 유닛의 왼쪽 상단 제어점의 움직임 벡터 예측자
    Figure 112022018492293-pat00241
    를 결정하는 것 - 상기 인코딩될 유닛의 왼쪽 상단 제어점은 상기 M개의 제어점에 속하는 것임 - 을 포함하는, 이미지 인코딩 방법.
  20. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 제2 인코딩된 유닛의 복수의 제어점의 움직임 벡터, 상기 제2 인코딩된 유닛의 복수의 제어점의 샘플 좌표 및 상기 인코딩될 유닛의 M개의 제어점의 샘플 좌표에 기초하여 M개의 제어점의 제2 움직임 벡터 예측자를 계산하는 것이,
    다음의 수식 (1):
    Figure 112022018492293-pat00242

    을 이용하고 또한 상기 제2 인코딩된 유닛의 왼쪽 상단 제어점의 움직임 벡터
    Figure 112022018492293-pat00243
    , 상기 제2 인코딩된 유닛의 오른쪽 상단 제어점의 움직임 벡터
    Figure 112022018492293-pat00244
    , 상기 제2 인코딩된 유닛의 왼쪽 하단 제어점의 움직임 벡터
    Figure 112022018492293-pat00245
    , 상기 제2 인코딩된 유닛의 왼쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00246
    , 상기 제2 인코딩된 유닛의 오른쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00247
    , 상기 제2 인코딩된 유닛의 왼쪽 하단 제어점의 샘플 좌표
    Figure 112022018492293-pat00248
    , 그리고 상기 인코딩될 유닛의 왼쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00249
    를 기반으로 하여, 상기 인코딩될 유닛의 왼쪽 상단 제어점의 움직임 벡터 예측자
    Figure 112022018492293-pat00250
    를 결정하는 것 - 상기 인코딩될 유닛의 왼쪽 상단 제어점은 상기 M개의 제어점에 속하는 것임 - 을 포함하는, 이미지 인코딩 방법.
  21. 이미지 디코딩 장치로서,
    디코딩될 유닛의 좌측의 인접한 디코딩된 유닛 중에서 제1 디코딩된 유닛을 결정하도록 구성되고, 또한 상기 디코딩될 유닛보다 위쪽의 인접한 디코딩된 유닛 중에서 제2 디코딩된 유닛을 결정하도록 추가로 구성되는 결정 모듈 - 여기서 상기 제1 디코딩된 유닛과 상기 제2 디코딩된 유닛의 움직임 예측 모드는 상기 디코딩될 유닛의 움직임 예측 모드와 동일한 것임 - ; 및
    상기 제1 디코딩된 유닛의 복수의 제어점의 움직임 벡터, 상기 제1 디코딩된 유닛의 복수의 제어점의 샘플 좌표 및 상기 디코딩될 유닛의 M개의 제어점의 샘플 좌표에 기초하여 M개의 제어점의 제1 움직임 벡터 예측자를 계산하고, 상기 M개의 제어점의 제1 움직임 벡터 예측자에 기초하여 제1 움직임 벡터 그룹을 생성하도록 구성되고, 또한 상기 제2 디코딩된 유닛의 복수의 제어점의 움직임 벡터, 상기 제2 디코딩된 유닛의 복수의 제어점의 샘플 좌표 및 상기 디코딩될 유닛의 M개의 제어점의 샘플 좌표에 기초하여 M개의 제어점의 제2 움직임 벡터 예측자를 계산하고, 상기 M개의 제어점의 제2 움직임 벡터 예측자에 기초하여 제2 움직임 벡터 그룹을 생성하도록 추가로 구성되는 계산 모듈
    을 포함하고,
    상기 결정 모듈은 복수의 움직임 벡터 그룹 중에서 타깃 움직임 벡터 그룹을 결정하도록 추가로 구성되는 - 여기서 상기 복수의 움직임 벡터 그룹은 상기 제1 움직임 벡터 그룹과 상기 제2 움직임 벡터 그룹을 포함함 - , 이미지 디코딩 장치.
  22. 제21항에 있어서,
    상기 움직임 예측 모드는 아핀 움직임 예측 모드를 포함하는, 이미지 디코딩 장치.
  23. 제21항에 있어서,
    상기 결정 모듈이 구체적으로,
    상기 디코딩될 유닛의 좌측의 인접한 2개의 디코딩된 유닛 중에서, 제1 시퀀스에 따라 첫번째로 발견되며 또한 상기 디코딩될 유닛의 움직임 예측 모드와 동일한 움직임 예측 모드를 가지는 디코딩된 유닛을 상기 제1 디코딩된 유닛으로 결정하고,
    상기 디코딩될 유닛보다 위쪽의 인접한 3개의 디코딩된 유닛 중에서, 제2 시퀀스에 따라 첫번째로 발견되며 또한 상기 디코딩될 유닛의 움직임 예측 모드와 동일한 움직임 예측 모드를 가지는 디코딩된 유닛을 상기 제2 디코딩된 유닛으로 결정하도록 구성되는, 이미지 디코딩 장치.
  24. 제21항 내지 제23항 중 어느 한 항에 있어서,
    상기 결정 모듈이 구체적으로,
    Q개의 움직임 벡터 그룹을 생성하고 - Q는 제1 값이고 Q+2는 사전 설정된 값 이상임 - ; 및
    상기 Q개의 움직임 벡터 그룹, 상기 제1 움직임 벡터 그룹 및 상기 제2 움직임 벡터 그룹 중에서 상기 타깃 움직임 벡터 그룹을 결정하도록 구성되는, 이미지 디코딩 장치.
  25. 제24항에 있어서,
    상기 결정 모듈이 더 구체적으로,
    상기 디코딩될 유닛의 M개의 제어점에 각각 대응하는 디코딩된 유닛의 움직임 벡터에 기초하여, 상기 Q개의 움직임 벡터 그룹을 생성하도록 구성되는, 이미지 디코딩 장치.
  26. 제21항 내지 제23항 중 어느 한 항에 있어서,
    상기 결정 모듈이 구체적으로,
    최적의 움직임 벡터 그룹의 인덱스 식별자를 획득하고,
    상기 최적의 움직임 벡터 그룹의 인덱스 식별자에 기초하여 상기 복수의 움직임 벡터 그룹 중에서 상기 타깃 움직임 벡터 그룹을 결정하도록 구성되는, 이미지 디코딩 장치.
  27. 제21항 내지 제23항 중 어느 한 항에 있어서,
    M은, 상기 디코딩될 유닛의 움직임 예측 모드에 기초하여 결정되는 양의 정수인, 이미지 디코딩 장치.
  28. 제21항 내지 제23항 중 어느 한 항에 있어서,
    상기 계산 모듈이 구체적으로,
    다음의 수식 (1):
    Figure 112022018492293-pat00251

    을 이용하고 또한 상기 제1 디코딩된 유닛의 왼쪽 상단 제어점의 움직임 벡터
    Figure 112022018492293-pat00252
    , 상기 제1 디코딩된 유닛의 오른쪽 상단 제어점의 움직임 벡터
    Figure 112022018492293-pat00253
    , 상기 제1 디코딩된 유닛의 왼쪽 하단 제어점의 움직임 벡터
    Figure 112022018492293-pat00254
    , 상기 제1 디코딩된 유닛의 왼쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00255
    , 상기 제1 디코딩된 유닛의 오른쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00256
    , 상기 제1 디코딩된 유닛의 왼쪽 하단 제어점의 샘플 좌표
    Figure 112022018492293-pat00257
    , 그리고 상기 디코딩될 유닛의 왼쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00258
    를 기반으로 하여, 상기 디코딩될 유닛의 왼쪽 상단 제어점의 움직임 벡터 예측자
    Figure 112022018492293-pat00259
    를 결정하거나 - 상기 디코딩될 유닛의 왼쪽 상단 제어점은 상기 M개의 제어점에 속하는 것임 - , 또는
    다음의 수식 (1):
    Figure 112022018492293-pat00260

    을 이용하고 또한 상기 제2 디코딩된 유닛의 왼쪽 상단 제어점의 움직임 벡터
    Figure 112022018492293-pat00261
    , 상기 제2 디코딩된 유닛의 오른쪽 상단 제어점의 움직임 벡터
    Figure 112022018492293-pat00262
    , 상기 제2 디코딩된 유닛의 왼쪽 하단 제어점의 움직임 벡터
    Figure 112022018492293-pat00263
    , 상기 제2 디코딩된 유닛의 왼쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00264
    , 상기 제2 디코딩된 유닛의 오른쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00265
    , 상기 제2 디코딩된 유닛의 왼쪽 하단 제어점의 샘플 좌표
    Figure 112022018492293-pat00266
    , 그리고 상기 디코딩될 유닛의 왼쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00267
    를 기반으로 하여, 상기 디코딩될 유닛의 왼쪽 상단 제어점의 움직임 벡터 예측자
    Figure 112022018492293-pat00268
    를 결정하도록 구성되는 - 상기 디코딩될 유닛의 왼쪽 상단 제어점은 상기 M개의 제어점에 속하는 것임 - , 이미지 디코딩 장치.
  29. 이미지 인코딩 장치로서,
    인코딩될 유닛의 좌측의 인접한 인코딩된 유닛 중에서 제1 인코딩된 유닛을 결정하도록 구성되고, 또한 상기 인코딩될 유닛보다 위쪽의 인접한 인코딩된 유닛 중에서 제2 인코딩된 유닛을 결정하도록 추가로 구성되는 결정 모듈 - 여기서 상기 제1 인코딩된 유닛과 상기 제2 인코딩된 유닛의 움직임 예측 모드는 상기 인코딩될 유닛의 움직임 예측 모드와 동일한 것임 - ; 및
    상기 제1 인코딩된 유닛의 복수의 제어점의 움직임 벡터, 상기 제1 인코딩된 유닛의 복수의 제어점의 샘플 좌표 및 상기 인코딩될 유닛의 M개의 제어점의 샘플 좌표에 기초하여 M개의 제어점의 제1 움직임 벡터 예측자를 계산하고, 상기 M개의 제어점의 제1 움직임 벡터 예측자에 기초하여 제1 움직임 벡터 그룹을 생성하도록 구성되고, 또한 상기 제2 인코딩된 유닛의 복수의 제어점의 움직임 벡터, 상기 제2 인코딩된 유닛의 복수의 제어점의 샘플 좌표 및 상기 인코딩될 유닛의 M개의 제어점의 샘플 좌표에 기초하여 M개의 제어점의 제2 움직임 벡터 예측자를 계산하고, 상기 M개의 제어점의 제2 움직임 벡터 예측자에 기초하여 제2 움직임 벡터 그룹을 생성하도록 추가로 구성되는 계산 모듈
    을 포함하고,
    상기 결정 모듈은 복수의 움직임 벡터 그룹 중에서 타깃 움직임 벡터 그룹을 결정하도록 추가로 구성되는 - 여기서 상기 복수의 움직임 벡터 그룹은 상기 제1 움직임 벡터 그룹과 상기 제2 움직임 벡터 그룹을 포함함 - , 이미지 인코딩 장치.
  30. 제29항에 있어서,
    상기 움직임 예측 모드는 아핀 움직임 예측 모드를 포함하는, 이미지 인코딩 장치
  31. 제29항에 있어서,
    상기 결정 모듈이 구체적으로,
    상기 인코딩될 유닛의 좌측의 인접한 2개의 인코딩된 유닛 중에서, 제1 시퀀스에 따라 첫번째로 발견되며 또한 상기 인코딩될 유닛의 움직임 예측 모드와 동일한 움직임 예측 모드를 가지는 인코딩된 유닛을 상기 제1 인코딩된 유닛으로 결정하고,
    상기 인코딩될 유닛보다 위쪽의 인접한 3개의 인코딩된 유닛 중에서, 제2 시퀀스에 따라 첫번째로 발견되며 또한 상기 인코딩될 유닛의 움직임 예측 모드와 동일한 움직임 예측 모드를 가지는 인코딩된 유닛을 상기 제2 인코딩된 유닛으로 결정하도록 구성되는, 이미지 인코딩 장치.
  32. 제29항 내지 제31항 중 어느 한 항에 있어서,
    상기 결정 모듈이 구체적으로,
    Q개의 움직임 벡터 그룹을 생성하고 - Q는 제1 값이고 Q+2는 사전 설정된 값 이상임 - ; 및
    상기 Q개의 움직임 벡터 그룹, 상기 제1 움직임 벡터 그룹 및 상기 제2 움직임 벡터 그룹 중에서 상기 타깃 움직임 벡터 그룹을 결정하도록 구성되는, 이미지 인코딩 장치.
  33. 제32항에 있어서,
    상기 결정 모듈이 구체적으로,
    상기 인코딩될 유닛의 M개의 제어점에 각각 대응하는 인코딩된 유닛의 움직임 벡터에 기초하여, 상기 Q개의 움직임 벡터 그룹을 생성하도록 구성되는, 이미지 인코딩 장치.
  34. 제29항 내지 제31항 중 어느 한 항에 있어서,
    상기 이미지 인코딩 장치가 인코딩 모듈을 더 포함하고,
    상기 인코딩 모듈은 상기 복수의 움직임 벡터 그룹과 상기 타깃 움직임 벡터 그룹에 기초하여 상기 타깃 움직임 벡터 그룹의 인덱스 식별자를 결정하고, 상기 인덱스 식별자를 비트스트림으로 인코딩하도록 구성되는, 이미지 인코딩 장치.
  35. 제29항 내지 제31항 중 어느 한 항에 있어서,
    M은, 상기 인코딩될 유닛의 움직임 예측 모드에 기초하여 결정되는 양의 정수인, 이미지 인코딩 장치.
  36. 제29항 내지 제31항 중 어느 한 항에 있어서,
    상기 계산 모듈이 구체적으로,
    다음의 수식 (1):
    Figure 112022018492293-pat00269

    을 이용하고 또한 상기 제1 인코딩된 유닛의 왼쪽 상단 제어점의 움직임 벡터
    Figure 112022018492293-pat00270
    , 상기 제1 인코딩된 유닛의 오른쪽 상단 제어점의 움직임 벡터
    Figure 112022018492293-pat00271
    , 상기 제1 인코딩된 유닛의 왼쪽 하단 제어점의 움직임 벡터
    Figure 112022018492293-pat00272
    , 상기 제1 인코딩된 유닛의 왼쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00273
    , 상기 제1 인코딩된 유닛의 오른쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00274
    , 상기 제1 인코딩된 유닛의 왼쪽 하단 제어점의 샘플 좌표
    Figure 112022018492293-pat00275
    , 그리고 상기 인코딩될 유닛의 왼쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00276
    를 기반으로 하여, 상기 인코딩될 유닛의 왼쪽 상단 제어점의 움직임 벡터 예측자
    Figure 112022018492293-pat00277
    를 결정하거나 - 상기 인코딩될 유닛의 왼쪽 상단 제어점은 상기 M개의 제어점에 속하는 것임 - , 또는
    다음의 수식 (1):
    Figure 112022018492293-pat00278

    을 이용하고 또한 상기 제2 인코딩된 유닛의 왼쪽 상단 제어점의 움직임 벡터
    Figure 112022018492293-pat00279
    , 상기 제2 인코딩된 유닛의 오른쪽 상단 제어점의 움직임 벡터
    Figure 112022018492293-pat00280
    , 상기 제2 인코딩된 유닛의 왼쪽 하단 제어점의 움직임 벡터
    Figure 112022018492293-pat00281
    , 상기 제2 인코딩된 유닛의 왼쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00282
    , 상기 제2 인코딩된 유닛의 오른쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00283
    , 상기 제2 인코딩된 유닛의 왼쪽 하단 제어점의 샘플 좌표
    Figure 112022018492293-pat00284
    , 그리고 상기 인코딩될 유닛의 왼쪽 상단 제어점의 샘플 좌표
    Figure 112022018492293-pat00285
    를 기반으로 하여, 상기 인코딩될 유닛의 왼쪽 상단 제어점의 움직임 벡터 예측자
    Figure 112022018492293-pat00286
    를 결정하도록 구성되는 - 상기 인코딩될 유닛의 왼쪽 상단 제어점은 상기 M개의 제어점에 속하는 것임 - , 이미지 인코딩 장치.
  37. 저장 매체로서,
    상기 저장 매체는 제11항 내지 제13항 중 어느 한 항에 따른 방법을 사용함으로써 생성되는 비트스트림 또는 제1항 내지 제3항 중 어느 한 항에 따른 방법을 사용함으로써 디코딩을 통해 획득되는 비트스트림을 포함하는, 저장 매체.
  38. 이미지 처리 장치로서,
    프로세서, 메모리, 통신 인터페이스 및 버스를 포함하고,
    상기 프로세서는 상기 메모리와 상기 통신 인터페이스에 상기 버스를 사용함으로써 연결되며,
    상기 메모리는 명령을 저장하도록 구성되고,
    상기 프로세서는 상기 명령을 실행하도록 구성되며,
    상기 프로세서가 상기 메모리 내에 저장된 명령을 실행할 때, 상기 프로세서는 제11항 내지 제13항 중 어느 한 항에 따른 인코딩 방법 또는 제1항 내지 제3항 중 어느 한 항에 따른 디코딩 방법을 수행할 수 있게 되는, 이미지 처리 장치.
KR1020217023755A 2016-02-06 2016-09-08 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치 KR102447241B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201610081070.3A CN107046645B9 (zh) 2016-02-06 2016-02-06 图像编解码方法及装置
CN201610081070.3 2016-02-06
KR1020207029947A KR102284099B1 (ko) 2016-02-06 2016-09-08 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치
PCT/CN2016/098403 WO2017133243A1 (zh) 2016-02-06 2016-09-08 图像编解码方法及装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207029947A Division KR102284099B1 (ko) 2016-02-06 2016-09-08 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20210095745A KR20210095745A (ko) 2021-08-02
KR102447241B1 true KR102447241B1 (ko) 2022-09-23

Family

ID=59499362

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020207029948A KR102283725B1 (ko) 2016-02-06 2016-09-08 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치
KR1020217023755A KR102447241B1 (ko) 2016-02-06 2016-09-08 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치
KR1020187025260A KR102247383B1 (ko) 2016-02-06 2016-09-08 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치
KR1020207029947A KR102284099B1 (ko) 2016-02-06 2016-09-08 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207029948A KR102283725B1 (ko) 2016-02-06 2016-09-08 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020187025260A KR102247383B1 (ko) 2016-02-06 2016-09-08 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치
KR1020207029947A KR102284099B1 (ko) 2016-02-06 2016-09-08 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치

Country Status (10)

Country Link
US (5) US10798405B2 (ko)
EP (2) EP4099699A1 (ko)
JP (3) JP7069022B2 (ko)
KR (4) KR102283725B1 (ko)
CN (4) CN107046645B9 (ko)
AU (3) AU2016390979B2 (ko)
CA (1) CA3013655C (ko)
HK (1) HK1256107A1 (ko)
RU (4) RU2722389C2 (ko)
WO (1) WO2017133243A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107046645B9 (zh) * 2016-02-06 2020-08-14 华为技术有限公司 图像编解码方法及装置
WO2019002215A1 (en) * 2017-06-26 2019-01-03 Interdigital Vc Holdings, Inc. MULTIPLE PREDICTION CANDIDATES FOR MOTION COMPENSATION
US10856003B2 (en) * 2017-10-03 2020-12-01 Qualcomm Incorporated Coding affine prediction motion information for video coding
US10582212B2 (en) * 2017-10-07 2020-03-03 Google Llc Warped reference motion vectors for video compression
CN116915986A (zh) * 2017-12-12 2023-10-20 华为技术有限公司 视频数据的帧间预测方法和装置
CN110035287B (zh) * 2018-01-12 2023-05-09 富士通株式会社 对统一转换单元模式进行分组标识的方法、装置和电子设备
CN108449599B (zh) * 2018-03-23 2021-05-18 安徽大学 一种基于面透射变换的视频编码与解码方法
KR102568879B1 (ko) 2018-04-01 2023-08-21 엘지전자 주식회사 어파인 움직임 예측에 기반한 영상 코딩 방법 및 그 장치
JP7088606B2 (ja) * 2018-04-02 2022-06-21 エスゼット ディージェイアイ テクノロジー カンパニー リミテッド 動画処理方法、画像処理装置、プログラム、符号化デバイス、及び復号化デバイス
CN110971899B (zh) * 2018-10-01 2021-06-01 华为技术有限公司 一种确定运动信息的方法、帧间预测方法及装置
US11528484B2 (en) 2018-12-06 2022-12-13 Lg Electronics Inc. Method and apparatus for processing video signal on basis of inter prediction
CN116614633A (zh) 2019-01-02 2023-08-18 Oppo广东移动通信有限公司 解码预测方法、装置及计算机存储介质
CN113597767A (zh) * 2019-03-08 2021-11-02 Oppo广东移动通信有限公司 预测方法、编码器、解码器及计算机存储介质
CN113824960B (zh) * 2019-11-13 2024-02-23 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机可读介质及电子设备
CN111698502A (zh) * 2020-06-19 2020-09-22 中南大学 基于vvc编码的仿射运动估计加速方法、设备及存储介质

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100215451B1 (ko) * 1996-05-29 1999-08-16 윤종용 임의형태 물체를 포함한 동화상의 부호화 및 복호화시스템
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
KR100772873B1 (ko) * 2006-01-12 2007-11-02 삼성전자주식회사 스무딩 예측을 이용한 다계층 기반의 비디오 인코딩 방법,디코딩 방법, 비디오 인코더 및 비디오 디코더
US8619853B2 (en) * 2007-06-15 2013-12-31 Qualcomm Incorporated Separable directional transforms
WO2009123248A1 (en) * 2008-04-01 2009-10-08 Canon Kabushiki Kaisha Moving image encoding apparatus and moving image encoding method
JP5401071B2 (ja) * 2008-10-09 2014-01-29 株式会社Nttドコモ 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、動画像処理システムおよび動画像処理方法
KR101590511B1 (ko) 2009-01-23 2016-02-02 에스케이텔레콤 주식회사 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
JP4760923B2 (ja) * 2009-02-03 2011-08-31 ソニー株式会社 画像処理装置、画像処理方法および撮像装置
KR101452859B1 (ko) 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
EP2493195A1 (en) * 2009-10-20 2012-08-29 Sharp Kabushiki Kaisha Video encoding device, video decoding device, and data structure
KR101459714B1 (ko) * 2009-10-28 2014-11-13 에스케이텔레콤 주식회사 공간 분할을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2011083439A1 (en) * 2010-01-08 2011-07-14 Nokia Corporation An apparatus, a method and a computer program for video coding
CN101771878B (zh) * 2010-01-14 2011-05-25 广西大学 面向全景视频编码的自适应选择全局运动估计方法
EP2536147A4 (en) * 2010-02-09 2017-03-15 Nippon Telegraph And Telephone Corporation Predictive coding method for motion vector, predictive decoding method for motion vector, video coding device, video decoding device, and programs therefor
CN103039075B (zh) * 2010-05-21 2015-11-25 Jvc建伍株式会社 图像编码装置、图像编码方法、以及图像解码装置、图像解码方法
GB2487200A (en) 2011-01-12 2012-07-18 Canon Kk Video encoding and decoding with improved error resilience
JP5716438B2 (ja) 2011-02-08 2015-05-13 株式会社Jvcケンウッド 画像復号装置、画像復号方法および画像復号プログラム
PL3481066T3 (pl) * 2011-06-28 2021-11-22 Lg Electronics Inc. Sposób wyprowadzania predyktora wektora ruchu
KR101943049B1 (ko) 2011-06-30 2019-01-29 에스케이텔레콤 주식회사 영상 부호화/복호화 방법 및 장치
JP5950541B2 (ja) * 2011-11-07 2016-07-13 キヤノン株式会社 動きベクトル符号化装置、動きベクトル符号化方法及びプログラム、動きベクトル復号装置、動きベクトル復号方法及びプログラム
EP2683165B1 (en) * 2012-07-04 2015-10-14 Thomson Licensing Method for coding and decoding a block of pixels from a motion model
WO2014190468A1 (en) * 2013-05-27 2014-12-04 Microsoft Corporation Video encoder for images
US9774879B2 (en) * 2013-08-16 2017-09-26 Sony Corporation Intra-block copying enhancements for HEVC in-range-extension (RExt)
CN104717555B (zh) 2013-12-11 2018-01-02 华为技术有限公司 视频码流的获取方法及装置
WO2015174157A1 (ja) 2014-05-14 2015-11-19 独立行政法人産業技術総合研究所 売買情報交換装置及び方法
WO2016008157A1 (en) * 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Methods for motion compensation using high order motion model
CN104539966B (zh) * 2014-09-30 2017-12-22 华为技术有限公司 图像预测方法及相关装置
EP3023904B1 (en) 2014-11-24 2021-01-27 IDEMIA France Implicit File creation in APDU scripts
CN107809642B (zh) * 2015-02-16 2020-06-16 华为技术有限公司 用于视频图像编码和解码的方法、编码设备和解码设备
CN105163116B (zh) 2015-08-29 2018-07-31 华为技术有限公司 图像预测的方法及设备
US20190028731A1 (en) * 2016-01-07 2019-01-24 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
WO2017130696A1 (ja) * 2016-01-29 2017-08-03 シャープ株式会社 予測画像生成装置、動画像復号装置、および動画像符号化装置
CN107046645B9 (zh) * 2016-02-06 2020-08-14 华为技术有限公司 图像编解码方法及装置
CN109729352B (zh) * 2017-10-27 2020-07-21 华为技术有限公司 确定仿射编码块的运动矢量的方法和装置
CN116915986A (zh) * 2017-12-12 2023-10-20 华为技术有限公司 视频数据的帧间预测方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
INTERNATIONAL ORGANIZATION FOR STANDARDIZATION, Algorithm Description of Joint Exploration Test Model 1 (JEM 1), ISO/IEC JTC1/SC29/WG11 CODING OF MOVING PICTURES AND AUDIO ISO/IEC JTC1/SC29/WG11/N157*

Also Published As

Publication number Publication date
CN107046645B9 (zh) 2020-08-14
RU2737315C1 (ru) 2020-11-27
EP3402205A1 (en) 2018-11-14
EP3402205B1 (en) 2022-06-15
JP7069022B2 (ja) 2022-05-17
US20220353525A1 (en) 2022-11-03
CN111526360A (zh) 2020-08-11
AU2020207857A1 (en) 2020-08-13
KR20200121925A (ko) 2020-10-26
AU2016390979B2 (en) 2020-04-23
US11394994B2 (en) 2022-07-19
AU2020207860B2 (en) 2022-02-03
US20200413087A1 (en) 2020-12-31
WO2017133243A1 (zh) 2017-08-10
CN107046645A (zh) 2017-08-15
US11412248B2 (en) 2022-08-09
CN107046645B (zh) 2020-04-21
EP3402205A4 (en) 2018-11-14
JP7351485B2 (ja) 2023-09-27
KR20210095745A (ko) 2021-08-02
KR20200122416A (ko) 2020-10-27
US20220329845A1 (en) 2022-10-13
JP2020205611A (ja) 2020-12-24
RU2019137993A (ru) 2019-12-20
HK1256107A1 (zh) 2019-09-13
CN111556323A (zh) 2020-08-18
CA3013655A1 (en) 2017-08-10
RU2722389C2 (ru) 2020-05-29
AU2016390979A1 (en) 2018-09-06
KR20180107783A (ko) 2018-10-02
RU2019137993A3 (ko) 2020-03-26
CA3013655C (en) 2023-10-03
JP2020205610A (ja) 2020-12-24
AU2020207860A1 (en) 2020-08-13
CN111526361B (zh) 2022-05-13
KR102284099B1 (ko) 2021-07-29
JP7351463B2 (ja) 2023-09-27
EP4099699A1 (en) 2022-12-07
RU2748360C1 (ru) 2021-05-24
US20180376161A1 (en) 2018-12-27
JP2019506089A (ja) 2019-02-28
CN111526361A (zh) 2020-08-11
US20200413088A1 (en) 2020-12-31
KR102283725B1 (ko) 2021-07-29
AU2020207857B2 (en) 2022-02-03
US10798405B2 (en) 2020-10-06
KR102247383B1 (ko) 2021-04-30
CN111556323B (zh) 2022-05-13
RU2708347C1 (ru) 2019-12-05

Similar Documents

Publication Publication Date Title
KR102447241B1 (ko) 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치
CN107852500A (zh) 运动矢量场编码方法和解码方法、编码和解码装置
KR20230109772A (ko) 비디오 코딩 시스템에서 인터 예측 방법 및 장치
CN112565789B (zh) 视频解码及编码方法、装置、计算机可读介质及电子设备
KR102513585B1 (ko) 비디오 처리 시스템에서 인터 예측 방법 및 장치

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right