JP2006042331A - 4段階のパイプライン方式の係数可変長の符号化方法、及び係数可変長符号化器 - Google Patents

4段階のパイプライン方式の係数可変長の符号化方法、及び係数可変長符号化器 Download PDF

Info

Publication number
JP2006042331A
JP2006042331A JP2005204087A JP2005204087A JP2006042331A JP 2006042331 A JP2006042331 A JP 2006042331A JP 2005204087 A JP2005204087 A JP 2005204087A JP 2005204087 A JP2005204087 A JP 2005204087A JP 2006042331 A JP2006042331 A JP 2006042331A
Authority
JP
Japan
Prior art keywords
encoder
value
variable length
exception
coefficient
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
JP2005204087A
Other languages
English (en)
Other versions
JP4750490B2 (ja
Inventor
Jung-Sun Kang
▲ジュン▼ 善 姜
Jin-Hyun Cho
眞 顯 趙
Tae-Hwan Park
朴 泰 煥
Kyung-Koo Lee
慶 九 李
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2006042331A publication Critical patent/JP2006042331A/ja
Application granted granted Critical
Publication of JP4750490B2 publication Critical patent/JP4750490B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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
    • 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/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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
    • 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/93Run-length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract


【課題】 4段階のパイプライン方式の係数可変長符号化方法、及び係数可変長符号化器を提供する。
【解決手段】 係数可変長符号化方法は、係数データをランレングス符号化して、ラン、レベル、及びラストの3次元値で求める段階と、求められた3次元値を伝送する段階と、伝送された3次元値を用いて可変ビットベクトル値を求める段階と、求められた可変ビットベクトル値を保存する段階の4段階パイプライン方式で動作する。特に、パイプラインが割れた場合には、処理時間を最小化するために既に求められた3次元値を再び用いる。したがって、効果的なパイプライン動作を行って迅速に係数可変長の符号化を行い、特にパイプラインが割れる場合に処理時間を最小化することができる。
【選択図】 図1

Description

本発明は、可変長の符号化方法に係り、特にビデオコーデックの係数可変長の符号化方法に関する。
最近、携帯電話、デジタルカメラ、カムコーダのような携帯情報機器で扱う動画像データの画素数が急増する傾向にあり、これに比例する高い演算能力が要求される反面、同等な消費電力が要求される。
ビデオコーデックは、動き推定器、動き補償器、離散余弦変換器、逆離散余弦変換器、量子化器、逆量子化器、可変長符号化器、及び可変長復号化器のようなプロセッシングユニットで構成される。これらのうち、可変長符号化器及び可変長復号化器は、入力データに対する従属性が高いので、効率的なハードウェア構造として作り難いプロセッシングユニットの一つである。
最近、マルチメディア機器の動画像データ量が増加することによって、実時間が要求されるビデオコーデックは与えられた時間内に多量のデータを処理しなければならない。また、可変長符号化器は、ビット単位で動作し、多数のテーブルを参照するので、高速化されたハードウェアが必要である。特に、係数可変長符号化器は、係数データをランレングス符号化して、ラン、レベル、ラスト値(以下、3次元値と称する)を求め、テーブルを探してこの3次元値によるビットベクトル値を求める過程を実行する。即ち、係数データを圧縮するために、各8×8ブロックの画素ごとにデータを調査して「0」でない値が出る場合、その以前に出た「0」の累積値であるラン値、「0」でない場合の係数値であるレベル値、そして8×8ブロックの最後を意味するラスト値を求め、これらの値によって適切な可変長ビットベクトル値を割り当て、このビットストリームを累積してメモリに保存する。この過程を処理するためには、メモリからデータを取ってくる過程とテーブル探す過程、そして再びメモリや他の装置でビットベクトル値を保存したり、伝送したりする過程が必要である。したがって、多数のクロックが必要とされ、パイプライン構造を必ず必要とするモジュールである。
しかし、係数の符号化過程で、入力される3次元値によっては一般的なテーブルでは処理できない例外が発生するようになって問題になる。このような例外の場合にパイプラインが割れるようになり、また長い時間が要求される。これは、パイプラインが割れると、再び符号化しようとする係数の第3次元値を求めるためにアドレスポインタを再び戻さなければならないためである。3次元値のうち、ラスト値を求めるためには、該当係数データだけでなく以後のデータを確認しなければならないのでパイプラインが割れるので、以前の3次元値を再び求めるには多数のクロックの浪費を発生させる。このように、一般的なテーブルで処理できない例外が発生してパイプラインが割れる場合に、クロック消費を最小化して符号化を行うことが非常に重要な課題である。
前記のような課題を解決するための本発明の第1の目的は、4段階パイプライン構造で動作し、パイプラインが割れる例外の場合に既に求められた3次元値を再び用いる係数可変長の符号化方法を提供することにある。
本発明の第2目的は、4段階パイプライン方式で動作し、パイプラインが割れる例外の場合に、既に求められた3次元値を再び用いる係数可変長符号化器を提供することにある。
前記本発明の第1目的を達成するための係数可変長の符号化方法は、クロックの第1周期内に階数データをランレングス符号化して3次元値として求める段階と、クロックの第2周期内に前記求められた3次元値を伝送する段階と、クロックの第3周期内に伝送された3次元値を用いて可変ビットベクトル値を求める段階と、求められた可変ビットベクトル値を保存する段階の4段階を並列処理する4段階パイプライン方式で係数可変長符号化を行う。
また、前記本発明の第2目的を達成するための係数可変長符号化器は、メモリから係数データを読み取った後、ランレングス符号化してクロックの第1周期内に3次元値を求め、前記求められた3次元値を前記クロックの第2周期内に伝送するRLC符号化器、及び伝送された3次元値を用いて可変ビットベクトル値をクロックの第3周期内に求め、求められた可変ビットベクトル値をクロックの第4周期内に保存するVLC符号化器を含んで4段階のパイプライン構造で動作する。
したがって、パイプライン方式で動作して、高速に係数可変長の符号化を行うことができ、特に、パイプラインが割れる例外の場合に処理時間を最小化して迅速な符号化を行うことができる。
以下、本発明による望ましい実施例を添付した図面を参照して詳細に説明する。
図1は、本発明の一実施例による係数可変長符号化器のブロック図である。図1を参照すると、係数可変長符号化器は、RLC符号化器110、VLC符号化器120、及びメモリ130を含む。RLC符号化器110は、メモリから係数データを読み取ってランレングス符号化して3次元値を作り出し、これをインデックスと共にVLC符号化器120に伝送する。RLC符号化器110は、特に3次元値保存バッファ113を具備してVLC符号化器120に伝送された3次元値を3次元値保存バッファ113のインデックスに該当する位置に所定クロック期間保存する。ここで、3次元値保存バッファ113は、四つまでの3次元値を保存することができることが望ましい。したがって、3次元値保存バッファ113は、4クロックの期間に3次元値を保存することが望ましい。これは、RLC符号化器110が3次元値を求めてこれをVLC符号化器120に伝送し、VLC符号化器120から伝送された3次元値を一般的なテーブル(ACテーブル1、ACテーブル2)で見つからない場合に、例外信号を発生させてこれを通じてRLC符号化器110が伝送した3次元値に対する例外発生を検出するのに4クロックがこの過程で必要とされるためである。RLC符号化器110は、VLC符号化器120から伝送された3次元値を一般的な値を一般的なテーブルで見つからない例外が発生してパイプラインが割れる場合が発生した時、VLC符号化器120が例外を処理する期間中に求められた3次元値を再びランレングス信号化せず、3次元値保存バッファ113に保存された値を用いて符号化する。図1に示されたRLC符号化器110は、3次元値保存バッファ113、RLC制御器111、アドレス発生器115、及びラン、レベル、ラストチェック部117を含む。RLC制御器111は符号化が始まると、アドレス発生器115にアドレス発生信号(ADDR_GEN)を発生させる。アドレス発生器は、アドレス発生信号が発生すれば読み取る係数データが入っているメモリアドレス(ADDR)を生成するようにする。メモリ130は、アドレス発生器115からメモリアドレス(ADDR)が生成されると、これに該当する係数データ(DATA)を、ラン、レベル、ラストチェック部117に出力する。ラン、レベル、ラストチェック部117は、係数データが「0」でなければ3次元値(RLC_VAL)を生成してRLC制御器111に提供することになる。RLC制御器111は、ラン、レベル、ラストチェック部117から3次元値が提供されると、この値がDCに対する値であるか否か判断して、DCであればDC信号(IS_DC)を活性化し、ラン、レベル、ラスト信号(RUN_LEVEL_LAST)を通じてVLC符号化器120へ伝送する。提供された値がDCでなければDC信号(IS_DC)が非活性化された状態で、ラン、レベル、ラスト信号(RUN_LEVEL_LAST)を通じて3次元値をVLC符号化器120に伝送する。ここで、対応するインデックスをインデックス信号(CURR_INDEX)に出力する。本実施例で、インデックスは1〜4の値として、四つまでの3次元値を保存することができる3次元保存バッファ113に保存される保存位置を示す。ここで、RLC制御器111は、バッファ信号(BUF_VAL)及びバッファインデックス信号(BUF_INDEX)を通じて3次元値保存バッファ113に3次元値を保存し、3次元値及びインデックスを読み取るようになる。結局、図1に示したRLC符号化器110は、毎クロックごとにメモリアドレスをを発生させ、係数値が「0」でなければ、それに対応する3次元値を生成してインデックスと共に出力する動作を反復する。但し、3次元値が生成されるごとに、これを3次元値保存バッファ133の該当するインデックスに保存する。
以下、VLC符号化器120から例外信号(ESG_SIG)が発生した場合のRLC符号化器110の動作を説明する。例外信号(ESC_SIG)が発生した場合にRLC制御器111は、3次元値保存バッファ113に例外信号(ESC_SIG)を発生させた3次元値の後に保存された3次元値の有無をチェックする。このチェックは、例外インデックス信号(ESC_INDEX)を通じて入力される例外インデックス及び3次元値保存バッファの現在インデックスを比較して行いやすい。
即ち、例外インデックス、及び現在インデックスが同一であれば、例外信号(ESC_SIG)を発生させた3次元値の後に保存された3次元値がないのであり、例外インデックス及び現在インデックスが異なれば、例外信号(ESC_SIG)を発生させた3次元値の後に保存された3次元値があるのである。
例外インデックスが現在インデックスより大きければ、現在インデックス1を足すインデックスに該当する3次元値から例外インデックスに該当する3次元値までを再伝送すればよい。
例外インデックスが現在インデックスより小さければ、現在インデックスに1を足すインデックスに該当する値からインデックス4に該当する3次元値までを再伝送し、再び、インデックス1に該当する3次元値から例外インデックスに該当する3次元値までを再伝送すればよい。
また、RLC制御器111は、例外が発生したことを知らせる信号(ESC_OCCUR)を通じて例外が発生したことをアドレス発生器115に知らせる。3次元値保存バッファ113に例外信号(ESC_SIG)を発生させた3次元値の後に保存された3次元値があれば、RLC制御器111は、例外信号(ESC_SIG)が比活性化するときから各クロックごとにこの3次元値をVLC符号化器120に伝送する。このとき、RLC制御器111は、保存された3次元値のうち、最後値を伝送すると同時に新しく住所アドレス発生信号(ADDR_GEN)を生成して係数データを読み取る動作を再び始める。
VLC符号化器120は、RLC符号化器110からDC信号(IS_DC)、ラン、レベル、ラスト信号(RUN_LEVEL_LAST)、インデックス信号(CURR_INDEX)の入力を受ける。VLC符号化器120は、RLC符号化器110から、ラン、レベル、ラスト信号(RUN_LEVEL_LAST)を通じて3次元値が入力されると、DC信号(IS_DC)を通じてこの値のDC可否を判断する。この値がDCであれば、DCテーブル122を探して該当するビットベクトルを求めてこれをメモリに保存されるようにする。DCがなければ、ACテーブル1(123)やACテーブル2(124)の二つのテーブルを探して可変ビットベクトルを求めてピンポンバッファ127に保存する。
ここで、VLC制御器121は、検索信号(VAL_RLC)を通じて3次元値をテーブルで探すようになる。もし、3次元値をACテーブル1(123)とACテーブル(124)で見つからない例外が発生した場合には、例外信号(ESC_SIG)を発生させ、次のクロックにてレベル例外テーブル125を用いてレベル例外に対する処理を行う。レベル例外に対する処理にて例外を処理すると、該当するビットベクトルをピンポンバッファに伝送しながら例外信号(ESC_SIG)を非活性化させる。しかし、レベル例外に対する処理にて例外が処理できない場合には、例外信号(ESC_SIG)を活性化されている状態で維持したままラン例外テーブル126を用いてラン例外に対する処理をする。ラン例外に対する処理にて例外処理をすると、該当するビットベクトルをピンポンバッファに伝送しながら例外信号(ESC_SIG)を非活性化させる。しかし、ラン例外に対する処理にて例外が処理できない場合には、例外信号(ESC_SIG)を活性化されている状態で維持したまま、固定ビット符号化する。固定ビット符号化の後には、例外信号(ESC_SIG)を非活性化する。テーブルを検索した後、出力信号(ESC_BITVEC_LENGTH)は、例外発生可否、求められたビットベクトル及びビットベクトルの長さなどの情報を含むことができる。
VLC制御器121は、テーブルからビットベクトルが提供されると、ピンポンバッファ127にビットベクトル信号(BITVEC_LENGTH)を出力してビットベクトルが保存されるようにする。ビットベクトル信号(BITVEC_LENGTH)には、求められたビットベクトル以外にビットベクトルの長さなどの情報を含むことができる。
ピンポンバッファ127は、入力されるビットベクトルを累積して一定ビット単位でメモリ130に保存されるように保存信号(ADDR_DATA)を出力する。この保存信号(ADDR_DATA)は、保存されるメモリ130の住所と保存するビットストリームとを含む。ここで、ピンポンバッファ127は、一定ビット単位でメモリ130のアドレスを増加させ、効果的にVLC符号化器120とメモリ130との間のバッファ役割を果たす。ピンポンバッファ127の詳細な動作に対しては後に説明する。
図2は、図1に示した係数可変長符号化器の4段階のパイプライン構造を説明するためのブロック図である。図2を参照すると、図1に示した係数可変長符号化器は、3次元値を求める段階(GEN)、求められた3次元値を伝送する段階(TRANSFER)、伝送された3次元値を用いて可変ビットベクトル値を求める段階(PROCESS)、及び可変ビット値をメモリに保存する段階(BIT_GEN)の4段階パイプライン構造で動作することがわかる。
パイプライン方式で動作するために、図1に示した係数可変長符号化器は、メモリから係数データを読み取る過程、及び可変ビットストリームをメモリに保存する過程を内部メモリを用いて一クロック期間に処理できるようにすることが望ましい。また、一般的に3次元値を用いて該当するテーブルを探して可変ビットベクトル値を求める段階は、長い処理時間が必要であるものの、本発明では全てのテーブルをゲート化して一クロック内に処理することができるようにした。これのために用いられるテーブルは、MPEG_4 intra coefficient table、MPEG−4 inter coefficient table、run−escape table、level−escape tableを用いる。即ち、3次元値が決定されると、これに応じるビットベクトルを一クロックにすぐ用いることができる。
図3は、RLC符号化器の状態遷移図である。図3を参照すると、図1に示したRLC符号化器110は、符号化動作を始めると、アイドル状態(IDLE)でアドレス生成状態(ADR_GEN)に移動してメモリアドレスを割り当てて内部メモリから係数データを読み取る。読み取った係数データにDC係数がある場合にこれを残り係数と異なる方法で処理するためにDC伝送状態(DC_SET)に移動し、DC係数なしにAC値のみあったり、或いはDC係数値を伝送した後にAC値がある場合にAC伝送状態(ADDRST)に移動して新しい3次元値を求めてVLC符号化器に伝送した後、インデックスに該当する位置に所定クロック期間保存するようになる。AC伝送状態(ADDRST)では、3次元値を求めてこれをインデックスと共にVLC符号化器に伝送した後に継続して内部メモリのアドレスを作り出し、3次元値を求めてVLC符号化器に伝送する動作を反復する。したがって、例外が発生しない限り、パイプライン構造が割れないので、高速に係数を可変長符号化することができる。AC伝送状態であるとき、VLC符号化器から例外信号(ESC_SIG)が活性化した場合には再びアドレス生成状態(ADR_GEN)に移動して保存されている3次元値のうち、例外インデックスに該当する3次元値の後に保存された3次元値を例外信号(ESC_SIG)が非活性化した後にVLC符号化器に再び伝送する。DC伝送状態(DC_SET)で、DC値を伝送した後、AC値がなかったり、或いは全ての係数に対して伝送済の場合には最終状態(LASTST)に移してRLC符号化器が動作を終了するようにする。
以下、図3に示した信号を説明すると、DCDATAEN信号は、係数データにDC値があると知らせる信号であり、DCONLYDATA信号はDC値があるブロックにAC値なしにDC値のみ有していることを知らせる信号であり、ACEXIST信号はAC値があることを知らせる信号であり、ESC_SIG信号はVLC符号化器にて例外場合が発生したことを知らせる信号であり、LASTCHECK信号はブロックのRLC符号化が完了したことを知らせる信号である。ここで、ESC_SIG信号のみがRLC符号化器の外部から入力される信号であり、残り信号はRLC符号化器の内部で用いられる信号である。
図4は、VLC符号化器の状態遷移図である。図4を参照すると、図1に示したVLC符号化器120は、符号化動作を始めると、アイドル(IDLE)状態で処理状態(CHECHST)に移動してRLC符号化器から3次元値がインデックスと共に入力されると、テーブルから3次元値に該当する可変ビットベクトルを探してこの可変ビットベクトルを保存する。一般的なテーブルでは処理できない例外が発生した場合には、例外信号(ESC_SIG)を活性化し、該当する第1例外状態(ESC1)に移動してレベル値に対する例外処理を行う。第1例外状態(ESC1)の例外処理が失敗した場合には、第2例外状態(ESC2)に移動してラン値に対する例外処理を行う。第2例外状態(ESC2)の例外処理が失敗した場合には、第3例外状態(ESC3)に移動して固定ビット符号化を行う。第1例外状態(ESC1)及び第2例外状態(ESC2)にて例外処理に成功したり、或いは第3例外状態(ESC3)にて固定ビット符号化を行った場合には、例外信号(ESC_SIG)を非活性化させ、例外処理状態(ESC_PROC)に移動して導出されたビットベクトルを保存する。例外処理状態(ESC_PROC)にてビットベクトルを保存した後には再び処理状態(CHECKST)に移動するようになる。RLC符号化器から伝送されたラスト値が1である時には終了状態(LASTST)に移動して符号化を終了するようになる。
VLC符号化器で、第1例外状態に進入するようになる場合に、VLC符号化器は例外信号(ESC_SIG)を通じてRLC符号化器に追加的なクロックが必要するようになったということを知らせて、RLC符号化器がアドレス生成状態(ADR_GEN)に変化するようにし、例外インデックス(ESC_INDEX)を通じて如何なるインデックスにて例外の場合が発生したかをRLC符号化器に知らせ、RLC符号化器にて例外を処理する期間に求められた3次元値を再びランレングス符号化(RUN−LENGTH CODING)せず、保存された3次元値を再びVLC符号化器に伝送するようにして、パイプラインが割れる場合の消費クロックを最小化させる。ここで、RLC符号化器の状態はアドレス生成状態(ADR_GEN)としてパイプラインプロセスを新しく始めるようになる。
以下、図4に示した信号を説明する。GETRUNLEVELLAST信号は、継続してRLC符号化器から値を受け取る信号であり、ESC_SIG信号は受け取った3次元値を一般的なテーブルで見つからない例外が発生したという信号である。この信号は、RLC符号化器にも伝達され、RLC符号化器では、このシグナルを見て例外状態が終わるまで待機する。ONLYLEVELESCAPE信号は、例外のうちにレベル値が例外である場合を示す信号であり、レベル値例外として処理できない場合、ONLYRUNESCAPE信号としてラン値が例外である場合を示す。ラン値例外としても処理できない場合は、符号化せず、そのまま伝送するようになる。CHECKLAST信号は、提供された3次元値のうち、ラスト値が1であるか否かをチェックしてラストが1である場合、符号化を終了するようになる。ここで、ESC_SIG信号のみがVLC符号化器が外部に出力する信号であり、残り信号はVLC符号化器の内部にて用いられる信号である。
図5は、図1に示した係数可変長符号化器のパイプラインタイミング図である。図5を参照すると、図5の縦軸は4段階パイプラインの各段階を示す。即ち、図5は、3次元値を求める段階(GEN)、求められた3次元値を伝送する段階(TRANSFER)、伝送された3次元値を用いて可変ビットベクトル値を求める段階(PROCESS)、及び可変ビットベクトル値を内部メモリに保存する段階(BITS_GEN)の各段階別に連続な符号化動作を行う時のタイミング図を示したものである。まず、3次元値を求める段階(GEN)では、一番目の3次元値を求め(GEN A)、その後、二番目及び三番目の3次元値を求め(GEN B,GEN C)、一クロック休んだ後、四番目及び五番目の3次元値を求める(GEN D,DEN E)。このように、3次元値を求める段階で毎クロックごとに3次元値が求められず、休むクロックが発生することは係数データが「0」である場合があるためである。
3次元値を求める段階(GEN)で、一番目の3次元値を求めると(GEN A)、その後のクロックにはこれを伝送する段階(TRANSFER)になる(TX A)。したがって、伝送する段階(TRANSFER)は、3次元値を求める段階(GEN)より一クロック後に来るようになることがわかる。パイプラインが割れない場合に伝送する段階(TRANSFER)の次のクロックにて可変ビットベクトル値を求める段階(PROCESS)が行われる。したがって、一番目及び二番目の3次元値に対して可変ビットベクトル値を求める段階(PROC.A,PROC.B)がこれを伝送する段階(TX A,TX B)の後のクロックにて行われることがわかる。また、可変ビットベクトル値を求める段階(PROCESS)から一クロック過ぎると、求められた可変ビットベクトル値を保存してビットストリームを生成する段階(BITS_GEN)になる。したがって、一番目及び二番目の3次元値に対して可変ビット値を求める段階(PROC.A,PROC.B)の後のクロックにてこれらを保存する段階(MAKE BIT A,MAKE BIT B)が行われることがわかる。しかし、図5で、三番目の3次元値である場合に(GEN C)一般的なテーブルで処理できない例外が発生したことがわかる。ここで、レベル値に対する例外の場合には、ビットベクトル値を求めるのに3クロックが必要とされることがわかる。これは、一般的なテーブルにて見つからない3次元値の可否を判断するのに一クロック、レベル値に対する例外処理をするのに一クロック、ビットベクトルを生成するのに一クロックが必要とされるためである。これは、図4に示した状態遷移図で、処理状態(CHECKST)、第1例外状態(ESC1)、及び例外処理状態(ESC_PROC)の三つの状態に遷移することに対応させることができる。したがって、3クロックが必要とされ、レベル値の例外に対するビットベクトルが生成されると、3次元値を求める段階(GEN)にて再び四番目の3次元値(GEN D)を再び伝送段階(TRANSFER)に送ることがわかる。本発明によると、二番目として四番目の3次元値(GEN D)を伝送するときには、ランレングス信号化して四番目の3次元値を求めるのではなく、保存された値を再使用する。三番目の3次元値(GEN C)に対する例外を処理する期間、二つの3次元値(GEN D,GEN E)が求められるので、この二つの値は例外が処理された後に保存された値として再使用されるのである。この二つの3次元値を再伝送した後には、再びパイプライン構造で動作するようになる。また、括弧として表示したように、ラン値に対する例外の場合にはレベル値に対する場合より1クロックが更に所要され、固定ビット符号化を行う場合には、これより1クロックが更に所要されることがわかる。これは、ラン値に対する例外の場合には、図4の状態遷移図で第2例外状態(ESC2)を更に経て、固定ビット符号化を行う場合には、第2及び第3例外状態(ESC2,ESC3)を更に経るためである。したがって、このようなラン値に対する例外や固定ビット符号化をする場合には、3次元値を生成する段階(GEN)もこれに合わせてビットベクトルを求めた後に再び四番目の3次元値を伝送するようになるのである。
図6は、VLC符号化器のピンポンバッファを説明するためのブロック図である。VLC符号化器は、ピンポンバッファを具備してビットベクトルを累積し、一定ビット単位で内部メモリに保存するようにする。
図6を参照すると、ピンポンバッファは、二つの32ビットバッファで構成されている。図6に示した二つの32ビットバッファのうち、左側バッファからデータを保存し、その後、右側のバッファにデータを保存するようになる。したがって、VLC符号化器にて符号化が進行されることによって、ビットストリームが累積され、左側の32ビットバッファが満杯になると、継続して右側の32ビットバッファにデータを保存し、左側の32ビットバッファの32ビットデータは内部メモリに保存される。その後、右側の32ビットバッファが満杯になると、継続して左側の32ビットに保存し、右側の32ビットバッファの32ビットバッファの32ビットデータは内部メモリに保存される。このような過程を反復してピンポンバッファは別途のクロック消費なしに32ビットストリーム単位で内部メモリにデータを保存することができるのである。ここで、現在ビットの累積値を示すポインタ値と作られるビットストリームを保存するメモリのアドレス値は、制御が可能であるように設計され、別途の複写やビットの移動なしにストリームを作ることができる。
図7は、図1に示した係数可変長符号化器を具備する可変長符号化器のブロック図である。
図7を参照すると、本発明の一実施例による可変長符号化器は、内部メモリ610、マクロブロック情報可変長符号化器620、DC値DPCM符号化器630、動きベクトルDPCM可変長符号化器640、係数可変長符号化器650、DMA660、及び可変長符号化制御器670を含む。
内部メモリ610は、動きベクトル及び係数データを受けてこれを保存する。マクロブロック情報可変長符号化器620は、マクロブロックタイプ、「0」値でないデータの有無を知らせる情報などを可変長符号化して内部メモリに保存する。DC値DPCM符号化器630は、DC値を内部メモリ610から読み取って、これをその周囲ブロックのDC値との差分値を求めて符号化して内部メモリ610に保存する。動きベクトルDPCM可変長符号器640は、マクロブロック又はそのサブブロックに対して周囲ブロックとの類似性を比較して動きを求めた動きベクトルを内部メモリ610から読み取ってこれを周囲ブロックとの差分値を取って可変長符号化して内部メモリ610に保存する。係数可変長符号化器650は、係数データを内部メモリ610から読み取って可変長符号化して得られたビットストリームを再び内部メモリ610に保存する。ここで、係数可変長符号化器650は、図1に示された係数可変長符号化器であって、4段階のパイプライン構造で動作し、一般的なテーブルにて3次元値に対応するビットベクトルが見つからない例外が発生した場合、例外を処理する期間に求められた3次元値を再び用いてパイプラインが割れる場合に対する処理時間を最小化しようとした。DMA660は、内部メモリ610のデータを外部メモリに伝送する機能を果たす。可変長符号化制御器670は、外部から制御信号の入力を受け、マクロブロック情報可変長符号化器620、DC値DPCM符号化器630、動きベクトルDPCM可変長符号化器640、係数可変長符号化器650、及びDMA660を制御する。
図8は、図7に示した可変長符号化器の動作流れ図である。図8を参照すると、図7に示した可変長符号化器は、可変長符号化が始まると、並列に動きベクトルDPCM可変長符号化及び係数の可変長符号化を行うようになることがわかる。動きベクトルDPCM可変長符号化を説明すると、まず、インターモードの可否を判断する(S721)。インターモードであれば、動きベクトルDPCMを処理し(S722)、可変長符号化する(S723)。図7に示した可変長符号器は、動きベクトルDPCM可変長符号化と同時に、係数可変長符号化を行う。以下、説明すると、まず、係数符号化でイントラモードの可否を判断する(S711)、イントラモードであれば、まず、周囲DC値とDPCMとを処理し(S712)、ランレングス符号化した後(S713)、可変長符号化を行う(S714)。イントラモードでなければ、すぐランレングス符号化した後(S713)、可変長符号化を行う(S714)。その後、符号化を行ったブロックがマクロブロックの最後のブロックであるか判断する(S715)。最後のブロックでなければ、S711段階に戻る。最後のブロックであれば、S731段階に移動する。S731段階では、係数可変長符号化及び動きベクトルDPCM可変長符号化が全て終わったかを否か判断する。全て終わらなければ、S731段階に戻る。全て終われば、マクロブロックヘッダーを生成し(S732)、ビートストリームデータを保存することになる(S733)。
前述したように、本発明による係数可変長の符号化方法及び係数可変長符号化器は4段階のパイプライン構造として動作する。したがって、毎クロックごとに可変ビットベクトルを求めることができて、係数可変長符号化の速度を向上させることができる。また、例外が発生してパイプラインが割れる場合に、例外を処理する期間に発生した3次元値を保存しておき、例外を処理した後に再びランレングス符号化せず、保存された3次元値を再伝送してパイプラインが割れる場合に対する処理時間を減少させることができる。したがって、高解像度の動画像データに対する可変長符号化を効果的に行うことができる。
以上、本発明の実施例によって詳細に説明したが、本発明はこれに限定されず、本発明が属する技術分野において通常の知識を有するものであれば本発明の思想と精神を離脱することなく、本発明を修正または変更できる。
本発明の一実施例による係数可変長符号化器のブロック図である。 図1に示した係数可変長符号化器の4段階パイプラインの構造を説明するためのブロック図である。 図1に示したRLC符号化器の状態遷移図である。 図1に示したVLC符号化器の状態遷移図である。 図1に示した係数可変長符号化器のパイプラインのタイミング図である。 図1に示したVLC符号化器のピンポンバッファを説明するためのブロック図である。 図1に示した係数可変長符号化器を具備する可変長符号化器のブロック図である。 図7に示した可変長符号化器の動作流れ図である。
符号の説明
110 RLC符号化器
120 VLC符号化器
130 メモリ

Claims (20)

  1. クロックの第1周期内に階数データをランレングス符号化してラン、レベル、及びラストの3次元値として求める段階と、
    前記クロックの第2周期内に前記求められた3次元値を伝送する段階と、
    前記クロックの第3周期内に前記伝送された3次元値を用いて可変ビットベクトル値を求める段階と、
    前記クロックの第4周期内に前記求められた可変ビットベクトル値を保存する段階を並列処理することを特徴とする4段階パイプライン方式の係数可変長の符号化方法。
  2. 前記可変ビットベクトル値は、
    前記第3周期内に前記3次元値を求めるために、ゲート化されたテーブルを用いて求めることを特徴とする請求項1に記載の係数可変長の符号化方法。
  3. 前記3次元値を伝送する段階は、前記3次元値と共に対応するインデックス値を伝送し、前記3次元値を前記インデックスと対応させ、所定クロック期間保存し、
    前記可変ビットベクトル値を求める段階は、前記伝送された3次元値を一般的なテーブルで見つけることができない例外が発生した場合、前記インデックス値を用いて前記例外を処理する期間中に求められた3次元値を再びランレングス符号化せず、前記保存された3次元値を用いるようにすることを特徴とする請求項1に記載の係数可変長の符号化方法。
  4. 前記所定クロックは、4クロックであることを特徴とする請求項3に記載の係数可変長の符号化方法。
  5. 前記係数可変長の符号化方法は、
    前記例外が発生した場合に前記インデックス及び保存された値を用いて前記例外を処理する期間中に求められた3次元値を伝送した後に再び前記4段階パイプライン方式で動作する段階を更に含むことを特徴とする請求項4に記載の係数可変長の符号化方法。
  6. メモリから係数データを読み取った後、ランレングス符号化してクロックの第1周期内にラン、レベル、及びラストの3次元値を求め、前記求められた3次元値を前記クロックの第2周期内に伝送するRLC符号化器と、
    前記伝送された3次元値を用いて可変ビットベクトル値を前記クロックの第3周期内に求め、前記求められた可変ビット値を前記クロックの第4周期内に保存するVLC符号化器を含んで4段階のパイプライン構造で動作することを特徴とする係数可変長の符号化器。
  7. 前記RLC符号化器は、3次元値保存バッファを具備し、前記伝送した3次元値を前記3次元値保存バッファのインデックスに該当する位置に所定クロック期間保存することを特徴とする請求項6に記載の係数可変長の符号化器。
  8. 前記所定クロックは、4クロックであることを特徴とする請求項7に記載の係数可変長の符号化器。
  9. 前記RLC符号化器は、前記3次元値を伝送するためのラン、レベル、ラスト信号、及びこれに相応するインデックス信号と前記3次元値のDC値可否を知らせるためのDC信号とを出力し、前記VLC符号化器から例外信号及び例外インデックス信号の入力を受けることを特徴とする請求項8に記載の係数可変長の符号化器。
  10. 前記VLC符号化器は、前記3周期内に3次元値を求めるためにゲート化されたテーブルを用いて前記可変ビットベクトル値を求めることを特徴とする請求項9に記載の係数可変長の符号化器。
  11. 前記VLC符号化器は、前記RLC符号化器から前記ラン、レベル、ラスト信号と、前記インデックス信号及び前記DC信号の入力を受け、前記例外信号及び例外インデックス信号を出力することを特徴とする請求項10に記載の係数可変長の符号化器。
  12. 前記VLC符号化器は、前記RLC符号化器から入力を受けたラン、レベル、及びラストの3次元値を前記テーブルのうち、一般的なテーブルで見つけることができない例外が発生する場合に、例外信号を活性化し、前記3次元値に該当するインデックスを前記例外インデックス信号として出力し、前記例外を処理することを特徴とする請求項11に記載の係数可変長の符号化器。
  13. 前記RLC符号化器は、前記VLC符号化器から入力される前記例外信号が活性化される場合に前記例外インデックス信号を用いて前記VLC符号化器が前記例外を処理する期間中に求められた3次元値を前記3次元値保存バッファから得て、前記VLC符号化器に伝送することを特徴とする請求項12に記載の係数可変長の符号化器。
  14. 前記VLC符号化器は、前記求められた可変ビットベクトル値を累積して一定ビット単位としてメモリに伝送するピンポンバッファを含むことを特徴とする請求項13に記載の係数可変長の符号化器。
  15. 動きベクトル及び係数データを受けてこれを保存する内部メモリと、
    マクロブロックタイプ、0値でないデータの有無を知らせる情報などを可変長符号化して前記内部メモリに保存するマクロブロック情報可変長符号化器と、
    DC値を前記内部メモリから読み取って、これをその周囲ブロックのDC値との差分値を求めて符号化して前記内部メモリに保存するDC値DPCM符号化器と、
    マクロブロック又はそのサブブロックに対して周囲ブロックとの類似性を比較して動きを求めた動きベクトルを前記内部メモリから読み取って、これを周囲ブロックとの差分値を取って可変長符号化して前記内部メモリに保存する動きベクトルDPCM可変長符号化器と、
    係数データを前記内部メモリから読み取って可変長符号化して前記内部メモリに保存する係数可変長符号化器と、
    前記内部メモリデータを外部メモリに保存するDMAと、
    制御信号を受けて、前記マクロブロック情報可変長符号化器、前記DC値DPCM符号化器、前記動きベクトルDPCM可変長符号化器、前記係数可変長符号化器、及び前記DMAを制御する可変長符号化制御器とを含み、
    前記係数可変長符号化器は、
    前記内部メモリから前記係数データを読み取った後、ランレングス符号化してクロックの第1周期内にラン、レべル、及びラストの3次元値を求め、前記求められた3次元値を前記クロックの第2周期内に伝送するRLC符号化器と、
    前記伝送された3次元値を用いて可変ビットベクトル値を前記クロックの第3周期内に求め、前記求められた可変ビットベクトル値を前記クロックの第4周期内に前記内部メモリに保存するVLC符号化器とを含み、4段階のパイプライン構造として動作することを特徴とするビデオコーデックの可変長符号化器。
  16. 前記動きベクトルDPCM可変長符号化器及び前記係数可変長符号化器は、並列に動作することを特徴とする請求項15に記載のビデオコーデックの可変長符号化器。
  17. 前記RLC符号化器は、求められた3次元値を保存空間の所定インデックスに該当する空間に所定クロック期間保存することを特徴とする請求項16に記載のビデオコーデックの可変長符号化器。
  18. 前記VLC符号化器は、前記RLC符号化機から伝送された3次元値を一般的なテーブルで見つけることができない例外が発生した場合に例外信号を活性化し、前記3次元値のインデックスを例外インデックス信号として出力することを特徴とする請求項17に記載のビデオコーデックの可変長符号化器。
  19. 前記RLC符号化器は、前記例外信号が活性化される場合、前記例外インデックス信号を用いて前記VLC符号化器が例外を処理する期間中に求められた3次元値を前記保存空間から得て、前記例外信号が比活性化された後に前記VLC符号化器に伝送することを特徴とする請求項18に記載のビデオコーデックの可変長符号化器。
  20. 前記VLC符号化器は、前記可変ビットベクトルを累積して一定ビット単位で前記内部メモリに保存するピンポンバッファを含むことを特徴とする請求項19に記載のビデオコーデックの可変長符号化器。
JP2005204087A 2004-07-26 2005-07-13 4段階のパイプライン方式の係数可変長の符号化方法、及び係数可変長符号化器 Expired - Fee Related JP4750490B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR2004-058134 2004-07-26
KR20040058134A KR100604986B1 (ko) 2004-07-26 2004-07-26 4단계 파이프라인 방식의 계수 가변장 부호화방법 및 계수가변장 부호화기

Publications (2)

Publication Number Publication Date
JP2006042331A true JP2006042331A (ja) 2006-02-09
JP4750490B2 JP4750490B2 (ja) 2011-08-17

Family

ID=36703905

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005204087A Expired - Fee Related JP4750490B2 (ja) 2004-07-26 2005-07-13 4段階のパイプライン方式の係数可変長の符号化方法、及び係数可変長符号化器

Country Status (4)

Country Link
US (1) US7995655B2 (ja)
JP (1) JP4750490B2 (ja)
KR (1) KR100604986B1 (ja)
CN (1) CN100548050C (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101090503B (zh) * 2007-07-05 2010-06-02 北京中星微电子有限公司 熵编码控制方法及熵编码电路
US8135072B2 (en) * 2007-08-01 2012-03-13 Lsi Corporation CAVLC run before encode with zero cycle costs
WO2009064763A2 (en) * 2007-11-13 2009-05-22 Invista Technologies S.A.R.L. Bonding of heat-activated films including a plasticizer
US20100053181A1 (en) * 2008-08-31 2010-03-04 Raza Microelectronics, Inc. Method and device of processing video
US9338456B2 (en) * 2011-07-11 2016-05-10 Qualcomm Incorporated Coding syntax elements using VLC codewords

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07240844A (ja) * 1993-03-19 1995-09-12 Mitsubishi Electric Corp 画像データ処理装置および画像データ処理方法
JPH10191336A (ja) * 1996-12-27 1998-07-21 Nec Corp 可変長符号化装置
JPH11136677A (ja) * 1997-10-30 1999-05-21 Fujitsu Ltd 画像情報処理装置及び符号装置
JP2002246914A (ja) * 2001-02-15 2002-08-30 Nippon Telegr & Teleph Corp <Ntt> 符号変換装置と符号変換方法および符号変換プログラムを記録した記録媒体と符号変換プログラム
JP2003224851A (ja) * 2002-01-30 2003-08-08 Nippon Telegr & Teleph Corp <Ntt> ビットレート低減装置及びその方法と、画像符号化装置及びその方法と、画像復号装置及びその方法と、画像符号化プログラム及びそのプログラムを記録した記録媒体と、画像復号プログラム及びそのプログラムを記録した記録媒体

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990049273A (ko) * 1997-12-12 1999-07-05 전주범 디지털 브이씨알의 가변길이 복호화 장치
JPH11215009A (ja) 1998-01-22 1999-08-06 Sony Corp 符号復号装置
US6334180B1 (en) * 1999-06-27 2001-12-25 Sun Microsystems, Inc. Processor coupled by visible register set to modular coprocessor including integrated multimedia unit
KR100349058B1 (ko) * 2000-06-15 2002-08-21 (주)씨앤에스 테크놀로지 영상압축복원장치
JP2002237754A (ja) 2001-02-07 2002-08-23 Canon Inc 可変長復号化装置及び方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07240844A (ja) * 1993-03-19 1995-09-12 Mitsubishi Electric Corp 画像データ処理装置および画像データ処理方法
JPH10191336A (ja) * 1996-12-27 1998-07-21 Nec Corp 可変長符号化装置
JPH11136677A (ja) * 1997-10-30 1999-05-21 Fujitsu Ltd 画像情報処理装置及び符号装置
JP2002246914A (ja) * 2001-02-15 2002-08-30 Nippon Telegr & Teleph Corp <Ntt> 符号変換装置と符号変換方法および符号変換プログラムを記録した記録媒体と符号変換プログラム
JP2003224851A (ja) * 2002-01-30 2003-08-08 Nippon Telegr & Teleph Corp <Ntt> ビットレート低減装置及びその方法と、画像符号化装置及びその方法と、画像復号装置及びその方法と、画像符号化プログラム及びそのプログラムを記録した記録媒体と、画像復号プログラム及びそのプログラムを記録した記録媒体

Also Published As

Publication number Publication date
JP4750490B2 (ja) 2011-08-17
CN100548050C (zh) 2009-10-07
KR100604986B1 (ko) 2006-07-28
US7995655B2 (en) 2011-08-09
KR20060009525A (ko) 2006-02-01
CN1758760A (zh) 2006-04-12
US20060018384A1 (en) 2006-01-26

Similar Documents

Publication Publication Date Title
US7876829B2 (en) Motion compensation image coding device and coding method
JP4495034B2 (ja) 可変長符号化方式および可変長符号化装置
JP5053254B2 (ja) ハードウェア・アクセラレータを備えたマルチ標準可変復号器
CN101193306A (zh) 运动矢量检测装置和运动矢量检测方法
JP4750490B2 (ja) 4段階のパイプライン方式の係数可変長の符号化方法、及び係数可変長符号化器
US8665966B2 (en) Video coding apparatus, method of controlling video coding and program of controlling video coding
KR20040095742A (ko) 화상 복호 유닛과 그것을 이용한 화상 부호화 장치 및부호화 방법, 및 화상 복호 장치 및 복호 방법
JP2006270683A (ja) 符号化装置と方法
JP2008182527A (ja) 画像符号化装置及び方法、並びに撮像システム
JP2004056758A (ja) 可変長符号化装置、及びその方法
CN1272931A (zh) 图像处理装置
US9271009B2 (en) Image processing apparatus and image processing method
US8111753B2 (en) Video encoding method and video encoder for improving performance
US8456334B2 (en) Variable-length code decoding apparatus, decoding system, and variable-length code decoding method
JP2007259323A (ja) 画像復号化装置
US6873735B1 (en) System for improved efficiency in motion compensated video processing and method thereof
JPH07282594A (ja) 可変長デジタル・コード解読器のシフタ段装置
JPH0898181A (ja) 画像変換方法及び装置
JP2003324732A (ja) 画像処理装置およびその方法
JP2004179752A (ja) ハフマンデコーダ
JP2004336247A (ja) 画像符号化方法、画像符号化装置及びコンピュータプログラム
JPH10327412A (ja) 画像復号化装置
JP4507742B2 (ja) 動画像符号化装置
CN114339249A (zh) 视频解码方法、可读介质及其电子设备
WO2013165624A1 (en) Mechanism for facilitating cost-efficient and low-latency encoding of video streams

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110322

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110519

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140527

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees