JP2012129785A - 可変長符号化装置及び可変長復号化装置 - Google Patents

可変長符号化装置及び可変長復号化装置 Download PDF

Info

Publication number
JP2012129785A
JP2012129785A JP2010279270A JP2010279270A JP2012129785A JP 2012129785 A JP2012129785 A JP 2012129785A JP 2010279270 A JP2010279270 A JP 2010279270A JP 2010279270 A JP2010279270 A JP 2010279270A JP 2012129785 A JP2012129785 A JP 2012129785A
Authority
JP
Japan
Prior art keywords
value
variable length
data
difference value
variable
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
JP2010279270A
Other languages
English (en)
Inventor
Hiroshi Nagaoka
寛史 長岡
Yasuhiro Watabe
康弘 渡部
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010279270A priority Critical patent/JP2012129785A/ja
Publication of JP2012129785A publication Critical patent/JP2012129785A/ja
Withdrawn legal-status Critical Current

Links

Abstract

【課題】最適な可変長符号化テーブルの選択に要する演算量を削減する。
【解決手段】画像を小領域毎に可変長符号化する装置は、小領域に含まれる画素における、画素値と予測画素値との間の差分値、を算出する算出部と、前記算出部により算出された差分値の中から、絶対値が所定値となる差分値を所定差分値として取得する取得部と、前記取得部により取得された所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択部と、前記選択部により選択された可変長符号化テーブルを用いて、前記算出部により算出された差分値を可変長符号化する可変長符号化部と、を備える。
【選択図】図1A

Description

本発明は、可変長符号化装置及び可変長復号化装置に関する。
可変長符号化に関する技術として、例えば、次のような技術が知られている。
入力デジタル情報信号を予測符号化することにより発生した残差信号がブロック化されてから、第1の可変長符号化手段としてのADRCエンコーダにより量子化される。ADRCエンコーダの出力がビットプレーン符号化回路によりビットプレーンに分解される。ADRCエンコーダでは、ダイナミックレンジDRに応じてブロックの割当てビット数が可変される。各ビットプレーンの中の0ビット割当てのブロックが検出され、そのブロックのデータが除外される。そして、第2の可変長符号化手段としての可変長エンコーダにより符号化されて伝送される。
特開平09−102744号公報
デジタル画像の圧縮では、一般的に、画像を4×4画素、8×8画素、16×16画素等といった小領域ブロックに分割し、小領域ブロック毎に可変長符号化を行う。このとき、画像は小領域ブロック毎に特徴が異なるため、発生する差分値にも小領域ブロック毎にばらつきが生じる。そこで、予め複数種類の可変長符号化テーブルを用意しておき、小領域ブロック毎に最適な可変長符号化テーブルを選択して可変長符号化を行うことにより、符号化効率を上げる手法が採用されている。この手法を採用する場合には、符号化データと共に、選択した可変長符号化テーブルの識別情報(例えばテーブル番号等)を送ることにより、復号側においても、その識別情報に応じて可変長符号化テーブルを選択することができる。これにより、送られた符号化データを完全に復号化することができる。
しかしながら、この手法を採用する場合には、符号化後の全体の符号量が最小になるような最適な可変長符号化テーブルを選択するために、全ての可変長符号化テーブルの各々について、符号化後の全体の符号量を計算する必要がある。そのため、最適な可変長符号化テーブルの選択に要する演算量が多くなる、という問題があった。
本発明は、上記実情に鑑み、最適な可変長符号化テーブルの選択に要する演算量を削減することができる、可変長符号化装置、可変長符号化方法、可変長復号化装置、可変長復号化方法を提供することを目的とする。
装置の一観点によれば、画像を小領域毎に可変長符号化する装置であって、算出部、取得部、選択部、及び可変長符号化部を備える可変長符号化装置が提供される。ここで、算出部は、小領域に含まれる画素における、画素値と予測画素値との間の差分値、を算出する。取得部は、前記算出部により算出された差分値の中から、絶対値が所定値となる差分値を所定差分値として取得する。選択部は、前記取得部により取得された所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する。可変長符号化部は、前記選択部により選択された可変長符号化テーブルを用いて、前記算出部により算出された差分値を可変長符号化する。
装置の他の一観点によれば、画像の符号化データを前記画像の小領域毎に可変長復号化する装置であって、取得部、選択部、及び可変長復号化部を備える可変長復号化装置が提供される。ここで、取得部は、前記小領域毎の、小領域に含まれる画素の画素値と予測画素値との間の差分値の絶対値が所定値となる所定差分値と可変長符号とを有する小領域符号化データを含む、前記画像の符号化データを取得する。選択部は、前記取得部により取得された符号化データの小領域符号化データに含まれる所定差分値のデータに応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する。可変長復号化部は、前記選択部により選択された可変長符号化テーブルを用いて、前記小領域符号化データに含まれる可変長符号を可変長復号化する。
方法の一観点によれば、画像を小領域毎に可変長符号化する方法であって、算出工程、取得工程、選択工程、及び可変長符号化工程を含む可変長符号化方法が提供される。ここで、算出工程は、小領域に含まれる画素における、画素値と予測画素値との間の差分値、を算出する。取得工程は、前記算出工程により算出された差分値の中から、絶対値が所定値となる差分値を所定差分値として取得する。選択工程は、前記取得工程により取得された所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する。可変長符号化工程は、前記選択工程により選択された可変長符号化テーブルを用いて、前記算出工程により算出された差分値を可変長符号化する。
方法の他の一観点によれば、画像の符号化データを前記画像の小領域毎に可変長復号化する方法であって、取得工程、選択工程、及び可変長復号化工程を含む可変長復号化方法が提供される。ここで、取得工程は、前記小領域毎の、小領域に含まれる画素における、画素値と予測画素値との間の差分値、の絶対値が所定値となる差分値である所定差分値のデータと、可変長符号のデータとを含む小領域符号化データを含む、前記画像の符号化データを取得する。選択工程は、前記取得工程により取得された符号化データの小領域符号化データに含まれる所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する。可変長復号化工程は、前記選択工程により選択された可変長符号化テーブルを用いて、前記小領域符号化データに含まれる可変長符号を可変長復号化する。
開示の装置及び方法は、最適な可変長符号化テーブルの選択に要する演算量を削減することができる、という効果を奏する。
実施例1に係る可変長符号化装置の構成例を示す図である。 実施例1に係る可変長符号化装置の構成例を示す図である。 予測画素値の作成方法の一例を示す図である。 (a) は第1の種類の可変長符号化テーブルの生成手順を示す図、(b) は第2の種類の可変長符号化テーブルの生成手順を示す図、(c) は第3の種類の可変長符号化テーブルの生成手順を示す図である。 確率分布(x0=0、γ=1.5のコーシー分布)をグラフ化した図である。 (a) は差分値の絶対値の最大値を9とした場合の、S103での再計算を行う前後での確率分布を示す図、(b) は差分値の絶対値の最大値を5とした場合の、S103での再計算を行う前後での確率分布を示す図である。 差分値の絶対値の最大値を5とした場合(図5(b) に示した場合)に対して生成された第1の種類の可変長符号化テーブルを示す図である。 実施例1に係る可変長符号化装置が符号化対象画像を小領域毎に可変長符号化するときの動作を示すフローチャートである。 実施例1に係る可変長符号化装置が符号化対象画像を小領域毎に可変長符号化するときの動作を示すフローチャートである。 設定可能な小領域サイズを模式的に示す図である。 16×16画素の小領域毎に、差分最大値が求められ、その差分最大値に応じて可変長符号化テーブルが選択される様子を概念的に示す図である。 S414で形成される符号化対象画像の符号化データのデータ構造の一例を示す図である。 実施例1に係る可変長復号化装置の構成例を示す図である。 実施例1に係る可変長復号化装置の構成例を示す図である。 実施例1に係る可変長復号化装置が符号化データを画像の小領域毎に可変長復号化するときの動作を示すフローチャートである。 実施例1に係る可変長復号化装置が符号化データを画像の小領域毎に可変長復号化するときの動作を示すフローチャートである。 実施例2に係る可変長符号化装置の構成例を示す図である。 実施例2に係る可変長符号化装置の構成例を示す図である。 小領域における各画素の位置情報の一例を説明する図である。 符号化モード判定部が符号量Aと符号量Bを求める場合の一例を説明するための図である。 実施例2に係る可変長符号化装置が符号化対象画像を小領域毎に可変長符号化するときの動作を示すフローチャートである。 実施例2に係る可変長符号化装置が符号化対象画像を小領域毎に可変長符号化するときの動作を示すフローチャートである。 (a),(b) は、S618で形成される符号化対象画像の符号化データのデータ構造の一例を示す図である。 実施例2に係る可変長復号化装置の構成例を示す図である。 実施例2に係る可変長復号化装置の構成例を示す図である。 実施例2に係る可変長復号化装置が符号化データを画像の小領域毎に可変長復号化するときの動作を示すフローチャートである。 実施例2に係る可変長復号化装置が符号化データを画像の小領域毎に可変長復号化するときの動作を示すフローチャートである。 実施例2に係る可変長復号化装置が符号化データを画像の小領域毎に可変長復号化するときの動作を示すフローチャートである。 実施例2に係る可変長復号化装置が符号化データを画像の小領域毎に可変長復号化するときの動作を示すフローチャートである。
[実施例1]
本発明の実施例1に係る可変長符号化装置は、符号化対象画像を小領域毎に可変長符号化する装置であって、小領域毎に、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択し、その可変長符号化テーブルを用いて可変長符号化を行う。
図1A及び図1Bは、本実施例に係る可変長符号化装置の構成例を示す図である。
図1A及び図1Bに示したように、本実施例に係る可変長符号化装置は、メモリ101、差分値計算部102、予測画素値作成部103、テーブル記憶部104、105、106、セレクター(SEL)107、データ形成部108、及び全体制御部109を含む。ここで、差分値計算部102は算出部の一例である。セレクター107は選択部の一例である。テーブル記憶部104、105、106は可変長符号化部の一例である。データ形成部108は、データ形成部の一例である。
メモリ101は、符号化対象画像の画像データを格納する。また、全体制御部109から入力される、処理対象画素を指定する画素要求信号に応じて、対応する画素データを出力する。なお、本実施例では、符号化対象画像の各画素の画素値が0から255までの8bitで表現されるものとする。
予測画素値作成部103は、メモリ101から入力される画素データを用いて、処理対象画素における予測画素値を作成し、予測画素値を出力する。なお、予測画素値は、例えば、PNG(Portable Network Graphics)等で使用されるPAETH法を用いて、作成することができる。これについては、図2を用いて後述する。
差分値計算部102は、メモリ101から入力される画素データと予測画素値作成部103から入力される予測画素値とを用いて、処理対象画素値と予測画素値との間の差分値、を計算する。そして、差分値が、テーブル記憶部104、105、106、及び、全体制御部109へ出力される。
なお、本実施例に係る可変長符号化装置は、上記のとおり、符号化対象画像を小領域毎に可変長符号化する。各小領域の可変長符号化においては、小領域の各画素の差分値を求める処理を2回行う。1回目の処理は、小領域の可変長符号化に用いる可変長符号化テーブルを選択するために行なわれる。2回目の処理は、選択された可変長符号化テーブルを用いて実際に小領域の可変長符号化を行うために行なわれる。そのため、1回目の処理により差分値計算部102からテーブル記憶部104、105、106へ出力される差分値は無効とされる。
テーブル記憶部104は、複数の第1の種類の可変長符号化テーブルを記憶する。また、テーブル記憶部104は、差分値計算部102から入力される差分値に応じて、第1の種類の可変長符号化テーブル毎に、対応する可変長符号のデータを出力する。なお、複数の第1の種類の可変長符号化テーブルは、小領域内の画素を処理対象画素として計算された差分値の中でその絶対値の最大値が0から閾値A未満までの各々の値の場合に対応して生成されたテーブルである。ここで、閾値Aは、小領域内の画像が高い相関性を持つ場合における差分値の臨界値であり、第1の閾値の一例である。この第1の種類の可変長符号化テーブルの生成方法については、図3(a) を用いて後述する。
テーブル記憶部105は、複数の第2の種類の可変長符号化テーブルを記憶する。また、テーブル記憶部105は、差分値計算部102から入力される差分値のデータに応じて、対応する可変長符号を有する第2の種類の可変長符号化テーブル毎に、対応する可変長符号のデータを出力する。なお、第2の種類の可変長符号化テーブルは、小領域内の画素を処理対象画素として計算された差分値の中でその絶対値の最大値が閾値Aから閾値B未満までの各々の値の場合に対応して生成されたテーブルである。ここで、閾値Bは、小領域内の画像が高い相関性を持たない場合における差分値の臨界値であり、第2の閾値の一例である。この第2の種類の可変長符号化テーブルの生成方法については、図3(b) を用いて後述する。
テーブル記憶部106は、第3の種類の可変長符号化テーブルを記憶し、差分値計算部102から入力される差分値に応じて、対応する可変長符号又はエスケープ符号を出力する。但し、エスケープ符号のデータが出力されるとき、差分値も出力される。なお、この差分値は、正負を表す符号bitと0から255までを表現可能な8bitの、合計9bitの固定長のデータである。なお、第3の種類の可変長符号化テーブルは、小領域内の画素を処理対象画素として計算された差分値の中でその絶対値の最大値が閾値B以上である場合に対応して生成されたテーブルである。この第3の種類の可変長符号化テーブルの生成方法については、図3(c) を用いて後述する。
セレクター107は、全体制御部109から入力されるテーブル選択情報のデータに応じて、テーブル記憶部104、105からの一つの入力、又は、テーブル記憶部106からの入力を選択し、選択した入力からのデータを出力する。このように、セレクター107は、テーブル選択情報に応じて選択した入力からのデータを出力することで、可変長符号化に使用するテーブルを選択する。
データ形成部108は、セレクター107から入力される小領域毎のデータと、全体制御部109から入力される小領域毎の最大値、最小値、又は閾値Bのデータとに基づいて、小領域毎の符号化データを生成する。また、生成した各小領域の符号化データを用いて、符号化対象画像の符号化データを形成する。なお、このようにして形成された符号化対象画像の符号化データはデータ形成部108により出力され、例えば、本実施例に係る可変長符号化装置により外部へ送信される。
図1Bに示す全体制御部109は、本実施例に係る可変長符号化装置の全体動作を制御する。例えば、符号化対象画像を小領域毎に可変長符号化する際に、各小領域での処理対象画素に応じて、対応する画素要求信号がメモリ101に出力される。
全体制御部109は、最大値格納FF(FlipFlop)111、最小値格納FF(FlipFlop)112、比較器113、114、115、及びセレクター(SEL)116を含む。また、全体制御部109は、更に、閾値A格納FF(FlipFlop)117、閾値B格納FF(FlipFlop)118、及びテーブル選択部119を含む。ここで、テーブル選択部119は取得部の一例である。
比較器113は、差分値計算部102から入力される差分値と、最大値格納FF111から入力される最大値とを比較する。ここで、比較器113は、差分値が最大値よりも大きい場合に限り、この時の差分値のデータを最大値格納FF111に格納させる信号を出力する。
最大値格納FF111は、比較器113から入力される信号が、この時の差分値を最大値格納FF111に格納させる信号である場合には、この時に差分値計算部102から入力される差分値を最大値として格納する。また、最大値格納FF111は、格納している最大値を出力する。
比較器114は、差分値計算部102から入力される差分値と、最小値格納FF112から入力される最小値とを比較する。ここで、比較器114は、差分値が最小値よりも小さい場合に限り、この時の差分値を最小値格納FF112に格納させる信号を出力する。
最小値格納FF112は、比較器114から入力される信号が、この時の差分値を最小値格納FF112に格納させる信号である場合には、この時に差分値計算部102から入力される差分値を最小値として格納する。また、最小値格納FF112は、格納している最小値を出力する。
比較器115は、最大値格納FF111から入力される最大値と、最小値格納FF112から入力される最小値とを比較する。ここで、比較器115は、最大値の絶対値が最小値の絶対値以上の場合には、セレクター116に最大値格納FF111からの入力を選択させる信号を出力する。一方、最大値の絶対値が最小値の絶対値未満の場合には、セレクター116に最小値格納FF112からの入力を選択させる信号を出力する。
セレクター116は、比較器115から入力される信号が、セレクター116に最大値格納FF111からの入力を選択させる信号である場合には、最大値格納FF111からの入力を選択し、選択した入力からのデータを出力する。一方、比較器115から入力される信号が、セレクター116に最小値格納FF112からの入力を選択させる信号である場合には、最小値格納FF112からの入力を選択し、選択した入力からのデータを出力する。
なお、セレクター116から出力されるデータのうち、後述のテーブル選択部119により実際に使用されるデータは、テーブル選択部119がテーブル選択情報を生成するための処理を開始する時にセレクター116から出力されているデータである。
閾値A格納FF117は、外部から入力される閾値Aを格納し、閾値Aを出力する。なお、閾値Aは、上記のとおり、小領域内の画像が高い相関性を持つ場合における差分値の臨界値である。この閾値Aは、例えば、自然画像を対象とした実験により求めることができる。実験によれば、高い相関性を持つ小領域内の画像で求められた差分値の約9割が10未満であったため、本実施例では、この実験値である10を閾値Aとして使用する。
閾値B格納FF118は、外部から入力される閾値Bを格納し、閾値Bを出力する。なお、閾値Bは、上記のとおり、小領域内の画像が高い相関性を持たない場合における差分値の臨界値である。この閾値Bも、例えば、自然画像を対象とした実験により求めることができる。本実施例では、実験により得られた実験値である32を閾値Bとして使用する。
テーブル選択部119は、小領域の符号化に使用する可変長符号化テーブルを、テーブル記憶部104、105、106に記憶されている複数の可変長符号化テーブルの中から選択するためのテーブル選択情報を生成する。例えば、セレクター116から入力される最大値又は最小値のデータと、閾値A格納FF117から入力される閾値Aと、閾値B格納FF118から入力される閾値Bとに基づいて、そのテーブル選択情報を生成する。そして、生成したテーブル選択情報をセレクター107へ出力する。また、テーブル選択部119は、セレクター116から入力される最大値又は最小値のデータを、データ形成部108へ出力する。但し、テーブル選択部119は、その最大値又は最小値の絶対値が閾値B以上である場合には、閾値Bをデータ形成部108へ出力する。
図2は、予測画素値作成部103による予測画素値の作成方法の一例を示す図である。ここでは、PNG等で使用されるPAETH法を用いて予測画素値を作成する例を示す。
図2に示したように、この例の方法では、処理対象画素をXとし、その左側、上側、左上側に隣接する3つの画素をa、b、cとすると、処理対象画素Xにおける予測画素値を、その3つの隣接画素a、b、cの画素値を用いて求める。例えば、3つの隣接画素a、b、cの画素値を用いて、図2に示す計算式に従って、その3つの隣接画素a、b、cの何れかの画素値を予測画素値として作成する。なお、処理対象画素が符号化対象画像の画像端画素となる場合には、計算に必要な隣接画素が存在しない。そこで、このような場合には、存在しない隣接画素の画素値を128として隣接画素を補間し、その上で予測画素値の作成を行う。
図3(a) は、テーブル記憶部104に記憶される第1の種類の可変長符号化テーブルの生成手順を示す図である。図3(b) は、テーブル記憶部105に記憶される第2の種類の可変長符号化テーブルの生成手順を示す図である。図3(c) は、テーブル記憶部106に記憶される第3の種類の可変長符号化テーブルの生成手順を示す図である。
図3(a) に示したように、第1の種類の可変長符号化テーブルは、次のようにして生成される。
自然画像の隣接画素間の差分値は、一般的に正規分布に従うとされている。また、実験により、各種の分布の中でコーシー分布が、符号量の削減という観点から、最も適していることが確認された。そこで、ここでは、その正規分布としてコーシー分布を用い、その分布関数を、差分値の出現確率(生起確率)を表す確率分布関数とする(S101)。但し、そのコーシー分布の分布関数(図3(a) 参照)においては、最頻値を与えるx0の値を0とし、半値半幅を与えるγの値を1.5とする(S102)。なお、このような値を採用する理由は、次のような理由による。すなわち、全ての差分値の平均は0に収束する傾向があるので、最頻値を与えるx0の値を0と仮定した。また、小領域内の画像が高い相関性を持つ場合には半値半幅を与えるγの値を1.5にするのが、符号量の削減という観点から、最も適していたことが実験により確認された。そのため、最頻値を与えるx0の値を0とし、半値半幅を与えるγの値を1.5とした。そして、このようなパラメータの下で確率分布を計算する。図4は、このときの確率分布(x0=0、γ=1.5のコーシー分布)をグラフ化した図である。横軸は差分値を示し、縦軸は差分値の出現確率を示す。なお、本実施例では、このようにして確率分布を計算しているが、確率分布の計算は、このような手法に限定されるものではない。
次に、差分値の絶対値の最大値を0から閾値A未満までの各値とし、その各々に対して、上記のパラメータ(x0=0、γ=1.5)の下で計算された確率分布(以下「第1の確率分布」という)から、次のような確率分布(以下「第2の確率分布」という)を求める。すなわち、第1の確率分布において、上記の差分値の絶対値の最大値で定まる、差分値の最小値から最大値までの範囲の確率合計が1となるように、その第1の確率分布を再計算することにより、第2の確率分布を求める(S103)。なお、本実施例では、上記のとおり、閾値Aを10としていることから、0から閾値A未満までの各値は、0から10未満までの各値、すなわち、0、1、2・・・7、8、9の各値となる。また、差分値の絶対値の最大値で定まる、差分値の最小値から最大値までの範囲とは、例えば、差分値の絶対値の最大値を7とした場合には、差分値の最小値から最大値までの範囲が−7から+7の範囲となる。また、第1の確率分布において、差分値の絶対値の最大値で定まる、差分値の最小値から最大値までの範囲の確率合計が1となるように、その第1の確率分布を再計算するとは、次のようなことをいう。例えば、差分値の最小値から最大値までの範囲が−7から+7までの範囲であり、第1の確率分布におけるその範囲の確率合計が0.7であった場合には、その範囲の確率合計が1になるように、その第1の確率分布を再計算することをいう。また、このような第1の確率分布の再計算は、第1の確率分布における差分値の最大値及び最小値が、作成される第1の種類の可変長符号化テーブルにおいて可変長符号が割り当てられる差分値の最大値及び最小値になるように、行われるものでもある。
図5(a),(b) は、一例として、差分値の絶対値の最大値を9と5とした場合の、S103での再計算を行う前後での確率分布を示す図である。
図5(a) は、差分値の絶対値の最大値を9とした場合(−9から+9までの差分値の範囲の場合)における再計算前後の確率分布を示す。この場合には、第1の確率分布において、−9から+9までの差分値の範囲における確率合計が1になるように、第1の確率分布を再計算することにより、第2の確率分布が求められる。これにより、−9から+9までの差分値の範囲における確率合計が、再計算前では0.900554であったのに対し再計算後では1となる。
図5(b) は、差分値の絶対値の最大値を5とした場合(−5から+5までの差分値の範囲の場合)における再計算前後の確率分布を示す。この場合には、第1の確率分布において、−5から+5までの差分値の範囲における確率合計が1になるように、第1の確率分布を再計算することにより、第2の確率分布が求められる。これにより、−5から+5までの差分値の範囲における確率合計が、再計算前では0.831071であったのに対し再計算後では1となる。
このようにして、差分値の絶対値の最大値が0から閾値A未満までの各値に対して、第2の確率分布が求められると、次に、その各値に対して、対応する第2の確率分布を用いて第1の種類の可変長符号化テーブルとなるハフマンテーブルを生成する(S104)。これにより、差分値の絶対値の最大値が0から閾値A未満までの各値に対して、その差分値の絶対値の最大値で定まる、差分値の最小値から最大値までの範囲の各差分値に対して可変長符号が割り当てられた第1の種類の可変長符号化テーブルが生成される。
図6は、一例として、差分値の絶対値の最大値を5とした場合(図5(b) に示した場合)に対して生成された第1の種類の可変長符号化テーブルを示す図である。
図6に示したように、この第1の種類の可変長符号化テーブルでは、差分値の絶対値の最大値(5)で定まる、−5から+5までの範囲の各差分値に対して可変長符号が割り当てられる。
このような図3(a) に示した手順により、差分値の絶対値の最大値が0から閾値Aまでの各値に対して第1の種類の可変長符号化テーブルが生成される。すなわち、合計で10個の第1の種類の可変長符号化テーブルが生成される。そして、それらがテーブル記憶部104に記憶される。
図3(b) に示したように、第2の種類の可変長符号化テーブルは、次のようにして生成される。
まず、S101と同様に、正規分布としてコーシー分布を用い、その分布関数を、差分値の出現確率を表す確率分布関数とする(S201)。但し、そのコーシー分布の分布関数(図3(a) 参照)においては、最頻値を与えるx0の値を0とし、半値半幅を与えるγの値を4.0とする(S202)。なお、このような値を採用する理由は、次のような理由による。すなわち、全ての差分値の平均は0に収束する傾向があるので、S102と同様に、最頻値を与えるx0の値を0と仮定した。また、小領域内の画像が高い相関性を持たない場合には半値半幅を与えるγの値を4.0にするのが、符号量の削減という観点から、最も適していたことが実験により確認された。そのため、最頻値を与えるx0の値を0とし、半値半幅を与えるγの値を4.0とした。そして、このようなパラメータの下で確率分布を計算する。
次に、差分値の絶対値の最大値を閾値Aから閾値B未満までの各値とし、その各々に対して、上記のパラメータ(x0=0、γ=4.0)の下で計算された確率分布(以下「第3の確率分布」という)から、次のような確率分布(以下「第4の確率分布」という)を求める。すなわち、第3の確率分布において、上記の差分値の絶対値の最大値で定まる、差分値の最小値から最大値までの範囲の確率合計が1となるように、その第3の確率分布を再計算することにより、第4の確率分布を求める(S203)。なお、本実施例では、上記のとおり、閾値Aを10、閾値Bを32としていることから、閾値Aから閾値B未満までの各値は、10から32未満までの各値、すなわち、10、11、12・・・29、30、31の各値となる。また、このような第3の確率分布の再計算は、第3の確率分布における差分値の最大値及び最小値が、作成される第2の種類の可変長符号化テーブルにおいて可変長符号が割り当てられる差分値の最大値及び最小値になるように、行われるものでもある。
次に、その各値に対して、対応する第4の確率分布を用いて可変長符号化テーブルとなるハフマンテーブルを生成する(S204)。これにより、差分値の絶対値の最大値が閾値Aから閾値B未満までの各値に対して、その差分値の絶対値の最大値で定まる、差分値の最小値から最大値までの範囲の各差分値に対して可変長符号が割り当てられた可変長符号化テーブルが生成される。
次に、S204で生成された各可変長符号化テーブルにおいて、割り当てられている一部の可変長符号を、次のように入れ換える(S205)。差分値の最大値と、それよりも短い符号長の可変長符号が割り当てられている差分値であって且つ差分値の最大値付近の差分値との間で、割り当てられている可変長符号を入れ換える。また、差分値の最小値と、それよりも短い符号長の可変長符号が割り当てられている差分値であって且つ差分値の最小値付近の差分値との間で、割り当てられている可変長符号を入れ換える。
ここで、差分値の最大値との間で行われる可変長符号の入れ換えは、例えば次のようにして行うことができる。まず、差分値の最大値と、差分値の最大値−1の差分値との間で、割り当てられている可変長符号の符号長を比較する。ここで、差分値の最大値よりも差分値の最大値−1の差分値の符号長が短い場合には、両者の間で可変長符号の入れ換えを行う。一方、両者の間で符号長が等しい場合には、次に、差分値の最大値と、差分値の最大値−2の差分値との間で、割り当てられている可変長符号の符号長を比較する。ここで、差分値の最大値−2の差分値の符号長が短い場合には、両者の間で可変長符号の入れ換えを行う。一方、両者の間で符号長が等しい場合には、次に、差分値の最大値と、差分値の最大値−3の差分値との間で、割り当てられている可変長符号の符号長を比較する。以下、可変長符号の入れ換えを行うまで同様の手順を繰り返す。差分値の最小値との間で行われる可変長符号の入れ換えについても、同様にして行うことができる。
なお、このような可変長符号の入れ換えを行う理由は、次のような理由による。選択された可変長符号化テーブルにおいて、差分値の最大値又は最小値は必ず可変長符号化されるが、差分値の最大値又は最小値付近の差分値は符号化されない場合もある。このような場合に、必ず可変長符号化される差分値に対して、より短い可変長符号を割り当てておくことにより、可変長符号化後の全体の符号量を減らすことができるからである。
そして、このような可変長符号の入れ換えを行った後の各可変長符号化テーブルを、第2の種類の可変長符号化テーブルとする。
このような図3(b) に示した手順により、差分値の絶対値の最大値が閾値Aから閾値Bまでの各値に対して第2の種類の可変長符号化テーブルが生成される。すなわち、合計で22個の第2の種類の可変長符号化テーブルが生成される。そして、それらがテーブル記憶部105に記憶される。
図3(c) に示したように、第3の種類の可変長符号化テーブルは、次のようにして生成される。
まず、S201と同様に、正規分布としてコーシー分布を用い、その分布関数を、差分値の出現確率を表す確率分布関数とする(S301)。但し、そのコーシー分布の分布関数(図3(a) 参照)においては、S202と同様に、最頻値を与えるx0の値を0とし、半値半幅を与えるγの値を4.0とする(S302)。なお、このような値を採用する理由は、S202の説明で述べた理由と同様である。そして、このようなパラメータの下で確率分布を計算する。
なお、ここでは、γの値を4.0とするが4.0を超える値とすることも可能である。
次に、上記のパラメータ(x0=0、γ=4.0)の下で計算された確率分布において、差分値の絶対値が閾値B以上となる差分値に対してエスケープを使用する(S303)。なお、本実施例では、上記のとおり、閾値Bを32としていることから、差分値の絶対値が閾値B以上となる差分値とは、−255から−32までの差分値と+32から+255までの差分値となる。
次に、そのようなエスケープが使用された確率分布を用いて、可変長符号化テーブルとなるハフマンテーブルを生成する(S304)。
次に、S304で生成された可変長符号化テーブルにおいて、エスケープに割り当てられている可変長符号と、それよりも短い符号長の可変長符号が割り当てられている差分値で且つ閾値B付近の差分値に割り当てられている可変長符号とを入れ換える(S305)。
なお、上記のエスケープ符号は、最終的にエスケープに割り当てられている可変長符号のことをいう。このように、可変長符号化テーブルにエスケープ符号を用いることは、テーブルサイズを一定以下に抑えるのに有効である。
また、S305で行われる可変長符号の入れ換えは、例えば、上記のS205で説明した手順と同様の手順で行うことができる。また、このような可変長符号の入れ換えを行う理由も、上記のS205で説明した理由と同様である。
そして、このような可変長符号の入れ換えを行った後の可変長符号化テーブルを、第3の種類の可変長符号化テーブルとする。
このような図3(c) に示した手順により、第3の種類の可変長符号化テーブルが生成される。そして、それがテーブル記憶部106に記憶される。
次に、このような構成を有する本実施例に係る可変長符号化装置の動作を説明する。
図7A及び図7Bは、本実施例に係る可変長符号化装置が符号化対象画像を小領域毎に可変長符号化するときの動作を示すフローチャートである。
図7A及び図7Bに示したように、本動作が開始すると、まず、全体制御部109は、符号化対象画像を小領域毎に可変長符号化する際の小領域サイズを設定する(S401)。本実施例では、小領域サイズを、16×16画素、8×8画素、又は4×4画素の何れかの小領域サイズに設定することが可能である。図8は、このときに設定可能な小領域サイズを模式的に示す図である。
次に、符号化対象画像を、S401で設定された小領域サイズに応じた小領域毎に可変長符号化する処理を行う(S402乃至S413)。
なお、本実施例では、このような小領域毎の処理を次のような小領域の順番で行うものとする。まず、画像の左上の小領域から水平方向に順に処理を行い、それを終えると、一つ下の左側の小領域から再び水平方向に順に処理を行う。以降は、画像の右下の小領域まで、そのような水平方向に順に行う処理を垂直方向に順に繰り返す。
例えば、S402乃至S413の処理が次のようにして行われる。
まず、符号化対象画像の処理対象とする小領域に含まれる画素毎に、画素値と予測画素値との間の差分値を算出し、その中から、差分値の絶対値が最大となる差分値(以下、「差分最大値」ともいう)を求める(S402)。具体的には、これが次のようにして行われる。まず、全体制御部109は、最大値格納FF111と最小値格納FF112をクリアする。次に、全体制御部109は、処理対象画素に応じた画素要求信号をメモリ101へ出力する。メモリ101は、全体制御部109から入力される画素要求信号に応じて、対応する画素データを出力する。予測画素値作成部103は、メモリ101から入力される画素データを用いて予測画素値を作成し、そのデータを出力する。差分値計算部102は、メモリ101から入力される画素データと予測画素値作成部103から入力される予測画素値のデータとを用いて、処理対象画素における、画素値と予測画素値との間の差分値を算出し、そのデータを出力する。比較器113は、差分値計算部102からの差分値のデータと最大値格納FF111からの最大値のデータとを比較し、差分値が最大値よりも大きい場合には、この時の差分値のデータを最大値格納FF111が格納する。また、比較器114は、差分値計算部102からの差分値のデータと最小値格納FF112からの最小値のデータとを比較し、差分値が最小値よりも小さい場合には、この時の差分値のデータを最小値格納FF112が格納する。また、比較器115は、最大値格納FF111からの最大値のデータと、最小値格納FF112からの最小値のデータとを比較する。ここで、最大値の絶対値が最小値の絶対値以上の場合には、セレクター116が最大値格納FF111からの入力を選択し、選択した入力からのデータを出力する。一方、そうでない場合には、セレクター116が最小値格納FF112からの入力を選択し、選択した入力からのデータを出力する。そして、このような処理を、処理対象とする小領域に含まれる全画素に対して行う。そうすると、その全画素に対する処理が終了した時点においてセレクター116が出力するデータは、差分最大値のデータとなる。
次に、テーブル選択部119が、セレクター116からの差分最大値と、閾値A格納FF117からの閾値Aとを用いて、差分最大値の絶対値が閾値A未満であるか否かを判定する(S403)。ここで、その判定結果がYesの場合には、テーブル選択部119が、可変長符号が割り当てられている差分値が差分最大値と一致する第1の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する(S404)。なお、可変長符号化テーブルにおいて、可変長符号が割り当てられている差分値の最大値及び最小値を差分値の終端ともいう。また、S404では、テーブル選択部119が、生成したテーブル選択情報のデータをセレクター107へ出力する。これにより、セレクター107は、このときのテーブル選択情報のデータに応じて、テーブル記憶部104からの複数の入力の中の一つを選択し、選択した入力からのデータを出力するようになる。また、S404では、テーブル選択部119が、差分最大値をデータ形成部108へ出力する。
一方、S403の判定結果がNoの場合には、テーブル選択部119が、閾値B格納FF118からの閾値Bのデータを更に用いて、差分最大値の絶対値が閾値B未満であるか否かを判定する(S405)。ここで、その判定結果がYesの場合には、テーブル選択部119が、可変長符号が割り当てられている差分値が差分最大値と一致する第2の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する(S406)。また、S406では、テーブル選択部119が、そのテーブル選択情報のデータをセレクター107へ出力する。これにより、セレクター107は、このときのテーブル選択情報のデータに応じて、テーブル記憶部105からの複数の入力の中の一つを選択し、選択した入力からのデータを出力するようになる。また、S406では、テーブル選択部119が、差分最大値をデータ形成部108へ出力する。
一方、S405の判定結果がNoの場合には、テーブル選択部119が、第3の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する(S407)。また、S407では、テーブル選択部119が、そのテーブル選択情報をセレクター107へ出力する。これにより、セレクター107は、このときのテーブル選択情報のデータに応じて、テーブル記憶部106からの入力を選択し、選択した入力からのデータを出力するようになる。また、S407では、テーブル選択部119が、閾値Bのデータをデータ形成部108へ出力する。
S404、S406、又はS407の後は、生成されたテーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象とする小領域を画素毎に可変長符号化する処理を行う(S408乃至S410)。
なお、本実施例では、このような画素毎の処理を次のような画素の順番で行うものとする。まず、小領域の左上の画素から水平方向に順に処理を行い、それを終えると、一つ下の左側の画素から再び水平方向に順に処理を行う。以降は、小領域の右下の画素まで、そのような水平方向に順に行う処理を垂直方向に順に繰り返す。
例えば、S408乃至S410の処理が次のようにして行われる。
テーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象画素の差分値を可変長符号化する(S408)。まず、全体制御部109は、処理対象画素に応じた画素要求信号をメモリ101へ出力する。メモリ101は、全体制御部109から入力される画素要求信号に応じて、対応する画素データを出力する。予測画素値作成部103は、メモリ101から入力される画素データを用いて予測画素値を作成し、そのデータを出力する。差分値計算部102は、メモリ101から入力される画素データと、予測画素値作成部103から入力される予測画素値のデータとを用いて、画素値と予測画素値との間の差分値を算出し、そのデータを出力する。そして、テーブル記憶部104、105の各々は、差分値計算部102から入力される差分値のデータに応じて、対応する可変長符号を有する可変長符号化テーブル毎に、対応する可変長符号のデータを出力する。また、テーブル記憶部106は、差分値計算部102から入力される差分値のデータに応じて、対応する可変長符号又はエスケープ符号のデータを出力する。但し、エスケープ符号のデータを出力する際には、その時に入力された差分値のデータも出力する。セレクター107は、テーブル選択部119から入力されるテーブル選択情報のデータに応じて、テーブル記憶部104、105からの一つの入力、又は、テーブル記憶部106からの入力を選択し、選択した入力からのデータをデータ形成部108へ出力する。これにより、テーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象画素の差分値が可変長符号化され、そのデータ(可変長符号のデータ、又は、エスケープ符号及び差分値のデータ)が、データ形成部108へ出力される。
このようにして、処理対象画素の差分値の可変長符号化が終了すると、次に、処理対象とする小領域に含まれる全画素の差分値の可変長符号化を終了したか否かを判定する(S409)。ここで、その判定結果がNoの場合には、処理対象とする小領域において、処理対象画素を次の画素に変更する(S410)。すなわち、処理対象画素位置を更新する。S410の後は、S408へ戻り、以降は、S409の判定結果がYesになるまで、上記のS408乃至S410の処理を繰り返す。
一方、S409の判定結果がYesの場合には、データ形成部108は、処理対象とする小領域の符号化データを生成する(S411)。この符号化データは、差分最大値、及び、各画素の差分値の符号化データを含む。ここで、差分最大値は、S404、S405、又はS407において、テーブル選択部119から入力された、差分最大値又は閾値Bのデータである。また、各画素の差分値の符号化データは、上記のS408乃至S410の処理が繰り返される毎にセレクター107から入力されたデータである。
次に、符号化対象の画像に含まれる全小領域の可変長符号化を終了したか否かを判定する(S412)。ここで、その判定結果がNoの場合には、処理対象とする小領域を次の小領域に変更する(S413)。すなわち、処理対象とする小領域を更新する。S413の後は、S402へ戻り、以降は、S412の判定結果がYesになるまで、上記のS402乃至S413の処理を繰り返す。
図9は、このような処理の繰り返しにより、16×16画素の小領域毎に、差分最大値が求められ、その差分最大値に応じて可変長符号化テーブルが選択される様子を概念的に示す図である。このように、小領域毎に、可変長符号化テーブルが選択され、選択された可変長符号化テーブルを用いて変長符号化が行われる。
一方、S412の判定結果がYesの場合には、データ形成部108は、符号化対象画像の符号化データを形成する(S414)。この符号化対象画像の符号化データは、小領域サイズのデータと各小領域の符号化データとを含む。ここで、小領域サイズのデータは、S401で設定された小領域サイズのデータである。また、各小領域の符号化データは、上記のS402乃至S413の処理が繰り返される毎にS411で生成された小領域の符号化データである。そして、符号化対象画像の符号化データの形成が終了すると、本フローが終了する。なお、このようにして形成された符号化対象画像の符号化データは、データ形成部108により出力され、例えば、本実施例に係る可変長符号化装置により外部へ送信される。
図10は、S414で形成される符号化対象画像の符号化データのデータ構造の一例を示す図である。
図10に示したように、符号化対象画像の符号化データは、はじめに小領域サイズのデータが配置され、以降は、各小領域の符号化データが、処理された順番に配置される(図10の小領域0、1、・・・、Mを参照)。各小領域の符号化データは、はじめに、差分最大値のデータとして、差分最大値又は閾値Bのデータが配置される。また、それ以降は、各画素の差分値の符号化データが、処理された順番に配置される(図10の画素位置0、1、・・・、Nを参照)。
ここで、小領域サイズは、2bitの固定長データで表される。例えば、4×4画素の小領域サイズは「00」の2bitデータで表され、8×8画素の小領域サイズは「01」の2bitデータで表され、16×16画素の小領域サイズは「11」の2bitデータで表される。
また、各小領域の符号化データにおいて、差分最大値は、正負を表す符号bitと0から閾値B(32)までを表現可能な6bitの、合計7bitの固定長データで表される。なお、符号bitは、正の符号を「0」の1bitデータで表し、負の符号を「1」の1bitデータで表す。このように、本実施例では、差分最大値のデータとして、符号bitを除くと、0から閾値Bまでの値を表現可能な6bitのデータが有ればよく、0から255までの値を表現可能な8bitのデータを必要としない。従って、符号化対象画像の符号化データの符号量を、より削減することが可能である。
また、各小領域の符号化データにおいて、各画素の差分値の符号化データは、差分値の可変長符号のデータ、又は、エスケープ符号及び差分値である。ここで、差分値の可変長符号のデータは、可変長データである。また、エスケープ符号及び差分値は、エスケープ符号が可変長データであり、差分値のデータが9bit(符号bit+8bit)の固定長データである。なお、固定長データは、固定長符号のデータともいい、可変長データは、可変長符号のデータともいう。
以上のように、本実施例に係る可変長符号化装置によれば、符号化対象画像を小領域毎に可変長符号化する際に、その小領域毎に使用する可変長符号化テーブルを、次のようにして選択することにより、最適な可変長符号化テーブルを選択することができる。例えば、小領域に含まれる各画素における差分値の中で、その絶対値が最大となる差分値(差分最大値)に応じて、可変長符号化テーブルが選択されることで、最も符号量を少なくする可変長符号化テーブルが選択される。従って、従来のように、可変長符号化テーブルを選択する際に、複数の可変長符号化テーブルの各々を用いた場合の可変長符号化後の符号量を全て計算する、といった処理は不要となる。そのため、可変長符号化テーブルの選択に要する演算量が削減される。また、並列化や動作周波数の増大といった改変が不要となるため、回路構成が複雑になることもない。
また、第2の種類の可変長符号化テーブルでは、図3(b) のS205により、差分値の最大値に割り当てられている可変長符号が、その差分値の最大値周辺に割り当てられている可変長符号よりも、符号長が短くなっている。また、差分値の最小値に割り当てられている可変長符号が、その差分値の最小値周辺に割り当てられている可変長符号よりも、符号長が短くなっている。さらに、第3の種類の可変長符号化テーブルでは、図3(c) のS305により、エスケープに割り当てられている可変長符号(エスケープ符号)が、閾値B付近の差分値に割り当てられている可変長符号よりも、符号長が短くなっている。そのため、小領域の画像が、例えばエッジ領域を含む画像のように、大きな差分値が連続して存在する画像であって、その小領域が第2又は第3の種類の可変長符号化テーブルを用いて可変長符号化が行われた場合には、符号化後の符号量を、より減らすことができる。
次に、本実施例に係る可変長符号化装置によって符号化された符号化データ(図7BのS414で形成された符号化データ)を復号化する、本実施例に係る可変長復号化装置について説明する。
本実施例に係る可変長復号化装置は、符号化データを画像の小領域毎に可変長復号化する装置であって、小領域毎に、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択し、その可変長符号化テーブルを用いて可変長復号化を行う。
図11A及び図11Bは、本実施例に係る可変長復号化装置の構成例を示す図である。
図11A及び図11Bに示したように、本実施例に係る可変長復号化装置は、メモリ201、固定長/可変長切出部202、テーブル記憶部203、204、205、セレクター(SEL)206、画素復元部207、全体制御部208を含む。ここで、固定長/可変長切出部202は取得部の一例である。セレクター206は選択部の一例である。テーブル記憶部203、204、205は可変長復号化部の一例である。画素復元部207は復元部の一例である。
メモリ201は、本実施例に係る可変長符号化装置により符号化された符号化データ(図7BのS414で形成された符号化データ)を格納する。
固定長/可変長切出部202は、メモリ201に格納されている符号化データを取得する。また、固定長/可変長切出部202は、符号化データから、固定長符号のデータである小領域サイズのデータを切り出し、それを全体制御部208へ出力する。
また、固定長/可変長切出部202は、小領域サイズのデータを切り出した後に、全体制御部208から入力される固定長情報又は可変長情報のデータに応じて、残りの符号化データから固定長符号又は可変長符号のデータを、順次切り出す。切り出す固定長符号のデータは、小領域毎の差分最大値のデータであり、切り出す可変長符号のデータは、画素毎の差分値の可変長符号又はエスケープ符号のデータである。なお、これらのデータの切り出し位置は、セレクター206から入力される符号長のデータに基づいて決定することができる。また、固定長/可変長切出部202は、切り出した固定長符号のデータを全体制御部208へ出力し、切り出した可変長符号のデータをテーブル記憶部203、204、205へ出力する。
また、固定長/可変長切出部202は、切り出した可変長符号のデータを出力する毎に、画素更新信号を全体制御部208へ出力する。また、固定長/可変長切出部202は、セレクター206からエスケープのデータが入力されると、そのエスケープに係る可変長符号(エスケープ符号)に続く固定長符号のデータ(閾値B以上だった場合の差分値のデータ)を符号化データから切り出す。そして、その切り出したデータを画素復元部207へ出力する。
テーブル記憶部203は、複数の第1の種類の可変長符号化テーブルを記憶する。なお、この複数の第1の種類の可変長符号化テーブルは、本実施例に係る可変長符号化装置のテーブル記憶部104に記憶されている複数の第1の種類の可変長符号化テーブルと同じである。テーブル記憶部203は、固定長/可変長切出部202から入力される可変長符号のデータ(差分値の可変長符号又はエスケープ符号のデータ)に応じて、対応する差分値を有する第1の種類の可変長符号化テーブル毎に、対応する差分値のデータを出力する。また、テーブル記憶部203は、固定長/可変長切出部202から入力される可変長符号のデータから、その可変長符号の符号長を求め、その符号長のデータをセレクター206へ出力する。
テーブル記憶部204は、複数の第2の種類の可変長符号化テーブルを記憶する。なお、この複数の第2の種類の可変長符号化テーブルは、本実施例に係る可変長符号化装置のテーブル記憶部105に記憶されている複数の第2の種類の可変長符号化テーブルと同じである。テーブル記憶部204は、固定長/可変長切出部202から入力される可変長符号のデータ(差分値の可変長符号又はエスケープ符号のデータ)に応じて、対応する差分値を有する第2の種類の可変長符号化テーブル毎に、対応する差分値のデータを出力する。また、テーブル記憶部204は、固定長/可変長切出部202から入力される可変長符号のデータから、その可変長符号の符号長を求め、その符号長のデータをセレクター206へ出力する。
テーブル記憶部205は、第3の種類の可変長符号化テーブルを記憶する。なお、この第3の種類の可変長符号化テーブルは、本実施例に係る可変長符号化装置のテーブル記憶部106に記憶されている第3の種類の可変長符号化テーブルと同じである。テーブル記憶部205は、固定長/可変長切出部202から入力される可変長符号のデータ(差分値の可変長符号又はエスケープ符号のデータ)に応じて、対応する差分値又はエスケープのデータを出力する。また、テーブル記憶部205は、固定長/可変長切出部202から入力される可変長符号のデータから、その可変長符号の符号長を求め、その符号長のデータをセレクター206へ出力する。
セレクター206は、全体制御部208から入力されるテーブル選択情報のデータに応じて、テーブル記憶部203、204、205からの複数の入力の中の一部を選択する。例えば、テーブル選択情報のデータに応じて、テーブル記憶部203からの符号長のデータに係る入力と、テーブル記憶部203からの差分値のデータに係る複数の入力の中の一つとを選択する。或いは、テーブル選択情報のデータに応じて、テーブル記憶部204からの符号長のデータに係る入力と、テーブル記憶部204からの差分値のデータに係る複数の入力の中の一つとを選択する。若しくは、テーブル選択情報のデータに応じて、テーブル記憶部205からの入力を選択する。そして、選択した入力からのデータを出力する。ここで、セレクター206は、選択した入力からの符号長のデータを、固定長/可変長切出部202へ出力する。また、セレクター206は、選択した入力からの差分値のデータを画素復元部207へ、又は、選択した入力からのエスケープのデータを画素復元部207と固定長/可変長切出部202へ、出力する。
画素復元部207は、入力されるデータに基づいて画素(画素値)を復元する。具体的には、セレクター206から入力される差分値と、全体制御部208から入力される画素位置のデータとに基づいて、その画素位置の画素(画素値)を復元する。或いは、セレクター206から入力されるエスケープのデータと、固定長/可変長切出部202から入力される差分値のデータと、全体制御部208から入力される画素位置のデータとに基づいて、その画素位置の画素(画素値)を復元する。なお、このようにして復元された画素(画素値)のデータ(画素データ)は、画素復元部207により出力され、例えば、所定のメモリに格納される。
全体制御部208は、本実施例に係る可変長復号化装置の全体動作を制御する。また、全体制御部208は、小領域サイズ格納FF(FlipFlop)211、セレクター(SEL)212、画素位置格納FF(FlipFlop)213、差分最大値格納FF(FlipFlop)214を含む。また、全体制御部208は、更に、閾値A格納FF(FlipFlop)215、閾値B格納FF(FlipFlop)216、テーブル選択部217を含む。
小領域サイズ格納FF211は、固定長/可変長切出部202から入力される小領域サイズを格納し、小領域サイズをセレクター212へ出力する。
セレクター212は、小領域サイズ格納FF211から入力される小領域サイズのデータと、画素位置格納FF213から入力される画素位置のデータとに基づいて、固定長情報又は可変長情報のデータを生成し、そのデータを固定長/可変長切出部202へ出力する。ここで、固定長情報は、次に切り出すデータが固定長符号のデータであることを示す情報である。また、可変長情報は、次に切り出すデータが可変長符号のデータであることを示す情報である。なお、符号化データのデータ構造は図10に示したように予め定められているので、小領域サイズのデータと画素位置のデータとに基づいて、次に切り出すデータが固定長符号のデータであるのか、可変長符号のデータであるのかを、決定することが可能である。
画素位置格納FF213は、復号化対象(処理対象)の画素位置のデータを格納し、そのデータをセレクター212及び画素復元部207へ出力する。また、画素位置格納FF213は、固定長/可変長切出部202から入力される画素更新信号に基づいて、格納している復号化対象の画素位置のデータを更新する。
差分最大値格納FF214は、固定長/可変長切出部202から入力される差分最大値のデータを格納する。また、そのデータをテーブル選択部217へ出力する。
閾値A格納FF215は、外部から入力される閾値Aを格納する。また、そのデータをテーブル選択部217へ出力する。
閾値B格納FF216は、外部から入力される閾値Bを格納する。また、そのデータをテーブル選択部217へ出力する。
テーブル選択部217は、小領域の復号化に使用する可変長符号化テーブルを、テーブル記憶部203、204、205に記憶されている複数の可変長符号化テーブルの中から選択するためのテーブル選択情報を生成する。例えば、差分最大値格納FF214から入力される差分最大値のデータと、閾値A格納FF215から入力される閾値Aと、閾値B格納FF216から入力される閾値Bとに基づいて、そのテーブル選択情報を生成する。そして、生成したテーブル選択情報をセレクター206へ出力する。
次に、このような構成を有する本実施例に係る可変長復号化装置の動作を説明する。
図12A及び図12Bは、本実施例に係る可変長復号化装置が符号化データを画像の小領域毎に可変長復号化するときの動作を示すフローチャートである。
図12A及び図12Bに示したように、本動作が開始すると、まず、固定長/可変長切出部202は、メモリ201に格納されている符号化データ(図7BのS414で形成された符号化データ)を取得する(S501)。
次に、その符号化データに含まれる小領域サイズのデータを復号化する(S502)。具体的には、固定長/可変長切出部202が、その符号化データから、固定長符号のデータである小領域サイズのデータを切り出し、それを全体制御部208の小領域サイズ格納FF211へ出力する。そして、それを小領域サイズ格納FF211が格納する。
次に、残りの符号化データを小領域毎に可変長復号化する処理を行う(S503乃至S514)。例えば、画素位置格納FF213をクリアし、次に、処理対象とする小領域の符号化データに含まれる差分最大値のデータを復号化する(S503)。例えば、固定長/可変長切出部202が、セレクター212から入力される固定長情報に応じて、処理対象とする小領域の符号化データから、固定長符号のデータである差分最大値のデータを切り出す。そして、切り出した差分最大値を全体制御部208の差分最大値格納FF214へ出力し、それを差分最大値格納FF214が格納する。
次に、テーブル選択部217は、差分最大値格納FF214から入力される差分最大値と閾値A格納FF215から入力される閾値Aとを用いて、差分最大値の絶対値が閾値A未満であるか否かを判定する(S504)。ここで、その判定結果がYesの場合には、テーブル選択部217が、可変長符号が割り当てられている差分値の最大値又は最小値が、その差分最大値と一致する第1の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する(S505)。また、S505では、テーブル選択部217が、生成したテーブル選択情報をセレクター206へ出力する。これにより、セレクター206は、このときのテーブル選択情報に応じて、テーブル記憶部203からの符号長のデータに係る入力と、テーブル記憶部203からの差分値のデータに係る複数の入力の中の一つとを選択し、選択した入力からのデータを出力するようになる。
一方、S504の判定結果がNoの場合には、テーブル選択部217が、閾値B格納FF216からの閾値Bを更に用いて、差分最大値の絶対値が閾値B未満であるか否かを判定する(S506)。ここで、その判定結果がYesの場合には、テーブル選択部217が、可変長符号が割り当てられている差分値の最大値又は最小値が、その差分最大値と一致する第2の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する(S507)。また、S507では、テーブル選択部217が、そのテーブル選択情報のデータをセレクター206へ出力する。これにより、セレクター206は、このときのテーブル選択情報に応じて、テーブル記憶部204からの符号長のデータに係る入力と、テーブル記憶部204からの差分値のデータに係る複数の入力の中の一つとを選択し、選択した入力からのデータを出力するようになる。
一方、S506の判定結果がNoの場合には、テーブル選択部217が、第3の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する(S508)。また、S508では、テーブル選択部217が、そのテーブル選択情報をセレクター206へ出力する。これにより、セレクター206は、このときのテーブル選択情報のデータに応じて、テーブル記憶部205からの入力を選択し、選択した入力からのデータを出力するようになる。
S505、S507、又はS508の後は、生成されたテーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象とする小領域の符号化データを画素毎に可変長復号化し画素を復元する処理を行う(S509乃至S512)。例えば、生成されたテーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象とする小領域の符号化データに含まれる処理対象画素の差分値の符号化データを可変長復号化する(S509)。例えば、固定長/可変長切出部202が、セレクター212から入力される可変長情報に応じて、処理対象とする小領域の符号化データから、処理対象画素の差分値の可変長符号のデータを切り出す。そして、切り出したデータを、テーブル記憶部203、204、205へ出力する。テーブル記憶部203、204の各々は、固定長/可変長切出部202から入力される可変長符号のデータに応じて、対応する差分値を有する可変長符号化テーブル毎に、対応する差分値のデータを出力する。また、テーブル記憶部205は、固定長/可変長切出部202から入力される可変長符号のデータに応じて、対応する差分値又はエスケープのデータを出力する。また、テーブル記憶部203、204、205の各々は、固定長/可変長切出部202から入力される可変長符号のデータから、その可変長符号の符号長を求め、その符号長のデータをセレクター206へ出力する。セレクター206は、テーブル選択部217から入力されるテーブル選択情報のデータに応じて、テーブル記憶部203、204、205からの複数の入力の中の一部を選択する。例えば、テーブル選択情報に応じて、テーブル記憶部203からの符号長のデータに係る入力と、テーブル記憶部203からの差分値に係る複数の入力の中の一つとを選択する。或いは、テーブル選択情報に応じて、テーブル記憶部204からの符号長のデータに係る入力と、テーブル記憶部204からの差分値に係る複数の入力の中の一つとを選択する。若しくは、テーブル選択情報に応じて、テーブル記憶部205からの入力を選択する。そして、選択した入力からの符号長のデータを固定長/可変長切出部202へ出力し、選択した入力からの差分値又はエスケープを画素復元部207へ出力する。なお、セレクター206がエスケープを出力した場合には、それが固定長/可変長切出部202へも出力される。この場合は、固定長/可変長切出部202が、そのエスケープに係る可変長符号(エスケープ符号)に続く固定長符号(閾値B以上だった場合の差分値)を符号化データから切り出す。そして、その切り出したデータを画素復元部207へ出力する。
このようにして、処理対象画素の差分値の可変長復号化が終了すると、次に、画素復元部207が、セレクター206、固定長/可変長切出部202、及び画素位置格納FF213から入力されるデータに基づいて、画素の復元を行う(S510)。すなわち、処理対象画素の画素値を復元する。例えば、画素復元部207が、セレクター206から入力される差分値と、画素位置格納FF213から入力される画素位置とに基づいて、画素の復元を行う。或いは、画素復元部207が、セレクター206から入力されるエスケープと、固定長/可変長切出部202から入力される差分値のデータと、画素位置格納FF213から入力される画素位置とに基づいて、画素の復元を行う。
このようにして、処理対象画素の復元が終了すると、次に、処理対象とする小領域に含まれる全画素の差分値の可変長復号化を終了したか否かを判定する(S511)。ここで、その判定結果がNoの場合には、処理対象とする小領域において、処理対象画素を次の画素に変更する(S512)。すなわち、処理対象画素位置を更新する。S512の後は、S509へ戻り、以降は、S511の判定結果がYesになるまで、上記のS509乃至S512の処理を繰り返す。
一方、S511の判定結果がYesの場合には、次に、全小領域の可変長復号化が終了したか否かを判定する(S513)。ここで、その判定結果がNoの場合には、処理対象とする小領域を次の小領域に変更する(S514)。すなわち、処理対象とする小領域を更新する。S514の後は、S503へ戻り、以降は、S513の判定結果がYesになるまで、上記のS503乃至S514の処理を繰り返す。そして、S513の判定結果がYesになると、本フローが終了する。
以上のように、本実施例に係る可変長復号化装置によれば、本実施例に係る可変長符号化装置により符号化された符号化データを復号化することができる。
[実施例2]
本発明の実施例2に係る可変長符号化装置は、実施例1に係る可変長符号化装置と同様に、符号化対象画像を小領域毎に可変長符号化する装置である。また、実施例1に係る可変長符号化装置と同様に、小領域毎に、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択し、その可変長符号化テーブルを用いて可変長符号化を行う装置である。
但し、実施例2に係る可変長符号化装置では、符号化対象画像を符号化したときに得られる符号化データの符号量の更なる削減を可能にするために、実施例1に係る可変長符号化装置の場合とは異なるデータ構造の符号化データを形成する。そのため、実施例2に係る可変長符号化装置は、一部の構成及び動作が、実施例1に係る可変長符号化装置と異なっている。
図13A及び図13Bは、本実施例に係る可変長符号化装置の構成例を示す図である。
図13A及び図13Bに示したように、本実施例に係る可変長符号化装置は、メモリ101、差分値計算部102、予測画素値作成部103、テーブル記憶部104、105、106、セレクター107を含む。なお、これらの構成については、実施例1に係る可変長符号化装置と同じであるので、ここでは、その説明を省略する。また、本実施例に係る可変長符号化装置は、更に、データ形成部308と全体制御部309を含む。
なお、本実施例に係る可変長符号化装置も、実施例1に係る可変長符号化装置と同様に、各小領域の可変長符号化においては、小領域の各画素の差分値を求める処理を2回行う。1回目の処理は、小領域の可変長符号化に用いる可変長符号化テーブルを選択するために行う。2回目の処理は、選択された可変長符号化テーブルを用いて実際に小領域の可変長符号化を行うために行う。そのため、1回目の処理により差分値計算部102からテーブル記憶部104、105、106へ出力される差分値は無効とされる。
データ形成部308は、セレクター107から入力される小領域毎のデータと全体制御部309から入力される小領域毎のデータとに基づいて、小領域毎の符号化データを生成する。ここで、全体制御部309から入力される小領域毎のデータは、符号化モード、最大値又は最初値の個数、最大値又は最小値、及び、最大値又は最小値の位置情報である。なお、データ形成部308は、小領域毎の符号化データを生成する際に、小領域毎に、符号化モードに応じたデータ構造の符号化データを生成する。また、データ形成部308は、生成した各小領域の符号化データを用いて、符号化対象画像の符号化データを形成する。なお、このようにして形成された符号化対象画像の符号化データはデータ形成部308により出力され、例えば、本実施例に係る可変長符号化装置により外部へ送信される。
全体制御部309は、本実施例に係る可変長符号化装置の全体動作を制御する。この制御では、例えば、符号化対象画像を小領域毎に可変長符号化する際に、各小領域での処理対象画素に応じて、対応する画素要求信号をメモリ101へ出力する。
全体制御部309は、最大値格納FF(FlipFlop)311、最小値格納FF(FlipFlop)312、比較器313、314、315、セレクター(SEL)316、閾値A格納FF(FlipFlop)317、及び、閾値B格納FF(FlipFlop)318を含む。また、全体制御部309は、更に、テーブル選択部319、最大値/最小値個数格納FF(FlipFlop)320、加算器321、画素位置出力部322、最大値/最小値位置情報格納FF(FlipFlop)323、符号化モード判定部324を含む。ここで、テーブル選択部319は取得部の一例である。符号化モード判定部324は判定部の一例である。
比較器313は、差分値計算部102から入力される差分値と、最大値格納FF311から入力される最大値のデータとを比較する。ここで、比較器313は、差分値が最大値よりも大きい場合には、この時の差分値を最大値格納FF311に格納させる第1の信号を出力する。また、比較器313は、差分値と最大値が等しい場合には、第2の信号を出力する。
最大値格納FF311は、比較器313から入力される信号が、第1の信号である場合には、この時に差分値計算部102から入力される差分値を最大値として格納する。また、最大値格納FF311は、格納している最大値を出力する。
比較器314は、差分値計算部102から入力される差分値と、最小値格納FF312から入力される最小値とを比較する。ここで、比較器314は、差分値が最小値よりも小さい場合には、この時の差分値を最小値格納FF312に格納させる第3の信号を出力する。また、比較器314は、差分値と最小値が等しい場合には、第4の信号を出力する。
最小値格納FF312は、比較器314から入力される信号が、第3の信号である場合には、この時に差分値計算部102から入力される差分値を最小値として格納する。また、最小値格納FF312は、格納している最小値を出力する。
比較器315は、最大値格納FF311から入力される最大値と、最小値格納FF312から入力される最小値とを比較する。ここで、比較器315は、最大値の絶対値が最小値の絶対値以上の場合には、最大値を選択するための最大値選択信号を出力する。一方、最大値の絶対値が最小値の絶対値未満の場合には、最小値を選択するための最小値選択信号を出力する。
セレクター316は、比較器315から入力される信号が最大値選択信号である場合には、最大値格納FF111からの入力を選択し、選択した入力からのデータを出力する。一方、比較器315から入力される信号が最小値選択信号である場合には、最小値格納FF312からの入力を選択し、選択した入力からのデータを出力する。
なお、セレクター316から出力されるデータのうち、後述のテーブル選択部319により実際に使用されるデータは、テーブル選択部319がテーブル選択情報を生成するための処理を開始する時にセレクター316から出力されているデータである。
閾値A格納FF317は、外部から入力される閾値Aを格納し、そのデータを出力する。なお、閾値Aは、実施例1と同様に、10とする。
閾値B格納FF318は、外部から入力される閾値Bを格納し、そのデータを出力する。なお、閾値Bは、実施例1と同様に、32とする。
テーブル選択部319は、小領域の符号化に使用する可変長符号化テーブルを、テーブル記憶部104、105、106に記憶されている複数の可変長符号化テーブルの中から選択するためのテーブル選択情報を生成する。例えば、セレクター316から入力される最大値又は最小値と、閾値A格納FF317から入力される閾値Aと、閾値B格納FF318から入力される閾値Bとに基づいて、そのテーブル選択情報を生成する。そして、生成したテーブル選択情報をセレクター107へ出力する。
最大値/最小値個数格納FF320と、加算器321と、画素位置出力部322と、最大値/最小値位置情報格納FF323と、符号化モード判定部324は、上記の2回目の処理中に差分値計算部102から出力される差分値に対してのみ有効に動作する。
最大値/最小値個数格納FF320は、最大値又は最小値の個数を格納すると共に、格納しているデータを出力する。例えば、比較器315から入力される信号に応じて、比較器313からの入力、又は、比較器314からの入力を選択する。例えば、比較器315から入力される信号が最大値選択信号である場合には比較器313からの入力を選択し、それが最小値選択信号である場合には比較器314からの入力を選択する。そして、選択した入力からの信号が第2の信号又は第4の信号である場合には、格納する個数のデータを、加算器321から入力される個数のデータへ更新する。なお、加算器321は、最大値/最小値個数格納FF320から入力される個数のデータから、その個数に1を加算し、その加算後の個数のデータを出力する。このように、最大値/最小値個数格納FF320は、第2の信号又は第4の信号が入力される毎に、1が加算された個数のデータを格納すると共にそのデータを出力する。
但し、上記の2回目の処理が開始してから初めに第2の信号又は第4の信号が入力された時に限り、最大値/最小値個数格納FF320は、格納する個数のデータを更新しない。その理由は、次の理由による。最大値/最小値個数格納FF320が出力する個数のデータは、小領域サイズに応じた固定長のデータである。小領域サイズが4×4画素の場合は4bitのデータとなり、8×8画素の場合は6bitのデータとなり、16×16画素の場合は8bitのデータとなる。例えば、8×8画素の場合、最大値又は最小値の個数の取り得る範囲は1から64である。しかしながら、6bitでは、0から63までしか表現できない。そこで、上記のような処理を行うことにより、最大値/最小値個数格納FF320が出力する個数を、意図的に、実際の個数よりも1つ小さい個数としている。そのため、後に、実際の個数が必要な場合には、最大値/最小値個数格納FF320が出力する個数に1を加えた個数を使用するように、処理が行われる。
画素位置出力部322は、処理対象とする画素の位置情報を出力する。
最大値/最小値位置情報格納FF323は、最大値又は最小値の位置情報を格納すると共に、格納しているデータを出力する。なお、最大値又は最小値の位置情報は、差分値の最大値又は最小値が得られた画素の位置を表す情報である。例えば、最大値/最小値位置情報格納FF323は、比較器315から入力される信号に応じて、比較器313からの入力、又は、比較器314からの入力を選択する。例えば、比較器315から入力される信号が最大値選択信号である場合には比較器313からの入力を選択し、それが最小値選択信号である場合には比較器314からの入力を選択する。そして、選択した入力からの信号が第2の信号又は第4の信号である場合には、画素位置出力部322から入力される位置情報を最大値又は最小値の位置情報として格納すると共に、それをデータ形成部308へ出力する。このように、最大値/最小値位置情報格納FF323は、その第2の信号又は第4の信号が入力される毎に、画素位置出力部322からの位置情報を、最大値又は最小値の位置情報として格納すると共に、それをデータ形成部308へ出力する。
符号化モード判定部324は、符号化モードを判定し、判定した符号化モード(符号化モードを表すデータ)をデータ形成部308へ出力する。例えば、比較器315から入力される信号に応じて、比較器313からの入力、又は、比較器314からの入力を選択する。例えば、比較器315から入力される信号が最大値選択信号である場合には比較器313からの入力を選択し、それが最小値選択信号である場合には比較器314からの入力を選択する。また、比較器315から入力される信号に応じて、最大値格納FF311からの入力、又は、最小値格納FF312からの入力を選択する。例えば、比較器315から入力される信号が最大値選択信号である場合には最大値格納FF311からの入力を選択し、それが最小値選択信号である場合には最小値格納FF312からの入力を選択する。そして、選択した比較器313からの入力が第2の信号である時、又は、選択した比較器314からの入力が第4の信号である時に、セレクター107から入力される可変長符号から、その可変長符号の符号長を求める。但し、選択した比較器313からの入力が第2の信号である時に、選択した最大値格納FF311から入力されるデータが表す最大値が閾値B以上である場合には、上記の可変長符号の符号長の代わりに、次のような符号長を求める。すなわち、このような場合には、上記の可変長符号の代わりに、選択した最大値格納FF311から入力されるデータの符号長にエスケープ符号の符号長を加算した符号長を求める。或いは、選択した比較器314からの入力が第4の信号である時に、選択した最小値格納FF312から入力されるデータが表す最小値の絶対値が閾値B以上である場合には、上記の可変長符号の符号長の代わりに、次のような符号長を求める。すなわち、このような場合には、上記の可変長符号の代わりに、選択した最小値格納FF312から入力されるデータの符号長にエスケープ符号の符号長を加算した符号長を求める。これにより、選択した比較器313からの入力が第2の信号である時に、最大値が閾値B未満の場合には、最大値の可変長符号の符号長が求められ、最大値が閾値B以上の場合には、最大値の符号長にエスケープ符号の符号長を加算した符号長が求められる。或いは、選択した比較器314からの入力が第4の信号である時に、最小値の絶対値が閾値B未満の場合には、最小値の可変長符号の符号長が求められ、最小値の絶対値が閾値B以上の場合には、最小値の符号長にエスケープ符号の符号長を加算した符号長が求められる。そして、このようにして求めた符号長と、最大値/最小値個数格納FF320から入力される最大値又は最小値の個数とに基づいて、符号量Aと符号量Bを求める。ここで、符号量Aは第1の符号量の一例であり、符号量Bは第2の符号量の一例である。なお、最大値又は最小値の個数は、上記の2回目の処理による差分値に対する処理結果が全て最大値/最小値個数格納FF320に格納されるデータに反映された時点に最大値/最小値個数格納FF320から出力されたデータである。また、符号量Aは、データ形成部308が符号化モード0に応じて形成する符号化データの符号量に対応し、符号量Bは、データ形成部308が符号化モード1に応じて形成する符号化データの符号量に対応する。ここで、符号化モード0は第1の符号化モードの一例であり、符号化モード1は第2の符号化モードの一例である。この符号量Aと符号量Bを、比較器315から入力される信号に応じて、次のようにして求める。
比較器315から入力される信号が最大値選択信号である場合には、次の2つの式(1)、(2)を用いて、符号量Aと符号量Bを求める。
符号量A=最大値の符号長×最大値の個数 (1)
符号量B=最大値の個数のbit数+最大値の位置情報のデータのbit数×最大値の個数 (2)
一方、比較器315から入力される信号が最小値選択信号である場合には、次の2つの式(3)、(4)を用いて、符号量Aと符号量Bを求める。
符号量A=最小値の符号長×最小値の個数 (3)
符号量B=最小値の個数のbit数+最小値の位置情報のbit数×最小値の個数 (4)
なお、式(1)において、最大値の符号長は、最大値の可変長符号の符号長、又は、最大値の符号長にエスケープ符号の符号長を加算した符号長である。また、式(3)において、最小値の符号長は、最小値の可変長符号の符号長、又は、最小値の符号長にエスケープ符号の符号長を加算した符号長である。
また、式(1)、(2)、(3)、(4)において、最大値の個数、及び、最小値の個数は、最大値/最小値個数格納FF320から入力される個数に基づいて得られる。上記のとおり、最大値/最小値個数格納FF320からの個数は、実際の個数よりも1つ少ない。そこで、ここでは、最大値の個数、及び、最小値の個数を、最大値/最小値個数格納FF320から入力される個数に1を加えた個数として、計算が行われる。
また、式(2)、(4)において、最大値の個数、最大値の位置情報、最小値の個数、及び、最小値の位置情報は、固定長データであり、そのbit数は小領域サイズに応じて決定される。すなわち、小領域サイズのbit数が4×4画素であれば4bitとなり、それが8×8画素であれば6bitとなり、それが16×16画素であれば8bitとなる。
このようにして符号量Aと符号量Bを求めると、次に両者の比較を行い、符号量Aが符号量B以下である場合には符号化モードを符号化モード0と判定し、符号量Aが符号量Bよりも大きい場合には符号化モードを符号化モード1と判定する。そして、判定した符号化モードをデータ形成部308へ出力する。
これにより、データ形成部308では、符号化モードに応じた符号化データの生成を行うことにより、より少ない符号量の符号化データを形成することができる。
図14は、小領域における各画素の位置情報の一例を説明する図である。
図14に示した例は、小領域が8×8画素の小領域である場合の例である。この場合は、符号化対象画像331の各小領域における各画素の位置情報として、小領域の左上の画素332から右下の画素333まで矢印334に沿った順序で、0から63までの各値が与えられる。なお、矢印334は、各小領域において、処理対象とする画素の順番を示すものでもある。従って、画素位置出力部322は、処理対象とする画素に応じて、対応する位置情報(この場合は、0から63の何れかの値を表す6bitの固定長データ)を出力する。また、符号化対象画像331において、処理対象とする小領域の順番は、矢印335に沿った順番となる。
なお、図示はしないが、小領域が4×4画素の小領域である場合には、各小領域における各画素の位置情報として、小領域の左上の画素から右下の画素まで同様の順序で、0から15までの各値が与えられる。また、小領域が16×16画素の小領域である場合には、各小領域における各画素の位置情報として、小領域の左上の画素から右下の画素まで同様の順序で、0から255までの各値が与えられる。
図15は、符号化モード判定部324が符号量Aと符号量Bを求める場合の一例を説明するための図である。
図15に示したように、小領域が4×4画素の小領域である場合において、処理対象とする小領域の各画素の差分値として、図15に示したような差分値が得られたとき、符号化モード判定部324は、符号量Aと符号量Bを、次のようにして求める。
なお、このときは、小領域の画素の差分値の中で、その差分値の絶対値が最大となる差分値は30となることから、比較器315の出力信号は最大値選択信号となる。そのため、符号化モード判定部324は、符号量Aと符号量Bを、上記の2つの式(1)、(2)を用いて求める。この場合は、最大値が30であるので、最大値は閾値B未満となる。ここでは、その最大値である30の可変長符号の符号長を8bitとする。また、最大値の個数は2である。従って、符号量Aは、16(=8×2)となる。一方、最大値の個数のbit数と、最大値の位置情報のbit数は、小領域サイズが4×4であることから4bitである。最大値の個数は、上記のとおり、2である。従って、符号量Bは、12(=4+4×2)である。
これにより、この場合は、符号量A(16)>符号量B(12)となるので、符号化モード判定部324は、符号化モードを符号化モード1と判定する。
次に、このような構成を有する本実施例に係る可変長符号化装置の動作を説明する。
図16A及び図16Bは、本実施例に係る可変長符号化装置が符号化対象画像を小領域毎に可変長符号化するときの動作を示すフローチャートである。
なお、図16A及び図16Bに示した動作のうち、S611乃至S615を除く動作については、図7A及び図7Bに示した動作と、基本的に同様の動作となる。
図16A及び図16Bに示したように、本動作が開始すると、まず、全体制御部309は、符号化対象画像を小領域毎に可変長符号化する際の小領域サイズを設定する(S601)。本実施例でも、小領域サイズを、16×16画素、8×8画素、又は4×4画素の何れかの小領域サイズに設定することが可能である。
次に、符号化対象画像を、S601で設定された小領域サイズに応じた小領域毎に可変長符号化する処理を行う(S602乃至S617)。
なお、本実施例では、このような小領域毎の処理を、上記のとおり、図14の矢印335に沿った順番で行うものとする。この順番は、実施例1での順番と同じである。
例えば、S602乃至S617の処理が次のようにして行われる。
まず、符号化対象画像の処理対象とする小領域に含まれる画素毎に、画素値と予測画素値との間の差分値を算出し、その中から、差分値の絶対値が最大となる差分値(差分最大値)を求める(S602)。例えば、これが次のようにして行われる。まず、全体制御部309は、最大値格納FF311と最小値格納FF312をクリアする。次に、全体制御部309は、処理対象画素に応じた画素要求信号をメモリ101へ出力する。メモリ101は、全体制御部309から入力される画素要求信号に応じて、対応する画素データを出力する。予測画素値作成部103は、メモリ101から入力される画素データを用いて予測画素値を作成し、そのデータを出力する。差分値計算部102は、メモリ101から入力される画素データと予測画素値作成部103から入力される予測画素値とを用いて、処理対象画素における、画素値と予測画素値との間の差分値を算出し、そのデータを出力する。比較器313は、差分値計算部102からの差分値と最大値格納FF311からの最大値とを比較し、差分値が最大値よりも大きい場合には、この時の差分値を最大値格納FF311が格納する。また、比較器314は、差分値計算部102からの差分値と最小値格納FF312からの最小値とを比較し、差分値が最小値よりも小さい場合には、この時の差分値を最小値格納FF312が格納する。また、比較器315は、最大値格納FF311からの最大値と、最小値格納FF312からの最小値とを比較する。ここで、最大値の絶対値が最小値の絶対値以上の場合には、セレクター316が最大値格納FF311からの入力を選択し、選択した入力からのデータを出力する。一方、そうでない場合には、セレクター316が最小値格納FF312からの入力を選択し、選択した入力からのデータを出力する。そして、このような処理を、処理対象とする小領域に含まれる各画素に対して行う。そうすると、その全画素に対する処理が終了した時点においてセレクター316が出力するデータは、差分最大値となる。
次に、テーブル選択部319が、セレクター316からの差分最大値と、閾値A格納FF317からの閾値Aとを用いて、差分最大値の絶対値が閾値A未満であるか否かを判定する(S603)。ここで、その判定結果がYesの場合には、テーブル選択部319が、可変長符号が割り当てられている差分値の最大値又は最小値が差分最大値と一致する第1の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する(S604)。また、S604では、テーブル選択部319が、生成したテーブル選択情報をセレクター107へ出力する。これにより、セレクター107は、このときのテーブル選択情報に応じて、テーブル記憶部104からの複数の入力の中の一つを選択し、選択した入力からのデータを出力するようになる。
一方、S603の判定結果がNoの場合には、テーブル選択部319が、閾値B格納FF318からの閾値Bを更に用いて、差分最大値の絶対値が閾値B未満であるか否かを判定する(S605)。ここで、その判定結果がYesの場合には、テーブル選択部319が、可変長符号が割り当てられている差分値の最大値又は最小値が差分最大値と一致する第2の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する(S606)。また、S606では、テーブル選択部319が、そのテーブル選択情報をセレクター107へ出力する。これにより、セレクター107は、このときのテーブル選択情報に応じて、テーブル記憶部105からの複数の入力の中の一つを選択し、選択した入力からのデータを出力するようになる。
一方、S605の判定結果がNoの場合には、テーブル選択部319が、第3の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する(S607)。また、S607では、テーブル選択部319が、そのテーブル選択情報をセレクター107へ出力する。これにより、セレクター107は、このときのテーブル選択情報に応じて、テーブル記憶部106からの入力を選択し、選択した入力からのデータを出力するようになる。
S604、S606、又はS607の後は、全体制御部309が最大値/最小値個数格納FF320をクリアする。
そして、生成されたテーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象とする小領域を画素毎に可変長符号化する処理を行う(S608乃至S610)。
なお、本実施例では、このような画素毎の処理を、上記のとおり、図14の矢印334に沿った順番で行うものとする。この順番は、実施例1での順番と同じである。
例えば、S608乃至S610の処理が次のようにして行われる。
まず、生成されたテーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象画素の差分値を可変長符号化する(S608)。例えば、これが次のようにして行われる。まず、全体制御部309は、処理対象画素に応じた画素要求信号をメモリ101へ出力する。メモリ101は、全体制御部309から入力される画素要求信号に応じて、対応する画素データを出力する。予測画素値作成部103は、メモリ101から入力される画素データを用いて予測画素値を作成し、そのデータを出力する。差分値計算部102は、メモリ101から入力される画素データと予測画素値作成部103から入力される予測画素値とを用いて、処理対象画素における、画素値と予測画素値との間の差分値を算出し、そのデータを出力する。そして、テーブル記憶部104、105の各々は、差分値計算部102から入力される差分値に応じて、対応する可変長符号を有する可変長符号化テーブル毎に、対応する可変長符号のデータを出力する。また、テーブル記憶部106は、差分値計算部102から入力される差分値に応じて、対応する可変長符号又はエスケープ符号のデータを出力する。但し、エスケープ符号を出力する際には、その時に入力された差分値も出力する。なお、この差分値は、正負を表す符号bitと0から255までを表現可能な8bitの、合計9bitの固定長のデータである。セレクター107は、テーブル選択部319から入力されるテーブル選択情報に応じて、テーブル記憶部104、105からの一つの入力、又は、テーブル記憶部106からの入力を選択し、選択した入力からのデータをデータ形成部308へ出力する。これにより、テーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象画素の差分値が可変長符号化され、そのデータ(可変長符号のデータ、又は、エスケープ符号及び差分値)が、データ形成部308へ出力される。
このようにして、処理対象画素の差分値の可変長符号化が終了すると、次に、処理対象とする小領域に含まれる全画素の差分値の可変長符号化を終了したか否かを判定する(S609)。ここで、その判定結果がNoの場合には、処理対象とする小領域において、処理対象画素を次の画素に変更する(S610)。すなわち、処理対象画素位置を更新する。S610の後は、S608へ戻り、以降は、S609の判定結果がYesになるまで、上記のS608乃至S610の処理を繰り返す。
なお、上記のS608乃至S610の処理が繰り返されている間に、符号化モード判定部324は、比較器315から入力される信号に応じて、次のような処理を行う。比較器315から入力される信号が最大値選択信号である場合には、最大値の可変長符号の符号長、又は、最大値の符号長にエスケープ符号の符号長を加算した符号長を求める。比較器315から入力される信号が最小値選択信号である場合には、最小値の可変長符号の符号長、又は、最小値の符号長にエスケープ符号の符号長を加算した符号長を求める。
また、上記のS608乃至S610の処理が繰り返されている間、最大値/最小値位置情報格納FF323は、比較器315から入力される信号に応じて、比較器313からの入力、又は、比較器314からの入力を選択する。そして、選択した入力からの信号が第2の信号又は第4の信号である毎に、画素位置出力部322から入力される位置情報を最大値又は最小値の位置情報として格納すると共に、それをデータ形成部308へ出力する。
そして、S609の判定結果がYesになると、符号化モード判定部324が符号量Aを計算により求める(S611)。例えば、比較器315から入力される信号に応じて、次のようにして符号量Aを求める。比較器315から入力される信号が最大値選択信号である場合には、上記の式(1)を用いて符号量Aを求める。ここで、最大値の符号長は、上記のとおり、S608乃至S610の処理が繰り返されている間に符号化モード判定部324が求めた符号長である。すなわち、最大値の可変長符号の符号長、又は、最大値の符号長にエスケープ符号の符号長を加算した符号長である。また、最大値の個数は、この時に最大値/最小値個数格納FF320から入力されるデータが表す個数に1を加えた個数である。一方、比較器315から入力される信号が最小値選択信号である場合には、上記の式(3)を用いて符号量Aを求める。ここで、最小値の符号長は、上記のとおり、S608乃至S610の処理が繰り返されている間に符号化モード判定部324が求めた符号長である。すなわち、最小値の可変長符号の符号長、又は、最小値の符号長にエスケープ符号の符号長を加算した符号長である。また、最小値の個数は、この時に最大値/最小値個数格納FF320から入力される個数に1を加えた個数である。
次に、符号化モード判定部324は、符号量Bを計算により求める(S612)。例えば、比較器315から入力される信号に応じて、次のようにして符号量Bを求める。比較器315から入力される信号が最大値選択信号である場合には、上記の式(2)を用いて符号量Bを求める。ここで、最大値の個数のbit数と、最大値の位置情報のbit数は、上記のとおり、小領域サイズに応じて決定される。また、最大値の個数は、この時に最大値/最小値個数格納FF320から入力されるデータが表す個数に1を加えた個数である。一方、比較器315から入力される信号が最小値選択信号である場合には、上記の式(4)を用いて符号量Bを求める。ここで、最小値の個数のbit数と、最小値の位置情報のbit数は、上記のとおり、小領域サイズに応じて決定される。また、最小値の個数は、この時に最大値/最小値個数格納FF320から入力されるデータが表す個数に1を加えた個数である。
このようにして符号量Aと符号量Bを求めると、次に、符号化モード判定部324は、S611で求めた符号量AがS612で求めた符号量B以下であるか否かを判定する(S613)。
ここで、その判定結果がYesの場合、符号化モード判定部324は、符号化モードを符号化モード0と判定し、符号化モード0をデータ形成部308へ出力する。そして、データ形成部308は、処理対象とする小領域の符号化データとして、符号化モード0に応じたデータ構造の符号化データを生成する(S614)。符号化モード0に応じたデータ構造の符号化データは、符号化モード0、差分最大値、及び、各画素の差分値の符号化データを含む。ここで、差分最大値は、この時にセレクター316から入力される最大値又は最小値である。但し、その最大値又は最小値の絶対値が閾値B以上の場合、データ形成部308は、その最大値又は最小値を閾値Bとして、符号化データの生成を行う。また、各画素の差分値の符号化データは、上記のS608乃至S610の処理が繰り返される毎にセレクター107から入力されたデータである。
なお、データ形成部308がS614で生成する符号化データのデータ構造は、符号化モード0を含むことを除くと、図1Aに示したデータ形成部108が図7BのS411で生成する符号化データのデータ構造と同じになる。
一方、S613の判定結果がNoの場合、符号化モード判定部324は、符号化モードを符号化モード1と判定し、符号化モード1をデータ形成部308へ出力する。そして、データ形成部308は、処理対象とする小領域の符号化データとして、符号化モード1に応じたデータ構造の符号化データを生成する(S615)。符号化モード1に応じたデータ構造の符号化データは、符号化モード1、差分最大値、差分最大値の個数、差分最大値の位置情報、及び、差分最大値が得られた画素を除く各画素の差分値の符号化データを含む。ここで、差分最大値は、この時にセレクター316から入力される最大値又は最小値である。また、差分最大値の個数は、この時に最大値/最小値個数格納FF320から入力される最大値又は最小値の個数である。また、差分最大値の位置情報は、上記のS608乃至S610の処理が繰り返されている間に、最大値/最小値位置情報格納FF323から入力された最大値又は最小値の位置情報である。また、差分最大値が得られた画素を除く各画素の差分値の符号化データは、上記のS608乃至S610の処理が繰り返される毎にセレクター107から入力されたデータの中から、差分最大値が得られた画素の差分値についてのデータを除いたものである。なお、データ形成部308は、上記のS608乃至S610の処理が繰り返されている間に、最大値/最小値位置情報格納FF323から入力される最大値又は最小値の位置情報に基づいて、差分最大値が得られた画素を特定することが可能である。
このように、符号化モード0に応じたデータ構造の符号化データでは、各画素の差分値の符号化データの中に、差分最大値が得られた画素の差分値の符号化データも含まれる。これに対し、符号化モード1に応じたデータ構造の符号化データでは、差分最大値、差分最大値の個数、差分最大値の位置情報の各データが含まれる代わりに、各画素の差分値の符号化データの中に、差分最大値が得られた画素の差分値の符号化データは含まれない。
次に、符号化対象の画像に含まれる全小領域の可変長符号化を終了したか否かを判定する(S616)。ここで、その判定結果がNoの場合には、処理対象とする小領域を次の小領域に変更する(S617)。すなわち、処理対象とする小領域を更新する。S617の後は、S602へ戻り、以降は、S616の判定結果がYesになるまで、上記のS602乃至S617の処理を繰り返す。
一方、S616の判定結果がYesの場合には、データ形成部308は、符号化対象画像の符号化データを形成する(S618)。この符号化対象画像の符号化データは、小領域サイズと各小領域の符号化データとを含む。ここで、小領域サイズは、S601で設定された小領域サイズであってよい。また、各小領域の符号化データは、上記のS602乃至S617の処理が繰り返される毎にS614又はS615で生成された小領域の符号化データである。そして、符号化対象画像の符号化データの形成が終了すると、本フローが終了する。なお、このようにして形成された符号化対象画像の符号化データは、データ形成部308から出力され、例えば、本実施例に係る可変長符号化装置により外部へ送信される。
図17(a),(b) は、S618で形成される符号化対象画像の符号化データのデータ構造の一例を示す図である。
図17(a) に示した例は、小領域0の符号化モードが符号化モード0の場合の例であり、図17(b) に示した例は、小領域0の符号化モードが符号化モード1の場合の例である。なお、小領域0は、符号化対象画像の左上の小領域であり、符号化対象画像の中で最初に符号化が行われた小領域である。
図17(a),(b) に示したように、符号化対象画像の符号化データは、はじめに小領域サイズが配置される。ここで、小領域サイズは、図10に示した例と同様に、2bitの固定長データで表される。
また、符号化対象画像の符号化データにおいて、小領域サイズのデータ以降は、各小領域の符号化データが、処理された順番に配置される。
各小領域の符号化データは、はじめに符号化モードが配置される。ここで、符号化モードは、1bitの固定長データで表される。例えば、符号化モード0は「0」の1bitデータで表され、符号化モード1は「1」の1bitデータで表される。
また、各小領域の符号化データにおいて、符号化モードのデータ以降は、その符号化モードに応じたデータ構造のデータが配置される。
例えば、符号化モードが符号化モード0の場合には、図17(a) に示したように、符号化モードのデータに続いて、まず、差分最大値として、最大値、最小値、又は閾値Bが配置される。それ以降は、各画素の符号化データが、処理された順番に配置される(図17(a) の画素位置0、1、・・・、Nを参照)。ここで、差分最大値は、図10に示した例と同様に、7bitの固定長データで表される。また、各画素の符号化データは、図10に示した例と同様に、差分値の可変長符号のデータ、又は、エスケープ符号及び差分値である。これらも図10に示した例と同様に、差分値の可変長符号は、可変長データで表される。また、エスケープ符号及び差分値は、エスケープ符号が可変長データで表され、差分値が9bitの固定長データで表される。
なお、符号化モード0の小領域の符号化データは、上記のとおり、符号化モードのデータを含むことを除いて、図10に示した例と同様のデータ構造となる。
一方、符号化モードが符号化モード1の場合には、図17(b) に示したように、符号化モードに続いて、差分最大値、差分最大値の個数、差分最大値の位置情報が配置される。また、それ以降は、差分最大値が得られた画素を除く各画素の符号化データが処理された順番に配置される。
ここで、差分最大値は、正負を表す符号bitと0から255までを表現可能な8bitの、合計9bitの固定長データで表される。また、差分最大値の個数は、小領域サイズに応じて決定される固定長データで表される。また、差分最大値の位置情報の各々も、小領域サイズに応じて決定される固定長データで表される。なお、図17(b) に示した例では、0からJまでのJ+1個の位置情報が含まれている。また、差分最大値が得られた画素を除く各画素の符号化データは、差分最大値が得られた画素を除く各画素における、差分値の可変長符号、又は、エスケープ符号及び差分値である。ここで、差分値の可変長符号は、可変長データである。また、エスケープ符号及び差分値は、エスケープ符号が可変長データであり、差分値が9bitの固定長データである。
以上のように、本実施例に係る可変長符号化装置によれば、実施例1に係る可変長符号化装置と同様の効果を得ることができると共に、次のような効果も得ることができる。本実施例に係る可変長符号化装置によれば、小領域毎に、符号化モード0に応じたデータ構造の符号量に対応する符号量Aと、符号化モード1に応じたデータ構造の符号量に対応する符号量Bとをもとめる。そして、符号量Aが符号量B未満の場合には符号化モード0に応じたデータ構造の符号化データを生成し、そうでない場合には符号化モード1に応じたデータ構造の符号化データを生成する。これにより、より少ない符号量の符号化データを生成することができる、という効果も得ることができる。符号化モード1に応じたデータ構造の符号化データでは、各画素の差分値の符号化データの中に、差分最大値が得られた画素の差分値の符号化データは含まれないので、小領域に差分最大値が得られる画素が多い場合に、特に有効である。
次に、本実施例に係る可変長符号化装置によって符号化された符号化データ(図16BのS618で形成された符号化データ)を復号化する、本実施例に係る可変長復号化装置について説明する。
本実施例に係る可変長復号化装置は、実施例1に係る可変長復号化装置と同様に、符号化データを画像の小領域毎に可変長復号化する装置である。また、実施例1に係る可変長復号化装置と同様に、その小領域毎に、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択し、その可変長符号化テーブルを用いて可変長復号化を行う装置である。
但し、本実施例に係る可変長復号化装置では、実施例1に係る可変長復号化装置の場合とは異なるデータ構造の符号化装置を可変長復号化するので、一部の構成及び動作が、実施例1に係る可変長復号化装置と異なっている。
図18A及び図18Bは、本実施例に係る可変長復号化装置の構成例を示す図である。
図18A及び図18Bに示したように、本実施例に係る可変長復号化装置は、メモリ401、固定長/可変長切出部402、テーブル記憶部203、204、205、セレクター206、画素復元部407、全体制御部408を含む。ここで、固定長/可変長切出部402は取得部の一例である。画素復元部407は復元部の一例である。
なお、テーブル記憶部203、204、205、セレクター206の構成については、実施例1に係る可変長復号化装置と同じであるので、ここでは、その説明を省略する。
メモリ401は、本実施例に係る可変長符号化装置により符号化された符号化データ(図16BのS618で形成された符号化データ)を格納する。
固定長/可変長切出部402は、メモリ401に格納されている符号化データを取得する。また、固定長/可変長切出部402は、符号化データから、固定長符号のデータである小領域サイズを切り出し、それを全体制御部408へ出力する。
また、固定長/可変長切出部402は、小領域サイズを切り出した後に、全体制御部408から入力される固定長情報又は可変長情報に応じて、残りの符号化データから固定長符号又は可変長符号を、順次切り出す。このときに切り出す固定長符号は、小領域毎の、符号化モード0に応じた固定長符号、又は、符号化モード1に応じた固定長符号である。小領域毎の、符号化モード0に応じた固定長符号は、符号化モード0のデータと、差分最大値である。また、小領域毎の、符号化モード1に応じた固定長符号は、符号化モード1と、差分最大値と、差分最大値の個数と、差分最大値の位置情報である。また、切り出す可変長符号は、画素毎の、差分値の可変長符号、又は、エスケープ符号である。なお、これらのデータの切り出し位置は、セレクター206から入力される符号長に基づいて決定することができる。また、固定長/可変長切出部402は、切り出した固定長符号を全体制御部408へ出力し、切り出した可変長符号をテーブル記憶部203、204、205へ出力する。
また、固定長/可変長切出部402は、切り出した可変長符号を出力する毎に、画素更新信号を全体制御部408へ出力する。また、固定長/可変長切出部402は、セレクター206からエスケープが入力されると、そのエスケープに係る可変長符号(エスケープ符号)に続く固定長符号(閾値B以上だった場合の差分値)を符号化データから切り出す。そして、その切り出したデータを画素復元部407へ出力する。
画素復元部407は、入力されるデータに基づいて画素(画素値)を復元する。例えば、全体制御部408から入力される差分最大値取得信号が第2の信号である場合には、セレクター206から入力される差分値と、全体制御部408から入力される画素位置とに基づいて、その画素位置の画素(画素値)を復元する。或いは、セレクター206から入力されるエスケープのデータと、固定長/可変長切出部402から入力される差分値と、全体制御部408から入力される画素位置とに基づいて、その画素位置の画素(画素値)を復元する。一方、全体制御部408から入力される差分最大値取得信号が第1の信号である場合には、全体制御部408から入力される、画素位置のデータと、差分最大値に基づいて、その画素位置の画素(画素値)を復元する。なお、このようにして復元された画素(画素値)のデータ(画素データ)は、画素復元部407により出力され、例えば、所定のメモリに格納される。
全体制御部408は、本実施例に係る可変長復号化装置の全体動作を制御する。また、全体制御部408は、小領域サイズ格納FF(FlipFlop)411、符号化モード格納FF(FlipFlop)412、差分最大値個数格納FF(FlipFlop)413、セレクター(SEL)414、画素位置格納FF(FlipFlop)415を含む。また、全体制御部408は、更に、差分最大値位置情報格納FF(FlipFlop)416、セレクター(SEL)417、差分最大値格納FF(FlipFlop)418、閾値A格納FF(FlipFlop)419、閾値B格納FF(FlipFlop)420、テーブル選択部421を含む。
小領域サイズ格納FF411は、固定長/可変長切出部402から入力される小領域サイズを格納し、そのデータをセレクター414へ出力する。
符号化モード格納FF412は、固定長/可変長切出部402から入力される符号化モードを格納し、そのデータをセレクター414、417へ出力する。
差分最大値個数格納FF413は、固定長/可変長切出部402から入力される差分最大値の個数を格納し、そのデータをセレクター414へ出力する。
セレクター414は、小領域サイズ格納FF411、符号化モード格納FF412、差分最大値個数格納FF413の各々から入力されるデータと、画素位置格納FF415から入力される画素位置とに基づいて、固定長情報又は可変長情報を生成する。但し、差分最大値個数格納FF413から入力される個数は、上記のとおり、実際の個数よりも一つ少ない。そこで、ここでは、差分最大値個数格納FF413から入力されるデータが表す個数に1を加えた個数を用いて、固定長情報又は可変長情報の生成を行う。また、セレクター414は、このようにして生成した固定長情報又は可変長情報を固定長/可変長切出部402へ出力する。ここで、固定長情報は、次に切り出すデータが固定長符号であることを示す情報である。また、可変長情報は、次に切り出すデータが可変長符号であることを示す情報である。なお、符号化データのデータ構造は、図17(a),(b) に示したように、符号化モードに応じて予め定められている。従って、小領域サイズ格納FF411、符号化モード格納FF412、差分最大値個数格納FF413、画素位置格納FF415の各々からのデータに基づいて、次に切り出すデータが固定長符号であるのか、可変長符号のデータであるのかを、決定することが可能である。
画素位置格納FF415は、復号化対象(処理対象)の画素位置を格納し、画素位置をセレクター414、417、及び画素復元部407へ出力する。また、画素位置格納FF415は、固定長/可変長切出部402から入力される画素更新信号に基づいて、格納している復号化対象の画素位置を更新する。
差分最大値位置情報格納FF416は、固定長/可変長切出部402から入力される差分最大値の位置情報(差分最大値が得られた画素の位置情報)のデータを格納し、そのデータをセレクター417へ出力する。
セレクター417は、符号化モード格納FF412、画素位置格納FF415、差分最大値位置情報格納FF416の各々からのデータに基づいて、差分最大値取得信号として、第1の信号又は第2の信号を出力する。例えば、符号化モード格納FF412から入力されるデータが符号化モード1を表すデータであるときに、差分最大値位置情報格納FF416と画素位置格納FF415の各々から入力されるデータが次のような場合に、第1の信号を出力する。すなわち、差分最大値位置情報格納FF416から入力されるデータが表す位置情報と、画素位置格納FF415から入力されるデータが表す画素位置が一致する場合に、差分最大値取得信号として、第1の信号を出力する。一方、それ以外の場合には、差分最大値取得信号として、第2の信号を出力する。
差分最大値格納FF418は、固定長/可変長切出部402から入力される差分最大値を格納し、差分最大値をテーブル選択部421及び画素復元部407へ出力する。
閾値A格納FF419は、外部から入力される閾値Aを格納する。また、閾値Aをテーブル選択部421へ出力する。
閾値B格納FF420は、外部から入力される閾値Bを格納する。また、閾値Bをテーブル選択部421へ出力する。
テーブル選択部421は、小領域の復号化に使用する可変長符号化テーブルを、テーブル記憶部203、204、205に記憶されている複数の可変長符号化テーブルの中から選択するためのテーブル選択情報を生成する。例えば、差分最大値格納FF418から入力される差分最大値と、閾値A格納FF419から入力される閾値Aと、閾値B格納FF420から入力される閾値Bとに基づいて、そのテーブル選択情報を生成する。そして、生成したテーブル選択情報をセレクター206へ出力する。
次に、このような構成を有する本実施例に係る可変長復号化装置の動作を説明する。
図19A、図19B、図19C、及び図19Dは、本実施例に係る可変長復号化装置が符号化データを画像の小領域毎に可変長復号化するときの動作を示すフローチャートである。
図19A、図19B、図19C、及び図19Dに示したように、本動作が開始すると、まず、固定長/可変長切出部402は、メモリ401に格納されている符号化データ(図16BのS618で形成された符号化データ)を取得する(S701)。
次に、その符号化データに含まれる小領域サイズのデータを復号化する(S702)。例えば、固定長/可変長切出部402が、取得した符号化データから、固定長符号のデータである小領域サイズのデータを切り出し、それを全体制御部408の小領域サイズ格納FF411へ出力する。そして、それを小領域サイズ格納FF411が格納する。
次に、残りの符号化データを小領域毎に可変長復号化する処理を行う(S703乃至S726)。例えば、それが次のようにして行われる。
まず、画素位置格納FF415をクリアし、次に、処理対象とする小領域の符号化データに含まれる符号化モードのデータを復号化する(S703)。例えば、固定長/可変長切出部402が、セレクター414から入力される固定長情報に応じて、処理対象とする小領域の符号化データから、固定長符号のデータである符号化モードのデータを切り出す。そして、それを、全体制御部408の符号化モード格納FF412へ出力し、それを符号化モード格納FF412が格納する。
次に、符号化モード格納FF412に格納されたデータが表す符号化モードに応じて、異なる復号化処理を行う。すなわち、それが符号化モード0の場合には(S703がYes)、符号化モード0に応じた復号化処理を行う(S704乃至S713)。一方、それが符号化モード1の場合には(S703がNo)、符号化モード1に応じた復号化処理を行う(S714乃至S724)。
例えば、符号化モード0に応じた復号化処理は、次のようにして行われる。
なお、符号化モード0に応じた復号化処理は、基本的には、図12A及び図12Bに示したS503乃至S512に示した処理と同様となる。
まず、処理対象とする小領域の符号化データに含まれる差分最大値のデータを復号化する(S704)。例えば、固定長/可変長切出部402が、セレクター414から入力される固定長情報に応じて、処理対象とする小領域の符号化データから、固定長符号のデータである差分最大値のデータを切り出す。そして、それを、全体制御部408の差分最大値格納FF418へ出力し、それを差分最大値格納FF418が格納する。
次に、テーブル選択部421は、差分最大値格納FF418から入力される差分最大値と閾値A格納FF419から入力される閾値Aとを用いて、差分最大値の絶対値が閾値A未満であるか否かを判定する(S705)。ここで、その判定結果がYesの場合には、テーブル選択部421が、可変長符号が割り当てられている差分値の最大値又は最小値が、その差分最大値と一致する第1の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する(S706)。また、S706では、テーブル選択部421が、生成したテーブル選択情報をセレクター206へ出力する。
一方、S705の判定結果がNoの場合には、テーブル選択部421が、閾値B格納FF420からの閾値Bを更に用いて、差分最大値の絶対値が閾値B未満であるか否かを判定する(S707)。ここで、その判定結果がYesの場合には、テーブル選択部421が、可変長符号が割り当てられている差分値の最大値又は最小値が、その差分最大値と一致する第2の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する(S708)。また、S708では、テーブル選択部421が、そのテーブル選択情報をセレクター206へ出力する。
一方、S707の判定結果がNoの場合には、テーブル選択部421が、第3の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する(S709)。また、S709では、テーブル選択部421が、そのテーブル選択情報をセレクター206へ出力する。
S706、S708、又はS709の後は、生成されたテーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象とする小領域の符号化データを画素毎に可変長復号化し画素を復元する処理を行う(S710乃至S713)。例えば、それが次のようにして行われる。
まず、生成されたテーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象とする小領域の符号化データに含まれる処理対象画素の差分値の符号化データを可変長復号化する(S710)。例えば、固定長/可変長切出部402が、セレクター414から入力される可変長情報に応じて、処理対象とする小領域の符号化データから、処理対象画素の差分値の可変長符号のデータを切り出す。そして、切り出したデータを、テーブル記憶部203、204、205へ出力する。テーブル記憶部203、204の各々は、固定長/可変長切出部402から入力される可変長符号に応じて、対応する差分値を有する可変長符号化テーブル毎に、対応する差分値を出力する。また、テーブル記憶部205は、固定長/可変長切出部402から入力される可変長符号に応じて、対応する差分値又はエスケープを出力する。また、テーブル記憶部203、204、205の各々は、固定長/可変長切出部402から入力される可変長符号から、その可変長符号の符号長を求め、その符号長をセレクター206へ出力する。セレクター206は、テーブル選択部421から入力されるテーブル選択情報に応じて、テーブル記憶部203、204、205からの複数の入力の中の一部を選択する。例えば、テーブル選択情報に応じて、テーブル記憶部203からの符号長に係る入力と、テーブル記憶部203からの差分値に係る複数の入力の中の一つとを選択する。或いは、テーブル選択情報に応じて、テーブル記憶部204からの符号長に係る入力と、テーブル記憶部204からの差分値に係る複数の入力の中の一つとを選択する。若しくは、テーブル選択情報に応じて、テーブル記憶部205からの入力を選択する。そして、選択した入力からの符号長を固定長/可変長切出部202へ出力し、選択した入力からの差分値又はエスケープを画素復元部407へ出力する。なお、セレクター206がエスケープを出力した場合には、それが固定長/可変長切出部402へも出力される。この場合は、固定長/可変長切出部402が、そのエスケープに係る可変長符号(エスケープ符号)に続く固定長符号のデータ(閾値B以上だった場合の差分値のデータ)を符号化データから切り出す。そして、その切り出したデータを画素復元部407へ出力する。
このようにして、処理対象画素の差分値の可変長復号化が終了すると、次に、画素復元部407が、セレクター206、固定長/可変長切出部402、及び画素位置格納FF415から入力されるデータに基づいて、画素の復元を行う(S711)。すなわち、処理対象画素の画素値を復元する。例えば、画素復元部407が、セレクター206から入力される差分値と、画素位置格納FF415から入力される画素位置とに基づいて、画素の復元を行う。或いは、画素復元部407が、セレクター206から入力されるエスケープと、固定長/可変長切出部402から入力される差分値と、画素位置格納FF415から入力される画素位置とに基づいて、画素の復元を行う。
このようにして、処理対象画素の復元が終了すると、次に、処理対象とする小領域に含まれる全画素の差分値の可変長復号化を終了したか否かを判定する(S712)。ここで、その判定結果がNoの場合には、処理対象とする小領域において、処理対象画素を次の画素に変更する(S713)。すなわち、処理対象画素位置を更新する。S713の後は、S710へ戻り、以降は、S712の判定結果がYesになるまで、上記のS710乃至S713の処理を繰り返す。
一方、符号化モード1に応じた復号化処理は、次のようにして行われる。
まず、処理対象とする小領域の符号化データに含まれる、差分最大値のデータ、差分最大値の個数のデータ、差分最大値の位置情報のデータを復号化する(S714)。例えば、固定長/可変長切出部402が、セレクター414から入力される固定長情報に応じて、処理対象とする小領域の符号化データから、固定長符号のデータである上記の各データを順次切り出す。すなわち、差分最大値のデータ、差分最大値の個数のデータ、差分最大値の位置情報のデータを、順次切り出す。そして、切り出した差分最大値を全体制御部408の差分最大値格納FF418へ出力し、それを差分最大値格納FF418が格納する。また、切り出した差分最大値の個数を全体制御部408の差分最大値個数格納FF413へ出力し、それを差分最大値個数格納FF413が格納する。また、切り出した差分最大値の位置情報を全体制御部408の差分最大値位置情報格納FF416へ出力し、それを差分最大値位置情報格納FF416が格納する。
次に、S715乃至S719の処理を行う。S715乃至S719の処理は、上記のS705乃至S709の処理と同様であるので、ここでは、その説明を省略する。
S716、S718、又はS719の後は、生成されたテーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象とする小領域の符号化データを画素毎に可変長復号化し画素を復元する処理を行う(S720乃至S724)。但し、符号化モード1に応じたデータ構造の符号化データには、差分最大値が得られた画素の差分値の符号化データは含まれない。そこで、差分最大値が得られた画素の差分値については、全体制御部408のセレクター417から出力される差分最大値取得信号に基づいて、全体制御部408の差分最大値格納FF418から出力されるデータから取得する。
例えば、S720乃至S724の処理が次のようにして行われる。
まず、画素復元部407は、処理対象画素(復号対象画素)の位置と、差分最大値の位置情報(差分最大値が得られた画素の位置情報)が示す位置とが一致するか否かを判定する(S720)。例えば、セレクター417から入力される差分最大値取得信号が第1の信号である場合に、処理対象画素の位置と差分最大値の位置情報が示す位置とが一致すると判定する。一方、セレクター417から入力される差分最大値取得信号が第2の信号である場合には、処理対象画素の位置と差分最大値の位置情報が示す位置とが一致しないと判定する。なお、上記のとおり、第1の信号は、符号化モード1の場合であって処理対象画素の位置と差分最大値の位置情報が示す位置とが一致する場合に、セレクター417から出力される信号である。また、第2の信号は、それ以外の場合に、セレクター417から出力される信号である。
S720の判定において、その判定結果がYesの場合にはS722へ進み、Noの場合には、S721の処理を行う。なお、S721の処理は上記のS710の処理と同様であるので、ここでは、その説明を省略する。
次に、画素復元部407は画素の復元を行う(S722)。すなわち、処理対象画素の画素値を復元する。例えば、S720の判定結果がYesであった場合には、上記のS711と同様の処理により、画素の復元を行う。一方、S720の判定結果がNoであった場合には、この時(差分最大値取得信号が第1の信号である時でもある)に、差分最大値格納FF418から入力されるデータが表す差分最大値を取得することにより、画素の復元を行う。
次に、S723の判定処理を行い、その判定結果がNoの場合には、S724の処理を行ってS720へ戻る。S723及びS724の処理は、上記のS712及びS713の処理と同様であるので、ここでは、その説明を省略する。
また、S723の判定結果がYesの場合には、725の判定処理を行い、その判定結果がNoの場合には、S726の処理を行ってS703へ戻る。S725及びS726の処理は、図12Bに示したS513及びS514の処理と同様であるので、ここでは、その説明を省略する。一方、S725の判定結果がYesの場合は、本フローが終了する。
以上のように、本実施例に係る可変長復号化装置によれば、本実施例に係る可変長符号化装置により符号化された符号化データを復号化することができる。
以上、本発明の実施例を説明したが、本発明は、上記した各実施例に限定されることなく、本発明の要旨を逸脱しない範囲内で種々の改良・変更が可能である。
例えば、実施例1に係る可変長符号装置では、各小領域の可変長符号化において、小領域の各画素の差分値を求める処理を2回行っているが、これを1回とすることも可能である。この場合は、差分値計算部102が、一度求めた、小領域の各画素の差分値を保持しておき、選択された可変長符号化テーブルを用いて実際に小領域の可変長符号化を行う際には、その保持していたデータを用いて行うようにすることが可能である。
また、各実施例に係る可変長符号化装置及び可変長復号化装置では、可変長符号化テーブルの種類毎にテーブル記憶部を備える構成であったが、可変長符号化テーブルを記憶するテーブル記憶部の構成は、これに限定されるものではない。例えば、3種類の可変長符号化テーブルを1つのテーブル記憶部が記憶する構成とすることも可能である。
また、可変長符号化テーブルの種類を3種類としたが、その種類は3種類に限定されるものではない。
また、第2の種類の可変長符号化テーブルは、図3(b) に示した手順により作成されるものであったが、この手順の中で、可変長符号の入れ換え(S205)を省いて、第2の種類の可変長符号化テーブルを作成するようにすることも可能である。また、第3の種類の可変長符号化テーブルは、図3(c) に示した手順により作成されるものであったが、この手順の中で、可変長符号の入れ換え(S305)を省いて、第3の種類の可変長符号化テーブルを作成するようにすることも可能である。
また、テーブル選択情報が差分最大値又は閾値Bのデータを含むように構成し、セレクター107又は206が、そのデータに基づいて、対応する入力を選択するように構成することも可能である。
以上の実施例1及び2を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
画像を小領域毎に可変長符号化する装置であって、
小領域に含まれる画素における、画素値と予測画素値との間の差分値、を算出する算出部と、
前記算出部により算出された差分値の中から、絶対値が所定値となる差分値を所定差分値として取得する取得部と、
前記取得部により取得された所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択部と、
前記選択部により選択された可変長符号化テーブルを用いて、前記算出部により算出された差分値を可変長符号化する可変長符号化部と、
を備えることを特徴とする可変長符号化装置。
(付記2)
前記小領域毎の小領域符号化データを含む、前記画像の符号化データを形成するデータ形成部、
を更に備え、
前記小領域符号化データは、前記取得部により取得された所定差分値と前記可変長符号化部により可変長符号化された可変長符号とを含む、
ことを特徴とする付記1記載の可変長符号化装置。
(付記3)
前記取得部により取得された所定差分値の可変長符号の符号長と前記所定差分値の個数との積により求めた第1の符号量と、画素位置を表すデータの符号長と前記所定差分値の個数との積に前記所定差分値の個数を表すデータの符号長を加えることにより求めた第2の符号量とを比較し、前記第1の符号量が前記第2の符号量以下である場合には符号化モードを第1の符号化モードと判定し、前記第1の符号量が前記第2の符号量よりも大きい場合には符号化モードを第2の符号化モードと判定する判定部と、
前記小領域毎の、前記判定部により判定された符号化モードに応じた小領域符号化データを含む、前記画像の符号化データを形成するデータ形成部と、
を更に備えることを特徴とする付記1記載の可変長符号化装置。
(付記4)
前記判定部により判定された符号化モードに応じた小領域符号化データは、
前記判定部により判定された符号化モードが前記第1の符号化モードである場合は、前記取得部により取得された所定差分値と、前記可変長符号化部により可変長符号化された可変長符号とを含み、
前記判定部により判定された符号化モードが前記第2の符号化モードである場合は、前記取得部により取得された所定差分値と、前記所定差分値の個数と、前記所定差分値が得られた画素位置と、前記所定差分値の可変長符号を除く前記可変長符号化部により可変長符号化されたデータとを含む、
ことを特徴とする付記3記載の可変長符号化装置。
(付記5)
前記選択部は、前記取得部により取得された所定差分値の絶対値が第1の閾値未満である場合には、第1の種類の可変長符号化テーブルであって、且つ、可変長符号が割り当てられている差分値の最大値又は最小値が前記所定差分値と一致する可変長符号化テーブルを選択する、
ことを特徴とする付記1乃至4の何れか一つに記載の可変長符号化装置。
(付記6)
前記第1の種類の可変長符号化テーブルは、差分値の出現確率を表す確率分布関数を正規分布関数とし、前記正規分布関数における差分値の最大値及び最小値が、前記第1の種類の可変長符号化テーブルにおいて可変長符号が割り当てられる差分値の最大値及び最小値になるように、前記正規分布関数を再計算することにより作成される、
ことを特徴とする付記5記載の可変長符号化装置。
(付記7)
前記選択部は、前記取得部により取得された所定差分値の絶対値が前記第1の閾値以上であって第2の閾値未満である場合には、第2の種類の可変長符号化テーブルであって、且つ、可変長符号が割り当てられている差分値の最大値又は最小値が前記所定差分値と一致する可変長符号化テーブルを選択する、
ことを特徴とする付記5又は6記載の可変長符号化装置。
(付記8)
前記第2の種類の可変長符号化テーブルは、差分値の出現確率を表す確率分布関数を正規分布関数とし、前記正規分布関数における差分値の最大値及び最小値が、前記第2の種類の可変長符号化テーブルの中で可変長符号が割り当てられる差分値の最大値及び最小値になるように、前記正規分布関数を再計算することにより作成される、
ことを特徴とする付記7記載の可変長符号化装置。
(付記9)
前記第2の種類の可変長符号化テーブルは、更に、差分値の最大値に割り当てられる可変長符号の符号長が、差分値の最大値付近の差分値に割り当てられる可変長符号の符号長よりも短くなるように、割り当てる可変長符号を入れ換えると共に、差分値の最小値に割り当てられる可変長符号の符号長が、差分値の最小値付近の差分値に割り当てられる可変長符号の符号長よりも短くなるように、割り当てる可変長符号を入れ換えることにより作成される、
ことを特徴とする付記8記載の可変長符号化装置。
(付記10)
前記選択部は、前記取得部により取得された所定差分値の絶対値が前記第2の閾値以上である場合には、絶対値が前記第2の閾値以上になる差分値にエスケープ符号が割り当てられている第3の種類の可変長符号化テーブルを選択する、
ことを特徴とする付記7乃至9の何れか一つに記載の可変長符号化装置。
(付記11)
前記第3の種類の可変長符号化テーブルは、差分値の出現確率を表す確率分布関数を正規分布関数とし、前記正規分布関数における差分値の絶対値が前記第2の閾値以上になる出現確率をエスケープの出現確率とすると共に、前記エスケープにエスケープ符号を割り当てることによって作成される、
ことを特徴とする付記10記載の可変長符号化装置。
(付記12)
前記第3の種類の可変長符号化テーブルは、更に、前記エスケープ符号の符号長が、前記第2の閾値付近の差分値に割り当てられる可変長符号の符号長よりも短くなるように、割り当てる符号を入れ換えることにより作成される、
ことを特徴とする付記11記載の可変長符号化装置。
(付記13)
画像の符号化データを前記画像の小領域毎に可変長復号化する装置であって、
前記小領域毎の、小領域に含まれる画素の画素値と予測画素値との間の差分値の絶対値が所定値となる所定差分値と可変長符号とを有する小領域符号化データを含む、前記画像の符号化データを取得する取得部と、
前記取得部により取得された符号化データの小領域符号化データに含まれる所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択部と、
前記選択部により選択された可変長符号化テーブルを用いて、前記小領域符号化データに含まれる可変長符号を可変長復号化する可変長復号化部と、
を備えることを特徴とする可変長復号化装置。
(付記14)
前記所定値は最大値である、
ことを特徴とする付記13記載の可変長復号化装置。
(付記15)
前記取得部は、前記小領域毎に、第1の符号化モードと、前記所定差分値と、可変長符号とを含む小領域符号化データ、又は、第2の符号化モードと、前記所定差分値と、前記所定差分値の個数と、前記所定差分値が得られた画素位置と、前記所定差分値の可変長符号を除く可変長符号とを含む小領域符号化データ、を含む、前記画像の符号化データを取得する、
ことを特徴とする付記13記載の可変長復号化装置。
(付記16)
前記可変長復号化部により可変長復号化されたデータに基づいて画素を復元する復元部、
を更に備え、
前記取得部により取得された符号化データの小領域符号化データに含まれる符号化モードが前記第2の符号化モードである場合、前記復元部は、前記小領域符号化データに含まれる前記所定差分値及び前記所定差分値が得られた画素位置に基づいて、前記所定差分値が得られた画素位置の差分値を取得し、前記所定差分値が得られた画素を復元する、
ことを特徴とする付記15記載の可変長復号化装置。
(付記17)
前記選択部は、前記所定差分値の絶対値が第1の閾値未満である場合には、第1の種類の可変長符号化テーブルであって、且つ、可変長符号が割り当てられている差分値の最大値又は最小値が前記所定差分値と一致する可変長符号化テーブルを選択する、
ことを特徴とする付記13乃至16の何れか一つに記載の可変長復号化装置。
(付記18)
前記選択部は、前記所定差分値の絶対値が前記第1の閾値以上であって第2の閾値未満である場合には、第2の種類の可変長符号化テーブルであって、且つ、可変長符号が割り当てられている差分値の最大値又は最小値が前記所定差分値と一致する可変長符号化テーブルを選択する、
ことを特徴とする付記17記載の可変長復号化装置。
(付記19)
前記選択部は、前記所定差分値の絶対値が前記第2の閾値以上である場合には、絶対値が前記第2の閾値以上になる差分値にエスケープ符号が割り当てられている第3の種類の可変長符号化テーブルを選択する、
ことを特徴とする付記18記載の可変長復号化装置。
(付記20)
画像を小領域毎に可変長符号化する方法であって、
小領域に含まれる画素における、画素値と予測画素値との間の差分値、を算出する算出工程と、
前記算出工程により算出された差分値の中から、絶対値が所定値となる差分値を所定差分値として取得する取得工程と、
前記取得工程により取得された所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択工程と、
前記選択工程により選択された可変長符号化テーブルを用いて、前記算出工程により算出された差分値を可変長符号化する可変長符号化工程と、
を含む、
ことを特徴とする可変長符号化方法。
(付記21)
前記小領域毎の小領域符号化データを含む、前記画像の符号化データを形成するデータ形成工程、
を更に含み、
前記小領域符号化データは、前記取得工程により取得された所定差分値と前記可変長符号化工程により可変長符号化された可変長符号とを含む、
ことを特徴とする付記20記載の可変長符号化方法。
(付記22)
前記取得工程により取得された所定差分値の可変長符号の符号長と前記所定差分値の個数との積により、第1の符号量を算出する第1の算出工程と、
画素位置を表すデータの符号長と前記所定差分値の個数との積に前記所定差分値の個数を表すデータの符号長を加えることにより、第2の符号量を算出する第2の算出工程と、
前記第1の算出工程により算出された第1の符号量と前記第2の算出工程により算出された第2の符号量とを比較する比較工程と、
前記比較工程による比較の結果、前記第1の符号量が前記第2の符号量以下である場合には符号化モードを第1の符号化モードと判定し、前記第1の符号量が前記第2の符号量よりも大きい場合には符号化モードを第2の符号化モードと判定する判定工程と、
前記小領域毎の、前記判定工程により判定された符号化モードに応じた小領域符号化データを含む、前記画像の符号化データを形成するデータ形成工程と、
を更に含むことを特徴とする付記20記載の可変長符号化方法。
(付記23)
前記判定工程により判定された符号化モードに応じた小領域符号化データは、
前記判定工程により判定された符号化モードが前記第1の符号化モードである場合は、前記取得工程により取得された所定差分値と、前記可変長符号化工程により可変長符号化された可変長符号とを含み、
前記判定工程により判定された符号化モードが前記第2の符号化モードである場合は、前記取得工程により取得された所定差分値と、前記所定差分値の個数と、前記所定差分値が得られた画素位置と、前記所定差分値の可変長符号を除く前記可変長符号化部により可変長符号化されたデータとを含む、
ことを特徴とする付記22記載の可変長符号化方法。
(付記24)
画像の符号化データを前記画像の小領域毎に可変長復号化する方法であって、
前記小領域毎の、小領域に含まれる画素における、画素値と予測画素値との間の差分値、の絶対値が所定値となる差分値である所定差分値と、可変長符号とを含む小領域符号化データを含む、前記画像の符号化データを取得する取得工程と、
前記取得工程により取得された符号化データの小領域符号化データに含まれる所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択工程と、
前記選択工程により選択された可変長符号化テーブルを用いて、前記小領域符号化データに含まれる可変長符号を可変長復号化する可変長復号化工程と、
を含むことを特徴とする可変長復号化方法。
(付記25)
前記所定値は最大値である、
ことを特徴とする付記24記載の可変長復号化方法。
(付記26)
前記取得工程は、前記小領域毎に、第1の符号化モードと、前記所定差分値と、可変長符号とを含む小領域符号化データ、又は、第2の符号化モードと、前記所定差分値と、前記所定差分値の個数と、前記所定差分値が得られた画素位置と、前記所定差分値の可変長符号を除く可変長符号とを含む小領域符号化データ、を含む、前記画像の符号化データを取得する、
ことを特徴とする付記24記載の可変長復号化方法。
(付記27)
前記可変長復号化工程により可変長復号化されたデータに基づいて画素を復元する復元工程、
を更に含み、
前記取得工程により取得された符号化データの小領域符号化データに含まれる符号化モードが前記第2の符号化モードである場合、前記復元工程は、前記小領域符号化データに含まれる前記所定差分値及び前記所定差分値が得られた画素位置に基づいて、前記所定差分値が得られた画素位置の差分値を取得し、前記所定差分値が得られた画素を復元する、
ことを特徴とする付記26記載の可変長復号化方法。
101 メモリ
102 差分値計算部
103 予測画素値作成部
104、105、106 テーブル記憶部
107 セレクター
108 データ形成部
109 全体制御部
111 最大値格納FF
112 最小値格納FF
113、114、115 比較器
116 セレクター
117 閾値A格納FF
118 閾値B格納FF
119 テーブル選択部
201 メモリ
202 固定長/可変長切出部
203、204、205 テーブル記憶部
206 セレクター
207 画素復元部
208 全体制御部
211 小領域サイズ格納FF
212 セレクター
213 画素位置格納FF
214 差分最大値/閾値B格納FF
215 閾値A格納FF
216 閾値B格納FF
217 テーブル選択部
308 データ形成部
309 全体制御部
311 最大値格納FF
312 最小値格納FF
313、314、315 比較器
316 セレクター
317 閾値A格納FF
318 閾値B格納FF
319 テーブル選択部
320 最大値/最小値個数格納FF
321 加算器
322 画素位置出力部
323 最大値/最小値位置情報格納FF
324 符号化モード判定部
331 符号化対象画像
401 メモリ
402 固定長/可変長切出部
407 画素復元部
408 全体制御部
411 小領域サイズ格納FF
412 符号化モード格納FF
413 差分最大値個数格納FF
414 セレクター
415 画素位置格納FF
416 差分最大値位置情報格納FF
417 セレクター
418 差分最大値格納FF
419 閾値A格納FF
420 閾値B格納FF
421 テーブル選択部

Claims (5)

  1. 画像を小領域毎に可変長符号化する装置であって、
    小領域に含まれる画素における、画素値と予測画素値との間の差分値、を算出する算出部と、
    前記算出部により算出された差分値の中から、絶対値が所定値となる差分値を所定差分値として取得する取得部と、
    前記取得部により取得された所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択部と、
    前記選択部により選択された可変長符号化テーブルを用いて、前記算出部により算出された差分値を可変長符号化する可変長符号化部と、
    を備えることを特徴とする可変長符号化装置。
  2. 前記小領域毎の小領域符号化データを含む、前記画像の符号化データを形成するデータ形成部、
    を更に備え、
    前記小領域符号化データは、前記取得部により取得された所定差分値と前記可変長符号化部により可変長符号化された可変長符号とを含む、
    ことを特徴とする請求項1記載の可変長符号化装置。
  3. 画像の符号化データを前記画像の小領域毎に可変長復号化する装置であって、
    前記小領域毎の、小領域に含まれる画素の画素値と予測画素値との間の差分値の絶対値が所定値となる所定差分値と可変長符号とを有する小領域符号化データを含む、前記画像の符号化データを取得する取得部と、
    前記取得部により取得された符号化データの小領域符号化データに含まれる所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択部と、
    前記選択部により選択された可変長符号化テーブルを用いて、前記小領域符号化データに含まれる可変長符号を可変長復号化する可変長復号化部と、
    を備えることを特徴とする可変長復号化装置。
  4. 画像を小領域毎に可変長符号化する方法であって、
    小領域に含まれる画素における、画素値と予測画素値との間の差分値、を算出する算出工程と、
    前記算出工程により算出された差分値の中から、絶対値が所定値となる差分値を所定差分値として取得する取得工程と、
    前記取得工程により取得された所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択工程と、
    前記選択工程により選択された可変長符号化テーブルを用いて、前記算出工程により算出された差分値を可変長符号化する可変長符号化工程と、
    を含む、
    ことを特徴とする可変長符号化方法。
  5. 画像の符号化データを前記画像の小領域毎に可変長復号化する方法であって、
    前記小領域毎の、小領域に含まれる画素における、画素値と予測画素値との間の差分値、の絶対値が所定値となる差分値である所定差分値と、可変長符号とを含む小領域符号化データを含む、前記画像の符号化データを取得する取得工程と、
    前記取得工程により取得された符号化データの小領域符号化データに含まれる所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択工程と、
    前記選択工程により選択された可変長符号化テーブルを用いて、前記小領域符号化データに含まれる可変長符号を可変長復号化する可変長復号化工程と、
    を含むことを特徴とする可変長復号化方法。
JP2010279270A 2010-12-15 2010-12-15 可変長符号化装置及び可変長復号化装置 Withdrawn JP2012129785A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010279270A JP2012129785A (ja) 2010-12-15 2010-12-15 可変長符号化装置及び可変長復号化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010279270A JP2012129785A (ja) 2010-12-15 2010-12-15 可変長符号化装置及び可変長復号化装置

Publications (1)

Publication Number Publication Date
JP2012129785A true JP2012129785A (ja) 2012-07-05

Family

ID=46646356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010279270A Withdrawn JP2012129785A (ja) 2010-12-15 2010-12-15 可変長符号化装置及び可変長復号化装置

Country Status (1)

Country Link
JP (1) JP2012129785A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017011677A (ja) * 2015-04-15 2017-01-12 シンボリック アイオー コーポレーション 高密度ハイパーioデジタル保持のための方法及び装置
US9628108B2 (en) 2013-02-01 2017-04-18 Symbolic Io Corporation Method and apparatus for dense hyper IO digital retention
US9817728B2 (en) 2013-02-01 2017-11-14 Symbolic Io Corporation Fast system state cloning
US10061514B2 (en) 2015-04-15 2018-08-28 Formulus Black Corporation Method and apparatus for dense hyper IO digital retention
US10133636B2 (en) 2013-03-12 2018-11-20 Formulus Black Corporation Data storage and retrieval mediation system and methods for using same
US10572186B2 (en) 2017-12-18 2020-02-25 Formulus Black Corporation Random access memory (RAM)-based computer systems, devices, and methods
US10725853B2 (en) 2019-01-02 2020-07-28 Formulus Black Corporation Systems and methods for memory failure prevention, management, and mitigation

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9628108B2 (en) 2013-02-01 2017-04-18 Symbolic Io Corporation Method and apparatus for dense hyper IO digital retention
US9817728B2 (en) 2013-02-01 2017-11-14 Symbolic Io Corporation Fast system state cloning
US9977719B1 (en) 2013-02-01 2018-05-22 Symbolic Io Corporation Fast system state cloning
US10789137B2 (en) 2013-02-01 2020-09-29 Formulus Black Corporation Fast system state cloning
US10133636B2 (en) 2013-03-12 2018-11-20 Formulus Black Corporation Data storage and retrieval mediation system and methods for using same
JP2017011677A (ja) * 2015-04-15 2017-01-12 シンボリック アイオー コーポレーション 高密度ハイパーioデジタル保持のための方法及び装置
US10061514B2 (en) 2015-04-15 2018-08-28 Formulus Black Corporation Method and apparatus for dense hyper IO digital retention
US10120607B2 (en) 2015-04-15 2018-11-06 Formulus Black Corporation Method and apparatus for dense hyper IO digital retention
US10346047B2 (en) 2015-04-15 2019-07-09 Formulus Black Corporation Method and apparatus for dense hyper IO digital retention
US10606482B2 (en) 2015-04-15 2020-03-31 Formulus Black Corporation Method and apparatus for dense hyper IO digital retention
US10572186B2 (en) 2017-12-18 2020-02-25 Formulus Black Corporation Random access memory (RAM)-based computer systems, devices, and methods
US10725853B2 (en) 2019-01-02 2020-07-28 Formulus Black Corporation Systems and methods for memory failure prevention, management, and mitigation

