(57)【特許請求の範囲】
【請求項１】
データ信号を受け、前記データ信号に入力順に世代番号および行先ノード番号を付して第１のパケットを生成するデータパケット生成部と、
クロック信号を受け、前記クロック信号に入力順に世代番号および行先ノード番号を割り当てた第２のパケットを生成するデータパケット生成機構と、
前記第１および前記第２のパケットを受け、前記第１のパケットから抜き出されたデータ値に基づいて前記第２のパケット内のデータ領域を更新する入力制御部と、
前記入力制御部に接続され、前記入力制御部から伝送される前記第２のパケットを受け、前記第２のパケットに含まれる行先ノード番号に割り当てられた命令に従って読み出されたデータパケットに対して演算処理を行なうデータ駆動エンジンとを備える、ディジタル信号のサンプリング周波数変換装置。
【請求項２】
メモリインターフェイスを介して前記データ駆動エンジンに接続されるメモリをさらに備え、
前記データ駆動エンジンは、前記第１のパケットに基づいて更新された前記第２のパケットを受け、前記第１のパケットの世代番号に基づくアドレスに従って前記第２のパケットを前記メモリへ書き込み、
前記入力制御部は、前記メモリに書き込まれた前記第２のパケットのデータと前記第２のパケットにアドレスが隣接するデータとの間の所定比率の点を補間することにより前記第２のパケット内のデータ領域を更新する、請求項１に記載のディジタル信号のサンプリング周波数変換装置。
【請求項３】
前記第２のパケットからデータ値を抜き出す演算に用いられる第１の可変定数は、前記クロック信号に応じて生成される前記データパケットの世代番号のディジタル化に用いられる、請求項１または２に記載のディジタル信号のサンプリング周波数変換装置。
【請求項４】
前記第２のパケットからデータ値を抜き出す演算に用いられる第１の可変定数は、２のべき乗である、請求項１または２に記載のディジタル信号のサンプリング周波数変換装置。
【請求項５】
前記所定比率の決定に用いられる第２の可変定数は、前記データ信号のサンプリング周波数と所望のディジタル化されたサンプリング周波数との変換比に対応する、請求項２に記載のディジタル信号のサンプリング周波数変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はディジタル信号のサンプリング周波数変換装置に関し、特に、データ駆動型プロセッサによる高速並列演算処理機能を利用して画像データのサンプリング周波数を変換するディジタル信号のサンプリング周波数変換装置に関する。
【０００２】
【従来の技術】
高速かつ高精度で情報信号に対してさまざまな処理を施すために、情報信号は一般にディジタル信号に変換されて処理される。大量の情報を伝達する画像処理も例外ではない。画像信号は本質的にアナログ信号である。よって、画像信号はディジタル信号に変換するために、あるサンプリング周波数でサンプリングされてディジタル信号に変換される。画像信号のサンプリング周波数変換もまた大量の情報を処理し、伝達している。
【０００３】
ディジタル信号のサンプリング周波数を変換する従来例として、たとえば特開平６−３０３８４号公報に示されたデータ駆動型プロセッサを用いたディジタル信号のサンプリング周波数変換装置がある。データ駆動型プロセッサ4では、「ある処理の実行に必要な入力データがすべて揃い、かつその処理に必要な演算装置などの資源が割当てられたときに処理が行なわれる。」という規則に従って処理が進行する。
【０００４】
データ駆動型プロセッサの情報処理動作を含むデータ処理装置には、非同期のハンドシェイク方式を採用したデータ伝送装置が用いられる。このようなデータ伝送装置では、複数のデータ伝送路が接続され、それらのデータ伝送路がデータの伝送要求信号およびデータの転送を許可するか否かを示す転送許可信号を互いに送受信しながら、自律的なデータ転送が行なわれる。
【０００５】
図３はデータ伝送路の構成を示すブロック図である。図３において、データ伝送路は、自己同期型の転送制御回路（以下、Ｃ素子と称する）２ａ〜２ｃと、データ保持回路（パイプラインレジスタ）３ａ〜３ｃと、データ保持回路の出力に対して演算などを行なうロジック回路３ｄ，３ｅを含んでいる。Ｃ素子２ａ〜２ｃは、前段から転送要求信号を受ける入力端子ＣＩと、後段に転送要求信号を出力する出力端子ＣＯと、後段の転送許可または転送の禁止を示す転送許可信号を入力する入力端子ＲＩと、前段に転送許可信号を出力する出力端子ＲＯと、パイプラインレジスタ３ａ〜３ｃを制御する制御信号出力端子ＣＰを有している。
【０００６】
図４は図３に示したＣ素子の動作を説明するためのタイミングチャートである。図４は端子ＣＩ（もしくは端子ＣＯ）が、「０」のときは前段（後段）にデータ転送要求を行なっている状態であり、逆に「１」の場合は前段（後段）にデータ転送要求を行なっていない状態を示している。一方、端子ＲＩ（もしくは端子ＲＯ）が「０」のときは後段（前段）は転送禁止状態であることを示し、逆に「１」の場合は後段（前段）は転送許可状態であることを示している。あるＣ素子の端子ＣＩに「１」から「０」が入力される、すなわち前段からデータ転送が要求され、転送されると端子ＲＯが「１」から「０」に変化し、これによりさらなる前段からのデータ転送を禁止する。
【０００７】
転送が完了すると、端子ＣＩへの入力は「０」から「１」へと変化し、前段からはデータ転送要求を行なわない状態となり、前段から当該Ｃ素子へデータのセットが終了したことが知らされる。これに伴い、端子ＲＯは「０」から「１」へと変化し前段に対して、次の転送許可状態であることを示す。そして、端子ＣＩへの入力が「１」となり、前段からのデータ転送要求が行なわれない状態となった後、端子ＣＰからクロックパルスが出力されてパイプラインレジスタ３ａ〜３ｃからデータが出力されてロジック回路３ｄ，３ｅで演算などが行なわれる。そして、端子ＣＯが「１」から「０」に変化し、後段にデータ転送要求が行なわれ、後段にデータが転送されると、端子ＲＩへの入力は「１」から「０」に変化し、後段が転送禁止状態となったことが知らされる。これを受けて、端子ＣＰの出力が「０」とされてパイプラインレジスタの制御が停止され、その後端子ＣＯは「０」から「１」へと変化し、後段に対してデータ転送要求を行なわない状態となる。そして、データが後段のパイプラインレジスタに格納され、さらに次のロジック回路に出力されると、端子ＲＩに「０」信号から「１」信号が入力され、後段は転送許可状態となる。このサイクルを繰返すことによって、次のデータが転送されて演算などの処理がなされ、自己同期システムによるデータ転送がなされる。
【０００８】
図５は図３に示したデータ伝送路を有するデータ駆動型プロセッサのブロック図である。図５において、データ駆動型プロセッサＰｅは合流部ＪＮＣと、発火制御部ＦＣと、演算部ＦＰと、プログラム記憶部ＰＳと、分岐部ＢＲＮと、複数個のパイプラインレジスタ３ａ〜３ｃとＣ素子２ａ〜２ｃを含んでいる。Ｃ素子２ａ〜２ｃの動作は先に説明したとおりである。
【０００９】
図６は図５に示すデータ駆動型プロセッサＰｅに入力される入力データパケットと出力される出力データパケットを示す図である。図６において、（ａ）に示す入力データパケットおよび（ｂ)に示す出力パケットは、行先ノード番号を格納するための行先ノード番号領域と、世代番号を格納するための世代番号領域と、命令コードを格納する命令コード領域と、データを格納するためのデータ領域とを含む。入力画像信号はデータ格納領域に格納される。世代番号とは、並列処理をしたいデータ群同士を区別するための識別番号である。行先ノード番号とは、同一世代内の入力データ同士を区別するための番号であり、データ駆動型情報処理装置内部においてデータパケットの転送先を示している。命令コードとは命令デコーダに格納されている命令を実行するためのものである。
【００１０】
データ駆動型プロセッサＰｅに図６（ａ）に示すデータパケットが入力されると、入力パケットはまず合流部ＪＮＣを通り、発火制御部ＦＣに伝達され、行先ノード番号と世代番号が同一のデータパケットの間で対データが形成される。すなわち、ノード番号と世代番号が一致する異なる２つのデータパケットの検出が行なわれ、両方の番号が一致する２つのうち、一方のデータパケットを他方のデータパケットのデータ領域に追加格納し、この他方のデータパケットが出力される。
【００１１】
データ領域に対データを格納したデータパケットは演算部ＦＰに伝達される。演算部ＦＰは、伝達されたデータパケットを入力し、この入力データパケットの中の命令コードに基づいて、該データパケットの内容に対して所定の演算を行ない、その演算結果を該データパケットのデータ領域に格納する。このデータパケットはプログラム記憶部ＰＳに伝達される。
【００１２】
プログラム記憶部ＰＳは伝達されたデータパケットの行先ノード番号に基づいて、プログラム記憶部ＰＳ内のプログラムメモリから次の位の行先ノード番号と次の位の命令コードを読出す。読出された行先ノード番号と命令コードは、該データパケットの行先ノード番号領域と命令コード領域にそれぞれ格納される。
【００１３】
プログラム記憶部ＰＳから出力されたデータパケットは分岐部ＢＲＮへ伝達され、その行先ノード番号に基づいて外部に出力するか、または合流部ＪＮＣに戻され、再度データ駆動型プロセッサＰｅ内部に入力される。これらの伝達は前述のＣ素子２ａ〜２ｃにより制御されて実行される。そして、このようなデータ駆動型プロセッサＰｅが１個もしくは複数個接続されて、データ駆動型情報処理装置が構成されている。
【００１４】
データ駆動型情報処理装置内部または外部のメモリにアクセスする命令を格納したデータパケットは、パケット内部の世代番号領域の値をメモリのアドレスとして扱い、メモリアクセスを行なう。バンク（１フィールド）、行および列に対応するものはそれぞれデータパケットにおける世代番号領域内のフィールドＦＤと、ラインＬＮとピクセルＰＸで表わされる。
【００１５】
図７は従来のデータ駆動型プロセッサによるサンプリング周波数変換回路のブロック図であり、特開平６−３０３８４号公報に記載されているものである。
【００１６】
図７において、サンプリング周波数変換回路４は入力ポート５とデータ駆動エンジン６とメモリインタフェース７と出力ポート８とを含み、このサンプリング周波数変換回路４にはメモリ９が接続される。入力信号である画像信号ｘは入力ポート５に与えられてデータパケットに生成され、データ駆動エンジン６に与えられる。データ駆動エンジン６に与えられたデータパケットはメモリインタフェース７を介して画像メモリ９に記憶され、サンプリング周波数変換の処理が行なわれ、処理を終了したデータパケットは再度メモリインタフェース７からデータ駆動エンジン６を介して出力ポート８に与えられる。出力ポート８に与えられたパケットはデータパケットＹとして外部に出力される。外部に出力されたデータパケット内のデータ領域のデータは補間され、周波数変換された画像信号となる。
【００１７】
図８は図７に示した画像メモリにおける画像とデータパケット内部の世代番号フィールドに含まれるデータとメモリセルとの対応関係を示す図である。図８において、フィールドアドレスＦＤは画像メモリ９におけるフィールド領域を特定する。この画像メモリ９におけるフィールドアドレスＦＤの指定する領域はバンクであってもよく（１フィールドが１フレームに対応させられる場合）、また１つのフィールドメモリに対応してもよい。画像メモリ９の構成に応じて適当に対応付けられる。ラインアドレスＬＮはこのフィールドにおける行を特定する。ピクセルアドレスＰＸのフィールドアドレスＦＤが特定するフィールドにおける列を特定する。図５に示したデータ駆動型プロセッサはデータフロープログラムに従って処理を実行する。データフロープログラムは演算および制御を示すノード（アクターと呼ばれる）と、ノードとノードとの間を結ぶアークとで構成される有向グラフで記述される。
【００１８】
図９はデータフロープログラム（データフローグラフと称される）の一例を示す図である。図９において、ノードＮＤＡは入力アークａおよびｂ上に与えられたデータに対し、入力データが揃った時点で演算ＯＰ１を施して演算結果を出力アークｅ上に伝達する。ノードＮＤＢは入力アークｃおよびｄを有し、これらのアークに入力データが揃った時点で演算ＯＰ２を施し、出力アークｆ上にその演算結果を出力する。ノードＮＤＣは制御アークｆ上の信号が「真」状態のとき、入力アークｅ上のデータを出力アークｇ上に伝達する。各ノードにおいては、入力アークにデータ（トークンと呼ばれる）が揃ったときにそのノードに割当てられた演算が実行される。演算の実行をそのノードが「発火する」と称する。
【００１９】
発火の結果、入力データ（以下、入力トークンと称する）は消費され、出力トークンが生成される。たとえば、ノードＮＤＡは２つの入力アークａおよびｂに入力データがそれぞれ到着し、かつ出力アークｅが空いているときに発火する。このとき、ノードＮＤＢの入力アークｃおよびｄに入力データが到着していれば、ノードＮＤＡとノードＮＤＢとは同時に発火することができる。ノードＮＤＣはノードＮＤＡおよびノードＮＤＢの演算の完了を待つ必要がある。ノードＮＤＣはノードＮＤＡおよびノードＮＤＢの演算が実行完了して、双方の入力データが揃ったときに発火することができる。
【００２０】
一般に、ｎ入力ｍ出力のノードは、最大２入力および２出力を有する基本ノードの組合せで実現することができる。基本ノードとしては、入力アークに与えられたデータに演算を施す演算ノードと、入力トークンをコピーして複数の出力アークに出力する分配ノードと、複数の入力アークに与えられたデータを出力アークに伝達する合流ノードと、データの経路を制御する制御ノードがある。
【００２１】
図１０は従来例のサンプリング周波数変換回路におけるデータフローグラフ形式のプログラム例を示す図である
図７における入力ポート５はサンプリング周波数でサンプリングされたディジタル信号を受け、受けた順に世代番号および所定の行先を示すノード番号を付加して入力パケットを生成する。データ駆動エンジン６は入力されたデータパケットとメモリインタフェース７から読出されたデータパケットに従って演算処理を行なう。メモリインタフェース７は入力データパケット内の世代番号をアドレス信号として画像メモリ９から読出および書込を行なう。
【００２２】
図１０に示したプログラム例は前述の特開平６−３０３８４号公報に記載されたものであり、ＭＵＳＥ（多重サブナイキストサブサンプリングエンコーディング）方式による画像処理の中で、３２．４ＭＨｚのサンプリング周波数に変換されている画像データを４８．６ＭＨｚのサンプリング周波数の画像データに補間して変換するものである。
【００２３】
まず、図７に示した入力ポート５に時系列的に与えられる入力データＸ１，Ｘ２…は入力順に世代番号が付され、かつノード番号が付されてデータパケットのフォーマットに変換される。このデータパケットは、ノード４０１の命令［ＷＲ］によってデータパケットの世代番号順に画像メモリ９に書込まれる。なお、この画像メモリ９へのデータパケットの書込は、この場合１つおきのピクセルアドレス位置に書込んでいる。これは３２．４ＭＨｚサンプリングデータから４８．６ＭＨｚサンプリングデータに変換されると、補間データが加わりデータ数が増加するので、サンプリング周波数変換されたデータが再び画像メモリ９に書込まれる際、最初に書込まれた入力データが読出される前に補間データにより書換えられないようにするためである。
【００２４】
ノード４０１と並行してノード４０２において演算「ＡＧＮ」が実行される。ノード４０２における演算「ＡＧＮ」は右データが固定データ「０」であり、入力データパケットが与えられた時点でこの固定された定数「０」との演算が行なわれる。この演算「ＡＧＮ」は入力データパケットの世代番号をデータとして、データ領域にコピーしてデータパケットを出力する命令である。したがって、データ領域には世代番号が格納されている。
【００２５】
ノード４０２の出力はノード４０３に与えられる。ノード４０３はノード４０２の出力データパケットに含まれるデータ領域内のデータと固定データ「１」との「ＡＮＤ」演算を実行する。これにより、奇数世代のデータパケットのデータ領域には「１」が書込まれ、偶数世代のデータパケットデータ領域には「０」が書込まれる。これにより奇数世代の画像データと偶数世代の画像データとの分離が行なわれる。
【００２６】
ノード４０３により奇数世代の画像データと偶数世代の画像データの分離が行なわれたデータ系列はノード４０４に与えられる。ノード４０４の演算［ＥＱ」はデータパケットのデータ領域のデータが「１」であればそこに「１」が書込まれ、そうでない場合には「０」が書込まれる。
【００２７】
ノード４０４の出力はノード４０５に与えられる。ノード４０５は制御ゲートであり、右データすなわちノード４０４の出力データが「１」の場合にこのノード４０４から与えられた左データを通過させる。そうでない場合は、この左入力アークへ与えられたデータを消滅させる。これにより、ノード４０５からは奇数世代の画像データに対応するデータパケットのみが与えられる。以後、このノード４０５からの奇数世代の画像データのみを用いてサンプリング周波数の変換が行なわれる。この奇数世代画像データに対応するデータパケットのみを利用するのは１つのデータパケットたとえばＸ５が与えられたときに同時に３つのデータＹ１，Ｙ２，Ｙ３を出力するためである。これにより、等価的に２つの入力画像データに対して３つの変換後の画像データを出力することになり、これにより任意の画像データのサンプリング周波数を１．５倍した画像データを得ることができる。たとえば、サンプリング周波数３２．４ＭＨｚの画像データを図１０に示すデータフロー型プログラムの処理を施すと、３２．４ＭＨｚの１．５倍である４８．６ＭＨｚのサンプリング周波数に変換された画像データを得ることができる。
【００２８】
この奇数世代データパケットはノード４０６およびノード４０７へ与えられる。ここでは、画像データＸ５の世代番号が格納されたデータパケットがノード４０６に与えられた場合について説明する。ノード４０６では、世代番号（ＦＤ，ＬＮ，ＰＸ）が（０，０，−２）、つまりＸ５のピクセルアドレスから−２のアドレスで画像メモリ９に格納されたデータの読出が行なわれる。
【００２９】
既に説明したように、データパケットは１つおきのピクセルアドレス（２倍のアドレス）に書込まれているため、この場合は１世代前の画像データＸ４のデータパケットが読出される。続いて、ノード４０８に送られると（０，０，−６）、つまりＸ５のピクセルアドレスから−６のアドレスで画像メモリ９に格納されたデータの読出が行なわれる。これにより、画像メモリ９から３世代前の画像データＸ２のデータパケットが読出される。
【００３０】
一方、ノード４０７においては（０，０，０）、つまり画像メモリ９から画像データＸ５のデータパケットが読出される。ノード４０７より読出された画像データＸ５はノード４０９へ与えられる。ノード４０９により世代番号にオフセット−４が与えられ、２世代前の画像データＸ３が読出される。次いで、ノード４１０に進み、画像データＸ５の世代番号にオフセット−８を与えて画像メモリ９へアクセスする。これにより、画像データＸ５よりも４世代前の画像データＸ１が読出される。これによりサンプリング周波数変換に必要とされる５つの画像データＸ１，Ｘ２，Ｘ３，Ｘ４，Ｘ５が読出される。
【００３１】
次いで、補間処理を伴ったサンプリング周波数変換を行なうために演算処理が実行される。ノード４０７の演算により読出されたデータＸ５はノード４１８およびノード４２７へ与えられる。ノード４１８は画像データＸ５と定数α６とを乗算する。ノード４２７はこの画像データＸ５とα４とを乗算する演算を行なう。
【００３２】
ノード４０６で読出されたデータＸ４はノード４１１，４１９および４２８へ与えられ、それぞれのノードにおいて定数α５，α３およびα１と乗算される。ノード４０８の演算により読出されたデータＸ２は、ノード４１２，４２０および４２９へ与えられ、それぞれのノードにおいて定数α２，α０およびα２と乗算される。さらに、ノード４０８の演算により読出されたデータＸ２はノード４１３，４２１および４３０へも与えられ、それぞれ定数α１，α３およびα５と乗算される。ノード４１０の演算により読出されたデータＸ１はノード４１４，４２２へ与えられ、それぞれのノードにおいて定数α４，α６が乗算される。
【００３３】
ノード４１１からの演算結果およびノード４１２からの演算結果はノード４１５で加算される。ノード４１３の演算結果とノード４１５の演算結果はノード４１６で加算される。ノード４１４の演算結果とノード４１６の演算結果はノード４１７で加算される。これにより、画像データＹ１に対応するデータパケットが生成される。また、ノード４１８の演算結果とノード４１９の演算結果はノード４２３で加算される。ノード４２０の演算結果とノード４２３の演算結果はノード４２４で加算される。ノード４２１の演算結果とノード４２４の演算結果はノード４２５で加算される。ノード４２２の演算結果とノード４２５の演算結果はノード４２６で加算され、これにより画像データＹ２に対応するデータパケットが生成される。
【００３４】
ノード４２７の演算結果とノード４２８の演算結果はノード４３１で加算され、ノード４３１の演算結果とノード４２９の演算結果はノード４３２で加算され、ノード４３０の演算結果とノード４３２の演算結果はノード４３３で加算される。これにより画像データＹ３に対応するデータパケットが生成される。ノード４１１からノード４３３にかけてのデータフローにおける画像信号の補間処理を伴うサンプリング周波数変換は図１０に示す式４３４で実現することができる。
【００３５】
従来のデータ駆動型プロセッサにおいては、画像信号の補間処理の仕様変更の際は行列４３４−ａのａ１，ａ２，ａ３，ａ４，ａ５およびａ６の各種パラメータを変更し、一方サンプリング周波数変換の仕様変更の際は、入力データ４３４−ｂ，出力データ４３４−ｃおよび変換パラメータ行列４３４−ａのすべてを変更しなければならない。
【００３６】
【発明が解決しようとする課題】
上述の如く、従来のディジタル信号のサンプリング周波数変換装置は、サンプリング周波数変換の仕様に対しては補間処理を伴うサンプリング周波数変換を行なうデータフロー形式のプログラムを変更することにより対応することができる。データ駆動型プロセッサはデータフロー形式のプログラムに従って、入力データの処理とデータ駆動型処理外部のメモリから読出したデータの処理などを行なっているからである。
【００３７】
しかし、従来のデータ駆動型プロセッサを使用したサンプリング周波数変換装置において、図１０の式４３４の補間処理を伴うサンプリング周波数変換を行なうためのプログラム仕様変更はサンプリング周波数に係るパラメータ行列４３４−ａの決定などのタイミング調整を行なわなければならず、また最終的には実際に動作させて決定しなければならず、容易ではない。
【００３８】
また、プログラムメモリに格納するプログラムには物理的に限界があり、特開平６−３０３８４号公報に記載されたディジタル信号のサンプリング周波数変換装置を従来のデータ駆動型プロセッサで実現するためには、多量のプログラム格納メモリを費やすことになる。画像データに対してサンプリング周波数変換以外のさまざまな処理、たとえばガンマ補正やＲＧＢ変換なども行なう際にはメモリ不足やプログラム量に応じた処理速度の低下などの欠点がある。
【００３９】
それゆえに、この発明の主たる目的は、サンプリング周波数変換の仕様変更などの際に、クロックのタイミングを変更するだけで迅速に仕様変更可能なディジタル信号のサンプリング周波数変換装置を提供することである。
【００４０】
【課題を解決するための手段】
この発明は、ディジタル信号のサンプリング周波数変換装置であって、データ信号を受け、データ信号に入力順に世代番号および行先ノード番号を付して第１のパケットを生成するデータパケット生成部と、クロック信号を受け、クロック信号に入力順に世代番号および行先ノード番号を割り当てた第２のパケットを生成するデータパケット生成機構と、第１および第２のパケットを受け、第１のパケットから抜き出されたデータ値に基づいて第２のパケット内のデータ領域を更新する入力制御部と、入力制御部に接続され、入力制御部から伝送される第２のパケットを受け、第２のパケットに含まれる行先ノード番号に割り当てられた命令に従って読み出されたデータパケットに対して演算処理を行なうデータ駆動エンジンとを備える。
【００４１】
好ましくは、メモリインターフェイスを介してデータ駆動エンジンに接続されるメモリをさらに備え、データ駆動エンジンは、第１のパケットに基づいて更新された第２のパケットを受け、第１のパケットの世代番号に基づくアドレスに従って第２のパケットをメモリへ書き込み、入力制御部は、メモリに書き込まれた第２のパケットのデータと第２のパケットにアドレスが隣接するデータとの間の所定比率の点を補間することにより第２のパケット内のデータ領域を更新する。
【００４２】
好ましくは、第２のパケットからデータ値を抜き出す演算に用いられる第１の可変定数は、クロック信号に応じて生成されるデータパケットの世代番号のディジタル化に用いられる。
【００４３】
好ましくは、第２のパケットからデータ値を抜き出す演算に用いられる第１の可変定数は、２のべき乗である。
好ましくは、所定比率の決定に用いられる第２の可変定数は、データ信号のサンプリング周波数と所望のディジタル化されたサンプリング周波数との変換比に対応する。
【００４４】
【発明の実施の形態】
図１はこの発明の一実施形態のデータ駆動型プロセッサを使用した画像データのサンプリング周波数変換回路の一例を示すブロック図である。図１において、サンプリング周波数変換回路４０は、データ駆動エンジン６とメモリインタフェース７と出力ポート８は前述の図７と同様であり、入力ポート１０にデータパケット生成部１２と入力制御部１３とを内蔵させ、さらにデータパケット生成機構１１を新たに設けた点が異なっている。
【００４５】
データパケット生成機構１１はクロック入力端子に入力されたクロックから所望の周波数変換を行なうために補間されたデータを格納するためのデータパケットを生成する。入力ポート１０内のデータパケット生成部１２は入力データＸを受け、受けた順に世代番号および所定の行先を示すノード番号を付して入力パケットを生成する。入力ポート１０内の入力制御部１３はデータパケット生成部１２で生成された画像データＸを格納したデータパケットと、データパケット生成機構１１で生成された所望の周波数変換を行なうために補間されたデータを格納するためのデータパケットの行先ノード番号を参照してデータ駆動エンジン６に伝送するものである。データ駆動エンジン６は前述の図７で説明したように、１つもしくは複数のデータ駆動型プロセッサＰｅを含んで構成されている。
【００４６】
データ駆動エンジン６は読出されたデータパケットに含まれる行先ノード番号に従って処理を実行する。この処理実行時においては、行先ノード番号に割当てられた命令に従って読出されたデータパケットに対して演算処理を行なう。データ駆動エンジン６は入力データパケットの割合と、入力データパケットとは別のクロックにより生成されるデータパケットの割合との比が前者のサンプリング周波数と後者のサンプリング周波数との比で与えられる数のデータパケットを１つの入力データパケットに対応して生成する。
【００４７】
サンプリング周波数変換などの周波数変換処理を施したデータを利用するのは、一般にサンプリング周波数変換器の出力ポート以降（たとえば、データ駆動型プロセッサの外部）がデータを要求するときである。そのため、データを要求する側（データ駆動型プロセッサの出力段以降の装置）からクロックをデータ駆動型プロセッサに送った方がデータ駆動型プロセッサにおいて処理速度の面から効率がよい。したがって、クロック入力端子は出力側に配置するのが実用的である。
【００４８】
図２はこの発明の一実施形態のデータ駆動型プロセッサで実現した解像度変換器のデータフローグラフ形式のプログラム例を示す。図２において、入力ポート７０へ時系列的に与えられた入力画像データＸ１は入力順に世代番号が付され、かつ行先ノード番号が付されてデータパケットのフォーマットに変換される。このデータパケットはデータ駆動エンジン６内のプログラム記憶付発火制御ユニット（複数あるデータ駆動型プロセッサＰｅを基本としたユニットの１つ）へ与えられる。プログラム記憶付発火制御ユニットは、その世代番号順に生成されたデータパケットをノード７１のＷＲ命令により図６に示した世代番号に基づくアドレスにしたがって画像メモリ７へ書込む。
【００４９】
一方、クロック入力端子から投入されたクロックによりデータパケット生成機構１１でパケット投入順に世代番号と行先ノード番号が割当てられる。このとき、データ領域には何も入っていない。データパケット生成機構１１により生成されたパケットは、ノード７３において演算ＡＰＸが実行される。演算ＡＰＸは１入力２出力の命令であり、入力されたデータパケットの世代番号からピクセルＰＸを抜き出し、抜き出した値でデータパケットのデータ領域の値を更新する。この時点でデータパケットの生成機構で生成されたデータパケットのデータ領域のデータが書込まれる。このとき、データパケットのデータ領域はピクセルＰＸがデータとなっている。
【００５０】
ノード７７はデータパケットのデータ領域を左データとし、固定データ「２５６」を右データとして左データを右データで割算を行なったときの剰余でパケット内のデータ領域を更新する。つまり、データ領域の値の下位９ビットを抜き出して、その値でデータ領域を更新することになる。
【００５１】
ノード７４へ送られたデータパケットはパケット内のデータ領域の値、つまりピクセルＰＸを左データとし、固定データ「２５６」を右データとして左データと右データの乗算を行ないデータ領域を更新する。これは、データ領域を左に８ビットシフトするのと同じことである。
【００５２】
図２に示すように、ノード７７およびノード７４の右データの固定値Ｚは、ここでの説明では２５６を使用しているが、この値は任意に設定可能である。このＺ値は任意のクロック入力に応じて生成される各データパケットの世代番号（ここではＰＸ値）をこのＺ値の逆数０，１／２５６，２／２５６，…２５５／２５６、１の近い値に近似してディジタル化していくため、Ｚ値が大きいほど図８に示した本来のピクセルＰＸとの近似の精度が高くなることになる。
【００５３】
このＺ値は、たとえば１２８，２５６，５１２など２nの値を使用すると、乗算や割算はデータ領域のデータを右もしくは左へビットをシフトし、所望のデータを取出すだけでよく、計算を簡易化することができる。
【００５４】
また、後述のＣＳＴ値は、入力される画像データＸｉのサンプリング周波数に対して、所望のディジタル化されたサンプリング周波数に変換された画像データＹｉの周波数の変換比に対応するものであり、ＣＳＴ／Ｚ倍に変換することになる。このＣＳＴ／Ｚ値を任意に変えることで、容易に所望の周波数変換比を得ることができる。
【００５５】
ノード７４とノード７７の演算の結果、ノード７７の演算結果のデータパケットのデータ領域はノード７３のデータ領域の値の小数部分で更新され、ノード７４の演算結果のデータパケットのデータ領域はノード７３のデータ領域の値の整数部分で更新される。ノード７５，ノード７６の命令ＶＳは１入力１出力の命令であり、データ領域の値をＰＸとして、この値をアドレス信号とし、アドレス信号にオフセットをかけた先の画像メモリ９のアドレスに書込まれたデータを参照し、データ領域を更新する。ノード７５のオフセット値はすべて０のため、アドレス信号で読出した先の画像メモリ９に書込まれたデータＸｉでパケット内のデータ領域を更新する。このため、データパケット内のデータ領域はＸｉのデータとなる。ノード７６はピクセル番号にオフセットとして＋１を施すため、ノード７５で読出した１つの異なるアドレスに書かれたデータＸｉ＋１を画像メモリ９から読出し、パケット内のデータ領域を更新する。このとき、データパケットのデータ領域はＸｉ＋１のデータになる。
【００５６】
ノード７９はノード７５の出力、つまりＶＳにより読出したデータとノード７７の出力を入力として受取り、その積を出力として送る。ノード８０は固定データ５１２（ＣＳＴ＝５１２）を左データとし、ノード７７から送られたデータを右データとして、左データから右データの減算を行ない、その結果を出力として送る。ノード８１はノード７６のＶＳにより読出したデータとノード８０の出力を入力として受取り、その結果を出力として送る。
【００５７】
ノード８２はノード８１の演算結果とノード７９の演算結果との加算を行ない、その結果をノード８３に送る。しかし、このデータパケットのデータ領域の値は、ＣＳＴ倍所望の値よりも大きいため、ノード８３でデータ領域の値を１／ＣＳＴする処理を行なう。このデータフロープログラムではＬＯＧ２のＣＳＴビット分右シフトして、その値でデータ領域を更新している。すなわち、５１２は２9、つまり１／５１２にするため、右へ９ビットシフト処理してデータを抜き出している。
【００５８】
この演算結果でデータパケット内のデータ領域を更新し、データパケットＹｉを出力する。データパケットＹｉは、図２に示す式８４の
Ｙｉ＝ＣＤ／ＣＳＴ×Ｘｉ＋（１−ＣＤ／ＣＳＴ）×Ｘｉ＋１
により求めることができる。たとえば、ＣＤ／ＣＳＴを０．５にすれば、隣り合う２点の中心の点を補間することが可能となる。補間は隣り合う２点（Ｘｉ，Ｘｉ＋１）を直線に結んだ線上の値で近似している。最も簡単な近似により補間可能であるため、データフロープログラムも容易に実現することができる。この補間により、２点間の画像データから３点分の画像データを生成することが可能となる。そして、ＣＤ／ＣＳＴを走査することにより、補間する画像メモリ９の空間上の場所を容易に変更することが可能となる。
【００５９】
解像度変換の仕様変更は、データフロープログラムを変更するのではなく、入力ポートとは別に設けたクロック入力端子のタイミングを変更することにより、所望の解像度変換後の画像データをデータ駆動型プロセッサの出力ポートより得ることができる。
【００６０】
データ駆動型プロセッサにおいては、各ノードにおいて演算に必要なデータが揃った時点で発火して演算が実行される。したがって、データ駆動型プロセッサを使用していない一般のディジタル回路などのように入力信号のタイミング調整を行なうことなく容易に、高速で確実に解像度変換処理などを行なうことができる。
【００６１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００６２】
【発明の効果】
以上のように、この発明によれば、入力画像の解像度変換を入力ポートとは別に、所望のサンプリング周波数のクロック信号を入力する入力端子を設け、このクロック信号に応じてデータパケットを生成するデータパケット生成機構を設けてデータ駆動型プロセッサで処理を行なうようにしたので、サンプリング周波数変換の仕様変更などの際に、新たに解像度変換器の作り直しなどをする必要がなく、従来の入力ポートとは別のパケット自動生成機構を駆動するクロック入力端子から入力するクロック信号のタイミングを変更するだけで、容易に所望の特性を備えたサンプリング周波数変換装置を実現することができる。
【００６３】
また、従来の変換器の仕様変更はデータフロープログラムを変更していたものが、この発明ではクロック信号のタイミングを変更するだけでよく、従来に比べて格段に容易かつ迅速に仕様変更が可能となる。
【００６４】
さらに、従来例よりも解像度変換に要する補間処理を伴うサンプリング周波数変換のデータフロー形式のプログラムは、図１０に示した従来のサンプリング変換を行なうデータフロー型プログラムよりも図２に示したこの発明によるデータフロー型プログラムの方が小さくてすみ、演算量も４０％減少する。したがって、２．５倍の解像度変換にかかる処理能力の向上と、解像度変換処理に要するプログラム保存用メモリ使用量も４０％節約可能となる。
【００６５】
さらに、この発明はさまざまな補間を伴うサンプリング周波数の変換器に使用可能であるが、たとえばファクシミリで受信した画像データを任意の紙サイズに伸張（Ａ４版→Ｂ４版）して出力し、印字する際の補間を伴うサンプリング周波数の変更にも有効となる。
【図面の簡単な説明】
【図１】  この発明の一実施形態のサンプリング周波数変換回路の概略ブロック図である。
【図２】  この発明の一実施形態による画像の解像度変換を行なうデータフロープログラムの一例を示す図である。
【図３】  データ伝送路の構成を示すブロック図である。
【図４】  図３に示したＣ素子の動作を説明するためのタイミングチャートである。
【図５】  図３に示したデータ伝送路を有するデータ駆動型プロセッサのブロック図である。
【図６】  データパケットのフォーマットを示す図である。
【図７】  従来のデータ駆動型プロセッサによるサンプリング周波数変換回路のブロック図である。
【図８】  図７に示した画像メモリにおける画像とデータパケット内部の世代番号フィールドに含まれるデータとメモリセルとの対応関係を示す図である。
【図９】  従来のデータ駆動型プロセッサによるデータフロープログラムの一例を示す図である。
【図１０】  従来例のサンプリング周波数変換回路のデータフローグラフ形式のプログラム例を示す図である。
【符号の説明】
６  データ駆動エンジン、７  メモリインタフェース、８  出力ポート、９  画像メモリ、１０  入力ポート、１１  データパケット生成機構、１２  データパケット生成部、１３  入力制御部。
【図１】
0003983451.tif 000002
【図２】
0003983451.tif 000003
【図３】
0003983451.tif 000004
【図４】
0003983451.tif 000005
【図５】
0003983451.tif 000006
【図６】
0003983451.tif 000007
【図７】
0003983451.tif 000008
【図８】
0003983451.tif 000009
【図９】
0003983451.tif 000010
【図１０】
0003983451.tif 000011