特許第6977075号(P6977075)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ スノー コーポレーションの特許一覧

特許6977075イメージファイルのブロック間の差を利用した圧縮率向上方法およびシステム
<>
  • 特許6977075-イメージファイルのブロック間の差を利用した圧縮率向上方法およびシステム 図000002
  • 特許6977075-イメージファイルのブロック間の差を利用した圧縮率向上方法およびシステム 図000003
  • 特許6977075-イメージファイルのブロック間の差を利用した圧縮率向上方法およびシステム 図000004
  • 特許6977075-イメージファイルのブロック間の差を利用した圧縮率向上方法およびシステム 図000005
  • 特許6977075-イメージファイルのブロック間の差を利用した圧縮率向上方法およびシステム 図000006
  • 特許6977075-イメージファイルのブロック間の差を利用した圧縮率向上方法およびシステム 図000007
  • 特許6977075-イメージファイルのブロック間の差を利用した圧縮率向上方法およびシステム 図000008
  • 特許6977075-イメージファイルのブロック間の差を利用した圧縮率向上方法およびシステム 図000009
  • 特許6977075-イメージファイルのブロック間の差を利用した圧縮率向上方法およびシステム 図000010
  • 特許6977075-イメージファイルのブロック間の差を利用した圧縮率向上方法およびシステム 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6977075
(24)【登録日】2021年11月12日
(45)【発行日】2021年12月8日
(54)【発明の名称】イメージファイルのブロック間の差を利用した圧縮率向上方法およびシステム
(51)【国際特許分類】
   H04N 1/64 20060101AFI20211125BHJP
   H04N 19/94 20140101ALI20211125BHJP
   H04N 19/91 20140101ALI20211125BHJP
【FI】
   H04N1/64
   H04N19/94
   H04N19/91
