KR100331331B1 - Image Data Loop Filtering Method - Google Patents
Image Data Loop Filtering Method Download PDFInfo
- Publication number
- KR100331331B1 KR100331331B1 KR1019980046822A KR19980046822A KR100331331B1 KR 100331331 B1 KR100331331 B1 KR 100331331B1 KR 1019980046822 A KR1019980046822 A KR 1019980046822A KR 19980046822 A KR19980046822 A KR 19980046822A KR 100331331 B1 KR100331331 B1 KR 100331331B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- flag
- filtering
- ringing
- pixel
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 영상데이터의 인코딩 및 디코딩할 때 발생하는 양자화효과 감소를 위한 루프필터링 방법 및 장치에 관한 것으로서, 블록킹플래그 및 링잉플래그를 추출하는 플래그 추출단계; 및 플래그가 루프필터링이 필요함을 나타내면 영상데이터를 필터링하는 필터링 단계를 포함함을 특징으로 하고, 인터프레임일 경우, 현재 인터 프레임의 블록킹 플래그는 수평 블록킹 플래그 및 수직 블록킹 플래그로 이루어지고, 기준프레임의 블록킹 플래그를 패딩하는 단계; 인터프레임의 블록(Ac)에 대한 수평 및 수직 블록킹 플래그 추출은 현재 인터 프레임의 블록(Ac)의 움직임 벡터 (MVx, MVy)에 의해 추정되는 기준프레임의 블록을 움직임 블록(X)이라 할 때, 움직임 블록(X)이 상기 기준블록들과 겹쳐진 픽셀수가 소정 개수 이상인 기준블록들의 수평 블록킹 플래그(HBF) 및 수직 블록킹 플래그(VBF)를 비트-와이즈 논리곱하여 현재 VOP의 블록(Ac)의 수평 및 수직 블록킹 플래그로 세팅하는 단계; 및 현재 매크로블록이 스킵된 매크로블록이면 기준 매크로블록의 블록킹 플래그를 현재 매크로블록의 블록킹 플래그로 세팅하는 단계를 포함한다.The present invention relates to a loop filtering method and apparatus for reducing quantization effects occurring when encoding and decoding image data, comprising: a flag extracting step of extracting a blocking flag and a ringing flag; And a filtering step of filtering image data when the flag indicates that loop filtering is required. In the case of an interframe, the blocking flag of the current interframe includes a horizontal blocking flag and a vertical blocking flag. Padding the blocking flag; The horizontal and vertical blocking flag extraction for the block Ac of the interframe is performed when the block of the reference frame estimated by the motion vectors MVx and MVy of the block Ac of the current interframe is called the motion block X. The motion block X bit-wise ORs the horizontal blocking flag HBF and the vertical blocking flag VBF of the reference blocks having a predetermined number of pixels overlapping the reference blocks, thereby horizontally and vertically blocking the block Ac of the current VOP. Setting to a blocking flag; And if the current macroblock is a skipped macroblock, setting the blocking flag of the reference macroblock to the blocking flag of the current macroblock.
본 발명에 의하면, 플래그와 적응필터를 사용하므로써 양자화 효과를 감소시키고, 필터링의 계산량을 줄이는데 큰 도움이 된다. 그리고 하드웨어 복잡성 측면에서 곱셈과 나눗셈 없이 병렬처리에 의해 수행될 수 있다.According to the present invention, the use of the flag and the adaptive filter is very helpful in reducing the quantization effect and reducing the amount of filtering. And in terms of hardware complexity, it can be performed by parallel processing without multiplication and division.
Description
본 발명은 영상 데이터 처리에 관한 것으로서, 특히 양자화효과를 감소시키기 위한 영상 데이터 루프필터링 방법에 관한 것이다.The present invention relates to image data processing, and more particularly, to an image data loop filtering method for reducing quantization effects.
일반적으로 국제표준화기구(Internaltional Organization for Standardization:ISO)의 MPEG 및 ITU(International Telecommunication Union)의H.263을 포함하는 대부분의 화상(picture) 부호화 표준들은 블록에 기초한(block-based) 움직임추정 및 블록(block) 이산여현변환(Discrete Consine Transform:DCT) 처리를 사용한다. 그리고 대부분의 비디오 부호화(coding) 표준들은 정보를 작은 수의 변환계수로 팩킹(packing)하기 위해 8x8 픽셀블록 DCT를 사용한다. 이러한 block-based DCT 스킴(scheme)은 영상의 국부적인 공간 코리레이션(local spatial correlation ) 성질을 이용한다.In general, most picture coding standards, including MPEG by the International Organization for Standardization (ISO) and H.263 by the International Telecommunication Union (ITU), are block-based motion estimation and block (block) Use Discrete Consine Transform (DCT) processing. Most video coding standards use an 8x8 pixelblock DCT to pack information into a small number of transform coefficients. This block-based DCT scheme utilizes the local spatial correlation properties of the image.
그러나 이러한 블록에 기초하여 부호화된 영상데이터를 복원하면, 블록경계 근처의 블록킹 아티팩트(blocking artifacts ) , 블록의 크로스(cross)에서의 코너 아웃라이어(corner outliers ) 및 영상 에지(edge) 부근의 링잉 노이즈(ringing noise )와 같은 상당한 영상 열화를 갖는다. 왜냐하면, 영상데이터를 8x8 픽셀 블록 단위로 DCT 변환하여 상기 변환된 계수를 양자화하기 때문이다. 특히, 이미지가 고압축되어 있을 때는 더욱 그러하다.However, restoring encoded image data based on these blocks results in blocking artifacts near the block boundary, corner outliers at the cross of the block, and ringing noise near the image edge. has significant image degradation such as (ringing noise). This is because the transformed coefficient is quantized by DCT transforming the image data in units of 8x8 pixel blocks. This is especially true when the image is highly compressed.
상기 블록에 기초한 부호화는, 특히 영상(image)이 고압축될 때, 잘 알려진 블록 경계 근처에서의 블록킹 아티팩트(blocking artifacts ), 블록의 크로스 포인트(corss points)에서의 코너 아웃라이어(corner outliers) 및 영상 에지(image edge) 근처에서의 링잉노이즈(ringing noise)를 유발시킨다.The block-based encoding includes blocking artifacts near well-known block boundaries, corner outliers and images at the corss points of the block, especially when the image is compressed. It causes ringing noise near the image edge.
상기 블록킹 아티팩트는 상대적으로 유사한 등질 영역(relative homogenous area)에서의 블록 경계를 따라 발생하는 그리드 노이즈(grid noise)이다. 상기 그리드 노이즈는 압축된 데이터가 복원되어 화면상에 디스플레이될 때, 블록에 기초하여 처리한 흔적이 블록들간의 가장자리에 나타나게 되어, 보는 사람으로 하여금 블록간의 가장자리를 알 수 있게 한다. 그리고 상기 코너 아웃라이어는 8x8 블록의 코너 포인트(corner points)에서 발생한다. 또한 상기 링잉노이즈(ringing noise)는 영상을 고압축하기 위해 상기 이산여현변환(DCT)의 고주파 성분의 계수를 양자화(quantization)에 의한truncation 함으로써 발생되는 전형적인 깁스(Gibb's) 현상으로서, 영상이 약간의 간격을 두고 여러 개 겹쳐서 나타나는 것같이 느끼게 되는 문제를 유발한다.The blocking artifact is grid noise that occurs along block boundaries in relatively similar homogenous areas. When the compressed data is reconstructed and displayed on the screen, the grid noise causes a trace processed based on the block to appear at the edges between the blocks so that the viewer can know the edges between the blocks. And the corner outliers occur at corner points of an 8x8 block. In addition, the ringing noise is a typical Gibb's phenomenon caused by quantization of the coefficients of the high frequency components of the discrete cosine transform (DCT) in order to compress the image. This causes problems that you may feel as if you are overlapping with one another.
본 발명이 이루고자하는 기술적 과제는 블록에 기초한 영상데이터의 복호화시 블록킹 아티팩트, 코너 아웃라이어 및 링잉노이즈와 같은 양자화 효과를 줄이기 위해, 계산이 복잡하지 않으면서 낮은 비트율 부호화가 가능한 영상데이터 루프필터링 방법을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention provides a video data loop filtering method capable of low bit rate coding without complicated computations in order to reduce quantization effects such as blocking artifacts, corner outliers, and ringing noise when decoding block-based video data. To provide.
도 1은 블록에 기초하여(block-based) 영상데이터를 루프필터링할 때, 양자화 효과 감소를 위한 영상데이터 루프필터링 장치의 구성을 블록도로 도시한 것이다.FIG. 1 is a block diagram illustrating a configuration of an image data loop filtering apparatus for reducing quantization effects when loop filtering image data based on blocks.
도 2는 H.263+에 대한 블록도 및 상기 복호화기의 역양자화부에서 역양자화된 8x8 DCT 계수 블록을 도시한 것이다.FIG. 2 shows a block diagram of H.263 + and an 8x8 DCT coefficient block dequantized by an inverse quantizer of the decoder.
도 3은 인터 프레임의 8x8 블록(Ac)과 기준 프레임에서의 이웃 블록과의 관계를 도시한 것이다.3 illustrates a relationship between an 8x8 block Ac of an inter frame and a neighboring block in a reference frame.
도 4는 인터 VOP의 수평블록킹 플래그(HBF), 수직블록킹 플래그(VBF) 및 링잉플래그(RF) 추출을 설명하기 위한 한 예를 도시한 것이다.4 illustrates an example for explaining the horizontal blocking flag (HBF), the vertical blocking flag (VBF), and the ringing flag (RF) extraction of the inter VOP.
도 5는 블록킹 아티팩트들(blocking artifacts) 감소를 목적으로 하는 디블록킹 필터의 동작 설명을 위해, 블록 경계와 블록경계의 픽셀 위치를 도시한 것이다.FIG. 5 illustrates pixel positions of block boundaries and block boundaries for explaining the operation of the deblocking filter for the purpose of reducing blocking artifacts.
도 6은 코너 포인트와 코너 아웃라이어를 도시한 것으로서, (a)는 양자화로 인해 코너 아웃라이어를 생성하는 영상에지의 예를 나타내고, (b)는 양자화로 인해 발생된 코너아웃라이어를 도시하고 있으며, (c)는 코너 아웃라이어 보상하기 위한 코너 포인트의 좌표값(coordination)을 도시한 것이다.6 illustrates a corner point and a corner outlier, (a) shows an example of an image edge generating a corner outlier due to quantization, and (b) shows a corner outlier generated due to quantization. , (c) shows the coordination of corner points for corner outlier compensation.
도 7a는 2차원 신호적응필터(SAF)의 커널(kernel)을 도시한 것이다.FIG. 7A illustrates a kernel of a 2D signal adaptation filter (SAF).
도 7b는 에지검출을 위한 10x10 블록 및 SAF의 예를 도시한 것이다.7B shows an example of 10 × 10 block and SAF for edge detection.
도 8은 Bf_Y 패딩의 결과를 도시한 것이다.8 shows the results of Bf_Y padding.
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for main parts of the drawings>
10 : 영상데이터 후처리 장치10: Image data post processing device
100 : 플래그 추출부, 110 : 디블록킹 필터100: flag extracting unit, 110: deblocking filter
120 : 코너 아웃라이어 보상부, 130 : 디링잉 필터120: corner outlier compensation unit, 130: D-ring filter
상기 기술적 과제를 해결하기 위한 본 발명에 의한 양자화 효과 감소를 위한 영상데이터 루프필터링방법은, 영상데이터의 인코딩 및 디코딩할 때 발생하는 양자화효과 감소를 위한 루프필터링 방법에 있어서, 영상데이터의 루프 필터링 필요성 여부를 나타내는 블록킹 플래그 및 링잉플래그를 추출하는 플래그 추출단계; 및 상기 플래그가 루프 필터링이 필요함을 나타내면 영상데이터를 필터링하는 필터링 단계를 포함함을 특징으로 한다. 상기 영상데이터가 인터프레임일 경우, 현재 인터 프레임의 블록킹 플래그는 수평 블록킹 플래그 및 수직 블록킹 플래그로 이루어지고, 상기 인터프레임의 블록(Ac)에 대한 수평 및 수직 블록킹 플래그 추출은 기준 프레임이 소정의 기준블록들로 이루어지고, 현재 인터 프레임의 블록(Ac)의 움직임 벡터 (MVx, MVy)에 의해 추정되는 기준프레임의 블록을 움직임 블록(X)이라 할 때, 움직임 블록(X)이 상기 기준블록들과 겹쳐진 픽셀수가 소정 개수 이상인 기준블록들의 수평 블록킹 플래그(HBF) 및 수직 블록킹 플래그(VBF)를 비트-와이즈 논리곱하여 현재 VOP의 블록(Ac)의 수평 및 수직 블록킹 플래그로 세팅하는 단계; 및 현재 매크로블록의 움직임 벡터가 0인 스킵된 매크로블록(skipped MB)이면 기준 매크로블록의 블록킹 플래그를 현재 매크로블록의 블록킹 플래그로 세팅하는 단계를 포함하여 이루어진다.An image data loop filtering method for reducing quantization effects according to the present invention for solving the technical problem, in the loop filtering method for reducing quantization effects occurring when encoding and decoding image data, necessity of loop filtering of image data A flag extraction step of extracting a blocking flag and a ringing flag indicating whether or not; And filtering the image data when the flag indicates that loop filtering is required. When the image data is an interframe, the blocking flag of the current interframe consists of a horizontal blocking flag and a vertical blocking flag. The horizontal and vertical blocking flag extraction for the block Ac of the interframe is based on a predetermined reference frame. When a block of a reference frame consisting of blocks and estimated by the motion vectors MVx and MVy of the block Ac of the current inter frame is called a motion block X, the motion block X is the reference blocks. Bit-wise ORing the horizontal blocking flag HBF and the vertical blocking flag VBF of the reference blocks having a predetermined number of pixels overlapping with each other and setting the horizontal and vertical blocking flags of the block Ac of the current VOP; And setting the blocking flag of the reference macroblock to the blocking flag of the current macroblock when the motion vector of the current macroblock is 0 skipped MB.
상기 루프필터링방법은 상기 현재 인터 프레임의 블록(Ac)에 대한 수평 및 수직 블록킹 플래그 추출은 먼저 기준블록의 블록킹 플래그를 복사하여 패딩을 하는 단계를 더 구비함이 바람직하다.In the loop filtering method, the horizontal and vertical blocking flag extraction for the block Ac of the current inter frame may further include copying the blocking flag of the reference block and padding.
그리고 상기 영상데이터가 인터프레임일 경우 상기 인터프레임의 링잉플래그는 제1링잉플래그(RF0) 및 제2링잉플래그(RF1)으로 이루어진다. 현재 인터프레임의 블록(Ac)에 대한 상기 제1링잉 플래그(RF0) 및 제2링잉플래그(RF1)의 추출은 인터 매크로블록의 8x8 블록에서 잔차신호의 역양자화계수(IQC)의 DC 성분 만이 '0'이 아니면, 현재블록(Ac)의 제1링잉플래그(RF0)를 '1'로 세팅하고, 그렇지 않으면 RF0를 0 으로 하는 단계; 및 인터 프레임의 8x8 블록에서의 잔차신호의 역양자화계수(IQC)의 AC 성분 중 하나라도 '0'이 아니면, 현재블록(Ac)의 링잉플래그(RF)를 '1'로 세팅하고, 그렇지 않으면 RF를 0 으로 하는 단계로 이루어진다. 상기 영상데이터가 인터프레임일 경우 상기 인터프레임의 링잉플래그는 제1링잉플래그(RF0) 및 제2링잉플래그(RF1)으로 이루어지며, 현재 인터프레임의 블록(Ac)에 대한 상기 제1링잉 플래그(RF0) 및 제2링잉플래그(RF1)의 추출은 인터 매크로블록의 8x8 블록에서 잔차신호의 역양자화계수(IQC)의 DC 성분 만이 '0'이 아니면, 현재블록(Ac)의 제1링잉플래그(RF0)를 '1'로 세팅하고, 그렇지 않으면 RF0를 0 으로 하는 단계; 및 인터 프레임의 8x8 블록에서의 잔차신호의 역양자화계수(IQC)의 AC 성분 중 하나라도 '0'이 아니면, 현재블록(Ac)의 링잉플래그(RF)를 '1'로 세팅하고, 그렇지 않으면 RF를 0 으로 하는 단계로 이루어진다.When the image data is an interframe, the ringing flag of the interframe includes a first ringing flag RF0 and a second ringing flag RF1. The extraction of the first ringing flag RF0 and the second ringing flag RF1 for the block Ac of the current interframe is performed by the DC component of the inverse quantization coefficient IQC of the residual signal in the 8x8 block of the inter macroblock. If it is not 0 ', setting the first ringing flag RF0 of the current block Ac to' 1 ', otherwise setting RF0 to 0; And if any one of the AC components of the inverse quantization coefficient (IQC) of the residual signal in the 8x8 block of the inter frame is not '0', sets the ringing flag (RF) of the current block (Ac) to '1'; RF is zero. When the image data is an interframe, the ringing flag of the interframe consists of a first ringing flag RF0 and a second ringing flag RF1, and the first ringing flag for the block Ac of the current interframe. RF0) and the second ringing flag RF1 extract the first ringing flag (AC) of the current block (Ac) if only the DC component of the inverse quantization coefficient (IQC) of the residual signal is 8 in the 8x8 block of the inter macroblock. Setting RF0) to '1', otherwise setting RF0 to 0; And if any one of the AC components of the inverse quantization coefficient (IQC) of the residual signal in the 8x8 block of the inter frame is not '0', sets the ringing flag (RF) of the current block (Ac) to '1'; RF is zero.
상기 필터링단계에서의 링잉노이즈를 감소시키는 디링잉필터링의 수행여부는, 루프필터링하고자 하는 프레임을 구성하고 있는 소정 블록을 블록 I라 하고, 상기 블록 I와 인접한 블록을 블록 J라 할 때, 상기 블록 I에 대해 현재의 블록과 역양자화된 이전의 블록의 차가 소정의 값 이하이고, 상기 블록 J에 대해 현재의 블록과 역양자화된 이전의 블록의 차가 소정의 값 이하이면, 디링잉(deringing ) 필터링을 수행하지 않음을 특징으로 한다. 또한 상기 필터링단계에서의 링잉노이즈를 감소시키는 디링잉필터링 수행여부는, 블록 I가 인트라 블록이면 디링잉 필터링을 수행하는 단계; 상기 블록 I가 인트라 블록이 아니고, 8x8 예측모드를 사용한 블록이면 디링잉 필터링을 수행하는 단계; 및 상기 상기 블록 I가 인트라 블록이 아니고 8x8 예측모드를 사용한 블록이 아니고, 블록 I의 RF1이 디링잉필터링이 필요함을 나타내면 디링잉필터링을 수행하고, 블록 I의 RF1이 디링잉필터링이 필요치 않음을 나타내면 디링잉필터링을 수행하지않는 단계를 이루어짐을 특징으로 한다.Performing the de-ringing filtering to reduce the ringing noise in the filtering step, when the predetermined block constituting the frame to be loop-filtered is called block I, and the block adjacent to the block I is called block J, the block Delinging filtering if the difference between the current block and the dequantized previous block for I is less than or equal to a predetermined value, and the difference between the current block and the de-quantized previous block for Block J is less than or equal to a predetermined value. It is characterized by not performing. In addition, whether to perform the de-ringing filtering to reduce the ringing noise in the filtering step, if the block I is an intra block, performing the de-ringing filtering; Performing de-ringing filtering if the block I is not an intra block and is a block using an 8x8 prediction mode; And if the block I is not an intra block and is not a block using an 8x8 prediction mode, and the RF1 of the block I indicates that de-ringing filtering is required, the de-ringing filtering is performed, and the RF1 of the block I does not need de-ringing filtering In this case, the step of performing the de-ringing filtering is performed.
이하에서 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 도 1은 영상데이터를 블록에 기초하여(block based) 부호화 및 복호화할 때 발생하는 양자화 효과 감소를 위한 영상데이터 루프 필터링 장치(10)의 구성을 블록도로 도시한 것이다. 상기 루프필터링 장치(10)는 일반적인 부호화기 및 복호화기에 연결되어 사용된다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. FIG. 1 is a block diagram illustrating a configuration of an image data loop filtering device 10 for reducing quantization effects generated when encoding and decoding image data based on blocks. The loop filtering device 10 is used in connection with a general encoder and decoder.
상기 영상데이터 루프 필터링 장치(10)는 플래그 추출부(100), 디블록킹 필터(110), 코너 아웃라이어 보상부(120) 및 디링잉필터(130)를 포함하여 이루어진다. 상기 플래그추출부(100)는 역양자화된 상기 영상 데이터의 역양자화 계수의 분포 및 이전 프레임과 현재 프레임의 차를 나타내는 움직임 벡터를 이용하여 플래그를 추출한다.The image data loop filtering device 10 includes a flag extractor 100, a deblocking filter 110, a corner outlier compensator 120, and a de-ringing filter 130. The flag extractor 100 extracts a flag using a distribution of inverse quantization coefficients of the dequantized image data and a motion vector representing a difference between a previous frame and a current frame.
상기 플래그(Flag)는 복호화된 영상의 루프 필터링 필요성 여부를 나타내는 정보이며, 블록킹 플래그와 링잉 플래그로 나누어진다. 상기 블록킹 플래그는 블록 경계 근처의 블록킹 아티팩트들(artifacts)을 감소시킬 필요성 여부를 나타내며, 상기 링잉플래그는 블록킹 플래그 및 영상 에지 근처의 링잉 노이즈를 감소시킬 필요성 여부를 나타낸다. 그리고 상기 블록킹 플래그는 수평블록경계선을 기준으로 하여 인접한 블록의 픽셀들에 대한 루프 필터링 여부를 나타내는 수평블록킹 플래그(Horizontal Blocking Flag : HBF) 및 수직블록경계선을 기준으로 하여 인접한 블록의 픽셀들에 대한 루프 필터링 여부를 나타내는 수직블록킹 플래그(Vertical Blocking Flag : VBF)로 구성된다.The flag is information indicating whether loop filtering of the decoded image is necessary and is divided into a blocking flag and a ringing flag. The blocking flag indicates whether it is necessary to reduce blocking artifacts near the block boundary, and the ringing flag indicates whether it is necessary to reduce the blocking flag and ringing noise near the image edge. The blocking flag is a loop for pixels of neighboring blocks based on a horizontal block flag (HBF) and a vertical block boundary indicating whether or not loop filtering is performed on pixels of an adjacent block based on a horizontal block boundary. It consists of a vertical blocking flag (VBF) indicating whether to filter.
그리고 상기 플래그 추출은 인트라프레임 및 인터 프레임에 대해 추출한다. 본 발명에서는 상기 인터프레임은 P 프레임 및 PB 프레임으로 한다. 상기 인트라 프레임에 대한 플래그 추출은 역양자화된 상기 영상 데이터의 역양자화 계수의 분포를 이용한다. 상기 인터프레임에 대한 플래그 추출은 이전 프레임과 현재 프레임의 차를 나타내는 움직임 벡터를 이용하며 보다 자세한 것은 후술하기로 한다.The flag extraction is extracted for intra frames and inter frames. In the present invention, the interframe is a P frame and a PB frame. The flag extraction for the intra frame uses a distribution of inverse quantization coefficients of the dequantized image data. The flag extraction for the interframe uses a motion vector indicating a difference between a previous frame and a current frame, which will be described later.
상기 디블록킹 필터(110)는 일차원 수평 및 수직 저역통과필터(LPF)를 사용하여 상기 플래그 추출부(100)에서 추출된 블록킹 플래그를 검사하여 영상데이터를 디블록킹(deblocking) 필터링한다.The deblocking filter 110 deblocks and filters the image data by inspecting a blocking flag extracted by the flag extractor 100 using one-dimensional horizontal and vertical low pass filters (LPFs).
상기 아웃라이어 보상부(120)는 상기 디블록킹 필터(110)에서 디블록킹 필터링된 데이터 중 코너 아웃라이어를 검출하여 보상한다.The outlier compensator 120 detects and compensates for a corner outlier among deblocking filtered data by the deblocking filter 110.
상기 디링잉(deringing) 필터(130)는 이차원 신호적응필터를 사용하여 상기 플래그 추출부(100)에서 추출된 링잉 플래그를 검사하여 상기 코너 아웃라이어 보상된 데이터를 디링잉 필터링한다.The delinging filter 130 examines the ringing flag extracted by the flag extractor 100 using a two-dimensional signal adaptation filter to de-ring and filter the corner outlier compensated data.
본 발명에 의한, 영상데이터 루프 필터링 방법의 기본 개념은 영상데이터에 대해서 공간주파수(spatial frequency ) 및 시간정보(temporal information )를 사용하므로써 적응적으로 양자화 효과를 줄이는 것이다.The basic concept of the image data loop filtering method according to the present invention is to adaptively reduce the quantization effect by using spatial frequency and temporal information on the image data.
그리고 subjective image quality, PSNR 및 계산의 복잡성을 고려하고 있다. 특히 계산의 복잡성은 소프트웨어 및 하드웨어로 상기 기본 개념을 구현할 때 매우 중요한 결정요소이다. 8x8 블록마다 blocking artifacts 와 ringing noise 의 플래그를 추출하기 위해, 주파수 영역과 움직임 벡터에서의 역양자화 계수의 분포가 조사된다. 블록킹(blocking ) 플래그 및 링잉(ringing ) 플래그를 사용하므로써, 1차원 LPF와 2차원 SAF가 8x8 블록마다 적응적으로 적용된다.We consider the subjective image quality, PSNR, and computational complexity. In particular, the complexity of computation is a very important determinant when implementing the basic concepts in software and hardware. In order to extract the blocking artifacts and the ringing noise flag every 8x8 block, the distribution of inverse quantization coefficients in the frequency domain and the motion vector is examined. By using the blocking flag and the ringing flag, one-dimensional LPF and two-dimensional SAF are adaptively applied every 8x8 blocks.
먼저, 상기 플래그 추출부(100)에서의 blocking artifacts 와 ringing noise에 대한 플래그 추출에 대한 설명을 하기로 한다.First, a description will be given of flag extraction for blocking artifacts and ringing noise in the flag extractor 100.
1. 블록킹 아티팩트들 및 링잉노이즈 정보1. Blocking artifacts and ringing noise information
H.263+ 에서의 양자화효과를 감소하기 위해, 두 종류의 플래그가 정의된다. 첫째는 블록킹(blocking ) 플래그이고, 둘째는 링잉(ringing) 플래그이다. 상기 블록킹 및 링잉 플래그들은 인트라 매크로블록에서 각 8x8블록의 DCT 영역(domain)으로부터 추출된다. 또한 인터 매크로블록의 플래그는 잔차신호(residual signal) 및 기준 VOP의 플래그로부터 계산된다. 상기 플래그들은 수평블록킹 플래그(HBF), 수직블록킹 플래그(VBF), 제1링잉플래그(RF0) 및 제2링잉플래그(RF1)으로 구성된다.In order to reduce the quantization effect in H.263 +, two kinds of flags are defined. The first is the blocking flag and the second is the ringing flag. The blocking and ringing flags are extracted from the DCT domain of each 8x8 block in the intra macroblock. The flag of the inter macroblock is also calculated from the residual signal and the flag of the reference VOP. The flags include a horizontal blocking flag HBF, a vertical blocking flag VBF, a first ringing flag RF0 and a second ringing flag RF1.
A. 인트라 매크로블록(Macro Block)을 위한 플래그 정보A. Flag Information for Intra Macro Block
역양자화 후의 DCT 계수인 역양자화계수(IQC)의 분포가 디코더 및 인코더에서 조사된다. 도 2는 H.263+ 의 블록도 및 역양자화후의 DCT 계수를 도시한 것이다. 도 2의 8x8 역양자화된 블록에서, 계수 A, B 및 C가 블록킹 플래그 및 링잉 플래그를 결정하는데 사용된다.The distribution of the inverse quantization coefficient IQC, which is the DCT coefficient after inverse quantization, is examined at the decoder and the encoder. Figure 2 shows a block diagram of H.263 + and the DCT coefficients after dequantization. In the 8x8 dequantized block of Figure 2, coefficients A, B and C are used to determine the blocking flag and the ringing flag.
도 2에 도시된 8x8 블록의 64개의 픽셀 DCT 계수 중 위치 A, 즉 DC 성분의 계수만이 '0'이 아닌 값을 갖는다면, 상기 8x8 부호화된 블록의 64 픽셀은 공간 영역에서 동일한 값을 갖는다. 그러므로 DC성분만을 갖는 블록은 수평 및 수직 블록킹 artifacts 를 유발할 수 있다. 이러한 경우, 수평블록킹 플래그(HBF)와 수직블록킹 플래그(VBF) 둘다 '1'로 세팅된다.If only position A among the 64 pixel DCT coefficients of the 8x8 block illustrated in FIG. 2, that is, the coefficient of the DC component has a value other than '0', 64 pixels of the 8x8 coded block have the same value in the spatial domain. . Therefore, blocks with only DC components can cause horizontal and vertical blocking artifacts. In this case, both the horizontal blocking flag HBF and the vertical blocking flag VBF are set to '1'.
8x8 역양자화된 블록의 맨 위 열(top row) 만이 상기 top low를 구성하는 8 픽셀의 계수 중 어느 하나라도 '0'이 아닌 값을 가질 때, 각 칼럼(column)의 8개의 픽셀은 공간영역에서 동일한 값을 갖는다. 이 블록은 수직 블록킹 artifacts 를 유발하며, 따라서 VBF는 '1'로 세팅된다.When only the top row of an 8x8 dequantized block has a value other than '0' in any of the 8 pixel coefficients constituting the top low, the eight pixels of each column are space domains. Have the same value in. This block causes vertical blocking artifacts, so the VBF is set to '1'.
가장 왼쪽 칼럼 만이 상기 맨 왼쪽 칼럼을 구성하는 8픽셀의 계수 중 어느 하나라도 '0'이 아닌 값을 가질 때, 각 열(row)의 8개의 픽셀들은 공간 영역에서 동일한 값을 가진다. 이 블록은 수평 블록킹 artifacts 를 유발하며, 따라서 HBF는 '1'로 세팅된다.When only the leftmost column has a value other than '0' of any of the eight pixel coefficients constituting the leftmost column, the eight pixels of each row have the same value in the spatial domain. This block causes horizontal blocking artifacts, so HBF is set to '1'.
도 2에 도시한 A, B 및 C 이외의 위치에 어느 하나라도 '0'이 아닌 계수 값을 가질 때, 제1링잉 플래그(RF0)는 '1'로 세팅된다. 이들 고주파 계수는 블록이 영상에지(image edge)를 포함하고 있음을 뜻한다. 그러므로 이러한 블록은 고주파 성분 계수의 truncation 으로 인해 상기 영상에지 부근(around)에 링잉 노이즈를 만들어낸다. 상기 HBS, VBS 및 RS는 각 블록에서 루프 필터링을 하는데에 사용된다. 제2링잉플래그(RF0)는 인트라 매크로 블록에서는 사용되지 않는다.When any of the positions other than A, B and C shown in Fig. 2 has a coefficient value other than '0', the first ringing flag RF0 is set to '1'. These high frequency coefficients mean that the block contains image edges. Therefore, this block generates ringing noise near the image edge due to truncation of the high frequency component coefficients. The HBS, VBS and RS are used for loop filtering in each block. The second ringing flag RF0 is not used in the intra macro block.
B. 인터 매크로 블록에 대한 플래그 정보의 전파(propagation)B. Propagation of Flag Information for Inter Macro Blocks
기준 프레임(I 픽쳐 또는 P 픽쳐 또는 개선된(improved) PB 프레임의 P픽쳐 부분)에서의 블록킹 플래그는 움직임 벡터를 사용하므로써 다음(next) 인터 매크로블록에 전파된다. 또한, 인터 블록의 잔차 신호(residual signal)는 인터 블록의 플래그를 결정하는데 사용된다. 현재의 매크로블록이 스킵된(skipped) 매크로블록(COD-1)이라면, 기준 매크로 블록에서의 6개의 블록(Y용 4개, Cb 및 Cr용 각 1개)의 블록킹 플래그는 현재의 매크로블록으로 복사된다.The blocking flag in the reference frame (I picture or P picture or P picture portion of an improved PB frame) is propagated to the next inter macroblock by using a motion vector. In addition, the residual signal of the inter block is used to determine a flag of the inter block. If the current macroblock is skipped macroblock (COD-1), then the blocking flags of the six blocks (four for Y, one for each of Cb and Cr) in the reference macroblock are changed to the current macroblock. Copied.
먼저, 블록킹 플래그가 기준 프레임으로부터 인터 프레임으로 전파되는 것을 설명한다. 도 3은 인터 프레임의 8x8 블록(Ac)과 기준 프레임에서의 이웃 블록과의 관계를 도시한 것이다. 블록킹 플래그의 전파는 움직임 벡터 MVx, MVy 에 의해 다음과 같이 기술된다.First, the blocking flag is described to be propagated from the reference frame to the inter frame. 3 illustrates a relationship between an 8x8 block Ac of an inter frame and a neighboring block in a reference frame. Propagation of the blocking flag is described as follows by the motion vectors MVx and MVy.
도 3에서 Ar, Br, Cr 및 Dr은 기준 프레임의 블록들이다. Ac는 현재의 인터 프레임에서의 블록이며, X는 상기 Ac의 움직임 블록이다. 상기 움직임 블록 X는 움직임 벡터 (MVx, MVy)를 사용하므로써 추정된다. 상기 현재 블록 Ac의 HBS 및 VBS는 움직임 추정된 블록 X에 의해 겹쳐지는 기준블록의 HBS 및 VBS 를 비트 와이즈 논리곱(bit-wise AND) 연산하므로써 계산될 수 있다. 상기 AND 연산은 블록 X와 겹쳐진(overlapped) 블록 중 겹쳐진 정도가 1x1 픽셀보다 넓은 블록에 대해서 수행된다. 예를 들어, 움직임 벡터가 MVx = 5, MVy = 3.5 일 때, 움직임 추정된 블록 X는 네 개의 기준블록 Ar, Br, Cr 및 Dr과 겹쳐진다. 여기서 상기 네 개의 겹쳐진 영역은 모두 1x1 픽셀보다 넓다. 그러므로, 현재 블록 Ac의 HBS 및 VBS는 도 4에 도시된 바와 같이 네 개의 기준블록 Ar, Br, Cr 및 Dr로부터 계산될 수 있다. 여기서 '&'는 비트와이즈 논리곱(bit-wise AND) 연산을 나타낸다.In Figure 3 Ar, Br, Cr and Dr are blocks of the reference frame. Ac is a block in the current inter frame, and X is a motion block of the Ac. The motion block X is estimated by using the motion vectors MVx and MVy. The HBS and VBS of the current block Ac may be calculated by bit-wise ANDing the HBS and VBS of the reference block overlapped by the motion estimated block X. The AND operation is performed on blocks whose overlapping degree is larger than 1 × 1 pixels among blocks overlapped with block X. For example, when the motion vector is MVx = 5 and MVy = 3.5, the motion estimated block X overlaps with four reference blocks Ar, Br, Cr and Dr. The four overlapped regions are all wider than 1x1 pixels. Therefore, the HBS and VBS of the current block Ac can be calculated from four reference blocks Ar, Br, Cr and Dr as shown in FIG. Where '&' represents a bit-wise AND operation.
다음으로, 인터프레임에서의 링잉 플래그에 대해 설명한다. 우선, 인터 매크로블록의 8x8 블록에서의 잔차신호의 역양자화계수(IQC)를 검사한다. 상기 IQC의 DC성분만이 '0'가 아니고 다른 성분은 모두 '0'일 때 Ac의 제1링잉플래그(RF0)는 '1'로 세팅된다. 그리고 상기 IQC의 AC 성분 중 하나라도 '0'가 아니면, 기준블록 Ac의 RF를 '1'로 세팅한다. 하나의 매크로블록(MB)에 대한 네 개의 움직임 벡터를 전달하는 것을 8x8 예측모드(prediction mode)라 한다. 8x8 예측모드는 디링잉필터링에서 고려된다.Next, the ringing flag in the interframe will be described. First, the inverse quantization coefficient IQC of the residual signal in the 8x8 block of the inter macroblock is examined. When only the DC component of the IQC is not '0' and all other components are '0', the first ringing flag RF0 of Ac is set to '1'. If none of the AC components of the IQC is '0', the RF of the reference block Ac is set to '1'. Transferring four motion vectors for one macroblock MB is called an 8x8 prediction mode. The 8x8 prediction mode is considered in the de-ringing filtering.
2. 플래그를 이용한 영상데이터 루프 필터링2. Image Data Loop Filtering Using Flags
한편, 디블록킹 필터(deblocking filter, 110), 코너 아웃라이어 보상부(120) 및 디링잉 필터(130)에 대해 구체적으로 설명하기로 한다.Meanwhile, the deblocking filter 110, the corner outlier compensator 120, and the deringing filter 130 will be described in detail.
2.1. blocking artifacts 감소를 위한 디블록킹 필터2.1. Deblocking filter for reducing blocking artifacts
blocking artifacts 감소를 위한 일차원 저역통과필터(LPF)는 수평 경계 및 수직 경계 상의 블록킹 플래그에 따라 강하게(strongly )또는 약하게(weakly) 수행된다. blocking artifacts 를 줄이기 위해, 대부분의 디블록킹(deblocking) 방법들은 영상에지(image-edge) 정보를 계산하고, 상기 영상에지에 기반한 저역통과필터(LPF)를 적응적으로 적용한다. 그러나 본 발명에 의한 디블록킹 방법은 상기에서 구한 블록킹 플래그를 이용하기 때문에 많은 계산량을 요구하는 영상에지검출을 필요로 하지 않는다.One-dimensional low pass filter (LPF) for reducing blocking artifacts is performed strongly or weakly according to the blocking flag on the horizontal boundary and the vertical boundary. In order to reduce blocking artifacts, most deblocking methods calculate image-edge information and adaptively apply a low pass filter (LPF) based on the image edge. However, the deblocking method according to the present invention does not require image edge detection, which requires a large amount of computation since the blocking flag obtained above is used.
처리되어야 할 8x8 블록과 인접블록들이 도 5에 도시되어 있다. 블록-I(BLOCK-I)의 HBF와 블록-J(BLOCK-J)의 HBF 둘다 '1'로 세팅되어 있다면, 7-탭(1,1,1,2,1,1,1) LPF가 도 5의 수평블록 경계상의 픽셀 A, B, C, D, E 및 F에 적용된다. 수평 디블록킹 필터링을 알고리즘으로 나타내면 다음과 같다.8x8 blocks and neighboring blocks to be processed are shown in FIG. If both HBF of Block-I and HBF of Block-J are set to '1', the 7-tap (1,1,1,2,1,1,1) LPF is It applies to pixels A, B, C, D, E and F on the horizontal block boundary of FIG. The horizontal deblocking filtering algorithm is as follows.
if(BLOCK_I == NOT coded && BLOCK_J NOT coded) No deblocking filter ;if (BLOCK_I == NOT coded && BLOCK_J NOT coded) No deblocking filter;
if(INTRA frame) {if (INTRA frame) {
if(RF0 of BLOCK_I == 0 && RF of BLOCK_J == 0) {/* No Ringing Noise */}if (RF0 of BLOCK_I == 0 && RF of BLOCK_J == 0) {/ * No Ringing Noise * /}
if(HBF of BLOCK_I == 1 && HBF of BLOCK_J == 1)if (HBF of BLOCK_I == 1 && HBF of BLOCK_J == 1)
strong deblocking filtering ;strong deblocking filtering;
elseelse
weak deblocking filtering ;weak deblocking filtering;
}}
else weak deblocking filtering ;else weak deblocking filtering;
}}
if (P or PB_frame) {if (P or PB_frame) {
if(RF of BLOCK_I == 0){ /* No Ringing Noise */if (RF of BLOCK_I == 0) {/ * No Ringing Noise * /
if(BLOCK_I == INTRA || BLOCK_J == INTRA) {if (BLOCK_I == INTRA || BLOCK_J == INTRA) {
if(HBF of BLOCK I ++ 1 && HBF of BLOCK_J == 1)if (HBF of BLOCK I ++ 1 && HBF of BLOCK_J == 1)
strong deblocking filtering ;strong deblocking filtering;
elseelse
weak deblocking filtering ;weak deblocking filtering;
}}
else{else {
if (RF0 of BLOCK I == 1 || RF0 of BLOCK J == 1){if (RF0 of BLOCK I == 1 || RF0 of BLOCK J == 1) {
if(HBS of BLOCK_I==1 && HBF of BLOCK_J==1)if (HBS of BLOCK_I == 1 && HBF of BLOCK_J == 1)
strong delbocking filtering ;strong delbocking filtering;
elseelse
weak deblocking filtering ;weak deblocking filtering;
}}
}}
}}
else /* Ringing Noise */else / * Ringing Noise * /
weak deblocking filtering ;weak deblocking filtering;
}}
상기 알고리즘을 설명하면, 루프필터링하고자 하는 프레임을 구성하고 있는 소정 블록을 블록 I라 하고, 상기 블록 I와 인접한 블록을 블록 J라 할 때, 상기 블록 I에 대해 현재의 블록과 역양자화된 이전의 블록의 차가 소정의 값 이하이고, 상기 블록 J에 대해 현재의 블록과 역양자화된 이전의 블록의 차가 소정의 값 이하이면, 디블록킹(deblocking) 필터링을 수행하지 않는다.In the above algorithm, when a predetermined block constituting the frame to be loop-filtered is called block I, and a block adjacent to the block I is called block J, the previous block dequantized with the current block with respect to the block I If the difference between the blocks is equal to or less than a predetermined value and the difference between the current block and the previous block dequantized for the block J is less than or equal to the predetermined value, deblocking filtering is not performed.
인트라 프레임일 경우, 블록킹 아티팩트들을 감소시키기 위한 디블록킹 필터링은 루프필터링하고자 하는 프레임을 구성하고 있는 소정 블록을 블록 I라 하고, 상기 블록 I와 인접한 블록을 블록 J라 할 때, 블록 I 및 블록 J의 링잉플래그(RF0)가 모두 링잉노이즈를 감소시킬 필요가 없음을 나타내고, 블록 I의 HBF와 블록 J의 HBF 둘다 블록킹 아티팩트들을 감소시킬 필요가 있음을 나타내면, 상기 블록 I와 블록 J를 경계짓는 수평블록 경계선을 사이에 둔 소정 개수의 픽셀값을 변화시키는 제1필터링(strong deblocking filtering)을 수행한다.In the case of an intra frame, deblocking filtering to reduce blocking artifacts is a block I and a block J when a block constituting the frame to be loop filtered is called block I, and a block adjacent to the block I is called block J. If the ringing flag of RF0 indicates that there is no need to reduce ringing noise, and both the HBF of block I and the HBF of block J indicate that it is necessary to reduce blocking artifacts, then the horizontal boundary between block I and block J Strong deblocking filtering is performed to change a predetermined number of pixel values between block boundaries.
블록 I 및 블록 J의 링잉플래그(RF0)가 모두 링잉노이즈를 감소시킬 필요가 없음을 나타내고 블록 I의 HBF와 블록 J의 HBF 둘 중 적어도 하나라도 블록킹 아티팩트들을 감소시킬 필요가 없음을 나타내면, 또는 블록 I 및 블록 J의 링잉플래그(RF) 중 적어도 하나가 링잉노이즈를 감소시킬 필요가 있음을 나타내면, 수평블록 경계선을 사이에 두고 인접한 두 픽셀의 차와 H.263의 양자화된 요소(faoctor)인 QP를 비교하여 두 픽셀의 차가 QP보다 작으면 상기 제1필터링보다 작은 개수의 픽셀 값을 변화시키는 제2필터링(weak deblocking filtering)을 수행한다.If both the ringing flags (RF0) of block I and block J indicate that there is no need to reduce ringing noise and at least one of the HBF of block I and the HBF of block J does not need to reduce blocking artifacts, or block If at least one of the ringing flags (RF) of I and block J indicates that the ringing noise needs to be reduced, the difference between two adjacent pixels across the horizontal block boundary and the QP, the quantized factor of H.263, are When the difference between the two pixels is smaller than the QP, the second filtering (weak deblocking filtering) is performed to change the number of pixel values smaller than the first filtering.
그리고 수직블록 경계선을 사이에 둔 픽셀에 대해서는 상기 수직 블록킹 플래그(VBF)를 이용하여 상기 수평블록 경계선을 사이에 둔 픽셀과 같은 방식으로 필터링을 한다.Pixels having a vertical block boundary line are filtered in the same manner as pixels having the horizontal block boundary line using the vertical blocking flag VBF.
한편, 인터프레임(P 또는 PB 프레임)일 경우, 블록킹 아티팩트들을 감소시키기 위한 디블록킹 필터링은 블록 I의 제2링잉플래그(RF1)가 링잉노이즈를 감소시킬 필요가 없음을 나타내고, 블록 I가 INTRA 이거나 블록 J가 INTRA 이고, 블록 I의 HBF와 블록 J의 HBF 둘다 블록킹 아티팩트들을 감소시킬 필요가 있음을 나타내면, 상기 블록 I와 블록 J를 경계짓는 수평블록 경계선을 사이에 둔 소정 개수의 픽셀값을 변화시키는 제1필터링(strong deblocking filtering)을 수행한다.On the other hand, in the case of an interframe (P or PB frame), deblocking filtering to reduce blocking artifacts indicates that the second ringing flag RF1 of block I does not need to reduce ringing noise, and block I is INTRA or If block J is INTRA and indicates that both the HBF of block I and the HBF of block J need to reduce blocking artifacts, change a predetermined number of pixel values between the horizontal block boundaries that border block I and block J. Strong deblocking filtering is performed.
블록 I의 제2링잉플래그(RF1)가 링잉노이즈를 감소시킬 필요가 없음을 나타내고, 블록 I가 INTRA 이거나 블록 J가 INTRA 이고, 블록 I의 HBF와 블록 J의 HBF 둘 중 하나라도 블록킹 아티팩트들을 감소시킬 필요가 없음을 나타내면, 수평블록 경계선을 사이에 두고 인접한 두 픽셀의 차와 H.263의 양자화된 요소(faoctor)인 QP를 비교하여 두 픽셀의 차가 QP보다 작으면 상기 제1필터링보다 작은 개수의 픽셀 값을 변화시키는 제2필터링(weak deblocking filtering)을 수행한다.The second ringing flag RF1 of block I indicates that there is no need to reduce ringing noise, block I is INTRA or block J is INTRA, and either HBF of block I or HBF of block J reduces blocking artifacts. If the difference between the two adjacent pixels and the QP, which is the quantized factor of H.263, is intersected with the horizontal block boundary line, the number is smaller than the first filtering. Weak deblocking filtering is performed to change the pixel value of.
블록 I의 제2링잉플래그(RF1)가 링잉노이즈를 감소시킬 필요가 없음을 나타내고, 블록 I 및 블록 J 둘다 INTRA 가 아니고, 블록 I 및 블록 J 둘 중 하나의 RF0가 1임을 나타내고, 블록 I 및 블록 J가 둘다 HBF가 '1'이면 제1필터링(strong deblocking filtering)을 수행한다.The second ringing flag RF1 of block I indicates that there is no need to reduce ringing noise, block I and block J are both INTRA, and that RF0 of either block I and block J is 1, block I and If the blocks J are both HBF is '1', the first filtering (strong deblocking filtering) is performed.
블록 I의 링잉플래그(RF)가 링잉노이즈를 감소시킬 필요가 없음을 나타내고, 블록 I 및 블록 J 둘다 INTRA 가 아니고, 블록 I 및 블록 J 둘 중 하나의 RF0가 1임을 나타내고, 블록 I 및 블록 J 의 중 적어도 하나의 HBF가 '0'을 나타내면 제2필터링(weak deblocking filtering)을 수행한다.The ringing flag (RF) of block I indicates that there is no need to reduce ringing noise, both block I and block J are not INTRA, indicating that RF0 of either block I and block J is 1, block I and block J When at least one of HBFs indicates '0', second filtering is performed.
블록 I의 RF 1이 0 이 아니면 제2필터링(weak deblocking filtering)을 수행한다.If the RF 1 of the block I is not 0, the second filtering is performed.
상기 블록 I와 블록 J를 경계짓는 수평블록 경계선을 사이에 둔 6개의 픽셀을 A,B,C,D,E 및 F 라 하고, 상기 픽셀 C 및 D를 상기 수평블록 경계선에 가장 인접한 픽셀, 상기 픽셀 A 및 F 가 수평블록 경계선에서 가장 먼 픽셀, 상기 픽셀 B 및 D가 상기 A 및 C, D 및 F의 중간에 위치한 픽셀이라 할 때, 상기 제1필터링은 상기 6개의 픽셀에 대해 7-탭(1,1,1,2,1,1,1) 저역통과필터링을 수행한다.Six pixels having a horizontal block boundary line between the block I and block J are A, B, C, D, E, and F, and the pixels C and D are pixels closest to the horizontal block boundary line, and When pixels A and F are pixels farthest from the horizontal block boundary, and pixels B and D are pixels located in the middle of A and C, D and F, the first filtering is 7-tap for the six pixels. Perform (1,1,1,2,1,1,1) low pass filtering.
상기 제2필터링은 상기 픽셀 C 및 D에 대해 필터링을 수행하되, 상기 픽셀 C 및 D의 차의 절대값이 H.263의 양자화 요소(factor) QP보다 작다면, C는 C+(D-C)/4로, D는 D+(D-C)/4로 대체한다.The second filtering performs filtering on the pixels C and D, but if the absolute value of the difference between the pixels C and D is less than the quantization factor QP of H.263, C is C + (DC) / 4 D is replaced by D + (DC) / 4.
2.2. 코너 아웃라이어 보상부(corner outliers )2.2. Corner outliers
코너 아웃라이어의 보상은 INTRA 프레임에서만 수행된다. 상기 코너 아웃라이어는 도 6에 도시된 바와 같이 8x8 블록의 corner point 에서 이웃하는 픽셀들 보다 훨씬 크거나 작은 픽셀에 의해 특징지워진다. 도 6 (a)에서 dark-gray 영역이 네 개의 블록에 걸쳐 분포되고 상기 dark-gray 영역의 하나나 두 개의 픽셀이 이웃하는 블록들의 corner points 에 위치할 때, corner points 는 도 6 (b)에 도시된 바와 같이 DCT 계수의 양자화에 의해 왜곡될 수 있다. 이렇게 왜곡된 corner point를 corner outlier 라 한다. 상기 corner outlier는 디블록킹 필터 및 디링잉 필터로는 제거할 수 없다. 상기 코너 아웃라이어를 줄이기 위해, 먼저 코너아웃라이어를 검출하고, 그 다음에 상기 검출된 코너 아웃라이러를 보상한다. 도 6 (c)는 코너아웃라이어 검출을 위한 간단한 coordination 을 기술하고 있다. 여기서 A,B,C 및 D는 8x8 블록의 corner points 의 픽셀 값들이다.Compensation of the corner outliers is performed only in the INTRA frame. The corner outliers are characterized by pixels that are much larger or smaller than neighboring pixels at the corner point of the 8x8 block as shown in FIG. In FIG. 6 (a), when the dark-gray area is distributed over four blocks and one or two pixels of the dark-gray area are located at corner points of neighboring blocks, the corner points are shown in FIG. 6 (b). As shown, it may be distorted by quantization of the DCT coefficients. This distorted corner point is called corner outlier. The corner outlier cannot be removed with the deblocking filter and the deringing filter. To reduce the corner outliers, the corner outliers are first detected and then the detected corner outliers are compensated for. 6 (c) describes a simple coordination for corner outlier detection. Where A, B, C and D are the pixel values of the corner points of the 8x8 block.
먼저, 상기 corner outlier 검출을 위한 알고리즘은 다음과 같이 나타낼 수 있다.First, the algorithm for detecting the corner outlier can be expressed as follows.
value[0] = A; value[1] = B;value [0] = A; value [1] = B;
value[2] = C; value[3] = D;value [2] = C; value [3] = D;
Average = (A+B+C+D+2)/4;Average = (A + B + C + D + 2) / 4;
Count = 0;Count = 0;
for(m=0; m<4; m++)for (m = 0; m <4; m ++)
if (|value[m]-Average| > QP)if (| value [m] -Average |> QP)
Count ++ ; /* 후보 points 의 개수 */Count ++; / * Number of candidate points * /
여기서 QP는 H.263의 양자화 요소(quantization factor)이다.Where QP is the quantization factor of H.263.
상기 'Count'는 코너아웃라이어 후보픽셀의 수를 저장하는 변수이다. 만일 상기 Count 가 '0'라면, 코너 아웃라이어는 없다. 만일 A만이 도 6(c)에서 후보 point 이고, |A - A3|가 3QP/2보다 작다면, 코너 아웃라이어 보상은 A, A1및 A2상에 다음과 같이 수행된다. A에 대해 보상된 값을 A', A1에 대해 보상된 값을 A'1, A2에 대해 보상된 값을 A'2라 하면, 상기 A', A'1및 A'2는 수학식 1과 같이 결정된다.'Count' is a variable that stores the number of corner outlier candidate pixels. If the Count is '0', there is no corner outlier. If only A is the candidate point in Fig. 6 (c) and | A-A 3 | is less than 3QP / 2, the corner outlier compensation is performed on A, A 1 and A 2 as follows. When the value compensated for A is A ', the value compensated for A 1 is A' 1 , and the value compensated for A 2 is A ' 2 , the A', A ' 1 and A' 2 are Is determined as 1.
A'1= (A' + 3A1+2)/4A ' 1 = (A' + 3A 1 +2) / 4
A'2= (A' + 3A2+ 2)/4A ' 2 = (A' + 3A 2 + 2) / 4
후보 point 갯수가 두 개 이상이면, (A3+ B3+ C3+ D3+ 2)/4 로부터 가장 큰 차이를 갖는 후보가 선택되고, 코너 아웃라이어 보상은 상기 하나의 후보 경우에서와 같은 방법으로 그 point 상에 수행된다.If the number of candidate points is two or more, the candidate with the largest difference from (A 3 + B 3 + C 3 + D 3 + 2) / 4 is selected, and the corner outlier reward is the same as in the one candidate case. Method is performed on that point.
2.3 링잉노이즈 감소를 위한 디링잉 필터(deringing filter)2.3 Delinging filter to reduce ringing noise
각 블록에 대해 디링잉 필터를 적용하기 전에, 링잉플래그 즉 RF0 및 RF1을 조사한다. 먼저, 링잉노이즈를 감소시키는 디링잉필터링의 수행여부를 판단하는 알고리즘은 나타내면 다음과 같다.Before applying the de-ring filter for each block, examine the ringing flag, RF0 and RF1. First, an algorithm for determining whether to perform de-ringing filtering that reduces ringing noise is as follows.
if(BLOCK_I == NOT coded) No deringing filtering ;if (BLOCK_I == NOT coded) No deringing filtering;
if(INTRA frame) {if ( INTRA frame ) {
if(RF0 of BLOCK_I == 1) deringing filtering ;if (RF0 of BLOCK_I == 1) deringing filtering;
else No deringing filtering ;else No deringing filtering;
}}
if(P or PB-frame) {if ( P or PB-frame ) {
if(BLOCK_I == INTRA_BLOCK) deringing filtering ;if (BLOCK_I == INTRA_BLOCK) deringing filtering;
else {else {
if(BLOCK_I==INTER4V_BLOCK) deringing filtering ;if (BLOCK_I == INTER4V_BLOCK) deringing filtering;
else {else {
if(RF1 of BLOCK_I == 1) deringing filtering ;if (RF1 of BLOCK_I == 1) deringing filtering;
else No deringing filtering ;else No deringing filtering;
}}
}}
}}
상기 링잉노이즈를 감소시키는 디링잉필터링의 수행여부 알고리즘을 설명하면 다음과 같다.The algorithm for performing de-ringing filtering to reduce the ringing noise is as follows.
블록 I에 대해 현재의 블록과 역양자화된 이전의 블록의 차가 소정의 값 이하이고, 상기 블록 J에 대해 현재의 블록과 역양자화된 이전의 블록의 차가 소정의 값 이하이면, 디링잉(deringing ) 필터링을 수행하지 않는다.If the difference between the current block and the de-quantized previous block for block I is less than or equal to a predetermined value, and the difference between the current block and the de-quantized previous block for block J is less than or equal to a predetermined value, then deringing Do not perform filtering.
인트라 프레임일 경우, 링잉노이즈를 감소시키는 디링잉필터링 수행여부는 블록 I의 링잉플래그가 디링잉 필터링이 필요함을 나타내는지 검사하여, 디링잉 필터링이 필요함을 나타내면 디링일 필터링을 수행하고, 그렇지 않으면 디링잉필터링을 수행하지 않는다.In the case of intra frame, de-ringing filtering to reduce ringing noise is performed to check whether the ringing flag of block I indicates that de-ringing filtering is required, performing de-ringing filtering if de-ringing filtering is required, and Do not perform ringing filtering.
다음으로 인터프레임 경우, 링잉노이즈를 감소시키는 디링잉필터링 수행여부는 블록 I가 인트라 블록이면 디링잉 필터링을 수행한다. 상기 블록 I가 인트라 블록이 아니고, 8x8 예측모드를 사용한 블록이면 디링잉 필터링을 수행한다. 상기 상기 블록 I가 인트라 블록이 아니고 8x8 예측모드를 사용한 블록이 아니고, 블록 I의 RF1이 디링잉필터링이 필요함을 나타내면 디링잉필터링을 수행하고, 블록 I의 RF1이 디링잉필터링이 필요치 않음을 나타내면 디링잉필터링을 수행하지않는다.Next, in the case of interframe, de-ringing filtering that reduces ringing noise is performed if the block I is an intra block. If the block I is not an intra block and is a block using an 8x8 prediction mode, de-ringing filtering is performed. If the block I is not an intra block and is not a block using an 8x8 prediction mode, and the RF1 of the block I indicates that the de-ringing filtering is required, the de-ringing filtering is performed, and the RF1 of the block I indicates that the de-ringing filtering is not necessary. Do not perform de-ringing filtering.
디링잉필터링은 에지검출과 2차원 신호적응필터링(2-D SAF)에 의해 행해진다. 이미지 details 가 필터링에 의해 왜곡되는 것을 방지하기 위해, 필터링 전에 간단한 에지검출이 수행된다. 도 7a 및 도 7b에 도시된 바와 같이 링잉노이즈를 감소시키기 위해, 에지검출 및 2차원 신호적응 필터링(2-D SAF)은 상술한 조건이 만족되는 경우에 8x8 블록에 적용된다.De-ringing filtering is performed by edge detection and two-dimensional signal adaptive filtering (2-D SAF). To prevent the image details from being distorted by the filtering, simple edge detection is performed before filtering. In order to reduce ringing noise as shown in Figs. 7A and 7B, edge detection and two-dimensional signal adaptive filtering (2-D SAF) are applied to an 8x8 block when the above conditions are met.
먼저, 에지 검출에 대해 설명한다. 영상 에지(image edge)를 발견하기 위해, 1차원 수평 및 수직 경사(gradient) 연산자들이 재구성된(reconstructed) 블록에 적용된다. 에지 픽셀을 결정하기 위한 문턱값(threshold value)은 H.263의 양자화 factor QP로부터 선택된다. 2 차원 SAF가 8x8 픽셀들에 적용되기 위해, 에지 정보는 도 8b에 도시된 바와 같이 현재 블록 내의 10x10 블록에 대해 얻어져야 한다. 수평에지검출은 픽셀[m][n], 상기 픽셀[m][n]의 오른쪽 픽셀을 픽셀[m][n+1], 왼쪽픽셀을 픽셀[m][n-1], 상기 픽셀[m][n]과 픽셀[m][n+1]의 차를 A1, 상기 픽셀[m][n]과 픽셀[m][n-1]의 차를 A2, H.263의 양자화 요소(factor)를 QP라 할 때, 조건식 ((A1>QP) and (A2>QP)) or (A1>2QP) or (A2>2QP) 을 만족하면, 에지로 검출되고, 에지[m][n] = 1 로 된다. 그리고 수직에지검출은 픽셀[m][n], 상기 픽셀[m][n]의 윗쪽 픽셀을 픽셀[m+1][n], 아래쪽 픽셀을 픽셀[m-1][n], 상기 픽셀[m][n]과 픽셀[m+1][n]의 차를 A'1, 상기 픽셀[m][n]과 픽셀[m-1][n]의 차를 A'2, H.263의 양자화 요소(factor)를 QP라 할 때, 조건식 ((A'1>QP) and (A'2>QP)) or (A'1>2QP) or (A'2>2QP)을 만족하면, 에지로 검출되고, 에지[m][n] = '1'로 된다.First, edge detection will be described. To find the image edge, one-dimensional horizontal and vertical gradient operators are applied to the reconstructed block. The threshold value for determining the edge pixel is selected from the quantization factor QP of H.263. In order for a two-dimensional SAF to be applied to 8x8 pixels, edge information must be obtained for a 10x10 block in the current block as shown in FIG. 8B. Horizontal edge detection includes pixel [m] [n], right pixel of pixel [m] [n], pixel [m] [n + 1], left pixel [m] [n-1], and pixel [ the difference between m] [n] and pixel [m] [n + 1] is A1, and the difference between pixel [m] [n] and pixel [m] [n-1] is A2 and H.263. When factor) is QP, if the conditional expressions ((A1> QP) and (A2> QP)) or (A1> 2QP) or (A2> 2QP) are satisfied, it is detected as an edge and edge [m] [n] = 1 The vertical edge detection includes pixel [m] [n], pixel [m + 1] [n] above the pixel [m] [n], pixel [m-1] [n] below the pixel, and pixel The difference between [m] [n] and pixel [m + 1] [n] is A'1, and the difference between pixel [m] [n] and pixel [m-1] [n] is A'2, H. If the quantization factor of 263 is QP, the conditional expression ((A'1> QP) and (A'2> QP)) or (A'1> 2QP) or (A'2> 2QP) is satisfied. , Edge is detected, and edge [m] [n] = '1'.
이상의 에지맵 Edge[m][n]을 픽셀값 pixel[m][n]으로부터 생성하는 알고리즘으로 표현하면 다음과 같다.The above-described edge map Edge [m] [n] is expressed by an algorithm generated from the pixel value pixel [m] [n] as follows.
/* 수평 에지 검출 *// * Horizontal edge detection * /
A1 = |pixel[m][n] - pixel[m][n+1]| ;A1 = | pixel [m] [n]-pixel [m] [n + 1] | ;
A2 = |pixel[m][n] - pixel[m][n-1]| ;A2 = | pixel [m] [n]-pixel [m] [n-1] | ;
if (((A1>QP) and (A2>QP)) or (A1>2QP) or (A2>2QP))if (((A1> QP) and (A2> QP)) or (A1> 2QP) or (A2> 2QP))
Edge[m][n] = 1 ;Edge [m] [n] = 1;
else { /* 수직 에지 검출 */else {/ * vertical edge detection * /
A1 = |pixel[m][n] - pixel[m+1][n]| ;A1 = | pixel [m] [n]-pixel [m + 1] [n] | ;
A2 = |pixel[m][n] - pixel[m-1][n]| ;A2 = | pixel [m] [n]-pixel [m-1] [n] | ;
if (((A1>QP) and (A2>QP)) or (A1>2QP) or (A2>2QP))if (((A1> QP) and (A2> QP)) or (A1> 2QP) or (A2> 2QP))
Edge[m][n] = 1 ;Edge [m] [n] = 1;
}}
다음으로 2차원 신호적응필터(SAF)를 사용한 디링잉 필터링(deringing filtering )에 대해 설명한다. 상기 디링잉 필터링은 image details 의 심각한 손실없이 링잉 노이즈를 부드럽게(smooth) 하기위한 것이다. 본 발명에 의한 디링잉 필터링은 에지 맵(edge map)에 따라 콘벌류선(convolution)에 대한 가중 팩터(weighting factor)가 변하는 간단한 콘벌루션(convolution) 연산이다. 상기 SAF는 Edge[m][n]을 사용하므로써 복호화된 블록에 적용된다. 도 7a는 2차원 SAF에 대한 커널(kernel)을 도시하고 있다. 도 7b에서의 필터 윈도우의 중심점 A가 에지픽셀이면, 2차원 필터링 연산은 수행되지 않는다.(도 7b의 예 1) 4-connected 필터 윈도우에서 에지 point가 포함되어 있지 않으면, 저역통과 필터링이 수행된다. (도 7b의 예 2) 만일 중심점 상에 있지 않는 어떤 에지 point 들이 4-connected filter window 에 있으면, 에지 픽셀들을 제외한 가중 필터링이 수행된다.(도 7b의 예 3) 가중 factor들이 계산의 복잡성을 고져하여 정의되며, 따라서 SAF 필터링이 표 1에 도시된 바와 같이 간단한 이동(shift) 및 가산(addition ) 연산에 의해 수행된다.Next, delinging filtering using a 2D signal adaptation filter (SAF) will be described. The de-ring filtering is for smoothing ringing noise without significant loss of image details. De-ringing filtering according to the present invention is a simple convolution operation in which the weighting factor for the convolution changes according to an edge map. The SAF is applied to a block decoded by using Edge [m] [n]. 7A shows a kernel for a two dimensional SAF. If the center point A of the filter window in Fig. 7B is an edge pixel, the two-dimensional filtering operation is not performed. (Example 1 of Fig. 7B) If no edge point is included in the 4-connected filter window, low pass filtering is performed. . (Example 2 of FIG. 7B) If any edge points that are not on the center point are in the 4-connected filter window, weighted filtering is performed except for edge pixels. (Example 3 of FIG. 7B) Weighting factors increase the complexity of the calculation. Therefore, SAF filtering is performed by simple shift and addition operations as shown in Table 1.
3. 블록킹 플래그의 패딩(Padding)3. Padding of Blocking Flags
QCIF의 경우, Y를 위한 블록킹 플래그(Bf_Y)는 22x18 어레이로 구성되고, Cb를 위한 블록킹 플래그(Bf_Cb) 및 Cr을 위한 블록킹 플래그(Bf_Cr)은 11x9 어레이로 구성된다. 여기서 각 엘리멘트는 각 블록의 노이즈 정보를 가지고 있다. 그러나 비제한 움직임벡터 모드(Unrestricted Motion Vector mode)가 사용되면, 움직임 벡터는 픽쳐의 바깥으을 가리키는 것이 허용된다. 따라서, 움직임 벡터들이 픽쳐의 바깥을 가리키는 것을 허용하기 위해 Bf_Y, Bf_Cb 및 Bf_Cr 패딩이 이루어진다. Bf_Y의 경우, Bf_Y를 확장하기 위해, Bf_Y의 top/bottom row element 들은 수직적으로 복사된다. 그리고 수직반복 패딩이 되고 나면 수평적인 반복 패딩이 far left/right column elements 상에 수행된다. 마지막으로 원(original) Bf_Y 크기가 MxN 이라고 가정하면, 패딩이 이루어지면 크기는 (M+8)x(N+8)이 된다. 마찬가지로 Bf_Cb 및 Bf_Cr의 원래의 크기가 M/2 x N/2라고 하면, 패딩이 이루어지면 (M/2 + 4) x (N/2 +4)가 된다. 도 8은 Bf_Y 패딩의 결과를 도시한 것이다. 여기서 Bf_Y의 패딩은 참조번호 1,2,3,4 순서로 이루어진다. 상기 패딩은 여러 가지 방법이 있을 수 있지만, 그 일예로 기준 프레임의 블록킹 플래그를 복사함으로써 이루어질 수 있다. 그리고 상기 패딩은 루프필터링하고자하는 새로운 프레임이 들어오면 먼저 이루어지고 난 후, 움직임벡터를 이용하여 블록킹 플래그를 추출할 때, 상기 패딩된 블록킹 플래그를 이용해서 해당 매크로 블록의 블록킹 플래그를 구한다.In the case of QCIF, the blocking flag Bf_Y for Y is configured in a 22x18 array, and the blocking flag Bf_Cb for Cb and the blocking flag Bf_Cr for Cr are configured in an 11x9 array. Here, each element has noise information of each block. However, if Unrestricted Motion Vector mode is used, the motion vector is allowed to point out of the picture. Thus, Bf_Y, Bf_Cb and Bf_Cr padding are made to allow the motion vectors to point out of the picture. In the case of Bf_Y, the top / bottom row elements of Bf_Y are copied vertically to extend Bf_Y. After the vertical repeat padding, horizontal repeat padding is performed on the far left / right column elements. Finally, assuming that the original Bf_Y size is MxN, the size becomes (M + 8) x (N + 8) when padding is performed. Similarly, if the original sizes of Bf_Cb and Bf_Cr are M / 2 x N / 2, then the padding is (M / 2 + 4) x (N / 2 +4). 8 shows the results of Bf_Y padding. Here, the padding of Bf_Y is made in the order of reference numerals 1,2,3,4. The padding may be in various ways, but may be achieved by copying the blocking flag of the reference frame. The padding is performed first when a new frame to be loop filtered is input, and then, when the blocking flag is extracted using the motion vector, the blocking flag of the macroblock is obtained using the padding blocking flag.
표 1에서 '0'은 nonedge 를 나타내고, '1'은 edge 를 나타낸다.In Table 1, '0' represents nonedge and '1' represents edge.
한편, 상술한 본 발명의 실시예는 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하다. 그리고 컴퓨터에서 사용되는 매체로부터 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 매체는 마그네틱 저장매체(예:롬, 플로피디스크, 하드 디스크 등), 광학적 판독 매체(예:CD-ROM, DVD 등) 및 캐리어 웨이브(예:인터넷을 통해 전송)와 같은 저장매체를 포함한다.On the other hand, the embodiments of the present invention described above can be written as a program that can be executed on a computer. And it can be implemented in a general-purpose digital computer for operating the program from a medium used in the computer. The media includes storage media such as magnetic storage media (e.g. ROM, floppy disks, hard disks, etc.), optical reading media (e.g. CD-ROM, DVD, etc.) and carrier waves (e.g., transmitted over the Internet). .
예를 들어, 상기 기록매체는 영상데이터의 인코딩 및 디코딩할 때 발생하는 양자화효과 감소를 위한 루프필터링 방법은, 영상데이터의 루프 필터링 필요성 여부를 나타내는 블록킹 플래그 및 링잉플래그를 추출하는 플래그 추출단계가 컴퓨터에 의해 수행되는 코드수단; 및 상기 플래그가 루프 필터링이 필요함을 나타내면 영상데이터를 필터링하는 필터링 단계가 컴퓨터에 의해 수행되는 코드수단을 포함함을 특징으로 한다. 상기 영상데이터가 인터프레임일 경우, 현재 인터 프레임의 블록킹 플래그는 수평 블록킹 플래그 및 수직 블록킹 플래그로 이루어지고, 상기 인터프레임의 블록(Ac)에 대한 수평 및 수직 블록킹 플래그 추출은 기준 프레임이 소정의 기준블록들로 이루어지고, 현재 인터 프레임의 블록(Ac)의 움직임 벡터 (MVx, MVy)에 의해 추정되는 기준프레임의 블록을 움직임 블록(X)이라 할 때, 움직임 블록(X)이 상기 기준블록들과 겹쳐진 픽셀수가 소정 개수 이상인 기준블록들의 수평 블록킹 플래그(HBF) 및 수직 블록킹 플래그(VBF)를 비트-와이즈 논리곱하여 현재 VOP의 블록(Ac)의 수평 및 수직 블록킹 플래그로 세팅하는 단계; 및 현재 매크로블록의 움직임 벡터가 0인 스킵된 매크로블록(skipped MB)이면 기준 매크로블록의 블록킹 플래그를 현재 매크로블록의 블록킹 플래그로 세팅하는 단계를 포함하여 이루어진다.For example, the loop filtering method for reducing the quantization effect generated when the recording medium encodes and decodes the image data may include: extracting a blocking flag and a ringing flag indicating whether loop filtering of the image data is necessary; Code means performed by; And if the flag indicates that loop filtering is required, the filtering means for filtering the image data is performed by a computer. When the image data is an interframe, the blocking flag of the current interframe consists of a horizontal blocking flag and a vertical blocking flag. The horizontal and vertical blocking flag extraction for the block Ac of the interframe is based on a predetermined reference frame. When a block of a reference frame consisting of blocks and estimated by the motion vectors MVx and MVy of the block Ac of the current inter frame is called a motion block X, the motion block X is the reference blocks. Bit-wise ORing the horizontal blocking flag HBF and the vertical blocking flag VBF of the reference blocks having a predetermined number of pixels overlapping with each other and setting the horizontal and vertical blocking flags of the block Ac of the current VOP; And setting the blocking flag of the reference macroblock to the blocking flag of the current macroblock when the motion vector of the current macroblock is 0 skipped MB.
그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.And functional programs, codes and code segments for implementing the present invention can be easily inferred by programmers in the art to which the present invention belongs.
고압축된 영상데이터를 복원할 때, 블록킹 아티팩트들, 코너아웃라이어 및 링잉노이즈와 같은 양자화 효과를 발생된다. 본 발명에 의한 루프 필터링방법은 플래그와 적응필터를 사용하므로써 양자화 효과를 감소시킨다. 각 블록의 블록킹 및 링잉 플래그는 루프 필터링(loop filtering )의 계산량을 줄이는데 큰 도움이 된다. 현 블록에 대한 블록킹 및 링잉 플래그를 추출하기 위해서는, 인터 프레임 의 움직임 벡터가 사용된다.When reconstructing the high compressed image data, quantization effects such as blocking artifacts, corner outliers, and ringing noise are generated. The loop filtering method according to the present invention reduces the quantization effect by using a flag and an adaptive filter. The blocking and ringing flags of each block are very helpful in reducing the amount of computation of loop filtering. In order to extract the blocking and ringing flag for the current block, the motion vector of the inter frame is used.
비디오 코딩에서, 고품질의 영상 및 하드웨어 및 소프트웨어로의 구현의 용이성을 위해서는 계산의 복잡성 및 PSNR 이 고려되어야 한다. 하드웨어 복잡성 측면에서, 본 발명에 의한 방법은 곱셈과 나눗셈 없이 병렬처리에 의해 수행될 수 있다.In video coding, computational complexity and PSNR must be taken into account for high quality images and ease of implementation in hardware and software. In terms of hardware complexity, the method according to the invention can be performed by parallel processing without multiplication and division.
본 발명에 의한 루프 필터링(loop filtering ) 방법은 영상 details 를 유지하면서 subjective quality 을 크게 향상시키기 때문에 광범위하게 사용될 수 있다.The loop filtering method according to the present invention can be widely used because it greatly improves subjective quality while maintaining image details.
Claims (10)
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980046822A KR100331331B1 (en) | 1998-11-02 | 1998-11-02 | Image Data Loop Filtering Method |
AU12160/99A AU717480B2 (en) | 1998-08-01 | 1999-01-20 | Loop-filtering method for image data and apparatus therefor |
RU99101345A RU2154918C1 (en) | 1998-08-01 | 1999-01-20 | Method and device for loop filtration of image data |
JP1362899A JP3308921B2 (en) | 1998-08-01 | 1999-01-21 | Video data loop filtering method and apparatus |
SG1999001675A SG70679A1 (en) | 1998-08-01 | 1999-04-14 | Loop-filtering method for image data and apparatus therefor |
BRPI9901340A BRPI9901340B1 (en) | 1998-08-01 | 1999-04-30 | Circuit filtering process for image data to reduce the quantization effect generated |
US09/302,989 US6665346B1 (en) | 1998-08-01 | 1999-04-30 | Loop-filtering method for image data and apparatus therefor |
US10/405,642 US7251276B2 (en) | 1998-08-01 | 2003-04-03 | Loop-filtering method for image data and apparatus therefor |
US11/768,688 US20080159386A1 (en) | 1998-08-01 | 2007-06-26 | Loop-filtering method for image data and apparatus therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980046822A KR100331331B1 (en) | 1998-11-02 | 1998-11-02 | Image Data Loop Filtering Method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20000031028A KR20000031028A (en) | 2000-06-05 |
KR100331331B1 true KR100331331B1 (en) | 2002-05-09 |
Family
ID=19556920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980046822A KR100331331B1 (en) | 1998-08-01 | 1998-11-02 | Image Data Loop Filtering Method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100331331B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101452495B1 (en) * | 2008-05-09 | 2014-10-21 | 비반테 코포레이션 | De-ringing filter for decompressed video data |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2818863A1 (en) * | 2000-12-26 | 2002-06-28 | Koninkl Philips Electronics Nv | Received digital image processing method includes analysis of spatial activity values for pixel to detect and correct MPEG image errors |
KR100525785B1 (en) | 2001-06-15 | 2005-11-03 | 엘지전자 주식회사 | Filtering method for pixel of image |
CN1984344A (en) * | 2001-11-29 | 2007-06-20 | 松下电器产业株式会社 | Coding distortion removal method, video encoding method, video decoding method, and apparatus and program for the same |
ATE419713T1 (en) | 2001-11-29 | 2009-01-15 | Panasonic Corp | METHOD FOR ELIMINATION OF CODING DISTORTION AND METHOD FOR VIDEO CODING AND DECODING |
KR100929078B1 (en) | 2001-11-29 | 2009-11-30 | 파나소닉 주식회사 | How to remove coding distortion |
KR100584549B1 (en) * | 2002-01-31 | 2006-05-30 | 삼성전자주식회사 | Filtering method for removing block artifacts and/or ringing noise and apparatus therefor |
KR100674027B1 (en) * | 2006-11-07 | 2007-01-25 | 엘지전자 주식회사 | Filtering method for pixel of image |
JP5026092B2 (en) * | 2007-01-12 | 2012-09-12 | 三菱電機株式会社 | Moving picture decoding apparatus and moving picture decoding method |
KR100748512B1 (en) * | 2007-04-16 | 2007-08-13 | 엘지전자 주식회사 | Method for filtering block boundary region |
KR101647376B1 (en) * | 2009-03-30 | 2016-08-10 | 엘지전자 주식회사 | A method and an apparatus for processing a video signal |
BR112013000556A2 (en) * | 2010-07-09 | 2019-09-24 | Samsung Electronics Co Ltd | method for decoding a video using a video decoding processor, method for encoding a video using a video encoding processor, video decoding apparatus with respect to a video decoding processor, video encoding apparatus with respect to a video encoding processor, and computer readable recording medium |
-
1998
- 1998-11-02 KR KR1019980046822A patent/KR100331331B1/en not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101452495B1 (en) * | 2008-05-09 | 2014-10-21 | 비반테 코포레이션 | De-ringing filter for decompressed video data |
Also Published As
Publication number | Publication date |
---|---|
KR20000031028A (en) | 2000-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7251276B2 (en) | Loop-filtering method for image data and apparatus therefor | |
KR100269125B1 (en) | Image post processing method and apparatus for reducing quantization effect | |
Yang et al. | Removal of compression artifacts using projections onto convex sets and line process modeling | |
US8873643B2 (en) | Signal adaptive filtering method, signal adaptive filter and computer readable medium for storing program therefor | |
Park et al. | A postprocessing method for reducing quantization effects in low bit-rate moving picture coding | |
Lee et al. | Loop filtering and post-filtering for low-bit-rates moving picture coding | |
KR100331331B1 (en) | Image Data Loop Filtering Method | |
KR100301013B1 (en) | Image data loop filtering method and apparatus | |
Huang et al. | A post deblocking filter for H. 264 video | |
US20210014521A1 (en) | Inter prediction apparatus and method for video coding | |
CA2570723A1 (en) | Signal adaptive filtering method, signal adaptive filter and computer readable medium for storing program therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130227 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20140227 Year of fee payment: 13 |
|
LAPS | Lapse due to unpaid annual fee |