JP2010187115A - データ復号化装置 - Google Patents

データ復号化装置 Download PDF

Info

Publication number
JP2010187115A
JP2010187115A JP2009028799A JP2009028799A JP2010187115A JP 2010187115 A JP2010187115 A JP 2010187115A JP 2009028799 A JP2009028799 A JP 2009028799A JP 2009028799 A JP2009028799 A JP 2009028799A JP 2010187115 A JP2010187115 A JP 2010187115A
Authority
JP
Japan
Prior art keywords
pointer value
value
data
zero
ptr
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.)
Withdrawn
Application number
JP2009028799A
Other languages
English (en)
Inventor
Kohei Oikawa
恒平 及川
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009028799A priority Critical patent/JP2010187115A/ja
Publication of JP2010187115A publication Critical patent/JP2010187115A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】データの書き込み回数を削減できるとともに、消費電力を低減できる。
【解決手段】本発明の例に関わるデータ復号化装置は、ゼロデータ又は非ゼロデータを、複数のメモリワードを含んでいるメモリに書き込む制御回路10と、メモリワード内の複数のバイトアドレスに対応する第1のポインタ値Ptrを制御回路10に出力するレジスタ12とを具備し、制御回路10は、ポインタ値Ptrに基づいて、ゼロデータを書き込む位置を示す第2のポインタ値を出力する第1の変換部26と、第2のポインタ値及び非ゼロデータを書き込む位置を示す第3のポインタ値のうち一方を選択し、選択されたポインタ値をバイトアドレスに変換する第2の変換部とを有し、制御回路10は、第2のポインタ値と第3のポインタ値との大きさの比較結果に基づいて、非ゼロデータとゼロデータとをメモリ3に順次書き込んでいく。
【選択図】図2

Description

本発明は、データ復号化装置に係り、例えば、画像データを復号化するための装置に関する。
近年、動画などの画像データは、データの量子化・符号化により圧縮されて、デジタル放送及びインターネットによる配信データ、又は、記録媒体の記憶データとして、利用されている。画像データの圧縮方式の規格として、例えば、JPEG(Joint Photographic Experts Group)や、MPEG(Moving Picture Experts Group)等が用いられている。
符号化(圧縮)された画像データを復号化する方式として、例えば、ジグザグスキャン復号方式がある(例えば、特許文献1参照)。
ジグザグスキャン復号方式は、例えば、離散コサイン変換(DCT:Discrete Cosine Transform)処理を利用して符号化されたデータに対し、その符号化データから得られる1次元の係数列を、8×8の2次元のデータ列にジグザグに並び替えて変換し、その変換結果をデータの復号化に利用している。
ジグザグスキャン復号方式において、8×8の2次元領域(以下、8×8ブロックと呼ぶ)はメモリのアドレスに対応し、2次元の展開されたデータは、2次元領域が示すアドレスに書き込まれる。
書き込まれるデータは、例えば、圧縮前の画像データが含む輝度及び色差に基づいた量子化係数に対応している。輝度や色の変化が大きい係数は、その大きさに応じて、例えば、1バイト程度の値で示される非ゼロの値(レベル値)になる。一方、輝度や色の変化の小さい係数は、0(ゼロ)で示される。一般的に、DCT処理によって量子化・符号化されたデータは、0を示す確率が高い。
例えば、特許文献1に開示される技術では、最初に、8×8ブロックに対応したメモリの領域の全体に対して、0(ゼロデータ)が書き込まれる。その後に、レベル値(非ゼロデータ)が、スキャンの順序に従って、メモリ内の所定のアドレスに順次書き込まれていく。
この場合、画像の高解像度化に伴って、1つの画像データを構成している8×8ブロックの個数が多くなると、メモリに対するゼロ/非ゼロデータの書き込み回数が増大し、復号化処理及び画像表示処理の性能が、低下してしまう。そのため、データの復号化の際に、データの書き込み回数を削減することが要求されている。
また、データの書き込みには、回路を駆動するための電圧及び電流が必要となるため、書き込み回数が増加するのに伴って、半導体集積回路の消費電力は増加する。近年では、半導体集積回路の低消費電力化も要求されており、書き込み回数の増大は、消費電力の低減を妨げている。
国際公開第2002/101934号
本発明は、データの書き込み回数の削減及び消費電力の低減が可能なデータ復号化装置を提案する。
本発明の例に関わるデータ復号化装置は、レベル値を含んでいる有効データが入力され、ゼロデータ又は前記レベル値に対応する非ゼロデータを、複数のメモリワードを含んでいるメモリに書き込む第1の制御回路と、前記メモリワードのそれぞれが含んでいる複数のバイトアドレスに対応する第1のポインタ値を保持し、前記第1のポインタ値を前記第1の制御回路に出力するポインタ保持部と、を具備し、前記第1の制御回路は、前記第1のポインタ値に基づいて、ゼロデータを書き込む位置を示す第2のポインタ値を出力する第1の変換部と、前記第2のポインタ値と非ゼロデータを書き込む位置を示す第3のポインタ値とが入力され、前記第2及び第3のポインタ値のうち、所定の書き込みサイクルにおけるデータの書き込みの対象となるいずれか一方を選択し、その選択されたポインタ値をバイトアドレスに変換する第2の変換部と、前記第2のポインタ値と前記第3のポインタ値の大きさの比較結果に対応してそれぞれ異なる複数の書き込み方式を有する書き込み制御部と、前記第2のポインタ値と前記第3のポインタ値の大きさの比較結果に応じて、前記複数の書き込み方式のうちいずれか1つの書き込み方式を選択する書き込み方式選択部と、を有し、前記第2のポインタ値は、データの復号化期間中において、前記複数のメモリワードがそれぞれ含んでいる複数のポインタ値の中で、最初に到達するポインタ値を示し、前記制御回路は、前記第2のポインタ値と前記第3のポインタ値との大きさを比較し、その比較結果に基づいて、前記非ゼロデータと前記ゼロデータとを前記メモリに順次書き込んでいくことを備える。
本発明によればデータの書き込み回数の削減及び消費電力の低減が可能なデータ復号化装置を実現できる。
本発明の実施形態に係るデータ復号化装置を用いたシステムの構成例を示すブロック図である。 本発明の実施形態に係るデータ復号化装置の内部構成を示すブロック図である。 データのスキャン方式の一例を示す図である。 本発明の実施形態に係るデータ復号化装置の変換テーブルの一例を示す図である。 本発明の実施形態に係るデータ復号化装置の動作を説明するためのフローチャートである。 本発明の実施形態に係るデータ復号化装置の動作を説明するための模式図である。 本発明の実施形態に係るデータ復号化装置の内部構成の一例を説明するための図である。 本発明の実施形態に係るデータ復号化装置の内部構成の一例を説明するための図である。 本発明の実施形態に係るデータ復号化装置の内部構成の一例を説明するための図である。
以下、図面を参照しながら、本発明の例を実施するための形態について詳細に説明する。
[実施形態]
(1) 回路構成
図1乃至図4を用いて、本発明の実施形態に係るデータ復号化装置の構成について、説明する。
図1は、本実施形態に係るデータ復号化装置を用いたシステムの構成例を示している。
本実施形形態のデータ復号化装置2は、符号化データから得られる1次元の係数列を、2次元の係数列に変換し、データを復号化する。本実施形態において、符号化データのことをビットストリームBSとよぶ。ビットストリームBSは、例えば、離散コサイン変換(Discrete Cosine Transfer)処理などによって空間成分から周波数成分に変換された画像データが、量子化及び符号化(圧縮)されたデータ信号である。本実施形態において、ビットストリームBSは、例えば、MPEG(Moving Picture Experts Group)−2、MPEG−4及びJPEG(Joint Photographic Experts Group)などの規格に基づいている。
ビットストリームBSは、例えば、データ解析回路1に入力される。データ解析回路1は、ビットストリームBSを解析し、1次元の係数列を生成する。生成された1次元の係数列は、データ復号化装置2へ出力される。
データ復号化装置2は、ビットストリームの解析結果、つまり、1次元の係数列が2次元の領域に展開されるように、係数列を並び替えて、1次元の係数列から2次元の係数列に変換する。
データ復号化装置2は、変換された係数列が示すデータをメモリ3内の所定のアドレスに書き込む。メモリ3は、例えば、SRAM(Static Random Memory)が用いられる。但し、メモリ3は、DRAM(Dynamic Random Access Memory)やフラッシュメモリでもよい。
また、データ復号化装置2は、変換された係数列が示すデータを逆DCT処理装置4に出力する。逆DCT処理装置4は、メモリ3に記憶されたデータと入力されたデータとを参照して、入力されたデータを逆DCT処理し、データを周波数成分から空間成分に変換する。
そして、逆DCT処理されたデータは、例えば、DC/AC変換処理などが施されて、ディスプレイ5に表示される。
図2は、本実施形態に係るデータ復号化装置2の内部構成を示している。データ復号化装置2は、例えば、2つの制御回路10,11と、1つのレジスタ12を有している。尚、図2に示される回路の構成は、本実施形態で述べるデータ復号化を実行するための主要部を示す例であって、他の構成要素が含まれてもよいのは、もちろんである。
第1の制御回路10は、主に、係数列の変換及びデータの復号化を制御する。
制御回路10は、データ要求信号Nxtを、例えば、データ解析装置1に出力する。制御回路10がデータ要求信号Nxtを有効にすることによって、ビットストリームBSの解析結果(データ)が制御回路10に入力される。
制御回路10に入力されるデータは、例えば、ラン値Rnとレベル値Lvとを含んでいるデータである。本実施形態においては、このラン値Rn及びレベル値Lvを含む入力データのことを、有効データと呼ぶ。1つの有効データ内のラン値Rn及びレベル値Lvは、対を成している。
レベル値Lvは、輝度や色の変化が小さい信号レベルに応じた非ゼロの量子化係数を示している。レベル値Lvは、例えば、1バイトの値で示される。これに対して、輝度や色の変化が大きい信号レベルは、“0(ゼロ)”で示される。以下では、非ゼロの量子化係数(レベル値Lv)のことを非ゼロデータ、ゼロの量子化係数のことをゼロデータとも呼ぶ。ラン値Rnは、ある非ゼロデータに先行するゼロデータの個数を示している。
制御回路10は、入力された有効データに基づいて、次の書き込みサイクルで用いられるポインタ値(更新ポインタ値)nxtPtrを生成し、その更新ポインタ値nxtPtrをレジスタ12に出力する。
また、制御回路10は、書き込みイネーブル信号Weと同期して、アドレス信号Addr、データDT及びバイトイネーブル信号Beを、メモリ3に出力する。そして、バイトイネーブル信号Beによって、アドレス信号Addrが示すメモリ3内の所定の位置(アドレス)が有効にされ、有効になったアドレスに、データDTが書き込まれる。
レジスタ12は、書き込みサイクルで用いられるポインタ値(第1のポインタ値)Ptrを保持する。以下、本実施形態においては、ポインタ値を保持するレジスタ12のことを、ポインタレジスタ12と呼ぶ。ポインタ値Ptrは、係数列を展開する2次元の領域内における対応位置を示している。
ポインタレジスタ12は、リセット信号Rstが有効である場合に、保持しているポインタ値Ptrをリセットする。ポインタレジスタ12は、入力された書き込みイネーブル信号Weが有効である場合に、制御回路10から入力された更新ポインタ値nxtPtrを取り込む。ポインタレジスタ12は、取り込んだ更新ポインタ値nxtPtrを、次の書き込みサイクルに用いるポインタ値Ptrとして保持する。そして、そのポインタ値Ptrは、制御回路10に出力される。
第2の制御回路11は、主に、メモリ3に対するデータの書き込みを制御する。
制御回路11は、書き込みイネーブル信号Weを、制御回路10、ポインタレジスタ12及びメモリ3に出力する。書き込みイネーブル信号Weが有効である場合に、制御部10及びポインタレジスタ12が駆動され、所定のデータDTが書き込み可能となったメモリ3のアドレスに書き込まれる。また、制御回路11は、ポインタレジスタ12に、リセット信号Rstを出力する。リセット信号Rstによって、ポインタレジスタ12に保持された値がリセットされる。
制御回路11には、終了信号ENDが、例えば、データ解析装置1から入力される。終了信号ENDは、復号化の対象領域が含んでいるデータの出力が終了したことを示している。終了信号ENDが有効になる結果として、所定の2次元の領域に対するデータ(係数列)の展開が終了し、データの復号化が終了する。一方、終了信号ENDが無効である場合、つまり、後続の有効データが存在する場合、データ要求信号Nxtが有効にされ、後続の有効データが入力されて、復号化処理が続行される。
上述のように、データ復号化装置2は、入力されたビットストリームBSに基づく1次元の係数列を、2次元の領域に展開し、2次元の係数列に変換する。データ復号化装置2は、2次元領域に対応するメモリ3内の所定のアドレスに、量子化係数(レベル値)が示すデータを書き込む。そのため、データ復号化装置2内の制御回路10は、1次元の係数列を2次元の係数列に変換(並び替え)するための変換部(第2の変換部)26を有する。
1次元の係数を2次元の係数列に変換する際、例えば、ジグザグスキャン復号方式が用いられる。図3は、ジグザグスキャン復号方式を用いられる変換テーブルZZCONV(crPtr)を示している。変換部26は、図3に示されるような変換テーブルを有する。以下、本実施形態おいては、図3に示される変換テーブルのことを、ジグザグスキャン変換テーブルZZCONV(crPtr)とよび、そのテーブルを有する変換部26のことを、ジグザグスキャン変換部26とよぶ。
ジグザグスキャン変換部26は、データの書き込みサイクルにおいて、現在のポインタの位置(現在のポインタ値crPtr)を取り込む。ジグザグスキャン変換部26は、その取り込んだ現在のポインタ値crPtrに基づいて、図3に示されるジグザグスキャン変換テーブルZZCONV(crPtr)を参照し、1次元の係数列を8×8の2次元領域(以下、8×8ブロックと呼ぶ)内に並び替え、2次元の係数列に変換する。
図3に示される変換テーブルにおいて、8×8ブロック内に配列される0〜63のポインタ値が示されている。1次元の係数列としてのレベル値Lvは、図3に示される0から63へ向かう矢印の順序によって、ジグザグに2次元に並べ替えられる。8×8ブロックを用いたデータ復号化において、例えば、ポインタ値が0から63に到達するまでのサイクルが、1つのデータ復号化期間となっている。例えば、ポインタ値Ptrが“0”を示す位置は、例えば、周波数成分が0に対応する直流(DC)成分に対応する。残りのポインタ値Ptr=1〜63が示す位置には、それぞれ異なる周波数成分に対応した交流(AC)成分に対応する。
図3において、変換テーブルの縦軸yは、メモリ3のアドレスの上位ビットに対応し、変換テーブルの横軸xはメモリ領域のアドレスの下位ビットに対応する。8×8ブロックの場合、上位ビットy及び下位ビットxのそれぞれは、0〜7の値、つまり、3ビットで示される。つまり、図3の変換テーブルを用いることによって、6ビットのアドレスが1つのポインタ値から得られる。1つのレベル値Lvは、1つのポインタ値に対応するバイトアドレスに書き込まれる。バイトアドレスは、メモリ3内のアドレスに対応している。以上のように、ジグザグスキャン変換部26は、データを書き込む位置を現在のポインタ値CrPtrとして取り込み、例えば、図3に示されるような変換テーブルに基づいて、そのポインタ値をメモリのアドレスに変換する。
図3のスキャン変換テーブル内において、複数のメモリワードMWが設定される。1つのメモリワードMWは、x方向に沿って配列された4つのポインタ値(バイトアドレス)から構成されている。よって、1つのメモリワードMWのサイズは、4バイトである。例えば、1つのポインタ値に対応するバイトアドレスに対する書き込みに要する期間、又は、1つのメモリワードに対する書き込みに要する期間が、1つの書き込みサイクルになっている。
尚、データのスキャン方法としては、例えば、垂直優先オルタネートスキャン方式、水平優先オルタネートスキャン方式及びラスタスキャン方式など、他のスキャン方式を用いても良い。
また、本実施形態のデータ復号化装置2において、制御回路10は、ゼロデータを書き込む位置(第2のポインタ値)を出力する変換部(第1の変換部)23を備える。変換部23は、例えば、図4に示されるようなゼロデータを書き込むポインタ値を示す変換テーブルを有する。以下、本実施形態においては、変換部23のことを、ネクストゼロポインタ変換部23と呼び、図4に示される変換テーブルのことを、ネクストゼロ変換テーブルと呼ぶ。
図4のネクストゼロ変換テーブルに示されるポインタ値(以下、ネクストゼロポインタ値)nxtZr(Ptr)は、ポインタ値Ptrの関数である。ネクストゼロポインタ値nxtZr(Ptr)は、入力されたポインタ値Ptrをインクリメントしていき、データ復号化期間中に図3に示されるような順序でスキャンした場合に、メモリワード内に含まれている複数のポインタ値の中で、初めて到達するポインタ値を示している。
図4に示されるように、ネクストゼロ変換テーブルに含まれる複数のネクストゼロポインタ値nxtZr(Ptr)の値のそれぞれにおいて、ネクストゼロポインタ値nxtZr(Ptr)の値を得るのに用いられる入力ポインタ値Ptrの値は、ネクストゼロポインタ値nxtZr(Ptr)の値以下である。それゆえ、ネクストゼロポインタ値nxtZr(Ptr)を用いたゼロデータ書き込みは、入力されたポインタ値Ptrに対応する書き込みサイクル及びそのサイクル以降で用いられることになる。このように、ネクストゼロポインタ値nxtZr(Ptr)は、入力されたポインタ値Ptrを引数として、得られる。
ネクストゼロポインタ値nxtZr(Ptr)について、図3に示されるジグザグスキャン方式におけるデータの書き込み経路(順序)と図4に示されるネクストゼロ変換テーブルとを参照して、具体的に説明する。ここでは、ポインタ値Ptrが、“12”、“13”及び“14”を示す場合を例に、説明する。
図3に示されるジグザグスキャン変換テーブルを参照すると、“12”のポインタ値Ptrは、ポインタ値Ptrが“3”のときにすでに到達したメモリワード内に含まれ、そのメモリワードは、一度書き込みの対象となっている。また、“13”のポインタ値Ptrは、ポインタ値Ptrが“2”のときにすでに到達したメモリワード内に含まれ、そのメモリワードは一度書き込みの対象となっている。
これに対して、ポインタ値Ptrが“14”である場合、その値を含むメモリワードMWaは、“14”、“15”、“27”及び“28”の4つのポインタ値を含んでいる。この中で、“14”のポインタ値Ptrは、図3に示されるジグザグスキャン方式によるデータ書き込みの順序において、そのメモリワードMWaの中で、最初に到達するポインタ値である。“14”のポインタ値Ptrが入力されたときに、その値を含むメモリワードMWaは、8×8ブロックに対応する任意の係数列において、初めて書き込み対象となる。換言すると、ネクストゼロポインタ値nxtZr(Ptr)は、データのスキャン順序において、ゼロ/非ゼロデータの書き込みの対象となっていないメモリワードに到達したときのポインタ値を示している。
図4に示される変換テーブルにおいて、“12”のポインタ値Ptrがネクストゼロポインタ変換部23に入力され、“12”をインクリメントした場合、“14”のポインタ値が、未到達(未書き込み)のメモリワードに含まれ、且つ、“12”の次に出現するポインタ値である。よって、ネクストゼロポインタ値nxtZr(12)の値は、“14”として、出力される。
このように、ネクストゼロポインタ変換部23は、入力されたポインタ値Ptrに基づいて、図4に示されるネクストゼロ変換テーブルを参照し、ネクストゼロポインタ値nxtZr(Ptr)を出力する。
そして、本実施形態において、ネクストゼロポインタ値nxtZr(Ptr)が書き込み対象を示すポインタ値として設定された場合、制御回路10は、ネクストゼロポインタ値nxtZrが示す値をポインタ値として含む1つのメモリワードの全てのバイトアドレスに対して、ゼロデータが書き込まれる。
本実施形態のデータ復号化装置2は、上述のネクストゼロポインタ値nxtZr(Ptr)を利用して、非ゼロデータを書き込む位置と次にゼロデータ書き込む位置(ネクストゼロポインタ値)とを比較しながら、解析結果に基づく値(レベル値)を、2次元に展開して、メモリの所定のアドレスに順次書き込む。
ここで、非ゼロデータを書き込む位置は、例えば、ポインタ値Ptrとランダッシュ値(第2のラン値)Rn’との和で示される。ランダッシュ値Rn’は、現在のポインタ値(8×8ブロック内での位置)と非ゼロデータを書き込む位置との間のゼロデータの個数を示す。以下、本実施形態においては、非ゼロデータを書き込む位置を示すポインタ値(第3のポインタ値)のことを、非ゼロポインタ値(Ptr+Rn’)と呼ぶ。
そして、本実施形態のデータ復号化装置2は、例えば、以下の3つの書き込み方式を有する書き込み制御部27と、それらの書き込み方式のいずれか1つを書き込み位置の比較結果に基づいて選択する書き込み方式選択部24が、制御回路10内に設けられている。
第1の書き込み方式は、非ゼロポインタ値(Ptr+Rn’)がネクストゼロポインタ値nxtZr(Ptr)と同じ値である場合に、選択手段24によって選択される。この場合、非ゼロポインタ値(Ptr+Rn’)が、スキャン順序に従ったデータの書き込み対象となる現在のポインタ値として設定される。
第1の書き込み方式において、所定のポインタ値(非ゼロポインタ値)に対応するバイトアドレスに非ゼロデータ(レベル値)が書き込まれる。さらに、非ゼロデータを書き込んだポインタ値を含んでいるメモリワードにおいて、非ゼロデータを書き込んだポインタ値を除いた残りのポインタ値に対応するバイトアドレスの全てに、ゼロデータが書き込まれる。つまり、第1の書き込み方式は、1つのメモリワード内の複数のバイトアドレスのそれぞれに、非ゼロデータとゼロデータとを同時に書き込む。
第1の書き込み方式が選択された場合、書き込み制御部27は、書き込み対象の1つのメモリワードにおいて、非ゼロデータが書き込まれるバイトアドレス及びゼロデータが書き込まれる複数のバイトアドレスが、全て有効になるように、バイトイネーブル信号Beを制御する。そのように制御されたバイトイネーブル信号Beが、メモリ3に出力される。
第2の書き込み方式は、非ゼロポインタ値(Ptr+Rn’)がネクストゼロポインタ値nxtZr(Ptr)より大きい場合に、選択手段24によって選択される。この場合、ネクストゼロポインタ値nxtZr(Ptr)が、スキャン順序に従ったデータの書き込み対象となる現在のポインタ値として設定される。
第2の書き込み方式において、入力されたポインタ値Ptrからネクストゼロポインタ値nxtZr(Ptr)が得られた場合、そのネクストゼロポインタ値nxtZr(Ptr)を含んでいるメモリワード内のバイトアドレスの全てに、ゼロデータが書き込まれる。
第2の書き込み方式が選択された場合、書き込み制御部27は、データが書き込まれるメモリワード内の全てのバイトアドレスが有効になるように、バイトイネーブル信号Beを制御する。そのように制御されたバイトイネーブル信号Beが、メモリ3に出力される。
第3の書き込み方式は、非ゼロポインタ値(Ptr+Rn’)がネクストゼロポインタ値nxtZr(Ptr)より小さい場合に、選択手段24によって選択される。この場合、非ゼロポインタ値(Ptr+Rn’)が、スキャン順序に従ったデータの書き込み対象となる現在のポインタ値として設定される。
第3の書き込み方式において、所定のポインタ値(非ゼロポインタ値)に対応するバイトアドレスにのみ、非ゼロデータが書き込まれる。つまり、第3の書き込み方式では、1つのポインタに対して、非ゼロデータが書き込まれるのみで、ゼロデータの書き込みは実行されない。
第3の書き込み方式が選択された場合、書き込み制御部27は、非ゼロデータを書き込むメモリワード内のバイトアドレスのみが有効となるように、バイトイネーブル信号Beを制御する。そのように制御されたバイトイネーブル信号Beは、メモリ3に出力される。
以上のように、本発明の実施形態に係るデータ復号化装置2は、データの復号化を制御する制御回路10が、入力されたポインタ値Ptrを次にゼロデータを書き込む位置(ネクストゼロポインタ値nxtZr(Ptr))に変換する変換部(ネクストゼロポインタ変換部)を有し、所定の2次元領域のデータ復号期間中に、非ゼロデータを書き込む位置(非ゼロポインタ値(Ptr+Rn’))とゼロデータとを書き込む位置とを比較しながら、非ゼロ/ゼロデータを順次書き込んで行く。
そして、2つのポインタ値の比較結果に基づいて、上述の第1乃至第3の書き込み方式を選択して、非ゼロデータ又はゼロデータを所定のポインタ値に対応するアドレスに順次書き込んでいく。これによって、1次元の係数列が2次元の係数列に変換され、データ(例えば、画像データ)が復号化される。
このように本実施形態のデータ復号化装置においては、非ゼロデータの書き込み前に、8×8ブロックに対応するメモリの全バイトアドレスに対して、初期化のためのゼロデータ書き込みは実行する必要はない。
よって、本実施形態のデータ復号化装置によれば、データの復号化のためのデータ書き込み回数を削減できる。本実施形態のように、データの書き込み回数を削減できるため、画像データの高解像度化により画像処理速度が低下するのを抑制できる。また、これにともなって、本実施形態のデータ復号化装置によれば、データ復号化装置及びそれを含む装置の消費電力を削減できる。
したがって、本発明の実施形態に係るデータ復号化装置によれば、書き込み回数の削減及び消費電力の低減を実現できる。
(2) 動作
以下、図5及び図6を用いて、本発明の実施形態に係るデータ復号化装置の動作について説明する。尚、ここでは、図2乃至図4も適宜参照して、説明する。
本実施形態において、4つの有効データが入力された場合を例に、本実施形態のデータ復号化装置の動作について、説明する。4つの有効データのラン値Rn及びレベル値Lvの値(Rn,Lv)は、それぞれ、(0,3)、(2,1)、(3,5)及び(10,2)とする。
はじめに、データ復号化装置2内の制御回路11は、書き込みイネーブル信号Weを有効にする。これによって、データの書き込みが開始される。そして、データ復号化装置内の制御回路10は、データ要求信号Nxtを有効にする。有効にされたデータ要求信号Nxtによって、1番目の有効データが、外部から入力されて、データの復号化のための書き込み動作が開始される。 本実施形態に係るデータ復号化装置2において、その初期動作としての8×8ブロックに対応したメモリ3に対するゼロデータの書き込みは実行されない。
図5に示されるように、ポインタ値Ptrが、0(ゼロ)に初期化され、ランダッシュ値Rn’は、1番目の有効データが含むラン値Rnの値が代入される(ST1)。ランダッシュ信号Rn’は、8×8ブロック内の現在の位置(ポインタ)と非ゼロデータの位置との間に存在するゼロデータの個数に対応している。よって、これから(次に)書き込まれる非ゼロデータの位置、つまり、非ゼロポインタ値は、ランダッシュ信号Rn’とポインタ値Ptrとの和(Ptr+Rn’)で示される。
続いて、非ゼロデータの位置(非ゼロポインタ値)が示す値と、これから(次に)ゼロデータを書き込む位置(ネクストゼロポインタ値)が示す値とが、制御回路10によって、比較される(ステップST2)。より具体的には、ステップST2において、非ゼロポインタ値(Ptr+Rn’)が示す値が、ネクストゼロポインタ値nxtZr(Ptr)が示す値より大きいか否か判定される。
ネクストゼロポインタ値nxtZr(Ptr)は、ポインタ値Ptrの値の関数である。そして、ネクストゼロポインタ値nxtZr(Ptr)の値は、図4に示されるネクストゼロ変換テーブルに基づいて、制御回路10に取得される。より具体的な例としては、制御回路10内のネクストゼロポインタ変換部23が、入力されたポインタ値Ptrを、その変換部23が有する変換テーブルを用いて変換することで、実行される。
これによって、算出された非ゼロポインタ値(Ptr+Rn’)と取得されたネクストゼロポインタ値nxtZr(Ptr)との大きさの比較が、制御回路10によって、実行される。
本実施形態では、1番目の有効データが入力された場合、ランダッシュ値Rn’は、1番目の有効データのラン値(本例では、“0”)に設定され、ポインタ値Ptrは“0”に設定されている。この場合、非ゼロポインタ値(Ptr+Rn’)は“0”になる。また、図4に示される変換テーブルを参照すると、ポインタ値Ptrが“0”である場合、ネクストゼロポインタ値nxtZr(0)は、“0”になる。
そのため、本実施形態において、1番目の有効データが入力された場合、非ゼロポインタ値(Ptr+Rn’)が示す値は、ネクストゼロポインタ値nxtZr(0)が示す値と同じ大きさである。この場合、非ゼロポインタ値(Ptr+Rn’)が、今回の書き込みサイクルにおいて、スキャンの順序に沿った書き込み対象となる現在のポインタ値crPtrとして、制御回路10によって設定される(ステップST3)。この現在のポインタ値crPtrとしての非ゼロポインタ値(Ptr+Rn’)は、制御回路10内のジグザグスキャン変換部26に取得される。
続いて、非ゼロポインタ値(Ptr+Rn’)を示しているが、ネクストゼロポインタ値nxtZr(Ptr)の値と等しいか否か、制御回路10によって判定される(ステップST4)。
上述のように、ポインタ値Ptrとランダッシュ値Rn’が両方とも“0”である場合、非ゼロポインタ値(Ptr+Rn’)は“0”になる。また、ポインタ値Ptrが“0”である場合、ネクストゼロポインタ値nxtZr(0)は“0”である。よって、今回の書き込みサイクルにおいて、制御回路10は、現在のポインタ値crPtrとしての非ゼロポインタ値(Ptr+Rn’)が示す値が、ネクストゼロポインタ値nxtZr(0)が示す値と一致していると判定する。
この場合、図6の(a)に示すように、複数のバイトアドレス(ポインタ値)から構成されているメモリワードにおいて、“0”のポインタ値Ptrに対応するバイトアドレス(メモリアドレス)に、1番目の有効データが含むレベル値Lv“3”が、制御回路10によって書き込まれる(ST5A)。尚、図3に示されるジグザグスキャン変換テーブルにおいて、“0”を示すポインタ値は、その変換テーブルが示すx−y座標(x,y)の(0,0)に対応している。よって、メモリのアドレスの上位3ビットを示すy座標“0”と、メモリのアドレスの下位3ビットを示すx座標“0”とによって、非ゼロデータ(“3”)の書き込みの対象となるメモリのアドレスは、“000000”であると示される。このように、変換テーブル内の1つのポインタ値から、1つのメモリアドレスが得られる。
また、本実施形態において、非ゼロポインタ値(Ptr+Rn’)によって示される現在のポインタ値crPtrの値が、ネクストゼロポインタ値nxtZr(Ptr)と一致した場合、その一致したポインタを含んでいる1つのメモリワードにおいて、非ゼロデータ(有効データ)を所定のポインタ値に対応した1つのバイトアドレスに書き込むのと同時に、非ゼロデータが書き込まれたバイトアドレス除いた同一メモリワード内の残りのバイトアドレスに、ゼロデータが書き込まれる。
よって、現在のポインタ値としての非ゼロポインタ値(Ptr+Rn’)がネクストゼロポインタ値nxtZr(Ptr)と一致した場合、図3及び図6の(a)に示す例のステップST5Aにおいて、“0”のポインタ値を含んでいるメモリワードMW0において、そのメモリワードMW0内の他のポインタ“1”,“5”,“6”に対応する3つのバイトアドレスに、ゼロデータが書き込まれる。このゼロデータの書き込みは、3つのポインタに対して、非ゼロデータの書き込みと同時に実行される。
このゼロ/非ゼロデータの書き込みにおいて、制御回路10から出力されるバイトイネーブル信号Beによって、現在のポインタcrPtr、つまり、非ゼロポインタ値(Ptr+Rn’)が示すバイトアドレスが、書き込みの対象として有効にされると共に、そのポインタ値(Ptr+Rn’)(=crPtr)を含んでいるメモリワード内の残りのバイトアドレスも書き込みの対象のアドレスとして、すべて有効にされる。このバイトイネーブル信号Beは、制御回路10内の書き込み制御部27によって生成される。
以下、ステップST3からステップST5Aまでのフローに対応するデータの書き込みのことを、書き込み方式1(第1の書き込み方式)と呼ぶ。上述のように、現在のポインタとしての非ゼロポインタ値(Ptr+Rn’)が示す値が、ネクストゼロポインタ値nxtZr(Ptr)が示す値と等しい場合、書き込み方式1が制御回路10内の選択部24によって選択される。そして、制御回路10内の書き込み手制御部27による制御によって、非ゼロポインタ値(Ptr+Rn’)に対応するメモリのアドレスに、所定の非ゼロデータ(レベル値)が書き込まれ、この書き込みと同時に、非ゼロデータが書き込まれたポインタ値を含んでいるメモリワードに属する他の1以上のポインタ値に対応するメモリのアドレスに、ゼロデータが書き込まれる。
非ゼロデータ及びゼロデータが1つのメモリワードに対して書き込まれた後、制御回路10は、現在のポインタcrPtrの値をインクリメントする。これによって、ポインタ値Ptrは、現在のポインタ値crPtrに“1”が加算された値nxtPtrA(以下、更新ポインタ値nxtPtrAと呼ぶ)に更新される(ステップST6)。ステップST6において、更新ポインタ値(第1の更新ポインタ値)nxtPtrAの値は、現在のポインタ値としての非ゼロポインタ値(Ptr+Rn’)をインクリメントした値である。
この更新ポインタ値nxtPtrAは、図2に示される制御回路10からポインタレジスタ12に出力される。ポインタレジスタ12は、入力された更新ポインタ値nxtPtrの値を新たなポインタ値Ptrの値として、保持する。
この後、制御部10はデータ要求信号Nxtを有効にして、例えば、データ解析部1に対して、次の有効データを要求する。そして、制御回路10に入力された次の有効データのラン値が、ランダッシュ値Rn’の更新値nxtRn’に設定される(ステップST7)。以下、更新されたランダッシュ値nxtRn’のことを、更新ランダッシュ値(第1の更新ランダッシュ値)nxtRn’Aと呼び、この更新ランダッシュ値nxtRn’Aが、次の書き込みサイクルに用いられるランダッシュ値Rn’として、設定される。
上述の動作を実行した後に、終了信号Endが有効、且つ、ポインタ値Ptrが64以上であるか、判定される(ステップST8)。
終了信号Endが有効であり、且つ、ポインタ値Ptrが64以上であれば、8×8ブロックに対する書き込みが最後まで実行されたことを示しているので、データの書き込み処理が終了される。これに対して、終了信号Endが無効、又は、ポインタ値Ptrが64より小さい場合、それは、8×8ブロックに対して書き込みが終了していないことを示している。よって、ここでは、ステップST2の処理が、再び実行される。
2番目に入力された有効データのラン値Rn及びレベル値Lvは、(Rn,Lv)=(2,1)である。よって、ポインタ値Ptrは、上述のステップST6おいて、“0”から“1”に更新されている。また、上述のステップST7において、ランダッシュ値Rn’は“0”から“2”に更新されている。
この場合、非ゼロポインタ値(Ptr+Rn’)は、“3”になる。また、ポインタ値PTrが“1”である場合、そのポインタ値Ptrの関数であるネクストゼロポインタ値nxtZr(1)の値は“2”であると、制御回路10(ネクストゼロポインタ変換部23)によって、図4に示されるネクストゼロ変換テーブルの参照結果に基づいて、判定される。
本実施形態において、2番目の有効データ(Rn,Lv)=(2,1)が入力された場合、非ゼロポインタ値(Ptr+Rn’)が示す値(“3”)は、ネクストゼロポインタ値nxtZr(Ptr)が示す値(“2”)より大きくなる。
このように、ステップST2による比較結果において、非ゼロポインタ値(Ptr+Rn’)が示す値が、ネクストゼロポインタ値nxtZr(Ptr)が示す値より大きいと判定された場合、ネクストゼロポインタ値nxtZr(Ptr)が、今回の書き込みサイクルにおいて、スキャンの順序に沿った書き込み対象となる現在のポインタ値crPtrとして、設定される(ステップST9)。この現在のポインタ値crPtrとしてのネクストゼロポインタ値nxtZr(Ptr)は、制御回路10内のジグザグスキャン変換部26内に取得される。
現在のポインタ値crPtrとしてのネクストゼロポインタ値nxtZr(Ptr)が“2”である場合、図3に示されるポインタ値“2”(x=0,y=1)に対応するバイトアドレス(“001000”)が、次にデータを書き込むアドレスとなる。尚、本例において、“1”のポインタ値に対応するバイトアドレスに対して、“0”のポインタ値に対応するバイトアドレスに対するデータの書き込みと同時に、ゼロデータが書き込まれている。
よって、現在のポインタ値crPtrとしてのネクストゼロポインタ値nxtZr(Ptr)(“2”)に対応するメモリ3のバイトアドレスに、ゼロデータが書き込まれる(ステップST10)。
この際、制御回路10(書き込み制御部27)が出力するバイトイネーブル信号Beによって、ネクストゼロポインタ値nxtZr(Ptr)が示すバイトアドレスが有効にされるだけでなく、そのポインタ値nxtZr(Ptr)を含んでいるメモリワード内の他のバイトアドレスも有効にされる。それゆえ、本実施形態のステップST10においては、図6の(b)に示すように、ネクストゼロポインタ値nxtZr(Ptr)が示す1つのバイトアドレスだけでなく、そのバイトアドレス(ポインタ値)を含んでいるメモリワードMW2の残りのバイトアドレス(ポインタ値)に対しても、ゼロデータが同時に書き込まれる。
つまり、ステップST10において、図6の(b)に示すように、ネクストゼロポインタ値nxtZr(Ptr)が示すバイトアドレスを含むメモリワードMW1に対し、そのメモリワードMW1が含んでいる全てのバイトアドレスに、ゼロデータが書き込まれる。
図3及び図6の(b)に示す例において、“2”のポインタ値Ptrを含むメモリワードMW1は、“2”の他に、“4”、“7”及び“13”の3つのポインタ値Ptrを含んでいるので、それらのポインタ値に対応する4つのバイトアドレスに、ゼロデータ(“0”)が書き込まれる。
ネクストゼロ変換テーブル内のネクストゼロポインタ値nxtZr(Ptr)が示す値は、図3に示される例のようにポインタ値の順序でデータをスキャンする際に、あるメモリワードが含む複数のポインタ値(バイトアドレス)の中で、最初に到達するポインタを示している。また、8×8ブロックに対するデータのスキャン順序において、ネクストゼロポインタ値nxtZr(Ptr)は、未だ書き込み対象となっていないポインタ値又はメモリワードを示しているとも換言できる。そして、このネクストゼロポインタ値nxtZr(Ptr)は、その値を含んでいる1つのメモリワード内の複数のバイトアドレスの全てに、ゼロデータを書き込む位置(ポインタ)を示している。
以下、ステップST9からステップST10までのフローに対応するデータの書き込みのことを、書き込み方式2(第2の書き込み方式)と呼ぶ。
上述のように、非ゼロポインタ値(Ptr+Rn’)が示す値が、ネクストゼロポインタ値nxtZr(Ptr)が示す値より大きい場合、ネクストゼロポインタ値nxtZr(Ptr)が現在のポインタ値crPtrとして設定され、書き込み方式2が制御回路10内の選択部24によって選択される。そして、制御回路10内の書き込み制御部27による制御によって、ネクストゼロポインタ値nxtZr(Ptr)に対応するメモリのアドレス及びネクストゼロポインタ値nxtZr(Ptr)を含んでいるメモリワードに属する残りのポインタ値に対応するメモリのアドレスに、ゼロデータが書き込まれる。このように、書き込み方式2においては、ネクストゼロポインタ値nxtZr(Ptr)が示すポインタ値を含むメモリワード内のバイトアドレスの全てに対して、ゼロデータが書き込まれる。
ステップST10によって、1つのメモリワードが含む全てのバイトアドレス(ポインタ)に、ゼロデータが書き込まれた後、制御回路10は、ランダッシュ値Rn’の値を、更新する(ステップST11)。ステップST11において、更新されたランダッシュ値nxtRn’B(第2の更新ランダッシュ値)は、例えば、今回の書き込みサイクルで用いられたランダッシュ値Rn’からネクストゼロポインタ値nxtZr(Ptr)を用いたことによって増加したポインタ値を減少させることで、得られる。この更新ランダッシュ値nxtRn’Bは、次のゼロ/非ゼロデータの書き込みサイクルに用いられる値なので、今回の書き込みサイクルにおける当初のポインタ値Ptrから次の書き込みサイクルにおける当初のポインタ値(crPtr+1)までの値が、ランダッシュ値Rn’に対する減少分の値として用いられる。上述のように、ランダッシュ値Rn’は“2”、今回の書き込みサイクルのポインタ値Ptrは“1”、そして、次の書き込みサイクルのポインタ値(crPtr+1)は“3”である場合、更新されたランダッシュ値nxtRn’bは、2−(2+1−1)=0になる。
これに続いて、制御回路10は、ポインタ値Ptrの更新のために、現在のポインタ値crPtrをインクリメントする(ステップST12)。更新されたポインタ値(第2の更新ポインタ値)nxtPtrBの値は、ポインタレジスタ12に保持される。ステップST12において、更新ポインタ値nxtPtrBの値は、現在のポインタ値crPtrとしてのネクストゼロポインタ値nxtZr(Ptr)に“1”を加算した値である。よって、ここでは、更新ポインタ値nxtPtrBの値は、“3”になる。
ステップST11及びステップST12によって得られた更新ランダッシュ値nxtRn’B及び更新ポインタ値nxtPtrBが、次のゼロ/非ゼロデータの書き込みサイクルにおいて、ポインタ値Ptr及びランダッシュ値Rn’として、用いられる。
そして、ステップST6における書き込み動作の終了判定が、再度行われる。
書き込み方式2を用いたゼロデータの書き込みの後、再度ステップ2において、非ゼロポインタ値(Ptr+Rn’)の値とネクストゼロポインタ値nxtZr(Ptr)の値の大きさが比較される。
ここで、今回の書き込みサイクルにおいて、ランダッシュ値Rn’は“0”であり、ポインタ値Ptrは“3”であるので、非ゼロポインタ値(Ptr+Rn’)の値は“3”である。また、ポインタ値Ptrが“3”を示すとき、ネクストゼロポインタ値nxtZr(3)は、図4に示される変換テーブルを参照すると、“3”を示している。よって、非ゼロポインタ値(Ptr+Rn’)が示す値とネクストゼロポインタ値nxtZr(Ptr)が示す値は、同じ大きさになる。
この場合は、書き込み方式1に該当するので、ステップST4において、4つのバイトアドレスを含むメモリワードに対して、2番目の有効データが含んでいるレベル値Lv(“1”)が、現在のポインタ値crPtrとしての非ゼロポインタ値(Ptr+Rn’)に対応する1つのバイトアドレスに書き込まれ、残りの3つのバイトアドレスにゼロデータが同時に書き込まれる。
よって、図3及び図6の(c)に示されるように、“3”のポインタ値に対応するバイトアドレスに、“1”のレベル値が書き込まれ、それと同じメモリワードMW2において、“8”、“12”及び“17”のポインタ値にそれぞれ対応する3つのバイトアドレスに“0”が書き込まれる。
そして、ステップST6及びステップST7において、現在のポインタ値crPtr及びランダッシュ値Rn’が、次の書き込みサイクルに用いる値にそれぞれ更新される。本実施形態において、3番目に入力される有効データのラン値Rnは“3”であるので、ここでの更新ランダッシュ値nxtRn’Aは“3”になる。また、更新ポインタ値nxtPtrは、非ゼロポインタ値(Ptr+Rn’)がインクリメントされた値である“4”に、更新される。これらの更新値nxtRn’A,nxtPtrが、次の書き込みサイクルのランダッシュ値Rn’及びポインタ値Ptrの値として、用いられる。
ステップ6を経由して、ステップ2による比較が実行される。ここで、3番目の有効データの書き込みにおいて、非ゼロポインタ値(Ptr+Rn’)は“7”である。また、ポインタ値Ptrは“4”なので、ネクストゼロポインタ値nxtZr(4)は、“9”である。よって、ステップST2において、非ゼロポインタ値(Ptr+Rn’)がネクストゼロポインタ値nxtZr(Ptr)より小さいと、判定される。そして、非ゼロポインタ値(crPtr+Rn’)が、現在のポインタ値crPtrとして、設定される(ST3)。この現在のポインタ値crPtrが、ジグザグスキャン変換部26に取得される。
そして、ステップST4において、現在のポインタ値としての非ゼロポインタ値(CrPtr+Rn’)が、ネクストゼロポインタ値nxtZr(Ptr)と等しいか否か判定される。上述のように、非ゼロポインタ値(Ptr+Rn’)は“7”、ネクストゼロポインタ値nxtZr(4)は“9”なので、非ゼロポインタ値(Ptr+Rn’)の値とネクストゼロポインタ値nxtZr(4)の値は、等しくない。
つまり、ステップST2及びステップ4における比較結果によって、非ゼロポインタ値(Ptr+Rn’)が示す値が、ネクストゼロポインタ値nxtZr(4)が示す値よりも小さいと、判定される。
このように、非ゼロポインタ値(Ptr+Rn’)が示す値がネクストゼロポインタ値nxtZr(4)より小さい場合、ステップST5Bによるデータの書き込みが、制御回路10内の選択手段23よって選択され、制御回路10内の書き込み制御部27によって実行される。ステップST5Bにおいては、現在のポインタcrPtrとしての非ゼロポインタ値(Ptr+Rn’)に対応するバイトアドレスのみに、所定のレベル値Lvが書き込まれる(ステップST5B)。
図3及び図6の(d)に示されるように、書き込み方式2によって一度ゼロデータが全体に書き込まれたメモリワードMW1において、3番目の有効データのレベル値Lv“5”が、非ゼロポインタ値(Ptr+Rn’)が示す値“7”に対応するバイトアドレスに、書き込まれる。
この際、制御回路10(書き込み制御部27)が出力するバイトイネーブル信号Beによって、ポインタ値に対応するバイトアドレスのみが有効(書き込み可能)にされ、そのポインタ値を含んでいるメモリワード内の残りのバイトは無効(書き込み不可能)にされている。それゆえ、ステップ5Bにおけるデータの書き込みでは、非ゼロポインタ値(Ptr+Rn’)に対応する1つのメモリワード内の1つのバイトアドレスに対してのみ、非ゼロデータが書き込まれ、他のバイトアドレスに対するゼロデータの書き込みは実行されない。
尚、図3及び図6の(d)に示されるスキャン方式によると、“1”の非ゼロデータが書き込まれたポインタ値(バイトアドレス)から“5”の非ゼロデータが書き込まれたポインタ値(バイトアドレス)までの間に、3つのポインタ値を経由するが、それらの3つのポインタ値に対応したバイトアドレスには、上述の書き込み方式1及び書き込み方式2に該当したデータの書き込み時に、データ(ゼロデータ)が既に書き込まれている。
以下、ステップST4からステップST5−1Bまでのフローによるデータの書き込みを、“書き込みパターン3(第3の書き込みパターン)”と呼ぶ。
以下、ステップST3からステップST5Bまでのフローに対応するデータの書き込みのことを、書き込み方式3(第3の書き込み方式)と呼ぶ。上述のように、現在のポインタとしての非ゼロポインタ値(Ptr+Rn’)が示す値が、ネクストゼロポインタ値nxtZr(Ptr)が示す値より小さい場合に、書き込み方式1が制御回路10内の選択部24によって選択される。そして、書き込み制御部27によって、非ゼロポインタ値(Ptr+Rn’)に対応するメモリのアドレスに、所定の非ゼロデータ(レベル値)が書き込まれる。但し、この場合、非ゼロデータが書き込まれたポインタ値を含んでいるメモリワード内の他のバイトアドレスには、データが書き込まれないように制御されている。
書き込み方式3を用いて3番目の有効データを書き込んだ後、書き込み方式1を用いてデータを書き込んだ後と同様に、ステップST6,ST7において、ランダッシュ値Rn’及びポインタ値Ptrが、更新ランダッシュ値nxtRn’A及び更新ポインタ値nxtPtrAに、それぞれ更新される。ここでは、次に入力される4番目の有効データのラン値Rnは、“10”であるため、ランダッシュ値Rn’(=nxtRn’A)は“10”に更新される。ポインタ値Ptr(=nxtPtrA)は、現在のポインタ値crPtrとしての非ゼロポインタ値(Ptr+Rn’)をインクリメントすることによって、“8”に更新される。
ステップST6を経由して、非ゼロポインタ値(Ptr+Rn’)が示す値とネクストゼロポインタ値nxtZr(Ptr)が示す値が、再度比較される(ステップST2)。今回の書き込みサイクルにおいて、非ゼロポインタ値(Ptr+Rn’)は“18”であり、ポインタ値Ptrは“8”であり、ネクストゼロポインタ値nxtZr(8)は“9”である。よって、非ゼロポインタ値(Ptr+Rn’)が示す値は、ネクストゼロポインタ値nxtZr(Ptr)の値より大きいので、ネクストゼロポインタ値nxtZr(8)の値“9”が、書き込み対象となる現在のポインタ値crPtrとして、設定される(ステップST9)。
この場合は、書き込み方式2に該当するため、図6の(e)に示すように、ネクストゼロポインタ値nxtZr(Ptr)に対応するバイトアドレスとそのポインタ値nxtZr(Ptr)を含むメモリワードMW3内の残りの3つバイトアドレスに対して、同時にゼロデータが書き込まれる(ステップST10)。
このネクストゼロポインタ値nxtZr(Ptr)を利用したゼロデータ書き込みの後、ランダッシュ値Rn’とポインタ値Ptrがそれぞれ更新される(ステップST11,ST12)。本実施形態では、ステップST11における更新ランダッシュ値nxtRn’Bは、“10−(9−7+1)=7”となり、ステップST12における更新ポインタ値nxtPtrBは、ネクストゼロポインタ値nxtZr(8)がインクリメントされた値なので、“10”となる。
更新されたランダッシュ値Rn’及びポインタ値Ptrに基づいて、ステップST2による判定が実行される。今回の書き込みサイクルにおいて、ポインタ値Ptrが“10”であり、非ゼロポインタ値(Ptr+Rn’)の値は“17”である。また、ネクストゼロポインタ値nxtZr(10)は、図4に示される変換テーブルにおいて、“10”が示されている。よって、非ゼロポインタ値(Ptr+Rn’)が示す値が、ネクストゼロポインタ値nxtZr(10)が示す値より大き。そのため、ネクストゼロポインタ値nxtZr(Ptr)が現在のポインタ値crPtrに設定され(ステップST9)、書き込み方式2を用いたデータの書き込みが実行される。
よって、図6の(f)に示すように、現在のポインタ値crPtrとしてのネクストゼロポインタ値nxtZr(Ptr)が示すバイトアドレスとそのポインタ値を含むメモリワードMW4内の残りの3つバイトに対して、同時にゼロデータが書き込まれる(ステップST10)。
そして、書き込み方式2を用いたデータの書き込みの後、ランダッシュ値Rn’及びポインタ値Ptrが更新される(ステップST11,ST12)。ランダッシュ値Rn’の更新値nxtRn’Bは“7−(10+1−10)=6”になり、現在のポインタcrPtrの更新値nxtPtrBは“10+1=11”になる。
さらに、ステップST2において、更新されたポインタ値Ptr及びランダッシュ値Rn’に基づいて、非ゼロポインタ値(Ptr+Rn’)が示す値とネクストゼロポインタ値nxtZr(Ptr)の値とが比較される。
ここでは、非ゼロポインタ値(Ptr+Rn’)の値は、“17”である。また、ポインタ値Ptrが“11”であるとき、ネクストゼロポインタ値nxtZr(11)は、図4の変換テーブルに示されるように、“14”である。
この場合においても、図6の(e)及び(f)を用いて説明した場合と同様に、非ゼロポインタ値(Ptr+Rn’)がネクストゼロポインタ値nxtZr(Ptr)よりも大きいので、書き込み方式2が用いられる。
よって、図6の(g)に示すように、ネクストゼロポインタ値nxtZr(Ptr)が示す値を含むメモリワードMW5に属する全バイトアドレスに対して、ゼロデータが書き込まれる(ステップST10)。尚、メモリワードMW5に到達するまでの間に経由する各ポインタ値に対しては、データが既に書き込まれているので、今回の書き込みサイクルにおいて、それらのポインタ値に対応するバイトアドレスに対して、データの書き込みは生じない。
ステップST10におけるゼロデータの書き込みの後、ステップST11及びステップST12において、ランダッシュ値Rn’及びポインタ値Ptrの更新がそれぞれ実行される。更新ランダッシュ値nxtRn’Bは、“6−(14+1−11)=2”となり、更新ポインタ値nxtPtrBは、“15”になる。これらの値nxtRn’B,nxtPtrBが、次の書き込みサイクルにおいて、ランダッシュ値Rn’及びポインタ値Ptrとして、それぞれ用いられる。
そして、ステップST2により、非ゼロポインタ値(Ptr+Rn’)が示す値が、ネクストゼロポインタ値nxtZr(Ptr)が示す値より大きいか否か、比較される。今回の書き込みサイクルにおいて、ポインタ値Ptrは“15”であり、非ゼロポインタ値(Ptr+Rn’)は“17”であり、ネクストゼロポインタ値nxtZr(15)は“16”である。このため、非ゼロポインタ値(Ptr+Rn’)が、ネクストゼロポインタ値nxtZr(15)よりも大きい。よって、ネクストゼロポインタ値nxtZr(15)が示す値が、現在のポインタ値crPtrに設定される(ステップST9)。
そして、図6の(h)に示されるように、書き込み方式2を用いて、ネクストゼロポインタ値nxtZr(15)が示す値“16”を含むメモリワードMW6内の全てのバイトアドレスに対して、ゼロデータが書き込まれる。
この後、ステップST11及びステップST12において、ランダッシュ値Rn’及びポインタ値Ptrの更新が、それぞれ実行される。ランダッシュ値Rn’の更新値nxtRn’Bは、“2−(16−15+1)=0”となる。また、ポインタ値Ptrの更新値nxtPtrBは、“17”になる。
これに続いて、ステップST2において、更新及び再設定されたポインタ値Ptr及びランダッシュ値Rn’に基づいて、非ゼロポインタ値(Ptr+Rn’)及びネクストゼロポインタ値nxtZr(Ptr)の大小が比較される。
ここで、今回の書き込みサイクルにおいて、ポインタ値Ptrは“17”、ランダッシュ値Rn’は“0”なので、非ゼロポインタ値(Ptr+Rn’)は、“17”になる。ポインタ値PTRが“17”のとき、ネクストゼロポインタ値nxtZr(17)は、図4に示される変換テーブルを参照すると、“20”を示している。よって、ネクストゼロポインタ値nxtZr(Ptr)が示す値が、非ゼロポインタ値(Ptr+Rn’)が示す値よりも大きい。
それゆえ、非ゼロポインタ値(Ptr+Rn’)が示す値“17”が、現在のポインタcrPtrの値として、設定される(ステップST3)。また、ここでは、非ゼロポインタ値(Ptr+Rn’)はネクストゼロポインタ値nxtZr(17)の値と等しくと、ステップST4において、判定される。したがって、書き込み方式3を用いて、非ゼロデータのみ書き込みが、1つのバイトアドレスに対して、実行される。
よって、図6の(i)に示すように、メモリワードMW3内の非ゼロポインタ値が示すバイトアドレスに、“2”のレベル値Lvが書き込まれる。この際、書き込み方式3が用いられているので、そのメモリワードMW3において、非ゼロポインタ値(Ptr+Rn’)に対応するバイトアドレスを除いた他のバイトアドレスに対しては、データの書き込みは実行されない。
この後、ステップST6,ST7において、ランダッシュ値Rn’及びポインタ値Ptrが更新される。
図6の(h)で示されたレベル値Lv(“2”)の書き込みは、本実施形態において、最後の有効データの書き込みである。よって、終了信号ENDは有効になる。
有効データが無くなった後に、データが書き込まれていない残りの領域(ワード又はバイト)に対するゼロデータの書き込みは、例えば、終了信号Endが有効である場合に、制御回路10が、ラン値Rnの値が64以上の値になるように、ステップST7において設定し、ステップST8による判定からステップST13に移行することによって、実行される。また、本実施形態においては、明示的な終了信号ENDによらずに、最後の有効データ入力された後にデータ要求信号Nxtに基づいて入力されるデータにおいて、ラン値Rnが“64”以上或いはレベル値Lvが“0”などのように、ラン値Rn及びレベル値Lvが特徴的な値を示すデータが入力されるように、予め規定する。そして、そのような特徴的な信号が入力された場合に、制御回路10が、その信号を有効状態の終了信号Endと同様であると解釈し、データが書き込まれていない残りのメモリワード及びバイトに対して、ゼロデータが書き込まれるように、制御してもよい。
本実施形態において、4つの有効データの全てが書き込まれた後に、9個のメモリワードが未書き込みなので、その9個のメモリワードのそれぞれに対して、ゼロデータがメモリワード単位で順次書き込まれる。
以上のように、本実施形態のデータ復号化装置においては、1つのメモリワードに対する書き込み方式1を用いたゼロ/非ゼロデータの同時書き込みが2回、1つのメモリワードに対する書き込み方式2を用いたゼロデータの書き込みが5回、及び、1つのバイトアドレスに対する書き込み方式3を用いた非ゼロデータの書き込みが2回、実行される。また、全ての有効データを書き込んだ後に、8×8ブロック内の未書き込みの9個のメモリワードに対して、1回ずつのデータ書き込みが実行される。よって、全有効データの書き込み後のゼロデータ書き込みが、9回実行される。したがって、本実施形態のデータ復号化装置では、合計18回のデータ書き込みが実行される。これによって、1次元の係数列が2次元の係数列に変換され、データ(例えば、画像データ)が復号化される。
一般的なデータ復号化装置においては、初期動作としてゼロデータの書き込みが、8×8ブロックに対応するメモリに実行された後に、非ゼロデータの書き込みが実行される。その初期動作としてのゼロデータの書き込みは、y座標(上位アドレス)の8個のメモリワードに対して、x座標(下位アドレス)を2つの領域(x=0〜3,4〜7)に分けて、メモリワード単位で実行される。よって、ゼロデータ書き込みは、16回実行される。この後、上述の例と同様に、4つの有効データとして(0,3)、(2,1)、(3,5)及び(10,2)が入力された場合、4回の非ゼロデータ書き込みが、“0”が書き込まれたバイトアドレスに再度書き込むように、実行される。それゆえ、このような一般的なデータ復号化装置では、20回のゼロ/非ゼロデータの書き込みが実行される。
上述のように、本実施形態の装置2においては、ゼロ/非ゼロデータの書き込みの回数は18回である。それゆえ、本実施形態における装置2によるデータ書き込み回数は、一般的な例の書き込み回数よりも、2回削減されている。
したがって、本実施形態によれば、データの書き込みの回数を削減できる。
これに伴って、データの書き込み回数を削減できることによって、画像データの復号化のための処理速度を高速化できる。
尚、本実施形態においては、4つの有効データが入力された場合について、説明した。有効データの数が3個以下、又は、5個以上になった場合においても、データの書き込みの回数は、削減できる。また、有効データの配列に依存して、ゼロ/非ゼロデータの書き込み回数は変動するが、本実施形態に係るデータ復号化装置を用いた場合において、そのゼロ/非ゼロデータの書き込み回数は、同様の有効データが入力された場合における上述の一般的なデータ復号化装置のデータの書き込みの回数より多くはならない。
また、データの書き込み回数が削減されることに伴って、データの書き込みに用いる電圧及び電流を削減できる。
したがって、本発明の実施形態によれば、消費電力を低減できる。
画像データが高解像度になると8×8ブロックの数は増大するので、本発明の実施形態のデータ復号化装置によるデータの書き込み回数の削減、それに伴う消費電力の低減や画像処理の高速化などの効果は、より大きくなる。
以上のように、本発明の実施形態に係るデータ復号化装置は、データの書き込み回数の削減及び消費電力の低減を実現できる。
(3) 構成例
図7乃至9を用いて、本発明の実施形態におけるデータ復号化装置の内部構成の一例について、説明する。尚、図1乃至6を用いて説明した構成及び信号と同じ要素については、同じ符号を付し、詳細な説明は必要に応じて行う。
図7は、データ復号化装置2内の第1の制御回路10の内部構成の一例を示している。
上述のように、図7に示される制御回路10は、主要な構成要素として、ランダッシュ生成部21、ネクストゼロポインタ変換部23、ジグザグスキャン変換部26、書き込み制御部27及び書き込み方式選択部24を備えている。
制御回路10内のANDゲート20は、データ要求信号Nxtを出力する。データ要求信号Nxtは、制御信号WrLvと書き込みイネーブル信号Weとの演算結果(論理和)により生成される。制御信号WrLvについては、後述する。
データ要求信号Nxtは、制御信号WrLvと書き込みイネーブル信号Weの両方が“1(H:high)”レベルを示す場合に、“1(H)”レベルを示し、それ以外の論理状態の場合には、“0(L:low)”レベルを示す。データ要求信号Nxtが“1(H)”レベルを示す場合に、有効データが制御回路10内に入力される。
制御回路10内に設けられたランダッシュ生成部21は、ランダッシュ信号Rn’を生成する。このランダッシュ生成部21内には、上述の第2の書き込み方式を用いてデータを書き込んだサイクルの次のサイクルで使用されるランダッシュ値(更新ランダッシュ値)nxtRn’Bの値を格納するレジスタと、その出力を制御する回路が含まれる。
図7に示されるランダッシュ生成部21の構成例において、ランダッシュ信号Rn’は、入力された有効データが含んでいるラン値Rn、書き込みイネーブル信号We、ANDゲート20の出力信号(データ要求信号Nxt)及びネクストランダッシュ信号nxtRn’に基づいて、生成される。
ラン値Rnは、生成部21内の第1のセレクタ210の一方の入力端子に、入力される。このセレクタ210の他方の入力端子には、生成部21内のレジスタ211を経由して、更新ランダッシュ値nxtRn’Bが入力される。更新ランダッシュ値nxtRn’Bは、ランダッシュ信号Rn’の値から、書き込み方式2を用いることによって増加したポインタ値(crPtr+1−Ptr)ネクストゼロポインタ値nxtZr(Ptr)を減少させた値である。尚、第2の書き込み方式を用いた場合の現在のポインタ値crPtrは、ネクストゼロポインタ値nxtZr(Ptr)が設定されている。レジスタ211は、書き込みサイクルに応じて順次更新されていくランダッシュ値nxtRn’を、保持する。セレクタ210は、信号Nxt’を制御信号として、ラン値Rn又は更新ランダッシュ値nxtRn’のいずれか一方を選択する。その選択された信号がランダッシュ値Rn’として出力される。例えば、制御信号Nxt’が“1”レベルを示すとき、ラン値Rnが選択され、制御信号Nxt’が“0”レベルを示すとき、更新ランダッシュ値nxtRn’が選択される。
セレクタ210に対する制御信号(第1の制御信号)Nxt’は、生成部21内の第2のセレクタ212と第2のレジスタ213とを用いて、生成される。
セレクタ212の入力端子には、データ要求信号Nxtと制御信号Nxt’とがそれぞれ入力される。セレクタ212の制御信号には、書き込みイネーブル信号Weが用いられる。セレクタ212は、書き込みイネーブル信号Weに基づいて、データ要求信号Nxt及び制御信号Nxt’のうちいずれか一方を選択する。例えば、書き込みイネーブル信号Weが“1”レベルを示す場合、データ要求信号Nxtがセレクタ212によって選択され、書き込みイネーブル信号Weが“0”レベルを示す場合、信号Nxt’が選択される。そして、選択された信号Nxt’は、セレクタ210の制御信号として、セレクタ210に出力される。この結果として、“1”レベルの書き込みイネーブル信号Weによって、データ要求信号Nxtがセレクタ210に対する制御信号として選択され場合、ラン値Rnが次の書き込みサイクルに用いるランダッシュ値Rn’として、選択される。この一方で、“0”レベルの書き込みイネーブル信号Weによって、信号Nxt’がセレクタ210に対する制御信号として選択され場合、更新されたランダッシュ値nxtRn’が次の書き込みサイクルに用いるランダッシュ値Rn’として、選択される。
セレクタ212によって選択された信号は、レジスタ213に入力される。レジスタ213は、書き込みサイクルに応じて順次入力される信号を新たな信号Nxt’として、保持する。また、信号Nxt’は、レジスタ213からセレクタ212の入力端子の1つにループされて、入出力される。
尚、ランダッシュ生成部21内に設けられたレジスタ211,213は、例えば、入力クロックに同期して動作する。
ランダッシュ生成部21によって生成されたランダッシュ信号Rn’は、加算器(22に入力される。この加算器22には、ポインタレジスタ12から出力されたポインタ値Ptrも入力される。加算器22は、ポインタ値Ptrとランダッシュ値Rn’とが加算される。これによって、上述の非ゼロポインタ値(Ptr+Rn’)が生成される。
また、ポインタ値Ptrは、加算器22に入力されると共に、ネクストゼロポインタ変換部23に入力される。これによって、ネクストゼロポインタ変換部23は、図4に示されたネクストゼロポインタ変換テーブルに基づいて、入力されたポインタ値Ptrに対応するように、ネクストゼロポインタ値nxtZr(Ptr)を出力する。
非ゼロポインタ値(Ptr+Rn’)及びネクストゼロポインタ値nxtZr(Ptr)は、書き込み方式選択部24に出力される。書き込み方式選択部24は、2つのコンパレータ(比較器)24A,24Bを有している。非ゼロポインタ値(Ptr+Rn’)及びネクストゼロポインタ値nxtZr(Ptr)は、2つのコンパレータ(比較器)24A,24Bにそれぞれ入力される。
コンパレータ24A,24Bは、非ゼロポインタ値(Ptr+Rn’)が示す値及びネクストゼロポインタ値nxtZr(Ptr)が示す値の大きさを比較する。
コンパレータ24Aは、非ゼロポインタ値(Ptr+Rn’)及びネクストゼロポインタ値nxtZr(Ptr)の比較結果に基づいて、制御信号(第1の書き込み制御信号)WrLvを出力する。この制御信号WrLvは、“1(H)”レベルと“0(L)”レベルの2つの状態を示す。例えば、非ゼロポインタ値(Ptr+Rn’)が示す値が、ネクストゼロポインタ値nxtZr(Ptr)が示す値以下の場合、制御信号WrLvは“1”レベルを示す。
一方、コンパレータ24Bは、非ゼロポインタ値(Ptr+Rn’)及びネクストゼロポインタ値nxtZr(Ptr)の比較結果に基づいて、制御信号(第2の書き込み制御信号)WrZrを出力する。この制御信号WrZrは、“1(H)”レベルと“0(L)”レベルの2つの状態を示す。例えば、非ゼロポインタ値(Ptr+Rn’)が示す値が、ネクストゼロポインタ値nxtZr(Ptr)が示す値以上の場合、制御信号WrLvは“1”レベルを示す。
また、非ゼロポインタ値(Ptr+Rn’)及びネクストゼロポインタ値nxtZr(Ptr)は、セレクタ(第3のセレクタ)25に入力される。セレクタ25は、制御信号WrLvを制御信号として用いて、非ゼロポインタ値(Ptr+Rn’)及びネクストゼロポインタ値nxtZr(Ptr)のうちいずれか一方を選択して、出力する。セレクタ25は、例えば、制御信号WrLvが“1”レベルを示す場合、非ゼロポインタ値(Ptr+Rn’)を選択し、制御信号WrLvが“0”を示す場合、ネクストゼロポインタ値nxtZr(Ptr)を選択する。これによって、セレクタ25の出力が現在のポインタ値crPtrとして、ジグザグスキャン変換部26に出力される。つまり、セレクタ25の動作は、図5のステップST3及びステップ9に対応する。
ジグザグスキャン変換部26は、取り込んだ現在のポインタ値crPtrをメモリ3のアドレスに変換する変換テーブルを有している。上述のように、その変換テーブルZZCONV(crPtr)は、図4に示されている。図4に示される例の変換テーブルに基づいて、現在のポインタ値crPtrに対応したメモリ3のアドレス信号Addrを出力する。アドレス信号Addrは、メモリ3に入力されると共に、書き込み制御部27に入力される。
書き込み制御部27は、書き込みデータ生成手段27Aとバイトイネーブル信号生成手段27Bとを有する。
書き込みデータ生成手段27Aには、アドレス信号Addrが入力されるとともに、制御信号WrLv及びレベル値Lvが入力される。書き込みデータ生成手段27Aは、入力された制御信号WrLvに基づいて、書き込み対象のアドレス信号Addrが示す1つのメモリワード(バイトアドレス)に書き込むゼロ/非ゼロデータを生成する組合せ回路である。
書き込みデータ生成手段27Aは、例えば、図8に示されるデータ変換テーブルを有する。図8に示される変換テーブルに示されるように、制御信号WrLvが“1(H)”レベルを示す場合、書き込みデータ生成手段27Aは、図8に示される変換テーブル内のバイトアドレスの下位2ビットに対応する1つのビット0(00)〜3(11)のそれぞれに、レベル値Lvを出力し、下位2ビットに対応する残りの3つのビットに0を出力する。これによって、1つのメモリワード内の1つのポインタ値(非ゼロポインタ値)に対応するバイトアドレスに、非ゼロデータが出力される。また、そのポインタ値を含むメモリワード内の残りのポインタ値に対応するバイトアドレスに、ゼロデータが出力される。すなわち、“1”レベルの制御信号WrLvによって生成されたゼロ/非ゼロデータは、書き込み方式1又は書き込み方式3で用いられるデータである。
一方、制御信号WrLvが“0(L)”レベルを示す場合、書き込みデータ生成手段27Aは、図8に示される変換テーブルにおいて、全てのバイトアドレスの下位2ビットにゼロを出力する。これによって、1つのメモリワード内の全てのポインタ値に対応するバイトアドレスに、ゼロデータが出力される。すなわち、“0”レベルの制御信号WrLvによって生成されたゼロデータは、書き込み方式2で用いられるデータである。
バイトイネーブル信号生成手段27Bは、アドレス信号Addrが入力されると共に、制御信号WrZrが入力される。バイトイネーブル信号生成手段27Bは、制御信号WrZrに基づいて、書き込み対象のアドレス信号Addrが示す1つのメモリワード又は1つのバイトアドレスを有効(書き込み可能)にするバイトイネーブル信号を生成する組合せ回路である。
バイトイネーブル信号生成手段27Bは、例えば、図9に示される変換テーブルを有する。
図9に示される変換テーブルに示されるように、バイトアドレスが64未満、且つ、制御信号WrZrが“0(L)”レベルを示す場合、バイトイネーブル信号生成手段27Bは、図9に示される変換テーブル内におけるバイトアドレスの下位2ビットに対応する位置0(00)〜3(11)のそれぞれ1つに、“1”を出力する。これによって、1つのメモリワード内に含まれる複数のバイトアドレス(ポインタ値)において、“1”が出力された下位2ビットを含むバイトアドレスのみが、書き込み可能になるように制御される。この制御は、主に、書き込み方式3で用いられる。
バイトアドレスが64未満、且つ、ゼロ書き込み信号WrZrが“1(H)”レベルを示す場合、バイトイネーブル信号生成手段27Bは、図9に示される変換テーブルにおいて、1つのメモリワード内の全てのバイトアドレスの下位2ビットに対応する位置に、“1”を出力する。これによって、1つのメモリワード内のバイトアドレスの全てが、書き込み可能になるように制御される。すなわち、“1”レベルの制御信号WrZrによって、書き込み方式1及び書き込み方式2で用いられるゼロデータの書き込みが、制御される。
バイトアドレスが64以上の時、バイトイネーブル信号生成手段27Bは、図9に示される変換テーブルにおいて、メモリワード内の全てのバイトアドレスの下位2ビットに対応する位置に“0”を出力する。これによって、メモリワード内の全てのバイトアドレスに対して、データが書き込みまれないように制御される。
このように、非ゼロポインタ値がネクストゼロポインタ値nxtZr(Ptr)と同じ大きさの場合、制御信号WrLv及び制御信号WrZrの両方が、“1”レベルを示す。これらの信号WrLv,WrZrによって、1つのメモリワードが含んでいる複数のバイトアドレスにおいて、非ゼロポインタ値(Ptr+Rn’)に対応する1つのバイトアドレスに非ゼロデータ(レベル値)が書き込まれ、そのバイトアドレスを除く残りのアドレスにゼロデータが書き込まれる。つまり、選択部24が出力する“1”レベルの制御信号WrLvと“1”レベルの制御信号WrZrによって、第1の書き込み方式が実行される。
非ゼロポインタ値(Ptr+Rn’)がネクストゼロポインタ値nxtZr(Ptr)以上の値を示す場合、制御信号WrLvは、“0”レベルを示し、制御信号WrZrは、“1”レベルを示す。これらの信号WrLv,WrZrによって、1つのメモリワードが含んでいる複数のバイトアドレスにおいて、ネクストゼロポインタ値nxtZr(Ptr)及び残りの他のバイトアドレスに、ゼロデータが書き込まれる。つまり、選択部24が出力する“0”レベルの制御信号WrLvと“1”レベルの制御信号WrZrによって、第2の書き込み方式が実行される。
また、非ゼロポインタ値(Ptr+Rn’)がネクストゼロポインタ値nxtZr(Ptr)以上の値を示す場合、制御信号WrLvは、“1”レベルを示し、制御信号WrZrは、“0”レベルを示す。これらの信号WrLv,WrZrによって、1つのメモリワードが含んでいる複数のバイトアドレスにおいて、非ゼロポインタ値(Ptr+Rn’)が示す1つのバイトアドレスに、非ゼロデータ(レベル値)が書き込まれる。つまり、選択部24が出力する“1”レベルの制御信号WrLvと“0”レベルの制御信号WrZrによって、第3の書き込み方式が実行される。
以上のように、書き込み方式選択部24は、非ゼロポインタ値(Ptr+Rn’)及びネクストゼロポインタ値nxtZr(Ptr)の比較結果に基づいて、2つの制御信号WrLv,WrZrを出力する。その比較結果を反映した2つの制御信号WrLv,WrZrの信号レベルに応じて、書き込み制御回路27が有する3つの書き込み方式の中から1つの書き込み方式が、選択される。よって、図7に示される書き込み方式選択部24及び書き込み制御部27の構成、それらの入出力信号による書き込み動作の制御によれば、回路の簡素化に貢献できる。
尚、上述のように、制御信号WrLvは、ANDゲート20の入力端子に入力される。制御信号WrLvが“1”又は“0”レベルを示すのに対応して、データ要求信号Nxtは、“1”レベル又は“0”レベルに遷移する。“1”レベルの制御信号WrLvは、1つの有効データの書き込みが完了するのと実質的に等しい。よって、この場合に、データ要求信号Nxtが“1”レベルとなり、次の有効データの入力が要求される。
また、現在のポインタ値crPtrは、加算器29によって“1”が加算されて、値がインクリメントされる。インクリメントされたポインタ値が、次の書き込みサイクルに用いる更新されたポインタ値nxtPtrとして、データ復号化装置内のポインタレジスタに出力される。
このように、本実施形態に係るデータ復号化装置2は、例えば、図7乃至図9に示される構成の制御回路10を有する。
これによって、本発明の実施形態に係るデータ復号化装置2は、データの書き込み回数の削減、それに伴う画像処理の高速化及び消費電力の低減を実現できる。
[その他]
本発明の実施形態において、ラン値とレベル値とが1組として扱われるデータがMPEG−2規格やJPEG規格に対応した例を用いて説明した。しかし、例えば、ラン値、レベル値及びネクスト値の3つの値を1組の有効データとして扱うMPEG−4規格のように、3つ以上の値を含む1組の有効データの中からラン値とレベル値を取得することで、MPEG−2以外の画像処理規格であっても、本実施形態に適用できるのはもちろんである。
本発明の実施形態において、量子化係数を2次元に展開するためのスキャン方法として、ジグザグスキャン方式を用いて説明したが、これに限定されない。例えば、垂直優先オルタネートスキャン方式、水平優先オルタネートスキャン方式及びラスタスキャン方式など、他のスキャン方式を用いても良い。ジグザグスキャン方式以外の場合においても、所定の順序でデータをスキャンする場合に、複数のメモリワードの中ではじめて到達するポインタ値(バイトアドレス)をネクストゼロポインタ値と設定することで、本発明の実施形態と同様の構成及び動作を実現できる。それによって、本発明の実施形態と同様の効果を得ることができる。
本発明の例は、上述の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で、各構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を構成できる。例えば、上述の実施形態に開示される全構成要素から幾つかの構成要素を削除してもよいし、異なる実施形態の構成要素を適宜組み合わせてもよい。
1:解析回路、2:データ復号化装置、3:メモリ、4:逆DCT回路、5:ディスプレイ、10,11:制御回路、12:ポインタレジスタ、23:ネクストゼロポインタ変換部、26:ジグザグスキャン変換部、24:書き込み方式選択部、24A,24B:コンパレータ、27:書き込み制御部、27A:書き込みデータ生成手段、27B:バイトイネーブル信号生成手段。

Claims (5)

  1. レベル値を含んでいる有効データが入力され、ゼロデータ又は前記レベル値に対応する非ゼロデータを、複数のメモリワードを含んでいるメモリに書き込む第1の制御回路と、
    前記メモリワードのそれぞれが含んでいる複数のバイトアドレスに対応する第1のポインタ値を保持し、前記第1のポインタ値を前記第1の制御回路に出力するポインタ保持部と、
    を具備し、
    前記第1の制御回路は、
    前記第1のポインタ値に基づいて、ゼロデータを書き込む位置を示す第2のポインタ値を出力する第1の変換部と、
    前記第2のポインタ値と非ゼロデータを書き込む位置を示す第3のポインタ値とが入力され、前記第2及び第3のポインタ値のうち、所定の書き込みサイクルにおけるデータの書き込みの対象となるいずれか一方を選択し、その選択されたポインタ値をバイトアドレスに変換する第2の変換部と、
    前記第2のポインタ値と前記第3のポインタ値の大きさの比較結果に対応してそれぞれ異なる複数の書き込み方式を有する書き込み制御部と、
    前記第2のポインタ値と前記第3のポインタ値の大きさの比較結果に応じて、前記複数の書き込み方式のうちいずれか1つの書き込み方式を選択する書き込み方式選択部と、
    を有し、
    前記第2のポインタ値は、データの復号化期間中において、前記複数のメモリワードがそれぞれ含んでいる複数のポインタ値の中で、最初に到達するポインタ値を示し、
    前記制御回路は、前記第2のポインタ値と前記第3のポインタ値との大きさを比較し、その比較結果に基づいて、前記非ゼロデータと前記ゼロデータとを前記メモリに順次書き込んでいくことを特徴とするデータ復号化装置。
  2. 前記書き込み制御部は、
    前記第2のポインタ値と前記第3のポインタ値が同じ大きさである場合に、前記選択されたポインタ値に対応するバイトアドレスに、非ゼロデータを書き込み、それと同時に、前記選択されたポインタ値を含んでいる1つのメモリワード内の残りのポインタ値に対応するバイトアドレスに、ゼロデータを書き込む第1の書き込み方式と、
    前記第3のポインタ値が前記第2のポインタ値より大きい場合に、前記選択されたポインタ値を含んでいる1つのメモリワード内の複数のポインタ値にそれぞれ対応するバイトアドレスの全てに、ゼロデータを書き込む第2の書き込み方式と、
    前記第3のポインタ値が前記第2のポインタ値より小さい場合に、前記選択されたポインタ値に対応するバイトアドレスにのみ、非ゼロデータを書き込む第3の書き込み方式と、を有することを特徴とする請求項1に記載のデータ復号化装置。
  3. 前記書き込み方式選択部は、
    前記第3のポインタ値が前記第2のポインタ値以下である場合、“1”レベルの第1の書き込み制御信号を出力し、
    前記第3のポインタ値が前記第2のポインタ値以上である場合、“1”レベルの第2の書き込み制御信号を出力し、
    前記第1及び第2の書き込み制御信号の両方が“1”レベルを示す場合に、前記第1の書き込み方式が選択され、
    前記第1の書き込み制御信号が“1”レベルを示し、前記第2の書き込み制御信号が“0”レベルを示す場合に、前記第2の書き込み方式が選択され、
    前記第1の書き込み制御信号が“0”レベルを示し、前記第2の書き込み制御信号が“1”レベルを示す場合に、前記第3の書き込み方式が選択される、ことを特徴とする請求項2に記載のデータ復号化装置。
  4. 前記書き込み制御部は、
    前記第1の書き込み制御信号が“1”レベルを示す場合に、前記レベル値に対応した非ゼロデータ及びゼロデータを生成し、前記第1の書き込み制御信号が“0”レベルを示す場合に、ゼロデータを生成し、生成された前記非ゼロデータ及び前記ゼロデータを前記メモリに出力する第1の生成手段を有する、ことを特徴とする請求項3に記載のデータ復号化装置。
  5. 前記書き込み制御回路は、
    前記第2の書き込み制御信号が“1”レベルを示す場合に、前記メモリワードが含んでいる複数のポインタに対応するバイトアドレスの全てを有効にし、前記第2の書き込み制御信号が“0”レベルを示す場合に、前記メモリワードが含んでいる複数のポインタのうち、前記第3のポインタ値に対応するバイトアドレスを有効にする第2の生成手段を有する、ことを特徴とする請求項3又は4に記載のデータ復号化装置。
JP2009028799A 2009-02-10 2009-02-10 データ復号化装置 Withdrawn JP2010187115A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009028799A JP2010187115A (ja) 2009-02-10 2009-02-10 データ復号化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009028799A JP2010187115A (ja) 2009-02-10 2009-02-10 データ復号化装置

Publications (1)

Publication Number Publication Date
JP2010187115A true JP2010187115A (ja) 2010-08-26

Family

ID=42767511

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009028799A Withdrawn JP2010187115A (ja) 2009-02-10 2009-02-10 データ復号化装置

Country Status (1)

Country Link
JP (1) JP2010187115A (ja)

Similar Documents

Publication Publication Date Title
US9351003B2 (en) Context re-mapping in CABAC encoder
US9392292B2 (en) Parallel encoding of bypass binary symbols in CABAC encoder
TW583883B (en) System and method for multiple channel video transcoding
JP2010050976A (ja) 組み込み機器において高解像度画像を提供するための方法及び装置
JP2009273106A (ja) エントロピー復号化回路、エントロピー復号化方法、およびパイプライン方式を利用したエントロピー復号化方法
TWI437356B (zh) 壓縮域影像求和裝置、系統和方法
GB2561152A (en) Data processing systems
JP2011023995A (ja) 動画像処理装置およびその動作方法
JP4865662B2 (ja) エントロピー符号化装置、エントロピー符号化方法およびコンピュータプログラム
JP6186429B2 (ja) 情報処理装置、制御方法、プログラム、及び記録媒体
JP2004159330A (ja) ラスタスキャン順序の画像データとブロックスキャン順序の画像データとの間の変換のための画像処理装置及び方法
US8688947B1 (en) Aligned data access
JP6087511B2 (ja) 画像処理装置、画像処理方法
US8280220B2 (en) Reproduction apparatus, data processing system, reproduction method, program, and storage medium
TW201824868A (zh) 視訊解碼系統、視訊解碼方法和相應地計算機存儲介質
JP2007096696A (ja) 画像処理装置及び画像処理方法
JP5182285B2 (ja) デコード方法及びデコード装置
JP2010187115A (ja) データ復号化装置
JP2009130599A (ja) 動画像復号装置
JP4850806B2 (ja) エントロピー符号化装置、エントロピー符号化方法およびコンピュータプログラム
WO2010095181A1 (ja) 可変長復号化装置
JP6377222B2 (ja) 情報処理装置、制御方法、プログラム、及び記録媒体
JP2004328178A (ja) 画像処理装置
JP2010276686A (ja) 画像制御装置
JP2933029B2 (ja) デジタル信号符号化/復号化回路

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20120501