(57)【特許請求の範囲】
【請求項１】
Ｍ個のサンプルから構成される入力サンプルデータ列を、Ｎ個のサンプルから構成される出力サンプルデータ列に変換するサンプルデータ列変換方法であって、
前記入力サンプルデータ列の第ｉ（０≦ｉ≦Ｍ−１）番目のサンプルの値をＸ［ｉ］とし、前記出力サンプルデータ列の第ｊ（０≦ｊ≦Ｎ−１）番目のサンプルの値をＹ［ｊ］としたとき、
前記Ｍ、前記Ｎおよび、０を除く所定の定数ｋを入力する入力ステップと、
初期値が、前記ｋと前記Ｎの積ｋＮと０との間の所定の値、または前記積ｋＮであるパラメータＷと、前記ｉおよび前記ｊの初期値がともに０であるということと、前記Ｘ［ｉ］のｉを前記Ｍに置き換えたときのＸ［Ｍ］がＸ［Ｍ−１］であるということと、が設定される初期設定ステップと、
前記定数ｋが正（ｋ＞０）の場合、前記パラメータＷが０以下（Ｗ≦０）であるか否かを判定し、前記定数ｋが負（ｋ＜０）の場合、前記パラメータＷが０以上（Ｗ≧０）であるか否かを判定する第１判定ステップと、
前記第１判定ステップによって前記判定が行われた後に、前記定数ｋが正（ｋ＞０）の場合、前記パラメータＷが０を超える（Ｗ＞０）とき前記ｉの値を変更せず、前記パラメータＷが０以下（Ｗ≦０）のとき前記ｉの値を（ｉ＋１）に変更するとともに、そのパラメータＷの値を（Ｗ＋ｋ×Ｎ）に変更し、前記定数ｋが負（ｋ＜０）の場合、前記パラメータＷが０未満（Ｗ＜０）のとき前記ｉの値を変更せず、前記パラメータＷが０以上（Ｗ≧０）のとき前記ｉの値を（ｉ＋１）に変更するとともに、前記パラメータＷの値を（Ｗ＋ｋ×Ｎ）に変更する第１設定値更新ステップと、
前記第１設定値更新ステップによって決定されたｉの値およびパラメータＷと、前記ｋ、前記Ｎ、前記Ｘ［ｉ］およびＸ［ｉ＋１］を用いた（数１）に基づいて、前記出力サンプルデータ列の第ｊ番目のサンプルの値Ｙ［ｊ］を算出するＹ［ｊ］算出ステップと、
【数１】
0003566568.tif 000006
前記Ｙ［ｊ］算出ステップによって算出されたＹ［ｊ］を出力するサンプルデータ出力ステップと、
前記Ｙ［ｊ］算出ステップによって所定の前記ｊに対応する前記Ｙ［ｊ］が算出された後に、そのＹ［ｊ］の算出に用いたパラメータＷの値を（Ｗ−ｋ×Ｍ）に変更するとともに、前記所定のｊの値を（ｊ＋１）に変更する第２設定値更新ステップと、
前記第２設定値更新ステップによって更新されたｊの値が前記Ｎ未満であるか否かを判定する第２判定ステップとを備え、
前記第２判定ステップによって、前記更新されたｊの値が前記Ｎ未満であると判定された場合、前記第１判定ステップは引き続き前記所定の処理を行い、前記更新されたｊの値が前記Ｎ以上であると判定された場合、全ての処理を終了し、
前記ｊの値が小さいものから順にＹ［ｊ］を算出することを特徴とするサンプルデータ列変換方法。
【請求項２】
前記出力サンプルデータ列の各サンプルデータが所定の定数ｂバイトのデータであって、その出力サンプルデータ列全体のバイト長さが所定の定数ｐの整数倍でないとき、
前記第２判定ステップにおいて前記更新されたｊの値が前記Ｎ以上であると判定された場合、その後に、前記ｂと前記Ｎとの積ｂＮより大きいものであって、かつ前記定数ｐを自然数倍した値となる所定の値をＬとしたとき、（Ｌ−ｂＮ）バイトのダミーデータを補填するダミー補填ステップを備え、
出力ステップは、前記ダミー補填ステップによって補填されたダミーデータも出力することを特徴とする請求項１記載のサンプルデータ列変換方法。
【請求項３】
前記ｋは１であることを特徴とする請求項１または２記載のサンプルデータ列変換方法。
【請求項４】
前記ｋは、前記Ｍと前記Ｎの最大公約数の逆数であることを特徴とする請求項１または２記載のサンプルデータ列変換方法。
【請求項５】
所定の２つの数Ｘ１およびＸ２のデータを入力するデータ入力ステップと、
前記Ｘ１とＸ２との距離を（１−ｗ）：ｗの比を満たす割合で分配する位置の数Ｙを求めるためのパラメータｗを入力するパラメータ入力ステップと、
前記Ｘ１から前記Ｘ２を減算してＸ３を生成する減算ステップと、
前記減算ステップによって得られたＸ３を前記パラメータｗ倍してＸ４を生成するｗ倍ステップと、
前記ｗ倍ステップによって得られたＸ４に前記Ｘ２を加算してＹを生成する加算ステップと、
前記加算ステップによって得られた前記Ｙを出力する出力ステップとを
備えたことを特徴とする分配点値算出方法。
【請求項６】
Ｎ個のディジタル信号のサンプルから構成される入力サンプルデータ列の第ｉ（０≦ｉ≦Ｎ−１）番目のサンプルの値をＸ［ｉ］とし、前記入力サンプルデータ列の各サンプルを所定の定数Ａで除算したＹ［ｉ］（０≦ｉ≦Ｎ−１）を出力サンプルデータ列として出力するサンプルデータ除算方法であって、
前記Ａを、所定の定数Ｑを２＾ｋ（＾はべき乗を表し、ｋは所定の自然数を表すとする）で除算したものであるとするとき、
前記Ｎ、前記Ｑおよび、前記ｋを入力する入力ステップと、
前記ｉの初期値が０であるということと、（数２）を満たす所定の係数Ｗとが設定される初期設定ステップと、
【数２】
0003566568.tif 000007
前記Ｘ［ｉ］を、前記初期設定ステップで得られた係数Ｗ倍してＺ［ｉ］を生成するＷ倍ステップと、
前記Ｗ倍ステップにより得られたディジタル信号Ｚ［ｉ］を下位ビット側に前記ｋビットシフトしてディジタル信号Ｙ［ｉ］を生成するビットシフトステップと、
前記ビットシフトステップによって生成されたＹ［ｉ］を出力するサンプルデータ出力ステップと、
所定の前記ｉに対応する前記Ｙ［ｉ］が算出された後に、そのｉの値を（ｉ＋１）に変更する設定値更新ステップと、
前記設定値更新ステップによって更新されたｉの値が前記Ｎ未満であるか否かを判定する判定ステップとを備え、
前記判定ステップによって、前記更新されたｉの値が前記Ｎ未満であると判定された場合、前記更新されたｉに対応するＸ［ｉ］に対して、前記Ｗ倍ステップ、前記ビットシフトステップ、前記サンプルデータ出力ステップ、及び前記設定値更新ステッップの各ステップを実施し、前記更新されたｉの値が前記Ｎ以上であると判定された場合、全ての処理を終了し、
前記ｉの値が小さいものから順にＹ［ｉ］を算出することを特徴とするサンプルデータ除算方法。
【請求項７】
請求項１から４のいずれかに記載のサンプルデータ列変換方法の各ステップをコンピュータに実行させるためのプログラムを格納したことを特徴とするプログラム記録媒体。
【請求項８】
請求項５記載の分配点値算出方法の各ステップをコンピュータに実行させるためのプログラムを格納したことを特徴とするプログラム記録媒体。
【請求項９】
請求項６記載のサンプルデータ除算方法の各ステップをコンピュータに実行させるためのプログラムを格納したことを特徴とするプログラム記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタル映像信号や音声信号のサンプルデータの変換を行うサンプルデータ列変換方法、分配点値算出方法およびサンプルデータ除算方法と、プログラム記録媒体とに関するものである。
【０００２】
【従来の技術】
ディジタル映像信号の解像度変換や、ディジタル音声信号の周波数変換などを行うとき、サンプル数を変更するサンプルデータ変換が必要となる。
【０００３】
これまで、ディジタルデータのサンプル数変換を行う場合、入力ディジタルデータをアップサンプリングした後、低域通過フィルタを作用させて、出力サンプル数に応じて間引きを行う方法が一般的である。
【０００４】
以下、図１１を用いて従来のサンプルデータ変換を説明する。図１１は、従来のサンプルデータ変換の一例について説明した図である。図１１の例は、４００個のサンプルで構成される入力サンプルデータ列Ｘ［ｉ］を、３００個のサンプルで構成される出力サンプルデータ列Ｙ［ｊ］に変換する場合のサンプルデータ列変換を示したものである。
【０００５】
最初に、入力サンプルデータ列Ｘ［ｉ］からアップサンプリングされたデータ列Ｚ［ｋ］を得る。アップサンプリングを行う場合、データ列Ｚ［ｋ］に変換後の出力サンプルデータ列Ｙ［ｊ］の全てのサンプル値Ｙ［ｊ］が含まれるように、入力サンプルデータ列Ｘ［ｉ］に対して補間を行う必要がある。従って、アップサンプリングされたデータ列Ｚ［ｋ］のサンプル数は、入力サンプルデータ列Ｘ［ｉ］のサンプル数と出力サンプルデータ列Ｙ［ｊ］のサンプル数の最小公倍数となる。つまり、変換前のサンプル数と変換後のサンプル数の最小公倍数となる。この例ではアップサンプリングされたデータ列Ｚ［ｋ］のサンプル数は、４００と３００の最小公倍数である１２００となる。
【０００６】
そして、アップサンプリングされたデータ列Ｚ［ｋ］に対して、折り返し歪みを除去するために低域通過フィルタを作用させた後、不要なサンプルを間引くことで、出力サンプルデータ列Ｙ［ｊ］を得ることができる。図１１の場合では、アップサンプリングされたデータ列Ｚ［ｋ］から、例えば最初のサンプルを選択するとともに、その最初のサンプルから４サンプル毎に１つずつサンプルを選択することによって出力サンプルデータ列Ｙ［ｊ］を得ることができる。
【０００７】
上記方法については、例えば特開平１０−１６４４６８号に開示されている。
【０００８】
ところで、上述したアップサンプリングされたデータ列Ｚ［ｋ］の各サンプルを求める場合、入力サンプルデータ列Ｘ［ｉ］の隣り合う２つのサンプルＸ［ｉ］とＸ［ｉ＋１］との間のサンプルの値を、そのＸ［ｉ］およびＸ［ｉ＋１］との距離の比（１−ｗ）：ｗ（０≦ｗ≦１）に基づいて加重平均して求めるという演算が頻繁に登場する。このように、２つの数Ａ１とＡ２の間の所定の位置に存在する数ＡＸを、Ａ１およびＡ２からの距離の比を利用して求める場合、以下に示す（数１２）が成立するとき、数ＡＸの値は以下に示す（数１３）で表現される。
【０００９】
【数１２】
（数Ａ１とＡＸとの距離）：（数ＡＸとＡ２との距離）＝（１−ｗ）：ｗ
ただし０≦ｗ≦１
【００１０】
【数１３】
ＡＸ＝ｗ×Ａ１＋（１−ｗ）×Ａ２
このように、隣り合う２つの数Ａ１とＡ２の間の数ＡＸを計算機上で求める場合、図１２のフローチャートに基づく方法をとるのが一般的である。
【００１１】
図１２において、１２０１は第１ロードステップ、１２０２は第２ロードステップ、１２０３は第３ロードステップ、１２０４は第４ロードステップ、１２０５は第１乗算ステップ、１２０６は減算ステップ、１２０７は第２乗算ステップ、１２０８は加算ステップ、１２０９は出力ステップである。
【００１２】
以下、図１２のフローチャートの動作を説明する。
【００１３】
入力された２つのサンプル値Ａ１、Ａ２およびパラメータｗは、それぞれ第１ロードステップ１２０１、第２ロードステップ１２０２、第３ロードステップ１２０３でそれぞれレジスタＡ、レジスタＢ、レジスタＣにロードされ、さらに第４ロードステップ１２０４で数値１がレジスタＤにロードされる。
【００１４】
次に第１乗算ステップ１２０５で、レジスタＡに対してレジスタＣの内容が乗算される。乗算後、レジスタＡには（ｗ×Ａ１）が保持される。
【００１５】
次に減算ステップ１２０６で、レジスタＤに対してレジスタＣの内容が減算される。減算後、レジスタＤには（１−ｗ）が保持される。
【００１６】
次に第２乗算ステップ１２０７で、レジスタＢに対してレジスタＤの内容が乗算される。乗算後、レジスタＢには（１−ｗ）×Ａ２が保持される。
【００１７】
次に加算ステップ１２０８で、レジスタＡに対してレジスタＢの内容が加算される。加算後、レジスタＡには（ｗ×Ａ１＋（１−ｗ）×Ａ２）が保持される。
【００１８】
最後に出力ステップ１２０９で、ＡＸつまり、（ｗ×Ａ１＋（１−ｗ）×Ａ２）が出力される。
【００１９】
この例で１個の数ＡＸを求めるために必要な操作は、４つのロード、２つの乗算、減算および加算である。
【００２０】
以上説明したサンプルデータ変換は、近年の計算機技術の向上により、専用のハードウェアのみならず、パーソナルコンピュータ（ＰＣ）上においても、比較的高速に実現できるようになってきている。
【００２１】
【発明が解決しようとする課題】
しかしながら、上述したようなサンプルデータ変換を、ＰＣ上でソフトウェアによって実現させるとき、以下のような問題が生じる。
【００２２】
アップサンプリングを行う場合、変換後のサンプルがすべて含まれるようにデータを補間する必要がある。従って、アップサンプリングされたデータ列のサンプル数は、変換前のサンプル数と変換後のサンプル数の最小公倍数となる。
【００２３】
しかし、変換前のサンプル数Ｍと変換後のサンプル数Ｎがともに小さくても、Ｍ、Ｎが互いに疎な自然数であれば、アップサンプリングされたデータ列のサンプル数はＭ×Ｎとなり、場合によっては大きな数値になる。このときアップサンプリングされたデータ列を保持するために、非常に大きな容量を有するメモリが必要になる。さらにこの場合、アップサンプリングするさい、膨大な数の乗算および除算を必要とするので、そのアップサンプリングに要する演算量は膨大なものとなる。また、低域通過フィルタリングを含む間引きに要する演算量も膨大なものとなる。このように、膨大な演算を必要とするので、膨大な時間を要する。これは、リアルタイム性が要求される映像信号処理や音声信号処理においては、致命的な欠陥となりうる。
【００２４】
そこで、本発明は、従来では、任意の数のサンプルから構成される入力ディジタル信号を、そのサンプルの数とは異なる任意の数のサンプルから構成される出力ディジタル信号へ変換するさい、大容量のメモリが必要であるとともに、演算量が膨大であるという課題を考慮し、任意の数のサンプルから構成される入力ディジタル信号から、その入力ディジタル信号を構成するサンプルの数とは異なる任意の数のサンプルから構成される出力ディジタル信号へ変換するさい、小さなメモリ容量および演算量でその変換を実現することができるサンプルデータ列変換方法を提供することを目的とするものである。
【００２５】
また、図１２のフローチャートを用いて説明したように、従来は、Ａ１とＡ２という２つの数から１つの数ＡＸを算出するさい、４つのロード、２つの乗算、減算および加算を行わなければならないので、処理工程が多く演算時間が短くなかった。例えば、上述したサンプルデータ列変換を行うさい、変換後のサンプル数が膨大であれば、演算時間は相当長くなる。これは、リアルタイム性が要求される映像信号処理や音声信号処理においては、致命的な欠陥となりうる。
【００２６】
そこで、本発明は、従来２つの数から１つの数を算出するさい、処理工程が多いという課題を考慮し、処理工程を少なくして２つの数から１つの数を算出することができる分配点値算出方法を提供することを目的とするものである。
【００２７】
さらに、例えば上述したサンプルデータ列変換を行う場合、膨大な回数の除算をすることになるが、ＰＣにとっては除算という作業は負担が大きい作業である。したがって、例えばサンプルデータ列変換を行うさい、変換後のサンプル数が膨大であれば、除算に相当量の負担がかかり、演算時間は相当長くなる。これは、リアルタイム性が要求される映像信号処理や音声信号処理においては、致命的な欠陥となりうる。
【００２８】
そこで、本発明は、従来の装置では、多数個のサンプルから構成されるサンプルデータ列のそれぞれのサンプルを除算する場合、負担が大きいという課題を考慮し、多数個のサンプルから構成されるサンプルデータ列のそれぞれのサンプルを除算する場合であっても、小さい負担で除算を行うことができるサンプルデータ除算方法を提供することを目的とするものである。
【００２９】
【課題を解決するための手段】
上記課題を鑑み、第１の本発明（請求項１に対応）は、Ｍ個のサンプルから構成される入力サンプルデータ列を、Ｎ個のサンプルから構成される出力サンプルデータ列に変換するサンプルデータ列変換方法であって、
前記入力サンプルデータ列の第ｉ（０≦ｉ≦Ｍ−１）番目のサンプルの値をＸ［ｉ］とし、前記出力サンプルデータ列の第ｊ（０≦ｊ≦Ｎ−１）番目のサンプルの値をＹ［ｊ］としたとき、
前記Ｍ、前記Ｎおよび、０を除く所定の定数ｋを入力する入力ステップと、
初期値が、前記ｋと前記Ｎの積ｋＮと０との間の所定の値、または前記積ｋＮであるパラメータＷと、前記ｉおよび前記ｊの初期値がともに０であるということと、前記Ｘ［ｉ］のｉを前記Ｍに置き換えたときのＸ［Ｍ］がＸ［Ｍ−１］であるということと、が設定される初期設定ステップと、
前記定数ｋが正（ｋ＞０）の場合、前記パラメータＷが０以下（Ｗ≦０）であるか否かを判定し、前記定数ｋが負（ｋ＜０）の場合、前記パラメータＷが０以上（Ｗ≧０）であるか否かを判定する第１判定ステップと、
前記第１判定ステップによって前記判定が行われた後に、前記定数ｋが正（ｋ＞０）の場合、前記パラメータＷが０を超える（Ｗ＞０）とき前記ｉの値を変更せず、前記パラメータＷが０以下（Ｗ≦０）のとき前記ｉの値を（ｉ＋１）に変更するとともに、そのパラメータＷの値を（Ｗ＋ｋ×Ｎ）に変更し、前記定数ｋが負（ｋ＜０）の場合、前記パラメータＷが０未満（Ｗ＜０）のとき前記ｉの値を変更せず、前記パラメータＷが０以上（Ｗ≧０）のとき前記ｉの値を（ｉ＋１）に変更するとともに、前記パラメータＷの値を（Ｗ＋ｋ×Ｎ）に変更する第１設定値更新ステップと、
前記第１設定値更新ステップによって決定されたｉの値およびパラメータＷと、前記ｋ、前記Ｎ、前記Ｘ［ｉ］およびＸ［ｉ＋１］を用いた（数１）に基づいて、前記出力サンプルデータ列の第ｊ番目のサンプルの値Ｙ［ｊ］を算出するＹ［ｊ］算出ステップと、
【００３０】
【数１】
Ｙ［ｊ］＝（（ｋ×Ｎ−Ｗ）×Ｘ［ｉ＋１］＋Ｗ×Ｘ［ｉ］）／（ｋ×Ｎ）
前記Ｙ［ｊ］算出ステップによって算出されたＹ［ｊ］を出力するサンプルデータ出力ステップと、
前記Ｙ［ｊ］算出ステップによって所定の前記ｊに対応する前記Ｙ［ｊ］が算出された後に、そのＹ［ｊ］の算出に用いたパラメータＷの値を（Ｗ−ｋ×Ｍ）に変更するとともに、前記所定のｊの値を（ｊ＋１）に変更する第２設定値更新ステップと、
前記第２設定値更新ステップによって更新されたｊの値が前記Ｎ未満であるか否かを判定する第２判定ステップとを備え、
前記第２判定ステップによって、前記更新されたｊの値が前記Ｎ未満であると判定された場合、前記第１判定ステップは引き続き前記所定の処理を行い、前記更新されたｊの値が前記Ｎ以上であると判定された場合、全ての処理を終了し、
前記ｊの値が小さいものから順にＹ［ｊ］を算出することを特徴とするサンプルデータ列変換方法である。
【００３１】
第２の本発明（請求項５に対応）は、所定の２つの数Ｘ１およびＸ２のデータを入力するデータ入力ステップと、
前記Ｘ１とＸ２との距離を（１−ｗ）：ｗの比を満たす割合で分配する位置の数Ｙを求めるためのパラメータｗを入力するパラメータ入力ステップと、
前記Ｘ１から前記Ｘ２を減算してＸ３を生成する減算ステップと、
前記減算ステップによって得られたＸ３を前記パラメータｗ倍してＸ４を生成するｗ倍ステップと、
前記ｗ倍ステップによって得られたＸ４に前記Ｘ２を加算してＹを生成する加算ステップと、
前記加算ステップによって得られた前記Ｙを出力する出力ステップとを
備えたことを特徴とする分配点値算出方法である。
【００３２】
第３の本発明（請求項６に対応）は、Ｎ個のディジタル信号のサンプルから構成される入力サンプルデータ列の第ｉ（０≦ｉ≦Ｎ−１）番目のサンプルの値をＸ［ｉ］とし、前記入力サンプルデータ列の各サンプルを所定の定数Ａで除算したＹ［ｉ］（０≦ｉ≦Ｎ−１）を出力サンプルデータ列として出力するサンプルデータ除算方法であって、
前記Ａを、所定の定数Ｑを２＾ｋ（＾はべき乗を表し、ｋは所定の自然数を表すとする）で除算したものであるとするとき、
前記Ｎ、前記Ｑおよび、前記ｋを入力する入力ステップと、
前記ｉの初期値が０であるということと、（数２）を満たす所定の係数Ｗとが設定される初期設定ステップと、
【００３３】
【数２】
Ｗ＝（２＾ｋ）／Ｑ  （ただし＾はべき乗を表す）
前記Ｘ［ｉ］を、前記初期設定ステップで得られた係数Ｗ倍してＺ［ｉ］を生成するＷ倍ステップと、
前記Ｗ倍ステップにより得られたディジタル信号Ｚ［ｉ］を下位ビット側に前記ｋビットシフトしてディジタル信号Ｙ［ｉ］を生成するビットシフトステップと、
前記ビットシフトステップによって生成されたＹ［ｉ］を出力するサンプルデータ出力ステップと、
所定の前記ｉに対応する前記Ｙ［ｉ］が算出された後に、そのｉの値を（ｉ＋１）に変更する設定値更新ステップと、
前記設定値更新ステップによって更新されたｉの値が前記Ｎ未満であるか否かを判定する判定ステップとを備え、
前記判定ステップによって、前記更新されたｉの値が前記Ｎ未満であると判定された場合、前記更新されたｉに対応するＸ［ｉ］に対して、前記Ｗ倍ステップ、前記ビットシフトステップ、前記サンプルデータ出力ステップ、及び前記設定値更新ステッップの各ステップを実施し、前記更新されたｉの値が前記Ｎ以上であると判定された場合、全ての処理を終了し、
前記ｉの値が小さいものから順にＹ［ｉ］を算出することを特徴とするサンプルデータ除算方法である。
【００３４】
【発明の実施の形態】
以下に、本発明の実施の形態を図面に基づいて説明する。
【００３５】
（第１の実施の形態）
本発明の第１の実施の形態のサンプルデータ列変換装置の構成をその動作とともに説明する。
【００３６】
図１に、本発明の第１の実施の形態のサンプルデータ列変換装置のブロック図を示す。図１に示すように、第１の実施の形態のサンプルデータ列変換装置は、入力手段１と、初期設定手段２と、第１判定手段３と、第１設定値更新手段４と、Ｙ［ｊ］算出手段５と、サンプルデータ出力手段６と、第２設定値更新手段７と、第２判定手段８から構成される。
【００３７】
次に図２に、第１の実施の形態のサンプルデータ列変換装置の動作のフローチャートを示す。図２において、２０１は初期設定ステップ、２０２は第１判定ステップ、２０３はサンプルデータ出力ステップ、２０４は減算ステップ、２０５は第２判定ステップ、２０６は加算ステップである。
【００３８】
次に図３に、第１の実施の形態のサンプルデータ列変換装置の動作を具体的に説明するための説明図を示す。第１の実施の形態では、入力サンプルデータ列Ｘ［ｉ］のサンプル数Ｍは３００、出力サンプルデータ列Ｙ［ｊ］のサンプル数Ｎは４００であるとする。また所定の定数ｋというものを考え、第１の実施の形態では、その定数ｋは１であるとする。
【００３９】
以下、図１から３を用いて第１の実施の形態の動作について説明する。ここで、入力サンプルデータ列の第ｉ（０≦ｉ≦Ｍ−１）番目のサンプルの値をＸ［ｉ］とし、出力サンプルデータ列の第ｊ（０≦ｊ≦Ｎ−１）番目のサンプルの値をＹ［ｊ］とする。
【００４０】
さてこのとき先ず、入力手段１は、Ｍ、Ｎおよび定数ｋの値を入力する。第１の実施の形態では、入力手段１は、Ｍ＝３００、Ｎ＝４００およびｋ＝１を入力する。
【００４１】
次に、初期設定手段２は、初期設定ステップ２０１において、所定のパラメータＷの初期値と、ｉおよびｊの初期値と、最終出力サンプルデータＹ［Ｎ−１］を算出する際の便宜のため、Ｘ［Ｍ］＝Ｘ［Ｍ−１］であるということが設定される。第１の実施の形態では、Ｗ＝４００（＝ｋ×Ｎ）、ｉ＝０、ｊ＝０およびＸ［３００］＝Ｘ［２９９］が設定される。
【００４２】
続いて第１判定ステップ２０２に進む。その第１判定ステップ２０２において、先ず、第１判定手段３は、入力手段１によって入力されたｋが正であるか負であるかを判定する。第１の実施の形態では、ｋは１であるので正であると判定する。次に、第１判定手段３は、パラメータＷが０以下であるか否かを判定する。第１判定ステップ２０２の判定結果が偽であればサンプルデータ出力ステップ２０３に進み、第１判定ステップ２０２の判定結果が真であれば加算ステップ２０６に進む。この時点のＷは４００であるため、第１判定ステップ２０２の判定結果は偽であることより、サンプルデータ出力ステップ２０３に進む。
【００４３】
次に、第１設定値更新手段４は、第１判定手段３によってパラメータＷが０以下であるか否かが判定された後、定数ｋが正の場合、パラメータＷが０を超えるときｉの値を変更せず、パラメータＷが０以下のときｉの値を（ｉ＋１）に変更するとともに、そのパラメータＷの値を（Ｗ＋ｋ×Ｎ）に変更する。この時点では、パラメータＷは４００であるので、ｉの値を変更しない。
【００４４】
次にＹ［ｊ］算出手段５は、サンプルデータ出力ステップ２０３において、出力サンプルデータ列Ｙ［ｊ］の０番目のサンプルデータＹ［０］を（数１）に基づいて算出する。
【００４５】
【数１】
Ｙ［ｊ］＝（（ｋ×Ｎ−Ｗ）×Ｘ［ｉ＋１］＋Ｗ×Ｘ［ｉ］）／（ｋ×Ｎ）
つまり具体的には、Ｙ［０］を、（数３）によって算出する。
【００４６】
【数３】
Ｙ［０］＝（（４００−４００）×Ｘ［１］＋４００×Ｘ［０］）／４００＝Ｘ［０］
そして、サンプルデータ出力手段６は、Ｙ［ｊ］算出手段５によって算出されたＹ［０］を出力する。
【００４７】
このＹ［０］は、図３の３０１に示す通り、Ｘ［０］と同じものであり、Ｙ［０］は、Ｘ［０］がそのまま出力されることを意味している。
【００４８】
次に、第２設定値更新手段７は、減算ステップ２０４において、Ｙ［ｊ］算出手段５によって算出されたＹ［０］が算出された後に、そのＹ［０］の算出に用いたパラメータＷの値を（Ｗ−ｋ×Ｍ）に変更するとともに、Ｙ［０］をＹ［１］に変更する。つまりこの場合、減算ステップ２０４でＷ＝４００−３００＝１００、ｊ＝０＋１＝１に変更する。
【００４９】
次に、第２判定手段８は、第２判定ステップ２０５において、第２設定値更新手段７によって更新されたｊの値がＮ未満、つまり４００未満であるか否かを判定し、更新されたｊの値がＮ未満であると判定された場合、その後の処理を引き続き第１判定手段３に行わせ、他方、更新されたｊの値がＮ以上であると判定された場合、全ての処理を終了する。ここでこの時点では、第２設定値更新手段７によって更新されたｊの値は１であるので、第２判定ステップ２０５では、ｊ＝１＜４００＝Ｎであると判定され、第１判定ステップ２０２に戻る。
【００５０】
次に、第１判定手段３は、第１判定ステップ２０２において、第２設定値更新手段７によって更新されたパラメータＷが０以下であるか否かを判定する。更新されたパラメータＷが１００であるため判定結果は偽となり、サンプルデータ出力ステップ２０３に進む。
【００５１】
次にＹ［ｊ］算出手段５は、サンプルデータ出力ステップ２０３において、出力サンプルデータ列Ｙ［ｊ］の１番目のサンプルデータＹ［１］を（数１）に基づいて算出する。
【００５２】
具体的には、Ｙ［１］を、（数４）によって算出する。
【００５３】
【数４】
0003566568.tif 000002
そして、サンプルデータ出力手段６は、Ｙ［ｊ］算出手段５によって算出されたＹ［１］を出力する。
【００５４】
このＹ［１］は、図３の３０２に示す通り、Ｘ［１］およびＸ［０］を３：１の比で加重平均したものとなっている。
【００５５】
次に、第２設定値更新手段７は、減算ステップ２０４において、Ｙ［ｊ］算出手段５によって算出されたＹ［１］が算出された後に、そのＹ［１］の算出に用いたパラメータＷの値を（Ｗ−ｋ×Ｍ）に変更するとともに、Ｙ［１］をＹ［２］に変更する。つまりこの場合、減算ステップ２０４でＷ＝１００−３００＝−２００、ｊ＝１＋１＝２に変更する。
【００５６】
次に、第２判定手段８は、上述したように、第２判定ステップ２０５において、第２設定値更新手段７によって更新されたｊの値がＮ未満であるか否かを判定するが、ここでこの時点では、第２設定値更新手段７によって更新されたｊの値は２であるので、第２判定ステップ２０５では、ｊ＝２＜４００＝Ｎであると判定され、第１判定ステップ２０２に戻る。
【００５７】
次に、第１判定手段３は、第１判定ステップ２０２において、第２設定値更新手段７によって更新されたパラメータＷが０以下であるか否かを判定する。更新されたパラメータＷが−２００であるため判定結果は真となり、加算ステップ２０６に進む。
【００５８】
そして、第１設定値更新手段４は、加算ステップ２０６において、パラメータＷが−２００であるので、そのパラメータＷの値を（Ｗ＋ｋ×Ｎ）に変更する。つまり、パラメータＷの値を、−２００＋４００＝２００に変更する。また、第１設定値更新手段４は、加算ステップ２０６において、パラメータそれまで用いていたｉの値を（ｉ＋１）に変更する。つまりｉの値を０から１に変更する。その後、再度第１判定ステップ２０２に戻る。
【００５９】
次に、第１判定手段３は、第１判定ステップ２０２において、第１設定値更新手段４によって更新されたパラメータＷが０以下であるか否かを判定する。更新されたパラメータＷが２００であるため判定結果は偽となり、サンプルデータ出力ステップ２０３に進む。
【００６０】
次にＹ［ｊ］算出手段５は、サンプルデータ出力ステップ２０３において、出力サンプルデータ列Ｙ［ｊ］の２番目のサンプルデータＹ［２］を（数１）に基づいて算出する。
【００６１】
具体的には、Ｙ［２］を、（数５）によって算出する。
【００６２】
【数５】
0003566568.tif 000003
そして、サンプルデータ出力手段６は、Ｙ［ｊ］算出手段５によって算出されたＹ［２］を出力する。
【００６３】
このＹ［２］は、図３の３０３に示す通り、Ｘ［２］およびＸ［１］を１：１の比で加重平均したものとなっている。
【００６４】
以後、上記操作を繰り返して出力サンプルデータＹ［ｊ］を順次出力する。なお、最終出力サンプルデータＹ［３９９］を算出するときは、（数６）に基づいて算出することになる。
【００６５】
【数６】
0003566568.tif 000004
しかしながら、Ｘ［３００］というものは現実には存在しないので、（数６）を計算することはできない。ところが、初期設定ステップ２０１において、初期設定手段２には、Ｘ［３００］＝Ｘ［２９９］が設定されているので、（数６）のＸ［３００］を、Ｘ［２９９］に置き換えて算出することになり、結局Ｙ［３９９］＝Ｘ［２９９］となる。
【００６６】
そして、Ｙ［３９９］の出力終了後、減算ステップ２０４により、ｊ＝４００となる。このとき第２判定ステップ２０５で偽と判定され、動作終了となる。
【００６７】
以上、第１の実施の形態で説明したように、映像信号の解像度変換や、音声信号の周波数変換等で必要となるサンプルデータ個数の変換を、従来の技術による場合と比較してより小さなメモリ容量および演算ステップ数で実現することができる。またサンプルデータ出力ステップ２０３における加重平均演算は、低域通過フィルタと同等の効果を持つ。
【００６８】
なお、本実施の形態では、初期設定ステップ２０１において、Ｗの初期値としてｋ×Ｎを設定しているが、これはＹ［０］＝Ｘ［０］として、入出力それぞれの先頭データの位相を一致させるためである。Ｗの初期値は、０≦Ｗ≦ｋ×Ｎを満たす値であれば何でもよい。
【００６９】
また、ｋが負の場合は、第１判定ステップ２０２の判定条件を逆にすることで、まったく同様に実現できる。
【００７０】
（第２の実施の形態）
次に、本発明の第２の実施の形態のサンプルデータ列変換装置の構成をその動作とともに説明する。
【００７１】
本発明の第２の実施の形態のサンプルデータ列変換装置は、図１を用いて説明した第１の実施の形態のサンプルデータ列変換装置と同様なものである。したがって、第２の実施の形態のサンプルデータ列変換装置の動作と、第１の実施の形態のサンプルデータ列変換装置の動作も同様なものとなる。
【００７２】
次に図４に、第２の実施の形態のサンプルデータ列変換装置の動作を具体的に説明するための説明図を示す。第２の実施の形態では、入力サンプルデータ列Ｘ［ｉ］のサンプル数Ｍは４００、出力サンプルデータ列Ｙ［ｊ］のサンプル数Ｎは３００、定数ｋは１／１００であるとする。
【００７３】
つまり、第１の実施の形態と第２の実施の形態との相違点は、入力サンプルデータ列Ｘ［ｉ］のサンプル数Ｍと、出力サンプルデータ列Ｙ［ｊ］のサンプル数Ｎと、定数ｋとの、それぞれの値が異なるという点である。すなわち、第１の実施の形態はサンプル数を増加させる例であったが、第２の実施の形態はサンプル数を減少させる例であり、かつｋは、ＭとＮの最大公約数の逆数となっている。
【００７４】
以下、図１、２および４を用いて第２の実施の形態の動作について具体的に説明する。
【００７５】
さてこのとき先ず、入力手段１は、Ｍ、Ｎおよび定数ｋの値を入力する。第２の実施の形態では、入力手段１は、Ｍ＝４００、Ｎ＝３００、およびｋ＝１／１００を入力する。
【００７６】
次に、初期設定手段２は、初期設定ステップ２０１において、所定のパラメータＷの初期値と、ｉおよびｊの初期値と、最終出力サンプルデータＹ［Ｎ−１］を算出する際の便宜のため、Ｘ［Ｍ］＝Ｘ［Ｍ−１］であるということが設定される。第２の実施の形態では、Ｗ＝３（＝ｋ×Ｎ）、ｉ＝０、ｊ＝０およびＸ［４００］＝Ｘ［３９９］が設定される。
【００７７】
続いて第１判定ステップ２０２に進む。その第１判定ステップ２０２において、先ず、第１判定手段３は、入力手段１によって入力されたｋが正であるか負であるかを判定する。第２の実施の形態では、ｋは１／１００であるので正であると判定する。次に、第１判定手段３は、パラメータＷが０以下であるか否かを判定する。第１判定ステップ２０２の判定結果が偽であればサンプルデータ出力ステップ２０３に進み、第１判定ステップ２０２の判定結果が真であれば加算ステップ２０６に進む。この時点のＷは３であるため、第１判定ステップ２０２の判定結果は偽であることより、サンプルデータ出力ステップ２０３に進む。
【００７８】
次に、第１設定値更新手段４は、第１判定手段３によってパラメータＷが０以下であるか否かが判定された後、定数ｋが正の場合、パラメータＷが０を超えるときｉの値を変更せず、パラメータＷが０以下のときｉの値を（ｉ＋１）に変更するとともに、そのパラメータＷの値を（Ｗ＋ｋ×Ｎ）に変更する。この時点では、パラメータＷは３であるので、ｉの値を変更しない。
【００７９】
次にＹ［ｊ］算出手段５は、サンプルデータ出力ステップ２０３において、出力サンプルデータ列Ｙ［ｊ］の０番目のサンプルデータＹ［０］を（数１）に基づいて算出する。
【００８０】
【数１】
Ｙ［ｊ］＝（（ｋ×Ｎ−Ｗ）×Ｘ［ｉ＋１］＋Ｗ×Ｘ［ｉ］）／（ｋ×Ｎ）
つまり具体的には、Ｙ［０］を、（数７）によって算出する。
【００８１】
【数７】
Ｙ［０］＝（（３−３）×Ｘ［１］＋３×Ｘ［０］）／３＝Ｘ［０］
そして、サンプルデータ出力手段６は、Ｙ［ｊ］算出手段５によって算出されたＹ［０］を出力する。
【００８２】
このＹ［０］は、図４の４０１に示す通り、Ｘ［０］と同じものであり、Ｙ［０］は、Ｘ［０］がそのまま出力されることを意味している。
【００８３】
次に、第２設定値更新手段７は、減算ステップ２０４において、Ｙ［ｊ］算出手段５によって算出されたＹ［０］が算出された後に、そのＹ［０］の算出に用いたパラメータＷの値を（Ｗ−ｋ×Ｍ）に変更するとともに、Ｙ［０］をＹ［１］に変更する。つまりこの場合、減算ステップ２０４でＷ＝３−４＝−１、ｊ＝０＋１＝１に変更する。
【００８４】
次に、第２判定手段８は、第２判定ステップ２０５において、第２設定値更新手段７によって更新されたｊの値がＮ未満、つまり３００未満であるか否かを判定し、更新されたｊの値がＮ未満であると判定された場合、その後の処理を引き続き第１判定手段３に行わせ、他方、更新されたｊの値がＮ以上であると判定された場合、全ての処理を終了する。ここでこの時点では、第２設定値更新手段７によって更新されたｊの値は１であるので、第２判定ステップ２０５では、ｊ＝１＜３００＝Ｎであると判定され、第１判定ステップ２０２に戻る。
【００８５】
次に、第１判定手段３は、第１判定ステップ２０２において、第２設定値更新手段７によって更新されたパラメータＷが０以下であるか否かを判定する。更新されたパラメータＷが−１であるため判定結果は真となり、加算ステップ２０６に進む。
【００８６】
そして、第１設定値更新手段４は、加算ステップ２０６において、パラメータＷが−１であるので、そのパラメータＷの値を（Ｗ＋ｋ×Ｎ）に変更する。つまり、パラメータＷの値を、−１＋３＝２に変更する。また、第１設定値更新手段４は、加算ステップ２０６において、それまで用いていたｉの値を（ｉ＋１）に変更する。つまりｉの値を０から１に変更する。その後、再度第１判定ステップ２０２に戻る。
【００８７】
次に、第１判定手段３は、第１判定ステップ２０２において、第１設定値更新手段４によって更新されたパラメータＷが０以下であるか否かを判定する。更新されたパラメータＷが２であるため判定結果は偽となり、サンプルデータ出力ステップ２０３に進む。
【００８８】
次にＹ［ｊ］算出手段５は、サンプルデータ出力ステップ２０３において、出力サンプルデータ列Ｙ［ｊ］の１番目のサンプルデータＹ［１］を（数１）に基づいて算出する。
【００８９】
具体的には、Ｙ［１］を、（数８）によって算出する。
【００９０】
【数８】
0003566568.tif 000005
そして、サンプルデータ出力手段６は、Ｙ［ｊ］算出手段５によって算出されたＹ［１］を出力する。
【００９１】
このＹ［１］は、図４の４０２に示す通り、Ｘ［２］およびＸ［１］を１：２の比で加重平均したものとなっている。
【００９２】
以後、第１の実施の形態と同様に、ｊ＝３００となって第２判定ステップ２０５で偽と判定されるまで上記操作を繰り返せば、３００個の出力サンプルデータＹ［０］，Ｙ［１］，Ｙ［２］，…，Ｙ［２９９］を得ることができる。
【００９３】
以上、第１の実施の形態および第２の実施の形態に示したようなサンプルデータ列変換によって、サンプルデータ数を増加させる変換のみならず、減少させる変換も同一のアルゴリズムで実現することができる。
【００９４】
また、第２の実施の形態では、ｋ＝１／１００とすることにより、サンプルデータ出力ステップ２０３における各Ｙ［ｊ］の算出に要するパラメータの必要ビット数を減少させることができる。すなわち、第１の実施の形態のようにｋ＝１とすれば、Ｗ、ｋ×Ｎ等の値を保持するためには少なくとも９ビット必要であり、Ｃ言語で記述するするときｓｈｏｒｔ型、もしくはｌｏｎｇ型の変数を用意する必要がある。一方、ｋ＝１／１００とすれば２ビットですみ、用意する変数はｃｈａｒ型で十分である。
なお、第１の実施の形態と同様、Ｗの初期値は０≦Ｗ≦ｋ×Ｎを満たす値であれば何でもよく、またｋが負の場合も第１判定ステップ２０２の判定条件を逆にすることで、まったく同様に実現できる。
【００９５】
また、上述した第１の実施の形態および第２の実施の形態では、各Ｙ［ｊ］を算出するさい、Ｘ［ｉ］およびＸ［ｉ＋１］を用いて算出するとした。しかしながら、各Ｙ［ｊ］を、例えばＸ［ｉ］、Ｘ［ｉ＋１］およびＸ［ｉ＋２］など、３以上の異なるＸ［ｉ］を用いて算出するとしてもよい。また、各Ｙ［ｊ］を、例えばＸ［ｉ］の２乗と、Ｘ［ｉ＋１］の２乗に所定の係数をかけるなどして算出してもよい。つまり、各Ｙ［ｊ］を、複数のＸ［ｉ］の線形関数によって算出してもよいし、複数のＸ［ｉ］の非線形関数によって算出してもよいということである。
【００９６】
（第３の実施の形態）
次に、本発明の第３の実施の形態のサンプルデータ列変換装置の構成をその動作とともに説明する。
【００９７】
図５に、本発明の第３の実施の形態のサンプルデータ列変換装置のブロック図を示す。図５に示すように、本発明の第３の実施の形態のサンプルデータ列変換装置は、図１を用いて説明した第１の実施の形態のサンプルデータ列変換装置の各構成手段に、ダミー補填手段９を追加したものである。
【００９８】
次に図６に、第３の実施の形態のサンプルデータ列変換装置の動作のフローチャートを示す。図６において、６０１は初期設定ステップ、６０２は第１判定ステップ、６０３はサンプルデータ出力ステップ、６０４は減算ステップ、６０５は第２判定ステップ、６０６は加算ステップ、６０７はダミー補填ステップである。なお、図６の、初期設定ステップ６０１、第１判定ステップ６０２、サンプルデータ出力ステップ６０３、減算ステップ６０４、第２判定ステップ６０５および加算ステップ６０６は、それぞれ図２の初期設定ステップ２０１、第１判定ステップ２０２、サンプルデータ出力ステップ２０３、減算ステップ２０４、第２判定ステップ２０５および加算ステップ２０６と実質上同じものである。したがって、図６は、図２の各ステップに、ダミー補填ステップ６０７を実質上追加したものである。
【００９９】
以下、図５および６を用いて第３の実施の形態の動作について具体的に説明する。
【０１００】
なお、本実施の形態では、ラインあたりの画素数４００、画素あたり３バイトを占める画像データ列Ｘ［ｉ］を、ライン数を変えることなく、ラインあたりの画素数を３７５に縮小した画像データ列Ｙ［ｊ］に変換する場合について述べる。
【０１０１】
本実施の形態において、説明を簡単に行うために、入力、出力とも１ラインの画素データであるとする。また出力サンプルデータ列Ｙ［ｊ］は、ライン単位でメモリに隙間なく充填されるものとし、ＤＩＢ（Ｄｅｖｉｃｅ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｂｉｔｍａｐｓ）フォーマットとして正しく扱うために、各ラインの先頭データは４バイト境界に整列しなければならないものとする。このとき、Ｍ＝４００、Ｎ＝３７５、ｋ＝１、ｂ＝３、ｐ＝４として図６のフローチャートを適用するとする。また、ＭおよびＮの値は、第１の実施の形態とは異なるが、第３の実施の形態では、第１の実施の形態と同様な動作を行う。なお、ｂおよびｐについては後に説明する。
【０１０２】
初期設定ステップ６０１で、必要なパラメータの初期値を設定する。本実施の形態では、Ｗ＝３７５（ｋ×Ｎ）、ｉ＝０、ｊ＝０、Ｘ［４００］＝Ｘ［３９９］と設定される。
【０１０３】
そして、第１および第２の実施の形態と同様な動作を行い、Ｎ＝３７５個の出力サンプルデータを逐次出力する。
【０１０４】
３７５個の出力サンプルデータが出力された後、ｊ＝３７５となって第２判定ステップ６０５で偽と判定されたとき、ダミー補填ステップ６０７に進む。
【０１０５】
ここで、ｊ＝３７５となって第２判定ステップ６０５で偽と判定されたとき、なぜ、ダミー補填ステップ６０７に進むのかということについて述べる。
【０１０６】
Ｗｉｎｄｏｗｓ上でＤＩＢフォーマットの画像データを扱うとき、各ラインの先頭データは４バイト境界に整列されていないと正しく画像が出力できない。なおデータがｐバイト境界に整列されているとは、データの絶対アドレス値がｐの倍数であることをいう。例えばＤＩＢフォーマットで標準的なＲＧＢ２４ビット形式（１画素あたり赤、緑、青のデータを８ビットずつ計２４ビットで表現）では、１画素あたり３バイトの領域を占める。従って、１水平列当たり、入力データ列を、４の倍数でないサンプル数の出力データ列に変換すると、各ラインの先頭データが４バイト境界に整列される保証はなく、表示される画像が正しくなるとは限らない。そこで、４の倍数でないサンプル数の出力データ列に変換しても、表示される画像が正しくなるようにするためにダミー補填ステップ６０７に進むのである。なお、第３の実施の形態では、図６のＳＴＡＲＴの時点で、ｂ＝３、ｐ＝４を入力することになるが、ｂとは出力データ列の１サンプルのバイト長であって、ｐとは各出力データ列の先頭データが整列されていなければならないバイト境界を意味する。したがって、第３の実施の形態では、ｂ＝３、ｐ＝４の場合について具体的に説明する。
【０１０７】
さて、本実施の形態では、ｂ＝３、Ｎ＝３７５であるため、ｂ×Ｎ＝１１２５であり、ｐ＝４の倍数ではない。つまり、３７５個の出力サンプルデータ列の次の出力サンプルデータ列の先頭は４バイト境界に整列されないことになる。ここで、ダミー補填ステップ６０７において、ダミー補填手段９は、１１２５より小さくないｐ＝４の倍数として、Ｌ＝１１２８を得て、Ｌ−ｂ×Ｎ＝３バイトのダミーデータをＹ［３７４］の後ろに補填する。
【０１０８】
以上の動作により、３７５個の出力サンプルデータＹ［０］，Ｙ［１］，Ｙ［２］，…，Ｙ［３７４］および、３バイトのダミーバイトを出力することができる。
【０１０９】
上記操作をライン数だけ繰り返すことで、ライン毎に先頭データが４バイト境界に整列された出力画素データ列を出力することができる。つまり、表示画像は正しくなる。
【０１１０】
以上、本実施の形態によれば、出力単位毎にデータを任意のバイト境界に整列させることができる。したがって、ＤＩＢフォーマットの画像データを任意のサイズに拡大、縮小を行うことが可能となる。
【０１１１】
なお、第１、第２の実施の形態と同様、Ｗの初期値は０≦Ｗ≦ｋ×Ｎを満たす値であれば何でもよく、またｋが負の場合も第１判定ステップ６０２の判定条件を逆にすることで、まったく同様に実現できる。
【０１１２】
また、第１から第３の実施の形態においては、加算ステップにおける加算と、減算ステップにおける減算とを交換し、第１判定ステップにおける判定条件を変更することで、さまざまなバリエーションの実施の形態を生成することができる。つまり例えば図２において、加算ステップ２０６の第１式をＷ＝Ｗ−ｋ×Ｎに変更し、減算ステップ２０４の第１式をＷ＝Ｗ＋ｋ×Ｎに変更しても構わないということである。ただしこのように変更した場合、第１判定ステップ２０２の判定条件をＷ≧０？に変更しなければならない。
【０１１３】
（第４の実施の形態）
次に、本発明の第４の実施の形態の分配点値算出装置の構成をその動作とともに説明する。
【０１１４】
図７に、本発明の第４の実施の形態の分配点値算出装置のブロック図を示す。図７に示すように、本発明の第４の実施の形態の分配点値算出装置は、データ入力手段１０と、パラメータ入力手段１１と、減算手段１２と、ｗ倍手段１３と、加算手段１４と、出力手段１５から構成される。
【０１１５】
次に図８に、第４の実施の形態の分配点値算出装置の動作のフローチャートを示す。図８において、８０１は第１ロードステップ、８０２は第２ロードステップ、８０３は第３ロードステップ、８０４は減算ステップ、８０５はｗ倍ステップ、８０６は加算ステップ、８０７は出力ステップである。
【０１１６】
本発明の第４の実施の形態の分配点値算出装置は、第１の実施の形態の図２のサンプルデータ出力ステップ２０３などで、所定の２つの数から新たな１つの数を生成するさいなどに用いられるものである。図２のサンプルデータ出力ステップ２０３の（数１）を整理すると、（数９）のようになる。
【０１１７】
【数９】
Ｙ［ｊ］＝（１−ｗ）×Ｘ［ｉ＋１］＋ｗ×Ｘ［ｉ］，ｗ＝Ｗ／（ｋ×Ｎ）
このように、所定の２つのから新たな１つの数を生成するさいに、第４の実施の形態の分配点値算出装置を用いる。
【０１１８】
以下、図７および８を用いて第４の実施の形態の分配点値算出装置の動作について説明する。
【０１１９】
先ず、データ入力手段１０は、所定の２つの数Ｘ１およびＸ２のデータを入力する。そして、パラメータ入力手段１１は、Ｘ１とＸ２との距離を（１−ｗ）：ｗの比を満たす割合で分配する位置の数Ｙを求めるためのパラメータｗを入力する。それらＸ１、Ｘ２およびパラメータｗは、それぞれ第１ロードステップ８０１、第２ロードステップ８０２、第３ロードステップ８０３でそれぞれレジスタＡ、レジスタＢ、レジスタＣにロードされる。
【０１２０】
次に、減算手段１２は、減算ステップ８０４で、レジスタＡに対してレジスタＢの内容を減算する。減算後、レジスタＡにはＸ１−Ｘ２が保持される。
【０１２１】
次に、ｗ倍手段１３は、ｗ倍ステップ８０５で、レジスタＡに対してレジスタＣの内容を乗算する。結果、レジスタＡにはｗ×（Ｘ１−Ｘ２）が保持される。
【０１２２】
次に、加算手段１４は、加算ステップ８０６で、レジスタＡに対してレジスタＢの内容を加算する。加算後、レジスタＡにはｗ×（Ｘ１−Ｘ２）＋Ｘ２が保持される。
【０１２３】
最後に、出力手段１５は、出力ステップ８０７で、加算手段１４によって得られた結果Ｙを出力する。その結果は、（数１０）で表されるものである。
【０１２４】
【数１０】
Ｙ＝ｗ×（Ｘ１−Ｘ２）＋Ｘ２＝ｗ×Ｘ１＋（１−ｗ）×Ｘ２
本実施の形態では、１個のＹを求めるために必要な操作は、３つのロード、２つの加減算、および１つの乗算である。これは、図１２を用いて示した従来例によるものに比べ、ロードが１つ、および乗算１つ少なくなっている。さらにコンピュータでの乗算は、通常加減算やロードに比べより多くのクロック数を必要とするため、Ｙ１個の出力に対し、乗算回数が１個減少することは、全体の処理時間の短縮に大いなる効果を発揮する。
【０１２５】
以上、本発明の実施の形態によれば、フィルタリング演算の際頻繁に発生する加重平均演算をコンピュータで行ったとき、出力サンプルを１個出力するごとに乗算回数を１回ずつ削減することができ、全体の処理時間を大幅に短縮することができる。
【０１２６】
なお、本実施の形態におけるｗ倍ステップは、ｗが２のべき乗の逆数の場合、乗算をシフト演算に置換することができるので、更に演算の高速化を行うことができる。
【０１２７】
（第５の実施の形態）
次に、本発明の第５の実施の形態のサンプルデータ除算装置の構成をその動作とともに説明する。
【０１２８】
図９に、本発明の第５の実施の形態のサンプルデータ除算装置のブロック図を示す。図９に示すように、本発明の第５の実施の形態のサンプルデータ除算装置は、入力手段１６と、初期設定手段１７と、Ｗ倍手段１８と、ビットシフト手段１９と、サンプルデータ出力手段２０と、設定値更新手段２１と、判定手段２２から構成される。
【０１２９】
次に図１０に、第５の実施の形態のサンプルデータ除算装置のフローチャートを示す。図１０において、１００１は初期設定ステップ、１００２はｗ倍ステップ、１００３はビットシフトステップ、１００４はサンプルデータ出力ステップ、１００５は判定ステップである。
【０１３０】
本発明の第５の実施の形態のサンプルデータ除算装置は、第１の実施の形態の図２のサンプルデータ出力ステップ２０３などで、同一の定数による除算を数多く行うさいなどに用いられるものである。図２のサンプルデータ出力ステップ２０３の（数１）を整理すると、（数１１）のようになる。
【０１３１】
【数１１】
Ｙ＝Ｘ／（ｋ×Ｎ），Ｘ＝（ｋ×Ｎ−Ｗ）×Ｘ［ｉ＋１］＋Ｗ×Ｘ［ｉ］
（数１１）のような除算を数多く行うことは、ＰＣにとっては負担が大きい。そこで、本発明の第５の実施の形態では、負担を小さくして数多くの除算を行うことができるサンプルデータ除算装置について、図９および１０を用いて説明する。なお、本実施の形態では、入力サンプル列Ｘ［ｉ］の個数はＮとする。また、入力サンプル列Ｘ［ｉ］の各サンプルＸ［ｉ］に対応する、除算後の出力サンプル列Ｙ［ｉ］の各サンプルをＹ［ｉ］とする。
【０１３２】
先ず、入力手段１６は、入力サンプル列Ｘ［ｉ］の個数Ｎの値と、所定のＱの値と、所定の自然数ｋを入力する。なお、Ｑとｋとは以下に示す条件を満たすものであるとする。つまり、入力サンプル列Ｘ［ｉ］の各サンプルを所定のＡで除算するさい、そのＡは、Ｑを２＾ｋ（＾はべき乗を表す）で除算したものであるとする条件である。
【０１３３】
次に、初期設定手段１７は、初期設定ステップ１００１において、ｉの初期値が０であるということと、（数２）を満たす所定の係数Ｗとが設定され、ｗ倍ステップ１００２に進む。
【０１３４】
【数２】
Ｗ＝（２＾ｋ）／Ｑ  （ただし＾はべき乗を表すものとする）
次に、Ｗ倍手段１８は、ｗ倍ステップ１００２において、入力サンプルデータＸ［０］、および初期設定ステップ１００１で設定されたＷに対し、ｗ×Ｘ［０］を算出し、その結果をＺ［０］とする。
【０１３５】
続いて、ビットシフト手段１９は、ビットシフトステップ１００３において、Ｚ［０］を２進数とみなして、ｋビット下位方向にシフトする。そのｋとは、入力手段１６によって入力されたｋを意味する。
【０１３６】
次に、サンプルデータ出力手段２０は、サンプルデータ出力ステップ１００４で、ビットシフトステップ１００３でシフト済みのＺ［０］をＹ［０］として出力し、設定値更新手段２１は、同じサンプルデータ出力ステップ１００４で、ｉに１を加算して１とし、判定ステップ１００５に進む。
【０１３７】
判定ステップ１００５では、判定手段２２によって、ｉ＝１であるので真と判定され、ｗ倍ステップ１００２に戻る。
【０１３８】
以上の操作をｉ＝Ｎとなるまで繰り返し、判定ステップ１００５で偽と判定されれば、本実施の形態の動作は終了する。
【０１３９】
従来例では、必要な除算の回数はＮであった。一方、本実施の形態では、Ｎがいかなる値であっても除算は初期設定ステップ１００１で１回行うのみである。一般的にコンピュータで除算を行う場合、加減算よりはもちろん乗算よりもはるかに大きなクロック数を必要とする。従って本実施の形態によれば、従来例に比べ、除算回数を大幅に削減することで処理時間の高速化を行うことができる。
【０１４０】
なお、ｋの値は、出力精度や使用するレジスタのビット数に対応して任意に設定できるが、例えば３２ビットレジスタを使用する場合は、ｋ＝１６とするのが好ましい。
【０１４１】
以上説明したように、本発明の第１、第２の実施の形態によれば、任意の個数Ｍを持つ入力サンプルデータから任意の個数Ｎの出力サンプルへの変換を、高速に行うことが可能である。また第３の実施の形態のように、出力サンプルデータの後ろにダミーデータを補填することで、画像の各ラインの先頭データを常に４バイト境界に整列させることができ、任意の大きさへの画像サイズ変換を容易に行うことができる。また第４の実施の形態で説明した加重平均を求める方法、および第５の実施の形態で説明した入力データ列を共通の除数で除算する方法を用いれば、第１から第３のサンプルデータ変換をより高速に行うことができる。
【０１４２】
なお、これまで説明した実施の形態において、Ｎ／Ｍ≦１／２のとき、出力サンプルデータを生成する際に参照されない入力サンプルデータが存在する。このとき、上記した実施の形態では折返し歪みが発生する場合がある。上記不具合を解決するためには、初期設定ステップにおけるパラメータＷの初期値を変更したり、もしくはサンプルデータ出力ステップにおけるＹ［ｊ］を、Ｘ［ｉ＋１］，Ｘ［ｉ］からのみならず、より多くの入力サンプルデータから算出したりする方法が考えられる。
【０１４３】
また、上述した各実施の形態における、サンプルデータ列変換装置、分配点値算出装置および各構成手段の全部または一部の各機能をコンピュータに実行させるためのプログラムを格納したことを特徴とするプログラム記録媒体も本発明である。
【０１４４】
【発明の効果】
以上説明したところから明らかなように、任意の数のサンプルから構成される入力ディジタル信号から、その入力ディジタル信号を構成するサンプルの数とは異なる任意の数のサンプルから構成される出力ディジタル信号へ変換するさい、小さなメモリ容量および演算量でその変換を実現することができるサンプルデータ列変換方法を提供することができる。
【０１４５】
また、本発明は、処理工程を少なくして２つの数から１つの数を算出することができる分配点値算出方法を提供することができる。
【０１４６】
さらに、本発明は、多数個のサンプルから構成されるサンプルデータ列のそれぞれのサンプルを除算する場合であっても、小さい負担で除算を行うことができるサンプルデータ除算方法を提供することができる。
【図面の簡単な説明】
【図１】本発明の第１および２の実施の形態のサンプルデータ列変換装置のブロック図
【図２】本発明の第１および２の実施の形態のサンプルデータ列変換装置の動作のフローチャート
【図３】本発明の第１の実施の形態のサンプルデータ列変換装置の動作を具体的に説明するための説明図
【図４】本発明の第２の実施の形態のサンプルデータ列変換装置の動作を具体的に説明するための説明図
【図５】本発明の第３の実施の形態のサンプルデータ列変換装置のブロック図
【図６】本発明の第３の実施の形態のサンプルデータ列変換装置の動作のフローチャート
【図７】本発明の第４の実施の形態の分配点値算出装置のブロック図
【図８】本発明の第４の実施の形態の分配点値算出装置の動作のフローチャート
【図９】本発明の第５の実施の形態のサンプルデータ除算装置のブロック図
【図１０】本発明の第５の実施の形態のサンプルデータ除算装置のフローチャート
【図１１】従来のサンプルデータ変換方法の一例を説明した図
【図１２】従来の、隣り合う２つの数の数を加重平均して算出する方法について説明したフローチャート
【符号の説明】
１  入力手段
２  初期設定手段
３  第１判定手段
４  第１設定値更新手段
５  Ｙ［ｊ］算出手段
６  サンプルデータ出力手段
７  第２設定値更新手段
８  第２判定手段
９  ダミー補填手段
１０  データ入力手段
１１  パラメータ入力手段
１２  減算手段
１３  ｗ倍手段
１４  加算手段
１５  出力手段
１６  入力手段
１７  初期設定手段
１８  Ｗ倍手段
１９  ビットシフト手段
２０  サンプルデータ出力手段
２１  設定値更新手段
２２  判定手段
２０１、６０１  初期設定ステップ
２０２、６０２  第１判定ステップ
２０３、６０３  サンプルデータ出力ステップ
２０４、６０４  減算ステップ
２０５、６０５  第２判定ステップ
２０６、６０６  加算ステップ
６０７  ダミー補填ステップ
８０１  第１ロードステップ
８０２  第２ロードステップ
８０３  第３ロードステップ
８０４  減算ステップ
８０５  ｗ倍ステップ
８０６  加算ステップ
８０７  出力ステップ
１００１  初期設定ステップ
１００２  ｗ倍ステップ
１００３  ビットシフトステップ
１００４  サンプルデータ出力ステップ
１００５  判定ステップ
【図１】
0003566568.tif 000008
【図２】
0003566568.tif 000009
【図３】
0003566568.tif 000010
【図４】
0003566568.tif 000011
【図５】
0003566568.tif 000012
【図６】
0003566568.tif 000013
【図７】
0003566568.tif 000014
【図８】
0003566568.tif 000015
【図９】
0003566568.tif 000016
【図１０】
0003566568.tif 000017
【図１１】
0003566568.tif 000018
【図１２】
0003566568.tif 000019