JP3544524B2 - 画像処理装置 - Google Patents

画像処理装置 Download PDF

Info

Publication number
JP3544524B2
JP3544524B2 JP2000556335A JP2000556335A JP3544524B2 JP 3544524 B2 JP3544524 B2 JP 3544524B2 JP 2000556335 A JP2000556335 A JP 2000556335A JP 2000556335 A JP2000556335 A JP 2000556335A JP 3544524 B2 JP3544524 B2 JP 3544524B2
Authority
JP
Japan
Prior art keywords
data transfer
stage
unit
image processing
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000556335A
Other languages
English (en)
Inventor
孝行 森重
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Application granted granted Critical
Publication of JP3544524B2 publication Critical patent/JP3544524B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Description

【0001】
[技術分野]
本発明は、画像処理装置に関するものであり、特に、複数のコアからのメモリに対するアクセス要求を制御する技術に属する。
【0002】
[背景技術]
従来の技術について、MPEG2ビデオ符号化を例にとって説明する。
【0003】
MPEG2ビデオ符号化では、画像全体を縦16画素×横16画素のマクロブロックという単位で格子状に区切り、このマクロブロック毎に画像信号の符号化処理を行う。各マクロブロックの符号化処理は互いに独立している。
【0004】
このような画像符号化において、スループットを向上させるために、マクロブロック単位のパイプライン処理が行われている。そして、このパイプライン処理を実行するために、MPEG2ビデオ符号化システムは、符号化のために必要な演算、例えば、動きベクトル検出、DCT演算、量子化演算などをそれぞれ行う専用演算器を内蔵している。以下、これらの専用演算器のことを「コア」という。
【0005】
なお、本願明細書では、パイプライン処理の処理単位時間を「マクロブロック時間」といい、マクロブロック時間毎に区切られる処理単位を「マクロブロックステージ」または単に「ステージ」という。
【0006】
あるステージに着目すると、各コアは、異なるマクロブロックに対するそれぞれの処理を並列に実行する。そして、各コアは、メモリに対してそれぞれ独立にアクセス要求を行う。したがって、MPEG2ビデオ符号化を正常かつ確実に実行させるためには、複数のコアからのメモリに対するアクセス要求を各ステージにおいて排他的に制御する仕組みが必要になる。
【0007】
図12は従来のMPEG2ビデオ符号化システムにおけるメモリアクセスの制御方法を示す図である(M.MIZUNO他「A 1.5W Single−Chip MPEG2 MP@ML Encoder with Low−Power Motion Estimation and Clocking」1997年,ISSCC、および大西他「1チップMPEG−2 MP@MLビデオ符号化LSIにおけるメモリアーキテクチャ」1997年,電子情報通信学会総合大会)。図12において、縦軸はこのMPEG2ビデオ符号化システムのコアの種類、横軸は時間である。図12は各コアについてのデータ転送がステージの開始から何サイクル後に行われるか、すなわち、1マクロブロック時間における各コアのメモリアクセスのスケジュールを示している。
【0008】
この従来例では、1マクロブロック時間中において、外部メモリに対するアクセスをどのコアがいつ許可されるのかを固定的にスケジュールすることによって、複数のアクセス要求を排他制御している。すなわち、ステージの開始から何サイクル後にビデオ入力部からメモリにデータをライトし、何サイクル後に動きベクトル検出部にメモリからデータをリードする、というように予めスケジュールを決めている。
【0009】
[解決課題]
前記の従来例では、各ステージにおけるメモリアクセスを固定的にスケジュールしている。このため、パイプライン処理を正常かつ確実に実行させるためには、各コアについてのデータ転送に必要となるサイクル数が最大となる場合を想定して、すなわち、最悪の場合を想定して、ステージ1個あたりのサイクル数を設定する必要がある。
【0010】
ところが、本願発明者の検討によると、従来例では、最悪の場合を想定してステージ1個あたりのサイクル数を設定すると、パイプライン処理を正常に実行可能である上限値(従来例の動作周波数の仕様を基にして推定)を越えてしまうことが分かった。
【0011】
この問題を解決するために、従来例では、動きベクトル検出用のキャッシュメモリを符号化システム内に設けていた。そして、1次探索で用いた参照画像データをキャッシュメモリに格納し、この参照画像データを再び2次探索に用いることによって、2次探索時の外部メモリからのデータ転送を省き、これにより、メモリアクセス全体に要するサイクル数を減少させていた(大井他,「MPEG2のMP@ML準拠の1チップ符号化LSIを開発」1997.4,日経エレクトロニクス)。
【0012】
しかしながら、このようにキャッシュメモリを設けてメモリアクセスのサイクル数を減少させた場合には、キャッシュメモリの分だけ消費電力や面積が増大する。特に、システムがLSIとして実現されている場合には、消費電力や面積の増大は由々しき問題である。
【0013】
[発明の開示]
本発明は、複数のコアを備えた画像処理装置において、従来よりも効率のよいメモリアクセスを実現することを目的とする。特に、MPEG2ビデオ符号化システムにおいて、従来例と同等の動作周波数で、キャッシュメモリを設けないで、符号化に必要なデータ転送を確実に実行可能にする。
【0014】
具体的には、本発明は、画像信号の処理を外部メモリを用いてパイプライン処理によって実行する画像処理装置として、画像処理のための演算をそれぞれ行う複数のコアと、前記複数のコアと前記外部メモリとの間のデータ転送を行うメモリアクセス部とを備え、前記メモリアクセス部は、データ転送の種類をパイプライン処理の単位であるステージごとに記憶するアクセススケジュール記憶部を有し、このアクセススケジュール記憶部の記憶内容に従って前記複数のコアと前記外部メモリとの間のデータ転送を行うものであり、前記アクセススケジュール記憶部は、各ステージにおいて必要なデータ転送の種類が当該ステージの前のステージにおいて設定可能に構成されているものである。
【0015】
本発明によると、各ステージにおいて必要なデータ転送の種類をその前のステージにおいて設定することができるので、データ転送の種類をステージごとに柔軟に変更することができる。これにより、各ステージにおいて、メモリアクセス部はアービトレーションを行わないで、必要な種類のデータ転送のみを実行させることができるので、効率のよいメモリアクセスを実現することができる。
【0016】
そして、前記本発明に係る画像処理装置は、前記複数のコアおよびメモリアクセス部を制御するシステム制御部を備え、前記システム制御部は、各ステージにおいて、前記メモリアクセス部にデータ転送を行わせるとともに、当該ステージの後のステージにおいて必要なデータ転送の種類を、前記アクセススケジュール記憶部に設定するものとするのが好ましい。
【0017】
さらに、前記画像処理装置において、前記メモリアクセス部は、各ステージにおけるデータ転送が終了したか否かを示すステージ転送状態信号を出力するものとし、前記システム制御部は、前記ステージ転送状態信号がデータ転送の終了を示すとき、前記メモリアクセス部に、次のステージにおけるデータ転送を行わせるものとするのが好ましい。
【0018】
また、前記本発明に係る画像処理装置におけるメモリアクセス部は、指定された種類のデータ転送を行うとともに、このデータ転送が終了したか否かを示すローカル転送状態信号を出力するインターフェイス部と、データ転送の種類を指定して前記インターフェイス部を作動させるとともに、前記ローカル転送状態信号がデータ転送の実行終了を示すとき、新たにデータ転送の種類を指定して、前記インターフェイス部を作動させるアクセス制御部とを備えているものとするのが好ましい。
【0019】
そして、前記本発明に係る画像処理装置は、画像信号の処理として符号化を行うものとするのが好ましい。
【0020】
[発明を実施するための最良の形態]
以下、本発明の実施の形態について、図面を用いて説明する。
【0021】
図1は本発明の一実施形態に係る画像処理装置であって、MPEG2ビデオ符号化を実行するシステムの全体構成を示す図である。図1において、1は画像信号の処理をパイプライン処理によって実行する画像処理装置としてのシステム、2はシンクロナスDRAMなどによって構成され、システム1とデータのやりとりを行う外部メモリである。外部メモリ2は、ビデオ入力信号からなる原画像フレームデータ、動きベクトル検出を行うためにリコンストラクトされた過去の画像フレームデータ、可変長符号化されたコードなどを格納するために用いられる。システム1は例えばLSIとして実現される。
【0022】
システム1は、符号化のための演算をそれぞれ行う複数のコア11〜17からなる演算部10と、外部メモリ2と演算部10との間のデータ転送を行うメモリアクセス部20と、演算部10およびメモリアクセス部20並びにシステム1全体を制御するシステム制御部30とを備えている。演算部10とメモリアクセス部20との間には、各コア11〜17とメモリアクセス部20とのデータ転送のバッファとなる複数のバッファメモリからなるバッファメモリ群40が設けられている。
【0023】
図2は図1に示すメモリアクセス部20の構成を示す図である。図2において、21はメモリアクセス部20を制御するアクセス制御部、22はデータ転送の種類および順序をステージごとに記憶するアクセススケジュール記憶部、25はデータ転送の種類に応じてそれぞれ設けられ、外部メモリ2をアクセスする際のアドレスを生成する複数のアドレスジェネレータ(AG)からなるアドレスジェネレータ群、26はアドレスセレクタ、27はデータセレクタである。アドレスジェネレータ群25の各アドレスジェネレータAG1〜AG8と、バッファメモリ群40に含まれる各バッファメモリSMBM,MSBM,MYBM,MCBM,ZMBM,ROBM,VWBM,VRBMとは、それぞれ対応している。アドレスジェネレータ群25、アドレスセレクタ26およびデータセレクタ27によって、インターフェイス部60が構成されている。
【0024】
アクセススケジュール記憶部22はイネーブル記憶部51、パラメータ記憶部52およびモード記憶部53によって構成されている。イネーブル記憶部51、パラメータ記憶部52およびモード記憶部53はそれぞれ2バンク構成を有しており、一方のバンクがアクセス制御部21からアクセス可能である(メモリアクセス部20側を向いている)とき、他方のバンクはシステム制御部30からその記憶内容が設定可能である(システム制御部30側を向いている)。
【0025】
システム制御部30は第1のトグル信号TGL1によってアクセススケジュール記憶部22のバンク切り替えを行い、システム制御部30側を向いたバンクにデータ転送の種類および順序を設定する。第1のトグル信号TGL1によるバンク切り替えは、パイプライン処理のステージ切り替えに同期させて行う。
【0026】
すなわち、アクセススケジュール記憶部22は、各ステージにおけるデータ転送の種類および順序を前のステージにおいて設定可能に構成されている。そしてシステム制御部30は、各ステージにおいて、起動信号AC1をアクセス制御部21に出力してメモリアクセス部20にデータ転送を行わせるとともに、後のステージにおけるデータ転送の種類および順序をアクセススケジュール記憶部22に設定する。
【0027】
これにより、各ステージにおけるデータ転送の種類および順序を、その前のステージにおいて、アクセススケジュール記憶部22の一方のバンクにシステム制御部30から設定することができる。そして、ステージの切り替えとともにアクセススケジュール記憶部22のバンクが切り替えられ、前のステージにおいてデータ転送の種類および順序が設定されたバンクがアクセス制御部21からアクセス可能になり、このバンクの記憶内容を基にこのステージにおけるデータ転送が実行される。
【0028】
このように、各ステージにおいて、後のステージにおけるデータ転送の種類および順序をアクセススケジュール記憶部22に設定することを繰り返して、符号化処理に必要な外部メモリ2とのデータ授受を行う。
【0029】
また、バッファメモリ群40の各バッファメモリもそのほとんどは2バンク以上で構成されている。システム制御部30は、第2のトグル信号TGL2によって各バッファメモリのバンク切り替えを行う。
【0030】
図3は図2に示すイネーブル記憶部51の構成を示す図である。図3に示すように、イネーブル記憶部51は2個の8ビットのイネーブルレジスタ51a,52bを備えており(2バンク構成)、システム制御部30からの第1のトグル信号TGL1によってバンク切り替え可能に構成されている。
【0031】
また、パラメータ記憶部52は8個(イネーブルレジスタ22a,22bのビット数に対応)の16ビットレジスタからなるパラメータレジスタ群を2組備えており(2バンク構成)、第1のトグル信号TGL1によってバンク切り替え可能に構成されている。モード記憶部53もまた8個の4ビットレジスタからなるモードレジスタ群を2組備えており(2バンク構成)、第1のトグル信号TGL1によってバンク切り替え可能に構成されている。モードレジスタとパラメータレジスタとは1対1に対応している。各モードレジスタはデータ転送の種類をそれぞれ格納し、各パラメータレジスタは対応するモードレジスタに格納された種類のデータ転送に必要なパラメータを格納する。
【0032】
図4はアクセススケジュール記憶部22の記憶内容の一例を示す図である。図4を用いて、メモリアクセス部20の動作を説明する。
【0033】
アクセス制御部21はシステム制御部30から起動信号AC1を受けると、イネーブル記憶部51が有する2つのイネーブルレジスタのうち、メモリアクセス部20側に向いた方のバンクに相当するものに格納された値をLSBからMSBに向かって1ビットずつ検査する。イネーブルレジスタの各ビットはそれぞれモードレジスタに対応しており、“0”は転送禁止を表し、“1”は転送許可を表す。すなわち、検査したビットが“1”のときは、対応するモードレジスタに格納された種類のデータ転送を実行する一方、“0”のときは、対応するモードレジスタに格納された種類のメモリアクセスを行わない。モードレジスタに格納された種類のデータ転送を実行するとき、このモードレジスタに対応するパラメータレジスタに格納された値をデータ転送のパラメータとして用いる。
【0034】
例えば図4に示すように、イネーブルレジスタに保持された値が「00110010」であるとする。この場合、まずLSB(ビット0)は“0”であるので、モード0のモードレジスタに格納された種類のデータ転送は行わない。
【0035】
次のビット1は“1”であるので、アクセス制御部21はモード1のモードレジスタに格納された種類のデータ転送を実行する。アクセス制御部21はモード1のモードレジスタに格納された値を調べ、実行するデータ転送の種類を特定し、起動するアドレスジェネレータを選択する。いまモード1のモードレジスタには$2($は16進数を表す)が格納されている。ここでは、この$2は「NoMCマクロブロック入力」を行うことを意味するものとする。なお、NoMCマクロブロックとは、前画像との輝度の差分が極めて大きいために、または前画像との輝度の差がほとんどないために、動き補償(Motion Compensation)を行わないマクロブロックのことをいう。
【0036】
アクセス制御部21はモード1のモードレジスタの値をデコードすることによって、「NoMCマクロブロック入力」を行うことを認識し、NoMCマクロブロック入力用のアドレスジェネレータに起動信号AC2を送る。起動信号AC2を受けたアドレスジェネレータは、モード1のパラメータレジスタの値($01,$0A)を用いて、外部メモリ2をアクセスするためのアドレスを生成する。モード1のパラメータレジスタには、「NoMCマクロブロック入力」に対するパラメータとして、入力するマクロブロックの先頭アドレスが格納されている。
【0037】
またこれとともに、アクセス制御部21はセレクト信号SLによって、アドレスセレクタ26に、NoMCマクロブロック入力用のアドレスジェネレータが出力するアドレスや制御信号を外部メモリ2に選択出力させる。アクセス制御部21は同様にセレクト信号SLによって、データセレクタ27に、外部メモリ2から出力されたデータを、バッファメモリ群40の中のNoMCマクロブロック入力用のバッファメモリに選択出力させる。
【0038】
起動信号AC2を受けたアドレスジェネレータは、データ転送を実行している間、ローカル転送状態信号としてのビジー信号BS2を立ち上げる。データ転送の実行が終了すると、ビジー信号BS2を立ち下げることによって、データ転送の実行終了をアクセス制御部21に伝える。アクセス制御部21はこのアドレスジェネレータのデータ転送の実行終了を確認すると、イネーブルレジスタの検査を再開する。
【0039】
イネーブルレジスタのビット2,3は“0”であるので、モード2,3のモードレジスタに格納された種類のデータ転送は行わない。
【0040】
次のビット4は“1”であるので、アクセス制御部21はモード4のモードレジスタに格納された種類のデータ転送を実行する。モード4のモードレジスタには$3(16進数の3)が格納されており、ここでは、この$3は「可変長コード出力」を行うことを意味するものとする。アクセス制御部21は可変長コード出力用のアドレスジェネレータに起動信号AC2を送る。起動信号AC2を受けたアドレスジェネレータはモード4のパラメータレジスタの値を用いて、外部メモリ2をアクセスするためのアドレスを生成する。モード4のパラメータレジスタは、「可変長コード出力」に対するパラメータとして、転送するワード数などを格納している。
【0041】
アクセス制御部21はイネーブルレジスタに格納された値の全てのビットについて検査を終了すると、システム制御部30に、ステージ転送状態信号としてのビジー信号BS1によってこのステージにおけるデータ転送の終了を伝える。このようにして、1マクロブロックステージにおける外部メモリ2と複数のコア10との間のデータ転送が完了する。
【0042】
図5は図2に示すメモリアクセス部20のデータ転送のタイミングを示すタイミングチャートである。図5では、ビデオ信号入力からコード信号出力までの一連の画像符号化処理において、例えばコード出力部17がマクロブロック(n−1)乃至(n+1)の処理において外部メモリ2からデータをリードする場合を抜粋して示している。なお、外部メモリ2にデータをライトする場合には、スケジュール設定とともにライトデータを設定する必要がある。
【0043】
各ステージにおいて、外部メモリ2をアクセスするために要する時間は、複数のコアが演算をそれぞれ実行するのに要する時間よりもはるかに長い。このため、各ステージのサイクル数はデータ転送に要するサイクル数によって決まる。そして、各ステージのデータ転送にはほとんどロスタイムがなく、かつ、あるステージのデータ転送が終了するとすぐに次のステージのデータ転送が開始される。したがって図5に示すように、本実施形態では、各ステージのサイクル数はステージごとに異なっている。
【0044】
以下、本実施形態に係る画像処理装置の動作について、MPEG2の符号化処理を例にとって、具体的に説明する。MPEG2では、各フレームを(16×16)画素のマクロブロックに分割し、マクロブロック毎に圧縮符号化処理を実行する。例えばNTSC画像の場合、1フレームは720画素×480ラインなので、1350個(=横45×縦30)のマクロブロックに分割される。
【0045】
図6は一のマクロブロックMB0の符号化処理の流れを示す図である。図6において、横軸はステージを表し、図中の各矢印は、アドレス設定とデータ転送との対応関係、および、コアの処理とデータ転送との対応関係を示している。また図6では、符号化処理の流れに合わせて、各ステージにおける,動作するコア、外部メモリ2とアクセスするバッファメモリ、およびアドレス設定を行うアドレスジェネレータを示している。
【0046】
図6に示す各コアの処理内容について、説明する。
【0047】
<ME1処理>
第1の動きベクトル検出部12が実行する、1画素精度の動きベクトル検出である。外部メモリ2からバッファメモリSMBMに、エンコードの対象となる原画像のマクロブロックデータが読み出される。また、外部メモリ2からバッファメモリMSBMに、参照画像フレームのY成分データが読み出される。第1の動きベクトル検出部12は、バッファメモリSMBM,MSBMに格納したデータから1画素精度の動きベクトルを検出する。バッファメモリSMBM,MSBMへのデータ転送の前に、システム制御部30は符号化の対象となるマクロブロックの位置を、パラメータとして設定する。
【0048】
<ME2処理>
第2の動きベクトル検出部13が実行する、半画素精度の動きベクトル検出である。1回目のME2処理では、外部メモリ2からバッファメモリMYBMに、第1の動きベクトル検出部12から出力された動きベクトルが示す領域の参照画像のY成分が読み出される。第2の動きベクトル検出部13は、バッファメモリSMBMのデータと、バッファメモリMYBMに読み出したデータとを用いて、半画素精度の動きベクトルを検出する。
【0049】
2回目のME2処理では、外部メモリ2からバッファメモリMCBMに、参照画像フレームのC成分データが読み出される。第2の動きベクトル検出部13は、1回目のME2処理で求めた動きベクトルを用いて、バッファメモリSMBM,MCBMに格納したデータから半画素精度の動きベクトルを検出する。
【0050】
<MSP処理>
DCT演算をフレーム単位で行うかフィールド単位で行うか等の,エンコードに必要な処理のモード選択であり、モード選択演算部14が実行する。<ME1処理>および<ME2処理>によって求められた動きベクトルの値が0の場合、外部メモリ2からバッファメモリZMBMに、符号化を行うマクロブロックと同一位置の参照画像が読み出される。
【0051】
<DCT/Q処理>
マクロブロックと、<ME1処理>および<ME2処理>によって求めた動きベクトルが指す位置の参照画像との差分画像について、DCT演算→量子化→逆量子化→逆DCT演算の各処理を行うものであり、DCTおよび量子化演算部15が実行する。<MSP処理>で選択されたモードに従って実行される。逆DCT演算された画像データは、バッファメモリROBMに格納され、外部メモリ2に転送される。そして、他のフレームをエンコードする際の参照画像として用いられる(リコンストラクト(REC))。
【0052】
<VLC処理>
<DCT/Q処理>における量子化後のデータを可変長符号化するものであり、可変長符号化演算部16が実行する。可変長符号化されたデータは、バッファメモリVWBMに格納され、バッファリングのため一旦外部メモリ2に書き込まれる。可変長符号化後のデータ量は、可変長符号化演算部16からシステム制御部30に送られる。システム制御部30は可変長符号化後のデータ量を基に、バッファメモリVWBMからのデータ転送のパラメータとして転送ワード数を設定する。
【0053】
<コード出力処理>
コード出力部17は、システム1の外部に接続されたデバイスが要求するタイミングに従って、可変長符号化データを送出する。バッファメモリVRBMは、外部出力のためのバッファとして用いられる。システム制御部30は、外部から要求される転送タイミングに応じて、バッファメモリVRBMからのデータ転送のパラメータとして、転送ワード数を設定する。
【0054】
図7はMPEG2の符号化処理を実行するパイプライン処理全体の流れを示す図である。MPEG2の規格では、I,P,Bという3種類のピクチャタイプがあり、図7はその中で最もデータ転送が多いPピクチャタイプについて示している。ステージ11までは、各ステージにおける処理の種類が徐々に増えていき、ステージ12以降は、ほぼ同種類の処理が各ステージにおいて繰り返し実行される。
【0055】
Iピクチャタイプでは、他のフレームを一切参照せずに符号化を行う。このため、動きベクトル検出に係る処理(ME1処理およびME2処理)は実行せず、バッファメモリMSBM,MYBM,MCBMへのデータ転送は行わない。またBピクチャタイプは他のフレームから参照されないので、リコンストラクト(REC)処理は不要であり、バッファメモリROBMからのデータ転送は行わない。また他の理由により、バッファメモリZMBMへのデータ転送も行わない。
【0056】
このように、ピクチャタイプに応じて、必要なデータ転送の種類が異なるので、イネーブルレジスタ等の設定も、ピクチャタイプに応じて変更する必要がある。
【0057】
図8は図7の各ステージにおけるイネーブルレジスタ、モードレジスタおよびパラメータレジスタの設定値の変化を示す図である。図8に示すモードレジスタの各設定値$1,$2,$3,$4,$6,$7,$8および$Aは、アドレスジェネレータAG1〜AG8にそれぞれ対応している。図8に示すように、ステージ11以降はイネーブルレジスタの各ビットの値が全ての“1”になるので、全てのアドレスジェネレータAG1〜AG8がアドレス設定を行う。
【0058】
図9はBピクチャタイプのエンコードにおける各レジスタの設定値の変化を示す図、図10はIピクチャタイプのエンコードにおける各レジスタの設定値の変化を示す図である。図8と比較すると分かるように、ステージ11以降においても、イネーブルレジスタの各ビットの中に“0”が存在する。
【0059】
システム制御部30は、アプリケーションに応じて、ピクチャタイプの連続パターン(例えば「IPPBPPBPPBPPBPP」)を記憶しており、この連続パターンに応じて、図8〜図10に示すように、各レジスタの値を設定する。
【0060】
図8〜図10ではモードレジスタの設定値は常に一定である。すなわち、最もデータ転送の多いPピクチャに合わせてモードレジスタの値を設定し、データ転送の有無をイネーブルレジスタの設定のみによって制御している。もちろん、モードレジスタの値の設定変更によって、データ転送の有無を制御することも可能である。
【0061】
また、モードレジスタの設定によって、各ステージにおけるデータ転送の順序を制御することも可能である。大抵のアプリケーションでは、各データ転送は、そのステージ内に実行完了できればよいのであって、その順序まで厳密に制御する必要は必ずしもない。しかしながら、アプリケーションによっては、例えば「MCBMへのデータ転送はZMBMへのデータ転送に先行して実行しなければならない」という条件が、存在する場合がある。このような場合には、MCBMへのデータ転送をモード0に設定し、ZMBMへのデータ転送をモード1に設定すれば、この条件を満たすことができる。
【0062】
パラメータレジスタの値設定は次のように行う。モード$1,$2,$6および$7のデータ転送では、マクロブロックの位置を示すデータが設定される(パラメータ0,1,4,5)。モード$3,$4のデータ転送では、<ME1処理>で求めた動きベクトルを基に、転送元の座標値*1,*2を設定する(パラメータ2,3)。モード$8,$Aのデータ転送では、転送ワード数*3,*4を設定する(パラメータ6,7)。
【0063】
このように、本実施形態に係る画像処理装置によると、アクセススケジュール記憶部22にデータ転送の種類および順序をステージごとに設定することができ、またこの設定は実際にデータ転送を行うステージの前のステージにおいて行うことができる。さらに、ビジー信号BS2によってあるアドレスジェネレータの実行終了を確認するとすぐに次のアドレスジェネレータの起動を行うことができる。このため、各ステージにおいて、必要なデータ転送のみをほとんどロスタイムを生じることなく連続して行うことができる。
【0064】
したがって、各ステージにおいては、そのステージの前のステージまでに、外部メモリ2とのデータ転送のスケジュールがシステム制御部30によって決定されているため、メモリアクセス部20は、各コア11〜17間のアービトレーションを行わないで、複数のデータ転送を順次実行することができる。また、データ転送量が少ない場合は、無駄な待ち時間を生じることなく、データ転送を早く終了させることができる。これにより、データ転送自体を省くためのバッファメモリを設けなくても、MPEG2ビデオ符号化を正常かつ確実に実行することができる。
【0065】
なお、本実施形態では、アドレスジェネレータとバッファメモリとが1対1に対応しているものとしたが、例えば、あるアドレスジェネレータが複数のバッファメモリと対応していてももちろんかまわない。また、あるアドレスジェネレータが複数の転送モードに対応していてもかまわない。さらに、アドレスジェネレータの個数は8個に限られるものではない。
【0066】
また、本実施形態におけるイネーブルレジスタのビット幅、モードレジスタおよびパラメータレジスタの本数はあくまでも一例であり、これらの値に限定されるものではない。
【0067】
さらに、本実施形態では、各ステージのデータ転送の種類および順序はその直前のステージにおいて設定するものとしたが、直前のステージでなくても、前のステージであればよい。例えば、直前のステージにおいてNOP処理を行うときは、さらにその前のステージにおいて設定してもよい。また、アクセススケジュール記憶部22を3バンク構成にすれば、各ステージのデータ転送の種類および順序を、その2つ前のステージにおいて設定することも可能である。
【0068】
ここで、課題の項で述べた従来例における問題と本願発明との関係について、補足説明を行う。
【0069】
図11はBピクチャの画像符号化(時間軸で前と後に位置する参照画像を用いる符号化)を行う場合における各コアと外部メモリとの間のデータ転送に要するサイクル数を示す図である。図11に示すデータは、本願発明者がMPEG2の規格から推定したものである。MPEG2ビデオ符号化では、各コアと外部メモリとの間のデータ転送量は各マクロブロックにおいて一定ではなく、画像の複雑さ等によってマクロブロックごとに変動する。図11は1フィールド(NTSC画像の場合、1/60秒分の画像)における各マクロブロックのデータ転送に要するサイクル数の分布を示しており、その最大値は2222、最小値は1649である。
【0070】
いま、有効画素期間と垂直ブランキング期間とを合わせた時間を全て1フィールドの画像符号化に利用できるものとすると、マクロブロック1個あたりの符号化に割り当て可能なサイクル数の上限値は1997サイクルとなる(従来例の仕様から動作周波数81MHzとして推定)。
【0071】
すなわち、図11から分かるように、マクロブロック1個あたりのサイクル数の最大値はその上限値を越えている。このことは、このまま何の方策も講じなければ、MPEG2ビデオ符号化が正常に実行できないことを示している。従来例では、動きベクトル検出用のキャッシュメモリを設けることによって2次探索時の外部メモリからのデータ転送を省き、これにより、マクロブロック1個あたりのサイクル数の最大値を、上限値よりも小さい1551サイクルまで低減している。
【0072】
本願発明者は、図11に示すような推定結果から、1フィールドすなわち675マクロブロックの平均でみれば、サイクル数はその上限値を下回ることに着目した。そして、各マクロブロックのデータ転送に要するサイクル数を平均化して、キャッシュメモリを設けなくても画像符号化を確実に実行できるようにしたのが、本願発明に係る本実施形態といえる。
【0073】
また、従来例と同様にキャッシュメモリを設けた場合には、本願発明を適用することによって、例えばクロック周波数を下げることもできる。これにより、消費電力を低減することも可能である。
【0074】
なお、本発明は、MPEG2ビデオ符号化以外の画像符号化や、画像復号化などの他の画像処理にも容易に適用可能である。また、画像処理以外の信号処理であっても、複数のアクセス主体からメモリアクセスを行う場合には、容易に適用可能である。
【0075】
以上のように本発明によると、複数のコアと外部メモリとの間のデータ転送を行う際に、各ステージにおいて、そのステージより前のステージでスケジュール設定を順次行うことにより、メモリアクセス部はアービトレーションを行わないで、必要な種類のデータ転送のみを順次実行させることができるので、効率のよいメモリアクセスを実現することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る画像処理装置の全体構成を示す図である。
【図2】図1に示すメモリアクセス部の構成を示す図である。
【図3】図2に示すイネーブル記憶部の構成を示す図である。
【図4】図2に示すアクセススケジュール記憶部の記憶内容の一例を示す図である。
【図5】図1に示すメモリアクセス部のデータ転送のタイミングを示すタイミングチャートである。
【図6】一のマクロブロックの符号化処理の流れを示す図である。
【図7】MPEG2の符号化処理を実行するパイプライン処理全体の流れを示す図である。
【図8】図7の各ステージにおけるイネーブルレジスタ、モードレジスタおよびパラメータレジスタの設定値の変化を示す図である。
【図9】Bピクチャタイプのエンコードにおける各レジスタの設定値の変化を示す図である。
【図10】Iピクチャタイプのエンコードにおける各レジスタの設定値の変化を示す図である。
【図11】1フィールド当たりのデータ転送に要するサイクル数を示す図であり、本願発明と従来例との差を説明するための図である。
【図12】従来のMPEGビデオ符号化におけるメモリアクセスの制御方法を示す図である。

Claims (5)

  1. 画像信号の処理を、外部メモリを用いて、パイプライン処理によって実行する画像処理装置であって、
    画像処理のための演算をそれぞれ行う複数のコアと、
    前記複数のコアと前記外部メモリとの間のデータ転送を行うメモリアクセス部とを備え、
    前記メモリアクセス部は、
    データ転送の種類を、パイプライン処理の単位であるステージごとに記憶するアクセススケジュール記憶部を有し、このアクセススケジュール記憶部の記憶内容に従って、前記複数のコアと前記外部メモリとの間のデータ転送を行うものであり、
    前記アクセススケジュール記憶部は、
    各ステージにおいて必要なデータ転送の種類が、当該ステージの前のステージにおいて設定可能に構成されている
    画像処理装置。
  2. 請求項1の画像処理装置において、
    前記複数のコアおよびメモリアクセス部を制御するシステム制御部を備え、
    前記システム制御部は、
    各ステージにおいて、前記メモリアクセス部にデータ転送を行わせるとともに、当該ステージの後のステージにおいて必要なデータ転送の種類を、前記アクセススケジュール記憶部に設定する
    ことを特徴とする画像処理装置。
  3. 請求項2の画像処理装置において、
    前記メモリアクセス部は、
    各ステージにおけるデータ転送が終了したか否かを示すステージ転送状態信号を出力するものであり、
    前記システム制御部は、
    前記ステージ転送状態信号がデータ転送の終了を示すとき、前記メモリアクセス部に、次のステージにおけるデータ転送を行わせるものである
    画像処理装置。
  4. 請求項1の画像処理装置において、
    前記メモリアクセス部は、
    指定された種類のデータ転送を行うとともに、このデータ転送が終了したか否かを示すローカル転送状態信号を出力するインターフェイス部と、
    データ転送の種類を指定して前記インターフェイス部を作動させるとともに、前記ローカル転送状態信号がデータ転送の実行終了を示すとき、新たにデータ転送の種類を指定して、前記インターフェイス部を作動させるアクセス制御部とを備えている
    ことを特徴とする画像処理装置。
  5. 画像信号の処理として、符号化を行うものである
    ことを特徴とする請求項1の画像処理装置。
JP2000556335A 1998-06-25 1999-06-25 画像処理装置 Expired - Fee Related JP3544524B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP17833498 1998-06-25
PCT/JP1999/003426 WO1999067742A1 (en) 1998-06-25 1999-06-25 Image processor

Publications (1)

Publication Number Publication Date
JP3544524B2 true JP3544524B2 (ja) 2004-07-21

Family

ID=16046682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000556335A Expired - Fee Related JP3544524B2 (ja) 1998-06-25 1999-06-25 画像処理装置

Country Status (6)

Country Link
US (1) US6597810B1 (ja)
EP (1) EP1011072A4 (ja)
JP (1) JP3544524B2 (ja)
KR (1) KR100564010B1 (ja)
CN (1) CN1112654C (ja)
WO (1) WO1999067742A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL129345A (en) * 1999-04-06 2004-05-12 Broadcom Corp Video encoding and video/audio/data multiplexing device
CN1293512C (zh) * 2001-12-28 2007-01-03 矽统科技股份有限公司 顶点资料队列控制器
JP2003216943A (ja) * 2002-01-22 2003-07-31 Toshiba Corp 画像処理装置、この装置に用いられるコンパイラおよび画像処理方法
US7334099B2 (en) * 2002-06-28 2008-02-19 Microsoft Corporation Method and system for managing image files
US7643675B2 (en) * 2003-08-01 2010-01-05 Microsoft Corporation Strategies for processing image information using a color information data structure
KR101160640B1 (ko) * 2003-12-30 2012-06-28 삼성전자주식회사 데이터 처리 시스템 및 데이터 처리 방법
JP4658563B2 (ja) * 2004-10-13 2011-03-23 パナソニック株式会社 画像データ処理装置及び画像データ処理方法
EP1810220A4 (en) * 2004-11-03 2008-04-30 Tyzx Inc INTEGRATED IMAGE PROCESSOR
US7925120B2 (en) * 2005-11-14 2011-04-12 Mediatek Inc. Methods of image processing with reduced memory requirements for video encoder and decoder
JP4610523B2 (ja) 2006-06-13 2011-01-12 Okiセミコンダクタ株式会社 動画処理装置
JP4991453B2 (ja) * 2007-08-30 2012-08-01 キヤノン株式会社 符号化処理装置、符号化処理システム及び符号化処理装置の制御方法
JP5449791B2 (ja) * 2009-02-02 2014-03-19 オリンパス株式会社 データ処理装置および画像処理装置
KR102459917B1 (ko) 2015-02-23 2022-10-27 삼성전자주식회사 이미지 신호 프로세서와 이를 포함하는 장치들

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2016348C (en) * 1989-05-10 2002-02-05 Kenichi Asano Multiprocessor type time varying image encoding system and image processor
US5289577A (en) * 1992-06-04 1994-02-22 International Business Machines Incorporated Process-pipeline architecture for image/video processing
JPH0620034A (ja) * 1992-07-02 1994-01-28 Nec Corp 画像処理用アドレス生成回路
JPH07121687A (ja) * 1993-10-20 1995-05-12 Sony Corp 画像コーデック用プロセッサおよびアクセスパターン変換方法
US6116768A (en) * 1993-11-30 2000-09-12 Texas Instruments Incorporated Three input arithmetic logic unit with barrel rotator
JPH07182523A (ja) 1993-12-22 1995-07-21 Hitachi Ltd 画像処理および符号化復号化処理装置
JPH08137739A (ja) 1994-11-08 1996-05-31 Matsushita Electric Ind Co Ltd メモリアクセス制御装置
JP2888288B2 (ja) 1996-10-03 1999-05-10 日本電気株式会社 画像符号化装置
US6041400A (en) * 1998-10-26 2000-03-21 Sony Corporation Distributed extensible processing architecture for digital signal processing applications
US6459429B1 (en) * 1999-06-14 2002-10-01 Sun Microsystems, Inc. Segmenting compressed graphics data for parallel decompression and rendering

Also Published As

Publication number Publication date
CN1112654C (zh) 2003-06-25
US6597810B1 (en) 2003-07-22
KR100564010B1 (ko) 2006-03-23
CN1272931A (zh) 2000-11-08
EP1011072A1 (en) 2000-06-21
WO1999067742A1 (en) 1999-12-29
EP1011072A4 (en) 2003-05-02
KR20010023268A (ko) 2001-03-26

Similar Documents

Publication Publication Date Title
USRE48845E1 (en) Video decoding system supporting multiple standards
US8213511B2 (en) Video encoder software architecture for VLIW cores incorporating inter prediction and intra prediction
US20050190976A1 (en) Moving image encoding apparatus and moving image processing apparatus
JP3544524B2 (ja) 画像処理装置
KR100881539B1 (ko) 메모리 직접 접근 방식의 이미지 데이터 구조
JPH05268590A (ja) 動画像符号化復号化回路
JP5245004B2 (ja) 高性能ビデオプロセッサ用の低電力メモリ階層
JP5309700B2 (ja) 動画像復号装置および符号化装置
JPH08123953A (ja) 画像処理装置
US20060044165A1 (en) Variable length decoding device
KR101160640B1 (ko) 데이터 처리 시스템 및 데이터 처리 방법
KR20050009956A (ko) 신호처리장치와 그 제어방법, 프로그램 및 기록매체
EP1351512A2 (en) Video decoding system supporting multiple standards
JP2000175201A (ja) 画像処理装置及び方法、並びに提供媒体
US20030123555A1 (en) Video decoding system and memory interface apparatus
JP2009130599A (ja) 動画像復号装置
JP2008136177A (ja) 動き検出装置、MOS(metal−oxidesemiconductor)集積回路および映像システム
KR20080090238A (ko) 대역폭 인식 움직임 보상 장치 및 그 방법
JPH1155668A (ja) 画像符号化装置
JP2002232884A (ja) 画像符号化装置及び画像符号化方法
JP4398717B2 (ja) 動画像復号化装置
KR20020095755A (ko) 비디오 코덱의 메모리 액세스 장치 및 방법
JP2002152756A (ja) 動画像符号化装置
US20090006665A1 (en) Modified Memory Architecture for CODECS With Multiple CPUs
JP4351903B2 (ja) 動画像符号化装置

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040330

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040402

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080416

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090416

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100416

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110416

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120416

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees