JP2005064845A - Data processing circuit - Google Patents

Data processing circuit Download PDF

Info

Publication number
JP2005064845A
JP2005064845A JP2003292208A JP2003292208A JP2005064845A JP 2005064845 A JP2005064845 A JP 2005064845A JP 2003292208 A JP2003292208 A JP 2003292208A JP 2003292208 A JP2003292208 A JP 2003292208A JP 2005064845 A JP2005064845 A JP 2005064845A
Authority
JP
Japan
Prior art keywords
interpolation
data
storage memory
horizontal
result storage
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.)
Pending
Application number
JP2003292208A
Other languages
Japanese (ja)
Inventor
Hideki Ishii
秀樹 石井
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003292208A priority Critical patent/JP2005064845A/en
Publication of JP2005064845A publication Critical patent/JP2005064845A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To reduce increases of a chip area and a cost in a pixel interpolation operation caused by possessing a large capacity memory for a bidirectional interpolation operation, a large capacity memory for storing final computation results after the final interpolation, and an address generator for controlling read/write of memory data respectively inside a circuit. <P>SOLUTION: An output control unit 30 consisting of a counter 23, a decoder 25 and a shift register 28 is provided. The empty region of a final interpolation result storage memory 20 for storing the final computation results of the pixel interpolation operation is used also as a vertical interpolation calculation result storage memory. In addition, a method of writing data into the memory 20 is devised so that forward prediction data 35 stored in the memory 20 is read with the timing aligned with the output of backward prediction data from a horizontal/vertical interpolation computing unit 13. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明はDVDプレーヤ、DVD−ROM、ディジタルテレビ(DTV)やディジタル衛星放送用セットトップボックス(STB)のような画像圧縮伸長の国際標準方式であるMPEG2を用いた情報家電やコンピュータにおいて、圧縮されたデータを伸長するデコード処理における画素間補間処理演算のデータ処理回路に関し、特に内部メモリの記憶容量の削減を図ったものに関するものである。   The present invention is compressed in information home appliances and computers using MPEG2, which is an international standard system for image compression / decompression, such as a DVD player, DVD-ROM, digital television (DTV) and digital satellite broadcasting set-top box (STB). In particular, the present invention relates to a data processing circuit for inter-pixel interpolation processing in a decoding process for expanding data, and particularly to a circuit for reducing the storage capacity of an internal memory.

近年、DVDプレーヤを初め、ディジタルテレビやディジタル衛星放送用セットトップボックス等マルチメディア分野における情報家電、及びコンピュータの需要が急伸している。これらの製品では、蓄積メディアにデータを格納したり、電送網を使用して効率よくデータ送信するためにデータ圧縮伸長の国際標準方式であるMPEG2に代表されるデータ圧縮伸長技術が利用されている。データ圧縮伸長技術では、圧縮したデータから高品質のデータを復元させるために水平方向や垂直方向に隣接する画素間、あるいは時間的に隣接する画素,画像間で補間処理を行う。   In recent years, demand for information home appliances and computers in the multimedia field such as DVD players, digital televisions and digital satellite broadcasting set-top boxes has been rapidly increasing. In these products, a data compression / decompression technique represented by MPEG2, which is an international standard method for data compression / decompression, is used to store data in a storage medium or efficiently transmit data using a transmission network. . In the data compression / decompression technique, in order to restore high quality data from compressed data, interpolation processing is performed between pixels adjacent in the horizontal and vertical directions, or between temporally adjacent pixels and images.

こうしたMPEG2を用いたデータ処理回路における画素間補間演算では、LSIの需要に応じて半導体の処理スピードの高速化、及びLSIの小チップ化、回路面積の小面積化が求められる。特に、SDTVよりもさらに高精細画質であるHDTVへ画像の高画質化が進むにつれて処理するデータ量が増大し、それに伴い回路内部で使用するメモリ量も増大する傾向にある。このように、チップ面積の増大が回路面積、LSIのチップ面積を左右するため、回路面積の削減、及びコストメリットの観点からメモリ容量の削減が求められている。   In the inter-pixel interpolation calculation in the data processing circuit using MPEG2, it is required to increase the processing speed of the semiconductor, reduce the chip size of the LSI, and reduce the area of the circuit according to the demand of the LSI. In particular, the amount of data to be processed increases as the image quality of the HDTV, which has higher definition image quality than that of the SDTV, increases, and the amount of memory used in the circuit tends to increase accordingly. As described above, since the increase in the chip area affects the circuit area and the chip area of the LSI, a reduction in the memory capacity is required from the viewpoint of a reduction in the circuit area and cost merit.

以下に、例えば、特開平10−32821号公報に記載された従来のデータ処理回路について説明する。図2は、従来のデータ処理回路の構成を示すブロック図である。図において、69はデータ処理回路を示す。データ処理回路69において、37は入力データ格納メモリであり、復元される前の圧縮された画素データが格納されている。データ処理回路は、この圧縮されたデータに対して画素間補間演算を行う。   The conventional data processing circuit described in, for example, Japanese Patent Laid-Open No. 10-32821 will be described below. FIG. 2 is a block diagram showing a configuration of a conventional data processing circuit. In the figure, reference numeral 69 denotes a data processing circuit. In the data processing circuit 69, reference numeral 37 denotes an input data storage memory which stores compressed pixel data before being restored. The data processing circuit performs an inter-pixel interpolation operation on the compressed data.

38は回路外部より与えられる動きベクトル、39はY/C識別信号であり、入力データ格納メモリ37に格納されている画素データが、輝度信号Yであるか色差信号Cであるかを示している。   38 is a motion vector given from the outside of the circuit, 39 is a Y / C identification signal, and indicates whether the pixel data stored in the input data storage memory 37 is the luminance signal Y or the color difference signal C. .

40、及び41は垂直方向補間フラグ、及び水平方向補間フラグであり、入力データ格納メモリ37に格納されている画素データに対して垂直方向補間処理を行うか水平方向補間処理を行うかを示している。   Reference numerals 40 and 41 denote a vertical direction interpolation flag and a horizontal direction interpolation flag, which indicate whether to perform vertical direction interpolation processing or horizontal direction interpolation processing on pixel data stored in the input data storage memory 37. Yes.

42は、入力データ格納メモリ37にデータを格納あるいはデータの読み出しを行うためのメモリアドレス43、及び制御信号44を生成する入力データ格納メモリアドレスジェネレータである。   An input data storage memory address generator 42 generates a memory address 43 for storing data in or reading data from the input data storage memory 37 and a control signal 44.

43及び44は、入力データ格納メモリアドレスジェネレータ42より出力される入力データ格納メモリアドレス、入力データ格納メモリ制御信号であり、入力データ格納メモリ37へは、入力データ格納メモリアドレス43及び入力データ格納メモリ制御信号44に従ってデータの格納、読み出しが行われる。   Reference numerals 43 and 44 denote input data storage memory addresses and input data storage memory control signals output from the input data storage memory address generator 42. The input data storage memory 37 is supplied with the input data storage memory address 43 and the input data storage memory. Data is stored and read according to the control signal 44.

45は、データ処理回路を含むシステム全体の基本タイミングを与えるシステムクロックを示しており、このシステムクロックは、回路外部より回路内部へ入力されている。46は、入力データ格納メモリ37から読み出された入力データであり、水平・垂直方向補間演算器48に入力される。   Reference numeral 45 denotes a system clock that provides basic timing of the entire system including the data processing circuit. This system clock is input from the outside of the circuit to the inside of the circuit. Reference numeral 46 denotes input data read from the input data storage memory 37 and is input to the horizontal / vertical direction interpolation calculator 48.

49は、回路外部より与えられる双方向補間演算を行うかどうかを示す双方向補間モードフラグである。双方向補間演算とは、時間的に前に位置する前方予測データと時間的に後に位置する後方予測データとの間の補間処理演算のことをいう。水平・垂直方向補間演算器48は、垂直方向補間フラグ40、及び水平方向補間フラグ41に従って水平・垂直方向補間演算を行う。水平・垂直方向補間処理とは、水平方向に隣接する画素間、及び垂直方向に隣接する画素間の補間処理を意味する。   Reference numeral 49 denotes a bidirectional interpolation mode flag indicating whether or not to perform a bidirectional interpolation calculation given from the outside of the circuit. Bidirectional interpolation calculation refers to an interpolation processing calculation between forward prediction data positioned in front of time and backward prediction data positioned in time. The horizontal / vertical direction interpolation calculator 48 performs horizontal / vertical direction interpolation calculation according to the vertical direction interpolation flag 40 and the horizontal direction interpolation flag 41. The horizontal / vertical direction interpolation processing means interpolation processing between pixels adjacent in the horizontal direction and between pixels adjacent in the vertical direction.

