KR20130083405A - 디블록킹 필터링 방법 및 그 장치 - Google Patents

디블록킹 필터링 방법 및 그 장치 Download PDF

Info

Publication number
KR20130083405A
KR20130083405A KR1020130003114A KR20130003114A KR20130083405A KR 20130083405 A KR20130083405 A KR 20130083405A KR 1020130003114 A KR1020130003114 A KR 1020130003114A KR 20130003114 A KR20130003114 A KR 20130003114A KR 20130083405 A KR20130083405 A KR 20130083405A
Authority
KR
South Korea
Prior art keywords
chroma
block
value
boundary
luma
Prior art date
Application number
KR1020130003114A
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 주식회사 케이티
Publication of KR20130083405A publication Critical patent/KR20130083405A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B07SEPARATING SOLIDS FROM SOLIDS; SORTING
    • B07BSEPARATING SOLIDS FROM SOLIDS BY SIEVING, SCREENING, SIFTING OR BY USING GAS CURRENTS; SEPARATING BY OTHER DRY METHODS APPLICABLE TO BULK MATERIAL, e.g. LOOSE ARTICLES FIT TO BE HANDLED LIKE BULK MATERIAL
    • B07B1/00Sieving, screening, sifting, or sorting solid materials using networks, gratings, grids, or the like
    • B07B1/18Drum screens
    • B07B1/22Revolving drums
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B07SEPARATING SOLIDS FROM SOLIDS; SORTING
    • B07BSEPARATING SOLIDS FROM SOLIDS BY SIEVING, SCREENING, SIFTING OR BY USING GAS CURRENTS; SEPARATING BY OTHER DRY METHODS APPLICABLE TO BULK MATERIAL, e.g. LOOSE ARTICLES FIT TO BE HANDLED LIKE BULK MATERIAL
    • B07B1/00Sieving, screening, sifting, or sorting solid materials using networks, gratings, grids, or the like
    • B07B1/42Drive mechanisms, regulating or controlling devices, or balancing devices, specially adapted for screens
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B07SEPARATING SOLIDS FROM SOLIDS; SORTING
    • B07BSEPARATING SOLIDS FROM SOLIDS BY SIEVING, SCREENING, SIFTING OR BY USING GAS CURRENTS; SEPARATING BY OTHER DRY METHODS APPLICABLE TO BULK MATERIAL, e.g. LOOSE ARTICLES FIT TO BE HANDLED LIKE BULK MATERIAL
    • B07B1/00Sieving, screening, sifting, or sorting solid materials using networks, gratings, grids, or the like
    • B07B1/46Constructional details of screens in general; Cleaning or heating of screens
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B07SEPARATING SOLIDS FROM SOLIDS; SORTING
    • B07BSEPARATING SOLIDS FROM SOLIDS BY SIEVING, SCREENING, SIFTING OR BY USING GAS CURRENTS; SEPARATING BY OTHER DRY METHODS APPLICABLE TO BULK MATERIAL, e.g. LOOSE ARTICLES FIT TO BE HANDLED LIKE BULK MATERIAL
    • B07B13/00Grading or sorting solid materials by dry methods, not otherwise provided for; Sorting articles otherwise than by indirectly controlled devices
    • B07B13/04Grading or sorting solid materials by dry methods, not otherwise provided for; Sorting articles otherwise than by indirectly controlled devices according to size
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B07SEPARATING SOLIDS FROM SOLIDS; SORTING
    • B07BSEPARATING SOLIDS FROM SOLIDS BY SIEVING, SCREENING, SIFTING OR BY USING GAS CURRENTS; SEPARATING BY OTHER DRY METHODS APPLICABLE TO BULK MATERIAL, e.g. LOOSE ARTICLES FIT TO BE HANDLED LIKE BULK MATERIAL
    • B07B13/00Grading or sorting solid materials by dry methods, not otherwise provided for; Sorting articles otherwise than by indirectly controlled devices
    • B07B13/14Details or accessories
    • B07B13/16Feed or discharge arrangements

Abstract

본 발명에 따른 디블록킹 필터링 방법은, 크로마 성분의 제1 필터링 단위 블록 내에 위치한 크로마 경계에 대해 크로마 BS 값을 결정하는 단계 및 크로마 BS 값을 기반으로 크로마 경계에 대한 디블록킹 필터링을 수행하는 단계를 포함한다.

Description

디블록킹 필터링 방법 및 그 장치 {METHOD FOR DEBLOCKING FILTERING AND APPARATUS THEREOF}
본 발명은 영상 처리에 관한 것으로서, 보다 상세하게는 디블록킹 필터링 방법 및 장치에 관한 것이다.
최근 다양한 분야에서 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 증가하고 있다.
고해상도, 고품질의 영상을 제공하기 위해서는 영상 데이터의 데이터량이 증가한다. 따라서, 기존의 영상 데이터 처리 방식과 비교할 때 고해상도, 고품질의 영상을 제공하기 위한 영상 데이터의 전송 비용과 저장 비용은 증가하게 된다. 영상 데이터가 고해상도, 고품질화 됨에 따라 발생하는 이러한 문제들을 해결하기 위해서는 고효율의 영상 압축 기술들이 활용될 수 있다.
영상 데이터를 압축하는 기술로서 현재 픽쳐에 포함된 픽셀 값을 다른 픽처로부터 예측하는 인터 예측(Inter Prediction) 방법, 현재 픽쳐 픽셀 값을 현재 픽쳐의 다른 픽셀의 정보를 이용해서 예측하는 인트라 예측(Intra Prediction) 방법, 발생 빈도 혹은 출현 빈도가 높은 신호일수록 짧은 부호를 할당해서 부호화/복호화를 수행하는 엔트로피 부호화/복호화 방법, 복원 영상에 대한 필터링 방법 등 다양한 기술이 이용되고 있다.
본 발명의 기술적 과제는 영상 부호화/복호화 효율을 향상시킬 수 있는 영상 부호화 방법 및 장치를 제공함에 있다.
본 발명의 다른 기술적 과제는 영상 부호화/복호화 효율을 향상시킬 수 있는 영상 복호화 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 영상 부호화/복호화 효율을 향상시킬 수 있는 디블록킹 필터링 방법 및 장치를 제공함에 있다.
본 발명의 일 실시 형태는 디블록킹 필터링 방법이다. 상기 방법은, 크로마(chroma) 성분을 갖는 크로마 필터링 단위 블록 내에 위치한 크로마 경계에 대해 크로마 BS(Boundary Strength) 값을 결정하는 단계 및 상기 크로마 BS 값을 기반으로 상기 크로마 경계에 대한 디블록킹 필터링(deblocking filtering)을 수행하는 단계를 포함할 수 있다. 여기서, 상기 크로마 필터링 단위 블록은 상기 크로마 BS 값이 결정되는 단위로서 상기 크로마 경계의 좌측에 인접한 크로마 블록 P 및 상기 크로마 경계의 우측에 인접한 크로마 블록 Q로 구성될 수 있고, 상기 크로마 BS 값 결정 단계에서는, 상기 크로마 블록 P 및 상기 크로마 블록 Q 중에서 적어도 하나를 기반으로 상기 크로마 BS 값을 결정할 수 있다.
상기 크로마 BS 값 결정 단계에서는, 상기 크로마 블록 P 및 상기 크로마 블록 Q 중 적어도 하나의 예측 모드에 관한 제1 정보, 및 상기 크로마 블록 P와 상기 크로마 블록 Q 중 적어도 하나의 변환 계수에 관한 제2 정보 중에서 적어도 하나를 기반으로 상기 크로마 BS 값을 결정할 수 있다.
상기 크로마 BS 값 결정 단계에서는, 상기 크로마 블록 P 또는 크로마 블록 Q의 예측 모드가 인트라 모드인 경우, 상기 크로마 BS가 가질 수 있는 값 중에서 가장 높은 값을 상기 크로마 BS 값으로 결정할 수 있다.
상기 크로마 BS 값 결정 단계에서는, 상기 크로마 블록 P 및 상기 크로마 블록 Q의 예측 모드가 모두 인트라 모드가 아닌 경우, 상기 크로마 블록 P 및 상기 크로마 블록 Q가 모두 0이 아닌 변환 계수(transform coefficient)를 포함하지 않으면 상기 크로마 BS가 가질 수 있는 값 중에서 가장 낮은 값을 상기 크로마 BS 값으로 결정하는 것을 특징으로 하는 디블록킹 필터링 방법.
상기 크로마 BS 값 결정 단계에서는, 상기 크로마 블록 P 또는 크로마 블록 Q의 예측 모드가 인트라 모드인 경우, 상기 크로마 BS 값을 2로 결정할 수 있고, 상기 크로마 블록 P 및 상기 크로마 블록 Q의 예측 모드가 모두 인트라 모드가 아닌 경우, 상기 크로마 블록 P 또는 상기 크로마 블록 Q가 0이 아닌 변환 계수(transform coefficient)를 포함하면 상기 크로마 BS 값을 1로 결정하고, 상기 크로마 블록 P 및 상기 크로마 블록 Q가 모두 0이 아닌 변환 계수를 포함하지 않으면 상기 크로마 BS 값을 0으로 결정할 수 있다.
상기 크로마 BS 값 결정 단계에서는, 루마 BS, 상기 크로마 블록 P 및 상기 크로마 블록 Q 중에서 적어도 하나를 기반으로 상기 크로마 BS 값을 결정할 수 있고, 상기 루마 BS는 상기 크로마 성분에 대응되는 루마(luma) 성분을 갖는 루마 필터링 단위 블록 내에 위치한 루마 경계의 BS일 수 있다.
상기 크로마 BS 값 결정 단계에서는, 상기 루마 BS 값에 관한 제1 정보, 및 상기 크로마 블록 P와 상기 크로마 블록 Q 중 적어도 하나의 변환 계수에 관한 제2 정보 중에서 적어도 하나를 기반으로 상기 크로마 BS 값을 결정할 수 있다.
상기 크로마 BS 값 결정 단계에서는, 상기 루마 BS 값이 2보다 크거나 같은 경우, 상기 크로마 BS가 가질 수 있는 값 중에서 가장 높은 값을 상기 크로마 BS 값으로 결정할 수 있다.
상기 크로마 BS 값 결정 단계에서는, 상기 루마 BS 값이 2보다 작은 경우, 상기 크로마 블록 P 및 상기 크로마 블록 Q가 모두 0이 아닌 변환 계수(transform coefficient)를 포함하지 않으면 상기 크로마 BS가 가질 수 있는 값 중에서 가장 낮은 값을 상기 크로마 BS 값으로 결정할 수 있다.
상기 크로마 BS 값 결정 단계에서는, 상기 루마 BS 값이 2보다 크거나 같은 경우, 상기 크로마 BS 값을 2로 결정할 수 있고, 상기 루마 BS 값이 2보다 작은 경우, 상기 크로마 블록 P 또는 상기 크로마 블록 Q가 0이 아닌 변환 계수(transform coefficient)를 포함하면 상기 크로마 BS 값을 1로 결정하고, 상기 크로마 블록 P 및 상기 크로마 블록 Q가 모두 0이 아닌 변환 계수를 포함하지 않으면 상기 크로마 BS 값을 0으로 결정할 수 있다.
본 발명의 다른 실시 형태는 디블록킹 필터링 방법이다. 상기 방법은, 크로마(chroma) 성분을 갖는 크로마 필터링 단위 블록 내에 위치한 크로마 경계에 대해 크로마 BS(Boundary Strength) 값을 결정하는 단계, 상기 크로마 성분에 대응되는 루마 성분을 갖는 루마 필터링 단위 블록 내의 소정의 위치에 존재하는 복수의 픽셀을 기반으로, 상기 크로마 경계에 대한 디블록킹 필터링 수행 여부를 결정하는 단계, 및 상기 디블록킹 필터링이 수행되는 것으로 결정된 경우, 상기 크로마 BS 값을 기반으로 상기 크로마 경계에 대한 디블록킹 필터링을 수행하는 단계를 포함할 수 있다.
상기 디블록킹 필터링 수행 여부 결정 단계에서는, 상기 소정의 위치에 존재하는 복수의 픽셀을 기반으로 결정된 변수 d 값, 및 상기 루마 성분의 양자화 파라미터(Quantization Parameter: QP)에 따라 결정된 변수 β 값을 기반으로, 상기 크로마 경계에 대한 디블록킹 필터링 수행 여부를 결정할 수 있다.
상기 크로마 필터링 단위 블록 및 상기 루마 필터링 단위 블록이 속한 슬라이스가 인트라 슬라이스(intra slice)인 경우, 상기 디블록킹 필터링 수행 여부 결정 단계에서는, 상기 변수 d 값이 상기 변수 β에 2를 곱한 값보다 작으면 상기 크로마 경계에 대해 디블록킹 필터링을 수행하는 것으로 결정할 수 있고, 상기 변수 β에 2를 곱한 값보다 크거나 같으면 상기 크로마 경계에 대해 디블록킹 필터링을 수행하지 않는 것으로 결정할 수 있다.
상기 크로마 필터링 단위 블록 및 상기 루마 필터링 단위 블록이 속한 슬라이스가 인트라 슬라이스(intra slice)가 아닌 경우, 상기 디블록킹 필터링 수행 여부 결정 단계에서는, 상기 변수 d 값이 상기 변수 β보다 작으면 상기 크로마 경계에 대해 디블록킹 필터링을 수행하는 것으로 결정할 수 있고, 상기 변수 β보다 크거나 같으면 상기 크로마 경계에 대해 디블록킹 필터링을 수행하지 않는 것으로 결정할 수 있다.
상기 변수 β 값은 상기 루마 성분의 양자화 파라미터 및 소정의 룩업 테이블(look-up table)을 기반으로 결정될 수 있고, 상기 룩업 테이블은 상기 양자화 파라미터와 상기 변수 β 간의 매핑 관계를 나타내는 테이블일 수 있다.
상기 루마 필터링 단위 블록은 상기 루마 필터링 단위 블록 내에 위치한 루마 경계의 루마 BS 값이 결정되는 단위로서, 상기 루마 경계의 좌측에 인접한 루마 블록 P 및 상기 루마 경계의 우측에 인접한 루마 블록 Q로 구성될 수 있다.
상기 루마 블록 P 및 상기 루마 블록 Q의 크기는 각각 4x4이고, 상기 루마 필터링 단위 블록은 상기 루마 블록 P 및 상기 루마 블록 Q로 구성된 8x4 크기의 블록일 수 있다.
상기 변수 d 값은 아래의 수학식에 의해 결정될 수 있다.
Figure pat00001
여기서, 상기 p20, p10 및 p00은 상기 블록 P 내의 첫 번째 행에 위치한 픽셀의 픽셀 값이고, 상기 p00은 상기 루마 경계에 가장 가까이 위치한 픽셀의 픽셀 값이고, 상기 p10는 상기 루마 경계에 두 번째로 가까이 위치한 픽셀의 픽셀 값이고, 상기 p20은 상기 루마 경계에 세 번째로 가까이 위치한 픽셀의 픽셀 값일 수 있고, 상기 q20, q10 및 q00은 상기 블록 Q 내의 첫 번째 행에 위치한 픽셀의 픽셀 값이고, 상기 q00은 상기 루마 경계에 가장 가까이 위치한 픽셀의 픽셀 값이고, 상기 q10는 상기 루마 경계에 두 번째로 가까이 위치한 픽셀의 픽셀 값이고, 상기 q20은 상기 루마 경계에 세 번째로 가까이 위치한 픽셀의 픽셀 값일 수 있으며, 상기 p23, p13 및 p03은 상기 블록 P 내의 네 번째 행에 위치한 픽셀의 픽셀 값이고, 상기 p03은 상기 루마 경계에 가장 가까이 위치한 픽셀의 픽셀 값이고, 상기 p13는 상기 루마 경계에 두 번째로 가까이 위치한 픽셀의 픽셀 값이고, 상기 p23은 상기 루마 경계에 세 번째로 가까이 위치한 픽셀의 픽셀 값일 수 있고, 상기 q23, q13 및 q03은 상기 블록 Q 내의 네 번째 행에 위치한 픽셀의 픽셀 값이고, 상기 q03은 상기 루마 경계에 가장 가까이 위치한 픽셀의 픽셀 값이고, 상기 q13는 상기 루마 경계에 두 번째로 가까이 위치한 픽셀의 픽셀 값이고, 상기 q23은 상기 루마 경계에 세 번째로 가까이 위치한 픽셀의 픽셀 값일 수 있다.
본 발명의 또 다른 실시 형태는 영상 복호화 방법이다. 상기 방법은, 부호화기로부터 수신된 비트스트림을 기반으로 영상을 복원하는 단계, 상기 복원된 영상에서 크로마(chroma) 성분을 갖는 크로마 필터링 단위 블록 내에 위치한 크로마 경계에 대해 크로마 BS(Boundary Strength) 값을 결정하는 단계, 및 상기 크로마 BS 값을 기반으로 상기 크로마 경계에 대한 디블록킹 필터링(deblocking filtering)을 수행하는 단계를 포함할 수 있다. 여기서, 상기 크로마 필터링 단위 블록은 상기 크로마 BS 값이 결정되는 단위로서 상기 크로마 경계의 좌측에 인접한 크로마 블록 P 및 상기 크로마 경계의 우측에 인접한 크로마 블록 Q로 구성될 수 있고, 상기 크로마 BS 값 결정 단계에서는, 상기 크로마 블록 P 및 상기 크로마 블록 Q 중에서 적어도 하나를 기반으로 상기 크로마 BS 값을 결정할 수 있다.
본 발명의 또 다른 실시 형태는 영상 복호화 장치이다. 상기 장치는, 부호화기로부터 수신된 비트스트림을 기반으로 영상을 복원하는 영상 복원부, 및 상기 복원된 영상에서 크로마(chroma) 성분을 갖는 크로마 필터링 단위 블록 내에 위치한 크로마 경계에 대해 크로마 BS(Boundary Strength) 값을 결정하고, 상기 크로마 BS 값을 기반으로 상기 크로마 경계에 대한 디블록킹 필터링(deblocking filtering)을 수행하는 필터부를 포함할 수 있다. 여기서, 상기 크로마 필터링 단위 블록은 상기 크로마 BS 값이 결정되는 단위로서 상기 크로마 경계의 좌측에 인접한 크로마 블록 P 및 상기 크로마 경계의 우측에 인접한 크로마 블록 Q로 구성될 수 있고, 상기 필터부는, 상기 크로마 블록 P 및 상기 크로마 블록 Q 중에서 적어도 하나를 기반으로 상기 크로마 BS 값을 결정할 수 있다.
본 발명에 따른 영상 부호화 방법에 의하면 영상 부호화/복호화 효율이 향상될 수 있다.
본 발명에 따른 영상 복호화 방법에 의하면 영상 부호화/복호화 효율이 향상될 수 있다.
본 발명에 따른 디블록킹 필터링 방법에 의하면 영상 부호화/복호화 효율이 향상될 수 있다.
도 1은 본 발명이 적용되는 비디오 부호화기의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 2는 비디오 복호화기의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 3은 본 발명이 적용되는 디블록킹 필터링 수행 과정의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 4는 디블록킹 필터가 적용되는 픽셀 블록의 실시예를 개략적으로 나타내는 도면이다.
도 5는 루마 성분에 대한 BS 결정 방법의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 6은 크로마 성분에 대한 BS 결정 방법의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 7은 크로마 성분에 대한 BS 결정 방법의 다른 실시예를 개략적으로 나타내는 흐름도이다.
도 8은 크로마 성분 경계에 대한 필터링 수행 여부 결정 과정의 일 실시예를 설명하기 위한 도면이다.
도 9는 크로마 성분 경계에 대한 필터링 수행 여부 결정 과정의 다른 실시예를 설명하기 위한 도면이다.
도 10은 크로마 성분 경계에 대한 필터링 수행 여부 결정 과정의 또 다른 실시예를 설명하기 위한 도면이다.
도 11은 본 발명의 실시예에 따른 부호화 방법을 개략적으로 나타내는 흐름도이다.
도 12는 본 발명의 실시예에 따른 복호화 방법을 개략적으로 나타내는 흐름도이다.
도 13은 인터 예측 방법의 실시예를 설명하기 위한 도면이다.
본 명세서에서 설명되는 도면상의 각 구성들은 영상 부호화/복호화기에서 서로 다른 특징적인 기능들에 관한 설명의 편의를 위해 독립적으로 도시된 것으로서, 각 구성들이 서로 별개의 하드웨어나 별개의 소프트웨어로 구현된다는 것을 의미하지는 않는다. 예컨대, 각 구성 중 두 개 이상의 구성이 합쳐져 하나의 구성을 이룰 수도 있고, 하나의 구성이 복수의 구성으로 나뉘어질 수도 있다. 각 구성이 통합 및/또는 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성 요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성 요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명이 적용되는 비디오 부호화기의 일 실시예에 따른 구성을 나타내는 블록도이다. 도 1을 참조하면, 상기 비디오 부호화기는 픽쳐 분할부(110), 인터 예측부(120), 인트라 예측부(125), 변환부(130), 양자화부(135), 역양자화부(140), 역변환부(145), 필터부(150), 메모리(155), 재정렬부(160) 및 엔트로피 부호화부(165)를 포함할 수 있다.
픽쳐 분할부(110)는 입력된 현재 픽쳐를 하나 이상의 부호화 단위로 분할할 수 있다. 부호화 유닛(Coding Unit: CU, 이하 ‘CU’라 함)은 비디오 부호화기에서 부호화가 수행되는 하나의 단위로서, 쿼드 트리 구조(Quad Tree Structure)를 기초로 깊이(depth) 정보를 가지고 계층적으로 분할될 수 있다. CU는 8×8, 16×16, 32×32, 64×64 등 다양한 크기를 가질 수 있다. 가장 큰 크기의 CU는 LCU(Largest Coding Unit)로 불릴 수 있으며, 가장 작은 크기의 CU는 SCU(Smallest Coding Unit)로 불릴 수 있다.
또한 픽쳐 분할부(110)는 CU를 분할하여 예측 유닛(Prediction Unit: PU, 이하 ‘PU’라 함)과 변환 유닛(Transdorm Unit: TU, 이하 ‘TU’라 함)을 생성할 수 있다. PU는 CU보다 작거나 같은 블록일 수 있고, 반드시 정방형일 필요는 없으며, 직사각형 형태의 블록일 수도 있다.
통상 인트라 예측은 2N*2N 또는 N*N 크기의 블록 단위로 수행될 수 있다. 여기서 N은 자연수로서 픽셀의 수를 나타내며, 2N*2N 및 N*N은 PU의 크기(및/또는 분할 모드)를 나타낼 수 있다. 또한, 인터 예측은 2N*2N, 2N*N, N*2N 또는 N*N 크기의 블록 단위로 수행될 수 있다. 여기서 N은 자연수로서 픽셀의 수를 나타내며, 2N*2N, 2N*N, N*2N 및 N*N은 PU의 크기(및/또는 분할 모드)를 나타낼 수 있다. 또한, 인터 예측에서는 인터 예측의 효율을 높이기 위해 2N*2N, 2N*N, N*2N 또는 N*N의 예측 유닛 외에 2NxnU, 2NxnD, nLx2N 또는 nRx2N의 예측 유닛 단위로 예측이 수행될 수도 있다. 여기서, 2NxnU, 2NxnD, nLx2N 및 nRx2N는 PU의 크기(및/또는 분할 모드)를 나타낼 수 있다. 2NxnU 및 2NxnD의 분할 모드에서는 PU의 크기가 2Nx(1/2)N 또는 2Nx(3/2)N일 수 있고, nLx2N 및 nRx2N의 분할 모드에서는 PU의 크기가 (1/2)Nx2N 또는 (3/2)Nx2N일 수 있다.
인터 예측(Inter Prediction) 모드에 있는 경우, 인터 예측부(120)는 움직임 추정(ME: Motion Estimation) 및 움직임 보상(MC: Motion Compensation)을 수행할 수 있다. 인터 예측부(120)는 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐 정보를 기초로 예측 블록을 생성할 수 있다.
인터 예측부(120)는 분할된 예측 대상 블록 및 메모리부(155)에 저장된 적어도 하나의 참조 블록을 기반으로 움직임 추정을 수행할 수 있다. 인터 예측부(120)는 움직임 추정의 결과로서 움직임 벡터(MV: Motion Vector), 참조 블록 인덱스 및 예측 모드 등을 포함한 움직임 정보(motion information)를 생성할 수 있다.
또한 인터 예측부(120)는 상기 움직임 정보 및 참조 블록을 이용하여 움직임 보상을 수행할 수 있다. 이 때, 인터 예측부(120)는 상기 참조 블록으로부터 입력 블록에 대응하는 예측 블록을 생성하여 출력할 수 있다.
인트라 예측(Intra Prediction) 모드의 경우, 인트라 예측부(125)는 현재 픽쳐 내의 픽셀 정보를 기초로 예측 블록을 생성할 수 있다. 인트라 예측 모드의 경우, 인트라 예측부(125)는 예측 대상 블록과 이전에 변환 및 양자화된 후 복원된 복원 블록을 기반으로 현재 블록에 대한 예측을 수행할 수 있다. 상기 복원 블록은 필터부(150)를 거치기 전의 복원된 영상일 수 있다.
상술한 바와 같이 인터 모드 또는 인트라 모드에서는 예측 대상 블록에 대한 예측이 수행되고 예측 블록이 생성될 수 있다. 이 때, 예측 대상 블록 및 생성된 예측 블록의 차분에 의해 잔차 블록이 생성될 수 있다.
변환부(130)는 TU 별로 잔차 블록에 대해 변환을 수행하여 변환 계수를 생성할 수 있다. TU는 최대 크기와 최소 크기의 범위 내에서 트리 구조(tree structure)를 가질 수 있다. TU 별로 현재 블록이 하위 블록(sub-block)으로 나누어지는지는 지시자(flag)를 통해 지시될 수 있다. 변환부(130)는 DCT(Discrete Cosine Transform) 및/또는 DST(Discrete Sine Transform) 등을 기반으로 변환을 수행할 수 있다.
양자화부(135)는 변환부(130)에서 변환된 값들을 양자화할 수 있다. 블록에 따라 또는 영상의 중요도에 따라 양자화 계수는 변할 수 있다. 양자화된 변환 계수 값은 재정렬부(160) 및 역양자화부(140)에 제공될 수 있다.
재정렬부(160)는, 엔트로피 부호화의 효율을 높이기 위해, 스캔(scan)을 통하여 상기 양자화된 2차원 블록 형태의 변환 계수를 1차원 벡터 형태의 변환 계수로 정렬할 수 있다. 이때, 재정렬부(160)는 확률적 통계를 기초로 스캔 순서를 달리 하여 엔트로피 부호화 효율을 높일 수 있다.
엔트로피 부호화부(165)는 재정렬부(160)에서 얻어진 값들을 엔트로피 부호화할 수 있다. 엔트로피 부호화 과정에서는 발생 빈도가 높은 구문 요소 값에 더 적은 비트수의 코드워드가 할당될 수 있고, 발생 빈도가 낮은 구문 요소 값에 더 많은 비트수의 코드워드가 할당될 수 있다. 따라서, 부호화 대상 심볼들에 대한 비트열의 크기가 감소되어 영상 부호화 압축 성능이 높아질 수 있다. 엔트로피 부호화를 위해서는 지수 골룸(exponential golomb), CAVLC(Context-Adaptive Variable Length Coding) 및/또는 CABAC(Context-Adaptive Binary Arithmetic Coding) 등과 같은 부호화 방법이 사용될 수 있다. 부호화된 정보들은 압축된 비트 스트림을 형성하여 네트워크 추상 계층(NAL: Network Abstraction Layer)을 통해 전송되거나 저장될 수 있다.
역양자화부(140)는 양자화부(135)에서 양자화된 변환 계수를 역양자화할 수 있고, 역변환부(145)는 역양자화된 변환 계수를 역변환해서 복원된 잔차 블록을 생성할 수 있다. 복원된 잔차 블록은 인터 예측부(120) 또는 인트라 예측부(125)에서 생성된 예측 블록과 합쳐져 복원 블록이 생성될 수 있다. 복원 블록은 인트라 예측부(125) 및 필터부(150)에 제공될 수 있다.
필터부(150)는 복원된 블록에 디블록킹 필터(Deblocking Filter), SAO(Sample Adaptive Offset) 및/또는 ALF(Adaptive Loop Filter) 등을 적용할 수 있다. 디블록킹 필터는 부호화 및 복호화 과정에서 발생하는 블록 경계 사이의 왜곡을 제거하기 위해, 복원 블록을 필터링할 수 있다. SAO는 디블록킹 필터가 적용된 잔차 블록에 대하여, 픽셀 단위로 원본 영상과의 오프셋 차이를 복원해주는 루프 필터 처리 과정이다. SAO를 통해서 적용되는 오프셋으로는 밴드 오프셋(Band Offset), 에지 오프셋(Edge Offset) 등이 있을 수 있다. 밴드 오프셋은 픽셀을 세기(intensity)에 따른 32개의 밴드로 구분하고, 32 개 밴드를 가장 자리의 16개 밴드와 중심부 16개 밴드의 두 밴드 그룹으로 나누어 오프셋을 적용할 수 있다. ALF는 예측 대상 블록과 최종 복원 블록 사이의 에러를 최소화하기 위해 필터링을 수행할 수 있다. ALF는 디블록킹 필터를 통해 필터링된 복원 블록과 현재의 예측 대상 블록을 비교한 값을 기초로 필터링을 수행할 수 있으며, ALF의 필터 계수 정보는 슬라이스 헤더(slice header)에 실려 부호화기로부터 복호화기로 전송될 수 있다.
메모리(155)는 필터부(150)를 거친 최종 복원 블록을 저장할 수 있고, 저장된 최종 복원 블록은 인터 예측을 수행하는 인터 예측부(120)에 제공될 수 있다.
도 2는 비디오 복호화기의 일 실시예에 따른 구성을 나타내는 블록도이다. 도 2를 참조하면, 비디오 복호화기는 엔트로피 복호화부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 인터 예측부(230), 인트라 예측부(235), 필터부(240) 및 메모리(245)를 포함할 수 있다.
엔트로피 복호화부(210)는 NAL로부터 압축된 비트 스트림을 수신할 수 있다. 엔트로피 복호화부(210)는 수신된 비트 스트림을 엔트로피 복호화할 수 있고, 예측 모드, 움직임 벡터 정보 등이 비트 스트림에 포함되는 경우 이를 함께 엔트로피 복호화할 수 있다. 엔트로피 복호화 방법이 적용되는 경우, 발생 빈도가 높은 구문 요소 값에 더 적은 비트수의 코드워드가 할당될 수 있고, 발생 빈도가 낮은 구문 요소 값에 더 많은 비트수의 코드워드가 할당될 수 있다. 따라서, 부호화 대상 심볼들에 대한 비트열의 크기가 감소되어 영상 복호화 성능이 높아질 수 있다.
엔트로피 복호화된 변환 계수 또는 잔차 신호는 재정렬부(215)에 제공될 수 있다. 재정렬부(215)는 복호화된 변환 계수 또는 잔차 신호를 역스캔(inverse scan)하여 2차원 블록 형태의 변환 계수를 생성할 수 있다.
역양자화부(220)는 재정렬된 변환 계수를 역양자화할 수 있다. 역변환부(225)는 역양자화된 변환 계수를 역변환하여 잔차 블록을 생성할 수 있다.
잔차 블록은 인터 예측부(230) 또는 인트라 예측부(235)에서 생성된 예측 블록과 합쳐져 복원 블록이 생성될 수 있다. 복원 블록은 인트라 예측부(235) 및 필터부(240)에 제공될 수 있다. 인터 예측부(230) 및 인트라 예측부(235)의 동작은 각각 비디오 부호화기에서의 인터 예측부(120) 및 인트라 예측부(125)의 동작과 동일하거나 유사하므로, 여기서는 생략하기로 한다.
필터부(240)는 복원 블록에 디블록킹 필터, SAO 및/또는 ALF 등을 적용할 수 있다. 디블록킹 필터는 부호화 및 복호화 과정에서 발생하는 블록 경계 사이의 왜곡을 제거하기 위해, 복원 블록을 필터링할 수 있다. SAO는 디블록킹 필터링된 복원 블록에 픽셀 단위로 적용되어 원본 영상과의 차이를 줄일 수 있다. 또한, ALF는 예측 대상 블록과 최종 복원 블록 사이의 에러를 최소화하기 위해 SAO 과정이 수행된 복원 블록에 필터링을 수행할 수 있다.
메모리(245)는 필터부(240)를 통해 얻어진 최종 복원 블록을 저장할 수 있고, 저장된 최종 복원 블록은 인터 예측을 수행하는 인터 예측부(230)에 제공될 수 있다.
한편, 도 2의 실시예에 도시된 각각의 구성부는 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수도 있다. 예컨대, 도 2의 실시예에서, 엔트로피 복호화부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 인터 예측부(230), 인트라 예측부(235) 및 메모리(245)는 하나의 영상 복원부를 구성하는 것으로 볼 수도 있다. 이 경우, 비디오 복호화기는 영상 복원부 및 필터부(240)로 구성될 수 있다.
이하, 블록은 영상 부호화 및 복호화의 단위를 의미할 수 있다. 따라서, 본 명세서에서 블록은 경우에 따라 부호화 유닛(CU: Coding Unit), 예측 유닛(PU: Prediction Unit), 변환 유닛(TU: Transform Unit) 등을 의미할 수도 있다.
한편, 일반적으로 영상 신호는 빛의 3원색 성분의 크기를 나타내는 세 가지의 색 신호를 포함한다. 상기 세 가지의 색 신호는 각각 R(Red), G(Green), B(Blue)로 표시될 수 있다. 영상 처리에 사용되는 주파수 대역을 줄이기 위해, 상기 R, G, B 신호는 상기 R, G, B 신호와 등가인 루마(luma), 크로마(chroma) 신호로 변환될 수 있다. 이 때, 영상 신호는 하나의 루마 신호와 두 개의 크로마 신호를 포함할 수 있다. 여기서, 루마 신호는 화면의 밝기를 나타내는 성분이고, 크로마 신호는 화면의 색(color)을 나타내는 성분이다. 루마 신호는 Y로 표시될 수 있고, 크로마 신호는 C로 표시될 수 있다.
인간의 눈은 루마 신호에 대해서 민감하고, 크로마 신호에 대해서 둔감하므로, 하나의 영상 또는 블록 내에서 크로마 성분의 픽셀 수가 루마 성분의 픽셀 수보다 작을 수 있다.
4:2:0 영상 포맷에서, 루마 성분 블록에 대응하는 크로마 성분 블록의 픽셀 수는, 수평 방향으로 루마 성분 블록의 픽셀 수의 1/2, 수직 방향으로 루마 성분 블록의 픽셀 수의 1/2일 수 있다. 4:2:2 영상 포맷에서, 루마 성분 블록에 대응하는 크로마 성분 블록의 픽셀 수는, 수평 방향으로 루마 성분 블록의 픽셀 수의 1/2이고, 수직 방향으로 루마 성분 블록의 픽셀 수와 동일할 수 있다. 4:4:4 영상 포맷에서, 루마 성분 블록에 대응하는 크로마 성분 블록의 픽셀 수는 수평 방향 및 수직 방향으로 루마 성분 블록의 픽셀 수와 동일할 수 있다.
한편, 인트라 예측이 수행되거나 인터 예측이 수행되는 슬라이스(slice)에는 I 슬라이스, P 슬라이스 및 B 슬라이스가 있을 수 있다. I 슬라이스는 인트라 예측만이 수행되는 픽쳐를 의미할 수 있다. I 슬라이스는 인트라 슬라이스(intra slice)로도 불릴 수 있다. P 슬라이스는 하나의 참조 픽쳐를 이용한 단방향 예측이 수행될 수 있는 픽쳐를 의미할 수 있다. P 슬라이스에서는 인트라 예측 및 하나의 참조 픽쳐를 이용한 단방향 예측이 수행될 수 있다. B 슬라이스는 두 개의 참조 픽쳐를 이용한 순방향, 역방향 또는 양방향 예측이 수행될 수 있는 픽쳐를 의미할 수 있다. B 슬라이스에서는 인트라 예측, 하나의 참조 픽쳐를 이용한 인터 예측, 및 두 개의 참조 픽쳐를 이용한 인터 예측이 수행될 수 있다.
도 1 및 도 2에서 상술한 바와 같이, 부호화기 및 복호화기는 부호화 과정에서 발생하는 에러를 보상하기 위해, 복원 블록에 디블록킹 필터, SAO 및/또는 ALF 등을 포함한 인 루프 필터(In-loop filter)를 적용할 수 있다. 특히, 디블록킹 필터는 부호화 및 복호화 과정에서 발생하는 블록 경계 사이의 왜곡을 제거하기 위해, 복원 블록에 대한 필터링을 수행할 수 있다. 인 루프 필터링은 부호화기 및 복호화기의 필터부에서 수행될 수 있다.
도 3은 본 발명이 적용되는 디블록킹 필터링 수행 과정의 일 실시예를 개략적으로 나타내는 흐름도이다.
상술한 바와 같이, 부호화기 및 복호화기는 블록 단위로 영상을 처리할 수 있다. 따라서 복원된 픽쳐 내의 블록 간의 경계에는 왜곡이 발생할 수 있다. 따라서, 필터부는 블록 간의 경계에 발생하는 왜곡 및/또는 에러를 제거하기 위해 디블록킹 필터링을 수행할 수 있다. 이 때, 디블록킹 필터는 픽쳐 내의 모든 예측 유닛(PU)의 에지(edge) 및 모든 변환 유닛(TU)의 에지에 적용될 수 있다.
도 3을 참조하면, 필터부는 블록 간의 경계 및/또는 블록의 에지에 대해 BS를 결정할 수 있다(S310). 여기서, BS는 블록 간의 경계 강도(boundary strength)를 의미할 수 있다. 이하, 본 명세서에서 ‘에지(edge)’는 블록 간의 경계(boundary)를 의미할 수 있다. 따라서, 후술되는 실시예들에서는 블록 간의 경계가 에지로도 불릴 수 있다.
복원된 픽쳐에는 블록 왜곡의 발생 확률이 높은 위치와 블록 왜곡의 발생 확률이 낮은 위치가 있을 수 있다. 따라서, 필터부는 필터링 효율을 향상시키기 위해 블록 간의 경계에 대해 BS를 결정할 수 있다. 예컨대, 블록 P와 블록 Q 간의 경계에 대해 BS 값을 유도하는 경우, 필터부는 블록 P와 블록 Q의 예측 모드, 블록 P와 블록 Q 간의 경계 종류 등을 기반으로 BS 값을 결정할 수 있다. 루마 성분 및 크로마 성분에 대해 BS를 결정하는 과정의 구체적인 실시예는 후술하기로 한다.
BS 값이 결정되면, 필터부는 필터링 수행 여부를 결정할 수 있다(S320). 필터링 수행 여부 결정은 필터링 온/오프 결정(filtering on/off decision)으로도 불릴 수 있다.
일례로, 필터부는 BS 값이 소정의 값 이하인 경계에 대해서는 필터링을 수행하지 않을 수 있으며, BS 값이 상기 소정의 값보다 큰 경계에 대해서만 필터링 수행 여부를 결정할 수도 있다. 다른 예로, 필터부는 BS 값이 소정의 값보다 큰 경계에 대해서는 필터링 온/오프 결정 과정 없이 항상 필터링을 수행할 수도 있다.
또한, 예컨대 블록 P와 블록 Q 간의 경계에 대해 필터링 수행 여부를 결정하는 경우, 필터부는 블록 P 내의 픽셀 값, 블록 Q 내의 픽셀 값 및 변수 β 값을 기반으로 필터링 수행 여부를 결정할 수 있다. 여기서, β는 양자화 파라미터(Quantization Parameter: QP) 값을 기반으로 결정되는 변수일 수 있다. β와 QP 간의 대응 관계 및/또는 매핑 관계는 룩업 테이블(look-up table) 형태로 부호화기 및 복호화기에 저장되어 있을 수도 있다.
필터링 온/오프 결정 과정의 구체적인 실시예는 후술하기로 한다.
다시 도 3을 참조하면, 필터링이 수행되는 것으로 결정된 경우, 필터부는 결정된 BS 값 및 필터링 온/오프 결정을 기반으로 디블록킹 필터링을 수행할 수 있다(S330).
필터부는 상기 결정된 BS 값을 기반으로, 블록 간의 경계에 적용되는 필터를 결정할 수 있다. 블록 간의 경계에 적용될 수 있는 필터에는 강한 필터(strong filter) 및 약한 필터(weak filter)가 있을 수 있다. 예컨대, 필터부는 동일 픽쳐 내에서 블록 왜곡이 발생할 확률이 높은 위치의 경계에는 강한 필터를 적용하고 블록 왜곡이 발생할 확률이 낮은 위치의 경계에는 약한 필터를 적용할 수 있다. 필터부는 블록 왜곡이 발생할 확률에 따라 서로 다른 필터를 적용함으로써, 필터링 효율을 높일 수 있다.
블록 간의 경계에 적용될 필터가 결정된 경우, 필터부는 결정된 필터를 기반으로 블록 간의 경계에 대한 필터링을 수행할 수 있다. 예컨대, 블록 간의 경계에 적용될 필터가 강한 필터로 결정된 경우, 필터부는 강한 필터를 이용하여 디블록킹 필터링을 수행할 수 있다. 또한, 블록 간의 경계에 적용될 필터가 강한 필터로 결정된 경우, 필터부는 약한 필터를 이용하여 디블록킹 필터링을 수행할 수 있다.
도 4는 디블록킹 필터가 적용되는 픽셀 블록의 실시예를 개략적으로 나타내는 도면이다.
필터부는 복원된 픽쳐 내에서 디블록킹 필터의 적용 대상이 되는 픽셀 블록을 설정할 수 있다. 이하, 본 명세서에서는 설명의 편의를 위해 디블록킹 필터의 적용 대상이 되는 픽셀 블록을 필터링 단위 블록이라 한다. 필터링 단위 블록은 디블록킹 필터링 수행 시에 BS 값을 결정하거나 및/또는 필터링 온/오프 결정을 수행하는 단위에 해당될 수 있다.
도 4의 410을 참조하면, 필터링 단위 블록은 8x8 크기의 블록일 수 있다. 도 4의 410에 따른 필터링 단위 블록은 예컨대, 루마 성분에 대해 적용되는 필터링 단위 블록일 수 있다.
도 4의 410에서 필터링 단위 블록은 디블록킹 필터가 적용되는 경계(419)를 기준으로 좌측에 위치한 좌측 블록(413)에 속한 p 샘플들 및 디블록킹 필터가 적용되는 경계를 기준으로 우측에 위치한 우측 블록(416)에 속한 q 샘플들로 구성될 수 있다. 여기서, 상기 좌측 블록(416) 및 상기 우측 블록(419)은 각각 4x8 형태를 가질 수 있다.
도 4의 420을 참조하면, 필터링 단위 블록은 4x4 크기의 블록일 수 있다. 도 4의 420에 따른 필터링 단위 블록은 예컨대, 크로마 성분에 대해 적용되는 필터링 단위 블록일 수 있다.
도 4의 420에서 필터링 단위 블록은 디블록킹 필터가 적용되는 경계(429)를 기준으로 좌측 블록(423)에 속한 p 샘플들 및 디블록킹 필터가 적용되는 경계를 기준으로 우측 블록(426)에 속한 q 샘플들로 구성될 수 있다. 여기서, 상기 좌측 블록(426) 및 상기 우측 블록(429)은 각각 2x4 형태를 가질 수 있다.
이하, 본 명세서에서는 설명의 편의를 위해, 디블록킹 필터가 적용되는 경계를 기준으로 좌측에 위치한 좌측 블록은 블록 P라 하고, 디블록킹 필터가 적용되는 경계를 기준으로 우측에 위치한 우측 블록은 블록 Q라 한다.
도 5는 루마 성분에 대한 BS 결정 방법의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 5를 참조하면, 필터부는 조건 1이 만족되는지 여부를 판단할 수 있다(S510). 여기서, 조건 1은 블록 P 또는 블록 Q의 예측 모드가 인트라 모드일 조건을 의미할 수 있다. 조건 1이 만족되는 경우, 즉 블록 P 및 블록 Q의 예측 모드 중 적어도 하나가 인트라 모드인 경우, 필터부는 BS 값을 2로 설정할 수 있다(S520).
블록 P 및 블록 Q의 예측 모드가 모두 인트라 모드가 아닌 경우(예컨대, 블록 P 및 블록 Q의 예측 모드가 모두 인터 모드인 경우), 필터부는 조건 2 또는 조건 3이 만족되는지 여부를 판단할 수 있다(S530). 여기서, 조건 2는 현재 경계(예컨대, 현재 필터링 단위 블록 내의 경계)가 TU 경계이고 블록 P 또는 블록 Q가 0이 아닌 변환 계수(non-zero coefficient)를 포함할 조건을 의미할 수 있다. 또한, 조건 3은 블록 P 및 블록 Q가 서로 다른 참조 픽쳐 인덱스(reference picture index)를 갖거나 서로 다른 움직임 벡터(motion vector)를 가질 조건을 의미할 수 있다.
조건 2 및 조건 3 중에서 적어도 하나가 만족되는 경우, 필터부는 BS 값을 1로 설정할 수 있다(S540). 그렇지 않으면, 필터부는 BS 값을 0으로 설정할 수 있다(S550).
상술한 실시예에서와 같이 루마 성분에서의 BS 값이 결정되면, 필터부는 결정된 BS 값을 기반으로 현재 경계에 대한 필터링 수행 여부를 결정할 수 있다. 이 때, 루마 성분에 대해 결정된 BS 값은 루마 성분에 대한 필터링 온/오프 결정뿐만 아니라, 크로마 성분에 대한 필터링 온/오프 결정에도 이용될 수 있다.
예컨대, 현재 경계의 크로마 성분에 대해서는, 루마 성분에서의 BS 값이 2 이상인 경우에만 디블록킹 필터링이 수행될 수도 있다. 이와 같이, 루마 성분에서의 BS 값이 크로마 성분에서의 필터링 온/오프 결정에 이용되는 경우에는, 루마 성분에서의 BS 값이 크로마 성분에서의 BS 값으로 사용되는 것으로 볼 수 있다. 즉, 루마 성분에서의 BS 값은 크로마 성분에서의 BS 값으로 설정될 수 있다.
그러나, 크로마 성분에서의 BS 값은 루마 성분에서의 BS 값과 별개로 유도될 수도 있다. 이하, 도 6 및 도 7에서는 크로마 성분에서의 BS 값을 도출하는 방법의 실시예가 서술된다. 후술되는 실시예들에서는, 설명의 편의상 루마 성분에서의 BS 값은 루마 BS라 하고, 크로마 성분에서의 BS 값은 크로마 BS라 한다.
도 6은 크로마 성분에 대한 BS 결정 방법의 일 실시예를 개략적으로 나타내는 흐름도이다.
도 6을 참조하면, 필터부는 조건 1이 만족되는지 여부를 판단할 수 있다(S610). 여기서, 조건 1은 블록 P 또는 블록 Q의 예측 모드가 인트라 모드일 조건을 의미할 수 있다. 조건 1이 만족되는 경우, 즉, 블록 P 및 블록 Q의 예측 모드 중에서 적어도 하나가 인트라 모드인 경우, 필터부는 크로마 BS가 가질 수 있는 값 중에서 가장 높은 값을 상기 크로마 BS 값으로 결정할 수 있다. 일례로, 이 경우 필터부는 현재 경계에 대한 크로마 BS 값을 2로 설정할 수 있다(S620).
조건 1이 만족되지 않는 경우 즉, 블록 P 및 블록 Q의 예측 모드가 모두 인트라 모드가 아닌 경우(예컨대, 블록 P 및 블록 Q의 예측 모드가 모두 인터 모드인 경우), 필터부는 조건 2가 만족되는지 여부를 판단할 수 있다(S630). 여기서, 조건 2는 블록 P 또는 블록 Q가 0이 아닌 변환 계수(non-zero coefficient)를 포함할 조건을 의미할 수 있다. 조건 2가 만족되는 경우, 즉 블록 P 또는 블록 Q가 0이 아닌 변환 계수를 포함하는 경우, 필터부는 크로마 BS가 가질 수 있는 값들 중에서 가장 높은 값 및 가장 낮은 값을 제외한 값들 중 하나를 상기 크로마 BS 값으로 결정할 수 있다. 일례로, 이 경우 필터부는 현재 경계에 대한 크로마 BS 값을 1로 설정할 수 있다(S640). 조건 1 및 조건 2가 모두 만족되지 않는 경우, 필터부는 크로마 BS가 가질 수 있는 값 중에서 가장 낮은 값을 상기 크로마 BS 값으로 결정할 수 있다. 일례로, 이 경우 필터부는 현재 경계에 대한 크로마 BS 값을 0으로 설정할 수 있다(S650).
도 7은 크로마 성분에 대한 BS 결정 방법의 다른 실시예를 개략적으로 나타내는 흐름도이다.
도 7을 참조하면, 필터부는 조건 1이 만족되는지 여부를 판단할 수 잇다(S710). 여기서, 조건 1은 루마 성분의 BS 값(예컨대, BSLuma) 값이 2보다 작을 조건(BSLuma <2)을 의미할 수 있다. 조건 1이 만족되지 않는 경우 즉, 루마 BS 값이 2 이상인 경우 필터부는 크로마 BS가 가질 수 있는 값 중에서 가장 높은 값을 상기 크로마 BS 값으로 결정할 수 있다. 일례로, 이 경우에 필터부는 현재 경계에 대한 크로마 BS 값을 2로 설정할 수 있다(S720).
조건 1이 만족되는 경우 즉, 루마 BS 값이 2보다 작은 경우 필터부는 조건 2가 만족되는지 여부를 판단할 수 있다(S730). 여기서, 조건 2는 블록 P 또는 블록 Q가 0이 아닌 변환 계수(non-zero coefficient)를 포함할 조건을 의미할 수 있다. 조건 2가 만족되는 경우, 즉 블록 P 또는 블록 Q가 0이 아닌 변환 계수를 포함하는 경우, 필터부는 크로마 BS가 가질 수 있는 값들 중에서 가장 높은 값 및 가장 낮은 값을 제외한 값들 중 하나를 상기 크로마 BS 값으로 결정할 수 있다. 일례로, 이 경우에 필터부는 현재 경계에 대한 크로마 BS 값을 1로 설정할 수 있다(S740). 조건 1이 만족되고 조건 2가 만족되지 않는 경우, 필터부는 크로마 BS가 가질 수 있는 값들 중에서 가장 낮은 값을 상기 크로마 BS 값으로 결정할 수 있다. 일례로, 이 경우에 필터부는 현재 경계에 대한 크로마 BS 값을 0으로 설정할 수 있다(S750).
루마 BS 값이 그대로 크로마 BS 값으로 사용되는 경우에는, 예컨대 BS 값이 2 이상일 때에만 현재 경계의 크로마 성분에 대한 디블록킹 필터링이 수행될 수 있다. 그러나, 상술한 도 6 및 도 7의 실시예에 의하면 블록 P 및 블록 Q의 예측 모드가 모두 인트라 모드가 아닌 경우(예컨대, 블록 P 및 블록 Q의 예측 모드가 모두 인터 모드인 경우), 즉 루마 BS 값이 2 보다 작은 경우에도, 블록 P 및 블록 Q 중 적어도 하나가 0이 아닌 변환 계수를 포함한다면 크로마 성분에 대한 디블록킹 필터링이 수행될 수 있다.
도 8은 크로마 성분 경계에 대한 필터링 수행 여부 결정 과정의 일 실시예를 설명하기 위한 도면이다.
도 8은 크로마 성분에서 디블록킹 필터의 적용 대상이 되는 필터링 단위 블록(810)의 실시예를 도시한다. 도 8을 참조하면, 크로마 성분에 대한 필터링 단위 블록(810)의 크기는 4x4일 수 있다. 도 8에서 크로마 성분에 대한 필터링 단위 블록(810)은 디블록킹 필터가 적용되는 경계(819)를 기준으로 좌측에 위치한 블록 P(813) 및 우측에 위치한 블록 Q(816)로 구성될 수 있다. 여기서, 상기 블록 P(813) 및 블록 Q(816)는 각각 2x4 형태를 가질 수 있다.
도 8의 실시예에서는 루마 BS 값이 크로마 BS 값으로 사용된다고 가정한다. 이 경우, 필터부는 루마 성분의 필터링 단위 블록에 대해, 상기 필터링 단위 블록 내의 소정의 위치의 픽셀들을 기반으로 필터링 온/오프 결정 과정을 수행할 수 있다. 즉, 필터부는 루마 성분에 대해서 필터링 단위 블록 별로 필터링 온/오프 결정 과정을 수행할 수 있다. 또한, 일례로 루마 BS 값이 2 이상인 경우, 필터부는 크로마 성분의 필터링 단위 블록에 대한 별도의 필터링 온/오프 결정 과정 없이, 항상 크로마 성분 경계에 대한 디블록킹 필터링을 수행할 수 있다. 다른 예로 루마 BS 값이 2 이상인 경우, 필터부는 루마 성분과는 별개로 크로마 성분의 필터링 단위 블록에 대해 독립적으로 필터링 온/오프 결정 과정을 수행할 수도 있다.
도 8을 참조하면, 루마 BS 값이 2 이상인 경우, 필터부는 크로마 성분의 필터링 단위 블록(810) 내에서 두 번째 행에 포함된 픽셀들(p11, p01, q01, q11) 및 세 번째 행에 포함된 픽셀들(p12, p02, q02, q12)의 픽셀 값을 기반으로, 크로마 성분의 경계(819)에 대한 필터링 온/오프 결정 과정을 수행할 수 있다. 즉, 필터부는 4x4 크기의 필터링 단위 블록 별로 크로마 성분에 대한 필터링 온/오프 결정 과정을 수행할 수 있다. 이 때, 도 8에서 820 및 830은 필터링 온/오프 결정을 위해 사용되는 픽셀들을 나타낼 수 있다. 예컨대, 필터부는 다음 수학식 1이 만족되는 경우에, 4x4 크기의 필터링 단위 블록(810) 내의 크로마 성분 경계(819)에 대해 디블록킹 필터링을 수행할 수 있다.
[수학식 1]
Figure pat00002

