система и способ для использования данных изображения не альфа-канала в среде, информированной об альфа-канале

Классы МПК:G06T1/00 Обработка данных изображения общего применения
Автор(ы):
Патентообладатель(и):МАЙКРОСОФТ КОРПОРЕЙШН (US)
Приоритеты:
подача заявки:
2003-06-11
публикация патента:

Изобретение относится к области визуализации файлов пиксельных данных, в частности способам обработки файлов пиксельных данных перед использованием в приложении, не информированном об альфа-канале. Технический результат, заключающийся в уменьшении времени обработки и вероятности ошибки при воспроизведении графических изображений, достигается за счет того, что визуализирующее приложение, не информированное об альфа-канале, используется в среде, информированной об альфа-канале. Файл пиксельных данных, который должен записываться с помощью приложения, не информированного об альфа-канале, инициализируется путем установки значения альфа для каждого пикселя равным 1. Приложение, информированное об альфа-канале, затем производит запись в инициализированный файл пиксельных данных, при этом изменяя некоторые или все пиксельные данные. Значение альфа для каждого пикселя затем уменьшается на 1 (по модулю 256), делая при этом измененные пиксели непрозрачными и неизменные пиксели прозрачными. 8 н. и 11 з.п. ф-лы, 5 ил. система и способ для использования данных изображения не альфа-канала   в среде, информированной об альфа-канале, патент № 2321891

система и способ для использования данных изображения не альфа-канала   в среде, информированной об альфа-канале, патент № 2321891 система и способ для использования данных изображения не альфа-канала   в среде, информированной об альфа-канале, патент № 2321891 система и способ для использования данных изображения не альфа-канала   в среде, информированной об альфа-канале, патент № 2321891 система и способ для использования данных изображения не альфа-канала   в среде, информированной об альфа-канале, патент № 2321891 система и способ для использования данных изображения не альфа-канала   в среде, информированной об альфа-канале, патент № 2321891

Формула изобретения

1. Способ использования изображения в файле пиксельных данных, визуализируемом с помощью приложения, не информированного об альфа-канале, в среде, информированной об альфа-канале, где (i) приложение, не информированное об альфа-канале, записывает значения пиксельных данных в существующий файл пиксельных данных, содержащий значения пиксельных данных, (ii) каждое значение пиксельных данных включает в себя n-битовое значение альфа и соответствует местоположению пикселя, (iii) приложение, не информированное об альфа-канале, устанавливает равным 0 значение альфа у значения пиксельных данных для каждго пикселя, для которого значение пиксельных данных записывается упомянутым приложением в файл пиксельных данных, и (iv) среда, информированная об альфа-канале, является графической средой, в которой каждое значение альфа используется для установки прозрачности соответствующего пикселя, когда изображение в файле пиксельных данных отображается на переднем плане поверх других данных изображения, с помощью значения альфа равного нулю, соответствующего полной прозрачности, и увеличения значений альфа, соответствующих увеличению уровней непрозрачности, содержащий этапы, в соответствии с которыми

(a) инициализируют равным 1 значение альфа у значения пиксельных данных для каждого значения пиксельных данных в файле пиксельных данных,

(b) выполняют приложение, не информированное об альфа-канале, с использованием файла пиксельных данных,

(c) изменяют значение альфа у каждого значения пиксельных данных путем изменения значения альфа у значений пиксельных данных в файле пиксельных данных на 0 для каждого значения пиксельных данных в файле пиксельных данных со значением альфа, равным 1, и изменяют значение альфа у значения пиксельных данных в файле пиксельных данных на значение альфа для полной непрозрачности для каждого значения пиксельных данных со значением альфа равным 0, и

(d) отображают файл пиксельных данных в среде, информированной об альфа-канале.

2. Способ по п.1, по которому упомянутое изменение значения альфа у значения пиксельных данных содержит уменьшение значения альфа у значения пиксельных данных для каждого значения пиксельных данных в файле пиксельных данных на 1 по модулю 2n.

3. Способ по п.2, по которому n выбирают из группы, состоящей из 1 и 8.

4. Носитель, считываемый с помощью компьютера, имеющий записанное на нем множество команд, выполняемых с помощью компьютера, для выполнения способа по п.1.

5. Способ использования изображения в файле пиксельных данных, визуализируемого с помощью приложения, не информированного об альфа-канале, в среде, информированной об альфа-канале, где (i) приложение, не информированное об альфа-канале, записывает значения пиксельных данных в существующий файл пиксельных данных, содержащий значения пиксельных данных, (ii) каждое значение пиксельных данных включает в себя n-битовое значение альфа и соответствует местоположению пикселя, (iii) приложение, не информированное об альфа-канале, устанавливает равным m значение альфа у значения пиксельных данных для каждого пикселя, для которого значение пиксельных данных записывается в файл пиксельных данных упомянутым приложением, и (iv) среда, информированная об альфа-канале, является графической средой, в которой каждое значение альфа используется для установки прозрачности соответствующего пикселя, когда изображение в файле пиксельных данных отображается на переднем плане поверх других данных изображения, с помощью значения альфа, равного нулю, соответствующего полной прозрачности, и увеличения значений альфа, соответствующих увеличению уровней непрозрачности, содержащий этапы, в соответствии с которыми

(a) инициализируют равным m+1 значение альфа у значения пиксельных данных для каждого значения пиксельных данных в файле пиксельных данных,

(b) выполняют приложение, не информированное об альфа-канале, над файлом пиксельных данных,

(c) изменяют значение альфа у каждого значения пиксельных данных путем изменения значения альфа пиксельных данных в файле пиксельных данных на 0 для каждого значения пиксельных данных в файле пиксельных данных со значением альфа, равным m, и изменяют значение альфа у значения пиксельных данных в файле пиксельных данных на значение альфа для полной непрозрачности для каждого значения пиксельных данных со значением альфа равным 0, и

(d) отображают файл пиксельных данных в среде, информированной об альфа-канале.

6. Способ по п.5, по которому упомянутое изменение каждого значения альфа у каждого значения пиксельных данных содержит уменьшение значения альфа у значения пиксельных данных для каждого значения пиксельных данных в файле пиксельных данных на m+1 по модулю 2n.

7. Носитель, считываемый с помощью компьютера, имеющий записанное на нем множество команд, выполняемых с помощью компьютера, для выполнения способа по п.5.

8. Способ использования приложения, не информированного об альфа-канале, в среде, информированной об альфа-канале, где (i) приложение, не информированное об альфа-канале, записывает значения пиксельных данных в существующий файл пиксельных данных, содержащий значения пиксельных данных, (ii) каждое значение пиксельных данных включает в себя n-битовое значение альфа и соответствует местоположению пикселя, (iii) приложение, не информированное об альфа-канале, устанавливает значение альфа у значения пиксельных данных равным m для каждого пикселя, для которого значение пиксельных данных записывается с помощью приложения в файл пиксельных данных, и (iv) среда, информированная об альфа-канале, является графической средой, в которой каждое значение альфа используется для установки прозрачности соответствующего пикселя, когда изображение в файле пиксельных данных отображается на переднем плане других данных изображения, с помощью значения альфа, равного нулю, соответствующего полной прозрачности, и увеличения значений альфа, соответствующих увеличению уровней непрозрачности, и (v) значение альфа для требуемой непрозрачности для пикселей, записанных с помощью приложения, не информированного об альфа-канале, равно р, содержащий этапы, в соответствии с которыми

(a) инициализируют равным 2 n-р+m значение альфа у значения пиксельных данных для всех значений пиксельных данных в файле пиксельных данных,

(b) выполняют приложение, не информированное об альфа-канале, над файлом пиксельных данных,

(c) изменяют значение альфа у каждого значения пиксельных данных путем изменения значения альфа у значения пиксельных данных в файле пиксельных данных на m для каждого значения пиксельных данных в файле пиксельных данных со значением альфа равным 2n-р+m и изменяют значение альфа у значения пиксельных данных в файле пиксельных данных на р для каждого значения пиксельных данных со значением альфа равным m, и

(d) отображают файл пиксельных данных в среде, информированной об альфа-канале.

9. Способ по п.8, по которому упомянутое изменение значения альфа у значения пиксельных данных содержит этап увеличения значения альфа у значения пиксельных данных для всех значений пиксельных данных в файле пиксельных данных на р-m по модулю 2n.

10. Способ по п.8, по которому упомянутое изменение значения альфа у значения пиксельных данных содержит уменьшение значения альфа у значения пиксельных данных для всех значений пиксельных данных в файле пиксельных данных на р-m по модулю 2 n.

11. Способ по п.8, по которому по меньшей мере одно из значений р или m равно нулю.

12. Носитель, считываемый с помощью компьютера, имеющий записанное на нем множество команд, выполняемых с помощью компьютера, для выполнения способа по п.8.

13. Компьютерная графическая система, содержащая модули, выполняемые с помощью компьютера, для использования изображения в файле пиксельных данных, визуализируемом с помощью приложения, не информированного об альфа-канале, в среде, информированной об альфа-канале, где (i) приложение, не информированное об альфа-канале, записывает значения пиксельных данных в существующий файл пиксельных данных, содержащий значения пиксельных данных, (ii) каждое значение пиксельных данных включает в себя n-битовое значение альфа и соответствует местоположению пикселя, (iii) приложение, не информированное об альфа-канале, устанавливает значение альфа у значения пиксельных данных равным 0 для каждого пикселя, для которого значение пиксельных данных записывается с помощью упомянутого приложения в файл пиксельных данных, и (iv) среда, информированная об альфа-канале, является графической средой, в которой каждое значение альфа используется для установки прозрачности соответствующего пикселя, когда изображение в файле пиксельных данных отображается на переднем плане других данных изображения, с помощью значения альфа равного нулю, соответствующего полной прозрачности, и увеличения значений альфа, соответствующих увеличению уровней непрозрачности, при этом упомянутые компьютерные модули содержат

(a) средство для инициализации равным 1 значения альфа у значений пиксельных данных для каждого значения пиксельных данных в файле пиксельных данных,

(b) средство для выполнения приложения, не информированного об альфа-канале, над файлом пиксельных данных,

(c) средство для изменения значения альфа у каждого значения пиксельных данных путем изменения значения альфа у значений пиксельных данных в файле пиксельных данных на 0 у каждого значения пиксельных данных в файле пиксельных данных со значением альфа равным 1, и изменения значения альфа у значения пиксельных данных в файле пиксельных данных на значение альфа для полной непрозрачности для каждого значения пиксельных данных со значением альфа равным 0, и

(d) средство для отображения файла пиксельных данных в среде, информированной об альфа-канале.

14. Компьютерная графическая система по п.13, в которой упомянутое средство для изменения значения альфа у значения пиксельных данных содержит средство для уменьшения на 1 по модулю 2n значения альфа у значения пиксельных данных для каждых пиксельных данных в файле пиксельных данных.

15. Компьютерная графическая система по п.13, по которому n выбирают из группы, состоящей из 1 и 8.

16. Компьютерная графическая система, содержащая модули, выполняемые с помощью компьютера, для использования приложения, не информированного об альфа-канале, в среде, информированной об альфа-канале, где (i) приложение, не информированное об альфа-канале, записывает значения пиксельных данных в существующий файл пиксельных данных со значениями пиксельных данных, (ii) каждое значение пиксельных данных включает в себя n-битовое значение альфа и соответствует местоположению пикселя, (iii) приложение, не информированное об альфа-канале, устанавливает значение альфа у значения пиксельных данных равным m для каждого пикселя, для которого значение пиксельных данных записывается с помощью упомянутого приложения в файл пиксельных данных, и (iv) среда, информированная об альфа-канале, является графической средой, в которой каждое значение альфа используется для установки прозрачности соответствующего пикселя, когда изображение в файле пиксельных данных отображается на переднем плане других данных изображения, с помощью значения альфа, равного нулю, соответствующего полной прозрачности, и увеличения значений альфа, соответствующих увеличению уровней непрозрачности, и (v) значение альфа для требуемой непрозрачности для пикселей, записанных с помощью упомянутого приложения, не информированного об альфа-канале, равно р, при этом компьютерные модули содержат

(a) средство для инициализации значения альфа у значений пиксельных данных для всех значений пиксельных данных в файле пиксельных данных равным 2 n-p+m,

(b) средство для выполнения приложения, не информированного об альфа-канале, над файлом пиксельных данных,

(c) средство для изменения значения альфа у каждого значения пиксельных данных путем изменения значения альфа у значения пиксельных данных в файле пиксельных данных равным m для каждого значения пиксельных данных в файле пиксельных данных со значением альфа, равным 2n-р+m, и изменения значения альфа у значения пиксельных данных в файле пиксельных данных на р для каждого значения пиксельных данных со значением альфа равным m, и

(d) средство для отображения файла пиксельных данных в среде, информированной об альфа-канале.

17. Компьютерная графическая система по п.16, в которой упомянутое средство для изменения значения альфа пиксельных данных содержит средство для увеличения на р-m по модулю 2n значения альфа пиксельных данных для всех пиксельных данных в файле пиксельных данных.

18. Компьютерная графическая система по п.16, в которой упомянутое средство для изменения значения альфа пиксельных данных содержит средство для увеличения значения альфа пиксельных данных для всех пиксельных данных в файле пиксельных данных на m-р по модулю 2n.

19. Компьютерная графическая система по п.16, в которой по меньшей мере одно из значений р или m равно нулю.

Описание изобретения к патенту

Область изобретения

Настоящее изобретение относится к области компьютерной графики, а более конкретно к системе и способу использования изображений, не информированных об альфа-канале, в среде, информированной об альфа-канале.

Уровень техники, предшествующий изобретению

Для отображения изображения на устройстве отображения компьютера необходимо вырабатывать пиксельные данные, которые содержат информацию относительно того, как должен действовать каждый пиксель устройства отображения для получения изображения. Приложение обычно визуализирует изображение, отображаемое на пиксельной сетке. Размер сетки выбирают, исходя из размера формируемого изображения. Пиксельная сетка соответствует файлу пиксельных данных, в котором хранится информация, необходимая для отображения изображения на устройстве отображения компьютера. Информация включает в себя значение пиксельных данных для каждого пикселя, который содержится внутри изображения. Когда необходимо отображать изображение, пиксельная сетка в файле пиксельных данных преобразуется в фактическую область устройства отображения, и наряду со значениями пиксельных данных из других изображений, которые размещаются в той же самой области устройства отображения, значения пиксельных данных используются для определения того, как должны функционировать пиксели на устройстве отображения.

Значение пиксельных данных для пикселя обычно содержится в четырех байтах. Первые три байта определяют значения красного, зеленого и синего цветов для пикселя. В более старых графических средах четвертый байт игнорировался. Этот четвертый байт включался только потому, что большинство схем процессоров позволяло работать более эффективно с памятью при четырехбайтовых приращениях по сравнению с трехбайтовыми приращениями, и поэтому для сохранения информации о пикселях устройства отображения, стоимость хранения компенсировалась эффективностью обработки.

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

Альфа-сопряжение

Как описано выше, четвертый байт значения пиксельных данных не используется в более старых графических средах. Однако в более новых графических средах четвертый байт используется для сохранения значения альфа (так называемого альфа-канала), которое используется в методе, известном как альфа-сопряжение.

Альфа-сопряжение представляет собой способ моделирования прозрачности, когда устройство отображения состоит из слоев изображений с наложением. При альфа-сопряжении значения альфа каждого пикселя определяют уровень непрозрачности для этого пикселя. В частности, значение альфа, равное 0, показывает, что пиксель является полностью прозрачным, и значение альфа, равное 255, показывает, что пиксель является полностью непрозрачным (непроницаемым). Промежуточное значение альфа (между 0 и 255) показывает промежуточный уровень непрозрачности. Значение альфа пикселя изображения на переднем плане определяет, до какой степени будет отображаться любая информация из любых пикселей, расположенных в фоновых изображениях.

В качестве примера использования альфа-сопряжения можно рассмотреть устройство отображения компьютера с пиктограммой, которая отображается в верхней части (переднем слое, ближайшем к зрителю) фоновой картины. Чтобы создать такое устройство отображения с использованием альфа-сопряжения, используется файл пиксельных данных, который сохраняет информацию о том, как должна выглядеть пиктограмма. Внутри этого файла пиксельных данных для пиктограммы (иконки) сохраненное значение альфа для некоторых пикселей больше 0. Эти пиксели являются непрозрачными, и именно эти непрозрачные пиксели образуют изображение пиктограммы. Все другие пиксели в сохраненной сетке пиксельных данных имеют значение альфа, равное нулю. Эти пиксели являются прозрачными и не являются частью изображения пиктограммы. Когда пиксельные данные из файла пиксельных данных, соответствующего пиктограмме, отображаются в верхней части (поверх) изображения фоновой картины, соответствующего фоновой картине, отображается пиктограмма, и изображение фоновой картины просвечивается в любых областях, где файл пиксельных данных для пиктограммы показал, что пиксели являются прозрачными. Кроме того, если какие-либо пиксели в изображении пиктограммы имеют значение меньше 255 (полная непрозрачность), то сквозь изображение пиктограммы можно увидеть некоторую информацию из картины фонового изображения.

В целом, при использовании альфа-сопряжения пиксели в изображении переднего плана, которые имеют значение альфа, отличное от нуля, отображаются в комбинации с ними в фоновом изображении или, в случае полной непрозрачности изображения переднего плана, взамен тех, которые находятся в фоновом изображении. Фоновое изображение просвечивается отчетливо там, где любые пиксели в изображении пиктограммы имеет значение альфа, равное нулю. Таким образом, графическая среда, которая осуществляет альфа-сопряжение (среда, информированная об альфа-канале), может использовать значения альфа-канала для отображения комбинаций перекрываемых изображений.

Приложения, не информированные об альфа-канале

Альфа-сопряжение и использование значения альфа неизвестны в более старых приложениях (приложения, не информированные об альфа-канале), которые создают файлы пиксельных данных. В обычном случае приложение, не информированное об альфа-канале, выбирают в качестве входных данных файла пиксельных данных, в который будет производиться запись, и в этот файл пиксельных данных перезаписывают значение пиксельных данных для любого числа пикселей. Таким образом, новое изображение записывают в файл пиксельных данных. Любая информация об изображении, которая предварительно существовала во входном файле данных изображения, перезаписывается в каждый пиксель, в который производилась запись с помощью приложения, не информированного об альфа-канале. Выходными данными приложения, не информированного об альфа-канале, является частично или полностью переписанный файл пиксельных данных.

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

Использование приложения, не информированного об альфа-канале, в среде, информированной об альфа-канале

Когда приложение, не информированное об альфа-канале, вырабатывает файл пиксельных данных для использования со средой, информированной об альфа-канале, выход заключается в том, что значение альфа для каждого пикселя в изображении, нарисованном с помощью приложения, не информированного об альфа-канале, устанавливается в ноль. Пиксельные данные, не созданные приложением, не информированным об альфа-канале, не изменяются с помощью приложения, не информированного об альфа-канале, поэтому сохраняется первоначальное значение альфа таких пиксельных данных (которое может быть больше нуля). Эти пиксели могут появляться в случае, если файл пиксельных данных используется в среде, информированной об альфа-канале. Но так как пиксельные данные, созданные приложением, не информированном об альфа-канале, имеют значение альфа, равное нулю, то каждый пиксель, для которого значение пиксельных данных было записано в файл пиксельных данных с помощью приложения, не информированного об альфа-канале, является прозрачным. Эти пиксели не будут появляться тогда, когда файл пиксельных данных используется в среде, информированной об альфа-канале.

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

При распознавании такого условия, и в предшествующем уровне техники был установлен механизм, посредством которого при инициализации файла пиксельных данных, который должен быть выделен приложению, значение пиксельных данных для каждого пикселя устанавливается на значение сигнальной метки или цвет. Затем, после того как приложение записало изображение в файл пиксельных данных, проверяется значение пиксельных данных для каждого пикселя. Если конкретное значение пиксельных данных все еще имеет значение сигнальной метки или цвета, значение альфа для этого пикселя устанавливают в ноль. Если конкретное значение пиксельных данных не содержит значения сигнальной метки, то значение альфа для этого пикселя устанавливается на желательную непрозрачность.

Существенно, что такой механизм имеет два недостатка. Во-первых, механизм является дорогим с точки зрения вычислений, так как каждый пиксель необходимо считывать и сравнивать со значением сигнальной метки и, по возможности, перезаписывать. Во-вторых, если имеет место приложение, не информированное об альфа-канале, которое производит запись пикселя равным значению, которое соответствует значению сигнальной метки, то такой записанный пиксель ошибочно делается прозрачным.

Соответственно, существует потребность в способе и механизме для того, чтобы разрешить приложению, не информированному об альфа-канале, формировать изображение для среды, информированной об альфа-канале. Более конкретно, существует потребность в таком способе и механизме, который является недорогим с точки зрения вычислений и не вызывает появления ошибочно прозрачных пикселей.

Сущность изобретения

Согласно настоящему изобретению, раскрыты система и способ, которые позволяют приложению, не информированному об альфа-канале, записывать пиксельные данные в файл пиксельных данных. Каждый пиксель, измененный приложением, не информированным об альфа-канале, устанавливается равным предварительно определенному уровню непрозрачности, в то время как каждый пиксель, не измененный приложением, не информированным об альфа-канале, делается прозрачным с уменьшением времени обработки и вероятности ошибки по сравнению со способом предшествующего уровня техники.

В соответствии с одним вариантом осуществления изобретения, каждый пиксель в файле пиксельных данных инициализируется для того, чтобы иметь значение альфа, равное 1. После того, как процесс, не информированный об альфа-канале, завершил запись в файл пиксельных данных, один проход делается над изображением, уменьшая при этом значение альфа каждого пикселя на 1. Этот проход приводит к пикселям, записанным посредством процесса, не информированного об альфа-канале, которые были установлены этим процессом равным значению альфа, равному нулю, которое имеет новое значение альфа, равное 255 (так как вычитание в байте выполняется по модулю 256 (так как в байте имеется восемь битов, и 28=256)). Каждый пиксель, не записанный приложением, не информированным об альфа-канале, визуализируется прозрачным, так как его значение альфа равно нулю, при этом результат значения альфа каждого такого пикселя инициализируется равным 1 и затем уменьшается равным 1.

В соответствии с другим вариантом осуществления изобретения там, где необходимая непрозрачность представлена значением альфа, равным p, значение альфа представлено в n битах, при этом значение альфа 2n-1 является наиболее непрозрачным и значение альфа, равное 0, является наименее непрозрачным, и где приложение, не информированное об альфа-канале, устанавливает значение альфа каждого значения пиксельных данных, которое оно записывает равным m, каждый пиксель в файле пиксельных данных инициализируется для того, чтобы иметь значение альфа, равное 2n-p+m. После того как процесс, не информированный об альфа-канале, завершил запись в файл пиксельных данных, делается один проход над изображением, уменьшая при этом значение альфа каждого пикселя на m-p (по модулю 2 n). Этот проход приводит в результате к пикселям, записанным с помощью процесса, не информированного об альфа-канале, имеющего значение альфа, равное p, и пикселям, не записанным с помощью процесса, не информированного об альфа-канале, имеющим значение альфа, равное 0.

Другие аспекты настоящего изобретения описаны ниже.

Краткое описание чертежей

Приведенное выше краткое изложение, а также последующее подробное описание предпочтительных вариантов осуществления, станут более понятными после прочтения совместно с прилагаемыми чертежами. В целях иллюстрации изобретения на чертежах показаны образцовые исполнения настоящего изобретения, однако, изобретение не ограничено раскрытыми специфическими способами и средствами. На чертежах:

фиг.1 изображает блок-схему образцовой вычислительной среды, в которой могут быть реализованы аспекты изобретения;

фиг.2 изображает блок-схему предварительно инициализированные группы пикселей в файле пиксельных данных перед тем, как процесс, не информированный об альфа-канале, осуществил запись в файл пиксельных данных;

фиг.3 изображает блок-схему группы пикселей в файле пиксельных данных после того, как процесс, не информированный об альфа-канале, осуществил запись в файл пиксельных данных, но перед преобразованием значений альфа согласно способу изобретения;

фиг.4 изображает диаграмму, показывающую группу пикселей в файле пиксельных данных после преобразования значений альфа согласно способу изобретения; и

фиг.5 изображает алгоритм способа изобретения.

Подробное описание предпочтительных вариантов осуществления

Обзор

В настоящем изобретении, когда приложение, не информированное об альфа-канале, визуализирует изображение, которое необходимо использовать в среде, информированной об альфа-канале, значение альфа каждого пикселя, записанного в файл пиксельных данных с помощью приложения, устанавливается так, чтобы сделать пиксель непрозрачным, и каждый пиксель, не записанный в файл пиксельных данных с помощью приложения, устанавливается так, чтобы сделать пиксель прозрачным.

Образцовая вычислительная среда

На фиг.1 изображен пример подходящей вычислительной среды 100 системы, в которой может быть реализовано изобретение. Вычислительная среда 100 системы является только одним примером подходящей вычислительной среды и не представляет собой какое-либо ограничение по масштабу использования или функциональных возможностей изобретения. Нельзя интерпретировать вычислительную среду 100 как имеющую какую-либо зависимость или требование, относящееся к какому-либо одному или комбинации компонентов, изображенных на образцовой операционной среде 100.

Изобретение работает с многочисленными другими средами или конфигурациями вычислительной системы общего назначения или специального назначения. Примерами известных вычислительных систем, сред и/или конфигураций, которые могут быть подходящими для использования с изобретением, включают в себя, но не ограничиваются, персональные компьютеры, компьютеры сервера, карманный компьютер или небольшие портативные компьютерные устройства, многопроцессорные системы, системы на основе микропроцессора, компьютерные приставки к телевизору, программируемая бытовая электроника, сетевые ПК, миникомпьютеры, универсальные электронные вычислительные машины, распределенные вычислительные среды, которые включают в себя любую из вышеупомянутых систем или устройств и тому подобное.

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

Как показано на фиг.1, образцовая система для осуществления изобретения включает в себя вычислительное устройство общего назначения в виде компьютерной системы 100. Компоненты компьютера 110 могут включать в себя, но не ограничиваться, процессор 120, системную память 130 и системную шину 121, которая соединяет различные компоненты системы, включая системную память с процессором 120. Системная шина 121 может быть любой из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, использующую любую из множества архитектур шины. Например, но не ограничиваясь этим, такие архитектуры включают в себя шину со стандартной промышленной архитектурой (СПА (ISA)), шину с микроканальной архитектурой (МКА (MCA)), шину с расширенной стандартной архитектурой для промышленного применения (РСАПП (EISA)), локальную шину Ассоциации по стандартам в области видеоэлектроники (АСОВ (VESA)) и локальную шину для соединения периферийных устройств (СПУ (PCI)) (известную также как шина расширения).

Компьютер 110 обычно включает в себя множество носителей информации, считываемых с помощью компьютера. Носители информации, считываемые с помощью компьютера, могут представлять собой любой доступный носитель информации, к которому может обращаться компьютер 110, и который включает в себя энергозависимый носитель информации и энергонезависимые носители информации, сменные и несменные носители информации.

В качестве примера, а не ограничения, носители информации, считываемые с помощью компьютера, могут содержать компьютерные носители информации и средства связи. Компьютерные носители информации включают в себя энергозависимые и энергонезависимые, сменные и несменные средства информации, реализованные в любом способе или технологии для хранения информации, такой как команды, считываемые с помощью компьютера, структуры данных, программных модулей или других данных. Компьютерные носители информации включают в себя, но не ограничены этим, ОЗУ, ПЗУ, электрически стираемое программируемое ПЗУ, флэш-память или другую технологию памяти, постоянное запоминающее устройство на компакт-диске (КД-ПЗУ (CD-ROM)), универсальные цифровые диски (УЦД (DVD)) или другое запоминающее устройство на основе оптического диска, магнитные кассеты, магнитную ленту, запоминающее устройство на основе магнитного диска или другие магнитные запоминающие устройства или любую другую среду, которую можно использовать для хранения требуемой информации и к которой может обращаться компьютер 110. Средства связи обычно реализуют команды, считываемые с помощью компьютера, структуры данных, программные модули или другие данные в модулируемом сигнале данных, таком как несущая волна или другой механизм транспортировки, и включают в себя любые средства доставки информации. Термин "модулированный сигнал данных" означает сигнал, который имеет одну или более из набора его характеристик или измененный таким способом, чтобы кодировать информацию в сигнале. В качестве примера, и не ограничения, средства связи включают в себя проводные средства, такие как проводная сеть или прямое проводное соединение, и беспроводные средства, такие как акустические, РЧ, инфракрасные и другие беспроводные средства. Комбинации любых из вышеупомянутых средств должны также находиться в пределах области действия средств информации, считываемых с помощью компьютера. Системная память 130 включает в себя компьютерные носители информации в виде энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ (ROM)) 131 и оперативное запоминающее устройство (ОЗУ (RAM)) 132. Базовая система 133 ввода-вывода (БСВВ (BIOS)), содержащая базовые подпрограммы, которые помогают переносить информацию между элементами внутри компьютера 110, например, во время запуска, обычно хранится в ПЗУ 131. ОЗУ 132 обычно содержит данные и/или программные модули, к которым непосредственно обращаются и/или которыми оперируют в текущий момент времени с помощью процессора 120. В качестве примера, но не ограничения, на фиг.1 изображена операционная система 134, прикладные программы 135, другие программные модули 136 и данные 137 программы.

Компьютер 110 может также включать в себя другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители информации. В качестве примера только на фиг.1 изображен привод 140 жесткого диска, который считывает из или записывает на несменный, энергонезависимый магнитный носитель информации, привод 151 магнитного диска, который считывает из или записывает на сменный, энергонезависимый магнитный диск 152, и привод 155 оптического диска, который считывает из или записывает на сменный, энергонезависимый оптический диск 156, такой как КД-ПЗУ или другой оптический носитель информации.

Другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители информации, которые могут использоваться в образцовой операционной среде, включают в себя, но не ограничены этим, кассеты с магнитной лентой, карточки с флэш-памятью, цифровые универсальные диски, цифровые видеоленты, твердотельные ОЗУ, твердотельные ПЗУ и тому подобное. Привод 141 жесткого диска обычно подсоединяется к системной шине 121 через интерфейс несменной памяти, такой как интерфейс 140, и привод 151 магнитного диска и привод 155 оптического диска обычно подсоединяются к системной шине 121 с помощью интерфейса сменной памяти, такой как интерфейс 150.

Приводы и связанные с ними компьютерные носители информации, обсужденные выше и изображенные на фиг.1, обеспечивают хранение команд, считываемых с помощью компьютера, структур данных, программных модулей и других данных для компьютера 110. На фиг.1, например, привод 141 жесткого диска изображен в качестве хранящего операционную систему 144, прикладные программы 145, другие программные модули 146 и данные 147 программы. Следует обратить внимание, что эти компоненты могут быть одинаковыми или отличаться от операционной системы 134, прикладных программ 135, других программных модулей 136 и данных 137 программы. Операционная система 144, прикладные программы 145, другие программные модули 146 и данные 147 программы приведены здесь с различными позициями для иллюстрации того, что они как минимум представляют собой различные копии. Пользователь может вводить команды и информацию в компьютер 20 через устройства ввода, такие как клавиатура 162 и указательное устройство 161, которое обычно называют мышью, шаровой указатель (трек-бол) или сенсорная клавиатура. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую антенну, сканер и тому подобное. Эти и другие устройства ввода часто подсоединяются к процессору 120 через пользовательский интерфейс 160 ввода, который подсоединен к системной шине, но может быть подсоединен с помощью другого интерфейса и шинных структур, таких как параллельный порт, игровой порт или универсальная последовательная шина (УПШ (USB)). Монитор 191 или другой тип устройства отображения также подсоединен к системной шине 121 через интерфейс, такой как видеоинтерфейс 190. Кроме монитора, компьютеры могут также включать в себя другие периферийные устройства вывода, такие как громкоговорители 197 и принтер 196, которые могут быть подсоединены через выходной периферийный интерфейс 190.

Компьютер 110 может работать в сетевой среде, использующей логические соединения с одним или более удаленными компьютерами, такими как удаленный компьютер 180. Удаленный компьютер 180 может быть персональным компьютером, сервером, маршрутизатором, сетевым ПК, одноранговым устройством или другим общим сетевым узлом, и обычно включает в себя многие или все элементы, описанные выше по отношению к компьютеру 110, хотя только запоминающее устройство 181 было изображено на фиг.1. Логические соединения, изображенные на фиг.1, включают в себя локальную вычислительную сеть (ЛВС (LAN)) 171 и глобальную сеть (ГС (WAN)) 173, но могут также включать в себя другие сети. Такие среды с организацией сети являются обычными в офисах, корпоративных компьютерных сетях, Интранет и Интернет.

При использовании в среде с организацией сети ЛВС, компьютер 110 подсоединен к ЛВС 171 через сетевой интерфейс или адаптер 170. При использовании в среде с организацией сети ЛВС, компьютер 110 обычно включает в себя модем 172 или другое средство для установления связи по ЛВС 173, такой как Интернет. Модем 172, который может быть внутренним или внешним, может быть подсоединен к системной шине 121 через пользовательский входной интерфейс 160 или другой соответствующий механизм. В сетевой среде программные модули, изображенные по отношению к компьютеру 110 или его частей, могут храниться в удаленном запоминающем устройстве. В качестве примера, а не ограничения, на фиг.1 изображены удаленные прикладные программы 185, которые постоянно хранятся в запоминающем устройстве 181. Будет оценено, что показанные сетевые соединения являются образцовыми, и можно использовать другое средство установления линии связи между компьютерами.

Преобразование выхода приложения, не информированного об альфа-канале

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

На фиг.2, 3 и 4 каждый пиксель представлен как маленький квадрат с четырьмя числами в круглых скобках, соответствующими четырем байтам информации (значение пиксельных данных), хранящихся в файле 199 пиксельных данных для пикселя. Последний байт представляет собой значение альфа.

Согласно варианту осуществления изобретения, и как показано, файл 199 пиксельных данных используется для хранения изображения, которое должно быть сформировано. Никакие данные из файла199 пиксельных данных кроме тех, которые будут записываться в него с помощью приложения, не информированного об альфа-канале, не будут отображаться в конечном изображении, поэтому используемый файл пиксельных данных не должен быть таким, в котором сохраняются любые важные данные.

Как показано на фиг.2, значение альфа (последний байт) каждого пикселя 200 из файла 199 пиксельных данных инициализируется в значение, равное 1. Значения для первых трех байтов (значения красный, зеленый, синий) каждого пикселя 200 не затрагиваются настоящим изобретением, например, значения байта равны 255 для каждого из пикселей 200. Инициализация производится перед воздействием на файл 199 пиксельных данных приложением, не информированным об альфа-канале, как показано на первом этапе 510 алгоритма фиг.5.

После инициализации, как показано на втором этапе 520 (фиг.5), файл 199 пиксельных данных (фиг.2) затем используется приложением, не информированным об альфа-канале, которое записывает изображение в файл 199 пиксельных данных путем изменения значений пиксельных данных для некоторых или всех пикселей 200. Полученный в результате файл 199 пиксельных данных показан на фиг.3.

Как показано на фиг.3, после воздействия на файл 199 пиксельных данных приложением, не информированным об альфа-канале, измененные пиксели 305 записываются с помощью приложения, не информированного об альфа-канале. Другие пиксели, неизменные пиксели 310, не записываются с помощью приложения альфа-канала и содержат те же самые значения, которые они имели перед работой приложения, не информированного об альфа-канале.

Значение альфа для каждого из измененных пикселей 305 было установлено в 0, и значения других байтов также были изменены во многих случаях. Однако следует обратить внимание, что для одного из измененных пикселей 305, значение пиксельных данных равно (255, 255, 255, 0). Хотя красные, зеленые и синие значения сохраняют значение 255, значение альфа равно также 0 для этого пикселя, показывая, что этот пиксель был записан с помощью приложения, не информированного об альфа-канале, даже тогда, когда это нельзя было заметить путем проверки первых трех байтов пиксельных данных.

Как показано на третьем этапе 530 (фиг.5), каждое значение альфа во всех пикселях (измененных пикселях 305 и неизмененных пикселях 310) уменьшается на 1. Полученный в результате файл пиксельных данных показан на фиг.4. Это уменьшение (при выполнении над байтом) выполняется по модулю 256. Поэтому, для каждого пикселя 405, для которого значение альфа было равно нулю (измененные пиксели 305 на фиг.3), новым значением альфа становится 255, и пиксель делается непрозрачным, когда файл 199 пиксельных данных используется в приложении, информированном об альфа-канале. Каждый пиксель 410, для которого его значение альфа было равно 1 (неизменные пиксели 310 на фиг.3), имеет свое значение альфа, которое становится равным 0, и визуализируется прозрачным, когда файл 199 пиксельных данных используется в приложении, информированном об альфа-канале. Таким образом, с помощью только одной арифметической операции, выполненной над каждым пикселем и без выполнения сравнений, пиксели 305, которые были изменены с помощью приложения, не информированного об альфа-канале, являются непрозрачными, тогда как неизменные пиксели 310 являются прозрачными. Файл 199 пиксельных данных с изображением можно затем использовать в среде, информированной об альфа-канале, как показано на четвертом этапе 540 (фиг.5).

Возможны и другие варианты осуществления изобретения. В некоторых графических системах пиксельные данные содержатся в двух байтах, а не в четырех байтах. В этих системах 5 битов используются для каждого из красного, зеленого и синего значений, и последним битом является бит альфа (0 - для прозрачного, 1 - для непрозрачного). В этом случае, бит, содержащий значение альфа, должен быть устанавливаться равным 1 перед выполнением приложения, не информированного об альфа-канале, и бит альфа должен быть изменен (с 1 на 0; с 0 на 1) после выполнения приложения. Это можно сделать с помощью увеличения, уменьшения или любого другого средства логического оператора, который выполняет это изменение с требуемой эффективностью. Любая другая система хранения пиксельной информации, в которой непрозрачность указывается с помощью значения альфа 2n-1 (другими словами, где значение альфа имеет длину, равную n битам) и прозрачность указывается с помощью значения альфа, равного 0, может использовать способ этого изобретения путем установки значения альфа на 1 и выполнения вычитания 1 по модулю 2n.

Возможно, что существует приложение, не информированное об альфа-канале, которое устанавливает значение альфа измененных пикселей равным значению m, отличному от нуля. В этом случае способ согласно изобретению можно использовать при инициализации каналов альфа значением m+1 перед выполнением приложения, и дальнейшего уменьшения значений в каналах альфа на m +1 по модулю 2n (где n - число битов в значении альфа).

Возможно, что изображение, сформированное приложением, не информированным об альфа-канале, предположительно будет только частично непрозрачным. В таком случае, и где значение альфа имеет длину n битов, полная непрозрачность представлена значением альфа 2n-1, и полученное в результате изображение желательно имело бы значение непрозрачности p, способ настоящего изобретения инициализирует каждое значение альфа значением 2n-p, и p (по модулю 2n) добавляется в каждое значение альфа после выполнения приложения. Этот способ используется там, где приложение, не информированное об альфа-канале, устанавливает значение альфа-канала равным нулю.

Эти случаи можно скомбинировать - там где альфа-канал имеет длину n битов, приложение, не информированное об альфа-канале, устанавливает значение альфа-канала на m, и требуемая непрозрачность равна p, значение альфа каждого пикселя должно быть инициализировано на 2 n-p+m, и затем после выполнения приложения, не информированного об альфа-канале, p-m необходимо сложить (или вычесть m-p) по модулю 2n .

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

Заключение

Программирование, необходимое для выполнения структуры настоящего изобретения и процессов, которые выполняются совместно с настоящим изобретением, является относительно простым и должно быть ясным специалистам по программированию. Соответственно, такая программа не прилагается к нему. Любая конкретная программа в дальнейшем может использоваться для осуществления настоящего изобретения без отклонения от сущности и масштаба изобретения.

В предыдущем описании можно заметить, что настоящее изобретение содержит новый и полезный механизм, который позволяет приложению, не информированному об альфа-канале, сформировать изображение для среды, информированной об альфа-канале. Следует оценить, что можно внести изменения в варианты осуществления, описанные выше, без отклонений от концепций настоящего изобретения. Поэтому следует понимать, что настоящее изобретение не ограничено конкретными раскрытыми вариантами осуществления, а предназначено для охвата модификаций в пределах сущности и масштаба настоящего изобретения так, как это определено в прилагаемой формуле изобретения.

Класс G06T1/00 Обработка данных изображения общего применения

система оповещения о программной ошибке и недостатке эффективности -  патент 2527208 (27.08.2014)
устройство обработки изображения и способ управления устройством обработки изображения -  патент 2527198 (27.08.2014)
устройство формирования изображений, система формирования изображений, способ управления устройством и системой и программа -  патент 2527076 (27.08.2014)
устройство фильтрации динамических цифровых изображений в условиях ограниченного объема априорных данных -  патент 2522043 (10.07.2014)
двойная буферизация в режиме транзакции для визуализации графического интерфейса пользователя -  патент 2519034 (10.06.2014)
устройство составления изображений -  патент 2517266 (27.05.2014)
многоуровневое стохастическое псевдосмешение с подавлением шума путем последовательного осреднения с использованием шаблонов -  патент 2511574 (10.04.2014)
устройство для внедрения водяного знака в информационное представление, детектор для обнаружения водяного знака в информационном представлении, способ и компьютерная программа -  патент 2510078 (20.03.2014)
устройство для нанесения макияжа на лицо и способ нанесения макияжа с его использованием -  патент 2509330 (10.03.2014)
устройство обработки изображения, способ обработки изображения и система передачи данных -  патент 2507584 (20.02.2014)
Наверх