KR100816461B1 - Real-time deblocking filter and Method using the same - Google Patents

Real-time deblocking filter and Method using the same Download PDF

Info

Publication number
KR100816461B1
KR100816461B1 KR1020060033353A KR20060033353A KR100816461B1 KR 100816461 B1 KR100816461 B1 KR 100816461B1 KR 1020060033353 A KR1020060033353 A KR 1020060033353A KR 20060033353 A KR20060033353 A KR 20060033353A KR 100816461 B1 KR100816461 B1 KR 100816461B1
Authority
KR
South Korea
Prior art keywords
data
input buffer
deblocking
output
buffer
Prior art date
Application number
KR1020060033353A
Other languages
Korean (ko)
Other versions
KR20070101921A (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 KR1020060033353A priority Critical patent/KR100816461B1/en
Publication of KR20070101921A publication Critical patent/KR20070101921A/en
Application granted granted Critical
Publication of KR100816461B1 publication Critical patent/KR100816461B1/en

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/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
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • 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

Landscapes

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

Abstract

본 발명은 디블록킹 필터 및 이를 이용한 디블록킹 방법에 관한것으로서, 더욱 상세하게는 디코딩 시간을 줄일 수 있도록 하드웨어 구조를 변경한 디블록킹 필터 및 이를 이용한 디블록킹 방법에 관한 것이다. 본 발명에 따른 디블록킹 필터는 매크로 블록단위로 부호화된 영상 프레임을 디코딩함에 따라 발생하는 블록킹 효과를 제거하는 장치에 있어서, 외부로부터 입력되는 데이터 또는 블록킹 효과를 제거하는 과정에서 발생되는 데이터를 임시로 저장하는 입력 버퍼; 상기 입력버퍼에서 출력되는 데이터를 디블록킹 알고리즘에 적용하여 매크로 블록의 경계 영역을 필터링하는 에지 필터; 상기 에지 필터를 통해 필터링 처리된 데이터의 행렬 정렬상태를 선택적으로 변환하는 데이터 정렬회로; 상기 데이터 정렬회로로부터 출력되는 데이터를 임시 저장하는 출력 버퍼; 및 상기 출력 버퍼에 임시 저장된 데이터를 조합하여 매크로 블록 단위로 저장하는 데이터 저장수단;을 구비한다.The present invention relates to a deblocking filter and a deblocking method using the same, and more particularly, to a deblocking filter and a deblocking method using a modified hardware structure to reduce decoding time. The deblocking filter according to the present invention is a device for removing a blocking effect generated by decoding an image frame encoded in macroblock units. The deblocking filter temporarily removes data input from an external source or data generated while removing a blocking effect. An input buffer for storing; An edge filter which applies the data output from the input buffer to a deblocking algorithm to filter the boundary region of the macro block; A data alignment circuit for selectively converting a matrix alignment state of the data filtered through the edge filter; An output buffer for temporarily storing data output from the data alignment circuit; And data storage means for storing the data temporarily stored in the output buffer in macroblock units.

디블록킹, 필터, 경계영역, 에지, 파이프라인구조, 실시간 Deblocking, Filter, Boundary Area, Edge, Pipeline Structure, Real Time

Description

실시간 디블록킹 필터 및 이를 이용한 디블록킹 방법{Real-time deblocking filter and Method using the same}Real-time deblocking filter and method using the same

본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술하는 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니된다.The following drawings attached to this specification are illustrative of preferred embodiments of the present invention, and together with the detailed description of the invention to serve to further understand the technical spirit of the present invention, the present invention is a matter described in such drawings It should not be construed as limited to

도 1은 종래기술에 따른 H.264 방식을 이용하는 디코더의 구성을 대락적으로 도시한 블록도이다. 1 is a block diagram schematically showing the configuration of a decoder using the H.264 method according to the prior art.

도 2는 종래기술에 따른 H.264 방식에서 디코딩 및 디블록킹 처리되는 데이터의 타이밍도 이다.2 is a timing diagram of data decoded and deblocked in the H.264 method according to the related art.

도 3은 본 발명의 바람직한 실시예에 따른 영상데이터의 프레임의 구성을 도시하는 도면이다.3 is a diagram showing the configuration of a frame of image data according to a preferred embodiment of the present invention.

도 4는 도 3의 (1,1)블록을 YUV 방식의 4:2:0 포맷으로 도시하는 도면이다.FIG. 4 is a diagram illustrating the (1,1) block of FIG. 3 in a 4: 2: 0 format of the YUV method.

도 5는 본 발명의 바람직한 실시예에 따른 디블록킹 필터의 구성을 대략적으로 도시한 블록도이다.5 is a block diagram schematically illustrating a configuration of a deblocking filter according to a preferred embodiment of the present invention.

도 6은 도 4의 Ⅵ 부분의 파라미터의 배열상태를 도시하는 도면이다.FIG. 6 is a diagram illustrating an arrangement state of parameters of part VI of FIG. 4.

도 7a 내지 도 7f는 데이터 저장수단에 저장되는 데이터의 구조를 순서대로 도시하는 도면이다.7A to 7F are diagrams showing the structure of data stored in the data storage means in order.

도 8은 본 발명의 바람직한 실시예에 따른 H.264 방식에서 디코딩 및 디블록킹 처리되는 데이터의 타이밍도 이다.8 is a timing diagram of data decoded and deblocked in an H.264 scheme according to an embodiment of the present invention.

<도면의 주요 참조부호에 대한 설명><Description of main reference numerals in the drawings>

1...역 변환부 2...모션 보상 처리부1 ... inverse converter 2 ... motion compensation processor

3...디블록킹 필터 4...메모리3 ... deblocking filter 4 ... memory

10...입력버퍼 21,22...선택회로10 ... Input buffer 21, 22 ... Selection circuit

30...에지필터 40...데이터 정렬회로30 ... edge filter 40 ... data alignment circuit

50...출력버퍼 60...DMAC50 ... Output buffer 60 ... DMAC

70...데이터 저장수단70.Data storage means

본 발명은 디블록킹 필터 및 이를 이용한 디블록킹 방법에 관한것으로서, 더욱 상세하게는 디코딩 시간을 줄일 수 있도록 하드웨어 구조를 변경한 디블록킹 필터 및 이를 이용한 디블록킹 방법에 관한 것이다. The present invention relates to a deblocking filter and a deblocking method using the same, and more particularly, to a deblocking filter and a deblocking method using a modified hardware structure to reduce decoding time.

영상이나 음향이 디지털 데이터로 전환될 경우, 이 데이터들의 양은 상당히 크다. 디지털 포맷으로 전환된 영상이나 음향 데이터의 크기를 줄이기 위하여 다양한 방식의 압축기술(예컨대, GIF, JPEG 포맷의 이미지 압축 기술, MPEG, H.263, H.264 영상 압축기술)이 연구 개발되었다.When an image or sound is converted into digital data, the amount of this data is quite large. In order to reduce the size of image or sound data converted to digital format, various compression techniques (eg, GIF, JPEG image compression technology, MPEG, H.263, H.264 video compression technology) have been researched and developed.

압축기술 중에 하나인 H.264 기술은 새로운 비디오 압축 코딩 표준으로 'ISO/IEC 14496 10 어드밴스드 비디오 코딩’이라고도 불리며, 급변하는 무선 환경 및 인터넷 환경 등을 고려하여 오류 강인성 및 네트워크에 친숙한 방식을 고려한 비디오 압축 표준이다.H.264, one of the compression technologies, is a new video compression coding standard, also known as 'ISO / IEC 14496 10 Advanced Video Coding'. Compression standard.

도 1은 종래기술에 따른 H.264 방식을 이용하는 디코더의 구성도이다. 도 1을 참조하면, 종래기술에 따른 디코더는 IDCT(Inverse Discrete Cosine Transform) 방식 등을 통해 영상데이터를 변환하는 역 변환부(1), 블록단위의 움직임을 추정하고 보상하는 모션 보상 처리부(2), 압축에 따라 인접한 블록간에 나타나는 블록 경계 영역을 보상하는 디블록킹 필터(3), 및 디코딩된 영상데이터를 저장하는 메모리(4)를 구비한다.1 is a block diagram of a decoder using the H.264 method according to the prior art. Referring to FIG. 1, a decoder according to the related art includes an inverse transform unit 1 for transforming image data through an inverse discrete cosine transform (IDCT) scheme, a motion compensation processor 2 for estimating and compensating for motion in units of blocks. And a deblocking filter 3 for compensating block boundary regions appearing between adjacent blocks in accordance with compression, and a memory 4 for storing decoded image data.

H.264 방식을 통해 디코딩되는 과정을 살펴보면, 디코딩 처리를 위해 입력된 프레임 단위의 데이터는 우선적으로 역변환 처리된다. 역변환 처리된 데이터는 움직임 보상 결과가 더해져 움직임 보상이 완료된 데이터(이하, 제1데이터)로 재구성된다. 다음으로, 상기 제1데이터는 메모리(4)에 저장되고, 디블록킹 필터(3)는 메모리(4)로부터 상기 제1데이터를 읽어들여(read) 디블록킹 처리를 수행한다. 디블록킹이 완료되면, 디블록킹 필터(3)는 디블록킹이 완료된 데이터(제2데이터)를 다시 메모리(4)에 쓰게된다(write). 상기 과정을 반복하여 복수의 프레임으로 구성된 영상 데이터를 디코딩 처리한다.Looking at the decoding process using the H.264 method, the data of the frame unit input for decoding processing is preferentially inversely transformed. The inverse transformed data is reconstructed into data (hereinafter referred to as first data) in which motion compensation is completed and motion compensation is added. Next, the first data is stored in the memory 4, and the deblocking filter 3 reads the first data from the memory 4 and performs the deblocking process. When the deblocking is completed, the deblocking filter 3 writes the deblocked data (second data) to the memory 4 again. The above process is repeated to decode the image data consisting of a plurality of frames.

전술한 종래의 디코딩 방식은, 하나의 프레임에 대해서 읽고/쓰기를 반복해야 하므로, 디블록킹 처리시 메모리 접근(access)에 대한 대역폭(bandwidth)이 증 가한다. 또한, 하나의 프레임에 대한 디코딩을 완료한 후, 다음 프레임에 대한 디블록킹을 진행해야 한다(도 2참조). 따라서, 영상 데이터의 디코딩 시간이 길어지는 문제가 발생한다. In the above-described conventional decoding method, since a read / write must be repeated for one frame, the bandwidth for the memory access increases during the deblocking process. In addition, after decoding of one frame is completed, deblocking of the next frame should be performed (see FIG. 2). Therefore, a problem arises in that the decoding time of the image data becomes long.

본 발명은 상기와 같은 문제점을 해결하기 위하여 창안된 것으로서, 영상데이터를 메크로 블록 단위로 처리하여, 디코딩에 따른 메모리 접근(access)에 대한 대역폭(bandwidth)과 디코딩 처리시간을 현저하게 줄일 수 있는 디블록킹 필터 및 이를 이용한 디블록킹 방법을 제공하는데 그 목적이 있다. The present invention was devised to solve the above problems, and by processing the image data in units of macro blocks, the bandwidth and decoding processing time for memory access due to decoding can be significantly reduced. It is an object of the present invention to provide a blocking filter and a deblocking method using the same.

상기와 같은 목적을 달성하기 위하여 본 발명의 일 측면에 따른 디블록킹 필터는 매크로 블록단위로 부호화된 영상 프레임을 디코딩함에 따라 발생하는 블록킹 효과를 제거하는 장치에 있어서, 외부로부터 입력되는 데이터 또는 블록킹 효과를 제거하는 과정에서 발생되는 데이터를 임시로 저장하는 입력 버퍼; 상기 입력버퍼에서 출력되는 데이터를 디블록킹 알고리즘에 적용하여 매크로 블록의 경계 영역을 필터링하는 에지 필터; 상기 에지 필터를 통해 필터링 처리된 데이터의 행렬 정렬상태를 선택적으로 변환하는 데이터 정렬회로; 상기 데이터 정렬회로로부터 출력되는 데이터를 임시 저장하는 출력 버퍼; 및 상기 출력 버퍼에 임시 저장된 데이터를 조합하여 매크로 블록 단위로 저장하는 데이터 저장수단;을 구비한다.In order to achieve the above object, a deblocking filter according to an aspect of the present invention is an apparatus for removing a blocking effect generated by decoding an image frame encoded by a macroblock unit, and receives data or a blocking effect from an external source. An input buffer for temporarily storing data generated in the process of removing the data; An edge filter which applies the data output from the input buffer to a deblocking algorithm to filter the boundary region of the macro block; A data alignment circuit for selectively converting a matrix alignment state of the data filtered through the edge filter; An output buffer for temporarily storing data output from the data alignment circuit; And data storage means for storing the data temporarily stored in the output buffer in macroblock units.

상기 입력버퍼는 이미 디블록킹 처리가 완료된 매크로 블록들 중에서 현재 디블록킹 처리중인 매크로 블록과 수직 방향으로 접하는 경계영역 데이터를 임시 저장하는 제1입력버퍼; 현재 디블록킹 처리중인 매크로 블록과 수평 방향으로 접하는 경계영역 데이터를 임시 저장하는 제2입력버퍼; 에지 필터가 상기 메크로 블록단위의 데이터를 복수의 서브블록으로 구성된 열 단위 또는 행 단위로 디블록킹 처리함에 따라 발생하는 데이터를 임시 저장하는 제3입력버퍼; 디블록킹 처리시 수직 방향의 디블록킹 처리가 완료된 데이터를 임시 저장하는 제4입력버퍼; 및 현재 디블록킹 처리중인 매크로 블록의 원본 데이터를 임시 저장하는 제5입력버퍼;를 포함한다.The input buffer may include: a first input buffer configured to temporarily store boundary area data in a vertical direction among macroblocks that have already been deblocked and which are currently deblocked; A second input buffer configured to temporarily store boundary area data in a horizontal direction in contact with a macroblock currently being deblocked; A third input buffer configured to temporarily store data generated when an edge filter deblocks the data of the macroblock unit into a column unit or a row unit composed of a plurality of subblocks; A fourth input buffer which temporarily stores data in which the deblocking process of the vertical direction is completed during the deblocking process; And a fifth input buffer for temporarily storing original data of the macroblock currently being deblocked.

상기 입력버퍼에 저장되는 데이터는 YUV(휘도, 색상) 방식으로 저장되는 것이 바람직하다.Data stored in the input buffer is preferably stored in the YUV (luminance, color) method.

상기 입력 버퍼에서 출력되는 데이터를 정해진 규칙에 따라 선택적으로 상기 에지 필터로 전송하는 선택회로를 더 구비할 수 있다It may further include a selection circuit for selectively transmitting the data output from the input buffer to the edge filter in accordance with a predetermined rule.

상기 선택회로는 상기 제1입력버퍼, 제2입력버퍼, 및 제3입력버퍼로부터 출력되는 데이터를 입력받는 제 1 선택회로; 및 상기 제4입력버퍼 및 제5입력버퍼로부터 출력되는 데이터를 입력받는 제 2 선택회로;를 포함할 수 있다.The selection circuit may include a first selection circuit which receives data output from the first input buffer, the second input buffer, and the third input buffer; And a second selection circuit which receives data output from the fourth input buffer and the fifth input buffer.

상기 출력 버퍼에 저장된 데이터는 데이터 직접 접근 제어기(DMAC; Direct Memory Access Controller)를 통해 상기 데이터 저장수단에 저장되는 것이 바람직하다.The data stored in the output buffer is preferably stored in the data storage means through a direct memory access controller (DMAC).

본 발명의 다른 측면에 따른 디블록킹 필터링 방법은 매크로 블록 단위로 부호화된 영상 프레임을 디코딩함에 따라 발생하는 블록킹 효과를 제거하는 방법에 있어서, (1)외부로부터 입력되는 소정 영역의 데이터 및 블록킹 효과를 제거하는 과정에서 발생되는 소정 영역의 데이터를 복수의 입력 버퍼에 임시 저장하는 단계; (2)복수의 상기 입력버퍼에서 출력되는 데이터를 이용하여 수직방향 및 수평방향에 대한 경계영역을 필터링 처리하는 단계; (3)상기 제 (2)단계를 통해 필터링 처리된 데이터의 행렬 정렬상태를 선택적으로 변환하는 단계; (4)상기 제 (3)단계에서 발생되는 데이터를 출력 버퍼에 임시 저장하는 단계; 및 (5)상기 출력버퍼에서 출력되는 데이터를 매크로 블록 단위로 조합하여 데이터 저장수단에 저장하는 단계;를 구비한다.A deblocking filtering method according to another aspect of the present invention is a method for removing a blocking effect generated by decoding an image frame encoded in macroblock units, the method comprising: (1) removing data and blocking effects of a predetermined region input from an outside; Temporarily storing data of a predetermined region generated in the removing process in a plurality of input buffers; (2) filtering the boundary regions in the vertical direction and the horizontal direction using data output from the plurality of input buffers; (3) selectively converting the matrix alignment of the filtered data through step (2); (4) temporarily storing data generated in the step (3) in an output buffer; And (5) combining the data output from the output buffer in units of macro blocks and storing the data in the data storage means.

복수의 상기 입력 버퍼는 제1입력버퍼, 제2입력버퍼, 제3입력버퍼, 제4입력버퍼, 및 제5입력버퍼를 포함하며, 상기 제 (2)단계는 이미 디블록킹 처리가 완료된 매크로 블록들 중에서 현재 디블록킹 처리중인 매크로 블록과 수직 방향으로 접하는 경계영역 데이터를 제1입력버퍼, 현재 디블록킹 처리중인 매크로 블록과 수평 방향으로 접하는 경계영역 데이터를 제2입력버퍼, 디블록킹 처리시 발생하는 데이터를 임시 저장하는 제3입력버퍼, 디블록킹 처리시 수직 방향의 디블록킹 처리가 완료된 데이터를 제4입력버퍼, 디블록킹 처리중인 매크로 블록의 원본 데이터를 제5입력버퍼에 저장한다.The plurality of input buffers include a first input buffer, a second input buffer, a third input buffer, a fourth input buffer, and a fifth input buffer, wherein the step (2) includes a macroblock in which the deblocking process is already completed. Among the first input buffer, the boundary area data in contact with the macroblock currently being deblocked in the vertical direction and the border area data in contact with the macroblock currently being deblocked in the horizontal direction are generated during the second input buffer and the deblocking process. A third input buffer for temporarily storing data and data for which deblocking processing in the vertical direction is completed in the deblocking process are stored in the fourth input buffer and original data of the macroblock being deblocked in the fifth input buffer.

상기 제5입력버퍼에 저장되는 데이터는 YUV(휘도, 색상) 방식으로 저장될 수 있다.Data stored in the fifth input buffer may be stored in a YUV (luminance, color) method.

바람직하게, 상기 입력 버퍼에서 출력되는 다중 데이터를 정해진 규칙에 따라 순차적으로 선택 및 전송하는 단계를 더 구비할 수 있다.Preferably, the method may further include sequentially selecting and transmitting the multiple data output from the input buffer according to a predetermined rule.

상기 출력 버퍼에 저장된 데이터는 데이터 직접 접근방법(DMA; Direct Memory Access)을 통해 상기 데이터 저장수단에 저장되는 것이 바람직하다.The data stored in the output buffer is preferably stored in the data storage means through a direct memory access method (DMA).

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Prior to this, terms or words used in the specification and claims should not be construed as having a conventional or dictionary meaning, and the inventors should properly explain the concept of terms in order to best explain their own invention. Based on the principle that can be defined, it should be interpreted as meaning and concept corresponding to the technical idea of the present invention. Therefore, the embodiments described in the specification and the drawings shown in the drawings are only the most preferred embodiment of the present invention and do not represent all of the technical idea of the present invention, various modifications that can be replaced at the time of the present application It should be understood that there may be equivalents and variations.

도 3은 본 발명의 바람직한 실시예에 따른 영상데이터의 프레임의 구성을 도시하는 도면이고, 도 4는 도 3의 (1,1)블록을 YUV 방식으로 도시하는 도면이다. 도 3 또는 도 4를 참조하면, 영상데이터는 복수의 프레임으로 이루어지는데, 이때 각각의 프레임은 고정된 크기로 구성된 복수의 매크로 블록으로 정의된다. 즉, 하나의 프레임은 n×m개의 매크로 블록의 조합으로 이루어진다. 3 is a diagram showing the configuration of a frame of image data according to a preferred embodiment of the present invention, and FIG. 4 is a diagram showing the (1,1) block of FIG. Referring to FIG. 3 or 4, the image data is composed of a plurality of frames, wherein each frame is defined as a plurality of macro blocks having a fixed size. That is, one frame consists of a combination of n x m macroblocks.

본 실시예에서 영상데이터의 프레임은 우선적으로 좌측 블록부터 우측 블록((0,0), (1,0), (2,0), ...(n,0))의 순서로 한 행의 디블록킹이 진행된다. 다음으로, 디블록킹이 완료된 행의 하부 행을 이루는 블록들((0,1), (1,1), (2,1),...(n,1))의 디블록킹이 진행된다. 상기와 같은 과정의 반복을 통해 영상 데이터 프레임의 디블록킹이 완료된다.In this embodiment, the frame of image data is preferentially arranged in a row from the left block to the right block ((0,0), (1,0), (2,0), ... (n, 0)) in order. Deblocking is performed. Next, deblocking of blocks ((0, 1), (1, 1), (2, 1), ... (n, 1)) constituting the lower row of the deblocking row is performed. The deblocking of the image data frame is completed by repeating the above process.

또한, 본 실시예에서 각각의 매크로 블록은 YUV 방식의 4:2:0 포맷으로 샘플링된다. 상기 YUV 방식의 4:2:0 포맷으로 샘플링된 매크로 블록은 휘도 성분(Y), 적색 색채성분(U), 및 청색 색채성분(V)의 순서로 디블록킹이 진행된다. 그리고, 각각의 성분은 열 방향의 경계영역에 대한 디블록킹이 우선적으로 진행된 후, 행 방향의 경계영역에 대한 디블록킹이 진행된다. 또한, 디블록킹의 처리는 서브 블록(sub-block; 4×4 픽셀, 도 4에서 굵은 실선으로 둘러싸인 각 영역)을 기본단위로 이루어진다. 예컨대, 휘도 성분(Y) 디블록킹의 경우, 열 방향에 대한 최 좌측 a영역부터 b, c, d영역의 순서로 진행된다. 다음으로, 행 방향에 대한 최상위 서브 블록들의 경계영역인 e영역부터 f, g, h영역의 디블록킹이 진행된다.Also, in the present embodiment, each macro block is sampled in the 4: 2: 0 format of the YUV method. The macroblock sampled in the 4: 2: 0 format of the YUV method is subjected to deblocking in the order of the luminance component (Y), the red color component (U), and the blue color component (V). Each component is first deblocked for the boundary region in the column direction, and then deblocking for the boundary region in the row direction is performed. In addition, the deblocking process is performed based on a sub-block (4 × 4 pixels, each region enclosed by a thick solid line in FIG. 4) as a basic unit. For example, in the case of the deblocking of the luminance component (Y), the order proceeds from the leftmost a region to the column direction in the order of b, c, d regions. Next, deblocking of regions f, g, and h starts from region e, which is a boundary region of the uppermost subblocks in the row direction.

비록 본 발명의 실시예에서, 매크로 블록을 YUV 방식의 4:2:0 포맷으로 샘플링하는 것을 예시하였으나, 본 발명이 이를 한정하는 것은 아니며, 예컨대, RGB 방식으로 샘플링할 수도 있다. 또한, 샘플링 포맷도 4:4:2, 4:4:4 포맷으로 다양하게 변형할 수 있다.Although in the embodiment of the present invention, the macro block is sampled in the 4: 2: 0 format of the YUV method, the present invention is not limited thereto, and for example, may be sampled in the RGB method. In addition, the sampling format can be variously modified to 4: 4: 2 and 4: 4: 4 formats.

도 5는 본 발명의 바람직한 실시예에 따른 디블록킹 필터의 구성을 도시하는 블록도이다. 도 5를 참조하면, 본 발명의 실시예에 따른 디블록킹 필터는 복수의 입력버퍼(10), 상기 입력버퍼(10)로부터 출력되는 데이터를 이용하여 블록 경계 영역을 필터링하는 에지 필터(30), 상기 에지 필터(30)로부터 출력되는 데이터의 포맷을 정렬하는 데이터 정렬회로(40), 데이터 정렬회로(40)로부터 출력되는 데이터를 임시 저장하는 출력버퍼(50), 및 상기 출력버퍼(50)에 임시 저장된 데이터를 조합하여 저장하는 데이터 저장수단(70)을 포함한다.5 is a block diagram showing the configuration of a deblocking filter according to a preferred embodiment of the present invention. 5, a deblocking filter according to an embodiment of the present invention includes a plurality of input buffers 10, an edge filter 30 for filtering a block boundary region using data output from the input buffer 10, In the data alignment circuit 40 for arranging the format of the data output from the edge filter 30, the output buffer 50 for temporarily storing the data output from the data alignment circuit 40, and the output buffer 50. And a data storage means 70 for combining and storing the temporarily stored data.

입력버퍼(10)는 제1입력버퍼(11), 제2입력버퍼(12), 제3입력버퍼(13), 제4입력버퍼(14), 및 제5입력버퍼(15)를 포함한다. The input buffer 10 includes a first input buffer 11, a second input buffer 12, a third input buffer 13, a fourth input buffer 14, and a fifth input buffer 15.

제1입력버퍼(11)는 디블록킹이 진행되는 방향의 역방향에 위치하는 일 측면의 블록 경계영역, 예컨대 디블록킹 처리중인 매크로 블록(도 3의 (1,1))의 상하좌우 4면과 직접적으로 접하는 4개의 주변블록들 중 상부에 위치한 블록과의 경계영역(가) 데이터를 임시 저장한다.The first input buffer 11 is directly in contact with the block boundary region on one side located in the reverse direction of the deblocking direction, for example, the top, bottom, left, right, and four sides of the macroblock ((1, 1) in FIG. 3) being deblocked. Among the four neighboring blocks adjacent to each other, the boundary area with the block located above is temporarily stored.

제2입력버퍼(12)는 상기 일 측면에 위치한 블록과 서로 대향되지 않고, 디블록킹이 진행되는 방향의 역방향에 위치하는 측면의 블록 경계영역, 예컨대, 디블록킹 처리중인 매크로 블록(도 3의 (1,1))의 좌측면에 위치하는 블록과의 경계영역(나) 데이터를 임시 저장한다.The second input buffer 12 is not opposite to the block located on the one side, and the block boundary area of the side located in the reverse direction of the deblocking direction, for example, the macroblock in the deblocking process (see FIG. 1 and 1) temporarily store the boundary area (b) data with the block located on the left side.

제3입력버퍼(13)는 복수의 서브 블록으로 분할된 각각의 매크로 블록의 경계값을 처리하는 과정에서 발생하는 데이터, 예컨대 휘도 성분(Y)의 서브 블록에 대한 a영역부터 b, c, d, e, f, g, h영역까지 필터링이 순차적으로 진행되는 과정에서 발생하는 데이터를 임시 저장한다.The third input buffer 13 generates data generated in the process of processing the boundary values of the respective macroblocks divided into a plurality of subblocks, for example, from a region to a subblock of the luminance component Y, b, c, and d. Temporarily stores data generated in the process of filtering sequentially up to regions e, f, g, and h.

제4입력버퍼(14)는 현재 디블록킹 처리가 진행되고 있는 매크로 블록의 열 방향에 대한 필터링이 완료된 데이터, 예컨대 a영역부터 b, c, d영역까지 필터링이 완료된 데이터를 입력받아 임시 저장한다. The fourth input buffer 14 receives and temporarily stores the filtered data in the column direction of the macroblock currently undergoing the deblocking process, for example, the filtered data from the a region to the b, c, and d regions.

제5입력버퍼(15)는 현재 디블록킹 처리가 진행되고 있는 매크로 블록의 원본데이터를 YUV방식의 4:2:0포맷으로 저장한다.The fifth input buffer 15 stores the original data of the macroblock currently undergoing the deblocking process in the 4: 2: 0 format of the YUV method.

바람직하게, 입력버퍼(10)의 후단에는 선택회로(21, 22)가 더 구비될 수 있 다. 선택회로(21, 22)는 복수의 입력버퍼들(11, 12, 13, 14, 15)로부터 데이터를 입력받고, 외부로부터 인가되는 제어신호에 의해 디블록킹에 요구되는 데이터를 선택적으로 에지 필터(30)에 전송한다.Preferably, the selection circuits 21 and 22 may be further provided at the rear end of the input buffer 10. The selection circuits 21 and 22 receive data from the plurality of input buffers 11, 12, 13, 14, and 15, and selectively select the data required for deblocking by a control signal applied from the outside. To 30).

본 발명의 실시예에서는 선택회로로서, 두 개의 멀티플렉서(21, 22)를 채택하였다. 그리고, 제1멀티플렉서(21)에 제1입력버퍼(11), 제2입력버퍼(12), 및 제3입력버퍼(13)의 출력단을 연결하고, 제2멀티플렉서(22)에 제4입력버퍼(14), 및 제5입력버퍼(15)의 출력단을 연결한다. In the embodiment of the present invention, two multiplexers 21 and 22 are adopted as the selection circuit. Then, the output terminals of the first input buffer 11, the second input buffer 12, and the third input buffer 13 are connected to the first multiplexer 21, and the fourth input buffer is connected to the second multiplexer 22. 14, and the output terminal of the fifth input buffer (15).

비록 본 발명의 실시예에서, 선택회로로서 두 개의 멀티플렉서(21, 22)를 구비하는 회로를 구현하였으나, 본 발명이 이를 한정하는 것은 아니며, 선택회로는 디블록킹에 필요한 데이터를 선택적으로 에지필터(30)에 전송할 수 있는 회로이면 충분하다.Although the embodiment of the present invention implements a circuit having two multiplexers 21 and 22 as the selection circuit, the present invention is not limited thereto, and the selection circuit selectively selects data necessary for deblocking an edge filter ( A circuit capable of transmitting to 30 is sufficient.

에지 필터(30)는 상기 입력버퍼(10)로부터 입력되는 데이터를 이용하여 블록 경계 영역을 디블록킹 처리한다. 구체적으로, 상기 데이터의 파라미터값을 참조하여 상기 데이터가 에지 영역에 위치함을 판별하고, 에지 영역에 위치하는 픽셀을 선택적으로 스무딩(smoothing) 처리한다. 또한, 에지 필터(30)는 필터링 처리한 데이터를 제3입력버퍼(13)와 데이터 정렬회로(40)로 전송한다. The edge filter 30 deblocks the block boundary region using the data input from the input buffer 10. Specifically, it is determined that the data is located in the edge region with reference to the parameter value of the data, and selectively smoothes the pixels located in the edge region. In addition, the edge filter 30 transmits the filtered data to the third input buffer 13 and the data alignment circuit 40.

데이터 정렬회로(40)는 에지 필터(30)로부터 출력되는 데이터의 행렬(matrix) 정렬 상태를 행 단위에서 열 단위로 또는 열 단위에서 행 단위로 변환시킨다(도 6참조).The data alignment circuit 40 converts the matrix alignment state of the data output from the edge filter 30 from row to column or from column to row (see FIG. 6).

부가적으로, 데이터 정렬회로(40)는 특정 영역의 데이터(예컨대, 도 4의 (a) 영역 데이터 및 (e)영역 데이터)에 대하여 선택적으로 정렬상태를 변환하지 않는다.In addition, the data alignment circuit 40 does not selectively convert the alignment state with respect to the data of a specific area (e.g., (a) area data and (e) area data of FIG. 4).

출력버퍼(50)는 현재 필터링 처리중인 매크로 블록의 필터링이 완료된 데이터를 데이터 정렬회로(40)로부터 입력받아 임시 저장한다. The output buffer 50 temporarily receives the filtered data of the macroblock currently being filtered from the data alignment circuit 40.

데이터 저장수단(70)은 출력버퍼(50)에 임시 저장되는 블록단위의 데이터를 입력받아 순차적으로 조합하여 프레임 단위로 저장한다.The data storage unit 70 receives data in block units temporarily stored in the output buffer 50 and sequentially stores the data in frame units.

바람직하게, 본 발명의 디블록킹 필터는 출력버퍼(50)로부터 출력되는 데이터를 데이터 저장수단(70)으로 저장하고, 데이터 저장수단(70)에 저장된 데이터를 읽어들여 제1입력버퍼(11)에 임시 저장시키는 DMAC(60)를 더 구비할 수 있다.Preferably, the deblocking filter of the present invention stores the data output from the output buffer 50 to the data storage means 70, reads the data stored in the data storage means 70 to the first input buffer (11) DMAC 60 may be further provided for temporary storage.

이하, 도 7(a) 내지 도 7(f)을 참조하여 데이터 저장수단(70)에 저장되는 데이터의 구조를 살펴본다. 도면에서, S1은 디블록킹 처리되지 않은 매크로 블록, S2는 현재 디블록킹 처리 중인 매크로 블록, 및 S3은 이미 디블록킹 처리되어 저장 완료된 매크로 블록을 의미한다. Hereinafter, a structure of data stored in the data storage means 70 will be described with reference to FIGS. 7A to 7F. In the figure, S 1 represents a macroblock that is not deblocked, S 2 represents a macroblock that is currently deblocking, and S 3 represents a macroblock that has already been deblocked and stored.

우선, (0,0)블록부터 (4,0)블록까지 행 방향의 디블록킹이 진행됨에 따라, (0,0)블록부터 (4,0)블록까지의 데이터가 순차적으로 저장된다. 이때, (0,0)블록의 우측 경계영역은 디블록킹 처리가 되지 않으므로, 최 우측 4개의 서브블록은 저장하지 않는다. 그리고, (1,0)블록의 디블록킹이 진행됨에 따라 (0,0)블록이 (1,0)블록과 접하는 경계영역은 업데이트 되고(도 7b), (1,0)블록의 데이터가 저장된다.First, as the deblocking in the row direction proceeds from the (0,0) block to the (4,0) block, data from the (0,0) block to the (4,0) block is sequentially stored. At this time, since the right boundary of the (0,0) block is not deblocked, the four rightmost subblocks are not stored. As the deblocking of the (1,0) block proceeds, the boundary area where the (0,0) block contacts the (1,0) block is updated (Fig. 7B), and the data of the (1,0) block is stored. do.

상기와 같은 과정((1,0)블록의 디블록킹 과정)의 반복으로 (3,0)블록까지 디 블록킹이 진행되어 데이터가 저장된다. 그리고, 최 우측의 매크로 블록(4,0)은 우측의 경계영역에 접하는 매크로 블록이 존재하지 않으므로, 우측영역에 대한 디블록킹 과정이 필요하지 않다. 따라서, 최 우측의 매크로 블록은 우측의 경계영역의 디블록킹을 진행하지 않은 상태 그대로 저장된다(도 7c).By repetition of the above process (deblocking process of (1,0) block), deblocking is performed to block (3,0) and data is stored. In the rightmost macro block (4,0), since there is no macro block in contact with the right boundary area, the deblocking process for the right area is not necessary. Therefore, the rightmost macro block is stored as it is without deblocking the right boundary area (FIG. 7C).

다음으로, 다음 행인 (0,1)블록부터 (4,1)블록까지의 디블록킹이 진행되고, 이에 따라 (0,1)블록부터 (4,1)블록까지의 데이터가 데이터 저장수단(70)에 순차적으로 저장된다. Next, deblocking is performed from the next row (0,1) block to the (4,1) block, so that data from the (0,1) block to the (4,1) block is stored in the data storage means 70. Are stored sequentially.

이때, (0,0)블록부터 (4,0)블록에서와 마찬가지로, (0,1)블록의 우측 경계영역은 디블록킹 처리가 되지 않으므로, 최 우측 4개의 서브블록은 저장하지 않는다(도 7d). 또한, (1,1)블록의 디블록킹이 진행됨에 따라 (1,1)블록이 (1,0)블록과 접하는 경계영역이 업데이트 된다(도 7e). 상기와 같은 과정((1,1)블록의 디블록킹 과정)의 반복으로 (3,1)까지의 디블록킹이 진행되고, 최 우측 (4,1)블록까지 저장된다(도 7f). 결국, 상기와 같은 매크로 블록 단위의 디블록킹 반복을 통해 영상 프레임의 디블록킹이 진행되고, 데이터 저장수단(70)에 저장 완료된다.At this time, as in the blocks (0,0) to (4,0), the right boundary of the block (0,1) is not deblocked, and thus the four rightmost subblocks are not stored (Fig. 7D). ). Also, as the deblocking of the (1,1) block proceeds, the boundary region where the (1,1) block contacts the (1,0) block is updated (FIG. 7E). By repetition of the above process (deblocking process of (1,1) block), deblocking up to (3,1) proceeds and is stored up to the rightmost (4,1) block (FIG. 7F). As a result, the deblocking of the image frame proceeds through the deblocking repetition of the macroblock unit as described above, and the storage is completed in the data storage means 70.

이하, 전술한 구성요소를 참조하여 본 발명의 실시예에 따른 디블록킹 필터의 동작을 설명함으로써, 본 발명의 실시예에 따른 디블록킹 방법을 설명한다.Hereinafter, the deblocking method according to an embodiment of the present invention will be described by explaining the operation of the deblocking filter according to the embodiment of the present invention with reference to the above-described components.

복수의 매크로 블록들의 조합으로 이루어진 프레임은 우선적으로 최 상부의 좌측에 위치한 (0,0)블록부터 행 방향으로 (1,0), (2,0), ...(n,0)블록까지의 디블록킹을 진행한다. 다음으로, 디블록킹이 완료된 행의 하부 행을 이루는 (0,1), (1,1), (2,1),...(n,1)블록의 디블록킹을 진행한다. 상기와 같은 과정의 반복을 통 해 영상 데이터 프레임의 디블록킹을 완료한다. 디블록킹이 진행되는 과정에서 경계영역의 필터링이 완료된 데이터는 매크로 블록 단위로 데이터 저장수단(70)에 저장된다.Frames consisting of a combination of a plurality of macro blocks are preferentially arranged from the top left (0,0) block to the (1,0), (2,0), ... (n, 0) blocks in the row direction. Proceed with deblocking. Next, deblocking of (0,1), (1,1), (2,1), ... (n, 1) blocks forming the lower row of the deblocking row is performed. The deblocking of the image data frame is completed by repeating the above process. In the process of deblocking, the filtered data of the boundary area is stored in the data storage means 70 in units of macro blocks.

(1,1)블록을 예시하여 디블록킹 과정을 구체적으로 설명한다. 우선, 이전 단계에서 처리된 블록(예컨대, (0,1)블록)의 디블록킹 처리 과정에서 최 우측 4개의 서브블록에 대한 데이터가 제2입력버퍼(12)에 임시 저장된다. 또한, 이미 처리된 블록 중에서 현재 처리되는 블록(1,1)의 상부에 위치하는 블록((1,0)블록)의 최 하부 4개의 서브블록에 대한 데이터는 데이터 저장수단(70)으로부터 읽어들여 제1입력버퍼(11)에 임시 저장된다. 그리고, 제5입력버퍼(15)에는 (1,1)블록에 대한 원본 데이터가 YUV 방식으로 임시 저장된다.The deblocking process will be described in detail by exemplifying the (1,1) block. First, data for the rightmost four subblocks are temporarily stored in the second input buffer 12 in the deblocking process of the block processed in the previous step (eg, (0,1) block). In addition, the data of the lowest four subblocks of the block ((1,0)) located above the block (1,1) currently processed among the already processed blocks is read from the data storage means 70. It is temporarily stored in the first input buffer 11. In the fifth input buffer 15, original data for the (1, 1) block is temporarily stored in the YUV method.

에지필터(30)는 제2입력버퍼(12) 및 제5입력버퍼(15)에 임시 저장된 데이터를 이용하여 (a)경계영역에 대한 디블록킹을 수행하고, (a)영역에 대한 디블록킹이 완료된 데이터(예컨대, (0,1)블록의 최 우측 4개의 서브블록, (1,1)블록의 최 좌측 4개의 서브블록)를 출력버퍼(50)와 제3입력버퍼(13)에 각각 임시 저장한다. 에지필터(30)는 (a)영역에 대한 경계영역 디블록킹이 완료되면, 제3입력버퍼(13) 및 제5입력버퍼(15)에 임시 저장된 데이터를 이용하여 (b)영역에 대한 경계영역 디블록킹을 진행한다. 그리고, 에지필터(30)는 (b)영역에 대한 경계영역 디블록킹이 완료되면, 예컨대, (1,1)블록의 최 좌측 4개의 서브블록은 데이터 정렬회로(40)를 통해 데이터의 정렬상태를 변환하여(도 6참조) 제4입력버퍼(14)에 임시 저장시키고, (1,1)블록의 좌측에서 두 번째 4개의 서브블록은 제3입력버퍼(13)에 임시 저장한 다. 에지필터(30)는 상기와 같은 방법으로 (c), (d)영역에 대한 디블록킹을 순차적으로 진행한다. (d)영역까지의 디블록킹, 즉 세로 경계영역에 대한 디블록킹이 완료되면, 데이터 정렬회로(40)를 통해 정렬상태가 변환된 데이터가 제4입력버퍼(14)에 임시저장된다. 데이터 정렬회로(40)는 세로 경계영역에 대한 디블록킹이 완료된 데이터 중에서 최 우측 4개의 서브블록을 제2입력버퍼(12)에 임시 저장한다.The edge filter 30 deblocks the boundary area (a) using data temporarily stored in the second input buffer 12 and the fifth input buffer 15, and deblocking of the area (a) is performed. Completed data (eg, the rightmost four subblocks of the (0,1) block and the leftmost four subblocks of the (1,1) block) are temporarily stored in the output buffer 50 and the third input buffer 13, respectively. Save it. When the deblocking of the boundary region for region (a) is completed, the edge filter 30 uses the data temporarily stored in the third input buffer 13 and the fifth input buffer 15, and then the boundary region for the region (b). Proceed with deblocking. In addition, when the edge region 30 deblocking for the region (b) is completed, for example, the leftmost four subblocks of the (1,1) block are arranged in the data through the data alignment circuit 40. 6 is temporarily stored in the fourth input buffer 14, and the second four sub blocks from the left of the (1, 1) block are temporarily stored in the third input buffer 13. The edge filter 30 sequentially deblocks the regions (c) and (d) in the same manner as described above. When the deblocking up to the area (d), that is, the deblocking on the vertical boundary area is completed, the data whose alignment has been converted by the data alignment circuit 40 is temporarily stored in the fourth input buffer 14. The data alignment circuit 40 temporarily stores the rightmost four subblocks in the second input buffer 12 among the deblocked data for the vertical boundary region.

다음으로, 에지필터(30)는 제1입력버퍼(11) 및 제4입력버퍼(14)에 임시 저장된 데이터를 이용하여 (e)영역에 대한 경계영역 디블록킹을 진행하고, (e)영역에 대한 경계영역 디블록킹이 완료된 데이터(예컨대,(1,0)블록의 최 하부 4개의 서브블록, (1,1)블록의 최 상부 4개의 서브블록)를 출력버퍼(50)와 제3입력버퍼(13)에 각각 임시 저장한다. 에지필터(30)는 (e)영역에 대한 경계영역 디블록킹이 완료되면, 제3입력버퍼(13) 및 제4입력버퍼(14)에 임시 저장된 데이터를 이용하여 (f)영역에 대한 경계영역 디블록킹을 진행한다. 그리고, (f)영역에 대한 경계영역 디블록킹이 완료되면, 예컨대 (1,1)블록의 최 상부 4개의 서브블록은 데이터 정렬회로(40)를 통해 데이터의 정렬상태가 변환되어 출력버퍼(50)에 임시 저장된다. 또한, (1,1)블록의 상부에서 두번째 4개의 서브블록은 제3입력버퍼(13)에 임시 저장된다. (f)영역에 대한 경계영역 디블록킹을 진행하는 방법과 같은 방법으로, (g), (h)영역에 대한 경계영역 디블록킹을 순차적으로 진행한다. (h)영역까지의 필터링(즉, 휘도값에 대한 경계영역 디블록킹)이 완료되면, (h)영역까지의 디블록킹이 완료된 데이터는 출력버퍼(50)로 전송된다.Next, the edge filter 30 proceeds to deblock the boundary region for region (e) using data temporarily stored in the first input buffer 11 and the fourth input buffer 14, The output buffer 50 and the third input buffer of the data (for example, the bottom four subblocks of the (1,0) block and the top four subblocks of the (1,1) block) for which the boundary area deblocking has been completed Each of them is temporarily stored in (13). When the deblocking of the boundary region for the region (e) is completed, the edge filter 30 uses the data temporarily stored in the third input buffer 13 and the fourth input buffer 14 to define the boundary region for the region (f). Proceed with deblocking. When the deblocking of the boundary region for the region (f) is completed, for example, the top four subblocks of the (1,1) block are converted into data through the data alignment circuit 40, and the output buffer 50 is changed. Is stored temporarily). Also, the second four subblocks at the top of the (1,1) block are temporarily stored in the third input buffer 13. In the same manner as the boundary area deblocking for the region (f), the boundary area deblocking for the regions (g) and (h) is sequentially performed. When filtering to area (h) (that is, boundary area deblocking for luminance values) is completed, the deblocking data to area (h) is transmitted to the output buffer 50.

그 후, 에지필터(30)는 제3입력버퍼(13)에 임시 저장된 데이터 및 제4입력버 퍼(14)에 임시 저장된 데이터를 이용하여 (i)~(p)영역에 대한 경계영역 디블록킹을 처리한다.Thereafter, the edge filter 30 deblocks the boundary area for the areas (i) to (p) by using the data temporarily stored in the third input buffer 13 and the data temporarily stored in the fourth input buffer 14. To deal with.

마지막으로, DMAC(60)는 출력버퍼(50)에 저장된 데이터(예컨대, 현재 처리중인 (1,1)블록의 경계영역 디블록킹이 완료된 데이터)를 데이터 저장수단(70)으로 저장한다.Finally, the DMAC 60 stores the data stored in the output buffer 50 (for example, data for which the deblocking of the boundary area of the (1,1) block currently being processed) is completed as the data storage means 70.

또한, DMAC(60)는 다음으로 디블록킹 처리되는 (2,1)블록의 상부에 위치하는 (2,0)블록의 최 하부 4개의 서브블록(SB, SB, SB, 및 SB)에 대한 데이터를 데이터 저장수단(70)으로부터 읽어들여 제1입력버퍼(11)에 임시 저장한다. 그 후, 상기 과정을 반복하여 복수의 매크로 블록에 대한 디블록킹을 처리한다.In addition, the DMAC 60 stores data for the bottom four subblocks SB, SB, SB, and SB of the (2,0) block located next to the (2,1) block which is then deblocked. The data is read from the data storage means 70 and temporarily stored in the first input buffer 11. Thereafter, the above process is repeated to deblock the plurality of macroblocks.

본 발명의 바람직한 실시예에 따른 디블록킹 방법에 의해 데이터를 매크로 블록단위로 디블록킹 처리하여 순차적으로 저장함으로써, 디코딩에 따른 메모리 접근(access)에 대한 대역폭(bandwidth)을 줄일 수 있고, 디코딩 처리시간을 현저하게 줄일 수 있다.By deblocking the data in macroblock units and sequentially storing the data by the deblocking method according to an exemplary embodiment of the present invention, a bandwidth for memory access according to decoding can be reduced, and a decoding processing time Can be significantly reduced.

이상에서 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.Although the present invention has been described above by means of limited embodiments and drawings, the present invention is not limited thereto and will be described below by the person skilled in the art to which the present invention pertains. Of course, various modifications and variations are possible within the scope of the claims.

본 발명에 따른 실시간 디블록킹 필터 및 이를 이용한 디블록킹 방법에 의하면, 영상데이터를 메크로 블록 단위로 처리하여, 디코딩에 따른 메모리 접 근(access)에 대한 대역폭(bandwidth)과 디코딩 처리시간을 현저하게 줄일 수 있다.According to the real-time deblocking filter and the deblocking method using the same according to the present invention, by processing the image data in units of macro blocks, the bandwidth and decoding processing time for memory access due to decoding are significantly reduced. Can be.

또한, 디코딩 처리시간이 단축됨에 따라, 동작클럭을 낮출 수 있고, 디코더의 전력소모도 줄일 수 있다.In addition, as the decoding processing time is shortened, the operation clock can be lowered and the power consumption of the decoder can be reduced.

Claims (11)

삭제delete 매크로 블록단위로 부호화된 영상 프레임을 디코딩함에 따라 발생하는 블록킹 효과를 제거하는 장치에 있어서,An apparatus for removing a blocking effect generated by decoding an image frame encoded in macroblock units, 외부로부터 입력되는 데이터 또는 블록킹 효과를 제거하는 과정에서 발생되는 데이터를 임시로 저장하는 입력 버퍼;An input buffer for temporarily storing data input from the outside or data generated in a process of removing a blocking effect; 상기 입력버퍼에서 출력되는 데이터를 디블록킹 알고리즘에 적용하여 매크로 블록의 경계 영역을 필터링하는 에지 필터;An edge filter which applies the data output from the input buffer to a deblocking algorithm to filter the boundary region of the macro block; 상기 에지 필터를 통해 필터링 처리된 데이터의 행렬 정렬상태를 선택적으로 변환하는 데이터 정렬회로;A data alignment circuit for selectively converting a matrix alignment state of the data filtered through the edge filter; 상기 데이터 정렬회로로부터 출력되는 데이터를 임시 저장하는 출력 버퍼; 및An output buffer for temporarily storing data output from the data alignment circuit; And 상기 출력 버퍼에 임시 저장된 데이터를 조합하여 매크로 블록 단위로 저장하는 데이터 저장수단;을 구비하되,And data storage means for combining data temporarily stored in the output buffer in macro block units. 상기 입력버퍼는,The input buffer, 이미 디블록킹 처리가 완료된 매크로 블록들 중에서 현재 디블록킹 처리중인 매크로 블록과 수직 방향으로 접하는 경계영역 데이터를 임시 저장하는 제1입력버퍼;A first input buffer which temporarily stores boundary area data in a vertical direction among macroblocks that have already been deblocked and which are currently deblocked; 현재 디블록킹 처리중인 매크로 블록과 수평 방향으로 접하는 경계영역 데이터를 임시 저장하는 제2입력버퍼;A second input buffer configured to temporarily store boundary area data in a horizontal direction in contact with a macroblock currently being deblocked; 에지 필터가 상기 메크로 블록단위의 데이터를 복수의 서브블록으로 구성된 열 단위 또는 행 단위로 디블록킹 처리함에 따라 발생하는 데이터를 임시 저장하는 제3입력버퍼;A third input buffer configured to temporarily store data generated when an edge filter deblocks the data of the macroblock unit into a column unit or a row unit composed of a plurality of subblocks; 디블록킹 처리시 수직 방향의 디블록킹 처리가 완료된 데이터를 임시 저장하는 제4입력버퍼; 및A fourth input buffer which temporarily stores data in which the deblocking process of the vertical direction is completed during the deblocking process; And 현재 디블록킹 처리중인 매크로 블록의 원본 데이터를 임시 저장하는 제5입력버퍼;를 포함하는 것을 특징으로 하는 디블록킹 필터.And a fifth input buffer configured to temporarily store original data of a macroblock currently being deblocked. 제 2항에 있어서,The method of claim 2, 상기 입력버퍼에 저장되는 데이터는 YUV(휘도, 색상) 방식으로 저장되는 것을 특징으로 하는 디블록킹 필터.Deblocking filter, characterized in that the data stored in the input buffer is stored in a YUV (luminance, color) method. 매크로 블록단위로 부호화된 영상 프레임을 디코딩함에 따라 발생하는 블록킹 효과를 제거하는 장치에 있어서,An apparatus for removing a blocking effect generated by decoding an image frame encoded in macroblock units, 외부로부터 입력되는 데이터 또는 블록킹 효과를 제거하는 과정에서 발생되는 데이터를 임시로 저장하는 입력 버퍼;An input buffer for temporarily storing data input from the outside or data generated in a process of removing a blocking effect; 상기 입력버퍼에서 출력되는 데이터를 디블록킹 알고리즘에 적용하여 매크로 블록의 경계 영역을 필터링하는 에지 필터;An edge filter which applies the data output from the input buffer to a deblocking algorithm to filter the boundary region of the macro block; 상기 에지 필터를 통해 필터링 처리된 데이터의 행렬 정렬상태를 선택적으로 변환하는 데이터 정렬회로;A data alignment circuit for selectively converting a matrix alignment state of the data filtered through the edge filter; 상기 데이터 정렬회로로부터 출력되는 데이터를 임시 저장하는 출력 버퍼; 및An output buffer for temporarily storing data output from the data alignment circuit; And 상기 출력 버퍼에 임시 저장된 데이터를 조합하여 매크로 블록 단위로 저장하는 데이터 저장수단;을 구비하되,And data storage means for combining data temporarily stored in the output buffer in macro block units. 상기 입력 버퍼에서 출력되는 데이터를 정해진 규칙에 따라 선택적으로 상기 에지 필터로 전송하는 선택회로를 더 구비하는 것을 특징으로 하는 디블록킹 필터.And a selection circuit for selectively transmitting data output from the input buffer to the edge filter according to a predetermined rule. 매크로 블록단위로 부호화된 영상 프레임을 디코딩함에 따라 발생하는 블록킹 효과를 제거하는 장치에 있어서,An apparatus for removing a blocking effect generated by decoding an image frame encoded in macroblock units, 외부로부터 입력되는 데이터 또는 블록킹 효과를 제거하는 과정에서 발생되는 데이터를 임시로 저장하는 입력 버퍼;An input buffer for temporarily storing data input from the outside or data generated in a process of removing a blocking effect; 상기 입력버퍼에서 출력되는 데이터를 디블록킹 알고리즘에 적용하여 매크로 블록의 경계 영역을 필터링하는 에지 필터;An edge filter which applies the data output from the input buffer to a deblocking algorithm to filter the boundary region of the macro block; 상기 에지 필터를 통해 필터링 처리된 데이터의 행렬 정렬상태를 선택적으로 변환하는 데이터 정렬회로;A data alignment circuit for selectively converting a matrix alignment state of the data filtered through the edge filter; 상기 데이터 정렬회로로부터 출력되는 데이터를 임시 저장하는 출력 버퍼; 및An output buffer for temporarily storing data output from the data alignment circuit; And 상기 출력 버퍼에 임시 저장된 데이터를 조합하여 매크로 블록 단위로 저장하는 데이터 저장수단;을 구비하되,And data storage means for combining data temporarily stored in the output buffer in macro block units. 상기 선택회로는The selection circuit 상기 제1입력버퍼, 제2입력버퍼, 및 제3입력버퍼로부터 출력되는 데이터를 입력받는 제 1 선택회로; 및A first selection circuit which receives data output from the first input buffer, the second input buffer, and the third input buffer; And 상기 제4입력버퍼 및 제5입력버퍼로부터 출력되는 데이터를 입력받는 제 2 선택회로;를 포함하는 것을 특징으로 하는 디블록킹 필터.And a second selection circuit configured to receive data output from the fourth input buffer and the fifth input buffer. 매크로 블록단위로 부호화된 영상 프레임을 디코딩함에 따라 발생하는 블록킹 효과를 제거하는 장치에 있어서,An apparatus for removing a blocking effect generated by decoding an image frame encoded in macroblock units, 외부로부터 입력되는 데이터 또는 블록킹 효과를 제거하는 과정에서 발생되는 데이터를 임시로 저장하는 입력 버퍼;An input buffer for temporarily storing data input from the outside or data generated in a process of removing a blocking effect; 상기 입력버퍼에서 출력되는 데이터를 디블록킹 알고리즘에 적용하여 매크로 블록의 경계 영역을 필터링하는 에지 필터;An edge filter which applies the data output from the input buffer to a deblocking algorithm to filter the boundary region of the macro block; 상기 에지 필터를 통해 필터링 처리된 데이터의 행렬 정렬상태를 선택적으로 변환하는 데이터 정렬회로;A data alignment circuit for selectively converting a matrix alignment state of the data filtered through the edge filter; 상기 데이터 정렬회로로부터 출력되는 데이터를 임시 저장하는 출력 버퍼; 및An output buffer for temporarily storing data output from the data alignment circuit; And 상기 출력 버퍼에 임시 저장된 데이터를 조합하여 매크로 블록 단위로 저장하는 데이터 저장수단;을 구비하되,And data storage means for combining data temporarily stored in the output buffer in macro block units. 상기 출력 버퍼에 저장된 데이터는 데이터 직접 접근 제어기(DMAC; Direct Memory Access Controller)를 통해 상기 데이터 저장수단에 저장되는 것을 특징으로 하는 디블록킹 필터.The data stored in the output buffer is stored in the data storage means through a direct memory access controller (DMAC). 삭제delete 매크로 블록 단위로 부호화된 영상 프레임을 디코딩함에 따라 발생하는 블록킹 효과를 제거하는 방법에 있어서,A method of removing a blocking effect caused by decoding an image frame encoded in macroblock units, (1)외부로부터 입력되는 소정 영역의 데이터 및 블록킹 효과를 제거하는 과정에서 발생되는 소정 영역의 데이터를 복수의 입력 버퍼에 임시 저장하는 단계;(1) temporarily storing data of a predetermined area input from the outside and data of the predetermined area generated in a process of removing a blocking effect in a plurality of input buffers; (2)복수의 상기 입력버퍼에서 출력되는 데이터를 이용하여 수직방향 및 수평방향에 대한 경계영역을 필터링 처리하는 단계;(2) filtering the boundary regions in the vertical direction and the horizontal direction using data output from the plurality of input buffers; (3)상기 제 (2)단계를 통해 필터링 처리된 데이터의 행렬 정렬상태를 선택적으로 변환하는 단계;(3) selectively converting the matrix alignment of the filtered data through step (2); (4)상기 제 (3)단계에서 발생되는 데이터를 출력 버퍼에 임시 저장하는 단계; 및(4) temporarily storing data generated in the step (3) in an output buffer; And (5)상기 출력버퍼에서 출력되는 데이터를 매크로 블록 단위로 조합하여 데이터 저장수단에 저장하는 단계;를 구비하되,(5) combining the data output from the output buffer in units of macroblocks and storing the data in the data storage means; 복수의 상기 입력 버퍼는 제1입력버퍼, 제2입력버퍼, 제3입력버퍼, 제4입력버퍼, 및 제5입력버퍼를 포함하며, The plurality of input buffers include a first input buffer, a second input buffer, a third input buffer, a fourth input buffer, and a fifth input buffer. 상기 제 (2)단계는 The second step is 이미 디블록킹 처리가 완료된 매크로 블록들 중에서 현재 디블록킹 처리중인 매크로 블록과 수직 방향으로 접하는 경계영역 데이터를 제1입력버퍼, 현재 디블록킹 처리중인 매크로 블록과 수평 방향으로 접하는 경계영역 데이터를 제2입력버퍼, 디블록킹 처리시 발생하는 데이터를 임시 저장하는 제3입력버퍼, 디블록킹 처리시 수직 방향의 디블록킹 처리가 완료된 데이터를 제4입력버퍼, 디블록킹 처리중인 매크로 블록의 원본 데이터를 제5입력버퍼에 저장하는 것을 특징으로 하는 디블록킹 방법.Among the macroblocks that have already been deblocked, the first input buffer receives the boundary area data in contact with the macroblock currently deblocking in the vertical direction, and the second area receives the border area data in contact with the macroblock currently deblocking in the horizontal direction. A third input buffer for temporarily storing data generated during buffering and deblocking processing, and a fourth input buffer for data in which the deblocking processing in the vertical direction is completed during the deblocking processing, and a fifth input of original data of the macroblock being deblocked. Deblocking method characterized in that the storage in the buffer. 제 8항에 있어서, The method of claim 8, 상기 제5입력버퍼에 저장되는 데이터는 YUV(휘도, 색상) 방식으로 저장되는 것을 특징으로 하는 디블록킹 방법.The data stored in the fifth input buffer is stored in a YUV (luminance, color) method. 매크로 블록 단위로 부호화된 영상 프레임을 디코딩함에 따라 발생하는 블록킹 효과를 제거하는 방법에 있어서,A method of removing a blocking effect caused by decoding an image frame encoded in macroblock units, (1)외부로부터 입력되는 소정 영역의 데이터 및 블록킹 효과를 제거하는 과정에서 발생되는 소정 영역의 데이터를 복수의 입력 버퍼에 임시 저장하는 단계;(1) temporarily storing data of a predetermined area input from the outside and data of the predetermined area generated in a process of removing a blocking effect in a plurality of input buffers; (2)복수의 상기 입력버퍼에서 출력되는 데이터를 이용하여 수직방향 및 수평방향에 대한 경계영역을 필터링 처리하는 단계;(2) filtering the boundary regions in the vertical direction and the horizontal direction using data output from the plurality of input buffers; (3)상기 제 (2)단계를 통해 필터링 처리된 데이터의 행렬 정렬상태를 선택적으로 변환하는 단계;(3) selectively converting the matrix alignment of the filtered data through step (2); (4)상기 제 (3)단계에서 발생되는 데이터를 출력 버퍼에 임시 저장하는 단계; 및(4) temporarily storing data generated in the step (3) in an output buffer; And (5)상기 출력버퍼에서 출력되는 데이터를 매크로 블록 단위로 조합하여 데이터 저장수단에 저장하는 단계;를 구비하되,(5) combining the data output from the output buffer in units of macroblocks and storing the data in the data storage means; (1-1)상기 입력 버퍼에서 출력되는 다중 데이터를 정해진 규칙에 따라 순차적으로 선택 및 전송하는 단계를 더 구비하는 것을 특징으로 하는 디블록킹 방법.(1-1) sequentially selecting and transmitting the multiple data output from the input buffer according to a predetermined rule. 매크로 블록 단위로 부호화된 영상 프레임을 디코딩함에 따라 발생하는 블록킹 효과를 제거하는 방법에 있어서,A method of removing a blocking effect caused by decoding an image frame encoded in macroblock units, (1)외부로부터 입력되는 소정 영역의 데이터 및 블록킹 효과를 제거하는 과정에서 발생되는 소정 영역의 데이터를 복수의 입력 버퍼에 임시 저장하는 단계;(1) temporarily storing data of a predetermined area input from the outside and data of the predetermined area generated in a process of removing a blocking effect in a plurality of input buffers; (2)복수의 상기 입력버퍼에서 출력되는 데이터를 이용하여 수직방향 및 수평방향에 대한 경계영역을 필터링 처리하는 단계;(2) filtering the boundary regions in the vertical direction and the horizontal direction using data output from the plurality of input buffers; (3)상기 제 (2)단계를 통해 필터링 처리된 데이터의 행렬 정렬상태를 선택적으로 변환하는 단계;(3) selectively converting the matrix alignment of the filtered data through step (2); (4)상기 제 (3)단계에서 발생되는 데이터를 출력 버퍼에 임시 저장하는 단계; 및(4) temporarily storing data generated in the step (3) in an output buffer; And (5)상기 출력버퍼에서 출력되는 데이터를 매크로 블록 단위로 조합하여 데이터 저장수단에 저장하는 단계;를 구비하되,(5) combining the data output from the output buffer in units of macroblocks and storing the data in the data storage means; 상기 출력 버퍼에 저장된 데이터는 데이터 직접 접근방법(DMA; Direct Memory Access)을 통해 상기 데이터 저장수단에 저장되는 것을 특징으로 하는 디블록킹 방법.The data stored in the output buffer is stored in the data storage means through a direct memory access method (DMA).
KR1020060033353A 2006-04-12 2006-04-12 Real-time deblocking filter and Method using the same KR100816461B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060033353A KR100816461B1 (en) 2006-04-12 2006-04-12 Real-time deblocking filter and Method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060033353A KR100816461B1 (en) 2006-04-12 2006-04-12 Real-time deblocking filter and Method using the same

Publications (2)

Publication Number Publication Date
KR20070101921A KR20070101921A (en) 2007-10-18
KR100816461B1 true KR100816461B1 (en) 2008-03-26

Family

ID=38817012

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060033353A KR100816461B1 (en) 2006-04-12 2006-04-12 Real-time deblocking filter and Method using the same

Country Status (1)

Country Link
KR (1) KR100816461B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101656009B1 (en) * 2015-03-02 2016-09-09 한밭대학교 산학협력단 Deblocking filter for high efficiency video coding

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050121627A (en) * 2004-06-22 2005-12-27 삼성전자주식회사 Filtering method of audio-visual codec and filtering apparatus thereof
KR20060002549A (en) * 2004-07-02 2006-01-09 삼성전자주식회사 Register array structure for effective edge filtering operation of deblocking filter
KR20060069010A (en) * 2004-12-17 2006-06-21 삼성전자주식회사 Deblocking filter of h.264/avc video decoder
KR20060117059A (en) * 2005-05-12 2006-11-16 (주)씨앤에스 테크놀로지 The system for minimizing frame memory access of deblocking filter module

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050121627A (en) * 2004-06-22 2005-12-27 삼성전자주식회사 Filtering method of audio-visual codec and filtering apparatus thereof
KR20060002549A (en) * 2004-07-02 2006-01-09 삼성전자주식회사 Register array structure for effective edge filtering operation of deblocking filter
KR20060069010A (en) * 2004-12-17 2006-06-21 삼성전자주식회사 Deblocking filter of h.264/avc video decoder
KR20060117059A (en) * 2005-05-12 2006-11-16 (주)씨앤에스 테크놀로지 The system for minimizing frame memory access of deblocking filter module

Also Published As

Publication number Publication date
KR20070101921A (en) 2007-10-18

Similar Documents

Publication Publication Date Title
CN107277539B (en) Method and apparatus for reducing line cache in context adaptive entropy decoding
JP7277616B2 (en) Method, apparatus and storage medium for processing video data
KR101227667B1 (en) Piecewise processing of overlap smoothing and in-loop deblocking
US20060133504A1 (en) Deblocking filters for performing horizontal and vertical filtering of video data simultaneously and methods of operating the same
US20060115002A1 (en) Pipelined deblocking filter
KR100624426B1 (en) Pipeline decoding apparatus and method, and computer-readable recording media for storing computer program for controlling the apparatus
JP2008529412A (en) Scratch pad for storing intermediate loop filter data
CN103370936A (en) Method and apparatus for improved in-loop filtering
TWI290438B (en) A pipelined deblocking filter
JP2008506294A (en) Method and system for performing deblocking filtering
KR100614647B1 (en) Register array structure for effective edge filtering operation of deblocking filter
CN104521234B (en) Merge the method for processing video frequency and device for going block processes and sampling adaptive migration processing
JP2007258882A (en) Image decoder
TWI832449B (en) Method and apparatus for video coding
KR100359208B1 (en) High speed deblocking filter device
KR100816461B1 (en) Real-time deblocking filter and Method using the same
KR100856551B1 (en) Deblock filter and deblock filtering method in h.264/avc
JP2007180723A (en) Image processor and image processing method
US20070223591A1 (en) Frame Deblocking in Video Processing Systems
JP2005080151A (en) Encoding apparatus, encoding method, image pickup device, image processing method, and program
KR100824287B1 (en) Low power high speed deblocking filter
KR20080048262A (en) Video decoder and decoding method
KR100621942B1 (en) Mobile multimedia data processing method
WO2024152352A1 (en) Encoding method, decoding method, code stream, encoder, decoder, and storage medium
JP6519185B2 (en) Video encoder

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: 20120228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130318

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee