(57)【特許請求の範囲】
【請求項１】
ＤＣＴ係数に対してスキャニング過程を行う映像符号化器において、
インタ量子化マトリックスを貯蔵する複数の貯蔵領域を有する第１バンクと、イントラ量子化マトリックスを貯蔵する複数の貯蔵領域を有する第２バンクを含むメモリと、
前記インタ量子化マトリックスと前記イントラ量子化マトリックスをそれぞれジグザグスキャニング方式に従った順序で前記メモリに書込むための書込みアドレスと、前記ＤＣＴ係数に行われるスキャニング方式に従った順序で前記メモリからインタ量子化マトリックスまたはイントラ量子化マトリックスを出力させる読出しアドレスを生成し、前記書込みアドレスと前記読出しアドレスに応じて前記メモリの第１バンクと第２バンクに対してそれぞれ前記インタ量子化マトリックスと前記イントラ量子化マトリックスの書込み及び読出しを制御するメモリ制御部と、
前記メモリ制御部を通してメモリから出力される前記量子化マトリックス値と外部から供給される量子化スケール値の逆数を取り出力する演算制御部と、
前記スキャニング方式によりスキャニングされた前記ＤＣＴ係数に対して前記演算制御部から出力される量子化スケール値及び量子化マトリックス値を用いて量子化を行う演算部と、
を含むことを特徴とする映像信号符号化システムにおける量子化器。
【請求項２】
ＤＣＴ係数に対してスキャニング過程を行う映像符号化器において、
それぞれ同一のインタ量子化マトリックスを貯蔵する第１及び第２サブＲＡＭから構成される第１バンクと、それぞれ同一のイントラ量子化マトリックスを貯蔵する第３及び第４サブＲＡＭから構成される第２バンクとからなるＲＡＭと、
前記インタ量子化マトリックスと前記イントラ量子化マトリックスをそれぞれジグザグスキャニング方式に従った順序で該当サブＲＡＭに書込むための書込みアドレスと、結合時に前記ＤＣＴ係数のスキャニング方式に従った順序となるように前記ＲＡＭの第１及び第２サブＲＡＭ、並びに第３及び第４サブＲＡＭからインタ量子化マトリックス及びイントラ量子化マトリックスを出力させる読出しアドレスを生成し、前記読出しアドレスに応じて前記ＲＡＭから出力される前記インタ量子化マトリックスデータとイントラ量子化マトリックスデータのうちの１つ以上を前記ＤＣＴ係数に行われるスキャニング方式に従った順序を有するように結合して出力するＲＡＭコントローラと、
前記ＲＡＭコントローラで結合されて出力された量子化マトリックス値と外部から供給される量子化スケール値の逆数を取り出力する演算制御部と、
前記スキャニング方式によりスキャニングされた前記ＤＣＴ係数に対して前記演算制御部から出力される量子化スケール値及び量子化マトリックス値を用いて量子化を行う演算部と、
を含むことを特徴とする映像信号符号化システムにおける量子化器。
【請求項３】
前記第１乃至第４サブＲＡＭはそれぞれ１６ビット×３２ワードのサイズを有することを特徴とする請求項２に記載の映像信号符号化システムにおける量子化器。
【請求項４】
前記ＲＡＭコントローラは、前記書込みアドレスを生成する書込みアドレス生成部と、前記読出しアドレスを生成する読出しアドレス発生部と、前記読出しアドレスに応じて前記ＲＡＭから出力される前記量子化マトリックスデータを前記ＤＣＴ係数に行われるスキャニング方式に従った順序を有するように結合して出力するデータ結合部、とを備え、
前記書込みアドレス発生部は、クロック信号をカウントして前記マトリックスデータを１６ビット単位で前記該当サブＲＡＭに貯蔵するための３２個の書込みアドレスを発生する第１カウンターから構成されており、
前記読出しアドレス発生部は、前記クロック信号をカウントして３２個のカウント値を出力する第２カウンターと、前記第２カウンターのカウント値に応じて前記ＲＡＭの第１及び第２サブＲＡＭ、並びに第３及び第４サブＲＡＭに貯蔵された量子化マトリックスをジグザグスキャニング方式に従った順序で出力させるための第１読出しアドレスとオルタネートスキャニング方式に従った順序で出力させるための第２読出しアドレスを発生するプログラマブルロジックアレーと、前記ＤＣＴ係数に対する前記スキャニング方式に応じて、前記第１読出しアドレスと前記第２読出しアドレスを選択的に出力する第１マルチプレクサとから構成されており、
前記データ結合部は、前記第１読出しアドレス又は前記第２読出しアドレスに応じて前記ＲＡＭの第１及び第２サブＲＡＭ、並びに第３及び第４サブＲＡＭから出力される２つのインタ量子化マトリックスまたは２つのイントラ量子化マトリックスを、符号化モード判別信号に応じて選択的に出力する第２マルチプレクサと、前記第２カウンターのカウント値に応じて、前記第２マルチプレクサから出力される２つの量子化マトリックスデータを１６ビット単位で前記ＤＣＴ係数のスキャニング方式に従った順序となるように出力するパッキング部と、
を備えることを特徴とする請求項２に記載の映像信号符号化システムにおける量子化器。
【請求項５】
ＤＣＴ係数に対してスキャニング過程を行う映像符号化器において、
インタ量子化マトリックスを貯蔵する第１乃至第３サブＲＡＭから構成される第１バンクと、イントラ量子化マトリックスを貯蔵する第４乃至第６サブＲＡＭから構成される第２バンクとからなるＲＡＭと、
１６ビット単位の前記インタ量子化マトリックスを前記第１乃至第３サブＲＡＭのうち二つのサブＲＡＭに、１６ビット単位の前記イントラ量子化マトリックスを前記第４乃至第６サブＲＡＭのうち二つのサブＲＡＭに、ジグザグスキャニング方式に従った順序で８ビット単位で書込むための書込みアドレスと、前記ＤＣＴ係数のスキャニング方式に従った順序で前記ＲＡＭの第１乃至第３サブＲＡＭ、並びに第４乃至第６サブＲＡＭから前記インタ量子化マトリックス及び前記イントラ量子化マトリックスを出力するための読出しアドレスを生成し、前記読出しアドレスに応じて前記ＲＡＭから出力される前記インタ量子化マトリックスデータとイントラ量子化マトリックスデータのうちの１つ以上を１６ビット単位で前記ＤＣＴ係数のスキャニング方式に従った順序となるように結合して出力するＲＡＭコントローラと、
前記ＲＡＭコントローラで結合されて出力された前記量子化マトリックス値と外部から供給される量子化スケール値の逆数を取り出力する演算制御部と、
前記スキャニング方式によりスキャニングされた前記ＤＣＴ係数に対して前記演算制御部から出力される量子化スケール値及び量子化マトリックス値を用いて量子化を行う演算部と、
を含むことを特徴とする映像信号符号化システムにおける量子化器。
【請求項６】
前記第１及び第２サブＲＡＭと第４及び第５サブＲＡＭはそれぞれ８ビット×２２ワードのサイズを有し、前記第３及び第６サブＲＡＭはそれぞれ８ビット×２０ワードのサイズを有することを特徴とする請求項５に記載の映像信号符号化システムにおける量子化器。
【請求項７】
前記ＲＡＭコントローラは、前記書込みアドレスを生成する書込みアドレス生成部と、前記量子化マトリックスを該当三つのサブＲＡＭのうち二つのサブＲＡＭに分散するデータ分配部と、前記読出しアドレスを生成する読出しアドレス発生部と、前記読出しアドレスに応じて前記ＲＡＭから出力される前記量子化マトリックスデータを１６ビット単位で前記ＤＣＴ係数のスキャニング方式に従った順序となるように結合して出力するデータ結合部とを備え、
前記書込みアドレス発生部は、クロック信号をカウントして３２個のカウント値を出力する第１カウンターと、前記第１カウンターのカウント値に応じて、前記マトリックスデータを８ビット単位で前記該当サブＲＡＭに貯蔵するための３２個の書込みアドレスを発生する第１プログラマブルロジックアレーとから構成されており、
前記読出しアドレス発生部は、前記クロック信号をカウントして３２個のカウント値を出力する第２カウンターと、前記第２カウンターのカウント値に応じて前記ＲＡＭの第１乃至第３サブＲＡＭ、並びに第４乃至第６サブＲＡＭに貯蔵された量子化マトリックスをジグザグスキャニング方式に従った順序で出力させるための第１読出しアドレスとオルタネートスキャニング方式に従った順序で出力させるための第２読出しアドレスを発生する第２プログラマブルロジックアレーと、前記ＤＣＴ係数に対するスキャニング方式に応じて、前記第１読出しアドレスと第２読出しアドレスに対して選択的に出力する第１マルチプレクサとから構成されており、
前記データ結合部は、前記第１読出しアドレス又は前記第２読出しアドレスに応じて前記ＲＡＭの第１乃至第3サブＲＡＭ、並びに第４乃至第６サブＲＡＭから出力される３つのインタ量子化マトリックスまたは３つのイントラ量子化マトリックスを、符号化モード判別信号に応じて選択的に出力する第２マルチプレクサと、前記第２カウンターのカウント値に応じて、前記第２マルチプレクサから出力される３つの量子化マトリックスデータを１６ビット単位で前記ＤＣＴ係数のスキャニング方式に従った順序となるように出力するパッキング部と、
を備えることを特徴とする請求項５に記載の映像信号符号化システムにおける量子化器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は量子化器に係り、特に量子化の以前に離散余弦（コサイン）変換係数に対するスキャニング過程を行う映像符号化器に用いられる映像信号符号化システムにおける量子化器に関する。
【０００２】
【従来の技術】
図１は一般的なMPEG-2(Moving Picture Experts Group-2)映像符号化器を示したブロック図であり、フレームメモリ110と、減算器120と、離散余弦変換器(DCT)130と、量子化器(Q)140と、スキャニング部150aと、可変長符号化器(VLC)150bと、逆量子化器(IQ)160と、逆離散余弦変換器(IDCT)170と、加算器180と、動き補償部(MC)190とから構成される。
【０００３】
図１において、減算器120は、フレームメモリ110からの現在映像信号と動き補償部190からの動き補償された以前の映像信号に対する差映像を求めて離散余弦変換器130に出力する。離散余弦変換器130は、差映像に対して離散余弦変換を行い離散余弦変換(DCT)係数を量子化器140に出力する。量子化器140は、DCT係数に対して量子化を行い量子化されたDCT係数をスキャニング部150a及び逆量子化器160に出力する。スキャニング部150aは、量子化された二次元のDCT係数を一次元の係数列に変換させた後、可変長符号化器150bでランレングス符号化及び可変長符号化して最終的に符号化されたビットストリームを出力する。
【０００４】
このような一般的なMPEG-2映像符号化器においては、映像データが量子化された後にスキャニング過程が行われたが、映像符号化器を設計する実際的な面における待ち時間(latency)問題のため、スキャニング過程を量子化の以前に行わなければならなくなった。
【０００５】
図２は量子化の以前にスキャニング過程が行われる映像符号化器を示したものであり、説明の便宜のために動き補償回路を除いた差映像符号化回路のみを示した。図２の映像符号化器は、直交変換部210と、スキャニング部230と、量子化器250と、符号化部270とから構成される。ここで、直交変換部210は入力される映像信号に対して離散余弦変換を行い、スキャニング部230は二次元のDCT係数を一次元の係数列に変換させ、量子化器250は一次元の係数列に変換されたDCT係数に対して量子化を行い、符号化器270は量子化されたDCT係数に対してランレングス符号化及び可変長符号化を行い最終的に符号化されたビットストリームを出力する。これと類似な映像符号化器が米国特許番号U.S.P 5,369,439号に開示されている。
【０００６】
一方、MPEG-1映像符号化器では、DCT係数が図3Aのようなジグザグスキャニング(zig-zag scanning)方式に応じて一次元の係数列に変換されたが、MPEG-2映像符号化器では、ジグザグスキャニングのみならず図3Bのようなオルタネートスキャニング(alternate scanning)方式をピクチャー単位で選択して用いることができる。このようなオルタネートスキャニング方式は飛越し走査成分が効率よく取れるようになっており、飛越し走査映像で優れた機能を発揮する。
【０００７】
しかしながら、図２のように量子化の以前にスキャニング過程が行われる場合、スキャニング部230ではジグザグスキャニング方式とオルタネートスキャニング方式を支援するので、量子化器250はスキャニング方式に応じる量子化マトリックスを提供する機能を備えるべきである。MPEG-2映像符号化器において、量子化は空間周波数に応じて異なる加重値を取る適応量子化方式であり、符号化モードに応じてイントラブロックの量子化のための加重値マトリックス(以下、intra quantization matrixという)とインタブロックの量子化のための加重値マトリックス(以下、inter quantization matrixという)とを必要とする。ところが、量子化器において、これらマトリックスの入力(又は伝送)の手順はジグザグ方式だけを用いるように進められているが、映像データの入力手順はスキャニング方式に応じて変わる。従って、スキャニングが予め行われたDCT係数を量子化するためには、スキャニング方式に応じて予め量子化マトリックスの手順と入力映像データの手順とを一致させなければならない。特に、映像符号化を迅速に処理するために量子化器で２ピクセルずつ、即ち16ビット単位で処理する場合、入力映像データ対と量子化マトリックス対を正確にマッチングさせる必要がある。
【０００８】
【発明が解決しようとする課題】
本発明は上述した問題点を解決するために案出されたものであり、量子化の以前にDCT係数に対するスキャニング過程を予め行う映像符号化器において、ジグザグ手順でメモリに貯蔵されている量子化マトリックスをDCT係数のスキャニング方式に応じてジグザグ手順又はオルタネート手順で読出し、一次元のDCT係数に対する量子化を行うための量子化器を供給するにその目的がある。
【０００９】
【課題を解決するための手段】
前記目的を達成するために本発明による量子化器は、量子化の以前にDCT係数に対するスキャニング過程を行う映像符号化器において、インタ量子化マトリックスを貯蔵する複数の領域から構成される第１バンクと、イントラ量子化マトリックスを貯蔵する複数の領域から構成される第２バンクとからなるメモリと、前記インタ量子化マトリックスと前記イントラ量子化マトリックスをそれぞれジグザグ手順で（順序で）前記メモリに書込むための書込みアドレスと、前記DCT係数のスキャニング方式に応じて前記メモリから該当量子化マトリックスを読出すための読出しアドレスを生成し、前記書込みアドレスと前記読出しアドレスに応じて前記メモリに対する前記インタ量子化マトリックスと前記イントラ量子化マトリックスの書込み及び読出を制御するメモリ制御部と、前記メモリ制御部を通してメモリから供給される該当量子化マトリックス値と外部から供給される量子化スケール値の逆数を取り出力する演算制御部と、所定の方式によりスキャニングされた前記DCT係数に対して前記演算制御部から出力される量子化スケール値及び量子化マトリックス値を用いて量子化を行う演算部と、を含むことを特徴とする。
【００１０】
【発明の実施の形態】
以下、添付した図面に基づき本発明をより詳しく説明する。
【００１１】
図４は本発明による量子化器を示したブロック図であり、インタ量子化マトリックスとイントラ量子化マトリックスを貯蔵するメモリ、例えばＲＡＭ（ラム）42と、ジグザグ手順の書込みアドレスとDCT係数のスキャニング方式に応じる読出しアドレスを生成し、書込み/読出しアドレスに応じてＲＡＭ42からの量子化マトリックスの書込み及び読出を制御するメモリ制御部（ラムコントローラ）44と、量子化スケール値とＲＡＭ42から読出された量子化マトリックス値の逆数を取る演算制御部46と、ジグザグスキャニング又はオルタネートスキャニングによりスキャニングされたDCT係数に対して演算制御部46から供給される量子化スケール値と量子化マトリックス値を用いて量子化を行う演算部48とから構成される。
【００１２】
図５は図４におけるＲＡＭ42とラム（ＲＡＭ）コントローラ44の第１実施例による細部ブロック図である。ここで、ＲＡＭ42は、インタ量子化マトリックスを貯蔵する第１バンク(BANK1)とイントラ量子化マトリックスを貯蔵する第２バンク(BANK2)とからなる。第１バンク(BANK1)はそれぞれ同一なインタ量子化マトリックスを貯蔵する第１及び第２サブＲＡＭ(BANK1A,BANK1B)から構成され、第２バンク(BANK2)はそれぞれ同一なイントラ量子化マトリックスデータを貯蔵する第３及び第４サブＲＡＭ(BANK2A,BANK2B)から構成される。かつ、第１乃至第４サブＲＡＭ(BANK1A,BANK1B,BANK2A,BANK2B)はそれぞれ16ビット×32ワードのサイズを有する。
【００１３】
一方、ラムコントローラ44は、インタ量子化マトリックスとイントラ量子化マトリックスをＲＡＭ42に貯蔵するための書込みアドレスを発生させる書込みアドレス発生部、例えば第１カウンター50と、DCT係数に対するスキャニング方式に応じてＲＡＭ42から該当量子化マトリックスを読出すための読出しアドレスを発生させる読出しアドレス発生部、例えば第２カウンター51と、プログラマブルロジックアレー(PLA)52と、第１マルチプレクサ53と、ＲＡＭ42から出力される量子化マトリックスを符号化モード及びスキャニング手順に応じて16ビットデータに結合するデータ結合部、例えば第２マルチプレクサ54と、パッキング部55とから構成される。
【００１４】
なお、図４と図５を参照して本発明の第１実施例による量子化器の動作を説明する。まず、各ブロックの動作を説明する前に各ブロックに入出力される信号について簡略に説明する。
【００１５】
ラムコントローラ44の入力信号として、"CLK"はシステムクロックを、"RST"はアクティブローで動作するリセット信号をそれぞれ示す。"ID_CD"は、符号化モードに応じる量子化マトリックスの種類(即ち、インタ量子化マトリックス又はイントラ量子化マトリックス)を表す識別子(ID)と、識別子(ID)の次に入力される量子化マトリックスデータ(CD)とを示す。"FLAG_ID"は入力されるID_CDが有効であることを示す信号であり、例えば、FLAG_IDが"ハイ"レベルであればID_CDを読取りIDの後に現れる量子化マトリックスデータ(CD)を2ピクセル単位で、即ち16ビットずつ読取る。"mbs"はマクロブロックの開始を示す信号である。
【００１６】
演算制御部46の入力信号としての"QUANT_SCALE_CODE"と"QUANT_SCALE_TYPE"は、量子化スケールの値を示すためにMPEG-2で定義しておいた信号である。"DC_PREC"はMPEG-2で定義したイントラブロックにおけるDC係数のサイズ(精度)を示しており、例えば、0であればDC係数は8ビットであり、3であればDC係数は1１ビットである。
【００１７】
演算部48の入力信号としての"DATA_EVEN"及び"DATA_ODD"は、離散余弦変換された後、所定の方式にてスキャニングされ入力される2ピクセル単位の偶数及び奇数データであり、出力信号としての"QUANT_EVEN"及び"QUANT_ODD"は、入力された2ピクセル単位の偶数及び奇数データに対して量子化を行った結果として出力されるデータをそれぞれ示す。
【００１８】
次に、各ブロックの動作を見ると、ＲＡＭ42の第１バンク(BANK1)において、第１サブＲＡＭ(BANK1A)と第２サブＲＡＭ(BANK1B)には書込みアドレス(WADDO)が指示する32個の領域に16ビット単位でそれぞれ同一なインタ量子化マトリックスデータが貯蔵される。一方、第２バンク(BANK2)において、第３サブＲＡＭ(BANK2A)と第４サブＲＡＭ(BANK2B)には書込みアドレス(WADDO)が指示する32個の領域に16ビット単位でそれぞれ同一なイントラ量子化マトリックスデータが貯蔵される。ここで、インタ量子化マトリックスとイントラ量子化マトリックスは映像符号化器を制御するシステム制御部(図示せず)から供給され、使用者定義マトリックスであるかMPEG-2で定義しておいたデーフォルト(Default)マトリックスであり得る。
【００１９】
ラムコントローラ44は、システムクロック(CLK)とリセット(RST)信号に応じて動作してID_CDを通して入力される量子化マトリックスを書込みアドレス(WADDO)に応じてＲＡＭ42の該当バンクに貯蔵する。かつ、DCT係数がジグザグスキャニングされた場合には読出しアドレス(RADD0)に応じて、DCT係数がオルタネートスキャニングされた場合には読出しアドレス(RADD1,RADD2)に応じてＲＡＭ42に貯蔵された量子化マトリックスを読取り演算制御部46に出力する。即ち、ラムコントローラ44は、FLAG_IDが"ハイ"論理レベルのときはID_CDを解釈して量子化マトリックスの種類を識別した後、次に入力される量子化マトリックスを書込みアドレス(WADDO)に応じてＲＡＭ42の該当バンクの各サブＲＡＭに貯蔵する。かつ、マクロブロックの開始信号(mbs)に同期されてスキャニング方式に応じる読出しアドレス(RADDO)又は読出しアドレス(RADD1,RADD2)に応じて該当バンクの各サブＲＡＭに貯蔵された量子化マトリックスを読取り演算制御部46に出力する。図面には詳しく示していないが、各サブＲＡＭは書込み及び読出のための制御信号と出力をイネーブルさせるための制御信号等を有する。前記制御信号は通常ラムコントローラ44で該当サブＲＡＭが選択されるときに供給される。
【００２０】
前述したようなラム42及びラムコントローラ44について図５に基づきより詳しく説明する。
【００２１】
第１カウンター50は5ビットカウンターであり、リセット(RST)信号に応じてカウント値をクリアーさせた後、クロック(CLK)信号に応じて00Hから1FHまでカウントして、システム制御部(図示せず)から供給される量子化マトリックスデータを16ビット単位で第１及び第２サブＲＡＭ(BANK1A,BANK1B)又は第３及び第４サブＲＡＭ(BANK2A,BANK2B)に貯蔵するための32個の書込みアドレス(WADDO)を発生する。この際、書込みアドレス(WADDO)の例は下記の表１に示した通りである。
【００２２】
【表１】
0004117044.tif 000002
【００２３】
表１はインタ量子化マトリックスが第１及び第２サブＲＡＭ(BANK1A,BANK1B)に貯蔵される場合を示している。カウント値が0016である場合には書込みアドレス(WADDO)が"00"である領域に(00,01)マトリックスデータ対が貯蔵される。カウント値が0116である場合には書込みアドレス(WADDO)が"01"である領域に(02,03)マトリックスデータ対が貯蔵される。即ち、各インタ量子化マトリックスデータ対は、0016から1F16までの書込みアドレス(WADDO)が指示する領域に、図3Aのようにジグザグ手順で順次に貯蔵される。これと同様に、各イントラ量子化マトリックスデータ対は、第３及び第４サブＲＡＭ(BANK2A,BANK2B)に対して0016から1F16までの書込みアドレス(WADDO)が指示する領域に、図3Aのようにジグザグ手順で順次に貯蔵される。
【００２４】
第２カウンター51は5ビットカウンターであり、リセット(RST)信号に応じてカウント値をクリアーさせた後、クロック(CLK)信号に応じて00Hから1FHまでカウントし、32個のカウント値をマクロブロック開始信号(mbs)の上昇エッジが検出された後にPLA52とパッキング部55に出力する。
【００２５】
PLA52は第２カウンター51のカウント値を用いて、DCT係数のジグザグスキャニングに応じる読出しアドレス(RADDO)及びオルタネートスキャニングに応じる読出しアドレス(RADD1,RADD2)を発生させる。この際、それぞれの読出しアドレスの例は下記の表２及び表３に示した通りである。
【００２６】
【表２】
0004117044.tif 000003
【００２７】
表２は第１及び第２サブＲＡＭ(BANK1A,BANK1B)からインタ量子化マトリックスデータを読出す場合を示したものである。カウント値が0016である場合に第１及び第２サブＲＡＭ(BANK1A,BANK1B)では読出しアドレス(RADDO)が"00"である領域に貯蔵されている(00,01)マトリックスデータ対を読出す。カウント値が0116である場合に第１及び第２サブＲＡＭ(BANK1A,BANK1B)では読出しアドレス(RADDO)が"01"である領域に貯蔵されている(02,03)マトリックスデータ対を読出す。即ち、0016から1F16までの読出しアドレス(RADDO)が指示する領域に貯蔵されている各マトリックスデータ対は、図3Aのようにジグザグ手順に順次に読出される。これと同様に、第３及び第４サブＲＡＭ(BANK2A,BANK2B)に対して0016から1F16までの読出しアドレス(RADDO)が指示する領域に貯蔵されている各イントラ量子化マトリックスデータ対は、図3Aのようにジグザグ手順で順次に読出される。表１と表２を見ると、DCT係数がジグザグスキャニングされた場合には書込みアドレス(WADDO)と読出しアドレス(RADDO)が同一であることがわかる。
【００２８】
【表３】
0004117044.tif 000004
【００２９】
表３は第１及び第２サブＲＡＭ(BANK1A,BANK1B)からインタ量子化マトリックスデータを読出す場合を例示したものである。カウント値が0016である場合に第１サブＲＡＭ(BANK1A)では読出しアドレス(RADD1)が"00"である領域に貯蔵されている(00,01)マトリックスデータ対を読出し、第２サブＲＡＭ(BANK1B)では読出しアドレス(RADD2)が"01"である領域に貯蔵されている(02,03)マトリックスデータ対を読出す。カウント値が0116である場合に第１サブＲＡＭ(BANK1A)では読出しアドレス(RADD1)が"01"である領域に貯蔵されている(02,03)マトリックスデータ対を読出し、第２サブＲＡＭ(BANK1B)では読出しアドレス(RADD2)が"04"である領域に貯蔵されている(08,09)マトリックスデータ対を読出す。即ち、第２カウンター51のカウント値(0016〜1F16)に応じて、読出しアドレス(RADD1)と読出しアドレス(RADD2)がそれぞれ指示する第１及び第２サブＲＡＭ(BANK1A,BANK1B)の所定領域に貯蔵されているマトリックスデータ対が、図3Bに示したような手順で読出される。これと同様に、イントラ量子化マトリックスの場合、第２カウンター51のカウント値(0016〜1F16)に応じて、読出しアドレス(RADD1)と読出しアドレス(RADD2)がそれぞれ指示する第３及び第４サブＲＡＭ(BANK2A,BANK2B)の所定領域に貯蔵されているマトリックスデータ対が、図3Bに示したような手順で読出される。
【００３０】
第１マルチプレクサ53は、システム制御部(図示せず)から供給されるスキャニング方式判別信号(zz/alter)に応じて、PLA52から出力されるジグザグ手順読出しアドレス(RADDO)又はオルタネート手順読出しアドレス(RADD1,RADD2)を選択的にＲＡＭ42に出力する。例えば、DCT係数のスキャニングがジグザグ方式により行われた場合、第１マルチプレクサ53はPLA52から前記表２のようなジグザグ手順読出しアドレス(RADD0)を選択してＲＡＭ42の該当バンクに供給する。その反面、DCT係数のスキャニングがオルタネート方式により行われた場合、第１マルチプレクサ53はPLA52から前記表３のようなオルタネート手順読出しアドレス(RADD1,RADD2)を選択してＲＡＭ42の該当バンクに供給する。
【００３１】
第２マルチプレクサ54はシステム制御部(図示せず)から供給される符号化モード判別信号(inter/intra)に応じて、インタコーディング方式であれば第１サブＲＡＭ(BANK1A)と第２サブＲＡＭ(BANK1B)の出力データ(DATA1A,DATA1B)を選択して出力し、イントラコーディング方式であれば第３サブＲＡＭ(BANK2A)と第４サブＲＡＭ(BANK2B)の出力データ(DATA2A,DATA2B)を選択して出力する。
【００３２】
パッキング部55は、第２マルチプレクサ54から出力される二つの16ビットマトリックスデータ対に対してそれぞれ上位又は下位ビットを選択的に結合して16ビットのマトリックスデータ対にパッキングした後、第２カウンター52のカウント値に同期させて演算制御部46に出力させる。仮に、DCT係数の符号化モードがインタコーディングであり、ジグザグスキャニングされた場合、データ結合の例は下記の表４に示した通りである。
【００３４】
【表４】
0004117044.tif 000005
【００３５】
一方、DCT係数の符号化モードがインタコーディングであり、オルタネートスキャニングされた場合、データ結合の例は下記の表５に示した通りである。
【００３６】
【表５】
0004117044.tif 000006
【００３７】
一方、演算制御部46はシステムクロック(CLK)及びリセット(RST)信号に応じて動作され、ラムコントローラ44から供給されるマトリックス値の逆数を求める。かつ、システム制御部(図示せず)から供給される量子化タイプ(QUANT_SCALE_TYPE)と量子化コード(QUANT_SCALE_CODE)から量子化スケール値を計算した後にその逆数を求め、システム制御部(図示せず)から供給されるDC_PREC値からDC値を計算した後にその逆数を求める。この際、演算制御部46は逆数を取った量子化マトリックス値、量子化スケール値及びDC値を演算部48に出力する。この際、16ビットマトリックスデータ対に対して8ビット単位で逆数を求める。
【００３８】
演算部48は2ピクセルのDCT係数(DATA_EVEN,DATA_ODD)に演算制御部46から供給される量子化スケール値の逆数を乗算する。次いで、この結果に量子化マトリックス値の逆数を乗算した後、ラウンド処理して2ピクセルの量子化されたデータ(QUANT_EVEN,QUANT_ODD)を出力する。この際、演算部48における乗算はパイプライン方式により行われるので、処理速度が向上される上に、スキャニング方式に応じてDCT係数の入力手順と量子化マトリックス手順がマッチされながら量子化が行われる。
【００３９】
このように本発明の第１実施例における量子化器によると、同一のインタ量子化マトリックスを二つのサブＲＡＭに、同一なイントラ量子化マトリックスを二つのサブＲＡＭにそれぞれジグザグスキャニング方式と一致する手順で貯蔵した後、DCT係数のスキャニング方式に応じてアドレッシングされた読出しアドレスに応じて該当量子化マトリックスをデータの衝突無しに読出すことができる。かつ、読出された量子化マトリックスを16ビット単位でパッキングすることにより、2ピクセル単位で量子化を行うことができる。
【００４０】
図６は、図４におけるラム42とラムコントローラ44の第２実施例による細部ブロック図である。ここで、ラム42はインタ量子化マトリックスを貯蔵する第１バンク(BANK1)とイントラ量子化マトリックスを貯蔵する第２バンク(BANK2)とからなる。第１バンク(BANK1)は、8ビット×22ワードからなる第１及び第２サブＲＡＭ(BANK1A,BANK1B)と8ビット×20ワードからなる第３サブＲＡＭ(BANK1C)とから構成される。第２バンク(BANK2)は、8ビット×22ワードからなる第４及び第５サブＲＡＭ(BANK2A,BANK2B)と8ビット×20ワードからなる第６サブＲＡＭ(BANK2C)とから構成される。
【００４１】
一方、ラムコントローラ44は、インタ量子化マトリックスとイントラ量子化マトリックスをＲＡＭ42に貯蔵するための書込みアドレスを発生させる書込みアドレス発生部、例えば第１カウンター60と、第１PLA61と、ID_CDを通して供給されるマトリックスデータを各バンクの該当サブＲＡＭに配るためのデータ分配部62と、DCT係数に対するスキャニング方式に応じてＲＡＭ42から該当量子化マトリックスを読出すための読出しアドレスを発生させる読出しアドレス発生部、例えば第２カウンター63と、第２PLA64と、第３PLA65と、第１マルチプレクサ66と、ラム42から出力されるマトリックスデータを符号化モード及びスキャニング手順に応じて16ビットデータに結合するデータ結合部、例えば第２マルチプレクサ67と、パッキング部68とから構成される。
【００４２】
図４と図６を参照して本発明の第２実施例による量子化器の動作を説明する。各ブロックに入出力される信号は第１実施例のものと同一なので、詳しい説明は省く。
【００４３】
ＲＡＭ42の第１バンク(BANK1)において、第１サブＲＡＭ(BANK1A)には書込みアドレス(WADD1)が指示する22個の領域に、第２サブＲＡＭ(BANK1B)には書込みアドレス(WADD2)が指示する22個の領域に、第３サブＲＡＭ(BANK1C)には書込みアドレス(WADD3)が指示する20個の領域に、それぞれ8ビット単位で64個のインタ量子化マトリックスデータが分配されて貯蔵される。一方、第２バンク(BANK2)において、第４サブＲＡＭ(BANK2A)には書込みアドレス(WADD1)が指示する22個の領域に、第５サブＲＡＭ(BANK2B)には書込みアドレス(WADD2)が指示する22個の領域に、第６サブＲＡＭ(BANK2C)には書込みアドレス(WADD3)が指示する20個の領域に、それぞれ8ビット単位で64個のイントラ量子化マトリックスデータが分配されて貯蔵される。ここで、インタ量子化マトリックスとイントラ量子化マトリックスはシステム制御部(図示せず)から供給され、使用者定義マトリックスであるか MPEG-2で定義しておいたデーフォルトマトリックスであり得る。
【００４４】
ラムコントローラ44はシステムクロック(CLK)とリセット(RST)信号に応じて動作し、ID_CDを通して入力される量子化マトリックスを書込みアドレス(WADD1,WADD2,WADD3)に応じてラム42の該当バンクに貯蔵する。そして、DCT係数のスキャニング方式に応じて別途にアドレッシングされた読出しアドレス(RADD1,RADD2,RADD3)によりＲＡＭ42の該当バンクに貯蔵された量子化マトリックスを読取り演算制御部46に出力する。即ち、ラムコントローラ44は、FLAG_IDが"ハイ"論理レベルのときはID_CDを解釈して量子化マトリックスの種類を識別した後、次いで入力される量子化マトリックスを書込みアドレス(WADD1,WADD2,WADD3)に応じてＲＡＭ42の該当バンクの各サブＲＡＭに貯蔵する。かつ、マクロブロックの開始信号(mbs)に同期されてスキャニング方式に応じる読出しアドレス(RADD1,RADD2,RADD3)に応じて該当バンクの各サブＲＡＭに貯蔵された量子化マトリックスを読取り演算制御部46に出力する。かつ、詳しく図示していないが、各サブＲＡＭは書込み及び読出のための制御信号と出力をイネーブルさせるための制御信号等を有する。このような制御信号は通常ラムコントローラ44で該当サブＲＡＭが選択される時に供給される。
【００４５】
前述したようなＲＡＭ42及びラムコントローラ44に対して図６を参照して更に詳細に説明すると次の通りである。
【００４６】
第１カウンター60は5ビットカウンターであり、リセット(RST)信号に応じてカウント値をクリアーさせた後、クロック(CLK)信号に応じて00Hから1FHまでカウントする。次いで、FLAG_IDが"ハイ"論理レベルのときはID_CDを解釈してインタ又はイントラ量子化マトリックスであるかを確認した後、32個のカウント値をそれぞれ第１PLA61及びデータ分配部62に出力する。
【００４７】
第１PLA61は第１カウンター60から出力されるカウント値に応じて、システム制御部(図示せず)から供給される量子化マトリックスデータを8ビット単位で第１乃至第３サブＲＡＭ(BANK1A,BANK1B,BANK1C)又は第４乃至第６サブＲＡＭ(BANK2A,BANK2B,BANK2C)に貯蔵するための書込みアドレス(WADD1,WADD2,WADD3)を発生する。ここで、第１PLA61は、DCT係数がジグザグスキャニングされた場合、読出しアドレス(RADD1,RADD2,RADD3)を発生させる時にも用いられる。この際、書込みアドレス(WADD1,WADD2,WADD3)の例は下記の表６に示した通りである。
【００４８】
【表６】
0004117044.tif 000007
【００４９】
データ分配部62は第１カウンター60から出力されるカウント値に応じて、図3Aのようにジグザグ手順に入力される16ビット量子化マトリックスデータを三つのサブＲＡＭのうち二つのサブＲＡＭに8ビット単位で分配するためのものである。インタ量子化マトリックスの場合には第１乃至第３サブＲＡＭ(BANK1A,BANK1B,BANK1C)に、イントラ量子化マトリックスの場合には第４乃至第６サブＲＡＭ(BANK2A,BANK2B,BANK2C)に分配する。この際、データの分配例は下記の表７に示した通りである。
【００５０】
【表７】
0004117044.tif 000008
【００５１】
前記表６及び表７はインタ量子化マトリックスが第１乃至第３サブＲＡＭ(BANK1A,BANK1B,BANK1C)に貯蔵される場合を例示したものである。カウント値が0016である場合、第１サブＲＡＭ(BANK1A)には書込みアドレス(WADD1)が"00"である領域に(00)マトリックスデータが、第２サブＲＡＭ(BANK1B)には書込みアドレス(WADD2)が"00"である領域に(01)マトリックスデータが貯蔵される。カウント値が0116である場合、第２サブＲＡＭ(BANK1B)には書込みアドレス(WADD2)が"01"である領域に(03)マトリックスデータが、第３サブＲＡＭ(BANK1C)には書込みアドレス(WADD3)が"00"である領域に(02)マトリックスデータが貯蔵される。即ち、図3Aのように16ビット単位でジグザグ手順で入力されるインタ量子化マトリックスデータは、書込みアドレス(WADD1,WADD2,WADD3)に応じて表７のように第１乃至第３サブＲＡＭ(BANK1A,BANK1B,BANK1C)のうち二つのサブＲＡＭに8ビット単位で貯蔵される。これと同様に、図3Aのように16ビット単位でジグザグ手順で入力されるイントラ量子化マトリックスデータは、書込みアドレス(WADD1,WADD2,WADD3)に応じて表７のように第４乃至第６サブＲＡＭ(BANK2A,BANK2B,BANK2C)のうち二つのサブＲＡＭに8ビット単位で貯蔵される。この際、同一なカウント値に対して前記表６によりアドレスが割り当てられたサブＲＡＭと前記表７によりデータが分配されるサブＲＡＭとが一致することがわかる。
【００５２】
第２カウンター63は5ビットカウンターであり、リセット(RST)信号に応じてカウント値をクリアーさせた後、クロック(CLK)信号に応じて00Hから1FHまでカウントし、32個のカウント値をマクロブロック開始信号(mbs)の上昇エッジが検出された後に第２PLA64、第３PLA65及びパッキング部68に出力する。
【００５３】
第２PLA64は、DCT係数がジグザグスキャニングされた場合、ＲＡＭ42から該当量子化マトリックスを読出すための読出しアドレス(RADD1,RADD2,RADD3)を発生させる。ここで、第２PLA64は第１PLA61と同一に構成されて第２カウンター63から出力されるカウント値に応じて、下記の表８に示したような読出しアドレス(RADD1,RADD2,RADD3)を発生させる。
【００５４】
【表８】
0004117044.tif 000009
【００５５】
第３PLA65はDCT係数がオルタネートスキャニングされた場合、ラム42から該当量子化マトリックスを読出すための読出しアドレス(RADD1,RADD2,RADD3)を発生させる。第２カウンター63から出力されるカウント値に応じて、第３PLA65から生成される読出しアドレス(RADD1,RADD2,RADD3)の例を下記の表９に示す。
【００５６】
【表９】
0004117044.tif 000010
【００５７】
表９は第１乃至第３サブＲＡＭ(BANK1A,BANK1B,BANK1C)からインタ量子化マトリックスデータを読出す場合を例示したものである。カウント値が0016である場合、第１サブＲＡＭ(BANK1A)では"00"書込みアドレスに貯蔵されたデータを読取るための読出データ(RADD1)を、第３サブＲＡＭ(BANK1C)では"00"書込みアドレスに貯蔵されたデータを読取るための読出しアドレス(RADD3)をそれぞれ発生する。かつ、カウント値が0116である場合、第２サブＲＡＭ(BANK1B)では"01"書込みアドレスに貯蔵されたデータを読取るための読出しアドレスを、第３サブＲＡＭ(BANK1C)では"02"書込みアドレスに貯蔵されたデータを読取るための読出しアドレス(RADD3)をそれぞれ発生する。即ち、第２カウンター63のカウント値(0016〜1F16)に応じて、読出しアドレス(RADD1,RADD2,RADD3)がそれぞれ指示する第１乃至第３サブＲＡＭ(BANK1A,BANK1B,BANK1C)の所定領域に貯蔵されているマトリックスデータが、図3Bのような手順で読出される。これと同様に、イントラ量子化マトリックスの場合、第２カウンター63のカウント値(0016〜1F16)に応じて、読出しアドレス(RADD1,RADD2,RADD3)がそれぞれ指示する第４乃至第６サブＲＡＭ(BANK2A,BANK2B,BANK2C)の所定領域に貯蔵されているマトリックスデータが、図3Bのような手順で読出される。ここで、三つのサブＲＡＭにジグザグ手順に貯蔵されたマトリックスデータをオルタネート手順で読取るために第３PLA65が発生する読出しアドレスは非順次的であることがわかる。これは、スキャニング方式に応じて一対のマトリックスデータを第３PLA65が発生する読出しアドレスに応じて読取るとき、データが衝突しないようにマトリックスデータを貯蔵するため、第１PLA61が発生する書込みアドレスに応じて三つのサブＲＡＭのうち二つのサブＲＡＭに分散させたからである。
【００５８】
第１マルチプレクサ66は、システム制御部(図示せず)から出力されるスキャニング方式判別信号(zz/alter)に応じて、第２PLA64から出力されるジグザグ手順の読出しアドレス(RADD1,RADD2,RADD3)又は第３PLA65から出力されるオルタネート手順の読出しアドレス(RADD1,RADD2,RADD3)を選択的にラム42に出力する。例えば、DCT係数のスキャニングがジグザグ方式にて行われる場合、第１マルチプレクサ66は第２PLA64から前記表８のようなジグザグ手順の読出しアドレス(RADD1,RADD2,RADD3)を選択してＲＡＭ42の該当バンクに供給する。その反面、DCT係数のスキャニングがオルタネート方式にて行われた場合、第１マルチプレクサ66は第３PLA65から前記表９のようなオルタネート手順の読出しアドレス(RADD1,RADD2,RADD3)を選択してＲＡＭ42の該当バンクに供給する。
【００５９】
第２マルチプレクサ67は、システム制御部(図示せず)から供給される符号化モード判別信号(inter/intra)に応じて、インタコーディング方式であれば第１乃至第３サブＲＡＭ(BANK1A,BANK1B,BANK1C)の出力データ(DATA1A,DATA1B,DATA1C)を選択して出力し、イントラコーディング方式であれば第４乃至第６サブＲＡＭ(BANK2A,BANK2B,BANK2C)の出力データ(DATA2A,DATA2B,DATA2C)を選択して出力する。
【００６０】
パッキング部68は、第２マルチプレクサ67から出力される二つの8ビットマトリックスデータを結合して16ビットのマトリックスデータにパッキングした後、第２カウンター63のカウント値に同期させて演算制御部46に出力する。仮に、DCT係数の符号化モードがインタコーディングであり、ジグザグスキャニングされた場合、そのデータ結合の例は下記の表１０に示した通りである。
【００６１】
【表１０】
0004117044.tif 000011
【００６２】
一方、DCT係数の符号化モードがインタコーディングであり、オルタネートスキャニングされた場合、そのデータ結合の例は下記の表１１に示した通りである。
【００６３】
【表１１】
0004117044.tif 000012
【００６４】
一方、演算制御部46と演算部48における動作は第１実施例のものと同一なので、その動作に関する説明を省く。
【００６５】
本発明の第２実施例における量子化器によると、16ビット単位の32個の量子化マトリックスデータを三つのサブＲＡＭのうち二つのサブＲＡＭにそれぞれジグザグスキャニング方式と一致する手順で8ビット単位で分散させて貯蔵した後、DCT係数のスキャニング方式に応じてアドレッシングされた読出しアドレスに応じて該当量子化マトリックスをデータの衝突無しに読出すことができる。なお、読出された量子化マトリックスを16ビット単位でパッキングすることにより、2ピクセル単位で量子化を行うことができる。
【００６６】
本発明は前記の実施例に限られず、本発明の属する技術的な思想内で当分野における通常の知識を持つ者により多くの変形が可能なことは明らかである。
【００６７】
【発明の効果】
上述したように、本発明によれば、DCT係数のスキャニング方式に応じて該当量子化マトリックスをメモリからデータの衝突無しに読出すことができる。
【図面の簡単な説明】
【図１】従来の映像符号化器の第１実施例を示したブロック図である。
【図２】従来の映像符号化器の第２実施例を示したブロック図である。
【図３】（A)及び(B)はそれぞれジグザグスキャニングとオルタネートスキャニングを説明するための図面である。
【図４】本発明の一実施例による量子化器を示したブロック図である。
【図５】図４において、ＲＡＭとラムコントローラの第１実施例による細部ブロック図である。
【図６】図４において、ＲＡＭとラムコントローラの第２実施例による誓細部ブロック図である。
【図１】
0004117044.tif 000013
【図２】
0004117044.tif 000014
【図３】
0004117044.tif 000015
【図４】
0004117044.tif 000016
【図５】
0004117044.tif 000017
【図６】
0004117044.tif 000018