KR100753504B1 - In-loop Deblocking Filter System and method for filterring data using the same - Google Patents

In-loop Deblocking Filter System and method for filterring data using the same Download PDF

Info

Publication number
KR100753504B1
KR100753504B1 KR1020050126269A KR20050126269A KR100753504B1 KR 100753504 B1 KR100753504 B1 KR 100753504B1 KR 1020050126269 A KR1020050126269 A KR 1020050126269A KR 20050126269 A KR20050126269 A KR 20050126269A KR 100753504 B1 KR100753504 B1 KR 100753504B1
Authority
KR
South Korea
Prior art keywords
pixel data
memory
filtered
main memory
filtering
Prior art date
Application number
KR1020050126269A
Other languages
Korean (ko)
Other versions
KR20070065635A (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 KR1020050126269A priority Critical patent/KR100753504B1/en
Publication of KR20070065635A publication Critical patent/KR20070065635A/en
Application granted granted Critical
Publication of KR100753504B1 publication Critical patent/KR100753504B1/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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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/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

Abstract

비디오 디코더의 인-루프 디블럭킹 필터 시스템 및 그의 필터링 방법에 관한 것으로, 픽셀 데이터가 씌여진 외부 메모리와, 이미 필터링된 이전 픽셀 데이터가 씌여진 소정 크기의 내부 버퍼와 필터링할 현재의 픽셀 데이터가 씌여진 소정 크기의 주메모리를 가지는 내부 메모리와, 외부 메모리로부터 필터링할 현재 픽셀 데이터를 읽는 단계와, 필터링할 현재 픽셀 데이터를 내부 메모리의 주메모리에 쓰는 단계와, 주메모리에 씌여진 현재 픽셀 데이터를 필터링하는 단계와, 필터링된 내부 버퍼의 이전 픽셀 데이터와 필터링된 주메모리의 현재 픽셀 데이터 일부를 외부 메모리에 쓰는 단계와, 남아있는 주메모리의 현재 픽셀 데이터를 내부 버퍼에 쓰는 단계를 수행하는 필터 엔진을 포함하여 구성된다.An in-loop deblocking filter system of a video decoder and a filtering method thereof, comprising: an external memory to which pixel data is written, an internal buffer of a predetermined size to which previously filtered previous pixel data is written, and current pixel data to be filtered. An internal memory having a main memory having a predetermined predetermined size, reading the current pixel data to be filtered from the external memory, writing the current pixel data to be filtered to the main memory of the internal memory, and the current pixel data written to the main memory. A filter engine that performs filtering, writing previous pixel data of the filtered internal buffer and a portion of the current pixel data of the filtered main memory to the external memory, and writing the current pixel data of the remaining main memory to the internal buffer. It is configured to include.

내부 버퍼, 내부 메모리, 외부 메모리, 주메모리, 픽셀 데이터 Internal buffer, internal memory, external memory, main memory, pixel data

Description

비디오 디코더의 인-루프 디블럭킹 필터 시스템 및 그의 필터링 방법{In-loop Deblocking Filter System and method for filterring data using the same}In-loop Deblocking Filter System and method for filterring data using the same}

도 1은 일반적인 디블럭킹 필터링 방법을 보여주는 도면1 illustrates a general deblocking filtering method

도 2는 일반적인 필터링에 필요한 픽셀 데이터 구성을 보여주는 도면2 is a diagram illustrating a pixel data configuration required for general filtering.

도 3 및 도 4는 일반적인 픽셀 데이터의 읽기 및 쓰기를 보여주는 도면3 and 4 illustrate reading and writing of general pixel data.

도 5는 일반적인 블록 에지 필터링 방법을 보여주는 도면5 illustrates a general block edge filtering method.

도 6은 일반적인 필터링 방법의 각 블록별 픽셀 데이터 읽기 및 쓰기 횟수를 보여주는 도면6 is a diagram illustrating the number of pixel data reads and writes for each block in the general filtering method.

도 7은 본 발명에 따른 필터 시스템 및 인터페이스 방식을 보여주는 도면7 shows a filter system and an interface scheme according to the invention.

도 8은 본 발명에 따른 픽셀 데이터의 읽기 및 쓰기를 보여주는 도면8 illustrates reading and writing of pixel data according to the present invention.

도 9는 본 발명에 따른 블록 에지 필터링 방법을 보여주는 도면9 illustrates a block edge filtering method according to the present invention.

도 10은 본 발명에 따른 필터링 방법의 각 블록별 픽셀 데이터 읽기 및 쓰기 횟수를 보여주는 도면10 is a diagram illustrating the number of pixel data reads and writes for each block in the filtering method according to the present invention.

도면의 주요부분에 대한 부호의 설명Explanation of symbols for main parts of the drawings

1 : 외부 메모리 2 : 에스디램 컨트롤러1: external memory 2: SDRAM controller

3 : 중재기 4 : MAU3: Arbitrator 4: MAU

5 : 내부 메모리 6 : 필터 엔진5: internal memory 6: filter engine

본 발명은 인-루프 디블럭킹 필터 시스템(In-loop Deblocking Filter System)에 관한 것으로, 특히 비디오 디코더의 인-루프 디블럭킹 필터 시스템 및 그의 필터링 방법에 관한 것이다.The present invention relates to an in-loop deblocking filter system, and more particularly, to an in-loop deblocking filter system of a video decoder and a filtering method thereof.

일반적으로, 디지털 신호처리, 저장매체, 전송방식의 발전은 음성 정보로 국한된 서비스로부터 정지영상 및 동영상 등의 정보를 포함한 다양한 멀티미디어 서비스를 가능하게 하여, 사용자가 풍부한 정보를 접할 수 있는 기회를 제공하였다.In general, advances in digital signal processing, storage media, and transmission methods have enabled various multimedia services including information such as still images and moving images from services limited to voice information, thereby providing an opportunity for users to access rich information. .

이러한 발전과 더불어 동영상의 방대한 정보를 저장하고 전송하기 위한 여러 가지 압축 방식이 연구되어 왔으며, 특히 이동 통신망과 같은 새로운 통신 채널의 급속한 보급에 따라, 기존 압축 방법에 비해 압축효율이 더욱 향상된 동영상 부호화 방식의 필요성이 대두되었고, 기존의 다양한 통신 인프라의 공존과 같은 새로운 통신환경에 대처할 수 있는 향상된 기능의 비디오 표준의 필요성이 대두되었다.With these developments, various compression schemes for storing and transmitting huge amounts of video information have been studied. Especially, with the rapid spread of new communication channels such as mobile communication networks, video encoding schemes have improved compression efficiency compared to conventional compression methods. The necessity of the necessity and the necessity of the improved video standard to cope with the new communication environment such as the coexistence of various existing communication infrastructures emerged.

이러한 흐름에 따라 ITU-T 표준화 기구는 2003년 5월 H.264로 명명된 표준을 승인하였고, 8월에는 ISO/IEC에 의해 MPEG-4 Part 10으로 명명된 표준이 승인되었다.Following this trend, the ITU-T standardization body approved the standard named H.264 in May 2003, and in August, the standard named MPEG-4 Part 10 by ISO / IEC.

이러한 H.264 표준은 기존의 동영상 압축 표준에 비하여 향상된 움직임 예측 및 보상, 부정합이 없는 블록 변환, 인-루프 디블럭킹 필터, 향상된 엔트로피 부호화, 그리고 다양한 네트웍에 대한 적응성을 가짐으로 인해 높은 압축성능과 유연성 의 장점을 지니고 있는 반면, 엔코더(Encoder) 및 디코더(Decoder)의 복잡도가 기존 표준에 비해 훨씬 증가하는 단점이 있다.The H.264 standard offers high compression performance and improved motion prediction and compensation, inconsistent block transform, in-loop deblocking filter, improved entropy coding, and adaptability to various networks. While having the advantage of flexibility, the complexity of encoder and decoder is much higher than that of existing standards.

특히, 엔코더 측면에서는 기존의 표준보다 훨씬 더 많아진 파라미터 및 부호화 모드를 결정하여야 하고, 디코더 측면에서는 인-루프 디블럭킹 필터나 1/4 화소 단위의 움직임 보상 등으로 인한 계산량의 부담감이 기존 표준보다 훨씬 증가하였다.In particular, on the encoder side, much more parameters and coding modes have to be determined than on the existing standard. On the decoder side, the burden of computational amount due to in-loop deblocking filter or motion compensation in 1/4 pixel unit is much higher than the existing standard. Increased.

따라서, H.264가 실제 시장에서 널리 사용되기 위해서는, H.264의 원리 및 기술을 정확히 이해하여 효율적으로 엔코더 및 디코더를 구현하는 구현 및 적용 기술이 매우 중요하다고 할 수 있다.Therefore, in order for H.264 to be widely used in the real market, it is important to understand the principles and techniques of H.264 and to implement and apply the technology to efficiently implement the encoder and the decoder.

