コンテンツにスキップ

圧縮

Functions

Name
int wc_Compress(byte * out, word32 outSz, const byte * in, word32 inSz, word32 flags)
この関数は、ハフマン符号化を使用して指定された入力データを圧縮し、出力をoutに格納します。出力バッファは入力バッファよりも大きくする必要があることに注意してください。圧縮が不可能な特定の入力が存在する場合でも、ルックアップテーブルが必要になるためです。出力バッファにはsrcSz + 0.1% + 12を割り当てることが推奨されます。
int wc_DeCompress(byte * out, word32 outSz, const byte * in, word32 inSz)
この関数は、ハフマン符号化を使用して指定された圧縮データを解凍し、出力をoutに格納します。

Functions Documentation

function wc_Compress

int wc_Compress(
    byte * out,
    word32 outSz,
    const byte * in,
    word32 inSz,
    word32 flags
)

この関数は、ハフマン符号化を使用して指定された入力データを圧縮し、出力をoutに格納します。出力バッファは入力バッファよりも大きくする必要があることに注意してください。圧縮が不可能な特定の入力が存在する場合でも、ルックアップテーブルが必要になるためです。出力バッファにはsrcSz + 0.1% + 12を割り当てることが推奨されます。

Parameters:

  • out 圧縮されたデータを格納する出力バッファへのポインタ
  • outSz 格納に使用できる出力バッファのサイズ
  • in 圧縮するメッセージを含むバッファへのポインタ
  • inSz 圧縮する入力メッセージのサイズ
  • flags 圧縮の動作を制御するフラグ。通常の解凍には0を使用します

See: wc_DeCompress

Return:

  • 入力データの圧縮に成功した場合、出力バッファに格納されたバイト数を返します
  • COMPRESS_INIT_E 圧縮用のストリームの初期化中にエラーが発生した場合に返されます
  • COMPRESS_E 圧縮中にエラーが発生した場合に返されます

Example

byte message[] = { // 圧縮するテキストを初期化 };
byte compressed[(sizeof(message) + sizeof(message) * .001 + 12 )];
// 少なくともsrcSz + .1% + 12を推奨

if( wc_Compress(compressed, sizeof(compressed), message, sizeof(message),
0) != 0){
    // データの圧縮エラー
}

function wc_DeCompress

int wc_DeCompress(
    byte * out,
    word32 outSz,
    const byte * in,
    word32 inSz
)

この関数は、ハフマン符号化を使用して指定された圧縮データを解凍し、出力をoutに格納します。

Parameters:

  • out 解凍されたデータを格納する出力バッファへのポインタ
  • outSz 格納に使用できる出力バッファのサイズ
  • in 解凍するメッセージを含むバッファへのポインタ
  • inSz 解凍する入力メッセージのサイズ

See: wc_Compress

Return:

  • Success 入力データの解凍に成功した場合、出力バッファに格納されたバイト数を返します
  • COMPRESS_INIT_E: 圧縮用のストリームの初期化中にエラーが発生した場合に返されます
  • COMPRESS_E: 圧縮中にエラーが発生した場合に返されます

Example

byte compressed[] = { // 圧縮されたメッセージを初期化 };
byte decompressed[MAX_MESSAGE_SIZE];

if( wc_DeCompress(decompressed, sizeof(decompressed),
compressed, sizeof(compressed)) != 0 ) {
    // データの解凍エラー
}

Updated on 2025-12-12 at 03:08:17 +0000