KR20130083314A - LCU boundary에서의 deblocking filtering 방법 - Google Patents

LCU boundary에서의 deblocking filtering 방법 Download PDF

Info

Publication number
KR20130083314A
KR20130083314A KR1020120004027A KR20120004027A KR20130083314A KR 20130083314 A KR20130083314 A KR 20130083314A KR 1020120004027 A KR1020120004027 A KR 1020120004027A KR 20120004027 A KR20120004027 A KR 20120004027A KR 20130083314 A KR20130083314 A KR 20130083314A
Authority
KR
South Korea
Prior art keywords
motion
merge
current
lcu
motion vector
Prior art date
Application number
KR1020120004027A
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 KR1020120004027A priority Critical patent/KR20130083314A/ko
Publication of KR20130083314A publication Critical patent/KR20130083314A/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/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/117Filters, e.g. for pre-processing or post-processing
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Abstract

LCU boundary에서의 deblocking filtering 방법.

Description

LCU boundary에서의 deblocking filtering 방법 {.}
본 발명은 영상 처리에 관한 것이다.
필터링에는 deblocking filtering 등이 있다.
본 발명의 기술적 과제는 LCU boundary에서의 deblocking filtering 방법을 제공함에 있다.
LCU boundary에서의 deblocking filtering 방법.
영상 부호화/복호화 효율이 향상된다.
도 1 Strong filter / weak filter selection에 사용되는 pixel들
Deblocking filter를 raster scan 순서로 processing할 때, LCU boundary에서는 상위 LCU의 pixel을 저장하고 있어야 한다. 많은 수의 pixel을 저장하고 있을수록 더 많은 DDR memory를 필요로 한다. 현재 보다 작은 양의 메모리를 비슷한 성능으로 구현하는 것이 가장 좋은 방법이라고 할 수 있다. JCTVC-G320에서는 비슷한 성능에서 메모리 사용량을 줄일 수 있는 방법을 제시하였다. Strong filter 사용시 2 pixel 만 filtering하는 방법 등을 사용하여 memory사용량을 줄이는 방법인데, 본 발명에서는 LCU boundary에서 weak filter만 적용하거나 1 pixel filtering만 사용하여 메모리를 줄이는 방법을 제시하고자 한다.
I. 기존 방법
1. LCU boundary에서의 deblocking filtering 방법 [JCTVC-G320]
LCU boundary에서 horizontal edge에 deblocking filter를 수행할 때, 상위 LCU에 속하는 pixel들을 DDR memory에 저장해야 한다. JCTVC-G320에서는 이 경우에 DDR memory 사용량을 줄이면서 성능하락이 되지 않는 방법을 제시하고 있다. Strong filter / weak filter selection 방법과 strong filter 사용시 filtering 방법을 변형하는 2가지 알고리즘이 제안 되었다.
1.1 Strong / weak filter selection modification
기존에 p3 position 대신에 p2 position을 사용하여 strong filter를 적용할 지, weak filter를 적용할 지를 결정하는 방법을 제시하였다.
기존 HM5에서는 다음 식을 만족 할 때, strong filter를 수행한다.
d < (β>>2) (1)
|p3i-p0i|+|q3i-p0i| < (β >>3) for each i , 0 ≤ i ≤ 7 (2)
|p0i-q0i| < (5*tc+1) >>1 for each i , 0 ≤ i ≤ 7 (3)
그 중에서 horizontal LCU edge (상위 block이 다른 LCU에 속할 때)일 경우, 해당 LCU에서는 다음식을 사용하여 strong filter / weak filter selection을 수행한다.
d < (β>>2) (4)
|p2i-p0i|+|q3i-p0i| < (β >>3) for each i , 0 ≤ i ≤ 7 (5)
|p0i-q0i| < (5*tc+1) >>1 for each i , 0 ≤ i ≤ 7 (6)
도 1 Strong filter / weak filter selection에 사용되는 pixel들
1.2 Strong filter modification
그 중에서 horizontal LCU edge (상위 block이 다른 LCU에 속할 때)일 경우, 해당 LCU에서는 strong filter를 사용할 경우, p0, p1, q0, q1, q2 pixel만 filtering을 수행한다.
p0’ = Clip1Y( ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3 )
p1’ = Clip1Y( ( p2 + p1 + p0 + q0 + 2 ) >> 2 )
q0’ = Clip1Y( ( p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 ) >> 3 )
q1’ = Clip1Y( ( p0 + q0 + q1 + q2 + 2 ) >> 2 )
q2’ = Clip1Y( ( p0 + q0 + q1 + 3*q2 + 2*q3 + 4 ) >> 3 )
II. 제안 방법
LCU boundary에서 메모리를 줄이기 위해 2 pixel만 사용하기 때문에, strong filter를 사용하지 않고 weak filter만 사용하는 방법을 사용할 수 있다. 이 경우 strong/weak filter decision logic이 필요 없어지기 때문에 JCTVC-G320과 대비하여 연산량이 줄어들게 된다. 또한 메모리 requirement를 줄이기 위해서, horizontal LCU edge에서는 p0, q0, q1, q2만 filtering하는 방법을 제안하고자 한다. 이 경우에는 strong / weak filter decision을 수행 하여, 그 결과에 따라 strong filtering을 수행하거나 weak filtering을 수행할 수 있다. Strong filter를 적용 할 때의 방법은 다음과 같다.
p0’ = Clip1Y( ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3 )
q0’ = Clip1Y( ( p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 ) >> 3 )
q1’ = Clip1Y( ( p0 + q0 + q1 + q2 + 2 ) >> 2 )
q2’ = Clip1Y( ( p0 + q0 + q1 + 3*q2 + 2*q3 + 4 ) >> 3 )
weak filter가 사용 되는 경우는 다음과 같이 적용 될 수 있다.
Figure pat00001
= Clip3( -tc, tc,
Figure pat00002
)
p0’ = Clip1Y( p0 +
Figure pat00003
)
q0’ = Clip1Y( q0 -
Figure pat00004
)
q = Clip3( -(tc >> 1), tc >> 1, ( ( ( q2 + q0 + 1 ) >> 1 ) - q1 -
Figure pat00006
) >>1 )
q1’ = Clip1Y( q1 +
Figure pat00007
q )
III. 인코딩 프로세스
1. 현재 프레임의 새로운 코딩유닛(CU)이 입력된다.
A. 하나의 Inter CU는 여러 개의 Inter PU로 구성되며, 2가지의 예측모드(PredMode), MODE_SKIP와 MODE_INTER를 가진다. MODE_SKIP의 경우 더 작은 PU로 분할되지 않으며, 파티션모드(PartMode)가 PART_2Nx2N인 PU의 모션정보가 할당된다.
B. MODE_INTER CU인 경우에는 4가지 형태의 PU 파티션으로 존재할 수 있으며, CU 레벨의 신택스에 PredMode==MODE_INTER와 파티션 형태를 나타내는 PartMode==PART_2Nx2N 또는 PART_2NxN, PART_Nx2N, PART_NxN이 시그널링된다.
2. 현재 Inter PU에 대해 모션예측을 수행한다.
A. CU가 여러 개의 PU로 파티션 되면 현재 부호화될 PU가 입력된다.
B. 현재의 PU에 대해 이전 프레임, 또는 이전 및 이후 프레임을 이용하여 모션예측을 수행한다. 모션예측을 통해 현재의 PU에 대한 모션정보 {모션벡터, 참조픽처인덱스, 예측방향 인덱스}를 구한다.
3. 현재 Inter PU의 모션예측값(MVP)을 구한다.
A. 현재 PU의 모션정보는 그대로 보내지 않고, 압축효율을 높이기 위하여 시공간적으로 인접한 블록들로부터 얻은 예측값과의 차이를 보낸다. 예측모드의 종류에는 Merge 모드와 AMVP 모드가 있다.
B. 모션예측값을 구하기 위해 Merge 후보리스트와 AMVP 후보리스트를 작성한다.
C. Merge 모드는 시공간적으로 현재 PU와 인접한 블록들의 모션정보로부터 Merge 후보들을 구한다. 후보들 중 현재 PU의 모션정보와 같은 후보가 있으면, Merge 모드를 사용한다는 플래그와 그 후보의 인덱스를 전송한다.
i. 계산된 참조픽처인덱스(refIdxLX)를 이용하여 가용한 Temporal 모션벡터 예측값을 구한다.
ii. Merge 후보 리스트(MergeCandList)를 작성한다.
iii. 현재 PU와 같은 모션정보를 가지는 후보가 있으면, Merge_Flag=1로 세팅하고, 그 후보의 인덱스(Merge_Idx)를 부호화한다.
D. AMVP 모드는 시공간적으로 현재 PU와 인접한 블록들의 모션정보로부터 AMVP 후보들을 구한다.
i. Luma 모션벡터 예측값(mvpLX)을 구한다.
1) 인접 PU들로부터 Spatial 모션벡터후보(MVP)를 추출한다.
2) 모션추정 프로세스에서 구해진 RefIdxLX을 가지고 Co-located 블록의 Temporal 모션벡터후보를 추출한다.
3) MVP 리스트 (mvpListLX)를 작성한다. 모션벡터의 우선순위는 다음과 같다. 단 가용한 벡터에 한정한다.
A) 왼쪽 인접블럭 (mvLXA)
B) 상위 인접블럭 (mvLXB)
C) Temporal Co-located 블록의 모션벡터 (mvLXCol)
4) 여러 개의 모션벡터가 동일한 값을 가지면, 가장 우선순위가 높은 것을 제외한 모든 모션벡터를 리스트에서 삭제한다.
5) mvListLX 내 모션후보들 중 best predictor의 모션벡터를 mvpLX에 할당한다. Best Predictor는 코스트함수 JMot SAD를 최소화하는 후보블럭이다.
4. 현재 PU의 모션정보를 부호화한다.
A. Merge 모드의 경우, Merger 후보들 중 현재 PU와 같은 모션정보를 가진 후보가 존재하면 현재 PU를 Merge 모드로 선언하고, Merge 모드를 사용했음을 알리는 Merge_Flag와 Merge 후보들 중 어떤 후보인지를 알리는 Merge_Idx를 보낸다. 그 다음 모션보상을 한 후 현재 PU와 Merge 모드로 예측된 PU와의 차이신호(잔여신호)를 얻는다. 보내야 할 잔여신호가 없을 때는 Merge_SKIP 모드로 보낸다.
B. 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) x B(n,n) x T(n,n)T
C. 변환계수를 양자화한다.
7. Residual 신호와 변환계수 중 어떤 것을 전송할 지 RDO를 통해 결정한다.
A. 예측이 잘된 경우 변환부호화 하지 않고 Residual 신호를 그대로 전송할 수 있다.
B. 변환부호화 전/후 코스트함수를 비교하여 코스트가 minimize되는 방법을 선택한다.
C. 현재 블록에 대해 전송할 신호의 타입(Residual 또는 변환계수)을 시그널링한다.
8. 변환계수를 스캔한다.
9. 스캔된 변환계수와 Inter 예측모드를 엔트로피 부호화한다.
10. Prediction 신호와 residual 신호를 합하여 reconstructed 신호를 얻게 되고, 이 신호에 deblocking filtering을 수행한다.
A. Horizontal LCU boundary에서는 strong / weak filter decision을 수행하지 않는다.
B. P block에서 1 pixel만 filtering을 수행한다.
IV. 디코딩 프로세스
1. 수신된 비트스트림을 엔트로피 복호화한다.
A) VLC 테이블로부터 블록타입을 알아내고, 현재 블록의 예측모드를 얻는다.
B) 현재 블록에 대해 전송되어 온 신호가 Residual 인지, 아니면 변환계수인지 타입을 알아낸다.
C) 현재 블록에 대한 Residual 신호나 변환계수를 얻는다.
2. Inter Prediction의 partition type에 따라 scan 방법을 결정한다.
3. 엔트로피 복호화된 Residual 신호나 변환계수를 역스캔(inverse scan)하여 2차원 블록을 생성한다.
A. Residual 신호의 경우, Residual 블록을 생성한다.
B. 변환계수인 경우, 변환블록을 생성한다.
4. 변환계수인 경우, 역양자화, 역변환을 하여 Residual 블록을 얻는다.
A. B(n,n)=T(n,n) x C(n,n) x T(n,n)T.
B. 역변환을 통해 Residual 신호를 얻는다.
5. Inter 예측을 수행한다.
A. Merge 모드의 경우
i. PredMode==MODE_SKIP && Merge_Flag==1이면 Merge 모드를 통해 Luma 모션벡터(mvLX), 참조픽처인덱스(refIdxLX)를 구해야 한다.
ii. 이 정보들을 구하기 위해 인접 PU 파티션들로부터 Merge 후보를 추출한다.
iii. 현재 PU의 Temporal Merge 후보를 구하기 위해 참조픽처인덱스(refIdxLX)를 구한다.
iv. 계산된 참조픽처인덱스(redIdxLX)를 이용하여, 가용한 Temporal 모션벡터예측값(MVP)을 구한다.
v. MergeCandList 내의 후보갯수(NumMergeCand)가 ‘1’이면 Merge_Idx=1로 세팅하고, 그렇지 않으면 Merge_Idx를 수신한 Merge 인덱스값으로 세팅한다. 이 인덱스값이 가리키는 후보의 모션벡터(mvLX)와 참조픽처인덱스(refIdxLX)를 추출하여, 이동보상에 사용한다.
B. AMVP 모드의 경우
i. Merge 모드가 아니면, 현재 PU의 참조픽처인덱스(refIdxLX)를 추출한다.
ii. 참조픽처인덱스를 이용하여 Luma 모션벡터예측값(mvpLX)을 구한다.
1) 인접 PU들로부터 Spatial 모션벡터후보(MVP)를 추출한다.
2) 참조픽처인덱스가 가리키는 Co-located 블록의 Temporal MVP를 추출한다.
3) MVP 리스트 (mvpListLX)를 작성한다. 모션벡터의 우선순위는 다음과 같다. 단 가용한 벡터에 한정한다.
A) 왼쪽 인접블럭 (mvLXA)
B) 상위 인접블럭 (mvLXB)
C) Temporal Co-located 블록의 모션벡터 (mvLXCol)
4) 여러 개의 모션벡터가 동일한 값을 가지면, 가장 우선순위가 높은 것을 제외한 모든 모션벡터를 리스트에서 삭제한다.
5) mvpListLX 안에 있는 Mvp 후보의 개수 (NumMVPCand(LX))가 ‘1’이면, mvpIdx=0으로 세팅하고, ‘1’이 아니면(즉 후보가 2개 이상이면) mpvIdx를 수신한 인덱스값으로 세팅한다.
6) mvListLX 내 모션후보들 중 mvpIdx가 가리키는 모션벡터를 mvpLX에 할당한다.
7) `모션벡터 mvLX를 계산한다.
A) mvLX[0] = mvdLX[0] + mvpLX[0] ; x 방향
B) mvLX[1] = mvdLX[1] + mvpLX[1] ; y 방향
6. Residual 신호와 이전 프레임의 신호를 더하여 재생신호를 생성한다.
A. 계산된 모션벡터를 이용하여 이전 프레임에서 이동보상된 예측신호과 디코딩된 현재 PU의 잔여신호를 더해서 재생신호를 생성한다.
7. Prediction 신호와 residual 신호를 합하여 reconstructed 신호를 얻게 되고, 이 신호에 deblocking filtering을 수행한다.
A. Horizontal LCU boundary에서는 strong / weak filter decision을 수행하지 않는다.
B. P block에서 1 pixel만 filtering을 수행한다.

Claims (1)

  1. LCU boundary에서의 deblocking filtering 방법.
KR1020120004027A 2012-01-12 2012-01-12 LCU boundary에서의 deblocking filtering 방법 KR20130083314A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120004027A KR20130083314A (ko) 2012-01-12 2012-01-12 LCU boundary에서의 deblocking filtering 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120004027A KR20130083314A (ko) 2012-01-12 2012-01-12 LCU boundary에서의 deblocking filtering 방법

Publications (1)

Publication Number Publication Date
KR20130083314A true KR20130083314A (ko) 2013-07-22

Family

ID=48994421

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120004027A KR20130083314A (ko) 2012-01-12 2012-01-12 LCU boundary에서의 deblocking filtering 방법

Country Status (1)

Country Link
KR (1) KR20130083314A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113316933A (zh) * 2019-01-17 2021-08-27 北京字节跳动网络技术有限公司 使用运动预测进行去方块滤波

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113316933A (zh) * 2019-01-17 2021-08-27 北京字节跳动网络技术有限公司 使用运动预测进行去方块滤波

Similar Documents

Publication Publication Date Title
KR102549022B1 (ko) 영상 부호화/복호화 방법
KR102531738B1 (ko) 영상 부호화/복호화 방법 및 장치
JP7177229B2 (ja) 画像復号方法、画像符号化方法及び記録媒体
KR20230037530A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR101316060B1 (ko) 인터 예측 부호화된 동영상 복호화 방법
KR20170058838A (ko) 화면간 예측 향상을 위한 부호화/복호화 방법 및 장치
EP3754990A1 (en) Method for inducing a merge candidate block
KR20130050149A (ko) 인터 모드에서의 예측 블록 생성 방법
KR102354628B1 (ko) 부호화 트리 유닛 및 부호화 유닛의 처리를 수행하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치
KR20190029748A (ko) 영상 코딩 시스템에서 인터 예측 방법 및 장치
KR20210034534A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20130067280A (ko) 인터 예측 부호화된 동영상 복호화 방법
KR102510696B1 (ko) 병렬 처리를 위한 움직임 정보를 처리하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치
KR20130002242A (ko) 영상 정보의 부호화 방법 및 복호화 방법
KR20130083314A (ko) LCU boundary에서의 deblocking filtering 방법
KR20130084053A (ko) Sample Adaptive Offset(SAO)에서의 edge offset prediction simplification 방법
KR20130084054A (ko) Sample Adaptive Offset(SAO)에서의 edge offset 성능향상 방법
KR20130002221A (ko) Inter 예측에서의 MVP후보 결정 방법
KR20130084052A (ko) Sample Adaptive Offset(SAO)에서의 diagonal edge offset을 이용한 성능향상 방법
KR20230074682A (ko) 영상 부호화/복호화 방법 및 장치
KR20130083313A (ko) Asymmetric motion partition에서의 deblocking filtering 방법
KR20130050851A (ko) 서브블록을 이용한 변환 계수 부호화 방법

Legal Events

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