リアルタイムまたは医療データとは考えないでください。送信のために圧縮する必要があるデータのパケットと考えてください (TCP パケットである可能性が最も高い)。コンテンツの詳細は、圧縮アルゴリズムの選択においてのみ重要であり、データがどのようにフォーマット/保存されるか、および実際のデータがどのように見えるかは、医療用かどうかではありません。重要なのはデータそのものとシステム全体による制約(例:ホルターモニターのようなデータ収集か、ICUの心臓モニターのようなリアルタイムの状態報告か)、どのようなシステムが受けているかデータ?)。
データを見て、生のバイナリ データとして送信用に提示されていますか、それとも別のコンポーネントまたはデバイスから (たとえば) 数値がテキストとして表された構造化 XML または HL7 として受信されていますか? 元のデータを圧縮するのが最も効率的なオプションですか、それとも実際のデータ範囲のみをカバーする独自のバイナリ形式に変換する必要がありますか (値の範囲をカバーするのに 2、3、または 4 バイトで十分ですか?)。変換によってどのような節約ができるか、互換性の問題は何か (例: HL7 互換性の喪失)。
絶対的に最適な圧縮アルゴリズムを選択しても、帯域幅が非常に狭いシナリオでない限り、追加の作業を行う価値はありません。データが組み込みデバイスからのものである場合は、圧縮効率と、組み込みプロセッサ、ツールセット、およびそれを操作するための周辺システムの機能と制限とのバランスを取る必要があります。カスタム ビルドの圧縮ルーチンにより、既にツールに組み込まれているものよりも 5% 節約できる場合、追加のコーディングとデバッグの時間と組み込みフラッシュのストレージ スペースに見合うだけの価値があるでしょうか? 特に医療機器の場合は、「十分な」出力を生成する既存の検証済みソフトウェア ライブラリが優先される場合があります。
最後に、環境によっては、X パケットの損失がデータの損失につながらないように、データのスライディング ウィンドウを送信するなど、ある程度の冗長性を優先して圧縮の大きなチャンクを犠牲にしたい場合があります。これにより、プロトコルも変更でき、デバイスの構成方法も変更される可能性があります。ストリーミング UDP (失われたパケットの再送信なし) と TCP (送信者が再送信できる必要がある場合) の違いは重要です。
そして、システム側について大騒ぎしたので、RTPなどのストリーミング プロトコルの開発から、GSM/CDMA および VOIP の音声パケット化の詳細に至るまで、アナログ データのパケット化とストリーミングに関する多くの情報があります。それでも、決定の最も重要な要因は、デバイス側とサーバー側で利用できるツールセットになる可能性があります。最も効率的なオプションではない場合でも、既存のツールセットを使用すると、開発 (および市場投入までの時間) の時間を大幅に短縮でき、医療用デバイス/製品の認証を簡素化することもできます。ビジネス面では、ソフトウェア開発にさらに 3 ~ 6 か月を費やすこと、真に資格のある開発者を見つけること、規制当局の承認に対処することが最も重要な要素になる可能性があります。
2012/02/01更新: 合計観測時間が 12 分以上で、XML ファイルのサイズが 6 MB に達する 12 誘導心臓負荷心電図の XML エクスポートを数分間見ただけです。私は、そのファイルの 25% 以上が反復的で非常に圧縮可能な研究ヘッダーの XML であり、波形データは -200 から 200 の範囲のカンマ区切りの数値であり、範囲の中央に集中し、ゆっくりと変化していると推定しています。 、数字がy軸を横切り、しばらくの間その側にとどまります。必要なもののほとんどが波形の値であると仮定すると、この例では、4500KB / 763 秒または約 59 Kbps の圧縮なしのデータ レートが表示されます。完全に非圧縮で、テキスト形式を使用すると、「2.5G」GPRS 接続で簡単に実行できます。
ストック圧縮ライブラリは、この種のデータを昼食に食べると思います (圧縮ヘッダーとおそらくパケット ヘッダーの問題の影響を受けます)。カスタム圧縮を行うことを主張する場合は、生の数値ではなく差分値を送信することを検討します (生データが既にオフセットされていない限り)。あなたのデータが私がレビューしているもののように見える場合、おそらく各項目を -127 から +127 の 1 バイト値に変換し、極端な端をオーバーフローに使用される「特別な」値として予約することができます (ご覧のとおりに処理してください)。フィット - 特別な表現、エラーなど)。送信の効率を少し下げて、処理をわずかに速くしたい場合は、代わりに各値を符号付きの 2 バイト値として送信することができます。
基本的に、データのサイズについて心配する必要はありません。ただし、これが 24 時間 365 日実行され、低容量の重く計測されたワイヤレス接続を介して実行される場合を除きます。