stringtranslate.com

Изображение Silicon Graphics

Формат файла Silicon Graphics Image ( SGI ) или RGB — это собственный формат файла растровой графики для рабочих станций Silicon Graphics . [4] Формат был изобретен Полом Хеберли . [4] Он может быть закодирован по длине серии (RLE). FFmpeg и ImageMagick , среди прочих, поддерживают этот формат.

Фон

Распространенные расширения файлов:

.sgiили.rgb
3 цветовых канала
.rgba
3 цветовых канала и альфа
.bwили.int
черно-белый
.inta
черно-белый и альфа

Этот формат был изначально разработан для IRIX . Основные файлы набора тестов SVT High Definition Multi Format — это SGI. [6] [7] [8] Кадр 200 последовательности ParkJoy в этом наборе (15722.sgi, 3840×2160, 47,4 МБ) использовался в сравнениях WebP .

Технические подробности

Формат изображения SGI использует порядок big endian . Данные изображения сканируются слева направо снизу вверх.

Заголовок

Подпись файла/Магическое число

Должно быть равно 0x01 0xdaдля файла SGI.

Сжатие

0если файл несжатый; 1для сжатия RLE.

Байт на пиксель канала

Значение указано 1для 8 бит на канал; 2для 16 бит на канал.

Измерение

Значение указано 1для 1 канала, 1 изображения в одну строку развертки; 2для 1 канала, изображения в несколько строк развертки; 3для нескольких каналов, изображения в несколько строк развертки (наиболее распространено).

Размер X

Ширина строки развертки в пикселях.

Размер Y

Количество строк развертки в изображении.

Количество каналов

Количество каналов в изображении. Значение указано 1для изображений в оттенках серого; 3для RGB; 4для RGBA. SGI поддерживает более 4 каналов.

Минимальное значение пикселя

Наименьшее значение пикселя во всех каналах. Поскольку SGI использует типы unsigned char или short для каналов, наименьшее возможное значение обычно равно 0.

Максимальное значение пикселя

Наибольшее значение пикселя во всех каналах. Поскольку SGI использует типы unsigned char или short для каналов, наибольшее возможное значение обычно 0xffсоставляет 8 бит/канал и 0xffff16 бит/канал.

Дурачок

4 байта, неиспользуемые.

Имя изображения

Имя изображения, 80-байтовая (максимум 79 символов ≠ 0x00) строка C. Если имя короче 79 символов, все последующие байты должны быть 0x00в порядке заполнения 80-байтового пространства.

Идентификатор цветовой карты

SGI поддерживает 4 типа цветового отображения:

  1. 0x00нормальный: изображение имеет 1 канал (оттенки серого), 3 канала (RGB) или 4 канала (RGBA).
  2. 0x01сглажено: изображение имеет упакованный RGB. Первые 3 бита для канала R, следующие 3 бита для канала G, а последние 2 бита для канала B.
  3. 0x02экран: изображение использует цветовую карту. Пиксельные данные индексируются в цветовой карте, а изображение имеет только 1 канал.
  4. 0x03colormap: файл содержит данные только для одной цветовой карты (можно использовать для другого файла изображения). Этот файл не содержит данных изображения.

Дурачок

404 байта. Обычно не используется, масштабирует заголовок до 512 байт.

Данные изображения

Без сжатия

Данные изображения начинаются с байта 512 в файле. Длина данных может быть рассчитана следующим образом:

(Размер X) × (Размер Y) × (Количество каналов) × (Байт на канал)

Данные разделены для каждого канала. Например, если изображение использует RGBA, первый набор строк развертки представляет канал R, следующий набор строк развертки — канал G, затем канал B и, наконец, канал A. Таким образом, к каждому набору строк развертки можно получить прямой доступ с помощью следующей формулы (где C = индекс канала):

(Размер X) × (Размер Y) × ( C ÷ Количество каналов) × (Байтов на канал)

Сжатие RLE

Таблицы смещений начинаются с байта 512. Их длину можно рассчитать следующим образом:

(Размер Y) × (Количество каналов) × Длина 4 байта

Каждое беззнаковое целое число в таблице представляет смещение (от начала файла) до начала сжатых данных каждой строки сканирования в каждом канале. Данные разделены для строки сканирования каждого канала. Если изображение имеет каналы RGBA, порядок остается R, G, B и A.

Далее следует таблица длины данных, которую также можно рассчитать по формуле:

(Размер Y) × (Количество каналов) × Длина 4 байта

Эта таблица содержит размер сжатых данных (unsigned int) каждой строки сканирования. Этот размер должен быть равен разнице чисел в таблице смещений.

Последний блок данных содержит сжатые RLE данные изображения. Если количество байт на канал равно 1, сжатые данные имеют тип unsigned char. В противном случае, если количество байт на канал равно 2, сжатые данные имеют тип unsigned short. Последний байт сжатых данных scanline имеет значение 0.

Для обоих случаев есть данные unsigned char или unsigned short, младшие 7 бит сообщают count. Если бит 8 равен нулю, count — это число раз, умноженное на копируемое значение после count. Если бит 8 равен единице, count — это число раз, умноженное на копируемую серию значений после count byte. Для изображения размером 2 байта/канал count и value — unsigned short, а верхний байт count всегда равен нулю.

Смотрите также

Ссылки

  1. ^ .sgi Тип MIME не зарегистрирован в IANA
  2. ^ "CGImageSource.SupportedTypes". Плагин Claris FileMaker MBS . Программное обеспечение MonkeyBread.
  3. ^ Пол Хаеберли (1996). "Формат файла изображения SGI 0.97". Silicon Graphics . Получено 2014-03-07 .[ мертвая ссылка ] Альтернативный URL
  4. ^ abc Джеймс Д. Мюррей; Уильям ван Райпер (апрель 1996 г.). "SGI Image File Format File Format Summary" . Энциклопедия графических форматов файлов, второе издание . O'Reilly . ISBN 1-56592-161-5. Получено 2014-03-07 .
  5. ^ Пол Хаеберли (1996). "Формат файла изображения SGI 1.00". Silicon Graphics . Получено 2014-03-07 .
  6. ^ Ларс Хаглунд (февраль 2006 г.). «Многоформатный тестовый набор высокого разрешения SVT» (PDF) . СВТ . Проверено 23 февраля 2014 г.
  7. ^ "SVT_MultiFormat/2160p50_CgrLevels_Master_SVTdec05". Группа экспертов по качеству видео ( VQEG ). 2006. Получено 01.03.2014 .
  8. ^ Марта Мрак; Мислав Гргичб; Мурат Кунт (2010). Высококачественный визуальный опыт: создание, обработка и интерактивность видеосигналов высокого разрешения и высокой размерности. Сигналы и коммуникационные технологии. Springer . С. 147–154. ISBN 978-3-642-12802-8. LCCN  2010925849.