(57)【特許請求の範囲】
【請求項１】
ベクトル単位でしかデータ書き込みができないシステムにおいてデータを書き込むデータ書込方法であって、第１のソース位置（２１ａ）から始まるストレージ範囲（２１）にある第１のソースデータ（２１’）から生成される第１の宛先データ（２２’）が、アラインされていない位置（２２ａ）から始まるストレージ範囲（２２）に書き込まれるデータ書込方法において、
上記第１のソース位置（２１ａ）の前の第２のソース位置（２７ａ）から始まるストレージ範囲（２７）から、上記第１のソースデータ（２１’）を含む第２のソースデータ（２７’）を抽出するステップと、
上記第２のソースデータ（２７’）から、上記第１の宛先データ（２２’）を含む第２の宛先データ（２４’）を生成（２３）するステップと、
上記第２の宛先データ（２４’）を、アラインされた位置（２４ａ）から始まるストレージ範囲（２４）に書き込むステップとを有し、
上記第１の宛先データ（２２’）は、上記入力データから上記出力データを生成する処理によって生成され、
上記第２のソース位置（２７ａ）は、上記第１の宛先データ（２２’）が上記アラインされていない位置（２２ａ）から始まるストレージ範囲に書き込まれるように設定されるデータ書込方法。
【請求項２】
上記出力データのサイズと上記入力データのサイズとの比率に基づいて上記第２のソース位置（２７ａ）を決定するステップを有し、
上記第２のソース位置（２７ａ）は、上記アラインされていない位置（２２ａ）と、上記アラインされた位置（２４ａ）との間の距離に基づいて決定され、
上記第２のソース位置（２７ａ）は、上記第１のソース位置（２１ａ）をＳＰ１とし、上記第２のソース位置（２７ａ）をＳＰ２とし、上記出力データのサイズと、上記入力データのサイズとの比率をｒとし、上記アラインされていない位置（２２ａ）と、上記アラインされた位置（２４ａ）との間の距離をｄとして、以下の式に基づいて決定されることを特徴とする請求項１記載のデータ書込方法。
ＳＰ２＝ＳＰ１−ｄ／ｒ
【請求項３】
上記第１のソースデータ（２１’）及び上記第１の宛先データ（２２’）のサイズに基づいて、及び上記アラインされていない位置（２２ａ）と上記アラインされた位置（２４ａ）との間の距離に基づいて上記第２のソース位置（２７ａ）を決定するステップを更に有する請求項１または２項記載のデータ書込方法。
【請求項４】
上記アラインされた位置（２４ａ）は、上記アラインされていない位置（２２ａ）の前の最初のアラインされた位置であることを特徴とする請求項１乃至３いずれか１項記載のデータ書込方法。
【請求項５】
上記第２のソースデータ（２７’）のサイズは、上記第２の宛先データ（２４’）が、上記アラインされた位置（２４ａ）と、更なるアラインされた位置（２４ｂ）との間にぴったり挟み込まれるように決定されることを特徴とする請求項１乃至４いずれか１項記載のデータ書込方法。
【請求項６】
上記第２のソースデータ（２７’）のストレージ範囲は、上記出力データのサイズと、上記入力データのサイズとの比率に基づいて決定される第３のソース位置（２７ｂ）で終了し、
上記第３のソース位置（２７ｂ）は、上記アラインされた位置（２４ａ）と、上記更なるアラインされた位置（２４ｂ）との間の距離に基づいて決定され、
上記第３のソース位置（２７ｂ）は、上記第３のソース位置（２７ｂ）をＳＰ３とし、上記第２のソース位置（２７ａ）をＳＰ２とし、上記出力データのサイズと、上記入力データのサイズとの比率をｒとし、上記アラインされた位置（２４ａ）と、上記更なるアラインされた位置（２４ｂ）との間の距離をｄ’として、以下の式に基づいて決定されることを特徴とする請求項５記載のデータ書込方法。
ＳＰ３＝ＳＰ２＋ｄ’／ｒ
【請求項７】
上記第２のソースデータ（２７’）のストレージ範囲の終了位置として定義される上記第３のソース位置（２７ｂ）は、上記第１のソースデータ（２１’）及び上記第１の宛先データ（２２’）のサイズに基づいて、及び上記アラインされた位置（２４ａ）と、上記更なるアラインされた位置（２４ｂ）との間の距離に基づいて決定されることを特徴とする請求項６記載のデータ書込方法。
【請求項８】
上記更なるアラインされた位置（２４ｂ）は、上記第１の宛先データ（２２’）のストレージ範囲の後ろの最初のアラインされた位置であることを特徴とする請求項５乃至７いずれか１項記載のデータ書込方法。
【請求項９】
上記第１のソースデータ（２１’）及び上記第１の宛先データ（２２’）は、ビデオデータであることを特徴とする請求項１乃至８いずれか１項記載のデータ書込方法。
【請求項１０】
上記第１のソースデータ（２１’）及び上記第１の宛先データ（２２’）は、オーディオデータであることを特徴とする請求項１乃至８いずれか１項記載のデータ書込方法。
【請求項１１】
上記第２の宛先データ（２４’）は、フィルタ又は線形フィルタによって生成されることを特徴とする請求項１乃至１０いずれか１項記載のデータ書込方法。
【請求項１２】
上記第２の宛先データ（２４’）は、線形フィルタ、非線型フィルタ、データレート変更フィルタ又はデータ遅延フィルタによって生成されることを特徴とする請求項１乃至１１いずれか１項記載のデータ書込方法。
【請求項１３】
ベクトル単位でしかデータ書き込みができないシステムのアラインされていない位置（２２ａ）から始まるストレージ範囲に、ソースストレージ範囲（２１）に含まれたデータから生成された宛先データ（２２’）を書き込むデータ書込方法において、
上記ソースストレージ範囲（２１）を拡張する（２８、２９）ステップと、
上記拡張されたソースストレージ範囲（２７）内のデータから、上記宛先データ（２２’）を含む一時的データ（２４’）を生成するステップと、
上記宛先データ（２２’）が上記アラインされていない位置（２２ａ）から始まるストレージ範囲に書き込まれるように拡張された、アラインされた位置（２４ａ）から始まる上記ベクトル単位でしかデータ書き込みができないシステムのストレージ範囲に上記一時的データ（２４’）を書き込むステップとを有するデータ書込方法。
【請求項１４】
コンピュータシステムに、請求項１乃至１３いずれか１項記載のデータ書込方法の各ステップを実行させるコンピュータプログラムが格納されているコンピュータ読み取り可能な記録媒体。
【請求項１５】
第１のソース位置（２１ａ）から始まるストレージ範囲に第１のソースデータ（２１’）を格納する第１のメモリ（３１）と、
上記第１のソースデータ（２１’）から第１の宛先データ（２２’）を生成（２３）する処理ユニットと、
アラインされていない位置（２２ａ）から始まるストレージ範囲に上記第１の宛先データ（２２’）を受け入れるベクトル単位でしかデータ書き込みができない第２のメモリ（３２）と、
抽出手段と、
書込手段とを備え、
上記抽出手段は、上記第１のメモリ（３１）における、上記第１のソース位置（２１ａ）より前の第２のソース位置（２７ａ）から始まるストレージ範囲から、上記第１のソースデータ（２１’）を含む第２のソースデータ（２７’）を抽出し、
上記処理ユニットは、上記第２のソースデータ（２７’）から、上記第１の宛先データ（２２’）を含む第２の宛先データ（２４’）を生成し、
上記書込手段は、上記第２の宛先データ（２４’）を上記第２のメモリ（３２）のアラインされた位置（２４ａ）から始まるストレージ範囲に書き込み、
上記第１の宛先データ（２２’）は、上記入力データから上記出力データを生成する処理によって生成され、
上記抽出手段によって用いられる上記第２のソース位置（２７ａ）は、決定手段によって、上記第１の宛先データ（２２’）が、上記アラインされていない位置（２２ａ）から始まる上記第２のメモリ（３２）のストレージ範囲に保存されるように決定されるデータ書込装置。
【請求項１６】
上記決定手段は、上記処理ユニットの上記出力データのサイズと、上記処理ユニットの上記入力データのサイズとの比率に基づいて上記第２のソース位置（２７ａ）を決定し、
上記決定手段は、上記アラインされていない位置（２２ａ）と、上記アラインされた位置（２４ａ）との間の距離に基づいて上記第２のソース位置（２７ａ）を決定し、
上記決定手段は、上記第１のソース位置（２１ａ）をＳＰ１とし、上記第２のソース位置（２７ａ）をＳＰ２とし、上記出力データのサイズと、上記入力データのサイズとの比率をｒとし、上記アラインされていない位置（２２ａ）と、上記アラインされた位置（２４ａ）との間の距離をｄとして、以下の式に基づいて決定されることを特徴とする請求項１５記載のデータ書込装置。
ＳＰ２＝ＳＰ１−ｄ／ｒ
【請求項１７】
上記決定手段は、上記第１のソースデータ（２１’）及び上記第１の宛先データ（２２’）のサイズに基づいて、及び上記アラインされていない位置（２２ａ）と上記アラインされた位置（２４ａ）との間の距離に基づいて上記第２のソース位置（２７ａ）を決定することを特徴とする請求項１５または１６記載のデータ書込装置。
【請求項１８】
上記アラインされた位置（２４ａ）は、上記アラインされていない位置（２２ａ）の前の最初のアラインされた位置であることを特徴とする請求項１５乃至１７いずれか１項記載のデータ書込装置。
【請求項１９】
上記決定手段は、上記第２の宛先データ（２４’）が、上記アラインされた位置（２４ａ）と、更なるアラインされた位置（２４ｂ）との間にぴったり挟みこまれるように上記第２のソースデータ（２７’）のサイズを決定することを特徴とする請求項１５乃至１８いずれか１項記載のデータ書込装置。
【請求項２０】
上記決定手段は、上記処理ユニットの上記出力データのサイズと、上記処理ユニットの上記入力データのサイズとの比率に基づいて、上記第２のソースデータ（２７’）のストレージ範囲が終了する位置である第３のソース位置（２７ｂ）を決定し、
上記決定手段は、上記アラインされた位置（２４ａ）と、上記更なるアラインされた位置（２４ｂ）との間の距離に基づいて、上記第３のソース位置（２７ｂ）を決定し、
上記第３のソース位置（２７ｂ）は、上記第３のソース位置（２７ｂ）をＳＰ３とし、上記第２のソース位置（２７ａ）をＳＰ２とし、上記出力データのサイズと、上記入力データのサイズとの比率をｒとし、上記アラインされた位置（２４ａ）と、上記更なるアラインされた位置（２４ｂ）との間の距離をｄ’として、以下の式に基づいて決定されることを特徴とする請求項１９記載のデータ書込装置。
ＳＰ３＝ＳＰ２＋ｄ’／ｒ
【請求項２１】
上記決定手段は、上記第１のソースデータ（２１’）及び上記第１の宛先データ（２２’）のサイズに基づいて、及び上記アラインされた位置（２４ａ）と、上記更なるアラインされた位置（２４ｂ）との間の距離に基づいて、上記第２のソースデータ（２７’）のストレージ範囲の終了位置として定義される上記第３のソース位置（２７ｂ）を決定することを特徴とする請求項２０記載のデータ書込装置。
【請求項２２】
上記更なるアラインされた位置（２４ｂ）は、上記第１の宛先データ（２２’）のストレージ範囲の後ろの最初のアラインされた位置であることを特徴とする請求項１９乃至２１いずれか１項記載のデータ書込装置。
【請求項２３】
上記第１のソースデータ（２１’）及び上記第１の宛先データ（２２’）は、ビデオデータであることを特徴とする請求項１５乃至２２いずれか１項記載のデータ書込装置。
【請求項２４】
上記第１のソースデータ（２１’）及び上記第１の宛先データ（２２’）は、オーディオデータであることを特徴とする請求項１５乃至２２いずれか１項記載のデータ書込装置。
【請求項２５】
上記第２の宛先データ（２４’）は、フィルタ又は線形フィルタによって生成されることを特徴とする請求項１５乃至２４いずれか１項記載のデータ書込装置。
【請求項２６】
上記第２の宛先データ（２４’）は、線形フィルタ、非線型フィルタ、データレート変更フィルタ又はデータ遅延フィルタによって生成されることを特徴とする請求項１５乃至２５いずれか１項記載のデータ書込装置。
【請求項２７】
上記第１のメモリ（３１）及び第２のメモリ（３２）は、共通のメモリの一部であることを特徴とする請求項１５乃至２６いずれか１項記載のデータ書込装置。
【請求項２８】
上記決定手段は、演算手段又は１又は複数のルックアップテーブルであることを特徴とする請求項１６、１７、１９，２０、２１いずれか１項記載のデータ書込装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクトルベースのシステムにおけるデータの書込に関し、詳しくは、ベクトルベースの書込システムのアラインされていない位置にデータを書き込むデータ書込方法及びデータ書込装置に関する。
【背景技術】
【０００２】
ベクトルベースの書込又はストレージをサポートするメモリ方式では、メモリの任意のストレージ範囲にデータを書き込むことはできない。すなわち、このようなメモリは、隣接するストレージ範囲又はベクトルのシーケンスにセグメント化され、データは、１又は複数の完全なベクトルにしか書き込むことができない。換言すれば、データは、メモリの所謂アラインされた位置（aligned position）又はアドレスで始まるストレージ範囲にしか書き込むことができない。これらのアラインされた位置は、プロセスがデータの書込を開始できるメモリの位置として、予め定義されている。このアラインされた位置の間のメモリ位置は、アラインされていない位置と呼ばれる。このようなメモリでは、アラインされていない位置からデータの書込を開始することはできない。
【０００３】
なお、ベクトルベースのメモリを用いる場合であっても、アラインされていない位置である開始位置と、終了位置との間にデータの所定のセットを保存できる場合がある。
【０００４】
このような書込を行う既知の技術、すなわち、アラインされていない開始位置と、終了位置との間でデータを格納する手法では、リード−モディファイ−ライト（read-modify-write）処理を実行する必要がある。例えば、図１に示すシステムは、第１のメモリ１を備え、ソースデータ４は、２つの位置２、３の間に格納されている。ここで、ソースデータ４を、ベクトルベースの第２のメモリ５、詳しくは、第２のメモリ５のアラインされていない位置８から始まる宛先ストレージ範囲９に書き込むとする。宛先ストレージ範囲９は、第２のメモリ５にデータを書き込むための基本ユニットであるベクトル１５の一部である。ベクトル１５は、アラインされた位置６から始まり、宛先ストレージ範囲９の前に位置する第１の範囲７と、宛先ストレージ範囲９の後に位置する第２の範囲１０とを含む。
【０００５】
従来の手法では、宛先ストレージ範囲９にソースデータ４を書き込むために、まず、読出処理が実行される。矢印１２で示すこの読出処理では、ベクトル１５のコンテンツが読み出される。ベクトル１５のデータは、第２のメモリ５のアラインメントに基づいて読み出され、アラインメント制約なしで第３のメモリ１１の一時記憶範囲１７にコピーされる。そして、矢印１３に示すように、第１のメモリ１からソースデータ４が抽出され、第２のメモリ５の宛先ストレージ範囲９に対応する第３のメモリ１１のストレージ範囲１６が変更（modify）される。ソースデータ４が一時記憶範囲１７にコピーされると、一時記憶範囲１７は、第２のメモリ５のアラインメントに基づいて、ベクトル１５に書き込まれる。これにより、ソースデータ４は、第２のメモリ５のアラインされていない位置８から書き込まれる。
【０００６】
この従来の手法の問題点は、第２のメモリ５にデータを書き込む前に、第２のメモリ５のコンテンツを読み出し、変更する必要があるという点である。更に、第２のメモリ５から読み出したデータを変更するために、第１及び第２のメモリに加えて、第３のメモリ１１が必要である。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述の課題に鑑み、本発明の目的は、アラインメント制約を有するシステムにおいて、ソースデータから生成されたデータを容易に書き込むことができる方法及びシステムを提供することである。
【課題を解決するための手段】
【０００８】
本発明では、拡張宛先データが含まれる宛先データが所望のアラインされていない位置から始まるストレージ範囲に格納されるように、アラインされた位置から書き込まれる拡張宛先データを生成する。このソリューションは、アラインメント制約を有するシステム、すなわち、アラインされた位置のみからしかデータを書き込めないシステム、又はベクトルベースのシステム、すなわち、２つのアラインされた位置の間のみしかデータを書き込めないシステムに用いることができる。
【０００９】
このように、本発明では、ソースデータに基づいて宛先データを生成し、リード−モディファイ−ライト（read-modify-write）処理によって所望のアラインされていない位置から宛先データを書き込むことに代えて、拡張ソースデータを選択及び抽出し、拡張ソースデータから拡張宛先データを直接生成する。拡張ソースデータは、ソースデータと、隣接する追加的データとを含む。隣接する追加的データの量は、アラインされた位置から拡張宛先データを書き込むと、拡張宛先データに含まれる宛先データが、所望のアラインされていない位置から書き込まれるように設定される。
【００１０】
したがって、データは、生成又は処理ステップの直後に、ベクトル長にアラインされた出力位置から書き込まれる。この手法では、適切なデータ、すなわち、宛先データが、所望のアラインされていない出力位置から書き込まれることが保証される。
【００１１】
したがって、本発明が提案するデータ書込方法及びデータ書込装置は、次の利点を有する。
【００１２】
・拡張宛先データは、システムのアラインされた位置から書き込むことができるのでリード−モディファイ−ライト処理が不要である。
【００１３】
・リード−モディファイ−ライト処理が不要なので、リード−モディファイ−ライト処理に必要であった更なるローカルメモリも不要である。
【００１４】
・宛先データが生成された直後に書き込まれるので書込処理時間が速くなる。
【００１５】
本発明は、第１の側面として、アラインメント制約を有するシステムにおいて、データを書き込むデータ書込方法であって、第１のソース位置から始まるストレージ範囲にある第１のソースデータから生成される第１の宛先データが、ベクトルベースのシステムのアラインされていない位置から始まるストレージ範囲に書き込まれるデータ書込方法を提供する。データ書込方法は、第１のソース位置の前の第２のソース位置から始まるストレージ範囲から、第１のソースデータを含む第２のソースデータを抽出するステップを有する。次のステップでは、第２のソースデータから、第１の宛先データを含む第２の宛先データを生成する。次に、第２の宛先データを、アラインされた位置から始まるストレージ範囲に書き込む。第２のソース位置は、第１の宛先データがアラインされていない位置から始まるストレージ範囲に書き込まれるように設定される。
【００１６】
特に、第１の宛先データは、入力データから出力データを生成する処理によって生成され、データ書込方法は、出力データのサイズと入力データのサイズとの間の関係を反映する比率に基づいて第２のソース位置を判定する。
【００１７】
第２のソース位置は、アラインされていない位置と、アラインされた位置との間の距離に基づいて判定してもよい。
【００１８】
第２のソース位置は、第１のソース位置の値をＳＰ１とし、第２のソース位置の値をＳＰ２とし、出力データのサイズと、入力データのサイズとの比率をｒとし、アラインされていない位置と、アラインされた位置との間の距離をｄとして、以下の式に基づいて判定してもよい。
【００１９】
ＳＰ２＝ＳＰ１−ｄ／ｒ
なお、所定の生成処理において、比率ｒ及び距離ｄは、定数値であってもよく、更なるパラメータに従属していてもよい。値ｒ及びｄは、ｒ＝ｒ（ＳＰ１）及びｄ＝ｄ（ＳＰ１）のように、第１のソース位置の値ＳＰ１に基づいていてもよい。
【００２０】
特定のビデオ処理の場合、ｒ及びｄは、画像、すなわち、第１のソースデータにおける水平方向及び垂直位置の関数であってもよい。特に、本発明では、例えば、ワイドスクリーンテレビジョンのためのパノラマアルゴリズム等の非線型換算の場合、水平位置の従属性を提案する。垂直位置の従属性は、例えば、デジタルカメラからの画像データの樽型歪み補正、又はピンクッションアルゴリズムの場合に重要である。
【００２１】
更に、データ書込方法は、第１のソースデータ及び第１の宛先データのサイズに基づいて、及びアラインされていない位置とアラインされた位置との間の距離に基づいて第２のソース位置を判定するステップを有していてもよい。
【００２２】
アラインされた位置は、アラインされていない位置の前の最初のアラインされた位置であってもよい。
【００２３】
第２のソースデータのサイズは、第２の宛先データが、アラインされた位置と、更なるアラインされた位置との間に適合するように選択してもよい。
【００２４】
第１の宛先データは、入力データから出力データを生成する処理によって生成してもよい。第２のソースデータのストレージ範囲は、出力データのサイズと、入力データのサイズの間の関係を反映する比率に基づいて判定される第３のソース位置で終了してもよい。
【００２５】
特に、第３のソース位置は、アラインされた位置と、更なるアラインされた位置との間の距離に基づいて判定してもよい。
【００２６】
第３のソース位置は、第３のソース位置の値をＳＰ３とし、第２のソース位置の値をＳＰ２とし、出力データのサイズと、入力データのサイズとの比率をｒとし、アラインされた位置と、更なるアラインされた位置との間の距離をｄ’として、以下の式に基づいて判定してもよい。
【００２７】
ＳＰ３＝ＳＰ２＋ｄ’／ｒ
第２のソース位置ＳＰ２の生成の場合と同様に、比率ｒ及び距離ｄ’はここで、定数は、定数値であってもよく、更なるパラメータに従属していてもよい。
【００２８】
第２のソースデータのストレージ範囲の終了位置として定義される第３のソース位置は、第１のソースデータ及び第１の宛先データのサイズに基づいて、及びアラインされた位置と、更なるアラインされた位置との間の距離に基づいて判定してもよい。
【００２９】
更なるアラインされた位置は、第１の宛先データのストレージ範囲の後ろの最初のアラインされた位置であってもよい。
【００３０】
第１のソースデータ及び第１の宛先データは、ビデオデータであってもよい。
【００３１】
これに代えて、第１のソースデータ及び第１の宛先データは、オーディオデータであってもよい。
【００３２】
第２の宛先データは、フィルタ又は線形フィルタによって生成してもよい。
【００３３】
第２の宛先データは、線形フィルタ、非線型フィルタ、データレート変更フィルタ又はデータ遅延フィルタによって生成してもよい。
【００３４】
本発明の更なる側面として、本発明は、ベクトルベースのシステムのアラインされていない位置から始まるストレージ範囲に、ソースストレージ範囲に含まれたデータから生成された宛先データを書き込むデータ書込方法を提案する。このデータ書込方法は、ソースストレージ範囲を拡張するステップと、拡張されたソースストレージ範囲内のデータから、宛先データを含む一時的データを生成するステップと、アラインされた位置から始まるベクトルベースのシステムのストレージ範囲に一時的データを書き込むステップとを有する。ストレージ範囲は、宛先データがアラインされていない位置から始まるストレージ範囲に書き込まれるように拡張される。
【００３５】
本発明の更なる側面として、本発明は、コンピュータシステムにおいて実行され、上述したデータ書込方法を実現するコンピュータプログラム製品を提供する。
【００３６】
本発明の更なる側面として、本発明は、第１のソース位置から始まるストレージ範囲に第１のソースデータを格納する第１のメモリと、第１のソースデータから第１の宛先データを生成する処理ユニットと、アラインされていない位置から始まるストレージ範囲に第１の宛先データを受け入れるアラインメント制約を有する第２のメモリと、抽出手段と、書込手段とを備えるデータ書込装置を提案する。抽出手段は、第１のメモリにおける、第１のソース位置より前の第２のソース位置から始まるストレージ範囲から、第１のソースデータを含む第２のソースデータを抽出する。処理ユニットは、第２のソースデータから、第１の宛先データを含む第２の宛先データを生成する。書込手段は、第２の宛先データを第２のメモリのアラインされた位置から始まるストレージ範囲に書き込む。抽出手段によって用いられる第２のソース位置は、第１の宛先データが、アラインされていない位置から始まる第２のメモリのストレージ範囲に保存されるように設定される。
【００３７】
なお、「手段」とも呼ばれる本発明の様々な要素及び対応する機能は、如何なる種類のデバイス、ユニット、ソフトウェア要素、ハードウェア要素、及びこれらの一部、並びにここに明示的には示していない適切な他の如何なる手法によって実現してもよい。
【００３８】
更に、本発明に基づいて定められる様々なパラメータ、例えば、第２のソース位置、第２のソースデータのサイズ、又は第３のソース位置は、特にこの処理に適応化された演算手段及び／又はハードコード手段によって算出することができる。このようなハードコード手段は、予め計算された値をメモリに保存する保存手段及び予め計算された値を読み出す読出手段を備えていてもよい。特定の実施の形態として、予め算出された位置又はサイズ値を含む１又は複数のルックアップテーブルを設けてもよい。
【００３９】
本発明の特徴、目的及び利点は、図面を参照する以下の詳細な説明によって、より明瞭となる。なお、添付の図面においては、同様の要素には同様の符号を付している。
【発明を実施するための最良の形態】
【００４０】
まず、図２を参照して、本発明に基づくデータ書込方法について説明する。
【００４１】
図２は、ソースデータ２１’を格納する第１のストレージ範囲又はソースストレージ範囲２１を示している。ソースストレージ範囲２１は、第１の位置又は開始位置２１ａ及び第２の位置又は終了位置２１ｂによって画定され、これらの位置の間には、０個、１個又は複数の中間位置２１ｃが含まれる。開始位置２１ａ、終了位置２１ｂ及び中間位置２１ｃのそれぞれは、第１の又はソースアドレス指定可能メモリ（source addressable storage means：以下、単にメモリという。）３１内でアドレス指定できる位置である。
【００４２】
メモリ３１は、機械可読フォーマットでデータを保持できるコンテナである。メモリ３１は、例えば、ランダムアクセスメモリ（random-access memory：ＲＡＭ）、読出専用メモリ（read-only memory：ＲＯＭ）、磁気テープディスク、又はドラム等の１又は複数のデータ記憶装置を含むことができる。メモリ３１は、揮発性メモリであっても、不揮発性メモリであってもよく、主記憶装置であってもよく、すなわち、ＲＡＭ又はＲＯＭのように高速データストレージ又はデータアクセスのためにコンピュータの中央演算処理装置に直接アクセスできるコンピュータメモリであってもよく、又は補助記憶装置であってもよく、すなわち、コンピュータの中央演算処理装置に直接アクセスすることはできない、通常、より大きな記憶容量を有するハードディスク、磁気テープ又はディスク等であってもよい。
【００４３】
開始位置２１ａ、終了位置２１ｂ及び中間位置２１ｃは、コンピュータ又は他の機器が一片のデータを保存できる記憶域の一意的識別子を表すメモリ位置又はアドレスである。具体的には、メモリ３１がバイト毎にアドレス指定可能なメモリ（byte-addressable memory）である場合、各位置は、ストレージの１バイトを特定する。ワード毎にアドレス指定可能なメモリ又はベクトル毎にアドレス指定可能なメモリでは、位置の典型的な記憶ユニットは、バイトより大きく、例えば、１６ビットワード又はベクトルが用いられる。この記憶ユニットのサイズは、ベクトル長とも呼ばれる。
【００４４】
宛先データ２２’を格納する第２の又は宛先ストレージ範囲２２は、第２の又は宛先メモリ３２に含まれる。この宛先メモリ３２は、ベクトルベース方式又はベクトルベースシステムにおいて動作する如何なるアドレス指定可能なデータストレージデバイスであってもよい。換言すれば、宛先メモリ３２では、任意の位置にデータを書き込むことはできない。すなわち、データは、宛先メモリ３２のベクトル、すなわち、宛先メモリ３２における２つの所謂アラインされた位置の間にしか書き込むことができない。
【００４５】
宛先ストレージ範囲２２は、第１の位置又は開始位置２２ａから始まり、第２の位置又は終了位置２２ｂで終わり、開始位置２２ａ及び終了位置２２ｂのいずれかは、宛先メモリ３２のアラインされた位置又はアラインされていない位置である。
【００４６】
本発明では、宛先ストレージ範囲２２に書き込まれる宛先データ２２’は、ソースストレージ範囲２１のソースデータ２１’を用いて生成される。図２の矢印で示されるこの生成処理２３は、単純なコピー処理に制限してもよく、又はフィルタリング等のより複雑な処理であってもよい。このようなフィルタは、線形フィルタ、非線型フィルタ、データレート変更フィルタ又はデータ遅延フィルタ等の線形フィルタであってもよい。
【００４７】
ソースデータ２１’及び宛先データ２２’は、例えば、オーディオ及び／又はビデオデータであってもよい。ビデオデータは、固定された単一の画像のみから構成されていてもよく、又は連続する画像のシーケンスから構成されていてもよい。オーディオデータの場合、宛先データ２２’の生成処理において、オーディオストリームのサンプリングレートを変更してもよい。ビデオデータの場合、ソースデータ２１’からの宛先データ２２’の生成処理では、ビデオ画像のスケーリングを行ってもよい。
【００４８】
以下、図３〜図５を参照して、本発明に基づく書込方法を説明する。
【００４９】
図３及び図４に示す実施の形態は、宛先メモリ３２のアラインされていない位置である開始位置２２ａから始まる宛先ストレージ範囲２２への宛先データ２２’の書込又は保存を示している。すなわち、この宛先メモリ３２がベクトル長がＶのベクトルベースのシステムであるとすると、値Ｐの開始位置２２ａは、ベクトル長Ｖの倍数ではない。
【００５０】
本発明では、データは、所望のアラインされていない位置から始まる宛先ストレージ範囲２２には書き込まれず、この宛先ストレージ範囲２２を含む拡張宛先ストレージ範囲２４に書き込まれる。ここで、宛先ストレージ範囲２２の範囲外への書込が可能であるとする。拡張宛先ストレージ範囲２４は、好ましくは、宛先メモリ３２の１又は複数のベクトルから構成又は構築されるように選択される（２５、２６）。拡張宛先ストレージ範囲２４の境界、すなわち、開始位置２４ａ及び終了位置２４ｂは、アラインされた位置に一致する。
【００５１】
この実施の形態では、一組の予め定義されたアラインされた位置のうち、２つのアラインされた位置の間でのみ、宛先メモリ３２にデータを保存できる。本発明の変形例では、アラインされた位置で始まり、アラインされた又はアラインされていない位置で終わる宛先ストレージ範囲２２にデータを保存できる。この場合、拡張宛先ストレージ範囲２４の終了位置２４ｂは、好ましくは、宛先ストレージ範囲２２の終了位置２２ｂに対応し、アラインされた位置に一致する必要はない。
【００５２】
拡張宛先ストレージ範囲２４の開始位置２４ａは、宛先ストレージ範囲２２の前の最初のアラインされた位置であり、拡張宛先ストレージ範囲２４の終了位置２４ｂは、宛先ストレージ範囲２２の後ろの最初のアラインされた位置であることが好ましい。
【００５３】
宛先データ２２’の所望の開始位置２２ａの値Ｐは、以下のように分解できる。
【００５４】
Ｐ＝Ａ＋Ｄ
ここで、Ａは、拡張宛先ストレージ範囲２４の開始位置２４ａの値であり、Ｄは、アラインされていない位置２２ａの値Ｐと、アラインされた位置２４ａの値Ａとの間の差分である。値Ａは、アラインされた位置を表し、したがって、システムのベクトル長をＶとすると、Ｖの倍数になる。
【００５５】
従来の技術のように所望のアラインされていない位置２２ａから書き込まれる宛先データ２２’を生成することに代えて、本発明は、図４に示すように、ソースストレージ範囲２１を拡張されたソースストレージ範囲２７に拡張する（２８、２９）ことを提案する。そして、拡張されたソースストレージ範囲２７に基づき、アラインされた位置２４ａから直接書き込むことができる拡張宛先データ２４’を生成する。
【００５６】
したがって、拡張されたソースストレージ範囲２７の開始位置２７ａ及び終了位置２７ｂを判定する必要がある。この判定は、生成処理２３の特性、特に生成処理２３の前後のデータのサイズ間の関係を考慮に入れることによって実行され、この関係を、本明細書では、サイズ比率と呼ぶ。
【００５７】
例えば、生成処理２３において、２の係数を用いて、画像データを縮小する場合、又はオーディオデータのサンプリングレートを低減する場合、生成されるデータのサイズは、オリジナルデータのサイズの半分になる。この場合、サイズ比率は、１／２になる。遅延等の単純なフィルタリングでは、サイズ比率は、１になり、データレート変更フィルタの場合、サイズ比率は、１にはならない。
【００５８】
生成処理２３のサイズ比率は、幾つかの手法で判定できる。サイズ比率は、宛先データを生成する処理ユニット又は他の場所に保存してもよく、この場合、演算手段は、保存されている宛先データを読み出すことによって開始位置２７ａを判定できる。これに代えて、生成処理２３に検査データを供給し、生成処理２３の前後の検査データのサイズを比較することによってサイズ比率を判定してもよい。
【００５９】
演算手段又は適応化されたプリント回路は、入手したサイズ比率に基づいて、以下の式を用いて、拡張されたソースストレージ範囲２７の開始位置２７ａを判定することができる。
【００６０】
Ｎ＝Ｓ−Ｅ
ここで、Ｎは、拡張されたソースストレージ範囲２７の開始位置２７ａの値であり、Ｓは、ソースストレージ範囲２１の開始位置２１ａの値であり、Ｅは、拡張されたソースストレージ範囲２７の開始位置２７ａと、ソースストレージ範囲２１の開始位置２１ａとの間の距離である。
【００６１】
距離Ｅは、以下の式により求められる。
【００６２】
Ｅ＝Ｄ／ｒ
ここで、Ｄは、アラインされていない位置２２ａの値Ｐと、アラインされた位置２４ａの値Ａとの間の差分であり、ｒは、生成処理２３のサイズ比率である。
【００６３】
パラメータＤ及びｒは、ソースストレージ範囲２１及び拡張されたソースストレージ範囲２７に亘る定数値であってもよい。これに代えて、Ｄ及びｒは、更なるパラメータに従属していてもよい。例えば、Ｄ及びｒは、ソースストレージ範囲２１内及び／又は拡張されたソースストレージ範囲２７内の横座標又は位置ｘに従属していてもよい。
【００６４】
ソースデータ２１’が画像又はビデオデータである場合、パラメータＤ及びｒは、画像における水平位置及び垂直位置の関数であってもよく、これは、パラメータＤ及びｒがソースストレージ範囲２１内の横座標ｘの関数であることを意味する。ソースストレージ範囲２１内で明確に定義されるＤ（ｘ）及びｒ（ｘ）の値は、拡張されたソースストレージ範囲２７の全体に拡張され、これにより、値Ｎを算出できる。
【００６５】
例えば、ワイドスクリーンテレビジョンのパノラマアルゴリズム等の非線型換算の場合、水平位置の従属性を用いてもよい。
【００６６】
垂直位置の従属性は、例えば、デジタルカメラからの画像データの樽型歪み補正、又はピンクッションアルゴリズムの場合に重要である。樽型歪み補正は、光軸からの距離が長くなるに従って画像の寸法が減少する、幾何光学系の直線投写からの発散である樽形歪みが生じた場合に行われる。樽形歪みでは、画像の中心を通らないラインが、外側に、画像のエッジに向かって湾曲する歪みが視認される。ピンクッションアルゴリズムは、光軸からの距離が長くなるに従って画像の寸法が増大する、幾何光学系の直線投写からの発散であるピンクッション歪みを抑制するために実行され、ピンクッション歪みでは、画像の中心を通らないラインが、内側に、画像の中心に向かって湾曲する。
【００６７】
上述のように、幾つかの書込方式では、拡張されたソースストレージ範囲２７の開始位置２７ａだけがアラインされた位置である必要があり、したがって、終了位置２７ｂは、ソースストレージ範囲２１の終了位置２１ｂに対応する位置とすることができる。
【００６８】
一方、拡張されたソースストレージ範囲２７の開始位置２７ａ及び終了位置２７ｂの両方をアラインされた位置にしなくてはならない書込方式もある。終了位置２７ｂは、以下のように、サイズ比率を用いて、上述と同様の手法で判定できる。
【００６９】
Ｎ’＝Ｓ’＋Ｅ’＝Ｓ’＋Ｄ’／ｒ
ここで、Ｎ’は、拡張されたソースストレージ範囲２７の終了位置２７ｂの値であり、Ｓ’は、ソースストレージ範囲２１の終了位置２１ｂの値であり、Ｅ’は、拡張されたソースストレージ範囲２７と、ソースストレージ範囲２１との終了位置間の距離であり、Ｄ’は、拡張宛先ストレージ範囲２４と、宛先ストレージ範囲２２との終了位置間の距離である。
【００７０】
これに代えて、終了位置２７ｂの値Ｎ’は、以下の式に基づいて求めてもよい。
【００７１】
Ｎ’＝Ｎ＋（Ａ’−Ａ）／ｒ
ここで、Ａ’は、拡張宛先ストレージ範囲２４の終了位置２４ｂの値である。
【図面の簡単な説明】
【００７２】
【図１】従来のデータ書込の手法を説明する図である。
【図２】本発明に基づくベクトルベースのシステムにおけるデータ書込の実施の形態を説明する図である。
【図３】本発明に基づくベクトルベースのシステムのためのデータ書込方法の手順を説明する図である。
【図４】本発明に基づくベクトルベースのシステムのためのデータ書込方法の手順を説明する図である。
【図５】本発明に基づくベクトルベースのシステムのためのデータ書込方法の手順を説明する図である。
【図１】
0005196520.tif 000002
【図２】
0005196520.tif 000003
【図３】
0005196520.tif 000004
【図４】
0005196520.tif 000005
【図５】
0005196520.tif 000006