Cтраница 3
Заметим, что допустим файл потока данных GIF, не содержащий никаких bitmap данных. Когда это происходит, обычно его назначение - передача глобальной таблицы цветов, служащей в качестве палитры для последующих потоков данных, которые не имеют своих собственных палитр. [31]
ПРИМЕЧАНИЕ: Грамматика указывает, что возможно Погок Данных GIF будег содержать Заголовок, Дескриптор Логического Экрана, Глобальную Таблицу Цветов и Завершитель GIF. Этот специальный случай используется для того, чтобы загрузить в дешифратор GIF Глобальную Таблицу Цветов при подготовке для последующих Погоков Данных, которые не содержат таблиц цветов. [32]
![]() |
Внутренняя структура объектного модуля. [33] |
Большинству компоновщиков требуется два прохода. На первом проходе компоновщик считывает все объектные модули и строит таблицу имен и длин модулей и глобальную таблицу символов, которая состоит из всех точек входа и внешних ссылок. На втором проходе модули считываются, перемещаются в памяти и связываются. [34]
GIF формат использует таблицы цветов. Таблица цветов может принимать одну из двух форм: глобальную или локальную. Глобальная таблица цветов используется всей графикой Погока Данных, когорая не имеет связанной Локальной Таблицы Цветов. [35]
Цвет Фона - цвет, используемый для тех пикселей на экране, которые не закрыты изображением. Если Флаг Глобальной Таблицы Цветов установлен в 0 ( ноль), это поле должна быть нулем и должно быть проигнорировано. [36]
Блок дескриптора логического экрана определяет размер, соотношение вертикального и горизонтального числа точек и цветовую глубину плоскости изображения, которая относится к изображению или следующим изображениям. Он аналогичен экрану монитора, на котором изначально отображалось изображение. Он также указывает на то, следует ли далее глобальная таблица цветов. [37]
Таблица Цветов из предшествующего Потока, эта таблица становится Глобальной Таблицей Цветов текущего Потока. Это предназначено для уменьшения потерь, полученных в результате использования таблиц цветов. В частности, рекомендуется, чтобы шифратор использовал только одагу Глобальную Таблицу Цветов, если все изображения в связанных Потоках Данных могут быть представлены с одной той же таблицей. Если цветная таблица полностью отсутствует, дешифратор имеет право использовать системную или свою собственную таблицу цветов. В этом случае дешифратор может использовать таблицу цветов с таким количеством цветов, которое сможет поддержать его аппаратные средства; рекомендуется, чтобы такая таблица имела в качестве своих первых двух элементов черный и белый, так, чтобы могли быть корректно представлены черно-белые изображения. [38]
Типичный непосредственно связывающий загрузчик использует два просмотра объектной программы. Во время первого просмотра распределяется память для сегментов и определяются значения внешних символов. Во время второго просмотра текст программы загружается в память и адресные константы настраиваются с помощью глобальной таблицы внешних символов, построенной при первом просмотре. [39]
Активная Таблица Цветов - Таблица цветов, используемая для визуализации следующего фрагмента графики. Если следующий фрагмент графики - изображение, когорое имеет Локальную Таблицу Цветов, с ним связанную, активной таблицей цветов становится Локальная Таблица Цвегов. Если следующий фрагмент графики - изображение без Локальной Таблицы Цветов или Расширение Простого Текста, активной таблицей цветов будет Глобальная Таблица Цветов, связанная с Потоком Данных, если таковая существует. Если в Потоке Данных отсутствует Глобальная Таблица Цветов, активная таблица цветов - таблица цветов, сохраненная из предшествующего Потока Данных, или поставленная дешифратором. [40]
Таблицы Цветов - Обе таблицы цветов как Глобальная, так и Локальная - необязательные; если присутствует Глобальная Таблица Цветов, она должна использоваться для каждого изображения в Погоке Данных, для которого не приведена Локальная Таблица Цветов; если присутствует Локальная Таблица Цветов, она замещает Глобальную Таблицу Цветов. Однако, если все таблицы цветов отсутствуют, прикладная программа может использовать произвольную таблицу цветов. Если фрагменты графики в различных Потоках Данных взаимосвязаны и все используют одну и ту же таблицу цветов, шифратор может установить таблицу цветов как Глобальную Таблицу Цветов в первом Потоке Данных и оставить последующие Потоки Данных без Глобальных Таблиц Цветов или любых Локальных Таблиц Цветов; таким образом устраняются накладные расходы на таблицы. Рекомендуется, чтобы дешифратор сохранял предшествующую Глобальную Таблицу Цветов, которая будет использоваться со следующим Потоком Данных в случае, если он не будет содержать или Глобальной, или любой из Локальных Таблиц Цветов. В общих чертах, это позволяет приложению использовать прошлые цветные таблицы, что значительно уменьшает потери при передаче. [41]
При этом возникает вопрос об уровне локализации этих таблиц. Если каждая таблица - одна для всей системы, то она может иметь слишком большой объем и поэтому размещаться на внешней памяти, что осложняет работу с ней. При локализации таблицы внутри процедуры таблицы разных процедур содержат много общих имен ( глобальных), что приводит к дополнительной работе при трансляции: поиску каждого имени таблицы в более глобальных таблицах и установлению надлежащих связей. Для сокращения объема этой работы уровень локализации таблиц целесообразно делать промежуточным. В качестве уровня локализации удобно выбрать ОТС. [42]
Таблицы Цветов - Обе таблицы цветов как Глобальная, так и Локальная - необязательные; если присутствует Глобальная Таблица Цветов, она должна использоваться для каждого изображения в Погоке Данных, для которого не приведена Локальная Таблица Цветов; если присутствует Локальная Таблица Цветов, она замещает Глобальную Таблицу Цветов. Однако, если все таблицы цветов отсутствуют, прикладная программа может использовать произвольную таблицу цветов. Если фрагменты графики в различных Потоках Данных взаимосвязаны и все используют одну и ту же таблицу цветов, шифратор может установить таблицу цветов как Глобальную Таблицу Цветов в первом Потоке Данных и оставить последующие Потоки Данных без Глобальных Таблиц Цветов или любых Локальных Таблиц Цветов; таким образом устраняются накладные расходы на таблицы. Рекомендуется, чтобы дешифратор сохранял предшествующую Глобальную Таблицу Цветов, которая будет использоваться со следующим Потоком Данных в случае, если он не будет содержать или Глобальной, или любой из Локальных Таблиц Цветов. В общих чертах, это позволяет приложению использовать прошлые цветные таблицы, что значительно уменьшает потери при передаче. [43]
Активная Таблица Цветов - Таблица цветов, используемая для визуализации следующего фрагмента графики. Если следующий фрагмент графики - изображение, когорое имеет Локальную Таблицу Цветов, с ним связанную, активной таблицей цветов становится Локальная Таблица Цвегов. Если следующий фрагмент графики - изображение без Локальной Таблицы Цветов или Расширение Простого Текста, активной таблицей цветов будет Глобальная Таблица Цветов, связанная с Потоком Данных, если таковая существует. Если в Потоке Данных отсутствует Глобальная Таблица Цветов, активная таблица цветов - таблица цветов, сохраненная из предшествующего Потока Данных, или поставленная дешифратором. [44]
Таблицы Цветов - Обе таблицы цветов как Глобальная, так и Локальная - необязательные; если присутствует Глобальная Таблица Цветов, она должна использоваться для каждого изображения в Погоке Данных, для которого не приведена Локальная Таблица Цветов; если присутствует Локальная Таблица Цветов, она замещает Глобальную Таблицу Цветов. Однако, если все таблицы цветов отсутствуют, прикладная программа может использовать произвольную таблицу цветов. Если фрагменты графики в различных Потоках Данных взаимосвязаны и все используют одну и ту же таблицу цветов, шифратор может установить таблицу цветов как Глобальную Таблицу Цветов в первом Потоке Данных и оставить последующие Потоки Данных без Глобальных Таблиц Цветов или любых Локальных Таблиц Цветов; таким образом устраняются накладные расходы на таблицы. Рекомендуется, чтобы дешифратор сохранял предшествующую Глобальную Таблицу Цветов, которая будет использоваться со следующим Потоком Данных в случае, если он не будет содержать или Глобальной, или любой из Локальных Таблиц Цветов. В общих чертах, это позволяет приложению использовать прошлые цветные таблицы, что значительно уменьшает потери при передаче. [45]