【請求項の数】14
【全頁数】16
(21)【出願番号】特願2020-12562(P2020-12562)
(22)【出願日】2020年1月29日
(65)【公開番号】特開2020-123953(P2020-123953A)
(43)【公開日】2020年8月13日
【審査請求日】2020年1月29日
(31)【優先権主張番号】10-2019-0011765
(32)【優先日】2019年1月30日
(33)【優先権主張国】KR
(73)【特許権者】
【識別番号】518447647
【氏名又は名称】スノー コーポレーション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】朴 炳宣
【審査官】 松永 隆志
(56)【参考文献】
【文献】 特表2018−527773(JP,A)
【文献】 特開2017−005456(JP,A)
【文献】 国際公開第2004/068844(WO,A1)
【文献】 特表2013−507084(JP,A)
【文献】 特表2006−502673(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/00− 1/64
H04N 19/00−19/98
(57)【特許請求の範囲】
【請求項1】
コンピュータシステムが実行するイメージ圧縮方法であって、
前記コンピュータシステムは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、
前記イメージ圧縮方法は、第1のイメージ圧縮方法であって、
前記少なくとも1つのプロセッサが、圧縮対象となるイメージファイルのピクセルを複数のブロックに分ける段階、
前記少なくとも1つのプロセッサが、前記ブロック間のピクセル差値を利用してピクセル変換を実行する段階、および
前記少なくとも1つのプロセッサが、前記ピクセル変換が完了したイメージファイルを定められたフォーマットで格納する段階
を含み、
前記実行する段階は、
前記複数のブロックうちの基準ブロックを除いた残りの対象ブロックの場合、前記対象ブロックと前記基準ブロックとの同じ位置の間のピクセル差値、あるいは隣接するブロックの同じ位置の間のピクセル差値を計算する段階、
前記基準ブロックの場合、復元のため前記基準ブロックのピクセル値をそのままに利用する段階、および
前記対象ブロックの場合、前記対象ブロックのピクセル値に代わって前記ピクセル差値を利用する段階
を含み、
前記対象ブロックのピクセル値を前記ピクセル差値に置き換える方法により、原本ファイルの実際のピクセル値より少ないビットで表現されるように、前記対象ブロックのピクセル値を操作する前記ピクセル変換を行う、第1のイメージ圧縮方法と、
第2のイメージ圧縮方法であって、
前記少なくとも1つのプロセッサが、各ピクセル値を示すバイトの一部ビットをマスクすることでピクセル変換を実行する段階を含む第2のイメージ圧縮方法とを
選択的に実行する段階を有する、
イメージ圧縮方法。
【請求項2】
前記分ける段階は、
前記イメージファイルの各ピクセルを同一の大きさのブロック単位で束ねることで前記イメージファイルを前記複数のブロックに分ける、
請求項1に記載のイメージ圧縮方法。
【請求項3】
前記一部ビットをマスクしてピクセル変換を実行する段階は、
各ピクセル値を示すバイトにおいて最下位ビット(least significant bit)を基準に一定個数のビットを0にマスクする段階
を含む、請求項に記載のイメージ圧縮方法。
【請求項4】
前記格納する段階は、
前記ピクセル変換が完了したイメージファイルの各ブロック別にRGBそれぞれのコードを別途生成して格納する段階
を含む、請求項1に記載のイメージ圧縮方法。
【請求項5】
前記格納する段階は、
前記ピクセル変換が完了したイメージファイルの全体ブロックに対してRGBそれぞれのコードを別途生成して格納する段階
を含む、請求項1に記載のイメージ圧縮方法。
【請求項6】
前記格納する段階は、
前記ピクセル変換が完了したイメージファイルの各ブロック別にRGB全体のコードを一度に生成して格納する段階
を含む、請求項1に記載のイメージ圧縮方法。
【請求項7】
前記格納する段階は、
前記ピクセル変換が完了したイメージファイルの全体ブロックに対してRGB全体のコードを一度に生成して格納する段階
を含む、請求項1に記載のイメージ圧縮方法。
【請求項8】
前記格納する段階は、
前記ピクセル変換が完了したイメージファイルの格納時、前記ブロック間のピクセル差値によって生成されたファイルを事前に定められた圧縮方式によって一括処理する段階
を含む、請求項1に記載のイメージ圧縮方法。
【請求項9】
請求項1〜のうちのいずれか一項に記載のイメージ圧縮方法を前記コンピュータシステムに実行させるためのコンピュータプログラム。
【請求項10】
コンピュータシステムであって、
メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサは、
圧縮対象となるイメージファイルのピクセルを複数のブロックに分け、前記ブロック間のピクセル差値を利用してピクセル変換を実行するピクセル変換部、および
前記ピクセル変換が完了したイメージファイルを定められたフォーマットで格納するイメージ格納部
を備ええ、
前記ピクセル変換部は、
前記複数のブロックうちの基準ブロックを除いた残りの対象ブロックの場合、前記対象ブロックと前記基準ブロックとの同じ位置の間のピクセル差値、あるいは隣接するブロックの同じ位置の間のピクセル差値を計算し、
前記基準ブロックの場合、復元のため前記基準ブロックのピクセル値をそのままに利用し、
前記対象ブロックの場合、前記対象ブロックのピクセル値に代わって前記ピクセル差値を利用することで、
前記対象ブロックのピクセル値を前記ピクセル差値に置き換える方法により、原本ファイルの実際のピクセル値より少ないビットで表現されるように、前記対象ブロックのピクセル値を操作する前記ピクセル変換を行うこと、及び
各ピクセル値を示すバイトの一部ビットをマスクすることで該当のピクセル値を操作すること、を選択的に行う、
コンピュータシステム。
【請求項11】
前記ピクセル変換部は、
前記イメージファイルの各ピクセルを同じ大きさのブロック単位で束ねることで前記イメージファイルを前記複数のブロックに分ける、
請求項10に記載のコンピュータシステム。
【請求項12】
前記ピクセル変換部は、
各ピクセル値を示すバイトにおいて最下位ビットを基準に一定個数のビットを0にマスクする、
請求項10に記載のコンピュータシステム。
【請求項13】
前記イメージ格納部は、
前記ピクセル変換が完了したイメージファイルの各ブロック別にRGBそれぞれのコードを別途生成してRGB全体のコードを一度に生成して格納するか、あるいは前記ピクセル変換が完了したイメージファイルの全体ブロックに対してRGBそれぞれのコードを別途生成してRGB全体のコードを一度に生成して格納する、
請求項10に記載のコンピュータシステム。
【請求項14】
前記イメージ格納部は、
前記ピクセル変換が完了したイメージファイルの格納時、前記ブロック間のピクセル差値によって生成されたファイルを事前に定められた圧縮方式によって一括処理する、
請求項10に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、イメージファイルを圧縮する技術に関する。
【背景技術】
【0002】
一般的に、イメージは、イメージ内の画素(pixel)それぞれに関する情報を必要とするため、フォトグラフィックイメージまたはこれと類似のグラフィックイメージは容量の大きいファイルとして見なされる。
【0003】
このようなフォトグラフィックイメージまたはこれと類似のグラフィックイメージは、1Mバイト以上の格納空間と必要し、送信率の低い通信網を利用する場合には相当な送信時間を要する。
【0004】
近年は、イメージを記録するのに必要となる格納空間の量と送信時間を減らすために、イメージを圧縮する技術が開発されている。
【0005】
イメージ圧縮技法は、損失圧縮技法(loss compression method)と非損失圧縮技法(lossless compression method)とに分けられるが、このような圧縮技法は、空間的、時間的、確率的重複性を取り除くことによってイメージを圧縮する。
【0006】
イメージ圧縮技術の一例として、特許文献1(登録日2003年05月19日)には、パーソナルコンピュータの汎用直列バスインタフェースに接続することで、ユーザがUSBカメラなどに利用できるイメージ圧縮技術が開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】韓国登録特許第10−0385865号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
イメージファイルの各ピクセルの一部ビットをマスクするピクセル変換によってイメージファイルを圧縮する方法およびシステムを提供する。
【0009】
イメージファイルのブロック間のピクセル差を利用したピクセル変換によってイメージファイルを圧縮する方法およびシステムを提供する。
【課題を解決するための手段】
【0010】
コンピュータシステムが実行するイメージ圧縮方法であって、前記コンピュータシステムは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、前記イメージ圧縮方法は、前記少なくとも1つのプロセッサが、圧縮対象となるイメージファイルを複数のブロックに分ける段階、前記少なくとも1つのプロセッサが、前記ブロック間のピクセル差値を利用してピクセル変換を実行する段階、および前記少なくとも1つのプロセッサが、前記ピクセル変換が完了したイメージファイルを定められたフォーマットで格納する段階を含む、イメージ圧縮方法を提供する。
【0011】
一態様によると、前記分ける段階は、前記イメージファイルの各ピクセルを同じ大きさのブロック単位で束ねることで前記イメージファイルを前記複数のブロックに分けてよい。
【0012】
他の態様によると、前記実行する段階は、各ブロックのピクセル値を、他のブロックの同じ位置のピクセル値との差値と代替する段階を含んでよい。
【0013】
また他の態様によると、前記実行する段階は、前記複数のブロックのうちの基準ブロックの場合、前記基準ブロックのピクセル値をそのまま使用する段階、および前記基準ブロックを除いた残りのブロックの場合、前記基準ブロックあるいは隣接するブロックとのピクセル差値を使用する段階を含んでよい。
【0014】
また他の態様によると、前記イメージ圧縮方法は、前記少なくとも1つのプロセッサが、各ピクセル値を示すバイトの一部ビットをマスクすることでピクセル変換を実行する段階をさらに含んでよい。
【0015】
また他の態様によると、前記一部ビットをマスクすることでピクセル変換を実行する段階は、各ピクセル値を示すバイトにおいて最下位ビット(least significant bit)を基準に一定の個数のビットを0にマスクする段階を含んでよい。
【0016】
また他の態様によると、前記記録する段階は、前記ピクセル変換が完了したイメージファイルの各ブロック別にRGBそれぞれのコードを別途生成して記録する段階を含んでよい。
【0017】
また他の態様によると、前記記録する段階は、前記ピクセル変換が完了したイメージファイルの全体ブロックに対してRGBそれぞれのコードを別途生成して記録する段階を含んでよい。
【0018】
また他の態様によると、前記記録する段階は、前記ピクセル変換が完了したイメージファイルの各ブロック別にRGB全体のコードを一度に生成して記録する段階を含んでよい。
【0019】
また他の態様によると、前記記録する段階は、前記ピクセル変換が完了したイメージファイルの全体ブロックに対してRGB全体のコードを一度に生成して記録する段階を含んでよい。
【0020】
さらに他の態様によると、前記記録する段階は、前記ピクセル変換が完了したイメージファイルの格納時に、前記ブロック間のピクセル差値によって生成されたファイルを事前に定められた圧縮方式によって一括処理する段階を含んでよい。
【0021】
上述したイメージ圧縮方法を前記コンピュータシステムに実行させるために非一時的なコンピュータ読み取り可能な記録媒体に記録されるコンピュータプログラムを提供する。
【0022】
コンピュータシステムであって、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、圧縮対象となるイメージファイルを複数のブロックに分け、前記ブロック間のピクセル差値を利用してピクセル変換を実行するピクセル変換部、および前記ピクセル変換が完了したイメージファイルを定められたフォーマットで格納するイメージ格納部を備える、コンピュータシステムを提供する。
【発明の効果】
【0023】
本発明の実施形態によると、イメージファイルの各ピクセルの一部ビットをマスクするピクセル変換によってイメージファイルを圧縮することにより、イメージ圧縮率を向上させることができる。
【0024】
本発明の実施形態によると、イメージファイルのブロック間のピクセル差を利用したピクセル変換によってイメージファイルを圧縮することにより、イメージ圧縮率を向上させることができる。
【図面の簡単な説明】
【0025】
図1】本発明の一実施形態における、コンピュータシステムの内部構成の一例を説明するためのブロック図である。
図2】本発明の一実施形態における、コンピュータシステムのプロセッサが含むことのできる構成要素の例を示した図である。
図3】本発明の一実施形態における、コンピュータシステムが実行することのできるイメージ圧縮方法の一例を示したフローチャートである。
図4】本発明の一実施形態における、イメージファイルの各ピクセル値を変換する過程の例を示した図である。
図5】本発明の一実施形態における、コンピュータシステムが実行することのできるイメージ圧縮方法の他の例を示した図である。
図6】本発明の一実施形態における、イメージファイルをブロック単位で分ける過程を説明するための例示図である。
図7】本発明の一実施形態における、ブロック間のピクセル差値を計算する過程を説明するための例示図である。
図8】本発明の一実施形態における、ブロック間のピクセル差値を計算する過程を説明するための例示図である。
図9】LUT(look up table)ファイルの例を示した図である。
図10】原本イメージファイルとピクセル変換がなされたイメージファイルとを比較するための例示図である。
【発明を実施するための形態】
【0026】
以下、本発明の実施形態について、添付の図面を参照しながら詳細に説明する。
【0027】
本発明の実施形態は、イメージファイルを圧縮する技術に関する。
【0028】
本明細書で具体的に開示される事項を含む実施形態は、イメージファイルのピクセル変換によるイメージ圧縮技術を提供してよく、これによってイメージ圧縮率、画質保証、格納空間節約、費用節減などの側面において相当な長所を達成することができる。
【0029】
図1は、本発明の一実施形態における、コンピュータシステムの内部構成の一例を説明するためのブロック図である。例えば、本発明の実施形態に係るイメージ圧縮システムは、図1のコンピュータシステム100によって実現されてよい。図1に示すように、コンピュータシステム100は、イメージ圧縮方法を実行するための構成要素として、プロセッサ110、メモリ120、非一時的記録装置130、バス140、入力/出力インタフェース150、およびネットワークインタフェース160を含んでよい。
【0030】
プロセッサ110は、イメージ圧縮のための構成要素として、命令語のシーケンスを処理することのできる任意の装置を含んでも、その一部であってもよい。プロセッサ110は、例えば、コンピュータプロセッサ、移動装置、または他の電子装置内のプロセッサおよび/またはデジタルプロセッサを含んでよい。プロセッサ110は、例えば、サーバコンピューティングデバイス、サーバコンピュータ、一連のサーバコンピュータ、サーバファーム、クラウドコンピュータ、コンテンツプラットフォームなどに含まれてよい。プロセッサ110は、バス140を介してメモリ120に接続してよい。
【0031】
メモリ120は、コンピュータシステム100によって使用されるか、これから出力される情報を記録するための揮発性メモリ、非一時的、仮想、またはその他のメモリを含んでよい。例えば、メモリ120は、RAM(random access memory)および/またはDRAM(dynamic RAM)を含んでよい。メモリ120は、コンピュータシステム100の状態情報のような任意の情報を記録するのに使用されてよい。メモリ120は、例えば、イメージ圧縮のための命令語を含むコンピュータシステム100の命令語を記録するのに使用されてよい。コンピュータシステム100は、必要によってまたは適切な場合に、1つ以上のプロセッサ110を含んでよい。
【0032】
バス140は、コンピュータシステム100の多様なコンポーネント間の相互作用を可能にする通信基盤構造を含んでよい。バス140は、例えば、コンピュータシステム100のコンポーネント間、例えば、プロセッサ110とメモリ120との間でデータを運搬してよい。バス140は、コンピュータシステム100のコンポーネント間の無線および/または有線通信媒体を含んでよく、並列、直列、または他のトポロジ配列を含んでよい。
【0033】
非一時的記録装置130は、(例えば、メモリ120に比べて)所定の延長された期間中にデータを記録するために、コンピュータシステム100によって使用されるもののようなメモリまたは他の非一時的記録装置のようなコンポーネントを含んでよい。非一時的記録装置130は、コンピュータシステム100内のプロセッサ110によって使用されるもののような不揮発性メインメモリを含んでよい。非一時的記録装置130は、例えば、フラッシュメモリ、ハードディスク、光ディスク、または他のコンピュータ読み取り可能な媒体を含んでよい。
【0034】
入力/出力インタフェース150は、キーボード、マウス、音声命令入力、ディスプレイ、または他の入力または出力装置に対するインタフェースを含んでよい。構成命令および/またはイメージ圧縮のための入力が、入力/出力インタフェース150を経て受信されてよい。
【0035】
ネットワークインタフェース160は、近距離ネットワークまたはインターネットのようなネットワークに対する1つ以上のインタフェースを含んでよい。ネットワークインタフェース160は、有線または無線接続に対するインタフェースを含んでよい。構成命令および/またはイメージ圧縮のための入力が、ネットワークインタフェース160を経て受信されてよい。
【0036】
また、他の実施形態において、コンピュータシステム100は、図1の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータシステム100は、上述した入力/出力インタフェース150と連結する入力/出力装置のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ(transceiver)、GPS(Global Positioning System)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。
【0037】
本実施形態は、イメージファイルを圧縮する技術に関し、PNGやJPGなどでイメージ圧縮技術を使用している。
【0038】
図2は、本発明の一実施形態における、コンピュータシステムのプロセッサが含むことのできる構成要素の例を示した図である。
【0039】
図2に示すように、プロセッサ110は、ピクセル変換部210およびイメージ格納部220を含んでよい。ピクセル変換部210は、実施形態によって、ピクセルマスク部211とピクセル差計算部212のうちの少なくとも1つを含んでよい。
【0040】
このようなプロセッサ110の構成要素は、少なくとも1つのプログラムコードによって提供される制御命令にしたがってプロセッサ110によって実行される互いに異なる機能(different functions)の表現であってよい。例えば、プロセッサ110がイメージファイルの各ピクセル値を変換するようにコンピュータシステム100を制御するために動作する機能的表現としてピクセル変換部210が使用されてよい。プロセッサ110およびプロセッサ110の構成要素は、以下のイメージ圧縮方法が含む段階を実行してよい。例えば、プロセッサ110およびプロセッサ110の構成要素は、メモリ120が含むオペレーティングシステムのコードと、上述した少なくとも1つのプログラムコードとによる命令(instruction)を実行するように実現されてよい。ここで、少なくとも1つのプログラムコードは、イメージ圧縮方法を処理するために実現されたプログラムのコードに対応してよい。
【0041】
図3図5のイメージ圧縮方法は、図に示した順のとおりに発生する必要はなく、段階の一部が省略されてもよいし、追加の過程がさらに含まれてもよい。
【0042】
図3は、本発明の一実施形態における、コンピュータシステムが実行することのできるイメージ圧縮方法の一例を示したフローチャートである。
【0043】
本実施形態は、イメージファイルの各ピクセルの一部ビットをマスクする方式のピクセル変換によってイメージ圧縮率を向上させることができる。
【0044】
段階310で、プロセッサ110は、イメージ圧縮方法のためのプログラムファイルに記録されたプログラムコードをメモリ120にロードしてよい。例えば、イメージ圧縮方法のためのプログラムファイルは、図1を参照しながら説明した非一時的記録装置130に記録されていてよく、プロセッサ110は、バスを介して非一時的記録装置130に記録されたプログラムファイルからプログラムコードがメモリ120にロードされるようにコンピュータシステム110を制御してよい。このとき、プロセッサ110およびプロセッサ110が含むピクセルマスク部211およびイメージ格納部220それぞれは、メモリ120にロードされたプログラムコードのうちの対応する部分の命令を実行して以下の段階320〜340を実行するための、プロセッサ110の互いに異なる機能的表現であってよい。段階320〜340の実行のために、プロセッサ110およびプロセッサ110の構成要素は、制御命令による演算を直接処理してもよいし、またはコンピュータシステム100を制御してもよい。
【0045】
段階320で、ピクセルマスク部211は、圧縮対象に該当するイメージファイル(例えば、PNGファイルなど)をパーシングした後、各ピクセルをバイト単位に変換してよい。言い換えれば、ピクセルマスク部211は、イメージファイルの各ピクセルをパーシングしてピクセル1つ1つを読み取り、各ピクセルをバイト単位に変換してよい。
【0046】
段階330で、ピクセルマスク部211は、イメージファイルの各ピクセル別に該当のピクセルを示すバイトの一部ビットをマスクすることでピクセル変換を実行してよい。ピクセルマスク部211は、一部ビットを無視するイメージフィルタを生成し、これによってイメージファイルのデータサイズを減らしてよい。一例として、ピクセルマスク部211は、各ピクセルのバイトに対して最下位ビット(least significant bit)を基準に事前に定められた個数(n個)のビットをすべて0にマスクしてよい。このとき、マスクを適用するためのビット個数(n個)は、実験によって決定されるものであり、イメージの劣化を防ぎながら一定の水準にイメージ品質を保障することのできる程度として決定されてよく、例えば、1〜2ビットが適用されてよい。
【0047】
圧縮対象であるイメージファイルがRGBフォーマットである場合、ピクセルのR値、G値、B値に対してそれぞれピクセル変換を実行してよい。RGBフォーマットに限定されることはなく、アルファ値を含むARGBなどのような多様なフォーマットのイメージファイルが適用の対象となってよい。
【0048】
図4は、各ピクセルのRGB値を変換する過程の例を示した図である。
【0049】
各ピクセルのR値、G値、B値は、それぞれ1バイトで表現される。
【0050】
図4を参照すると、一ピクセルのR値「30」を変換しようとする場合、先ずR値「30」を二進数に変換するようになるが、「30」を二進数で表現すれば「00011110」となる。このとき、「00011110」において最下位ビットから2個のビットに該当する「10」を無視すると「00011100」となり、「00011100」を再び10進数に変換すれば「28」となる。このような過程により、既存のR値「30」を「28」に変換してよい。
【0051】
上述した方式のピクセル変換過程を、イメージファイルの全体ピクセルに対してすべて実行してよい。
【0052】
再び図3において、段階340で、イメージ格納部220は、イメージファイルのピクセル変換が完了すると、該当のイメージファイルを定められたフォーマットで格納してよい。このとき、イメージ格納部220は、イメージファイルをPNGファイルで格納してよい。
【0053】
本発明では、イメージファイルの各ピクセルに対して一部ビットを無視する方式によってピクセル値を操作し、PNGで格納することにより、データサイズを減らすことができる。PNGファイルで定義する同一の圧縮方式を用いたとしても、ピクセル変換によって原本ファイルのピクセルよりも共通するビット、すなわち同一の値が多くなるため、結果的にはイメージ圧縮率を向上させることができる。
【0054】
図5は、本発明の一実施形態における、コンピュータシステムが実行することのできるイメージ圧縮方法の他の例を示したフローチャートである。
【0055】
本実施形態は、イメージファイルのブロック間のピクセル差を利用したピクセル変換によってイメージ圧縮率を向上させることができる。
【0056】
段階510で、プロセッサ110は、イメージ圧縮方法のためのプログラムファイルに記録されたプログラムコードをメモリ120にロードしてよい。例えば、イメージ圧縮方法のためのプログラムファイルは、図1を参照しながら説明した非一時的記録装置130に記録されていてよく、プロセッサ110は、バスを介して非一時的記録装置130に記録されたプログラムファイルからプログラムコードがメモリ120にロードされるようにコンピュータシステム110を制御してよい。このとき、プロセッサ110およびプロセッサ110が含むピクセル差計算部212およびイメージ格納部220それぞれは、メモリ120にロードされたプログラムコードのうちの対応する部分の命令を実行して以下の段階520〜550を実行するためのプロセッサ110の互いに異なる機能的表現であってよい。段階520〜550の実行のために、プロセッサ110およびプロセッサ110の構成要素は、制御命令による演算を直接処理してもよいし、またはコンピュータシステム100を制御してもよい。
【0057】
段階520で、ピクセル差計算部212は、圧縮対象に該当するイメージファイル(例えば、PNGファイルなど)をパーシングした後、各ピクセルをバイト単位に変換してよい。言い換えれば、ピクセル差計算部212は、イメージファイルの各ピクセルをパーシングしてピクセル1つ1つを読み取り、各ピクセルをバイト単位に変換してよい。
【0058】
段階530で、ピクセル差計算部212は、イメージファイルを複数のブロックに分けてよい。このとき、ピクセル差計算部212は、イメージファイルの各ピクセルを同じ大きさのブロック単位で束ねることで該当のイメージファイルを複数のブロックに分けてよい。
【0059】
例えば、図6に示すように、ブロック単位601をM×L(このとき、M=LあるいはM≠L)個のピクセルサイズで定義してよく、イメージファイル600をM×L個のピクセルを有する複数のブロック601に分けてよい。
【0060】
再び図5において、段階540で、ピクセル差計算部212は、イメージファイルに対してブロック間のピクセル差値を利用してピクセル変換を実行してよい。ピクセル差計算部212は、1つのブロックのピクセル値に対して他のブロックの同じ位置のピクセル値との差を計算し、該当のピクセル値を計算されたピクセル差値と代替することによってピクセル値を操作してよい。
【0061】
図7は、各ピクセル値を変換する過程の例を示した図である。
【0062】
図7に示すように、一ブロックを2×2ピクセルと仮定し、(1)ブロックを基準ブロックと仮定する。
【0063】
一例として、ピクセル差計算部212は、対象ブロックのピクセル値と隣接するブロックの同じ位置のピクセル値の差を計算し、計算された差値を対象ブロックのピクセル値と代替する。
【0064】
基準ブロックである(1)ブロックのピクセル値は復元のためにそのまま使用し、残りのブロックは隣接ブロックとのピクセル差値を使用する。(2)ブロックの場合、(1)ブロックのピクセル値との差を計算し、計算された差値を(2)ブロックのピクセル値として使用する。同じように、(3)ブロックの場合、(2)ブロックのピクセル値との差を計算し、計算された差値を(3)ブロックのピクセル値として使用する。
【0065】
基準ブロック601から始まり、図8に示した方向に沿って順に各ピクセル値を隣接ブロックとのピクセル差値と代替してよい。
【0066】
上述した方式は一例に過ぎず、これに限定されることはなく、基準ブロックを指定する方式やピクセル差値を計算する方式などはいくらでも変更可能である。
【0067】
例えば、すべてのブロックに対し、隣接ブロックではなく基準ブロックとのピクセル差値を計算する方式も可能である。また、中央に位置するブロックを基準ブロックに指定し、基準ブロックの両方向に同時に基準ブロックあるいは隣接ブロックとのピクセル差値を計算する方式、各行や列で1番目のブロックを基準ブロックに指定し、複数の方向に同時に該当の行や列の基準ブロックあるいは隣接ブロックとのピクセル差値を計算する方式など、ブロック間の差を計算することのできる方式であればすべて適用可能である。
【0068】
再び図5において、段階550で、イメージ格納部220は、イメージファイルのピクセル変換が完了すると、該当のイメージファイルを定められたフォーマットで格納してよい。このとき、イメージ格納部220は、ハフマン符号などを利用したデータ圧縮によってイメージファイルを格納してよい。
【0069】
本発明では、イメージファイルの各ピクセルをブロック間のピクセル差値と代替する方式によってピクセル値を操作することによってデータサイズを減らすことができる。ピクセル差値を格納する場合、実際のピクセル値よりも少ないビット(3〜4ビット程度)で表現が可能である。PNGファイルで定義する同一の圧縮方式を用いたとしても、ピクセル変換により、絶対値ではなく差値を利用する場合には特定値の頻度が多くなるため、原本ファイルのピクセルよりも共通するビット、すなわち同一の値が多くなるため、イメージ圧縮率を向上させることができる。
【0070】
図9は、LUT(look up table)ファイルの例を示した図である。
【0071】
例えば、LUTファイルは64×64サイズのブロックが64個存在するが、このとき、ブロック間に大きな差はない。
【0072】
ブロック間の差を格納する場合、より少ないビットを使用して表現してよく、絶対値ではなく差値の場合は特定値の頻度が多くなるため、イメージ圧縮率が高まるようになる。
【0073】
例えば、パイソンでコードブックとエンコード結果をファイルで生成してイメージサイズを予測することがある。
【0074】
イメージ格納部220は、イメージファイルの格納時、ブロック別にRGBそれぞれのコードを別途生成して結果を格納してよく、他の例としては、全体ブロックに対してRGBそれぞれのコードを別途生成して結果を格納してよい。また他の例として、イメージ格納部220は、イメージファイルの格納時、ブロック別にRGB全体のコードを一度に生成して結果を格納してもよいし、あるいは全体ブロックに対してRGB全体のコードを一度に生成して結果を格納してもよい。
【0075】
イメージ格納部220は、事前に定められた圧縮方式(tar、zip)によってイメージファイルを圧縮して格納してよい。このとき、イメージ格納部220は、イメージファイルに対してハフマン符号によってコードブックとエンコード結果をバイナリファイルで生成してよい。ブロック別あるいはRGB別にコードを生成してみると、ブロック間のピクセル差値によって生成されるファイルが極めて多くなるため、tar(ヘッダ情報を含む)を利用してファイルを一括処理してよい。
【0076】
ハフマン符号によってイメージ圧縮率を増やすためには、稀に発生する値を減らす必要がある。すなわち、稀に発生する値aを頻繁に発生する値a’に変更しなければならず、一例として、各ピクセルに対して最後のビット1〜2個を0にマスクしても、絶対値の代わりに差値を用いてピクセル値自体を変換してもよい。
【0077】
図10を参照すると、最後のビット1〜2個を捨てたピクセル変換ファイル1020のイメージ圧縮率が原本ファイル1010に比べて向上するものと予想されるが、肉眼では原本ファイル1010とピクセル変換ファイル1020に差を感じることができない。
【0078】
ピクセル変換部210は、ピクセル変換において各ピクセルの一部ビットをマスクする方式と、ブロック間のピクセル差値と代替する方式とを結合して利用することも可能である。このとき、イメージ格納部220は、イメージファイル格納時、全体ブロックに対して最後のビット1〜2個を捨てたRGBのコードを一度に生成して結果を格納してよい。
【0079】
他の例として、イメージ格納部220は、ハフマン符号を経ず、ピクセル変換が完了したイメージファイルをPNGで格納してデータサイズを減らしてよい。言い換えれば、イメージ格納部220は、ハフマン符号を経ず、最後のビット1〜2個を捨てたRGBをPNGで格納してよい。
【0080】
このように、本発明の実施形態によると、イメージファイルの各ピクセルの一部ビットをマスクするピクセル変換によってイメージファイルを圧縮することにより、イメージ圧縮率を向上させることができる。また、本発明の実施形態によると、イメージファイルのブロック間のピクセル差を利用したピクセル変換によってイメージファイルを圧縮することにより、イメージ圧縮率を向上させることができる。さらに、本発明の実施形態によると、各ピクセルの一部ビットをマスクする方式とブロック間のピクセル差値と代替する方式とを結合してピクセル値を操作することにより、イメージ圧縮率を高めるためにピクセル値に共通するビットを効果的に増やすことができる。
【0081】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および/またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0082】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成してもよく、独立的または集合的に処理装置に命令してもよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供するために、いかなる種類の機械、コンポーネント、物理装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
【0083】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。ここで、媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例は、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD−ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体が挙げられる。
【0084】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0085】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【0086】
110:プロセッサ
210:ピクセル変換部
211:ピクセルマスク部
212:ピクセル差計算部
220:イメージ格納部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10