УСТРОЙСТВО ФОРМИРОВАНИЯ ФАЙЛОВ ИЗОБРАЖЕНИЯ, УСТРОЙСТВО ОБРАБОТКИ ИЗОБРАЖЕНИЯ, СПОСОБ ФОРМИРОВАНИЯ ФАЙЛОВ ИЗОБРАЖЕНИЯ, СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЯ И СТРУКТУРА ДАННЫХ ФАЙЛОВ ИЗОБРАЖЕНИЯ
DEVICE FOR CREATING IMAGE FILES, IMAGE PROCESSING DEVICE, METHOD OF CREATING IMAGE FILES, IMAGE PROCESSING METHOD AND IMAGE FILE DATA STRUCTURE

Область техники
Настоящее изобретение относится к технологии обработки изображений для увеличения или уменьшения изображения, воспроизводимого на дисплее, или перемещению изображения вверх, вниз, вправо или влево.
Существующий уровень техники
Известны развлекательные устройства, которые позволяют воспроизводить движущиеся изображения, а также исполнять игровые программы. В этих домашних развлекательных системах GPU (графический процессор) формирует трехмерные изображения, используя для этого многоугольники (см., например, патентный документ №1).
Безотносительно к цели воспроизведения изображения, важной проблемой всегда остается вопрос повышения эффективности его воспроизведения. В частности, для быстродействующего рендеринга изображений высокой четкости необходимо использование самых различных методов, например, предложен алгоритм, который отдельно хранит и эффективно воспроизводит данные текстуры (например, см. незапатентованные документы №№1 и 2).
Патентная литература
Патентная публикация 1: Патент США 6563999
Непатентная литература
Документ 1: Sylvain Fefebvre, et al., Unified Texture Management for Arbitrary Meshes (Унифицированное управление текстурой произвольных сеток), Repport de recherche, №5210, May 2004, Institut National De Recherche En Informatique Et En Autcomatique
Документ 2: Martin Kraus, et. al., Adaptive Texture Maps (Адаптивные текстурные отображения), Graphics Hardware (2002), pp. 1-10, Eurographics Association.
Краткое изложение сущности изобретения
Проблемы, которые должно решить изобретение
Традиционно важными проблемами воспроизведения изображений высокой четкости с высокой скоростью являются снижение объема данных и быстродействующий рендеринг. Когда возникает необходимость обновления некоторой части изображения, то, по всей вероятности, необходимо реализовать сложные процессы, например процесс полного обновления уже сформированной структуры данных, даже если используются упомянутые выше подходы к разработке структуры данных (например, отображение текстуры).
Настоящее изобретение позволяет решить эту проблему, а целью изобретения является предоставление технологии обработки изображений, позволяющей снизить объем данных изображения большого размера и одновременно с этим эффективно генерирующей, воспроизводящей и модифицирующей изображение.
Средства решения проблем
Один пример осуществления настоящего изобретения относится к устройству генерации файлов изображений. Это устройство генерации файлов изображений содержит блок генерации иерархии изображений, который генерирует большое число данных изображений с различными уровнями разрешения из входных данных изображений и который генерирует иерархические данные, образованные иерархически организованными многими данными в порядке уровней разрешения; блок декомпозиции изображений, который разделяет данные изображений в каждом слое иерархических данных, образующем упомянутые иерархические данные, на мозаичные изображения заранее заданного размера; блок формирования индексов, который формирует индексные данные, устанавливающие соответствие между мозаичными областями, которые определены декомпозицией изображения в каждом слое упомянутых иерархических данных в мозаичные изображения, и данными упомянутых мозаичных изображений, которые используются при рендеринге этих мозаичных областей; и блок генерации файлов изображений, который генерирует файл изображения, содержащий данные упомянутых мозаичных изображений и упомянутые индексные данные; при этом упомянутый блок формирования индексов формирует упомянутые индексные данные в виде индексных блоков, которые организуют индексные данные соответствующих мозаичных областей каждой области, полученной декомпозицией иерархической структуры, которая образована упомянутыми иерархическими данными в виртуальном пространстве, определенном плоскостью изображения упомянутых иерархических данных и осью уровней разрешения, перпендикулярной к плоскости изображения.
Другой пример осуществления настоящего изобретения относится к устройству обработки изображений. Это устройство обработки изображений содержит запоминающее устройство, которое хранит файлы изображений, в которые входят данные мозаичных изображений, полученные декомпозицией до определенного размера каждого изображения иерархических данных, содержащих данные изображения, которые представляют одно изображение при различных уровнях разрешения, и входят индексные данные, которые устанавливают соответствие между мозаичными областями, определяемыми декомпозицией изображения в каждом слое упомянутых иерархических данных в мозаичные изображения, и данными упомянутых мозаичных изображений, которые используются при рендеринге этих мозаичных областей; блок получения входной информации, который получает от пользователя требование на изменение области воспроизведения, содержащее изменение перемещения на плоскости изображения и уровня разрешения; блок идентификации мозаичных изображений, который ссылкой на упомянутые индексные данные идентифицирует данные мозаичного изображения, необходимого для рендеринга области, которая должна быть заново выведена на дисплей в соответствии с упомянутым требованием на изменение области воспроизведения; и блок обработки выводимого на дисплей изображения, который считывает идентифицированные данные мозаичного изображения из упомянутого запоминающего устройства и воспроизводит область, которая должна быть заново выведена на дисплей; при этом упомянутые индексные данные имеют форму индексных блоков, которые организуют индексные данные соответствующих упомянутых мозаичных областей, для каждой области, полученной декомпозицией иерархической структуры, образованной упомянутыми иерархическими данными в виртуальном пространстве, определенном плоскостью изображения упомянутых иерархических данных и осью уровней разрешения, перпендикулярной к плоскости.
Другой пример осуществления настоящего изобретения относится к устройству обработки изображений. Это устройство обработки изображений содержит блок получения файлов изображений, который считывает файл изображения, содержащий данные мозаичных изображений, образованных декомпозицией до определенного размера каждого изображения в иерархических данных, образованных данными изображений, которые являются представлениями одного изображения при различных уровнях разрешения, и содержащий индексные данные, которые устанавливают соответствие между мозаичными областями, определенными декомпозицией изображения в каждом слое иерархических данных в мозаичных изображениях, и данными мозаичных изображений, используемых для рендеринга мозаичных областей; блок получения информации обновления, который получает информацию обновления изображения, выводимого на дисплей с использованием упомянутого файла изображения; блок генерации мозаичных изображений, который генерирует данные новых мозаичных изображений, используемых для рендеринга обновляемой области, базируясь на упомянутой информации обновления; блок обновления индексных данных, который обновляет данные мозаичного изображения, для которого в упомянутых индексных данных определено соответствие между мозаичной областью, входящей в обновляемую область, и данными нового мозаичного изображения; и блок генерации файлов изображений, который генерирует новый файл изображения, содержащий данные мозаичного изображения, которое сгенерировано упомянутым блоком генерации мозаичных изображений, и упомянутые индексные данные, обновленные упомянутым блоком обновления индексных данных; при этом упомянутые индексные данные имеют форму индексных блоков, которые организуют индексные данные соответствующих упомянутых мозаичных областей, для каждой области, полученной декомпозицией иерархической структуры, образованной упомянутыми иерархическими данными в виртуальном пространстве, определенном плоскостью изображения упомянутых иерархических данных и осью уровней разрешения, перпендикулярной к плоскости.
Другой пример осуществления настоящего изобретения относится к способу генерации файлов изображений. Этот способ генерации файлов изображений содержит этап генерации большого числа данных изображений с различными уровнями разрешения из входных данных изображений, и генерации иерархических данных, иерархически организованных многими данными в порядке уровней разрешения, и хранения данных в запоминающем устройстве; этап считывания из запоминающего устройства данных изображений каждого слоя, образующего упомянутые иерархические данные, и их декомпозиции на мозаичные изображения заданного размера; этап формирования индексных данных, устанавливающих соответствие между мозаичными областями, которые определены декомпозицией изображения в каждом слое упомянутых иерархических данных в мозаичные изображения, и данными упомянутых мозаичных изображений, которые используются при рендеринге этих мозаичных областей; и хранения индексных данных в запоминающем устройстве; этап генерации файла изображений, который содержит данные упомянутых мозаичных изображений и упомянутые индексные данные, и хранения сгенерированного файла изображения в запоминающем устройстве; при этом этап формирования индексов формирует упомянутые индексные данные в виде индексных блоков, которые организуют индексные данные соответствующих мозаичных областей для каждой области, полученной декомпозицией иерархической структуры, которая образована упомянутыми иерархическими данными в виртуальном пространстве, определенном плоскостью изображения упомянутых иерархических данных и осью уровней разрешения, перпендикулярной к плоскости.
Другой пример осуществления настоящего изобретения относится к способу обработки изображений. Этот способ обработки изображений содержит этап считывания из запоминающего устройства файла изображения, в который входят данные мозаичных изображений, полученных декомпозицией до определенного размера каждого изображения иерархических данных, содержащих данные изображения, которые являются представлениями одного изображения при различных уровнях разрешения, и входят индексные данные, которые устанавливают соответствие между мозаичными областями, определяемыми декомпозицией изображения в каждом слое упомянутых иерархических данных в мозаичные изображения, и данными упомянутых мозаичных изображений, которые используются при рендеринге этих мозаичных областей; этап получения от пользователя требования на изменение области воспроизведения, содержащее перемещение на плоскости изображения и изменение уровня разрешения; этап идентификации данных мозаичного изображения, необходимого для рендеринга области, которая должна быть заново выведена на дисплей, в соответствии с упомянутым требованием на изменение области воспроизведения, ссылкой к упомянутому индексному блоку; и этап считывания упомянутых данных идентифицированного мозаичного изображения из запоминающего устройства, рендеринга области, которая должна быть заново выведена на дисплей, и воспроизведения данных на дисплейном устройстве; при этом упомянутые индексные данные сформированы в виде индексных блоков, которые организуют индексные данные соответствующих мозаичных областей для каждой области, полученной декомпозицией иерархической структуры, которая образована упомянутыми иерархическими данными в виртуальном пространстве, определенном плоскостью изображения упомянутых иерархических данных и осью уровней разрешения, перпендикулярной к плоскости.
Другой пример осуществления настоящего изобретения относится к способу обработки изображений. Этот способ обработки изображений содержит этап считывания из запоминающего устройства файла изображения, в который входят данные мозаичных изображений, полученных декомпозицией до определенного размера каждого изображения иерархических данных, содержащих данные изображения, которые являются представлениями одного изображения при различных уровнях разрешения, и входят индексные данные, которые устанавливают соответствие между мозаичными областями, определяемыми декомпозицией изображения в каждом слое упомянутых иерархических данных в мозаичные изображения, и данными упомянутых мозаичных изображений, которые используются при рендеринге этих мозаичных областей; этап получения требования на обновление воспроизведенного изображения использованием упомянутого файла изображения; этап генерации данных нового мозаичного изображения, используемого при рендеринге области, подлежащей обновлению, базируясь на упомянутой информации обновления, и хранения сгенерированных данных в запоминающем устройстве; этап обновления данных мозаичного изображения, которому поставлена в соответствие мозаичная область, определенная в упомянутых индексных данных, которые подлежат включению в область данных упомянутого нового мозаичного изображения; и этап генерации нового файла изображения, который содержит упомянутые мозаичные данные, сгенерированные упомянутым блоком генерации мозаичных изображений, и индексные данные, обновленные упомянутым блоком обновления индексных данных, и записи упомянутых данных в запоминающее устройство; при этом упомянутые индексные данные сформированы в виде индексных блоков, которые организуют индексные данные соответствующих мозаичных областей для каждой области, полученной декомпозицией иерархической структуры, которая образована упомянутыми иерархическими данными в виртуальном пространстве, определенном плоскостью изображения упомянутых иерархических данных и осью уровней разрешения, перпендикулярной к плоскости.
Другой пример осуществления настоящего изобретения относится к структуре данных файла изображений. Эта структура данных файла изображения, который считывается из запоминающего устройства для вывода на дисплей по меньшей мере части изображения, отличающаяся тем, что структура данных устанавливает соответствие между данными мозаичных изображений, образованных декомпозицией с заранее заданным размером данных изображения, которые являются представлением одного изображения при различных уровнях разрешения, и индексными данными, которые устанавливают соответствие между мозаичными областями, полученными декомпозицией изображения в каждом слое иерархических данных мозаичных изображений, и данными упомянутых мозаичных изображений, используемых для рендеринга мозаичных областей, где упомянутые иерархические данные образованы иерархической организацией упомянутых данных изображений в соответствии с уровнями разрешения, и при этом упомянутые индексные данные сформированы в виде индексных блоков, которые организуют индексные данные соответствующих мозаичных областей для каждой области, полученной декомпозицией иерархической структуры, которая образована упомянутыми иерархическими данными в виртуальном пространстве, определенном плоскостью изображения упомянутых иерархических данных и осью уровней разрешения, перпендикулярной к плоскости.
Другой пример осуществления настоящего изобретения относится к устройству обработки изображений. Это устройство обработки изображений содержит блок запроса обработки изображений, который исполняет программу и выдает требование на обработку изображений, содержащее информацию для рендеринга изображения, которое должно быть заново выведено на дисплей; блок памяти иерархических данных, который хранит иерархический буфер цветов и иерархический буфер Z, которые иерархически организуют в соответствии с многими уровнями разрешения воспроизводимого изображения соответственно плоскость значений цветов пикселей, содержащую информацию цветов пикселей изображения, которое должно быть воспроизведено, и плоскость значений Z пикселей, содержащую информацию о глубине пикселей относительно точки наблюдения; и блок обработки изображений, который получает упомянутое требование на обработку изображения и исполняет обработку изображения, и обновляет тем самым иерархический буфер цветов и иерархический буфер Z; при этом упомянутый блок обработки изображений содержит также буфер рендеринга цветов и буфер рендеринга Z, которые соответственно хранят данные слоя и области, подлежащие воспроизведению, считанные из упомянутого иерархического буфера цветов и упомянутого иерархического буфера Z, и блок рендеринга, который идентифицирует слой и область, подлежащие воспроизведению, базируясь на упомянутом требовании обработки изображения, считывает данные из упомянутого буфера рендеринга цветов и упомянутого буфера рендеринга Z, проводит вычисления для обработки изображений и обновляет данные, базируясь на упомянутом требовании обработки изображения; и блок обновления иерархических данных, который осуществляет преобразование масштаба данных в упомянутом буфере рендеринга цветов и в упомянутом буфере рендеринга Z для обеспечения соответствия с упомянутыми многими уровнями разрешения, и обновления данных каждого слоя упомянутого иерархического буфера цветов и упомянутого иерархического буфера Z.
Другой пример осуществления настоящего изобретения относится к способу обработки изображений. Этот способ обработки изображений содержит этап исполнения программы и выдачи требования на обработку изображений, содержащего информацию для рендеринга изображения, которое должно быть заново выведено на дисплей; этап хранения иерархического буфера цветов и иерархического буфера Z, которые иерархически организуют в соответствии с многими уровнями разрешения воспроизводимого изображения соответственно плоскость значений цветов пикселей, содержащую информацию цветов пикселей изображения, которое должно быть воспроизведено, и плоскость значений Z пикселей, содержащую информацию о глубине пикселей относительно точки наблюдения; и этап получения упомянутого требования на обработку изображения и исполнения обработки изображения, и обновления тем самым упомянутого иерархического буфера цветов и упомянутого иерархического буфера Z; при этом этап обновления упомянутого иерархического буфера цветов и упомянутого иерархического буфера Z содержит также этап идентификации слоя и области, подлежащих воспроизведению, базируясь на упомянутом требовании обработки изображения, загрузки соответствующих данных из упомянутого иерархического буфера цветов и упомянутого иерархического буфера Z, и записи упомянутых данных в упомянутый буфер рендеринга цветов и упомянутый буфер рендеринга Z; этап проведения вычислений для обработки изображений, базируясь на упомянутом требовании на обработку изображения, и обновления упомянутого буфера рендеринга цветов и упомянутого буфера рендеринга Z; и этап преобразования масштаба данных в обновленном упомянутом иерархическом буфере цветов и обновленном упомянутом иерархическом буфере Z для обеспечения соответствия с упомянутыми многими уровнями разрешения и обновления данных каждого слоя упомянутого иерархического буфера цветов и упомянутого иерархического буфера Z.
Оптимальные комбинации описанных выше составляющих элементов и реализации настоящего изобретения в форме методов, устройств, систем, компьютерных программ, структур данных и носителей записи также могут быть осуществлены на практике как дополнительные режимы настоящего изобретения.
Преимущества настоящего изобретения
Настоящее изобретение предоставляет устройство обработки изображений, которое позволяет эффективно формировать данные изображений для воспроизведения изображений с широким диапазоном уровней разрешения.
Краткое описание фигур чертежей
Фиг.1 показывает среду, в которой используется система обработки изображений, в соответствии с первым примером осуществления;
Фиг.2 показывает внешний вид устройства ввода, которое может использоваться в системе обработки изображений на Фиг.1;
Фиг.3 показывает иерархическую структуру данных изображений, используемую в первом примере осуществления;
Фиг.4 показывает структуру устройства обработки информации, в соответствии с первым примером осуществления;
Фиг.5 схематически показывает поток данных изображений, в соответствии с первым примером осуществления;
Фиг.6 показывает процесс предвыборки данных изображений, в соответствии с первым примером осуществления;
Фиг.7 подробно показывает структуру блока управления, который имеет функцию воспроизведения иерархических данных, в соответствии с первым примером осуществления;
Фиг.8 схематически показывает структуру иерархических данных, используемую в первом примере осуществления;
Фиг.9 показывает структуру блока управления, который имеет функцию генерации файлов изображений, выводимых на дисплей, в соответствии с первым примером осуществления;
Фиг.10 показывает взаимосвязь между исходным изображением и мозаичными изображениями в случае наличия избыточности в изображении, в соответствии с первым примером осуществления;
Фиг.11 показывает другой пример взаимосвязи между исходным изображением и мозаичными изображениями в случае наличия избыточности в изображении, в соответствии с первым примером осуществления;
Фиг.12 показывает способ определения в заголовке совместного использования мозаичного изображения при наличии избыточности, в соответствии с первым примером осуществления;
Фиг.13 показывает способ определения в индексном блоке совместного использования мозаичных изображений при наличии избыточности, в соответствии с первым примером осуществления;
Фиг.14 - блок-схема, показывающая этапы обработки, на которых блок управления, показанный на Фиг.9, генерирует файл изображения;
Фиг.15 - блок-схема, показывающая этапы, на которых блок управления выводит на дисплей файл изображения, в соответствии с первым примером;
Фиг.16 показывает структуру блока управления, который имеет функцию модификации изображения, в соответствии с первым примером осуществления;
Фиг.17 показывает пример модификации изображения, в соответствии с первым примером осуществления;
Фиг.18 схематично показывает изменение указателей в индексном блоке при модификации в соответствии с Фиг.17;
Фиг.19 показывает этапы в случае добавления иерархического слоя более высокого уровня разрешения, в соответствии с первым примером осуществления;
Фиг.20 объясняет изменение заголовка и индексного блока в случае, когда не существуют индексные блоки, к которым принадлежит слой, который должен быть добавлен, в соответствии с первым примером осуществления;
Фиг.21 показывает этапы добавления новой области к существующему изображению, в соответствии с примером осуществления;
Фиг.22 объясняет изменение заголовка и индексных блоков при добавлении новой области, в соответствии с примером осуществления;
Фиг.23 объясняет алгоритм декомпозиции области, которая определена в заголовке, когда добавляется слой к вершине иерархической структуры, в соответствии с первым примером осуществления;
Фиг.24 - блок-схема, показывающая этапы, исполняемые устройством обработки изображений, когда пользователь модифицирует или улучшает изображение, в соответствии с первым примером осуществления;
Фиг.25 более подробно показывает структуру блока управления и оперативной памяти устройства обработки информации, в соответствии со вторым примером осуществления;
Фиг.26 - блок-схема, показывающая этапы рендеринга иерархических данных, в соответствии со вторым примером осуществления;
Фиг.27 показывает структуру устройства в случае, когда в оперативную память встроен преобразователь масштаба, который осуществляет масштабирование, в соответствии со вторым примером осуществления;
Фиг.28 показывает адресацию в буфере GPU, в соответствии со вторым примером осуществления;
Фиг.29 показывает адресацию в буфере GPU, в соответствии со вторым примером осуществления.
НАИЛУЧШИЙ СПОСОБ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Первый пример осуществления
Данные изображения, которые являются объектом обработки в настоящем примере осуществления изобретения, имеют иерархическую структуру, которая состоит из изображений с различными уровнями разрешения, генерируемых снижением размера исходного изображения за несколько этапов. Изображение каждого слоя разделяется на одно или несколько мозаичных изображений. Например, изображение, имеющее самый низкий уровень разрешения, образуется одним мозаичным изображением, а исходное изображение с наиболее высоким уровнем разрешения образуется наибольшим числом мозаичных изображений. Изображения выводятся на дисплей так, что эффективно воспроизводится увеличенная или уменьшенная версия изображения переключением изображения, используемого в текущий момент для рендеринга, на мозаичное изображение другого слоя, когда выведенное на дисплей изображение достигает заданного уровня разрешения.
Сначала будет дано объяснение базового режима воспроизведения изображения, которое имеет подобную иерархическую структуру. На Фиг.1 показана среда, в которой используется система обработки информации 1, в соответствии с примером осуществления настоящего изобретения. Система обработки информации 1 содержит устройство обработки информации 10, которое исполняет прикладные программы, включая программу обработки изображения, и дисплейное устройство 12, на которое выдается результат обработки, выполненной устройством обработки информации 10. Дисплейное устройство 12 может быть телевизионным приемником, который имеет дисплей для вывода изображения и громкоговоритель для вывода звука.
Дисплейное устройство 12 может быть подсоединено к устройству обработки информации 10 кабелем или подсоединено беспроводно с использованием, например, беспроводной LAN (локальной сети). Устройство обработки информации 10 в системе обработки информации 1 может быть подсоединено кабелем 14 к внешней сети, такой как Интернет, и получать и загружать контент, содержащий иерархически сжатые данные изображений. Устройство обработки информации 10 может быть подсоединено к внешней сети беспроводно.
Устройство обработки информации 10 изменяет область воспроизведения увеличением или уменьшением изображения, выводимого на дисплей дисплейного устройства 12, или перемещает изображение вверх, вниз, влево или вправо в соответствии с требованиями от пользователя. Когда пользователь манипулирует устройством ввода, глядя на изображение, которое воспроизводится на дисплее, это устройство ввода передает сигнал требования на изменение области дисплея на устройство обработки информации 10.
На Фиг.2 показан внешний вид конструкции устройства ввода 20. Устройство ввода 20 содержит крестообразный переключатель 21, аналоговые джойстики 27а, 27b и четыре управляющие кнопки 26, которые для пользователя являются средством управления. В состав четырех кнопок 26 входит кнопка с кругом 22, кнопка с крестом 23, кнопка с квадратом 24 и кнопка с треугольником 25.
При работе с устройством ввода 20 в системе обработки информации 1 пользователь назначает функцию ввода требования на увеличение/уменьшение выведенного на дисплей изображения и ввода требования на прокрутку изображения вверх, вниз, влево или вправо. Например, функция ввода требования на увеличение/уменьшение выведенного на дисплей изображения может быть назначена правому аналоговому джойстику 27b. Пользователь может вводить требование на уменьшение выведенного на дисплей изображения вытягиванием аналогового джойстика 27b на себя и может вводить требование на увеличение выведенного на дисплей изображения отталкиванием от себя. Функция ввода требования на перемещение выведенной на дисплей области может быть назначена на крестообразный переключатель 21. Нажатием на крестообразный переключатель 21 пользователь может вводить требование на перемещение в том направлении, в котором нажимается крестообразный переключатель 21. Функция ввода требования на изменение изображения может быть назначена на альтернативное средство ввода пользователя. Например, функция ввода требования на прокрутку может быть назначена на аналоговый джойстик 27а.
Для реализации функций, которые будут описаны позднее, на устройство ввода 20 назначается также функция перемещения курсора, отображаемого на изображении, или выбора файла или команды. Устройство ввода 20 может быть реализовано обычным устройством ввода, таким как позиционирующее устройство, мышь, клавиатура или сенсорная панель. Назначение упомянутых выше функций может быть надлежащим образом определено в зависимости от типа устройства ввода 20.
Устройство ввода 20 имеет функцию передачи на устройство обработки изображений 10 входного сигнала требования на перемещение выведенного на дисплей изображения. В этом примере осуществления изобретения устройство ввода 20 сконфигурировано так, что оно позволяет беспроводно обмениваться сообщениями с устройством обработки изображений 10. Устройство ввода 20 и устройство обработки изображений 10 могут устанавливать связь между собой, используя протокол Bluetooth (зарегистрированный товарный знак) или протокол IEEE802.11. Устройство ввода 20 может быть подсоединено к устройству обработки изображений 10 через кабель, с тем чтобы передавать на устройство обработки изображений 10 сигнал требования на соответствующее перемещение выведенного на дисплей изображения.
На Фиг.3 показана иерархическая структура данных изображения, используемая в этом примере осуществления изобретения. Данные изображения имеют иерархическую структуру, содержащую в направлении глубины (Z ось) нулевой иерархический слой 30, первый иерархический слой 32, второй иерархический слой 34 и третий иерархический слой 36. Хотя здесь показаны только четыре слоя, число слоев может быть неограниченным. В дальнейшем данные изображения, имеющие такую иерархическую структуру, будут именоваться как "иерархические данные". Следует однако отметить, что иерархические данные, как они здесь показаны, представляют только концептуальную модель. На практике, для представления иерархических данных используется несколько наборов данных.
Иерархические данные изображения, показанные на Фиг.3, имеют иерархическую структуру квадрадерева. Каждый иерархический слой содержит одно или более мозаичных изображений 38. Все мозаичные изображения 38 образованы так, что они имеют одинаковый размер и содержат одно и то же число пикселей. Например, изображение содержит 256х256 пикселей. Данные изображения в соответствующих иерархических слоях являются представлениями одного и того же изображения при различных уровнях разрешения. Исходное изображение в третьем иерархическом слое 36, имеющее наибольший уровень разрешения, уменьшается за несколько этапов и формирует в результате данные изображения второго иерархического слоя 34, первого иерархического слоя 32 и нулевого иерархического слоя 30. Например, разрешение в N-м слое (N - является целым, равным или большим 0) может составлять Vi разрешения (N+1)-го слоя как в горизонтальном (ось X) направлении, так и в вертикальном (ось Y) направлении.
В устройстве обработки информации 10 иерархические данные изображения сжаты в заранее заданном формате сжатия, хранятся в запоминающем устройстве, считываются из запоминающего устройства и декодируются перед тем, как они выводятся на дисплей. Устройство обработки изображений 10 в соответствии с настоящим примером осуществления изобретения имеет функцию декодирования, совместимую с различными форматами сжатия. Например, это устройство может декодировать данные, сжатые в формате S3TC, формате JPEG, формате JPEG2000.
Как показано на Фиг.3, иерархическая структура иерархических данных сконфигурирована так, что горизонтальное направление определяется вдоль оси X, вертикальное направление определяется по оси Y, а направление в глубину определяется по оси Z, образуя тем самым виртуальное трехмерное пространство. При выводе величины изменения в воспроизведенном на дисплее изображении обращением к сигналу, поступающему от устройства ввода 20 и запрашивающему изменение области воспроизведения, устройство обработки информации 10 использует заданную величину изменения для вывода координат по четырем углам кадра (координаты кадра) в виртуальном пространстве. Выведенные в виртуальном пространстве координаты кадра используются для загрузки сжатых данных в оперативную память или генерации выводимого на дисплей изображения. Вместо координат кадра в виртуальном пространстве устройство обработки информации 10 может выводить информацию, идентифицирующую иерархический слой и координаты текстуры (координаты UV) в этом иерархическом слое. В дальнейшем, комбинация информации, идентифицирующей слой, и координат текстуры будет именоваться также как координаты кадра.
На Фиг.4 показана конфигурация устройства обработки информации 10. Устройство обработки информации 10 содержит радиоинтерфейс 40, переключатель 42, процессор воспроизведения 44, дисковод жесткого диска 50, блок загрузки носителя записи 52, дисковод 54, оперативную память 60, буферную память 70 и блок управления 100. Процессор воспроизведения 44 содержит кадровую память для буферизации данных, которые должны воспроизводиться на дисплейном устройстве 12.
Переключатель 42 является переключателем Ethernet'a (Ethernet - зарегистрированная торговая марка), устройством, которое подсоединено к внешнему устройству кабелем или беспроводно так, что оно передает и принимает данные. Переключатель 42 подсоединен к внешней сети кабелем 14 так, что он получает иерархические данные, например, для контента от сервера. Переключатель 42 подсоединен к радиоинтерфейсу 40. Радиоинтерфейс 40 подсоединен к устройству ввода 20 с использованием заранее заданного протокола беспроводной передачи данных. Входной сигнал от пользователя передается через устройство ввода 20 на блок управления 100 через радиоинтерфейс 40 и переключатель 42.
Дисковод жесткого диска 50 функционирует как запоминающее устройство для хранения данных. Иерархические данные изображений, полученные через переключатель 42, хранятся на дисководе жесткого диска 50. Если устанавливается сменный носитель записи, такой как карта памяти, то блок загрузки носителя записи 52 считывает данные из этого сменного носителя записи. Если устанавливается жесткий диск ПЗУ, то дисковод 54 распознает диск ПЗУ и считывает данные. Диск ПЗУ может быть оптическим диском или магнитооптическим диском. Иерархические данные изображений могут быть записаны также и на этих носителях записи.
Блок управления 100 содержит многоядерный ЦП. В одном ЦП имеется одно универсальное процессорное ядро и несколько простых процессорных ядер. Универсальное процессорное ядро именуется здесь мощным процессором (PPU), а другие процессорные ядра именуются здесь синергетическими процессорами (SPU).
Блок управления 100 содержит контроллер памяти, подсоединенный к оперативной памяти 60 и буферной памяти 70. PPU имеет регистр и центральный процессор, как исполняющее устройство. PPU эффективно распределяет задачи на соответствующие процессоры SPU, как базовые единицы обработки прикладной задачи. Процессор PPU может и сам исполнять задачу. SPU имеет регистр, подпроцессор, как исполняющее устройство, и локальную память, являющуюся локальной областью хранения данных. Локальная память может использоваться как буферная память 70.
Оперативная память 60 и буферная память 70 являются запоминающими устройствами и организованы как запоминающие устройства с произвольной выборкой (RAM). SPU имеет специализированный контроллер прямого доступа к памяти (DMA) и обеспечивает высокоскоростную передачу данных между оперативной памятью 60 и буферной памятью 70. Высокоскоростная передача данных обеспечивается также между кадровой памятью в процессоре воспроизведения 44 и буферной памятью 70. Блок управления 100, в соответствии с настоящим примером осуществления, реализует высокоскоростную обработку изображений за счет параллельной работы нескольких SPU. Процессор воспроизведения 44 подсоединен к дисплейному устройству 12 и выдает результат обработки изображения в соответствии с требованием пользователя.
Устройство обработки информации 10, в соответствии с настоящим примером осуществления, предназначено для предварительной загрузки части сжатых данных изображения из дисковода жесткого диска 50 в оперативную память 60 для гладкого изменения выведенного на дисплей изображения, когда выведенное на дисплей изображение увеличивается/уменьшается или перемещается в область воспроизведения изображения. Кроме того, устройство обработки информации 10 предназначено для предварительного декодирования части сжатых данных изображений, загруженных в оперативную память 60, и хранения декодированных данных в буферной памяти 70. Это обеспечивает мгновенное переключение изображений, используемых для создания выводимого на дисплей изображения, когда переключение требуется позднее.
На Фиг.5 схематически показан поток данных изображений в соответствии с настоящим примером осуществления изобретения. Иерархические данные хранятся на дисководе жесткого диска 50. Вместо дисковода жесткого диска 50 данные могут храниться на носителе записи, установленном на блоке загрузки носителя записи 52 или дисководе 54. В альтернативном варианте устройство обработки информации 10 может загружать иерархические данные из сервера изображений, подсоединенного к устройству обработки информации 10 через сеть. Как было описано выше, иерархические данные сжимаются в формате с фиксированной длиной, таком как S3TC, или в формате с переменной длиной, таком как JPEG.
Часть данных изображений из этих иерархических данных загружается в оперативную память 60 с сохранением сжатого состояния (S10). Здесь область, которая должна быть загружена, определяется в соответствии с заранее заданным правилом. Например, загружается область, для которой предсказывается, что она будет наиболее часто запрашиваться, базируясь на контенте изображения или истории браузинга пользователем, или область окрестности в виртуальном пространстве выведенного в текущий момент изображения. Данные загружаются не только тогда, когда возникает требование на изменение изображения, но также, например, и через заранее заданные интервалы времени. Тем самым, можно предотвратить возможность возникновения в небольших интервалах времени тяжелого трафика процессов загрузки.
Затем из всех сжатых данных изображений, хранимых в оперативной памяти 60, декодируются и записываются в буферной памяти 70 данные изображения области, которая должна быть выведена на дисплей, или данные мозаичного изображения области, которая будет необходима в соответствии с предсказанием (S12). Буферная память 70 содержит по меньшей мере две буферные области 72 и 74. Размер буферных областей 72 и 74 выбирается таким, чтобы он был больше, чем размер памяти кадров 90; тем самым в случае, когда сигнал требования на перемещение изображения, поступающий от устройства ввода 20, запрашивает изменение в той или иной степени, данные изображения, загруженные в буферные области 72 и 74, являются достаточными для формирования выводимого на дисплей изображения.
Одна из буферных областей 72 и 74 является буфером дисплея, используемым для хранения изображения, необходимого для формирования выводимого на дисплей изображения, а другая является буфером декодирования, используемым для подготовки предсказанного изображения, которое станет необходимым в последующем. В примере, показанном на Фиг.5, буферная область 72 является буфером дисплея, буферная область 74 является буфером декодирования, а область воспроизведения 68 является областью, которая выводится на дисплей. Изображение, хранящееся в буфере декодирования в процессе предвыборки, который описан ниже, может быть изображением того же самого слоя, что и изображение, хранящееся в буфере дисплея, или изображением другого слоя и с другим масштабом.
Затем из всех изображений, хранящихся в буферной области 72, которая является буфером дисплея, изображение выводимой на дисплей области 68 воспроизводится в памяти кадров 90 (S14). В это время изображение новой области декодируется в соответствии с требованием пользователя и сохраняется в буферной области 74. Буфер дисплея и буфер декодирования переключаются в соответствии с моментом, когда заканчивается хранение, или в соответствии с величиной изменения выведенной на дисплей области 68 (S16). Тем самым обеспечивается возможность гладкого переключения между выведенными на дисплей изображениями в случае перемещения выведенной на дисплей области или изменения масштаба изображений.
На Фиг.6 объясняется процесс предвыборки. Фиг.6 показывает структуру иерархических данных, где слои этой структуры представлены соответственно как L0 (нулевой слой), L1 (первый слой), L2 (второй слой) и L3 (третий слой). В этой структуре иерархических данных, показанной на Фиг.6, положение в направлении глубины (ось Z) показывает уровень разрешения изображения. Чем ближе положение к слою L0, тем уровень разрешения будет ниже, и чем ближе положение к слою L3, тем уровень разрешения будет выше. В терминах размера изображения, выведенного на дисплей, положение в направлении глубины представляет собой масштаб изображения. Принимая, что масштаб выведенного на дисплей изображения в слое L3 есть 1, масштаб в L2 будет равным 1Л, масштаб в L1 будет равным 1/16, а масштаб в L0 будет равным 1/64.
Следовательно, когда выведенное на дисплей изображение изменяется в направлении глубины со стороны от L0 по направлению к L3, то выведенное на дисплей изображение увеличивается, а когда это изображение изменяется в направлении глубины со стороны от L3 по направлению к L0, то выведенное на дисплей изображение уменьшается. Стрелка 80 показывает, что сигнал, запрашивающий изменение в области воспроизведения на дисплее, введенный пользователем, является требованием на уменьшение выведенного на дисплей изображения, и показывает, что уменьшение производится с масштабом ХА (L2). В устройстве обработки информации 10 положения слоев L1, L2 по направлению вглубь, которые могут использоваться в качестве мозаичных изображений 38, определяются как границы предвыборки в направлении глубины, и когда сигнал, запрашивающий изменение в изображении, предписывает пересечение границы предвыборки, начинается исполнение процесса предвыборки.
Когда масштаб выведенного на дисплей изображения близок к L2, то выведенное изображение создается использованием мозаичного изображения в L2 (второй слой). Более конкретно, мозаичное изображение слоя L2 используется тогда, когда масштаб выводимого на дисплей изображения находится между границей переключения 82 и границей переключения 84, при этом граница 82 находится между мозаичным изображением в слое L1 и мозаичным изображением в слое L2, а граница 84 находится между мозаичным изображением в слое L2 и мозаичным изображением в слое L3.
Следовательно, при поступлении требования на уменьшение изображения, как это показано стрелкой 80, увеличенная версия мозаичного изображения в слое L2 преобразуется в уменьшенную версию и выводится на дисплей. Устройство обработки информации 10 идентифицирует также мозаичное изображение 38, которое, как ожидается, будет необходимо в будущем, базируясь на сигнале требования на изменение в изображении, и декодирует идентифицированное изображение. Когда в примере, показанном на Фиг.6, масштаб уменьшения изображения, который запрашивается сигналом требования на изменение выводимой на дисплей области, выходит на пределы уровня L2, устройство обработки информации 10 предварительно выбирает из дисковода жесткого диска 50 или оперативной памяти 60 мозаичное изображение 38 в слое L1, который расположен в направлении уменьшения изображения, декодирует считанное изображение и записывает это декодированное изображение в буферную память 70.
Выше был описан процесс предвыборки в направлении глубины, однако предвыборка в направлении верх, вниз, влево или вправо в одном и том же слое исполняется подобным же образом. Более конкретно, граница предвыборки задается в данных изображения, хранящихся в буферной памяти 70 таким образом, что когда положение выведенного на дисплей изображения, определенное сигналом требования на изменение изображения, выходит за границы предвыборки, то начинается исполнение процесса предвыборки.
На Фиг.7 показана подробная конфигурация блока управления 100а, имеющего функцию вывода на дисплей иерархических данных, описанных выше, в соответствии с примером осуществления. Блок управления 100а состоит из блока получения входной информации 102, который принимает информацию, вводимую пользователем через устройство ввода 20, блок идентификации мозаичных изображений ПО для идентификации мозаики, содержащей область, которая должна быть заново выведена на дисплей, блок определения загружаемого блока 106 для определения блока изображения, который должен быть заново загружен, и блок загрузки 108, который загружает необходимый блок изображения из дисковода жесткого диска 50. Блок управления 100а содержит также блок декодирования 112, который декодирует сжатые данные изображения, и блок обработки выводимого на дисплей изображения 114, который обеспечивает рендеринг выводимого на дисплей изображения.
Элементы, изображенные на Фиг.7, являющиеся функциональными блоками для выполнения различных процессов, реализованы в аппаратных средствах, таких как центральный процессор (ЦП), запоминающее устройство или другие БИС, и в программных средствах, таких как программы и пр., загруженных в это запоминающее устройство. Как было описано выше, блок управления 100 содержит один PPU и несколько SPU. Эти PPU и несколько SPU образуют функциональные блоки сами по себе или в комбинации. Поэтому специалистам в данной области техники будет очевидно, что функциональные блоки могут быть реализованы самыми различными способами - только аппаратно, только программно или в комбинации аппаратных и программных средств.
Блок получения входной информации 102 принимает команду, вводимую пользователем через устройство ввода 20, на запуск/окончание вывода изображения на дисплей, перемещение выведенной области, увеличение или уменьшение выведенного на дисплей изображения и пр. Кроме того, блок идентификации мозаичных изображений 110 идентифицирует мозаичное изображение, содержащее область, которая должна быть выведена на дисплей, в соответствии с координатами кадра текущей выведенной на дисплей области и информацией требования на изменение выведенной на дисплей области, вводимое пользователем. Если это мозаичное изображение уже загружено в оперативную память 60, то блок идентификации мозаичных изображений ПО выдает информацию, получаемую в результате идентификации, на блок декодирования 112. В противном случае блок идентификации мозаичных изображений 110 выдает информацию на блок определения загружаемых блоков 106. Дополнительно к изображению, необходимому для рендеринга выводимого в текущий момент изображения, блок идентификации мозаичных изображений ПО идентифицирует мозаичное изображение, которое в соответствии с предсказанием должно являться последующим.
Блок определения загружаемых блоков 106 идентифицирует блок изображения, который должен быть загружен заново из дисковода жесткого диска 50 в оперативную память 60 обращением к информации, получаемой от блока идентификации мозаичных изображений ПО, и выдает требование загрузки на блок загрузки 108. Когда блок загрузки 108 не выполняет процесс загрузки, блок определения загружаемых блоков 106 может выдавать требование загрузки в соответствии с заранее заданным расписанием времени выполнения операции. Например, блок определения загружаемых блоков 106 может выдавать требование загрузки через заранее заданные интервалы времени или когда пользователь выдает требование на изменение выводимой на дисплей области. Блок загрузки 108 исполняет реальный процесс загрузки в соответствии с требованием от блока определения загружаемых блоков 106.
Блок декодирования 112 считывает и декодирует данные мозаичного изображения из оперативной памяти 60, обращаясь к информации о мозаичном изображении, получаемой от блока идентификации мозаичных изображений ПО, и сохраняет декодированные данные в буфере декодирования или буфере дисплея. Блок обработки выводимого на дисплей изображения 114 обращается к координатам кадра нового выводимого на дисплей изображения, считывает соответствующие данные изображения из буфера дисплея в буферной памяти 70 и выполняет рендеринг данных в памяти кадров процессора воспроизведения 44.
Теперь будет дано описание примера осуществления, адаптированного к технологии вывода на дисплей данных изображений, имеющих описанную выше иерархическую структуру, которая позволяет более эффективно формировать и выдавать данные изображений. На Фиг.8 схематично показана структура иерархических данных, в соответствии с данным примером осуществления. Иерархические данные, в соответствии с этим примером осуществления, состоят из трех типов данных, включающих в себя заголовок 150, индексные блоки 160 и мозаичные изображения 170. Заголовок 150 и индексные блоки 160 являются совокупностью индексов для идентификации мозаичного изображения, которое должно обрабатываться, базируясь на положении в виртуальном пространстве, которое образовано иерархическими данными. В этом примере осуществления иерархическая структура в виртуальном пространстве разделена на области и организуется область за областью, используя для организации индексы, которые указывают на данные мозаичных изображений таким образом, чтобы обеспечивать эффективный доступ к мозаичным изображениям.
Заголовок 150 определяет совокупность областей, образованных декомпозицией пирамидальной иерархической структуры в виртуальном пространстве, как это показано на Фиг.3. Указатель, указывающий на один из индексных блоков 160, задан в каждой области. В заголовке 150, показанном на Фиг.8, треугольник 151 представляет форму иерархической структуры при виде сбоку, а горизонтальные пунктирные линии показывают изображения 154а, 154b, 154с, 154d, 154е,***в соответствующих слоях. Подобная иерархическая структура разделяется на области, как это показано сплошными линиями, и определяет области, такие как область 152а, область 152b, область 152с и т.д. Заголовок 150, в контексте основного правила, сконфигурирован так, что указатель, указывающий на один из индексных блоков 160, определяется для каждой области.
На Фиг.8 показано, как указатель (стрелка А), указывающий на индексный блок 160а, определяется для области 152а, указатель (стрелка В), указывающий на индексный блок 160b, определяется для области 152, указатель (стрелка С), указывающий на индексный блок 160с, определяется для области 152с. Однако, как будет упомянуто позднее, для некоторых из областей, определенных в заголовке, может быть определен нулевой указатель, не указывающий на какой-либо специфический индексный блок.
Индексные блоки 160 создаются для каждой соответствующей области в иерархической структуре, определенной заголовком 150, и определяется указатель, указывающий на расположение каждого из мозаичных изображений 170 на изображениях нескольких слоев, принадлежащих к каждой области. Как показано на Фиг.8, индексный блок, соответствующий области в заголовке 150, содержит данные по меньшей мере нескольких областей в изображениях в нескольких слоях, которые принадлежат этой области. В представленном примере индексный блок 160а, соответствующий области 152а, содержит все целиком данные изображений 154а и 154b в двух слоях, принадлежащих к области 152а. Индексный блок 160b, соответствующий области 152b, содержит все целиком данные изображений 154с, 154d и 154е в трех слоях, принадлежащих к области 152b.
Индексный блок 160с, соответствующий области 152с, содержит данные частей изображений 154f, 154g и 154h в трех слоях, которые принадлежат к области 152с. Далее, каждая мозаичная область, определяемая декомпозицией плоскости изображения в каждом слое в мозаичные изображения определенного размера, содержит указатель, указывающий на одно из мозаичных изображений 170, которые являются действительными данными изображений соответствующей мозаичной области. Однако в случае, когда осуществляется рендеринг одной мозаичной области с использованием большого объема информации, одна мозаичная область может содержать указатели, которые указывают на несколько мозаичных изображений, как это будет описано позднее. Три плоскости, показанные в каждом из индексных блоков 160а, 160b и 180с на Фиг.8, соответствуют слоям, которые принадлежат к соответствующим областям. Каждый из небольших прямоугольников на слое представляет мозаичную область.
На Фиг.8 показано, что указатель (стрелка D), который указывает на мозаичное изображение 170а, определяется для мозаичной области 164а в индексном блоке 160b, а указатель (стрелка Е), который указывает на мозаичное изображение 170b, определяется для мозаичной области 164b. Указатель, указывающий на определенное мозаичное изображение, может быть и не определен для некоторых из мозаичных областей, определенных в индексном блоке, как это будет описано позднее, и вместо этого может быть определен нулевой указатель. Мозаичные изображения 170 представляют сжатые данные мозаичных изображений. За счет такой организации иерархических данных, как это было описано выше, блок идентификации мозаичных изображений ПО из координат кадра в виртуальном пространстве кадра изображения, который должен быть выведен на дисплей, может идентифицировать мозаичное изображение 170, содержащееся в кадре этого изображения, исходя из заголовка 150 и индексных блоков 160.
На Фиг.8 показано, как индексные блоки 160а, 160b и 160с могут задавать индексные данные (то есть указатели мозаичных изображений 170), которые указывают области изображений в трех иерархических слоях, содержащих соответственно 4×4, 8×8 и 16×16 мозаичных областей. Таким образом, если обеспечить так, что число мозаичных областей, которые могут быть определены одним индексным блоком 160, является постоянным, то размер области памяти, которая должна быть зарезервирована в оперативной памяти 60, когда из дисковода жесткого диска 50 считывается один из индексных блоков 160, остается неизменным безотносительно к тому, какой из этих индексных блоков будет считываться. Следовательно, управление областью памяти становится простым.
Следовательно, области, определенные в заголовке 150, желательно генерировать так, чтобы индексные блоки 160 были бы одинакового размера. Если иерархические данные имеют иерархическую структуру квадрадерева, как это показано на Фиг.3, где 0-й слой содержит единственное мозаичное изображение, то изображения в трех слоях, принадлежащих к области 152b на Фиг.8, то есть изображение 154с во втором слое, изображение 154d в третьем слое и изображение 154е в четвертом слое, содержат 4×4, 8×8 и 16×16 мозаичных областей, соответственно.
Следовательно, в случае, когда, как было описано выше, область можно определить одним индексным блоком 160 и принимается, что область изображения состоит из мозаичных областей 4×4, 8×8 и 16×16, то все данные этого трехслойного изображения можно собрать в единственном индексном блоке 160b без какой-либо модификации. Иными словами, указатели, указывающие на мозаичные изображения, могут быть определены таким образом, что все данные областей изображения 154с во втором слое, изображения 154d в третьем слое и изображения 154е в четвертом слое в иерархических данных отображаются на все целиком данные областей 0-го слоя 162d, первого слоя 162е и второго слоя 162f индексного блока 160b, соответственно.
С другой стороны, область 152а в заголовке 150 содержит изображения 154а и 154b 0-го слоя и первого слоя, соответственно, изображение 154а 0-го слоя состоит из единственного мозаичного изображения, а изображение 154b первого слоя состоит из мозаичных изображений 2x2, поэтому число слоев и число мозаичных областей будет меньше по сравнению с числом областей, которое может быть определено одним индексным блоком 160а. В подобном случае изображение 154а 0-го слоя в иерархических данных отображается на часть 0-го слоя 162а в индексном блоке 160а (например, на мозаичную область слева вверху), и соответствующим образом определяется указатель на мозаичное изображение. Аналогичным образом, изображение 154b в первом слое отображается на часть первого слоя 162b в индексном блоке 160а (например, на мозаичные изображения 2x2 слева вверху), и соответственно определяются указатели, которые указывают на мозаичные изображения. Наконец, для других мозаичных областей в индексном блоке 160а определяются нулевые указатели.
Область 152с в заголовке 150 содержит изображения 154f, 154g и 154h в пятом слое, шестом слое и седьмом слое, соответственно. Однако эти изображения состоят из большего числа мозаичных изображений, чем число мозаичных областей, которое может быть определено одним индексным блоком 160, и поэтому, как показано на Фиг.8, плоскость изображения разделяется таким образом, что некоторые из областей каждого слоя отображаются на 0-й слой, первый слой и второй слой индексного блока 160с, соответственно. Разделением плоскости изображения обеспечивается то, что изображения многих слоев, принадлежащих к каждому индексному блоку, являются представлениями одной и той же области изображения при различных уровнях разрешения.
Декомпозиция иерархической структуры, показанная на Фиг.8, является всего лишь иллюстрирующим примером; эта декомпозиция может быть проведена надлежащим образом в зависимости от исходной иерархической структуры данных или в зависимости от желаемого размера данных индексного блока. Кроме того, как будет описано далее, способ декомпозиции иерархических данных может быть изменен в соответствии с обновлением исходного изображения.
Далее будет дано объяснение осуществления генерации файла изображения, который содержит иерархические данные со структурой данных, описанных до сих пор. Этот пример осуществления может быть также реализован структурой, подобной структуре в системе обработки информации 1, показанной на Фиг.1, и в устройстве обработки информации 10, показанном на Фиг.4. На Фиг.9 представлена конфигурация блока управления 100b, который имеет функцию генерации файлов изображений, выводимых на дисплей, в соответствии настоящим примером осуществления. Блок управления 100b может содержать также функцию воспроизведения изображения на дисплее, как и в блоке управления 100а, который показан на Фиг.7, однако эта функция на Фиг.9 не показана. С другой стороны, устройство обработки информации 10, которое содержит блок управления 100b, имеющий только ту функцию, которая показана на Фиг.9, может находиться совершено отдельно от устройства обработки информации, которое предоставляет функцию воспроизведения изображения.
Блок управления 100b содержит блок генерации иерархии изображений 120, считывающий данные изображений, которые хранятся на дисководе жесткого диска 50, и представляющий данные в иерархическом виде, блок декомпозиции изображений 122, который разделяет изображение каждого слоя на мозаичные изображения, блок обнаружения избыточности 124, который анализирует изображение каждого слоя и обнаруживает избыточность, блок генерации заголовков/индексных блоков 126, который генерирует данные заголовка и индексного блока, учитывая избыточность, и блок генерации файлов изображений 128, генерирующий файл изображения, который выдается в конечном итоге и в котором содержатся мозаичное изображение, заголовок и индексный блок.
Блок генерации иерархии изображений 120 считывает из дисковода жесткого диска 50 данные изображения, для которого должен быть создан этот файл. Считываемые данные изображения могут быть данными единственного изображения, которое имеет некоторый определенный уровень разрешения. Считываемые данные изображения, являющегося объектом обработки, могут также быть назначены пользователем через устройство ввода 20, как это показано на чертеже, или же требование на их ввод может быть получено от другого функционального блока (на чертеже не показан), который получил исходное изображение. Блок генерации иерархии изображений 120 генерирует затем данные иерархической структуры, содержащие исходное изображение, посредством генерации данных изображения, которое ступенчато уменьшается в направлении назначенного уровня разрешения данных считываемого изображения.
Блок декомпозиции изображений 122 генерирует данные мозаичных изображений декомпозицией изображения каждого слоя в изображения заранее заданного размера. Сгенерированные данные мозаичных изображений накапливаются в оперативной памяти 60. Положение каждого мозаичного изображения в исходном изображении определяется, например, назначением идентификационных чисел этим мозаичным изображениям.
Блок обнаружения избыточности 124 обнаруживает избыточность между изображениями внутри одного и того же слоя или между изображениями из различных слоев анализом изображений в соответствующих иерархических слоях. В качестве избыточности внутри одного и того же слоя можно, например, рассмотреть случай, когда одни и те же данные мозаичного изображения могут использоваться во многих мозаичных областях. Избыточность между различными слоями может возникнуть, когда изображение, образованное из увеличенного изображения в слое с низким уровнем разрешения, по виду не отличается от изображения в слое с высоким уровнем разрешения. Области, имеющие описанную выше избыточность, могут быть единообразно выведены на дисплей, используя данные определенного мозаичного изображения, и без использования данных отдельных мозаичных изображений. Тем самым, реализуется сжатие данных изображений. Конкретные алгоритмы будут описаны позднее.
Блок генерации заголовков/индексных блоков 126 создает данные заголовка и индексный блок, как это было описано выше. В изображении, где не обнаружена избыточность, для всех областей, которые определены в заголовке, определяется указатель, указывающий на одни из индексных блоков, а затем для всех мозаичных областей, которые определены в индексном блоке, определяется указатель, указывающий на мозаичное изображение. С другой стороны, для областей изображений, имеющих избыточность, совместно используются данные мозаичного изображения определением нулевого указателя в заголовке или в индексном блоке.
Блок генерации файлов изображений 128 считывает данные мозаичного изображения, определенного указателем, который установлен в индексном блоке, и генерирует окончательные данные изображения последовательным объединением данных. Блок генерации файлов изображений 128 образует окончательные выходные данные генерацией файла изображения, содержащего данные изображения, заголовок и индексный блок. Как было описано выше, за счет обнаружения избыточности между изображениями и использования данных одного мозаичного изображения для рендеринга многих областей можно эффективно снизить объем данных изображений. В настоящий пример осуществления входят данные одного и того же изображения, которые имеют различный уровень разрешения, потому становится возможным сжатие данных с высоким коэффициентом за счет использования данных одного и того же мозаичного изображения даже для изображений различных слоев иерархии.
На Фиг.10 объясняется взаимосвязь исходного изображения и мозаичных изображений для случая, когда в изображении имеется избыточность. На Фиг.10 изображение 180а и изображение 180b являются изображениями в двух иерархических слоях, представляющих одну и ту же область. Иными словами, изображение 180а получено уменьшением изображения 180b. Сетки, показанные на изображениях 180а и 180b, определяют границы декомпозиции изображения на мозаичные изображения. На Фиг.10 мозаичным областям в изображениях 180а и 180b и мозаичным изображениям 170 соответственно назначены, с целью объяснения, идентификационные числа.
Следует учитывать, что эллипс и треугольник нанесены на изображениях 180а и 180b, а оставшиеся области закрашены одним цветом для представления фона. Данные мозаичных изображений 170, выделенных из областей в этих изображениях, хранятся в оперативной памяти 60 независимо от исходного расположения изображений. Мозаичная область "4" в изображении 180а, которая является областью, закрашенной одним цветом, отображается на выделенное из нее мозаичное изображение "4". В этом случае в индексном блоке 160 определяется указатель, указывающий на мозаичное изображение "4" для мозаичной области "4".
Поскольку изображение 180b является версией изображения 180а с более высоким уровнем разрешения, то, базируясь на коэффициенте усиления, легко может быть выведено соответствие между мозаичными областями этих двух изображений. В показанном примере мозаичная область "4" в изображении 180а отображается на мозаичные области "15", "16", "19" и "20" в изображении 180b. Поэтому если мозаичная область "4" изображения 180а закрашена одним цветом, то известно, что все мозаичные области "15", "16", "19" и "20" в изображении 180b будут также закрашены одним цветом. Иными словами, для вывода на дисплей этих областей потребуется только мозаичное изображение "4".
Аналогичным образом, сканированием изображения 180а для идентификации областей, которые будут закрашены одним цветом, когда изображение 180а увеличивается до уровня разрешения изображения 180b, будет установлено, что нижняя половина мозаичной области "3", то есть мозаичные области "17" и "18" в изображении 180b, будет закрашена одним цветом. Поэтому эти области могут быть также выведены на дисплей, используя для этого мозаичное изображение "4". Совместным использованием мозаичного изображения подобным образом могут быть сжаты данные мозаичных изображений. Кроме того, данные заголовка или индексный блок также могут быть сжаты за счет того, что не будет создаваться специальный указатель в области изображения более высокого уровня разрешения, которое может быть выведено на дисплей с использованием мозаичного изображения более низкого уровня разрешения.
В соответствии с этим примером осуществления изобретения, обработке подвергаются представления одного и того же изображения при различных уровнях разрешения, поэтому последовательным повторением описанного выше процесса обнаружения избыточности могут быть при минимальной вычислительной нагрузке идентифицированы области, которые имеют избыточность в изображении большого размера и с высоким уровнем разрешения. В описанном выше примере осуществления обнаруживаются области, закрашенные одинаковым цветом, так что данные мозаичного изображения совместно используются областями, которые, как одновременно установлено, закрашены одинаковым цветом. Аналогичный процесс может также быть полезен в областях, практически закрашенных единственным цветом, в случайных структурах или в структурах, содержащих только повторения. Обнаружение этих областей проводится с использованием цветовой гистограммы областей или частотным анализом, проводимым для изображения низкого разрешения.
На Фиг.11 показано, как исходное изображение и мозаичные изображения связаны между собой при наличии избыточности, соответствующей другому примеру.
Изображения 180а и 180b подобны примерам, показанным на Фиг.10. На представленном чертеже мозаичная область "2" в изображении 180а отображается на мозаичные области "7", "8", "11" и "12" в изображении 180b. Поскольку изображение 180b имеет более высокий уровень разрешения, чем изображение 180а, то четыре мозаичных изображения, которые были выделены из этих областей, в общем случае содержат больше информации, чем простая увеличенная версия мозаичного изображения "2", которое выделено из области "2".
Однако может быть возможен случай, что изображения из областей "7", "8", "11" и "12" в изображении 180b по внешнему виду не отличаются от увеличенной версии мозаичного изображения "2", когда, например, исходное изображение является фотографией или эти четыре области находятся не в фокусе. В таком случае, как в случае областей, закрашенных, как это было описано ранее, одним цветом, увеличенная версия мозаичного изображения "2" может использоваться для вывода на дисплей областей "7", "8", "11" и "12" вместо мозаичных изображений, выделенных из этих областей, так что получаемое в результате изображение по своему внешнему виду не будет отличаться от исходного изображения. Подобная избыточность может быть обнаружена только в случае, когда различие между увеличенной версией изображения с низким уровнем разрешения и изображением с высоким уровнем разрешения равно или ниже пороговой величины, или в случае, когда частотный анализ изображения с высоким уровнем разрешения устанавливает только, что частотный диапазон является таким же низким или ниже пороговой величины.
На Фиг.12 представлен чертеж, объясняющий способ, который определяет, используя заголовок, совместное использование мозаичного изображения при наличии описанной выше подобной избыточности. При этом из всех областей в иерархической структуре, определенной заголовком 150а, не определяются указатели, указывающие на определенные индексные блоки, для тех областей, которые могут быть выведены на дисплей с использованием изображений в слое, входящем в другую область. Вместо этого для таких областей определяются нулевые указатели. В примере, показанном на Фиг.12, заголовок 150а организован таким образом, что указатели, указывающие на определенные индексные блоки, то есть действующие указатели, определены для затемненных областей, а нулевые указатели определены для неокрашенных областей.
Положим, что на дисплей выводится область изображения 156 в иерархических данных, имеющих заголовок 150а. На чертеже показано, что для области, которая содержит область изображения 156, определяется нулевой указатель. В этом случае проводится поиск виртуального пространства иерархических данных в направлении, в котором уменьшается изображение, с тем чтобы идентифицировать область, которая содержит уменьшенную версию области изображения 156 и для которой определен действующий указатель (стрелка F). Поскольку, как показано на чертеже, действующий указатель определен в области 152d, то определяются данные индексного блока 160d, назначенного этим указателем (стрелка G).
Далее, во втором слое с самым большим уровнем разрешения из иерархических слоев, в которых индексный блок 160d содержит данные, идентифицируется та мозаичная область, которая содержит область изображения 156, а затем получается указатель, соответствующий идентифицированной мозаичной области. То положение, где находится область изображения 156 на плоскости изображения второго иерархического слоя области 152d, может быть легко вычислено обращением к коэффициенту масштабирования слоев в иерархических данных. Описанная выше идентификация мозаичной области проводится на базе такого вычисления.
Далее, получаются данные мозаичного изображения 170с, назначенного полученным указателем (стрелка Н). Выведение на дисплей области изображения 156 генерируется с использованием полученных данных. Если здесь принять, что область изображения 156 имеет размер мозаичного изображения, то для рендеринга области изображения 156 увеличивается, как это показано на чертеже, одна из частей области 172 мозаичного изображения 170с, являющегося уменьшенным изображением. Как было описано выше, положение области 172, соответствующее области изображения 156, может быть легко вычислено обращением к коэффициенту масштабирования области 172 относительно области изображения 156.
Таким образом, за счет того, что в заголовке 150а предоставляется возможность определения нулевого указателя, отпадает необходимость использования индексных блоков для всех областей, которые определены заголовком 150а, что в результате повышает эффективность сжатия данных. Далее, совсем не требуется, чтобы область, где определен нулевой указатель, непременно имела бы высокий уровень разрешения. Как показано на Фиг.12, нулевой указатель может быть определен для области 152е, которая находится между областью с низким уровнем разрешения и областью с высоким уровнем разрешения, и образует область, не имеющую действующего указателя. В этом случае, когда на дисплей выводится изображение, входящее в область 152е, увеличивается и воспроизводится изображение в слое, принадлежащем к области 152f с более низким разрешением, уровень разрешения воспроизведенного изображения увеличивается, входя в область 152s, и обращением к индексному блоку, определенного указателем, который определен для этой области, получается мозаичное изображение.
Тем самым, можно воспроизвести изображение, которое отличается от выведенного до этого изображения, если выводимое на дисплей изображение будет превышать определенный уровень разрешения. Если повышается уровень разрешения, то к выведенному на дисплей изображению могут быть добавлены различные декоративные элементы, например на газетной странице появится возможность чтения иероглифов знаками каны или на фотографии могут появиться различные фоновые объекты. В принципе, нулевой указатель может быть подобным образом определен в заголовке для произвольной области, однако в области 152g, которая содержит вершину иерархической структуры, то есть в области, где находится изображение с самым малым уровнем разрешения, необходимо определяется действующий указатель. Тем самым обеспечивается то, что поиск по иерархической структуре приходит в конечном итоге в область 152g и выведенное на дисплей изображение может быть соответственно сгенерировано безотносительно к тому, где в других областях определяются нулевые указатели.
На Фиг.13 представлено изображение, объясняющие алгоритм, который определяет посредством индексного блока совместное использование мозаичных изображений при наличии описанной выше избыточности. Здесь среди областей изображений, принадлежащих к индексному блоку 160е, указатели, которые указывают на определенные мозаичные изображения, не определяются для тех областей, которые могут быть выведены на дисплей с использованием изображения в другом слое, входящем в этот индексный блок 160е. Вместо этого для таких областей определяются нулевые указатели. На Фиг.13 указатели, указывающие на определенные мозаичные изображения, то есть действующие указатели, определяются для затемненных мозаичных областей в индексном блоке 160е, и определяются нулевые указатели для неокрашенных областей.
На этом чертеже показывается, что в случае, когда воспроизводится область изображения 158, сначала в заголовке 150b идентифицируется область 152h, которая содержит эту область изображения 158, а затем получается индексный блок 160е, назначенный указателем, который определен для области 152h (стрелка I). Если в областях, для которых индексный блок 160е содержит данные, определяется нулевой указатель для области, найденной в изображениях второго слоя 162g и соответствующей области изображения 158, то в направлении, в котором уменьшается изображение, отыскиваются слои, принадлежащие к тому же самому индексному блоку 160е, с тем чтобы идентифицировать тот слой, для которого определен действующий указатель уменьшенной версии области изображения 158.
На приведенном примере при поиске сначала достигается изображение первого иерархического слоя 162h (стрелка J), однако нулевой указатель определяется также для области, соответствующей области изображения 158. Поэтому поиск продолжается до тех пор, пока не будут получены изображения в 0-м слое 162i, имеющие наименьший уровень разрешения (стрелка К). В изображениях 0-го слоя 1621 определяется действующий указатель в области, соответствующей области изображения 158, и поэтому получаются данные мозаичного изображения 170d, которое назначено этим указателем (стрелка L). Используя полученные данные, может быть сгенерировано выводимое на дисплей изображение области изображения 158. Если здесь принять, что область изображения 158 имеет размер мозаичного изображения, то для воспроизведения области изображения 158, как показано на этом чертеже, увеличивается частичная область 174 мозаичного изображения 170d, которая является уменьшенным изображением. Аналогично, как было описано выше, положение области 174, соответствующей области изображения 158, может быть легко вычислено через коэффициент масштабирования области 174 относительно области изображения 158.
Таким образом, за счет того, что в индексном блоке 160е становится возможным определение нулевого указателя, нет необходимости определять указатели, которые указывают на мозаичные изображения всех мозаичных областей, определенных индексным блоком 160е, следовательно, наряду со сжатием данных мозаичных изображений может быть также уменьшен объем данных индексного блока. Далее, даже при обновлении мозаичного изображения взаимосвязь между изображениями внутри данного индексного блока остается, в основном, неизменной в терминах того, как изображения создаются одно из другого увеличением или уменьшением, поэтому нет необходимости обновлять указатели, которые указывают на все мозаичные изображения, и тем самым минимизируется число этапов, необходимых для обновления изображений.
Как и в заголовке, в изображениях 0-го слоя 162i, имеющих самый низкий уровень разрешения, для всех мозаичных областей этих изображений также определяются в индексном блоке действующие указатели. Тем самым, гарантируется то, что даже если нулевой указатель будет определен в другой произвольной области, поиск по слоям в направлении уменьшения приводит в конечном итоге к изображениям с низким уровнем разрешения в 0-м слое 162i, что позволит соответственно сгенерировать выводимое на дисплей изображение. Как исключение, из всех областей, определенных заголовком, область на верхнем уровне иерархической структуры, то есть область, содержащая слой с самым низким уровнем разрешения, может, по своему существу, содержать относительно небольшое число мозаичных изображений, как это было описано выше. В этом случае все слои в соответствующем индексном блоке могут содержать области, для которых определен нулевой указатель.
Далее, как и в случае с заголовком, для данной области изображения в индексном блоке может быть определен действующий указатель второго слоя с высоким уровнем разрешения I62g и 0-го слоя с низким уровнем разрешения 162i, а для первого слоя с промежуточным уровнем разрешения 162h может быть определен только нулевой указатель. Для вывода на дисплей левой нижней области в первом слое с промежуточным уровнем разрешения 162h, показанном на Фиг.13, используется увеличенная версия мозаичного изображения, назначенного указателем, который определен для эквивалентной области в 0-м слое с самым низким уровнем разрешения 1621. Если разрешение выводимого на дисплей изображения увеличивается до тех пор, пока не возникнет необходимость использования второго слоя 162g, то для генерации выводимого на дисплей изображения используется мозаичное изображение, назначенное указателем, который определен для эквивалентной области во втором слое 162g. При таком подходе, как и в случае с заголовком, можно реализовать такой режим, что для воспроизведения предоставляется другое изображение, когда увеличивается заданная область.
Таким образом, использование индексного блока может определять совместное использование мозаичного изображения более детализированным образом (то есть единицами мозаичных изображений), чем при использовании заголовка для определения совместного использования индексного блока. На Фиг.12 и Фиг.13 показан пример того, как определяется нулевой указатель в заголовке или в индексном блоке. В альтернативном варианте нулевые указатели могут быть определены как в заголовке, так и в индексном блоке. В этом случае совместное использование индексного блока и мозаичного изображения может быть проведено одинаковыми этапами обработки. В описанном выше примере нулевой указатель определяется в заголовке или в индексном блоке для реализации примера осуществления, в котором мозаичное изображение совместно используется различными слоями. Для совместного использования мозаичного изображения в одном и том же слое для многих областей в иерархической структуре, которая содержит этот слой, могут быть определены указатели, указывающие на один и тот же индексный блок. С другой стороны, для многих мозаичных областей в индексном блоке могут быть определены указатели, указывающие на одно и то же мозаичное изображение.
Далее будет дано объяснение работы блока управления 100b, имеющего функцию генерации файлов изображений. На Фиг.14 представлена блок-схема, показывающая этапы обработки, когда блок управления 100b, показанный на Фиг.9, генерирует файл изображения. Сначала, когда от пользователя или от другого обрабатывающего модуля поступает входной сигнал назначения данных изображения, то блок генерации иерархии изображений 120 считывает назначенные данные изображения из дисковода жесткого диска 50 (S50). Затем блок генерации иерархии изображений 120 генерирует иерархические данные, содержащие данные изображения с различными уровнями разрешения, уменьшением считанных данных изображения, как это обычно делается, и генерацией данных изображений, имеющих заранее заданный уровень разрешения (S52). После этого блок декомпозиции изображений 122 разделяет изображение каждого иерархического слоя на мозаичные изображения и записывает эти мозаичные изображения в оперативной памяти 60 (S54). В этом процессе устанавливается и запоминается соответствие между положением каждого мозаичного изображения в изображении и адресом, указывающим область памяти в оперативной памяти 60, и это записанное соответствие используется при генерации индексных блоков.
Далее, на этапе S50 может быть считан файл, куда заранее было записано мозаичное изображение. В этом случае генерация иерархических данных на этапе S52 и декомпозиция изображения на этапе S54 могут быть опущены. Введением значения, указывающего смещение адреса каждого мозаичного изображения от начального адреса и положения изображения в файле, и записью этого на этапе S54 могут быть получены начальный адрес в оперативной памяти 60 файла при считывании на этапе S50, а также взаимосвязь между адресом каждого мозаичного изображения и положением в изображении.
Далее, блок обнаружения избыточности 124 устанавливает наличие или отсутствие избыточности между изображениями, как это было описано ранее (S58). Боле конкретно, блок обнаружения избыточности 124 просматривает изображения N-го слоя и идентифицирует наличие каких-либо областей с размером, сопоставимым с размером мозаичного изображения в N+1-м слое, содержащего только один цвет. Этот этап повторяется в направлении более высоких уровней иерархии. Кроме того, блок обнаружения избыточности 124 просматривает изображения для идентификации области в изображении N+1-го слоя, содержащей, в основном, тот же самый объем информации, что и в изображении N-го слоя, просмотром разностного изображения, которое создается между изображением, полученным увеличением изображения N-го слоя до размера N+1-го слоя, и изображением N+1-го слоя, или частотным анализом изображения N+1-го слоя. При этом для таких операций может использоваться любой способ, обычно применяемый в обработке изображений.
Блок генерации заголовков/индексных блоков 126 создает заголовок и индексный блок, учитывая при этом избыточность (S60). Более конкретно, в случае, когда каждую области, определенную заголовком, можно увеличить и воспроизвести изображение, которое принадлежит к области со стороны низкого уровня разрешения, задается нулевой указатель для этой области, а для всех остальных областей в заголовке генерируются соответствующие индексные блоки и определяются указатели, указывающие на эти сгенерированные индексные блоки. Далее, среди изображений во многих слоях, принадлежащих к каждому индексному блоку, определяется нулевой указатель для областей этих изображений, которые могут быть воспроизведены увеличением изображения с низким уровнем разрешения. Для всех других областей определяется указатель, который указывает на мозаичные изображения, выделенные из этих областей.
Затем блок генерации файлов изображений 128 создает файл изображения, которое должно быть выдано в конечном итоге (S62). Если блок обнаружения избыточности 124 не обнаруживает избыточности, то блок генерации файлов изображений 128 считывает из оперативной памяти 60 все данные мозаичных изображений, образованных декомпозицией на этапе S54. Блок генерации файлов изображений 128 создает файл изображения, который содержит также заголовок и индексный блок, сгенерированные на этапе S60. Если блок обнаружения избыточности 124 обнаруживает избыточность, то блок генерации файлов изображений 128 считывает только данные мозаичных изображений, которые назначены указателями, образованными в индексном блоке, сгенерированном на этапе S60. Блок генерации файлов изображений 128 создает файл изображения, который содержит также заголовок и индексный блок, сгенерированные на этапе S60.
Далее будет дано объяснение процесса вывода на дисплей изображения, используя сгенерированный подобным образом файл изображения. На Фиг.15 представлена блок-схема, показывающая этапы вывода на дисплей изображения, используя файл изображения, в соответствии с этим примером осуществления. Представленные здесь этапы реализованы блоком управления 100а, который показан на Фиг.7. Прежде всего на блок-схеме показан процесс считывания необходимых данных из файла изображения в ответ на требование на изменение области воспроизведения изображения и соответственно декодирование и вывод на дисплей изображения. Базовый поток операций, содержащих загрузку из жесткого диска, предвыборку необходимых данных и запись в буферную память, аналогичен процессу, показанному на Фиг.5.
Сначала, когда пользователь вводит требование на изменение выведенного на дисплей изображения через устройство ввода 20, в то время как часть изображения воспроизведена на дисплейном устройстве 12, блок получения входной информации 102 подтверждает это требование (S70). Блок идентификации мозаичных изображений ПО выводит величину запрашиваемого изменения в выведенном на дисплей изображении и определяет координаты кадра, который должен быть заново воспроизведен на дисплее (S72). Величина изменения в выведенном на дисплей изображении представляет собой величину перемещения в вертикальном или в горизонтальном направлении в виртуальном пространстве, а также величину перемещения в направлении глубины. Координаты кадра, который должен быть выведен на дисплей, определяются координатами кадра области дисплея, на котором уже воспроизведено изображение, и величиной выведенного изменения.
Блок идентификации мозаичных изображений 110 обращается к заголовку и идентифицирует область, к которой принадлежат координаты кадра. Блок идентификации мозаичных изображений 110 проверяет, определен ли для идентифицированной области действующий указатель, указывающий на индексный блок (S74). Если действующий указатель определен (Y в S74), то блок идентификации мозаичных изображений 110 получает индексный блок, назначенный указателем (S78). Если определен нулевой указатель (N в S74), то блок идентификации мозаичных изображений 110 ведет поиск в иерархической структуре в направлении, в котором изображение уменьшается, той области, для которой определен действующий указатель. Блок идентификации мозаичных изображений ПО получает индексный блок, который указан указателем, определенным для обнаруживаемой области (S76, S78).
Блок идентификации мозаичных изображений 110 отыскивает индексный блок для проверки того, определен ли для области, соответствующей координатам этого кадра, действующий указатель, который указывает на мозаичное изображение (S80). Если действующий указатель определен (Y в S80), то блок идентификации мозаичных изображений 110 идентифицирует информацию, единственным образом определяющую мозаичное изображение, которое указано указателем, например адрес и идентификационный номер мозаичного изображения (S84). Если определен нулевой указатель (N в S80), то блок идентификации мозаичных изображений 110 ведет поиск иерархического слоя в этом индексном блоке в направлении, в котором изображение уменьшается. Блок идентификации мозаичных изображений 110 отыскивает слой, в котором определен действующий указатель, и идентифицирует мозаичное изображение, которое указано указателем, определенным для области в идентифицированном таким образом иерархическом слое (S82, S84).
Если в буферной памяти 70 не хранятся данные, образованные декодированием мозаичного изображения (N в S86), то блок декодирования 112 считывает данные мозаичного изображения из оперативной памяти 60 и соответственно декодирует эти данные (S88, S90).
В случае, когда на этапе S76 отыскивается область, для которой в заголовке определен действующий указатель, или в случае, когда на этапе S82 в индексном блоке отыскивается иерархический слой, в котором определен действующий указатель, то необходимо увеличение и воспроизведение идентифицированного мозаичного изображения. Поэтому, когда на данном этапе идентифицировано мозаичное изображение, блок идентификации мозаичных изображений 110 предоставляет блоку декодирования 112 информацию, указывающую на этот факт. Блок декодирования 112, базируясь на этой информации, определяет, является ли необходимым увеличение этого мозаичного изображения (S92).
Если необходимо увеличить изображение (Y в S92), то блок декодирования 112 увеличивает мозаичное изображение обращением к координатам кадра, получаемым от блока идентификации мозаичных изображений ПО, и сохраняет необходимые области в буферной памяти 70 (S94). Описанный выше процесс проводится подобным же образом для уже декодированного мозаичного изображения (Y в S86). Далее, безотносительно к тому, увеличено ли изображение, блок обработки выводимого на дисплей изображения 114 воспроизводит в памяти кадров область в мозаичном изображении, которая должна быть заново выведена на дисплей (S96). Процесс рендеринга содержит процесс увеличения или уменьшения данных, хранимых в буферной памяти 70, что зависит от требуемого разрешения.
Затем будет дано описание структуры данных указателя в заголовке и в индексном блоке. Например, положим, что иерархические данные, содержащие 11 слоев, организованы в индексных блоках, каждый из которых содержит три слоя, имеющих соответственно 4x4, 8х8 и 16х16 мозаичных областей, как показано на Фиг.8, при этом полное число областей, определенных заголовком, будет составлять 4162. В одном индексном блоке определены максимум 336 мозаичных областей. Поскольку указатель определяется для каждого из этих элементов, то желательно, чтобы структура данных допускала бы эффективный поиск указателя. В качестве структуры данных указателя может использоваться массив фиксированной длины, ассоциативная матрица или древовидная структура.
В случае, когда указатель заголовка представляет собой массив фиксированной длины, то каждой области назначается идентификационное число. Это идентификационное число используется в качестве индекса для обращения к массиву указателей фиксированной длины. В этом случае идентификация области немедленно приводит к получению указателя, так что могут быть быстро проведены поиск или редактирование. Если используется ассоциативный массив, то идентификационное число назначается каждой области. Это идентификационное число используется как ключ доступа к ассоциативному массиву указателей. В этом случае необходимо хранить только действующие указатели, с тем чтобы размер данных заголовка был уменьшен.
В случае, когда используется структура дерева, то определяется также указатель, соединяющий области между собой, и проводится поиск указателей между областями, начиная с вершины иерархической структуры изображений, для идентификации желаемой области. В этом случае, когда слой добавляется к вершине, как это будет описано позднее, необходимо обновлять только те указатели, которые находятся в окрестности вершины. Таким образом, различные структуры данных указателей предоставляют различные преимущества, а надлежащая структура выбирается в зависимости от таких факторов, как стоимость памяти или стоимость обработки. Далее, при поиске данных (например, в структуре В-дерева) могут использоваться известные алгоритмы поиска. Поскольку указатели в индексном блоке сконфигурированы одинаковым образом, то можно выбрать оптимальный алгоритм, учитывая, например, скорость обработки.
Указатель, указывающий на индексный блок, или указатель, указывающий на мозаичное изображение, может содержать также имя файла, где хранится целевой индексный блок или мозаичное изображение, или, например, информация о положении сервера, подсоединенного к сети. Тем самым, в данные одного набора иерархических данных могут входить изображения от многих файлов или сайтов, и возможно совместное использование одного файла многими наборами иерархических данных.
Далее будет дано описание модификации или коррекции файла изображения, построенного, как это было описано выше, из заголовка, индексного блока и мозаичного изображения. Это также может быть реализовано системой обработки информации 1, показанной на Фиг.1, и устройством обработки информации 10, показанным на Фиг.4, или подобной конфигурацией. На Фиг.16 показана структура блока управления 100с, который имеет функцию модификации изображения, в соответствии с этим примером осуществления. Блок управления 100с может иметь также функцию воспроизведения изображений, как у блока управления 100а, показанного на Фиг.7, или функцию генерации файлов изображений, как у блока управления 100b, показанного на Фиг.9, однако на Фиг.16 иллюстрация этих функций опущена. С другой стороны, устройство обработки информации 10, содержащее блок управления 100с, который имеет только показанную на Фиг.16 функцию, можно установить отдельно от устройства обработки изображений, имеющего функции воспроизведения изображений и генерации файлов изображений.
Блок управления 100с содержит блок получения файлов изображений 318, который получает файл изображения после его модификации, блок получения информации обновления 320, который получает информацию обновления, состоящую из области, которая обновляется посредством модификации, и данных обновленной части изображения, блок генерации мозаичных изображений 322, который генерирует обновленное мозаичное изображение, блок обновления заголовков/индексных блоков 324, который обновляет заголовок и индексный блок, блок управления выводом на дисплей изображения 326, который выводит на дисплей изображение, подвергшееся модификации, и блок генерации файлов изображений 328, который генерирует файл модифицированного изображения.
Блок получения файлов изображений 318 получает задаваемые пользователем входные данные, указывающие на изображение, являющееся объектом модификации, считывает соответствующий файл изображения из дисковода жесткого диска 50 и сохраняет считанный файл в оперативной памяти 60. Этот файл изображения содержит, как это было описано ранее, данные заголовка, индексный блок и мозаичное изображение. Блок получения информации обновления 320 получает информацию обновления, которую пользователь вводит через устройство ввода 20, глядя при этом на изображение, являющееся объектом модификации, выведенное на дисплейное устройство 12. Как было описано выше, информация обновления содержит область, которая должна быть обновлена, и данные изображения после обновления для этой области. Конкретный пример будет описан позднее.
Блок генерации мозаичных изображений 322 идентифицирует мозаичное изображение, которое необходимо обновить, когда в область, которая должна быть обновлена, вводится изображение после обработки, и генерирует новое мозаичное изображение. Если область, которая должна быть обновлена, содержит только часть данного мозаичного изображения, то из оперативной памяти 60 считывается мозаичное изображение и генерируется новое мозаичное изображение замещением только той области, которая должна быть обновлена. Если в области, которая должна быть обновлена, содержится все целиком заданное мозаичное изображение, то генерируется новое мозаичное изображение выделением изображения, полученного после обновления. В этом процессе новые мозаичные изображения генерируются для областей, которые должны быть обновлены, во всех слоях, образующих иерархические данные. В другом варианте, может быть обновлен только определенный слой, что зависит от требования пользователя. В этом случае может быть реализован режим, в котором на дисплей выводятся изображения, которые различаются между собой определенным диапазоном уровней разрешения.
Сгенерированные таким образом мозаичные изображения сохраняются в оперативной памяти 60. При этом исходные данные изображений, которые хранятся блоком получения файлов изображений 318 в оперативной памяти 60, находятся в первоначальном виде, а вновь сгенерированное мозаичное изображение хранится в другой области памяти. После этого блок обновления заголовков/индексных блоков 324 переписывает указатель, который определен в индексном блоке, хранимом в оперативной памяти 60, применительно к области, которая должна быть обновлена, с тем чтобы указывать на новое сгенерированное мозаичное изображение. Если индексный блок, соответствующий этой области, не найден, то генерируется новый индексный блок, и нулевой указатель в заголовке заменяется указателем, который указывает на сгенерированный индексный блок.
Блок управления выводом на дисплей изображения 326 может содержать функциональные блоки, входящие в блок управления 100а, который показан на Фиг.7, однако на Фиг.16 это опущено. Блок управления выводом на дисплей изображения 326 воспроизводит изображение, которое подверглось модификации на этапах подобных тем, что были описаны применительно к Фиг.15. Заголовок и индексный блок обновляются, как это было описано выше, в соответствии с модификацией изображения, инициированной пользователем. В соответствии с этим, обновляются мозаичные изображения, используемые для рендеринга изображения. Это предоставляет пользователю возможность модифицировать или корректировать изображение, глядя на изображение, которое выведено на дисплей.
В данном примере осуществления вновь сгенерированное мозаичное изображение добавляется в отдельную область памяти без обновления данных исходного мозаичного изображения. Это изображение обновляется изменением назначения ссылки индексным блоком или заголовком. По сравнению со случаем поиска исходных мозаичных изображений для идентификации данных мозаичного изображения, подвергаемого модификации, и переписывания данных описанный выше способ требует меньшего объема вычислений и позволяет выводить на дисплей изображение, модифицированное с более высоким быстродействием. Кроме того, можно легко вернуться к исходному изображению в процессе модификации.
Блок генерации файлов изображений 328 замещает исходные данные мозаичного изображения на данные вновь сгенерированного мозаичного изображения каждый раз, когда, например, пользователь завершает модифицирование. Или же данные вновь сгенерированного мозаичного изображения сохраняются в файле отдельно от данных исходного мозаичного изображения. Обновленный индексный блок и обновленный заголовок объединяются для формирования файла изображения.
Далее будет дано объяснение конкретного примера обработки данных, когда изображение модифицируется или корректируется в соответствии с описанной выше схемой. На Фиг.17 показан иллюстрирующий пример модифицирования изображения. Из Фиг.17 видно, что на изображении 190 перед его модификацией нарисован эллипс и треугольник. Рассмотрим случай, когда изображение модифицируется таким образом, что в верхнем правом углу этого изображения 192 добавляется знак звездочки 194. На Фиг.18 схематично показано, как изменяются указатели в индексном блоке при такой модификации. На Фиг.18 указатели обозначаются стрелками, однако для устранения излишнего усложнения рисунка показаны только репрезентативные стрелки.
Перед модификацией сначала в областях, определенных в заголовке 150, определяются указатели, которые указывают на соответствующие индексные блоки 160, или нулевые указатели. Для каждой мозаичной области в каждом из многих иерархических слоев, принадлежащих к индексному блоку 160, назначенному указателем, определяются указатели, которые указывают на соответствующие мозаичные изображения 170е, сгенерированные перед модификацией. Если область в верхнем правом углу подвергаемого модификации изображения 190, которое показано на Фиг.17, содержит фон одного цвета, то для этой области может совместно использоваться единственное мозаичное изображение. Это изображается большим числом стрелок из пунктирных линий, которые указывают на одно мозаичное изображение 170f на Фиг.18. Само собой, указатели указывают на отдельные мозаичные изображения, определяются и для других областей.
Если, как показано модифицированным изображением 192 на Фиг.17, к фоновой части изображения добавляется знак звездочки 194, то создаются новые мозаичные изображения 170g для соответствующих областей в соответствующих иерархических слоях, на которых показаны знаки звездочки при соответствующих уровнях разрешения. Мозаичные изображения 170g хранятся в области памяти, отличной от области памяти, где хранятся начальные мозаичные изображения 170е. Указатели в индексном блоке 160 мозаичных областей, входящих в область, которая должна быть обновлена, обновляются и указывают на соответствующие изображения в новых мозаичных изображениях 170g. На Фиг.18 показаны указатели после обновления, использующие стрелки из штрихпунктирных линий. После модификации область, подвергнутая модификации, не является более фоном, так что для соответствующих мозаичных областей определяются указатели, которые указывают на соответствующие мозаичные изображения. Далее, что касается областей, которые не являлись объектом модификации, то они могут по прежнему указываться как и исходные мозаичные изображения 170е.
Далее будет дано описание этапов добавления слоя более высокого уровня разрешения в случае, когда изображение, модифицированное добавлением фигуры звездочки 194 на Фиг.17, имеет к тому же более высокое разрешение, чем изображение, которое имеет наивысший уровень разрешения в исходных иерархических данных. На Фиг.19 представлено объяснение этапов обработки в случае добавления слоев более высокого разрешения. На Фиг.19 принимается, что изображение перед модификацией состоит из иерархических данных 200, которые содержат 0-й слой 154i, первый слой 154j, второй слой 154k и третий слой 154l. Принимается также, что для всех областей в заголовке определены действующие указатели, указывающие на индексные блоки. Эти области с действующими указателями показываются на чертеже затемнением.
Если изображение модифицировано добавлением изображения с высоким уровнем разрешения к верхнему правому углу, как показано на Фиг.17, то для соответствующих слоев заново генерируются, как было описано выше, мозаичные изображения для областей, подвергаемых обновлению. В этом случае должен быть добавлен новый слой, поскольку добавленное изображение имеет более высокое разрешение, чем разрешение третьего слоя 154l, имеющего самый высокий уровень разрешения в исходных иерархических данных. На этом чертеже добавленный слой обозначен как четвертый слой 154m. Области, для которых заново должны быть сгенерированы мозаичные изображения, показаны на чертеже черным цветом.
В этом примере модификация изображения, проводимая с использованием изображения высокого разрешения, является локальной модификацией. Поэтому для вывода на дисплей областей, отличных от тех областей, которые обновляются при уровне разрешения четвертого слоя 154m, увеличиваются и используются для вывода на дисплей изображения в третьем слое 154l, который имеет самый высокий уровень разрешения в исходных иерархических данных. С этой целью определяются нулевые указатели для областей, отличных от тех областей, которые подвергаются обновлению, с тем чтобы использовать мозаичные изображения в третьем слое 154l. Области, для которых задаются нулевые указатели, показаны на чертеже пустыми квадратами.
Как было описано выше, совместное использование мозаичного изображения может быть определено использованием заголовка или использованием индексного блока. В случае, когда число слоев, организованных одним индексным блоком, принимается фиксированным, существующий индексный блок может иметь уже заданный слой, соответствующий четвертому слою 154m, который должен быть добавлен. Поскольку в исходных иерархических данных не существует четвертый слой 154m, то в индексном блоке для слоя 154m определяются нулевые указатели.
В подобном случае нулевые указатели, заданные в существующем индексном блоке для обновляемых областей четвертого слоя 154m, обновляются в указатели, которые указывают на вновь генерируемые мозаичные изображения. Нулевые указатели для областей, отличных от областей, подвергаемых обновлению, должны оставаться неизмененными. Аналогичным образом обновляются также указатели в индексном блоке в слоях с низким уровнем разрешения.
На Фиг.20 представлен чертеж, который объясняет, как заголовок и индексный блок изменяются, когда отсутствуют индексные блоки, к которым слой, соответствующий четвертому слою 154m, принадлежит перед добавлением. Область 152i в заголовке 150 представляет область, определенную для иерархических данных перед модификацией. Заголовок 150 может, конечно, определять несколько областей, однако на представленном иллюстрирующем примере несколько областей обозначаются единственной областью 152i. 0-й слой 154i, первый слой 154j, второй слой 154k и третий слой 154l, существующие перед модификацией, принадлежат к области 152i. Для отдельных областей определяются указатели, которые указывают на индексные блоки 160f. Для соответствующих мозаичных областей, которые заданы в индексных блоках 160f (стрелки из пунктирных линий), определяются указатели, которые указывают на существующие мозаичные изображения 170h.
Здесь в случае, когда добавляется четвертый слой 154m, прежде всего в заголовок 150 добавляется новая область, которая содержит этот слой. Как показано на Фиг.20, действующий указатель определяется только для области 152j, которая содержит обновляемую область, а для всех других областей определяются нулевые указатели. Кроме того, генерируется новый индексный блок 160g, и для области 152j задается указатель, который указывает на этот индексный блок 160g. Если четвертый слой 154m является единственным добавляемым слоем, то указатели, указывающие на мозаичные изображения, необходимо будет определить только для одного из трех слоев, принадлежащих к вновь сгенерированному индексному блоку 160g, который имеет самый низкий уровень разрешения. Для всех областей в оставшихся слоях определяются нулевые указатели.
Далее, в заново сгенерированном индексном блоке 160g для мозаичных областей, которые содержатся в подлежащей обновлению области, задаются указатели так, что они указывают на каждое вновь сгенерированное мозаичное изображение 170i (штрихпунктирная стрелка). Существующий индексный блок 160f обновляется подобным же образом так, что указатели, которые определены для мозаичных областей, содержащихся в подлежащей обновлению области, указывают на каждое вновь сгенерированное мозаичное изображение 170i. Когда файл изображения будет полностью сгенерирован, вновь сгенерированный индексный блок 160g может быть присоединен к концу исходного файла изображения или же может быть представлен в виде отдельного файла. Тем самым, становится возможным воспроизведение изображения до или после обновления.
Далее будет описана процедура увеличения размера изображения добавлением к уже существующему изображению новой области, такой как фоновая или тонированная область. На Фиг.21 представлены этапы процесса добавления новой области к существующему изображению. На этом чертеже принимается, что изображение перед добавлением представляет собой иерархические данные 204, которые состоят из 0-го слоя 154i, первого слоя 154j, второго слоя 154k и третьего слоя 154l. В заголовке области, к которой принадлежат эти слои, определяется действующий указатель, указывающий на индексный блок.
В случае, когда добавляется новая область к этому изображению, то генерируются иерархические данные 206, в которых добавляется новая область к изображениям каждого слоя с размерами, соответствующими каждому уровню разрешения. На примере, показанном на Фиг.21, иерархические данные 206 состоят из 0-го слоя 154n, первого слоя 154о, второго слоя 154р, третьего слоя 154q и четвертого слоя 154r. Четвертый слой 154r и третий слой 154q могут быть сгенерированы добавлением мозаичных изображений дополнительных областей, указанных затенением, к мозаичным изображениям исходного изображения, указанного пустыми квадратами. Второй слой 154р создается, в зависимости от размера этого слоя, добавлением мозаичных изображений, указанных затенением, где дополнительные области и исходные изображения совместно присутствуют в областях, указанных пустыми квадратами, где исходные мозаичные изображения могут быть использованы без модификации. В первом слое 154о и в 0-м слое 154n исходные изображения и добавленные области совместно присутствуют во всех мозаичных изображениях, которые образуют эти слои, и поэтому все эти слои указываются сетчатым затенением.
Как было описано ранее, когда к изображению добавляются новые области, то исходные мозаичные изображения могут, в зависимости от слоя, использоваться без модификации. Это свойство может предоставлять то преимущество, что существующие индексные блоки тоже используются без модификации, и новые индексные блоки создаются только для тех областей, которым такие блоки являются необходимыми (например, добавленные области). На Фиг.22 показано, как изменяются заголовок и индексные блоки, когда добавляется новая область. Пустой треугольник в заголовке 150 на этом чертеже показывает область 208, где могут использоваться исходные мозаичные изображения. Сетчатое затенение показывает область 210, измененную добавлением или модификацией.
Пунктирные линии на Фиг.21 показывают 0-й слой 154n, первый слой 154o, второй слой 154р, третий слой 154q и четвертый слой 154r. В соответствующих слоях определены области, где могут быть использованы исходные мозаичные изображения, области, которые должны быть добавлены, и области, которые должны быть обновлены добавлением, что в результате приводит к структуре, показанной на Фиг.22. Области, определяемые заголовком, создаются в направлении сверху вниз по этой иерархической структуре, поэтому как только заголовок 150 изменится, как это было описано ранее, изменение возникнет также и в выделенных частях областей.
Однако, как будет описано позднее, выбрав надлежащую декомпозицию областей, можно области, определенные до изменения, повторно использовать большое число раз так, что существующие индексные блоки могут быть использованы без модификации, даже если возникнет изменение, при котором увеличивается число слоев на верхнем уровне иерархических данных, как это показано на Фиг.22. Перед тем как добавляется новая область, для отдельных областей в области 208 (не показаны) определяются указатели, которые указывают на индексные блоки 160h на Фиг.22. Далее, для каждой мозаичной области, определенной в индексных блоках 160h, определяются указатели, которые указывают на существующие мозаичные изображения 170h (пунктирные стрелки).
После того как область будет добавлена, генерируются новые индексные блоки 160i, соответствующие добавленной области. Для отдельных областей в новой области 210 в заголовке 150 определяются указатели, которые указывают на индексные блоки 160i. Заголовок 150 может определять несколько отдельных областей (не показаны) в области 210. Для соответствующих мозаичных областей в индексных блоках 160i, сгенерированных таким образом (штрихпунктирные стрелки), определяются указатели (штрихпунктирные стрелки), которые указывают на соответствующие новые мозаичные изображения 170k, получаемые в результате добавления области. Эти новые мозаичные изображения 170k являются мозаичными изображениями добавленной области или мозаичными изображениями, в которых одновременно присутствуют добавленная область и исходное изображение, указываемые сетчатым затенением на Фиг.21. Если добавленная область представляет фон одного цвета, то может совместно использоваться одно мозаичное изображение.
С другой стороны, в случае, когда декомпозиция областей остается неизмененной, то области, изначально определенные в заголовке, могут использовать уже определенные указатели и, в конечном счете, индексные блоки, определенные этими указателями. Поэтому отсутствует необходимость обновления указателей, определенных в индексных блоках и указывающих на мозаичные изображения. В иллюстративном примере, приведенном выше, добавленная область расположена справа и внизу существующего изображения. При этом в каком бы направлении изображение ни расширялось, изменения в заголовке и в индексных блоках минимизируются декомпозицией изображения на области так, что существующие индексные блоки могут продолжать использоваться после расширения.
На Фиг.23 представлен чертеж, который объясняет алгоритм декомпозиции области, определяемой в заголовке, при добавлении слоя к верхнему уровню иерархической структуры, например, когда увеличивается размер изображения, как это было показано на Фиг.21 и Фиг.22. Исходные иерархические данные 230 разделяются на области так, что все составляющие в слоях от 0-го до первого определяются как первая область 152k, все составляющие в слоях от второго до четвертого определяются как вторая область 152l, области, образованные разделением, от пятого слоя до седьмого определяются, в соответствии с положением изображения, как третья область 152m, четвертая область 152n и т.д. Структура этих областей является той же самой, что и структура, показанная на Фиг.8.
Как было описано выше, гарантируется условие, что число мозаичных областей, которые могут быть определены в одном индексном блоке, является одинаковым безотносительно к индексному блоку, однако первая область 152k содержит только 0-й слой, содержащий единственное мозаичное изображение, и первый слой, содержащий мозаичные изображения 2×2, поэтому индексный блок 160j, соответствующий области 152k, использует соответствующее число мозаичных областей. Для других мозаичных областей определяются нулевые (недействующие) указатели.
В индексных блоках, показанных на Фиг.23, число действующих мозаичных областей в горизонтальном направлении представлено прямоугольниками в каждом слое. Следовательно, для индексного блока 160j, соответствующего первой области 152k, показаны один прямоугольник и два прямоугольника. Все мозаичные области 2×2, 4×4, 8×8 и 16×16 в таких индексных блоках, как 160k, 160l и прочие, соответствующие другим областям (например, второй области 152l, третьей области 152m и прочим), могут быть сделаны действующими, и поэтому показано 4, 8 и 16 прямоугольников.
Здесь иерархические данные 232 являются результатом добавления одного слоя на верхнем уровне иерархических данных 230. Слои, принадлежащие к первой области перед добавлением, должны оставаться неизмененными, а добавленный слой дополнительно включается в первую область 152о. Индексный блок 160j, соответствующий начальной первой области 152k, использует только два слоя из трех слоев, которые подготовлены в качестве области данных, поэтому можно осуществить добавление слоя только предоставлением первой области 152о, используя для этого слой, который стал недействующим. Следовательно, слои от второго до четвертого, содержащиеся во второй области 152l в исходных иерархических данных 230 (от третьего слоя до четвертого слоя после того, как слои добавлены), могут оставаться принадлежащими к той же самой области. Однако изображения в соответствующих слоях расширяются так, что определяются новые области, где изображения расширены, и соответственно генерируется индексный блок. То же самое справедливо для слоев, находящихся ниже.
Здесь иерархические данные 234 образуются в результате добавления одного слоя на верхнем уровне иерархических данных 232. Слои, принадлежащие к первой области перед добавлением, должны оставаться неизмененными, а добавленный слой, кроме того, включается в первую область 152р. Это дает в результате четыре слоя, входящих только в первую область 152р. Поскольку число мозаичных изображений, которые являются доступными в соответствии с этим индексным блоком 160m, больше, чем число мозаичных изображений в первой области 152р, то индексный блок 160m может предоставлять информацию по мозаичным изображениям четырех слоев. Это означает, что находящиеся ниже слои могут принадлежать к тем же самым областям, к которым они принадлежат в начальных иерархических данных 230.
Иерархические данные 236 образуются в результате добавления одного слоя к иерархическим данным 234. Пять слоев, которые образуются в результате добавления дополнительного слоя к четырем слоям, принадлежащих к первой области 152р в иерархических данных 234, разделяются на две области и образуют первую область 152q и вторую область 152r. При этом за счет того, что первая область 152q содержит 0-й слой и первый слой, а вторая область 152r содержит слои от второго до четвертого, индексный блок 160n, который соответствует первой области 152q, содержит только одно мозаичное изображение и слой, содержащий 2×2 мозаичных изображений, подобно индексному блоку 160j, который соответствует первой области 152k в исходных иерархических данных 230. Вторая область 152r аналогична второй области 152l иерархических данных 230.
Далее, нижележащие слои могут принадлежать к тем же самым областям, к которым они принадлежат в исходных иерархических данных 230. Повторением описанных выше изменений области могут быть определены так, что они, насколько это возможно, не будут влиять на другие области, когда добавляется слой на верхнем уровне иерархических данных, и тем самым, насколько это возможно, использовать существующие индексные блоки без модификации.
В случае, когда изображение расширяется добавлением областей, как это показано на Фиг.21, обработкой мозаичных изображений, базирующейся на последовательности растровой обработки, как это обычно используется в обработке изображений, мозаичные изображения добавляемых областей вводятся между существующими мозаичными изображениями, и поэтому становится необходима реконфигурация мозаичных изображений и перераспределение идентификационных номеров. При этом чем больше будет число мозаичных изображений, тем выше будет требуемая вычислительная нагрузка. В соответствии с данным примером осуществления, как было описано выше, становится возможным расширение изображения при добавлении областей только воздействием локального изменения в данных, поэтому можно снизить затраты на обработку и реализовать высокое быстродействие вывода на дисплей обновляемых данных и генерации конечного файла изображения.
Далее будут объяснены операции, которые могут быть реализованы описанной выше конфигурацией. На Фиг.24 представлена блок-схема, которая показывает этапы, исполняемые устройством обработки изображений, когда пользователь модифицирует или корректирует изображение. Первоначально, когда пользователь назначает файл изображения, которое должно быть модифицировано, блок получения файлов изображений 318 считывает соответствующий файл изображения из дисковода жесткого диска 50 и этот файл сохраняется в оперативной памяти 60 (S110). В результате блок управления выводом на дисплей изображения 326 воспроизводит изображение, определенное файлом изображения, на дисплейном устройстве 12 (S112).
Когда в такой ситуации пользователь вводит информацию обновления, глядя при этом на изображение, воспроизведенное на дисплейном устройстве 12 (Y в S114), блок получения информации обновления 320 получает эту информацию, а блок генерации мозаичных изображений 322 генерирует новое мозаичное изображение для обновленной части и сохраняет сгенерированное мозаичное изображение в оперативной памяти 60 (S116). Пользователь может вводить информацию обновления, например, перетаскиванием изображения, которое он хочет переместить, в окрестность выведенного на дисплейное устройство 12 изображения, используя некоторое указывающее устройство. Или же пользователь может непосредственно нарисовать знак или картинку на изображении, используя указывающее устройство, или ввести команду добавления новой области.
Далее, блок обновления заголовков/индексных блоков 324 надлежащим образом обновляет заголовок и индексный блок в соответствии с тем, как это необходимо для обновления изображения (S118). При этом блок управления выводом на дисплей изображения 326 обновляет воспроизведение изображения на дисплейном устройстве 12 считыванием данных мозаичного изображения, к которому сделана новая ссылка, и декодированием считанных данных (S120). Этапы от S114 до S120 повторяются до тех пор, пока модификация не будет завершена, и будет отсутствовать информация о дальнейшем обновлении.
Когда поступает информация о завершении модификации, например, от пользователя (N в S114), блок генерации файлов изображений 328 перестраивает данные изображения введением вновь созданного мозаичного изображения, хранимого в оперативной памяти 60, в данные изображения в исходном файле изображения (S122). Или же в отдельном файле хранится только вновь созданное мозаичное изображение. Перестроенные таким образом данные изображения вместе с заголовком и индексным блоком, обновленными на этапе S118, выдаются как файл изображения (S124).
Во время процесса модификации заголовок, индексный блок и мозаичное изображение хранятся в области памяти, отличной от области памяти хранения существующих данных. Далее, в случае, когда пользователь инициирует операцию, которая отменяет немедленное обновление изображения (Undo), изображение может быть легко возвращено в исходное состояние восстановлением назначения ссылок к данным. Аналогично, повторное исполнение операции (Redo) может быть проведено только изменением назначения ссылок.
В соответствии с описанным выше примером осуществления, иерархические данные содержат три набора данных, включая сюда заголовок, индексный блок и мозаичное изображение. Тем самым, помимо того, что можно обеспечить независимость мозаичного изображения от его положения в изображении, становится простым, например, и управление во время модификации изображения. Кроме того, можно совместно использовать одно мозаичное изображение во многих областях, учитывая избыточность изображения, и поэтому может быть эффективно уменьшен размер данных мозаичных изображений.
Когда одно мозаичное изображение совместно используется многими областями, то в заголовке или индексном блоке определяется нулевой указатель. В области, где определен нулевой указатель, проводится поиск слоев меньшего уровня разрешения для идентификации области, где определен действующий указатель. Это снижает объем данных, используемых в качестве индексов, по сравнению со случаем, когда указатели, которые указывают на каждое из мозаичных изображений, определяются во всех областях.
Кроме того, заголовок используется для декомпозиции иерархической структуры на области, и устанавливается однозначное соответствие между областями и индексными блоками. В этом процессе обеспечивается то, что одна область содержит несколько иерархических слоев. Это позволяет организовать данные в виде блоков, которые могут быть в заданный момент выведены на дисплей или в заданный момент модифицированы. Неэффективность использования области памяти или в обработке данных (например, загрузка в оперативную память не требующихся данных) может быть предотвращена более легко, чем в других случаях. За счет того, что в индексном блоке может быть определено фиксированное число мозаичных изображений, предотвращается возникновение фрагментации, при которой данные помещаются в буферную память, и управление областью памяти упрощается. Даже если изображения становятся чрезвычайно большими и объем данных резко возрастает, может быть обеспечено эффективное обращение к данным, которые должны быть выведены на дисплей или модифицированы, декомпозицией иерархических данных на области.
Например, для случая иерархических данных, содержащих 80000 мозаичных изображений, генерируется 200 индексных блоков, если число мозаичных областей, определенных в индексном блоке составляет 400. Здесь при необходимости выборки одного мозаичного изображения, если иерархические данные содержат просто список из 80000 мозаичных изображений, потребуется последовательный поиск. Декомпозицией иерархических данных на области, как в настоящем примере осуществления, поиск одной области будет эквивалентен поиску 400 мозаичных изображений, так что возможен эффективный доступ.
Подобным же образом, в случае, когда осуществляется вывод изображения на обычное устройство воспроизведения изображений, необходимое число индексных блоков для однократного вывода изображения составляет в среднем 1-2, и редко когда необходимо более четырех индексных блоков. Поэтому декомпозиция на области позволяет снизить объем требуемых в текущий момент индексных данных и экономить оперативную память более эффективно, чем в случае, когда индексы, которые указывают на мозаичные изображения, используются без декомпозиции на области. В результате это повышает вероятность того, что большое число наборов иерархических данных может быть одновременно обработано без создания перегрузки оперативной памяти.
Указатели, которые определены в заголовке или в индексном блоке, могут определять файлы, в которых хранятся индексные блоки или мозаичные изображения. Это позволяет даже единственному набору иерархических данных использовать данные, считанные из нескольких файлов индексных блоков, или несколько файлов мозаичных изображений, обеспечивая тем самым более гибкую генерацию или обновление иерархических данных. При этом нет необходимости хранить различные файлы на одном и том же носителе записи, поэтому могут быть сгенерированы большие объемы данных изображений, превышающие, например, 4 Гб. Это позволяет обрабатывать несжатые изображения, изображения с большим динамическим диапазоном (HDR), атрибутивную информацию и прочее.
В то же время, несколькими наборами иерархических данных может разделяться используемый файл данных. Например, размеры отдельных наборов иерархических данных могут быть уменьшены совместным использованием данных изображений, которые могут быть повторно использованы как шаблон (например, заголовок или колонтитул журнала) вместо манипулирования данными в отдельных наборах данных. Совместно использоваться могут не только мозаичные изображения, но также и данные индексных блоков.
Если использовать все эти возможности, то можно легко реализовать модернизацию контента, который использует иерархические данные. Например, можно распределять файл, содержащий данные заголовка, индексный блок и мозаичное изображение, в качестве контента регулярной версии. А в качестве дополнения при этом отдельно применяется файл, содержащий мозаичные изображения слоев с более высоким уровнем разрешения. Заголовок и индексный блок обычной версии сконфигурированы так, чтобы содержать указатели, указывающие на мозаичные изображения дополнения, которые не будут воспроизводиться до тех пор, пока не будут получены эти мозаичные изображения, поскольку указатели остаются недействующими. Когда пользователь модернизирует контент, загружается файл дополнения, так что указатели, которые указывают на мозаичные изображения, хранящиеся в этом файле, не становятся действующими. Соответственно, на дисплей выводятся изображения дополнения. Это позволяет легко проводить модернизацию без необходимости внесения изменений в файлы контента регулярной версии. При модернизации пользователь может вносить оплату.
Второй пример осуществления
В первом примере осуществления файл изображения первоначально генерируется и модифицируется обращением к информации, вводимой пользователем. В данном примере осуществления будет представлено объяснение режима, в котором рендеринг иерархических данных осуществляется графическим процессором. За счет введения иерархических данных в рендеринг становится возможным исполнять только те этапы для получения требуемого уровня разрешения, которые были описаны выше для первого примера осуществления. Это позволяет эффективно обрабатывать изображения большого размера с высоким уровнем разрешения. Данный пример осуществления может быть реализован устройством обработки информации 10, показанным на Фиг.4 первого примера осуществления. На Фиг.25 более подробно представлена структура блока управления 100 и оперативной памяти 60 устройства обработки информации 10, в соответствии с примером осуществления.
Блок управления 100 содержит центральный процессор 400 и графический процессор 402. Центральный процессор исполняет, в основном, прикладную программу устройства обработки информации 10 и управляет другими функциональными блоками, входящими в структуру устройства обработки информации 10. Графический процессор 402 исполняет обработку изображений в соответствии с требованиями на обработку изображений от центрального процессора 400. Данные, необходимые для обработки изображений, хранятся в оперативной памяти 60. Графический процессор 402 считывает данные для соответствующего исполнения обработки изображений и записывает полученный результат в оперативную память 60.
Графический процессор 402 использует модельные данные 418, хранящиеся в оперативной памяти 60, и осуществляет рендеринг данных в соответствии с требованием на обработку изображений от центрального процессора 400. Графический процессор 402 обновляет буфер цветов 414 и буфер Z 416, оба хранящиеся в оперативной памяти 60. В этом примере осуществления, как буфер цветов 414, так и буфер Z 416 являются, как показано на Фиг.25, иерархической структурой данных. Иными словами, эти буферы имеют структуру, в которой иерархически организована плоскость пикселей со значениями цветов, в которой хранится цветовая информация пикселей воспроизводимого изображения, и плоскость значений Z пикселей, в которой хранится информация о глубине пикселей относительно точки наблюдения, при этом обе плоскости организованы иерархически в соответствии с многими уровнями разрешения изображения, которое подлежит воспроизведению. Эти иерархические данные могут содержать заголовок, индексные блоки и мозаичные данные, как это было описано в первом примере осуществления. Мозаичные данные представляют данные мозаичных областей, определенных декомпозицией с заранее заданным размером плоскости пикселей в каждом слое.
Графический процессор 402 содержит блок рендеринга 404, осуществляющий рендеринг в соответствии с требованием от центрального процессора 400, и блок обновления иерархических данных 406, осуществляющий отображение результата воспроизведения блоком рендеринга 404 на соответствующие слои в буфере цветов 414 и буфере Z 416. Графический процессор 402 содержит также области памяти, временно используемые для рендеринга, в частности буфер цветов GPU 408, буфер GPU-Z 410 и маска затемнения 412. Маска затемнения 412 имеет область того же самого размера, что и область буфера цветов GPU 408 и буфера GPU-Z 410, при этом каждый пиксель хранит однобитовую информацию. Когда буфер цветов GPU 408 и буфер GPU-Z 410 обновляются рендерингом, значение обновленного пикселя изменяется, что позволяет обнаружить область этого пикселя.
Далее будет дано объяснение операций, выполняемых во время рендеринга устройством обработки изображений, который имеет описанную выше структуру. На Фиг.26 представлена блок-схема, показывающая этапы рендеринга иерархических данных. Сначала центральный процессор 400 выдает требование на графический процессор 402 на исполнение рендеринга (S200). Как было описано выше, данные, необходимые для рендеринга, хранятся в оперативной памяти 60. Помимо модельных данных 418 оперативная память 60 хранит также буфер цветов 414 и буфер Z 416, имеющий иерархическую структуру, как это было описано ранее.
Блок рендеринга 404 графического процессора 402 идентифицирует слой и область в буфере цветов 414 и буфере Z 416, являющиеся объектом рендеринга, базируясь на данных модели 418 и пр. (S202). Затем блок рендеринга 404 считывает данные идентифицированной области из буфера цветов 424 и буфера Z 416 и заполняет буфер GPU, содержащий буфер цветов GPU 408 и буфер GPU-Z 410, считанными данными (S204). Как и в способе идентификации мозаичного изображения, описанном в первом примере осуществления, последовательно отыскиваются заголовок и индексный блок для идентификации мозаичных данных в слое и области, являющихся объектом рендеринга. Следовательно, считывание осуществляется единицами мозаичных данных.
В это время блок рендеринга 404 инициализирует маску затемнения 412 (S206). Например, блок рендеринга 404 устанавливает значение каждого пикселя на "0". Далее, используя модельные данные 418, блок рендеринга 404 осуществляет рендеринг обычным алгоритмом, обновляет надлежащим образом буфер цветов GPU 408 и буфер GPU-Z 410 и вместе с этим обновляет значения пикселей, подлежащих обновлению, в маске затемнения 412 на "1" (S208).
Блок рендеринга 404 обновляет иерархические данные в буфере цветов 414 и буфере Z 416 в оперативной памяти 60, базируясь на результатах рендеринга в буфере цветов GPU 408 и буфере GPU-Z 410 (S210). Более конкретно, блок рендеринга 414 отыскивает слой и область в иерархических данных, являющихся объектом рендеринга, с тем чтобы идентифицировать мозаичную область, которая содержит обновляемые пиксели, базируясь на значениях пикселей в маске затемнения 412. Блок рендеринга 404 обновляет данные мозаичной области, базируясь на результатах рендеринга в буфере цветов GPU 408 и буфере GPU-Z410.
В это время блок рендеринга 404 генерирует новые мозаичные данные и обновляет указатель, определенный в индексном блоке, на указатель, который указывает на новые мозаичные данные. Если предполагается частое обновление, то генерация мозаичных данных может быть опущена и осуществляется только обновление указателя. После того как будет завершено формирование изображения, могут быть сгенерированы мозаичные данные. Блок рендеринга 404 генерирует новые мозаичные данные для областей, которые принадлежат к слоям, отличным от слоев, являющихся объектом рендеринга, и соответствующим обновляемой области, и обновляет указатели, определенные в индексных блоках, на указатели, которые указывают на эти новые мозаичные данные. При этом различные слои имеют различные уровни разрешения, поэтому результат рендеринга увеличивается или уменьшается, что отображается в новых мозаичных данных.
Если мозаичные данные области объекта рендеринга изначально не существуют в буфере цветов 414 и буфере Z (например, когда проводится рендеринг изображения более высокого уровня разрешения, чем существующие иерархические данные), то соответствующая область в вышележащем слое увеличивается так, чтобы заполнить буфер цветов GPU 408 и буфер GPU-Z 410 увеличенными данными. После рендеринга в буфере цветов 414 и буфере Z 416 отображаются только обновленные мозаичные данные, и обновляется указатель в заголовке или индексном блоке. После этого генерируются мозаичные данные слоев, отличных от слоя, который должен воспроизводиться, и соответственно обновляются указатели аналогично тому, как было описано выше. Этот процесс обработки подобен процессу, описанному в первом примере осуществления, который был объяснен с использованием Фиг.19.
Итак, когда результат рендеринга на этапе S210 отображается на результате рендеринга в иерархических данных в слое, лежащем ниже слоя, являющегося объектом рендеринга на этапе S210, то данные увеличенного рендеринга содержат только некоторую мозаичную область в нижележащем слое, введенные мозаичные данные удаляются, и указатель, который указывает на мозаичные данные, становится недействующим. Тем самым, можно уменьшить объем мозаичных данных. Во время вывода на дисплей изображения, таким же образом, как было описано в первом примере осуществления, идентифицируется слой, в котором указатель является действующим, и можно увеличить изображение иерархического слоя, который расположен выше.
Буфер цветов 414 и буфер Z 416 могут хранить заголовок и индексные блоки по отдельности или могут совместно использовать заголовок и индексные блоки. Если заголовок и индексные блоки используются совместно, то заданный индексный блок определяет несколько указателей, которые указывают на одну мозаичную область. Иными словами, определяется указатель, который указывает на мозаичные данные в буфере цветов, и указатель, который указывает на мозаичные данные в буфере Z. Это позволяет лучше сжимать данные заголовка и индексных блоков, чем при раздельном хранении заголовка и индексных блоков. Когда изображение будет полностью сформировано после рендеринга, отпадет дальнейшая необходимость в указателях в индексных блоках, которые указывают на мозаичные данные в буфере Z, и эти указатели могут быть удалены. Некоторые из указателей, определенных в индексном блоке для одной мозаичной области, могут не указывать на буфер цветов или буфер Z, что зависит от контента изображений.
Далее, несколькими буферами цветов может совместно использоваться буфер Z. Например, два набора данных могут предоставлять данные для буферов цветов, и один набор данных может предоставлять данные для буфера Z. С одной стороны, рендеринг может быть выполнен с использованием пары, содержащей один буфер цветов и буфер Z, а с другой стороны, - пары, содержащей другой буфер цветов и буфер Z. В этом случае будет более эффективным с позиции управления раздельное хранение каждого заголовка и каждого индексного блока.
Пример осуществления, описанный выше, в котором осуществляется рендеринг иерархических данных буфера цветов и буфера Z, может использоваться для сглаживания. А именно, генерируются иерархические данные, которые состоят из слоя с высоким уровнем разрешения и слоя с более низким уровнем разрешения, которые должны использоваться для вывода изображения на дисплей. При обычной избыточной выборке необходимо зарезервировать область памяти для изображения более высокого уровня разрешения даже при наличии на изображении областей, не имеющих каких-либо объектов (например, одноцветный фон). С другой стороны, при конфигурировании этих буферов как иерархических данных, подобно описанному выше, нет необходимости воспроизводить при высоком уровне разрешения область, которая будет образована увеличением слоя с низким уровнем разрешения.
Например, предоставляя пользователю возможность назначать необходимое разрешение область за областью, потребуется воспроизводить только минимальное число областей в каждом слое, что повышает эффективность использования памяти. Для частого обновления мозаичных данных и высокого быстродействия вывода изображения на дисплей можно не сжимать сгенерированные мозаичные данные. В зависимости от размера объектной области могут использоваться различные алгоритмы сглаживания. Например, в случае, когда необходимо сглаживание всего целиком изображения, можно перейти на алгоритм сглаживания посредством разделения объектной области, например применять избыточную выборку.
Сглаживание может быть выполнено двумя способами с использованием иерархических данных. В одном из них воспроизводится изображение только самого нижнего слоя, а уменьшенные версии генерируются, как только изображение окончательно сформировано. Во втором способе рендеринг выполняется в слое, назначенном пользователем, и одновременно обновляются соответствующие области во всех слоях. Первый способ помогает снизить частоту реализации процессов уменьшения, в то время как второй подход облегчает предсказание затрат, необходимых при генерации пикселей в таких процессах, как растрирование, затенение, рендеринг выходного конвейера (ROP rendering output pipeline), преобразование пикселей и пр. Однако последний подход требует частого обмена исходными изображениями, увеличенными изображениями, уменьшенными изображениями и пр. между графическим процессором 402 и оперативной памятью 60, поэтому увеличиваются требования к ширине полосы пропускания данных.
В общем случае, не только при сглаживании, но также и при рендеринге иерархических данных часто требуется масштабирование (то есть увеличение или уменьшение) изображений для отображения результата рендеринга на каждый из слоев. Когда данные изображений передаются между графическим процессором и оперативной памятью, то каждый раз, как исполняется процесс масштабирования, возникает большая нагрузка на полосу пропускания между процессором и оперативной памятью. Для решения этой проблемы в оперативную память 60, как показано на Фиг.27, встраивается преобразователь масштаба 422, обеспечивающий масштабирование.
Тем самым, графическому процессору 420 и оперативной памяти 60 необходимо обмениваться только изображениями с уровнем разрешения, требуемым при рендеринге. Преобразователь масштаба 422 обеспечивает то, что результат рендеринга отображается на слои в иерархических данных, которые хранятся в оперативной памяти 60. В результате этого предотвращается большая нагрузка на полосу пропускания между графическим процессором 420 и оперативной памятью 60, что позволяет эффективно реализовать рендеринг иерархических данных. Преобразователь масштаба 422 может и не быть встроен в оперативную память 60, а может быть подсоединен к оперативной памяти 60, используя шину, отличную от шины между графическим процессором 420 и оперативной памятью 60. Подобная конфигурация может обеспечивать такую же эффективность.
Пример осуществления, описанный выше, может быть реализован с использованием обычного графического процессора. В таком обычном графическом процессоре используется организация, при которой адреса памяти, близкие между собой, назначаются соседним изображениям, что позволяет снизить частоту операций считывания и записи в оперативной памяти, когда происходит адресация к внутреннему буферу кадров, то есть к описанному выше буферу GPU. Существует ограничение, состоящее в том, что областям, используемым в буфере GPU, необходимо занимать непрерывное адресное пространство. Иными словами, буфер GPU не может быть заполнен областью с адресами, не следующими один за другим. На Фиг.28 и Фиг.29 иллюстрируется сущность обработки в таком случае.
Прежде всего на Фиг.28 принимается, что адреса "11"-"18" назначаются тогда, когда проводится рендеринг области 430, которая является частью изображения в третьем слое в иерархических данных. В этом случае графический процессор 402 может заполнять буфер GPU этой областью. После этого, как показано на Фиг.29, за объект рендеринга принимается область 432, которая является частью третьего слоя. Область 432 содержит области, к которым уже назначены, как показано на Фиг.28, адреса "11" и "12". В этом случае другим областям в области 432 назначаются адреса "19"-"24". Такое назначение адресов приводит к тому, что в области 432 содержатся области, где адреса не следуют один за другим, в результате чего графический процессор 402 не может заполнять буфер GPU областью 432.
Поэтому необходимо, чтобы область 432 временно бы копировалась на отдельную область памяти и области 432 перед заполнением буфера GPU областью 432 назначаются новые непрерывно следующие адреса (адреса "50"-"57" на Фиг.29). Для снижения затрат на связанную с этим обработку в контроллере памяти (не показан) в оперативной памяти 60 может быть создана, в соответствии с этим примером осуществления, таблица, устанавливающая соответствие между позициями в области и назначенными адресами. В случае области 432, показанной на Фиг.29, позиции в области указываются как "0"-"7" в порядке растрирования. Соответствие устанавливается таким образом, что "0"="19", "1"="20", "2"="21", "3"="22", "4"="23", "5"="24", "6"="11" и "7"="12".
При использовании описанного предобразования адресов в оперативной памяти 60 область, для которой назначаются не следующие непрерывно один за другим адреса, может быть воспроизведена без необходимости копирования для непрерывного заполнения, как показано на Фиг.29. Встраиванием преобразователя масштаба 422 в оперативную память 60, как показано на Фиг.27, большинство этапов генерации и обновления иерархических данных, включая генерацию увеличенных или уменьшенных изображений, может быть выполнено единственно в оперативной памяти 60.
Рендеринг иерархических данных, как было описано в этом примере осуществления, предоставляет ряд преимуществ, в том числе произвольный доступ к мозаичным данным, используя заголовок и индексные блоки, совместную обработку многих наборов иерархических данных, обеспечиваемую декомпозицией заголовка и в результате меньшенным объемом памяти для каждого набора иерархических данных, а также возможность добавления, исключения и обновления мозаичных данных в процессе рендеринга. Эти особенности являются теми же самыми, что и требования образования текстуры, в том числе произвольный доступ, многотекстурная обработка и образование объектов. Поэтому с иерархическими данными можно манипулировать таким же самым образом, что и с данными текстуры, так что иерархические данные могут использоваться в самых различных прикладных задачах, в которых используется компьютерная графика.
Выше было дано объяснение, которое базируется на примере осуществления. Этот пример осуществления является только иллюстративным и специалистам в данной области техники будет очевидно, что могут быть разработаны различные модификации составных элементов и процессов, и что такие модификации также находятся в объеме настоящего изобретения.
Описание ссылочных номеров
1 - система обработки информации, 10 - устройство обработки информации, 12 - дисплейное устройство, 20 - устройство ввода, 38 - мозаичное изображение, 50 - дисковод жесткого диска, 60 - оперативная память, 100 - блок управления, 102 - блок получения входной информации, 106 - блок определения загружаемых блоков, 108 - блок загрузки, 110 - блок идентификации мозаичных изображений, 112 - блок декодирования, 114 - блок обработки выводимого на дисплей изображения, 120 - блок генерации иерархии изображений, 122 - блок декомпозиции изображений, 124 - блок обнаружения избыточности, 126 - блок генерации заголовков/индексных блоков, 150 - заголовок, 160 - индексный блок, 170 - мозаичное изображение, 318 - блок получения файлов изображений, 320 - блок получения информации обновления, 322 - блок генерации мозаичных изображений, 324 - блок обновления заголовков/индексных блоков, 326 - блок управления выводом на дисплей изображения, 328 - блок генерации файлов изображений, 400 - центральный процессор, 402 - графический процессор, 404 - блок рендеринга, 406 - блок обновления иерархических данных, 408 - буфер цветов GPU, 410 - буфер GPU-Z, 412 - маска затемнения, 414 - буфер цветов, 416 - буфер Z, 418 - модельные данные, 422 - преобразователь масштаба, 520 - графический процессор.
Промышленная применимость
Как было описано выше, настоящее изобретение может быть применено к устройствам обработки информации, таким как компьютеры, игровые устройства, устройства обработки изображений, устройства воспроизведения изображений и прочие.