JP2023007760A - 圧縮装置及び伸張装置 - Google Patents

圧縮装置及び伸張装置 Download PDF

Info

Publication number
JP2023007760A
JP2023007760A JP2021110809A JP2021110809A JP2023007760A JP 2023007760 A JP2023007760 A JP 2023007760A JP 2021110809 A JP2021110809 A JP 2021110809A JP 2021110809 A JP2021110809 A JP 2021110809A JP 2023007760 A JP2023007760 A JP 2023007760A
Authority
JP
Japan
Prior art keywords
packet
request
symbol
variable
codewords
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.)
Pending
Application number
JP2021110809A
Other languages
English (en)
Inventor
正人 住吉
Masato Sumiyoshi
圭里 中西
Keiri Nakanishi
恒平 及川
Kohei Oikawa
翔 小玉
Sho Kodama
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.)
Kioxia Corp
Original Assignee
Kioxia Corp
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 Kioxia Corp filed Critical Kioxia Corp
Priority to JP2021110809A priority Critical patent/JP2023007760A/ja
Priority to US17/688,368 priority patent/US11742876B2/en
Publication of JP2023007760A publication Critical patent/JP2023007760A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • 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/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3077Sorting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects
    • 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/60General implementation details not specific to a particular type of compression
    • H03M7/6011Encoder aspects
    • 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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Memory System (AREA)

Abstract

【課題】圧縮効率を向上させることが可能な圧縮装置及び伸張装置を提供することにある。【解決手段】実施形態において、インターリーブ部は、シンボル列を第1及び第2シンボルに分割する。第1符号化部は、第1シンボルを第1符号語に変換する。第1パケット生成部は、第1符号語を含む第1パケットを生成する。第1要求生成部は、第1符号語の符号長に基づいて、可変長パケットのサイズを含む第1パケット要求を生成する。第2符号化部は、第2シンボルを第2符号語に変換する。第2パケット生成部は、第2符号語を含む第2パケットを生成する。第2要求生成部は、可変長パケットのサイズを含む第2パケット要求を生成する。マルチプレクサは、第1パケット要求に基づいて第1パケットから切り出された第1可変長パケット及び第2パケット要求に基づいて第2パケットから切り出された第2可変長パケットを含む圧縮ストリームを出力する。【選択図】図2

Description

本発明の実施形態は、圧縮装置及び伸張装置に関する。
近年では、例えばホストから書き込みコマンドが発行された際に書き込みデータを圧縮装置で圧縮して不揮発性メモリに書き込み、当該ホストから読み出しコマンドが発行された際に不揮発性メモリから読み出された読み出しデータを伸張装置で伸張して当該ホストに返すことが行われている。これによれば、不揮発性メモリの記憶領域を有効に活用することができる。
ところで、上記した書き込みデータを圧縮するためにエントロピー符号化が行われる場合、期待される圧縮効率(効果)を得ることができない場合がある。
米国特許第10367604号明細書
そこで、本発明が解決しようとする課題は、圧縮効率を向上させることが可能な圧縮装置及び伸張装置を提供することにある。
実施形態に係る圧縮装置は、インターリーブ部と、第1符号化部と、第1パケット生成部と、第1要求生成部と、第2符号化部と、第2パケット生成部と、第2要求生成部と、マルチプレクサとを具備する。前記インターリーブ部は、入力されたシンボル列を、複数の第1シンボル及び前記複数の第1シンボルとは異なる複数の第2シンボルに分割する。前記第1符号化部は、前記複数の第1シンボルに対して符号化を行うことによって前記複数の第1シンボルを複数の第1符号語に変換する。前記第1パケット生成部は、前記複数の第1符号語を含む第1パケットを生成する。前記第1要求生成部は、前記複数の第1符号語の各々の符号長に基づいて、可変長パケットのサイズを含む第1パケット要求を生成する。前記第2符号化部は、前記複数の第2シンボルに対して符号化を行うことによって前記複数の第2シンボルを複数の第2符号語に変換する。前記第2パケット生成部は、前記複数の第2符号語を含む第2パケットを生成する。前記第2要求生成部は、可変長パケットのサイズを含む第2パケット要求を生成する。前記マルチプレクサは、前記第1パケット要求に含まれる可変長パケットのサイズに基づいて前記第1パケットから第1可変長パケットを切り出すとともに、前記第2パケット要求に含まれる可変長パケットのサイズに基づいて前記第2パケットから第2可変長パケットを切り出し、前記第1及び第2可変長パケットを含む圧縮ストリームを出力する。
第1実施形態に係る圧縮装置及び伸張装置が適用されるメモリシステムのハードウェア構成の一例を概略的に示すブロック図。 第1実施形態に係る圧縮装置及び伸張装置の構成の一例を示す図。 第1実施形態において第1サブストリームから変換された複数の符号語の一例を示す図。 第1実施形態において第2サブストリームから変換された複数の符号語の一例を示す図。 第1実施形態の比較例に係る伸張装置における第1チャネルの動作の具体例を示す図。 第1実施形態の比較例に係る伸張装置における第2チャネルの動作の具体例を示す図。 第1実施形態の比較例に係る圧縮装置に含まれる第1パケット要求生成部、第2パケット要求生成部及びマルチプレクサの動作の概要を説明するための図。 第1実施形態に係る圧縮装置から出力される圧縮ストリームに含まれる可変長パケットの概要を示す図。 第1実施形態に係る伸張装置における第1チャネルの動作の具体例を示す図。 第1実施形態に係る伸張装置における第2チャネルの動作の具体例を示す図。 第1実施形態に係る圧縮装置に含まれる第1パケット要求生成部、第2パケット要求生成部及びマルチプレクサの動作の概要を説明するための図。 第2実施形態に係る伸張装置における第1チャネルの動作の具体例を示す図。 第2実施形態に係る伸張装置における第2チャネルの動作の具体例を示す図。 第2実施形態に係る圧縮装置に含まれる第1パケット要求生成部、第2パケット要求生成部及びマルチプレクサの動作の概要を説明するための図。 第2実施形態の変形例について具体的に説明するための図。 第2実施形態の変形例について具体的に説明するための図。 第3実施形態における辞書式符号化の結果について説明するための図。 第3実施形態におけるシンボル列の一例を示す図。 第3実施形態に係る圧縮装置及び伸張装置の構成の一例を示す図。 第3実施形態に係る圧縮装置に含まれる並び替え部の動作について説明するための図。 第3実施形態に係る伸張装置に含まれる通知部の動作について説明するための図。 第3実施形態においてチャネルの数が8つである場合の並び替え部の動作について説明するための図。 第3実施形態においてチャネルの数が8つである場合の通知部の動作について説明するための図。
以下、図面を参照して、各実施形態について説明する。
(第1実施形態)
まず、第1実施形態について説明する。図1は、第1実施形態に係る圧縮装置及び伸張装置が適用されるメモリシステムのハードウェア構成の一例を概略的に示すブロック図である。
図1に示すメモリシステム1は、不揮発性メモリにデータを書き込み、当該不揮発性メモリからデータを読み出すように構成された半導体ストレージデバイスである。本実施形態においては、メモリシステム1が例えばソリッドステートドライブ(SSD:Solid State Drive)として実現されているものとして説明するが、当該メモリシステム1は他のストレージデバイスであってもよい。
メモリシステム1は、例えばPCI Expressバスのようなシステムバスを介してホストに接続可能に構成されている。図1に示すように、メモリシステム1は、コントローラ2、NAND型フラッシュメモリ3及びDRAM(Dynamic Random Access Memory)4等を備える。
コントローラ2は、メモリシステム1の動作を司る機能を有する。コントローラ2は、ホストインタフェース(I/F)2a、CPU2b、NANDインタフェース(I/F)2c及びDRAMインタフェース(I/F)2d等を含む。なお、ホストインタフェース2a、CPU2b、NANDインタフェース(I/F)2c及びDRAMインタフェース2dは、例えばバスを介して互いに接続されている。
ホストインタフェース2aは、メモリシステム1の外部に配置されるホストとの通信を実行するように構成されたホストインタフェース回路である。このホストインタフェース2aは、例えばPCI Expressコントローラ等であってもよい。ホストインタフェース2aは、ホストから様々なコマンド(要求)を受信する。
CPU2bは、ホストインタフェース2a、NANDインタフェース2c及びDRAMインタフェース2dを制御するように構成されたプロセッサである。CPU2bは、メモリシステム1の電源オンに応答してNAND型フラッシュメモリ3または図示しないROM(Rea Only Memory)から制御プログラム(ファームウェア)をDRAM4にロードし、当該制御プログラムを実行することによって様々な処理を行う。具体的には、CPU2bは、ホストから発行される様々なコマンドに対する処理を実行する。なお、ホストから発行されるコマンドに対する処理の一部または全部は、コントローラ2内の専用のハードウェアによって実行されてもよい。
NANDインタフェース2cは、CPU2bの制御の下、NAND型フラッシュメモリ3を制御するように構成されたメモリ制御回路である。
更に、コントローラ2は、圧縮装置2e(エンコーダ)及び伸張装置2f(デコーダ)を備える。
圧縮装置2eは、例えばホストから書き込みコマンドが発行された場合に、当該書き込みコマンドにおいて指定されているデータ(書き込み込データ)を入力し、当該データを圧縮するために用いられる。なお、本実施形態に係る圧縮装置2eは少なくともエントロピー符号化を行うように構成されていればよいが、本実施形態においては、例えば辞書式符号化とエントロピー符号化とを組み合わせた圧縮アルゴリズムによりデータを圧縮する方式が採用されているものとする。圧縮装置2eにおいて圧縮されたデータ(以下、圧縮データと表記)は、圧縮装置2eから出力された後、誤り訂正処理やランダマイズ処理等の所定の処理が実行される。CPU2bは、圧縮データに対して所定の処理が実行されたデータをNANDインタフェース2c経由でNAND型フラッシュメモリ3に書き込む。すなわち、CPU2bは、圧縮装置2eから出力された圧縮データに基づくデータをNAND型フラッシュメモリ3に書き込む。
CPU2bは、例えばホストからホストインタフェース2a経由で受信した読み出しコマンドに基づいてNAND型フラッシュメモリ3から圧縮データを読み出す際に、当該読み出しコマンドに基づくデータをNANDインタフェース2c経由でNAND型フラッシュメモリ3から読み出す。NAND型フラッシュメモリ3から読み出されたデータは、当該データに対する誤り訂正処理、ランダマイズの解除処理等の所定の処理が実行された後、圧縮データとしてCPU2bにより伸張装置2fへ入力される。伸張装置2fは、入力された圧縮データを伸張する。すなわち、伸張装置2fは、NAND型フラッシュメモリ3から読み出されたデータに基づく圧縮データを伸張する。
NAND型フラッシュメモリ3は、不揮発性メモリであり、マトリクス状に配置された複数のメモリセルを含むメモリセルアレイを有する。NAND型フラッシュメモリ3は、2次元構造のNAND型フラシュメモリであってもよいし、3次元構造のNAND型フラッシュメモリであってもよい。
NAND型フラッシュメモリ3のメモリセルアレイは、複数のブロックBLK0~BLKm-1を含む。ブロックBLK0~BLKm-1の各々は多数のページ(ここでは、ページP0~Pn-1)によって構成される。ブロックBLK0~BLKm-1は、消去単位として機能する。ページP0~Pn-1の各々は、同一ワード繊維接続された複数のメモリセルを含む。ページP0~Pn-1は、データ書き込み動作及びデータ読み出し動作の単位である。
ここではメモリシステム1がNAND型フラッシュメモリ3を備えるものとして説明したが、当該メモリシステム1は、不揮発性メモリとして例えばPCM(Phase Change Memory)またはMRAM(Magnetoresistive Random Access Memory)等を備える構成であってもよい。
DRAM4は、揮発性メモリであり、例えばコントローラ2(CPU2b)において実行されるソフトウェアの一時的なバッファまたはNAND型フラッシュメモリ3に対する一時的なバッファ等として機能する。
ここではメモリシステム1がDRAM4を備えるものとして説明したが、当該メモリシステム1は、揮発性メモリとして例えばSRAM(Static Random Access Memory)等を備える構成であってもよい。
なお、図1においては圧縮装置2e及び伸張装置2fがコントローラ2に組み込まれているものとして説明したが、当該圧縮装置2e及び伸張装置2fは、コントローラ2の外部に設けられていてもよいし、メモリシステム1の外部に設けられていてもよい。
更に、本実施形態においては圧縮装置2e及び伸張装置2fがハードウェアによって実現されるものとして説明するが、当該圧縮装置2e及び伸張装置2fの一部または全ては、ソフトウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせによって実現されてもよい。
以下、図2を参照して、図1に示す圧縮装置2e及び伸張装置2fの構成の一例について説明する。
ここで、本実施形態において、圧縮装置2eは、上記したように辞書式符号化とエントロピー符号化とを組み合わせた圧縮アルゴリズムにより、当該圧縮装置2eに入力された書き込みデータ(以下、非圧縮データと表記)を圧縮するように構成されているものとする。
この場合、圧縮装置2eは、非圧縮データに対して辞書式符号化を行い、当該辞書式符号化の結果に対してエントロピー符号化を行うことによって、非圧縮データを圧縮した圧縮データを出力する。
なお、辞書式符号化とは、辞書式符号化の対象となるデータ(以下、辞書式符号化対象データと表記)を、当該辞書式符号化対象データよりも過去のデータの相対参照に変換する符号化手法である。
具体的には、辞書式符号化においては、過去のデータを格納しておくバッファ(以下、ヒストリバッファと表記)を用意し、辞書式符号化対象データと一致する過去のデータが当該ヒストリバッファから検索される。
辞書式符号化対象データと一致する過去のデータがヒストリバッファ内に存在しない場合には、当該辞書式符号化対象データを示す情報(以下、リテラル情報と表記)が辞書式符号化の結果として出力される。
一方、辞書式符号化対象データと一致する過去のデータがヒストリバッファ内に存在する場合には、辞書式符号化対象データとヒストリバッファ内に存在する過去のデータとが一致する長さを示す情報(以下、マッチ長情報と表記)及び当該過去のデータが格納されているヒストリバッファ内の位置(つまり、ヒストリバッファ内の過去データまでの距離)を示す情報(以下、距離情報と表記)の組が辞書式符号化の結果として出力される。
エントロピー符号化とは、エントロピー符号化の対象となるデータ(以下、エントロピー符号化対象データと表記)を当該エントロピー符号化対象データの出現頻度に応じた符号長の符号語に変換する符号化手法である。エントロピー符号化によれば、エントロピー符号化対象データの出現頻度の違いを利用して、異なる符号長の符号語を当該エントロピー符号化対象データに割り当てることで、全体として符号量(データ量)を削減することができる。
なお、エントロピー符号化としては、例えばハフマン符号化が用いられる。エントロピー符号化としてハフマン符号化が用いられる場合、当該ハフマン符号化は、予め構築された符号木を用いて符号化を行う静的ハフマン符号化であってもよいし、ハフマン符号化の対象となるデータにより符号木を変更する動的ハフマン符号化であってもよい。エントロピー符号化としては、例えば算術符号化等が用いられても構わない。
上記したように圧縮装置2eが辞書式符号化の結果に対してエントロピー符号化を行う構成である場合、当該圧縮装置2eにおいては、例えば当該圧縮装置2eに入力された非圧縮データから部分的に切り出されたデータの各々を辞書式符号化対象データとして辞書式符号化を行い、当該辞書式符号化の結果であるリテラル情報、マッチ長情報及び距離情報の各々をエントロピー符号化対象データとしてエントロピー符号化を行う。
なお、エントロピー符号化において上記したエントロピー符号化対象データ(例えば、リテラル情報、マッチ長情報及び距離情報)はシンボルと称され、エントロピー符号化を行う場合には、上記した辞書式符号化の結果として順次配置されたリテラル情報、マッチ長情報及び距離情報を含むシンボル列が入力される。
本実施形態においては辞書式符号化の結果(リテラル情報、マッチ長情報及び距離情報)をシンボルとして入力してエントロピー符号化を行うものとして説明するが、本実施形態に係る圧縮装置2eは、他の形式の情報をシンボルとして入力してエントロピー符号化を行うように構成されていてもよい。
図2に示すように、圧縮装置2eは、インターリーブ部11、第1符号化部12、第1パット生成部13、第1パケット要求生成部14、第2符号化部15、第2パケット生成部16、第2パケット要求生成部17及びマルチプレクサ18を含む。なお、図2においては、圧縮装置2eにおいてエントロピー符号化を行う構成についてのみ示されており、上記した辞書式符号化を行う構成については省略されている。
ここで、本実施形態における圧縮装置2eにおいて行われるエントロピー符号化においては、後述する伸張装置2fにおける高スループットのエントロピー復号化(つまり、圧縮データの伸張)を実現するためにインターリーブ格納方式を採用する。このインターリーブ格納方式では、上記したシンボル列に対する符号化を行う際に当該シンボル列に含まれる複数のシンボルを複数のチャネルに振り分け、当該複数のチャネルの各々で符号化が行われた結果(つまり、符号語)からパケットを生成し、当該パケットを含む圧縮ストリームを圧縮データとして出力する。
このようなインターリーブ格納方式によれば、後述する伸張装置2fにおいても複数のチャネルで並列に復号化が行われるため、高スループットのエントロピー復号化を実現することが可能である。
インターリーブ部11は、上記したシンボル列を入力し、当該シンボル列を複数のチャネルに振り分ける(つまり、シンボル列を複数のチャネルに分割する)。この場合、シンボル列に含まれる複数のシンボルの各々は、複数のチャネルの1つに振り分けられる。
ここでは、インターリーブ部11がシンボル列を2つのチャネル(以下、第1及び第2チャネルと表記)に振り分けるものとする。図2に示す例では、第1符号化部12、第1パケット生成部及び第1パケット要求生成部14が第1チャネルに相当し、第2符号化部15、第2パケット生成部16及び第2パケット要求生成部17が第2チャネルに相当する。
なお、図2に示す例では、シンボルS0~S7が順に配置されたシンボル列がインターリーブ部11に入力され、当該シンボル列のうちのシンボルS0、S2、S4及びS6が第1チャネルに振り分けられ、シンボルS1、S3、S5及びS7が第2チャネルに振り分けられている。ここでは、シンボル列における偶数番目のシンボルが第1チャネルに、奇数番目のシンボルが第2チャネルに振り分けられているが、シンボル列は他のルールに従って振り分けられてもよい。
以下、インターリーブ部11に入力されたシンボル列のうち第1チャネルに振り分けられる複数のシンボルを第1サブストリーム、第2チャネルに振り分けられる複数のシンボルを第2サブストリームと称する。
第1符号化部12は、第1チャネルに振り分けられた第1サブストリームを入力し、当該第1サブストリームを構成する複数のシンボルの各々に対してエントロピー符号化を行う。これにより、第1サブストリームを構成する複数のシンボルの各々は、符号語に変換される。なお、エントロピー符号化は可変長符号化であるため、第1サブストリームを構成する複数のシンボルから変換される複数の符号語の符号長の各々は、それぞれ異なっている。第1符号化部12は、第1サブストリームを構成する複数のシンボルから変換された複数の符号語を第1パケット生成部13に出力するとともに、当該複数の符号語の各々の符号長を第1パケット要求生成部14に出力する。
第1パケット生成部13は、第1符号化部12から出力された複数の符号語をバッファし、当該バッファされた複数の符号語を含むパケットを生成する。第1パケット生成部13は、生成されたパケットをマルチプレクサ18に出力する。
第1パケット要求生成部14は、例えば第1符号化部12から出力された複数の符号語の各々の符号長に基づいて、圧縮ストリームに第1パケット生成部13によって生成されたパケットを所定の順番で配置するためのパケット要求を生成する。なお、第1パケット要求生成部14は、伸張装置2fにおける第1及び第2チャネルでエントロピー復号化が行われる場合に、第1パケット要求生成部22において生成されるパケット要求に応じて取得される順にパケットが圧縮ストリーム中に配置されるように、パケット要求を生成する。第1パケット要求生成部14は、生成されたパケット要求をマルチプレクサ18に出力する。
第2符号化部15は、第2チャネルに振り分けられた第2サブストリームを入力し、当該第2サブストリームを構成する複数のシンボルの各々に対してエントロピー符号化を行う。これにより、第2サブストリームを構成する複数のシンボルの各々は、符号語に変換される。なお、上記したようにエントロピー符号化は可変長符号化であるため、第2サブストリームを構成する複数のシンボルから変換される複数の符号語の符号長の各々は、それぞれ異なっている。第2符号化部15は、第2サブストリームを構成する複数のシンボルから変換された複数の符号語を第2パケット生成部16に出力するとともに、当該複数の符号語の各々の符号長を第2パケット要求生成部17に出力する。
第2パケット生成部16は、第2符号化部15から出力された複数の符号語をバッファし、当該バッファされた複数の符号語を含むパケットを生成する。第2パケット生成部16は、生成されたパケットをマルチプレクサ18に出力する。
第2パケット要求生成部17は、第2符号化部15から出力された複数の符号語の各々の符号長に基づいて、圧縮ストリームに第2パケット生成部16によって生成されたパケットを所定の順番で配置するためのパケット要求を生成する。なお、第2パケット要求生成部17は、伸張装置2fにおける第1及び第2チャネルでエントロピー復号化が行われる場合に、第2パケット要求生成部25において生成されるパケット要求に応じて取得される順にパケットが圧縮ストリーム中に配置されるように、パケット要求を生成する。第2パケット要求生成部17は、生成されたパケット要求をマルチプレクサ18に出力する。
なお、上記した圧縮装置2eにおける第1チャネル(第1符号化部12、第1パケット生成部13及び第1パケット要求生成部14)及び第2チャネル(第2符号化部15、第2パケット生成部16及び第2パケット要求生成部17)は、サイクルと称される同一の処理単位に従って並列に動作する。
マルチプレクサ18は、第1パケット要求生成部14から出力されたパケット要求に基づいて第1パケット生成部13から出力されたパケットを選択し、第2パケット要求生成部17から出力されたパケット要求に基づいて第2パケット生成部16から出力されたパケットを選択し、当該選択されたパケットが順次配置された(つまり、当該パケットを含む)圧縮ストリームを圧縮データとして出力する。
なお、マルチプレクサ18から出力された圧縮ストリームは、上記した誤り訂正処理やランダマイズ処理等の所定の処理が実行された後にNAND型フラッシュメモリ3に書き込まれる。
図2に示すように、伸張装置2fは、デマルチプレクサ21、第1パケット要求生成部22、第1パケットバッファ23、第1復号化部24、第2パケット要求生成部25、第2パケットバッファ26、第2復号化部27及びデインターリーブ部28を含む。
なお、圧縮装置2eが辞書式符号化とエントロピー符号化とを組み合わせた圧縮アルゴリズムにより非圧縮データを圧縮する場合、伸張装置2fにおいては、圧縮データに対するエントロピー復号化及び当該エントロピー復号化の結果に対する辞書式復号化を行う必要があるが、図2においては、伸張装置2fにおいてエントロピー復号化を行う構成についてのみ示されており、当該辞書式復号化を行う構成については省略されている。
デマルチプレクサ21は、例えばNAND型フラッシュメモリ3から読み出された読み出しデータに対して誤り訂正処理やランダマイズの解除処理等の所定の処理が実行された後の圧縮ストリーム(圧縮データ)を入力する。デマルチプレクサ21は、入力された圧縮ストリームの先頭からパケットを順次切り出し、当該切り出されたパケットを第1チャネル及び第2チャネルに出力する。
なお、図2に示す例では、第1パケット要求生成部22、第1パケットバッファ23及び第1復号化部24が第1チャネルに相当し、第2パケット要求生成部25、第2パケットバッファ26及び第2復号化部27が第2チャネルに相当する。
第1パケット要求生成部22は、第1パケットバッファ23の状態等に基づいて、パケット要求を生成する。第1パケット要求生成部22は、生成されたパケット要求をデマルチプレクサ21に出力する。
この場合、第1パケット要求生成部22によって生成されたパケット要求に応じてデマルチプレクサ21から出力されたパケットが第1パケットバッファ23に格納される。
第1復号化部24は、第1パケットバッファ23に格納されたパケット(に含まれる符号語)に対するエントロピー復号化を行う。これにより、パケットに含まれる符号語は、シンボルに変換される。第1復号化部24は、パケットに含まれる符号語から変換されたシンボルをデインターリーブ部28に出力する。
第2パケット要求生成部25は、第2パケットバッファ26の状態等に基づいて、パケット要求を生成する。第2パケット要求生成部25は、生成されたパケット要求をデマルチプレクサ21に出力する。
この場合、第2パケット要求生成部25によって生成されたパケット要求に応じてデマルチプレクサ21から出力されたパケットが第2パケットバッファ26に格納される。
第2復号化部27は、第2パケットバッファ26に格納されたパケット(に含まれる符号語)に対するエントロピー復号化を行う。これにより、パケットに含まれる符号語は、シンボルに変換される。第2復号化部27は、パケットに含まれる符号語から変換されたシンボルをデインターリーブ部28に出力する。
なお、上記した伸張装置2fにおける第1チャネル(第1符号化部12、第1パケット生成部13及び第1パケット要求生成部14)及び第2チャネル(第2符号化部15、第2パケット生成部16及び第2パケット要求生成部17)は、サイクルと称される同一の処理単位に従って並列に動作する。
デインターリーブ部28は、第1復号化部24から出力されたシンボル及び第2復号化部27から出力されたシンボルを含むシンボル列を出力する。
以下、本実施形態の比較例に係る圧縮装置及び伸張装置の動作の一例について説明する。ここでは、本実施形態の比較例に係る圧縮装置及び伸張装置は、上記した図2と同様の構成を有しているものとして説明する。
ただし、本実施形態に係る圧縮装置2eと本実施形態の比較例に係る圧縮装置との説明を明確に区別するために、本実施形態の比較例に係る圧縮装置に含まれるインターリーブ部、第1符号化部、第1パット生成部、第1パケット要求生成部、第2符号化部、第2パケット生成部、第2パケット要求生成部及びマルチプレクサについては、便宜的に、インターリーブ部11´、第1符号化部12´、第1パット生成部13´、第1パケット要求生成部14´、第2符号化部15´、第2パケット生成部16´、第2パケット要求生成部17´及びマルチプレクサ18´として説明する。
本実施形態の比較例に係る伸張装置についても同様に、当該伸張装置に含まれるデマルチプレクサ、第1パケット要求生成部、第1パケットバッファ、第1復号化部、第2パケット要求生成部、第2パケットバッファ、第2復号化部及びデインターリーブ部については、便宜的に、デマルチプレクサ21´、第1パケット要求生成部22´、第1パケットバッファ23´、第1復号化部24´、第2パケット要求生成部25´、第2パケットバッファ26´、第2復号化部27´及びデインターリーブ部28´として説明する。
更に、本実施形態の比較例に係る圧縮装置及び伸張装置については、便宜的に、圧縮装置2e´及び伸張装置2f´として説明する。
まず、インターリーブ部11´にシンボル列S0~S7が入力され、当該シンボル列S0~S7が第1サブストリーム(シンボルS0、S2、S4及びS6)と第2サブストリーム(シンボルS1、S3、S5及びS7)に分割されたものとする。以下の説明において、1つのシンボルは、例えば16bitで表されるものとする。
インターリーブ部11´によって分割された第1サブストリームは第1チャネル(第1符号化部12´)に振り分けられ、第2サブストリームは第2チャネル(第2符号化部15´)に振り分けられる。
第1チャネルにおいて、第1符号化部12´は、インターリーブ部11´によって振り分けられた第1サブストリームを入力し、当該第1サブストリームを構成する複数のシンボルの各々を符号語に変換する。
ここで、図3は、第1サブストリーム(を構成する複数のシンボル)から変換された複数の符号語の一例を示す。図3に示す例では、第1サブストリームを構成するシンボルS0、S2、S4及びS6が符号語S0´、S2´、S4´及びS6´に変換されたことが示されている。
上記したように第1サブストリームを構成する各シンボルは16bitで表現されているが、シンボルS0から変換された符号語S0´は、例えば5bitであるものとする。同様に、シンボルS2から変換された符号語S2´は例えば6bitであり、シンボルS4から変換された符号語S4´は例えば13bitであり、シンボルS6から変換された符号語S6´は例えば14bitであるものとする。
第1チャネルにおいては、上記したように第1サブストリームから変換された複数の符号語を含むパケットが第1パケット生成部13´によって生成され、当該パケットがマルチプレクサ18´に出力される。
一方、第2チャネルにおいて、第2符号化部15´は、インターリーブ部11´によって振り分けられた第2サブストリームを入力し、当該第2サブストリームを構成する複数のシンボルの各々を符号語に変換する。
ここで、図4は、第2サブストリーム(を構成する複数のシンボル)から変換された複数の符号語の一例を示す。図4に示す例では、第2サブストリームを構成するシンボルS1、S3、S5及びS7が符号語S1´、S3´、S5´及びS7´に変換されたことが示されている。
上記したように第2サブストリームを構成する各シンボルは16bitで表現されているが、シンボルS1から変換された符号語S1´は、例えば15bitであるものとする。同様に、シンボルS3から変換された符号語S3´は例えば10bitであり、シンボルS5から変換された符号語S5´は例えば14bitであり、シンボルS7から変換された符号語S7´は例えば14bitであるものとする。
第2チャネルにおいては、上記したように第2サブストリームから変換された複数の符号語を含むパケットが第2パケット生成部16´によって生成され、当該パケットがマルチプレクサ18´に出力される。
なお、上記した第1パケット生成部13´及び第2パケット生成部16´は、例えば16bitの固定長のパケットを生成するものとする。
次に、マルチプレクサ18´は、第1パケット要求生成部14´及び第2パケット要求生成部17´によって生成されるパケット要求に従って第1パケット生成部13´及び第2パケット生成部16´によって生成されたパケットを選択し、当該選択されたパケットが順次配置された圧縮ストリームを生成する。
ここで、本実施形態の比較例に係る伸張装置2f´側においても、圧縮装置2e´側と同様に第1及び第2チャネルで並列にエントロピー復号化が行われるが、当該エントロピー符号化は、伸張装置2f´に含まれる第1パケット要求生成部22´によって生成されるパケット要求及び第2パケット要求生成部25´によって生成されるパケット要求に従って第1パケットバッファ23´及び第2パケットバッファ26´に順次格納されるパケット(に含まれる符号語)に対して行われる。
このため、圧縮装置2e´に含まれる第1パケット要求生成部14´及び第2パケット要求生成部17´は、パケット要求を生成する第1パケット要求生成部22´及び第2パケット要求生成部25´の動作を再現する(つまり、第1パケット要求生成部22´及び第2パケット要求生成部25´によって生成されるパケット要求を再現する)ようにパケット要求を生成する。なお、伸張装置2f´に含まれる第1パケット要求生成部22´及び第2パケット要求生成部25´は、エントロピー復号化が行われる際の上記した第1パケットバッファ23´及び第2パケットバッファ26´の状態に基づいてパケット要求を生成する。
これにより、マルチプレクサ18´においては、伸張装置2f´における第1及び第2チャネルでパケットが取得される順にパケットが配置された圧縮ストリームを生成することができる。この場合、圧縮装置2e´における第1チャネルで第1サブストリームから変換された複数の符号語(を含むパケット)が伸張装置2f´における第1チャネルでエントロピー復号化され、圧縮装置2eにおける第2チャネルで第2サブストリームから変換された複数の符号語(を含むパケット)が伸張装置2f´における第2チャネルでエントロピー復号化されるため、伸張装置2f´は、圧縮ストリームから正しいシンボル列を得ることができる。
以下、圧縮装置2e´に含まれる第1パケット要求生成部14によって動作が再現される伸張装置2f´に含まれる第1パケット要求生成部22´(つまり、伸張装置2f´における第1チャネル)の動作の概要について説明する。
伸張装置2f´における第1チャネルは、例えば第1パケットバッファ23´に格納されているパケットが枯渇しないようにパケット要求を生成(デマルチプレクサ21´にパケットを要求)し、当該パケットに対するエントロピー復号化を行うように動作する。具体的には、第1パケットバッファ23´に格納されているパケットの残量がエントロピー符号化における最大符号長を下回っている場合にパケット要求を生成し、当該パケットの残量が当該最大符号長以上である場合に当該パケットに含まれる符号語に対してエントロピー復号化を行うように動作するものとする。このような第1チャネルにおける動作はサイクル毎に行われるが、パケットの残量が最大符号長以上である場合にエントロピー復号化を行うことにより、例えばパケットに含まれる符号語の符号長が最大符号長であったとしても、当該符号語に対する復号化を単一のサイクルで効率的に行うことができる。
図5は、伸張装置2f´における第1チャネルの動作の具体例を示している。ここでは、圧縮ストリームに含まれる各パケットは16bitの固定長であり、伸張装置2f´における第1チャネルの処理が開始される時点で第1パケットバッファ23´は空(つまり、パケットの残量は0)であるものとする。また、上記したように各シンボルは16bitで表現されており、エントロピー符号化における最大符号長は16bitであるものとする。
まず、上記したように第1パケットバッファ23´に格納されているパケットの残量は0であり、最大符号長である16bitを下回っているため、第1パケット要求生成部22´は、サイクルC0においてパケット要求を生成し、当該パケット要求をデマルチプレクサ21´に出力する。
この場合、サイクルC0の次のサイクルC1においては、当該サイクルC0で第1パケット要求生成部22´から出力されたパケット要求に応じてデマルチプレクサ21´から出力されたパケット(つまり、圧縮ストリームから切り出されたパケット)が第1パケットバッファ23´に格納される。
これにより、第1パケットバッファ23´に格納されたパケットの残量は、16bitであり、最大符号長である16bit以上となる。このため、第1復号化部24´は、第1パケットバッファ23´に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。上記した図3において説明したように圧縮装置2e´における第1チャネルでシンボルS0、S2、S4及びS6が符号語S0´、S2´、S4´及びS6´に変換されている場合、第1復号化部24´は、サイクルC1において第1パケットバッファ23´に格納されているパケットに含まれる符号語S0´をシンボルS0に変換する。このように伸張装置2f´の各チャネルにおいては、1サイクルで1つの符号語を1つのシンボルに変換することができるものとする。
シンボルS0に変換された符号語S0´は5bitであるため、第1パケットバッファ23´に格納されているパケット(16bit)のうちの5bitが処理され、当該第1パケットバッファ23´に格納されているパケットの残量は11bitとなる。
この場合、第1パケットバッファ23´に格納されているパケットの残量は最大符号長である16bitを下回っているため、第1パケット要求生成部22´は、パケット要求を生成し、当該パケット要求をデマルチプレクサ21´に出力する。
サイクルC1の次のサイクルC2においては、当該サイクルC1で第1パケット要求生成部22´から出力されたパケット要求に応じてデマルチプレクサ21´から出力されたパケットが第1パケットバッファ23´に格納される。
これにより、第1パケットバッファ23´に格納されているパケットの残量は、27bit(サイクルC1におけるパケットの残量である11bit+新たに第1パケットバッファ23´に格納されたパケットの16bit)であり、最大符号長である16bit以上となる。このため、第1復号化部24´は、第1パケットバッファ23´に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC1においてシンボルS0に変換された符号語S0´の次の符号語S2´がシンボルS2に変換される。符号語S2´は6bitであるため、第1パケットバッファ23´に格納されているパケットの残量(27bit)のうちの6bitが処理され、当該第1パケットバッファ23´に格納されているパケットの残量は21bitとなる。
この場合、第1パケットバッファ23´に格納されたパケットの残量は最大符号長である16bit以上であるため、第1パケット要求生成部22´は、サイクルC2ではパケット要求を生成しない。
サイクルC2の次のサイクルC3において、第1パケットバッファ23´に格納されているパケットの残量は、21bitであり、最大符号長である16bit以上である。このため、第1復号化部24´は、第1パケットバッファ23´に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC2においてシンボルS2に変換された符号語S2´の次の符号語S4´がシンボルS4に変換される。符号語S4´は13bitであるため、第1パケットバッファ23´に格納されたパケットの残量(21bit)のうちの13bitが処理され、当該第1パケットバッファ23´に格納されているパケットの残量は8bitとなる。
この場合、第1パケットバッファ23´に格納されているパケットの残量は最大符号長である16bitを下回っているため、第1パケット要求生成部22´は、パケット要求を生成し、当該パケット要求をデマルチプレクサ21´に出力する。
サイクルC3の次のサイクルC4においては、当該サイクルC3で第1パケット要求生成部22´から出力されたパケット要求に応じてデマルチプレクサ21´から出力されたパケットが第1パケットバッファ23´に格納される。
これにより、第1パケットバッファ23´に格納されているパケットの残量は、24bit(サイクルC3におけるパケットの残量である8bit+新たに第1パケットバッファ23´に格納されたパケットの16bit)であり、最大符号長である16bit以上となる。このため、第1復号化部24´は、第1パケットバッファ23´に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC3においてシンボルS4に変換された符号語S4´の次の符号語S6´がシンボルS6に変換される。符号語S6´は14bitであるため、第1パケットバッファ23´に格納されているパケットの残量(24bit)のうちの14bitが処理され、当該第1パケットバッファ23´に格納されているパケットの残量は10bitとなる。
この場合、第1パケットバッファ23´に格納されているパケットの残量は最大符号長である16bitを下回っているため、第1パケット要求生成部22´は、パケット要求を生成し、当該パケット要求をデマルチプレクサ21´に出力する。
本実施形態の比較例に係る伸張装置2f´においては、第1パケット要求生成部22´が上記したようにパケット要求を生成することにより、圧縮装置2e´から出力された圧縮ストリームに含まれるパケット(に含まれる複数の符号語)に対するエントロピー復号化が順次行われるものとする。
ここでは、伸張装置2f´に含まれる第1パケット要求生成部22´(伸張装置2f´における第1チャネル)の動作について説明したが、当該伸張装置2f´に含まれる第2パケット要求生成部25´(つまり、伸張装置2f´における第2チャネル)においても同様の動作が行われる。
伸張装置2f´における第2チャネルは、例えば第2パケットバッファ26´に格納されているパケットが枯渇しないようにパケット要求を生成(デマルチプレクサ21´にパケットを要求)し、当該パケットに対するエントロピー復号化行うように動作する。具体的には、第2パケットバッファ26´に格納されているパケットの残量がエントロピー符号化における最大符号長を下回っている場合にパケット要求を生成し、当該パケットの残量が当該最大符号長以上である場合に当該パケットに含まれる符号語に対してエントロピー復号化を行うように動作するものとする。なお、このような第2チャネルにおける動作は、上記した第1チャネルと同様に、サイクル毎に行われる。
図6は、伸張装置2f´における第2チャネルの動作の具体例を示している。上記したように圧縮ストリームに含まれる各パケットは16bitの固定長であり、伸張装置2f´における第2チャネルの処理が開始される時点で第2パケットバッファ26´は空(つまり、パケットの残量は0)であるものとする。また、エントロピー符号化における最大符号長は、上記したように16bitであるものとする。
まず、上記したように第2パケットバッファ26´に格納されているパケットの残量は0であり、最大符号長である16bitを下回っているため、第2パケット要求生成部25´は、サイクルC0においてパケット要求を生成し、当該パケット要求をデマルチプレクサ21´に出力する。
この場合、サイクルC0の次のサイクルC1においては、サイクルC0で第2パケット要求生成部25´から出力されたパケット要求に応じてデマルチプレクサ21´から出力されたパケット(つまり、圧縮ストリームから切り出されたパケット)が第2パケットバッファ26´に格納される。
これにより、第2パケットバッファ26´に格納されているパケットの残量は、16bitであり、最大符号長である16bit以上となる。このため、第2復号化部27´は、第2パケットバッファ26´に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。上記した図4において説明したように圧縮装置2e´における第2チャネルでシンボルS1、S3、S5及びS7が符号語S1´、S3´、S5´及びS7´に変換されている場合、第2復号化部27´は、サイクルC1において第2パケットバッファ26´に格納されているパケットに含まれる符号語S1´をシンボルS1に変換する。シンボルS1に変換された符号語S1´は15bitであるため、第2パケットバッファ26´に格納されているパケット(16bit)のうちの15ビットが処理され、当該第2パケットバッファ26´に格納されているパケットの残量は1bitとなる。
この場合、第2パケットバッファ26´に格納されているパケットの残量は最大符号長である16bitを下回っているため、第2パケット要求生成部25´は、パケット要求を生成し、当該パケット要求をデマルチプレクサ21´に出力する。
サイクルC1の次のサイクルC2においては、当該サイクルC1で第2パケット要求生成部25´から出力されたパケット要求に応じてデマルチプレクサ21´から出力されたパケットが第2パケットバッファ26´に格納される。
これにより、第2パケットバッファ26´に格納されているパケットの残量は、17bit(サイクルC1におけるパケットの残量である1ビット+新たに第2パケットバッファ26´に格納されたパケットの16bit)であり、最大符号長である16bit以上となる。このため、第2復号化部27´は、第2パケットバッファ26´に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC1においてシンボルS1に変換された符号語S1´の次の符号語S3´がシンボルS3に変換される。符号語S3´は10ビットであるため、第2パケットバッファ26´に格納されているパケットの残量(17bit)のうちの10ビットが処理され、当該第2パケットバッファ26´に格納されているパケットの残量は7bitとなる。
この場合、第2パケットバッファ26´に格納されたパケットの残量は最大符号長である16bitを下回っているため、第2パケット要求生成部25´は、パケット要求を生成し、当該パケット要求をデマルチプレクサ21´に出力する。
サイクルC2の次のサイクルC3においては、当該サイクルC2で第2パケット要求生成部25´から出力されたパケット要求に応じてデマルチプレクサ21´から出力されたパケットが第2パケットバッファ26´に格納される。
これにより、第2パケットバッファ26´に格納されているパケットの残量は、23bit(サイクルC2におけるパケットの残量である7bit+新たに第2パケットバッファ26´に格納されたパケットの16bit)であり、最大符号長である16bit以上となる。このため、第2復号化部27´は、第2パケットバッファ26´に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC2においてシンボルS3に変換された符号語S3´の次の符号語S5´がシンボルS5に変換される。符号語S5´は14bitであるため、第2パケットバッファ26´に格納されているパケットの残量(23bit)のうちの14bitが処理され、当該第2パケットバッファ26´に格納されているパケットの残量は9bitとなる。
この場合、第2パケットバッファ26´に格納されたパケットの残量は最大符号長である16bitを下回っているため、第2パケット要求生成部25´は、パケット要求を生成し、当該パケット要求をデマルチプレクサ21´に出力する。
サイクルC3の次のサイクルC4においては、当該サイクルC3で第2パケット要求生成部25´から出力されたパケット要求に応じてデマルチプレクサ21´から出力されたパケットが第2パケットバッファ26´に格納される。
これにより、第2パケットバッファ26´に格納されているパケットの残量は、25bit(サイクルC3におけるパケットの残量である9bit+新たに第2パケットバッファ26´に格納されたパケットの16bit)であり、最大符号長である16bit以上となる。このため、第2復号化部27´は、第2パケットバッファ26´に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC3においてシンボルS5に変換された符号語S5´の次の符号語S7´がシンボルS7に変換される。符号語S7´は14bitであるため、第2パケットバッファ26´に格納されているパケットの残量(25bit)のうちの14bitが処理され、当該第2パケットバッファ26´に格納されているパケットの残量は11bitとなる。
この場合、第2パケットバッファ26´に格納されているパケットの残量は最大符号長である16bitを下回っているため、第2パケット要求生成部25´は、パケット要求を生成し、当該パケット要求をデマルチプレクサ21´に出力する。
本実施形態の比較例に係る伸張装置2f´においては、第2パケット要求生成部25´が上記したようにパケット要求を生成することにより、圧縮装置2e´から出力された圧縮ストリームに含まれるパケット(に含まれる複数の符号語)に対するエントロピー復号化が順次行われるものとする。
ここで、本実施形態の比較例においては、伸張装置2f´における第1チャネルで符号語S0´、S2´、S4´及びS6´に対するエントロピー復号化が行われ、伸張装置2f´における第2チャネルで符号語S1´、S3´、S5´及びS7´に対するエントロピー復号化が行われるが、このような動作を実現するためには、符号語S0´、S2´、S4´及びS6´を含むパケット(つまり、圧縮装置2e´における第1チャネルで生成されたパケット)がデマルチプレクサ21´から第1チャネル(第1パケットバッファ23´)に出力され、符号語S1´、S3´、S5´及びS7´を含むパケット(つまり、圧縮装置2e´における第2チャネルで生成されたパケット)がデマルチプレクサ21´から第2チャネル(第2パケットバッファ26´)に出力される必要がある。
しかしながら、デマルチプレクサ21´は、圧縮ストリームに含まれるパケットの各々が圧縮装置2e´における第1チャネルで生成されたパケットであるか第2チャネルで生成されたパケットであるかを把握しておらず、第1パケット要求生成部22´及び第2パケット要求生成部25´から出力されるパケット要求に応じて圧縮ストリームから切り出されたパケットを第1及び第2チャネルに出力するように構成されている。
このため、上記したように圧縮装置2e´における第1チャネルで生成されたパケットを伸張装置2f´における第1チャネルで処理させ、圧縮装置2e´における第2チャネルで生成されたパケットを伸張装置2f´における第2チャネルで処理させるためには、圧縮装置2e´(マルチプレクサ18´)が伸張装置2f´における第1及び第2チャネルで処理するパケットの順番を考慮した圧縮ストリーム(つまり、伸張装置2f´における第1及び第2チャネルの各々が処理する順にパケットが配置された圧縮ストリーム)を生成しておくことが好ましい。これによれば、伸張装置2f´における効率的なエントロピー復号化を実現することができる。
この場合、本実施形態の比較例において、圧縮装置2e´に含まれる第1パケット要求生成部14´及び第2パケット要求生成部17´は、上記した伸張装置2f´に含まれる第1パケットバッファ23´及び第2パケットバッファ26´の状態を模擬することによって、第1パケット要求生成部22´及び第2パケット要求生成部25´の動作(つまり、第1パケット要求生成部22´及び第2パケット要求生成部25´によって生成されるパケット要求)を再現するように、パケット要求を生成する。
ここで、図7は、本実施形態の比較例に係る圧縮装置2e´に含まれる第1パケット要求生成部14´、第2パケット要求生成部17´及びマルチプレクサ18´の動作の概要を説明するための図である。
上記した伸張装置2f´に含まれる第1パケット要求生成部22´及び第2パケット要求生成部25´の動作を再現した場合、図7に示すように、第1パケット要求生成部14´は、サイクルC0、C1、C3及びC4においてパケット要求を生成するように動作することになる。一方、第2パケット要求生成部17´は、上記したサイクルC0~C4においてパケット要求を生成するように動作することになる。
同一のサイクルにおいてパケット要求が生成された場合には、第1チャネル(第1パケットバッファ23´)に優先的にパケットを出力する構成であるものとすると、上記した第1パケット要求生成部22´及び第2パケット要求生成部25´によって生成されるパケット要求によれば、デマルチプレクサ21´は、第1チャネル、第2チャネル、第1チャネル、第2チャネル、第2チャネル、第1チャネル、第2チャネル、…の順に、圧縮ストリームから切り出されたパケットを出力する。
したがって、圧縮装置2e´に含まれるマルチプレクサ18´は、上記した伸張装置2f´に含まれる第1パケット要求生成部22´及び第2パケット要求生成部25´によって生成されるパケット要求を再現したパケット要求が圧縮装置2e´に含まれる第1パケット要求生成部14´及び第2パケット要求生成部17´から出力されることによって、図7に示すようにパケットA1´、B1´、A2´、B2´、B3´、A3´及びB4´が順に配置された圧縮ストリームを出力する。
なお、パケットA1´~A3´は圧縮装置2e´における第1チャネルで第1サブストリームから変換された符号語S0´、S2´、S4´及びS6´を含むパケット(つまり、第1パケット生成部13´によって生成されたパケット)であり、パケットB1´~B4´は圧縮装置2e´における第2チャネルで第2サブストリームから変換された符号語S1´、S3´、S5´及びS7´を含むパケット(つまり、第2パケット生成部16´によって生成されたパケット)である。
このような圧縮ストリームが伸張装置2f´に入力された場合には、上記したように第1パケット要求生成部22´及び第2パケット要求生成部25´によって生成されたパケット要求に応じて、デマルチプレクサ21´から第1チャネルにパケットA1´~A3´が出力され、当該デマルチプレクサ21´から第2チャネルにパケットB1´~B4´が出力される。これにより、伸張装置2f´における第1チャネル(第1復号化部24´)において、パケットA1´~A3´に含まれる符号語S0´、S2´、S4´及びS6´がシンボルS0、S2、S4及びS6に変換される。同様に、伸張装置2f´における第2チャネル(第2復号化部27´)において、パケットB1´~B4´に含まれる符号語S1´、S3´、S5´及びS7´がシンボルS1、S3、S5及びS7に変換される。
なお、上記したように伸張装置2f´における第1及び第2チャネルでエントロピー復号化が行われることにより得られたシンボルは、デインターリーブ部28´において統合される。これにより、デインターリーブ部28´は、シンボル列S0~S7を出力する。
ところで、圧縮ストリームに含まれる各パケットのサイズが16bitの固定長である場合、圧縮装置2e´における第1チャネルで生成されるパケットA3´は、16bitのうちの6bitが符号語であり、当該16bitの全てを符号語で満たすことができない。この場合、パケットA3´の残りの10bitには、パディングデータ(不要なデータ)が挿入される。同様に、圧縮装置2e´における第2チャネルで生成されるパケットB4´は、16bitのうちの5bitが符号語であり、当該16bitの全てを符号語で満たすことができない。この場合、パケットB4´の残りの11bitには、パディングデータが挿入される。
この場合、上記した7つのパケットA1´~A3´及びB1´~B4´が配置された圧縮ストリームのデータ量(16bit×7=112bit)のうちの21bitをパディングデータが占めることになる。
上記したようにインターリーブ格納方式を採用したエントロピー符号化を行う場合には、圧縮ストリームに含まれるパケットにパディングデータが付加される場合があり、当該パディングデータは、圧縮効率の低下を招く。
このため、本実施形態においては、上記したパディングデータ(のデータ量)を削減して圧縮効率を向上させるための構成を有する。
以下、本実施形態に係る圧縮装置2e及び伸張装置2fの動作の一例について説明する。ここでは、上記した本実施形態の比較例に係る圧縮装置2e´及び伸張装置2f´の動作とは異なる点について主に説明する。
まず、上記した本実施形態の比較例と同様に、インターリーブ部11はシンボル列S0~S7を入力し、当該シンボル列S0~S7は第1サブストリーム(シンボルS0、S2、S4及びS6)と第2サブストリーム(シンボルS1、S3、S5及びS7)とに振り分けられるものとする。更に、図3に示すように第1サブストリームは第1符号化部12によって符号語S0´、S2´、S4´及びS6´に変換され、図4に示すように第2サブストリームは第2符号化部15によって符号語S1´、S3´、S5´及びS7´に変換されるものとする。
ここで、上記した本実施形態の比較例においては16bitの固定長のパケットを含む圧縮ストリームが圧縮装置2e´から出力されるものとして説明したが、本実施形態は、可変長のパケットを含む圧縮ストリームが圧縮装置2eから出力される点で、本実施形態の比較例とは異なる。
図8は、本実施形態において圧縮装置2eから出力される圧縮ストリームに含まれる可変長パケットの概要を示している。本実施形態における圧縮ストリームに含まれる可変長パケットのサイズは、例えば8bit及び16bitの中から動的に決定(選択)される。可変長パケットのサイズである8bit及び16bitは例えばエントロピー符号化における最大符号長等から予め定められていればよいが、当該可変長パケットのサイズは、8bit及び16bit以外であってもよいし、3つ以上の中から決定されてもよい。
この場合、第1パケット要求生成部14及び第2パケット要求生成部17は、上記した本実施形態の比較例と同様に、伸張装置2fに含まれる第1パケットバッファ23及び第2パケットバッファ26の状態を模擬することによって、第1パケット要求生成部22及び第2パケット要求生成部25の動作を再現するように動作するが、当該パケット要求には、可変長パケットのサイズ(例えば、8bitまたは16bit)が含まれる。
なお、詳細については後述するが、上記したように8bitまたは16bitの可変長パケットを含む圧縮ストリームが圧縮装置2eから出力される構成の場合には、当該可変長パケットのサイズを適切に決定することによって、図8において第1及び第2チャネルの各々に対応づけて示されているパディングデータ(つまり、図7に示すパケットA3´及びB4´に挿入されているパディングデータ)のうちのパディングデータで満たされている8bitの部分を削減することができる。
以下、本実施形態における第1パケット要求生成部14によって動作が再現される第1パケット要求生成部22(伸張装置2fにおける第1チャネル)の動作の概要について説明する。
本実施形態に係る伸張装置2fにおける第1チャネルにおいては、上記した本実施形態の比較例と同様に、例えば第1パケットバッファ23に格納されているパケットが枯渇しないようにパケット要求を生成(デマルチプレクサ21にパケットを要求)し、当該パケットに対するエントロピー復号化を行うように動作する。具体的には、第1パケットバッファ23に格納されているパケットの残量がエントロピー符号化における最大符号長(16bit)を下回っている場合にパケット要求を生成し、当該パケットの残量が当該最大符号長以上である場合に当該パケットに含まれる符号語に対してエントロピー復号化を行うように動作するものとする。ただし、本実施形態においては、パケットの残量が8bit未満である場合には16bitのパケットを要求し、当該パケットの残量が8bit以上16bit未満である場合には8bitのパケットを要求するものとする。すなわち、本実施形態においては、第1パケットバッファ23に格納されているパケットの残量に基づいて、当該パケットの残量がエントロピー符号化における最大符号長以上となるように可変長パケットのサイズを決定する。
図9は、伸張装置2fにおける第1チャネルの動作の具体例を示している。ここでは、圧縮ストリームに8bit及び16bitの可変長パケットが含まれており、第1チャネルの処理が開始される時点で第1パケットバッファ23は空(つまり、パケットの残量は0)であるものとする。
まず、第1パケットバッファ23に格納されているパケットの残量は0であり、8bitを下回っているため、第1パケット要求生成部22は、サイクルC0において可変長パケットのサイズとして16bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
この場合、サイクルC0の次のサイクルC1においては、当該サイクルC0で第1パケット要求生成部22から出力されたパケット要求に応じてデマルチプレクサ21´から出力された16bitのパケットが第1パケットバッファ23に格納される。
これにより、第1パケットバッファ23に格納されているパケットの残量は、16bitであり、最大符号長である16bit以上となる。このため、第1復号化部24は、第1パケットバッファ23に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。上記したように圧縮装置2eにおける第1チャネルでシンボルS0、S2、S4及びS6が符号語S0´、S2´、S4´及びS6´に変換されている場合、第1復号化部24は、第1パケットバッファ23に格納されているパケットに含まれる符号語S0´をシンボルS0に変換する。上記したように符号語S0´は5bitであるため、第1パケットバッファ23に格納されているパケット(16bit)のうちの5bitが処理され、当該第1パケットバッファ23に格納されているパケットの残量は11bitとなる。
この場合、第1パケットバッファ23´に格納されているパケットの残量は8bit以上16bit未満であるため、第1パケット要求生成部22は、可変長パケットのサイズとして8bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
サイクルC1の次のサイクルC2においては、当該サイクルC1で第1パケット要求生成部22から出力されたパケット要求に応じてデマルチプレクサ21´から出力された8bitのパケットが第1パケットバッファ23に格納される。
これにより、第1パケットバッファ23に格納されているパケットの残量は、19bit(サイクルC1におけるパケットの残量である11bit+新たに第1パケットバッファ23に格納されたパケットの8bit)であり、最大符号長である16bit以上となる。このため、第1復号化部24は、第1パケットバッファ23に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC1においてシンボルS0に変換された符号語S0´の次の符号語S2´がシンボルS2に変換される。符号語S2´は6bitであるため、第1パケットバッファ23に格納されているパケットの残量(19bit)のうちの6bitが処理され、当該第1パケットバッファ23に格納されているパケットの残量は13bitとなる。
この場合、第1パケットバッファ23に格納されているパケットの残量は8bit以上16bit未満であるため、第1パケット要求生成部22は、可変長パケットのサイズとして8bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
サイクルC2の次のサイクルC3においては、当該サイクルC2で第1パケット要求生成部22から出力されたパケット要求に応じてデマルチプレクサ21から出力された8bitのパケットが第1パケットバッファ23に格納される。
これにより、第1パケットバッファ23に格納されているパケットの残量は、21bit(サイクルC2におけるパケットの残量である13bit+新たに第1パケットバッファ23に格納されたパケットの8bit)であり、最大符号長である16bit以上となる。このため、第1復号化部24は、第1パケットバッファ23に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC2においてシンボルS2に変換された符号語S2´の次の符号語S4´がシンボルS4に変換される。符号語S4´は13bitであるため、第1パケットバッファ23に格納されているパケットの残量(21bit)のうちの13bitが処理され、当該第1パケットバッファ23に格納されているパケットの残量は8bitとなる。
この場合、第1パケットバッファ23に格納されているパケットの残量は8bit以上16bit未満であるため、第1パケット要求生成部22は、可変長パケットのサイズとして8bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
サイクルC3の次のサイクルC4においては、当該サイクルC3で第1パケット要求生成部22から出力されたパケット要求に応じてデマルチプレクサ21から出力された8bitのパケットが第1パケットバッファ23に格納される。
これにより、第1パケットバッファ23に格納されているパケットの残量は、16bit(サイクルC3におけるパケットの残量である8bit+新たに第1パケットバッファ23に格納されたパケットの8bit)であり、最大符号長である16bit以上となる。このため、第1復号化部24は、第1パケットバッファ23に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC3においてシンボルS4に変換された符号語S4´の次の符号語S6´がシンボルS6に変換される。符号語S6´は14bitであるため、第1パケットバッファ23に格納されているパケットの残量(16bit)のうちの14bitが処理され、当該第1パケットバッファ23に格納されているパケットの残量は2bitとなる。
この場合、第1パケットバッファ23に格納されているパケットの残量は8bitを下回っているため、第1パケット要求生成部22は、可変長パケットのサイズとして16ビッチを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
本実施形態に係る伸張装置2fにおいては、第1パケット要求生成部22が上記したようにパケット要求を生成することにより、圧縮装置2eから出力された圧縮ストリームに含まれるパケット(に含まれる複数の符号語)に対するエントロピー復号化が順次行われるものとする。
ここでは、伸張装置2fに含まれる第1パケット要求生成部22(伸張装置2fにおける第1チャネル)の動作について説明したが、当該伸張装置2fに含まれる第2パケット要求生成部25(つまり、伸張装置2fにおける第2チャネル)においても同様の動作が行われる。
伸張装置2fにおける第2チャネルは、例えば第2パケットバッファ26に格納されているパケットが枯渇しないようにパケット要求を生成(デマルチプレクサ21にパケットを要求)し、当該パケットに対するエントロピー復号化を行うように動作する。具体的には、第2パケットバッファ26に格納されているパケットの残量が8bit未満である場合には16bitのパケットを要求し、当該パケットの残量が8bit以上16bit未満である場合には8ビットのパケットを要求する。また、第2パケットバッファ26に格納されているパケットの残量が16bit以上である場合に当該パケットに含まれる符号語に対してエントロピー復号化を行う。
図10は、伸張装置2fにおける第2チャネルの動作の具体例を示している。上記したように圧縮ストリームには8bit及び16bitの可変長パケットが含まれており、第2チャネルの処理が開始される時点で第2パケットバッファ26は空(つまり、パケットの残量は0)であるものとする。
まず、上記したように第2パケットバッファ26に格納されているパケットの残量は0であり、8bitを下回っているため、第2パケット要求生成部25は、サイクルC0において可変長パケットのサイズとして16bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
この場合、サイクルC0の次のサイクルC1においては、当該サイクルC0で第2パケット要求生成部25から出力されたパケット要求に応じてデマルチプレクサ21から出力された16bitのパケットが第2パケットバッファ26に格納される。
これにより、第2パケットバッファ26に格納されているパケットの残量は、16bitであり、最大符号長である16bit以上となる。このため、第2復号化部27は、第2パケットバッファ26に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。上記したように圧縮装置2eにおける第2チャネルでシンボルS1、S3、S5及びS7が符号語S1´、S3´、S5´及びS7´に変換されている場合、第2復号化部27は、第2パケットバッファ26に格納されているパケットに含まれる符号語S1´をシンボルS1に変換する。上記したように符号語S1´は15bitであるため、第2パケットバッファ26に格納されているパケット(16bit)うちの15bitが処理され、当該第2パケットバッファ26に格納されているパケットの残量は1bitとなる。
この場合、第2パケットバッファ26に格納されているパケットの残量は8bit未満であるため、第2パケット要求生成部25は、可変長パケットのサイズとして16bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
サイクルC1の次のサイクルC2においては、当該サイクルC1で第2パケット要求生成部25から出力されたパケット要求に応じてデマルチプレクサ21から出力された16bitのパケットが第2パケットバッファ26に格納される。
これにより、第2パケットバッファ26に格納されているパケットの残量は、17bit(サイクルC1におけるパケットの残量である1bit+新たに第2パケットバッファ26に格納されたパケットの16bit)であり、最大符号長である16bit以上となる。このため、第2復号化部27は、第2パケットバッファ26に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC1においてシンボルS1に変換された符号語S1´の次の符号語S3´がシンボルS3に変換される。符号語S3´は10bitであるため、第2パケットバッファ26に格納されているパケットの残量(17bit)のうちの10bitが処理され、当該第2パケットバッファ26に格納されているパケットの残量は7bitとなる。
この場合、第2パケットバッファ26に格納されているパケットの残量は8bit未満であるため、第2パケット要求生成部25は、可変長パケットのサイズとして16bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
サイクルC2の次のサイクルC3においては、当該サイクルC2で第2パケット要求生成部25から出力されたパケット要求に応じてデマルチプレクサ21から出力された16bitのパケットが第2パケットバッファ26に格納される。
これにより、第2パケットバッファ26に格納されているパケットの残量は、23bit(サイクルC2におけるパケットの残量である7bit+新たなに第2パケットバッファ26に格納されたパケットの16bit)であり、最大符号長である16bit以上となる。このため、第2復号化部27は、第2パケットバッファ26に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC2においてシンボルS3に変換された符号語S3´の次の符号語S5´がシンボルS5に変換される。符号語S5´は14bitであるため、第2パケットバッファ26に格納されているパケットの残量(23bit)のうちの14bitが処理され、当該第2パケットバッファ26に格納されているパケットの残量は9bitとなる。
この場合、第2パケットバッファ26に格納されているパケットの残量は8bit以上16bit未満であるため、第2パケット要求生成部25は、可変長パケットのサイズとして8bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
サイクルC3の次のサイクルC4においては、サイクルC3で第2パケット要求生成部25から出力されたパケット要求に応じてデマルチプレクサ21から出力された8bitのパケットが第2パケットバッファ26に格納される。
これにより、第2パケットバッファ26に格納されているパケットの残量は17bit(サイクルC3におけるパケットの残量である9ビット+新たに第2パケットバッファ26に格納されたパケットの8bit)であり、最大符号長である16bit以上となる。このため、第2復号化部27は、第2パケットバッファ26に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC3においてシンボルS5に変換された符号語S5´の次の符号語S7´がシンボルS7に変換される。符号語S7´は14bitであるため、第2パケットバッファ26に格納されているパケットの残量(17bit)のうちの14bitが処理され、当該第2パケットバッファ26に格納されているパケットの残量は3bitとなる。
この場合、第2パケットバッファ26に格納されているパケットの残量は8bitを下回っているため、第2パケット要求生成部25は、可変長パケットのサイズとして16bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
本実施形態に係る伸張装置2fにおいては、第2パケット要求生成部25が上記したようにパケット要求を生成することにより、圧縮装置2eから出力された圧縮ストリームに含まれるパケット(に含まれる複数の符号語)に対するエントロピー復号化が順次行われるものとする。
本実施形態において、圧縮装置2eに含まれる第1パケット要求生成部14及び第2パケット要求生成部17は、第1符号化部12及び第2符号化部15から出力された複数の符号語の各々の符号長を用いて伸張装置2fに含まれる第1パケットバッファ23及び第2パケットバッファ26の状態を模擬することによって、上記した伸張装置2fに含まれる第1パケット要求生成部22及び第2パケット要求生成部25の動作(第1パケット要求生成部22及び第2パケット要求生成部25によって生成されるパケット要求)を再現する。
ここで、図11は、本実施形態に係る圧縮装置2eに含まれる第1パケット要求生成部14、第2パケット要求生成部17及びマルチプレクサ18の動作の概要を説明するための図である。
上記した伸張装置2fに含まれる第1パケット要求生成部22及び第2パケット要求生成部25の動作を再現した場合、図11に示すように、第1パケット要求生成部14は、サイクルC0において可変長パケットのサイズとして16bitを含むパケット要求を生成し、サイクルC1~C3において可変長パケットのサイズとして8bitを含むパケット要求を生成し、サイクルC4において可変長パケットのサイズとして16bitを含むパケット要求を生成するように動作することになる。一方、第2パケット要求生成部17は、サイクルC0~C2において可変長パケットのサイズとして16bitを含むパケット要求を生成し、サイクルC3において可変長パケットのサイズとして8bitを含むパケット要求を生成し、サイクルC4において可変長パケットのサイズとして16bitを含むパケット要求を生成するように動作することになる。
同一のサイクルにおいてパケット要求が生成された場合には、第1チャネル(第1パケットバッファ23)に優先的にパケットを出力する構成であるものとすると、上記した第1パケット要求生成部22及び第2パケット要求生成部25によって生成されるパケット要求によれば、デマルチプレクサ21は、第1チャネル、第2チャネル、第1チャネル、第2チャネル、第1チャネル、第2チャネル、第1チャネル、第2チャネル、…の順に、圧縮ストリームから切り出されたパケットを出力する。
したがって、圧縮装置2eに含まれるマルチプレクサ18は、上記した伸張装置2fに含まれる第1パケット要求生成部22及び第2パケット要求生成部25によって生成されるパケット要求を再現したパケット要求が圧縮装置2eに含まれる第1パケット要求生成部14及び第2パケット要求生成部17から出力されることによって、図11に示すようにパケットA1(16bit)、B1(16bit)、A2(8bit)、B2(16bit)、A3(8bit)、B3(16bit)、A4(8bit)及びB4(8bit)が順に配置された圧縮ストリームを出力する。
なお、パケットA1~A4は圧縮装置2eにおける第1チャネルで第1サブストリームから変換された符号語S0´、S2´、S4´及びS6´を含むパケット(つまり、第1パケット生成部13によって生成されたパケット)であり、パケットB1~B4は圧縮装置2eにおける第2チャネルで第2サブストリームから変換された符号語S1´、S3´、S5´及びS7´を含むパケット(つまり、第2パケット生成部16によって生成されたパケット)である。
また、本実施形態において第1パケット生成部13及び第2パケット生成部16は8bitまたは16bitの可変長パケットを切り出すためのパケットを生成し、マルチプレクサ18は、パケット要求に含まれる可変長パケットのサイズに基づいて、当該第1パケット生成部13及び第2パケット生成部16によって生成されたパケットから可変長パケットを切り出すことができる。圧縮ストリームは、このようにマルチプレクサ18によって切り出された可変長パケットから生成される。
このような圧縮ストリームが伸張装置2fに入力された場合には、上記したように第1パケット要求生成部22及び第2パケット要求生成部25によって生成されたパケット要求に応じて、デマルチプレクサ21から第1チャネルにパケットA1~A4が出力され、当該デマルチプレクサ21から第2チャネルにパケットB1~B4が出力される。これにより、伸張装置2fにおける第1チャネル(第1復号化部24)において、パケットA1~A4に含まれる符号語S0´、S2´、S4´及びS6´がシンボルS0、S2、S4、及びS6に変換される。同様に、伸張装置2fにおける第2チャネル(第2復号化部27)において、パケットB1~B4に含まれる符号語S1´、S3´、S5´及びS7´がシンボルS1、S3、S5及びS7に変換される。
上記したように伸張装置2fにおける第1及び第2チャネルにおいてエントロピー復号化が行われることにより得られたシンボルは、デインターリーブ部28において統合される。これにより、デインターリーブ部28は、シンボル列S0~S7を出力する。
ここで、本実施形態においては、可変長パケットを含む圧縮ストリームが圧縮装置2eから出力されるため、図11に示すように、パケットA4に含まれるパディングデータは2bitであり、パケットB4に含まれるパディングデータは3bitである。
この場合、上記した本実施形態の比較例における圧縮ストリームのパディングデータは図7において説明したように21bitであり、当該圧縮ストリーム全体のデータ量は112bitである。これに対し、本実施形態においては、可変長パケットであるパケットA1~A4及びB1~B4が配置されることにより、当該圧縮ストリームのパディングデータは2bit+3bit=5bitであり、当該圧縮ストリーム全体のデータ量は96bitである。すなわち、本実施形態においては、本実施形態の比較例と比べて、圧縮ストリーム(におけるパディングデータ)のデータ量を16bit削減することができる。
上記したように本実施形態に係る圧縮装置2eは、入力されたシンボル列を第1サブストリーム(複数の第1シンボル)及び第2サブストリーム(複数の第1シンボルとは異なる複数の第2シンボル)に分割し、当該第1及び第2サブストリームを第1及び第2チャネルに振り分ける。第1チャネルにおいては、第1サブストリームに対して符号化を行うことによって当該第1サブストリームを複数の符号語(第1符号語)に変換し、当該複数の符号語を含むパケット(第1パケット)を生成し、可変長パケットのサイズを含む第1パケット要求を生成する。また、第2チャネルにおいては、第2サブストリームに対して符号化を行うことによって当該第2サブストリームを複数の符号語(第2符号語)に変換し、当該複数の符号語を含むパケット(第2パケット)を生成し、可変長パケットのサイズを含むパケット要求(第2パケット要求)を生成する。本実施形態においては、上記した第1チャネル(第1パケット要求生成部14)において生成されたパケット要求に含まれる可変長パケットのサイズに基づいて当該第1チャネルにおいて生成されたパケットから可変長パケット(第1可変長パケット)を切り出すとともに、第2チャネル(第2パケット要求生成部17)において生成されたパケット要求に含まれる可変長パケットのサイズに基づいて当該第2チャネルにおいて生成されたパケットから可変長パケット(第2可変長パケット)を切り出す。圧縮装置2eは、このように切り出された可変長パケットを含む圧縮ストリームを出力する。
本実施形態においては、このような構成により、圧縮ストリームに含まれるパケットのサイズを適応的に決定(選択)する制御を導入し、パディングデータのデータ量(パディングデータによるオーバヘッド)を削減することができる。これによれば、結果として、圧縮ストリーム(圧縮データ)のサイズを低減し、圧縮効率を向上させることが可能となる。
なお、本実施形態に係る伸張装置2fは、圧縮装置2eから出力された圧縮ストリームを入力するように構成され、当該圧縮ストリームから可変長パケットを切り出すように構成されたデマルチプレクサ21を含む。伸張装置2fにおける第1チャネルにおいては、可変長パケットのサイズを含むパケット要求(第3パケット要求)を生成し、当該パケット要求に基づいてデマルチプレクサ21から出力された可変長パケットを取得し、当該可変長パケットに含まれる複数の符号語に対してエントロピー復号化を行うことによって当該複数の符号語を複数のシンボルに変換する。また、伸張装置2fにおける第2チャネルにおいては、可変長パケットのサイズを含むパケット要求(第4パケット要求)を生成し、当該パケット要求に基づいてデマルチプレクサ21から出力された可変長パケットを取得し、当該可変長パケットに含まれる複数の符号語に対してエントロピー復号化を行うことによって当該複数の符号語を複数のシンボルに変換する。伸張装置2fに含まれるデインターリーブ部28は、第1及び第2チャネル(第1復号化部24及び第2復号化部27)において複数の符号語から変換されたシンボルを含むシンボル列を出力する。
この場合、伸張装置2fにおける第1チャネル(伸張装置2fに含まれる第1パケット要求生成部22)で生成されるパケット要求に含まれる可変長パケットのサイズは、第1パケットバッファ23の状態(第1復号化部24によってエントロピー復号化が行われる複数の符号語の各々の符号長)に基づいて決定される。また、伸張装置2fにおける第2チャネル(伸張装置2fに含まれる第2パケット要求生成部25)で生成されるパケット要求に含まれる可変長パケットのサイズは、第2パケットバッファ26の状態(第2復号化部27によってエントロピー復号化が行われる複数の符号語の各々の符号長)に基づいて決定される。
本実施形態においては、上記した構成により、圧縮装置2eか出力された圧縮ストリームを適切に伸張したシンボル列を伸張装置2fから出力することができる。
なお、本実施形態に係る圧縮装置2eに含まれる第1パケット要求生成部14は、伸張装置2fに含まれる第1復号化部24が複数の符号語に対するエントロピー復号化を行う際に可変長パケットを格納する第1パケットバッファ23の状態を模擬することによって、伸張装置2fに含まれる第1パケット要求生成部22の動作を再現するようにパケット要求を生成する。同様に、圧縮装置2eに含まれる第2パケット要求生成部17は、伸張装置2fに含まれる第2復号化部27が複数の符号語に対するエントロピー復号化を行う際に可変長パケットを格納する第2パケットバッファ26の状態を模擬することによって、伸張装置2fに含まれる第2パケット要求生成部25の動作を再現するようにパケット要求を生成する。
この場合、第1パケット要求生成部14は模擬された第1パケットバッファ23に格納されているパケットの残量に基づいて(例えば、当該パケットの残量がエントロピー符号化における最大符号長以上となるように)可変長パケットとのサイズを決定し、第2パケット要求生成部17は模擬された第2パケットバッファ26に格納されているパケットの残量に基づいて(例えば、当該パケットの残量がエントロピー符号化における最大符号長以上となるように)可変長パケットのサイズを決定する。
本実施形態においては、このような構成により、圧縮装置2eにおける第1チャネルでエントロピー符号化が行われることによって得られた複数の符号語に対するエントロピー復号化を伸張装置2fにおける第1チャネルで適切に行うことができる。同様に、圧縮装置2eにおける第2チャネルにおいてエントロピー符号化が行われることによって得られた複数の符号語に対するエントロピー復号化を伸張装置2fにおける第2チャネルで適切に行うことができる。
また、本実施形態においては、上記したように伸張装置2fにおいてパケットの残量がエントロピー符号化における最大符号長以上となるように動作することにより、例えば最大符号長の符号語に対するエントロピー復号化を行う場合であっても1サイクルで当該符号語をシンボルに変換することが可能であるため、伸張装置2fにおけるスループットを保証することができる。
なお、本実施形態においては例えば圧縮装置2e(第1符号化部12及び第2符号化部15)がエントロピー符号化を行い、伸張装置2f(第1復号化部24及び第2復号化部27)がエントロピー復号化を行うものとして説明したが、当該第1符号化部12及び第2符号化部15は、複数のシンボルに対して可変長符号化を行う(複数のシンボルを可変の符号長の符号語に変換する)ものであればよく、他の符号化手法に基づく符号化を行うものであってもよい。この場合、第1復号化部24及び第2復号化部27は、第1符号化部12及び第2符号化部15による符号化の結果(符号語)に対して復号化(処理)を行うことができるように構成されていればよい。
また、本実施形態においては第1パケット要求生成部22及び第2パケット要求生成部25によって生成されるパケット要求に含まれる可変長パケットのサイズが予め定められた複数のサイズ(例えば、8bit及び16bit)の中から選択(決定)されるものとして説明したが、当該可変長パケットのサイズは、他の手法により決定されても構わない。
更に、本実施形態においては、説明の便宜のために、圧縮装置2e及び伸張装置2fにおけるチャネル数が2であるものとして説明したが、当該チャネル数は3以上であってもよい。
(第2実施形態)
次に、第2実施形態について説明する。なお、本実施形態においては、前述した第1実施形態と同様の部分についての詳しい説明を省略し、当該第1実施形態とは異なる部分について主に説明する。また、本実施形態におけるメモリシステムのハードウェア構成と、圧縮装置及び伸張装置の構成とについては前述した第1実施形態と同様であるため、適宜、図1及び図2を用いて説明する。
以下、本実施形態に係る圧縮装置2e及び伸張装置2fの動作の一例について説明する。まず、前述した第1実施形態と同様に、インターリーブ部11はシンボル列S0~S7を入力し、当該シンボル列S0~S7は第1サブストリーム(シンボルS0、S2、S4及びS6)と第2サブストリーム(S1、S3、S5及びS7)とに振り分けられるものとする。更に、図3に示すように第1サブストリームは第1符号化部12によって符号語S0´、S2´、S4´及びS6´に変換され、図4に示すように第2サブストリームは第2符号化部15によって符号語S1´、S3´、S5´及びS7´に変換されるものとする。
ここで、本実施形態は、8bit及び16bitの中から決定(選択)されたサイズの可変長パケットを含む圧縮ストリームが圧縮装置2eから出力される点で前述した第1実施形態と同様であるが、伸張装置2fにおける第1及び第2チャネルで第1パケットバッファ23及び第2パケットバッファ26に格納されているパケットが溢れないようにパケット要求を生成する点で、当該第1実施形態とは異なる。
この場合、本実施形態に係る圧縮装置2eに含まれる第1パケット要求生成部14は伸張装置2fに含まれる第1パケット要求生成部22の動作を再現するが、まず、当該第1パケット要求生成部22(伸張装置2fにおける第1チャネル)の動作の概要について説明する。
本実施形態に係る伸張装置2fにおける第1チャネルは、第1パケットバッファ23に格納されているパケットの残量が24bit以下である場合にパケット要求を生成し、当該パケットの残量が最大符号長(16bit)以上である場合に当該パケットに含まれる符号語に対してエントロピー復号化を行うように動作するものとする。ただし、本実施形態においては、パケットの残量が16bit以下である場合には16bitのパケットを要求し、当該パケットの残量が16bitを上回っている場合には8bitのパケットを要求するものとする。すなわち、伸張装置2fにおける第1チャネルにおいては、第1パケットバッファ23に格納されているパケットの処理量(消費量または空き容量)に基づいて可変長パケットのサイズが決定される。
図12は、伸張装置2fにおける第1チャネルの動作の具体例を示している。ここでは、圧縮ストリームに8bit及び16bitの可変長パケットが含まれているものとする。
ここで、本実施形態においては、第1パケットバッファ23にパケットが格納された状態で第1チャネルの処理が開始されるものとする。具体的には、例えば第1パケットバッファ23の容量(当該第1パケットバッファ23に格納することができるデータの量)が32bitであるものとすると、当該第1パケットバッファ23には、初期ロードとして2つの16bitのパケットが順次格納される。この場合、第1パケット要求生成部22は、サイクルC0及びC1の各々において可変長パケットのサイズとして16bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
これによれば、サイクルC1の次のサイクルC2において、第1パケットバッファ23に格納されているパケットの残量は、32bitであり、最大符号長である16bit以上となる。このため、第1復号化部24は、第1パケットバッファ23に格納されているパケットに含まれる符号語S0´をシンボルS0に変換する。上記したように符号語S0´は5bitであるため、第1パケットバッファ23に格納されているパケット(32bit)のうちの5bitが処理され、当該第1パケットバッファ23に格納されているパケットの残量は27bitとなる。
この場合、第1パケットバッファ23に格納されているパケットの残量は24bit以下でないため、第1パケット要求生成部22は、パケット要求を生成しない。
サイクルC2の次のサイクルC3において、第1パケットバッファ23に格納されているパケットの残量は、27bitであり、最大符号長である16bit以上である。このため、第1復号化部24は、第1パケットバッファ23に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC2においてシンボルS0に変換された符号語S0´の次の符号語S2´がシンボルS2に変換される。符号語S2´は6bitであるため、第1パケットバッファ23に格納されているパケットの残量(27bit)のうちの6bitが処理され、当該第1パケットバッファ23に格納されているパケットの残量は21bitとなる。
この場合、第1パケットバッファ23に格納されているパケットの残量は24bit以下であり、かつ、16bitを上回っているため、第1パケット要求生成部22は、可変長パケットのサイズとして8bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
サイクルC3の次のサイクルC4においては、当該サイクルC3で第1パケット要求生成部22から出力されたパケット要求に応じてデマルチプレクサ21から出力された8bitのパケットが第1パケットバッファ23に格納される。
これにより、第1パケットバッファ23に格納されているパケットの残量は、29bit(サイクルC3におけるパケットの残量である21bit+新たに第1パケットバッファ23に格納されたパケットの8bit)であり、最大符号長である16bit以上となる。このため、第1復号化部24は、第1パケットバッファ23に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC3においてシンボルS2に変換された符号語S2´の次の符号語S4´がシンボルS4に変換される。符号語S4´は13bitであるため、第1パケットバッファ23に格納されているパケットの残量(29bit)のうちの13bitが処理され、当該第1パケットバッファ23に格納されているパケットの残量は16bitとなる。
この場合、第1パケットバッファ23に格納されているパケットの残量は16bit以下であるため、第1パケット要求生成部22は、可変長パケットのサイズとして16bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
サイクルC4の次のサイクルC5においては、当該サイクルC4で第1パケット要求生成部22から出力されたパケット要求に応じてデマルチプレクサ21から出力された16bitのパケットが第1パケットバッファ23に格納される。
これにより、第1パケットバッファ23に格納されているパケットの残量は、32bit(サイクルC4におけるパケットの残量である16bit+新たに第1パケットバッファ23に格納されたパケットの16bit)であり、最大符号長である16bit以上となる。このため、第1復号化部24は、第1パケットバッファ23に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC4においてシンボルS4に変換された符号語S4´の次の符号語S6´がシンボルS6に変換される。符号語S6´は14bitであるため、第1パケットバッファ23に格納されているパケットの残量(32bit)のうちの14bitが処理され、当該第1パケットバッファ23に格納されているパケットの残量は18bitとなる。
この場合、第1パケットバッファ23に格納されているパケットの残量は24bit以下であり、かつ、16bitを上回っているため、第1パケット要求生成部22は、可変長パケットのサイズとして8bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
本実施形態に係る伸張装置2fにおいては、第1パケット要求生成部22が上記したようにパケット要求を生成することにより、圧縮装置2eから出力された圧縮ストリームに含まれるパケット(に含まれる複数の符号語)に対するエントロピー復号化が順次行われるものとする。
ここでは、伸張装置2fに含まれる第1パケット要求生成部22(伸張装置2fにおける第1チャネル)の動作について説明したが、当該伸張装置2fに含まれる第2パケット要求生成部25(つまり、伸張装置2fにおける第2チャネル)においても同様の動作が行われる。
伸張装置2fにおける第2チャネルは、例えば第2パケットバッファ26に格納されているパケットの残量が24bit以下である場合にパケット要求を生成し、当該パケットの残量が最大符号長(16bit)以上である場合に当該パケットに含まれる符号語に対してエントロピー復号化を行うように動作する。また、パケットの残量が16bit以下である場合には16bitのパケットを要求し、当該パケットの残量が16bitを上回っている場合には8ビットのパケットを要求する。すなわち、伸張装置2fにおける第2チャネルにおいては、第2パケットバッファ26に格納されているパケットの処理量(消費量または空き容量)に基づいて可変長パケットのサイズが決定される。
図13は、伸張装置2fにおける第2チャネルの動作の具体例を示している。ここでは、圧縮ストリーム8bit及び16bitの可変長パケットが含まれているものとする。
ここで、本実施形態においては、上記した第1チャネルと同様に、第2パケットバッファ26にパケットが格納された状態で第2チャネルの処理が開始されるものとする。具体的には、例えば第2パケットバッファ26の容量(当該第2パケットバッファ26に格納することができるデータの量)が32bitであるものとすると、当該第2パケットバッファ26には、初期ロードとして2つの16bitのパケットが順次格納される。この場合、第2パケット要求生成部25は、サイクルC0及びC1の各々において可変長パケットのサイズとして16bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
これによれば、サイクルC1の次のサイクルC2において、第2パケットバッファ26に格納されているパケットの残量は、32bitであり、最大符号長である16bit以上となる。このため、第2復号化部27は、第2パケットバッファ26に格納されているパケットに含まれる符号語S1´をシンボルS1に変換する。上記したように符号語S1´は15bitであるため、第2パケットバッファ26に格納されているパケット(32ビット)のうちの15bitが処理され、当該第2パケットバッファ26に格納されているパケットの残量は17bitとなる。
この場合、第2パケットバッファ26に格納されているパケットの残量は24bit以下であり、かつ、16bitを上回っているため、第2パケット要求生成部25は、可変長パケットのサイズとして8bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
サイクルC2の次のサイクルC3においては、当該サイクルC2で第2パケット要求生成部25から出力されたパケット要求に応じてデマルチプレクサ21から出力された8bitのパケットが第2パケットバッファ26に格納される。
これにより、第2パケットバッファ26に格納されているパケットの残量は、25bit(サイクルC2におけるパケットの残量である17bit+新たに第2パケットバッファ26に格納されたパケットの8bit))であり、最大符号長である16bit以上となる。このため、第2復号化部27は、第2パケットバッファ26に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC2においてシンボルS1に変換された符号語S1´の次の符号語S3´がシンボルS3に変換される。符号語S3´は10bitであるため、第2パケットバッファ26に格納されているパケットの残量(25bit)のうちの10bitが処理され、当該第2パケットバッファ26に格納されているパケットの残量は15bitとなる。
この場合、第2パケットバッファ26に格納されているパケットの残量は16bit以下であるため、第2パケット要求生成部25は、可変長パケットのサイズとして16bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
サイクルC3の次のサイクルC4においては、当該サイクルC3で第2パケット要求生成部25から出力されたパケット要求に応じてデマルチプレクサ21から出力された16bitのパケットが第2パケットバッファ26に格納される。
これにより、第2パケットバッファ26に格納されているパケットの残量は、31bit(サイクルC3におけるパケットの残量である15bit+新たに第2パケットバッファ26に格納されたパケットの16bit)であり、最大符号長である16bit以上となる。このため、第2復号化部27は、第2パケットバッファ26に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC3においてシンボルS3に変換された符号語S3´の次の符号語S5´がシンボルS5に変換される。符号語S5´は14bitであるため、第2パケットバッファ26に格納されているパケットの残量(31bit)のうちの14bitが処理され、当該第2パケットバッファ26に格納されているパケットの残量は17bitとなる。
この場合、第2パケットバッファ26に格納されているパケットの残量は24bit以下であり、かつ、16bitを上回っているため、第2パケット要求生成部25は、可変長パケットのサイズとして8bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
サイクルC4の次のサイクルC5においては、当該サイクルC4で第2パケット要求生成部25から出力されたパケット要求に応じてデマルチプレクサ21から出力された8bitのパケットが第2パケットバッファ26に格納される。
これにより、第2パケットバッファ26に格納されているパケットの残量は、25bit(サイクルC4におけるパケットの残量である17bit+新たなに第2パケットバッファ26に格納されたパケットの8bit)であり、最大符号長である16bit以上となる。このため、第2復号化部27は、第2パケットバッファ26に格納されているパケットに含まれる符号語に対してエントロピー復号化を行うことにより当該符号語をシンボルに変換する。この場合、上記したサイクルC4においてシンボルS5に変換された符号語S5´の次の符号語S7´がシンボルS7に変換される。符号語S7´は14bitであるため、第2パケットバッファ26に格納されているパケットの残量(25ビット)のうちの14bitが処理され、当該第2パケットバッファ26に格納されているパケットの残量は11bitとなる。
この場合、第2パケットバッファ26に格納されているパケットの残量は16bit以下であるため、第2パケット要求生成部25は、可変長パケットのサイズとして16bitを含むパケット要求を生成し、当該パケット要求をデマルチプレクサ21に出力する。
本実施形態に係る伸張装置2fにおいては、第2パケット要求生成部25が上記したようにパケット要求を生成することにより、圧縮装置2eから出力された圧縮ストリームに含まれるパケット(に含まれる複数の符号語)に対するエントロピー復号化が順次行われるものとする。
本実施形態において、圧縮装置2eに含まれる第1パケット要求生成部14及び第2パケット要求生成部17は、第1符号化部12及び第2符号化部15から出力された複数の符号語の各々の符号長を用いて伸張装置2fに含まれる第1パケットバッファ23及び第2パケットバッファ26の状態を模擬することによって、上記した伸張装置2fに含まれる第1パケット要求生成部22及び第2パケット要求生成部25の動作(第1パケット要求生成部22及び第2パケット要求生成部25によって生成されるパケット要求)を再現する。
ここで、図14は、本実施形態に係る圧縮装置2eに含まれる第1パケット要求生成部14、第2パケット要求生成部17及びマルチプレクサ18の動作の概要を説明するための図である。
上記した伸張装置2fに含まれる第1パケット要求生成部22及び第2パケット要求生成部25の動作を再現した場合、図14に示すように、第1パケット要求生成部14は、サイクルC0及びC1において可変長パケットのサイズとして16bitを含むパケット要求を生成し、サイクルC3において可変長パケットのサイズとして8bitを含むパケット要求を生成し、サイクルC4において可変長パケットのサイズとして16bitを含むパケット要求を生成し、サイクルC5において可変長パケットのサイズとして8bitを含むパケット要求を生成するように動作することになる。一方、第2パケット要求生成部17は、サイクルC0及びC1において可変長パケットのサイズとして16bitを含むパケット要求を生成し、サイクルC2において可変長パケットのサイズとして8bitを含むパケット要求を生成し、サイクルC3において可変長パケットのサイズとして16bitを含むパケット要求を生成し、サイクルC4において可変長パケットのサイズとして8bitを含むパケット要求を生成し、サイクルC5において可変長パケットのサイズとして16bitを含むパケット要求を生成するように動作することになる。
同一のサイクルにおいてパケット要求が生成された場合には、第1チャネル(第1パケットバッファ23)に優先的にパケットを出力する構成であるものとすると、上記した第1パケット要求生成部22及び第2パケット要求生成部25によって生成されるパケット要求によれば、デマルチプレクサ21は、第1チャネル、第2チャネル、第1チャネル、第2チャネル、第2チャネル、第1チャネル、第2チャネル、…の順に、圧縮ストリームから切り出されたパケットを出力する。
したがって、圧縮装置2eに含まれるマルチプレクサ18は、上記した伸張装置2fに含まれる第1パケット要求生成部22及び第2パケット要求生成部25によって生成されるパケット要求を再現したパケット要求が圧縮装置2eに含まれる第1パケット要求生成部14及び第2パケット要求生成部17から出力されることによって、図14に示すように、パケットA1(16bit)、B1(16bit)、A2(16bit)、B2(16bit)、B3(8bit)、A3(8bit)及びB4(16bit)が順に配置された圧縮ストリームを出力する。
なお、パケットA1~A3は圧縮装置2eにおける第1チャネルで第1サブストリームから変換された符号語S0´、S2´、S4´及びS6´を含むパケット(つまり、第1パケット生成部13によって生成されたパケット)であり、パケットB1~B4は圧縮装置2eにおける第2チャネルで第2サブストリームから変換された符号語S1´、S3´、S5´及びS7´を含むパケット(つまり、第2パケット生成部16によって生成されたパケット)である。
本実施形態においては、第1パケットバッファ23及び第2パケットバッファ26に格納されているパケットが溢れないようにパケット要求を生成する構成であるため、初期ロードとして2つの16bitのパケットが最初に要求される。このため、本実施形態における圧縮ストリームの先頭には、予め定められた数の予め定められたサイズのパケットが配置される。なお、圧縮ストリームの先頭に配置されるパケット(可変長パケット)の数及びサイズは、例えば第1パケットバッファ23及び第2パケットバッファ26の各々のサイズに応じて決定されればよい。
このような圧縮ストリームが伸張装置2fに入力された場合には、上記したように第1パケット要求生成部22及び第2パケット要求生成部25によって生成されたパケット要求に応じて、デマルチプレクサ21から第1チャネルにパケットA1~A3が出力され、当該デマルチプレクサ21から第2チャネルにパケットB1~B4が出力される。これにより、伸張装置2fにおける第1チャネル(第1復号化部24)において、パケットA1~A3に含まれる符号語S0´、S2´、S4´及びS6´がシンボルS0、S2、S4及びS6に変換される。同様に、伸張装置2fにおける第2チャネル(第2復号化部27)において、パケットB1~B4に含まれる符号語S1´、S3´、S5´及びS7´がシンボルS1、S3、S5及びS7に変換される。
なお、本実施形態における圧縮装置2eに含まれるマルチプレクサ18は、前述した第1実施形態と同様に、パケット要求に含まれる可変長パケットのサイズに基づいて可変長パケットを切り出して圧縮ストリームを生成すればよい。また、伸張装置2fに含まれるデインターリーブ部28は、前述した第1実施形態と同様に、上記したように伸張装置2fにおける第1及び第2チャネルにおいてエントロピー復号化が行われることにより得られたシンボルを統合し、シンボル列S0~S7を出力すればよい。
ここで、本実施形態においては、可変長パケットを含む圧縮ストリームが圧縮装置2eから出力されるため、図14に示すように、パケットA3に含まれるパディングデータは2bitであり、パケットB4に含まれるパディングデータは3bitである。
この場合、前述した第1実施形態の比較例における圧縮ストリームと比べて、圧縮ストリーム(におけるパディングデータ)のデー量を16bit削減することができる。
上記したように本実施形態においては、前述した第1実施形態とは異なり、第1パケットバッファ23及び第2パケットバッファ26に格納されているパケットに対する処理量(消費量または空き容量)に基づいてパケット要求に含まれる可変長パケットのサイズを決定する(つまり、第1パケットバッファ23及び第2パケットバッファ26に格納されているパケットが溢れないようにパケット要求を生成する)構成であっても、パディングデータのデータ量を削減し、圧縮効率を向上させることができる。
なお、本実施形態においては、第1パケットバッファ23及び第2パケットバッファ26に、当該第1パケットバッファ23及び第2パケットバッファ26のサイズに応じたパケットが格納された状態でエントロピー復号化を開始する構成であるため、圧縮ストリームの先頭には、当該第1パケットバッファ23及び第2パケットバッファ26のサイズに応じたサイズのパケット(可変長パケット)が配置されるものとする。このような構成によれば、伸張装置2fにおける効率的なエントロピー復号化(処理)を実現することができる。
ここで、本実施形態においては前述した第1実施形態と同様に第1パケットバッファ23及び第2パケットバッファ26の状態を模擬することによって第1パケット要求生成部22及び第2パケット要求生成部25がパケット要求を生成するものとして説明したが、本実施形態に係る圧縮装置2eは、例えば第1符号化部12及び第2符号化部15によって第1及び第2サブストリームから変換された複数の符号語がパケット境界候補を跨ぐか否かに基づいて第1パケット要求生成部22及び第2パケット要求生成部25によって生成されるパケット要求に含まれる可変長パケットのサイズを決定する構成(以下、本実施形態の変形例と表記)であってもよい。なお、複数の符号語がパケット境界候補を跨ぐか否かは、当該符号語の符号長から判定することができる。
具体的には、例えばn番目の符号語について決定される可変長パケットのサイズは、「n番目の符号語が跨いだパケット境界候補の個数×パケット境界候補の区間幅」(以下、式(1)と表記)により算出することができる。
更に、「n番目の符号語が跨いだパケット境界候補の個数」は、以下の式(2)により算出されるものとする。
Figure 2023007760000002
以下、図15及び図16を参照して、本実施形態の変形例について具体的に説明する。ここでは、可変長パケットのサイズは上記したように8bit及び16bitの中から決定(選択)するものとし、この場合におけるパケット境界候補は、8bitの固定長パケットの境界に相当する(つまり、8bit単位で設定される)。また、圧縮装置2eにおける第1及び第2チャネルでエントロピー符号化を行うことによって得られる複数の符号語のうちの先頭の符号語は0番目とする。
まず、図15は、本実施形態の変形例において第1パケット要求生成部22によって生成されるパケット要求に含まれる可変長パケットのサイズを説明するための図である。
前述した図3において説明したように第1サブストリームが符号語S0´、S2´、S4´及びS6´に変換されたものとすると、0番目の符号語は符号語S0´である。
この符号語S0´の符号長は5bitであり、当該符号長を上記した式(2)に適用すると、0番目の符号語S0´がパケット境界候補を跨いだ個数は0となる。これによれば、0番目の符号語S0´について決定される可変長パケットのサイズは、上記した式(1)により0bitとなる。
1番目の符号語は、符号語S2´である。この符号語S2´の符号長は6bitであり、当該符号長を符号語S0´の符号長とともに上記した式(2)に適用すると、1番目の符号語S2´がパケット境界候補を跨いだ個数は1となる。これによれば、1番目の符号語S2´について決定される可変長パケットのサイズは、上記した式(1)により8bitとなる。
2番目の符号語は、符号語S4´である。この符号語S4´の符号長は13bitであり、当該符号長を符号語S0´及びS2´の符号長とともに上記した式(2)に適用すると、2番目の符号語S4´がパケット境界候補を跨いだ個数は2となる。これによれば、2番目の符号語S4´について決定される可変長パケットのサイズは、上記した式(1)により16bitとなる。
3番目の符号語は、符号語S6´である。この符号語S6´の符号長は14bitであり、当該符号長を符号語S0´、S2´及びS4´の符号長とともに上記した式(2)に適用すると、3番目の符号語S6´がパケット境界候補を跨いだ個数は1となる。これによれば、3番目の符号語S6´について決定される可変長パケットのサイズは、上記した(1)により8bitとなる。
上記したように第1サブストリームから変換された複数の符号語S0´、S2´、S4´及びS6´がパケット境界候補を跨ぐか否かに基づいて可変長パケットのサイズを決定した場合、図15に示すように、当該可変長パケットのサイズは、0bit、8bit、16bit、8bitとなる。これによれば、上記したように初期ロードとして第1チャネルから最初に要求される2つの可変長パケット(16bit)と組み合わせると、本実施形態の変形例における第1パケット要求生成部22は、上記した図14に示すパケット要求と同様の可変長パケットのサイズを含むパケット要求を生成することができる。
次に、図16は、本実施形態の変形例において第2パケット要求生成部25によって生成されるパケット要求に含まれる可変長パケットのサイズを説明するための図である。
前述した図4において説明したように第1サブストリームが符号語S1´、S3´、S5´及びS7´に変換されたものとすると、0番目の符号語は符号語S1´である。
この符号語S1´の符号長は15bitであり、当該符号長を上記した式(2)に適用すると、0番目の符号語S1´がパケット境界候補を跨いだ個数は1となる。これによれば、0番目の符号語S1´について決定される可変長パケットのサイズは、上記した式(1)により8bitとなる。
1番目の符号語は、符号語S3´である。この符号語S3´の符号長は10bitであり、当該符号長を符号語S1´の符号長とともに上記した式(2)に適用すると、1番目の符号語S3´がパケット境界候補を跨いだ個数は2となる。これによれば、1番目の符号語S3´について決定される可変長パケットのサイズは、上記した式(1)により16bitとなる。
2番目の符号語は、符号語S5´である。この符号語S5´の符号長は14bitであり、当該符号長を符号語S1´及びS3´の符号長とともに上記した式(2)に適用すると、2番目の符号語S5´がパケット境界候補を跨いだ個数は1となる。これによれば、2番目の符号語S5´について決定される可変長パケットのサイズは、上記した式(1)により8bitとなる。
3番目の符号語は、符号語S7´である。この符号語S7´の符号長は14bitであり、当該符号長を符号語S1´、S3´及びS5´の符号長とともに上記した式(2)に適用すると、3番目の符号語S7´がパケット境界候補を跨いだ個数は2となる。これによれば、3番目の符号語S7´について決定される可変長パケットのサイズは、上記した(1)により16bitとなる。
上記したように第1サブストリームから変換された複数の符号語S1´、S3´、S5´及びS7´がパケット境界候補を跨ぐか否かに基づいて可変長パケットのサイズを決定した場合、図15に示すように、当該可変長パケットのサイズは、8bit、16bit、8bit、16bitとなる。これによれば、上記したように初期ロードとして第2チャネルから最初に要求される2つの可変長パケット(16bit)と組み合わせると、本実施形態の変形例における第2パケット要求生成部25は、上記した図14に示すパケット要求と同様の可変長パケットのサイズを含むパケット要求を生成することができる。
すなわち、本実施形態の変形例においては、複数の符号語の先頭から順に例えば8bitの固定長パケットを生成した場合に、当該複数の符号語の各々が当該固定長パケットの境界を跨ぐか否かを判定し、当該判定結果に応じて可変長パケットのサイズを決定する構成により、本実施形態と同様に圧縮効率を向上させることができる。
なお、本実施形態の変形例において、上記した複数の符号語の各々が固定長パケットの境界を跨ぐか否かの判定結果に応じて可変長パケットのサイズを決定する構成は、圧縮装置2e及び伸張装置2fの両方に適用される。
(第3実施形態)
次に、第3実施形態について説明する。なお、本実施形態においては、前述した第1実施形態と同様の部分についての詳しい説明を省略し、当該第1実施形態とは異なる部分について説明する。また、本実施形態におけるメモリシステムのハードウェア構成については前述した第1実施形態と同様であるため、適宜、図1を用いて説明する。
本実施形態においては、圧縮装置2eが前述した辞書式符号化とエントロピー符号化とを組み合わせた圧縮アルゴリズムによりデータを圧縮する場合を想定している。この場合、圧縮装置2eにおいては辞書式符号化の結果を含むシンボル列に対してエントロピー符号化が行われる。辞書式符号化の結果には、図17に示すように、リテラル情報101、マッチ長情報102及び距離情報103が含まれる。
リテラル情報101は、辞書式符号化対象データと一致する過去のデータがヒストリバッファ(辞書)内に存在しない(つまり、辞書式符号化対象データが辞書内のデータと一致しない)場合に辞書式符号化の結果として出力される情報であり、当該辞書式符号化対象データを示す情報に相当する。
マッチ長情報102は、辞書式符号化対象データと一致する過去のデータがヒストリバッファ内に存在する(つまり、辞書式符号化対象データが辞書内のデータと一致する)場合に辞書式符号化の結果として出力される情報であり、当該辞書式符号化対象データと過去のデータとの一致する長さを示す情報に相当する。
距離情報103は、辞書式符号化対象データと一致する過去のデータがヒストリバッファ内に存在する場合に辞書式符号化の結果として出力される情報であり、当該過去のデータのヒストリバッファ内の位置(当該過去のデータまでの距離)を示す情報に相当する。
なお、距離情報103は、第1距離情報103aに、拡張bitに相当する第2距離情報103bが付加されたデータ構造を有していてもよい。同様に、マッチ長情報102は、第1マッチ長情報102aに、拡張bitに相当する第2マッチ長情報102bが付加されたデータ構造を有していてもよい。
また、上記したように辞書式符号化対象データと一致する過去のデータがヒストリバッファ内に存在する場合には、マッチ長情報102及び距離情報103は、一組の情報として出力される。
本実施形態においては上記したリテラル情報、マッチ長情報及び距離情報(第1及び第2距離情報)の各々をシンボルとして含むシンボル列に対してエントロピー符号化が行われるが、以下の説明においては、当該シンボル列に含まれるリテラル情報をシンボルL、マッチ長情報をシンボルML、第1距離情報をシンボルCN、第2距離情報をシンボルEXと称する。
ここで、例えば図18に示すシンボル列201に対するエントロピー符号化が圧縮装置2eにおける第1及び第2チャネルで行われる場合を想定する。なお、図18に示すシンボル列201においては、複数のシンボルS0~S7が順番に配置されている。シンボルS0はシンボルML0であり、シンボルS1はシンボルCN0であり、シンボルS2はシンボルEX0であり、シンボルS3はシンボルL1であり、シンボルS4はシンボルL2であり、シンボルS5はシンボルML3であり、シンボルS6はシンボルCN3であり、シンボルS7はシンボルEX3である。
このような図18に示すシンボル列における偶数番目のシンボルを第1サブストリームとして第1チャネルに振り分け、記数番目のシンボルを第2サブストリームとして第2チャネルに振り分けるものとすると、第1サブストリームはシンボルML0、シンボルEX0、シンボルL2及びシンボルCN3から構成され、第2サブストリームはシンボルCN0、シンボルL1、シンボルML3、シンボルEX3から構成される。
このような第1及び第2サブストリームに対するエントロピー符号化を第1及び第2チャネルで並列に行う場合、例えばシンボルML0とシンボルCN0とに対するエントロピー符号化が同一のサイクルで行われる。この場合、エントロピー符号化が行われることによってシンボルML0から変換された符号語に対するエントロピー復号化と、シンボルCN0から変換された符号語とに対するエントロピー復号化とは、伸張装置2fにおいて同一のサイクルで行われる。なお、以下の説明においては、例えばシンボルML0から変換された符号語を符号語ML0´、シンボルCN0から変換された符号語を符号語CN0´のように表記するが、他の符号語についても同様とする。
ここで、上記したように辞書式符号化対象データと一致する過去のデータがヒストリバッファ内に存在する場合には辞書式符号化の結果としてマッチ長情報及び距離情報(第1及び第2距離情報)が一組の情報として出力され、シンボル列201においてシンボルML(マッチ長情報)の後にはシンボルCN(第1距離情報)及びシンボルEX(第2距離情報)が配置されている。この場合、シンボルML(マッチ長情報)、シンボルCN(第1距離情報)及びシンボルEX(第2距離情報)の間には、依存関係があるといえる。
このような依存関係が存在する符号語ML0´と符号語CN0´とに対してエントロピー復号化を行う場合、当該符号語ML0´に対するエントロピー復号化により当該符号語ML0´をシンボルML0に変換することによって当該シンボルML0の後続にシンボルCNが配置されていることを認識した上で、当該符号語CN0´に対するエントロピー復号化が行われる。これにより、符号語CN0´を適切にシンボルCNに変換することができる。換言すれば、符号語ML0´に対するエントロピー復号化が行われてからでないと、符号語CN0´を適切にシンボルCN0に変換することができない。なお、シンボルEX0から変換された符号語EX0´に対するエントロピー復号化についても同様である。
これによれば、上記したように符号語ML0´及び符号語CN0´に対するエントロピー復号化が同一のサイクルで並列に行われる構成の場合、当該符号語CN0´を当該サイクル内でシンボルCN0に変換することができず、伸張装置2fにおけるスループットを向上させることができない。
このため、本実施形態においては、上記した事情を考慮して、伸張装置2fにおけるスループットを向上させるための構成を有する。
図19は、本実施形態に係る圧縮装置2e及び伸張装置2fの構成の一例を示す。なお、図19においては、前述した図2と同様の部分については同一参照符号を付してその詳しい説明を省略する。ここでは、図2と異なる部分について主に説明する。
本実施形態に係る圧縮装置2eは、並び替え部19を含む。並び替え部19は、上記したようにシンボル列を入力し、当該シンボル列のうちの依存関係がある複数のシンボル(例えば、シンボルML0及びシンボルCN0等)から変換された複数の符号語に対するエントロピー復号化が伸張装置2f(第1及び第2チャネル)において同一のサイクルで行われないように、当該シンボル列(に含まれる複数のシンボル)を並び変える。
また、本実施形態に係る伸張装置2fは、通知部29及び並び替え部30を含む。通知部29は、第1復号化部24及び第2復号化部27によってパケットに含まれる符号語から変換されたシンボルを当該第1復号化部24及び第2復号化部27から入力し、当該シンボルをデインターリーブ部28に出力する。また、通知部29は、第1及び第2チャネルのうち少なくとも一方における所定のサイクルで符号語ML´(シンボルMLから変換された符号語)がシンボルMLに変換された(つまり、第1復号化部24または第2復号化部27からシンボルMLが入力された)場合、次のサイクルで符号語CN´(シンボルCNから変換された符号語)に対するエントロピー復号化を行うことを第1復号化部24及び第2復号化部27のうちの少なくとも一方に通知する。
この場合、第1復号化部24及び第2復号化部27は、通知部29による通知に従って符号語CNに対するエントロピー復号化を行い、当該符号語CN´をシンボルCNに変換する。
なお、本実施形態において、デインターリーブ部28から出力されるシンボル列は、上記した圧縮装置2eに含まれる並び替え部19によって複数のシンボルが並び替えられた後のシンボル列である。
このため、並び替え部30は、デインターリーブ部28から出力されたシンボル列(に含まれる複数のシンボル)を並び替えることによって、上記した並び替え部19によって複数のシンボルが並び替えられる前のシンボル列を出力する。
以下、本実施形態に係る圧縮装置2e及び伸張装置2fの動作の一例について説明する。ここでは、上記した圧縮装置2eに含まれる並び替え部19と、伸張装置2fに含まれる通知部29及び並び替え部30との動作について主に説明する。
まず、図20を参照して、圧縮装置2eに含まれる並び替え部19の動作について説明する。ここでは、上記した図18に示すシンボル列201が並び替え部19に入力された場合を想定する。
ここで、上記したようにシンボルML、シンボルCN及びシンボルEXの間には依存関係があるが、シンボルMLは、エントロピー符号化によってシンボルCN及びシンボルEXから変換された符号語CN´及び符号語EX´に対するエントロピー復号化に影響を与えるシンボルであるため、当該依存関係において依存の元となるシンボルであるということができる。一方、シンボルCN及びシンボルEXは、依存関係において依存を受けるシンボルであるということができる。
この場合、並び替え部19は、図20に示すように、シンボル列201に含まれる複数のシンボルS0~S7を、依存の元となるシンボルのグループ(以下、第1グループと表記)と依存を受けるシンボルのグループ(以下、第2グループと表記)とに分類する。なお、シンボルLは他のシンボルと依存関係のない(つまり、依存の元となるシンボル及び依存を受けるシンボルではない)シンボルであるが、当該シンボルL1は第1グループに分類されるものとする。
図20に示す例では、シンボルS0~S7のうちのシンボルS0、S3、S4及びS5が第1グループに分類され、シンボルS1、S2、S6及びS7が第2グループに分類される。
なお、第1グループに分類されたシンボルS0、S3、S4及びS5と、第2グループに分類されたシンボルS1、S2、S6及びS7とは、それぞれ図示しないバッファに格納される。
ここで、前述した第1実施形態において説明したように圧縮装置2e及び伸張装置2fが動作する場合、例えば第1及び第2サブストリームにおいて同一の順番に配置されたシンボルから変換された2つの符号語に対するエントロピー復号化が同一のサイクルで並列に行われることになる。
このため、並び替え部19は、例えば第1グループに分類されたシンボル(依存の元となるシンボル)の順番と、第2グループに分類されたシンボル(依存を受けるシンボル)の順番とが第1及び第2サブストリームにおいて異なるように、シンボルS0~S7を並べ替える。
この場合、前述した第1実施形態において説明したようにインターリーブ部11が偶数番目のシンボルを第1チャネルに振り分け、奇数番目のシンボルを第2チャネルに振り分けるものとすると、シンボル列の偶数番目に依存の元となるシンボルが配置され、その次に続く奇数番目に依存を受けるシンボルが配置されている場合に、第1サブストリームにおける依存の元となるシンボルの順番と、第2サブストリームにおける依存を受けるシンボルとの順番とが同一となる。
このため、図20に示す例においては、第1グループに分類されたシンボルS0、S3、S4及びS5のうちの2つのシンボルS0及びS3をシンボル列の先頭に配置し、第2グループに分類されたシンボルS1、S2、S6及びS7のうちの2つのシンボルS1及びS2を当該シンボルS0及びS3の次に配置する。同様に、並び替え部19は、第1グループに分類されたシンボルS0、S3、S4及びS5のうちの2つのシンボルS4及びS5を上記したシンボルS1及びS2の次に配置し、第2グループに分類されたシンボルS1、S2、S6及びS7のうちの2つのシンボルS6及びS7を当該シンボルS4及びS5の次に配置する。
これによれば、図20に示すように、上記した複数のシンボルS0~S7を順に含むシンボル列201は、シンボルS0、S3、S1、S2、S4、S5、S6及びS7を順番に含むシンボル列202に並び変えられる。
例えば第1実施形態に係る圧縮装置2eでは、インターリーブ部11がシンボル列201に含まれる複数のシンボルS0~S7を第1サブストリーム(シンボルS0、S2、S4及びS6)及び第2サブストリーム(シンボルS1、S3、S5及びS7)に分割して第1及び第2チャネルに振り分けるため、例えばシンボルS0(依存の元となるシンボルML0)及びシンボルS1(依存を受けるシンボルCN0)から変換された2つの符号語に対するエントロピー復号化が同一のサイクルで並列されることになり、伸張装置2fにおけるスループットを向上させることができない。
これに対して、本実施形態に係る圧縮装置2eでは、図20において説明したようにシンボル列201をシンボル列202に並び替えることによって、インターリーブ部11は、当該シンボル列202を第1サブストリーム(シンボルS0、S1、S4及びS6)及び第2サブストリーム(シンボルS3、S2、S5及びS7)に分割し、当該第1サブストリームを第1チャネルに振り分け、当該第2サブストリームを第2チャネルに振り分ける。
これによれば、例えば依存の元となるシンボルML0から変換された符号語ML0´に対するエントロピー復号化は、シンボルL1から変換された符号語L1´に対するエントロピー復号化と並列に行われる。また、依存を受けるシンボルCN0から変換された符号語CN0´に対するエントロピー復号化は、シンボルEX0から変換された符号語EX0´に対するエントロピー復号化と並列に行われる。
すなわち、上記したようなシンボル列201からシンボル列202への並び替えが実施された場合には、依存の元となるシンボルML0から変換された符号語ML0´に対するエントロピー復号化と、依存を受けるシンボルCN0から変換された符号語CN0´(またはシンボルEX0から変換された符号語EX0´)に対するエントロピー復号化とが同一サイクルで並列に行われることを回避することができる。
なお、第1符号化部12及び第2符号化部15は第1及び第2サブストリームを構成する複数のシンボルに対するエントロピー符号化を行うが、当該エントロピー符号化は、当該シンボルの種類に応じて異なる符号化テーブルを用いて行われる。換言すれば、例えばシンボルML0に対するエントロピー符号化は、当該シンボルML0(つまり、リテラル情報)に対応する符号化テーブルを用いて行われる。他のシンボルに対するエントロピー符号化を行う場合についても同様である。なお、符号化テーブルは、各シンボルに対して適切なエントロピー符号化を行う(つまり、当該シンボルを符号語に変換する)ための情報であり、例えば第1符号化部12及び第2符号化部15において予め保持されていればよい。
前述した第1実施形態等においては説明を省略したが、当該第1実施形態における第1符号化部12及び第2符号化部15においても同様に符号化テーブルを用いたエントロピー符号化が行われる。
本実施形態に係る圧縮装置2eの動作は、上記したシンボル列を並び替える点以外は、前述した第1実施形態と同様である。
次に、図21を参照して、伸張装置2fに含まれる通知部29の動作について説明する。図21は、上記した図20に示すシンボル列202に対するエントロピー符号化が行われた結果として圧縮装置2eから出力された圧縮ストリームを入力した伸張装置2fにおいて、第1及び第2チャネルの各々で符号語から変換されるシンボルをサイクル毎に示している。なお、図21においては、単に符号語がシンボルに変換されるタイミングとしてのサイクルを示しており、前述した第1実施形態において説明したパケット要求に応じたパケットが第1パケットバッファ23及び第2パケットバッファ26に格納される処理が実行されるサイクルについては省略されている。
図21に示すように、サイクル0においては、第1チャネルで符号語ML0´がシンボルML0に変換され、第2チャネルで符号語L1´がシンボルL1に変換されている。
この場合、通知部29は、シンボルML0(依存の元となるシンボル)が得られたことにより、当該シンボルML0からの依存を受けるシンボルCN0から変換された符号語CN0´に対するエントロピー復号化を次のサイクル1で行うことを第1チャネル(第1復号化部24)に通知する。同様に、通知部29は、シンボルML0からの依存を受けるシンボルEX0から変換された符号語EX0´に対するエントロピー復号化を次のサイクル1で行うことを第2チャネル(第2復号化部27)に通知する。
ここで、第1復号化部24及び第2復号化部27は、符号語をシンボルに変換するための情報として、当該符号語の種類に応じた異なる復号化テーブルを予め保持しているものとする。この場合、第1復号化部24は、サイクル1において、通知部29からの通知に従った復号化テーブル(つまり、符号語CN´に対応する復号化テーブル)を用いて、符号語CN0´をシンボルCN0に変換することができる。同様に、第2復号化部27は、サイクル1において、通知部29からの通知に従った復号化テーブル(つまり、符号語EX´に対応する復号化テーブル)を用いて、複合語EX0´をシンボルEX0に変換することができる。
なお、上記したように辞書式符号化において辞書式符号化対象データと一致する過去のデータがヒストリバッファ内に存在する場合に、マッチ長情報(シンボルML)、第1距離情報(シンボルCN)及び第2距離情報(シンボルEX)の順で辞書式符号化の結果が出力されること等が予め定められていれば、通知部29は、第1チャネルで符号語CN0´に対するエントロピー復号化が行われ、第2チャネルで符号語EX0´に対するエントロピー復号化が行われること(つまり、符号語CN0´及び符号語EX0´に対するエントロピー復号化を行うチャネル)を特定(検出)することができる。
詳しい説明については省略するが、サイクル2においては第1チャネルで符号語ML3´がシンボルML3に変換されるため、通知部29は、シンボルML3からの依存を受けるシンボルCN3から変換された符号語CN3´に対するエントロピー復号化を次のサイクル3で行うことを第1チャネル(第1復号化部24)に通知し、シンボルML3からの依存を受けるシンボルEX3から変換された符号語EX3´に対するエントロピー復号化を次のサイクル3で行うことを第2チャネル(第2復号化部27)に通知する。これにより、第1復号化部24は、サイクル3において、通知部29からの通知に従った復号化テーブルを用いて符号語CN3´をシンボルCN3に変換することができる。同様に、第2復号化部27は、サイクル3において、通知部29からの通知に従った復号化テーブルを用いて符号語EX3´をシンボルEX3に変換することができる。
次に、伸張装置2fに含まれる並び替え部30の動作について説明する。ここでは、便宜的に、図20を参照して説明する。
まず、デインターリーブ部28から出力されるシンボル列は、圧縮装置2eに含まれる並び替え部19によって並び変えられた後のシンボル列である。
ここで、上記した図20に示すシンボルS0、S3、S1、S2、S4、S5、S6及びS7を順番に含むシンボル列202がデインターリーブ部28から出力された場合を想定する。この場合、並び替え部30は、上記した並び替え部19とは逆の処理を実行することによって、シンボル列202をシンボル列201に並び変える。
具体的には、並び替え部30は、シンボル列202に含まれる複数のシンボルを上記した第1及び第2グループに分類する。この場合、第1グループにはシンボルS0、S3、S4及びS5が分類され、第2グループにはシンボルS1、S2、S6及びS7が分類される。
並び替え部30は、上記したように第1及び第2グループに分類されたシンボルを先頭から順に(つまり、入力順に)配置していくことにより、シンボル列201(における複数のシンボルS0~S7)の並びを再現する。
具体的には、第1グループの先頭のシンボルはシンボルS0であり、当該シンボルS0はシンボルML0である。一方、第2グループの先頭のシンボルはシンボルS1であり、当該シンボルS1はシンボルCN0である。この場合、シンボルCNはシンボルMLの後に続くシンボルであるため、シンボルS0(つまり、シンボルML0)をシンボル列の先頭に配置し、当該シンボルS0の次にシンボルS1(つまり、シンボルCN0)を配置する。
次に、第1グループのシンボルS0の次のシンボルはシンボルS3であり、当該シンボルS3はシンボルL1である。一方、第2グループのシンボルS1の次のシンボルはシンボルS2であり、当該シンボルS2はシンボルEX0である。この場合、上記したようにシンボル列に最後に配置されたシンボルS1(シンボルCN0)の次にはシンボルEX0が続くため、当該シンボルS1の次にシンボルS2を配置する。
なお、第2グループのシンボルS2の次のシンボルはシンボルS6であり、当該シンボルS6はシンボルCN3である。シンボルCNはシンボルMLの後に続くシンボルであるため、上記したようにシンボル列に最後に配置されたシンボルS2の次には、シンボルS3(つまり、シンボルL1)が配置される。
次に、第1グループのシンボルS3の次のシンボルはシンボルS4であり、当該シンボルS4はシンボルL2である。上記したようにシンボル列に最後に配置されたシンボルS3はシンボルL1であり、当該シンボルL1の次にシンボルS6(シンボルCN3)を配置することはできないため、当該シンボルS3の次にはシンボルS4が配置される。
更に、第1グループのシンボルS4の次のシンボルはシンボルS5であり、当該シンボルS5はシンボルML3である。上記した第2グループのシンボルS6はシンボルCN3であり、シンボルML3の後に続くシンボルであるため、シンボル列に最後に配置されたシンボルS4の次にはシンボルS5(つまり、シンボルML3)が配置される。
このようにシンボルS5が配置された後は、第2グループのシンボルS6(シンボルCN3)及びシンボルS7(シンボルEX3)が順にシンボル列に配置されればよい。
並び替え部30においては、上記したような処理が実行されることにより、シンボル列202をシンボル列201に並べ替えることができる。
本実施形態においては、説明の便宜のために、圧縮装置2eが第1及び第2チャネルでエントロピー符号化を行い、伸張装置2fが第1及び第2チャネルでエントロピー復号化を行うものとして説明したが、当該チャネルの数は3つ以上であってもよい。
以下、図22を参照して、チャネルの数が8つである場合における圧縮装置2eに含まれる並び替え部19の動作について簡単に説明する。ここでは、図22に示すように複数のシンボルS0~S17を含むシンボル列301を並び替える場合を想定している。
まず、並び替え部19は、シンボル列301に含まれる複数のシンボルS0~S17を第1及び第2グループに分類する。この場合、第1グループにはシンボルS0、S1、S4、S5、S6、S9、S12、S13、S14及びS17が分類され、第2グループにはシンボルS2、S3、S7、S8、S10、S11、S15及びS16が分類される。
ここで、インターリーブ部11がシンボル列の先頭のシンボルから順に当該シンボルを8つのチャネル(以下、チャネル0~チャネル7と表記)に振り分けるものとすると、並び替え部19は、第1グループに分類された複数のシンボルのうちの先頭から8つのシンボルS0、S1、S4、S5、S6、S9、S12及びS13をシンボル列の先頭に配置することにより、シンボル列302aを生成する。この8つのシンボルは、伸張装置2fにおけるチャネル0~チャネル8の各々において最初のサイクルで符号語から変換されるシンボルである。
次に、並び替え部19は、上記したシンボル列302aに配置されたシンボル(第1グループに分類されたシンボル)のうちのシンボルMLの数に基づいて、第2グループに分類されたシンボルが配置される数を決定する。本実施形態においては、1つの依存の元となるシンボルMLに対して2つの依存を受けるシンボルCN及びEXが存在するため、第2グループに分類されたシンボルが配置される数は、シンボルMLの数×2となる。
図22に示す例では、シンボル列302aに配置されたシンボルMLの数は3つであり、第2グループに分類されたシンボルが配置される数として6が決定される。
この場合、並び替え部19は、第2グループに分類された複数のシンボルの先頭から6つのシンボルCN1(シンボルS2)、シンボルEX1(シンボルS3)、シンボルCN4(シンボルS7)、シンボルEX4(シンボルS8)、シンボルCN5(シンボルS10)及びシンボルEX5(シンボルS11)を取り出し、当該6つのシンボルをシンボル列302aに追加する。これにより、シンボル列302bが生成される。
以下、第1グループに分類された残りのシンボルがシンボル列202bに追加され、当該追加されたシンボルの後ろに第2グループに分類された残りのシンボルが更に追加される。
これにより、並び替え部19は、シンボルS0~S17を順番に含むシンボル列201を、シンボルS0、S1、S4、S5、S6、S9、S12、S13、S2、S3、S7、S8、S10、S11、S14、S17、S15及びS16を順番に含むシンボル列302cに並び替えることができる。
ここで、図23は、上記した図22に示すシンボル列302cに対するエントロピー符号化が行われた結果として圧縮装置2eから出力された圧縮ストリームを入力した伸張装置2fにおいて、チャネル0~チャネル7の各々で符号語から変換されるシンボルをサイクル毎に示している。
図23に示すように、サイクル0においては、チャネル1で符号語ML1´がシンボルML1に変換され、チャネル4で符号語ML4´がシンボルML3に変換され、チャネル5で符号語ML5´がシンボルML5に変換されている。
この場合、通知部29は、サイクル0において符号語ML´から変換されたシンボルMLの数をカウントし、当該カウントされたシンボルMLの数に基づいて、サイクル0の次のサイクル1で符号語CN´及びEX´に対するエントロピー復号化を行うことを通知するチャネル(以下、通知対象チャネルと表記)を特定(検出)する。
なお、図22において説明したようにシンボル列301がシンボル列302cに並び替えられている場合、通知対象チャネルはチャネル0~チャネルmであり、当該mは、「カウントされたシンボルMLの数×2-1」により算出される。
図23に示す例では、サイクル0において符号語ML´から変換されたシンボルMLの数は3つ(シンボルML1、シンボルML3及びシンボルML4)であるため、mは5である。
この場合、通知部29は、チャネル0~チャネル5を通知対象チャネルとして特定し、符号語CN´及びEX´に対するエントロピー復号化を次のサイクル1で行うことを当該チャネル0~チャネル5に対して通知する。
なお、図23に示す例では、チャネル0、チャネル2及びチャネル4に対して符号語CN´に対するエントロピー符号化を行うことが通知され、チャネル1、チャネル3及びチャネル5に対して符号語EX´に対するエントロピー符号化を行うことが通知される。通知部29からの通知に従った復号化テーブルを用いたエントロピー復号化が各チャネル(の復号化部)において行われることについては、上記した通りである。
また、サイクル1においてチャネル1で符号語ML1´がシンボルML1に変換された場合には、サイクル1の次のサイクル2において符号語CN´に対するエントロピー復号化を行うことがチャネル0に対して通知され、当該サイクル2において符号語EX´に対するエントロピー復号化を行うことがチャネル1に対して通知される。
上記したように本実施形態に係る圧縮装置2eにおいては、シンボル列のうちの依存関係がある複数のシンボル(第3シンボル)から変換された複数の符号語(第3符号語)に対するエントロピー復号化が同一のサイクルで行われないようにシンボル列が並び替えられ、当該並び替えられたシンボル列に従って、当該シンボル列が第1及び第2サブストリームに分割される。
この場合、例えば第1(または第2)サブストリームにおける依存の元となるシンボルMLの順番と、当該第2(または第1)サブストリームにおける依存を受けるシンボルCN及びEXの順番とが異なるように、シンボル列が並び替えられる。
本実施形態においては、このような構成により、シンボルMLから変換された符号語ML´に対するエントロピー復号化とシンボルCN及びEXから変換された符号語CN´及びEX´に対するエントロピー復号化とが並列に行われない(つまり、同一のサイクルにおけるチャネル間での依存間関係がなくなる)ため、符号語ML´に対するエントロピー復号化と同一のサイクルで符号語CN´及びEX´に対するエントロピー復号化を行うことができないような事態を回避し、伸張装置2fにおけるスループットを向上させることができる。
なお、本実施形態に係る伸張装置2fにおいては、例えばサイクル0(第1サイクル)で符号語から変換されたシンボルがシンボルML(他のシンボルCN及びEXと依存関係があるシンボル)である場合、サイクル0の次のサイクル1(第2サイクル)で当該シンボルCN及びEXから変換された符号語CN´及びEX´に対するエントロピー復号化を行うことを第1及び第2チャネル(第1復号化部24及び第2復号化部27)のうちの少なくとも一方に通知し、当該第1復号化部24及び第2復号化部27のうちの少なくとも一方は、当該通知に従ってエントロピー復号化を行う。
この場合、サイクル1において符号語CN´及びEX´に対するエントロピー復号化を行うチャネルは、例えばサイクル0において符号語から変換された依存の元となるシンボルの数に基づいて特定される。
また、圧縮装置2eにおいて第1符号化部12及び第2符号化部15は、シンボル(リテラル情報、マッチ長情報及び距離情報)の各々に対するエントロピー符号化を当該シンボルの種類に応じた符号化テーブルを用いて行い、伸張装置2fにおいて第1復号化部24及び第2復号化部27は、通知に従った復号化テーブル(つまり、符号語の種類に応じた復号化テーブル)を用いてエントロピー復号化を行う。
本実施形態においては、上記した構成により、伸張装置2fにおけるエントロピー復号化を適切に行うことが可能となる。
なお、本実施形態においては前述した第1実施形態においてシンボル列を並び替える構成を採用する場合について説明したが、本実施形態は、前述した第2実施形態と組み合わせても構わない。すなわち、本実施形態は、前述した第2実施形態においてシンボル列を並び替える構成であってもよい。
以上述べた少なくとも1つの実施形態によれば、圧縮効率を向上させることが可能な圧縮装置及び伸張装置を提供することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…メモリシステム、2…コントローラ、2a…ホストインタフェース、2b…CPU、2c…NANDインタフェース、2d…DRAMインタフェース、2e…圧縮装置、2f…伸張装置、3…NAND型フラッシュメモリ、4…DRAM、11…インターリーブ部、12…第1符号化部、13…第1パケット生成部、14…第1パケット要求生成部(第1要求生成部)、15…第2符号化部、16…第2パケット生成部、17…第2パケット要求生成部(第2要求生成部)、18…マルチプレクサ、19…並び替え部、21…デマルチプレクサ、22…第1パケット要求生成部(第3要求生成部)、23…第1パケットバッファ、24…第1復号化部、25…第2パケット要求生成部(第4要求生成部)、26…第2パケットバッファ、27…第2復号化部、28…デインターリーブ部、29…通知部、30…並び替え部。

Claims (25)

  1. 入力されたシンボル列を、複数の第1シンボル及び前記複数の第1シンボルとは異なる複数の第2シンボルに分割するインターリーブ部と、
    前記複数の第1シンボルに対して符号化を行うことによって前記複数の第1シンボルを複数の第1符号語に変換する第1符号化部と、
    前記複数の第1符号語を含む第1パケットを生成する第1パケット生成部と、
    前記複数の第1符号語の各々の符号長に基づいて、可変長パケットのサイズを含む第1パケット要求を生成する第1要求生成部と、
    前記複数の第2シンボルに対して符号化を行うことによって前記複数の第2シンボルを複数の第2符号語に変換する第2符号化部と、
    前記複数の第2符号語を含む第2パケットを生成する第2パケット生成部と、
    可変長パケットのサイズを含む第2パケット要求を生成する第2要求生成部と、
    前記第1パケット要求に含まれる可変長パケットのサイズに基づいて前記第1パケットから第1可変長パケットを切り出すとともに、前記第2パケット要求に含まれる可変長パケットのサイズに基づいて前記第2パケットから第2可変長パケットを切り出し、前記第1及び第2可変長パケットを含む圧縮ストリームを出力するマルチプレクサと
    を具備する圧縮装置。
  2. 前記出力された圧縮ストリームから前記シンボル列を出力する伸張装置は、前記圧縮ストリームに含まれる第1可変長パケットに含まれる複数の第1符号語に対して復号化を行うことによって前記複数の第1符号語を前記複数の第1シンボルに変換する第1復号化部及び前記圧縮ストリームに含まれる第2可変長パケットに含まれる複数の第2符号語に対して復号化を行うことによって前記複数の第2符号語を前記複数の第2シンボルに変換する第2復号化部を含み、
    前記第1要求生成部は、前記第1復号化部が前記複数の第1符号語に対して復号化を行う際に前記第1可変長パケットを格納する第1バッファの状態を模擬することによって、前記第1パケット要求を生成し、
    前記第2要求生成部は、前記第2復号化部が前記複数の第2符号語に対して復号化を行う際に前記第2可変長パケットを格納する第2バッファの状態を模擬することによって、前記第2パケット要求を生成する
    請求項1記載の圧縮装置。
  3. 前記第1要求生成部は、前記模擬された第1バッファに格納されるパケットの残量に基づいて前記第1パケット要求に含まれる可変長パケットのサイズを決定し、
    前記第2要求生成部は、前記模擬された第2バッファに格納されるパケットの残量に基づいて前記第2パケット要求に含まれる可変長パケットのサイズを決定する
    請求項2記載の圧縮装置。
  4. 前記第1要求生成部は、前記模擬された第1バッファに格納されるパケットの残量が前記符号化における最大符号長以上となるように前記第1パケット要求に含まれる可変長パケットのサイズを決定し、
    前記第2要求生成部は、前記模擬された第2バッファに格納されるパケットの残量が前記符号化における最大符号長以上となるように前記第2パケット要求に含まれる可変長パケットのサイズを決定する
    請求項3記載の圧縮装置。
  5. 前記第1要求生成部は、前記模擬された第1バッファに格納されるパケットに対する処理量に基づいて前記第1パケット要求に含まれる可変長パケットのサイズを決定し、
    前記第2要求生成部は、前記模擬された第2バッファに格納されるパケットに対する処理量に基づいて前記第2パケット要求に含まれる可変長パケットのサイズを決定する
    請求項2記載の圧縮装置。
  6. 前記圧縮ストリームの先頭には、前記第1バッファの容量に応じたサイズの第1可変長パケット及び前記第2バッファの容量に応じたサイズの第2可変長パケットが含まれる請求項2または5記載の圧縮装置。
  7. 前記第1要求生成部は、前記複数の第1符号語の先頭から順に固定長パケットを生成した場合に、前記複数の第1符号語の各々が前記固定長パケットの境界を跨ぐかを判定し、当該判定結果に応じて前記第1パケット要求に含まれる可変長パケットのサイズを決定し、
    前記第2要求生成部は、前記複数の第2符号語の先頭から順に前記固定長パケットを生成した場合に、前記複数の第2符号語の各々が前記固定長パケットの境界を跨ぐかを判定し、当該判定結果に応じて前記第2パケット要求に含まれる可変長パケットのサイズを決定する
    請求項1記載の圧縮装置。
  8. 前記第1符号化部は、前記複数の第1シンボルに対して可変長符号化を行い、
    前記第2符号化部は、前記複数の第2シンボルに対して可変長符号化を行う
    請求項1~7のいずれか一項に記載の圧縮装置。
  9. 前記第1パケット要求に含まれる可変長パケットのサイズ及び前記第2パケット要求に含まれる可変長パケットのサイズは、予め定められた複数のサイズの中から選択される請求項1~8のいずれか一項に記載の圧縮装置。
  10. 前記出力された圧縮ストリームから前記シンボル列を出力する伸張装置において前記シンボル列のうちの依存関係がある複数の第3シンボルから変換された複数の第3符号語に対する復号化が同一のサイクルで行われないように前記シンボル列を並び替える並び替え部を更に具備し、
    前記インターリーブ部は、前記並び替えられたシンボル列に従って、前記シンボル列を前記複数の第1シンボル及び前記複数の第2シンボルに分割する
    請求項1記載の圧縮装置。
  11. 前記依存関係かある複数の第3シンボルは、依存の元となるシンボル及び依存を受けるシンボルを含み、
    前記複数の第1シンボルまたは前記複数の第2シンボルにおける前記依存の元となるシンボルの順番は、前記複数の第1シンボルまたは前記第2シンボルにおける前記依存を受けるシンボルの順番とは異なる
    請求項10記載の圧縮装置。
  12. 前記シンボル列は、非圧縮データに対して辞書式符号化が行われた結果を含み、
    前記辞書式符号化は、前記非圧縮データを当該非圧縮データよりも過去のデータの相対参照に変換する符号化手法であり
    前記辞書式符号化が行われた結果には、前記非圧縮データが過去のデータと一致しない場合における前記非圧縮データを示す第1情報と、前記非圧縮データが過去のデータに一致する場合における前記非圧縮データと前記過去のデータとが一致する長さを示す第2情報及び前記過去のデータの位置を示す第3情報とを含み、
    前記依存の元となるシンボルは、前記第2情報を含み、
    前記依存を受けるシンボルは、前記第3情報を含む
    請求項11記載の圧縮装置。
  13. 前記第1及び第2符号化部は、前記第1~第3情報の各々に対する符号化を異なる符号化テーブルを用いて行う請求項12記載の圧縮装置。
  14. 請求項1~9のいずれか一項に記載の圧縮装置から出力された圧縮ストリームを入力する伸張装置において、
    前記圧縮ストリームから前記第1及び第2可変長パケットを切り出すデマルチプレクサと、
    可変長パケットのサイズを含む第3パケット要求を生成する第3要求生成部と、
    前記第3パケット要求に基づいて前記デマルチプレクサから出力された第1可変長パケットに含まれる複数の第1符号語の各々に対する復号化を行うことによって前記複数の第1符号語を前記複数の第1シンボルに変換する第1復号化部と、
    可変量パケットのサイズを含む第4パケット要求を生成する第4要求生成部と、
    前記第4パケット要求に基づいて前記デマルチプレクサから出力された第2可変長パケットに含まれる複数の第2符号語の各々に対する復号化を行うことによって前記複数の第2符号語を前記複数の第2シンボルに変換する第2復号化部と、
    前記複数の第1シンボル及び前記複数の第2シンボルを含むシンボル列を出力するデインターリーブ部と
    を具備する伸張装置。
  15. 前記第3パケット要求に基づいて前記デマルチプレクサから出力された第1可変長パケットを格納する第1バッファと、
    前記第4パケット要求に基づいて前記デマルチプレクサから出力された第2可変長パケットを格納する第2バッファを
    を更に具備し、
    前記第3要求生成部は、前記第1バッファの状態に基づいて前記第3パケット要求に含まれる可変長パケットのサイズを決定し、
    前記第4要求生成部は、前記第2バッファの状態に基づいて前記第4パケット要求に含まれる可変長パケットのサイズを決定する
    請求項14記載の伸張装置。
  16. 前記第3要求生成部は、前記第1バッファに格納されているパケットの残量に基づいて前記第3パケット要求に含まれる可変長パケットのサイズを決定し、
    前記第4要求生成部は、前記第2バッファに格納されているパケットの残量に基づいて前記第4パケット要求に含まれる可変長パケットのサイズを決定する
    請求項15記載の伸張装置。
  17. 前記第3要求生成部は、前記第1バッファに格納されているパケットの残量が前記符号化における最大符号長以上となるように前記第3パケット要求に含まれる可変長パケットのサイズを決定し、
    前記第4要求生成部は、前記第2バッファに格納されているパケットの残量が前記符号化における最大符号長以上となるように前記第4パケット要求に含まれる可変長パケットのサイズを決定する
    請求項16記載の伸張装置。
  18. 前記第3要求生成部は、前記第1バッファに格納されている第1可変長パケットに対する処理量に基づいて前記第3パケット要求に含まれる可変長パケットのサイズを決定し、
    前記第4要求生成部は、前記第2バッファに格納されている第2可変長パケットに対する処理量に基づいて前記第4パケット要求に含まれる可変長パケットのサイズを決定する
    請求項15記載の伸張装置。
  19. 前記第1バッファは、前記第1復号化部による復号化の前に、前記圧縮ストリームに含まれる複数の第1可変長パケットのうち先頭に位置し、前記第1バッファのサイズに応じたサイズの第1可変長パケットを格納し、
    前記第2バッファは、前記第2復号化部による復号化の前に、前記圧縮ストリームに含まれる複数の第2可変長パケットのうち先頭に位置する前記第2バッファのサイズに応じたサイズの第2可変長パケットを格納する
    請求項15または18記載の伸張装置。
  20. 前記第3要求生成部は、前記第1バッファに格納された第1可変長パケットに含まれる複数の第1符号語の先頭から順に固定長パケットを生成した場合に、前記複数の第1符号語の各々が前記固定長パケットの境界を跨ぐかを判定し、当該判定結果に応じて前記第3パケット要求に含まれる可変長パケットのサイズを決定し、
    前記第4要求生成部は、前記第2バッファに格納された第2可変長パケットに含まれる複数の第1符号語の先頭から順に固定長パケットを生成した場合に、前記複数の第2符号語の各々が前記固定長パケットの境界を跨ぐかを判定し、当該判定結果に応じて前記第4パケット要求に含まれる可変長パケットのサイズを決定する
    請求項15記載の伸張装置。
  21. 前記第1復号化部は、前記複数の第1符号語に対する可変長復号化を行い、
    前記第2復号化部は、前記複数の第2符号語に対する可変長復号化を行う
    請求項14~20のいずれか一項に記載の伸張装置。
  22. 前記第3パケット要求に含まれる可変長パケットのサイズ及び前記第4パケット要求に含まれる可変長パケットのサイズは、予め定められた複数の可変長パケットのサイズから選択される請求項14~21のいずれか一項に記載の伸張装置。
  23. 請求項10~13のいずれか一項に記載の圧縮装置から出力された圧縮ストリームを入力する伸張装置において、
    前記圧縮ストリームから前記第1及び第2可変長パケットを切り出すデマルチプレクサと、
    可変長パケットのサイズを含む第3パケット要求を生成する第3要求生成部と、
    前記第3パケット要求に基づいて前記デマルチプレクサから出力された第1可変長パケットに含まれる複数の第1符号語の各々に対する復号化を行うことによって前記複数の第1符号語を前記複数の第1シンボルに変換する第1復号化部と、
    可変長パケットのサイズを含む第4パケット要求を生成する第4要求生成部と、
    前記第4パケット要求に基づいて前記デマルチプレクサから出力された第2可変長パケットに含まれる複数の第2符号語の各々に対する復号化を行うことによって前記複数の第2符号語を前記複数の第2シンボルに変換する第2復号化部と、
    第1サイクルで前記第1符号語から変換された第1シンボルまたは前記第1サイクルで前記第2符号語から変換された第2シンボルが前記第3シンボルである場合に、前記第1サイクルの次の第2サイクルで他の第3シンボルから変換された第3符号語に対する復号化を行うことを前記第1及び第2復号化部のうちの少なくとも一方に通知する通知部と、
    前記複数の第1シンボル及び前記複数の第2シンボルを含むシンボル列を出力するデインターリーブ部と
    を具備し、
    前記第1及び第2復号化部のうちの少なくとも一方は、前記通知に従って前記第1及び第2符号語に対する復号化を行う
    伸張装置。
  24. 前記通知部は、前記第1サイクルにおいて前記第1及び第2符号語から変換された依存の元となるシンボルの数に基づいて、前記第2サイクルにおいて依存を受けるシンボルから変換された符号語に対する復号化を行う前記第1及び第2復号化部のうちの少なくとも一方を特定する請求項23記載の伸張装置。
  25. 前記第1及び第2復号化部は、前記通知に従った復号化テーブルを用いて、前記第1及び第2符号語に対する復号化を行う請求項24記載の伸張装置。
JP2021110809A 2021-07-02 2021-07-02 圧縮装置及び伸張装置 Pending JP2023007760A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021110809A JP2023007760A (ja) 2021-07-02 2021-07-02 圧縮装置及び伸張装置
US17/688,368 US11742876B2 (en) 2021-07-02 2022-03-07 Compression device and decompression device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021110809A JP2023007760A (ja) 2021-07-02 2021-07-02 圧縮装置及び伸張装置

Publications (1)

Publication Number Publication Date
JP2023007760A true JP2023007760A (ja) 2023-01-19

Family

ID=84786371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021110809A Pending JP2023007760A (ja) 2021-07-02 2021-07-02 圧縮装置及び伸張装置

Country Status (2)

Country Link
US (1) US11742876B2 (ja)
JP (1) JP2023007760A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022094108A (ja) * 2020-12-14 2022-06-24 キオクシア株式会社 圧縮装置および制御方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2414302C (en) * 2001-05-08 2007-09-18 Samsung Electronics Co., Ltd. Apparatus and method for generating codes in a communication system
US8189627B2 (en) 2006-06-28 2012-05-29 Samsung & Electronics Co., Ltd. System and method for digital communications using multiple parallel encoders
CN101512989B (zh) 2006-07-25 2013-08-14 汤姆森特许公司 利用交错播放和交叉分组前向纠错在基于因特网协议的无线网络中恢复突发分组丢失
US7728742B2 (en) 2008-09-30 2010-06-01 Apple Inc. Method and apparatus for compressing and decompressing data
US7800519B2 (en) 2008-09-30 2010-09-21 Apple Inc. Method and apparatus for compressing and decompressing data
US20120014433A1 (en) * 2010-07-15 2012-01-19 Qualcomm Incorporated Entropy coding of bins across bin groups using variable length codewords
EP2764692B1 (en) * 2011-10-06 2020-08-26 Fraunhofer Gesellschaft zur Förderung der angewandten Forschung e.V. Entropy coding buffer arrangement
CA2921893C (en) * 2013-08-19 2018-06-12 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
US9720821B2 (en) 2014-09-17 2017-08-01 Storart Technology Co. Ltd. Adaptive compression data storing method for non-volatile memories and system using the same
US10367604B2 (en) 2016-11-18 2019-07-30 International Business Machines Corporation Encoding variable length symbols to enable parallel decoding
US11121806B2 (en) * 2018-09-07 2021-09-14 Qualcomm Incorporated Decoding performance
US11671111B2 (en) 2019-04-17 2023-06-06 Samsung Electronics Co., Ltd. Hardware channel-parallel data compression/decompression

Also Published As

Publication number Publication date
US11742876B2 (en) 2023-08-29
US20230006689A1 (en) 2023-01-05

Similar Documents

Publication Publication Date Title
JP6009676B2 (ja) データ圧縮装置およびデータ伸張装置
JP2004515096A (ja) ハフマン・デコーディングを実施する方法
JP2007043595A (ja) 可変長符号復号化方法および装置ならびにデータ伸長装置
JP2023007760A (ja) 圧縮装置及び伸張装置
US7764205B2 (en) Decompressing dynamic huffman coded bit streams
US20060145898A1 (en) Fast compact decoder for huffman codes
JP2022086403A (ja) メモリシステム及び情報処理システム
JP4841496B2 (ja) 可変長符号復号化装置
JPH07107303A (ja) ハフマン符号の復号化方法
JP2022121983A (ja) 文字列検索装置及びメモリシステム
CN111384962B (zh) 数据压缩解压装置和数据压缩方法
CN111384963B (zh) 数据压缩解压装置和数据解压方法
CN113364466A (zh) 数据处理***
JP7305609B2 (ja) 受信したデータを処理する装置
US20240106459A1 (en) Compression device and compression method
US20230086658A1 (en) Data decompression device, data compression device, and memory system
US20090292699A1 (en) Nucleotide and amino acid sequence compression
JP2023132713A (ja) データ伸張装置、メモリシステム、およびデータ伸張方法
US20240223211A1 (en) Conversion device, memory system, decompression device, and method
CN111384968B (zh) 数据压缩解压装置和数据解压方法
JPH08316847A (ja) 可変長符号の復号装置
CN111384964B (zh) 数据压缩解压装置和数据压缩方法
JP3997158B2 (ja) コードビットグループに各々がポインタを持つサブチェーンを割り当てることによる入力情報項目の可変長エンコード方法、並びにエンコード及び/又は双方向デコード装置
KR100686354B1 (ko) 가변 트리를 이용한 허프만 복호화 방법 및 장치
CN117595884A (zh) 用于熵编码的压缩概率表