50は、水平方向補間演算結果格納メモリであり、輝度信号Yで16画素x2x8ビットライン分、色差信号Cで8画素x2ラインx8ビット分の容量を有し、水平方向補間演算結果を格納する。水平方向補間演算結果格納メモリ50に格納されたデータは、垂直方向補間演算を行う際、輝度信号Yで16画素x8ビット分、色差信号Cで8画素x8ビット分のデータを格納したデータ順にデータ出力を行う。51は、水平方向補間演算結果格納メモリアドレスジェネレータであり、水平方向補間演算結果格納メモリ50のメモリアドレス52、メモリ制御信号53を生成し、水平方向補間演算結果格納メモリ50へ出力を行う。   Reference numeral 50 denotes a horizontal direction interpolation calculation result storage memory, which has a capacity of 16 pixels × 2 × 8 bit lines for the luminance signal Y and 8 pixels × 2 lines × 8 bits for the color difference signal C, and stores the horizontal direction interpolation calculation results. The data stored in the horizontal direction interpolation calculation result storage memory 50 is data in the order in which data for 16 pixels x 8 bits is stored in the luminance signal Y and data for 8 pixels x 8 bits is stored in the color difference signal C when performing the vertical direction interpolation calculation. Output. A horizontal interpolation calculation result storage memory address generator 51 generates a memory address 52 and a memory control signal 53 of the horizontal interpolation calculation result storage memory 50, and outputs them to the horizontal interpolation calculation result storage memory 50.

54は垂直方向補間用データであり、垂直方向補間処理を行う場合、垂直方向に上下2ライン間で垂直方向補間処理を行うための1ラインデータである。垂直方向補間処理されない場合は、垂直方向補間処理を行う場合の垂直方向補間用データ54は、垂直方向補間処理演算を行う際、1ライン単位で水平方向補間演算結果格納メモリ50に順次格納される。そして、水平・垂直方向補間演算器48で水平方向補間演算結果格納メモリ50に格納されているデータの1ライン後のデータの水平方向補間処理が終了するタイミングに合わせて、水平方向補間演算結果格納メモリ50より読み出され、水平・垂直方向補間演算器48にて垂直方向補間処理演算が行われる。   Reference numeral 54 denotes data for vertical direction interpolation, which is one line data for performing vertical direction interpolation processing between two upper and lower lines in the vertical direction when performing vertical direction interpolation processing. When the vertical direction interpolation processing is not performed, the vertical direction interpolation data 54 when the vertical direction interpolation processing is performed is sequentially stored in the horizontal direction interpolation calculation result storage memory 50 in units of one line when performing the vertical direction interpolation processing calculation. . Then, the horizontal interpolation calculation result is stored at the timing when the horizontal interpolation processing of the data one line after the data stored in the horizontal interpolation calculation result storage memory 50 by the horizontal / vertical interpolation calculator 48 is completed. The data is read from the memory 50, and the vertical / vertical interpolation calculator 48 performs vertical interpolation processing calculation.

55は、水平・垂直方向補間演算部であり、水平方向補間演算結果格納メモリ50、水平・垂直方向補間演算器48、及び水平方向補間演算結果格納メモリアドレスジェネレータ51から構成される。   A horizontal / vertical direction interpolation calculation unit 55 includes a horizontal direction interpolation calculation result storage memory 50, a horizontal / vertical direction interpolation calculator 48, and a horizontal direction interpolation calculation result storage memory address generator 51.

56は、水平・垂直方向補間演算器48より出力される水平垂直方向補間処理データであり、水平垂直方向補間処理後のデータである。水平垂直方向補間処理データ56は、双方向補間モードフラグ49により双方向補間処理を行う場合、双方向補間演算器57、及び垂直方向補間演算結果格納メモリ58へ入力される。   Reference numeral 56 denotes horizontal / vertical interpolation processing data output from the horizontal / vertical interpolation calculator 48, which is data after the horizontal / vertical interpolation processing. The horizontal / vertical interpolation processing data 56 is input to the bidirectional interpolation calculator 57 and the vertical interpolation calculation result storage memory 58 when bidirectional interpolation processing is performed by the bidirectional interpolation mode flag 49.

双方向補間モードフラグ49が、双方向補間処理モード以外の場合、水平垂直方向補間処理データ56は、双方向補間演算器57へのみ入力される。垂直方向補間演算結果格納メモリ58へは入力されない。   When the bidirectional interpolation mode flag 49 is other than the bidirectional interpolation processing mode, the horizontal / vertical interpolation processing data 56 is input only to the bidirectional interpolation calculator 57. It is not input to the vertical interpolation calculation result storage memory 58.

垂直方向補間演算結果格納メモリ58は、16画素x16ラインx8ビット分のメモリ容量を有し、双方向補間処理を行う場合にのみ、時間的に前に位置する1マクロブロック分の前方予測データを蓄える。59は、垂直方向補間演算結果格納メモリ58より出力される前方予測データであり、双方向補間演算器57へ入力される。   The vertical direction interpolation calculation result storage memory 58 has a memory capacity of 16 pixels × 16 lines × 8 bits, and only when performing bi-directional interpolation processing, forward prediction data for one macroblock positioned in front in time. store. 59 is forward prediction data output from the vertical direction interpolation calculation result storage memory 58 and is input to the bidirectional interpolation calculator 57.

60は、垂直方向補間演算結果格納メモリアドレスジェネレータであり、双方向補間モードフラグ49に従って、垂直方向補間演算結果格納メモリ58に前方予測データを格納するための垂直方向補間演算結果格納メモリアドレス61、及び垂直方向補間演算結果格納メモリ制御信号62を生成し、垂直方向補間演算結果格納メモリ58へ出力する。双方向補間演算器57は、双方向補間モードフラグ49に従って、双方向補間処理モードの場合にのみ水平・垂直方向補間演算器48から送られてくる、時間的に後に位置する後方予測データ1マクロブロックデータと、垂直方向補間演算結果格納メモリ58から出力される前方予測データ59との間で双方向補間演算を行う。双方向補間処理モード以外の場合は、双方向補間演算器57は、補間処理は行なわず、水平垂直方向補間処理データ56をそのまま出力する。   Reference numeral 60 denotes a vertical interpolation calculation result storage memory address generator, and a vertical interpolation calculation result storage memory address 61 for storing forward prediction data in the vertical interpolation calculation result storage memory 58 according to the bidirectional interpolation mode flag 49. The vertical interpolation calculation result storage memory control signal 62 is generated and output to the vertical interpolation calculation result storage memory 58. The bi-directional interpolation calculator 57 is sent from the horizontal / vertical direction interpolation calculator 48 only in the bi-directional interpolation processing mode according to the bi-directional interpolation mode flag 49. Bidirectional interpolation calculation is performed between the block data and the forward prediction data 59 output from the vertical interpolation calculation result storage memory 58. In a mode other than the bidirectional interpolation processing mode, the bidirectional interpolation calculator 57 does not perform the interpolation processing and outputs the horizontal / vertical direction interpolation processing data 56 as it is.

63は、双方向補間演算部であり、双方向補間演算器57、垂直方向補間演算結果格納メモリ58及び垂直方向補間演算結果格納メモリアドレスジェネレータ60から構成される。   Reference numeral 63 denotes a bidirectional interpolation calculation unit, which includes a bidirectional interpolation calculator 57, a vertical direction interpolation calculation result storage memory 58, and a vertical direction interpolation calculation result storage memory address generator 60.

64は、最終出力データであり、水平、垂直、双方向補間処理済み、あるいは、全く補間処理されていないデータである。水平、垂直、双方向補間処理済み、あるいは、全く補間処理されていないデータであるかは、垂直方向補間フラグ40、水平方向補間フラグ41、双方向補間モードフラグ49による。   Reference numeral 64 denotes final output data, which is data that has undergone horizontal, vertical, and bi-directional interpolation processing, or has not been interpolated at all. Whether the data has been subjected to the horizontal, vertical, and bidirectional interpolation processing or has not been subjected to any interpolation processing depends on the vertical direction interpolation flag 40, the horizontal direction interpolation flag 41, and the bidirectional interpolation mode flag 49.

65は、最終補間結果格納メモリであり、双方向補間演算器57から出力される補間処理データ64を順次格納する。最終補間結果格納メモリ65、16画素x24ラインx8ビットのメモリ容量をもち、データ処理回路における最終の補間演算結果を格納する。輝度信号Yと色差信号Cのそれぞれ1マクロブロック分のデータ容量を持つ。   A final interpolation result storage memory 65 sequentially stores the interpolation processing data 64 output from the bidirectional interpolation calculator 57. The final interpolation result storage memory 65 has a memory capacity of 16 pixels × 24 lines × 8 bits, and stores the final interpolation calculation result in the data processing circuit. Each of the luminance signal Y and the color difference signal C has a data capacity of one macro block.

66は、最終補間結果格納メモリアドレスジェネレータであり、最終補間結果格納メモリ65にデータ処理回路における最終の画素間補間処理データ64を格納するためのメモリアドレス、及びメモリ制御信号68を生成し、最終補間結果格納メモリ65へ出力する。   A final interpolation result storage memory address generator 66 generates a memory address and a memory control signal 68 for storing the final inter-pixel interpolation processing data 64 in the data processing circuit in the final interpolation result storage memory 65. Output to the interpolation result storage memory 65.

67、68は、上記最終補間結果格納メモリアドレスジェネレータ66から出力される最終補間結果格納メモリアドレス、最終補間結果格納メモリアドレス制御信号である。   Reference numerals 67 and 68 denote a final interpolation result storage memory address and a final interpolation result storage memory address control signal output from the final interpolation result storage memory address generator 66.

図2に示すように、データ処理回路69は、入力データ格納メモリ37、入力データ格納メモリアドレスジェネレータ42、水平・垂直方向補間演算部55、双方向補間演算部63、最終補間結果格納メモリアドレスジェネレータ66、及び最終補間結果格納メモリ65から構成されている。   As shown in FIG. 2, the data processing circuit 69 includes an input data storage memory 37, an input data storage memory address generator 42, a horizontal / vertical direction interpolation calculation unit 55, a bidirectional interpolation calculation unit 63, and a final interpolation result storage memory address generator. 66 and a final interpolation result storage memory 65.

上記のように構成された従来のデータ処理回路における動作について説明する。まず、水平・垂直方向補間演算器48は、入力データ格納メモリ37から順次データを読み出し、データ処理回路69の外部から与えられる水平方向補間フラグ41に従い水平方向補間処理を行う。   The operation of the conventional data processing circuit configured as described above will be described. First, the horizontal / vertical direction interpolation calculator 48 sequentially reads data from the input data storage memory 37 and performs horizontal direction interpolation processing according to a horizontal direction interpolation flag 41 given from the outside of the data processing circuit 69.

続いて、外部より与えられる垂直方向補間フラグ40に従い垂直方向補間処理を行うが、この場合、垂直方向補間処理されるデータは、水平方向補間演算結果格納メモリアドレスジェネレータ51から与えられる水平方向補間演算結果格納メモリアドレス52、及び水平方向補間演算結果格納メモリ制御信号53に従って、一旦、水平方向補間演算結果格納メモリ50に順次格納される。この水平方向補間演算結果格納メモリ50には、データが輝度信号Yの場合は、16画素分x2ライン分、色差信号Cの場合は、8画素分x2ライン分の水平方向補間処理されたデータが格納される。   Subsequently, vertical direction interpolation processing is performed according to the vertical direction interpolation flag 40 given from the outside. In this case, the data subjected to the vertical direction interpolation processing is the horizontal direction interpolation calculation given from the horizontal direction interpolation calculation result storage memory address generator 51. In accordance with the result storage memory address 52 and the horizontal direction interpolation calculation result storage memory control signal 53, they are temporarily stored in the horizontal direction interpolation calculation result storage memory 50 once. In the horizontal direction interpolation calculation result storage memory 50, when the data is the luminance signal Y, the data subjected to the horizontal direction interpolation processing for 16 pixels x 2 lines, and for the color difference signal C, the data subjected to the horizontal direction interpolation for 8 pixels x 2 lines are stored. Stored.

上記水平・垂直方向補間演算器48は水平方向補間演算結果格納メモリ50に格納された1ラインの直下段1ラインのデータに対する水平方向補間処理が終了すると、水平方向補間演算結果格納メモリ50に格納されている16画素あるいは8画素のデータを順次読み出し、垂直方向に隣接する2ライン間の上下2画素間で垂直方向補間処理を行う。   The horizontal / vertical direction interpolation calculator 48 stores in the horizontal direction interpolation calculation result storage memory 50 when the horizontal direction interpolation processing for the data of one line immediately below one line stored in the horizontal direction interpolation calculation result storage memory 50 is completed. The 16-pixel or 8-pixel data is sequentially read and vertical interpolation processing is performed between the upper and lower two pixels between two adjacent lines in the vertical direction.

次に、外部より与えられる双方向補間モードフラグ49により双方向補間を行う場合、水平垂直方向補間処理されたデータである水平垂直方向補間処理データ56は、一旦、垂直方向補間演算結果格納メモリアドレスジェネレータ60から与えられる垂直方向補間演算結果格納メモリアドレス61、及び垂直方向補間演算結果格納メモリ制御信号62に従って垂直方向補間演算結果格納メモリ58に1マクロブロック分のデータが格納される。この垂直方向補間演算結果格納メモリ58には、時間的に前に位置する前方予測データが1マクロブロック分格納される。垂直方向補間演算結果格納メモリ58に輝度信号Y、あるいは色差信号Cの1マクロブロック分のデータが格納された後、垂直方向補間演算結果格納メモリ58より前方予測データ59を順次読み出し、これと、水平・垂直方向補間演算器48から出力される水平、垂直方向補間処理後の時間的に後に位置する後方予測データとの間で双方向補間処理を行う。   Next, when bi-directional interpolation is performed using a bi-directional interpolation mode flag 49 given from the outside, the horizontal / vertical interpolation processing data 56, which is the data subjected to the horizontal / vertical interpolation processing, is temporarily stored in the vertical interpolation calculation result storage memory address. Data for one macroblock is stored in the vertical interpolation calculation result storage memory 58 in accordance with the vertical direction interpolation calculation result storage memory address 61 and the vertical direction interpolation calculation result storage memory control signal 62 given from the generator 60. This vertical direction interpolation calculation result storage memory 58 stores one macroblock of the forward prediction data positioned in front of time. After the data for one macroblock of the luminance signal Y or the color difference signal C is stored in the vertical direction interpolation calculation result storage memory 58, the forward prediction data 59 is sequentially read out from the vertical direction interpolation calculation result storage memory 58, Bidirectional interpolation processing is performed between the horizontal / vertical direction interpolation calculator 48 and the backward prediction data positioned after the horizontal and vertical direction interpolation processing.

双方向補間モードフラグ49により双方向補間を行なわない場合、水平垂直方向補間処理データ56は、垂直方向補間演算結果格納メモリ58に前方予測データを格納することなく、双方向補間演算器57にのみ入力される。   When bi-directional interpolation is not performed by the bi-directional interpolation mode flag 49, the horizontal / vertical interpolation processing data 56 is stored only in the bi-directional interpolation calculator 57 without storing the forward prediction data in the vertical interpolation calculation result storage memory 58. Entered.

双方向補間演算器57に入力された水平垂直方向補間処理データ56は、双方向補間演算器57で補間処理を行わず、双方向補間演算器57から出力される。   The horizontal / vertical interpolation processing data 56 input to the bidirectional interpolation calculator 57 is output from the bidirectional interpolation calculator 57 without being subjected to interpolation processing by the bidirectional interpolation calculator 57.

双方向補間演算器57から出力される水平、垂直、及び双方向補間処理結果である補間処理データ64は、最終補間結果格納メモリアドレスジェネレータ66より与えられる最終補間結果格納メモリアドレス67、及び最終補間結果格納メモリ制御信号71に従って、最終補間結果格納メモリ65に格納される。最終補間結果格納メモリ65には、水平、垂直、及び双方向補間処理されたデータ、16画素x24ラインx8ビットのデータが格納される。
特開平10−32821号公報
Interpolation processing data 64, which is a horizontal, vertical, and bidirectional interpolation processing result output from the bidirectional interpolation calculator 57, is a final interpolation result storage memory address 67 given by a final interpolation result storage memory address generator 66, and a final interpolation. In accordance with the result storage memory control signal 71, it is stored in the final interpolation result storage memory 65. The final interpolation result storage memory 65 stores data subjected to horizontal, vertical, and bi-directional interpolation processing, and data of 16 pixels × 24 lines × 8 bits.
Japanese Patent Laid-Open No. 10-32821

従来のデータ処理回路は以上のように構成されており、時間的に前に位置する前方予測データと、時間的に後に位置する後方予測データとの間で双方向補間演算を行う場合、時間的に前に位置する前方予測データ1マクロブロック分である、16画素x16画素x8ビットを一旦、垂直方向補間演算結果格納メモリに格納し、時間的に後に位置する後方予測データが水平・垂直方向補間演算器から送られて来るタイミングに同期して垂直方向補間演算結果格納メモリに格納しておいた前方予測データを順次読み出し、双方向補間演算器にて双方向補間演算を行うことになる。このように、回路内部に双方向補間演算を行うための大容量メモリ、最終の補間処理後の最終演算結果を格納する大容量メモリ、及びメモリのデータの読み出し・書込みを制御するためのアドレスジェネレータをそれぞれ所有しなければならず、チップ面積が増大し、コスト的にも有利ではないという課題を有していた。   The conventional data processing circuit is configured as described above, and when performing bi-directional interpolation between forward prediction data that is temporally forward and backward prediction data that is temporally subsequent, 16 pixels × 16 pixels × 8 bits, which are one macroblock of the forward prediction data positioned before, are temporarily stored in the vertical interpolation calculation result storage memory, and the backward prediction data positioned later in time is horizontal / vertical interpolation The forward prediction data stored in the vertical interpolation calculation result storage memory is sequentially read in synchronization with the timing sent from the calculator, and the bidirectional interpolation calculator performs the bidirectional interpolation calculation. Thus, a large-capacity memory for performing bidirectional interpolation operation in the circuit, a large-capacity memory for storing the final calculation result after the final interpolation processing, and an address generator for controlling reading / writing of data in the memory Each has to be owned, which increases the chip area and is not advantageous in terms of cost.

さらに、画素間補間演算の場合、予測モードによっては、双方向補間演算を必要としない場合があるため、双方向補間演算をしないモードの場合、双方向補間用のメモリは必要なく、水平・垂直方向補間演算器から出力された水平垂直方向補間処理データは、そのまま双方向補間演算器を経由して最終補間結果格納メモリに格納されることになる。このように、予測モードによっては使用しないにも関わらず、回路内部に前記大容量の双方向補間演算用のメモリ、及びアドレスジェネレータを所有しなければならず回路的に冗長になってしまうという欠点も有していた。   Furthermore, in the case of inter-pixel interpolation calculation, bi-directional interpolation calculation may not be required depending on the prediction mode. Therefore, in the mode not performing bi-directional interpolation calculation, no memory for bi-directional interpolation is required, and horizontal and vertical The horizontal / vertical direction interpolation processing data output from the direction interpolation calculator is stored in the final interpolation result storage memory via the bidirectional interpolation calculator as it is. In this way, although not used depending on the prediction mode, it is necessary to own the large-capacity bidirectional interpolation calculation memory and the address generator in the circuit, which makes the circuit redundant. Also had.

本発明は、以上のような問題点を解消するためになされたもので、内部メモリの記憶容量を増大させることなく、双方向補間処理を行うことができるデータ処理回路を提供することを目的とする。   The present invention has been made to solve the above problems, and an object of the present invention is to provide a data processing circuit capable of performing bidirectional interpolation processing without increasing the storage capacity of an internal memory. To do.

本発明の請求項1にかかるデータ処理回路は、圧縮されたデータを伸長するデコード処理における画素間補間処理演算を行うデータ処理回路において、外部メモリから出力されたバーストデータが入力される入力データ格納メモリと、上記バーストデータから必要データのみを入力データ格納メモリへ書き込むように制御する入力データ格納メモリアドレスジェネレータと、水平、及び垂直方向補間演算を実行する水平・垂直方向補間演算器と、垂直方向補間演算を行うために水平方向補間演算結果を格納する水平方向補間演算結果格納メモリと、前方予測データと後方予測データ間で双方向補間演算を行う双方向補間演算器と、双方向補間演算を行う際、前方予測データ、及び双方向補間演算結果を格納する最終補間結果格納メモリと、上記水平・垂直方向補間演算器からの後方予測データ出力タイミングに合わせて上記最終補間結果格納メモリから上記前方予測データを読み出す出力制御部と、を備えたものである。   According to a first aspect of the present invention, there is provided a data processing circuit for performing inter-pixel interpolation processing in a decoding process for decompressing compressed data, and for storing input data into which burst data output from an external memory is input. A memory, an input data storage memory address generator that controls to write only necessary data from the burst data to the input data storage memory, a horizontal / vertical interpolation calculator that performs horizontal and vertical interpolation calculations, and a vertical direction A horizontal interpolation calculation result storage memory for storing horizontal interpolation calculation results for performing interpolation calculation, a bidirectional interpolation calculator for performing bidirectional interpolation between forward prediction data and backward prediction data, and bidirectional interpolation calculation When performing, the final interpolation result storage memory for storing the forward prediction data and the bidirectional interpolation calculation result, It is obtained and an output control section for reading out the forward predictive data from the final interpolation result storage memory in accordance with the backward prediction data output timing of the horizontal and vertical direction interpolation calculator.

また、本発明の請求項2にかかるデータ処理回路は、請求項1記載のデータ処理回路において、上記出力制御部は、上記水平・垂直方向補間演算器からの後方予測データ出力タイミングに合わせて上記最終補間結果格納メモリから上記前方予測データを読み出すカウンタと、上記カウンタの値をデコードするデコーダと、双方向補間処理データをデータアラインするためのシフトレジスタと、から構成したものである。   A data processing circuit according to a second aspect of the present invention is the data processing circuit according to the first aspect, wherein the output control unit is arranged in accordance with a backward prediction data output timing from the horizontal / vertical direction interpolation calculator. The counter comprises a counter for reading out the forward prediction data from the final interpolation result storage memory, a decoder for decoding the counter value, and a shift register for data alignment of the bidirectional interpolation processing data.

本発明(請求項1)にかかるデータ処理回路は、圧縮されたデータを伸長するデコード処理における画素間補間処理演算を行うデータ処理回路において、外部メモリから出力されたバーストデータが入力される入力データ格納メモリと、上記バーストデータから必要データのみを入力データ格納メモリへ書き込むように制御する入力データ格納メモリアドレスジェネレータと、水平、及び垂直方向補間演算を実行する水平・垂直方向補間演算器と、垂直方向補間演算を行うために水平方向補間演算結果を格納する水平方向補間演算結果格納メモリと、前方予測データと後方予測データ間で双方向補間演算を行う双方向補間演算器と、双方向補間演算を行う際、前方予測データ、及び双方向補間演算結果を格納する最終補間結果格納メモリと、上記水平・垂直方向補間演算器からの後方予測データ出力タイミングに合わせて上記最終補間結果格納メモリから上記前方予測データを読み出す出力制御部と、を備えたので、双方向補間演算器からの出力データを固定長のデータに揃えるとともに最終補間結果格納メモリへのデータ書き込み、及び最終補間結果格納メモリからのデータ読み出しタイミングを制御することにより、最終補間結果格納メモリからのデータライト動作とデータリード動作、及び双方向補間演算を効率よく実行することが可能となるという効果がある。また、双方向補間演算を行う場合、前方予測データを一旦格納するメモリと水平、垂直、双方向補間演算後の最終演算結果を格納するメモリとを共用することにより、従来、双方向補間演算の実施の有無に関わらず、それぞれ1マクロブロック分ずつ要していたメモリ容量を半減させることが可能となり、この結果、内部のメモリ容量を有効に使用することが可能となり、回路構成の冗長度、及び回路面積の削減を図ることができ、小メモリ容量で、かつ小面積な画素間補間演算を実行するデータ処理回路を提供することができる効果が得られる。   A data processing circuit according to the present invention (invention 1) is a data processing circuit that performs an inter-pixel interpolation processing operation in a decoding process that decompresses compressed data. Input data to which burst data output from an external memory is input A storage memory, an input data storage memory address generator that controls to write only necessary data from the burst data to the input data storage memory, a horizontal / vertical interpolation calculator that performs horizontal and vertical interpolation calculations, and a vertical Horizontal interpolation calculation result storage memory for storing horizontal interpolation calculation results to perform directional interpolation calculation, bidirectional interpolation calculator for performing bidirectional interpolation calculation between forward prediction data and backward prediction data, and bidirectional interpolation calculation A final interpolation result storage memory for storing forward prediction data and a bidirectional interpolation calculation result, An output control unit that reads the forward prediction data from the final interpolation result storage memory in accordance with the output timing of the backward prediction data from the horizontal / vertical direction interpolation arithmetic unit. Data write operation and data read operation from the final interpolation result storage memory by controlling the data write timing to the final interpolation result storage memory and the data read timing from the final interpolation result storage memory. In addition, there is an effect that the bidirectional interpolation calculation can be executed efficiently. In addition, when performing bi-directional interpolation calculation, the memory for temporarily storing the forward prediction data and the memory for storing the final calculation result after the horizontal, vertical, and bi-directional interpolation calculations are shared. Regardless of whether or not it is implemented, it is possible to halve the memory capacity required for each macroblock, and as a result, the internal memory capacity can be used effectively, the redundancy of the circuit configuration, In addition, the circuit area can be reduced, and a data processing circuit that performs a pixel-to-pixel interpolation operation with a small memory capacity and a small area can be provided.

また、本発明(請求項2)にかかるデータ処理回路は、請求項1記載のデータ処理回路において、上記出力制御部は、上記水平・垂直方向補間演算器からの後方予測データ出力タイミングに合わせて上記最終補間結果格納メモリから上記前方予測データを読み出すカウンタと、上記カウンタの値をデコードするデコーダと、双方向補間処理データを固定長のデータに揃える処理をする、データアラインのためのシフトレジスタと、から構成したので、データ書き込み、及び最終補間結果格納メモリからのデータ読み出しタイミングを制御することにより、最終補間結果格納メモリからのデータライト動作とデータリード動作、及び双方向補間演算を効率よく実行することができる効果が得られる。   A data processing circuit according to the present invention (Claim 2) is the data processing circuit according to Claim 1, wherein the output control unit is synchronized with a backward prediction data output timing from the horizontal / vertical direction interpolation calculator. A counter that reads the forward prediction data from the final interpolation result storage memory; a decoder that decodes the value of the counter; and a shift register for data alignment that performs processing for aligning bidirectional interpolation processing data to fixed-length data; Therefore, by controlling the data write timing and data read timing from the final interpolation result storage memory, the data write operation and data read operation from the final interpolation result storage memory and the bi-directional interpolation calculation can be executed efficiently. The effect which can be done is acquired.

以下、本発明の実施の形態1であるデータ処理装置について、図面を参照しながら説明する。   Hereinafter, a data processing apparatus according to a first embodiment of the present invention will be described with reference to the drawings.

図1は本発明の実施の形態1であるデータ処理回路の構成を示すブロック図である。図1において、1は、画素間補間演算の対象となるマクロブロックのデータを格納する入力データ格納メモリである。この入力データ格納メモリ1には、輝度信号Y、色差信号Cが別々に格納され、入力データ格納メモリ1に、同時に輝度信号Yと色差信号Cが混在することはない。矢印2は、現画像を生成するために、参照画像から現画像を予測するために使用する動きベクトルを示している。この動きベクトル2は、現画像の参照画像からの動き方向と量を示す。矢印3は、入力データ格納メモリ1に格納されているデータが、輝度信号Yであるか色差信号Cであるかを示すY/C識別信号である。矢印4は、入力データ格納メモリ1に格納されているマクロブロックデータに対し垂直方向補間演算を行うか否かを示す垂直方向補間フラグであり、矢印5は、入力データ格納メモリ1に格納されているマクロブロックデータに対し水平方向補間演算を行うか否かを示す水平方向補間フラグである。   FIG. 1 is a block diagram showing a configuration of a data processing circuit according to the first embodiment of the present invention. In FIG. 1, reference numeral 1 denotes an input data storage memory that stores macroblock data to be subjected to inter-pixel interpolation calculation. In this input data storage memory 1, the luminance signal Y and the color difference signal C are separately stored. In the input data storage memory 1, the luminance signal Y and the color difference signal C are not mixed at the same time. An arrow 2 indicates a motion vector used to predict the current image from the reference image in order to generate the current image. This motion vector 2 indicates the motion direction and amount of the current image from the reference image. An arrow 3 is a Y / C identification signal indicating whether the data stored in the input data storage memory 1 is a luminance signal Y or a color difference signal C. An arrow 4 is a vertical direction interpolation flag indicating whether or not to perform a vertical direction interpolation operation on the macroblock data stored in the input data storage memory 1, and an arrow 5 is stored in the input data storage memory 1. This is a horizontal direction interpolation flag indicating whether or not to perform horizontal direction interpolation calculation on the macroblock data.

また、矢印6は、本実施の形態1のシステムの動作タイミングを制御するシステムクロックの入力方向を示している。   An arrow 6 indicates the input direction of the system clock for controlling the operation timing of the system according to the first embodiment.

7は、動きベクトル2、Y/C識別信号3、垂直方向補間フラグ4、及び水平方向補間フラグ5に基づいて、入力データ格納メモリ1に格納されるデータ量を算出し、それに応じて入力データ格納メモリ1のデータリード、ライトする際のメモリアドレスと制御信号とを生成する入力データ格納メモリアドレスジェネレータである。   7 calculates the amount of data stored in the input data storage memory 1 based on the motion vector 2, the Y / C identification signal 3, the vertical direction interpolation flag 4, and the horizontal direction interpolation flag 5, and the input data accordingly This is an input data storage memory address generator that generates a memory address and a control signal for reading and writing data in the storage memory 1.

矢印8は、上記入力データ格納メモリアドレスジェネレータ7より出力される入力データ格納メモリアドレス、矢印9は、入力データ格納メモリアドレスジェネレータ7より出力される入力データ格納メモリ制御信号である。   An arrow 8 is an input data storage memory address output from the input data storage memory address generator 7, and an arrow 9 is an input data storage memory control signal output from the input data storage memory address generator 7.

矢印10は、入力データ格納メモリ1から出力される入力データである。11は、水平方向補間演算結果格納メモリであり、垂直方向補間処理を行う場合、1マクロブロックの2ライン分である、16画素x8ビットx2のデータを格納する。また、垂直方向補間処理を行わない場合は、水平方向補間演算結果格納メモリ11にデータは格納されない。   An arrow 10 is input data output from the input data storage memory 1. Reference numeral 11 denotes a horizontal direction interpolation calculation result storage memory, which stores data of 16 pixels × 8 bits × 2 corresponding to two lines of one macroblock when performing vertical direction interpolation processing. Further, when the vertical direction interpolation processing is not performed, data is not stored in the horizontal direction interpolation calculation result storage memory 11.

矢印12は、双方向補間モードフラグであり、対象マクロブロックに対して双方向補間処理を行うか否かを示す。13は、水平・垂直方向補間演算器であり、水平方向補間処理を行う場合、1マクロブロックの水平方向に隣接する画素間で補間演算を行う。また、垂直方向補間処理を行う場合、水平方向補間演算結果格納メモリ11に格納されている1ライン前のデータと入力データ格納メモリ1から送られてくる現ラインのデータとの間で、垂直方向に隣接する画素間で補間演算を行う。さらに、水平、垂直方向補間処理の両方を行う場合は、水平方向補間処理後に垂直方向補間処理を行う。   An arrow 12 is a bidirectional interpolation mode flag and indicates whether or not bidirectional interpolation processing is performed on the target macroblock. Reference numeral 13 denotes a horizontal / vertical direction interpolation calculator, which performs interpolation calculation between pixels adjacent in the horizontal direction of one macroblock when performing horizontal direction interpolation processing. When performing the vertical direction interpolation processing, the vertical direction is determined between the previous line data stored in the horizontal direction interpolation calculation result storage memory 11 and the current line data sent from the input data storage memory 1. Interpolation is performed between adjacent pixels. Furthermore, when performing both horizontal and vertical direction interpolation processing, vertical direction interpolation processing is performed after the horizontal direction interpolation processing.

矢印14は、水平・垂直方向補間演算器13と水平方向補間演算結果格納メモリ11との間で受け渡しされる垂直方向補間用データである。   An arrow 14 is vertical direction interpolation data passed between the horizontal / vertical direction interpolation calculator 13 and the horizontal direction interpolation calculation result storage memory 11.

15は、水平方向補間演算結果格納メモリアドレスジェネレータであり、垂直方向補間処理を行う場合、入力データ格納メモリ1から水平・垂直方向補間演算器13へ送られて来るデータタイミングに同期して、水平方向補間演算結果格納メモリ11から1ライン前のデータを出力するようにデータ出力タイミングを調整し、垂直メモリのデータリード、ライト用アドレス、制御信号を生成する。矢印16は、上記水平方向補間演算結果格納メモリアドレスジェネレータ15から水平方向補間演算結果格納メモリ11へ出力される水平方向補間演算結果格納メモリアドレス、矢印17は、水平方向補間演算結果格納メモリアドレスジェネレータ15から水平方向補間演算結果格納メモリ11へ出力される水平方向補間演算結果格納メモリ制御信号である。   Reference numeral 15 denotes a horizontal interpolation calculation result storage memory address generator. When performing vertical interpolation processing, the horizontal interpolation calculation result storage memory address generator 15 is synchronized with the data timing sent from the input data storage memory 1 to the horizontal / vertical interpolation calculator 13. The data output timing is adjusted so that the previous line data is output from the direction interpolation calculation result storage memory 11, and the vertical memory data read, write address, and control signal are generated. An arrow 16 indicates a horizontal interpolation calculation result storage memory address output from the horizontal direction interpolation calculation result storage memory address generator 15 to the horizontal direction interpolation calculation result storage memory 11, and an arrow 17 indicates a horizontal direction interpolation calculation result storage memory address generator. 15 is a horizontal direction interpolation calculation result storage memory control signal output from 15 to the horizontal direction interpolation calculation result storage memory 11.

18は、水平方向補間演算結果格納メモリ11、水平・垂直方向補間演算器13及び水平方向補間演算結果格納メモリアドレスジェネレータ15から構成される水平垂直方向補間演算部を示す。   Reference numeral 18 denotes a horizontal / vertical direction interpolation calculation unit including a horizontal direction interpolation calculation result storage memory 11, a horizontal / vertical direction interpolation calculator 13, and a horizontal direction interpolation calculation result storage memory address generator 15.

矢印19は、水平・垂直方向補間演算器14から出力される水平、及び垂直方向の補間処理結果を示す水平垂直方向補間処理データである。   An arrow 19 is horizontal / vertical interpolation processing data indicating the horizontal / vertical interpolation processing result output from the horizontal / vertical interpolation calculator 14.

20は、最終補間結果格納メモリであり、輝度信号Y及び色差信号Cの1マクロブロック分の容量である、16画素x24画素x8ビットを持ち、最終の画素間補間演算結果、及び双方向補間演算を行う場合の前方予測データを一時的に格納する。   Reference numeral 20 denotes a final interpolation result storage memory having 16 pixels × 24 pixels × 8 bits, which is a capacity of one macro block of the luminance signal Y and the color difference signal C, and the final inter-pixel interpolation calculation result and bi-directional interpolation calculation. Temporarily store the forward prediction data when performing.

前方予測データを最終補間結果格納メモリ20へ格納する場合、輝度信号Y、色差信号Cともメモリアドレスの0番地から順次格納する。従って、前方予測データが輝度信号Yの場合、0番地から252番地に、また、色差信号Cの場合、0番地から127番地に前方予測データが格納される。つまり、輝度信号Y、色差信号Cのいずれの場合においても、前方予測データ格納時には、最終補間結果格納メモリの253番地から383番地までは空き領域になる。   When the forward prediction data is stored in the final interpolation result storage memory 20, both the luminance signal Y and the color difference signal C are sequentially stored from address 0 of the memory address. Therefore, when the forward prediction data is the luminance signal Y, the forward prediction data is stored from the 0 address to the 252 address, and when the color difference signal C is used, the forward prediction data is stored from the 0 address to the 127 address. In other words, in both cases of the luminance signal Y and the color difference signal C, when the forward prediction data is stored, the final interpolation result storage memory from addresses 253 to 383 is an empty area.

21は、双方向補間モードフラグ12が双方向補間処理を行うモードの場合、時間的に前後する画像データ間で補間処理演算を行う双方向補間演算器である。22は、最終補間結果格納メモリ20に格納された前方予測データである。前方予測データは、双方向補間演算を行わない場合は、水平・垂直補間演算器からの直接の出力データであり、前方予測データではない。   Reference numeral 21 denotes a bidirectional interpolation calculator that performs an interpolation processing calculation between image data that is temporally changed when the bidirectional interpolation mode flag 12 is a mode for performing a bidirectional interpolation process. Reference numeral 22 denotes forward prediction data stored in the final interpolation result storage memory 20. The forward prediction data is output data directly from the horizontal / vertical interpolation calculator when the bidirectional interpolation calculation is not performed, and is not forward prediction data.

23は、32ビットx3の96ビットカウンタであり、外部より送られてくるシステムクロック7に同期してカウントアップする。24は、カウンタ23から出力されるカウンタ値である。   Reference numeral 23 denotes a 32-bit × 3 96-bit counter that counts up in synchronization with the system clock 7 sent from the outside. Reference numeral 24 denotes a counter value output from the counter 23.

25は、デコーダであり、カウンタ23のカウンタ値24をデコードし、カウンタ値が96になることを検知し、カウンタ値が96になるとパルスを1クロック期間出力する。矢印26は、デコーダ25から出力されるカウンタ値24が96であることを示すデコードフラグである。   A decoder 25 decodes the counter value 24 of the counter 23, detects that the counter value reaches 96, and outputs a pulse for one clock period when the counter value reaches 96. An arrow 26 is a decode flag indicating that the counter value 24 output from the decoder 25 is 96.

矢印27は、双方向補間モードフラグ13が双方向補間処理モードの時、双方向補間演算器21から出力される前方予測データの双方向補間処理データである。28は、4画素x8ビットx3ヶの構成をもつシフトレジスタであり、双方向補間演算器21から出力される双方向補間処理データ27を順次格納する。シフトレジスタ28に4画素x8ビットx2のデータが格納されると、次のクロックサイクルで後段の回路に出力する。矢印29は、シフトレジスタ28から間欠的に出力されるシフトレジスタ出力データであり、4画素x8ビットx2単位で出力される。   An arrow 27 is bidirectional interpolation processing data of forward prediction data output from the bidirectional interpolation calculator 21 when the bidirectional interpolation mode flag 13 is in the bidirectional interpolation processing mode. Reference numeral 28 denotes a shift register having a configuration of 4 pixels × 8 bits × 3, and sequentially stores the bidirectional interpolation processing data 27 output from the bidirectional interpolation calculator 21. When data of 4 pixels × 8 bits × 2 is stored in the shift register 28, the data is output to the subsequent circuit in the next clock cycle. An arrow 29 is shift register output data output intermittently from the shift register 28, and is output in units of 4 pixels × 8 bits × 2.

双方向補間モードフラグ13が双方向補間処理モードの時、デコーダ25から出力されるデコードフラグ26の出力タイミングに従って、シフトレジスタ28から出力されるシフトレジスタ出力データ29を4画素x8ビットx2単位で順次最終補間結果格納メモリ20に格納する。   When the bidirectional interpolation mode flag 13 is in the bidirectional interpolation processing mode, the shift register output data 29 output from the shift register 28 is sequentially output in units of 4 pixels × 8 bits × 2 in accordance with the output timing of the decode flag 26 output from the decoder 25. Store in the final interpolation result storage memory 20.

この時、シフトレジスタ出力データ29により、事前に最終補間結果格納メモリ20に格納されている前方予測データ21を書き潰すことがないように、最終補間結果格納メモリ20領域の内、空き領域からシフトレジスタ出力データ28を格納する。つまり、シフトレジスタ出力データ29が、輝度信号Yの場合、最終補間結果格納メモリ20の253番地から、また、色差信号Cの場合、128番地からシフトレジスタ出力データ29を格納する。   At this time, the shift register output data 29 is shifted from an empty area in the final interpolation result storage memory 20 so that the forward prediction data 21 stored in the final interpolation result storage memory 20 in advance is not overwritten. Register output data 28 is stored. In other words, when the shift register output data 29 is the luminance signal Y, the shift register output data 29 is stored from the address 253 of the final interpolation result storage memory 20, and when it is the color difference signal C, the shift register output data 29 is stored.

30は、上記カウンタ23、デコーダ25及びシフトレジスタ28から構成されるデータ出力制御部を示す。   Reference numeral 30 denotes a data output control unit composed of the counter 23, the decoder 25 and the shift register 28.

31は、現在処理しているデータが前方予測データであるか後方予測データであるかを示す前方後方識別フラグである。   31 is a forward / backward identification flag indicating whether the data currently being processed is forward prediction data or backward prediction data.

32は、最終補間結果格納メモリアドレスジェネレータであり、最終補間結果格納メモリ20のメモリアドレス、及びメモリ制御信号を生成する。この最終補間結果格納メモリアドレスジェネレータ32は、双方向補間モードフラグ12、及び前方後方識別フラグ31により現在処理しているデータが前方予測データであるか後方予測データであるかを判断する。   Reference numeral 32 denotes a final interpolation result storage memory address generator, which generates a memory address of the final interpolation result storage memory 20 and a memory control signal. The final interpolation result storage memory address generator 32 determines whether the currently processed data is the forward prediction data or the backward prediction data based on the bidirectional interpolation mode flag 12 and the forward / backward identification flag 31.

矢印34、35は、それぞれ上記最終補間結果格納メモリアドレスジェネレータ32から出力される最終補間結果格納メモリ20の最終補間結果格納メモリアドレス、及び最終補間結果格納メモリ信号である。   Arrows 34 and 35 are the final interpolation result storage memory address of the final interpolation result storage memory 20 and the final interpolation result storage memory signal output from the final interpolation result storage memory address generator 32, respectively.

以下に上記出力データ格納メモリアドレスジェネレータ32の動作を説明する。双方向補間モード信号12が双方向補間処理モード時は、まず、最終補間結果格納メモリ20に前方予測データ21を96ビット単位毎に輝度信号Y、色差信号Cとも1マクロブロック分格納するようにメモリアドレス33、及びメモリ制御信号34を生成する。   The operation of the output data storage memory address generator 32 will be described below. When the bidirectional interpolation mode signal 12 is in the bidirectional interpolation processing mode, first, the forward prediction data 21 is stored in the final interpolation result storage memory 20 for one macroblock for both the luminance signal Y and the color difference signal C every 96 bits. A memory address 33 and a memory control signal 34 are generated.

35は、最終補間結果格納メモリ20から出力される前方予測データである。前方後方識別フラグ31により前方予測データであると判定された場合、最終補間結果格納メモリアドレスジェネレータ32は、水平・垂直方向補間演算演算器13から出力される前方予測データ22を連続的に最終補間結果格納メモリ20へ格納する。   Reference numeral 35 denotes forward prediction data output from the final interpolation result storage memory 20. When the forward / backward identification flag 31 determines that the data is forward prediction data, the final interpolation result storage memory address generator 32 continuously performs final interpolation on the forward prediction data 22 output from the horizontal / vertical direction interpolation calculator 13. Store in the result storage memory 20.

このようにして最終補間結果格納メモリ20に1マクロブロックデータ分の前方予測データを一旦格納する。最終補間結果格納メモリ20に1マクロブロックデータ分のデータを格納した後、今度は、水平・垂直補間演算器13から水平垂直方向補間処理データ19が出力されるタイミングに応じて先に最終補間結果格納メモリ20に格納された前方予測データを読み出す。   In this way, the forward prediction data for one macroblock data is temporarily stored in the final interpolation result storage memory 20. After data for one macroblock data is stored in the final interpolation result storage memory 20, this time, the final interpolation result is first determined in accordance with the timing at which the horizontal / vertical interpolation calculator 19 outputs the horizontal / vertical interpolation processing data 19. The forward prediction data stored in the storage memory 20 is read out.

水平・垂直補間演算器13から水平垂直方向補間処理データ19が出力されるタイミングは、データ処理回路により一意に決まり、そのタイミングを最終補間結果格納メモリアドレスジェネレータ32は、最終補間結果格納メモリアドレスジェネレータ32内部のカウンタで知ることが可能である。   The timing at which the horizontal / vertical interpolation processing data 19 is output from the horizontal / vertical interpolation calculator 13 is uniquely determined by the data processing circuit, and the final interpolation result storage memory address generator 32 determines the timing. It is possible to know with the counter inside 32.

双方向補間演算器21では、最終補間結果格納メモリ20から読み出された前方予測データ35と水平・垂直補間演算器13から出力される水平垂直方向補間処理データ19との間で双方向補間演算を行う。   The bidirectional interpolation calculator 21 performs a bidirectional interpolation calculation between the forward prediction data 35 read from the final interpolation result storage memory 20 and the horizontal / vertical interpolation processing data 19 output from the horizontal / vertical interpolation calculator 13. I do.

そして、上記双方向補間演算器21から出力された双方向補間処理データ27がシフトレジスタ28へ入力され、96ビット双方向補間データが格納されると、デコーダ25から出力されるデコードフラグ26に従って、最終補間結果格納メモリアドレス33、及び最終補間結果格納メモリ制御信号34を生成する。   Then, when the bidirectional interpolation processing data 27 output from the bidirectional interpolation calculator 21 is input to the shift register 28 and the 96-bit bidirectional interpolation data is stored, the decoding flag 26 output from the decoder 25 is used. A final interpolation result storage memory address 33 and a final interpolation result storage memory control signal 34 are generated.

つまり、シフトレジスタ出力データ29は、3サイクルに1回の割合で最終補間結果格納メモリへ書き込みが行われる。   That is, the shift register output data 29 is written into the final interpolation result storage memory once every three cycles.

また、双方向補間モードフラグ12が双方向補間処理モード以外の時は、水平・垂直方向補間演算器13から送られてくる、双方向補間処理されない水平垂直方向補間処理データ19を順次、最終補間結果格納メモリ20に1マクロブロックデータ分格納するように、メモリ書込みアドレス33、及び書き込み制御信号34を生成する。   When the bidirectional interpolation mode flag 12 is not in the bidirectional interpolation processing mode, the horizontal / vertical interpolation processing data 19 sent from the horizontal / vertical direction interpolation calculator 13 and not subjected to bidirectional interpolation processing is sequentially and finally interpolated. A memory write address 33 and a write control signal 34 are generated so that one macroblock data is stored in the result storage memory 20.

このように本実施の形態1にかかるデータ処理装置においては、垂直方向補間演算結果格納メモリの代わりに、主としてカウンタ23、デコーダ25及びシフトレジスタ28からなる出力制御部30を設け、画素間補間演算の最終演算結果を格納する最終補間結果格納メモリ20の空き領域を垂直方向補間演算結果格納メモリとして共用するとともに、最終補間結果格納メモリ20へのデータ書き込み方法を工夫し、水平・垂直方向補間演算器13からの後方予測データ出力タイミングに合わせて、上記最終補間結果格納メモリ20に格納済みの前方予測データ35を読み出すように構成することにより、回路全体の必要メモリ容量の低減、演算回路の冗長度の低減、及び回路面積の低減を実現することができる。   As described above, in the data processing apparatus according to the first embodiment, the output control unit 30 mainly including the counter 23, the decoder 25, and the shift register 28 is provided instead of the vertical direction interpolation calculation result storage memory, and the inter-pixel interpolation calculation is performed. The free space of the final interpolation result storage memory 20 for storing the final calculation result is shared as the vertical direction interpolation calculation result storage memory, and the data writing method to the final interpolation result storage memory 20 is devised so that the horizontal / vertical direction interpolation calculation is performed. The configuration is such that the forward prediction data 35 stored in the final interpolation result storage memory 20 is read in accordance with the output timing of the backward prediction data from the device 13, thereby reducing the required memory capacity of the entire circuit and the redundancy of the arithmetic circuit. It is possible to reduce the degree and the circuit area.

本発明のデータ処理回路は、双方向補間演算を行う場合、前方予測データを一旦格納するメモリと水平、垂直、双方向補間演算後の最終演算結果を格納するメモリとを共用することにより、回路構成の冗長度、及び回路面積の削減に有用である。   The data processing circuit of the present invention, when performing bi-directional interpolation calculation, shares a memory that temporarily stores forward prediction data and a memory that stores a final calculation result after horizontal, vertical, and bi-directional interpolation calculations. This is useful for reducing configuration redundancy and circuit area.

本発明の実施の形態1によるデータ処理回路の構成を示すブロック図である。It is a block diagram which shows the structure of the data processing circuit by Embodiment 1 of this invention. 従来のデータ処理回路の構成を示すブロック図である。It is a block diagram which shows the structure of the conventional data processing circuit.

符号の説明Explanation of symbols

1 入力データ格納メモリ
2 動きベクトル
3 Y/C識別信号
4 垂直方向補間フラグ
5 水平方向補間フラグ
6 システムクロック
7 入力データ格納メモリアドレスジェネレータ
8 入力データ格納メモリアドレス
9 入力データ格納メモリ制御信号
10 入力データ
11 水平方向補間演算結果格納メモリ
12 双方向補間モードフラグ
13 水平・垂直方向補間演算器
14 垂直方向補間用データ
15 水平方向補間演算結果格納メモリアドレスジェネレータ
16 水平方向補間演算結果格納メモリアドレス
17 水平方向補間演算結果格納メモリ制御信号
18 水平垂直方向補間演算部
19 水平垂直方向補間処理結果データ
20 最終補間結果格納メモリ
21 前方予測データ
21 双方向補間演算器
23 カウンタ
24 カウンタ値
25 デコーダ
26 デコードフラグ
27 双方向補間処理データ
28 シフトレジスタ
29 シフトレジスタ出力データ
30 データ出力制御部
31 前方後方識別フラグ
32 最終補間結果格納メモリアドレスジェネレータ
33 最終補間結果格納メモリアドレス
34 最終補間結果格納メモリ制御信号
35 前方予測データ
36 データ処理回路
DESCRIPTION OF SYMBOLS 1 Input data storage memory 2 Motion vector 3 Y / C identification signal 4 Vertical direction interpolation flag 5 Horizontal direction interpolation flag 6 System clock 7 Input data storage memory address generator 8 Input data storage memory address 9 Input data storage memory control signal 10 Input data 11 Horizontal direction interpolation calculation result storage memory 12 Bidirectional interpolation mode flag 13 Horizontal / vertical direction interpolation calculator 14 Vertical direction interpolation data 15 Horizontal direction interpolation calculation result storage memory address generator 16 Horizontal direction interpolation calculation result storage memory address 17 Horizontal direction Interpolation calculation result storage memory control signal 18 Horizontal / vertical direction interpolation calculation unit 19 Horizontal / vertical direction interpolation processing result data 20 Final interpolation result storage memory 21 Forward prediction data 21 Bidirectional interpolation calculator 23 Counter 24 Counter value 25 Deco 26 Decoding flag 27 Bidirectional interpolation processing data 28 Shift register 29 Shift register output data 30 Data output control unit 31 Forward / backward identification flag 32 Final interpolation result storage memory address generator 33 Final interpolation result storage memory address 34 Final interpolation result storage memory Control signal 35 Forward prediction data 36 Data processing circuit

Claims (2)

圧縮されたデータを伸長するデコード処理における画素間補間処理演算を行うデータ処理回路において、
外部メモリから出力されたバーストデータが入力される入力データ格納メモリと、
上記バーストデータから必要なデータのみを入力データ格納メモリへ書き込むように制御する入力データ格納メモリアドレスジェネレータと、
水平、及び垂直方向補間演算を実行する水平・垂直方向補間演算器と、
上記垂直方向補間演算を行う際に用いる上記水平方向補間演算の結果を格納する水平方向補間演算結果格納メモリと、
前方予測データと、後方予測データ間で双方向補間演算を行う双方向補間演算器と、
上記双方向補間演算を行う際に用いる、上記前方予測データ、及び上記双方向補間演算結果を格納する最終補間結果格納メモリと、
上記水平,及び垂直方向補間演算器からの上記後方予測データの出力タイミングに合わせて上記最終補間結果格納メモリから上記前方予測データを読み出す出力制御部と、
を備えたことを特徴とするデータ処理回路。
In a data processing circuit that performs inter-pixel interpolation processing calculation in a decoding process that decompresses compressed data,
An input data storage memory to which burst data output from an external memory is input; and
An input data storage memory address generator for controlling to write only necessary data from the burst data to the input data storage memory;
A horizontal / vertical direction interpolation calculator that performs horizontal and vertical direction interpolation calculations;
A horizontal direction interpolation calculation result storage memory for storing a result of the horizontal direction interpolation calculation used when performing the vertical direction interpolation calculation;
A bidirectional interpolation calculator for performing bidirectional interpolation between the forward prediction data and the backward prediction data;
A final interpolation result storage memory for storing the forward prediction data and the bi-directional interpolation calculation result used when performing the bi-directional interpolation calculation;
An output control unit that reads the forward prediction data from the final interpolation result storage memory in accordance with the output timing of the backward prediction data from the horizontal and vertical interpolation calculators;
A data processing circuit comprising:
請求項1記載のデータ処理回路において、
上記出力制御部は、
上記水平,及び垂直方向補間演算器からの上記後方予測データの出力タイミングに合わせて上記最終補間結果格納メモリから上記前方予測データを読み出すカウンタと、
上記カウンタの値をデコードするデコーダと、
双方向補間処理データをデータアラインするためのシフトレジスタと、
を備えていることを特徴とするデータ処理回路。
The data processing circuit according to claim 1, wherein
The output control unit
A counter that reads out the forward prediction data from the final interpolation result storage memory in accordance with the output timing of the backward prediction data from the horizontal and vertical interpolation calculators;
A decoder for decoding the value of the counter;
A shift register for data alignment of bidirectional interpolation processing data;
A data processing circuit comprising:
JP2003292208A 2003-08-12 2003-08-12 Data processing circuit Pending JP2005064845A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003292208A JP2005064845A (en) 2003-08-12 2003-08-12 Data processing circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003292208A JP2005064845A (en) 2003-08-12 2003-08-12 Data processing circuit

Publications (1)

Publication Number Publication Date
JP2005064845A true JP2005064845A (en) 2005-03-10

Family

ID=34369625

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003292208A Pending JP2005064845A (en) 2003-08-12 2003-08-12 Data processing circuit

Country Status (1)

Country Link
JP (1) JP2005064845A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007081983A (en) * 2005-09-15 2007-03-29 Sony Corp Encoding apparatus, encoding method, decoding apparatus, decoding method and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007081983A (en) * 2005-09-15 2007-03-29 Sony Corp Encoding apparatus, encoding method, decoding apparatus, decoding method and program

Similar Documents

Publication Publication Date Title
JP4730183B2 (en) Video display device
US9172969B2 (en) Local macroblock information buffer
JP3824678B2 (en) Image decoding display device
KR100201981B1 (en) The memory control apparatus and image decoder using that
US20090058866A1 (en) Method for mapping picture addresses in memory
US20090297051A1 (en) Image Processing Apparatus
US20170365033A1 (en) Image processing device
US5754243A (en) Letter-box transformation device
US6081298A (en) MPEG decoder with reduced memory capacity
CN105472442A (en) Out-chip buffer compression system for superhigh-definition frame rate up-conversion
JP2007259323A (en) Image decoding apparatus
JP2005064845A (en) Data processing circuit
JP6221820B2 (en) Encoding apparatus, encoding method, and encoding program
US20030123555A1 (en) Video decoding system and memory interface apparatus
US6891894B1 (en) Method for decoding and displaying digital broadcasting signals
JP2003032683A (en) Intra-pixel interpolation operating circuit
US20080056377A1 (en) Neighboring Context Management
WO2009085788A1 (en) System, method and device for processing macroblock video data
JP2007329858A (en) Moving image display apparatus, moving image display method, and program
US20050025247A1 (en) Apparatus for parallel calculation of prediction bits in a spatially predicted coded block pattern and method thereof
JP2005101728A (en) Image processing apparatus
JP2013219611A (en) Encoder and encoding method, and decoder and decoding method
JP2581420B2 (en) Decoding device in video encoding transmission
JP2003199103A (en) Inter-pixel interpolation arithmetic circuit
JP2012019462A (en) Picture decoding device and picture decoding method