Область техники, к которой относится изобретение
Настоящее изобретение относится к устройству воспроизведения, способу воспроизведения, программе воспроизведения, носителю записи и структуре данных, которые позволяют правильно и автоматически выбирать звуковой поток и поток субтитров, когда программу воспроизводят с носителя записи большой емкости.
Уровень техники
В течение многих лет цифровой универсальный диск (DVD, ЦУД) используется в качестве съемного носителя записи со случайным доступом. В последние годы был разработан носитель записи в форме диска, который имеет большую емкость записи, чем DVD, или другой носитель в форме диска, меньший, чем DVD.
Такие носители записи, на которых записано содержание в виде видеоизображения и звука, такое как кинофильмы, драмы, музыкальные концерты, продают в упакованном, готовом для продажи виде. В таких упаковках для одной программы содержания может быть записано множество потоков звукового сопровождения и потоков субтитров на разных языках. Например, в стандарте видео DVD, видеопоток, множество звуковых потоков на разных языках и множество потоков субтитров на разных языках мультиплексированы как один поток программы в соответствии со стандартом 2 Экспертной группы по кинематографии (MPEG).
Содержание кинофильма, созданного в зарубежной стране (например, в Соединенных Штатах) может содержать множество звуковых потоков на разных языках, которые представляют собой, например, звуковой поток на английском языке в качестве оригинального языка, и звуковой поток на японском языке в качестве звукового потока дублирования на японский язык, а также множество потоков субтитров, которые представляют собой поток субтитров на английском языке и поток субтитров на японском языке.
В стандарте видео DVD, когда содержание кинофильма содержит множество звуковых потоков на разных языках и множество потоков субтитров на разных языках, пользователь может выбирать потоки для воспроизведения. Например, пользователь может иметь возможность выбирать звуковой поток дублированной японской версии и поток субтитров английской версии. В качестве другого примера, пользователь может выбрать звуковой поток дублированной японской версии и при этом может не выбрать поток субтитров.
Устройство воспроизведения DVD имеет функцию автоматического выбора, которая позволяет первоначально установить приоритетный язык, в качестве предварительно установленной информации о языке, и звуковой поток, и поток субтитров будут выбираться автоматически на основе заранее установленной информации о языке так, что при этом пользователь не должен делать выбор. Кроме того, DVD проигрыватель имеет функцию, которая выбирает следующий поток для воспроизведения, в зависимости истории воспроизведения и пути воспроизведения содержания, помимо исходной установки.
Далее вкратце будет описана существующая функция выбора звукового потока на основе стандарта видео DVD. Как описано выше, в устройстве воспроизведения DVD, может быть первоначально установлено звуковое сопровождение, которое выбирают и воспроизводят в соответствии с приоритетом. Когда устройство воспроизведения DVD используется, например, японским пользователем, звук часто может быть первоначально установлен на "японский". При такой установке, когда устройство воспроизведения DVD воспроизводит, например, американский кинофильм или французский кинофильм, если только звуковой поток на японском языке был записан, звуковой поток дублированной версии на японском языке будет автоматически выбран по приоритету.
В отличие от этого, некоторые пользователи желают слушать звуковое сопровождение на оригинальном языке, на котором было создано содержание. Например, иногда пользователи хотят просматривать содержание кинофильма со звуковым сопровождением на оригинальном языке, на котором было создано содержание, и с субтитрами версии, переведенной на родной язык пользователя. Например, когда пользователь, который является японцем, смотрит содержание кинофильма, созданное в Соединенных Штатах, это содержание кинофильма может быть воспроизведено со звуковым сопровождением на английском языке, то есть на оригинальном языке, на котором содержание было создано, и с субтитрами на японском языке, который представляет собой родной язык пользователя. Когда пользователь просматривает содержание, выбирая звук и язык таким образом, он или она может наслаждаться содержанием в атмосфере, близкой к оригинальной.
В выложенной заявке №2003-46951 на японский патент раскрыто устройство воспроизведения, имеющее режим, в котором язык звукового сопровождения выбирают для воспроизведения и при этом субтитры не отображаются, режим, в котором язык звукового сопровождения для воспроизведения устанавливается по умолчанию и язык субтитров выбирают, и режим, в котором языки звукового сопровождения и субтитров, а также меню выбирают, что позволяет легко устанавливать эти языки.
Однако существующий стандарт видео DVD не предусматривает механизм, который определяет, является ли язык записанного звукового потока оригинальным языком, на котором содержание было создано. Таким образом, оригинальный язык не может быть выбран автоматически, когда воспроизводят содержание диска, Следовательно, всякий раз, когда содержание воспроизводят с диска, в предшествующем уровне техники возникает проблема, связанная с тем, что пользователь должен менять установки звукового сопровождения.
Когда содержание на другом языке, кроме японского (например, на французском языке), который представляет собой оригинальный язык, воспроизводят с диска, пользователь должен узнать оригинальный язык содержания, записанного на диске, обратившись к упаковке или буклету, приложенному к диску. После того как пользователь узнает оригинальный язык, он или она должен потратить время, несколько раз нажимая на кнопку выбора языка устройства воспроизведения до тех пор, пока не будет выбран оригинальный язык.
В этом случае, когда язык приоритета звукового сопровождения, которое должно быть воспроизведено, заранее установлен как французский, например, при исходной установке устройства воспроизведения, только когда содержание воспроизводят с диска, звуковое сопровождение на французском языке будет автоматически выбрано. Однако, когда с диска воспроизводят содержание, оригинальный язык которого представляет собой другой язык, например английский язык, пользователь должен изменить исходную установку устройства воспроизведения. Таким образом, пользователь ощущает значительное неудобство.
Сущность изобретения
Таким образом, цель настоящего изобретения состоит в создании устройства воспроизведения, способа воспроизведения, программы воспроизведения, носителя записи и структуры данных, которые позволяют правильно и автоматически выбирать звуковое сопровождение и субтитры, когда содержание воспроизводят с диска.
Для решения указанной выше проблемы настоящее изобретение направлено на устройство воспроизведения, которое воспроизводит данные содержания с носителя записи в форме диска, содержащее средство считывания, предназначенное для считывания данных с носителя записи, на котором были записаны данные содержания, содержащие, по меньшей мере, видеопоток, один или множество звуковых потоков, соответствующих видеопотоку, и программу управления воспроизведением, с помощью которой управляют воспроизведением данных содержания; средство проигрывателя, предназначенное для воспроизведения данных содержания в соответствии с программой управления воспроизведением; и средство установки первого режима, предназначенное для установки первого режима в средстве проигрывателя таким образом, что оно автоматически выбирает звуковой поток на оригинальном языке из одного или множества звуковых потоков при воспроизведении данных содержания.
Кроме того, настоящее изобретение направлено на способ воспроизведения, состоящий в воспроизведении данных содержания с носителя записи в форме диска, причем этот способ содержит этапы считывания данных с носителя записи, на котором записаны данные содержания, содержащие, по меньшей мере, видеопоток, один или множество звуковых потоков, соответствующих видеопотоку, и программу управления воспроизведением, с помощью которой выполняется управление воспроизведением данных содержания; воспроизведения данных содержания в соответствии с программой управления воспроизведением; и установки первого режима для этапа воспроизведения содержания таким образом, чтобы звуковой поток на оригинальном языке автоматически выбирался из одного или множества звуковых потоков при воспроизведении данных содержания.
Кроме того, настоящее изобретение направлено на программу воспроизведения, которая обеспечивает выполнение компьютерным устройством способа воспроизведения, состоящего в воспроизведении данных содержания с носителя записи в форме диска, причем способ воспроизведения содержит этапы считывания данных с носителя записи, на котором записаны данные содержания, содержащие, по меньшей мере, видеопоток, один или множество звуковых потоков, соответствующих видеопотоку, и программу управления воспроизведением, с помощью которой выполняется управление воспроизведением данных содержания; воспроизведения данных содержания в соответствии с программой управления воспроизведением; и установки первого режима для этапа воспроизведения содержания таким образом, чтобы звуковой поток на оригинальном языке автоматически выбирался из одного или множества звуковых потоков при воспроизведении данных содержания.
Кроме того, настоящее изобретение направлено на носитель записи, на котором записаны данные содержания, содержащие, по меньшей мере, видеопоток, один или множество видеопотоков, соответствующих видеопотоку, программу управления воспроизведением, с помощью которой управляют воспроизведением данных содержания, и информацию потока, описывающую, по меньшей мере, информацию, которая идентифицирует каждый из одного или множества звуковых потоков таким образом, что информация, которая идентифицирует звуковой поток, используемый как оригинальный язык, следует первой.
Кроме того, настоящее изобретение направлено на структуру данных, содержащую видеопоток; данные содержания, содержащие один или множество звуковых потоков, соответствующих видеопотоку; программу управления воспроизведением, с помощью которой управляют воспроизведением данных содержания; и информацию потока, содержащую, по меньшей мере, информацию, которая идентифицирует каждый из одного или множества звуковых потоков таким образом, что информация, которая идентифицирует звуковой поток, используемый в качестве оригинального языка, следует первой.
Как описано выше, в соответствии с настоящим изобретением, по меньшей мере, данные содержания, содержащие видеопоток и один или множество звуковых потоков, соответствующих видеопотоку, и программа управления воспроизведением, с помощью которой управляют воспроизведением данных содержания, записаны на носитель записи. Когда устройство воспроизведения воспроизводит данные содержания с носителя записи, в соответствии записанной на нем с программой управления воспроизведением, установлен режим, в котором звуковой поток на оригинальном языке автоматически выбирают из одного или множества звуковых потоков. Пользователь может наслаждаться содержанием на оригинальном языке, воспроизводимом с диска, без необходимости проверки оригинального языка содержания и установки оригинального языка в устройстве воспроизведения.
Кроме того, в соответствии с настоящим изобретением на носитель записи записаны, по меньшей мере, данные содержания, содержащие видеопоток и один или множество звуковых потоков, соответствующих видеопотоку, программа управления воспроизведением, с помощью которой управляют воспроизведением данных содержания, и информация потока, представляющая, по меньшей мере, информацию, которая идентифицирует каждый из одного или множества звуковых потоков, таким образом, что информация, идентифицирующая звуковой поток на оригинальном языке, поступает первой в информации потока. Таким образом, устройство воспроизведения, которое воспроизводит содержание с диска, может проверять компоновку информации, которая идентифицирует звуковые потоки в информации потока и идентифицирует звуковой поток на оригинальном языке.
Кроме того, структура данных в соответствии с настоящим изобретением содержит, по меньшей мере, данные содержания, содержащие видеопоток и один или множество звуковых потоков, соответствующих видеопотоку, программу управления воспроизведением, с помощью которой управляют воспроизведением данных содержания, и информацию потока, представляющую, по меньшей мере, информацию, которая идентифицирует каждый один из одного или множества звуковых потоков так, что информация, идентифицирующая звуковой поток на оригинальном языке, поступает первой в информации потока. Таким образом, когда проверяют компоновку информации, которая идентифицирует звуковые потоки в информации потока, может быть идентифицирован звуковой поток на оригинальном языке.
При этом звуковой поток на оригинальном языке может быть идентифицирован без необходимости добавления информации, представляющей оригинальный язык, в звуковом потоке, используемом в качестве оригинального языка, или информации, которая идентифицирует звуковой поток.
Как описано выше, эффект настоящего изобретения состоит в том, что звуковые потоки и потоки субтитров на разных языках могут быть правильно и автоматически выбраны, когда содержание воспроизводят с диска.
Кроме того, в соответствии с вариантом выполнения настоящего изобретения, в качестве исходной установки звука проигрывателя может быть установлен атрибут "оригинальный язык". Язык, на котором было создано содержание, может быть выбран автоматически. Таким образом, эффект настоящего изобретения состоит в том, что пользователь может наслаждаться содержанием, без ухудшения исходной среды.
Кроме того, в соответствии с вариантом выполнения настоящего изобретения, даже если в результате автоматического выбора один и тот же язык был установлен для звукового потока и потока субтитров, поток субтитров автоматически не будет отображаться. Таким образом, пользователю не требуется вручную выполнять операцию с устройством, чтобы отключить отображение нежелательных субтитров. Таким образом, эффект настоящего изобретения состоит в том, что улучшается удобство для пользователя.
Краткое описание чертежей
На фиг.1 показана схема, представляющая структуру уровней в соответствии с стандартом видео UMD (Universal Media Disk, универсальный мультимедийный диск, УМД); на фиг.2 показана схема, представляющая пример модели проигрывателя в соответствии с вариантом выполнения настоящего изобретения; на фиг.3 показана схема, представляющая пример внутренней структуры проигрывателя кинофильмов; на фиг.4 показана схема, описывающая три состояния проигрывателя кинофильмов; на фиг.5 показана схема, представляющая модель событий проигрывателя кинофильмов в соответствии с вариантом выполнения настоящего изобретения; на фиг.6 показана схема, представляющая примеры событий, которые происходят при воспроизведении списка воспроизведения; на фиг.7 показана схема, представляющая список примеров свойств объекта проигрывателя кинофильмов; на фиг.8 показана схема, представляющая список примеров способов объекта проигрывателя кинофильмов; на фиг.9 показана схема, представляющая примеры входных команд, вводимых пользователем с помощью кнопок; на фиг.10 показана схема, представляющая примеры входных команд пользователя; на фиг.11А, фиг.11В и фиг.11С показаны схемы, представляющие примеры команд управления в соответствии с командами, вводимыми с помощью кнопок; на фиг.12 показана схема, представляющая примеры событий в соответствии с кнопками ввода; на фиг.13 показана схема, представляющая примеры обработчиков событий; на фиг.14 показана схема, представляющая примеры обработчиков событий; на фиг.15 показана блок-схема последовательности операций, представляющая пример обработки, которую выполняет заданная программа, в соответствии с событием входной команды пользователя; на фиг.16 представлена блок-схема последовательности операций, изображающая процесс, выполняемый после загрузки диска в видеопроигрыватель УМД, до тех пор, пока диск не будет выгружен из него; на фиг.17 показана схема, представляющая пример структуры файла сценария; на фиг.18 показана блок-схема последовательности операций, представляющая пример процедуры, которую выполняет обработчик события onAutoPlay(); на фиг.19 показана блок-схема последовательности операций, представляющая пример процедуры, которую выполняет обработчик события onContinuePlay(); на фиг.20 показана блок-схема последовательности операций, представляющая пример процесса, выполняемого после окончания воспроизведения; на фиг.21 показана схема, представляющая пример программы сценария; на фиг.22 показана схема, представляющая пример программы сценария; на фиг.23 показана схема, представляющая структуру управления файлами в соответствии со стандартом видео УМД; на фиг.24 показана схема, представляющая пример синтаксиса всей структуры файла "PLAYLIST.DAT"; на фиг.25 показана схема, представляющая пример внутренней структуры блока PlayItem(); на фиг.26 показана схема, представляющая пример внутренней структуры блока PlayListMark(); на фиг.27 показана схема, описывающая поле mark_type блока Mark(); на фиг.28 показана схема, описывающая обозначение времени метки в файле AV потока клипа; на фиг.29 показана схема, представляющая пример синтаксиса, который представляет всю структуру файла "XXXXX.CLP" АВ потока клипа; на фиг.30 показана схема, описывающая корреляцию блока StreamInfo() и элементарного потока; на фиг.31 показана схема, представляющая пример внутренней структуры блока StaticInfo(); на фиг.32 показана схема, представляющая пример внутренней структуры блока Dynamiclnfo(); на фиг.33 показана схема, представляющая пример внутренней структуры блока ЕР_mар(); на фиг.34 показана блок-схема, представляющая пример структуры устройства воспроизведения диска в соответствии с настоящим изобретением; на фиг.35А и фиг.35В показана функциональная блок-схема, подробно описывающая работу устройства воспроизведения диска; на фиг.36 показана схема, описывающая автоматический выбор звукового потока и потока субтитров в соответствии с вариантом выполнения настоящего изобретения; на фиг.37 показана схема, описывающая автоматический выбор звукового потока и потоков субтитров, в соответствии с вариантом выполнения настоящего изобретения; на фиг.38 показана схема, описывающая автоматический выбор звукового потока и потока субтитров, в соответствии с вариантом выполнения настоящего изобретения; на фиг.39 показана схема, представляющая примеры значений свойства audioFlag; на фиг.40 показана схема, представляющая примеры значений свойства subtitleFlag; на фиг.41А и фиг.41В показаны схемы, представляющие список примеров аргументов метода Play(); на фиг.42 показана блок-схема последовательности операций, представляющая поток обработки при автоматическом выборе звукового потока и потока субтитров из множества типов звуковых потоков и потоков субтитров; на фиг.43 показана блок-схема последовательности операций, подробно описывающая пример процесса автоматического выбора звукового потока; на фиг.44 показана блок-схема последовательности операций, подробно описывающая пример процесса автоматического выбора звукового потока; на фиг.45 показана блок-схема последовательности операций, подробно описывающая пример процесса автоматического выбора потока субтитров; на фиг.46 показана блок-схема последовательности операций, подробно описывающая пример процесса автоматической установки свойства subtitleFlag; и на фиг.47 показана блок-схема последовательности операций, описывающая другой пример процесса автоматической установки свойства subtitleFlag.
Подробное описание изобретения
Далее будет описан вариант выполнения настоящего изобретения в следующем порядке.
1. Видеостандарт УМД
2. Модель проигрывателя в соответствии с видеостандартом УМД
3. Модель событий проигрывателя кинофильмов
4. Объект проигрывателя кинофильмов
5. Пример программы сценария
6. Структура управления файлами
7. Устройство воспроизведения диска
8. Автоматический выбор звукового потока и потока субтитров
1. Видеостандарт УМД
Для простоты понимания настоящего изобретения ниже будет описана система в соответствии с вариантом выполнения настоящего изобретения. В соответствии с вариантом выполнения настоящего изобретения описана модель проигрывателя с использованием языка сценариев, называемого сценарием ЕСМА (Европейская Ассоциация производителей компьютеров, ЕАПК). Сценарий ЕАПК представляет собой межплатформный язык сценариев, основанный на JavaScript (зарегистрированный товарный знак) и стандартизированный Европейской ассоциацией производителей компьютеров (ЕАПК). Сценарий ЕАПК имеет высокую совместимость с документами HTML (ЯГТР, язык гипертекстовой разметки). Кроме того, поскольку сценарий ЕАПК позволяет определять исходные объекты, сценарий ЕАПК можно, соответственно, использовать для модели проигрывателя в соответствии с настоящим изобретением.
В следующем описании стандарт, в котором используется язык сценариев, на основе сценария ЕАПК и который соответствует варианту выполнения настоящего изобретения, называется видеостандартом УМД (Универсальный мультимедийный диск: зарегистрированный товарный знак). Часть сценария видеостандарта УМД называется стандартом видеосценария УМД.
Далее будет кратко описан видеостандарт УМД. На фиг.1 показана структура уровней видеостандарта УМД. Видеостандарт УМД определяет структуру из трех уровней, состоящую из уровня сценариев, уровня списка воспроизведения и уровня клипа. Потоками управляют в соответствии с этой структурой уровней.
В соответствии с видеостандартом УМД цифровые кодированные видеоданные, звуковые данные и данные субтитров обрабатывают как поток MPEG2, в котором они были мультиплексированы, как элементарный поток, в соответствии с системой MPEG2 (Экспертная группа по кинематографии 2). Поток MPEG2, в котором были мультиплексированы элементарные потоки видеоданных, звуковых данных и данных субтитров, называется АВ (AV, аудио-видео) потоком клипа. АВ поток клипа сохраняется в файле АВ потока клипа. Когда записывают файл АВ потока клипа, создается файл информации клипа в соответствии с файлом АВ потока клипа в соотношении 1 к 1. Пара из файла информации клипа и соответствующего ему файла АВ потока клипа называется клипом.
Клип представляет собой модуль записи на диске. Порядком воспроизведения клипов управляют на уровне списка воспроизведения, который расположен выше, чем уровень клипа. Уровень списка воспроизведения представляет собой уровень, который обозначает путь воспроизведения клипов. Уровень списка воспроизведения содержит один или множество списков воспроизведения. Список воспроизведения состоит из набора элементов воспроизведения. Элемент воспроизведения содержит пару из точки ВХОДА (IN) и точки ВЫХОДА (OUT), которые представляют диапазон воспроизведения клипа. Когда размещают элементы воспроизведения, клипы могут воспроизводиться в любом порядке. Элемент воспроизведения может обозначать клипы с избыточностью. Точка ВХОДА и точка ВЫХОДА АВ потока клипа обозначаются временными метками (моментами времени внутри клипа). Временные метки преобразуют в положения байтов файла АВ потока клипа в соответствии с информацией файла информации клипа.
Список воспроизведения имеет структуру, которая воспроизводит элементы воспроизведения, которые представляют все или часть клипов в заданном порядке. Используя только список воспроизведения, нельзя изменить порядок воспроизведения клипов. Кроме того, список воспроизведения не обеспечивает для пользователя функцию интерактивности. В соответствии с вариантом выполнения настоящего изобретения, множество списков воспроизведения совместно сохраняют в одном файле "PLAYLIST.DAT".
Уровень сценария представляет собой уровень, состоящий из видеосценариев УМД, как расширение сценариев ЕАПК в качестве спецификации языка. Видеосценарий УМД представляет собой сценарий, в соответствии с которым сценарий ЕАПК расширяется для выполнения специальной функции на основе видеостандарта УМД.
Уровень сценария представляет собой более верхний уровень относительно уровня списка воспроизведения. Уровень сценария состоит из последовательности команд, которые обозначают воспроизведение списка воспроизведения и которые устанавливают проигрыватель. Команды на уровне сценариев выполняют воспроизведение списка воспроизведения, включая условные переходы, что позволяет выбирать один из потоков в соответствии с множеством языков, или потоки можно воспроизводить в соответствии со списком воспроизведения, выбранным в заданном состоянии. Пример варианта применения, в котором используется воспроизведение списка воспроизведения, включающее условный переход, представляет собой многоуровневое содержание.
Уровень сценария предоставляет пользователю интерактивную функцию.
В соответствии с вариантом выполнения настоящего изобретения уровень сценария состоит из одного файла "SCRIPT.DAT". Файлом "SCRIPT.DAT" управляют как ресурсом. Файл "SCRIPT.DAT" содержит данные сценария, описанные в соответствии с реальным сценарием ЕАПК, звуковые данные, предназначенные для звуковых эффектов и т.д. при выполнении операций с кнопками, дизайн экрана, состоящий из данных изображения, используемых для фонового изображения и т.д. экрана меню, и данных изображения (растровых данных) для частей ГИП (GUI, графический интерфейс пользователя), таких как изображения кнопки.
2. Модель проигрывателя в соответствии с видеостандартом УМД
Далее будет описана модель устройства воспроизведения (проигрывателя), которое воспроизводит данные в соответствии с видеостандартом УМД, а именно модель проигрывателя. Проигрыватель считывает с диска программу сценария, список воспроизведения и файл информации клипа. После этого проигрыватель считывает файл АВ потока клипа в порядке воспроизведения, в соответствии с этими файлами, и воспроизводит видеоданные, звуковые данные, данные субтитров и т.д.
В спецификациях языка программы сценариев функциональный блок, который воспроизводит список воспроизведения, выполнен как объект программы сценария. В соответствии с видеостандартом УМД, объект, который воспроизводит список воспроизведения, называется объектом проигрывателя кинофильмов. Команды, которые обозначают воспроизведение списка воспроизведения и устанавливают проигрыватель, представляют собой методы объекта проигрывателя кинофильмов. Объектом проигрывателя кинофильмов управляют с помощью методов уровня сценария. В этой точке объект проигрывателя кинофильмов требует наличия функции, которая информирует уровень сценария об изменении состояния, положении воспроизведения и т.д. Эта функция соответствует операции, в которой объект проигрывателя кинофильмов вырабатывает событие для программы сценария. Процесс, соответствующий событию, описан как обработчик события.
Когда разрабатывают модель, в которой объект проигрывателя кинофильмов передает информацию, как событие, в программу сценария, и программа сценария управляет объектом проигрывателя кинофильмов с помощью некоторого метода, программа сценария может управлять воспроизведением АВ потока клипа.
На фиг.2 схематично представлен пример модели проигрывателя в соответствии с вариантом выполнения настоящего изобретения. Проигрыватель 300 кинофильмов представляет собой модуль, который воспроизводит видеоданные, звуковые данные и данные субтитра в соответствии с видеостандартом УМД. Объект проигрывателя кинофильмов представляет собой объект в программе сценария, при этом программа сценария управляет объектом кинофильма. Другими словами, объект проигрывателя кинофильмов представляет собой программу сценария, которая выполняет функцию проигрывателя кинофильмов.
Поскольку предполагается, что проигрыватель 300 кинофильмов и объект проигрывателя кинофильмов, по существу, представляют собой одно и то же, в следующем описании они обозначены одинаковой ссылочной позицией.
На фиг.2 проигрыватель 300 кинофильмов считывает файл АВ потока клипа в соответствии с базой данных списка воспроизведения или информацией клипа, используя метод более низкого уровня (платформа 301 собственного воплощения в примере, показанном на фиг.2) в качестве входной команды 310 пользователя или тому подобное, или метод уровня 302 сценария, в качестве верхнего уровня, и декодирует и отображает АВ поток клипа.
Внутреннее содержание объекта 300 проигрывателя кинофильмов зависит от воплощения видеопроигрывателя УМД, который воспроизводит данные с видеодиска УМД. Уровень 302 сценариев предоставляет ИПП (API, интерфейс прикладного программирования), который представляет собой методы и свойства, такие как объекты типа черного ящика. В этом случае видеопроигрыватель УМД представляет собой реальное устройство, которое воплощает видеопроигрыватель. Все видеопроигрыватели УМД воплощают проигрыватель кинофильма в соответствии с видеостандартом УМД и обладают совместимостью воспроизведения с другими видеопроигрывателями УМД.
Как показано на фиг.2, проигрыватель 300 кинофильмов имеет три канала входа/выхода, которые представляют собой канал, через который получают команду 311 управления от платформы 301 собственного воплощения, канал, через который уровень 302 сценария информирует о событии 312, и канал, через который метод 313 принимают из уровня 302 сценариев.
Команда 311 управления представляет собой команду, которую принимают из платформы 301 собственного воплощения, и которая управляет работой объекта 300 проигрывателя кинофильмов. Платформа 301 собственного воплощения представляет собой интерфейс между исходным участком видеопроигрывателя УМД, таким как реальное устройство, и проигрывателем 300 кинофильмов. Событие 312 представляет собой событие сценария, переданное из проигрывателя 300 кинофильмов на уровень 302 сценариев. Метод 313 представляет собой метод, который программа сценариев уровня 302 сценариев назначает для проигрывателя 300 кинофильмов.
Объект 300 проигрывателя кинофильмов имеет базу данных 320 для списков воспроизведения и информации клипа в соответствии с видеостандартом УМД. Объект 300 проигрывателя кинофильмов накладывает маску на входные команды 310 пользователя. Кроме того, объект 300 проигрывателя кинофильмов выполняет, например, процесс, который преобразует положение воспроизведения, назначенное по времени, в положение байта в АВ потоке клипа, с помощью базы данных 320.
Модуль 321 воспроизведения объекта 300 проигрывателя кинофильмов декодирует АВ поток клипа, который представляет собой ПП (PS, программный поток) MPEG2, в котором мультиплексированы видеоданные, данные звука и данные субтитра. Модуль 321 воспроизведения имеет три состояния, которые представляют собой воспроизведение, остановку и паузу. Модуль 321 воспроизведения переключает эти состояния с помощью команды управления и метода (см. фиг.3).
Уровень 302 сценария представляет собой уровень, который выполняет программу сценария в соответствии с видеостандартом сценария УМД, управляет объектом 300 проигрывателя кинофильмов, и отображает данные на дисплее. Уровень 302 сценария выполняет сценарий, обозначенный стороной разработчика содержания. Уровень 302 сценария вырабатывает метод 313 в объект 300 проигрывателя кинофильмов. Уровень 302 сценария принимает событие 312 из объекта 300 проигрывателя кинофильмов. Уровень 302 сценария выполняет обмен событием 314 кнопки, в соответствии с входной командой 310 пользователя, и методом 315, что обеспечивает отображение данных на дисплее платформы 301 собственного воплощения.
Например, кнопки на экране меню генерируются с помощью платформы 301 собственного воплощения, в соответствии с методом 315, переданным из программы сценария уровня 302 сценария в платформу 301 собственного воплощения. Когда пользователь выполняет операцию, такую как выбор или решение для одной из кнопок, событие 314 кнопки, в соответствии с входной командой 310 пользователя, передают из платформы 301 собственного воплощения в уровень 302 сценария. Программа сценария уровня 302 сценария выполняет процесс с помощью события 314 кнопки, в соответствии с входной командой 310 пользователя.
Таким образом, проигрыватель 300 кинофильмов выполняет управление декодированием и отображением видеоданных, данных звука и данных субтитра. С другой стороны, уровень 302 сценария выполняет процессы размещения и отображения для частей изображений, которые составляют графические интерфейсы пользователя, такие как кнопки (ниже изображения этих частей называется частями ГИП), и процессы, связанные с операциями выбора и принятия решения для частей ГИП.
Платформа 301 собственного воплощения представляет собой платформу для выполнения операций объекта 300 проигрывателя кинофильмов и программы сценария. Когда реальный видеопроигрыватель УМД воплощен в виде аппаратных средств, платформа 301 собственного воплощения воплощена как аппаратное средство, в результате чего платформа 301 собственного воплощения играет роль посредника процесса между аппаратным средством и моделью проигрывателя.
Платформа 301 собственного воплощения принимает от пользователя входные команды 310 пользователя и определяет, представляет ли полученная входная команда 310 пользователя команду для проигрывателя 300 кинофильмов или команду для кнопки, сгенерированной и отображаемой на уровне 302 сценария. Когда определенный результат представляет, что входная команда 310 пользователя представляет собой команду для проигрывателя 300 кинофильмов, платформа 301 собственного воплощения преобразует входную команду 310 пользователя в команду 311 управления, которая представляет собой команду внутреннего управления для проигрывателя 300 кинофильмов и вырабатывает команду управления для проигрывателя 300 кинофильмов.
Когда определенный результат представляет, что входная команда 310 пользователя представляет собой команду части ГИП, сгенерированной и отображаемой на уровне 302 сценария, платформа 301 собственного воплощения информирует уровень 302 сценария о событии 314 кнопки в соответствии с входной командой 310 пользователя. Например, платформа 301 собственного воплощения может отображать, например, изображение кнопки на дисплее в соответствии с методом 315, который уровень 302 сценария назначает в соответствии с событием 314 кнопки. Другими словами, платформа 301 собственного воплощения и уровень 302 сценария могут непосредственно обмениваться событием и методом не через проигрыватель 300 кинофильмов.
Далее будет подробно описан проигрыватель 300 кинофильмов. На фиг.3 показан пример внутренней структуры проигрывателя 300 кинофильмов. Как описано выше, проигрыватель 300 кинофильмов состоит из базы данных 320 и модуля 321 воспроизведения. База 320 данных представляет собой область, в которой сохранена информация о списке воспроизведения, считанном с диска, и информация о клипах, а именно, информация клипа.
Модуль 321 воспроизведения состоит из механизма 322 декодера и свойства 323. Свойство 323 представляет собой значение, которое представляет состояние модуля 321 воспроизведения. Свойство 323 имеет два типа: свойство 323А (параметр только для считывания), значение которого зависит от исходных установок проигрывателя 300 кинофильмов, таких как код языка, и свойство 323В (состояние проигрывателя), значение которого зависит от состояния модуля 321 воспроизведения.
Значение свойства 323А, которое зависит от исходных установок, устанавливается собственным устройством, например реальным устройством. Таким образом, значение свойства 323А не изменяется списком воспроизведения, информацией клипа и программой сценария. Значение свойства 323А может быть считано из программы сценария. В отличие от этого, значение свойства 323В, которое представляет состояние модуля 321 воспроизведения, может быть считано из программы сценария. Кроме того, значение свойства 323В может быть записано из некоторых программ сценария.
В этой модели работы предполагается, что список воспроизведения и информация клипа заранее загружают с диска, перед воспроизведением АВ потока клипа. Вместо этого, операции модели проигрывателя кинофильмов могут быть выполнены в других вариантах воплощения.
Объект 300 проигрывателя кинофильмов воспроизводит список воспроизведения, обозначенный уровнем 302 сценариев или платформой 301 собственного воплощения. Например, проигрыватель 300 кинофильмов представляет базу данных 320 и получает положение воспроизведения АВ потока клипа, как положение байта в файле, в соответствии с обозначенным списком воспроизведения. В модуле 321 воспроизведения, механизм 322 декодера управляет декодированием АВ потока клипа в соответствии с информацией положения воспроизведения.
Как показано на фиг.4, проигрыватель 300 кинофильмов имеет три состояния - воспроизведения, остановки и паузы, в зависимости от состояния воспроизведения списка воспроизведения. Состояние воспроизведения представляет воспроизведение списка воспроизведения и прошедшее время воспроизведения. Состояние воспроизведения включает в себя обычное воспроизведение, воспроизведение с переменной скоростью, такое как воспроизведение с удвоенной скоростью, и воспроизведение с половинной скоростью, быструю перемотку вперед и быструю перемотку назад. Состояние паузы представляет состояние, в котором список воспроизведения воспроизводится и временная ось остановлена. Так называемое, покадровое воспроизведение, в котором кадры воспроизводят в направлении вперед и в направлении назад, представляет собой состояние, в котором повторяют состояние паузы и состояние воспроизведения. Состояние остановки представляет, что список воспроизведения не воспроизводится.
Состояние проигрывателя 300 кинофильмов зависит от изменения состояния среди состояний воспроизведения, паузы и остановки механизма 322 декодера проигрывателя 300 кинофильмов. Значение свойства 323 В обновляют в соответствии с изменением состояния механизма 322 декодера.
В информации 324 возобновления сохраняют состояние, которое существовало непосредственно перед началом состояния остановки. После того, как проигрыватель 300 кинофильмов декодирует список воспроизведения, когда проигрыватель 300 кинофильмов находится в состоянии воспроизведения, если состояние проигрывателя 300 кинофильмов изменяется на состояние остановки, в информации 324 возобновления сохраняют состояние, которое существует непосредственно перед началом состояния остановки. Кроме того, информация 324 возобновления может быть сохранена для каждого названия диска в энергонезависимом запоминающем устройстве проигрывателя, воплощенного в форме аппаратного средства. Диск имеет уникальную идентификационную информацию (называемую ИД (ID) названия) для каждого названия диска. Информацию 324 возобновления и информацию идентификации сохраняют в корреляции друг с другом. Таким образом, когда состояние диска, имеющего название, соответствующее информации идентификации, изменяют из состояния остановки в состояние воспроизведения, данные могут быть воспроизведены из положения, в котором возникло состояние остановки.
3. Модель событий проигрывателя кинофильмов
Далее будет описана модель событий проигрывателя 300 кинофильмов. В состоянии воспроизведения проигрыватель 300 кинофильмов воспроизводит список воспроизведения и генерирует различные события. События выполняют программы обработки, описанные как сценарии, и называемые обработчиками события. Обработчики события представляют собой методы, вызываемые при возникновении событий. Модель выполнения программы, которая начинает выполнение программы обработки при возникновении события, называется моделью, управляемой событием. В модели, управляемой событием, возникает нестандартное событие. Когда возникает событие, выполняется заданная программа. В соответствии с вариантом выполнения настоящего изобретения, программа сценария управляет работой объекта 300 проигрывателя кинофильмов, с использованием группы обработчиков события.
На фиг.5 схематично представлена модель события проигрывателя 300 кинофильмов в соответствии с вариантом выполнения настоящего изобретения. На фиг.5 обработчики события onEventA(), onEventB() и onEventC() представляют собой интерфейсы. Содержание обработчиков события описано как сценарии. Содержание обработчиков событий создают и воплощают, используя, например, сторону разработчика содержания. В стандарте видеосценария УМД обработчик события предусмотрен для каждого события, по которому объект 300 воспроизведения кинофильма информирует программу сценария. В примере, показанном на фиг.5, принимается решение, что программа обработки, выполняемая при возникновении события А, представляет собой обработчик события onEventA(). Это относится к событию В и событию С. Таким образом, когда происходит событие В, выполняется соответствующий обработчик события onEventB(). Когда происходит событие С, выполняется соответствующий обработчик события onEventC().
Поскольку сторона системы выбирает обработчик события, вызываемый при возникновении события, для стороны разработчика содержания не требуется описывать процесс, который определяет, какое событие возникло в программе сценария.
На фиг.6 показаны примеры событий, которые происходят при воспроизведении списка воспроизведения. Поскольку метка раздела ChapterMark описана в начале списка воспроизведения PlayList, при воспроизведении списка воспроизведения с начала возникает событие Chapter, соответствующее метке раздела. Всякий раз, когда раздел изменяется на другой раздел, уровень 302 сценария информирует о событии Chapter, и выполняется соответствующий обработчик события onChapter. Когда время воспроизведения метки события EventMark истекает, возникает соответствующее событие метки. В конце списка воспроизведения, проигрыватель 300 кинофильмов переводит воспроизведение в режим паузы списка воспроизведения и информирует уровень 302 сценария о событии PlayListEnd. Сторона уровня 302 сценария обеспечивает начало воспроизведения другого списка воспроизведения проигрывателем 300 кинофильмов в соответствующем обработчике события onPlayListEnd(). Таким образом, проигрыватель 300 кинофильмов продолжает воспроизведение последовательности списков воспроизведения в порядке, назначенном стороной разработчика содержания.
Таким образом, во время работы проигрывателя возникают различные события. Когда программу верхнего уровня информируют о возникновении события, программа верхнего уровня может воспринимать состояние проигрывателя. Когда программа верхнего уровня предоставляет программы (обработчики событий), которые выполняют в соответствии с событиями, о которых ее информируют, она может управлять различными событиями. События и обработчики события будут описаны ниже.
Когда сторона разработчика содержания не описала обработчик события, верхняя программа выполняет операцию (принятый по умолчанию обработчик события), встроенную в проигрыватель, и которая определена в стандарте, или игнорирует это событие. Когда не требуется какая-либо обработка, если обработчик события в соответствии с этим событием не описан, такое событие может активно игнорироваться.
В качестве модели события может использоваться модель слушателя событий, модель одного метода и т.д. В модели слушателя событий объект регистрирует слушателя в соответствии с заданным событием для объекта проигрывателя. Когда событие, которое происходит в объекте проигрывателя, представляет собой зарегистрированное событие, объект проигрывателя передает этот событие в объект, который имеет зарегистрированное событие. Этот объект выполняет соответствующий метод. В модели одного метода один метод вызывают каждый раз, когда происходит событие.
Модель события в соответствии с вариантом выполнения настоящего изобретения является более простой, чем модель слушателя события, которая требует выполнения таких процессов, как процесс регистрации события и процесс удаления события. Модель одного метода должна знать, какое событие произошло, и описывать в методе предварительную обработку, которая изменяет процедуру обработки в соответствии с каждым происходящим событием. Поскольку метод воплощен стороной разработчика содержания, даже если эта модель является простой, нагрузка на сторону разработчика содержания увеличивается. Кроме того, всякий раз, когда происходит событие, поскольку вызывают одну большую программу обработки (метод), используются большие объемы памяти, и это замедляет процесс выполнения. Таким образом, поскольку модель в соответствии с вариантом выполнения настоящего изобретения предоставляет программы обработки (обработчики события) в соответствии с индивидуальными событиями, эта модель занимает более высокое положение, чем другие модели в этих точках.
4. Объект проигрывателя кинофильмов
Далее будут описаны внешние спецификации объекта 300 проигрывателя кинофильмов. Обычно объект, определенный в соответствии со спецификациями языка сценария ЕАПК имеет свойство и метод. Так же, как и этот объект, как показано на фиг.2 и фиг.3, объект 300 проигрывателя кинофильмов в соответствии с вариантом выполнения настоящего изобретения имеет свойство и метод. Когда внешний объект назначает название объекта и название свойства, объект может непосредственно считывать и записывать свойство. Вместо этого, когда определены метод setXXX() (где "XXX" представляет название свойства), который устанавливает значение свойства, и метод getXXX(), который считывает значение свойства, способы могут считывать и записывать свойства других объектов.
На фиг.7 показан список примеров свойств, которые имеет объект 300 проигрывателя кинофильмов. Эти свойства соответствуют свойству 323, показанному на фиг.3. Свойства, которые принадлежат параметрам 323А, предназначенным только для считывания, показанным на фиг.3, представляют собой следующие. Свойство scriptVersion представляет версию видеосценария УМД. Свойство languageCode представляет собой код языка отображения меню, который установлен в видеопроигрывателе УМД. Свойство audioLanguageCode представляет код языка звукового сопровождения, который установлен для видеопроигрывателя УМД. Свойство subtitleLanguagecode представляет код языка субтитров, который используется в видеопроигрывателе УМД.
Когда диск загружают в проигрыватель 300 кинофильмов, файл сценария, который считывают с диска, определяют в соответствии с кодом языка, представленным свойством languageCode, которое установлено в параметре 323А, предназначенном только для считывания. Когда диск, загруженный в проигрыватель 300 кинофильмов, не имеет файла сценария в соответствии с языком, принятым по умолчанию, файл сценария считывают с диска. Например, файл, записанный в начале множества файлов сценария, считывают как принятый по умолчанию файл сценария.
Свойства, которые принадлежат состоянию 323В проигрывателя, показанному на фиг.3, представляют собой следующие. Свойство playListNumber представляет номер списка воспроизведения списка воспроизведения, который воспроизводится в настоящее время. Свойство chapterNumber представляет номер раздела, который воспроизводится в данный момент времени. Свойство videoNumber представляет номер видеопотока для видеопотока, который воспроизводится в данный момент времени. Свойство audioNumber представляет номер звукового потока для звукового потока, который воспроизводится в данный момент времени. Свойство subtitleNumber представляет номер потока субтитров для потока субтитров, который воспроизводится в данный момент времени. Свойство playListTime представляет время списка воспроизведения, в котором начало списка воспроизведения равно 0. Свойство audioFlag обозначает включенное/выключенное состояние воспроизведения звукового сопровождения и воспроизведения двух монофонических каналов LR (ЛП, левый, правый). Свойство subtitleFlag представляет состояние включения/выключения представления субтитров.
Режим воспроизведения двух монофонических каналов представляет собой режим, в котором левый и правый (Л, П) каналы стереофонического звучания используются независимо, как монофонические каналы звукового сопровождения.
Когда проигрыватель 300 кинофильмов находится в состоянии воспроизведения или в состоянии паузы, каждое свойство, которое принадлежит состоянию 323В проигрывателя, представляет эту информацию. Когда проигрыватель 300 кинофильмов переходит в состояние остановки, каждое свойство, которое принадлежит состоянию 323В проигрывателя, поддерживается как информация 324 возобновления. В этой точке содержание состояния 323В проигрывателя может быть сброшено.
На фиг.8 показан список примеров методов, которые имеет объект 300 проигрывателя кинофильмов. Эти методы соответствуют методу 313, показанному на фиг.3. Метод Play() воспроизводит видеоданные. Метод playChapter() обозначает раздел и воспроизводит видеоданные обозначенного раздела. Метод stop() останавливает воспроизведение видеоданных. Метод pause() переводит в режим паузы воспроизведение видеоданных. Метод playStep() воспроизводит видеоданные шаг за шагом. Метод changeStream() изменяет видеопоток, поток звукового сопровождения и/или поток субтитров. Метод getPlayerStatus() получает состояние воспроизведения, состояние остановки, состояние паузы или тому подобное проигрывателя 300 кинофильмов. Метод reset() останавливает воспроизведение видеоданных и очищает содержание информации 324 возобновления.
В соответствии с видеостандартом УМД, видеоданные могут отображаться как часть экрана отображения. Приведенные ниже четыре метода представляют собой методы, которые отображают видеоданные в части экрана отображения. Метод setPos() устанавливает положение отображения видеоданных. Метод getPos() получает положение отображения видеоданных. Метод setSize() устанавливает размер отображения видеоданных. Метод getSize() получает размер отображения видеоданных.
В действительности, проигрыватель 300 кинофильмов и платформа 301 собственного воплощения интегрированы. Другими словами, проигрыватель 300 кинофильмов УМД и платформа 301 собственного воплощения скоррелированы как аппаратное средство, проигрыватель УМД, в который загружают диск и которое воспроизводит видеоданные с диска, и программные средства, которые управляют проигрывателем УМД. Какая часть является аппаратным средством, и какая часть является программным средством, зависит от структуры воплощения. Например, когда проигрыватель УМД представляет собой персональный компьютер или тому подобное, другие части, за исключением привода диска, состоят из программных средств. Когда используется отдельный проигрыватель УМД, помимо привода диска, например, видеодекодер, аудио декодер, и т.д., могут быть выполнены в виде аппаратных средств. Таким образом, методы, команды и события, обмениваемые между проигрывателем 300 кинофильмов и платформой 301 собственного воплощения, не ограничиваются теми, которые подробно показаны на фиг.2.
С другой стороны, что касается кнопок ввода пользователя, как показано на фиг.2, входную команду 310 пользователя вначале принимает платформа 301 собственного воплощения. Другими словами, платформа 301 собственного воплощения принимает команду, входную пользователем с помощью кнопки, как входную команду 310 пользователя. Платформа 301 собственного воплощения определяет, является ли входная команда 310 пользователя командой для проигрывателя 300 кинофильмов или событием для программы сценария уровня 302 сценария. В зависимости от определенного результата, платформа 301 собственного воплощения генерирует команду 311 управления или событие 314 кнопки, и передает на соответствующий верхний уровень (проигрыватель 300 кинофильмов или уровень 302 сценария), сгенерированную команду 311 управления или событие 314 кнопки.
На фиг.9 и фиг.10 показаны примеры кнопок ввода для входных команд 310 пользователя. На фиг.9 и фиг.10, кнопки, имеющие префикс "VM", представляют собой абстрактные виртуальные кнопки, которые не зависят от варианта воплощения. На фиг.9 показаны примеры кнопок ввода, относящихся к операциям проигрывателя 300 кинофильмов. Кнопка VK_POWER обеспечивает функцию, соответствующую кнопке включения питания. Кнопка VK_POWER_ON обеспечивает функцию, соответствующую кнопке ВКЛЮЧЕНИЯ питания. Кнопка VK_POWER_OFF обеспечивает функцию, соответствующую кнопке ВЫКЛЮЧЕНИЯ питания. Кнопка VK_MENU обеспечивает функцию, соответствующую кнопке меню, которая отображает меню. Кнопка VK_ENTER обеспечивает функцию, соответствующую кнопке ввода, которая заканчивает ввод команды или данных. Кнопка VK_RETURN обеспечивает функцию, которая возвращает процесс на один этап.
Кнопка VK_PLAY обеспечивает функцию, соответствующую кнопке воспроизведения, которая начинает операцию воспроизведения. Кнопка VK_STOP обеспечивает функцию, соответствующую кнопке остановки, которая останавливает операцию воспроизведения. Кнопка VK_PAUSE обеспечивает функцию, соответствующую кнопке паузы, которая включает паузу операции воспроизведения. Кнопка VK_FAST_FORWARD обеспечивает функцию, соответствующую кнопке быстрой перемотки вперед, которая выполняет операцию воспроизведения с быстрой перемоткой вперед. Кнопка VK_FAST_REVERSE обеспечивает функцию, соответствующую кнопке быстрой обратной перемотке, которая выполняет операцию воспроизведения быстрой обратной перемотки. Кнопка VK_SLOW_FORWARD обеспечивает функцию, соответствующую кнопке медленного воспроизведения (вперед), которая выполняет операцию воспроизведения с медленным перемещением вперед. Кнопка VK_SLOW_REVERSE обеспечивает функцию, соответствующую кнопке медленного (обратного) воспроизведения, которая выполняет операцию воспроизведения с медленной перемоткой назад. Кнопка VK_STEP_FORWARD обеспечивает функцию, соответствующую кнопке шагового перемещения (вперед), которая выполняет операцию воспроизведения с перемещением на шаг вперед. Кнопка VK_STEP_REVERSE обеспечивает функцию, соответствующую кнопке (обратного) перемещения кадра, которая выполняет операцию воспроизведения с пошаговым перемещением назад.
На фиг.10 показаны кнопки ввода в связи с операциями меню. Кнопка VK_NEXT обеспечивает функцию, соответствующую следующей кнопке обозначения, которая вводит значение, представляющее "следующее". Кнопка VK_PREVIOUS обеспечивает функцию, соответствующую предыдущему обозначению кнопки, которая вводит значение, которое представляет "предыдущее". При использовании кнопки VK_NEXT и кнопки VK_PREVIOUS, пользователь может обозначать, например, перемещение к следующему разделу и предыдущему разделу соответственно.
Кнопка VK_UP обеспечивает функцию, соответствующую кнопке обозначения направления вверх, которая вводит значение, представляющее "вверх". Кнопка VK_DOWN предоставляет функцию, соответствующую кнопке с обозначением направления вниз, которая вводит значение; которое представляет "вниз". Кнопка VK_RIGHT обеспечивает функцию, соответствующую кнопке с обозначением направления вправо, которая вводит значение, которое представляет направление "вправо". Кнопка VK_LEFT обеспечивает функцию, соответствующую кнопке с обозначением направления влево, которая вводит значение, которое представляет направление "влево". Кнопка VK_UP_RIGHT обеспечивает функцию, соответствующую кнопке с обозначением направления вправо вверх, которая вводит значение, которое представляет "вправо вверх". Кнопка VK_UP_LEFT обеспечивает функцию, соответствующую кнопке с обозначением направления влево вверх, которая вводит значение, которое представляет "влево вверх". Кнопка VK_DOWN_RIGHT обеспечивает функцию, соответствующую кнопке с обозначением направления вправо вниз, которая вводит значение, которое представляет "вправо вниз". Кнопка VK_DOWN_LEFT обеспечивает функцию, соответствующую кнопке с обозначением направления влево вниз, которая вводит значение, которое представляет "влево вниз". При использовании этих кнопок направления пользователь может обозначать, например, движение курсора на дисплее.
Кнопка VK_ANGLE обеспечивает функцию, соответствующую кнопке изменения угла обзора, которая обозначает операцию изменения угла обзора для данных видеоизображения, снятых под разными углами обзора. Кнопка VK_SUBTITLE обеспечивает функцию, соответствующую кнопке изменения субтитра, которая обозначает субтитры на английском языке, субтитры на японском языке и включение/выключение субтитров. Кнопка VK_AUDIO обеспечивает функцию, соответствующую кнопке изменения звукового сопровождения, которая обозначает режим звука, такой как режим заполняющего звука или двуязычный режим. Кнопка VK_VIDEO_ASPECT обеспечивает функцию, соответствующую кнопке изменения соотношения размеров видеоданных. Кнопка VK_COLORED_KEY_1 обеспечивает функцию, соответствующую кнопке 1 функции цвета. Кнопка VK_COLORED_KEY_2 обеспечивает функцию, соответствующую кнопке 2 функции цвета. Кнопка VK_COLORED_KEY_3 обеспечивает функцию, соответствующую кнопке 3 функции цвета. Кнопка VK_COLORED_KEY_4 обеспечивает функцию, соответствующую кнопке 4 функции цвета. Кнопка VK_COLORED_KEY_5 обеспечивает функцию, соответствующую кнопке 5 функции цвета 5. Кнопка VK_COLORED_KEY_6 обеспечивает функцию, соответствующую кнопке 6 функции цвета.
Поскольку функции кнопок ввода, показанных на фиг.9, отличаются от функций кнопок ввода, показанных на фиг.10, платформа 301 собственного воплощения должна выбирать обозначения, которые содержат информацию о кнопках ввода. Как описано выше, кнопки ввода, показанные на фиг.9, обозначают операции воспроизведения видеоданных, звуковых данных и данных субтитров. Когда платформа 301 собственного воплощения принимает одну из кнопок ввода, показанных на фиг.9, в качестве входной команды 310 пользователя, платформа 301 собственного воплощения преобразует принятые кнопки ввода в команды, показанные на фиг.11А, фиг.11В и фиг.11С и информирует проигрыватель 300 кинофильмов о преобразованных командах.
С другой стороны, поскольку кнопки ввода, показанные на фиг.10 представляют собой входные команды 310 пользователя для ГИП, уровень 302 сценария, который формирует структуру экрана и генерирует кнопки, должен получить информацию об этих вводимых командах. Когда платформа 301 собственного воплощения принимает одну из кнопок ввода, показанных на фиг.10, в качестве входной команды 310 пользователя, платформа 301 собственного воплощения преобразует кнопку ввода в событие 314, показанное на фиг.2, и информирует уровень 302 сценария о событии 314. На фиг.12 показаны примеры события 314 кнопки в соответствии с кнопками ввода.
На фиг.9 и фиг.10 также показаны кнопки ввода в отношении к операциям изменения потока, такие как кнопка VK_ANGLE, кнопка VK_SUBTITLE и кнопка VK_AUDIO. Эти кнопки ввода представляют собой кнопки ввода, которые выполняют те же функции, что и методы изменения потока, которые выполняет программа сценария для проигрывателя 300 кинофильмов.
Далее будут подробно описаны команды, показанные на фиг.11А, фиг.11В и фиг.11С. Команда uo_timeSearch(playListTime) обозначает воспроизведение списка воспроизведения, который воспроизводит с обозначенного момента времени. Аргумент playListTime представляет время списка воспроизведения, когда начало списка воспроизведения равно 0. Поскольку эта команда не обозначает номер списка воспроизведения, время, представленное аргументом playListTime, представляет собой обозначенное время в диапазоне воспроизводимого списка воспроизведения. Команда uo_play() обозначает начало воспроизведения с заданной скоростью воспроизведения, такой как нормальная скорость воспроизведения. Положение начала списка воспроизведения определяют в соответствии с информацией 324 возобновления. Когда отсутствует информация, соответствующая информации 324 возобновления, операция пользователя становится недействительной. Эта команда соответствует методу выполнения play() без обозначенного номера списка воспроизведения. С помощью такой команды пользователь не может обозначить номер списка воспроизведения.
Команда uo_playChapter(chapterNumber) начинает воспроизведение списка воспроизведения, воспроизводимого от раздела, обозначенного аргументом chapterNumber. Если номер раздела не обозначен, эта команда начинает воспроизведение списка воспроизведения с начала воспроизводимого раздела. Эта команда соответствует методу playChapter() без обозначенного номера раздела. Команда uo_playPrevChapter() начинает воспроизведение списка воспроизведения с непосредственно предшествующего раздела. Команда uo_playNextChapter() начинает воспроизведение списка воспроизведения с непосредственно следующего раздела. Команда uo_stop() останавливает воспроизведение списка воспроизведения.
Команда uo_jumpToEnd() выполняет переход к концу списка воспроизведения. Эта команда соответствует операции пользователя, которая, обеспечивает остановку воспроизведения проигрывателя 300 кинофильмов и генерирует событие playListEnd. В соответствии с этой командой, уровень 302 сценария выполняет обработчик onPlayListEnd события. Команда uo_forwardScan(speed) выполняет воспроизведение вперед списка воспроизведения со скоростью воспроизведения, обозначенной аргументом скорости. Команда uo_backwardScan(speed) воспроизводит в направлении назад список воспроизведения со скоростью воспроизведения, обозначенной аргументом скорости. Аргумент скорости в этих командах uo_forwardScan(speed) и uo_backwardScan(speed) зависит от варианта воплощения видеопроигрывателя УМД.
Команда uo_playStep(forward) выполняет пошаговое воспроизведение вперед списка воспроизведения. Команда uo_playStep(backward) выполняет пошаговое воспроизведение в направлении назад списка воспроизведения. Команда uo_pauseOn() включает паузу воспроизведения списка воспроизведения в соответствии с операцией пользователя. Команда uo_pauseOff() отменяет состояние паузы воспроизведения списка воспроизведения в соответствии с операцией пользователя.
Команда uo_changeAudioChannel (value) изменяет канал данных звука или один канал воспроизведения двух монофонических каналов. Когда выполняется эта команда, значение флага audioFlag должно быть соответствующим образом изменено. Команда uo_setAudioEnabled(Boolean) включает/выключает звуковой поток. Когда выполняется эта команда, значение флага audioFlag должно быть изменено соответствующим образом, Команда uo_setSubtitleEnabled(Boolean) включает/выключает поток субтитров. Когда выполняется эта команда, значение флага subtitleFlag должно быть соответствующим образом изменено. Команда uo_angleChange() изменяет угол отображения. Когда в проигрыватель 300 кинофильмов поступает информация об операции пользователя для этой команды, проигрыватель 300 кинофильмов информирует уровень 302 сценария о событии angleChange. Команда uo_audiochange(audioStrcamNumber) изменяет воспроизводимый звуковой поток. Команда uo_subtitleChange(subtitleStreamNumber) изменяет воспроизводимый поток субтитров.
Далее будут подробно описаны взаимозависимость между событиями, показанная на фиг.12, и способы проигрывателя 300 кинофильмов. Событие меню выполняет переход к меню. Платформа 301 собственного воплощения информирует уровень 302 сценария, а не проигрыватель 300 кинофильмов об этом событии. Когда уровень 302 сценариев получает события меню, уровень 302 сценария выполняет обработчик события onMenu. Событие выхода представляет собой событие, которое платформа 301 собственного воплощения вырабатывает, когда она заканчивает видеоприкладную программу УМД. Когда уровень 302 сценария получает выход из события, уровень 302 сценария выполняет обработчик события onExit.
Событие вверх, событие вниз, событие влево, событие вправо, событие focusIn, событие focusOut, событие проталкивания и событие отмены представляют собой события, которые возникают, когда фокусируются на изображениях кнопок, отображаемых как части ГИП на экране. Платформа 301 собственного воплощения информирует уровень 302 сценария, а не проигрыватель 300 кинофильмов об этих событиях. Когда выполняется фокусирование на изображении кнопки, например, с помощью курсора, отображаемого на экране, представляют координаты изображения кнопки, что позволяет выбирать это изображение кнопки. Событие вверх, событие вниз, событие влево и событие вправо возникают, когда фокусируются, соответственно, на изображении кнопки вверх, изображении кнопки вниз, изображении кнопки влево и изображении кнопки вправо. Событие focusIn возникает, когда фокусируются на изображении любой кнопки. Событие focusOut происходит, когда устраняют фокусирование на любом из изображений сфокусированных кнопок. Событие проталкивания возникает, когда выполняют операцию нажатия на любое из фокусированных изображений кнопки. Событие отмены возникает, когда выполняют операцию отмены в противоположность операции нажатия на любое изображение кнопки.
Событие autoPlay и событие continuPlay представляют собой события, которые обеспечивают начало выполнения сценария уровнем 302 сценария. Событие autoPlay представляет собой событие, которое обеспечивает автоматическое начало выполнения сценария при загрузке диска. Событие continuePlay обеспечивает возобновление выполнения сценария от положения, в котором сценарий был остановлен, в соответствии с примером информации 324 возобновления, при загрузке диска.
Существуют программы, которые выполняют при возникновении событий, показанных на фиг.12. Эти программы, соответствующие событиям, называются обработчиками события. События и обработчики событий могут быть скоррелированы с использованием, например, названий. Например, названия обработчиков событий создают путем добавления префикса "on" к названиям события. На фиг.13 и на фиг.14 показаны примеры обработчиков событий. Когда разработчик содержания описывает содержание обработчиков событий, видеопроигрыватель УМД может выполнять различные операции, которые были назначены разработчиком содержания.
На фиг.13 показаны примеры событий, которые имеет проигрыватель 300 кинофильмов, и соответствующие обработчики события. События, показанные на фиг.13, соответствуют событию 312, показанному на фиг.2. Проигрыватель 300 кинофильмов информирует уровень 302 сценария о событиях, показанных на фиг.13. Обработчики события представляют собой, своего рода, интерфейсы. Содержание обработчиков события выполнено разработчиком содержания с использованием языка сценария. Поскольку обработчики события имеют такую структуру, когда происходят события, могут быть выполнены операции, назначенные разработчиком содержания.
Метка события и обработчик события onMark() выполняются, когда детектируют метку события. Метка события внедрена, например, в список воспроизведения. В то время как проигрыватель 300 кинофильмов воспроизводит список воспроизведения, проигрыватель 300 кинофильмов детектирует список воспроизведения. Когда проигрыватель 300 кинофильмов детектирует метку события, проигрыватель 300 кинофильмов информирует уровень 302 сценария о метке события. Уровень 302 сценария выполняет обработчик события onMark(), соответствующий метке события. Аналогично, событие playListEnd и обработчик события onPlayListEnd() выполняются, когда воспроизведение списка воспроизведения заканчивается. Раздел событий и обработчик события onChapter() выполняют, когда детектируют метку раздела. Метка раздела внедрена, например, в список воспроизведения и детектируется проигрывателем 300 кинофильмов при воспроизведении списка воспроизведения.
Событие angleChange и обработчик события onAngleChange() выполняются, когда назначается изменение угла обзора при выполнении операции пользователя. Например, когда кнопка ввода VK_ANGLE вводится в платформу 301 собственного воплощения, при выполнении операции пользователя, в качестве входной команды 310 пользователя, платформа 301 собственного воплощения преобразует входную команду 310 пользователя в команду uo_angleChange() и передает ее в проигрыватель 300 кинофильмов. Проигрыватель 300 кинофильмов генерирует событие angleChange, соответствующее команде uo_angleChange, и передает событие angleChange на уровень 302 сценария. Уровень 302 сценария выполняет обработчик события onAngleChange(), соответствующий событию angleChange. Аналогично, событие audioChange и обработчик события onAudioChange() выполняются, когда назначается изменение звука в соответствии с операцией пользователя. Событие subtitleChange и обработчик события onSubtitleChange() выполняются, когда назначается изменение субтитров при выполнении операции пользователя.
На фиг.14 показаны примеры обработчиков событий, которые имеет объект системы. Обработчики событий, показанные на фиг.14, представляют собой обработчики событий, которые заранее присутствуют в платформе 301 собственного воплощения. Платформа 301 собственного воплощения информирует уровень 302 сценария об обработчиках события.
Событие menu и обработчик события onMenu() выполняют переход к меню. Событие menu представляет собой событие, при наступлении которого платформа 301 собственного воплощения информирует уровень 302 сценария, когда кнопку меню нажимают при выполнении операции пользователя. Уровень 302 сценария принимает событие, выполняет соответствующий обработчик события onMenu(), и располагает и отображает части ГИП, которые составляют экран меню, с использованием обработчика события onMenu(). Выход из события и обработчик события onMenu() представляет собой событие и соответствующий обработчик события, которые платформа 301 собственного воплощения генерирует, когда она заканчивает видеоприкладную программу УМД.
Когда операция пользователя или тому подобное обозначает завершение операции видеопроигрывателя УМД, платформа 301 собственного воплощения информирует уровень 302 сценария о выходе из события. Когда уровень 302 сценария принимает выход из события, сценарий выполняет процесс выхода с использованием обработчика события onExit(). Событие autoPlay, обработчик события onAutoPlay(), событие continuePlay и обработчик события onContinuePlay() начинает выполнение соответствующих сценариев.
Помимо обработчиков события для системного объекта, существуют обработчики события для кнопок. Однако обработчики события для кнопок не имеют непосредственного отношения к настоящему изобретению, их описание здесь не приведено.
Далее, со ссылкой на блок-схему последовательности операций, показанную на фиг.15, будет кратко описан пример процесса, который выполняет предоставленную программу при возникновении события ввода команды пользователя. На фиг.15 показан пример, на котором, в то время как видеопроигрыватель УМД воспроизводит данные с диска в нормальном режиме, когда пользователь нажимает кнопку "следующий", для того, чтобы проигрыватель УМД воспроизводил следующий раздел, видеопроигрыватель УМД переходит к следующему разделу в соответствии с кнопкой ввода, начинает воспроизводить следующий раздел и отображает заранее подготовленное сообщение на экране.
В то время как видеопроигрыватель УМД нормально воспроизводит данные с диска, когда пользователь нажимает кнопку "следующий" на блоке дистанционного управления видеопроигрывателя УМД (на этапе S10), сигнал кнопки VK_NEXT поступает в качестве входной команды 310 пользователя в платформу 301 собственного воплощения. Платформа 301 собственного воплощения генерирует команду пользователя uo_playNextChapter(), соответствующую входной команде 310 пользователя (на этапе S11). Платформа 301 собственного воплощения информирует проигрыватель 300 кинофильмов о команде пользователя uo_playNextChapter().
Когда проигрыватель 300 кинофильмов принимает команду uo_playNextChapter(), проигрыватель 300 кинофильмов выполняет поиск в базе данных 320 положения метки следующего раздела, на основе текущего положения воспроизведения, которое соответствует информации списка воспроизведения (на этапе S12). На этапе S13 определяется, существует ли метка следующего раздела. Когда результат определения представляет, что метка следующего раздела не существует, проигрыватель 300 кинофильмов не выполняет операцию перехода к разделу, но продолжает текущую операцию воспроизведения.
В отличие от этого, когда результат определения на этапе S13 представляет, что метка следующего раздела существует, поток обработки переходит на этап S14. На этапе S14 проигрыватель 300 кинофильмов прекращает текущую операцию воспроизведения и получает положение байта метки следующего раздела в файле АВ потока клипа из информации характерной точки файла информации клипа базы данных 320. На этапе S15 проигрыватель 300 кинофильмов обращается к полученному положению байта файла и начинает воспроизведение потока из этого положения.
После этапа S16 выполняется процесс, который отображает на экране сообщение, которое информирует пользователя о том, что произошла смена раздела. Когда раздел меняют, и воспроизведение начинается с начала этого раздела, происходит событие раздела (на этапе S16). Например, проигрыватель 300 кинофильмов детектирует метку раздела в начале раздела, и при этом происходит событие раздела. Проигрыватель 300 кинофильмов информирует уровень 302 сценария о событии раздела. Кроме этого события проигрыватель 300 кинофильмов также передает в уровень 302 сценария номер раздела, к которому будет выполнен переход. Уровень 302 сценария начинает выполнение обработчика события, соответствующего событию, информация о котором поступила, например, обработчик события onChapter() (на этапе S17).
В этом примере предполагается, что операция, которая отображает на экране сообщение, которое представляет, что произошла смена раздела, описана в обработчике события. Сценарий уровня 302 сценария выполняет обработчик события, получает номер раздела, информацию о котором проигрыватель 300 кинофильмов передал в уровень 302 сценария при возникновении этого события (на этапе S18), и обеспечивает отображение на экране платформы 301 собственного воплощения заданного сообщения, которое представляет, например, начало полученного номера раздела. В соответствии с этой командой, платформа 301 собственного воплощения отображает на экране сообщение (на этапе S19) и заканчивает процесс обработчика события (на этапе S20).
В описанном выше процессе, когда пользователь выполняет операцию с кнопкой "следующий", проигрыватель кинофильма 300 начинает воспроизведение следующего раздела, при этом проигрыватель 300 кинофильмов выполняет операцию перехода раздела и отображает на экране сообщение, которое представляет начало раздела, когда проигрыватель 300 кинофильмов начинает воспроизведение следующего раздела, переход к которому осуществляется.
Таким образом, событие ввода команды пользователя обеспечивает изменение состояния проигрывателя 300 кинофильмов. Кроме того, событие ввода команды пользователя приводит к тому, что возникает новое событие. При возникновении новых событий проигрыватель 300 кинофильмов может выполнять различные процессы.
На фиг.16 показан процесс, выполняемый после загрузки диска в видеопроигрыватель УМД до тех пор, пока диск не будет выгружен из него. На фиг.17 заштрихованные этапы представляют состояния, в которых выполняется сценарий.
Когда пользователь устанавливает диск в заданном положении в видеопроигрывателе УМД, он загружает этот диск в соответствии с заданной операцией, в результате чего видеопроигрыватель УМД может воспроизводить видеоданные с диска (на этапе S30). Когда диск загружен, платформа 301 собственного воплощения обращается к информации 324 возобновления и загружает информацию непрерывного воспроизведения, соответствующую этому диску, из информации 324 возобновления (на этапе S31).
После этого обращаются к информации 324 возобновления, соответствующей этому диску. Определяют, существует ли информация непрерывного воспроизведения (на этапе S32). Когда информация непрерывного воспроизведения существует, платформа 301 собственного воплощения информирует уровень сценария о событии continuePlay. Уровень 302 сценария выполняет обработчик события onContinuePlay, соответствующий событию continuePlay, информация о котором поступила (на этапе S33). Когда результат определения на этапе S32 представляет, что информация непрерывного воспроизведения, соответствующая данному диску, не существует, поток обработки переходит на этап S34. На этапе S34 платформа 301 собственного воплощения информирует уровень 302 сценария о событии autoPlay. Уровень 302 сценария выполняет обработчик события onAutoPlay, соответствующий событию autoPlay.
На этапе S35 операцию воспроизведения диска и другие операции выполняют в соответствии с содержанием обработчика события onAutoPlay и обработчика события onContinuePlay. Затем выполняют событие, которое происходит в соответствии с операцией воспроизведения диска, и обработчик события, соответствующий этому событию.
Когда платформа 301 собственного воплощения генерирует выход из события, поток обработки переходит к этапу S36. На этапе S36 уровень 302 сценария выполняет обработчик события onExit, соответствующий выходу из события. Обработчик события onExit выполняет процесс, который заканчивает видеоприкладную программу УМД. Выход из события генерируют с помощью платформы 301 собственного воплощения, в соответствии с входной командой 310 пользователя, как заданную операцию, например, выполняемую с помощью пульта дистанционного управления.
Когда процесс сценария в соответствии с обработчиком события onExit заканчивается, работает платформа 301 собственного воплощения. На этапе S37 проигрыватель 300 кинофильмов выполняет процесс, который останавливает операцию воспроизведения. В этот момент состояние, которое существует непосредственно перед остановкой проигрывателем 300 кинофильмов операции воспроизведения, сохраняют как информацию непрерывного воспроизведения в информации 324 возобновления. Операция воспроизведения для диска заканчивается (на этапе S38). Если операция воспроизведения для того же диска не выполнялась (на этапе S39), поток переходит на этап S40. На этапе S40 платформа 301 собственного воплощения выгружает диск и заканчивает последовательность этапов процесса обработки. Когда операция воспроизведения для этого диска выполнена, поток возвращается на этап S31.
На фиг.17 показан пример структуры файла сценария. Как показано на фиг.1, файл сценария представляет собой файл "SCRIPT.DAT", который составляет уровень 302 сценария. Файл сценария состоит из группы обработчика события и участка основного процесса. Группа обработчика события состоит из одного или множества обработчиков события. Всякий раз, когда уровень 302 сценария информирует о возникновении события, вызывают и выполняют обработчик события, соответствующий событию, информация о котором поступила. Участок основной обработки описывает определения глобальных переменных, используемых в обработчиках события. Участок основной обработки первоначально выполняется один раз.
На фиг.18 показан пример процедуры, которую выполняет обработчик события onAutoPlay(). Когда пользователь загружает диск в видеопроигрыватель 300 УМД и вводит команду на выполнение операции воспроизведения диска с начала (на этапе S50), проигрыватель 300 кинофильмов выполняет эту процедуру. На этапе S51 платформа 301 собственного воплощения определяет, содержит ли сценарий обработчик события onAutoPlay(). Когда сценарий содержит обработчик события onAutoPlay(), платформа 301 собственного воплощения информирует уровень 302 сценария о событии autoPlay (на этапе S52). На этапе S54 уровень 302 сценария выполняет обработчик события onAutoPlay(). Таким образом, проигрыватель 300 кинофильмов автоматически начинает воспроизведение данных с загруженного диска.
В отличие от этого, когда результат определения на этапе S51 показывает, что сценарий не содержит обработчик события onAutoPlay(), поток обработки переходит на этап S53. Платформа 301 собственного воплощения информирует уровень 302 сценария о выходе из события. В этом случае, когда пользователь выполняет операцию с кнопкой меню для включения операции воспроизведения на экране меню, который выполнен на основе платформы 301 собственного воплощения, проигрыватель 300 кинофильмов начинает воспроизведение данных с диска. Когда уровень 302 сценария имеет обработчик события onExit(), уровень 302 сценария выполняет обработчик события onExit().
На фиг.19 показан пример процедуры, которую выполняет обработчик события onContinuePlay(). Когда пользователь загружает диск в видеопроигрыватель УМД и вводит команду на выполнение проигрывателем 300 кинофильмов операции непрерывного воспроизведения (на этапе S60), проигрыватель 300 кинофильмов выполняет эту процедуру. На этапе S61 платформа 301 собственного воплощения определяет, существует ли информация 324 возобновления, соответствующая загруженному диску. Когда информация 324 возобновления не существует, поток обработки переходит на этап S62. На этапе S62 проигрыватель 300 кинофильмов выполняет операцию воспроизведения диска с начала.
Когда информация 324 возобновления, соответствующая загруженному диску, существует, поток обработки переходит на этап S63. На этапе S63 платформа 301 собственного воплощения определяет, содержит ли сценарий обработчик события onContinuePlay(). Когда сценарий содержит обработчик события onContinuePlay(), платформа 301 собственного воплощения информирует уровень 302 сценария об обработчике события onContinuePlay(). В соответствии с этим, уровень 302 сценария выполняет обработчик события onContinuePlay() (на этапе S64). Таким образом, проигрыватель 300 кинофильмов возобновляет воспроизведение с загруженного диска в соответствии с обработчиком события onContinuePlay().
В отличие от этого, когда результат, определенный на этапе S63, представляет, что сценарий не содержит обработчик события onContinuePlay(), поток обработки переходит на этап S65. На этапе S65 платформа 301 собственного воплощения выполняет принятый по умолчанию обработчик события onContinuePlay(). Принятый по умолчанию обработчик события onContinuePlay() просто начинает операцию воспроизведения из последнего положения окончания воспроизведения, в соответствии с примером информации 324 возобновления.
Интерфейсы пользователя обработчика события onAutoPlay и обработчика события onContinuePlay не ограничиваются этими примерами. Вместо этого можно использовать разные способы. Например, на фиг.19, на этапе S60, после того, как пользователь вводит команду на выполнение проигрывателем 300 кинофильмов операции непрерывного воспроизведения, платформа 301 собственного воплощения определяет, существует ли информация 324 возобновления, соответствующая загруженному диску. Вместо этого, наоборот, вначале платформа 301 собственного воплощения может определять, существует ли информация 324 возобновления, соответствующая загруженному диску. Когда информация 324 возобновления существует, платформа 301 собственного воплощения может спросить пользователя, следует ли выполнить операцию непрерывного воспроизведения.
На фиг.20 показан пример обработки, выполняемой после окончания операции воспроизведения. В то время как проигрыватель 300 кинофильмов выполняет операцию воспроизведения диска, когда пользователь вводит в проигрыватель 300 кинофильмов команду остановки операции воспроизведения (на этапе S70), проигрыватель 300 кинофильмов выполняет эту обработку. Когда пользователь вводит входную команду 310, которая обеспечивает остановку операции воспроизведения проигрывателя 300 кинофильмов, в платформу 301 собственного воплощения, она начинает процесс выхода (на этапе S71). Процесс выхода состоит из, например, следующих трех этапов:
(1) ограничивается возникновение новых событий,
(2) отбрасываются обработчики события, которые были поставлены в очередь, и
(3) в проигрыватель 300 кинофильмов вводится команда управления uo_stop().
Платформа 301 собственного воплощения выполняет процесс выхода на этапе S71. После того, как платформа 301 собственного воплощения прекращает выполнение текущего обработчика события (на этапе S72), поток переходит на этап S73. На этапе S73 платформа 301 собственного воплощения информирует уровень 302 сценария о выходе из события. В соответствии с этим, уровень 302 сценария выполняет onExit() (на этапе S74). Обработчик события onExit() выполняет, например, заданный процесс последующей обработки, выполняемый после окончания операции воспроизведения и способ setUserData, который записывает данные установок пользователя.
На этапе S75 платформа 301 собственного воплощения выполняет выход из процесса. При выходе из процесса платформа 301 собственного воплощения сохраняет информацию непрерывности, например, в энергонезависимом запоминающем устройстве (а именно, создает резервную копию состояния, которое существовало непосредственно перед окончанием операции воспроизведения, в информации 324 возобновления) и представляет системное меню на экране.
Модель проигрывателя может воспроизводить видеоданные, звуковые данные и данные субтитров. Поскольку события, которые обозначил разработчик содержания, возникают во время воспроизведения, которые он или она назначил, и выполняются соответствующие обработчики событий, которые он или она назначил, могут быть выполнены операции, которые он или она назначил. Кроме того, когда пользователь выполняет операции с видеопроигрывателем УМД, который выполняет операцию воспроизведения диска, платформа 301 собственного воплощения информирует проигрыватель 300 кинофильмов с передачей команды, соответствующей операции пользователя, в результате чего состояние проигрывателя изменяется на состояние, которое обозначил пользователь. Кроме того, платформа 301 собственного воплощения информирует уровень 302 сценария о событии, соответствующем входной команде пользователя. В результате, уровень 302 сценария может выполнить операции, которые разработчик содержания назначил в соответствии с операциями пользователя. Когда модель проигрывателя имеет такую структуру, пользователь может интерактивно выполнять операции с видеопроигрывателем для воспроизведения видеоданных, данных звука и данных субтитров.
5. Пример программы сценария
Далее будет описан пример программы сценария уровня 302 сценария. Предполагается, что разработчик содержания создал поток воспроизведения содержания, как показано на фиг.21. Содержание, показанное на фиг.21, имеет в качестве элементов отображения списки 400 и 401 воспроизведения, верхнее меню 402 и сообщение 403. Список 400 воспроизведения используется для отображения сообщений предупреждения, которые автоматически отображаются при загрузке диска. Список 401 воспроизведения представляет собой основную часть кинофильма, как пример содержания. Верхнее меню 402 имеет части ГИП, такие как кнопки, с помощью которых пользователь обеспечивает воспроизведение списка 401 воспроизведения. Сообщение 403 отображается в любой момент воспроизведения списка 401 воспроизведения.
Кроме того, в структуре, показанной на фиг.21, предусмотрено несколько обработчиков событий. Когда диск загружают в видеопроигрыватель УМД, обработчик события onAutoPlay() автоматически воспроизводит список 400 воспроизведения с диска и отображает сообщение предупреждения на экране. Обработчик события onPlayListEnd() представляет собой обработчик события, который вызывают, когда заканчивается воспроизведение списка воспроизведения. В примере, показанном на фиг.21, когда заканчивается воспроизведение списка 400 воспроизведения и списка 401 воспроизведения, вызывают обработчик события onPlayListEnd(). Другими словами, обработчик события onPlayListEnd() определяет, какой из списков воспроизведение закончен. Когда закончено воспроизведение списка 400 воспроизведения, обработчик onPlayListEnd() события начинает воспроизведение списка 401 воспроизведения. Когда закончено воспроизведение списка 401 воспроизведения, обработчик onPlayListEnd события вызывает верхнее меню 402.
Обработчик события onMenu() вызывают, когда пользователь выполняет операции с кнопкой меню. Обработчик события onMenu() вызывает верхнее меню 402 и отображает его на экране. Обработчик события onMark() выполняется, когда истекает время воспроизведения, обозначенное меткой Mark. В примере, показанном на фиг.21, метка Mark используется в списке 401 воспроизведения. Когда воспроизводят список 401 воспроизведения и время воспроизведения, обозначенное меткой Mark, истекает, сообщение 403 отображается на экране.
В примере, показанном на фиг.21, когда диск загружают в видеопроигрыватель УМД, вызывают обработчик события onAutoPlay. Обработчик события onAutoPlay воспроизводит список 400 воспроизведения и отображает предупреждающее сообщение. После того, как время воспроизведения списка 400 воспроизведения истечет, в конце списка 400 воспроизведения вызывают обработчик события onPlayListEnd. Обработчик события onPlayListEnd определяет, что список 400 воспроизведения был полностью воспроизведен и воспроизводит следующий список 401 воспроизведения. Когда пользователь выполняет операцию с кнопкой меню при воспроизведении списка 401 воспроизведения, вызывают обработчик события onMenu. Обработчик события onMenu отображает верхнее меню 402 на экране. Обработчик события onMenu начинает с начала воспроизведение списка 401 воспроизведения, в соответствии с операцией, заданной в верхнем меню 402. Когда время воспроизведения списка 401 воспроизведения истекает для времени, обозначенного меткой Mark, вызывают обработчик события onMark. Обработчик события onMark отображает на экране сообщение 403. Когда список 401 воспроизведения будет полностью воспроизведен, вызывают обработчик события onPlayListEnd. Обработчик события определяет, что список 401 воспроизведения был полностью воспроизведен и отображает на экране верхнее меню 402.
На фиг.22 показан пример программы сценария, который выполняет операции, показанные на фиг.21. Как описано выше, программа сценария имеет обработчики события и выполняет их при возникновении соответствующих событий. Программу сценария сохраняют в файле "SCRIPT.DAT", который будет описан ниже.
Метод "movieplayer.play()" обеспечивает воспроизведение проигрывателем 300 кинофильмов списка воспроизведения. Номер списка воспроизведения, который должен быть воспроизведен, описан в круглых скобках (), как аргумент. После воспроизведения списка воспроизведения возникает событие playListEnd. Когда возникает событие playListEnd, обработчик события вызывает сценарий movieplayer.onPlayListEnd(). В этот момент, в дополнение к событию playListEnd, в сценарий поступает объект event_info. Номер списка воспроизведения списка воспроизведения, который был полностью воспроизведен и т.д., сохраняют в объекте event_info. Сценарий может изменить следующую операцию, в соответствии с содержанием объекта event_info.
6. Структура управления файлами
Далее, со ссылкой на фиг.23, будет описана структура управления файлом в соответствии с видеостандартом УМД. Файлами управляют иерархически в структуре директории и записывают на диск. Может использоваться дисковая файловая система, стандартизированная Международной организацией стандартизации (МОС, ISO) 9660 или может использоваться Универсальный формат диска (UDF, УФД).
Файл "TITLEID.DAT" и директория "VIDEO" размещают в корневой директории. Директория "RESOURSE", директория "CLIP", директория "STREAM" и файл "PLAYLIST.DAT" размещены в директории "VIDEO".
Файл "TITLEID.DAT" представляет собой файл, в котором сохраняется идентификатор названия, который отличается для каждого названия (тип содержания). Один диск имеет один файл "TITLEID.DAT".
Файл "SCRIPT.DAT" размещен в директории "RESOURCE". Как описано выше, в файле "SCRIPT.DAT" сохранена программа сценария, которая составляет уровень 302 сценария. Обычно в директории "RESOURCE" размещен один файл "SCRIPT.DAT". Вместо этого множество файлов "SCRIPT.DAT" может быть размещено в директории "RESOURCE". В этом случае части названий файла изменяются так, что они становятся уникальными. Множество файлов "SCRIPT.DAT" используется для разных языков отображения. В этом случае, однако, одновременно используется один файл "SCRIPT.DAT".
По меньшей мере, один файл информации клипа размещается в директории "CLIP". Файл информации клипа имеет название файла, состоящее из участка строки знаков, имеющей до пяти знаков, например, "00001" (в данном примере, цифр), точку, используемую как разделитель, и участок расширения, такой как "CLP". Участок расширения "CLP" представляет, что файл представляет собой файл информации клипа.
По меньшей мере, один файл АВ потока клипа размещен в директории под названием "STREAM". Файл АВ потока клипа имеет название файла, состоящее из участка строки знаков, имеющего до пяти знаков, например, "00001" (в данном примере, цифр), точку, используемую как разделитель, и участок расширения, такой как "PS". Участок расширения "PS" представляет, что файл представляет собой файл АВ потока клипа. В соответствии с вариантом выполнения настоящего изобретения, файл АВ потока клипа представляет собой файл MPEG2 (Экспертная группа по кинематографии 2), в программный поток, в котором мультиплексированы видеопоток, звуковой поток и поток субтитров, и сохранен в файле, идентифицированном участком "PS" расширения.
Как описано выше, файл АВ потока клипа представляет собой файл, в котором видеоданные и данные звука кодированы со сжатием и мультиплексированы с разделением времени. Таким образом, когда файл АВ потока клипа считывают и декодируют, получают видеоданные и данные звука. Файл информации клипа представляет собой файл, который описывает характеристики файла АВ потока клипа. Таким образом, файл информации клипа и файл АВ потока клипа скоррелированы. В соответствии с вариантом выполнения настоящего изобретения, поскольку участки строки знаков, имеющие до пяти знаков в названиях файлов файла информации клипа и файла АВ потока клипа, являются одинаковыми, можно легко получить взаимозависимость между ними.
Файл "SCRIPT.DAT" представляет собой файл сценария, который описывает программу сценария. В файле "SCRIPT.DAT" сохранена программа, которая обеспечивает возможность интерактивного изменения состояния воспроизведения диска в соответствии с вариантом выполнения настоящего изобретения. Файл "SCRIPT.DAT" считывают до считывания других файлов с диска.
Файл "PLAYLIST.DAT" представляет собой файл списка воспроизведения, который описывает список воспроизведения, который обозначает порядок воспроизведения АВ потока клипа. Далее, со ссылкой на фиг.24-26, будет описана внутренняя структура файла "PLAYLIST.DAT". На фиг.24 показан пример синтаксиса, который представляет всю структуру файла "PLAYLIST.DAT". В данном примере синтаксис описан на языке С, который используется как дескриптивный язык для программ компьютерных устройств. Это относится к таблицам, которые представляют другие синтаксисы.
Поле name_length имеет длину данных 8 битов и представляет длину названия, назначенного файлу списка воспроизведения. Поле name_string имеет длину данных 255 байтов и представляет название, назначенное файлу списка воспроизведения. В поле name_string область от начала до значения длины байта, представленного полем name_length, используется как разрешенное название. Когда значение поля "name_length" равно "10", 10 байт от начала поля name_string интерпретируются как разрешенное название.
Поле number_of_PlayList имеет длину данных 16 битов и представляет количество блоков PlayList(), которые следуют за ним. После поля number_of_PlayLists следует цикл for. Цикл for описывает блоки PlayList(), соответствующие полю number_of_PlayLists. Блок PlayList() представляет собой сам список воспроизведения.
Далее будет описан пример внутренней структуры блока PlayList(). Блок PlayList() начинается с поля PlayList_data_length. Поле PlayList_data_length имеет длину данных 32 бита и представляет длину данных блока PlayList(), включая в себя поле PlayList_data_length. После поля PlayList_data_length следует поле reserved_for_word_alignment, имеющее длину данных 15 битов и флаг capture_enable_flag_PlayList, имеющий длину данных 1 бит. Поле reserved_for_word_alignment и флаг capture_enable_flag_PlayList, имеющий длину данных 1 бит, добавлены к данным в положении 16 бита в блоке PlayList().
Флаг capture_enable_flag_PlayList представляет собой флаг, который представляет, разрешено ли вторичное использование подвижного изображения, которое принадлежит блоку PlayList(), включая флаг capture_enable_flag_PlayList. Когда значение флага capture_enable_flag_PlayList равно, например, "1," это представляет, что в проигрывателе разрешено повторное использование подвижного изображения, которое принадлежит PlayList().
В предыдущем примере флаг capture_enable_flag_PlayList имеет длину данных 1 бит. Вместо этого, флаг capture_enable_flag_PlayList может иметь длину данных, составляющую множество битов, которые описывают множество уровней разрешения вторичного использования. Например, флаг capture_enable_flag_PlayList может иметь длину данных 2 бита. В этом случае, когда значение флага равно "0", вторичное использование подвижного изображения может быть совершенно запрещено. Когда значение флага равно "1", может быть разрешено вторичное использование подвижного изображения, в случае, когда подвижное изображение кодировано со сжатием с определенным разрешением или ниже, например, 64 пикселя х 64 строки. Когда значение флага равно "2", разрешено полное вторичное использование подвижного изображения без каких-либо ограничений. Вместо этого, когда значение бита 0 флага равно "0", вторичное использование подвижного изображения может быть разрешено в прикладных программах воспроизведения содержания. Когда значение бита 1 флага равно "1", вторичное использование подвижного изображения может быть разрешено в других прикладных программах (например, в качестве фонового изображения на экране или изображения экранной заставки) в проигрывателе кинофильма. В этом случае значения битов 0 и 1 флага можно использовать в комбинации.
Поле PlayList_name_length имеет длину данных 8 битов и представляет длину названия, назначенного блоку PlayList(). Поле PlayList_name_string имеет длину данных 255 битов и представляет название, назначенное блоку PlayList(). В поле PlayList_name_string область от начала и до значения длины в байтах, представленного полем PlayList_name_string, используется как разрешенное название.
Поле number_of_PlayItems имеет длину данных 16 битов и представляет количество блоков PlayItem(), которые следуют после него. После поля number_of_PlayItems следует цикл for. Цикл for описывает блоки PlayItem(), соответствующие полю number_of_PlayItems. Блок PlayItem() представляет собой сам элемент воспроизведения.
Блокам PlayItem() блока PlayList назначается информация идентификации (ИД). Например, блоку PlayItem(), описанному в начале блока PlayList(), назначают, например, значение 0. Блокам PlayItem() назначают последовательные номера в порядке их появления, такие как 1, 2 и т.д. Последовательные номера используют как информацию идентификации блоков PlayItem(). Аргумент i цикла for, повторяемый для блоков PlayItem(), можно использовать как информацию идентификации для блоков PlayItem(). После блока PlayItem() следует блок PlayListMark().
Далее, со ссылкой на фиг.25, будет описан пример внутренней структуры блока PlayItem(). Блок PlayItem() начинается с длины поля. Длина поля имеет длину данных 16 битов и представляет длину блока PlayItem(). После длины поля следует поле Clip_Information_file_name_length. Поле Clip_Information_file_name_length имеет длину данных 16 битов и представляет длину названия файла информации клипа, соответствующее блоку PlayItem(). Поле Clip_Information_file_name имеет переменную длину данных в байтах и представляет название файла информации клипа, соответствующего блоку PlayItem(). В поле Clip_Information_file_name область от начала до значения длины в байтах, представленного полем Clip_Information_file_name, используется как разрешенное название. Когда файл информации клипа обозначен с помощью поля Clip_Information_file_name, файл АВ потока клипа, соответствующий файлу информации клипа, можно идентифицировать в соответствии с описанной выше взаимозависимостью названий файла.
Поле IN _time и поле OUT _time имеет длину данных 32 бита каждое. Поле IN _time и поле OUT _time представляет собой информацию времени, которая обозначает положение начала воспроизведения и положение окончания воспроизведения файла АВ потока клипа, который соответствует файлу информации клипа, обозначенному полем Clip_Information_file_name в блоке PlayItem(). С помощью поля IN_time и поля OUT_time можно обозначить другое положение начала воспроизведения, кроме начала файла АВ потока клипа. Аналогично, с помощью поля IN_time и поля OUT_time, можно обозначить другое положение окончания воспроизведения, чем окончание файла АВ потока клипа.
Далее, со ссылкой на фиг.26, будет описан пример внутренней структуры блока PlayListMark(). Блок PlayListMark(), начинается с поля длины. Поле длины имеет длину данных 32 бита и представляет длину блока PlayListMark(). После поля длины следует поле number_of_PlayList_marks. Поле number_of_PlayList_marks имеет длину данных 16 битов и представляет количество блоков Mark(). После поля number_of_PlayList_marks следует цикл for. Цикл for описывает блоки Mark(), соответствующие полю number_of_PlayList_marks.
Далее будет описан пример внутренней структуры блока Mark(). Блок Mark() начинается с поля mark_type. Поле mark_type имеет длину данных 8 битов и представляет тип блока Mark(), включающего в себя поле mark_type. В соответствии с вариантом выполнения, как показано на фиг.27, определено три типа меток, метка раздела, метка индекса и метка события. Раздел представляет собой модуль поиска, который разделяет список воспроизведения (блок PlayList()). Индекс представляет собой модуль поиска, который разделяет раздел. Метка раздела и метка индекса, соответственно, представляют положения раздела и положение индекса, как информацию времени. Метка события представляет собой метку, которая обеспечивает возникновение события.
Поле mark_name_length имеет длину данных 8 битов и представляет длину названия, назначенного блоку Mark(). Поле mark_name_string, по меньшей мере, строки блока Mark() представляет название, назначенное блоку Mark(). В поле mark_name_string область от начала длины в байтах, представленной полем mark_name_length, используется как разрешенное название.
Четыре элемента поля ref_to_PlayItem_id, поля mark_time_stamp, поля entry_ES_stream_id и поля entry_ES_private_stream_id коррелируют с блоком Mark(), определенным в блоке PlayList(), с помощью файла АВ потока клипа. Другими словами, поле ref_to_PlayItem_id имеет длину данных 16 битов и представляет информацию идентификации блока PlayItem(). Таким образом, поле ref_to_PlayItem_id идентифицирует файл информации клипа и файл АВ потока клипа.
Поле mark_time_stamp имеет длину данных 32 бита и обозначает время метки в файле АВ потока клипа. Далее, со ссылкой на фиг.28, будет кратко описано поле mark_time_stamp.На фиг.28 список воспроизведения состоит из трех элементов воспроизведения, обозначенных как 0, 1 и 2 (Playltem (#0), Playltem (#1), и Playltem (#2)). Время t0 списка воспроизведения, включено в элемент 1 воспроизведения (Playltem (#1)). Элементы воспроизведения 0, 1 и 2 соответствуют программным потокам А, В и С файлов АВ потока клипа через файлы информации клипа, соответственно.
В данном случае, когда метка назначена времени t0 списка воспроизведения, значение поля ref_to_PlayItem_id равно "1", что представляет элемент 1 воспроизведения, включающий в себя время t0. Кроме того, время, соответствующее времени t0, в соответствующем файле АВ потока клипа, описано в поле mark_time_stamp.
Возвращаясь к описанию на фиг.26, после поля mark_time_stamp следует поле entry_ES_stream_id и поле entry_ES_private_stream_id. Поле entry_ES_stream_id и поле entry_ES_private_stream_id имеют длину данных 8 битов каждое. Когда блок Mark() скоррелирован с заданным элементарным потоком, поле entry_ES_stream_id и поле entry_ES_private_stream_id идентифицируют элементарный поток. Поле entry_ES_stream_id и поле entry_ES_private_stream_id представляют ИД потока (stream_id) пакетов (packet()), в котором мультиплексированы элементарные потоки, и ИД частного потока (private_stream_id) заголовка частного пакета (private_packet_header()), соответственно.
ИД потока (streamed) пакетов (packet()) и ИД частного потока (private_stream_id) заголовка частного пакета (private_packet_header()) основаны на условиях, относящихся к программному потоку системы MPEG2.
Поле entry_ES_stream_id и поле entry_ES_private_stream_id используются, когда структура разделов АВ потока #0 клипа отличается от структуры АВ потока #1 клипа. Когда блок Mark() не коррелирован с заданным элементарным потоком, значения этих двух полей равны "0".
Далее, со ссылкой на фиг.29-33, будет описана внутренняя структура файла информации клипа. Как описано выше, файл "XXXXX.CLP" информации клипа описывает характеристики и т.д. соответствующего файла "XXXXX.PS" АВ потока клипа, расположенного в директории "STREAM".
На фиг.29 показан пример синтаксиса, который представляет всю структуру файла "XXXXX.CLP" AV потока клипа. Файл "XXXXX.CLP" АВ потока клипа начинается с поля presentation_start_time и поля presentation_end_time. Поле presentation_start_time и поле presentation_end_time имеют длину данных 32 бита каждое и представляют значения времени начала и окончания соответствующего файла AV потока клипа. В качестве информации времени может использоваться метка времени представления (PTS) в системе MPEG2. Метка PTS имеет точность 90 кГц.
После поля presentation_start_time и поля presentation_end_time следует поле reserved_for_word_alignment, которое имеет длину данных 7 битов и флаг capture_enable_flag_Clip, который имеет длину данных 1 бит. Поле reserved_for_word_alignment и флаг capture_enable_flag_Clip, имеющий длину данных 1 бит, присоединены к данным в положении 16-го бита в файле "XXXXX.CLP". Флаг capture_enable_flag_Clip представляет собой флаг, который представляет, разрешено ли вторичное использование подвижного изображения, содержащегося в файле AV потока клипа, соответствующего файлу "XXXXX.CLP". Например, когда значение флага capture_enable_flag_Clip равно, например, "1", это представляет, что в видеопроигрывателе разрешено вторичное использование подвижного изображения файла AV потока клипа, соответствующего файлу "XXXXX.CLP".
Поле number_of_streams имеет длину данных 8 битов и представляет количество блоков StreamInfo(), которые следуют после него. После поля number_of_streams следует цикл for. Цикл for описывает блоки StreamInfo(), соответствующие полю number_of_streams. После цикла for следует блок ЕР_mар().
Далее будет описан пример внутренней структуры блока StreamInfo(). Блок StreamInfo() начинается с длины поля. Длина поля имеет длину данных 16 битов и представляет длину блока StreamInfo(). После длины поля следует поле stream_id и поле private_stream, которые имеют длину данных 8 битов каждое. Как показано на фиг.30, блок StreamInfo() скоррелирован с элементарными потоками. В примере, показанном на фиг.30, когда значение поля stream_id блока StreamInfo() имеет диапазон от "0хЕ0" до "0хЕF," блок StreamInfo() скоррелирован с видеопотоком. Когда значение поля stream_id блока StreamInfo() равно "0xBD," блок StreamInfo() скоррелирован со звуковым потоком Акустического кодирования с адаптивным преобразованием (АКАПР, ATRAC), звуковым потоком Линейной импульсно-кодовой модуляции (ЛИКМ, LPCM) или с потоком субтитров. Когда значение поля private_stream_id блока StreamInfo() находится в диапазоне от "0×00" до "0×0F," от "0×10" до "0×1F" и от "0×80" до "0×9F," блок StreamInfo() скоррелирован со звуковым потоком ATRAC, звуковым потоком LPCM и потоком субтитров соответственно.
На фиг.30 "0x" представляет числа в шестнадцатеричной системе исчисления. Это обозначение относится к следующему описанию.
Блок StreamInfo(), в основном, описывает два типа информации, первый тип, который не изменяется в потоке, второй тип, который изменяется в потоке. Информация, которая не изменяется в потоке, описана в блоке StaticInfo(), в то время как информация, которая изменяется в потоке, описана в блоке DynamicInfo(), которая изменяет точки, обозначенные информацией времени.
После блока StaticInfo() следует поле reserved_for_word_alignment, которое имеет длину данных 8 битов. Поле reserved_for_word_alignment добавлено к данным в байте в блоке StreamInfo(). После поля reserved_for_word_alignment следует поле number_of_DynamicInfo. Поле number_of_DynamicInfo имеет длину данных 8 битов и представляет собой количество блоков DynamicInfo(), которые следуют за ним. После поля number_of_DynamicInfo следует цикл for. Цикл for описывает поля pts_change_point и блоки DynamicInfo(), соответствующие полю number_of_DynamicInfo.
Поле pts_change_point имеет длину данных 32 бита и представляет время, в которое информация блока DynamicInfo() становится разрешенной для PTS. Время, в которое начинается каждый поток, представлено полем pts_change_point и равно полю presentation_start_time, определенному в файле "XXXXX.CLP."
Далее, со ссылкой на фиг.31, будет описан пример внутренней структуры блока StaticInfo(). Содержание блока StaticInfo() зависит от типа соответствующего элементарного потока. Тип соответствующего элементарного потока может быть идентифицирован по значениям поля stream_id и поля private_stream_id, как показано на фиг.30. На фиг.31 показан блок StaticInfo(), содержание которого изменяется в зависимости от типа элементарного потока, который представляет собой видеопоток, звуковой поток или поток субтитров, с использованием условного оператора. Далее блок StaticInfo() будет описан в соответствии с типами элементарных потоков.
Когда элементарный поток представляет собой видеопоток, блок StaticInfo() состоит из поля picture_size, поля frame_rate и флага cc_flag. Поле picture_size и поле frame_rate каждое имеет длину данных 4 бита. Флаг cc_flag имеет длину данных 1 бит. Поле picture_size и поле frame_rate представляют размер изображения и частоту следования кадров в видеопотоке. Флаг cc_flag представляет, содержит ли видеопоток закрытый субтитр. Когда значение флага cc_flag равно, например, "1," видеопоток содержит закрытый субтитр. Поле reserved_for_word_alignment добавлено к данным длиной 16 битов.
Когда элементарный поток представляет собой звуковой поток, блок, StaticInfo() состоит из поля audio_language_code, имеющего длину данных 16 битов, поля channel_configuration, имеющего длину данных 8 битов, флага lfe_existance, имеющего длину данных 1 бит и поля sampling_frequency, имеющего длину данных 4 бита. Поле audio_language_code представляет код языка звукового потока. Поле channel_configuration представляет атрибут канала звуковых данных, такой как монофонические, стереофонические, многоканальные или тому подобное. Поле lfe_existance представляет, содержит ли звуковой поток отдельный низкочастотный канал. Когда значение поля lfe_existance представляет собой, например, "1," звуковой поток содержит отдельный низкочастотный канал. Поле sampling_frequency представляет частоту выборки звуковых данных. Поле reserved_for_word_alignment добавлено в положение 16-ого бита.
Когда элементарный поток представляет собой поток субтитров, блок StaticInfo() состоит из поля subtitle_language_code, имеющего длину данных 16 битов, и флага configurable_flag, имеющего длину данных 1 бит. Поле subtitle_language_code представляет код языка потока субтитров. Поле subtitle_language_code представляет, является ли поток субтитров нормальным субтитром или субтитром для комментария (например, специальным субтитром для описания изображений). Флаг configurable_flag представляет, разрешено ли изменение размера и положения знаков в отображаемом потоке субтитров. Когда значение флага configurable_flag составляет, например, "1," это представляет, что размер и положение знаков отображаемого потока субтитров разрешено изменять. Поле reserved_for_word_alignment добавлено в положении 16-ого бита.
Далее со ссылкой на фиг.32, будет описан пример внутренней структуры блока DynamicInfo(). Блок DynamicInfo(), начинается с поля reserved_for_word_alignment, имеющего длину данных 8 битов. Элементы, которые следуют перед полем reserved_for_word_alignment, зависят от типа элементарного потока. Тип элементарного потока может быть идентифицирован по полю stream_id и полю private_stream_id, описанным со ссылкой на фиг.30. На фиг.32 блок показан DynamicInfo(), содержание которого изменяется в зависимости от типа элементарного потока, который представляет собой видеопоток, звуковой поток или поток субтитров, с использованием условного оператора. Далее будет описан блок DynamicInfo() в соответствии с типом элементарных потоков.
Когда элементарный поток представляет собой видеопоток, блок DynamicInfo() состоит из поля display_aspect_ratio, имеющего длину данных 4 бита. Поле display_aspect_ratio представляет, составляет ли соотношение размеров выходного отображения видеоданных 16:9 или 4:3. Поле reserved_for_word_alignment добавлено к данным в положении 16 битов.
Когда элементарный поток представляет собой звуковой поток, блок DynamicInfo() состоит из поля channel_assignment, имеющего длину данных 4 бита. Когда звуковой поток состоит из двух каналов, поле channel_assignment представляет, является ли выходной сигнал стереофоническим сигналом или представляет собой два монофонических сигнала. Два монофонических сигнала используется для воспроизведения звуковых данных, например, на двух языках. Поле reserved_for_word_alignment присоединено к данным в положении 16 битов.
Когда элементарный поток представляет собой поток субтитров, блок DynamicInfo() состоит из поля reserved_for_word_alignment. Поле reserved_for_word_alignment присоединен к данным в положении 16 битов. Другими словами, в отношении потока субтитров блок DynamicInfo() не определяет атрибут, который изменяется динамически.
Далее, со ссылкой на фиг.33, будет описан пример внутренней структуры блока ЕР_map(). Блок ЕР_map() представляет разрешенное положение начала декодирования (точку входа) потока битов каждого элементарного потока с информацией времени и информацией положения. Информация положения может представлять собой минимальный модуль доступа для носителя записи, на котором записан элементарный поток. Каждый элементарный поток может быть декодирован от положения, представленного блоком ЕР_map().
Поскольку разрешенное положение начала декодирования потока с фиксированной скоростью может быть рассчитано, информация, такая как блоки ЕР_map(), не является необходимой. С другой стороны, для потока с переменной скоростью и потока, размер данных которого изменяется в каждом модуле доступа, такого как поток в соответствии с системой видеокодирования со сжатием MPEG, блок ЕР_map() представляет собой информацию, необходимую для оперативного доступа к данным.
Блок ЕР_map() начинается с поля reserved_for_word_alignment, имеющего длину данных 8 битов. Поле reserved_for_word_alignment присоединено к данным в положении 16 битов. После поля reserved_for_word_alignment следует поле number_of_stream_id_entries. Поле number_of_stream_id_entries имеет длину данных 8 битов и представляет количество элементарных потоков, описанных в блоке ЕР_map(). Первый цикл for описывает поля stream_id, поля private_stream_id и поля number_of_EP_entries, соответствующих полю number_of_stream id_entries. В первом цикле for второй цикл for описывает поля PTS_EP_start и поля RPN_EP_start, соответствующие полю number_of_EP_entries.
Первый цикл for описывает поле stream_id и поле private_stream_id, которые имеют длину данных 8 битов каждый и идентифицируют тип элементарного потока, как показано на фиг.30. После поля stream_id и поля private_stream_id следует поле number_of_EP_entries. Поле number_of_EP_entries имеет длину данных 32 бита и представляет количество точек входа, описанных в элементарном потоке. Второй цикл for описывает поля PTS_EP_start и поля RPN_EP_start, соответствующие полю number_of_EP_entries.
Поле PTS_EP_start и поле RPN_EP_start имеют длину данных 32 бита каждое и сами собой представляют точки входа. Поле PTS_EP_start представляет время точки входа в файле АВ потока клипа с PTS. С другой стороны, поле RPN_EP_start представляет положение точки входа в файле АВ потока клипа в виде модулей по 2048 байт.
В соответствии с вариантом выполнения, один сектор, используемый как модуль доступа на диске, имеет размер 2048 байтов. Таким образом, поле RPN_EP_start представляет положение точки входа файла АВ потока клипа в секторах.
Перед разрешенным положением начала воспроизведения видеопотока должен присутствовать пакет private_stream_2. Пакет private_stream_2 представляет собой пакет, в котором сохранена информация, которую можно использовать для декодирования видеопотока. Таким образом, положение точки входа видеопотока представляет собой положение пакета pack(), в котором сохранен пакет private_stream_2.
Блок ЕР_map коррелирует значения времени АВ потока клипа и положения в файле АВ потока клипа. Таким образом, при использовании информации времени (временной метки) точки доступа АВ потока клипа, в файле АВ потока клипа можно легко выполнить поиск адреса данных, из которого следует считывать данные. В результате, обеспечивается беспрепятственный оперативный доступ к диску.
В соответствии с вариантом выполнения, в блоке ЕР_map() заранее зарегистрированы наборы информации времени и информации положения (наборы из поля PTS_EP_start и поля RPN_EP_start во втором цикле for) для каждого элементарного потока в возрастающем порядке (в порядке убывания). Другими словами, информация времени и информация положения перегруппированы в заданном направлении. Таким образом, для данных может быть выполнен двоичный поиск.
В соответствии с вариантом выполнения настоящего изобретения, как описано выше, элементарный поток видеопотока представляет собой элементарный поток на основе видеостандарта MPEG2. Однако настоящее изобретение не ограничивается этим примером. Например, элементарный поток видеопотока может представлять собой элементарный поток в соответствии с видеостандартом MPEG4 или видеостандартом MPEG4-AVC. Аналогично, в соответствии с вариантом выполнения, как описано выше, элементарный поток звукового потока представляет собой элементарный поток на основе звуковой системы ATRAC. Однако настоящее изобретение не ограничивается таким примером. Вместо этого, элементарный поток звукового потока может представлять собой элементарный поток на основе, например, звуковой системы MPEG 1/2/4.
7. Устройство воспроизведения диска
Далее будет описано устройство воспроизведения диска в соответствии с вариантом выполнения настоящего изобретения. На фиг.34 показан пример структуры устройства 100 воспроизведения диска в соответствии с настоящим изобретением. К шине 111 подключены центральное процессорное устройство (ЦПУ) 112, запоминающее устройство 113, интерфейс 114 привода, входной интерфейс 115, видеодекодер 116, звуковой декодер 117, интерфейс 118 вывода видеоизображения и интерфейс 119 вывода звука. Каждый блок устройства 100 воспроизведения диска может обмениваться видеопотоком, звуковым потоком, различными командами, данными и т.д. с другими блоками через шину 111.
Кроме того, привод 102 диска подключен к интерфейсу 114 привода. Привод 102 диска выполняет обмен данными и командами с шиной 111 через интерфейс 114 привода.
ЦПУ 112 имеет постоянное запоминающее устройство (ПЗУ, ROM) и оперативное запоминающее устройство (ОЗУ, RAM) (не показано). ЦПУ 112 выполняет обмен данными и командами с каждым блоком устройства 100 воспроизведения диска через шину 111 в соответствии с программой и данными, заранее сохраненными в ПЗУ, и управляет всем устройством 100 воспроизведения диска. ОЗУ используется как рабочая память для ЦПУ 112.
Во входной интерфейс 115 подают входной сигнал, который подают из устройства ввода, в котором пользователь выполняет операцию ввода. Устройство ввода представляет собой, например, пульт дистанционного управления, с помощью которого пользователь на расстоянии управляет устройством 100 воспроизведения диска, используя, например, инфракрасный сигнал и кнопки, расположенные на устройстве 100 воспроизведения диска. Входной интерфейс 115 преобразует входной сигнал, переданный из входного устройства, в сигнал управления для ЦПУ 112 и выводит сигнал управления.
На диске 101 записаны в формате, показанном на фиг.23-33, список воспроизведения, программа сценария, файл информации клипа, файл АВ потока клипа и т.д. Когда диск 101 загружают в привод 102 диска, он автоматически воспроизводит данные с диска 101 или в соответствии с операцией ввода пользователя. Файл сценария, файл списка воспроизведения и файл информации клипа, которые считывают с диска 101, передают в ЦПУ 112 и сохраняют, например, в ОЗУ ЦПУ 112. ЦПУ 112 считывает файл АВ потока клипа с диска 101 в соответствии с данными и программой сценария, записанными в ОЗУ.
Файл АВ потока клипа, который считывают с диска 101, временно сохраняют в запоминающем устройстве 113. Видеодекодер 116 декодирует видеопотоки и поток субтитров файла АВ потока клипа, сохраненного в запоминающем устройстве 113, в соответствии с командой, принятой из ЦПУ 112. ЦПУ 112 выполняет обработку изображения, такую как обработка увеличения или обработка уменьшения декодированных видеоданных и данных субтитров, обработку синтезирования или дополнительную обработку для видеопотока и потока субтитров, и получает один поток видеоданных. Обработка изображения может быть выполнена видеодекодером 116 и интерфейсом 118 вывода видеоизображения. Видеоданные помещают в буфер в запоминающем устройстве 113 и передают в интерфейс 118 вывода видеоизображения. Интерфейс 118 вывода видеоизображения преобразует переданные видеоданные в аналоговый видеосигнал и передает аналоговый видеосигнал в терминал 120 вывода видеоизображения.
Аналогично, декодер 117 звука декодирует звуковой поток файла АВ потока клипа, сохраненный в запоминающем устройстве 113, в соответствии с командой, полученной из ЦПУ 112. Декодированные звуковые данные сохраняют в буфере в запоминающем устройстве 113 и передают в интерфейс 119 вывода звука. Интерфейс 119 вывода звука преобразует переданные в него звуковые данные, например, в аналоговый звуковой сигнал, и передает этот аналоговый звуковой сигнал в терминал 121 вывода звука.
В примере каждый блок, показанный на фиг.34, состоит из независимых аппаратных средств. Однако настоящее изобретение не ограничивается этим примером. Например, видеодекодер 116 и/или декодер 117 звука могут состоять из программных средств, которые выполняются в ЦПУ 112.
На фиг.35А и фиг.35В показаны функциональные блок-схемы, подробно описывающие работу устройства 100 воспроизведения диска, показанного на фиг.34. Устройство 100 воспроизведения диска, в основном, состоит из операционной системы 201 и блока 210 воспроизведения видеосодержания. Блок 210 воспроизведения видеосодержания, по существу, представляет собой программное средство, которое работает в операционной системе 201. Вместо этого, блок 210 воспроизведения видеосодержания может состоять из программных и аппаратных средств, которые работают совместно. В следующем описании предполагается, что блок 210 воспроизведения видеосодержания состоит из программного средства. На фиг.35А и фиг.35В привод 102 диска не показан.
Когда включают питание устройства 100 воспроизведения диска, операционная система 201 первоначально включает ЦПУ 112 и выполняет необходимую обработку, такую как исходные установки для каждого блока, и считывает прикладную программу (в данном примере блок 210 воспроизведения видеосодержания) из ПЗУ. Операционная система 201 предоставляет основные услуги, такие как считывание файла с диска 101 и интерпретация файловой системы, для блока 210 воспроизведения видеосодержания, во время работы блока 210 воспроизведения видеосодержания. Например, операционная система 201 управляет приводом 102 диска через интерфейс 114 привода, в соответствии с запросом на считывание файла, переданным из блока 210 воспроизведения видеосодержания, и считывает данные с диска 101. Данные, которые считывают с диска 101, передают в блок 210 воспроизведения видеосодержания под управлением операционной системы 201.
Операционная система 201 имеет функцию многозадачного процесса, который управляет множеством программных модулей, виртуально параллельно, например, под управлением с временным разделением. Другими словами, каждый модуль, который составляет блок 210 воспроизведения видеосодержания, показанный на фиг.35А и фиг.35В, может работать параллельно, с использованием функции многозадачного процесса операционной системы 201.
Далее более конкретно будет описана работа блока 210 воспроизведения видеосодержания. Блок 210 воспроизведения видеосодержания имеет дополнительные внутренние модули и выполняет следующие функции.
(1) Блок 210 воспроизведения видеосодержания определяет, является ли загруженный диск 101 диском, соответствующим видеостандарту УМД (ниже этот диск называется видеодиском УМД).
(2) Когда результат определения представляет, что загруженный диск 101 представляет собой видеодиск УМД, блок 210 воспроизведения видеосодержания считывает файл сценария с диска 101 и передает этот файл сценария в модуль 211 управления сценарием.
(3) Когда результат определения представляет, что загруженный диск 101 представляет собой видеодиск УМД, блок 210 воспроизведения видеосодержания также считывает файлы, которые составляют базу данных (а именно, файл списка воспроизведения, файл информации клипа и т.д.), и передает эти файлы в модуль 212 управления проигрывателем.
Далее будет описана работа модулей блока 210 воспроизведения видеосодержания.
Модуль 211 управления сценарием интерпретирует программу сценария, описанную в файле "SCRIPT.DAT" сценария, и выполняет ее. Как описано в модели проигрывателя, ГИП, который формирует и выводит изображения на экран меню, перемещает курсор в соответствии с входной командой пользователя и изменяет экран меню, выполнен с помощью модуля 219 обработки графических изображений, управляемого в соответствии с программой сценария. В результате выполнения программы сценария модуль 211 управления сценарием может управлять модулем 212 управления проигрывателем.
Модуль 212 управления проигрывателем обращается к информации базы данных, сохраненной в файлах, таких как файл "PLAYLIST.DAT" списка воспроизведения и файл "XXXXX.CLP" информации клипа, которые считывают с диска 101, и выполняет следующее управление для воспроизведения видеосодержания, записанного на диске 101.
(1) Модуль 212 управления проигрывателем анализирует информацию базы данных, такую как информация клипа и список воспроизведения.
(2) Модуль 212 управления проигрывателем управляет модулем 213 подачи данных содержания, модулем 214 управления декодированием и модулем 215 управления буфером.
(3) Модуль 212 управления проигрывателем выполняет управление изменением состояния проигрывателя, такого как воспроизведение, остановка воспроизведения и пауза воспроизведения, и процесс управления воспроизведением, такой как изменение потока в соответствии с командой, полученной из модуля 211 управления сценарием или входного интерфейса 115.
(4) Модуль 212 управления проигрывателем получает информацию времени видеопотока, который воспроизводят из модуля 214 управления декодированием, отображает время и генерирует событие метки.
Модуль 213 подачи данных содержания считывает данные содержания, такие как файл АВ потока клипа, с диска 101 в соответствии с командой, полученной из модуля 212 управления проигрывателем, и передает данные содержания в модуль 215 управления буфером. Модуль 215 управления буфером сохраняет данные содержания в запоминающем устройстве 113, как содержание 215 А буфера. Модуль 213 подачи данных содержания управляет модулем 215 управления буфером для подачи данных содержания, сохраненных в запоминающем устройстве 113, в модуль 216 управления видеодекодером и модуль 217 управления декодером звука, и модуль 218 управления декодером субтитров, в соответствии с запросами, поступающими из них. Кроме того, модуль 213 подачи данных содержания считывает данные содержания с диска 101 так, что количество данных содержания, сохраненных под управлением модулем 215 управления буфером становится заданным количеством.
Модуль 214 управления декодированием управляет операциями модуля 216 управления видеодекодера, модуля 217 управления декодера звука и модуля 218 управления декодера субтитров, в соответствии с командой, полученной из модуля 212 управления проигрывателем. Модуль 214 управления декодированием имеет функцию генерирования внутреннего тактового сигнала и управляет работой модуля 216 управления декодером, модуля 217 управления декодером звука и модуля управления 218 декодером субтитров так, что видеоданные и данные звука выводятся синхронно.
Модуль 215 управления буфером исключительно использует часть запоминающего устройства 113 в качестве пространства 215А буфера. Модуль 215 управления буфером сохраняет указатель на начало данных и указатель записи данных. Модуль 215 управления буфером также имеет внутренние модули функции считывания видеоизображения, функции считывания звука и функции считывания субтитров. Функция считывания видеоизображения имеет указатель считывания видеоизображения. Функция считывания видеоизображения имеет регистр, в котором сохранена информация au_information(), используемая как информация модуля доступа. Функция считывания звука имеет указатель считывания звука. Функция считывания субтитра имеет указатель считывания субтитра и флаг функции считывания субтитра. Флаг функции считывания субтитра управляет разрешением/запретом функции считывания субтитра в соответствии с записанным значением. Когда например в флаг функции считывания субтитра записана "1", функция считывания субтитра становится разрешенной. Когда, например, в флаг функции считывания субтитра записан "0", функция считывания субтитра запрещена.
Функция считывания видеоизображения, функция считывания звука и функция считывания субтитров, которые представляют собой внутренние модули для модуля 215 управления буфером, имеют функции демультиплексирования, которые выполняют демультиплексирование мультиплексированного АВ потока клипа, в который были мультиплексированы видеопоток, звуковой поток и поток субтитров. В соответствии с вариантом выполнения настоящего изобретения, множество элементарных потоков мультиплексированы в соответствии с системой мультиплексирования с временным разделением и в соответствии с форматом программного потока системы MPEG2, и, таким образом, сформирован АВ поток клипа. Таким образом, функция считывания видеоизображения, функция считывания звука и функция считывания субтитров имеет функции демультиплексирования для программных потоков системы MPEG2.
Следовательно, функция считывания видеоизображения считывает значение поля stream_id (см. фиг.30), размещенного в заданном положении видеопотока, и сохраняет это значение. Аналогично, функция считывания звука и функция считывания субтитра считывает значения поля stream_id и поля private_stream_id (см. фиг.30) и сохраняет эти значения. Значения поля stream_id и поля private_stream_id используются для анализа переданного потока битов.
Модуль 216 управления видеодекодером обеспечивает считывание функции считывания видеоизображения модуля 215 управления буфером одного модуля доступа видеоизображения видеопотока из запоминающего устройства 113 и передает этот модуль доступа видеоизображения в видеодекодер 116. Модуль 216 управления видеодекодером управляет видеодекодером 116 для декодирования видеопотока, переданного в видеодекодер 116 в модуле доступа, и генерирует видеоданные. Видеоданные передают в модуль 219 обработки графических изображений.
Аналогично, модуль 217 управления декодером звука обеспечивает считывание с помощью функции считывания звука модуля 215 управления буфером в модуле доступа звука звукового потока из запоминающего устройства 113 и передачу модуля звукового потока в декодер 117 звука. В соответствии с вариантом выполнения настоящего изобретения, модуль доступа (фрейм звука), который составляет звуковой поток, имеет заданную фиксированную длину. Модуль 217 управления декодером управляет декодером 117 звука для декодирования звукового потока, передаваемого в декодер 117 звука в модуле доступа, и генерирует данные звука. Данные звука передают в модуль 242 вывода звука.
Модуль 218 управления декодером субтитров обеспечивает считывание функцией считывания субтитра модуля 215 управления буфером одного модуля доступа субтитра потока субтитра из запоминающего устройства 113 и передачу модуля доступа субтитра в модуль 218 управления декодером субтитра. В соответствии с вариантом выполнения настоящего изобретения модуль доступа субтитра, который составляет поток субтитров, в начале содержит информацию длины. Модуль 218 управления декодером субтитра имеет функцию декодера субтитров, которая может декодировать передаваемый поток субтитров и генерировать данные изображения субтитров. Данные изображения субтитров передают в модуль 219 обработки графических изображений.
Как описано выше, видеоданные, декодированные видеодекодером 116 под управлением модуля 216 управления видеодекодером, и данные изображения субтитров, декодированные модулем 218 управления декодером субтитров, передают в модуль 219 графической обработки. Модуль 219 графической обработки добавляет данные изображения субтитров к переданным в него видеоданным и генерирует видеосигнал, который выводят. Модуль 219 графической обработки генерирует изображение меню и изображение сообщения, соответствующего команде, полученной из модуля 211 управления сценарием и модуля 212 управления проигрывателем, и накладывает их на выходной видеосигнал.
Например, модуль 219 графической обработки выполняет процесс увеличения и процесс уменьшения передаваемых в него данных изображения субтитров, и добавляет обработанные данные изображения к видеоданным в соответствии с командой, полученной из модуля 211 управления сценарием.
Кроме того, модуль 219 графической обработки преобразует соотношение размеров выходного сигнала в соответствии с соотношением размера заданного выходного видеоустройства и соотношением размеров, обозначенным в содержании, воспроизводимом с диска 101. Когда соотношение размеров выходного видеоустройства составляет 16:9 и выходное соотношение размеров составляет 16:9, модуль 219 графической обработки непосредственно выводит видеоданные. Когда выходное соотношение размеров составляет 4:3, модуль 219 графической обработки выполняет процесс сжатия, который обеспечивает соответствие высоты изображения высоте экрана устройства выходного видеоустройства, вставляет черные участки с левой и с правой стороны изображения и выводит полученное в результате изображение. Когда соотношение размеров выходного видеоустройства составляет 4:3 и выходное соотношение размеров составляет 4:3, модуль 219 графической обработки непосредственно выводит видеоданные. Когда выходное соотношение размеров составляет 16:9, модуль 219 графической обработки выполняет процесс сжатия, что обеспечивает соответствие ширины изображения ширине экрана выходного видеоустройства, вставляет черные участки на верхнем и нижнем участках изображения и выводит полученное в результате изображение.
Модуль 219 графической обработки также выполняет обработку, которая захватывает обрабатываемый видеосигнал, в соответствии с запросом из модуля 212 управления проигрывателем, и передает в него запрашиваемый видеосигнал.
Модуль 241 вывода видеоизображения исключительно использует часть запоминающего устройства 113, как буфер, работающий по принципу "первым пришел - первым обслужен" (ПППО, FIFO). Модуль 241 вывода видеоизображения временно сохраняет в буфере видеоданные, обработанные модулем 219 графической обработки, и считывает видеоданные из него в заданные моменты времени. Видеоданные, которые считывают из буфера, выводят из интерфейса 118 вывода видеоизображения.
Модуль 242 вывода звука исключительно использует часть запоминающего устройства 113 как буфер ПППО. Модуль 242 вывода звука сохраняет данные звука, которые поступают с выхода интерфейса 119 вывода звука в буфер, и считывает из него данные звука в заданные моменты времени. Данные звука, которые считывают из буфера, выводят из интерфейса 119 вывода звука.
Когда режим звука содержания представляет два монофонических канала (например, на двух языках), модуль 242 вывода звука выводит звуковые данные в соответствии с заданным режимом вывода звука. Когда режим вывода звука представляет собой "основное звуковое сопровождение", модуль 242 вывода звука копирует звуковые данные левого канала, например, в запоминающее устройство 113, и выводит звуковые данные левого канала и звуковые данные из запоминающего устройства 113. Таким образом, модуль 242 вывода звука выводит звуковые данные только левого канала. Когда режим вывода звука представляет собой "вспомогательное звуковое сопровождение," модуль 242 вывода звука копирует звуковые данные правого канала, например, в запоминающее устройство 113 и выводит звуковые данные правого канала и звуковые данные из запоминающего устройства 113. Таким образом, модуль 242 вывода звука выводит звуковые данные только правого канала. Когда режим вывода звука представляет собой "основное и вспомогательное звуковое сопровождение" или когда содержание имеет стереофоническое звуковое сопровождение, модуль 242 вывода звука непосредственно выводит звуковые данные.
Пользователь может интерактивно устанавливать режим вывода звука, например, на экране меню, который генерирует блок 210 воспроизведения видеосодержания.
Модуль 250 управления энергонезависимым запоминающим устройством записывает данные в область, данные из которой не стираются после завершения работы блока 210 воспроизведения видеосодержания (эта область называется энергонезависимой областью), и считывает из нее данные в соответствии с командой, полученной из модуля 212 управления проигрывателем. Модуль 250 управления энергонезависимым запоминающим устройством имеет функцию, которая сохраняет множество наборов данных Saved_Player_Status и данных Saved_Player_Data, с ключом ИД названия (Title_ID). Модуль 250 управления энергонезависимым запоминающим устройством сохраняет в качестве данных Saved_Player_Status данные Backup_Player_Status, которые содержит модуль 212 управления проигрывателем. Данные Backup_Player_Status соответствуют данным, например, состояния 323В проигрывателя, которые существуют непосредственно перед окончанием работы модуля 212 управления проигрывателем. Данные Saved_Player_Status соответствуют информации 324 возобновления. Кроме того, модуль 250 управления энергонезависимым запоминающим устройством сохраняет в качестве данных Saved_User_Data User_Data, которые содержит модуль 212 управления проигрывателем. Данные User_Data представляют собой заданные данные, которые пользователь устанавливает для модуля 212 управления проигрывателем.
Когда устройство 100 воспроизведения диска имеет запоминающее устройство типа флэш или тому подобное, которое представляет собой энергонезависимое запоминающее устройство, модуль 250 управления энергонезависимым запоминающим устройством корреляционно сохраняет набор данных Saved_Player_Status и данных Saved_User_Data с ИД названия диска 101 в заданной области запоминающего устройства типа флэш. Носитель записи, в котором модуль 250 управления энергонезависимым запоминающим устройством сохраняет данные, не ограничивается запоминающим устройством типа флэш, но может представлять собой жесткий диск или тому подобное.
8. Автоматический выбор звукового потока и потока субтитров
Далее будет описан автоматический выбор звукового потока и потока субтитров в соответствии с вариантом выполнения настоящего изобретения. В соответствии с данным вариантом выполнения, когда множество звуковых потоков на разных языках и множество потоков субтитров на разных языках были мультиплексированы, автоматически выбирается звуковой поток на требуемом языке. Аналогично, автоматически выбирается поток субтитров на требуемом языке.
В соответствии с настоящим изобретением, в дополнение к регулярной установке языка звукового сопровождения с использованием названий языков, таких как "японский" и "английский", может быть установлено состояние "оригинальный язык". Когда установка языка звукового сопровождения проигрывателя представляет собой "оригинальный язык", автоматически выбирается звуковой поток на требуемом языке. Кроме того, когда автоматически выбирают потоки субтитра и звукового сопровождения, исключается случай, когда языки потоков звукового сопровождения и субтитров совпадают.
"Оригинальный язык" представляет язык, на котором было создано содержание. Например, если содержание было создано на японском языке, и его язык, в основном, японский, оригинальным языком является японский язык. Оригинальный язык может быть установлен на стороне разработчика содержания. Далее, со ссылкой на фиг.36-38, будет кратко описан автоматический выбор звукового потока и потока субтитров в соответствии с данным вариантом выполнения настоящего изобретения. На фиг.36-38 предполагается, что в потоках 501, содержащихся на диске, звуковой поток, обозначенный (1), представляет оригинальный язык. В данном примере оригинальный язык субтитров не определен.
В качестве первого примера, со ссылкой на фиг.36, будет рассмотрен случай, в котором в установке 500 проигрывателя язык звукового сопровождения установлен как "оригинальный язык" и язык субтитров установлен как "японский". Кроме того, предполагается, что содержание, содержащееся на диске, представляет собой кинофильм, созданный в Соединенных Штатах Америки, и потоки 501 диска представляют собой два типа звуковых потоков (1) английский язык (=оригинальный язык) и (2) японский язык и два типа потоков субтитров (1) английский язык и (2) японский язык. В данном случае, потоки 502, выбранные немедленно после воспроизведения содержания с диска проигрывателем, представляют собой звуковой поток на исходном языке (1) английском и поток субтитров (2) на японском языке. В примере, показанном на фиг.36, поскольку звуковой поток и поток субтитров были выбраны правильным образом, проблема не возникает.
В качестве второго примера, как показано на фиг.37, в установках 500 проигрывателя, язык звукового сопровождения установлен как "оригинальный язык", и язык субтитров установлен как "японский", то есть так же, как и в первом примере. Кроме того, предполагается, что содержание, записанное на диск, представляет собой кинофильм, созданный на японском языке, и потоки 501 диска представляют собой потоки двух типов звуковых потоков (1) японский язык (= оригинальный язык) и (2) английский и два типа потоков субтитров (1) английский и (2) японский. В данном случае, потоки, выбранные непосредственно после воспроизведения содержания с диска проигрывателем, представляют собой звуковой поток (1) на оригинальном японском языке и поток субтитров (2) на японском языке. Таким образом, выбран один и тот же язык. В этом случае, поскольку субтитры на японском языке не нужны, считается, что такой выбор является неудобным для пользователя.
Для решения проблемы, представленной во втором примере, как показано на фиг.38, когда язык звукового сопровождения установлен как "оригинальный язык" в установках 500 проигрывателя и когда оригинальный язык соответствует языку субтитров, как в выбранных потоках 502, достаточно выполнить функцию выключения отображения субтитров.
Другими словами, когда язык звукового сопровождения в установках 500 проигрывателя установлен как "оригинальный язык" и язык звукового сопровождения в результате автоматического выбора соответствует языку субтитров, свойство subtitleFlag, содержащееся в информации атрибута (состояние 323В проигрывателя свойства 323, см. фиг.3) в проигрывателе, которое обозначает отображение или отсутствие отображения субтитров, установлено в значение, которое представляет ОТКЛЮЧЕНИЕ субтитров. При использовании такого правила, когда выбирают языки звукового сопровождения и субтитров, поток субтитров, язык которых совпадает с языком звукового сопровождения, не будет выводиться.
Далее будет подробно описан автоматический выбор звукового сопровождения и потоков звукового сопровождения субтитров, в соответствии с вариантом выполнения настоящего изобретения. Прежде всего, будет описана информация, которая должна быть передана на сторону устройства проигрывателя для обеспечения возможности правильного и автоматического выбора звукового сопровождения и субтитров. Свойство 323 (см. фиг.3) проигрывателя 300 кинофильмов, который управляет воспроизведением потоков, было описано со ссылкой на фиг.7. В свойстве 323, свойство audioLanguegeCode, свойство audioNumber и свойство audioFlag для звукового сопровождения, и свойство subtitleLanguegeCode, свойство subtitleNumber и свойство subtitleFlag для субтитров, в частности, относится к данному варианту выполнения.
Как описано выше, свойство audioLanguageCode представляет код языка звукового сопровождения, который был установлен в видеопроигрывателе УМД. Другими словами, свойство audioLanguegeCode представляет язык, который должен быть выбран для звукового сопровождения. В качестве значения свойства audioLanguegeCode, можно использовать код языка, определенный, например, в стандарте Международной организации стандартизации (ISO) 639-1. В стандарте ISO 639-1, например, английский язык сокращенно обозначается как "en" и японский как "jp". В соответствии с этим вариантом выполнения, в качестве значения свойства audioLanguegeCode добавлено "00", которое не определено в ISO 639-1. Значением "00" представлен "оригинальный язык".
Как описано выше, свойство audioNumber представляет номер потока звукового потока, воспроизводимого в настоящий момент времени. Свойство audioNumber представляет собой 16-битное значение, состоящее из ИД звукового потока (stream_id) и ИД частного потока (private_stream_id) (см. фиг.30). Из 16 битов восемь битов старших разрядов используются для ИД потока, в то время как восемь битов младших разрядов используются для ИД частного потока. Звуковой поток файла АВ потока клипа может быть уникально идентифицирован по этому 16-битному значению.
Свойство audioFlag представляет воспроизведение информации звукового потока. На фиг.39 показаны примеры значений, которые может иметь свойство audioFlag. Когда значение свойства audioFlag равно "0", воспроизведение звука отключено, в результате чего звуковое сопровождение не воспроизводится. Когда значение равно "1", воспроизводится звуковой поток, представленный свойством audioNumber. В этот момент, принимая во внимание случай, в котором звуковой поток, представленный свойством audioNumber, представляет собой два монофонических канала, а именно, содержание левого и правого стереоканалов отличается друг от друга, когда звуковое значение равно "2", воспроизводится только левый канал в двух монофонических каналах, в то время как когда значение равно "3", воспроизводится только правый канал в двух монофонических каналах. Когда звуковой поток представляет собой два монофонических канала и значение свойства audioFlag равно "1", левый и правый каналы воспроизводятся в режиме двух монофонических каналов.
Свойство subtitleLanguageCode представляет код языка субтитров, который был установлен в видеопроигрывателе УМД. Другими словами, свойство subtitleLanguegeCode представляет язык, который должен быть выбран для субтитров. В качестве значения свойства subtitleLanguegeCode можно использовать код языка, определенный, например, в стандарте Международной организации стандартизации (ISO) 639-1, аналогично звуковым потокам.
Как описано выше, свойство subtitleNumber представляет номер потока субтитров, который воспроизводится в данный момент времени. Значение свойства subtitleNumber представляет собой 16-битное значение, состоящее из ИД потока (stream_id) потока субтитра и ИД частного потока (private_stream_id) (см. фиг.30). Из 16 битов восемь битов старших разрядов используются как ИД потока, в то время как восемь битов младших разрядов используются как ИД частного потока. Поток субтитров АВ потока клипа может быть уникально идентифицирован по этому 16-битному значению.
Свойство subtitleFlag представляет состояние воспроизведения потока субтитра. На фиг.40 показаны примеры значений свойства subtitleFlag. Когда значение свойства subtitleFlag равно "0", отображение субтитров выключено, в результате чего субтитры не отображаются. Когда значение равно "1", отображение субтитров включено, в результате чего субтитры отображаются.
Далее будет описана информация, которая должна быть предоставлена стороне содержания для правильного и автоматического выбора звукового сопровождения и субтитров. Сторона содержания описывает информацию атрибута звуковых потоков и информацию атрибута потоков субтитров в файле информации клипа. Как описано со ссылкой на фиг.29 и фиг.31, файл информации клипа содержит информацию поля stream_id и поля private_stream_id, которые уникально идентифицируют каждый элементарный поток, мультиплексированный в соответствующий АВ поток, и информацию атрибута, показанную на фиг.31. В информации атрибута, показанной на фиг.31, поле audio_languege_code для звукового потока и поле subtitle_languege_code для потока субтитра, в частности, относятся к данному варианту выполнения настоящего изобретения.
Звуковые потоки на множестве языков могут быть мультиплексированы в файл АВ потока клипа. Таким образом, необходимо обозначить, какие из звуковых потоков на множестве языков, которые были мультиплексированы, представляют собой звуковые потоки на оригинальном языке. В соответствии с данным вариантом выполнения, в файле информации клипа, показанном на фиг.29, язык звукового потока, который расположен первым в звуковых потоках, скомпонованных с помощью цикла for, определен как оригинальный язык. Код языка для оригинального языка представлен полем audio_languege_code (см. фиг.31), который соответствует звуковому потоку.
Свойство 323 (состояние 323 В проигрывателя) проигрывателя 300 кинофильмов может быть установлено с помощью методов, описанных со ссылкой на фиг.8, на уровне 302 сценария. Звуковые потоки и потоки субтитров установлены с помощью метода play(), метода playChapter() и метода changeStream(). Из этих методов, метод changeStream() представляет собой метод изменения текущего потока на требуемый поток, а не механизм автоматического выбора потока. Таким образом, подробное описание метода changeStream() не будет приведено. Метод playChaper() представляет собой эквивалент замены аргумента chapterNumber аргументом playListTime, который представляет собой один из аргументов метода play(), при этом дальше будет описан только method().
На фиг.41А и фиг.41В представлен список примеров аргументов play(). Когда эти аргументы заданы для метода play() заранее установленным образом, может быть начато воспроизведение видеопотока, звукового потока и поток субтитров, соответствующих обозначенному номеру потока. Синтаксис method() представлен, например, формулой (1). Другими словами, аргументы разграничены разграничителями (в данном примере, командами ",") и расположены в заданном порядке. Когда аргументы исключены, описаны только разграничители.
movieplayer.play (playListNumber, playListTime, menuMode, pauseMode, video_strm, audio_strm, audio_status, subtitle_strm, subtitle_status)… (1)
Аргумент playListNumber представляет номер списка воспроизведения в воспроизводимом списке воспроизведения. Параметр playListTime представляет время от начала списка воспроизведения. Когда содержание воспроизводят от начала списка воспроизведения, значение аргумента playListTime устанавливается равным "0". Значение аргумента menuMode имеет одно из "true" или "false". Когда значение аргумента menuMode равно "true", это обозначает, что содержание воспроизводится в режиме меню. Когда значение аргумента menuMode равно "true", это обозначает, что содержание воспроизводят в нормальном режиме. Значение аргумента pauseMode может быть "true" или "false". Когда значение аргумента pauseMode равно "true", оно представляет дежурный режим в качестве паузы. Когда значение аргумента pauseMode равно "false", оно обозначает, что воспроизведение начинается с нормальной скоростью. Аргумент video_strm представляет видеопоток, предназначенный для воспроизведения. Значение аргумента video_strm равно "-1" или "-2". Когда значение аргумента video_strm равно "-1", это обозначает, что воспроизводимый видеопоток выбирают автоматически с помощью проигрывателя 300 кинофильмов. Когда значение аргумента video_strm равно "-2", это обозначает, что воспроизводимый видеопоток не меняется.
Остальные аргументы, включая аргумент audio_strm, представляют собой аргументы, предназначенные для воспроизведения звуковых потоков и потоков субтитров. Эти аргументы, в частности, относятся к данному варианту выполнения настоящего изобретения. Аргумент audio_strm представляет собой аргумент, с помощью которого средство установки автоматического выбора потока субтитров устанавливает значение для свойства audioNumber (см. фиг.7) проигрывателя 300 кинофильмов. Аргумент audio_strm используется для установки номера звукового потока, представленного 16 битами ИД потока (stream_id) и ИД частного потока (private_stream_id) для свойства audioNumber. Значение аргумента audio_strm равно "-1" или "-2". Когда значение аргумента audio_strm равно "-1", это обозначает, что соответствующий звуковой поток автоматически выбирают в проигрывателе 300 кинофильмов, и номер звукового потока выбранного звукового потока устанавливается в свойстве audioNumber. Когда значение аргумента audio_stream равно "-2", это обозначает, что воспроизведение начинается со значения свойства audioNumber, которое установлено в данный момент времени, и не изменялось.
Аргумент audio_status представляет собой параметр, с помощью которого устанавливают свойство audioFlag (см. фиг.7) проигрывателя 300 кинофильмов. Когда значение аргумента audio_status равно "0", "1", "2" или "3", это значение непосредственно устанавливается в свойство audioFlag. Когда значение аргумента audio_status равно "-2", это обозначает, что сохраняется текущее значение свойства audioFlag.
Аргумент subtitle_strm представляет собой аргумент, с помощью которого значение устанавливают для свойства subtitleNumber (см. фиг.7) проигрывателя 300 кинофильмов. Аргумент subtitle_strm используется для установки номера потока субтитров, представленного 16 битами ИД потока (stream_id) и ИД частного потока (private_stream_id) для свойства subtitleNumber. Значение аргумента subtitle_strm составляет "-1" или "-2". Когда значение аргумента subtitle_strm равно "-1", это означает, что соответствующий поток субтитра автоматически выбран в проигрывателе 300 кинофильмов, и номер потока субтитра, выбранного потока субтитра установлен в свойстве subtitleNumber. Когда значение аргумента subtitle_strm равно "-2", это означает, что воспроизведение начинается со значения свойства subTitleNumber, которое установлено в настоящее время и не изменялось.
Аргумент subtitle_status представляет собой параметр, с помощью которого устанавливают свойство subtitleFlag (см. фиг.7) проигрывателя 300 кинофильмов. Когда значение аргумента subtitle_ status равно "0" или "1", значение аргумента subtitle_status непосредственно устанавливается в свойство subtitleFlag. Когда значение аргумента subtitle_ status равно "-1", значение свойства subtitleFlag автоматически устанавливается в соответствующее значение в проигрывателе 300 кинофильмов. Когда значение аргумента subtitle_status равно "-2", сохраняется текущее значение свойства subtitleFlag.
Свойство audioFlag не содержит автоматическую установку проигрывателя 300 кинофильмов, в то время как свойство subtitleFlag содержит автоматическую установку проигрывателя 300 кинофильмов. Это связано с тем, что звуковое сопровождение и субтитры установлены на один и тот же язык, при этом отображение субтитров автоматически выключается, в результате чего субтитры не отображаются.
Далее будет более подробно описан процесс автоматического выбора звукового потока и потока субтитров. На фиг.42 показан поток обработки автоматического выбора звукового потока и потока субтитров из множества типов звуковых потоков и потоков субтитров. Когда диск загружен в устройство проигрывателя, пользователь выбирает видеопоток для воспроизведения (на этапе S80). Звуковой поток, соответствующий выбранному видеопотоку, автоматически выбирают на этапе S81. В соответствии с выбранным результатом, свойство audioFlag устанавливается на этапе S82. Со ссылкой на свойство audioFlag, поток субтитров выбирают на этапе S83. В соответствии с результатом выбора, свойство subtitleFlag устанавливается на этапе S84.
Далее будет подробно описан пример процесса автоматического выбора звукового потока на этапе S81, показанном на фиг.42, со ссылкой на блок-схему последовательности операций, представленную на фиг.43 и фиг.44. В процессе автоматического выбора звукового потока используются (1) код языка, (2) количество каналов и (3) расположение звуковых потоков в файле информации клипа. В этой информации атрибута приоритет (1) кода языка является наивысшим, приоритет (2) количества каналов расположен на второй позиции, и приоритет (3) расположения звуковых потоков в файле информации клипов является самым низким.
На фиг.43 и фиг.44 ссылочной позицией А обозначено, что поток обработки переходит к участку, представленному той же буквой А.
Когда начинается процесс выбора звукового потока (на этапе S90), определяют, было ли установлено значение аргумента audio_strm, которое представляет номер потока звукового сопровождения, воспроизводимого в методе play(), равным "-1", или это значение было пропущено (на этапе S91). Как описано выше, когда значение аргумента audio_strm равно "-1", обозначен автоматический выбор звукового потока.
Когда результат определения обозначает, что другое значение, кроме значения "-1", было установлено в качестве аргумента audio_strm, поток обработки переходит на этап S92. На этапе S92 значение аргумента audio_strm установлено в свойство audioNumber. Выбирают звуковой поток, представленный аргументом audio_strm. После этого поток переходит на этап S82, показанный на фиг.42. На этапе S82 свойство audioFlag устанавливают заданным образом в соответствии с выбранным звуковым потоком в проигрывателе 300 кинофильмов. Когда количество каналов звука выбранного звукового потока представляет 5.1 каналов, значение свойства audioFlag устанавливается, например, равным "1", что обозначает, следует ли воспроизводить звуковой поток. Когда звуковой поток не был выбран на этапе S92, процесс заканчивается ошибкой.
Когда процесс заканчивается ошибкой, операция, которую выполняет видеопроигрыватель УМД, зависит от его воплощения. Когда процесс заканчивается ошибкой, следующий процесс выполняется с сохранением свойства audioNumber. Этот процесс обработки ошибки применяют для других процессов обработки ошибки на фиг.43 и на фиг.44.
Когда результат, определенный на этапе S91, обозначает, что значение аргумента audio_strm было установлено равным "-1" или было пропущено, поток переходит на этап S93. На этапе S93 определяют, что звуковой поток не был идентифицирован свойством audioNumber проигрывателя 300 кинофильмов, или значение свойства audioNumber является неопределенным. Когда звуковой поток идентифицирован свойством audioNumber, поток переходит на этап S94. На этапе S94 выбирают звуковой поток, идентифицированный по свойству audioNumber. После этого поток переходит на этап S82, показанный на фиг.42. Свойство audiFlag установлено заданным образом так, что оно соответствует выбранному звуковому потоку в проигрывателе 300 кинофильмов. Когда звуковой поток не был выбран, процесс заканчивается ошибкой.
Когда результат, определенный на этапе S93, обозначает, что отсутствует звуковой поток, идентифицированный по свойству audioNumber в проигрывателе 300 кинофильмов, или значение свойства audioNumber не определено, поток обработки переходит на этап S95. После этапа S95, в частности, выполняется процесс автоматического выбора для звукового потока. Процесс автоматического выбора звукового потока на этапе S81, показанном на фиг.42, представляет всю обработку в соответствии с блок-схемой последовательности операций, представленной на фиг.43. Процесс обработки после этапа S95 в соответствии с блок-схемой последовательности операций, представленной на фиг.43, представляет собой процесс автоматического выбора звукового потока, выполняемый, когда значение аргумента audio_strm равно "1", что представляет автоматический выбор.
Прежде всего, выполняется процесс автоматического выбора на основе (1) кода языка. Этот процесс выполняют так, что звуковой поток, язык которого совпадает с установкой языка звукового сопровождения проигрывателя, выбирается по приоритету. На этапе S96 определяют, равно ли значение свойства audioLanguageCode в проигрывателе 300 кинофильмов "00", что представляет "оригинальный язык". Когда результат определения обозначает, что значение свойства audioLanguageCode представляет "оригинальный язык", поток переходит на этап S101.
На этапах от S101 до S104 определяют, что представляет собой "оригинальный язык", который был установлен на стороне содержания. На этапе S101 компоновку звуковых потоков в блоке StreamInfo() в файле информации клипа (см. фиг.29) проверяют и получают код языка звукового потока, который расположен первым в этой компоновке. После этого определяют, присутствует ли звуковой поток, код языка которого совпадает с полученным кодом языка и количество звуковых каналов которого равно или меньше, чем количество звуковых каналов, которое было установлено в видеопроигрывателе УМД. Когда результат определения обозначает, что такой звуковой поток присутствует, поток обработки переходит на этап S102. Когда результат определения обозначает, что такой звуковой поток отсутствует, поток обработки переходит на этап S103.
На этапе S102 выбирают звуковой поток, количество звуковых каналов которого является максимальным в этих звуковых потоках так, что удовлетворяются условия, поставленные на этапе S101. Когда установка звукового канала в видеопроигрывателе УМД представляет собой, например, 5.1 каналов, и при этом присутствуют два звуковых потока, код языка которых совпадает с кодом языка звукового потока, который расположен первым в блоке StreamInfo(), и количество звуковых каналов в которых равно 2 канала и 5.1 каналов, выбирают звуковой поток, количество каналов в котором равно 5.1. Когда присутствует множество звуковых потоков, количество звуковых каналов в которых одинаково, выбирают звуковой поток, который расположен раньше в блоке StreamInfo(). После этого поток обработки переходит на этап S82, показанный на фиг.42. На этапе S82 свойство audioFlag устанавливают заданным образом, в соответствии с выбранным звуковым потоком в проигрывателе 300 кинофильмов.
На этапе S103 определяют, присутствует ли звуковой поток, количество звуковых каналов которого равно или меньше, чем количество звуковых каналов, которое было установлено в видеопроигрывателе УМД. Когда такой звуковой поток присутствует, выбирают звуковой поток, количество звуковых каналов в котором максимально среди этих звуковых потоков (на этапе S104). Когда существует множество звуковых потоков, количество звуковых каналов в которых одинаково, выбирают звуковой поток, который расположен раньше всех в блоке StreamInfo(). После этого поток обработки переходит на этап S82, показанный на фиг.42. Свойство audioFlag устанавливают заданным образом, в соответствии с выбранным звуковым потоком в проигрывателе 300 кинофильмов.
Когда результат, определенный на этапе S103, обозначает, что такой звуковой поток отсутствует, процесс, в соответствии с блок-схемой последовательности операций, показанной на фиг.43 и 44, заканчивается. В этом случае, хотя звуковой поток не был выбран, поток обработки переходит на этап S82. На этапе S82 свойство audioFlag устанавливают заданным образом.
Когда результат, определенный на этапе S96, показанном на фиг.43, обозначает, что значение свойства audioLanguegeCode проигрывателя 300 кинофильмов не представляет "оригинальный язык", поток обработки переходит на этап S97. На этапе S97 определяют, существует ли звуковой поток, код языка которого совпадает со свойством audioLanguegeCode проигрывателя 300 кинофильмов, и количество звуковых каналов которого равно или меньше, чем количество звуковых каналов, которое было установлено в видеопроигрывателе УМД. Когда определенный результат обозначает, что такой звуковой поток присутствует, поток обработки переходит на этап S98. Когда определенный результат обозначает, что такой звуковой поток отсутствует, поток обработки переходит на этап S99.
На этапе S98, так же как и на этапе S102, выбирают звуковой поток, количество звуковых каналов в котором максимально среди звуковых потоков, которые удовлетворяют условиям на этапе S97. Когда существует множество звуковых потоков, количество звуковых каналов в которых одинаково, выбирают звуковой поток, который расположен раньше всего в блоке StreamInfo(). После этого поток обработки переходит на этап S82, показанный на фиг.42. Свойство audioFlag устанавливают заданным образом, в соответствии с выбранным звуковым потоком в проигрывателе 300 кинофильмов.
На этапе S99, так же как и на этапе S103, определяют, существует ли звуковой поток, количество звуковых каналов в котором равно или меньше, чем количество звуковых каналов, которое установлено в видеопроигрывателе УМД. Когда определенный результат обозначает, что такой звуковой поток существует, выбирают звуковой поток, количество звуковых каналов в котором максимально среди этих звуковых потоков (на этапе S100). Когда существует множество звуковых потоков, количество звуковых каналов в которых одинаково, выбирают звуковой поток, который расположен раньше всего в блоке StreamInfo(). После этого поток обработки переходит на этап S82, показанный на фиг.42. Свойство audioFlag устанавливают заданным образом, в соответствии с выбранным звуковым потоком в проигрывателе 300 кинофильмов.
Когда результат, определенный на этапе S99 обозначает, что такой звуковой поток отсутствует, процесс в соответствии с блок-схемой последовательности операций, показанный на фиг.43 и фиг.44, заканчивается. В этом случае, хотя звуковой поток не был выбран, поток обработки переходит на этап S82. На этапе S82 свойство audioFlag устанавливают заданным образом.
Далее, со ссылкой на блок-схему последовательности операций, показанную на фиг.45, будет подробно описан пример процесса автоматического выбора потока субтитров на этапе S83, показанном на фиг.42. Когда выбирают поток субтитров (на этапе S110), поток обработки переходит на этап S111. На этапе S111 определяют, было ли установлено значение аргумента subtitle_strm, который представляет количество потоков в потоке субтитров, равным "-1" в методе play(), или это значение было пропущено. Как описано выше, когда значение аргумента
subtitle_strm равно "-1", обозначен автоматический выбор потока субтитров.
Когда определенный результат обозначает, что было установлено другое значение аргумента subtitle_strm, кроме "-1", поток обработки переходит на этап S112. На этапе S112 значение аргумента subtitle_strm устанавливают в свойство subtitleNumber, и выбирают поток субтитров, идентифицированный по аргументу subtitle_strm. После этого поток обработки переходит на этап S84, показанный на фиг.84. Свойство subtitleFlag установлено в проигрывателе 300 кинофильмов. Когда поток субтитров не был выбран на этапе S112, процесс заканчивается как ошибка.
Когда процесс заканчивается как ошибка, операция, которую выполняет видеопроигрыватель УМД, зависит от его воплощения. Когда процесс закончен как ошибка, процесс в соответствии с блок-схемой последовательности операций, показанной на фиг.45, заканчивается, и выполняется следующий процесс, хотя поток субтитров не был выбран. Такой процесс с ошибкой применяется к другому процессу с ошибкой, показанному на фиг.45.
Когда результат, определенный на этапе S111, обозначает, что значение аргумента subtitle_strm равно "-1" или значение было пропущено, поток обработки переходит на этап S113. На этапе S113 определяют, существует ли поток субтитров, идентифицированный по свойству subtitleNumber в проигрывателе 300 кинофильмов, или значение свойства subtitleNumber не определено. Когда присутствует поток субтитров, идентифицированный свойством subtitleNumber, поток обработки переходит на этап S114. На этапе S114 выбирают поток субтитров, идентифицированный по свойству subtitleNumber. После этого поток обработки переходит на этап S84, показанный на фиг.42. Когда поток субтитров не был выбран на этапе S114, процесс заканчивается ошибкой.
Когда результат, определенный на этапе S113, обозначает, что отсутствует поток субтитров, идентифицированный свойством subtitleNumber проигрывателя 300 кинофильмов, или значение свойства subtitleNumber не определено, поток обработки переходит на этап S115. Этапы после S115 представляют реальный процесс автоматического выбора потока субтитров.
На этапе S116 проверяют поток субтитров блока Streamlnfo() файла информации клипа и получают код языка потока субтитров. Определяют, присутствует ли поток субтитров, код языка которого является таким же, что и у свойства subtitleLanguegeCode в проигрывателе 300 кинофильмов. Когда определенный результат обозначает, что такой поток субтитров присутствует, поток обработки переходит к этапу S117. На этапе S117 выбирают поток субтитров. Когда существует множество потоков субтитров, которые удовлетворяют условию на этапе S116, выбирают поток субтитров, который следует раньше других в блоке Streamlnfo() в файле информации клипа. После этого поток обработки переходит на этап S84, показанный на фиг.42.
Когда результат, определенный на этапе S116, обозначает, что файл субтитра, который удовлетворяет условию, отсутствует, поток обработки переходит на этап S118. На этапе S118, поскольку отсутствует поток субтитров, который может быть выбран, значение свойства subtitleFlag устанавливают равным "0", что обозначает, что субтитры не будут отображаться.
Далее, со ссылкой на блок-схему последовательности операций, показанную на фиг.46, подробно описан пример процесса автоматической установки свойства subtitleFlag на этапе S84, показанном на фиг.42. Когда начинается автоматическая установка свойства subtitleFlag (на этапе S120), поток обработки переходит на этап S121. На этапе S121 определяют, было ли установлено значение аргумента subtitle_status, который представляет статус воспроизведения субтитра метода play(), равным "-1", что представляет автоматическую установку, или значение было пропущено. Когда установлено другое значение аргумента subtitle_status, кроме "-1", поток обработки переходит на этап S122. На этапе S122 значение, которое было установлено в качестве аргумента subtitle_status, устанавливают для свойства subtitleFlag.
Когда значение аргумента subtitle_status было установлено "-1", или это значение было пропущено, поток обработки переходит на этап S123. На этапе S123 определяют, соответствует ли код языка, идентифицированный по свойству subtitleLanguageCode проигрывателя 300 кинофильмов, коду языка (свойство audio LanguageCode проигрывателя 300 кинофильмов) звукового потока, который в настоящее время выбирают, и было ли установлено другое значение свойства audioFlag, кроме "0", в результате чего воспроизводится звуковой поток. Когда результат определения обозначает, что условия на этапе S123 удовлетворяются, поток обработки переходит на этап S124.
На этапе S124 значение свойства subtitleFlag устанавливают равным "0", в результате чего субтитры не отображаются. Другими словами, когда условия на этапе S123 удовлетворяются, это обозначает, что язык звукового сопровождения, воспроизводимого звуковым потоком, совпадает с языком субтитров, отображаемых потоком субтитров. Таким образом, значение свойства subtitleFlag устанавливается равным "0", в результате чего субтитры не отображаются.
Когда определенный результат обозначает, что условия на этапе S123 не удовлетворяются, поток обработки переходит на этап S125. На этапе S125 значение свойства subtitleFlag устанавливается равным "1", в результате чего отображаются субтитры.
На фиг.46, на этапах S123, S124 и S125, отображение субтитров включают или выключают, в соответствии с кодом языка потока субтитров. Вместо этого, отображение субтитров может включаться или выключаться на основе атрибута потока субтитров. Например, даже если язык субтитров соответствует языку звукового сопровождения, когда атрибут потока субтитров представляет специальный субтитр, такой как указанный выше субтитр комментария, отображение этого субтитра может не подавляться (в результате установки значения свойства subtitleFlag, равным "1"). Когда поток субтитров используется для комментария, нет необходимости подавлять отображение субтитров.
Атрибут потока субтитров представлен значением поля subtitle_presentation_type блока StaticInfo() файла "XXXXX.CLP" АВ потока клипа, как было описано со ссылкой на фиг.31. Далее будет описан пример процесса установки включения/выключения отображения субтитров с использованием атрибута потока субтитров. На фиг.47 участки, аналогичные представленным на фиг.46, обозначены аналогичным ссылочными позициями, и их описание не приведено. Когда результат, определенный на этапе S123, обозначает, что код языка, идентифицированный свойством subtitleLanguageCode проигрывателя 300 кинофильмов, соответствует коду языка звукового потока, который выбирают в настоящее время, и было установлено другое значение свойства audioFlag, кроме "0", поток обработки переходит на этап S126.
На этапе S126 определяют, представляет ли атрибут потока субтитров атрибут нормальных субтитров (Normal). Когда определенный результат обозначает, что атрибут потока субтитров представляет собой атрибут нормальных субтитров, поток переходит на этап S124. На этапе S124 значение свойства subtitleFlag устанавливают равным "0", в результате чего субтитры не отображаются. Когда определенный результат обозначает, что атрибут потока субтитров не представляет атрибут нормальных субтитров, поток переходит на этап S125. На этапе S125 значение свойства subtitleFlag устанавливают равным "1", в результате чего субтитры отображаются.
Как было описано выше, звуковое сопровождение и субтитры соответствующим образом и автоматически выбирают в соответствии с вариантом выполнения настоящего изобретения.
В приведенном выше примере мультиплексируют звуковые потоки на множестве разных языков. Однако настоящее изобретение не ограничивается таким примером. Например, также могут быть мультиплексированы звуковые потоки, язык которых совпадает, и содержание которых различается. В качестве примера, могут быть мультиплексированы звуковой поток А и звуковой поток В, языки которых являются одинаковыми и содержание которых различается, и один поток (например, звуковой поток А) может использоваться как оригинальный язык.
Предложены носитель записи, устройство и способ воспроизведения этого носителя. Устройство воспроизведения позволяет устанавливать такой режим воспроизведения, в котором устройство автоматически выбирает звуковой поток на оригинальном языке для воспроизводимых данных содержания диска. Также устройство позволяет устанавливать такой режим воспроизведения, в котором устройство воспроизведения не воспроизводит поток субтитров, если язык субтитров совпадает с языком воспроизводимого звукового потока. Тем самым обеспечивается возможность быстрой установки звукового потока и субтитров, соответствующих этому языку. 3 н. и 12 з.п. ф-лы, 47 ил.
1. Устройство воспроизведения, предназначенное для воспроизведения данных содержания с носителя записи в форме диска, содержащее:
средство считывания, предназначенное для считывания данных с носителя записи, на котором были записаны данные содержания, содержащие, по меньшей мере, видеопоток, один или множество звуковых потоков, соответствующих видеопотоку, и программу управления воспроизведением, с помощью которой управляют воспроизведением данных содержания;
средство проигрывателя, предназначенное для воспроизведения данных содержания в соответствии с программой управления воспроизведением; и
средство установки первого режима, предназначенное для установки первого режима в средстве проигрывателя таким образом, что оно автоматически выбирает звуковой поток на оригинальном языке из одного или множества звуковых потоков при воспроизведении данных содержания, в котором данные содержания также содержат один или множество потоков субтитров, и
в котором устройство воспроизведения дополнительно содержит
средство установки второго режима, предназначенное для выбора второго режима в средстве проигрывателя так, что оно выбирает, следует ли воспроизводить поток субтитров при воспроизведении данных содержания.
2. Устройство воспроизведения по п.1, дополнительно содержащее:
средство установки автоматического выбора звукового потока, предназначенное для установки, будет ли происходить автоматический выбор одного звукового потока из одного или множества звуковых потоков; и
средство установки автоматического выбора потока субтитров, предназначенное для установки, будет ли происходить автоматический выбор одного из потоков субтитров из одного или множества потоков субтитров,
в котором язык звукового потока, автоматически выбранный в соответствии с установкой средства установки автоматического выбора звукового потока, соответствует языку потока субтитров, автоматически выбранного в соответствии с установкой средства установки автоматического выбора потока субтитров, при этом второй режим средства второго режима автоматически устанавливается так, что выбранный поток субтитров не воспроизводится.
3. Устройство воспроизведения по п.2,
в котором при автоматическом выборе средством установки автоматического выбора звукового потока, когда первый режим установлен средством установки режима, звуковой поток на оригинальном языке выбирают из одного или множества звуковых потоков, и когда первый режим не был установлен средством установки режима, звуковой поток на языке, установленном средством проигрывателя, выбирают из одного или множества звуковых потоков.
4. Устройство воспроизведения по п.2,
в котором при автоматическом выборе средством установки автоматического выбора потока субтитров поток субтитров на языке, установленном средством проигрывателя, выбирают из одного или множества потоков субтитров.
5. Устройство воспроизведения по п.1,
в котором информация потока также записана на носителе записи, причем информация потока описывает, по меньшей мере, информацию, которая идентифицирует один или множество звуковых потоков, и
в котором средство проигрывателя определяет, что звуковой поток в положении, которое следует первым в информации потока одного или множества звуковых потоков, является звуковым потоком на оригинальном языке.
6. Устройство воспроизведения по п.5,
в котором информация потока также описывает информацию, представляющую количество каналов звукового потока,
в котором средство проигрывателя автоматически выбирает звуковой поток, язык которого совпадает с оригинальным языком и количество каналов которого является максимальным среди одного или множества звуковых потоков.
7. Устройство воспроизведения по п.6,
в котором имеется множество звуковых потоков, язык которых совпадает с оригинальным языком и количество каналов в которых является одинаковым, при этом средство проигрывателя выбирает звуковой поток, который следует первым в информации потока из одного или множества звуковых потоков.
8. Устройство воспроизведения по п.1,
в котором информация потока также записана на носителе записи, причем информация потока описывает, по меньшей мере, информацию, которая идентифицирует каждый из одного или множества потоков субтитров, и
в котором, когда имеется множество потоков субтитров, язык которых является одинаковым, средство проигрывателя выбирает поток субтитров, который следует раньше в информации потока, из одного или множества потоков субтитров.
9. Способ воспроизведения, состоящий в воспроизведении данных содержания с носителя записи в форме диска, содержащий следующие этапы:
считывания данных с носителя записи, на котором записаны данные содержания, содержащие, по меньшей мере, видеопоток, один или множество звуковых потоков, соответствующих видеопотоку, и программу управления воспроизведением, с помощью которой выполняется управление воспроизведением данных содержания;
воспроизведения данных содержания в соответствии с программой управления воспроизведением и
установки первого режима для этапа воспроизведения содержания таким образом, чтобы звуковой поток на оригинальном языке автоматически выбирался из одного или множества звуковых потоков при воспроизведении данных содержания, при этом данные содержания также содержат один или множество потоков субтитров, а способ содержит дополнительный этап
установки второго режима таким образом, что выбирается, следует ли воспроизводить поток субтитров при воспроизведении данных содержания.
10. Носитель записи, на котором
записаны данные содержания, содержащие, по меньшей мере, видеопоток, один или множество видеопотоков, соответствующих видеопотоку, программу управления воспроизведением, с помощью которой управляют воспроизведением данных содержания, и информацию потока, описывающую, по меньшей мере, информацию, которая идентифицирует каждый из одного или множества звуковых потоков таким образом, что информация, которая идентифицирует звуковой поток, используемый как оригинальный язык, следует первой.
11. Носитель записи по п.10,
в котором программа управления воспроизведением обеспечивает автоматический выбор с помощью устройства воспроизведения, которое воспроизводит данные содержания, оригинального языка на основе информации потока.
12. Носитель записи по п.11,
в котором данные содержания также содержат один или множество потоков субтитров, соответствующих видеопотоку, и
в котором программа управления воспроизведением обеспечивает автоматический выбор с помощью устройства воспроизведения одного звукового потока из одного или множества звуковых потоков, автоматический выбор одного потока субтитров из одного или множества потоков субтитров, и при этом выбранный поток субтитров не воспроизводится, когда язык звукового потока, который был выбран автоматически, соответствует языку потока субтитров, который был выбран автоматически.
13. Носитель записи по п.10,
в котором информация потока также описывает информацию, представляющую количество каналов звукового потока, и
в котором устройство воспроизведения, которое воспроизводит данные содержания, автоматически выбирает звуковой поток, количество каналов которого максимально и язык которого совпадает с оригинальным языком, из одного или множества звуковых потоков.
14. Носитель записи по п.13,
в котором, когда присутствует множество звуковых потоков, язык которых совпадает с оригинальным языком, и количество каналов которых одинаково, в одном или множестве звуковых потоков, выбирают звуковой поток, который следует раньше в информации потока.
15. Носитель записи по п.12,
в котором информация потока также содержит последнюю информацию, которая идентифицирует каждый из одного или множества потоков субтитров, и
в котором, когда существует множество потоков субтитров, язык которых одинаков в одном или множестве потоков субтитров, выбирают поток субтитров, который следует раньше в информации потока.
WO 2005050528 А2, 02.06.2005 | |||
ТЕРМОРЕГУЛЯТОР | 1939 |
|
SU60597A1 |
WO 2004029960 A1, 08.04.2004 | |||
НОСИТЕЛЬ ИНФОРМАЦИИ, УСТРОЙСТВО ДЛЯ СЧИТЫВАНИЯ, УСТРОЙСТВО ДЛЯ ЗАПИСИ, СПОСОБ ПЕРЕДАЧИ ГРАФИЧЕСКОЙ ИНФОРМАЦИИ, СПОСОБ ЗАПИСИ МНОЖЕСТВА ВАРИАНТОВ ПРОГРАММЫ, СПОСОБ ВОСПРОИЗВЕДЕНИЯ | 1996 |
|
RU2228546C2 |
Авторы
Даты
2010-02-10—Публикация
2005-08-02—Подача