KR20050121627A - Filtering method of audio-visual codec and filtering apparatus thereof - Google Patents

Filtering method of audio-visual codec and filtering apparatus thereof Download PDF

Info

Publication number
KR20050121627A
KR20050121627A KR1020040055893A KR20040055893A KR20050121627A KR 20050121627 A KR20050121627 A KR 20050121627A KR 1020040055893 A KR1020040055893 A KR 1020040055893A KR 20040055893 A KR20040055893 A KR 20040055893A KR 20050121627 A KR20050121627 A KR 20050121627A
Authority
KR
South Korea
Prior art keywords
filtering
loop
boundary
pixels
block
Prior art date
Application number
KR1020040055893A
Other languages
Korean (ko)
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 US11/156,603 priority Critical patent/US20050281339A1/en
Priority to US11/178,409 priority patent/US20060013315A1/en
Priority to CNB2005100848539A priority patent/CN100490538C/en
Publication of KR20050121627A publication Critical patent/KR20050121627A/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • 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

Landscapes

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

Abstract

본 발명은 동영상 코덱에 관한 것으로, 보다 구체적으로는, 동영상 코덱에서 필터링 하는 방법 및 그 필터링 장치에 관한 것이다. 본 발명에 따른 동영상 코덱의 필터링 방법은, 매크로 블록 단위로 필터링 영역을 결정하는 단계; 필터링 영역으로 결정된 매크로 블록과 인접한 이전의 매크로 블록간의 경계 부분의 소정 영역을 필터링 영역에 더 포함시키는 단계; 및 필터링 영역에 대하여 시간적 순서에 따라 인과적(causal)으로 디블로킹(de-blocking) 필터링을 수행하는 단계를 포함하는 것을 특징으로 한다.The present invention relates to a video codec, and more particularly, to a method for filtering in a video codec and a filtering device thereof. A filtering method of a video codec according to the present invention may include: determining a filtering region in units of macro blocks; Further including a predetermined area of the boundary portion between the macroblock determined as the filtering area and the previous macroblock adjacent to the filtering area; And performing causal de-blocking filtering on the filtering region in a chronological order.

이에 따라, VC9에서 채택하고 있는 비인과적인(non-causal) 루프 필터를 변형하여 소정의 버퍼를 더 구비함으로써, 메모리 대역폭의 증가나 프레임 딜레이 등의 문제없이, 블로킹 현상(blocking artifact)을 효율적으로 필터링할 수 있다. Accordingly, by modifying the non-causal loop filter employed in the VC9 and further including a predetermined buffer, blocking artifacts can be efficiently prevented without increasing memory bandwidth or frame delay. You can filter.

Description

동영상 코덱의 필터링 방법 및 필터링 장치{Filtering method of audio-visual CODEC and filtering apparatus thereof}Filtering method of audio-visual CODEC and filtering apparatus

본 발명은 동영상 코덱(coder and decoder: 이하 CODEC이라 약칭)에 관한 것으로, 보다 구체적으로는, 동영상 코덱에서 필터링하는 방법 및 그 필터링 장치에 관한 것이다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a video codec and hereinafter referred to as a codec, and more particularly, to a method for filtering in a video codec and a filtering device thereof.

최근 마이크로소프트(Microsoft)사는 국제 표준화 기구 중 하나인 SMPTE (the Society of Motion Picture and Television Engineers)에 동영상 압축 표준안인 VC9를 제출하였다. 현재 VC9 표준안에 대한 검토가 활발히 진행 중이며, 조만간 일부 수정을 거쳐 국제 표준으로 채택될 전망이다. Microsoft recently submitted a video compression standard, VC9, to the Society of Motion Picture and Television Engineers (SMPTE), one of the international standards bodies. Currently, the VC9 standard is being actively reviewed, and it is expected to be adopted as an international standard after some modification.

이미 동영상 압축 표준으로 채택되어 널리 응용되고 있는 MPEG(Motion Picture Experts Group)-2, MPEG-4, H.264 등에 더하여, VC9도 대표적인 동영상 압축 표준으로 자리잡을 것으로 기대된다. VC9은 가장 압축 효율이 좋은 H.264에 대비하여 압축 효율이 80% 가까이 근접하면서도, 구현에 있어서의 복잡도는 H.264의 60% 수준으로 복잡도 대 성능비가 우수한 것으로 평가되고 있다. 물론, MPEG-2나 MPEG-4에 비해서는 화질 측면에서 우위를 보이는 것으로 알려지고 있다. In addition to MPEG-2, MPEG-4, and H.264, which are already adopted and widely adopted as video compression standards, VC9 is expected to become a representative video compression standard. While the VC9 is close to 80% of the compression efficiency compared to the most efficient H.264, the implementation is estimated to have a high complexity-to-performance ratio of 60% of H.264. Of course, it is known to have an advantage in terms of image quality compared to MPEG-2 or MPEG-4.

전술한 동영상 압축 표준들에 따르면, 블록 단위로 디지털 영상을 부호화(encoding: 이하 인코딩이라 함) 및 복호화(decoding: 이하 디코딩이라 함)한다. 이때, 디코딩 과정을 거쳐 재생되는 디지털 영상에서는 시각적으로 블록의 경계선이 구별되어 보이는 현상이 발생한다. 이러한 현상을 블로킹 현상(blocking artifact)이라고 하며, 블로킹 현상을 제거하기 위하여 루프 필터(loop filter)가 사용된다. 즉, 루프 필터는 블로킹 현상을 제거(de-blocking)하기 위해 코덱(CODEC: coder and decoder)의 코딩 루프 안에 삽입된 필터를 말한다. According to the above-described video compression standards, digital video is encoded and decoded on a block basis. In this case, in the digital image reproduced through the decoding process, a boundary line of a block may be visually distinguished. This phenomenon is called blocking artifact, and a loop filter is used to remove the blocking phenomenon. That is, the loop filter refers to a filter inserted into a coding loop of a coder and a decoder to deblock the blocking phenomenon.

이하에서는, 보다 구체적으로, VC9의 디코딩 과정을 살펴본다.Hereinafter, the decoding process of the VC9 will be described in more detail.

도 1은 VC9 디코더의 블록도 이다.1 is a block diagram of a VC9 decoder.

도 1을 참조하면, VC9 디코더는, 비트스트림 파싱부(bitstream parsing unit), 역 VLC부(inverse Variable Length Coding unit), 역 양자화부(inverse Quantization unit), 역 변환부(inverse Transforming unit), 움직임 보상부(motion compensation unit), 오버랩 스무딩 및 루프 필터링부(overlap smoothing and loop filtering unit), 강도 보상 및 범위 조절부(intensity compensation and range scaling unit), 그리고 메모리 등을 구비한다. 특히, 본 발명은 전술한 디코더의 구성부분 중 오버랩 스무딩 및 루프 필터(loop filter)에 관한 것이다.Referring to FIG. 1, a VC9 decoder includes a bitstream parsing unit, an inverse variable length coding unit, an inverse quantization unit, an inverse transforming unit, and a motion. A motion compensation unit, an overlap smoothing and loop filtering unit, an intensity compensation and range scaling unit, and a memory. In particular, the present invention relates to overlap smoothing and loop filters of the above-described decoder components.

VC9 디코더에서 시퀀스 파라미터 중 OVERLAP과 LOOPFILTER가 1로 설정되어 있으면, 그림과 같이 역 VLC부, 역 양자화부, 및 역 변환부를 거친 복원 영상(reconstructed picture)에 대해 오버랩 스무딩 및 루프 필터링 과정이 몇 가지 조건에 따라 수행될 수 있다. 이 필터링 과정은 복원 영상이 움직임 보상을 위한 참조 프레임(reference frame)으로 사용되기 전에 적용되어야 한다. 이와 같이 복원 영상이 필터링 과정을 거쳐 움직임 보상을 위한 참조 프레임으로 사용되므로, 디코더는 표준에서 정한 필터링 과정을 엄격하게 수행해야 한다. 일반적으로 하나의 픽처(picture)는 여러 개의 슬라이스(slice)로 구성되므로, 각 슬라이스를 위한 오버랩 스무딩 및 루프 필터링은 독립적으로 수행된다. When OVERLAP and LOOPFILTER are set to 1 in the VC9 decoder, the overlap smoothing and loop filtering process is performed for the reconstructed picture that has undergone the inverse VLC, inverse quantization, and inverse transform parts as shown in the figure. Can be performed according to. This filtering process should be applied before the reconstructed picture is used as a reference frame for motion compensation. Since the reconstructed image is used as a reference frame for motion compensation through the filtering process, the decoder must strictly perform the filtering process defined in the standard. In general, since a picture is composed of several slices, overlap smoothing and loop filtering for each slice are performed independently.

이하, 먼저 루프 필터링에 대해 구체적으로 살펴본다.Hereinafter, the loop filtering will be described in detail.

루프 필터링의 주된 목적은 양자화로 인해 블록 경계에서 발생하는 블로킹 현상을 제거하거나 줄이는 데 있다. 이 때, I 픽처의 경우 8x8 블록 단위로 변환되므로 수직 및 수평으로 8화소 단위로 필터링이 수행된다. 즉, 8화소, 16화소, 24 화소마다 루프 필터링이 수행된다. The main purpose of loop filtering is to eliminate or reduce the blocking that occurs at block boundaries due to quantization. At this time, since the I picture is converted into 8x8 block units, filtering is performed in 8 pixel units vertically and horizontally. That is, loop filtering is performed every 8 pixels, 16 pixels, and 24 pixels.

한편, P 픽처의 경우 변환 타입이 8x8, 8x4, 4x8중 어느 것인가에 따라 블록 경계가 수직 혹은 수평으로 4 화소 단위마다 발생할 수 있다. 따라서, 수직 및 수평으로 4화소 단위로 루프 필터링이 수행된다. 즉, 4화소, 8 화소, 12화소마다 필터링이 수행된다. Meanwhile, in the case of a P picture, a block boundary may occur vertically or horizontally every 4 pixel units according to any one of 8x8, 8x4, and 4x8. Therefore, loop filtering is performed in units of four pixels vertically and horizontally. That is, filtering is performed every 4 pixels, 8 pixels, and 12 pixels.

루프 필터링 과정을 보다 구체적으로 살펴보면 다음과 같다.The loop filtering process is described in more detail as follows.

1) I 픽처에서의 루프 필터링 1) In an I picture Loop Filter

I 픽처에서는 블로킹 현상을 제거하기 위한 디블로킹 필터링이 모든 8x8 블록 경계에서 수행된다. 도 2는 I 픽처에서 루프 필터링된 수평/수직 블록 경계의 화소들을 나타내는 도면이다. In the I picture, deblocking filtering to remove the blocking phenomenon is performed at all 8x8 block boundaries. 2 is a diagram illustrating pixels of a horizontal / vertical block boundary loop filtered in an I picture.

도 2를 참조하면, YCbCr 각 원소로 구성된 픽처의 좌측 상단 부분이 도시되어 있다. 그림에서 십자 표시(+)는 화소(pixel)를 나타내며, 동심원(o)은 필터링 된 화소를 나타낸다. 그림에 도시된 바와 같이, 최상단의 수평 방향 한 줄과 좌측의 첫 수직 방향 한 줄은 필터링되지 않는다. 또한, 표시되지는 않았지만, 최하단 수평 방향 한 줄과 마지막 수직 방향 한 줄도 필터링되지 않는다. 즉, 하나의 프레임에 대해, N이 수평으로 8x8 블록들의 수이고, M이 수직으로 8x8 블록들의 수라고 가정하면, 수평 방향으로는 (7,8), (15,16) .. ((N-1)*8-1, (N-1)*8) 번째 수평 라인만 루프 필터링된다. 또한, 수직 방향으로는 (7, 8), (15, 16) .. ((M-1)*8-1, (M-1)*8) 번째 수직 라인만 루프 필터링된다. Referring to Fig. 2, the upper left portion of the picture composed of each element of YCbCr is shown. In the figure, the cross mark (+) represents a pixel and the concentric circles (o) represent a filtered pixel. As shown in the figure, the top horizontal line and the first vertical line on the left are not filtered. Also, although not displayed, the bottom one horizontal line and the last one vertical line are not filtered. That is, for one frame, assuming that N is the number of 8x8 blocks horizontally and M is the number of 8x8 blocks vertically, (7,8), (15,16) .. ((N -1) * 8-1, (N-1) * 8) Only horizontal lines are loop filtered. Also, only the (7, 8), (15, 16) ... ((M-1) * 8-1, (M-1) * 8) th vertical lines are loop filtered in the vertical direction.

