JP4825230B2 - Deblocking filter - Google Patents

Deblocking filter Download PDF

Info

Publication number
JP4825230B2
JP4825230B2 JP2008045862A JP2008045862A JP4825230B2 JP 4825230 B2 JP4825230 B2 JP 4825230B2 JP 2008045862 A JP2008045862 A JP 2008045862A JP 2008045862 A JP2008045862 A JP 2008045862A JP 4825230 B2 JP4825230 B2 JP 4825230B2
Authority
JP
Japan
Prior art keywords
filter
pixel data
memory
horizontal
block
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2008045862A
Other languages
Japanese (ja)
Other versions
JP2009206714A (en
Inventor
昇 米岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008045862A priority Critical patent/JP4825230B2/en
Publication of JP2009206714A publication Critical patent/JP2009206714A/en
Application granted granted Critical
Publication of JP4825230B2 publication Critical patent/JP4825230B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

本発明は、動画像符号装置または動画像復号装置において使用されるデブロッキングフィルタに係わり、特に、インターレースフレームのピクチャを処理するためのデブロッキングフィルタに係わる。   The present invention relates to a deblocking filter used in a video encoding device or a video decoding device, and more particularly to a deblocking filter for processing a picture of an interlaced frame.

動画像の符号化/復号化は、一般に、1枚のピクチャを複数の領域に分割することにより得られるブロック毎に行われる。ところが、ブロック毎に符号化/復号化を行う方式では、互いに隣接するブロックの境界でノイズまたは歪が発生する。このため、多くの動画像符号化規格(例えば、VC−1、H.264等)においては、ブロックノイズを緩和するためのデブロッキングフィルタが規定されている。   In general, encoding / decoding of a moving image is performed for each block obtained by dividing one picture into a plurality of regions. However, in the method of performing encoding / decoding for each block, noise or distortion occurs at the boundary between adjacent blocks. For this reason, many video coding standards (for example, VC-1, H.264, etc.) define deblocking filters for reducing block noise.

図24は、マクロブロック(16×16画素)単位でデブロッキングフィルタ処理を行うシーケンスを説明する図である。デブロッキングフィルタ処理は、復号されたピクチャデータについて行われる。ここで、復号処理は、ピクチャ内の左上のブロックから順番に行われる。このため、デブロッキングフィルタ処理は、基本的に、図24に示すように、カレントマクロブロック(処理対象のマクロブロック)の左上領域の画素データに対して行われる。   FIG. 24 is a diagram illustrating a sequence for performing deblocking filter processing in units of macroblocks (16 × 16 pixels). The deblocking filter process is performed on the decoded picture data. Here, the decoding process is performed in order from the upper left block in the picture. Therefore, the deblocking filter process is basically performed on the pixel data in the upper left area of the current macroblock (the macroblock to be processed) as shown in FIG.

図25は、デブロッキングフィルタにおいて必要とされる画素データについて説明する図である。ここでは、カレントマクロブロック101の画素データが新たに読み込まれるものとする。また、破線で示すフィルタ対象領域105は、カレントマクロブロック101が指定されたときにフィルタ処理を行うべき領域である。すなわち、フィルタ対象領域105内の各水平エッジおよび各垂直エッジについてフィルタ処理が行われる。なお「エッジ」とは、ここでは、ブロックとブロックとの間の「境界」を意味する。   FIG. 25 is a diagram for explaining pixel data required in the deblocking filter. Here, it is assumed that pixel data of the current macroblock 101 is newly read. A filter target area 105 indicated by a broken line is an area to be filtered when the current macroblock 101 is designated. That is, the filtering process is performed on each horizontal edge and each vertical edge in the filter target area 105. Here, “edge” means “boundary” between blocks.

このフィルタ処理を行うためには、カレントマクロブロック101の画素データに加えて、領域102、103、104の画素データが必要である。領域102は、カレントマクロブロック101の左側隣接領域であり、カレンマクロトブロック101の直前に処理されたブロックである。領域103は、カレントマクロブロック101の上側隣接領域である。領域104は、カレントマクロブロック101の左上側隣接領域である。なお、領域104は、領域102に対して上側隣接領域である。そして、カレントマクロブロック101および領域102〜104の画素データを利用して、各水平エッジおよび各垂直エッジについてフィルタ処理が行われる。   In order to perform this filtering process, in addition to the pixel data of the current macroblock 101, the pixel data of the areas 102, 103, and 104 are required. An area 102 is an area adjacent to the left side of the current macroblock 101 and is a block processed immediately before the current macroblock 101. An area 103 is an upper adjacent area of the current macroblock 101. An area 104 is an upper left adjacent area of the current macroblock 101. Note that the region 104 is an upper adjacent region with respect to the region 102. Then, using the pixel data of the current macroblock 101 and the areas 102 to 104, filter processing is performed for each horizontal edge and each vertical edge.

図26は、デブロッキングフィルタ処理の概要を説明する図である。デブロッキングフィルタ処理では、互いに隣接するブロック(8×8画素、8×4画素、4×8画素、4×4画素などの整数変換ブロック)どうしの境界の近傍の画素の画素データがフィルタ処理される。すなわち、図26に示す例では、各エッジ(水平エッジおよび垂直エッジを含む)の両側に位置する画素データP1〜P8が抽出され、これらの画素データP1〜P8に基づいてエッジに隣接する画素データP4、P5が補正される。このフィルタ処理により、ブロック間の境界における画像の乱れが抑えられる。なお、各エッジにおいて、x=2、0、1、3の順番でフィルタ計算が行われる。   FIG. 26 is a diagram illustrating an outline of the deblocking filter process. In the deblocking filter process, pixel data of pixels near the boundary between adjacent blocks (integer transform blocks such as 8 × 8 pixels, 8 × 4 pixels, 4 × 8 pixels, 4 × 4 pixels, etc.) are filtered. The That is, in the example shown in FIG. 26, pixel data P1 to P8 located on both sides of each edge (including the horizontal edge and the vertical edge) are extracted, and pixel data adjacent to the edge based on these pixel data P1 to P8. P4 and P5 are corrected. By this filter processing, image disturbance at the boundary between blocks can be suppressed. Note that filter calculation is performed in the order of x = 2, 0, 1, 3 at each edge.

VC−1では、3種類のピクチャ構造(プログレッシブ、インターレースフィールド、インターレースフレーム)が規定されている。これらの構造のうち、インターレースフレームピクチャは、図27に示すように、トップフィールド(偶数ライン)およびボトムフ
ィールド(奇数ライン)から構成される。そして、デブロッキングフィルタで水平エッジを処理する際には、トップフィールドの処理およびボトムフィールドの処理が互いに独立して実行される。すなわち、トップフィールドの画素データP1〜P8に基づいて画素データP4、P5が補正され、また、ボトムフィールドの画素データP1〜P8に基づいて画素データP4、P5が補正される。
VC-1 defines three types of picture structures (progressive, interlaced field, and interlaced frame). Among these structures, the interlace frame picture is composed of a top field (even number line) and a bottom field (odd number line) as shown in FIG. When the horizontal edge is processed by the deblocking filter, the top field processing and the bottom field processing are executed independently of each other. That is, the pixel data P4 and P5 are corrected based on the top field pixel data P1 to P8, and the pixel data P4 and P5 are corrected based on the bottom field pixel data P1 to P8.

図28は、デブロッキングフィルタの一例の構成を示す図である。図28において、画素入力部51は、RAMインタフェースを介して、復号されたカレントマクロブロックの画素データを内部RAM52に格納する。このとき、例えば図25に示す例おいて、カレントマクロブロック101に対応するフィルタ対象領域105についてフィルタ処理を行うためには、カレントマクロブロック101の画素データに加えて、領域102〜104の画素データが必要である。ここで、先に復号されている領域の画素データは、外部メモリ53に格納されているものとする。ただし、領域102、104の画素データは、前回のフィルタ処理の演算結果であるため、内部RAM52に残っているものとする。そうすると、フィルタ対象領域105についてフィルタ処理を行うために、外部メモリ53から読み込む必要がある画素データは、領域103の画素データである。よって、領域103の画素データが、外部メモリ53から内部RAM52へ送信される。   FIG. 28 is a diagram illustrating a configuration of an example of a deblocking filter. In FIG. 28, the pixel input unit 51 stores the decoded pixel data of the current macroblock in the internal RAM 52 via the RAM interface. At this time, for example, in the example shown in FIG. 25, in order to perform the filtering process on the filter target area 105 corresponding to the current macroblock 101, in addition to the pixel data of the current macroblock 101, the pixel data of the areas 102 to 104 is required. Here, it is assumed that the pixel data of the previously decoded area is stored in the external memory 53. However, the pixel data in the areas 102 and 104 are assumed to remain in the internal RAM 52 because they are the calculation results of the previous filter processing. Then, the pixel data that needs to be read from the external memory 53 in order to perform the filtering process on the filter target region 105 is the pixel data of the region 103. Therefore, the pixel data in the area 103 is transmitted from the external memory 53 to the internal RAM 52.

カレントマクロブロック101および領域102〜104の画素データを利用して、水平エッジおよび垂直エッジについてフィルタ演算が行われる。演算結果は、いったん内部RAM52に格納された後、外部メモリ53へ送信される。このとき、図29において破線で示す領域106の画素データ(フィルタ処理後の画素データを含む)が内部RAM52から外部メモリ53へ送信される。   Using the pixel data of the current macroblock 101 and the regions 102 to 104, the filter operation is performed for the horizontal edge and the vertical edge. The calculation result is once stored in the internal RAM 52 and then transmitted to the external memory 53. At this time, pixel data (including pixel data after filtering) in the area 106 indicated by a broken line in FIG. 29 is transmitted from the internal RAM 52 to the external memory 53.

動画像の符号化における雑音を低減する装置として、例えば以下のような技術が知られている。アクティビティ計算回路は、ブロック状に符号化された画像データについてのアクティビティを求める。ブロック雑音予測回路は、アクティビティ計算回路により得られたアクティビティに基づいて、ブロック内の平均雑音を予測する。画素雑音予測回路は、ブロック雑音予測回路により得られたブロック雑音予測値およびアクティビティ計算回路により得られたアクティビティから、各画素の雑音予測値を求める。フィルタ係数決定回路は、フィルタ係数を決定する。フィルタ回路は、雑音成分を除去した画像データを予測して出力する。上記予測に際して、雑音低減回路において垂直方向の処理よりも水平方向の処理が先に行われる。   For example, the following techniques are known as devices for reducing noise in encoding moving images. The activity calculation circuit obtains an activity for the image data encoded in a block shape. The block noise prediction circuit predicts the average noise in the block based on the activity obtained by the activity calculation circuit. The pixel noise prediction circuit obtains a noise prediction value of each pixel from the block noise prediction value obtained by the block noise prediction circuit and the activity obtained by the activity calculation circuit. The filter coefficient determination circuit determines a filter coefficient. The filter circuit predicts and outputs the image data from which the noise component has been removed. In the prediction, the horizontal processing is performed before the vertical processing in the noise reduction circuit.

他の技術としては、次のような技術も知られている。画像復号化装置は、可変長復号化部、逆量子化部、逆直交変換部、制御部、およびブロックノイズ除去部を備える。可変長復号化部は、ブロック毎に直交変換、量子化、および可変長符号を用いて圧縮された画像データを可変長復号する。逆量子化部は、可変長復号部により復号化された画像データを逆量子化する。逆直交変換部は、逆量子化部により逆量子化された画像データを逆直交変換することで復号画像データを生成する。復号画像データから所定の画像データを抽出する。ブロックノイズ除去部は、制御部で抽出した画像データのブロック境界部分においてブロックノイズを除去する。   The following techniques are also known as other techniques. The image decoding apparatus includes a variable length decoding unit, an inverse quantization unit, an inverse orthogonal transform unit, a control unit, and a block noise removal unit. The variable length decoding unit performs variable length decoding on the image data compressed using orthogonal transform, quantization, and variable length code for each block. The inverse quantization unit inversely quantizes the image data decoded by the variable length decoding unit. The inverse orthogonal transform unit generates decoded image data by performing inverse orthogonal transform on the image data inversely quantized by the inverse quantization unit. Predetermined image data is extracted from the decoded image data. The block noise removing unit removes block noise at the block boundary portion of the image data extracted by the control unit.

更に他の技術として、水平フィルタ処理および垂直フィルタ処理の依存関係を調整して並列に実行する機能を備えるデブロックフィルタを設けることが知られている。
特開平7−236140号公報 特開2002−77914号公報 特開2006−174138号公報
As another technique, it is known to provide a deblocking filter having a function of adjusting the dependency between the horizontal filter processing and the vertical filter processing and executing them in parallel.
JP-A-7-236140 JP 2002-77914 A JP 2006-174138 A

図30は、非インターレースフレームピクチャのフィルタ処理を説明する図である。非インターレースフレームピクチャは、例えば、プログレッシブピクチャまたはインターレースフィールドピクチャである。以下の説明では、16×16画素のマクロブロック毎にフィルタ処理が行われるものとする。また、画素データは、YCbCr(輝度/色差)系で表されているものとする。なお、図30において、カレントマクロブロックに対してフィルタ処理を行うべき水平エッジを○印で表し、フィルタ処理を行うべき垂直エッジを□印で表している。   FIG. 30 is a diagram illustrating filter processing for non-interlaced frame pictures. The non-interlaced frame picture is, for example, a progressive picture or an interlace field picture. In the following description, it is assumed that filter processing is performed for each macroblock of 16 × 16 pixels. The pixel data is assumed to be expressed in a YCbCr (luminance / color difference) system. In FIG. 30, the horizontal edge that should be filtered for the current macroblock is indicated by a circle, and the vertical edge that is to be filtered is indicated by a square.

カレントマクロブロックに対応するフィルタ領域においてフィルタ処理を行う場合には、図30(a)に示すように、Yデータについては、外部メモリ53から8ライン分の画素データを読み出す。同様に、CbデータおよびCrデータについても、それぞれ外部メモリ53から8ライン分の画素データを読み出す。   When filter processing is performed in the filter area corresponding to the current macroblock, as shown in FIG. 30A, pixel data for eight lines is read from the external memory 53 for Y data. Similarly, pixel data for 8 lines are read from the external memory 53 for Cb data and Cr data, respectively.

フィルタ処理の演算結果としての得られる画素データは、いったん内部RAM52に格納された後、外部メモリ53に送信される。このとき、図30(b)に示すように、Yデータについては、24ライン分の画素データが送信される。また、CbデータデおよびCrデータについては、それぞれ、16ライン分の画素データが送信される。   Pixel data obtained as a calculation result of the filter processing is once stored in the internal RAM 52 and then transmitted to the external memory 53. At this time, as shown in FIG. 30B, for Y data, pixel data for 24 lines is transmitted. For Cb data and Cr data, pixel data for 16 lines is transmitted.

図31は、インターレースフレームピクチャのフィルタ処理を説明する図である。インターレースフレームピクチャの水平エッジについてフィルタ処理する場合は、図27を参照しながら説明したように、非インターレースフレームピクチャと比較して必要な画素数は2倍になる。このため、例えば、図31(a)に示す水平エッジAについてフィルタ処理を行うためには、そのエッジの上側8ライン分の画素データ、および下側8ライン分の画素データが必要になる。また、垂直エッジのフィルタ処理は、4ライン分のトップフィールドおよび4ライン分のボトムフィールドについて一括して行われる。すなわち、例えば、垂直エッジB、Cについて一括してフィルタ処理が行われる。   FIG. 31 is a diagram illustrating interlaced frame picture filter processing. When filtering the horizontal edge of an interlaced frame picture, as described with reference to FIG. 27, the number of necessary pixels is doubled as compared with a non-interlaced frame picture. For this reason, for example, in order to perform the filtering process on the horizontal edge A shown in FIG. 31A, pixel data for the upper eight lines and pixel data for the lower eight lines of the edge are required. Further, the vertical edge filtering process is performed collectively for the top field for four lines and the bottom field for four lines. That is, for example, the filtering process is performed on the vertical edges B and C all at once.

したがって、カレントマクロブロックに対応するフィルタ対象領域についてフィルタ処理を行う場合には、図31(a)に示すように、Yデータ、Cbデータ、Crデータのそれぞれについては、カレントマクロブロックの上側の16ライン分の画素データが必要になる。すなわち、外部メモリ53から16ライン分の画素データが読み出される。また、図31(b)に示すように、Yデータについてのフィルタ演算結果として、32ライン分の画素データが外部メモリ53に送信される。CbデータデおよびCrデータについては、それぞれ、24ライン分の画素データが送信される。   Therefore, when the filtering process is performed on the filter target region corresponding to the current macroblock, as shown in FIG. 31A, for each of the Y data, Cb data, and Cr data, the upper 16 of the current macroblock. Pixel data for a line is required. That is, 16 lines of pixel data are read from the external memory 53. Further, as shown in FIG. 31B, pixel data for 32 lines is transmitted to the external memory 53 as a filter calculation result for Y data. For Cb data and Cr data, pixel data for 24 lines is transmitted.

図32は、従来技術のフィルタ処理を行った場合の外部メモリへのアクセス量をまとめた表である。ここでは、動画像は、30フレーム/秒である。また、1920×1088画素のピクチャにおいて、16×16マクロブロック毎にフィルタ処理が行われる。さらに、各画素のYデータ、Cbデータ、Crデータのビット数は、それぞれ8ビットである。この場合、非インターレースフレームピクチャである場合は、外部メモリ53へのアクセス量(データ読出しおよびデータ書込みの総量)は、209MB(メガバイト)/秒である。また、インターレースフレームピクチャである場合は、328MB/秒である。   FIG. 32 is a table summarizing the amount of access to the external memory when the conventional filtering process is performed. Here, the moving image is 30 frames / second. Further, in a picture of 1920 × 1088 pixels, filter processing is performed for each 16 × 16 macroblock. Further, the number of bits of Y data, Cb data, and Cr data of each pixel is 8 bits. In this case, in the case of a non-interlaced frame picture, the access amount (total amount of data read and data write) to the external memory 53 is 209 MB (megabytes) / second. In the case of an interlace frame picture, it is 328 MB / second.

このように、従来技術のデブロッキングフィルタにおいては、インターレースフレームピクチャのブロックノイズを除去する際に、外部メモリへのアクセス量が非常に大きくなる。   As described above, in the conventional deblocking filter, when the block noise of the interlace frame picture is removed, the access amount to the external memory becomes very large.

本発明の課題は、インターレースフレームピクチャのブロックノイズを除去する際のメモリアクセス量を少なくすることである。   An object of the present invention is to reduce a memory access amount when removing block noise of an interlaced frame picture.

本発明の一態様のデブロッキングフィルタは、動画像のピクチャを分割することにより得られるブロック毎にフィルタ処理を行う構成であって、フレームメモリから読み出した前記ピクチャの画素データを格納する第1のメモリと、前記ピクチャの第1のブロックに対応する第1のフィルタ領域内の水平エッジについてフィルタ処理を行う水平フィルタと、前記水平フィルタによるフィルタ処理の後に、前記第1のフィルタ領域内の予め決められた特定領域の画素データを格納する第2のメモリと、前記水平フィルタによるフィルタ処理の後に、前記第1のフィルタ領域内の垂直エッジについてフィルタ処理を行う垂直フィルタと、前記垂直フィルタによるフィルタ処理の後に、前記第1のフィルタ領域の画素データを前記フレームメモリに送信する送信手段と、を備える。そして、前記水平フィルタは、前記第1のメモリに格納されている画素データおよび前記第2のメモリに格納されている画素データを利用して、前記第1のブロックに隣接する第2のブロックに対応する第2のフィルタ領域内の水平エッジについてフィルタ処理を行う。   A deblocking filter according to an aspect of the present invention is configured to perform filtering for each block obtained by dividing a picture of a moving image, and stores first pixel data of the picture read from a frame memory. A memory, a horizontal filter that performs filtering on a horizontal edge in the first filter area corresponding to the first block of the picture, and a predetermined filter in the first filter area after the filtering by the horizontal filter. A second memory that stores pixel data of the specified area, a vertical filter that performs a filtering process on a vertical edge in the first filter area after the filtering process by the horizontal filter, and a filtering process by the vertical filter After, the pixel data of the first filter area is stored in the frame memory. It comprises transmission means for signals to, a. The horizontal filter applies pixel data stored in the first memory and pixel data stored in the second memory to a second block adjacent to the first block. Filter processing is performed for the horizontal edge in the corresponding second filter region.

この構成によれば、第2のメモリには、第1のフィルタ領域内の垂直エッジについてフィルタ処理を行う前の状態の画素データが格納される。そして、第2のフィルタ領域内の水平エッジについてフィルタ処理を行う際には、第2のメモリに格納されている画素データが利用される。すなわち、垂直フィルタ処理が行われた後の画素データに対して水平フィルタ処理が行われることはない。よって、「垂直エッジよりも先に水平エッジについてフィルタ処理を行う」という規定を満足することができる。この結果、上記規定を満たしながら、カレントマクロブロックとそのカレントマクロブロックに対応するフィルタ領域とを近づけるまたは重ねることができるので、外部メモリから読み込むべき画素データの量(および、外部メモリに送信するフィルタ後の画素データの量)を少なくできる。   According to this configuration, the second memory stores pixel data in a state before the filtering process is performed on the vertical edges in the first filter region. Then, when the filtering process is performed on the horizontal edge in the second filter region, the pixel data stored in the second memory is used. That is, the horizontal filter process is not performed on the pixel data after the vertical filter process. Therefore, it is possible to satisfy the rule that “filtering is performed for horizontal edges before vertical edges”. As a result, the current macroblock and the filter area corresponding to the current macroblock can be brought close to each other or overlapped while satisfying the above-mentioned regulations, so that the amount of pixel data to be read from the external memory (and the filter to be transmitted to the external memory) The amount of subsequent pixel data) can be reduced.

本発明の他の態様のデブロッキングフィルタは、動画像のピクチャを分割することにより得られるブロック毎にフィルタ処理を行う構成であって、フレームメモリから読み出した前記ピクチャの画素データを格納する第1のメモリと、前記ピクチャの第1のブロックに対応する第1のフィルタ領域内の水平エッジについてフィルタ処理を行う水平フィルタと、前記水平フィルタによるフィルタ処理の後に、前記第1のフィルタ領域内の垂直エッジについてフィルタ処理を行う垂直フィルタと、前記第1のフィルタ領域内の予め決められた垂直エッジに隣接する画素データについての前記垂直フィルタによる補正値を格納する第2のメモリと、前記垂直フィルタによるフィルタ処理の後に、前記第1のフィルタ領域の画素データを前記フレームメモリに送信する送信手段と、を備える。そして、前記水平フィルタは、前記第1のメモリに格納されている画素データおよび前記第2のメモリに格納されている補正値を利用して、前記第1のブロックに隣接する第2のブロックに対応する第2のフィルタ領域内の水平エッジについてフィルタ処理を行う。この構成によれば、上述の態様と比較して、第2のメモリに格納するデータ量が少なくなる。   A deblocking filter according to another aspect of the present invention is configured to perform filtering for each block obtained by dividing a picture of a moving image, and stores first pixel data of the picture read from a frame memory. A horizontal filter that performs filtering on a horizontal edge in a first filter area corresponding to the first block of the picture, and a vertical filter in the first filter area after the filtering by the horizontal filter. A vertical filter that performs filtering on an edge; a second memory that stores correction values by the vertical filter for pixel data adjacent to a predetermined vertical edge in the first filter region; and After the filtering process, the pixel data of the first filter area is converted into the frame. Comprises transmission means for transmitting to the memory, the. The horizontal filter uses the pixel data stored in the first memory and the correction value stored in the second memory to apply a second block adjacent to the first block to the second block. Filter processing is performed for the horizontal edge in the corresponding second filter region. According to this configuration, the amount of data stored in the second memory is reduced as compared with the above-described aspect.

