openjpeg

Библиотека с открытым исходным кодом для сжатия и распаковки изображений в формате JPEG 2000, разработанная на языке C. Она создана для продвижения и использования стандарта JPEG 2000, обеспечивая высокую степень сжатия, поддержку прогрессивной передачи и устойчивость к ошибкам. Библиотека официально признана ISO/IEC и ITU-T в качестве эталонного программного обеспечения для JPEG 2000.

Особенности

  • полное соответствие стандарту JPEG 2000;
  • поддержка как сжатия с потерями, так и без потерь;
  • прогрессивная передача изображений по качеству и разрешению;
  • устойчивость к ошибкам при передаче и хранении данных;
  • модульная архитектура с поддержкой расширенных частей стандарта (JP2, MJ2, JPWL, JPIP).

Основные компоненты

OpenJPEG предлагает как низкоуровневый API для интеграции в приложения, так и готовые инструменты командной строки (подробнее с документацией можно ознакомиться здесь).

Базовый кодек JPEG 2000

Ядро библиотеки реализует кодирование и декодирование в соответствии с частью 1 стандарта JPEG 2000. API предоставляет функции для работы с основными структурами данных, такими как изображения и параметры кодирования/декодирования.

Основные функции API:

  • opj_image_create() и opj_image_destroy() — создание и удаление структуры изображения;
  • opj_compress() — кодирование изображения в поток JPEG 2000;
  • opj_decompress() — декодирование потока JPEG 2000 в изображение;
  • opj_set_info_handler(), opj_set_warning_handler(), opj_set_error_handler() — установка callback-функций для событий.

Модули для расширенных частей стандарта

Помимо основного кодека, OpenJPEG включает модули для поддержки дополнительных частей стандарта JPEG 2000, что позволяет обрабатывать специализированные форматы:

  • JP2 (Part 2) — поддержка расширенных форматов файлов и преобразований для мультиспектральных изображений;
  • MJ2 (Part 3) — работа с Motion JPEG 2000, форматом для хранения видеопоследовательностей;
  • JPWL (Part 11) — механизмы для повышения устойчивости к ошибкам при беспроводной передаче;
  • JPIP (Part 9) — реализация интерактивного протокола для удалённого просмотра изображений.

Параметры декодирования и кодирования

Библиотека использует структуры параметров (opj_dparameters для декодирования, opj_cparameters для кодирования), позволяющие тонко настраивать процесс обработки.

Основные параметры декодирования:

  • cp_reduce — количество отбрасываемых уровней разрешения для декодирования уменьшенной версии изображения;
  • cp_layer — максимальное число декодируемых слоёв качества;
  • DA_x0, DA_y0, DA_x1, DA_y1 — координаты области декодирования.

Параметры кодирования включают управление качеством, количеством слоёв, размером тайлов и кодовых блоков, порядком прогрессии и другие.

Утилиты командной строки

OpenJPEG поставляется с двумя основными инструментами для работы с JPEG 2000 из командной строки:

  • opj_compress — сжатие изображений распространённых форматов (BMP, PGX, PGM, PPM, PNM, PAM, PFM, TIF, RAW) в JPEG 2000;
  • opj_decompress — распаковка файлов JPEG 2000 (J2K, JP2, J2C) обратно в растровые форматы.

Утилиты поддерживают множество опций, позволяя контролировать степень сжатия, количество уровней качества, размер тайлов, использовать необратимое сжатие и многое другое.

OPJViewer и дополнительные инструменты

В состав OpenJPEG входит графический просмотрщик OPJViewer, который позволяет открывать и просматривать файлы J2K, JP2, JPWL и MJ2.

Внутренние модули

Исходный код библиотеки организован в модули, отвечающие за различные этапы обработки:

  • J2K и JP2 — чтение и запись кодового потока и файлового формата;
  • DWT — реализация дискретного вейвлет-преобразования;
  • T1 и T2 — кодирование уровней Tier-1 и Tier-2;
  • MCT — многокомпонентные преобразования;
  • THREAD — пулы потоков для параллельной обработки.

Использование в проекте

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "openjpeg/2.5.2@aurora",
    )    

Процесс локальной сборки описан в документации.

openjpeg

OpenJPEG is an open-source JPEG 2000 codec written in C language.
Лицензия
BSD-2-Clause
Версия
Домашняя страница
Скачать
armv7
201.21 Kb
MD5: 43818885bb3a07378ed328822f72e21a
Updated: 03.09.2025, 16:50:46
armv8
212.35 Kb
MD5: 20315ff539bef3b123faa1d57a341e05
Updated: 03.09.2025, 16:50:29
x86_64
219.62 Kb
MD5: 02192e18712a4012ac4f3865e0356290
Updated: 03.09.2025, 16:50:49
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.