KR20130084054A - Sample Adaptive Offset(SAO)에서의 edge offset 성능향상 방법 - Google Patents

Sample Adaptive Offset(SAO)에서의 edge offset 성능향상 방법 Download PDF

Info

Publication number
KR20130084054A
KR20130084054A KR1020120004757A KR20120004757A KR20130084054A KR 20130084054 A KR20130084054 A KR 20130084054A KR 1020120004757 A KR1020120004757 A KR 1020120004757A KR 20120004757 A KR20120004757 A KR 20120004757A KR 20130084054 A KR20130084054 A KR 20130084054A
Authority
KR
South Korea
Prior art keywords
offset
sao
category
recpicture
edge
Prior art date
Application number
KR1020120004757A
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 KR1020120004757A priority Critical patent/KR20130084054A/ko
Publication of KR20130084054A publication Critical patent/KR20130084054A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65DCONTAINERS FOR STORAGE OR TRANSPORT OF ARTICLES OR MATERIALS, e.g. BAGS, BARRELS, BOTTLES, BOXES, CANS, CARTONS, CRATES, DRUMS, JARS, TANKS, HOPPERS, FORWARDING CONTAINERS; ACCESSORIES, CLOSURES, OR FITTINGS THEREFOR; PACKAGING ELEMENTS; PACKAGES
    • B65D5/00Rigid or semi-rigid containers of polygonal cross-section, e.g. boxes, cartons or trays, formed by folding or erecting one or more blanks made of paper
    • B65D5/38Drawer-and-shell type containers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65DCONTAINERS FOR STORAGE OR TRANSPORT OF ARTICLES OR MATERIALS, e.g. BAGS, BARRELS, BOTTLES, BOXES, CANS, CARTONS, CRATES, DRUMS, JARS, TANKS, HOPPERS, FORWARDING CONTAINERS; ACCESSORIES, CLOSURES, OR FITTINGS THEREFOR; PACKAGING ELEMENTS; PACKAGES
    • B65D5/00Rigid or semi-rigid containers of polygonal cross-section, e.g. boxes, cartons or trays, formed by folding or erecting one or more blanks made of paper
    • B65D5/42Details of containers or of foldable or erectable container blanks
    • B65D5/44Integral, inserted or attached portions forming internal or external fittings
    • B65D5/48Partitions
    • B65D5/48024Partitions inserted
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65DCONTAINERS FOR STORAGE OR TRANSPORT OF ARTICLES OR MATERIALS, e.g. BAGS, BARRELS, BOTTLES, BOXES, CANS, CARTONS, CRATES, DRUMS, JARS, TANKS, HOPPERS, FORWARDING CONTAINERS; ACCESSORIES, CLOSURES, OR FITTINGS THEREFOR; PACKAGING ELEMENTS; PACKAGES
    • B65D77/00Packages formed by enclosing articles or materials in preformed containers, e.g. boxes, cartons, sacks or bags
    • B65D77/02Wrapped articles enclosed in rigid or semi-rigid containers

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Sample Adaptive Offset(SAO)에서의 edge offset 성능향상 방법.

Description

Sample Adaptive Offset(SAO)에서의 edge offset 성능향상 방법 {.}
본 발명은 영상 처리에 관한 것이다.
SAO는 reconstructed 영상에 original 영상과 reconstructed 영상의 차분의 평균값 (DC값)을 더해서 coding error를 줄이는 방법이다.
본 발명의 기술적 과제는 Sample Adaptive Offset(SAO)에서의 edge offset 성능향상 방법을 제공함에 있다.
Sample Adaptive Offset(SAO)에서의 edge offset 성능향상 방법.
영상 부호화/복호화 성능이 향상된다.
도 1 HM5의 Edge offset category
도 2 JCTVC-G680에서의 edge offset 적용방법
도 3 Level 값 차이에 따른 edge offset 적용방법
도 4 Edge영역을 고려한 edge offset category 별 offset 적용 방법
SAO는 reconstructed 영상에 original 영상과 reconstructed 영상의 차분의 평균값 (DC값)을 더해서 coding error를 줄이는 방법이다. SAO 적용 시, 가끔 salt & pepper 형태의 error가 나타나는 현상을 극복하기 위해 JCTVC-G680에서는 SAO의 edge offset에 따라 category 1 과 category 2에서는 positive sign offset만 사용하고, category 2 와 category 3에서는 negative sign offset만을 사용하는 방법을 제시하였다. JCTVC-G680의 방법은 edge 주변의 값을 smoothing 시켜주는 효과가 있다. 이 경우에 edge 주변이 너무 뭉개지는 효과가 있다. SAO 적용 시 edge 성분이 강한 경우에는 JCTVC-G680처럼 smoothing을 시켜줄 경우 원본 영상에 비해 너무 뭉개지는 단점이 있다. 본 발명에서는 edge 성분이 강한 경우에는 high pass filtering을 적용시켜 visual artifact 제거 및 성능향상을 시키는 방법을 제시하고자 한다.
I. 기존 방법
1. SAO의 visual artifact를 없애기 위한 Category 별 edge offset sign 적용 방법[JCTVC-G680]
HM5에서의 SAO에서는 edge offset과 band offset으로 나누어 진다. 그 중 edge offset이 적용된 경우에 각 category별로 offset 값을 더해서, reconstructed 영상을 변형시켜준다. 이 때 종종 visual artifact가 발생하게 되는데, 분석 결과 edge offset이 category 1 이거나 category 2일 때, offset 값이 음수이거나, category 3이나 category 4일 때, offset 값이 양수일 때 발생한다고 분석하였다.
도 1 HM5의 Edge offset category
아래는 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 (8-463)
3. The reconstructed picture buffer is modified as
recSaoPicture[ xC + i, yC + j ] = recPicture[ xC + i, yC + j ] + saoValueArray[ edgeTable[ edgeIdx ] ] (8-463)
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 (7-10)
SaoOffsetVal[ cIdx ][ saoDepth ][ rx ][ ry ][ i + 1 ] =
sao_offset[ cIdx ][ saoDepth ][ rx ][ ry ][ i ] << ( bitDepth - Min( bitDepth, 10 ) )
with i = 0..NumSaoCategory - 1 (7-10)
The number of categories, NumSaoClass, is specified in Table 7-7.
Table 7-7 - Specification of NumSaoClass
Figure pat00002

이를 극복하기 위해서 JCTVC-G680에서는 다음과 같이 제안하였다.
JCTVC-G680
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 (8-463)
3. The reconstructed picture buffer is modified as
i. If saoTypeIdx equals to 1 or 2 , then
recSaoPicture[ xC + i, yC + j ] = recPicture[ xC + i, yC + j ] + saoValueArray[ edgeTable[ edgeIdx ] ] (8-463)
with i = 0..nS-1 and j = 0..nS-1 where edgeTable[5] = { 1, 2, 0, 3, 4}.
i. If saoTypeIdx equals to 3 or 4 , then
recSaoPicture[ xC + i, yC + j ] = recPicture[ xC + i, yC + j ] - saoValueArray[ edgeTable[ edgeIdx ] ] (8-463)
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 pat00003

saoValueArray values are positive for all case. That is, sao_offset values are positive
saoValueArray set equal to SaoOffsetVal[ cIdx ][ saoDepth ][ rx ][ ry ]
An array SaoOffsetVal is specified as
SaoOffsetVal[ cIdx ][ saoDepth ][ rx ][ ry ][ 0 ] = 0 (7-10)
SaoOffsetVal[ cIdx ][ saoDepth ][ rx ][ ry ][ i + 1 ] =
sao_offset[ cIdx ][ saoDepth ][ rx ][ ry ][ i ] << ( bitDepth - Min( bitDepth, 10 ) )
with i = 0..NumSaoCategory - 1 (7-10)
The number of categories, NumSaoClass, is specified in Table 7-7.
Table 7-8 - Specification of NumSaoClass
Figure pat00004

도 2는 JCTVC-G680에서의 edge offset 적용 방법을 도식으로 나타내고 있다.
도 2 JCTVC-G680에서의 edge offset 적용방법
II. 제안 방법
1 주변 pixel간의 level 값 차이에 따른 적응적 edge offset 적용 방법
기존 JCTVC-G680에서 제시한 방법대로 edge offset을 적용할 경우, 실제 edge가 뚜렷하게 나타나는 지역이고 high frequency 영역을 더 보강해 주어야 하는 영상에서 smoothing이 되어서, 실제 영상보다 blurring되는 경우가 발생한다. 본 발명에서는 주변 pixel과의 값 차이가 임계값 보다 큰 경우에는 영상이 edge가 뚜렷하기 때문에 high freuqency를 더 보강해 주어야 하는 영역이라고 간주하고, category 1과 category 2에서 negative offset value를 더해주고 category 3와 category 4에서는 positive offset value를 더해주는 방법을 사용하여 visual artifact를 줄이는 방법을 제시하고자 한다.
Edge offset의 경우, 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 (8-463)
3. The reconstructed picture buffer is modified as
i. If saoTypeIdx equals to 1 or 2 , |recPicture[ xC + i, yC + j ] -recPicture[ xC + i + hPos[ k ], yC + j + vPos[ k ]| < T with k = 0, 1 and for some threshold T, then
recSaoPicture[ xC + i, yC + j ] = recPicture[ xC + i, yC + j ] + saoValueArray[ edgeTable[ edgeIdx ] ] (8-463)
with i = 0..nS-1 and j = 0..nS-1 where edgeTable[5] = { 1, 2, 0, 3, 4}.
ii. If saoTypeIdx equals to 1 or 2 , |recPicture[ xC + i, yC + j ] -recPicture[ xC + i + hPos[ k ], yC + j + vPos[ k ]| >= T with k = 0, 1 and for some threshold T, then
recSaoPicture[ xC + i, yC + j ] = recPicture[ xC + i, yC + j ] - saoValueArray[ edgeTable[ edgeIdx ] ] (8-463)
with i = 0..nS-1 and j = 0..nS-1 where edgeTable[5] = { 1, 2, 0, 3, 4}.
iii. If saoTypeIdx equals to 3 or 4 , |recPicture[ xC + i, yC + j ] -recPicture[ xC + I + hPos[ k ], yC + j + vPos[ k ]| < T with k = 0, 1 and for some threshold T, then
recSaoPicture[ xC + i, yC + j ] = recPicture[ xC + i, yC + j ] - saoValueArray[ edgeTable[ edgeIdx ] ] (8-463)
with i = 0..nS-1 and j = 0..nS-1 where edgeTable[5] = { 1, 2, 0, 3, 4}.
iv. If saoTypeIdx equals to 3 or 4 , |recPicture[ xC + i, yC + j ] +recPicture[ xC + i + hPos[ k ], yC + j + vPos[ k ]| >= T with k = 0, 1 and for some threshold T, then
recSaoPicture[ xC + i, yC + j ] = recPicture[ xC + i, yC + j ] + saoValueArray[ edgeTable[ edgeIdx ] ] (8-463)
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 pat00005

saoValueArray values are positive for all case. That is, sao_offset values are positive
saoValueArray set equal to SaoOffsetVal[ cIdx ][ saoDepth ][ rx ][ ry ]
An array SaoOffsetVal is specified as
SaoOffsetVal[ cIdx ][ saoDepth ][ rx ][ ry ][ 0 ] = 0 (7-10)
SaoOffsetVal[ cIdx ][ saoDepth ][ rx ][ ry ][ i + 1 ] =
sao_offset[ cIdx ][ saoDepth ][ rx ][ ry ][ i ] << ( bitDepth - Min( bitDepth, 10 ) )
with i = 0..NumSaoCategory - 1 (7-10)
The number of categories, NumSaoClass, is specified in Table 7-7.
Table 7-8 - Specification of NumSaoClass
Figure pat00006

도 3은 Edge offset 적용 시, level값에 따른 SAO 적용 방법에 대한 도식을 나타낸다.
도 3 Level 값 차이에 따른 edge offset 적용방법
2Edge영역을 고려한 edge offset category 적용
Category 2와 category 3는 영상이 edge가 뚜렷할 확률이 높기 때문에 high freuqency를 더 보강해 주어야 하는 영역이라고 간주하고, 기존 JCTVC-G680에서와는 다르게 각 category 1과 category3에서는 positive edge offset을 더해 주고, category 2와 category 4는 negative edge offset을 더해주는 방법을 제시하여 visual artifact를 줄이고 압축성능을 높이고자 한다.
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 (8-463)
3. The reconstructed picture buffer is modified as
i. If saoTypeIdx equals to 1 or 3, then
recSaoPicture[ xC + i, yC + j ] = recPicture[ xC + i, yC + j ] + saoValueArray[ edgeTable[ edgeIdx ] ](8-463)
with i = 0..nS-1 and j = 0..nS-1 where edgeTable[5] = { 1, 2, 0, 3, 4}.
ii. If saoTypeIdx equals to 2 or 4 , then
recSaoPicture[ xC + i, yC + j ] = recPicture[ xC + i, yC + j ] - saoValueArray[ edgeTable[ edgeIdx ] ] (8-463)
with i = 0..nS-1 and j = 0..nS-1 where edgeTable[5] = { 1, 2, 0, 3, 4}.
saoValueArray values are positive for all case. That is, sao_offset values are positive
saoValueArray set equal to SaoOffsetVal[ cIdx ][ saoDepth ][ rx ][ ry ]
Table 8-16 - Specification of hPos[2] and vPos[2] according to the type of sample adaptive offset process
Figure pat00007

An array SaoOffsetVal is specified as
SaoOffsetVal[ cIdx ][ saoDepth ][ rx ][ ry ][ 0 ] = 0 (7-10)
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-8 - Specification of NumSaoClass
Figure pat00008

도 4 Edge영역을 고려한 edge offset category 별 offset 적용 방법
도 4는 이 장에서 제안하고 있는 edge영역을 고려한 edge offset category별 offset 적용 방법을 나타내고 있다.
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. Edge offset에서 주변 pixel과의 값 차이에 따라, positive offset을 더하거나 negative offset을 더한다.
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. Edge offset에서 주변 pixel과의 값 차이에 따라, positive offset을 더하거나 negative offset을 더한다.
9.

Claims (1)

  1. Sample Adaptive Offset(SAO)에서의 edge offset 성능향상 방법.
KR1020120004757A 2012-01-16 2012-01-16 Sample Adaptive Offset(SAO)에서의 edge offset 성능향상 방법 KR20130084054A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120004757A KR20130084054A (ko) 2012-01-16 2012-01-16 Sample Adaptive Offset(SAO)에서의 edge offset 성능향상 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120004757A KR20130084054A (ko) 2012-01-16 2012-01-16 Sample Adaptive Offset(SAO)에서의 edge offset 성능향상 방법

Publications (1)

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

Family

ID=48994821

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120004757A KR20130084054A (ko) 2012-01-16 2012-01-16 Sample Adaptive Offset(SAO)에서의 edge offset 성능향상 방법

Country Status (1)

Country Link
KR (1) KR20130084054A (ko)

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中的样本自适应补偿
GB2575119A (en) * 2018-06-29 2020-01-01 Canon Kk Methods and devices for performing sample adaptive offset (SAO) filtering

Cited By (4)

* 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中的样本自适应补偿
GB2575119A (en) * 2018-06-29 2020-01-01 Canon Kk Methods and devices for performing sample adaptive offset (SAO) filtering
GB2575119B (en) * 2018-06-29 2021-11-24 Canon Kk Methods and devices for performing sample adaptive offset (SAO) filtering

Similar Documents

Publication Publication Date Title
KR101316060B1 (ko) 인터 예측 부호화된 동영상 복호화 방법
KR20230096953A (ko) 영상 부호화/복호화 방법
EP3958560A1 (en) Apparatus for encoding a moving picture
KR101931950B1 (ko) 비디오 신호 처리 방법 및 장치
EP3360329A1 (en) Method and apparatus for intra prediction mode using intra prediction filter in video and image compression
WO2018028615A1 (en) Methods and apparatuses of predictor-based partition in video processing system
KR102354628B1 (ko) 부호화 트리 유닛 및 부호화 유닛의 처리를 수행하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치
KR20190029748A (ko) 영상 코딩 시스템에서 인터 예측 방법 및 장치
KR20130067280A (ko) 인터 예측 부호화된 동영상 복호화 방법
KR102510696B1 (ko) 병렬 처리를 위한 움직임 정보를 처리하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치
KR20130002242A (ko) 영상 정보의 부호화 방법 및 복호화 방법
US20200145649A1 (en) Method and apparatus for reducing noise in frequency-domain in image coding system
CN111052741A (zh) 基于有效传送的差分量化参数的影像编码/解码方法及装置
KR20130084054A (ko) Sample Adaptive Offset(SAO)에서의 edge offset 성능향상 방법
KR20130084053A (ko) Sample Adaptive Offset(SAO)에서의 edge offset prediction simplification 방법
KR20130084052A (ko) Sample Adaptive Offset(SAO)에서의 diagonal edge offset을 이용한 성능향상 방법
KR20130083314A (ko) LCU boundary에서의 deblocking filtering 방법
KR20130083313A (ko) Asymmetric motion partition에서의 deblocking filtering 방법
KR20200005207A (ko) 움직임 보상 및 필터링을 처리하는 영상 복호화 및 부호화 방법

Legal Events

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