開示のデブロッキングフィルタは、インターレースフレームピクチャのブロックノイズを除去する際のメモリアクセス量を少なくできる、という効果を奏する。   The disclosed deblocking filter has the effect of reducing the amount of memory access when removing block noise from interlaced frame pictures.

図面を参照しながら本発明の実施形態について説明する。以下では、動画像符号化規格としてVC−1を取り上げて説明するが、本発明はこの規格に限定されるものではない。すなわち、本発明は、動画像のピクチャを分割することにより得られるブロック毎にフィルタ処理を行い、且つ垂直フィルタ処理よりも先に水平フィルタ処理を行う規格に適用可能である。   Embodiments of the present invention will be described with reference to the drawings. Below, VC-1 is taken up and explained as a moving picture coding standard, but the present invention is not limited to this standard. That is, the present invention can be applied to a standard in which filter processing is performed for each block obtained by dividing a moving picture picture, and horizontal filter processing is performed prior to vertical filter processing.

図1は、実施形態のデブロッキングフィルタを搭載する動画像符号化装置20の構成を示す図である。動画像データは、フレーム毎に(すなわち、ピクチャ毎に)動画像符号化装置20に入力される。また、符号化処理は、マクロブロック毎に行われる。   FIG. 1 is a diagram illustrating a configuration of a video encoding device 20 equipped with the deblocking filter of the embodiment. The moving image data is input to the moving image encoding device 20 for each frame (that is, for each picture). Also, the encoding process is performed for each macroblock.

動き補償符号化部21は、フレーム間予測またはフレーム内予測を選択的に行い、予測誤差データを出力する。フレーム間予測では、入力画像および予測画像に基づいて予測誤差データが生成される。整数変換部22は、予測誤差データを整数変換する。量子化部23は、整数変換された予測誤差データを量子化する。エントロピー符号化部24は、マクロブロックの予測情報および量子化データをエントロピー符号化する。なお、エントロピー符号化部24は、この実施例では、スキャン変換機能も備えている。これにより符号化データストリームが生成される。   The motion compensation encoding unit 21 selectively performs interframe prediction or intraframe prediction, and outputs prediction error data. In inter-frame prediction, prediction error data is generated based on an input image and a predicted image. The integer conversion unit 22 performs integer conversion on the prediction error data. The quantization unit 23 quantizes the integer-converted prediction error data. The entropy encoding unit 24 entropy encodes the prediction information and quantized data of the macroblock. The entropy encoding unit 24 also has a scan conversion function in this embodiment. As a result, an encoded data stream is generated.

逆量子化部25は、量子化部23の出力データを逆量子化する。逆整数変換部26は、逆量子化部25の出力データを逆整数変換する。動き補償復号部27は、フレーム間予測またはフレーム内予測を選択的に行い、符号化データを復号する。デブロッキングフィルタ28は、動き補償復号部27により得られる画像データのブロックノイズ(あるいは、ブロック歪)を除去する。フレームメモリ29は、デブロッキングフィルタ28の出力データを一時的に格納する。フレームメモリ29に格納される画像データは、予測画像として、動き補償符号化部21および動き補償復号部27に与えられる。   The inverse quantization unit 25 performs inverse quantization on the output data of the quantization unit 23. The inverse integer transform unit 26 performs inverse integer transform on the output data of the inverse quantization unit 25. The motion compensation decoding unit 27 selectively performs inter-frame prediction or intra-frame prediction, and decodes encoded data. The deblocking filter 28 removes block noise (or block distortion) of the image data obtained by the motion compensation decoding unit 27. The frame memory 29 temporarily stores output data from the deblocking filter 28. The image data stored in the frame memory 29 is given to the motion compensation encoding unit 21 and the motion compensation decoding unit 27 as a predicted image.

図2は、実施形態のデブロッキングフィルタを搭載する動画像復号装置30の構成を示す図である。この動画像復号装置30は、図1に示す動画像符号化装置20により生成される符号化データストリームを受信して復号する。   FIG. 2 is a diagram illustrating a configuration of the video decoding device 30 equipped with the deblocking filter of the embodiment. The video decoding device 30 receives and decodes the encoded data stream generated by the video encoding device 20 shown in FIG.

エントロピー復号部31は、符号化データストリームを受信してエントロピー復号を行う。なお、エントロピー復号部31は、この実施例では、スキャン変換機能も備えている。逆量子化部32、逆整数変換部33、動き補償復号部34、デブロッキングフィルタ35、フレームメモリ36は、基本的に、動画像符号化装置20が備える逆量子化部25、逆整数変換部26、動き補償復号部27、デブロッキングフィルタ28、フレームメモリ29と同じである。   The entropy decoding unit 31 receives the encoded data stream and performs entropy decoding. The entropy decoding unit 31 also has a scan conversion function in this embodiment. The inverse quantization unit 32, the inverse integer transformation unit 33, the motion compensation decoding unit 34, the deblocking filter 35, and the frame memory 36 are basically composed of an inverse quantization unit 25, an inverse integer transformation unit provided in the video encoding device 20. 26, motion compensation decoding unit 27, deblocking filter 28, and frame memory 29.

本発明の実施形態のデブロッキングフィルタは、図1に示すデブロッキングフィルタ28または図2に示すデブロッキングフィルタ35に相当する。すなわち、実施形態のデブロッキングフィルタは、ブロック毎に順番に復号された画像データが与えられ、ブロックノイズを除去するフィルタ処理を行う。なお、復号処理は、図24に示すように、ピクチャの上方に位置するブロックから順番(ラスタ順)に行われる。具体的には、左上隅のブロックから順番に右方向に向かって進められ、以降同様に、右下隅まで進められる。したがって、デブロッキングフィルタによるフィルタ処理も、これと同じ順序で行われる。   The deblocking filter of the embodiment of the present invention corresponds to the deblocking filter 28 shown in FIG. 1 or the deblocking filter 35 shown in FIG. In other words, the deblocking filter according to the embodiment receives image data decoded in order for each block, and performs a filtering process to remove block noise. Note that the decoding process is performed in order (raster order) from the block located above the picture, as shown in FIG. Specifically, the process proceeds in the right direction sequentially from the block in the upper left corner, and thereafter proceeds to the lower right corner in the same manner. Therefore, the filtering process by the deblocking filter is also performed in the same order.

図3は、実施形態のデブロッキングフィルタ10の構成を示す図である。デブロッキングフィルタ10は、この実施例では、画素入力部1、内部RAM2、外部メモリ入出力部3、水平フィルタ演算部4、垂直フィルタ演算部5、ローカルメモリ6、ローカルメモリ制御部7、RAMインタフェース8を備える。なお、外部メモリ9は、図1または図2のフレームメモリに相当するものであり、デブロッキングフィルタ10の一部として提供されてもよい。   FIG. 3 is a diagram illustrating a configuration of the deblocking filter 10 according to the embodiment. In this embodiment, the deblocking filter 10 includes a pixel input unit 1, an internal RAM 2, an external memory input / output unit 3, a horizontal filter calculation unit 4, a vertical filter calculation unit 5, a local memory 6, a local memory control unit 7, and a RAM interface. 8 is provided. Note that the external memory 9 corresponds to the frame memory of FIG. 1 or 2 and may be provided as a part of the deblocking filter 10.

画素入力部1は、ブロック毎に与えられる入力画素データを内部RAM2に書き込む。画素データは、輝度信号(Yデータ)、および色差信号(Cbデータ、Crデータ)を含む。内部RAM2は、例えば半導体メモリであり、画素データを格納する。外部メモリ入出力部3は、外部メモリ9にアクセスし、データの書込みおよびデータの読出しを制御す
る。水平フィルタ演算部4は、水平エッジについてフィルタ処理を実行する。垂直フィルタ演算部5は、垂直エッジについてフィルタ処理を実行する。ローカルメモリ6は、例えば半導体メモリであり、フィルタ演算に使用される画素データを一時的に格納する。ローカルメモリ制御部7は、ローカルメモリ6にアクセスし、データの書込みおよびデータの読出しを制御する。RAMインタフェース8は、上記各ユニット1〜7を互いに接続し、データの授受を制御する。
The pixel input unit 1 writes input pixel data given for each block in the internal RAM 2. The pixel data includes a luminance signal (Y data) and a color difference signal (Cb data, Cr data). The internal RAM 2 is a semiconductor memory, for example, and stores pixel data. The external memory input / output unit 3 accesses the external memory 9 and controls data writing and data reading. The horizontal filter calculation unit 4 performs filter processing on the horizontal edge. The vertical filter calculation unit 5 performs filter processing on the vertical edge. The local memory 6 is a semiconductor memory, for example, and temporarily stores pixel data used for filter calculation. The local memory control unit 7 accesses the local memory 6 and controls data writing and data reading. The RAM interface 8 connects the units 1 to 7 to each other and controls data exchange.

水平フィルタ演算部4および垂直フィルタ演算部5は、基本的に、同じフィルタ演算を実行する。すなわち、フィルタ演算部(水平フィルタ演算部4および/または垂直フィルタ演算部5を指すものとする)は、図26または図27を参照しながら説明したように、互いに隣接するブロックの境界(水平エッジ、垂直エッジ)の近傍の画素データP1〜P8に基づいて、画素データP4、P5を補正する。なお、この実施例では、画素データP1〜P8に基づいて画素データP4、P5を補正する構成であるが、本発明はこれに限定されるものではない。すなわち、本発明は、例えば、画素データP1〜P8に基づいて画素データP3〜P6が補正される構成にも適用可能である。   The horizontal filter calculation unit 4 and the vertical filter calculation unit 5 basically execute the same filter calculation. That is, the filter operation unit (referred to as the horizontal filter operation unit 4 and / or the vertical filter operation unit 5), as described with reference to FIG. The pixel data P4 and P5 are corrected based on the pixel data P1 to P8 in the vicinity of the vertical edge). In this embodiment, the pixel data P4 and P5 are corrected based on the pixel data P1 to P8, but the present invention is not limited to this. That is, the present invention can be applied to a configuration in which the pixel data P3 to P6 are corrected based on the pixel data P1 to P8, for example.

図4は、フィルタ演算部によるフィルタ処理の実施例である。フィルタ演算部には、画素データP1〜P8が入力される。画素データは、この実施例では、Yデータ、Cbデータ、Crデータを含む。そして、フィルタ演算部は、Yデータ、Cbデータ、Crデータについて互いに独立して演算を実行する。   FIG. 4 is an example of filter processing by the filter calculation unit. Pixel data P1 to P8 are input to the filter calculation unit. In this embodiment, the pixel data includes Y data, Cb data, and Cr data. Then, the filter calculation unit performs calculations on Y data, Cb data, and Cr data independently of each other.

図4に示す演算式は、公知の技術であるので、要点のみを簡単に説明する。実施例のフィルタ演算では、まず、画素データP1〜P8に基づいて変数ao〜a3を生成する。続いて、変数a0〜a3に応じて、補正量Dを計算する。そして、この補正量Dを用いて下記の(1)式および(2)式で画素データP4、P5を補正する。
P4=P4−D ・・・(1)
P5=P5+D ・・・(2)
図5は、フィルタ処理の一例を示す図である。図5に示す例では、画素データP4、P5間で不連続性が生じている。そして、フィルタ演算部は、画素データP1〜P8が連続的に変化するように(すなわち、ブロックノイズを除去するように)、画素データP4、P5を補正している。
Since the arithmetic expression shown in FIG. 4 is a known technique, only the main points will be briefly described. In the filter operation of the embodiment, first, variables ao to a3 are generated based on the pixel data P1 to P8. Subsequently, the correction amount D is calculated according to the variables a0 to a3. Then, using this correction amount D, the pixel data P4 and P5 are corrected by the following equations (1) and (2).
P4 = P4-D (1)
P5 = P5 + D (2)
FIG. 5 is a diagram illustrating an example of filter processing. In the example shown in FIG. 5, discontinuity occurs between the pixel data P4 and P5. The filter calculation unit corrects the pixel data P4 and P5 so that the pixel data P1 to P8 change continuously (that is, so as to remove block noise).

フィルタ演算部は、カレントマクロブロック内の画素データ、およびカレントマクロブロックの周辺領域の画素データに基づいて、そのカレントマクロブロックに対応するフィルタ対象領域内のエッジ(すなわち、ブロック境界)についてフィルタ処理を行う。   Based on the pixel data in the current macroblock and the pixel data in the peripheral area of the current macroblock, the filter calculation unit performs a filter process on the edge (that is, the block boundary) in the filter target area corresponding to the current macroblock. Do.

図6は、カレントマクロブロックおよび対応するフィルタ対象領域を示す図である。フィルタ対象領域は、基本的には、図6(b)に示すように、カレントマクロブロックの左上側に設定される。ただし、カレントマクロブロックがピクチャの左端および右端に位置する場合は、フィルタ対象領域は、それぞれ、図6(a)および図6(c)に示すように設定される。また、カレントマクロブロックがピクチャの左下端、下端、右下端に位置する場合は、フィルタ対象領域は、それぞれ、図6(d)、図6(e)、図6(f)に示すように設定される。   FIG. 6 is a diagram illustrating a current macroblock and a corresponding filter target area. The filter target area is basically set on the upper left side of the current macroblock as shown in FIG. However, when the current macroblock is located at the left end and the right end of the picture, the filter target areas are set as shown in FIGS. 6A and 6C, respectively. When the current macroblock is located at the lower left end, the lower end, and the lower right end of the picture, the filter target areas are set as shown in FIGS. 6 (d), 6 (e), and 6 (f), respectively. Is done.

図7は、フィルタ処理後の画素データを書き出す領域を示す図である。基本的には、図7(b)において破線で囲まれた領域の画素データが書き出される。すなわち、その領域の画素データが外部メモリ9に送信される。ただし、カレントマクロブロックがピクチャの左端および右端に位置する場合は、それぞれ、図7(a)および図7(c)に示す領域の画素データが書き出される。   FIG. 7 is a diagram illustrating an area in which pixel data after filtering is written. Basically, the pixel data of the area surrounded by the broken line in FIG. 7B is written out. That is, the pixel data in that region is transmitted to the external memory 9. However, when the current macroblock is located at the left end and the right end of the picture, the pixel data in the areas shown in FIGS. 7A and 7C are written out, respectively.

次に、図8〜図10を参照しながら、実施形態のデブロッキング処理のコンセプトを説明する。ここでは、図8に示すように、マクロブロックB1およびその下側に位置するマクロブロックB2に着目してフィルタ処理を説明する。ここで、ピクチャの水平方向は、K個のブロックで構成されるものとする。この場合、ブロックB2に対応する領域のフィルタ処理は、ブロックB1に対応する領域のフィルタ処理が行われたときから、K周期後に実行されることになる。   Next, the concept of the deblocking process of the embodiment will be described with reference to FIGS. Here, as shown in FIG. 8, the filtering process will be described focusing on the macroblock B1 and the macroblock B2 located below the macroblock B1. Here, the horizontal direction of the picture is assumed to be composed of K blocks. In this case, the filtering process for the area corresponding to the block B2 is executed after K cycles from the time when the filtering process for the area corresponding to the block B1 is performed.

ブロックB1の左上側にフィルタ対象領域F1が設定される。また、ブロックB2の左上側にフィルタ対象領域F2が設定される。そして、フィルタ対象領域F2は、フィルタ対象領域F1の下側に隣接して配置されることになる。   A filter target area F1 is set on the upper left side of the block B1. Further, the filter target area F2 is set on the upper left side of the block B2. The filter target area F2 is disposed adjacent to the lower side of the filter target area F1.

図9(a)は、ブロックB1がカレントマクロブロックである場合のフィルタ処理を示す図である。ここで、○印は、フィルタ処理を行うべき水平エッジを表し、□印は、フィルタ処理を行うべき垂直エッジを表している。   FIG. 9A is a diagram illustrating a filter process when the block B1 is a current macroblock. Here, ◯ represents a horizontal edge to be filtered, and □ represents a vertical edge to be filtered.

実施形態のデブロッキングフィルタにおいては、カレントブロックの上側12ライン分の画素データ(図9(a)において斜線で示す領域の画素データ)が外部メモリ9から読み出される。これに対して、図31(a)に示す従来技術においては、カレントマクロブロックの上側16ライン分の画素データが外部メモリ9から読み出される。すなわち、実施形態のデブロッキングフィルタでは、従来技術と比較して、外部メモリ9から読み出される画素データ量が少ない。   In the deblocking filter of the embodiment, pixel data for the upper 12 lines of the current block (pixel data in a region indicated by hatching in FIG. 9A) is read from the external memory 9. On the other hand, in the prior art shown in FIG. 31A, pixel data for the upper 16 lines of the current macroblock is read from the external memory 9. That is, in the deblocking filter of the embodiment, the amount of pixel data read from the external memory 9 is small as compared with the conventional technique.

図9(b)は、ブロックB2がカレントマクロブロックである場合のフィルタ処理を示す図である。この場合、ブロックB2の上側12ライン分の画素データ(斜線で示す領域の画素データ)が外部メモリ9から読み出され、そのブロックB2の左上側領域内の水平エッジおよび垂直エッジについてフィルタ処理が行われる。ここで、水平エッジ1〜4に注目する。水平エッジ1〜4についてフィルタ処理を行うためには、インターレースフレームピクチャにおいては、領域c5〜c8の画素データが必要である。具体的には、水平エッジ1〜4についてフィルタ処理を行うときには、図10に示すように、水平エッジ1〜4(図10では、水平エッジ1、2のみが描かれている)の上側8画素および下側8画素の各画素データに基づいて、水平エッジ1〜4に隣接する画素の画素データが補正される。   FIG. 9B is a diagram illustrating the filtering process when the block B2 is the current macroblock. In this case, the pixel data for the upper 12 lines of the block B2 (pixel data in the area indicated by diagonal lines) is read from the external memory 9, and the horizontal edge and vertical edge in the upper left area of the block B2 are filtered. Is called. Here, attention is paid to the horizontal edges 1 to 4. In order to perform the filtering process on the horizontal edges 1 to 4, the pixel data of the regions c5 to c8 are necessary in the interlace frame picture. Specifically, when the filtering process is performed for the horizontal edges 1 to 4, as shown in FIG. 10, the upper eight pixels of the horizontal edges 1 to 4 (only the horizontal edges 1 and 2 are drawn in FIG. 10). The pixel data of the pixels adjacent to the horizontal edges 1 to 4 are corrected based on the pixel data of the lower 8 pixels.

また、実施形態のデブロッキングフィルタは、「垂直エッジよりも先に水平エッジについてフィルタ処理を行う」という規定に従って動作するものとする。そうすると、ブロックB1、B2のみについて考えた場合、以下の順番でフィルタ処理を行う必要がある。
手順1:ブロックB1に対応する水平フィルタ処理
手順2:ブロックB1に対応する垂直フィルタ処理
手順3:ブロックB2に対応する水平フィルタ処理
手順4:ブロックB2に対応する垂直フィルタ処理
しかし、図9(a)および図9(b)に示すフィルタ処理を単純に実行すると、上記規定を満足できない。すなわち、手順2では、ブロックB1に対応する垂直エッジについてのフィルタ処理が行われる。このとき、領域c2〜c5において、各垂直エッジに隣接する画素の画素データが補正される。続いて、手順3では、ブロックB2に対応する水平エッジについてフィルタ処理が行われる。このとき、最も上側の水平エッジ(すなわち、水平エッジ1〜4)についてフィルタ処理を行うためには、上述したように、領域c5〜c8の画素データが必要である。
In addition, the deblocking filter according to the embodiment is assumed to operate in accordance with the rule that “filtering is performed for horizontal edges before vertical edges”. Then, when only the blocks B1 and B2 are considered, it is necessary to perform the filter processing in the following order.
Procedure 1: Horizontal filter processing procedure corresponding to block B1: Vertical filter processing procedure corresponding to block B1: Horizontal filter processing procedure corresponding to block B2 4: Vertical filter processing corresponding to block B2 However, FIG. ) And the filter processing shown in FIG. 9B cannot be satisfied by simply executing the filtering process. That is, in the procedure 2, the filtering process for the vertical edge corresponding to the block B1 is performed. At this time, in the areas c2 to c5, the pixel data of the pixels adjacent to each vertical edge is corrected. Subsequently, in procedure 3, a filtering process is performed on the horizontal edge corresponding to the block B2. At this time, in order to perform the filtering process on the uppermost horizontal edge (that is, the horizontal edges 1 to 4), the pixel data of the regions c5 to c8 are necessary as described above.

ここで、領域c5に注目する。領域c5の画素データは、図9(a)〜図9(b)に示すフィルタ処理を単純に実行する場合には、手順2において垂直フィルタ処理が行われ、
その後、手順3において水平フィルタ処理のために使用される。そうすると、領域c5の画素データについては「垂直エッジよりも先に水平エッジについてフィルタ処理を行う」という規定を満足しないこととなってしまう。
Here, attention is focused on the region c5. When the filter processing shown in FIGS. 9A to 9B is simply performed on the pixel data in the region c5, the vertical filter processing is performed in step 2.
It is then used for horizontal filtering in procedure 3. In this case, the pixel data in the region c5 does not satisfy the rule that “the horizontal edge is filtered before the vertical edge”.

そこで、実施形態のデブロッキングフィルタにおいては、上記規定を満足するために、ブロックB1に対応するフィルタ処理において垂直フィルタ処理が行われる画素データであって、ブロックB2に対応するブロック処理において水平フィルタ処理のために使用すべき画素データについては、ブロックB1の垂直フィルタ処理を行う前にいったんローカルメモリ6に退避させる。そして、ブロックB2に対応するブロック処理において、ローカルメモリ6に退避させた画素データを利用する。この手順を導入することにより、領域c5においても、「垂直エッジよりも先に水平エッジについてフィルタ処理を行う」という規定を満足することができる。   Therefore, in the deblocking filter of the embodiment, in order to satisfy the above-mentioned definition, the pixel data is subjected to vertical filter processing in the filter processing corresponding to the block B1, and the horizontal filter processing is performed in the block processing corresponding to the block B2. Pixel data to be used for the purpose is temporarily saved in the local memory 6 before performing the vertical filter processing of the block B1. Then, the pixel data saved in the local memory 6 is used in the block processing corresponding to the block B2. By introducing this procedure, it is possible to satisfy the rule that “filtering is performed for the horizontal edge before the vertical edge” also in the region c5.

上記手順において、領域c5の画素データは、ブロックB1に対応する垂直フィルタ処理が行われる前に、ローカルメモリ6に退避される。ただし、実施形態のデブロッキングフィルタは、画素データP1〜P8に基づいて画素データP4、P5を補正する構成である。すなわち、図10において、垂直エッジ1についてフィルタ処理を行う場合は、画素データP1〜P3、P6〜P8は変化することなく、画素データP4、P5のみが補正される。したがって、画素データP4、P5のみをローカルメモリ6に退避すれば、「垂直エッジよりも先に水平エッジについてフィルタ処理を行う」という規定を満足することができる。図10に示す例では、2×4画素の画素データが退避される。以下、ローカルメモリ6に退避すべき画素データを「退避画素データ」と呼ぶことがある。また、退避画素データを取り出すべき領域を「退避領域」と呼ぶことがある。   In the above procedure, the pixel data in the area c5 is saved in the local memory 6 before the vertical filter process corresponding to the block B1 is performed. However, the deblocking filter of the embodiment is configured to correct the pixel data P4 and P5 based on the pixel data P1 to P8. That is, in FIG. 10, when the filtering process is performed for the vertical edge 1, only the pixel data P4 and P5 are corrected without changing the pixel data P1 to P3 and P6 to P8. Therefore, if only the pixel data P4 and P5 are saved in the local memory 6, it is possible to satisfy the rule that “filtering is performed for the horizontal edge before the vertical edge”. In the example shown in FIG. 10, pixel data of 2 × 4 pixels is saved. Hereinafter, the pixel data to be saved in the local memory 6 may be referred to as “saved pixel data”. In addition, an area from which saved pixel data should be extracted may be referred to as a “saved area”.

なお、図10に示す水平エッジ1、2についてフィルタ処理を行う場合には、垂直エッジ0、2についてのフィルタ処理を行う前に、垂直エッジ0に隣接する画素データP1、および垂直エッジ2に隣接する画素データP8も、ローカルメモリ6に退避される。   In the case where the filtering process is performed for the horizontal edges 1 and 2 shown in FIG. 10, the pixel data P1 adjacent to the vertical edge 0 and the vertical edge 2 are adjacent before the filtering process for the vertical edges 0 and 2 is performed. Pixel data P8 to be saved is also saved in the local memory 6.

図9(c)は、図9(a)〜図9(b)のフィルタ処理が行われる際の退避領域を示す図である。この実施例では、5つの退避領域E1〜E5からそれぞれ画像データが抽出され、ローカルメモリ6に送信される。なお、退避領域E1、E5は、それぞれ、1×4画素の画素データである。また、退避領域E2〜E4は、それぞれ、2×4画素の画素データである。   FIG. 9C is a diagram illustrating a save area when the filter processing of FIGS. 9A to 9B is performed. In this embodiment, image data is extracted from each of the five save areas E1 to E5 and transmitted to the local memory 6. Each of the save areas E1 and E5 is 1 × 4 pixel data. The save areas E2 to E4 are 2 × 4 pixel data, respectively.

図11は、実施形態のデブロッキングフィルタの処理手順を示すフローチャートである。また、図12〜図18は、実施形態のデブロッキングフィルタのデータの流れを示す図である。以下の説明では、先に復号処理およびフィルタ処理が行われたブロックの画素データは、外部メモリ9に格納されているものとする。また、以下の説明では、図9(b)に示すブロックB2がカレントマクロブロックであるものとする。この場合、ブロックB1に対応するフィルタ処理で得られる退避画素データがローカルメモリ6に格納されている。   FIG. 11 is a flowchart illustrating a processing procedure of the deblocking filter according to the embodiment. 12 to 18 are diagrams illustrating a data flow of the deblocking filter according to the embodiment. In the following description, it is assumed that the pixel data of the block that has been subjected to the decoding process and the filter process are stored in the external memory 9. In the following description, it is assumed that the block B2 shown in FIG. 9B is a current macroblock. In this case, the saved pixel data obtained by the filter processing corresponding to the block B1 is stored in the local memory 6.

ステップS1では、図12に示すように、カレントマクロブロックであるブロックB2の上側領域の画素データが外部メモリ9から内部RAM2に送信される。図9(b)に示す例では、斜線領域の画素データが読み込まれる。なお、カレントマクロブロックの左側隣接領域および左上側隣接領域の画素データは、直前のマクロブロックについてのフィルタ処理で利用されているので、内部RAM2に残っているものとする。   In step S1, as shown in FIG. 12, the pixel data in the upper area of the block B2, which is the current macroblock, is transmitted from the external memory 9 to the internal RAM 2. In the example shown in FIG. 9B, pixel data in the shaded area is read. Note that the pixel data of the left adjacent area and the upper left adjacent area of the current macroblock are used in the filter processing for the immediately preceding macroblock, and therefore remain in the internal RAM 2.

ステップS2では、図13に示すように、カレントマクロブロックの画素データが、画素入力部1を介して内部RAM2に格納される。この画素データは、ブロック毎の復号処
理により得られる。
In step S2, pixel data of the current macroblock is stored in the internal RAM 2 via the pixel input unit 1, as shown in FIG. This pixel data is obtained by a decoding process for each block.

ステップS3では、図14に示すように、ローカルメモリ6から退避画素データを取得する。このとき、退避画素データは、ローカルメモリ制御部7により読み出され、内部RAM2に送信される。この実施例では、図9に示すブロックB1についてのフィルタ処理で得られた退避画素データ(図9(c)において斜線で示す領域E1〜E5の画素データ)が読み出される。なお、この退避画素データは、ブロックB1についてのフィルタ処理でローカルメモリ6に書込まれたものである。   In step S3, save pixel data is acquired from the local memory 6 as shown in FIG. At this time, the saved pixel data is read by the local memory control unit 7 and transmitted to the internal RAM 2. In this embodiment, saved pixel data (pixel data in the areas E1 to E5 indicated by diagonal lines in FIG. 9C) obtained by the filter processing for the block B1 shown in FIG. 9 is read. The saved pixel data is written in the local memory 6 by the filtering process for the block B1.

退避画素データを内部RAM2に書き込む際には、先に内部RAM2に格納されている対応する領域の画素データに対して上書きする。すなわち、先に内部RAM2に格納されている対応する領域の画素データは、退避画素データによって置き換えられる。   When writing the saved pixel data to the internal RAM 2, the pixel data in the corresponding area previously stored in the internal RAM 2 is overwritten. That is, the pixel data of the corresponding area previously stored in the internal RAM 2 is replaced with the saved pixel data.

ステップS4では、図15に示すように、ステップS1〜S3で収集した画素データを利用して水平フィルタ処理を行う。このとき、画素データの一部は、ステップS3において退避画素データに置きかえられている。そして、その退避画素データは、ブロックB1に対応する垂直フィルタ処理を行う前の状態の画素データである。よって、ステップS4の水平フィルタ処理は、垂直フィルタ処理が行われる前の状態の画素データに対して行われることになる。なお、水平フィルタ処理の演算結果は、内部RAM2に格納される。   In step S4, as shown in FIG. 15, horizontal filter processing is performed using the pixel data collected in steps S1 to S3. At this time, part of the pixel data is replaced with the saved pixel data in step S3. The saved pixel data is pixel data in a state before the vertical filter processing corresponding to the block B1 is performed. Therefore, the horizontal filter process in step S4 is performed on the pixel data in a state before the vertical filter process is performed. Note that the calculation result of the horizontal filter processing is stored in the internal RAM 2.

ステップS5では、図16に示すように、内部RAM2から退避画素データを読み出してローカルメモリ6に退避させる。この実施例では、図9(b)に示す各水平エッジについてのフィルタ処理が終了した後に、垂直エッジ5の右側に隣接する領域(1×4画素)、垂直エッジ6〜8に隣接する領域(2×4画素)、および垂直エッジ9の左側に隣接する領域(1×4画素)の画素データが、退避画素データとしてローカルメモリ6に送信される。   In step S5, the saved pixel data is read from the internal RAM 2 and saved in the local memory 6 as shown in FIG. In this embodiment, after the filtering process for each horizontal edge shown in FIG. 9B is completed, an area adjacent to the right side of the vertical edge 5 (1 × 4 pixels) and an area adjacent to the vertical edges 6 to 8 ( 2 × 4 pixels) and pixel data of an area adjacent to the left side of the vertical edge 9 (1 × 4 pixels) are transmitted to the local memory 6 as saved pixel data.

ステップS6では、図17に示すように、内部RAM2から画素データが読み出され、垂直フィルタ処理が行われる。この垂直フィルタ処理の演算結果は、再び内部RAM2に格納される。そして、ステップS7において、図18に示すように、フィルタ処理後の画素データが、内部RAM2から外部メモリ9に送信される。このとき送信される画素データは、図7を参照しながら説明した通りである。図9(b)に示す例では、領域c6〜c11の画素データが外部メモリ9に送信される。すなわち、24ライン分の画素データが外部メモリ9へ送信される。   In step S6, as shown in FIG. 17, pixel data is read from the internal RAM 2 and vertical filter processing is performed. The calculation result of the vertical filter processing is stored in the internal RAM 2 again. In step S7, the pixel data after the filter processing is transmitted from the internal RAM 2 to the external memory 9, as shown in FIG. The pixel data transmitted at this time is as described with reference to FIG. In the example shown in FIG. 9B, the pixel data of the areas c6 to c11 are transmitted to the external memory 9. That is, pixel data for 24 lines is transmitted to the external memory 9.

なお、図9〜図10では、画素データの中のYデータについてのフィルタ処理を示している。実施形態のデブロッキングフィルタは、CrデータおよびCbデータについても同様のフィルタ処理を行う。   9 to 10 show filter processing for Y data in the pixel data. The deblocking filter of the embodiment performs the same filtering process for Cr data and Cb data.

図19(a)は、ブロックB1がカレントマクロブロックである場合のフィルタ処理を示す図である。この場合、ブロックB1の上側領域の12ライン分の画素データが外部メモリ9から読み込まれる。図19(b)は、ブロックB1についてフィルタ処理を行う場合の退避領域を示す図である。退避領域は、Yデータのフィルタ処理と同様であり、2×4画素である。そして、この退避領域の画素データは、ブロックB1に対応する水平フィルタ処理の後であって、且つその垂直フィルタ処理の前に、ローカルメモリ6に格納される。また、フィルタ処理後の画素データは、外部メモリ9に送信される。このとき、領域c2〜c7の画素データ(すなわち、24ライン分の画素データ)が外部メモリ9に送信される。   FIG. 19A is a diagram illustrating a filter process when the block B1 is the current macroblock. In this case, the pixel data for 12 lines in the upper region of the block B1 is read from the external memory 9. FIG. 19B is a diagram illustrating a save area when the filter process is performed on the block B1. The save area is the same as the Y data filtering process, and is 2 × 4 pixels. Then, the pixel data in the save area is stored in the local memory 6 after the horizontal filter processing corresponding to the block B1 and before the vertical filter processing. In addition, the pixel data after the filter processing is transmitted to the external memory 9. At this time, pixel data of the regions c2 to c7 (that is, pixel data for 24 lines) is transmitted to the external memory 9.

図19(c)は、ブロックB1の下側に隣接するブロックB2がカレントマクロブロッ
クである場合のフィルタ処理を示す図である。この場合、図19(b)に示す退避領域の画素データは、ローカルメモリ6から取得する。これにより、「垂直エッジよりも先に水平エッジについてフィルタ処理を行う」という規定を満足することができる。
FIG. 19C is a diagram illustrating a filter process when the block B2 adjacent to the lower side of the block B1 is the current macroblock. In this case, the pixel data in the save area shown in FIG. 19B is acquired from the local memory 6. As a result, it is possible to satisfy the rule that “filtering is performed for horizontal edges before vertical edges”.

なお、マクロブロック毎のフィルタ処理は、ラスタ順に行われる。このため、図9に示す実施例において、ブロックB2に対する処理は、ブロックB1に対する処理からK番目に実行される。例えば、1920×1088画素のピクチャにおいて、16×16マクロブロック毎にフィルタ処理が行われるものとすると、K=120である。よって、この場合、ローカルメモリ6には、120ブロック分の退避画素データが格納されることとなる。   Note that the filter processing for each macroblock is performed in raster order. Therefore, in the embodiment shown in FIG. 9, the process for the block B2 is executed Kth from the process for the block B1. For example, if a filter process is performed every 16 × 16 macroblocks in a picture of 1920 × 1088 pixels, K = 120. Therefore, in this case, the saved pixel data for 120 blocks is stored in the local memory 6.

図20は、バンド幅についての比較結果を示す表である。ここで、バンド幅とは、単位時間当たりの外部メモリ9へのアクセス量(データ読出およびデータ書込)を意味する。また、従来技術は、図31を参照しながら説明したフィルタ処理であるものとする。   FIG. 20 is a table showing comparison results for bandwidth. Here, the bandwidth means an access amount (data read and data write) to the external memory 9 per unit time. Further, it is assumed that the prior art is the filter processing described with reference to FIG.

フィルタ処理を行うべき動画像は、図32で説明した条件と同じであるものとする。すなわち、動画像は、30フレーム/秒である。また、1920×1088画素のピクチャにおいて、16×16マクロブロック毎にフィルタ処理が行われる。さらに、各画素のYデータ、Cbデータ、Crデータのビット数は、それぞれ8ビットである。   It is assumed that the moving image to be subjected to the filtering process is the same as the condition described in FIG. That is, the moving image is 30 frames / second. Further, in a picture of 1920 × 1088 pixels, filter processing is performed for each 16 × 16 macroblock. Further, the number of bits of Y data, Cb data, and Cr data of each pixel is 8 bits.

実施形態のデブロッキングフィルタにおいて、外部メモリ9から内部RAM2へ送信される画素データのデータ量、および内部RAM2から外部メモリ9へ送信される画素データのデータ量は、従来技術と比較して大幅に少なくなる。この結果、実施形態のデブロッキングフィルタにおいて内部RAM2と外部メモリ9との間で必要なバンド幅は、従来技術と比較して大幅に削減される。   In the deblocking filter of the embodiment, the data amount of pixel data transmitted from the external memory 9 to the internal RAM 2 and the data amount of pixel data transmitted from the internal RAM 2 to the external memory 9 are significantly larger than those of the conventional technology. Less. As a result, the bandwidth required between the internal RAM 2 and the external memory 9 in the deblocking filter of the embodiment is significantly reduced as compared with the conventional technology.

このように、実施形態のデブロッキングフィルタは、「垂直エッジよりも先に水平エッジについてフィルタ処理を行う」という規定を満たしつつ、内部RAMと外部メモリとの間で必要なバンド幅を大幅に削減することができる。   As described above, the deblocking filter according to the embodiment greatly reduces the necessary bandwidth between the internal RAM and the external memory while satisfying the rule of “filtering the horizontal edge before the vertical edge”. can do.

なお、実施形態のデブロッキングフィルタは、図28に示す従来の構成と比べると、ローカルメモリ6を設ける必要がある。しかし、ローカルメモリ6は、退避画素データを格納できれば十分であるので、小型で安価なメモリ素子で実現することができる。   Note that the deblocking filter of the embodiment needs to provide the local memory 6 as compared with the conventional configuration shown in FIG. However, the local memory 6 suffices if it can store the saved pixel data, and can be realized with a small and inexpensive memory element.

<他の実施形態>
図11〜図18を参照しながら説明した実施例では、水平フィルタ処理が行われた後であって、且つ垂直フィルタ処理が行われる前の退避領域の画素データがローカルメモリ6に格納される。これに対して、以下に説明する他の実施形態では、ローカルメモリ6に格納すべきデータ量を削減する構成を提供する。
<Other embodiments>
In the embodiment described with reference to FIGS. 11 to 18, the pixel data of the save area after the horizontal filter processing and before the vertical filter processing is stored in the local memory 6. On the other hand, in another embodiment described below, a configuration for reducing the amount of data to be stored in the local memory 6 is provided.

図21は、他の実施形態のデブロッキングフィルタの処理手順を示すフローチャートである。他の実施形態においては、ステップS2に続いて、ステップS11、S12が実行される。ステップS11では、図22に示すように、まず、ローカルメモリ6から補正値Dが読み出される。また、先のフィルタ処理においてその補正値Dにより補正された画素データが内部RAM2から読み出される。この実施例では、画素データP1〜P8に基づいて画素データP4、P5が補正される。したがって、画素データP4、P5が読み出される。   FIG. 21 is a flowchart illustrating a processing procedure of a deblocking filter according to another embodiment. In another embodiment, steps S11 and S12 are executed following step S2. In step S11, as shown in FIG. 22, first, the correction value D is read from the local memory 6. Further, the pixel data corrected by the correction value D in the previous filter processing is read from the internal RAM 2. In this embodiment, the pixel data P4 and P5 are corrected based on the pixel data P1 to P8. Accordingly, the pixel data P4 and P5 are read out.

続いて、ステップS12では、上記補正の逆演算により、補正前の画素データを復元する。この実施例では、下記の(3)式および(4)式により、補正前の画素データP4、
P5を復元する。
P4=P4+D ・・・(3)
P5=P5−D ・・・(4)
この後、ステップS4において水平フィルタ処理を行い、ステップS5において垂直フィルタ処理を行う。これらのフィルタ処理は、この実施例では、図4に示した演算式に従う。
Subsequently, in step S12, the pixel data before correction is restored by the inverse calculation of the correction. In this embodiment, pixel data P4 before correction is obtained by the following equations (3) and (4).
Restore P5.
P4 = P4 + D (3)
P5 = P5-D (4)
Thereafter, horizontal filter processing is performed in step S4, and vertical filter processing is performed in step S5. In this embodiment, these filter processes follow the arithmetic expression shown in FIG.

ステップS13では、図23に示すように、垂直フィルタ処理により得られる補正値Dをローカルメモリ6に格納する。この補正値Dは、カレントマクロブロックの下側に隣接するブロックについてフィルタ処理を行うときに、補正前の画素データを復元するために使用される(ステップS11〜S12に相当する)。この後、ステップS7において、フィルタ処理が終了した復号画素データが外部メモリ9に送信される。   In step S13, the correction value D obtained by the vertical filter process is stored in the local memory 6, as shown in FIG. This correction value D is used to restore the pixel data before correction when the filter processing is performed on the block adjacent to the lower side of the current macroblock (corresponding to steps S11 to S12). Thereafter, the decoded pixel data for which the filtering process has been completed is transmitted to the external memory 9 in step S7.

図11に示す第1の実施形態および図21に示す第2の実施形態を比較する。ローカルメモリ6に退避すべき画素データは、第1の実施形態では、画素データP4、P5がローカルメモリ6に格納される。ここで、画素データ(例えば、Yデータ)は、0〜255を表す8ビットデータである。よって、1フィルタ要素に対して合計16ビットのデータがローカルメモリ16に格納される。これに対して、第2の実施形態では、補正値Dが−18〜+18を表すものとすると、ローカルメモリ16に格納されるデータは、1フィルタ要素に対して6ビットである。   The first embodiment shown in FIG. 11 is compared with the second embodiment shown in FIG. As for pixel data to be saved in the local memory 6, pixel data P4 and P5 are stored in the local memory 6 in the first embodiment. Here, the pixel data (for example, Y data) is 8-bit data representing 0-255. Therefore, a total of 16 bits of data is stored in the local memory 16 for one filter element. On the other hand, in the second embodiment, assuming that the correction value D represents −18 to +18, the data stored in the local memory 16 is 6 bits for one filter element.

この結果、1920×1088画素のピクチャにおいて、16×16マクロブロック毎にフィルタ処理が行われるものとすると、第1の実施形態では、ローカルメモリに格納されるデータは7680バイトとなる。一方、第2の実施形態では、ローカルメモリに格納されるデータは2880バイトとなる。   As a result, if a filter process is performed for each 16 × 16 macroblock in a 1920 × 1088 pixel picture, the data stored in the local memory is 7680 bytes in the first embodiment. On the other hand, in the second embodiment, the data stored in the local memory is 2880 bytes.

上述した各実施形態を含むデブロッキングフィルタに関し、さらに以下の付記を開示する。
(付記1)
動画像のピクチャを分割することにより得られるブロック毎にフィルタ処理を行うデブロッキングフィルタであって、
フレームメモリから読み出した前記ピクチャの画素データを格納する第1のメモリと、
前記ピクチャの第1のブロックに対応する第1のフィルタ領域内の水平エッジについてフィルタ処理を行う水平フィルタと、
前記水平フィルタによるフィルタ処理の後に、前記第1のフィルタ領域内の予め決められた特定領域の画素データを格納する第2のメモリと、
前記水平フィルタによるフィルタ処理の後に、前記第1のフィルタ領域内の垂直エッジについてフィルタ処理を行う垂直フィルタと、
前記垂直フィルタによるフィルタ処理の後に、前記第1のフィルタ領域の画素データを前記フレームメモリに送信する送信手段と、を備え、
前記水平フィルタは、前記第1のメモリに格納されている画素データおよび前記第2のメモリに格納されている画素データを利用して、前記第1のブロックに隣接する第2のブロックに対応する第2のフィルタ領域内の水平エッジについてフィルタ処理を行う
ことを特徴とするデブロッキングフィルタ。
(付記2)
付記1に記載のデブロッキングフィルタであって、
前記第2のメモリから読み出した画素データで、前記第1のメモリから読み出した画素データの対応する一部を置き換える置換え手段をさらに備え、
前記水平フィルタは、前記置換え手段により得られる画素データを利用して、前記第2のフィルタ領域内の水平エッジについてフィルタ処理を行う
ことを特徴とするデブロッキングフィルタ。
(付記3)
付記1に記載のデブロッキングフィルタであって、
前記ピクチャは、インターレースフレームピクチャである
ことを特徴とするデブロッキングフィルタ。
(付記4)
付記1に記載のデブロッキングフィルタであって、
当該デブロッキングフィルタは、ラスタ順にフィルタ処理を行う構成であり、
前記第2のブロックは、前記第1のブロックに下側に隣接する
ことを特徴とするデブロッキングフィルタ。
(付記5)
付記1に記載のデブロッキングフィルタであって、
前記特定領域は、前記第1のフィルタ領域内で前記第2のブロックに最も近い垂直エッジに隣接する画素が位置する領域である
ことを特徴とするデブロッキングフィルタ。
(付記6)
付記1に記載のデブロッキングフィルタであって、
前記水平フィルタは、水平エッジに隣接する画素の画素データを補正し、
前記垂直フィルタは、垂直エッジに隣接する画素の画素データを補正する
ことを特徴とするデブロッキングフィルタ。
(付記7)
動画像のピクチャを分割することにより得られるブロック毎にフィルタ処理を行うデブロッキングフィルタであって、
フレームメモリから読み出した前記ピクチャの画素データを格納する第1のメモリと、
前記ピクチャの第1のブロックに対応する第1のフィルタ領域内の水平エッジについてフィルタ処理を行う水平フィルタと、
前記水平フィルタによるフィルタ処理の後に、前記第1のフィルタ領域内の垂直エッジについてフィルタ処理を行う垂直フィルタと、
前記第1のフィルタ領域内の予め決められた垂直エッジに隣接する画素データについての前記垂直フィルタによる補正値を格納する第2のメモリと、
前記垂直フィルタによるフィルタ処理の後に、前記第1のフィルタ領域の画素データを前記フレームメモリに送信する送信手段と、を備え、
前記水平フィルタは、前記第1のメモリに格納されている画素データおよび前記第2のメモリに格納されている補正値を利用して、前記第1のブロックに隣接する第2のブロックに対応する第2のフィルタ領域内の水平エッジについてフィルタ処理を行う
ことを特徴とするデブロッキングフィルタ。
(付記8)
付記7に記載のデブロッキングフィルタであって、
前記第2のメモリから読み出した補正値から画素データを復元する復元手段をさらに備え、
前記水平フィルタは、前記復元手段により得られる画素データを利用して、前記第2のフィルタ領域内の水平エッジについてフィルタ処理を行う
ことを特徴とするデブロッキングフィルタ。
The following additional notes are further disclosed regarding the deblocking filter including each embodiment described above.
(Appendix 1)
A deblocking filter that performs filtering for each block obtained by dividing a picture of a moving image,
A first memory for storing pixel data of the picture read from a frame memory;
A horizontal filter that performs filtering on a horizontal edge in a first filter region corresponding to a first block of the picture;
A second memory for storing pixel data of a predetermined specific area in the first filter area after the filtering process by the horizontal filter;
A vertical filter that performs a filtering process on a vertical edge in the first filter region after the filtering process by the horizontal filter;
Transmission means for transmitting pixel data of the first filter area to the frame memory after the filtering process by the vertical filter;
The horizontal filter corresponds to a second block adjacent to the first block using pixel data stored in the first memory and pixel data stored in the second memory. A deblocking filter that performs a filtering process on a horizontal edge in a second filter region.
(Appendix 2)
The deblocking filter according to attachment 1, wherein
Replacement means for replacing the corresponding part of the pixel data read from the first memory with the pixel data read from the second memory;
The deblocking filter, wherein the horizontal filter performs a filtering process on a horizontal edge in the second filter region by using pixel data obtained by the replacement unit.
(Appendix 3)
The deblocking filter according to attachment 1, wherein
The deblocking filter, wherein the picture is an interlaced frame picture.
(Appendix 4)
The deblocking filter according to attachment 1, wherein
The deblocking filter is configured to perform filter processing in raster order.
The deblocking filter, wherein the second block is adjacent to the first block on the lower side.
(Appendix 5)
The deblocking filter according to attachment 1, wherein
The specific region is a region where a pixel adjacent to a vertical edge closest to the second block is located in the first filter region.
(Appendix 6)
The deblocking filter according to attachment 1, wherein
The horizontal filter corrects pixel data of pixels adjacent to a horizontal edge;
The deblocking filter, wherein the vertical filter corrects pixel data of a pixel adjacent to a vertical edge.
(Appendix 7)
A deblocking filter that performs filtering for each block obtained by dividing a picture of a moving image,
A first memory for storing pixel data of the picture read from a frame memory;
A horizontal filter that performs filtering on a horizontal edge in a first filter region corresponding to a first block of the picture;
A vertical filter that performs a filtering process on a vertical edge in the first filter region after the filtering process by the horizontal filter;
A second memory for storing a correction value by the vertical filter for pixel data adjacent to a predetermined vertical edge in the first filter region;
Transmission means for transmitting pixel data of the first filter area to the frame memory after the filtering process by the vertical filter;
The horizontal filter corresponds to a second block adjacent to the first block by using pixel data stored in the first memory and a correction value stored in the second memory. A deblocking filter that performs a filtering process on a horizontal edge in a second filter region.
(Appendix 8)
The deblocking filter according to appendix 7,
A restoration unit for restoring pixel data from the correction value read from the second memory;
The deblocking filter, wherein the horizontal filter performs a filtering process on a horizontal edge in the second filter region using pixel data obtained by the restoration unit.

実施形態のデブロッキングフィルタを搭載する動画像符号化装置の構成を示す図である。It is a figure which shows the structure of the moving image encoder which mounts the deblocking filter of embodiment. 実施形態のデブロッキングフィルタを搭載する動画像復号装置の構成を示す図である。It is a figure which shows the structure of the moving image decoding apparatus carrying the deblocking filter of embodiment. 実施形態のデブロッキングフィルタの構成を示す図である。It is a figure which shows the structure of the deblocking filter of embodiment. フィルタ演算部によるフィルタ処理の実施例である。It is an Example of the filter process by a filter calculating part. フィルタ処理の一例を示す図である。It is a figure which shows an example of a filter process. フィルタ対象領域を示す図である。It is a figure which shows a filter object area | region. 画像データを書き出す領域を示す図である。It is a figure which shows the area | region which writes image data. フィルタ処理の順番を説明する図である。It is a figure explaining the order of filter processing. 実施形態のデブロッキングフィルタ処理を説明する図である。It is a figure explaining the deblocking filter process of embodiment. 退避すべき画素データを説明する図である。It is a figure explaining the pixel data which should be saved. 実施形態のデブロッキングフィルタの処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the deblocking filter of embodiment. データの流れを示す図(その1)である。It is a figure (the 1) which shows the flow of data. データの流れを示す図(その2)である。It is a figure (the 2) which shows the flow of data. データの流れを示す図(その3)である。FIG. 6 is a third diagram illustrating the flow of data. データの流れを示す図(その4)である。It is FIG. (4) which shows the flow of data. データの流れを示す図(その5)である。FIG. 6 is a diagram (part 5) illustrating the flow of data. データの流れを示す図(その6)である。It is FIG. (6) which shows the flow of data. データの流れを示す図(その7)である。FIG. 10 is a diagram (No. 7) illustrating a data flow; 色差データについてのフィルタ処理を示す図である。It is a figure which shows the filter process about color difference data. 実施形態と従来技術との比較結果を示す表である。It is a table | surface which shows the comparison result of embodiment and a prior art. 他の実施形態のデブロッキングフィルタの処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the deblocking filter of other embodiment. 他の実施形態におけるデータの流れを示す図(その1)である。It is a figure (the 1) which shows the flow of the data in other embodiment. 他の実施形態におけるデータの流れを示す図(その2)である。It is FIG. (2) which shows the flow of the data in other embodiment. フィルタ処理のシーケンスを説明する図である。It is a figure explaining the sequence of a filter process. フィルタ処理に必要とされる画素データについて説明する図である。It is a figure explaining the pixel data required for a filter process. デブロッキングフィルタ処理の概要を説明する図である。It is a figure explaining the outline | summary of a deblocking filter process. インターレースフレームピクチャについて説明する図である。It is a figure explaining an interlace frame picture. デブロッキングフィルタの一例の構成を示す図である。It is a figure which shows the structure of an example of a deblocking filter. デブロッキングフィルタの演算結果の出力を説明する図である。It is a figure explaining the output of the calculation result of a deblocking filter. 非インターレースフレームピクチャのフィルタ処理を説明する図である。It is a figure explaining the filter process of a non-interlaced frame picture. インターレースフレームピクチャのフィルタ処理を説明する図である。It is a figure explaining the filter process of an interlace frame picture. 従来技術による外部メモリへのアクセス量をまとめた表である。It is the table | surface which summarized the access amount to the external memory by a prior art.

符号の説明Explanation of symbols

1 画素入力部
2 内部RAM
3 外部メモリ入出力部
4 水平フィルタ演算部
5 垂直フィルタ演算部
6 ローカルメモリ
7 ローカルメモリ制御部
8 RAMインタフェース
9 外部メモリ
10 デブロッキングフィルタ
20 動画像符号化装置
28 デブロッキングフィルタ
30 動画像復号装置
35 デブロッキングフィルタ
1 Pixel input unit 2 Internal RAM
3 External Memory Input / Output Unit 4 Horizontal Filter Operation Unit 5 Vertical Filter Operation Unit 6 Local Memory 7 Local Memory Control Unit 8 RAM Interface 9 External Memory 10 Deblocking Filter 20 Video Encoding Device 28 Deblocking Filter 30 Video Decoding Device 35 Deblocking filter

Claims (5)

動画像のピクチャを分割することにより得られるブロック毎にフィルタ処理を行うデブロッキングフィルタであって、
フレームメモリから読み出した前記ピクチャの画素データを格納する第1のメモリと、
前記ピクチャの第1のブロックに対応する第1のフィルタ領域内の水平エッジについてフィルタ処理を行う水平フィルタと、
前記水平フィルタによるフィルタ処理の後に、前記第1のフィルタ領域内の予め決められた特定領域の画素データを格納する第2のメモリと、
前記水平フィルタによるフィルタ処理の後に、前記第1のフィルタ領域内の垂直エッジについてフィルタ処理を行う垂直フィルタと、
前記垂直フィルタによるフィルタ処理の後に、前記第1のフィルタ領域の画素データを前記フレームメモリに送信する送信手段と、を備え、
前記水平フィルタは、前記第1のメモリに格納されている画素データおよび前記第2のメモリに格納されている画素データを利用して、前記第1のブロックに隣接する第2のブロックに対応する第2のフィルタ領域内の水平エッジについてフィルタ処理を行う
ことを特徴とするデブロッキングフィルタ。
A deblocking filter that performs filtering for each block obtained by dividing a picture of a moving image,
A first memory for storing pixel data of the picture read from a frame memory;
A horizontal filter that performs filtering on a horizontal edge in a first filter region corresponding to a first block of the picture;
A second memory for storing pixel data of a predetermined specific area in the first filter area after the filtering process by the horizontal filter;
A vertical filter that performs a filtering process on a vertical edge in the first filter region after the filtering process by the horizontal filter;
Transmission means for transmitting pixel data of the first filter area to the frame memory after the filtering process by the vertical filter;
The horizontal filter corresponds to a second block adjacent to the first block using pixel data stored in the first memory and pixel data stored in the second memory. A deblocking filter that performs a filtering process on a horizontal edge in a second filter region.
請求項1に記載のデブロッキングフィルタであって、
前記第2のメモリから読み出した画素データで、前記第1のメモリから読み出した画素データの対応する一部を置き換える置換え手段をさらに備え、
前記水平フィルタは、前記置換え手段により得られる画素データを利用して、前記第2のフィルタ領域内の水平エッジについてフィルタ処理を行う
ことを特徴とするデブロッキングフィルタ。
The deblocking filter according to claim 1,
Replacement means for replacing the corresponding part of the pixel data read from the first memory with the pixel data read from the second memory;
The deblocking filter, wherein the horizontal filter performs a filtering process on a horizontal edge in the second filter region by using pixel data obtained by the replacement unit.
請求項1に記載のデブロッキングフィルタであって、
前記特定領域は、前記第1のフィルタ領域内で前記第2のブロックに最も近い垂直エッジに隣接する画素が位置する領域である
ことを特徴とするデブロッキングフィルタ。
The deblocking filter according to claim 1,
The specific region is a region where a pixel adjacent to a vertical edge closest to the second block is located in the first filter region.
動画像のピクチャを分割することにより得られるブロック毎にフィルタ処理を行うデブロッキングフィルタであって、
フレームメモリから読み出した前記ピクチャの画素データを格納する第1のメモリと、
前記ピクチャの第1のブロックに対応する第1のフィルタ領域内の水平エッジについてフィルタ処理を行う水平フィルタと、
前記水平フィルタによるフィルタ処理の後に、前記第1のフィルタ領域内の垂直エッジについてフィルタ処理を行う垂直フィルタと、
前記第1のフィルタ領域内の予め決められた垂直エッジに隣接する画素データについての前記垂直フィルタによる補正値を格納する第2のメモリと、
前記垂直フィルタによるフィルタ処理の後に、前記第1のフィルタ領域の画素データを前記フレームメモリに送信する送信手段と、を備え、
前記水平フィルタは、前記第1のメモリに格納されている画素データおよび前記第2のメモリに格納されている補正値を利用して、前記第1のブロックに隣接する第2のブロックに対応する第2のフィルタ領域内の水平エッジについてフィルタ処理を行う
ことを特徴とするデブロッキングフィルタ。
A deblocking filter that performs filtering for each block obtained by dividing a picture of a moving image,
A first memory for storing pixel data of the picture read from a frame memory;
A horizontal filter that performs filtering on a horizontal edge in a first filter region corresponding to a first block of the picture;
A vertical filter that performs a filtering process on a vertical edge in the first filter region after the filtering process by the horizontal filter;
A second memory for storing a correction value by the vertical filter for pixel data adjacent to a predetermined vertical edge in the first filter region;
Transmission means for transmitting pixel data of the first filter area to the frame memory after the filtering process by the vertical filter;
The horizontal filter corresponds to a second block adjacent to the first block by using pixel data stored in the first memory and a correction value stored in the second memory. A deblocking filter that performs a filtering process on a horizontal edge in a second filter region.
請求項4に記載のデブロッキングフィルタであって、
前記第2のメモリから読み出した補正値から画素データを復元する復元手段をさらに備え、
前記水平フィルタは、前記復元手段により得られる画素データを利用して、前記第2の
フィルタ領域内の水平エッジについてフィルタ処理を行う
ことを特徴とするデブロッキングフィルタ。
The deblocking filter according to claim 4,
A restoration unit for restoring pixel data from the correction value read from the second memory;
The deblocking filter, wherein the horizontal filter performs a filtering process on a horizontal edge in the second filter region using pixel data obtained by the restoration unit.
JP2008045862A 2008-02-27 2008-02-27 Deblocking filter Expired - Fee Related JP4825230B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008045862A JP4825230B2 (en) 2008-02-27 2008-02-27 Deblocking filter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008045862A JP4825230B2 (en) 2008-02-27 2008-02-27 Deblocking filter

Publications (2)

Publication Number Publication Date
JP2009206714A JP2009206714A (en) 2009-09-10
JP4825230B2 true JP4825230B2 (en) 2011-11-30

Family

ID=41148566

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008045862A Expired - Fee Related JP4825230B2 (en) 2008-02-27 2008-02-27 Deblocking filter

Country Status (1)

Country Link
JP (1) JP4825230B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5183664B2 (en) * 2009-10-29 2013-04-17 財團法人工業技術研究院 Deblocking apparatus and method for video compression

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2673778B2 (en) * 1994-02-22 1997-11-05 国際電信電話株式会社 Noise reduction device for video decoding
JP2001036906A (en) * 1999-07-19 2001-02-09 Sony Corp Method and device for reducing block distortion
JP2002077914A (en) * 2000-08-31 2002-03-15 Matsushita Electric Ind Co Ltd Image decoder and image decoding method
JP4183993B2 (en) * 2002-07-16 2008-11-19 シャープ株式会社 Filter device
JP4270125B2 (en) * 2004-12-16 2009-05-27 ソニー株式会社 Data processing apparatus, image processing apparatus, method and program thereof
KR100771879B1 (en) * 2006-08-17 2007-11-01 삼성전자주식회사 Method of deblocking filtering decreasing inner memory storage and a video processing device using the method

Also Published As

Publication number Publication date
JP2009206714A (en) 2009-09-10

Similar Documents

Publication Publication Date Title
JP5763210B2 (en) Method and apparatus for improved loop-type filtering process
EP2708027B1 (en) Method and apparatus for reduction of in-loop filter buffer
EP3057320A1 (en) Method and apparatus of loop filters for efficient hardware implementation
US8711950B2 (en) Apparatus and method for adapted deblocking filtering strength
JP4455487B2 (en) Decoding device, decoding method, and program
US10306246B2 (en) Method and apparatus of loop filters for efficient hardware implementation
US20060133504A1 (en) Deblocking filters for performing horizontal and vertical filtering of video data simultaneously and methods of operating the same
JP4680608B2 (en) Image decoding apparatus and method
US11375199B2 (en) Interpolation filter for an inter prediction apparatus and method for video coding
US20120106624A1 (en) Method and Apparatus of Slice Boundary Filtering for High Efficiency Video Coding
JP4605052B2 (en) Moving picture encoding method, moving picture decoding method, moving picture encoding apparatus, moving picture decoding apparatus, filter apparatus, and program
CN113596482B (en) Loop filter implementation method and device and computer storage medium
US20050281339A1 (en) Filtering method of audio-visual codec and filtering apparatus
WO2009123033A1 (en) Deblocking filter processing device and deblocking filter processing method
JPWO2008090793A1 (en) Image re-encoding device, image re-encoding method, and image re-encoding program
JP2007150913A (en) Image encoding device
US11962786B2 (en) Multi-stage block coding
JP3540855B2 (en) Block distortion corrector
EP3949424A1 (en) Method and apparatus of encoding or decoding with mode dependent intra smoothing filter in intra prediction
JP4825230B2 (en) Deblocking filter
KR20050121627A (en) Filtering method of audio-visual codec and filtering apparatus thereof
JP2007258882A (en) Image decoder
JP2006270851A (en) Image coding device and image decoding device
JP2005311512A (en) Error concealment method and decoder
JPH09149417A (en) Dynamic image signal decoder

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101018

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110829

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110906

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110909

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140916

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees