فرمت فشرده سازی تصویر QOI معرفی شد

یک فرمت فشرده‌سازی تصویر سبک وزن و بدون تلفات جدید معرفی شده است - QOI (تصویر کاملاً خوب)، که به شما امکان می‌دهد خیلی سریع تصاویر را در فضاهای رنگی RGB و RGBA فشرده کنید. هنگام مقایسه عملکرد با فرمت PNG، پیاده‌سازی مرجع تک رشته‌ای فرمت QOI در زبان C، که از دستورالعمل‌های SIMD و بهینه‌سازی‌های اسمبلی استفاده نمی‌کند، در سرعت کدگذاری 20 تا 50 برابر سریع‌تر از کتابخانه‌های libpng و stb_image است و 3. -4 برابر سریعتر در سرعت رمزگشایی. از نظر راندمان فشرده‌سازی، QOI در اکثر تست‌ها نزدیک به libpng است (در برخی تست‌ها کمی جلوتر و در برخی دیگر پایین‌تر است)، اما به طور کلی به طور محسوسی از stb_image جلوتر است (افزایش تا 20٪).

پیاده سازی مرجع QOI در C فقط 300 خط کد است. کد منبع تحت مجوز MIT توزیع شده است. علاوه بر این، علاقه مندان پیاده سازی هایی از رمزگذارها و رمزگشاها را در زبان های Go، Zig و Rust آماده کرده اند. این پروژه توسط Dominic Szablewski، یک توسعه دهنده بازی با تجربه در ایجاد یک کتابخانه برای رمزگشایی ویدیو MPEG1 در حال توسعه است. با استفاده از فرمت QOI، نویسنده می خواست نشان دهد که می توان یک جایگزین موثر و ساده برای فرمت های رمزگذاری تصویر مدرن بیش از حد پیچیده ایجاد کرد.

عملکرد QOI مستقل از وضوح و ماهیت تصویر رمزگذاری شده (O(n)) است. رمزگذاری و رمزگشایی در یک گذر انجام می شود - هر پیکسل فقط یک بار پردازش می شود و می تواند به یکی از 4 روش رمزگذاری شود که بسته به مقادیر پیکسل های قبلی انتخاب شده است. اگر پیکسل بعدی با پیکسل قبلی منطبق باشد، شمارشگر تکرار فقط افزایش می یابد. اگر پیکسل با یکی از مقادیر موجود در بافر ۶۴ پیکسل گذشته مطابقت داشته باشد، آنگاه مقدار با یک افست ۶ بیتی نسبت به پیکسل گذشته جایگزین می‌شود. اگر رنگ پیکسل قبلی کمی متفاوت باشد، تفاوت به صورت کوتاه نشان داده می شود (رمزگذاری کوتاه تفاوت در اجزای رنگ که در 64، 6 و 2,4 بیت قرار می گیرند). اگر بهینه‌سازی قابل اجرا نباشد، مقدار کامل rgba ارائه می‌شود.

منبع: opennet.ru

اضافه کردن نظر