(57)【要約】【課題】このような背景の下に案出されたものであり、ビット列の定常的な流れを妨げることなく、各種画像圧縮規約に従った特定パターンのビット列を挿入し得るような仕組みを提供すること。【解決手段】有効データ書込制御部は、セレクタ部から自身に供給される１、３、５、７番目のマスク済みバイナリデータをそれらと合わせてコンペア部から供給される信号の如何に係わらず有効であるとみなしてＪＰＥＧ符号記憶メモリ６０に書き込む一方、２、４、６、８番目のマスク済みバイナリデータはそれらと合わせてコンペア部から供給される信号が「１」であった時のみ有効であるとみなしてＪＰＥＧ符号記憶メモリ６０に書き込む。【選択図】図１
2007324889.tif 000002
【特許請求の範囲】
【請求項１】
外部から供給される１ワードあたりＭ桁のビット列をＬワード分記憶した第１のメモリから、そのＬワード分のビット列を２Ｌ回に渡って連続して読み出す読出手段と、
前記読出手段の読み出しの回数をカウントするカウント手段と、
前記カウント手段のカウント数が奇数になるたびにシフト量をＭ桁ずつ小さくしながら、前記読出手段が読み出すＬワード分のビット列のビットをシフト量の分だけ下位の桁へとそれぞれシフトさせるシフト手段と、
前記カウント手段のカウント数が奇数になるタイミングで読み出されたビット列を前記シフト手段がシフトさせると、そのビット列のうち最も下位のＭ桁を除いたすべてのビットを０にする一方で、前記カウント手段のカウント数が偶数になるタイミングで読み出されたビット列を前記シフト手段がシフトさせると、最も下位のＭ桁をも含む全てのビットを０にするマスク・セレクト手段と、
前記シフトさせたビット列の全部又は一部のビットを前記マスク・セレクト手段が０にすると、そのビット列の最も下位のＭ桁のビットの並びと予め設定されたビットの並びとが同じかどうかを比較するコンペア手段と、
前記カウント手段のカウント数が偶数になるタイミングで読み出されたビット列の全部のビットを前記マスク・セレクト手段が０にすると、前記シフト手段にシフトされたビット列の最も下位のＭ桁のビットの並びが前記設定されたビットの並びと同じであると前記コンペア手段が判断していた場合のみ、そのビット列の最も下位のＭ桁のビットの並びを第２のメモリに書き込むと共に、前記カウント手段のカウント数が奇数になるタイミングで読み出されたビット列の一部のビットを前記マスク・セレクト手段が０にすると、前記コンペア手段の比較の結果の如何にかかわらず、そのビット列の最も下位のＭ桁のビットの並びを第２のメモリに書き込む書込手段と
を備えたビット列書込装置。
【請求項２】
請求項１に記載のビット列書込装置において、
前記マスク・セレクト手段は、
前記カウント手段のカウント数の如何にかかわらず前記読出手段が読み出したビット列のうち最も下位のＭ桁を除いたすべてのビットを０にするマスク手段と、
前記カウント手段のカウント数が偶数になるタイミングで前記読出手段がビット列を読み出したときのみ、そのビット列のうち前記マスク手段により０にされなかった最も下位のＭ桁のビットをも０にするセレクト手段と
を有するビット列書込装置。
【請求項３】
外部から供給される１ワードあたりＭ桁のビット列をＬワード分記憶した第１のメモリから、そのＬワード分のビット列を２Ｌ回に渡って連続して読み出す読出手段と、
前記読出手段の読み出しの回数をカウントするカウント手段と、
前記カウント手段のカウント数が偶数になるたびにシフト量をＭ桁ずつ小さくしながら、前記読出手段が読み出すＬワード分のビット列のビットをシフト量の分だけ下位の桁へとそれぞれシフトさせるシフト手段と、
前記カウント手段のカウント数が偶数になるタイミングで読み出されたビット列を前記シフト手段がシフトさせると、そのビット列のうち最も下位のＭ桁を除いたすべてのビットを０にする一方で、前記カウント手段のカウント数が奇数になるタイミングで読み出されたビット列を前記シフト手段がシフトさせると、最も下位のＭ桁をも含む全てのビットを０にするマスク・セレクト手段と、
前記シフトさせたビット列の全部又は一部のビットを前記マスク・セレクト手段が０にすると、そのビット列の最も下位のＭ桁のビットの並びと予め設定されたビットの並びとが同じかどうかを比較するコンペア手段と、
前記カウント手段のカウント数が奇数になるタイミングで読み出されたビット列の全部のビットを前記マスク・セレクト手段が０にすると、前記シフト手段にシフトされたビット列の最も下位のＭ桁のビットの並びが前記設定されたビットの並びと同じであると前記コンペア手段が判断していた場合のみ、そのビット列の最も下位のＭ桁のビットの並びを第２のメモリに書き込むと共に、前記カウント手段のカウント数が偶数になるタイミングで読み出されたビット列の一部のビットを前記マスク・セレクト手段が０にすると、前記コンペア手段の比較の結果の如何にかかわらず、そのビット列の最も下位のＭ桁のビットの並びを第２のメモリに書き込む書込手段と
を備えたビット列書込装置。
【請求項４】
請求項３に記載のビット列書込装置において、
前記マスク・セレクト手段は、
前記カウント手段のカウント数の如何にかかわらず前記読出手段が読み出したビット列のうち最も下位のＭ桁を除いたすべてのビットを０にするマスク手段と、
前記カウント手段のカウント数が奇数になるタイミングで前記読出手段がビット列を読み出したときのみ、そのビット列のうち前記マスク手段により０にされなかった最も下位のＭ桁のビットをも０にするセレクト手段と
を有するビット列書込装置。
【請求項５】
自身に供給されるビット列をそのビット列と共に供給されるアドレス値が指し示す自身の書込アドレスに書き込むメモリと、
メモリに書き込まれるべきビット列を入力する入力手段と、
前記入力手段から入力されるビット列を成すビットの並びが予め設定されたビットの並びと同じかどうかを比較するコンペア手段と、
前記入力手段からビット列が入力されるたびに前記メモリの書込アドレスを指し示すアドレス値を生成する手段であって、入力されたビット列が予め設定されたビットの並びと同じでないと前記コンペア手段が判断すると当該ビット列が入力されるたびに１ずつインクリメントしたアドレス値を生成すると共に、予め設定されたビットの並びと同じであると前記コンペア手段が判断すると２つインクリメントしたアドレス値を生成するアドレス生成手段と
前記入力されたビット列とそのビット列について前記アドレス生成手段が生成したアドレス値とを前記メモリへ併せて供給する供給手段と
を備えたビット列書込装置。
【請求項６】
請求項５に記載のビット列書込装置において、
前記メモリの全書込アドレスの書込内容をリセットする手段
を更に備えたビット列書込装置。
【請求項７】
請求項１乃至６に記載のビット列書込装置において、
前記予め設定されたビットの並びは、
全てのビットが１となっているビットの並びである
ビット列書込装置。
【請求項８】
請求項１乃至７に記載のビット列書込装置において、
前記Ｍ桁は８桁である
ビット列書込装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビット列書込装置に関する。  
【背景技術】
【０００２】
ＪＰＥＧ（Joint Photographic Experts Group）などの画像信号圧縮符号化処理では、画像信号に直交変換を施して係数列を取得した後、その係数列をハフマン符号化して得た符号列を固定ビット長のビット列毎にパッキングする処理を行っている。更に、このパッキングした固定ビット長のビット列がオール１だった場合は、その直後に同ビット長のオール０のビット列を挿入しなければならないことになっており、このオール０のビット列の挿入を効率的に行うための種々の技術が提案されている。
例えば、特許文献１に開示された符号長変換装置は、パターン検出部、零挿入回路、セレクタ、複数のデータバッファ、監視制御回路などを備え、パターン検出部によってオール１のバイトが検出されると、零挿入回路により生成されたオール０のバイトがその直後のビット列として挿入されるようになっている。
【特許文献１】特開平０６−８５６９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１の符号長変換装置では、上流のメモリから順次入力されてくる固定ビット長のビット列にオール１が現れると、メモリから自装置へのビット列の入力を一旦中断させたうえで、オール０のバイトを出力するようになっている。このため、自装置へのビット列の流れを制御するための複雑な監視制御回路や、ビット列を一時的に蓄えておくための余分なバッファを設ける必要があった。
本発明は、このような背景の下に案出されたものであり、ビット列の定常的な流れを妨げることなく、各種画像圧縮規約に従った特定パターンのビット列を挿入し得るような仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００４】
本発明の好適な態様であるビット列書込装置は、外部から供給される１ワードあたりＭ桁のビット列をＬワード分記憶した第１のメモリから、そのＬワード分のビット列を２Ｌ回に渡って連続して読み出す読出手段と、前記読出手段の読み出しの回数をカウントするカウント手段と、前記カウント手段のカウント数が奇数になるたびにシフト量をＭ桁ずつ小さくしながら、前記読出手段が読み出すＬワード分のビット列のビットをシフト量の分だけ下位の桁へとそれぞれシフトさせるシフト手段と、前記カウント手段のカウント数が奇数になるタイミングで読み出されたビット列を前記シフト手段がシフトさせると、そのビット列のうち最も下位のＭ桁を除いたすべてのビットを０にする一方で、前記カウント手段のカウント数が偶数になるタイミングで読み出されたビット列を前記シフト手段がシフトさせると、最も下位のＭ桁をも含む全てのビットを０にするマスク・セレクト手段と、前記シフトさせたビット列の全部又は一部のビットを前記マスク・セレクト手段が０にすると、そのビット列の最も下位のＭ桁のビットの並びと予め設定されたビットの並びとが同じかどうかを比較するコンペア手段と、前記カウント手段のカウント数が偶数になるタイミングで読み出されたビット列の全部のビットを前記マスク・セレクト手段が０にすると、前記シフト手段にシフトされたビット列の最も下位のＭ桁のビットの並びが前記設定されたビットの並びと同じであると前記コンペア手段が判断していた場合のみ、そのビット列の最も下位のＭ桁のビットの並びを第２のメモリに書き込むと共に、前記カウント手段のカウント数が奇数になるタイミングで読み出されたビット列の一部のビットを前記マスク・セレクト手段が０にすると、前記コンペア手段の比較の結果の如何にかかわらず、そのビット列の最も下位のＭ桁のビットの並びを第２のメモリに書き込む書込手段とを備える。
【０００５】
この態様において、前記マスク・セレクト手段は、前記カウント手段のカウント数の如何にかかわらず前記読出手段が読み出したビット列のうち最も下位のＭ桁を除いたすべてのビットを０にするマスク手段と、前記カウント手段のカウント数が偶数になるタイミングで前記読出手段がビット列を読み出したときのみ、そのビット列のうち前記マスク手段により０にされなかった最も下位のＭ桁のビットをも０にするセレクト手段とを有する。
【０００６】
本発明の別の好適な態様であるビット列書込装置は、外部から供給される１ワードあたりＭ桁のビット列をＬワード分記憶した第１のメモリから、そのＬワード分のビット列を２Ｌ回に渡って連続して読み出す読出手段と、前記読出手段の読み出しの回数をカウントするカウント手段と、前記カウント手段のカウント数が偶数になるたびにシフト量をＭ桁ずつ小さくしながら、前記読出手段が読み出すＬワード分のビット列のビットをシフト量の分だけ下位の桁へとそれぞれシフトさせるシフト手段と、前記カウント手段のカウント数が偶数になるタイミングで読み出されたビット列を前記シフト手段がシフトさせると、そのビット列のうち最も下位のＭ桁を除いたすべてのビットを０にする一方で、前記カウント手段のカウント数が奇数になるタイミングで読み出されたビット列を前記シフト手段がシフトさせると、最も下位のＭ桁をも含む全てのビットを０にするマスク・セレクト手段と、前記シフトさせたビット列の全部又は一部のビットを前記マスク・セレクト手段が０にすると、そのビット列の最も下位のＭ桁のビットの並びと予め設定されたビットの並びとが同じかどうかを比較するコンペア手段と、前記カウント手段のカウント数が奇数になるタイミングで読み出されたビット列の全部のビットを前記マスク・セレクト手段が０にすると、前記シフト手段にシフトされたビット列の最も下位のＭ桁のビットの並びが前記設定されたビットの並びと同じであると前記コンペア手段が判断していた場合のみ、そのビット列の最も下位のＭ桁のビットの並びを第２のメモリに書き込むと共に、前記カウント手段のカウント数が偶数になるタイミングで読み出されたビット列の一部のビットを前記マスク・セレクト手段が０にすると、前記コンペア手段の比較の結果の如何にかかわらず、そのビット列の最も下位のＭ桁のビットの並びを第２のメモリに書き込む書込手段とを備える。
【０００７】
この態様において、前記マスク・セレクト手段は、前記カウント手段のカウント数の如何にかかわらず前記読出手段が読み出したビット列のうち最も下位のＭ桁を除いたすべてのビットを０にするマスク手段と、前記カウント手段のカウント数が奇数になるタイミングで前記読出手段がビット列を読み出したときのみ、そのビット列のうち前記マスク手段により０にされなかった最も下位のＭ桁のビットをも０にするセレクト手段とを有してもよい。
【０００８】
本発明の別の好適な態様であるビット列書込装置は、自身に供給されるビット列をそのビット列と共に供給されるアドレス値が指し示す自身の書込アドレスに書き込むメモリと、メモリに書き込まれるべきビット列を入力する入力手段と、前記入力手段から入力されるビット列を成すビットの並びが予め設定されたビットの並びと同じかどうかを比較するコンペア手段と、前記入力手段からビット列が入力されるたびに前記メモリの書込アドレスを指し示すアドレス値を生成する手段であって、入力されたビット列が予め設定されたビットの並びと同じでないと前記コンペア手段が判断すると当該ビット列が入力されるたびに１ずつインクリメントしたアドレス値を生成すると共に、予め設定されたビットの並びと同じであると前記コンペア手段が判断すると２つインクリメントしたアドレス値を生成するアドレス生成手段と、前記入力されたビット列とそのビット列について前記アドレス生成手段が生成したアドレス値とを前記メモリへ併せて供給する供給手段とを備える。
【０００９】
この態様において、前記メモリの全書込アドレスの書込内容をリセットする手段を更に備えてもよい。
また、前記予め設定されたビットの並びは、全てのビットが１となっているビットの並びであってもよい。
また、前記Ｍ桁は８桁であってもよい。
【発明の効果】
【００１０】
本発明によると、ビット列の定常的な流れを妨げることなく、各種画像圧縮規約に従った特定パターンのビット列を挿入することができる。
【発明を実施するための最良の形態】
【００１１】
（第１実施形態）
図１は、本実施形態にかかるビット列書込装置のハードウェア概略構成を示すブロック図である。図に示すビット列書込装置１０は、ラスタデータを圧縮符号化するエンコーダ内にてハフマン符号化部５０とＪＰＥＧ符号記憶メモリ６０の間に介在しており、バイトパッキング部１１、第１カウンタ１２、第２カウンタ１３、シフタ部１４、マスク部１５、コンペア部１６、セレクタ部１７、及び有効データ書込制御部１８を備えている。これら各部、並びにハフマン符号化部５０及びＪＰＥＧ符号記憶メモリ６０は、エンコーダ内にて発生されるクロック信号と同期して動作する。
【００１２】
バイトパッキング部１１は、可変長符号用電線と符号長用電線の２本の電線を介してハフマン符号化部５０と接続され、同符号化部５０から可変長のハフマン符号ストリームの入力を受ける。ハフマン符号ストリームは、図示しない直交変換部がラスタデータを直交変換して得た係数列にハフマン符号化部５０がハフマン符号化処理を施すことによって得られる可変長のバイナリデータであり、係数列の無効係数（０）のラン長と有効係数の属するグループとを決定付けるビット列であるハフマン符号とグループ内における有効係数の順番を決定付けるビット列である付加ビットとを連結させたものである。
また、このバイトパッキング部１１は、１ワードを８ビット（１バイト）とするバイナリデータを４ワード分、つまり、４バイト（３２ビット）のバイナリデータを記憶し得る固定長化メモリを内蔵する。そして、このバイトパッキング部１１には、可変長符号用電線と符号長用電線からクロックサイクルの経過に合わせてビット信号が順次入力される。
これら両電線のうち符号長用電線から入力されるビット信号はハフマン符号化部５０が生成したハフマン符号ストリームのビット長を指定しており、バイトパッキング部１１は、この符号長用電線から入力されるビット信号が指定するビット長に応じた上位桁のビット信号だけを可変長符号用電線から入力されるビット信号より抽出し、抽出したビット信号が表すバイナリデータを自身の固定長化メモリに書き込むのである。
この抽出と書込とが複数クロックサイクルに渡って繰り返され、固定長化メモリに４バイトのバイナリデータが書き込まれると、今度は、その４バイトのバイナリデータを固定長化メモリから読み出してシフタ部１４へ供給する処理を、８クロックサイクルに渡って繰り返す。これにより、シフタ部１４には、ビット列の並びを同じくする４バイトのバイナリデータが８回に渡って連続して入力されることになる。
【００１３】
第１カウンタ１２は、バイトパッキング部１１の固定長化メモリからのバイナリデータの読出の回数をカウントし、カウントの回数を１つインクリメントするたびに、回数が奇数になったことを示す信号と偶数になったことを示す信号とを交互にセレクタ部１７と有効データ書込制御部１８へ供給する。
【００１４】
シフタ部１４は、バイトパッキング部１１から４バイトのバイナリデータが入力されるたびに、指定されたシフト量の分だけそのバイナリデータを成す各ビットを下位の桁へそれぞれシフトさせ、マスク部１５へ供給する。そして、このシフタ部１４のシフト量は、第２カウンタ１３から供給される信号により決定付けられる。
第２カウンタ１３は、バイトパッキング部１１の固定長化メモリからのバイナリデータの読出の回数をカウントし、カウントの回数が１になった時に２４ビットのシフト量を指定する信号をシフタ部１４へ供給し、その後は、カウントの回数が奇数になるたびに８ビット少ないシフト量を指定する信号をシフタ部１４へ供給する。
この信号の供給を受けることにより、シフタ部１４は、バイトパッキング部１１から最初と２番目に入力される４バイトのバイナリデータの各ビットを下位桁へ２４ビットだけシフトさせてマスク部１５へ供給し、３番目と４番目に入力される４バイトのバイナリデータの各ビットを下位桁へ１６ビットだけシフトさせてマスク部１５へ供給し、５番目と６番目に入力される４バイトのバイナリデータの各ビットを下位桁へ８ビットだけシフトさせてマスク部１５へ供給し、７番目と８番目に入力される４バイトのバイナリデータの各ビットをビットシフトさせることなくマスク部１５へ供給する。
【００１５】
マスク部１５は、シフタ部１４から４バイトのバイナリデータが入力されると、そのシフト済みのバイナリデータの各ビットを下位８桁を除いてすべて０に置き換えた上で、コンペア部１６とセレクタ部１７へ入力する。
【００１６】
コンペア部１６は、マスク部１５から４バイトのバイナリデータが入力されると、そのバイナリデータの下位８ビット（１バイト）のビットの並びが、ＦＦ（８ビットがすべて１）であるか否か判断する。そして、ＦＦである時は特定パターンが現れたことを示す信号を有効データ書込制御部１８へ供給する一方、そうでない時は特定パターンが現れていないことを示す信号を有効データ書込制御部１８へ供給する。
【００１７】
セレクタ部１７は、マスク部１５から４バイトのバイナリデータが入力されると、そのバイナリデータと合わせて第１カウンタ１２から入力される信号が偶数を示すものであるかそれとも奇数を示すものであるかを判断する。そして、奇数を示すものであった時は入力されたバイナリデータをそのまま有効データ書込制御部１８へ供給する一方、偶数を示すものであった時は入力されたバイナリデータの下位８ビットを０に置き換えた上で有効データ書込制御部１８へ供給する。これにより、第１カウンタ１２から入力される信号が偶数を示すものであった時にこのセレクタ部１７から有効データ書込制御部１８へ供給されるバイナリデータは下位８桁を含む全てのビットが０のバイナリデータとなる。
【００１８】
有効データ書込制御部１８は、セレクタ部１７から４バイトのバイナリデータが入力されると、そのバイナリデータと合わせて第１カウンタ１２とコンペア部１６からそれぞれ入力される信号を基にデータの有効性を判断し、有効であると判断した時だけそのバイナリデータの下位８ビットをＪＰＥＧ符号記憶メモリ６０に書き込む。データの有効性は以下のように判断する。まず、バイナリデータと合わせて第１カウンタ１２から入力される信号が奇数を表すものである時は、コンペア部１６から入力される信号の如何に係わらずそのバイナリデータが有効であると判断する。一方、第１カウンタ１２から入力される信号が偶数を表すものである時は、コンペア部１６から入力された信号が特定パターンが現れたことを示すものであった時のみ、有効であると判断する。
【００１９】
次に、上記各部が連携して動作する様子について更に具体的に説明する。
図２は、１６進数文字で表した場合に上位バイトから順に「１２６５ＦＦ３４」となる４バイトのバイナリデータがバイトパッキング部１１の固定長メモリに記憶された後、そのバイナリデータがシフタ部１４、マスク部１５、コンペア部１６、セレクタ部１７の各部による加工を経てＪＰＥＧ符号記憶メモリ６０に書き込まれるまでの様子を示すタイミングチャートである。なお、図に示す例は、説明の便宜上、本来であれば生じるはずの各部間のデータ転送に起因したクロックサイクルの遅延を考慮せず、バイナリデータが各部に加工される様子を同じクロックサイクルに揃えて記載してある。
【００２０】
図を参照すると、まず、バイトパッキング部１１は、自身の固定長化メモリに記憶された４バイトのバイナリデータ「１２６５ＦＦ３４」を読み出してシフタ部１４へ供給する処理を、８回に渡って繰り返す。
【００２１】
シフタ部１４は、バイトパッキング部１１から自身に供給される１番目と２番目のバイナリデータの各ビットを下位桁へ２４ビットだけシフトさせたシフト済みバイナリデータ「６５ＦＦ３４１２」をマスク部１５へ供給した後、３番目と４番目のバイナリデータの各ビットを下位桁へ１６ビットだけシフトさせたシフト済みバイナリデータ「ＦＦ３４１２６５」をマスク部１５へ供給する。続いて、５番目と６番目のバイナリデータの各ビットを下位桁へ８ビットだけシフトさせたシフト済みバイナリデータ「３４１２６５ＦＦ」をマスク部１５へ供給した後、７番目と８番目のバイナリデータの各ビットをビットシフトさせずそのままのバイナリデータ「１２６５ＦＦ３４」としてマスク部１５へ供給する。
【００２２】
マスク部１５は、シフタ部１４から自身に供給される１番目と２番目のシフト済みバイナリデータの下位８桁を除いた各ビットを０に置き換えたマスク済みバイナリデータ「０００００１２」をコンペア部１６とセレクタ部１７の両部に供給した後、３番目と４番目のシフト済みバイナリデータの下位８桁を除いた各ビットを０に置き換えたマスク済みバイナリデータ「００００００６５」を両部に供給する。続いて、５番目と６番目のシフト済みバイナリデータの下位８桁を除いた各ビットを０に置き換えたマスク済みバイナリデータ「００００００ＦＦ」を両部に供給した後、７番目と８番目のシフト済みバイナリデータの下位８桁を除いた各ビットを０に置き換えたマスク済みバイナリデータ「００００００３４」を両部に供給する。
【００２３】
コンペア部１６は、マスク部１５から自身に供給される１番目から４番目のマスク済みバイナリデータの下位８桁のビットが全て１（ＦＦ）ではないので、特定パターンでないことを示す信号「０」を有効データ書込制御部１８へ供給する。一方、続いて供給される５番目と６番目のバイナリデータの下位８桁のビットはすべて１（ＦＦ）なので、特定パターンが現れたことを示す信号「１」を有効データ書込制御部１８へ供給する。更に、７番目と８番目のバイナリデータの下位８桁のビットが全て１（ＦＦ）でないので、特定パターンが現れていないことを示す信号「０」を有効データ書込制御部１８へ供給する。
【００２４】
セレクタ部１７は、マスク部１５から自身に供給される１、３、５、７番目のマスク済みバイナリデータをそのまま有効データ書込制御部１８へ供給する一方、２、４、６、８番目のマスク済みバイナリデータは下位８桁のビットを０に置き換えた上で有効データ書込制御部１８へ供給する。
【００２５】
有効データ書込制御部１８は、セレクタ部１７から自身に供給される１、３、５、７番目のマスク済みバイナリデータをそれらと合わせてコンペア部１６から供給される信号の如何に係わらず有効であるとみなしてＪＰＥＧ符号記憶メモリ６０に書き込む一方、２、４、６、８番目のマスク済みバイナリデータはそれらと合わせてコンペア部１６から供給される信号が「１」であった時のみ有効であるとみなしてＪＰＥＧ符号記憶メモリ６０に書き込む。よって、５番目のマスク済みバイナリデータの下位８桁のビット「ＦＦ」を書き込んだ直後に、６番目のマスク済みバイナリデータの下位８桁のビット「００」が書き込まれることになる。
【００２６】
以上説明した本実施形態によると、バイナリデータの下位８桁のビットに「ＦＦ」が現れたか否かに係わらず、ある所定のクロックサイクルに従った定常的なメモリへの書き込み制御を実現することができる。特に、アレイ状に配列した演算素子の連携状態を目的の処理に応じて動的に変形させ得るダイナミックリコンフィギュラマブルプロセッサで上記回路構成を実装する場合により好適となる。また、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）で上記回路構成を実装する場合にも好適である。
【００２７】
（第２実施形態）
図３は、本実施形態にかかるビット列書込装置１０のハードウェア概略構成を示すブロック図である。このビット列書込装置１０は、エンコーダ内にてハフマン符号化部５０とＪＰＥＧ符号記憶メモリ６０の間に介在しており、バイトパッキング部１１、コンペア部１６、及びアドレス生成部１９を備えてなる。これら各部、並びにハフマン符号化部５０及びＪＰＥＧ符号記憶メモリ６０は、エンコーダ内にて発生されるクロック信号と同期して動作する。
【００２８】
ハフマン符号化部５０の構成は第１実施形態と同様であるため再度の説明を割愛する。ＪＰＥＧ符号記憶メモリ６０は、自身に記憶されるべきデータを入力する第１の入力端子と、データが有効である旨を示すデータバリッド信号を入力する第２の入力端子と、データを記憶する自身のバイトアドレスを示すアドレス信号を入力する第３の入力端子とを有している。そして、第２の端子を介してデータバリッド信号が入力されている間、第１の入力端子を介して入力されてくるバイナリデータを第３の端子を介して入力されるアドレス信号が指定する自身のバイトアドレスに記憶する。
【００２９】
本実施形態におけるバイトパッキング部１１は、４バイト（３２ビット）のバイナリデータを記憶し得る固定長化メモリを内蔵しており、ＪＰＥＧ符号記憶メモリ６０の全バイトアドレスのビットを０にリセットした状態で、ハフマン符号化部５０からビット信号の入力を受け付ける。このバイトパッキング部１１は、符号長用電線から入力されるビット信号が指定するビット長に応じた上位桁のビット信号だけを可変長符号用電線から入力されるビット信号から抽出してそのビット信号が表すバイナリデータを固定長化メモリに書き込んでいき、同メモリに１バイト以上のバイナリデータが記憶されると、今度は、その記憶されたバイナリデータを１バイトずつ固定長化メモリから読み出してコンペア部１６とＪＰＥＧ符号記憶メモリ６０の第１入力端子へ供給すると共に、データバリッド信号をアドレス生成部１９とＪＰＥＧ符号記憶メモリ６０の第２入力端子へ供給する。
【００３０】
コンペア部１６は、バイトパッキング部１１から１バイトのバイナリデータが入力されると、そのバイナリデータのビットの並びが、ＦＦ（８ビットがすべて１）であるか否か判断する。そして、ＦＦである時は特定パターンが現れたことを示す信号を、ＦＦでない時は特定パターンが現れていないことを示す信号をアドレス生成部１９へ供給する。
【００３１】
図４は、アドレス生成部１９の内部構成を示す図である。図に示すように、アドレス生成部１９は、セレクタ２０とフリップフロップ２１を内蔵している。セレクタ２０は、データバリッドの信号と特定パターンが現れていないことを示す信号が供給された時、自身のレジスタに記憶したカウント値を１つインクリメントし、インクリメント後のカウント値をフリップフロップ２１へ供給する一方、データバリッドの信号と特定パターンが現れたことを示す信号が自身に供給された時、自身のレジスタに記憶したカウント値を２つインクリメントし、インクリメント後のカウント値をフリップフロップ２１へ供給する。フリップフロップ２１は、クロック信号に同期して、バイトアドレスを指し示すアドレス信号をＪＰＥＧ符号記憶メモリ６０の第３入力端子へ供給する。これにより、ＪＰＥＧ符号記憶メモリ６０は、コンペア部１６によって「ＦＦ」であると判断されたバイナリデータを自身のあるバイトアドレスに記憶した後、次に供給されるバイナリデータを１つスキップさせたバイトアドレスに記憶することになる。そして、このスキップされたバイトアドレスはリセット時の「０」の状態がそのまま残されることになるため、全て「０」の８ビットのバイナリデータが挿入されたことと同じ結果となる。
【００３２】
以上説明した本実施形態によっても、バイナリデータの下位８桁のビットに「ＦＦ」が現れたか否かに係わらず、ある所定のクロックサイクルに従った定常的なメモリへの書き込み制御を実現することができる。特に、アレイ状に配列した演算素子の連携状態を目的の処理に応じて動的に変形させ得るダイナミックリコンフィギュラマブルプロセッサで上記回路構成を実装する場合により好適となる。また、ＡＳＩＣやＦＰＧＡで上記回路構成を実装する場合にも好適である。
【００３３】
（他の実施形態）
本願発明は、種々の変形実施が可能である。
第１実施形態においては、バイトパッキング部１１の固定長化メモリに４ワード分のバイナリデータが記憶されると、そのバイナリデータを読み出してシフタ部１４に供給する処理を８回に渡って繰り返すようになっていたが、この繰り返しの回数は、固定長化メモリに記憶されるバイナリデータのワード数に依存して決定付けられるものであり、例えば、固定長化メモリが２ワード分のバイナリデータを記憶し得るようになっていれば、繰り返しの回数は４回で済み、また、８ワード分のバイナリデータを記憶し得るようになっていれば、１６回になる。要するに、固定長化メモリに記憶されるバイナリデータのワード数をＬとした場合にその２倍の２Ｌ回に渡って繰り返しが行われるようになっていればよい。
第１実施形態において、シフタ部１４は、固定長化メモリからのバイナリデータの読出の回数が奇数になるたびに、自身に入力されるバイナリデータのシフト量の桁数を８ビットずつ小さくしていくようになっていたが、このシフト量は、１ワードを形成するビット数に依存して決定付けられるものであり、例えば、１ワードが１６ビットであれば、シフト量は１６ビットずつ小さくなる。要するに、固定長化メモリに記憶されるバイナリデータの１ワードあたりのビットの桁数をＭとした場合にそのＭ桁ずつシフト量が小さくなるようになっていればよい。
【図面の簡単な説明】
【００３４】
【図１】ビット列書込装置のハードウェア概略構成図である（第１実施形態）。
【図２】第１実施形態の動作を示すタイミングチャート図である。
【図３】ビット列書込装置のハードウェア概略構成図である（第２実施形態）。
【図４】アドレス生成部の内部構成図である。
【符号の説明】
【００３５】
１０…ビット列書込装置、１１…バイトパッキング部、１２…第１カウンタ、１３…第２カウンタ、１４…シフタ部、１５…マスク部、１６…コンペア部、１７…セレクタ部、１８…有効データ書込制御部、５０…ハフマン符号化部、６０…ＪＰＥＧ符号記憶メモリ
【図１】
2007324889.tif 000003
【図２】
2007324889.tif 000004
【図３】
2007324889.tif 000005
【図４】
2007324889.tif 000006