ПОЭТАПНОЕ ОБНОВЛЕНИЕ И ФОРМАТИРОВАНИЕ РАЗМЕТКИ HD-DVD
INCREMENTALLY UPDATING AND FORMATTING HD-DVD MARKUP

Уровень техники
Носители информации на универсальных цифровых дисках высокого разрешения (HD-DVD) и соответствующие проигрыватели становятся все более популярными и широко используемыми. По мере того, как все большее количество производителей выходит на этот рынок, возрастает конкуренция, способствуя снижению цен. При такой ценовой конъюнктуре программное обеспечение, запускаемое на HD-DVD проигрывателях, как правило, работает на относительно недорогом потребительском оборудовании.
Преобразование содержимого HD-DVD и разметки стилей в доступную для отображения форму является затратным в вычислительном смысле. Как правило, разумный уровень скорости визуализации для разметки HD-DVD составляет приблизительно 24 кадра в секунду, для приемлемого восприятия пользователем. Традиционные технологии преобразования и визуализации разметки HD-DVD могут столкнуться с трудностями при попытке достичь этого уровня скорости визуализации из-за выполнения вычислительно затратной задачи форматирования всего соответствующего контента HD-DVD и разметки стилей на каждый тактовый импульс на недорогом пользовательском оборудовании.
Сущность изобретения
Здесь описываются системы, методы и/или технологии ("инструменты") для поэтапного обновления и форматирования разметки универсальных цифровых дисков высокого разрешения (HD-DVD). Инструменты могут принять первую разметку, представляющую собой первое описание сцены, подлежащее считыванию с HD-DVD, и могут преобразовать первую разметку в первый составной объект области для представления пользователю. Инструменты могут затем принять вторую разметку, представляющую второе описание сцены, подлежащее считыванию с HD-DVD. В ответ на прием второй разметки, инструменты могут поэтапно повторно преобразовывать часть описания первой сцены во второй составной объект области блок для представления пользователю.
Раздел Сущность изобретения представлен для ознакомления в упрощенной форме с набором понятий, которые представлены ниже в подробном описании. Сущность изобретения не предназначена для определения ключевых или существенных признаков заявленной сущности изобретения, равно как и не предназначена для использования в качестве помощи для определения объема заявленной сущности изобретения. Термин "инструменты" например, может относиться к системе (системам), способу (способам), машиночитаемым командам, и/или технологии (технологиям), как это допускается контекстом выше и на протяжении всего документа.
Краткое описание чертежей
Инструменты, относящиеся к поэтапному обновлению и форматированию разметки HD-DVD, описаны в соответствии со следующими чертежами. Одни и те же номера используются повсеместно в данном раскрытии и чертежах для ссылок на одинаковые компоненты и элементы. Первая цифра в номере ссылки указывает на чертеж, на котором вводится этот номер.
Фиг.1 представляет собой блок-схему, иллюстрирующую операционную среду для поэтапного обновления и форматирования разметки HD-DVD.
Фиг.2 представляет собой блок-схему, иллюстрирующую дополнительные аспекты компонента преобразования HD-DVD.
Фиг.3 представляет собой блок-схему, иллюстрирующую переходы, из одного состояния в другое, которые происходят с течением времени при описании сцен.
Фиг.4 представляет собой блок-схему, иллюстрирующую переходы состояний объектной модели документов (DOM), по мере того как эти переходы происходят во времени в ответ на тактовые импульсы и поясняет, каким образом компонент форматирования может поэтапно преобразовывать состояния модели DOM.
Фиг.5 представляет собой блок-схему последовательности операций, иллюстрирующую процессы поэтапного обновления и форматирование разметки HD-DVD.
Фиг.6 представляет собой блок-схему, иллюстрирующую схему, в которой данные стилей HD-DVD организованы в слои.
Фиг.7 представляет собой блок-схему, иллюстрирующую дополнительные аспекты уведомляющего сообщения об изменении.
Фиг.8 представляет собой блок-схему последовательности операций, иллюстрирующую процессы, которые могут выполняться в виде действий обратной связи на уведомляющее сообщение об изменении.
Фиг.9 представляет собой блок-схему последовательности операций, иллюстрирующую процессы выполнения покадрового форматирования в ответ на синхронизирующие сигналы.
Фиг.10 представляет собой блок-схему последовательности операций, иллюстрирующую процессы обхода порождающих и подчиненных узлов деревьев разметки.
Подробное описание
Обзор
Следующий документ описывает инструменты, способные выполнять или и/или поддерживать многие технологии и процессы. Следующее пояснение описывает типовые способы, в которых инструменты поэтапно обновляют и форматируют разметку универсального цифрового диска высокого разрешения (HD-DVD). Это пояснение также описывает прочие технологии и/или процессы, которые эти инструменты могут выполнять.
Для целей форматирования контента HD-DVD и разметки стилей в осязаемую форму, как описано здесь, термин "состояние" может относиться к любому из состояний и/или стилей, определяемых спецификацией HD-DVD, и термин "переход из одного состояния в другое состояние" относится к любой смене значений для любого состояния или стиля HD-DVD.
Фиг.1 иллюстрирует операционную среду 100 для поэтапного обновления и форматирования разметки HD-DVD. Операционная среда 100 может давать возможность одному или более пользователям 102 проигрывать один или более HD-DVD дисков 104, как представлено, в целом, пунктирной линией 106.
Эти HD-DVD диски 104 могут включать в себя один или более машиночитаемых компонентов. Эти компоненты могут включать в себя, для примера, часть 108 разметки контента, которые могут включать в себя словарь XML, который определяет структурированное дерево элементов. Эти элементы могут задавать визуальный или звуковой контент, который может быть представлен пользователю при проигрывании HD-DVD дисков.
какие
каким образом
DVD диски 104 могут также включать в себя часть 110 разметки стиля, которая может включать в себя словарь XML, который описывает, как должны выглядеть элементы, которые включены в часть 108 разметки контента, когда они представляются пользователю. Выражаясь по-другому, часть разметки контента может задавать,  элементы воспроизведены пользователю; часть разметки стиля может задавать  эти элементы воспроизведены пользователю.
Таблица 1, представленная ниже, поясняет дерево элементов разметки контента HD-DVD.
Таблица 1
DVD диски 104 могут также включать в себя часть 112 разметки таймирования, которая может включать в себя словарь XML, который задает одно или более изменений разметки стиля во времени.
Часть разметки контента, часть разметки стиля и часть разметки таймирования могут быть реализованы на непроцедурном языке программирования. Однако, часть сценария 114 может быть реализована на процедурном словаре программирования, который обуславливает недетерминированные изменения в разметке стиля во времени.
Операционная среда 100 может давать возможность пользователям 102 вставлять HD-DVD диски 104 в HD-DVD проигрыватель 116 для воспроизведения, как показано пунктирной линией, соединяющей диск 104 и проигрыватель 116. HD-DVD проигрыватель 116 может быть системой, управляемой ЭВМ, которая включает в себя один или более процессоров, обозначенных 118. Эти процессоры могут также быть категоризированы или охарктеризованы, как имеющие данный тип или архитектуру, но могут и не обладать одним и тем же типом или архитектурой.
HD-DVD проигрыватель может также включать в себя один или более экземпляров машиночитаемых или читаемых на компьютере носителей хранения, обозначенных в целом 120. Читаемые на компьютере носители 120 могут содержать команды, которые, когда исполняются процессором 118, выполняют инструменты или связанные функции, которые описываются здесь как выполняемые посредством HD-DVD проигрывателем. Процессор может осуществлять доступ и/или исполнять команды, встроенные или закодированные на читаемых компьютером носителях, и/или может осуществлять доступ к данным, хранящимся на читаемых компьютером носителях.
Возвращаясь подробнее к читаемому на компьютере носителю 120, он может включать в себя один или более экземпляров компонентов 122 преобразования HD-DVD. Компонент 122 преобразования HD-DVD может включать в себя, например, один или более модулей программного обеспечения, которые, будучи загружены в процессор и исполнены, предписывают HD-DVD проигрывателю поэтапно обновлять и форматировать разметку HD-DVD для воспроизведения пользователю.
Под ссылочной позицией 124 на Фиг.1 обобщенно обозначен вывод разметки в том виде, как она воспроизведена пользователю. Для удобства описания, но не для того, чтобы ограничить возможные реализации, Фиг.1 включает в себя несколько примеров элементов, которые может включать в себя формируемая для воспроизведения разметка. Как замечено выше, часть 108 разметки контента может задавать, по меньшей мере, несколько этих элементов, которые могут включать в себя один или более простейших геометрических элементов 126. Примеры простейших геометрических элементов 126 могут включать в себя элементы, используемые для постройки блоков меню, графических элементов или других особенностей интерфейса пользователя.
Воспроизведенные выходные данные 124 могут включать в себя один или более текстовых элементов, обозначенных обобщенно ссылочной позицией 128. Образцы таких текстовых элементов 128 могут содержать ярлыки, описания или другую алфавитно-цифровую или символьно-ориентированную информацию, представленную пользователю в воспроизведенных выходных данных 124.
Воспроизведенные выходные данные 124 могут включать в себя один или более экземпляров элементов изображения и/или видео, обобщенно обозначенных ссылочной позицией 130. Эти элементы изображения или видео могут быть включены как часть пользовательских интерфейсных устройств (например, блоки меню или тому подобное), или могут предоставлять основной контент, включенный в качестве развлекательной части HD-DVD диска (например, фильм, спортивное мероприятие или тому подобное).
Воспроизведенные выходные данные 124 могут включать в себя один или более экземпляров аудио элементов, обобщенно обозначенных ссылочной позицией 132. Эти аудио элементы могут быть представлены отдельно, или в сочетании с другими элементами, такими как элементы 130 изображения/видео.
HD-DVD проигрыватель 116 может взаимодействовать с устройством 134 представления для предоставления воспроизведенных выходных данных 124 пользователю 102, как показано пунктирной линией 136. Фиг.1 изображает пунктирную линию 136 как двунаправленную по своему характеру, для представления не только воспроизведенных выходных данных 124 пользователю, но также любых откликов или ввода, сделанного пользователем.
Устройство 134 представления может включать в себя устройство 138 наглядной индикации для предоставления воспроизведенных выходных данных в видимой для пользователя форме. Примеры устройства 138 наглядной индикации могут включать в себя телевизоры, мониторы, дисплеи и тому подобное, реализованное с помощью любой подходящей технологии отображения.
Устройство 134 представления может включать в себя устройство 140 представления звука для предоставления воспроизведенных выходных данных для пользователя в звуковом виде. Примеры устройств 140 представления звука могут включать в себя громкоговорители или подобные устройства для преобразования электрических сигналов в звуковые волны, воспринимаемые человеческим ухом, реализованные с помощью любой подходящей аудиотехники.
Фиг.1 изображает устройство 134 представления и HD-DVD проигрыватель 116 в виде отдельных блоков только для облегчения описания и иллюстрации, но не для ограничения возможных реализаций. Точнее говоря, устройство представления и HD-DVD проигрыватель могут быть выполнены в виде отдельных или интегрированных компонентов. Аналогичным образом, устройство 138 наглядной индикации и устройство 140 представления звука могут быть выполнены в виде компонентов, отдельных от устройства 134 представления, или в виде компонентов, интегрированных вместе.
Описав операционную среду 100 с помощью Фиг.1, пояснение теперь переходит к более детальному описанию компонента 122 преобразования HD-DVD, представленного на Фиг.2.
Фиг.2 поясняет дополнительные аспекты 200 компонента 122 преобразования HD-DVD. Для удобства, но не для ограничения, некоторые элементы, описанные ранее, переносятся на Фиг.2 и обозначены одинаковыми ссылочными позициями.
В целом, разметка 108 контента, разметка 110 стилей и разметка 112 таймирования определяют объектную модель документа (DOM) 202. DOM 202 может быть реализована в виде структуры дерева данных с использованием словаря XML. DOM 202 может включать в себя множество индивидуальных элементов разметки, обобщенно обозначенных на Фиг.2 под 204. Таблица 1 выше изображает наборы допустимых комбинаций порождающих и порождаемых элементов, предоставляющих конкретные примеры состояний DOM 202.
Фиг.2 изображает два примера элементов разметки под позициями 204a и 204n. Однако реализации DOM могут включать в себя произвольное число элементов 204, и дерево DOM может приобрести любую подходящую форму. Сценарий 114 может быть процедурным языком программирования, который меняет DOM недетерминированными способами.
Эти элементы разметки могут определить описание сцен для того, что является воспроизводимым на экране для пользователя. На Фиг.2 это описание сцен в общем обозначено 206. Тогда как, описание 206 сцен может задавать, что является воспроизводимым на экране для пользователя, само описание сцен выражается в форме, определяемой спецификацией HD-DVD (обнародованной управляющим комитетом DVD форума), а не в форме, которая может быть напрямую показана или отображена на экране. Процесс преобразования описания сцен в форму, подходящую для отображения на экране, называется здесь форматированием. Для выполнения этой функции компонент 122 преобразования HD-DVD может включать в себя компонент 208 форматирования HD-DVD, который может включать в себя программные команды для форматирования описания сцен в форму, пригодную для отображения на экране.
Компонент 208 средства форматирования HD-DVD конвертирует или преобразует язык 206 описания сцен в преобразованный контент и разметку стилей, подходящих для воспроизведения на экране для пользователя. На Фиг.2 преобразованный контент и разметка стилей в целом обозначены позицией 210. Эта преобразованная разметка 210 вводится в компонент 212 формирования HD-DVD, который включает в себя команды программного обеспечения для воспроизведения преобразованного контента и разметки стилей в конечной форме воспроизведенных выходных данных (например, 124). Эти воспроизведенные выходные данные являются пригодными для представления пользователю посредством, например, устройства 134 представления, учитывая любые особенности, характерные для устройства 134 представления.
Описав компонент 122 преобразования HD-DVD более подробно с помощью Фиг.2, пояснение теперь переходит к более детальному описанию компонента 208 средства формирования HD-DVD, поскольку он может обрабатывать описание сцен во времени, представленного на Фиг.3.
Фиг.3 поясняет переход 300 из одного состояния в другое состояние при описании сцен, которое происходит во времени. Для удобства, но не для ограничения, некоторые элементы, описанные ранее, перенесены на Фиг.3 и обозначены одинаковыми ссылочными позициями.
Как показано на Фиг.3, описание сцен в данном первоначальном состоянии, обозначенном 206a, представлено соответствующей моделью DOM в первоначальном состоянии, обозначенном 202a. Средство 208 форматирования HD-DVD преобразует состояние 202a DOM в структуру составных объектов области, обобщенно обозначенную на Фиг.3 номером 302. Точнее говоря, составных объектов области, которое соответствует состоянию 202a модели DOM обозначено 302a, тогда как процесс преобразования обозначается 304.
Составной объект 302 области может быть реализован как древовидная структура, которая указывает, каким образом различные элементы, определенные в модели DOM, могут быть воспроизведены на экране для пользователя. Таким образом, составной объект 302 области может содержать произвольное число элементов 306a и 306n (в общем, элементов 306). Тогда как модель DOM может быть задана на языке разметки, выбранном автором HD-DVD, составной объект области выражается в терминах возможностей устройства, на котором отображается контент HD-DVD. Компонент 212 воспроизведения HD-DVD может генерировать воспроизведенные выходные данные 124a, основываясь на содержимом составных объектов 302a области.
Один узел DOM может порождать множество узлов областей, как если узел DOM, который описывает абзац, порождает множество строк текста, где абзац в целом порождает одну область (например, с цветом фона для абзаца), и вдобавок, каждая строка порождает одну область (например, с некоторым текстом и/или изображением на этой строке). Хотя один узел области, в целом, относится к одному узлу модели DOM, это может быть не всегда верно. Например, рассмотрим случай, когда узел абзаца модели DOM целиком определен им самим и никакими другими узлами модели DOM, и порождает области абзаца и затененные участки. Каждая из этих областей абзаца и затененных участков относятся как в общем, так и конкретно к абзацу узла DOM, и ни к каким другим узлам DOM.
Однако, рассмотрим случай, когда родительский абзац узла модели DOM определяет цвет фона, и подчиненный абзац узла DOM наследует этот цвет. Тогда область абзаца и затененные области, порождаемые подчиненным абзацем узла DOM, будут, в общем, относиться к узлу DOM подчиненного абзаца. Однако, строго говоря, эти области абзаца и затененные области будут также подвержены влиянию и связаны с родительским абзацем узла DOM, который определяет цвет фона.
Фиг.3 поясняет, каким образом средство 208 форматирования HD-DVD может преобразовывать описание сцен во времени, по мере прихода тактовых импульсов. Тактовые импульсы или метки обобщенно обозначены 308. Фиг.3 иллюстрирует сценарий, в котором описание сцен в данном состоянии, обозначенном 206a, преобразуется в следующее состояние, обозначенное 206n, в ответ на тактовый импульс 308.
Когда возникает тактовый импульс 308, он предоставляет сигнал на средство 208 форматирования HD-DVD, что описание 206a сцен поменяло состояние на 206n. Как показано на Фиг.3, новое описание 206n сцен может быть связано с новым состоянием DOM, обозначенным 202n. На Фиг.3 номером 310 обозначены любые изменения между первоначальным состоянием 202a DOM и новым состоянием 202n DOM.
В свою очередь, средство 208 форматирования может рассматривать эти изменения 310 при обновлении составного объекта 302a области в ответ на тактовый импульс 308. Точнее говоря, средство 208 форматирования может выполнить поэтапное повторное преобразование модели DOM 202n в обновленное состояние составного объекта области, обозначенное 302n. Термин "поэтапный", как он используется здесь, относится к понятию повторного преобразования только в том, что часть нового состояния DOM 202n, которое изменилось, относится к предыдущему состоянию DOM 202a, в отличие от повторного преобразования всего нового состояния DOM 202n. На Фиг.3 этот поэтапный процесс повторного преобразования в целом обозначается 312.
Как только составной объект 302a области обновляется, давая в результате составной объект 302n области, компонент 212 воспроизведения HD-DVD может выдать обновленные воспроизведенные выходные данные 124n. Воспроизведенные выходные данные 124n отражают изменения в описании сцен, вызванные тактовым импульсом 308, как представлено в окончательной отображенной форме для пользователя.
Описав компонент 208 средства форматирования HD-DVD более подробно с помощью Фиг.3, пояснение теперь переходит к более детальному описанию различных подходов, представленных теперь на Фиг.4, с помощью которых компонент 208 средства форматирования может поэтапно повторно преобразовывать состояния DOM, по мере того как они преобразуются со временем.
Фиг.4 поясняет переходы 400 в состояниях DOM, по мере того как эти переходы происходят во времени в ответ на тактовые импульсы, и также поясняет, как компонент 208 средства форматирования может поэтапно повторно преобразовывать состояния DOM. Для удобства, но не для ограничения, некоторые элементы, описанные ранее, перенесены на Фиг.4 и обозначены одинаковыми ссылочными позициями.
Компонент 208 средства форматирования принимает данные, представляющие данное текущее описание сцены, обозначенное 206a, и принимает индикацию последовательных тактовых импульсов, обозначенных 308. В ответ на тактовые импульсы 308, текущее описание 206a сцены переходит в следующее состояние 206n описания сцены, с помощью компонента 208 средства формирования, принимающего индикацию следующего состояния 206n описания сцены.
Как показано на Фиг.4, различные состояния описания сцены связаны с соответствующими примерами или состояниями DOM, обозначенными 202a, 202b, 202c и 202n. Фиг.4 иллюстрирует временную ось 402, с примерными тактовыми импульсами 308, появляющимися в дискретные интервалы 402a, 402b, 402c и 402n.
По мере того как модель DOM переходит из состояния 202a в состояние 202b, например, компонент 208 средства форматирования может определить, насколько сильно модель DOM изменяется от состояния к состоянию. Фиг.4 представляет три примера изменений, обозначенных соответственно 312a, 312b и 312c. Изменения 312a указывают изменения в модели DOM при переходе из состояния 202a в состояние 202b, изменения 312b указывают изменения в модели DOM при переходе из состояния 202b в 202c, и изменения 312c указывают изменения в модели DOM при переходе из состояния 202c в 202n.
Компонент 208 средства форматирования и/или прочие компоненты HD-DVD проигрывателя 116 могут генерировать сообщения, указывающие на объем и контент этих изменений. Фиг.4 поясняет три примера таких уведомляющих сообщений об изменениях 404a, 404b и 404c (обобщенно, уведомляющие сообщения 404 об изменениях). Отметим, что реализации описанного здесь могут поддерживать любое число переходов состояний DOM.
В зависимости от характера и масштаба конкретного набора изменений, как отображается в уведомляющих сообщениях 404 об изменении, компонент 208 средства форматирования может использовать различные технологии для поэтапного повторного преобразования или переформатирования состояния DOM, чтобы породить обновленные составные объекты области. Фиг.4 поясняет три технологии.
По первому сценарию, обозначенному 406, компонент 208 средства форматирования не выполняет никакой поэтапной работы из-за изменений 310. В этом первом сценарии переход в состоянии DOM не приводит ни к какому поэтапному повторному преобразованию или переформатированию. Примеры того, когда этот первый сценарий может иметь место, даны ниже.
По второму сценарию, обозначенному 408, компонент 208 средства форматирования использует технологию "несколько стилей - все элементы". В этой второй технологии компонент средства форматирования оценивает все элементы, содержащиеся в дереве разметки DOM, но оценивает только стили, которые меняются при переходе из одного состояния в другое состояние.
В третьем сценарии, обозначенном 410, компонент 208 средства форматирования использует технологию "несколько стилей - единый элемент". В этой третьей технологии компонент средства форматирования оценивает единственный узел в дереве разметки, и внутри этого единственного узла, оценивает только те стили, которые были модифицированы из-за перехода из одного состояния в другое.
Описав различные подходы, с помощью которых компонент 208 средства форматирования может поэтапно повторно преобразовывать состояния DOM, по мере того как они происходят с течением времени с помощью Фиг.4, пояснение теперь переходит к описанию последовательности операций, которые может выполнить компонент 208 средства форматирования, теперь представленных на Фиг.5.
Фиг.5 иллюстрирует блок схему 500 последовательности операций поэтапного обновления и форматирования разметки HD-DVD. Для удобства, но не для ограничения, некоторые элементы, описанные ранее, перенесены на Фиг.5, и обозначены теми же самыми ссылочными позициями. Тогда как блок-схема 500 последовательности операций описывается в сочетании с определенными компонентами, такими как компонент 208 средства форматирования, отмечается, что другие компоненты могут выполнять, по меньшей мере, часть блок-схемы 500 последовательности операций, не выходя за рамки и сущности описанной здесь.
Фиг.5 поясняет состояние 202a DOM, переходящее в состояние 202b DOM в ответ на тактовый импульс 308. Состояния 202 DOM могут быть представлены как древовидные структуры, включающие множество элементов, как описано выше. Как показано на Фиг.5, элементы внутри этих деревьев могут быть связаны с соответствующими стилями, обобщенно обозначенными 502. Фиг.5 изображает примеры этих стилей внутри состояния 202a DOM под 502a, 502b, 502c, и внутри состояния 202b DOM под 502x, 502y и 502z. По мере того, как состояние 202a DOM переходит в состояние 202 DOM b, некоторые (или, возможно, никакие) из этих стилей 502 могут измениться, как указано в уведомляющем сообщении 404 об изменении.
Инструменты, описанные здесь, могут выполнить, по меньшей мере, часть блок-схемы 500 последовательности операций в ответ на получение уведомляющего сообщения 404 об изменении. Перед продолжением описания Фиг.5, и прочих блок-схем последовательностей операций, содержащихся здесь, отмечается, что прямоугольники, изображенные на этих блок-схемах, представлены в порядке, показанном только для удобства, но не для ограничения. При реализации этих блок-схем последовательностей операций, эти блоки могут быть выполнены в любом удобном порядке.
Блок 504 представляет оценку того, соответствуют ли изменения форматирования, указанные в уведомляющем сообщении об изменении соответствующим стилям. Если да, то последовательность операций 500 может пойти по ветви 506 “да” в блок 508, который представляет собой совместную обработку любых данных, которые соответствуют связанным стилям.
Стили могут также быть связаны и обработаны совместно, когда множество уведомлений об изменениях доставляются совместно. Например, уведомляющее сообщение об изменениях (например, 404) может включать в себя изменение A, изменение B, изменение C и изменение D, где изменения B и C связаны и могут быть обработаны вместе.
Стили могут также быть связаны и обработаны вместе, когда несколько стилей оказывают влияние на одну и ту же часть области в составном объекте области. Например, одна часть области в составном объекте области представляет собой прямоугольник с фоном, по существу контур (x0,y0)-(xl,yl), который описывает, где нарисованы цвет фона и/или изображение фона, если область имеет цвет фона или фоновое изображение. Многие стили могут оказывать влияние на этот фоновый прямоугольник, включая, но не ограничиваясь style:anchor, style:x, style:y, style:position, style:inLineProgressionDimension, style:BlockProgressionDimension, style:writingMode, style:width и style:height. Таким образом, эти стили могут быть все обработаны одновременно, поскольку, в конечном счете, расчет, который вычисляет фоновый прямоугольник в области, примет во внимание каждый из этих стилей. Однако, тогда как style:color фонового прямоугольника относится к контуру для этой области, цвет не участвует в вычислении контура, и изменения в цвете могли быть обработаны отдельно от изменений по ширине, высоте и т.д.
Возвращаясь к блоку 504, если форматирующие изменения, обозначенные в уведомлении об изменении, не совпадают с соответствующими стилями, тогда последовательность операций 500 может выбрать ветку «нет» к блоку 512 оценки.
Блок 512 оценки представляет собой определение того, доступны ли прошлые результаты форматирования, и если доступны, являются ли эти прошлые результаты все еще правильными для состояния 202b DOM. Если так, то последовательность операций 500 может пойти по ветви 514 "да" на блок 516, который представляет собой использование этих прошлых результатов форматирования в текущей операции переформатирования, вызванной тактовым импульсом 308.
От блока 512 оценки, если результат оценки является отрицательным, последовательность операций может пойти по ветви 518 "нет" на блок 520 оценки, который представляет собой оценку того, влияют ли какие-либо изменения стиля, вызванные тактовым импульсом, на все элементы в DOM или только на подмножество элементов в DOM. Если выясняется, что изменения стиля влияют только на подмножество этих элементов, тогда последовательность операций 500 может пойти по ветви 522 "да" на блок 524, который представляет собой обработку используемого полезного подмножества элементов внутри DOM.
От блока 520 оценки, если результат оценки отрицательный, последовательность операций 500 может пойти по ветви 526 "нет" на блок 528 оценки, который представляет собой определение того, включает ли в себя переход из состояния 202a DOM в состояние 202b создание ссылок и/или отмену ссылок графических ресурсов. Примеры графических ресурсов включают в себя файлы изображений или шрифтов, использование которых может подразумевать операции декомпрессии.
От блока 528 оценки, если результат оценки положительный, последовательность операций 500 может пойти по ветви 530 "да" на блок 532, который представляет собой упорядочение любых операций по созданию и/или отмене ссылок, так что надлежащим образом созданное приложение, хранящееся на HD-DVD, не превышает ограничений платформы (например, не превышает пределов пиксель - буфера).
От блока 528 оценки, если результат оценки отрицательный, последовательность операций 500 может пойти по ветви 534 "нет" на блок 536, который представляет собой связывание достоверного или измененного состояния с различными элементами в дереве DOM. Точнее говоря, если изменение в состоянии DOM с 202a на 202b приводит к изменениям конкретных элементов дерева DOM, тогда блок 536 может включать в себя маркировку этих элементов как "измененных", и маркировку оставшихся элементов дерева DOM как "достоверных".
Блок 538 представляет собой связывание достоверного или измененного состояния с деревом DOM в целом. Точнее говоря, если изменение из состояния 202a DOM в состояние 202b DOM приводит к любым изменениям в дереве DOM, тогда блок 538 может включать в себя маркировку дерева DOM как "измененное". В противном случае, если изменение в состоянии DOM не приводит к изменениям в дереве DOM в целом, тогда блок 538 может включать в себя маркировку дерева DOM как "достоверное".
Блок 540 представляет собой переформатирование тех элементов и/или стилей внутри дерева DOM, которые были маркированы как "измененные" блоком 536 и/или 538.
Различные операции, показанные на Фиг.5, обеспечивают различные стратегии оптимизации. Реализации инструментов, описанных здесь, могут использовать одну или более из этих стратегий оптимизации по мере необходимости в разных обстоятельствах. Точнее говоря, эти стратегии оптимизации могут поддерживать технологию “несколько стилей - все элементы” (например, блок 406 на Фиг.4) и/или технологию “несколько стилей - один элемент” (например, блок 408 на Фиг.4).
Описав последовательность операций, которые может выполнить компонент 208 средства форматирования на Фиг.5, пояснение теперь переходит к описанию организации данных стилей HD-DVD в слои, представленному теперь на Фиг.6.
Фиг.6 поясняет схему 600, по которой данные стилей HD-DVD организованы в слои. Для удобства, но не для ограничения, некоторые элементы, описанные ранее, перенесены на Фиг.6, и обозначены теми же самыми ссылочными позициями.
Как показано на Фиг.6, состояние 202a DOM переходит в состояние 202b DOM в ответ на тактовый импульс 308, приводя к тому, что средство 208 формирования HD-DVD генерирует уведомляющее сообщение 404 об изменении. Стили 502 перенесены с Фиг.5.
Средство 208 форматирования может поддерживать понятие многослойных структур. Фиг.6 изображает два примера слоев 602a и 602n (в общем, 602), но при выполнении инструментов, описанных здесь, может поддерживаться любое число слоев. Слои 602 могут организовать данные различных стилей, содержащиеся в данном состоянии DOM. В примере, показанном на Фиг.6, слой 602n относится к стилю 502a в состоянии 202a DOM, и к стилю 502x в состоянии 202b DOM. Прочие слои (например, слой 602a) могут организовать другие стили 502, хотя Фиг.6 опускает эти отношения в интересах ясности.
Примеры критериев, с помощью которых слои могут организовать стили данных, включают в себя разделение стилей данных для поддержки прикладных, ссылочных, встроенных, анимационных и заданных сценарием значений, разрешенных непроцедурным языком, на котором написан HD-DVD. Фиг.6 представляет эти значения в блоках 604, 606, 608, 610 и 612 соответственно.
Когда DOM изменяет состояние с 202a на 202b, средство 208 форматирования может передать изменения в различные слои в результате изменения состояния. На Фиг.6 эти изменения в слоях обозначены 614. Эти изменения могут быть выражены как, например, одна или более set()операций для различных стилей в отдельных слоях, как представлено на блоке 616.
Блок 618 представляет собой выражение этих изменений как одну или более unset()операций для различных стилей в отдельных слоях. Блок 620 представляет собой выражение изменения этих слоев как одну или более get() операций для стилей в отдельных слоях. Блок 622 представляет собой выражение изменения этих слоев как одну или более get() операций, выполняемых для всех стилей во всех слоях, рассматривая относительный приоритет каждого слоя, чтобы определить эффективное значение. Блок 624 представляет собой разделение результирующих реальных данных по слоям.
В качестве примеров операций set() и unset(), рассмотрим случай, где в описательной разметке контента и описательной разметке стилей, первичное состояние некоторого элемента такое, что style:x="10px" обусловлено применением действующего style:x. Положим тогда, что в описательной временной разметке элемент запрограммирован один раз за 3 минуты воспроизведения фильма перейти с 10px на 100px в течение 5 секунд и затем перейти обратно в течение 5 секунд.
В течение всего фильма, включая часть, в которой происходит анимация, действующее значение style:x остается 10px. Это значение было установлено() при загрузке и никогда не сбрасывается ().
В течение первых 3 минут фильма в анимированном слое не существует значения style:x. Через 3 минуты воспроизведения фильма, анимированное значение style:x устанавливается() на 10px. Для следующих 10 секунд анимированное значение style:x устанавливается () в значение от 10 до 100 и обратно согласно производительности системы и другим программным соображениям.
Через 3 минуты и 10 секунд воспроизведения фильма анимированное значение style:x возвращается в исходное положение (). После 3 минут и 10 секунд воспроизведения фильма в динамическом слое не существует значения style:x. Теперь для первых 3 минут фильма, эффективное значение является значением из действующего слоя. От 3:00 до 3:10, эффективное значение является значением динамического слоя. At 3:10, эффективное значение является снова значением из действующего слоя.
.
В качестве примера операции get(), рассмотрим снова кнопку выше, со статическим действующим значением style:x и динамическим значением style:x для некоторого промежутка времениОперация get() может быть выполнена, чтобы определить с помощью форматирования эффективное значение, по существу запрашивая окончательное значение компонента за пределами компонента слоя. Для размещения этого запроса компонент слоя может сделать подчиненные переходы, чтобы получить значение get(), хранящееся в отдельных слоях, и затем выбрать из доступных слоев подходящее эффективное значение согласно порядку действий спецификации HD-DVD. Таким образом, существуют две версии get()-get() слоя, которое служит для поддержки эффективного get().
Описав технологию организации стилей данных HD-DVD в слои с помощью Фиг.6, теперь перейдем к пояснению более детального описания уведомлений об изменениях, представленных теперь на Фиг.7.
Фиг.7 поясняет дополнительные аспекты 700 уведомления об изменении. Для удобства, но не для ограничения, некоторые элементы, описанные ранее, перенесены на Фиг.7 и обозначены теми же самыми номерами для ссылок.
Как описано выше, уведомляющее сообщение об изменении (например, 404) может возникнуть, когда состояние 202a DOM переходит в состояние 202b DOM. В зависимости от природы и пределов изменений, возникающих вследствие перехода из одного состояния в другое состояние, уведомление об изменениях может включать в себя различные типы информации.
В примере, показанном на Фиг.7, уведомление об изменении может указывать, что один или более элементов изменяются из-за перехода из одного состояния в другое состояние, как представлено на 702, примеры элементов показаны на 204a-b и 204x-z.
Уведомление об изменении может указывать, что один или более стилей изменяются по причине перехода из одного состояния в другое состояние, как представлено на 704. Примеры стилей показаны в 502a-c и 502x-z.
Уведомление об изменении может указывать, что один или более слоев изменяются по причине перехода из одного состояния в другое состояние, как представлено на 706. Примеры слоев показаны на 602a-n.
Линия 708 представляет собой примеры, в которых изменения в DOM выражены в одной или более set() операциях. В таких примерах, уведомление об изменении может определять новое значение стиля, как представлено в блоке 710.
Представив более детальное описание уведомлений об изменениях с помощью Фиг.7, пояснение теперь переходит к описанию последовательности операций для ответа на уведомления об изменении, представленных теперь на Фиг.8.
Фиг.8 иллюстрирует последовательность операций 800, которая может быть выполнена в качестве ответа на уведомление об изменении. Для удобства, но не для ограничения, некоторые элементы, описанные ранее, перенесены на Фиг.8 и обозначены теми же самыми номерами ссылок.
Как показано на Фиг.8, изменения в состоянии DOM, установленные в разметке таймирования (например, 112) или в сценарии (например, 114), могут вызвать уведомления об изменении (например, 404). В ответ на уведомление об изменении, инструменты могут выполнить по меньшей мере часть последовательности операций 800.
Блок 802 оценки представляет собой определение того, задает ли приходящее уведомляющее сообщение 404 об изменении операцию set() или операцию unset(). Если сообщение 404 задает операцию set(), последовательность операций 800 может пойти по ветви 804 на блок 806 оценки. Если сообщение задает операцию unset(), последовательность операций 800 может пойти по ветви 808 на блок 810.
Блок 810 представляет собой выполнение операции get(), чтобы получить значение эффективного стиля, указанного в сообщении 404.
Блок 812 оценки представляет собой определение того, позволяет ли входящее сообщение 404 одноэлементное форматирование. Если так, последовательность операций 800 может пойти по ветви 814 на блок 816, который представляет собой упорядочение реальных данных, относящихся к единственному элементу, установленному в принятом сообщении 404. После этого последовательность операций 800 может идти далее в конечное состояние 818.
От блока 812 оценки, если одноэлементное форматирование не позволяется, последовательность операций 800 может пойти по ветви 820 на блок 822, который представляет собой поиск воздействия переформатирования, заданного во входящем сообщении.
Как пример поиска эффекта форматирования, рассмотрим снова порождающий абзац, определяющий цвет фона, и подчиненный абзац, который наследует этот цвет. Если цвет фона этого абзаца изменяется, тогда любой порожденный, который наследует это измененное значение, также изменится. Таким образом, порождающему абзацу не позволено форматировать style:background Color, используя форматирование одного элемента. Знание того, позволено ли такое форматирование или нет, определяется в блоке 828 и хранится как часть конфигурации форматирующего программного обеспечения, соответствующая родительскому абзацу.
Блок 824 представляет собой установку признака или другого подходящего механизма для индикации того, что целое дерево DOM попадает под влияние переформатирования, определенного в принятом сообщении, и является, таким образом, "измененным". Потом последовательность операций 800 может перейти в конечное состояние 818.
От блока 812 оценки, если вопрос позволено или нет одноэлементное форматирование не был разрешен, то последовательность операций 800 может пойти по ветви 826 на блок 828, который представляет собой проверку текущего родительского и/или подчиненного узла в дереве. Потом последовательность операций 800 может вернуться как раз перед блоком 812 оценки, как показано на Фиг.8.
В конфигурации программного обеспечения, соответствующего некоторым элементам, хранится ссылка на родительский элемент, первый подчиненный элемент и следующий родственный элемент. Используя эти три ссылки, дерево может быть пройдено вверх и/или вниз и/или поперек по мере необходимости. Может быть пройдено все дерево или часть его для того, чтобы определить разрешено ли форматирование единого элемента.
Хотя уведомление об изменении может не определять, разрешается ли форматирование единственного элемента, уведомление об изменении может включать в себя некоторую информацию, которая сообщает о решении позволено или не позволено одноэлементное форматирование.
В качестве примера, рассмотрим родительскую кнопку, которая определяет красный цвет фона, и подчиненную кнопку, которая определяет синий цвет фона. Если подчиненная кнопка изменена, чтобы не учитывать синий цвет, и вместо этого наследовать красный цвет фона от своего родителя, тогда одноэлементное форматирование запрещено для родительского элемента, поскольку теперь изменения главного влияют на подчиненный.
В качестве другого примера, рассмотрим родительский абзац без четко определенного размера, и подчиненный промежуток, который содержит текст " Hello, World ". По умолчанию, размер этого порождающего абзаца тогда будет основан на нескольких вещах, но важным для описания является размер промежутка, содержащий глиф строки "Hello, World".
В качестве еще одного примера, рассмотрим уведомление об изменении, где подчиненный промежуток модифицирован, чтобы содержать "The Quick Brown Fox" вместо "Hello, World". Совершенно ясно, что промежуток будет больше, так как теперь в промежутке больше текста. Совершенно ясно, что родительский абзац, который первым делом сортируется по величине согласно размеру промежутка, теперь также собирается увеличиться. Таким образом, промежуток может не быть отформатирован согласно одноэлементному среднему значению в этом случае.
В общем, воздействия могут включать в себя родительские-подчиненные воздействия и подчиненно-родительские воздействия. В реализациях этих воздействий может быть много, и они не ограничиваются только примерами наследования и примерами с размерами, приведенными выше только для иллюстрации.
Возвращаясь к блоку 806 оценки, этот блок представляет собой определение того, является ли слой, указанный в сообщении 404, активным слоем в процессе переформатирования. DVD спецификация определяет, какие слои являются активными слоями или имеют приоритет в конкретных обстоятельствах. Если слой, указанный в сообщении, не является активным слоем, тогда последовательность операций 800 может пойти по ветви 830 "нет", чтобы закончиться в состоянии 818. С другой стороны, если слой, указанный в сообщении 404, не является активным слоем, тогда последовательность операций 800 может пойти по ветви 832 "да" на блок 834 оценки.
Блок 834 представляет собой определение того, установлен ли текущий проверяемый узел, чтобы унаследовать по меньшей мере некоторые из своих атрибутов от другого узла. Например, текущий узел может быть подчиненным узлом, который наследует, по меньшей мере некоторые из своих атрибутов от родительского узла. В качестве другого примера, текущий узел может быть родительским узлом, по меньшей мере один из атрибутов которого основан на атрибутах его подчиненных узлов.
В общем, сообщение об изменении, когда оно является установочным сообщением, включает в себя значение, которое устанавливается. Один специальный тип значений является 'унаследованным' значением.
От блока 834 оценки, если текущей узел не установлен/настроен наследовать от другого узла, тогда последовательность операций 800 может пойти по ветви 836 "нет" на блок 838, который представляет собой использование значения стиля, в соответствии с входящим сообщением 404. Потом последовательность операций 800 может продолжиться в конечное состояние 818.
От блока 834 оценки, если текущей узел установлен наследовать от другого узла, тогда последовательность операций 800 может пойти по ветви 840 "да" на блок 842, который представляет собой отключение одноэлементного форматирования для текущего узла, также как и для любого родительского или подчиненного узлов текущего узла. Поскольку текущий узел наследует от прочих узлов, любые изменения, возникающие вследствие переформатирования, могут стремиться к каскадированию повсюду, по меньшей мере, части дерева, и в этом случае, одноэлементное форматирование может не подойти. Далее последовательность операций 800 может продолжиться блоком 810, который был описан выше.
Если последовательность операций достигает блока 812 оценки после прохождения блока 842, тогда блок 842 отменит одноэлементное форматирование. В этом случае, последовательность операций 800 может пойти по ветви 820 на блок 822. В свою очередь, блок 822 может включать в себя установление того, насколько изменения, возникающие вследствие наследования отношений блока 834, каскадируют сквозь дерево.
Описав последовательность операций 800 для реагирования на уведомление об изменении с помощью Фиг.8, пояснение теперь переходит к описанию последовательности операций для выполнения покадрового форматирования, представленного теперь на Фиг.9.
Фиг.9 поясняет последовательность операций 900 для выполнения покадрового форматирования в ответ на тактовые сигналы. Для удобства но, не для ограничения, некоторые элементы, описанные ранее, перенесены на Фиг.9, и обозначены теми же самыми номерами ссылок.
Фиг.9 изображает примеры HD-DVD тактовых сигналов под цифрой 308. Инструменты, описываемые здесь, могут выполнить по меньшей мере некоторые из последовательности операций 900 в ответ на отдельные экземпляры тактовых сигналов. Как описывалось выше, разметка для описания сцен HD-DVD может быть представлена в виде древовидных структур, и как только тактовые сигналы происходят, инструменты могут обновить разметку и переформатировать обновленную разметку для воспроизведения и представления пользователю (например, 102 на Фиг.1).
Блок 902 представляет собой определение того, приводят ли тактовые сигналы к каким-либо изменениям состояния или стиля внутри структуры дерева, представляющего описание сцен. Если из-за тактовых сигналов не происходит изменение стиля или состояния, последовательность операций 900 может пойти по ветви 904 "нет" в конечное состояние 906. С другой стороны, если из-за тактовых сигналов происходят изменения состояния или стиля, последовательность операций 900 может пойти по ветви 908 "да" на блок 910.
Блок 910 представляет собой определение, изменилась ли какая-либо часть структуры дерева в результате изменения состояния или стиля оцененного в блоке 902. Другими словами, блок 910 может включать в себя определение того, должен ли по меньшей мере один элемент внутри дерева измениться из-за изменения состояния или стиля. Точнее говоря, блок 910 может включать в себя обход дерева для выбора данного элемента внутри дерева, подлежащего обработке, для любых изменений состояния или стиля.
Если внутри дерева нет подлежащего изменениям элемента, последовательность операций 900 может пойти по ветви 912 "нет" в конечное состояние 906. С другой стороны, если какой-либо элемент внутри дерева должен быть изменен, то последовательность операций 900 может пойти по ветви 914 "да" на блок 916, который представляет собой определение того, закончено ли прохождение дерева. Если внутри дерева не остается элементов, который нужно пройти, то последовательность операций 900 может пойти по ветви 918 "нет" в конечное состояние 906. С другой стороны, если осталось обойти какие-либо элементы внутри дерева, то последовательность операций 900 может пойти по ветви 920 "да" на блок 922.
Блок 922 представляет собой прохождение дерева, чтобы получить доступ, по меньшей мере, к одному следующему элементу, остающемуся в дереве, как текущий элемент. Блок 924 представляет собой определение или вычисление любых изменений, которые должны быть сделаны с текущим элементом. Эти изменения могут быть рассмотрены как "шаги изменения", как показано на Фиг.9. Блок 926 представляет собой выполнения любых шагов изменения над текущим элементом. Потом последовательность операций 900 может вернуться на блок 916 для контроля любых дополнительных элементов, остающихся в дереве для прохождения и обработки. Блоки 922, 924 и 926 могут быть повторены для различных элементов, содержащихся внутри данного дерева разметки.
Описав на Фиг.9 последовательность операций 900 для выполнения покадрового форматирования, пояснение теперь переходит к более детальному описанию обхода родительских и подчиненных узлов деревьев разметки, представленных теперь на Фиг.10.
Фиг.10 поясняет последовательность операций 1000 для обхода родительских и подчиненных узлов деревьев разметки. Для удобства, но не для ограничения, некоторые элементы, описанные ранее, перенесены на Фиг.10, и обозначены теми же самыми номерами ссылок.
Фиг.10 обозначает образец дерева DOM разметки описания сцен под позицией 202. Это примерное дерево 202 DOM может включать в себя произвольное число элементов, на Фиг.10 обозначенных тремя примерами 204a, 204b и 204n. При переформатировании описания сцен последовательность операций 1000 может выполнить двухпроходный процесс пересечения структуры дерева. Блок 1002 представляет собой выполнение первого прохода, тогда как блок 1004 представляет собой выполнение второго прохода.
Обращаясь более детально к первому проходу, представленному на блоке 1002, блок 1006 представляет собой пересечение данного родительского узла внутри дерева DOM. Последовательность операций 1000 может начаться с корневого узла дерева DOM (например, 204a) и оттуда пересечь дерево. Далее пересечение может пойти по родительским узлам под корневым узлом (например, 204b), который имеет под ними один или более подчиненных узлов.
Блок 1008 представляет собой создание контекста в текущем узле путем выполнения такого количества работы по переформатированию, какое возможно на текущем узле, перед тем как продолжить на подчиненных узлах этого текущего узла.
Блок 1010 представляет собой определение того, остаются ли любые дополнительные родительские узлы для обработки в дереве DOM. Если да, последовательность операций 1000 может пойти по ветви 1012 "да", чтобы вернуться на блок 1006, чтобы выбрать следующий родительский узел на дереве. В противном случае, последовательность операций 1000 может пойти по ветви 1014 "нет". Ветвь 1014 заканчивает детальную обработку для первого прохода и начинает детальную обработку для второго прохода, как показано на Фиг.10.
Обращаясь к блоку 1004 более детально, блок 1016 представляет собой пересечение дерева, с целью получить доступ к любым подчиненным узлам, находящимся под данным родительским узлом. Блок 1018 представляет собой анализ областей данных для обработки подчиненных узлов, которые находятся под данным родительским узлом.
Блок 1020 оценки представляет собой определение того, имеет ли данный родительский узел под собой какие-либо дополнительные подчиненные узлы, оставшиеся для обработки. Если это так, тогда обработка может пойти по ветви 1022 "да" обратно на блок 1016, чтобы повторить процесс со следующим подчиненным узлом. Если данный родительский узел не имеет под собой дополнительных подчиненных узлов, тогда обработка может пойти по ветви 1024 "нет" на блок 1026, который представляет собой полный анализ областей данных, относящихся к данному родительскому узлу, проанализировав области данных для всех подчиненных узлов под данным родительским узлом.
Описав последовательность операций 1000 для пересечения родительских и подчиненных узлов деревьев разметки с помощью Фиг.10, пояснение продолжается более детальным описанием примеров разметки контента и полного цикла через деревья разметки.
Таблица 2, представленная ниже, поясняет пример разделения проходов через дерево, обозначенных как Проход 1 и Проход 2.
Таблица 2
Как описано выше на Фиг.10, Проход 1 проходит вниз через родительские узлы и устанавливает контекст для подчиненных узлов. Во время Прохода 2 вверх подчиненные области данных целиком проанализированы, давая возможность областям данных родительских узлов быть также полностью проанализированными.
Вывод
Хотя вышесказанное описание представлено в контексте обработки дисков HD-DVD, следует отметить, что инструменты и технологии, описанные здесь, могут быть пригодны для обработки других типов носителей информации или для обработки типов разметки иных, нежели описаны здесь.
Хотя системы и способы были описаны на языке, определенном для структурных особенностей и/или методологических действий, должно быть понятно, что система и способ, определенные в прилагаемых формулах изобретения, не обязательно ограничены конкретными характеристиками и описанными действиями. Скорее, конкретные особенности и действия раскрыты в качестве типовых форм реализации заявленных систем и методов.
Кроме того, что касается конкретных данных и структурных схем, описанных и проиллюстрированных здесь, следует отметить, что процессы и подпроцессы, изображенные в них, могут быть выполнены в другом порядке, нежели в том, что проиллюстрирован без отклонения от духа и рамок данного описания. Также, хотя эти данные и последовательность операций описаны здесь в сочетании с некоторыми компонентами, указано, что эти данные и последовательность операций могли быть выполнены с другими компонентами без отступления от духа и рамок описанного здесь.