Similar Documents

Publication Publication Date Title
JP2012129785A (ja) 可変長符号化装置及び可変長復号化装置
JP4418762B2 (ja) 画像符号化装置及び画像復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP5461419B2 (ja) 画素予測値生成手順自動生成方法、画像符号化方法、画像復号方法、それらの装置、それらのプログラム、およびこれらのプログラムを記録した記録媒体
JP5302336B2 (ja) 画素のブロックを圧縮する方法及びシステム
JP5719401B2 (ja) ブロックサイズ決定方法、映像符号化装置、及びプログラム
US7689048B2 (en) Image encoding apparatus, method, and computer-readable storage medium for encoding a pixel value
JP4695706B2 (ja) エントロピー符号化及び復号のための方法及び装置
JP4769305B2 (ja) 画像信号符号化方法及び復号方法、情報源符号化及び復号方法、それらの装置、及びそれらのプログラム並びにプログラムを記録した記憶媒体
JP2015526008A (ja) 少なくとも1つの第2の画像成分の参照ブロックに対して第1の画像成分の現在ブロックを符号化するための方法、符号化装置および対応するコンピュータプログラム
CN108810532B (zh) 图像解码装置
JP6962193B2 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化プログラムを記憶する記録媒体
JP2014179957A (ja) 画像符号化装置および画像復号化装置
US20140098865A1 (en) Device, method, and program for picture coding, and device, method, and program for picture decoding
WO2012081193A1 (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム、並びに動画像復号装置、動画像復号方法及び動画像復号プログラム
JP2009077176A (ja) 画像符号化装置及び画像復号装置並びにそれらの制御方法
US9369734B2 (en) Method and apparatus for encoding and decoding by wavelet transform
JP2015023506A (ja) 画像符号化装置及び画像復号化装置
JP6145965B2 (ja) 画像符号化装置及び画像復号化装置並びにプログラム
US11695928B2 (en) Dividing pattern determination device capable of reducing amount of computation, dividing pattern determination method, learning device, learning method, and storage medium
JP5582020B2 (ja) 動画像復号装置、動画像復号方法及び動画像復号プログラム
JP5848620B2 (ja) 画像符号化装置、方法、及びプログラム
JP5200854B2 (ja) 符号化装置、復号装置、及び画像処理システム
JP5582019B2 (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
TWI599216B (zh) 紋理磚壓縮及解壓縮方法以及使用該方法的裝置
JP4373423B2 (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: 20140304