以下に添付図面を参照して、符号化装置および符号化方法、ならびに、復号装置および復号方法の実施形態を詳細に説明する。図1は、各実施形態に適用可能な符号化装置1の一例の構成を概略的に示す。符号化装置1は、入力処理部10、符号化部11および出力処理部12を有する。
入力処理部10は、所定のデータ単位で入力される入力データを、予め定められたサイズのブロックに分割して出力する。換言すれば、当該ブロックは、1単位の入力データを、所定の数だけ含む。一例として、入力データが画素データの場合、当該ブロックは、予め定められた数の画素データを含む。
入力処理部10から出力されたブロックは、符号化部11に供給され、ブロック単位で所定の符号化方式で符号化される。符号化部11でブロックが符号化された符号化データは、出力処理部12に供給される。出力処理部12は、メモリを有し、供給された符号化データをメモリを利用して所定サイズのパケットに詰め込んで、符号化ブロックとして出力する。
<既知の符号化処理>
ここで、理解を容易とするために、本実施形態に係る符号化部11の前提となる符号化処理について説明する。図2は、この前提となる符号化処理を行う既知の符号化部11’の一例の構成を示す。符号化部11’は、減算器100と、量子化部101と、量子化テーブル102と、出力セレクタ103と、局部復号部104とを有する。また、局部復号部104は、逆量子化部110と、加算器111と、局部復号データセレクタ112と、遅延部113とを有する。
符号化部11’の動作について説明する。符号化対象の入力データが、所定のデータ単位で例えばクロックに従い順次、符号化部11’に入力される。この入力データは、減算器100の被減算入力端と、出力セレクタ103の選択入力端103Aと、局部復号データセレクタ112の選択入力端112Aとにそれぞれ入力される。減算器100の減算入力端には、局部復号部104から所定のデータ単位で出力される局部復号データが入力される。減算器100は、入力データから局部復号データを減算して、入力データと局部復号データとの差分の差分データを出力する。減算器100から出力された差分データは、量子化部101に供給される。
量子化部101は、減算部100から供給された差分データを、量子化テーブル102に格納される量子化情報(例えば量子化ステップ)に従い量子化し、データ量を圧縮する。例えば、量子化部101は、供給された差分データのビット数を削減することで、データ量の圧縮を行う。この量子化された差分データは、局部復号部104の逆量子化部110に供給されると共に、出力セレクタ103の選択入力端103Bに入力される。
ここで、図1の入力処理部10は、例えば、ブロック化された入力データを出力する際に、ブロックの先頭に対応するデータ単位のデータのタイミングを示す信号first_wordを生成する。信号first_wordは、例えば、ブロックの先頭に位置するデータ単位のデータのタイミングでハイ状態(High)とされ、その他のタイミングではロー(Low)状態とされる信号である。
出力セレクタ103は、信号first_wordの値に従い、選択入力端103Aおよび103Bのうち一方を選択し、選択された側の入力端に入力されたデータを、符号化データとして符号化部11’から出力する。出力セレクタ103は、例えば信号first_wordがハイ状態であれば選択入力端103Aが選択され、入力データがそのまま符号化データとして出力される。一方、出力セレクタ103は、例えば信号first_wordがロー状態であれば選択入力端103Bが選択され、量子化部101から出力された、量子化された差分データが符号化データとして出力される。
逆量子化部110は、量子化テーブル102に対応した逆量子化テーブル(図示しない)に従い、量子化部101で量子化された差分データを逆量子化し、量子化前の差分データを復元した復元差分データを出力する。逆量子化部110から出力された復元差分データは、加算器111の一方の入力端に入力される。加算器111は、一方の入力端に入力された復元差分データと、後述する遅延部113から1データ単位分遅延されて出力された局部復号データとを加算する。加算器111の加算出力は、局部復号データセレクタ112の選択入力端112Bに入力される。
局部復号データセレクタ112は、信号first_wordの値に従い、選択入力端112Aおよび112Bのうち一方を選択し、選択された側の入力端に入力されたデータを、次の局部復号データとして出力する。局部復号データセレクタ112は、例えば信号first_wordがハイ状態であれば選択入力端112Aが選択され、入力データを次の局部復号データとして出力する。一方、局部復号データセレクタ112は、信号first_wordがロー状態であれば選択入力端112Bが選択され、加算器111の出力を次の局部復号データとして出力する。
局部復号データセレクタ112から出力された次の局部復号データは、遅延部113に供給される。遅延部113は、例えばバッファメモリであって、供給された次の局部復号データを保持する。遅延部113に保持された次の局部復号データは、1データ単位分遅延されて遅延部113から出力され、減算器100の減算入力端に入力されると共に、加算器111の他方の入力端に入力される。
このように、符号化部11’では、入力データの、当該入力データの符号化順で1データ単位前の入力データに基づく復号データ(局部復号データ)に対する差分を量子化部101で量子化して圧縮し、符号化データとして出力する。
このとき、入力データのブロックの先頭に位置するデータ単位のデータのタイミングで信号first_wordをハイ状態とし、その他のタイミングでは信号first_wordをロー状態とする。これにより、ブロックの先頭のデータ毎に、局部復号データとして入力データがそのまま用いられると共に、入力データが符号化データとして出力される。したがって、符号化データは、ブロック毎に、符号化データとして含まれる入力データを基準として復号することができる。
符号化部11’で符号化された符号化データからなる符号化ブロックは、出力処理部12で予め定められた方法に従いパケットに詰め込まれて符号化装置1から出力される。図3は、既知の技術によるパケットの一例の構成を示す。符号化部11’から信号first_wordのハイ状態に応じて出力された符号化データが、データD0として、符号化ブロックの先頭側から詰め込まれる。データD0は、量子化部101において量子化されていない原入力データであって、Nビットのデータ長を有する。データD0の次から、最上位ビットMSB(Most Significant Bit)側に向けて、それぞれMビットのデータ長を有する符号化データC1、C2、…、C(i−2)、C(i−1)が順次、符号化ブロックに詰め込まれていく。符号化ブロックの最上位ビットMSBに存在するデータ長がLビットの領域Fは、符号化方式を決定するための付加情報などが必要に応じて格納され、符号化ブロックの全体のデータ量がTビットとされる。
なお、符号化装置1で符号化した符号化ブロックは、符号化と逆の手順で復号することができる。より具体的には、符号化部11’の局部復号部104に対応する構成を用いて復号処理を行うことができる。すなわち、先ず、符号化ブロックの先頭のデータD0を抽出して遅延部に格納すると共に、復号データとして出力する。次に、符号化ブロックのデータD0の次の符号化データC1を逆量子化部で逆量子化し、逆量子化したデータと、遅延部から出力されたデータD0とを加算して、次の遅延部に格納する。遅延部に格納されたデータを、順次、復号データとして出力する。以降、符号化ブロックにおいて、符号化データC2、…、C(i−2)、C(i−1)について、順次、同様に復号処理が行われる。
この既知の技術による符号化では、各符号化ブロックにおいて、先頭に量子化されていない原入力データが格納され、原入力データに続けて各符号化データが順次格納される。復号時には、各符号化ブロックにおいて、先頭の原入力データがそのまま復号データとして出力され、原入力データに続く符号化データが、原入力データを基準として順次、復号される。
ここで、符号化対象のデータが画像データであって、所定のデータ単位が画素データである場合について考える。この場合、符号化ブロックの先頭には、量子化されていない原画素データが格納され、復号時には、この原画素データがそのまま出力される。そのため、符号化ブロックの先頭毎に量子化誤差が「0」の画素が出現するため、画面に表示させた場合に、この量子化誤差が「0」の画素による符号化ブロック毎の縦縞が現れることになる。
<第1の実施形態>
(第1の実施形態による符号化処理)
次に、第1の実施形態による符号化装置1について説明する。第1の実施形態による符号化装置1は、概略的には、図1に示した符号化装置1と同様の構成を有し、符号化部11が上述した既知の符号化部11’と異なる構成を有する。
以下では、符号化装置1は、画像データが入力データとされ、画像データを、ライン方向に画素単位で符号化するものとする。例えば輝度情報や色差情報による画素データは、隣接データとの相関が高いため、画素間の差分に基づく量子化を行うことで、符号化した際の符号化誤差を小さく抑えることが可能である。
符号化装置1に対して、1ラインの画素データが順次、入力される。画素データは、入力処理部10において、予め定められた画素数毎に分割されて、画素ブロックが形成される。入力処理部10は、1ラインの先頭の画素データを示す信号line_firstを出力する。例えば、入力処理部10は、信号line_firstを、1ラインの先頭の画素データの出力タイミングに対応してハイ状態とし、1ラインの他の画素データの出力タイミングではロー状態とする。また、入力処理部10は、画素ブロックの先頭の画素データを示す信号first_wordを出力する。例えば、入力処理部10は、信号first_wordを、各画素ブロックの先頭の画素データの出力タイミングに対応してハイ状態とし、各画素ブロックの他の画素データの出力タイミングに対応してロー状態とする。
入力処理部10から出力された画素ブロックに含まれる画素データが、順次、符号化部11に供給される。また、符号化部11に供給する画素データに対応する状態の信号line_firstおよび信号first_wordが、入力処理部10から符号化部11に供給される。
符号化部11では、1ラインの画素データを、画素ブロックを単位として符号化する。図4は、第1の実施形態による符号化部11の一例の構成を示す。なお、図4において、上述した図2と共通する部分には同一の符号を付し、詳細な説明を省略する。符号化部11は、減算器100と、量子化部101と、量子化テーブル102と、出力セレクタ120と、局部復号部121とを有する。また、局部復号部121は、逆量子化部110と、加算器111と、局部復号データセレクタ122と、遅延部113とを有する。
符号化部11の動作について説明する。例えばクロックに従いn番目の画素データ(画素データnとする)が符号化部11に供給される。画素データnは、減算器100の被減算入力端と、局部復号データセレクタ122の選択入力端122Aとにそれぞれ入力される。減算器100の減算入力端には、局部復号部121からの、画素データ(n−1)に対応する局部復号データ(局部復号データ(n−1)とする)が入力される。減算器100において、画素データnから局部復号データ(n−1)が減算され、画素データnと局部復号データ(n−1)との差分による差分データ(差分データnとする)が出力される。例えば、減算部100は、入力データとしての画像データnと、局部復号データ(n−1)との差分を出力する差分出力部として機能する。
減算器100から出力された差分データnは、量子化部101に供給され、量子化テーブル102に格納される量子化情報に従い量子化され、データ量を圧縮される。量子化部101は、例えば階調情報を圧縮してビット数を削減することで、データ量を圧縮する。例えば、量子化部101は、差分出力部から出力された差分を圧縮する圧縮部として機能する。量子化された差分データnは、局部復号部121の逆量子化部110に供給されると共に、出力セレクタ120の選択入力端120Bに入力される。
出力セレクタ120は、さらに、選択入力端120Aに対して後述する局部復号データセレクタ122の出力が入力される。出力セレクタ120は、選択入力端120Aおよび120Bを、信号first_wordの状態に従い切り替えて、符号化データを符号化部11から出力する。
より具体的には、出力セレクタ120において、信号first_wordがハイ状態で選択入力端120Aが選択され、局部復号データセレクタ122の出力が符号化データとして出力される。一方、出力セレクタ120において、信号first_wordがロー状態で選択入力端120Bが選択され、量子化部101で量子化された差分データnが符号化データとして符号化部11から出力される。
逆量子化部110は、量子化テーブル102に対応した図示しない逆量子化テーブルに従い、量子化部101で量子化された差分データnを逆量子化してデータ量を伸長し、量子化前の差分データnを復元した復元差分データnを出力する。例えば、逆量子化部110は、圧縮部(量子化部101)で圧縮されたデータを伸長する伸長部として機能する。復元差分データnは、加算器111の一方の入力端に入力される。
加算器111は、他方の入力端に入力される、遅延部113から出力された局部復号データ(n−1)と、復元差分データnとを加算する。加算器111の加算出力は、符号化部11に入力された画像データnの局部復号データ(n−1)に対する差分を量子化したデータを復号した、復号データであって、局部復号データ(n−1)に対する次の局部復号データnである。局部復号データnが局部復号データセレクタ122の選択入力端122Bに入力される。
局部復号データセレクタ122の選択入力端122Aには、上述したように、入力データである画素データnが入力される。局部復号データセレクタ122は、選択入力端122Aおよび122Bを、信号line_firstの状態に従い切り替える。
より具体的には、局部復号データセレクタ122において、信号line_firstがハイ状態で選択入力端122Aが選択され、入力データとして入力された画素データnが、上述の局部復号データnとして局部復号データセレクタ122から出力される。一方、局部復号データセレクタ122において、信号line_firstがロー状態で選択入力端122Bが選択され、加算器111から出力された次の局部復号データnが局部復号データセレクタ122から出力される。
例えば、局部復号セレクタ122は、入力データとしての画像データnと、加算器111の出力とのうち一方を選択する第2の選択部として機能する。また、例えば、出力セレクタ120は、局部復号データセレクタ122において選択入力端122Bが選択されている場合に、加算器111の出力と、圧縮部(量子化部101)の出力とのうち一方を選択する第1の選択部として機能する。
局部復号データセレクタ122から出力された次の局部復号データnは、遅延部113に供給され保持されると共に、上述したように、出力セレクタ120の選択入力端120Aに入力される。遅延部113に保持される次の局部復号データnは、入力データとして次の画素データ(n+1)が減算器100の被減算入力端に入力されるタイミングと同期して、減算器100の減算入力端と、加算器111の他方の入力端とに入力される。
符号化部11において、出力セレクタ120から出力された画素データ毎の符号化データは、順次、出力処理部12に供給される。出力処理部12は、供給された符号化データを予め定められたサイズのパケットに詰め込んで、符号化ブロックとして出力する出力部として機能する。
図5は、第1の実施形態によるパケットの一例の構成を示す。この例では、パケットは、全体が予め定められたサイズのTビットのデータ長を有し、図の右側が先頭、左側が後端となっている。例えば、出力処理部12が持つフリップフロップ(Flip Flop)といった記憶素子に符号化ブロックが保持され、パケットが構成される。このとき、符号化ブロックの先頭および後端がそれぞれ最下位ビットLSB(Least Significant Bit)および最上位ビットMSB とされる。
Nビットのデータ長を有するデータD0’が、符号化ブロック内の予め定められた位置から詰め込まれる。この例では、データD0’は、符号化ブロックの最下位ビットLSBから詰め込まれるものとする。データD0’としては、上述の信号line_firstおよび信号first_wordの状態に応じて、ラインの先頭の画素データと、画素ブロックの先頭の画素データに対応する局部復号データとのうち何れかが用いられる。
図6を用いて、信号line_firstおよび信号first_wordの状態と、出力処理部12の出力との関係について説明する。図6(a)は、クロックを示し、例えばクロック毎に1の画素データが符号化部11に入力されるものとする。図6(b)および図6(c)は、それぞれ信号line_firstおよび信号first_wordの状態を示す。図6(d)は、出力処理部12から出力される符号化データを示す。なお、この例では、1のパケット(符号化ブロック)が、時間CLで出力されるものとする。
信号line_firstがハイ状態、且つ、信号first_wordがハイ状態の場合、図4に示す局部復号データセレクタ122において選択入力端122Aが選択されると共に、出力セレクタ120において選択入力端120Aが選択される。したがって、出力セレクタ120から、符号化データとして、ラインの先頭の符号化されていない原画素データが出力され、この原画素データがデータD0’として用いられる。図6(d)に例示するパケット#1が、先頭のデータD0’にライン先頭の画素データを含む符号化ブロックが格納されるパケットとなる。
信号line_firstがロー状態、且つ、信号first_wordがハイ状態の場合、図4に示す局部復号データセレクタ122において選択入力端122Bが選択されると共に、出力セレクタ120において選択入力端120Aが選択される。したがって、出力セレクタ120から、符号化データとして画素ブロックの先頭の画素データに対応する局部復号データが出力され、この局部復号データがデータD0’として用いられる。局部復号データは、原画素データと同様に、データサイズがNビットとされている。図6(d)に例示するパケット#2、パケット#3、…が、先頭のデータD0’に画素ブロック先頭の画素データに対応する局部復号データが格納されるパケットとなる。
信号line_firstがロー状態、且つ、信号first_wordがロー状態の場合、図4に示す局部復号データセレクタ122において選択入力端122Bが選択されると共に、出力セレクタ120において選択入力端120Bが選択される。したがって、出力セレクタ120から、符号化データとして量子化部101で量子化された差分データが出力される。この量子化差分データによる符号化データは、図5に、データD0’に続く符号化データC1、C2、…、C(i−2)、C(i−1)として示されるように、MSB側に向けて順次、符号化ブロックに詰め込まれていく。なお、符号化データC1、C2、…、C(i−2)、C(i−1)は、それぞれMビットのデータ長を有する。
符号化ブロックの最上位ビットMSBに存在するデータ長がLビットの領域Fは、符号化方式を決定するための付加情報などが必要に応じて格納され、符号化ブロックの全体のデータ量がTビットとされる。
符号化ブロックのデータ長のTビットは、例えば符号化装置1から出力された符号化ブロックが記憶されるメモリに使用される記憶素子の記憶単位に合わせて決定すると好ましい。例えば、DRAM などの記憶素子は、記憶単位が128ビットや256ビットであることが多いので、例えばTビット=128ビットというように設定する。
(第1の実施形態による復号処理)
次に、第1の実施形態に適用可能な復号装置について、図7を用いて説明する。図7において、復号装置2は、上述した符号化部11を有する符号化装置1で符号化された画像データを復号するもので、入力処理部20、復号部21および出力処理部22を有する。入力処理部20に対して、それぞれ図5を用いて説明した構成の符号化ブロック#0、#1、#2、…、#N−1が時系列に沿って順次入力される。なお、符号化ブロック#0は、ライン先頭の画素データを含む符号化ブロックであるものとする。
入力処理部20は、入力された符号化ブロックからデータD0’、符号化データC1、C2、…、C(i−2)、C(i−1)を切り出して順次出力する。このとき、入力処理部20は、各符号化ブロック#0、#1、#2、…、#N−1が入力されると、それぞれの先頭データD0’に対応して信号first_wordをハイ状態とする。信号first_wordは、先頭データD0’の出力が終了すると、ロー状態とされる。信号first_wordは、例えば制御信号に含められて復号部21に供給される。
なお、入力処理部20は、ライン先頭の符号化ブロック#0を、例えば外部から供給される制御信号(図示しない)に基づき知ることができる。これに限らず、上述した図5の符号化ブロックの先頭に、当該符号化ブロックがラインの先頭であるか否かを示す識別情報を付加することもできる。符号化ブロックのデータ長は、Tビットに固定されているので、ライン先頭の符号化ブロック#0を特定することで、ライン先頭以外の各符号化ブロック#1、#2、…、#N−1の先頭を容易に求めることができる。さらに、各符号化ブロックの先頭を示すストローブ信号を外部から供給してもよい。
入力処理部20から出力されたデータD0’、符号化データC1、C2、…、C(i−2)、C(i−1)は、クロックに従い、順次、復号部21に供給される。なお、以下では、特に記載のない限り、データD0’、符号化データC1、C2、…、C(i−2)、C(i−1)を、纏めて符号化データと呼ぶ。
復号部21は、出力セレクタ200、逆量子化部201、量子化テーブル202、加算器203および遅延部204を有し、上述した符号化部11と略逆の処理を行うことで、符号化データを復号する。
復号部21に入力された符号化データは、出力セレクタ200の選択入力端200Aに入力されると共に、逆量子化部201に供給される。逆量子化部201は、逆量子化テーブル202に格納される例えば逆量子化ステップといった量子化情報に基づき、入力された符号化データを逆量子化し、符号化時に量子化部101で圧縮されたデータ量を伸長する。例えば、逆量子化部201は、逆量子化された符号化データを伸長する伸長部として機能する。データ量を伸長された符号化データは、加算器203の一方の入力端に入力される。加算器203の他方の入力端には、遅延部204の出力が入力される。加算器203は、一方の入力端に入力された逆量子化された符号化データと、他方の入力端に入力された遅延部204の出力とを加算して復号データを得る。
加算器203から出力された復号データは、出力セレクタ200の選択入力端200Bに入力される。出力セレクタ200は、信号first_wordの状態に応じて選択入力端200Aおよび200Bのうち一方を選択する。出力セレクタ200は、信号first_wordがロー状態で選択入力端200Bを選択し、加算器203の出力を復号データとして出力する。
一方、出力セレクタ200は、信号first_wordがハイ状態で選択入力端200Aを選択し、入力された符号化データを復号データとして復号部21から出力する。この場合、入力された符号化データがライン先頭の符号化ブロック#0におけるデータD0’であれば、原画素データが復号データとして出力される。また、入力された符号化データがライン先頭以外の符号化ブロック#1、#2、…、#N−1であれば、局部復号データが復号データとして出力される。
また、出力セレクタ200から出力された復号データは、出力処理部22に供給されると共に、遅延部204にも供給される。遅延部204は、供給されたデータを、例えば入力に対して1クロック分遅延させて出力する。例えば、遅延部204は、復号データを記憶する記憶部として機能する。また、出力セレクタ200は、復号部21に入力された符号化データと、加算器203(加算部)から出力された復号データとのうち一方を復号データとして選択して記憶部に記憶させる選択部として機能する。遅延部204から出力された復号データは、上述したように、加算器203の他方の入力端に入力される。
出力処理部22は、出力セレクタ200から供給された復号データを、所定のフォーマットに整形して、この復号装置2から出力する。
このように、第1の実施形態による復号装置2では、先頭に原画素データまたは局部復号データを埋め込まれた符号化ブロックを復号する。その際に、符号化ブロックに含まれる原画素データおよび局部復号データをそのまま出力し、その他の符号化データについては、逆量子化して1クロック前の復号データを加算する復号処理を行って出力している。
このとき、ライン先頭の符号化ブロック以外の符号化ブロックの先頭に含まれる局部復号データは、復号部21における逆量子化と遅延部204の出力の逆量子化結果に対する加算とによる復号処理と同様の処理を経て生成されたデータであって、当該復号処理を行った復号データと同等の量子化誤差を有する。そのため、例えば復号データに基づく画面表示を行った場合の、量子化誤差の違いによる画素ブロック単位の縦縞の発生を抑制することができる。
また、各符号化ブロックに復号の基準となるデータ(原画素データまたは局部復号データ)が含まれるので、エラーからの復元を符号化ブロック単位で行うことができる。
<第2の実施形態>
次に、第2の実施形態について説明する。上述した第1の実施形態では、復号装置2は、復号データを1系統すなわち単相で出力していた。これに対して、第2の実施形態では、復号装置は、復号データを2系統すなわち2相で出力することを可能としている。例えば、符号化ブロックを、奇数番目の符号化ブロックと、偶数番目の符号化ブロックに分けて、互いに並列的に復号処理を行うことで、復号された画像ブロックの出力を、単相で復号処理を行う場合に対して2倍の速度で実行することが可能となる。
図8は、2相出力を可能とする復号装置3の一例の構成を示す。復号装置3は、上述の第1の実施形態による符号化部11を持つ符号化装置1で符号化した画像データを復号する。図8から分かるように、復号装置3は、図7を用いて説明した、上述の第1の実施形態による復号装置2を2つ用いて構成される。すなわち、復号装置3は、入力処理部20Aおよび20Bと、復号部21Aおよび21Bと、出力処理部22’とを有する。なお、図8において、図7と共通する部分には同一の符号を付して、詳細な説明を省略する。
図5を用いて説明した構成の符号化ブロック#0、#1、#2、…、#N−1が、復号対象の入力データとして復号装置3に入力される。このとき、第1の実施形態による単相で復号データを出力する場合に対して、2倍の速度で入力データが入力される。図9は、2相出力に対応する符号化データの例を示す。図9(a)は、クロックを示す。図9(d)は、復号装置3に入力される符号化データを示す。
図9(d)に例示されるように、2相出力に対応した符号化データは、各符号化ブロック#0、#1、#2、…が、上述の図6(d)で示した単相出力に対応する符号化データの半分の時間(CL/2)で、復号装置3に入力される。例えば、第1の実施形態による符号化部11を含む符号化装置1から出力された符号化データを図示されないメモリに書き込む。このメモリからの符号化データの読み出しを、書き込み速度の2倍の速度で行う。
信号line_firstおよび信号first_wordは、図9(b)および図9(c)にそれぞれ示されるように、復号装置3に入力される各符号化ブロック(パケット#1、#2、…)の先頭のタイミングに従い生成または供給される。
入力処理部20Aは、復号装置3に入力された符号化ブロック#0、#1、#2、…、#N−1のうち、偶数番目の符号化ブロック#0、#2、…、すなわち、ラインの先頭の画素データを含む符号化ブロック#0から一つおきに符号化ブロックを選択する。そして、選択された各符号化ブロックが入力されると、先頭のデータD0’に対応して信号first_wordをそれぞれハイ状態とする。信号first_wordは、先頭データD0’の出力が終了すると、ロー状態とされる。信号first_wordは、例えば制御信号に含められて復号部21Aに供給される。
一方、入力処理部20Bは、復号装置3に入力された符号化ブロック#0、#1、#2、…、#N−1のうち奇数番目の符号化ブロック#1、#3、…を選択する。そして、選択された各符号化ブロックが入力されると、先頭のデータD0’に対応して信号first_wordをそれぞれハイ状態とする。信号first_wordは、先頭データD0’の出力が終了すると、ロー状態とされる。信号first_wordは、例えば制御信号に含められて復号部21Bに供給される。
なお、第1の実施形態と同様に、入力処理部20A、20Bは、ライン先頭の符号化ブロック#0を、例えば外部から供給される制御信号(図示しない)に基づき知ることができる。これに限らず、上述した図5の符号化ブロックの先頭に、当該符号化ブロックがラインの先頭であるか否かを示す識別情報を付加することもできる。符号化ブロックのデータ長は、Tビットに固定されているので、ライン先頭の符号化ブロック#0を特定することで、ライン先頭以外の各符号化ブロック#1、#2、…、#N−1の先頭を容易に求めることができる。さらに、各符号化ブロックの先頭を示すストローブ信号を外部から供給してもよい。
復号部21Aは、入力処理部20Aから供給された偶数番目の符号化ブロック#0、#2、…の復号処理を行う。このとき、各符号化ブロック#0、#2、…の先頭のデータD0’は、入力処理部20Aから供給される信号first_wordに従い判別する。同様に、復号部21Bは、入力処理部20Bから供給された奇数番目の符号化ブロック#1、#3、…の復号処理を、入力処理部20Bからの信号first_wordを用いて行う。
これら復号部21Aおよび21Bにおける復号処理は、図7を用いて説明した復号部21における復号処理と同様にして実行可能である。すなわち、復号部21Aに入力される偶数番目の符号化ブロック#0、#2、…、ならびに、復号部21Bに入力される奇数番目の符号化ブロック#1、#3、…には、それぞれ先頭に局部復号データ(ライン先頭の符号化ブロック#0には原画素データそのもの)が格納されている。
したがって、第2の実施形態による復号装置3において、復号部21Aおよび21Bは、それぞれ独立して各符号化ブロックを復号処理することができ、復号部21Aによる復号処理と、復号部21Bによる復号処理とを並行して実行可能である。
復号部21Aおよび21Bから出力された復号データは、それぞれ出力処理部22’に供給される。出力処理部22’は、供給された復号データを画素毎に並べ替えて、ライン上の偶数番目の画素の復号データと、奇数番目の画素の復号データとに分ける。そして、偶数番目の画素の復号データと、奇数数番目の画素の復号データとを、別の系統で出力し、画像データの2相出力を得る。
<第3の実施形態>
次に、第3の実施形態について説明する。第3の実施形態は、上述した第1の実施形態による、符号化部11を含む符号化装置1と、復号装置2とを画像処理部を有する画像処理装置に適用した例である。図10は、第3の実施形態による画像処理装置300の一例の構成を示す。ここでは、画像処理装置300の例として、デジタルテレビジョン放送を受信してハイビジョン画像をディスプレイに映出させる、デジタルテレビジョン受像機を適用している。なお、図10において、上述の図1、図4および図7と共通する部分には同一の符号を付して、詳細な説明を省略する。
画像処理装置300は、チューナ310、画像処理部311およびディスプレイ312を有する。チューナ310は、デジタルテレビジョン放送を受信して受信信号をデコードし、画像データおよび音声データ、ならびに、付随データを出力する。以下では、第3の実施形態の主旨と直接的な関わりがないので、音声データおよび付随データに関する説明を省略する。
チューナ310から出力された画像データは、画像処理部311に供給される。画像処理部311は、供給された画像データに対して、メモリ321を用いて所定の画像処理を施す。画像処理部311が行う画像処理の種類は、特に限定されないが、エンハンス処理、フレームレート変換処理、色調調整処理、解像度変換処理など、様々に考えられる。
一例として、画像処理部311は、チューナ310から供給された画像データを、メモリインターフェイス(I/F)320を介して一旦メモリ321に格納する。そして、メモリ321から、メモリI/F320を介して画像データを読み出しつつ例えば画素単位で画像データに対して画像処理を施す。画像処理が施された画像データは、画像処理部311からメモリI/F320を介して順次メモリ321に書き込まれる。
画像処理部311で画像処理された画像データは、ディスプレイ312に供給される。例えば、画像処理部311は、画像処理が終了した画像データを、メモリI/F320を介してメモリ321に書き込む。1フレーム分の画像処理が終了すると、画像処理部311は、メモリ321からメモリI/F320を介して画像データを読み出して、ディスプレイ312に供給する。ディスプレイ312は、供給された画像データに基づく画像を表示する。
このような画像処理装置300の構成において、メモリI/F320に対して、第1の実施形態による、符号化部11を含む符号化装置1と、復号装置2とを適用する。より具体的には、図10に例示されるように、メモリI/F320は、符号化装置1を構成する入力処理部10、符号化部11および出力処理部12と、復号装置2を構成する入力処理部20、復号部21および出力処理部22とを有する。
画像処理部311から、例えばライン単位で画素順次に出力された画像データがメモリI/F320に供給され、入力処理部10に入力される。入力処理部10は、入力された画像データを予め定められた画素数毎に分割して画素ブロックを形成する。それと共に、入力処理部10は、信号line_firstおよび信号first_wordを、画素ブロックおよび画素ブロック内の画素データの位置に応じてそれぞれハイ状態またはロー状態にして出力する。このとき、入力処理部10は、ラインの先頭を示す情報を、例えば画像処理部311から取得することができる。
入力処理部10から出力された画素ブロックと、信号line_firstおよび信号first_wordとが符号化部11に入力される。符号化部11は、図4を用いて説明したようにして、画素ブロックの画素データを符号化して符号化ブロックを生成する。このとき、信号line_firstおよび信号first_wordに基づき、ラインの先頭の画素データを含む画素ブロックを符号化した符号化ブロックの先頭の符号化データとして原画素データそのものを用いる。また、それ以外の各画素ブロックを符号化した符号化ブロックの先頭の符号化データとして局部復号データを用いる。符号化部11から出力された符号化データは、出力処理部12で予め定められたサイズのパケットに詰め込まれてメモリI/F320から出力される。メモリI/F320から出力された符号化ブロックのパケットは、メモリ321に書き込まれる。
画像処理部311からメモリI/F320に対して、メモリ321に記憶された画像データ(符号化ブロック)の読み出しが指示される。メモリI/F320は、この指示に従い、メモリ321から符号化ブロックを読み出し、入力処理部20に入力する。このとき、入力処理部20は、ラインの先頭や各符号化ブロックの先頭を示す情報を、例えば画像処理部311から取得することができる。
入力処理部20は、入力された符号化ブロックから符号化データを取り出して順次、復号部21に供給すると共に、信号first_wordを所定の状態にして出力する。復号部21は、入力された符号化データを、信号first_wordの状態に応じて選択して、符号化ブロックの先頭に格納される符号化データをそのまま復号データとして出力し、その他の符号化データを逆量子化した後復号順で1つ前の符号化データと加算して復号データを生成する。この復号データは、出力処理部22により所定のフォーマットに整形され、メモリI/F320から画像処理部311に供給される。
このように、第1の実施形態による符号化部11および復号部21を、画像処理部311がアクセスするメモリ321のメモリI/F320に組み込んで用いることで、メモリ321に格納される画像データのサイズを圧縮することができる。また、符号化は、画素単位で行われるので、高速な処理が可能である。さらに、ラインの先頭以外の符号化ブロックの先頭に局部復号データを格納しているので、符号化ブロックを復号した復号データによる画面表示を行っても、一定間隔で量子化誤差が「0」の画素データが出現することが防がれ、より高画質の画像を得ることができる。さらに、各符号化ブロックに復号の基準となるデータ(原画素データまたは局部復号データ)が含まれるので、例えばメモリ321からの読み出しエラーなどに対して、符号化ブロック単位で復元を行うことができる。
なお、上述では、第3の実施形態に単相出力に対応した復号装置2を適用したが、これはこの例に限定されない。すなわち、第3の実施形態に対して、第2の実施形態による2相出力を行う復号装置3を適用することも可能である。この場合、復号装置3は、2相LVDS(Low voltage differential signaling)に対応した2相出力を得ることができる。