특히, 기존의 표준에 포함되어 있지 않았던 인-루프 디블럭킹 필터에 관한 부분은 H.264 비디오 디코더 중에서도 가장 많은 연산양이 요구되는 부분일 뿐만 아니라 메모리 트랜잭션(Memory Transaction) 또한 매우 빈번하게 일어나는 부분이기 때문에 기존의 GPP(General Purpose Processor)나 DSP에서 소프트웨어(Software)로 구현하거나, 하드웨어(Hardware)로 구현 시에도 많은 클럭 수(Clock Cycle)를 필요로 할 뿐만 아니라, 많은 파워 소모(Power Consumption)가 요구되는 부분으로 잘 알려져 있다.In particular, the in-loop deblocking filter, which is not included in the existing standard, is not only the largest amount of computation required among the H.264 video decoders, but also a very frequent memory transaction. As a result, not only does it require a large number of clock cycles when implemented in software on a conventional general purpose processor (DPP) or DSP, or in hardware, but also consumes a lot of power. It is well known as a required part.

H.264 스펙으로 요구되는 디블럭킹 필터 알고리즘을 간단하게 살펴보면 다음과 같다.Briefly, the deblocking filter algorithm required by the H.264 specification is as follows.

H.264의 디블럭킹 필터는 도 1에 나타낸 바와 같이 하나의 매크로블럭(MB : Macroblock)을 기준으로 루미(Luma)와 크로마(Chroma)에 대해 별도의 필터링을 수 행하며, 픽쳐(Picture)의 경계선(Boundary)에 해당하는 매크로블록의 에지(Edge)나 또는 필터링을 일부러 디스에이블(Disable)시키는 경우를 제외한 나머지 모든 4x4 블록 에지(Block Edge)에 대해서 조건 필터링(Conditional Filtering)을 수행하게 된다.As shown in FIG. 1, the deblocking filter of H.264 performs separate filtering on luma and chroma based on one macroblock (MB) and blocks the boundaries of a picture. Conditional filtering is performed on all 4x4 block edges except edges of the macroblock corresponding to (Boundary) or the case where the filtering is intentionally disabled.

필터링하는 순서는 도 1에 나타낸 바와 같이 루마(Luma)와 크로마(Chroma) 모두 왼쪽에서 오른쪽 순으로 수직 에지 필터링(Vertical Edge Filtering)을 한 다음(1)(3), 위에서 아래 방향으로 진행되는 수평 에지 필터링(Horizontal Edge Filtering)(2)(4)을 수행하게 된다.In order to filter, as shown in FIG. 1, the vertical edge filtering is performed from left to right in both luma and chroma (1) (3), and then horizontally progressed from top to bottom. Edge filtering (2) (4) is performed.

필터링을 위해 요구되는 메모리 사용량을 살펴보면 도 2에 나타낸 바와 같다.The memory usage required for filtering is shown in FIG. 2.

먼저, 현재 매크로블록(Current MB)에 대해서 루마(Luma)의 경우에는 16x16 픽셀 데이터(Pixel Data)(1) 사이즈의 메모리가, 크로마(Chroma)의 경우에는 8X8 픽셀 데이터(Pixel Data)(2) 사이즈의 메모리가 Cb와 Cr에 대해 각각 요구된다.First, 16x16 pixel data (1) size memory is used for luma in the current macroblock (Current MB), and 8x8 pixel data (2) for chroma. Memory of size is required for Cb and Cr respectively.

수직 에지 필터링을 위한 왼쪽 매크로블록(Left MB)에 대해서는 루마(Luma)의 경우에는 4x16 픽셀 데이터 사이즈(3)가, 크로마(Chroma)의 경우에는 2x8 픽셀 데이터 사이즈(4)가 Cb와 Cr에 대해 각각 요구된다.For the left macroblock (Left MB) for vertical edge filtering, a 4x16 pixel data size (3) for Luma and a 2x8 pixel data size (4) for Chroma for Cb and Cr Each is required.

또한, 수평 에지 필터링을 위해서는 위쪽 매크로블록(Upper MB)에 대한 루마(Luma) 16X4 픽셀 데이터 사이즈(5)와 크로마(Chroma) 8x2 픽셀 데이터 사이즈가(6)가 Cb와 Cr에 대해 각각 요구됨을 알 수 있다.Also note that for horizontal edge filtering, Luma 16X4 pixel data size (5) and Chroma 8x2 pixel data size (6) for Upper MB are required for Cb and Cr, respectively. Can be.

이와 같이 필터링을 위해 요구되는 픽셀 데이터들은 디블럭킹 필터 구현 시, 외부 메모리로부터 내부 메모리로 읽어져야 함과 동시에 내부 메모리로부터 외부 메모리로 쓰기 되어져야 하는 특성을 지닌다.As such, the pixel data required for filtering has to be read from the external memory into the internal memory and written from the internal memory to the external memory when the deblocking filter is implemented.

뿐만 아니라, 필터링 시에는 내부 메모리로부터 에지 필터링 순서대로 읽혀 진 뒤 필터링 된 후 다시 저장되어야 하는 특성을 지닌다.In addition, when filtering, it has to be read from the internal memory in order of edge filtering, filtered, and then stored again.

따라서, 외부 메모리에 대한 액세스도 빈번하게 일어나게 되고, 내부 메모리에 대한 액세스도 자주 일어나게 된다.Therefore, access to external memory occurs frequently, and access to internal memory occurs frequently.

뿐만 아니라, 필터링을 수행하는데 있어서 각 픽셀 데이터를 더하고, 빼고, 곱하고, 나누어야 하는 엄청난 양의 연산 작업도 요구된다.In addition, filtering requires a tremendous amount of computational work to add, subtract, multiply, and divide each pixel data.

따라서, 외부 메모리에 대한 잦은 접근은 클럭 수와 파워 소모에 가장 큰 영향을 끼치는 요인이 되고, 내부 메모리에 대한 액세스 횟수 및 액세스 방법 또한 시스템의 성능을 결정짓는 중요한 요소가 되므로 이 두 요소를 효율적으로 사용하기 위한 노력은 디블럭킹 필터를 구현하는 데에 있어서 매우 중요하다.Therefore, frequent access to external memory is the most influential factor in clock count and power consumption, and the number of accesses and access methods to internal memory are also important factors in determining system performance. Efforts to use are very important in implementing deblocking filters.

본 발명의 목적은 외부 메모리에 대한 액세스 방법과 내부 메모리에 대한 필터링 방법을 개선시킴으로써, 고성능과 저전력 특성을 갖는 비디오 디코더의 인-루프 디블럭킹 필터 시스템 및 그의 필터링 방법을 제공하는데 있다.An object of the present invention is to provide an in-loop deblocking filter system of a video decoder having a high performance and a low power characteristic and a filtering method thereof by improving an access method for an external memory and a filtering method for an internal memory.

본 발명에 따른 비디오 디코더의 인-루프 디블럭킹 필터 시스템은 픽셀 데이터가 씌여진 외부 메모리와, 이미 필터링된 이전 픽셀 데이터가 씌여진 소정 크기의 내부 버퍼와 필터링할 현재의 픽셀 데이터가 씌여진 소정 크기의 주메모리를 가 지는 내부 메모리와, 상기 외부 메모리로부터 필터링할 현재 픽셀 데이터를 읽는 단계와, 상기 필터링할 현재 픽셀 데이터를 상기 내부 메모리의 주메모리에 쓰는 단계와, 상기 주메모리에 씌여진 현재 픽셀 데이터를 필터링하는 단계와, 상기 필터링된 내부 버퍼의 이전 픽셀 데이터와 상기 필터링된 주메모리의 현재 픽셀 데이터 일부를 상기 외부 메모리에 쓰는 단계와, 상기 남아있는 주메모리의 현재 픽셀 데이터를 상기 내부 버퍼에 쓰는 단계를 수행하는 필터 엔진을 포함하여 구성된다.The in-loop deblocking filter system of the video decoder according to the present invention comprises an external memory to which pixel data is written, an internal buffer of a predetermined size to which previously filtered previous pixel data is written and a predetermined size to which the current pixel data to be filtered is written. Reading an internal memory having a main memory of < RTI ID = 0.0 > and < / RTI > Filtering data; writing previous pixel data of the filtered internal buffer and a portion of the current pixel data of the filtered main memory to the external memory; and writing current pixel data of the remaining main memory to the internal buffer. It is configured to include a filter engine to perform the writing step.

여기서, 내부 메모리 중 루마(Luma)의 경우, 상기 내부 버퍼는 4x20 사이즈이고, 상기 주메모리는 16x20 사이즈이며, 상기 내부 메모리 중 크로마(Chroma)의 경우, 상기 내부 버퍼는 2x10 사이즈이고, 상기 주메모리는 8x10 사이즈인 것이 바람직하다.Here, in the case of Luma of the internal memory, the internal buffer is 4x20 size, the main memory is 16x20 size, and in the case of Chroma of the internal memory, the internal buffer is 2x10 size, and the main memory Is preferably an 8x10 size.

그리고, 상기 루마(Luma)의 내부 버퍼는 4x16 왼쪽 매크로블록(Left Upper MB)과 4x4 왼쪽 위 매크로블록(Left Upper MB)으로 구성되고, 상기 루마(Luma)의 주메모리는 16x16 현재 매크로블록과 16x4 위쪽 매크로블록으로 구성될 수 있다.The internal buffer of the luma consists of a 4x16 left macroblock and a 4x4 left upper MB. The main memory of the luma is a 16x16 current macroblock and 16x4. It may consist of an upper macroblock.

또한, 상기 크로마(Chroma)의 내부 버퍼는 2x8 왼쪽 매크로블록(Left Upper MB)과 2x2 왼쪽 위 매크로블록(Left Upper MB)으로 구성되고, 상기 크로마(Chroma)의 주메모리는 8x8 현재 매크로블록(Current MB)과 8x2 위쪽 매크로블록(Upper MB)으로 구성될 수 있다.In addition, the internal buffer of the chroma is composed of 2x8 left upper macroblocks and 2x2 left upper macroblocks, and the main memory of chroma is 8x8 current macroblocks. MB) and an 8 × 2 upper macro block (Upper MB).

그리고, 외부 메모리와 내부 메모리 사이에는 에스디램 컨트롤러(SDRAM Controller)와 중재기(Arbiter) 그리고 메모리 액세스 유닛(Memory Access Unit : MAU)이 구성되어 있고, 상기 외부 메모리와 내부 메모리의 픽셀 데이터는 상기 에 스디램 컨트롤러와 중재기 그리고 메모리 액세스 유닛을 거쳐 이동될 수 있다.An SDRAM controller, an arbiter, and a memory access unit (MAU) are configured between the external memory and the internal memory, and pixel data of the external memory and the internal memory are stored in the memory. It can be moved via the DRAM controller, the arbiter and the memory access unit.

본 발명에 따른 비디오 디코더의 인-루프 디블럭킹 필터 시스템의 필터링 방법은, 상기 외부 메모리로부터 필터링할 현재 픽셀 데이터를 읽어오는 단계와, 상기 읽어온 현재 픽셀 데이터를 상기 내부 메모리의 주메모리에 쓰는 단계와, 상기 주메모리에 씌여진 현재 픽셀 데이터를 필터링하는 단계와, 상기 필터링된 내부 버퍼의 이전 픽셀 데이터와 상기 필터링된 주메모리의 현재 픽셀 데이터 일부를 상기 외부 메모리에 쓰는 단계와, 상기 남아있는 주메모리의 현재 픽셀 데이터를 상기 내부 버퍼에 쓰는 단계를 포함하여 이루어질 수 있다.A filtering method of an in-loop deblocking filter system of a video decoder according to the present invention includes reading current pixel data to be filtered from the external memory, and writing the read current pixel data to a main memory of the internal memory. Filtering current pixel data written to the main memory, writing previous pixel data of the filtered internal buffer and a portion of the current pixel data of the filtered main memory to the external memory; And writing current pixel data of a memory to the internal buffer.

여기서, 상기 외부 메모리로부터 필터링할 현재 픽셀 데이터를 읽어오는 단계 이전에, 상기 외부 메모리의 픽셀 데이터를 읽기 요청하는 단계를 더 수행할 수 있고, 상기 주메모리에 씌여진 현재 픽셀 데이터를 필터링하는 단계 이전에, 상기 현재 픽셀 데이터의 읽기 완료 신호를 수신하는 단계를 더 수행할 수도 있다.Here, prior to the step of reading current pixel data to be filtered from the external memory, the step of requesting to read the pixel data of the external memory may be further performed, and before the step of filtering the current pixel data written to the main memory. In addition, the method may further include receiving a read completion signal of the current pixel data.

또한, 상기 필터링된 내부 버퍼의 이전 픽셀 데이터와 상기 필터링된 주메모리의 현재 픽셀 데이터 일부를 상기 외부 메모리에 쓰는 단계 이전에, 상기 필터링된 픽셀 데이터를 상기 외부 메모리에 쓰기 요청하는 단계를 더 수행할 수 있고, 상기 남아있는 주메모리의 현재 픽셀 데이터를 상기 내부 버퍼에 쓰는 단계 이후에, 상기 필터링된 픽셀 데이터의 쓰기 완료 신호를 수신하는 단계를 더 수행할 수도 있다.Further, before writing the previous pixel data of the filtered internal buffer and a part of the current pixel data of the filtered main memory to the external memory, a step of requesting to write the filtered pixel data to the external memory may be further performed. And after writing the current pixel data of the remaining main memory to the internal buffer, receiving a write completion signal of the filtered pixel data.

그리고, 주메모리에 씌여진 현재 픽셀 데이터를 필터링하는 단계는, 상기 주 메모리의 첫 번째 열(row)에 위치하는 각 블록의 픽셀 데이터로부터 마지막 열에 위치하는 각 블록의 픽셀 데이터까지 순차적으로 수직 에지 필터링(vertical edge filtering)을 수행하는 단계와, 상기 주 메모리의 첫 번째 열(row)에 위치하는 각 블록의 픽셀 데이터로부터 마지막 열에 위치하는 각 블록의 픽셀 데이터까지 순차적으로 수평 에지 필터링(horizontal edge filtering)을 수행하는 단계를 포함하여 이루어지는 것이 바람직하다.The filtering of the current pixel data written in the main memory may include sequentially performing vertical edge filtering from the pixel data of each block located in the first row of the main memory to the pixel data of each block located in the last column. performing vertical edge filtering, and sequentially horizontal edge filtering from pixel data of each block located in the first row of the main memory to pixel data of each block located in the last column. It is preferable to include the step of performing.

본 발명의 다른 목적, 특징 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.Other objects, features and advantages of the present invention will become apparent from the following detailed description of embodiments taken in conjunction with the accompanying drawings.

이하, 첨부된 도면을 참조하여 본 발명의 실시예의 구성과 그 작용을 설명하며, 도면에 도시되고 또 이것에 의해서 설명되는 본 발명의 구성과 작용은 적어도 하나의 실시예로서 설명되는 것이며, 이것에 의해서 상기한 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.Hereinafter, with reference to the accompanying drawings illustrating the configuration and operation of the embodiment of the present invention, the configuration and operation of the present invention shown in the drawings and described by it will be described as at least one embodiment, By the technical spirit of the present invention described above and its core configuration and operation is not limited.

본 발명은 외부 메모리 및 내부 메모리에 대한 효과적인 구현 방법을 제시하고자 한다.The present invention proposes an effective implementation method for the external memory and the internal memory.

따라서, 본 발명은 클럭 수를 줄이고 파워 소모를 줄이기 위한 방법으로 필터 내부에 버퍼를 두고 이를 활용하여 외부 메모리 액세스를 수행하고자 하였다.Accordingly, the present invention intends to perform an external memory access by using a buffer inside the filter as a method for reducing the number of clocks and reducing power consumption.

이러한 필터 내부의 버퍼 활용을 통해, 본 발명에서는 한 번의 읽기 트랜잭션과 한 번의 쓰기 트랜잭션 만으로 필터링을 위해 필요한 모든 픽셀 데이터들을 외부 메모리로부터 읽고 쓸수 있도록 하였다.By utilizing the buffer inside the filter, the present invention allows all pixel data necessary for filtering to be read and written from the external memory using only one read transaction and one write transaction.

이러한 필터 내부의 버퍼 활용을 통해, 본 발명에서는 외부 메모리에 대한 읽기 트랜잭션과 쓰기 트랜잭션 시 트랜잭션을 위한 전송 데이터 양을 기존의 방법 에 비해 감소시킴으로써 데이터의 전송 속도를 향상시킬 수 있도록 하였다.Through the use of the buffer inside the filter, the present invention can improve the data transfer speed by reducing the amount of data transferred for transactions during read and write transactions to the external memory as compared with the conventional method.

그리고, 본 발명에서는 내부 메모리에 대한 액세스 회수를 감소시키기 위해 블록 에지 필터링 순서를 변환하여 필터링 하도록 하였다.In the present invention, the block edge filtering order is changed and filtered to reduce the number of accesses to the internal memory.

도 3은 본 발명에 따른 비디오 디코더의 인-루프 디블럭킹 필터 시스템을 보여주는 도면으로서, 디블럭킹 필터와 외부 메모리간의 인터페이스 방식에 대한 예를 나타내었다.3 is a diagram illustrating an in-loop deblocking filter system of a video decoder according to the present invention, and shows an example of an interface scheme between a deblocking filter and an external memory.

도 3에 도시된 바와 같이, 본 발명은 크게 외부 메모리(1), 내부 메모리(5), 그리고 필터 엔진(6)으로 구성된다.As shown in FIG. 3, the present invention is largely composed of an external memory 1, an internal memory 5, and a filter engine 6. As shown in FIG.

여기서, 내부 메모리(5)는 이미 필터링된 이전 픽셀 데이터가 씌여진 소정 크기의 내부 버퍼(5a)와, 필터링할 현재의 픽셀 데이터가 씌여진 소정 크기의 주메모리(5b)를 가진다.Here, the internal memory 5 has an internal buffer 5a of a predetermined size to which previously filtered previous pixel data has been written, and a main memory 5b of a predetermined size to which the current pixel data to be filtered is written.

그리고, 외부 메모리(1)와 내부 메모리(5) 사이에는 에스디램 컨트롤러(SDRAM Controller)(2)와 중재기(Arbiter)(3) 그리고 메모리 액세스 유닛(Memory Access Unit : MAU)(4)이 구성되어 있고, 외부 메모리(1)와 내부 메모리(5)의 픽셀 데이터는 에스디램 컨트롤러(2)와 중재기(3) 그리고 메모리 액세스 유닛(4)을 거쳐 이동할 수 있다.In addition, an SDRAM controller 2, an arbiter 3, and a memory access unit (MAU) 4 are formed between the external memory 1 and the internal memory 5. The pixel data of the external memory 1 and the internal memory 5 may move through the SDRAM controller 2, the arbiter 3, and the memory access unit 4.

한편, 본 발명의 내부 메모리(5) 중 루마(Luma)의 경우, 도 8에 도시된 바와 같이 내부 버퍼(5a)는 4x20 사이즈이고, 주메모리(5b)는 16x20 사이즈이며, 내부 메모리 중 크로마(Chroma)의 경우, 내부 버퍼(5a)는 2x10 사이즈이고, 주메모리(5b)는 8x10 사이즈이다.
본 발명에서 루마(Luma), 또는 루마(Luma) 영역은 내부 메모리(5) 중 밝기값을 처리하기 위해 할당된 영역이고, 크로마(Chroma) 또는 크로마(Chroma) 영역은 내부 메모리(5) 중 색상값을 처리하기 위해 할당된 영역일 수 있다.
Meanwhile, in the luma of the internal memory 5 of the present invention, as shown in FIG. 8, the internal buffer 5a has a size of 4x20, the main memory 5b has a size of 16x20, and the chroma of the internal memory ( In the case of Chroma, the internal buffer 5a is 2x10 size, and the main memory 5b is 8x10 size.
In the present invention, the luma or luma area is an area allocated to process brightness values in the internal memory 5, and the chroma or chroma area is a color in the internal memory 5. It may be an area allocated for processing a value.

여기서, 루마(Luma)의 내부 버퍼(5a)는 4x16 왼쪽 매크로블록(Left Upper MB)과 4x4 왼쪽 위 매크로블록(Left Upper MB)으로 구성되고, 루마(Luma)의 주메모리(5b)는 16x16 현재 매크로블록과 16x4 위쪽 매크로블록으로 구성된다.Here, the internal buffer 5a of the luma is composed of a 4x16 left upper macroblock (Left Upper MB) and a 4x4 left upper macroblock (Left Upper MB), and the main memory 5b of the luma is 16x16 present. It consists of a macroblock and a 16x4 upper macroblock.

그리고, 크로마(Chroma)의 내부 버퍼(5a)는 2x8 왼쪽 매크로블록(Left Upper MB)과 2x2 왼쪽 위 매크로블록(Left Upper MB)으로 구성되고, 크로마(Chroma)의 주메모리(5b)는 8x8 현재 매크로블록(Current MB)과 8x2 위쪽 매크로블록(Upper MB)으로 구성된다.The internal buffer 5a of Chroma is composed of 2x8 left macroblocks (Left Upper MB) and 2x2 left upper macroblocks (Left Upper MB), and the chroma main memory 5b is 8x8 present. It consists of a Macroblock (Current MB) and an 8x2 Upper Macroblock (Upper MB).

이와 같이, 구성된 본 발명의 필터링 방법은 다음과 같다.Thus, the filtering method of the present invention configured as follows.

먼저, 필터 엔진(6)은 메모리 억세스 유닛(4), 중재기(3), 에스디램 컨트롤러(2)를 거쳐 외부 메모리(1)에 픽셀 데이터를 읽기 요청한다.First, the filter engine 6 requests the external memory 1 to read pixel data through the memory access unit 4, the arbiter 3, and the SDRAM controller 2.

다음, 픽셀 엔진(6)은 외부 메모리(1)로부터 필터링할 현재 픽셀 데이터를 읽어오고, 도 8에 도시된 바와 같이, 읽어온 현재 픽셀 데이터를 내부 메모리(5)의 주메모리(5b)(점선으로 표시된 8영역)에 쓴다.Next, the pixel engine 6 reads the current pixel data to be filtered from the external memory 1, and as shown in Fig. 8, reads the read current pixel data into the main memory 5b of the internal memory 5 (dotted line). 8 areas marked with).

그리고, 필터 엔진(6)은 메모리 억세스 유닛(4)을 통해 현재 픽셀 데이터의 읽기 완료 신호를 수신한 다음, 주메모리(5b)에 씌여진 현재 픽셀 데이터를 필터링한다.Then, the filter engine 6 receives the read completion signal of the current pixel data through the memory access unit 4, and then filters the current pixel data written in the main memory 5b.

여기서, 픽셀 엔진(6)은 도 9에 도시된 바와 같이 먼저, 주 메모리(5b)의 첫 번째 열(row)에 위치하는 각 블록의 픽셀 데이터로부터 마지막 열에 위치하는 각 블록의 픽셀 데이터까지 순차적으로 수직 에지 필터링(vertical edge filtering)을 수행하고, 주 메모리의 첫 번째 열(row)에 위치하는 각 블록의 픽셀 데이터로부터 마지막 열에 위치하는 각 블록의 픽셀 데이터까지 순차적으로 수평 에지 필터링(horizontal edge filtering)을 수행한다.Here, as shown in FIG. 9, the pixel engine 6 sequentially processes the pixel data of each block located in the first row of the main memory 5b to the pixel data of each block located in the last column. Perform vertical edge filtering, and sequentially perform horizontal edge filtering from pixel data of each block located in the first row of main memory to pixel data of each block located in the last column. Do this.

이어, 필터 엔진(6)은 필터링된 픽셀 데이터를 외부 메모리(1)에 쓰기 요청을 하고, 도 8에 도시된 바와 같이, 필터링된 내부 버퍼(5a)의 이전 픽셀 데이터와 상기 필터링된 주메모리(5b)의 현재 픽셀 데이터 일부(점선으로 표시된 7영역)를 외부 메모리에 쓴다.Subsequently, the filter engine 6 requests to write the filtered pixel data to the external memory 1, and as shown in FIG. 8, the previous pixel data of the filtered internal buffer 5a and the filtered main memory ( Part of the current pixel data (7 areas indicated by dotted lines) of 5b) is written to the external memory.

이어, 필터 엔진(6)은 남아있는 주메모리(5b)의 현재 픽셀 데이터를 내부 버퍼(5a)에 쓰고, 외부 메모리(1)로부터 필터링된 픽셀 데이터의 쓰기 완료 신호를 수신함으로써, 필터링 과정이 완료된다.Then, the filter engine 6 writes the current pixel data of the remaining main memory 5b to the internal buffer 5a and receives a write completion signal of the filtered pixel data from the external memory 1, thereby completing the filtering process. do.

이와 같이, 도 7에 도시된 바와 같이 본 발명의 필터 엔진(Filter Engine)(6)은 필터링할 매크로블록의 픽셀 데이터를 외부 메모리(1)로부터 내부 메모리(5)로 읽어들이기 위해 매크로블록 읽기 요청을 수행한다.As such, as illustrated in FIG. 7, the filter engine 6 of the present invention requests a macroblock read request to read pixel data of a macroblock to be filtered from the external memory 1 to the internal memory 5. Do this.

이 요청에 의해 픽셀 데이터는 에스디램 컨트롤러(SDRAM Controller)(2)와 중재기(Arbiter)(3) 그리고 메모리 액세스 유닛(Memory Access Unit :MAU)(4) 인터페이스를 거쳐서 외부 메모리(1)로부터 내부 메모리(5)로 읽기되어 진다.By this request, the pixel data is internal from the external memory 1 via the SDRAM Controller 2, the Arbiter 3 and the Memory Access Unit (MAU) 4 interface. Read into memory (5).

이러한 일련의 읽기 트랜잭션(Reading Transation)이 완료되면 메모리 액세스 유닛(4)은 데이터의 읽기가 완료되었음을 알리는 읽기 완료 신호를 필터 엔진 쪽에 보내게 되고, 이 신호를 받은 필터 엔진(6)은 앞서 언급된 순서에 의해 필터링을 시작하게 된다.When this series of reading transactions is completed, the memory access unit 4 sends a read completion signal to the filter engine indicating that the reading of the data is completed, and the filter engine 6 having received the signal is described above. Filtering begins by order.

내부 메모리에 필터링을 위한 데이터가 완료된 후 필터링이 시작되면 필터 엔진(6)은 내부 메모리 액세스를 통해 필터링을 시작하고 필터링 완료 후 필터링이 완료된 매크로블록 픽셀 데이터를 내부 메모리(5)로부터 다시 외부 메모리(1)로 다운로드 하기 위해 매크로블록 쓰기 요청을 수행한다.When filtering is started after the data for filtering is completed in the internal memory, the filter engine 6 starts filtering through internal memory access, and after filtering is completed, the macroblock pixel data from which the filtering is completed is restored from the internal memory 5 again. Perform a macroblock write request to download to 1).

이 요청에 의해 픽셀 데이터는 읽기 요청 시와는 반대로 메모리 액세스 유닛(4), 중재기(3), 그리고 에스디램 컨트롤러(2)로 이루어지는 인터페이스를 거쳐서 내부 메모리(5)로부터 외부 메모리(1)로 다운로드 되며, 다운로드 완료 시 쓰기 완료 신호가 필터 엔진(6) 쪽에 전송되면 하나의 매크로블록에 필터링이 완료되게 된다.By this request, the pixel data is transferred from the internal memory 5 to the external memory 1 via an interface consisting of the memory access unit 4, the arbiter 3, and the SDRAM controller 2 as opposed to the read request. When the download is completed and the write completion signal is transmitted to the filter engine 6 when the download is completed, the filtering is completed in one macroblock.

앞서 설명한 바와 같이 외부 메모리(1)에 대한 읽기 또는 쓰기 트랜잭션 과정에는 데이터를 전송하는데 있어서 매우 중요한 역할을 하는 읽기 또는 쓰기 요청과 읽기 또는 쓰기 완료라는 절차가 반드시 필요하다.As described above, the read or write transaction process for the external memory 1 requires a read or write request and a read or write completion process, which play a very important role in transferring data.

그러나, 이러한 절차는 외부 메모리(1)를 인터페이스 하고자 하는 모든 블록들에 의해 요구되는 과정이므로 이러한 요청을 요구하는 블록들이 시스템에 많이 존재하면 존재할수록 트랜잭션을 완료하는데 걸리는 시간이 길어지게 된다.However, since this procedure is required by all the blocks to interface the external memory 1, the more blocks that require such a request exist in the system, the longer it takes to complete a transaction.

따라서, 전송해야 할 데이터가 동일하다고 가정할 경우, 외부 메모리(1)에 대한 읽기 또는 쓰기에 대한 트랜잭션의 수를 줄이려는 노력은 고성능 디블럭킹 필터를 구현하는데 매우 중요한 요소로 작용한다. Therefore, assuming that the data to be transmitted is the same, an effort to reduce the number of transactions for reading or writing to the external memory 1 is a very important factor in implementing a high performance deblocking filter.

도 3 및 도 4에는 인-루프 디블럭킹 필터 구현 시 가장 보편적으로 사용되고 있는 외부 메모리와의 읽기 또는 쓰기 트랜잭션 예를 나타내었다.3 and 4 illustrate an example of a read or write transaction with an external memory which is most commonly used when implementing an in-loop deblocking filter.

먼저 현재 매크로블록에 대한 필터링을 수행하기 위해서는 도 2에 나타낸 바 와 같은 현재 매트로블록(Current MB)(1)(2)와 왼쪽 매트로블록(Left MB)(3)(4), 그리고 위쪽 매트로블록(Upper MB)(5)(6)에 대한 픽셀 데이터가 외부 메모리(1)로부터 읽기 또는 쓰기 되어 져야 한다.First, to perform filtering on the current macroblock, the current macroblock (1) (2), the left macroblock (Left MB) (3) (4), and the upper macroblock as shown in FIG. Pixel data for (Upper MB) (5) (6) must be read or written from the external memory (1).

이러한 읽기 또는 쓰기 트랜잭션은 시스템을 구현하는 방식에 따라서 매우 다르게 구현될 수 있으나 트랜잭션의 수를 줄이기 위한 방법으로 도 3에 나타낸 것처럼 루마(Luma)의 경우에는 현재 매크로블록(Current MB)과 현재 매크로블록에 대한 위쪽 매크로블록(Upper MB)를 16x20 사이즈로 동시에 읽고 쓴 다음 현재 매크로블록에 대한 왼쪽 매크로블록(Left MB)를 4x16 사이즈의 따로 읽거나 쓰는 방식이나 도 4에 나타낸 것처럼 현재 매크로블록과 현재 매크로블록에 대한 왼쪽 매크로 블록을 20X16 사이즈로 동시에 읽거나 쓴 다음 나중에 16x4 사이즈로 현재 매크로블록에 대한 위쪽 매크로블록을 별도로 읽거나 쓰는 방식이 주로 사용된다.Such a read or write transaction may be implemented very differently depending on how the system is implemented. However, as shown in FIG. 3, the current macroblock (Current MB) and the current macroblock in the case of luma are shown as a method for reducing the number of transactions. Read and write the upper macroblock (Upper MB) for 16x20 at the same time, and then read or write the left macroblock (Left MB) for the current macroblock in 4x16 size separately, as shown in Figure 4 or the current macroblock and the current macro. The main method is to read or write the left macro block for the block simultaneously in 20x16 size, and then read or write the top macroblock for the current macroblock separately in 16x4 size later.

즉, 하나의 매크로블록 필터링을 완료하는 데에 적어도 두 번의 트랜잭션이 일어나야 함을 알 수 있다.That is, it can be seen that at least two transactions must occur to complete one macroblock filtering.

그러나, 본 발명을 통해 언급하고자 하는 필터링 방법은 외부 메모리(1)에 대한 읽기 또는 쓰기 트랜잭션의 수를 줄이고 트랜잭션을 위한 데이터 크기를 감소시킬 수 있는 방법으로 도 8에 나타낸 바와 같은 내부 버퍼(1)(2)를 사용하였다. 가장 큰 차이점을 살펴보면, 루마(Luma)의 경우에는 4x20 사이즈의 내부 버퍼(1)를, 크로마(Chroma)의 경우 2x10 사이즈의 내부 버퍼(2)를 필터링하는데 사용했음을 알 수 있고, 또한 도 3이나 도 4에 없었던 루마(Luma) 4x4 왼쪽 위 매트로블록(Left Upper MB)(3)과 크로마(Chroma) 2x2 왼쪽 위 매트로블록(Left Upper MB)(4) 이 필터링을 위해 사용되었음을 알 수 있다.However, the filtering method to be mentioned through the present invention is a method that can reduce the number of read or write transactions to the external memory (1) and reduce the data size for the transaction, the internal buffer (1) as shown in FIG. (2) was used. Looking at the biggest difference, it can be seen that in the case of Luma, 4x20 size internal buffer 1 is used, and in case of Chroma, 2x10 size internal buffer 2 is used for filtering. It can be seen that Luma 4x4 Left Upper MB (3) and Chroma 2x2 Left Upper MB (4) that were not in Figure 4 were used for filtering.

먼저 이 버퍼를 사용하게 된 가장 직접적인 원인을 살펴보면 다음과 같다.First, the most direct reason for using this buffer is as follows.

디블럭킹 필터 구현 시 필터링의 특성상 현재 매크로블록의 오른쪽 가장자리의 4개의 블록 픽셀들(5)(6)이 다음 매크로브록의 필터링 시 왼쪽 매클로블록으로 다시 사용되는 특징을 지니고 있다.Due to the nature of filtering in the implementation of the deblocking filter, the four block pixels 5 and 6 of the right edge of the current macroblock are used as the left macroblock again when filtering the next macroblock.

따라서, 이 네 개의 픽셀 데이터들은 현재 매크로블록 필터링 시에도 사용되지만 다음 매크로블록 필터링 시에도 동시에 사용되는 특성을 지닌다.Therefore, these four pixel data are used for the current macroblock filtering but also used simultaneously for the next macroblock filtering.

따라서, 이 픽셀 데이터들은 현재 매크로블록 필터링 완료 시, 외부메모리에 한 번 씌여졌다가 다음 매크로블록 처리시 다시 읽혀져 와야하기 때문에 이 픽셀 데이터를 외부 메모리에 썼다가 다시 읽는 방법은 매우 비효율적인 방법이 된다.Therefore, this pixel data must be written once to the external memory when the current macroblock filtering is completed and then read again at the next macroblock processing. .

따라서, 본 발명에서는 이 픽셀 데이터를 버퍼에 임시로 저장하는 방식을 사용하였다.Therefore, in the present invention, the pixel data is temporarily stored in a buffer.

두 번째로 본 발명의 특징은 내부 버퍼를 4x16 사이즈로 사용하지 않고 4x20 사이즈로 사용한 것인데, 이것은 도 8에 나타낸 바와 같이 종래에 외부 메모리에 대한 읽기 또는 쓰기 트랜잭션을 두 번에서 한 번으로 줄이기 위한 목적에서 사용된 것이다.Secondly, a feature of the present invention is that the internal buffer is not used in size 4x16 but in size of 4x20. This is to reduce the conventional read or write transaction to external memory from two to one as shown in FIG. It is used by.

이러한 사이즈의 버퍼를 사용하게 되면 도 8에 나타낸 바와 같이 읽기 트랜잭션의 경우에는 루마(Luma)의 경우 현재 매크로블록과 현재 매크로블록의 위쪽 매크로블록으로 구성되는 16x20사이즈의 픽셀 데이터(8)를 읽어오면 되고, 크로마(Chroma)의 경우에도 루마(Luma)의 경우와 동일하게 현재 매크로블록과 현재 매크 로블록의 위쪽 매크로블록으로 구성되는 8x10사이즈의 픽셀 데이터(10)를 읽어오면 된다.If a buffer of such a size is used, as shown in FIG. 8, in the case of a read transaction, when reading the 16x20 pixel data 8 consisting of the current macroblock and the upper macroblock of the current macroblock in the case of luma, In the case of chroma, the 8 × 10 pixel data 10 including the current macroblock and the upper macroblock of the current macroblock may be read as in the case of luma.

본 발명의 쓰기 트랜잭션의 경우에는 특별한 읽기 및 쓰기 트랜잭션을 수행하게 된다.In the case of the write transaction of the present invention, a special read and write transaction is performed.

루마(Luma)의 예를 들어 살펴 보면 다음과 같다.An example of Luma looks like this:

기존의 쓰기 트랜잭션 방식은 읽기 트랜잭션을 통해 읽어온 데이터를 필터링한 후 이 데이터를 그대로 다시 쓰기 트랜잭션에 사용한다.The existing write transaction method filters the data read through the read transaction and uses the data as it is in the write transaction.

그러나, 본 발명을 통해 언급하고자 하는 쓰기 트랜잭션은 내부 버퍼에 있는 4x20사이즈의 픽셀 데이터와 현재 매크로블록의 픽셀 데이터 중 왼쪽으로부터 12x20 사이즈로 구성되는 픽셀 데이터를 조합하여 새로운 형태의 픽셀데이터의 조합을 한 번의 트랜잭션을 통해 쓸 수 있도록 하였다.However, the write transaction to be mentioned through the present invention combines 4x20 size pixel data in the internal buffer with pixel data composed of 12x20 size from the left of the pixel data of the current macroblock to create a new type of pixel data. It can be used in one transaction.

따라서 종래의 쓰기 트랜잭션에 비해 쓰기 트랜잭션 수를 한 번으로 줄일 수 있게 된다.Therefore, compared with the conventional write transaction, the number of write transactions can be reduced to one time.

또한, 본 발명을 통해 제안된 방법은 기존의 방법에 비해 읽기 또는 쓰기 트랜잭션 수행 시 외부메모리와 내부 메모리간에 전송되는 데이터 양을 도 8에 나타낸 바와 같이 루마(Luma)의 경우에는 4x16 픽셀 데이터 사이즈 만큼, 크로마(Chroma)의 경우에는 2x8 픽셀 데이터 사이즈 만큼 감소시킬 수 있게 된다.In addition, the proposed method through the present invention shows the amount of data transmitted between the external memory and the internal memory when performing a read or write transaction as compared with the conventional method, as shown in FIG. In the case of Chroma, it is possible to reduce the size by 2x8 pixel data size.

따라서, 외부 메모리 액세스 시 픽셀 데이터의 전송 속도을 감소된 데이터의 사이즈 만큼 향상시킬 수 있는 장점을 가지고 있다. Therefore, the external memory access has the advantage of improving the transmission speed of the pixel data by the size of the reduced data.

앞서 언급한 바와 같이 기존의 필터링 시스템에서는 외부 메모리로부터 내부 메모리로 픽셀 데이터의 전송이 완료된 후에는 도 5에 나타낸 바와 같은 각 블록 에지에 대한 필터링이 순서대로 진행된다.As mentioned above, in the conventional filtering system, after the transfer of pixel data from the external memory to the internal memory is completed, the filtering of each block edge as shown in FIG. 5 is performed in order.

앞서 설명한 바와 같이 인-루프 디블럭킹 필터에서는 필터링 순서가 왼쪽에서 오른쪽 순으로 이루어지는 버티컬 필터링이 먼저 이루어진 후, 위에서 아래의 순으로 진행되는 수평 필터링이 진행된다.As described above, in the in-loop deblocking filter, vertical filtering in which the filtering order is performed from left to right is performed first, and then horizontal filtering is performed from top to bottom.

따라서, 루마와 크로마에 대해 도 5에 번호 매겨진 순서대로(1)(2) 필터링이 진행되며 매 에지 필터링을 수행할 때 마다, 각 블록에 대한 픽셀 데이터가 내부 메모리로부터 읽고 써지는 과정이 여러 번 반복됨을 알 수 있다.Therefore, the filtering is performed in the order numbered in Fig. 5 for luma and chroma (1) and (2), and each time edge filtering is performed, the pixel data for each block is read and written from the internal memory several times. It can be seen that it is repeated.

따라서, 기존 필터링 시스템의 경우, 각 블록 픽셀 데이터에 대한 읽기와 쓰기 반복 횟수를 세어보면 도 6에 나타낸 바와 같은 결과를 얻어낼 수 있다.Therefore, in the existing filtering system, when the number of read and write repetitions for each block pixel data is counted, a result as shown in FIG. 6 may be obtained.

도 6에서 알 수 있듯이, 종래의 필터링 방식에서는 왼쪽 매트로블록(Left MB)과 위쪽 매트로블록(Upper MB)은 읽기(R)와 쓰기(W)에 대해서 1회씩 카운트되고, 현재 매트로블록(Current MB)에 대해서는 4회씩(1) 또는 3회씩(2)(3) 그리고 2회씩(4) 카운트됨을 알 수 있다.As can be seen in Figure 6, in the conventional filtering method, the left macroblock (Left MB) and the upper macroblock (Upper MB) are counted once for the read (R) and the write (W), and the current macroblock (Current MB) ) Can be counted four times (1) or three times (2) (3) and twice (4).

그러나, 본 발명에서는 이러한 내부 메모리에 대한 읽기와 쓰기 카운트 수를 줄이기 위해서 도 9에 나타낸 바와 같은 필터링 방법을 사용하였다.However, the present invention uses a filtering method as shown in FIG. 9 to reduce the number of read and write counts for the internal memory.

이 방법은 기존의 필터링 방식에서 에지 필터링 순서를 바꾼 것으로, 도 9에 나열한 일련의 순서대로(1)(2) 에지 필터링을 진행하게 되면 도 10에 나타낸 바와 같은 읽기 또는 쓰기 회수를 얻을 수 있다.In this method, the edge filtering order is changed in the existing filtering method. When the edge filtering is performed in the order of the sequence listed in FIG. 9 (1) and (2), the number of reads or writes as shown in FIG. 10 can be obtained.

각 영역에 대한 읽기와 쓰기 회수를 도 6 및 도 10을 통해 비교해보면, 영역 (1)에 대해서는 읽기 쓰기 회수 모두 9개의 블록에 대해 2회씩 줄어들었고, (2)와 (3) 영역의 경우에는 읽기 쓰기 회수 모두 6개의 블록에 대해 1회씩 감소했음을 알 수 있다.6 and 10, the number of reads and writes for each area is reduced by two for each of the nine blocks for the number of read and write areas for area (1), and for areas (2) and (3). It can be seen that the number of reads and writes decreased once for every six blocks.

따라서, 기존의 필터링 방식에 비해 내부 메모리에 대한 읽기 또는 쓰기 회수를 비교적 많이 줄이면서도 기존의 필터링 방식에 대한 픽셀 데이터 의존성을 그대로 유지할 수 있는 특징을 가지고 있음을 알 수 있다Therefore, it can be seen that it has a feature of maintaining the pixel data dependency on the existing filtering method while reducing the number of reads or writes to the internal memory relatively more than the conventional filtering method.

이상에서와 같이 본 발명은 인-루프 디블럭킹 필터 구현 시 외부 메모리와 내부 메모리에 대한 효율적인 액세스 방법을 적용함으로써, 외부 메모리에 대한 읽기 또는 쓰기 트랜잭션 수를 감소시키고 트랜잭션을 위한 데이터 크기를 감소시킬 수 있는 방법과 내부 메모리 액세스에 대한 읽기 또는 쓰기 회수를 감소시킬 수 있는 방법을 제시하기 위한 것이다.As described above, the present invention can apply an efficient access method to the external memory and the internal memory when implementing the in-loop deblocking filter, thereby reducing the number of read or write transactions to the external memory and reducing the data size for the transaction. It is intended to provide a way to reduce the number of reads or writes for internal memory access.

특히, 메모리 액세스와 관련된 부분은 필터 시스템의 성능 및 파워 소모를 결정짓는데 매우 중요한 요소가 되므로 본 발명을 통해 제안되는 필터 구현 방법은 고성능 저전력 필터를 구현하는데 매우 유리한 장점을 지니게 된다.In particular, since the part related to memory access is a very important factor in determining the performance and power consumption of the filter system, the filter implementation method proposed by the present invention has a very advantageous advantage in implementing a high performance low power filter.

본 발명은 디블럭킹 필터 구현 특성상 현재 매크로블록의 오른쪽 가장자리의 4개의 블록 픽셀들이 다음 매크로브록의 필터링 시 왼쪽 매클로블록으로 다시 사용되는 특징을 살리기 위해 4x20 사이즈 루마 내부 버퍼와 2x10 사이즈의 크로마 내부 버퍼를 사용함으로써, 외부 메모리에 대한 읽기와 쓰기 트랜잭션 수를 각각 한 번에 처리할 수 있도록 하였으며, 매 매크로블록마다 읽기 또는 쓰기 트랜잭션 시, 루마의 경우에는 4x16 픽셀 데이터 사이즈만큼의 데이터량을, 크로마의 경우에는 2x8 픽셀 데이터 사이즈만큼의 데이터 전송 양을 감소시킴으로써, 외부 메모리에 대한 전송 속도 또한 향상시킬 수 있는 특징을 갖는다.The present invention provides a 4x20 size luma internal buffer and a 2x10 size chroma internal buffer to preserve the feature that the four block pixels on the right edge of the current macroblock are used as the left macroblock again when filtering the next macroblock. By using, the number of read and write transactions to external memory can be processed at once, and for read or write transactions for each macroblock, the data amount of 4x16 pixel data size for luma, In this case, by reducing the amount of data transfer by the 2x8 pixel data size, the transfer speed to the external memory can also be improved.

본 발명은 또한 내부 메모리에 대한 읽기와 쓰기 카운트 수를 줄이기 위해서 종래의 블록 에지 필터링 순서를 변환하여 필터링 하도록 하였다.The present invention also converts and filters the conventional block edge filtering order to reduce the number of read and write counts for the internal memory.

이 방법은 특히 기존의 픽셀 데이터에 대한 처리 의존성을 그대로 유지하는 특징을 가지면서 블록 에지 필터링 순서만을 바꾸었기 때문에 별도의 추가 구현 절차 없이 기존의 방식과 동일한 필터링을 수행할 수 있을 뿐만 아니라, 기존의 방식에 비해 내부 메모리에 대한 읽기 또는 쓰기 회수를 상당히 감소시킬 수 있는 방안이 되므로 매우 효과적인 디블럭킹 필터 구현 방법이 될 수 있다.This method changes the order of block edge filtering in particular, while maintaining the processing dependency on the existing pixel data, so that the same filtering as the existing method can be performed without any additional implementation procedure. Compared to the method, the method can significantly reduce the number of reads or writes to the internal memory, which is a very effective deblocking filter implementation method.

이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정해져야 한다.Those skilled in the art will appreciate that various changes and modifications can be made without departing from the spirit of the present invention. Therefore, the technical scope of the present invention should not be limited to the contents described in the embodiments, but should be defined by the claims.

Claims (11)

픽셀 데이터가 씌여진 외부 메모리;An external memory to which pixel data is written; 이미 필터링된 이전 픽셀 데이터가 씌여진 소정 크기의 내부 버퍼와, 필터링할 현재의 픽셀 데이터가 씌여진 소정 크기의 주메모리를 가지는 내부 메모리; 그리고,An internal memory having an internal buffer of a predetermined size to which previously filtered previous pixel data has been written, and a main memory of the predetermined size to which the current pixel data to be filtered is written; And, 상기 외부 메모리로부터 필터링할 현재 픽셀 데이터를 읽는 단계와, 상기 필터링할 현재 픽셀 데이터를 상기 내부 메모리의 주메모리에 쓰는 단계와, 상기 주메모리에 씌여진 현재 픽셀 데이터를 필터링하는 단계와, 상기 필터링된 내부 버퍼의 이전 픽셀 데이터와 상기 필터링된 주메모리의 현재 픽셀 데이터 일부를 상기 외부 메모리에 쓰는 단계와, 상기 남아있는 주메모리의 현재 픽셀 데이터를 상기 내부 버퍼에 쓰는 단계를 수행하는 필터 엔진을 포함하여 구성되는 것을 특징으로 하는 비디오 디코더의 인-루프 디블럭킹 필터 시스템.Reading current pixel data to be filtered from the external memory, writing the current pixel data to be filtered to the main memory of the internal memory, filtering current pixel data written to the main memory, and filtering the And a filter engine for writing previous pixel data of an internal buffer and a portion of the current pixel data of the filtered main memory to the external memory, and writing the current pixel data of the remaining main memory to the internal buffer. An in-loop deblocking filter system of a video decoder. 제 1 항에 있어서, 상기 내부 메모리 중 루마(Luma) 영역의 경우, 상기 내부 버퍼는 4x20 사이즈이고, 상기 주메모리는 16x20 사이즈이며, 상기 내부 메모리 중 크로마(Chroma) 영역의 경우, 상기 내부 버퍼는 2x10 사이즈이고, 상기 주메모리는 8x10 사이즈인 것을 특징으로 하는 비디오 디코더의 인-루프 디블럭킹 필터 시스템.The internal buffer of claim 1, wherein the internal buffer has a size of 4 × 20, the main memory has a size of 16 × 20, and the internal buffer has a size of Chroma in the internal memory. 2x10 size and the main memory is 8x10 size in-loop deblocking filter system of the video decoder. 제 2 항에 있어서, 상기 루마(Luma) 영역의 내부 버퍼는 4x16 왼쪽 매크로블록(Left Upper MB)과 4x4 왼쪽 위 매크로블록(Left Upper MB)으로 구성되고, 상기 루마(Luma) 영역의 주메모리는 16x16 현재 매크로블록과 16x4 위쪽 매크로블록으로 구성되는 것을 특징으로 하는 비디오 디코더의 인-루프 디블럭킹 필터 시스템.The internal buffer of the luma region is configured of a 4x16 left upper macroblock and a 4x4 left upper macroblock. An in-loop deblocking filter system of a video decoder, characterized by consisting of a 16x16 current macroblock and a 16x4 upper macroblock. 제 2 항에 있어서, 상기 크로마(Chroma) 영역의 내부 버퍼는 2x8 왼쪽 매크로블록(Left Upper MB)과 2x2 왼쪽 위 매크로블록(Left Upper MB)으로 구성되고, 상기 크로마(Chroma) 영역의 주메모리는 8x8 현재 매크로블록(Current MB)과 8x2 위쪽 매크로블록(Upper MB)으로 구성되는 것을 특징으로 하는 비디오 디코더의 인-루프 디블럭킹 필터 시스템.3. The chroma buffer of claim 2, wherein the internal buffer of the chroma region comprises 2 × 8 left upper macroblocks and 2 × 2 left upper macroblocks. An in-loop deblocking filter system of a video decoder, comprising 8x8 current macroblocks (Current MB) and 8x2 upper macroblocks (Upper MB). 제 1 항에 있어서, 상기 외부 메모리와 내부 메모리 사이에는 에스디램 컨트롤러(SDRAM Controller)와 중재기(Arbiter) 그리고 메모리 액세스 유닛(Memory Access Unit : MAU)이 구성되어 있고, 상기 외부 메모리와 내부 메모리의 픽셀 데이터는 상기 에스디램 컨트롤러와 중재기 그리고 메모리 액세스 유닛을 거쳐 이동되는 것을 특징으로 하는 비디오 디코더의 인-루프 디블럭킹 필터 시스템.The memory device of claim 1, wherein an SDRAM controller, an arbiter, and a memory access unit (MAU) are configured between the external memory and the internal memory. In-loop deblocking filter system of a video decoder, wherein the pixel data is moved through the SDRAM controller, the arbiter and a memory access unit. 픽셀 데이터가 씌여진 외부 메모리와, 이미 필터링된 이전 픽셀 데이터가 씌여진 내부 버퍼와 필터링할 현재의 픽셀 데이터가 씌여진 주메모리를 갖는 내부 메모리를 포함하는 비디오 디코더의 인-루프 디블럭킹 필터 시스템의 필터링 방법에 있어서,An in-loop deblocking filter system of a video decoder comprising an external memory with pixel data written therein, an internal memory with already filtered previous pixel data written therein and a main memory with current pixel data written filtered out. In the filtering method, 상기 외부 메모리로부터 필터링할 현재 픽셀 데이터를 읽어오는 단계;Reading current pixel data to be filtered from the external memory; 상기 읽어온 현재 픽셀 데이터를 상기 내부 메모리의 주메모리에 쓰는 단계;Writing the read current pixel data to a main memory of the internal memory; 상기 주메모리에 씌여진 현재 픽셀 데이터를 필터링하는 단계;Filtering current pixel data written to the main memory; 상기 필터링된 내부 버퍼의 이전 픽셀 데이터와 상기 필터링된 주메모리의 현재 픽셀 데이터 일부를 상기 외부 메모리에 쓰는 단계;Writing previous pixel data of the filtered internal buffer and a portion of the current pixel data of the filtered main memory to the external memory; 상기 남아있는 주메모리의 현재 픽셀 데이터를 상기 내부 버퍼에 쓰는 단계를 포함하여 이루어지는 것을 특징으로 하는 비디오 디코더의 인-루프 디블럭킹 필터 시스템의 필터링 방법.And writing the current pixel data of the remaining main memory to the internal buffer. 제 6 항에 있어서, 상기 외부 메모리로부터 필터링할 현재 픽셀 데이터를 읽어오는 단계 이전에, 상기 외부 메모리의 픽셀 데이터를 읽기 요청하는 단계를 더 수행하는 것을 특징으로 하는 비디오 디코더의 인-루프 디블럭킹 필터 시스템의 필터링 방법.7. The in-loop deblocking filter of a video decoder according to claim 6, further comprising the step of requesting to read the pixel data of the external memory prior to reading the current pixel data to be filtered from the external memory. How to filter the system. 제 6 항에 있어서, 상기 주메모리에 씌여진 현재 픽셀 데이터를 필터링하는 단계 이전에, 상기 현재 픽셀 데이터의 읽기 완료 신호를 수신하는 단계를 더 수행하는 것을 특징으로 하는 비디오 디코더의 인-루프 디블럭킹 필터 시스템의 필터링 방법.7. The in-loop deblocking of a video decoder of claim 6, further comprising receiving a read completion signal of the current pixel data before filtering the current pixel data written to the main memory. How to filter the filter system. 제 6 항에 있어서, 상기 필터링된 내부 버퍼의 이전 픽셀 데이터와 상기 필 터링된 주메모리의 현재 픽셀 데이터 일부를 상기 외부 메모리에 쓰는 단계 이전에, 상기 필터링된 픽셀 데이터를 상기 외부 메모리에 쓰기 요청하는 단계를 더 수행하는 것을 특징으로 하는 비디오 디코더의 인-루프 디블럭킹 필터 시스템의 필터링 방법.The method of claim 6, wherein before the writing of the previous pixel data of the filtered internal buffer and a part of the current pixel data of the filtered main memory to the external memory, a write request is performed to the external memory. And further performing the steps of filtering the in-loop deblocking filter system of the video decoder. 제 6 항에 있어서, 상기 남아있는 주메모리의 현재 픽셀 데이터를 상기 내부 버퍼에 쓰는 단계 이후에, 상기 필터링된 픽셀 데이터의 쓰기 완료 신호를 수신하는 단계를 더 수행하는 것을 특징으로 하는 비디오 디코더의 인-루프 디블럭킹 필터 시스템의 필터링 방법.7. The method of claim 6, further comprising receiving a write completion signal of the filtered pixel data after writing the current pixel data of the remaining main memory to the internal buffer. -Filtering method of the loop deblocking filter system. 제 6 항에 있어서, 상기 주메모리에 씌여진 현재 픽셀 데이터를 필터링하는 단계는,The method of claim 6, wherein the filtering of the current pixel data written to the main memory comprises: 상기 주 메모리의 첫 번째 열(row)에 위치하는 각 블록의 픽셀 데이터로부터 마지막 열에 위치하는 각 블록의 픽셀 데이터까지 순차적으로 수직 에지 필터링(vertical edge filtering)을 수행하는 단계; 그리고,Performing vertical edge filtering sequentially from pixel data of each block located in the first row of the main memory to pixel data of each block located in the last column; And, 상기 주 메모리의 첫 번째 열(row)에 위치하는 각 블록의 픽셀 데이터로부터 마지막 열에 위치하는 각 블록의 픽셀 데이터까지 순차적으로 수평 에지 필터링(horizontal edge filtering)을 수행하는 단계를 포함하여 이루어지는 것을 특징으로 하는 비디오 디코더의 인-루프 디블럭킹 필터 시스템의 필터링 방법.And performing horizontal edge filtering sequentially from pixel data of each block located in the first row of the main memory to pixel data of each block located in the last column. The filtering method of the in-loop deblocking filter system of the video decoder.
KR1020050126269A 2005-12-20 2005-12-20 In-loop Deblocking Filter System and method for filterring data using the same KR100753504B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050126269A KR100753504B1 (en) 2005-12-20 2005-12-20 In-loop Deblocking Filter System and method for filterring data using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050126269A KR100753504B1 (en) 2005-12-20 2005-12-20 In-loop Deblocking Filter System and method for filterring data using the same

Publications (2)

Publication Number Publication Date
KR20070065635A KR20070065635A (en) 2007-06-25
KR100753504B1 true KR100753504B1 (en) 2007-08-31

Family

ID=38364884

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050126269A KR100753504B1 (en) 2005-12-20 2005-12-20 In-loop Deblocking Filter System and method for filterring data using the same

Country Status (1)

Country Link
KR (1) KR100753504B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101063423B1 (en) 2009-03-04 2011-09-07 주식회사 코아로직 Deblock filtering method and apparatus
KR101063421B1 (en) * 2009-03-04 2011-09-07 주식회사 코아로직 Video decoder and video decoding method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040247034A1 (en) 2003-04-10 2004-12-09 Lefan Zhong MPEG artifacts post-processed filtering architecture
US20050259744A1 (en) 2004-05-21 2005-11-24 Timothy Hellman Video deblocking memory utilization
KR20050121627A (en) * 2004-06-22 2005-12-27 삼성전자주식회사 Filtering method of audio-visual codec and filtering apparatus thereof
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
US20040247034A1 (en) 2003-04-10 2004-12-09 Lefan Zhong MPEG artifacts post-processed filtering architecture
US20050259744A1 (en) 2004-05-21 2005-11-24 Timothy Hellman Video deblocking memory utilization
KR20050121627A (en) * 2004-06-22 2005-12-27 삼성전자주식회사 Filtering method of audio-visual codec and filtering apparatus thereof
KR20060117059A (en) * 2005-05-12 2006-11-16 (주)씨앤에스 테크놀로지 The system for minimizing frame memory access of deblocking filter module

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101063423B1 (en) 2009-03-04 2011-09-07 주식회사 코아로직 Deblock filtering method and apparatus
KR101063421B1 (en) * 2009-03-04 2011-09-07 주식회사 코아로직 Video decoder and video decoding method

Also Published As

Publication number Publication date
KR20070065635A (en) 2007-06-25

Similar Documents

Publication Publication Date Title
US20210281862A1 (en) Method and apparatus of hevc de-blocking filter
KR100994979B1 (en) Parallel decoding of intra-encoded video
EP1803091B1 (en) Methods for determining block averages for film grain simulation
KR100695141B1 (en) Memory access apparatus and method, data write/read apparatus and method for use in image processing system
US20120189064A1 (en) Adaptive loop filtering using multiple filter shapes
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
US20070071099A1 (en) External memory device, method of storing image data for the same, and image processor using the method
Cheng et al. An in-place architecture for the deblocking filter in H. 264/AVC
MX2014012311A (en) Moving image encoding device, moving image decoding device, moving image encoding method and moving image decoding method.
CN101166277B (en) Method for accessing memory in apparatus for processing moving pictures
US20060262990A1 (en) Dual-mode high throughput de-blocking filter
US20120087412A1 (en) Method for Determining Boundary Strength
US20080259089A1 (en) Apparatus and method for performing motion compensation by macro block unit while decoding compressed motion picture
CA3105441A1 (en) Apparatus and method for filtering in video coding
CN103109535B (en) Image-reproducing method, image-reproducing apparatus, camera system and regenerative system
US7953161B2 (en) System and method for overlap transforming and deblocking
JPH09205651A (en) Image data decoding method and decoder using same
US6862318B2 (en) Image data encoding device
KR100753504B1 (en) In-loop Deblocking Filter System and method for filterring data using the same
US9918079B2 (en) Electronic device and motion compensation method
WO2022116824A1 (en) Video decoding method, video encoding method, related devices, and storage medium
CA3113787A1 (en) Decoding prediction method, apparatus and computer storage medium which use reference samples adjacent to at least one side of decoding block
Shih et al. An AMBA-compliant deblocking filter IP for H. 264/AVC
CN100593956C (en) Method for storing and exchanging filtering parameter data

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130724

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140724

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150724

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160722

Year of fee payment: 10