KR20130039429A - MVD를 이용한 bi-predictive temporal motion vector derivation 방법 - Google Patents

MVD를 이용한 bi-predictive temporal motion vector derivation 방법 Download PDF

Info

Publication number
KR20130039429A
KR20130039429A KR1020110103957A KR20110103957A KR20130039429A KR 20130039429 A KR20130039429 A KR 20130039429A KR 1020110103957 A KR1020110103957 A KR 1020110103957A KR 20110103957 A KR20110103957 A KR 20110103957A KR 20130039429 A KR20130039429 A KR 20130039429A
Authority
KR
South Korea
Prior art keywords
motion vector
mode
motion
current
merge
Prior art date
Application number
KR1020110103957A
Other languages
English (en)
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 주식회사 케이티
Priority to KR1020110103957A priority Critical patent/KR20130039429A/ko
Publication of KR20130039429A publication Critical patent/KR20130039429A/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

Landscapes

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

Abstract

Merge mode에서 bi-predictive temporal motion을 이용할 때, list0와 list1의 motion information이 같은 경우 ( mvL0Col = mvL1col and RefPicOrderCnt (currPic, refidxL0 , L0) = RefPicOrderCnt (currPic , refidxL1 , L1) ) 인 경우가 발생을 한다. Bi-predictive mode에서 두 motion information이 같기 때문에 압축 성능이 떨어지고, 연산량이 필요이상으로 늘어난다. Bi-predictive temporal motion information이 같으면, bi-prediction을 uni-prediction으로 바꾸어 주어서 complexity를 줄이거나, list1의 motion을 주변 block에서 찾거나[JCTVC-F712], list1의 Co-located picture를 변형 시켜주어서[JCTVC-F325], 동일하지 않은 motion information으로 bi-prediction하는 방법이 제안 되었다. 본 발명에서는 list1에서는 mergeMVD mode를 적용하여, motion information 변형시켜 압축성능 향상을 높이는 방법을 제안하고자 한다.

Description

MVD를 이용한 bi-predictive temporal motion vector derivation 방법{.}
본 발명은 MVD를 이용한 bi-predictive temporal motion vector derivation에 관한 것이다.
Merge mode에서 bi-predictive temporal motion을 이용할 때, list0와 list1의 motion information이 같은 경우 ( mvL0Col = mvL1col and RefPicOrderCnt (currPic, refidxL0 , L0) = RefPicOrderCnt (currPic , refidxL1 , L1) ) 인 경우가 발생을 한다.
본 발명은 MVD를 이용한 bi-predictive temporal motion vector derivation 방법을 제공한다.
본 발명의 일 실시예에 다르면 MVD를 이용한 bi-predictive temporal motion vector derivation 방법이 제공된다.
motion information 변형시켜 압축 성능을 향상시킬 수 있다.
도 1은 Spatial neighboring Search Order을 나타낸다.
도 2는 List1의 Co-located picture 변경 방법을 나타낸다.
도 3은 Mvd를 전송할 reference index 선택 방법을 나타낸다.
도 4는 HM4.0에서의 spatial merge candidates를 나타낸다.
1 개요
Merge mode에서 bi-predictive temporal motion을 이용할 때, list0와 list1의 motion information이 같은 경우 ( mvL0Col = mvL1col and RefPicOrderCnt (currPic, refidxL0 , L0) = RefPicOrderCnt (currPic , refidxL1 , L1) ) 인 경우가 발생을 한다. Bi-predictive mode에서 두 motion information이 같기 때문에 압축 성능이 떨어지고, 연산량이 필요 이상으로 늘어난다. Bi-predictive temporal motion information이 같으면, bi-prediction을 uni-prediction으로 바꾸어 주어서 complexity를 줄이거나, list1의 motion을 주변 block에서 찾거나[JCTVC-F712], list1의 Co-located picture를 변형 시켜주어서[JCTVC-F325], 동일하지 않은 motion information으로 bi-prediction하는 방법이 제안되었다. 본 발명에서는 list1에서는 mergeMVD mode를 적용하여, motion information 변형시켜 압축성능 향상을 높이는 방법을 제안하고자 한다.
2 기존방법
2.1 Spatial neighboring에서 motion information을 derivation하는 방법 [JCTVC-F712]
Bi-predictive Merge mode에서 현재 PU의 list0와 list1의 motion information이 같은 경우 ( mvL0Col = mvL1col and RefPicOrderCnt ( currPic , refidxL0, L0) = RefPicOrderCnt (currPic , refidxL1 , L1) ) , spatial neighboring에서 non-zero motion vector를 가져와서, list1의 motion vector로 사용한다. 다음과 같은 순서로 주변 neighboring을 search하여, list1의 motion vector로 사용한다.
1. A (Left PU) : PU left to the top-left corner pixel of current PU
2. B (Above PU) : PU above to the top-left corner pixel of current PU
3. E (Corner PU) : PU up-left to the top-left corner pixel of current PU
도 1은 list1의 motion vector를 derivation하기 위한, spatial neighboring을 search하는 순서를 나타내고 있다.
2.2 Co-located Picture를 변형시켜 motion information을 derviation하는 방법 [JCTVC-F325]
Bi-predictive Merge mode에서 현재 PU의 list0와 list1의 motion information이 같은 경우 ( mvL0Col = mvL1col and RefPicOrderCnt (currPic , refidxL0, L0) = RefPicOrderCnt (currPic , refidxL1 , L1) ) , list1의 co-located Picture를 RefPicList[0] 가 아니고, RefPicList[1] 이 가리키는 picture로 지정하고, motion vector를 가져온다.
도 2는 merge mode에서 temporal motion information이 같을 때, list1의 ColPic를 변형시키는 방법에 대해 나타내고 있다.
2.3 Merge based MVD transmission [JCTVC-F373]
기존 HM4.0에서는 merge mode와 Advanced Motion Vector Prediction (AMVP) 를 사용하여, motion information을 최소화하는 방법을 사용하고 있는데, merge mode의 경우, merge index만 부호화 하고, 나머지 motion information은 merge index가 가리키는 block의 motion information을, 현재 PU의 motion information으로 사용한다. JCTVC-F373에서는 mvd를 전송하는 merge mode를 제안하였다. 이 경우, merge index와 mvd를 부호화 하고, reference index는 부호화하지 않으며, One directional Mvd만 전송하게 된다. 표 1은 각 motion prediction mode 별 전송하는 motion information을 나타내고 있으며, 표 2은 merge candidate type에 따른 mvd reference picture를 선택하는 방법을 제시하고 있다.
Figure pat00001
표 1: 각 Inter preidiction mode별 전송되는 motion 정보
Figure pat00002
표 2: MVD를 전송하기 위한 reference picture 선택 방법
도 3은 각 merge type에 따른 reference picture를 선택하는 방법을 나타내고 있다.
3 제안방법
3.1 MVD를 이용한 bi-predictive temporal motion vector derivation 방법
Bi-predictive Merge mode에서 현재 PU의 list0와 list1의 motion information이 같은 경우 ( mvL0Col = mvL1col and RefPicOrderCnt ( currPic , refidxL0, L0) = RefPicOrderCnt (currPic , refidxL1 , L1) ) , list1의 motion information은 mergeMVD mode를 사용하여 얻는다. 즉 list0는 merge mode이고, list1은 mergeMVD mode를 사용하는 방법이다. mergeMVD mode의 spatial candidates은 merge mode의 spatial candidates과 같거나, JCTVC-F712에서 사용하고 있는 spatial neighboring (도 1) 을 사용할 수 있다.
도 4은 HM4.0에서의 spatial merge candidates를 나타내고 있다. 위 방법은 JCTVC-F325에서 사용한 것처럼, co-located PU를 변형한 후에도, mergeMVD mode를 적용할 수 있다. 또한 list0 또는 list1 중에서, 어느 쪽의 motion information을 refinement할 지를 선택할 수도 있다. 그 정보는 Sliceheaer, CU 또는 PU 단위로 syntax를 추가로 부호화하여 알려 줄 수 있다.
4 Encoder Description
1. 현재 프레임의 새로운 코딩유닛 (CU) 이 입력된다.
· 하나의 Inter CU는 여러 개의 Inter PU로 구성되며, 2가지의 예측모드 (PredMode) , MODE_SKIP와 MODE_INTER를 가진다. MODE_SKIP의 경우 더 작은 PU로 분할되지 않으며, 파티션모드 (PartMode) 가 PART_2Nx2N인 PU의 모션정보가 할당된다.
· MODE_INTER CU인 경우에는 4가지 형태의 PU 파티션으로 존재할 수 있으며, CU 레벨의 신택스에 PredMode==MODE_INTER와 파티션 형태를 나타내는 PartMode==PART_2Nx2N 또는 PART_2NxN, PART_Nx2N, PART_NxN이 시그널링된다.
2. 현재 Inter PU에 대해 모션예측을 수행한다.
· CU가 여러 개의 PU로 파티션 되면 현재 부호화될 PU가 입력된다.
· 현재의 PU에 대해 이전 프레임, 또는 이전 및 이후 프레임을 이용하여 모션예측을 수행한다. 모션예측을 통해 현재의 PU에 대한 모션정보 모션벡터, 참조픽처인덱스, 예측방향 인덱스를 구한다.
3. 현재 Inter PU의 모션예측값 (MVP) 을 구한다.
· 현재 PU의 모션정보는 그대로 보내지 않고, 압축효율을 높이기 위하여 시공간적으로 인접한 블록들로부터 얻은 예측 값과의 차이를 보낸다. 예측모드의 종류에는 Merge 모드와 AMVP 모드, MergeMVD 모드가 있다.
· 모션예측값을 구하기 위해 Merge 후보리스트와 AMVP 후보리스트 그리고 MergeMVD 후보리스트를 작성한다.
· Merge 모드는 시공간적으로 현재 PU와 인접한 블록들의 모션정보로부터 Merge 후보들을 구한다. 후보들 중 현재 PU의 모션정보와 같은 후보가 있으면, Merge 모드를 사용한다.는 플래그와 그 후보의 인덱스를 전송한다.
- 계산된 참조픽처인덱스 (refIdxLX) 를 이용하여 가용한 Temporal 모션벡터 예측값을 구한다.
- Merge 후보 리스트 (MergeCandList) 를 작성한다.
- 현재 PU와 같은 모션정보를 가지는 후보가 있으면, Merge_Flag=1로 세팅하고, 그 후보의 인덱스 (Merge_Idx) 를 부호화한다.
- Temporal bi-predictive mode이고, refIdxL0와 refidxL1이 같고, mvL0와 mvL1이 같으면, MergeMVD를 이용해, mvd를 구하여 전송하고, mvLX + mvd를 motion vector로 사용한다.
· MergeMVD 모드는 시공간적으로 현재 PU와 인접한 블록들의 모션정보로부터 Merge 후보들을 구한 후, mvd를 전송한다. 후보들 중 현재 PU의 모션정보와 같은 후보가 있으면, MergeMVD 모드를 사용한다.는 플래그와 그 후보의 인덱스를 전송한다.
· 계산된 참조픽처인덱스 (refIdxLX) 를 이용하여 가용한 Temporal 모션벡터 예측 값을 구한다.
· Merge 후보 리스트 (MergeCandList) 를 작성한다.
· 현재 PU와 같은 모션정보를 가지는 후보가 있으면, Merge_Flag=1로 세팅하고, 그 후보의 인덱스 (Merge_Idx) 를 부호화한다.
· List0 또는 List1 중 현재 frame과의 temporal distance가 큰 쪽에는 merge 후보에서 얻은 motion information을 mvp로 사용하고, mvd를 구해 전송한다.
· AMVP 모드는 시공간적으로 현재 PU와 인접한 블록들의 모션정보로부터 AMVP 후보들을 구한다.
- Luam 모션벡터 예측 값 (mvpLX) 을 구한다.
a) 인접 PU들로부터 Spatial 모션벡터후보 (MVP) 를 추출한다.
b) 모션추정 프로세스에서 구해진 RefIdxLX을 가지고 Co-located 블록의 Temporal 모션벡터후보를 추출한다.
c) MVP 리스트 (mvpListLX) 를 작성한다. 모션벡터의 우선순위는 다음과 같다. 단 가용한 벡터에 한정한다.
- Temporal Co-located 블록의 모션벡터 (mvLXCol)
- 왼쪽 인접블럭 (mvLXA)
- 상위 인접블럭 (mvLXB)
d) 여러 개의 모션벡터가 동일한 값을 가지면, 가장 우선순위가 높은 것을 제외한 모든 모션벡터를 리스트에서 삭제한다.
e) mvListLX 내 모션후보들 중 best predictor의 모션벡터를 mvpLX에 할당한다. Best Predictor는 코스트 함수 J MotSAD 를 최소화하는 후보블럭이다.
4. 현재 PU의 모션정보를 부호화한다.
· Merge 모드의 경우, Merger 후보들 중 현재 PU와 같은 모션정보를 가진 후보가 존재하면 현재 PU를 Merge 모드로 선언하고, Merge 모드를 사용했음을 알리는 Merge_Flag와 Merge 후보들 중 어떤 후보인지를 알리는 Merge_Idx를 보낸다. 그 다음 모션보상을 한 후 현재 PU와 Merge 모드로 예측된 PU와의 차이신호 (잔여신호) 를 얻는다. 보내야 할 잔여신호가 없을 때는 Merge_SKIP 모드로 보낸다.
· AMVP 모드의 경우, AMVP 후보들 중 현재 부호화할 PU의 모션벡터 정보와 비교하여 코스트 함수가 최소화되는 후보를 결정한다. 코스트 함수를 최소화하는 후보의 모션정보와의 차이값과 이 AMVP 후보를 이용하여 모션보상 후 잔여신호를 얻는다. PU의 모션벡터를 best predictor 모션벡터와의 차이 (MVD) 를 엔트로피 부호화한다.
5. 이동보상을 통해 현재 블럭의 픽셀 값과 예측블록의 픽셀 값을 픽셀단위로 차분을 구해서 Residual 신호를 얻는다.
6. Residual 신호를 변환 부호화한다.
· A. 변환부호화 커널은 2x2, 4x4, 8x8, 16x16, 32x32, 64x64 를 사용할 수 있으며, 변환에 사용될 커널을 사전에 제한할 수도 있다.
· B. n × n 블록에 대해 변환계수 C는 다음과 같이 계산된다.
C (n, n) = T (n, n) × B (n, n) × T (n, n) T
· 변환계수를 양자화한다.
7. Residual 신호와 변환계수 중 어떤 것을 전송할 지 RDO를 통해 결정한다.
· 예측이 잘된 경우 변환부호화 하지 않고 Residual 신호를 그대로 전송할 수 있다.
· 변환부호화 전/후 코스트 함수를 비교하여 코스트가 minimize되는 방법을 선택한다.
· 현재 블록에 대해 전송할 신호의 타입 (Residual 또는 변환계수) 을 시그널링한다.
8. 변환계수를 스캔한다.
9. 스캔된 변환계수와 Inter 에측모드를 엔트로피 부호화한다.
5 Decoder Description
1. 수신된 비트스트림을 엔트로피 복호화한다.
· VLC 테이블로부터 블록타입을 알아내고, 현재 블록의 예측모드를 얻는다.
· 현재 블록에 대해 전송되어 온 신호가 Residual 인지, 아니면 변환계수인지 타입을 알아낸다.
· 현재 블록에 대한 Residual 신호나 변환계수를 얻는다.
2. 엔트로피 복호화된 Residual 신호나 변환계수를 역스캔 (inverse scan) 하여 2차원 블록을 생성한다.
· Residual 신호의 경우, Residual 블록을 생성한다.
· 변환계수인 경우, 변환블록을 생성한다.
3. 변환계수인 경우, 역양자화, 역변환을 하여 Residual 블록을 얻는다.
· B (n, n) = T (n, n) × C (n, n) × T (n, n) T .
· 역변환을 통해 Residual 신호를 얻는다.
4. Inter 예측을 수행한다.
· Merge 모드의 경우
- PredMode==MODE_SKIP && Merge_Flag==1이면 Merge 모드를 통해 Luma 모션벡터 (mvLX) , 참조픽처인덱스 (refIdxLX) 를 구해야 한다.
- 이 정보들을 구하기 위해 인접 PU 파티션들로부터 Merge 후보를 추출한다.
- 현재 PU의 Temporal Merge 후보를 구하기 위해 참조픽처인덱스 (refIdxLX) 를 구한다.
- 계산된 참조픽처인덱스 (redIdxLX) 를 이용하여, 가용한 Temporal 모션벡터 예측 값 (MVP) 을 구한다.
- MergeCandList 내의 후보갯수 (NumMergeCand) 가 ‘1’ 이면 Merge_Idx=1로 세팅하고, 그렇지 않으면 Merge_Idx를 수신한 Merge 인덱스 값으로 세팅한다. 이 인덱스값이 가리키는 후보의 모션벡터 (mvLX) 와 참조픽처인덱스 (refIdxLX) 를 추출하여, 움직임보상에 사용한다.
- Temporal bi-predictive mode이고, refIdxL0와 refidxL1이 같고, mvL0와 mvL1 이 같으면, mvd 값을 복호화하여, 다음과 같이 motion vector를 구하여 사용한다. Motion_VectorLX = mvLX + mvd
· MergeMVD 모드의 경우
- PredMode==MODE_SKIP && MergeMVD_Flag==1이면 MergeMVD 모드를
통해 Luma 모션벡터 (mvLX) , 참조픽처인덱스 (refIdxLX) 를 구해야 한다.
* MVD 값을 복호화
* 인접 PU 파티션들로부터 MergeMVD 후보를 추출한다.
* 현재 PU의 Temporal MergeMVD 후보를 구하기 위해 참조픽처인덱스 (refIdxLX) 를 구한다.
* 계산된 참조픽처인덱스 (redIdxLX) 를 이용하여, 가용한 Temporal 모션벡터예측값 (MVP) 을 구한다.
* MergeCandList 내의 후보갯수 (NumMergeCand) 가 ‘1’ 이면 MergeMVD_Idx=1로 세팅하고, 그렇지 않으면 MergeMVD_Idx를 수신한 MergeMVD 인덱스 값으로 세팅한다. 이 인덱스 값이 가리키는 후보의 모션벡터 (mvLX) 를 mvpLX로 결정한다.
* 위에서 결정된 mvp와 복호화된 MVD를 이용하여, 모션벡터 (mvLX) 를 결정한다.
· AMVP 모드의 경우
- Merge 모드가 아니면, 현재 PU의 참조픽처인덱스 (refIdxLX) 를 추출한다.
- 참조픽처인덱스를 이용하여 Luma 모션벡터예측값 (mvpLX) 을 구한다.
* 인접 PU들로부터 Spatial 모션벡터후보 (MVP) 를 추출한다.
* 참조픽처인덱스가 가리키는 Co-located 블록의 Temporal MVP를 추출한다.
* MVP 리스트 (mvpListLX) 를 작성한다. 모션벡터의 우선순위는 다음과 같다. 단, 가용한 벡터에 한정한다.
- Temporal Co-located 블록의 모션벡터 (mvLXCol)
- 왼쪽 인접블럭 (mvLXA)
- 상위 인접블럭 (mvLXB)
* 여러 개의 모션벡터가 동일한 값을 가지면, 가장 우선순위가 높은 것을 제외한 모든 모션벡터를 리스트에서 삭제한다.
* mvpListLX 안에 있는 Mvp 후보의 개수 (NumMVPCand (LX) ) 가 ‘1’ 이면, mvpIdx=0으로 세팅하고, ‘1’ 이 아니면 (즉 후보가 2개 이상이면) mpvIdx를 수신한 인덱스값으로 세팅한다.
* mvListLX 내 모션후보들 중 mvpIdx가 가리키는 모션벡터를 mvpLX에 할당한다.
* 모션벡터 mvLX를 계산한다.
mvLX[0] = mvdLX[0] + mvpLX[0] ; x 방향
mvLX[1] = mvdLX[1] + mvpLX[1] ; y 방향
5. Residual 신호와 이전 프레임의 신호를 더하여 재생신호를 생성한다.
· 계산된 모션벡터를 이용하여 이전 프레임에서 이동보상된 예측신호과 디코딩된 현재 PU의 잔여신호를 더해서 재생신호를 생성한다.

Claims (1)

  1. MVD를 이용한 bi-predictive temporal motion vector derivation 방법.
KR1020110103957A 2011-10-12 2011-10-12 MVD를 이용한 bi-predictive temporal motion vector derivation 방법 KR20130039429A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110103957A KR20130039429A (ko) 2011-10-12 2011-10-12 MVD를 이용한 bi-predictive temporal motion vector derivation 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110103957A KR20130039429A (ko) 2011-10-12 2011-10-12 MVD를 이용한 bi-predictive temporal motion vector derivation 방법

Publications (1)

Publication Number Publication Date
KR20130039429A true KR20130039429A (ko) 2013-04-22

Family

ID=48439614

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110103957A KR20130039429A (ko) 2011-10-12 2011-10-12 MVD를 이용한 bi-predictive temporal motion vector derivation 방법

Country Status (1)

Country Link
KR (1) KR20130039429A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015051533A1 (en) * 2013-10-11 2015-04-16 Mediatek Singapore Pte. Ltd. Improved advanced residual prediction in 3dvc

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015051533A1 (en) * 2013-10-11 2015-04-16 Mediatek Singapore Pte. Ltd. Improved advanced residual prediction in 3dvc

Similar Documents

Publication Publication Date Title
KR102085183B1 (ko) 움직임 정보의 부호화 방법 및 장치, 그 복호화 방법 및 장치
EP3606076B1 (en) Encoding and decoding motion information
KR102614946B1 (ko) 가중 예측을 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2012122786A1 (en) Method and apparatus for derivation of spatial motion vector candidate and motion vector prediction candidate
SG186978A1 (en) Methods and apparatuses for encoding and decoding motion vector
JP2013529878A (ja) インターモード、スキップモード及びマージモードについて動きベクトル/動きベクトルの予測子の候補を導出する方法及び装置
KR20190093172A (ko) 움직임 정보를 처리하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치
KR20130039429A (ko) MVD를 이용한 bi-predictive temporal motion vector derivation 방법
KR20130084053A (ko) Sample Adaptive Offset(SAO)에서의 edge offset prediction simplification 방법
KR20130002221A (ko) Inter 예측에서의 MVP후보 결정 방법
KR102679376B1 (ko) 가중 예측을 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
KR20130084052A (ko) Sample Adaptive Offset(SAO)에서의 diagonal edge offset을 이용한 성능향상 방법
KR20130084054A (ko) Sample Adaptive Offset(SAO)에서의 edge offset 성능향상 방법
KR20130083314A (ko) LCU boundary에서의 deblocking filtering 방법
KR20130039778A (ko) AMVP에서 Reference Index 부호화 효율 향상방법
KR20130050851A (ko) 서브블록을 이용한 변환 계수 부호화 방법
KR20130083313A (ko) Asymmetric motion partition에서의 deblocking filtering 방법

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination