(57)【要約】【課題】回路規模と性能のトレードオフをより高次元に両立するデータ形式変換方法を提供すること。【解決手段】処理回数をs、ラインの一方をＨ、他方をＬ、ＨとＬの２つの記憶装置を１カラムとしてカラムの端から各カラムの番号をkとし、各記憶装置をＨ[k],Ｌ[k]で表す場合、s回目の処理では、Ｌ[s-１]とＨ[n/２-s]内のデータはカラム方向へ（Ｓ１，Ｓ３）、Ｌ[s]乃至Ｌ[n/２-s]及びＨ[s-１]乃至Ｈ[n/２-s-１]内のデータはライン方向へ移動し（Ｓ４）、その他の記憶装置はデータ移動を行わず（Ｓ５）、Ｌ[k]内のデータがライン方向へ移動する場合はＬ[k-１]へ、カラム方向へ移動する場合はＨ[k]へ移動し、Ｈ[k]内のデータがライン方向へ移動する場合はＨ[k+１]へ、カラム方向へ移動する場合はＬ[k]へ移動し、処理数がn/４になるまで前記ｓ回目の処理を繰り返す、ことを特徴とする。【選択図】図１０
2012159995.tif 000002
【特許請求の範囲】
【請求項１】
２ラインで２次元に配置されたｎ個（nは４以上の偶数)の記憶装置が、パラレルデータをシリアルデータに変換するデータ形式変換方法において、
処理回数をs(s=１,２,３...)、
ラインの一方をＨ、他方をＬ、
ＨとＬの２つの記憶装置を１カラムとしてカラムの端から各カラムの番号をk(k=０,１,２...n/２-１)とし、各記憶装置をＨ[k],Ｌ[k]で表す場合、
s回目の処理では、
Ｌ[s-１]とＨ[n/２-s]内のデータはカラム方向へ、Ｌ[s]乃至Ｌ[n/２-s]及びＨ[s-１]乃至Ｈ[n/２-s-１]内のデータはライン方向へ移動し、その他の記憶装置はデータ移動を行わず、
Ｌ[k]内のデータがライン方向へ移動する場合はＬ[k-１]へ、カラム方向へ移動する場合はＨ[k]へ移動し、Ｈ[k]内のデータがライン方向へ移動する場合はＨ[k+１]へ、カラム方向へ移動する場合はＬ[k]へ移動し、
処理数がn/４になるまで前記ｓ回目の処理を繰り返す、
ことを特徴とするデータ形式変換方法。
【請求項２】
２ラインで２次元に配置されたｎ個（nは４以上の偶数)の記憶装置が、パラレルデータをシリアルデータに変換するデータ形式変換方法において、
処理回数をs(s=１,２,３...)、
ラインの一方をＨ、他方をＬ、
ＨとＬの２つの記憶装置を１カラムとしてカラムの端から各カラムの番号をk(k=０,１,２...n/２-１)とし、各記憶装置をＨ[k],Ｌ[k]で表す場合、
s回目の処理では、
Ｌ[n/４-s]とＨ[n/４-１+s]内のデータ内のデータはカラム方向へ、Ｌ[n/４-s+１]乃至Ｌ[n/４-１+s]とＨ[n/４-s]乃至Ｈ[n/４-２+s]のデータはライン方向へデータを移動し、その他の記憶装置はデータ移動を行わず、
Ｌ[k]内のデータがライン方向へ移動する場合はＬ[k-１]へ、カラム方向へ移動する場合はＨ[k]へ移動し、
Ｈ[k]内のデータがライン方向へ移動する場合はＨ[k+１]へ、カラム方向へ移動する場合はＬ[k]へ移動し、
前記処理数がn/４になるまで前記ｓ回目の処理を繰り返す、
ことを特徴とするデータ形式変換方法。
【請求項３】
全ての記憶装置のデータをカラム方向に交換する処理をさらに有する、
ことを特徴とする請求項１又は２記載のデータ形式変換方法。
【請求項４】
各カラムの記憶装置がw(２以上の偶数かつn/４の約数)離れたカラムの前記記憶装置と接続されており、
前記ｓ回目の処理をn/４回行う前、又は、n/４回行った後に、ｗ離れた記憶装置間で互いにライン方向にデータを交換する、
ことを特徴とする請求項１又は２記載のデータ形式変換方法。
【請求項５】
ライン方向に連続した所定数毎に記憶装置を区分し各区分をＧ、区分Ｇの番号を（０，１，２…n/３２-１）、ｉを整数とした場合、
ｗ離れた記憶装置間で互いにデータをライン方向に交換する処理は、
ｍ回目の処理にて、
Ｇ[m]乃至Ｇ[7-m]内の区分であり、Ｈ[m+1+2i]の区分の記憶装置はｗ小さい側の記憶装置からデータを取得し、
Ｇ[m]乃至Ｇ[7-m]内の区分であり、Ｌ[m+2i]の区分の記憶装置はｗ大きい側の記憶装置からデータを取得し、
該処理数が「区分数／２−１」になるまで前記ｍ回目の処理を繰り返す、
ことを特徴とする請求項４記載のデータ形式変換方法。
【請求項６】
ライン方向に連続した所定数で記憶装置を区分し各区分をＧ、区分Ｇの番号を（０，１，２…n/４-１）と、ｉを整数とした場合、
ｗ離れた記憶装置間で互いにデータをライン方向に交換する処理は、
ｍ回目の処理にて、
Ｇ[4-s]乃至Ｇ[3+s]内の区分であり、Ｈ[5-m+2i]の区分の記憶装置はｗ小さい側の記憶装置からデータを取得し、
Ｇ[4-s]乃至Ｇ[3+s]内の区分であり、Ｌ[4-s+2i]の区分の記憶装置はｗ大きい側の記憶装置からデータを取得し、
該処理数が区分数／２−１になるまで前記ｍ回目の処理を繰り返す
ことを特徴とする請求項４記載のデータ形式変換方法。
【請求項７】
２ラインで２次元に配置されたｎ個（nは４以上の偶数)の記憶装置と、該記憶装置に記憶されたパラレルデータをシリアルデータに変換する制御部とを有する集積装置であって、
処理回数をs(s=１,２,３...)、
ラインの一方をＨ、他方をＬ、
ＨとＬの２つの記憶装置を１カラムとしてカラムの端から各カラムの番号をk(k=０,１,２...n/２-１)とし、各記憶装置をＨ[k],Ｌ[k]で表す場合、
前記制御部は、s回目の処理において、
Ｌ[s-１]とＨ[n/２-s]の記憶装置に対し該記憶装置が記憶しているデータをカラム方向に移動させ、Ｌ[s]乃至Ｌ[n/２-s]及びＨ[s-１]乃至Ｈ[n/２-s-１]の記憶装置に対し該記憶装置が記憶しているデータをライン方向へ移動させ、その他の記憶装置にはデータを移動させない制御信号であって、
Ｌ[k]の記憶装置にライン方向にデータを移動させる際はＬ[k-１]の記憶装置にデータを移動させ、Ｌ[k]の記憶装置にカラム方向へデータを移動させる際はＨ[k]の記憶装置にデータを移動させる前記制御信号を出力し、
Ｈ[k]の記憶装置にライン方向にデータを移動させる際はＨ[k+１]の記憶装置にデータを移動させ、Ｈ[k]の記憶装置にカラム方向にデータを移動させる際はＬ[k]の記憶装置にデータを移動させる前記制御信号、を出力すると共に、
処理数がn/４になるまで前記ｓ回目の前記制御信号を各記憶装置に出力し、
各記憶装置は、
Ｈ[k]の入力側に接続された、Ｈ[k-1]からの入力とＬ[k]からの入力のいずれかを選択してＨ[k]に転送する第１の選択手段と、
Ｌ[k]の入力側に接続された、Ｌ[k+1]からの入力とＨ[k]からの入力のいずれかを選択してＬ[k]に転送する第２の選択手段と、
前記制御部と、Ｈ[k]、Ｌ[k]、第１の選択手及び段第２の選択手段とをそれぞれ接続する制御バスと、を有し、
前記制御部から供給される前記制御信号に基づき、前記第１の選択手段及び第２の選択手段がデータ移動を行うか否かを判定し、
データ移動を行う場合、前記第１の選択手段及び第２の選択手段が、カラム方向又はライン方向へデータを移動する、
ことを特徴とする集積装置。
【請求項８】
２ラインで２次元に配置されたｎ個（nは４以上の偶数)の記憶装置と、該記憶装置に記憶されたパラレルデータをシリアルデータに変換する制御部とを有する集積装置であって、
前記制御部は、処理回数をs(s=１,２,３...)、
ラインの一方をＨ、他方をＬ、
ＨとＬの２つの記憶装置を１カラムとしてカラムの端から各カラムの番号をk(k=０,１,２...n/２-１)とし、各記憶装置をＨ[k],Ｌ[k]で表す場合、
s回目の処理において、
Ｌ[n/４-s]とＨ[n/４-１+s]の記憶装置に対し該記憶装置が記憶しているデータをカラム方向に移動させ、Ｌ[n/４-s+１]乃至Ｌ[n/４-１+s]とＨ[n/４-s]乃至Ｈ[n/４-２+s]の記憶装置に対し該記憶装置が記憶しているデータをライン方向へ移動させ、その他の記憶装置にはデータを移動させない制御信号であって、
Ｌ[k]の記憶装置にライン方向にデータを移動させる際はＬ[k-１]の記憶装置にデータを移動させ、Ｌ[k]の記憶装置にカラム方向へデータを移動させる際はＨ[k]の記憶装置にデータを移動させる前記制御信号を出力し、
Ｈ[k]の記憶装置にライン方向へデータを移動させる際はＨ[k+１]の記憶装置にデータを移動させ、Ｈ[k]の記憶装置にカラム方向へデータを移動させる際はＬ[k]の記憶装置にデータを移動させる前記制御信号を、出力すると共に、
前記処理数がn/４になるまで前記ｓ回目の前記制御信号を各記憶装置に出力し、
各記憶装置は、
Ｈ[k]の入力側に接続された、Ｈ[k-1]からの入力とＬ[k]からの入力のいずれかを選択してＨ[k]に転送する第１の選択手段と、
Ｌ[k]の入力側に接続された、Ｌ[k+1]からの入力とＨ[k]からの入力のいずれかを選択してＬ[k]に転送する第２の選択手段と、
前記制御部と、Ｈ[k]、Ｌ[k]、第１の選択手及び段第２の選択手段とをそれぞれ接続する制御バスと、を有し、
前記制御部から供給される前記制御信号に基づき、前記第１の選択手段及び第２の選択手段がデータ移動を行うか否かを判定し、
データ移動を行う場合、前記第１の選択手段及び第２の選択手段が、カラム方向又はライン方向へデータを移動する、
ことを特徴とする集積装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロプロセッサに搭載されるデータ形式変換方法に関し、特に、パラレルデータとシリアルデータを相互に変換可能なデータ形式変換方法等に関する。
【背景技術】
【０００２】
画像処理専用マイクロプロセッサでは、ＳＩＭＤ(Single Instruction-stream Multiple Data-stream)型を採用することが多い。１つの命令で複数のデータに対して同時に同じ演算処理が実行可能であるＳＩＭＤ型プロセッサは画像処理に適しているためである。ＳＩＭＤ型プロセッサは、プロセッサエレメント（以下ＰＥ）と呼ばれる単位で演算器とレジスタを備えており、ＳＩＭＤ型プロセッサはそのＰＥを複数個備える。各ＰＥは、１個の画素の画像処理を担当し、複数個のＰＥが同時に演算処理を行うことで、複数の画素に同時に同じ演算を施すことができ、画像処理の効率を高めている。
【０００３】
画像処理専用マイクロプロセッサには、フィルター演算など隣接画素を参照して演算する画像処理に対応するために、隣接ＰＥのレジスタを参照できるものがある（例えば、特許文献１参照。）。特許文献１には、隣接ＰＥのレジスタに格納された画素データを参照するＳＩＭＤ型プロセッサが示されている。ＰＥが隣接したＰＥのレジスタを参照するということは、隣接する画素データを隣接するＰＥのレジスタに格納しておくということを意味しており、画素データの並びをＰＥの並びに対応させて配置することを意味する。このため、ＰＥを１次元的に配置するＳＩＭＤ型プロセッサの場合、２次元で表現される画素データの１次元方向が、ＰＥの並びに合わせて配置される。例えば、６４個のＰＥを備えるＳＩＭＤ型プロセッサでは、６４個の連続した画素データをＰＥの並びに合わせて配置する。
また、ＳＩＭＤ型プロセッサにおいてさらに画像処理の並列度を上げる技術が提案されている（例えば、特許文献２参照。）。特許文献２には、１ＰＥに対し２個以上の画像データを配置するＳＩＭＤ型プロセッサが開示されており、その中で５通りの配置方法が示されている。このうち、特許文献２の図８、図９、図１０で示される３通りについては処理対象の画像データからの切り出し方法が異なるが、切り出し方法の違いに関係なくＳＩＭＤ型プロセッサ上の配置は同一であるので、実質的に３通りの配置方法（以下、画素データフォーマットという）があると考えられる。
【０００４】
便宜上、３通りの画素データフォーマットにそれぞれαフォーマット、βフォーマット、γフォーマットと名前を付ける。そして、３２個のＰＥを備えるＳＩＭＤ型プロセッサに画素データを２個ずつ配置する場合を例にして、画素データフォーマットの特徴を説明する。
【０００５】
図１は、αフォーマットのデータ配置例を示す。６４個の連続した画素データD0〜D63が対象で、画素データの順番にＰＥに配置されるデータ配置例となる。よって、D0,D1がＰＥ０に、D2，D3がＰＥ１に、D４,D５がＰＥ２に、・・・、D62,D63がＰＥ３１に、それぞれ配置される。
図２は、βフォーマットのデータ配置例を示す。６４個の連続した画素データD0〜D63が対象で、画素データの半分が順番にＰＥの上位に配置され、画素データの残りの半分が順番にＰＥの下位に配置される。よって、D0,D32がＰＥ０に、D１,D33がＰＥ１に、D2，D34がＰＥ２に、・・・、D31，D63がＰＥ３１に、それぞれ配置される。
図３は、γフォーマットのデータ配置例を示す。３２個の連続した画素データDa0〜Da31と３２個の連続した画素データDb0〜Db31とが対象で、前半の画素データがＰＥの下位側に、後半の画素データがＰＥの上位側にそれぞれ配置される。よって、Da0,Db0がＰＥ０に、Da1,Db1がＰＥ１に、Da2,Db2がＰＥ２に、・・・、Da31,Db31がＰＥ３１に、それぞれ配置される。
各画素データフォーマットには特徴があり、開発者は、画像処理の種類、ＳＩＭＤ型プロセッサへの画像データ出力装置の構成などの要因から最適な画素データフォーマットを選択し、選択した画素データフォーマットを前提としたシステムを構築すればよい。
【０００６】
これらの複数の画素データフォーマットを取り扱うＳＩＭＤ型プロセッサも実現可能であり、画素データフォーマットの違いによる動作の違いは、モード切替による命令の解釈を変えることで対応する手法、又は、命令そのものを画素データフォーマット毎に用意する手法などが、考えられる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、ＰＥ上のレジスタと外部のメモリの間で画素データを転送する入出力装置も、ＳＩＭＤ型プロセッサ上の画素データフォーマットに従う必要がある。また、ＳＩＭＤ型プロセッサが得意としないシリアル画像処理を専用に実行する外部画像処理装置も、ＳＩＭＤ型プロセッサと接続されるため、ＳＩＭＤ型プロセッサ上の画素データフォーマットに対応する必要がある。このようなプロセッサ周辺装置の場合、過去の設計資産であるＩＰ（Intellectual Property）を再利用する方法が多用される。
【０００８】
図４は、周辺装置の一例を示す。ＳＩＭＤ型プロセッサ１０が周辺装置２０と接続されている。図に示す周辺装置２０が入出力装置又は外部画像処理装置である。開発時に存在するＩＰが、目的の画素データフォーマットに対応していれば問題はないが、異なる画素データフォーマットにしか対応していない場合には、開発者は直接的にはＩＰを使うことができない。
【０００９】
周辺装置側で対応するには、ＩＰの改造か、又は、ＩＰを諦めて新規設計する必要が生じる。目的の画素データフォーマットと目的の周辺装置ではアルゴリズムとして相性が悪く、ＩＰを新規設計する場合であっても、回路規模の増大や処理性能のダウンなど、開発工数以外に不都合がある可能性も考えられる。
【００１０】
同様のことがソフトウエアでも考えられ、開発者が既存の画像処理ソフトウエアを再利用する際において、ソフトウエアの前提とする画素データフォーマットと、ＳＩＭＤ型プロセッサで予定している画素データフォーマットが異なる場合が考えられる。ソフトウエアで対応するには、ソフトウエアを改造するか、又は、元のソフトウエアを諦めて新規プログラミングする必要が生じる。
【００１１】
目的の画素データフォーマットと目的のソフトウエアではアルゴリズムとして相性が悪く、新規プログラミングする場合でも、プログラムコードサイズの増大や処理性能のダウンなど、プログラミング工数以外に不都合がある可能性も考えられる。
【００１２】
このような状況に対応するには、複数の画素データフォーマットをＳＩＭＤ型プロセッサ側で異なる画素データフォーマットに変換することが要請される。
【００１３】
図５は、フォーマット変換のために、ＳＩＭＤ型プロセッサ１０の外部に装備されたフォーマット変換装置４０の一例を示す。ＳＩＭＤ型プロセッサ１０とフォーマット変換装置４０が接続されている。フォーマット変換装置４０は、ＰＥ上のレジスタに展開する画素データを、一度、外部ＲＡＭ５０に読み出し、再び外部ＲＡＭ５０からＰＥ上のレジスタに所望の画素データフォーマットで書き込むという動作を行う。
【００１４】
この装置を利用できれば、画素データフォーマット相互間の変換が可能になり、異なる画素データフォーマットに対応した周辺装置やソフトウエアであっても、ＳＩＭＤ型プロセッサに接続可能となる。
【００１５】
しかし、フォーマット変換装置や画素データの一時記憶用のＲＡＭが別途必要となるなど、相応の負荷が発生することなる。このため、ＳＩＭＤ型プロセッサの外部にフォーマット変換装置を持つことなく、ＳＩＭＤ型プロセッサ内部で画素データフォーマットの変換が可能な技術が求められている。
【００１６】
ＳＩＭＤ型プロセッサ内部で画素データフォーマットの変換を実現する比較的、単純な方法は、変換に必要なすべての経路を備えることである。
図６は、βフォーマットからαフォーマットへの変換する際の経路を示す図の一例である。図６の上側がβフォーマットで配置された変換前のレジスタで、ここでは転送元レジスタとなる。図６の下方がαフォーマットで配置された変換後のレジスタで、ここでは転送先レジスタとなる。
【００１７】
中央部に示された矢印が転送経路であり、黒丸印が転送元のレジスタ、矢先が転送先のレジスタを示す。実線の経路は D00〜D31のデータ経路で、破線の経路はD32〜D63のデータ経路を示している。例えば、D01はＰＥ０の下位ビットに、D02はＰＥ１の上位ビットに…転送され、D32はＰＥ１６の上位ビットに、D33はＰＥ１６の下位ビットに…転送される。
【００１８】
なお、図６はβフォーマットからαフォーマットへの変換例であるが、逆の変換であるαフォーマットからβフォーマットへの変換も、同じ経路をデータが逆方向に転送されればよいので、回路規模としては同等である。
【００１９】
しかし、この変換を一度に行う場合は図６に示す経路すべてが必要となり、回路規模が増大するという不都合が生じる。
【００２０】
回路規模を抑える方法として、ひとつの万能転送経路を用意し、転送を６４ステップに分けて実行する方法がある。
【００２１】
図７は、万能転送経路３０の一例を示す。すべての転送元レジスタが万能転送経路３０に接続されているので、すべての転送元レジスタが画素データを出力でき、すべての転送先レジスタへ入力できる。上側が転送元のβフォーマットのレジスタを、下側が転送先のαフォーマットのレジスタをそれぞれ示す。転送元のD0は転送先のD0に、転送元のD32は転送先のD32に、転送元のD01は転送先のD01に、転送元のD33は転送先のD33に、…転送元のD31は転送先のD31に、転送元のD63は転送先のD63に、それぞれ転送される。
【００２２】
このような出力、入力の制御は、制御装置６０が一元的に行う。しかし、１回で１個のデータを所望の位置へ転送することになるので６４個のデータを転送するには、６４ステップが必要となる。
【００２３】
この万能転送経路３０を２重に配置し、１回の転送時間で２個の画素データを転送するという手段を用いれば、必要な回路規模は倍増するが、全転送が終了するために必要なステップ数が半減できる。
【００２４】
これは回路規模と得られる性能にはトレードオフが成立していることを示しており、回路規模と性能のどちらを優先するかはＳＩＭＤ型プロセッサの特徴に合わせて決定すべきと考えられる。しかし、回路規模と性能のうちどちらかを優先しても、他方が優先されないことによる不利益を低減することが望まれる。
【００２５】
本発明は、上記課題に鑑み、回路規模と性能のトレードオフをより高次元に両立するデータ形式変換方法を提供することを目的とする。
【課題を解決するための手段】
【００２６】
上記課題に鑑み、本発明は、２ラインで２次元に配置されたｎ個（nは４以上の偶数)の記憶装置が、パラレルデータをシリアルデータに変換するデータ形式変換方法において、
処理回数をs(s=１,２,３...)、
ラインの一方をＨ、他方をＬ、
ＨとＬの２つの記憶装置を１カラムとしてカラムの端から各カラムの番号をk(k=０,１,２...n/２-１)とし、各記憶装置を Ｈ[k] , Ｌ[k] で表す場合、
s回目の処理では、
Ｌ[s-１] と Ｈ[n/２-s] 内のデータはカラム方向へ、Ｌ[s] 乃至 Ｌ[n/２-s]及びＨ[s-１] 乃至 Ｈ[n/２-s-１] 内のデータはライン方向へ移動し、その他の記憶装置はデータ移動を行わず、Ｌ[k]内のデータがライン方向へ移動する場合はＬ[k-１]へ、カラム方向へ移動する場合はＨ[k]へ移動し、Ｈ[k]内のデータがライン方向へ移動する場合はＨ[k+１]へ、カラム方向へ移動する場合はＬ[k]へ移動し、処理数が n/４ になるまで前記ｓ回目の処理を繰り返す、ことを特徴とする。
【発明の効果】
【００２７】
回路規模と性能のトレードオフをより高次元に両立するデータ形式変換方法を提供することができる。
【図面の簡単な説明】
【００２８】
【図１】αフォーマットのデータ配置例を示す図の一例である。
【図２】βフォーマットのデータ配置例を示す図の一例である。
【図３】γフォーマットのデータ配置例を示す図の一例である。
【図４】周辺装置の一例を示す図である。
【図５】フォーマット変換のために、ＳＩＭＤ型プロセッサの外部に装備されたフォーマット変換装置の一例を示す図である。
【図６】βフォーマットからαフォーマットへの変換する際の経路を示す図の一例である。
【図７】万能転送経路の一例を示す図である。
【図８】ＰＥの構成例を示す図の一例である。
【図９】図８で示されたＰＥ００乃至ＰＥ３１と、転送経路Ｌ１２１と転送経路Ｈ１２２に注目して説明する図の一例である。
【図１０】フォーマット変換の各ステップの模式的表現の一例を示す図である。
【図１１】フォーマット変換の手順をフローチャートにて表す図の一例である。
【図１２】デコーダが入力信号Ｎ[4:0]から生成するステップごとの制御信号の一覧の一例を示す図である。
【図１３】デコーダが入力信号Ｎ[4:0]から生成するステップごとの制御信号の一覧の一例を示す図である。
【図１４】デコーダが入力信号Ｎ[4:0]から生成するステップごとの制御信号の一覧の一例を示す図である。
【図１５】フォーマット変換の各ステップの模式的表現の一例を示す図である。
【図１６】フォーマット変換の手順をフローチャートにて表す図の一例である。
【図１７】１ＰＥの構成図の一例である（実施例２）。
【図１８】１２８ＰＥで行われるデータ形式変換を示す図の一例である。
【図１９】フォーマット変換の各ステップの模式的表現の一例を示す図である。
【図２０】デコーダＢが入力信号Ｍ[1:0]から生成するステップごとの制御信号の一覧を表す図の一例である。
【図２１】フォーマット変換の手順をフローチャートにて表す図の一例である。
【図２２】αフォーマットデータからβフォーマットデータへの複数シフト動作のシフト例を説明する図の一例である。
【図２３】デコーダＢが入力信号Ｍ[1:0]から生成するステップごとの制御信号の一覧を表す図の一例である。
【図２４】フォーマット変換の手順をフローチャートにて表す図の一例である。
【発明を実施するための形態】
【００２９】
以下、本発明を実施するための形態について図面を参照しながら実施例を挙げて説明する。
【実施例１】
【００３０】
図８は、ＳＩＭＤ型プロセッサ１０の構成例を示す図の一例である。ＳＩＭＤ型プロセッサ１０はＰＥ（プロセッサエレメント）１００と、ＰＥ１００を制御するＰＥコントロール部２００とを有する。図８のＰＥ１００が実際には複数個、実装されており、そのうちの１つを代表として図示している。ＰＥコントロール部２００は不図示のグローバルプロセッサ内に設けられ、グローバルプロセッサとほぼ一体とみなせるか、又は、ＰＥコントロール部２００をグローバルプロセッサと称してもよい。
【００３１】
ＳＩＭＤ型プロセッサ１０は、いわゆるＳＩＳＤ（Single Instruction-stream, Single Data-stream）型のマイクロプロセッサであり、１つの集積回路（ＩＣ）として実装される。ＰＥコントロール部２００はプログラムＲＡＭとデータＲＡＭ（いずれも不図示）を内蔵し、プログラムの実行結果に応じてＰＥ１００に制御信号を供給する。ＰＥ１００は制御信号により処理のシーケンスが制御され、各ＰＥ１００は、後述するレジスタに記憶されている画素のデータに対してほぼ同時に同じ処理を行う。
【００３２】
ＰＥ（以下、符号は省略する）は、内部レジスタとして、汎用レジスタ１４２、汎用レジスタ１４３、結果レジスタ１４４、変換レジスタＬ１０１、変換レジスタＨ１０２、を備えており、それらのレジスタは、内部データバス１３１と内部データバス１３２に対してデータの入出力が可能である。
【００３３】
ＰＥは演算器１４１を備えており、演算器１４１は内部データバス１３１と内部データバス１３２からそれぞれデータを入力し、演算を実行し、その結果を結果レジスタ１４４に格納する。図中では省略しているが、ＰＥコントロール部２００からは、ＰＥを含むすべてのＰＥの動作をコントロールする制御信号２０１を発信しており、ＰＥはその制御信号２０１に従って動作する。
【００３４】
マルチプレクサＬ１１１とマルチプレクサＨ１１２はそれぞれ２系統の入力を持ち、出力側はそれぞれ変換レジスタＬ１０１と変換レジスタＨ１０２へと接続されている。マルチプレクサＨ１１２とマルチプレクサＬ１１１には転送経路Ｌ１２１と転送経路Ｈ１２２が接続されている。この転送経路Ｌ１２１と転送経路Ｈ１２２は隣接するＰＥへも接続されている。この転送経路Ｌ１２１と転送経路Ｈ１２２のうち、隣接するＰＥからの入力を、それぞれ転送経路Ｌ１２１aと転送経路Ｈ１２２a、内部の変換レジスタ１０１からマルチプレクサ１１２への入力を転送経路Ｌ１２１、内部の変換レジスタ１０２からマルチプレクサ１１１への入力を転送経路Ｈ１２２、と呼び分けることとする。
【００３５】
変換レジスタＬ１０１は、転送経路Ｌ１２１と接続されている。変換レジスタＨ１０２は、転送経路Ｈ１２２と接続されている。変換レジスタＬ１０１、変換レジスタＨ１０２、マルチプレクサＬ１１１及びマルチプレクサＨ１１２は、ＰＥコントロール部２００と接続され、ＰＥコントロール部２００から制御信号２０１を受けて制御される。
【００３６】
ＰＥコントロール部２００は内部に信号Ｎ２０２を生成する機構を備え、ＰＥコントロール部２００ではこの信号Ｎ２０２をデコードし、変換レジスタＬ１０１、変換レジスタＨ１０２、マルチプレクサＬ１１１、マルチプレクサＨ１１２の制御信号２０１を生成する。この信号Ｎ２０２を入力情報として、入力情報に対して制御信号２０１を生成する関係式については、フォーマット変換動作の説明とともに後述する。
【００３７】
次に転送経路Ｌ１２１と転送経路Ｈ１２２の全体の構成を、図９を用いて説明する。
図９は、図８で示されたＰＥであるＰＥ００乃至ＰＥ３１と、転送経路Ｌ１２１と転送経路Ｈ１２２に注目して図示している。ＰＥは、ＰＥ００を１番目に、ＰＥ０１を２番目に、ＰＥ０２を３番目に、…、ＰＥ３１を最右方となるよう配置しているが、中間のＰＥの一部は、紙面の関係で省略している。
【００３８】
各ＰＥにおいても、ここでの説明に必要な、変換レジスタ１０１、１０２、マルチプレクサＬ１１１、Ｈ１１２、転送経路Ｌ１２１、Ｈ１２２を除いて省略している。変換レジスタＬ１０１、Ｈ１０２は矩形で表示され、下から、変換レジスタＬ１０１、変換レジスタＨ１０２の順に表示する。マルチプレクサＬ１１１、Ｈ１１２は台形で表示され、下から、マルチプレクサＬ１１１、マルチプレクサＨ１１２の順に表示する。
【００３９】
各ＰＥ内の変換レジスタＬ１０１の出力は転送経路Ｌ１２１に接続され、同じＰＥ内のマルチプレクサＨ１１２と左隣のＰＥのマルチプレクサＬ１１１に入力されている。各ＰＥ内の変換レジスタＨ１０２の出力は転送経路Ｈ１２２に接続され、同じＰＥ内のマルチプレクサＬ１１１と右隣のＰＥのマルチプレクサＨ１１２に入力されている。
【００４０】
ＰＥ００はＰＥ群の左端にあるため、マルチプレクサＨ１１２の一方の入力に接続すべき転送経路が無い。この空いた入力には同じＰＥ内の転送経路Ｌ１２１を接続する。つまり、ＰＥ００のマルチプレクサＨ１１２の２つの入力には両方とも転送経路Ｌ１２１が接続される。
【００４１】
ＰＥ３１はＰＥ群の右端にあるため、マルチプレクサＬ１１１の一方の入力に接続すべき転送経路が無い。この空いた入力には同じＰＥ内の転送経路Ｈ１２２を接続する。つまり、ＰＥ３１のマルチプレクサＬ１１１の２つの入力には両方とも転送経路Ｈ１２２が接続される。
【００４２】
なお、変換レジスタ内に括弧付きで表示されている文字は、格納されるデータを表しており、それは後述の動作説明の中で述べる。マルチプレクサ内に表示されている数字は、マルチプレクサの入力端子を表しており、それは後述の動作説明の中で述べる。
【００４３】
・β→α
次に図８、図９で示されたＳＩＭＤ型プロセッサのＰＥ部において、フォーマット変換の動作説明を行う。図２に示したβフォーマットから、図１に示すαフォーマットへの変換を例にして説明する。
【００４４】
６４個の連続した画素データをD00〜D63とし、ＰＥコントロール部２００はそれぞれを変換レジスタＬ又は変換レジスタＨに格納する。したがって、ＰＥ[00]の変換レジスタＬにはD00、ＰＥ[01]の変換レジスタＬにはD01、ＰＥ[02]の変換レジスタＬにはD02、・・・、ＰＥ[30]の変換レジスタＬにはD30、ＰＥ[31]の変換レジスタＬにはD31、ＰＥ[00]の変換レジスタＨにはD32、ＰＥ[01]の変換レジスタＨにはD33、・・・、ＰＥ[30]の変換レジスタＨにはD62、ＰＥ[31]の変換レジスタＨにはD63、が格納される。これが変換前のβフォーマットのデータである。
【００４５】
この後、１７ステップに分けてデータフォーマットの変換を行う。
図１０は、このフォーマット変換のステップの模式的表現の一例を示す図である。ＰＥの配置は図９と同様になっている。図の上側の変換レジスタＬ１，Ｈ１は、D00〜D63を変換前のβフォーマットで格納している。中央の破線内の矢印は、各ステップにおけるデータの転送を示している。１つの破線で囲まれた矢印が同時に動作するステップを意味する。上から第１のステップ、第２のステップ、・・・、第１７のステップの順である。黒丸印が転送元、矢先が転送先を示す。また、左の目盛はステップ数を確認する指標として表示している。
【００４６】
図の下側の変換レジスタＬ２，Ｈ２は、D00〜D63を変換後のαフォーマットで格納している。
【００４７】
第１のステップ：
・ＰＥ[00]のマルチプレクサＨは入力端子０の画素データを変換レジスタＨに出力し、ＰＥ３１のマルチプレクサＬは入力端子０の画素データを変換レジスタＬに出力する。上記を除く全てのマルチプレクサは、入力端子１の画素データを変換レジスタに出力する。
・ＰＥ[00]乃至ＰＥ[31]の変換レジスタＬ、Ｈは、マルチプレクサＬ、Ｈから入力された画素データを取り込む。
第２のステップ：
・ＰＥ[01]のマルチプレクサＨは入力端子０の画素データを変換レジスタＨに出力し、ＰＥ[30]のマルチプレクサＬは入力端子０の画素データを変換レジスタＬに出力する。上記を除く全てのマルチプレクサＬ，Ｈは、入力端子１の画素データを変換レジスタＬ，Ｈに出力する。
・ＰＥ[01]乃至ＰＥ[30]の変換レジスタＬ，Ｈは、マルチプレクサＬ，Ｈから入力された画素データを取り込む。上記を除く全ての変換レジスタは、マルチプレクサから入力された画素データを取り込まず、元のデータを保持する。
第３のステップ：
・ＰＥ[02]のマルチプレクサＨは入力端子０の画素データを変換レジスタＨに出力し、ＰＥ[29]のマルチプレクサＬは入力端子０の画素データを変換レジスタＬに出力する。上記を除く全てのマルチプレクサＬ，Ｈは、入力端子１の画素データを変換レジスタＬ，Ｈに出力する。
・ＰＥ[02]乃至ＰＥ[29]の変換レジスタＬ，Ｈは、マルチプレクサＬ，Ｈから入力された画素データを取り込む。上記を除く全ての変換レジスタは、マルチプレクサから入力された画素データを取り込まず、元のデータを保持する。
第４のステップ：
・ＰＥ[03]のマルチプレクサＨは入力端子０の画素データを変換レジスタＨに出力し、ＰＥ[28]のマルチプレクサＬは入力端子０の画素データを変換レジスタＬに出力する。上記を除く全てのマルチプレクサは、入力端子１の画素データを変換レジスタに出力する。
・ＰＥ[03]乃至ＰＥ[28]の変換レジスタは、マルチプレクサから入力された画素データを取り込む。上記を除く全ての変換レジスタは、マルチプレクサから入力された画素データを取り込まず、元のデータを保持する。
第５のステップ：
ＰＥ[04]のマルチプレクサＨは入力端子０の画素データを変換レジスタＨに出力し、ＰＥ[27]のマルチプレクサＬは入力端子０の画素データを変換レジスタＬに出力する。上記を除く全てのマルチプレクサは、入力端子１の画素データを変換レジスタに出力する。
・ＰＥ[04]乃至ＰＥ[27]の変換レジスタは、マルチプレクサから入力された画素データを取り込む。上記を除く全ての変換レジスタは、マルチプレクサから入力された画素データを取り込まず、元のデータを保持する。
第６のステップ：
・ＰＥ[05]のマルチプレクサＨは入力端子０の画素データを変換レジスタＨに出力し、ＰＥ[26]のマルチプレクサＬは入力端子０の画素データを変換レジスタＨに出力する。上記を除く全てのマルチプレクサは、入力端子１の画素データを変換レジスタに出力する。
・ＰＥ[05]乃至ＰＥ[26]の変換レジスタは、マルチプレクサから入力された画素データを取り込む。上記を除く全ての変換レジスタは、マルチプレクサから入力された画素データを取り込まず、元のデータを保持する。
第７のステップ：
・ＰＥ[06]のマルチプレクサＨは入力端子０の画素データを変換レジスタＨに出力し、ＰＥ[25]のマルチプレクサＬは入力端子０の画素データを変換レジスタＬに出力する。上記を除く全てのマルチプレクサは、入力端子１の画素データを変換レジスタに出力する。
・ＰＥ[06]乃至ＰＥ[25]の変換レジスタは、マルチプレクサから入力された画素データを取り込む。上記を除く全ての変換レジスタは、マルチプレクサから入力された画素データを取り込まず、元のデータを保持する。
第８のステップ：
・ＰＥ[07]のマルチプレクサＨは入力端子０の画素データを変換レジスタに出力し、ＰＥ[24]のマルチプレクサＬは入力端子０の画素データを変換レジスタに出力する。上記を除く全てのマルチプレクサは、入力端子１の画素データを変換レジスタに出力する。
・ＰＥ[07]乃至ＰＥ[24]の変換レジスタは、マルチプレクサから入力された画素データを取り込む。上記を除く全ての変換レジスタは、マルチプレクサから入力された画素データを取り込まず、元のデータを保持する。
第９のステップ：
・ＰＥ[08]のマルチプレクサＨは入力端子０の画素データを変換レジスタに出力し、ＰＥ[23]のマルチプレクサＬは入力端子０の画素データを変換レジスタＬに出力する。上記を除く全てのマルチプレクサは、入力端子１の画素データを変換レジスタに出力する。
・ＰＥ[08]乃至ＰＥ[23]の変換レジスタは、マルチプレクサから入力された画素データを取り込む。上記を除く全ての変換レジスタは、マルチプレクサから入力された画素データを取り込まず、元のデータを保持する。
第１０のステップ：
・ＰＥ[09]のマルチプレクサＨは入力端子０の画素データを変換レジスタＨに出力し、ＰＥ[22]のマルチプレクサＬは入力端子０の画素データを変換レジスタＨに出力する。上記を除く全てのマルチプレクサは、入力端子１の画素データを変換レジスタに出力する。
・ＰＥ[09]乃至ＰＥ[22]の変換レジスタは、マルチプレクサから入力された画素データを取り込む。上記を除く全ての変換レジスタは、マルチプレクサから入力された画素データを取り込まず、元のデータを保持する。
第１１のステップ：
・ＰＥ[10]のマルチプレクサＨは入力端子０の画素データを変換レジスタＨに出力し、ＰＥ[21]のマルチプレクサＬは入力端子０の画素データを変換レジスタＬに出力する。上記を除く全てのマルチプレクサは、入力端子１の画素データを変換レジスタに出力する。
・ＰＥ[10]乃至ＰＥ[21]の変換レジスタは、マルチプレクサから入力された画素データを取り込む。上記を除く全ての変換レジスタは、マルチプレクサから入力された画素データを取り込まず、元のデータを保持する。
第１２のステップ：
・ＰＥ[11]のマルチプレクサＨは入力端子０の画素データを変換レジスタに出力し、ＰＥ[20]のマルチプレクサＬは入力端子０の画素データを変換レジスタに出力する。上記を除く全てのマルチプレクサは、入力端子１の画素データを変換レジスタに出力する。
・ＰＥ[11]乃至ＰＥ[20]の変換レジスタは、マルチプレクサから入力された画素データを取り込む。上記を除く全ての変換レジスタは、マルチプレクサから入力された画素データを取り込まず、元のデータを保持する。
第１３のステップ：
・ＰＥ[12]のマルチプレクサＨは入力端子０の画素データを変換レジスタに出力し、ＰＥ[19]のマルチプレクサＬは入力端子０の画素データを変換レジスタに出力する。上記を除く全てのマルチプレクサは、入力端子１の画素データを変換レジスタに出力する。
・ＰＥ[12]乃至ＰＥ[19]の変換レジスタは、マルチプレクサから入力された画素データを取り込む。上記を除く全ての変換レジスタは、マルチプレクサから入力された画素データを取り込まず、元のデータを保持する。
第１４のステップ：
・ＰＥ[13]のマルチプレクサＨは入力端子０の画素データを変換レジスタに出力し、ＰＥ[18]のマルチプレクサＬは入力端子０の画素データを変換レジスタに出力する。上記を除く全てのマルチプレクサは、入力端子１の画素データを変換レジスタに出力する。
・ＰＥ[13]乃至ＰＥ[18]の変換レジスタは、マルチプレクサから入力された画素データを取り込む。上記を除く全ての変換レジスタは、マルチプレクサから入力された画素データを取り込まず、元のデータを保持する。
第１５のステップ：
・ＰＥ[14]のマルチプレクサＨは入力端子０の画素データを変換レジスタに出力し、ＰＥ[17]のマルチプレクサＬは入力端子０の画素データを変換レジスタに出力する。上記を除く全てのマルチプレクサは、入力端子１の画素データを変換レジスタに出力する。
・ＰＥ[14]乃至ＰＥ[17]の変換レジスタは、マルチプレクサから入力された画素データを取り込む。上記を除く全ての変換レジスタは、マルチプレクサから入力された画素データを取り込まず、元のデータを保持する。
第１６のステップ：
・ＰＥ[15]のマルチプレクサＨは入力端子０の画素データを変換レジスタに出力し、ＰＥ[16]のマルチプレクサＬは入力端子０の画素データを変換レジスタに出力する。上記を除く全てのマルチプレクサは、入力端子１の画素データを変換レジスタに出力する。
・ＰＥ[15]乃至ＰＥ[16]の変換レジスタは、マルチプレクサから入力された画素データを取り込む。上記を除く全ての変換レジスタは、マルチプレクサから入力された画素データを取り込まず、元のデータを保持する。なお、ここまでの処理でパラレルデータがシリアルデータに変換されている点に注意されたい。
第１７のステップ：
・全てのＰＥのマルチプレクサは入力端子０の画素データを変換レジスタに出力する。全てのＰＥの変換レジスタは、マルチプレクサから入力された画素データを取り込む。
【００４８】
この結果、D00がＰＥ[00]の変換レジスタＬに、D01がＰＥ[00]の変換レジスタＨに、D02がＰＥ[01]の変換レジスタＬに、D03がＰＥ[01]の変換レジスタＨに、D04がＰＥ[02]の変換レジスタＬに、D05がＰＥ[02]の変換レジスタＨに、・・・、D62がＰＥ[31]の変換レジスタＬに、D63がＰＥ[31]の変換レジスタＨにそれぞれ格納される。これはαフォーマットのデータ配置である。
【００４９】
図１０により、βフォーマットからαフォーマットへ変換するための全経路が１ＰＥ以内の距離に収まっていることがわかる。また、ＰＥ間の転送経路は２組であるが、３２ステップを要することなく、（１６+１）ステップで実現できている。
【００５０】
図１１は、このフォーマット変換の手順をフローチャートにて表す図の一例である。処理ステップをs(s=１,２,３,...,１７)で表し、変換レジスタＬをＬ、変換レジスタＨをＨ、左端から各ＰＥの順番をk(k=０,１,２,...,３１)とし、各変換レジスタを Ｈ[k]、Ｌ[k]で表している。この変換のフローチャートに従い各変換レジスタが同時に処理を行う。
【００５１】
この変換のフローチャートには１つのメインルーチンと２つのサブルーチンがある。
メインルーチンではステップ１からステップ１６まで繰り返し処理をした後、ステップ１７の処理を行う。
【００５２】
ステップ１の繰り返し処理では、最初にそのステップにおいて各変換レジスタが更新を行うか否かを判断する。条件式は「s-１≦k≦３２-s」で表され、Ｙｅｓ（真）なら更新を行い、Ｎｏ（偽）なら更新を行わず元のデータを保持する（ステップ５）。
【００５３】
ステップ１で更新を行うと判定された場合、マルチプレクサによる画素データの選択が行われる（ステップ２）。条件は「自身の変換レジスタがＬ[s-１]またはＨ[３２-s]である」により表され、真なら「入力選択０」サブルーチンが処理され（ステップ３）、偽なら「入力選択１」サブルーチンが処理される（ステップ４）。すなわち、Ｌ側のマルチプレクサは処理ステップｓ-１の場合、Ｈ側のマルチプレクサは処理ステップ３２-ｓの場合に、「入力選択０」サブルーチンを実行し、それ以外は「入力選択１」のサブルーチンを実行する。
【００５４】
「入力選択０」サブルーチンでは、ステップ３−１で各ＰＥのうち変換レジスタＬか変換レジスタＨかが判断される。変換レジスタＬは同じＰＥ内の変換レジスタＨからの画素データを取り込み（ステップ３−２）、変換レジスタＨは同じＰＥ内の変換レジスタＬからの画素データを取り込む（ステップ３−３）。この処理は、図９においてはマルチプレクサが入力端子０を選択することを表し、図１０においては画素データが縦方向の矢印のように移動したことを表している。
【００５５】
「入力選択１」サブルーチンでは、ステップ４−１で各ＰＥのうち変換レジスタＬか変換レジスタＨかが判断される。変換レジスタＬは自身のＰＥ番号kよりも１つ若い番号を持つＰＥ内の変換レジスタＬから画素データを取り込み（ステップ４−２）、変換レジスタＨは自身のＰＥ番号kよりも１つ次のＰＥ番号を持つＰＥ内の変換レジスタＨから画素データを取り込む（ステップ４−３）。この処理は、図９においてはマルチプレクサが入力端子１を選択することを表し、図１０においては画素データが横方向の矢印のように移動したことを表している。このフローチャートで、変換動作をすべて表現できている。
【００５６】
次にこのような動作を行うための制御方法について説明する。
最初の第１のステップｓ１から、最後の第１７のステップｓ１７まで説明したように、各ＰＥに対する指示は３つの要素を含んでいる。
すなわち、
[１]各ＰＥに対する、変換レジスタが画素データを更新するか又は元の画素データを保持するかの指示
[２]各ＰＥに対する、マルチプレクサＬに入力端子０か又は入力端子１を選択させる指示
[３]各ＰＥに対する、マルチプレクサＨに入力端子０か又は入力端子１を選択させる指示
の３つである。
【００５７】
これらの指示は図８におけるＰＥコントロール部２００から制御信号２０１として発信される。ＰＥは３２個あるため、それぞれのＰＥにおいて１つの指示を行うには３２bit必要となる。
【００５８】
前述の通り指示は３つあるので、合計９６bitの制御信号２０１があればＰＥコントロール部２００から全ＰＥの制御が可能である。
【００５９】
本実施例では、図８にて説明したように、ＰＥコントロール部２００にデコーダ２１０が備えられており、デコーダ２１０は信号Ｎ２０２を入力情報とし、出力情報として制御信号２０１を生成する。各ＰＥではデコーダ２１０から出力される制御信号２０１により変換レジスタＬ１０１、変換レジスタＨ１０２、マルチプレクサＬ１１１、及び、マルチプレクサＨ１１２が制御される。
【００６０】
本実施例において、ＰＥコントロール部２００が、βフォーマットからαフォーマットに変換する動作を実行するためには、ステップ数１７をカバーする５bitで全ＰＥを制御する制御信号２０１を生成することが可能である。また、複数のＰＥで制御信号２０１を共有することにより、３３bitの制御信号２０１で各ＰＥにおいて上記の３つの指定が可能である。
【００６１】
デコーダ２１０への入力信号Ｎを５bitの信号Ｎ[4:0]で表現する。また、ＰＥコントロール部２００から出力される３２bitの制御信号をＡ[31:0]で、１bitの制御信号をＢで表現する。
【００６２】
デコーダ２１０は、このＮ[4:0]を入力情報として、前述の制御信号Ａと制御信号Ｂを出力情報とする装置である。
入力情報と出力情報の関係式は次の通りである。
【００６３】
N[４]|｛N[３]~&N[２]~&N[１]~&N[０]~｝=A[０]=A[３１]
N[４]|｛N[３]~&N[２]~&N[１]~｝=A[１]=A[３０]
N[４]|｛N[３]~&N[２]~&(N[１]&N[０])~｝=A[２]=A[２９]
N[４]|｛N[３]~&N[２]~｝=A[３]=A[２８]
N[４]|｛(N[３]~&N[２]~)| (N[３]~&N[１]~&N[０]~)｝=A[４]=A[２７]
N[４]|｛(N[３]~&N[２]~)| (N[３]~&N[１]~)｝=A[５]=A[２６]
N[４]|｛(N[３]~&N[２]~)| (N[３]~&(N[１]&N[０])~)｝=A[６]=A[２５]
N[４]|｛N[３]~｝=A[７]=A[２４]
N[４]|｛N[３]~| (N[２]~&N[１]~&N[０]~)｝=A[８]=A[２３]
N[４]|｛N[３]~| (N[２]~&N[１]~)｝=A[９]=A[２２]
N[４]|｛N[３]~| (N[２]~&(N[１]&N[０])~)｝=A[１０]=A[２１]
N[４]|｛N[３]~| N[２]~｝=A[１１]=A[２０]
N[４]|｛N[３]~| N[２]~|(N[１]~&N[０]~)｝=A[１２]=A[１９]
N[４]|｛N[３]~| N[２]~| N[１]~｝=A[１３]=A[１８]
N[４]|｛N[３]~| N[２]~| N[１]~｜N[０]~｝=A[１４]=A[１７]
｛１｝=A[１５]=A[１６]
N[４]~=Ｂ
なお、"｜"、"~"、"＆"はビット演算子で、順番に"or""not""and"を意味する。
従って、例えば、"Ｎ[４]|｛Ｎ[３]~&Ｎ[２]~&Ｎ[１]~&Ｎ[０]~｝=Ａ[0]=Ａ[31]"は、Ｎ[4］が"１"又はＮ[3：0］が全て"０"ならば、Ａ[0]=Ａ[31]が"１"であること、及び、Ｎ[4]が"０"かつＮ[3：0]のうち少なくとも１bitが"０"でないならば、Ａ[0]=Ａ[31]が"０"であること、を表す。
【００６４】
また、"｛１｝=Ａ[15]=Ａ[16]"は、Ａ[15]=Ａ[16]が"１"があること（その他は"０"）を表している。また、"Ｎ[4]~=Ｂ"は、Ｎ[4]が"０"ならばＢが"１"であること、及び、Ｎ[4]が"１"ならばＢが"０"であること、を表している。
【００６５】
左端からのＰＥの順番をk(k=０,１,２,…,３１)とし各ＰＥをＰＥ[k]で表すとき、ＰＥ[k]には制御信号２０１としてＡ[k-１],Ａ[k],Ａ[k+1],Ｂが入力され、各ＰＥは次の通り処理を行う。（但し、kが０、またはkが３１のときはそれぞれＡ[k-1]またはＡ[k+1]が存在しないため、代わりとして０を入力する。）
[１]ＰＥ[k]においてＡ[k]=１なら変換レジスタが画素データの更新を行い、Ａ[k]=０なら元のデータを保持する。
[２]ＰＥ[k]において、マルチプレクサＬで選択される入力端子の番号はＢ&Ａ[k+1]
[３]ＰＥ[k]において、マルチプレクサＨで選択される入力端子の番号はＢ&Ａ[k-1]
図１２は、この関係式を用いて、デコーダ２１０が入力信号Ｎ[4:0]から生成したステップごとの制御信号２０１の一覧の一例を示す図である。図１２では、左より、ステップ（番号）、入力信号Ｎのbit４、同bit３、同bit２、同bit１、同bit０、デコーダの出力信号Ａ[31:0]、デコーダの出力信号Ｂ、[１]変換レジスタが更新を行うＰＥ、[２]マルチプレクサＬが入力端子０を選択するＰＥ(その他のＰＥは入力端子１を選択する)、[３]マルチプレクサＨが入力端子０を選択するＰＥ(その他のＰＥは入力端子１を選択する)、である。この表で、変換動作をすべて表現できている。
【００６６】
・α→β
次に、図１に示したαフォーマットから図２に示したβフォーマットへの変換について説明する。６４個の連続した画素データをD00〜D63とし、それぞれを変換レジスタＬ又は変換レジスタＨに格納する。
【００６７】
例えば図１０に示したように、D00をＰＥ[00]の変換レジスタＬに、D01をＰＥ[00]の変換レジスタＨに、D02をＰＥ[01]の変換レジスタＬに、D03をＰＥ[01]の変換レジスタＨに、D04をＰＥ[02]の変換レジスタＬに、D05をＰＥ[02]の変換レジスタＨに、・・・、D62をＰＥ[31]の変換レジスタＬに、D63をＰＥ[31]の変換レジスタＨに格納するフォーマットが、変換前のαフォーマットのデータである。
【００６８】
αフォーマットからβフォーマットへの変換の場合、デコーダ２１０の動作する関係式は次の通りである。
【００６９】
N[４]|｛N[３]&N[２]&N[１]&N[０]｝=A[0]=A[31]
N[４]|｛N[３]&N[２]&N[１]｝=A[１]=A[30]
N[４]|｛N[３]&N[２]&(N[１]|N[０])｝=A[2]=A[29]
N[４]|｛N[３]&N[２]｝=A[3]=A[28]
N[４]|｛(N[３]&N[２])| (N[３]&N[１]&N[０])｝=A[4]=A[27]
N[４]|｛(N[３]&N[２])| (N[３]&N[１])｝=A[5]=A[26]
N[４]|｛(N[３]&N[２])| (N[３]&(N[１]|N[０]))｝=A[6]=A[25]
N[４]|｛N[３]｝=A[7]=A[24]
N[４]|｛N[３]| (N[２]&N[１]&N[０])｝=A[8]=A[23]
N[４]|｛N[３]| (N[２]&N[１])｝=A[9]=A[22]
N[４]|｛N[３]| (N[２]&(N[１]|N[０]))｝=A[10]=A[21]
N[４]|｛N[３]| N[２]｝=A[11]=A[20]
N[４]|｛N[３]| N[２]|(N[１]&N[０])｝=A[12]=A[19]
N[４]|｛N[３]| N[２]| N[１]｝=A[13]=A[18]
N[４]|｛N[３]| N[２]| N[１]｜N[０]｝=A[14]=A[17]
｛１｝=A[15]=A[16]
N[４]~=B
左端からのＰＥの順番をk(k=０,１,２,…,３１)とし各ＰＥをＰＥ[k]で表すとき、ＰＥ[k]には制御信号２０１としてＡ[k-１],Ａ[k],Ａ[k+１],Ｂが入力され、各ＰＥは次の通り処理を行う。（但し、kが０、またはkが３１のときはそれぞれＡ[k-１]またはＡ[k+１]が存在しないため、代わりとして０を入力する。）
[１]ＰＥ[k]においてＡ[k]=１なら変換レジスタが画素データの更新を行い、Ａ[k]=０なら元のデータを保持する。
[２]ＰＥ[k]において、マルチプレクサＬで選択される入力端子の番号はＢ&Ａ[k+１]
[３]ＰＥ[k]において、マルチプレクサＨで選択される入力端子の番号はＢ&Ａ[k-１]
図１３は、この関係式で、デコーダ２１０が入力信号Ｎ[４:０]から生成するステップごとの制御信号２０１の一覧の一例を示す図である。図１２と同様に、左より、ステップ、入力信号Ｎのbit４、同bit３、同bit２、同bit１、同bit０、デコーダの出力信号Ａ[３１:０]、デコーダの出力信号Ｂ、[１]変換レジスタが取り込みを行うＰＥ、[２]マルチプレクサＬが入力端子０を選択するＰＥ(その他のＰＥは入力端子１を選択する)、[３] マルチプレクサＨが入力端子０を選択するＰＥ(その他のＰＥは入力端子１を選択する)、である。
【００７０】
また、関係式はβフォーマットからαフォーマットへ変換する場合と同じまま、入力信号ＮをＮ=０１１１１b（２進数）からステップ毎に-１してもよい。図１２と図１３のＡ[31：0]を比較すると、ステップ番号の昇順と降順に切り替えれば、Ａ[31：0]は同じになることが分かる。すなわち、デコーダ２１０の動作する関係式は次の通りである。
【００７１】
N[4]|｛N[3]~&N[2]~&N[1]~&N[0]~｝=A[0]=A[31]
N[4]|｛N[３]~&N[２]~&N[１]~｝=A[1]=A[30]
N[4]|｛N[３]~&N[２]~&(N[１]&N[０])~｝=A[2]=A[29]
N[4]|｛N[３]~&N[２]~｝=A[3]=A[28]
N[4]|｛(N[３]~&N[２]~)| (N[３]~&N[１]~&N[０]~)｝=A[4]=A[27]
N[4]|｛(N[３]~&N[２]~)| (N[３]~&N[１]~)｝=A[５]=A[26]
N[4]|｛(N[３]~&N[２]~)| (N[３]~&(N[１]&N[０])~)｝=A[6]=A[25]
N[4]|｛N[3]~｝=A[7]=A[24]
N[4]|｛N[３]~| (N[２]~&N[１]~&N[０]~)｝=A[8]=A[23]
N[4]|｛N[３]~| (N[２]~&N[１]~)｝=A[９]=A[22]
N[4]|｛N[３]~| (N[２]~&(N[１]&N[０])~)｝=A[10]=A[21]
N[4]|｛N[３]~| N[２]~｝=A[１１]=A[20]
N[4]|｛N[３]~| N[２]~|(N[１]~&N[０]~)｝=A[12]=A[19]
N[4]|｛N[３]~| N[２]~| N[１]~｝=A[１３]=A[18]
N[4]|｛N[３]~| N[２]~| N[１]~｜N[０]~｝=A[14]=A[17]
｛１｝=A[15]=A[16]
N[4]~=B
左端からのＰＥの順番をk(k=０,１,２,…,３１)とし各ＰＥをＰＥ[k]で表すとき、ＰＥ[k]には制御信号２０１としてＡ[k-１],Ａ[k],Ａ[k+１],Ｂが入力され、各ＰＥは次の通り処理を行う。（但し、kが０、またはkが３１のときはそれぞれＡ[k-１]またはＡ[k+１]が存在しないため、代わりとして０を入力する。）
[１]ＰＥ[k]においてＡ[k]=１なら変換レジスタが画素データの更新を行い、Ａ[k]=０なら元のデータを保持する。
[２]ＰＥ[k]において、マルチプレクサＬで選択される入力端子の番号はＢ&Ａ[k+1]
[３]ＰＥ[k]において、マルチプレクサＨで選択される入力端子の番号はＢ&Ａ[k-1]
図１４は、デコーダ２１０が入力信号Ｎ[４:０]から生成するステップごとの制御信号２０１の一覧を示す図の一例である。図１２と同様に、左より、ステップ、入力信号Ｎのbit４、同bit３、同bit２、同bit１、同bit０、デコーダの出力信号Ａ[31:0]、デコーダの出力信号Ｂ、[１]変換レジスタが取り込みを行うＰＥ、[２]マルチプレクサＬが入力端子０を選択するＰＥ(その他のＰＥは入力端子１を選択する)、[３]マルチプレクサＨが入力端子０を選択するＰＥ(その他のＰＥは入力端子１を選択する)、である。
【００７２】
図１５は、このフォーマット変換の各ステップの模式的表現の一例を示す図である。
例えば、ステップ１では、ＰＥ[15]にＡ[14]，Ａ[15]，Ａ[16],Ｂ＝｛０，１，１，Ｂ｝が入力され、ＰＥ[16]にはＡ[15]，Ａ[16]，Ａ[17],Ｂ＝｛１，１，０，Ｂ｝が入力される。このため、
[１]ＰＥ[15]、ＰＥ[16]は、Ａ[15]=Ａ[16]=１なので、変換レジスタが画素データの更新を行う。
[２]ＰＥ[15]のマルチプレクサＬで選択される入力端子の番号はＢ&Ａ[16]＝１なので、ＰＥ[16]の変換レジスタＬのD32が、ＰＥ[15]の変換レジスタＬに格納される。ＰＥ[16]のマルチプレクサＬで選択される入力端子の番号はＢ&Ａ[17]＝０なので、ＰＥ[16]の変換レジスタＨのD33が、ＰＥ[16]の変換レジスタＬに格納される。
[３]ＰＥ[15]のマルチプレクサＨで選択される入力端子の番号はＢ&Ａ[14]＝０なので、ＰＥ１５の変換レジスタＬのD30が、ＰＥ15の変換レジスタＨに格納される。ＰＥ[16]のマルチプレクサＨで選択される入力端子の番号はＢ&Ａ[15]＝１なので、ＰＥ[15]の変換レジスタＨのD31が、ＰＥ[16]の変換レジスタＨに格納される。
【００７３】
このように、ステップ番号Ｎ[4：0]に従いデコーダ２１０がＡ[31:0]とＢを出力することで、α→β変換が行われる。
【００７４】
図１６はこれらの動作を表すフローチャート図の一例である。処理ステップをs(s=１,２,３,...,１７)で表し、変換レジスタＬをＬ、変換レジスタＨをＨ、左端から各ＰＥの順番をk(k=０,１,２,...,３１)とし、各変換レジスタの番号をＨ[k]、Ｌ[k]で表している。この変換のフローチャートに従い各変換レジスタが同時に処理を行う。
【００７５】
この変換のフローチャートには１つのメインルーチンと２つのサブルーチンがある。サブルーチンは図１１と同じなので説明を省略する。メインルーチンではステップ１からステップ１６まで繰り返し処理をした後、ステップ１７の処理を行う。
【００７６】
ステップ１の繰り返し処理では、最初にそのステップにおいて各変換レジスタが更新を行うか判断する。条件式は「16-ｓ≦ｋ≦15+ｓ」で表され、Ｙｅｓ（真）なら更新を行い、Ｎｏ（偽）なら更新を行わず元のデータを保持する（ステップ５）。
【００７７】
ステップ１で更新を行うと判定された場合、マルチプレクサにより画素データの選択が行われる（ステップ２）。条件は「自身の変換レジスタがＬ[16-s]orＨ[15+s]である」で表され、Ｙｅｓ（真）なら「入力選択０」サブルーチンが実行され（ステップ３）、Ｎｏ（偽）なら「入力選択１」サブルーチンに入る（ステップ４）。すなわち、Ｌ側のマルチプレクサは処理ステップ16-sの場合、Ｈ側のマルチプレクサは処理ステップ15+ｓの場合に、「入力選択０」サブルーチンに入り、それ以外は「入力選択１」のサブルーチンに入る。このフローチャートで、変換動作をすべて表現できている。
【００７８】
この結果、ＰＥ[00]の変換レジスタＬにはD00、ＰＥ[01]の変換レジスタＬにはD01、ＰＥ[02]の変換レジスタＬにはD02、・・・、ＰＥ[30]の変換レジスタＬにはD30、ＰＥ[31]の変換レジスタＬにはD31、ＰＥ[00]の変換レジスタＨにはD32、ＰＥ[01]の変換レジスタＨにはD33、・・・、ＰＥ[30]の変換レジスタＨにはD62、ＰＥ[31]の変換レジスタＨにはD63、が配置されている。これはβフォーマットのデータ配置である。
【００７９】
ただし、D0乃至D31とD32乃至D63が別の独立したデータ列と考えても支障がない場合は、変換後のフォーマットをγフォーマットのデータ配置として考えることもできる。
【００８０】
したがって、本実施例のデータ形式変換方法によれば、βからα、αからβ、及び、αからγへのデータフォーマットの変換を、ＰＥ間の転送経路は２組とした場合に３２ステップを要することなく、１７ステップで実現できることがわかる。これにより、回路規模と性能のトレードオフをより高次元に両立することが達成できる。
【実施例２】
【００８１】
図１７は、本実施例の１ＰＥの構成図の一例を示す。図１７において図８と同一部には同一の符号を付しその説明は省略する。
【００８２】
図１７はＰＥ内部に複数シフトレジスタＬ１５１と、複数シフトレジスタＨ１５２と、ＰＥコントロール部内部にデコードＢ２１１を備えている点で図８と異なる。複数シフトレジスタ１５１、１５２は、内部バス１３１及び１３２でデータ変換レジスタ１０１乃至１０２と接続されている。また、複数シフトレジスタ１５２は複数シフト経路１５４を介して自身のＰＥ番号より１６若い番号を持つＰＥの複数シフトレジスタと、複数シフトレジスタ１５１は複数シフト経路１５３を介して自身のＰＥ番号より１６大きい番号を持つＰＥの複数シフトレジスタと、それぞれ接続され相互にデータを移動することが可能となっている。
【００８３】
図中では省略しているが、ＰＥコントロール部２００は内部に信号Ｍ２０４を生成する機構を備え、デコーダＢ２１１はこの信号Ｍ２０４をデコードし、複数シフトレジスタの制御信号２０３を生成する。
【００８４】
この信号Ｍ２０４を入力情報として、入力情報に対し制御信号２０３を生成する関係式については、複数シフト動作の説明とともに後述する。
【００８５】
図１８は、１２８ＰＥが行うデータ形式の変換を模式的に示す図の一例である。矩形が各ＰＥの変換レジスタ１０１、１０２を示し、実線で表した矢印は変換レジスタ間のデータ転送経路である。紙面の都合で、図では一部ＰＥを省略しているが、これら省略された部分には同じ構成のＰＥが配置される。
【００８６】
図９ではＰＥ全体でデータ形式を変換する転送経路を有していたのに対し、図１８は全体を４つのＰＥ群に分割し、各部分内でデータ形式を変換する転送経路を有する点が異なる。
【００８７】
点線で表した矢印は複数シフトレジスタにおけるデータの移動経路を示している。上記のように１６ＰＥ間隔でデータが移動する。
【００８８】
〔β→α〕
本実施例において、βフォーマットからαフォーマットに変換する動作を説明する。
各ＰＥ群における制御方法は第１の実施例と同じである。ＰＥコントロール部２００は、各ＰＥに対し、データ変換レジスタ内の画素データを１７ステップでβフォーマットからαフォーマットに変換し、内部バス１３１、１３２を介して複数シフトレジスタ１５１、１５２に画素データを複写する。
【００８９】
図１９は、このフォーマット変換の各ステップの模式的表現の一例を示す図である。複数シフトレジスタに画素データを複写した後のβフォーマットのデータ配列を図１９の上方に示す。上側より複数シフトレジスタＨ１５２と複数シフトレジスタＬ１５１を示している。
【００９０】
図１９の下方には、各ＰＥ群内でデータフォーマット変換動作を行った後の複数シフトレジスタＬ１５１、Ｈ１５２が示され、その内部にはD00〜D255のαフォーマットのデータ配列が示されてている。
【００９１】
中央の表示は、次述の各ステップにおける複数シフト動作でのデータの移動を示している。破線で囲まれた矢印は同時に動作するステップを意味している。上から第１のステップ、第２のステップ、第３のステップの順である。矢印で示されたＰＥ間でデータが相互に複数シフトし、データの交換が行われることを示す。また、左の目盛はステップ数を確認する指標として表示している。
【００９２】
ＰＥ[0]からＰＥ[15]、ＰＥ[16]からＰＥ[31]、ＰＥ[32]からＰＥ[47]、ＰＥ[48]からＰＥ[63]、ＰＥ[64]からＰＥ[79]、ＰＥ[80]からＰＥ[95]、ＰＥ[96]からＰＥ[111]、ＰＥ[112]からＰＥ[127]がそれぞれ１領域に区分される。
【００９３】
複写の後、ＰＥコントロール部２００は３ステップに分けて複数シフト動作を行う。
第１のステップ：
・ＰＥ[16]からＰＥ[31]と、ＰＥ[32]からＰＥ[47]の複数シフトレジスタ内の画素データを複数シフトを用いて交換する。
・ＰＥ[48]からＰＥ[63]と、ＰＥ[64]からＰＥ[79]の複数シフトレジスタ内の画素データを複数シフトを用いて交換する。
・ＰＥ[80]からＰＥ[95]と、ＰＥ[96]からＰＥ[111]の複数シフトレジスタ内の画素データを複数シフトを用いて交換する。
上記を除く全ての複数シフトレジスタは元のデータを保持する。
第２のステップ：
・ＰＥ[32]からＰＥ[47]と、ＰＥ[48]からＰＥ[63]の複数シフトレジスタ内の画素データを複数シフトを用いて交換する。
・ＰＥ[64]からＰＥ[79]と、ＰＥ[80]からＰＥ[95]の複数シフトレジスタ内の画素データを複数シフトを用いて交換する。
【００９４】
上記を除く全ての複数シフトレジスタは元のデータを保持する。
第３のステップ：
・ＰＥ[48]からＰＥ[63]とＰＥ[64]からＰＥ[79]の複数シフトレジスタ内の画素データを複数シフトを用いて交換する。
上記を除く全ての複数シフトレジスタは元のデータを保持する。
【００９５】
変換の結果、D00がＰＥ[00]の複数シフトレジスタＬに、D01がＰＥ[00]の複数シフトレジスタＨに、D02がＰＥ[01]の複数シフトレジスタＬに、D03がＰＥ[01]の複数シフトレジスタＨに、D04がＰＥ[02]の複数シフトレジスタＬに、D05がＰＥ[02]の複数シフトレジスタＨに、・・・、D254がＰＥ[127]の複数シフトレジスタＬに、D255がＰＥ[127]の複数シフトレジスタＨにそれぞれ格納されており、これはαフォーマットのデータ配置である。
【００９６】
この図１９より、データフォーマットの変換が１２８ステップを要することなく、１７ステップのデータフォーマット変換動作と３ステップの複数シフト動作で実現できていることがわかる。
【００９７】
次に、信号Ｍのデコードについて説明する。デコーダＢの入力情報である信号Ｍはステップ数を示す２bitの信号で、Ｍ[1:0]と表現する。またデコーダＢの出力情報である制御信号２０３は８bitの信号が２つあり、それぞれ制御信号Ｃ[7:0]、制御信号Ｄ[7:0]と表現する。
デコーダＢにおける入力情報と出力情報の関係式は次の通りである。
・｛０｝=C[0]=C[7]  ：  C[0]=C[7]は常に"０"
・M[0]~&M[1]~=C[1]=C[6]  
・M[1]~=C[2]=C[5]
・｛1｝=C[3]=C[4]   ：C[3]=C[4]は常に"１"
・M[0]~=D[0]=D[2]=D[4]=D[6]
・M[0]=D[1]=D[3]=D[5]= D[7]
左端からの１６ＰＥ毎に領域を設定し、各領域の左端からの順番をk(k=０,１,２,…,７)とし、各領域をＧ[k]で表すとき、Ｇ[k]には制御信号２０３としてＣ[k],Ｄ[k]が入力され、各ＰＥは次の通り処理を行う。
[１]Ｇ[k]において、Ｃ[k]=０ならば複数シフト動作を行わず、元の画素データを保持する
[２]Ｇ[k]において、Ｃ[k]=１,Ｄ[k]=０ならば、Ｇ[k+1]の画素データを取り込む
[３]Ｇ[k]において、Ｃ[k]=１,Ｄ[k]=１ならば、Ｇ[k-1]の画素データを取り込む
図２０は、この関係式でデコーダＢ２１１が入力信号Ｍ[１:０]から生成するステップごとの制御信号２０３の一覧を表す図の一例である。左より、ステップ、入力信号Ｍのbit１、同bit０、デコーダの出力信号Ｃ[7:0]、デコーダの出力信号Ｄ[7:0]、[１]画素データを保持する領域、[２]右隣のグループのG[k+1]から画素データを取り込む領域、[３]左隣のグループのG[k-1]から画素データを取り込む領域、がある。
【００９８】
図２１はこれらの動作を表すフローチャート図の一例である。処理ステップをs(s=１,２,３)で表し、左端から各領域Ｇの順番をk(k=０,１,２,...,７)とし、ｉは整数（０，１，２…）とする。
【００９９】
ステップ１の繰り返し処理では、最初にそのステップにおいて各領域が更新を行うか判断する。条件式は「ｓ  ≦  k  ≦  7-s」で表され、Ｙｅｓ（真）なら更新を行い、Ｎｏ（偽）なら更新を行わず元のデータを保持する（ステップ５）。
【０１００】
ステップ１で更新を行うと判定された場合、領域の各ＰＥは移動方向を選択する（ステップ２）。条件は「Ｈ[k＝s+1＋2i]  oｒ  Ｌ[k＝s＋2i]」で表される。なお「k＝s+1＋2i、k＝s＋2i」のｋは「7-s」を超えない。
【０１０１】
Ｈ[k＝s+1＋2i]を満たす領域Ｇの各Ｈ[ｋ]は、１６ＰＥ小さいＰＥの複数シフトレジスタからデータを取り込む（ステップ３）。
【０１０２】
Ｌ[k＝s＋2i]の条件を満たす領域Ｇの各Ｌ[ｋ]は、１６ＰＥ大きいＰＥの複数シフトレジスタからデータを取り込む（ステップ４）。これにより、図２０の矢印で示されるデータ移動が実行される。
【０１０３】
〔α→β〕
次に、図１のαフォーマットから図２のβフォーマットへの変換について説明する。
本実施例においてαフォーマットからβフォーマットに変換する場合、ＰＥコントロール部２００は、先ず複数シフト動作を行い画素データの交換を行った後に、変換レジスタ内にデータを複写し、各ＰＥ群でαフォーマットからβフォーマットに変換する。
【０１０４】
図２２は、αフォーマットデータからβフォーマットデータへの複数シフト動作のシフト例を説明する図の一例である。
ＰＥコントロール部２００は、３ステップに分けて複数シフト動作を行い画素データの交換を行う。
第１のステップ：
ＰＥ[48]からＰＥ[63]とＰＥ[64]からＰＥ[79]の複数シフトレジスタ内の画素データを交換する。上記を除く全ての変換レジスタは元のデータを保持する。
第２のステップ：
ＰＥ[32]からＰＥ[47]とＰＥ[48]からＰＥ[63]の複数シフトレジスタ内の画素データを交換する。同時に、ＰＥ[64]からＰＥ[79]とＰＥ[80]からＰＥ[95]の複数シフトレジスタ内の画素データを交換する。上記を除く全ての複数シフトレジスタは元のデータを保持する。
第３のステップ：
ＰＥ[15]からＰＥ[31]とＰＥ[32]からＰＥ[47]の複数シフトレジスタ内の画素データを交換する。同時に、ＰＥ[48]からＰＥ[63]とＰＥ[64]からＰＥ[79]の複数シフトレジスタ内の画素データを交換する。同時に、ＰＥ[80]からＰＥ[95]とＰＥ[96]からＰＥ[111]の複数シフトレジスタ内の画素データを交換する。上記を除く全ての複数シフトレジスタは元のデータを保持する。
【０１０５】
この処理後のデータ配置は図２２の下方に示す配置となる。
この後、各ＰＥ群で第一の実施例と同じようにしてαフォーマットからβフォーマットへ変換する。各ＰＥ群におけるフォーマット変換の制御方法は第１の実施例と同じである。
【０１０６】
この結果、ＰＥ[00]の変換レジスタＬにはD00、ＰＥ[01]の変換レジスタＬにはD01、ＰＥ[02]の変換レジスタＬにはD02、・・・、ＰＥ[126]の変換レジスタＬにはD126、ＰＥ[127]の変換レジスタＬにはD127、ＰＥ[00]の変換レジスタＨにはD128、ＰＥ[01]の変換レジスタＨにはD129、・・・、ＰＥ[126]の変換レジスタＨにはD254、ＰＥ[127]の変換レジスタＨにはD255、が配置される。これはβフォーマットのデータ配置である。
【０１０７】
ただし、D0乃至D127とD128乃至D255が別の独立したデータ列と考えても支障がない場合は、変換後のフォーマットをγフォーマットのデータ配置として考えることもできる。
【０１０８】
この図２２より、データフォーマットの変換が、１２８ステップを要することなく、３ステップの複数シフト動作と１７ステップのデータフォーマット変換動作で実現できていることがわかる。
【０１０９】
デコーダＢの入力情報である信号Ｍはステップ数を示す２bitの信号で、Ｍ[1:0]と表現する。またデコーダＢの出力情報である制御信号２０３は８bitの信号が２つあり、それぞれ制御信号Ｃ[7:0]、制御信号Ｄ[7:0]と表現する。
デコーダＢにおける入力情報と出力情報の関係式は次の通りである。
｛０｝=C[０]=C[７]
M[１]=C[１]=C[６]
M[１]|M[０]=C[２]=C[５]
｛１｝=C[３]=C[４] 
M[０]~=D[０]=D[２]=D[４]=D[６]
M[０]=D[１]=D[３]=D[５]=D[７]
左端からの１６ＰＥ毎に領域を設定し、各領域の左端からの順番をk(k=０,１,２,…,７)とし各領域をＧ[k]で表すとき、Ｇ[k]には制御信号２０３としてＣ[k],Ｄ[k]が入力され、各ＰＥは次の通り処理を行う。
[１]G[k]において、C[k]=０ならば複数シフト動作を行わず、元の画素データを保持する
[２]G[k]において、C[k]=１,D[k]=０ならば、G[k+１]の画素データを取り込む
[３]G[k]において、C[k]=１,D[k]=１ならば、G[k-１]の画素データを取り込む
図２３は、この関係式でデコーダＢ２１１が入力信号Ｍ[１:０]から生成するステップごとの制御信号２０３の一覧を示す図である。各項目は図２０と同じである。
【０１１０】
図２４はこれらの動作を表すフローチャート図の一例である。処理ステップをs(s=１,２,３)で表し、左端から各領域Ｇの順番をk(k=０,１,２,...,７)とし、ｉは整数（０，１，２…）とする。
【０１１１】
ステップ１の繰り返し処理では、最初にそのステップにおいて各領域が更新を行うか判断する。条件式は「4-ｓ≦k≦3+s」で表され、Ｙｅｓ（真）なら更新を行い、Ｎｏ（偽）なら更新を行わず元のデータを保持する。
【０１１２】
ステップ１で更新を行うと判定された場合、領域の各ＰＥは移動方向を選択する（ステップ２）。条件は「Ｈ[k＝5-s＋2i]  oｒ  Ｌ[k＝4-s＋2i]」で表される。なお「k＝5-s＋2i、k＝4-s＋2i」のｋは「3+s」を超えない。
【０１１３】
Ｈ[k＝5-s＋2i]を満たす領域Ｇの各Ｈ[ｋ]は、１６ＰＥ小さいＰＥの複数シフトレジスタからデータを取り込む（ステップ３）。
【０１１４】
Ｌ[k＝4-s＋2i]の条件を満たす領域Ｇの各Ｌ[ｋ]は、１６ＰＥ大きいＰＥの複数シフトレジスタからデータを取り込む（ステップ４）。これにより、図２２の矢印で示されるデータ移動が実行される。
【０１１５】
以上説明したように、本実施例のデータ変換方法では、記憶装置の数（２５６）に対しデータフォーマットの変換が１２８ステップを要することなく、１７ステップのデータフォーマット変換動作と３ステップの複数シフト動作で実現できる。
【符号の説明】
【０１１６】
１０      ＳＩＭＤ型プロセッサ
１００    ＰＥ（プロセッサエレメント）
１０１    変換レジスタＬ
１０２    変換レジスタＨ
１１１、１１２、１４１    マルチプレクサ
１４２，１４３    汎用レジスタ
１４４    結果レジスタ
１５１    複数シフトレジスタＬ
１５２    複数シフトレジスタＨ
２００    ＰＥコントロール部
２０１    制御信号
２０２    信号Ｎ
２０４    信号Ｍ
２１０    デコーダ、デコーダＡ
２１１    デコーダＢ
【先行技術文献】
【特許文献】
【０１１７】
【特許文献１】特開２００２−２９８１３５号公報
【特許文献２】特開２００６−２６０４７９号公報
【図１】
2012159995.tif 000003
【図２】
2012159995.tif 000004
【図３】
2012159995.tif 000005
【図４】
2012159995.tif 000006
【図５】
2012159995.tif 000007
【図６】
2012159995.tif 000008
【図７】
2012159995.tif 000009
【図８】
2012159995.tif 000010
【図９】
2012159995.tif 000011
【図１０】
2012159995.tif 000012
【図１１】
2012159995.tif 000013
【図１２】
2012159995.tif 000014
【図１３】
2012159995.tif 000015
【図１４】
2012159995.tif 000016
【図１５】
2012159995.tif 000017
【図１６】
2012159995.tif 000018
【図１７】
2012159995.tif 000019
【図１８】
2012159995.tif 000020
【図１９】
2012159995.tif 000021
【図２０】
2012159995.tif 000022
【図２１】
2012159995.tif 000023
【図２２】
2012159995.tif 000024
【図２３】
2012159995.tif 000025
【図２４】
2012159995.tif 000026