2024-02-19
#js 
容量は小さいほど速くなるのでデータ圧縮技術は重要です。動画は連続した画像と音圧データですが、1ドットずつまともに転送しようとすると膨大なデータ量になってしまいます。サクサク動画が見られるのも圧縮技術のおかげです。

データ圧縮には完全に元に戻せる可逆圧縮と、なんとなく戻すことで圧縮率を稼ぐ非可逆圧縮があります。お小遣い帳などの数値データは変わってもらっては困るので可逆圧縮を使い、画像や音声は多少荒くなってもOKな場合非可逆圧縮を使います。


「LZ4 - Extremely fast compression」

圧縮アルゴリズムも進化しており、USDZ生成プロジェクトの過程で見つけた、2011年誕生の高速で圧縮率の高い可逆圧縮アルゴリズムLZ4(LZ4 - Wikipedia)を展開ライブラリをESモジュールとして移植しました。・・・が、バージョンが合わないようでUSDZには使えませんでした。


「code4fukui/LZ4: Lz4 for the browser and Deno」
forked from Benzinga/lz4js
ESモジュール化したので、ブラウザやDenoからサクッと使えます。 import { LZ4 } from "https://code4fukui.github.io/LZ4/LZ4.js"; // Compress 128 bytes of zero. const compressed = LZ4.compress(new Uint8Array(128)); // Decompress. const decompressed = LZ4.decompress(compressed); 残念ながら、USDZファイルのLZ4とマジックナンバーが合わず、デコード失敗。

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS