پشتیبانی فشرده‌سازی JBIG2

نمای کلی

HotPDF اکنون پشتیبانی جامع فشرده‌سازی JBIG2 (Joint Bi-level Image Experts Group 2) را ارائه می‌کند JBIG2 یک استاندارد فشرده‌سازی با یا بدون اتلاف است که به‌طور خاص برای تصویرهای دوسطحی (تک‌رنگ) طراحی شده و معمولاً در اسناد PDF برای صفحات متنِ اسکن‌شده و خط‌نگاری ساده به کار می‌رود

ویژگی‌های اصلی

  • فشرده‌سازی پربازده برای تصویرهای دوسطحی
  • پشتیبانی از حالت‌های فشرده‌سازی با و بدون اتلاف
  • بهینه‌شده برای فشرده‌سازی متن و خط‌نگاری
  • کاهش چشمگیر اندازه فایل در مقایسه با روش‌های سنتی فشرده‌سازی
  • پشتیبانی کامل از انطباق PDF/A
  • پشتیبانی از اسناد چندصفحه‌ای با dictionaryهای مشترک

مزایای فشرده‌سازی

  • Superior Compression Ratios: تا 3 تا 5 برابر بهتر از Group 4 CCITT فشرده می‌کند
  • Pattern Recognition: تشخیص هوشمند الگوها و نمادهای تکراری
  • Adaptive Compression: راهبرد فشرده‌سازی را بر اساس نوع محتوا به‌طور خودکار تنظیم می‌کند
  • Memory Efficient: برای پردازش اسناد اسکن‌شده بزرگ بهینه شده است

موارد استفاده معمول

  • اسناد متنی اسکن‌شده
  • نقشه‌های فنی و blueprints
  • فرم‌ها و فاکتورها
  • نقشه‌ها و diagramها
  • اسنادی با محتوای ترکیبی از متن و گرافیک

پیاده‌سازی فنی

پشتیبانی JBIG2 از طریق unit HPDFJBIG2.pas پیاده‌سازی شده است که این موارد را فراهم می‌کند:

  • THPDFJBIG2Decoder: کلاس اصلی decode برای داده‌های فشرده‌شده JBIG2
  • Stream Processing: رسیدگی کارآمد به جریان‌های داده JBIG2
  • Global Dictionary Support: dictionaryهای نماد مشترک برای اسناد چندصفحه‌ای
  • Scanline Access: دسترسی سطر به سطر برای پردازش کم‌مصرف

نمونه استفاده


// Delphi example - Processing JBIG2 compressed data
procedure ProcessJBIG2Data;
var
  PDF: THotPDF;
  Decoder: THPDFJBIG2Decoder;
  ImageData: TBytesArray;
  ScanlineData: TBytesArray;
  Row: Integer;
begin
  PDF := THotPDF.Create(nil);
  Decoder := THPDFJBIG2Decoder.Create;
  try
    PDF.BeginDoc;
    PDF.AddPage;

    // Load JBIG2 compressed image data
    if Decoder.LoadFromByteArray(ImageData) then
    begin
      // Process scanline by scanline for memory efficiency
      for Row := 0 to Decoder.Height - 1 do
      begin
        if Decoder.GetScanline(Row, ScanlineData) then
        begin
          // Process scanline data as needed
          // Add to PDF page
        end;
      end;
    end;

    PDF.EndDoc;
  finally
    Decoder.Free;
    PDF.Free;
  end;
end;
        

مرجع کلاس

THPDFJBIG2Decoder

  • LoadFromByteArray: بارگذاری داده JBIG2 از آرایه بایت
  • GetScanline: بازیابی داده یک scanline مشخص
  • Width/Height: ویژگی‌های ابعاد تصویر

بهینه‌سازی عملکرد

  • پردازش scanline کم‌مصرف
  • بهینه‌شده برای رسیدگی به اسناد بزرگ
  • ردپای حافظه حداقلی هنگام بازفشرده‌سازی
  • الگوریتم‌های سریع تشخیص الگو

انطباق با استانداردها

  • انطباق با استاندارد ITU-T T.88
  • پشتیبانی از استاندارد ISO/IEC 14492
  • سازگاری با قالب بایگانی PDF/A
  • یکنواختی میان‌سکویی

همچنین ببینید