(57)【要約】【課題】  本発明は、カメラフォンなどの電子デバイスにおいてビデオデータ信号からパディング用２進数を取り除くための、ソフトウェアによる偽同期コード保護（ＦＳＰ）の復号化を行う技法について記述するものである。【解決手段】  これらのパディング用２進数（バイト１０１００１０１2など）はビデオデータ信号で符号化される。本発明は、ビット単位の処理を用いて受信データを個々に比較する必要なく、所定の判定基準を利用して復号化処理を実行する高速の方法を記述するものであり、これによって、従来方式のビット単位の比較方法と比べてプロセッサ命令数の大幅な減少を図るものである。本提示例の場合、これらの命令は、ＪＰＥＧデータなどで見られるすべてのスタンドアローン型ゼロバイトに対して実行されるため、特に、複数のＪＰＥＧ画像の受信並びにその連続処理を行う場合、実行時間の顕著な節減につながるものとなる。【選択図】      図１
2005130490.tif 000002
【特許請求の範囲】
【請求項１】
パディング用２進数を用いて符号化したビデオデータ信号（２５）の偽同期コード保護（ＦＳＰ）を復号化する方法であって、
所定の２進数を特定するために前記ビデオデータ信号（２５）をバイト単位でチェックする（３２）ステップと、
前記パディング用２進数が前記所定の２進数の後に続くかどうかを所定の判定基準に基づいて判定するステップと、
前記所定の判定基準が満たされた場合、前記所定の２進数の次のパディング用２進数を取り除く（４８）ステップと、
を備える方法。
【請求項２】
前記パディング用２進数が１バイトに相当する８ビット２進数である請求項１に記載の方法。
【請求項３】
請求項１に記載の方法であって、前記所定の判定基準が満たされた場合、
別の所定の２進数を特定するために、前記取り除かれたパディング用２進数の次のバイトから始めて前記ビデオデータ信号（２５）をバイト単位でチェックする（３２）ステップ、
をさらに備える方法。
【請求項４】
請求項１に記載の方法であって、前記所定の判定基準が満たされなかった場合、
別の所定の２進数を特定するために、前記所定の２進数の次のバイトから始めて前記ビデオデータ信号（２５）をバイト単位でチェックする（３２）ステップ、
をさらに備える方法。
【請求項５】
パディング用バイトを用いて符号化したビデオデータ信号（２５）の偽同期コード保護（ＦＳＰ）を復号化する方法であって、
ゼロバイトを特定するために、前記ビデオデータ信号（２５）をバイト単位でチェックする（３２）ステップと、
前記パディング用バイトが前記ゼロバイトの後に続くかどうかを所定の判定基準に基づいて判定するステップと、
前記所定の判定基準が満たされた場合、前記ゼロバイトの次のパディング用バイトを取り除く（４８）ステップと、
を備える方法。
【請求項６】
前記パディング用バイトが２進数１０１００１０１すなわち同義の１６進数Ａ５である請求項５に記載の方法。
【請求項７】
請求項５に記載の方法であって、前記所定の判定基準が満たされた場合、
前記取り除いたパディング用バイトの後の１バイトをスキップする（５０）ステップと、
別のゼロバイトを特定するために、前記スキップしたバイトの次のバイトから始めて前記ビデオデータ信号（２５）をバイト単位でチェックする（３２）ステップと、
をさらに備える方法。
【請求項８】
請求項５に記載の方法であって、前記所定の判定基準が満たされなかった場合、
前記ゼロバイトの後の１バイトをスキップする（５０）ステップと、
別のゼロバイトを特定するために、前記スキップしたバイトの次のバイトから始めて前記ビデオデータ信号（２５）をバイト単位でチェックする（３２）ステップと、
をさらに備える方法。
【請求項９】
前記ビデオデータ信号（２５）がジョイント・フォトグラフィック専門家グループ（Joint Photographic Experts Group：ＪＰＥＧ）形式で表され、かつ、前記パディング用バイトがゼロではない、請求項５に記載の方法。
【請求項１０】
請求項９に記載の方法であって、前記ゼロバイトを特定するために、前記ビデオデータ信号（２５）をバイト単位でチェックする（３２）前記ステップ後に、
前記ゼロバイトの前のバイトの値を特定し、前記ゼロバイトの前の前記バイトをバイトＡとして特定する（３４）ステップと、
前記ゼロバイトの前のバイトがゼロであるかどうかを判定する（３５）ステップと、
をさらに備える方法。
【請求項１１】
請求項１０に記載の方法であって、前記ゼロバイトの前のバイトがゼロである場合、
前記ゼロバイトの後の１バイトをスキップする（５０）ステップと、
別のゼロバイトを特定するために、前記スキップしたバイトの次のバイトから始めて前記ビデオデータ信号（２５）をバイト単位でチェックする（３２）ステップと、
をさらに備える方法。
【請求項１２】
請求項１０に記載の方法であって、前記ゼロバイトの前のバイトがゼロでない場合、
前記ゼロバイトの前のバイトの前に在るバイトの値を特定し（３６）、前記ゼロバイトの前のバイトの前に在る前記バイトをバイトＢとして特定するステップ、
をさらに備える方法。
【請求項１３】
請求項１２に記載の方法であって、
前記バイトＡとＢの論理和の組み合わせに等しい組み合わせバイトの値を決定するステップであって、前記組み合わせバイトをバイトＣ＝Ａ  ＯＲ  Ｂとして特定するステップと、
２進数Ｄとして特定される第１の１６ビットまたは３２ビット２進数の値を決定する（４０）ステップであって、２進数Ｄの最下位バイトが前記バイトＣに等しく、かつ、２進数Ｄの前記最下位バイトの次のバイトが前記バイトＡに等しいステップと、
Ｄ＋１に等しい２進数Ｅとして特定される第２の１６ビットまたは３２ビット２進数の値を決定する（４２）ステップと、
２進数ＥとＤの論理積の組み合わせ（Ｆ＝Ｅ  ＡＮＤ  Ｄ）に等しい２進数Ｆとして特定される第３の１６ビットまたは３２ビット２進数の値を決定する（４４）ステップと、
をさらに備える方法。
【請求項１４】
請求項１３に記載の方法であって、２進数Ｆの値がゼロである場合、
前記ゼロバイトの次のパディング用バイトを取り除くステップ、
をさらに備える方法。
【請求項１５】
請求項１４に記載の方法であって、
前記取り除いたパディング用バイトの後の１バイトをスキップする（５０）ステップと、
別のゼロバイトを特定するために、前記スキップしたバイトの次のバイトから始めて前記ビデオデータ信号（２５）をバイト単位でチェックする（３２）ステップと、
をさらに備える方法。
【請求項１６】
請求項１３に記載の方法であって、前記第３の２進数Ｆの値がゼロでない場合、
前記ゼロバイトの後の１バイトをスキップする（５０）ステップと、
別のゼロバイトを特定するために、前記スキップしたバイトの次のバイトから始めて前記ビデオデータ信号（２５）をバイト単位でチェックする（３２）ステップと、
をさらに備える方法。
【請求項１７】
電子デバイス（１０）であって、
パディング用２進数と同期コードとを含む符号化済みビデオデータ信号（２２）を生成するカメラ（１２）と、
前記パディング用２進数のみを用いて符号化したビデオデータ信号（２５）を出力するために、前記符号化済みビデオデータ信号（２２）から同期コード（２４）を取り除く手段と、
所定の２進数を特定するために、および、前記パディング用２進数が前記所定の２進数の後に続くかどうかを所定の判定基準に基づいて判定するために、前記ビデオデータ信号（２５）をバイト単位でチェックする（３２）ための、前記ビデオデータ信号（２５）に応動する、偽同期コード保護（ＦＳＰ）の復号化手段（１６）と、
を有する電子デバイス（１０）。
【請求項１８】
前記所定の判定基準が満たされた場合、前記ＦＳＰ復号化手段（１６）が前記所定の２進数の次のパディング用２進数を取り除く、請求項１７に記載の電子デバイス（１０）。
【請求項１９】
前記ＦＳＰ復号化手段（１６）が前記パディング用２進数を含まない復号化済みビデオ信号（２６ａ、２６ｂ）を出力する、請求項１７に記載の電子デバイス（１０）。
【請求項２０】
前記同期コード（２４）を取り除く前記手段がコンパクトカメラポート（ＣＣＰ）ブロック（２４）である、請求項１７に記載の電子デバイス（１０）。
【請求項２１】
前記電子デバイスがカメラフォンである請求項１７に記載の電子デバイス（１０）であって、前記ＦＳＰ復号化手段（１６）が前記カメラフォン（１０）の電話エンジン（１４）の一部である電子デバイス（１０）。
【請求項２２】
前記パディング用２進数が１バイトに相当する８ビット２進数である、請求項１７に記載の電子デバイス（１０）。
【請求項２３】
前記パディング用２進数が１バイトに相当する８ビット２進数であり、かつ、前記所定の２進数がゼロバイトである、請求項１７に記載の電子デバイス（１０）。
【請求項２４】
前記所定の判定基準が満たされた場合、前記ＦＳＰ復号化手段（１６）が前記ゼロバイトの次のパディング用バイトを取り除く、請求項２３記載の電子デバイス（１０）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に電子デバイスにおけるビデオ信号処理に関し、特に、ビデオデータ信号からパディング用２進数を取り除くソフトウェアによる偽同期コード保護（ＦＳＰ）の復号化に関する。
【背景技術】
【０００２】
１．技術の分野及び背景
非常に少数の例外を除いて、今日製造されているカメラフォン（カメラ付き電話）のほとんどには、カメラから、画像の格納、表示、処理および／または送信を行うためのメモリとプロセッサとを含む電話エンジンへの画像情報の転送用として直列データバスが使用されている。コンパクトカメラポート（ＣＣＰ）と呼ばれるブロックは、電話エンジンを前述の直列バス（ＣＣＰバスと呼ばれる場合もある）と接続する電話エンジン側のブロックであり、前記直列バスは一般に、位相差クロックライン（クロック＋とクロック−）と、位相差データライン（データ＋、データ−）とのみから構成される。
【０００３】
カメラフォンのカメラは多くの点でビデオカメラと同じ様に振舞い、連続して画像を出力する。これら画像フレームの同期を図るために、例えば、どこから１つの単一画像が始まり、どこで終了するかを知るための同期コードが利用される。これらの同期コードは通常３２ビットパターンであり、このパターンは一義的でなければならない。個々の同期コードは他の同期コードとは異なるものでなければならず、かつ、これらの同期コードは画像データ自身内に出現してはならない（そうでないと、画像データが同期コードとして処理されることになり、画像データとして処理されなくなる）。ＣＣＰブロックは、着信データをビット単位で比較して、同期コードを検出するハードウェアブロックである。ＣＣＰブロックは３２ビット用の直列の先入れ先出し（ＦＩＦＯ）バッファを備える。カメラから受信したビットはＦＩＦＯバッファの中を通り抜け、同期コードが検出されると、同期コードに属するビットが取り除かれ、ＣＣＰブロック内の状態マシンが適宜更新される。
【０００４】
一般に、４つの同期コードが以下のように定義されている：
フレーム開始コード（ＦＦ０００００２16）がカメラにより個々の画像フレームの開始点に挿入される。
フレーム終了コード（ＦＦ０００００３16）がカメラにより個々の画像フレームの終端部に挿入される。
ライン開始コード（ＦＦ００００００16）がカメラにより画像内の個々のラインの開始点に挿入される。
ライン終了コード（ＦＦ０００００１16）がカメラにより画像内の個々のラインの終端部に挿入される。
【０００５】
ＣＣＰバスのデータは、バイト様式の最下位ビット（ＬＳＢ）で最初に送信される。したがって、例えば、フレーム開始コードは２進数（第１ビット）１１１１  １１１１  ００００  ００００  ００００  ００００  ０１００  ００００2（３２番目のビット）となる。
【０００６】
２．問題点についての記述
上述したように画像データ自身内に同期コードが出現してはならないという事実から問題が生じる。カメラはジョイント・フォトグラフィック専門家グループ（ＪＰＥＧ）出力形式のサポートを開始する。すなわち、画像を送信する前にＪＰＥＧ形式に画像圧縮を行うことができるため、帯域要件および記憶メモリ要件が少なくなる。しかし、ＪＰＥＧ形式が標準化されているためＪＰＥＧデータの内部に同期コードが発生することを防ぐ方法が存在しない。したがって、同期コードがビット単位でビデオデータ信号内に誤って現れる避けがたい状況が存在する。例えば、データＦ８０７００００Ｆ８16を送信する（個々のバイトは最初ＬＳＢで送信される）場合、このデータは、ライン開始コードのビットパターンに対応するアンダーラインを付した部分と共に０００１  １１１１  １１１０  ００００  ００００  ００００  ００００  ００００  ０００１  １１１１2としてＣＣＰバスに現れる。この状況で、ＣＣＰブロックは、ビデオデータ信号の中にそっくりのライン開始コードを見つけ、このコードを取り除くことになる。
【０００７】
したがって、例えば、電話エンジン内のＣＣＰブロックを介してＪＰＥＧデータを首尾よく転送するために、偽同期コード保護（ＦＳＰ）として知られているチャネル符号化を利用して、ＪＰＥＧデータの送信前にＪＰＥＧデータの変更を行う必要がある。また同様に、ＪＰＥＧデータを受信したときすぐに、データの正しい復号化を行うことが望ましい。現在カメラで一般に利用されているあるいは将来使用されるＦＳＰ符号化方法を以下のように目に見える形で要約した。
【０００８】
カメラは、生成されるＪＰＥＧデータをモニタする。表１に図示のビットパターンのうちの１つが現れると、カメラはゼロバイトｎの後の上記ビットパターンの出力時に、パディング用バイト（１６進数Ａ５16（すなわち１０１００１０１2））をいつでも付加し、これによって同期コードの生成が可能なビットパターンの分割が行われる。
【０００９】
【表１】
2005130490.tif 000003
【００１０】
電話エンジンにデータが受信されるとすぐに、上記余分のＡ５16パディング用バイトを取り除く必要があり、次いでＦＳＰの復号化を実行しなければならない。Ａ５16バイトの受信データのすべてを取り除かなければならないわけではないことに留意されたい。というのは、Ａ５16バイトはオリジナルのＪＰＥＧデータにも同様に出現し、これらのバイトは復号化の間中そのまま手つかずの状態にしておかなければならないからである。
【００１１】
挿入されたＡ５16パディング用バイトを電話エンジン側で取り除くハードウェアは現在存在しないため、（例えばカメラドライバ内などの）ソフトウェアによってＪＰＥＧデータの復号化を行う必要がある。
【００１２】
３．従来技術による解決方法
ノキア・フォン３６５０では、ＪＰＥＧデータの各２バイトに対して２つのパディング用バイトを付加することによりこの問題を巧みに回避している。したがって復号化処理は非常に単純になったが、この処理は帯域とメモリ要件を犠牲にして行われるものであった（３０キロバイトのＪＰＥＧデータに対してＣＣＰブロックを介してこれを送信するのに６０キロバイトを必要とする）。
【００１３】
以上略述した問題点に対する単純な解決策として、受信したＦＳＰ符号化済みデータを表１に示す８種類のパターンとバイト単位で比較する方法が考えられる。しかし、この方法は、たとえ最初にゼロバイトだけを探し、これを発見したらすぐに、その２つ前のバイトの検査をより綿密に行うように最適化するものであるとしても、低速の解決方法となる。これはＪＰＥＧデータが相当量のゼロバイトを含むことに起因するためであるが、上記８種類のパターン比較をすべて行うには、比較が可能となる前に本質的でないビットのマスクアウトを最初に行う必要がある（上記８種類のパターン比較の各々はマスクアウトを行うのに異なるビットを必要とする）。このバイト単位の比較アプローチを用いる場合、８種類のパターンすべてを入力データに対して比較する上記比較を行うには１４１回の命令を要することが推定された。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明の目的は、カメラフォンなどの電子デバイス内のビデオデータ信号からパディング用２進数を取り除くソフトウェアによって偽同期コード保護（ＦＳＰ）の復号化を行う技法を提供することである。
【課題を解決するための手段】
【００１５】
本発明の第１の態様によれば、パディング用２進数を用いて符号化したビデオデータ信号の偽同期コード保護（ＦＳＰ）を復号化する方法は、ビデオデータ信号をバイト単位でチェックするステップと、所定の２進数を特定するステップと、上記パディング用２進数が所定の２進数の後に続いているかどうかを所定の判定基準に基づいて判定するステップと、上記所定の判定基準が満たされた場合、上記所定の２進数の次のパディング用２進数を取り除くステップと、を備える。さらに、上記パディング用２進数は１バイトに相当する８ビット２進数であってもよい。さらに、上記所定の判定基準が満たされた場合、上記方法は、別の所定の２進数を特定するために、上記取り除いたパディング用２進数の次のバイトから始めてビデオデータ信号をバイト単位でチェックするステップをさらに備える。さらに、上記所定の判定基準が満たされなかった場合、上記方法は、別の所定の２進数を特定するために、上記所定の２進数の次のバイトから始めてビデオデータ信号をバイト単位でチェックするステップをさらに備えることができる。
【００１６】
本発明の第２の態様によれば、パディング用バイトを用いて符号化したビデオデータ信号の偽同期コード保護（ＦＳＰ）を復号化する方法は、ゼロバイトを特定するために、ビデオデータ信号をバイト単位でチェックするステップと、上記パディング用バイトがゼロバイトの後に続くかどうかを所定の判定基準に基づいて判定するステップと、上記所定の判定基準が満たされた場合、ゼロバイトの次のパディング用バイトを取り除くステップと、を備える。さらに、パディング用バイトは、２進数１０１００１０１すなわち同義の１６進数Ａ５であってもよい。
【００１７】
さらに本発明の第２の態様によれば、所定の判定基準が満たされた場合、上記方法は、取り除いたパディング用バイトの後の１バイトをスキップするステップと、別のゼロバイトを特定するために、上記スキップしたバイトの次のバイトから始めてビデオデータ信号をバイト単位でチェックするステップと、をさらに備える。
【００１８】
さらに本発明の第２の態様によれば、所定の判定基準が満たされなかった場合、上記方法は、ゼロバイト後の１バイトをスキップするステップと、別のゼロバイトを特定するために、上記スキップしたバイトの次のバイトから始めてビデオデータ信号をバイト単位でチェックするステップと、をさらに備える。
【００１９】
さらに本発明の第２の態様によれば、ビデオデータ信号はジョイント・フォトグラフィック専門家グループ（ＪＰＥＧ）形式で表され、パディング用バイトはゼロではない。さらに、ゼロバイトを特定するために、ビデオデータ信号をバイト単位でチェックするステップの後、上記方法は、
ゼロバイトの前のバイトの値を特定するステップであって、ゼロバイトの前の前記バイトをバイトＡとして特定するステップと、上記ゼロバイトの前のバイトがゼロであるかどうかを判定するステップと、を備える。
【００２０】
さらに本発明の第２の態様によれば、ゼロバイトの前のバイトがゼロのとき、ビデオデータ信号がジョイント・フォトグラフィック専門家グループ（ＪＰＥＧ）形式で表され、かつ、パディング用バイトがゼロではない場合、上記方法は、上記ゼロバイトの後の１バイトをスキップするステップと、別のゼロバイトを特定するために、上記スキップしたバイトの次のバイトから始めてビデオデータ信号をバイト単位でチェックするステップと、をさらに備える。
【００２１】
さらに本発明の第２の態様によれば、ゼロバイトの前のバイトがゼロでないとき、ビデオデータ信号がジョイント・フォトグラフィック専門家グループ（ＪＰＥＧ）形式で表され、かつ、パディング用バイトがゼロでない場合、上記方法は、上記ゼロバイトの前のバイトの前に在るバイトの値を特定するステップであって、上記ゼロバイトの前のバイトの前に在る前記バイトをバイトＢとして特定するステップをさらに備える。さらに、上記方法は、バイトＡとＢの論理和の組み合わせに等しい組み合わせバイトの値を決定するステップであって、前記組み合わせバイトをバイトＣ＝Ａ  ＯＲ  Ｂと特定するステップと、２進数Ｄとして特定される第１の１６ビットまたは３２ビット２進数の値を決定するステップであって、上記２進数Ｄの最下位バイトが上記バイトＣに等しく、かつ、上記２進数Ｄの最下位バイトの次のバイトが上記バイトＡに等しいステップと、２進数Ｅ＝Ｄ＋１として特定される第２の１６ビットまたは３２ビット２進数の値を決定するステップと、２進数Ｆが２進数ＥとＤの論理積の組み合わせに等しい（Ｆ＝Ｅ  ＡＮＤ  Ｄ）値として特定される第３の１６ビットまたは３２ビット２進数の値を決定するステップと、をさらに備える。さらに、上記２進数Ｆの値がゼロである場合、上記方法は上記ゼロバイトの次のパディング用バイトを取り除くステップをさらに備える。
【００２２】
さらに、上記ゼロバイトの次のパディング用バイトを取り除く本発明の第２の態様によれば、上記方法は、上記取り除いたパディング用バイトの後の１バイトをスキップするステップと、別のゼロバイトを特定するために、上記スキップしたバイトの次のバイトから始めてビデオデータ信号をバイト単位でチェックするステップと、をさらに備えることができる。
【００２３】
さらに本発明の第２の態様によれば、上記第３の２進数Ｆの値がゼロでない場合、上記方法は上記ゼロバイトの後の１バイトをスキップするステップと、別のゼロバイトを特定するために、上記スキップしたバイトの次のバイトから始めてビデオデータ信号をバイト単位でチェックするステップと、をさらに備えることができる。
【００２４】
本発明の第３の態様によれば、電子デバイスが、パディング用２進数と同期コードとを含む符号化済みビデオデータ信号を生成するカメラと、パディング用２進数のみを用いて符号化したビデオデータ信号を出力するために、上記符号化済みビデオデータ信号から上記同期コードの除去手段と、所定の２進数を特定するために上記ビデオデータ信号をバイト単位でチェックし、パディング用２進数が上記所定の２進数の後に続くかどうかを所定の判定基準に基づいて判定するために、上記ビデオデータ信号に応動して偽同期コード保護（ＦＳＰ）の復号化手段と、を備える。
【００２５】
さらに、本発明の第３の態様によれば、所定の判定基準が満たされた場合、上記ＦＳＰ復号化手段は上記所定の２進数の次のパディング用２進数を取り除く。
【００２６】
さらに、本発明の第３の態様によれば、上記ＦＳＰ復号化手段はパディング用２進数が含まれていない復号化済みビデオ信号を出力する。
【００２７】
さらに、本発明の第３の態様によれば、上記同期コードの除去手段はコンパクトカメラポート（ＣＣＰ）ブロックであってもよい。
【００２８】
さらに、本発明の第３の態様によれば、上記電子デバイスはカメラフォンであり、その場合ＦＳＰ復号化手段はカメラフォンの電話エンジンの一部である。
【００２９】
さらに、本発明の第３の態様によれば、上記パディング用２進数は１バイトに相当する８ビット２進数であってもよい。
【００３０】
さらに、本発明の第３の態様によれば、パディング用２進数は、１バイトに相当する８ビット２進数であり、所定の２進数はゼロバイトである。さらに、所定の判定基準が満たされた場合、ＦＳＰ復号化手段はゼロバイトの次のパディング用バイトを取り除く。
【００３１】
本発明の性質と目的よく理解するために、以下の図面と関連して行う以下の詳細な説明を参照する。
【発明を実施するための最良の形態】
【００３２】
本発明は、所定の判定基準に基づいて、電子デバイス（カメラフォンなど）で符号化されたビデオデータ信号から、パディング用バイト、さらに一般的に言えば、パディング用２進数を取り除くためのソフトウェアによる偽同期コード保護（ＦＳＰ）の復号化技法を提供するものである。これらのパディング用バイトは上述のようにビデオデータ信号で符号化される。本発明は、表１の８ビットパターンの各々について受信データを別々に比較する必要なく、復号化処理を実行する高速な方法について説明するものである。本発明に基づいて説明する本方法では、４つのプロセッサ（例えばノキア電話エンジンではＡＲＭプロセッサを使用）命令のみが用いられる。
【００３３】
正確にいえば、ＦＳＰパディング用バイトが用いられている状況を検出するアルゴリズムのコア部分は４つの命令を必要とする。上記コア部分の周りの必要なループ構造は、いくつかの追加命令を必要とするが、別の競争力のあるアプローチでもこれらの追加命令を必要とする。したがって、本発明を競争力のある技法と比較するとき、前記追加命令が考慮されることはない。
【００３４】
ベンチマークとして上述のバイト単位の比較アプローチを利用すると、本発明で開示される方法では、ＦＳＰソフトウェアによる復号化に必要なプロセッサ命令の数が１４１から４へ減少する。これらの命令は、ＪＰＥＧビデオデータ信号内で見られるすべてのスタンドアローン型ゼロバイトに対して実行されるため、本発明は、特に、ＪＰＥＧ画像の受信と連続処理とが行われる場合、実行時間の節減を提供するものとなる。
【００３５】
図１は、本発明に基づくＦＳＰの復号化を利用するカメラフォン１０などの電子デバイスの多数の別例のうちの１例だけを表すブロック図である。カメラ１２は、上記発明の背景セクションの第１部と第２部で述べたような同期コードとパディング用バイトとを用いて符号化用ビデオデータ信号２２をＪＰＥＧ形式などで生成する。上記特定例では、使用するパディング用バイトは１６進数Ａ５16（すなわち２進数１０１００１０１2）である。しかし、より広い意味では、パディング用バイトは任意の値の２進数であってもよく、また、特定のアプリケーションに適した任意のビット数を含むものであってもよい。符号化済みビデオデータ信号２２は直列バス２２ａを介してコンパクトカメラポート（ＣＣＰ）ブロック２４へ出力される。このブロック２４は、電話エンジン１４を直列バス２２ａ（時としてＣＣＰバスと呼ばれることもある）と接続する電話エンジン１４側部に在るブロックである。
【００３６】
前記ＣＣＰバス２２ａは、一般に、位相差クロックライン（クロック＋とクロック−）と、位相差データライン（データ＋、データ−）とのみから構成される。また、ＣＣＰブロックは符号化済みビデオデータ信号２２から同期コードを取り除き、パディング用バイト（すなわちパディング用２進数）はそのまま手つかずの状態でビデオデータ信号２５を生成する役割を果たすものである。図１の提示例では、ＣＣＰブロック２４は３２ビット用の直列の先入れ先出し（ＦＩＦＯ）バッファを備える。カメラ１２から受信したビットはＦＩＦＯバッファの中を通り抜け、同期コードが検出されたとき、当該同期コードに属するビットが取り除かれ、ＣＣＰブロック２４内の状態マシンが適宜更新される。したがって、ＣＣＰブロック２４は同期コードを取り除く数ある手段のうちの１例である。
【００３７】
（同期コードは取り除かれているが、パディング用バイトはそのまま手つかずの状態になっている）ビデオデータ信号２５が偽同期コード保護（ＦＳＰ）の復号化手段１６へ出力される。この手段１６は、本提示例では、電話エンジン１４内に配置されるソフトウェア手段である。前記ＦＳＰ復号化手段（１６）は、本発明による所定の判定基準に基づいてビデオデータ信号２５からパディング用バイトを取り除く手段である。以下、図２を参照しながらこの手段について詳細に説明する。本例における符号化ビデオ信号２２からの同期コードの除去は、本発明に基づくパディング用バイトの除去が行われる前に実行される。ＦＳＰ復号化手段１６による完全な復号化が行われた後、さらなる処理または利用のためのさらなるビデオデータ信号２６ｃと２８の格納、表示、処理および／または送信を行うために、復号化済みのビデオデータ信号２６ａと２６ｂとが電話エンジン１４のメモリ１８とプロセッサへ送信される。
【００３８】
図１の好ましい実施形態によれば、本発明はＪＰＥＧにより符号化されるビデオデータ信号２２を生成するカメラ１２を利用するものではあるが、本発明は、直列バス２２ａと接続され、ＪＰＥＧ以外の異なる形式でデータを生みだす任意の種類の装置に関しても利用可能である。さらに、前記装置は、本発明の１つの好ましい実施形態で使用される同期コードとは異なるタイプの同期コードを用いることも可能である。しかし、直列バス２２ａと接続可能なカメラ以外の別の装置は現在存在していない。またカメラの種々の出力形式の中で現在ＪＰＥＧデータのみがパディング用バイト（すなわちパディング用２進数）の挿入などの特別の処置を必要とする。
【００３９】
図２は、本発明に基づく、ＪＰＥＧにより符号化されたビデオデータ信号用ソフトウェアによるＦＳＰの復号化を行うためのフローチャートを示す図である。ＦＳＰの復号化が本発明の好ましい実施形態で提示されている。この場合、表１に示すビットパターンのうちの１つのビットパターンの後にパディング用バイトがビデオデータ信号２５で挿入される。図２のフローチャートは他の多くのシナリオの中の１つの可能なシナリオを表すものにすぎない。本発明に準拠する方法では、第１のステップ３０で同期バイトが取り除かれているが、パディング用バイトがそのまま手つかずの状態になっているビデオデータ信号２５がＦＳＰ復号化手段１６へ出力される。次のステップ３２で、ＦＳＰ復号化手段１６は、ゼロバイトを特定するためにビデオデータ信号２５をバイト単位でチェックする。ゼロバイトを検出するとすぐに、以前の２つのバイト値が電話エンジン１４プロセッサのレジスタでそのまま利用可能であると仮定する。したがって、次のステップ３４で、ゼロバイトの前のバイトの値が特定され、ＦＳＰ復号化手段１６によりバイトＡとして指定される。次のステップ３５で、バイトＡがゼロに等しいかどうかが確認される。バイトＡがゼロに等しければ、処理は以下で説明するステップ５０へ進む。これに対して、バイトＡがゼロでなければ、次のステップ３６で、ゼロバイトの前のバイトの前に在るバイトの値がＦＳＰ復号化手段１６によりバイトＢとして特定され、指定される。検出されたゼロバイトがビデオデータ信号２５の２つの第１バイトの間に在れば、アルゴリズムはあたかも追加のゼロが入力データの前に存在するかのように振舞う。すなわち、ビデオデータ信号２５の第１のバイトがゼロであれば、アルゴリズムは、あたかもＡとＢとがゼロであるかのように振舞い、ビデオデータ信号２５の第２のバイトがゼロであれば、アルゴリズムはあたかもＢがゼロであるかのように振舞う。
【００４０】
次のステップ３８で、組み合わせバイトの値がバイトＡとＢの論理和の組み合わせに等しいことがＦＳＰ復号化手段１６により決定され、前記組み合わせバイトはバイトＣ＝Ａ  ＯＲ  Ｂとして特定される。ステップ３８は第１のＡＲＭプロセッサ命令を必要とする。次のステップ４０では、２進数Ｄとして特定される第１の１６ビットまたは３２ビット２進数の値がＦＳＰ復号化手段１６により決定される。その場合２進数Ｄの最下位バイトはバイトＣに等しく、かつ２進数Ｄの最下位バイトの次のバイトはバイトＡに等しい。したがって２進数Ｄ＝ＡＣとなる。ステップ４０は第２のＡＲＭプロセッサ命令を必要とする。次のステップ４２で、Ｅ＝Ｄ＋１として特定される第２の１６ビットまたは３２ビット２進数の値がＦＳＰ復号化手段１６により決定される。ステップ４２は第３のＡＲＭプロセッサ命令を必要とする。次のステップ４４では、２進数Ｆ＝２進数ＥとＤの論理積の組み合わせ（Ｆ＝Ｅ  ＡＮＤ  Ｄ）として特定される第３の１６ビットまたは３２ビット２進数の値がＦＳＰ復号化手段１６により決定される。ステップ４４は第４のＡＲＭプロセッサ命令を必要とし、この命令はこの提示例のための最後の必要な命令である。
【００４１】
次のステップ４６では、２進数Ｆがゼロに等しいかどうかが確認される。２進数Ｆがゼロに等しくなければ、処理は以下で説明するステップ５０へ進む。これに対して、２進数Ｆがゼロに等しければ、次のステップ４８で、このゼロバイトの次のバイトがパディング用バイトＡ５16として特定され、ＦＳＰ復号化手段１６によりビデオデータ信号２５から取り除かれる。次のステップ５０で、１バイトがスキップされる。というのは、２つの連続するゼロバイトを含むことはパディング用バイトの識別特性ではないからである（ステップ３５参照）。この提示例の場合、上記ゼロバイトの後の１バイトをスキップすることが保証される。というのは、結果として生じる２つのゼロバイトがパディング用バイト様の状況を構成するからである（ステップ３５参照）。これに対して、一般的には、パディング用２進数の挿入を行う異なるアルゴリズムを利用する場合、ゼロバイトの代わりに所定の２進数の使用が可能であり、特定のアプリケーションに用いられる特別のアルゴリズムに応じてスキップ処理手順の修正が可能である。したがって、一般的には、ステップ５０がオプションのステップであり、パディング用バイトを特定する別のアルゴリズムを使用する場合、このステップ５０が不要となる場合もある。次のステップ５２で、パディング用バイトからまだ復号化されていないバイト（あるいは少なくともあと１バイト）がビデオデータ信号２５内にさらに残っているかどうかの確認が行われる。残っていなければ処理は停止する。これに対して、復号化すべきさらに多くのバイトがビデオデータ信号２５内に存在すれば、処理はステップ３２へ戻る。
【００４２】
本発明によれば、ゼロに対して値の比較を行う場合、比較命令を使用する必要がないことに留意されたい。というのは、ＡＲＭでは、個々の命令後に、当該命令の結果がゼロであれば自動的にゼロフラグの設定を行うことが可能であるからである。したがって、ビデオデータ信号２５からパディング用バイトを除去するのに４個のプロセッサ命令のみを必要とし、これによって上述のように、従来の方法を利用する場合よりも大幅に少ないプロセッサ命令ですむことになる。
【図面の簡単な説明】
【００４３】
【図１】本発明に基づくＦＳＰの復号化を利用するカメラフォン（電子デバイス）の１例を表すブロック図である。
【図２】本発明に基づいて、ＪＰＥＧにより符号化されたビデオデータ信号のＦＳＰの復号化を行うためのフローチャートを示す。
【符号の説明】
【００４４】
１０    カメラフォン（電子）デバイス
１２    カメラ
２２    符号化済みビデオデータ信号
１４    電話エンジン
１８    メモリ
２４    コンパクトカメラポート（ＣＣＰ）ブロック
１６    ＦＳＰ復号化手段
２０    プロセッサ
２８    さらなる処理または利用へ
【図１】
2005130490.tif 000004
【図２】
2005130490.tif 000005