나아가, 루프 필터링되는 순서도 매우 중요하다. 즉, 하나의 프레임 전체에 대하여, 모든 수평 경계 라인들이 필터링되고 난 후, 모든 수직 경계 라인들이 필터링된다. 따라서, 하나의 프레임을 필터링하기 위하여, 수평 방향으로 모든 경계 라인에 대해 필터링하고, 그 결과를 메모리에 저장하고 나서, 수직 방향으로 모든 경계 라인에 대해 필터링하여야 한다. 이와 같은 비인과적인(non-causal) 필터링 방식 때문에, 하나의 프레임을 필터링 하는데 많은 메모리 대역폭(bandwidth)이 필요하며, 수평 및 수직 방향의 필터링이 모두 끝날 때까지 기다려야 하므로 프레임 딜레이(frame delay)가 발생할 수 있다.Furthermore, the order of loop filtering is also very important. That is, for all of one frame, after all horizontal boundary lines are filtered, all vertical boundary lines are filtered out. Therefore, in order to filter one frame, it is necessary to filter on all boundary lines in the horizontal direction, store the result in memory, and then filter all boundary lines in the vertical direction. This non-causal filtering method requires a lot of memory bandwidth to filter a single frame and waits for both horizontal and vertical filtering to finish. May occur.

2) P 픽처에서의 루프 필터링 2) in a P picture Loop Filter

P 픽처는 블록들이 인트라 모드(Intra mode)일수도 있고, 인터 모드(Inter mode)일 수도 있다. 인트라 모드의 블록들은 항상 8x8 변환만 사용하므로, 8x8 블록 경계만 루프 필터링된다. 반면, 인터 모드의 블록들은 잔존 에러(residual error)를 디코딩하기 위해 8x8, 8x4, 4x8 또는 4x4 역 변환을 사용한다. 따라서, 주변 블록들의 상황에 따라, 현재 블록과 인접 블록간의 경계가 루프 필터링될 수도 있고, 그렇지 않을 수도 있다. 어떤 블록 경계(8x8) 또는 서브블록 경계(8x4, 4x8, 또는 4x4)를 루프 필터링할지는 다음의 기준에 따라 결정된다.The P picture may be blocks in Intra mode or in Inter mode. Intra mode blocks always use only 8x8 transforms, so only 8x8 block boundaries are loop filtered. On the other hand, blocks in inter mode use 8x8, 8x4, 4x8 or 4x4 inverse transforms to decode residual errors. Thus, depending on the situation of neighboring blocks, the boundary between the current block and the neighboring block may or may not be loop filtered. Which block boundary 8x8 or subblock boundary 8x4, 4x8, or 4x4 is loop filtered is determined according to the following criteria.

(1) 8x8 블록 내의 인코딩된 서브 블록들 (8x4, 4x8 or 4x4) 간의 경계들은 무조건 루프 필터링된다. (1) The boundaries between encoded subblocks (8x4, 4x8 or 4x4) in an 8x8 block are unconditionally loop filtered.

(2) 한 블록(또는 서브블록)과 이웃한 블록(또는 서브블록)이 동일한 움직임 벡터를 갖고 둘 다 잔존 에러를 갖지 않으면, 그 블록 경계는 필터링하지 않는다. 이 경우를 제외하고는 루프 필터링된다.(2) If a block (or subblock) and a neighboring block (or subblock) have the same motion vector and both do not have residual errors, the block boundary is not filtered. Except in this case, it is loop filtered.

도 3은 P 픽처에서 루프 필터링되는 블록 경계의 예들을 나타내는 도면이다.3 is a diagram illustrating examples of block boundaries that are loop filtered in a P picture.

도 3을 참조하면, 인접한 블록들간의 경계에서 언제 루프 필터링이 수행되는지가 도시되어 있다. 해당 블록들의 움직임 벡터들이 같다고 가정하면(만약 다르다면 무조건 루프 필터링을 수행한다), 회색으로 표시된 블록(또는 서브 블록들)은 변환 계수가 존재하는 부호화된 블록(또는 서브 블록)들이다. 흰색으로 표시된 블록(또는 서브 블록들)은 어떤 변환 계수들도 갖지 않는 블록들이다. 두꺼운 라인으로 표시된 부분은 필터링 된 경계들을 의미하며, 얇은 라인으로 표시된 부분들은 필터링되지 않은 경계들을 나타낸다. 전술한 두 가지 기준에 따라, 필터링될 블록의 경계들 또는 서브 블록의 경계들이 결정된다. 도 3에 도시된 예들은 두 블록이 수평으로 이웃한 경우들만을 도시하지만, 두 블록이 수직으로 이웃한 경우에도 동일한 방식이 적용된다.Referring to FIG. 3, it is shown when loop filtering is performed at the boundary between adjacent blocks. Assuming that the motion vectors of the blocks are the same (unconditionally perform loop filtering if different), the blocks (or subblocks) shown in gray are coded blocks (or subblocks) with transform coefficients present. Blocks (or sub-blocks) shown in white are blocks that do not have any transform coefficients. The portions marked with thick lines represent filtered boundaries, and the portions marked with thin lines represent unfiltered boundaries. According to the above two criteria, the boundaries of the block to be filtered or the boundaries of the sub block are determined. The examples shown in FIG. 3 show only cases where two blocks are horizontally neighboring, but the same method applies even when two blocks are vertically neighboring.

도 4는 P 픽처에서 루프 필터링 된 블록 수평/수직 경계의 화소들을 나타내는 도면이다.4 is a diagram illustrating pixels of a block horizontal / vertical boundary that are loop filtered in a P picture.

도 4(a)를 참조하면, 루프 필터링이 가능한 수평 경계들이 도시되어 있다. 8x8 및 8x4 수평 경계들이 필터링 가능하므로 매 4번째와 5번째, 8번째와 9번째, 12번째와 13번째 라인들이 루프 필터링 가능한 경계 화소들이 될 수 있다. Referring to FIG. 4A, horizontal boundaries capable of loop filtering are illustrated. Since 8x8 and 8x4 horizontal boundaries are filterable, every fourth and fifth, eighth and ninth, twelfth and thirteenth lines may be loop filterable boundary pixels.

한편, 도 4(b)를 참조하면, 루프 필터링 가능한 수직 경계들이 도시되어 있다. Meanwhile, referring to FIG. 4 (b), loop-filterable vertical boundaries are illustrated.

8x8 및 4x8 수직 경계들이 루프 필터링 가능하므로 매 4번째와 5번째, 8번째와 9번째, 12번째와 13번째 라인들이 루프 필터링 가능한 경계 화소들이 될 수 있다. I 픽처와 마찬가지로 맨 처음과 맨 마지막 수직/수평 라인들은 루프 필터링되지 않는다. Since 8x8 and 4x8 vertical boundaries are loop-filterable, every fourth and fifth, eighth and ninth, 12th and 13th lines may be loop-filterable boundary pixels. Like the I picture, the first and last vertical / horizontal lines are not loop filtered.

나아가, P 픽처의 경우에도 루프 필터링되는 순서가 매우 중요하다. 첫째, 프레임 전체에 대하여 모든 8x8 블록의 수평 경계들이 상단 라인부터 차례로 루프 필터링된다. 8x8 블록의 수평 경계들의 필터링 결과는 메모리에 저장된다. 둘째, 프레임 전체에 대하여 모든 8x4 수평 경계 라인들이 역시 상단 라인부터 차례로 루프 필터링된다. 그 필터링 결과 또한 메모리에 저장된다. 셋째, 수직 방향으로는 프레임 전체에 대하여 모든 8x8 수직 경계들이 좌측부터 시작해서 루프 필터링되고 그 결과는 메모리에 저장된다. 마지막으로, 프레임 전체에 대하여 모든 4x8 블록 경계들은 역시 좌측부터 시작해서 루프 필터링되어 그 결과가 메모리에 저장된다 즉, 하나의 프레임 전체에 대하여, 모든 수평 경계 라인들이 두 단계에 걸쳐 필터링되고 난 후, 모든 수직 경계 라인들에 대해 두 단계에 걸쳐 루프 필터링된다. 이와 같은 비인과적인(non-causal) 필터링 방식 때문에, 하나의 프레임을 필터링하기 위하여, 네 단계의 루프 필터링 과정을 거쳐야 하므로 프레임 딜레이가 발생할 수 있다. 또한, 하나의 프레임을 루프 필터링 하는데 많은 메모리 대역폭이 필요하게 된다. Furthermore, in the case of P pictures, the order of loop filtering is very important. First, horizontal boundaries of all 8x8 blocks for the entire frame are loop filtered in order from the top line. The filtering result of the horizontal boundaries of the 8x8 block is stored in memory. Second, all 8x4 horizontal boundary lines for the entire frame are also loop filtered in order from the top line. The filtering result is also stored in memory. Third, in the vertical direction, all 8x8 vertical boundaries for the entire frame are loop filtered starting from the left and the result is stored in memory. Finally, all 4x8 block boundaries for the whole frame are also loop filtered starting from the left and the result is stored in memory, i.e. for one frame, after all horizontal boundary lines are filtered in two steps, Loop filtering in two steps for all vertical boundary lines. Due to such a non-causal filtering method, a frame delay may occur because four loop filtering processes are required to filter one frame. Also, a large amount of memory bandwidth is required to loop filter one frame.

3) B 픽처에서의 루프 필터링 3) B In the picture Loop Filter

B 픽처에 대한 루프 필터링은 전술한 I 픽처의 경우와 동일하다.The loop filtering for the B picture is the same as that for the I picture described above.

이하, 보다 구체적으로 각 블록(또는 서브 블록)들간의 경계에서 루프 필터링이 수행되는 과정을 살펴본다.In more detail, a process of performing loop filtering at a boundary between each block (or subblock) is described.

도 5는 인접한 블록들간의 경계에서 루프 필터링되는 화소들의 예를 나타내는 도면이다.5 is a diagram illustrating an example of pixels that are loop filtered at a boundary between adjacent blocks.

수직 방향이든 수평 방향이든 루프 필터링되어야 할 연속된 화소들의 최소 개수는 4이고, 수직 혹은 수평 라인에 있는 전체 화소 수는 4의 배수이므로, 루프 필터링 과정은 4화소 단위로 이루어 질 수 있다. 도 5(a)를 참조하면, 예를 들어 두 블록간 경계가 8화소의 짝으로 구성된다면, 8화소들은 두 개의 4 화소 세그먼트로 나뉜다. 각 4화소 세그먼트에서, 그림과 같이 X로 표시된 세 번째 화소의 짝이 다른 화소들에 비해 먼저 루프 필터링된다. 또한, 그 루프 필터링 결과에 따라 나머지 세 화소 짝들의 필터링 수행여부도 결정된다. 표시된 세 번째 화소의 짝을 비교해본 결과 블로킹 현상이 발생하지 않아 루프 필터링이 필요 없다고 되면, 굳이 나머지 세 화소의 짝들에 대해서는 루프 필터링을 생략해도 무방하기 때문이다.Since the minimum number of consecutive pixels to be loop filtered in the vertical direction or the horizontal direction is 4, and the total number of pixels in the vertical or horizontal line is a multiple of 4, the loop filtering process may be performed in units of 4 pixels. Referring to FIG. 5A, for example, if the boundary between two blocks is composed of eight pixel pairs, the eight pixels are divided into two four pixel segments. In each four-pixel segment, the third pixel pair, denoted by X, is loop filtered before the other pixels, as shown. In addition, the filtering of the remaining three pixel pairs is determined according to the loop filtering result. When the comparison of the displayed third pixel pairs does not cause blocking and loop filtering is not necessary, the loop filtering may be omitted for the remaining three pixel pairs.

도 5(b)를 참조하면, 세 번째 화소의 짝에서 수행되는 루프 필터링 과정을 도시한다. 화소 P4와 P5는 필터링 과정에서 교환 가능한 화소들이다. 화소 P4와 P5를 기준으로 좌측의 화소들(P1 내지 P4)과 우측의 화소들(P5 내지 P8)간의 가중치가 적용된 평균에 대하여 소정의 보상 값을 구하여, 각 화소 P4와 P5에 각각 가감함으로써, 블록의 경계에서 급격한 화소 값의 변화가 발생하는 것을 제거하거나 감소시킬 수 있다. 이 경우, 전술한 도 5(a)와 같이 세 번째 화소의 짝이 필터링이 필요하면 나머지 세 화소의 짝들도 필터링을 수행하고, 그렇지 않으면, 나머지 세 화소의 짝들에 대한 루프 필터링을 생략하고 다음의 4화소 세그먼트로 넘어간다. Referring to FIG. 5B, a loop filtering process performed on a pair of third pixels is illustrated. The pixels P4 and P5 are interchangeable pixels in the filtering process. Based on the pixels P4 and P5, a predetermined compensation value is obtained for a weighted average between the pixels P1 to P4 on the left side and the pixels P5 to P8 on the right side, and added and subtracted to each pixel P4 and P5, respectively. It is possible to eliminate or reduce the occurrence of a sudden change in the pixel value at the boundary of the block. In this case, as shown in FIG. 5 (a), if the third pixel pair needs to be filtered, the remaining three pixel pairs are also filtered. Otherwise, the loop filtering on the remaining three pixel pairs is omitted and the next Skip to the 4-pixel segment.

한편, 이하에서는 오버랩 스무딩에 대해 구체적으로 살펴본다.Meanwhile, the overlap smoothing will be described below in detail.

도 6은 오버랩스무딩의 일 예를 나타내는 도면이다.6 is a diagram illustrating an example of overlap smoothing.

시퀀스 파라미터 중 하나인 OVERLAP 이 1로 설정되어 있으면, Y는 물론 CbCr에 대해 인접한 두 개의 인트라(Intra) 블록간의 에지에 대해 오버랩 스무딩(overlap Smoothing)이라는 필터링 연산이 조건부로 수행된다. 오버랩 스무딩(또는 오버랩 트랜스폼(Overlap Transform)이라고도 함)은 도 2 내지 도 5에서 전술한 루프 필터링 직전에 수행된다, 오버랩 스무딩은 블록 경계의 정보를 교환하는 일종의 블록 기반의 변환이다. 잘 설계된 오버랩 스무딩을 수행하면 블로킹 잡음이 최소화될 수 있다. If one of the sequence parameters, OVERLAP, is set to 1, a filtering operation called overlap smoothing is conditionally performed on the edge between two adjacent Intra blocks for Y as well as CbCr. Overlap smoothing (also referred to as an overlap transform) is performed immediately before the loop filtering described above in FIGS. 2 to 5. Overlap smoothing is a type of block-based transformation that exchanges information at block boundaries. Performing well designed overlap smoothing can minimize blocking noise.

도 6을 참조하면, I 블록들을 포함하는 P 프레임의 일부가 도시되어 있다. 사각형으로 표시된 각 화소들은 Y 일수도 있고 CbCr일 수도 있다. I 블록은 빗금친 부분으로 표시되어 있고, P 블록은 점으로 채워진 부분으로 표시되어 있다. 이 중 오버랩 스무딩이 수행될 부분은 점으로 채워진 부분으로 블록 경계의 각 방향으로 두 화소들에 오버랩 스무딩이 수행된다. 원으로 표시된 부분의 안쪽의 2x2 화소들은 양 방향으로 필터링되는 화소들이다. Referring to FIG. 6, a portion of a P frame including I blocks is shown. Each pixel indicated by the rectangle may be Y or CbCr. I blocks are marked with hatched portions, and P blocks are marked with dots. The overlap smoothing part is filled with dots, and the overlap smoothing is performed on two pixels in each direction of the block boundary. The 2x2 pixels inside the circled portion are pixels that are filtered in both directions.

먼저, 수직 에지 경계에서 수평 방향으로 연속한 네 화소들에 대해 오버랩 스무딩이 수행된다. 그림에서 (a0, a1, a2, a3)로 표시된 부분이다. a0 및 a1은 블록 경계를 기준으로 좌측의 두 화소를 나타내고, a2 및 a3는 우측의 두 화소를 나타낸다. 다음으로 수평 경계 에지에서 수직 방향으로 연속한 네 화소들 (p0, p1, p2, p3)에 대하여도 오버랩 스무딩이 수행된다. 즉, 먼저 수직 에지에 대한 수평 방향 화소들 (a0, a1, a2, a3)이 오버랩 스무딩 되고, 다음에 수평 에지에 대한 수직 방향 화소들 (p0, p1, p2, p3)이 오버랩 스무딩 된다. 필터링의 중간 결과는 메모리에 일시 저장된다. First, overlap smoothing is performed on four consecutive pixels in the horizontal direction at the vertical edge boundary. In the figure, it is indicated by (a0, a1, a2, a3). a0 and a1 represent two pixels on the left side based on the block boundary, and a2 and a3 represent two pixels on the right side. Next, overlap smoothing is also performed on the four pixels p0, p1, p2, and p3 continuous in the vertical direction at the horizontal boundary edge. That is, the horizontal pixels a0, a1, a2, a3 for the vertical edge are first smoothed overlap, and the vertical pixels p0, p1, p2, p3 for the horizontal edge are overlap smoothed. The intermediate result of the filtering is temporarily stored in memory.

한편, I, P, 또는 B 프레임에 대하여 소정의 조건에 따라 오버랩 스무딩의 수행 여부가 결정된다. 오버랩 스무딩이 수행되는 구체적인 조건에 대하여는 VC9 관련 자료들에 상세히 설명되어 있으므로, 설명을 생략한다. 오버랩 스무딩을 위한 조건이 충족되지 않으면, 오버랩 스무딩은 생략된다. 예를 들면, 인터 블록만 있는 경우에는 오버랩 스무딩이 생략될 수 있다. 다만, 설명의 편의를 위하여, 이하에서는 오버랩 스무딩 및 루프 필터링이 모두 발생하는 경우를 예로 들어 설명한다. 그러나, 오버랩 스무딩은 소정의 조건에서 수행되면, 언제나 수행되는 것은 아니다.On the other hand, it is determined whether or not overlap smoothing is performed on I, P, or B frames according to a predetermined condition. Specific conditions under which overlap smoothing is performed are described in detail in the VC9 related materials, and thus descriptions thereof will be omitted. If the condition for overlap smoothing is not met, overlap smoothing is omitted. For example, overlap smoothing may be omitted when there is only an inter block. However, for convenience of description, hereinafter, the case where both overlap smoothing and loop filtering occur will be described. However, overlap smoothing is not always performed if performed under a predetermined condition.

이상에서 살펴본 VC9의 블로킹 현상을 제거하기 위한 오버랩 스무딩 및 루프 필터링 과정은 프레임 단위 또는 슬라이스 단위로 수직 경계 및 수평 경계에 대하여 오버랩 스무딩을 수행하고 난 후, 다시 수평 경계 및 수직 경계에 대하여 루프 필터링을 수행하므로, 이전의 수평 방향 필터링의 결과를 메모리에 저장하고 있어야 한다. 따라서, 많은 메모리 대역폭이 요구되며, 불필요한 프레임 딜레이를 발생시키고 프레임 메모리가 증가하는 문제점을 갖는다. 이와 같은 VC9 오버랩 스무딩 및 루프 필터링의 비인과성(non-causality) 때문에, 코덱의 하드웨어 구현이 어려운 문제점이 있다.The overlap smoothing and loop filtering process to remove the blocking phenomenon of VC9 described above is performed by performing the loop smoothing on the horizontal boundary and the vertical boundary after performing the overlap smoothing on the vertical boundary and the horizontal boundary in the frame unit or the slice unit. As a result, the result of the previous horizontal filtering must be stored in memory. Therefore, a large memory bandwidth is required, which causes unnecessary frame delay and increases frame memory. Due to such non-causality of VC9 overlap smoothing and loop filtering, hardware implementation of the codec is difficult.

따라서, 본 발명의 기술적 과제는 동영상 코덱에 있어서 비인과성 (non-causal) 오버랩 스무딩 및 루프 필터링을 개선하여 메모리의 증가나 대역폭의 증가 없이 효율적으로 필터링하는 방법 및 그 필터링 장치를 제공하는 것이다.Accordingly, an object of the present invention is to provide a method and an filtering device for efficiently filtering without increasing memory or bandwidth by improving non-causal overlap smoothing and loop filtering in a video codec.

전술한 기술적 과제는 본 발명에 따라, 동영상 코덱의 필터링 방법에 있어서, 매크로 블록 단위로 필터링 영역을 결정하는 단계; 필터링 영역으로 결정된 매크로 블록과 인접한 이전의 매크로 블록간의 경계 부분의 소정 영역을 필터링 영역에 더 포함시키는 단계; 및 블록간의 경계부분의 소정 영역을 더 포함하는 필터링 영역에 대하여 시간적 순서에 따라 인과적(causal)으로 디블로킹(de-blocking) 필터링을 수행하는 단계를 포함하는 것을 특징으로 하는 필터링 방법에 의해 달성된다.According to an aspect of the present invention, there is provided a filtering method of a video codec, the method comprising: determining a filtering region in units of macro blocks; Further including a predetermined area of the boundary portion between the macroblock determined as the filtering area and the previous macroblock adjacent to the filtering area; And performing causal de-blocking filtering on the filtering area further comprising a predetermined area of a boundary portion between blocks in a temporal order. do.

상기 디블로킹 필터링은, 하나의 필터링 영역에 대하여 수평 방향으로 디블로킹 필터링한 후 수직 방향으로 디블로킹 필터링하고 다음 필터링 영역으로 넘어가는 인과적(causal) 방식으로 디블로킹 필터링하는 것이 바람직하다.The deblocking filtering may be performed by deblocking filtering in a horizontal direction with respect to one filtering area, then deblocking filtering in a vertical direction, and deblocking filtering in a causal manner that is passed to the next filtering area.

또한, 상기 블록 간 경계 부분의 소정의 영역은 최소 4화소 단위의 복수의 화소들을 포함하는 것이 바람직하다.In addition, the predetermined region of the inter-block boundary portion may include a plurality of pixels of at least four pixel units.

상기 디블로킹 필터링은, 오버랩 스무딩 및 루프 필터링 중 적어도 하나를 포함하며, 매크로 블록 단위로 소정의 조건에 따라 오버랩 스무딩을 수행한 후, 루프 필터링을 수행하는 것이 바람직하다.The deblocking filtering includes at least one of overlap smoothing and loop filtering, and after performing overlap smoothing according to a predetermined condition in macroblock units, it is preferable to perform loop filtering.

또한, 상기 오버랩 스무딩은, 블록간의 경계 부분을 대칭으로 양 방향으로 최소 2화소씩의 값을 이용하여 오버랩 스무딩을 수행하는 것이 바람직하며, 수평 방향으로 8x8 블록 경계 부분을 오버랩 스무딩한 후, 수직 방향으로 8x8 블록 경계 부분을 오버랩 스무딩 하는 것이 바람직하다.In addition, in the overlap smoothing, the overlap smoothing is preferably performed by using a value of at least two pixels in both directions in a symmetrical manner between the boundary parts between the blocks, and after overlapping the 8 × 8 block boundary parts in the horizontal direction, the vertical direction is performed. It is preferable to overlap smooth the 8 × 8 block boundary.

또한, 상기 루프 필터링은, 블록간의 경계 부분을 대칭으로 양 방향으로 최소 4화소씩의 값을 이용하여 루프 필터링을 수행하는 것이 바람직하다.In the loop filtering, it is preferable to perform loop filtering by using a value of at least 4 pixels in both directions in a symmetrical manner between the boundary portions between blocks.

상기 루프 필터링은, 수평 방향으로 8x8 블록 경계 부분을 루프 필터링한 후, 8x4 블록 경계 부분을 루프 필터링하며, 수직 방향으로 8x8 블록 경계 부분을 루프 필터링한 후, 4x8 블록 경계 부분을 루프 필터링하는 것이 바람직하다.In the loop filtering, it is preferable to loop filter the 8x8 block boundary part in a horizontal direction, loop filter the 8x4 block boundary part, and loop filter the 8x8 block boundary part in a vertical direction, and then loop filter the 4x8 block boundary part. Do.

특히, 상기 동영상 코덱은 SMPTE (the Society of Motion Picture and Television Engineers)의 VC9 표준을 따르는 것이 바람직하다. In particular, the video codec preferably follows the VC9 standard of the Society of Motion Picture and Television Engineers (SMPTE).

한편, 본 발명의 다른 분야에 따르면, 전술한 기술적 과제는, 동영상 코덱의 필터링 장치에 있어서, 매크로 블록 단위의 필터링 영역을 저장하는 버퍼부; 버퍼부에 저장된 매크로 블록과 인접한 이전의 매크로 블록간의 경계 부분의 소정 영역을 저장하는 행 버퍼와 열 버퍼; 및 버퍼부, 행 버퍼, 및 열 버퍼에 저장된 필터링 영역에 대하여 시간적 순서에 따라 인과적(causal)으로 디블로킹(de-blocking) 필터링을 수행하는 필터링부를 포함하는 것을 특징으로 하는 필터링 장치에 의해서 달성된다.On the other hand, according to another field of the present invention, the above technical problem, the filtering device of the video codec, the buffer unit for storing the filtering area in units of macro blocks; A row buffer and a column buffer for storing a predetermined area of a boundary portion between the macro block stored in the buffer unit and the previous macro block adjacent to the macro block; And a filtering unit performing causal de-blocking filtering on the filtering area stored in the buffer unit, the row buffer, and the column buffer in chronological order. do.

이하에서는 첨부한 도면을 참조하여 본 발명에 따른 바람직한 실시예를 살펴본다.Hereinafter, with reference to the accompanying drawings looks at a preferred embodiment according to the present invention.

도 7은 본 발명의 바람직한 실시예에 따른 필터링 장치의 블록도 이다.7 is a block diagram of a filtering device according to a preferred embodiment of the present invention.

도 7을 참조하면, 프레임 단위로 필터링을 하던 VC9의 종래의 필터에 비하여, 본 발명에 따른 필터는 매크로 블록(macro block) 단위로 필터링을 수행함을 그 특징으로 한다. 이를 위해 이전 매크로 블록의 경계부분의 화소 정보를 일시 저장할 별도의 행 버퍼(630)와 열 버퍼(640)가 더 포함된다.Referring to FIG. 7, the filter according to the present invention performs filtering on a macro block basis, as compared to the conventional filter of VC9, which filters on a frame basis. To this end, a separate row buffer 630 and a column buffer 640 for temporarily storing pixel information of the boundary of the previous macro block are further included.

즉, 본 발명에 따른 필터링 장치는 블로킹 현상을 제거하기 위한 필터링부(610)와 필터링될 데이터 및 그 필터링 결과가 저장되는 버퍼부(L_BUF)(620), 및 이전 매크로 블록의 경계부분의 화소 정보를 저장하고 있는 행 버퍼(ROW_BUF)(630)와 열 버퍼(COL_BUF)(640)를 구비한다.That is, the filtering device according to the present invention includes a filtering unit 610 for removing a blocking phenomenon, a buffer unit (L_BUF) 620 for storing the data to be filtered and the filtering result, and pixel information of the boundary of the previous macro block. A row buffer ROW_BUF 630 and a column buffer COL_BUF 640 are stored.

VC9 코덱은 16x16 크기의 매크로 블록을 기본 처리 단위로 한다. 따라서, 본 발명의 오버랩 스무딩 및 루프 필터링도 16x16 매크로 블록 단위로 처리할 수 있도록 구성된다. 즉, 각 매크로 블록 단위로 오버랩 스무딩이 수행된 후, 각 매크로 블록 단위로 루프 필터링이 수행된다. 버퍼부(620)는 16x16 크기의 버퍼로서, 16x16 매크로 블록의 필터링 중간 결과 및 최종 결과를 저장한다. 행 버퍼(630)는 최소 20x8의 크기를 갖는 버퍼이며, 현재 필터링 중인 매크로 블록의 상단에 위치한 블록의 경계 부분의 수평 방향 화소들을 저장하고, 필터링 된 화소들의 중간 결과 및 최종 결과를 저장한다. 열 버퍼(640)는 최소 8x16의 크기를 가지며, 현재 필터링 중인 매크로 블록의 좌측에 위치한 블록의 경계 부분의 수직 방향 화소들을 저장하고, 필터링 된 화소들의 중간 결과 및 최종 결과를 저장한다. The VC9 codec uses a 16x16 macroblock as a basic processing unit. Therefore, the overlap smoothing and loop filtering of the present invention are also configured to be processed in units of 16 × 16 macroblocks. That is, after overlap smoothing is performed for each macro block, loop filtering is performed for each macro block. The buffer unit 620 is a 16x16 sized buffer, and stores a filtering intermediate result and a final result of the 16x16 macroblock. The row buffer 630 is a buffer having a size of at least 20 × 8, and stores the horizontal pixels of the boundary portion of the block located at the top of the macro block currently being filtered, and stores the intermediate and final results of the filtered pixels. The column buffer 640 has a minimum size of 8 × 16 and stores vertical pixels of the boundary portion of the block located to the left of the macro block currently being filtered, and stores intermediate and final results of the filtered pixels.

본 발명에 따른 필터링 장치의 동작을 설명하기 위해 수평 방향으로 4개의 매크로 블록, 수직 방향으로 3개의 MB들로 구성된 하나의 프레임을 가정한다. 도 8은 본 발명에 따라 오버랩 스무딩 및 루프 필터링이 수행될 프레임을 나타내는 도면이다.In order to explain the operation of the filtering apparatus according to the present invention, one frame composed of four macro blocks in a horizontal direction and three MBs in a vertical direction is assumed. 8 is a diagram illustrating a frame in which overlap smoothing and loop filtering are performed according to the present invention.

도 8을 참조하면, 각 매크로 블록의 번호가 매겨져 있다. 본 발명에 따라 매크로 블록 단위로 오버랩 스무딩 및 루프 필터링을 처리하기 위하여 4가지 경우의 매크로 블록의 필터링 동작을 살펴본다. 특히, 수평 방향으로, 매크로 블록 MB1의 필터링 영역으로 CASE 1 영역, 매크로 블록 MB2의 필터링 영역으로 CASE 2 영역에서의 필터링 동작을 살펴본다. 또한, 수직 방향으로, 매크로 블록 MB5의 필터링 영역으로 CASE 3 영역, 매크로 블록 MB6의 필터링 영역으로 CASE4 영역에서의 필터링 동작을 각각 살펴본다.Referring to Fig. 8, each macro block is numbered. In order to process overlap smoothing and loop filtering on a macroblock basis according to the present invention, a filtering operation of four cases of macroblocks will be described. In particular, the filtering operation in the CASE 1 region as the filtering region of the macro block MB1 and the CASE 2 region as the filtering region of the macro block MB2 will be described in the horizontal direction. In addition, the filtering operation in the CASE 3 region as the filtering region of the macro block MB5 and the CASE4 region as the filtering region of the macro block MB6 will be described in the vertical direction.

먼저, 도 9는 도 8에 도시된 CASE 1 영역에서 본 발명에 따라 블록 단위로 필터링되는 순서를 나타내는 일 실시예이다.First, FIG. 9 is an embodiment illustrating an order of filtering in block units according to the present invention in the CASE 1 region illustrated in FIG. 8.

하나의 매크로 블록에 대한 움직임 보상(도 1 참조)이 끝나면 그 매크로 블록에 대한 오버랩 스무딩이 수행되고, 곧이어 그 매크로 블록에 대하여 루프 필터링이 수행된다. CASE 1의 경우 매크로 블록 MB1에 대한 오버랩 스무딩 및 루프 필터링 과정을 보여 준다. When motion compensation for one macro block (see FIG. 1) is completed, overlap smoothing is performed on the macro block, and loop filtering is then performed on the macro block. For CASE 1, we show the overlap smoothing and loop filtering process for macro block MB1.

도 9 및 도 7을 참조하면, 움직임 보상된 매크로 블록 MB1이 버퍼부(L_BUF)(620)에 저장된다. 먼저, 전술한 소정의 조건에 따라 해당 매크로 블록을 오버랩 스무딩을 수행할지 여부가 결정된다. 만약 오버랩 스무딩을 수행해야할 조건에 해당하지 않는 경우라면, 오버랩 스무딩 과정이 생략되고, 바로 루프 필터링을 수행할 수 있다. 그러나, 설명의 편의를 위해 오버랩 스무딩이 필요한 경우를 예로 들어 설명한다. 9 and 7, the motion compensated macro block MB1 is stored in the buffer unit L_BUF 620. First, it is determined whether or not to perform overlap smoothing on the macroblock according to the above-described predetermined condition. If the overlap smoothing does not correspond to a condition, the overlap smoothing process may be omitted, and the loop filtering may be immediately performed. However, a case where overlap smoothing is required for convenience of explanation is described as an example.

도 9(a)는 CASE 1 의 경우 필터링 대상 영역을 도시한다. 매크로 블록 MB1은 첫 번째 슬라이스의 첫 번째 매크로 블록이므로 행 버퍼(630) 및 열 버퍼(640)는 비어 있는 상태이다. MB1과 MB2의 경계 부분은 MB2의 처리 시에 필터링된다. FIG. 9A illustrates the filtering subject region in the case of CASE 1. FIG. Since the macro block MB1 is the first macro block of the first slice, the row buffer 630 and the column buffer 640 are empty. The boundary portion of MB1 and MB2 is filtered at the time of processing of MB2.

먼저, 도 9(b) 및 도 9(c)에 도시된 바와 같이, 오버랩 스무딩이 수행된다. 도 9(b)를 참조하면, 굵은 점선으로 표시된 부분의 검은색으로 표시된 화소들이 오버랩 스무딩을 위해 사용된다. (p1, p0, q0, q1)로 표시된 4개의 화소들로 구성된 모두 16개의 행(row)들이 차례로 도 7의 p1, p0 및 q0, q1 래치에 행단위로 입력된다. 즉, 좌측의 두 화소는 p1, p0에, 그리고 우측의 두 화소는 q0, q1에 입력된다. 래치의 화소들은 한 사이클에 필터링부(610)로 입력된다. 이 모듈에서 오버랩 스무딩이 수행된다. 오버랩 스무딩을 수행하는 필터링부(610)의 출력값들은 P1, P0, Q0, Q1에 각각 입력된다. P1, P0, Q0, Q1 값들은 다시 버퍼부(L_BUF)(620)의 해당 값들을 업데이트 한다. 실제 업데이트는 도 9(b)에 도시된 바와 같이 조건이 맞는 경계부분에서만 이루어진다. First, as shown in FIGS. 9B and 9C, overlap smoothing is performed. Referring to FIG. 9B, pixels displayed in black in a portion indicated by a thick dotted line are used for overlap smoothing. Sixteen rows consisting of four pixels represented by (p1, p0, q0, q1) are sequentially inputted row by row to the latches p1, p0 and q0, q1 of FIG. That is, the two pixels on the left are input to p1 and p0, and the two pixels on the right are input to q0 and q1. The pixels of the latch are input to the filtering unit 610 in one cycle. In this module, overlap smoothing is performed. Output values of the filtering unit 610 that performs overlap smoothing are input to P1, P0, Q0, and Q1, respectively. The P1, P0, Q0, and Q1 values update the corresponding values of the buffer unit L_BUF 620 again. The actual update is made only at the boundary where the condition is met as shown in FIG. 9 (b).

한편, 도 9(c)는 수평 방향의 블록 경계에서 오버랩 스무딩이 수행되는 과정을 도시한다. 수직, 수평이 바뀌었을 뿐 기본 동작은 도 9(b)의 경우와 동일하다. 그림에서 우측의 4열의 화소들의 처리는 매크로 블록 MB2의 처리 시에 함께 처리된다. 그러나, 최소 우측 2열의 화소들의 처리를 MB2의 처리시에 함께 처리하는 것도 가능하다.Meanwhile, FIG. 9C illustrates a process in which overlap smoothing is performed at a block boundary in a horizontal direction. The basic operation is the same as in the case of FIG. The processing of the pixels in the right four columns in the figure is processed together in the processing of the macro block MB2. However, it is also possible to process the processing of at least the right two columns of pixels together in the processing of MB2.

MB1 매크로 블록에 대한 오버랩 스무딩이 완료되면, 바로 루프 필터링이 수행된다. 도 9(d)를 참조하면, 8x8 수평 방향 블록 경계의 루프 필터링 과정이 도시된다. 검은색 동심원으로 표시된, 매크로 블록 MB1 내의 수평 방향 8x8 블록 경계의 화소들이 루프 필터링된다. 매크로 블록 MB1과 그 하단의 매크로 블록 MB5와의 경계 부분은 매크로 블록 MB5의 필터링 처리 시에 루프 필터링된다. 또한, 매크로 블록 MB1의 오른 쪽 4 개의 화소 짝들은 인접한 매크로 블록 MB2의 필터링 처리 시에 루프 필터링된다. 따라서, 굵은 점선으로 표시된 부분의 화소들이 검은 색 화소들의 루프 필터링을 위해 사용되는 화소들이다. When the overlap smoothing for the MB1 macroblock is completed, loop filtering is performed immediately. Referring to FIG. 9 (d), a loop filtering process of an 8 × 8 horizontal block boundary is illustrated. Pixels at the horizontal 8x8 block boundary in the macro block MB1, indicated by black concentric circles, are loop filtered. The boundary portion between the macro block MB1 and the macro block MB5 at the bottom thereof is loop filtered during the filtering process of the macro block MB5. Further, the right four pixel pairs of the macro block MB1 are loop filtered in the filtering process of the adjacent macro block MB2. Therefore, the pixels in the portion indicated by the thick dotted line are the pixels used for the loop filtering of the black pixels.

굵은 점선으로 표시된 부분은 모두 12개의 수직 방향 화소 쌍인 열 벡터(column vector)들이 차례로 도 6에 도시된 p0, p1, p2, p3, q0, q1, q2, q3 래치(latch)에 입력된다. 각 열은 8개의 화소로 구성된다. 즉, 그림과 같이, 상위 4 화소는 p3, p2, p1, p0에, 하위 4 화소는 q0, q1, q2, q3에 입력된다. The portions indicated by the thick dotted lines are inputted into the column vectors, which are all 12 vertical pixel pairs, in turn into p0, p1, p2, p3, q0, q1, q2, and q3 latches shown in FIG. Each column consists of eight pixels. That is, as shown in the figure, the upper 4 pixels are input to p3, p2, p1, p0, and the lower 4 pixels are input to q0, q1, q2, q3.

또한, 도 9(d)의 상단에 표시된 바와 같이, 12개의 열 벡터들이 입력되는 순서가 도시되어 있다. 즉, 도 5에서 상술한 바와 같이 4개의 화소 세그먼트 중 세 번째 화소의 짝이 먼저 루프 필터링 처리되므로, 1, 5, 9 열 벡터가 각 4화소 세그먼트에서 먼저 루프 필터링된다. 그 필터링 결과에 따라 4개의 화소 세그먼트의 나머지 화소들의 짝들의 루프 필터링 여부가 결정된다. p3, p2, p1, p0과 q0, q1, q2, q3 래치에 입력된 각 화소들은 한 사이클에 도 6에 도시된 필터링부(610)로 입력되어 루프 필터링 처리된다. 실제 루프 필터링이 수행되는 과정은 도 5에서 상술한 바와 같다. 루프 필터링이 수행되는 과정은 VC9에서 제시하는 필터링 방법을 포함한 임의의 필터링 방법을 적용할 수 있음은 물론이다. 그 필터링 결과 중 검은색 동심원으로 표시된 블록의 경계에 해당하는 화소들만 도 7의 P0, Q0에 입력된다. 필터링이 필요하다고 판단된 경우, 즉, 블록의 경계부가 영상의 아우트라인이 아니라 블로킹 현상이 발생한 부분이라고 판단되면, P0와 Q0의 값들로 버퍼부(630)(L_BUF)에서 대응되는 값을 업데이트 한다. Also, as indicated at the top of FIG. 9 (d), the order in which 12 column vectors are input is shown. That is, as described above with reference to FIG. 5, the third pixel pair of the four pixel segments is first subjected to loop filtering, so that the 1, 5, and 9 column vectors are first loop filtered at each of the 4 pixel segments. According to the filtering result, it is determined whether loop filtering of the remaining pixels of the four pixel segments is performed. Each pixel input to the p3, p2, p1, p0 and q0, q1, q2, and q3 latches is input to the filtering unit 610 shown in FIG. 6 in a cycle and subjected to loop filtering. The actual loop filtering is performed as described above with reference to FIG. 5. The loop filtering process may be applied to any filtering method including the filtering method of VC9. Of the filtering results, only pixels corresponding to the boundary of the block indicated by the black concentric circles are input to P0 and Q0 of FIG. 7. When it is determined that filtering is necessary, that is, when the boundary of the block is determined to be a part in which a blocking phenomenon occurs, not an outline of the image, the corresponding value is updated in the buffer unit 630 (L_BUF) with values of P0 and Q0.

같은 방법으로, 5, 6, 7, 8번째 열 벡터들의 필터링 처리가 이루어지고, 다음 9, 10, 11, 12번째 열 벡터들의 필터링 처리가 이루어진다. 전술한 설명처럼 대상 영역에 포함된 각 열 벡터들에 대하여 루프 필터링 처리는 이루어지지만, 실제 메모리의 업데이트는 블록의 경계 부분의 화소들에 대해서만 이루어진다. 예를 들어 I 픽처의 경우 8x8 경계라든지, P 픽처의 경우 인코딩된 블록(coded block)간의 경계에서만 업데이트가 이루어진다. In the same manner, the filtering processing of the fifth, sixth, seventh and eighth column vectors is performed, and the filtering processing of the next 9th, 10th, 11th and 12th column vectors is performed. As described above, the loop filtering process is performed on each column vector included in the target region, but the update of the actual memory is performed only for the pixels of the boundary portion of the block. For example, an update is performed only at an 8x8 boundary for an I picture or at a boundary between encoded blocks for a P picture.

한편, 도 9(e)를 참조하면, 8x4 수평 방향 블록 경계의 필터링 과정이 도시된다. 검은색 동심원으로 표시된, 매크로 블록 MB1 내의 수평 방향 8x4 블록 경계의 화소들이 루프 필터링된다. 굵은 점선으로 표시된 부분의 화소들이 검은 색 화소들의 루프 필터링을 위해 사용되는 화소들이다. 실제 루프 필터링되는 과정은 전술한 도 9(d)의 설명과 동일하다. 만약, VC9의 경우 현재 매크로 블록이 인트라인 경우, 8x4 블록 수평 경계의 화소들에 대한 루프 필터링은 생략될 수도 있다.Meanwhile, referring to FIG. 9E, a filtering process of an 8 × 4 horizontal block boundary is illustrated. Pixels at the horizontal 8x4 block boundary in the macro block MB1, indicated by black concentric circles, are loop filtered. The pixels in the part indicated by the thick dotted line are the pixels used for the loop filtering of the black pixels. The actual loop filtering process is the same as described above with reference to FIG. 9 (d). In the case of VC9, when the current macro block is intra, loop filtering on pixels of an 8 × 4 block horizontal boundary may be omitted.

매크로 블록 MB1에 대한 수평 방향의 블록 경계의 화소들에 대한 루프 필터링이 끝나면, 매크로 블록 MB1에 대한 수직 방향의 블록 경계의 화소들에 대한 루프 필터링이 수행된다. 먼저, 도 9(f)에 도시된 바와 같이, 먼저 매크로 블록 MB1 내의 수직 방향 8x8 블록 경계의 화소들이 루프 필터링된다. 이 때 블록 경계의 하위 8 화소 행(row)들에 대한 필터링 처리는 매크로 블록 MB5의 처리 시에 이루어진다. 또한, 매크로 블록 MB1의 오른 쪽 4 개의 화소 짝들은 인접한 매크로 블록 MB2의 필터링 처리 시에 필터링된다. 따라서, 굵은 점선으로 표시된 부분의 화소들이 검은 색 화소들의 루프 필터링을 위해 사용되는 화소들이다. After the loop filtering on the pixels of the horizontal block boundary for the macro block MB1 is finished, the loop filtering is performed on the pixels of the vertical block boundary for the macro block MB1. First, as shown in FIG. 9 (f), first, pixels of a vertical 8 × 8 block boundary in the macro block MB1 are loop filtered. At this time, the filtering process for the lower 8 pixel rows of the block boundary is performed at the processing of the macro block MB5. In addition, the four right pixel pairs of the macro block MB1 are filtered during the filtering process of the adjacent macro block MB2. Therefore, the pixels in the portion indicated by the thick dotted line are the pixels used for the loop filtering of the black pixels.

다음은, 도 9(g)에 도시된 바와 같이 매크로 블록 MB1 내의 수직 방향 4x8 블록 경계의 화소들이 루프 필터링된다. 수직, 수평 방향이 바뀌었을 뿐 실제 루프 필터링 과정은 수평 방향에 대한 도 9(d) 및 도 9(e)의 설명과 동일하다. 만약, VC9의 경우 현재 매크로 블록이 인트라인 경우, 4x8 블록 수직 경계의 화소들에 대한 루프 필터링은 생략될 수도 있다. Next, as shown in Fig. 9G, pixels of the vertical 4x8 block boundary in the macro block MB1 are loop filtered. Although the vertical and horizontal directions are changed, the actual loop filtering process is the same as the description of FIGS. 9 (d) and 9 (e) with respect to the horizontal direction. In the case of VC9, when the current macro block is intra, loop filtering on pixels of a 4 × 8 block vertical boundary may be omitted.

루프 필터링 된 결과는 버퍼부(620)에 일시 저장되었다가 외부 프레임 메모리에 기록된다. 매크로 블록 MB1의 경우는 도 9(a)에 도시된 영역 내의 화소들에 대해서만 변화가 있게 되므로, 도 9(a)에 표시된 영역의 데이터를 외부 프레임 메모리에 기록한다. 도 9(h)는 필터링 결과 외부의 프레임 메모리에 기록될 내용을 표시한다. The loop filtered result is temporarily stored in the buffer unit 620 and then written to the external frame memory. In the case of the macro block MB1, there is only a change in the pixels in the region shown in Fig. 9A, so that the data of the region shown in Fig. 9A is written to the external frame memory. 9 (h) shows contents to be recorded in the frame memory outside the filtering result.

그리고 나서, 다음 매크로 블록인 MB2의 오버랩 스무딩 및 루프 필터링 처리를 위해 양 블록의 경계부분에 해당하는 매크로 블록 MB1의 우측 8x16 화소들을 열 버퍼(640)에 로드한다. 또한, 오버랩 스무딩 및 루프 필터링될 매크로 블록 MB2의 16x16 화소 값들이 버퍼부(620)에 로드된다(도 7 참조). Then, the right 8x16 pixels of the macro block MB1 corresponding to the boundary of both blocks are loaded into the column buffer 640 for the overlap smoothing and loop filtering processing of the next macro block MB2. Further, 16x16 pixel values of the macro block MB2 to be overlapped smoothed and loop filtered are loaded into the buffer unit 620 (see FIG. 7).

전술한 바와 같이 모든 오버랩 스무딩 및 루프 필터링 과정은 4화소 단위의 세그먼트 별로 이루어진다. 또한, 하나의 매크로 블록에 대하여 수평 방향 오버랩 스무딩이 완료된 후, 수직 방향 오버랩 스무딩이 수행되며, 오버랩 스무딩이 모드 완료되면, 수평 방향 과 수직 방향으로 루프 필터링이 수행된다.As described above, all overlap smoothing and loop filtering processes are performed by segments of 4 pixels. In addition, after horizontal overlap smoothing is completed for one macro block, vertical overlap smoothing is performed. When overlap smoothing is completed, loop filtering is performed in the horizontal and vertical directions.

한편, 도 10a 및 도 10b는 도 8에 도시된 CASE 2 영역에서 본 발명에 따라 블록 단위로 오버랩 스무딩 및 루프 필터링되는 순서를 나타내는 일 실시예이다.10A and 10B illustrate an exemplary embodiment of overlap smoothing and loop filtering in block units according to the present invention in the CASE 2 region illustrated in FIG. 8.

도 10a 및 도 10b를 참조하면, 매크로 블록 MB2의 오버랩 스무딩 및 루프 필터링 과정이 도시되어 있다. (a)는 오버랩 스무딩 및 루프 필터링 대상 영역을 표시한다. 매크로 블록 MB2 외에 매크로 블록 MB1의 오버랩 스무딩 및 루프 필터링 시에 열 버퍼에 일시 저장된 8x16 화소들도 대상 영역에 포함된다. 10A and 10B, an overlap smoothing and loop filtering process of the macro block MB2 is illustrated. (a) indicates an overlap smoothing and loop filtering target area. In addition to the macro block MB2, 8 × 16 pixels temporarily stored in the column buffer during overlap smoothing and loop filtering of the macro block MB1 are included in the target area.

먼저, (b) 내지 (d)에 도시된 바와 같이 8x8 블록 경계에 대하여 수평 방향 및 수직 방향으로 오버랩 스무딩이 수행된다. 자세한 과정은 도 9의 (b) 및 (c)에서 상술한 바와 같다. 특히, (d)의 좌측의 4화소 세그먼트들은 CASE 1의 MB1 매크로 블록의 오버랩 스무딩 처리 시에 이미 처리되었고, (d)의 우측의 4화소 세그먼트들은 다음의 MB3 매크로 블록의 오버랩 스무딩 처리 시에 처리될 것이므로, 오버랩 스무딩 처리범위에 포함되지 않는다. First, as shown in (b) to (d), overlap smoothing is performed in the horizontal direction and the vertical direction with respect to the 8x8 block boundary. The detailed process is as described above with reference to FIGS. 9B and 9C. In particular, the four pixel segments on the left side of (d) have already been processed in the overlap smoothing process of the MB1 macroblock in CASE 1, and the four pixel segments on the right side of (d) are processed in the overlap smoothing process of the next MB3 macroblock. It is not included in the overlap smoothing process range.

(a)에 표시된 영역에 대하여 오버랩 스무딩이 완료되면, 다음으로 루프 필터링이 수행된다. 수평 방향 8x8 블록 경계의 필터링될 화소들이 (e)에 검은색 동심원으로 표시되어 있다. 하위의 8x8 화소들과 우측의 4개의 화소들은 다음 슬라이스 또는 다음 매크로 블록의 필터링 시에 처리되며, 굵은 점선으로 표시된 부분의 화소들만 검은색 동심원으로 표시된 화소들의 필터링을 위해 사용된다. 즉, 8개의 화소 열로 이루어진 모두 16개의 열 벡터들이 차례로 도 7에 도시된 p 및 q 래치에 입력되어 루프 필터링 처리된다. 구체적인 루프 필터링 과정은 도 9의 (d) 내지 (h) 에서 상술한 바와 동일하다. 다음은, 도 10b의 (f)에 도시된 바와 같이 8x4 수평경계에 대한 루프 필터링 처리가 이루어진다. 루프 필터링 과정에 대한 설명은 전술한 바와 같다.When overlap smoothing is completed for the area indicated in (a), loop filtering is performed next. The pixels to be filtered at the horizontal 8x8 block boundary are indicated by black concentric circles in (e). The lower 8x8 pixels and the four pixels on the right side are processed during the filtering of the next slice or the next macro block, and only the pixels of the portion indicated by the thick dotted line are used for filtering the pixels indicated by the black concentric circles. That is, all 16 column vectors consisting of eight pixel columns are sequentially input to the p and q latches shown in FIG. 7 and subjected to loop filtering. The detailed loop filtering process is the same as described above with reference to FIGS. 9D to 9H. Next, as shown in (f) of FIG. 10B, a loop filtering process for the 8 × 4 horizontal boundary is performed. A description of the loop filtering process is as described above.

한편, 수직 방향으로 8x8 수직 경계 필터링과 4x8 수직 경계 필터링 과정은 도 10b의 (g) 및 (k)에 도시되어 있다. (g)를 참조하면, 점선으로 표시된 영역 내의 8개의 행 벡터들이 좌측에 표시된 순서대로 입력되어 필터링된다. 즉, 각 벡터의 8 화소들이 각각 p3, p2, p1, p0, q0, q1, q2, q3 래치에 입력되어 필터링된다. 수직, 수평이 바뀌었을 뿐 루프 필터링 과정은 각 4화소 세그먼트별로 도 5에 설명한 바와 같다. Meanwhile, the 8x8 vertical boundary filtering and the 4x8 vertical boundary filtering in the vertical direction are illustrated in FIGS. 10B (g) and (k). Referring to (g), eight row vectors in the area indicated by the dotted line are input and filtered in the order shown on the left. That is, eight pixels of each vector are input to the latches p3, p2, p1, p0, q0, q1, q2, q3, respectively, and filtered. The loop filtering process is the same as described with reference to FIG. 5 for each of the four pixel segments.

다음은, 도 10b의 (h)와 같이 4x8 수직 경계 화소들이 필터링된다. 또한, 유사하게 나머지 8x8 수직 경계 및 4x8 수직 경계에 대한 처리 과정이 도 (i) 및(j)에 도시되어 있다. (k)는 필터링 결과 외부의 프레임 메모리에 기록될 내용을 표시한다. Next, 4x8 vertical boundary pixels are filtered as shown in FIG. 10B (h). Similarly, the processing for the remaining 8x8 vertical borders and 4x8 vertical borders is shown in Figures (i) and (j). (k) indicates the content to be recorded in the frame memory outside the filtering result.

그리고 나서, 다음 매크로 블록인 MB3의 필터링 처리를 위해 양 블록의 경계부분에 해당하는 매크로 블록 MB2의 우측 8x16 화소들을 열 버퍼(640)에 로드한다. 또한, 필터링될 매크로 블록 MB3의 16x16 화소 값들이 버퍼부(620)에 로드된다(도 7 참조). 이와 같은 방식으로 수평 방향의 매크로 블록 MB1 내지 MB4까지 첫 번째 슬라이스에 대한 필터링 처리가 이루어진다.Then, the right 8x16 pixels of the macroblock MB2 corresponding to the boundary of both blocks are loaded into the column buffer 640 for the filtering process of the next macroblock MB3. Further, 16x16 pixel values of the macro block MB3 to be filtered are loaded into the buffer unit 620 (see FIG. 7). In this manner, the filtering process is performed on the first slice from the macro blocks MB1 to MB4 in the horizontal direction.

도 11a 및 도 11b는 도 8에 도시된 CASE 3 영역에서 본 발명에 따라 블록 단위로 오버랩 스무딩 및 루프 필터링되는 순서를 나타내는 일 실시예이다.11A and 11B illustrate an exemplary embodiment of overlap smoothing and loop filtering in block units according to the present invention in the CASE 3 region illustrated in FIG. 8.

도 11a 및 도 11b를 참조하면, 두 번째 슬라이스의 첫 매크로 블록인 MB5에 대한 오버랩 스무딩 및 루프 필터링 과정이 도시되어 있다. 매크로 블록 MB4의 필터링 처리 후 매크로 블록 MB1의 하위 16x8 화소들이 행 버퍼(630)에 로드된다. 또한, 필터링될 매크로 블록 MB5의 16x16 데이터가 버퍼부(620)에 로드된다.11A and 11B, an overlap smoothing and loop filtering process for MB5, which is the first macro block of the second slice, is illustrated. After the filtering process of the macro block MB4, the lower 16 × 8 pixels of the macro block MB1 are loaded into the row buffer 630. In addition, 16x16 data of the macroblock MB5 to be filtered is loaded into the buffer unit 620.

매크로 블록 MB5의 수평 및 수직 방향 8x8 경계의 화소들에 대한 오버랩 스무딩 처리는 도 11a의 (b) 내지 (d)에 도시되어 있다. 대상 화소들만 바뀌었을 뿐 오버랩 스무딩 동작 원리는 전술한 도 9 또는 도 10a 및 도 10b의 경우와 동일하다. The overlap smoothing process for the pixels at the horizontal and vertical 8x8 boundaries of the macro block MB5 is shown in Figs. 11A to 11D. Only the target pixels are changed, and the overlap smoothing operation principle is the same as in the above-described case of FIG. 9 or FIGS. 10A and 10B.

또한, 매크로 블록 MB5의 수평 방향 8x8 경계 및 8x4 경계의 화소들에 대한 루프 필터링 처리는 도 11a의 (e)와 도 11b의 (f) 내지 (h)에 도시되어 있다. 역시, 대상 화소들만 바뀌었을 뿐 필터링 동작 원리는 전술한 도 9나 도 10a 및 도 10b의 경우와 동일하다. 또한, 수직 방향 8x8 경계 및 4x8 경계의 화소들에 대한 필터링 처리는 도 11b의 (i) 및 (j)에 도시되어 있다. In addition, the loop filtering process for the pixels of the horizontal direction 8x8 boundary and the 8x4 boundary of the macroblock MB5 is illustrated in FIGS. 11A and 11B and FIGS. Again, the filtering operation principle is the same as in the above-described case of FIGS. 9, 10A, and 10B except that only the target pixels are changed. In addition, the filtering process for pixels of the vertical 8x8 boundary and the 4x8 boundary is shown in FIGS. 11B (i) and (j).

오버랩 스무딩 및 루프 필터링 결과는 도 11b의 (k)에 도시되어 있으며, 필터링 된 결과 값이 외부 메모리에 기록된다. The overlap smoothing and loop filtering results are shown in FIG. 11B (k), and the filtered result values are written to the external memory.

이제 다음 매크로 블록의 필터링을 위해 버퍼부(620), 행 버퍼(630), 및 열 버퍼(640)를 업데이트 한다. 이 때 업데이트 되는 화소들은 필터링 이전의 원래의 화소 값이 아니고, 이미 필터링 된 결과의 화소들임을 주의한다. The buffer unit 620, the row buffer 630, and the column buffer 640 are updated to filter the next macro block. Note that the pixels updated at this time are not the original pixel values before filtering, but the pixels of the filtered result.

도 12a 내지 도 12c는 도 8에 도시된 CASE 4 영역에서 본 발명에 따라 블록 단위로 오버랩 스무딩 및 루프 필터링되는 순서를 나타내는 일 실시예이다.12A to 12C illustrate an exemplary embodiment of overlap smoothing and loop filtering in block units according to the present invention in the CASE 4 region illustrated in FIG. 8.

도 12a 내지 도 12c를 참조하면, (b) 내지 (e)는 수평 및 수직 방향의 오버랩 스무딩 과정을 도시한다. 또한, (f) 내지 (i)는 수평 방향의 블록 경계의 화소들에 대한 루프 필터링 과정을 도시하고, (j) 내지 (m)는 수직 방향의 블록 경계의 화소들에 대한 루프 필터링 과정을 도시한다. (n)은 오버랩 스무딩 및 루프 필터링 결과를 표시하며, 굵은 점선 내 화소들이 외부 프레임 메모리에 기록된다. 나머지 매크로 블록들의 필터링 처리과정은 모두 같은 원리로 이루어진다.12A to 12C, (b) to (e) illustrate overlap smoothing processes in horizontal and vertical directions. Also, (f) to (i) show a loop filtering process for pixels of a block boundary in a horizontal direction, and (j) to (m) show a loop filtering process for pixels of a block boundary in a vertical direction. do. (n) indicates the overlap smoothing and loop filtering results, and pixels in the thick dotted line are written to the external frame memory. The filtering process of the remaining macroblocks is all performed on the same principle.

이와 같이 본 발명에 따른 필터링 장치는, 프레임 단위로 오버랩 스무딩 및 루프 필터링을 하던 VC9의 종래의 필터에 비하여, 매크로 블록(macro block) 단위로 오버랩 스무딩 및 루프 필터링을 수행함을 그 특징으로 한다. 이를 위해 이전 매크로 블록의 경계부분의 화소 정보를 일시 저장할 별도의 행 버퍼(630)와 열 버퍼(640)가 더 포함된다. As described above, the filtering device according to the present invention is characterized in that the overlap smoothing and loop filtering is performed in macro block units as compared to the conventional filter of VC9, which performs overlap smoothing and loop filtering in units of frames. To this end, a separate row buffer 630 and a column buffer 640 for temporarily storing pixel information of the boundary of the previous macro block are further included.

즉, 매크로 블록 단위로 소정의 조건에 따라 수평 8x8 및 수직 8x8 경계부분에 오버랩 스무딩을 수행하고 난 후, 수평 8x8, 8x4 블록 경계부분의 루프 필터링을 수행하고, 수직 방향으로 8x8, 4x8 블록 경계부분의 루프 필터링을 수행한다. 수행된 결과 중 다음 매크로 블록의 오버랩 스무딩 및 루프 필터링에 이용될 경계부분의 화소들은 행 버퍼 또는 열 버퍼에 저장되어 다음 매크로 블록의 오버랩 스무딩 및 루프 필터링에 사용된다.That is, after performing overlap smoothing on horizontal 8x8 and vertical 8x8 boundary parts according to a predetermined condition in macroblock units, loop filtering of horizontal 8x8 and 8x4 block boundary parts is performed, and 8x8 and 4x8 block boundary parts in a vertical direction. Perform loop filtering of. The pixels of the boundary portion to be used for overlap smoothing and loop filtering of the next macro block among the performed results are stored in the row buffer or column buffer and used for overlap smoothing and loop filtering of the next macro block.

이에 따라, 시간 순서에 따라 매크로 블록 순서대로 필터링을 해나가는 인과적(causal) 필터링이 가능해진다. 따라서, 프레임 단위의 필터링 처리를 하는 것에 비하여 상대적으로 필요로 하는 메모리 대역폭이 감소되며, 또한, 프레임 딜레이를 방지할 수 있다. Accordingly, causal filtering, which filters in macroblock order according to time order, becomes possible. Therefore, the memory bandwidth required in comparison with the filtering processing in units of frames can be reduced, and frame delay can be prevented.

이상에서 상술한 실시예는 매크로 블록 단위의 필터링 처리 방법(방법 1)으로서, 메모리 대역폭을 줄이기에 적합하나, 제어가 복잡해진다. 본 발명에 따른 다른 실시예로서, 메모리 대역폭은 방법 1에 비해 조금 늘어나지만, 제어가 간단해지는 방법(방법2)이 있다. The above-described embodiment is a macroblock-based filtering processing method (method 1), which is suitable for reducing the memory bandwidth, but the control is complicated. As another embodiment according to the present invention, there is a method (method 2) in which the memory bandwidth is slightly increased compared to the method 1, but the control is simplified.

즉, 수평 필터링 처리와 수직 필터링 처리를 분리하는 것이다. 먼저, 하나의 슬라이스에 대하여, 이에 포함되는 각 매크로 블록들에 대한 수평 경계부분에 대하여 오버랩 스무딩 및 루프 수평 필터링 처리를 완료한다. 또한, 다음 슬라이스에 포함되는 각 매크로 블록들에 대해서도 수평 경계부분에 대하여 오버랩 스무딩 및 루프 필터링을 완료한다. 이와 같이 모든 슬라이스의 수평 경계부분에 대하여 오버랩 스무딩 및 루프 필터링을 완료하고 난 후, 다시 처음 슬라이스부터 수직 경계부분에 대한 오버랩 스무딩 및 루프 필터링을 수행하는 것이다. 이와 같이 수평 방향 및 수직 방향에 대하여 차례대로 오버랩 스무딩 및 루프 필터링 처리가 끝나면, 그 결과를 외부의 프레임 메모리에 기록한다.That is, the horizontal filtering process and the vertical filtering process are separated. First, an overlap smoothing and loop horizontal filtering process is completed on a horizontal boundary portion of each macroblock included in one slice. In addition, overlap smoothing and loop filtering are completed for the horizontal boundary for each macroblock included in the next slice. In this way, after the overlap smoothing and loop filtering are completed on the horizontal boundaries of all slices, the overlap smoothing and loop filtering is performed on the vertical boundaries from the first slice. In this way, when the overlap smoothing and loop filtering processing is completed in the horizontal direction and the vertical direction, the result is written to the external frame memory.

설명의 편의를 위하여 위의 실시예들에서는 버퍼부, 행 버퍼, 및 열 버퍼의 크기를 일정하게 제한하였으나, 실제 구현 시에는 버퍼의 크기를 유동적으로 정할 수 있다. 예를 들어, 버퍼부와 행 버퍼의 수평 방향 크기를 최대 하나의 슬라이스 크기까지로 늘릴 수 있다. 이 경우, 행 버퍼의 데이터를 메모리에 로드하는 대역폭이 제거된다. 즉, 버퍼의 크기를 늘리는 대신 메모리 대역폭이 줄어들므로 양자간에 적절하게 조정할 수 있다. For convenience of description, in the above embodiments, the sizes of the buffer unit, the row buffer, and the column buffer are constantly limited, but in actual implementation, the size of the buffer may be flexibly determined. For example, the horizontal size of the buffer unit and the row buffer may be increased up to one slice size. In this case, the bandwidth for loading the data of the row buffer into the memory is eliminated. In other words, instead of increasing the size of the buffer, the memory bandwidth is reduced so that the two can be properly adjusted.

이상에서는 VC9의 코덱에서의 필터링 방법 및 장치를 살펴보았으나, 루프 필터가 포함되는 다른 표준들에서도 다양하게 응용될 수 있다. 즉, 이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명에 따른 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.In the above, the filtering method and apparatus in the codec of VC9 have been described, but it can be variously applied to other standards including a loop filter. That is, the above description is only one embodiment of the present invention, and those skilled in the art may implement the present invention in a modified form without departing from the essential characteristics of the present invention. Therefore, it should be interpreted to include various embodiments that are not limited to the examples according to the present invention but within the scope equivalent to those described in the claims.

상술한 바와 같이 본 발명에 따르면, 동영상 코덱에 있어서 매크로 블록 단위로 시간적 순서에 따라 인과적(causal)으로 처리하는 필터링 방법 및 그 필터링 장치가 제공된다. As described above, according to the present invention, there is provided a filtering method for causal processing according to a temporal order in macroblock units in a video codec, and a filtering device thereof.

즉, VC9에서 채택하고 있는 비인과적인(non-causal) 루프 필터를 변형하여 소정의 버퍼를 더 구비함으로써, 메모리 대역폭의 증가나 프레임 딜레이 등의 문제없이, 블로킹 현상(blocking artifact)을 효율적으로 필터링할 수 있다. In other words, by modifying the non-causal loop filter adopted by the VC9 and further including a predetermined buffer, blocking artifacts can be efficiently filtered without increasing memory bandwidth or frame delay. can do.

도 1은 VC9 디코더의 블록도,1 is a block diagram of a VC9 decoder;

도 2는 I 픽처에서 루프 필터링된 수평/수직 블록 경계의 화소들을 나타내는 도면,2 illustrates pixels of a horizontal / vertical block boundary loop filtered in an I picture;

도 3은 P 픽처에서 루프 필터링되는 블록 경계의 예들을 나타내는 도면,3 is a diagram illustrating examples of block boundaries that are loop filtered in a P picture;

도 4는 P 픽처에서 루프 필터링된 블록 수평/수직 경계의 화소들을 나타내는 도면,4 is a diagram illustrating pixels of a block horizontal / vertical boundary loop filtered in a P picture;

도 5는 인접한 블록들간의 경계에서 루프 필터링되는 화소들의 예를 나타내는 도면,5 is a diagram illustrating an example of pixels that are loop filtered at a boundary between adjacent blocks;

도 6은 오버랩 스무딩의 일 예를 나타내는 도면,6 is a diagram illustrating an example of overlap smoothing;

도 7은 본 발명의 바람직한 실시예에 따른 필터링 장치의 블록도,7 is a block diagram of a filtering device according to a preferred embodiment of the present invention;

도 8은 본 발명에 따라 필터링이 수행될 프레임을 나타내는 도면,8 is a view showing a frame to be filtered according to the present invention,

도 9는 도 8에 도시된 CASE 1 영역에서 본 발명에 따라 블록 단위로 필터링되는 순서를 나타내는 일 실시예,FIG. 9 is a diagram illustrating an order of filtering in block units according to the present invention in the CASE 1 region illustrated in FIG. 8;

도 10a 및 도 10b는 도 8에 도시된 CASE 2 영역에서 본 발명에 따라 블록 단위로 필터링되는 순서를 나타내는 일 실시예, 10A and 10B illustrate an example of an order of filtering in block units according to the present invention in the CASE 2 region shown in FIG. 8;

도 11a 및 도 11b는 도 8에 도시된 CASE 3 영역에서 본 발명에 따라 블록 단위로 필터링되는 순서를 나타내는 일 실시예,11A and 11B illustrate an example of an order of filtering in block units according to the present invention in the CASE 3 region shown in FIG. 8;

도 12a 내지 도 12c는 도 8에 도시된 CASE 4 영역에서 본 발명에 따라 블록 단위로 필터링되는 순서를 나타내는 일 실시예이다.12A to 12C illustrate an example of filtering in block units according to the present invention in the CASE 4 region illustrated in FIG. 8.

Claims (20)

동영상 코덱의 필터링 방법에 있어서,In the filtering method of the video codec, 매크로 블록 단위로 필터링 영역을 결정하는 단계;Determining a filtering area in units of macro blocks; 상기 필터링 영역으로 결정된 매크로 블록과 인접한 이전의 매크로 블록간의 경계 부분의 소정 영역을 상기 필터링 영역에 더 포함시키는 단계; 및Further including in the filtering region a predetermined region of a boundary portion between the macroblock determined as the filtering region and a previous macroblock adjacent to the macroblock; And 상기 블록간의 경계부분의 소정 영역을 더 포함하는 필터링 영역에 대하여 시간적 순서에 따라 인과적(causal)으로 디블로킹(de-blocking) 필터링을 수행하는 단계를 포함하는 것을 특징으로 하는 필터링 방법.And performing causal de-blocking filtering on the filtering area further including a predetermined area of the boundary between the blocks. 제1항에 있어서,The method of claim 1, 상기 디블로킹 필터링은, 하나의 필터링 영역에 대하여 수평 방향으로 디블로킹 필터링한 후 수직 방향으로 디블로킹 필터링하고 다음 필터링 영역으로 넘어가는 인과적(causal) 방식으로 디블로킹 필터링하는 것을 특징으로 하는 필터링 방법.The deblocking filtering may include a deblocking filtering in a horizontal direction with respect to one filtering area, a deblocking filtering in a vertical direction, and a deblocking filtering in a causal manner that is transferred to the next filtering area. . 제1항에 있어서,The method of claim 1, 상기 블록 간 경계 부분의 소정의 영역은 최소 4화소 단위의 복수의 화소들을 포함하는 것을 특징으로 하는 필터링 방법.The predetermined area of the boundary portion between blocks includes a plurality of pixels of at least four pixel units. 제1항에 있어서,The method of claim 1, 상기 디블로킹 필터링은, 오버랩 스무딩 및 루프 필터링 중 적어도 하나를 포함하는 것을 특징으로 하는 필터링 방법.The deblocking filtering method includes at least one of overlap smoothing and loop filtering. 제4항에 있어서,The method of claim 4, wherein 매크로 블록 단위로 소정의 조건에 따라 상기 오버랩 스무딩을 수행한 후, 상기 루프 필터링을 수행하는 것을 특징으로 하는 필터링 방법.The loop filtering is performed after performing the overlap smoothing according to a predetermined condition in macro block units. 제4항에 있어서,The method of claim 4, wherein 상기 오버랩 스무딩은, 상기 블록간의 경계 부분을 대칭으로 양 방향으로 최소 2화소씩의 값을 이용하여 오버랩 스무딩을 수행하는 것을 특징으로 하는 필터링 방법.The overlap smoothing method is characterized in that the overlap smoothing using a value of at least two pixels in both directions symmetrically the boundary between the blocks. 제4항에 있어서,The method of claim 4, wherein 상기 오버랩 스무딩은, 수평 방향으로 8x8 블록 경계 부분을 오버랩 스무딩한 후, 수직 방향으로 8x8 블록 경계 부분을 오버랩 스무딩 하는 것을 특징으로 하는 필터링 방법.The overlap smoothing may include overlap smoothing the 8 × 8 block boundary portion in the horizontal direction and then overlap smoothing the 8 × 8 block boundary portion in the vertical direction. 제4항에 있어서,The method of claim 4, wherein 상기 루프 필터링은, 상기 블록간의 경계 부분을 대칭으로 양 방향으로 최소 4화소씩의 값을 이용하여 루프 필터링을 수행하는 것을 특징으로 하는 필터링 방법.The loop filtering method includes performing loop filtering using at least four pixel values in both directions in a symmetrical manner between the boundary portions of the blocks. 제4항에 있어서,The method of claim 4, wherein 상기 루프 필터링은, 수평 방향으로 8x8 블록 경계 부분을 루프 필터링한 후, 8x4 블록 경계 부분을 루프 필터링하며, 수직 방향으로 8x8 블록 경계 부분을 루프 필터링한 후, 4x8 블록 경계 부분을 루프 필터링하는 것을 특징으로 하는 필터링 방법.The loop filtering may include loop filtering the 8x8 block boundary in a horizontal direction, loop filtering the 8x4 block boundary in a horizontal direction, loop filtering the 8x8 block boundary in a vertical direction, and then loop filtering the 4x8 block boundary in a vertical direction. Filtering method. 제1항에 있어서,The method of claim 1, 상기 동영상 코덱은 SMPTE (the Society of Motion Picture and Television Engineers)의 VC9 표준을 따르는 것을 특징으로 하는 필터링 방법.The video codec is based on the VC9 standard of the Society of Motion Picture and Television Engineers (SMPTE). 동영상 코덱의 필터링 장치에 있어서,In the filtering device of the video codec, 매크로 블록 단위의 필터링 영역을 저장하는 버퍼부;A buffer unit which stores the filtering area in units of macro blocks; 상기 버퍼부에 저장된 매크로 블록과 인접한 이전의 매크로 블록간의 경계 부분의 소정 영역을 저장하는 행 버퍼와 열 버퍼; 및A row buffer and a column buffer for storing a predetermined area of a boundary portion between the macro block stored in the buffer unit and a previous macro block adjacent to the macro block; And 상기 버퍼부, 상기 행 버퍼, 및 상기 열 버퍼에 저장된 필터링 영역에 대하여 시간적 순서에 따라 인과적(causal)으로 디블로킹(de-blocking) 필터링을 수행하는 필터링부를 포함하는 것을 특징으로 하는 필터링 장치.And a filtering unit performing causal de-blocking filtering of the filtering area stored in the buffer unit, the row buffer, and the column buffer in a chronological order. 제11항에 있어서,The method of claim 11, 상기 필터링부는, 하나의 필터링 영역에 대하여 수평 방향으로 디블로킹 필터링한 후 수직 방향으로 디블로킹 필터링하고 다음 필터링 영역으로 넘어가는 인과적(causal) 방식으로 디블로킹 필터링하는 것을 특징으로 하는 필터링 장치.The filtering unit may perform deblocking filtering in a horizontal direction with respect to one filtering area, deblocking filtering in a vertical direction, and deblocking filtering in a causal manner to be transferred to the next filtering area. 제11항에 있어서,The method of claim 11, 상기 블록 간 경계 부분의 소정의 영역은 최소 4화소 단위의 복수의 화소들을 포함하는 것을 특징으로 하는 필터링 장치.The predetermined region of the inter-block boundary portion includes a plurality of pixels of at least four pixel units. 제11항에 있어서,The method of claim 11, 상기 디블로킹 필터링은, 오버랩 스무딩 및 루프 필터링 중 적어도 하나를 포함하는 것을 특징으로 하는 필터링 장치.The deblocking filtering comprises at least one of overlap smoothing and loop filtering. 제14항에 있어서,The method of claim 14, 매크로 블록 단위로 소정의 조건에 따라 상기 오버랩 스무딩을 수행한 후, 상기 루프 필터링을 수행하는 것을 특징으로 하는 필터링 장치.The loop filtering is performed after performing the overlap smoothing according to a predetermined condition in units of macro blocks. 제14항에 있어서,The method of claim 14, 상기 오버랩 스무딩은, 상기 블록간의 경계 부분을 대칭으로 양 방향으로 최소 2화소씩의 값을 이용하여 오버랩 스무딩을 수행하는 것을 특징으로 하는 필터링 장치.The overlap smoothing is filtering apparatus, characterized in that for performing the overlap smoothing using a value of at least two pixels in both directions symmetrically the boundary between the blocks. 제14항에 있어서,The method of claim 14, 상기 오버랩 스무딩은, 수평 방향으로 8x8 블록 경계 부분을 오버랩 스무딩한 후, 수직 방향으로 8x8 블록 경계 부분을 오버랩 스무딩 하는 것을 특징으로 하는 필터링 장치.The overlap smoothing may include overlap smoothing the 8 × 8 block boundary part in the horizontal direction and then overlap smoothing the 8 × 8 block boundary part in the vertical direction. 제14항에 있어서,The method of claim 14, 상기 루프 필터링은, 상기 블록간의 경계 부분을 대칭으로 양 방향으로 최소 4화소씩의 값을 이용하여 루프 필터링을 수행하는 것을 특징으로 하는 필터링 장치.In the loop filtering, the loop filtering is performed by using a value of at least four pixels in both directions in a symmetrical manner between the boundary portions of the blocks. 제14항에 있어서,The method of claim 14, 상기 루프 필터링은, 수평 방향으로 8x8 블록 경계 부분을 루프 필터링한 후, 8x4 블록 경계 부분을 루프 필터링하며, 수직 방향으로 8x8 블록 경계 부분을 루프 필터링한 후, 4x8 블록 경계 부분을 루프 필터링하는 것을 특징으로 하는 필터링 장치.The loop filtering may include loop filtering the 8x8 block boundary in a horizontal direction, loop filtering the 8x4 block boundary in a horizontal direction, loop filtering the 8x8 block boundary in a vertical direction, and then loop filtering the 4x8 block boundary in a vertical direction. Filtering device. 제11항에 있어서,The method of claim 11, 상기 동영상 코덱은 SMPTE (the Society of Motion Picture and Television Engineers)의 VC9 표준을 따르는 것을 특징으로 하는 필터링 장치.The video codec is a filtering device, characterized in that the VC9 standard of the Society of Motion Picture and Television Engineers (SMPTE).
KR1020040055893A 2004-06-22 2004-07-19 Filtering method of audio-visual codec and filtering apparatus thereof KR20050121627A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11/156,603 US20050281339A1 (en) 2004-06-22 2005-06-21 Filtering method of audio-visual codec and filtering apparatus
US11/178,409 US20060013315A1 (en) 2004-07-19 2005-07-12 Filtering method, apparatus, and medium used in audio-video codec
CNB2005100848539A CN100490538C (en) 2004-07-19 2005-07-19 Filtering method, apparatus used in audio-video codec

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20040046653 2004-06-22
KR1020040046653 2004-06-22

Publications (1)

Publication Number Publication Date
KR20050121627A true KR20050121627A (en) 2005-12-27

Family

ID=35912736

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040055893A KR20050121627A (en) 2004-06-22 2004-07-19 Filtering method of audio-visual codec and filtering apparatus thereof

Country Status (2)

Country Link
KR (1) KR20050121627A (en)
CN (1) CN1722842A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100753504B1 (en) * 2005-12-20 2007-08-31 엘지전자 주식회사 In-loop Deblocking Filter System and method for filterring data using the same
KR100816461B1 (en) * 2006-04-12 2008-03-26 주식회사 칩스앤미디어 Real-time deblocking filter and Method using the same
KR20140114436A (en) * 2012-01-20 2014-09-26 퀄컴 인코포레이티드 Multi-threaded texture decoding
US9491478B2 (en) 2010-08-17 2016-11-08 M&K Holdings Inc. Method for decoding in intra prediction mode
US11284072B2 (en) 2010-08-17 2022-03-22 M&K Holdings Inc. Apparatus for decoding an image

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101115195B (en) * 2006-07-24 2010-08-18 同济大学 Macroblock grade coupled decoding and loop filtering method and apparatus for video code stream
CN101193305B (en) * 2006-11-21 2010-05-12 安凯(广州)微电子技术有限公司 Inter-frame prediction data storage and exchange method for video coding and decoding chip
CN101742318B (en) * 2010-01-06 2015-01-21 威盛电子股份有限公司 Video decoding and unblocking device and method
KR101750046B1 (en) * 2010-04-05 2017-06-22 삼성전자주식회사 Method and apparatus for video encoding with in-loop filtering based on tree-structured data unit, method and apparatus for video decoding with the same
KR101682147B1 (en) 2010-04-05 2016-12-05 삼성전자주식회사 Method and apparatus for interpolation based on transform and inverse transform

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100753504B1 (en) * 2005-12-20 2007-08-31 엘지전자 주식회사 In-loop Deblocking Filter System and method for filterring data using the same
KR100816461B1 (en) * 2006-04-12 2008-03-26 주식회사 칩스앤미디어 Real-time deblocking filter and Method using the same
US9491478B2 (en) 2010-08-17 2016-11-08 M&K Holdings Inc. Method for decoding in intra prediction mode
US11284072B2 (en) 2010-08-17 2022-03-22 M&K Holdings Inc. Apparatus for decoding an image
KR20140114436A (en) * 2012-01-20 2014-09-26 퀄컴 인코포레이티드 Multi-threaded texture decoding

Also Published As

Publication number Publication date
CN1722842A (en) 2006-01-18

Similar Documents

Publication Publication Date Title
JP5396478B2 (en) Video coding method using adaptive loop filter
TWI382764B (en) Scratch pad for storing intermediate loop filter data
JP5763210B2 (en) Method and apparatus for improved loop-type filtering process
EP2708027B1 (en) Method and apparatus for reduction of in-loop filter buffer
US8577168B2 (en) System and method for in-loop deblocking in scalable video coding
CA2454867C (en) Adaptive filtering based upon boundary strength
US9154808B2 (en) Method and apparatus for INTRA prediction for RRU
US20050281339A1 (en) Filtering method of audio-visual codec and filtering apparatus
US20160241881A1 (en) Method and Apparatus of Loop Filters for Efficient Hardware Implementation
JP4680608B2 (en) Image decoding apparatus and method
US20060013315A1 (en) Filtering method, apparatus, and medium used in audio-video codec
TWI709333B (en) A method of deblocking filtering
KR101253156B1 (en) Method for encoding/decoding video signal
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
US20140269913A1 (en) Method and apparatus for loop filtering
US20150326886A1 (en) Method and apparatus for loop filtering
CN113994670A (en) Video coding and decoding method and device with virtual boundary and cross-component adaptive loop filtering
CN105898335A (en) Method and apparatus of loop filters for efficient hardware implementation
CN103947208A (en) Method and apparatus for reduction of deblocking filter
US20090279611A1 (en) Video edge filtering
KR20050121627A (en) Filtering method of audio-visual codec and filtering apparatus thereof
US20100014597A1 (en) Efficient apparatus for fast video edge filtering
KR101063421B1 (en) Video decoder and video decoding method
JP2009206714A (en) Deblocking filter

Legal Events

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