JP7147075B2 - 複数の画像全体の圧縮 - Google Patents

複数の画像全体の圧縮 Download PDF

Info

Publication number
JP7147075B2
JP7147075B2 JP2021549367A JP2021549367A JP7147075B2 JP 7147075 B2 JP7147075 B2 JP 7147075B2 JP 2021549367 A JP2021549367 A JP 2021549367A JP 2021549367 A JP2021549367 A JP 2021549367A JP 7147075 B2 JP7147075 B2 JP 7147075B2
Authority
JP
Japan
Prior art keywords
images
media content
codeword
entropy coding
data processing
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.)
Active
Application number
JP2021549367A
Other languages
English (en)
Other versions
JP2022510733A (ja
Inventor
ラマスワミー,シャラド
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2022510733A publication Critical patent/JP2022510733A/ja
Application granted granted Critical
Publication of JP7147075B2 publication Critical patent/JP7147075B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Discrete Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

技術分野
本開示は、複数の画像全体の圧縮に関する。
背景
今日、テクノロジーによって人々が実質上どこでもメディアコンテンツ(たとえば、画像および映像)を生成することが可能になった。たとえば、モバイル機器には、多くの場合、人々に自身の体験の写真または動画を撮影することを可能にするカメラが標準装備されている。このテクノロジーの容易さとソーシャルメディアプラットフォームの人気により、人々は、メディアコンテンツを生成して思い出を撮影したり瞬間を共有したりせずにはいられないのであろう。人々が生成するメディアコンテンツの量を増やすと、多くの場合、メディアコンテンツを格納するためのリポジトリとして空き容量が必要になる。その結果、これらのストレージ需要のいくつかを満たすためにリモートサーバおよびバックアップストレージ機能が共通して利用できるようになった。しかし、この需要は増加し続けており、記憶装置は、ストレージ効率および/またはメディアストレージ技術を改善する必要がある。
概要
本開示の一態様は、複数の画像全体を圧縮するための方法を提供する。この方法は、記憶装置のデータ処理ハードウェアにおいて複数の画像を受信するステップを含む。また、複数の画像の画像ごとに、方法は、データ処理ハードウェアが非可逆圧縮を使用して符号語を生成するステップを含む。方法は、さらに、複数の画像の符号語に基づいて、データ処理ハードウェアがエントロピー符号化テーブルを生成するステップを含む。また、方法は、生成したエントロピー符号化テーブルに従ってデータ処理ハードウェアが複数の画像にエントロピー符号化を行うステップを含む。
本開示の実施態様は、次のオプションの特徴のうち1つ以上を含んでもよい。いくつかの実施態様では、符号語を生成するステップは、複数の画像の各画像を画素ブロックに分けるステップと、各画素ブロックを変換係数に変換するステップと、変換係数を量子化して量子化インデックスを形成するステップと、各量子化インデックスを各ビット列として表すステップと、各ビット列に可変長符号を割り当てるステップとを含む。ここで、可変長符号は、複数の画像内での各ビット列の出現が増加すると減少するビット長を含む。変換係数は、離散コサイン変換(DCT)係数を含んでもよい。各可変長符号は、量子化された変換係数の固定長のビット列であってもよい。非可逆圧縮は、JPEG(Joint Photographic Experts Group)圧縮を含んでもよい。
いくつかの例では、エントロピー符号化テーブルを生成するステップは、出現頻度に基づいて符号語をコンパイルするステップと、コンパイルされた頻度の符号語に基づいてビットの可変長符号を各符号語に割り当てるステップとを含む。たとえば、出現頻度は、各符号語が複数の画像に存在する回数を示す。ここで、第1の可変長符号が第1の符号語に割り当てられ、第2の可変長符号が第2の符号語に割り当てられてもよい。第1の可変長符号は、第2の可変長符号よりも少ない数のビットを含んでもよい。第1の符号語の出現頻度は、第2の符号語よりも多くてもよい。いくつかの実施態様では、符号語の出現頻度に基づいてビットの可変長符号を各コンパイルされた符号語に割り当てるステップは、コンパイルされた符号語のすべてのビットの可変長符号の合計を最適化するステップを含む。
いくつかの構成では、記憶装置は、ユーザデバイスと通信する分散システムのリモートサーバを備える。複数の画像を受信するステップは、ユーザデバイスからのアップロードに応答して発生してもよく、アップロードは、ユーザデバイスのメディアコンテンツのためのバックアップ機能に対応付けられている。受信した複数の画像は、高品質フォーマットを含んでもよく、複数の画像にエントロピー符号化を行うステップは、受信した複数の画像を低いストレージフットプリントフォーマットに圧縮してもよい。
いくつかの例では、複数の画像の各画像は、共通特性を有してもよく、この共通特性は、特定のユーザ、特定のユーザアカウント、特定のメディアコンテンツアルバム、または特定の物理的な記憶場所に対応付けられている。複数の画像を受信するステップは、記憶装置に格納するための、複数の画像と、その他の複数の画像とを含むメディアコンテンツを受信するステップと、複数の画像が共通特性を有すると判断するステップとを含んでもよく、この共通特性は、特定のユーザ、特定のユーザアカウント、特定のメディアコンテンツアルバム、または特定の物理的な記憶場所に対応付けられている。これに加えて、または代わりに、方法は、記憶装置にあるその他の複数の画像とは異なる位置に、生成したエントロピー符号化テーブルを使用してエントロピー符号化された複数の画像を格納するステップをさらに含んでもよい。
オプションで、複数の画像を受信するステップは、記憶装置と通信しているストレージアプリケーションを実行するユーザデバイスにおけるメディアコンテンツの作成または受信を検出するステップと、ユーザデバイスにプロンプトを生成するステップとを含む。プロンプトは、ユーザデバイスのユーザが検出されたメディアコンテンツを記憶装置にバックアップしたいか、または転送したいかを尋ねるプロンプトである。ユーザが検出されたメディアコンテンツを記憶装置にバックアップまたは転送することを選択した場合、方法は、エントロピー符号化のためにメディアコンテンツ内の複数の画像を特定するステップを含む。
いくつかの例では、複数の画像は、ユーザデバイスによるメディアコンテンツのアップロードからの第1サブセットの画像に対応する。ここで、メディアコンテンツのアップロードは、第1サブセットの画像と、第2サブセットの画像とを含む。第1サブセットの画像は、低いストレージフットプリントフォーマットへの圧縮を目的とする第1のメディアコンテンツフォーマットを有する。第2サブセットの画像は、低いストレージフットプリントフォーマットへの圧縮を回避する。
本開示の別の態様は、複数の画像全体を圧縮するためのシステムを提供する。このシステムは、記憶装置のデータ処理ハードウェアと、データ処理ハードウェアと通信するメモリハードウェアとを備える。メモリハードウェアは、命令を格納し、命令は、データ処理ハードウェア上で実行されると、データ処理ハードウェアに動作を実行させる。当該動作は、記憶装置において複数の画像を受信する動作を含む。また、複数の画像の画像ごとに、動作は、非可逆圧縮を使用して符号語を生成する動作を含み、各符号語は、ビット列として規定されている。動作は、さらに、複数の画像の符号語に基づいてエントロピー符号化テーブルを生成する動作と、生成したエントロピー符号化テーブルに従って複数の画像にエントロピー符号化を行う動作とを含む。
この態様は、次のオプションの特徴のうち1つ以上を含んでもよい。いくつかの実施態様では、符号語を生成するステップは、複数の画像の各画像を画素ブロックに分けるステップと、各画素ブロックを変換係数に変換するステップと、変換係数を量子化して量子化インデックスを形成するステップと、各量子化インデックスを各ビット列として表すステップと、各ビット列に可変長符号を割り当てるステップとをさらに含む。ここで、可変長符号は、複数の画像内での各ビット列の出現が増加すると減少するビット長を含む。変換係数は、離散コサイン変換(DCT)係数を含んでもよい。各可変長符号は、量子化された変換係数の固定長のビット列であってもよい。非可逆圧縮は、JPEG(Joint Photographic Experts Group)圧縮を含んでもよい。
いくつかの例では、エントロピー符号化テーブル(322)を生成する動作は、出現頻度に基づいて符号語をコンパイルする動作と、コンパイルされた頻度の符号語に基づいてビットの可変長符号を各符号語に割り当てる動作とを含む。たとえば、出現頻度は、各符号語が複数の画像に存在する回数を示す。ここで、第1の可変長符号が第1の符号語に割り当てられ、第2の可変長符号が第2の符号語に割り当てられてもよい。第1の可変長符号は、第2の可変長符号よりも少ない数のビットを含んでもよく、第1の符号語の出現頻度は、第2の符号語よりも多くてもよい。いくつかの実施態様では、符号語の出現頻度に基づいてビットの可変長符号を各コンパイルされた符号語に割り当てる動作は、コンパイルされた符号語のすべてのビットの可変長符号の合計を最適化する動作を含む。
いくつかの構成では、記憶装置は、ユーザデバイスと通信する分散システムのリモートサーバを備える。複数の画像は、ユーザデバイスからのアップロードに応答して発生してもよく、アップロードは、ユーザデバイスのメディアコンテンツのためのバックアップ機能に対応付けられている。受信した複数の画像は、高品質フォーマットを含んでもよく、複数の画像にエントロピー符号化を行う動作は、受信した複数の画像を低いストレージフットプリントフォーマットに圧縮してもよい。
いくつかの例では、複数の画像の各画像は、共通特性を有してもよく、この共通特性は、特定のユーザ、特定のユーザアカウント、特定のメディアコンテンツアルバム、または特定の物理的な記憶場所に対応付けられている。複数の画像を受信する動作は、記憶装置に格納するための、複数の画像と、その他の複数の画像とを含むメディアコンテンツを受信する動作と、複数の画像が共通特性を有すると判断する動作とを含んでもよく、この共通特性は、特定のユーザ、特定のユーザアカウント、特定のメディアコンテンツアルバム、または特定の物理的な記憶場所に対応付けられている。これに加えて、または代わりに、方法は、記憶装置にあるその他の複数の画像とは異なる位置に、生成したエントロピー符号化テーブルを使用してエントロピー符号化された複数の画像を格納する動作をさらに含んでもよい。
オプションで、複数の画像を受信する動作は、記憶装置と通信しているストレージアプリケーションを実行するユーザデバイスにおけるメディアコンテンツの作成または受信を検出する動作と、ユーザデバイスにプロンプトを生成する動作とを含む。プロンプトは、ユーザデバイスのユーザが検出されたメディアコンテンツを記憶装置にバックアップしたいか、または転送したいかを尋ねるプロンプトである。ユーザが検出されたメディアコンテンツを記憶装置にバックアップまたは転送することを選択した場合、方法は、エントロピー符号化のためにメディアコンテンツ内の複数の画像を特定する動作を含む。
いくつかの例では、複数の画像は、ユーザデバイスによるメディアコンテンツのアップロードからの第1サブセットの画像に対応する。ここで、メディアコンテンツのアップロードは、第1サブセットの画像と、第2サブセットの画像とを含む。第1サブセットの画像は、低いストレージフットプリントフォーマットへの圧縮を目的とする第1のメディアコンテンツフォーマットを有する。第2サブセットの画像は、低いストレージフットプリントフォーマットへの圧縮を回避する。
1つ以上の本開示の実施態様の詳細を、添付の図面および以下の説明に記載する。その他の態様、特徴、および利点は、本明細書および図面から、ならびに請求の範囲から明らかになるであろう。
例示的なメディアストレージ環境の概略図である。 図1のメディアストレージ環境の例示的な圧縮器の概略図である。 図1のメディアストレージ環境の例示的なエントロピーエンコーダの概略図である。 メディアストレージ環境の記憶システムのために画像圧縮を実装する方法の動作の例示的な配置のフロー図である。 本明細書において説明するシステムおよび方法を実装するために使用され得る例示的なコンピューティングデバイスの概略図である。
様々な図面に含まれている同じ参照記号は、同じ要素を示す。
詳細な説明
メディアコンテンツのストレージにより、マルチメディア圧縮技術が幅広く採用されるようになった。これらの技術は、画像および/または映像のサイズを小さくするために、ほとんどすべての種類のハードウェアシステムおよびソフトウェアシステム上で用いられているであろう。多くの場合、ストレージプロバイダは、メディアコンテンツユーザまたはメディアコンテンツの所有者に向けた費用効率が高いストレージソリューションを提供するための圧縮技術を採用している。圧縮技術は、一般に、ある程度の品質を維持しつつ、1つのメディアコンテンツ(たとえば、画像または動画)のサイズを小さくしようとすることである。メディアコンテンツユーザまたはメディアコンテンツ所有者が自身のメディアコンテンツの最高品質を維持することに関心があるため、この関心により、大量の空き容量が求められるであろう。残念ながら、これらの関心は、メディアコンテンツを格納するためのコストを最小限に抑えようと試みつつ自身の空き容量を有効に利用したいストレージプロバイダとは完全に合うことはない。すなわち、大きな高品質のメディアコンテンツは格納するのにコストがかかる可能性があり、ストレージプロバイダにお金を使う顧客の数(たとえば、メディアコンテンツユーザまたはメディアコンテンツの所有者)が減ってしまうであろう。その結果、ストレージプロバイダは、自身の空き容量全体または空き容量の一部のストレージを最適化したいと望んでいる。しかしながら、圧縮技術は、これまで、大きな規模で複数の画像または複数の映像をあまり考慮しないよう、画像単位または映像単位でコンテンツの圧縮を最適化するように開発されてきた。ここで、この課題に対処するために、圧縮技術は、圧縮処理中に複数の画像または複数の映像を考慮するようにする。
図1は、メディアストレージ環境100の例を示す図である。メディアストレージ環境100は、ユーザ10がユーザデバイス110を介して通信を行って写真(たとえば、画像122、122a~n)または映像など、メディアコンテンツ120を格納する環境である。ユーザ10は、メディアコンテンツ120のアップロード112を生成し、ネットワーク130をまたいでメディアコンテンツ120を記憶システム140に転送してもよい。ネットワーク130は、ユーザデバイス110と記憶システム140との間でデータを経由させるように構成された任意の種類の通信ネットワークであってもよい。図1~図3は、例示のためにメディアコンテンツ120を画像122として表しているが、メディアストレージ環境100内のメディアコンテンツ120は、これらに限定されないが、画像(たとえば、ライブ写真、モーション写真、スマートバースト写真など)または映像を含む任意の種類のメディアコンテンツ120であってもよい。
ユーザ10は、様々な理由でメディアコンテンツ120を記憶システム140上に格納することを選択してもよい。1つの考えられる理由は、ユーザ10がユーザデバイス110のリソースに慎重であることである。すなわち、ユーザ10は、メディアコンテンツ120が占めるユーザデバイス110のリソース空間をひとつに整理するまたは最小限に抑えるためにメディアコンテンツ120を記憶システム140上に格納することを選んでもよい。たとえば、ユーザデバイス110は、限りある量の空き容量を有して構成されている。ユーザデバイス110のコンピューティングリソース(たとえば、データ処理ハードウェア114および/またはメモリハードウェア116)によっては、ユーザ10は、メディアコンテンツ120を格納するためでなく、アプリケーションまたはユーザデバイス110のその他の機能を実行するためにコンピューティングリソースを割り当てるであろう。従って、ユーザ10は、ユーザデバイス110上ではなく、記憶システム140などの遠隔地にメディアコンテンツ120を格納することを選んでもよい。
ユーザ10がメディアコンテンツ120を格納するために記憶システム140を使用する別の理由は、記憶システム140に関連するメディアコンテンツサービスを利用することであってもよい。記憶システム140のこれらのメディアコンテンツサービスは、たとえば、メディアコンテンツアプリケーション(たとえば、クラウドベースのアプリケーション)によって提供されてもよい。クラウドベースのアプリケーションとは、一般に、遠隔システムのコンピューティングリソースまたはストレージリソースを使用するまたはこれらにアクセスできるアプリケーションを指す。たとえば、ユーザ10が(たとえば、ユーザデバイス110を通して)記憶システム140にアクセスすることを可能にするようにメディアコンテンツアプリケーションが構成される。いくつかの実施態様では、このメディアコンテンツアプリケーションは、ユーザデバイス110のリソース(たとえば、データ処理ハードウェア114および/またはメモリハードウェア116)にアクセスできるユーザデバイス110上で実行中のアプリケーション20である。ユーザデバイス110のリソースへのアクセスがあると、アプリケーション20は、ユーザデバイス110上に位置するメディアコンテンツ120を記憶システム140に伝達してもよい。メディアコンテンツアプリケーションは、記憶システム140に転送する前、転送中、または転送後にメディアコンテンツ120のためのメディアコンテンツサービスを提供してもよい。メディアコンテンツサービスのいくつかの例として、メディア編成(たとえば、フォトアルバム、タイムライン、ジオタグ、メタデータ作成/編集)、メディア編集、メディア共有機能(たとえば、ピアツーピアメディア共有)、メディアストレージなどが挙げられる。これに加えて、または代わりに、これらのメディアコンテンツアプリケーションのいくつかは、様々な圧縮技術またはストレージ管理に基づいたストレージに特化してもよい。
いくつかの例では、メディアコンテンツアプリケーションは、ユーザデバイス110のメディアコンテンツ120のためのバックアップ機能を提供する。このバックアップ機能は、自動であってもよく、手動であってもよく、または、ユーザ10によってカスタマイズ可能であってもよい。ユーザデバイス110は、メディアコンテンツの生成および取得(すなわち、メディアコンテンツ120を受信すること)が可能であり得るので、バックアップ機能によってユーザ10がメディアコンテンツ120を残しておくことが可能になってもよい。さらには、記憶システム140は、バックアップ機能を提供することによってユーザ10のメディアコンテンツ管理を簡略化させてもよい。たとえば、記憶システム140は、メディアコンテンツ120をアルバム(すなわち、画像122a~nもしくは映像の群)またはメディアコンテンツ120のメタデータ(たとえば、タイムスタンプ)で格納して、ユーザ10がメディアコンテンツ120に都合良くアクセスしたり、メディアコンテンツ120に自由に移動して見たりすることを可能にする。
ユーザデバイス110は、撮影したメディアコンテンツ120をネットワーク130および/または記憶システム140に伝達可能な任意のコンピューティングデバイスまたは任意のデータ処理ハードウェアであってもよい。たとえば、ユーザデバイス110は、携帯電話、ラップトップ、タブレット端末、PDA(Personal Digital Assistant)、スマートウェアラブル(たとえば、スマートウォッチ)など、モバイル機器である。いくつかの例では、ユーザデバイス110は、データ処理ハードウェア114と、メモリハードウェア116と、少なくとも1つの画像撮影装置118とを備える。その他の例では、ユーザデバイス110は、メディアコンテンツ120を送受信可能になるが、メディアコンテンツ120を生成可能ではないよう、データ処理ハードウェア114とメモリハードウェア116とを備え、画像撮影装置118は備えない。画像撮影装置118は、画像122または一連の画像122a~n(たとえば、映像)を撮影可能である。たとえば、画像撮影装置118は、1つの画像122を撮影する、または特定の頻度で複数の画像122a~nを撮影して映像コンテンツを形成するように構成されたカメラである。画像122または一連の画像122a~nを撮影することにより、画像撮影装置118はメディアコンテンツ120を生成する。
記憶システム140(記憶装置とも称する)は、一般に、ユーザ10から離れたネットワーク接続されたシステム、および/またはメディアコンテンツ120を格納するように構成されたユーザデバイス110を指す。ここで、ユーザ10は、記憶システム140に物理アクセスできないが、ネットワーク130にネットワーク接続できるユーザデバイス110によってリモートアクセスできる。記憶システム140は、1つ以上のネットワークアドレスを有する1つ以上のワークステーションおよび/または1つ以上のサーバであってもよい。記憶システム140は、データ処理ハードウェア144、メモリハードウェア146、およびソフトウェアリソース148など、リソース142を備える。いくつかの例では、記憶システム140は、リソース142が複数のコンピューティングシステム間で共有され得る分散システム(たとえば、クラウド環境)である。
図1をさらに詳しく参照すると、ユーザ10は、ユーザデバイス110上に位置するメディアコンテンツ120をバックアップすると決定してもよい。メディアコンテンツ120をバックアップするために、ユーザ10は、メディアコンテンツ120(たとえば、少なくとも1つの画像122)を記憶システム140にアップロードしてもよい。ここで、図1は、ユーザデバイス110においてユーザ10によってアップロードされる複数の画像122a~nを表している。いくつかの例では、ユーザ10は、メディアコンテンツ120(たとえば、画像122a~n)のアップロード112を手動で生成する。その他の例では、ユーザデバイス110上で実行中のアプリケーション20がメディアコンテンツ120(たとえば、画像122a~n)のアップロード112を自動的に生成する。たとえば、アプリケーション20は、メディアコンテンツ120(たとえば、画像122)のアップロード112を生成する自動バックアップ処理を(たとえば、特定の時間、または、メディアコンテンツ120の格納および/もしくは生成が特定の閾値になった時に)開始する。いくつかの構成では、アプリケーション20は、(たとえば、画像撮影装置118による)ユーザデバイス110におけるメディアコンテンツ120の作成または受信を検出するように構成される。メディアコンテンツ120の作成(または受信)を検出すると、アプリケーション20は、ユーザデバイス110のユーザ10に、作成されたメディアコンテンツ120を記憶システム140にバックアップ(たとえば、コピー)するおよび/または転送するよう促してもよい。アプリケーション20は、ユーザデバイス110におけるメディアコンテンツの作成を検出したときに、作成されたメディアコンテンツを自動的にバックアップおよび/または自動的に転送するように構成されてもよい。
図1は、画像122a~nなど、メディアコンテンツ120が記憶システム140に伝達されたときに、圧縮器200およびエントロピーエンコーダ300がメディアコンテンツ120を格納するために圧縮メディアコンテンツ(たとえば、圧縮画像302、302a~nとして図示されている)に処理することを示す図である。圧縮器200およびエントロピーエンコーダ300は、記憶システム140上のソフトウェアリソース148に相当してもよい。いくつかの例では、記憶システム140は、メディアコンテンツ120(たとえば、画像122a~n)を受信した後、当該メディアコンテンツ120を圧縮器200およびエントロピーエンコーダ300に伝達する。画像122a~nとしてのメディアコンテンツ120の例として、ユーザ10は、画像122a~nを高品質フォーマット(たとえば、RAWフォーマット)でアップロードしてもよく、記憶システム140は、その後、アップロードされた画像122a~nを、圧縮器200およびエントロピーエンコーダ300を用いて(JPEG(Joint Photographic Experts Group)フォーマットに)再圧縮してもよい。その他の例では、圧縮器200およびエントロピーエンコーダ300は、ユーザデバイス110が記憶システム140にアップロードする前にメディアコンテンツ120を処理する。ここで、圧縮器200およびエントロピーエンコーダ300の機能は、ユーザデバイス110上で実行中のアプリケーション20を介してユーザデバイス110上で動作してもよい。たとえば、ユーザデバイス110(たとえば、アプリケーション20を介して)によってメディアコンテンツ120(たとえば、画像122a~n)がユーザデバイス110においてアップロード用に指定されると、圧縮器200およびエントロピーエンコーダ300は、メディアコンテンツ120をアップロードする前に処理してもよい。記憶システム140へのアップロード112を目的とするメディアコンテンツ120(たとえば、画像122a~n)を圧縮器200およびエントロピーエンコーダ300が処理すると、ユーザデバイス110は、メディアコンテンツ120を圧縮サイズでアップロード112してもよく、これにより、アップロード112中に必要な処理能力を減らしながら、アップロード時間をより速くすることが可能になる。メディアコンテンツ120がアップロード112を目的としているかどうかに関係なく、または、アップロードが完了しているかどうかに関係なく、圧縮器200およびエントロピーエンコーダ300は、メディアコンテンツ120(たとえば、画像122a~n)を処理して、記憶システム140上に格納するための圧縮メディアコンテンツ(たとえば、圧縮画像302a~nとして図示されている)を生成するように構成される。
圧縮器200およびエントロピーエンコーダ300によってメディアコンテンツ120を対応する圧縮メディアコンテンツ120に処理しなかった場合、メディアコンテンツ120(たとえば、画像122a~n)の格納は、記憶システム140のストレージプロバイダにとってコストがかかるであろう。なぜならば、ユーザ10がメディアコンテンツ120を高品質フォーマットで指定してアップロードし得るためである。特定的には、ユーザ10がメディアコンテンツ120を高品質フォーマットで指定してアップロードした場合、ストレージプロバイダは、記憶システム140上に格納される前に対応する圧縮メディアコンテンツ120(たとえば、圧縮画像302a~n)に圧縮された場合よりも多くの容量を占めるメディアコンテンツ120を格納せざるを得なくなるであろう。従って、より多くのユーザデバイス110のユーザ10が記憶システム140を利用して自身のメディアコンテンツ120を格納するにつれて、ストレージプロバイダは、圧縮器200およびエントロピーエンコーダ300を利用した費用効率が高いストレージソリューションを提供するであろう。たとえば、圧縮器200およびエントロピーエンコーダ300を用いて、高品質フォーマットのメディアコンテンツ120(たとえば、画像122a~n)を低いストレージフットプリントフォーマットの圧縮メディアコンテンツ(たとえば、画像302a~n)に圧縮して、記憶システム140におけるストレージ要件を軽減してもよい。また、記憶システム140にアップロードされる前にメディアコンテンツ120が圧縮器200およびエントロピーエンコーダ300によって圧縮されると、アップロード時間および処理能力要件が軽減される。
圧縮器200がメディアコンテンツ120を受信すると、圧縮器200は、非可逆圧縮を行い、量子化インデックス222の出力を生成するように構成される。ここで、エントロピーエンコーダ300は、量子化インデックス222の出力を受信し、(たとえば、図3に示されている)1つ以上のエントロピー符号化テーブル322に従う可逆処理においてメディアコンテンツ120をエントロピー符号化して、圧縮メディアコンテンツ120(たとえば、圧縮画像302、302a~nとして図示されている)を形成するように構成される。いくつかの例では、圧縮器200およびエントロピーエンコーダ300は、別個のコンポーネント(たとえば、別個のソフトウェアプログラム)である。別個のコンポーネントとして、圧縮器200およびエントロピーエンコーダ300は、互いに通信するように構成されるが、メディアストレージ環境100内の異なる場所に実装されてもよい。いくつかの実施態様では、図1において点線で示した枠で示されるように、圧縮器200およびエントロピーエンコーダ300は、一体型である。たとえば、圧縮器200とエントロピーエンコーダ300とは、記憶システム140に関連するメディアストレージアプリケーション上で実行中の1つのプログラムの一部である。すなわち、メディアストレージアプリケーションは、組み込まれた機能として圧縮器200とエントロピーエンコーダ300とを備えるユーザデバイス110と通信の行うために使用される、記憶システム140のソフトウェアリソース148であってもよい。
図2は、圧縮器200の例を示す図である。圧縮器200は、アップロード112からの(たとえば、複数の画像122a~nとして図示されている)メディアコンテンツ120の非可逆圧縮(たとえば、JPEG圧縮)を行うように構成される。非可逆圧縮とは、メディアコンテンツ(たとえば、画像122)を処理してメディアコンテンツ120を表すために必要なデータ量を減らすメディア圧縮の形態である。メディアコンテンツ120を表すために必要なデータ量を減らすために、多くの場合、非可逆圧縮は、冗長な情報、またはメディアコンテンツ120の表現に不要であると圧縮技術が表示す情報を削除する。冗長な情報とは、符号化の冗長、画素間の冗長、または心理視覚的な冗長であってもよい。冗長性を削除することにより、非可逆圧縮は、圧縮される前の元の形態のメディアコンテンツ120(たとえば、画像122)よりも少ないデータを含むが(すなわち、圧縮されている)、多くの場合、品質の低下がユーザ10が知覚できない程度であるメディアコンテンツ120(たとえば、圧縮画像302)を形成する。これは、圧縮アルゴリズムが人間の目による品質の実際の知覚を考慮することによって冗長性(すなわち、人間の目では検出できない情報)を削減しているためである。たとえば、人間の目は、クロミナンスよりも輝度に対して敏感であり、従って、多くの場合、圧縮技術はクロミナンス情報を破棄する。
圧縮器200は、一般に、変換器210と、量子化器220とを備える。いくつかの例では、圧縮器200は、圧縮器200において生じる非可逆圧縮の種類に応じて追加または代替の構成要素を備える。変換器210は、ユーザデバイス110のアップロード112から(たとえば、画像122a~nとして示すような)メディアコンテンツ120を受信するように構成される。図2を参照すると、画像122ごとに、変換器210は、動作212において、画像122を複数のサブブロック(たとえば、画素ブロック)213に分割する/分ける。たとえば、変換器210は、画像122を縦横8×8の画素ブロック213に分割する/分ける。各サブブロック213を用いて、動作214において、変換器210は、サブブロック213を変換して対応する変換係数216を生成する(たとえば、離散コサイン変換(DCT)によって)。たとえば、縦横8×8のサブブロックの場合、サブブロック213は、実質上、2つの空間的寸法における64点離散信号である。このように、縦横8×8のサブブロック213のDCT変換の場合、DCT変換は、64点離散信号を64空間周波数に分解したものに変換して64信号振幅からなるセットを変換係数216として出力する。これらの変換係数216は、両方の寸法において周波数がゼロのいくつかの係数(DC係数とも称される)と、周波数がゼロ以外のいくつかの係数(AC係数とも称される)とを有してもよい。ここで、数字が小さい係数は、周波数が低い色の変化(すなわち、領域の端から端までの漸進的な色の変化)を表し、数字が大きい係数は、周波数が高い色の変化(すなわち、ブロック内の1つの画素から別の画素への急進的な変化)を表す。いくつかの例では、変換係数216は、メディアコンテンツ120(たとえば、画像122)を表す量子化されていない形態の記号である。変換係数216を生成することによって、変換器210は、冗長な画像データと非冗長の画像データとを互いに関連付けて、エントロピーエンコーダ300による冗長な画像データを削除することを助けてもよい。また、いくつかの実施態様では、変換係数216は、分散値がゼロ以外のサブブロック213の変換当たりの係数の数をエントロピーエンコーダ300が容易に決定できるようにして、符号語の生成を助けてもよい。変換器210が変換係数216を生成すると、変換器210は、変換係数216を量子化器220に伝達する。
いくつかの例では、変換器210は、さらなる動作を実行する。これらの動作は、メディアコンテンツの準備を含んでもよい。いくつかの構成では、メディアコンテンツを準備する動作は、変換器210が動作212においてメディアコンテンツ120をサブブロック213に分ける前に発生する。メディアコンテンツを準備するために、変換器210は、メディアコンテンツ120を色空間の成分(たとえば、輝度(Y)、青クロミナンス(U)、および赤クロミナンス(V))に分けてもよい。変換器210がメディアコンテンツ120(たとえば、画像122)を色空間成分に分けると、変換器210は、画素領域ごとに色空間成分(たとえば、クロミナンス成分)をさらにサブサンプリングしてもよい。
量子化器220は、変換係数216を受信し、変換係数216に基づいて量子化処理(たとえば、スカラー量子化)を行うように構成される。量子化処理は、一般に、入力パラメータを、出力値からなるより小さなデータセットに変換する。量子化処理は、アナログからデジタルに変換してもよいが、ここでは、量子化処理は、変換後のデジタルメディアコンテンツのデジタルコンテンツを処理する。当該小さいデータセットは、より大きなまたは連続データセットを小さくしたもの(すなわち、非可逆処理)であるので、量子化処理を使用することによってデータを圧縮してもよいが、データ損失という犠牲が伴う。量子化器220は、各サブブロック213の変換係数216を変換器210から量子化インデックス222に量子化(たとえば、スカラー量子化)する。例として、量子化器220は、各変換係数216を対応する量子化器ステップサイズで除算した後、結果として得られる値を最も近い整数に端数処理して量子化インデックス222を形成してもよい。ここで、量子化インデックス222は、符号語の形成およびエントロピー符号化のためにエントロピーエンコーダ300に伝達される。いくつかの例では、変換係数216のスカラー量子化による量子化により、圧縮器200における非可逆圧縮処理が、冗長なメディアコンテンツデータ(たとえば、符号化中に削除してもよいデータ)を価値あるメディアコンテンツデータ(たとえば、削除してはいけないデータ)と対比させるために、各変換係数216をスケールしてもよい。
いくつかの例では、量子化テーブルは、量子化器220のために量子化器ステップサイズを指定する。量子化テーブルは、圧縮フォーマット(たとえば、所望の品質設定)に基づくデフォルト量子化テーブルであってもよく、非可逆圧縮(すなわち、圧縮アプリケーション)を目的とすることに基づくカスタム量子化テーブルであってもよい。いくつかの構成では、量子化器ステップサイズによって、変換係数216が細かい量子化および/もしくは粗い量子化を受信するかどうかが決まる。あるいは、場合によっては、どの変換係数216が細かい量子化を受信するか、どれが粗い量子化を受信するかが決まる。多くの場合、細かい量子化のほうが元画像にとても類似しており、粗い量子化は、元画像にあまり正確に類似していない。量子化テーブルは異なる圧縮アプリケーションに対して異なってもよいため、圧縮メディアコンテンツ(たとえば、圧縮画像302)は、量子化中に使用される量子化テーブルを格納して復元を可能にしてもよい。
図3を参照すると、エントロピーエンコーダ300は、非可逆圧縮による複数の画像122a~nの量子化インデックス222を圧縮器200から受信する。メディアコンテンツ120(たとえば、複数の画像122a~n)についての量子化インデックス222を用いて、エントロピーエンコーダ300は、メディアコンテンツ120を(たとえば、圧縮画像302a~nとして図示されている)対応する圧縮メディアコンテンツに符号化するように構成される。図3に示すように、エントロピーエンコーダ300は、一般に、コーダ310と、符号化テーブル生成部320と、エンコーダ330とを備える。コーダ310は、量子化インデックス222に基づいて符号語312を生成するように構成される。符号語312は、データの記号を表すために用いられるビットから構成される文字列を指す(たとえば、ビット、バイト、変換係数、量子化された変換係数、量子化インデックス、ベクトルなど)。すなわち、これらの記号は、圧縮器200からの圧縮に基づいたデータを表してもよい。いくつかの実施態様では、コーダ310は、量子化インデックス222を順序付けしてランレングス圧縮(RLE)を行う。たとえば、コーダ310は、Z字の順番を用いて量子化インデックス222を順序付け(たとえば、逐次符号化)した後、Z字の順番に対してランレングス圧縮アルゴリズムを使用して記号を生成してもよい。たとえば、RLEは、量子化インデックス222の行列の線形変換を行って、量子化インデックスを、ベクトル形式を有する記号にベクトル化する。縦横8×8のサブブロック213を例に説明すると、符号語312の記号は、Z字の順番に従って順番付けられた64量子化インデックス222を表すベクトルに相当する。その他の例では、コーダ310は、プログレッシブ符号化(たとえば、プログレッシブJPEGに対応するプログレッシブ符号化)の一部またはすべてを採用する。プログレッシブ符号化では、逐次パターン(たとえば、Z字の順番)の代わりに、コーダ310は、類似した位置にある量子化インデックス222を一括してスキャンして記号を生成する。
いくつかの構成では、RLE中、コーダ310は、連続したゼロの量子化インデックス222をひとつに整理し、ゼロ以外の量子化インデックス222を符号化することによって、量子化インデックス222を表す符号語312を生成する。たとえば、各符号語312は、2つの記号、第1記号と第2記号との組合せから形成される。第1記号は、ランレングス(すなわち、ゼロ以外の量子化インデックス222よりも前にある量子化インデックス222に含まれるゼロの数)と、ゼロである量子化インデックス222のランレングスの後に続くゼロ以外の量子化インデックス222を表すビットの数に相当するサイズとを表す。第2記号は、第1記号のゼロ以外の量子化インデックス222に相当する振幅値を表す。具体的に説明すると、縦横8×8のサブブロック213についての64量子化インデックス222を表すベクトルの場合、このベクトルは、(41,0,0,0,67、…)など、量子化インデックス222のシーケンスを含んでもよい。ここで、41というゼロ以外の量子化インデックス222(41)よりも前には、ゼロである量子化インデックス222がなく、67というゼロ以外の量子化インデックス222(67)よりも前には、ゼロである量子化インデックス222が3つあるため、コーダ310は、このシーケンスを(0,41);(3,67)として表してもよい。量子化インデックス222の記号の場合、コーダ310は、ビット列によって規定される符号語312を形成する。いくつかの例では、コーダ310は、符号語312を形成する。ここで、各符号語は、量子化インデックス222(たとえば、量子化された変換係数)を表す固定長のビット列である。たとえば、各符号語312は、4ビット値として符号化される。いくつかの例では、ブロックの終わり(たとえば、ブロックマーカーの終わり)または固定長のビット列についてのゼロの最大ランレングスに相当する特殊な符号語312がある。たとえば、4ビット値の場合、最大ランレングスの特殊な符号語312は、16個の連続したゼロに相当する。コーダ310が生成する符号語312は、各記号(たとえば、ランレングス表現、またはゼロ以外の量子化インデックス222表現)に相当してもよい。コーダ310が符号語312を生成すると、符号語312は、符号化テーブル生成部320に伝達されてもよい。
コーダ310から受信した符号語312に基づいて、符号化テーブル生成部320は、1つ以上のエントロピー符号化テーブル322を生成する。従来、非可逆圧縮(たとえば、JPEG圧縮)に基づくエントロピー符号化中、エントロピー符号化は、標準のエントロピー符号化テーブルまたはメディアコンテンツ120の1つの要素用に最適化されたエントロピー符号化テーブルを使用する。たとえば、非可逆圧縮は、1つの画像についての符号語を生成し、エントロピーエンコーダ300は、当該1つの画像から生成された符号語だけに基づいて符号化を行う。この処理は、非可逆圧縮とエントロピー符号化との組合せであってもよく、結果、圧縮メディアコンテンツがもたらされる。しかし、残念ながら、この圧縮処理は、すべてのメディアコンテンツ(たとえば、アップロード112からの画像122a~nまたは画像122a~nのセット)全体のストレージに対する最適化が行われていない、および/またはメディアコンテンツのうち複数の要素からなる特定のセットに対する固有の最適化が行われていない。より具体的には、一般に、エントロピー符号化テーブルは、メディアコンテンツに含まれる複数の要素を考慮しない(すなわち、複数の画像にわたるエントロピー符号化テーブルを生成する)。標準のエントロピー符号化テーブルは、特定のビット精度を有する大きな画像セットの平均統計に基づいているかもしれないが、これらのテーブルは、たとえば、特定の複数の画像122a~n(たとえば、記憶システム140に格納される画像122a~nの特定のセット)に一意ではないので、ストレージプロバイダにとってストレージ効率がよくない可能性がある。メディアコンテンツ120のうち、エントロピー符号化テーブルを生成する際に記憶システム140に格納されることになる、または最終的に記憶システム140に格納される複数の要素(たとえば、複数の画像122a~n)を考慮することによって、圧縮器200およびエントロピーエンコーダ300は、ストレージプロバイダのためにメディアコンテンツのストレージを最適化してもよい。よって、潜在的に、ストレージコストを減らすまたはユーザ10のストレージコストを安定化させることができる。
いくつかの例では、圧縮器200および/またはエントロピーエンコーダ300は、メディアコンテンツ120の異なる集合または異なるセット全体のストレージを最適化するように構成される。これらの例では、メディアコンテンツ120同士は共通特性を共有してもよい。たとえば、圧縮器200および/またはエントロピーエンコーダ300は、1人以上のユーザ10に対応付けられたメディアコンテンツ120(たとえば、アプリケーション20および/または記憶システム140に対応付けられたユーザ10のユーザアカウント)のストレージを最適化するように構成される。異なる規模で言うと、圧縮器200および/またはエントロピーエンコーダ300は、メディアコンテンツアルバムまたは所与のメタデータ特性を共有するメディアコンテンツの集合など、メディアコンテンツ120の1つ以上のサブセット全体のストレージを最適化するように構成されてもよい。いくつかの構成では、アプリケーション20および/または記憶システム140が圧縮器200および/またはエントロピーエンコーダ300を採用して、記憶システム140(たとえば、遠隔システムまたはデータセンター全体)の一部(たとえば、特定の物理的な記憶場所)または全体のストレージを最適化してもよい。アプリケーション20および/または記憶システム140は、メディアコンテンツの共通特性(たとえば、メディアコンテンツ120の種類または指定されたメディアコンテンツ120の格納場所)を特定して、この特定が圧縮器200および/またはエントロピーエンコーダ300を利用することになるかどうかを判断してもよい。たとえば、アプリケーション20および/または記憶システム140は、アップロードされたメディアコンテンツの一部またはすべてが共通特性を共有していることを特定し、当該共通特性を有するメディアコンテンツを圧縮器200および/またはエントロピーエンコーダ300に伝達してもよい。
いくつかの構成では、アップロード112のメディアコンテンツ120は、複数の画像122a~nがアップロード112の画像122a~nのサブセットに相当するよう、フォーマットの品質がそれぞれ異なるメディアコンテンツ要素を含む。たとえば、圧縮器200および/またはエントロピーエンコーダ300のために複数の画像122a~nを規定する画像122a~nのサブセットは、大きな(たとえば、高)品質のフォーマットを有するアップロード112の画像に相当する。この構成では、圧縮器200および/またはエントロピーエンコーダ300は、メディアコンテンツ120の品質の違いを特定し、画像122a~nのサブセットが処理されると判断してもよい。すなわち、アップロード112の一部のメディアコンテンツ120は、低ストレージフォーマット(たとえば、特定された画像122a~nのサブセット)に圧縮され得るが、特定されていないメディアコンテンツ120は、(たとえば、圧縮器200および/またはエントロピーエンコーダ300による処理なしで)記憶システム140に格納される。
これに加えて、または代わりに、記憶システム140および/またはアプリケーション20のストレージプロバイダは、圧縮器200および/またはエントロピーエンコーダ300が処理するメディアコンテンツフォーマットを指定する。たとえば、アプリケーション20(または圧縮器200およびエントロピーエンコーダ300)は、低いストレージフットプリントフォーマットに圧縮される最小ファイルサイズを示すファイルサイズ閾値を用いてプログラムされてもよい。いくつかの例では、アプリケーション20は、圧縮器200および/またはエントロピーエンコーダ300によって低いストレージフットプリントフォーマットに圧縮されるメディアコンテンツフォーマットを断定的に指定するように構成される。
図3のエントロピーエンコーダ300を引き続き参照すると、符号化テーブル生成部320は、複数の画像122a~n(たとえば、アップロード112のメディアコンテンツ120)についての符号語312を受信する。いくつかの例では、記憶システム140がすべての格納されたメディアコンテンツ全体のストレージ効率を維持するよう、符号化テーブル生成部320は、より多くのメディアコンテンツ120が記憶システム140に伝達される度に、ストレージプロバイダまたは記憶システム140のためにエントロピー符号化テーブル322を再生成する。いくつかの実施態様では、符号化テーブル生成部320は、(たとえば、アップロード112によって)圧縮器200および/またはエントロピーエンコーダ300にまとめて送られた複数の画像122a~nのみについての符号化テーブル322を生成する。
いくつかの例では、エントロピー符号化テーブル322は、1つ以上の符号語312と、各符号語312の出現頻度と、各符号語312にマッピングされた可変長のビット列(たとえば、可変符号324として図示されている)とを含むビット列マップである。いくつかの構成では、出現頻度は、符号化テーブル生成部320が各符号語312を対応する出現頻度によってコンパイルするよう、特定の符号語312がメディアコンテンツ120(たとえば、複数の画像122a~n)に存在する回数のカウントに相当する。たとえば、図3は、頻度が最も多い(4.2)符号語から頻度が最も少ない(1.1)符号語の順に、頻度によって順序付けされた符号語312a~nを示している。いくつかの例では、頻度が大きい符号語312が小さいビットを有する可変長のビット列にマッピングされるよう、可変長のビット列が固定長のビット列にマッピングされる。たとえば、符号語312が、その他の符号語312と比較して最も頻繁に出現している場合、符号化テーブル生成部320は、ビット量が最も少ない(たとえば、図3において可変符号324として図示されている)可変長のビット列を割り当てる。すなわち、符号化テーブル生成部320が第1の可変長符号324aを第1の符号語312aに割り当てて、第2の可変長符号324bを第2の符号語312bに割り当てる場合、第1の可変長符号324aは、第2の可変長符号324bよりも少ない数のビットを含む。なぜならば、第1の符号語312aの出現頻度は、第2の符号語312bよりも多いためである。いくつかの例では、2つの符号語312(たとえば、第1の符号語312aおよび第2の符号語312b)の頻度が異なっていても、これらの符号語312a~nの各々がビットは異なるが可変長のビット列が同じである対応する可変長符号324a~nを有するよう、頻度の範囲が特定の可変長のビット列に割り当てられてもよい。固定長のビット列(たとえば、符号語312)の出現頻度に比例するビット量を有する可変長のビット列(たとえば、可変長符号324)を割り当てることによって、符号化テーブル生成部320は、可変長のビット列に従うメディアコンテンツ120(たとえば、画像122)の表現が圧縮メディアコンテンツ(たとえば、圧縮画像302)を形成するために必要なビットの数を減らす可能性を保証してもよい。すなわち、可変長のビット列に含まれるビットの長さの合計を最適化してもよい。
エンコーダ330は、符号化テーブル生成部320が生成したエントロピー符号化テーブル322を使用して、圧縮バージョンのメディアコンテンツ120(たとえば、圧縮画像302a~n)がもたらされるエントロピー符号化を行ってもよい。エントロピー符号化は、可逆データ圧縮処理を指してもよい。なぜならば、エントロピー符号化によって、元データを圧縮データから完全に再構成することを可能にできるためである。エンコーダ330は、メディアコンテンツ120(たとえば、画像122a~n)の符号語312と、エントロピー符号化テーブル322とを受信し、メディアコンテンツ120(たとえば、画像122a~n)内の各符号語312をエントロピー符号化テーブル322が指定する対応する可変長符号324a~nに置き換える。この処理のために、エンコーダ330は、ハフマン符号化法または算術符号化など、エントロピー符号化技術をエントロピー符号化テーブル(複数可)322と連動して使用してもよい。これらのエントロピー符号化技術は、エントロピー符号化テーブル(複数可)322が示す(たとえば、頻度に従う)符号語312にマッピングされる可変長符号324のサイズを規定してもよい。
図4は、圧縮メディアコンテンツが圧縮画像302、302a~nである記憶システム140に格納するための圧縮メディアコンテンツを生成する例示的な方法(400)のフロー図である。動作402では、方法(400)は、記憶装置(たとえば、記憶システム140(たとえば、記憶システム140におけるメモリハードウェア146))において複数の画像122、122a~nを受信する。動作404では、複数の画像122の画像122ごとに、方法(400)が非可逆圧縮を使用して符号語312を生成する。ここで、各符号語312は、ビット列として規定されている。動作406では、方法(400)は、複数の画像122の符号語312に基づいてエントロピー符号化テーブル322を生成する。動作408では、方法(400)は、生成したエントロピー符号化テーブル322を使用して複数の画像122にエントロピー符号化を行う。いくつかの実施態様では、ユーザデバイス110は、圧縮器200および/またはエントロピーエンコーダ300の機能を実現するように構成されたアプリケーション20をユーザデバイス110上で実行する。これらの実施態様では、ユーザデバイス110は、複数の画像122をローカルに格納し、動作404、406、408をローカルに実行して複数の画像122をローカルに符号化する。次に、ユーザデバイス110は、記憶装置(たとえば、記憶システム140)上に格納するために符号化画像を圧縮画像302としてアップロードしてもよい。
いくつかの実施態様では、複数の画像122a~nは、特に複数の画像122a~nの集合に基づくエントロピー符号化テーブル322に従ってエントロピー符号化されるメディアコンテンツ120の一部を示す。すなわち、複数の画像122a~nは、メディアコンテンツ120のサブセットとして形成されてもよいが、複数の画像122a~nは、複数の画像122a~nのいずれもエントロピー符号化を回避しないよう、すべてまとめてエントロピー符号化される。
図5は、本明細書に記載のシステム(たとえば、ユーザデバイス110、記憶システム140、圧縮器200、および/またはエントロピーエンコーダ300)および方法(たとえば、方法(400))を実装するために使用され得る例示的なコンピューティングデバイス500の概略図である。コンピューティングデバイス500は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、およびその他の適切なコンピュータなど、様々な形態のデジタルコンピュータを表すよう意図される。本明細書に示す構成要素、それらの接続および関係、ならびにそれらの機能は、例示に過ぎず、本明細書において説明および/またはクレームされた発明の実施態様を限定するものではない。
コンピューティングデバイス500は、プロセッサ510(たとえば、データ処理ハードウェア)と、メモリ520(たとえば、メモリハードウェア)と、記憶装置530と、メモリ520および高速拡張ポート550に接続された高速インタフェース/コントローラ540と、低速バス570および記憶装置530に接続された低速インタフェース/コントローラ560とを備える。構成要素510、520、530、540、550、および560の各々は、様々なバスを用いて互いに接続されており、共通のマザーボード上に実装されてもよく、またはその他の方法で適宜実装されてもよい。プロセッサ510は、コンピューティングデバイス500内で実行するための命令を処理することができ、当該命令は、高速インタフェース540に連結されたディスプレイ580など、外付けの入出力装置上のGUI(Graphical User Interface)のためのグラフィック情報を表示するためのメモリ520に格納された命令または記憶装置530上に格納された命令を含む。その他の実施態様では、複数のプロセッサおよび/または複数のバスが複数のメモリおよび複数種類のメモリとともに適宜利用されてもよい。また、(たとえば、サーババンク、ブレードサーバ群、または多重プロセッサシステムなどとしての)必要な動作の一部を各々が提供する複数のコンピューティングデバイス500が接続されてもよい。
メモリ520は、情報を非一時的にコンピューティングデバイス500内に格納する。メモリ520は、コンピュータ読み取り可能な媒体、揮発性記憶装置(複数可)、または非揮発性記憶装置(複数可)であってもよい。非一時的なメモリ520は、プログラム(たとえば、一連の命令)またはデータ(たとえば、プログラム状態情報)をコンピューティングデバイス500が使用するために一時的または恒久的に格納するために用いられる物理デバイスであってもよい。不揮発性メモリとして、フラッシュメモリおよびROM(Read-Only Memory)/PROM(Programmable Read-Only Memory)/EPROM(Erasable Programmable Read-Only Memory)/EEPROM(Electronically Erasable Programmable Read-Only Memory)(たとえば、ブートプログラムなど、通常、ファームウェアのために使用される)などが挙げられるが、これらに限定されない。揮発性メモリとして、RAM(Random Access Memory)、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、PCM(Phase Change Memory)およびディスクまたはテープなどが挙げられるが、これらに限定されない。
記憶装置530は、コンピューティングデバイス500用の大容量ストレージを提供できる。いくつかの実施態様では、記憶装置530は、コンピュータ読み取り可能な媒体である。様々な異なる実施態様では、記憶装置530は、フロッピー(登録商標)ディスク装置、ハードディスク装置、光ディスク装置、またはテープ装置であってもよく、フラッシュメモリまたは他の同様の固体メモリ装置であってもよく、ストレージエリアネットワークまたはその他の構成に含まれる装置を含む装置の配列であってもよい。さらなる実施態様では、情報担体にコンピュータプログラムプロダクトが有形に含まれている。また、このコンピュータプログラムプロダクトは、命令を含んでおり、当該命令は、実行されると、上述した方法など、1つ以上の方法を実行する。情報担体は、メモリ520、記憶装置530、またはプロセッサ510上のメモリなど、コンピュータまたは機械読み取り可能な媒体である。
高速コントローラ540は、コンピューティングデバイス500のための多くの帯域幅を必要とする動作を管理し、低速コントローラ560は、より低い帯域幅の多くを必要とする動作を管理する。このような役割の割振りは、例示に過ぎない。いくつかの実施態様では、高速コントローラ540は、(たとえば、グラフィックスプロセッサまたはアクセラレータを通じて)メモリ520、ディスプレイ580に連結され、様々な拡張カード(図示せず)を受け付け得る高速拡張ポート1110に連結される。いくつかの実施態様では、低速コントローラ560は、記憶装置530および低速拡張ポート590に連結される。様々な通信ポート(たとえば、USB、Bluetooth(登録商標)、Ethernet(登録商標)、無線Ethernet(登録商標))を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナなどの1つ以上の入出力装置、または、スイッチもしくはルータなどのネットワーク装置に、たとえば、ネットワークアダプタを通じて連結されてもよい。
コンピューティングデバイス500は、図に示すような複数の異なる形態で実現されてもよい。たとえば、標準サーバ500aとして実現されてもよく、または、ラップトップコンピュータ500bとして、もしくはラックサーバシステム500cの一部として、このようなサーバ500aの群で複数回実現されてもよい。
本明細書において説明したシステムおよび技術の様々な実施態様は、デジタル電子回路および/もしくは光学回路、集積回路、専用に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、ならびに/またはそれらの組み合せで実現することができる。これらの様々な実施態様は、少なくとも1つのプログラム可能なプロセッサを備えるプログラム可能なシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムでの実施態様を含み得る。当該少なくとも1つのプログラム可能なプロセッサは、特定用途プロセッサであってもよく、汎用プロセッサであってもよく、ストレージシステム、少なくとも1つの入力装置、および少なくとも1つの出力装置に連結されてデータおよび命令を送受信してもよい。
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラム可能なプロセッサ用の機械命令を含み、高レベルの手続き形言語および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ言語/機械言語で実現できる。本明細書において使用するとき、「機械読み取り可能な媒体」および「コンピュータ読み取り可能な媒体」という用語は、機械命令および/またはデータを、機械読み取り可能な信号として機械命令を受け付ける機械読み取り可能な媒体を含むプログラム可能なプロセッサに提供するために使用される任意のコンピュータプログラムプロダクト、非一時的なコンピュータ読み取り可能な媒体、装置、および/またはデバイス(たとえば、磁気ディスク、光学ディスク、メモリ、PLD(Programmable Logic Devices))を指す。「機械読み取り可能な信号」という用語は、機械命令および/またはデータをプログラム可能なプロセッサに提供するために使用される任意の信号を指す。
入力データ上で動作して出力を生成することによって機能を実行するように1つまたは複数のコンピュータプログラムを1つまたは複数のプログラマブルプロセッサが実行することによって、本明細書において説明した処理および論理フローが実行され得る。また、処理および論理フローは、専用の論理回路、たとえば、FPGA(Field Programmable Gate Array)またはASIC(特定用途向け集積回路)によって実行され得る。コンピュータプログラムの実行に適したプロセッサは、一例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、およびあらゆる種類のデジタル計算機の任意の1つ以上のプロセッサが挙げられる。一般に、プロセッサは、ROM(Read Only Memory)もしくはRAM(Random Access Memory)、またはその両方から命令およびデータを受け取る。必須のコンピュータの構成要素は、命令を実行するためのプロセッサと、命令およびデータを格納するための1つ以上のメモリ素子である。一般に、コンピュータは、データを格納するための1つ以上の大容量記憶装置、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを備える、または、このような1つ以上の大容量記憶装置との間でデータの受信、送信、もしくはその両方を行うように操作可能に接続される。しかしながら、コンピュータは、このような機器を有する必要はない。コンピュータプログラム命令およびデータを格納するのに適した読み取り可能な媒体は、一例として、EPROM、EEPROM、およびフラッシュメモリ素子などの半導体メモリ素子;内蔵ハードディスクまたはリムーバブルディスクなどの磁気ディスク;光磁気ディスク;およびCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体ならびにメモリ素子を含む。プロセッサおよびメモリは、専用の論理回路によって補ったり、専用の論理回路に内蔵したりすることができる。
ユーザとのやり取りを可能にするために、本開示の1つ以上の態様は、ユーザに情報を表示するための表示装置、たとえば、ブラウン管(CRT)、液晶ディスプレイ(LCD)モニタ、またはタッチスクリーンと、オフションで、ユーザがコンピュータに入力を行えるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールとを備えたコンピュータ上に実装され得る。その他の種類のデバイスを使ってユーザとやり取りすることもでき、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、あらゆる形式の感覚フィードバックであり得、ユーザからの入力は、音響入力、音声入力、触覚入力など、あらゆる形式で受け付けられ得る。これに加えて、コンピュータは、ユーザが使用する機器と文書を送受信すること、たとえば、ウェブブラウザから受信した要求に応答してユーザのクライアント装置上のウェブブラウザにウェブページを送信することによって、ユーザとやり取りすることができる。
いくつかの実施態様を説明したが、本開示の趣旨および範囲を逸脱することなく、様々な変更がなされてもよいことが理解されるだろう。したがって、他の実施態様は、添付の特許請求の範囲に含まれる。

Claims (24)

  1. 方法であって、
    データ処理ハードウェアが複数の画像を記憶装置で受信するステップと、
    前記複数の画像の画像ごとに、前記データ処理ハードウェアが非可逆圧縮を使用して符号語を生成するステップとを含み、各符号語は、ビット列として規定されており、前記方法は、さらに、
    前記データ処理ハードウェアが前記記憶装置で受信した前記複数の画像の画像ごとに生成された前記符号語に特有のエントロピー符号化テーブルを生成するステップを含み、前記エントロピー符号化テーブルは、前記記憶装置で受信した画像の異なるセットに適応するように構成されており、前記方法は、さらに、
    生成した前記エントロピー符号化テーブルを使用して前記データ処理ハードウェアが前記複数の画像にエントロピー符号化を行うステップとを含み、前記エントロピー符号化テーブルは、前記記憶装置で受信した前記複数の画像に特有である、方法。
  2. 前記符号語を生成するステップは、
    前記複数の画像の各画像を画素ブロックに分けるステップと、
    前記画素ブロックの各々を変換係数に変換するステップと、
    前記変換係数を量子化して量子化インデックスを形成するステップと、
    各量子化インデックスを各ビット列として表すステップと、
    前記各ビット列に可変長符号を割り当てるステップとをさらに含み、前記可変長符号は、前記複数の画像内での前記各ビット列の出現が増加すると減少するビット長を含む、請求項1に記載の方法。
  3. 前記変換係数は、離散コサイン変換(DCT)係数を含む、請求項2に記載の方法。
  4. 前記非可逆圧縮は、JPEG(Joint Photographic Experts Group)圧縮を含む、請求項1~3のいずれか1項に記載の方法。
  5. 前記エントロピー符号化テーブルを生成するステップは、
    前記符号語の出現頻度に基づいて、前記複数の画像の画像ごとに生成された前記符号語をコンパイルするステップを含み、前記出現頻度は、各符号語が前記複数の画像に存在する回数を示し、前記エントロピー符号化テーブルを生成するステップは、
    前記符号語の出現頻度に基づいて、ビットの可変長符号を各コンパイルされた符号語に割り当てるステップをさらに含む、請求項1~4のいずれか1項に記載の方法。
  6. 前記符号語の出現頻度に基づいてビットの可変長符号を各コンパイルされた符号語に割り当てるステップは、コンパイルされた前記符号語のすべての前記ビットの可変長符号の合計を最適化するステップを含む、請求項5に記載の方法。
  7. 前記複数の画像を受信するステップは、ユーザデバイスからのアップロードに応答して発生し、前記アップロードは、前記ユーザデバイスのメディアコンテンツのためのバックアップ機能に対応付けられている、請求項1~6のいずれか1項に記載の方法。
  8. 前記複数の画像の各画像は、共通特性を有し、前記共通特性は、特定のユーザ、特定のユーザアカウント、特定のメディアコンテンツアルバム、または特定の物理的な記憶場所に対応付けられている、請求項1~7のいずれか1項に記載の方法。
  9. 前記複数の画像を受信するステップは、
    前記記憶装置に格納するための、前記複数の画像と、その他の複数の画像とを含むメディアコンテンツを受信するステップと、
    前記複数の画像が共通特性を有すると判断するステップとを含み、前記共通特性は、特定のユーザ、特定のユーザアカウント、特定のメディアコンテンツアルバム、または特定の物理的な記憶場所に対応付けられている、請求項1~8のいずれか1項に記載の方法。
  10. 前記記憶装置にある前記その他の複数の画像とは異なる位置に、生成した前記エントロピー符号化テーブルを使用してエントロピー符号化された前記複数の画像を前記データ処理ハードウェアが格納するステップをさらに含む、請求項9に記載の方法。
  11. 方法であって、
    データ処理ハードウェアにおいて複数の画像を記憶装置で受信するステップと、
    前記複数の画像の画像ごとに、前記データ処理ハードウェアが非可逆圧縮を使用して符号語を生成するステップとを含み、各符号語は、ビット列として規定されており、前記方法は、さらに、
    前記データ処理ハードウェアが前記複数の画像の画像ごとに生成された前記符号語に基づいてエントロピー符号化テーブルを生成するステップと、
    生成した前記エントロピー符号化テーブルを使用して前記データ処理ハードウェアが前記複数の画像にエントロピー符号化を行うステップとを含み、
    前記複数の画像を受信するステップは、
    前記記憶装置と通信しているストレージアプリケーションを実行するユーザデバイスにおけるメディアコンテンツの作成または受信を検出するステップと、
    前記ユーザデバイスにプロンプトを生成するステップとを含み、前記プロンプトは、前記ユーザデバイスのユーザが検出された前記メディアコンテンツを前記記憶装置にバックアップしたいか、または転送したいかを尋ねるプロンプトであり、前記複数の画像を受信するステップは、さらに、
    前記ユーザが検出された前記メディアコンテンツを前記記憶装置にバックアップまたは転送することを選択した場合、エントロピー符号化のために前記メディアコンテンツ内の前記複数の画像を特定するステップを含む、方法。
  12. 方法であって、
    データ処理ハードウェアにおいて複数の画像を記憶装置で受信するステップと、
    前記複数の画像の画像ごとに、前記データ処理ハードウェアが非可逆圧縮を使用して符号語を生成するステップとを含み、各符号語は、ビット列として規定されており、前記方法は、さらに、
    前記データ処理ハードウェアが前記複数の画像の画像ごとに生成された前記符号語に基づいてエントロピー符号化テーブルを生成するステップと、
    生成した前記エントロピー符号化テーブルを使用して前記データ処理ハードウェアが前記複数の画像にエントロピー符号化を行うステップとを含み、
    前記複数の画像は、ユーザデバイスによるメディアコンテンツのアップロードからの第1サブセットの画像に対応し、前記メディアコンテンツのアップロードは、前記第1サブセットの画像と、第2サブセットの画像とを含み、前記第1サブセットの画像は、低いストレージフットプリントフォーマットへの圧縮を目的とする第1のメディアコンテンツフォーマットを有し、前記第2サブセットの画像は、前記低いストレージフットプリントフォーマットへの圧縮を回避する、方法。
  13. システムであって、
    データ処理ハードウェアと、
    前記データ処理ハードウェアと通信するメモリハードウェアとを備え、前記メモリハードウェアは、命令を格納し、前記命令は、前記データ処理ハードウェア上で実行されると、前記データ処理ハードウェアに動作を実行させ、前記動作は、
    数の画像を記憶装置で受信する動作と、
    前記複数の画像の画像ごとに、非可逆圧縮を使用して符号語を生成する動作とを含み、各符号語は、ビット列として規定されており、前記動作は、さらに、
    前記記憶装置で受信した前記複数の画像の画像ごとに生成された前記符号語に特有のエントロピー符号化テーブルを生成する動作を含み、前記エントロピー符号化テーブルは、前記記憶装置で受信した画像の異なるセットに適応するように構成されており、前記動作は、さらに、
    生成した前記エントロピー符号化テーブルを使用して前記複数の画像にエントロピー符号化を行う動作とを含み、前記エントロピー符号化テーブルは、前記記憶装置で受信した前記複数の画像に特有である、システム。
  14. 前記符号語を生成する動作は、
    前記複数の画像の各画像を画素ブロックに分ける動作と、
    前記画素ブロックの各々を変換係数に変換する動作と、
    前記変換係数を量子化して量子化インデックスを形成する動作と、
    各量子化インデックスを各ビット列として表す動作と、
    前記各ビット列に可変長符号を割り当てる動作とをさらに含み、前記可変長符号は、前記複数の画像内での前記各ビット列の出現が増加すると減少するビット長を含む、請求項13に記載のシステム。
  15. 前記変換係数は、離散コサイン変換(DCT)係数を含む、請求項14に記載のシステム。
  16. 前記非可逆圧縮は、JPEG(Joint Photographic Experts Group)圧縮を含む、請求項13~15のいずれか1項に記載のシステム。
  17. 前記エントロピー符号化テーブルを生成する動作は、
    前記符号語の出現頻度に基づいて、前記複数の画像の画像ごとに生成された前記符号語をコンパイルする動作を含み、前記出現頻度は、各符号語が前記複数の画像に存在する回数を示し、前記エントロピー符号化テーブルを生成する動作は、
    前記符号語の出現頻度に基づいて、ビットの可変長符号を各コンパイルされた符号語に割り当てる動作をさらに含む、請求項13~16のいずれか1項に記載のシステム。
  18. 前記符号語の出現頻度に基づいてビットの可変長符号を各コンパイルされた符号語に割り当てる動作は、コンパイルされた前記符号語のすべての前記ビットの可変長符号の合計を最適化する動作を含む、請求項17に記載のシステム。
  19. 前記複数の画像を受信する動作は、ユーザデバイスからのアップロードに応答して発生し、前記アップロードは、前記ユーザデバイスのメディアコンテンツのためのバックアップ機能に対応付けられている、請求項13~18のいずれか1項に記載のシステム。
  20. 前記複数の画像の各画像は、共通特性を有し、前記共通特性は、特定のユーザ、特定のユーザアカウント、特定のメディアコンテンツアルバム、または特定の物理的な記憶場所に対応付けられている、請求項13~19のいずれか1項に記載のシステム。
  21. 前記複数の画像を受信する動作は、
    前記記憶装置に格納するための、前記複数の画像と、その他の複数の画像とを含むメディアコンテンツを受信する動作と、
    前記複数の画像が共通特性を有すると判断する動作とを含み、前記共通特性は、特定のユーザ、特定のユーザアカウント、特定のメディアコンテンツアルバム、または特定の物理的な記憶場所に対応付けられている、請求項13~20のいずれか1項に記載のシステム。
  22. 前記動作は、前記記憶装置にある前記その他の複数の画像とは異なる位置に、生成した前記エントロピー符号化テーブルを使用してエントロピー符号化された前記複数の画像を格納する動作をさらに含む、請求項21に記載のシステム。
  23. システムであって、
    データ処理ハードウェアと、
    前記データ処理ハードウェアと通信するメモリハードウェアとを備え、前記メモリハードウェアは、命令を格納し、前記命令は、前記データ処理ハードウェア上で実行されると、前記データ処理ハードウェアに動作を実行させ、前記動作は、
    複数の画像を記憶装置で受信する動作と、
    前記複数の画像の画像ごとに、非可逆圧縮を使用して符号語を生成する動作とを含み、各符号語は、ビット列として規定されており、前記動作は、さらに、
    前記複数の画像の画像ごとに生成された前記符号語に基づいてエントロピー符号化テーブルを生成する動作と、
    生成した前記エントロピー符号化テーブルを使用して前記複数の画像にエントロピー符号化を行う動作とを含み、
    前記複数の画像を受信する動作は、
    前記記憶装置と通信しているストレージアプリケーションを実行するユーザデバイスにおけるメディアコンテンツの作成または受信を検出する動作と、
    前記ユーザデバイスにプロンプトを生成する動作とを含み、前記プロンプトは、前記ユーザデバイスのユーザが検出された前記メディアコンテンツを前記記憶装置にバックアップしたいか、または転送したいかを尋ねるプロンプトであり、前記複数の画像を受信する動作は、さらに、
    前記ユーザが検出された前記メディアコンテンツを前記記憶装置にバックアップまたは転送することを選択した場合、エントロピー符号化のために前記メディアコンテンツ内の前記複数の画像を特定する動作を含む、システム。
  24. システムであって、
    データ処理ハードウェアと、
    前記データ処理ハードウェアと通信するメモリハードウェアとを備え、前記メモリハードウェアは、命令を格納し、前記命令は、前記データ処理ハードウェア上で実行されると、前記データ処理ハードウェアに動作を実行させ、前記動作は、
    複数の画像を記憶装置で受信する動作と、
    前記複数の画像の画像ごとに、非可逆圧縮を使用して符号語を生成する動作とを含み、各符号語は、ビット列として規定されており、前記動作は、さらに、
    前記複数の画像の画像ごとに生成された前記符号語に基づいてエントロピー符号化テーブルを生成する動作と、
    生成した前記エントロピー符号化テーブルを使用して前記複数の画像にエントロピー符号化を行う動作とを含み、
    前記複数の画像は、ユーザデバイスによるメディアコンテンツのアップロードからの第1サブセットの画像に対応し、前記メディアコンテンツのアップロードは、前記第1サブセットの画像と、第2サブセットの画像とを含み、前記第1サブセットの画像は、低いストレージフットプリントフォーマットへの圧縮を目的とする第1のメディアコンテンツフォーマットを有し、前記第2サブセットの画像は、前記低いストレージフットプリントフォーマットへの圧縮を回避する、システム。
JP2021549367A 2019-02-22 2019-11-10 複数の画像全体の圧縮 Active JP7147075B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/282,418 US10687062B1 (en) 2019-02-22 2019-02-22 Compression across multiple images
US16/282,418 2019-02-22
PCT/US2019/060664 WO2020171860A1 (en) 2019-02-22 2019-11-10 Compression across multiple images

Publications (2)

Publication Number Publication Date
JP2022510733A JP2022510733A (ja) 2022-01-27
JP7147075B2 true JP7147075B2 (ja) 2022-10-04

Family

ID=68835287

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021549367A Active JP7147075B2 (ja) 2019-02-22 2019-11-10 複数の画像全体の圧縮

Country Status (6)

Country Link
US (1) US10687062B1 (ja)
EP (1) EP3928515A1 (ja)
JP (1) JP7147075B2 (ja)
KR (1) KR20210113681A (ja)
CN (1) CN113454995A (ja)
WO (1) WO2020171860A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7219775B2 (ja) * 2018-03-29 2023-02-08 フラウンホファー ゲセルシャフト ツール フェールデルンク ダー アンゲヴァンテン フォルシュンク エー.ファオ. 変換係数ブロック・コーディング

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002044662A (ja) 2000-07-24 2002-02-08 Sony Corp データ符号化装置及び符号化方法並びにデータ復号化装置及び復号化方法
JP2005152645A (ja) 2003-11-26 2005-06-16 General Electric Co <Ge> プログレッシブな医用画像ボリューム・ナビゲーション
WO2010013290A1 (ja) 2008-07-31 2010-02-04 国立大学法人広島大学 圧縮処理装置および圧縮処理方法
WO2012060172A1 (ja) 2010-11-04 2012-05-10 シャープ株式会社 動画像符号化装置、動画像復号装置、動画像伝送システム、動画像符号化装置の制御方法、動画像復号装置の制御方法、動画像符号化装置制御プログラム、動画像復号装置制御プログラム、および記録媒体

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5333212A (en) 1991-03-04 1994-07-26 Storm Technology Image compression technique with regionally selective compression ratio
US5157488A (en) * 1991-05-17 1992-10-20 International Business Machines Corporation Adaptive quantization within the jpeg sequential mode
US5398066A (en) 1993-07-27 1995-03-14 Sri International Method and apparatus for compression and decompression of digital color images
US5471207A (en) * 1994-02-23 1995-11-28 Ricoh Company Ltd. Compression of palettized images and binarization for bitwise coding of M-ary alphabets therefor
US5552832A (en) * 1994-10-26 1996-09-03 Intel Corporation Run-length encoding sequence for video signals
JP2951861B2 (ja) * 1994-12-28 1999-09-20 シャープ株式会社 画像符号化装置及び画像復号装置
US5682152A (en) 1996-03-19 1997-10-28 Johnson-Grace Company Data compression using adaptive bit allocation and hybrid lossless entropy encoding
US20020001412A1 (en) 1998-07-21 2002-01-03 Hewlett-Packard Company System for variable quantization in jpeg for compound documents
US20020087546A1 (en) * 2000-01-31 2002-07-04 Michael Slater Apparatus, methods, and systems for digital photo management
US6701020B2 (en) 2001-03-15 2004-03-02 Hewlett-Packard Development Company, L.P. JADE-JPEG based adaptive document compression engine
US7092578B2 (en) * 2001-10-23 2006-08-15 Agilent Technologies, Inc. Signaling adaptive-quantization matrices in JPEG using end-of-block codes
US7840892B2 (en) * 2003-08-29 2010-11-23 Nokia Corporation Organization and maintenance of images using metadata
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7702781B2 (en) * 2006-03-03 2010-04-20 Teoco Corporation System and method of storing data files at a remote storage facility
US7884742B2 (en) 2006-06-08 2011-02-08 Nvidia Corporation System and method for efficient compression of digital data
CN101778284A (zh) 2010-02-02 2010-07-14 杭州电子科技大学 一种多焦点多光子显微镜成像数据的有损压缩方法
JP2011205521A (ja) * 2010-03-26 2011-10-13 Seiko Epson Corp バックアップ制御装置
CN102647541B (zh) 2012-04-28 2014-08-20 大连民族学院 一种基于有损压缩链码的图像编码方法
GB2523348B (en) * 2014-02-20 2016-03-30 Gurulogic Microsystems Oy Encoder, decoder and method
US9344114B1 (en) 2015-05-11 2016-05-17 Qualcomm Incorporated Compressed caching in a virtual memory system
US10303402B2 (en) * 2016-08-02 2019-05-28 Seagate Technology Llc Data compression using partial statistics
US10291911B2 (en) * 2016-11-29 2019-05-14 Motorola Mobility Llc Classes of tables for use in image compression

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002044662A (ja) 2000-07-24 2002-02-08 Sony Corp データ符号化装置及び符号化方法並びにデータ復号化装置及び復号化方法
JP2005152645A (ja) 2003-11-26 2005-06-16 General Electric Co <Ge> プログレッシブな医用画像ボリューム・ナビゲーション
WO2010013290A1 (ja) 2008-07-31 2010-02-04 国立大学法人広島大学 圧縮処理装置および圧縮処理方法
WO2012060172A1 (ja) 2010-11-04 2012-05-10 シャープ株式会社 動画像符号化装置、動画像復号装置、動画像伝送システム、動画像符号化装置の制御方法、動画像復号装置の制御方法、動画像符号化装置制御プログラム、動画像復号装置制御プログラム、および記録媒体

Also Published As

Publication number Publication date
US10687062B1 (en) 2020-06-16
EP3928515A1 (en) 2021-12-29
JP2022510733A (ja) 2022-01-27
CN113454995A (zh) 2021-09-28
KR20210113681A (ko) 2021-09-16
WO2020171860A1 (en) 2020-08-27

Similar Documents

Publication Publication Date Title
Alakuijala et al. JPEG XL next-generation image compression architecture and coding tools
JP6728385B2 (ja) デジタルイメージ再圧縮
US8578058B2 (en) Real-time multi-block lossless recompression
Singh et al. Various image compression techniques: lossy and lossless
US11074723B2 (en) Lossless compression of fragmented image data
RU2613031C2 (ru) Способ кодирования данных, способ декодирования данных, кодер, декодер и кодек
JP2016226001A (ja) デコーダおよび復号方法
JP2014039256A (ja) エンコーダおよび符号化方法
US8682091B2 (en) Real-time image compression
Chawla et al. Image compression techniques: a review
TW201421996A (zh) 隨機存取記憶體中壓縮資料的系統及方法
Öztürk et al. Performance evaluation of jpeg standards, webp and png in terms of compression ratio and time for lossless encoding
US8340443B2 (en) System and method for compressing compressed data
JP7147075B2 (ja) 複数の画像全体の圧縮
US7123656B1 (en) Systems and methods for video compression
US11803985B2 (en) Information processing apparatus, information processing method, and recording medium
US9451275B2 (en) System and method for storing and moving graphical image data sets with reduced data size requirements
JP2004253889A (ja) 画像処理装置及び方法
US8260070B1 (en) Method and system to generate a compressed image utilizing custom probability tables
TWI484829B (zh) 圖像處理系統及方法
US20100277612A1 (en) Memory management in an image storage device

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211102

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211102

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20211102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220408

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220809

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220823

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220921

R150 Certificate of patent or registration of utility model

Ref document number: 7147075

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150