JPH1056641A - MPEG decoder - Google Patents
MPEG decoderInfo
- Publication number
- JPH1056641A JPH1056641A JP21158396A JP21158396A JPH1056641A JP H1056641 A JPH1056641 A JP H1056641A JP 21158396 A JP21158396 A JP 21158396A JP 21158396 A JP21158396 A JP 21158396A JP H1056641 A JPH1056641 A JP H1056641A
- Authority
- JP
- Japan
- Prior art keywords
- data
- length code
- code data
- decoding
- variable
- 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
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
(57)【要約】
【課題】 MPEG2ハイレベルのように情報量の多い
圧縮データを、大規模なメモリ容量を必要とせず、しか
も動作速度を上げることなく効率よく復号処理すること
ができるMPEGデコーダを提供すること。
【解決手段】 可変長符号データをラン長符号データに
復号する復号手段と、前記ラン長符号データをブロック
毎に分割して記憶する記憶手段と、前記記憶手段から前
記ブロック毎に分割された複数のラン長符号データを並
列的に読み出して並列的にラン長復号し逆量子化し逆離
散コサイン変換して空間データに変換する変換手段と、
前記空間データを動き補償予測処理して画像データを生
成する動き補償手段とを備え、変換手段は、可変長符号
データをブロック単位で並列処理して、可変長符号デー
タを画像データに復号する。
(57) Abstract: An MPEG decoder capable of efficiently decoding compressed data having a large amount of information, such as MPEG2 high level, without requiring a large-scale memory capacity and without increasing operation speed. To provide. SOLUTION: Decoding means for decoding variable-length code data into run-length code data, storage means for dividing the run-length code data for each block and storing the same, and a plurality of divisions for each block from the storage means Transforming means for reading in parallel run length code data, decoding run length in parallel, inverse quantizing, inverse discrete cosine transform, and converting into spatial data,
And a motion compensator for generating image data by performing motion compensation prediction processing on the spatial data. The converter performs parallel processing of the variable-length code data in block units and decodes the variable-length code data into image data.
Description
【0001】[0001]
【発明の属する技術分野】本発明は、所謂MPEGデコ
ーダに関し、さらに詳しくは、MPEG2ハイレベルが
対象とするようなハイビジョンクラスの情報量の多い圧
縮データをリアルタイムにデコード処理するMPEGデ
コーダに関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a so-called MPEG decoder, and more particularly to an MPEG decoder for decoding compressed data having a large amount of information of a high definition class such as an MPEG2 high level in real time.
【0002】[0002]
【従来の技術】近年、マルチメディア機器の急速な性能
の向上に伴い、取り扱うデータ量も飛躍的に増大しつつ
ある。この大量のデータを蓄積または伝送するにあたっ
ては、ハードウェア資源の効率的利用を図るため、デー
タ圧縮によりデータ量を削減することが行われている。
特に、動画像データについては、合同作業部会であるM
PEG(Moving Picture Experts Group)によりデータ
圧縮に関する詳細が標準化されており、この合同作業部
会MPEGにより標準化された規格に準拠して符号化し
た(データ圧縮した)データを画像データに復号するた
めの所謂MPEGデコーダがある。2. Description of the Related Art In recent years, with the rapid improvement in performance of multimedia equipment, the amount of data to be handled has been dramatically increased. In storing or transmitting this large amount of data, the amount of data is reduced by data compression in order to use hardware resources efficiently.
In particular, for moving image data, the joint working group M
Details on data compression are standardized by the Moving Picture Experts Group (PEG), and a so-called decoding method for decoding encoded (data compressed) data into image data in accordance with the standards standardized by the Joint Working Group MPEG. There is an MPEG decoder.
【0003】以下、図5〜図7を参照しながら、従来の
MPEGデコーダについて説明する。ここで、図5は、
従来のMPEGデコーダの構成図であり、また、図6は
MPEGデコーダが対象とするデータの階層構造の説明
図であり、さらに、図7は復号の前後におけるデータ比
率の説明図である。Hereinafter, a conventional MPEG decoder will be described with reference to FIGS. Here, FIG.
FIG. 6 is a diagram illustrating a configuration of a conventional MPEG decoder, FIG. 6 is a diagram illustrating a hierarchical structure of data targeted by the MPEG decoder, and FIG. 7 is a diagram illustrating a data ratio before and after decoding.
【0004】図5に示すように、従来のMPEGデコー
ダは、図示しないMPEGエンコーダによりデータ圧縮
して得られる可変長符号データのビットストリームを外
部から取り込む前段バッファ1と、該前段バッファ1に
より取り込まれた可変長符号データを復号して量子化さ
れたDCT(Discrete cosign Transform:離散コサイ
ン変換)係数(以下、「量子化DCT係数」と記す)を
出力すると共に動きベクトル等の各種制御情報を出力す
る可変長復号部2と、量子化DCT係数を逆量子化して
本来のDCT係数(以下、単に「DCT係数」と記す)
を生成する逆量子化部3と、DCT係数を逆離散コサイ
ン変換(以下、「逆DCT変換」と記す)して空間デー
タとしての差分データを生成する逆DCT変換部4と、
前記差分データを後述の参照画像データに加算すること
により動き補償予測処理して画像データを生成する動き
補償部5と、前記参照画像データが格納された参照画像
メモリ6とを備えて構成されている。As shown in FIG. 5, a conventional MPEG decoder includes a pre-buffer 1 for fetching a bit stream of variable-length code data obtained by compressing data by an MPEG encoder (not shown) from the outside, and a fetch by the pre-buffer 1. And outputs quantized DCT (Discrete Cosine Transform) coefficients (hereinafter, referred to as "quantized DCT coefficients") and outputs various control information such as motion vectors. The variable-length decoding unit 2 dequantizes the quantized DCT coefficient to obtain the original DCT coefficient (hereinafter simply referred to as “DCT coefficient”).
And an inverse DCT transform unit 4 that performs an inverse discrete cosine transform (hereinafter referred to as “inverse DCT transform”) on the DCT coefficients to generate difference data as spatial data.
A motion compensation unit 5 that generates image data by performing motion compensation prediction processing by adding the difference data to reference image data described below, and a reference image memory 6 that stores the reference image data. I have.
【0005】以下、このように構成された従来のMPE
Gデコーダの動作について説明する。先ず、前段バッフ
ァ1が外部から可変長符号データのビットストリームを
取り込み、可変長復号部2がこの可変長符号データを復
号して、動きベクトル等の各種制御信号と量子化DCT
係数とを生成する。ここで、可変長復号部2が取り込む
可変長符号データは、ラン長符号化によりデータ量が削
減されたデータであり、連続した値「0」(0ラン)と
それに続く0以外の値との組み合わせからなるシンボル
に対して、発生頻度の高いもの程ビット長の短いコード
を割り当てることにより、全体としてデータ量が削減さ
れている。A conventional MPE constructed as described above will be described below.
The operation of the G decoder will be described. First, the pre-buffer 1 fetches a bit stream of variable-length code data from the outside, and the variable-length decoding unit 2 decodes the variable-length code data to obtain various control signals such as motion vectors and quantized DCT.
And coefficients. Here, the variable-length code data captured by the variable-length decoding unit 2 is data whose data amount has been reduced by the run-length encoding, and includes a continuous value “0” (zero run) and a subsequent non-zero value. By assigning a code having a shorter bit length to a symbol having a higher frequency of occurrence to a combination of symbols, the data amount is reduced as a whole.
【0006】次に、逆量子化部3は、可変長復号部2が
生成した量子化DCT係数を(本来の)DCT係数に変
換し、この後、逆DCT変換部4が逆DCT変換して、
後述の参照画像データに対する差分データを生成する。
動き補償部5は、この差分データを、可変長復号部2が
出力する動きベクトル等の情報に基づいて参照画像メモ
リ6から読み出した参照画像データに加算して、動き補
償予測処理された画像データを生成する。ここで、上述
の参照画像メモリ6から読み出す参照画像データとは、
これより前に送られて復号され、参照画像メモリ6に書
き込まれた画像データであり、具体的には、後述のIピ
クチャ若しくはPピクチャを意味する。Next, an inverse quantization unit 3 converts the quantized DCT coefficients generated by the variable length decoding unit 2 into (original) DCT coefficients, and thereafter, an inverse DCT conversion unit 4 performs an inverse DCT transform. ,
Difference data is generated for reference image data described later.
The motion compensation unit 5 adds the difference data to the reference image data read from the reference image memory 6 based on the information such as the motion vector output from the variable length decoding unit 2 to obtain the image data subjected to the motion compensation prediction processing. Generate Here, the reference image data read from the above-described reference image memory 6 is
This is image data that has been transmitted and decoded before this, and has been written to the reference image memory 6, and specifically means an I picture or P picture to be described later.
【0007】ここで、図6に示すように、MPEGによ
り標準化された規格に従って圧縮された画像データは階
層構造を有し、シーケンス層を最上位の階層として、以
下GOP(Group Of Pictures)層、ピクチャ層、スラ
イス層、マクロブロック層及びブロック層となってい
る。これら各層の詳細については、一般に入手可能なM
PEGに関する多くの解説書の中で詳細に説明されてい
るので、ここではブロック層などの本発明に主に関係す
る層についての概略的な説明に留める。Here, as shown in FIG. 6, image data compressed in accordance with the standard standardized by MPEG has a hierarchical structure, and the sequence layer is the highest layer, and the GOP (Group Of Pictures) layer, They are a picture layer, a slice layer, a macroblock layer, and a block layer. For details on each of these layers, see the commonly available M
Since it is described in detail in many reference books on PEG, only a brief description of layers mainly related to the present invention, such as a block layer, will be given here.
【0008】即ち、最下位層のブロック層は、8画素×
8ラインの輝度成分または色差成分のデータから構成さ
れるDCT処理の処理単位であり、また、マクロブロッ
ク層は、16画素×16ラインからなる4ブロック分の
輝度成分Yと、それぞれ8画素×8ラインからなる色差
成分Cb及びCrとから構成される動き予測の処理単位で
ある。さらに、ピクチャ層は、基本的符号化の処理単位
であり、I(Intra-coded)ピクチャ、P(Predictive-
coded)ピクチャ、B(Bidirectionally predictive-co
ded)ピクチャの3種類のピクチャタイプに分類され
る。このうち、Iピクチャはすべてイントラ(フレーム
内符号化)ブロックで構成され、符号化の開始やエント
リポイントに使用される。また、Pピクチャ及びBピク
チャは、それぞれ前方向のフレーム間予測及び双方向の
フレーム間予測に使用される。That is, the lowermost block layer is composed of 8 pixels ×
A macroblock layer is a processing unit of DCT processing composed of data of eight lines of luminance components or chrominance components. The macroblock layer includes four blocks of luminance components Y of 16 pixels × 16 lines and 8 pixels × 8 pixels. This is a motion prediction processing unit composed of color difference components Cb and Cr composed of lines. Further, the picture layer is a basic coding processing unit, and includes an I (Intra-coded) picture, a P (Predictive-
coded) picture, B (Bidirectionally predictive-co)
ded) pictures. Of these, all I-pictures are composed of intra (intra-frame coded) blocks and are used to start coding and as entry points. The P picture and the B picture are used for forward inter-frame prediction and bidirectional inter-frame prediction, respectively.
【0009】ここで、各ピクチャのビットストリーム中
での構成比率は、図7の上段に例示するように、一般に
は、以前に復号された参照画像データを使って復号され
るPピクチャ及びBピクチャに対して、単独で復号され
るIピクチャの方が数倍のデータ量を占め、それぞれの
ピクチャのデータ量に格差が存在する。なお、同図に示
す例は、説明を簡略化するために、復号されるデータが
9枚のピクチャで完結するものとし、Iピクチャを4、
Pピクチャを1、Bピクチャを0.5の比率として表現し
たものである。実際には、この比率は様々であり、シス
テムの仕様、即ちエンコーダ側でレートコントロールに
用いるVBV(Video Bufferring Verifier)バッファ
のサイズや画像のデータレート、GOPの構成などに依
存し、実用上、各ピクチャのデータ量の比率(格差)が
数倍を越えないように抑えられている。Here, as shown in the upper part of FIG. 7, the composition ratio of each picture in a bit stream is generally a P picture and a B picture which are decoded using previously decoded reference image data. On the other hand, the I picture that is decoded alone occupies several times the data amount, and there is a difference in the data amount of each picture. In the example shown in the figure, for simplification of the description, it is assumed that the data to be decoded is completed with nine pictures, and the I picture is 4,
The P picture is expressed as a ratio of 1 and the B picture as a ratio of 0.5. Actually, this ratio varies, and depends on the specifications of the system, that is, the size of the VBV (Video Buffering Verifier) buffer used for rate control on the encoder side, the data rate of the image, the configuration of the GOP, and the like. The data amount ratio (disparity) of the picture is suppressed so as not to exceed several times.
【0010】各ピクチャのデータを復号した後において
は、図7の下段に例示するように、最終的にそれぞれの
ピクチャに対応するデータ量が同じものとなる。従っ
て、復号後の画像データをビットストリームの入力に対
してリアルタイムに出力しようとすると、少なくともI
ピクチャはビットストリームの平均ビットレートの4
倍、Pピクチャは1倍、Bピクチャは0.5倍の速度でデ
ータを取り込んで処理する必要がある。現実には、動作
マージン等を考慮すると、さらに余裕をもって高速且つ
完結的にデータを取り込んで復号処理する必要がある。After decoding the data of each picture, the amount of data corresponding to each picture finally becomes the same as illustrated in the lower part of FIG. Therefore, when trying to output the decoded image data in real time with respect to the input of the bit stream, at least I
The picture is 4 times the average bit rate of the bit stream.
It is necessary to fetch and process data at twice the speed of a P picture, one time for a P picture, and 0.5 times for a B picture. In reality, in consideration of an operation margin and the like, it is necessary to capture and decode data at high speed and completely with more margin.
【0011】[0011]
【発明が解決しようとする課題】ところで、入力するビ
ットストリーム(可変長符号データ)の平均ビットレー
トが数Mbps(bps ; bit per second)程度であれば
数十MHz程度の動作クロックで復号処理を行うことは
可能である。しかし、MPEG2のハイレベルクラスに
なると、ビットストリームの平均ビットレートが20M
bps以上にもなり、100MHzを越える高速な動作
クロックが要求される。従って、復号処理系を構成する
回路が動作速度上の制約を有する場合、高速な動作クロ
ックに追従した復号処理が困難になる。By the way, if the average bit rate of the input bit stream (variable length code data) is about several Mbps (bps; bit per second), decoding processing is performed with an operation clock of about several tens of MHz. It is possible to do. However, in the high-level class of MPEG2, the average bit rate of the bit stream is 20M.
A high-speed operation clock exceeding 100 MHz is required. Therefore, when the circuit constituting the decoding processing system has a restriction on the operation speed, it becomes difficult to perform the decoding process following a high-speed operation clock.
【0012】この場合、第1に考えられる対策として、
復号処理を並列化して見かけ上の処理速度を高速化する
方法がある。ただし、可変長符号化されたデータは、復
号処理をしないと次のデータの先頭が判明せず、並列化
が困難であるため、ビットストリーム中のスライス層以
上の各層の先頭に付加されているスタートコードを検出
することにより、スライス層を単位とした並列処理を行
うこととなる。なお、このスタートコードは、ビットス
トリーム中でそれ以外には絶対に存在しない32ビット
のコードであり、スライス層以上の各層の先頭に付加さ
れているものである。In this case, as a first conceivable measure,
There is a method of increasing the apparent processing speed by parallelizing the decoding processing. However, the variable-length coded data is added to the head of each layer above the slice layer in the bit stream because the head of the next data cannot be known without decoding processing and parallelization is difficult. By detecting the start code, parallel processing is performed in units of slice layers. The start code is a 32-bit code that does not exist in the bit stream, and is added to the head of each layer above the slice layer.
【0013】しかし、スライス層を単位として分割して
並列処理を行うと、マクロブロック毎に動きベクトルが
異なることに起因して、並列に動作する各動き補償部が
メモリから参照画像データを読み出す際にアドレスのバ
ッティングを生じる可能性があり、動き補償予測処理を
並列に行うことができなくなる。これを避けるために
は、同じ参照画像データを書き込んだ参照画像メモリを
各並列処理毎に設けて独立にアクセスすればよいが、メ
モリコストの観点から実用的ではない。However, if the parallel processing is performed by dividing the slice layer into units, each motion compensator operating in parallel reads out the reference image data from the memory because the motion vector differs for each macroblock. In such a case, there is a possibility that address batting may occur, and motion compensation prediction processing cannot be performed in parallel. To avoid this, a reference image memory in which the same reference image data is written may be provided for each parallel processing and accessed independently, but this is not practical from the viewpoint of memory cost.
【0014】次に、第2に考えられる対策として、動き
補償部のさらに後段側に例えばフレームメモリを設け
て、ピクチャのデータ量の格差に応じた復号処理の時間
格差を吸収することにより、復号処理を見かけ上高速化
し、結果的に一定のデータレートで出力する方法があ
る。この方法によれば、逆量子化部3の逆量子化処理以
降で処理の並列化を必要とするが、可変長復号部2にお
ける可変長復号処理の処理速度自体は、取り込むビット
ストリームの平均ビットレート以上であればよく、比較
的簡単な回路構成で実現することができる。しかしなが
らこの場合、後段側に設けるフレームメモリは、大量の
画像データを数フレームにわたって蓄積することができ
る記憶容量を有したものである必要があり、これもメモ
リコストの観点から実用的ではない。Next, as a second conceivable countermeasure, for example, a frame memory is provided further downstream of the motion compensation unit to absorb a time difference in decoding processing according to a difference in data amount of a picture, thereby achieving decoding. There is a method in which the processing speed is apparently increased and, as a result, the data is output at a constant data rate. According to this method, it is necessary to parallelize the processing after the inverse quantization processing of the inverse quantization unit 3, but the processing speed itself of the variable length decoding processing in the variable length decoding unit 2 depends on the average bit rate of the captured bit stream. The rate may be higher than the rate, and it can be realized with a relatively simple circuit configuration. However, in this case, the frame memory provided in the subsequent stage needs to have a storage capacity capable of storing a large amount of image data over several frames, which is not practical from the viewpoint of memory cost.
【0015】本発明は、このような問題に鑑みてなされ
たものであり、MPEG2ハイレベルのように情報量の
多い圧縮データであっても、大規模なメモリ容量を必要
とせず、しかも動作速度を上げることを要することな
く、効率よく且つ高速に復号処理することが可能なMP
EGデコーダを提供することを課題とする。The present invention has been made in view of such a problem, and does not require a large-scale memory capacity even for compressed data having a large amount of information such as MPEG2 high level, and has an operation speed. MP that can perform efficient and high-speed decoding without having to raise
It is an object to provide an EG decoder.
【0016】[0016]
【課題を解決するための手段】本発明は、前記課題を解
決達成するため、以下の構成を有する。即ち、請求項1
に記載の発明に係るMPEGデコーダは、可変長符号デ
ータを画像データに復号するMPEGデコーダであっ
て、前記可変長符号データをラン長符号データに復号す
る復号手段と、前記ラン長符号データをブロックを単位
として分割して記憶する記憶手段と、前記記憶手段から
前記分割されたラン長符号データをブロックを単位とし
て並列的に読み出し、該ラン長符号データをブロックを
単位として並列的にラン長復号し並列的に逆量子化し並
列的に逆離散コサイン変換して空間データに変換する変
換手段と、前記空間データを動き補償予測処理して画像
データを生成する動き補償手段とを備えて構成されてい
る。Means for Solving the Problems The present invention has the following arrangement to achieve the above object. That is, claim 1
An MPEG decoder according to the present invention is an MPEG decoder for decoding variable-length code data into image data, a decoding unit for decoding the variable-length code data into run-length code data, and a block for decoding the run-length code data. Storage means for dividing and storing the run length code data in units of blocks, and the run length code data divided in units of blocks are read out in parallel from the storage means, and the run length code data is run length decoded in parallel in units of blocks. Conversion means for converting the spatial data into spatial data by inversely quantizing in parallel and performing inverse discrete cosine transform in parallel, and motion compensating means for generating image data by performing motion compensation prediction processing on the spatial data. I have.
【0017】また、請求項2に記載の発明に係るMPE
Gデコーダは、可変長符号データを画像データに復号す
るMPEGデコーダであって、前記可変長符号データを
マクロブロックの1水平ラインを単位として分割して記
憶する記憶手段と、前記記憶手段から前記分割された可
変長符号データを並列的に読み出し、該可変長符号デー
タを並列的にラン長符号データに復号して記憶する復号
記憶手段と、前記復号記憶手段から前記ラン長符号デー
タをブロックを単位として並列的に読み出し、該ラン長
符号データをブロックを単位として並列的にラン長復号
し並列的に逆量子化し並列的に逆離散コサイン変換して
空間データに変換する変換手段と、前記空間データを動
き補償予測処理して画像データを生成する動き補償手段
とを備えて構成されている。An MPE according to the second aspect of the present invention.
The G decoder is an MPEG decoder that decodes variable-length code data into image data, and stores the variable-length code data in units of one horizontal line of a macroblock and stores the divided data. Decoding variable-length code data in parallel, decoding and storing the variable-length code data into run-length code data in parallel, and decoding and storing the run-length code data from the decoding storage means in units of blocks. A conversion means for reading in parallel the run length code data in parallel in units of blocks, run length decoding in parallel, inverse quantization in parallel, and inverse discrete cosine transform in parallel to convert to spatial data; And motion compensation means for generating image data by performing motion compensation prediction processing.
【0018】請求項1に記載の発明に係るMPEGデコ
ーダによれば、復号手段は可変長符号データをラン長符
号データに復号し、記憶手段は前記ラン長符号データを
ブロックを単位として分割して記憶する。次に変換手段
は、記憶手段からブロックを単位として分割された複数
のラン長符号データを並列的に読み取って該複数のラン
長符号データを並列的にラン長復号し、例えば、量子化
されたブロック毎のDCT係数に変換し、さらにこのD
CT係数を並列的に逆量子化し本来のDCT係数に変換
する。そして、変換手段は、この本来のDCT係数を並
列的に逆離散コサイン変換して複数の空間データに変換
し、補償手段が前記空間データを動き補償予測処理して
画像データを生成する。以上により、可変長符号データ
を並列的に処理して画像データに復号する。According to the MPEG decoder according to the first aspect of the present invention, the decoding means decodes the variable length code data into run length code data, and the storage means divides the run length code data into blocks as units. Remember. Next, the conversion unit reads the plurality of run length code data divided in units of blocks from the storage unit in parallel, and decodes the plurality of run length code data in parallel by run length decoding. It is converted into DCT coefficients for each block, and this D
The CT coefficients are inversely quantized in parallel and converted to the original DCT coefficients. Then, the transforming unit converts the original DCT coefficients into a plurality of spatial data by performing inverse discrete cosine transform in parallel, and the compensating unit performs motion compensation prediction processing on the spatial data to generate image data. As described above, the variable-length code data is processed in parallel and decoded into image data.
【0019】請求項2に記載の発明に係るMPEGデコ
ーダによれば、可変長符号データを画像データに復号す
るMPEGデコーダであって、記憶手段は、可変長符号
データをマクロブロックの1水平ラインを単位として分
割して記憶する。復号記憶手段は、記憶手段から前記マ
クロブロックの1水平ライン毎に分割された複数の可変
長符号データを読み取り、並列的にブロック毎のラン長
符号データに復号して記憶する。次に変換手段は、復号
記憶手段からブロックを単位として分割された複数のラ
ン長符号データを並列的に読み取って該複数のラン長符
号データを並列的にラン長復号し、例えば、複数の量子
化されたDCT係数に変換し、さらにこのDCT係数を
並列的に逆量子化し本来のDCT係数に変換する。そし
て、変換手段は、この本来のDCT係数を並列的に逆離
散コサイン変換して複数の空間データに変換し、補償手
段が前記空間データを動き補償予測処理して画像データ
を生成する。以上により、可変長符号データを並列的に
処理して画像データに復号する。According to a second aspect of the present invention, there is provided an MPEG decoder for decoding variable length code data into image data, wherein the storage means stores the variable length code data in one horizontal line of a macro block. Divide and store as a unit. The decoding storage means reads a plurality of variable length code data divided for each horizontal line of the macroblock from the storage means, decodes the data into run length code data for each block in parallel, and stores the data. Next, the conversion unit reads the plurality of run length code data divided in units of blocks from the decoding storage unit in parallel, and decodes the plurality of run length code data in parallel by run length decoding. The DCT coefficients are converted into DCT coefficients, and the DCT coefficients are inversely quantized in parallel and converted into original DCT coefficients. Then, the transforming unit converts the original DCT coefficients into a plurality of spatial data by performing an inverse discrete cosine transform in parallel, and the compensating unit performs motion compensation prediction processing on the spatial data to generate image data. As described above, the variable-length code data is processed in parallel and decoded into image data.
【0020】[0020]
【発明の実施の形態】以下、図1から図4を参照しなが
ら、本発明の第1及び第2の実施の形態に係るMPEG
デコーダについて説明する。ここで、図1は、第1の実
施形態のMPEGデコーダの構成図である。また、図2
はその動作の説明図であり、輝度信号データ[Yデー
タ]及び色差信号データ[Cbデータ及びCrデータ]の
配列を表す。さらに、図3は本発明の第2の実施形態の
MPEGデコーダの構成図であり、図4はその動作の説
明図である。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, MPEG according to first and second embodiments of the present invention will be described with reference to FIGS.
The decoder will be described. Here, FIG. 1 is a configuration diagram of the MPEG decoder of the first embodiment. FIG.
Represents the sequence of is an explanatory view of the operation, the luminance signal data [Y Data and color difference signal data [C b data and C r data. FIG. 3 is a configuration diagram of an MPEG decoder according to a second embodiment of the present invention, and FIG. 4 is an explanatory diagram of its operation.
【0021】(第1の実施の形態について)図1に示す
第1の実施形態のMPEGデコーダは、可変長符号化に
よりデータ圧縮して得られる可変長符号データのビット
ストリームを外部から取り込む前段バッファ1と、該前
段バッファにより取り込まれた可変長符号データをラン
長符号データに復号すると共に動きベクトル等の各種制
御信号情報を抽出する可変長復号部2A(復号手段)
と、前記ラン長符号データをブロックを単位として分割
して記憶するブロックメモリ部BM(記憶手段)と、該
ブロックメモリ部BMから複数のラン長符号データを読
み出して該複数のラン長符号データをブロックを単位と
して並列的にラン長復号してブロック毎の複数の量子化
DCT係数に変換するラン長復号部RD(変換手段の一
部)と、前記複数の量子化DCT係数をブロックを単位
として並列的に逆量子化してブロック毎の複数のDCT
係数に変換する逆量子化部RQ(変換手段の一部)と、
前記複数のDCT係数をブロックを単位として並列的に
逆離散コサイン変換して空間データとしてのブロック毎
の複数の差分データに変換する逆DCT変換部RT(変
換手段の一部)と、前記複数の差分データと後述の参照
画像メモリから読み出した参照画像データとに基づいて
動き補償予測処理して画像データを生成する動き補償部
5A(動き補償手段)と、前記可変長復号部2Aが出力
した各種制御信号情報を格納する制御信号用メモリSM
と、図示しない音声デコーダ等との同期を考慮した外部
からのスタートパルスと制御信号用メモリSMから読み
取る各種制御信号情報とに基づいてラン長復号部RD及
び逆量子化部RQの動作を制御すると共に動き補償部5
Aに動きベクトル情報等を与えるコントロール部CTL
と、前記逆量子化部での各ブロックに共通する処理をま
とめて行う共通処理部CM(変換手段の一部)と、前記
参照画像データが格納された参照画像用メモリRM(動
き補償手段の一部)とを備えて構成されている。(First Embodiment) The MPEG decoder according to the first embodiment shown in FIG. 1 is a pre-stage buffer which takes in a bit stream of variable-length code data obtained by compressing data by variable-length coding from the outside. 1 and a variable length decoding unit 2A (decoding means) for decoding variable length code data fetched by the preceding buffer into run length code data and extracting various control signal information such as motion vectors.
A block memory unit BM (storage means) for dividing and storing the run length code data in units of blocks, and reading a plurality of run length code data from the block memory unit BM and storing the plurality of run length code data A run length decoding unit RD (part of the conversion unit) that performs run length decoding in parallel for each block and converts it to a plurality of quantized DCT coefficients for each block, and the plurality of quantized DCT coefficients for each block Multiple DCTs for each block by inverse quantization in parallel
An inverse quantization unit RQ (a part of a conversion unit) for converting into a coefficient,
An inverse DCT transforming unit RT (part of a transforming unit) for transforming the plurality of DCT coefficients into a plurality of differential data for each block as spatial data by performing an inverse discrete cosine transform in parallel on a block basis; A motion compensator 5A (motion compensator) for generating image data by performing motion compensation prediction processing based on the difference data and reference image data read from a reference image memory described later, and various types of signals output by the variable length decoder 2A. Control signal memory SM for storing control signal information
The operation of the run length decoding unit RD and the inverse quantization unit RQ is controlled based on external start pulses in consideration of synchronization with an audio decoder (not shown) and various control signal information read from the control signal memory SM. Together with the motion compensator 5
A control unit CTL that gives motion vector information to A
A common processing unit CM (part of the conversion unit) that collectively performs processing common to each block in the inverse quantization unit; and a reference image memory RM (the motion compensation unit) that stores the reference image data. ).
【0022】ここで、ブロックメモリ部BMは、それぞ
れが輝度、色差の各ブロックに対応したブロックメモリ
Y1〜Y4,CB,CRとから構成されている。また、ラ
ン長復号部RDは、これらブロックメモリY1〜Y4,C
B,CRのそれぞれから対応するブロックのラン長符号
データを読み取って、ブロックを単位として並列的にラ
ン長復号して量子化DCT係数を出力するラン長復号器
RD1〜RD4,RDCB,RDCRから構成されている。Here, the block memory unit BM is composed of block memories Y 1 to Y 4 , CB and CR, each corresponding to each block of luminance and color difference. In addition, the run length decoding unit RD stores these block memories Y 1 to Y 4 , C
Run length decoders RD 1 to RD 4 , RD CB , which read run length code data of a corresponding block from each of B and CR, and run length decode in parallel in block units to output quantized DCT coefficients. RD CR .
【0023】さらに、逆量子化部RQは、前記ラン長復
号器RD1〜RD4,RDCB,RDCRのそれぞれから対応
する量子化DCT係数を入力してブロックを単位として
並列的に逆量子化してDCT係数を出力する逆量子化器
RQ1〜RQ4,RQCB,RQCRから構成されている。さ
らにまた、逆DCT変換部RTは、前記逆量子化器RQ
1〜RQ4,RQCB,RQCRのそれぞれから対応するブロ
ックのDCT係数を入力してブロックを単位として並列
的に逆DCT変換してブロック毎の差分データを出力す
る逆DCT変換器RT1〜RT4,RTCB,RTCRから構
成されている。さらにまた、参照画像メモリ部RMは、
ラン長復号部RD、逆量子化部RQ及び逆DCT変換部
RTにおいてそれぞれ並列処理されるブロック数に応じ
た数のメモリM1〜M6から構成されている。Further, the inverse quantization unit RQ receives the corresponding quantized DCT coefficients from each of the run-length decoders RD 1 to RD 4 , RD CB , and RD CR and performs inverse quantization in units of blocks in parallel. It comprises inverse quantizers RQ 1 to RQ 4 , RQ CB , and RQ CR which output the converted DCT coefficients. Furthermore, the inverse DCT transform unit RT includes the inverse quantizer RQ
1 ~RQ 4, RQ CB, parallel inverse DCT inverse DCT transformer RT 1 outputs the differential data of each block-block as a unit by entering the DCT coefficients of the corresponding block from each RQ CR It is composed of RT 4 , RT CB and RT CR . Furthermore, the reference image memory unit RM
The run length decoding unit RD, the inverse quantization unit RQ, and the inverse DCT transform unit RT each include a number of memories M 1 to M 6 according to the number of blocks to be processed in parallel.
【0024】以下、このように構成された本実施形態の
MPEGデコーダの動作について説明する。先ず、前段
バッファ1を介して可変長符号データのビットストリー
ムを可変長復号部2Aが取り込むと、この可変長復号部
2Aは、可変長符号データから、各ピクチャに関する制
御信号や量子化マトリックスデータ、或いは動きベクト
ルやマクロブロックアドレス等のマクロブロックに関す
る各種制御信号情報を抽出して制御信号用メモリSMに
書き込む。Hereinafter, the operation of the MPEG decoder having the above-described configuration according to the present embodiment will be described. First, when the variable length decoding unit 2A captures a bit stream of variable length code data via the pre-stage buffer 1, the variable length decoding unit 2A converts the variable length code data into a control signal, quantization matrix data, Alternatively, various control signal information relating to a macroblock such as a motion vector and a macroblock address is extracted and written into the control signal memory SM.
【0025】それと同時に、可変長復号部2Aは、取り
込んだ可変長符号データから画像情報を含んだラン長符
号データを抽出し、ブロックを単位としてブロックメモ
リY1〜Y4,CB,CRに振り分けていく。なお、本実
施形態では、各ブロック毎に専用のブロックメモリを設
けてブロックメモリ部BMを構成したが、ラン長符号デ
ータの0ランとそれに続くレベルをブロック単位で識別
可能なようにフラグを添付して、1つのメモリの連続し
たアドレス空間に各ブロック毎のラン長符号データを連
続的に格納するものとして構成してもよく、このように
構成した場合、各ブロック毎に専用のブロックメモリを
設ける必要がなくなる。At the same time, the variable-length decoding unit 2A extracts run-length code data including image information from the fetched variable-length code data and distributes the data to the block memories Y 1 to Y 4 , CB, and CR in units of blocks. To go. In the present embodiment, the block memory unit BM is configured by providing a dedicated block memory for each block. However, a flag is attached so that 0 run of run length code data and the subsequent level can be identified in block units. Then, the run length code data for each block may be continuously stored in a continuous address space of one memory. In this case, a dedicated block memory is provided for each block. There is no need to provide them.
【0026】ここで、可変長復号部2Aがラン長符号デ
ータをブロックメモリY1〜Y4,CB,CRに振り分け
るに際し、マクロブロックに関する情報であるCBP
(Coded Block Pattern)によりマクロブロック中の特
定のブロックにデータが存在しないことが示されている
場合(オール0)には、0ランを64(ブロックの総画
素数)にするか、或いはデータが存在しないことを示す
フラグ等を添付して、そのブロックのブロックメモリに
書き込んでおく。また、ブロックのスタートにスタート
フラグ、或いはブロックの終わりにエンドオブブロック
のフラグを添付することにより、読み出し時にブロック
の区切りの識別が可能なようにしておく。Here, when the variable-length decoding unit 2A sorts the run-length code data into the block memories Y 1 to Y 4 , CB, and CR, CBP, which is information on macro blocks, is used.
If (Coded Block Pattern) indicates that data does not exist in a specific block in the macroblock (all 0), 0 run is set to 64 (total number of pixels in the block), or A flag indicating that the block does not exist is attached and written in the block memory of the block. A start flag is added to the start of a block, or an end-of-block flag is added to the end of a block, so that a block break can be identified at the time of reading.
【0027】次に、図示しない音声デコーダ等との同期
を考慮した外部からのスタートパルスによってコントロ
ール部CTLが動作を開始する。このコントロール部C
TLは、制御信号用メモリSMから各種制御信号情報を
取り入れ、この各種制御信号情報に基づきマクロブロッ
ク単位或いはピクチャ単位で、ラン長復号部RDや逆量
子化部RQなどの制御を行う。Next, the control section CTL starts operation by an external start pulse in consideration of synchronization with an audio decoder (not shown) or the like. This control section C
The TL fetches various control signal information from the control signal memory SM, and controls the run length decoding unit RD and the inverse quantization unit RQ on a macroblock basis or on a picture basis based on the various control signal information.
【0028】即ち、ラン長復号部RDを構成するラン長
復号器RD1〜RD4,RDCB,RDCRのそれぞれは、コ
ントロール部CTLからのマクロブロック毎のスタート
パルスをトリガーとして、対応するブロックメモリY1
〜Y4,CB,CRからラン長符号データの読み出しを
開始し、ブロックの区切りを検出するまでブロックメモ
リY1〜Y4,CB,CRをアクセスしながらラン長符号
データをラン長復号し、ブロックを単位として量子化D
CT係数を出力する。That is, each of the run length decoders RD 1 to RD 4 , RD CB , and RD CR constituting the run length decoding unit RD is triggered by a start pulse for each macro block from the control unit CTL as a trigger. Memory Y 1
To Y 4, CB, starts reading of the run-length code data from the CR, the run-length code data and run length decoding while accessing the block memory Y 1 ~Y 4, CB, CR until it detects a delimiter of the block, Quantization D per block
Output CT coefficients.
【0029】そして、ブロックの区切りを検出すると、
ラン長復号器RD1〜RD4,RDCB,RDCRは、それぞ
れブロックメモリY1〜Y4,CB,CRからの読み出し
を停止し、次のスタートパルスが入力されるまで0値を
出力し続ける。なお、コントロール部CTLが、制御信
号用メモリSMからの情報によりマクロブロックのアド
レスがスキップしていると判断した場合にも、マクロブ
ロックアドレスがスキップしている期間中、同様に0値
を出力する。When a block break is detected,
The run length decoders RD 1 to RD 4 , RD CB , and RD CR stop reading from the block memories Y 1 to Y 4 , CB, and CR, and output 0 values until the next start pulse is input. to continue. Even when the control unit CTL determines that the address of the macroblock is skipped based on the information from the control signal memory SM, the control unit CTL similarly outputs the value 0 during the period in which the macroblock address is skipped. .
【0030】以後、動き補償部5Aに至る処理はブロッ
クを単位として並列に行われる。即ち、ラン長復号部R
Dにより並列的にラン長復号されて得られたブロック毎
の量子化DCT係数は逆量子化部RQに与えられ、この
逆量子化部RQを構成する逆量子化器RQ1〜RQ4,R
QCB,RQCRのそれぞれが、対応するブロックの量子化
DCT係数を(本来の)DCT係数に変換する。この逆
量子化部RQでは、一般にデータの並び替え及び量子化
マトリックス等との乗算処理を行ってDCT係数を求め
るが、データに乗算するための値を量子化マトリックス
等を用いて計算するといった各ブロックに共通した処理
は一つにまとめて、コントロール部CTLに制御されて
動作する共通処理部CMが担う。Thereafter, the processing up to the motion compensation section 5A is performed in parallel on a block basis. That is, the run length decoding unit R
Quantized DCT coefficients for each block obtained by parallel run length decoding by D are supplied to an inverse quantization unit RQ, and inverse quantizers RQ 1 to RQ 4 , R constituting the inverse quantization unit RQ
Each of Q CB and RQ CR converts the quantized DCT coefficient of the corresponding block into an (original) DCT coefficient. In the inverse quantization unit RQ, generally, data is rearranged and a multiplication process with a quantization matrix or the like is performed to obtain a DCT coefficient. However, a value for multiplying data is calculated using a quantization matrix or the like. The processes common to the blocks are collectively performed by the common processing unit CM that operates under the control of the control unit CTL.
【0031】次に、逆量子化部RQにより得られたブロ
ック毎のDCT係数は、逆DCT変換部RTに与えら
れ、この逆DCT変換部RTを構成する逆DCT変換器
RT1〜RT4,RTCB,RTCRのそれぞれは、対応する
ブロックのDCT係数を空間データとしての差分データ
にブロックを単位として並列的に変換する。この差分デ
ータは、その前に復号されて参照画像メモリRMに格納
されている画像データとの差分を表すものである。な
お、この逆DCT変換部RTでは、DCT係数から画像
の差分データを生成するにあたって、コントロール部C
TLから与えられるフィールドDCTとフレームDCT
とを選択するための選択信号に基づき差分データの並べ
換えを行って後段の動き補償部5Aに出力する。Next, the DCT coefficients for each block obtained by the inverse quantization unit RQ are supplied to an inverse DCT transform unit RT, and the inverse DCT transform units RT 1 to RT 4 , RT 4 to RT 4 constituting the inverse DCT transform unit RT Each of RT CB and RT CR converts the DCT coefficient of the corresponding block into difference data as spatial data in parallel on a block basis. This difference data represents a difference from the image data decoded before and stored in the reference image memory RM. In the inverse DCT transform section RT, when generating image difference data from DCT coefficients, the control section C
Field DCT and frame DCT given from TL
Are rearranged on the basis of a selection signal for selecting (i) and (ii) and output to the subsequent motion compensation unit 5A.
【0032】そして、動き補償部5Aでは、逆DCT変
換部RTから入力するマクロブロックを構成する各ブロ
ック毎の差分データに参照画像メモリRMから読み出し
た参照画像データを加算して動き補償予測処理を施した
後、各ブロック毎の画像データを並び替えて連結し、Y
/Cコンポーネント信号として構成された画像データを
高速に出力する。このように、動き補償部5Aは、マク
ロブロックを構成する各ブロックの差分データを取り込
み、マクロブロックを単位として動き補償予測処理を施
す。Then, the motion compensation unit 5A adds the reference image data read from the reference image memory RM to the difference data of each block constituting the macroblock input from the inverse DCT transform unit RT to perform the motion compensation prediction process. After that, the image data of each block is rearranged and connected, and Y
The image data configured as the / C component signal is output at high speed. As described above, the motion compensation unit 5A captures the difference data of each block constituting the macroblock, and performs the motion compensation prediction process on a macroblock basis.
【0033】ここで、動き補償部5Aが、差分データに
参照画像データを加算するにあたって、この差分データ
がイントラブロックの場合には、差分データに0値を加
算する。また、差分データと参照画像データとを加算し
て得られる画像データがIピクチャまたはPピクチャの
場合には、各ブロックのIピクチャまたはPピクチャの
画像データを、参照画像用メモリRMを構成するメモリ
M1〜M6に分割して書き込み、参照画像用メモリRMの
内容を更新する。即ち、参照画像メモリRMは、1ブロ
ック単位のIピクチャまたはPピクチャの画像データを
分割して格納する。Here, when the motion compensation unit 5A adds the reference image data to the difference data, if the difference data is an intra block, the motion compensation unit 5A adds 0 to the difference data. When the image data obtained by adding the difference data and the reference image data is an I picture or a P picture, the image data of the I picture or the P picture of each block is stored in a memory constituting the reference image memory RM. The content is divided and written into M 1 to M 6 to update the contents of the reference image memory RM. That is, the reference image memory RM divides and stores the I-picture or P-picture image data in units of one block.
【0034】この参照画像用メモリRMの内容を更新す
る場合、例えば図2に示すように、ブロック並列に画素
単位でブロック内の画像データをメモリM1〜M6に分割
して書き込む(図中の数字1〜6は、メモリM1〜M6に
対応)。このとき、アクセスするアドレスを、メモリM
1〜M6のそれぞれにおいて同一とする。これにより、メ
モリM1〜M6からブロック並列にデータを読み出す場
合、同図に例示するように、各ブロックに対応する読み
出しデータは常に互いに異なるメモリにあるので、メモ
リアクセスのバッティングを回避することができる。When updating the contents of the reference image memory RM, for example, as shown in FIG. 2, the image data in the block is divided and written into the memories M 1 to M 6 in units of pixels in parallel with the block (FIG. 2). of the numbers 1 to 6, corresponding to the memory M 1 ~M 6). At this time, the address to be accessed is stored in the memory M
It is the same in each of the 1 ~M 6. As a result, when data is read out from the memories M 1 to M 6 in a block parallel manner, as shown in the figure, since the read data corresponding to each block is always in different memories, it is necessary to avoid memory access batting. Can be.
【0035】以上説明したように、第1の実施形態のM
PEGデコーダによれば、動きベクトルが同一となるマ
クロブロック内でブロック並列に復号処理し、ブロック
内の画像データを分割して参照画像メモリ部RMに書き
込むことにより、動き補償予測処理におけるメモリアク
セスのバッティングを回避して参照画像メモリRMから
各ブロックの参照画像データを読み出すことができる。As described above, M of the first embodiment
According to the PEG decoder, decoding processing is performed in a block parallel manner in a macroblock having the same motion vector, and image data in the block is divided and written into the reference image memory unit RM. It is possible to read the reference image data of each block from the reference image memory RM while avoiding butting.
【0036】また、データ量の格差に起因した処理時間
の格差は、可変長復号処理の過程でブロックメモリによ
り吸収されるので、比較的小さなメモリ容量でMPEG
デコーダを構成することができる。さらに、ブロックを
単位として並列に復号処理を行うので、マクロブロック
内で共通な制御信号を生成する回路部分を共用して各ブ
ロックの制御信号を生成することができる。The processing time difference caused by the data amount difference is absorbed by the block memory during the variable length decoding process.
A decoder can be configured. Further, since the decoding process is performed in units of blocks in parallel, a control signal for each block can be generated by sharing a circuit portion for generating a common control signal within a macroblock.
【0037】(第2の実施の形態について)次に、本発
明の第2の実施形態のMPEGデコーダについて、図3
及び図4を参照しながら説明する。以下に説明する第2
の実施形態のMPEGデコーダと前述の第1の実施形態
のMPEGデコーダとの相異点は、本実施形態のMPE
Gデコーダが、可変長符号データをマクロブロックの1
水平ライン毎に分割し、ラン長復号処理以降を第1の実
施形態と同様にブロック単位で並列的に行う点にある。(Regarding the Second Embodiment) Next, an MPEG decoder according to a second embodiment of the present invention will be described with reference to FIG.
This will be described with reference to FIG. The second described below
The difference between the MPEG decoder of this embodiment and the MPEG decoder of the first embodiment is that
The G decoder converts the variable-length code data into one macro block.
It is divided into horizontal lines, and the run length decoding processing and subsequent steps are performed in parallel in block units as in the first embodiment.
【0038】即ち、図3に示す第2の実施形態のMPE
Gデコーダは、図1に示すMPEGデコーダを構成する
可変長復号部2A及びブロックメモリ部BMに代えて、
前段バッファ1に取り込まれた可変長符号データから各
種制御信号や量子化マトリックスデータ等のピクチャ情
報を抽出すると共に前記可変長符号データをマクロブロ
ックの1水平ライン毎に抽出するピクチャ情報抽出部
と、該ピクチャ情報抽出部に抽出された可変長符号デー
タをマクロブロックの1水平ラインを単位として分割し
て記憶するマクロブロックラインメモリBLM(記憶手
段)と、該マクロブロックラインメモリBLMから前記
分割された複数の可変長符号データを読み出し、該複数
の可変長符号データを並列的に“ブロック毎”のラン長
符号データに復号して記憶すると共にマクロブロック情
報を出力する可変長復号処理部VLC(復号記憶手段)
とを備え、さらに、図1に示す制御信号用メモリSM、
コントロール部CTL及び共通処理部CMに代えて、前
記ピクチャ情報を格納するピクチャ制御信号用メモリP
Mと、前記ピクチャ情報及びマクロブロック情報に基づ
いてラン長復号部RD及び逆量子化部RQの動作を制御
すると共に動き補償部5Aに動きベクトル情報等を出力
するコントロール部CTLaとを備えて構成されてい
る。That is, the MPE of the second embodiment shown in FIG.
The G decoder replaces the variable length decoding unit 2A and the block memory unit BM that constitute the MPEG decoder shown in FIG.
A picture information extraction unit for extracting picture information such as various control signals and quantization matrix data from the variable length code data taken into the preceding buffer 1 and extracting the variable length code data for each horizontal line of a macroblock; A macroblock line memory BLM (storage means) for dividing the variable-length code data extracted by the picture information extraction unit in units of one horizontal line of a macroblock and storing the divided data, and the divided macroblock line memory BLM. A variable-length decoding processing unit VLC (decoding) that reads a plurality of variable-length code data, decodes and stores the plurality of variable-length code data in parallel into run-length code data “per block”, and outputs macroblock information. Storage means)
And a control signal memory SM shown in FIG.
A picture control signal memory P for storing the picture information instead of the control unit CTL and the common processing unit CM
M, and a control unit CTLa that controls operations of the run length decoding unit RD and the inverse quantization unit RQ based on the picture information and the macroblock information, and outputs motion vector information and the like to the motion compensation unit 5A. Have been.
【0039】ここで、マクロブロックラインメモリBL
Mは、マクロブロックの1水平ライン毎の可変長符号デ
ータを記憶するラインメモリYL1〜YL6とから構成さ
れている。また、可変長復号処理部VLCは、前記ライ
ンメモリYL1〜YL6のそれぞれから対応する可変長符
号データを読み取ってマクロブロックの1水平ラインを
単位として並列的に可変長復号してラン長符号データを
生成する可変長復号器VL1〜VL6と、これらの後段に
接続されて対応するマクロブロックの1水平ライン毎の
前記ラン長符号データを格納するマクロブロックメモリ
YB1〜YB6とから構成されている。なお、マクロブロ
ックの1水平ラインを単位としたデータを格納するライ
ンメモリYL1〜YL6は、前述の図1に示すブロックを
単位としたデータを格納するブロックメモリY1〜Y4,
CB,CRに比較して記憶容量がはるかに小さなものと
なっている。Here, the macro block line memory BL
M is composed of line memories YL 1 to YL 6 for storing variable-length code data for each horizontal line of the macro block. The variable-length decoding processing unit VLC reads the corresponding variable-length code data from each of the line memories YL 1 to YL 6 , and performs variable-length decoding in parallel with one horizontal line of the macroblock as a unit to execute the run-length code. a variable length decoder VL 1 ~VL 6 for generating data, from the macro block memory YB 1 ~YB 6 Tokyo for storing the run-length code data of each horizontal line of the corresponding macroblock are connected to these latter stage It is configured. Incidentally, the line memory YL 1 stores data of one horizontal line of the macroblock as a unit ~YL 6 is block memory Y 1 to Y 4 which stores data in units of blocks shown in FIG. 1 described above,
The storage capacity is much smaller than CB and CR.
【0040】以下、このように構成された本実施形態の
MPEGデコーダの動作を説明する。先ず、図示しない
音声デコーダ等との同期を考慮した外部からのスタート
パルスによって復号動作が開始され、前段バッファ1を
介して可変長符号データのビットストリームがピクチャ
情報抽出部PEへ取り込まれる。ピクチャ情報抽出部P
Eは、ピクチャに関する制御信号や量子化マトリックス
データ等のピクチャ情報を抽出してピクチャ制御信号用
メモリPMに書き込む。Hereinafter, the operation of the MPEG decoder thus configured according to the present embodiment will be described. First, a decoding operation is started by an external start pulse in consideration of synchronization with an audio decoder or the like (not shown), and a bit stream of variable-length code data is taken into the picture information extraction unit PE via the pre-stage buffer 1. Picture information extraction unit P
E extracts picture information such as a control signal relating to the picture and quantization matrix data and writes the extracted picture information into the picture control signal memory PM.
【0041】それと同時に、ピクチャ情報抽出部PE
は、可変長符号データからスライス層のスタートコード
を検出し、スライス層以下のビットストリームをマクロ
ブロックの1水平ライン毎に(マクロブロックの1水平
ラインを単位として)振り分けてマクロブロックライン
メモリBLMを構成する6つのラインメモリYL1〜Y
L6に順次書き込んでいく。次に、可変長復号処理部V
LCの前段を構成する可変長復号器VL1〜VL6は、6
つのマクロブロックラインメモリYL1〜YL6へのデー
タの書き込みが終了すると、これらを適宜読み取ってマ
クロブロックの1水平ラインを単位として並列に可変長
復号処理を開始する。At the same time, the picture information extraction unit PE
Detects the start code of the slice layer from the variable-length code data, allocates the bit stream of the slice layer and below to each macroblock horizontal line (in units of one horizontal line of the macroblock), and stores the macroblock line memory BLM in the macroblock line memory BLM. Six line memories YL 1 to Y to configure
Sequentially writes to L 6. Next, the variable length decoding processing unit V
The variable length decoders VL 1 to VL 6 constituting the preceding stage of the LC are 6
One macro when writing data to the block line memory YL 1 ~YL 6 is completed, starts the variable length decoding in parallel of these units of one horizontal line of the appropriately read by the macroblock.
【0042】この可変長復号処理部VLCにおける各可
変長復号の並列処理は、前述の第1の実施形態と同様
に、ラン長符号データの状態で行い、この処理結果は後
段のマクロブロックメモリYB1〜YB6のそれぞれに書
き込まれる。なお、ピクチャ層以上の情報は各マクロブ
ロックラインで共通であり、ピクチャ制御信号用メモリ
PMに書き込まれる。The parallel processing of each variable-length decoding in the variable-length decoding processing unit VLC is performed in the state of run-length code data, as in the first embodiment, and the processing result is stored in the macroblock memory YB in the subsequent stage. written in each of the 1 ~YB 6. The information on the picture layer and above is common to each macroblock line, and is written in the picture control signal memory PM.
【0043】ここで、前述の第1の実施形態の場合、音
声デコーダ等との同期を考慮した外部からのスタートパ
ルスをトリガーとしてコントロール部が復号動作を開始
したが、前述のように、本実施形態のラインメモリYL
1〜YL6は、図1に示す第1の実施形態のブロックメモ
リY1〜Y4,CB,CRに比較して記憶容量がはるかに
小さいので、ピクチャ単位のデータを格納することがで
きない。従って、ピクチャ単位で図示しない外部装置か
ら出力されるスタートパルスをトリガーとして動作する
ことができない。Here, in the case of the above-described first embodiment, the control unit starts the decoding operation with an external start pulse in consideration of synchronization with an audio decoder or the like as a trigger. Form of line memory YL
Since 1 to YL 6 have a much smaller storage capacity than the block memories Y 1 to Y 4 , CB, and CR of the first embodiment shown in FIG. 1, they cannot store picture-based data. Therefore, the operation cannot be triggered by a start pulse output from an external device (not shown) for each picture.
【0044】このため、復号動作開始の制御は前段バッ
ファ1からピクチャ情報抽出部PEにビットストリーム
を取り込む時に行う。即ち、コントロール部CTLa
は、ラインメモリYL1〜YL6がある程度データで満た
された状態となったときに動作を開始し、ピクチャ制御
信号用メモリPMから各種制御信号情報を取り入れ、こ
の各種制御信号情報に基づきピクチャ単位でラン長復号
部RD等の復号動作の開始を制御する。For this reason, the control of the start of the decoding operation is performed when the bit stream is fetched from the preceding buffer 1 into the picture information extraction unit PE. That is, the control unit CTLa
Starts operation when the line memory YL 1 ~YL 6 is a state filled with some data, incorporating the various control signal information from the memory PM for picture control signal, a picture unit on the basis of the various control signal information Controls the start of the decoding operation of the run length decoding unit RD and the like.
【0045】このようにして復号動作が開始すると、コ
ントロール部CTLaは、マクロブロックメモリYB1
〜YB6に付加されたマクロブロック情報を順々に取り
込む。そして、この情報に基づいてラン長復号部RD以
降の動作を制御し、ブロックメモリYB1〜YB6にそれ
ぞれ格納されたラン長符号データを順々に取り出し、前
述の第1の実施形態と同様に、ブロックを単位とした並
列処理を施す。When the decoding operation is started in this way, the control unit CTLa sends the macro block memory YB 1
Incorporating in turn the macroblock information added to ~YB 6. Then, based on this information, the operation after the run length decoding unit RD is controlled, and the run length code data respectively stored in the block memories YB 1 to YB 6 are sequentially taken out, and the same as in the first embodiment described above. Is subjected to parallel processing in units of blocks.
【0046】ここで、ラン長復号部RD以降における並
列処理は、基本的に前述の第1の実施形態と同様である
が、マクロブロックの処理順が異なる。即ち、マクロブ
ロックがスキップした場合、このスキップ期間中、動き
ベクトル等の情報を確保する必要があることから、コン
トロール部CTLaは、6マクロブロック分のマクロブ
ロック情報を一時的に格納するためのバッファメモリ
(図示せず)を備える。そして、図4に処理順を例示す
るように、コントロール部CTLaが備えるバッファメ
モリに一旦格納された6マクロブロック分のデータを、
最初にマクロブロックラインメモリBLMに振り分けた
順に従って、マクロブロックを単位としてに垂直方向に
順次復号処理するようにラン長復号部RD以降の動作の
制御を行う。Here, the parallel processing after the run length decoding unit RD is basically the same as that of the first embodiment, but the processing order of the macro blocks is different. That is, when a macroblock is skipped, it is necessary to secure information such as a motion vector during the skip period. Therefore, the control unit CTLa provides a buffer for temporarily storing macroblock information for six macroblocks. A memory (not shown) is provided. Then, as illustrated in FIG. 4, the processing order for the data of six macroblocks once stored in the buffer memory of the control unit CTLa is
First, the operations after the run length decoding unit RD are controlled so that decoding processing is sequentially performed in the vertical direction in units of macroblocks in accordance with the order of allocation to the macroblock line memories BLM.
【0047】この場合、動き補償部5Aにおいても同様
にマクロブロックの処理順が異なるが、マクロブロック
のアドレス情報(マクロブロック情報)に基づき予測の
処理を行うことで、前述の第1の実施形態と同様に参照
画像データのアドレスのバッティングを回避することが
できる。最後に、この動き補償部5Aは、ブロックを単
位として並列処理して得られた画像データの順番を並び
替えて連結し、Y/Cコンポーネント信号として構成さ
れた画像データを高速に出力する。In this case, the processing order of the macroblocks is similarly different in the motion compensating unit 5A, but the prediction processing is performed based on the address information (macroblock information) of the macroblock, whereby the above-described first embodiment is performed. As in the case of (1), it is possible to avoid the batting of the address of the reference image data. Finally, the motion compensating unit 5A rearranges and connects the order of the image data obtained by performing the parallel processing in units of blocks, and outputs the image data configured as the Y / C component signal at a high speed.
【0048】[0048]
【発明の効果】以上の説明から明らかなように、本発明
によれば、以下のような効果を得ることができる。即
ち、請求項1に記載の発明によれば、ブロックを単位と
した複数単位の可変長符号データを並列的にラン長復号
処理、逆量子化処理及び逆離散コサイン変換処理するよ
うに構成したので、可変長復号部(復号手段)の処理速
度は、少なくとも可変長符号データのビットストリーム
の平均ビットレート以上であればよく、可変長復号部の
動作速度を上げることなく大量の圧縮データをリアルタ
イムに復号することができる。As is apparent from the above description, according to the present invention, the following effects can be obtained. That is, according to the first aspect of the present invention, a plurality of units of variable length code data in units of blocks are configured to be subjected to run length decoding, inverse quantization, and inverse discrete cosine transform in parallel. The processing speed of the variable-length decoding unit (decoding means) should be at least equal to or higher than the average bit rate of the bit stream of variable-length code data, and a large amount of compressed data can be processed in real time without increasing the operation speed of the variable-length decoding unit. Can be decrypted.
【0049】また、請求項2に記載の発明によれば、請
求項1に記載の発明の構成に加えて、可変長符号データ
をマクロブロックを単位として並列に可変長復号するよ
うに構成したので、請求項1に記載の発明により得られ
る効果に加えて、可変長復号処理速度を上げることがで
きる。この結果、可変長復号の過程において必要とする
メモリ容量を大幅に削減することができる。According to the second aspect of the present invention, in addition to the configuration of the first aspect, variable-length code data is configured to be variable-length decoded in parallel in units of macroblocks. In addition to the effects obtained by the first aspect of the present invention, the variable-length decoding processing speed can be increased. As a result, the memory capacity required in the variable length decoding process can be significantly reduced.
【0050】従って、請求項1及び請求項2に記載の発
明によれば、MPEG2ハイレベルが対象とするような
情報量の多い圧縮データであっても、動作速度を上げる
ことなく、少ないメモリ容量で、効率よく、しかもリア
ルタイムに復号処理が可能なMPEGデコーダを実現す
ることができる。Therefore, according to the first and second aspects of the present invention, even if the compressed data has a large amount of information such as MPEG2 high level, the operation speed is not increased and the memory capacity is small. Thus, it is possible to realize an MPEG decoder that can efficiently perform decoding processing in real time.
【図面の簡単な説明】[Brief description of the drawings]
【図1】本発明の第1の実施形態に係るMPEGデコー
ダの構成図である。FIG. 1 is a configuration diagram of an MPEG decoder according to a first embodiment of the present invention.
【図2】本発明の第1の実施形態に係るMPEGデコー
ダの動作の説明図である。FIG. 2 is an explanatory diagram of an operation of the MPEG decoder according to the first embodiment of the present invention.
【図3】本発明の第2の実施形態に係るMPEGデコー
ダの構成図である。FIG. 3 is a configuration diagram of an MPEG decoder according to a second embodiment of the present invention.
【図4】本発明の第2の実施形態に係るMPEGデコー
ダの動作の説明図である。FIG. 4 is an explanatory diagram of an operation of an MPEG decoder according to a second embodiment of the present invention.
【図5】従来のMPEGデコーダの構成図である。FIG. 5 is a configuration diagram of a conventional MPEG decoder.
【図6】MPEGデコーダが復号処理の対象とする可変
長符号データの階層構造を説明するための説明図であ
る。FIG. 6 is an explanatory diagram for explaining a hierarchical structure of variable-length code data to be decoded by an MPEG decoder.
【図7】MPEGデコーダが復号処理の対象とする可変
長符号データのピクチャ層のデータ比率を説明するため
の図である。FIG. 7 is a diagram illustrating a data ratio of a picture layer of variable-length code data to be decoded by an MPEG decoder.
【符号の説明】 1 前段バッファ 2A 可変長復号部 5A 動き補償部 BM ブロックメモリ部 BLM マクロブロックラインメモリ部 CM 共通処理部 CTL,CTLa コントロール部 PE ピクチャ情報抽出部 PM ピクチャ制御信号用メモリ RD ラン長復号部 RM 参照画像メモリ部 RQ 逆量子化部 RT 逆DCT変換部 SM 制御信号用メモリ VLC 可変長復号処理部[Description of Code] 1 Pre-stage buffer 2A Variable length decoding unit 5A Motion compensation unit BM block memory unit BLM macro block line memory unit CM common processing unit CTL, CTLa control unit PE Picture information extraction unit PM Picture control signal memory RD Run length Decoding unit RM Reference image memory unit RQ Inverse quantization unit RT Inverse DCT transformation unit SM Control signal memory VLC Variable length decoding processing unit
Claims (2)
るMPEGデコーダであって、 前記可変長符号データをラン長符号データに復号する復
号手段と、 前記ラン長符号データをブロックを単位として分割して
記憶する記憶手段と、 前記記憶手段から前記分割されたラン長符号データをブ
ロックを単位として並列的に読み出し、該ラン長符号デ
ータをブロックを単位として並列的にラン長復号し並列
的に逆量子化し並列的に逆離散コサイン変換して空間デ
ータに変換する変換手段と、 前記空間データを動き補償予測処理して画像データを生
成する動き補償手段とを備えたことを特徴とするMPE
Gデコーダ。An MPEG decoder for decoding variable-length code data into image data, decoding means for decoding the variable-length code data into run-length code data, and dividing the run-length code data into blocks. Storage means for reading and storing the divided run length code data from the storage means in units of blocks in parallel, and run length decoding of the run length code data in units of blocks in parallel and inversely in parallel An MPE comprising: a conversion unit for quantizing and performing inverse discrete cosine transform in parallel to convert to spatial data; and a motion compensation unit for generating image data by performing motion compensation prediction processing on the spatial data.
G decoder.
るMPEGデコーダであって、 前記可変長符号データをマクロブロックの1水平ライン
を単位として分割して記憶する記憶手段と、 前記記憶手段から前記分割された可変長符号データを並
列的に読み出し、該可変長符号データを並列的にラン長
符号データに復号して記憶する復号記憶手段と、 前記復号記憶手段から前記ラン長符号データをブロック
を単位として並列的に読み出し、該ラン長符号データを
ブロックを単位として並列的にラン長復号し並列的に逆
量子化し並列的に逆離散コサイン変換して空間データに
変換する変換手段と、 前記空間データを動き補償予測処理して画像データを生
成する動き補償手段とを備えたことを特徴とするMPE
Gデコーダ。2. An MPEG decoder for decoding variable-length code data into image data, wherein said storage means divides and stores said variable-length code data in units of one horizontal line of a macroblock. Decoding storage means for reading the divided variable-length code data in parallel, decoding the variable-length code data into run-length code data in parallel, and storing the run-length code data in blocks; Conversion means for reading in parallel as a unit, and run length decoding the run length code data in units of blocks in parallel, inversely quantizing in parallel, and inverse discrete cosine transform in parallel to convert to spatial data; A motion compensation means for generating image data by performing motion compensation prediction processing on data.
G decoder.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21158396A JPH1056641A (en) | 1996-08-09 | 1996-08-09 | MPEG decoder |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21158396A JPH1056641A (en) | 1996-08-09 | 1996-08-09 | MPEG decoder |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1056641A true JPH1056641A (en) | 1998-02-24 |
Family
ID=16608174
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP21158396A Pending JPH1056641A (en) | 1996-08-09 | 1996-08-09 | MPEG decoder |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH1056641A (en) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001359107A (en) * | 2000-04-14 | 2001-12-26 | Sony Corp | Decoding device and decoding method, recording medium, and program. |
| JP2008541663A (en) * | 2005-05-16 | 2008-11-20 | インテル コーポレイション | Parallel execution of media coding using multi-thread SIMD processing |
| WO2009150801A1 (en) * | 2008-06-10 | 2009-12-17 | パナソニック株式会社 | Decoding device, decoding method, and reception device |
| JP2010118939A (en) * | 2008-11-13 | 2010-05-27 | Toshiba Corp | Image decoding apparatus |
| US8259810B2 (en) | 2006-09-07 | 2012-09-04 | Fujitsu Limited | MPEG decoder and MPEG encoder |
| KR101418540B1 (en) * | 2012-12-24 | 2014-07-16 | 성균관대학교산학협력단 | Decompression method and apparatus |
-
1996
- 1996-08-09 JP JP21158396A patent/JPH1056641A/en active Pending
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001359107A (en) * | 2000-04-14 | 2001-12-26 | Sony Corp | Decoding device and decoding method, recording medium, and program. |
| JP2008541663A (en) * | 2005-05-16 | 2008-11-20 | インテル コーポレイション | Parallel execution of media coding using multi-thread SIMD processing |
| JP4920034B2 (en) * | 2005-05-16 | 2012-04-18 | インテル コーポレイション | Parallel execution of media coding using multi-thread SIMD processing |
| US8259810B2 (en) | 2006-09-07 | 2012-09-04 | Fujitsu Limited | MPEG decoder and MPEG encoder |
| WO2009150801A1 (en) * | 2008-06-10 | 2009-12-17 | パナソニック株式会社 | Decoding device, decoding method, and reception device |
| CN102057678A (en) * | 2008-06-10 | 2011-05-11 | 松下电器产业株式会社 | Decoding device, decoding method and receiving device |
| US8422772B2 (en) | 2008-06-10 | 2013-04-16 | Panasonic Corporation | Decoding device, decoding method, and receiving device |
| JP5230735B2 (en) * | 2008-06-10 | 2013-07-10 | パナソニック株式会社 | Decoding device, decoding method, and receiving device |
| JP2010118939A (en) * | 2008-11-13 | 2010-05-27 | Toshiba Corp | Image decoding apparatus |
| KR101418540B1 (en) * | 2012-12-24 | 2014-07-16 | 성균관대학교산학협력단 | Decompression method and apparatus |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20240080482A1 (en) | System And Method For Decoding Using Parallel Processing | |
| JP2912593B2 (en) | System for encoding and decoding multimedia data, MPEG system for compressing and expanding multimedia data, and method for compressing and expanding multimedia data | |
| CN101924945B (en) | Video decoder with scalable compression and buffer for storing and retrieving reference frame data | |
| CA2130479C (en) | Lower resolution hdtv receivers | |
| JPH09107547A (en) | Compressed video data amount reduction device, compressed video data amount reduction system, and compressed video data amount reduction method | |
| KR100192696B1 (en) | Method and apparatus for reproducing picture data | |
| JP3918263B2 (en) | Compression encoding apparatus and encoding method | |
| US7738563B2 (en) | Method and system for performing deblocking filtering | |
| JP2000050263A (en) | Image encoding and decoding apparatus and imaging apparatus using the same | |
| US20070171979A1 (en) | Method of video decoding | |
| KR100681242B1 (en) | Video decoding method, video decoding apparatus and system on chip system having same | |
| US6928115B2 (en) | Compression-encoded data decoding apparatus cross-reference to related applications | |
| US6097843A (en) | Compression encoding apparatus, encoding method, decoding apparatus, and decoding method | |
| JPH1056641A (en) | MPEG decoder | |
| EP1689187A1 (en) | Method and system for video compression and decompression (CODEC) in a microprocessor | |
| US8311088B2 (en) | Method and system for image processing in a microprocessor for portable video communication devices | |
| EP1083752A1 (en) | Video decoder with reduced memory | |
| US5666115A (en) | Shifter stage for variable-length digital code decoder | |
| KR101057590B1 (en) | How to reconstruct a group of pictures to provide random access into the group of pictures | |
| JPH11136686A (en) | Decoded image conversion circuit and decoded image converter | |
| JP3141149B2 (en) | Image coding device | |
| JPH0984011A (en) | Video coding system converter | |
| JP2002374174A (en) | Variable length code decoder, variable length code decoding method and program for making computer execute the, method | |
| JPH11122615A (en) | Image decoding device |