KR100824287B1 - 저전력 고속 디블록킹 필터 - Google Patents

저전력 고속 디블록킹 필터 Download PDF

Info

Publication number
KR100824287B1
KR100824287B1 KR1020070014950A KR20070014950A KR100824287B1 KR 100824287 B1 KR100824287 B1 KR 100824287B1 KR 1020070014950 A KR1020070014950 A KR 1020070014950A KR 20070014950 A KR20070014950 A KR 20070014950A KR 100824287 B1 KR100824287 B1 KR 100824287B1
Authority
KR
South Korea
Prior art keywords
submacroblock
macroblock
sub
buffer
output
Prior art date
Application number
KR1020070014950A
Other languages
English (en)
Inventor
경종민
김재문
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020070014950A priority Critical patent/KR100824287B1/ko
Application granted granted Critical
Publication of KR100824287B1 publication Critical patent/KR100824287B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

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

Abstract

디블록킹 필터는 매크로블록을 저장하는 현재 매크로블록 저장부, 매크로블록에 인접한 서브매크로블록들을 저장하는 인접 서브매크로블록 저장부, 하나의 에지 필터와 두 개의 전치 버퍼를 포함하고 매크로블록 내의 서브매크로블록들 및 상기 인접한 서브매크로블록들의 경계들에 대해 소정의 연산 순서에 따라 디블록킹 필터링 연산을 수행하는 연산부 및 프레임을 재구성할 수 있도록 연산부로부터 디블록킹 필터링 연산이 끝난 서브매크로블록들을 차례로 전달받아 저장하는 프레임 버퍼를 포함한다.

Description

저전력 고속 디블록킹 필터{LOW POWER HIGH SPEED DEBLOCKING FILTER}
도 1a 및 1b는 H.264/AVC 표준안에 따른 종래의 16x16 매크로블록의 디블록킹 필터링 연산의 순서를 나타낸 것이다.
도 2는 본 발명의 일 실시예에 따른 디블록킹 필터의 동작을 설명하기 위해 서브매크로블록의 각 경계들에서 필터링 연산이 일어나는 모습을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 디블록킹 필터의 구조를 예시한 블록도이다.
도 4는 도 3의 제1 전치 버퍼와 제2 전치 버퍼의 구조를 예시한 블록도이다.
도 5는 도 3의 레지스터 블록의 구조를 예시한 블록도이다.
도 6a, 6b, 6c 및 6d는 도 3의 디블록킹 필터가 IHF 모드로 동작할 때 픽셀 데이터의 입력 및 출력을 예시한 블록도이다.
도 7a, 7b, 7c 및 7d는 도 3의 디블록킹 필터가 NHF 모드로 동작할 때 픽셀 데이터의 입력 및 출력을 예시한 블록도이다.
도 8a, 8b, 8c 및 8d는 도 3의 디블록킹 필터가 NVF 모드로 동작할 때 픽셀 데이터의 입력 및 출력을 예시한 블록도이다.
도 9a, 9b, 9c 및 9d는 도 3의 디블록킹 필터가 FVF 모드로 동작할 때 픽셀 데이터의 입력 및 출력을 예시한 블록도이다.
<도면의 주요 부분에 대한 부호의 설명>
30 : 디블록킹 필터 31 : 연산부
33 : 현재 매크로블록 저장부 35 : 인접 서브매크로블록 저장부
37 : 프레임 버퍼 311 : 에지 필터
312, 313 : 제1 및 제2 버퍼 314 : 레지스터 블록
321 내지 326 : 제1 내지 제6 멀티플렉서
본 발명은 동영상 코덱에 관한 것으로, 더욱 상세하게는 블록 기반의 동영상 코덱에 이용되는 디블록킹 필터에 관한 것이다.
MPEG-4와 H.264는 최근에 가장 주목받는 영상 코덱들이다. MPEG-4는 국제 표준화 기구(ISO) 소속의 워킹 그룹인 MPEG(Moving Picture Experts Group)에서 개발된 것이고, H.264는 국제 통신 위원회(ITU-T) 소속의 워킹 그룹인 VCEG(Video Coding Experts Group)에서 시작되었다. 최근에 VCEG는 MPEG와 합동으로 JVT(Joint Video Team)을 구성하고, H.264를 기반으로 비디오 압축 복원 효율을 거의 두 배로 증가시킨 H.264/AVC(Advanced Video Coding)를 발표하기도 하였다. MPEG-4와 H.264 표준안들은 모두 시각 데이터의 압축과 복원에 관련되어 있고 유사한 기술을 이용하는 부분이 많지만, MPEG-4는 직사각형의 프레임, 정지 이미지, 비디오 객체와 같 은 광범위한 시각 데이터를 다룰 수 있도록 유연성을 강조하였고 H.264 계열은 대단히 뛰어난 비디오 프레임의 압축효율과 전송효율을 제공할 수 있도록 효율과 신뢰성을 강조한다.
MPEG-1, MPEG-2, H.261, H.263 등의 영상 코덱에 관한 다른 표준안들과 마찬가지로 상기 MPEG-4와 H.264 계열 표준안들도 모두 블록기반 움직임 추정 및 보상 기법, 이산 여현 변환, 양자화, 엔트로피 코딩 등을 사용한다는 점에서 일반적인 특징들을 공유한다고 볼 수 있다. 상기 표준안들은 영상의 압축과 복원이 모두 블록기반으로 구현되기 때문에, 압축 또는 복원 과정에서는 매크로블록을 재구성하였을 때에, 이웃하는 블록들 간의 경계(edge)가 나타나는 현상이 발생할 수 있다. 이러한 블록 현상들은 시각적으로 눈에 쉽게 띠게 때문에 화질을 떨어뜨리는 요인이 된다.
H.264나 H.264/AVC는 다른 표준안들과는 달리 이러한 블록들 사이의 경계를 제거하는 디블록킹 필터(deblocking filter)를 더 정의하고 있다. H.264 및 H.264/AVC는 압축(encoding)할 때에도 매크로블록 예측을 위해 프레임을 재구성(reconstruction)하며, 복원(decoding)할 때에도 디스플레이를 위해 프레임을 재구성하는데, 이러한 재구성 과정 전에 디블록킹 필터에 프레임을 통과시킨다. 종래에 디블록킹 필터링 연산은 전체 복원 시간의 20% 정도와 메모리 억세스 회수의 약 25%를 차지하는 것으로 알려져 있다. 따라서, 디블록킹 필터링 연산의 연산 알고리즘이나 메모리 엑세스 아키텍쳐를 개선하면 전체적인 압축 또는 복원 시간을 크게 줄일 수 있다.
상기 표준안들이 채택하고 있는 여러 가지 색공간(color space) 중에는 휘도와 색차를 이용한 YCbCr 색공간이 널리 쓰이고 있다. Y는 휘도(luminance) 성분으로서, 적색(R), 녹색(G), 청색(B)의 가중 평균으로 얻을 수 있고, Cb과 Cr은 색차(chrominance)로서, 각각 청색(B)과 휘도(Y)의 차, 적색(R)과 휘도(Y)의 차이다. 녹색(G)와 휘도(Y)의 차이는 Cg라고 하는데, Cb와 Cr로부터 산술적으로 얻을 수 있으므로 저장하거나 전송할 필요는 없다. 따라서, 휘도(Y), 청색 색차(Cb), 적색 색차(Cr)만으로 색상을 표현할 수 있다.
H.264와 H.264/AVC 표준안에서 픽셀을 YCbCr로 샘플링하는 방법은 4:4:4 샘플링, 4:2:2 샘플링, 4:2:0 샘플링 등이 있다. 각 숫자는 세 성분의 상대적인 샘플링 비율을 뜻한다. 4:4:4 샘플링은 세 성분의 샘플링 비율이 모두 같은 경우이다. 그런데, 인간의 시각은 색깔보다는 밝기(휘도)에 더 민감하므로 휘도를 높은 해상도로, 색깔은 낮은 해상도로 표현할 수 있다. 따라서 색차 성분들의 샘플링 비율 즉 해상도를 낮추어도 그 차이를 잘 느끼지 못한다. 4:2:2 샘플링(YUY2라고도 함)에서는 색차 성분들이 수평 방향으로는 휘도 성분과 동일한 해상도를 갖고, 수직 방향으로는 휘도 성분의 절반에 해당하는 해상도를 가진다. 4:2:0 샘플링(YV12라고도 함)에서는 색차 성분들이 수평 및 수직 방향으로 휘도 성분의 절반에 해당하는 해상도를 가진다. 4:2:0 샘플링은 화상 회의, 디지털 TV, DVD 등에 널리 사용된다.
H.264와 H.264/AVC 표준안에 따르면 디블록킹 필터링은 픽셀의 샘플링 방식에 따라 조금씩 다르게 규정되어 있다. 예를 들어 4:2:0 샘플링의 경우, 디블록킹 필터링은 매크로블록 내에 포함된 16개의 4x4 픽셀 서브매크로블록의 수직 또는 수 평 경계에 대해, 휘도 성분(Y)의 4개 수직 경계, 휘도 성분(Y)의 4개 수평 경계, 각 색차 성분(Cb, Cr)의 2개 수직 경계, 각 색차 성분(Cb, Cr)의 2개 수평 경계 순서로 적용되도록 규정되어 있다. 휘도 성분과 색차 성분 중 어느 쪽을 먼저 연산해야하는 지에 대해서는 규정되어 있지 않다. 다만, 수직 경계가 수평 경계보다 먼저 연산되고, 좌측 수직 경계가 우측 수직 경계보다 먼저 연산되며, 상측 수평 경계가 하측 수평 경계보다 먼저 연산되면 H.264/AVC 표준안의 규정을 만족시킬 수 있다.
한편, 경계의 연산 시에 연산의 결과는 필터링 세기(filtering intensity)에 따라 경계의 좌, 우 또는 상, 하로 4개 픽셀까지 미치는 것으로 규정되어 있다.
도 1a 및 1b는 H.264/AVC 표준안에 따른 종래의 16x16 매크로블록의 디블록킹 필터링 연산의 순서를 나타낸 것이다. 도 1a 및 1b를 참조하면, 디블록킹 필터링을 위해서는 현재 매크로블록의 서브매크로블록들(B0 내지 B 23)과 이웃 매크로블록의 인접하는 서브매크로블록들(U0 내지 U3, L0 내지 L3)이 필요하다. 현재 매크로블록은 4:2:0 샘플링을 가지며, 현재 매크로블록 및 인접한 서브매크로블록들은 휘도 성분(Y)과 색차 성분들(Cb, Cr)로 각각 표시되어 있다.
도 1a의 디블록킹 필터링 연산은 기본적으로 먼저 수직 방향의 경계들(E0 내지 E23)을 모두 연산하고, 다음에 수평 방향의 경계들(E24 내지 E47)을 연산한다. 이때, 예를 들어, 0번 서브매크로블록(B0)을 외부 메모리로부터 읽어들이고 필터링 연산 후에 다시 외부 메모리에 저장하는 동작은 0번, 1번, 24번, 28번 경계(E0, E1, E24, E28)에 대해 연산을 할 때에 각각 반복된다. 즉, 16x16 매크로블록 하나의 디블록킹 필터링 연산 동안, 외부 메모리에 각각의 서브매크로블록들의 픽셀 데 이터를 128번 읽고 128번씩 써야 한다. 이렇듯, 픽셀 데이터를 외부 메모리에 쓰거나 읽는 경우에는 너무 많은 메모리 참조 시간과 상당한 버스 대역폭을 필요로 하였다. 도 1a의 필터링 연산 순서를 적용하였을 때 매크로블록당 600여회의 클록이 필요하다고 알려져 있다.
도 1b는 메모리를 참조하는 횟수를 줄이고 픽셀 데이터를 재사용할 수 있는 개선된 연산 순서를 예시한 것이다. 도 1b를 참조하면, 한번 읽어들인 서브매크로블록을 도 1a의 경우보다 가지고 더 많은 연산을 수행한다. 예를 들면, 0번 서브매크로블록(B0)은 좌, 우, 상측 경계(E0, E1, E2)에서 필터링 연산을 연이어 수행한다. 좌측 경계(E0)에 대한 연산 시에 업데이트된 0번 서브매크로블록(B0)의 픽셀 데이터들은 우측 경계(E1)와 상부 경계(E2)의 연산 시에 재사용될 수 있으므로 외부 메모리에 읽고 쓰는 회수가 크게 줄어들 수 있다.
이러한 방법은 한 서브매크로블록에서 수평, 수직 방향으로 번갈아가며 필터링 연산을 수행하기 때문에 2차원 처리(2-D processing) 기법이라고 하며, 전체적으로 각 서브매크로블록에 대해 수평 방향 연산은 좌에서 우로, 수직 방향 연산은 상에서 하로 이뤄지기 때문에 H.264/AVC 표준안의 규정을 준수할 수 있다.
이러한 방법을 적용하기 위해서, 대용량의 고속 메모리(예를 들어 SRAM)를 포함시켜 연산하는 구조가 제안되어 왔다. 그러한 연산 구조는 디블록킹 필터링 블록 내부에 필터링 전의 현재 매크로블록, 필터링 후의 현재 매크로블록 및 연산에 필요한 이웃 서브매크로블록들의 픽셀 데이터를 각각 저장할 수 있다. 따라서, 상기 구조를 이용하면 외부 메모리에 접근하는데 소요되는 시간과 버스 대역폭을 줄 이고, 연산 양도 줄일 수 있지만, 휴대용 기기에 적용하기에는 고속 메모리가 소비하는 전력이나 차지하는 면적이 여전히 크다.
따라서, 휴대용 기기에서도 고해상도의 영상을 코딩 및 디코딩할 수 있도록 연산 양, 메모리 접근 소요, 전력 소모, 소비 면적 등을 최소화할 수 있도록 개선된 디블록킹 필터 구조가 여전히 필요하다.
본 발명의 목적은 H.264/AVC의 표준을 따르면서 연산 양과 메모리 접근 소요를 줄일 수 있는 디블록킹 필터를 제공하는 것이다.
본 발명의 일 실시예에 따른 디블록킹 필터는, 디블록킹 필터링 연산을 할 매크로블록을 저장하는 현재 매크로블록 저장부, 상기 매크로블록에 인접한 서브매크로블록들을 저장하는 인접 서브매크로블록 저장부, 상기 매크로블록 내의 서브매크로블록들 및 상기 인접한 서브매크로블록들의 경계들에 대해 소정의 연산 순서에 따라 디블록킹 필터링 연산을 수행하는 연산부 및 프레임을 재구성할 수 있도록 상기 연산부로부터 디블록킹 필터링 연산이 끝난 서브매크로블록들을 차례로 전달받아 저장하는 프레임 버퍼를 포함한다. 이때, 상기 연산부는 제1 및 제2 입력 단자에서 각각 한 서브매크로블록을 입력받고, 입력받은 두 서브매크로블록들의 경계에서 에지 필터링 연산을 수행하며, 연산 결과인 제1 및 제2 출력 서브매크로블록들을 출력하는 에지 필터, 입력되는 서브매크로블록을 그대로 또는 전치(transpose)하여 출력하는 제1 및 제2 전치 버퍼들, 상기 제2 출력 서브매크로블록을 일시적으 로 저장하는 레지스터 블록, 상기 레지스터 블록, 상기 인접 서브매크로블록 저장부 또는 상기 제1 전치 버퍼에서 출력되는 서브매크로블록들 중 어느 하나를 상기 에지 필터의 제1 입력 단자에 제공하는 제1 멀티플렉서, 상기 제1 전치 버퍼, 제2 전치버퍼 또는 상기 현재 매크로블록 저장부에서 출력되는 서브매크로블록들 중 어느 하나를 상기 에지 필터의 제2 입력 단자에 제공하는 제2 멀티플렉서, 상기 인접 서브매크로블록 저장부에서 출력되는 서브매크로블록 또는 제2 출력 서브매크로블록 중 어느 하나를 직후의 디블록킹 필터링 연산을 위해 상기 제1 전치 버퍼에 제공하는 제3 멀티플렉서, 상기 제1 및 제2 출력 서브매크로블록 중 어느 하나를 직후의 디블록킹 필터링 연산을 위해 상기 제2 전치 버퍼에 제공하는 제4 멀티플렉서, 상기 제2 전치 버퍼에서 출력되는 서브매크로블록 또는 제2 출력 매크로블록 중 어느 하나를 다음 매크로블록의 디블록킹 필터링 연산을 위해 상기 인접 서브매크로블록 저장부에 제공하는 제5 멀티플렉서 및 어느 서브매크로블록에 대해 디블록킹 필터링 연산이 완료된 경우에 상기 제1 출력 서브매크로블록 또는 상기 제2 전치 버퍼에서 출력되는 서브매크로블록 중 어느 하나를 상기 프레임 버퍼에 제공하는 제6 멀티플렉서를 포함한다.
실시예에 따라, 상기 매크로블록은 4x4 서브매크로블록들로 구성되고, 상기 서브매크로블록들은 4x4 픽셀로 구성되며, 상기 소정의 연산 순서는 상기 매크로블록의 휘도 성분의 각 행마다 좌측 첫 번째 서브매크로블록의 좌측, 우측, 상측 경계, 두 번째 서브매크로블록의 우측, 상측 경계, 세 번째 서브매크로블록의 우측, 상측 경계, 네 번째 서브매크로블록의 상측 경계의 순서가 반복되고, 이어서 색차 성분의 좌측 첫 번째 서브매크로블록의 좌측, 우측, 상측 경계, 두 번째 서브매크로블록의 상측 경계의 순서가 반복될 수 있다. 이때, 상기 레지스터 블록은 현재의 디블록킹 필터링 연산 시 상기 제1 및 제2 전치 버퍼들이 모두 사용 중인 경우, 직후의 디블록킹 필터링 연산에 쓰일 예정인 인접한 서브매크로블록을 미리 입력받아 저장하도록 구성될 수 있다. 구체적으로, 상기 레지스터 블록은 적어도 네 개의 레지스터, 제1 및 제2 디멀티플렉서, 제7 멀티플렉서를 포함할 수 있다. 이 경우, 상기 제1 디멀티플렉서는 상기 인접 서브매크로블록 저장부로부터 입력받은 서브매크로블록을 상기 레지스터들 중 하나에 저장하고, 상기 제2 디멀티플렉서는 상기 제2 출력 서브매크로블록을 상기 레지스터 중 하나에 저장하며, 상기 제7멀티플렉서는 상기 레지스터들 중 어느 하나로부터 출력되는 서브매크로블록을 상기 제1 멀티플렉서에 인가하도록 구성될 수 있다.
실시예에 따라, 상기 제1 및 제2 전치 버퍼는 각각 4x4 개의 레지스터들이 매트릭스 구조로 배열된 어레이이며, 각각의 레지스터들은 전치할 경우에는 수직으로 픽셀 데이터를 전달하고, 그대로 출력할 경우에는 수평으로 픽셀 데이터를 전달하도록 구성될 수 있다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지 다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 2는 본 발명의 일 실시예에 따른 디블록킹 필터의 동작을 설명하기 위해 서브매크로블록의 각 경계들에서 필터링 연산이 일어나는 모습을 나타낸 도면이다. 본 발명의 디블록킹 필터는 기본적으로 도 1b의 연산 순서를 따를 수 있다.
도 2를 참조하면, 한 매크로블록의 휘도 성분의 16 개의 서브매크로블록들(B0 내지 B15)은 네 개의 행으로 구분되고, 한 행마다 8개 경계에 대해 필터링 연산이 이뤄짐을 알 수 있다. 필터링 연산의 결과, 경계의 좌우 또는 상하로 최대 4개 픽셀까지 픽셀 데이터가 갱신된다. 예를 들어, 첫 번째 행에 대한 디블록킹 필 터링 연산은 그 행 내에 있는 서브매크로블록들(B0 내지 B3)의 좌측 또는 상부에 있는 다섯 개의 인접 서브매크로블록들(L0, U0 내지 U3)을 이용하여 최대 8번 수행된다. 두 번째 행에 대해, 디블록킹 필터링 연산은 좌측의 한 인접 서브매크로블록(L1)과 상부의 네 서브매크로블록들(B0 내지 B3)을 이용하여 8번 수행된다.
각 행에서 이뤄지는 8번의 디블록킹 필터링 연산은 다음과 같이 크게 네 가지 모드로 구분될 수 있다. 도 2에서는 첫 번째 행을 예로 들어 설명한다. 아래에서, 대문자 P는 연산 대상 서브매크로블록 중 좌측 또는 상부에 있는 서브매크로블록을 나타내며, 대문자 Q는 우측 또는 하부에 있는 서브매크로블록을 나타낸다. 또, 필터링 연산이 끝난 후의 서브매크로블록들은 각각 P'와 Q'로 나타낸다. 연산이 한차례 있을 때마다 철자 옆에 프라임(')이 붙는다.
먼저, 제1 서브매크로블록(B0)의 좌측에 있는 0번 수직 경계(E0)에 대한 필터링 연산을 살펴본다. 상기 제1 서브매크로블록(B0)은 좌측 서브매크로블록(L0)과 연산된다. 이 연산 결과는 제1 서브매크로블록(B0)과 좌측 서브매크로블록(L0)을 모두 갱신시키며, 1차 갱신된 제1 서브매크로블록(BO')과 1차 갱신된 좌측 서브매크로블록(L0')은 각각 저장된다.
도 2 및 도 1b의 연산 순서를 함께 참조하면, 각 행의 첫 번째 수직 경계, 즉 0번, 8번, 16번, 24번, 32번, 36번, 40번 및 44번 수직 경계(E0, E8, E16, E24, E32, E36, E40, E44) 양쪽에 있는 서브매크로블록(P)과 서브매크로블록(Q)이 연산되는 필터링 연산 모드는 수평 방향으로 연산되므로 IHF(initial horizontal filtering) 모드라고 한다. IHF 모드에서는 이웃 매크로블록의 연산이 아직 덜 끝난 서브매크로블록(P)과 아직 갱신되지 않은 서브매크로블록(Q)이 연산된다. 갱신된 서브매크로블록(Q')은 추후 연산에 재사용하기 위해 내부에 임시로 저장된다. 이때, 상기 갱신된 서브매크로블록(Q')은 다음 연산에서 전치(transposition)된 상태로 사용되므로 미리 전치시킨 상태로 저장할 수 있다. 갱신된 서브매크로블록(P')은 필요한 모든 연산이 끝난 경우(E0, E8, E16, E32, E40)에는 재사용되지 않고 외부로 출력되거나, 추후 다른 매크로블록의 연산에 필요한 경우(E24, E36, E44)에는 인접 서브매크로블록 저장부에 저장된다.
다음으로, 1차 갱신된 제1 서브매크로블록(B0')의 우측에 있는 1번 수직 경계(E1)에 대한 필터링 연산을 살펴본다. 상기 1차 갱신된 제1 서브매크로블록(B0')은 제2 서브매크로블록(B1)과 연산된다. 이 연산 결과는 1차 갱신된 제1 서브매크로블록(B0')과 제2 서브매크로블록(B1)을 모두 갱신시키며, 2차 갱신된 제1 서브매크로블록(BO'')과 1차 갱신된 제2 서브매크로블록(B1')은 각각 저장된다.
도 2 및 도 1b의 연산 순서를 함께 참조하면, 각 행의 수직 경계, 즉 1번, 3번, 5번, 9번, 11번, 13번, 17번, 19번, 21번, 25번, 27번, 29번, 33번, 37번, 41번, 45번 수직 경계(E1, E3, E5, E9, E11, E13, E17, E19, E21, E25, E27, E29, E33, E37, E41, E45) 양쪽에 있는 두 서브매크로블록들(P, Q)이 연산되는 필터링 연산 모드를 NHF(normal horizontal filtering) 모드라고 한다. NHF 모드에서는, 적어도 한 차례 갱신된 서브매크로블록(P)과 갱신된 적이 없는 서브매크로블록(Q)이 연산되며, 각각 갱신된 두 서브매크로블록들(P', Q')은 재사용을 위해 각각 내부에 저장된다. 이때, 상기 갱신된 두 서브매크로블록(P', Q')은 다음 연산에서 전 치된 상태로 사용되므로, 미리 전치시켜 저장할 수 있다.
이어서, 2차 갱신된 제1 서브매크로블록(B0'')의 상부 수평 경계에 대한 필터링 연산을 살펴본다. 상기 2차 갱신된 제1 서브매크로블록(B0'')은 제1 상부 서브매크로블록(U0)과 연산된다. 이 연산 결과는 2차 갱신된 제1 서브매크로블록(B0'')과 제1 상부 서브매크로블록(U0)을 모두 갱신시키며, 3차 갱신된 제1 서브매크로블록(BO''')과 1차 갱신된 제1 상부 서브매크로블록(U0')은 각각 저장된다.
도 2 및 도 1b의 연산 순서를 함께 참조하면, 각 행의 수평 경계, 즉 2번, 4번, 6번, 10번, 12번, 14번, 18번, 20번, 22번, 26번, 28번, 30번, 34번, 42번 경계(E2, E4, E6, E10, E12, E14, E18, E20, E22, E26, E28, E30, E34, E42) 양쪽에 있는 서브매크로블록(P)과 서브매크로블록(Q)이 연산되는 필터링 연산 모드를 NVF(normal vertical filtering) 모드라고 한다. NVF 모드에서는 외부에서 읽어들인 상부 서브매크로블록(P) 또는 갱신된 적이 있는 이전 행의 서브매크로블록(P)과, 두 차례 갱신된 현재 행의 서브매크로블록(Q)이 연산된다. 갱신된 상부 서브매크로블록(P') 또는 이전 행의 서브매크로블록(P')은 필요한 연산이 모두 끝났기 때문에 더 이상 재사용되지 않고 외부로 출력된다. 현재 행의 서브매크로블록(Q')은 갱신된 후 재사용을 위해 내부에 저장된다. 이때, 특히 맨 아래 행의 경우(E26, E28, E30, E38, E46)에는 다음 매크로블록의 연산에 필요하므로 갱신된 서브매크로블록(Q')을 인접 서브매크로블록 저장부에 저장할 수 있다.
마지막으로, 상기 연산들을 거쳐 1차 갱신된 제4 서브매크로블록(B3')의 상부 수평 경계에 대해서 필터링 연산을 살펴본다. 상기 1차 갱신된 제4 서브매크로 블록(B3')은 제4 상부 서브매크로블록(U3)과 연산된다. 이 연산 결과는 1차 갱신된 제4 서브매크로블록(B3')과 제4 상부 서브매크로블록(U3)을 모두 갱신시킨다.
도 2 및 도 1b의 연산 순서를 함께 참조하면, 각 행의 마지막 수평 경계, 즉 7번, 15번, 23번, 31번, 35번, 39번, 43번, 47번 경계(E7, E15, E23, E31, E35, E39, E43, E47) 양쪽에 있는 서브매크로블록들(P, Q)이 연산되는 필터링 연산 모드를 FVF(final vertical filtering) 모드라고 한다. FVF 모드에서는 외부에서 읽어들인 상부 서브매크로블록(P) 또는 갱신된 적이 있는 이전 행의 서브매크로블록(P)과 두 차례 갱신된 현재 행의 서브매크로블록(Q)이 연산된다. 갱신된 상부 서브매크로블록(P')은 연산이 마무리 되었으므로(E7) 외부로 출력되고, 갱신된 이전 행의 서브매크로블록(P')은 다음 매크로블록의 연산에 재사용되므로 내부에 저장된다. 갱신된 현재 행의 서브매크로블록(Q')도 재사용을 위해 내부에 저장된다. 특히, 맨 마지막 서브매크로블록의 경우(E31, E39, E47)에는 다음 매크로블록의 연산에 필요하므로 갱신된 서브매크로블록(Q')을 인접 서브매크로블록 저장부에 저장할 수 있다.
요약하면, IHF 모드에서는 인접 서브매크로블록(P)과 서브매크로블록(Q)의 각각 수평 방향으로 배열된 픽셀 데이터들이 입력되고, 필터링된다. 갱신된 인접 서브매크로블록(P')은 외부로 출력되거나, 다음 매크로블록의 연산에 사용되기 위해 인접 메모리에 저장된다. 갱신된 서브매크로블록(Q')은 곧바로 다음 필터링 연산에 재사용되기 위해 내부에 저장된다.
NHF 모드에서는 갱신된 서브매크로블록(P)과 갱신되지 않은 서브매크로블 록(Q)의 각각 수평 방향으로 배열된 픽셀 데이터들이 입력되고 필터링된다. 재차 갱신된 서브매크로블록(P')은 곧바로 다음 필터링 연산에 재사용되기 위해 내부에 저장된다. 필터링 연산으로 한차례 갱신된 서브매크로블록(Q')도 곧바로 다음 필터링 연산을 위해 내부에 저장된다.
NVF 모드에서는 상부 서브매크로블록(P) 또는 갱신된 서브매크로블록(P)과, 또 다른 갱신된 서브매크로블록(Q)의 각각 수직 방향으로 배열된 픽셀 데이터들이 입력되고 필터링된다. 재차 갱신된 서브매크로블록들 중 위쪽에 있는 서브매크로블록(P')은 필터링 연산이 완료되었으므로 외부로 출력된다. 그러나, 아래쪽에 있는 서브매크로블록(Q')은 다음 필터링 연산을 위해 내부에 저장되거나, 또는 다음 매크로블록의 연산을 위해 인접 서브매크로블록 저장부에 저장된다.
FVF 모드에서는 상부 서브매크로블록(P) 또는 갱신된 서브매크로블록(P)과, 또 다른 갱신된 서브매크로블록(Q)의 각각 수직 방향으로 배열된 픽셀 데이터들이 입력되고 필터링된다. 재차 갱신된 서브매크로블록(P')은 외부로 출력되거나, 추후의 필터링 연산을 위해 내부에 저장된다. 재차 갱신된 서브매크로블록(Q')은 다음 필터링 연산에 재사용 내부에 저장되거나, 다음 매크로블록의 연산을 위해 인접 서브매크로블록 저장부에 저장된다.
상기 매크로블록의 휘도 성분(Y)을 살펴보면, 각 행마다 IHF 모드, NHF 모드, NVF 모드, NHF 모드, NVF 모드, NHF 모드, NVF 모드, FVF 모드의 순서대로 필터링 연산들이 실행된다. 색차 성분(Cr, Cb)을 살펴보면, IHF 모드, NHF 모드, NVF 모드, FVF 모드의 순서로 필터링 연산이 실행된다. 상기 모드들에 따라 입력되는 서브매크로블록의 픽셀 데이터가 곧바로 재사용되는 것인지, 메모리로부터 읽어들이는 것인지 결정되며, 또 재사용되는 경우에는 바로 재사용되는지 아니면 일정 단계 후에 재사용되는지 결정된다. 또한, 모드에 따라 필터링 연산 후의 픽셀 데이터가 저장되는지, 즉시 재사용되는지, 외부에 출력되는지 결정된다.
NVF 모드와 FVF 모드에서는 픽셀 데이터가 수직으로 배열되어 있는데, 필터링 연산 전에 미리 수평 배열로 전치시키면 하나의 에지 필터로 수평 배열 및 수직 배열의 픽셀 데이터들을 모두 연산할 수 있다.
따라서, 모드에 따라 어디로부터 무엇을 입력받는지, 전치를 하는지, 필터링 연산 후 어디로 전송할 것인지를 통제할 수 있다면, 외부 메모리에 대한 참조를 최소화하고 전체 연산 양도 크게 줄일 수 있을 것이다.
도 3은 본 발명의 일 실시예에 따른 디블록킹 필터의 구조를 예시한 블록도이다. 도 3을 참조하면, 도 2에서 설명한 필터링 연산 순서(sequence)를 하나의 에지 필터(edge filter)와 두 개의 전치 버퍼 및 최소한의 저장 공간만으로 구현하기 위한 디블록킹 필터의 구조가 나타나 있다.
상기 디블록킹 필터(30)는 연산부(31), 현재 매크로블록 저장부(MACROBLOCK MEMORY)(33), 인접 서브매크로블록 저장부(ADJACENT SUBMACROBLOCK MEMORY)(35) 및 프레임 버퍼(FRAME BUFFER)(37)를 포함한다. 연산부(31)는 서브매크로블록들에 대해 필터링 연산을 수행한다. 현재 매크로블록 저장부(33)는 필터링되기 전의 서브매크로블록들을 저장한다. 인접 서브매크로블록 저장부(35)는 필터링이 완료되지 않은 상태의 인접 서브매크로블록들을 저장하며 필요한 경우 인접 서브매크로블록 을 갱신하여 저장한다. 프레임 버퍼(37)는 연산부(31)로부터 필터링 연산이 모두 끝난 서브매크로블록들을 차례로 전달받아, 필터링된 프레임으로 재구성한다.
상기 연산부(31)는 크게 에지 필터(EDGE FILTER)(311), 제1 전치 버퍼(P-BUFFER)(312), 제2 전치 버퍼(Q-BUFFER)(313), 레지스터 블록(REGISTER BLOCK)(314) 및 제1 내지 제6 멀티플렉서(321 내지 326)를 포함한다.
에지 필터(311)는 인접하는 두 서브매크로블록들(P, Q)의 픽셀 데이터를 입력단자들에서 입력받아 에지 필터링 연산을 하고 필터링된 두 서브매크로블록들(P', Q')을 출력단자들에서 출력한다. 상기 에지 필터(311)가 수행하는 에지 필터링 연산은 H.264/AVC 등의 표준안에 정의되어 있다. 상기 에지 필터(311)는 1차원 FIR 필터(1-D finite impulse response filter)일 수 있다.
상기 에지 필터(311)의 한 입력단자에는 인접 서브매크로블록 저장부(35), 레지스터 블록(314), 제1 전치 버퍼(312) 중 어느 한 곳으로부터 제1 멀티플렉서(321)를 거쳐 서브매크로블록(P)의 픽셀 데이터가 입력된다. 상기 에지 필터(311)의 다른 입력단자에는 현재 매크로블록 저장부(33), 제1 전치 버퍼(312), 제2 전치 버퍼(313) 중 어느 한 곳으로부터 제2 멀티플렉서(322)를 거쳐 서브매크로블록(Q)의 픽셀 데이터가 입력된다.
상기 에지 필터(311)는 수직 경계에 대해서는 한 서브매크로블록의 픽셀을 수평으로 배열된 상태로 필터링 연산하지만, 수평 경계에 대해서는 픽셀을 수직으로 배열된 상태로 필터링 연산한다. 따라서, 한 개의 1차원 FIR 필터인 에지 필터(311)로 수직 배열 및 수평 배열의 픽셀 데이터들에 대한 연산을 모두 수행하기 위해서는, 수직 배열과 수평 배열을 서로 전치하거나 또는 그대로 출력할 수 있는 전치 버퍼(transpose buffer)가 필요하다. 상기 제1 전치 버퍼(312)와 제2 전치 버퍼(313)는 수직 배열된 픽셀 데이터를 수평 배열된 픽셀 데이터로 또는 그 반대로 전치하거나, 그대로 출력할 수 있다. 상기 제1 및 제2 전치 버퍼들(312, 313)은 항상 사용되는 것은 아니고, 위에서 설명한 네 개의 모드 별로 전치가 필요할 때에 사용될 수 있다. 상기 제1 및 제2 전치 버퍼들(312, 313)은 픽셀 데이터를 전치하지 않고 그대로 출력할 수도 있으므로, 전치가 필요하지 않더라도 갱신된 픽셀 데이터가 다음 연산에 바로 사용될 경우에는 단순한 버퍼처럼 사용될 수도 있다.
상기 제1 전치 버퍼(312)에는 에지 필터(311)의 한 출력 단자 또는 인접 서브매크로블록 저장부(35) 중 어느 한 쪽에서 제3 멀티플레서(323)를 거쳐 서브매크로블록이 입력된다. 또, 상기 제2 전치 버퍼(313)에는 에지 필터(311)의 두 출력 단자들 중 어느 하나에서 제4 멀티플레서(324)를 거쳐 서브매크로블록이 입력된다.
상기 에지 필터(311)는 다음 매크로블록의 필터링 연산을 위해 필터링을 마친 서브매크로블록을 인접 서브매크로블록 저장부(35)에 저장할 수 있다. 이때, 제5 멀티플레서(325)를 거쳐 상기 필터링된 서브매크로블록, 또는 상기 필터링된 서브매크로블록을 제2 전치 버퍼(313)에서 전치한 서브매크로블록 중 어느 한 서브매크로블록을 상기 인접 서브매크로블록 저장부(35)에 저장할 수 있다.
상기 연산부(31)에서 상기 프레임 버퍼(37)로 서브매크로블록이 출력되는 경우는 상기 통상적으로 네 번의 필터링 연산을 완료하고 에지 필터(311)의 제1 출력단자에서 출력되는 경우와, 서브매크로블록이 프레임의 오른쪽 또는 아래쪽 가장 자리에 위치하였기 때문에 두 번 또는 세 번의 필터링 연산만을 거치고 에지 필터(311)의 제1 또는 제2 출력단자에서 출력된 후에 약간의 지연을 거치면서 전치되거나 또는 그대로 출력되는 경우 두 가지가 있다. 상기 두 가지 경우에 필터링 연산이 완료된 서브매크로블록들은 제6 멀티플렉서(326)를 통해 그때그때 프레임 버퍼(37)로 전송된다.
도 4는 도 3의 제1 전치 버퍼와 제2 전치 버퍼의 구조를 예시한 블록도이다. 도 4를 참조하면, 제1 전치 버퍼(312) 또는 제2 전치 버퍼(313)는 4x4 개의 레지스터들(P00 내지 P33)이 매트릭스 구조를 가지고 배열된 어레이이다. 상기 제1 또는 제2 전치 버퍼(312, 313) 내의 각각의 레지스터들(P00 내지 P33)은 전치할 경우에는 수직으로 픽셀 데이터를 전달하고, 그대로 출력할 경우에는 수평으로 픽셀 데이터를 전달하도록 구성된다. 제1 전치 버퍼(312) 또는 제2 전치 버퍼(313)에 입력된 4x4 픽셀의 서브매크로블록의 픽셀 데이터들은 각 레지스터들(P00 내지 P33)에 차례로 저장된다. 전치 멀티플렉서들(MUX)은 상기 픽셀 데이터들을 전치된 순서로 출력하거나, 그대로 출력할 수 있다. 만약 입력된 데이터를 전치시켜야 한다면 수직 경로를 따라 데이터를 출력하고, 전치시키지 않아야 한다면 수평 경로를 따라 데이터를 출력한다.
제1 전치 버퍼(312) 및 제2 전치 버퍼(313)는 그 자체로도 저장 공간의 역할을 하므로, 연산부(31) 내부에 서브매크로블록의 픽셀 데이터를 저장할 필요가 있을 때에 별도의 저장 공간을 대신하여 이용될 수 있다.
특히, NHF 모드에서 NVF 모드로 넘어갈 때를 살펴보면, NHF 모드에서 계산된 수평 배열의 서브매크로블록(P')은 다음 연산이 NVF 모드이므로, 수직 배열로 전치되어야 한다. 그런데, 이전 연산에서 왼쪽 또는 위쪽에 위치하였던 상기 수평 배열의 서브매크로블록(P')는 다음 연산에서는 오른쪽 또는 아래에 위치하므로 서브매크로블록(Q)로서 에지 필터에 인가되어야 한다. 이러한 점을 감안하여, 제1 전치 버퍼(312)는 에지 필터의 제2 출력(OUTQ)에서 픽셀 데이터를 인가받고, 제2 전치 버퍼(313)는 에지 필터의 제1 출력(OUTP)에서 픽셀 데이터를 인가받도록 연결된다.
도 5는 도 3의 레지스터 블록의 구조를 예시한 블록도이다. 도 5를 참조하면, 레지스터 블록(314)은 상기 동작 모드에 따라 여러 서브매크로블록의 데이터를 저장하거나 출력할 수 있도록, 제1 내지 제4 레지스터(R0 내지 R3)와 제1 및 제2 디멀티플렉서들(DEMUX1, DEMUX2), 제7 멀티플렉서(MUX7)를 포함한다.
클럭을 낭비하지 않기 위해서 어떤 서브매크로블록들의 픽셀 데이터는 내부에 저장되어야 할 필요가 있는데, 그러한 경우로는 다음 필터링 연산을 위해 미리 서브매크로블록을 불러들어야 하는 경우 또는 어떤 서브매크로블록에 대해 필터링 연산이 한차례만 더 남았지만 그 연산의 순서는 바로 이어지지 않는 경우 등이 있다. 상기 레지스터 블록(314)는 이러한 경우에 서브매클로블록들의 픽셀 데이터를 일시 저장한다.
상기 레지스터 블록(314)은 상기 제1 및 제2 전치 버퍼(312, 313)가 모두 사용되고 있는 경우에 또 다른 서브매크로블록의 픽셀 데이터를 임시로 저장하기 위해 사용될 수도 있다. 예를 들어, 제5 상부 서브매크로블록(U4)은 34번째 경계(E34)의 필터링 연산을 위해 33번째 경계(E33)의 필터링 연산을 하는 동안에 미 리 읽어놓을 필요가 있다. 이 경우, 그러한 서브매크로블록들의 픽셀 데이터를 저장하는 데에는 두 개 정도의 레지스터로 충분하다. 도 5를 참조하면, 인접 서브매크로블록 저장부(35)로부터 제공된 상기 서브매크로블록들의 픽셀 데이터들은 상기 제1 디멀티플렉서(DEMUX1)를 통해 제1 레지스터(R0) 또는 제2 레지스터(R1) 중 어느 한 레지스터에 제공된다.
다른 경우를 살펴보면, 상기 레지스터 블록(314)은 한 차례의 필터링 연산만 남긴 상태의 서브매크로블록을 저장한다. 예를 들어, 3번째 필터링 연산을 마친 서브매크로블록(B0''')는 마지막 필터링 연산이 8번의 다른 필터링 연산들이 이뤄진 후에 이뤄지기 때문에 그동안 저장될 필요가 있다. 이러한 경우는 2번, 4번, 6번, 7번, 10번, 12번, 14번, 15번, 18번, 20번, 22번, 23번, 34번, 42번 경계(E2, E4, E6, E7, E10, E12, E14, E15, E18, E20, E22, E23, E34, E42)에서 일어난다. 이 경우, 상기 서브매크로블록들의 픽셀 데이터를 저장하는 데에는 네 개 정도의 레지스터가 필요할 수 있다. 도 5를 참조하면, 상기와 같은 경우에 상기 에지 필터(311)에서 출력된 픽셀 데이터들을 상기 제2 디멀티플렉서(DEMUX2)를 통해 제1 레지스터 내지 제4 레지스터(R0 내지 R3) 중 한 레지스터에 제공된다.
각 레지스터들(R0 내지 R3)의 출력은 제7 멀티플렉서(MUX7)를 통해 필요한 때에 제2 멀티플렉서(322)로 출력된다.
상기 복수의 멀티플렉서들(321 내지 326, MUX7)은 동작 모드 및 계산 순서에 따라, 서브매크로블록의 픽셀 데이터들이 수직으로 읽혀야 하는지 수평으로 읽혀야 하는지 또는 저장된 그대로 읽혀야 하는지, 출력되어야 하는지 저장되어야 하는지 등을 제어하며, 픽셀 데이터들을 에지 필터(311), 제1 및 제2 전치 버퍼(312, 313), 인접 서브매크로블록 저장부(35), 프레임 버퍼(37) 등에 적절하게 제공한다.
도 6a, 6b, 6c 및 6d는 도 3의 디블록킹 필터가 IHF 모드로 동작할 때 픽셀 데이터의 입력 및 출력을 예시한 블록도이다. 도 6a, 6b, 6c 및 6d에서, 굵은 실선은 입력되는 픽셀 데이터의 흐름을 나타내고, 점선은 출력되는 픽셀 데이터의 흐름을 나타낸다.
도 6a를 참조하면, 상기 디블록킹 필터(30)는 0번, 8번, 32번, 40번 경계(E0, E8, E32, E40)들에 대해 필터링 연산을 수행한다. 에지 필터(31)는 현재 매크로블록 저장부(33)로부터 서브매크로블록(P)와 인접 서브매크로블록 저장부(35)로부터 서브매크로블록(Q)를 입력받는다. 갱신된 서브매크로블록(P')은 필터링 연산이 완료되었으므로 프레임 버퍼(37)로 출력되고, 갱신된 서브매크로블록(Q')은 바로 다음의 필터링 연산을 위해 제1 전치 버퍼(312)에 저장된다. 다음 필터링 연산은 수직 경계에 대한 연산으로서, 상기 갱신된 서브매크로블록(Q')은 전치될 필요가 없으므로 제1 전치 버퍼(312)에서 전치되지 않는다.
도 6b를 참조하면, 상기 디블록킹 필터(30)는 16번 경계(E16)에 대해 필터링 연산을 수행한다. 도 6a의 경우와 거의 유사하나, 다만 직전의 필터링 연산 시(즉, 15번 경계(E15)의 필터링 연산)에 제1 전치 버퍼(312)에 미리 저장해둔 서브매크로블록이 에지 필터(311)로 입력되며, 직전 필터링 연산 후에 제2 전치 버퍼(313)에 전치되어 저장되어 있던 서브매크로블록(B3''')이 현재의 필터링 연산동안 인접 서브매크로블록 저장부(35)로 전달된다.
도 6c를 참조하면, 상기 디블록킹 필터(30)는 24번 경계(E24)에 대해 필터링 연산을 수행한다. 도 6b의 경우와 유사하나, 다만 갱신된 서브매크로블록(P')은 외부로 출력되는 대신 다음 매크로블록의 연산 시에 전치되어 연산될 수 있도록 제2 전치 버퍼(313)로 입력된다. 직전 필터링 연산 후에 제2 전치 버퍼(313)에 전치되어 저장되어 있던 서브매크로블록(B3''')은 현재 필터링 연산동안 인접 서브매크로블록 저장부(35)로 전달된다.
도 6d를 참조하면, 상기 디블록킹 필터(30)는 36번, 44번 경계(E36, E44)에 대해 필터링 연산을 수행한다. 도 6c의 경우와 유사하나, 다만 인접 서브매크로블록 저장부(35)로 전달되는 서브매크로블록은 없다.
도 7a, 7b, 7c 및 7d는 도 3의 디블록킹 필터가 NHF 모드로 동작할 때 픽셀 데이터의 입력 및 출력을 예시한 블록도이다. 도 7a, 7b, 7c 및 7d에서, 굵은 실선은 입력되는 픽셀 데이터의 흐름을 나타내고, 점선은 출력되는 픽셀 데이터의 흐름을 나타낸다.
도 7a를 참조하면, 상기 디블록킹 필터(30)는 1번, 3번, 5번, 9번, 11번, 13번, 17번, 19번, 21번, 27번, 29번 경계(E1, E3, E5, E9, E11, E13, E17, E19, E21, E27, E29)들에 대해 필터링 연산을 수행한다. 에지 필터(311)는 직전 필터링 연산 때 제1 전치 버퍼(312)에 그대로 저장된 서브매크로블록(P) 및 현재 매크로블록 저장부(33)에서 제공받은 서브매크로블록(Q)을 각각 입력받는다. 갱신된 서브매크로블록(P')은 바로 다음의 필터링 연산을 위해 제2 전치 버퍼(313)에 그대로 저장하고, 갱신된 서브매크로블록(Q')은 바로 다음의 필터링 연산을 위해 제1 전치 버퍼(312)에 저장된다. 다음 필터링 연산은 수평 경계에 대한 연산이므로, 상기 갱신된 서브매크로블록(Q')은 제1 전치 버퍼(312)에서 전치된다.
도 7b를 참조하면, 상기 디블록킹 필터(30)는 25번 경계(E25)에 대해 필터링 연산을 수행한다. 도 7a의 경우와 거의 유사하나, 다만 직전의 필터링 연산 시에 제2 전치 버퍼(313)에 저장되어 있던 서브매크로블록(L3')이 현재 필터링 연산동안 인접 서브매크로블록 저장부(35)로 전달된다.
도 7c를 참조하면, 상기 디블록킹 필터(30)는 33번, 41번 경계(E33, E41)에 대해 필터링 연산을 수행한다. 도 7a의 경우와 유사하나, 다만 직후의 필터링 연산을 위해 필요한 서브매크로블록들을 미리 레지스터 블록(314)에 저장해둔다.
도 7d를 참조하면, 상기 디블록킹 필터(30)는 37번, 45번 경계(E37, E45)에 대해 필터링 연산을 수행한다. 도 7b의 경우와 유사하며, 다만 직전의 필터링 연산 시에 제2 전치 버퍼(313)에 저장되어 있던 서브매크로블록(L4')이 현재 필터링 연산동안 인접 서브매크로블록 저장부(35)로 전달된다.
도 8a, 8b, 8c 및 8d는 도 3의 디블록킹 필터가 NVF 모드로 동작할 때 픽셀 데이터의 입력 및 출력을 예시한 블록도이다. 도 8a, 8b, 8c 및 8d에서, 굵은 실선은 입력되는 픽셀 데이터의 흐름을 나타내고, 점선은 출력되는 픽셀 데이터의 흐름을 나타낸다.
도 8a를 참조하면, 상기 디블록킹 필터(30)는 2번, 4번, 6번 경계(E2, E4, E6)들에 대해 필터링 연산을 수행한다. 에지 필터(311)는 인접 서브매크로블록 저장부(35)에서 제공받은 서브매크로블록(P) 및 직전 필터링 연산 때 제2 전치 버 퍼(313)에 전치되어 저장된 서브매크로블록(Q)을 각각 입력받는다. 갱신된 서브매크로블록(P')은 필터링 연산이 완료되었으므로 프레임 버퍼(37)로 출력되고, 갱신된 서브매크로블록(Q')은 추후의 필터링 연산을 위해 레지스터 블록(314)에 저장된다.
도 8b를 참조하면, 상기 디블록킹 필터(30)는 10번, 12번, 14번, 18번, 20번, 22번 경계(E10, E12, E14, E18, E20, E22)에 대해 필터링 연산을 수행한다. 도 8a의 경우와 거의 유사하나, 다만 에지 필터(311)는 인접 서브매크로블록 저장부(35) 대신 레지스터 블록(314)에서 제공받은 서브매크로블록(P)을 입력받는다.
도 8c를 참조하면, 상기 디블록킹 필터(30)는 26번, 28번, 30번, 38번, 46번 경계(E26, E28, E30, E38, E46)에 대해 필터링 연산을 수행한다. 도 8b의 경우와 유사하나, 다만 갱신된 서브매크로블록(Q')은 다음 매크로블록의 필터링 연산에 사용되므로 인접 서브매크로블록 저장부(35)에 저장된다.
도 8d를 참조하면, 상기 디블록킹 필터(30)는 34번, 42번 경계(E34, E42)에 대해 필터링 연산을 수행한다. 도 8b의 경우와 거의 유사하며, 다만 직후의 필터링 연산을 위해 필요한 서브매크로블록들을 미리 레지스터 블록(314)에 저장해둔다.
도 9a, 9b, 9c 및 9d는 도 3의 디블록킹 필터가 FVF 모드로 동작할 때 픽셀 데이터의 입력 및 출력을 예시한 블록도이다. 도 9a, 9b, 9c 및 9d에서, 굵은 실선은 입력되는 픽셀 데이터의 흐름을 나타내고, 점선은 출력되는 픽셀 데이터의 흐름을 나타낸다.
도 9a를 참조하면, 상기 디블록킹 필터(30)는 7번 경계(E7)들에 대해 필터링 연산을 수행한다. 에지 필터(311)는 인접 서브매크로블록 저장부(35)에서 제공받은 서브매크로블록(P) 및 직전 필터링 연산 때 제1 전치 버퍼(312)에 전치되어 저장된 서브매크로블록(Q)을 각각 입력받는다. 갱신된 서브매크로블록(P')은 필터링 연산이 완료되었으므로 프레임 버퍼(37)로 출력되고, 갱신된 서브매크로블록(Q')은 추후의 필터링 연산을 위해 레지스터 블록(314)에 저장된다.
도 9b를 참조하면, 상기 디블록킹 필터(30)는 15번, 23번, 35번, 43번 경계(E15, E23, E35, E43)에 대해 필터링 연산을 수행한다. 도 9a의 경우와 유사하나, 다만 갱신된 서브매크로블록(P')은 추후 필터링 연산을 위해 다음 필터링 연산 시에 인접 서브매크로블록 저장부(35)에 저장되기 전에 제2 전치 버퍼(313)에서 전치된다. 또, 직후 필터링 연산에 사용되기 위해 인접 서브매크로블록 저장부(35)에서 제1 전치 버퍼(312)에 입력된다.
도 9c를 참조하면, 상기 디블록킹 필터(30)는 31번, 39번, 47번 경계(E31, E39, E47)에 대해 필터링 연산을 수행한다. 도 9b의 경우와 유사하나, 다만 에지 필터(311)는 인접 서브매크로블록 저장부(35) 대신 레지스터 블록(314)에서 제공받은 서브매크로블록(P)을 입력받는다. 또, 갱신된 서브매크로블록(Q')은 다음 매크로블록의 필터링 연산에 사용되므로 인접 서브매크로블록 저장부(35)에 저장된다.
도 9d를 참조하면, 도 9c와 같이 31번, 39번, 47번 경계(E31, E39, E47)에 대한 경우이다. 도 9c와 다른 점은 필터링 연산이 없다는 것으로, 이미 필터링 연산되어 제2 전치 버퍼(313)에서 전치된 픽셀 데이터들이 제2 전치 버퍼(313)로부터 인접 서브매크로블록 저장부(35)에 백업(backup)된다.
도 6 내지 9에서 설명한 동작들은 매크로블록이 프레임의 가장 자리에 있지 않을 때에 해당하며, 매크로블록들이 프레임의 가장 자리에 있는 경우에 각 부분의 동작들은 매크로블록들의 위치에 따라 수정될 수 있다. 예를 들어, 프레임의 가장 오른쪽 매크로블록들의 경우, 15번째 경계(E15)의 필터링 연산 후에 서브매크로블록(B3''')은 인접 서브매크로블록 저장부(35)에 저장되는 것이 아니라 프레임 버퍼(37)로 전달되어야 한다. 이러한 예외적인 경우에 세부적인 동작들은 본 발명의 상세한 설명을 통해 당업자가 용이하게 파악할 수 있으므로 설명을 생략한다.
실시예에 따라, 도 3의 디블록킹 필터(30)는 한 경계 당 필터링 연산을 각각 4 클록에 완료할 수 있다. 또한, 한 경계의 필터링 연산과 다음 경계의 필터링 연산 사이에 낭비되는 클록이 없다. 통상적으로 한 매크로블록당 48개의 경계가 있기 때문에 필터링 연산에 192 클록이 필요하다. 또, 휘도 성분 및 색차 성분의 마지막 필터링 연산에 해당하는 31번, 39번, 47번 경계의 필터링 연산에서는 도 9d에서 설명한 바와 같이 백업 동작에 모두 12 클록이 필요하다. 맨 처음에 현재 매크로블록 저장부(33) 및 인접 서브매크로블록 저장부(35)로부터 연산부(31)에 픽셀 데이터를 전송하는데 4 클록이 더 필요하다. 따라서, 도 3의 디블록킹 필터(30)는 한 매크로블록당 208(= 192 + 12 + 4) 클록이 필요하다.
실시예에 따라, 도 3의 디블록킹 필터(30) 내의 현재 매크로블록 저장부(33)는 한 매크로블록을 저장하므로 휘도 성분 256 픽셀, 색차 성분 128 픽셀을 저장한다. 한 픽셀에 8 비트라면 현재 매크로블록 저장부(33)는 (256 + 128) * 8 비트 즉 96 * 32 비트의 메모리를 필요로 한다.
인접 서브매크로블록 저장부(35)는 프레임의 크기에 따라 달라지는데, 프레임의 폭을 W라고 했을 때 (2xW + 32) * 32 비트의 메모리를 필요로 한다.
레지스터 블록(314)은 4 개의 4x4 서브매크로블록을 저장할 수 있어야 하므로 총 512(64 픽셀 * 8) 비트의 메모리를 필요로 한다.
위에서 H.264/AVC의 디블록킹 필터를 들어 설명하였지만, 본 발명의 기술 사상은 블록 기반으로 디블록킹 필터링 연산을 수행하는 경우라면 어떤 경우라도 적용될 수 있다.
본 발명의 일 실시예에 따른 디블록킹 필터는 전치 버퍼를 두 개 사용하여 최소한의 클록만으로 필터링 연산을 수행할 수 있고, 필터링 연산 사이에 낭비되는 클록이 없으며, 외부의 메모리에 접근하는 횟수도 최소화 할 수 있다. 또한, 본 발명의 일 실시예에 따른 디블록킹 필터는 내부에 필요한 저장 공간도 줄이고 소비 전력도 줄일 수 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (5)

  1. 디블록킹 필터링 연산을 할 매크로블록을 저장하는 현재 매크로블록 저장부;
    상기 매크로블록에 인접한 서브매크로블록들을 저장하는 인접 서브매크로블록 저장부;
    상기 매크로블록 내의 서브매크로블록들 및 상기 인접한 서브매크로블록들의 경계들에 대해 소정의 연산 순서에 따라 디블록킹 필터링 연산을 수행하는 연산부; 및
    프레임을 재구성할 수 있도록 상기 연산부로부터 디블록킹 필터링 연산이 끝난 서브매크로블록들을 차례로 전달받아 저장하는 프레임 버퍼를 포함하며,
    상기 연산부는
    제1 및 제2 입력 단자에서 각각 한 서브매크로블록을 입력받고, 입력받은 두 서브매크로블록들의 경계에서 에지 필터링 연산을 수행하며, 연산 결과인 제1 및 제2 출력 서브매크로블록들을 출력하는 에지 필터;
    입력되는 서브매크로블록을 그대로 또는 전치(transpose)하여 출력하는 제1 및 제2 전치 버퍼들;
    상기 제2 출력 서브매크로블록을 일시적으로 저장하는 레지스터 블록;
    상기 레지스터 블록, 상기 인접 서브매크로블록 저장부 또는 상기 제1 전치 버퍼에서 출력되는 서브매크로블록들 중 어느 하나를 상기 에지 필터의 제1 입력 단자에 제공하는 제1 멀티플렉서;
    상기 제1 전치 버퍼, 제2 전치버퍼 또는 상기 현재 매크로블록 저장부에서 출력되는 서브매크로블록들 중 어느 하나를 상기 에지 필터의 제2 입력 단자에 제공하는 제2 멀티플렉서;
    상기 인접 서브매크로블록 저장부에서 출력되는 서브매크로블록 또는 제2 출력 서브매크로블록 중 어느 하나를 직후의 디블록킹 필터링 연산을 위해 상기 제1 전치 버퍼에 제공하는 제3 멀티플렉서;
    상기 제1 및 제2 출력 서브매크로블록 중 어느 하나를 직후의 디블록킹 필터링 연산을 위해 상기 제2 전치 버퍼에 제공하는 제4 멀티플렉서;
    상기 제2 전치 버퍼에서 출력되는 서브매크로블록 또는 제2 출력 매크로블록 중 어느 하나를 다음 매크로블록의 디블록킹 필터링 연산을 위해 상기 인접 서브매크로블록 저장부에 제공하는 제5 멀티플렉서; 및
    어느 서브매크로블록에 대해 디블록킹 필터링 연산이 완료된 경우에 상기 제1 출력 서브매크로블록 또는 상기 제2 전치 버퍼에서 출력되는 서브매크로블록 중 어느 하나를 상기 프레임 버퍼에 제공하는 제6 멀티플렉서를 포함하는 것을 특징으로 하는 디블록킹 필터.
  2. 제1항에 있어서, 상기 매크로블록은 4x4 서브매크로블록들로 구성되고, 상기 서브매크로블록들은 4x4 픽셀로 구성되며, 상기 소정의 연산 순서는 상기 매크로블록의 휘도 성분의 각 행마다 좌측 첫 번째 서브매크로블록의 좌측, 우측, 상측 경계, 두 번째 서브매크로블록의 우측, 상측 경계, 세 번째 서브매크로블록의 우측, 상측 경계, 네 번째 서브매크로블록의 상측 경계의 순서가 반복되고, 이어서 색차 성분의 좌측 첫 번째 서브매크로블록의 좌측, 우측, 상측 경계, 두 번째 서브매크로블록의 상측 경계의 순서가 반복되는 것임을 특징으로 하는 디블록킹 필터.
  3. 제2항에 있어서, 상기 레지스터 블록은 현재의 디블록킹 필터링 연산 시 상기 제1 및 제2 전치 버퍼들이 모두 사용 중인 경우, 직후의 디블록킹 필터링 연산에 쓰일 예정인 인접한 서브매크로블록을 미리 입력받아 저장하도록 구성된 것을 특징으로 하는 디블록킹 필터.
  4. 제3항에 있어서, 상기 레지스터 블록은 적어도 네 개의 레지스터, 제1 및 제2 디멀티플렉서, 제7 멀티플렉서를 포함하며, 상기 제1 디멀티플렉서는 상기 인접 서브매크로블록 저장부로부터 입력받은 서브매크로블록을 상기 레지스터들 중 하나에 저장하고, 상기 제2 디멀티플렉서는 상기 제2 출력 서브매크로블록을 상기 레지스터 중 하나에 저장하며, 상기 제7멀티플렉서는 상기 레지스터들 중 어느 하나로부터 출력되는 서브매크로블록을 상기 제1 멀티플렉서에 인가하도록 구성된 것을 특징으로 하는 디블록킹 필터.
  5. 제2항에 있어서, 제1 및 제2 전치 버퍼는 각각 4x4 개의 레지스터들이 매트릭스 구조로 배열된 어레이이며, 각각의 레지스터들은 전치할 경우에는 수직으로 픽셀 데이터를 전달하고, 그대로 출력할 경우에는 수평으로 픽셀 데이터를 전달하도록 구성된 것을 특징으로 하는 디블록킹 필터.
KR1020070014950A 2007-02-13 2007-02-13 저전력 고속 디블록킹 필터 KR100824287B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070014950A KR100824287B1 (ko) 2007-02-13 2007-02-13 저전력 고속 디블록킹 필터

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070014950A KR100824287B1 (ko) 2007-02-13 2007-02-13 저전력 고속 디블록킹 필터

Publications (1)

Publication Number Publication Date
KR100824287B1 true KR100824287B1 (ko) 2008-04-24

Family

ID=39572242

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070014950A KR100824287B1 (ko) 2007-02-13 2007-02-13 저전력 고속 디블록킹 필터

Country Status (1)

Country Link
KR (1) KR100824287B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101119978B1 (ko) 2010-04-13 2012-03-16 인하대학교 산학협력단 디블록킹 필터 및 그 방법
CN109743582A (zh) * 2018-12-29 2019-05-10 龙岩学院 一种基于h.264的去块滤波器硬件架构

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060002549A (ko) * 2004-07-02 2006-01-09 삼성전자주식회사 디블록킹 필터에서의 효과적인 에지 필터링 연산을 위한레지스터 어레이 구조
KR20060060919A (ko) * 2004-12-01 2006-06-07 삼성전자주식회사 H.264/mpeg-4 에서의 블록킹 효과를 제거하기 위한디블록 필터 및 필터링 방법
KR20060084960A (ko) * 2005-01-21 2006-07-26 엘지전자 주식회사 이동형 방송 수신기의 디블로킹 필터 및 필터링 방법
KR20070058839A (ko) * 2005-12-05 2007-06-11 주식회사 텔레칩스 디블록킹 필터

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060002549A (ko) * 2004-07-02 2006-01-09 삼성전자주식회사 디블록킹 필터에서의 효과적인 에지 필터링 연산을 위한레지스터 어레이 구조
KR20060060919A (ko) * 2004-12-01 2006-06-07 삼성전자주식회사 H.264/mpeg-4 에서의 블록킹 효과를 제거하기 위한디블록 필터 및 필터링 방법
KR20060084960A (ko) * 2005-01-21 2006-07-26 엘지전자 주식회사 이동형 방송 수신기의 디블로킹 필터 및 필터링 방법
KR20070058839A (ko) * 2005-12-05 2007-06-11 주식회사 텔레칩스 디블록킹 필터

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101119978B1 (ko) 2010-04-13 2012-03-16 인하대학교 산학협력단 디블록킹 필터 및 그 방법
CN109743582A (zh) * 2018-12-29 2019-05-10 龙岩学院 一种基于h.264的去块滤波器硬件架构
CN109743582B (zh) * 2018-12-29 2020-12-11 龙岩学院 一种基于h.264的去块滤波器硬件架构

Similar Documents

Publication Publication Date Title
US8229001B2 (en) Method and system for calculating flag parameter of image block
AU2006270625B2 (en) Method of encoding and decoding video signals
EP1869636B1 (en) Generating edge masks for a deblocking filter
US20060133504A1 (en) Deblocking filters for performing horizontal and vertical filtering of video data simultaneously and methods of operating the same
KR20060060919A (ko) H.264/mpeg-4 에서의 블록킹 효과를 제거하기 위한디블록 필터 및 필터링 방법
EP4228256A1 (en) Image encoding method, image decoding method, decoder and storage medium for picture coding in mip mode
JP2012502592A (ja) 並列処理を用いた復号システムおよび方法
JP5183664B2 (ja) ビデオ圧縮のためのデブロッキング装置及び方法
KR20080095888A (ko) 인트라 인코딩된 비디오의 병렬 디코딩
US10609417B2 (en) High efficiency adaptive loop filter processing for video coding
TWI290438B (en) A pipelined deblocking filter
JPH11225334A (ja) Mpeg−2画像復号器の分散値算定アクセラレータ
KR20060002549A (ko) 디블록킹 필터에서의 효과적인 에지 필터링 연산을 위한레지스터 어레이 구조
CN104521234B (zh) 合并去区块处理和取样自适应偏移处理的视频处理方法和装置
CN110958451A (zh) 一种视频编码方法及电子设备
KR100824287B1 (ko) 저전력 고속 디블록킹 필터
US8427494B2 (en) Variable-length coding data transfer interface
KR100856551B1 (ko) H.264/avc에서의 디블록 필터 및 필터링 방법
TWI469643B (zh) 視訊壓縮之去區塊效應濾波裝置與方法
KR100359208B1 (ko) 고속 디블럭킹 필터 장치
JP2007258882A (ja) 画像復号装置
KR101331093B1 (ko) 프레임 메모리의 단일뱅크 내 참조 영상의 픽셀 인터리빙 방법 및 장치, 이를 포함하는 영상코덱 시스템
KR102012715B1 (ko) 촬상 장치 및 화상처리 방법
KR100816461B1 (ko) 실시간 디블록킹 필터 및 이를 이용한 디블록킹 방법
TWI520618B (zh) 影像資料處理方法以及影像處理裝置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120404

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee