JP5289333B2 - データストリームを生成し、データストリーム内の位置を識別する方法 - Google Patents

データストリームを生成し、データストリーム内の位置を識別する方法 Download PDF

Info

Publication number
JP5289333B2
JP5289333B2 JP2009549554A JP2009549554A JP5289333B2 JP 5289333 B2 JP5289333 B2 JP 5289333B2 JP 2009549554 A JP2009549554 A JP 2009549554A JP 2009549554 A JP2009549554 A JP 2009549554A JP 5289333 B2 JP5289333 B2 JP 5289333B2
Authority
JP
Japan
Prior art keywords
stream
marker
data
binary
variable length
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009549554A
Other languages
English (en)
Other versions
JP2010519806A5 (ja
JP2010519806A (ja
Inventor
サミ ニエミ,
ヨハン ステン,
Original Assignee
モービル イメージング イン スウェーデン アー・ベー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from SE0700446A external-priority patent/SE533185C2/sv
Application filed by モービル イメージング イン スウェーデン アー・ベー filed Critical モービル イメージング イン スウェーデン アー・ベー
Publication of JP2010519806A publication Critical patent/JP2010519806A/ja
Publication of JP2010519806A5 publication Critical patent/JP2010519806A5/ja
Application granted granted Critical
Publication of JP5289333B2 publication Critical patent/JP5289333B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4092Image resolution transcoding, e.g. by using client-server architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/68Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving the insertion of resynchronisation markers into the bitstream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、可変長符号化方式により符号化されたデータストリームを生成するための、コンピュータプログラム製品を含む方法及び装置に関し、更に可変長コードのストリーム中におけるコードワードの位置を識別する方法に関する。
写真、静止画像、グラフィックスなどのような今日の画像は、ディスプレイを有するあらゆる電子デバイスで普通に閲覧される。しかしながら、ディスプレイで画像を閲覧できるだけでは十分ではなく、撮影画像が大きくなるにつれ、画像を合理的な時間で表示できることが重要である。画像をディスプレイに表示する電子デバイスのユーザは、ほとんどの場合、画像のビューを変化させることができることに関心を持つ。ユーザが要求する幾つかの共通の操作は、画像をズームインして画像の細部を閲覧すること、ズーム画像をパンして特徴を追跡するか、又は単に細部の概略図を入手し、画像を回転させてディスプレイでの閲覧を容易にすることなどである。更に、このような電子デバイスのユーザが処理する画像の解像度は高くなっており、すなわち一つの画像を定義するピクセルの数が増加している。
前記電子デバイスは、例えば携帯電話機、携帯情報端末、パームトップ、又は画像処理の点で処理能力が低い他のデバイスとすることができる。例えば、画像を閲覧するためのディスプレイを有する多数の前記電子デバイスは、連続して提示されるビューの間で頻繁に発生する悩ましい遅延を伴うことなく、ズーム、パンなどの操作を行なうために十分な処理能力を持っていない。この結果、画像の連続的なズームイン又はズームアウトは、長い画像間遅延を伴って提示される複数の画像と感じられる。従って、連続的にズームしているという実感が得られず、ユーザにイライラ感を生じさせる。この結果、ユーザによる処理間違い、又は入力間違いが発生する恐れもある。
この問題を解決する一つの共通の方法は、デバイスの処理能力を高めること、又はユーザが連続的な流れを感じることを期待するような操作を回避することである。
本発明の目的は、可変長符号化ストリーム及び/又は画像の操作性を向上させ、このようなストリーム及び/又は画像を連続操作するユーザの体感を向上させること、並びに、撮影画像を復号化してスクリーンに映すために要する時間を短くすることである。
本発明の一態様によれば、上の目的は、可変長符号化方式により符号化されたデータストリームを生成する方法により達成される。本方法は、複数のコードワードを含む一つのデータストリームのコードワードを可変長符号化方式に従って符号化するステップと、データストリーム内の符号化コードワードの間に分割マーカを挿入するステップとを含む。
分割マーカを挿入することにより、可変長コードのデータストリームへの部分的アクセスが容易になる。例えば、可変長符号化により符号化された画像の任意エリアを表わす画像データへのアクセスを高速化することが可能になる。更に、マーカによって、可変長コードのデータストリーム内のデータのデータ形成部分に、アクセス対象のデータよりも前に配置される全ての単一コードを復号化する必要なくアクセスすることができる。これにより、時間及び処理容量の両方を節約することができる。同じ利点が、マーカを使用して、同じ転送媒体又は記憶媒体を共有する個別データストリーム、例えば多重化データストリームを示す場合に得られる。
一実施形態では、前記分割マーカを挿入するステップは、少なくとも16個の連続するバイナリ1を特定のコードワードの後に挿入することにより行なわれる。別の実施形態では、分割マーカを挿入するステップは、16個の連続するバイナリ1ではなく、16個の連続するバイナリ0を挿入することにより行なわれる。16個の連続するバイナリ1又はバイナリ0を含むマーカを使用することにより、当該マーカのサーチを、高速且つ効率的に行なうことができる。この理由は、マーカをバイトレベルで、すなわち8ビット単位で検出することが可能になるからである。バイトレベルでの検出は、可変長コードのデータストリーム内のマーカの一部、すなわち16個の連続するバイナリ1又は0が、必ずバイナリ1又はバイナリ0のみを含むバイトによって表わされることにより可能である。
別の実施形態によれば、特定のコードワードは、一つのデータブロックの末尾のコードワードである。マーカにより一つのデータブロックの末尾と別のデータブロックの先頭とを識別することにより、個々のデータブロックへのアクセスが容易になり、実行速度が有意に高速化される。
更に別の実施形態によれば、前記分割マーカを挿入するステップは、少なくとも16個の連続するバイナリ1を、2つ以上の特定のコードワードの間に挿入することにより行なわれる。
一実施形態では、可変長符号化方式により符号化されたデータストリームを生成する方法は、複数のデータブロックを含む一つのデータストリームのデータブロックを可変長符号化方式に従って符号化するステップと、データストリーム内の符号化データブロックの間に分割マーカを挿入するステップとを含む。
上に説明した実施形態の一つに関して述べたように、分割マーカを挿入することによって、可変長コードのデータストリームへの部分的アクセスが容易になる。例えば、可変長符号化により符号化された画像の、任意エリアを表わす画像データへのアクセスを高速化することが可能になる。更に、マーカによって、可変長コードのデータストリーム内のデータの一部を形成するデータに、アクセス対象のデータよりも前に配置される全ての単一コードを復号化する必要なくアクセスすることができる。これにより、時間及び処理容量の両方を節約することができる。同じ利点が、マーカを使用して、同じ転送媒体又は記憶媒体を共有する個別データストリーム、例えば多重化データストリームを示す場合に得られる。更に、マーカで一つのデータブロックを識別することにより、個々のデータブロックへのアクセスが容易になり、実行速度が有意に高速化される。
一実施形態によれば、分割マーカを挿入する操作は更に、一つの先行ブロックが符号化された後且つ次の符号化データブロックが先行データブロックに付加される前の一つの時点で分割マーカを挿入することを含む。
別の実施形態では、前記分割マーカを符号化するステップ、及び前記分割マーカを挿入するステップをハードウェアによって行う。これにより、マーカの挿入が高速化される。
一実施形態では、前記データストリームにマーカを挿入するステップは、可変長符号化方式により符号化されているデータストリームに関連付けて行なわれる。可変長コードに符号化されているデータストリームに関連付けてマーカを挿入することにより、ストリーム全体を復号化することによりデータストリームにマーカを挿入する場合よりも、符号化の実行が有意に高速化される。
別の実施形態によれば、データブロックの符号化はJPEG規格に従って行なわれ、各データブロックはJPEG規格に準拠した一つのデータユニットに対応する。JPEGデータブロックを含むデータストリームに前記マーカを挿入することにより、符号化データストリームで表わされる画像の特定部分へのアクセスが高速化され、且つ当該アクセスに必要な処理容量が減少する。従って、画像の一部に対する操作が容易に行われる。
別の実施形態によれば、本方法は、分割マーカがバイナリ1を含む場合に8個のバイナリ0を分割マーカの前に挿入するステップ、又は分割マーカがバイナリ0を含む場合に8個のバイナリ1を分割マーカの前に挿入するステップを含む。これらのシーケンスのうちのいずれか又は他のいずれかの既知のシーケンスを分割マーカの前に挿入することにより、分割マーカのデータストリーム内の正確な開始ポイントの識別が容易に行われる。分割マーカの前に挿入されるシーケンスは、別の構成では1セットの8ビットとすることができ、前記8ビットのセットは、少なくとも1ビットのバイナリゼロ値を含み、前記少なくとも1ビットのバイナリゼロ値は、前記8ビットのセットの所定の位置に配置される。更に、前記少なくとも1ビットのバイナリゼロ値の所定の位置は、8ビットのセットの最下位ビットの位置とすることができる。
本発明の別の態様によれば、上の目的は、可変長コードのストリーム内の特に注目される一つのコードワードに関連するデータを取り出す方法により達成される。本方法は、可変長コードのストリーム内の所定のマーカの位置を識別するステップと、可変長コードのストリーム内の特に注目されるコードワードの開始位置を計算するステップと、特に注目されるコードワードに関連するデータを取り出すステップとを含む。
所定のマーカを可変長コードのデータストリーム内で使用して、データストリーム内の注目位置を識別することにより、データストリーム全体を復号化して同位置を検出しようとする場合よりも、この位置へのアクセスに必要な時間と処理容量とが低減される。例えば、可変長符号化により符号化された画像の任意エリアを表わす画像データへのアクセスを高速化することが可能になる。
更に、マーカによって、可変長コードのデータストリーム内に位置するデータに、アクセス対象のデータよりも前に配置される全ての単一コードを復号化する必要なくアクセスすることができる。同じ利点が、同じ転送媒体又は記憶媒体を共有する個別データストリーム、例えば多重化データストリームを示すためにマーカを使用する場合に得られる。
特定の実施形態によれば、本方法は更に、可変長コードのストリーム内の少なくとも一つの更に別の所定のマーカの位置を識別するステップと、可変長コードのストリーム内の特に注目される前記少なくとも一つの更に別のコードワードの開始位置を計算するステップと、特に注目される少なくとも一つの更に別のコードワードに関連するデータを取り出すステップとを含む。複数のマーカが識別されてデータストリームの復号化に使用されるので、当該プロセスに必要な時間及び処理能力が共に低減される。
別の実施形態では、特に注目されるコードワードに関連するデータを取り出すステップは、データストリーム内の特に注目されるコードワードの計算された開始位置を取り出すこと、及び可変長コードのストリームの特徴量のリストにこの開始位置を挿入することを含む。特に注目されるコードワードの位置を取り出し、この位置を保存することにより、データストリームをマッピングすることができ、それによりデータストリームの一部への将来のアクセスを大幅に高速化することができる。
更に別の実施形態によれば、特に注目されるコードワードに関連するデータを取り出すステップは、特定のコードワードで表わされる値を取り出すことを含む。この実施形態によって、使用頻度が更に低い特定の値へのアクセスが高速化される。例えば、保存されないと推測される画像に対して操作を行なう場合に、特定の値へのアクセスが高速化される。
一実施形態では、可変長コードのストリームは一つの画像の圧縮表現であり、特に注目されるコードワードは、可変長コードのストリーム内の一つのデータユニットのDC係数である。これにより、撮影画像の縮小版の高速生成が容易になる。
他の幾つかの実施形態では、本発明の第1の態様に関連して述べたマーカに対応するマーカ、及び本発明の第1の態様に関連して述べたマーカに先行するコード配列は、本発明の第2の態様による方法に使用される場合、ほぼ同じ利点をもたらす。
更に別の実施形態では、所定のマーカの位置を識別するステップは更に、可変長コードのストリーム内にあってマーカの隣に配置される所定のシンボルを識別することを含み、所定のシンボル及び所定のマーカの、一方から他方への移行部分がマーカの位置として識別される。この実施形態を実行することにより、所定のマーカの位置の決定が容易になる。
別の実施形態によれば、所定のシンボルはエンドオブブロックシンボル、EOBである。
更に別の実施形態では、特定のコードワードの可変長コードのストリーム内の開始位置の計算は、所定のマーカの位置、及びマーカの既知の長さに基づいて行なわれる。
別の方法によれば、可変長コードのストリームは複数のコードワードを含むデータブロックを含み、特に注目されるコードワードは一つのデータブロックの先頭のコードワードであるので、特に注目されるコードワードの開始位置の計算が、前記データブロックの開始位置の計算に一致する。マーカにより、一つのデータブロックの末尾、及び別のデータブロックの先頭を識別することにより、個々のデータブロックへのアクセスが容易となり、その実行が有意に高速化される。
本発明は、可変長符号化(VLC)方式又はエントロピー符号化方式により符号化されたデータブロックのストリームのインデックス作成の高速化を容易にする方法、装置、及びコンピュータプログラム製品に関する。本発明の一実施形態によれば、インデックス作成の高速化は、データストリーム内に連続的に配置されるデータブロックの間にデータブロック分割マーカを挿入することにより行なうことができる。本出願では、データストリームとは、同じデータファイルの一部であることにより、ネットワークを介して送信される同じデータメッセージの一部であることにより、互いに対して関連付けられるデータを意味し、このようなメッセージは、ストリーミングオーディオ又はストリーミングビデオ、或いはこれらの組み合わせのような同じ情報ストリームの一部であることにより、異なるパッケージに分割することができるか、又はネットワークに応じて一つの連続ストリームとして送信することができる。
本発明の種々の実施形態は、データブロックが、VLC方式又はエントロピー符号化方式、例えばハフマン符号化、算術符号化などにより符号化される、あらゆる種類のデータストリームに適用することができる。これらの符号化方式は情報を圧縮するように設計されており、これらの符号化方式を使用する一つの効果は、符号化データストリーム内のコードワードとも呼ばれる全てのシンボルが、同じコード長を有する訳ではないことである。
しかしながら、コードの方式は、一つのシンボルの末尾と、別のシンボルの先頭とを認識するために、ストリーム内の全ての先行するシンボルを処理することが必要なものである。
本出願に関連して、シンボルとは、ユニットの集合の中の一つのユニットを意味し、この場合各ユニットは、それぞれに割り当てられた個別ビットコードを有する。本出願では、データブロックとは、相対的に長いデータストリームの一部、例えば画像データの一部、オーディオストリームの一部、画像ストリームの矩形画像ブロックなどを表わす何らかのデータを意味する。
一実施形態では、2つ以上の可変長符号化ストリームを、更に特殊なルールに従って、例えば第1信号のn個のシンボル、及び第2信号のm個のシンボル、更には第3信号のk個のシンボルを交互に並べることにより混合することが望ましい。
これにより、シンボルの全てを処理することにより異なる信号の間の境界を検出しなければならないため、受信側エンドで信号を分離する際に大きな困難が生じる。
別の実施形態では、可変長符号化ストリーム内において、迅速に特定のシンボルを検出するか、又は例えばn番目ごとのシンボルを検出することも望ましい。このためには普通、シンボルの全てを処理することにより所望のシンボルの位置を検出することも必要である。
更に別の実施形態では、2つ以上の信号を単一の通信チャネルで送信できることが望ましい。これは普通、2つ以上の信号を交互に並べて、第1信号のnビットをまず送信し、次に第2信号のmビットを送信し、次に第1信号のbビットを送信するなどすることにより行なうことができる。
本発明は、可変長符号化プロセスにおいて生成されるストリームに挿入することができる特殊マーカを利用することにより、可変長符号化ストリームを使用する際の上述の問題を解決する。これらのマーカを使用して、データストリーム内の特定シンボルを検出するプロセスを高速化することができる。更に、本発明は、前記マーカを効率的な方法で削除することにより、一又は複数の元のストリームを作成又は再生する方法を紹介する。
前記マーカの利用例
可変長符号化ストリームは、異なるビット長のシンボルにより構成される。以下のシンボルは、例えば以下のコードワードによって表わすことができる:
A=10
B=110
C=111
D=0000
E=0001
次のシンボル「CBCDBEDCABCBECB」に対応するビットストリームは以下のようになる。
11111011 10000110 00010000 11110110 11111000 01111110
ビットストリームを復号化して元のシンボルにするために、ビットストリームを左から復号化し、正しいシンボルが生成されるまでビットを読み出す。ビットストリーム全体を復号化することにより、シンボルの間の境界の位置を理解することができる。
Figure 0005289333

このアプローチの問題は、特に多数のシンボルを処理する必要がある場合,
ソフトウェアで実行するのに非常に長い時間を要することである。
16進数で記述される同じビットストリームは以下の表現に対応する。
FB 86 10 F6 F8 7E
本発明の種々の実施形態によれば、ビットマーカ又はシンボル分割マーカを利用して、特定マーカの検出を高速化することができる。
ビットマーカは、8の整数倍であり且つ少なくとも16ビット長である長さの、一連のバイナリ1により構成することができる。最も注目すべきマーカは、16個のバイナリ1、すなわち11111111 11111111により構成される。
ストリーム内においてシンボル「A」の後ろに境界をマークしようとする場合、この操作は、ストリーム内のシンボル「A」の後ろに16個のバイナリ1を挿入することにより行なわれる。
Figure 0005289333

従って、結果として得られるビットストリームは次のようになる。
1111101110000110000100001111011111111111111111101111100001111110
16進数で記述される同じビットストリームは以下のようになる。
FB 86 10 F7 FF FE F8 7E
ここで、16個のバイナリ1がストリームに書き込まれたので、マーカは常に、後に「00」が絶対に続かない少なくとも一つの「FF」バイトとなる。これはすなわち、自然に発生するFFコードを「FF00」でマークして、マーカではないことを示すことができることを意味する。発生する他の全てのFFが、本発明の種々の実施形態によるマーカであることが保証される。
これは、連続バイトとしてビットストリーム内にバイトFFの位置を容易に特定することができ、次いで簡単な算術論理を使用することにより、マーカを削除し、元のストリームを復元することができることを意味する。
マーカの前のバイトまでのバイトを直接コピーすることができるだけでなく、マーカの1バイト後までのバイトをコピーすることができる。残りのタスクは、バイナリ1を挿入することにより分割され且つ括弧でマークされたバイトを復元することである。
FB 86 10 (F7 FF FE) F8 7E
バイナリ値で記述されたF7 FF FEは以下のようになる。
Figure 0005289333

又は、更に一般的に、
Figure 0005289333
挿入されたバイナリ1は、これらをまとめて連結するとビットマスクと見なすことができるので、挿入されたビットを削除する操作は非常に簡単である。
元のバイト = B1 & B3 = abcde111 & 11111fgh = abcdefgh
結果として得られるストリームは次のようになる。
FB 86 10 (F7&FE) F8 7E = FB 86 10 F6 F8 7E
16個の1の前又は後のシンボルが既知であり、且つ当該シンボルが少なくとも一つのゼロを含む場合、マークされたシンボルの間の境界のビット位置、すなわちマーカの位置を検出するのは非常に簡単である。マーカの位置は、マーカが削除されている場合には隣接シンボルの位置である。
これは、「FF」の左側の最初のゼロを検出することにより、ゼロを含むシンボルの外観及び/又はコードを認識し、次に当該シンボルの末尾の位置を計算することにより行なうことができる。
これを可能にする別の方法は、既知のシンボルを有する全ての可能なエントリが、ビット位置(p)をテーブル内の値で入力される場合、「FF」の前のバイトに対応する256個のエントリのルックアップテーブルを使用することにより行うことである。
ルックアップ技術を示す実施例
16個の1の前の既知のシンボルが10であると仮定すると、バイト1(Byte 1)は以下に示す値しか採ることができず、xはバイナリ1及びバイナリ0の全ての順列であり、pは16個の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)が得られる。
シンボルが既知ではない場合、例えば8ビット長の合計長さを有することが好ましい既知のコード(K)を必ず挿入することができるので、マークされたシンボルの間の境界の位置を特定することが必要なシンボルを認識する一方で、当該コードを容易に削除することができる。
この目的のために使用するのに非常に良いコードは、「00000000」である。その理由は、マーカを削除するときにこのコードをビットマスクとして使用することができるからである。すなわち、
K = 0000 0000
このような変形ストリームは以下のように現われる。
Figure 0005289333

バイト単位で並べると、変形ストリームは次のように現われる。
11111011 10000110 00010000 11110000 00000111 11111111 11111110 11111000 01111110
16進数で表すと、このストリームは以下のようになる。
FB 86 10 (F0 07 FF FE) F8 7E
上記からFFを検出することができ、FFの前に位置し且つ既知のシンボルKを表わすバイトを検出することにより、シンボルKの末尾を理解することができるので、遡って計算することにより、Kの前に位置し且つマークされたシンボルの間の境界を表わすシンボルの末尾を検出することができる。
シンボルKは、当該シンボルの最初のバイナリゼロを右側から数えて最初の位置に有するので、シンボルKの前のシンボルの末尾は、検出されたバイナリゼロの左側まであと7個の位置になる。
F0 07 FF FE = 11110000 00000111 11111111 11111110
次に、FFの左側に最初に出現し且つ以下のxでマークされたバイナリゼロを検出することにより、削除を行なうことができる。
11110000 0000x111 11111111 11111110
当該出現が検出された後、検出されたバイナリゼロの左側の7ビットから始まる、rでマークされた次の24ビットを削除する。
11110rrr rrrrrrrr rrrrrrrr rrrrr110
ここで、4バイトをまとめて1バイトにすることができ、以下の結果が得られる。
1111110 = F6
よって、結果として得られた合計バイトアレイは元のストリームになる。
FB 86 10 F6 F8 7E
上記マーカの削除は、ゼロであるKがマスクとして機能できるので、何らかの簡単な算術論理により容易に行なわれる。
Figure 0005289333

B1 = (B1|B2)&B4 = (F0|07)&FE = F7&FE = F6
2つ以上の信号を同じチャネルで送信する場合に前記マーキング法を使用する実施例を以下に説明する。
一つのチャネルのみで送信する必要のある以下の2つのビットストリーム(Stream)について考察する。
Figure 0005289333
16進数で表すと、これは以下のようになる。
B7 0C 21 7C 18 7E
Figure 0005289333

16進数で表すと、これは以下のようになる。
B0 87 1D 6B 85 82
これらのストリームをこの実施例では交互に混ぜて、ストリームAの5つのコードワードを送信し、次にストリームBの8つのコードワードを送信し、次にストリームAの5つのコードワードを送信するなどする。
Figure 0005289333

結果としてバイナリストリームは以下のようになる。
101101110000110101100001000011100011101000010000
101111101101011100001011000001000001100001111110
16進数で表すと以下のようになる。
B7 0D 61 0E 3A 10 BE D7 0B 04 18 7E
受信側は次に、VLCシンボルの全てを処理することにより2つの元のストリームを再現する必要がある。
本発明の実施形態では、2つのストリームを更に効率的な方法で分離することを可能にするために特殊マーカを利用する。普通、マーカを挿入する方式は、以下の実施例におけるよりもずっと少ない頻度でしか行なわれないので、非常に大きいオーバーヘッドは必要ない。
Figure 0005289333

B7 0C 01 FF FE 21 7C 01 FF FE 18 7E
Figure 0005289333

B0 87 1D 00 7F FF FB 85 82 00 FF FF
次に、第1ストリームをFFの位置まで出力し、次に第2ストリームをFFの位置まで出力し続け、次に第1ストリームを次の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)A: B7 0C 01 FF FE 21 7C 01 FF FE 18 7E
ストリーム(Stream)B: B0 87 1D 00 7F FF EB 85 82 00 FF FF
次に、各ストリームを処理し、簡単な算術論理によりマーカを削除することができる。
B = (b1|b2)&b4
ストリームA: B7 0C 01 FF FE 21 7C 01 FF FE 18 7E
ストリームB: B0 87 1D 00 7F FF EB 85 82 00 FF FF
上のストリームは以下のようになる。
ストリームA: B7 (0C|01)&FE 21 (7C|01)&FE 18 7E = B7 0C 21 7C 18 7E
ストリームB: B0 87 1D (00|7F)&EB 85 (82|00)&FF = B0 87 1D 6B 85 82
これらのストリームが元のストリームである。受信側における分離演算は、いかなるビット演算又は可変長符号化も行なうことなく完全に行なわれた。
更に別の実施形態によれば、シンボルKは、所定のゼロを所定のビット位置に有する任意の7ビット数値とすることができる。上の説明を拡張し、所定のゼロの位置を認識することによりマーカの先頭を検出することができる。実施形態のうちの一つによれば、ゼロは最下位ビットであり、最上位の7ビットを他のデータ、例えばゼロから127まで増加する数字に使用することができる。このようにして、128個までのマークされたコードワードを、単にバイトストリームを検出することによりスキップすることが容易になる。
本発明の一態様によれば、上に説明した汎用方法を適用して、JPEGストリームの処理に使用することができる。既存のJPEGエンコーダを最小限の変更を加えて修正することにより、DUの末尾を示す特殊マーカを含む互換性のないJPEGデータの別のストリームを生成する方法について、以下に説明する。この場合、互換性のないJPEGデータを分析することにより、各DUの先頭をマッピングすることができ、規格に準拠しないマーカを、不揮発性メモリに記憶しながら削除することができる。
更に、コードワードが、復号化することにより既に符号化されているユニットを生成することができる一連のビットを意味することに留意されたい。全てのコードワードが同じ長さである訳ではない。この事実に関係なく、これらのコードワードは、厳密に単一シンボルの可変長表現を意味する訳ではない。このような更に複雑なコードワードの例が、jpegストリームに使用されるコードワードである。ここに定義されるJPEGコードワードにより、非ゼロ数が後に続く連続したゼロが符号化され、零ランレングスを表現するシンボルと非ゼロ数の絶対値との組み合わせの後に、当該絶対値に基づいた数の最下位ビットが続く。
よって、非ゼロ数又はそれらのサブセットのうちのいずれかが後に続く、連続したゼロに対応して生成される連続ビット全体は、本発明の定義によるコードワードとして解釈することができる。
コードワードとして解釈されるべき他のサブセットは、最下位ビットを表わすビット、又は非ゼロ数の絶対値と、零ランレングスを表現するシンボルとの組み合わせである。
JPEGストリームは、64個の係数の複数のデータユニット(DU)から成る。これらの係数は、可変長のハフマン符号化シンボルによって表わされ、普通、最後の係数はゼロであり、エンドオブブロック(EOB)シンボルを使用して、末尾にゼロを有するデータユニット(DU)を終了させる。
幾つかのアプリケーションでは、DUのビット位置を認識することが非常に有用である。
1)小型スクリーン上への大規模JPEG画像の瞬時の表示。DU位置が既知である場合、一つのブロックの最初の係数のみを復号化し、これにより元の画像の縮小版を生成する処理が非常に迅速に行なわれる。
2)DU位置が既知である場合、いずれのデータユニット(DU)にもランダムにアクセスすることができる。絶対DC係数も既知である場合、先行ブロックを復号化する必要なくJPEGの一領域を復号化することができる。
本方法により、ハードウェアに格納することができるエンコーダコンポーネントを変更し、一つのブロックの末尾を示すマーカを生成することができ、これらのマーカを受信側SWコンポーネントが使用することによりDU位置を検出することができ、その後、マーカを容易に削除することができるので、DU位置データベース、及び/又は符号化画像の縮小版を高速に生成することができる。符号化は、速度問題のためにHWで行なってもよい。これは、JPEGのデータストリームのデータユニットの開始位置を保存するための余分のメモリを必要とすることなく、標準JPEG HWの変更を可能にする簡単なアプローチである。余分のメモリは、非常に高価な2number_of_data_units(16ビット)=>2mpix=60000 DU’s=>120kbメモリとする必要がある。これは、当該メモリが、大きなシリコン面積を占有する待機状態のないメモリであることが好ましいためである。
以下の記述は、このようなJPEGデータの符号化及び復号化の両方に関する。
エンコーダ:
1)EOBが必ず生成されるようにHWを変更する。別の構成として、精巧なQテーブルを使用して、HWが必ず末尾にEOBを付加することを保証する。ゼロが必ず量子化係数nr64に挿入される場合、ハードウェアはEOBを挿入しなければならない。
2)各FFが、元のハフマン符号化ストリームに現われる場合に、末尾「00」を必ず挿入する。これは既に、有効なJPEGストリーム内で行なわれている。
3)各DU(又は、EOB)の後に、複数の8であって、但し少なくとも16個のバイナリ1を付加する。
これは、ハフマンテーブルを変更して、EOBシンボルを、12個の末尾バイナリ1が付加された普通の2〜4バイトシンボルを含むように変更し、DCテーブルを、実際のDCシンボルの前に4個の1を含むように変更することにより行なうこともできる。次に、エンコーダに、ビットストリーム内のEOBを必ず符号化させる。これは、EOBとDCとの間に、16個のバイナリ1のマーカが必ず含まれることを意味する。
この実施形態の一実施例として、正しいEOB及び新規EOBは、与えられた正しいEOBに対する上述の調整を考慮すると、以下のようになる。
正しいEOB: 1010
新規EOB: 1010111111111111
更に、正しいDC及び新規DCは下記テーブルに記述されるように、互いに関連する。
Figure 0005289333

この方式により、上のEOBの例と、上のテーブルの3番目のDCである新規DCの例を使用すると、3番目のDCと組み合わせたEOBは、「1010 1111111111111111 010」に対応する。従って、結果は、EOBの後に16個のバイナリ1を付加した場合と同じとなる。
本方法の一実施形態により16個のバイナリ1を付加する一実施例を以下に示す。この実施例は、汎用ハフマン符号化ストリームに一般化される。
この実施例では、以下のハフマンテーブルを使用する。
A=10(EOB)
B=110
C=111
D=0000
E=0001
ハフマン符号化されたシンボルストリング「CBCDBEDCABCBECB」は、ハードウェアで符号化すると以下のビットストリームになる。
11111011 10000110 00010000 11110110 11111000 01111110 …
FB 86 10 F6 F8 7E
下線で示す位置はEOBを示している。
次に、16個のバイナリ1をEOBの後に挿入する。
11111011 10000110 00010000 11110111 11111111 11111110 11111000 01111110 …
FB 86 10 F7 FF FE F8 7E
次に、復号化の一実施例を示す。この復号化はソフトウェアで行なうことができる。
ステップ1。末尾「00」を持たないFFを探す。JPEGストリームでは、「FF 00」のみが許容されるが、これはこのようなルールでは出現できない。検索されたFFが本発明のマーカであることが100%確実であることを意味する(リスタートマーカがJPEGストリームに使用されないことを前提とする)。
次に、EOBシンボル(この例では、10)に向かって検索を絞り込み、次のDUの開始位置がEOBのすぐ後に検出される。
16個の1を削除し、次のDUのビットアドレスを記憶する。
11111011 10000110 00010000 11110110 11111000 01111110 …
FB 86 10 F7 FF FE F8 7E
FB 86 10 F6 F8 7E
上記から分かるように、1バイトのみを変更すればよく、2バイトを削除する必要があり、これらのバイトの残りのバイトのワードは既に正しく配列されている。
FB 86 10 F7 FF FE F8 7E
FB 86 10 F6 F8 7E
更には、1の挿入数が32であると、残りのバイトのワードは長く配列されて、32ビット単位でのmemcpyが可能になる。2バイトを更に付加することによりファイルが大きくなり、従ってネットワークのバスを介してデータを移動させる場合に帯域要求が増加するので、これは常に望ましいわけではない。
FB 86 10 F7 FF FF FF FE F8 7E
FB 86 10 F6 F8 7E
2バイトを結合して1バイトにするプロセスは極めて簡単でもある。
FB 86 10 F7 FF FE F8 7E
FB 86 10 F6 F8 7E
F7及びFEを結合する(Join)演算は非常に簡単であり、挿入される16個の1がビットマスクとして働くので、これらの単なる論理「積」演算である。
Byte1 = F7
Byte2 = FE
JoinedByte = Byte1 & Byte2
上の表現は、以下の例を考察すると更に見易くなる。
abcde111 11111111 11111fgh