여기서, p01, p11, p02 및 p12는 P 블록(813)에 속한 픽셀들 중에서 크로마 성분 경계(819)의 필터링 온/오프 결정에 사용되는 픽셀을 나타낸다. p01, p11은 필터링 단위 블록(810) 내의 두 번째 행에 속한 픽셀이고, p02 및 p12은 필터링 단위 블록(810) 내의 세 번째 행에 속한 픽셀일 수 있다. 또한, q01, q11, q02 및 q12는 Q 블록(816)에 속한 픽셀들 중에서 크로마 성분 경계(819)의 필터링 온/오프 결정에 사용되는 픽셀을 나타낸다. q01, q11은 필터링 단위 블록(810) 내의 두 번째 행에 속한 픽셀이고, q02 및 q12은 필터링 단위 블록(810) 내의 세 번째 행에 속한 픽셀일 수 있다. 그리고, QPchroma는 크로마 성분에 대한 양자화 파라미터를 나타내며, β(QPchroma)는 크로마 성분의 양자화 파라미터 값을 기반으로 결정되는 변수를 나타낼 수 있다. 변수 β에 대해서는 도 3에서 상술한 바 있으므로, 여기서는 이에 대한 설명은 생략하기로 한다.
상술한 실시예에서는 루마 BS 값이 2 이상인 경우에도 크로마 성분에 대해 필터링 단위 블록마다 필터링 수행 여부를 결정하므로, 필터링 성능이 향상될 수 있다.
도 9는 크로마 성분 경계에 대한 필터링 수행 여부 결정 과정의 다른 실시예를 설명하기 위한 도면이다.
도 9는 루마 성분에서 디블록킹 필터의 적용 대상이 되는 필터링 단위 블록(910)의 실시예를 도시한다. 도 9를 참조하면, 루마 성분에 대한 필터링 단위 블록(910)의 크기는 8x8일 수 있다. 도 9에서 루마 성분에 대한 필터링 단위 블록(910)은 디블록킹 필터가 적용되는 경계(919)를 기준으로 좌측에 위치한 블록 P(913) 및 우측에 위치한 블록 Q(916)로 구성될 수 있다. 여기서, 상기 블록 P(913) 및 블록 Q(916)는 각각 4x8의 형태를 가질 수 있다.
도 9를 참조하면, 필터부는 루마 성분의 필터링 단위 블록(910) 내에서 세 번째 행에 포함된 픽셀들 중에서 경계(919)에 가장 가까이 위치한 여섯 개의 픽셀들(920) 및 여섯 번째 행에 포함된 픽셀들 중에서 경계(919)에 가장 가까이 위치한 여섯 개의 픽셀들(930)의 픽셀 값을 기반으로, 루마 성분의 경계(919)에 대한 필터링 온/오프 결정 과정을 수행할 수 있다. 즉, 필터부는 8x8 크기의 필터링 단위 블록 별로 루마 성분에 대한 필터링 온/오프 결정 과정을 수행할 수 있다. 이 때, 도 9에서 920 및 930은 루마 성분의 필터링 온/오프 결정을 위해 사용되는 픽셀들을 나타낼 수 있다. 예컨대, 필터부는 다음 수학식 2가 만족되는 경우에, 8x8 크기의 필터링 단위 블록(910) 내의 루마 성분 경계(919)에 대해 디블록킹 필터링을 수행할 수 있다.
[수학식 2]
Figure pat00003

여기서, p22, p12, p02, p25, p15 및 p05는 P 블록(913)에 속한 픽셀들 중에서 루마 성분 경계(919)의 필터링 온/오프 결정에 사용되는 픽셀을 나타낸다. p22, p12, p02는 필터링 단위 블록(910) 내의 세 번째 행에 속한 픽셀이고, p25, p15 및 p05는 필터링 단위 블록(910) 내의 여섯 번째 행에 속한 픽셀일 수 있다. 또한, q22, q12, q02, q25, q15 및 q05는 Q 블록(916)에 속한 픽셀들 중에서 루마 성분 경계(919)의 필터링 온/오프 결정에 사용되는 픽셀을 나타낸다. q22, q12, q02는 필터링 단위 블록(910) 내의 세 번째 행에 속한 픽셀이고, q25, q15 및 q05는 필터링 단위 블록(910) 내의 여섯 번째 행에 속한 픽셀일 수 있다. 그리고, QPluma는 루마 성분에 대한 양자화 파라미터를 나타내며, β(QPluma)는 루마 성분의 양자화 파라미터 값을 기반으로 결정되는 변수를 나타낼 수 있다. 변수 β에 대해서는 도 3에서 상술한 바 있으므로, 여기서는 이에 대한 설명은 생략하기로 한다.
루마 성분에 대한 디블록킹 필터링 수행 여부는 상술한 바와 같이, 8x8 블록 단위로 결정될 수 있다. 그러나, 경계(919)에 강한 필터가 적용되는지 또는 약한 필터가 적용되는지 여부는 필터링 단위 블록(910) 내에 수평으로 배열된 픽셀 라인 별로 결정될 수 있다.
한편, 도 9의 실시예에서는 루마 성분에 대한 필터링 온/오프 결정 과정에서 도출된 변수 d가 크로마 성분의 필터링 온/오프 결정 과정에 사용될 수 있다. 상술한 실시예에서 변수 d 값은 루마 성분의 필터링 단위 블록(910) 내에서 세 번째 행에 포함된 픽셀들 중에서 경계(919)에 가장 가까이 위치한 여섯 개의 픽셀들(920) 및 여섯 번째 행에 포함된 픽셀들 중에서 경계(919)에 가장 가까이 위치한 여섯 개의 픽셀들(930)의 픽셀 값을 기반으로 결정된다. 따라서, 크로마 성분 경계에 대한 필터링 수행 여부는, 루마 성분의 필터링 단위 블록(910) 내에서 세 번째 행에 포함된 픽셀들 중에서 경계(919)에 가장 가까이 위치한 여섯 개의 픽셀들(920) 및 여섯 번째 행에 포함된 픽셀들 중에서 경계(919)에 가장 가까이 위치한 여섯 개의 픽셀들(930)의 픽셀 값을 기반으로 결정되는 것으로 볼 수 있다.
예컨대, 디블록킹 필터의 적용 대상이 되는 경계 및/또는 필터링 단위 블록이 속한 현재 슬라이스가 인트라 슬라이스(intra slice)인 경우를 가정한다. 이 때, 루마 성분에 대해 도출된 변수 d 값이 2xβ(QPluma)보다 작으면, 필터부는 4x4 크기의 크로마 성분 필터링 단위 블록(루마 성분의 필터링 단위 블록(910)에 대응되는 크로마 성분 필터링 단위 블록) 내의 크로마 성분 경계에 대해 디블록킹 필터링을 수행할 수 있다. 반면 루마 성분에 대해 도출된 변수 d 값이 2xβ(QPluma)보다 크거나 같으면, 필터부는 4x4 크기의 크로마 성분 필터링 단위 블록(루마 성분의 필터링 단위 블록(910)에 대응되는 크로마 성분 필터링 단위 블록) 내의 크로마 성분 경계에 대해 디블록킹 필터링을 수행하지 않을 수 있다.
다른 예로, 디블록킹 필터의 적용 대상이 되는 경계 및/또는 필터링 단위 블록이 속한 현재 슬라이스는 인트라 슬라이스가 아닐 수도 있다. 이 때, 필터부는 루마 성분에 대한 필터링 온/오프 결정 결과를 그대로 크로마 성분에 대해 적용할 수 있다. 즉, 루마 성분 경계(루마 성분 필터링 단위 블록(910) 내의 경계(919))에 대해 필터링이 수행되는 것으로 결정된 경우, 필터부는 상기 루마 성분 경계에 대응되는 크로마 성분 경계(크로마 성분 필터링 단위 블록 내의 경계)에 대해 디블록킹 필터링을 수행할 수 있다. 또한, 루마 성분 경계(루마 성분 필터링 단위 블록(910) 내의 경계(919))에 대해 필터링이 수행되지 않는 것으로 결정된 경우, 필터부는 상기 루마 성분 경계에 대응되는 크로마 성분 경계(크로마 성분 필터링 단위 블록 내의 경계)에 대해 디블록킹 필터링을 수행하지 않을 수 있다.
도 10은 크로마 성분 경계에 대한 필터링 수행 여부 결정 과정의 또 다른 실시예를 설명하기 위한 도면이다.
도 10의 1010 및 1020은 각각 루마 성분에서 디블록킹 필터의 적용 대상이 되는 필터링 단위 블록의 실시예를 도시한다. 도 10을 참조하면, 루마 성분에 대한 필터링 단위 블록(1010, 1020)의 크기는 8x4일 수 있다. 즉, 루마 성분에서 필터링 온/오프 결정 과정은 4개의 픽셀 라인(수평 픽셀 라인) 단위로 수행될 수 있다. 도 10에서 루마 성분에 대한 필터링 단위 블록 1010 및 1020은 각각 디블록킹 필터가 적용되는 경계(1030)를 기준으로 좌측에 위치한 블록 P 및 우측에 위치한 블록 Q로 구성될 수 있다. 여기서, 블록 P 및 블록 Q는 각각 4x4의 형태를 가질 수 있다.
도 10의 1010에 해당되는 필터링 단위 블록을 참조하면, 필터부는 상기 필터링 단위 블록(1010) 내에서 첫 번째 행에 포함된 픽셀들 중에서 경계(1030)에 가장 가까이 위치한 여섯 개의 픽셀들(1013) 및 네 번째 행에 포함된 픽셀들 중에서 경계(1030)에 가장 가까이 위치한 여섯 개의 픽셀들(1016)의 픽셀 값을 기반으로, 상기 필터링 단위 블록 1010에 포함된 루마 성분 경계에 대한 필터링 온/오프 결정 과정을 수행할 수 있다. 즉, 필터부는 8x4 크기의 필터링 단위 블록 별로 루마 성분에 대한 필터링 온/오프 결정 과정을 수행할 수 있다. 이 때, 도 10에서 1013 및 1016은 루마 성분의 필터링 온/오프 결정을 위해 사용되는 픽셀들을 나타낼 수 있다. 예컨대, 필터부는 다음 수학식 3이 만족되는 경우에, 8x4 크기의 필터링 단위 블록(1010) 내의 루마 성분 경계에 대해 디블록킹 필터링을 수행할 수 있다.
[수학식 3]
Figure pat00004

여기서, p20, p10, p00, p23, p13 및 p03는 P 블록에 속한 픽셀들 중에서 루마 성분 경계의 필터링 온/오프 결정에 사용되는 픽셀을 나타낸다. p20, p10, p00는 필터링 단위 블록(1010) 내의 첫 번째 행에 속한 픽셀이고, p23, p13 및 p03는 필터링 단위 블록(1010) 내의 네 번째 행에 속한 픽셀일 수 있다. 또한, q20, q10, q00, q23, q13 및 q03는 Q 블록에 속한 픽셀들 중에서 루마 성분 경계의 필터링 온/오프 결정에 사용되는 픽셀을 나타낸다. q20, q10, q00는 필터링 단위 블록(1010) 내의 첫 번째 행에 속한 픽셀이고, q23, q13 및 q03는 필터링 단위 블록(1010) 내의 네 번째 행에 속한 픽셀일 수 있다. 그리고, QPluma는 루마 성분에 대한 양자화 파라미터를 나타내며, β(QPluma)는 루마 성분의 양자화 파라미터 값을 기반으로 결정되는 변수를 나타낼 수 있다. 변수 β에 대해서는 도 3에서 상술한 바 있으므로, 여기서는 이에 대한 설명은 생략하기로 한다.
또한, 필터부는 필터링 단위 블록 1020에 대해서도 필터링 단위 블록 1010에서와 동일한 방식으로 필터링 온/오프 결정 과정을 수행할 수 있다. 즉, 필터부는 필터링 단위 블록(1020) 내에서 첫 번째 행에 포함된 픽셀들 중에서 경계(1030)에 가장 가까이 위치한 여섯 개의 픽셀들(1023) 및 네 번째 행에 포함된 픽셀들 중에서 경계(1030)에 가장 가까이 위치한 여섯 개의 픽셀들(1026)의 픽셀 값을 기반으로, 상기 필터링 단위 블록 1020에 포함된 루마 성분 경계에 대한 필터링 온/오프 결정 과정을 수행할 수 있다. 필터링 단위 블록 1020에 대한 필터링 온/오프 결정 과정은 필터링 단위 블록 1010에 대한 필터링 온/오프 결정 과정과 유사하므로, 이에 대한 구체적인 설명은 생략하기로 한다.
한편, 루마 성분에 대한 필터링 단위 블록의 크기가 도 10에 도시된 바와 같이 8x4인 경우, 상기 루마 성분에 대응되는 크로마 성분의 필터링 단위 블록의 크기는 4x2일 수 있다. 또한, 크로마 성분의 필터링 단위 블록은 2x2 크기의 P 블록 및 2x2 크기의 Q 블록으로 구성될 수 있다. 이하, 크로마 성분에 대한 필터링 온/오프 결정 과정의 실시예가 서술된다.
일 실시예로 루마 BS 값이 2 이상인 경우, 필터부는 크로마 성분의 필터링 단위 블록에 대해 별도의 필터링 온/오프 결정 과정을 수행하지 않을 수 있다. 이 때, 필터부는 상기 크로마 성분의 필터링 단위 블록 내 경계에 대해 항상 디블록킹 필터링을 수행할 수 있다.
다른 실시예로 필터부는 루마 성분의 필터링 온/오프 결정 과정에서 도출된 변수 d를 크로마 성분의 필터링 온/오프 결정 과정에 이용할 수 있다. 상술한 실시예에서 변수 d 값은 루마 성분의 필터링 단위 블록 내에서 첫 번째 행에 포함된 픽셀들 중에서 경계에 가장 가까이 위치한 여섯 개의 픽셀들 및 네 번째 행에 포함된 픽셀들 중에서 경계에 가장 가까이 위치한 여섯 개의 픽셀들의 픽셀 값을 기반으로 결정된다. 따라서, 크로마 성분 경계에 대한 필터링 수행 여부는, 루마 성분의 필터링 단위 블록 내에서 첫 번째 행에 포함된 픽셀들 중에서 경계에 가장 가까이 위치한 여섯 개의 픽셀들 및 네 번째 행에 포함된 픽셀들 중에서 경계에 가장 가까이 위치한 여섯 개의 픽셀들의 픽셀 값을 기반으로 결정되는 것으로 볼 수 있다.
일례로, 디블록킹 필터의 적용 대상이 되는 경계 및/또는 필터링 단위 블록이 속한 현재 슬라이스가 인트라 슬라이스(intra slice)인 경우를 가정한다. 이 때, 루마 성분에 대해 도출된 변수 d 값이 2x β(QPluma)보다 작으면, 필터부는 4x2 크기의 크로마 성분 필터링 단위 블록(루마 성분의 필터링 단위 블록에 대응되는 크로마 성분 필터링 단위 블록) 내의 크로마 성분 경계에 대해 디블록킹 필터링을 수행할 수 있다. 반면 루마 성분에 대해 도출된 변수 d 값이 2x β(QPluma)보다 크거나 같으면, 필터부는 4x2 크기의 크로마 성분 필터링 단위 블록(루마 성분의 필터링 단위 블록에 대응되는 크로마 성분 필터링 단위 블록) 내의 크로마 성분 경계에 대해 디블록킹 필터링을 수행하지 않을 수 있다.
다른 예로, 디블록킹 필터의 적용 대상이 되는 경계 및/또는 필터링 단위 블록이 속한 현재 슬라이스는 인트라 슬라이스가 아닐 수도 있다. 이 때, 필터부는 루마 성분에 대한 필터링 온/오프 결정 결과를 그대로 크로마 성분에 대해 적용할 수 있다.
예컨대, 루마 성분 경계(루마 성분 필터링 단위 블록 내의 경계)에 대해 필터링이 수행되는 것으로 결정된 경우, 필터부는 상기 루마 성분 경계에 대응되는 크로마 성분 경계(크로마 성분 필터링 단위 블록 내의 경계)에 대해 디블록킹 필터링을 수행할 수 있다. 즉, 루마 성분에 대해 도출된 변수 d 값이 β(QPluma)보다 작으면, 필터부는 4x2 크기의 크로마 성분 필터링 단위 블록(루마 성분의 필터링 단위 블록에 대응되는 크로마 성분 필터링 단위 블록) 내의 크로마 성분 경계에 대해 디블록킹 필터링을 수행할 수 있다.
또한, 루마 성분 경계(루마 성분 필터링 단위 블록 내의 경계)에 대해 필터링이 수행되지 않는 것으로 결정된 경우, 필터부는 상기 루마 성분 경계에 대응되는 크로마 성분 경계(크로마 성분 필터링 단위 블록 내의 경계)에 대해 디블록킹 필터링을 수행하지 않을 수 있다. 즉, 루마 성분에 대해 도출된 변수 d 값이 β(QPluma)보다 크거나 같으면, 필터부는 4x2 크기의 크로마 성분 필터링 단위 블록(루마 성분의 필터링 단위 블록에 대응되는 크로마 성분 필터링 단위 블록) 내의 크로마 성분 경계에 대해 디블록킹 필터링을 수행하지 않을 수 있다.
크로마 성분에 대한 필터링 온/오프 결정 과정에서 필터링이 수행되는 것으로 결정된 경우, 필터부는 크로마 성분 경계에 대해 디블록킹 필터링을 수행할 수 있다. 크로마 성분에서의 디블록킹 필터링 방법은 일 실시예로 다음 수학식 4에 의해 나타내어질 수 있다.
[수학식 4]
Figure pat00005

수학식 4의 실시예에서, p0, p1, q0, q1은 크로마 성분의 필터링 단위 블록 내에서 동일한 수평 픽셀 라인에 속한 픽셀들일 수 있다. 또한, p0, p1은 블록 P에 속한 픽셀이고, q0, q1은 블록 Q에 속한 픽셀일 수 있다. 그리고 p0, q0은 크로마 성분의 경계에 가장 가까이 위치한 픽셀이고 p1, q1은 크로마 성분의 경계에 두 번째로 가까이 위치한 픽셀을 나타낼 수 있다. p0’, q0’은 각각 p0, q0에 대응하여 필터링이 수행된 후의 픽셀 값을 나타낼 수 있다.
수학식 4의 실시예에서 tc는 양자화 파라미터(QP) 값을 기반으로 결정되는 변수일 수 있다. tc와 양자화 파라미터(QP) 간의 대응 관계는 룩업 테이블(look-up table) 형태로 부호화기 및 복호화기에 저장되어 있을 수도 있다.
또한, Clip3(x,y,z)는 z가 x보다 작은 경우 x일 수 있고, z가 y보다 큰 경우 y일 수 있다. 그렇지 않으면, Clip3(x,y,z)는 z일 수 있다. Clip1c(x)는 Clip3(0,(1<<BitDepthc)-1,x)와 동일한 값을 가질 수 있다. 여기서, BitDepthc는 크로마 성분의 비트 심도를 나타낼 수 있다.
도 11은 본 발명의 실시예에 따른 부호화 방법을 개략적으로 나타내는 흐름도이다.
도 11을 참조하면, 부호화기는 현재 블록에 대응되는 예측 블록을 생성할 수 있다(S1110). 상술한 바와 같이, 부호화기는 현재 블록에 대해 인터 예측 및/또는 인트라 예측을 수행함으로써, 현재 블록에 대응되는 예측 블록을 생성할 수 있다. 이 때, 부호화기는 현재 블록의 픽셀 값과 예측 블록의 픽셀 값을 픽셀 단위로 차분하여 잔차(residual) 신호, 즉 잔차 블록을 생성할 수 있다(S1120). 여기서, 인터 예측 방식은 도 13의 실시예를 통해 후술하기로 한다.
다시 도 11을 참조하면, 부호화기는 잔차 신호, 즉 잔차 신호에 대해 변환 및/또는 양자화를 수행할 수 있다(S1130). 부호화기는 변환 커널(kernel)을 적용하여 잔차 신호를 변환 부호화할 수 있으며, 변환 부호화 커널의 크기는 2*2, 4*4, 8*8, 16*16, 32*32 또는 64*64일 수 있다. 일 실시예로 n*n 블록에 대한 변환 계수 C는 다음 수학식 5에 의해 계산될 수 있다.
[수학식 5]
C(n,n)=T(n,n) x B(n,n) x T(n,n)T
여기서, C(n,n)은 n*n 크기의 변환 계수에 대한 행렬이고, T(n,n)은 n*n 크기의 변환 커널 행렬이고, B(n,n)은 n*n 크기의 잔차 블록에 대한 행렬이다.
변환 과정에 의해 변환 계수가 생성되면, 부호화기는 생성된 변환 계수에 대한 양자화를 수행할 수 있다.
잔차 블록과 변환 계수 중 어떤 것이 전송되는 지는 RDO를 통해 결정될 수 있다. 예측이 잘 된 경우에는 변환 부호화 없이 잔차 블록, 즉 잔차 신호가 그대로 전송될 수 있다. 부호화기는 변환 부호화 전/후의 비용 함수(cost function)를 비교할 수 있으며, 비용이 최소화되는 방법을 선택할 수 있다. 이 때, 부호화기는 현재 블록에 대해 전송하는 신호의 타입(잔차 신호 또는 변환 계수)에 대한 정보를 복호화 장치로 전송할 수 있다.
다시 도 11을 참조하면, 부호화기는 비트스트림을 생성할 수 있다(S1140).
부호화기는 변환 계수에 대한 스캐닝을 수행할 수 있으며, 스캐닝을 통하여 양자화된 2차원 블록 형태의 변환 계수를 1차원 벡터 형태의 변환 계수로 재정렬할 수 있다. 이 때, 부호화기는 확률적 통계를 기초로 스캔 순서를 달리 하여 엔트로피 부호화 효율을 높일 수도 있다.
스캐닝이 수행되면, 부호화기는 스캐닝된 변환 계수 및 보조 정보(예를 들어, 현재 블록의 인터 예측 모드 정보)에 대한 엔트로피 부호화를 수행할 수 있다. 부호화된 정보들은 압축된 비트스트림을 형성하여 네트워크 추상 계층(NAL: Network Abstraction Layer)을 통해 전송되거나 저장될 수 있다.
다시 도 11을 참조하면, 부호화기는 현재 블록에 대응하는 복원 블록을 생성할 수 있다(S1150). 부호화기는 변환 계수 및/또는 양자화된 변환 계수에 대해 역양자화 및/또는 역변환을 수행함으로써, 복원된 잔차 블록을 생성할 수 있다. 이 때, 부호화기는 예측 블록과 복원된 잔차 신호를 더함으로써, 복원 블록을 생성할 수 있다.
복원 블록이 생성되면, 부호화기는 복원 블록(또는 복원 신호)에 대해 필터링을 수행할 수 있다(S1160). 부호화기는 복원 블록에 대해 디블록킹 필터, SAO 및/또는 ALF 등을 적용할 수 있다.
특히, 디블록킹 필터는 부호화 및 복호화 과정에서 발생하는 블록 경계 사이의 왜곡을 제거하기 위해 사용될 수 있다. 상술한 바와 같이 부호화기는 블록 간의 경계 및/또는 블록의 에지에 대해 BS를 결정할 수 있다. 또한, 부호화기는 루마 성분 및/또는 크로마 성분에 대해 필터링 온/오프 결정 과정을 수행할 수 있다. BS 결정 과정 및 필터링 온/오프 결정 과정의 구체적인 실시예들은 상술한 바 있으므로, 여기서는 이에 대한 구체적인 설명은 생략하기로 한다.
필터링 온/오프 결정 과정에서 필터링이 수행되는 것으로 결정된 경우, 부호화기는 상기 결정된 BS 값을 기반으로 블록 간의 경계에 적용되는 필터를 결정할 수 있다. 블록 간의 경계에 적용될 수 있는 필터에는 강한 필터 및 약한 필터가 있을 수 있다. 블록 간의 경계에 적용될 필터가 결정된 경우, 부호화기는 결정된 필터를 기반으로 블록 간의 경계에 대한 디블록킹 필터링을 수행할 수 있다.
도 12는 본 발명의 실시예에 따른 복호화 방법을 개략적으로 나타내는 흐름도이다.
도 12를 참조하면, 복호화기는 부호화기로부터 수신된 비트스트림에 대해 엔트로피 복호화를 수행할 수 있다(S1210). 일례로, 복호화기는 VLC(variable length coding) 테이블 및/또는 CABAC을 기반으로 현재 블록의 예측 모드 및 잔차 신호를 도출할 수 있다. 복호화기는 현재 블록에 대해 수신된 신호가 잔차 신호인지 아니면 변환 계수인지에 관한 정보를 얻을 수 있고, 현재 블록에 대해 잔차 신호나 1차원 벡터 형태의 변환 계수를 얻을 수 있다. 수신된 비트스트림에 복호화에 필요한 보조 정보(side information)가 포함되는 경우, 이들이 함께 엔트로피 복호화될 수도 있다.
다시 도 12를 참조하면, 복호화기는 엔트로피 복호화된 신호를 기반으로 잔차 블록을 생성할 수 있다(S1220).
복호화기는 엔트로피 복호화된 잔차 신호나 변환 계수에 대해 역스캐닝을 수행함으로써, 2차원 블록을 생성할 수 있다. 이 때, 잔차 신호의 경우 잔차 블록이 생성되고, 변환 계수의 경우 2차원 블록 형태의 변환 계수가 생성될 수 있다. 변환 계수가 생성된 경우, 복호화기는 생성된 변환 계수에 대해 역양자화를 수행할 수 있다.
복호화기는 역양자화된 변환 계수에 대해 역변환을 수행함으로써 잔차 블록을 생성할 수 있다. 역변환 과정은 다음 수학식 6에 의해 나타내어질 수 있다.
[수학식 6]
B(n,n)=T(n,n) x C(n,n) x T(n,n)T
다시 도 12를 참조하면, 복호화기는 현재 블록에 대응되는 예측 블록을 생성할 수 있다(S1230). 상술한 바와 같이, 복호화기는 현재 블록에 대해 인터 예측 및/또는 인트라 예측을 수행함으로써, 현재 블록에 대응되는 예측 블록을 생성할 수 있다. 이 때, 복호화기는 예측 블록의 픽셀 값과 잔차 블록의 픽셀 값을 픽셀 단위로 더함으로써, 복원 블록을 생성할 수 있다(S1240). 여기서, 인터 예측 방식은 도 13의 실시예를 통해 후술하기로 한다.
복원 블록이 생성되면, 복호화기는 복원 블록(또는 복원 신호)에 대해 필터링을 수행할 수 있다(S1250). 복호화기는 복원 블록에 대해 디블록킹 필터, SAO 및/또는 ALF 등을 적용할 수 있다.
특히, 디블록킹 필터는 부호화 및 복호화 과정에서 발생하는 블록 경계 사이의 왜곡을 제거하기 위해 사용될 수 있다. 상술한 바와 같이 복호화기는 블록 간의 경계 및/또는 블록의 에지에 대해 BS를 결정할 수 있다. 또한, 복호화기는 루마 성분 및/또는 크로마 성분에 대해 필터링 온/오프 결정 과정을 수행할 수 있다. BS 결정 과정 및 필터링 온/오프 결정 과정의 구체적인 실시예들은 상술한 바 있으므로, 여기서는 이에 대한 구체적인 설명은 생략하기로 한다.
필터링 온/오프 결정 과정에서 필터링이 수행되는 것으로 결정된 경우, 복호화기는 상기 결정된 BS 값을 기반으로 블록 간의 경계에 적용되는 필터를 결정할 수 있다. 블록 간의 경계에 적용될 수 있는 필터에는 강한 필터 및 약한 필터가 있을 수 있다. 블록 간의 경계에 적용될 필터가 결정된 경우, 복호화기는 결정된 필터를 기반으로 블록 간의 경계에 대한 디블록킹 필터링을 수행할 수 있다.
도 13은 인터 예측 방법의 실시예를 설명하기 위한 도면이다.
도 13은 현재 블록(1310) 및 참조 픽쳐 내에서 상기 현재 블록(1310)과 공간적으로 동일한 위치에 존재하는 동일 위치 블록(1320)을 도시한다. 도 13의 실시예에 따른 인터 예측 방법은 별도의 언급이 없는 경우, 부호화기 및 복호화기에 동일한 방식으로 적용될 수 있다.
인터 모드에서, 부호화기 및 복호화기는 현재 블록의 움직임 정보를 도출한 후, 도출된 움직임 정보를 기반으로 현재 블록에 대한 움직임 보상을 수행함으로써 상기 현재 블록에 대응하는 예측 블록을 생성할 수 있다. 이 때, 움직임 정보 도출 방식은 현재 블록의 예측 모드(예를 들어, PredMode)에 따라 다를 수 있다. 인터 예측에 사용되는 예측 모드에는 스킵 모드(예를 들어, MODE_SKIP) 및 스킵 모드가 아닌 일반적인 인터 모드(예를 들어, MODE_INTER)가 있을 수 있다. 여기서, 스킵 모드는 잔차 신호의 부호화, 전송 과정이 생략되는 모드를 의미할 수 있다. 스킵 모드가 아닌 일반적인 인터 모드에는 AMVP(Advanced Motion Vector Predictor), 머지(merge) 등이 있을 수 있다.
상술한 바와 같이, 부호화기는 입력된 현재 픽쳐를 하나 이상의 CU로 분할할 수 있다. CU가 결정되면, 부호화기는 CU를 분할하여 PU를 생성할 수 있다. 즉, 인터 모드에서 하나의 CU는 적어도 하나의 PU로 구성될 수 있다.
각각의 PU는 스킵 모드 또는 스킵 모드가 아닌 일반적인 인터 모드를 가질 수 있다. 스킵 모드가 적용되는 경우에 CU는 더 작은 PU로 분할되지 않을 수 있으며, 이 경우 PU의 파티션 모드(예를 들어, PartMode)는 2Nx2N 모드(예를 들어, PART_2Nx2N)에 해당될 수 있다. 여기서, 파티션 모드는 PU의 크기(및/또는 형태)를 나타낼 수 있다. 스킵 모드가 아닌 일반적인 인터 모드가 적용되는 경우에 CU에는 복수의 파티션 모드 중에서 하나가 적용될 수 있다. 여기서, 상기 복수의 파티션 모드는 일례로 2N*2N 모드(예를 들어, PART_2Nx2N), 2N*N 모드(예를 들어, PART_2NxN), N*2N 모드(예를 들어, PART_Nx2N), N*N 모드(예를 들어, PART_NxN), 2NxnU 모드(예를 들어, PART_2NxnU), 2NxnD 모드(예를 들어, PART_2NxnD), nLx2N 모드(예를 들어, PART_nLx2N) 및 nRx2N 모드(예를 들어, PART_nRx2N)를 포함할 수 있다.
상술한 예측 모드(PredMode) 및 파티션 모드(PartMode)에 관한 정보는 CU 레벨의 신택스(syntax)에서 정의되어, 부호화기로부터 복호화기로 전송될 수 있다. 복호화기는 전송된 예측 모드 및 파티션 모드 정보를 기반으로 예측 대상이 되는 PU 및 상기 PU에 대응되는 예측 모드를 결정할 수 있다. 이하, 후술되는 실시예에서 ‘현재 블록’이라 함은 현재 PU에 대응되는 예측 대상 블록을 의미할 수 있다.
부호화기는 현재 픽쳐의 이전 픽쳐를 기반으로 움직임 추정(motion estimation)을 수행하거나 현재 픽쳐의 이전 픽쳐 및 이후 픽쳐를 기반으로 움직임추정을 수행함으로써, 현재 블록의 움직임 정보를 도출할 수 있다. 이 때, 상기 움직임 정보에는 움직임 벡터(motion vector), 참조 픽쳐 인덱스(reference picture index) 및 예측 방향 인덱스 등이 있을 수 있다.
부호화기는 현재 블록의 움직임 정보를 그대로 보내지 않고, 압축 효율을 높이기 위해 시간적으로 및/또는 공간적으로 인접하여 위치한 블록들을 기반으로 움직임 정보의 예측 값을 도출한 후, 상기 예측 값 도출에 필요한 정보 및/또는 움직임 정보 값과 상기 예측 값 간의 차이 값을 복호화기로 전송할 수 있다. 이 때, 복호화기는 부호화기로부터 전송된 정보를 기반으로 현재 블록의 움직임 정보를 도출할 수 있다. 상술한 바와 같이, 인터 예측 모드에는 머지 모드 및 AMVP 모드가 있을 수 있으며, 움직임 정보 도출 방식은 머지 모드 및 AMVP 모드에서 서로 다를 수 있다.
일 실시예로, 머지 모드에서 부호화기 및 복호화기는 머지 후보 리스트(예를 들어, MergeCandList)를 생성할 수 있다. 이 때, 부호화기 및 복호화기는 도 13에 도시된 바와 같이, 현재 블록(1310)에 인접하여 위치한 복원된 주변 블록(A1, B1, B0, A0 및/또는 B2) 및 참조 픽쳐 내의 동일 위치 블록(1320)을 기반으로 도출되는 콜 블록(C0, C3, BR 또는 H, 이하 Col이라 함)의 움직임 정보를 기반으로, 머지 후보들을 도출할 수 있다. 이 때, 동일 위치 블록(1320)이 속하는 참조 픽쳐를 결정하기 위해 부호화기 및 복호화기는 소정의 계산 방식에 의해 상기 참조 픽쳐를 지시하는 인덱스를 도출할 수 있다. 여기서, 복원된 주변 블록의 움직임 정보를 기반으로 도출되는 머지 후보는 공간적 머지 후보로 불릴 수 있으며, 콜 블록의 움직임 정보를 기반으로 도출되는 머지 후보는 시간적 머지 후보로 불릴 수 있다. 또한, 움직임 정보가 머지 후보로서 머지 후보 리스트에 삽입되는 순서는 일례로, A1, B1, B0, A0, B2, Col일 수 있다.
머지 후보 리스트에 속한 머지 후보 중에서 현재 블록의 움직임 정보와 동일한 움직임 정보를 갖는 후보가 존재하는 경우, 부호화기는 현재 블록의 예측 모드를 머지 모드로 결정할 수 있다. 이 때, 부호화기는 머지 플래그(예를 들어, merge_flag)를 부호화하여 복호화기로 전송할 수 있다. 여기서, 머지 플래그는 현재 블록의 예측 모드가 머지 모드인지 여부를 지시하는 플래그에 해당될 수 있다. 예를 들어, 현재 블록의 예측 모드가 머지 모드인 경우, 머지 플래그에는 0의 값이 할당될 수 있다(merge_flag=0). 또한, 부호화기는 머지 후보 리스트에 속한 머지 후보 중에서 어떤 머지 후보가 현재 블록의 움직임 정보와 동일한지를 지시하는 머지 인덱스(예를 들어, merge_idx)를 부호화하여 복호화기로 전송할 수 있다.
또한, 부호화기는 현재 블록의 움직임 정보를 기반으로 움직임 보상(motion compensation)을 수행하여 현재 블록에 대응하는 예측 블록을 생성할 수 있다. 이 때, 상술한 바와 같이 부호화기는 현재 블록 및 머지 모드에서 생성된 예측 블록 간의 차이에 해당되는 잔차 블록(및/또는 잔차 신호)을 부호화하여 복호화기로 전송할 수 있다. 잔차 신호가 존재하지 않는 경우에 부호화기는 현재 블록의 예측 모드를 스킵 모드로 결정할 수 있으며, 스킵 모드를 지시하는 정보(예를 들어, MODE_SKIP)를 부호화하여 복호화기로 전송할 수 있다. 이러한 경우의 스킵 모드는 머지 스킵 모드로도 불릴 수 있으며, 이는 Merge_SKIP으로 나타내어질 수 있다.
머지 모드에서, 복호화기는 부호화기가 전송한 예측 모드 정보, 머지 플래그 정보 및 머지 인덱스 정보 등을 수신하여 복호화할 수 있다. 이 때, 현재 블록의 예측 모드가 스킵 모드(PredMode==MODE_SKIP)이거나 머지 모드(merge_flag==1)이면, 복호화기는 머지 모드 예측을 통해 현재 블록의 움직임 벡터(예를 들어, mvLX) 및 참조 픽쳐 인덱스(예를 들어, refIdxLX)를 도출할 수 있다.
상술한 바와 같이, 복호화기는 머지 후보 리스트를 생성할 수 있다. 이 때, 머지 후보 리스트에 속한 머지 후보의 개수(예를 들어, NumMergeCand)가 1개이면, 복호화기는 머지 인덱스의 값을 1로 설정할 수도 있다. 그렇지 않으면 복호화기는 부호화기로부터 전송된 머지 인덱스 값을 현재 블록의 머지 인덱스 값으로 사용할 수 있다. 머지 인덱스 값이 결정되면 복호화기는 머지 후보 리스트 내의 머지 후보들 중에서 머지 인덱스 값이 지시하는 후보를, 현재 블록의 움직임 정보(여기서, 움직임 정보는 움직임 벡터 및 참조 픽쳐 인덱스를 포함함)로 결정할 수 있다. 이 때, 복호화기는 결정된 움직임 정보를 기반으로 움직임 보상을 수행함으로써 현재 블록에 대응되는 예측 블록을 생성할 수 있다.
다른 실시예로, AMVP 모드에서 부호화기 및 복호화기는 움직임 벡터 예측자 후보 리스트(motion vector predictor candidate list, 여기서, 움직임 벡터 예측자 후보 리스트는 일례로 mvpListLX로 나타내어질 수 있음)를 생성할 수 있다. 이 때, 부호화기 및 복호화기는 도 13에 도시된 바와 같이, 현재 블록(1310)에 인접하여 위치한 복원된 주변 블록(A0, A1, B0, B1 및/또는 B2) 및 참조 픽쳐 내의 동일 위치 블록(1320)을 기반으로 도출되는 콜 블록(C0, C3, BR 또는 H, 이하 Col이라 함)의 움직임 정보를 기반으로, 움직임 벡터 예측자 후보들을 도출할 수 있다. 여기서, 복원된 주변 블록의 움직임 정보를 기반으로 도출되는 움직임 벡터 예측자 후보는 공간적 움직임 벡터 예측자 후보로 불릴 수 있으며, 콜 블록의 움직임 정보를 기반으로 도출되는 머지 후보는 시간적 움직임 벡터 예측자 후보로 불릴 수 있다.
이 때, 부호화기 및 복호화기는 A0 및 A1의 순서로 현재 블록의 좌측에 위치한 두 개의 블록을 체크하면서, 가용한 움직임 정보를 갖는 첫 번째 블록의 움직임 벡터를 제1 공간적 움직임 벡터 예측자 후보(일례로, 제1 공간적 움직임 벡터 예측자 후보는 mvLXA로 나타내어질 수 있음)로 결정할 수 있다. 또한, 부호화기 및 복호화기는 B0, B1 및 B2의 순서로 현재 블록의 상단에 위치한 세 개의 블록을 체크하면서, 가용한 움직임 정보를 갖는 첫 번째 블록의 움직임 벡터를 제2 공간적 움직임 벡터 예측자 후보(일례로, 제2 공간적 움직임 벡터 예측자 후보는 mvLXB로 나타내어질 수 있음)로 결정할 수 있다. 또한, 부호화기 및 복호화기는 동일 위치 블록(1320)이 속하는 참조 픽쳐를 결정하기 위해, 소정의 계산 방식에 의해 상기 참조 픽쳐를 지시하는 인덱스를 도출할 수 있다. 이 때, 부호화기 및 복호화기는 도출된 인덱스 정보를 기반으로 시간적 움직임 벡터 예측자 후보(일례로, 시간적 움직임 벡터 예측자 후보는 mvLXCol로 나타내어질 수 있음)를 도출할 수 있다.
제1 공간적 움직임 벡터 예측자 후보, 제2 공간적 움직임 벡터 예측자 후보 및 시간적 움직임 벡터 예측자 후보가 움직임 벡터 예측자 후보 리스트에 삽입되는 순서는, 일례로 mvLXCol, mvLXA, mvLXB일 수 있으며, 다른 예로 mvLXA, mvLXB, mvLXCol일 수도 있다. 이 때, 움직임 벡터 예측자 후보 리스트에는 가용한 움직임 벡터만이 삽입될 수 있다. 움직임 벡터 예측자 후보 리스트에 삽입되는 복수의 움직임 벡터 예측자 후보가 동일한 값을 갖는 경우, 부호화기 및 복호화기는 동일한 값을 갖는 후보 중에서 가장 우선순위가 높은 후보를 제외한 나머지 후보들을 움직임 벡터 예측자 후보 리스트에서 삭제할 수 있다.
움직임 벡터 예측자 후보 리스트가 생성되면, 부호화기는 움직임 벡터 예측자 후보 리스트에 속한 움직임 벡터 예측자 후보들을 현재 블록의 움직임 벡터와 비교하여, 비용 함수(cost function, 일례로, 비용 함수는 JMot SAD로 나타내어질 수 있음)가 최소화될 수 있는 최적의 움직임 벡터 예측자를 결정할 수 있다. 이 때, 부호화기는 결정된 최적의 움직임 벡터 예측자를 지시하는 움직임 벡터 예측자 인덱스(예를 들어, mvpIdx)를 부호화하여 복호화기로 전송할 수 있다. 또한, 부호화기는 상기 결정된 최적의 움직임 벡터 예측자 및 현재 블록의 움직임 벡터 간의 움직임 벡터 차분(Motion Vector Difference: MVD)을 구할 수 있고, 이를 엔트로피 부호화하여 복호화기로 전송할 수 있다.
그리고 부호화기는 현재 블록의 움직임 정보를 기반으로 움직임 보상(motion compensation)을 수행하여 현재 블록에 대응하는 예측 블록을 생성할 수 있다. 이 때, 상술한 바와 같이 부호화기는 현재 블록 및 머지 모드에서 생성된 예측 블록 간의 차이에 해당되는 잔차 블록(및/또는 잔차 신호)을 부호화하여 복호화기로 전송할 수 있다.
AMVP 모드에서, 복호화기는 부호화기가 전송한 움직임 벡터 예측자 인덱스, 움직임 벡터 차분 등을 수신하여 복호화할 수 있다. 이 때, 현재 블록의 예측 모드가 머지 모드가 아니면, 복호화기는 AMVP 모드 예측을 통해 현재 블록의 움직임 벡터 및 참조 픽쳐 인덱스를 도출할 수 있다.
상술한 바와 같이, 복호화기는 움직임 벡터 예측자 후보 리스트를 생성할 수 있다. 이 때, 움직임 벡터 예측자 후보 리스트에 속한 움직임 벡터 예측자 후보의 개수(예를 들어, NumMVPCand(LX))가 1개이면, 복호화기는 움직임 벡터 예측자 인덱스의 값을 0으로 설정할 수도 있다. 그렇지 않으면(즉, 움직임 벡터 예측자 후보 리스트에 속한 움직임 벡터 예측자 후보의 개수가 2개 이상이면) 복호화기는 부호화기로부터 전송된 움직임 벡터 예측자 인덱스 값을 현재 블록의 움직임 벡터 예측자 인덱스 값으로 사용할 수 있다.
움직임 벡터 예측자 인덱스 값이 결정되면 복호화기는 움직임 벡터 예측자 후보 리스트 내의 움직임 벡터 예측자 후보들 중에서 상기 움직임 벡터 예측자 인덱스 값이 지시하는 후보를, 현재 블록의 움직임 벡터 예측자로 결정할 수 있다. 일례로, 상기 결정된 현재 블록의 움직임 벡터 예측자는 mvpLX에 할당될 수 있다. 이 때, 현재 블록의 움직임 벡터(예를 들어, mvLX)는 다음 수학식 7에 의해 도출될 수 있다.
[수학식 7]
mvLX[0] = mvdLX[0] + mvpLX[0]
mvLX[1] = mvdLX[1] + mvpLX[1]
여기서, mvLX[0]은 현재 블록의 움직임 벡터의 x 성분을 나타내고, mvLX[1]은 현재 블록의 움직임 벡터의 y 성분을 나타낼 수 있다. 또한, mvdLX[0]은 현재 블록에 대응하는 움직임 벡터 차분의 x 성분을 나타내고, mvdLX[1]은 현재 블록에 대응하는 움직임 벡터 차분의 y 성분을 나타낼 수 있다. 그리고 mvpLX[0]은 현재 블록에 대응하는 움직임 벡터 예측자의 x 성분을 나타내고, mvpLX[1]은 현재 블록에 대응하는 움직임 벡터 예측자의 y 성분을 나타낼 수 있다.
이 때, 복호화기는 도출된 움직임 벡터를 기반으로 움직임 보상을 수행함으로써 현재 블록에 대응되는 예측 블록을 생성할 수 있다.
상술한 실시예에서, 방법들은 일련의 단계 또는 블록으로써 흐름도 또는 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 병렬적으로 발생할 수 있다. 또한, 당업자라면 순서도에 나타낸 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도 또는 흐름도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
이상에서 본 발명은 실시예를 참조하여 설명되었으나, 상술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합이 기술될 수는 없지만, 당해 기술 분야에서 통상의 지식을 가진 당업자는 본 발명의 사상에서 벗어나지 않는 범위 내에서 본 발명에 대한 다양한 변경 또는 수정이 가능함을 이해할 수 있을 것이다.

Claims (20)

  1. 크로마(chroma) 성분을 갖는 크로마 필터링 단위 블록 내에 위치한 크로마 경계에 대해 크로마 BS(Boundary Strength) 값을 결정하는 단계; 및
    상기 크로마 BS 값을 기반으로 상기 크로마 경계에 대한 디블록킹 필터링(deblocking filtering)을 수행하는 단계를 포함하되,
    상기 크로마 필터링 단위 블록은 상기 크로마 BS 값이 결정되는 단위로서 상기 크로마 경계의 좌측에 인접한 크로마 블록 P 및 상기 크로마 경계의 우측에 인접한 크로마 블록 Q로 구성되고,
    상기 크로마 BS 값 결정 단계에서는, 상기 크로마 블록 P 및 상기 크로마 블록 Q 중에서 적어도 하나를 기반으로 상기 크로마 BS 값을 결정하는 것을 특징으로 하는 디블록킹 필터링 방법.
  2. 제 1항에 있어서,
    상기 크로마 BS 값 결정 단계에서는,
    상기 크로마 블록 P 및 상기 크로마 블록 Q 중 적어도 하나의 예측 모드에 관한 제1 정보, 및 상기 크로마 블록 P와 상기 크로마 블록 Q 중 적어도 하나의 변환 계수에 관한 제2 정보 중에서 적어도 하나를 기반으로 상기 크로마 BS 값을 결정하는 것을 특징으로 하는 디블록킹 필터링 방법.
  3. 제 2항에 있어서,
    상기 크로마 BS 값 결정 단계에서는,
    상기 크로마 블록 P 또는 크로마 블록 Q의 예측 모드가 인트라 모드인 경우, 상기 크로마 BS가 가질 수 있는 값 중에서 가장 높은 값을 상기 크로마 BS 값으로 결정하는 것을 특징으로 하는 디블록킹 필터링 방법.
  4. 제 3항에 있어서,
    상기 크로마 BS 값 결정 단계에서는,
    상기 크로마 블록 P 및 상기 크로마 블록 Q의 예측 모드가 모두 인트라 모드가 아닌 경우, 상기 크로마 블록 P 및 크로마 블록 Q가 모두 0이 아닌 변환 계수(transform coefficient)를 포함하지 않으면 상기 크로마 BS가 가질 수 있는 값 중에서 가장 낮은 값을 상기 크로마 BS 값으로 결정하는 것을 특징으로 하는 디블록킹 필터링 방법.
  5. 제 4항에 있어서,
    상기 크로마 BS 값 결정 단계에서는,
    상기 크로마 블록 P 또는 크로마 블록 Q의 예측 모드가 인트라 모드인 경우, 상기 크로마 BS 값을 2로 결정하고,
    상기 크로마 블록 P 및 상기 크로마 블록 Q의 예측 모드가 모두 인트라 모드가 아닌 경우, 상기 크로마 블록 P 또는 상기 크로마 블록 Q가 0이 아닌 변환 계수(transform coefficient)를 포함하면 상기 크로마 BS 값을 1로 결정하고, 상기 크로마 블록 P 및 상기 크로마 블록 Q가 모두 0이 아닌 변환 계수를 포함하지 않으면 상기 크로마 BS 값을 0으로 결정하는 것을 특징으로 하는 디블록킹 필터링 방법.
  6. 제 1항에 있어서,
    상기 크로마 BS 값 결정 단계에서는, 루마 BS, 상기 크로마 블록 P 및 상기 크로마 블록 Q 중에서 적어도 하나를 기반으로 상기 크로마 BS 값을 결정하고,
    상기 루마 BS는 상기 크로마 성분에 대응되는 루마(luma) 성분을 갖는 루마 필터링 단위 블록 내에 위치한 루마 경계의 BS인 것을 특징으로 하는 디블록킹 필터링 방법.
  7. 제 6항에 있어서,
    상기 크로마 BS 값 결정 단계에서는,
    상기 루마 BS 값에 관한 제1 정보, 및 상기 크로마 블록 P와 상기 크로마 블록 Q 중 적어도 하나의 변환 계수에 관한 제2 정보 중에서 적어도 하나를 기반으로 상기 크로마 BS 값을 결정하는 것을 특징으로 하는 디블록킹 필터링 방법.
  8. 제 7항에 있어서,
    상기 크로마 BS 값 결정 단계에서는,
    상기 루마 BS 값이 2보다 크거나 같은 경우, 상기 크로마 BS가 가질 수 있는 값 중에서 가장 높은 값을 상기 크로마 BS 값으로 결정하는 것을 특징으로 하는 디블록킹 필터링 방법.
  9. 제 8항에 있어서,
    상기 크로마 BS 값 결정 단계에서는,
    상기 루마 BS 값이 2보다 작은 경우, 상기 크로마 블록 P 및 상기 크로마 블록 Q가 모두 0이 아닌 변환 계수(transform coefficient)를 포함하지 않으면 상기 크로마 BS가 가질 수 있는 값 중에서 가장 낮은 값을 상기 크로마 BS 값으로 결정하는 것을 특징으로 하는 디블록킹 필터링 방법.
  10. 제 9항에 있어서,
    상기 크로마 BS 값 결정 단계에서는,
    상기 루마 BS 값이 2보다 크거나 같은 경우, 상기 크로마 BS 값을 2로 결정하고,
    상기 루마 BS 값이 2보다 작은 경우, 상기 크로마 블록 P 또는 상기 크로마 블록 Q가 0이 아닌 변환 계수(transform coefficient)를 포함하면 상기 크로마 BS 값을 1로 결정하고, 상기 크로마 블록 P 및 상기 크로마 블록 Q가 모두 0이 아닌 변환 계수를 포함하지 않으면 상기 크로마 BS 값을 0으로 결정하는 것을 특징으로 하는 디블록킹 필터링 방법.
  11. 크로마(chroma) 성분을 갖는 크로마 필터링 단위 블록 내에 위치한 크로마 경계에 대해 크로마 BS(Boundary Strength) 값을 결정하는 단계;
    상기 크로마 성분에 대응되는 루마 성분을 갖는 루마 필터링 단위 블록 내의 소정의 위치에 존재하는 복수의 픽셀을 기반으로, 상기 크로마 경계에 대한 디블록킹 필터링 수행 여부를 결정하는 단계; 및
    상기 디블록킹 필터링이 수행되는 것으로 결정된 경우, 상기 크로마 BS 값을 기반으로 상기 크로마 경계에 대한 디블록킹 필터링을 수행하는 단계를 포함하는 디블록킹 필터링 방법.
  12. 제 11항에 있어서,
    상기 디블록킹 필터링 수행 여부 결정 단계에서는,
    상기 소정의 위치에 존재하는 복수의 픽셀을 기반으로 결정된 변수 d 값, 및 상기 루마 성분의 양자화 파라미터(Quantization Parameter: QP)에 따라 결정된 변수 β 값을 기반으로, 상기 크로마 경계에 대한 디블록킹 필터링 수행 여부를 결정하는 것을 특징으로 하는 디블록킹 필터링 방법.
  13. 제 12항에 있어서,
    상기 크로마 필터링 단위 블록 및 상기 루마 필터링 단위 블록이 속한 슬라이스가 인트라 슬라이스(intra slice)인 경우,
    상기 디블록킹 필터링 수행 여부 결정 단계에서는,
    상기 변수 d 값이 상기 변수 β에 2를 곱한 값보다 작으면 상기 크로마 경계에 대해 디블록킹 필터링을 수행하는 것으로 결정하고, 상기 변수 β에 2를 곱한 값보다 크거나 같으면 상기 크로마 경계에 대해 디블록킹 필터링을 수행하지 않는 것으로 결정하는 것을 특징으로 하는 디블록킹 필터링 방법.
  14. 제 12항에 있어서,
    상기 크로마 필터링 단위 블록 및 상기 루마 필터링 단위 블록이 속한 슬라이스가 인트라 슬라이스(intra slice)가 아닌 경우,
    상기 디블록킹 필터링 수행 여부 결정 단계에서는,
    상기 변수 d 값이 상기 변수 β보다 작으면 상기 크로마 경계에 대해 디블록킹 필터링을 수행하는 것으로 결정하고, 상기 변수 β보다 크거나 같으면 상기 크로마 경계에 대해 디블록킹 필터링을 수행하지 않는 것으로 결정하는 것을 특징으로 하는 디블록킹 필터링 방법.
  15. 제 11항에 있어서,
    상기 변수 β 값은 상기 루마 성분의 양자화 파라미터 및 소정의 룩업 테이블(look-up table)을 기반으로 결정되고, 상기 룩업 테이블은 상기 양자화 파라미터와 상기 변수 β 간의 매핑 관계를 나타내는 테이블인 것을 특징으로 하는 디블록킹 필터링 방법.
  16. 제 11항에 있어서,
    상기 루마 필터링 단위 블록은 상기 루마 필터링 단위 블록 내에 위치한 루마 경계의 루마 BS 값이 결정되는 단위로서, 상기 루마 경계의 좌측에 인접한 루마 블록 P 및 상기 루마 경계의 우측에 인접한 루마 블록 Q로 구성되는 것을 특징으로 하는 디블록킹 필터링 방법.
  17. 제 16항에 있어서,
    상기 루마 블록 P 및 상기 루마 블록 Q의 크기는 각각 4x4이고, 상기 루마 필터링 단위 블록은 상기 루마 블록 P 및 상기 루마 블록 Q로 구성된 8x4 크기의 블록인 것을 특징으로 하는 디블록킹 필터링 방법.
  18. 제 17항에 있어서,
    상기 변수 d 값은 아래의 수학식에 의해 결정되는 것을 특징으로 하는 디블록킹 필터링 방법.
    Figure pat00006

    상기 p20, p10 및 p00은 상기 블록 P 내의 첫 번째 행에 위치한 픽셀의 픽셀 값이고, 상기 p00은 상기 루마 경계에 가장 가까이 위치한 픽셀의 픽셀 값이고, 상기 p10는 상기 루마 경계에 두 번째로 가까이 위치한 픽셀의 픽셀 값이고, 상기 p20은 상기 루마 경계에 세 번째로 가까이 위치한 픽셀의 픽셀 값이고,
    상기 q20, q10 및 q00은 상기 블록 Q 내의 첫 번째 행에 위치한 픽셀의 픽셀 값이고, 상기 q00은 상기 루마 경계에 가장 가까이 위치한 픽셀의 픽셀 값이고, 상기 q10는 상기 루마 경계에 두 번째로 가까이 위치한 픽셀의 픽셀 값이고, 상기 q20은 상기 루마 경계에 세 번째로 가까이 위치한 픽셀의 픽셀 값이고,
    상기 p23, p13 및 p03은 상기 블록 P 내의 네 번째 행에 위치한 픽셀의 픽셀 값이고, 상기 p03은 상기 루마 경계에 가장 가까이 위치한 픽셀의 픽셀 값이고, 상기 p13는 상기 루마 경계에 두 번째로 가까이 위치한 픽셀의 픽셀 값이고, 상기 p23은 상기 루마 경계에 세 번째로 가까이 위치한 픽셀의 픽셀 값이고,
    상기 q23, q13 및 q03은 상기 블록 Q 내의 네 번째 행에 위치한 픽셀의 픽셀 값이고, 상기 q03은 상기 루마 경계에 가장 가까이 위치한 픽셀의 픽셀 값이고, 상기 q13는 상기 루마 경계에 두 번째로 가까이 위치한 픽셀의 픽셀 값이고, 상기 q23은 상기 루마 경계에 세 번째로 가까이 위치한 픽셀의 픽셀 값임.
  19. 부호화기로부터 수신된 비트스트림을 기반으로 영상을 복원하는 단계;
    상기 복원된 영상에서 크로마(chroma) 성분을 갖는 크로마 필터링 단위 블록 내에 위치한 크로마 경계에 대해 크로마 BS(Boundary Strength) 값을 결정하는 단계; 및
    상기 크로마 BS 값을 기반으로 상기 크로마 경계에 대한 디블록킹 필터링(deblocking filtering)을 수행하는 단계를 포함하되,
    상기 크로마 필터링 단위 블록은 상기 크로마 BS 값이 결정되는 단위로서 상기 크로마 경계의 좌측에 인접한 크로마 블록 P 및 상기 크로마 경계의 우측에 인접한 크로마 블록 Q로 구성되고,
    상기 크로마 BS 값 결정 단계에서는, 상기 크로마 블록 P 및 상기 크로마 블록 Q 중에서 적어도 하나를 기반으로 상기 크로마 BS 값을 결정하는 것을 특징으로 하는 영상 복호화 방법.
  20. 부호화기로부터 수신된 비트스트림을 기반으로 영상을 복원하는 영상 복원부; 및
    상기 복원된 영상에서 크로마(chroma) 성분을 갖는 크로마 필터링 단위 블록 내에 위치한 크로마 경계에 대해 크로마 BS(Boundary Strength) 값을 결정하고, 상기 크로마 BS 값을 기반으로 상기 크로마 경계에 대한 디블록킹 필터링(deblocking filtering)을 수행하는 필터부를 포함하되,
    상기 크로마 필터링 단위 블록은 상기 크로마 BS 값이 결정되는 단위로서 상기 크로마 경계의 좌측에 인접한 크로마 블록 P 및 상기 크로마 경계의 우측에 인접한 크로마 블록 Q로 구성되고,
    상기 필터부는, 상기 크로마 블록 P 및 상기 크로마 블록 Q 중에서 적어도 하나를 기반으로 상기 크로마 BS 값을 결정하는 것을 특징으로 하는 영상 복호화 장치.
KR1020130003114A 2012-01-12 2013-01-10 디블록킹 필터링 방법 및 그 장치 KR20130083405A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120004028 2012-01-12
KR20120004028 2012-01-12

Publications (1)

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

Family

ID=48994463

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130003114A KR20130083405A (ko) 2012-01-12 2013-01-10 디블록킹 필터링 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR20130083405A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020224581A1 (en) * 2019-05-05 2020-11-12 Beijing Bytedance Network Technology Co., Ltd. Chroma deblocking harmonization for video coding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020224581A1 (en) * 2019-05-05 2020-11-12 Beijing Bytedance Network Technology Co., Ltd. Chroma deblocking harmonization for video coding

Similar Documents

Publication Publication Date Title
US11107253B2 (en) Image processing method, and image decoding and encoding method using same
KR102424419B1 (ko) 비디오 신호 처리 방법 및 장치
KR101542585B1 (ko) 영상 부호화/복호화 방법 및 그 장치
KR20180085526A (ko) 효율적 변환을 처리하는 영상 복호화 및 부호화 방법
KR20160106023A (ko) 동영상 부호화 장치
JP2019530345A (ja) 映像コーディングシステムにおける照度補償基盤インター予測方法及び装置
KR20140134255A (ko) 예측 단위의 파티션 모드에 기초한 계수 스캔 방법 및 장치
EP3011738A1 (en) Adaptive color transforms for video coding
KR20140111043A (ko) 영상 부호화/복호화 방법 및 그 장치
US11190769B2 (en) Method and apparatus for coding image using adaptation parameter set
KR102480967B1 (ko) 영상 부호화/복호화 방법 및 장치
CN111052741A (zh) 基于有效传送的差分量化参数的影像编码/解码方法及装置
KR20210065063A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20210042841A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20130083405A (ko) 디블록킹 필터링 방법 및 그 장치
US20230328250A1 (en) Method for processing image providing improved arithmetic encoding, method for decoding and encoding image using same, and apparatus for same
KR20190088338A (ko) 변환 처리를 제공하는 영상 복호화 및 부호화 방법
US11240535B2 (en) Method and device for filtering image in image coding system

Legal Events

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