(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6073506
(24)【登録日】2017年1月13日
(45)【発行日】2017年2月1日
(54)【発明の名称】エントロピー変更器及び方法
(51)【国際特許分類】
H03M 7/46 20060101AFI20170123BHJP
【FI】
H03M7/46
【請求項の数】53
【全頁数】36
(21)【出願番号】特願2015-559443(P2015-559443)
(86)(22)【出願日】2014年3月1日
(65)【公表番号】特表2016-514404(P2016-514404A)
(43)【公表日】2016年5月19日
(86)【国際出願番号】EP2014000529
(87)【国際公開番号】WO2014131526
(87)【国際公開日】20140904
【審査請求日】2015年8月27日
(31)【優先権主張番号】1303658.7
(32)【優先日】2013年3月1日
(33)【優先権主張国】GB
(73)【特許権者】
【識別番号】513156386
【氏名又は名称】グルロジック マイクロシステムズ オーワイ
【氏名又は名称原語表記】Gurulogic Microsystems Oy
(74)【代理人】
【識別番号】100127188
【弁理士】
【氏名又は名称】川守田 光紀
(72)【発明者】
【氏名】カレヴォ オッシ
【審査官】
北村 智彦
(56)【参考文献】
【文献】
特開平02−214226(JP,A)
【文献】
特開平03−006924(JP,A)
【文献】
特開昭55−050777(JP,A)
【文献】
特開昭56−021483(JP,A)
【文献】
特開平11−017959(JP,A)
【文献】
米国特許第05710561(US,A)
【文献】
欧州特許出願公開第02131501(EP,A1)
【文献】
特開平08−294142(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03M 3/00−11/00
IEEE Xplore
CiNii
(57)【特許請求の範囲】
【請求項1】
ビット単位方式で第1エントロピーを有する入力データビット(D1)のストリームを符号化し、第2エントロピーを有する対応エントロピー変更出力データ(D2)を生成するように動作可能であるエントロピー変更器(10)であって、
(a)ビット単位方式で出力データ(D2)を生成するように動作可能であり、但し、前記出力データ(D2)は、該出力データ(D2)に含まれる後続データに関する参照値として機能する最初のビットの情報を含み、
(b)前記出力データ(D2)は、入力データビット(D1)に存在する相互に類似のビットのランレングスを示すデータを更に含み、該相互に類似のビットのランレングスは、サイズにおいて実質的に制限されていることにより、最大ランレングス値(MaxRun)を超えることがなく、
(c)入力データ(D1)における前記最大ランレングス値(MaxRun)を実質的に超えるランレングスの1つ又は複数の出現が、前記出力データ(D2)に含まれる少なくとも1つのエスケープ符号によって示される、
ことを特徴とするエントロピー変更器(10)。
【請求項2】
相互に類似のビットの群の1つ又は複数の最大ランレングス(MaxRun)が、複数のエスケープ符号によって制御されることを特徴とする、請求項1に記載のエントロピー変更器(10)。
【請求項3】
データ値「0」により前記出力データ(D2)内に少なくとも1つのエスケープ符号を実装するように動作可能であることを特徴とする、請求項1又は2に記載のエントロピー変更器(10)。
【請求項4】
前記入力データビット(D1)のストリームの性質に応じて動的に変化する前記最大ランレングス値(MaxRun)を用いて、前記入力データビット(D1)のストリームを操作するように動作可能であることを特徴とする、請求項1、2又は3に記載のエントロピー変更器(10)。
【請求項5】
1つ又は複数の符号化装置(20)における後続の圧縮により圧縮データ(D3)を生成するために、前記入力データ(D1)を前記出力データ(D2)にフォーマットするデータプリプロセッサとして機能するように動作可能であることを特徴とする、請求項1から4の何れか1項に記載のエントロピー変更器(10)。
【請求項6】
前記1つ又は複数の符号化装置は、ODeltaコーダ、RLEコーダ、VLCコーダ、ハフマンコーダ、差分コーダ、算術コーダ、及びレンジコーダの1つ又は複数を含むことを特徴とする、請求項5に記載のエントロピー変更器(10)。
【請求項7】
別々に処理される複数の部分において前記入力データビット(D1)のストリームを操作するように動作可能であることを特徴とする、請求項1から6の何れか1項に記載のエントロピー変更器(10)。
【請求項8】
時間的に並列な方式で、即ち並列実行によって、前記複数の部分を操作するように動作可能であることを特徴とする、請求項7に記載のエントロピー変更器(10)。
【請求項9】
前記部分の1つ又は複数について相互に異なる最大ランレングス値(MaxRun)を用いることにより前記複数の部分を操作するように動作可能であることを特徴とする、請求項7又は8に記載のエントロピー変更器(10)。
【請求項10】
前記入力データ(D1)を圧縮してエントロピー変更出力データ(D2又はD3)を生成するエンコーダ(10、20)として機能するように実装されていることを特徴とする、請求項1から9の何れか1項に記載のエントロピー変更器(10)。
【請求項11】
前記入力データ(D1)に存在するビットストリングをエントロピー変更出力データ(D2又はD3)に存在するシンボルに変換することを補助するように動作可能であることを特徴とする、請求項1から10の何れか1項に記載のエントロピー変更器(10)。
【請求項12】
コンピュータハードウェアを備え、該コンピュータハードウェアは、機械可読データ記憶媒体に記録された1つ又は複数のソフトウェアを実行することにより、前記入力データビット(D1)のストリームを処理することで前記出力データ(D2)を生成するように動作可能であることを特徴とする、請求項1から11の何れか1項に記載のエントロピー変更器(10)。
【請求項13】
第1エントロピーを有する入力データビット(D3又はD4)のストリームを復号し、第2エントロピーを有する対応エントロピー変更出力データ(D5)を生成するように動作可能であるエントロピー変更器(60)であって、
(a)入力データ(D3又はD4)に含まれる後続データに関する参照値として機能する、その最初のビットの情報を使用して、ビット単位方式で前記入力データ(D3又はD4)を処理するように動作可能であり、
(b)元データ(D1)に存在する相互に類似のビットのランレングスを示し、かつ前記入力データ(D3又はD4)に存在するデータを処理するように動作可能であり、前記相互に類似のビットのランレングスは、サイズにおいて実質的に制限されていることにより、最大ランレングス値(MaxRun)を超えることがなく、
(c)前記入力データ(D3又はD4)に含まれる少なくとも1つのエスケープ符号によって示される通り、前記元データ(D1)における最大ランレングス値を実質的に超えるランレングスの1つ又は複数の出現を検出するように動作可能である、
ことを特徴とし、ここで前記入力データ(D3又はD4)は、前記元データ(D1)を符号化することにより作られたデータである、エントロピー変更器(60)。
【請求項14】
少なくとも1つのエスケープ符号を用いることにより、相互に類似のビットの群の1つ又は複数の最大ランレングス(MaxRun)を処理するように動作可能であることを特徴とする、請求項13に記載のエントロピー変更器(60)。
【請求項15】
複数のエスケープ符号を用いることにより、相互に類似のビットの群の1つ又は複数の最大ランレングス(MaxRun)を処理することを特徴とする、請求項14に記載のエントロピー変更器(60)。
【請求項16】
前記少なくとも1つのエスケープ符号が、前記入力データ(D3又はD4)内でデータ値「0」として実装されることを特徴とする、請求項13、14又は15に記載のエントロピー変更器(60)。
【請求項17】
入力データビット(D3又はD4)のストリームの性質に応じて動的に変化する前記最大ランレングス値(MaxRun)を用いて、入力データビット(D3又はD4)のストリームを操作するように動作可能であることを特徴とする、請求項13から16の何れか1項に記載のエントロピー変更器(60)。
【請求項18】
データビットの配列とは別に、前記入力データビット(D3又はD4)のストリームにおける最初のビットの値の情報を操作するように動作可能であることを特徴とする、請求項13から17の何れか1項に記載のエントロピー変更器(60)。
【請求項19】
前記入力データ(D3又はD4)に存在するデータ要素を復号し、逆エントロピー変更を適用することにより、復号されたビットストリームとして出力データ(D5)を生成するように動作可能であることを特徴とする、請求項13から18の何れか1項に記載のエントロピー変更器(60)。
【請求項20】
類似するビットの連続量を表すデータ値の配列に対して別に符号化される最初のビットの値を操作するように動作可能であることを特徴とする、請求項13から19の何れか1項に記載のエントロピー変更器(60)。
【請求項21】
前記入力データビットのストリームを操作する1つ又は複数の復号装置と協働して後処理に利用され、前記1つ又は複数の復号装置は、ODeltaコーダ、RLEコーダ、VLCコーダ、ハフマンコーダ、差分コーダ、算術コーダ及びレンジコーダの1つ又は複数を含むことを特徴とする、請求項13から20の何れか1項に記載のエントロピー変更器(60)。
【請求項22】
別々に復号された複数の部分において前記入力データビット(D3又はD4)のストリームを操作するように動作可能であることを特徴とする、請求項13から21の何れか1項に記載のエントロピー変更器(60)。
【請求項23】
時間的に並列の方式で、即ち並列実行により前記複数の部分を操作するように動作可能であることを特徴とする、請求項22に記載のエントロピー変更器(60)。
【請求項24】
前記部分の1つ又は複数について相互に異なる最大ランレングス値(MaxRun)を用いることにより、前記複数の部分を操作するように動作可能であることを特徴とする、請求項22又は23に記載のエントロピー変更器(60)。
【請求項25】
前記入力データ(D3又はD4)を展開してエントロピー変更出力データ(D5)を生成するデコーダ(50、60)として機能するように実装されていることを特徴とする、請求項13から24の何れか1項に記載のエントロピー変更器(60)。
【請求項26】
前記入力データ(D3又はD4)に存在するシンボルを出力データ(D5)に存在するビットストリングに変換することを補助するように動作可能であることを特徴とする、請求項13から25の何れか1項に記載のエントロピー変更器(60)。
【請求項27】
コンピュータハードウェアを備え、該コンピュータハードウェアは、機械可読データ記憶媒体に記録された1つ又は複数のソフトウェアを実行することにより、前記入力データビット(D3又はD4)のストリームを処理して出力データ(D5)を生成するように動作可能であることを特徴とする、請求項13から26の何れか1項に記載のエントロピー変更器(60)。
【請求項28】
エントロピー変更器(10)を用いて、ビット単位方式で第1エントロピーを有する入力データビット(D1)のストリームを符号化し、第2エントロピーを有する対応エントロピー変更出力データ(D2)を生成する方法であって、
(a)前記エントロピー変更器(10)を動作させて、ビット単位方式で前記出力データ(D2)を生成すること、但し、前記出力データ(D2)は、前記出力データ(D2)に含まれる後続データに関する参照値として機能する最初のビットの情報を含み、
(b)入力データビット(D1)に存在する相互に類似のビットのランレングスを示す更なるデータを前記出力データ(D2)に含めること、但し、前記相互に類似のビットのランレングスは、サイズにおいて実質的に制限されていることにより、最大ランレングス値(MaxRun)を超えることがなく、
(c)前記出力データ(D2)に含まれる少なくとも1つのエスケープ符号で、入力データ(D1)における最大ランレングス値を実質的に超えるランレングスの1つ又は複数の出現を示すこと、
を特徴とする方法。
【請求項29】
複数のエスケープ符号を用いて相互に類似のビットの群の1つ又は複数の最大ランレングス(MaxRun)を制御することを含むことを特徴とする、請求項28に記載の方法。
【請求項30】
データ値「0」により前記出力データ(D2)内に前記少なくとも1つのエスケープ符号を実装することを含むことを特徴とする、請求項28又は29に記載の方法。
【請求項31】
前記エントロピー変更器(10)を用いて、
前記入力データビット(D1)のストリームの性質に応じて動的に変化する前記最大ランレングス値(MaxRun)を用いて前記入力データビット(D1)のストリームを操作することを含むことを特徴とする、請求項28、29又は30に記載の方法。
【請求項32】
前記エントロピー変更器(10)を用いて、
1つ又は複数の符号化装置(20)における後続の圧縮により圧縮データ(D3)を生成するために、前記入力データ(D1)を前記出力データ(D2)にフォーマットするデータプリプロセッサとして機能することを含むことを特徴とする、請求項28から31の何れか1項に記載の方法。
【請求項33】
前記1つ又は複数の符号化装置が、ODeltaコーダ、RLEコーダ、VLCコーダ、ハフマンコーダ、差分コーダ、算術コーダ、及びレンジコーダの1つ又は複数を含むことを特徴とする、請求項32に記載の方法。
【請求項34】
前記エントロピー変更器(10)を用いて、
別々に処理される複数の部分において前記入力データビット(D1)のストリームを操作することを含むことを特徴とする、請求項28から33の何れか1項に記載の方法。
【請求項35】
前記エントロピー変更器(10)を用いて、
時間的に並列な方式で、即ち並列実行により、前記複数の部分を操作することを含むことを特徴とする、請求項34に記載の方法。
【請求項36】
前記エントロピー変更器(10)を用いて、
前記部分の1つ又は複数に関し相互に異なる最大ランレングス値(MaxRun)を使用して、前記複数の部分を操作すること
を含むことを特徴とする、請求項34又は35に記載の方法。
【請求項37】
前記入力データ(D1)を圧縮してエントロピー変更出力データ(D2又はD3)を生成するエンコーダ(10、20)として機能するエントロピー変更器(10)を実装することを含むことを特徴とする、請求項28から36の何れか1項に記載の方法。
【請求項38】
前記エントロピー変更器(10)を用いて、
前記入力データ(D1)に存在するビットストリングをエントロピー変更出力データ(D2又はD3)に存在するシンボルに変換することを補助することを含むことを特徴とする、請求項28から37の何れか1項に記載の方法。
【請求項39】
エントロピー変更器(60)を用いて、第1エントロピーを有する入力データビット(D3又はD4)のストリームを復号し、第2エントロピーを有する対応エントロピー変更出力データ(D5)を生成する方法であって、
(a)前記エントロピー変更器(60)を用いて、前記入力データ(D3又はD4)に含まれる後続データに関する参照値として機能する最初のビットの情報を使用してビット単位方式で前記前記入力データ(D3又はD4)を処理すること、
(b)前記エントロピー変更器(60)を用いて、元データ(D1)に存在する相互に類似のビットのランレングスを示し、かつ前記前記入力データ(D3又はD4)に存在するデータを処理すること、但し、前記相互に類似のビットのランレングスは、サイズにおいて実質的に制限されていることにより、最大ランレングス値(MaxRun)を超えることがないこと、
(c)前記エントロピー変更器(60)を用いて、前記前記入力データ(D3又はD4)に含まれる少なくとも1つのエスケープ符号によって示される通り、前記元データ(D1)における最大ランレングス値を実質的に超えるランレングスの1つ又は複数の出現を検出すること、
を含むことを特徴とし、ここで前記入力データ(D3又はD4)は、前記元データ(D1)を符号化することにより作られたデータである、方法。
【請求項40】
前記エントロピー変更器(60)を用いて、
少なくとも1つのエスケープ符号を用いることにより相互に類似するビットの群の1つ又は複数の最大ランレングス(MaxRun)を処理することを含むことを特徴とする、請求項39に記載の方法。
【請求項41】
前記エントロピー変更器(60)を用いて、
複数のエスケープ符号を用いることにより相互に類似するビットの群の1つ又は複数の最大ランレングス(MaxRun)を処理することを含むことを特徴とする、請求項40に記載の方法。
【請求項42】
前記入力データ(D3又はD4)内にデータ値「0」として少なくとも1つのエスケープ符号を実装することを含むことを特徴とする、請求項39、40又は41に記載の方法。
【請求項43】
前記エントロピー変更器(60)を用いて、
入力データビット(D3又はD4)のストリームの性質に応じて動的に変化する前記最大ランレングス値(MaxRun)を用いることにより前記入力データビット(D3又はD4)のストリームを操作することを含むことを特徴とする、請求項39から42の何れか1項に記載の方法。
【請求項44】
前記エントロピー変更器(60)を用いて、
データビットの配列とは別に、前記入力データビット(D3又はD4)のストリームにおいて最初のビットの値の情報を操作することを含むことを特徴とする、請求項39から43の何れか1項に記載の方法。
【請求項45】
前記エントロピー変更器(60)を用いて、
前記前記入力データ(D3又はD4)に存在するデータ要素を復号し、かつ逆エントロピー変更を適用して復号されたビットストリームとして出力データ(D5)を生成することを含むことを特徴とする、請求項39から44の何れか1項に記載の方法。
【請求項46】
前記エントロピー変更器(60)を用いて、
類似するビットの連続量を表すデータ値の配列に対して別に符号化される最初のビットの値を操作することを含むことを特徴とする、請求項44又は45に記載の方法。
【請求項47】
前記エントロピー変更器(60)を用いて、
前記入力データビットのストリームを操作する1つ又は複数の復号装置と協働して後処理をすることを含み、前記1つ又は複数の復号装置が、ODeltaコーダ、RLEコーダ、VLCコーダ、ハフマンコーダ、差分コーダ、算術コーダ、及びレンジコーダの1つ又は複数を含むことを特徴とする、請求項39から46の何れか1項に記載の方法。
【請求項48】
前記エントロピー変更器(60)を用いて、別々に復号される複数の部分において前記入力データビット(D3又はD4)のストリームを操作することを含むことを特徴とする、請求項39から47の何れか1項に記載の方法。
【請求項49】
前記エントロピー変更器(60)を用いて、時間的に並列な方式で、即ち並列実行により、前記複数の部分を操作することを含むことを特徴とする、請求項48に記載の方法。
【請求項50】
前記エントロピー変更器(60)を用いて、
前記部分の1つ又は複数に関し相互に異なる最大ランレングス値(MaxRun)を使用して、前記複数の部分を操作することを含むことを特徴とする、請求項48又は49に記載の方法。
【請求項51】
前記エントロピー変更器(60)を用いて、前記前記入力データ(D3又はD4)を展開してエントロピー変更出力データ(D5)を生成するデコーダ(50、60)として機能することを含むことを特徴とする、請求項39から50の何れか1項に記載の方法。
【請求項52】
前記エントロピー変更器(60)を用いて、前記前記入力データ(D3又はD4)に存在するシンボルを出力データ(D5)に存在するビットストリングに変換することを補助することを含むことを特徴とする、請求項39から51の何れか1項に記載の方法。
【請求項53】
装置の処理手段に実行されることにより、前記装置に、請求項28から52のいずれかに記載の方法を遂行させるように構成されるプログラム命令を備える、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力データを受信し、かつ相応する出力データを生成するように動作可能であるエントロピー変更器であって、上記出力データのエントロピーは、例えばデータ圧縮及び/又はデータ展開を目的として、上記入力データのエントロピーに対して変更されたものであり、上記エントロピー変更器は、電子ハードウェア製品、及び/又は機械可読データ記憶媒体に保存され、かつコンピュータハードウェアで実行可能であるソフトウェア製品を用いて実装可能である、エントロピー変更器に関する。また、本発明は、入力データのエントロピーを変更し、対応出力データであって、入力データのエントロピーに対して変更された程度のエントロピーを有する対応出力データを生成する方法にも関する。さらに、本発明は、機械可読データ記憶媒体に記録されたソフトウェア製品であって、該ソフトウェア製品は、上記方法を実行するためにコンピュータハードウェアで実行可能である、ソフトウェア製品に関する。上記エントロピー変更器は、例えばデータ通信システム並びにメディア供給システム等のデータ供給システムの構成部品として有用である。
【0002】
概して、情報理論においては、「エントロピー」とは、確率変数における不確実性の尺度であり、例えば熱力学における連続体力学系や、例えばデータ通信システム等の情報システムに関連するものである。また、データ通信システムを背景とした場合においては、エントロピーは、より正確には「シャノンエントロピー」(Shannon entropy)を指し、この「シャノンエントロピー」については、クロード・E・シャノン(Claude E. Shannon)による「通信の数学的理論("A Mathematical Theory of Communication")」と云う1948年の科学論文が参照され、同科学論文の内容は本明細書に援用される。シャノンエントロピーは、所与のメッセージに含まれる情報の予想値を定量化するのに有用である。さらに、シャノンエントロピーは、ナット(nat)、バン(ban)、並びにビット(bit)を単位として表すことができる。
【0003】
シャノンエントロピーは、所与の通信が、互いに独立であり、かつ同一の分布に従う確率変数の配列として容易に表すことができると仮定して、任意の通信に対して可能である最良の可逆符号化又は圧縮に関する絶対限界を提供する。さらに、シャノンの理論は、所与のアルファベットにおいて与えられたメッセージを符号化する最も短い可能な表現の平均長Lが、それらのエントロピーEを上記アルファベットに存在するシンボルNの数の対数で除した値であることを特定したものであり、即ち、式1に定義される通りである。
【0005】
このように、エントロピーEは、予測不可能性又は情報量の尺度である。可逆データ圧縮法においては、当該方法を対応する入力データに適用することによって生成された圧縮出力データは、入力データと同様の情報量を有するが、出力データに含まれるデータビットは、入力データと比較すると少ない。結果として、圧縮出力データは、その中に含まれる情報の冗長性はより低いものであることから、より予測不可能なものである。
【0006】
シャノンの理論は、既知データ符号化装置の設計において考慮されている。例えば、国際特許出願の公報第WO2010/050157A1(PCT/JP2009/005548、「画像符号化装置、画像符号化方法、及び画像符号化プログラム」、出願人:トムソン・ライセンシング(Thomson Licensing))においては、符号化効率を低下させずに全体として画像の画像品質を均一化するよう動作可能であり、かつ高速で動作可能であり、かつスライス構造を変更せずにマクロブロック・シャッフリングを実行することで回路規模を小さくすることが可能である、画像符号化装置、画像符号化方法、及び画像符号化プログラムが記載されている。さらに、また、
(i)画像の各位置に由来する画像データを構成する複数のマクロブロックを収集し、かつシャッフリングするシャッフリング部と、
(ii)上記シャッフリング部で収集し、かつシャッフリングした複数のマクロブロックに対して空間周波数変換(spatial frequency transformations)及びエントロピー符号化を実行する符号化部と、
(iii)上記符号化部を制御し、符号化が実行された後に上記複数のマクロブロックの割合を調整する割合制御部と、を備える画像符号化装置も提供されている。
【0007】
データの種類に関わらず、当該データは、データ保存領域を必要とし、また、一つの領域位置から他の領域位置に移動される場合には通信ネットワーク容量における帯域幅も必要とする。そのような帯域幅は、実際には通信インフラの投資とエネルギーの利用に対応するものである。伝送されるデータ量は、今後は増加すると予測されており、より大きいデータ保存スペース及びより大きい通信システム容量が必要とされ、そしてまた、より多くのエネルギーがしばしば必要となる。現代のインターネットでは、膨大な量のデータが、しばしば複数のコピーにおいて保存されている。したがって、データを圧縮できる任意のアプローチによって、特にその圧縮が可逆である場合、潜在的に大きな技術的及び経済的利益が得られる。現在、データセット内のエントロピーを低減し、そのデータセットを圧縮する方法が幾つか知られている。さらに、データセットに存在するエントロピーを変更する方法、例えば、差分符号化(Delta coding)及びランレングス符号化(連長符号化、RLE:Run Length Encoding)が知られているが、データのより効果的な圧縮を提供する新しい方法が依然として必要とされている。
【0008】
このように、所与のデータに存在するエントロピーを低減することで該データを圧縮するためには利用可能な各種圧縮方法が多数存在し、例えば上述のRLE符号化やVLC符号化の他、ハフマン符号化(Huffman coding)、差分符号化(Delta coding)、算術符号化、及びレンジ符号化等がある。これらの方法は、典型的には、アルファベット、数字、バイト及びワードを圧縮するのに設計されたものである。しかしながら、理想的にはこれらの方法は、特に個々のビットを圧縮するには好適でなく、そのため、ビット単位方式で、例えばデータビットストリームにおいて変化し得るデータを圧縮するのには適していない。
【0009】
従来のRLE符号化に関しては、所与の値、つまりビットも、又は該値、つまりビットが二つ、次いで、その後に多数の類似する値、つまり複数のビットも保存される。RLEは、選択的に適用され得るものであり、例えば、つまりその符号化は、それのみで、類似の値の数に関する既知のビット量を含む符号化ランに対して予定され得るものである。このようなRLEの選択的適用は、同じ値が、それぞれの新規ランと共に、所与のデータストリームに一度又は二度再び入力されることを必要とする。しかしながら、データの種類に関わらず、データ圧縮に関し、データセットにおけるエントロピーを低減するより良好なアプローチが現在必要とされている。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】WO2010/050157A1(PCT/JP2009/005548
【非特許文献】
【0011】
【非特許文献1】クロード・E・シャノン(Claude E. Shannon)による「通信の数学的理論("A Mathematical Theory of Communication")」、1948年
【0012】
本発明の第1の目的は、例えばデータ圧縮の向上を提供するために、エントロピー変更の改良を提供することにある。
【0013】
本発明の第2の目的は、例えばデータ圧縮の向上を提供するために、エントロピー変更の改良法を提供することにある。
【0014】
本発明の第1の態様によれば、添付の請求項1に記載のエントロピー変更器が提供され、即ち、ビット単位方式で第1エントロピーを有する入力データビット(D1)のストリームを符号化し、第2エントロピーを有する対応エントロピー変更出力データ(D2)を生成するように動作可能であるエントロピー変更器であって、
(a)該エントロピー変更器は、ビット単位方式で出力データ(D2)を生成するように動作可能であり、但し、出力データ(D2)は、出力データ(D2)に含まれる後続データに関する参照値として機能する最初のビットの情報を含むものとする、
(b)出力データ(D2)は、入力データビット(D1)に存在する相互に類似のビットのランレングスを示すデータを更に含み、該相互に類似のビットのランレングスは、サイズにおいて実質的に制限されていることにより、最大ランレングス値(MaxRun)を超えることがなく、かつ
(c)入力データ(D1)における上記最大ランレングス値(MaxRun)を実質的に超えるランレングスランレングスの1つ又は複数の出現が、出力データ(D2)に含まれる少なくとも1つのエスケープ符号によって示される、
エントロピー変更器が提供される。
【0015】
本発明は、データのランレングス(連長;run length)表現を選択的に使用することにより、例えばデータ圧縮の強化など、エントロピー変更の強化を提供することを可能とする利点をもたらす。
【0016】
任意に、相互に類似のビットの群の1つ又は複数の最大ランレングス(MaxRun)が複数のエスケープ符号によって制御されるように、上記エントロピー変更器が実装される。
【0017】
利用される一種類のエスケープ符号解決手段は、最大ランレングス値、及び類似ビットの量が連続しているという表示を用いる。この種類の解決手段においては、全てのシンボルが1つのデータストリームとして符号化され得る。その他種類のエスケープ符号は、符号化されたシンボルから分離される多数の各種解決手段の利用を可能にし、また、最大ランレングス値より大きい類似ビットの連続量を表示する。この種類の解決手段は、2つの別々のストリームとして操作され得るものであるか、或は、該解決手段は、その数を表現する任意の値が最大ランより大きくなることがないように設計され得るものであり、その結果、それらは、同一のストリームのその他シンボルでも符号化され得る。また、その他エスケープ法も任意に利用される。
【0018】
任意に、上記エントロピー変更器は、データ値「0」により出力データ(D2)内に少なくとも1つのエスケープ符号を実装するように動作可能である。
【0019】
任意に、上記エントロピー変更器は、入力データビット(D1)のストリームの性質に応じて動的に変化する方式で最大ランレングス値(MaxRun)を用いて、入力データビット(D1)のストリームを操作するように動作可能である。
【0020】
任意に、上記エントロピー変更器は、1つ又は複数の符号化装置における後続の圧縮により圧縮データ(D3)を生成するために、入力データ(D1)を出力データ(D2)にフォーマットするデータプリプロセッサとして機能するように動作可能である。
【0021】
任意に、上記1つ又は複数の符号化装置は、ODeltaコーダ、RLEコーダ、VLCコーダ、ハフマンコーダ、差分コーダ、算術コーダ、及びレンジコーダの1つ又は複数を含む。
【0022】
任意に、上記エントロピー変更器は、別々に処理される複数の部分において入力データビット(D1)のストリームを操作するように動作可能である。さらに任意に、上記エントロピー変更器は、時間的に並列な方式で、即ち並列実行によって、上記複数の部分を操作するように動作可能である。さらに任意に、上記エントロピー変更器は、上記部分の1つ又は複数について相互に異なる最大ランレングス値(MaxRun)を用いることにより上記複数の部分を操作するように動作可能である。
【0023】
最初のビットの情報は、独自のデータストリーム又はランレングス情報と同一のデータストリームの中に符号化してもよいし、或は、最初のビットの情報は、用いた符号化法の情報に含まれてもよいことが理解される。
【0024】
任意に、上記エントロピー変更器は、入力データ(D1)のストリームを圧縮してエントロピー変更出力データ(D2又はD3)を生成するエンコーダとして機能するように実装されている。
【0025】
任意に、上記エントロピー変更器は、入力データ(D1)に存在するビットストリングをエントロピー変更出力データ(D2又はD3)に存在するシンボルに変換することを補助するように動作可能である。
【0026】
任意に、上記エントロピー変更器は、コンピュータハードウェアを備え、該コンピュータハードウェアは、機械可読データ記憶媒体に記録された1つ又は複数のソフトウェア製品を実行することにより、入力データビット(D1)のストリームを処理することで出力データ(D2)を生成するように動作可能である。
【0027】
本発明の第2の態様によれば、第1エントロピーを有する入力データビット(D3又はD4)のストリームを復号し、第2エントロピーを有する対応エントロピー変更出力データ(D5)を生成するように動作可能であるエントロピー変更器であって、
(a)上記エントロピー変更器は、入力データ(D3又はD4)に含まれる後続データに関する参照値として機能する、その最初のビットの情報を用いることによって、ビット単位方式で入力データ(D3又はD4)を処理するように動作可能であり、
(b)上記エントロピー変更器は、元データ(D1)に存在する相互に類似のビットのランレングスを示し、かつ入力データ(D3又はD4)に存在するデータを処理するように動作可能であり、上記相互に類似のビットのランレングスは、サイズにおいて実質的に制限されていることにより、最大ランレングス値(MaxRun)を超えることがなく、かつ
(c)上記エントロピー変更器は、入力データ(D3又はD4)に含まれる少なくとも1つのエスケープ符号によって示される通り、元データ(D1)における最大ランレングス値を実質的に超えるランレングスの1つ又は複数の出現を検出するように動作可能である、エントロピー変更器が提供される。
【0028】
任意に、上記エントロピー変更器は、少なくとも1つのエスケープ符号を用いることにより、相互に類似のビットの群の1つ又は複数の最大ランレングス(MaxRun)を処理するように動作可能である。さらに任意に、複数のエスケープ符号を用いることにより、相互に類似のビットの群の1つ又は複数の最大ランレングス(MaxRun)が処理されるように、上記エントロピー変更器は実装される。
【0029】
任意に、上記少なくとも1つのエスケープ符号が、入力データ(D3又はD4)内でデータ値「0」として実装される。
【0030】
利用される一種類のエスケープ符号解決手段は、最大ランレングス値、及び類似ビットの量が連続しているという表示を用いる。この種の解決手段においては、全てのシンボルを1つのデータストリームとして符号化することができ、同様に1つのデータストリームとして復号することができる。その他種類のエスケープ符号は、符号化されたシンボルから分離された多くの各種解決手段の利用を可能にし、最大ランレングス値より大きい類似ビット値の連続量を表現する。この種の解決手段は、2つの別々のストリームとして操作され得るものであるか、或は、該解決手段は、その数を表現する任意の値が最大ランより大きくなることがないように設計され得るものであり、その結果、それらは、同一のストリームのその他シンボルでも符号化され得る。また、その他エスケープ法も任意に利用される。
【0031】
任意に、上記エントロピー変更器は、入力データビット(D3又はD4)のストリームの性質に応じて動的に変化する方式で上記最大ランレングス値(MaxRun)を用いて、入力データビット(D3又はD4)のストリームを操作するように動作可能である。
【0032】
任意に、上記エントロピー変更器は、データビットの配列とは別に、入力データビット(D3又はD4)のストリームにおける最初のビットの値の情報を操作するように動作可能である。さらに任意に、上記エントロピー変更器は、類似するビットの連続量を表すデータ値の配列に対して別に符号化される最初のビットの値を操作するように動作可能である。
【0033】
任意に、上記エントロピー変更器は、入力データ(D3又はD4)に存在するデータ要素を復号し、逆エントロピー変更を適用することにより、復号されたビットストリームとして出力データ(D5)を生成するように動作可能である。
【0034】
任意に、上記エントロピー変更器は、入力データビット(D3又はD4)のストリームを操作する1つ又は複数の符号化装置と協働して後処理に利用され、上記1つ又は複数の符号化装置は、ODeltaコーダ、RLEコーダ、VLCコーダ、ハフマンコーダ、差分コーダ、算術コーダ及びレンジコーダの1つ又は複数を含む。
【0035】
任意に、上記エントロピー変更器は、別々に符号化又は復号された複数の部分において入力データビット(D3又はD4)のストリームを操作するように動作可能である。さらに任意に、上記エントロピー変更器は、時間的に並列の方式で、即ち並列実行により上記複数の部分を操作するように動作可能である。さらに任意に、エントロピー変更器は、上記部分の1つ又は複数について相互に異なる最大ランレングス値(MaxRun)を用いることにより、上記複数の部分を操作するように動作可能である。
【0036】
任意に、上記エントロピー変更器は、入力データ(D3又はD4)を展開してエントロピー変更出力データ(D5)を生成するデコーダとして機能するように実装されている。
【0037】
任意に、上記エントロピー変更器は、入力データ(D3又はD4)に存在するシンボルを出力データ(D5)に存在するビットストリングに変換することを補助するように動作可能である。
【0038】
任意に、上記エントロピー変更器は、コンピュータハードウェアを備え、該コンピュータハードウェアは、機械可読データ記憶媒体に記録された1つ又は複数のソフトウェア製品を実行することにより、入力データビット(D3又はD4)のストリームを処理して出力データ(D5)を生成するように動作可能である。
【0039】
本発明の第3の態様によれば、ビット単位方式で第1エントロピーを有する入力データビット(D1)のストリームを符号化するエントロピー変更器を用いることにより、第2エントロピーを有する対応エントロピー変更出力データ(D2)を生成する方法であって、
(a)ビット単位方式で出力データ(D2)を生成するエントロピー変更器を動作させること、但し、出力データ(D2)は、出力データ(D2)に含まれる後続データに関する参照値として機能する最初のビットの情報を含むものとする、
(b)入力データビット(D1)に存在する相互に類似のビットのランレングスを示す更なるデータを出力データ(D2)に含めること、但し、上記相互に類似のビットのランレングスは、サイズにおいて実質的に制限されていることにより、最大ランレングス値(MaxRun)を超えることがない、並びに
(c)出力データ(D2)に含まれる少なくとも1つのエスケープ符号によって、入力データ(D1)における最大ランレングス値を実質的に超えるランレングスの1つ又は複数の出現を示すこと、を含む方法が提供される。
【0040】
任意に、上記方法は、複数のエスケープ符号を用いて相互に類似のビットの群の1つ又は複数の最大ランレングス(MaxRun)を制御することを含む。さらに任意に、上記方法は、入力データビット(D1)のストリームの性質に応じて動的に変化する方式で上記最大ランレングス値(MaxRun)を用いて入力データビット(D1)のストリームを操作するエントロピー変更器を用いることを含む。
【0041】
任意に、上記方法は、データ値「0」により上記出力データ(D2)内に上記少なくとも1つのエスケープ符号を実装することを含む。
【0042】
任意に、上記方法は、1つ又は複数の符号化装置(20)における後続の圧縮により圧縮データ(D3)を生成するために、入力データ(D1)を出力データ(D2)にフォーマットするデータプリプロセッサとして機能するエントロピー変更器を用いることを含む。任意に、上記1つ又は複数の符号化装置は、ODeltaコーダ、RLEコーダ、VLCコーダ、ハフマンコーダ、差分コーダ、算術コーダ、及びレンジコーダの1つ又は複数を含む。
【0043】
任意に、上記方法は、別々に処理される複数の部分において入力データビット(D1)のストリームを操作するエントロピー変更器を用いることを含む。さらに任意に、上記方法は、時間的に並列な方式で、即ち並列実行により、上記複数の部分を操作するエントロピー変更器を用いることを含む。さらに任意に、上記方法は、上記部分の1つ又は複数に関し相互に異なる最大ランレングス値(MaxRun)を用いることによって上記複数の部分を操作するエントロピー変更器を用いることを含む。
【0044】
任意に、上記方法は、入力データ(D1)を圧縮してエントロピー変更出力データ(D2又はD3)を生成するエンコーダとして機能するエントロピー変更器を実装することを含む。さらに任意に、上記方法は、入力データ(D1)に存在するビットストリングをエントロピー変更出力データ(D2又はD3)に存在するシンボルに変換することを補助するエントロピー変更器を用いることを含む。
【0045】
任意に、上記方法は、コンピュータハードウェアを備えるエントロピー変更器を実装することを含み、上記コンピュータハードウェアは、機械可読データ記憶媒体に記録された1つ又は複数のソフトウェア製品を実行することにより、入力データビット(D1)のストリームを処理することで出力データ(D2)を生成するように動作可能である。
【0046】
本発明の第4の態様によれば、第1エントロピーを有する入力データビット(D3又はD4)のストリームを復号するエントロピー変更器を用いることにより、第2エントロピーを有する対応エントロピー変更出力データ(D5)を生成する方法であって、
(a)入力データ(D3又はD4)に含まれる後続データに関する参照値として機能する最初のビットの情報を用いることによってビット単位方式で入力データ(D3又はD4)を処理するエントロピー変更器を用いること、
(b)元データ(D1)に存在する相互に類似のビットのランレングスを示す、入力データ(D3又はD4)に存在するデータを処理するエントロピー変更器を用いること、但し、上記相互に類似のビットのランレングスは、サイズにおいて実質的に制限されていることにより、最大ランレングス値(MaxRun)を超えることがない、並びに
(c)入力データ(D3又はD4)に含まれる少なくとも1つのエスケープ符号によって示される通り、元データ(D1)における最大ランレングス値を実質的に超えるランレングスの1つ又は複数の出現を検出するエントロピー変更器(60)を用いること、
を含む方法が提供される。
【0047】
任意に、上記方法は、少なくとも1つのエスケープ符号を用いることにより相互に類似するビットの群の1つ又は複数の最大ランレングス(MaxRun)を処理するエントロピー変更器を用いることを含む。さらに任意に、上記方法は、複数のエスケープ符号を用いることにより相互に類似するビットの群の1つ又は複数の最大ランレングス(MaxRun)を処理することを含む。
【0048】
任意に、上記方法は、入力データ(D3又はD4)内にデータ値「0」として少なくとも1つのエスケープ符号を実装することを含む。
【0049】
任意に、上記方法は、入力データビット(D3又はD4)のストリームの性質に応じて動的に変化する方式で上記最大ランレングス値(MaxRun)を用いることにより入力データビット(D3又はD4)のストリームを操作するエントロピー変更器を用いることを含む。
【0050】
任意に、上記方法は、データビットの配列とは別に、入力データビット(D3又はD4)のストリームにおいて最初のビットの値の情報を操作するエントロピー変更器を用いることを含む。さらに任意に、上記方法は、類似するビットの連続量を表すデータ値の配列に対して別に符号化される最初のビットの値を操作するエントロピー変更器を用いることを含む。
【0051】
任意に、上記方法は、入力データ(D3又はD4)に存在するデータ要素を復号し、かつ逆エントロピー変更を適用して復号されたビットストリームとして出力データ(D5)を生成するエントロピー変更器を用いることを含む。
【0052】
任意に、上記方法は、入力データビット(D3又はD4)のストリームを操作する1つ又は複数の符号化装置と協働して後処理をするエントロピー変更器(60)を用いることを含み、上記1つ又は複数の符号化装置が、ODeltaコーダ、RLEコーダ、VLCコーダ、ハフマンコーダ、差分コーダ、算術コーダ、及びレンジコーダの1つ又は複数を含む。
【0053】
任意に、上記方法は、別々に処理される複数の部分において入力データビット(D3又はD4)のストリームを操作するエントロピー変更器を用いることを含む。さらに任意に、上記方法は、時間的に並列な方式で、即ち並列実行により、上記複数の部分を操作するエントロピー変更器を用いることを含む。さらに任意に、上記方法は、上記部分の1つ又は複数に関し相互に異なる最大ランレングス値(MaxRun)を用いることによって、上記複数の部分を操作するエントロピー変更器を用いることを含む。
【0054】
デコーダは、独自のデータストリーム又はランレングス情報と同一のデータストリームから最初のビットの値の情報を取得するか、或は、当該情報は、用いた符号化装置(単数又は複数)の情報に含まれ得ることが理解される。
【0055】
任意に、上記方法は、入力データ(D3又はD4)を展開してエントロピー変更出力データ(D5)を生成するデコーダとして機能するエントロピー変更器を用いることを含む。
【0056】
任意に、上記方法は、入力データ(D3又はD4)に存在するシンボルを出力データ(D5)に存在するビットストリングに変換することを補助するエントロピー変更器を用いることを含む。
【0057】
任意に、上記方法は、コンピュータハードウェアを備えるエントロピー変更器を実装することを含み、上記コンピュータハードウェアは、機械可読データ記憶媒体に記録された1つ又は複数のソフトウェア製品を実行することにより、入力データビット(D3又はD4)のストリームを処理して出力データ(D5)を生成するように動作可能である。
【0058】
本発明の第5の態様によれば、機械可読データ記憶媒体に記録されたソフトウェア製品であって、該ソフトウェア製品は、本発明の第3の態様による方法を実施するためにコンピュータハードウェアで実行可能である、ソフトウェア製品が提供される。
【0059】
本発明の第6の態様によれば、機械可読データ記憶媒体に記録されたソフトウェア製品であって、該ソフトウェア製品は、本発明の第4の態様による方法を実施するためにコンピュータハードウェアで実行可能である、ソフトウェア製品が提供される。
【0060】
本開示の更なる態様、利点、特徴及び目的は、以下に続く、添付の特許請求の範囲と併せて解釈される例示実施形態の図面及び詳細な説明により明らかになるであろう。
【0061】
本発明の特徴は、添付の特許請求の範囲によって規定される本発明の要旨から逸脱することなく、各種組合せにおいて組み合わされ得ることが理解される。
【0062】
本発明の実施形態について、以下の図面を参照することにより単なる例として説明する。
【図面の簡単な説明】
【0063】
【
図1】本発明によるエントロピー変更器を備えるコーデックシステムの図である。
【0064】
付随する図において、下線のある数字が、その下線のある数字が付され、又はその下線のある数字が隣接する対象を表すのに利用されている。下線のない数字は、線によって特定される対象に関するものであり、その線はその下線のない数字を該対象に結び付けている。
【0065】
第1の態様において、本発明の実施形態によれば、ビット単位方式で第1エントロピーを有する入力データビット(D1)のストリームを符号化し、第2エントロピーを有する対応エントロピー変更出力データ(D2)を生成するように動作可能であるエントロピー変更器であって、
(a)該エントロピー変更器は、ビット単位方式で出力データ(D2)を生成するように動作可能であり、但し、出力データ(D2)は、出力データ(D2)に含まれる後続データに関する参照値として機能する最初のビットの情報を含むものとする、
(b)出力データ(D2)は、入力データビット(D1)に存在する相互に類似のビットのランレングスを示すデータを更に含み、該相互に類似のビットのランレングスは、サイズにおいて実質的に制限されていることにより、最大ランレングス値(MaxRun)を超えることがなく、かつ
(c)入力データ(D1)における上記最大ランレングス値(MaxRun)を実質的に超えるランレングスの1回以上の出現が、出力データ(D2)に含まれる少なくとも1つのエスケープ符号によって示される、
エントロピー変更器が提供される。
【0066】
本発明は、データのランレングス(連長;run length)表現を選択的に使用することにより、例えばデータ圧縮の強化など、エントロピー変更の強化を提供することを可能とする利点をもたらす。
【0067】
任意に、相互に類似のビットの群の1つ又は複数の最大ランレングス(MaxRun)が複数のエスケープ符号によって制御されるように、上記エントロピー変更器が実装される。
【0068】
利用される一種類のエスケープ符号解決手段は、最大ランレングス値、及び類似ビットの量が連続しているという表示を用いる。この種類の解決手段においては、全てのシンボルが1つのデータストリームとして符号化され得る。その他種類のエスケープ符号は、符号化されたシンボルから分離される多数の各種解決手段の利用を可能にし、また、最大ランレングス値より大きい類似ビットの連続量を表現する。この種類の解決手段は、2つの別々のストリームとして操作され得るものであるか、或は、該解決手段は、その数を表示する任意の値が最大ランより大きくなることがないように設計され得るものであり、その結果、それらは、同一のストリームのその他シンボルでも符号化され得る。また、その他エスケープ法も任意に利用される。
【0069】
任意に、上記エントロピー変更器は、データ値「0」により出力データ(D2)内に少なくとも1つのエスケープ符号を実装するように動作可能である。
【0070】
任意に、上記エントロピー変更器は、入力データビット(D1)のストリームの性質に応じて動的に変化する方式で最大ランレングス値(MaxRun)を用いて、入力データビット(D1)のストリームを操作するように動作可能である。
【0071】
任意に、上記エントロピー変更器は、1つ又は複数の符号化装置における後続の圧縮により圧縮データ(D3)を生成するために、入力データ(D1)を出力データ(D2)にフォーマットするデータプリプロセッサとして機能するように動作可能である。
【0072】
任意に、上記1つ又は複数の符号化装置は、ODeltaコーダ、RLEコーダ、VLCコーダ、ハフマンコーダ、差分コーダ、算術コーダ、及びレンジコーダの1つ又は複数を含む。
【0073】
任意に、上記エントロピー変更器は、別々に処理される複数の部分において入力データビット(D1)のストリームを操作するように動作可能である。さらに任意に、上記エントロピー変更器は、時間的に並列な方式で、即ち並列実行によって、上記複数の部分を操作するように動作可能である。さらに任意に、上記エントロピー変更器は、上記部分の1つ又は複数について相互に異なる最大ランレングス値(MaxRun)を用いることにより上記複数の部分を操作するように動作可能である。
【0074】
最初のビットの情報は、独自のデータストリーム又ランレングス情報と同一のデータストリームの中に符号化してもよいし、或は、最初のビットの情報は、用いた符号化法の情報に含まれてもよいことが理解される。
【0075】
任意に、上記エントロピー変更器は、入力データ(D1)のストリームを圧縮してエントロピー変更出力データ(D2又はD3)を生成するエンコーダとして機能するように実装されている。
【0076】
任意に、上記エントロピー変更器は、入力データ(D1)に存在するビットストリングをエントロピー変更出力データ(D2又はD3)に存在するシンボルに変換することを補助するように動作可能である。
【0077】
任意に、上記エントロピー変更器は、コンピュータハードウェアを備え、該コンピュータハードウェアは、機械可読データ記憶媒体に記録された1つ又は複数のソフトウェア製品を実行することにより、入力データビット(D1)のストリームを処理することで出力データ(D2)を生成するように動作可能である。
【0078】
第2の態様において、本発明の実施形態によれば、第1エントロピーを有する入力データビット(D3又はD4)のストリームを復号し、第2のエントロピーを有する対応エントロピー変更出力データ(D5)を生成するように動作可能であるエントロピー変更器であって、
(a)上記エントロピー変更器は、入力データ(D3又はD4)に含まれる後続データに関する参照値として機能する、その最初のビットの情報を用いることによって、ビット単位方式で入力データ(D3又はD4)を処理するように動作可能であり、
(b)上記エントロピー変更器は、元データ(D1)に存在する相互に類似のビットのランレングスを示し、かつ入力データ(D3又はD4)に存在するデータを処理するように動作可能であり、上記相互に類似のビットのランレングスは、サイズにおいて実質的に制限されていることにより、最大ランレングス値(MaxRun)を超えることがなく、かつ
(c)上記エントロピー変更器は、入力データ(D3又はD4)に含まれる少なくとも1つのエスケープ符号によって示される通り、元データ(D1)における最大ランレングス値を実質的に超えるランレングスの1つ又は複数の出現を検出するように動作可能である、エントロピー変更器が提供される。
【0079】
任意に、上記エントロピー変更器は、少なくとも1つのエスケープ符号を用いることにより、相互に類似のビットの群の1つ又は複数の最大ランレングス(MaxRun)を処理するように動作可能である。さらに任意に、複数のエスケープ符号を用いることにより、相互に類似のビットの群の1つ又は複数の最大ランレングス(MaxRun)が処理されるように、上記エントロピー変更器は実装される。
【0080】
任意に、上記少なくとも1つのエスケープ符号が、入力データ(D3又はD4)内でデータ値「0」として実装される。
【0081】
利用される一種類のエスケープ符号解決手段は、最大ランレングス値、及び類似ビットの量が連続しているという表示を用いる。この種の解決手段においては、全てのシンボルを1つのデータストリームとして符号化することができ、同様に1つのデータストリームとして復号することができる。その他種類のエスケープ符号は、符号化されたシンボルから分離された多くの各種解決手段の利用を可能にし、最大ランレングス値より大きい類似ビットの連続量を表現する。この種の解決手段は、2つの別々のストリームとして操作され得るものであるか、或は、該解決手段は、その数を表示する任意の値が最大ランより大きくなることがないように設計され得るものであり、その結果、それらは、同一のストリームのその他シンボルでも符号化され得る。また、その他エスケープ法も任意に利用される。
【0082】
任意に、上記エントロピー変更器は、入力データビット(D3又はD4)のストリームの性質に応じて動的に変化する方式で上記最大ランレングス値(MaxRun)を用いて、入力データビット(D3又はD4)のストリームを操作するように動作可能である。
【0083】
任意に、上記エントロピー変更器は、データビットの配列とは別に、入力データビット(D3又はD4)のストリームにおける最初のビットの値の情報を操作するように動作可能である。さらに任意に、上記エントロピー変更器は、類似するビットの連続量を表すデータ値の配列に対して別に符号化される最初のビットの値を操作するように動作可能である。
【0084】
任意に、上記エントロピー変更器は、入力データ(D3又はD4)に存在するデータ要素を復号し、逆エントロピー変更を適用することにより、復号されたビットストリームとして出力データ(D5)を生成するように動作可能である。
【0085】
任意に、上記エントロピー変更器は、入力データビット(D3又はD4)のストリームを操作する1つ又は複数の符号化装置と協働して後処理に利用され、上記1つ又は複数の符号化装置は、ODeltaコーダ、RLEコーダ、VLCコーダ、ハフマンコーダ、差分コーダ、算術コーダ及びレンジコーダの1つ又は複数を含む。
【0086】
任意に、上記エントロピー変更器は、別々に符号化又は復号された複数の部分において入力データビット(D3又はD4)のストリームを操作するように動作可能である。さらに任意に、上記エントロピー変更器は、時間的に並列の方式で、即ち並列実行により上記複数の部分を操作するように動作可能である。さらに任意に、エントロピー変更器は、上記部分の1つ又は複数について相互に異なる最大ランレングス値(MaxRun)を用いることにより、上記複数の部分を操作するように動作可能である。
【0087】
任意に、上記エントロピー変更器(60)は、入力データ(D3又はD4)を展開してエントロピー変更出力データ(D5)を生成するデコーダとして機能するように実装されている。
【0088】
任意に、上記エントロピー変更器(60)は、入力データ(D3又はD4)に存在するシンボルを出力データ(D5)に存在するビットストリングに変換することを補助するように動作可能である。
【0089】
任意に、上記エントロピー変更器は、コンピュータハードウェアを備え、該コンピュータハードウェアは、機械可読データ記憶媒体に記録された1つ又は複数のソフトウェア製品を実行することにより、入力データビット(D3又はD4)のストリームを処理して出力データ(D5)を生成するように動作可能である。
【0090】
第3の態様において、本発明の実施形態によれば、ビット単位方式で第1エントロピーを有する入力データビット(D1)のストリームを符号化するエントロピー変更器を用いることにより、第2のエントロピーを有する対応エントロピー変更出力データ(D2)を生成する方法であって、
(a)ビット単位方式で出力データ(D2)を生成するエントロピー変更器を動作させること、但し、出力データ(D2)は、出力データ(D2)に含まれる後続データに関する参照値として機能する最初のビットの情報を含むものとする、
(b)入力データビット(D1)に存在する相互に類似のビットのランレングスを示す更なるデータを出力データ(D2)に含めること、但し、上記相互に類似のビットのランレングスは、サイズにおいて実質的に制限されていることにより、最大ランレングス値(MaxRun)を超えることがない、並びに
(c)出力データ(D2)に含まれる少なくとも1つのエスケープ符号によって、入力データ(D1)における最大ランレングス値を実質的に超えるランレングスの1つ又は複数の出現を示すこと、を含む方法が提供される。
【0091】
任意に、上記方法は、複数のエスケープ符号を用いて相互に類似のビットの群の1つ又は複数の最大ランレングス(MaxRun)を制御することを含む。さらに任意に、上記方法は、入力データビット(D1)のストリームの性質に応じて動的に変化する方式で上記最大ランレングス値(MaxRun)を用いて入力データビット(D1)のストリームを操作するエントロピー変更器を用いることを含む。
【0092】
任意に、上記方法は、データ値「0」により上記出力データ(D2)内に上記少なくとも1つのエスケープ符号を実装することを含む。
【0093】
任意に、上記方法は、1つ又は複数の符号化装置(20)における後続の圧縮により圧縮データ(D3)を生成するために、入力データ(D1)を出力データ(D2)にフォーマットするデータプリプロセッサとして機能するエントロピー変更器を用いることを含む。任意に、上記1つ又は複数の符号化装置は、ODeltaコーダ、RLEコーダ、VLCコーダ、ハフマンコーダ、差分コーダ、算術コーダ、及びレンジコーダの1つ又は複数を含む。
【0094】
任意に、上記方法は、別々に処理される複数の部分において入力データビット(D1)のストリームを操作するエントロピー変更器を用いることを含む。さらに任意に、上記方法は、時間的に並列な方式で、即ち並列実行により、上記複数の部分を操作するエントロピー変更器を用いることを含む。さらに任意に、上記方法は、上記部分の1つ又は複数に関し相互に異なる最大ランレングス値(MaxRun)を使用して上記複数の部分を操作するエントロピー変更器を用いることを含む。
【0095】
任意に、上記方法は、入力データ(D1)を圧縮してエントロピー変更出力データ(D2又はD3)を生成するエンコーダとして機能するエントロピー変更器を実装することを含む。さらに任意に、上記方法は、入力データ(D1)に存在するビットストリングをエントロピー変更出力データ(D2又はD3)に存在するシンボルに変換することを補助するエントロピー変更器を用いることを含む。
【0096】
任意に、上記方法は、コンピュータハードウェアを備えるエントロピー変更器を実装することを含み、上記コンピュータハードウェアは、機械可読データ記憶媒体に記録された1つ又は複数のソフトウェア製品を実行することにより、入力データビット(D1)のストリームを処理することで出力データ(D2)を生成するように動作可能である。
【0097】
第4の態様において、本発明の実施形態によれば、第1エントロピーを有する入力データビット(D3又はD4)のストリームを復号するエントロピー変更器を用いることにより、第2エントロピーを有する対応エントロピー変更出力データ(D5)を生成する方法であって、
(a)入力データ(D3又はD4)に含まれる後続データに関する参照値として機能する最初のビットの情報を使用してビット単位方式で入力データ(D3又はD4)を処理するエントロピー変更器(60)を用いること、
(b)元データ(D1)に存在する相互に類似のビットのランレングスを示し、かつ入力データ(D3又はD4)に存在するデータを処理するエントロピー変更器を用いること、但し、上記相互に類似のビットのランレングスは、サイズにおいて実質的に制限されていることにより、最大ランレングス値(MaxRun)を超えることがない、並びに
(c)入力データ(D3又はD4)に含まれる少なくとも1つのエスケープ符号によって示される通り、元データ(D1)における最大ランレングス値を実質的に超えるランレングスの1つ又は複数の出現を検出するエントロピー変更器を用いること、
を含む方法が提供される。
【0098】
任意に、上記方法は、少なくとも1つのエスケープ符号を用いることにより相互に類似するビットの群の1つ又は複数の最大ランレングス(MaxRun)を処理するエントロピー変更器を用いることを含む。さらに任意に、上記方法は、複数のエスケープ符号を用いることにより相互に類似するビットの群の1つ又は複数の最大ランレングス(MaxRun)を処理することを含む。
【0099】
任意に、上記方法は、入力データ(D3又はD4)内にデータ値「0」として少なくとも1つのエスケープ符号を実装することを含む。
【0100】
任意に、上記方法は、入力データビット(D3又はD4)のストリームの性質に応じて動的に変化する方式で上記最大ランレングス値(MaxRun)を用いることにより入力データビット(D3又はD4)のストリームを操作するエントロピー変更器を用いることを含む。
【0101】
任意に、上記方法は、データビットの配列とは別に、入力データビット(D3又はD4)のストリームにおいて最初のビットの値の情報を操作するエントロピー変更器を用いることを含む。さらに任意に、上記方法は、類似するビットの連続量を表すデータ値の配列に対して別に復号される最初のビットの値を操作するエントロピー変更器を用いることを含む。
【0102】
任意に、上記方法は、入力データ(D3又はD4)に存在するデータ要素を復号し、かつ逆エントロピー変更を適用して復号されたビットストリームとして出力データ(D5)を生成するエントロピー変更器を用いることを含む。
【0103】
任意に、上記方法は、入力データビット(D3又はD4)のストリームを操作する1つ又は複数の符号化装置と協働して後処理をするエントロピー変更器を用いることを含み、上記1つ又は複数の符号化装置が、ODeltaコーダ、RLEコーダ、VLCコーダ、ハフマンコーダ、差分コーダ、算術コーダ、及びレンジコーダの1つ又は複数を含む。
【0104】
任意に、上記方法は、別々に処理される複数の部分において入力データビット(D3又はD4)のストリームを操作するエントロピー変更器を用いることを含む。さらに任意に、上記方法は、時間的に並列な方式で、即ち並列実行により、上記複数の部分を操作するエントロピー変更器を用いることを含む。さらに任意に、上記方法は、上記部分の1つ又は複数に関し相互に異なる最大ランレングス値(MaxRun)を使用して、上記複数の部分を操作するエントロピー変更器を用いることを含む。
【0105】
デコーダは、独自のデータストリーム又はランレングス情報と同一のデータストリームから最初のビットの値の情報を取得するか、或は、当該情報は、用いた符号化装置(単数又は複数)の情報に含まれ得ることが理解される。
【0106】
任意に、上記方法は、入力データ(D3又はD4)を展開してエントロピー変更出力データ(D5)を生成するデコーダとして機能するエントロピー変更器を用いることを含む。
【0107】
任意に、上記方法は、入力データ(D3又はD4)に存在するシンボルを出力データ(D5)に存在するビットストリングに変換することを補助するエントロピー変更器を用いることを含む。
【0108】
任意に、上記方法は、コンピュータハードウェアを備えるエントロピー変更器を実装することを含み、上記コンピュータハードウェアは、機械可読データ記憶媒体に記録された1つ又は複数のソフトウェア製品を実行することにより、入力データビット(D3又はD4)のストリームを処理して出力データ(D5)を生成するように動作可能である。
【0109】
第5の態様において、本発明の実施形態によれば、機械可読データ記憶媒体に記録されたソフトウェア製品であって、該ソフトウェア製品は、本開示の第3の態様による方法を実施するためにコンピュータハードウェアで実行可能である、ソフトウェア製品が提供される。
【0110】
第6の態様において、本発明の実施形態によれば、機械可読データ記憶媒体に記録されたソフトウェア製品であって、該ソフトウェア製品は、本開示の第4の態様による方法を実施するためにコンピュータハードウェアで実行可能であることを特徴とする、ソフトウェア製品が提供される。
【0111】
次に、本開示の実施形態について図面を参照して説明する。
【0112】
概して、本発明は、エントロピー変更器に関するものである。
図1を参照すると、入力データ(D1)は、該入力データ(D1)を変換して対応する変換データ(D2)を生成する第1エントロピー変更器10に供給され、該変換データ(D2)は、第1エントロピー変更器10において利用される変換の性質に応じて、入力データ(D1)に対してサイズが任意に相互に異なり、かつ入力データ(D1)に対してエントロピーが低減されている。任意に、変換データ(D2)は、符号化ステージ20を介して更に符号化されることにより、最終符号化出力データ(D3)を生成するが、符号化ステージ20が利用されない場合は、変換データ(D2)と出力データ(D3)とは相互に類似する。符号化出力データ(D3)は、データメモリ30に格納されるか、及び/又はデータ通信ネットワーク40を介して送信される。さらに、出力データ(D3)は、第2エントロピー変更器60に直接伝達されるか、或は、データ(D4)がデータ(D2)と実質的に類似するように上記符号化ステージ20が利用される場合には、出力データ(D3)は、復号ステージ50を介して第2エントロピー変更器60に任意に伝達される。第2エントロピー変更器60は、入力データ(D1)と実質的に類似する復号出力データ(D5)を生成する。このように、第1エントロピー変更器10と第2エントロピー変更器60は、例えばコーデック構成において、相互に逆のエントロピー変更操作を実行する。
【0113】
任意に、第1及び第2のエントロピー変更器10、60は、これらを介して、複数の並列データストリームとしてデータを処理することにより、より高速なエントロピー変更、例えばより高速な符号化及び/又は復号を達成するように動作可能である。このような複数の並列データストリームを用いたより高速な処理は、例えばケーブルTVサービスを提供するインターネットサーバ等のデータサーバからストリーミング配信される動画コンテンツなど、大容量のデータを操作する場合に有利になる。
【0114】
従って、第1エントロピー変更器10は、入力データ(D1)に存在するビットストリームを取り込み、それらから、入力データ(D1)のエントロピーと比較してエントロピーが低減されたデータ要素を生成する。それらの改変データ要素は、任意に、符号化ステージ20において可変長符号化(Variable−Length−Coding;VLC)、ハフマン符号化(Huffman coding)、算術符号化(Arithmetic coding)、レンジ符号化(Range coding)、ランレングス符号化(Run−Length−Encoding;RLC)等の方法を利用することによって更に符号化される。第1エントロピー変更器10内で実行されるエントロピー変更は、可逆的であり、かつ有利には可逆であり、この事は第2エントロピー変更器60においても同様に当てはまる。さらに、第1エントロピー変更器10内で実行されるエントロピー変更は、少なくとも、ビット値の何れの変更の後も類似ビットの連続量を含む新規データ要素を保存するものである。
【0115】
上述のエントロピー低減を実行する場合、任意の配列にける最初のビットの表示が提供されなければならない。さらにまた、データ要素が圧縮される場合には、限られた数の符号を利用してデータ要素を表すことを可能にするエスケープ符号、即ち、最大ランレングス値(MaxRun)も提供されなければならない。任意に、エスケープ符号は数字「0」によって表され、エスケープ符号は、データ要素が表し得る最高値、即ち、最大ランレングス値(MaxRun)を示し、さらにビット値が連続しているという情報を伝える。有利には、本発明の実施形態を実施する場合、ビットの最大ランに対応する1つ又は複数の符号が、データ及びその特性に応じて変化し、換言すれば、その最大ランに対応する1つ又は複数の符号を、圧縮されるデータに応じて適応的に変化させる。任意に、エントロピー変更器10、60は、例えば、1ビットのデータに対して演算するODelta演算子(ODelta operator)等の前処理及び後処理の方法を利用する。しかしながら、エントロピー変更器10、60については、それらを介して処理されるデータは、あらゆる種類のものであることが可能であり、例えば画像データ、動画データ、音声データ、参照データ、マスク、分割ビット、符号ビット、及び圧縮データ、即ちビットで処理され得る任意の種類のデータが挙げられる。任意に、任意のデータのバイト又はワードが、ビットを含むストリームに挿入されることが可能であり、エントロピー変更器10、60を介して処理され得る。以下、「エントロピー変更器」("entropy modifier")及び「逆エントロピー変更器」("inverse entropy modifier")は、それぞれEM、及びIEMと略され、即ち、これらは、それぞれデータ圧縮及びデータ展開の提供に用いるためのものであって、つまり、それぞれ第1及び第2のエントロピー変更器10、60を介して実行されるものである。
【0116】
エントロピー変更器10、60は、任意に、機械可読データ記憶媒体90に記録された1つ又は複数のソフトウェア製品80を実行し、本発明による方法を実施するように動作可能であるコンピュータハードウェア(CPU)70を用いて実装される。
【0117】
以下、本発明の実施形態をより詳細に説明する。エントロピー変更器10、60は、例えばデータビットストリームに存在する0又は1の最大ラン数を定義する1つのパラメータを利用する。さらに、エントロピー変更器10、60は、ビットストリームにおけるビットランがビットストリームにおける最大ランよりも大きい場合に用いられるエスケープ要素も利用する。有利には、最大ランレングスLが、以下の列において1つ又は複数に設定される。
【0119】
式中、nは、値n=2、3、・・・となる整数である。
これは、列L=3、7、15、31、・・・に対応するが、有利には1より大きい任意の数である。有利には、エスケープ要素は、値「0」となるように選択されるが、これは、本発明を実施する場合、複数の0の類似ビットは不可能だからである。類似ビットの数が、上記のように1カウントだけ減少した場合、エスケープ要素は、有利には最大ランであることが理解される。エントロピー変更器10は、ビットストリームの圧縮が望まれる場合、ストリームにおける最初のビットが既知であることを必要とし、その結果、対応する圧縮ビットストリームは、後にエントロピー変更器60において、可逆的に復号、つまり展開することできる。
【0120】
本発明の実施形態を更に明確にするために、以下に一例について述べる。以下は、最大ランレングスが3ビットであり、かつエスケープ符号が「0」である場合に本発明によるエントロピーの符号化が機能した方式の第1の例である。
【0121】
元のビットストリームは以下の通りである。
【0122】
0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1
【0123】
上記ビットストリームは、ストリーム全体で26ビットを含み、16個の「1」と10個の「0」が存在する。
【0124】
上記元ビットストリームに関連するエントロピーEは、以下の通り算出可能である。
【0126】
式3より、このような関連エントロピーEを有する元ビットストリームを符号化するのに必要とされるビット最小数M
Bは、以下の情報源符号化定理に従って算出可能である。
【0128】
上述の元ビットストリームは、本発明による方法を適用することで符号化可能であり、以下の対応する符号配列を生成する。
【0129】
最初のビット値は「0」であり、類似するビットの連続量(=エントロピー変更されたシンボル)は、以下の通りである。
【0131】
エスケープシンボル「0」が、0(エスケープ)から3(最大ランレングス)までの4つの異なる値に各種シンボルの数を制限するのに用いられ、かつストリームに最初のビット値を最初のシンボルとして加えた場合、以下が取得される。
【0132】
0 1 2 2 0 0 1 0 1 1 3 0 3
【0133】
上記は、ストリーム全体で13個の符号を含み、5個の「0」、4個の「1」、2個の「2」、及び2個の「3」が存在する。
【0134】
この符号ストリームに関連するエントロピーEは、以下の通り算出可能である。
【0136】
式5より、このようなエントロピーEを可逆方式で提示するビット最小数M
Bは、以下の通り算出可能である。
【0138】
符号の列におけるエントロピーが元のビットストリームより小さく、かつ、符号の列を表現するのに必要なビットが少なくなることが理解される。任意に、エントロピー変更符号列は、表1に概要を示す通り生成される。
【0140】
表1は、単なる例であり、本発明の実施形態を実施する上では、多数の代替例が生成され得る。例えば、他の最大ランレングス値及び他のエスケープ符号が利用され得る。さらに、最初のビットは、任意に、別に挿入され、その場合、有意な程度では、利用される実際の符号、並びにそれらに関連する圧縮に影響を及ぼすことがない。
【0141】
任意に、エントロピー変更器10、60は、特定の状況においてはエントロピーを増加させるように動作可能であり、これは、それゆえに、エントロピー変更器10、60からの出力データを例えば信号監視装置を用いて監視し、採用した符号化レジームが望ましい程度のデータ圧縮を提供するか否かを判定するのに有利である。伝送される所与の種類のデータに関してエントロピーが増加されるイベントにおいては、信号監視装置は、エントロピー変更器10、60を介したエントロピーの望まれる改変が操作において達成されることを確実にするような適応的な方式でエントロピー変更器10、60の動作を制御するのに利用され得る。例えば、所与の種類のデータについて、最適なデータ圧縮を獲得するために利用される最大ランの最適値をサーチすることを目的としてデータストリームの符号化を開始する場合、エントロピー変更器10を、1つ又は複数の試験符号化レジームを適用するのに用いることが望ましく、最大ランは、エントロピーEに大きな影響を及ぼし得る。さらに、所与のデータストリームにおける最初のビット値に関連するエントロピーEは、所与のデータストリームの長さが相対的に短い場合には、エントロピーEに大きな影響を及ぼし、例えば、最初のビット値は、有利には、所与のデータストリームを表現するのに用いられる他の符号のワードとは別に伝達される。
【0142】
図1に示す通り、有利には、エントロピー変更器10、60は、可変長符号化(Variable−Length−Coding;VLC)、ハフマン符号化(Huffman coding)、ランレングス符号化(Run−Length−Encoding;RLE)、算術符号化(Arithmetic coding)及びレンジ符号化(Range coding)等のエントロピー符号化方法と組み合わせて利用される。或は、差分符号化等のその他種類のエントロピー変更器が、それらと組み合わせて利用されることが好ましい。それらエントロピー符号化法は、エントロピー変更器10の後、かつエントロピー変更器60の前に利用されることが好ましい。或は、さらに、それらエントロピー符号化法は、エントロピー変更器10の前、かつエントロピー変更器60の後に利用されることも好ましく、例えば、符号化される元データが、英数字、数字、バイト又はワードである場合、元データは、表2に提供される更なる符号化を用いて効率的に符号化される。
【0143】
[表2]本発明によるエントロピー変更器と共に利用可能な更なる符号化
【0144】
任意に、エントロピー変更器10、60は、再帰的に利用される。
【0145】
上述の通り、本発明によるエントロピー変更器は、他の種類のエントロピー変更器と組み合わせて利用することが好ましく、他の種類のエントロピー変更器としては、任意には既知の種類のものである。既知の種類としては、例えば差分符号化が含まれる。典型的には、差分符号化は、バイト又はワードのフォーマットで提供される数値を処理するために利用される。次に、差分符号化と組み合わせて利用される本発明のエントロピー変更器の実施例について説明する。
【0146】
本発明を更に明確にするために、2つの例を説明する。1つの例は、本発明によるエントロピー変更器を使用しないものであり、他方の例は本発明によるエントロピー変更器を利用したものである。本例においては、7ビットの最大ランレングスが、関連するエスケープ符号「0」と共に利用される。1ビットODelta型演算子を利用した場合、符号化配列における最初のビットは、符号化される元データストリームに存在する対応する元データビットと同一である。任意に、1ビットODelta分演算が再帰的に実行され得る。
【実施例】
【0147】
実施例1:
元データビットストリームには、全体で37ビット、即ち、17個の「1」と20個の「0」が含まれる。
【0148】
0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1
【0149】
上記において、対応する関連エントロピーEは、以下の通り算出可能である。
【0150】
[式7]
【0151】
算出されるM
Bは36.82ビットに対応し、上記に提供される通り実質37ビットである。式7は、元ビットストリームにおけるビット量に対応する。
【0152】
同等のエントロピー変更(EM)符号は、表1を生成するのに利用されるものと一般に同様の方式で、以下の通りである。
【0153】
0 1 1 1 1 1 2 2 1 3 1 1 1 0 4 0 3
【0154】
ここで、関連エントロピーEは、以下の通り算出可能である。
【0155】
[式8]
【0156】
式8は、エントロピー変更後のビット量に対応することが理解される。さらに、このビット量は、式7に関連するものよりも小さいことが理解される。
【0157】
しかしながら、上記元ビットストリームをODelta演算に供試すると、以下の通り37ビットを含み、13個の「1」と24個の「0」が存在する、対応する変更ビットストリームが生成される。
【0158】
0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
【0159】
ここで、対応するエントロピーEは、以下の通り算出可能である。
【0160】
[式9]
【0161】
即ち、元ビットストリーム(式7)に関連するエントロピーEよりも小さい。上記のODelta処理データビットストリームを本発明によるエントロピー変更に供試すると、以下のような符号の対応符号化配列が得られる。
【0162】
0 1 5 1 1 1 2 2 4 0 3 1 0 2
【0163】
ここで、対応するエントロピーEは、以下の通り算出可能である。
【0164】
[式10]
【0165】
上記エントロピーEは、全体で37ビットを含む元データビットストリーム(式7)のエントロピーEよりも小さい。さらに、このビット量は、式8又は式9に関連するエントロピーEよりも小さいことが理解される。
【0166】
本実施例は、元データストリームが、1ビットODelta演算子を用いて最初に圧縮され、次いで、本発明によるエントロピー変更器を用いて圧縮される場合に、元データビットストリームを効率的に圧縮可能であることを示す。
【0167】
実施例2
実施例1における上記元ビットストリームは、2つの部分に分割され、本発明によるエントロピー変更の利益が、それら得られる2つのデータストリームの最良の組合せを選択することにより最適化される。エントロピー変更器の最初のビット値は別に伝達され、得られるエントロピー低減符号列には挿入されることはない。得られ得る第1のエントロピー変更結果は実施例1と同様であり、最初のビットもまた、「1」の符号ワードとして設定される。7ビットの同様の最大ランが利用され、表3に提供される通り「0」がエスケープ符号に利用される。
【0168】
[表3]実施例2 エントロピー変更
【0169】
表3より、エントロピー低減が達成されることが理解されるが、これは、データ圧縮を達成しようとする場合において有利となる。第1部分のデータストリームについては、エントロピー変更が為された元データストリームから生成されたデータ関し、当該データに基づいてエントロピー符号化された場合、即ち13.49ビットを用いて表現される場合に、かつ第2の部分については、1ビットODelta符号化を介してエントロピー変更が為された場合、即ち5.80ビットを用いて表現される場合において、最良のデータ圧縮が達成されることになり、その結果、元のデータストリームの37ビットに対して19.29ビットを用いて表現され得ることを要する。これは、かなりのデータ圧縮を意味する。第2データストリームが符号化される場合には、最初のビット値は、第1データストリームから知ることができるので、送信する必要は無い。そのため、表3には「/」で区画された異なる2つの値が示されており、最初のものは連続状態(即ち、最初のビット値は送信されない)に関するものであり、第2のものは、データストリームがこの種のビット組合せで開始する場合に関するものである。本実施例では、ODelta符号化のみで、データのエントロピー、即ち、殆ど第2データ部分に関するエントロピーを低減するものであるが、ODelta符号化は、エントロピー変更器10、60との組合せにおいても有利なエントロピー低減を提供することが理解される。ここで、エントロピー変更元データは、ODelta符号化で最初に処理されたエントロピー変更データよりも小さいエントロピーを生じ、つまり、6.00ビット<9.61ビットとなっている。実践的な符号化解決手段においては、ODelta符号化データのエントロピーの方が、エントロピー変更元データよりも小さい(つまり5.80ビット<6.00ビット)ものの、エントロピー変更元データの方が、任意に、ODelta符号化データよりも効率的に有利に圧縮される。とりわけ算術符号化は、1ビットデータを圧縮するのにまた有利に利用されるが、1ビットデータは、エントロピーエンコーダの実装に関しそれほど実践的ではない。任意に、元ビットストリームは、データ圧縮を達成するためのエントロピー変更プロセスに供試される前に2つを超える部分に分割される。
【0170】
任意に、元データビットストリームを1つ又は複数のストリーム、即ち部分に分割することは、以下を含む方法で自動的に実行することができる。
(a)元データビットストリームに関連するエントロピーを分析すること、
(b)元データビットストリームの解析したエントロピーの関数に応じて、元データストリームを2以上の部分に分割すること、
(c)1つ又は複数のエントロピー変更操作を上記2以上の部分に適用することにより1つ又は複数の対応するエントロピー変更部分を生成すること、並びに
(d)上記1つ又は複数のエントロピー変更部分を結合することにより圧縮符号化出力データを生成すること。
本発明はまた、上記符号化出力データを復号する方法であって、工程(a)から(d)の逆が利用される方法にも関連する。任意に、該方法は、例えば圧縮率の強化を達成するために、及び/又は実質的に可逆圧縮を達成するために、符号化がより効率的に実施されるように元ビットストリームに存在するデータブロックを分割又は結合することを含む。
【0171】
任意に、工程(b)は、粗い方式で実施されるものである。この場合、即ち工程(b)は、元データビットストリームにおいて、つまり元データビットストリームの領域の後又はそれら領域間において多数の長いラン区画に遭遇した場合に、元データビットストリームを単に分けるものであり、上記元データビットストリームの領域においては、データビットが急な態様で配列上変化する十分に大きなデータビットストリーム領域が存在する。
【0172】
任意に、本発明により符号化ビットストリームを生成するためには、元データビットストリームは、例えばVLC、算術符号化若しくはレンジ符号化、及び/又はRLEの適用を介して、中間符号化データを提供するよう処理され、中間符号化データは次いで、本発明によるエントロピー変更に供試されることにより、圧縮され、かつエントロピーが低減された出力符号化データを生成する。このようなアプローチは
図1に示されおり、それにより、データ圧縮の間にかなりの速度最適化が達成される。これは、本発明が機械可読データ記憶媒体に記録された1つ又は複数のソフトウェア製品により実施される場合に必要となる演算能力が少なくて済むことに対応し、上記1つ又は複数のソフトウェア製品は、エントロピー変更エンコーダを実装するためにコンピュータハードウェアで実行可能であって、この事は、エントロピー変更デコーダにおいても同様である。任意に、エントロピー最適化は、元データビットストリームにおける元のビット、アルファベット、数、バイト、ワードが、その他方法を用いて最初に符号化されるように実装され、その後に、本発明によるエントロピー変更が適用されて符号化出力データが生成される。
【0173】
現在知られているランレングス符号化(RLE)法においては、任意の値が生成され、次いで、その後、この任意の値の後に別の後続値が続く前までの当該任意の値の出現数を示す対応データが生成される。このようなRLE法は、符号化される入力データが利用可能である限り継続され、つまり、別の値の後ある値が順次に符号化される。反対に、本発明は、1ビット値のみが利用される場合に、「0」及び「1」のデータ値を符号化するデータストリームに加える必要がないという知見に由来するものであり、その理由は、それらは、交互に順に生じるからである。このように、任意の配列における最初の値のみが符号化データの伝達において表現されることで十分である。したがって、本発明は、RLE符号化に類似するものであるが、上述の通り1ビットデータストリームを利用するものである。
【0174】
本発明の実施形態を実施する際は、エスケープ符号は、利用される実際の符号化法のより効率的な使用を可能にする付加といったものである。有利には、本発明の実施形態は、エンコーダから対応するデコーダに1つ又は複数の符号化テーブルを送信し、エンコーダから送信され、デコーダで受信される符号化データの復号を補助することを含む。このような符号化テーブルを伝達するとても有利な方法の幾つかが、例えば、2014年2月20日に出願人によって提出された特許出願GB1403039.9(本願において援用される)に開示されている。さらに、エントロピー符号化を組み合わせ、符号化テーブルを伝達する方法が、2014年2月20日に出願人によって提出された特許出願GB1403038.1(本願において援用される)に開示されている。上記の開示される方法の両方は、本発明の実施形態と組み合わせて用いるのに適するものであり、エントロピー符号化に必要となる更なる符号化データを最小化することを助ける。
【0175】
本発明の実施形態を実施するために利用されるエスケープ符号は、幾つかの各種方式で容易に実装され得る。例えば、「0」の値で連続するランレングスシンボル又は数の場合、十分な符号化が達成され得る。しかしながら、これらの量の値が小さい場合が生じることが潜在的にあったり、反対に、極めて大きな数値が生じ得る場合もあり、これらの場合には、エスケープ符号が、依然として用いられていないか、又は符号ワードとして用いるのに割当てられていない次の値に対して有利に設定される。例えば、利用される最大ランレングスが7個のビット又は要素であり、エスケープ符号が「0」である場合には、符号ワード「8」が、符号化データストリームの生成の際に用いられ、この新規エスケープ符号は、単に1つの新規符号ワードを加えるのみであり、この後に、シンボルの実際の数が、任意の方法を用いて、例えば1、2及び/又は3バイトで、又はハーフバイト(即ち、「ニブル」)を用いて表現され得る。任意に、シンボルの実際の数は、圧縮されずに伝達される。任意に、シンボルの実際の数は、最大ランレングス値と結合され、次いで、エントロピー圧縮器、即ちエントロピー変更器におけるその他データ値と共に圧縮される。
【0176】
本発明の実施形態に用いるための好適なエスケープ値を選択する際、隣接する要素の総数を同時に表現することが有利であり、したがって、このエスケープ値を呼び出した後に、同一のビットは、エスケープ値の使用とは対照的に、その後に続くことはない。このような新規形態の終結は、上述した連続エスケープ法に加えて使用可能であるエスケープ、即ち、符号ワードを提供するが、或は、そのような新規エスケープ符号は、代替法としてのみ使用可能であって、この場合、その符号ワードは、有利には値「0」に設定可能である。同様に、この終結符号の任意のデータ値は通常小さいが、仮に大きい場合には、データに存在する連続する類似シンボルの数を、交互に起こるバイト又はニブルの数で表すことが有利である。そのようなバイトの1ビット、例えば、最下位ビット(least significant bit;LSB)又は最上位ビット(most significant bit;MSB)が、上記数の終結、例えばビットストリングを示すのに有利に予約され、従って、有利には、その符号ワードは、値が終了する場合は値「0」又は「1」に設定され、その他の場合には値が連続する。
【0177】
上述のことを明確にすることを目的として、次に、エスケープ符号の機能性の例を、両種のエスケープが利用される状況において説明する。本例においては、15によって示される連続エスケープに関する符号ワードにより、14要素の最大ランが利用され、ここで、終結エスケープの符号ワードは0である。さらに、連続類似シンボル又はビットの量に関する値は、以下である。
【0178】
9, 1024, 16, 9, 12, 2000, 7, 20, 21, 6, 8, 120, 12,・・・
【0179】
さらに、本例は、ハーフバイト(即ち、ニブル)を利用するものであり、この場合、最上位ビット(MSB)である値「1」が、当該数、即ちビットストリングの終結を示すのに利用される。有利には、終結エスケープが利用される場合、当該数、即ちビットストリームから、以下を引くことが可能である。
【0180】
(ビットストリング)−(MAXRUN+1)
【0181】
例えば:
1024
底10 =>
1024
底10 - (14
底10 + 1) => 1009
底10 => 1 111 110 001
底10 ニブルについて表される数=>
1 + 8(終結) 7 6 1)。したがって、本例は、以下の通り符号化することができる。
【0182】
9 0 1 6 7 9 15 2 9 12 0 1 0 7 11 7 15 6 15 7 6 8 0 1 5 9 12
【0183】
本例においては、エントロピー変更器10、60は、0〜15の範囲の値を有する符号ワードを解釈し得るものであることが必要である。本例は、単一のエスケープ符号のみを用いて表現することが可能であり、ここで、符号ワード「0」が終結エスケープをまた示すエスケープ符号に対応する。このような単一種のエスケープ符号の代替例においては、連続エスケープは用いられることはなく、その他パラメータは上記の通りであり、即ち、以下となる。
【0184】
9 0 1 6 7 9 0 9 9 12 0 1 0 7 11 7 0 13 0 14 6 8 0 1 5 9 12
【0185】
ここで、エントロピー変更器10、60は、0〜14の範囲の符号ワードを認識するのに必要である。この代替例は、任意に、符号ワード「0」によって表現される連続エスケープのみを用い、かつ最大ランレングス14を利用することによって表現され、以下の形態の符号配列を生じる。
【0186】
9 73x0 2 0 2 9 12 142x0 12 7 0 6 7 6 8 8x0 8 12
【0187】
最良の符号化解決手段が、全ての3つの解決手段について別々に計算されるエントロピーに基づいて選択され得る。
【0188】
次に、エントロピー変更(EM)及び逆エントロピー変更(IEM)を提供する本発明の実施形態を説明する。しかしながら、他の実施形態もまた、本発明の範囲において実施可能であり、例えばバリアブルステートマシン(variable-state-machine)、特定用途向け集積回路(ASIC)等、デジタルハードウェアを利用した相応のエントロピー変更器が挙げられる。以下の例における"GetBit"(「ゲットビット」)、"SetBit"(「セットビット」)、及び"ClearBit"(「クリアビット」)命令は、"HeaderBits"(「ヘッダービッツ」)値を更新するように常に機能する。さらに、次のビットが次のバイトに存在する場合に"HeaderIndex"(「ヘッダーインデックス」)値もまた、更新される。ソフトウェア製品に基づく以下の例では、最初のビットが、1つの符号として格納される。任意に、より良好な実装においては、例えば表3を参照すると、最初のビット値は、上述の符号から分離されている。対応するデコーダは、有利には、復号出力データに寄与する宛先バイトに対して多数のビットを一緒に書き込むことによって最適化される。以下の例示実施形態において提供される"MaxRun"は、(最大ランレングス+1)に類似し、例えば、7ビットの最大ランレングスが利用される場合、以下の実施形態では値8が機能パラメータ"AMaxRun"(「エーマックスラン」)として与えられる。
【0189】
【0190】
【0191】
【0192】
例えばVLC、ハフマン符号化、算術符号化、レンジ符号化、RLE符号化等のエントロピー符号化法は、つまりある種の予測又はその他追加の情報を用いずに、つまり情報を失わずに、データをそのエントロピーが許容するよりも小さいサイズに圧縮することは可能ではないとしても、これは、実際上の最大のデータ圧縮が最小のエントロピーに対応することを何れの場合であっても意味するものではなく、言い換えると、実際上は、エントロピーとデータ圧縮とは、全く同じ概念という訳ではない。符号化データをその対応する元の形態に復号するには、常に何らかの追加の情報を必要とし、その情報の伝達には、場合によっては圧縮される実際のデータに加えて、妥当とはいえない量の余分な情報が必要となる。大量のデータが扱われる場合には、最小のエントロピーが、大抵、最良のデータ圧縮に対応するが、少量のデータが扱われる場合には、データの圧縮は、必ずしも単純なものではなく、例えば、1ビットデータは、大抵、効率的に圧縮することは困難であり、それゆえに、1ビット情報を処理するように動作可能であるエントロピー変更器10、60が、潜在的に、そして商業的に、とても価値のある発明となる。さらに、より簡単に圧縮可能であるフォーマットのデータを処理すると、しばしば、フォーマットのプロセスが適用される前の対応元データと比較して、フォーマットされたデータのエントロピーは低減する。
【0193】
上述した通り、符号化データを表す符号ワードの配列における最初のビット値が、連続するシンボル又はビットの数を示す値とは別に伝達される場合には、それはしばしば効率的である。しかしながら、そのような別々の伝達は、完全に分離した通信に対応する必要はない。以下の例では、最初のビットを別に操作しているにも関わらず、依然として、最初のビットの量を連続要素の総量に加える必要がある。そうしなければ、以下の例を区別することができないからである。
【0194】
0 0 1 及び0 1 又は
1 1 0 及び1 0,
【0195】
最初の要素が上述のエスケープコードの実装に利用される場合、最初の要素量の数を0に設定しないのは望ましくなく、エスケープコードは、つまり連続する類似信号の数が例における最大ランレングスを超えた時に用いるためのものである。
【0196】
図1において、データD2のサイズは、データD1のサイズより必ずしも小さい必要はないが、データD1及びD2は相互に類似する情報を含んでいるにしても、データD2のエントロピーは小さい。データD2のサイズは、利用されるランレングスに依存する。例えば、データD1において、データ要素のサイズは1ビットであるのに対し、データD2のサイズは利用されるランレングスのサイズに依存する。例えば、データD1が104ビットのサイズを有し、かつエントロピーE=80の場合、40個の要素、即ち0から7の範囲の値を有する3ビット要素を有し、かつエントロピーE=50であるデータD2において7個の要素の最大ランレングスを用い、エントロピー変更器10によってデータD1を変換することが可能であり、そうすると、データD2は40×3ビット=120ビットのサイズを有し、このような例では、データD2はデータD1よりもサイズが大きい。符号化ステージ20は、有利には、データD2を52ビットに圧縮し、データD3を提供することが可能であるVLC変換を利用する。したがって、エントロピー変更器10、60は、データの圧縮及び展開それぞれを常に提供する訳ではないが、他の符号化ステージと共に利用した場合には、データの圧縮及び展開を提供することが可能であることを理解されたい。
【0197】
本発明の実施形態は、有利には、例を挙げると通信システム、視聴覚消費財、科学画像処理機器、コンピュータ装置、スマートフォン等の無線対応通信装置、デジタルカメラ、デジタル監視機器、対話型コンピュータゲームの構成部品として含まれる。高いデータ圧縮率によって、データ保存の必要性を減らすことができ、より高速な通信を達成することが可能となる。これらの全ては、例えば産業において利用できる有利な技術的効果と考慮されるであろう。さらに、実施形態は、ソフトウェア製品、ハードウェア、又はそれらの組合せにおいて実装可能である。ソフトウェア製品は、任意に、ソフトウェアアプリケーション、即ち「ソフトウェアアプリ」としてダウンロード可能である。
【0198】
添付の特許請求の範囲によって規定される本発明の要旨から逸脱することなく、上記の本発明の実施形態に対して修正が可能である。本発明を記載し、特許請求するのに用いられる、「含む、備える」("including")、「含む、備える」("comprising")、「からなる」("consisting of")、「有する」("have")、「である」("is")等の表現は、非排他的な態様で解釈されるべきことが意図されており、即ち、明確に記載されていない項目、成分又は要素も存在することを許容するものである。単数形で言及された事項は、複数個の場合も含むと解釈され得る。添付の特許請求の範囲における括弧内に含まれる数値は、特許請求の範囲の理解を助けることを意図するものであり、各請求項によって請求される技術思想を限定するものとして理解されてはならない。