KR20130084052A - Sample Adaptive Offset(SAO)에서의 diagonal edge offset을 이용한 성능향상 방법 - Google Patents

Sample Adaptive Offset(SAO)에서의 diagonal edge offset을 이용한 성능향상 방법 Download PDF

Info

Publication number
KR20130084052A
KR20130084052A KR1020120004755A KR20120004755A KR20130084052A KR 20130084052 A KR20130084052 A KR 20130084052A KR 1020120004755 A KR1020120004755 A KR 1020120004755A KR 20120004755 A KR20120004755 A KR 20120004755A KR 20130084052 A KR20130084052 A KR 20130084052A
Authority
KR
South Korea
Prior art keywords
offset
sao
edge offset
diagonal edge
merge
Prior art date
Application number
KR1020120004755A
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 KR1020120004755A priority Critical patent/KR20130084052A/ko
Publication of KR20130084052A publication Critical patent/KR20130084052A/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/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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder

Landscapes

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

Abstract

SAO는 reconstructed 영상에 original 영상과 reconstructed 영상의 차분의 평균값 (DC값)을 더해서 coding error를 줄이는 방법이다. HM5에서의 edge offset은 4개의 category로 구성되어 있다. 그러나 이 경우에는 diagonal 형태의 edge offset은 포함하고 있지 않다. 본 발명에서는 diagonal 형태의 edge offset을 추가하여 SAO의 성능을 높이는 방법을 제시하고자 한다.

Description

Sample Adaptive Offset(SAO)에서의 diagonal edge offset을 이용한 성능향상 방법{.}
본 발명은 Sample Adaptive Offset(SAO)에서의 diagonal edge offset을 이용한 성능향상 방법에 관한 것이다.
SAO는 reconstructed 영상에 original 영상과 reconstructed 영상의 차분의 평균값 (DC값)을 더해서 coding error를 줄이는 방법이다. HM5에서의 edge offset은 4개의 category로 구성되어 있다. 그러나 이 경우에는 diagonal 형태의 edge offset은 포함하고 있지 않다. 본 발명에서는 diagonal 형태의 edge offset을 추가하여 SAO의 성능을 높이는 방법을 제시하고자 한다.
본 발명은 Sample Adaptive Offset(SAO)에서의 diagonal edge offset을 이용한 성능향상 방법을 제공한다.
본 발명의 일 실시예에 따르면 Sample Adaptive Offset(SAO)에서의 diagonal edge offset을 이용한 성능향상 방법이 제공된다.
본 발명에 따르면 Sample Adaptive Offset(SAO)에서의 diagonal edge offset을 이용하여 성능을 향상시킬 수 있다.
도 1은 HM5의 Edge offset category이다.
도 2는 Diagonal Edge offset을 추가한 SAO edge offset category이다.
I. HM5에서의 edge offset 적용 방법
HM5에서의 SAO에서는 edge offset과 band offset으로 나누어 진다. 그 중 edge offset은 총 4개의 category로 나누어 진다. 도 1은 각 edge offset category를 도식으로 나타내고 있다. 각 category별로 offset 값이 정해져 있다.
아래는 HM5에서의 SAO process를 나타내고 있다.
HM5.0
Depending on the value of saoTypeIdx, the following applies:
- If saoTypeIdx is equal to one of the values of 1, 2, 3 or 4, the following ordered steps apply:
1. Arrays hPos[2] and vPos[2] are specified in Table 8-16.
2. A variable edgeIdx is specified as
edgeIdx = 2 + ∑k( Sign( recPicture[ xC + i, yC + j ] -
recPicture[ xC + i + hPos[ k ], yC + j + vPos[ k ] ] ) ) with k = 0..1
3. The reconstructed picture buffer is modified as
recSaoPicture[ xC + i, yC + j ] = recPicture[ xC + i, yC + j ] + saoValueArray[ edgeTable[ edgeIdx ] ]
with i = 0..nS-1 and j = 0..nS-1 where edgeTable[5] = { 1, 2, 0, 3, 4}.
[Table 8-16] Specification of hPos[2] and vPos[2] according to the type of sample adaptive offset process
Figure pat00001
saoValueArray set equal to SaoOffsetVal[ cIdx ][ saoDepth ][ rx ][ ry ]
An array SaoOffsetVal is specified as
SaoOffsetVal[ cIdx ][ saoDepth ][ rx ][ ry ][ 0 ] = 0
SaoOffsetVal[ cIdx ][ saoDepth ][ rx ][ ry ][ i + 1 ] =
sao_offset[ cIdx ][ saoDepth ][ rx ][ ry ][ i ] << ( bitDepth - Min( bitDepth, 10 ) )
with i = 0..NumSaoCategory - 1
The number of categories, NumSaoClass, is specified in Table 7-7.
[Table 7-7] Specification of NumSaoClass
Figure pat00002
II. 제안 방법
1. Diagonal edge offset을 이용한 성능향상 방법
기존 edge offset의 4개 category에 현재 pixel을 중심으로 monotone decreasing하거나 monotone increasing하는 diagonal edge offset을 추가하여 SAO의 성능을 향상 시키는 방법을 본 발명에서 제시하고자 한다. 추가된 diagonal edge offset은 도 2의 category 5형태를 가진다.
본 발명에서 제안하는 SAO process는 다음과 같다.
Depending on the value of saoTypeIdx, the following applies:
- If saoTypeIdx is equal to one of the values of 1, 2, 3 or 4, the following ordered steps apply:
1. Arrays hPos[2] and vPos[2] are specified in Table 8-16.
2. A variable edgeIdx is specified as
edgeIdx = 2 + ∑k( Sign( recPicture[ xC + i, yC + j ] -
recPicture[ xC + i + hPos[ k ], yC + j + vPos[ k ] ] ) ) with k = 0..1
3. The reconstructed picture buffer is modified as
recSaoPicture[ xC + i, yC + j ] = recPicture[ xC + i, yC + j ] + saoValueArray[ edgeTable[ edgeIdx ] ]
with i = 0..nS-1 and j = 0..nS-1 where edgeTable[5] = { 1, 2, 5, 3, 4}.
[Table 8-16] Specification of hPos[2] and vPos[2] according to the type of sample adaptive offset process
Figure pat00003
An array SaoOffsetVal is specified as
SaoOffsetVal[ cIdx ][ saoDepth ][ rx ][ ry ][ 0 ] = 0
SaoOffsetVal[ cIdx ][ saoDepth ][ rx ][ ry ][ i + 1 ] =
sao_offset[ cIdx ][ saoDepth ][ rx ][ ry ][ i ] << ( bitDepth - Min( bitDepth, 10 ) )
with i = 0..NumSaoCategory - 1
The number of categories, NumSaoClass, is specified in Table 7-7.
[Table 7-7] Specification of NumSaoClass
Figure pat00004
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을 수행한다.
11. Deblocking filtering을 수행한 reconstructed 신호에 Sample Adaptive Offset(SAO)를 적용한다.
A. Diagonal Edge offset을 포함한 5개의 edge offset과 2개의 band offset을 이용하여 SAO를 수행한다.
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을 수행한다.
8. Deblocking filtering을 수행한 reconstructed 신호에 Sample Adaptive Offset(SAO)를 적용한다.
A. Diagonal Edge offset을 포함한 5개의 edge offset과 2개의 band offset을 이용하여 SAO를 수행한다.

Claims (1)

  1. Sample Adaptive Offset(SAO)에서의 diagonal edge offset을 이용한 성능향상 방법.
KR1020120004755A 2012-01-16 2012-01-16 Sample Adaptive Offset(SAO)에서의 diagonal edge offset을 이용한 성능향상 방법 KR20130084052A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120004755A KR20130084052A (ko) 2012-01-16 2012-01-16 Sample Adaptive Offset(SAO)에서의 diagonal edge offset을 이용한 성능향상 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120004755A KR20130084052A (ko) 2012-01-16 2012-01-16 Sample Adaptive Offset(SAO)에서의 diagonal edge offset을 이용한 성능향상 방법

Publications (1)

Publication Number Publication Date
KR20130084052A true KR20130084052A (ko) 2013-07-24

Family

ID=48994819

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120004755A KR20130084052A (ko) 2012-01-16 2012-01-16 Sample Adaptive Offset(SAO)에서의 diagonal edge offset을 이용한 성능향상 방법

Country Status (1)

Country Link
KR (1) KR20130084052A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243985A (zh) * 2014-09-29 2014-12-24 北方工业大学 Hevc中的样本自适应补偿

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243985A (zh) * 2014-09-29 2014-12-24 北方工业大学 Hevc中的样本自适应补偿
CN104243985B (zh) * 2014-09-29 2018-05-08 北方工业大学 Hevc中的样本自适应补偿

Similar Documents

Publication Publication Date Title
KR102531738B1 (ko) 영상 부호화/복호화 방법 및 장치
AU2016200532B2 (en) Method for encoding image, method for decoding image, image encoder, and image decoder
US20180007388A1 (en) Image encoding method and image decoding method
KR101316060B1 (ko) 인터 예측 부호화된 동영상 복호화 방법
KR20190029748A (ko) 영상 코딩 시스템에서 인터 예측 방법 및 장치
US11671584B2 (en) Inter-prediction method and video decoding apparatus using the same
KR20130067280A (ko) 인터 예측 부호화된 동영상 복호화 방법
KR102510696B1 (ko) 병렬 처리를 위한 움직임 정보를 처리하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치
KR20130002242A (ko) 영상 정보의 부호화 방법 및 복호화 방법
KR20210142009A (ko) 블록 사이즈를 기반으로 bdpcm 을 수행하는 영상 디코딩 방법 및 그 장치
KR20220110834A (ko) 영상 디코딩 방법 및 그 장치
KR20220017426A (ko) 크로마 성분에 대한 영상 디코딩 방법 및 그 장치
KR20210154991A (ko) 크로마 성분에 대한 영상 디코딩 방법 및 그 장치
JP7326585B2 (ja) 画像デコード方法及びその装置
KR20130084054A (ko) Sample Adaptive Offset(SAO)에서의 edge offset 성능향상 방법
KR20130084053A (ko) Sample Adaptive Offset(SAO)에서의 edge offset prediction simplification 방법
KR20220003119A (ko) 크로마 양자화 파라미터 데이터에 대한 영상 디코딩 방법 및 그 장치
KR20220003118A (ko) 영상 디코딩 방법 및 그 장치
KR20130084052A (ko) Sample Adaptive Offset(SAO)에서의 diagonal edge offset을 이용한 성능향상 방법
KR20130002221A (ko) Inter 예측에서의 MVP후보 결정 방법
KR20130083314A (ko) LCU boundary에서의 deblocking filtering 방법
KR20130039429A (ko) MVD를 이용한 bi-predictive temporal motion vector derivation 방법
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