анизометрический синтез текстуры
Классы МПК: | G06T7/40 анализ текстуры |
Автор(ы): | ЛЕФЕБВР Силвэйн (US), ХОПП Хьюз Х. (US) |
Патентообладатель(и): | МАЙКРОСОФТ КОРПОРЕЙШН (US) |
Приоритеты: |
подача заявки:
2007-05-11 публикация патента:
27.05.2011 |
Изобретение относится к синтезу текстуры, включающему автоматической формирование больших текстур из маленького примерного изображения. Технический результат заключается в расширении функциональных возможностей за счет представления нескольких версий образца при множестве изменения ориентации и масштабов. В системе и способе формируют анизометрическую текстуру, имеющую аналогичный заданному образцу внешний вид, но с измененным ориентацией и масштабом. Это изменение достигается посредством модификации процессов повышения дискретизации и коррекции для способа синтеза текстуры, используя область якобиана. Модифицированный процесс коррекции включает в себя обращение только к непосредственным соседним пикселям вместо нелокальных пикселей. Ограничение при использовании только непосредственных соседей позволяет сформировать гладкие анизометрические поверхностные текстуры. При этом используют карты косвенности, содержащие указатели косвенности, которые используют, чтобы перейти от набора пикселей вне границы части в атласе текстуры к другой части. Система и способ также обеспечивают увеличение четкости изображения при анизометрическом синтезе с использованием области якобиана. 8 з.п. ф-лы, 12 ил.
Формула изобретения
1. Способ анизометрического синтеза текстуры, содержащий этапы:
вводят область якобиана и изображение координат синтезируемого пикселя на предыдущем уровне разрешения (200, 205);
обращаются к непосредственным пиксельным соседям обрабатываемого пикселя из изображения координат синтезируемого пикселя на предыдущем уровне разрешения (215); и
преобразуют координаты пикселя непосредственных соседей пикселя, используя область якобиана, чтобы сформировать анизометрически преобразованный синтезируемый набор соседей текстуры, который используется для синтеза анизометрической текстуры (220).
2. Способ по п.1, дополнительно содержащий выбор по меньшей мере одного пикселя-кандидата из текстуры образца, используя анизометрически преобразованный синтезируемый набор соседей.
3. Способ по п.2, в котором выбор по меньшей мере одного пикселя-кандидата дополнительно содержит использование способа коррекции (225).
4. Способ по п.3, в котором способ коррекции является способом (225) коррекции с попиксельным согласованием набора соседей.
5. Способ по п.1, в котором анизометрически синтезируемая текстура расположена на поверхности и дополнительно содержит совмещение анизометрически синтезируемой текстуры с областью якобиана по поверхности (225).
6. Способ по п.5, дополнительно содержащий: синтезирование анизометрически синтезируемой текстуры непосредственно в параметрической области текстуры параметризации атласа текстуры, имеющей множество частей атласа текстуры; и
использование указателей косвенности, которые обеспечивают возможность перехода между множеством частей атласа текстуры.
7. Способ по п.6, дополнительно содержащий: выбор набора пикселей около границы части в одной из частей;
использование указателей косвенности для указания на другие пиксели, которые являются внутренними к другой одной из частей.
8. Способ по п.1, дополнительно содержащий использование области якобиана и способа увеличения при синтезе, чтобы расширить анизометрически синтезируемую текстуру для формирования увеличенной, с высоким разрешением анизометрически синтезируемой текстуры (270).
9. Способ по п.8, дополнительно содержащий выполнение способа увеличения при синтезе в средстве построения теней поверхности во времени визуализации.
Описание изобретения к патенту
Синтез текстуры включает в себя автоматическое формирование больших текстур из маленького примерного изображения (известного как эталон или образец текстуры). Этот основанный на образце текстуры синтез берет образец и генерирует дополнительный контент на основании этого образца, чтобы создать намного больше контента, чем содержится в образце. Основанный на образце синтез текстуры облегчает необходимость хранить в явном виде полный объем контента. Вместо этого контент формируется "на лету" из намного меньшего образца.
Традиционно, основанный на образце синтез текстуры включает в себя процесс коррекции, который сравнивает набор соседей каждого синтезируемого пикселя с наборами соседей образца. Синтезируемые пиксели затем модифицируются, чтобы повторно создать синтезируемые наборы соседей, которые являются совместимыми с контентом образца. Для каждого пикселя находят набор соседей с наилучшим совпадением и затем текущий пиксель заменяют наилучшим образом совпадающим пикселем. Наилучшим образом совпадающий набор соседей определяют посредством сравнения цветов пикселя в маленькой сетке пикселей. Например, для каждого пикселя может быть исследован набор соседей (соседство) из 5×5 пикселей, и ошибка этого набора соседей есть сумма ошибок векторов красного, зеленого и синего (RGB) цвета отдельных пикселей в наборе соседей 5×5.
Синтез текстуры может быть изометрическим или анизометрическим (означает "не изометрический"). Изометрический синтез текстуры генерирует текстуру, имеющую один и тот же образец в одном и том же масштабе и при одной и той же ориентации. С другой стороны, анизометрический синтез текстуры допускает изменение в ориентации и локальном масштабировании особенностей в генерируемой текстуре.
В течение процесса коррекции набор соседей собирается во в настоящее время синтезируемую текстуру и сравнивается с наборами соседей образца. Чтобы выполнить анизометрический синтез, современные способы "деформируют" (искажают) собранный набор соседей. Обратный якобиан есть преобразование, применяемое к координатам набора соседей перед выборкой их цвета. Обратный якобиан есть матрица 2×2, которая преобразовывает набор соседей пикселя, используя афинное преобразование. В частности, при заданной области якобиана набор соседей пикселя преобразуется обратным якобианом. Чтобы компенсировать обратный якобиан, изменяют ориентацию и масштаб набора соседей пикселя. Это означает, что вместо извлечения цветов в первоначальных точках набора соседей цвета извлекаются при новом наборе преобразованных точек набора соседей из-за новой ориентации и масштабирования.
Имеются несколько недостатков у этих современных способов анизометрического синтеза текстуры. Первый недостаток - недостаток логической последовательности (связности) памяти. В частности, в некоторых ситуациях преобразованный набор соседей становится большим и распределенным. Это означает, что можно обращаться к пикселям, удаленным на большое расстояние, вместо непосредственных соседей пикселя. Это ведет к более случайным обращениям к памяти, что может вызывать неэффективность и недостаток в последовательном доступе к памяти.
Второй недостаток - необходимость повторно дискретизировать нелокальные пиксели, к которым обращаются в течение процесса коррекции. В частности, после преобразования пиксели должны быть повторно дискретизированы посредством некоторого процесса, который интерполирует их значения. Это необходимо, потому что преобразованные пиксели распределяются по большой области. Однако этот процесс дискретизации является неэффективным и может вызывать видимое размывание в синтезируемой текстуре.
Третий недостаток - недостаток связности текстуры. Поскольку выборки являются сильно удаленными, процесс коррекции больше не зависит от значений соседних пикселей. Это может значительно уменьшать связность текстуры. Эта несвязность может заставить процесс коррекции вести себя неудачно и безрезультатно и может даже приводить к тому, что процесс будет не в состоянии сходиться.
Другой современный анизометрический способ синтеза текстуры должен представить несколько версий образца при множестве вращений и масштабов, и нужно сделать выбор среди этих версий образца на основании желательного якобиана для текущего пикселя. Однако этот подход требует значительного использования памяти для хранения и анализа многих версий образца. Кроме того, связность текстуры также трудно достигается.
Сущность изобретения
Этот раздел обеспечивается, чтобы представить выбор концепций в упрощенной форме, которые далее описаны ниже в Подробном описании. Этот раздел не предназначен, чтобы идентифицировать ключевые особенности или существенные признаки заявленного объекта изобретения, и при этом не предназначен для использования в качестве ограничения объема заявленного объекта изобретения.
Система и способ анизометрического синтеза текстуры, раскрытые в настоящем описании, включают в себя несколько способов, которые допускают формирование высококачественной анизометрической текстуры с высокой эффективностью и минимумом накладных расходов. В целом система и способ анизометрического синтеза текстуры синтезируют новые текстуры с тем же самым визуальным внешним видом, что и заданное примерное изображение или образец, но имеющие отличные ориентацию и масштаб. Эта ориентация и масштаб диктуются областью якобиана. Якобиан есть матрица 2×2, которая представляет линейное преобразование в точке. Система и способ анизометрического синтеза текстуры могут использоваться для формирования синтезируемой текстуры в плоскости и на поверхности.
Система и способ анизометрического синтеза текстуры включают в себя использование схемы синтеза, посредством которой обращаются только к непосредственным соседям пикселя. Использование только непосредственных соседей улучшает связность текстуры и памяти. Кроме того, смягчается необходимость повторно дискретизировать (выбирать) нелокальные пиксели, к которым обращаются в течение процесса коррекции. Принимается, что лежащий в основе процесс синтеза полагается на координаты пикселя-образца, а не цвета. Таким образом, синтезируемая текстура не содержит непосредственно цвета, но вместо этого содержит координаты, где цвет пикселей должен быть выбран в образце. Много схем синтеза текстуры имеют этот подход.
При такой настройке каждый непосредственный сосед данного пикселя имеет координату в пределах образца. Каждый сосед используется для предсказания кандидата на замену для текущего пикселя. Вместо применения анизометрического преобразования перед обращением к соседям система и способ анизометрического синтеза текстуры обращаются к непосредственным соседям, и затем применяют это преобразование к координатам образца, извлеченным из непосредственных соседей, чтобы предсказать хорошего кандидата на замену для текущего пикселя. Таким образом, обращаются только к непосредственным соседям, но преобразование применяется эквивалентно в течение процесса коррекции.
Целью является то, что для заданного пикселя p набор соседей текстуры создают вокруг p, чтобы сравнить его с другими наборами соседей этого образца, используя процесс коррекции с наилучшим совпадением. Непосредственных соседей получают, используя компонент направления. Как только синтезируемая координата извлечена в непосредственном соседе, применяется смещение, чтобы извлечь, как способ предсказывает, какой синтезируемая координата должна быть в самом пикселе.
Тот факт, что схема синтеза использует только непосредственных соседей, также допускает бесшовное (гладкое) формирование анизометрических поверхностных текстур. В частности, имея поверхность, которая описана как сеть из треугольников, и параметризацию этой поверхности по области текстуры, такая параметризация разделяет сеточную поверхность на карты (части) и отображает каждую из карт в регион области текстуры. Цель состоит в том, чтобы синтезировать текстуру в области текстуры так, чтобы результирующая текстурируемая поверхность имела указанный пользователем внешний вид. Более точно, текстура на поверхности должна совмещаться (в терминах вращения и масштаба) с обеспеченной пользователем областью якобиана по поверхности. Часть этой трудности заключается в том, что параметризация сетки разбивает поверхность на разобщенные карты, и том, что для поверхностной текстуры является желательным выглядеть гладко по границам этих карт. Чтобы сформировать эту гладкую текстуру, наборы соседей синтеза для пикселей около границ карты должны включать в себя выборки из других карт. Чтобы удовлетворить этому требованию, способ анизометрического синтеза текстуры использует указатели косвенности, которые обеспечивают способность переходить от одной границы карты атласа к другой карте атласа текстуры.
Для маленького набора пикселей вне границы каждой карты (части) указатели косвенности используются для указания на другие пиксели, которые являются внутренними к другой карте. Имеется небольшое дополнительное пространство (или промежуток) вокруг каждой карты так, чтобы, следуя этим указателям косвенности, можно было извлечь цвета. Эта способность формировать гладкие поверхностные текстуры непосредственно использует ту особенность, что анизометрическая схема коррекции обращается к наборам соседей фиксированной степени.
Система и способ анизометрического синтеза текстуры также включают в себя способ увеличения при анизометрическом синтезе. Увеличение при синтезе включает в себя использование синтезированных координат, чтобы получить версию с более высоким разрешением того же самого образца. Увеличение при синтезе может использоваться, чтобы скрыть неравномерности дискретизации, такие как искажение параметризации. Способ анизометрического синтеза текстуры модифицирует схему увеличения при синтезе для включения области якобиана. Этот якобиан используется для модификации этапа увеличения схемы увеличения при синтезе и принятия во внимание анизометрии.
Следует заметить, что возможны альтернативные варианты осуществления и что этапы и элементы, описанные здесь, могут быть изменены, добавлены или устранены в зависимости от конкретного варианта осуществления. Эти альтернативные варианты осуществления включают в себя альтернативные этапы и альтернативные элементы, которые могут использоваться, и структурные изменения, которые могут быть сделаны, без отрыва от объема изобретения.
Описание чертежей
Со ссылками на чертежи, на чертежах аналогичные ссылочные позиции представляют соответствующие части на всех чертежах:
Фиг.1 - блок-схема, иллюстрирующая примерное выполнение системы анизометрического синтеза текстуры, раскрытой в настоящем описании.
Фиг.2 - блок-схема последовательности операций, иллюстрирующая в общем работу системы анизометрического синтеза текстуры, показанной на фиг.1.
Фиг.3 иллюстрирует пример изменения индексных карт (индексная карта - есть изображение координат синтезируемой текстуры) для прогрессивно изменяющихся уровней с более мелким разрешением для специального случая способа анизометрического синтеза текстуры, показанного на Фиг.2.
Фиг.4 иллюстрирует соответствующие текстурные изображения (или синтезируемые цветные изображения) индексных карт, показанных на фиг.3.
Фиг.5 - блок-схема, иллюстрирующая пример специального случая процесса анизометрического синтеза текстуры, показанного на фиг.3 и 4.
Фиг.6 иллюстрирует пример первого результата процесса анизометрического синтеза текстуры, раскрытого в настоящем описании.
Фиг.7 иллюстрирует пример второго результата процесса анизометрического синтеза текстуры, раскрытого в настоящем описании.
Фиг.8 иллюстрирует вывод области якобиана для приложения поверхностной текстуры.
Фиг.9 иллюстрирует пример результата, использующего способ анизометрического синтеза текстуры для выполнения синтеза текстуры поверхности.
Фиг.10 - иллюстрация, показывающая множественные уровни пирамиды синтеза с множеством значений разрешения.
Фиг.11 иллюстрирует пример схемы увеличения при анизометрическом синтезе.
Фиг.12 иллюстрирует пример подходящей среды вычислительной системы, в которой система и способ анизометрического синтеза текстуры могут быть реализованы.
Подробное описание
В нижеследующем описании способа и системы анизометрического синтеза текстуры ссылка приводится на сопроводительные чертежи, которые формируют его часть и на которых показан посредством иллюстрации конкретный пример, с помощью которого могут быть реализованы способ и система анизометрического синтеза текстуры. Должно быть понятно, что могут использоваться другие варианты осуществления и структурные изменения могут быть сделаны без отрыва от объема заявленного предмета изобретения.
I. Обзор системы
Система и способ анизометрического синтеза текстуры могут использоваться, чтобы генерировать синтезируемую текстуру в двух измерениях (2D) на плоскости или на поверхности. Вообще, система и способ анизометрического синтеза текстуры создают новые текстуры с тем же самым визуальным видом, что как и заданное эталонное изображение или образец, хотя и в отличной ориентации и масштабе, как определено областью якобиана. Система и способ анизометрического синтеза текстуры, описанные здесь, обеспечивают простой, эффективный и высококачественный анизометрический синтез текстуры в 2D как на плоскости, так и на поверхностях.
Фиг.1 - блок-схема, иллюстрирующая примерное выполнение системы анизометрического синтеза текстуры, раскрытой в настоящем описании. Следует заметить, что фиг.1 является просто одним из нескольких путей, которыми система анизометрического синтеза текстуры может быть осуществлена и использована. Система анизометрического синтеза текстуры может также быть реализована на других типах систем обработки, например, на центральном обрабатывающем блоке или многоядерных обрабатывающих системах.
Со ссылками на фиг.1, система 100 анизометрического синтеза текстуры предназначена для работы на вычислительном устройстве 110 (показанном пунктиром). Следует заметить, что система 100 анизометрического синтеза текстуры может быть выполнена на многочисленных типах вычислительных систем или конфигураций общего назначения или специализированных, включая персональные компьютеры, серверные компьютеры, карманные, портативные или мобильные компьютеры или устройства связи, такие как сотовые телефоны и персональные цифровые ассистенты, мультипроцессорные системы, основанные на микропроцессорах системы, телевизионные приставки, программируемую бытовую электронику, сетевые персональные компьютеры, мини-компьютеры, универсальные компьютеры, распределенные вычислительные среды, которые включают в себя любую из вышеупомянутых систем или устройств, и т.п. Вычислительное устройство 110, показанное на фиг.1, как предполагается, представляет любую из этих и других типов сред или конфигураций вычислительных систем.
Как показано на фиг.1, вычислительное устройство 110 содержит ЦП (ЦП) 120 и память 130 ЦП. ЦП 120 находится в связи с видеоинтерфейсом 140 через шину 150 ускоренной передачи. В качестве примера, а не ограничения, эта шина 150 может быть ускоренным графическим портом (AGP) или PCI Express, которые предназначены, в частности, для удовлетворения требованиям производительности трехмерной (3D) графики.
Видеоинтерфейс 140 включает в себя графический процессор (GPU) 160 и память 170 GPU. GPU 160 предназначен, чтобы ускорить отображение трехмерной графики в реальном масштабе времени. GPU 160 способен передавать данные к ЦП 120 по шине 150. Система 100 анизометрического синтеза текстуры также соединена с GPU 160 и памятью 170 GPU. Система 100 анизометрического синтеза текстуры показана на фиг.1 пунктирными линиями. В варианте выполнения, показанном на фиг.1, система 100 включает в себя программный код 180 системы анизометрического синтеза текстуры, находящийся на GPU 160, и данные анизометрического синтеза текстуры 190, находящиеся в памяти 170 GPU.
II. Краткий обзор работы
Фиг.2 - блок-схема последовательности операций, иллюстрирующая общую работу системы 100 анизометрического синтеза текстуры, показанной на фиг.1. В общем, способ анизометрического синтеза текстуры использует непосредственно соседние пиксели и область якобиана, чтобы сформировать анизометрические синтезируемые текстуры из изображения образца. Способ анизометрического синтеза текстуры может использоваться, чтобы сформировать 2В текстуры как на плоскости, так и на поверхности.
Более конкретно, способ анизометрического синтеза текстуры инициализируется вводом изображения инициализации (этап 200). Это изображение инициализации содержит координаты синтеза. Оно является результатом синтеза уровня с предыдущим разрешением или самого грубого уровня в подходе с множеством значений разрешения, который обычно содержит только нули. Изображение инициализации находится на предыдущем уровне разрешения, или самом грубом уровне разрешения в подходе с множеством значений разрешения.
Область якобиана также вводится (этап 205). Область якобиана может использоваться, чтобы изменить ориентацию и масштаб изображения. Якобиан, который типично представлен нотацией J, является матрицей 2×2, содержащей два вектора. Эти два вектора диктуют, как векторы входной текстуры должны быть отображены в изображение. Область якобиана записывает (регистрирует) производную информацию относительно того, как первоначальная область (которой в этом случае является текстура) должна быть определена, когда она создается поверх изображения.
Итеративный процесс начинается посредством повышения дискретизации (количества выборок) пиксельных координат изображения на предыдущем уровне разрешения (этап 210). На первой итерации изображение, для которого увеличивают дискретизацию, является изображением инициализации. При последующих итерациях изображение, для которого увеличивают дискретизацию, является выходом от предыдущей итерации. Увеличение дискретизации генерирует текущий уровень разрешения, имеющий более мелкий уровень разрешения, чем предыдущий уровень разрешения. Другими словами, в пирамиде "от грубого к мелкому", используемой в подходе с множеством значений разрешения, уровни разрешения становятся прогрессивно более мелкими на последовательных итерациях.
Затем выбирают пиксель для обработки и обращаются к непосредственным соседям обрабатываемого пикселя (этап 215). Затем координаты синтезируемых пикселей, сохраненные в непосредственных соседях пикселя, преобразуют, используя область якобиана (этап 220). Преобразование означает, что ориентация и масштаб изменяются, как задано областью якобиана.
Как только преобразованные координаты непосредственных соседей были использованы для предсказания набора кандидатов для текущего пикселя, формируется новый набор соседей, и применяется стандартный процесс коррекции синтеза текстуры (этап 225). Образец вводится для этого процесса коррекции (этап 230). Этот процесс коррекции включает в себя сравнение наборов соседей кандидатов с наборами соседей, вычисленными для текущего пикселя. Следует заметить, что все эти наборы соседей находятся в неискаженном пространстве образца.
Результатом каждой итерации является синтезированное изображение, чьи пиксели содержат пиксельные координаты образца при текущем уровне разрешения (этап 240). Затем выполняется определение относительно того, является ли текущее разрешение самым мелким (и, таким образом, окончательным) уровнем разрешения (этап 245). Если текущий уровень разрешения не является самым мелким уровнем разрешения, то выполняется другая итерация. В этом случае текущий уровень разрешения становится предыдущим уровнем разрешения. Это означает, что синтезируемые пиксельные координаты на текущем уровне разрешения теперь обозначаются как синтезированные пиксельные координаты на уровне с предыдущим разрешением (этап 250). Итерация затем продолжается, как описано выше, пока самый мелкий уровень разрешения не будет достигнут (этап 255).
Если текущий уровень разрешения является самым мелким уровнем разрешения, то синтезируемые пиксельные координаты рассматриваются как полученные (этап 260). Эти синтезируемые пиксельные координаты могут быть обработаны другими приложениями, или может быть сгенерирована соответствующая анизометрическая синтезируемая текстура. Чтобы сформировать такую анизометрическую синтезируемую текстуру, сначала координаты синтезируемого пикселя преобразуют в синтезируемые цвета посредством дискретизации образца (этап 265). Наконец, результирующим выходом этого процесса преобразования является анизометрически синтезируемая текстура (этап 270).
III. Подробности работы
Подробности способа анизометрического синтеза текстуры описаны ниже. Фиг.3 иллюстрирует пример изменения индексных карт для прогрессивного изменения уровней с более мелким разрешением специального случая способа анизометрического синтеза текстуры, показанного на фиг.2. Следует заметить, что индексная карта есть изображение координат синтезируемой текстуры. В частности, фиг.3 есть специальный случай анизометрического синтеза текстуры, где якобиан повсюду равен единичной матрице 2×2. Индексная карта есть изображение, чьи значения пикселей содержат координаты, ссылающиеся назад к области изображения-образца. Эти координаты могут быть визуализированы как цвета. Например, со ссылками на фиг.3, координаты (0,0) могут быть визуализированы как черный 301, координаты (1,0) как красный 302, координаты (0,1) как зеленый 303, координаты (1,1) как желтый 304 и интерполированные цвета повсюду между ними. Индексная карта - это цветная карта расположения пикселей, которая использует цвет для указания расположения цвета пикселей в образце. Кроме того, фиг.3 иллюстрирует уровни разрешения для примерной реализации, имеющей шесть уровней разрешения. Как показано длинной стрелкой 300, все более высокие уровни разрешения указывают все более мелкое разрешение.
Как показано на фиг.3, способ анизометрического синтеза текстуры начинается, используя изображение, содержащее нули (все черное изображение) 305 на уровне разрешения 0. Выполняется итерационный процесс согласно фиг.2, и результирующая первая индексная карта 310 получается на уровне разрешения 1. Следует заметить, что каждая маленькая стрелка между индексными картами указывает один итеративный процесс, как описано на фиг.2. Например, маленькая стрелка 315 между изображением, содержащим нули 305, и первой индексной картой 310 указывает, что был выполнен один итеративный процесс способа анизометрического синтеза текстуры.
На прогрессивно уровнях более мелкого разрешения итеративный процесс повторяют, чтобы получить дополнительные уровни разрешения и индексные карты. В частности, итерацию выполняют на уровне 1, чтобы сформировать вторую индексную карту 320 на уровне 2, другая итерация выполняется на уровне 2, чтобы сформировать третью индексную карту 325 на уровне 3, и другую итерацию выполняют на уровне 3, чтобы сформировать четвертую индексную карту 330 на уровне 4. Пятая индексная карта 335 на уровне 5, и шестая индексная карта 340 на уровне 6 формируются таким же образом.
Фиг.4 иллюстрирует соответствующие текстурные изображения (или синтезированные цветные изображения) индексных карт, показанных на фиг.3. Цвета текстурного изображения получены посредством обращения к цветам образца в координатах, указанных в синтезированной индексной карте. Первое текстурное изображение 400 соответствует первой индексной карте 310. Точно так же второе текстурное изображение 405 соответствует второй индексной карте 320, третье текстурное изображение 410 соответствует третьей индексной карте 325, четвертое текстурное изображение 415 соответствует четвертой индексной карте 330, пятое текстурное изображение 420 соответствует пятой индексной карте 335, и шестое текстурное изображение 425 (или заключительная синтезируемая текстура) соответствует шестой индексной карте 340.
Фиг.5 изображает блок-схему, иллюстрирующую пример процесса анизометрического синтеза текстуры, показанного на фиг.2, 3 и 4, идущий от предыдущего уровня разрешения (Уровень l-1) к текущему уровню разрешения (Уровень l) в подходе с множеством разрешений. Фиг.5 иллюстрирует два основных процесса, используемых на каждом уровне (и в каждой итерации) при подходе с множеством разрешений. Например, со ссылками на фиг.3, фиг.5 иллюстрирует то, что происходит при продвижении от первой индексной карты 310 ко второй индексной карте 320.
Первая индексная карта 500 показана математически членом Sl-1, где Sl-1 - результат синтезированных координат на уровне l-1 разрешения (или предыдущем уровне разрешения). Образец 510 показан математически членом Е[Sl-1], где Е[Sl-1] есть образец 510 как функция первой индексной карты 500 на уровне l-1 разрешения. Результат синтеза - это индексы, и член Е[Sl-1] представляет улучшение цвета в образце, E, при заданных координатах S. Таким образом, процесс синтеза формирует индексные карты, и они соответствуют цветам, Е[S l-1]. Другими словами, S являются синтезируемыми индексными картами, и Е[Sl-1] - цветами, соответствующими этим индексам.
Как показано на фиг.5, на каждом уровне разрешения пиксельные координаты, представленные первой индексной картой 500, подвергают увеличению дискретизации, чтобы сформировать вторую индексную карту 520, представляющую пиксельные координаты с увеличенной дискретизацией. Это увеличение дискретизации изменяет уровень разрешения от уровня l-1 (предыдущий уровень разрешения) к уровню l (текущий уровень разрешения). Затем координаты с увеличенной дискретизацией корректируют, чтобы сформировать третью индексную карту 530, представляющую скорректированные пиксельные координаты на уровне l разрешения.
Текстурные изображения, соответствующие индексным картам, также показаны на фиг.5. Конкретнее, первая текстурная карта 540 соответствует второй индексной карте 520, и вторая текстурная карта 550 соответствует третьей индексной карте 530. Индексные карты представлены математически членом Sl, и каждая текстурная карта представлена как функция ее соответствующей индексной карты, а именно как Е[Sl].
Процесс коррекции анизометрического синтеза
В этом разделе описаны дополнительные подробности способа анизометрического синтеза текстуры. Как отмечено выше, область якобиана используется, чтобы обеспечить локальное вращение и масштабирование текстуры согласно области якобиана, J. Область якобиана используется для модификации как повышения дискретизации, так и процессов коррекции способа анизометрического синтеза текстуры.
Вместо определения множества версий текстуры образца при различных искажениях, как делается другими способами, способ анизометрического синтеза текстуры анизометрически искажает синтезируемый набор соседей, Ns , прежде согласования с набором соседей. Другими словами, синтезируемый набор соседей вращается и масштабируется согласно области якобиана.
Кроме того, как объяснено ниже, используются только непосредственные соседи пикселя, таким образом улучшая связность памяти и текстур. Лежащий в основе процесс синтеза полагается на координаты пикселей образца вместо цвета. Это означает, что синтезируемая текстура непосредственно не содержит цвета, но вместо этого содержит координаты, где в образце должен быть выбран цвет пикселей. Каждый непосредственный сосед заданного пикселя имеет координату в пределах образца. Каждый сосед используется для предсказания кандидата на замену текущему пикселю. Вместо применения анизометрического преобразования перед обращением к соседям система и способ анизометрического синтеза текстуры обращаются к непосредственным соседям и затем применяют это преобразование, чтобы предсказать хорошего кандидата на замену текущему пикселю. Таким образом, обращаются только к непосредственным соседям, но преобразование эквивалентным образом применяется в течение процесса коррекции.
Целью этого является то, что для заданного пикселя p создается набор соседей текстуры вокруг p, чтобы сравнить его с другими наборами соседей образца, используя процесс коррекции с наилучшим совпадением. Непосредственные соседи получают, используя компонент направления. Как только синтезируемая координата извлечена в непосредственном соседе, применяется смещение для извлечения того, какой согласно способу предсказания должна быть синтезируемая координата в самом пикселе.
При изометрическом синтезе текстуры этот набор соседей создается просто выполнением цикла по наборам соседей во всех направлениях, извлекая синтезируемые координаты этих местоположений и затем отыскивая цвета образца. Это формирует набор соседей пикселя p. Современные анизометрические подходы модифицируют доступ к соседям посредством учета обратного якобиана. Это растягивает обращения посредством вращения и масштабирования их и имеет ряд недостатков, описанных выше.
Способ анизометрического синтеза текстуры, раскрытый в настоящем описании, обращается только к непосредственным соседям пикселя p, где непосредственных соседей получают, используя компонент направления. Таким образом, согласно способу перемещаются в один из восьми непосредственных соседей p, но только ближайший в направлении, которое было выбрано. Способ не позволяет переходить к далеким нелокальным местоположениям (не локальным к пикселю p). Извлекая синтезируемую координату в непосредственном соседе, применяется смещение для извлечения того, какой синтезируемая координата, предсказанная способом, должна быть непосредственно в p. Это смещение преобразуют с помощью якобиана, чтобы принять во внимание анизометрическое исажение.
Математически способ анизометрического синтеза текстуры определяет преобразованный синтезируемый набор соседей как:
E[S[p+ (hat)]-J(p) (hat)+ ] (1),
где:
(hat)= /norm( ) (2)
и =J-1(p) .
Непосредственных соседей задают посредством смещения соседей пространства образца, которым в Уравнении (1) является . Кроме того, - смещение соседа, преобразованного обратным якобианом, в пространстве синтеза. Вместо использования нелокальных пикселей способ анизометрического синтеза текстуры смотрит на направление вектора и нормализует этот вектор к нормализованному расстоянию в единицу. Способ затем определяет, какой из восьми непосредственных соседей в наборе соседей 3×3 имеет направление, которое способ хотел бы проверить. Член S[p+ (hat)] в Уравнении (1) является этим соседом, и член (hat) является компонентом направления преобразованного якобианом местоположения соседа. Это дает местоположение - к какому из 8 соседей обращаться.
Затем к синтезируемой текстуре обращаются в непосредственном соседе, который находится в направлении того, где желательно осуществить выборку. Следующий член в Уравнении (1) - это J(p) (hat), который является якобианом в пикселе, умноженным на компонент направления преобразованного якобианом местоположения соседа. Вычитание этого члена из синтезируемой координаты текстуры, извлеченной из непосредственного соседа p, дает предсказанную синтезируемую координату непосредственно в p. Наконец, смещение соседа в пространстве образца, , добавляется в Уравнении (1), чтобы предсказать синтезируемую координату при смещении соседа в пространстве образца p.
Обращаются к синтезируемым координатам непосредственного соседа, S[p+ (hat)]. Они используются для предсказания синтезируемых координат в точке p посредством вычитания J(p) (hat). Затем, имея предсказанные синтезируемые координаты в p, используя этого непосредственного соседа, дельту смещения, , в пространстве образца прибавляют к этой синтезируемой координате, чтобы предсказать правильную соседнюю координату.
Дельта, , относится к смещениям набора соседей. В некоторых вариантах осуществления набором соседей является окрестность 5×5, в то время как в других вариантах осуществления набором соседей является окрестность 3×3 или даже 4 диагональных точки вокруг точки p. В качестве примера для набора соседей 3×3 =(-1, -1), (-1,0), (-1, 1), (0, -1), (0,0), (0,1), (1, -1), (1,0), (1, 1). В качестве другого примера набор соседей, состоящий из 4 диагональных точек, может состоять из соседей =(1, -1) (-1, 1) (-1, -1) (1,1).
Способ анизометрического синтеза текстуры предсказывает координаты в p+ . Набор соседей с 4 пикселями строится для =(1, -1) (-1,1) (-1, -1) (1,1). Ключевая идея состоит в том, что как только кандидат получен для p в пространстве образца, любая дельта смещения, , может применяться, чтобы иметь кандидата в другом местоположении в пространстве образца. Таким образом, получают четыре кандидата, одного для каждой дельты, , в пространстве образца.
Кроме того, значение некоторого количества пикселей усредняют для каждой дельты, , чтобы иметь лучшее предсказание появления пикселя в p+ . Это улучшает качество набора соседей посредством усреднения вклада количества пикселей для каждой дельты, . В некоторых вариантах осуществления количество пикселей равно трем. В других вариантах осуществления количество пикселей может быть равно более или менее чем трем пикселям.
Процесс повышения дискретизации анизометрического синтеза
Процесс повышения дискретизации способа анизометрического синтеза текстуры также модифицируется, используя область якобиана. Это поддерживает связность текстуры в течение синтеза "от грубого к мелкому" посредством модификации каждого прохода повышения дискретизации, чтобы принять во внимание анизометрию. Каждый дочерний пиксель наследует синтезируемую координату родителя, смещенную посредством якобиана, умноженного на относительное местоположение потомка. Математически, эта концепция выражена уравнением:
Sl[p]:=Sl-1[p- ]+J(p) , =(±1/2±1/2)T (3)
Уравнение (3) говорит, что результат синтеза Sl для p (или синтезируемой координаты потомка) равен синтезируемой координате родителя, где Sl-1 - родитель, плюс относительное местоположение потомка относительно родителя ( ), преобразованного якобианом. Каждая координата 2D вектора равно +1/2 или -1/2, что означает, что имеется пирамидальная структура, так что каждый родитель имеет двух потомков. Таким образом, относительное местоположение каждого потомка относительно родителя есть +1/2 или -1/2 по каждой координате.
Фиг.6 иллюстрирует пример первого результата процесса анизометрического синтеза текстуры, раскрытого в настоящем описании. В частности, анизометрическая синтезируемая текстура 600 формируется, используя процесс анизометрического синтеза текстуры и образец 610. Неоднородная (непостоянная) область якобиана была задана по анизометрической синтезируемой текстуре 600. Можно видеть, отмечая, как клетки становятся больше в центре анизометрической синтезируемой текстуры 600 и меньшими по краям.
Фиг.7 иллюстрирует пример второго результата процесса анизометрического синтеза текстуры, раскрытого в настоящем описании. Анизометрическая синтезируемая текстура 700 формируется, используя процесс анизометрического синтеза текстуры и образец 710. Снова непостоянная область якобиана была определена по анизометрической синтезируемой текстуре 700. Может быть замечено, как полосы зебры являются прямыми и почти вертикальными в образце 710, но являются искаженными и вращаются в пределах анизометрической синтезируемой текстуры 700.
Синтез текстуры поверхности
Одним важным применением для анизометрического синтеза текстуры является формирование поверхностной текстуры. Это применение описано ниже вместе с различными улучшениями и усовершенствованиями способа анизометрического синтеза текстуры, которые являются специфическими для этого применения.
Область якобиана задает, как исказить синтезируемую текстуру. Для случая поверхности желательно исказить текстуру таким образом, что, когда текстура появляется на поверхности, это выглядит корректным. Фиг.8 иллюстрирует вывод области якобиана для применения поверхностной текстуры. В общем поверхность описана посредством параметризации. Поверхность М является параметризованной по параметрической области D, что означает, что имеются координаты на поверхности, которые говорят, как она должна быть разглажена в 2D. Это есть процесс наложения текстуры, и для каждого треугольника на поверхности часть изображения извлекают из области текстуры. Для каждой точки на поверхности область якобиана параметризации может быть определена. Таким образом параметрическая область отображается на поверхность. Поскольку поверхностная геометрия может быть усложненной, поверхность обычно является параметризованной на множество карт (частей), как иллюстрируется позицией 910. Другими словами, поверхность разбивается на карты, и каждая из этих карт отображается отдельно в область текстуры.
Как можно видеть из фиг.8, другими входными данными, которые необходимы, является те, как текстура должна быть ориентирована. Это может быть указано пользователем или сделано автоматически. В случае определения пользователем пользователя просят раскрасить направление вверх относительно поверхности, используя интерфейс пользователя. Как показано на фиг.8, это сводится к определению векторов t (тангенциальный вектор) и b (вектор бинормали) в каждой точке на поверхности. Различные типы интерфейсов пользователя могут использоваться, чтобы выполнить эту задачу.
Термины b(с тильдой) 800 и t(с тильдой) 810, показанные на фиг.8, называются "предварительными изображениями" векторов t и b во время параметризации. Входными данными являются t и b (указанные, или пользователем, или автоматически), и b(с тильдой) 800, и t(с тильдой) 810 являются предварительными изображениями, которые определяют то, к чему эти векторы t и b преобразуются в параметрической области. Окончательный якобиан, который используется в течение синтеза текстуры поверхности, должен быть якобианом, который отображает b(с тильдой) 800 и t(с тильдой) 810 на ыx 820 и ыy 830, стандартные оси образца E. Таким образом, для заданной поверхности два вектора t и b определены в каждой точке, используя интерфейс пользователя или автоматически. Затем t и b используются для вычисления области якобиана в синтезируемом изображении. Это используется в качестве входных данных для способа анизометрического синтеза текстуры, описанного выше.
Математически, цель состоит в том, чтобы синтезировать текстуру анизометрически в параметрической области так, чтобы векторы t и b поверхности были локально идентифицированы стандартными осями ыx 820 и ыy 830 образца. Обращаясь снова к фиг.8, может быть замечено, что (t b)=JfJ-1J, где Jf есть якобиан 3×2 поверхностной параметризации f:D->М, и J является желательным якобианом 2×2 для синтезируемого отображения S: D->E. Поэтому J находят, используя уравнение:
J=(t b)+ Jf=((t b)T(t b)) -1 (t b)T Jf (4),
где "+" обозначает псевдоинверсную матрицу. Если (t b) является ортонормированной, то (t b)+=(t b) T. Параметризация является кусочно-линейной, так что J f является кусочно-линейной постоянной в пределах каждого треугольника. Напротив, тангенциальная система координат (t b) изменяется по каждому пикселю.
Фиг.9 иллюстрирует пример результата, используя способ анизометрического синтеза текстуры для выполнения синтеза поверхности текстуры. В частности, образец 900 используется в качестве входных данных для анизометрического синтеза текстуры, и формируется анизометрическая синтезируемая текстура 910. Используя процесс синтеза текстуры поверхности, описанный выше, и карты косвенности, описанные ниже, формируется анизометрическая поверхностная текстура 920.
Карты косвенности
Современные способы обычно синтезируют текстуру по поверхности посредством синтеза цвета в вершинах нерегулярной сетки. Наоборот, способ анизометрического синтеза текстуры синтезирует текстуру непосредственно в параметрической области текстуры параметризации атласа текстуры. Чтобы сформировать текстуру гладко по не непрерывному атласу параметризованных карт для текстуры поверхности, наборы соседей синтеза для пикселей около границ карт (частей) должны включать в себя выборки из других диаграмм. Таким образом, способ анизометрического синтеза текстуры использует указатели косвенности, которые обеспечивают возможность переходить от одной границы карты атласа к другой границе карты атласа текстуры. Кроме того, способ включает в себя дополнительный этап обеспечения того, что карты (части) являются непрерывными. Это достигается, используя карту косвенности.
Для малого набора пикселей вне границы каждой карты используются указатели косвенности, чтобы указать на другие пиксели, которые являются внутренними к другой карте. Имеется небольшое дополнительное пространство (или промежуток) вокруг каждой карты (части), так чтобы, следуя этим указателям косвенности, можно было извлечь цвета.
Указатели косвенности используют свойство, что схема анизометрической коррекции обращается к набору соседей фиксированной степени. Выборки считываются по картам, используя поуровневую карту l косвенности, посредством замены каждого обращения S[p] на S[l[p]]. Эти карты косвенности зависят только от параметризации поверхности и предварительно вычисляются посредством обхода по границам карты. Пространство резервируется для необходимого 2-пиксельного диапазона указателей косвенности вокруг каждой карты (части) в течение конструирования атласа.
Фиг.10 иллюстрирует уровни 1-6 пирамиды 1000 синтеза с множеством значений разрешения, имеющей первый уровень 1010, второй уровень 1020, третий уровень 1030, четвертый уровень 1040, пятый уровень 1050 и шестой уровень 1060. Как показано на фиг.10, так как все уровни разрешения используют одну и ту же параметризацию атласа, дополнительное промежуточное пространство резервируется на самых мелких уровнях пирамиды для указателей косвенности. В частности, как показано на фиг.10, для уровней 4-6 (1040, 1050, 1060) имеют увеличение большего промежуточного пространства вокруг их изображений, чтобы разместить указатели косвенности.
Увеличение при анизометрическом синтезе
Одна трудность в синтезировании текстуры в пределах атласа состоит в том, что некоторое искажение параметризации является обычно неизбежным и ведет к недостаточно дискретизированным областям. Один из способов скрыть эту неравномерность осуществления выборок (дискретизации) состоит в том, чтобы использовать схему увеличения при синтезе. Увеличение при синтезе заключается в использовании синтезируемых координат, чтобы обратиться к версии с более высоким разрешением того же самого образца.
Основная идея в основе по меньшей мере одной текущей схемы увеличения при синтезе состоит в том, чтобы использовать синтезируемые координаты S, чтобы обратиться к образцу с более высоким разрешением Е Н. Более конкретно, значение пикселей при непрерывной координате p получают посредством объединения 4 самых близких синтезируемых пикселей как:
где w( )=| x|*| y| являются весами билинейной интерполяции. В синтезе текстуры поверхности цель не должна обязательно состоять в увеличении до образца с более высоким разрешением ЕН , в том, чтобы восстановить подробности, отсутствующие в недостаточно увеличенных областях.
Способ анизометрического синтеза текстуры модифицирует вышеупомянутую схему увеличения при синтезе для учета анизометрии. Другими словами, якобиан включают и используют, чтобы модифицировать этап увеличения вышеупомянутой схемы увеличения при синтезе. Это достигается посредством обращения к отображению якобиана, как задано уравнением:
Увеличение при анизометрическом синтезе может быть выполнено в программе построения теней поверхности во времени визуализации, таким образом немного увеличивая стоимость.
Фиг.11 иллюстрирует пример увеличения при анизометрическом синтезе. Показанная на фиг.11 текстурируемая поверхность имеет форму лошади 1100. Используя увеличение при синтезе, которое включает в себя информацию якобиана, часть 1110 текстурируемой поверхности 1100 увеличивается. Среднее изображение 1120 является частью 1110, показанной без увеличения при синтезе. Правое изображение 1130 является частью 1110 с увеличением при синтезе.
IV. Примерная операционная среда
Система и способ анизометрического синтеза текстуры предназначены для работы в вычислительной среде. Нижеследующее описание предназначено для обеспечения краткого общего описания подходящей вычислительной среды, в которой могут быть реализованы система и способ анизометрического синтеза текстуры.
Фиг.12 иллюстрирует пример подходящей среды вычислительной системы, в которой могут быть осуществлены система и способ анизометрического синтеза текстуры. Среда 1200 вычислительной системы является только одним примером подходящей вычислительной среды и не предназначена для предложения какого-либо ограничения объема использования или функциональных возможностей изобретения. Среда 1200 вычислительной системы не должна интерпретироваться как имеющая какую-либо зависимость или требование, относящиеся к любому или комбинации компонентов, иллюстрированных в примерной среде.
Система и способ анизометрического синтеза текстуры работают с многочисленными другими общего назначения или специализированными средами или конфигурациями вычислительной системы. Примеры известных вычислительных систем, сред и/или конфигураций, которые могут быть подходящими для использования с системой и способом анизометрического синтеза текстуры, включают в себя, но не ограничиваются ими, персональные компьютеры, серверные компьютеры, карманные, портативные компьютеры или мобильные компьютеры или устройства связи, таких как сотовые телефоны и персональные цифровые ассистенты, мультипроцессорные системы, основанные на микропроцессорах системы, телевизионные приставки, программируемую бытовую электронику, сетевые персональные компьютеры, мини-компьютеры, универсальные компьютеры, распределенные вычислительные среды, которые включают в себя любые из вышеупомянутых систем или устройств, и т.п.
Система и способ анизометрического синтеза текстуры могут быть описаны в общем контексте выполнимых компьютером команд, например, программных модулей, выполняемых компьютером. В общем случае программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Система и способ анизометрического синтеза текстуры могут быть также осуществлены в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, которые связаны через систему коммуникаций. В распределенной вычислительной среде программные модули могут быть расположены как в локальных, так и удаленных компьютерных запоминающих носителях, включающих в себя запоминающие устройства. Со ссылками на фиг.12, примерная система для системы анизометрического синтеза текстуры и способа включает в себя вычислительное устройство общего назначения в форме компьютера 1210.
Компоненты компьютера 1210 могут включать в себя, но не ограничиваются ими, процессор 1220 (такой как центральный процессор, ЦП), системную память 1230 и системную шину 1221, которая подсоединяет различные элементы системы, включая системную память, к процессору 1220. Системная шина 1221 может быть любой из нескольких типов структур шины, включающих в себя шину памяти или контроллер памяти, периферийную шину, и локальную шину, используя любую из ряда шинных архитектур. В качестве примера, а не ограничения, такая архитектура включает в себя шину Архитектуры Промышленного стандарта (ISA), шину Микроканальной Архитектуры (MCA), расширенную шину ISA (EISA), локальную шину Ассоциации по стандартам в области видеоэлектроники (VESA) и шину связи периферийных компонентов (PCI), также известную как шина Mezzanine.
Компьютер 1210 обычно включает в себя множество считываемых компьютером носителей. Считываемыми компьютерами носители могут быть любые доступные носители, к которым можно обращаться компьютером 1210, и включают в себя как энергозависимые, так и энергонезависимые носители, сменные и несменные носители. В качестве примера, а не ограничения, считываемые компьютером носители могут содержать компьютерные запоминающие носители и коммуникационные носители связи. Компьютерные запоминающие носители включают в себя энергозависимые и энергонезависимые сменные и несменные носители, осуществленные любым способом или технологией для хранения информации, такой как считываемые компьютером команды, структуры данных, программные модули или другие данные.
Компьютерные запоминающие носители включают в себя, но не ограничиваются ими, ОЗУ, ПЗУ, СППЗУ, флэш-память или память по другой технологии, CD-ROM, цифровые универсальные диски (DVD) или другую память на оптических дисках, магнитные кассеты, магнитную ленту, магнитные запоминающие диски или другие магнитные запоминающие устройства или любую другую среду, которая может использоваться для хранения желательной информации и к которой можно обращаться компьютером 1210. Коммуникационные носители обычно реализуют считываемые компьютером команды, структуры данных, программные модули или другие данные в модулируемом сигнале данных, таком как несущая или другой транспортный механизм, и включают в себя любые информационные носители доставки.
Следует заметить, что термин "модулируемый сигнал данных" означает сигнал, который имеет одну или более его характеристик установленными или измененными таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, носители связи включают в себя проводные носители, например проводные сети или непосредственно проводные соединения, и беспроводные носители, такие как акустическое, РЧ, инфракрасное излучение и другие беспроводные носители. Комбинации любых вышеупомянутых должны быть также включены в считываемые компьютером носители.
Системная память 1230 включает в себя компьютерные запоминающие носители в форме энергозависимой и/или энергонезависимой памяти, например, запоминающие устройства только для считывания (ПЗУ, RAM) 1231 и память с произвольным доступом (ОЗУ, ROM) 1232. Базовая система ввода-вывода 1233 (BIOS), содержащая основные подпрограммы, которые помогают передавать информацию между элементами в пределах компьютера 1210, например, в течение запуска, обычно сохраняется в ПЗУ 1231. ОЗУ 1232 обычно содержит данные и/или программные модули, которые являются немедленно доступными для и/или в настоящее время обрабатываемыми на процессоре 1220. В качестве примера, а не ограничения, фиг.12 иллюстрирует операционную систему 1234, прикладные программы 1235, другие программные модули 1236 и программные данные 1237.
Компьютер 1210 может также включать в себя другие сменные/несменные, энергозависимые/энергонезависимые компьютерные запоминающие носители. Только в качестве примера фиг.12 иллюстрирует накопитель 1241 на жестком диске, который считывает с или записывает на несменные, энергонезависимые магнитные носители, накопитель 1251 на магнитном диске, который считывает с или записывает на сменный, энергонезависимый магнитный диск 1252, и накопитель 1255 на оптических дисках, который считывает с или записывает на сменный, энергонезависимый оптический диск 1256 типа CD-ROM или другие оптические носители.
Другие сменные/несменные, энергозависимые/энергонезависимые компьютерные запоминающие носители, которые могут использоваться в примерной среде, включают в себя, но не ограничиваются ими, кассеты с магнитной лентой, платы флэш-памяти, цифровые универсальные диски, цифровую видеоленту, твердотельное ОЗУ, твердотельное ПЗУ и т.п. Накопитель 1241 на жестком диске обычно соединяется с системной шиной 1221 через интерфейс несменных ЗУ, типа интерфейса 1240, и накопитель 1251 на магнитном диске и накопитель 1255 на оптических дисках обычно соединяется с системной шиной 1221 интерфейсом сменных ЗУ, типа интерфейса 1250.
Накопители и их связанные компьютерные запоминающие носители, описанные выше и проиллюстрированные на фиг.12, обеспечивают хранение считываемых компьютером команд, структур данных, программных модулей и других данных для компьютера 1210. На фиг.12, например, накопитель 1241 на жестком диске иллюстрируется как хранящий операционную систему 1244, прикладные программы 1245, другие программные модули 1246 и программные данные 1247. Следует заметить, что эти компоненты могут быть такими же или отличными от операционной системы 1234, прикладных программ 1235, других программных модулей 1236 и программных данных 1237. Операционной системе 1244, прикладным программам 1245, другим программным модулям 1246 и программным данным 1247 здесь даны отличные ссылочные позиции, чтобы проиллюстрировать, что, как минимум, они являются отличными копиями. Пользователь может вводить команды и информацию в компьютер 1210 через устройства ввода, например, клавиатуру 1262 и устройства 1261 управления позицией, обычно упоминаемые как мышь, шаровой указатель или сенсорная контактная площадка.
Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую антенну, сканер, радиоприемник или приемник телевизионного или вещаемого видеосигнала или подобные. Эти и другие устройства ввода часто соединяются с процессором 1220 через интерфейс 1260 устройств ввода пользователя, который подсоединен к системной шине 1221, но могут быть соединены другим интерфейсом и шинной структурой, такой, например, как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 1291 или другой тип устройства отображения также связаны с системной шиной 1221 через интерфейс, типа видеоинтерфейса 1290. В дополнение к монитору компьютеры могут также включать в себя другие периферийные устройства вывода, например, громкоговорители 1297 и принтер 1296, который может быть связан через интерфейс 1295 периферийных устройств вывода.
Компьютер 1210 может работать в сетевой среде, используя логические соединения с одним или более удаленными компьютерами, таким как удаленный компьютер 1280. Удаленным компьютером 1280 может быть персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер, одноранговое устройство или другой обычный сетевой узел и обычно включает в себя многие или все элементы, описанные выше относительно компьютера 1210, хотя только запоминающее устройство памяти 1281 было проиллюстрировано на фиг.12. Логические соединения, изображенные на фиг.12, включают в себя локальную сеть (LAN) 1271 и глобальную сеть связи (WAN) 1273, но могут также включать в себя другие сети. Такие сетевые среды являются обычными в офисах, компьютерных сетях в масштабах предприятия, интранет и Интернет.
Когда используется в сетевой среде LAN, компьютер 1210 связан с LAN 1271 через сетевой интерфейс или адаптер 1270. Когда используется в сетевой среде WAN, компьютер 1210 обычно включает в себя модем 1272 или другие средства для установления связи по WAN 1273, например, Интернет. Модем 1272, который может быть внутренним или внешним, может быть связан с системной шиной 1221 через интерфейс 1260 устройств ввода пользователя, или другой соответствующий механизм. В сетевой среде программные модули, изображенные относительно компьютера 1210 или его частей, могут быть сохранены в удаленном запоминающем устройстве памяти. В качестве примера, а не ограничения, фиг.12 иллюстрирует удаленные прикладные программы 1285 как постоянно находящиеся на ЗУ 1281. Следует заметить, что сетевые показанные соединения являются примерными и могут использоваться другие средства установления линии связи между компьютерами.
Предшествующее подробное описание было представлено с целью иллюстрации и описания. Много модификаций и изменений возможны в свете вышеупомянутого описания. Оно не предназначено быть исчерпывающим или ограничивать предмет, описанный здесь, точной раскрытой формой. Хотя предмет был описан на языке, специфическим для структурных особенностей и/или методологических действий, должно быть понятно, что предмет изобретения, определенный в прилагаемой формуле изобретения, не обязательно ограничен конкретными признаками или действиями, описанными выше. Скорее, конкретные признаки и действия, описанные выше, раскрыты как формы примера осуществления прилагаемой формулы изобретения.
Класс G06T7/40 анализ текстуры