KR20200090984A - 영상 정보 인코딩/디코딩 방법 및 장치 - Google Patents
영상 정보 인코딩/디코딩 방법 및 장치 Download PDFInfo
- Publication number
- KR20200090984A KR20200090984A KR1020207021445A KR20207021445A KR20200090984A KR 20200090984 A KR20200090984 A KR 20200090984A KR 1020207021445 A KR1020207021445 A KR 1020207021445A KR 20207021445 A KR20207021445 A KR 20207021445A KR 20200090984 A KR20200090984 A KR 20200090984A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- value
- filtering
- deblocking
- boundary
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
본 발명은 디블록킹 필터링의 방법과 이를 위해 bS(boundary Strength)를 유도하는 방법 및 이를 이용하는 인코딩/디코딩 방법 및 장치에 관한 것으로서, 본 발명에 따른 bS 유도 방법은, 디블록킹 필터링을 적용하는 단위 블록인 디블록킹 필터링 단위 블록의 경계를 유도하는 단계 및 상기 디블록킹 필터링 단위 블록 내의 bS (boundary Strength) 설정 단위 블록별로 bS를 설정(set)하는 단계를 포함하며, 상기 bS 설정 단계에서는, 상기 bS 설정 단위 블록의 경계로서 상기 디블록킹 필터링 단위 블록의 경계에 해당하는 대상 경계에 대하여 bS 값을 설정할 수 있다.
Description
본 발명은 영상 정보 압축 기술에 관한 것으로서, 더 구체적으로는 인-루프 필터(in-loop filter)로서 디블록킹 필터(deblocking filter)를 적용하는 방법에 관한 것이다.
최근 고해상도, 고품질의 영상에 대한 요구가 다양한 응용 분야에서 증가하고 있다. 하지만, 영상이 고해상도를 가지고 고품질이 될수록 해당 영상에 관한 정보량도 함께 증가한다.
따라서 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 정보를 전송하거나 기존의 저장 매체를 이용해 영상 정보를 저장하는 경우에는, 정보의 전송 비용과 저장 비용이 증가하게 된다.
고해상도, 고품질 영상의 정보를 효과적으로 전송하거나 저장하고, 재생하기 위해 고효율의 영상 압축 기술을 이용할 수 있다.
영상 압축의 효율을 높이기 위해, 인터 예측과 인트라 예측을 이용할 수 있다. 인터 예측(inter prediction) 방법에서는 다른 픽처의 정보를 참조하여 현재 픽처(picture)의 픽셀값을 예측하며, 인트라 예측(intra prediction) 방법에서는 동일한 픽처 내에서 픽셀 간 연관 관계를 이용하여 픽셀값을 예측한다.
예측된 영상의 처리 단위, 예컨대 블록에 대하여는 영상을 원본과 동일하게 만들기 위한 다양한 방법이 적용될 수 있다. 이를 통해 디코딩 장치는 해당 영상을 더 정확하게(원본과 더 일치하게) 디코딩할 수 있으며, 인코딩 장치는 해당 영상이 더 정확하게 복원될 수 있도록 인코딩할 수 있다.
본 발명은 디블록킹 필터링을 적용함에 있어서, 디블로킹 아티팩트를 효과적으로 제거하여 원본에 가깝게 영상을 복원하는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명은 디블록킹 필터링을 적용함에 있어서 복잡도를 낮추어 압축 효율을 높일 수 있는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명은 디블록킹 필터링을 적용함에 있어서, bS (boundary Strength)를 결정하는 단위 블록을 효과적으로 설정하여 복잡도를 줄일 수 있는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명은 디블록킹 필터링을 적용함에 있어서, bS 값을 효과적으로 설정함으로써 복잡도를 줄일 수 있은 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명의 일 실시형태는 bS (boundary Strength) 유도 방법으로서, 디블록킹 필터링을 적용하는 단위 블록인 디블록킹 필터링 단위 블록의 경계를 유도하는 단계 및 상기 디블록킹 필터링 단위 블록 내의 bS (boundary Strength) 설정 단위 블록별로 bS를 설정(set)하는 단계를 포함하며, 상기 bS 설정 단계에서는, 상기 bS 설정 단위 블록의 경계로서 상기 디블록킹 필터링 단위 블록의 경계에 해당하는 대상 경계에 대하여 bS 값을 설정할 수 있다.
상기 bS 설정 단계에서는, 상기 대상 경계를 경계로 하는 두 블록 중 적어도 하나가 인트라 코딩되었으면, 상기 대상 경계의 bS 값을 bS2로 설정하며, 상기 대상 경계를 경계로 하는 두 블록 중 적어도 하나가 인트라 코딩된 경우가 아니며, 상기 대상 경계가 디블록킹 필터링의 적용 대상인 경우에는 상기 대상 경계의 bS 값을 bS1으로 설정하고, 상기 대상 경계가 디블록킹 필터링의 적용 대상이 아닌 경우에는, 상기 대상 경계의 bS 값을 bS0으로 설정할 수 있으며, 상기 bS0, bS1 및 bS2는 bS0 < bS1 < bS2의 관계를 가질 수 있다.
bS가 bS1으로 설정되는 경우는, 상기 대상 경계를 경계로 하는 두 블록 중 적어도 하나가 인트라 코딩된 경우가 아닌 경우로서, 상기 대상 경계를 경계로 하는 두 블록 중 적어도 하나가 0이 아닌 변환 계수를 포함하는 경우 및 상기 대상 경계를 경계로 하는 두 블록이 서로 상이한 참조 픽처 또는 서로 상이한 움직임 벡터를 가지는 경우를 포함할 수 있다.
상기 디블록킹 필터링 단위 블록의 경계를 유도하는 단계 및 bS 설정하는 단계는, 상기 디블록킹 필터링 단위 블록을 포함하는 픽처 내의 수직 에지들에 대하여 적용된 후에, 상기 디블록킹 필터링 단위 블록을 포함하는 픽처 내의 수평 에지들에 대하여 적용될 수도 있다.
상기 디블록킹 필터링 단위 블록은 코딩 블록, 변환 블록, 예측 블록 및 8x8 픽셀 블록 중 어느 하나일 수 있다. 또한, 상기 bS 결정 단위 블록은 4x4 픽셀 블록일 수 있다.
본 발명의 다른 실시형태는 디블록킹 필터링 방법으로서, 대상 경계에 대하여 bS (boundary Strength) 설정 단위 블록별로 bS를 설정하는 단계 및 상기 대상 경계에 대하여 디블록킹 필터링를 적용 단위 블록별로 디블록킹 필터링을 적용하는 단계를 포함하며, 상기 bS를 설정하는 단계에서는, 상기 bS 설정 단위 블록의 경계로서 상기 디블록킹 필터링 단위 블록의 경계에 해당하는 대상 경계에 대하여 bS 값을 설정할 수 있다.
상기 bS 설정 단계에서는, 상기 대상 경계를 경계로 하는 두 블록 중 적어도 하나가 인트라 코딩되었으면, 상기 대상 경계의 bS 값을 bS2로 설정하며, 상기 대상 경계를 경계로 하는 두 블록 중 적어도 하나가 인트라 코딩된 경우가 아니며, 상기 대상 경계가 디블록킹 필터링의 적용 대상인 경우에는 상기 대상 경계의 bS 값을 bS1으로 설정하고, 상기 대상 경계가 디블록킹 필터링의 적용 대상이 아닌 경우에는, 상기 대상 경계의 bS 값을 bS0으로 설정할 수 있으며, 상기 bS0, bS1 및 bS2는 bS0 < bS1 < bS2의 관계를 가질 수 있다.
bS가 bS1으로 설정되는 경우는, 상기 대상 경계를 경계로 하는 두 블록 중 적어도 하나가 인트라 코딩된 경우가 아닌 경우로서, 상기 대상 경계를 경계로 하는 두 블록 중 적어도 하나가 0이 아닌 변환 계수를 포함하는 경우 및 상기 대상 경계를 경계로 하는 두 블록이 서로 상이한 참조 픽처 또는 서로 상이한 움직임 벡터를 가지는 경우를 포함할 수 있다.
상기 bS를 설정하는 단계 및 상기 디블록킹 필터링을 적용하는 단계는 상기 디블록킹 필터링 단위 블록을 포함하는 픽처 내의 수직 에지들에 대하여 적용된 후에, 상기 디블록킹 필터링 단위 블록을 포함하는 픽처 내의 수평 에지들에 대하여 적용될 수도 있다.
상기 대상 경계에 대하여 설정된 bS 값이 bS0보다 크고 디블록킹 필터링을 적용하는 경우에는 강한 필터링을 적용할 것인지 약한 필터링을 적용할 것인지를 결정할 수 있다.
상기 강한 필터링을 적용할 것인지 약한 필터링을 적용할 것인지는 상기 대상 경계를 경계로 하는 두 블록의 샘플들을 기반으로 결정할 수 있으며, 상기 대상 경계가 수직 에지인 경우에는 상기 대상 경계를 경계로 하는 샘플 행들의 샘플들 중 디블록킹 필터링의 대상이 되는 샘플들에 기반하여, 상기 대상 경계가 수평 에지인 경우에는 상기 대상 경계를 경계로 하는 샘플 열들의 샘플들 중 디블록킹 필터링의 대상이 되는 샘플들에 기반하여, 상기 강한 필터링을 적용할 것인지 약한 필터링을 적용할 것인지를 결정할 수 있다.
약한 필터링을 적용하는 것으로 결정된 경우에는, 디블록킹 필터링의 대상이 되는 샘플들 중 소정의 샘플들에만 필터링을 적용할 수도 있다.
상기 디블록킹 필터링 단위 블록은 코딩 블록, 변환 블록, 예측 블록 및 8x8 픽셀 블록 중 어느 하나일 수 있다. 또한, 상기 bS 결정 단위 블록은 4x4 픽셀 블록일 수 있다.
본 발명에 의하면, 디블록킹 필터링을 적용함에 있어서 디블로킹 아티팩트를 효과적으로 제거하여 원본에 가깝게 영상을 복원할 수 있다.
본 발명에 의하면, 디블록킹 필터링을 적용함에 있어서 복잡도를 낮추어 압축 효율을 높일 수 있다.
예컨대, 본 발명에 의하면, 디블록킹 필터링을 적용함에 있어서, bS (boundary Strength)를 결정하는 단위 블록을 효과적으로 설정하여 복잡도를 줄일 수 있다. 또한, 본 발명에 의하면, 디블록킹 필터링을 적용함에 있어서, bS 값을 효과적으로 설정함으로써 복잡도를 줄일 수도 있다.
도 1은 본 발명의 일 실시예에 따른 인코딩 장치(영상 부호화 장치)를 개략적으로 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 영상 디코딩 장치를 개략적으로 나타낸 블록도이다.
도 3은 본 발명에 따라서 디블록킹 필터를 적용하는 방법을 개략적으로 설명하는 순서도이다.
도 4는 본 발명에 따른 디블록킹 필터링의 진행 방식을 개략적으로 설명하는 도면이다.
도 5는 bS를 구하는 방법의 일 예를 개략적으로 설명하는 순서도이다.
도 6은 bS 값을 결정하는 방법의 일 예를 개략적으로 설명하는 도면이다.
도 7 및 도 8은 bS 값을 결정하는 방법의 다른 예를 개략적으로 설명하는 도면이다.
도 9는 디블록킹 적용 단위 블록의 경계와 bS 결정 단위 블록의 경계가 일치하는 경우에 bS를 결정하는 방법의 예를 개략적으로 나타낸 것이다.
도 10은 디블록킹 필터링을 수행하는 단위 블록에서 대표 bS 값을 결정하는 방법의 다른 예를 개략적으로 설명하는 도면이다.
도 11은 bS를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다.
도 12 내지 도 14는 bS 값을 3가지 값 중 어느 하나로 결정하는 방법의 예들을 개략적으로 설명하는 순서도이다.
도 15 및 도 16은 OMBC를 적용하는 경우에 적용되는 bS 결정 트리의 예들로서, bS를 결정하는 방법을 개략적으로 설명하는 순서도이다.
도 17 및 도 18은 bS를 결정하여 디블록킹 필터링을 적용하는 방법의 예들을 개략적으로 설명하는 도면이다.
도 19는 대표 bS를 결정하는 방법의 일 예를 개략적으로 설명하는 순서도이다.
도 20은 대표 bS를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다.
도 21은 bS 결정 트리를 간소화하는 방법을 개략적으로 설명하는 순서도이다.
도 22는 본 발명에 따라서, 영상을 인코딩하는 방법을 개략적으로 설명하는 순서도이다.
도 23은 본 발명에 따라서 영상을 디코딩하는 방법을 개략적으로 설명하는 순서도이다.
도 24는 본 발명에 따라서 bS를 유도하는 방법의 일 예를 개략적으로 설명하는 순서도이다.
도 2는 본 발명의 일 실시예에 따른 영상 디코딩 장치를 개략적으로 나타낸 블록도이다.
도 3은 본 발명에 따라서 디블록킹 필터를 적용하는 방법을 개략적으로 설명하는 순서도이다.
도 4는 본 발명에 따른 디블록킹 필터링의 진행 방식을 개략적으로 설명하는 도면이다.
도 5는 bS를 구하는 방법의 일 예를 개략적으로 설명하는 순서도이다.
도 6은 bS 값을 결정하는 방법의 일 예를 개략적으로 설명하는 도면이다.
도 7 및 도 8은 bS 값을 결정하는 방법의 다른 예를 개략적으로 설명하는 도면이다.
도 9는 디블록킹 적용 단위 블록의 경계와 bS 결정 단위 블록의 경계가 일치하는 경우에 bS를 결정하는 방법의 예를 개략적으로 나타낸 것이다.
도 10은 디블록킹 필터링을 수행하는 단위 블록에서 대표 bS 값을 결정하는 방법의 다른 예를 개략적으로 설명하는 도면이다.
도 11은 bS를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다.
도 12 내지 도 14는 bS 값을 3가지 값 중 어느 하나로 결정하는 방법의 예들을 개략적으로 설명하는 순서도이다.
도 15 및 도 16은 OMBC를 적용하는 경우에 적용되는 bS 결정 트리의 예들로서, bS를 결정하는 방법을 개략적으로 설명하는 순서도이다.
도 17 및 도 18은 bS를 결정하여 디블록킹 필터링을 적용하는 방법의 예들을 개략적으로 설명하는 도면이다.
도 19는 대표 bS를 결정하는 방법의 일 예를 개략적으로 설명하는 순서도이다.
도 20은 대표 bS를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다.
도 21은 bS 결정 트리를 간소화하는 방법을 개략적으로 설명하는 순서도이다.
도 22는 본 발명에 따라서, 영상을 인코딩하는 방법을 개략적으로 설명하는 순서도이다.
도 23은 본 발명에 따라서 영상을 디코딩하는 방법을 개략적으로 설명하는 순서도이다.
도 24는 본 발명에 따라서 bS를 유도하는 방법의 일 예를 개략적으로 설명하는 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니다. 본 명세서에서 사용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명의 기술적 사상을 한정하려는 의도로 사용되는 것은 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
한편, 본 발명에서 설명되는 도면상의 각 구성들은 영상 인코딩 장치/디코딩 장치에서 서로 다른 특징적인 기능들에 관한 설명의 편의를 위해 독립적으로 도시된 것으로서, 각 구성들이 서로 별개의 하드웨어나 별개의 소프트웨어로 구현된다는 것을 의미하지는 않는다. 예컨대, 각 구성 중 두 개 이상의 구성이 합쳐져 하나의 구성을 이룰 수도 있고, 하나의 구성이 복수의 구성으로 나뉘어질 수도 있다. 각 구성이 통합 및/또는 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성 요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성 요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 인코딩 장치(영상 부호화 장치)를 개략적으로 도시한 블록도이다. 도 1을 참조하면, 인코딩 장치(100)는 픽처 분할부(105), 예측부(110), 변환부(115), 양자화부(120), 재정렬부(125), 엔트로피 인코딩부(130), 역양자화부(135), 역변환부(140), 필터부(145) 및 메모리(150)를 구비한다.
픽처 분할부(105)는 입력된 픽처를 적어도 하나의 처리 단위 블록으로 분할할 수 있다. 이때, 처리 단위로서의 블록은 예측 유닛(Prediction Unit, 이하 ‘PU’라 함)일 수도 있고, 변환 유닛(Transform Unit, 이하 ‘TU’라 함)일 수도 있으며, 코딩 유닛(Coding Unit, 이하 ‘CU’라 함)일 수도 있다.
예측부(110)는 후술하는 바와 같이, 인터 예측을 수행하는 인터 예측부와 인트라 예측을 수행하는 인트라 예측부를 포함한다. 예측부(110)는, 픽처 분할부(105)에서 픽처의 처리 단위에 대하여 예측을 수행하여 예측 블록을 생성한다. 예측부(110)에서 픽처의 처리 단위는 CU일 수도 있고, TU일 수도 있고, PU일 수도 있다. 또한, 예측부(110)는 해당 처리 단위에 대하여 실시되는 예측이 인터 예측인지 인트라 예측인지를 결정하고, 각 예측 방법의 구체적인 내용(예컨대, 예측 모드 등)을 정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 예측 방법의 구체적인 내용이 정해지는 처리 단위는 다를 수 있다. 예컨대, 예측의 방법과 예측 모드 등은 PU 단위로 결정되고, 예측의 수행은 TU 단위로 수행될 수도 있다.
인터 예측을 통해서는 현재 픽처의 이전 픽처 및/또는 이후 픽처 중 적어도 하나의 픽처의 정보를 기초로 예측을 수행하여 예측 블록을 생성할 수 있다. 또한, 인트라 예측을 통해서는 현재 픽처 내의 픽셀 정보를 기초로 예측을 수행하여 예측 블록을 생성할 수 있다.
인터 예측의 방법으로서, 스킵(skip) 모드, 머지(merge) 모드, MVP(Motion Vector Predtiction) 등을 이용할 수 있다. 인터 예측에서는 PU에 대하여, 참조 픽처를 선택하고 PU와 동일한 크기의 참조 블록을 선택할 수 있다. 참조 블록은 정수 픽셀 단위로 선택될 수 있다. 이어서, 현재 PU와의 레지듀얼(residual) 신호가 최소화되며 움직임 벡터 크기 역시 최소가 되는 예측 블록이 생성된다.
예측 블록은 정수 샘플 단위로 생성될 수도 있고, 1/2 픽셀 단위 또는 1/4 픽셀 단위와 같이 정수 이하 픽셀 단위로 생성될 수도 있다. 이때, 움직임 벡터 역시 정수 픽셀 이하의 단위로 표현될 수 있다. 예컨대 휘도 샘플에 대해서는 1/4 픽셀 단위로, 색차 샘플에 대해서는 1/8 픽셀 단위로 표현될 수 있다.
인터 예측을 통해 선택된 참조 픽처의 인덱스, 움직임 벡터(ex. Motion Vector Predictor), 레지듀얼 신호 등의 정보는 엔트로피 인코딩되어 디코딩 장치에 전달된다. 스킵 모드가 적용되는 경우에는 레지듀얼을 예측 블록을 복원 블록으로 할 수 있으므로, 레지듀얼을 생성, 변환, 양자화, 전송하지 않을 수 있다.
인트라 예측을 수행하는 경우에는, PU 단위로 예측 모드가 정해져서 PU 단위로 예측이 수행될 수 있다. 또한, PU 단위로 예측 모드가 정해지고 TU 단위로 인트라 예측이 수행될 수도 있다.
인트라 예측에서 예측 모드는 33개의 방향성 예측 모드와 적어도 2개 이상의 비방향성 모드를 가질 수 있다. 비향성성 모드는 DC 예측 모드 및 플래이너 모드(Planar 모드)을 포함할 수 있다.
인트라 예측에서는 참조 샘플에 필터를 적용한 후 예측 블록을 생성할 수 있다. 이때, 참조 샘플에 필터를 적용할 것인지는 현재 블록의 인트라 예측 모드 및/또는 사이즈에 따라 결정될 수 있다.
PU는 다양한 사이즈/형태의 블록일 수 있으며, 예컨대 인터 예측의 경우에 PU는 2N×2N 블록, 2N×N 블록, N×2N 블록, 또는 N×N 블록 (N은 정수) 등일 수 있다. 인트라 예측의 경우에 PU는 2N×2N 블록 또는 N×N 블록 (N은 정수) 등일 수 있다. 이때, N×N 블록 크기의 PU는 특정한 경우에만 적용하도록 설정할 수 있다. 예컨대 최소 크기 CU에 대해서만 NxN 블록 크기의 PU를 이용하도록 정하거나 인트라 예측에 대해서만 이용하도록 정할 수도 있다. 또한, 상술한 크기의 PU 외에, N×mN 블록, mN×N 블록, 2N×mN 블록 또는 mN×2N 블록 (m<1) 등의 PU를 더 정의하여 사용할 수도 있다.
생성된 예측 블록과 원본 블록 사이의 레지듀얼 값(레지듀얼 블록 또는 레지듀얼 신호)은 변환부(115)로 입력된다. 또한, 예측을 위해 사용한 예측 모드 정보, 움직임 벡터 정보 등은 레지듀얼 값과 함께 엔트로피 인코딩부(130)에서 인코딩되어 디코딩 장치에 전달된다.
변환부(115)는 변환 단위로 레지듀얼 블록에 대한 변환을 수행하고 변환 계수를 생성한다. 변환부(115)에서의 변환 단위는 TU일 수 있으며, 쿼드 트리(quad tree) 구조를 가질 수 있다. 이때, 변환 단위의 크기는 소정의 최대 및 최소 크기의 범위 내에서 정해질 수 있다. 변환부(115)는 레지듀얼 블록을 DCT(Discrete Cosine Transform) 및/또는 DST(Discrete Sine Transform)를 이용하여 변환할 수 있다.
양자화부(120)는 변환부(115)에서 변환된 레지듀얼 값들을 양자화하여 양자화 계수를 생성할 수 있다. 양자화부(120)에서 산출된 값은 역양자화부(135)와 재정렬부(125)에 제공된다.
재정렬부(125)는 양자화부(120)로부터 제공된 양자화 계수를 재정렬한다. 양자화 계수를 재정렬함으로써 엔트로피 인코딩부(130)에서의 인코딩 효율을 높일 수 있다. 재정렬부(125)는 계수 스캐닝(Coefficient Scanning) 방법을 통해 2차원 블록 형태의 양자화 계수들을 1차원의 벡터 형태로 재정렬할 수 있다. 재정렬부(125)에서는 양자화부에서 전송된 계수들의 확률적인 통계를 기반으로 계수 스캔닝의 순서를 변경함으로써 엔트로피 인코딩부(130)에서의 엔트로피 인코딩 효율을 높일 수도 있다.
엔트로피 인코딩부(130)는 재정렬부(125)에 의해 재정렬된 양자화 계수들에 대한 엔트로피 인코딩을 수행할 수 있다. 엔트로피 인코딩에는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding) 등과 같은 인코딩 방법을 사용할 수 있다. 엔트로피 인코딩부(130)는 재정렬부(125) 및 예측부(110)로부터 전달받은 CU의 양자화 계수 정보 및 블록 타입 정보, 예측 모드 정보, 분할 단위 정보, PU 정보 및 전송 단위 정보, 움직임 벡터 정보, 참조 픽처 정보, 블록의 보간 정보, 필터링 정보 등 다양한 정보를 인코딩할 수 있다.
또한, 엔트로피 인코딩부(130)는 필요한 경우에, 전송하는 파라미터 셋(parameter set) 또는 신택스에 일정한 변경을 가할 수도 있다.
역양자화부(135)는 양자화부(120)에서 양자화된 값들을 역양자화하고, 역변환부(140)는 역양자화부(135)에서 역양자화된 값들을 역변환한다. 역양자화부(135) 및 역변환부(140)에서 생성된 레지듀얼 값과 예측부(110)에서 예측된 예측 블록이 합쳐져 복원 블록(Reconstructed Block)이 생성될 수 있다.
도 1에서는 가산기를 통해서, 레지듀얼 블록과 예측 블록이 합쳐져 복원 블록이 생성되는 것으로 설명하고 있다. 이때, 가산기를 복원 블록을 생성하는 별도의 유닛(복원 블록 생성부)로 볼 수도 있다.
필터부(145)는 디블록킹 필터, ALF(Adaptive Loop Filter), SAO(Sample Adaptive Offset)를 복원된 픽처에 적용할 수 있다.
디블록킹 필터는 복원된 픽처에서 블록 간의 경계에 생긴 왜곡을 제거할 수 있다. ALF(Adaptive Loop Filter)는 디블록킹 필터를 통해 블록이 필터링된 후 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. ALF는 고효율을 적용하는 경우에만 수행될 수도 있다. SAO는 디블록킹 필터가 적용된 레지듀얼 블록에 대하여, 픽셀 단위로 원본 영상과의 오프셋 차이를 복원하며, 밴드 오프셋(Band Offset), 에지 오프셋(Edge Offset) 등의 형태로 적용된다.
한편, 인터 예측에 사용되는 복원 블록에 대해서 필터부(145)는 필터링을 적용하지 않을 수도 있다.
메모리(150)는 필터부(145)를 통해 산출된 복원 블록 또는 픽처를 저장할 수 있다. 메모리(150)에 저장된 복원 블록 또는 픽처는 인터 예측을 수행하는 예측부(110)에 제공될 수 있다.
도 2는 본 발명의 일 실시예에 따른 영상 디코딩 장치를 개략적으로 나타낸 블록도이다. 도 2를 참조하면, 영상 디코딩 장치(200)는 엔트로피 디코딩부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230), 필터부(235) 메모리(240)를 포함할 수 있다.
영상 인코딩 장치에서 영상 비트스트림이 입력된 경우, 입력된 비트스트림은 영상 인코딩 장치에서 영상 정보가 처리된 절차에 따라서 디코딩될 수 있다.
예컨대, 영상 인코딩 장치에서 엔트로피 인코딩을 수행하기 위해 CAVLC 등의 가변 길이 부호화(Variable Length Coding: VLC, 이하 ‘VLC’ 라 함)가 사용된 경우에, 엔트로피 디코딩부(210)도 인코딩 장치에서 사용한 VLC 테이블과 동일한 VLC 테이블로 구현하여 엔트로피 디코딩을 수행할 수 있다. 또한, 영상 인코딩 장치에서 엔트로피 인코딩을 수행하기 위해 CABAC을 이용한 경우에, 엔트로피 디코딩부(210)는 이에 대응하여 CABAC을 이용한 엔트로피 디코딩을 수행할 수 있다.
엔트로피 디코딩부(210)에서 디코딩된 정보 중 예측 블록을 생성하기 위한 정보는 예측부(230)로 제공되고, 엔트로피 디코딩부(210)에서 엔트로피 디코딩이 수행된 레지듀얼 값은 재정렬부(215)로 입력될 수 있다.
재정렬부(215)는 엔트로피 디코딩부(210)에서 엔트로피 디코딩된 비트스트림을 영상 인코딩 장치에서 재정렬한 방법을 기초로 재정렬할 수 있다. 재정렬부(215)는 1차원 벡터 형태로 표현된 계수들을 다시 2차원의 블록 형태의 계수로 복원하여 재정렬할 수 있다. 재정렬부(215)는 인코딩 장치에서 수행된 계수 스캐닝에 관련된 정보를 제공받고 인코딩 장치에서 수행된 스캐닝 순서에 기초하여 역으로 스캐닝하는 방법을 통해 재정렬을 수행할 수 있다.
역양자화부(220)는 인코딩 장치에서 제공된 양자화 파라미터와 재정렬된 블록의 계수값을 기초로 역양자화를 수행할 수 있다.
역변환부(225)는 영상 인코딩 장치에서 수행된 양자화 결과에 대해, 인코딩 장치의 변환부가 수행한 DCT 및 DST에 대해 역DCT 및/또는 역DST를 수행할 수 있다. 역변환은 인코딩 장치에서 결정된 전송 단위 또는 영상의 분할 단위를 기초로 수행될 수 있다. 인코딩 장치의 변환부에서 DCT 및/또는 DST는 예측 방법, 현재 블록의 크기 및 예측 방향 등 복수의 정보에 따라 선택적으로 수행될 수 있고, 디코딩 장치의 역변환부(225)는 인코딩 장치의 변환부에서 수행된 변환 정보를 기초로 역변환을 수행할 수 있다.
예측부(230)는 엔트로피 디코딩부(210)에서 제공된 예측 블록 생성 관련 정보와 메모리(240)에서 제공된 이전에 디코딩된 블록 및/또는 픽처 정보를 기초로 예측 블록을 생성할 수 있다.
현재 PU에 대한 예측 모드가 인트라 예측(intra prediction) 모드인 경우에, 현재 픽처 내의 픽셀 정보를 기초로 예측 블록을 생성하는 인트라 예측을 수행할 수 있다.
현재 PU에 대한 예측 모드가 인터 예측(inter prediction) 모드인 경우에, 현재 픽처의 이전 픽처 또는 이후 픽처 중 적어도 하나의 픽처에 포함된 정보를 기초로 현재 PU에 대한 인터 예측을 수행할 수 있다. 이때, 영상 인코딩 장치에서 제공된 현재 PU의 인터 예측에 필요한 움직임 정보, 예컨대 움직임 벡터, 참조 픽처 인덱스 등에 관한 정보는 인코딩 장치로부터 수신한 스킵 플래그, 머지 플래그 등을 확인하고 이에 대응하여 유도될 수 있다.
복원 블록은 예측부(230)에서 생성된 예측 블록과 역변환부(225)에서 제공된 레지듀얼 블록을 이용해 생성될 수 있다. 도 2에서는 가산기에서 예측 블록과 레지듀얼 블록이 합쳐져 복원 블록이 생성되는 것으로 설명하고 있다. 이때, 가산기를 복원 블록을 생성하는 별도의 유닛(복원 블록 생성부)로 볼 수 있다.
스킵 모드가 적용되는 경우에는 레지듀얼이 전송되지 않으며 예측 블록을 복원 블록으로 할 수 있다.
복원된 블록 및/또는 픽처는 필터부(235)로 제공될 수 있다. 필터부(235)는 복원된 블록 및/또는 픽처에 디블록킹 필터링, SAO(Sample Adaptive Offset) 및/또는 ALF 등을 적용할 수 있다.
메모리(240)는 복원된 픽처 또는 블록을 저장하여 참조 픽처 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽처를 출력부로 제공할 수 있다.
한편, 상술한 바와 같이, 인코딩 장치 및 디코딩 장치의 필터부는 인-루프(in-loop) 필터로서 디블록킹 필터(deblocking filter), ALF(Adaptive Loop Filter), SAO(Sample Adaptive Offset)를 적용할 수 있다.
디블록킹 필터는 블록 단위의 예측, 변환, 양자화에 따른 블록 간의 아티팩트(artifacts)를 제거한다. 디블록킹 필터는 예측 유닛 에지(edge) 또는 변환 유닛 에지에 적용되며, 디블록킹 필터를 적용하기 위한 소정의 최저 블록 사이즈를 설정할 수 있다.
디블록킹 필터를 적용하기 위해서, 우선 수평 혹은 수직 필터 경계(boundary)의 블록 경계 강도(Boundary Strength, 이하 bS라 함)를 결정한다. bS를 기반으로 필터링을 수행할 것인지를 블록 단위로 결정한다. 필터링을 수행하기로 결정하면, 어떤 필터를 적용할 것인지를 정한다. 적용할 필터는 위크 필터(weak filter)와 스트롱 필터(strong filter) 중에서 선택될 수 있다. 필터링부는 선택된 필터를 해당 블록의 경계에 적용한다.
ALF(Adaptive Loop Filter)는 후술하는 SAO를 수행한 뒤에 적용할 수도 있다. ALF는 빈너 필터(Wiener filter)를 이용하여 부호화 에러를 보상하는 것으로서, SAO와 달리 슬라이스(slice) 내에 글로벌(global)하게 적용된다. ALF는 HE(High Efficiency)의 경우에만 적용되도록 할 수도 있다.
SAO는 디블록킹 필터링을 수행한 영상에 대해 픽셀 단위로 원본 영상과의 오프셋 차이를 복원해주는 절차이다. SAO를 통해서 부호화 에러(coding error)를 보상할 수 있으며, 부호화 에러는 양자화 등에 기인한 것일 수 있다. SAO에는 밴드 오프셋(band offset)과 에지 오프셋(edge offset)의 두 가지 타입이 있다.
상술한 바와 같이, 영상 복원을 블록 단위(예컨대, CU, PU, TU 등)로 수행하는 경우에는, 복원된 블록 사이의 경계에서 블록 왜곡이 발생할 수 있다. 블록 왜곡을 방지하기 위해 디블록킹 필터가 적용될 수 있는데, 디블록킹 필터는 동일한 영상 또는 픽처 내에서도 블록 왜곡이 생기기 쉬운 위치와 블록 왜곡이 생기기 어려운 위치를 구분하여 적용될 수 있다. 예컨대, 블록 왜곡이 생기기 쉬운 위치와 블록 왜곡이 생기기 어려운 위치에 서로 다른 방식으로 디블록킹 필터를 적용할 수 있다.
이를 위해, 블록 사이의 경계가 디블록킹 필터를 적용할 경계에 해당하는지, 이웃하는 블록들이 인트라 코딩이 적용된 블록들인지 등을 고려하여 블록 사이 경계에 대한 bS를 결정하고, 결정된 bS를 기반으로 디블록킹 필터링을 적용할 수 있다.
한편, CU가 I_PCM CU인 경우, 즉 인트라 예측이 적용되는 PCM(Pulse Coding Modulation) CU의 경우에는, 디블록킹 필터링을 적용하지 않는다. I_PCM 모드는 양자화(quantization), 변환(transformation) 과정을 거치지 않기 때문에, 원본 데이터와 동일한 값이 복원된다.
따라서, 최상의 화질(원본 화질)을 복원하기 위해서 I_PCM 모드의 CU(I_PCM CU)에 대해서는 인루프 필터를 적용하지 않는다. 예컨대, 디블록킹 필터링 프로세스에서 I_PCM CU에 대한 양자화 파라미터(qP)를 0(zero)로 설정하여 I_PCM CU에 디블록킹 필터가 적용되지 않도록 할 수 있다.
도 3은 본 발명에 따라서 디블록킹 필터를 적용하는 방법을 개략적으로 설명하는 순서도이다. 도 3에서 설명하는 디블록킹 필터링은 인코딩 장치와 디코딩 장치에서 수행될 수 있다, 예컨대, 도 1 및 도 2의 필터링부가 도 3에서 설명하는 디블록킹 필터링을 수행할 수 있다.
디블록킹 필터링은 현재 픽처 내 블록들 간의 수직 에지(vertical edge)에 먼저 적용된 후 현재 픽처 내 블록들 간의 수평 에지(horizontal edge)에 적용된다. 수직 에지에 적용된 디블록킹 필터링에 의해 수정된 샘플들을 가지고(with the modified sample by deblocking filtering of vertical edges) 현재 픽처 내 수평 에지에 디블록킹 필터링이 적용된다.
따라서, 도 3에서 설명하는 디블록킹 필터링의 절차는 현재 픽처 내의 수직 에지에 적용된 후, 현재 픽처 내의 수평 에지에 적용될 수 있다.
블록 간의 에지에 대하여 도 3을 참조하면, 디블록킹 필터링을 적용하기 위해 블록 경계가 유도된다 (S310).
필터부는 현재 코딩 블록 또는 현재 LCU(Largest Coding Unit)(이하, 설명의 편의를 위해 본 명세서에서 코딩 블록이라 함은 LCU를 포함한다)의 크기를 설정하고, 현재 코딩 블록의 경계(boundary)가 현재 픽처의 경계가 아닌지, 현재 코딩 블록의 경계가 타일의 경계로서 디블록킹 필터가 적용되는 경계인지, 현재 코딩 블록의 경계가 슬라이스의 경계로서 디블록킹 필터가 적용되는 경계인지를 판단할 수 있다.
예컨대, 수직 에지에 디블록킹 필터를 적용하는 경우에, 현재 코딩 블록의 좌측 경계가 현재 픽처의 좌측 경계(left boundary)면 디블록킹 필터링의 대상에서 현재 코딩 블록의 좌측 경계를 제외할 수 있다. 현재 코딩 블록의 좌측 경계가 현재 타일의 좌측 경계이고 현재 타일의 에지에 필터를 적용하지 않도록 결정한 경우나 현재 코딩 블록의 좌측 경계가 현재 슬라이스의 좌측 경계이고 현재 슬라이스의 에지에 필터를 적용하지 않도록 결정한 경우에는, 디블록킹 필터링의 대상에서 현재 코딩 블록의 좌측 경계를 제외할 수 있다. 따라서, 수직 에지에 대한 디블록킹 필터링에 있어서, 상기 경우가 아니라면 현재 코딩 블록의 좌측 경계에 디블록킹 필터링을 적용할 수 있다.
또한, 수평 에지에 디블록킹 필터를 적용하는 경우라면, 현재 코딩 블록의 상측 경계(top boundary)가 현재 픽처의 상측 경계이면 디블록킹 필터링의 대상에서 현재 코딩 블록의 상측 경계를 제외할 수 있다. 현재 코딩 블록의 상측 경계가 현재 타일의 상측 경계이고 현재 타일의 에지에 필터를 적용하지 않도록 결정한 경우나 현재 코딩 블록의 상측 경계가 현재 슬라이스의 상측 경계이고 현재 슬라이스의 에지에 필터를 적용하지 않도록 결정한 경우에는, 디블록킹 필터링의 대상에서 현재 코딩 블록의 상측 경계를 제외할 수 있다. 수평 에지에 대한 디블록킹 필터링에 있어서, 상기 경우가 아니라면 현재 코딩 블록의 상측 경계에 디블록킹 필터링을 적용할 수 있다.
본 명세서에서 경계에 필터링을 적용한다는 것은, 상기 경계 양쪽에 위치하는 소정의 샘플들에 대하여 필터링을 수행한다는 것을 의미한다.
필터부는 픽처 내 수직 에지에 대한 디블록킹 필터링을 적용하는 경우에는 변환 블록과 예측 블록의 수직 에지에 대하여 블록 경계를 유도할 수 있으며, 픽처 내 수평 에지에 대한 디블록킹 필터링을 적용하는 경우에는 변환 블록과 예측 블록의 수평 에지에 대하여 블록 경계를 유도할 수 있다.
변환 블록의 에지가 코딩 블록의 에지라면 해당 에지에 대해서는 코딩 블록의 해당 에지에 대한 디블록킹 필터링 적용 여부에 따라서 변환 블록의 경계를 유도할 수도 있다. 변환 블록이 분할되는 경우에는 분할되는 각 블록에 대하여 경계를 유도할 수 있다.
필터부는 예측 블록의 각 파티션별로 경계를 유도할 수 있다. 예컨대, 예측 블록의 파티션이 2NxN 픽셀 블록, NxN 픽셀 블록, 2NxnU 픽셀 블록, 2NxnD 픽셀 블록(N, U, D는 픽셀 수에 대응하는 정수이며, n은 코딩 블록 내 예측 블록의 개수에 대응하는 정수)인 경우에 각 파티션 별로 에지를 유도할 수 있다.
이어서, 디블록킹 필터를 적용할 블록 경계에 대한 bS가 유도된다(S320). bS는 현재 코딩 블록 내의 에지별로 결정된다. 픽처 내 수직 에지에 대하여 디블록킹 필터링이 적용되는 경우에는 수직 에지별로 bS가 유도되며, 픽처 내 수평 에지에 대하여 디블록킹 필터링이 적용되는 경우에는 수평 에지별로 bS가 유도될 수 있다.
bS의 유도는 소정의 단위별로 수행될 수 있다. 예컨대, bS는 변환 블록의 에지마다 유도될 수도 있고, 예측 블록의 에지마다 유도될 수도 있다. 또한, bS는 소정 사이즈의 블록을 단위로, 예컨대 8x8 픽셀 블록이나 4x4 픽셀 블록을 단위로 유도될 수도 있다.
더 나아가 bS는 현재 코딩 블록 내 변환 블록, 예측 블록, 그리고 미리 설정된 소정 사이즈의 블록 중 특정 조건을 만족하는 블록의 에지에 대해 유도될 수도 있다. 가령, 변환 블록(예컨대 TU)과 예측 블록(예컨대 PU) 중 작은 블록과 미리 정해진 사이즈의 블록(예컨대 8x8 픽셀 블록) 중 더 큰 블록에 대하여 bS가 유도될 수도 있다.
다시 말하면, bS는 디블록킹을 적용할 블록의 경계에서 bS 결정의 단위가 되는 블록의 크기에 대응하는 픽셀 단위(예컨대, bS 결정의 단위가 LxL 픽셀 블록(L은 정수)이면 L 픽셀 단위)로 결정될 수 있다. bS의 구체적인 값을 유도하는 것에 관해서는 후술하도록 한다.
이어서, bS에 따라서 블록 경계에 필터링이 수행된다(S330).
예컨대, 루마(luma) 샘플의 경우에, 대상 에지에 대한bS가 소정의 기준 bS, 예컨대 bSth1 이하이면, 해당 에지에 대해서는 디블록킹 필터링을 적용하지 않도록 할 수 있다. 크로마(chroma) 샘플의 경우에도 대상 에지에 대한bS가 소정의 기준 bS, 예컨대 bSth2 이하인 경우에는 해당 에지에 디블록킹 필터링을 적용하지 않도록 할 수 있다. 기준 bS bSth1과 bSth2는 동일하게 설정될 수도 있고, 상이하게 설정될 수도 있다.
디블록킹 필터링을 효율적으로 적용하기 위해 추가적인 임계값(설명의 편의를 위해 Th1이라 함)을 설정할 수도 있다. 가령, 기준 bS 값을 0으로 설정하면, 대상 에지에 대한 bS 값이 0보다 큰 경우에 Th1을 이용하여 블록 레벨에서의 디블록킹 필터링에 대한 온/오프 여부를 결정할 수 있다. 예컨대, 대상 에지로부터 유도한 값이 Th1보다 큰 경우에 디블록킹 필터를 대상 에지에 적용하도록 할 수도 있다.
디블록킹 필터링이 픽처 내 수직 에지들에 적용되는 경우를 먼저 설명하면, Th1과의 비교를 위해 대상 수직 에지로부터 유도되는 값으로서, 특정 샘플 행(row)에서 해당 수직 에지를 경계로 하는 두 블록 내 필터링 대상 샘플들 간의 차를 고려할 수 있다. 예를 들어, k번째 샘플 행(k는 정수)의 샘플들에 대하여, 수직 에지의 좌측 블록에서 상기 수직 에지에 인접하는 필터링 대상 샘플들 사이의 차이의 합 DL k(가령, 디블록킹 필터가 적용된다면 수직 에지로부터 3개의 샘플이 필터링의 대상이라고 할 때, 수직 에지로부터 첫 번째 샘플과 수직 에지로부터 두 번째 샘플의 차이와 수직 에지로부터 세 번째 샘플과 수직 에지로부터 두 번째 샘플의 차이의 합)을 산출하고, 수직 에지의 우측 블록(현재 블록)에서 상기 수직 에지에 인접하는 필터링 대상 샘플들 사이의 차이의 합 DR k(가령, 디블록킹 필터가 적용된다면 수직 에지로부터 3개의 샘플이 필터링의 대상이라고 할 때, 수직 에지로부터 첫 번째 샘플과 수직 에지로부터 두 번째 샘플의 차이와 수직 에지로부터 세 번째 샘플과 수직 에지로부터 두 번째 샘플의 차이의 합)을 유도할 수 있다. DL k와 DR k의 합 D k를 상기 Th1과 비교하여, D k 가 Th1보다 작은 경우에 해당 수직 에지에 디블록킹 필터링을 적용하도록 할 수 있다. D k 가 Th1보다 작은 경우에는 양자화 파라미터를 고려할 때, 상기 수직 경계가 디블록킹 필터링을 적용하지 않는 것이 효과적인 경계(예컨대 원본 픽처 내 영상의 실제 경계 등)는 아닌 것으로 보고 디블록킹 필터를 적용하는 것이 원본에 가깝게 복원된다고 판단할 수 있다.
이때, 수직 에지를 경계로 하는 두 블록 내에서 상술한 바와 같이 하나의 샘플 행(row)에 대해서만 이웃하는 필터링 대상 샘플 간 차이의 합을 고려하지 않고, 복수의 샘플 행에 대하여 이웃하는 필터링 대상 샘플 간 차이의 합을 고려할 수도 있다. 예컨대, 수직 에지를 경계로 하는 두 블록에서 k번째 샘플 행(row)에 대한 필터링 대상 샘플 간 차이의 합 D k와 k+j 번째 행(j는 정수)에 대한 필터링 대상 샘플 간 차이의 합 D k+j를 합한 D(= D k + D k+j)가 임계값 Th1보다 작은 경우에 해당 수직 에지에 대한 디블록킹 필터를 적용하는 것으로 결정할 수도 있다.
두 샘플 행 사이의 차이j를 3으로 설정한 경우를 예로서 살펴보면, 2번째 샘플 행과 5 번째 샘플 행에 대하여, D(=D 2 + D 5) 가 Th1보다 작은 경우에 디블록킹 필터를 해당 수직 에지에 적용하도록 할 수 있다. 두 샘플 행 사이의 차이j를 3으로 설정하고, 0번째 샘플 행과 3번째 샘플 행에 대하여 샘플 간 차의 합 D (= D 0 + D 3)를 Th1과 비교하여 D가 Th1보다 작은 경우에 디블록킹 필터를 해당 수직 에지에 적용하도록 할 수도 있다.
이때, 각 블록과 샘플 행에 따른 특성을 효과적으로 반영하기 위해, 각 샘플 행별 그리고 각 블록별로 구한 필터링 대상 샘플 간 차들의 합에 대한 절대값들을 취합한 D값을 유도할 수도 있다. 이 경우, 수직 에지를 경계로 좌측 블록(L)과 우측 블록(R)의 k 번째 샘플 행과 k+j번째 샘플 행을 고려하는 D 값은 아래의 수식 1과 같이 유도될 수 있다.
<수식 1>
D = abs(DL k) + abs(DL k+j) + abs(DR k) + abs(DR k+j)
상술한 바와 같이, DL K는 좌측 블록의 k 번째 샘플 행에서 수직 에지에 인접한 필터링 대상 샘플들 간의 차의 합이다. 디블록킹 필터링을 적용할 때 수직 에지에 인접한 세 샘플을 대상으로 하는 경우라면, DL K는 수직 에지 좌측 블록의 k 번째 샘플 행에서 수직 에지로부터 첫 번째 샘플과 수직 에지로부터 두 번째 샘플의 차이와 수직 에지로부터 세 번째 샘플과 수직 에지로부터 두 번째 샘플의 차이의 합으로 유도될 수 있다. DR K는 우측 블록의 k 번째 샘플 행에서 수직 에지에 인접한 필터링 대상 샘플들 간의 차의 합이다. 예컨대, 디블록킹 필터링을 적용할 때 수직 에지에 인접한 세 샘플을 대상으로 하는 경우라면, DR K는 수직 에지 우측 블록의 k 번째 샘플 행에서 수직 에지로부터 첫 번째 샘플과 수직 에지로부터 두 번째 샘플의 차이와 수직 에지로부터 세 번째 샘플과 수직 에지로부터 두 번째 샘플의 차이의 합으로 유도될 수 있다.
복수의 샘플 행을 고려하여 상술한 바와 같이 인접하는 필터링 대상 샘플 간 차이 값의 합을 취합하는 경우에도, 각 샘플 행에 대한 인접하는 필터링 대상 샘플 간 차이의 합을 고려함으로써 더 효과적으로 디블록킹 필터링을 적용할 수 있다. 예컨대, 수식 1을 참조하면, k 샘플 행만을 고려하여 D k를 수식 2와 같이 정의할 수 있다.
<수식 2>
D k = abs (DL k)+ abs (DR k)
예를 들어, 해당 수직 에지에 대하여, 앞서의 예와 같이, k번째 샘플 행과 k+3번째 샘플 행을 고려하는 경우에, D가 Th1보다 작고 k 번째 샘플 행에 대한 D k와 k+3 번째 샘플 행에 대한 D k+3이 각각 Th1의 절반(Th1/2)보다 작은 경우에는 해당 수직 에지에 강한(strong) 필터링을 적용하도록 할 수 있다. 이와 달리, D가 Th1보다 작지만, D k가 Th1/2보다 작지 않거나 D k+3이 Th1/2보다 작지 않은 경우에는 해당 수직 에지에 약한(weak) 필터링을 적용하도록 할 수도 있다.
약한 필터링을 적용하는 경우에는 필터링 대상 샘플들 중에서 특정 샘플에 대해서만 필터링을 적용할 수 있으며, 이 경우에 필터 계수를 강한 필터링의 경우와 다르게 적용할 수도 있다. 예컨대, 필터링 대상 샘플들이 수직 에지 좌우에 위치하는 6개의 샘플(에지의 좌측 3개 샘플, 에지의 우측 3개 샘플)인 경우를 생각하면, 강한 필터링이 필터링 대상 샘플들에 모두 적용되는 반면, 약한 필터링은 대상 에지의 좌측에 위치하는 2 개의 샘플과 대상 에지의 우측에 위치하는 2 개의 샘플에 적용될 수 있다. 이때, 강한 필터링과 약한 필터링의 필터 계수 또한 상이할 수 있다.
디블록킹 필터링이 픽처 내 수평 에지들에 적용되는 경우에도, Th1과의 비교를 위해 대상 수평 에지로부터 유도되는 값으로서, 특정 샘플 열(column)에서 해당 수평 에지를 경계로 하는 두 블록 내 필터링 대상 샘플들 간의 차를 고려할 수 있다. 수직 에지의 예에서 설명한 바와 같이, k번째 샘플 열(k는 정수)의 샘플들에 대하여, 수평 에지의 상측 블록에서 상기 수평 에지에 인접하는 필터링 대상 샘플들 사이의 차이의 합 DT k(가령, 디블록킹 필터가 적용된다면 수평 에지로부터 3개의 샘플이 필터링의 대상이라고 할 때, 수평 에지로부터 첫 번째 샘플과 수평 에지로부터 두 번째 샘플의 차이와 수평 에지로부터 세 번째 샘플과 수평 에지로부터 두 번째 샘플의 차이의 합)을 산출하고, 수평 에지의 하측 블록(현재 블록)에서 상기 수평 에지에 인접하는 필터링 대상 샘플들 사이의 차이의 합 DB k(가령, 디블록킹 필터가 적용된다면 수평 에지로부터 3개의 샘플이 필터링의 대상이라고 할 때, 샘플들이 수평 에지로부터 첫 번째 샘플과 수평 에지로부터 두 번째 샘플의 차이와 수평 에지로부터 세 번째 샘플과 수평 에지로부터 두 번째 샘플의 차이의 합)을 유도할 수 있다. DT k와 DB k의 합 D k를 상기 Th1과 비교하여, D k 가 Th1보다 작은 경우에 해당 수평 에지에 디블록킹 필터링을 적용하도록 할 수 있다.
이때, 수평 에지를 경계로 하는 두 블록 내에서 복수의 샘플 열에 대하여 이웃하는 필터링 대상 샘플 간 차이의 합을 고려할 수도 있다. 예컨대, 수평 에지를 경계로 하는 두 블록에서 k번째 샘플 열(column)에 대한 필터링 대상 샘플 간 차이의 합 D k와 k+j 번째 열(j는 정수)에 대한 필터링 대상 샘플 간 차이의 합 D k+j를 합한 D (=D k + D k+j)가 임계값 Th1보다 작은 경우에 해당 수평 에지에 대한 디블록킹 필터를 적용하는 것으로 결정할 수도 있다.
두 샘플 열 사이의 차이j를 3으로 설정한 경우를 예로서 살펴보면, 2번째 샘플 열과 5 번째 샘플 열에 대하여, D (=D 2 + D 5) 가 Th1보다 작은 경우에 디블록킹 필터를 해당 수직 에지에 적용하도록 할 수 있다. 두 샘플 열 사이의 차이j를 3으로 설정하고, 0번째 샘플 열과 3번째 샘플 열에 대하여 샘플 간 차의 합 D (=D 0 + D 3)를 Th1과 비교하여 D가 Th1보다 작은 경우에 디블록킹 필터를 해당 수평 에지에 적용하도록 할 수도 있다.
수직 에지에 대해 고려하는 샘플 행과 수평 에지에 대해 고려하는 샘플 열은 서로 대응하는 샘플 행과 샘플 열일 수 있다. 예컨대, 수직 에지에 대하여 0번째 샘플 행과 3번째 샘플 행을 대상으로 하였다면, 수평 에지에 대하여는 0번째 샘플 열과 3번째 샘플 열을 대상으로 할 수 있다.
수직 에지의 경우와 마찬가지로, 각 블록과 샘플 열에 따른 특성을 효과적으로 반영하기 위해, 샘플 열 그리고 각 블록별로 구한 필터링 대상 샘플 간 차들의 합들에 각각 절대값을 취할 수도 있다. 이 경우, 수평 에지를 경계로 상측 블록(T)과 하측 블록(B)의 k 번째 샘플 열과 k+j번째 샘플 열을 고려하는 D 값은 아래의 수식 3과 같이 유도될 수 있다.
<수식 3>
D = abs(DT k) + abs(DT k+j) + abs(DB k) + abs(DB k+j)
상술한 바와 같이, DT K는 상측 블록의 k 번째 샘플 열에서 수평 에지에 인접한 필터링 대상 샘플들 간의 차의 합이다. 디블록킹 필터링을 적용할 때 수평 에지에 인접한 세 샘플을 대상으로 하는 경우라면, DT K는 수평 에지 상측 블록의 k 번째 샘플 열에서 수평 에지로부터 첫 번째 샘플과 수평 에지로부터 두 번째 샘플의 차이와 수평 에지로부터 세 번째 샘플과 수평 에지로부터 두 번째 샘플의 차이의 합으로 유도될 수 있다. DB K는 하측 블록의 k 번째 샘플 열에서 수평 에지에 인접한 필터링 대상 샘플들 간의 차의 합이다. 예컨대, 디블록킹 필터링을 적용할 때 수평 에지에 인접한 세 샘플을 대상으로 하는 경우라면, DB K는 수평 에지 하측 블록의 k 번째 샘플 열에서 수평 에지로부터 첫 번째 샘플과 수평 에지로부터 두 번째 샘플의 차이와 수평 에지로부터 세 번째 샘플과 수평 에지로부터 두 번째 샘플의 차이의 합으로 유도될 수 있다.
수직 에지의 예에서 설명한 바와 같이, 각 샘플 열별로, 서로 인접하는 필터링 대상 샘플 간 차이의 합을 고려함으로써 더 효과적으로 디블록킹 필터링을 적용할 수 있다. 예컨대, 수식 3을 참조하면, k 샘플 열만을 고려하여 D k를 수식 4와 같이 정의할 수 있다.
<수식 4>
D k = abs(DT k) + abs(DB k)
예를 들어, 해당 수평 에지에 대하여, 앞서의 예와 같이, k번째 샘플 열과 k+3번째 샘플 열을 고려하는 경우에, D가 Th1보다 작고 k 번째 샘플 열에 대한 D k와 k+3 번째 샘플 열에 대한 D k+3이 각각 Th1의 1/4보다 작은 경우로서 다른 디블로킹 파라미터에 관한 소정의 관계를 만족하는 경우에는 해당 수평 에지에 강한(strong) 필터링을 적용하도록 할 수 있다. 이와 달리, D가 Th1보다 작지만, D k가 Th1/4보다 작지 않거나 D k+3이 Th1/4보다 작지 않은 경우로서 소정의 조건을 만족하는 경우에는 해당 수평 에지에 약한(weak) 필터링을 적용하도록 할 수도 있다.
약한 필터링을 적용하는 경우에는 필터링 대상 샘플들 중에서 특정 샘플에 대해서만 필터링을 적용할 수 있으며, 이 경우에 필터 계수를 강한 필터와 달리 적용할 수도 있다. 예컨대, 필터링 대상 샘플들이 수평 에지 상하에 위치하는 6개의 샘플(에지의 상측 3개 샘플, 에지의 하측 3개 샘플)인 경우를 생각하면, 강한 필터링이 필터링 대상 샘플들에 모두 적용되는 반면, 약한 필터링은 대상 에지의 상측에 위치하는 2 개의 샘플과 대상 에지의 하측에 위치하는 2 개의 샘플에 적용될 수 있다. 이때, 강한 필터링과 약한 필터링의 필터 계수 또한 상이할 수 있다.
강한 필터링과 약한 필터링은 수직 에지와 수평 에지에 동일한 방법(예컨대, 동일한 필터 계수나 오프셋 등)으로 적용할 수도 있다.
필터부는 상술한 바와 같이 디블록킹 필터를 적용할 것인지, 스트롱 필터와 위크 필터 중 어떤 필터를 적용할 것인지, 위크 필터를 적용하는 경우라면 어떤 샘플을 대상으로 할 것인지가 결정되면, 미리 정해진 방법(예컨대, 필터 계수나 오프셋 등)에 따라서 디블록킹 필터를 적용할 수 있다. 앞서 설명한 바와 같이, 픽처 내 수직 에지들에 대하여 디블록킹 필터링을 적용한 후 픽처 내 수평 에지들에 대하여 디블록킹 필터링을 적용할 수 있다.
도 3에서는 블록 경계의 유도(S310), bS의 유도(S320), 필터링 적용(S330)과 같은 큰 스텝으로 디블록킹 필터링을 적용하는 방법을 설명하였으나, bS의 결정으로부터 필터링을 적용하는 과정에 대하여, 상술한 내용은 더 세부적인 스텝으로 구분될 수도 있다.
예컨대, 픽처 내 수직 에지에 대한 수평 디블록킹 필터링에 대하여, (1) 코딩 블록(LCU 일 수 있음) 내 수직 에지에 대하여, bS를 결정 - bS 결정 대상 에지는 TU와 PU 중 작은 블록에 대한 에지일 수 있고, 미리 정해진 단위 블록(예컨대, 8x8 픽셀 블록)의 에지일 수 있으며, TU와 PU 중 작은 단위 블록과 미리 정해진 단위 블록 중 큰 블록의 에지일 수 있다. (2) bS가 0보다 큰 에지에 대하여, 블록 레벨에서 디블록킹 필터링의 온(on)/오프(off) 결정 - 이를 위해, 상술한 바와 같이, 경계(에지) 양측의 블록들 중 소정 샘플 행(예컨대, 2번째와 5번째 샘플 행)을 이용할 수 있다. (3) 필터링을 온(on)하는 영역에 대해서 강한(strong) 필터링을 적용할지 약한(weak) 필터링을 적용할지를 결정. (4) 약한 필터링을 적용하는 경우에 추가적인 필터링 온/오프 결정-추가적인 필터링 온/오프는, 앞서 설명한 바와 같이, 특정 샘플별 필터링 온/오프 결정을 포함한다. (5) 현재 픽처 내 다음 코딩 블록(LCU를 포함)로 이동하여 상기 스텝을 반복 - 픽처 내 모든 수직 에지에 대한 디블록킹 필터링 처리를 수행한다.
픽처 내 수평 에지에 대한 수직 디블록킹 필터링에 대하여는, (1) 코딩 블록(LCU 일 수 있음) 내 수평 에지에 대하여, bS를 결정 - bS 결정 대상 에지는 TU와 PU 중 작은 블록에 대한 에지일 수 있고, 미리 정해진 단위 블록(예컨대, 8x8 픽셀 블록)의 에지일 수 있으며, TU와 PU 중 작은 단위 블록과 미리 정해진 단위 블록 중 큰 블록의 에지일 수 있다. (2) bS가 0보다 큰 에지에 대하여, 블록 레벨에서 디블록킹 필터링의 온(on)/오프(off) 결정 - 이를 위해, 상술한 바와 같이, 경계(에지) 양측의 블록들 중 소정 샘플 열(예컨대, 2번째와 5번째 샘플 열)을 이용할 수 있다. (3) 필터링을 온(on)하는 영역에 대해서 강한(strong) 필터링을 적용할지 약한(weak) 필터링을 적용할지를 결정. (4) 약한 필터링을 적용하는 경우에 추가적인 필터링 온/오프 결정-추가적인 필터링 온/오프는, 앞서 설명한 바와 같이, 특정 샘플별 필터링 온/오프 결정을 포함한다. (5) 현재 픽처 내 다음 코딩 블록(LCU를 포함)로 이동하여 상기 스텝을 반복 - 픽처 내 모든 수평 에지에 대한 디블록킹 필터링 처리를 수행한다.
도 4는 본 발명에 따른 디블록킹 필터링의 진행 방식을 개략적으로 설명하는 도면이다. 도 4를 참조하면, 코딩 블록(예컨대, LCU) 단위로 해당 코딩 블록 내의 에지에 대하여 디블록킹 필터링이 진행(401)된다. 앞서 설명한 바와 같이, 현재 픽처 전체에 대하여 수직 에지에 대한 디블록킹 필터링(수평 필터링)을 수행한 후, 현재 픽처 전체에 대하여 수평 에지에 대한 디블록킹 필터링(수직 필터링)을 수행한다.
도 5는 bS를 구하는 방법의 일 예를 개략적으로 설명하는 순서도이다.
설명의 편의를 위해, 본 명세서에서는 디블록킹 필터링 프로세스에 있어서 현재 블록을 Q블록으로 나타내고, 현재 블록에 이웃하는 블록으로서 현재 블록보다 먼저 부호화/복호화된 블록을 블록 P로 나타낸다. 예컨대, 수직 에지에 대한 디블록킹 필터링을 수행하는 경우에는, 수직 에지를 경계로 좌측 블록을 블록 P라고 하고 우측 블록을 블록 Q라고 한다. 또한, 수평 에지에 대한 디블록킹 필터링을 수행하는 경우에는, 수평 에지를 경계로 상측 블록을 블록 P라고 하고 하측 블록을 블록 Q 라고 한다.
또한, 블록 P에 속하는 샘플을 p로 나타내고, 블록 Q에 속하는 샘플을 q로 나타낸다. 예컨대, 블록 P 에 속하며 특정 샘플 행 또는 특정 샘플 열에서 블록 P와 블록 Q 사이의 경계(에지)로부터 i번째 샘플을 pi라고 할 수 있다(i=0,1,2, ...). 동일하게, 마찬가지로, 블록 Q 에 속하며 특정 샘플 행 또는 특정 샘플 열에서 블록 P와 블록 Q 사이의 경계(에지)로부터 i번째 샘플을 qi라고 할 수 있다(i=0,1,2, ...)
도 5를 참조하면, bS를 결정하기 위해 우선, 블록 P 및/또는 블록 Q가 인트라 코딩되었는지를 판단한다(S510).
블록 P 및/또는 블록 Q가 인트라 코딩된 경우에는, 블록 P와 블록 Q 사이의 경계가 CU 경계인지를 판단한다(S520). 이때, CU 경계는 LCU의 경계일 수도 있다.
S520 단계에서, 블록 P와 블록 Q 사이의 경계가 CU의 경계인 경우에는 블록 P와 블록 Q 사이의 경계에 대한 bS의 값을 4로 결정한다(S530).
S520 단계에서, 블록 P와 블록 Q 사이의 경계가 CU의 경계가 아닌 경우에는 블록 P와 블록 Q 사이의 경계에 대한 bS의 값을 3으로 결정한다(S540)
블록 P및/또는 블록 Q가 인트라 코딩된 경우가 아니라면, 블록 P 및/또는 블록 Q가 0이 아닌 계수(변환 계수)를 포함하는지를 판단한다(S550). 이때, 필터부는 0이 아닌 변환 계수의 존부를 역양자화 전의 변환 계수를 기준으로 판단할 수 있다. 또한, 필터부는 0이 아닌 변환 계수의 존부를 역양자화 후의 변환 계수를 기준으로 판단할 수도 있다.
S550 단계에서, 블록 P 및/또는 블록 Q가 계수(0이 아닌 변환 계수)를 포함하는 경우에는 블록 P와 블록 Q 사이의 경계에 대한 bS를 2로 결정한다(S560).
S550 단계에서, 블록 P 및/또는 블록 Q가 계수(0이 아닌 변환 계수)를 포함하는 경우가 아니라면, 블록 P와 블록 Q가 상이한 참조 픽처 또는 상이한 움직임 벡터를 가지는지를 판단한다(S570).
S570 단계에서, 블록 P와 블록 Q가 서로 상이한 참조 픽처 또는 상이한 움직임 벡터를 가지는 경우에는 블록 P와 블록 Q 사이의 경계에 대한 bS를 1로 결정한다(S580).
그 외의 경우, 즉 디블록킹 필터링을 적용하지 않는 경우에 해당하면, 블록 P와 블록 Q 사이의 경계에 대한 bS를 0으로 설정한다(S590). 도 5에서는, bS를 적용하지 않는 경우의 일 예로서, 상술한 조건에 모두 해당하지 않는 경우를 설명의 편의를 위해 예로서 설명하고 있다.
한편, bS 값에 따라서 디블록킹 필터링에 필요한 변수의 값들을 설정할 수도 있다.
예컨대, 도 5에 도시된 t0offset과 같은 변수의 경우를 예로서 들 수 있다. t0offset은 영상 특성에 최적화된 t0값을 결정하기 위해 사용자에 의해 설정되는 값이다. t0는 양자화 정도에 따른 블록킹 아티팩트를 정량화하여 디블록킹 필터링과 관련된 파라미터를 결정하는데 이용되는 임계값(threshold value)의 하나이다.
도 5에서는, bS 값이 0, 1 또는 2 인 경우에는 t0offset을 0으로 설정하고, bS 값이 3 또는 4인 경우에는 t0offset을 2로 설정되는 일 예를 간단히 나타내고 있다.
한편, 효과적으로 디블록킹 필터링을 적용하기 위해, 앞서 도 3 및 도 5에서 설명한 bS를 결정하는 블록 단위와 결정 방법을 수정하여 적용할 수도 있다.
bS는 실제 디블록킹 필터링을 수행하는 블록 단위와 같거나 작은 단위에서 결정될 수 있다.
예컨대, 루마 샘플에 대하여 실제 디블록킹 필터링을 8x8 픽셀 단위로 수행하는 경우에 bS는 4x4 픽셀 단위로 결정될 수 있다. 이렇게 디블록킹 필터링을 수행하는 단위 블록의 크기가 bS를 결정하는 단위 블록의 크기보다 큰 경우에는, bS를 결정하는 단위 블록의 경계(에지)들 중에서 디블록킹 필터링을 수행하는 단위 블록의 경계(에지)에 해당하는 경계에서만 bS를 결정하도록 할 수 있다. 다시 말하면, LxL (L은 정수) 픽셀 블록별로 bS를 결정하는 경우에, 디블록킹 필터링을 수행하는 단위 블록의 경계에서 L 픽셀 단위로 bS가 결정된다.
구체적으로, bS를 결정하는 블록 단위는 4x4 픽셀 블록이고, 실제 디블록킹 필터링은 8x8 픽셀 블록 단위로 수행하는 경우를 예로서 설명하면, bS는 디블록킹 필터링이 수행되는 8x8 픽셀 블록의 경계에서 4 픽셀 단위로 결정된다. 따라서, 디블록킹 필터링의 단위인 8x8 픽셀 블록 내부의 4x4 픽셀 블록 에지에 대해서는 bS를 결정할 필요가 없다.
도 6은 bS 값을 결정하는 방법의 일 예를 개략적으로 설명하는 도면이다. 도 6에서는, 디블록킹 필터링의 단위 블록(600)이 8x8 픽셀 블록이고 bS 결정의 단위 블록이 4x4 픽셀 블록인 경우를 예로서 설명한다.
도 6을 참조하면, 디블록킹 필터링의 단위 블록(600) 내에는 bS의 결정의 단위 블록이 되는 4x4 픽셀 블록의 경계(에지)이면서 디블록킹 필터링의 단위 블록(600)의 경계가 되는 수직 에지와 수평 에지가 존재한다.
수직 에지의 경우를 예로서 설명하면, 디블록킹 필터링의 단위 블록(600)에는 bS 결정의 대상이 되는 두 개의 수직 에지(610, 620)가 존재한다. 도 6의 예에서는 첫 번째 수직 에지(610)의 bS와 두 번째 수직 에지(620)의 bS를 비교하여 더 큰 bS를 디블록킹 필터링의 단위 블록(600)의 수직 에지에 대한 대표 bS로 결정한다.
예컨대, 첫 번째 수직 에지(610)의 bS가 1이고, 두 번째 수직 에지(620)의 bS가 2인 경우에는 두 번째 수직 에지(620)의 bS 값인 2를 디블록킹 필터링의 단위 블록(600)의 좌측 경계가 되는 수직 에지에 대한 대표 bS 값으로 결정할 수 있다.
도 6에서는 설명의 편의를 위해 수직 에지에 대한 경우를 예로서 설명하였으나, 수평 에지의 경우에도 동일한 방법을 적용할 수 있다.
도 6의 예에서 두 bS의 값이 동일한 경우에는, 두 bS 값 중 어느 하나를 대표 bS값으로 사용할 수 있음은 물론이다.
도 6과 같이, 디블록킹 필터링을 적용하는 단위 블록의 내부에 위치하는 경계에 대해서는 bS를 유도하지 않는 방법, 즉 디블록킹 필터링을 적용하는 단위 블록의 경계(에지)이면서 bS를 결정하는 단위 블록의 경계인 경우에 대해서만 bS를 유도하는 방법의 다른 예들을 구체적으로 설명한다.
도 7과 도 8은 bS 값을 결정하는 방법의 다른 예를 개략적으로 설명하는 도면이다. 도 7과 도 8의 예에서는 bS 값을 2 단계의 과정을 거쳐서 할당하는 방법을 예로서 설명한다. 구체적으로, 도 7과 도 8의 예에서는 4x4 픽셀 블록이 bS 결정의 단위이고, 8x8 픽셀 블록이 디블록킹 필터링 적용 단위인 경우에, 4x4 픽셀 단위로 bS를 결정한 후에, 8x8 픽셀 블록 단위로 bS를 재할당하는 방법을 설명한다.
도 7은 bS 결정 단위마다 bS를 설정하는 방법의 일 예를 개략적을 설명하는 도면이다. 도 7을 참조하면, 16x16 픽셀 블록(예컨대, CU)에 bS 결정 단위가 되는 4x4 픽셀 블록(예컨대, TU)가 도시된 바와 같이 존재한다. 각 4x4 픽셀 블록의 경계마다 bS 값이 결정될 수 있다.
4x4 픽셀 블록마다 bS를 결정하도록 하는 구체적인 프로세스의 일 예(단계 1)는 아래와 같다.
<4x4 픽셀 블록 단위로 bS를 설정하는 방법 - 단계 1>
현재 블록, 예를 들어 CU 내 좌상측에 있는 루마 샘플의 위치를 현재 픽처의 좌상측 루마 샘플을 기준으로 특정하면 (xC, yC)라고 하자. 현재 블록인 CU의 사이즈를 특정하는 변수를 log2CUSize라고 하고, bS가 결정되는 수직 에지와 수평 에지는 2차원 어레이(array) horEdgeFlags와 verEdgeFlags에 의해 지시된다고 하자. 이때, 2 차원 어레이의 크기는 nS x nS 이며, nS = 1<<log2CUSize이다.
(xEk, yEj)가 에지 주변 샘플(에지 샘플) 위치들의 집합을 특정한다고 하자. k = 0, ..., nE-1이고 j = 0, ..., nE-1이며, nE는 ( ( 1 << log2CUSize ) >> 2 )로 설정되고, xE0 = 0, yE0 = 0, xEk+1 = xEk + 4, yEj+1 = yEj + 4의 관계를 가진다.
이 경우, 수평 에지와 수직 에지에 대하여 디블록킹 필터링이 적용되는 샘플이 에지 샘플 위치들의 집합을 특정하는 (xEk, yEj)을 기반으로 결정될 수 있다. 예컨대, 수평 에지에 대하여, (1) 수평 에지임을 지시하는 정보가 해당 에지에 디블록킹 필터링이 적용될 것임(bS가 결정될 것임)을 지시하면(예를 들어, horEdgeFlags[xEk][yEj] = 1), (2) p0를 예측을 거쳐 복원된 픽처의 (xC+xEk, yC+yEj-1)로 설정하고, q0를 예측을 거쳐 복원된 픽처의 (xC+xEk, yC+yEj)로 설정할 수 있으며, (3) 이때, 디블록킹 필터링의 방향은 수직 방향이 된다.
수직 에지에 대해서는 (1) 수직 에지임을 지시하는 정보가 해당 에지에 디블록킹 필터링이 적용될 것임(bS가 결정될 것임)을 지시하면(예를 들어, verEdgeFlags[xEk][yEj] = 1), (2) p0를 예측을 거쳐 복원된 픽처의 (xC+xEk-1, yC+yEj)로 설정하고, q0를 예측을 거쳐 복원된 픽처의 (xC+xEk, yC+yEj)로 설정할 수 있으며, (3) 이때, 디블록킹 필터링의 방향은 수평 방향이 된다.
상술한 방법(단계 1)에 의하면, 현재 CU(현재 블록) 내에 bS 결정 단위인 4x4 픽셀 블록이 몇 개인지(현재 CU의 가로 및 세로가 4 픽셀의 몇 배수인지)를 카운팅((1<<log2CUSize)>>2)해서 nE 값으로 할당한다. 따라서, 스텝 1에서는 현재 블록에 대해서 4 픽셀 단위로 En개의 bS가 가로 및 세로로 설정 가능하다. bS가 4 픽셀 단위로 결정되도록 (xEk, yEj)를 4 픽셀 단위로 증가시킨다(xEk+1 = xEk + 4, yEj+1 = yEj + 4), 즉 현재 블록(현재 CU) 내에서 4x4 픽셀 블록 단위로 bS를 결정하는 프로세스를 진행할 수 있도록 인덱스를 증가시킨다.
상술한 방법(단계 1)에 이어, bS 결정 단위마다 설정된 bS 값을 디블록킹 필터 적용 단위마다 재할당할 수 있다(단계 2).
도 8은 디블록킹 필터 적용 단위마다 bS를 재할당하는 방법의 일 예를 개략적으로 설명하는 도면이다. 도 8을 참조하면, 8x8의 디블록킹 적용 단위 블록마다 bS 값이 설정될 수 있다.
도 8에서 설명하는 단계 2에서는, 단계 1에서 결정된 4x4 픽셀 블록 단위의 bS들을 비교하여 인접한 두 에지에 대한 bS들 중에서 어느 한 값을 8x8의 디블록킹 필터 적용 단위에 대한 대표 bS로 이용한다.
예컨대, 도 8에서 현재 CU(800) 내 디블록킹 필터 적용 단위 블록(810)의 좌측 수직 에지에 대하여, 상측 에지의 bS인 bSv1과 하측 에지의 bS인 bSv2를 비교하여 더 큰 값을 블록(810)의 좌측 수직 에지에 대한 bS 값(bSv)으로 이용할 수 있다. 또한, 현재 CU(800) 내 디블록킹 필터 적용 단위 블록(820)의 상측 수평 에지에 대하여, 좌측 에지의 bS인 bSh1과 우측 에지의 bS인 bSh2를 비교하여 더 큰 값을 블록(820)의 상측 수평 에지에 대한 bS 값(bSh)으로 이용할 수 있다. 이때, 단계 1에서 결정된 bS들 중 디블록킹 필터를 적용하는 단위 블록인 8x8 픽셀 블록 내에 위치하는 에지에 대한 bS값은 할당되지 않는다.
8x8 픽셀 블록마다 bS를 재할당하여 디블록킹 필터링을 수행하도록 하는 구체적인 프로세스의 일 예(단계 2)는 아래와 같다.
<8x8 픽셀 블록 단위로 bS가 할당하여 디블록킹 필터링을 수행하는 방법 - 단계 2>
현재 블록, 예를 들어 CU 내 좌상측에 있는 루마 샘플의 위치를 현재 픽처의 좌상측 루마 샘플을 기준으로 특정하면 (xC, yC)라고 하자. 현재 블록인 CU의 사이즈를 특정하는 변수를 log2CUSize라고 하고, 어레이(array) bS는 경계 필터링 세기(boundary filtering strength)를 특정한다.
현재 블록, 예컨대 현재 CU의 루마 에지에 대한 디블록킹 필터링은 다음과 같은 단계로 수행될 수 있다.
(1) 변수 nD를 1<<(log2CUSize-3)으로 설정한다.
(2) 사이즈 (2)x(nD)x(nD)의 삼차원 어레이 dEdge의 모든 엘리먼트(element)들을 0으로 초기화한다.
(3) 사이즈 (2)x(nD)x( 1 << log2CUSize )의 삼차원 어레이 dSample의 모든 엘리먼트들을 0으로 초기화한다.
(4) 사이즈 (2)x(nD)x(nD)의 삼차원 어레이 bStrength의 모든 엘리먼트들을 0으로 초기화한다.
(5) xDk값을 xC+(k<<3)으로 설정한다. 이때, k의 값은 0, ..., nD-1이다. 각 xDk 값에 대하여, yDm을 yC+(m<<3)으로 설정하고 아래의 절차를 수행한다. 이때, m의 값은 0, ..., nD-1이다.
(5-1) 수직 에지에 대한 경계 필터링 세기 bSVer을 다음과 같이 유도한다. bSVer = Max(bS[0][xDk][yDm+i]). 이때, i는 0, ..., 7이다. bS[0][xDk][yDm+i]은 수직 에지에 대한 경계 필터링 세기로서 (xDk, yDm+i)을 기준으로 정의되는 bS값을 의미한다.
(5-2) bStrength[0][k][m]의 값을 bSVer 값으로 설정한다.
(5-3) 현재 CU의 루마 샘플 위치 (xC, yC), 현재 블록의 루마 샘플 위치 (xDk, yDm), 디블록킹 필터가 적용되는 수직 에지임을 지시하는 정보, 경계 필터링 세기 bSVer을 기반으로 루마 블록 에지에 대한 결정 과정을 진행하여, 결정에 관한 정보로서 강한 필터링을 적용할 것인지 약한 필터링을 적용할 것인지를 지시하는 dEdge[0][k][m] 과 사이즈 8x8의 어레이 dS를 결정한다.
(5-4) dEdge 값을 결정하기 위한 dSample[0][k][(m<<3)+i]를 dS[i]로 설정한다. 이때, i는 0,...,7이다.
(5-5) 수평 에지에 대한 경계 필터링 세기 bSHor을 다음과 같이 유도한다. bSHor = Max(bS[1][xDk+i][yDm]). 이때, i는 0,...,7이다. bS[0][xDk+i][yDm]은 수평 에지에 대한 경계 필터링 세기로서 (xDk+i, yDm)을 기준으로 정의되는 bS값을 의미한다.
(5-6) bStrength[1][k][m]의 값을 bSVer 값으로 설정한다.
(5-7) 현재 CU의 루마 샘플 위치 (xC, yC), 현재 블록의 루마 샘플 위치 (xDk, yDm), 디블록킹 필터가 적용되는 수직 에지임을 지시하는 정보, 경계 필터링 세기 bSHor을 기반으로 루마 블록 에지에 대한 결정 과정을 진행하여, 결정에 관한 정보로서 강한 필터링을 적용할 것인지 약한 필터링을 적용할 것인지를 지시하는 dEdge[1][k][m] 과 사이즈 8x8의 어레이 dS를 결정한다.
(5-8) dEdge 값을 결정하기 위한 dSample[1][m][(k<<3)+i]를 dS[i]로 설정한다. 이때, i는 0, ..., 7이다.
(6) 디블록킹 필터링을 적용하기로 결정된 에지들에 대하여, bS 값, dEdge 값 그리고 dSample 값 등을 기반으로 디블록킹 필터링을 수행한다.
상기 단계 2의 방법을 살펴보면, 현재 블록 안에 있는 디블록킹 필터링 적용 단위 블록의 개수를 나타내는 nD를 유도할 때 log2CUSize - 3을 사용하고 있다. 즉, 8x8 픽셀 블록 단위로, 8x8 픽셀 블록의 개수만큼 현재 블록(현재 CU)에 대하여 디블록킹 필터가 수직 에지 및 수평 에지에 적용될 수 있다.
이어서, 수직 에지에 대한 bS 값과 수평 에지에 대한 bS 값을 8 개의 픽셀 별로 대비하여 가장 큰 bS 값으로 설정한다. 예컨대, 수직 에지에 대한 bS인 bSVer은 Max(bS[0][xDk][yDm+i])로 설정되고, 수평 에지에 대한 bS인 bSHor은 Max(bS[1][xDk+i][yDm])으로 설정되며, 이때 i는 0, ..., 7이 된다. i 값을 0부터 7까지 변경하며, 8 개의 픽셀들을 기준으로 하는 bS 값들을 비교하여 가장 큰 bS를 현재 디블록킹 필터 적용 블록에 대한 bS로 설정할 수 있다. 예컨대, 수직 에지를 따라 8 개 픽셀을 기준으로 하는 각 bS들을 비교하여, 가장 큰 bS를 현재 디블록킹 필터링 적용 블록의 수직 에지에 대한 bS로 설정하고, 수평 에지를 따라 8 개 픽셀을 기준으로 하는 각 bS들을 비교하여, 가장 큰 bS를 현재 디블록킹 필터링 적용 블록의 수평 에지에 대한 bS로 설정할 수 있다.
따라서, 단계 1에서는 모든 4x4 픽셀 블록(bS 결정 단위 블록)의 경계마다 bS를 결정하지만, 단계 2에서 8x8 픽셀 블록(디블록킹 필터링 적용 단위 블록)의 경계에서 수직 에지에 대한 bS인 bSVer과 수평 에지에 대한 bS인 bSHor을 설정하므로, 8x8 픽셀 블록의 경계에서 결정된 bS를 이용하게 된다.
도 7 및 도 8의 단계 1에서는, 4 픽셀 단위로 처리하는 것을 명확하게 설명하기 위해 ( ( 1 << log2CUSize ) >> 2 ), xEk+1 = xEk + 4, yEj+1 = yEj + 4 등의 관계식을 이용하였으나, 본 발명은 이 수식들에 한정되지 않는다. 예컨대, 소정의 bS 결정 단위(상기 예에서는 4x4 픽셀 블록)로 bS가 결정될 수 있는 경우에는 이를 나타내는 다른 관계를 적용하여서도 bS 결정 단위마다 bS를 설정할 수 있다.
또한, 도 7 및 도 8의 단계 2에서는, 8 픽셀 단위로 처리하는 것을 명확하게 설명하기 위해 log2CUSize - 3 등의 수식을 이용하였으나, 본 발명은 이 수식들에 한정되지 않는다. 예컨대, 소정의 디블록킹 필터링 적용 단위(상기 예에서는 8x8 픽셀 블록)로 디블록킹 필터링이 적용되며, 이에 따라 bS가 할당될 수 있는 경우에는 이를 나타내는 다른 수식을 적용하여서도 디블록킹 필터링 적용 단위마다 bS를 재할당할 수 있다.
도 7과 도 8의 예에서는 루마 샘플로서 현재 블록이 CU인 경우를 예로서 설명하고 있으나, 본 발명은 이에 한정되지 않으며 크로마 샘플인 경우나 현재 블록이 CU 이외의 처리 단위(예컨대, PU 또는 TU)인 경우에도 적용될 수 있다. 또한, 여기서는 bS 결정 단위가 4x4 픽셀 블록이고 디블록킹 필터링 적용 단위가 8x8 픽셀 블록이 아닌 경우에도 동일하게 적용될 수 있다.
한편, 도 7 및 도 8의 예에서, 단계 1에서는 모든 4x4 픽셀 블록의 경계마다 bS 값을 결정/할당하지만, 단계 2에서 8x8 픽셀 블록의 경계에서 bSVer과 bSHor을 구한다. 따라서, 도 7 및 도 8의 예에서 8x8 픽셀 블록 내부의 에지에 대하여 bS를 결정하는 것을 불필요한 과정이 된다.
따라서, 디블록킹 필터링 프로세스의 복잡도를 감소시키기 위해 디블록킹 필터링 적용 단위 블록의 경계이면서, bS 결정 단위 블록의 경계인 경우에만 bS를 유도하는 방법들을 고려할 수 있다. 예컨대, 디블록킹 필터링 적용 단위 블록마다 bS 결정 단위로 bS를 결정하는 방법(bS 유도 방법 1)과, bS 결정 단위마다 bS를 결정하되 bS 결정 단위가 디블록킹 필터링 적용 단위 블록의 경계에 있어야 하는 조건을 부가하는 방법(bS 유도 방법 2)을 생각할 수 있다.
우선, 디블록킹 필터링 적용 단위 블록마다 bS 결정 단위로 bS를 결정하는 방법의 일 예는 다음과 같다.
<bS 유도 방법 1>
현재 블록, 예를 들어 CU 내 좌상측에 있는 루마 샘플의 위치를 현재 픽처의 좌상측 루마 샘플을 기준으로 특정하면 (xC, yC)라고 하자. 현재 블록인 CU의 사이즈를 특정하는 변수를 log2CUSize라고 하고, bS가 결정되는 수직 에지와 수평 에지는 2차원 어레이(array) horEdgeFlags와 verEdgeFlags에 의해 지시된다고 하자. 이때, 2 차원 어레이의 크기는 nS x nS 이며, nS = 1<<log2CUSize이다.
(xEk, yEj)가 에지 주변 샘플(에지 샘플) 위치들의 집합을 특정한다고 하자. k = 0, ..., nE-1이고 j = 0, ..., nE-1이며, nE는 ( ( 1 << log2CUSize ) >> 3 )로 설정되고, xE0 = 0, yE0 = 0, xEk+1 = xEk + 8, yEj+1 = yEj + 8의 관계를 가진다.
이 경우, 수평 에지와 수직 에지에 대하여 디블록킹 필터링이 적용되는 샘플이 에지 샘플 위치들의 집합을 특정하는 (xEk, yEj)을 기반으로 결정될 수 있다. 예컨대, 수평 에지에 대하여, (1) 수평 에지임을 지시하는 정보가 해당 에지에 디블록킹 필터링이 적용될 것임(bS가 결정될 것임)을 지시하면(예를 들어, horEdgeFlags[xEk][yEj] = 1), (2) (xEk+r, yEj)에 대하여(r=0,1), 예측을 거쳐 복원된 픽처의 (xC+xEk, yC+yEj-1)로 p0를 설정하고, 예측을 거쳐 복원된 픽처의 (xC+xEk, yC+yEj)로 q0를 설정할 수 있으며, (3) 이때, 디블록킹 필터링의 방향은 수직 방향이 된다.
수직 에지에 대해서는 (1) 수직 에지임을 지시하는 정보가 해당 에지에 디블록킹 필터링이 적용될 것임(bS가 결정될 것임)을 지시하면(예를 들어, verEdgeFlags[xEk][yEj] = 1), (2) (xEk, yEj+r)에 대하여(r=0,1), 예측을 거쳐 복원된 픽처의 (xC+xEk-1, yC+yEj)로 p0를 설정하고, 예측을 거쳐 복원된 픽처의 (xC+xEk, yC+yEj)로 q0를 설정할 수 있으며, (3) 이때, 디블록킹 필터링의 방향은 수평 방향이 된다.
필터 방향에 따라서 bS는 (Ek, Ej)를 기준으로 결정될 수 있다. 예컨대, bS는 bS[filterDir][Ek][Ej]로 결정될 수 있다.
상기 bS 유도 방법 1을 보면, 디블록킹 필터링 적용 단위 블록마다 bS를 결정하는 에지를 설정한다. 따라서, 디블록킹 적용 단위 블록의 경계이면서 bS 결정 단위 블록의 경계인 에지에서 bS가 결정된다. bS 유도 방법 1에서는 디블록킹 필터링 적용 단위가 8x8 픽셀 블록이고, bS 가 4 픽셀 단위로 결정되는 경우를 예로서 설명하고 있으므로, 8x8 픽셀 블록의 경계에서 bS를 결정할 에지를 설정한다. 이를 위해, nE = ( ( 1 << log2CUSize ) >> 3 )과 xEk+1 = xEk + 8, yEj+1 = yEj + 8 등의 관계를 적용한다. 또한, 수평 에지에 대하여 (xEk+r, yEj)를 기준으로 bS를 설정하고 디블록킹 필터링 적용 샘플을 특정하며, 수직 에지에 대하여 (Ek, yEj+r)을 기준으로 bS를 설정하고 디블록킹 필터링 적용 샘플을 특정하되, r 값을 0과 1로 한정하고 있다.
이후, bS 결정을 4x4 픽셀 단위로 수행하면, 8x8 픽셀 블록의 경계이면서 4x4 픽셀의 경계인 에지에 대하여 bS가 결정된다. 다시 말하면, 8x8 픽셀 블록(디블록킹 필터링 적용 단위 블록)의 경계에서 4 픽셀 단위(bS 결정 단위)로 bS가 결정되게 된다.
한편, bS 결정 단위마다 bS를 결정하되 bS 결정 단위가 디블록킹 필터링 적용 단위 블록의 경계에 있어야 하는 조건을 부가하는 방법의 일 예는 다음과 같다.
<bS 유도 방법 2>
현재 블록, 예를 들어 CU 내 좌상측에 있는 루마 샘플의 위치를 현재 픽처의 좌상측 루마 샘플을 기준으로 특정하면 (xC, yC)라고 하자. 현재 블록인 CU의 사이즈를 특정하는 변수를 log2CUSize라고 하고, bS가 결정되는 수직 에지와 수평 에지는 2차원 어레이(array) horEdgeFlags와 verEdgeFlags에 의해 지시된다고 하자. 이때, 2 차원 어레이의 크기는 nS x nS 이며, nS = 1<<log2CUSize이다.
(xEk, yEj)가 에지 주변 샘플(에지 샘플) 위치들의 집합을 특정한다고 하자. k = 0, ..., nE-1이고 j = 0, ..., nE-1이며, nE는 ( ( 1 << log2CUSize ) >> 2 )로 설정되고, xE0 = 0, yE0 = 0, xEk+1 = xEk + 4, yEj+1 = yEj + 4의 관계를 가진다.
이 경우, 수평 에지와 수직 에지에 대하여 디블록킹 필터링이 적용되는 샘플이 에지 샘플 위치들의 집합을 특정하는 (xEk, yEj)을 기반으로 결정될 수 있다. 예컨대, 수평 에지에 대하여, (1) 수평 에지임을 지시하는 정보가 해당 에지에 디블록킹 필터링이 적용될 것임(bS가 결정될 것임)을 지시(예를 들어, horEdgeFlags[xEk][yEj] = 1)하고 yEj%2의 값이 0이면, (2) 예측을 거쳐 복원된 픽처의 (xC+xEk, yC+yEj-1)로 p0를 설정하고, 예측을 거쳐 복원된 픽처의 (xC+xEk, yC+yEj)로 q0를 설정할 수 있으며, (3) 이때, 디블록킹 필터링의 방향은 수직 방향이 된다. 이때, yEj%2는 yEj를2로 나눈 나머지를 의미한다.
수직 에지에 대해서는 (1) 수직 에지임을 지시하는 정보가 해당 에지에 디블록킹 필터링이 적용될 것임(bS가 결정될 것임)을 지시(예를 들어, verEdgeFlags[xEk][yEj] = 1)하고, xEk%2의 값이 0이면, (2) 예측을 거쳐 복원된 픽처의 (xC+xEk-1, yC+yEj)로 p0를 설정하고, 예측을 거쳐 복원된 픽처의 (xC+xEk, yC+yEj)로 q0를 설정할 수 있으며, (3) 이때, 디블록킹 필터링의 방향은 수평 방향이 된다. 이때, xEk%2는 xEk를2로 나눈 나머지를 의미한다.
필터 방향에 따라서 bS는 (Ek, Ej)를 기준으로 결정될 수 있다. 예컨대, bS는 bS[filterDir][Ek][Ej]로 결정될 수 있다.
방법 1와 마찬가지로 방법 2도 디블록킹 적용 단위 블록(8x8 픽셀 블록)의 내부에 있는 에지에 대해서는 bS 결정을 하지 않는다. 방법 2에서는 4x4 픽셀 블록(bS 결정 단위 블록) 단위로 bS를 결정하는 프로세스를 진행하되, 4x4블록의 인덱스가 짝수인 경우, 즉 4x4 블록의 경계가 8x8 블록의 경계가 되는 경우에만 bS를 결정한다. 이때, 각 경계에서의 bS는 도 5의 예로 설명한 bS 결정 방법에 의해 정해질 수도 있고, 후술하는 바와 같이 더 간결한 bS 결정 방법에 의해 정해질 수도 있다.
도 9는 디블록킹 적용 단위 블록의 경계와 bS 결정 단위 블록의 경계가 일치하는 경우에 bS를 결정하는 방법의 예를 개략적으로 나타낸 것이다. 도 9의 예는 상기 방법 1 및 방법 2의 적용 결과를 개략적으로 설명한다.
도 9에서 도시된 바와 같이, 현재 블록(예컨대, CU)에 대하여 8x8 픽셀 블록인 디블록킹 필터링 적용 단위 블록(910)을 고려하면, 블록(910)의 내부에 위치하는 에지에서는 bS를 결정하지 않는다.
한편, bS 결정 절차를 더 단순화하여 복잡도를 줄이고 디블록킹 필터링의 효과를 높이기 위해, 디블록킹 필터링의 단위 블록에 대한 에지들 중에서 하나의 에지에 대한 bS만을 유도하여 디블록킹 필터링의 단위 블록의 에지들 중 해당 에지에 대한 대표 bS로서 적용하는 방법을 고려할 수도 있다.
도 10은 디블록킹 필터링을 수행하는 단위 블록에서 대표 bS 값을 결정하는 방법의 다른 예를 개략적으로 설명하는 도면이다. 도 10에서도, 디블록킹 필터링의 단위 블록(1000)이 8x8 픽셀 블록이고 bS 결정의 단위 블록이 4x4 픽셀 블록인 경우를 예로서 설명한다.
도 10을 참조하면, 디블록킹 필터링의 단위 블록(1000) 내 bS 결정 대상이 되는 두 개의 수직 에지(1010, 1020) 중 0번째 에지(1010)에 대해서만 bS를 결정한다. 다시 말하면, 디블록킹 필터링의 단위 블록마다 0번째 bS 결정의 단위 블록의 수직 에지 및 수평 에지에 대해서만 bS를 산출하고, 산출된 bS 를 해당 디블록킹 필터링의 단위 블록에 대한 대표 bS 로 이용한다. 예컨대, 디블록킹 필터링의 단위 블록이 8x8 픽셀 블록이고, bS 결정의 단위 블록이 4x4 픽셀 블록인 경우에, 디블록킹 필터링의 단위 블록 내에는 네 개의 bS 결정의 단위 블록이 존재한다. 이 중 0번째 블록(좌상측 블록)의 수직 에지 및 수평 에지에 대해서만 bS를 결정하여 디블록팅 필터링의 단위 블록에 대한 대표 bS로 이용할 수 있다.
도 10의 예와 같이 bS를 결정하면, bS를 결정하는 프로세스를 단순화하여 기존 프로세스의 1/4에 해당하는 프로세스로 bS를 결정할 수 있으며, bS를 저장하기 위한 메모리도 기존 프로세스의 1/4로 감축할 수 있다.
bS를 결정하는 위치(에지)는 상술한 바와 같이 도 6 내지 도 10에서 설명한 방법 중 어느 하나를 사용하여 결정할 수 있다. 이때, bS를 설정하는 위치에서 구체적으로 bS를 결정하는 방법은 도 5에서 설명한 바와 같다.
하지만, bS를 결정하는 방법도 도 5보다 더 간단한 방법을 적용하도록 할 수도 있다. 예컨대, 도 5의 예에서와 같이 bS 값을 0부터 4까지 구분하여 유도하더라도, 디블록킹 필터링 프로세스에서는 bS의 값을 세분해서 이용하지 않을 수 있다. 예컨대, bS > 0 인가만을 판단하거나, bS>1인가만을 판단하거나, bS>2인가만을 판단할 수도 있다.
따라서, 도 5의 예와 같은 bS 결정 트리를 더 단순화하여 디블록킹 필터링을 수행할 수도 있다.
도 11은 bS를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다.
도 11을 참조하면, 우선 블록 P 및/또는 블록 Q가 인트라 코딩 되었는지를 판단한다(S1110).
P 및/또는 Q가 인트라 코딩되어 있는 경우에는 블록 P와 블록 Q 사이 경계에 대한 bS를 bS3으로 결정한다(S1120).
P및/또는 Q가 인트라 코딩된 경우가 아니라면, 블록 P 및/또는 블록 Q가 계수(0이 아닌 변환 계수)를 포함하는지를 판단한다(S1130). 이때 변환 계수는 역양자화가 적용되지 전의 변환 계수일 수도 있고, 역양자화가 적용된 변환 계수일 수도 있다.
S1130 단계에서, 블록 P 및/또는 블록 Q가 계수(0이 아닌 변환 계수)를 포함하는 경우에는, P와 Q 사이 경계에 대한 bS 값을 bS2로 결정한다(S1140).
S1130 단계에서 블록 P 및/또는 블록 Q가 계수(0이 아닌 변환 계수)를 포함하는 경우가 아니라면, 블록 P와 블록 Q가 서로 상이한 참조 픽처를 가지거나 블록 P와 블록 Q가 서로 상이한 움직임 벡터를 가지는지를 판단한다(S1150).
S1150 단계에서 블록 P와 블록 Q가 서로 상이한 참조 픽처를 가지거나 블록 P와 블록 Q가 서로 상이한 움직임 벡터를 가지는 경우에는 블록 P와 블록 Q 사이 경계에 대한 bS를 bS1으로 결정한다(S1160).
그 외의 경우, 즉 디블록킹 필터링을 적용하지 않는 경우에 해당하면, 블록 P와 블록 Q 사이의 경계에 대한 bS를 bS0으로 설정한다(S1170)
여기서는, S1120, S1140, S1160, S1170 단계에서 결정되는 bS 값을 각각 bS3, bS2, bS1, bS0으로 나타내었으나 이는 설명의 편의를 위한 것이다. 도 11의 예에서 bS 값을 4가지로 구분하여 유도하는 것을 감안하면, bS0내지 bS3의 값은 도 11에 도시된 바와 같이 bS0=0, bS1=1, bS2=2, bS3=3/4로 설정될 수 있다. 도 11의 예에서는, S1120 단계에서 bS3이 3/4로 결정되는 것으로 설명하고 있는데, 이는 도 5의 예에서 bS 값이 3과 4인 경우가 도 11의 예에서 bS3의 단일 값(예컨대, 3)으로 결정된다는 것을 이해하기 쉽게 나타낸 것이다.
bS 결정 트리를 이용하여 디블록킹 필터링에 필요한 변수의 값들을 설정할 수도 있다. 도 11에서는 t0offset를 가장 큰 bS 값에 대해서는 특정 값(예컨대 2)으로 설정하고, 그 외의 bS 값에 대해서는 0으로 설정하는 것을 일 예로서 간단히 나타내고 있다.
도 11의 예에 설명된 것보다 결정 분지(decision branch)를 더 줄이는 방법도 고려할 수 있다. 이 경우, bS 값들도 도 11의 예에서와 같이 4개(bS0, bS1, bS2, bS3)가 아니라, 3개(bS0, bS1, bS2) 로부터 줄여서 디블록킹 필터링을 이용할 수 있다.
이 경우, 블록 P 및/또는 블록 Q가 인트라 코딩된 경우를 가장 큰 bS 값인 bS2로 결정하고, 그 외 디블록킹 필터링이 적용될 수 있는 경우에 대한 bS 값을 bS1으로 결정하며, 디블록킹 필터링이 적용되는 않는 경우에 대한 bS 값을 bS0으로 결정할 수 있다. 세 가지 bS 값 중 어느 한 값으로 유도되는 것을 고려하여, bS0, bS1, bS2의 값을 예컨대, bS0=0, bS1=1, bS2=2로 설정할 수 있다.
도 12는 상술한 바와 같이 bS 값을 3가지 값 중 어느 하나로 결정하는 방법을 개략적으로 설명하는 순서도이다.
도 12를 참조하면, 우선 블록 P 및/또는 블록 Q가 인트라 코딩되었는지를 판단한다(S1210).
블록 P 및/또는 블록 Q가 인트라 코딩된 경우에는 블록 P와 블록 Q 사이의 경계에 대한 bS를 bS2로 결정한다(S1220). bS2는 도 5의 예에서 bS 값이 3과 4인 경우(bS=3/4)에 대응한다. 3가지 bS 값 중 가장 큰 값이 bS2 이므로, bS2의 값을 예컨대 2로 설정할 수 있다.
블록 P 및/또는 블록 Q가 인트라 코딩된 경우가 아니면, 블록 P와 블록 Q가 0이 아닌 계수(변환 계수)를 포함하거나 P와 Q가 상이한 참조 픽처를 가지거나 블록 P와 블록 Q가 상이한 움직임 벡터를 가지는지를 판단한다(S1230). 이때 변환 계수는 역양자화가 적용되지 전의 변환 계수일 수도 있고, 역양자화가 적용된 변환 계수일 수도 있다.
S1230 단계에서 블록 P와 블록 Q가 0이 아닌 계수(변환 계수)를 포함하거나 블록 P와 블록 Q가 상이한 참조 픽처를 가지거나 블록 P와 블록 Q가 상이한 움직임 벡터를 가지는 경우에는, 블록 P와 블록 Q 사이의 경계에 대한 bS를 bS1으로 설정한다(S1240). bS1는 블록 P와 블록 Q가 인트라 코딩되지 않은 경우로서 디블록킹 필터를 적용하는 경우에 대한 bS 값으로서, 도 5의 예에서 bS 값이 1과 2인 경우(bS=1/2)에 대응한다. 3가지 bS 값 중 중간 값이 bS1 이므로, bS1의 값을 예컨대 1로 설정할 수 있다.
그 외의 경우, 즉 디블록킹 필터를 적용하지 않는 경우에 해당하면, bS를 bS0으로 설정한다(S1240). bS0은 디블록킹 필터를 적용하지 않는 경우에 대한 bS 값으로서, 도 5의 예에서 bS 값이 0인 경우(bS=0)에 대응한다. 3가지 bS 값 중 가장 작은 값이 bS0 이므로, bS0의 값을 예컨대 0로 설정할 수 있다.
bS 결정 트리를 이용하여 디블록킹 필터링에 필요한 변수의 값들을 설정할 수도 있다. 도 12에서는 t0offset를 가장 큰 bS 값에 대해서는 특정 값(예컨대 2)으로 설정하고, 그 외의 bS 값에 대해서는 0으로 설정하는 것을 일 예로서 간단히 나타내고 있다.
도 13은 bS 값을 3가지 값 중 어느 하나로 결정하는 다른 방법을 개략적으로 설명하는 순서도이다. 도 12에서 설명한 bS 결정 방법(bS 결정 트리)에 있어서, 발명의 이해를 위해, bS의 3 값(bS1, bS2, bS3)을 0, 1, 2로 명확하게 설정한 예를 나타낸 것이다.
도 13을 참조하면, 우선 블록 P 및/또는 블록 Q가 인트라 코딩되었는지를 판단한다(S1310).
블록 P 및/또는 블록 Q가 인트라 코딩된 경우에는 블록 P와 블록 Q 사이의 경계에 대한 bS의 값을 2로 결정한다(S1320). bS가 2인 경우는 도 5의 예에서 bS 값이 3과 4인 경우(bS=3/4)에 대응한다.
블록 P 및/또는 블록 Q가 인트라 코딩된 경우가 아니면, 블록 P와 블록 Q가 0이 아닌 계수(변환 계수)를 포함하거나 블록 P와 블록 Q가 상이한 참조 픽처를 가지거나 블록 P와 블록 Q가 상이한 움직임 벡터를 가지는지를 판단한다(S1330). 이때 변환 계수는 역양자화가 적용되지 전의 변환 계수일 수도 있고, 역양자화가 적용된 변환 계수일 수도 있다.
S1330 단계에서 블록 P와 블록 Q가 0이 아닌 계수(변환 계수)를 포함하거나 블록 P와 블록 Q가 상이한 참조 픽처를 가지거나 블록 P와 블록 Q가 상이한 움직임 벡터를 가지는 경우에는, 블록 P와 블록 Q 사이의 경계에 대한 bS의 값을 1로 설정한다(S1340). bS가 1인 경우는 블록 P와 블록 Q가 인트라 코딩되지 않고 디블록킹 필터를 적용하는 경우에 대한 bS 값으로서, 도 5의 예에서 bS 값이 1과 2인 경우(bS=1/2)에 대응한다.
그 외의 경우, 즉 디블록킹 필터를 적용하지 않는 경우에 해당하면, bS의 값을 0으로 설정한다(S1340). bS의 값이 0인 경우는 디블록킹 필터를 적용하지 않는 경우에 대한 bS 값으로서, 도 5의 예에서 bS 값이 0인 경우(bS=0)에 대응한다.
bS 결정 트리를 이용하여 디블록킹 필터링에 필요한 변수의 값들을 설정할 수도 있다. 도 13에서는 t0offset를 가장 큰 bS 값에 대해서는 특정 값(예컨대 2)으로 설정하고, 그 외의 bS 값에 대해서는 0으로 설정하는 것을 일 예로서 간단히 나타내고 있다.
도 12 및 도 13과 같이 bS 값이 세 가지 bS값 중 어느 한 값으로 설정되더라도, 결정 트리의 판단 단계를 2 단계로 한정할 필요는 없다. 더 많은 판단 단계를 거치거나 더 작은 판단 단계를 거치더라도 도 5의 결정 방법에서 사용하는 다섯 가지 bS 값을 더 줄여서 적용할 수 있다. 예컨대, 도 12와 도 13에서 하나의 단계에서 판단하는 블록 P와 블록 Q가 0이 아닌 계수(변환 계수)를 포함하거나 P와 Q가 상이한 참조 픽처를 가지거나 블록 P와 블록 Q가 상이한 움직임 벡터를 가지는지에 관한 판단을 나누어 수행할 수도 있다.
도 14는 bS 값을 3가지 값 중 어느 하나로 결정하는 또 다른 방법을 개략적으로 설명하는 순서도이다.
도 14를 참조하면, 우선 블록 P 및/또는 블록 Q가 인트라 코딩되었는지를 판단한다(S1410).
블록 P 및/또는 블록 Q가 인트라 코딩된 경우에는 블록 P와 블록 Q 사이의 경계에 대한 bS의 값을 2로 결정한다(S1420). bS가 2인 경우는 도 5의 예에서 bS 값이 3과 4인 경우(bS=3/4)에 대응한다.
블록 P 및/또는 블록 Q가 인트라 코딩된 경우가 아니면, 블록 P와 블록 Q가 0이 아닌 계수(변환 계수)를 포함하는지를 판단한다(S1430). 이때 변환 계수는 역양자화가 적용되지 전의 변환 계수일 수도 있고, 역양자화가 적용된 변환 계수일 수도 있다.
블록 P와 블록 Q가 0이 아닌 계수(변환 계수)를 포함하는 경우에는 블록 P와 블록 Q 사이의 경계에 대한 bS의 값을 1로 설정한다(S1440). 이때, bS 가 1인 경우는 bS가 1인 경우는 블록 P와 블록 Q가 인트라 코딩되지 않고 디블록킹 필터를 적용하는 경우에 대한 bS 값으로서, 도 5의 예에서 bS가 2인 경우에 대응한다.
블록 P와 블록 Q가 0이 아닌 계수(변환 계수)를 포함하지 않는 경우에는, 블록 P와 블록 Q가 상이한 참조 픽처를 가지거나 블록 P와 블록 Q가 상이한 움직임 벡터를 가지는지를 판단한다(S1450).
S1450 단계에서 블록 P와 블록 Q가 상이한 참조 픽처를 가지거나 블록 P와 블록 Q가 상이한 움직임 벡터를 가지는 경우에는, 블록 P와 블록 Q 사이의 경계에 대한 bS의 값을 1로 설정한다(S1460). bS가 1인 경우는 블록 P와 블록 Q가 인트라 코딩되지 않고 디블록킹 필터를 적용하는 경우에 대한 bS 값으로서, 도 5의 예에서 bS 값이 1 인 경우에 대응한다.
그 외의 경우, 즉 디블록킹 필터를 적용하지 않는 경우에 해당하면, bS의 값을 0으로 설정한다(S1470). bS의 값이 0인 경우는 디블록킹 필터를 적용하지 않는 경우에 대한 bS 값으로서, 도 5의 예에서 bS 값이 0인 경우(bS=0)에 대응한다.
bS 결정 트리를 이용하여 디블록킹 필터링에 필요한 변수의 값들을 설정할 수도 있다. 도 13에서는 t0offset를 가장 큰 bS 값에 대해서는 특정 값(예컨대 2)으로 설정하고, 그 외의 bS 값에 대해서는 0으로 설정하는 것을 일 예로서 간단히 나타내고 있다.
이하, bS의 값을 간소화하여 3 가지 값 중 어느 한 값으로 유도하는 경우에, bS 값을 유도하는 방법을 구체적으로 설명한다.
먼저, 발명의 이해를 돕기 위해 도 5 또는 도 11과 같이 bS의 값을 다섯 값 중 어느 한 값으로 유도하는 경우의 방법을 먼저 설명한다.
<bS를 5가지 값 중 어느 한 값으로 유도하는 방법>
우선, bS가 결정될 에지를 특정한다. bS를 결정할 에지의 특정은 도 6 내지 도 10을 참조하여 설명한 방법 중 어느 하나를 이용하여 수행될 수 있다.
도 6 내지 도 10을 참조하여 설명한 바와 같이, bS가 결정될 에지의 특정에 의해 bS를 결정할 기준 위치 (xEk, yEj)와 bS 를 결정할 에지 좌우의 샘플인 p0와 q0, 디블록킹 필터링의 방향 등이 유도된다. p0와 q0는 상술한 바와 같이 (xEk, yEj)를 기반으로 결정된다.
유도된 디블록킹 필터링 방향에 따라서 경계 필터링 세기를 나타내는 변수 bS[filterDir][xEk][yEj]가 결정된다. 예컨대, filterDir의 값이 1이면 수직 방향의 필터링을 지시하며, 따라서 수평 에지에 대한 bS가 유도된다. filterDir의 값이 0이면 수평 방향의 필터링을 지시하며, 따라서 수직 에지에 대한 bS가 유도된다. xEk와 yEj는 bS를 결정하는 에지를 특정한다. 예컨대, bS를 결정하는 에지는, 수평 에지의 경우 (xC+xEk, yC+yEj-1)로 설정되는 p0와 (xC+xEk, yC+yEj)로 설정되는 q0 사이의 경계로 특정될 수 있고, 수직 에지의 경우 (xC+xEk-1, yC+yEj)로 설정되는 p0와 (xC+xEk, yC+yEj)로 설정되는 q0 사이의 경계로 특정될 수 있다.
bS[filterDir][xEk][yEj]의 값은 다음과 같이 유도될 수 있다.
(1) bS 결정 대상인 블록 에지가 CU 에지이며, 샘플 p0 또는 q0가 인트라 예측 모드로 코딩된 CU에 속하면, bS 즉 bS[filterDir][xEk][yEj] 값은 4로 설정된다.
(2) 샘플 p0 또는 q0가 인트라 예측 모드로 코딩된 CU에 하지만, bS 결정 대상인 블록 에지가 CU 에지가 아니면, bS[filterDir][xEk][yEj] 값은 3으로 설정된다.
(3) bS 결정 대상인 블록 에지가 TU 에지이며, 샘플 p0 또는 q0가 0이 아닌 변환 계수 레벨(level)을 포함하는 TU에 속하면, bS[filterDir][xEk][yEj] 값은 2로 설정된다.
(4) 그 외, 디블록킹 필터링이 적용되는 경우의 bS[filterDir][xEk][yEj] 값은 1로 설정된다. 예컨데, 도 5, 도 11, 도 12, 도 13, 도 14 의 예에서는 설명의 편의를 위해, 샘플 p0또는 q0가 인트라 예측이 적용된 블록에 속하는 경우가 아니면서 디블록킹 필터가 적용되는 경우로서, 블록 P 및/또는 블록 Q가 0이 아닌 변환 계수를 포함하는 경우와 블록 P와 블록 Q가 상이한 움직임 벡터를 가지거나 상이한 참조 픽처를 가지는 경우를 예로서 들었으나, 그 외에도 다양한 경우에 0이 아닌 bS가 설정될 수 있다. 예컨대, (i) 블록 P와 블록 Q가 서로 다른 개수의 움직임 벡터를 가지는 경우, (ii) 블록 P에 사용된 움직임 벡터와 블록 Q에 사용된 움직임 벡터의 수직 성분들 사이의 절대값 차이 또는 수평 성분들 사이의 절대값 차이가 1/4 픽셀 단위로 4 이상 차이 나는 경우에도 bS[filterDir][xEk][yEj] 값을 1로 설정할 수 있다.
(5) (1) 내지 (4)가 아닌 경우, 즉 디블록킹 필터링을 적용하지 않는 경우에는 bS[filterDir][xEk][yEj] 값을 0으로 설정한다.
한편, 상기 bS 값을 5가지 값 중 어느 한 값으로 유도하는 방법의 경우와 달리, 도 12 내지 도 14와 같이 bS 값을 3가지 값 중 어느 한 값으로 유도하여, 더 낮은 복잡도로 간단하게 bS를 유도할 수도 있다.
다음은 bS 값을 3가지 값 중 어느 한 값으로 유도하는 방법의 일 예이다.
<bS를 3 가지 값 중 어느 한 값으로 유도하는 방법 1>
bS가 결정될 에지를 특정한다. bS를 결정할 에지의 특정은 도 6 내지 도 10을 참조하여 설명한 방법 중 어느 하나를 이용하여 수행될 수 있다.
bS가 결정될 에지의 특정에 의해 bS를 결정할 기준 위치 (xEk, yEj)와 bS 를 결정할 에지 좌우의 샘플인 p0와 q0, 디블록킹 필터링의 방향 등이 유도된다.
유도된 디블록킹 필터링 방향에 따라서 경계 필터링 세기를 나타내는 변수 bS[filterDir][xEk][yEj]가 결정된다. 예컨대, filterDir의 값이 1이면 수직 방향의 필터링을 지시하며, 따라서 수평 에지에 대한 bS가 유도된다. filterDir의 값이 0이면 수평 방향의 필터링을 지시하며, 따라서 수직 에지에 대한 bS가 유도된다. xEk와 yEj는 bS를 결정하는 에지를 특정한다. 예컨대, bS를 결정하는 에지는, 수평 에지의 경우 (xC+xEk, yC+yEj-1)로 설정되는 p0와 (xC+xEk, yC+yEj)로 설정되는 q0 사이의 경계로 특정될 수 있고, 수직 에지의 경우 (xC+xEk-1, yC+yEj)로 설정되는 p0와 (xC+xEk, yC+yEj)로 설정되는 q0 사이의 경계로 특정될 수 있다.
bS[filterDir][xEk][yEj]의 값은 다음과 같이 유도될 수 있다.
(1) 샘플 p0 또는 q0가 인트라 예측 모드로 코딩된 CU에 속하면, bS 즉 bS[filterDir][xEk][yEj] 값은 2로 설정된다.
(2) bS 결정 대상인 블록 에지가 TU 에지이며, 샘플 p0 또는 q0가 0이 아닌 변환 계수 레벨(level)을 포함하는 TU에 속하면, bS[filterDir][xEk][yEj] 값은 1로 설정된다.
(3) 그 외, 디블록킹 필터링이 적용되는 경우의 bS[filterDir][xEk][yEj] 값은 1로 설정된다. 예컨데, 앞서 bS 결정 트리 구조에 관한 도면들과 관련하여 예로서 설명한 (i) p0를 포함하는 PU 또는 q0를 포함하는 PU가 상이한 참조 픽처들을 가지거나, 상이한 개수의 움직임 벡터를 가지는 경우, (ii) p0를 포함하는 PU 에 사용된 움직임 벡터와 q0를 포함하는 PU에 사용된 움직임 벡터의 수직 성분들 사이의 절대값 차이 또는 수평 성분들 사이의 절대값 차이가 1/4 픽셀 단위로 4 이상 차이 나는 경우, (iii) 두 움직임 벡터가 p0를 포함하는 PU에서 사용되고, 두 움직임 벡터가 q0를 포함하는 PU에서 사용된다면, 동일한 참조 픽처들에 대응하는 적어도 하나의 움직임 벡터 쌍에 대하여, 움직임 벡터의 수직 성분들 사이의 절대값 차이 또는 수평 성분들 사이의 절대값 차이가 1/4 픽셀 단위로 4 이상 차이 나는 경우 등에 bS[filterDir][xEk][yEj] 값을 1로 설정할 수 있다.
(4) (1) 내지 (3)이 아닌 경우, 즉 디블록킹 필터링을 적용하지 않는 경우에는 bS[filterDir][xEk][yEj] 값을 0으로 설정한다.
한편, 상술한 바와 같이 4 단계로 bS를 유도하지 않고, 동일한 bS 값은 동일한 단계에서 유도되도록 할 수 있다. bS 값을 3 가지 bS 값 중 어느 한 값으로 유도하는 방법의 다른 예는 다음과 같다.
<bS를 3 가지 값 중 어느 한 값으로 유도하는 방법 2>
bS가 결정될 에지를 특정한다. bS를 결정할 에지의 특정은 도 6 내지 도 10을 참조하여 설명한 방법 중 어느 하나를 이용하여 수행될 수 있다.
bS가 결정될 에지의 특정에 의해 bS를 결정할 기준 위치 (xEk, yEj)와 bS 를 결정할 에지 좌우의 샘플인 p0와 q0, 디블록킹 필터링의 방향 등이 유도된다.
유도된 디블록킹 필터링 방향에 따라서 경계 필터링 세기를 나타내는 변수 bS[filterDir][xEk][yEj]가 결정된다. 예컨대, filterDir의 값이 1이면 수직 방향의 필터링을 지시하며, 따라서 수평 에지에 대한 bS가 유도된다. filterDir의 값이 0이면 수평 방향의 필터링을 지시하며, 따라서 수직 에지에 대한 bS가 유도된다. xEk와 yEj는 bS를 결정하는 에지를 특정한다. 예컨대, bS를 결정하는 에지는, 수평 에지의 경우 (xC+xEk, yC+yEj-1)로 설정되는 p0와 (xC+xEk, yC+yEj)로 설정되는 q0 사이의 경계로 특정될 수 있고, 수직 에지의 경우 (xC+xEk-1, yC+yEj)로 설정되는 p0와 (xC+xEk, yC+yEj)로 설정되는 q0 사이의 경계로 특정될 수 있다.
bS[filterDir][xEk][yEj]의 값은 다음과 같이 유도될 수 있다.
(1) 샘플 p0 또는 q0가 인트라 예측 모드로 코딩된 CU에 속하면, bS 즉 bS[filterDir][xEk][yEj] 값은 2로 설정된다.
(2) 그 외, 디블록킹 필터링이 적용되는 경우의 bS[filterDir][xEk][yEj] 값은 1로 설정된다. 예컨데, bS 결정 대상인 블록 에지가 TU 에지이면서 (i) 샘플 p0 또는 q0가 0이 아닌 변환 계수 레벨(level)을 포함하는 TU에 속하는 경우, (ii) p0를 포함하는 PU 또는 q0를 포함하는 PU가 상이한 참조 픽처들을 가지거나, 상이한 개수의 움직임 벡터를 가지는 경우, (iii) p0를 포함하는 PU 에 사용된 움직임 벡터와 q0를 포함하는 PU에 사용된 움직임 벡터의 수직 성분들 사이의 절대값 차이 또는 수평 성분들 사이의 절대값 차이가 1/4 픽셀 단위로 4 이상 차이 나는 경우, (iv) 두 움직임 벡터가 p0를 포함하는 PU에서 사용되고, 두 움직임 벡터가 q0를 포함하는 PU에서 사용된다면, 동일한 참조 픽처들에 대응하는 적어도 하나의 움직임 벡터 쌍에 대하여, 움직임 벡터의 수직 성분들 사이의 절대값 차이 또는 수평 성분들 사이의 절대값 차이가 1/4 픽셀 단위로 4 이상 차이 나는 경우 등에 bS[filterDir][xEk][yEj] 값을 1로 설정할 수 있다.
(3) (1) 및 (2)가 아닌 경우, 즉 디블록킹 필터링을 적용하지 않는 경우에는 bS[filterDir][xEk][yEj] 값을 0으로 설정한다.
한편, bS 값이 1로 유도되는 경우를 bS 결정 대상인 블록 에지가 TU의 에지인 경우로 한정하지 않을 수도 있다. bS 값을 3가지 값 중 어느 한 값으로 유도하는 방법의 또 다른 예는 다음과 같다.
<bS를 3가지 값 중 어느 한 값으로 유도하는 방법 3>
bS가 결정될 에지를 특정한다. bS를 결정할 에지의 특정은 도 6 내지 도 10을 참조하여 설명한 방법 중 어느 하나를 이용하여 수행될 수 있다.
bS가 결정될 에지의 특정에 의해 bS를 결정할 기준 위치 (xEk, yEj)와 bS 를 결정할 에지 좌우의 샘플인 p0와 q0, 디블록킹 필터링의 방향 등이 유도된다.
유도된 디블록킹 필터링 방향에 따라서 경계 필터링 세기를 나타내는 변수 bS[filterDir][xEk][yEj]가 결정된다. 예컨대, filterDir의 값이 1이면 수직 방향의 필터링을 지시하며, 따라서 수평 에지에 대한 bS가 유도된다. filterDir의 값이 0이면 수평 방향의 필터링을 지시하며, 따라서 수직 에지에 대한 bS가 유도된다. xEk와 yEj는 bS를 결정하는 에지를 특정한다. 예컨대, bS를 결정하는 에지는, 수평 에지의 경우 (xC+xEk, yC+yEj-1)로 설정되는 p0와 (xC+xEk, yC+yEj)로 설정되는 q0 사이의 경계로 특정될 수 있고, 수직 에지의 경우 (xC+xEk-1, yC+yEj)로 설정되는 p0와 (xC+xEk, yC+yEj)로 설정되는 q0 사이의 경계로 특정될 수 있다.
bS[filterDir][xEk][yEj]의 값은 다음과 같이 유도될 수 있다.
(1) 샘플 p0 또는 q0가 인트라 예측 모드로 코딩된 CU에 속하면, bS 즉 bS[filterDir][xEk][yEj] 값은 2로 설정된다.
(2) 그 외, 디블록킹 필터링이 적용되는 경우의 bS[filterDir][xEk][yEj] 값은 1로 설정된다. 예컨데, (i) bS 결정 대상인 블록 에지가 TU 에지이면서 샘플 p0 또는 q0가 0이 아닌 변환 계수 레벨(level)을 포함하는 TU에 속하는 경우, (ii) p0를 포함하는 PU 또는 q0를 포함하는 PU가 상이한 참조 픽처들을 가지거나, 상이한 개수의 움직임 벡터를 가지는 경우, (iii) p0를 포함하는 PU 에 사용된 움직임 벡터와 q0를 포함하는 PU에 사용된 움직임 벡터의 수직 성분들 사이의 절대값 차이 또는 수평 성분들 사이의 절대값 차이가 1/4 픽셀 단위로 4 이상 차이 나는 경우, (iv) 두 움직임 벡터가 p0를 포함하는 PU에서 사용되고, 두 움직임 벡터거 q0를 포함하는 PU에서 사용된다면, 동일한 참조 픽처들에 대응하는 적어도 하나의 움직임 벡터 쌍에 대하여, 움직임 벡터의 수직 성분들 사이의 절대값 차이 또는 수평 성분들 사이의 절대값 차이가 1/4 픽셀 단위로 4 이상 차이 나는 경우 등에 bS[filterDir][xEk][yEj] 값을 1로 설정할 수 있다.
(3) (1) 및 (2)가 아닌 경우, 즉 디블록킹 필터링을 적용하지 않는 경우에는 bS[filterDir][xEk][yEj] 값을 0으로 설정한다.
상기 bS를 3가지 값 중 어느 한 값으로 유도하는 방법들에서 p0를 포함하는 PU와 q0를 포함하는 PU에서 참조 픽처가 상이하다는 것은, 어떤 참조 픽처 리스트를 사용하는지, 참조 픽처 리스트의 참조 픽처 인덱스가 동일한지에 상관 없이, 어떤 픽처가 참조되었는지에 따라서 결정된다.
한편, 지금까지는 루마 샘플에 대하여 설명하였으나, 상술한 바와 같이 유도한 bS를 크로마 샘플에도 적용할 수 있다.
설명한 바와 같이, bS 값의 개수를 줄여서 복잡도를 낮추고 간단하게 bS를 유도하는 경우에는 크라마 성분에 대한 디블록킹 필터링 방법도 수정 적용할 필요가 있다.
bS를 5 가지 값 중 어느 한 값으로 유도하고, 이를 이용하여 크로마 성분(크로마 샘플)에 대한 디블록킹 필터링을 적용하는 방법의 일 예는 다음과 같다.
<크로마 샘플에 디블록킹 필터링을 적용하는 방법 1>
변수 tC를 특정한다. 변수 tC는 양자화 정도에 따른 블록킹 아티팩트를 정량화하는 값으로서, t0offset을 기반으로 유도되거나 다른 디블록킹 파라미터들을 기반으로 소정의 테이블 상에서 매핑되도록 설정되어 있을 수 있다.
예컨대, 후술하는 표 1과 같이, 양자화 파라미터 Q, 디블록팅 필터링을 적용할 것인지를 결정하는 기준값으로서의 β 등에 따라서 tC가 결정될 수 있다.
크로마 샘플의 에지에 대해서, 상기 <bS를 5가지 값 중 어느 한 값으로 유도하는 방법>에서 설명한 바와 같이, bS를 0부터 4까지의 값으로 유도했을 때, tc 값을 다음과 같이 특정될 수 있다. (1) bS 값이 2보다 크면 라운드(round) 값을 고려한 블록 P와 블록 Q에 대한 양자화 파라미터의 평균값을 qPL이라고 할 때, tC는 양자화 파라미터 Q = Clip(0, 55, qPL) 에 대응하는 값으로 결정된다. (2) bS 값이 2 이하이면 tC는 양자화 파라미터 Q=qPL에 대응하는 값으로 결정된다.
표 1은 Q, β, tC 간 대응 관계의 일 예를 나타낸 것이다.
[표 1]
이때, 이때, tC = tC′ * ( 1 << ( BitDepthY - 8) ), β = β′ * ( 1 << ( BitDepthY - 8 ) )의 관계에 있을 수 있다.
크로마 샘플에 대한 디블록킹 필터링이 표 1의 값을 기반으로 특정된 파라미터들을 이용하여 수행될 수 있다.
우선 수직 에지에 대하여, 각 크로마 샘플 위치 (xC + xB, yC + yB + k)를 기준으로 대하여 다음와 같이 디블록킹 필터링을 수행한다. 이때, k= 0,..., 3이다.
(1) 수직 에지를 경계로 하는 블록 P와 블록 Q에 있어서, 블록 P의 크로마 샘플 pi와 블록 Q의 크로마 샘플 qi (i=0, 1)는 qi = s'[ xC + xB+i, yC + yB + k ], pi = s'[ xC + xB-i-1, yC + yB + k ]로 유도된다.
(2) bS가 2보다 크면, (i)크로마 샘플값 pi 및 qi (i=0,1)에 대하여 필터링 절차가 진행된다. (ii) 필터링된 샘플 값 p0'과 q0'가 샘플 어레이 내에서 대응하는 샘플 위치를 다음과 같이 대체한다. s'[ xC + xB, yC + yB + k ] = q0', s'[ xC + xB, yC + yB + k ] = p0'
수평 에지에 대하여,다음과 같이 크로마 성분의 디블록킹 필터링을 수행한다. 이때, k= 0,..., 3이다.
(1) 블록 P의 크로마 샘플 pi와 블록 Q의 크로마 샘플 qi (i=0. 1)는 qi = s'[ xC + xB+i, yC + yB + k ], pi = s'[ xC + xB-i-1, yC + yB + k ]로 유도된다.
(2) bS가 2보다 크면, (i)크로마 샘플 pi 및 qi (i=0,1)에 대하여 필터링 절차가 진행된다. (ii) 필터링된 샘플 p0'과 q0'가 샘플 어레이 내에서 대응하는 샘플을 다음과 같이 대체한다. s'[ xC + xB, yC + yB + k ] = q0', s'[ xC + xB, yC + yB + k ] = p0'
수평 에지에 대하여는, 다음과 같이 디블록킹 필터링을 수행한다.
(1) 수평 에지를 경계로 하는 블록 P와 블록 Q에 있어서, 블록 P의 크로마 샘플 pi와 블록 Q의 크로마 샘플 qi (i=0, 1)는 qi = s'[ xC + xB + k, yC + yB + i ], pi = s'[ xC + xB + k, yC + yB - i -1 ]로 유도된다. 이때, k는 0, ..., 3의 값을 가질 수 있다.
(2) bS가 2보다 크다면, (i) 각 크로마 샘플 pi 및 qi (i=0,1)에 대하여 디블록킹 필터링을 적용한다. (ii) 필터링된 샘플 p0'과 q0'가 샘플 어레이 내에서 대응하는 샘플을 다음과 같이 대체한다. s'[ xC + xB, yC + yB + k ] = q0', s'[ xC + xB - 1, yC + yB + k ] = p0'
상술한 필터링 과정에서, bS의 값이 2보다 크면, 필터링되는 샘플은 다음 수식 5와 같이 유도된다.
<수식 5>
Δ = Clip3( -tC, tC, ( ( ( ( q0 - p0 ) << 2 ) + p1 - q1 + 4 ) >> 3 ) )
p0’ = Clip1C( p0 + Δ )
q0’ = Clip1C( q0 - Δ )
한편, bS 값의 개수를 줄여서 복잡도를 낮추고 간단하게 유도한 bS를 적용하는 경우에는 크로마 샘플에 대한 디블록킹 필터링 방법을 다음과 같이 적용할 수 있다.
<크로마 샘플에 디블록킹 필터링을 적용하는 방법 2>
변수 tC를 특정한다. 변수 tC는 양자화 정도에 따른 블록킹 아티팩트를 정량화하는 값으로서 t0offset을 기반으로 유도되거나 다른 디블록킹 파라미터들을 기반으로 소정의 테이블 상에서 매핑되도록 설정되어 있을 수 있다.
예컨대, 후술하는 표 2와 같이, 양자화 파라미터 Q, 디블록팅 필터링을 적용할 것인지를 결정하는 기준값으로서의 β 등에 따라서 tC가 결정될 수 있다.
크로마 샘플의 에지에 대해서, 상기 <bS를 3가지 값 중 어느 한 값으로 유도하는 방법>에서 설명한 바와 같이, bS를 0부터 2까지의 값으로 유도했을 때, tc 값을 다음과 같이 특정될 수 있다. (1) bS 값이 2보다 크면 라운드(round) 값을 고려한 블록 P와 블록 Q에 대한 양자화 파라미터의 평균값을 qPL이라고 할 때, tC는 양자화 파라미터 Q = Clip(0, 55, qPL) 에 대응하는 값으로 결정된다. (2) bS 값이 2 이하이면 tC는 양자화 파라미터 Q=qPL에 대응하는 값으로 결정된다.
표 2는 Q, β, tC 간 대응 관계의 일 예를 나타낸 것이다.
[표 2]
이때, 이때, tC = tC′ * ( 1 << ( BitDepthY - 8) ), β = β′ * ( 1 << ( BitDepthY - 8 ) )의 관계에 있을 수 있다.
크로마 샘플에 대한 디블록킹 필터링도 표 2의 값을 기반으로 특정된 파라미터들을 이용하여 수행될 수 있다.
우선 수직 에지에 대하여, 각 크로마 샘플 위치 (xC + xB, yC + yB + k)를 기준으로 대하여 다음와 같이 디블록킹 필터링을 수행한다. 이때, k= 0,..., 3이다.
(1) 수직 에지를 경계로 하는 블록 P와 블록 Q에 있어서, 블록 P의 크로마 샘플 pi와 블록 Q의 크로마 샘플 qi (i=0, 1)는 qi = s'[ xC + xB+i, yC + yB + k ], pi = s'[ xC + xB-i-1, yC + yB + k ]로 유도된다.
(2) bS가 1보다 크면, (i)크로마 샘플값 pi 및 qi (i=0,1)에 대하여 필터링 절차가 진행된다. (ii) 필터링된 샘플 값 p0'과 q0'가 샘플 어레이 내에서 대응하는 샘플 위치를 다음과 같이 대체한다. s'[ xC + xB, yC + yB + k ] = q0', s'[ xC + xB, yC + yB + k ] = p0'
수평 에지에 대하여,다음과 같이 크로마 성분의 디블록킹 필터링을 수행한다. 이때, k= 0,..., 3이다.
(1) 블록 P의 크로마 샘플 pi와 블록 Q의 크로마 샘플 qi (i=0. 1)는 qi = s'[ xC + xB+i, yC + yB + k ], pi = s'[ xC + xB-i-1, yC + yB + k ]로 유도된다.
(2) bS가 1보다 크면, (i)크로마 샘플 pi 및 qi (i=0,1)에 대하여 필터링 절차가 진행된다. (ii) 필터링된 샘플 p0'과 q0'가 샘플 어레이 내에서 대응하는 샘플을 다음과 같이 대체한다. s'[ xC + xB, yC + yB + k ] = q0', s'[ xC + xB, yC + yB + k ] = p0'
수평 에지에 대하여는, 다음과 같이 디블록킹 필터링을 수행한다.
(1) 수평 에지를 경계로 하는 블록 P와 블록 Q에 있어서, 블록 P의 크로마 샘플 pi와 블록 Q의 크로마 샘플 qi (i=0, 1)는 qi = s'[ xC + xB + k, yC + yB + i ], pi = s'[ xC + xB + k, yC + yB - i -1 ]로 유도된다. 이때, k는 0, ..., 3의 값을 가질 수 있다.
(2) bS가 1보다 크다면, (i) 각 크로마 샘플 pi 및 qi (i=0,1)에 대하여 디블록킹 필터링을 적용한다. (ii) 필터링된 샘플 p0'과 q0'가 샘플 어레이 내에서 대응하는 샘플을 다음과 같이 대체한다. s'[ xC + xB, yC + yB + k ] = q0', s'[ xC + xB - 1, yC + yB + k ] = p0'
상술한 필터링 과정에서, bS의 값이 1보다 크면, 필터링되는 샘플은 다음 수식 6과 같이 유도된다.
<수식 6>
Δ = Clip3( -tC, tC, ( ( ( ( q0 - p0 ) << 2 ) + p1 - q1 + 4 ) >> 3 ) )
p0’ = Clip1C( p0 + Δ )
q0’ = Clip1C( q0 - Δ )
한편, 블록 경계에서 블록킹 아티팩트(blocking artifact)를 유발하는 주 원인 중 하나는 블록 기반의 움직임 보상(block based motion compensation)이다. 이를 극복하기 위해 OBMC(Overlapped Block Motion Compensation)이 사용될 수 있다.
OBMC를 사용하는 경우에는 상술한 bS 결정 과정도, OBMC에 맞게 수정할 필요가 있다. 예컨대, 블록 간의 움직임 정보가 상이하면 블록 아티팩트가 심할 수 있기 때문에, bS의 값 0과 1을 결정하는 기준 중 한 가지는 움직임 정보의 유사성이라고 할 수 있다. 하지만, OBMC 기술을 사용하게 되면, 움직임 보상을 수행하는 영역의 경계에서 블록 아티팩트가 줄어들게 된다. 결과적으로 불필요한 디블록킹 필터링을 줄일 수 있게 되지만, 이를 반영하여 bS 결정 프로세스(bS 결정 트리)를 수정할 필요가 있다.
도 15는 OMBC를 적용하는 경우에 적용되는 bS 결정 트리의 일 예로서, bS를 결정하는 방법을 개략적으로 설명하는 순서도이다.
도 15를 참조하면, 우선 블록 P 및/또는 블록 Q가 인트라 코딩되었는지를 판단한다(S1500).
블록 P 및/또는 블록 Q가 인트라 코딩된 경우에는 블록 Q의 경계, 즉 블록 P와 블록 Q의 경계가 코딩 블록의 경계인지를 판단한다(S1510). 이때, 코딩 블록이라 함은 CU와 LCU를 포함한다.
S1510 단계에서, 블록 P와 블록 Q의 경계가 코딩 블록의 경계인 경우에는 블록 P와 블록 Q 사이 경계에 대한 bS의 값을 bS4(예컨대, bS4 = 4)로 결정한다(S1520).
S1520 단계에서, 블록 P와 블록 Q의 경계가 코딩 블록의 경계가 아닌 경우에는 블록 P와 블록 Q 사이 경계에 대한 bS의 값을 bS3(예컨대, bS3 = 3)으로 결정한다(S1530).
S1500 단계에서, 블록 P 및 블록 Q가 인트라 코딩되지 않는 경우에는 블록 P와 블록 Q가 단일 코딩 블록(예컨대, CU) 내 직사각형 또는 비대칭 파티션(partition) 안에 있는지를 판단한다(S1540).
S1540 단계에서, 블록 P와 블록 Q가 단일 코딩 블록(예컨대, CU) 내 직사각형 또는 비대칭 파티션 안에 있지 않은 경우에는 블록 P 및/또는 블록 Q가 계수(0이 아닌 변환 계수)를 포함하는지를 판단한다(S1550). 이때, 변환 계수는 역양자화가 적용되기 전의 변환 계수일 수도 있고, 역양자화가 적용된 후의 변환 계수일 수도 있다.
S1550 단계에서, 블록 P 및/또는 블록 Q가 계수(0이 아닌 변환 계수)를 포함하는 경우에는 블록 P와 블록 Q 사이의 경계에 대한 bS를 bS2(예컨대, bS2 = 2)로 결정한다(S1560).
S1550 단계에서, 블록 P 및/또는 블록 Q가 계수(0이 아닌 변환 계수)를 포함하는 경우가 아니라면, 블록 P와 블록 Q가 상이한 참조 픽처 또는 움직임 벡터를 가지는지를 판단한다(S1570).
S1570 단계에서, 블록 P와 블록 Q가 상이한 참조 픽처 또는 움직임 벡터를 가지는 경우에는 블록 P와 블록 Q 사이의 경계에 대한 bS를 bS1(예컨대, bS1 = 1)으로 결정한다(S1580).
그 외의 경우, 즉 디블록킹 필터를 적용하지 않는 경우에 해당하면, bS를 bS0(예컨대, bS0 = 0)으로 설정한다(S1590). bS를 bS0으로 설정하는 경우는, S1540 단계에서 블록 P와 블록 Q가 단일 코딩 블록(예컨대 CU) 내 직사각형 또는 비대칭 파티션 안에 있는 경우가 아니거나 S1570 단계에서 블록 P와 블록 Q가 상이한 참조 픽처 또는 움직임 벡터를 가지지 않는 경우를 포함한다.
도 15의 예에서도, 앞선 bS 결정에 관한 예들과 마찬가지로 bS4 > bS3 > bS2 > bS1 > bS0의 관계를 유지한다. 따라서, bS0 ∼ bS4의 값을 상기 예로 든 바 및 도시된 바와 같이, bS4 = 4, bS3 = 3, bS2 = 2, bS1 = 1, bS0 = 0으로 설정할 수 있다.
또한, 앞서의 예들과 마찬가지로, bS 결정 트리를 이용하여 디블록킹 필터링에 필요한 변수의 값들을 설정할 수도 있다. 도 15에서는, 가장 큰 두 bS 값에 대해서는 t0offset를 특정 값(예컨대 2)으로 설정하고, 그 외의 bS 값에 대해서는 t0offset를 0으로 설정하는 일 예를 간단히 나타내고 있다.
도 15의 예에서는, 블록 P와 블록 Q가 동일한 코딩 블록(예컨대, CU) 내에 있으면서, 직사각형(rectangular) 파티션(예컨대, 예측 블록, PU 등) 안에 있거나 비대칭(asymmetric) 파티션(예컨대, 예측 블록, PU 등) 안에 있으면 블록 P와 블록 Q 사이의 경계에 대한 bS의 값을 0으로 결정할 수 있다.
이와 달리, 블록 P와 블록 Q가 동일한 코딩 블록(예컨대, CU) 내에 있으면서, 직사각형 파티션(예컨대, 예측 블록, PU 등) 안에 있거나 비대칭 파티션(예컨대, 예측 블록, PU 등) 안에 있더라도, 블록 P의 움직임 정보와 블록 Q의 움직임 정보의 차이가 크다면 블록 P와 블록 Q 사이의 경계에 대한 bS 값을 1로 결정하고, 블록 P의 움직임 정보와 블록 Q의 움직임 정보의 차이가 작다면 블록 P와 블록 Q 사이의 경계에 대한 bS를 0으로 결정할 수도 있다.
도 16은 OMBC를 적용하는 경우에 적용되는 bS 결정 트리의 다른 예로서, bS를 결정하는 방법을 개략적으로 설명하는 순서도이다.
도 16을 참조하면, 우선 P 및/또는 Q가 인트라 코딩되었는지를 판단한다(S1600).
블록 P 및/또는 블록 Q가 인트라 코딩된 경우에는 블록 Q의 경계, 즉 블록 P와 블록 Q의 경계가 코딩 블록의 경계인지를 판단한다(S1610). 이때, 코딩 블록이라 함은 CU와 LCU를 포함한다.
S1610 단계에서, 블록 P와 블록 Q의 경계가 코딩 블록의 경계인 경우에는 블록 P와 블록 Q 사이 경계에 대한 bS의 값을 bS4(예컨대, bS4 = 4)로 결정한다(S1620).
S1620 단계에서, 블록 P와 블록 Q의 경계가 코딩 블록의 경계가 아닌 경우에는 블록 P와 블록 Q 사이 경계에 대한 bS의 값을 bS3(예컨대, bS3 = 3)으로 결정한다(S1630).
S1600 단계에서, 블록 P 및 블록 Q가 인트라 코딩되지 않는 경우에는 블록 P와 블록 Q가 단일 코딩 블록(예컨대, CU) 내 직사각형 또는 비대칭 파티션(partition) 안에 있는지를 판단한다(S1640).
S1640 단계에서, 블록 P와 블록 Q가 단일 코딩 블록(예컨대, CU) 내 직사각형 또는 비대칭 파티션 안에 있는 경우가 아니라면, 블록 P 및/또는 블록 Q가 계수(0이 아닌 변환 계수)를 포함하는지를 판단한다(S1650). 이때, 변환 계수는 역양자화가 적용되기 전의 변환 계수일 수도 있고, 역양자화가 적용된 후의 변환 계수일 수도 있다.
S1650 단계에서, 블록 P 및/또는 블록 Q가 계수(0이 아닌 변환 계수)를 포함하는 경우에는 블록 P와 블록 Q 사이의 경계에 대한 bS를 bS2(예컨대, bS2 = 2)로 결정한다(S1660).
S1640 단계에서, 블록 P와 블록 Q가 단일 코딩 블록(예컨대, CU) 내 직사각형 또는 비대칭 파티션 안에 있는 경우이거나, S1650 단계에서, 블록 P 및/또는 블록 Q가 계수(0이 아닌 변환 계수)를 포함하는 경우가 아니라면, 블록 P와 블록 Q가 상이한 참조 픽처 또는 움직임 벡터를 가지는지를 판단한다(S1670).
S1670 단계에서, 블록 P와 블록 Q가 상이한 참조 픽처 또는 움직임 벡터를 가지는 경우에는 블록 P와 블록 Q 사이의 경계에 대한 bS를 bS1(예컨대, bS1 = 1)으로 결정한다(S1680).
그 외의 경우, 즉 디블록킹 필터를 적용하지 않는 경우에 해당하면, bS를 bS0(예컨대, bS0 = 0)으로 설정한다(S1690).
도 16의 예에서도, 앞선 bS 결정에 관한 예들과 마찬가지로 bS4 > bS3 > bS2 > bS1 > bS0의 관계를 유지한다. 따라서, bS0 ∼ bS4의 값을 예로 든 바 및 도시된 바와 같이, bS4 = 4, bS3 = 3, bS2 = 2, bS1 = 1, bS0 = 0으로 설정할 수 있다.
상술한 바와 같이, 도 16의 예에서는 블록 P와 블록 Q가 동일한 코딩 블록(예컨대, CU) 내에 있으면서, 직사각형 파티션(예컨대, 예측 블록, PU 등) 안에 있거나 비대칭 파티션(예컨대, 예측 블록, PU 등) 안에 있더라도 블록 P와 블록 Q 사이의 경계에 대한 bS 값을 bS1(예컨대 bS=1)로 결정할 수 있다.
또한, 앞서의 예들과 마찬가지로, bS 결정 트리를 이용하여 디블록킹 필터링에 필요한 변수의 값들을 설정할 수도 있다. 도 16에서는 가장 큰 두 bS 값에 대해서는 t0offset를 특정 값(예컨대 2)으로 설정하고, 그 외의 bS 값에 대해서는 t0offset를 0으로 설정하는 일 예를 간단히 나타내고 있다.
한편, 블록 P 및/또는 블록 Q가 인트라 코딩된 경우에 bS의 값을 구분할 필요가 없을 수도 있다. 예컨대, 도 5, 도 15 또는 도 16의 예와 같이, I 슬라이스(인트라 코딩된 슬라이스)에서 대상 경계가 코딩 블록(예컨대 CU)의 경계인지를 판단하여, 코딩 블록의 경계이면 bS를 4로 결정하고 그 외의 경계이면 bS를 3으로 결정하는 경우라면, 모든 I 슬라이스에 대하여 결국 bS의 값은 3 또는 4로 귀결된다.
이와 관련하여, 도 12 내지 도 14와 같이 bS 결정 트리를 수정하여 복잡도를 낮추는 방법이 적용된다면, 결국 bS의 값은 0보다 큰가 또는 1 이나 2보다 큰지를 고려해서 단순하게 적용될 가능성도 있다. 따라서, bS의 값이 3이냐 4이냐를 구별할 필요가 없을 수도 있다.
도 17은 bS를 결정하여 디블록킹 필터링을 적용하는 방법의 일 예를 개략적으로 설명하는 도면이다.
도 17을 참조하면, 디블록킹 필터링을 적용하기 위해 bS를 결정하고(S1710), 결정된 bS에 따라서 블록 기반의 필터링 온/오프를 결정하고(S1720), 소정의 bS에 대하여 강한(strong) 필터를 적용할 것인지 약한(weak) 필터를 적용할 것인지를 결정하여(S1730), 필터링 동작(filtering operation)을 수행한다(S1740).
도 17의 예에서 디블록킹 필터를 적용하는 방법은 앞서 도 3을 기반으로 설명한 방법과 동일하거나 유사한 것을 확인할 수 있다.
이때, bS 결정 단계(S1710)에서는 도 5, 도 15 또는 도 16와 같이, 블록 P 및/또는 블록 Q가 인트라 코딩된 경우에 대상 경계가 코딩 블록의 경계인지를 구분하여 bS값을 결정할 수도 있다.
도 18은 bS를 결정하여 디블록킹 필터링을 적용하는 방법의 다른 예를 개략적으로 설명하는 도면이다. 도 18에서는 도 17과 달리 블록 P 및/또는 블록 Q가 인트라 코딩된 경우(I 슬라이스인 경우)에 bS를 추가적으로 구분하여 결정하지 않는다.
도 18을 참조하면, 디블록킹 필터링을 적용하기 위해 블록 P 및/또는 블록 Q가 인트라 코딩되었는지(I 슬라이스인지)를 판단한다(S1810).
블록 P 및/또는 블록 Q가 인트라 코딩된 경우가 아니라면, 도 17의 예와 같이 bS를 결정하는 일반적인 단계를 수행한다(S1820).
블록 P 및/또는 블록 Q가 인트라 코딩된 경우(I 슬라이스인 경우)라면, 도 17의 예와 달리 bS를 하나의 값(예컨대 4)로 결정한다(S1830).
이어서, 결정된 bS에 따라서 블록 기반의 필터링 온/오프를 결정하고(S1840), 소정의 bS에 대하여 강한(strong) 필터를 적용할 것인지 약한(weak) 필터를 적용할 것인지를 결정하여(S1450), 필터링 동작(filtering operation)을 수행한다(S1860).
도 18의 예 이외에, 앞서 설명한 디블록킹 필터링의 방법을 수정하여 적용하는 또 하나의 방법으로서, 도 6의 예에서 설명한 대표 bS를 이용하는 방법을 수정하여 디블록킹 필터링을 수행하는 것을 고려할 수 있다.
도 6의 예에서는 8x8 픽셀 블록 단위로 디블록킹 필터링을 수행하는 경우에, 4x4 픽셀 단위로 결정되는 두 bS 중 큰 값을 가지는 bS를 대표 bS로 이용하는 방법을 설명하였다.
도 19는 대표 bS를 결정하는 방법의 일 예를 개략적으로 설명하는 순서도이다.
도 19를 참조하면, 대표 bS를 선정하기 위해, 디블록킹 필터링의 단위 블록에서 bS1과 bS2의 크기를 비교한다(S1910).
S1910 단계에서 bS1이 bS2보다 크면 대표 bS를 bS1으로 결정한다(S1920). 반대로, S1910 단계에서 bS2가 bS1보다 크면 대표 bS를 bS2로 결정한다(S1930).
bS1과 bS2는 디블록킹 필터링의 단위 블록에서 두 수직 에지에 대한 bS들일 수도 있고, 두 수평 에지에 대한 bS일 수도 있다. 도 15의 방법은 수직 에지에 대한 디블록킹 필터링 과정에서 수행되어 수직 에지에 대한 대표 bS를 결정하는데 이용된 후에, 수평 에지에 대한 디블록킹 필터링 과정에서 수행되어 수평 에지에 대한 대표 bS를 결정하는데 이용될 수 있다.
결정된 대표 bS를 이용하여 필터링부는 디블록킹 필터링을 수행할 수 있다.
도 19의 예는 도 6의 예와 같이 큰 값을 가지는 bS를 대표 bS로 이용하는 방법을 설명하고 있다. 이와 달리, 과도한 디블록킹 필터링을 줄이고 필터링의 연산량을 감소시키기 위해 대표 bS를 결정하는 방법을 달리할 수도 있다.
도 20은 대표 bS를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다.
도 20을 참조하면, 대표 bS를 선정하기 위해, 디블록킹 필터링의 단위 블록에서 bS1과 bS2의 크기를 비교한다(S2010).
S2010 단계에서 bS1이 bS2보다 작으면 대표 bS를 bS1으로 결정한다(S2020). 반대로, S2010 단계에서 bS2가 bS1보다 작으면 대표 bS를 bS2로 결정한다(S2030).
bS1과 bS2는 디블록킹 필터링의 단위 블록에서 두 수직 에지에 대한 bS들일 수도 있고, 두 수평 에지에 대한 bS일 수도 있다. 도 20의 방법 역시 수직 에지에 대한 디블록킹 필터링 과정에서 수행되어 수직 에지에 대한 대표 bS를 결정하는데 이용된 후에, 수평 에지에 대한 디블록킹 필터링 과정에서 수행되어 수평 에지에 대한 대표 bS를 결정하는데 이용될 수 있다.
결정된 대표 bS를 이용하여 필터링부는 디블록킹 필터링을 수행할 수 있다.
한편, 도 17 및 도 18에서 설명한 바와 같이, bS 값을 5가지 값 중 어느 한 값으로 유도하여 적용하더라고, 실제 디블록킹 필터링을 수행하는 경우에는 bS 값이 0보다 큰지, bS 값이 2보다 큰지만을 판단할 수도 있게 된다. 따라서, 3가지의 구별되는 bS 값만 있으면, 픽셀 혹은 블록의 특성에 따라서 디블록킹 필터링을 효과적으로 수행할 수 있다.
도 21은 bS 결정 트리(bS 결정 방법)를 간소화하는 다른 방법을 개략적으로 설명하는 순서도이다.
도 21을 참조하면, 우선 P 및/또는 Q가 인트라 코딩되었는지를 판단한다(S2110).
블록 P 및/또는 블록 Q가 인트라 코딩된 경우에는 블록 P와 블록 Q 사이의 경계에 대한 bS의 값을 2로 결정한다(S2120).
블록 P 및/또는 블록 Q가 인트라 코딩된 경우가 아니면, 블록 P와 블록 Q가 0이 아닌 계수(변환 계수)를 포함하거나 블록 P와 블록 Q가 상이한 참조 픽처를 가지거나 블록 P와 블록 Q가 상이한 움직임 벡터를 가지는지를 판단한다(S2130).
S2130 단계에서 블록 P와 블록 Q가 0이 아닌 계수(변환 계수)를 포함하거나 P와 Q가 상이한 참조 픽처를 가지거나 블록 P와 블록 Q가 상이한 움직임 벡터를 가지는 경우에는, 블록 P와 블록 Q 사이의 경계에 대한 bS의 값을 1로 설정한다(S2140).
그 외의 경우, 즉 디블록킹 필터를 적용하지 않는 경우에 해당하면, bS의 값을 0으로 설정한다(S2140).
바꿔 말하면, 디블록킹 필터링을 적용하지 않는 경우인 bS 값이 0인 경우는 P와 Q가 모두 인터 예측 모드로 코딩되었고, 움직임 정보가 유사한 경우이다. 이때, 움직임 정보가 유사하다는 것은 참조 픽처가 동일하고 움직임 벡터의 각 성분 간 차이가 4보다 작은 경우(예컨대, 움직임 벡터의 x 성분들 사이의 차이가 4보다 작고, y 성분들 사이의 차이도 4보다 작은 경우)이다.
이때, 블록 P와 블록 Q에 대한 cbf(Coded Block Flag)가 0이 아닌 경우, 즉 블록 P와 블록 Q에 0이 아닌 변환 계수가 존재하는 경우에도, 블록 P와 블록 Q가 인터 예측 모드로 예측되고, 움직임 정보가 유사하면 bS 값을 0으로 결정할 수 있다. 그 외의 경우, 즉 움직임 정보가 유사하지 않거나 블록 P 및/또는 블록 Q가 인트라 예측 모드로 코딩된 경우 등에서 bS는 1 또는 2로 결정될 수 있다.
하지만, 블록 P와 블록 Q에 0이 아닌 변환 계수가 존재할 때(cbf의 값이 0이 아닐 때), 블록 P와 블록 Q의 움직임 정보가 비슷하여 bS가 0으로 결정되더라도 디블록킹 필터링의 적용이 필요할 수가 있다. 0이 아닌 변환 계수가 존재함에도 움직임 정보가 유사하여 디블록킹 필터링의 적용이 배제된다면, 사용자의 주관적 손실 및 데이터의 객관적 손실이 발생할 수 있기 때문이다.
따라서, 다음과 같이 bS의 값이 0이 되는 경우를 엄격하게 판단할 수도 있다.
예컨대, 상술한 바와 같이, 도 21에서는 에지를 사이에 둔 두 블록 P와 Q의 참조 픽처가 동일하고 블록 P와 블록 Q의 움직임 벡터 성분들 사이의 차이가 4보다 작은 경우를 움직임 정보가 유사한 경우라고 판단하였다. 따라서, 블록 P의 움직임 벡터 MVP와 블록 Q의 움직임 벡터 MVQ에 대하여, 한 성분 사이의 차이가 4 이상이 되어도 bS는 0이 아니게 된다. 즉, MVP의 x 성분 MVP0와 MVQ의 x 성분 MVQ0 사이의 차이가 4이상이거나, MVP의 y 성분 MVP1와 MVQ의 y 성분 MVQ1 사이의 차이가 4이상이면, bS는 0이 아닌 값, 예컨대 1로 설정된다.
따라서, 움직임 벡터의 성분 간 차이를 4보다 작은지 혹은 4와 같거나 4보다 큰지로 판단하지 말고, 임의의 임계값을 설정한 뒤 움직임 벡터의 성분 간 차이를 임계값과 비교하도록 할 수도 있다. 예컨대, MVP의 x 성분 MVP0와 MVQ의 x 성분 MVQ0 사이의 차이가 임계값 Th0 이상이거나, MVP의 y 성분 MVP1와 MVQ의 y 성분 MVQ1 사이의 차이가 임계값 Th1 이상이면 bS를 1(블록 P 및/또는 블록 Q가 인트라 예측 모드로 코딩된 경우는 2)로 설정할 수 있다. 이때, Th0 와 Th1는 동일할 수 있다. 예컨대, 임계값이 작으면 bS의 값이 0이 되는 경우가 줄어들게 되므로, 임계값 Th0/Th1를 4보다 작은 값(2 또는 3)으로 설정되어, bS의 값이 0이 되는 경우를 줄일 수 있다.
수식 7은 상기 방법에 따라서, bS 값을 0으로 할 것인지 1로 할 것인지를 결정하는 방법의 일 예를 나타낸 것이다.
<수식 7>
(1) pcMVP0 -= pcMVQ0; pcMVP0 -= pcMVQ0;
(2) uiBs =(pcMVP0.getAbsHor() >= th) | (pcMVP0.getAbsVer() >= th) |
(pcMVP1.getAbsHor() >= th) | (pcMVP1.getAbsVer() >= th);
수식 3에서 (1)은 블록 P의 움직임 벡터와 블록 Q의 움직임 벡터에 대하여 x 성분 사이의 차이와 y 성분 사이의 차이를 구하는 것이며, (2)는 각 성분의 차이가 임계값보다 큰지를 판단하는 것이다.
한편, 디블록킹 필터링의 복잡도를 낮추기 위해 t0_offset을 제거할 수도 있다.
앞서 크로마 성분에 대한 디블록킹 필터링 방법에서 설명한 바와 같이, 라운드(round) 값을 고려한 블록 P와 블록 Q에 대한 양자화 파라미터의 평균값을 qPL이라고 할 때, (1) bS 값이 소정의 값(예컨대, 2 또는 1)보다 크면 tC는 양자화 파라미터 Q = Clip(0, 55, qPL) 에 대응하는 값으로 결정된다. (2) bS 값이 상기 소정의 값(예컨대, 2 또는 1) 이하이면 tC는 양자화 파라미터 Q=qPL에 대응하는 값으로 결정될 수 있다.
이때, 양자화 파라미터Q 값과 tC 사이의 대응 관계는 표(table)를 통해 특정될 수 있다.
표 3은 디블록킹 파라미터들(Q, tC, β) 사이 대응 관계의 일 예를 나타낸 것이다.
[표 3]
표 3에서는 설명의 편의를 위해, β와 tC로 나타냈지만, 본 발명은 이에 한정되지 않는다. 예컨대, 표 3은 표 1 및 표 2와 같이, β’와 tC’로 나타낼 수도 있으며,이 경우에 tC와 β는 tC = tC′ * ( 1 << ( BitDepthY - 8) ), β = β′ * ( 1 << ( BitDepthY - 8 ) )를 이용하여 tC’와 β’로부터 유도될 수 있다.
상술한 바와 같이, tC와 β는 강한 필터링을 적용할 것인지를 결정하는 기준이 될 수 있다. 예를 들어, 에지로부터 가장 가까운 P의 세 샘플을 순서대로 p0, p1, p2 라고 하고, 에지로부터 가장 가까운 Q의 세 샘플을 순서대로 q0, q1, q2라고 하면, (1) abs(p2-2p1+p0)+abs(q2-2q1+q0) = dpq라고 할 때 dpq가 (β>>2)보다 작은지를 판단할 수 있다. (2) p0, p1, p2와 q0, q1, q2 이외의 샘플, 예컨대 p3와 q3를 추가로 고려하여 abs(p3-p0)+abs(q0-q3)이 (β>>3)보다 작은지를 판단할 수 있다. (3) 또한, 경계 좌우의 두 샘플 p0와 q0에 대하여, abs(p0-q0)가 (5*tC+1)>>1보다 작은지를 판단할 수 있다. 상술한 바와 같이, 블록 내에서 복수의 열 또는 행을 취하여 판단을 수행할 수 있다. 예컨대, 수직 에지에 대해서는 복수의 행을 선택하여 각각의 행에 대해 (1) 내지 (3)을 판단할 수 있고, 수평 에지에 대해서는 복수의 열을 선택하여 각각의 열에 대해 (1) 내지 (3)을 판단할 수 있다.
수직 에지의 경우에, 복수의 행에 대하여 (1) 내지 (3)의 결과 모두 기준보다 작은 것으로 판단되면 해당 에지에 강한 필터링을 적용하도록 할 수 있다. 수평 에지의 경우, 복수의 열에 대하여 (1) 내지 (3)의 결과 모두 기준보다 작은 것으로 판단되면 해당 에지에 강한 필터링을 적용하도록 할 수 있다.
블록 P에 대한 루마 샘플의 양자화 파라미터 QPP와 블록 Q에 대한 루마 샘플의 양자화 파라미터 QPQ를 이용하여 양자화 파라미터에 관한 변수 qPL을 qPL = ((QPQ + QPP + 1) >> 1)로 정의할 수 있다.
bS를 다섯 개의 값 중 어느 한 값으로 유도할 때, bS가 2보다 크면 양자화 파라미터 Q = Clip3(0, 55, qPL+2)로 설정할 수 있고, 양자화 파라미터 Q 와 β 값에 대응하는 tC 값을 표 3에서 획득할 수 있다. 이때, bS 가 2보다 작거나 같으면, Q = qPL로 설정하고, 양자화 파라미터 Q와 β 값에 대응하는 tC 값을 표 3에서 획득할 수 있다.
반면에, bS를 세 개의 값 중 어느 한 값으로 유도하는 경우(예컨대, 도 12 내지 도 14의 예)에는, 양자화 Q 값을 bS 값에 상관없이 하나의 값으로 결정한 뒤에 결정된 양자화 파라미터 Q 값과 β 값에 대응하는 tC 값을 표 3으로부터 획득할 수 있다. 예컨대, bS 값을 3 개의 값(0, 1, 2) 중 어느 한 값으로 유도하는 경우에는 양자화 파라미터 Q = Clip3(0, 55, qPL + 2*bS -2)로 결정하고, 결정된 양자화 파라미터 Q 값과 β 값에 대응하는 tC 값을 표 3으로부터 획득할 수 있다.
한편, 양자화 파라미터 Q 값을 결정할 때, bS 값, 블록 P와 블록 Q의 양자화 파라미터 및 bS 값 외에 t0_offset의 값을 고려하여, 더 정확한 tC 값을 획득할 수도 있다. 예컨대, 디코더는 슬라이스 헤더에서 전송되는 t0_offset 정보를 반영하여 양자화 파라미터 Q 값을 결정할 수 있다.
슬라이스 헤더에서 전송되는 t0_offset 정보는 슬라이스마다 최적화된 디블록킹 필터를 적용하기 위해 전송되는 값으로서, 에지에 인접한 q 샘플을 포함하는 슬라이스에 대한 t0_offset정보로서, slice_tc_offset_div2라고 나타낼 수 있다. slice_tc_offset_div2는 tC에 대한 디폴트 디블록킹 파라미터 오프셋의 값을 특정한다.
이 경우에, 양자화 파라미터 Q = Clip3(0, 55, qPL + 2*bS-2 + slice_tc_offset_div2<<1 )로 설정되고, 변수 tC는 설정된 양자화 파라미터 Q 값과 β 값에 기반하여 결정될 수 있다. 예컨대, tC는 양자화 파라미터 Q와 β 값에 기반하여, 상기 표 3과 같이 양자화 파라미터 Q, β, tC 사이의 관계를 규정하는 테이블을 이용하여 결정될 수 있다.
따라서, 슬라이스 헤더에서 전송되는 t0_offset 정보(slice_tc_offset_div2)에 기반하여 Q 값을 상술한 바와 같이 결정하고, 역시 인코딩 장치로부터 전송된 β 값과 Q 값을 기반으로 tC 값을 결정할 수 있다. tC 값은 상술한 바와 같이, 양자화 정도에 따른 블록킹 아티팩트를 정량화하는 값으로서 디블록킹 필터링을 적용하는 경우에 필터링된 픽셀 값의 범위(클리핑 범위)를 결정하는 기준으로서 사용되기도 하고, 강한 필터링을 적용할 것인지 약한 필터링을 적용할 것인지를 결정하는 기준으로서 사용되기도 한다.
도 22는 본 발명에 따라서, 영상을 인코딩하는 방법을 개략적으로 설명하는 순서도이다.
도 22를 참조하면, 인코딩 장치는 입력된 영상을 분할하고, 현재 블록에 대한 예측을 수행한다(S2210). 현재 블록에 대한 예측은 인코딩 장치의 예측부에서 수행할 수 있다. 예측부는 현재 블록에 대하여 인트라 예측을 수행할 수도 있고, 인터 예측을 수행할 수도 있다. 인트라 예측을 수행할 것인지 인터 예측을 수행할 것인지는 RDO(Rate Distortion Optimization) 등을 고려하여 결정될 수 있다.
스킵 모드가 적용되는 경우가 아니면, 예측부는 예측 신호를 생성하고, 원본 신호와 예측 신호의 차인 레지듀얼 신호를 생성할 수 있다.
인코딩 장치는 레지듀얼 신호를 변환 및 양자화 할 수 있다(S2220). 레지듀얼 신호의 변환은 변환부에서 수행될 수 있으며, 변환된 신호(예컨대 변환 계수)의 양자화는 양자화부에서 수행될 수 있다.
변환 및 양자화된 신호는 엔트로피 인코딩 과정을 거쳐 전송될 수 있다.
인코딩 장치는 변환 및 양자화된 신호를 역양자화 및 역변환하여 현재 블록을 복원한다(S2230). 역양자화 및 역변환된 신호는 레지듀얼 신호와 더해져서 원본 신호로 복원된다.
인코딩 장치는 복원된 신호에 디블록킹 필터링을 적용할 수 있다(S2240). 복원된 신호는 디블록킹 필터링에 의해 원본에 더 가까운 신호로 복원될 수 있다. 디블록킹 필터링은 필터부에서 수행될 수 있으며, 필터부는 디블록킹 필터링을 적용한 후 SAO(Sample Adaptive Offset)를 적용할 수도 있다.
디블록킹 필터링의 구체적인 방법은 도면과 함께 앞서 설명한 바와 같다.
디블록킹 필터링이 적용된 신호는 DPB(Decoded Picture Buffer)와 같은 메모리에 저장되며, 다른 블록 또는 다른 픽처의 예측에 참조될 수 있다.
여기서는 예측에 의해 레지듀얼 신호를 생성하고 전송하는 것을 설명하였으나, 스킵 모드가 적용되는 경우에는 레지듀얼 신호를 생성/전송하지 않는다.
도 23은 본 발명에 따라서 영상을 디코딩하는 방법을 개략적으로 설명하는 순서도이다.
도 23을 참조하면, 디코딩 장치는 수신한 비트스트림을 엔트로피 디코딩하고 현재 블록에 대한 예측을 수행한다(S2310). 현재 블록에 대한 예측은 디코딩 장치 내의 예측부에서 수행할 수 있다. 예측부는 인코딩 장치로부터 시그널링된 정보를 기반으로 현재 블록에 대한 인터 예측을 수행하거나 인트라 예측을 수행할 수 있다. 예측부는 예측에 의해 현재 블록에 대한 예측 신호(예측 블록)을 생성한다.
디코딩 장치는 현재 블록에 대한 예측을 기반으로 현재 블록을 복원한다(S2320). 디코딩 장치는 인코딩 장치로부터 수신한 비트스트림으로부터 역양자화/역변환을 통해 레지듀얼 신호(레지듀얼 블록)을 생성하고, 예측 신호(예측 블록)과 레지듀얼 신호(예측 블록)을 더하여 복원 신호(복원 블록)을 생성할 수 있다. 스킵 모드가 적용된 경우에는 레지듀얼 신호가 전송되지 않으며, 예측 신호를 복원 신호로 할 수 있다.
디코딩 장치는 복원 신호(복원 블록)에 디블록킹 필터링을 적용한다(S2330). 디블록킹 필터링은 디코딩 장치 내의 필터부에서 수행될 수 있다. 필터부는 복원 블록에 디블록킹 필터링을 적용하여 복원 블록을 원복 블록에 더 가깝게 수정(modify)한다.
디블록킹 필터링의 구체적인 내용은 앞서 도면과 함께 상세하게 설명했던 바와 같다.
필터부는 디블록킹 필터링을 적용한 후에 인코딩 장치로부터 수신한 정보에 기반하여 복원 블록에 SAO(Sample Adaptive Offset)을 적용할 수도 있다.
필터부를 거쳐 복원된 신호는 DPB(Decoded Picture Buffer)와 같은 메모리에 저장되어 다른 블록 또는 다른 픽처의 예측에 참조될 수 있으며, 복원 영상으로서 출력될 수도 있다.
도 22 및 도 23에서는 발명의 이해를 돕기 위해, 본 발명에 따른 디블록킹 필터링이 인코딩/디코딩 과정에서 적용되는 것을 개략적으로 설명하기 위한 것이며, 앞서 도면과 함께 상세하게 설명하였던 인코딩/디코딩 과정의 프로세스가 함께 적용될 수 있음에 유의한다.
도 24는 본 발명에 따라서 bS를 유도하는 방법의 일 예를 개략적으로 설명하는 순서도이다.
도 24를 참조하면, bS를 결정하기 위한 경계가 유도된다(S2410). bS를 결정하기 위한 경계는 디블록킹 필터링을 적용하는 단위 블록의 경계일 수 있다. 혹은 bS를 결정하기 위한 경계는 bS를 결정하는 단위 블록의 경계일 수 있다. 혹은 bS를 결정하기 위한 경계는 디블록킹 필터링을 적용하는 단위 블록의 경계이면서 bS를 결정하는 단위 블록의 경계일 수도 있다.
bS를 결정하기 위한 경계가 유도되면, bS 설정 단위별로 bS를 설정한다(S2420). bS를 결정하기 위한 경계가 디블록킹 필터링을 적용하는 단위 블록의 경계인 경우에, bS를 결정하기 위한 경계이면서 bS 결정 단위 블록의 경계에 해당하는 에지마다 bS가 설정될 수 있다. bS를 결정하기 위한 경계가 bS를 결정하는 단위 블록의 경계인 경우에, bS를 결정하는 경계이면서 디블록킹 필터링을 적용하는 단위 블록의 경계에 해당하는 에지에 대하여 bS가 설정될 수 있다. bS를 결정하기 위한 경계가 디블록킹 필터링을 적용하는 단위 블록의 경계이면서 bS를 결정하는 단위 블록의 경계인 경우에, bS를 결정하는 경계에 대하여 bS가 설정될 수 있다.
bS를 설정하는 방법은 상술한 바와 같이, 5 가지의 bS 값 중 어느 하나의 값으로 해당 경계에 대한 bS를 유도할 수도 있고, 3가지 bS 값 중 어느 하나의 값으로 해당 경계에 대한 bS를 유도할 수도 있다. 그외, 복잡도를 낮춰 bS를 유도하는 방법들이 적용될 수 있다. bS를 유도/결정하는 구체적인 방법은 상술한 바와 같다.
도 24에서는 설명의 편의를 위해, bS 결정 단위 블록의 경계이면서 디블록킹 필터링 적용 단위 블록의 경계인 에지에 대하여 bS를 결정하는 것을 설명하였으나, 본 발명은 이에 한정되지 않으며, 앞서 설명한 대표 값을 결정하는 방법 등을 이용하여 bS를 결정할 수도 있다.
상술한 예시적인 시스템에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 상술한 실시예들은 다양한 양태의 예시들을 포함한다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
지금까지 본 발명에 관한 설명에서 일 구성 요소가 타 구성 요소에 "연결되어" 있다거나 "접속되어"있다고 언급된 때에는, 상기 일 다른 구성 요소가 상기 타 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 상기 두 구성 요소 사이에 다른 구성 요소가 존재할 수도 있다고 이해되어야 한다. 반면에, 일 구성 요소가 타 구성 요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 두 구성 요소 사이에 다른 구성요소가 존재하지 않는 것으로 이해되어야 한다.
Claims (10)
- 디코딩 장치에 의하여 수행되는 디블록킹 필터링 방법에 있어서,
비트스트림으로부터 획득한 정보에 기초하여 복원 픽처를 도출하는 단계;
디블록킹 필터링이 수행되는 디블록킹 단위 경계 내 소정 길이의 대상 경계에 대한 bS(boundary Strength) 값을 설정(set)하는 단계; 및
상기 bS 값을 기반으로 상기 디블록킹 단위 경계에 대하여 상기 디블록킹 필터링을 적용하는 단계를 포함하되,
상기 bS 값은 0, 1 및 2 중 하나로 설정되고,
상기 디블록킹을 적용하는 단계는,
상기 bS가 0보다 크다는 결정을 기반으로 상기 대상 경계에 상기 디블록킹이 적용되는지 여부를 판단하는 단계와;
상기 대상 경계에 디블록킹이 적용되는 것에 기초하여 강한 필터 또는 약한 필터링을 수행하는 단계를 포함하고,
상기 대상 경계에 인접한 두 개의 블록들 중 적어도 하나가 인트라 예측 모드를 기반으로 코딩되면, 상기 bS 값은 2로 설정되고,
상기 두 개의 블록들 중 적어도 하나가 0이 아닌 변환 계수를 포함하거나, 상기 두 개의 블록들이 서로 다른 참조 픽처 또는 서로 다른 움직임 벡터를 갖는다면, 상기 bS 값은 1로 설정되고,
상기 bS 값이 2 또는 1이 아니면, 상기 bS 값은 0으로 설정되고,
상기 bS값이 0보다 크다는 결정을 기반으로 상기 루마 샘플에 상기 디블록킹 필터링이 적용되고, 상기 bS 값이 1보다 크다는 결정을 기반으로 상기 크로마 샘플에 상기 디블록킹 필터링이 적용되는 것을 특징으로 하는, 디블록킹 필터링 방법. - 상기 디블록킹 필터링은 상기 복원된 현재 픽처 상의 수직 에지들에 대하여 적용된 후, 상기 복원된 현재 픽처 상의 수평 에지들에 대하여 적용되는 것을 특징으로 하는, 디블록킹 필터링 방법.
- 제1항에 있어서,
상기 강한 필터링을 적용할지 또는 상기 약한 필터링을 적용할지 여부는 상기 대상 경계에 인접한 상기 두 개의 블록들의 샘플들을 기반으로 결정되고,
이때 상기 대상 경계가 상기 수직 에지라는 결정을 기반으로, 상기 대상 경계를 경계로 하는 샘플 행들의 샘플들 중 상기 디블록킹 필터링의 대상이 되는 샘플들에 기반하여 상기 강한 필터링을 적용할지 또는 상기 약한 필터링을 적용할지 여부가 결정되고,
상기 대상 경계가 상기 수평 에지라는 결정을 기반으로, 상기 대상 경계를 경계로 하는 샘플 열들의 샘플들 중 상기 디블록킹 필터링의 대상이 되는 샘플들에 기반하여 상기 강한 필터링을 적용할지 또는 상기 약한 필터링을 적용할지 여부가 결정되는 것을 특징으로 하는, 디블록킹 필터링 방법. - 제3항에 있어서,
상기 약한 필터링을 적용한다는 결정을 기반으로, 상기 디블록킹 필터링의 대상이 되는 샘플들 중 선택된 샘플들에 필터링이 적용되는 것을 특징으로 하는, 디블록킹 필터링 방법. - 디블록킹 파라미터 tC를 기반으로 상기 디블록킹 필터링이 적용되며, 상기 tC는 루마 양자화 파라미터 Q 및 상기 Q를 이용하는 소정의 매핑 테이블을 기반으로 도출되고,
상기 Q는 다음 수학식을 기반으로 도출되고,
qPL + 2*bS-2 + slice_tc_offset_div2<<1,
여기서, qPL은 디블록킹 필터링을 위한 양자화 파라미터이고, slice_tc_offset_div2는 디블록킹 필터링을 위한 오프셋 값이고, 상기 오프셋 값은 슬라이스 헤더를 통하여 획득되는 것을 특징으로 하는, 디블록킹 필터링 방법. - 제5항에 있어서,
상기 qPL은 다음 수학식을 기반으로 도출되고,
(QPQ + QPP + 1)>>1,
QPQ는 상기 대상 경계에 인접한 상기 두 개의 블록들 중 제1 블록의 양자화 파라미터이고, QPP는 상기 대상 경계에 인접한 상기 두 개의 블록들 중 제2 블록의 양자화 파라미터인 것을 특징으로 하는, 디블록킹 필터링 방법. - 인코딩 장치에 의하여 수행되는 디블록킹 필터링 방법에 있어서,
복원 픽처를 도출하는 단계;
상기 복원 픽처 상에서 디블록킹 필터링이 수행되는 디블록킹 단위 경계 내 소정 길이의 대상 경계에 대한 bS(boundary Strength) 값을 설정(set)하는 단계; 및
상기 bS 값을 기반으로 상기 디블록킹 단위 경계에 대하여 상기 디블록킹 필터링을 적용하는 단계를 포함하되,
상기 bS 값은 0, 1 및 2 중 하나로 설정되고,
상기 디블록킹을 적용하는 단계는,
상기 bS가 0보다 크다는 결정을 기반으로 상기 대상 경계에 상기 디블록킹이 적용되는지 여부를 판단하는 단계와;
상기 대상 경계에 디블록킹이 적용되는 것에 기초하여 강한 필터 또는 약한 필터링을 수행하는 단계를 포함하고,
상기 대상 경계에 인접한 두 개의 블록들 중 적어도 하나가 인트라 예측 모드를 기반으로 코딩되면, 상기 bS 값은 2로 설정되고,
상기 두 개의 블록들 중 적어도 하나가 0이 아닌 변환 계수를 포함하거나, 상기 두 개의 블록들이 서로 다른 참조 픽처 또는 서로 다른 움직임 벡터를 갖는다면, 상기 bS 값은 1로 설정되고,
상기 bS 값이 2 또는 1이 아니면, 상기 bS 값은 0으로 설정되고,
상기 bS값이 0보다 크다는 결정을 기반으로 상기 루마 샘플에 상기 디블록킹 필터링이 적용되고, 상기 bS 값이 1보다 크다는 결정을 기반으로 상기 크로마 샘플에 상기 디블록킹 필터링이 적용되는 것을 특징으로 하는, 디블록킹 필터링 방법. - 제7항에 있어서,
상기 디블록킹 필터링은 상기 복원된 현재 픽처 상의 수직 에지들에 대하여 적용된 후, 상기 복원된 현재 픽처 상의 수평 에지들에 대하여 적용되는 것을 특징으로 하는, 디블록킹 필터링 방법. - 제7항에 있어서,
상기 강한 필터링을 적용할지 또는 상기 약한 필터링을 적용할지 여부는 상기 대상 경계에 인접한 상기 두 개의 블록들의 샘플들을 기반으로 결정되고,
이때 상기 대상 경계가 상기 수직 에지라는 결정을 기반으로, 상기 대상 경계를 경계로 하는 샘플 행들의 샘플들 중 상기 디블록킹 필터링의 대상이 되는 샘플들에 기반하여 상기 강한 필터링을 적용할지 또는 상기 약한 필터링을 적용할지 여부가 결정되고,
상기 대상 경계가 상기 수평 에지라는 결정을 기반으로, 상기 대상 경계를 경계로 하는 샘플 열들의 샘플들 중 상기 디블록킹 필터링의 대상이 되는 샘플들에 기반하여 상기 강한 필터링을 적용할지 또는 상기 약한 필터링을 적용할지 여부가 결정되는 것을 특징으로 하는, 디블록킹 필터링 방법. - 지시들에 대한 정보(information on instructions)를 저장하는 디코딩 장치로 판독 가능한(decoder readable) 디지털 저장 매체(digital storage medium)로서, 상기 지시들에 대한 정보는 상기 디코딩 장치가 청구항 1항의 상기 디블록킹 필터링 방법을 수행하도록 야기(cause)하는 것을 특징으로 하는, 디지털 저장 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020217004431A KR102303808B1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161555495P | 2011-11-04 | 2011-11-04 | |
US61/555,495 | 2011-11-04 | ||
US201161558398P | 2011-11-10 | 2011-11-10 | |
US61/558,398 | 2011-11-10 | ||
US201161569291P | 2011-12-12 | 2011-12-12 | |
US61/569,291 | 2011-12-12 | ||
PCT/KR2012/009248 WO2013066133A1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197033744A Division KR102138907B1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217004431A Division KR102303808B1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200090984A true KR20200090984A (ko) | 2020-07-29 |
KR102218002B1 KR102218002B1 (ko) | 2021-02-19 |
Family
ID=48192407
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227000571A KR102436369B1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
KR1020147015150A KR102047514B1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
KR1020207021445A KR102218002B1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
KR1020217029501A KR102350071B1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
KR1020227028931A KR102519728B1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
KR1020197033744A KR102138907B1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
KR1020217004431A KR102303808B1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227000571A KR102436369B1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
KR1020147015150A KR102047514B1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217029501A KR102350071B1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
KR1020227028931A KR102519728B1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
KR1020197033744A KR102138907B1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
KR1020217004431A KR102303808B1 (ko) | 2011-11-04 | 2012-11-05 | 영상 정보 인코딩/디코딩 방법 및 장치 |
Country Status (11)
Country | Link |
---|---|
US (5) | US10326988B2 (ko) |
EP (3) | EP2775711B1 (ko) |
JP (7) | JP6169091B2 (ko) |
KR (7) | KR102436369B1 (ko) |
CN (5) | CN109547787A (ko) |
DK (1) | DK2775711T3 (ko) |
ES (3) | ES2965823T3 (ko) |
HU (2) | HUE048779T2 (ko) |
PL (3) | PL3588956T3 (ko) |
PT (1) | PT2775711T (ko) |
WO (1) | WO2013066133A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210021819A1 (en) * | 2018-03-29 | 2021-01-21 | Sony Corporation | Image processing apparatus and image processing method |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108989803B (zh) * | 2011-09-20 | 2021-05-28 | Lg 电子株式会社 | 用于编码/解码图像信息的方法和装置 |
EP2775711B1 (en) * | 2011-11-04 | 2020-01-01 | LG Electronics Inc. | Method and apparatus for encoding/decoding image information |
AR092786A1 (es) * | 2012-01-09 | 2015-05-06 | Jang Min | Metodos para eliminar artefactos de bloque |
RU2686008C2 (ru) * | 2012-01-17 | 2019-04-23 | Инфобридж Пте. Лтд. | Способ применения краевого смещения |
TWI569625B (zh) * | 2012-04-06 | 2017-02-01 | Sony Corp | Image processing apparatus and method, program, and recording medium |
EP3072300B1 (en) | 2013-11-24 | 2019-01-16 | LG Electronics Inc. | Method and apparatus for encoding and decoding video signal using adaptive sampling |
US10743034B2 (en) * | 2014-09-15 | 2020-08-11 | Hfi Innovation Inc. | Method of deblocking for intra block copy in video coding |
KR102390407B1 (ko) * | 2015-03-18 | 2022-04-25 | 한화테크윈 주식회사 | 디코더 및 디코더에서의 역변환 방법 |
US10681371B2 (en) | 2015-06-07 | 2020-06-09 | Lg Electronics Inc. | Method and device for performing deblocking filtering |
CN115134611A (zh) | 2015-06-11 | 2022-09-30 | 杜比实验室特许公司 | 使用自适应去块滤波编码和解码图像的方法及其装置 |
ES2710234B1 (es) * | 2015-09-11 | 2020-03-09 | Kt Corp | Procedimiento y dispositivo para procesar señales de vídeo |
WO2017069591A1 (ko) * | 2015-10-23 | 2017-04-27 | 엘지전자 주식회사 | 영상 코딩 시스템에서 영상 필터링 방법 및 장치 |
US10555006B2 (en) * | 2016-12-22 | 2020-02-04 | Qualcomm Incorporated | Deriving bilateral filter information based on a prediction mode in video coding |
US10965943B2 (en) * | 2016-12-28 | 2021-03-30 | Sony Corporation | Image processing apparatus and image processing method |
EP3568980A4 (en) * | 2017-01-10 | 2020-01-08 | Telefonaktiebolaget LM Ericsson (publ) | ENTBLOCKUNGSFILTRIERUNGSSTEUERUNG |
CN107181953B (zh) * | 2017-03-31 | 2019-09-17 | 北京奇艺世纪科技有限公司 | 一种边界滤波强度的确定方法及装置 |
TWI832814B (zh) * | 2017-04-06 | 2024-02-21 | 美商松下電器(美國)知識產權公司 | 解碼裝置及編碼裝置 |
TWI833248B (zh) * | 2017-04-06 | 2024-02-21 | 美商松下電器(美國)知識產權公司 | 解碼方法及編碼方法 |
US10645408B2 (en) * | 2017-09-17 | 2020-05-05 | Google Llc | Dual deblocking filter thresholds |
WO2019072582A1 (en) | 2017-10-09 | 2019-04-18 | Canon Kabushiki Kaisha | METHOD AND APPARATUS FOR FILTERING WITH DEPRESSION OF A BLOCK OF PIXELS |
GB2599315B (en) * | 2017-10-09 | 2022-06-15 | Canon Kk | Method and apparatus for deblocking filtering a block of pixels |
WO2019121164A1 (en) * | 2017-12-18 | 2019-06-27 | Telefonaktiebolaget Lm Ericsson (Publ) | De-blocking for video coding |
KR102658361B1 (ko) * | 2018-01-08 | 2024-04-17 | 삼성전자주식회사 | 부호화 방법 및 그 장치, 복호화 방법 및 그 장치 |
US11140407B2 (en) * | 2018-02-08 | 2021-10-05 | Apple Inc. | Frame boundary artifacts removal |
CN116366844A (zh) * | 2018-03-09 | 2023-06-30 | 韩国电子通信研究院 | 使用样点滤波的图像编码/解码方法和设备 |
US11388400B2 (en) * | 2018-06-21 | 2022-07-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Deblocking of video picture boundaries |
EP3857880A1 (en) | 2018-09-28 | 2021-08-04 | FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. | Deblocking or deringing filter and encoder, decoder and method for applying and varying a strength of a deblocking or deringing filter |
WO2020122573A1 (ko) * | 2018-12-13 | 2020-06-18 | 에스케이텔레콤 주식회사 | 필터링 방법 및 영상 복호화 장치 |
KR20200073124A (ko) * | 2018-12-13 | 2020-06-23 | 에스케이텔레콤 주식회사 | 필터링 방법 및 영상 복호화 장치 |
JP7011571B2 (ja) | 2018-12-28 | 2022-01-26 | Kddi株式会社 | 画像復号装置、画像符号化装置、画像復号方法及びプログラム |
CN117676169A (zh) * | 2019-01-02 | 2024-03-08 | Lg 电子株式会社 | 使用去块滤波的图像编译方法和装置 |
US11356699B2 (en) * | 2019-01-11 | 2022-06-07 | Hfi Innovation Inc. | Method and apparatus of sub-block deblocking in video coding |
MX2021008875A (es) | 2019-01-25 | 2021-08-19 | Huawei Tech Co Ltd | Un codificador, un decodificador y metodos correspondientes de adaptacion de filtro desbloqueo. |
WO2020176026A1 (en) * | 2019-02-27 | 2020-09-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Deblocking using sub-pel motion vector threshold |
CN113906763B (zh) | 2019-05-05 | 2024-01-12 | 北京字节跳动网络技术有限公司 | 用于视频编解码的色度去方块协调 |
CN117176969A (zh) | 2019-05-11 | 2023-12-05 | 抖音视界有限公司 | 用于视频编解码的去方块滤波器 |
WO2020228662A1 (en) * | 2019-05-11 | 2020-11-19 | Beijing Bytedance Network Technology Co., Ltd. | Boundary strength determination for deblocking filters in video processing |
MX2022000963A (es) * | 2019-07-21 | 2022-03-22 | Lg Electronics Inc | Metodo y aparato de codificacion/decodificacion de imagen para realizar filtracion de desbloqueo de acuerdo a si el modo de paletas es aplicado, y metodo para transmitir flujo de bits. |
MX2021008260A (es) | 2019-08-23 | 2021-08-16 | Huawei Tech Co Ltd | Un codificador, un decodificador y metodos correspondientes para ejecutar desbloqueo de crominancia para bloques que utilizan codificacion de crominancia conjunta. |
WO2021036980A1 (en) | 2019-08-23 | 2021-03-04 | Beijing Bytedance Network Technology Co., Ltd. | Using boundary strength in deblocking filtering |
CN112544079A (zh) * | 2019-12-31 | 2021-03-23 | 北京大学 | 视频编解码的方法和装置 |
BR112022015270A8 (pt) * | 2020-02-10 | 2022-11-01 | Panasonic Ip Corp America | Codificador, decodificador, método de codificação e método de decodificação |
KR102520895B1 (ko) * | 2020-03-25 | 2023-04-11 | 엘지전자 주식회사 | 경계 강도를 결정하여 디블록킹 필터링을 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 |
US11611770B2 (en) * | 2020-10-14 | 2023-03-21 | Tencent America LLC | Method and apparatus for video coding |
WO2023106761A1 (ko) * | 2021-12-06 | 2023-06-15 | 엘지전자 주식회사 | 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060080107A (ko) * | 2005-01-04 | 2006-07-07 | 삼성전자주식회사 | 인트라 bl 모드를 고려한 디블록 필터링 방법, 및 상기방법을 이용하는 다 계층 비디오 인코더/디코더 |
KR20080005210A (ko) * | 2005-03-18 | 2008-01-10 | 샤프 래보라토리스 오브 아메리카 인크. | 공간 계위 강화 계층 내의 인접 블록들 간의 블록 경계를특징화하는 방법 및 그 시스템 |
KR20080114375A (ko) * | 2007-06-27 | 2008-12-31 | 티유미디어 주식회사 | 가변블록 기반의 디블록킹 필터링 방법 및 장치와, 이에적용되는 디블록킹 필터 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60173792U (ja) | 1984-04-27 | 1985-11-18 | 石川島播磨重工業株式会社 | 管フランジ等のライニング構造 |
US7929610B2 (en) * | 2001-03-26 | 2011-04-19 | Sharp Kabushiki Kaisha | Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding |
US7450641B2 (en) | 2001-09-14 | 2008-11-11 | Sharp Laboratories Of America, Inc. | Adaptive filtering based upon boundary strength |
US6931063B2 (en) | 2001-03-26 | 2005-08-16 | Sharp Laboratories Of America, Inc. | Method and apparatus for controlling loop filtering or post filtering in block based motion compensationed video coding |
KR100525785B1 (ko) * | 2001-06-15 | 2005-11-03 | 엘지전자 주식회사 | 이미지 화소 필터링 방법 |
JP2005123732A (ja) * | 2003-10-14 | 2005-05-12 | Matsushita Electric Ind Co Ltd | デブロックフィルタ処理装置およびデブロックフィルタ処理方法 |
US7457362B2 (en) * | 2003-10-24 | 2008-11-25 | Texas Instruments Incorporated | Loop deblock filtering of block coded video in a very long instruction word processor |
KR20050047871A (ko) * | 2003-11-18 | 2005-05-23 | 삼성전자주식회사 | 동영상 디코딩에서 고속 필터링 방법과 이를 위한 장치 |
KR20050048871A (ko) | 2003-11-20 | 2005-05-25 | 엘지전자 주식회사 | 공기청정기의 제어 방법 |
US7551793B2 (en) * | 2004-01-14 | 2009-06-23 | Samsung Electronics Co., Ltd. | Methods and apparatuses for adaptive loop filtering for reducing blocking artifacts |
JP4270125B2 (ja) * | 2004-12-16 | 2009-05-27 | ソニー株式会社 | データ処理装置、画像処理装置、それらの方法およびプログラム |
US20060233253A1 (en) * | 2005-03-10 | 2006-10-19 | Qualcomm Incorporated | Interpolated frame deblocking operation for frame rate up conversion applications |
US8175168B2 (en) | 2005-03-18 | 2012-05-08 | Sharp Laboratories Of America, Inc. | Methods and systems for picture up-sampling |
US8638862B2 (en) | 2005-03-18 | 2014-01-28 | Sharp Laboratories Of America, Inc. | Methods and systems for upsampling filter design |
WO2007060498A1 (en) * | 2005-11-22 | 2007-05-31 | Freescale Semiconductor, Inc. | Method and system for filtering image data |
US9628823B2 (en) * | 2006-01-09 | 2017-04-18 | Thomson Licensing Dtv | Method and apparatus for providing reduced resolution update mode for multi-view video coding |
SG140508A1 (en) * | 2006-08-31 | 2008-03-28 | St Microelectronics Asia | Multimode filter for de-blocking and de-ringing |
US8204129B2 (en) | 2007-03-27 | 2012-06-19 | Freescale Semiconductor, Inc. | Simplified deblock filtering for reduced memory access and computational complexity |
JP2009094828A (ja) * | 2007-10-10 | 2009-04-30 | Hitachi Ltd | 画像符号化装置及び画像符号化方法、画像復号化装置及び画像復号化方法 |
KR100973657B1 (ko) | 2007-11-01 | 2010-08-02 | 경희대학교 산학협력단 | 디블록킹 필터링을 포함하는 코덱 사이의 트랜스코딩 방법 및 장치 |
EP2263381A1 (en) | 2008-04-11 | 2010-12-22 | Thomson Licensing | Deblocking filtering for displaced intra prediction and template matching |
KR101552639B1 (ko) * | 2008-07-11 | 2015-09-14 | 한국전자통신연구원 | 인트라 매크로 블록의 디블록킹 필터 및 필터링 방법 |
CN101754010A (zh) * | 2008-12-18 | 2010-06-23 | 北京中星微电子有限公司 | 视频数据编码的环路滤波方法和滤波器 |
CN101651829A (zh) * | 2009-06-29 | 2010-02-17 | 北京中星微电子有限公司 | 一种环路滤波的方法、装置及一种移动多媒体终端芯片 |
JP5183664B2 (ja) * | 2009-10-29 | 2013-04-17 | 財團法人工業技術研究院 | ビデオ圧縮のためのデブロッキング装置及び方法 |
US9185430B2 (en) * | 2010-03-15 | 2015-11-10 | Mediatek Singapore Pte. Ltd. | Deblocking filtering method and deblocking filter |
AU2011241284B2 (en) | 2010-04-13 | 2015-05-07 | Samsung Electronics Co., Ltd. | Video-encoding method and video-encoding apparatus using prediction units based on encoding units determined in accordance with a tree structure, and video-decoding method and video-decoding apparatus using prediction units based on encoding units determined in accordance with a tree structure |
WO2011152425A1 (ja) * | 2010-06-03 | 2011-12-08 | シャープ株式会社 | フィルタ装置、画像復号装置、画像符号化装置、および、フィルタパラメータのデータ構造 |
US10038903B2 (en) * | 2011-06-22 | 2018-07-31 | Texas Instruments Incorporated | Method and apparatus for sample adaptive offset parameter estimation in video coding |
US9232237B2 (en) * | 2011-08-05 | 2016-01-05 | Texas Instruments Incorporated | Block-based parallel deblocking filter in video coding |
CN108989803B (zh) * | 2011-09-20 | 2021-05-28 | Lg 电子株式会社 | 用于编码/解码图像信息的方法和装置 |
US9167269B2 (en) * | 2011-10-25 | 2015-10-20 | Qualcomm Incorporated | Determining boundary strength values for deblocking filtering for video coding |
EP2775711B1 (en) * | 2011-11-04 | 2020-01-01 | LG Electronics Inc. | Method and apparatus for encoding/decoding image information |
JP2017124225A (ja) | 2017-03-22 | 2017-07-20 | 株式会社藤商事 | 遊技機 |
-
2012
- 2012-11-05 EP EP12846692.7A patent/EP2775711B1/en active Active
- 2012-11-05 CN CN201811147673.4A patent/CN109547787A/zh active Pending
- 2012-11-05 US US14/356,314 patent/US10326988B2/en active Active
- 2012-11-05 JP JP2014540940A patent/JP6169091B2/ja active Active
- 2012-11-05 KR KR1020227000571A patent/KR102436369B1/ko active IP Right Grant
- 2012-11-05 KR KR1020147015150A patent/KR102047514B1/ko active Application Filing
- 2012-11-05 KR KR1020207021445A patent/KR102218002B1/ko active IP Right Grant
- 2012-11-05 CN CN201811147147.8A patent/CN109348224A/zh active Pending
- 2012-11-05 HU HUE12846692A patent/HUE048779T2/hu unknown
- 2012-11-05 KR KR1020217029501A patent/KR102350071B1/ko active IP Right Grant
- 2012-11-05 PL PL19190102T patent/PL3588956T3/pl unknown
- 2012-11-05 EP EP19190102.4A patent/EP3588956B1/en active Active
- 2012-11-05 CN CN201280065276.7A patent/CN104025590B/zh active Active
- 2012-11-05 WO PCT/KR2012/009248 patent/WO2013066133A1/ko active Application Filing
- 2012-11-05 ES ES22153252T patent/ES2965823T3/es active Active
- 2012-11-05 CN CN201811147149.7A patent/CN109246429A/zh active Pending
- 2012-11-05 EP EP22153252.6A patent/EP4024864B1/en active Active
- 2012-11-05 DK DK12846692.7T patent/DK2775711T3/da active
- 2012-11-05 ES ES19190102T patent/ES2914815T3/es active Active
- 2012-11-05 KR KR1020227028931A patent/KR102519728B1/ko active IP Right Grant
- 2012-11-05 PL PL22153252.6T patent/PL4024864T3/pl unknown
- 2012-11-05 PL PL12846692T patent/PL2775711T3/pl unknown
- 2012-11-05 CN CN201811147146.3A patent/CN109672883A/zh active Pending
- 2012-11-05 HU HUE22153252A patent/HUE064046T2/hu unknown
- 2012-11-05 KR KR1020197033744A patent/KR102138907B1/ko active IP Right Grant
- 2012-11-05 PT PT128466927T patent/PT2775711T/pt unknown
- 2012-11-05 ES ES12846692T patent/ES2777184T3/es active Active
- 2012-11-05 KR KR1020217004431A patent/KR102303808B1/ko active IP Right Grant
-
2017
- 2017-06-26 JP JP2017124225A patent/JP6517274B2/ja active Active
-
2019
- 2019-04-17 JP JP2019078516A patent/JP6744449B2/ja active Active
- 2019-06-17 US US16/443,243 patent/US10778975B2/en active Active
-
2020
- 2020-07-30 JP JP2020129088A patent/JP6950055B2/ja active Active
- 2020-09-11 US US17/018,973 patent/US11350090B2/en active Active
-
2021
- 2021-09-22 JP JP2021154354A patent/JP7234322B2/ja active Active
-
2022
- 2022-04-29 US US17/733,656 patent/US11743460B2/en active Active
-
2023
- 2023-02-22 JP JP2023025954A patent/JP7492048B2/ja active Active
- 2023-07-07 US US18/219,491 patent/US12003717B2/en active Active
-
2024
- 2024-05-16 JP JP2024080186A patent/JP2024096493A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060080107A (ko) * | 2005-01-04 | 2006-07-07 | 삼성전자주식회사 | 인트라 bl 모드를 고려한 디블록 필터링 방법, 및 상기방법을 이용하는 다 계층 비디오 인코더/디코더 |
KR20080005210A (ko) * | 2005-03-18 | 2008-01-10 | 샤프 래보라토리스 오브 아메리카 인크. | 공간 계위 강화 계층 내의 인접 블록들 간의 블록 경계를특징화하는 방법 및 그 시스템 |
KR20080114375A (ko) * | 2007-06-27 | 2008-12-31 | 티유미디어 주식회사 | 가변블록 기반의 디블록킹 필터링 방법 및 장치와, 이에적용되는 디블록킹 필터 |
Non-Patent Citations (2)
Title |
---|
Andrey Norkin et al.,"CE12:Ericsson’s and MediaTek’s deblocking filter", (JCTVC-F118), JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 6th Meeting: Torino, IT, (2011.07.22) * |
Masaru Ikeda et al., "parallel deblocking filter",(JCTVC-D263), JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 4th Meeting: CH, (2011.01.22.) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210021819A1 (en) * | 2018-03-29 | 2021-01-21 | Sony Corporation | Image processing apparatus and image processing method |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102138907B1 (ko) | 영상 정보 인코딩/디코딩 방법 및 장치 | |
KR102138260B1 (ko) | 영상 정보 인코딩/디코딩 방법 및 장치 | |
WO2013077714A1 (ko) | 영상 정보 인코딩/디코딩 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
A107 | Divisional application of patent | ||
GRNT | Written decision to grant |