Rust 圧縮エンジン
自社開発圧縮エンジン、ファイルタイプ別に最適戦略をインテリジェントにディスパッチ
エンジン概要
Rustで記述、ファイルタイプ別に専用圧縮器へディスパッチ
SmartSlim圧縮エンジンはRustで記述されています。中心的なアプローチは、入力ファイルをタイプに応じて対応する専用圧縮器(画像、PDF、動画、音声、Office文書、OFDなど)にディスパッチすることです。各圧縮器はその形式の特点に最適な圧縮戦略を採用します。エンジンは画像特徴をインテリジェントに分析して圧縮スキームを自動選択し、動画/音声にはネイティブライブラリバインディングを使用して最高パフォーマンスを得て、Office文書には構造化再パッキング戦略を適用します。
インテリジェント画像圧縮
画像特徴を分析し、最適なエンコード戦略を自動選択
1. インテリジェント画像分析
エンジンはグレースケール分布やディテール複雑度などの画像特性を自動的に分析し、画像がバイナリ、ドキュメント、混合、写真のいずれのタイプかを判断し、後続の圧縮戦略の判断基準を提供します。
2. 自動分類
複数の特徴指標に基づき画像を4カテゴリに分類します:バイナリ(スキャン文書など)、ドキュメント(少色数)、混合(テキスト+写真)、写真(リッチカラー)。異なるカテゴリは異なる品質パラメータを使用します。
3. フォーマットディスパッチとエンコード最適化
入力フォーマットと分類結果に基づき、エンジンは専用エンコーダにディスパッチして対象最適化を行います。品質パラメータは圧縮レベル(低/中/高/最高)で調整され、圧縮率と鮮明さのバランスを取ります。
PDF圧縮
ダウンサンプリングとDPI制御で大幅なサイズ削減
-
埋め込み画像ダウンサンプリング:PDF内の埋め込み画像をダウンサンプリングし、圧縮レベルでターゲット解像度を調整して、可読性を保ちながらファイルサイズを大幅に削減します。
-
多段階品質制御:低、中、高、最高の4段階の圧縮レベルを提供します。レベルが高いほど圧縮率が大きくなります。ユーザーは用途に応じて柔軟に選択できます。
動画・音声圧縮
ネイティブライブラリバインディング、プロセスオーバーヘッドなし
動画圧縮
ネイティブライブラリバインディングに基づき(コマンドライン呼び出しではなく、プロセスオーバーヘッドなし)、主要な動画エンコード形式をサポートします。一定品質ファクターで画質を制御し、シナリオ別に最適なエンコードプリセットを選択して速度と圧縮率のバランスを取ります。Web公開、ストリーミング、ソーシャルメディア、ライブストリーミング、編集プロキシなどのシナリオ別パラメータをサポートします。
音声圧縮
複数の音声エンコード形式をサポートし、低ビットレートと高音質のバランスを取ります。シナリオ別(アーカイブ、音楽ストリーミング、ポッドキャスト、音声メッセージ、着信音、Web公開)にターゲットビットレートとサンプリングレートを設定します。
Office文書圧縮
構造化再パッキング + インテリジェント埋め込み画像圧縮
Word(docx)、Excel(xlsx)、PPT(pptx)などのOffice文書は本質的にXMLと埋め込みメディアリソースを含むアーカイブ形式です。エンジンは以下の戦略を採用します:
-
構造化アンパック:Office文書をアンパックし、埋め込み画像などのメディアリソースを抽出します。
-
埋め込み画像圧縮:抽出した画像をインテリジェント圧縮器に送り、前述の画像圧縮フローでダウンサンプリングしてサイズを大幅に削減します。
-
再パッキング:圧縮した画像と元のXMLを再パッキングして新しいOffice文書を生成します。文書の構造と形式は変更されず、画像サイズのみが削減されます。
並行処理とバッチ処理
柔軟な並行制御戦略
単一ファイルの圧縮では、エンジン内部でマルチスレッドを使用してエンコード/デコードを行い、マルチコアパフォーマンスを十分に活用します。バッチ圧縮タスクは認証設定で同時タスク数を制御できます。サーバー版はWorkerプロセスを水平スケーリングして全体のスループットを向上できます。