Interested Article - Hold and modify

Hold and Modify (дословно с англ. «Придержи и Измени», более известный как HAM ) — уникальный видеорежим, доступный на персональных компьютерах семейства Amiga . Работает по принципу запоминания ( удержания ) цвета последнего выводимого пикселя, с последующим изменением его красной ( R ), зелёной ( G ) или синей ( B ) компоненты. Это позволяет чипсету классической Amiga отображать до 4096 цветов на экране, при 6 физических битах на точку (режим HAM6 ), используемых для записи цвета (в режиме HAM8 чипсета AGA используются 8 бит, что позволяет одновременное отображение на экране 262 144 цветов).

Недостаток видеорежима HAM заключается в том, что при некоторых изменениях цвета требуется изменение компонент у 3-х пикселей, находящихся рядом с точкой, чей цвет изменяется. Поэтому, если палитра для экрана была подобрана неудачно, то возможно появление артефактов изображения, приблизительно похожих на артефакты, замеченные у аналогичного алгоритма сжатия графической информации JPEG . Другой недостаток этого режима — в сложности его использования для векторной графики .

Тем не менее, именно этот режим позволил Amiga 1000 стать первым в мире мультимедийным персональным компьютером , обеспечив её подавляющее преимущество над конкурирующими платформами. Режим HAM позволил впервые отображать фотографии на экране компьютера, а также некоторые трёхмерные модели с фотореалистичным качеством. Спустя некоторое время появилось аппаратное и программное обеспечение для обработки и титрования видеоряда. Таким образом, HAM также позволил Amiga долгие годы лидировать в сфере нелинейного видеомонтажа (даже после краха корпорации Commodore в 1995 году), оставаясь решением, недосягаемым по себестоимости и имеющим наилучшую программную поддержку.

Описание

В классических Amiga на базе чипсетов OCS / ECS для записи цвета точки используются всего 6 бит. Большинство экранных режимов работают с цветами, индексированными в палитре, а для записи индекса цвета используются 5 бит. Следовательно, на таких экранах могут быть одновременно отображены только 2 5 (=32) цвета. Другие экранные режимы позволяют использовать 6-й бит для указания яркости цвета (пиксели с установленным 6-м битом цвета отображаются с половинной яркостью), то есть количество отображаемых одновременно цветов увеличивается до 2×2 5 (=64).

Режим HAM6 использует 6 бит, из которых два, как правило, указывают, были ли сохранённые 4 бит индексом в 16-цветной палитре, или же это было изменение в одной из компонент цвета (например, сохранены красная и зелёная компоненты предыдущего отображённого пикселя, а сейчас изменяется синяя). Сохранённые 4 бита используются как абсолютное значение для изменённой RGB-компоненты.

Возможны следующие значения:

  • 00 xxxx — используется цвет из 16-цветной палитры, имеющий индекс xxxx в двоичном представлении;
  • 01 GGGG — сохраняются красная и синяя компоненты от предыдущего пикселя, используется GGGG для зелёной компоненты;
  • 10 RRRR — сохраняются зелёная и синяя компоненты от предыдущего пикселя, используется RRRR для красной компоненты;
  • 11 BBBB — сохраняются красная и зелёная компоненты от предыдущего пикселя, используется BBBB для синей компоненты.

При этом линия пикселей всегда должна начинаться с одного из индексированных в палитре цветов.

HAM6 позволяет одновременное отображение не более 4096 цветов, так как алгоритм описывает 12-битную графику (по 4 бита на каждую из цветных компонент), а 2 12 = 4096.

В классических Amiga на базе чипсета AGA для хранения цвета пикселя используются 8 бит (2 8 =256 цветов), а также доступен режим HAM8 , описывающий 18-битную графику (6 бит на компоненту). Режим HAM8 позволяет одновременное отображение не более 262 144 цветов (2 18 ) из палитры в 16 777 216 цветов (24-битная палитра).

Использование HAM

Изначально режим HAM был реализован в чипсете Amiga как экспериментальный. Процитируем Джея Майнера (известного как «отец» Amiga):

Hold and Modify появился в результате поездки, в которой мне довелось увидеть симуляторы полёта для военных пилотов в действии и получить своего рода представление о виртуальной реальности . Реализация NTSC в микросхеме означает, что вы можете удерживать оттенок цвета и менять его яркость изменением всего четырёх битов. Когда же мы перешли к RGB , я сказал, что эта возможность стала бесполезной и попросил парня, который отвечал за создание топологии микросхемы, убрать её. Он вернулся ко мне со словами, что это оставит большую дыру посреди кристалла, а ему понадобится по крайней мере три месяца, чтобы переделать топологию. Разумеется, мы не могли себе этого позволить. Я и не думал, что кто-нибудь когда-нибудь станет этим пользоваться. И здесь я снова ошибся, поскольку это как раз и дало Amiga ту палитру красок, которой не хватало остальным.

Режим HAM не поддерживается в AmigaOS 4 и MorphOS , в связи с чем программное обеспечение классической Amiga , ориентированное на чипсет, оказалось несовместимым с этими операционными системами .

См. также

Источник —

Same as Hold and modify