(57)【要約】  可変長符号化方式により符号化されたデータストリームを生成するための、コンピュータプログラム製品を含む方法及び装置である。複数のコードワードを含むデータストリームのコードワードは、可変長符号化方式に従って符号化される。分割マーカが、データストリーム内の符号化されたデータブロックの間に挿入される。【特許請求の範囲】
【請求項１】
可変長符号化方式により符号化されるデータストリームを生成する方法であって、前記方法は、
複数のコードワードを含む一つのデータストリームのコードワードを可変長符号化方式に従って符号化するステップと、
分割マーカを、データストリーム内の符号化コードワードの間に挿入するステップと
を含む方法。
【請求項２】
分割マーカを挿入する前記ステップは、少なくとも１６個の連続するバイナリ１を特定のコードワードの後に挿入することにより行なわれる、請求項１記載の方法。
【請求項３】
分割マーカを挿入する前記ステップは、少なくとも１６個の連続するバイナリ０を特定のコードワードの後に挿入することにより行なわれる、請求項１記載の方法。
【請求項４】
特定のコードワードは、一つのデータブロックの末尾のコードワードである、請求項２ないし３のいずれか一項に記載の方法。
【請求項５】
分割マーカを挿入する前記ステップは、少なくとも１６個の連続するバイナリ１を、２つ以上の特定のコードワードの間に挿入することにより行なわれる、請求項１ないし２のいずれか一項に記載の方法。
【請求項６】
可変長符号化方式により符号化されるデータストリームを生成する方法であって、前記方法は：
複数のデータブロックを含む一つのデータストリームのデータブロックを可変長符号化方式に従って符号化するステップと、
分割マーカを、データストリーム内の符号化データブロックの間に挿入するステップと、
を含む、方法。
【請求項７】
分割マーカを挿入する該操作では更に、分割マーカを、一つの先行ブロックが符号化された後の、且つ次の符号化データブロックが該先行データブロックに付加される前の一つの時点で挿入する、請求項６記載の方法。
【請求項８】
分割マーカを符号化する前記ステップ、及び分割マーカを挿入する前記ステップは、ハードウェアによって行なわれる、請求項１ないし７のいずれか一項に記載の方法。
【請求項９】
マーカをデータストリームに挿入する前記ステップは、可変長符号化方式により符号化されているデータストリームに関連付けて行なわれる、請求項１ないし８のいずれか一項に記載の方法。
【請求項１０】
データブロックを符号化する該ステップは、ＪＰＥＧ規格に従って行なわれ、各データブロックは、ＪＰＥＧ規格に準拠した一つのデータユニットに対応する、請求項６ないし８のいずれか一項に記載の方法。
【請求項１１】
分割マーカは、少なくとも１６個の連続するバイナリ１のバイナリシーケンスである、請求項６ないし１０のいずれか一項に記載の方法。
【請求項１２】
更に、８個のバイナリ０を分割マーカの前に挿入するステップを含む、請求項１１記載の方法。
【請求項１３】
更に、１セットの８ビットを分割マーカの前に挿入するステップを含み、前記セットの８ビットは、少なくとも１ビットのバイナリゼロ値を含み、前記少なくとも１ビットのバイナリゼロ値は、前記セットの８ビットの所定の位置に配置される、請求項１１記載の方法。
【請求項１４】
前記少なくとも１ビットのバイナリゼロ値の所定の位置は、該セットの８ビットの最下位ビットの位置である、請求項１３記載の方法。
【請求項１５】
分割マーカは、少なくとも１６個の連続するバイナリ０のバイナリシーケンスである、請求項６ないし１０のいずれか一項に記載の方法。
【請求項１６】
更に、８個のバイナリ１を分割マーカの前に挿入するステップを含む、請求項１５記載の方法。
【請求項１７】
分割マーカは、８個の０のバイナリシーケンスの後に少なくとも１６個の連続するバイナリ１が続く構成である、請求項１ないし１０のいずれか一項に記載の方法。
【請求項１８】
可変長コードのストリーム内の特に注目される一つのコードワードに関連するデータを取り出す方法であって、
可変長コードのストリーム内の所定のマーカの位置を識別するステップと、
可変長コードのストリーム内の特に注目される該コードワードの開始位置を計算するステップと、
特に注目される該コードワードに関連するデータを取り出すステップと
を含む方法。
【請求項１９】
更に、
可変長コードのストリーム内の少なくとも一つの更に別の所定のマーカの位置を識別するステップと、
可変長コードのストリーム内の特に注目される前記少なくとも一つの更に別のコードワードの開始位置を計算するステップと、
特に注目される少なくとも一つの更に別のコードワードに関連するデータを取り出すステップと
を含む、請求項１８記載の方法。
【請求項２０】
特に注目されるコードワードに関連するデータを取り出すステップでは、データストリーム内の特に注目されるコードワードの計算された開始位置を取り出し、この開始位置を、可変長コードのストリームの特徴量のリストに挿入する、請求項１８ないし１９のいずれか一項に記載の方法。
【請求項２１】
特に注目されるコードワードに関連するデータを取り出すステップでは、特定のコードワードで表わされる値を取り出す、請求項１８ないし１９のいずれか一項に記載の方法。
【請求項２２】
可変長コードのストリームは、画像の圧縮表現であり、特に注目されるコードワードは、可変長コードのストリーム内の一つのデータユニットのＤＣ係数である、請求項２１記載の方法。
【請求項２３】
更に、前記所定のマーカを可変長コードのストリームから削除するステップを含む、請求項１８ないし２２のいずれか一項に記載の方法。
【請求項２４】
マーカは、少なくとも１６個の連続するバイナリ１のバイナリシーケンスである、請求項１８ないし２４のいずれか一項に記載の方法。
【請求項２５】
所定のマーカの位置を識別するステップでは更に、可変長コードのストリーム内にあってマーカの隣に配置される所定のシンボルを識別し、所定のシンボル又は所定のマーカの一方から、所定のマーカ又は所定のシンボルへの移行部分は、マーカの位置として識別される、請求項１８ないし２４のいずれか一項に記載の方法。
【請求項２６】
所定のシンボルはエンドオブブロックシンボル、ＥＯＢである、請求項２５記載の方法。
【請求項２７】
特定のコードワードの可変長コードのストリーム内の開始位置の計算は、所定のマーカの位置、及びマーカの既知の長さに基づいて行なわれる、請求項２５ないし２６のいずれか一項に記載の方法。
【請求項２８】
可変長コードのストリームは、複数のコードワードを含むデータブロックを含み、特に注目されるコードワードは、一つのデータブロックの先頭のコードワードであり、これにより、特に注目されるコードワードの開始位置の計算が、前記データブロックの開始位置の計算に一致するようになる、請求項１８ないし２７のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可変長符号化方式により符号化されたデータストリームを生成するための、コンピュータプログラム製品を含む方法及び装置に関し、更に可変長コードのストリーム中におけるコードワードの位置を識別する方法に関する。
【背景技術】
【０００２】
写真、静止画像、グラフィックスなどのような今日の画像は、ディスプレイを有するあらゆる電子デバイスで普通に閲覧される。しかしながら、ディスプレイで画像を閲覧できるだけでは十分ではなく、撮影画像が大きくなるにつれ、画像を合理的な時間で表示できることが重要である。画像をディスプレイに表示する電子デバイスのユーザは、ほとんどの場合、画像のビューを変化させることができることに関心を持つ。ユーザが要求する幾つかの共通の操作は、画像をズームインして画像の細部を閲覧すること、ズーム画像をパンして特徴を追跡するか、又は単に細部の概略図を入手し、画像を回転させてディスプレイでの閲覧を容易にすることなどである。更に、このような電子デバイスのユーザが処理する画像の解像度は高くなっており、すなわち一つの画像を定義するピクセルの数が増加している。
前記電子デバイスは、例えば携帯電話機、携帯情報端末、パームトップ、又は画像処理の点で処理能力が低い他のデバイスとすることができる。例えば、画像を閲覧するためのディスプレイを有する多数の前記電子デバイスは、連続して提示されるビューの間で頻繁に発生する悩ましい遅延を伴うことなく、ズーム、パンなどの操作を行なうために十分な処理能力を持っていない。この結果、画像の連続的なズームイン又はズームアウトは、長い画像間遅延を伴って提示される複数の画像と感じられる。従って、連続的にズームしているという実感が得られず、ユーザにイライラ感を生じさせる。この結果、ユーザによる処理間違い、又は入力間違いが発生する恐れもある。
【発明の概要】
【０００３】
この問題を解決する一つの共通の方法は、デバイスの処理能力を高めること、又はユーザが連続的な流れを感じることを期待するような操作を回避することである。
【０００４】
本発明の目的は、可変長符号化ストリーム及び／又は画像の操作性を向上させ、このようなストリーム及び／又は画像を連続操作するユーザの体感を向上させること、並びに、撮影画像を復号化してスクリーンに映すために要する時間を短くすることである。
本発明の一態様によれば、上の目的は、可変長符号化方式により符号化されたデータストリームを生成する方法により達成される。本方法は、複数のコードワードを含む一つのデータストリームのコードワードを可変長符号化方式に従って符号化するステップと、データストリーム内の符号化コードワードの間に分割マーカを挿入するステップとを含む。
【０００５】
分割マーカを挿入することにより、可変長コードのデータストリームへの部分的アクセスが容易になる。例えば、可変長符号化により符号化された画像の任意エリアを表わす画像データへのアクセスを高速化することが可能になる。更に、マーカによって、可変長コードのデータストリーム内のデータのデータ形成部分に、アクセス対象のデータよりも前に配置される全ての単一コードを復号化する必要なくアクセスすることができる。これにより、時間及び処理容量の両方を節約することができる。同じ利点が、マーカを使用して、同じ転送媒体又は記憶媒体を共有する個別データストリーム、例えば多重化データストリームを示す場合に得られる。
一実施形態では、前記分割マーカを挿入するステップは、少なくとも１６個の連続するバイナリ１を特定のコードワードの後に挿入することにより行なわれる。別の実施形態では、分割マーカを挿入するステップは、１６個の連続するバイナリ１ではなく、１６個の連続するバイナリ０を挿入することにより行なわれる。１６個の連続するバイナリ１又はバイナリ０を含むマーカを使用することにより、当該マーカのサーチを、高速且つ効率的に行なうことができる。この理由は、マーカをバイトレベルで、すなわち８ビット単位で検出することが可能になるからである。バイトレベルでの検出は、可変長コードのデータストリーム内のマーカの一部、すなわち１６個の連続するバイナリ１又は０が、必ずバイナリ１又はバイナリ０のみを含むバイトによって表わされることにより可能である。
【０００６】
別の実施形態によれば、特定のコードワードは、一つのデータブロックの末尾のコードワードである。マーカにより一つのデータブロックの末尾と別のデータブロックの先頭とを識別することにより、個々のデータブロックへのアクセスが容易になり、実行速度が有意に高速化される。
更に別の実施形態によれば、前記分割マーカを挿入するステップは、少なくとも１６個の連続するバイナリ１を、２つ以上の特定のコードワードの間に挿入することにより行なわれる。
【０００７】
一実施形態では、可変長符号化方式により符号化されたデータストリームを生成する方法は、複数のデータブロックを含む一つのデータストリームのデータブロックを可変長符号化方式に従って符号化するステップと、データストリーム内の符号化データブロックの間に分割マーカを挿入するステップとを含む。
上に説明した実施形態の一つに関して述べたように、分割マーカを挿入することによって、可変長コードのデータストリームへの部分的アクセスが容易になる。例えば、可変長符号化により符号化された画像の、任意エリアを表わす画像データへのアクセスを高速化することが可能になる。更に、マーカによって、可変長コードのデータストリーム内のデータの一部を形成するデータに、アクセス対象のデータよりも前に配置される全ての単一コードを復号化する必要なくアクセスすることができる。これにより、時間及び処理容量の両方を節約することができる。同じ利点が、マーカを使用して、同じ転送媒体又は記憶媒体を共有する個別データストリーム、例えば多重化データストリームを示す場合に得られる。更に、マーカで一つのデータブロックを識別することにより、個々のデータブロックへのアクセスが容易になり、実行速度が有意に高速化される。
【０００８】
一実施形態によれば、分割マーカを挿入する操作は更に、一つの先行ブロックが符号化された後且つ次の符号化データブロックが先行データブロックに付加される前の一つの時点で分割マーカを挿入することを含む。
別の実施形態では、前記分割マーカを符号化するステップ、及び前記分割マーカを挿入するステップをハードウェアによって行う。これにより、マーカの挿入が高速化される。
【０００９】
一実施形態では、前記データストリームにマーカを挿入するステップは、可変長符号化方式により符号化されているデータストリームに関連付けて行なわれる。可変長コードに符号化されているデータストリームに関連付けてマーカを挿入することにより、ストリーム全体を復号化することによりデータストリームにマーカを挿入する場合よりも、符号化の実行が有意に高速化される。
別の実施形態によれば、データブロックの符号化はＪＰＥＧ規格に従って行なわれ、各データブロックはＪＰＥＧ規格に準拠した一つのデータユニットに対応する。ＪＰＥＧデータブロックを含むデータストリームに前記マーカを挿入することにより、符号化データストリームで表わされる画像の特定部分へのアクセスが高速化され、且つ当該アクセスに必要な処理容量が減少する。従って、画像の一部に対する操作が容易に行われる。
【００１０】
別の実施形態によれば、本方法は、分割マーカがバイナリ１を含む場合に８個のバイナリ０を分割マーカの前に挿入するステップ、又は分割マーカがバイナリ０を含む場合に８個のバイナリ１を分割マーカの前に挿入するステップを含む。これらのシーケンスのうちのいずれか又は他のいずれかの既知のシーケンスを分割マーカの前に挿入することにより、分割マーカのデータストリーム内の正確な開始ポイントの識別が容易に行われる。分割マーカの前に挿入されるシーケンスは、別の構成では１セットの８ビットとすることができ、前記８ビットのセットは、少なくとも１ビットのバイナリゼロ値を含み、前記少なくとも１ビットのバイナリゼロ値は、前記８ビットのセットの所定の位置に配置される。更に、前記少なくとも１ビットのバイナリゼロ値の所定の位置は、８ビットのセットの最下位ビットの位置とすることができる。
【００１１】
本発明の別の態様によれば、上の目的は、可変長コードのストリーム内の特に注目される一つのコードワードに関連するデータを取り出す方法により達成される。本方法は、可変長コードのストリーム内の所定のマーカの位置を識別するステップと、可変長コードのストリーム内の特に注目されるコードワードの開始位置を計算するステップと、特に注目されるコードワードに関連するデータを取り出すステップとを含む。
所定のマーカを可変長コードのデータストリーム内で使用して、データストリーム内の注目位置を識別することにより、データストリーム全体を復号化して同位置を検出しようとする場合よりも、この位置へのアクセスに必要な時間と処理容量とが低減される。例えば、可変長符号化により符号化された画像の任意エリアを表わす画像データへのアクセスを高速化することが可能になる。
【００１２】
更に、マーカによって、可変長コードのデータストリーム内に位置するデータに、アクセス対象のデータよりも前に配置される全ての単一コードを復号化する必要なくアクセスすることができる。同じ利点が、同じ転送媒体又は記憶媒体を共有する個別データストリーム、例えば多重化データストリームを示すためにマーカを使用する場合に得られる。
特定の実施形態によれば、本方法は更に、可変長コードのストリーム内の少なくとも一つの更に別の所定のマーカの位置を識別するステップと、可変長コードのストリーム内の特に注目される前記少なくとも一つの更に別のコードワードの開始位置を計算するステップと、特に注目される少なくとも一つの更に別のコードワードに関連するデータを取り出すステップとを含む。複数のマーカが識別されてデータストリームの復号化に使用されるので、当該プロセスに必要な時間及び処理能力が共に低減される。
【００１３】
別の実施形態では、特に注目されるコードワードに関連するデータを取り出すステップは、データストリーム内の特に注目されるコードワードの計算された開始位置を取り出すこと、及び可変長コードのストリームの特徴量のリストにこの開始位置を挿入することを含む。特に注目されるコードワードの位置を取り出し、この位置を保存することにより、データストリームをマッピングすることができ、それによりデータストリームの一部への将来のアクセスを大幅に高速化することができる。
更に別の実施形態によれば、特に注目されるコードワードに関連するデータを取り出すステップは、特定のコードワードで表わされる値を取り出すことを含む。この実施形態によって、使用頻度が更に低い特定の値へのアクセスが高速化される。例えば、保存されないと推測される画像に対して操作を行なう場合に、特定の値へのアクセスが高速化される。
【００１４】
一実施形態では、可変長コードのストリームは一つの画像の圧縮表現であり、特に注目されるコードワードは、可変長コードのストリーム内の一つのデータユニットのＤＣ係数である。これにより、撮影画像の縮小版の高速生成が容易になる。
他の幾つかの実施形態では、本発明の第１の態様に関連して述べたマーカに対応するマーカ、及び本発明の第１の態様に関連して述べたマーカに先行するコード配列は、本発明の第２の態様による方法に使用される場合、ほぼ同じ利点をもたらす。
【００１５】
更に別の実施形態では、所定のマーカの位置を識別するステップは更に、可変長コードのストリーム内にあってマーカの隣に配置される所定のシンボルを識別することを含み、所定のシンボル及び所定のマーカの、一方から他方への移行部分がマーカの位置として識別される。この実施形態を実行することにより、所定のマーカの位置の決定が容易になる。
別の実施形態によれば、所定のシンボルはエンドオブブロックシンボル、ＥＯＢである。
【００１６】
更に別の実施形態では、特定のコードワードの可変長コードのストリーム内の開始位置の計算は、所定のマーカの位置、及びマーカの既知の長さに基づいて行なわれる。
別の方法によれば、可変長コードのストリームは複数のコードワードを含むデータブロックを含み、特に注目されるコードワードは一つのデータブロックの先頭のコードワードであるので、特に注目されるコードワードの開始位置の計算が、前記データブロックの開始位置の計算に一致する。マーカにより、一つのデータブロックの末尾、及び別のデータブロックの先頭を識別することにより、個々のデータブロックへのアクセスが容易となり、その実行が有意に高速化される。
【発明を実施するための形態】
【００１７】
本発明は、可変長符号化（ＶＬＣ）方式又はエントロピー符号化方式により符号化されたデータブロックのストリームのインデックス作成の高速化を容易にする方法、装置、及びコンピュータプログラム製品に関する。本発明の一実施形態によれば、インデックス作成の高速化は、データストリーム内に連続的に配置されるデータブロックの間にデータブロック分割マーカを挿入することにより行なうことができる。本出願では、データストリームとは、同じデータファイルの一部であることにより、ネットワークを介して送信される同じデータメッセージの一部であることにより、互いに対して関連付けられるデータを意味し、このようなメッセージは、ストリーミングオーディオ又はストリーミングビデオ、或いはこれらの組み合わせのような同じ情報ストリームの一部であることにより、異なるパッケージに分割することができるか、又はネットワークに応じて一つの連続ストリームとして送信することができる。
本発明の種々の実施形態は、データブロックが、ＶＬＣ方式又はエントロピー符号化方式、例えばハフマン符号化、算術符号化などにより符号化される、あらゆる種類のデータストリームに適用することができる。これらの符号化方式は情報を圧縮するように設計されており、これらの符号化方式を使用する一つの効果は、符号化データストリーム内のコードワードとも呼ばれる全てのシンボルが、同じコード長を有する訳ではないことである。
【００１８】
しかしながら、コードの方式は、一つのシンボルの末尾と、別のシンボルの先頭とを認識するために、ストリーム内の全ての先行するシンボルを処理することが必要なものである。
本出願に関連して、シンボルとは、ユニットの集合の中の一つのユニットを意味し、この場合各ユニットは、それぞれに割り当てられた個別ビットコードを有する。本出願では、データブロックとは、相対的に長いデータストリームの一部、例えば画像データの一部、オーディオストリームの一部、画像ストリームの矩形画像ブロックなどを表わす何らかのデータを意味する。
【００１９】
一実施形態では、２つ以上の可変長符号化ストリームを、更に特殊なルールに従って、例えば第１信号のｎ個のシンボル、及び第２信号のｍ個のシンボル、更には第３信号のｋ個のシンボルを交互に並べることにより混合することが望ましい。
これにより、シンボルの全てを処理することにより異なる信号の間の境界を検出しなければならないため、受信側エンドで信号を分離する際に大きな困難が生じる。
【００２０】
別の実施形態では、可変長符号化ストリーム内において、迅速に特定のシンボルを検出するか、又は例えばｎ番目ごとのシンボルを検出することも望ましい。このためには普通、シンボルの全てを処理することにより所望のシンボルの位置を検出することも必要である。
更に別の実施形態では、２つ以上の信号を単一の通信チャネルで送信できることが望ましい。これは普通、２つ以上の信号を交互に並べて、第１信号のｎビットをまず送信し、次に第２信号のｍビットを送信し、次に第１信号のｂビットを送信するなどすることにより行なうことができる。
【００２１】
本発明は、可変長符号化プロセスにおいて生成されるストリームに挿入することができる特殊マーカを利用することにより、可変長符号化ストリームを使用する際の上述の問題を解決する。これらのマーカを使用して、データストリーム内の特定シンボルを検出するプロセスを高速化することができる。更に、本発明は、前記マーカを効率的な方法で削除することにより、一又は複数の元のストリームを作成又は再生する方法を紹介する。
【００２２】
前記マーカの利用例
可変長符号化ストリームは、異なるビット長のシンボルにより構成される。以下のシンボルは、例えば以下のコードワードによって表わすことができる：
A=10
B=110
C=111
D=0000
E=0001
次のシンボル「CBCDBEDCABCBECB」に対応するビットストリームは以下のようになる。
11111011 10000110 00010000 11110110 11111000 01111110
【００２３】
ビットストリームを復号化して元のシンボルにするために、ビットストリームを左から復号化し、正しいシンボルが生成されるまでビットを読み出す。ビットストリーム全体を復号化することにより、シンボルの間の境界の位置を理解することができる。
2010519806.tif 000002
このアプローチの問題は、特に多数のシンボルを処理する必要がある場合,
ソフトウェアで実行するのに非常に長い時間を要することである。
１６進数で記述される同じビットストリームは以下の表現に対応する。
FB 86 10 F6 F8 7E
【００２４】
本発明の種々の実施形態によれば、ビットマーカ又はシンボル分割マーカを利用して、特定マーカの検出を高速化することができる。
ビットマーカは、８の整数倍であり且つ少なくとも１６ビット長である長さの、一連のバイナリ１により構成することができる。最も注目すべきマーカは、１６個のバイナリ１、すなわち11111111 11111111により構成される。
【００２５】
ストリーム内においてシンボル「Ａ」の後ろに境界をマークしようとする場合、この操作は、ストリーム内のシンボル「Ａ」の後ろに１６個のバイナリ１を挿入することにより行なわれる。
2010519806.tif 000003
従って、結果として得られるビットストリームは次のようになる。
1111101110000110000100001111011111111111111111101111100001111110
１６進数で記述される同じビットストリームは以下のようになる。
FB 86 10 F7 FF FE F8 7E
【００２６】
ここで、１６個のバイナリ１がストリームに書き込まれたので、マーカは常に、後に「00」が絶対に続かない少なくとも一つの「FF」バイトとなる。これはすなわち、自然に発生するFFコードを「FF00」でマークして、マーカではないことを示すことができることを意味する。発生する他の全てのFFが、本発明の種々の実施形態によるマーカであることが保証される。
これは、連続バイトとしてビットストリーム内にバイトFFの位置を容易に特定することができ、次いで簡単な算術論理を使用することにより、マーカを削除し、元のストリームを復元することができることを意味する。
【００２７】
マーカの前のバイトまでのバイトを直接コピーすることができるだけでなく、マーカの１バイト後までのバイトをコピーすることができる。残りのタスクは、バイナリ１を挿入することにより分割され且つ括弧でマークされたバイトを復元することである。
FB 86 10 (F7 FF FE) F8 7E
バイナリ値で記述されたF7 FF FEは以下のようになる。
2010519806.tif 000004
又は、更に一般的に、
2010519806.tif 000005
【００２８】
挿入されたバイナリ１は、これらをまとめて連結するとビットマスクと見なすことができるので、挿入されたビットを削除する操作は非常に簡単である。
元のバイト = B1 & B3 = abcde111 & 11111fgh = abcdefgh
結果として得られるストリームは次のようになる。
FB 86 10 (F7&FE) F8 7E = FB 86 10 F6 F8 7E
【００２９】
１６個の１の前又は後のシンボルが既知であり、且つ当該シンボルが少なくとも一つのゼロを含む場合、マークされたシンボルの間の境界のビット位置、すなわちマーカの位置を検出するのは非常に簡単である。マーカの位置は、マーカが削除されている場合には隣接シンボルの位置である。
これは、「FF」の左側の最初のゼロを検出することにより、ゼロを含むシンボルの外観及び／又はコードを認識し、次に当該シンボルの末尾の位置を計算することにより行なうことができる。
これを可能にする別の方法は、既知のシンボルを有する全ての可能なエントリが、ビット位置（ｐ）をテーブル内の値で入力される場合、「FF」の前のバイトに対応する２５６個のエントリのルックアップテーブルを使用することにより行うことである。
【００３０】
ルックアップ技術を示す実施例
１６個の１の前の既知のシンボルが10であると仮定すると、バイト１（Byte 1)は以下に示す値しか採ることができず、ｘはバイナリ１及びバイナリ０の全ての順列であり、ｐは１６個の１の最初のビットを示している。
Byte1    Byte2
xxxxxx10 p1111111, 64個の順列, pos = 8
xxxxx10p 11111111, 32個の順列, pos = 7
xxxx10p1 11111111, 16個の順列, pos = 6
xxx10p11 11111111,  8個の順列, pos = 5
xx10p111 11111111,  4個の順列, pos = 4
x10p1111 11111111,  2個の順列, pos = 3
10p11111 11111111,  1個の順列, pos = 2
0p111111 11111111,  1個の順列, pos = 1
上の実施例では、F7（11110111）を調べると、pos=6, (111101p11＝＝111101111）が得られる。
【００３１】
シンボルが既知ではない場合、例えば８ビット長の合計長さを有することが好ましい既知のコード（Ｋ）を必ず挿入することができるので、マークされたシンボルの間の境界の位置を特定することが必要なシンボルを認識する一方で、当該コードを容易に削除することができる。
この目的のために使用するのに非常に良いコードは、「00000000」である。その理由は、マーカを削除するときにこのコードをビットマスクとして使用することができるからである。すなわち、
K = 0000 0000
【００３２】
このような変形ストリームは以下のように現われる。
2010519806.tif 000006
バイト単位で並べると、変形ストリームは次のように現われる。
11111011 10000110 00010000 11110000 00000111 11111111 11111110 11111000 01111110
１６進数で表すと、このストリームは以下のようになる。
FB 86 10 (F0 07 FF FE) F8 7E
【００３３】
上記からFFを検出することができ、FFの前に位置し且つ既知のシンボルＫを表わすバイトを検出することにより、シンボルＫの末尾を理解することができるので、遡って計算することにより、Ｋの前に位置し且つマークされたシンボルの間の境界を表わすシンボルの末尾を検出することができる。
シンボルＫは、当該シンボルの最初のバイナリゼロを右側から数えて最初の位置に有するので、シンボルＫの前のシンボルの末尾は、検出されたバイナリゼロの左側まであと７個の位置になる。
F0 07 FF FE = 11110000 00000111 11111111 11111110
【００３４】
次に、FFの左側に最初に出現し且つ以下のｘでマークされたバイナリゼロを検出することにより、削除を行なうことができる。
11110000 0000x111 11111111 11111110
当該出現が検出された後、検出されたバイナリゼロの左側の７ビットから始まる、ｒでマークされた次の２４ビットを削除する。
11110rrr rrrrrrrr rrrrrrrr rrrrr110
【００３５】
ここで、４バイトをまとめて１バイトにすることができ、以下の結果が得られる。
1111110 = F6
よって、結果として得られた合計バイトアレイは元のストリームになる。
FB 86 10 F6 F8 7E
【００３６】
上記マーカの削除は、ゼロであるＫがマスクとして機能できるので、何らかの簡単な算術論理により容易に行なわれる。
2010519806.tif 000007
B1 = (B1|B2)&B4 = (F0|07)&FE = F7&FE = F6
【００３７】
２つ以上の信号を同じチャネルで送信する場合に前記マーキング法を使用する実施例を以下に説明する。
一つのチャネルのみで送信する必要のある以下の２つのビットストリーム（Stream）について考察する。
2010519806.tif 000008
【００３８】
１６進数で表すと、これは以下のようになる。
B7 0C 21 7C 18 7E
2010519806.tif 000009
１６進数で表すと、これは以下のようになる。
B0 87 1D 6B 85 82
【００３９】
これらのストリームをこの実施例では交互に混ぜて、ストリームＡの５つのコードワードを送信し、次にストリームＢの８つのコードワードを送信し、次にストリームＡの５つのコードワードを送信するなどする。
2010519806.tif 000010
結果としてバイナリストリームは以下のようになる。
101101110000110101100001000011100011101000010000
101111101101011100001011000001000001100001111110
１６進数で表すと以下のようになる。
B7 0D 61 0E 3A 10 BE D7 0B 04 18 7E
【００４０】
受信側は次に、ＶＬＣシンボルの全てを処理することにより２つの元のストリームを再現する必要がある。
本発明の実施形態では、２つのストリームを更に効率的な方法で分離することを可能にするために特殊マーカを利用する。普通、マーカを挿入する方式は、以下の実施例におけるよりもずっと少ない頻度でしか行なわれないので、非常に大きいオーバーヘッドは必要ない。
2010519806.tif 000011
B7 0C 01 FF FE 21 7C 01 FF FE 18 7E
2010519806.tif 000012
B0 87 1D 00 7F FF FB 85 82 00 FF FF
【００４１】
次に、第１ストリームをFFの位置まで出力し、次に第２ストリームをFFの位置まで出力し続け、次に第１ストリームを次のFFの位置まで出力し続けるなどとすることにより、ストリームをFFマーカの位置で交互に混ぜることができ、これによって以下の送信ストリームが得られる。
B7 0C 01 FF B0 87 1D 00 7F FF FE 21 7C 01 FF EB 85 82 00 FF FF FE 18 7E
次に、受信側では、ストリームを分離するために、ストリームをFFで分離し、上のプロセスを逆に進める。
ストリーム(Stream)Ａ: B7 0C 01 FF     FE 21 7C 01 FF     FE 18 7E
ストリーム(Stream)Ｂ:      B0 87 1D 00 7F FF     EB 85 82 00 FF FF
【００４２】
次に、各ストリームを処理し、簡単な算術論理によりマーカを削除することができる。
B = (b1|b2)&b4
ストリームＡ: B7 0C 01 FF FE 21 7C 01 FF FE 18 7E
ストリームＢ: B0 87 1D 00 7F FF EB 85 82 00 FF FF
上のストリームは以下のようになる。
ストリームＡ: B7 (0C|01)&FE 21 (7C|01)&FE 18 7E = B7 0C 21 7C 18 7E
ストリームＢ: B0 87 1D (00|7F)&EB 85 (82|00)&FF = B0 87 1D 6B 85 82
これらのストリームが元のストリームである。受信側における分離演算は、いかなるビット演算又は可変長符号化も行なうことなく完全に行なわれた。
【００４３】
更に別の実施形態によれば、シンボルＫは、所定のゼロを所定のビット位置に有する任意の７ビット数値とすることができる。上の説明を拡張し、所定のゼロの位置を認識することによりマーカの先頭を検出することができる。実施形態のうちの一つによれば、ゼロは最下位ビットであり、最上位の７ビットを他のデータ、例えばゼロから１２７まで増加する数字に使用することができる。このようにして、１２８個までのマークされたコードワードを、単にバイトストリームを検出することによりスキップすることが容易になる。
【００４４】
本発明の一態様によれば、上に説明した汎用方法を適用して、ＪＰＥＧストリームの処理に使用することができる。既存のＪＰＥＧエンコーダを最小限の変更を加えて修正することにより、ＤＵの末尾を示す特殊マーカを含む互換性のないＪＰＥＧデータの別のストリームを生成する方法について、以下に説明する。この場合、互換性のないＪＰＥＧデータを分析することにより、各ＤＵの先頭をマッピングすることができ、規格に準拠しないマーカを、不揮発性メモリに記憶しながら削除することができる。
更に、コードワードが、復号化することにより既に符号化されているユニットを生成することができる一連のビットを意味することに留意されたい。全てのコードワードが同じ長さである訳ではない。この事実に関係なく、これらのコードワードは、厳密に単一シンボルの可変長表現を意味する訳ではない。このような更に複雑なコードワードの例が、ｊｐｅｇストリームに使用されるコードワードである。ここに定義されるＪＰＥＧコードワードにより、非ゼロ数が後に続く連続したゼロが符号化され、零ランレングスを表現するシンボルと非ゼロ数の絶対値との組み合わせの後に、当該絶対値に基づいた数の最下位ビットが続く。
【００４５】
よって、非ゼロ数又はそれらのサブセットのうちのいずれかが後に続く、連続したゼロに対応して生成される連続ビット全体は、本発明の定義によるコードワードとして解釈することができる。
コードワードとして解釈されるべき他のサブセットは、最下位ビットを表わすビット、又は非ゼロ数の絶対値と、零ランレングスを表現するシンボルとの組み合わせである。
【００４６】
ＪＰＥＧストリームは、６４個の係数の複数のデータユニット（ＤＵ）から成る。これらの係数は、可変長のハフマン符号化シンボルによって表わされ、普通、最後の係数はゼロであり、エンドオブブロック（ＥＯＢ）シンボルを使用して、末尾にゼロを有するデータユニット（ＤＵ）を終了させる。
幾つかのアプリケーションでは、ＤＵのビット位置を認識することが非常に有用である。
【００４７】
１）小型スクリーン上への大規模ＪＰＥＧ画像の瞬時の表示。ＤＵ位置が既知である場合、一つのブロックの最初の係数のみを復号化し、これにより元の画像の縮小版を生成する処理が非常に迅速に行なわれる。
２）ＤＵ位置が既知である場合、いずれのデータユニット（ＤＵ）にもランダムにアクセスすることができる。絶対ＤＣ係数も既知である場合、先行ブロックを復号化する必要なくＪＰＥＧの一領域を復号化することができる。
【００４８】
本方法により、ハードウェアに格納することができるエンコーダコンポーネントを変更し、一つのブロックの末尾を示すマーカを生成することができ、これらのマーカを受信側ＳＷコンポーネントが使用することによりＤＵ位置を検出することができ、その後、マーカを容易に削除することができるので、ＤＵ位置データベース、及び／又は符号化画像の縮小版を高速に生成することができる。符号化は、速度問題のためにＨＷで行なってもよい。これは、ＪＰＥＧのデータストリームのデータユニットの開始位置を保存するための余分のメモリを必要とすることなく、標準ＪＰＥＧ  ＨＷの変更を可能にする簡単なアプローチである。余分のメモリは、非常に高価な２＊ｎｕｍｂｅｒ＿ｏｆ＿ｄａｔａ＿ｕｎｉｔｓ（１６ビット）＝＞２ｍｐｉｘ＝６００００  ＤＵ’ｓ＝＞１２０ｋｂメモリとする必要がある。これは、当該メモリが、大きなシリコン面積を占有する待機状態のないメモリであることが好ましいためである。
【００４９】
以下の記述は、このようなＪＰＥＧデータの符号化及び復号化の両方に関する。
【００５０】
エンコーダ：
１）ＥＯＢが必ず生成されるようにＨＷを変更する。別の構成として、精巧なＱテーブルを使用して、ＨＷが必ず末尾にＥＯＢを付加することを保証する。ゼロが必ず量子化係数ｎｒ６４に挿入される場合、ハードウェアはＥＯＢを挿入しなければならない。
２）各FFが、元のハフマン符号化ストリームに現われる場合に、末尾「00」を必ず挿入する。これは既に、有効なＪＰＥＧストリーム内で行なわれている。
３）各ＤＵ（又は、ＥＯＢ）の後に、複数の８であって、但し少なくとも１６個のバイナリ１を付加する。
【００５１】
これは、ハフマンテーブルを変更して、ＥＯＢシンボルを、１２個の末尾バイナリ１が付加された普通の２〜４バイトシンボルを含むように変更し、ＤＣテーブルを、実際のＤＣシンボルの前に４個の１を含むように変更することにより行なうこともできる。次に、エンコーダに、ビットストリーム内のＥＯＢを必ず符号化させる。これは、ＥＯＢとＤＣとの間に、１６個のバイナリ１のマーカが必ず含まれることを意味する。
この実施形態の一実施例として、正しいＥＯＢ及び新規ＥＯＢは、与えられた正しいＥＯＢに対する上述の調整を考慮すると、以下のようになる。
正しいＥＯＢ: 1010
新規ＥＯＢ: 1010111111111111
【００５２】
更に、正しいＤＣ及び新規ＤＣは下記テーブルに記述されるように、互いに関連する。
2010519806.tif 000013
この方式により、上のＥＯＢの例と、上のテーブルの３番目のＤＣである新規ＤＣの例を使用すると、３番目のＤＣと組み合わせたＥＯＢは、「1010 1111111111111111 010」に対応する。従って、結果は、ＥＯＢの後に１６個のバイナリ１を付加した場合と同じとなる。
【００５３】
本方法の一実施形態により１６個のバイナリ１を付加する一実施例を以下に示す。この実施例は、汎用ハフマン符号化ストリームに一般化される。
この実施例では、以下のハフマンテーブルを使用する。
A=10(EOB)
B=110
C=111
D=0000
E=0001
【００５４】
ハフマン符号化されたシンボルストリング「CBCDBEDCABCBECB」は、ハードウェアで符号化すると以下のビットストリームになる。
11111011 10000110 00010000 11110110 11111000 01111110 …
FB 86 10 F6 F8 7E
下線で示す位置はＥＯＢを示している。
【００５５】
次に、１６個のバイナリ１をＥＯＢの後に挿入する。
11111011 10000110 00010000 11110111 11111111 11111110 11111000 01111110 …
FB 86 10 F7 FF FE F8 7E
次に、復号化の一実施例を示す。この復号化はソフトウェアで行なうことができる。
【００５６】
ステップ１。末尾「00」を持たないFFを探す。ＪＰＥＧストリームでは、「FF 00」のみが許容されるが、これはこのようなルールでは出現できない。検索されたFFが本発明のマーカであることが１００％確実であることを意味する（リスタートマーカがＪＰＥＧストリームに使用されないことを前提とする）。
次に、ＥＯＢシンボル（この例では、10）に向かって検索を絞り込み、次のＤＵの開始位置がＥＯＢのすぐ後に検出される。
【００５７】
１６個の１を削除し、次のＤＵのビットアドレスを記憶する。
11111011 10000110 00010000 11110110 11111000 01111110 …
FB 86 10 F7 FF FE F8 7E
FB 86 10 F6       F8 7E
上記から分かるように、１バイトのみを変更すればよく、２バイトを削除する必要があり、これらのバイトの残りのバイトのワードは既に正しく配列されている。
FB 86 10 F7 FF FE F8 7E
FB 86 10 F6       F8 7E
【００５８】
更には、１の挿入数が３２であると、残りのバイトのワードは長く配列されて、３２ビット単位でのｍｅｍｃｐｙが可能になる。２バイトを更に付加することによりファイルが大きくなり、従ってネットワークのバスを介してデータを移動させる場合に帯域要求が増加するので、これは常に望ましいわけではない。
FB 86 10 F7 FF FF FF FE F8 7E
FB 86 10 F6             F8 7E
２バイトを結合して１バイトにするプロセスは極めて簡単でもある。
FB 86 10 F7 FF FE F8 7E
FB 86 10 F6       F8 7E
【００５９】
F7及びFEを結合する（Join）演算は非常に簡単であり、挿入される１６個の１がビットマスクとして働くので、これらの単なる論理「積」演算である。
Byte1 = F7
Byte2 = FE
JoinedByte = Byte1 & Byte2
上の表現は、以下の例を考察すると更に見易くなる。
abcde111 11111111 11111fgh
Byte1 = abcde111
Byte2 = 11111fgh
JoinedByte = abcde111 & 11111fgh = abcdefgh
【００６０】
上の例は、ストリーム内の全てのＤＵのビットアドレスを迅速に検出するプロセス、及びマーカを迅速に削除することで元のストリームを再現するプロセスを記述している。
アルゴリズムを変更して、各ＤＵのＤＣ係数の検出に使用することができる。次に、ＤＣ係数を復号化することにより、各ＤＣのデータを使用して、画像の８分の１縮小版を生成することができる。同じ操作を、４分の１縮小版が必要になる場合に行なうことができ、この場合、ＤＣ係数及び多数の後続のＡＣを復号化することにより、これらの係数に対して２ｘ２  ＩＤＣＴを行なうことが可能になる。マーカでＤＣ係数の位置を示すことにより、他の係数をハフマン復号化する操作をスキップすることができるので、撮影瞬間における小型スクリーンに合わせた画像の縮小を高速化することができる。この実施形態は、縮小画像を表示するプロセスを高速化するために、いずれのアプリケーションにおいても利用することができる。
【００６１】
このようなアプリケーションの一実施例は、ディスプレイをビューファインダーとして使用する画像取得アプリケーションである。これらのアプリケーションにおける一つの一般的な問題は、画像ビューを表わす画像の提示の遅延である。即ち、ユーザが所望のビューをディスプレイで眺めるときには当該瞬間がずっと前に過ぎてしまっている。このようなアプリケーションでは、ＤＣ係数の位置を示すマーカを含むデータストリームを供給し、マーカを探す表示プロセスを実行し、マーカの位置のＤＣ係数に関連する情報を取り出し、この情報に基づいて縮小サイズ画像を生成してディスプレイに提示することにより、遅延を有意に短くすることができる。
【００６２】
更に、本発明の一態様により、最小限の変更を加えてＪＰＥＧエンコーダを変更することで、ＤＵの末尾を指示する特殊マーカを含む非互換性ＪＰＥＧデータの別のストリームを生成する方法が提示される。次に非互換性ＪＰＥＧデータを分析することにより、各ＤＵの先頭をマッピングすることができ、規格に準拠しないマーカを、不揮発性メモリに記憶させながら削除することができる。
上の実施例では、マーカを少なくとも１６個のバイナリ１に設定する。マーカは、少なくとも１６個のバイナリ０、すなわち0000000000000000に設定することもできる。マーカを１６個のバイナリ０に設定する場合、マーカの前に挿入される既知コードは「11111111」とすることができる。従って、コード000000001111111111111111が111111110000000000000000に反転される。
【００６３】
本発明は、デジタル電子回路として表現することができるか、又はコンピュータハードウェア、ファームウェア、ソフトウェア、或いはこれらの組み合わせとして表現することができる。本発明の装置は、機械読み取り可能な記憶装置の中に実体として具現化されたコンピュータプログラム製品として実施し、プログラマブルプロセッサで実行することができる。本発明の方法ステップは、入力データを操作し、出力を生成することにより、本発明の機能を実行するための命令のプログラムを実行するプログラマブルプロセッサによって実行することができる。本発明は、有利には一つ以上のコンピュータプログラムとして表現することができ、これらのコンピュータプログラムは、データ記憶システム、少なくとも一つの入力デバイス、及び少なくとも一つの出力デバイスからデータ及び命令を受信し、データ及び命令をこれらに送信するように接続された少なくとも一つのプログラマブルプロセッサを含むプログラマブルシステムで実行することができる。各コンピュータプログラムは、高レベルのプロシージャ型言語又はオブジェクト指向プログラミング言語で記述することができるか、又は必要に応じて、アセンブリ言語又は機械言語で記述することができる。いずれにしても、言語はコンパイル言語又は解釈言語とすることができる。適切なプロセッサは、例えば汎用及び専用両方のマイクロプロセッサを含む。一般的に、プロセッサは、リードオンリメモリ、及び／又はランダムアクセスメモリから命令及びデータを受信する。一般的に、コンピュータは、データファイルを保存する一つ以上のマス記憶装置を含み、このようなデバイスは、内部ハードディスク及び取り外し可能なディスクのような磁気ディスク；磁気光ディスク；及び光ディスクを含む。コンピュータプログラム命令及びデータを実体として具現化するのに適する記憶装置は、例えばＥＰＲＯＭ、ＥＥＰＲＯＭ、及びフラッシュメモリデバイスのような半導体メモリデバイス；内部ハードディスク及び取り外し可能なディスクのような磁気ディスク；磁気光ディスク；及びＣＤ−ＲＯＭディスクを含む全ての形態の不揮発性メモリを含む。前記のいずれも、ＡＳＩＣ（特定用途向け集積回路）によって補完することができるか、又はＡＳＩＣに組み込むことができる。
【００６４】
ユーザとの相互作用を可能にするために、本発明は、ユーザに対して情報を表示するモニタ又はＬＣＤスクリーンのようなディスプレイ装置を有するコンピュータシステムで実行することができる。ユーザは、キーボード、マウスのようなポインティングデバイス、トラックボール、マイクロホン、タッチ検出ディスプレイ、トランスデューサカードリーダ、磁気又は紙テープリーダ、タブレット、スタイラス、音声又は手書き認識器のような種々の入力デバイス、又は、他のコンピュータのような他のいずれかの公知の入力デバイスを介して、コンピュータシステムに入力を供給することができる。コンピュータシステムは、グラフィカルユーザインターフェースを提供するようにプログラムすることができ、このグラフィカルユーザインターフェースを介してコンピュータプログラムはユーザと相互作用する。
最後に、プロセッサは、任意で、コンピュータ又は電気通信ネットワーク、例えばインターネットネットワーク、又はイントラネットネットワークに、ネットワーク接続を使用して接続することができ、これを介して、プロセッサは、上述の方法ステップを実行する過程でネットワークに情報を出力することができるか、又はネットワークから情報を受信することができる。プロセッサを使用して実行される命令のシーケンスとして表現されることが多いこのような情報は、例えば搬送波内に具体化されるコンピュータデータ信号の形態で、ネットワークから受信し、ネットワークに出力することができる。上に説明したデバイス及び材料には、コンピュータハードウェア及びソフトウェア分野の当業者にとって周知である。
【００６５】
本発明は、コンピュータシステムに保存されるデータを利用した種々のコンピュータ実行演算を用いることに注目されたい。これらの演算は、制限されないが、物理量の物理的操作を必要とする演算を含む。普通、必ずではないが、これらの量は、保存、転送、合成、比較、或いはそれ以外の操作が可能な電気信号又は磁気信号の形態を採ることができる。本明細書に説明され、且つ本発明の一部を構成する演算は、有用な機械演算である。実行される操作は多くの場合、「生成する」、「識別する」、「実行する」、「決定する」、「比較する」、「ダウンロードする」、又は「検出する」のような用語を指す。基本的に、広く使用されているという理由により、これらの電気信号又は磁気信号を、「ビット」、「値」、「要素」、「変数」、「特徴」、「データ」などで表現すると便利である場合がある。しかしながら、これらの用語及び類似の用語の全ては、適切な物理量に関連付けられ、且つこれらの量に適用される単なる便宜的なラベルに過ぎない。
【００６６】
本発明はまた、前述の演算を実行するデバイス、システム、又は装置に関する。当該システムは、必要な目的のための特殊な構造を有することができるか、又はコンピュータに格納されるコンピュータプログラムによって選択的に起動又は構成される汎用コンピュータとすることができる。上に提示したプロセスは、いずれかの特定のコンピュータ又は他の演算装置に固有に関連付けられる訳ではない。特に、種々の汎用コンピュータは、本明細書の技術に従って記述されるプログラムを用いて使用することができるか、又は別の構成として、更に必要な演算を実行するように特殊化されたコンピュータシステムを構成すると更に便利である。
本発明の多数の実施形態について説明した。しかしながら、本発明の思想及び範囲から逸脱せずに種々の変更を加えることができる。
【手続補正書】
【提出日】平成20年2月15日(2008.2.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
可変長符号化方式により符号化されたデータストリームを生成する方法であって、
複数のコードワードを含む一つのデータストリームのコードワードを可変長符号化方式に従って符号化するステップと、
データストリーム内の符号化されたコードワードの間に分割マーカを挿入するステップと
を含み、前記分割マーカを挿入するステップが、少なくとも１６個の連続するバイナリ１を特定のコードワードの後に挿入することにより行なわれる方法。
【請求項２】
可変長符号化方式により符号化されるデータストリームを生成する方法であって、
複数のコードワードを含む一つのデータストリームのデータブロックを可変長符号化方式に従って符号化するステップと、
データストリーム内の符号化されたコードワードの間に分割マーカを挿入するステップと
を含み、前記分割マーカを挿入するステップが、少なくとも１６個の連続するバイナリ０を特定のコードワードの後に挿入することにより行なわれる方法。
【請求項３】
特定のコードワードが一つのデータブロックの末尾のコードワードである、請求項１又は２に記載の方法。
【請求項４】
前記分割マーカを挿入するステップが、少なくとも１６個の連続するバイナリ１を、２つ以上の特定のコードワードの間に挿入することにより行なわれる、請求項１に記載の方法。
【請求項５】
可変長符号化方式により符号化されたデータストリームを生成する方法であって、
複数のデータブロックを含む一つのデータストリームのデータブロックを可変長符号化方式に従って符号化するステップと、
データストリーム内の符号化されたデータブロックの間に分割マーカを挿入するステップと
を含み、分割マーカが少なくとも１６個の連続するバイナリ１からなるバイナリ配列である、方法。
【請求項６】
可変長符号化方式により符号化されるデータストリームを生成する方法であって、
複数のデータブロックを含む一つのデータストリームのデータブロックを可変長符号化方式に従って符号化するステップと、
データストリーム内の符号化されたデータブロックの間に分割マーカを挿入するステップと、
を含み、分割マーカが少なくとも１６個の連続するバイナリ０からなるバイナリ配列である、方法。
【請求項７】
分割マーカを挿入する操作が更に、先行ブロックが符号化された後且つ次の符号化データブロックが先行データブロックに付加される前の一つの時点で、分割マーカを挿入することを含む、請求項５又は６記載の方法。
【請求項８】
前記符号化するステップ及び前記分割マーカを挿入するステップをハードウェアによって行う、請求項１ないし７のいずれか一項に記載の方法。
【請求項９】
前記データストリームにマーカを挿入するステップを、可変長符号化方式により符号化されているデータストリームに関連付けて実行する、請求項１ないし８のいずれか一項に記載の方法。
【請求項１０】
前記データブロックを符号化するステップをＪＰＥＧ規格に従って行い、各データブロックが、ＪＰＥＧ規格に準拠した一つのデータユニットに対応する、請求項６ないし８のいずれか一項に記載の方法。
【請求項１１】
更に、８個のバイナリ０を分割マーカの前に挿入するステップを含む、請求項５記載の方法。
【請求項１２】
更に、１セットの８ビットを分割マーカの前に挿入するステップを含み、前記８ビットのセットが少なくとも１ビットのバイナリゼロ値を含み、前記少なくとも１ビットのバイナリゼロ値が前記８ビットのセットの所定の位置に配置されている、請求項５記載の方法。
【請求項１３】
前記少なくとも１ビットのバイナリゼロ値の所定の位置が、該８ビットのセットの最下位ビットの位置である、請求項１２記載の方法。
【請求項１４】
更に、８個のバイナリ１を分割マーカの前に挿入するステップを含む、請求項６記載の方法。
【請求項１５】
可変長コードのストリーム内の特に注目される一つのコードワードに関連するデータを取り出す方法であって、
可変長コードのストリーム内の所定のマーカの位置を識別するステップであって、該マーカが少なくとも１６個の連続するバイナリ１からなるバイナリ配列であるステップと、
可変長コードのストリーム内の特に注目されるコードワードの開始位置を計算するステップと、
特に注目されるコードワードに関連するデータを取り出すステップと
を含む方法。
【請求項１６】
可変長コードのストリーム内の少なくとも一つの更に別の所定のマーカの位置を識別するステップと、
前記可変長コードのストリーム内の特に注目される少なくとも一つの更に別のコードワードの開始位置を計算するステップと、
特に注目される少なくとも一つの更に別のコードワードに関連するデータを取り出すステップと
を更に含む、請求項１５記載の方法。
【請求項１７】
特に注目されるコードワードに関連するデータを取り出すステップが、データストリーム内の特に注目されるコードワードの計算された開始位置を取り出すことと、この開始位置を可変長コードのストリームの特徴のリストに挿入することとを含む、請求項１５又は１６に記載の方法。
【請求項１８】
特に注目されるコードワードに関連するデータを取り出すステップが、特定のコードワードで表わされる値を取り出すことを含む、請求項１５又は１６に記載の方法。
【請求項１９】
可変長コードのストリームが画像の圧縮表現であり、特に注目されるコードワードが可変長コードのストリーム内の一つのデータユニットのＤＣ係数である、請求項１８記載の方法。
【請求項２０】
更に、可変長コードのストリームから前記所定のマーカを削除するステップを含む、請求項１５ないし１９のいずれか一項に記載の方法。
【請求項２１】
所定のマーカの位置を識別するステップが更に、可変長コードのストリーム内の、マーカの隣に配置される所定のシンボルを識別することを含み、所定のシンボル及び所定のマーカの一方から他方への移行部分をマーカの位置として識別する、請求項１５ないし２０のいずれか一項に記載の方法。
【請求項２２】
所定のシンボルがエンドオブブロックシンボル、ＥＯＢである、請求項２１記載の方法。
【請求項２３】
特定のコードワードの可変長コードのストリーム内の開始位置の計算を、所定のマーカの位置とマーカの既知の長さとに基づいて行う、請求項２１又は２２に記載の方法。
【請求項２４】
可変長コードのストリームが複数のコードワードを含むデータブロックを含み、特に注目されるコードワードが、一つのデータブロックの先頭のコードワードであり、これにより、特に注目されるコードワードの開始位置の計算が、前記データブロックの開始位置の計算に一致する、請求項１５ないし２３のいずれか一項に記載の方法。
【国際調査報告】
2010519806.tif 000014
2010519806.tif 000015
2010519806.tif 000016
2010519806.tif 000017