Цифровое видео


Комментарий 3


Про векторные вычисления ничего не могу сказать, таких в нашем мире PC

от Интела нет.

Про обработку изображения можно добавить к сказанному в комментарии на

комментарий следующее:

Давайте спустимся на землю.

Я по молодости считал подобные "эффекты", делая расчеты двумерных и

трехмерных электрических полей с учетом сложной геометрии и

распределения объемных зарядов в пространстве. В некотором смысле это и

был сложный видео эффект. Я имел на экране одну исходную картинку

(граничные условия и распределение объемного заряда - типичная задача в

физике низкотемпературной плазмы), и мне надо было по алгоритму из нее

сделать другую - распределение поля.

Так вот, решение в одной точке зависело от очень многих точек исходной

картинки - плотности заряда, координаты, форма электродов, ... Типичный

случай сложного эффекта в видеомонтаже. Уверяю вас, что сложность

зависимости конечного результата от начальных данных не определяет длину

кода. В моем случае приходилось решать все итерационно, перебирая

"пикселы" и делая над ними вычисления. Размер "картинки" был от 30х30 до

1200х1200 точек. Но, весь код содержал несколько циклов по всем точкам,

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

7.0 в защищенном режиме, поэтому я мог в "куче" создать такие большие

псевдомассивы. На встроенный ассемблер я перешел только по причине

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

делалось. Вся программа оперировала с данными до 20 Мб, а ее код был не

более 40-50 кб и исполняемый код ЦИКЛА заведомо помещался в кэш ПЕРВОГО

уровня. Не надо смешивать количество вычислений (проходов цикла) с

длиной кода. Это очевидно разные вещи.

Если алгоритм общения с кэшем сделан хоть немного разумно, то

последовательный перебор точек одной картинки с целью просчета их

координат и откладывания значений в другой массив работает эффективно и

без кэша второго уровня. Делается просто пакетное чтение из основной




Начало  Назад  Вперед



Книжный магазин