JPH07222164A - ディジタルビデオ・ビットストリームコーダ - Google Patents

ディジタルビデオ・ビットストリームコーダ

Info

Publication number
JPH07222164A
JPH07222164A JP1119794A JP1119794A JPH07222164A JP H07222164 A JPH07222164 A JP H07222164A JP 1119794 A JP1119794 A JP 1119794A JP 1119794 A JP1119794 A JP 1119794A JP H07222164 A JPH07222164 A JP H07222164A
Authority
JP
Japan
Prior art keywords
command
coefficient
coder
bitstream
buffer memory
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.)
Granted
Application number
JP1119794A
Other languages
English (en)
Other versions
JP3153404B2 (ja
Inventor
Uiriamu Burento Uiruson
ブレント ウィルソン・ウィリアム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP1119794A priority Critical patent/JP3153404B2/ja
Priority to US08/382,673 priority patent/US5644306A/en
Publication of JPH07222164A publication Critical patent/JPH07222164A/ja
Application granted granted Critical
Publication of JP3153404B2 publication Critical patent/JP3153404B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • H—ELECTRICITY
    • H03—ELECTRONIC CIRCUITRY
    • H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42—Conversion 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
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70—Methods 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 【目的】 非常に高速にデータ処理が出来、同時に可変
長コーダがプログラマブルな形でマクロブロックをフォ
ーマット化できるようにすること。 【構成】 このビットストリームコーダはビットストリ
ームの構文と内容を明示するコマンドバッファメモリを
使用する。このメモリはプログラマブル・プロセッサで
書き込むことができるので、ビットストリーム構文はプ
ログラマブルである。ビットストリームコーダはコマン
ドをサポートして固定長データビットシーケンス、可変
長コード化データビットシーケンス、量子化及び可変長
コード化係数データビットシーケンスのブロックをビッ
トストリームに挿入する。速度制御フィードバックパラ
メータはビットストリーム内のビット数を正確にカウン
トする単純なビットカウンタメカニズムを用いて計算す
ることができる。ビットストリームコーダの比較的小さ
なサイズとその単純なインターフェイス故に、ディジタ
ルビデオコーダのVLSI化に適している。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ディジタルビデオコー
ダで使用する可変長コーダ(あるいは「ハフマンコー
ダ」ないし「エントロピーコーダ」としても知られる)
とビットストリーム・フォーマッタに関する。
【0002】
【従来の技術】ディジタルビデオコード化では、ビデオ
信号は、H.261(CCITT、XV小部会文書「勧告
H.261 - px64 kビット/sでのオーディオビジュア
ルサービス用ビデオコーデック」、国際電信電話諮問委
員会、XV調査部会報告R37、1990年8月に記載)、M
PEG−1(ISO MPEG文書、「CD11172 - 移
動画像及び約1.5 Mbps迄のディジタル記憶媒体用の
関連オーディオのコード化」、国際標準化機構、ISO
−IEC/JTC1/SC2/WG8,1992年)ないし
MPEG−2(ISO MPEG文書、「WD編集特別
部会が修正した第3作業草案(ニューヨーク)」、国際
標準化機構、ISO-IEC,1993年8月27日)のよう
な特定の構文に従うビットストリームとして圧縮されて
送信される。それらのコーダでは、離散コサイン変換
(DCT)に基づく損失のあるコード化アルゴリズム
が、ビットストリーム構文フォーマット化を行う可変長
コード化に基づく無損失エンコーダに先行している。無
損失コーダ(「可変長コーダ」(VLC)としても知ら
れる)への入力は一般に、ビデオデータのマクロブロッ
ク(MPEG−1については16 x 16 )の変換係数と、
マクロブロックの副情報(MPEG−1についてはマク
ロブロック・タイプ、動きベクトルなど)及びコード化
ビデオデータのスライス、画像あるいは更に細分割した
ものに対応するヘッダ副情報からなる。
【0003】可変長コーダの1つの機能は固定長入力デ
ータを可変長データに変換することである。例えばこれ
はAC変換係数をゼロラン(run)とレベルの組合せで
コード化するエントロピー符号化により行うことができ
る。また一部の副情報をエントロピーコード化すること
もできる。可変長コーダの別の機能は、データをフォー
マット化(再順序付け)して出力ビットストリーム構文
に一致させることである。可変長コーダの第3の機能
は、DCT係数に課せられる量子化量を制御することで
目標ビット伝送レート近くで出力ビット伝送レートを維
持するのに使用するレート制御フィードバックパラメー
タを決定することである。
【0004】大部分の既存の無損失コーダはビットスト
リーム構文を変える能力なしに既存の基準のサブセット
(subset)をサポートしている。そのような装置の例と
して、H.261のみをサポートするLSI LOGIC L
64750 (LSI論理集積回路データシート「L64750/51
CCITT可変長コーダ/デコーダ」に記載、注文番
号44023、1991年4月)がある。モリソン(米国特許 4,
985,766号、「ビデオコーダ」モリソン他、1991年1月1
5日を参照)は、係数データと副情報を別々にバッファ
することでビットストリームをフォーマット化してい
る。各々のバッファには特殊データスィッチを書き込
み、1つのバッファの読取りをいつ他のバッファにトグ
ルすべきかを示す。そうすることで所望のビットストリ
ーム構文に必要な順序でバッファからデータを読むこと
ができる。再順序付けしたデータはレート制御バッファ
に格納し、読み取って所望のビットストリームビット伝
送レートにするのに必要なレートで可変長コード化され
る。この場合のレート制御フィードバックパラメータは
レート制御バッファの埋まり具合いである。バッファか
ら読み取ったビットストリームデータのビット数はバッ
ファへの書き込みビット数から差し引いてバッファの埋
まり具合いの度合を出す。バッファの埋まり具合いはバ
ッファが下回ったりあふれることがないように係数量子
化の量を調節するのに使用する。
【0005】
【発明が解決しようとする課題】しかしながら、従来の
方法には問題がいくつかある。
【0006】その第1の問題は、急速に変化しているデ
ィジタルA/Vコード化技術及び広範囲のアプリケーシ
ョンにより、今後、様々なビットストリーム構文をサポ
ートし、新しい構文を可能にする必要がある。データの
フォーマット化は一般に非常に複雑であり、ビットスト
リーム構文、コード化アルゴリズム、コード化データの
特性に依存する。本発明の目的は、構文の変化がコーダ
の論理設計に影響を与えない可変長コーダを開発するこ
とである。これは特にMPEG−2や米国のATVなど
現在開発中の今後の基準をサポートするハードウエアに
必要である。
【0007】第2の問題は、市販の製品に適したVLS
Iで実施する上で大きさが十分小さい可変長コーダへの
要望である。
【0008】第3の問題は、市販のビデオコーダの開発
を容易で経済的にするために可変長コーダの使用を簡単
にしなければならないということである。本発明の目的
は可変長コーダ回路に対する単純なインターフェイスを
サポートすることである。
【0009】第4の問題は、データ処理量が非常に高い
ということである。4:1:1標本化幅TVについて
は、マクロブロックは15マイクロ秒毎にコード化しなけ
ればならない。この場合、可変長コーダへの固定長デー
タ(量子化係数プラス副情報)入力レートは27MHzを
超過する。本発明は、非常に高いデータ処理能力を有
し、可変長コーダがプログラマブルな形でマクロブロッ
クをフォーマット化できるようにすることを目的とす
る。
【0010】
【課題を解決するための手段】本発明は、同一ハードウ
エア論理で多くの現在の及び進展しつつあるビットスト
リーム構文をサポートするため、可変長コード、固定長
コード及びDCTのブロックを示すコードを含むビット
ストリームをフォーマット化できる汎用設計である。可
変長コーダのサイズを小さく保つため、ビットストリー
ム出力バッファメモリは可変長コーダを集積回路(I
C)内で実施できるように最終可変長コーダ論理の後に
配置しており、出力バッファメモリはこのIC内に配置
する必要はない。可変長コーダへのインターフェイスを
単純にしておくため、ビットストリーム構文を1つのコ
マンドバッファメモリを用いて完全に特定して構文とデ
ータコマンドを格納できる。係数データメモリはフォー
マット化情報を持つ必要はない。更に、正確なビットカ
ウントと単純なインターフェイスをサポートするビット
カウンタは、レート制御パラメータの計算のためにサポ
ートされている。ビデオデータ固有の非常に高いデータ
レートをサポートするため、本発明をパイプラインとし
て実施することができる。
【0011】本発明は、所望のビットストリーム構文を
特定するコマンドとデータを格納するコマンドバッファ
メモリと、変換係数のブロックを格納する係数バッファ
メモリと、コマンドバッファメモリにより特定されたシ
ーケンスで係数のブロックを挿入しつつコマンドバッフ
ァメモリから構文及びデータコマンドを逐次に読み取
り、コマンドを係数コーダと可変長コーダと固定長コー
ダの1つに配分するコマンドインタプリタと、可変長コ
ーダないし固定長コーダとからなる。本発明は更に、係
数コーダ、可変長コーダ、固定長コーダのいずれかから
ビットシーケンスデータを選択するコードセレクタと、
選択したビットシーケンスを連結して所望の構文のビッ
トストリームを形成する連結器と、ビットストリームを
出力バッファメモリに出力する出力コントローラとから
なる。更にビットストリームの数をカウントするビット
カウンタも本発明に含まれる。
【0012】
【作用】最初にコマンドバッファメモリに構文及びデー
タコマンドを入れる。これは例えばプログラマブル・プ
ロセッサで行うことができ、その場合、構文はプロセッ
サのプログラムを変えることで変更することができる。
またおそらく同時に、係数バッファメモリに量子化係数
データを入れる。それら両方のバッファが少なくとも1
マクロブロックの情報のための十分なスペースを含むこ
とは可能である。バッファの内容が有効であれば、開始
信号をコマンドインタプリタに送ってコマンドバッファ
メモリ内のコマンドの読取りと処理を始めることができ
る。この信号は例えばプログラマブル・プロセッサから
発信することができる。使用中信号はビットストリーム
コーダはコマンドバッファメモリからのコマンドの読取
り、処理を行っている最中であることを示す。ビットス
トリームコーダがコマンドバッファメモリからのコマン
ドの処理を終了すると、特殊な独特なコマンドワードの
処理で示され、使用中信号を非活動化する。
【0013】構文及びデータコマンドはコマンドバッフ
ァメモリから逐次に読み取られる。それらが読み取ら
れ、処理される順序は、結果的なビットストリーム構文
を決定する。可能なコマンドには、特定のビットシーケ
ンスを指定してビットストリームに挿入する固定長デー
タコマンド、可変長コード化しなければならないデータ
及びビットストリームに挿入する結果的な可変長ビット
シーケンスを指定する可変長データコマンド、係数のブ
ロックを可変長コード化しなければならないこと及びビ
ットストリームに挿入する結果的なビットシーケンスを
指定する係数コマンド、例えば後続のコマンドから生じ
る次のビットシーケンスはビットシーケンスの最初のビ
ットは出力ビットストリームデータバスの最上位ビット
として出力されるようにバイト整列しなければならない
ことを指定するフォーマット化コマンド、コマンドの終
わりを特定してコマンドバッファメモリを処理するコマ
ンドがある。例えばコマンド及び係数バッファがデータ
のマクロブロックを格納する場合、最終コマンドはマク
ロブロックデータコマンドの終わりとして扱われる。更
に係数コマンドには係数の位置やどの様な順序で係数を
係数バッファから読み取るべきかといった情報を含める
ことができる。例えばそれはジグザク走査順あるいは代
替走査順で読み取ることができ、その両方はMPEG−
2に明示されている。
【0014】例えば可変長コーダは参照テーブルに基づ
いて実現できる。可変長コードコマンドからのデータを
用いてビットシーケンスの指定をもたらされる参照テー
ブルを索引できる。係数コーダの1例として、連続的な
ゼロ値の係数の数をカウントし、ランレベル組合せを形
成し、次におそらく可変長コーダが用いるのと同じ参照
テーブルを用いて可変長コード化するものがある。
【0015】コードセレクタを用いて係数コーダ、可変
長コーダないし固定長コーダのいずれかの出力からビッ
トシーケンスを選択できる。選択したビットシーケンス
はビットシーケンスを連結してビットシーケンスの1つ
の連続したビットストリームを形成する連結器に送るこ
とができる。更に連結器は必要に応じてビットを挿入し
てビットストリームフォーマット化機能を行わなければ
ならない。例えば上述の後続のビットシーケンスを出力
ワード境界に整列するコマンドは、連結器が実行しなけ
ればならない。また連結器を用いて生来的に直列のデー
タ構造を持つビットストリームを出力ビットストリーム
データバス幅と整合する幅のワードとすることができ
る。それらのビットストリームデータのワードは、それ
を出力バッファメモリに書き込む出力コントローラに送
る。ときどきコーダにより生成された出力ビットストリ
ームデータレートは出力バッファメモリの入力データレ
ートを超過することがある。その場合、出力コントロー
ラはビットストリームコーダに待機するように信号指示
する。出力コントローラはまた出力バッファメモリが満
杯の場合に、ビットストリームコーダに待機するように
信号指示することができる。
【0016】更にビットカウンタを用いて連結器により
生成されたビットストリームのビットの数をカウントす
ることができる。例示的なビットカウンタには、16ビッ
トデータバスを用いて読むことのできる23ビットカウン
タを含めることができる。16ビットデータは、16ビット
ウィンドウを23ビット累算器データに効率的に適用する
シフタを用いて23ビットから選択することができる。こ
のように、例えばマクロブロックのような小量のビデオ
データ及び画像あるいは画像のグループをコード化する
のに使用するビット数を同一カウント及びインターフェ
イスを用いて判定することができる。例えば最下位16ビ
ットが読み取られると、1ビット精度で65535 までのビ
ットカウントを判定することができる。最上位16ビット
を読み取ると、128 ビット精度で8388480 までのビット
カウントを判定することができる。
【0017】
【実施例】以下、本発明の実施例について図面を参照し
て説明する。
【0018】本発明の一実施例を図1に示す。図1で、
1ビットより大きなバス幅は、バス幅を示す数字と共に
バスを通る細い斜め線で示す。この実施例では、全ての
バス幅とメモリサイズは単に例示的なものである。
【0019】係数バッファメモリ 101は量子化した係数
を格納するのに使用する。例えばこのメモリは6 x 64
x 9ビットメモリとして実現することができる。この場
合、各々の係数は9ビット幅であり、各々のメモリは6
ブロックの8 x 8 係数を格納することができる。これ
は例えばMPEG−1マクロブロックを格納するのに適
している。即ちMPEG−1は、各々のマクロブロック
が4つの8 x 8 ブロックの輝度画素と2つの8 x 8
ブロックの色画素からなるマクロブロックに画像を分割
するからである。図2はMPEG−1について画像がど
の様にマクロブロックのスライスに区分されるかの例を
示している。
【0020】コマンドバッファメモリ 102はビットスト
リーム構文とデータコマンドを格納するのに使用する。
例えばこれは64 x 16 ビットメモリを用いて実現でき、
その場合、64コマンドを格納することができる。本実施
例に付いては、データの各々のマクロブロックは64コマ
ンドを用いてマクロブロックを示すビットシーケンスを
フォーマット化することができる。それらのコマンドは
プログラマブルプロセッサを用いて実行することができ
る。
【0021】コマンド・インタプリタ 103は係数とコマ
ンドを読み取り、そのデータを適切なコーダ106、107、
108 ないし制御遅延 109に配分する。本実施例に付いて
は、係数バッファメモリ 101とコマンドバッファメモリ
102の内容がマクロブロックのビットシーケンスをフォ
ーマット化するのに必要な全ての情報を含むと、開始信
号 104が起動される。コマンドインタプリタは使用中信
号 105をセットし、最初のメモリ位置から始めてコマン
ドバッファメモリ 102から逐次にコマンドを読み取るこ
とで応答する。各々のコマンドを分析し、コマンド内の
関連データを係数コーダ 106あるいは可変長コーダ 10
7、固定長コーダ 108、制御遅延 109に送る。
【0022】例えばコマンドインタプリタにより処理さ
れたコマンドのフォーマットは図3に示す様式のものと
することができるが、図3に示す様式に限定はされな
い。周知のビットシーケンスを挿入するには、固定長コ
ードワードコマンド 301を使用することができる。長さ
305はビットシーケンス内のビット数にセットし、固定
長コード 306はビットシーケンスの最初のビットとなる
最も左側の最上位ビット及び最後のビットを示す最も右
側のビットで右に整列した所望のビットシーケンスにセ
ットする。例えばビットシーケンス「111010」を
ビットストリームに挿入するには、コードワードは「1
010100000011011010」にセットされ
る。この場合、最上位ビットはコマンドが固定長コード
ワードコマンドであることを示すようにセットし、次の
4ビットの「0101」はビットシーケンス(5ビッ
ト)の長さを示し、最下位の5ビットの「11010」
はビットシーケンスデータを示す。
【0023】可変長ビットシーケンスを挿入するには、
可変長コードワードコマンド 302を使用する。この実施
例に付いては、コードテーブル 110は1K x 16 RAM
として実現される単純な参照テーブルを用いて実現でき
る。参照テーブルへの入力は固定長データであるが、出
力はビットシーケンスとそのデータを示す長さである。
従って可変長ビットシーケンスをビットストリームに挿
入するには、コードテーブルアドレス 307を可変長コー
ドワードコマンド10の最下位ビットに入れるが、このア
ドレスは可変長コーダ 107を用いて対応するビットシー
ケンスを判定するのに使用する。それはアドレスをコー
ドテーブル 110に加え、ビットシーケンス長とコードを
もたらす。
【0024】1ブロックの係数を示すビットシーケンス
を挿入するには、係数コマンドフォーマット 303を使用
する。この場合、係数のブロックは係数バッファメモリ
101から読み取られ、コマンド・インタプリタ 103に渡
される。本実施例に付いては、ブロックを読み取る順序
は固定されている。開始信号 104は最初の係数コマンド
が係数バッファメモリ 101から最初のブロックの係数の
読取り値になるようにコマンド・インタプリタ 103を初
期設定する。後続の係数コマンドは読み取られている次
のブロックになる。例えばMPEG−1に付いて、ブロ
ックを読み取る順序はそれらがビットストリームに現れ
る順序と同じで、4つの輝度ブロックの後には2つの色
ブロックが続く。図2に付いて、マクロブロックの各々
は4つのYブロックと2つの色ブロックからなり、ビッ
トストリーム内でブロックが生じる順序はY1、Y2、
Y3、Y4、Cb、Crである。しかし本発明はこのマ
クロブロック構造に限定されないことに留意すべきであ
る。
【0025】本実施例に付いては、ブロックから読み取
る係数の数は、係数コマンド 303の7最下位ビットで特
定する。係数カウント(COEF COUNT) 310の
範囲は本実施例では0から64である。これによりMPE
G−2で特定されたような縮尺可能なマクロブロックサ
イズで必要とされる様々なブロックサイズのサポートが
可能になる。更に本実施例の係数コマンドフォーマット
には係数のブロックがブロック内ないし非ブロック内と
してコード化すべきかどうかを示すイントラ(INTR
A)ビット 308がある。MPEG−1では、ブロック内
の最初の係数は非ブロック内の最初の係数とは異なって
コード化される。本実施例では、係数コマンドのイント
ラビットは、ブロックはブロック内としてコード化すべ
きであることを示すようにセットされる。また本実施例
では、係数コマンドは係数バッファメモリから係数を読
み取るべき順序を示すALT SCANビット309が含ま
れている。例えばMPEG−2は2つの走査順序、即ち
ジグザグ走査と代替走査をサポートする。本実施例で
は、ALT SCAN(代替走査)ビットは係数を代替
走査順に読み取るべき場合にセットする。図4はMPE
G−2に付いて係数を読み取る順序を示している。
【0026】ジグザクないし代替走査機能を達成するた
めの係数の再順序付けはコマンド・インタプリタ 103が
行う。これは例えばRAM参照テーブルを用いて行う。
この走査テーブルへの入力は逐次の係数カウントとする
ことができ、テーブルからの出力は係数を読み取る係数
バッファメモリ 101内のアドレスを判定するのに使用す
る。このように走査テーブルの内容を変えることでどの
様な走査順序も可能となる。本実施例のように2つの走
査テーブルを使用するならば、代替走査ビット309をテ
ーブルの選択に使用できる。
【0027】このように本実施例では、係数のブロック
のコード化を行うには、以下のようになる。即ちコマン
ド・インタプリタ 103は係数バッファメモリ 101から係
数コマンドフォーマット 303を有するコマンドを読み取
る。このコマンドは係数バッファメモリ 101からどのブ
ロックを読み取るかを特定する。開始信号 104の後コマ
ンド・インタプリタ 103によりこのコマンドが最初に読
まれると、最初の係数ブロックが係数バッファメモリ 1
01から読み取られる。後続のコマンドは後続のブロック
の読み取り値となる。ブロックに付いて読み取るべき係
数の数は、係数コマンド 303の係数カウント欄 310に示
される。係数バッファメモリ 101から係数を読み取る順
序も係数コマンド内で指定される。ブロック内のどの係
数を読み取るかを示す走査参照テーブルが逐次にアクセ
スされる。参照テーブルの選択は係数コマンドフォーマ
ット 303内の代替走査ビット 309を用いて特定される。
係数は係数バッファメモリ 101から所望のビットストリ
ーム構文順序で読み取られる。それらはコマンド・イン
タプリタ 103から係数コーダ 106に送られる。9ビット
の係数データに加えて、追加の4ビットの情報が係数コ
ーダ 106に送られる。即ちブロックの最初の係数が送ら
れていることを示すブロック開始信号、ブロックの最後
の係数が送られたことを示すブロック終了信号、係数コ
マンドフォーマット 303でイントラ欄 308で特定される
ブロックがブロック内ないし非ブロック内かどうかを示
すイントラ信号、及び係数コーダが活動していることを
示す係数活動信号 124である。
【0028】本実施例に付いては、係数はブロック開
始、ブロック終了、イントラ、係数活動信号と共に構文
順に係数コーダ 106に送られる。係数コーダ 106はラン
レベル係数をコード化し、非ゼロ係数に先行するゼロ係
数の数を数える。ランレベルの組合せはコードテーブ
ル、おそらく可変長コーダ 107で使用するものと同一の
コードテーブル 110を用いて可変長コード化される。一
部の可能なランレベル組合せはコードテーブル内に存在
しない可能性があり、その場合、それらのランレベル組
合せは固定長コードとしてコード化される可能性がある
ので、何等かの追加の論理が必要となる。しかし係数を
コード化する方法は本発明の基本的な問題ではなく、こ
こで説明はしない。
【0029】本実施例で、制御コマンド 304は2つの目
的に使用する。即ちMBE(マクロブロック終了)ビッ
ト 312をセットすることにより構文コマンドのマクロブ
ロックの終了を示すことと、整列ビット 311をセットす
ることにより後続のビットシーケンスの整列を出力ワー
ド境界に強制することである。コマンドインタプリタが
制御コマンドを処理してMBEビット 312がセットされ
ていることを判定すると、使用中信号 105が消えてコマ
ンド・インタプリタ 103はコマンドのマクロブロックと
データの処理を終了したことを示し、コマンドバッファ
メモリ 102内の残りのコマンドは無視される。この指示
は例えばプログラマブル・プロセッサが使用してデータ
の次のマクロブロックに対応してコマンドバッファメモ
リ 102を構文とデータコマンドでいつ満たすことができ
るかを示すことができる。
【0030】H.261、MPEG−1、MPEG−2の様
なビットストリーム構文では、ビットシーケンスの最初
のビットを強制してワード境界に整列することが必要で
ある。出力ビットストリームは生来的に直列であること
が分かるが、今日のディジタル技術は並列データバスア
ーキテクチャに大きく基づいている。その結果、コード
化ビデオビットストリームをビットのシーケンスよりも
ワードのシーケンスとして送信することが期待されてい
る。しかしデータ内容は同じである。例えばワードシー
ケンスは直列−並列変換器を用いてビットシーケンスか
ら作ることができる。ワードシーケンスの処理を容易に
するため、特定のビットシーケンスがワード内の特定の
場所を占めるように強制することがしばしば望ましい。
例えばH.261、MPEG−1、MPEG−2はすべて、
画像を示すデータの開始を示す画像ヘッダビットシーケ
ンスをサポートしている。このヘッダは送信される最初
のビットがバイトの最上位ビットと一致するように配置
しなければならない。この場合、ビデオコーダが8ビッ
トの出力バス幅を持っていたならば、ヘッダビットシー
ケンスの最初のビットは最上位出力ビット位置にある。
本実施例に付いては、整列は出力ワードの先行する未使
用ビットをゼロで満たし、次の32ビット幅の出力ワード
に整列することにより行う。
【0031】本実施例では、コマンド・インタプリタ 1
03はコマンドバッファメモリ 102を読み取り、係数バッ
ファメモリ 101を読み取り、このデータと関連制御情報
を係数コーダ 106、即ち可変長コーダ 107、固定長コー
ダ 108、制御遅延 109に配分する。本実施例では、関連
制御情報には、各々のコーダ106、107、108 及び制御遅
延 109への信号があり、データ画素のコーダないし制御
遅延に宛てたものかどうかを示す。それらの信号は、係
数活性(COEF ACTIVE) 124、VLC活性(VLCACTIVE)
125、FLC活性(FLC ACTIVE)126、及びCD活性(C
D ACTIVE)127信号である。それらの信号は各々のコー
ダないし制御遅延を起動する。
【0032】以上、本実施例での係数コーダ 106と可変
長コーダ 107の機能を説明したが、固定長コーダ 108の
機能は、固定長データコマンド 301のデータをコードセ
レクタ 111に適切なフォーマットに変換することであ
る。制御遅延 109は整列信号がコーダ106、107、108 を
通過する全ての他のデータとちょうど同量遅延されるよ
うに整列コマンドを遅延する。それら全てのコーダ10
6、107、108 と制御遅延 109は同一の遅延を有する。こ
れによりコードセレクタ 111が受け取ったデータが、デ
ータがコーダ106、107、108 と制御遅延 109に配分され
るのと同じ順序で到着するようになり、それによりビッ
トシーケンスの順序が所望のビットストリーム構文と同
一にすることができる。
【0033】本実施例では、個々のコーダ106、107、10
8 の出力は類似のフォーマットを有している。即ちビッ
トシーケンス長、ビットシーケンスデータ、そのデータ
が活性化していることを示す各々の選択信号128、129、
130 である。制御遅延 109は整列信号と整列信号が活性
化しているかどうかを示すCD選択信号 131を出力す
る。コードセレクタ 111はそれらの選択信号128、129、
130、131を用いてどの出力信号を連結器 115に送るかを
選択する。従って本実施例のコードセレクタ 111からの
出力はビットシーケンス長 112、ビットシーケンスコー
ド113、整列信号114からなっている。整列信号中の場合
のように有効なビットシーケンスがなければ、ビットシ
ーケンス長 112はゼロにセットされる。
【0034】本実施例で、連結器 115は連続したビット
シーケンス長 112とビットシーケンスコード 113を受け
取り、それを連結して本実施例で実際に32ビット幅のワ
ードストリームであるビットストリーム 116を形成す
る。書込み信号 132は連結器 115からの出力を出力コン
トローラ 119にいつ書き込むかを示す。この連結器で整
列信号 114が受信されると、完了して現在出力ワードを
出力する。本実施例では、整列コマンドが生じる場合の
ようにビットストリームコード 113により特定されない
ビットはゼロに強制される。各々の受信されたビットシ
ーケンスコード 113と整列信号 114に対応した結果的な
ビットの正確な数はビットカウンタ 117に出力される。
【0035】本実施例で、ビットカウンタ 117は連結器
から受け取った長さを累算して連結器 115により連結さ
れたビット数のラン合計(running summation)をもた
らす。本実施例で、長さを累積するため23ビットカウン
タを使用する。16ビットデータバスを累算器にアクセス
するため使用できるようにするため、23ビット合計に16
ビットウィンドウを加える。ウィンドウの位置は4ビッ
ト縮尺信号 118で明示する。縮尺が0ならば、最下位16
ビットが読み取られる。例えばデータのマクロブロック
をコードするため使用するビット数を判定するため、ビ
ットカウンタ縮尺は最初に0にセットし、次にビットカ
ウンタを読み取る。このカウント値はマクロブロックを
コード化する前の累積値を示す。そしてマクロブロック
をコード化してビットカウンタを再び読み取る。このカ
ウント値はマクロブロックがコード化された後の累積値
を示す。その差はマクロブロックのコード化に使用する
ビットの数となる。この方法はまた画像をコード化する
のに使用するビット数を判定するのに使用できる。画像
は65535 ビット以上でコード化できるので(これは16ビ
ットで表現できる最大数)、位取り因数は4にセットす
ることができる。この場合、ウィンドウは4つだけ左に
シフトされ、各々のカウントは16の単位で表される。従
って画像に付いてカウントされるビットの範囲は104857
6 ないし20ビットで表現できる最大カウントにすること
ができる。このカウント値は必要なレート制御パラメー
タを判定するのに使用できる。
【0036】本実施例で、出力コントローラ 119は出力
ビットストリーム 120を、先入れ先出しメモリとして実
現される出力バッファメモリに書き込むために使用す
る。データは、先入れ先出しメモリAF信号 122が活性
的でないことによって示される先入れ先出しが概満杯で
ない場合のみ書き込まれる。先入れ先出しメモリが概満
杯であるならば、出力コントローラ 119は、コード化プ
ロセスを保留すべきであることを残りの回路に示すパイ
プ保留信号 123をセットする。先入れ先出しメモリに再
び余地ができれば、符号化を続けることができる。
【0037】図1の実施例に付いて、回路は同期データ
パイプラインとして実現できる。パイプラインの各々の
段階は、データラッチが後に続くいくつかの非同期論理
からなっている。全てのデータラッチは同じクロックを
共有している。パイプ保留信号 123は各々のクロック期
間にデータのラッチを不能にするのに使用することがで
きる。この方法により、出力先入れ先出しメモリが概満
杯でビットストリームデータが失われないよう、全パイ
プラインを停止できる。
【0038】説明した実施例は本発明の単なる1つの実
施例であることに留意すべきである。コマンドバッファ
メモリ・データフォーマットなど、多くのものを変更す
ることができる。例えば、係数コマンドフォーマット 3
03はイントラ 308及び代替走査 309に対して異なるある
いは追加制御ビットを用いて係数コーダ 106の機能を制
御することができる。コマンドバッファメモリ・データ
フォーマットの各々の欄の大きさと内容も変えることが
できる。異なるコマンドの数も変えることができる。更
に、データバス幅、メモリサイズ、コードテーブル 110
の内容、先述の参照テーブルも変えることができる。各
々のコーダ106、107、108 の機能も変えることができる
が、係数コーダ 106はいくつかの係数を示すビットシー
ケンスを生じる必要があり、可変長コーダ 107はデータ
を可変長ビットシーケンスとしてコード化する必要があ
り、固定長コーダ 108は固定長ビットシーケンスをコー
ド化する必要があるという制限がある。例えば係数をコ
ード化する方法は、ランレベルコード化を用いる必要は
ない。更に、本実施例の制御遅延 109は、一部の実施例
は制御信号の遅延を必要としないので全ての実施例に必
要ではない。
【0039】
【発明の効果】以上述べたところから明らかなように、
本発明は、H.261、MPEG−1、MPEG−2などの
多くの既存のコード化ディジタルビデオ・ビットストリ
ーム構文並びに将来のビットストリーム構文をサポート
できる汎用ビットストリームコーダを実現出来る。
【0040】本発明は、VLSIビデオコーダに含める
ことに適したそのコンパクトなサイズとその単純なイン
ターフェイスのおかげで、コストダウンを実現すること
ができる。
【0041】本発明をパイプラインとして実現すること
で、ビデオデータの高いデータレートをサポートするこ
とができる。
【図面の簡単な説明】
【図1】本発明のビットストリームコーダの一実施例を
示すブロック図である。
【図2】MPEG−1ビデオコーダで使用するマクロブ
ロックフォーマットの1例である。
【図3】図1の実施例のコマンドバッファメモリのコマ
ンドを格納するコマンドフォーマットの1例である。
【図4】MPEG−2によりサポートされた係数走査順
序を記述したものである。
【符号の説明】
101 係数バッファメモリ 102 コマンドバッファメモリ 103 コマンド・インタプリタ 104 開始信号 105 使用中信号 106 係数コーダ 107 可変長コーダ 108 固定長コーダ 109 制御遅延 110 コードテーブル 111 コードセレクタ 112 コードセレクタ出力ビットシーケンス長バス 113 コードセレクタ出力ビットシーケンスコードバス 114 コードセレクタ出力整列信号線 115 連結器 116 連結器出力ビットストリームバス 117 ビットカウンタ 118 ビットカウンタ入力縮尺バス 119 出力コントローラ 120 出力コントローラ出力ビットストリームバス 121 出力先入れ先出しメモリ書き込みクロック信号線 122 出力先入れ先出しメモリ概満杯信号線 123 パイプ保留信号線 301 固定長コードコマンドフォーマット 302 可変長コードコマンドフォーマット 303 係数コマンドフォーマット 304 制御データコマンドフォーマット 305 固定長コードコマンド長欄 306 固定長コードコマンド固定長コード欄 307 可変長コードコマンド・コードテーブルアドレス
欄 308 係数コマンド内欄 309 係数コマンド代替走査欄 310 係数コマンド係数カウント欄 311 制御データコマンド整列欄 312 制御データMBE欄

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】変換係数を格納する係数バッファメモリ
    と、 ビットストリームフォーマットとデータコマンドを格納
    するコマンドバッファメモリと、 前記変換係数を可変長ビットシーケンスとしてコード化
    する係数コーダと、 前記データコマンド内のデータを可変長ビットシーケン
    スとしてコード化する可変長コーダと、 前記データコマンド内のデータを固定長ビットシーケン
    スとしてコード化する固定長コーダと、 前記コマンドバッファメモリから前記コマンドを読み取
    り、前記係数バッファメモリから前記変換係数を読み取
    り、前記係数コーダと前記可変長コーダと前記固定長コ
    ーダとにデータと制御信号を配分するコマンドインタプ
    リタと、 前記可変長ビットシーケンスと前記ビットシーケンスの
    長さとを定義するコードワードを格納するコードテーブ
    ルと、 前記係数コーダから前記可変長ビットシーケンスを、前
    記可変長コーダから前記可変長ビットシーケンスを、前
    記固定長コーダから前記固定長ビットシーケンスを、あ
    るいは空白ビットシーケンスのいずれかを選択するコー
    ドセレクタと、 選択したビットシーケンスを連結して、幅1ビットある
    いはそれ以上のビットのワードのシーケンスであるビッ
    トストリームを形成する連結器と、 連結されて前記ビットストリームを形成するビット数を
    カウントするビットカウンタと、 前記ビットストリームを出力バッファメモリに出力する
    出力コントローラと、 前記ビットストリームが所望のビットストリーム構文に
    従うように前記ビットシーケンスを順序付けする構文順
    序付け手段と、 を備えたことを特徴とするディジタルビデオ・ビットス
    トリームコーダ。
  2. 【請求項2】前記構文順序付け手段は、 前記コマンドバッファメモリで生じるのと同じ順序で逐
    次に前記コマンドバッファメモリから前記コマンドを読
    み取る手段と、 前記コマンドバッファメモリから係数バッファメモリへ
    読み取りを切り換えるものであって、その切り替えは係
    数コマンド語が前記コマンドバッファメモリから読み取
    られた時はいつでも行われる、手段と、 前記係数バッファメモリから前記コマンドバッファメモ
    リへ読み取りを切り換えるものであって、その切り替え
    は、前記係数コマンド語により数が示されるところの所
    望の係数がすべて前記係数バッファメモリから読み取ら
    れた時はいつでも行われる、手段と、 前記コマンドと前記係数がそれぞれ前記コマンドバッフ
    ァメモリと前記係数バッファメモリから読み取られる順
    序は、それらの各々の連結された結果的なビットシーケ
    ンスが前記ビットストリームを形成するのと同じ順序で
    あることを意味する前記ビットシーケンスを順序付けす
    る手段と、 を備えたことを特徴とする請求項1のディジタルビデオ
    ・ビットストリームコーダ。
  3. 【請求項3】前記コマンドインタプリタは、 前記係数バッファからの前記変換係数の読み取りを順序
    付けする係数スキャナ手段を有することを特徴とする請
    求項1又は2のディジタルビデオ・ビットストリームコ
    ーダ。
  4. 【請求項4】前記コマンドインタプリタは、 前記係数バッファからの前記変換係数の読み取りを順序
    付けする係数スキャナ手段と、 コマンドのグループの逐次の読み取りと処理を開始する
    開始信号手段と、 前記コマンドインタプリタがコマンドのグループの読み
    取り、処理中であることを示す使用中信号手段と、 前記コマンドインタプリタがコマンドのグループの処理
    を終了したことを示すものであって、前記コマンドバッ
    ファメモリから読み取られた独自のコマンドの発生に応
    答する、終了指示手段と、 を備えたことを特徴とする請求項1又は2のディジタル
    ビデオ・ビットストリームコーダ。
  5. 【請求項5】前記係数スキャナ手段は、 前記係数バッファからの前記変換係数の前記読み取りの
    順序を格納した1つないしそれ以上の走査順序参照テー
    ブルと、 前記走査順序参照テーブルを、前記係数コマンド語の内
    容に基づき選択する手段と、 を備えたことを特徴とする請求項3又は4のディジタル
    ビデオ・ビットストリームコーダ。
  6. 【請求項6】前記連結器は、 選択したビットシーケンスを連結して、幅1ビット又は
    それ以上のワードのシーケンスであるビットストリーム
    を形成する手段と、 整列コマンド語の発生に基づき、後続のビットシーケン
    スの第1のビットをワード境界に整列する手段と、 を備えたことを特徴とする請求項1、2、3、4、又は
    5のディジタルビデオ・ビットストリームコーダ。
  7. 【請求項7】前記ビットカウンタは、 前記ビットストリームを形成するために連結したビット
    数をカウントするカウンタと、 カウントされたビット数を位取り因数で指定される量で
    基準化するシフタ手段と、 を備えたことを特徴とする請求項1、2、3、4、5、
    又は6のディジタルビデオ・ビットストリームコーダ。
  8. 【請求項8】前記出力コントローラは、 前記ビットストリームを出力バッファメモリに出力する
    手段と、 前記出力バッファメモリに書き込むことができない場合
    は前記ディジタルビデオ・ビットストリームコーダが行
    う読み取り及び処理を停止する手段と、 を備えたことを特徴とする請求項1、2、3、4、5、
    6、又は7のディジタルビデオ・ビットストリームコー
    ダ。
JP1119794A 1994-02-02 1994-02-02 ディジタルビデオ・ビットストリームコーダ Expired - Fee Related JP3153404B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1119794A JP3153404B2 (ja) 1994-02-02 1994-02-02 ディジタルビデオ・ビットストリームコーダ
US08/382,673 US5644306A (en) 1994-02-02 1995-02-02 Syntax independent variable length coder for digital video coder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1119794A JP3153404B2 (ja) 1994-02-02 1994-02-02 ディジタルビデオ・ビットストリームコーダ

Publications (2)

Publication Number Publication Date
JPH07222164A true JPH07222164A (ja) 1995-08-18
JP3153404B2 JP3153404B2 (ja) 2001-04-09

Family

ID=11771327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1119794A Expired - Fee Related JP3153404B2 (ja) 1994-02-02 1994-02-02 ディジタルビデオ・ビットストリームコーダ

Country Status (2)

Country Link
US (1) US5644306A (ja)
JP (1) JP3153404B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100335622B1 (ko) * 1996-06-30 2002-11-20 삼성전자 주식회사 위치적확률모형을이용한문법기반의적응식산술부호화기및/또는복호화기및이를이용한고능률영상부호화기및/또는복호화기
WO2013061840A1 (ja) * 2011-10-28 2013-05-02 株式会社Gnzo バイトアラインメント装置及びバイトアラインメント方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2742248B1 (fr) * 1995-12-06 1998-01-23 Thomson Multimedia Sa Procede de traitement de donnees dans des reseaux matriciels dans un systeme d'estimation de mouvement
US5898898A (en) * 1996-05-31 1999-04-27 Kleck; James Collating bits from a byte source
JP2870515B2 (ja) * 1996-12-27 1999-03-17 日本電気株式会社 可変長符号化装置
TW369747B (en) * 1997-01-16 1999-09-11 Matsushita Electric Industrial Co Ltd Image encoding device and the method
JP4531871B2 (ja) * 1997-10-30 2010-08-25 富士通セミコンダクター株式会社 画像情報処理装置及び符号装置
US6467517B1 (en) 1999-06-15 2002-10-22 Michelin Recherche Et Technique S.A. Tire having sacrificial bridging
US7158571B2 (en) * 2000-12-11 2007-01-02 Sony Corporation System and method for balancing video encoding tasks between multiple processors
JP2003067321A (ja) * 2001-08-28 2003-03-07 Hitachi Ltd データ転送装置及び該データ転送装置内に具備されるアライナ
US6900746B1 (en) * 2003-12-23 2005-05-31 Wend Llc Asynchronous, data-activated concatenator for variable length datum segments
US20060222247A1 (en) * 2005-04-01 2006-10-05 Bhaskar Sherigar Hardware implementation of inverse scan for a plurality of standards
WO2006124850A2 (en) * 2005-05-13 2006-11-23 Qualcomm Incorporated Method and apparatus for improved multimedia decoder
US9319880B2 (en) 2010-09-15 2016-04-19 Intel Corporation Reformatting data to decrease bandwidth between a video encoder and a buffer
US9520180B1 (en) 2014-03-11 2016-12-13 Hypres, Inc. System and method for cryogenic hybrid technology computing and memory

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4728975A (en) * 1986-03-11 1988-03-01 Canon Kabushiki Kaisha Motor driven camera
GB8722394D0 (en) * 1987-09-23 1987-10-28 British Telecomm Video coder

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100335622B1 (ko) * 1996-06-30 2002-11-20 삼성전자 주식회사 위치적확률모형을이용한문법기반의적응식산술부호화기및/또는복호화기및이를이용한고능률영상부호화기및/또는복호화기
WO2013061840A1 (ja) * 2011-10-28 2013-05-02 株式会社Gnzo バイトアラインメント装置及びバイトアラインメント方法
JP2013098596A (ja) * 2011-10-28 2013-05-20 Gnzo Co Ltd バイトアラインメント装置及びバイトアラインメント方法

Also Published As

Publication number Publication date
JP3153404B2 (ja) 2001-04-09
US5644306A (en) 1997-07-01

Similar Documents

Publication Publication Date Title
CN1615653B (zh) 多通道视频译码的系统和方法
CN100518319C (zh) 将数据压缩成固定长度数据块及解压的方法
US5450599A (en) Sequential pipelined processing for the compression and decompression of image data
US5774206A (en) Process for controlling an MPEG decoder
JP3992303B2 (ja) 信号圧縮装置と信号伸長装置および信号圧縮方法と信号伸長方法
KR970002483B1 (ko) 고속의 가변길이 복호화장치
JP3153404B2 (ja) ディジタルビデオ・ビットストリームコーダ
US5808570A (en) Device and method for pair-match Huffman transcoding and high-performance variable length decoder with two-word bit stream segmentation which utilizes the same
KR100203246B1 (ko) 고속의 가변장복호화장치
US6668015B1 (en) Efficient fixed-length block compression and decompression
EP0925555B1 (en) Dual-speed variable length decoder and decoding architecture for mpeg-2 video data
US6285789B1 (en) Variable length code decoder for MPEG
US6999511B1 (en) Dynamically switching quant matrix tables within an MPEG-2 encoder
JP3940672B2 (ja) 画像処理装置及び画像処理方法
JP2002524007A (ja) イメージ圧縮方法および装置
JPH06153150A (ja) デジタル・ビデオ・コーダ用のバーサタイルな可変長コーダ
JPH06237452A (ja) 画像復号化装置、画像符号化装置および画像符号化方式
US6928115B2 (en) Compression-encoded data decoding apparatus cross-reference to related applications
JP3230933B2 (ja) データ伸長装置、データ伸長方法、デコーディング装置、デコーディング方法、エンコーディング装置、及びエントロピー・デコーダ
KR100249235B1 (ko) 에이치디티브이 비디오 디코더
US5666115A (en) Shifter stage for variable-length digital code decoder
JP2829246B2 (ja) 画像伸張装置
US7675972B1 (en) System and method for multiple channel video transcoding
JP2004501531A (ja) ビデオ・データをランレングス符号化するための方法と装置
KR100202307B1 (ko) Mpeg-2 영상압축을 위한 dct 계수 가변장 부호화장치

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees