Область техники, к которой относится изобретение
Изобретение относится к носителю записи, такому как BD-ROM, и устройству воспроизведения и, в частности, касается способа создания субтитров путем воспроизведения цифрового потока, образованного мультиплексированием видеопотока и графического потока.
Уровень техники
Создание субтитров, реализуемое путем визуализации графических потоков, является важным способом, позволяющим людям, живущим в разных языковых регионах, воспринимать фильмы, созданные на языке, отличающемся от их родного языка. Примером известного способа создания субтитров является схема распределения памяти для пиксельного буфера на основе стандарта ETSI EN 300 743, разработанного Европейским институтом телекоммуникационных стандартов (ETSI). Пиксельный буфер - это память для временного запоминания распакованной графики, а устройство воспроизведения записывает графику в пиксельном буфере в память отображения, называемую графической плоскостью, в результате чего эта графика отображается. В схеме распределения памяти в пиксельном буфере содержится определение области, при этом часть распакованной графики, которая соответствует этой области, записывается на графическую плоскость. Например, когда в пиксельном буфере содержится субтитр «Goodbye…» и положение, и размер области определены таким образом, чтобы она включала в себя часть «Go», тогда записывается на графическую плоскость и отображается на экране часть «Go». Аналогичным образом, когда положение и размер области определены таким образом, что она включает в себя часть «Good», то на экране отображается часть «Good».
В результате многократного определения области и записи на графическую плоскость на экране постепенно отображается субтитр «Goodbye…», то есть сначала «Go», затем «Good», потом «Goodbye» и, в конце концов, весь субтитр «Goodbye…». Визуализация субтитра таким путем дает возможность реализовать эффект раскрытия субтитра шторкой.
Однако совершенно не следует рассчитывать на то, что стандарт ETSI EN 300 743 гарантирует синхронность отображения графики и изображения при высокой нагрузке на графическую плоскость в процессе записи. Графика, записанная на графическую плоскость, не сжата, и соответственно нагрузка при записи на графическую плоскость возрастает с повышением разрешающей способности графики. Размер графики, подлежащей записи на графическую плоскость, составляет до 2 мегабайт при визуализации графики с разрешением 1920х1080, предложенном в качестве стандартного разрешения для BD-ROM, и, чтобы визуализировать графику объемом до 2 мегабайт синхронно с отображением изображения, необходима более высокая пропускная способность при пересылке графических данных из пиксельного буфера на графическую плоскость. Однако требование высокой пропускной способности при пересылке данных для записи графики на графическую плоскость препятствует попыткам снижения затрат на изготовление устройства воспроизведения. Можно снизить необходимую пропускную способность при записи на графическую плоскость, если иметь устройство воспроизведения, которое всегда выполняет «рациональную запись», при которой на графическую плоскость записывается только отличие от предыдущего отображения. Однако требование к устройству воспроизведения всегда выполнять «рациональную запись» ограничивает программные средства, применяемые для устройства воспроизведения.
Как было описано выше, большая нагрузка при записи на графическую плоскость требует, чтобы устройства воспроизведения действовали с высокой пропускной способностью или выполняли рациональную запись, что приводит к ограничениям развития и совершенствования устройств воспроизведения.
Сущность изобретения
Целью настоящего изобретения является создание носителя записи, посредством которого графика может обновляться синхронно с отображением изображения даже в том случае, когда объем данных, подлежащих записи на графическую плоскость, велик.
Для достижения вышеуказанной цели предложенный пример носителя записи согласно настоящему изобретению представляет собой носитель записи, используемый для запоминания данных, причем носитель записи содержит: цифровой поток, образованный мультиплексированием видеопотока и графического потока, где видеопоток представляет движущееся изображение, выполненное из множества изображений, а графический поток включает в себя: графические данные, представляющие графику, подлежащую комбинированию с изображениями; и информацию об окне, которая задает окно для визуализации в нем графики, причем информация об окне указывает ширину, высоту и положение окна на плоскости, при этом плоскость является плоской памятью устройства воспроизведения, которое комбинирует графику с изображениями.
Благодаря заданию части плоскости, соответствующей каждому изображению, в виде окна для визуализации графики, отпадает необходимость в том, чтобы устройство воспроизведения визуализировало графику для всей плоскости, и оказывается достаточным, чтобы устройство воспроизведения визуализировало графику только в окне ограниченного размера. Поскольку в визуализации графики вне окна на плоскости нет необходимости, может быть уменьшена нагрузка на программные средства в устройстве воспроизведения.
Кроме того, благодаря установке размера окна, обеспечивающего синхронное отображение графики и изображения, автору, выполняющему авторинг, предоставляется возможность гарантировать синхронное отображение в устройстве воспроизведения любого вида даже в том случае, когда обновление графики выполняется в наиболее неблагоприятном варианте.
Кроме того, благодаря установке положения и размера окна посредством информации об окне имеется возможность регулировать положение и размер окна при авторинге, так что субтитры оказываются вне области изображения при просмотре экрана. Таким образом, видимость графики поддерживается даже тогда, когда изображение на экране изменяется во времени, и, поэтому, имеется возможность поддерживать необходимое качество фильма.
Наиболее неблагоприятный случай при обновлении графики означает случай, при котором графика обновляется в наименее эффективной операции, то есть при полном стирании и перерисовывании окна. При установке размера окна для подготовки к наиболее неблагоприятному случаю, желательно, чтобы на вышеуказанном носителе записи ширина и высота окна были установлены так, чтобы размер окна составлял 1/х плоскости, где плоскость соответствует размеру каждого изображения, а х - действительное число, базирующееся на отношении между частотой обновления окна и скоростью отображения изображения.
Благодаря такой установке размера окна пропускная способность устройства воспроизведения, которое необходимо для записи на графической плоскости, устанавливается равной фиксированному значению. В результате построения устройства воспроизведения таким образом, чтобы оно удовлетворяло указанной пропускной способности, можно реализовать синхронное отображение графики и изображения независимо от программных средств, установленных в устройстве воспроизведения.
Как было описано выше, можно представить минимальный стандарт для структуры устройства воспроизведения. Если только скорость пересылки установлена так, что она удовлетворяет минимальному стандарту, то конструкция устройства воспроизведения остается на усмотрение разработчиков. Следовательно, можно расширить возможности развития и совершенствования устройства воспроизведения.
Краткое описание чертежей
Фиг.1 - пример использования носителя записи согласно настоящему изобретению;
Фиг.2 - структура BD-ROM;
Фиг.3 - схема, иллюстрирующая структуру аудио-видеоклипа;
Фиг.4А - структура презентационного графического потока;
Фиг.4В - пакет PES, полученный после преобразования функциональных сегментов;
Фиг.5 - логическая структура, выполненная из функциональных сегментов различного вида;
Фиг.6 - связь между положением отображения субтитра и сверхкадром;
Фиг.7А - синтаксис для определения графического объекта в сегменте определения объекта (ODS);
Фиг.7В - синтаксис сегмента определения палитры (PDS);
Фиг.8А - синтаксис сегмента определения окна (WDS);
Фиг.8В - синтаксис презентационного композиционного сегмента (PCS);
Фиг.9 - пример описания отображаемого набора для ввода субтитров;
Фиг.10 - пример описания WDS и PCS в DS1;
Фиг.11 - пример описания PCS в DS2;
Фиг.12 - пример описания PCS в DS3;
Фиг.13 - пример описания отображаемого набора при выполнении включения/выключения субтитра с показом вдоль временной шкалы;
Фиг.14 - пример описания отображаемого набора при постепенном появлении/исчезновении субтитра с показом вдоль временной шкалы;
Фиг.15 - пример описания отображаемого набора при выполнении прокручивания субтитра с показом вдоль временной шкалы;
Фиг.16 - пример описания отображаемого набора при выполнении раскрывания/вытеснения субтитра шторкой с показом вдоль временной шкалы;
Фиг.17 - схема, где сравниваются два случая: окно имеет четыре графических объекта и окно имеет два графических объекта;
Фиг.18 - пример алгоритма для вычисления длительности декодирования;
Фиг.19 - блок-схема алгоритма по фиг.18;
Фиг.20А и 20В - блок-схемы алгоритма по фиг.18;
Фиг.21А - случай, где каждое окно имеет сегмент определения объекта;
Фиг.21В и 21С - временные диаграммы, показывающие правила для значений, относящихся к фиг.18;
Фиг.22А - случай, где каждое окно имеет два сегмента определения объекта;
Фиг.22В и 22С - временные диаграммы, показывающие правила для чисел, относящихся к фиг.18;
Фиг.23А - случай, где каждое из двух окон включает в себя ODS;
Фиг.23В - случай, где период (2) декодирования больше суммы периода (1) очистки и периода (31) записи;
Фиг.23С - случай, когда сумма периода (1) очистки и периода (31) записи больше периода (2) декодирования;
Фиг.24 - сдвиги во времени обновления, описанного в примере, приведенном в настоящем описании;
Фиг.25А - четыре отображаемых набора, которые описаны для того, чтобы выполнить обновление, раскрытое выше;
Фиг.25В - временная диаграмма, показывающая настройки DTS и PTS функциональных сегментов, включенных в четыре отображаемых набора;
Фиг.26 - внутренняя структура устройства воспроизведения согласно настоящему изобретению;
Фиг.27 - значения скоростей записи Rx, Rc и Rd и размеры графической плоскости 8 буфера 13 кодированных данных, объектного буфера 15 и композиционного буфера 16;
Фиг.28 - временная диаграмма, иллюстрирующая конвейерную обработку, выполняемую устройством воспроизведения;
Фиг.29 - временная диаграмма конвейерной обработки для случая, когда декодирование ODS заканчивается до завершения очистки графической плоскости;
Фиг.30 - блок-схема процесса операции загрузки функционального сегмента;
Фиг.31 - пример мультиплексирования;
Фиг.32 - способ загрузки DS10 в буфер 13 кодированных данных;
Фиг.33 - загрузка DS1, DS10 и DS20 при нормальном воспроизведении;
Фиг.34 - загрузка DS1, DS10 и DS20 при нормальном воспроизведении, как показано на фиг.33;
Фиг.35 - блок-схема, показывающая процесс, выполняемый графическим контроллером 17;
Фиг.36 - блок-схема, показывающая процесс, выполняемый графическим контроллером 17;
Фиг.37 - блок-схема, показывающая процесс, выполняемый графическим контроллером 17;
Фиг.38 - конвейерный процесс в устройстве воспроизведения на основе PTS для PDS;
Фиг.39 - схема, описывающая значение END в конвейерном процессе устройства воспроизведения;
Фиг.40 - внутренняя структура устройства воспроизведения согласно второму варианту;
Фиг.41 - схематическое представление операции считывания с и записи на графические плоскости, образующие сдвоенный буфер;
Фиг.42 - блок-схема, иллюстрирующая процесс изготовления BD-ROM согласно третьему варианту.
Наилучший способ осуществления изобретения
(Первый вариант)
Ниже разъясняется первый вариант носителя записи согласно настоящему изобретению.
На фиг.1 показан пример использования носителя записи. На чертеже BD-ROM 100 является носителем записи согласно настоящему изобретению. BD-ROM 100 используется для обеспечения системы домашнего кинотеатра, построенной на основе устройства 200 воспроизведения, телевизора 300 и дистанционного контроллера 400, данными для кинофильмов.
Носитель записи согласно настоящему изобретению изготовляется путем модификации на прикладном уровне BD-ROM. На фиг.2 показана структура BD-ROM.
На чертеже BD-ROM показан в нижней части, а дорожка на BD-ROM показана над BD-ROM. В действительности дорожка имеет на диске спиральную форму, но на чертеже она показана в виде линии. Дорожка включает в себя вводную зону, зону тома и выводную зону. Зона тома на этом чертеже имеет физический уровень, уровень файловой системы и прикладной уровень. В верхней части чертежа показан прикладной формат BD-ROM с использованием структуры каталогов. Как показано на чертеже, BD-ROM имеет каталог BDMV под корневым каталогом, причем каталог BDMV содержит файл для запоминания аудио-видеоклипа с расширением M2TS (XXX.M2TS), файл для запоминания административной информации для аудио-видеоклипа с расширением CLPI (XXX.CLPI) и файл для определения логического списка воспроизведения (PL) для аудио-видеоклипа с расширением MPLS (YYY.MPLS). Сформировав вышеописанный прикладной формат, можно изготовить носитель записи согласно настоящему изобретению. В случае, когда имеется более одного файла каждого вида, целесообразно под каталогом BDMV предусмотреть три каталога с именами STREAM, CLIPINF и PLAYLIST для запоминания файлов с одинаковым расширением в одном каталоге. В частности, файлы с расширением M2TS желательно запоминать в каталоге STREAM, файлы с расширением CLPI - в CLIPINF, а файлы с расширением MPLS - в PLAYLIST.
Ниже даны пояснения к аудио-видеоклипу (XXX.M2TS) в вышеуказанном прикладном формате.
Аудио-видеоклип (XXX.M2TS) является цифровым потоком в формате MPEG-TS (TS-транспортный поток), получаемым мультиплексированием видеопотока, по меньшей мере одного аудиопотока и потока презентационной графики. Видеопоток представляет кадры фильма, аудиопоток представляет звук фильма, а поток презентационной графики представляет субтитры фильма. На фиг.3 представлена схема, иллюстрирующая структуру аудио-видеоклипа.
Аудио-видеоклип (XXX.M2TS) построен следующим образом. Каждый видеопоток, сформированный из множества видеокадров (изображение pg1, pg2 и pg3), и аудиопоток, сформированный из множества аудиокадров (верхний ряд на чертеже), преобразуются в линию пакетов PES (второй ряд на чертеже), а затем в линию пакетов TS (третий ряд на чертеже). Поток презентационной графики (нижний ряд на чертеже) преобразуется в пакеты PES (второй ряд на чертеже), а затем в пакеты TS (третий снизу ряд на чертеже). Три линии пакетов PS мультиплексируются, в результате чего образуется аудио-видеоклип (XXX.M2TS).
На чертеже мультиплексируется только один поток презентационной графики. Однако в случае, когда BD-ROM совместим с множеством языков, поток презентационной графики мультиплексируется для каждого языка для образования аудио-видеоклипа. Образованный таким образом аудио-видеоклип делится на более чем одно расширение, по аналогии с обычными компьютерными файлами, и запоминается в зонах в BD-ROM.
Далее объясняется поток презентационной графики. На фиг.4А показана структура потока презентационной графики. Верхний ряд показывает линию пакетов TS, подлежащих мультиплексированию в аудио-видеоклип. Второй сверху ряд показывает линию пакетов PES, которая образует графический поток. Линия пакетов PES структурируется путем извлечения полезной нагрузки из пакетов TS, имеющих заранее определенный PID, и соединения извлеченных полезных нагрузок.
Третий сверху ряд показывает структуру графического потока. Графический поток сформирован из функциональных сегментов, названных презентационным композиционным сегментом (PCS), сегментом определения окна (WDS), сегментом определения палитры (PDS), сегментом определения объекта (ODS) и концом сегмента отображаемого набора (END). Среди вышеуказанных функциональных сегментов PCS называют экранным композиционным сегментом, а WDS, PDS, ODS и END называют сегментами определения. Пакет PES и каждый из функциональных сегментов однозначно соответствуют друг другу или имеют одно-многозначное соответствие. Другими словами, один функциональный сегмент либо записывается на BD-ROM после преобразования в один пакет PES, либо после деления на фрагменты и преобразования в более одного пакета PES.
На фиг.4В показан пакет PES, полученный путем преобразования функциональных сегментов. Как показано на этом чертеже, пакет PES выполнен из заголовка пакета и полезной нагрузки, причем полезная нагрузка является основным телом функционального сегмента. Заголовок пакета включает в себя DTS и PTS, соответствующий функциональному сегменту. DTS и PTS, включенные в заголовок пакета, называются далее DTS и PTS функционального сегмента.
Вышеописанные функциональные сегменты различных видов образуют логическую структуру, показанную на фиг.5. На фиг.5 показана логическая структура, сформированная из функциональных сегментов различного вида. На чертеже верхний ряд показывает сверхкадры, средний ряд показывает отображаемые наборы (DS), а нижний ряд показывает функциональные сегменты.
Каждый DS, показанный в среднем ряду, представляет собой группу функциональных сегментов, которые образуют графику для одного экрана, из числа всех многочисленных функциональных сегментов, которые образуют графический поток. Пунктирные линии на чертеже показывают DS, которому принадлежат функциональные сегменты в нижнем ряду, и показывают, что последовательность функциональных сегментов PCS, WDS, PDS, ODS и END образует один DS. Устройство воспроизведения способно создавать графику для одного экрана путем считывания функциональных сегментов, образующих указанный DS.
Сверхкадры, изображенные в верхнем ряду, указывают временные периоды, а управление памятью выполняется строго последовательно во времени и показано вдоль временной шкалы воспроизведения аудио-видеоклипа в одном сверхкадре. Один сверхкадр также представляет группу данных, которая присвоена одному и тому же периоду времени. Упомянутая здесь память является графической плоскостью, которая запоминает графику для одного экрана, и объектным буфером, который запоминает распакованные графические данные. Последовательность управления памятью означает, что флэш графической плоскости или объектный буфер не появляется в сверхкадре, а стирание и визуализация графики выполняются только в заранее определенной прямоугольной зоне на графической плоскости (здесь «флэш» указывает на стирание всего контента данных, запомненных на плоскости или в буфере). Размер и положение прямоугольной зоны фиксируются в течение одного сверхкадра. Коль скоро стирание и визуализация графики выполняются только в заранее определенной прямоугольной зоне на графической плоскости, гарантируется синхронное воспроизведение изображения и графики. Другими словами, сверхкадр - это единица на временной шкалы воспроизведения, в пределах которой гарантируется синхронное воспроизведение изображения и графики. При перемещении зоны, в которой стирается и визуализируется графика, в другое место необходимо определить точку на временной шкале для перемещения этой зоны и период, после которого эта точка обратится в новый сверхкадр. Синхронное воспроизведение не гарантируется на границе между двумя сверхкадрами.
При просмотре реального фильма один сверхкадр - это временной период, на котором субтитры отображаются в одной и той же прямоугольной зоне на экране. На фиг.6 показана взаимосвязь между положением субтитров и сверхкадров. В примере, показанном на этом чертеже, положения, в которых пять субтитров «Actually…», «I was hiding», «my feelings.», «I always», «loved you» показаны в движении в соответствии с изображением в фильме. В частности, субтитры «Actually…», «I was hiding» и «my feelings.» появляются внизу экрана, в то время как субтитры «I always» и «loved you» показаны в верхней части экрана. Положение прямоугольной зоны изменяется с учетом возможности смотреть фильм, чтобы субтитры находились вне области изображений при просмотре экрана. Временной период, в течение которого субтитры появляются в нижней части, представляет собой сверхкадр 1, а последующий временной период, в течение которого субтитры появляются в верхней части, - сверхкадр 2. Сверхкадры 1 и 2 имеют каждый свою зону, в которой визуализируются субтитры. Зона в сверхкадре 1 представляет собой окно 1, расположенное в нижней части экрана, а зона в сверхкадре 2 представляет собой окно 2, расположенное в верхней части экрана. Управление памятью осуществляется последовательно в каждом из сверхкадров 1 и 2, и соответственно визуализация субтитров в окнах 1 и 2 осуществляется синхронно с изображениями.
Далее подробно описывается отображаемый набор (DS).
Пунктирные линии hkl1 и hkl2 на фиг.5 показывают, какой функциональный сегмент в среднем ряду какому сверхкадру принадлежит. Последовательность DS: «Начало сверхкадра», «Точка получения» и «Нормальный случай» образуют сверхкадр в верхнем ряду. «Начало сверхкадра», «Точка получения» и «Нормальный случай» являются типами DS, причем порядок следования типов «Точка получения» и «Нормальный случай» не имеет значения, то есть любой из них может быть первым.
«Начало сверхкадра» - это DS, который имеет отображаемый эффект типа «Новое отображение», что указывает на начало нового сверхкадра. Благодаря этому «Начало сверхкадра» содержит все функциональные элементы, необходимые для отображения новой композиции экрана. «Начало сверхкадра» предусмотрено в месте, которое является объектом операции пропуска аудио-видеоклипа, например, часть в фильме.
«Точка получения» - это DS, который имеет эффект «обновления отображения», и по своему содержанию идентично используемому для визуализации графики с помощью DS «Начало сверхкадра», который является предыдущим DS. «Точка получения» в точке запуска сверхкадра не предусмотрена, но она содержит все функциональные сегменты, необходимые для отображения новой композиции экрана. Таким образом можно безотказно отображать графику при выполнении операции пропуска для «Точки получения». Соответственно используя «Точку получения», можно создать экран в середине сверхкадра.
«Точка получения» предусмотрена в том месте, которое может являться объектом для операции пропуска. Примером такого места является место, которое может быть задано при выполнении временного поиска. Временной поиск - это операция, выполняемая в ответ на ввод пользователем времени начала воспроизведения из точки воспроизведения, соответствующей моменту времени, заданному пользователем. Это время задается приближенно, например, с точностью 10 минут или 10 секунд, и соответственно точки начала воспроизведения обеспечиваются с указанными 10-минутным или 10-секундным интервалом. Если «Точку получения» предусмотреть в точках, с которых может начаться воспроизведение, то воспроизведение может выполняться плавно после временного поиска.
«Нормальный случай» - это DS, который имеет эффект «обновления отображения» и содержит только те элементы, которые отличаются от предыдущей композиции экрана. В частности, когда субтитры в DSv такие же, как субтитры в DSu, но экран в DSv и DSu отображается по-разному, DSv обеспечивается таким образом, чтобы он включал в себя только PCS, и это приводит к тому, что DSv будет отнесено к типу «Нормальный случай». Благодаря этому отпадает необходимость обеспечения ODS таким же контентом, как ODS в предыдущем DS, и размер данных в BD-ROM может быть уменьшен. С другой стороны, поскольку DS в варианте «Нормальный случай» содержит только отличия, нельзя создать экран, используя DS только одного типа «Нормальный случай».
Ниже раскрываются подробности сегментов определения (ODS, WDS и PDS). Сегмент определения объекта (ODS) - это функциональный сегмент, который определяет графический объект. Сначала поясним, что такое «графический объект». Ключевым моментом для продажи аудио-видеоклипа, записанного на BD-ROM, является максимально возможное разрешение, обеспечивающее высококачественное изображение, в связи с чем разрешение для графического объекта устанавливается равным 1920х1080 пикселей. Благодаря высокому разрешению, составляющему 1920х1080 пикселей, можно с высокой четкостью отображать на экране специфический стиль символа для субтитров. Что касается цвета субтитров, то длина в битах для значения индекса для каждого пикселя (цветовой контраст красного Cr, цветовой контраст синего Cb, яркость Y и прозрачность T) составляет 8 бит, и, следовательно, можно выбрать любой из 256 цветов из полного набора цветов (16777216 цветов) для субтитров. Субтитры, реализованные графическим объектом, визуализируются путем позиционирования текстов на прозрачном фоне.
Синтаксис ODS для определения графического объекта показан на фиг.7А. Сегмент ODS составлен из segment_type (тип сегмента), указывающего, что это сегмент ODS, segment_length (длина сегмента), указывающего длину данных ОDS, object_id (идентификатор объекта), уникально идентифицирующего графический объект, соответствующий ODS в сверхкадре, object_version_number (номер версии объекта), указывающий версию ODS в сверхкадре, last_insequence_flag (флаг «последний в последовательности») и object_data_fragment (фрагмент данных объекта), который является последовательностью байтов, соответствующих части или всему графическому объекту.
Идентификатор object-id служит для уникальной идентификации графического объекта, соответствующего ODS в сверхкадре. Сверхкадр графического потока содержит более одного ODS, имеющего одинаковый идентификатор. Сегмент ODS, имеющий одинаковый идентификатор, также имеет одинаковую ширину и высоту, и им присваивается общая зона в объектном буфере. После того, как один из ODS, имеющих одинаковый идентификатор, считан в общей зоне, поверх считанного ODS записывается следующий ODS, имеющий тот же самый идентификатор. Благодаря записи следующего ODS, имеющего тот же идентификатор, поверх ODS, считанного в объектный буфер, когда обрабатывается воспроизведение видеопотока, соответствующим образом обновляется и графика ODS. Ограничение размеров, состоящее в том, что ширина и высота графического объекта, имеющего тот же идентификатор, должны быть одинаковыми, действует только в течение одного сверхкадра, то есть графические объекты в других сверхкадрах могут иметь другие размеры.
Далее даются пояснения к составляющим last_insequence_flag и object_data_fragment. В некоторых случаях невозможно запомнить распакованную графику, которая образует субтитр в одном ODS, из-за ограничения на полезную нагрузку пакета PES. В указанных случаях графика расщепляется на последовательность следующих друг за другом фрагментов, причем один фрагмент устанавливается в виде object_data_fragment. Когда один графический фрагмент запоминается в более чем одном фрагменте, каждый фрагмент, кроме последнего, имеет одинаковый размер. Последний фрагмент меньше или равен по размеру предыдущим фрагментам. Сегмент ODS, несущий фрагменты, появляется в одной и той же последовательности в DS, причем конец этой последовательности указывается сегментом ODS, имеющим флаг last_insequence_flag. Хотя вышеописанный синтаксис ODS основан на предположении, что фрагменты запоминаются в виде стека из предыдущего PES, фрагменты могут формироваться в стек так, что каждый PES будет содержать пустую часть.
Далее даются пояснения к сегменту определения палитры (PDS). PDS используют для определения палитры для цветового преобразования. На фиг.7В показан синтаксис PDS. PDS составлен из segment_type (тип сегмента), указывающего, что сегмент является сегментом PDS, segment_length (длина сегмента), указывающего длину данных PDS, palette_id (идентификатор палитры), уникально идентифицирующего палитру, содержащуюся в PDS, palette_version_number (номер версии палитры), указывающего версию PDS в сверхкадре, и palette_entry_id (идентификатор записи в палитре), задающего номер записи в палитре. palette_entry_id указывает цветовой контраст красного (Cr-value), цветовой контраст синего (Cb-value), яркость (Y-value) и прозрачность (T-value).
Далее даются пояснения по поводу сегмента определения окна (WDS).
Сегмент WDS используют для определения прямоугольной зоны на графической плоскости. Как было описано выше, управление памятью является последовательным только при выполнении стирания и визуализации в определенной зоне на графической плоскости. Эта зона на графической плоскости определяется сегментом WDS и называется «окно». На фиг.8А показан синтаксис сегмента WDS. Как показано на чертеже, WDS составлен из segment_type, указывающего, что сегмент является сегментом WDS, segment_length, указывающего длину данных WDS, window_id (идентификатор окна), уникально идентифицирующего окно графической плоскости, window_horizontal_position (положение окна по горизонтали), задающего адрес по горизонтали левого верхнего пикселя окна на графической плоскости, window_vertical_position (положение окна по вертикали), задающего адрес по вертикали левого верхнего пикселя окна на графической плоскости, window_width (ширина окна), задающего ширину окна на графической плоскости, и window_height (высота окна), задающего высоту окна на графической плоскости.
Ниже даются пояснения относительно возможных диапазонов значений, которые могут принимать window_horizontal_position, window_vertical_position, window_width и window_height. Система координат для этих значений лежит внутри зоны на графической плоскости, и ее размер указан в двух измерениях посредством window_height для высоты и window_width для ширины.
Параметр window_horizontal_position задает адрес по горизонтали верхнего левого пикселя окна на графической плоскости в диапазоне от 0 до (window_width)-1. Параметр window_vertical_position задает адрес по вертикали верхнего левого пикселя окна на графической плоскости в диапазоне от 0 до (window_height)-1.
Параметр window_width задает ширину окна на графической плоскости. Заданная ширина находится в диапазоне от 1 до (video_width)-(window_horizontal_position). Кроме того, параметр window_height задает высоту окна на графической плоскости, причем заданная высота лежит в диапазоне от 1 до (video_height)-(window_vertical_position).
Положение и размер окна на графической плоскости для каждого сверхкадра определяется параметрами window_horizontal_position, window_vertical_position, window_width и window_height. Соответственно можно отрегулировать положение и размер окна при авторинге так, чтобы окно в одном сверхкадре появлялось в положении, при котором оно не загораживает изображение при просмотре фильма. Таким путем улучшается видимость субтитров. Поскольку WDS определяется для каждого сверхкадра, можно регулировать положение окна в соответствии с изображением даже в том случае, если изображение изменяется во времени. В результате в случае, когда в основное тело фильма введены субтитры, качество фильма поддерживается на максимально возможном уровне.
Далее поясняется конец сегмента отображаемого набора (END). END обеспечивает индикацию того, что передача DS завершена. END вставляется в поток непосредственно после последнего ODS в одном DS. END сформирован из segment_type, указывающего, что сегмент является сегментом END, и segment_length, указывающего длину данных END. END не содержит никаких других элементов, требующих дополнительных пояснений.
Ниже даются пояснения, касающиеся презентационного композиционного сегмента (PCS).
PCS - это функциональный сегмент, который используют для создания интерактивного отображения. На фиг.8В показан синтаксис для PCS. Как показано на этом чертеже, PCS составлен из segment_type, segment_length, composition_number (композиционный номер), composition_state (композиционное состояние), palette_update_flag (флаг обновления палитры), palette_id и информации об окне 1-m.
Параметр composition_number идентифицирует обновление графики в DS посредством значений, лежащих в диапазоне от 0 до 15. Если обновление графики существует между заголовком сверхкадра и PCS, то composition_number получает приращение с каждым обновлением графики.
Параметр composition_state указывает тип DS, в котором содержится PCS: «Нормальный случай», «Точка получения» или «Начало сверхкадра».
Параметр palette_update_flag указывает, что PCS описывает обновление отображения только для палитры. Обновление отображения только для палитры указывает, что палитра обновляется только по отношению к непосредственно предыдущей палитре. Поле palette_update_flag устанавливается равным «1», если выполняется обновление отображения только для палитры.
Параметр palette_id идентифицирует палитру, используемую при обновлении отображения только для палитры.
Информация 1-m об окне указывает, каким образом управлять каждым окном в DS, которому принадлежит данный PCS. Пунктирная линия wd1 на фиг.8В детализирует внутренний синтаксис для информации I об окне. Информация I об окне сформирована из object-id (идентификатор объекта), window_id (идентификатор окна), object_cropped_flag (флаг обрезанного объекта), object_horizontal_position (положение объекта по горизонтали), object_vertical_position (положение объекта по вертикали), и информация 1-n cropping_rectangle (обрезающий прямоугольник).
Параметр object-id идентифицирует ODS в окне в соответствии с информацией I об окне.
Параметр window_id идентифицирует окно, в которое распределен графический объект в PCS. Одному окну может быть присвоено до двух графических объектов.
Параметр object_cropped_flag используется для включения/выключения отображения обрезанного графического объекта в объектном буфере. Когда object_cropped_flag установлен в «1», в объектном буфере отображается обрезанный графический объект, а если этот флаг установлен в «0», то графический объект не отображается.
Параметр object_horizontal_position задает адрес по горизонтали левого верхнего пикселя графического объекта на графической плоскости.
Параметр object_vertical_position задет адрес по вертикали левого верхнего пикселя графического объекта на графической плоскости.
Информация 1-n cropping_rectangle представляет собой элементы, используемые, когда object_cropped_flag установлен в «1». Пунктирная линия wd2 детализирует внутренний синтаксис для информации I cropping_rectangle. Как показано пунктирной линией wd2, информация i cropping_rectangle сформирована из четырех полей: object_cropping_horizontal_position (положение по горизонтали для обрезания объекта), object_cropping_vertical_position (положение по вертикали для обрезания объекта), object_cropping_width (ширина обрезания объекта) и object_cropping_height (высота обрезания объекта).
Параметр object_cropping_horizontal_position задает адрес по горизонтали левого верхнего угла обрезающего прямоугольника, используемого во время визуализации графического объекта на графической плоскости. Обрезающий прямоугольник является обрезающей рамкой, которая используется для задания и обрезания части графического объекта, причем он соответствует области (Region) в стандарте ETSI EN 300 743.
Параметр object_cropping_vertical_position задает адрес по вертикали левого верхнего угла обрезающего прямоугольника, используемого во время визуализации графического объекта на графической плоскости.
Параметр object_cropping_width задает ширину обрезающего прямоугольника.
Параметр object_cropping_height задает высоту обрезающего прямоугольника.
Ниже подробно описан конкретный пример PCS. В этом примере субтитры «Actually…», «I was hiding», «my feelings.», как показано на фиг.6, появляются в результате их постепенного написания на графической плоскости в виде трех надписей по ходу картины. На фиг.9 показан пример, описывающий, как реализуется указанное отображение субтитров. Сверхкадр на этом чертеже включает в себя DS1 («Начало сверхкадра»), DS2 («Нормальный случай») и DS3 («Нормальный случай»). DS1 содержит сегмент WDS для задания окна, в котором отображаются субтитры, сегмент ODS - для задания строки «Actually… I was hiding my feelings.» и первый PCS. DS2 содержит второй PCS, а DS3 содержит третий PCS.
На фиг.10-12 показаны примеры WDS и PCS, содержащихся в DS. На фиг.10 показана пример PCS в DS1.
На фиг.10 параметры window_horizontal_position и window_vertical_position сегмента WDS указаны с помощью LP1, положения левого верхнего пикселя окна на графической плоскости. Параметры window_width и window_height указывают ширину и высоту окна соответственно.
Соответственно object_cropping_horizontal_position и object_cropping_vertical_position на фиг.10 указывают опорную точку ST1 обрезающего прямоугольника в системе координат, где началом является левый верхний пиксель графического объекта. Обрезающий прямоугольник представляет собой зону шириной от ST до object_cropping_width и высотой от ST до object_cropping_height (прямоугольник, показанный жирной рамкой). Обрезанный графический объект располагается в прямоугольнике, показанном пунктирной рамкой cp1 с опорной точкой в системе координат, имеющей начало в object_horizontal_position и object_vertical_position (левый верхний пиксель графического объекта) на графической плоскости. Благодаря этому субтитр «Actually…» пишется в окно на графической плоскости, а затем комбинируется с движущимся изображением и отображается на экране.
На фиг.11 показан пример PCS в DS2. Сегмент WDS в DS2 не объясняется, поскольку WDS в DS2 аналогичен WDS в DS1. Описание информации для обрезания в DS2 отличается от описания информации для обрезания, показанной на фиг.10.
На фиг.11 object_cropping_horizontal_position и object_cropping_vertical_position в информации для обрезания указывают левый верхний пиксель субтитра «I was hiding» из «Actually… I was hiding my feelings.» в объектном буфере. Параметры object_cropping_width и object_cropping_height указывают ширину и высоту прямоугольника, содержащего субтитр «I was hiding». Благодаря этому в окно на графической плоскости пишется субтитр «I was hiding», который затем компонуется с движущимся изображением и отображается на экране.
На фиг.12 показан пример PCS в DS3. Сегмент WDS в DS3 не объясняется, поскольку WDS в DS3 аналогичен WDS в DS1. Описание информации для обрезания в DS3 отличается от описания информации для обрезания, показанной на фиг.10.
На фиг.12 параметр object_cropping_horizontal_position и object_cropping_vertical_position в информации для обрезания указывают левый верхний пиксель субтитра «my feelings.» из «Actually… I was hiding my feelings.» в объектном буфере. Параметры object_cropping_width и object_cropping_height указывают ширину и высоту прямоугольника, содержащего субтитр «my feelings.». Благодаря этому в окно на графической плоскости пишется субтитр «my feelings.», который затем компонуется с движущимся изображением и отображается на экране.
Благодаря описанию DS1, DS2 и DS3, как было объяснено выше, можно достичь эффекта отображения субтитров на экране. Также можно достичь эффектов других видов, при этом протоколы описания для реализации других эффектов объясняются ниже.
Сначала объясняется протокол, описывающий эффект включения/выключения (субтитра). На фиг.13 с показом временной шкалы представлен пример описания DS, когда выполняется включение/выключение.
На чертеже x и y в окне (x,y,u,v) указывают соответственно значения window_vertical_position и window_horizontal_position, а u и v указывают соответственно значения window_width и window_height. Также на этом чертеже a и b в обрезающем прямоугольнике (a,b,c,d) указывают соответственно значения object_cropping_vertical_position и object_cropping_horizontal_position, а c и d указывают значения object_cropping_width и object_cropping_height соответственно. Отображаемые наборы DS11, DS12 и DS13 находятся на чертеже в точках t11, t12 и t13 на временной шкале воспроизведения.
DS11 в точке t11 включает в себя: PCS#0, в котором composition_state - «Начало сверхкадра», а object_cropped_flag равен «0» (no_cropping_rectangle_visible); WDS#0, имеющий оператор для окна шириной 700 и высотой 500 с (100, 100) на графической плоскости; PDS#0; ODS#0, указывающий на субтитр «Credits:»; и END.
DS12 в точке t12 включает в себя PCS#1, чье состояние composition_state - «Нормальный случай», указывает операцию обрезания графического объекта до размера 600х400 из (0,0) в объектном буфере (cropping_rectangle#0(0,0,600,400)) и позиционирует обрезанный графический объект с координатами (0,0) на графической плоскости (в окне #0(0,0)).
DS13 в точке t13 включает в себя PCS#2, чей параметр composition_state - «Нормальный случай» и где object_cropped_flag устанавливается в «0», с тем чтобы стереть обрезанный графический объект (no_cropping_rectangle_visible).
При использовании объясненных выше отображаемых наборов субтитр «Credits:» не отображается в t11, появляется в точке t12, затем снова не отображается в точке t13, в результате чего реализуется эффект его включения/выключения.
Далее объясняется протокол, описывающий эффект постепенного появления/исчезновения изображения. На фиг.14 с использованием временной шкалы показан пример описания DS, когда постепенно появляется/исчезает изображение. На чертеже отображаемые наборы DS21, DS22, DS23 и DS24 привязаны к точкам t21, t22, t23 и t24 на временной шкале воспроизведения.
DS21 в точке t21 включает в себя: PCS#0, в котором composition_state - «Начало сверхкадра», указывает операцию обрезания графического объекта до размера 600х400 из (0,0) в объектном буфере (cropping_rectangle#0(0,0,600,400)) и позиционирует обрезанный графический объект с координатами (0,0) на графической плоскости (в окне #0(0,0)); WDS#0, имеющий оператор для окна шириной 700 и высотой 500 с (100, 100) на графической плоскости; PDS#0; ODS#0, указывающий на субтитр «Fin»; и END.
DS22 в точке t22 включает в себя PCS#1, чье состояние composition_state - «Нормальный случай», и PDS#1. PDS#1 указывает тот же самый уровень Cr и Cb, что и PDS#0, но яркость, указанная сегментом PDS#1, выше, чем яркость в PDS#0.
DS23 в точке t23 включает в себя: PCS#2, чье composition_state - «Нормальный случай»; PDS#2 и END. PDS#2 указывает тот же самый уровень Cr и Cb, что и PDS#0, но яркость, указанная сегментом PDS#2, ниже, чем яркость в PDS#1.
DS24 в точке t24 включает в себя PCS, чье composition_state - «Нормальный случай», а object_cropped_flag равен «0» (no_cropping_rectangle_visible) и END.
Каждый DS задает отличный от других PDS из предыдущего DS, и соответственно, яркость графического объекта, который визуализируется с помощью более чем одного PCS в одном сверхкадре, постепенно повышается или понижается. Благодаря этому можно реализовать эффект постепенного появления/исчезновения.
Далее объясняется протокол описания для прокручивания. На фиг.15 с использованием временной шкалы показан пример описания DS, когда выполняется прокручивание. На чертеже отображаемые наборы DS31, DS32, DS33 и DS34 привязаны к точкам t31, t32, t33 и t34 на временной шкале воспроизведения.
DS31 в точке t31 включает в себя PCS#0, в котором composition_state - «Начало сверхкадра», а object_cropped_flag установлен в «0» (no_cropping_rectangle_visible); WDS#0, имеющий оператор для окна шириной 700 и высотой 500 с (100, 100) на графической плоскости; PDS#0; ODS#0, указывающий на субтитр «Credits: Company», и END.
DS32 в точке t32 включает в себя PCS#1, чье состояние composition_state - «Нормальный случай» и указывает операцию обрезания графического объекта до размера 600х400 из (0,0) в объектном буфере (cropping_rectangle#0 (0,0,600,400)) и позиционирует обрезанный графический объект с координатами (0,0) на графической плоскости (в окне#0 (0,0)). Зона размером 600х400 из (0,0) в объектном буфере включает в себя часть «Credits:» субтитра «Credits: Company», показанного в двух строках, и соответственно, часть «Credits:» появляется на графической плоскости.
DS33 в точке t33 включает в себя PCS#2, чье composition_state - «Нормальный случай», указывает операцию обрезания графического объекта до размера 600х400 из (0,100) в объектном буфере (cropping_rectangle#0 (0,100,600,400)) и позиционирует обрезанный графический объект с координатами (0,0) на графической плоскости (в окне#0 (0,0)). Зона размером 600х400 из (0,100) в объектном буфере включает в себя часть «Credits:» и часть «Company» субтитра «Credits: Company», показанного в двух строках, и соответственно части «Credits:» и «Company» появляется на графической плоскости в двух строках.
DS34 в точке t34 включает в себя PCS#3, чье composition_state - «Нормальный случай», указывает операцию обрезания графического объекта до размера 600х400 из (0,200) в объектном буфере (cropping_rectangle#0 (0,200,600,400)) и позиционирует обрезанный графический объект с координатами (0,0) на графической плоскости (в окне#0 (0,0)). Зона размером 600х400 из (0,200) в объектном буфере включает в себя часть «Company» субтитра «Credits: Company», показанного в двух строках, и соответственно часть «Company» появляется на графической плоскости. С помощью вышеприведенного описания PCS можно прокручивать субтитр в двух строках.
Наконец, дадим пояснение к протоколу описания для эффекта раскрытия/вытеснения субтитра шторкой. На фиг.16 с использованием временной шкалы показан пример описания DS, когда выполняется раскрытие/вытеснение субтитра шторкой. Отображаемые наборы DS51, DS52, DS53 и DS54 на чертеже привязаны к точкам t51, t52, t53, и t54 на временной шкале воспроизведения.
DS51 в точке t51 включает в себя: PCS#0, в котором composition_state - «Начало сверхкадра», а object_cropped_flag установлен в «0» (no_cropping_rectangle_visible); WDS#0, имеющий оператор для окна шириной 700 и высотой 500 с (100, 100) на графической плоскости; PDS#0; ODS#0, указывающий на субтитр «Fin»; и END.
DS52 в точке t52 включает в себя PCS#1, чье состояние composition_state - «Нормальный случай», указывает операцию обрезания графического объекта до размера 600х400 из (0,0) в объектном буфере (cropping_rectangle#0(0,0,600,400)) и позиционирует обрезанный графический объект с координатами (0,0) на графической плоскости (в окне #0(0,0)). Область размером 600х400 из (0,0) в объектном буфере включает в себя субтитр «Fin», и соответственно на графической плоскости появляется субтитр «Fin».
DS53 в точке t53 включает в себя PCS#2, чье composition_state - «Нормальный случай», указывает операцию обрезания графического объекта до размера 400х400 из (200,0) в объектном буфере (cropping_rectangle#0 (200,0,400,400)) и позиционирует обрезанный графический объект с координатами (200,0) на графической плоскости (в окне#0 (200,0)). Благодаря этому зона, указанная координатами (200, 0) и (400, 400) в окне, становится зоной отображения, а зона, указанная координатами (0,0) и (199, 400), становится зоной без отображения.
DS54 в точке t54 включает в себя PCS#3, чье composition_state - «Нормальный случай», указывает операцию обрезания графического объекта до размера 200х400 из (400,0) в объектном буфере (cropping_rectangle#0 (400,0,200,400)) и позиционирует обрезанный графический объект с координатами (400,0) на графической плоскости (в окне#0 (400,0)). Благодаря этому зона, указанная координатами (0,0) и (399,400), становится зоной без отображения.
В результате, когда зона без отображения становится больше, зона отображения становится меньше, и таким образом реализуется эффект раскрытия/вытеснения субтитра шторкой.
Как было описано выше, используя соответствующие скрипты, можно реализовать различные эффекты, такие как включение/отключение, постепенное появление/исчезновение, раскрытие/вытеснение и прокрутка, и, следовательно, можно создавать различные компоновки при визуализации субтитров.
Далее описываются ограничения при реализации вышеописанных эффектов. Для реализации эффекта прокручивания становятся необходимыми операции для очистки и перерисовывания окна. Если обратиться к примеру на фиг.15, то для стирания графического объекта «Credits:» в точке t32 с графической плоскости необходимо выполнить «очистку окна», а затем выполнить «перерисовывание окна» для записи нижней части «Credits:» и верхней части «Company» на графическую плоскость на интервале между t32 и t33. При условии, если этот интервал такой же, как интервал между видеокадрами, становится важной величина скорости пересылки между объектным буфером и графической плоскостью, необходимой для обеспечения эффекта прокручивания.
Рассмотрим ограничение на то, насколько большим может быть окно. Обозначим через Rc скорость пересылки между объектным буфером и графической плоскостью. Наихудший сценарий будет при выполнении очистки окна и перерисовывания окна со скоростью Rc. В этом случае придется выполнять очистку окна и перерисовывание окна с одной скоростью, равной половине Rc (Rc/2).
Чтобы очистка окна и перерисовывание окна выполнялись синхронно с видеокадрами, должно удовлетворяться уравнение, приведенное ниже:
Размер окна х Частота кадров = Rc/2.
Если частота кадров равна 29,97, то Rc выражается приведенным ниже уравнением:
Rc=Размер окна х 2 х 29,97.
При визуализации субтитров рассчитывают на размер окна по меньшей мере от 25 до 33% графической плоскости. Общее количество пикселей на графической плоскости составляет 1920 х 1080. Если положить, что длина индекса в битах на пиксель составляет 8 бит, то общая емкость графической плоскости составит 2 Мбайта (=1920 х 1080 х 8).
Положим, что размер окна составляет 1/4 общей емкости графической плоскости, тогда размер окна составит 500 Кбайт (=2 Мбайт/4). Подставив это значение в вышеприведенное уравнение, получим, что Rc составит 256 Мбайт/с (=500Кбайт х 2 х 29,97). Если скорость очистки окна и перерисовывания окна может составлять половину или четверть частоты кадров, то можно удвоить или учетверить размер окна, даже если Rc остается той же.
Поддерживая размер окна в диапазоне от 25 до 33% графической плоскости и отображая субтитры со скоростью пересылки 256 Мбайт/с, можно поддерживать синхронное отображение графики и движущегося изображения, независимо от того, какой вид эффекта отображения должен быть реализован.
Далее даются пояснения, касающиеся положения, размера и площади окна. Как объяснялось выше, положение и площадь окна в одном сверхкадре не изменяются. Положение и размер окна в течение одного сверхкадра устанавливают одинаковыми, поскольку при изменении положения и размера необходимо будет изменить целевой адрес записи на графической плоскости, а изменение адреса вызовет непроизводительные потери, которые снижают скорость пересылки от объектного буфера на графическую плоскость.
Количество графических объектов на окно ограничено. Ограничение этого количества предусмотрено для того, чтобы уменьшить непроизводительные потери при пересылке декодированного графического объекта. Здесь непроизводительные затраты возникают при установке адреса края графического объекта, и чем больше краев, тем выше уровень непроизводительных потерь.
На фиг.17 показаны примеры для сравнения: пример, в котором окно имеет четыре графических объекта, и другой пример, где окно имеет два графических объекта. Количество краев для примера с четырьмя графическими объектами в два раза больше количества краев для примера с двумя графическими объектами.
Если не ограничить количество графических объектов, невозможно оценить уровень возможных непроизводительных потерь при пересылке графики, и соответственно резко колеблется нагрузка при пересылке. С другой стороны, когда максимальное количество графических объектов в окне равно двум, скорость пересылки может быть установлена с учетом вплоть до четырехкратных непроизводительных потерь. Соответственно легче установить число для минимальной скорости пересылки.
Далее объясняется, каким образом DS, имеющий PCS и ODS, привязывается к временной шкале аудио-видеоклипа. Сверхкадр - это период времени, в течение которого управление памятью выполняется последовательно по временной шкале воспроизведения. Поскольку сверхкадр выполнен из более чем одного DS, важно то, каким образом осуществляется привязка DS к временной шкале воспроизведения аудио-видеоклипа. Временная шкала воспроизведения аудио-видеоклипа - это временная шкала для задания моментов времени для декодирования и воспроизведения каждого элемента данных изображения, которые образуют видеопоток, мультиплексированный в аудио-видеоклип. Временные диаграммы декодирования и воспроизведения на временной шкале воспроизведения выражаются с точностью 90 КГц. Сегменты DTS и PTS, которые закреплены за PCS и ODS в DS, указывают моменты времени для синхронного управления на временной шкале воспроизведения. Привязка отображаемого набора к временной шкале воспроизведения означает выполнение синхронного управления с использованием DTS и PTS, закрепленных за PCS и ODS.
Сначала поясним, каким образом выполняется синхронное управление с использованием DTS и PTS, закрепленных за ODS.
DTS с точностью 90 кГц указывает время, когда начинается декодирование ODS, а PTS указывает момент окончания декодирования.
Декодирование ODS не заканчивается сразу, а имеет некоторую продолжительность во времени. В ответ на запрос на четкое указание момента начала и момента окончания интервала декодирования DTS и PTS сегмента ODS указывают соответственно моменты начала и окончания декодирования.
Значение PTS указывает крайний срок, и, следовательно, необходимо, чтобы декодирование ODS было обязательно завершено за время, указанное PTS, после чего распакованный графический объект записывается в объектный буфер в устройстве воспроизведения.
Время начала декодирования любого ODSj в DSn указывается параметром DTS(DSn[ODS]) с точностью 90 кГц. Добавление максимальной длительности декодирования к DTS(DSn[ODS]) дает время окончания декодирования ODSj.
Когда размер ODSj составляет «SIZE(DSn[ODSj])», а скорость декодирования ODS составляет «Rd», максимальное время, необходимое для декодирования, выражается как «SIZE(DSn[ODSj])//Rd». Символ «//» указывает оператор деления с округлением после десятичной точки.
В результате преобразования максимального периода времени в число, выраженное с точностью 90 кГц, и добавления его к DTS сегмента ODSj вычисляется время окончания декодирования (90 кГц), указанное сегментом PTS.
PTS сегмента ODSj в DSn выражается следующим уравнением:
PTS(DSn[ODSj])=DTS(DSn[ODSj])+90,000x(SIZE(DSn[ODSj])//Rd).
Кроме того, необходимо, чтобы соотношение между двумя следующими друг за другом ODS, ODSj и ODSj+1, удовлетворяло следующему уравнению:
PTS(DSn[ODSj])≤DTS(DSn[ODS]j+1).
Далее поясняются установки DTS и PTS сегмента PCS.
Необходимо, чтобы PCS загружался в объектный буфер в устройстве воспроизведения до момента начала декодирования DTS(DSn[ODS1]) первого ODS (ODS1) в DSn и до момента PTS(DSn[PDS1]), когда первый PDS (PDS1) в DSn становится действующим. Соответственно необходимо установить DTS так, чтобы удовлетворялись следующие уравнения:
DTS(DSn[PCS])≤ DTS(DSn[ODS1])
DTS(DSn[PCS])≤ PTS(DSn[PDS1])
Кроме того, PTS сегмента PCS в DSn выражается следующим уравнением:
PTS(DSn[PCS])≥ DTS(DSn[PCS])+decodeduration (DSn).
Параметр «decodeduration (DSn)» указывает длительность декодирования всех графических объектов, используемых для обновления PCS. Длительность декодирования не имеет фиксированного значения, но не изменяется в зависимости от состояния устройства воспроизведения или устройства, или программных средств, установленных в устройстве воспроизведения. Если объект, используемый для создания экрана из DSn.PCSn, представляет собой DSn.PCSn.OBJ[j], то длительность декодирования (DSn) выражается временем (i), необходимым для очистки окна, длительностями декодирования (ii) для декодирования DSn.PCSn.OBJ и временем (iii), необходимым для записи DSn.PCSn.OBJ. Когда Rd и Rc установлены, интервал decode_duration (DSn) всегда одинаков. Следовательно, PTS вычисляется путем вычисления длительности указанных интервалов при авторинге.
Вычисление decode_duration выполняется на основе программы, показанной на фиг.18. На фиг.19, 20А и 20В представлены блок-схемы, схематически иллюстрирующие алгоритмы этой программы. Ниже со ссылками на эти чертежи даются пояснения к вычислению decode_duration. В блок-схеме, показанной на фиг.19, сначала вызывается функция PLANEINITIALZE (шаг S1) на фиг.19. Функция PLANEINITIALZE используется для вызова функции для вычисления периода времени, необходимого для инициализации графической плоскости для визуализации DS. На шаге S1 на фиг.19 эта функция вызывается с аргументами DSn, DSn.PCS.OBJ[0] и decode_duration.
Далее со ссылками на фиг.29А объясняется функция PLANEINITIALZE. На чертеже initialize_duration представляет собой переменную, указывающую возвращаемое значение функции PLANEINITIALZE.
Шаг S2 на фиг.20 представляет условный оператор для переключения операций в зависимости от того, указывает ли page_state в PCS в DSn на начало сверхкадра. Если page_state указывает на начало сверхкадра (DSn.PCS. page_state==epoch_start, шаг S2 = Да на фиг.18), то период времени, необходимый для очистки графической плоскости, устанавливается равным initialize_duration (шаг S3).
Если скорость пересылки Rc между объектным буфером и графической плоскостью составляет 256000000, как было описано выше, и общий размер графической плоскости установлен равным video_width*video_height, то период времени, необходимый для очистки, составит «video_width*video_height//256000000». При умножении на 90000 Гц для выражения с точностью по времени для PTS период времени, необходимый для очистки графической плоскости, составит «90000х video_width*video_height//256000000». Этот период времени добавляется к initialize_duration.
Если page_state не указывает на начало сверхкадра (шаг S2 = Нет), то период времени, необходимый для очистки окна [i], определенного WDS, добавляется к initialize_duration для всех окон (шаг S4). Если скорость Rc пересылки между объектным буфером и графической плоскостью составляет 256000000, как было описано выше, а общий размер окна [i], которое принадлежит WDS, составляет ΣSIZE(WDS).WIN[i], то период времени, необходимый для очистки, составит «ΣSIZE(WDS).WIN[i])//256000000». При умножении на 90000 Гц для выражения с точностью по времени для PTS период времени, необходимый для очистки окон, принадлежащих WDS, составит «90000хΣSIZE(WDS).WIN[i])//256000000». Этот период времени добавляется к initialize_duration, и initialize_duration возвращается в качестве результата. Функция PLANEINITIALZE указана выше.
Для переключения на шаге S5 на фиг.19 определяется, равно ли количество графических объектов в DSn 2 или 1 ((DSm.PCS.num_of_object==2, или (DSm.PCS.num_of_object==1 на фиг.18) и, если это число равно 1 (шаг S5), то время ожидания декодирования графического объекта добавляется к decode_duration (шаг S6). Вычисление времени ожидания выполняется путем вызова функции WAIT (decode_duration +=WAIT(DSn, DS.PCS.OBJ[0], decode_duration) на фиг.18). Эта функция вызывается с использованием аргументов, восстановленных для DSn.PCS.OBJ[0], decode_duration, а возвращаемым значением является wait_duration.
На фиг.20В представлена блок-схема, иллюстрирующая действие функции WAIT.
На этой блок-схеме в качестве параметра current_duration устанавливается decode_duration активизатора. Переменной, устанавливаемой для PTS графического объекта DS, является object_ definition_ready_time (время готовности для определения объекта).
Current_time является переменной, устанавливаемой на суммарное значение current_duration и DTS сегмента PCS в DSn. Если object_definition_ready_time больше сurrent_time (Да на шаге S7, если (current_time < object_ definition_ready_time)), то wait_duration в качестве возвращаемого значения устанавливается с другим значением между object_ definition_ready_time и current_time (шаг S8, wait_duration+= object_definition_ready_time - current_time). Параметр decode_duration устанавливается равным периоду времени, равному возвращаемой величине функции WAIT, добавленной к периоду времени, необходимому для перерисовывания окна (90000* (SIZE(DSn.WDS.WIN[0]))//256000000).
Приведенное выше объяснение подходит для случая, когда число графических объектов равно одному. На шаге S5 на фиг.5 оценивается, равно ли количество графических объектов двум. Если количество графических объектов в DSn больше двух (если (DSn.PCS.num_of_object==2) на фиг.18), то вызывается функция WAIT с использованием в качестве аргумента OBJ[0] в PCS, и к decode_duration добавляется возвращаемое значение (шаг S10).
На последующем шаге S11 оценивается, совпадает ли окно, которому принадлежит OBJ[0] DSn, с окном, которому принадлежит графический объект [1] (если (Dsn.OBJ[0]. window_id==Dsn.PCS.OBJ[1]. window_id). Если окно такое же, то вызывается функция WAIT с использованием OBJ[1] в качестве аргумента, и к decode_duration добавляется возвращаемое значение wait_duration (шаг S12), и к decode_duration добавляется время, необходимое для перерисовки окна, которому принадлежит OBJ[0] (90000*(SIZE(DSn.WDS.OBJ[0].window_id))//256000000) (шаг S13).
Если выясняется, что упомянутые окна различны (результат шага S11 - «отличаются»), то к decode_duration добавляется время, необходимое для перерисовывания окна, которому принадлежит OBJ[0] (90000*(SIZE(DSn.WDS.OBJ[0].window_id))//256000000) (шаг S15), то вызывается функция WAIT с использованием OBJ[1] в качестве аргумента, к decode_duration добавляется возвращаемое значение wait_duration (шаг S16), и к decode_duration добавляется время, необходимое для перерисовывания окна, которому принадлежит OBJ[1] (90000*(SIZE(DSn.WDS.OBJ[0].window_id))//256000000) (шаг S17).
Параметр decode_duration вычисляется по вышеуказанному алгоритму. Ниже объясняется конкретный способ установки PTS сегмента OCS.
На фиг.21А показан случай, когда в одном окне содержится один ODS. На фиг.21В и 21С приведены временные диаграммы, где показаны значения времени, которые относятся к фиг.18. Нижняя линия «декодирование ODS» и средняя линия «доступ к графической плоскости» на каждой диаграмме показывают две операции, которые при воспроизведении выполняются одновременно. Вышеуказанный алгоритм описывается в предположении, что эти две операции выполняются параллельно.
Доступ к графической плоскости включает в себя период (1) очистки и период (3) записи. Период (1) очистки указывает либо период времени, необходимый для очистки всей графической плоскости (90000х(размер графической плоскости//256000000)), либо период времени, необходимый для очистки всех окон на графической плоскости (Σ(900000х(размер окна[i]//256000000)).
Период (3) записи указывает период времени, необходимый для визуализации всего окна 900000х(размер окна[i]//256000000).
Кроме того, период (2) декодирования указывает период времени между DTS и PTS сегмента ODS.
Длительности периода (1) очистки, периода (2) декодирования и периода (3) записи могут изменяться в зависимости от требуемого диапазона очистки, размера ODS, подлежащего декодированию, и размера графического объекта, подлежащего записи на графическую плоскость. Для удобства точка начала периода (2) декодирования на чертеже совпадает с точкой начала периода (1) очистки.
На фиг.21В показан случай, когда период (2) декодирования длинный, а параметр decode_duration равен сумме периода (2) декодирования и периода (3) записи.
На фиг.21С показан случай, когда период (1) очистки длинный, а decode_duration равен сумме периода (1) очистки и периода (3) записи.
На фиг.22А-22С показан случай, когда в одном окне содержатся два ODS. На фиг.22В и 22С период (2) декодирования указывает общий период времени, необходимый для декодирования двух графических объектов. Аналогичным образом период (3) записи указывает общий период времени, необходимый для записи двух графических объектов на графическую плоскость.
Даже если количество ODS равно двум, decode_duration можно вычислить таким же образом, как в случае на фиг.21. Когда период (3) декодирования для декодирования двух ODS длинный, decode_duration равен сумме периода (2) декодирования и периода (3) записи, как показано на фиг.22В.
Когда период (1) очистки длинный, decode_duration равен сумме периода (1) очистки и периода (3) записи.
На фиг.23А описан случай, когда каждое из двух окон включает в себя один ODS. Как и в предыдущих случаях, когда период (1) очистки больше периода (3) декодирования для декодирования двух ODS, decode_duration равна сумме периода (1) очистки и периода (2) декодирования. Однако, когда период (1) очистки короче периода (3) декодирования, можно произвести запись в первое окно до окончания периода (2) декодирования. Соответственно decode_duration не равна ни сумме периода (1) очистки и периода (3) записи, ни сумме периода (2) декодирования и периода (3) записи.
Когда период времени, необходимый для декодирования первого ODS, равен периоду (31) записи, а период времени, необходимый для декодирования второго ODS, равен периоду (32) записи, получается показанный на фиг.23В случай, когда период (2) декодирования больше суммы периода (1) очистки и периода (31) записи. В этом случае decode_duration равен сумме периода (2) декодирования и периода (32) записи.
На фиг.23С показан случай, когда сумма периода (1) очистки и периода (31) записи больше периода (2) декодирования. В этом случае decode_duration равен сумме периода (1) очистки, периода (31) записи и периода (32) записи.
Размер графической плоскости известен из модели устройства воспроизведения заранее. Также при авторинге известны размер окна и размер и количество ODS. Соответственно, можно определить, какому сочетанию периодов времени равен decode_duration: период (1) очистки и период (3) записи, период (2) декодирования и период (3) записи, период (2) декодирования и период (32) записи или период (1) очистки, период (3) записи и период (32) записи.
Путем установки PTS сегмента ODS на основе вычисления decode_duration, объясненного выше, можно отображать графику синхронно с данными изображения с высокой точностью. Такое синхронное отображение с высокой точностью становится возможным в результате определения окна и ограничения зоны для перерисовывания в окно. Таким образом, внедрение концепции окна в среду авторинга имеет огромное значение.
Далее объясняются установки DTS и PTS для WDS в DSn. DTS для WDS может быть установлен так, чтобы удовлетворялось приведенное ниже уравнение:
DTS(DSn[WDS])≥ DTS(DSn[PCS])
С другой стороны, OTS для WDS в DSn указывает предельный срок для начала записи на графическую плоскость. Поскольку достаточно произвести запись в окно на графической плоскости, время для начала записи на графическую плоскость определяется вычитанием временного отрезка, указанного PTS для PCS, из периода времени, необходимого для записи WDS. Когда общий размер WDS равен ΣSIZE(WDS).WIN[i]), время, необходимое для очистки и перерисовывания, составит «ΣSIZE(WDS).WIN[i])//256000000». При выражении времени с точностью 90000 КГц время представляется как «90000хΣSIZE(WDS).WIN[i])//256000000».
Соответственно можно вычислить PTS для WDS с помощью следующего уравнения:
PTS(DSn[PCS])-90000xΣSIZE(WDS).WIN[i]//256000000
PTS, указанный в WDS, представляет предельный срок, то есть запись на графическую плоскость можно начинать раньше, чем указывает PTS. Другими словами, как показано на фиг.23, как только произошло декодирование ODS, подлежащего визуализации в одном из окон, можно тут же начинать запись графического объекта, полученного путем декодирования.
Как было описано выше, окно можно выделить для любой точки времени на временной шкале воспроизведения аудио-видеоклипа с использованием DTS и PTS, добавленных к WDS.
Далее со ссылками на конкретный пример, показанный на фиг.24-25, поясняется пример установок DTS и PTS в отображаемом наборе на основе этих установок. Пример относится к случаю, когда субтитры отображаются путем записи на графическую плоскость четыре раза, и выполняется обновление для отображения каждого из двух субтитров «What is blu-ray.» и «Blu-ray is everywhere.» На фиг.24 показаны сдвиги во времени обновления для данного примера. До точки t1 отображается «What», после t1 до t2 отображается «What is», а затем «What is blu-ray.» в момент t3. После появления целого предложения первого субтитра в t4 отображается второй субтитр «Blu-ray is everywhere.»
На фиг.25А показаны четыре отображаемых набора, которые описаны таким образом, чтобы выполнялось объясненное выше обновление. DS1 включает в себя PCS1.2 для управления обновлением в t1, PDS1 для управления, ODS1, соответствующий субтитру «What is blu-ray.», и END в качестве кода окончания DS1.
DS2 включает в себя PCS1.2 для управления обновлением в точке t2 и END. DS3 включает в себя PCS1.3 для управления обновлением в точке t3 и END. DS4 включает в себя PCS2 для управления обновлением в точке t2, PDS2 для преобразования цвета, ODS2, соответствующее субтитру «Blu-ray is everywhere.», и END.
Обратимся к временной диаграмме на фиг.25В, где объясняются установки DTS и PTS для каждого функционального сегмента в четырех отображаемых наборах.
Временная шкала воспроизведения на этой временной диаграмме такая же, как временная шкала на фиг.24. На временной диаграмме по фиг.25А PTS(PCS1.1), PTS(PCS1.2), PTS(PCS1.3) и PTS(PCS2.) установлены соответственно в точке t1 для отображения «What», точке t2 для отображения «What is», точке t3 для отображения «What is blu-ray.» и точке t4 для отображения «Blu-ray is everywhere.». Каждый PTS установлен, как указано выше, поскольку необходимо, чтобы управление, такое как обрезка, описанная в каждом PCS, выполнялась в точке отображения каждого субтитра.
PTS(ODS1) и PTS(ODS2) устанавливаются так, чтобы они указывали на точки, которые вычисляются вычитанием decode_duration из точек, указанных PTS(PCS1.1) и PTC(PCS2) соответственно, поскольку необходимо, чтобы PTS(PCS) был установлен так, чтобы удовлетворялась формула, приведенная ниже:
PTS(DSn[PCS])≥ DTS(DSn[PCS])- decode_duration(DSn)
На фиг.25В PTS (ODS1) устанавливается так, чтобы он указывал на точку t5, которая наступает перед точкой t4, а PTS(ODS1) устанавливается так, чтобы он указывал на точку t0, которая наступает перед точкой t1.
DTS(ODS1) и DTS(ODS2) устанавливаются так, чтобы они указывали точки, которые вычисляются вычитанием decode_duration из точек, указанных PTS(ODS1) и PTS(ODS2) соответственно, поскольку необходимо, чтобы DTS(ODS) был установлен так, чтобы удовлетворялось приведенное ниже уравнение:
PTS(DS[ODSj])=DTS(DSn[ODSj])+90000x(SIZE(DSn[ODSj])//Rd)
На фиг.25В PTS(ODS2) устанавливается так, чтобы указать точку t5, которая идет перед точкой t0, а PTS(ODS1) устанавливается так, чтобы указать точку t0, которая идет перед точкой t1. Здесь удовлетворяется соотношение, указанное уравнением DTS(ODS2)=PTS(ODS1).
Путем установки PTS сегмента ODS непосредственно после PTS предшествующего ODS, отображаемого ранее, устройство отображения выполняет операцию, в которой ODS считывается в память, с тем чтобы переписать предыдущий ODS, в результате чего появляется возможность реализации процесса воспроизведения с использованием памяти небольшого размера. При реализации такого процесса воспроизведения расширяются возможности при выборе размера памяти для устройства воспроизведения.
DTS для PCS1.1 устанавливается так, чтобы DTS(PCS1.1)=DTS(ODS1), поскольку значение для DTS для PCS1.1 может представлять любую точку до точки, указанной сегментом DTS(ODS1).
PTS для ODS1, DTS для ODS2 и PTS для PCS1.2, PCS1.3 и PCS2 устанавливаются в точке t0 таким образом, чтобы удовлетворялось соотношение, показанное в приведенном ниже уравнении:
PTS(ODS1)=DTS(ODS2)=PTS(PCS1.2)=PTS(PCS1.3)=PTS(PCS2)
Это объясняется тем, что значение для DTS для PCS1.2 и PCS1.3 могут представлять любые точки перед точкой, указанной сегментом PTS(PCS1.3), а DTS для PCS2 может представлять любую точку перед точкой, указанной сегментом DTS(PCS2).
Как объяснялось выше, можно выполнить обновление последующего PCS, как только завершено обновление предыдущего PCS, путем считывания одновременно более одного PCS.
Достаточно, чтобы DTS и PTS для PCS и DTS и PTS для ODS удовлетворяли соотношениям, указанным в вышеприведенных формулах. Соответственно, появляется возможность установки значений согласно следующим выражениям: DTS(ODS2)=PTS(ODS1) или PTS(ODS1)=DTS(ODS2)=PTS(PCS1.2)=PTS(PCS1.3)=DTS(PCS2). Благодаря таким установкам для временных меток можно отрегулировать длительность периода, в течение которого нагрузка при декодировании возрастает или потребуются дополнительные буферы. Такая регулировка расширяет возможность управления во время воспроизведения и дает дополнительные преимущества тем, кто выполняет авторинг или занимается производством устройств воспроизведения.
Структуры данных отображаемых наборов (PCS, WDS, PDS, ODS), объясненные выше, являются примером структуры класса данных, описанной на языке программирования. Авторы, выполняющие авторинг, могут получать структуры данных на BD-ROM путем описания структуры класса в соответствии с синтаксисом, обеспеченным в формате предварительной записи на дисках Blu-ray.
Ниже поясняется практический пример устройства воспроизведения согласно настоящему изобретению. На фиг.26 показана внутренняя структура устройства воспроизведения согласно настоящему изобретению. Устройство воспроизведения согласно настоящему изобретению создается индустриальным способом на основе внутренней структуры, показанной на чертеже. Устройство воспроизведения согласно настоящему изобретению построено в основном из трех частей: системы LSI, приводного устройства и микрокомпьютерной системы, причем устройство воспроизведения можно изготовить индустриальным способом, смонтировав эти три части в корпусе и на подложке устройства. Система LSI является интегральной схемой, в которой интегрированы различные блоки обработки для выполнения функции устройства воспроизведения. Устройство воспроизведения, изготовленное вышеуказанным образом, содержит привод 1 BD, буфер 2 считывания, фильтр 3 PID, транспортные буферы 4а-4с, периферийную схему 4d, видеодекодер 5, видеоплоскость 6, аудиодекодер 7, графическую плоскость 8, блок 9 CLUT, сумматор 19, графический декодер 12, буфер 13 кодированных данных, периферийную схему 13а, процессор 14 потоковой графики, объектный буфер 15, композиционный буфер 16 и графический контроллер 17.
Привод 1 BD выполняет загрузку/считывание/выталкивание диска BD-ROM и осуществляет к нему доступ.
Буфер 2 считывания является памятью FIFO для запоминания пакетов TS, считываемых с BD-ROM, согласно правилу «первым пришел - первым обслужен».
Фильтр 3 PID фильтрует более одного пакета TS, выдаваемого буфером 2 считывания. Фильтрация, выполняемая фильтром 3 PID, необходима для записи только пакетов TS, имеющих желаемый PID, в транспортные буферы 4а-4с. При выполнении фильтрации фильтром 3 PID в буферизации нет необходимости, и соответственно пакеты TS, введенные в фильтр 3 PID, записываются в транспортные буферы 4а-4с без задержки.
Транспортные буферы 4а-4с предназначены для запоминания пакетов TS, выводимых из фильтра 3 PID, согласно правилу «первым пришел - первым обслужен». Скорость, с которой пакеты TS выводятся из транспортных буферов 4а-4с, является скоростью Rx.
Периферийная схема 4d является жесткой логической схемой для преобразования пакетов TS, считываемых из транспортных буферов 4а-4с, в функциональные сегменты. Функциональные сегменты, получаемые путем такого преобразования, запоминаются в буфере 13 кодированных данных.
Видеодекодер 5 декодирует более одного пакета TS, выводимого из буфера 3 PID, в распакованное изображение и выполняет запись на видеоплоскость 6.
Видеоплоскость 6 является плоскостной памятью для движущегося изображения.
Аудиодекодер 7 декодирует пакеты TS, выводимые из буфера 3 PID, и выводит распакованные аудиоданные.
Графическая плоскость 8 является плоскостной памятью, имеющей область для одного экрана, и способна запоминать распакованную графику для одного экрана.
Блок 9 CLUT преобразует индексированный цвет распакованной графики, запомненной на графической плоскости 9, на основе значений для Y, Cr и Cb, указанных сегментом PDS.
Сумматор 10 умножает распакованную графику, над которой было выполнено цветовое преобразование блоком 9 CLUT, на значение T (прозрачность), указанное сегментом PDS, добавляет распакованные данные изображения, запомненные на видеоплоскости для каждого пикселя, а затем получает и выводит скомпонованное изображение.
Графический декодер 12 декодирует графический поток для получения распакованной графики и записывает распакованную графику в виде графического объекта на графическую плоскость 8. В результате декодирования графического потока на экране появляются субтитры и меню. Графический декодер 12 включает в себя буфер 13 кодированных данных, периферийную схему 13а, процессор 14 потоковой графики, объектный буфер 15, композиционный буфер 16 и графический контроллер 17.
Буфер 13 кодированных данных - это буфер, в котором запоминается функциональный сегмент вместе с DTS и PTS. Функциональный сегмент получается путем удаления заголовка пакета TS и заголовка пакета PRS из каждого пакета TS в транспортном потоке, запомненном в транспортном буфере 4а-4с, и последовательного расположения полезных нагрузок. PTS и DTS из удаленного заголовка пакета TS и удаленного заголовка пакета PES запоминаются после установления соответствия между пакетами PES.
Периферийная схема 13а является монтажной логикой, которая реализует пересылку между буфером 13 кодированных данных и процессором 14 потоковой графики, а также пересылку между буфером 13 кодированных данных и композиционным буфером 16. При операции пересылки, когда текущим временем является время, указанное DTS для ODS, сегмент ODS пересылается из буфера 13 кодированных данных в процессор 14 потоковой графики. Когда текущим временем является время, указанное DTS для PCS и PDS, сегменты PCS и PDS пересылаются в композиционный буфер 16.
Процессор 14 потоковой графики декодирует ODS и записывает распакованную графику индексированного цвета, полученного путем декодирования, в виде графического объекта в объектный буфер 15. Декодирование процессором 14 потоковой графики начинается в момент времени DTS, соответствующий ODS, и заканчивается в момент окончания декодирования, указанный сегментом PTS, соответствующим ODS. Скорость Rd декодирования графического объекта является скоростью вывода процессора 14 потоковой графики.
Объектный буфер 15 - это буфер, соответствующий пиксельному буферу в стандарте ETSI EN 300 743, где размещается графический объект, полученный путем декодирования того, что выполняет процессор 14 потоковой графики. Объектный буфер 15 должен быть подобран таким образом, чтобы он был в два или четыре раза больше графической плоскости 8, поскольку в случае реализации эффекта прокручивания объектный буфер 15 должен будет запомнить графический объект, в два или четыре превышающий по объему графическую плоскость.
Композиционный буфер 16 - это память, в которой находятся PCS и PDS.
Графический контроллер 17 декодирует PCS, расположенный в композиционном буфере 16, и выполняет управление на основе PCS. Временная диаграмма выполнения управления основывается на PTS, закрепленным за PCS.
Далее поясняются рекомендованные значения для скорости пересылки и размера буфера для построения фильтра 3 PID, транспортного буфера 4а-4с, графической плоскости 8, блока 9 CULT, буфера 13 кодированных данных и графического контроллера 17. На фиг.27 показаны размеры скоростей записи Rx, Rc Rd, графической плоскости 8, буфера 13 кодированных данных, объектного буфера 15 и композиционного буфера 16.
Скорость Rc пересылки между объектным буфером 15 и графической плоскостью 8 - это максимальная скорость пересылки в устройстве воспроизведения согласно настоящему изобретению, которая вычисляется как 256 Кбит/с (=500Кбайт х 2997 х 2) исходя из размера окна и частоты кадров.
В отличие от Rc скорость Rd пересылки (скорость декодирования пикселей) между процессором 14 потоковой графики и объектным буфером 15 необязательно должна обновляться с каждым циклом видеокадров, а для Rd достаточно, чтобы она составляла 1/2 или 1/4 от Rc. Соответственно Rd равна либо 128, либо 64 Мбит/с.
Скорость Rx утечки транспортного буфера между транспортным буфером 4а-4с и буфером 13 кодированных данных - это скорость пересылки ODS в сжатом состоянии. Соответственно, для скорости Rx утечки транспортного буфера достаточно иметь значение, равное скорости Rd пересылки, умноженной на степень сжатия. Если степень сжатия ODS составляет 25%, то достаточно иметь 16 Мбит/с (=64 Мбит/с х 25%).
Скорости пересылки и размеры буферов, показанные на чертеже, являются минимальными стандартными значениями, то есть можно также установить более высокие скорости и большие размеры.
В вышеуказанном структурированном устройстве воспроизведения каждый элемент выполняет операцию декодирования в конвейерной структуре.
На фиг.28 приведена временная диаграмма, иллюстрирующая конвейерную обработку, выполняемую устройством воспроизведения. 5-я строка на чертеже - это отображаемый набор на BD-ROM, 4-я строка показывает периоды считывания из PCS, WDS, PDS и ODS в буфер 13 кодированных данных. 3-я строка показывает периоды декодирования каждого ODS процессором 14 потоковой графики. 1-я строка показывает операции, которые выполняет графический контроллер 17.
DTS (время начала декодирования), закрепленное за ODS1 и ODS2, указано на чертеже точками t31 и t32 соответственно. Поскольку время начала декодирования установлено с помощью DTS, необходимо, чтобы каждый ODS считывался в буфер 13 кодированных данных. Соответственно считывание ODS1 завершается до периода декодирования dp1, в котором ODS1 декодируется в буфер 13 кодированных данных. Также считывание ODS2 завершается до периода декодирования dp2, в котором ODS2 декодируется в буфер 13 кодированных данных.
С другой стороны, PTS (время окончания декодирования), закрепленное за ODS1 и ODS2, указано на чертеже точками t32 и t33 соответственно. Декодирование ODS1 процессором 14 потоковой графики завершается в момент t32, а декодирование ODS2 завершается в момент, указанный точкой t33. Как было объяснено выше, процессор 14 потоковой графики считывает ODS в буфер 13 кодированных данных к моменту, который указывает DTS для ODS, декодирует ODS, считанный в буфер 13 кодированных данных, к моменту, указанному сегментом PTS для ODS, и записывает декодированный ODS в объектный буфер 15.
Период сd1 в 1-ой строке на чертеже указывает период, необходимый графическому контроллеру 17 для очистки графической плоскости. Также период td1 указывает период, необходимый для записи графического объекта, полученного в объектном буфере, на графическую плоскость 8. PTS для WDS указывает предельный срок начала записи, а PTS для PCS указывает окончание записи и временные характеристики для отображения. В момент времени, указанный PTS для PCS, на графической плоскости 8 получается распакованная графика для создания интерактивного экрана.
После того, как блок 9 CLUT выполнит цветовое преобразование распакованной графики, а сумматор 10 выполнит композицию распакованной графики и распакованного изображения, запомненного на видеоплоскости 6, получается комбинированное изображение.
В графическом декодере 12 процессор 14 потоковой графики непрерывно выполняет декодирование, пока графический контроллер 17 выполняет очистку графической плоскости 8. Благодаря вышеуказанной конвейерной обработке можно выполнить своевременное отображение графики.
На фиг.28 раскрывается случай, когда очистка графической плоскости заканчивается до завершения декодирования ODS. На фиг.29 показана временная диаграмма при конвейерной обработке для случая, когда декодирование ODS заканчивается до завершения очистки графической плоскости. В этом случае нельзя производить запись на графическую плоскость в момент завершения декодирования ODS. Когда очистка графической плоскости завершена, появляется возможность записать графику, полученную путем декодирования на графическую плоскость.
Далее объясняется, каким образом реализованы блок 20 управления и графический декодер 12. Блок 20 управления реализуется путем записи программы, выполняющей операцию, показанную на фиг.30, и обеспечения выполнения этой программы общим центральным процессором (CPU). Операция, выполняемая блоком 20 управления, объясняется со ссылками на фиг.30.
На фиг.30 представлена блок-схема, иллюстрирующая процесс загрузки функционального сегмента. На блок-схеме segmentK - это переменная, указывающая каждый из сегментов (PCS, WDS, PDS и ODS), который считывается при воспроизведении аудио-видеоклипа. Флаг игнорирования - это флаг для определения того, следует ли игнорировать segmentK или его надо загружать. Блок-схема имеет циклическую структуру, где сначала флаг игнорирования инициализируется со значением 0, а затем повторяются шаги S21-S24 и шаги S27-S31 для каждого segmentK (шаг S25 и шаг S26).
Шаг S21 предназначен для оценки того, является ли segmentK сегментом PCS, и если segmentK является сегментом PCS, то на шаге S27 и шаге S28 выполняются оценки.
Шаг S22 предназначен для оценки того, установлен ли флаг игнорирования в 0. Если флаг игнорирования установлен в 0, то операция переходит к шагу S23, а если флаг игнорирования установлен в 1, то операция переходит к шагу S24. Если флаг игнорирования установлен в 0 (Да на шаге S22), то на шаге S23 в буфер кодированных данных загружается segmentK.
Если флаг игнорирования установлен в 1 (Нет на шаге S22), то на шаге S24 segmentK игнорируется. Таким образом игнорируются все остальные функциональные сегменты, принадлежащие DS, поскольку на шаге S22 получен результат Нет (шаг S24).
Как было объяснено выше, решение о том, игнорировать или загружать segmentK, определяется флагом игнорирования. Шаги S27-S31, S34 и S35 предназначены для установки флага игнорирования.
На шаге S27 оценивается, является ли segment_type для segmentK «Точкой получения». Если segmentK относится к типу «Точка получения», то операция переходит к шагу S28, а если segmentK относится к типу «Начало сверхкадра» либо «Нормальный случай», то тогда операция переходит к шагу S31.
На шаге S28 оценивается, существует ли в каком-либо из буферов в графическом декодере 12 (буфер 13 кодированных данных, процессор 14 потоковой графики, объектный буфер 15 и композиционный буфер 16) предыдущий DS. Оценка на шаге S28 выполняется тогда, когда оценка на шаге S27 дает результат Да. Случай, когда предыдущий DS не существует в графическом декодере 12, указывает на случай, когда выполняется операция пропуска. В этом случае отображение начинается с DS, который представляет собой «Точку получения», и поэтому операция переходит к шагу S30 (Нет на шаге S28). На шаге S30 флаг игнорирования устанавливается в 0, и операция переходит к шагу S22.
Случай, когда в графическом декодере 12 предшествующий DS существует, указывает на случай, когда выполняется нормальное воспроизведение. В этом случае операция переходит к шагу S29 (Да на шаге S28). На шаге S29 флаг игнорирования устанавливается в 1, и операция переходит к шагу S22.
На шаге S31 оценивается, относится ли segment_type для PCS к типу «Нормальный случай». Если PCS представляет «Нормальный случай», то операция переходит к шагу S34, а если PCS относится к типу «Начало сверхкадра», то тогда флаг игнорирования на шаге S30 устанавливается в 0.
На шаге S34, как и на шаге S28, оценивается, существует ли в каком-либо из буферов в графическом декодере 12 предыдущий DS. Если предыдущий DS существует, то флаг игнорирования устанавливается в 0 (шаг S30). Если предыдущий DS не существует, то нельзя получить достаточно функциональных сегментов для комбинирования интерактивного экрана, и флаг игнорирования устанавливается в 1 (шаг S35).
В результате установки флага игнорирования вышеописанным образом функциональные сегменты, которые образуют тип «Нормальный случай», игнорируются, когда предыдущий DS не существует в графическом декодере 12.
На примере случая, когда DS мультиплексируется, как показано на фиг.31, объясним способ, каким выполняется считывание DS. В примере на фиг.31 с движущимся изображением мультиплексируются три DS. Параметр segment_type для DS1 представляет «Начало сверхкадра», segment_type для DS10 - «Точку получения», а segment_type для DS20 - «Нормальный случай».
При условии, что в аудио-видеоклипе, где мультиплексируются три DS и движущееся изображение, выполняется операция пропуска для данных pt10 изображения, как показано стрелкой im1, DS10 является ближайшим к объекту пропуска, и, следовательно, DS10 является DS, описанным в блок-схеме на фиг.30. Хотя на шаге S27 оценивается, относится ли segment_type к типу «Точка получения», флаг игнорирования устанавливается в 0, поскольку в буфере 13 кодированный данных предыдущий DS не существует, и в буфер 13 кодированных данных устройства воспроизведения загружается DS10, как показано стрелкой md1 на фиг.32. С другой стороны, в случае, когда объект пропуска находится после ds10 (стрелка am2 на фиг.31), DS20 должен быть проигнорирован, поскольку DS20 представляет отображаемый набор типа «Нормальный случай», и поскольку предыдущий DS в буфере 13 кодированных данных не существует (стрелка md2 на фиг.32).
На фиг.33 показана загрузка DS1, Ds10 и Ds20 при стандартном воспроизведении. DS1, чей segment_type для PCS представляет «Начало сверхкадра», загружается в буфер 13 кодированных данных, как есть (шаг S23). Однако, поскольку флаг игнорирования для DS10, чей segment_type для PCS представляет «Точку получения», установлен в 1 (шаг S29), функциональные сегменты, которые образуют DS10, игнорируются и не загружаются в буфер 13 кодированных данных (стрелка rd2 на фиг.34 и шаг S24). Кроме того, в буфер 13 кодированных данных загружается DS20, поскольку segment_type для PCS для DS20 представляет «Нормальный случай» (стрелка rd3 на фиг.34).
Далее объясняются операции, выполняемые графическим контроллером 17.
На фиг.35-37 показана блок-схема, иллюстрирующая операции, которые выполняет графический контроллер 17.
Шаги S41-S44 являются шагами для основной подпрограммы блок-схемы, которая ожидает появления какого-либо из событий, описанных на шагах S41-S44.
Шаг S41 необходим для оценки того, является ли текущее время воспроизведения временем, указанным DTS для PCS, и, если оценка дает результат Да, то тогда выполняется операция на шагах S45-S53.
На шаге S45 оценивается, является ли composition_state для OCS epoch_start, и, если это так, то на шаге S46 графическая плоскость 8 полностью очищается. Если оценка дает результат, отличный от epoch_start, то очищается окно, указанное с помощью параметров window_horizontal_position, window_vertical_position, window_width и window_height для WDS.
Шаг S48 выполняется после очистки, выполненной на шаге S46 или на шаге S47, и предназначен для оценки того, прошло ли время, указанное посредством PTS для любого ODSx. К моменту окончания очистки декодирование любого ODSx может быть уже завершено, поскольку очистка всей графической плоскости 8 занимает время. Таким образом, на шаге S48 оценивается, завершено ли уже декодирование любого ODSx к моменту окончания очистки. Если оценка дает результат Нет, то операция возвращается в основную подпрограмму. Если время, указанное посредством PTS любого ODSx, уже прошло, то операция выполняется на шагах S49-S51. На шаге S49 оценивается, установлен ли флаг object_crop_flag в 0, и, если флаг указывает 0, то тогда графический объект устанавливается в состояние «не отображается» (шаг S50).
Если указанный флаг на шаге S49 не равен 0, то тогда в окно на графической плоскости 8 в положение, указанное с помощью параметров object_cropping_horizontal_position и object_cropping_vertical_position, записывается объект, обрезанный на основе object_cropping_horizontal_position, object_cropping_vertical_position, cropping_width и cropping_height (шаг S51). В результате вышеописанной операции в окне визуализируется один или несколько графических объектов. На шаге 52 оценивается, прошло ли время, соответствующее PTS другого ODSy. При записи ODSx на графическую плоскость 8, если декодирование ODSy уже завершено, то ODSy становится ODSx (шаг S53), и операция переходит к шагу S49. Таким образом, операция на шагах S49-S51 также выполняется для другого ODS.
Далее со ссылками на фиг.36 объясняются шаг S42 и шаги S54-S59.
На шаге 42 оценивается, находится ли текущая точка воспроизведения в PTS для WDS. Если оценка свидетельствует о том, что текущая точка воспроизведения находится в PTS для WDS, то тогда на шаге S54 оценивается, равно или нет количество окон единице. Если оценка дает результат «два», то операция возвращается к основной подпрограмме. Если оценка дает результат «единица», то выполняется циклическая обработка на шагах S55-S59. При циклической обработке операции на шагах S55-S59 выполняются для каждого из двух графических объектов, отображаемых в окне. На шаге S57 оценивается, указывает ли object_crop_flag значение 0. Если указывается 0, то тогда графика не отображается (шаг S58).
Если 0 не указывается, то тогда в окно на графической плоскости 8 в положение, указанное с помощью параметров object_cropping_horizontal_position и object_cropping_vertical_position записывается обрезанный объект на основе object_cropping_horizontal_position, object_cropping_vertical_position, cropping_width и cropping_height (шаг S59). В результате повторения вышеописанных операций в окне воспроизводится более одного графического объекта.
На шаге S44 оценивается, находится ли текущая точка воспроизведения в PTS для PDS. Если результат оценки говорит о том, что текущая точка воспроизведения находится в PTS для PDS, то тогда на шаге S60 оценивается, установлен ли pallet_update_flag в единицу. Если это так, то в блоке CLUT устанавливается PDS, указанный параметром pallet_id (шаг S61). Если оценка дает 0, то тогда шаг S61 пропускается.
После этого блок CLUT выполняет цветовое преобразование графического объекта на графической плоскости 8 для его комбинирования с движущимся изображением (шаг S62).
Далее со ссылками на фиг.37 объясняются шаг S43 и шаги S64-S66.
На шаге 43 оценивается, находится ли текущая точка воспроизведения в PTS для ODS. Если оценка свидетельствует о том, что текущая точка воспроизведения находится в PTS для ODS, то тогда на шаге S63 оценивается, равно ли двум или нет количество окон. Если оценка дает результат «единица», то операция возвращается к основной подпрограмме. Если оценка дает результат «два», то выполняются операции на шагах S64-S66. На шаге S64 оценивается, указывает ли object_crop_flag значение 0. Если указывается 0, то тогда графика не отображается (шаг S65).
Если 0 не указывается, то тогда в окно на графической плоскости 8 в положение, указанное посредством object_cropping_horizontal_position и object_cropping_vertical_position записывается обрезанный объект на основе object_cropping_horizontal_position, object_cropping_vertical_position, cropping_width и cropping_height (шаг S66). В результате повторения вышеописанных операций графический объект воспроизводится в каждом окне.
Приведенные выше объяснения относятся к DTS и PTS для PCS и DTS и PTS для ODS, которые принадлежат DSn. DTS и PTS для PDS, а также DTS и PTS для END не объясняются. Сначала объясняются DTS и PTS для PDS, принадлежащего DSn.
Как и для PDS, принадлежащего DSn, достаточно, если PDS доступен в блоке 9 CLUT, к моменту загрузки PCS в композиционный буфер 16 (DTS(DSn[PCS])) после декодирования начальной точки первого ODS (DTS(DSn[ODS1])). Соответственно необходимо, чтобы значение PTS каждого PDS (PDS1-PDSlast) в DSn было установлено так, чтобы удовлетворялись следующие соотношения:
DTS(DSn[PCS])≤PTS(DSn[PDS1])
DTS(DSn[PDSj)≤PTS(DSn[PDSj+1])≤PTS(DSn[PDSlast])
PTS(DSn[PDSlast])≤(DTS(DSn[ODS1])
Заметим, что DTS для PDS не относится к процессу воспроизведения, DTS для ODS устанавливается на то же значение, что и PTS для PDS, чтобы удовлетворялись требования стандарта MPEG2.
Далее объясняется назначение DTS и PTS при конвейерной обработке в устройстве воспроизведения, когда DTS и PDS установлены таким образом, что они удовлетворяют вышеуказанным соотношениям. На фиг.38 показан конвейер устройства воспроизведения на основе PTS для PDS. Фиг.38 основана на фиг.26. Первая строка на фиг.38 показывает установку ODS в блоке 9 CLUT. Под первой строкой находится то же самое, что и с первой по пятую строки на фиг.26. Установка PDS1-PDSlast в блок 9 CLUT выполняется после пересылки PCS и WDS, но перед декодированием ODS1, и соответственно установка PDS1-PDSlast в блок 9 CLUT выполняется до точки, указанной DTS для ODS1, как показано стрелками up2 и up3.
Как было описано выше, установка PDS выполняется перед декодированием ODS.
Далее объясняется установка PTS END сегмента отображаемого набора в DSn. END, который принадлежит DSn, указывает конец DSn, и соответственно, необходимо, чтобы PTS для END указывал время окончания декодирования для ODS2. Время окончания декодирования указывается с помощью PTS(PTS(DSn[ODSlast])) для ODS2(ODSlast), и, следовательно, необходимо, чтобы значение PTS для END было установлено так, чтобы удовлетворялось уравнение, приведенное ниже.
DTS(DSn[END])=PTS(DSn[ODSlast])
В свете соотношения между DSn и PCS, принадлежащего DSn+1, PCS в DSn загружается в композиционный буфер 16 до момента загрузки первого ODS (ODS1) и, следовательно, PTS для END должен идти после момента загрузки PCS в DSn и перед моментом загрузки PCS, принадлежащего DSn+1. Соответственно необходимо, чтобы PTS для END удовлетворял соотношению, приведенному ниже
DTS(DSn[PCS])≤PTS(DSn[END])≤DTS(DSn+1[PCS])
С другой стороны, момент загрузки первого ODS (ODS1) следует до момента загрузки последнего PDS (PDSlast) и, следовательно, PTS для END (PTS(DSn[END])) должен следовать после момента загрузки PDS, принадлежащего DSn (PTS(DSn[PDSlast])). Соответственно необходимо, чтобы PTS для END удовлетворял соотношению, приведенному ниже
PTS(DSn[PDSlast])≤PTS(DSn[END])
Далее даются объяснения по поводу значения PTS для END при конвейерной обработке, выполняемой устройством воспроизведения. Схема на фиг.39 описывает значение END в конвейерном процессе в устройстве воспроизведения. Фиг.39 построена на основе фиг.26, причем каждый ряд на фиг.39 по существу такой же, как на фиг.26, за исключением первого ряда на фиг.39, который показывает содержимое композиционного буфера 16. Кроме того, на фиг.39 показаны два отображаемых набора DSn и DSn+1. ODSlast в DSn является последним ODSn из A-ODS, и соответственно точка, указанная PTS для END, находится перед DTS для PCS в DSn+1.
С помощью PTS для END можно определить, когда завершится загрузка ODS в DSn во время воспроизведения.
Заметим, что хотя DTS для END не относится к текущему воспроизведению, DTS для END установлен на то же самое значение, что и PTS для END, чтобы удовлетворять требованиям стандарта MPEG2.
Как было описано выше, часть графической плоскости задана в виде окна для отображения графики согласно настоящему варианту, и, следовательно, устройство воспроизведения не должно визуализировать графику для всей плоскости. Устройство воспроизведения может визуализировать графику только для окна заранее определенного размера, например, составляющего от 25 до 33% от графической плоскости. Поскольку визуализация графики вне окна не является обязательной, нагрузка на программные средства в устройстве воспроизведения уменьшается.
Даже в самом неблагоприятном случае, когда обновление графики выполняется, например, на 1/4 графической плоскости, графику можно отображать синхронно с изображением с помощью устройства воспроизведения, выполняющего запись на графическую плоскость при заранее определенной скорости пересылки, такой как 256 Мбит/с, и посредством установки размера окна таким образом, чтобы гарантировать отображение синхронно с изображением.
Таким образом, можно реализовать отображение субтитров с высоким разрешением для различных устройств воспроизведения, поскольку синхронное отображение легко обеспечивается.
[Второй вариант]
В первом варианте размер окна устанавливается равным 1/4 от всей графической плоскости, а скорость Rc записи на графическую плоскость устанавливается равной 256 Мбит/с, с тем чтобы обновлять графику с каждым видеокадром. Кроме того, при установлении частоты обновления, равной 1/2 или 1/4 от частоты видеокадров, появляется возможность обновления графики большего размера. Однако, когда частота обновления составляет 1/2 или 1/4 частоты видеокадров, для записи на графическую плоскость тратятся 2 или 4 кадра. Когда предусмотрена одна графическая плоскость, процесс записи графики в течение 2 или 4 кадров, во время которых записывается графика, становится видимым пользователю. В таком случае не всегда можно эффективно реализовать эффект отображения, такой как мгновенное переключение с одной графики на более крупную графику. Поэтому во втором варианте предусмотрены две графические плоскости. На фиг.40 показана внутренняя структура устройства воспроизведения согласно второму варианту. Устройство воспроизведения на фиг.40 отличается новизной по сравнению с устройством воспроизведения по фиг.24 и 25, состоящей в том, что устройство воспроизведения на фиг.40 имеет две графические плоскости (на чертеже это графическая плоскость 81 и графическая плоскость 82), причем эти две графические плоскости образуют сдвоенный буфер. Соответственно можно производить запись на одну из графических плоскостей, выполняя считывание с другой из них. Кроме того, согласно второму варианту графический контроллер 17 выполняет переключение графической плоскости, которая считывается в точке, указанной PTS для PCS.
На фиг.41 схематически показана операция считывания с и записи на графические плоскости, которые образуют сдвоенный буфер. Верхний ряд показывает содержимое графической плоскости 81, а нижний ряд показывает содержимое графической плоскости 82. Покадровое содержимое обеих графических плоскостей показано с первого кадра по пятый кадр (слева направо). Намеченным участком считывания является часть графических плоскостей 81 и 82 для каждого кадра, которые обведены толстой линией. На чертеже на графической плоскости 81 содержится знак лица, который должен быть заменен знаком солнца, находящимся в объектном буфере 15. Размер знака солнца составляет 4 Мбайта, что является максимальным размером объектного буфера 15.
Для записи знака солнца на графическую плоскость 82 со скоростью записи на графическую плоскость (Rc=256 Мбит/с) до завершения записи потребуются четыре кадра, причем в течение первого кадра на графическую плоскость записывается только 1/4 знака солнца, 2/4 этого знака записывается в течение второго кадра и 3/4 в течение третьего кадра. Так как для отображения на экране намечена графическая плоскость 81, процесс записи знака солнца на графическую плоскость пользователю не виден. На пятом кадре, когда отображение переключается на графическую плоскость 82, пользователю становится видимой графическая плоскость 82. Таким образом завершается переключение со знака лица на знак солнца.
Как было описано выше, согласно второму варианту можно переключать отображение на экране на другую графику сразу даже в том случае, когда на графическую плоскость записывается графика больших размеров для четырех кадров, и, следовательно, этот вариант удобен при отображении, например, состава исполнителей, краткого содержания кинофильма или предупреждения сразу во весь экран.
[Третий вариант]
Третий вариант относится к процессу изготовления BD-ROM. На фиг.42 представлена блок-схема, иллюстрирующая процесс изготовления BD-ROM согласно третьему варианту.
Изготовление BD-ROM включает в себя шаг S201 изготовления материала для создания материала и записи кинофильмов и звука, шаг S202 авторинга для создания прикладного формата с использованием устройства авторинга и шаг S203 штампования для изготовления мастер-диска BD-ROM и штампования для финишной обработки BD-ROM.
Шаг авторинга BD-ROM включает в себя шаги S204-S209, описанные ниже.
На шаге S204 описывается WDS, чтобы определить окно, в котором отображаются субтитры, а на шаге S205 в качестве одного сверхкадра устанавливается период времени, в течение которого определяется окно, появляющееся в том же положении и с тем же размером, а также описывается PCS для каждого сверхкадра.
После получения OCS вышеуказанным образом графика в виде материала для субтитров преобразуется в ODS, и получают отображаемый набор для комбинирования ODS с PCS, WDS и PDS на шаге S206. Затем на шаге S207 каждый функциональный сегмент в отображаемом наборе разделяется на пакеты PES, и получается графический поток путем закрепления временной метки.
Наконец, на шаге S208 создается аудио-видеоклип путем мультиплексирования графического потока с видеопотоком и аудиопотоком, которые создаются отдельно.
После получения аудио-видеоклипа создание прикладного формата завершается путем настройки аудио-видеоклипа в формат BD-ROM.
[Другие вопросы]
В приведенных выше объяснениях не показаны все варианты, соответствующие настоящему изобретению. Настоящее изобретение также можно реализовать, используя модифицированные примеры, показанные ниже. Изобретения, описанные в формуле изобретения настоящей заявки, включают в себя вышеописанные варианты, а также расширения или обобщения модифицированных примеров. Хотя степень расширения и обобщения базируется на технических характеристиках современного уровня техники в данной области техники на момент подачи заявки, изобретения согласно формуле изобретения настоящей заявки отражают средства для решения технических проблем для известного уровня техники, и, следовательно, объем изобретения не выходит за рамки технического объема, который специалисты в данной области техники признают в качестве средства для решения упомянутых технических проблем известного уровня техники. Таким образом, изобретения согласно формуле изобретения настоящей заявке по существу соответствуют описаниям подробностей данного изобретения.
(1) При объяснениях всех вышеописанных вариантов используется диск типа BD-ROM. Однако характеристики настоящего изобретения заложены в графическом потоке, который записывается на носитель, причем указанные характеристики не зависят от физических свойств BD-ROM. Настоящее изобретение может быть реализовано с любым носителем записи, способным запоминать графический поток. Примеры такого носителя записи включают в себя оптические диски, такие как DVD-ROM, DVD-RAM, DVD-RW, DVD-R, DVD+RW, DVD+R, CD-R и CD-RW, магнитные оптические диски, такие как PD и MO, карты полупроводниковой памяти, такие как компактная флэш-карта, карта Smart Media, карта памяти (цифрового аппарата), мультимедийная карта и карта PCM-CIA, а также магнитные диски, такие как гибкий диск, SuperDisk, Zip и CLIK!, и накопители со сменными жесткими дисками, такие как ORB, Jaz, SparQ, SyJet, EZFley и микродисковод вдобавок к встроенным жестким дискам.
(2) Описанное во всех вышеуказанных вариантах устройство воспроизведения декодирует аудио-видеоклип, записанный на BD-ROM, и выводит декодированный аудио-видеоклип на телевизионный приемник. Однако настоящее изобретение можно также реализовать с помощью устройства воспроизведения, которое включает в себя только накопитель BD-ROM и телевизионный приемник, снабженный другими элементами. В этом случае устройство воспроизведения и телевизионный приемник могут быть соединены через IEEE1394 для создания домашней сети. Кроме того, хотя устройство воспроизведения в этих вариантах используется путем подсоединения к телевизионному приемнику, устройство воспроизведения может находиться в едином устройстве, состоящем из телевизионного приемника и устройства воспроизведения. Кроме того, на практике можно применить автономную интегральную схему LSI, которая выполняет существенную часть обработки в устройстве воспроизведения по каждому варианту. Указанное устройство воспроизведения и LSI описаны в настоящем описании, и, следовательно, изготовление устройства воспроизведения на основе внутренней структуры устройства воспроизведения согласно первому варианту является реализацией настоящего изобретения, независимо от того, какой из рабочих примеров рассматривается. Кроме того, реализацией настоящего изобретения также считаются его передача (независимо от того, в качестве подарка или с целью получения прибыли), предоставление взаймы и импорт устройства воспроизведения. Также реализацией настоящего изобретения считается предложение о такой передаче или предоставлении взаймы/ направленное любым пользователям путем уличной рекламы и распространения проспекта.
(3) Обработка информации, выполняемая программой, которая показана на блок-схемах, реализуется с использованием аппаратных ресурсов, и соответственно программа, операции которой показаны на каждой блок-схеме, сама по себе должна рассматриваться как изобретение. Хотя во всех вышеуказанных вариантах программа согласно настоящему изобретению описывается как встроенная в устройство воспроизведения, программа согласно первому варианту может быть реализована автономно. Примеры автономной реализации программы включают в себя: (i) создание программ, (ii) передачу программ в качестве подарка или за деньги, (iii) предоставление программ взаймы, (iv) импорт программ, (v) обеспечение программами всех желающих через линию интерактивной электронной связи и (vi) предложение передачи и предоставления взаймы любым пользователям через уличную рекламу или распространение проспекта.
Временные компоненты на шагах, которые выполняются в последовательном порядке в каждой блок-схеме, являются существенными характеристиками настоящего изобретения, и ясно, что процесс, показанный на каждой блок-схеме, раскрывает способ воспроизведения. Реализацией способа записи согласно настоящему изобретению является выполнение процессов, показанных на блок-схемах, путем выполнения операций последовательно на каждом шаге для достижения цели настоящего изобретения и реализация эффектов.
(5) При воспроизведении на BD-ROM желательно к каждому пакету, образующему аудио-видеоклип, добавить заголовок расширения. Заголовок расширения представляет собой данные размером 4 байта, называемые TP_extra_header, который включает в себя arrival_time_stamp и copy_permission_indicator. Пакеты TS, имеющие TP_extra_header (далее называются «пакеты TS с EX») группируются по 32 пакета и записываются в 3 сектора. Группа, включающая в себя 32 пакета TS с EX, имеет 6144 байта (=32х192), с тем же самым размером каждая, что и размер 3 секторов, то есть 6144 байта (=2048х3). Группа из 32 пакетов TS с EX, запомненная в 3 секторах, называется выровненным блоком.
Когда устройство воспроизведения используют в домашней сети, соединенной через IEEE1394, устройство воспроизведения передает выровненный блок в следующей процедуре передачи. Отправитель получает TP_extra_header от каждого из 32 пакетов TS с EX, входящих в выровненный блок, и выводит основное тело пакетов TS после декодирования на основе стандарта DTCP. При выводе пакетов TS между любыми двумя последовательными пакетами TS вставляют изохронные пакеты. Точками вставки являются места, определяемые на основе времени, указанного меткой arrival_time_stamp в TP_extra_header. Вместе с выводом пакетов TS устройство воспроизведения выводит DTCP_descriptor. DTCP_descriptor указывает настройки для разрешения копирования. Благодаря описанию DTCP_descriptor, указывающему на запрещение копирования, пакеты TS не записываются другими устройствами при использовании в домашней сети, соединенной посредством IEEE1394.
(6) Цифровой поток в вышеописанных вариантах является аудио-видеоклипом. Однако цифровой поток может представлять собой видеообъект (VOB) в стандарте DVD-Video или стандарт записи DVD-Video Recording. VOB является программным потоком на основе стандарта ISO/IEC13818-1, получаемым путем мультиплексирования видеопотока и аудиопотока. Кроме того, видеопоток в аудио-видеоклипе также может быть основан на стандарте MPEG4 или WMV. К тому же аудиопоток может быть основан на стандарте Linear-PCM, Dolby-AC3, MP3, MPEG-AAC или DTS.
(7) Кинофильм в вышеописанных вариантах может быть получен путем кодирования аналоговых сигналов изображения, передаваемых посредством аналогового вещания, или может представлять собой потоковые данные, образуемые транспортным потоком, передаваемым посредством цифрового вещания.
Контент также можно получить путем кодирования аналоговых или цифровых сигналов изображения, которые записаны на видеоленте. Кроме того, контент можно также получить путем кодирования аналоговых или цифровых сигналов изображения, непосредственно загружаемых из видеокамеры. Кроме того, контент может представлять собой цифровой продукт, доставляемый дистрибутивным сервером.
(8) Графический объект в первом и втором вариантах представляет собой данные растрового типа, которые кодируются на основе кодирования с ограничением длины поля записи. Кодирование с ограничением длины поля записи принято для сжатия и кодирования графического объекта потому, что кодирование с ограничением длины поля записи лучше всего подходит для сжатия и распаковки субтитров. Субтитры отличаются тем, что их длина в горизонтальном направлении относительно велика, и соответственно благодаря использованию кодирования с ограничением длины поля записи достигается высокая степень сжатия. Вдобавок, кодирование с ограничением длины поля записи целесообразно использовать для создания программных средств декодирования, поскольку снижается нагрузка при распаковке. Кроме того, для совместного использования структуры устройства для декодирования субтитров и графического объекта для субтитров используется тот же самый способ сжатия/распаковки, что и для графического объекта. Однако использование кодирования с ограничением длины поля записи не является существенным для настоящего изобретения, и графический объект может представлять собой данные PNG (переносимая сетевая графика). Кроме того, необязательно, чтобы графический объект представлял собой данные растрового типа, а может представлять собой векторные данные. Вдобавок, графический объект может являться прозрачной графикой.
(9) Объектом для эффекта отображения посредством PCS может быть графика для субтитров, выбранных на основе языковой настройки устройства воспроизведения. Реализация такого отображения имеет большое практическое значение, поскольку появляется возможность реализации эффекта, который реализуется самим движущимся изображением в стандартном DVD с помощью графики субтитров, отображенной в соответствии с языковой настройкой устройства воспроизведения.
(10) Объектом для эффекта отображения посредством PCS может быть графика для субтитров, выбранных на основе дисплейной настройки устройства воспроизведения. В частности, на BD-ROM записывается графика для различных режимов отображения, таких как широкоформатный, автопанорамный и Letterbox (режим конверта), а устройство воспроизведения выбирает любую из записанных настроек на основе настройки для телевизионного приемника, к которому подсоединено устройство воспроизведения. В этом случае создается эффект воспроизведения на основе PCS для графики субтитров, отображаемой в соответствии с настройкой отображения, и субтитры выглядят более выразительно и профессионально. Реализация такого отображения имеет большую практическую ценность, поскольку появляется возможность реализовать эффект, аналогичный эффекту, реализуемому в самом движущемся изображении в стандартном DVD, посредством графики субтитров, отображаемой в соответствии с дисплейной настройкой для устройства воспроизведения.
(11) В первом варианте размер окна устанавливается равным 25% от всей графической плоскости, чтобы восстановить скорость Rc записи на графическую плоскость равной скорости, с которой выполняется очистка графической плоскости и перерисовывание в одном кадре. Однако Rc может быть установлена так, что очистка и перерисовывание завершаются в течение периода вертикальной повторной трассировки. Если период вертикальной повторной трассировки составляет 25% от 1/29,93 секунд, то Rc составит 1 Гбит/с. Установка Rc таким образом имеет большое практическое значение, поскольку это позволяет отображать графику более плавно.
Кроме того, можно также выполнять запись синхронно со строчным сканированием вдобавок к записи в течение периода вертикальной повторной трассировки. Благодаря этому можно отображать графику более плавно даже тогда, когда скорость Rc записи составляет 256 Мбит/с.
(12) В вышеуказанных вариантах графическая плоскость установлена на устройстве воспроизведения. Однако на устройстве воспроизведения можно также установить строчный буфер для запоминания распакованных пикселей для строки вместо их запоминания для графической плоскости. Преобразование в сигналы изображения выполняется построчно, и, поэтому, преобразование в сигналы изображения может выполняться с использованием автономного строчного буфера.
(13) В вышеописанном варианте даны пояснения, где в качестве примеров графики взяты текстовые субтитры для кинофильма. Однако графика может включать в себя, к примеру, комбинацию устройств, символов и цветов, которые образуют торговую марку, национальный герб, национальный флаг, национальную эмблему, символ и большую государственную печать для надзора или утверждения, которую используют федеральное правительство, а также герб, флаг или эмблему международной организации, или знак страны происхождения конкретного товара.
(14) В первом варианте окно для визуализации субтитров задается либо на верхней стороне экрана, либо в его нижней части, в предположении, что субтитры пишутся горизонтально. Однако окно можно определить таким образом, чтобы оно появлялось в левой или правой части экрана, чтобы отображать субтитры на экране слева и справа. В этом варианте можно изменить направление текста и отображать субтитры вертикально.
(15) Аудио-видеоклип в вышеописанных вариантах является кинофильмом. Однако аудио-видеоклип можно также использовать для караоке. В этом случае PCS может реализовать эффект отображения таким образом, что в ходе песни будет изменяться свет субтитров.
Ссылочные позиции
1 - дисковод для BD дисков
2 - буфер считывания
3 - фильтр PID
4 - буфер TB
5 - видеодекодер
6 - видеоплоскость
7 - аудиодекодер
8 - графическая плоскость
9 - блок CULT
10 - сумматор
12 - графический декодер
13 - буфер кодированных данных
14 - процессор потоковой графики
16 - композиционный буфер
17 - графический контроллер
200 - устройство воспроизведения
300 - телевизионный приемник
400 - удаленный контроллер
Промышленная применимость
Носитель записи и устройство записи согласно настоящему изобретению способны отображать субтитры с эффектом отображения. Соответственно можно повышать цену за кинофильмы, поставляемые на рынок, и активизировать рынки для фильмов и продуктов широкого потребления. Таким образом, носитель записи и устройство записи согласно настоящему изобретению имеют высокую промышленную применимость, например в киноиндустрии и индустрии товаров широкого потребления.
Предложены устройства и способы записи и воспроизведения и носитель записи. Устройство воспроизведения содержит блок считывания, процессор, буфер объектов, память плоскости и контроллер. Блок считывания считывает с носителя записи графический поток, содержащий информацию определения окна. Процессор декодирует графические данные, которые затем сохраняются в буфере. Контроллер визуализирует в области окна графические данные, если область окна является частью памяти плоскости, и не визуализирует графические данные вне этой области. Техническим результатом является уменьшение нагрузки на программные средства в устройстве воспроизведения. 5 н.п. ф-лы, 42 ил.
1. Устройство воспроизведения, содержащее:
блок считывания, выполненный с возможностью считывания с носителя записи графического потока, включающего в себя графические данные и информацию определения окна, указывающую прямоугольную область;
процессор, выполненный с возможностью декодирования графических данных,
буфер объектов, выполненный с возможностью хранения декодированных графических данных;
память плоскости; и
контроллер, выполненный с возможностью визуализации в прямоугольной области декодированных графических данных, хранящихся в буфере объектов, в случае, если прямоугольная область является частью памяти плоскости, и невыполнения визуализации декодированных графических данных вне прямоугольной области.
2. Способ воспроизведения, содержащий этапы, на которых:
считывают с носителя записи графический поток, включающий в себя графические данные и информацию определения окна, указывающую прямоугольную область;
декодируют графические данные, сохраняют декодированные графические данные в буфере объектов;
визуализируют хранящиеся в буфере объектов декодированные графические данные в памяти плоскости и,
если прямоугольная область является частью памяти плоскости, визуализируют хранящиеся в буфере объектов декодированные графические данные в прямоугольной области и не выполняют визуализацию декодированных графических данных вне прямоугольной области.
3. Носитель записи, на котором записан графический поток, предназначенный для воспроизведения с помощью устройства воспроизведения, причем графический поток включает в себя графические данные и информацию определения окна, указывающую прямоугольную область, а устройство воспроизведения включает в себя процессор, буфер объектов, память плоскости и контроллер, причем
графические данные декодируются процессором;
декодированные графические данные сохраняются в буфере объектов;
хранящиеся в буфере объектов декодированные графические данные визуализируются контроллером в памяти плоскости и,
если прямоугольная область является частью памяти плоскости, визуализируют хранящиеся в буфере объектов декодированные графические данные в прямоугольной области и не выполняют визуализацию декодированных графических данных вне прямоугольной области.
4. Устройство записи, содержащее блок записи, выполненный с возможностью записи графического потока на носитель записи, причем графический поток включает в себя графические данные и информацию определения окна, указывающую прямоугольную область, и предназначен для воспроизведения с помощью устройства воспроизведения, включающего в себя процессор, буфер объектов, память плоскости и контроллер, причем
графические данные декодируются процессором;
декодированные графические данные сохраняются в буфере объектов;
хранящиеся в буфере объектов декодированные графические данные визуализируются контроллером в памяти плоскости и,
если прямоугольная область является частью памяти плоскости, визуализируют хранящиеся в буфере объектов декодированные графические данные в прямоугольной области и не выполняют визуализацию декодированных графических данных вне прямоугольной области.
5. Способ записи, содержащий этапы записи графического потока на носитель записи, причем графический поток включает в себя графические данные и информацию определения окна, указывающую прямоугольную область, при этом
графический поток предназначен для воспроизведения с помощью устройства воспроизведения, включающего в себя процессор, буфер объектов, память плоскости и контроллер,
графические данные декодируются процессором;
декодированные графические данные сохраняются в буфере объектов;
хранящиеся в буфере объектов декодированные графические данные визуализируются контроллером в памяти плоскости и,
если прямоугольная область является частью памяти плоскости, визуализируют хранящиеся в буфере объектов декодированные графические данные в прямоугольной области и не выполняют визуализацию декодированных графических данных вне прямоугольной области.
WO 9619077 A1, 20.06.1996 | |||
US 2001026561 A1, 04.10.2001 | |||
US 2002196467 A1, 26.12.2002 | |||
ЗВУКОВИЗУАЛЬНОЕ ПРЕДСТАВЛЕНИЕ С НАДПИСЯМИ НА НЕМ, СПОСОБ СВЯЗЫВАНИЯ ВЫРАЗИТЕЛЬНЫХ УСТНЫХ ПРОИЗНЕСЕНИЙ С ЗАПИСЯМИ ПО ПОРЯДКУ НА ЗВУКОВИЗУАЛЬНОМ ПРЕДСТАВЛЕНИИ И УСТРОЙСТВО, ПРЕДНАЗНАЧЕННОЕ ДЛЯ ЛИНЕЙНОГО И ИНТЕРАКТИВНОГО ПРЕДСТАВЛЕНИЯ | 1994 |
|
RU2195708C2 |
Авторы
Даты
2012-02-10—Публикация
2007-11-01—Подача