Byte1 = abcde111
Byte2 = 11111fgh
JoinedByte = abcde111 & 11111fgh = abcdefgh
上の例は、ストリーム内の全てのDUのビットアドレスを迅速に検出するプロセス、及びマーカを迅速に削除することで元のストリームを再現するプロセスを記述している。
アルゴリズムを変更して、各DUのDC係数の検出に使用することができる。次に、DC係数を復号化することにより、各DCのデータを使用して、画像の8分の1縮小版を生成することができる。同じ操作を、4分の1縮小版が必要になる場合に行なうことができ、この場合、DC係数及び多数の後続のACを復号化することにより、これらの係数に対して2x2 IDCTを行なうことが可能になる。マーカでDC係数の位置を示すことにより、他の係数をハフマン復号化する操作をスキップすることができるので、撮影瞬間における小型スクリーンに合わせた画像の縮小を高速化することができる。この実施形態は、縮小画像を表示するプロセスを高速化するために、いずれのアプリケーションにおいても利用することができる。
このようなアプリケーションの一実施例は、ディスプレイをビューファインダーとして使用する画像取得アプリケーションである。これらのアプリケーションにおける一つの一般的な問題は、画像ビューを表わす画像の提示の遅延である。即ち、ユーザが所望のビューをディスプレイで眺めるときには当該瞬間がずっと前に過ぎてしまっている。このようなアプリケーションでは、DC係数の位置を示すマーカを含むデータストリームを供給し、マーカを探す表示プロセスを実行し、マーカの位置のDC係数に関連する情報を取り出し、この情報に基づいて縮小サイズ画像を生成してディスプレイに提示することにより、遅延を有意に短くすることができる。
更に、本発明の一態様により、最小限の変更を加えてJPEGエンコーダを変更することで、DUの末尾を指示する特殊マーカを含む非互換性JPEGデータの別のストリームを生成する方法が提示される。次に非互換性JPEGデータを分析することにより、各DUの先頭をマッピングすることができ、規格に準拠しないマーカを、不揮発性メモリに記憶させながら削除することができる。
上の実施例では、マーカを少なくとも16個のバイナリ1に設定する。マーカは、少なくとも16個のバイナリ0、すなわち0000000000000000に設定することもできる。マーカを16個のバイナリ0に設定する場合、マーカの前に挿入される既知コードは「11111111」とすることができる。従って、コード000000001111111111111111が111111110000000000000000に反転される。
本発明は、デジタル電子回路として表現することができるか、又はコンピュータハードウェア、ファームウェア、ソフトウェア、或いはこれらの組み合わせとして表現することができる。本発明の装置は、機械読み取り可能な記憶装置の中に実体として具現化されたコンピュータプログラム製品として実施し、プログラマブルプロセッサで実行することができる。本発明の方法ステップは、入力データを操作し、出力を生成することにより、本発明の機能を実行するための命令のプログラムを実行するプログラマブルプロセッサによって実行することができる。本発明は、有利には一つ以上のコンピュータプログラムとして表現することができ、これらのコンピュータプログラムは、データ記憶システム、少なくとも一つの入力デバイス、及び少なくとも一つの出力デバイスからデータ及び命令を受信し、データ及び命令をこれらに送信するように接続された少なくとも一つのプログラマブルプロセッサを含むプログラマブルシステムで実行することができる。各コンピュータプログラムは、高レベルのプロシージャ型言語又はオブジェクト指向プログラミング言語で記述することができるか、又は必要に応じて、アセンブリ言語又は機械言語で記述することができる。いずれにしても、言語はコンパイル言語又は解釈言語とすることができる。適切なプロセッサは、例えば汎用及び専用両方のマイクロプロセッサを含む。一般的に、プロセッサは、リードオンリメモリ、及び/又はランダムアクセスメモリから命令及びデータを受信する。一般的に、コンピュータは、データファイルを保存する一つ以上のマス記憶装置を含み、このようなデバイスは、内部ハードディスク及び取り外し可能なディスクのような磁気ディスク;磁気光ディスク;及び光ディスクを含む。コンピュータプログラム命令及びデータを実体として具現化するのに適する記憶装置は、例えばEPROM、EEPROM、及びフラッシュメモリデバイスのような半導体メモリデバイス;内部ハードディスク及び取り外し可能なディスクのような磁気ディスク;磁気光ディスク;及びCD−ROMディスクを含む全ての形態の不揮発性メモリを含む。前記のいずれも、ASIC(特定用途向け集積回路)によって補完することができるか、又はASICに組み込むことができる。
ユーザとの相互作用を可能にするために、本発明は、ユーザに対して情報を表示するモニタ又はLCDスクリーンのようなディスプレイ装置を有するコンピュータシステムで実行することができる。ユーザは、キーボード、マウスのようなポインティングデバイス、トラックボール、マイクロホン、タッチ検出ディスプレイ、トランスデューサカードリーダ、磁気又は紙テープリーダ、タブレット、スタイラス、音声又は手書き認識器のような種々の入力デバイス、又は、他のコンピュータのような他のいずれかの公知の入力デバイスを介して、コンピュータシステムに入力を供給することができる。コンピュータシステムは、グラフィカルユーザインターフェースを提供するようにプログラムすることができ、このグラフィカルユーザインターフェースを介してコンピュータプログラムはユーザと相互作用する。
最後に、プロセッサは、任意で、コンピュータ又は電気通信ネットワーク、例えばインターネットネットワーク、又はイントラネットネットワークに、ネットワーク接続を使用して接続することができ、これを介して、プロセッサは、上述の方法ステップを実行する過程でネットワークに情報を出力することができるか、又はネットワークから情報を受信することができる。プロセッサを使用して実行される命令のシーケンスとして表現されることが多いこのような情報は、例えば搬送波内に具体化されるコンピュータデータ信号の形態で、ネットワークから受信し、ネットワークに出力することができる。上に説明したデバイス及び材料には、コンピュータハードウェア及びソフトウェア分野の当業者にとって周知である。
本発明は、コンピュータシステムに保存されるデータを利用した種々のコンピュータ実行演算を用いることに注目されたい。これらの演算は、制限されないが、物理量の物理的操作を必要とする演算を含む。普通、必ずではないが、これらの量は、保存、転送、合成、比較、或いはそれ以外の操作が可能な電気信号又は磁気信号の形態を採ることができる。本明細書に説明され、且つ本発明の一部を構成する演算は、有用な機械演算である。実行される操作は多くの場合、「生成する」、「識別する」、「実行する」、「決定する」、「比較する」、「ダウンロードする」、又は「検出する」のような用語を指す。基本的に、広く使用されているという理由により、これらの電気信号又は磁気信号を、「ビット」、「値」、「要素」、「変数」、「特徴」、「データ」などで表現すると便利である場合がある。しかしながら、これらの用語及び類似の用語の全ては、適切な物理量に関連付けられ、且つこれらの量に適用される単なる便宜的なラベルに過ぎない。
本発明はまた、前述の演算を実行するデバイス、システム、又は装置に関する。当該システムは、必要な目的のための特殊な構造を有することができるか、又はコンピュータに格納されるコンピュータプログラムによって選択的に起動又は構成される汎用コンピュータとすることができる。上に提示したプロセスは、いずれかの特定のコンピュータ又は他の演算装置に固有に関連付けられる訳ではない。特に、種々の汎用コンピュータは、本明細書の技術に従って記述されるプログラムを用いて使用することができるか、又は別の構成として、更に必要な演算を実行するように特殊化されたコンピュータシステムを構成すると更に便利である。
本発明の多数の実施形態について説明した。しかしながら、本発明の思想及び範囲から逸脱せずに種々の変更を加えることができる。

Claims (12)

  1. 装置のプロセッサによりコンピュータプログラムが実行されることにより、前記装置が実行する方法であって、可変長符号化方式により符号化されたデータストリームを生成する方法において:
    複数のコードワードを含むデータストリームのコードワードを可変長符号化方式に従って符号化すること
    データストリーム内の符号化されたコードワードの間に分割マーカを挿入すること
    を含み、前記分割マーカを挿入することが、少なくとも16個の連続するバイナリ1、または少なくとも16個の連続するバイナリ0を特定のコードワードの後に挿入することにより行なわれる方法。
  2. 前記特定のコードワードがデータブロックの末尾のコードワードである、請求項1に記載の方法。
  3. 装置のプロセッサによりコンピュータプログラムが実行されることにより、前記装置が実行する方法であって、可変長符号化方式により符号化されたデータストリームを生成する方法において:
    複数のデータブロックを含むデータストリームのデータブロックを可変長符号化方式に従って符号化すること
    データストリーム内の符号化されたデータブロックの間に分割マーカを挿入すること
    を含み、前記分割マーカが、少なくとも16個の連続するバイナリ1からなるバイナリ配列、または少なくとも16個の連続するバイナリ0からなるバイナリ配列である、方法。
  4. 前記分割マーカを挿入することが更に、先行ブロックが符号化された後且つ次の符号化データブロックが先行データブロックに付加される前の一つの時点で、前記分割マーカを挿入することを含む、請求項3に記載の方法。
  5. 可変長符号化方式により符号化されたデータストリームを生成する装置であって、
    複数のコードワードを含むデータストリームのコードワードを可変長符号化方式に従って符号化する手段
    データストリーム内の符号化されたコードワードの間に分割マーカを挿入する手段
    備え前記分割マーカを挿入する手段は、少なくとも16個の連続するバイナリ1、または少なくとも16個の連続するバイナリ0を特定のコードワードの後に挿入することにより、前記分割マーカを挿入するように構成される、装置。
  6. 前記データストリームに分割マーカを挿入することを、可変長符号化方式により符号化されているデータストリームに関連付けて実行するように構成される、請求項5に記載の装置
  7. 装置のプロセッサによりコンピュータプログラムが実行されることにより、前記装置が実行する方法であって、可変長コードのストリーム内の特に注目されるコードワードに関連するデータを取り出す方法において:
    可変長コードのストリーム内の所定の分割マーカの位置を識別することであって、可変長コードのストリーム内の、分割マーカの隣に配置される所定のシンボルを識別することを含み、所定のシンボル及び所定の分割マーカの一方から他方への移行部分をマーカの位置として識別する、こと
    前記可変長コードのストリーム内の特に注目されるコードワードの開始位置を計算すること
    特に注目されるコードワードに関連するデータを取り出すこと
    を含み、前記所定の分割マーカが、少なくとも16個の連続するバイナリ1からなるバイナリ配列、または少なくとも16個の連続するバイナリ0からなるバイナリ配列である、方法。
  8. 前記特に注目されるコードワードに関連するデータを取り出すことが、データストリーム内の特に注目されるコードワードの計算された開始位置を取り出すことと、この開始位置を可変長コードのストリームの特徴のリストに挿入することとを含む、請求項に記載の方法。
  9. 前記特に注目されるコードワードに関連するデータを取り出すことが、特定のコードワードで表わされる値を取り出すことを含む、請求項に記載の方法。
  10. 前記可変長コードのストリームが画像の圧縮表現であり、前記特に注目されるコードワードが前記可変長コードのストリーム内のデータユニットのDC係数である、請求項に記載の方法。
  11. 装置のプロセッサにより実行されることにより、前記装置に、請求項1から4および7から10のいずれか1項に記載の方法を実行させるプログラム命令を備える、コンピュータプログラム。
  12. プロセッサと、コンピュータプログラムを格納するメモリとを備える装置であって、前記コンピュータプログラムは、前記プロセッサにより実行されることにより、請求項1から4および7から10のいずれか1項に記載の方法を前記装置に実行させるプログラム命令を有する、装置。
JP2009549554A 2007-02-16 2008-02-15 データストリームを生成し、データストリーム内の位置を識別する方法 Active JP5289333B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
SE0700446-8 2007-02-16
SE0700446A SE533185C2 (sv) 2007-02-16 2007-02-16 Metod för behandling av en digital bild samt bildrepresentationsformat
US89143907P 2007-02-23 2007-02-23
US60/891,439 2007-02-23
SE0701690A SE531398C2 (sv) 2007-02-16 2007-07-11 Generering av en dataström och identifiering av positioner inuti en dataström
SE0701690-0 2007-07-11
PCT/SE2008/000125 WO2008100206A1 (en) 2007-02-16 2008-02-15 Generating a data stream and identifying positions within a data stream

Publications (3)

Publication Number Publication Date
JP2010519806A JP2010519806A (ja) 2010-06-03
JP2010519806A5 JP2010519806A5 (ja) 2011-03-31
JP5289333B2 true JP5289333B2 (ja) 2013-09-11

Family

ID=39690338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009549554A Active JP5289333B2 (ja) 2007-02-16 2008-02-15 データストリームを生成し、データストリーム内の位置を識別する方法

Country Status (7)

Country Link
US (2) US7652595B2 (ja)
EP (1) EP2123053B1 (ja)
JP (1) JP5289333B2 (ja)
KR (1) KR101463279B1 (ja)
IL (1) IL200413A0 (ja)
SE (1) SE531398C2 (ja)
WO (1) WO2008100206A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7082450B2 (en) 2001-08-30 2006-07-25 Nokia Corporation Implementation of a transform and of a subsequent quantization
SE533185C2 (sv) 2007-02-16 2010-07-13 Scalado Ab Metod för behandling av en digital bild samt bildrepresentationsformat
DE102007061724A1 (de) * 2007-12-20 2009-06-25 Robert Bosch Gmbh Verfahren zum Übertragen von Daten in einem zyklusbasierten Kommunikationssystem
US8639836B2 (en) * 2009-06-29 2014-01-28 International Business Machines Corporation Smart nagling in a TCP connection
US8520958B2 (en) * 2009-12-21 2013-08-27 Stmicroelectronics International N.V. Parallelization of variable length decoding
EP2519006B1 (en) * 2011-04-26 2013-11-27 BlackBerry Limited Fast estimation of binary data length using memory corruption
US8593309B2 (en) * 2011-11-30 2013-11-26 Intel Mobile Communications GmbH Method for efficient decoding of variable length codes
US8824569B2 (en) 2011-12-07 2014-09-02 International Business Machines Corporation High bandwidth decompression of variable length encoded data streams
US9230339B2 (en) 2013-01-07 2016-01-05 Wexenergy Innovations Llc System and method of measuring distances related to an object
US8923650B2 (en) 2013-01-07 2014-12-30 Wexenergy Innovations Llc System and method of measuring distances related to an object
US9845636B2 (en) 2013-01-07 2017-12-19 WexEnergy LLC Frameless supplemental window for fenestration
US10883303B2 (en) 2013-01-07 2021-01-05 WexEnergy LLC Frameless supplemental window for fenestration
US9691163B2 (en) 2013-01-07 2017-06-27 Wexenergy Innovations Llc System and method of measuring distances related to an object utilizing ancillary objects
US10196850B2 (en) 2013-01-07 2019-02-05 WexEnergy LLC Frameless supplemental window for fenestration
US8933824B1 (en) 2013-08-28 2015-01-13 International Business Machines Corporation Hardware decompression of deflate encoded data with multiple blocks
US9374106B2 (en) 2013-08-28 2016-06-21 International Business Machines Corporation Efficient context save/restore during hardware decompression of DEFLATE encoded data
US9800640B2 (en) 2013-10-02 2017-10-24 International Business Machines Corporation Differential encoder with look-ahead synchronization
CA3042478A1 (en) * 2016-08-31 2018-03-08 Pointerra Technologies Pty Ltd Method and system for storing and retrieving multi-dimensional data
KR102421458B1 (ko) 2016-10-11 2022-07-14 게놈시스 에스에이 액세스 유닛으로 구조화된 생물정보학 데이터에 액세스하기 위한 방법 및 장치
PE20191058A1 (es) 2016-10-11 2019-08-06 Genomsys Sa Metodo y sistema para el acceso selectivo de datos bioinformaticos almacenados o transmitidos
CN111247304B (zh) 2017-05-30 2023-01-13 韦克斯能源有限责任公司 用于窗户配列的无框辅助窗户

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4967196A (en) * 1988-03-31 1990-10-30 Intel Corporation Apparatus for decoding variable-length encoded data
JPH0214620A (ja) * 1988-07-01 1990-01-18 Nec Corp 可変長符号化回路
US5349348A (en) * 1991-08-15 1994-09-20 International Business Machines Corporation Multi-mode data stream generator
JP3197408B2 (ja) * 1993-09-09 2001-08-13 沖電気工業株式会社 マーカ識別用付加ビット処理装置
US5881176A (en) * 1994-09-21 1999-03-09 Ricoh Corporation Compression and decompression with wavelet style and binary style including quantization by device-dependent parser
JPH10341345A (ja) * 1997-06-05 1998-12-22 Kokusai Electric Co Ltd 画像データ処理システム
US6281874B1 (en) * 1998-08-27 2001-08-28 International Business Machines Corporation Method and system for downloading graphic images on the internet
KR100331332B1 (ko) * 1998-11-02 2002-06-20 윤종용 비디오 데이터 송신 장치와 수신장치 및 그 방법
US6381371B1 (en) * 1999-03-17 2002-04-30 Hewlett-Packard Company Method and apparatus for processing image files
US6308257B1 (en) * 1999-04-20 2001-10-23 Intel Corporation Method and apparatus for generating boundary markers for an instruction stream including variable-length instructions
JP2003527655A (ja) 1999-08-02 2003-09-16 アイビューイット・ホールディングズ・インコーポレーテッド 改良されたデジタル画像ファイルを提供するためのシステムおよび方法
WO2001043310A2 (en) * 1999-12-03 2001-06-14 Broadcom Corporation Embedded training sequences for carrier acquisition and tracking
RU2268554C2 (ru) * 2000-03-07 2006-01-20 Конинклейке Филипс Электроникс Н.В. Способ ресинхронизации для декодирования видеосигнала
US7146053B1 (en) * 2000-05-10 2006-12-05 International Business Machines Corporation Reordering of compressed data
JP3924420B2 (ja) * 2000-07-11 2007-06-06 Necエレクトロニクス株式会社 画像圧縮装置及びその方法
US6560745B1 (en) * 2000-07-21 2003-05-06 The United States Of America As Represented By The National Security Agency Method of identifying boundary of markerless codeword
US6931661B2 (en) 2000-10-19 2005-08-16 Motorola, Inc. Dynamic image provisioning
JP3661594B2 (ja) * 2001-02-07 2005-06-15 ソニー株式会社 データストリーム生成装置とその方法、可変長符号化データストリーム生成装置とその方法、および、カメラシステム
JP2003198378A (ja) * 2001-12-25 2003-07-11 Canon Inc 復号化装置および復号化方法ならびに記憶媒体、プログラム
US20040086041A1 (en) * 2002-10-30 2004-05-06 Koninklijke Philips Electronics N.V. System and method for advanced data partitioning for robust video transmission
US7277586B2 (en) * 2003-01-15 2007-10-02 Fujifilm Corporation Images combination processing system, images combination processing method, and images combination processing program
US7447369B2 (en) * 2003-03-07 2008-11-04 Ricoh Co., Ltd. Communication of compressed digital images
US7149370B2 (en) * 2003-03-07 2006-12-12 Nokia Corporation Method and device for image surfing
JP2005031482A (ja) * 2003-07-08 2005-02-03 Matsushita Electric Ind Co Ltd 画像伸長表示方法、画像伸長表示装置、および画像伸長表示用プログラム
FR2857811A1 (fr) * 2003-07-16 2005-01-21 St Microelectronics Sa Methode de chiffrage d'un flux audio ou video compresse a tolerance d'erreurs
WO2005032119A1 (de) 2003-09-26 2005-04-07 Thomson Licensing Verfahren zum speichern eines bildes mit vorschaubild
KR101142584B1 (ko) * 2003-11-18 2012-05-10 스칼라도 아베 디지털 이미지 처리 방법 및 이미지 표현 포맷
US8237712B2 (en) * 2004-03-18 2012-08-07 Apple Inc. Manipulation of image content using various image representations
US7386777B2 (en) * 2004-04-05 2008-06-10 Verigy (Singapore) Pte. Ltd. Systems and methods for processing automatically generated test patterns
US7463775B1 (en) * 2004-05-18 2008-12-09 Adobe Systems Incorporated Estimating compressed storage size of digital data
US7738710B2 (en) * 2004-08-02 2010-06-15 Electronics For Imaging, Inc. Methods and apparatus for communicating and displaying compressed image data
US8121428B2 (en) * 2005-05-31 2012-02-21 Microsoft Corporation Accelerated image rendering
GB2435334A (en) * 2006-02-20 2007-08-22 Graeme Roy Smith Compression and decompression of data stream using a linear feedback shift register

Also Published As

Publication number Publication date
KR101463279B1 (ko) 2014-11-19
IL200413A0 (en) 2010-04-29
EP2123053B1 (en) 2019-02-13
KR20090115208A (ko) 2009-11-04
US20100265966A2 (en) 2010-10-21
US7652595B2 (en) 2010-01-26
EP2123053A4 (en) 2013-06-26
JP2010519806A (ja) 2010-06-03
SE531398C2 (sv) 2009-03-24
WO2008100206A1 (en) 2008-08-21
US20080198047A1 (en) 2008-08-21
US20100098107A1 (en) 2010-04-22
SE0701690L (sv) 2008-08-17
US7847711B2 (en) 2010-12-07
EP2123053A1 (en) 2009-11-25

Similar Documents

Publication Publication Date Title
JP5289333B2 (ja) データストリームを生成し、データストリーム内の位置を識別する方法
CN101647288B (zh) 生成数据流并识别在数据流内的位置
JP5498783B2 (ja) データ圧縮の方法
US20200153942A1 (en) Method and system for transmitting a data file over a data network
JP4801776B2 (ja) データ圧縮
TWI310137B (en) Methods and systems for preventing start code emulation at locations that include non-byte aligned and/or bit-shifted positions
TW200904145A (en) Method for encoding an input image and method and apparatus for displaying an encoded image
US8121428B2 (en) Accelerated image rendering
EA032768B1 (ru) Передача данных восстановления в многоуровневой иерархии качества сигнала
JP2012110016A (ja) ディジタル画像を処理するための方法および画像表現形式
WO1998041026A1 (en) Encoding method, encoder and recording medium, and decoding method, decoder and recording medium
JP5656593B2 (ja) 符号化データを復号する装置及び方法
TW200937875A (en) Compression system for a bit-plane
US20100321218A1 (en) Lossless content encoding
US20090074314A1 (en) Decoding variable lenght codes in JPEG applications
CN110392262B (zh) 一种压缩虚拟桌面图像的方法及装置
US6518896B1 (en) Multiple symbol length lookup table
JP2008166895A (ja) 映像表示装置及びその制御方法、プログラム、記録媒体
TW200937942A (en) Coding system and method for a bit-plane
JP2934603B2 (ja) 可変長さコードの復号化方法及びその装置
WO2010044098A2 (en) Content encoding
JP2014027573A (ja) Ykm形式圧縮プログラムを記録した記録媒体
JP2010258927A (ja) 符号データ処理装置、方法及びプログラム
JP2004120417A (ja) 動画像圧縮装置及びその方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110210

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110210

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120828

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20121119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130403

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130604

R150 Certificate of patent or registration of utility model

Ref document number: 5289333

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250