Obsługa kompresji JBIG2

Omówienie

HotPDF obejmuje teraz pełną obsługę kompresji JBIG2 (Joint Bi-level Image Experts Group 2) JBIG2 to stratny lub bezstratny standard kompresji zaprojektowany specjalnie dla obrazów dwupoziomowych (monochromatycznych), często używanych w dokumentach PDF dla zeskanowanych stron tekstowych i rysunków kreskowych

Najważniejsze funkcje

  • Wysokowydajna kompresja obrazów dwupoziomowych
  • Obsługa trybów kompresji stratnej i bezstratnej
  • Optymalizacja pod kątem kompresji tekstu i rysunków kreskowych
  • Znaczne zmniejszenie rozmiaru pliku w porównaniu z tradycyjnymi metodami kompresji
  • Pełna obsługa zgodności z PDF/A
  • Obsługa dokumentów wielostronicowych ze współdzielonymi słownikami

Korzyści kompresji

  • Lepsze współczynniki kompresji: Do 3-5 razy lepsza kompresja niż Group 4 CCITT
  • Rozpoznawanie wzorców: Inteligentne rozpoznawanie powtarzanych wzorców i symboli
  • Kompresja adaptacyjna: Automatycznie dostosowuje strategię kompresji do typu treści
  • Oszczędność pamięci: Zoptymalizowane do przetwarzania dużych skanowanych dokumentów

Typowe zastosowania

  • Skanowane dokumenty tekstowe
  • Rysunki techniczne i plany
  • Formularze i faktury
  • Mapy i diagramy
  • Dokumenty o mieszanej treści z tekstem i grafiką

Implementacja techniczna

Obsługa JBIG2 jest zaimplementowana w module HPDFJBIG2.pas, który udostępnia:

  • THPDFJBIG2Decoder: Główna klasa dekodera dla danych skompresowanych JBIG2
  • Przetwarzanie strumieni: Wydajna obsługa strumieni danych JBIG2
  • Obsługa słowników globalnych: Współdzielone słowniki symboli dla dokumentów wielostronicowych
  • Dostęp do linii skanu: Dostęp do danych wiersz po wierszu dla oszczędnego pamięciowo przetwarzania

Przykład użycia


// Przykład Delphi - przetwarzanie danych skompresowanych JBIG2
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;

    // Wczytaj skompresowane dane obrazu JBIG2
    if Decoder.LoadFromByteArray(ImageData) then
    begin
      // Przetwarzaj linia po linii dla oszczędności pamięci
      for Row := 0 to Decoder.Height - 1 do
      begin
        if Decoder.GetScanline(Row, ScanlineData) then
        begin
          // Przetwarzaj dane linii skanu zgodnie z potrzebami
          // Dodaj do strony PDF
        end;
      end;
    end;

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

Opis klasy

THPDFJBIG2Decoder

  • LoadFromByteArray: Wczytuje dane JBIG2 z tablicy bajtów
  • GetScanline: Pobiera dane określonej linii skanu
  • Width/Height: Właściwości wymiarów obrazu

Optymalizacja wydajności

  • Oszczędne pamięciowo przetwarzanie linii skanu
  • Zoptymalizowane do obsługi dużych dokumentów
  • Minimalne użycie pamięci podczas dekompresji
  • Szybkie algorytmy rozpoznawania wzorców

Zgodność ze standardami

  • Zgodność ze standardem ITU-T T.88
  • Obsługa standardu ISO/IEC 14492
  • Zgodność z archiwalnym formatem PDF/A
  • Spójność między platformami

Zobacz też