CN101002467A - 数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质和数据结构 - Google Patents

数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质和数据结构 Download PDF

Info

Publication number
CN101002467A
CN101002467A CNA2005800272857A CN200580027285A CN101002467A CN 101002467 A CN101002467 A CN 101002467A CN A2005800272857 A CNA2005800272857 A CN A2005800272857A CN 200580027285 A CN200580027285 A CN 200580027285A CN 101002467 A CN101002467 A CN 101002467A
Authority
CN
China
Prior art keywords
stream
data
video
control module
access unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2005800272857A
Other languages
English (en)
Other versions
CN101002467B (zh
Inventor
藤波靖
平野哲也
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of CN101002467A publication Critical patent/CN101002467A/zh
Application granted granted Critical
Publication of CN101002467B publication Critical patent/CN101002467B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/206Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/206Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards
    • A63F2300/207Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards for accessing game resources from local storage, e.g. streaming content from DVD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2562DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

本发明涉及一种数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质、和数据结构,其使得在不分析经编码的视频数据的情况下,在存取单元中的编码视频数据的读取成为可能。在步骤S211,搜索用于将编码视频数据解码,且位于紧邻该在存取单元中的编码视频数据中的一个或多个解码可开始点的每一个之前的private_stream_2信息包。另外,在步骤S216,基于private_stream_2信息包中所包括的且表示位于从private_stream_2信息包至下一个private_stream_2信息包的存取单元的每一个的大小的AU_length,以存取单元的形式读取编码视频数据。本发明能够适用于,例如,使用DVD的游戏机等等。

Description

数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质和数据结构
技术领域
本发明涉及数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质、和数据结构,且特别地涉及,例如,使得具有高度方便性等等的数据处理成为可能的数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质、和数据结构。
背景技术
近年来,作为具有大容量存储器且能够随机存取的记录介质,例如DVD(数字通用光盘)已经变得很普遍,并且,使用DVD来执行各种各样类型的处理的DVD设备也已经变得很普遍。
例如,DVD装置包括记录并重放DVD上的电视广播节目数据或诸如此类的DVD记录器,具有在DVD上所记录的地图信息或诸如此类的信息并显示该地图信息的汽车导航系统以及具有在DVD上所记录的游戏程序或诸如此类的程序并执行该程序的游戏机。
例如,在非专利文献1中描述关于DVD的详细情况。
[非专利文献1]关于只读光盘的DVD规范说明第三部分;版本1.1,1997年12月。
发明内容
本发明将要解决的问题
采用能够记录大量的数据的记录介质(例如DVD)和使用DVD执行各种各样类型的处理的DVD设备或诸如此类来执行具有高度方便性等等的数据处理是有必要的。
本发明是鉴于这样的情况而作出的,且意图使得具有高度方便性等等的数据处理成为可能。
用于解决问题的设备
本发明的数据处理设备包括搜索部件,用于从包括在存取单元中的编码视频数据和紧邻该在存取单元中的编码视频数据中的一个或多个解码可开始点的每一个之前且在将编码视频数据解码中所使用的使用信息的编码数据中,搜索使用信息;和提供设备,其响应来自视频解码器控制设备的用于控制将编码视频数据解码的视频解码器的请求,基于使用信息中所包括的大小信息,从编码数据中读取在存取单元中的编码视频数据,并将所读取的数据提供视频解码器。
本发明的数据处理方法包括搜索步骤,其从包括在存取单元中的编码视频数据和紧邻该在存取单元中的编码视频数据中的一个或多个解码可开始点的每一个之前且在将编码视频数据解码中所使用的使用信息的编码数据中,搜索使用信息;和提供步骤,其响应来自视频解码器控制设备的用于控制将编码视频数据解码的视频解码器的请求,基于使用信息中所包括的大小信息,从编码数据中读取在存取单元中的编码视频数据,并将所读取的数据提供视频解码器。
本发明的程序包括搜索步骤,其从包括在存取单元中的编码视频数据和紧邻该在存取单元中的编码视频数据中的一个或多个解码可开始点的每一个之前且在将编码视频数据解码中所使用的使用信息的编码数据中,搜索使用信息;和提供步骤,其响应来自视频解码器控制设备的用于控制将编码视频数据解码的视频解码器的请求,基于使用信息中所包括的大小信息,从编码数据中读取在存取单元中的编码视频数据,并将所读取的数据提供视频解码器。
在本发明的程序记录介质上所记录的程序包括搜索步骤,其从包括在存取单元中的编码视频数据和紧邻该在存取单元中的编码视频数据中的一个或多个解码可开始点的每一个之前且在将编码视频数据解码中所使用的使用信息的编码数据中,搜索使用信息;和提供步骤,其响应来自视频解码器控制设备的用于控制将编码视频数据解码的视频解码器的请求,基于使用信息中所包括的大小信息,从编码数据中读取在存取单元中的编码视频数据,并将所读取的数据提供视频解码器。
在本发明的数据记录介质和数据结构中,编码数据包括通过以预定的单元将视频数据编码所获得的在存取单元中的编码视频数据,和紧邻该在存取单元中的编码视频数据中的一个或多个解码可开始点的每一个之前且在将编码视频数据解码中所使用的使用信息,而使用信息包括表示存取单元的每一个的大小的大小信息,存取单元的数目为一或者更大,存取单元位于使用信息和下一个使用信息之间。
在本发明的数据处理设备和数据处理方法、程序、和程序(程序记录介质上所记录的)中,从编码数据中搜索使用信息。另外,响应来自视频解码器控制设备的用于控制将编码视频数据解码的视频解码器的请求,基于使用信息中所包括的大小信息,从编码数据中以存取单元的形式读取编码视频数据,并提供视频解码器。
在本发明的数据记录介质上所记录的编码数据中,以及在该编码数据的数据结构中,包括通过以预定的单元将视频数据编码所获得的在存取单元中的编码视频数据,和紧邻该在存取单元中的编码视频数据中的一个或多个解码可开始点的每一个之前且在将编码视频数据解码中所使用的使用信息,而使用信息包括表示存取单元的每一个的大小的大小信息,存取单元的数目为一或者更大,存取单元位于使用信息和下一个使用信息之间。
优点
根据本发明,能够执行具有高度方便性等等的数据处理。特别地,甚至在没有分析经编码的视频数据的情况下,就能够执行对在存取单元中的编码视频数据的读取。
附图说明
图1是示出本发明应用于其上的盘装置的实施例的硬件配置的框图;
图2是示出CPU 112所执行的软件模块的配置的实例的框图;
图3是示出缓冲器控制模块215的配置的实例的框图;
图4是盘101上的目录的配置的实例的解释说明;
图5是“PLAYLIST.DAT”文件的语法的解释说明;
图6是PlayItem()的语法的解释说明;
图7是PlayListMark()的语法的解释说明;
图8是mark_type的值和Mark()的类型之间的关系的解释说明;
图9是PlayList()、PlayItem()、片断、和片断流文件中所存储的节目流之间的关系的解释说明;
图10是片断信息文件Clip()的语法的解释说明;
图11是定义一个基本流的stream_id和private_stream_id、以及基本流之间的关系的解释说明;
图12是StaticInfo()的语法的解释说明;
图13是DynamicInfo()的语法的解释说明;
图14是EP_map()的语法的解释说明;
图15是MPEG-2系统中的节目流、节目流包、和节目流包头的语法的解释说明;
图16是MPEG-2系统中的PES信息包的语法的解释说明;
图17是PES信息包的语法的解释说明;
图18是MPEG-2系统中的PES信息包的语法的解释说明;
图19是在MPEG-2系统中的PES信息包的stream_id中所描述的值和基本流的属性(类型)之间的关系的解释说明;
图20是盘装置所采用的stream_id流的解释说明;
图21是private_stream1_PES_payload()的语法的解释说明;
图22是private_stream_id的值和在private_payload()中所存储的基本流的属性之间的关系的解释说明;
图23是private_stream2_PES_payload()的语法的解释说明;
图24是au_information()的语法的解释说明;
图25是“PLAYLIST.DAT”文件的特定实例的解释说明;
图26是片断信息文件“00001.CLP”、“00002.CLP”、和“00003.CLP”的特定实例的解释说明;
图27是片断信息文件“00001.CLP”中的EP_map()的特定实例的解释说明;
图28是PlayList#0和PlayList#1中的PlayListMark()项的特定实例的解释说明;
图29是阐明重放之前的处理的流程图;
图30是阐明重放处理的流程图;
图31是阐明PlayItem改变处理的流程图;
图32是阐明时间代码显示过程的流程图;
图33是阐明流切换处理的流程图;
图34是阐明缓冲器控制模块215的处理的流程图;
图35是阐明缓冲器控制模块215的处理的流程图;
图36是阐明视频流读取过程的流程图;
图37是阐明音频流读取过程的流程图;
图38是阐明字幕流读取过程的流程图;
图39是阐明再同步处理的流程图;
图40是阐明标记处理的流程图;
图41是阐明输出属性控制处理的流程图;
图42是片断信息文件“00003.CLP”中所描述的pts_change_point和DynamicInfo()项的组的特定实例的解释说明;
图43是阐明字幕显示控制处理的流程图;
图44由分别阐明捕获控制处理和背景/屏幕保护处理的流程图组成;
图45是private_stream2_PES_payload()的其它语法的解释说明;
图46是au_information()的其它语法的解释说明。
附图标记
101 盘
102 盘驱动器
111 总线
112 CPU
113 存储器
114 驱动器接口
115 输入接口
116 视频解码器
117 音频解码器
118 视频输出接口
119 音频输出接口
120 视频输出终端
121 音频输出终端
201 操作系统
210 视频内容重放程序
211 脚本控制模块
212 播放器控制模块
213 内容数据提供模块
214 解码控制模块
214A 定时器单元
215 缓冲器控制模块
215A 缓冲器
216 视频解码器控制模块
217 音频解码器控制模块
218 字幕解码器控制模块
219 图形处理模块
220 视频输出模块
220A FIFO
221 音频输出模块
221A FIFO
231 数据开始指针存储单元
232 数据写入指针存储部分
233 视频读取功能单元
234 音频读取功能单元
235 字幕读取功能单元
241 视频读取指针存储部分
242 stream_id寄存器
243 an_information()寄存器
251 音频读取指针存储部分
252 stream_id寄存器
253 private_stream_id寄存器
261 字幕读取功能部分
262 字幕读取指针存储部分
263 stream_id寄存器
264 private_stream_id寄存器
具体实施方式
下文参考绘图描述本发明的实施例
硬件配置
图1是示出本发明应用于其上的盘装置的实施例的硬件的实例的框图。
图1中的盘装置能够应用于,例如,盘播放器、游戏机、汽车导航系统等等。
在图1中的盘装置中,例如,盘101为像DVD那样的光盘、磁光盘、磁盘或诸如此类,且包含像视频数据、音频数据、和字幕数据那样的内容数据,以及用于播放内容数据必需的标识数据。
如果需要,盘101上所记录的数据(记录数据)包括计算机可执行程序。同样,尽管,在这个实施例中,采用作为盘记录介质的盘101作为记录介质,但是,记录介质可以为,例如,半导体存储器、或者磁带记录介质。另外,能够将在从位于远程位置的盘101中读取之后所传输的数据输入到图1中的盘装置。换句话说,能够通过连接到盘装置的不同的装置来执行从盘101的数据的读取,且能够通过该盘装置接收和处理由该不同的装置所读取的数据。另外,通过包括存储类似于在盘101上所记录的数据的数据的存储器的服务器或诸如此类,该盘装置能够处理在网络(例如因特网)上所分布的数据。而且,在从服务器或另一个装置接收到数据且暂时在盘101上记录了该数据之后,盘装置能够处理盘101上所记录的数据。
在盘驱动器102中,能够加载和卸载盘101。盘驱动器102具有一个内置接口(未示出),并通过该接口连接到驱动器接口114。当将盘101加载到那里时,盘驱动器102驱动盘101。根据来自驱动器接口114的命令(例如读取),盘驱动器102执行像从盘101读取数据和将该数据提供驱动器接口114那样的处理。
总线111与CPU(中央处理单元)112、存储器113、驱动器接口114、输入接口115、视频解码器116、音频解码器117、视频输出接口118、和音频输出接口119连接。
CPU 112和存储器113构成计算机系统。换句话说,CPU 112通过执行稍后所描述的、在存储器113中所存储的程序的软件模块,而控制整个盘装置,并执行稍后所描述的各种各样类型的处理。存储器113暂时存储将要由CPU112执行的软件模块。存储器113暂时存储用于操作CPU 112所必需的数据。能够仅由非易失性存储器或由易失性存储器和非易失性存储器的结合而构成存储器113。另外,当图1中的盘装置提供有硬盘,且在该硬盘上记录(安装)了将要由CPU 112执行的软件模块时,能够仅由非易失性存储器而构成存储器113。
这里,能够在存储器113中预先记录(存储)将要由CPU 112执行的程序(软件模块),存储器113为盘装置的一个内嵌记录介质。
可选择地,能够在盘101上,以及另外在像除盘101之外的软盘、CD-ROM(压缩光盘只读存储器)、MO(磁光)光盘、磁盘、和存储卡那样的可移动记录介质上暂时或永久地存储(记录)程序。这些可移动记录介质能够作为所谓的包组软件而提供。
能够在存储器113中预先存储程序,或者如上文所描述的能够从可移动记录介质将该程序安装到盘装置。另外,能够通过用于数字卫星广播的卫星,从下载站点将该程序无线地传送至盘装置,以及能够通过像因特网那样的网络从下载站点将该程序有线地传送至盘装置。盘装置能够通过使用输入接口115接收程序,并能够在存储器113中安装该程序。
而且,可以由单个CPU处理该程序,以及可以由多个CPU以分布式的形式处理该程序。
在CPU 112的控制下,驱动器接口114控制盘驱动器102,由此通过总线111将由盘驱动器102从盘101所读取的数据提供CPU 112、存储器113、视频解码器116、音频解码器117等等。
输入接口115接收因为用户操作未示出的键盘(按钮)和遥控器而提供的信号,并通过总线111将该信号提供CPU 112。另外,输入接口115也具备,例如,调制解调器(包括ADSL(非对程数字用户线路)调制解调器)和像NIC(网络接口卡)那样的通信接口的功能。
视频解码器116将由盘驱动器102从盘101所读取的,且通过驱动器接口114和总线111而提供的视频数据的编码数据(编码视频数据)解码,并通过总线111将作为结果的视频数据提供给CPU 112和视频输出接口118。
音频解码器117将由盘驱动器102从盘101所读取的,且通过驱动器接口114和总线111而提供的音频数据的编码数据(编码音频数据)解码,并通过总线111将作为结果的音频数据提供给CPU 112和音频输出接口119。
视频输出接口118对通过总线111而提供的视频数据执行必需的处理,并从视频输出终端120输出已处理过的数据。音频输出接口119对通过总线111而提供的音频数据执行必需的处理,并从音频输出终端121输出已处理过的数据。
视频输出终端120连接到未示出的视频输出装置,例如CRT(阴极射线管)或液晶面板。相应地,提供从视频输出终端120所输出的视频数据并将其显示在视频输出装置上。音频输出终端121连接到未示出的音频输出装置,例如扬声器或扩音器。相应地,提供从音频输出终端121所输出的音频数据并由音频输出装置输出。
能够或者有线或者无线地执行对视频输出装置和音频输出装置的视频数据和音频数据的提供。
软件模块的配置
接下来,图2示出图1中的CPU 112执行的软件模块的配置的实例。
CPU 112执行的软件模块广泛地分为操作系统(OS)201和为应用程序的视频内容重放程序210。
“操作系统201”
当给盘装置提供电力时,操作系统201最初开始(CPU 112执行操作系统201)执行必需的处理,例如初始设置,并调用为应用程序的视频内容重放程序210。
操作系统201给视频内容重放程序210提供像文件读取那样的基础架构服务。特殊地,例如关于文件读取,响应来自视频内容重放程序210的文件读取请求,操作系统201提供通过使用驱动器接口114操作盘驱动器102读取盘101上的数据,并将该数据传递至视频内容重放程序210的服务。操作系统201也执行文件系统的解释等等。
操作系统201具有多任务处理功能,且能够使得多个软件模块以时分的方式(表面上看来)同时地操作。换句话说,视频内容重放程序210包括一些软件模块,且这些软件模块能够并行地操作。
“视频内容重放程序210”
视频内容重放程序210包括脚本控制模块211、播放器控制模块212、内容数据提供模块213、解码控制模块214、缓冲器控制模块215、视频解码器控制模块216、音频解码器控制模块217、字幕解码器控制模块218、图形处理模块219、视频输出模块220、和音频输出模块221。
视频内容重放程序210是在播放盘101中起主要作用,且当盘101加载(插入)到盘驱动器102中时,确认盘101是否具有以稍后所描述的格式记录的内容的软件。在从盘101读取稍后所描述的脚本文件之后,视频内容重放程序210执行该文件。另外,视频内容重放程序210从盘101中读取用于播放盘101上所记录的内容必需的元数据(数据库信息)的文件,并在该元数据的基础上控制内容播放。
在下文描述构成图2中的视频内容重放程序210的软件模块。在图2中,通常,实线箭头指示内容数据,而虚线箭头指示控制数据。
“脚本控制模块211”
脚本控制模块211解释并执行盘101上所记录的脚本文件中所描述的脚本程序(脚本)。在脚本程序中,例如,能够描述操作,如“通过操作图形处理模块219,创建并显示图形,例如菜单”、“根据来自像遥控器那样的UI(用户接口)的信号(例如,在菜单上移动光标等等),改变菜单显示”、和“控制播放器控制模块212”。
“播放器控制模块212”
播放器控制模块212通过参考盘101上所记录的元数据(数据库信息)等等,执行关于内容重放的控制。换句话说,播放器控制模块212分析,例如,稍后所描述的,盘101上所记录的PlayList()和Clip(),并控制内容数据提供模块213、解码控制模块214、和缓冲器控制模块215。根据来自脚本控制模块211和输入接口115的指令,播放器控制模块212也执行像稍后所描述的在其中切换将要重放的流的流切换那样的控制。另外,播放器控制模块212从解码控制模块214获取时间,并执行显示时间、标记(稍后所描述的Mark())处理等等。
“内容数据提供模块213”
在播放器控制模块212的控制下,或者基于缓冲器控制模块215中所存储的大量数据,内容数据提供模块213请求操作系统201从盘101读取内容数据、元数据等等。
将由操作系统201响应来自内容数据提供模块213的请求、从盘101所读取的元数据等等提供给必需的模块。另外,将由操作系统201响应来自内容数据提供模块213的请求、从盘101所读取的内容数据提供给缓冲器控制模块215。
“解码控制模块214”
在播放器控制模块212的控制下,解码控制模块214控制视频解码器控制模块216、音频解码器控制模块217、和字幕解码器控制模块218的操作。另外,解码控制模块214具有用于时间度量的内嵌定时器单元214A。解码控制模块214管理将要在视频解码器控制模块216的控制下而输出的输出数据和将要与视频数据同步而输出的输出数据(所输出的数据),即将要在音频解码器控制模块217的控制下而输出输出音频数据,之间的同步。
“缓冲器控制模块215”
缓冲器控制模块215具有一个内嵌缓冲器215A,其为图1中存储器113的存储区域的一部分。通过由内容数据提供模块213请求操作系统201,将从盘101所读取的内容数据暂时地存储在缓冲器215A中。
另外,根据来自视频解码器控制模块216、音频解码器控制模块217、或字幕解码器控制模块218的请求,缓冲器控制模块215将缓冲器215A中所存储的数据提供给视频解码器控制模块216、音频解码器控制模块217、或字幕解码器控制模块218。
特殊地,缓冲器控制模块215具有内嵌视频读取功能单元233、音频读取功能单元234、和字幕读取功能单元235,其稍后将参考图3描述。通过使用视频读取功能单元233处理来自视频解码器控制模块216的数据请求,缓冲器控制模块215将缓冲器215A中所存储的数据提供视频解码器控制模块216。类似地,缓冲器控制模块215通过使用音频读取功能单元234处理来自音频解码器控制模块217的数据请求,将缓冲器215A中所存储的数据提供给音频解码器控制模块217,并通过使用字幕读取功能单元235处理来自字幕解码器控制模块218的数据请求,将存储在缓冲器215A中的数据提供给字幕解码器控制模块218。
“视频解码器控制模块216”
通过操作缓冲器控制模块215中的视频读取功能单元233(图3),视频解码器控制模块216从缓冲器控制模块215中的缓冲器215A中读取在视频存取单元中的、其中将视频数据编码的数据(编码视频数据),并将该数据提供给图1中的视频解码器116。视频解码器控制模块216也控制视频解码器116将在视频存取单元中的数据解码。另外,视频解码器控制模块216将通过在视频解码器116中解码而获得的视频数据提供给图形处理模块219。
这里,视频存取单元相应于,例如,视频数据的一画面(一帧或一个场)。
“音频解码器控制模块217”
通过操作缓冲器控制模块215中的音频读取功能单元234(图3),音频解码器控制模块217从缓冲器控制模块215中的缓冲器215A中读取在其中已将音频数据编码的数据(编码音频数据),并将该数据提供给音频解码器117。音频解码器控制模块217也控制音频解码器117将在音频存取单元中存在的数据解码。另外,音频解码器控制模块217将通过在音频解码器117中解码而获得的音频数据提供给音频输出模块221。
这里,音频存取单元相应于预定数量(例如,与一个画面同步而输出的量)的音频数据。在这个实施例中,音频存取单元为,例如,一个已知固定的长度。
“字幕解码器控制模块218”
通过操作缓冲器控制模块215中的字幕读取功能单元235(图3),字幕解码器控制模块218从缓冲器控制模块215中的缓冲器215A中,读取在字幕存取单元中的、通过将字幕数据编码而获得的数据(编码字幕数据)。字幕解码器控制模块218也包括未示出的字幕解码软件,并将从缓冲器215A中所读取的数据解码。另外,字幕解码器控制模块218将通过解码而获得的字幕数据(字幕的图像数据)提供给图形处理模块219。
这里,一个字幕存取单元相应于预定数量(例如,与一个画面同步而输出的量)的字幕数据。在这个实施例中,例如,在字幕存取单元的开始描述字幕存取单元的大小。
“图形处理模块219”
在图形处理模块219中,根据播放器控制模块212的控制(指令),放大并缩小来自字幕解码器控制模块218的字幕数据,并将所获得的数据添加到(覆盖在)来自视频解码器控制模块216的视频数据上。另外,为了在添加了字幕数据之后所获得的视频数据的大小(图像帧)可以与视频输出装置上的显示屏相匹配,图形处理模块219执行放大、缩小、或诸如此类,并将作为结果的视频数据输出到视频输出模块220。
在图形处理模块219中,根据脚本控制模块211和播放器控制模块212的控制(指令),产生菜单、消息等等,并覆盖在输出视频数据上。
而且,基于连接到图1中的视频输出终端120的视频输出装置的屏幕高宽比、盘101上所记录的且指定视频数据的屏幕高宽比的信息,图形处理模块219转换将要输出至视频输出模块220的视频数据的屏幕高宽比。
特殊地,例如,当视频输出装置的屏幕高宽比为16∶9,且指定视频数据的屏幕高宽比的信息表示4∶3的屏幕高宽比时,在图形处理模块219中,在横向方向(水平方向)挤压(缩小)将要输出至视频输出模块220的视频数据,并输出所获得的在其中右边和左边部分已变暗的数据。另外,例如,当视频输出装置的屏幕高宽比为4∶3,且指定视频数据的屏幕高宽比的信息表示16∶9的屏幕高宽比时,在图形处理模块219中,在纵向方向(垂直方向)挤压将要输出至视频输出模块220的视频数据,且顶部和底部部分变暗,并输出已处理过的数据。
当视频输出装置的屏幕高宽比和由表示视频数据的屏幕高宽比的信息所表示的屏幕高宽比两者都为4∶3或16∶9的相同的屏幕高宽比时,图形处理模块219直接输出将要输出至视频输出模块220的视频数据,而不执行挤压处理。
另外,响应来自,例如,播放器控制模块212的请求,图形处理模块219捕获正被处理的视频数据。此外,图形处理模块219将所捕获的视频数据存储或提供给播放器控制模块212。
“视频输出模块220”
视频输出模块220专有地占据图1中的存储器113的一部分,以用作FIFO(先进先出)220A(缓冲器);暂时地存储来自图形处理模块219的视频数据;且如果需要,读取FIFO 220A中所存储的视频数据;并将所读取的数据输出至视频输出终端120(图1)。
“音频输出模块221”
音频输出模块221专有地占据图1中的存储器113的一部分,以用作FIFO221A(缓冲器);暂时地存储来自音频解码器控制模块217(音频解码器117)的音频数据;且如果需要,读取FIFO 221A中所存储的音频数据;并将所读取的数据输出至音频输出终端121(图1)。
另外,当来自音频解码器控制模块217的音频数据为在其中由左声道表示“主音频”的音频数据,以及右声道表示“次音频”的音频数据的双声道(两声道)模式的音频数据时,根据预先指定的音频输出模式,音频输出模块221将来自音频解码器控制模块217的音频数据输出至音频输出终端121。
特殊地,当,例如,指定“主音频”为音频输出模式时,音频输出模块221复制来自音频解码器控制模块217的音频数据中的左声道音频数据作为右声道音频数据,并将左声道和右声道的音频数据(“主音频”的音频数据)输出至音频输出终端121。另外,当指定“次音频”为音频输出模式时,音频输出模块221复制来自音频解码器控制模块217的音频数据中的右声道音频数据作为左声道音频数据,并将左声道和右声道的音频数据(“次音频”的音频数据)输出至音频输出终端121。此外,当指定“主和次音频”为音频输出模式时,音频输出模块221直接将来自音频解码器控制模块217的音频数据输出至音频输出终端121。
当来自音频解码器控制模块217的音频数据为立体声模式的音频数据时,音频输出模块221直接将来自音频解码器控制模块217的音频数据输出至音频输出终端121,而不管音频输出模式的指定。
这里,例如,能够通过用户在显示由视频内容重放程序210所产生的菜单的屏幕上操作遥控器或诸如此类,而交互式地执行音频输出模式的指定。
“缓冲器控制模块215的配置”
接下来,图3示出图2中的缓冲器控制模块215的配置的实例。
缓冲器控制模块215专有地使用图1中的存储器113的一部分,以暂时地将从盘101所读取的数据存储在缓冲器215A中。缓冲器控制模块215读取缓冲器215A中所存储的数据,并将所读取的数据供给图2中的视频解码器控制模块216、音频解码器控制模块217、或字幕解码器控制模块218。
换句话说,除缓冲器215A之外,缓冲器控制模块215还包括为存储器113的一部分的数据开始指针存储单元231和数据写入指针存储部分232,并具有视频读取功能单元233、音频读取功能单元234、和字幕读取功能单元235作为内部模块。
缓冲器215A为,例如,循环缓冲器,并顺序地存储从盘101所读取的数据。在其存储数据到其存储容量之后,其存储最新的数据,以便以所谓的无限循环的形式覆盖最旧的数据。
在缓冲器215A中所存储的数据中,将指示一位置(地址)的数据开始指针存储在数据开始指针存储单元231中,从缓冲器215A中,还未在该位置(地址)处读取最旧的数据。
数据写入指针存储部分232存储指示缓冲器215A中一位置(地址)的写入指针,在该位置(地址)处写入从盘101所读取的最新的数据。
这里,无论何时在缓冲器215A中存储从盘101所读取的数据,在图3中,都右旋(顺时针方向)地更新由数据写入指针所指示的位置,且响应从缓冲器215A的数据的读取,在图3中,右旋地更新由数据开始指针所指示的位置。因此,在缓冲器215A中所存储的数据中,所谓有效的数据为从由数据开始指针所指示的位置至由数据写入指针所指示的位置右旋地存储的数据。
视频读取功能单元233响应来自图2中的视频解码器控制模块216的请求从缓冲器215A中读取视频流(关于视频数据的基本流),并将所读取的流供给视频解码器控制模块216。同样音频读取功能单元234响应来自音频解码器控制模块217的请求,从缓冲器215A中读取音频流(关于音频数据的基本流),并将所读取的流供给音频解码器控制模块217。同样字幕读取功能单元235从缓冲器215A中读取字幕流(关于字幕数据的基本流),并将所读取的流供给字幕解码器控制模块218。
特殊地,在盘101上,例如,记录根据MPEG(移动画面专家组)-2的标准的节目流,并且缓冲器215A存储从盘101所读取的节目流。在这个节目流中,将一个或多个基本流,例如视频流、音频流、和字幕流,时分地多路复用。视频读取功能单元233具有将节目流去多路复用的功能,并从缓冲器215A中所存储的节目流中分离地读取视频流。
类似地,同样音频读取功能单元234具有将节目流去多路复用的功能,并从缓冲器215A中所存储的节目流中分离地读取音频流。同样字幕读取功能单元235具有将节目流去多路复用的功能,并从缓冲器215A中所存储的节目流中分离地读取字幕流。
这里,视频读取功能单元233包括视频读取指针存储部分241、stream_id寄存器242、和an_information()寄存器243,其为图1中存储器113的一部分。
视频读取指针存储部分241存储指示缓冲器215A中在其存储视频流的位置(地址)的视频读取指针,以及视频读取功能单元233读取在由视频读取指针所指示的位置所存储的数据作为视频流。stream_id寄存器242分析寄存器215A中所存储的节目流,并存储稍后所描述的用于识别将要从节目流读取的视频流的stream_id。an_information()寄存器243存储稍后所描述的用于从缓冲器215A读取视频流所必需的(用于读取视频流所利用的)au_information()。
音频读取功能单元234包括音频读取指针存储部分251、stream_id寄存器252、和private_stream_id寄存器253,其为图1中存储器113的一部分。
缓冲器控制模块215存储指示缓冲器215A中在其存储音频流的位置(地址)的音频读取指针,并且音频读取功能单元234读取在由音频读取指针所指示的位置所存储的数据作为音频流。stream_id寄存器252和private_stream_id寄存器253分析缓冲器215A中所存储的节目流,并分别存储稍后所描述的用于识别将要从节目流读取的音频流的stream_id和private_id。
字幕读取功能单元235包括字幕读取功能部分261、字幕读取指针存储部分262、stream_id寄存器263、和private_stream_id寄存器264、其为图1中的存储器113的一部分。
字幕读取功能部分261存储字幕读取功能标志。当字幕读取功能部分261中所存储的字幕读取功能标志为,例如,0时,字幕读取功能单元235不起作用,以及当字幕读取功能部分261中所存储的字幕读取功能标志为,例如,1时,字幕读取功能单元235起作用。
字幕读取功能部分261存储指示缓冲器215A中在其存储字幕流的位置(地址)的字幕读取指针,并且字幕读取功能单元235读取在由字幕读取指针所指示的位置所存储的数据作为字幕流。stream_id寄存器263和private_stream_id寄存器264分析缓冲器215A中所存储的节目流,并分别存储稍后所描述的用于识别将要从节目流读取的字幕流的stream_id和private_stream_id。
盘101上所记录的数据的数据格式的描述
其次,描述盘101上所记录的数据的数据格式。
图4示出盘101的目录结构
例如,将ISO(国际标准化组织)-9660、UDF(通用磁盘格式:http://www.osta.org/specs/)、或诸如此类中所供给的文件系统用作盘101的文件系统,且以目录结构分层级地管理盘101上所记录的数据的文件。这里,文件系统并不局限于上述文件系统。
在图4中,在表示文件系统源的根目录中,设置有“VIDEO”目录,且,在“VIDEO”目录中,设置有两个目录,“CLIP”目录和“STREAM”目录。
在“VIDEO”目录中,除两个目录,“CLIP”目录和“STREAM”目录之外,还设置有两个数据文件,“SCRIPT.DAT”文件和“PLAYLIST.DAT”文件。
“SCRIPT.DAT”文件是一个脚本文件,在其中描述脚本程序。特殊地,在“SCRIPT.DAT”文件中,描述用来使盘101的播放形式交互作用的脚本程序。“SCRIPT.DAT”文件中所描述的脚本程序由图2中的脚本控制模块211解释并执行。
“PLAYLIST.DAT”文件存储至少一个播放列表(稍后描述的图5中的PlayList()),在播放列表中描述播放像盘101上所记录的视频数据那样的内容的过程。
在“CLIP”目录中,设置有一个或多个片断信息文件,并且,在“STREAM”目录中,设置有一个或多个片断流文件。换句话说,在图4中,在“CLIP”目录中,设置有三个片断信息文件“00001.CLP”、“00002.CLP”、和“00003.CLP”,且,在“STREAM”目录中,设置有三个片断流文件“00001.PS”、“00002.PS”、和“00003.PS”。
片断流文件存储一个节目流,在该节目流中将通过将一种或多种类型的数据(流),例如视频数据、音频数据、和字幕数据,压缩或编码而获得的一个或多个基本流时分地多路复用。
在片断信息文件中,描述关于片断流的(文件)元数据,例如相应片断流文件的性质。
换句话说,片断流和片断信息文件具有一对一的对应。在图4中,根据五个数字+句点+“PS”的命名规则给片断流文件分配文件名,并根据与相应片断流文件的那些相同的五个数字+句点+“CLP”的命名规则给片断信息文件分配文件名。
相应地,关于一个文件是片断流文件和片断信息文件的哪一个,能够通过文件名的扩展名(从句点起的右边部分)来识别该文件。另外,关于相应的片断流文件和片断信息文件,能够依赖于除文件名的扩展名之外的部分(从句点起的左边部分)是否相匹配而识别它们。
下文描述盘101上所记录的文件的详细情况。
“PLAYLIST.DAT”
图5示出“VIDEO”目录中“PLAYLIST.DAT”文件的内部结构(语法)。
这里,在图5中,“语法”域中的描述表示数据结构。“位数”域中的描述表示“语法”域的相应行中的数据的位长。另外,“记忆符号”域中的“bslbf”(位串左位优先)指示从最左边的位开始提供“语法”域中相应行中的数据,以及“uimsbf”(无符号整数最高有效位优先)指示“语法”域中相应行中的数据为无符号整数值,且从最高有效位开始提供。这也适用于下文所描述的类似于图5的绘图。
在“PLAYLIST.DAT”文件中,从其开始起,顺序地设置了用于写入像其名称(文件名)那样的信息的name_length(8位)和name_string(255字节)。
换句话说,name_length以字节数表示紧接着它的name_string的大小。name_string表示“PLAYLIST.DAT”文件的名称(文件名)。
关于name_string,使用从其开始起的由name_length所表示的字节的数目的一部分作为有效名称。例如,当name_length具有为10的值时,从其开始起延伸10个字节的name_string的一部分被解释为有效名称。
紧接着name_string,设置了number_of_PlayLists(16位)。number_of_PlayLists表示接下来的PlayList()项的数目。在number_of_PlayLists之后,设置了与number_of_PlayLists中的数目一样多的PlayList()项。
PlayList()是一个播放列表,在其中描述播放盘101上所记录的片断流文件的过程,并具有下列内部结构。
特殊地,在PlayList()的开始,设置了PlayList_data_length(32位)。PlayList_data_length表示PlayList()的大小。
紧接着PlayList_data_length,顺序地设置了reserved_for_word_alignment(15位)和capture_enable_flag_PlayList(1位)。为了建立文字对齐(为了在16位的位置执行对齐),在随后所设置的1位capture_enable_flag_PlayList的位置设置了15位的reserved_for_word_alignment。Capture_enable_flag_PlayList为1位标志,其指示是否允许在其中重放盘101的图1中的盘装置中,相应于基于该PlayList()而重放的视频流的视频数据(属于该PlayList()的视频数据)的二次使用(secondary use)。当capture_enable_flag_PlayList为,例如,0和1之间的1时,其指示允许属于该PlayList()的视频数据的二次使用,且当capture_enable_flag_PlayList为,例如,0和1之间的0时,其指示不允许(禁止)属于该PlayList()的视频数据的二次使用。
尽管,在图5中,capture_enable_flag_PlayList由一位构成,通过使用多位构成capture_enable_flag_PlayList,能够在所谓的阶段中允许属于该PlayList()的视频数据的二次使用。特殊地,capture_enable_flag_PlayList能够由,例如,两位构成。当capture_enable_flag_PlayList的值为00B(B指示在其之前的数字为二进制数)时,能够禁止视频数据的二次使用。当capture_enable_flag_PlayList的值为01B时,仅能够在以减小到等于或小于64×64像素的大小的形式使用视频数据中允许二次使用。另外,当capture_enable_flag_PlayList的值为10B时,能够在不限制大小的情况下允许视频数据的二次使用。
此外,如上文所描述的,在视频数据的二次使用中,能够在不限制大小的情况下限制该使用。特殊地,当capture_enable_flag_PlayList的值为01B时,仅视频内容重放程序210(图2)能够允许二次使用。当capture_enable_flag_PlayList的值为10B时,能够允许通过包括图1中的盘装置中的视频内容重放程序210的任意应用程序的二次使用。这里,除图1中的盘装置中的视频内容重放程序210之外的应用程序包括,例如,用于显示墙纸(背景)和屏幕保护程序的应用程序。
如上文所描述的,当capture_enable_flag_PlayList由两位构成时,位于其之前的reserved_for_word_alignment具有14位,用于建立文字对齐。
除盘装置中视频数据的二次使用的允许之外,capture_enable_flag_PlayList还能够允许盘装置外的二次使用。这里,当允许盘装置外的视频数据的二次使用时,视频数据记录在,例如,能够加载到该盘装置中的记录介质和能够加载到可连接到该盘装置的另一个装置中的记录介质中,或者通过像因特网那样的网络传输(分送)到另一个装置。在这种情形,能够将视频数据在记录介质上所记录的次数的数目和限制分送该视频数据的次数的数目的信息添加到该视频数据。
紧接着capture_enable_flag_PlayList,顺序地设置了PlayList_name_length(8位)和PlayList_name_string(255字节)。PlayList_name_length使用字节数表示随后所设置的PlayList_name_string的大小,且PlayList_name_string表示PlayList()的名称。
紧接着PlayList_name_string,设置了number_of_PlayItems(16位)。像素的数目表示接下来的PlayItem()项的数目。
紧接着number_of_PlayItems,描述了与number_of_PlayItems中的数目一样多的PlayItem()项的结构。
这里,在一个PlayList()项中,能够以PlayItem()单元描述播放内容的过程。
另外,在PlayList()中,对于与number_of_PlayItems中的数目一样多的PlayItem()项的每一个,分配在PlayList()中的唯一ID(识别号)。特殊地,0分配给PlayList()中第一个PlayItem()作为ID,且ID序列号,例如1、2、...,以它们出现的顺序分配给接下来的PlayItem()项。
紧接着与number_of_PlayItems中的数目一样多的PlayItem()项,设置了一个PlayListMark()项。PlayListMark()为充当在根据PlayList()而执行的重放的时间基础上的标记的一组稍后描述的Mark(),且稍后参考图7描述其详细情况。
“PlayItem()的描述”
接下来,图6示出图5中的PlayList()中所包括的PlayItem()的内部结构。
在PlayItem()的开始,设置了长度(16位),且该长度表示包括它本身的PlayItem()的大小。
紧接着该长度,顺序地设置了Clip_Information_file_name_length(16位)和Clip_Information_file_name(可变长度)。Clip_Information_file_name_length使用字节数表示随后设置的Clip_Information_file_name的大小。Clip_Information_file_name表示相应于将要由PlayList()重放的片断流文件(图4中其扩展名为PS的文件)的片断信息文件(图4中其扩展名为CLP的文件)的文件名。基于上文所描述的关于片断流文件和片断信息文件的文件名的命名规则,能够辨识将要由PlayItem()重放的片断信息文件的文件名,且能够指定片断流文件。
紧接着Clip_Information_file_name,顺序地设置了IN_time(32位)和OUT_time(32位)。
IN_time和OUT_time分别为在由Clip_Information_file_name所指定的片断流文件中,指明重放开始位置的时间信息和指明重放结束位置的时间信息。
根据IN_time,能够指明在片断流文件中间(包括其开始)的一个位置作为重放开始位置,且根据OUT_time,能够指明在片断流文件中间(包括其结束)的一个位置作为重放结束位置。
这里,根据PlayItem(),重放由Clip_Information_file_name所指定的片断流文件的IN_time和OUT_time之间的内容。如果需要,由PlayItem()所重放的内容以下称为片断。
“PlayListMark()的描述”
接下来,图7示出图5中的PlayList()中所包括的PlayListMark()的内部结构。
如上文所描述的,PlayListMark()为每个都充当在根据包括该PlayListMark()的PlayList()(图5)而执行的重放的时间基础上的标记的一组零个或多个Mark()项。一个Mark()项至少包括表示在根据PlayList()而执行的重放的时间基础上的一个时间的时间信息、表示Mark()的类型的类型信息、和自变量信息,在其中,当类型信息表示创建事件的类型时,自变量信息充当关于该事件的自变量。
特殊地,在PlayListMark()的开始,设置了长度(32位)。该长度表示包括它本身的PlayListMark()的大小。
紧接着该长度,设置了number_of_PlayList_marks(16位),且number_of_PlayList_marks表示随后设置的标记(Mark())的数目。紧接着number_of_PlayList_marks,描述了与number_of_PlayList_marks中的数目一样多的标记结构。
在Mark()的开始,设置了mark_type(8位)。mark_type为上述类型信息并表示包括该mark_type的Mark()的类型。
在这个实施例中,Mark()的类型包括,例如,三种类型:章、索引、和事件。
其类型为章的Mark()(如果需要,以下称为章标记)为章中的开始位置的标记,章为分割PlayList()的提示单元。另外,其类型为索引的Mark()(以下称为索引标记)为索引中的开始位置的标记,索引为进一步分割章的单元。其类型为事件的Mark()(如果需要,以下称为事件标记)为在根据PlayList()重放内容期间在其创建事件的位置的标记。如稍后所描述的,将通过事件标记的事件的创建报告给脚本控制模块211。
这里,图8中示出mark_type的值和Mark()的类型之间的关系。根据图8,在章标记中的mark_type中设定为1。另外,在索引标记中的mark_type中设定为2,以及在事件标记中的mark_type中设定为3。在图8中,在由mark_type所表示的8位值之中,保留0、和4至255,以便将来扩展。
返回参考图7,紧接着mark_type,设置了mark_name_length(8位)。另外,在Mark()的结尾,设置了mark_name_string(24字节)。使用mark_name_length和mark_name_string来描述Mark()的名称。mark_name_length和mark_name_string分别表示mark_name_string的有效大小和mark_name_string的名称。相应地,从mark_name_string的开始起由mark_name_length所表示的字节数表示Mark()的有效名称。
紧接着mark_name_length,顺序地设置了将PlayList()上所定义的Mark()与片断流文件联系起来的四个元素:ref_to_PlayItem_id(16位)、mark_time_stamp(32位)、entry_ES_stream_id(8位)、和entry_ES_private_stream_id(8位)。
在ref_to_PlayItem_id中,关于Mark()所属的PlayItem(),描述了以序列号的形式的ID。ref_to_PlayItem_id指定Mark()所属的PlayItem()(图6),且另外,如图6中所描述的,指定片断信息文件和片断流文件。
mark_time_stamp表示由ref_to_PlayItem_id所指定的片断流文件中的Mark()所表示的位置(时间)
这里,图9示出PlayList()、PlayItem()、片断和片断流文件中所存储的节目流之间的关系。
在图9中,PlayList()由三个PlayItem()项的组成,并分别将序列号ID#0、#1、#2分配给这三个PlayItem()项。这里,如果需要,以下将分配ID#i的PlayItem()描述为PlayItem#i。
这里,在图9中,为将要基于PlayItem#0、PlayItem#1、PlayItem#2而重放的内容片段的片断分别作为片断A、片断B、和片断C而示出。
片断的实质是在由图6中中的PlayItem()中的Clip_Information_flie_name所指定的(进一步由片断信息文件所指定的)片断流文件中所存储的节目流之中,从IN_time至OUT_time的节目流。在图9中,为片断A、片断B、和片断C的实质的节目流分别作为节目流A、节目流B、和节目流C而示出。
例如,在图9中,在充当在根据PlayList()而执行的重放的时间基础上的位置(时间)的标记的Mark()中,以下列方式描述其ref_to_PlayItem_id和mark_time_stamp。
换句话说,因为时间t0为在其执行PlayItem#1的重放的时间,所以1作为PlayItem#1的ID而描述。另外,因为在时间T0,基于PlayItem#1重放为片断B的实质的节目流B,所以描述相应于在其中存储节目流B的片断流文件的时间t0的时间。
再次返回参考图7,当Mark()与特别的基本流相关联时,使用entry_ES_stream_id和entry_ES_private_stream_id来指定基本流。特殊地,在entry_ES_stream_id中,描述了(设置了)与Mark()相关联的基本流(稍后所描述的图16至18中所示的PES_packet())的稍后描述的stream_id。另外,在entry_ES_private_stream_id中,描述(设置)了与Mark()相关联的基本流(稍后所描述的且在图21中所示的private_stream1_PES_payload()中的private_header())中稍后描述的private_stream_id。
例如,当在其中将视频流#1和视频流#2多路复用的片断中,需要在重放视频流#1的情形和重放视频流#2的情形之间改变产生章的时间时,在重放视频流#1的模式中产生时间的章标记处的Mark()的entry_ES_stream_id和entry_ES_private_stream_id中,描述视频流#1的stream_id和private_stream_id。另外,在重放视频流#2的模式中产生时间的章标记处的Mark()的entry_ES_stream_id和entry_ES_private_stream_id中,描述视频流#2的stream_id和private_stream_id。
在不与特别的基本流相关联的Mark()的entry_ES_stream_id和entry_ES_private_stream_id的每一个中,例如,描述为0。
紧接着entry_ES_private_stream_id,设置了mark_data(32位)。该mark_data为自变量信息,在其中,当Mark()为事件标记时,该自变量信息充当关于由该事件标记所创建的事件的自变量。当Mark()为章标记或索引标记时,能够将mark_data用作由章标记或索引标记所表示的章或索引号。
“Clip()的描述”
接下来,描述其扩展名为CLP,且在“CLIP”目录中所设置的片断信息文件的内部结构。
在图4中,在“CLIP”目录中设置了三个片断信息文件“00001.CLP”、“00002.CLP”、和“00003.CLP”。它们分别存储表示在“STREAM”目录中所设置的片断流文件“00001.PS”、“00002.PS”、和“00003.PS”的性质,或诸如此类的元数据。
图10示出上述片断信息文件Clip()的内部结构。
在片断信息文件Clip()的开始,顺序地设置了presentation_start_time和presentation_end_time(每个32位)。Presentation_start_time和presentation_end_time分别表示相应于该片断信息文件Clip()的片断流文件中的开始和结束时间。描述片断流文件中的时间为MPEG2-系统的时间中的90kHz的倍数。
紧接着presentation_end_time,顺序地设置了reserved_for_word_alignment(7位)和capture_enable_flag_Clip(1位)。使用7位reserved_for_word_alignment来建立文字对齐,且类似于上述图5中所示的capture_enable_flag_PlayList,该capture_enable_flag_Clip为指示是否允许视频数据的二次使用的标志。
然而,图5中的capture_enable_flag_PlayList指示是否允许相应于由PlayList()所重放的视频流的视频数据(属于PlayList()的视频数据)的二次使用,而图10中的capture_enable_flag_Clip指示是否允许相应于在相应于片断信息文件Clip()的片断流文件中所存储的视频流(视频的基本流)的视频数据的二次使用。因此,图5中的capture_enable_flag_PlayList和图10中的capture_enable_flag_Clip具有不同单元(范围)的其二次使用被允许的视频数据。
如关于图5中的capture_enable_flag_PlayList所描述的,图10中的capture_enable_flag_PlayList不仅能够由一位而且能够由多位构成。
紧接着capture_enable_flag_Clip,设置了number_of_streams(8位),且在number_of_streams中,描述了接下来的StreamInfo()结构的数目。相应地,紧接着number_of_streams,描述了与number_of_streams中的数目一样多的StreamInfo()结构。
在StreamInfo()的开始,设置了长度(16位),且这个长度表示包括它本身的StreamInfo()的大小。紧接着该长度,设置了stream_id(8位)和private_stream_id(8位),且该stream_id和private_stream_id指定(识别)将要与StreamInfo()相关联的基本流。
这里,图11示出指定基本流的stream_id和private_stream_id及基本流之间的关系。
stream_id与MPEG2-系统规范说明中所供给的那个相同,且关于基本流(数据)的每个属性(类型)都预先确定它的值。因此,能够仅通过stream_id指定具有MPEG2-系统规范说明中所定义的属性的基本流。
在这个实施例中,也能够使用在MPEG2-系统规范说明中不供给其属性的基本流。private_stream_id为识别在MPEG2-系统规范说明中不供给其属性的基本流的信息。
在图11中,关于四个属性的基本流,或者通过MPEG中所定义的编码(解码)而编码的视频的基本流、ATRAC(自适应变换声音编码)中所编码的音频的基本流(如果需要,以下称为ATRAC音频流)、LPCM(线性脉冲编码调制)中所编码的音频的基本流(如果需要,以下称为LPCM音频流)、和字幕的基本流(如果需要,以下称为字幕流),描述了stream_id和private_stream_id之间的关系。
在MPEG2-系统标准中,供给通过使用在0xE0至0xEF(0x指示接下来的字符串是16进制的)范围内的值作为识别基本流的stream_id,而将通过MPEG中的编码而编码的视频的基本流多路复用。相应地,关于以MPEG中的编码而编码的视频的基本流,能够将能够由具有在0xE0至0xEF范围内的值的stream_id识别的视频的十六个基本流多路复用成一个节目流。
因为能够通过具有0xE0至0xEF的值的stream_id执行以MPEG中所定义的编码而编码的视频的基本流的识别,就不需要(能够忽略)private_stream_id。
另外,在MPEG2-系统中,关于ATRAC音频流、LPCM音频流、和字幕音频流,未定义stream_id。
相应地,在这个实施例中,关于在其中在MPEG2-系统中未定义stream_id的基本流,采用为表示MPEG2系统中的private_stream_1的属性的值的0xBD作为stream_id,且另外,如图11中所示,使用private_stream_id来执行识别(指定)。
特殊地,在识别ATRAC音频流中,使用具有在0x00至0x0F范围内的值的private_stream_id。因此,能够将16个ATRAC音频流多路复用成一个节目流。另外,在识别LPCM音频流中,使用具有在0x10至0x1F范围内的值的private_stream_id。相应地,能够将16个音频流多路复用成一个节目流。另外,在识别字幕流中,能够将具有在0x80至0x9F范围内的值的private_stream_id多路复用成一个节目流。
稍后进一步描述stream_id和private_stream_id。
返回参考图10,紧接着private_stream_id,顺序地设置了StaticInfo()、和reserved_for_word_alignment(8位)。在StaticInfo()中,描述了在由(在包括该StaticInfo()的streamInfo()中所描述的)stream_id和private_stream_id所指定的基本流的重放期间不改变的信息。稍后参考图12描述StaticInfo()的详细情况。
使用reserved_for_word_alignment来建立文字对齐。
紧接着reserved_for_word_alignment,设置了number_of_DynamicInfo(8位),且该number_of_DynamicInfo表示随后所设置的DynamicInfo()和pts_change_point(32位)组的数目。
因此,紧接着number_of_DynamicInfo,描述了与number_of_DynamicInfo中的数目一样多的pts_change_point和DynamicInfo()的结构。
pts_change_point表示DyniamicInfo()的信息变为有效的时间,该DyniamicInfo()与pts_change_point构成一组。这里,表示基本流头的时间的pts_change_point,等于在相应于在其中存储该基本流的片断流文件的片断信息文件Clip()的开始所描述的presentation_start_time。
在DynamicInfo()中,描述了在由stream_id和private_stream_id所定义的基本流的重放期间而改变的所谓的动态信息。在DynamicInfo()中所描述的信息在由pts_change_point所表示的重放时间变为有效,该pts_change_point与DynamicInfo()构成一组。稍后参考图13描述DynamicInfo()的详细情况。
紧接着与number_of_DynamicInfo中的数目一样多的pts_change_point和DynamicInfo()项的组,设置了EP_map()。稍后参考图14描述EP_map()。
接下来,参考图12描述图10中的StaticInfo()的详细情况。
图12示出StaticInfo()的语法。
依赖于相应的基本流的属性(类型),StaticInfo()在内容上不同。由图10中的包括StaticInfo()的StreamInfo()中所包括的stream_id和private_stream_id来识别相应于StaticInfo()的基本流的属性。
当相应于StaticInfo()的基本流为视频流(流==视频)时,该StaticInfo()包括picture_size(4位)、frame_rate(4位)、和cc_flag(1位)、和用于建立文字对齐的reserved_for_word_alignment。
picture_size表示相应于视频流的视频数据(基于该视频数据所显示的画面)的大小。frame_rate表示相应于视频流的视频数据的帧频。cc_flag指示在视频流中是否包括隐藏字幕数据。换句话说,例如,当视频流中包括隐藏字幕数据时,cc_flag设定为1,且当不包括隐藏字幕数据时,cc_flag设定为0。
当相应于StaticInfo()的基本流为音频流(流==音频)时,该StaticInfo()包括audio_language_code(16位)、channel_configuration(8位)、lfe_existence(1位)、sampling_frequency(4位)、和用于建立文字对齐的reserved_for_word_alignment。
在audio_language_code中,描述了表示音频流中所包括的音频数据的语言的代码。channel_configuration表示音频流中所包括的音频数据的属性,例如非立体声的、立体声的、多声道的。lfe_existence指示在音频流中是否包括低重音声道。当包括该声道时,lfe_existence为1,且当不包括该声道时,lfe_existence为0。sampling_frequency为表示音频流中所包括的音频数据的采样频率的信息。
当相应于StaticInfo()的基本流为字幕流(流==字幕)时,该StaticInfo()包括subtitle_language_code(16位)、configurable_flag(1位)、和用于建立文字对齐的reserved_for_word_alignment。
在subtitle_language_code中,描述了表示字幕流中所包括的字幕数据的语言的代码。configurable_flag为指示是否允许从默认显示形式改变字幕流中所包括的字幕数据的显示。例如,当允许改变显示形式时,描述为1,且当不允许时,描述为0。字幕数据显示包括字幕数据的显示大小、显示位置、显示色彩、显示模式(例如,闪光或诸如此类)、和显示方向(例如,垂直方向和水平方向)。
“DynamicInfo()的描述”
接下来,参考图13描述图10中DynamicInfo()的详细情况。
图13示出DynamicInfo()的语法。
在DynamicInfo()的开始,设置了用于建立文字对齐的reserved_for_word_alignment,且依赖于相应于DynamicInfo()的基本流的属性,以下的元素在内容上不同。类似于图12中所描述的StaticInfo()的情形,基于包括DynamicInfo()的图10中的StreamInfo()中所包括的stream_id和private_stream_id而识别相应于DynamicInfo()的基本流的属性。
在DynamicInfo()中,如图10中所描述的,描述了在基本流的重放期间改变的动态信息。尽管并不特别地限制这种动态信息,但在图13中的实施例中,在DynamicInfo()中描述了相应于对应于DynaminInfo()的基本流的数据,即,通过处理该基本流而输出的数据的输出属性(从该基本流而获得的数据的输出属性)。
特殊地,当相应于DynamicInfo()的基本流为视频流(流==视频)时,DynamicInfo()包括display_aspect_ratio(4位)和关于文字对齐的reserved_for_word_alignment。在display_aspect_ratio中,例如,视频数据的屏幕高宽比描述为视频数据的输出属性(显示形式),其相应于视频流。换句话说,在display_aspect_ratio中,描述了指示屏幕高宽比为,例如,16∶9和4∶3中的一个的信息。在视频流的DynamicInfo()中,除屏幕高宽比之外,例如,能够描述基于视频数据,或诸如此类的画面的大小(X像素×Y像素)。
当相应于DynamicInfo()的基本流为音频流(流==音频)时,DynamicInfo()包括channel_assignment(4位)和用于建立文字对齐的reserved_for_word_alignment。在channel_assignment中,当音频流包括两个声道的音频数据时,描述两个声道的输出属性(输出形式)。特殊地,在channel_assignment中,描述指示立体声和双重(两重)声道的哪个声道分配给该音频数据的信息。
当相应于DynamicInfo()的基本流为字幕流(流==字幕)时,DynamicInfo()由用于建立文字对齐的reserved_for_word_alignment构成。换句话说,在图13中的实施例中,关于字幕流,未定义作为动态信息的输出属性。
“EP_map()的描述”
接下来,参考图14描述图10中的EP_map()的详细情况。
图14示出EP_map()的语法。
在EP_map()中,关于相应于图10中的包括EP_map()片断信息文件Clip()的片断流文件中所存储的基本流的每一个,描述了关于在其能够开始解码的解码可开始点(进入点)的每个基本流的信息。
这里,关于固定比率的流,能够通过计算找到解码可开始点。然而,关于对于每个视频存取单元具有不同的大小的流,例如,可变比率流或根据MPEG标准而编码的视频流,就不能通过计算而找到解码可开始点,且除非分析该流,不能够找到解码可开始点。解码可开始点的迅速辨识对于执行随机存取是很重要的,而根据EP_map(),能够迅速地辨识解码可开始点。
在MPEG2-视频中,包括序列header()(序列头)等等的帧内画面的开始为解码可开始点。
在EP_map()的开始,设置了关于文字对齐的reserved_for_word_alignment(8位),且随后设置了number_of_stream_id_entries。number_of_stream_id_entries表示在其中EP_map()描述解码可开始点的信息的基本流的数目。紧接着number_of_stream_id_entries,重复设置了与由number_of_stream_id_entries所表示的数目一样多次数的,识别基本流的信息和该基本流的解码可开始点的信息。
特殊地,紧邻number_of_stream_id_entries之后,设置了stream_id(8位)和private_stream_id(8位),其为识别基本流的信息,且随后设置了number_of_EP_entries(32位)。number_of_EP_entries(32位)表示由紧邻number_of_EP_entries之前的stream_id和private_stream_id所识别(指定)的基本流中的解码可开始点的数目。
紧接着number_of_EP_entries,重复地设置了与number_of_EP_entries中的数目一样多次数的一组PTS_EP_start(32位)和RPN_EP_start(32位),其为由相邻的stream_id和private_stream_id所指定的基本流中的解码可开始点的信息。
为一条解码可开始点的信息的PTS_EP_start表示在片断流文件中的解码可开始点的时间(重放时间),该片断流文件存储在其中将如上文所描述的由stream_id和private_stream_id所指定的基本流多路复用的节目流。
在作为解码可开始点的信息的另一条的RPN_EP_start中,描述了一个值,在以节目流中的pack()项为单元计算片断流文件中的解码可开始点的位置的情形中,获得该值,其中该片断流文件存储在其中将如上文所描述的由stream_id和private_stream_id所指定的基本流多路复用的节目流。在这个实施例中,pack()的大小为2048字节的固定值。同样在这个实施例中,盘101(图1)的一个扇区为2048字节。
这里,关于视频流,紧邻其解码可开始点(进入点)之前,设置了稍后描述的private_stream_2信息包(具有private_stream_2的属性的PES_packet())。private_stream_2信息包存储将从private_stream_2信息包至下一个private_stream_2信息包之间所设置的视频流解码所使用的信息。相应地,关于视频流,在为解码可开始点的信息的RPN_EP_start中,未描述实际的解码可开始点本身,而描述了紧邻实际的解码可开始点之前所设置的private_stream_2的开始的位置。
另外,在EP_map()中,关于由stream_id和private_stream_id所指定的每个基本流,预先以升序存储了为解码可开始点的信息的PTS_EP_start和RPN_EP_start项的组。这使得作为解码可开始点的信息的PTS_EP_start和RPN_EP_start项的组的对分搜索成为可能。
在例如,日本未经审核的专利申请公开No.2000-341640(日本专利申请No.11-317738)中,描述了关于对可变比率流和具有不同的大小的视频存取单元的流的随机存取的方法。
“片断流文件的描述”
接下来,描述其扩展名为PS且在图4中的“STREAM”目录中所设置的片断流文件(图4中的“00001.PS”、“00002.PS”、和“00003.PS”)的每个内部结构。
基于MPEG-2系统(ISO/IEC 13818-1)中所定义的MPEG2_Program_Stream()而构成片断流文件。
换句话说,图15示出MPEG-2系统(ISO/IEC 13818-1:2000)标准中所描述的表2-31、表2-32、和表2-33。
片断流文件中所存储的节目流为MPEG-2系统标准中的表2-31中所定义的MPEG2_Program_Stream(),且包括至少一个pack()项和一个MPEG_program_end_code。在日本专利No.2785220等等中描述了MPEG2_Program_Stream()的描述。
如MPEG-2系统标准中的表2-32中所定义的,一个pack()项包括一个PACKHEADER(包头)和任意数目的PES信息包(PES_packet())。在MPEG-2系统标准中的表2-33中定义Pack_header()的详细情况。
尽管,在MPEG-2系统标准中,pack()的大小定义为可变长度,这里如图14中所描述的,它固定为2048字节。此外,这里,一个pack()中PES_packet()项的数目为一、二或三。当pack()以稍后所描述的private_stream_2信息包开始时,紧接着该信息包(在相同的pack()中)必要地存在相应视频流的PES_packet()。除此之外,能够将padding_packet作为第三PES_packet()而设置。在pack()的开始必要地设置private_stream_2信息包。
当pack()不以private_stream_2信息包开始时,在pack()的开始,设置存储像视频、音频、和字幕那样的内容数据的PES_packet()。除此之外,能够将padding_packet作为第二PES_packet()而设置。
图16至18示出MPEG-2系统标准中的表2-17中所定义的PES_packet()。
能够将PES_packet()广泛地分割成为packet_start_code_prefix、stream_id、和PES_packet_length(图16)、其结构依赖于stream_id或诸如此类而改变的头部分(包括stuffing_byte)(图16至18)、和PES_packet_data_byte(图18)。当PES_packet()为padding_packet(stream_id==padding_stream)时,重复地设置与所需要的数目(而非PES_packet_data_byte)一样多的次数的padding_byte(0xFF)(图18)。
在PES_packet()的头部分,如图16和17中所示,能够设置被称为PTS(显示时间戳)且表示显示定时的信息,和被称为DTS(解码时间戳)且表示解码定时的信息。在这个实施例中,将PTS项添加到所有的存取单元(MPEG-2系统中所定义的构成基本流的解码单元),且当在MPEG-2系统中定义时,添加DTS项。
在PES_packet()的PES_packet_data_byte(图18)中存储在节目流中多路复用的基本流。在PES_packet()中的stream_id中,为了识别PES_packet_data_byte中所存储的基本流,描述了根据该基本流的属性的值。
在MPEG-2系统标准中的表2-18中定义了PES_packet()中所描述的值和基本流的属性(类型)之间的关系。这里,在图19中,示出MPEG-2系统标准中的表2-18。
在这个实施例中,在图19中所示的MPEG-2系统中所定义的stream_id值之中,例如,采用图20中所示的值。
换句话说,在这个实施例中,采用五个模式:10111101B、10111110B、10111111B、110xxxxxB、和1110xxxxB作为stream_id值。“x”表示为0或1的任意值。
根据图20,具有被称为private_stream_1的属性的基本流的PES_packet()的stream_id设定为10111101B。另外,根据图20,padding_packet的pack()的stream_id设定为10111110B。此外,根据图20,具有被称为private_stream_2的属性的基本流的PES_packet()的stream_id设定为10111111B。
另外,MPEG中所定义的音频流的PES_packet()的stream_id设定为110xxxxxB。110xxxxxB的低五位表示识别音频流的音频流号。在节目流(MPEG2_Program_Stream())中,可能将能够由音频流号而识别的32(=25)个音频流(MPEG中所定义的音频流)多路复用。
如MPEG中所定义的视频流的PES_packet()的stream_id设定为1110xxxxB。1110xxxxB的较低的四位xxxx表示识别视频流的视频流号。在节目流中,可能将能够由视频流号而识别的16(=24)个视频流(MPEG中所定义的视频流)多路复用。
将具有1110xxxxB的stream_id的PES_packet()用来存储如MPEG中所定义的视频流,且将具有110xxxxxB的stream_id的PES_packet()用来存储如MPEG中所定义的音频流。另外,在MPEG中未定义用来存储根据MPEG中未定义的编码(例如,ATRAC编码)的基本流的PES_packet的stream_id。因此,不能够通过简单地指定类似于MPEG中所定义的视频流和音频流的stream_id而在PES_packet()中存储根据MPEG中未定义的编码的基本流。
相应地,在这个实施例中,扩展了private_stream_1的PES_packet()中的PES_packet_data_byte,以存储根据MPEG中未定义的编码的基本流。
这里,将private_stream_1的PES_packet()中的扩展PES_packet_data_byte描述为private_stream1_PES_payload()。
“private_stream1_PES_payload()的描述”
图21示出private_stream1_PES_payload()的语法。
private_stream1_PES_payload()包括Pack_header()和private_payload()。在private_payload()中,存储根据MPEG中未定义的编码的基本流,例如ATRAC音频流、LPCM音频流、和字幕流。
在private_header()的开始,设置了private_stream_id(8位)。private_stream_id为识别private_payload()中所存储的基本流的识别信息,且根据它们的属性(类型)设定为,例如,以下的值。
换句话说,图22示出private_stream_id值和private_payload()中所存储的基本流的属性之间的关系。
在图22中,采用三种模式:0000xxxxB、0001xxxxB、和100xxxxxB作为private_stream_id的值。“x”表示类似于图20中的情形的1和1之间的任意值。
根据图22,在其中ATRAC音频流位于private_payload()中的private_stream1_PES_payload()的private_stream_id设定为0000xxxxB。0000xxxxB的较低的四位xxxx表示识别ATRAC音频流的音频流号。在节目流(MPEG2_Program_Stream())中,可能将能够由音频流号而识别的16(=24)个ATRAC音频流多路复用。
而且,根据图22,在其中在private_payload()中存储LPCM音频流的private_stream1_PES_payload()的private_stream_id设定为0001xxxxB。0001xxxxB的较低四位表示识别LPCM音频流的音频流号。在节目流中,可能将能够由音频流号识别的16(=24)个LPCM音频流多路复用。
另外,根据图22,在其中在private_payload()中存储字幕流的private_stream1_PES_payload()的private_stream_id设定为100xxxxxB。100xxxxxB的低五位xxxxx表示识别字幕流的字幕流号。在节目流中,可能将能够由字幕流号识别的32(=25)个字幕流多路复用。
这里,图20和图22之间的关系的汇集为上文所描述的图11。
返回参考图21,在private_stream1_PES_payload()中,紧接着private_stream_id的元素依赖于private_payload()中所存储的基本流的属性而在内容上改变。private_payload()中所存储的基本流的属性由在private_header()的开始的private_stream_id确定。
当在private_payload()中所存储的基本流为ATRAC音频流(private_stream_id==ATRAC)时,设置了用于将来扩展的reserved_for_future_use(8位),并随后设置了AU_locator(16位)。通过使用紧接AU_locator之后的位置作为参考,AU_locator表示private_payload()中所存储的ATRAC音频流的音频存取单元(ATRAC音频存取单元)(音频帧)的开始位置。当private_payload()中不存在音频存取单元时,例如,在AU_locator中描述为0xFFFF。
当在private_payload()中所存储的基本流为LPCM音频流(private_stream_id==LPCM)时,顺序地设置了fs_flag(1位)、reserved_for_future_use(3位),ch_flag(4位)、和AU_locator(16位)。
fs_flag表示private_payload()中所存储的LPCM音频流的采样频率。特殊地,当采样频率为,例如,48kHz时,fs_flag设定为0,而当采样频率为44.1kHz时,fs_flag设定为1。
ch_flag表示private_payload()中所存储的LPCM音频流的声道的数目。当LPCM音频流为,例如,单声道时,ch_flag设定为1,而当LPCM音频流为立体声时,ch_flag设定为2。
通过使用紧接AU_locator之后的位置作为参考,AU_locator表示private_payload()中所存储的LPCM音频流的音频存取单元(LPCM音频存取单元)(音频帧)的开始位置。当private_payload()中不存在音频存取单元时,例如,在AU_locator中描述为0xFFFF。
当在private_payload()中所存储的基本流为字幕流(private_stream_id==SUBTITLE)时,设置了用于将来扩展的reserved_for_future_use(8位),且随后设置了AU_locator(16位)。通过使用紧接AU_locator之后的位置作为参考,AU_locator表示private_payload()中所存储的字幕流的字幕存取单元的开始位置。当private_payload()中不存在字幕存取单元时,例如,在AU_locator中描述为0xFFFF。
“private_stream2_PES_payload()的描述”
接下来,图23示出private_stream2_PES_payload()的语法。
private_stream2_PES_payload()为private_stream_2中PES_packet()的PES_packet_data_byte(图18)的扩展,即,它是private_stream_2的PES_packet()中的扩展PES_packet_data_byte。在private_stream2_PES_payload()中,描述视频流解码中将要利用的信息。
在这个实施例中,紧邻视频流中解码可开始位置之前,设置了private_stream2_PES_payload()。相应地,在这个实施例中,通过从presentation_start_time中找到private_stream_2的PES_packet(),能够从紧接着PES_packet()的视频流开始解码。
这里,上述图14中EP_map()的RPN_EP_start表示private_stream_2中PES_packet()的开始位置。
在private_stream2_PES_payload()的开始,设置了用于将来扩展的reserved_for_future_use(8位)。紧接着它,顺序地设置了video_stream_id(8位)、1stRef_pictute(16位)、2ndRef_picture(16位)、3rdRef_picture(16位)、4thRef_picture(16位)、au_information()、和VBI()。
在vide0_stream_id中,描述了紧接着private_stream_2中的PES_packet()而设置的PES_packet()(视频流中)的stream_id(等于该stream_id的值)。基于video_stream_id,通过使用private_stream_2中的PES_packet()(的private_stream2_PES_payload())中所存储的信息,指定将要解码的视频流(存储该视频流的PES_packet())。
通过使用相关的值,1stRef_picture、2ndRef_picture、3rdRef_picture、和4thRef_picture分别表示包括由video_stream_id所指定的视频流中的private_stream_2的PES_packet()与下一个private_stream_2的下一个PES_packet()之间的第一、第二、第三、和第四参考画面的上一个信息包(pack())的位置。关于1stRef_picture、2ndRef_picture、3rdRef_picture、和4thRef_picture,在例如,日本未经审核的专利申请公开No.09-46712(日本专利申请No.07_211420)中,它们的详细情况公布为bytes_to_first_P_pic、bytes_to_second_P_pic。
在au_information()中,描述关于从private_stream_2的PES_packet()至下一个private_stream_2的PES_packet()的视频流中的视频存取单元的信息。稍后关于图24描述au_information()的详细情况。
使用VBI()来描述隐藏字幕信息。
在每个视频流中的每个解码可开始点都设置了具有上文所描述的private_stream2_PES_payload()的private_stream_2的PES_packet()。
接下来,图24示出图23中au_information()的语法。
在au_information()的开始,设置了长度(16位)。长度表示包括该长度的au_information()的大小。紧接着该长度,顺序地设置了reserved_for_word_alignment(8位)和number_of_aceess_units(8位)。使用reserved_for_word_alignment来建立文字对齐。
number_of_access_units表示在包括该number_of_access_units的private_stream_2中的PES_packet()与下一个private_stream_2中的PES_packet()之间的视频存取单元(画面)的数目。
特殊地,在其中图23中的private_stream2_PES_payload()具有同样的video_stream_id的private_stream_2的PES_packet()中,从其au_information()至与下一个au_information()相邻的位置(如果这个au_information()为片断流文件中的最后的au_information(),则至片断流文件的结尾),number_of_access_units表示由video_stream_id所表示的视频流中所包括的存取单元(画面)的数目。
紧接着number_of_access_units,设置了与number_of_access_units中的数目一样多的for-loop内容。特殊地,设置了关于包括该number_of_access_units的private_stream_2的PES_packet()与下一个private_stream_2的PES_packet()之间所包括的一个或多个视频存取单元的每一个的信息。
for-loop中所设置的信息(视频存取单元信息)为如下文所描述。
特殊地,在for-loop中,设置了pic_struct_copy()(4位)、au_ref_flag(1位)、AU_length(21位)、和保留。
在pic_struct_copy中,描述了pic_struct()的范本,其为ISO/IEC14496-10、D.2.2中所定义的,且当该视频流基于MPEG4-AVCv(ISO/IEC14496-10)时,其关于相应的视频存取单元而设定。pic_struct()为像作为帧而显示画面、或显示画面的顶部场且随后显示底部场那样的信息。
au_ref_flag指示当将其它存取单元(的画面)解码时,相应的存取单元是否表示将要参考的参考画面。当表示参考画面时,其设定为1,且当不表示参考画面时,设定为0。
AU_length以字节单元的形式表示相应的存取单元的大小。
盘101上所记录的数据的特定实例。
接下来,图25至28示出图1中盘101上以上文所描述的格式所记录的数据的特定实例。
在图25至28中,关于视频流采用MPEG2-Video,且采用ATRAC音频流作为音频流。然而,视频流和音频流并不局限于上述格式。换句话说,例如,关于视频流,能够采用MPEG4-Visual、MPEG4-ACV等等,且另外,例如,能够采用MPEG1/2/4音频、LPCM音频流等等。
与视频流和音频流不同,关于字幕流,并不总是执行在字幕流的等间隔的顺序解码和显示(输出)。换句话说,从缓冲器控制模块215不间断地供给字幕流,并在字幕解码器控制模块218中将其解码。
图25至28示出,如图4中所示,在盘101上的“CLIP”目录中记录了三个片断信息文件“00001.CLP”、“00002.CLP”、和“00003.CLP”,并且当在“STREAM”目录中记录分别相应于三个片断信息文件“00001.CLP”、“00002.CLP”、和“00003.CLP”的三个片断流文件“00001.PS”、“00002.PS”、和“00003.PS”时,示出特定实例,例如片断信息文件“00001.CLP”、“00002.CLP”、和“00003.CLP”。然而,在图25至28中,省略了“PLAYLIST.DAT”文件等等中的部分数据。
换句话说,图25示出图5中所描述的“PLAYLIST.DAT”文件的特定实例。
在图25中,number_of_PlayLists为2。因而,“PLAYLIST.DAT”文件中所包括的PlayList()项的数目为2。在图25中,在两个PlayList()项之间,第一个和第二个分别描述为PlayList()#0和PlayList()#1。
在作为第一PlayList()的PlayList()#0中,capture_enable_flag_PlayList为1。因而,允许根据PlayList()#0而重放的视频数据的二次使用。另外,在PlayList()#0中,number_of_PlayItems为2。因而,PlayList()#0中所包括的PlayItem()项的数目为2。在图25中,在“PlayList()#0”栏的较低部分描述了作为两个PlayItem()项的PlayItem()#0和PlayItem()#1的特定实例。
在PlayList()#0中所包括的作为第一PlayItem()的PlayItem()#0中,图6中所描述的Clip_Information_file_name为“00001.CLP”,In_time为180,090,以及OUT_time为27,180,090。因而,基于PlayList()#0中的PlayItem()#0而重放的片断,在相应于片断信息文件“00001.CLP”的片断流文件“00001.PS”中从时间180,090至时间27,180,090范围内。
在PlayList()#0中所包括的作为第二PlayItem()的PlayItem()#1中,图6中所描述的Clip_Information_file_name为“00002.CLP”,In_time为90,000,以及OUT_time为27,090,000。因而,基于PlayList()#0中的PlayItem()#1而重放的片断,在相应于片断信息文件“00002.CLP”的片断流文件“00002.PS”中从时间90,000至时间27,090,000范围内。
另外,在图25中,在作为第二PlayList()的PlayList()#1中,capture_enable_flag_PlayList为0。因而,不允许(禁止)根据PlayList()#1而重放的视频数据的二次使用。同样,在PlayList()#1中,number_of_PlayItems为1。因而,PlayList()#1中所包括的PlayItem()项的数目为1。在图25中,在“PlayList()#1”栏的较低部分描述了作为一个播放项PlayItem()的PlayItem()#0的特定实例。
在PlayList()#1中所包括的作为一个PlayItem()的PlayItem()#0中,图6中所描述的Clip_Information_file_name为“00003.CLP”,OUT_time为81,090,000。因而,基于PlayList()#1中的PlayItem()#0而重放的片断,在相应于片断信息文件“00003.CLP”的片断流文件“00003.PS”中从时间90,000至时间81,090,000范围内。
接下来,图26示出图10中所描述的片断信息文件Clip()的特定实例。换句话说,图26示出图4中的片断信息文件“00001.CLP”、“00002.CLP”、和“00003.CLP”的特定实例。
在片断信息文件“00001.CLP”中,presentation_start_time为90,000,以及presentation_end_time为27,990,000。因而,根据相应于片断信息文件“00001.CLP”的片断流文件“00001.PS”中所存储的节目流,能够使用有关310((27,990,000-90,000)/90kHz)秒的内容。
另外,在片断信息文件“00001.CLP”中,capture_enable_flag_Clip为1。因而,允许在相应于片断信息文件“00001.CLP”的片断流文件“00001.PS”中所存储的节目流中多路复用的视频流(相应于该视频流的视频数据)的二次使用。
此外,在图26中,在片断信息文件“00001.CLP”中的number_of_streams为4。因而,在相应的片断流文件“00001.PS”中所存储的节目流中,将四个基本流多路复用。
当将该四个基本流表示为stream#0、stream#1、stream#2、和stream#3时,在图26中,在“00001.CLP”栏的较低部分描述了四个基本流:stream#0、stream#1、stream#2、和stream#3的StreamInfo()的特定实例。
在第一基本流stream#0中,在片断流文件“00001.PS”中,stream_id为0xE0。因而,这个基本流stream#0为图20和22(或图11)中所描述的视频流。尽管,在这个实施例中,,如上文所描述的,private_stream_id与视频流无关,它为图26中的0x00。
另外,关于作为片断流文件“00001.PS”中第一基本流的视频流stream#0,StreamInfo()中所包括的StaticInfo()(图12)的picture_size为“720×480”,frame_rate为“29.97Hz”,以及cc_flag为“Yes”。因而,这个视频流stream#0为具有720×480像素和29.97Hz的帧周期的视频数据,且另外,包括隐藏字幕数据。
此外,关于作为片断流文件“00001.PS”中第一基本流的视频流stream#0,StreamInfo()(图10)的number_of_DynamicInfo()为0。因而,不存在一组pts_change_point和DynanicInfo()。
接下来,关于片断流文件“00001.PS”中的第二基本流的视频流stream#1,stream_id为0xBD,且private_stream_id为0x00。因此,如图20和22中所示,这个基本流stream#1为ATRAC音频流。
另外,关于作为片断流文件“00001.PS”中第二基本流的ATRAC音频流stream#1,在StreamInfo()中所包括的StaticInfo()(图12)中,audio_language_code为“JAPANESE”,channel_configuration为“STEREO”,lfe_existence为“NO”,以及sampling_frequency为“48kHz”。因此这个ATRAC音频流stream#1为日本及立体声音频数据。另外,不包括低重音声道,且采样频率为48kHz。
此外,关于作为片断流文件“00001.PS”中第二基本流的ATRAC音频流stream#1,StreamInfo()(图10)的number_of_DynamicInfo()为0。因而,不存在一组pts_change_point和DynanicInfo()。
接下来,关于片断流文件“00001.PS”中的第三基本流stream#2,stream_id为0xBD,且private_stream_id为0x80。因此,如图20和22中所示,这个基本流stream#2为字幕流。
另外,关于作为片断流文件“00001.PS”中第三基本流的字幕流stream#2,在StreamInfo()中所包括的StaticInfo()(图12)的subtitle_language_code为“JAPANESE”,且configurable_flag为0。因此,这个字幕流stream#2为日本字幕数据,且不允许(禁止)改变其显示形式。
此外,关于作为片断流文件“00001.PS”中第三基本流的字幕流stream#2,StreamInfo()(图10)的number_of_DynamicInfo()为0。因而,不存在一组pts_change_point和DynanicInfo()。
接下来,关于片断流文件“00001.PS”中的第四基本流stream#3,stream_id为0xBD,且private_stream_id为0x81。因此,如图20和22中所示,这个基本流stream#3为字幕流。
为了在作为片断流文件“00001.PS”中第三基本流的字幕流stream#2与作为第四基本流的字幕流stream#3之间进行区别,它们的private_stream_id项分别为0x80和0x81。
另外,关于作为片断流文件“00001.PS”中第四基本流的字幕流stream#2,在StreamInfo()中所包括的StaticInfo()(图12)的subtitle_language_code为“JAPANESE”,且configurable_flag为1。因此,这个字幕流stream#3为日本字幕数据,且允许改变其显示形式。
此外,关于作为片断流文件“00001.PS”中第四基本流的节目流stream#3,StreamInfo()(图10)的number_of_DynamicInfo()为0。因而,不存在一组pts_change_point和DynanicInfo()。
接下来,在图26中,关于片断信息文件“00002.CLP”,presentation_start_time为90,000,以及presentation_end_time为27,090,000。因此,根据相应于片断信息文件“00002.CLP”的片断流文件“00002.PS”中所存储的节目流,能够使用有关300秒((27,090,000-90,000)/90kHz)的内容。
另外,在片断信息文件“00002.CLP”中,capture_enable_flag_Clip为0。因此,不允许(禁止)在相应于片断信息文件“00002.CLP”的片断流文件“00002.PS”中所存储的节目流中多路复用的视频流的二次使用。
此外,在图26中,在片断信息文件“00002.CLP”中的number_of_streams为4。因此,在相应的片断流文件“00002.PS”中所存储的节目流中,类似于上文所描述的片断流文件“00001.PS”中的情形,将四个基本流多路复用。
当将该四个基本流表示为stream#0、stream#1、stream#2、和stream#3时,在图26中,在“00002.CLP”栏的较低部分描述了作为stream#0、stream#1、stream#2、和stream#3的四个基本流的StreamInfo()(图10)的特定实例。
这里,在图26中,在片断流文件“00002.PS”中的第一至第四基本流stream#0至#3的每一个的StreamInfo()的内容与在上文所描述的片断流文件“00001.PS”中的第一至第四基本流stream#0至#3的每一个的StreamInfo()的那些相同。相应地,省略了它们的描述。
如上文所描述的,因为在片断流文件“00002.PS”中的第一至第四基本流stream#0至#3的每一个的StreamInfo()的内容与在上文所描述的片断流文件“00001.PS”中的第一至第四基本流stream#0至#3的每一个的StreamInfo()的那些相同,在片断流文件“00002.PS”中的第一基本流stream#0为视频流,以及第二基本流stream#1为ATRAC音频流。另外,第三基本流stream#2和第四基本流stream#3两者都为字幕流。
接下来,在图26中,关于片断信息文件“00003.CLP”,presentation_start_time为90,000,以及presentation_end_time为81,090,000。因此,根据相应于片断信息文件“00003.CLP”的片断流文件“00003.PS”中所存储的节目流,能够使用有关900秒((81,090,000-90,000)/90kHz)的内容。
另外,在片断信息文件“00003.CLP”中,capture_enable_flag_Clip为1。因此,允许与在相应于片断信息文件“00003.CLP”的片断流文件“00003.PS”中所存储的节目流多路复用的视频流的二次使用。
此外,在图26中,在片断信息文件“00003.CLP”中的number_of_streams为3。因此,在相应的片断流文件“00003.PS”中所存储的节目流中,将三个基本流多路复用。
当将该三个基本流表示为stream#0、stream#1、和stream#2时,在图26中,在“00003.CLP”栏的较低部分描述了三个基本流stream#0、stream#1、和stream#2的StreamInfo()(图10)的特定实例。
关于片断流文件“00003.PS”中的第一基本流stream#0,stream_id为0xE0。因而,如图20和22(或图11)中所描述的,这个基本流stream#0为视频流。类似于片断流文件“00001.PS”中的第一基本流stream#0,private_stream_id为0x00。
另外,关于作为片断流文件“00003.PS”中第一基本流的视频流stream#0,在StreamInfo()中所包括的StaticInfo()(图12)中,picture_size为“720×480”,frame_rate为29.97Hz,以及cc_flag为“NO”。因此,这个视频流stream#0为具有720×480像素和29.97Hz的帧周期的视频数据,且不包括任何隐藏字幕数据。
此外,关于作为片断流文件“00003.PS”中第一基本流的视频流stream#0,StreamInfo()(图10)的number_of_DynamicInfo()为2。因而,在StreamInfo()中,描述了两组pts_change_points和DynanicInfo()项。
接下来,关于片断流文件“00003.PS”中的第二基本流stream#1,stream_id为0xE1。因而,如图20和22(或图11)中所描述的,这个基本流stream#1为视频流。为了在作为片断流文件“00003.PS”中第一基本流的视频流stream#0与作为第二基本流的视频信号stream#1之间进行区别,它们的stream_id项分别为0xE0和0xE1。此外,与基本流类似,作为片断流文件“00001.PS”中第一基本流的stream#0,private_stream_id是0x00。
另外,关于作为片断流文件“00003.PS”中第二基本流的视频流stream#1,StreamInfo()中所包括的StaticInfo()(图12)的picture_size、frame_rate、和cc_flag与关于作为第一基本流的视频流stream#0的那些相同。因此,作为片断流文件“00003.PS”中第二基本流的视频流stream#1为具有720×480像素和29.97Hz的帧周期的视频数据,且不包括隐藏字幕数据。
此外,关于作为片断流文件“00003.PS”中第二基本流的视频流stream#1,StreamInfo()(图10)的number_of_DynamicInfo()为0。因而,不存在一组pts_change_points和DynanicInfo()。
接下来,关于作为片断流文件“00003.PS”中第三基本流的stream#2,stream_id为0xBD,且private_stream_id为0x00。因此,如图20和22中所描述的,这个基本流stream#2为ATRAC音频流。
另外,关于作为片断流文件“00003.PS”中第三基本流的ATRAC音频流stream#2,StreamInfo()中所包括的StaticInfo()(图12)的audio_language_code、channel_configuration、lfe_existence、和sampling_frequency与作为片断流文件“00001.PS”中第二基本流的ATRAC音频流stream#1中的那些相同。因此,作为片断流文件“00003.PS”中第三基本流的ATRAC音频流stream#2为日本及立体声音频数据。另外,不包括低重音声道,且采样频率为48kHz。
此外,关于作为片断流文件“00003.PS”中第三基本流的ATRAC音频流stream#2,StreamInfo()(图10)的number_of_DynamicInfo()为3。因而,在StreamInfo()中,描述了三组pts_change_point s和DynanicInfo()。
接下来,图27示出图10中所描述的片断信息文件Clip()中的EP_map()的特定实例。换句话说,图27示出图4中的片断信息文件“00001.CLP”中的图14中的EP_map()的特定实例。
在图27中,EP_map()中的number_of_stream_id_entries为1。因而,在这个EP_map()中,描述关于一个基本流的解码可开始点信息。
另外,在图27中的EP_map()中,stream_id为0xE0。因此,如图20和22中所描述的,描述了关于由为0xE0的stream_id所指定的视频流的解码可开始点信息(PTS_EP_start和RPN_EP_start(图14))。换句话说,图27示出关于片断信息文件“00001.CLP”的EP_map(),且如图26中所描述的,在相应于片断信息文件“00001.CLP”的片断流文件“00001.PS”中,在其中stream_id为0xE0的基本流为片断流文件“00001.PS”的第一视频流stream#0。因而,EP_map()中所描述的信息为视频流stream#0的解码可开始点的PTS_EP_start和RPN_EP_start。
在图27中,关于片断流文件“00001.PS”的第一视频流stream#0的解码可开始点,描述了从开始起的五个PTS_EP_start和RPN_EP_start点,且省略了第六和其它PTS_EP_start和RPN_EP_start点的描述。
尽管,在图27中的EP_map()中,private_stream_id为0x00,当stream_id表示视频流时,如上文所描述的,private_stream_id无关(忽略)。
接下来,图28示出图25中所描述PlayList()#0和PlayList()#1(图5中的PlayList())中的PlayListMark()的特定实例。
图28的上区示出PlayList()#0的PlayListMark()(图7)。
在图28的上区,PlayList()#0中的PlayListMark()中的number_of_PlayList_Marks为7。因而,PlayList()#0(的PlayListMark())中所包括的Mark()项的数目为7。
另外,在图28的上区,在PlayList()#0中所包括的七个Mark()项之中,第一Mark()或Mark()#0为章标记,因为mark_type(图7)为“Chapter”。另外,因为ref_to_PlayItem_id(图7)为0,Mark()#0属于PlayList()#0中所包括的图25中的两个PlayItem#0和#1之间的PlayItem()#0。因为mark_time_stamp为180,090,Mark#0为基于PlayList()#0中所包括的PlayItem()#0而重放的片断流文件中在时间(重放时间)180,090上的标记。此外,因为entry_ES_stream_id和entry_ES_private_stream_id两者都为0,Mark()#0不与任何一个基本流相关联。另外,Mark()#0表示其号码为1的章,因为mark_data为1。
这里,基于PlayList#0中所包括的PlayItem#0而重放的片断流文件为由在图25中所描述的且在PlayItem#0的Clip_Information_file_name中所描述的“00001.CLP”所指定的片断流文件“00001.PS”。因此,上述由Mark()#0的mark_time_stamp所表示的时间180,090为片断流文件“00001.PS”的时间。
在图28的上区,在PlayList()#0中所包括的七个Mark()项之中,第五Mark()或Mark()#4为类似于第一Mark#0的章标记。
换句话说,第五Mark()或Mark#4为章标记,因为mark_type(图7)为“Chapter”。另外,Mark#4属于PlayList#0中所包括的图25中的两个PlayItem#0和#1之间的PlayItem()#1。因为mark_time_stamp为90,000,Mark#4为基于PlayList#0中所包括的PlayItem#1而重放的片断流文件的时间90,000上的标记。此外,因为entry_ES_stream_id和entry_ES_private_stream_id两者都为0,Mark#4不与任何一个基本流相关联。Mark#4表示其号码为2的章,因为mark_data为2。
这里,基于PlayList#0中所包括的PlayItem#1而重放的片断流文件为由在图25中所描述的且在PlayItem#1的Clip_Information_file_name中所描述的“00002.CLP”所指定的片断流文件“00002.PS”。因而,上述由Mark#4的mark_time_stamp所表示的时间90,000为片断流文件“00002.PS”的时间。
另外,在图28的上区,在PlayList#0中所包括的七个Mark()项之中,第二Mark()或Mark#1为索引标记,因为mark_type(图7)为“Index”。另外,因为ref_to_PlayItem_id(图7)为0,Mark#1属于PlayList#0中所包括的图25中的两个PlayItem#0和#1之间的PlayItem#0。因为mark_time_stamp为5,580,090,Mark#1为在基于PlayList#0中所包括的PlayItem#0而重放的片断流文件的时间5,580,090的标记。此外,因为entry_ES_stream_id和entry_ES_private_stream_id两者都为0,Mark#1不与任何一个基本流相关联。Mark#1表示其号码为1的索引,因为mark_data为1。
这里,如上文所描述的,基于PlayList#0中所包括的PlayItem#0而重放的片断流文件为片断流文件“00001.PS”。因而,上述由Mark#1的mark_time_stamp所表示的时间5,580,090为片断流文件“00001.PS”的时间。
在图28的上区,在PlayList#0中所包括的七个Mark()项之中,为第三Mark()、第六Mark()、和第七Mark()的Mark#2、Mark#5、和Mark#6为类似于第二Mark#1的索引标记。
另外,在图28的上区,在PlayList#0中所包括的七个Mark()项之中,第四Mark()或Mark#3为事件标记,因为mark_type(图7)为“Event”。因为ref_to_PlayItem_id(图7)为0,Mark#3属于PlayList#0中所包括的图25中的两个PlayItem#0和#1之间的PlayItem#0。另外,因为mark_time_stamp为16,380,090,Mark#3为在基于PlayList#0中所包括的PlayItem#0而重放的片断流文件的时间16,380,090的标记。此外,因为entry_ES_stream_id和entry_ES_private_stream_id两者都为0,Mark#3不与任何一个基本流相关联。因为mark_type为0,Mark#3产生具有0作为自变量的事件。
这里,如上文所描述的,基于PlayList#0中所包括的PlayItem#0而重放的片断流文件为片断流文件“00001.PS”。因而,上述由Mark#3的mark_time_stamp所表示的时间16,380,090为片断流文件“00001.PS”中的时间。
在图28的上区,在PlayList#0的PlayListMark()列表外的右边,示出属于Mark()的从PlayItem()的开始起的每个时间,且在更右边,示出从PlayList#0的开始起的每个时间。
接下来,在图28的下区,示出PlayList#1的PlayListMark()(图7)。
在图28的下区,PlayList#1的PlayListMark()中的number_of_PlayList_Marks为3。因而,PlayList#1(的PlayListMark())中所包括的Mark()项的数目为7。
另外,在图28的下区,在PlayList#1中所包括的三个Mark()项之中,第一Mark()或Mark#0为章标记,因为mark_type(图7)为“Chapter”。另外,因为ref_to_PlayItem_id(图7)为0,Mark#0属于PlayList#1中所包括的图25中的一个PlayItem#0。因为mark_time_stamp为90,000,Mark#0为在基于PlayList#1中所包括的PlayItem#0而重放的片断流文件中的时间90,000的标记。此外,因为entry_ES_stream_id和entry_ES_private_stream_id两者都为0,Mark#0不与任何一个基本流相关联。因为mark_type为0,Mark#0的数字表示章号。
这里,基于PlayList#1中所包括的PlayItem#0而重放的片断流文件为由在PlayItem#0的Clip_Information_file_name中所描述的“00003.CLP”所指定的片断流文件“00003.PS”。因此,上述由Mark#0的mark_time_stamp所表示90,000为片断流文件“00003.PS”中的时间。
在图28的下区,在PlayList#1中所包括的三个Mark()项之中,第二Mark()或Mark#1为事件标记,因为mark_type(图7)为“Event”。另外,因为ref_to_PlayItem_id(图7)为0,Mark#1属于PlayList#1中所包括的图25中的一个PlayItem#0。同样,因为mark_time_stamp为27,090,000,Mark#1为在基于PlayList#1中所包括的PlayItem#0而重放的片断流文件中的时间27,090,000的标记。此外,因为entry_ES_stream_id为0xE0,且entry_ES_private_stream_id为0,Mark#1与当stream_id为0xE0时而指定(识别)的基本流相关联,即,如图20和22中所示,它与视频流相关联。因为mark_data为1,Mark#1产生具有1作为自变量事件。
这里,如上文所描述的,基于PlayList#1中所包括的PlayItem#0而重放的片断流文件为片断流文件“00003.PS”。因而,上述由Mark#1的mark_time_stamp所表示的时间27,090,000为片断流文件“00003.PS”中的时间。
另外,在其中stream_id为0xE0,且Mark#1与其相关联的视频流为Mark#1所属的视频流,且在该视频流中,在图25中的PlayList#1中所包括的PlayItem#0的Clip_Information_file_name中所描述的“00003.CLP”中所描述的stream_id为0xE0。换句话说,它为片断流文件“00003.PS”中多路复用的三个基本流stream#0至#2之中的第一基本流(视频流)stream#0。
接下来,在图28的下区,在PlayList#1中所包括的三个Mark()项之中,第三Mark()或Mark#2为事件标记,因为mark_type(图7)为“Event”。另外,因为ref_to_PlayItem_id(图7)为0,Mark#2属于PlayList#1中所包括的图25中的一个PlayItem#0。同样,因为mark_time_stamp为27,540,000,Mark#1为在基于PlayList#1中所包括的PlayItem#0而重放的片断流文件中的时间27,540,000的标记。因为entry_ES_stream_id为0xE1,且entry_ES_private_stream_id为0,Mark#2与当stream_id为0xE1时所指定(识别)的基本流相关联,即,如图20和22中所示,它与视频流相关联。另外,因为mark_data为2,Mark#2产生具有2作为自变量的事件。
这里,基于PlayList#1中所包括的PlayItem#0而重放的片断流文件为片断流文件“00003.PS”。因而,上述由Mark#2所表示的时间27,540,000为片断流文件“00003.PS”中的时间。
另外,在其中stream_id为0xE1,且Mark#2与其相关联的视频流为Mark#2所属的视频流,且在该视频流中,在图25中的PlayList#1中所包括的PlayItem#0的Clip_Information_file_name中所描述的“00003.CLP”中所描述的stream_id为0xE1。换句话说,它为由片断信息文件“00003.CLP”所辨识的且在片断流文件“00003.PS”中多路复用的三个基本流stream#0至#2之中的第二基本流(视频流)stream#1。
这里,在图28的下区,在PlayList#1中的PlayListMark()的列表外的右边,示出从Mark()所属的PlayItem()的开始起的每个时间。
在图28中,在mark_data中描述由章和索引标记所表示的章和索引号。然而,能够通过,例如,计算PlayListMark()中章标记和索引标记的数目来辨识由章和索标记所表示的章和索引号,尽管未在mark_data中描述它们。
盘装置操作的描述
接下来,假设记录了如图25至28中所描述的数据(文件),描述图1中的盘装置的操作。
在将盘101加载到盘驱动器102后,通过驱动器接口114将表示该加载的消息报告给视频内容重放程序210,且另外,报告给图2中的操作系统201。当从操作系统201接收到指示已经将盘101加载到盘驱动器102的消息时,视频内容重放程序210就开始图29中的重放之前的处理。
“重放之前的处理”
特殊地,图29为阐明由视频内容重放程序210所执行的重放之前的处理的流程图。
这里,由该流程图所描述的下列盘驱动器的操作或过程并不总是需要以在流程图表格中所描述的顺序而时序地执行,且可以并行地或分离地执行。然而,在这个规范说明中,为方便起见,根据流程图描述盘驱动器的操作或过程。
在重放之前的处理中,在步骤S101,视频内容重放程序210使用操作系统201的文件系统功能,关于对于视频内容重放程序210盘101是否正常,而检查盘101。
如上文所描述的,通过使用视频内容重放程序210的文件系统功能,执行盘101的访问(文件读取)。如果需要,下文省略其描述。
如果在步骤S101确定盘101不正常,即,例如,如果盘101所采用的文件的系统为与操作系统201不相匹配的类型,且如果在根目录中未设置“VIDEO”目录,则视频内容重放程序210确定该文件系统与盘101不相匹配,处理前进到S102,且在完成重放之前的处理之前,图形处理模块219执行错误处理。
换句话说,在错误处理中,图形处理模块219产生指示盘101不正常的错误消息(的视频数据),并从视频输出模块220输出该消息,由此显示错误消息。另外,在其它错误处理中,例如,能够从音频输出模块221输出警告声,能够从盘驱动器102卸载盘101等等。
可选择地,如果在步骤S101确定盘101是正常的,则处理前进到步骤S103。视频内容重放程序210使用内容数据供给模块213请求并从操作系统201读取盘101(图4)中的“VIDEO”目录中所设置的两个数据文件:“SCRIPT.DAT”文件和“PLAYLIST.DAT”文件,并前进到步骤S104。在步骤S104,将“SCRIPT.DAT”文件供给脚本控制模块211,并将“PLAYLIST.DAT”文件供给播放器控制模块212。
在那之后,过程从步骤S104前进到步骤S105直到S107,且播放器控制模块212执行初始化。脚本控制模块211等待脚本控制模块211完成初始化。
“播放器控制模块212的初始化”
在初始化中,在步骤S105,通过分析“PLAYLIST.DAT”文件,播放器控制模块212找到“PLAYLIST.DAT”文件中所使用的片断信息文件的数目和它们的文件名。
特殊地,因为在本情形中,“PLAYLIST.DAT”文件为如图25中所示的,且图25中的“PLAYLIST.DAT”文件中的number_of_PlayLists为2,播放器控制模块212辨识存在两个PlayList()项或者第一PlayList#0和第二PlayList#1。另外,因为关于图25中的“PLAYLIST.DAT”文件中的第一PlayList#0,number_of_PlayLists为2,播放器控制模块212辨识,在PlayList#0中,存在两个PlayItem()项或者第一PlayItem#0和第二PlayItem#1。通过参考图25中的“PLAYLIST.DAT”文件中的PlayList#0中所包括的第一PlayItem#0和第二PlayItem#1的每一个的Clip_Information_file_name,播放器控制模块212辨识PlayList#0中所包括的第一PlayItem#0的片断信息文件为“00001.CLP”,以及第二PlayItem#1的片断信息文件为“00002.CLP”。
因为number_of_PlayLists为1,关于第二PlayList#1以类似的方式,播放器控制模块212辨识存在一个PlayItem()(PlayItem#0),并从PlayItem#0中的Clip_Information_file_name辨识PlayItem#0的片断信息文件为“00003.CLP”。
在那之后,从步骤S105前进到步骤S106,播放器控制模块212从盘101读取在步骤S105所辨识的片断信息文件。特殊地,它从盘101的“VIDEO”目录中的“CLIP”目录中读取三个片断信息文件“00001.CLP”、“00002.CLP”、和“00003.CLP”。
尽管,在步骤S106的片断信息文件的读取中,仅读取最初所产生的PlayList()的PlayItem的片断信息文件就足够,但在这个实施例中,如上文所描述的,预先读取所有PlayList()项的PlayItem()项的片断信息文件。
在步骤S106的处理之后,前进到步骤S107,播放器控制模块212确定在步骤S105中所辨识的片断信息文件的读取的过程是否已成功,并进一步(检查)确定在盘101上是否存在相应于所读取的片断信息文件的片断流文件。特殊地,在步骤S107,确定读取片断信息文件“00001.CLP”、“00002.CLP”、和“00003.CLP”的过程是否已成功,并进一步确定盘101上的“VIDEO”目录下的“STREAM”目录中是否存在片断信息文件“00001.CLP”、“00002.CLP”、和“00003.CLP”,以及在其中仅文件名的扩展名不同的片断流文件“00001.PS”、“00002.PS”、和“00003.PS”。
在步骤S107,如果确定在步骤S105中所辨识的片断信息文件的读取已失败,或者确定在盘101上不存在相应于片断信息文件的片断流文件,即,例如,如果在盘101上未记录用于根据“PLAYLIST.DAT”文件的重放所必需的片断信息文件和片断流文件,则视频内容重放程序210确定其与盘101不匹配,并前进到步骤S102。执行上文所描述的错误处理,且重放之前的处理结束。
可选择地,如果在步骤S107确定,在步骤S105中所辨识的片断信息文件的读取过程已成功,并确定在盘101上存在相应于片断信息文件的片断流文件,则播放器控制模块212结束初始化,并前进到步骤S108。
在步骤S108,脚本控制模块211启动解释和执行“SCRIPT.DAT”文件。
作为例子,脚本控制模块211执行“SCRIPT.DAT”文件,由此,当命令播放器控制模块212重放第一PlayList()(PlayList#0)时,执行图30中的重放处理。
“重放处理”
特殊地,图30为阐明由视频内容重放程序210所执行的重放处理的流程图。
“重放准备处理”
在重放处理中,首先,在步骤S121和S122,播放器控制模块212执行关于由脚本控制模块211请求其重放的PlayList(),即,第一PlayList()(PlayList#0)的重放准备处理。
换句话说,在步骤S121,播放器控制模块212辨识第一PlayList#0中所包括的第一PlayItem#0的IN_time(图6),并前进到步骤S122。播放器控制模块212在基于第一PlayList#0中所包括的第一PlayItem#0而重放的片断流文件“00001.PS”中,检查在其中将要开始重放且相应于PlayItem#0的IN_time的重放开始位置。
这里,当PlayItem()的IN_time(图6)表示片断流文件的开始时,可以从片断流文件的开始读取节目流。当IN_time表示除片断流的开始之外的位置时,执行寻找(检查)相应于IN_time的位置并从那里读取节目流是必需的。
特殊地,如图25中所示,第一PlayList#0中所包括的第一PlayItem#0的IN_time为180,090。播放器控制模块212从基于第一PlayList#0中所包括的第一PlayItem#0而重放的片断流文件“00001.CLP”的图27中的EP_map()中,寻找为PlayItem#0的IN_time的,适合于180,090的重放开始位置。
换句话说,通过使用对分搜索或诸如此类,播放器控制模块212从EP_map()中所描述的且表示解码可开始位置的PTS_EP_start之中,搜索满足表达式PTS_EP_start≤IN_time的最大的PTS_EP_start。搜索不大于IN_time的PTS_EP_start的原因是由IN_time所表示的位置并不总是解码可开始位置。
在这种情形,如上文所描述的,IN_time为180,090。另外,在基于第一PlayList#0中所包括的第一PlayItem#0而重放的片断流文件“00001.CLP”中的图27中所示的EP_map()中,180,090描述为满足表达式PTS_EP_start≤IN_time的最大的PTS_EP_start。因此,在播放器控制模块212中,从图27中所示的EP_map()中,搜索180,090的PTS_EP_start。
另外,在播放器控制模块212中,读取为相应于所找到的RPN_EP_start的RPN_EP_start的(扇区)305,且确定由305的RPN_EP_start所表示的片断流文件“00001.PS”中的一个位置为重放开始位置。
如上文所描述的,在播放器控制模块212确定重放开始位置之后,它从步骤S122前进到S123,并控制图形处理模块219显示时间代码。根据播放器控制模块212的控制,图形处理模块219产生并将时间代码(的视频数据)输出至视频输出模块220。这启动时间代码的显示。
这里,在步骤S123启动其显示的时间代码,例如,为通过将PlayList()的开始转换为00:00:00(小时:分钟:秒)而获得的一个值。另外,可以在具有时间代码或不具有时间代码的情况下显示章和索引号。
“分析PlayListMark()”
在步骤S123启动时间代码的显示之后,处理前进到步骤S124。播放器控制模块212执行在其中分析由脚本控制模块211请求其重放的PlayList(),即,第一PlayList()(PlayList#0)中所描述的PlayListMark()(图7)。
特殊地,因为在已经读取的“PLAYLIST.DAT”文件中的第一PlayList#0的图28中上区上所示的PlayListMark()中,number_of_PlayList_marks为7,播放器控制模块212辨识PlayList#0中所包括的Mark()项为7。
另外,通过分析PlayList#0中所包括的图28中上区上的七个Mark()项,基于ref_to_PlayItem_id,播放器控制模块212辨识在该七个Mark()项之中,从第一至第四的四个Mark()项属于PlayList#0中的第一PlayItem()(PlayItem#0)。
在那之后,播放器控制模块212提取属于PlayList#0的第一PlayItem#0的四个Mark()项的mark_time_stamp项,并将所提取的项作为在其中元素的数目为4的一个排列传递给解码控制模块214。换句话说,以上述方式,将为在图28中上区的七个Mark()项之中的从第一至第四的四个Mark()项的mark_time_stamp项的四个时间点:{180,090}、{5,580,090}、{10,980,090}、和{16,380,090}从播放器控制模块212传递至解码控制模块214。在这个时刻,播放器控制模块212也通知解码控制模块214这些时间的属性为“Mark Process”。当由定时器单元214A所度量的时间与“MarkProcess”属性的时间一致时,解码控制模块214通知播放器控制模块212表示该一致的消息、与“Mark Process”属性的时间一致的时间、和“MarkProcess”属性。
“确定将要重放的基本流”
接下来,从步骤S124前进到S125,播放器控制模块212确定将要重放的基本流。
换句话说,因为在图26中的片断信息文件“00001.CLP”中number_of_streams为4,其文件名在第一PlayList#0的第一PlayItem#0(图25)的Clip_Information_file_name中描述,该PlayList#0为由脚本控制模块211请求其重放的PlayList()的所以播放器控制模块212辨识在相应的片断流文件“00001.PS”中多路复用了四个基本流。另外,通过顺序地检查片断信息文件“00001.CLP”的StaticInfo()的stream_id和图26中必需的private_stream_id,播放器控制模块212辨识四个基本流为一个视频流、一个ATRAC音频流、和两个字幕流。换句话说,辨识具有属性且在片断流文件“00001.PS”中多路复用的基本流的数目。
在切换正重放的基本流(音频交换、字幕交换等等)中使用具有属性且在片断流文件中多路复用的基本流的数目的信息。另外,在片断流文件中可能不存在字幕流(在内容中不包括字幕),且在确定字幕流是否存在中,使用具有“Subtitle Stream”属性的基本流的数目的信息。
如上文所描述的,基于检查StaticInfo()的结果,播放器控制模块212选择并确定将要重放的基本流。然而,因为,在这种情形,片断流文件“00001.PS”中多路复用的四个基本流仅包含仅一个“Video Stream”属性基本流和仅一个“Audio Stream”属性基本流,“Video Stream”属性基本流和“Audio Stream”属性基本流是不可选择的,因此确定该一个视频流和一个音频流(ATRAC音频流)为将要重放的基本流。
另外,关于“Subtitle Stream”属性基本流,在片断流文件“00001.PS”中多路复用的四个基本流之中存在两个流。因而,选择并确定该两个字幕流的一个为将要重放的基本流。这里,在两个字幕流之间,例如,选择片断信息文件“00001.CLP”中以出现的顺序的第一个字幕流。
如上文所描述的,在辨识片断流文件“00001.PS”中多路复用的四个基本流的属性和数目的情形中,需要分别制定该四个基本流。相应地,播放器控制模块212使用stream_id和必需的private_stream_id来指定片断流文件“00001.PS”中多路复用的四个基本流。
特殊地,如参考图26关于片断信息文件“00001.CLP”所描述的,通过使用为0xE0的stream_id,播放器控制模块212指定为在片断流文件“00001.PS”中多路复用的四个基本流之中的“Video Stream”属性基本流的视频流。
另外,如参考图26关于片断信息文件“00001.CLP”所描述的,通过使用为0xBD的stream_id和为0x00的private_stream_id,播放器控制模块212指定为在片断流文件“00001.PS”中多路复用的四个基本流之中的“AudioStream”属性基本流的ATRAC音频流。
此外,如参考图26关于片断信息文件“00001.CLP”所描述的,通过使用为0xBD的stream_id、为0x80的private_stream_idstream_id,为0xBD的stream_id、和为0x81的private_stream_id,播放器控制模块212指定两个字幕流,其为在片断流文件“00001.PS”中多路复用的四个基本流之中的“Subtitle Stream”属性基本流。
如上文所描述的,基于描述为相应于片断流文件的片断信息文件的元数据的stream_id和private_stream_id的结合,能够指定在片断流文件中多路复用的基本流。
这里,stream_id和private_stream_id的结合为用于扩展MPEG-2系统的多路复用而供给的机制。通过在元数据中,使用stream_id和private_stream_id的结合来指定基本流,确保能够指定基本流。另外,即使在将来扩展了private_stream_id的含意,以增加相应的基本流的类型(属性)的数目,也能够使用本机制,而不必改变。因而,该结合优胜在扩展性上。
换句话说,例如,在BD(蓝光光盘)标准中,使用根据MPEG-2标准的传送流的PID(信息包ID)来指定数据。因而,规范说明受MPEG-2标准限制。同样,尽管,例如,在DVD-Video标准中,定义了类似于private_stream_id的sub_stream_id,但未形成sub_stream_id,以便在用于指定流的数据库中描述,而其仅形成以至在描述8或32个流的信息的固定区域中描述(参见,例如,VI4-49,表4.2.1-2(VTS-AST_ATRT)和VI4-52,表4.2.1-3(VTS_SPST_ATRT)等等),所以其具有很低的扩展性。
与那不同,能够将stream_id和private_stream_id的结合描述与能够由,例如,在其中描述元数据的图10中的片断信息文件Clip()中的number_of_streams所表示的数目一样多的次数。因而,不论基本流的数目(在能够由number_of_streams所表示的数目的范围内),基于stream_id和private_stream_id的结合,能够将在片断流文件中多路复用的基本流指定为片断信息文件Clip()中所描述的元数据。
在这个实施例中,在图10中的片断信息文件中使用stream_id和private_stream_id的结合来指定在相应的片断流文件中多路复用的基本流,且另外,例如,将其用作图7中的PlayListMark()中的entry_ES_stream_id和entry_ES_private_stream_id的结合,以指定用于与Mark()相关联的基本流。此外,例如,在图14中的EP_map()中,使用stream_id和private_stream_id的结合来指定描述解码可开始点的信息的基本流。
“控制输出属性”
在那之后,从步骤S125前进到步骤S126,播放器控制模块212执行控制将要重放的基本流,即,在步骤S125所确定的将要重放的基本流的输出属性。
特殊地,关于将要重放的基本流,即,在步骤S125所确定的将要重放的视频流、ATRAC音频流、和字幕流的每一个,播放器控制模块212检查表示在其中描述输出属性的DynamicInfo()(图13)的数目的number_of_DynamicInfo(图10)。
这里,在这种情形,如关于参考图26的“00001.CLP”所描述的,将要重放的视频流、ATRAC音频流、和字幕流为在片断流文件“00001.PS”中多路复用的基本流,且其number_of_DynamicInfo项为0。在关于将要重放的所有的基本流,number_of_DynamicInfo项都为0的这样的情形中,播放器控制模块212并不特别地执行关于控制将要重放的基本流的输出属性的处理的处理。
稍后描述当关于将要重放的基本流,number_of_DynamicInfo不为0时所执行的用于控制该基本流的输出属性的处理。
“用于开始重放的准备”
在步骤S126的处理之后,前进到步骤S127,播放器控制模块212执行用于开始将要重放的基本流的重放的准备。
换句话说,播放器控制模块212将片断流文件“00001.PS”的文件名和在步骤S122确定为重放开始位置的EP_map()中所描述的RPN_EP_start(=305)供给内容数据供给模块213,在该片断流文件中多路复用将要重放的基本流。
另外,在开始将片断流文件“00001.PS”中所存储的节目流供给缓冲器控制模块215之前,在该片断流文件中将要重放的基本流多路复用,播放器控制模块212将该缓冲器控制模块215初始化。
特殊地,在缓冲器控制模块215(图3)中,给在数据开始指针存储单元231中所存储的数据开始指针、在数据写入指针存储部分232中所存储的数据写入指针、在视频读取指针存储部分241中所存储的视频读取指针、在音频读取指针存储部分251中所存储的音频读取指针、和在字幕读取指针存储部分262中所存储的字幕读取指针分配相等的值。
相应地,在数据开始指针存储单元231中所存储的数据开始指针和在数据写入指针存储部分232中所存储的数据写入指针表示缓冲器控制模块215的缓冲器215A中的相同位置。这指示出在其中有效数据不存储在缓冲器215A中的状态。
此外,播放器控制模块212将作为识别(指定)将要重放的基本流的识别信息的stream_id以及private_stream_id(如果需要),供给缓冲器控制模块215。
换句话说,如上文所描述的,在将要重放的基本流之中,具有“VideoStream”属性的视频流由为0xE0的stream_id而指定,具有“AudioStream”属性的ATRAC音频流由为0xBD的stream_id和为0x00的private_stream_id而指定,以及具有“Subtitle Stream”属性的字幕流由为0xBD的stream_id和为0x80的private_stream_id而指定。播放器控制模块212将stream_id和private_stream_id供给缓冲器控制模块215。
在缓冲器控制模块215(图3)中,视频读取功能单元233将关于来自播放器控制模块212的视频流的为0xE0的stream_id存储在stream_id寄存器242中。另外,音频读取功能单元234分别将来自播放器控制模块212的为0xBD的stream_id和为0x00的private_stream_id存储在stream_id寄存器252和private_stream_id寄存器253中。此外,字幕读取功能单元235分别将来自播放器控制模块212的为0xBD的stream_id和为0x80的private_stream_id存储在stream_id寄存器263和private_stream_id寄存器264中。
关于更进一步的处理,播放器控制模块212存储供给缓冲器控制模块215的将要重放的基本流的stream_id和private_stream_id。在其中有消息请求稍后描述的流切换的情形和在稍后描述的标记处理中,播放器控制模块212使用stream_id和private_stream_id来指定目前正重放的流。
关于初始化缓冲器控制模块215(图3),播放器控制模块212也在字幕读取功能部分261中设定字幕读取标志,该字幕读取标志具有根据在片断流文件的一个值,在该中片断流文件多路复用将要重放的基本流。
换句话说,在这种情形,因为在其中将将要重放的基本流多路复用的片断流文件“00001.PS”中包括字幕流,为了使字幕读取功能单元235起作用,在字幕读取功能部分261中设定具有为1的值的字幕读取功能标志。当在其中将将要重放的基本流多路复用的片断流文件中不包括字幕流时,在字幕读取功能部分261中设定具有为0的值的字幕读取功能标志。在这种情形,字幕读取功能单元235不起作用(不特别地执行处理)。
另外,播放器控制模块212将由脚本控制模块211请求其重放的第一PlayList#0中所包括的第一PlayItem#0(图25)的作为IN_time的180,090和作为OUT_time的27,180,090供给解码控制模块214。在解码控制模块214中,使用IN_time来控制开始基于PlayItem()而重放的片断的解码,以及使用OUT_time来结束该片断的解码,且另外,控制稍后所描述的PlayItem切换。
另外,播放器控制模块212初始化关于图形处理模块219的字幕显示形式的引导。换句话说,播放器控制模块212控制图形处理模块219,以便将字幕流显示形式改变为,例如,默认显示形式。
“开始数据读取”
在那之后,从步骤S127前进到S128,播放器控制模块212控制内容数据供给模块213,由此,通过操作系统201的功能,内容数据供给模块213读取存储节目流的片断流文件,其中多路复用将要重放的基本流。换句话说,通过指明位于盘101(图4)上的“VIDEO”目录中的“STREAM”目录中的片断流文件“00001.PS”,并进一步指明扇区305作为步骤S122中所确定重放开始位置,内容数据供给模块213请求操作系统201执行文件读取。另外,内容数据供给模块213将从盘101所读取的数据的供给引导至缓冲器控制模块215。
以上述方式,开始从盘101的片断流文件“00001.PS”中所存储的节目流的读取,并将该节目流供给缓冲器控制模块215。
缓冲器控制模块215(图3)将在从盘101读取之后而供给的节目流写入由数据写入指针存储部分232的数据写入指针所表示的位置,且数据写入指针以已经写入的数据的大小而增加。
这里,以下,除非另外声明,如果缓冲器控制模块215中的缓冲器215A具有空余空间,则内容数据供给模块213从盘101读取数据,并将该数据供给和存储在缓冲器控制模块215中的缓冲器215A中。因此,假设缓冲器215A不断地存储足够的数据。
“启动解码器控制”
如上文所描述的,在启动从盘101的数据的读取,且开始在缓冲器控制模块215中的缓冲器215A中存储数据之后,过程从步骤S128前进到S129。通过控制视频解码器控制模块216、音频解码器控制模块217、和字幕解码器控制模块218,在解码操作之前的一个阶段中,解码控制模块214启动从缓冲器215A的数据的读取。
换句话说,这允许视频解码器控制模块216获得缓冲器215A中所存储的一个视频存取单元、添加到该视频存取单元上的PTS和DTS(如果需要,以下称为时间戳)、和充当在紧邻解码可开始点之前所设置的private_stream_2的PES_packet()中所描述的信息(如果需要,以下称为附加信息)的pic_struct_copy、au_ref_flag、和AU_length,其为在将数据请求发布到缓冲器控制模块215(图3)中的视频读取功能单元233之后,响应该数据请求而从缓冲器控制模块215传递。无论何时视频解码器控制模块216获得了视频存取单元,都将时间戳从视频解码器控制模块216传递至解码控制模块214。
另外,音频解码器控制模块217也获取缓冲器215A中所存储的一个(ATRAC)音频存取单元和添加到该音频存取单元上的,在将数据请求发布到缓冲器控制模块215(图3)中的音频读取功能单元234之后,响应该数据请求而从缓冲器控制模块215传递的时间戳(PTS、DTS)。无论何时音频解码器控制模块217获得了音频存取单元,都将时间戳从音频解码器控制模块217传递至解码控制模块214。
此外,字幕解码器控制模块218获取缓冲器215A中所存储的一个字幕存取单元和添加到该字幕存取单元上的,在将数据请求发布到缓冲器控制模块215(图3)中的字幕读取功能单元235之后,响应该数据请求而从缓冲器控制模块215传递的时间戳。无论何时字幕解码器控制模块218获得了字幕存取单元,都将时间戳从字幕解码器控制模块218传递至解码控制模块214。另外,当将要重放的基本流中不存在字幕流时,且当在缓冲器215A中未存储字幕存取单元时,不从缓冲器控制模块215传递数据至字幕解码器控制模块218。
这里,无论何时从缓冲器控制模块215请求数据,视频解码器控制模块216、音频解码器控制模块217、和字幕解码器控制模块218每一个都将响应该数据请求的结果传递至解码控制模块214。
另外,稍后描述在从缓冲器控制模块215传递数据至视频解码器控制模块216、音频解码器控制模块217、和字幕解码器控制模块218的情形中,从缓冲器215A的数据的读取的详细情况。
“启动解码”
如上文所描述的,当视频解码器控制模块216、音频解码器控制模块217、或字幕解码器控制模块218启动从缓冲器控制模块215中的缓冲器215A读取数据时,过程从步骤S129前进到S130,并启动数据的解码。
换句话说,基于为PlayList#0中所包括的第一PlayItem#0的IN_time且在步骤S127从播放器控制模块212而供给的180,090,以及如在步骤S129中所描述的从视频解码器控制模块216、音频解码器控制模块217、和字幕解码器控制模块218而传递的时间戳,以如果需要建立同步而移位的定时,命令视频解码器控制模块216、音频解码器控制模块217、和字幕解码器控制模块218启动解码。
例如,在日本专利No.3496725中描述了用于以用于建立同步而移位的定时命令解码的启动的方法。简单来说,存在一种方法,在其中,在从视频解码器控制模块216、音频解码器控制模块217、和字幕解码器控制模块218所传递的时间戳之中,设定最小的值作为由定时器单元214A所度量的时间的初始值,启动时间度量,且在由定时器单元214A所度量的时间与时间标志一致的时刻,命令解码的启动。
视频解码器控制模块216从解码控制模块214接收解码启动指令;响应该指令,将从缓冲器控制模块215(图3)中的视频读取功能单元233所获得的一个视频存取单元传递给视频解码器116(图1);并控制视频解码器116执行解码。另外,视频解码器控制模块216将作为视频解码器116的解码的结果而获得的视频数据供给图形处理模块219。
随后,视频解码器控制模块216使用视频解码器116顺序地将从缓冲器控制模块215中的视频读取功能单元233所获得的每个视频存取单元解码,并将作为解码的结果而获得的视频数据供给图形处理模块219。
另外,同样音频解码器控制模块217从解码控制模块214接收解码启动指令。响应该指令,音频解码器控制模块217将从缓冲器控制模块215(图3)中的音频读取功能单元234所获得的一个音频存取单元传递给音频解码器117(图1),并控制音频解码器117执行解码。此外,音频解码器控制模块217将作为音频解码器117的解码的结果而获得的音频数据供给音频输出模块221。
随后,音频解码器控制模块217使用音频解码器117顺序地将从缓冲器控制模块215中的音频读取功能单元234所获得的每个音频存取单元解码,并将作为解码的结果而获得的音频数据供给音频输出模块221。
同样字幕解码器控制模块218从解码控制模块214接收解码启动指令。响应该指令,字幕解码器控制模块218使用其内部字幕解码软件将从缓冲器控制模块215(图3)中的字幕读取功能单元235所获得的一个字幕存取单元解码,并将作为解码的结果而获得的字幕数据(字幕图像数据)供给图形处理模块219。
随后,字幕解码器控制模块218使用其内部字幕解码软件顺序地将从缓冲器控制模块215中的字幕读取功能单元235所获得的每个字幕存取单元解码,并将作为解码的结果而获得的字幕数据供给图形处理模块219。
“图形处理”
在那之后,过程从步骤S130前进到S131,且音频内容重放程序210对如上文所描述的从视频解码器控制模块216而供给的视频数据,以及如果需要,从字幕解码器控制模块218而供给的字幕数据,执行图形处理。
换句话说,根据来自播放器控制模块212的显示形式指令,首先图形处理模块219对来自字幕解码器控制模块218的字幕数据执行字幕处理,例如放大和缩小。当未从播放器控制模块212接收到显示形式指令时,或者当接收到默认显示形式指令时,图形处理模块219直接存储来自图形处理模块219字幕数据。
另外,通过添加来自视频解码器控制模块216的视频数据,和来自字幕解码器控制模块218的字幕数据或在字幕处理之后所获得的字幕数据,图形处理模块219获得在其中字幕数据覆盖在来自视频解码器控制模块216的视频数据上的输出视频数据,并将该数据供给视频输出模块220。
当播放器控制模块212命令显示像例如,菜单、消息、时间代码、章、或索引那样的信息时,图形处理模块219以覆盖在输出视频数据上的形式产生并将该信息供给视频输出模块220。
“输出处理”
在步骤S131的处理之后,处理前进到步骤S132。如步骤S131中所描述的,视频输出模块220顺序地将从图形处理模块219所供给的输出视频数据存储在FIFO 220A中,并以预定的输出速率顺序地输出在FIFO 220A中所存储的输出视频数据。
尽管只要FIFO 220A的存储容量(剩余量)足够,视频输出模块220就从图形处理模块219接收输出视频数据,但如果存储容量不足,则其请求图形处理模块219停止接收输出视频数据。这促使图形处理模块219停止处理,并请求视频解码器控制模块216和字幕解码器控制模块218停止处理。这停止视频解码器控制模块216和字幕解码器控制模块218的处理。
在请求图形处理模块219停止接收输出视频数据之后,视频输出模块220请求图形处理模块219,在提前了来自FIFO 220A的输出视频数据的输出且FIFO 220A恢复具有足够的空间的时间接收输出视频数据。类似于停止接收输出视频数据的请求,从图形处理模块219报告这个请求给视频解码器控制模块216和字幕解码器控制模块218。这促使图形处理模块219,以及视频解码器控制模块216和字幕解码器控制模块218重新开始已停止的处理。
另外,如上文所描述的,同样音频输出模块221顺序地将从音频解码器控制模块217所供给的音频数据存储在FIFO 221A中,并以预定的输出速率(采样频率)顺序地输出在FIFO 221A中所存储的音频数据。
尽管只要FIFO 221A的存储容量(剩余量)足够,音频输出模块221就从音频解码器控制模块217接收音频数据,但如果存储容量不足,则音频输出模块221请求音频解码器控制模块217停止接收音频数据。这促使音频解码器控制模块217停止处理。
在请求音频解码器控制模块217停止接收音频数据之后,音频输出模块221请求音频解码器控制模块217,在提前了来自FIFO 221A的音频数据的输出且FIFO 221A恢复具有足够的空间的时间接收音频数据。这促使音频解码器控制模块217重新开始已停止的处理。
如上文所描述的,随着从视频输出模块220和音频输出模块221输出数据,执行基本流的解码。
当图1中的盘装置重放盘101时,整个处理或操作的流程为如图29和30中所描述的。下文描述当盘装置重放盘101时的其它处理或操作。
“PlayItem改变”
如图29和30中所描述的,开始图25中第一PlayList#0中的第一PlayItem#0。根据PlayItem#0,在第一PlayItem#0的重放结束后,第二PlayItem#1开始。换句话说,执行在其中PlayItem从PlayItem#0改变为PlayItem#1的PlayItem改变。
相应地,参考图31中的流程图描述PlayItem改变的过程。
在如图29和30中所描述的开始了图25中PlayList#0中的第一PlayItem#0(的片断)的重放之后,当重放该第一PlayItem#0时,解码控制模块214(图2)连续不断地确认由内嵌定时器单元214A所度量的时间。
“PlayItem#0的重放的结束”
当由定时器单元214A所度量的时间等于为第一PlayItem#0的OUT_time且为在图30中的步骤S127从播放器控制模块212所供给的27,180,090(图25)时,在步骤S151,解码控制模块214执行解码中断控制,以结束PlayItem#0的重放。
换句话说,解码控制模块214通过操作视频解码器控制模块216、音频解码器控制模块217、和字幕解码器控制模块218而停止解码操作。另外,解码控制模块214控制视频输出模块220连续不断地输出目前正输出的视频数据。
另外,解码控制模块214通知播放器控制模块212指示第一PlayItem#0的重放已经结束的消息。
“启动PlayItem#1的重放”
如上文所描述的,在图29中的步骤S105,播放器控制模块212辨识在第一PlayList#0中,存在第一PlayItem#0和第二PlayItem#1。相应地,当解码控制模块214通知指示第一PlayItem#0的重放已经结束的消息时,播放器控制模块212从步骤S151前进到S152,并启动类似于上文所描述的关于第一PlayItem#0的情形的第二PlayItem#1的重放。
换句话说,纵观用于重放PlayItem#1的过程,类似于图30中的步骤S122中的情形,首先,播放器控制模块212确定EP_map()中所描述的RPN_EP_start项的一个为重放开始位置。
另外,播放器控制模块212执行:属于第二PlayItem#1的Mark()的辨识,如图30中的步骤S124中所描述的;具有属性的且在基于PlayItem#1而重放的片断流文件“00002.PS”中多路复用的基本流的数目的辨识,如图30中的步骤S125中所描述的;以及另外,将要重放的基本流的确定。
播放器控制模块212执行类似于图30中的步骤S127的情形中的那个的处理。
换句话说,播放器控制模块212将确定为重放开始位置的EP_map()的RPN_EP_start和在其中将将要重放的基本流多路复用的片断流文件的文件名,即,在这种情形,在相应于第二PlayItem#1(图25)的Clip_Information_file_name中所描述的“00002.CLP”的片断流文件“00002.PS”的文件名,供给内容数据供给模块213。
此外,在启动将在其中将将要重放的基本流多路复用的片断流文件“00002.PS”中所存储的节目流供给缓冲器控制模块215之前,播放器控制模块212将缓冲器控制模块215初始化。
特殊地,这在缓冲器控制模块215(图3)中,将相等的值分配给在数据开始指针存储单元231中所存储的数据开始指针、在数据写入指针存储部分232中所存储的数据写入指针、在视频读取指针存储部分241中所存储的视频读取指针、在音频读取指针存储部分251中所存储的音频读取指针、和在字幕读取指针存储部分262中所存储的字幕读取指针。
此外,播放器控制模块212将作为识别将要重放的基本流的识别信息的stream_id,以及private_stream_id(如果需要),供给缓冲器控制模块215。
在缓冲器控制模块215(图3)中,视频读取功能单元233将来自播放器控制模块212的关于将要重放的基本流之中的视频流的stream_id存储在stream_id寄存器242中。同样,音频读取功能单元234分别将来自播放器控制模块212的将要重放的基本流之中的音频流的stream_id和private_stream_id存储在stream_id寄存器252和private_stream_id寄存器253中。
因为在其中将目前将要重放的基本流多路复用的片断流文件“00002.PS”中包括字幕流,将将要重放的基本流之中的字幕流的stream_id和private_stream_id从播放器控制模块212供给字幕读取功能单元235,且字幕读取功能单元235分别将该stream_id和private_stream_id存储在stream_id寄存器263和private_stream_id寄存器264中。
在缓冲器控制模块215(图3)的初始化中,播放器控制模块212在字幕读取功能部分261中设定具有根据剪辑片断流文件的一个值的字幕读取功能标志,在该片断流文件中多路复用将要重放的基本流。
换句话说,在这种情形,因为在其中将将要重放的基本流多路复用的片断流文件“00002.PS”中包括字幕流,为了使得字幕读取功能单元235起作用,在字幕读取功能部分261中设定其值为1的字幕读取功能标志。
另外,播放器控制模块212将将要重放的第二PlayItem#1的IN_time 90,000和OUT_time 27,090,000(图25)供给解码控制模块214。
此外,播放器控制模块212为图形处理模块219初始化字幕显示形式指令。换句话说,播放器控制模块212控制图形处理模块219,以便字幕流显示形式改变为默认显示形式。
当关于将要重放的基本流,configurable_flag(图12)为1,其表示允许改变显示形式时,从播放器控制模块212至图形处理模块219的字幕流显示形式指令可以不改变当前的显示形式。
随后,类似于第一PlayItem#0的重放,执行第二PlayItem#1的重放。当正在重放第二PlayItem#1时,解码控制模块214连续不断地确认由内嵌定时器单元214A所度量的时间,且当由定时器单元214A所度量的时间等于从播放器控制模块212所供给的第二PlayItem#1的OUT_time 27,090,000(图25)时,通过执行类似于步骤S151中的情形的解码中断控制,而结束PlayItem#1的重放。
“时间代码的显示”
接下来,如上文所描述的,在图30中的步骤S123,启动时间代码的显示,且顺序地更新时间的显示。
相应地,参考图32中的流程图描述用于显示时间代码的过程。
当内嵌定时器单元214A度量一秒时,在步骤S171,解码控制模块214(图2)将指示一秒已经过去的消息和由定时器单元214A所度量的当前时间供给播放器控制模块212,并前进到步骤S172。在步骤S172,播放器控制模块212从解码控制模块214接收消息和当前时间,将当前时间转换为时间代码,并前进到步骤S173。
在步骤S173,播放器控制模块212控制图形处理模块219显示在步骤S172所获得的时间代码,并返回到步骤S171。
这在每秒都更新时间代码。更新时间代码的间隔并不局限于一秒。
“流切换”
接下来,如图26中所示,在基于图1中所描述的第一PlayList#0中所包括的第一PlayItem#0而重放的片断流文件“00001.PS”和基于第二PlayItem#1而重放的片断流文件“00002.PS”中,将两个字幕流多路复用。
在片断流文件中将具有相同的属性的多个基本流多路复用的这样的情形中,关于将要重放的基本流,能够执行流切换,其中,在具有相同的属性的基本流之中,将一个切换至另一个。
相应地,参考图33中的流程图描述关于流切换的过程。
供给流切换请求,以便,例如,当流切换指令描述为“SCRIPT.DAT”文件(图4)中的脚本程序时,脚本控制模块211执行脚本程序,或者用户操作遥控器。
换句话说,当执行在其中描述流切换指令的脚本程序时,脚本控制模块211将请求流切换的消息供给播放器控制模块212。另外,当通过用户操作遥控器从遥控器接收到流切换指令信号时,输入接口115将流切换请求消息供给播放器控制模块212。
作为例子,目前,如果将请求字幕流的切换的字幕切换消息供给播放器控制模块212,在步骤S191,播放器控制模块212检查在图30中的步骤S125中所执行的将要重放的基本流的确定中所辨识的字幕流的数目。
当检查字幕流的数目的结果指示一或更少时,播放器控制模块212忽略字幕流切换消息。因而,不执行随后的步骤S192至S194中的处理。
另外,当字幕流的数目为二或更大时,处理顺序地前进到步骤S192至S194,将要重放的字幕流从目前正重放的字幕流切换至另一个字幕流。
换句话说,在步骤S192,播放器控制模块212在片断信息文件中指定目前正重放的字幕流。特殊地,例如,假设基于图25中所描述的第一PlayList#0中所包括的第二PlayItem#1,重放具有为0xBD的stream_id和为0x80的private_stream_id且在片断流文件“00002.PS”中多路复用的字幕流,在步骤S192,指定目前正重放的字幕流为在片断流文件“00002.PS”中多路复用的两个字幕流之间的图26中的片断信息文件“00002.CLP”中的第三字幕流或stream#2。
前进到步骤S193,播放器控制模块212在片断信息文件中识别(指定)紧接着在步骤S192中所指定的字幕流的字幕流为将要重放的下一个字幕流。因为,在图26中,在片断信息文件“00002.CLP”中,紧接着第三字幕流或stream#2的字幕流为第四字幕流或stream#3,在步骤S193,辨识第四字幕流或stream#3为将要重放的下一个字幕流。
当指定目前正重放的字幕流为在片断流文件“00002.PS”中多路复用的两个字幕流之间的图26中的片断信息文件“00002.CLP”中的第四字幕流或stream#3时,例如,辨识第三字幕或stream#2为将要重放的下一个字幕流。
在那之后,前进到步骤S194,播放器控制模块212将在步骤S193中所辨识的将要重放的下一个字幕流的stream_id和private_stream_id供给缓冲器控制模块215(图3)中的字幕读取功能单元235,并命令字幕读取功能单元235使用字幕存取单元中的来自缓冲器215A的下一个读取的stream_id和private_stream_id。
在缓冲器控制模块215中的字幕读取功能单元235(图3)中,分别在stream_id寄存器263和private_stream_id寄存器264中设定在步骤S194中从播放器控制模块212所供给的新的stream_id和private_stream_id,并关于由在stream_id寄存器263和private_stream_id寄存器264中分别设定的新的stream_id和private_stream_id所指定的字幕存取单元而执行从缓冲器215A的下一个和随后的读取。
如上文所描述的,将要重放的字幕流从目前正重放的字幕流切换到另一个字幕流。
缓冲器控制模块215的处理
接下来,参考图34至38描述缓冲器控制模块215(图3)的处理,即,写入数据至缓冲器215A及从缓冲器215A的数据的读取。
如图3中所描述的,缓冲器控制模块215具有五个指针,用于在缓冲器215A中读取和写入数据。
特殊地,如图34和35所示,缓冲器控制模块215具有存储在数据开始指针存储单元231中的数据开始指针、存储在数据写入指针存储部分232中的数据写入指针、存储在视频读取指针存储部分241中的视频读取指针、存储在音频读取指针存储部分251中的音频读取指针、和存储在字幕读取指针存储部分262中的字幕读取指针。
图34和35省略了图3中视频读取功能单元233的stream_id寄存器242和au_information()寄存器243,音频读取功能单元234的stream_id寄存器252和private_stream_id寄存器253,字幕读取功能单元235的字幕读取功能部分261、stream_id寄存器263、和private_stream_id寄存器264的解释说明。
数据开始指针存储单元231中所存储的数据开始指针表示保留在缓冲器215A中的最旧的数据(需要被读取且为还未被读取的数据中最旧的数据的数据)的位置。数据写入指针存储部分232中所存储的数据写入指针表示在缓冲器215A中在其写入数据的位置,且这个位置为在缓冲器215A中写入最新的数据的位置。
视频读取指针存储部分241中所存储的视频读取指针表示从缓冲器215A所读取的视频流的位置。另外,音频读取指针存储部分251中所存储的音频读取指针表示从缓冲器215A所读取的音频流的位置,以及字幕读取指针存储部分262中所存储的字幕读取指针表示从缓冲器215A所读取的字幕流的位置。
如图3中所描述的,在缓冲器215A中,数据开始指针、数据写入指针、视频读取指针、音频读取指针、和字幕读取指针的任何一个都顺时针方向移动。
此外,在这个实施例中,不断地更新数据开始指针,以便表示由表示视频读取指针、音频读取指针、和字幕读取指针之中的最旧的数据的指针所表示的相同位置。这里,在图35中,在视频读取指针、音频读取指针、和字幕读取指针之中,音频读取指针表示最旧的数据,且数据开始指针与音频读取指针一致。
在具有上述数据开始指针、视频读取指针、音频读取指针、和字幕读取指针的缓冲器控制模块215中,当从盘101读取之后在缓冲器215A中写入新的数据时,顺时针方向地更新数据写入指针,以便表示紧接所写入的新的数据之后的位置。
此外,当从缓冲器215A读取了视频流、音频流、或字幕流时,以根据读取的数量的一个值顺时针方向地更新视频读取指针、音频读取指针、或字幕读取指针。这里,根据读取的数量的值包括在相应于实际所读取的视频、音频、和字幕数据的一部分与所读取的数据之间,且为包括在读取中所跳过的另一个流的数据部分的一个值。
另外,当更新了与视频读取指针、音频读取指针、或字幕读取指针时,更新数据开始指针,以便表示由表示视频读取指针、音频读取指针、和字幕读取指针之中的最旧的数据的指针所表示的位置相同的位置。
关于对缓冲器215A的数据的写入,缓冲器控制模块215控制缓冲器215A中数据的写入,以便防止数据写入指针超过数据开始指针。
换句话说,只要不出现数据写入指针超过数据开始指针,在缓冲器控制模块215中,在由数据写入指针所表示的缓冲器215A中的一个位置写入从盘101所读取的数据,以便更新数据写入指针。另外,当将要出现数据写入指针超过数据开始指针时,在缓冲器控制模块215中,请求内容数据供给模块213停止(中断)从盘101的数据的读取,并停止缓冲器215A中的数据的写入。这能够防止缓冲器215A溢出。
如上文所描述的,仅通过数据开始指针和数据写入指针之间的位置关系控制从盘101所读取的数据的写入缓冲器215A。
另外,关于从缓冲器215A的数据读取,缓冲器控制模块215控制从缓冲器215A的数据读取,以便防止视频读取指针、音频读取指针、和字幕读取指针、以及数据开始指针超过数据写入指针。
换句话说,只要不出现视频读取指针、音频读取指针、或字幕读取指针超过数据写入指针,在缓冲器控制模块215中,响应来自视频解码器控制模块216、音频解码器控制模块217、或字幕解码器控制模块218的请求,从由视频读取指针、音频读取指针、或字幕读取指针所表示的缓冲器215A中的一个位置读取数据,并更新视频读取指针、音频读取指针、或字幕读取指针。另外,如果需要,更新数据开始指针。另外,当将要出现视频读取指针、音频读取指针、或字幕读取指针超过数据写入指针时,在缓冲器控制模块215中,例如,冻结来自视频解码器控制模块216、音频解码器控制模块217、或字幕解码器控制模块218的请求,并保持等待准备足够的数据。这能够防止缓冲器215A溢出。
相应地,在缓冲器215A中,在从由数据开始指针所表示的位置至由数据写入指针所表示的位置的范围(图34和35中的阴影部分)中,存储将要供给视频解码器控制模块216、音频解码器控制模块217、和字幕解码器控制模块218的数据。此外,在该范围中,视频读取指针、音频读取指针、和字幕读取指针退出。
在上述情形中,更新数据开始指针,以便表示由视频读取指针、音频读取指针、和字幕读取指针所表示位置之中最旧的数据的位置。除此之外,能够执行数据开始指针的更新,以便表示从最旧的数据起过去一段预定的时间(例如,一秒)的数据的位置。
换句话说,通常,估计认为在许多情形,在视频读取指针、音频读取指针、和字幕读取指针之中,视频读取指针和音频读取指针表示最旧的数据的位置。
因此,如图34中所示,在更新数据开始指针以便表示关于从由视频读取指针或音频读取指针所表示的最旧的数据的位置起的,例如,过去一秒的数据的位置的情形中,能够将从由视频读取指针或音频读取指针所表示的最旧的数据的位置起的过去一秒内的数据遗留在缓冲器215A中。这里,在图34中,音频读取指针表示最旧的数据的位置,且数据开始指针表示关于从该最旧的数据位置起的过去一秒的数据的位置。
如上文所描述的,通过更新数据开始指针以便表示关于仅过去一秒的位置,能够提高盘装置的响应。
换句话说,如图35中所示,在更新数据开始指针以便表示由音频读取指针所表示的最旧的数据的位置的情形中,例如,当请求至相反的方向的特殊重放时,从盘101重新读取从缓冲器215A的读取已经结束的数据是必需的。因而,在请求该特殊的重放之后需要一段时间,直到该特殊的重放成为可能。
与此不同,如图34中所示,在更新数据开始指针以便表示从由音频读取指针所表示的最旧的数据的位置起的仅过去一秒的数据的位置的情形中,如果,在相反方向的特殊重放的请求下,用于启动该特殊重放所需要的数据为缓冲器215A中所存储的关于过去一秒的数据,则能够立即启动该特殊重放,而不必如上文所描述的从盘101重新读取数据。
即使在更新数据开始指针以便表示从由音频读取指针所表示的最旧的数据的位置起的过去一秒的数据的位置的情形中,用于启动该特殊重放所需要的数据不存储在缓冲器215A中是很可能的。在这种情形,从盘101重新读取用于启动该特殊重放所需要的数据。
接下来,描述从缓冲器215A的视频流、音频流、和字幕流的每一个的读取的详细情况。
如图30中的步骤S127中所描述,当启动片断流文件的重放时,在缓冲器控制模块215中,数据开始指针、数据写入指针、视频读取指针、音频读取指针、和字幕读取指针都初始化,以便表示缓冲器215A中相同的位置。
当从盘101读取片断流文件中所存储的节目流(MPEG2-系统节目流),并供给缓冲器控制模块215时,在缓冲器控制模块215中,在由数据写入指针所表示的缓冲器215A中的一个位置存储该节目流,且顺时针方向地更新该数据写入指针。
此外,在缓冲器控制模块215(图3)中,视频读取功能单元233执行缓冲器215A中所存储的节目流的语法分析。响应来自视频解码控制模块216的请求,它从缓冲器215A中所存储的节目流中提取(分离)并读取视频流(视频存取单元),并将该视频流供给视频解码控制模块216。
类似地,同样音频读取功能单元234执行缓冲器215A中所存储的节目流的语法分析。响应来自音频解码控制模块217的请求,它从缓冲器215A中所存储的节目流中提取并读取音频流(音频存取单元),并将该音频流供给音频解码控制模块217。同样字幕读取功能单元235执行缓冲器215A中所存储的节目流的语法分析。响应来自字幕解码控制模块218的请求,它从缓冲器215A中所存储的节目流中提取并读取字幕流(字幕存取单元),并将该字幕流供给字幕解码控制模块218。
“视频流的读取”
接下来,参考图36中的流程图描述具有视频读取功能单元233(图3)从缓冲器215A中读取视频流的处理的详细情况。
在步骤S211,首先,视频读取功能单元233搜索并找到缓冲器215A中所存储的节目流中的private_stream_2的PES_packet()。换句话说,如图20中所描述的,private_stream_2中的PES_packet()的stream_id为10111111B(=0xBF)。相应地,视频读取功能单元233搜索并找到具有10111111B的stream_id的PES_packet()。
这里,例如,假设如上所描述的将要重放在片断流文件“00001.PS”中所存储的节目流中多路复用的基本流,当从盘101中读取了节目流并存储在缓冲器215A中时,基于在图30中的步骤S122中的片断流文件“00001.PS”中的EP_map()(图27)中所描述的解码可开始点的信息,确定扇区305为重放开始位置,且另外,在图30中的步骤S128,指定重放开始位置的扇区305,并请求操作系统201读取片断流文件“00001.PS”中所存储的节目流。
另外,关于视频流,EP_map()中所描述的解码可开始点的信息表示private_stream_2中的PES_packet()的位置。
相应地,紧接片断流文件“00001.PS”中所存储的节目流在从盘101中读取之后存储在缓冲器215A中之后,在由数据开始指针或视频读取指针所表示的缓冲器215A中的一个位置存储private_stream_2中的PES_packet()。
当在步骤S211找到private_stream_2中的PES_packet()时前进到步骤S212,视频读取功能单元233提取在作为private_stream_2中的PES_packet()的PES_packet_data_byte的private_stream2_PES_payload()(图23)中所描述的video_stream_id,并确定该video_stream_id是否与在图30中的步骤S127中的stream_id寄存器242(图3)中所存储的将要重放的视频流的stream_id一致。
如果在步骤S212确定private_stream2_PES_payload()中所描述的video_stream_id与stream_id寄存器242中所存储的stream_id不一致,即,如果在上个步骤S211中所找到的private_stream_2中的PES_packet()不是位于将要重放的视频流中的解码开始点的一个,则处理返回到步骤S211,并搜索缓冲器215A中所存储的节目流中的另一个private_stream_2中的PES_packet()。随后,重复地执行类似的处理。
可选择地,如果在步骤S212确定private_stream2_PES_payload()中所描述的video_stream_id与stream_id寄存器242中所存储的stream_id一致,即,如果在上个步骤S211中所找到的private_stream_2中的PES_packet()是位于将要重放的视频流中的解码开始位置的一个,则视频读取功能单元233前进到步骤S213,从缓冲器215A中读取private_stream_2中的PES_packet()的private_stream2_PES_payload()中所描述的au_information(),并在前进到步骤S214之前将该au_information()存储在缓冲器215A中。
在步骤S214,视频读取功能单元233通过在上个步骤S211中所找到的private_stream_2中的PES_packet()(private_stream_2中的PES_packet(),在private_stream_2中video_stream_id(图23)与stream_id寄存器242(图3)中所存储的stream_id一致)的大小,更新视频读取指针存储部分231中所存储的视频读取指针。
换句话说,在片断流文件中,紧接着private_stream_2中的PES_packet(),设置了具有与其video_stream_id一致的stream_id的视频流(PES_packet())。因而,在步骤S214,更新视频读取指针,以便表示视频流中真实的解码可开始点的位置。
在那之后,从步骤S214前进到S215,视频读取功能单元233确定视频解码器控制模块216是否请求数据。如果确定还未请求数据,则处理返回到步骤S215,并重复地执行类似的处理。
可选择地,如果在步骤S215确定视频解码器控制模块216已请求数据,则处理前进到步骤S216。在执行来自由视频读取指针所表示的位置的节目流的语法分析的时候,视频读取功能单元233从缓冲器215A中读取具有an_information()寄存器243中所存储的au_information()的AU_length中所描述的字节数的数据(即,一个视频存取单元),将该数据供给视频解码器控制模块216,并以从缓冲器215A中所读取的一个视频存取单元的大小,更新视频读取指针。
换句话说,如图24中所描述的,在au_information()中,描述了表示从包括该au_information()的private_stream_2中的PES_packet()至下一个private_stream_2中的PES_packet()中所包括的视频存取单元(画面)的数目的number_of_access_units。
另外,如图24中所描述的,在au_information()中,描述了作为关于与number_of_access_units中的数目一样多的视频存取单元的每一个的信息的pic_struct_copy、au_ref_flag、和AU_length。
如图24中所描述的,在与number_of_access_units中的数目一样多的au_information()项中所描述的AU_length项的每一个都表示从包括该au_information()的private_stream_2中的PES_packet()至下一个private_stream_2中的PES_packet()中所包括的与number_of_access_units中的数目一样多的视频存取单元的每一个的大小。因而,通过使用AU_length,视频读取功能单元233能够在未执行视频流语法分析的情况下执行存取单元片断。
换句话说,照常规,在片断MPEG2-Video或MPEG4-AVC中的存取单元的情形中,在已知视频流的语法之后,需要执行视频流的语法分析。然而,因为紧邻视频存取单元的视频流中的一个或多个解码可开始点的每一个之前,盘101上所记录的片断流文件中所存储的节目流包括在其中描述表示该视频存取单元的大小的AU_length的private_stream_2中的PES_packet(),基于private_stream_2中的PES_packet()中所描述的AU_length,视频读取功能单元233在未执行视频流语法分析的情况下,执行从缓冲器215A中读取视频存取单元(单元视频流)以及将该单元供给视频解码器控制模块216。
当在步骤S216视频读取功能单元233将视频存取单元供给视频解码器控制模块216时,视频读取功能单元233也将au_information()中所描述的pic_struct_copy、au_ref_flag、和AU_length,以及添加到该视频存取单元上的时间戳(PTS、DTS)作为关于该视频存取单元的信息而供给视频解码器控制模块216。
在步骤S216之后,即在从缓冲器215A读取之后将一个视频存取单元供给视频解码器控制模块216之后,处理前进到步骤S217,且视频读取功能单元233确定是否具有与由an_information()寄存器243中所存储的au_information()的number_of_access_units所表示的数目一样多的处理过的存取单元。
如果在步骤S217确定还未处理与由number_of_access_units所表示的数目一样多的存取单元,即,在从缓冲器215A中读取之后,还未将与由number_of_access_units所表示的数目一样多的存取单元供给视频解码器控制模块216,则处理返回到步骤S215,且随后重复类似的处理。
可选择地,如果步骤S217确定已经处理了与由number_of_access_units所表示的数目一样多的存取单元,即,在从缓冲器215A中读取之后,已将与由number_of_access_units所表示的数目一样多的存取单元供给视频解码器控制模块216,则处理返回到步骤S211,并搜索下一个private_stream_2中的PES_packet()。随后,重复类似的处理。
“音频流的读取”
接下来,参考图37中的流程图描述从缓冲器215A中读取音频流的音频读取功能单元234(图3)的过程的详细情况。
首先,在步骤S230,音频读取功能单元234确定stream_id寄存器252中所存储的将要重放的音频流的stream_id是否表示private_stream_1中的PES_packet()。
如果在步骤230确定stream_id寄存器252中所存储的stream_id不表示private_stream_1中的PES_packet(),即,如果,如图20中所描述的,stream_id寄存器252中所存储的stream_id被分配给根据MPEG标准而编码的音频流的110xxxxxB,则音频读取功能单元234前进到步骤S231,并在缓冲器215A中所存储的节目流中搜索表示音频帧起点并在MPEG音频中所定义的同步代码。因为同步代码的位置为音频帧起点,音频读取功能单元234更新音频读取指针,以便表示音频帧起点的位置,并从步骤S231前进到S232。在步骤S232,音频读取功能单元234从由音频读取指针所表示的位置搜索并找到缓冲器215A中所存储的节目流中的与stream_id寄存器252中所存储的stream_id一致的PES_packet(),并前进到步骤S233。
在步骤S233,音频读取功能单元234更新音频读取指针存储部分251中所存储的音频读取指针,以便表示在上一个步骤S232中所找到的PES_packet()的PES_packet_data_byte(图16至18)的起点,并前进到步骤S237。
在步骤S237,音频读取功能单元234确定音频解码器控制模块217是否已经请求数据。如果确定为否定的,则处理返回到步骤S237,并重复类似的处理。
可选择地,如果在步骤S237确定音频解码器控制模块217已经请求了数据,则处理前进到步骤S238。当执行来自由音频读取指针所表示的位置的节目流的语法分析时,音频读取功能单元234从缓冲器215A中读取具有已知固定长度的一个音频存取单元,并将该音频存取单元和添加到该音频存取单元上的时间戳(PTS、DTS)一起供给音频解码器控制模块217。
音频读取功能单元234通过从缓冲器215A中所读取的一个音频存取单元的大小来更新音频读取指针,并返回到步骤S237。随后,重复类似的处理。
可选择地,如果在步骤S230确定stream_id寄存器252中所存储的stream_id表示private_stream_1中的PES_packet(),即,如果,如图20中所描述的,stream_id寄存器252中所存储的stream_id为10111101B(=0xBD),并表示private_stream_1中的PES_packet(),则步骤前进到步骤S234。音频读取功能单元234搜索并找到缓冲器215A中所存储的节目流中的private_stream_1中的PES_packet()。换句话说,音频读取功能单元234搜索并找到具有为10111101B的stream_id的PES_packet()。
在步骤S234找到private_stream_1中的PES_packet()之后,音频读取功能单元234前进到步骤S235。音频读取功能单元234提取作为private_stream_1中的PES_packet()的PES_packet_data_byte的private_stream1_PES_payload()(图21)中所描述的private_stream_id,并确定该private_stream_id是否与private_stream_id寄存器253(图3)中所存储的将要重放的音频流的private_stream_id一致。
如果在步骤S235确定private_streaml_PES_payload()中所描述的private_stream_id与private_stream_id寄存器253中所存储的private_stream_id不一致,即,如果在上一个步骤S234中所找到的private_stream_1中的PES_packet()不是将要重放的音频流,则处理返回到步骤S234,并搜索缓冲器215A中所存储的节目流中的另一个private_stream_1中的PES_packet()。随后,重复类似的处理。
可选择地,如果在步骤S235确定private_stream1_PES_payload()中所描述的private_stream_id与private_stream_id寄存器253中所存储的private_stream_id一致,即,如果在上一个步骤S234中所找到的private_stream_1中的PES_packet()为将要重放的音频流,则处理前进到步骤S236,且音频读取功能单元234执行从缓冲器215A中读取private_stream_1中的private_stream1_PES_payload()(图21)中所描述的AU_locator,并通过相加紧接着该AU_locator的位置和由该AU_locator所表示的值而找到音频存取单元的开始位置。
换句话说,如图21中所描述的,通过使用紧接着AU_locator的位置作为参考,该AU_locator表示private_stream1_PES_payload()中所存储的音频存取单元(或字幕存取单元)的开始位置。因而,通过将由AU_locator所表示的值加到紧接着该AU_locator的位置上,能够找到音频存取单元的(绝对)开始位置。
此外,在步骤S236,音频读取功能单元234更新音频读取指针存储部分251中所存储的音频读取指针,以便表示如上文所描述而找到的音频存取单元的开始位置,并前进到步骤S237。
在步骤S237,音频读取功能单元234确定音频解码器控制模块217是否已经请求数据。如果确定为否定的,则处理返回到步骤S237,并重复类似的处理。
可选择地,如果在步骤S237确定音频解码器控制模块217已经请求了数据,则处理前进到步骤S238。当执行来自由音频读取指针所表示的缓冲器215A中的位置的节目流的语法分析时,音频读取功能单元234从缓冲器215A中读取具有已知固定长度的一个音频存取单元,并将该单元和加到该音频存取单元上的时间戳一起供给音频解码器控制模块217。
音频读取功能单元234通过从缓冲器215A中所读取的一个音频存取单元的大小来更新音频读取指针。处理返回到到步骤S237,且随后重复类似的处理。
“字幕流的读取”
接下来,参考图38中的流程图描述从缓冲器215A中读取字幕流的字幕读取功能单元235(图3)的处理的详细情况。
首先,在步骤S251,字幕读取功能单元235识别在图3中的步骤S127中在字幕读取功能部分261中所存储的字幕读取功能标志。如果在步骤S251确定静止图像文件为0,即,例如,如果在其中将将要重放的基本流多路复用的片断流文件中不包括字幕流,且在图30中的步骤S127中在字幕读取功能部分261中设定为0,则字幕读取功能单元235并不具体地执行处理。
可选择地,如果在步骤S251确定字幕读取功能标志为1,即,例如,如果在其中将将要重放的基本流多路复用的片断流文件中包括字幕流,且在图30中的步骤S127中在字幕读取功能部分261中设定为一,则字幕读取功能单元235前进到步骤S252,并在缓冲器215A中所存储的节目流中搜索与stream_id寄存器263(图3)中所存储的将要重放的字幕流中的stream_id一至的PES_packet()。
如图30中的步骤S127中所描述的,在stream_id寄存器263(图3)中存储将要重放的字幕流的stream_id。如图20中所描述的,字幕流的stream_id为10111101B(=0xBD),表示private_stream_1中的PES_packet()。
因此,在步骤S252,搜索缓冲器215A中所存储的节目流中的private_stream_1中的PES_packet()。
当在步骤S252在搜索private_stream_1中的PES_packet()之后找到private_stream_1中的PES_packet()时,字幕读取功能单元235前进到步骤S253,提取作为private_stream_1中的PES_packet()的PES_packet_data_byte的private_stream1_PES_payload()(图21)中所描述的private_stream_id,并确定该private_stream_id是否与在图30中的步骤S127在private_stream_id寄存器264(图3)中所存储的将要重放的字幕流的private_stream_id一致。
如果在步骤S253确定private_stream1_PES_payload()中所描述的private_stream_id与private_stream_id寄存器264中所存储的private_stream_id不一致,即,如果在上一个步骤S252中所找到的private_stream_1中的PES_packet()不是将要重放的字幕流,则处理返回到步骤S252,并搜索缓冲器215A中所存储的节目流中的另一个private_stream_1中的PES_packet()。随后,重复类似的处理。
可选择地,如果在步骤S253确定private_stream1_PES_payload()中所描述的private_stream_id与private_stream_id寄存器264中所存储的private_stream_id一致,即,如果在上一个步骤S252中所找到的private_stream_1中的PES_packet()为将要重放的字幕流,则字幕读取功能单元235前进到步骤S254,并执行从缓冲器215A中读取private_stream_1中的PES_packet()的private_stream1_PES_payload()(图21)中所描述的AU_locator,并通过相加紧接着该AU_locator的位置和由该AU_locator所表示的值而找到字幕存取单元的开始位置。
换句话说,如图21中所描述的,通过使用紧接着AU_locator的位置作为参考,该AU_locator表示private_stream1_PES_payload()中所存储的字幕存取单元(或音频存取单元)的开始位置。因而,通过将由AU_locator所表示的值加到紧接着该AU_locator的位置上,能够找到字幕存取单元的(绝对)开始位置。
此外,在步骤S254,字幕读取功能单元235更新字幕读取指针存储部分262中所存储的字幕读取指针,以便表示如上文所描述而找到的字幕存取单元的开始位置,并前进到步骤S255。
在步骤S255,字幕读取功能单元235确定字幕解码器控制模块218是否已经请求数据。如果确定为否定的,则处理返回到步骤S255,并重复类似的处理。
可选择地,如果在步骤S255确定字幕解码器控制模块218已经请求了数据,则处理前进到步骤S256。当执行来自由字幕读取指针所表示的缓冲器215A中的位置的节目流的语法分析时,字幕读取功能单元235从缓冲器215A中以在字幕存取单元的开始处所描述的大小读取一个字幕存取单元,并将该单元和添加到该字幕存取单元上的时间戳一起供给字幕解码器控制模块218。换句话说,如图2中所描述的,在字幕存取单元的开始,描述了该字幕存取单元的大小。相应地,字幕读取功能单元235从由字幕读取指针所表示的缓冲器215A中的位置起以该大小读取数据,并将该字幕存取单元作为所读取的数据和添加到该字幕存取单元上的时间戳一起供给字幕解码器控制模块218。
另外,字幕读取功能单元235通过从缓冲器215A中所读取的一个字幕存取单元的大小来更新字幕读取指针,并返回到到步骤S255。随后,重复类似的处理。
“再同步处理”
接下来,描述通过图2中的解码控制模块214的视频数据和音频数据之间的同步控制。
如在图30中的步骤S130中所描述的,如果建立同步必需,解码控制模块214通过转换时间,命令视频解码器控制模块216、音频解码器控制模块217、和字幕解码器控制模块218启动解码。例如,依赖于视频解码器116和音频解码器117随后的解码进行,视频数据和作为与视频数据同步输出的输出数据的音频数据的输出的数据可以彼此移动。
相应地,解码控制模块214执行再同步处理,以纠正视频数据的输出和作为将与视频数据同步而输出的输出数据的音频数据的输出之间出现的移位,并彼此同步地输出视频数据和音频数据。
参考图39中的流程图描述再同步处理。
在再同步处理中,首先,在步骤S271,解码控制模块214确定是否在来自视频解码器控制模块216的视频存取单元的时间戳和来自音频解码器控制模块217的音频存取单元的时间戳之间找到一个大的移位。
换句话说,如在图30中的步骤S129中所描述的,无论何时视频解码器控制模块216从缓冲器控制模块215获得视频存取单元,其将该视频存取单元的时间戳供给解码控制模块214。类似地,无论何时音频解码器控制模块217从缓冲器控制模块215获得音频存取单元,其将该音频存取单元的时间戳供给解码控制模块214。
在步骤S271,通过比较从视频解码器控制模块216和音频解码器控制模块217以相同的定时(在能够被看作相同的定时的一段确定时间内)所供给的时间戳,解码控制模块214确定在这些时间戳之间是否有大的移位。
如果在步骤S271确定在来自视频解码器控制模块216的视频存取单元的时间戳和来自音频解码器控制模块217的音频存取单元的时间戳之间无大的移位,即,如果视频存取单元的时间戳和音频存取单元的时间戳之间的移位为,例如,两个视频帧(大约66毫秒)或在能够被看作具有预定的同步的范围之内,则处理返回到步骤S271,并连续不断地执行两个时间戳的确定(监控)。
可选择地,如果在步骤S271确定在来自视频解码器控制模块216的视频存取单元的时间戳和来自音频解码器控制模块217的音频存取单元的时间戳之间有大的移位,即,如果视频存取单元的时间戳和音频存取单元的时间戳之间的移位在能够被看作具有预定的同步的范围之外,则处理前进到步骤S272。解码控制模块214通过比较来自视频解码器控制模块216的视频存取单元的时间戳和来自音频解码器控制模块217的音频存取单元的时间戳,确定在视频数据的输出和音频数据的输出之间哪个落后。
如果在步骤S272确定视频数据的输出落后于音频数据的输出,则处理前进到步骤S273。为了将对视频存取单元的处理提前一个视频存取单元,解码控制模块214命令视频解码器控制模块216不执行解码和视频存取单元的输出(显示),即,解码控制模块214输出指令,以跳过对视频存取单元的处理,并前进到步骤S274。
在步骤S274,视频解码器控制模块216从解码控制模块214接收跳过指令,并响应该跳过指令,检查从缓冲器控制模块215与视频存取单元一起供给的au_ref_flag(图24)。
换句话说,在位于private_stream_2中的PES_packet()的private_stream2_PES_payload()中的au_information()(图24)中,包括作为关于该存取单元的信息的au_ref_flag。如在图30中的步骤S129和在图36中的步骤S216中所描述的,缓冲器控制模块215将视频存取单元的au_ref_flag与该视频存取单元一起供给视频解码器控制模块216。
在步骤S274,检查以上述方式所供给的存取单元的au_ref_flag。
从步骤S274前进到步骤S275,基于检查从缓冲器控制模块215所供给的视频存取单元的au_ref_flag的结果,视频解码器控制模块216确定当将另一个画面解码时,该视频存取单元是否为不被参考的非参考图像。
这里,如图24中所描述的,视频存取单元的au_ref_flag指示该存取单元是否为参考图像。如果该存取单元为参考图像,其设定为1。如果该存取单元不是参考图像,其设定为0。
如果在步骤S275确定从缓冲器控制模块215所供给的视频存取单元不是非参考图像(的视频存取单元),即,如果从缓冲器控制模块215所供给的视频存取单元为参考图像,则处理前进到步骤S276。视频解码器控制模块216控制视频解码器116正常地处理视频存取单元,并在返回到步骤S274之前等待将要从缓冲器控制模块215供给的下一个视频存取单元。
可选择地,如果在步骤S275确定从缓冲器控制模块215所供给的视频存取单元是非参考图像,则处理前进到步骤S277。视频解码器控制模块216跳过视频解码器116对视频存取单元的处理,并在返回到步骤S271之前等待将要从缓冲器控制模块215供给的下一个视频存取单元。
以这样的方式,跳过对视频存取单元的处理,由此对视频存取单元的处理提前(处理时间缩短)大约一个视频存取单元。这导致了将落后于音频数据的输出的视频数据的输出加速。
可选择地,如果在步骤S272确定视频数据的输出不落后于音频数据的输出,即,如果音频数据的输出落后于视频数据的输出,则处理前进到步骤S278。为了使对视频存取单元的处理保持等待,解码控制模块214将重复地输出相应于目前正被解码的视频存取单元的视频数据的重复输出指令输出至视频解码器控制模块216,并前进到步骤S279。
在步骤S279,视频解码器控制模块216从解码控制模块214接收重复输出指令,响应该重复输出指令,将相应于正由视频解码器116解码的视频存取单元的视频数据重复地输出至图形处理模块219,并在返回到步骤S271之前等待将要从缓冲器控制模块215供给的下一个视频存取单元。
如上文所描述的,解码控制模块214确定视频数据的输出是否落后于音频数据的输出。如果视频数据的输出落后于音频数据的输出,则解码控制模块214命令视频解码器控制模块216跳过对存取单元的处理。另外,基于命令跳过的存取单元的au_ref_flag,视频解码器控制模块216确定该存取单元是参考图像和非参考图像中的哪一个。当该存取单元是非参考图像时,视频解码器控制模块216控制视频解码器116跳过处理命令跳过的存取单元。因此,能够很容易地建立视频数据的输出和音频数据的输出之间的同步。
换句话说,当将要跳过被处理的存取单元是参考图像时,要求将相应于该存取单元的视频数据解码,以便当将随后要解码的另一个存取单元解码时将其作参考。因此,在用于建立视频数据的输出和音频数据的输出之间的同步的同步控制中,对参考图像的存取单元的处理的跳过使得不可能将参考该参考图像的另一个存取单元解码,所以,在视频数据的显示中,同步控制呈现为噪声。
相应地,关于处理的跳过,使用不作为参考图像的存取单元,即,非参考图像的存取单元,是更可取的。
另外,关于相关技术的基本流,为了搜索非参考图像的存取单元,要求执行对该基本流的语法分析。通过根据MPEG4-AVC或诸如此类而编码所获得的基本流具有非常复杂的语法。因而,关于语法分析需要相当大的成本。
与此不同,在盘101上所记录的片断流文件中所存储的节目流中,与在PES_packet_data_byte中设置视频存取单元的PES_packet()(图16至18)分离地将设置通过扩展PES_packet_data_byte而获得的private_stream2_PES_payload()(图23)的private_stream_2中的PES_packet()项多路复用,且在private_stream2_PES_payload()的au_information()(图24)中,关于每个视频存取单元,描述了指示该视频存取单元作为参考图像和非参考图像中的哪一个的au_ref_flag。另外,从缓冲器控制模块215将au_ref_flag与相应的视频存取单元一起供给视频解码器控制模块216。因此,通过检查与视频存取单元一起而供给的视频存取单元的au_ref_flag,视频解码器控制模块216能够辨识该视频存取单元为参考图像还是非参考图像,而几乎不需要任何成本。
“标记处理”
接下来,参考图4中的流程图描述基于PlayListMark()中所描述的Mark()(图7)而执行的标记处理。
解码控制模块214不断地确认由内嵌定时器单元214A所度量的当前时间。在步骤S301,确定当前时间是否与PlayListMark()中所描述的任何Mark()(图7)的mark_time_stamp一致。
换句话说,如图30中的步骤S124中所描述的,当重放图25中所示的第一PlayList#0中的第一PlayItem#0时,播放器控制模块212辨识在图28的上区所示的PlayListMark()中所包括的七个Mark()项之中,从第一至第四的四个Mark()项属于第一PlayItem#0,且播放器控制模块212将作为该四个Mark()项的mark_time_stamp的{180,090}、{5,580,090}、{10,980,090},和{16,380,090}与由该mark_time_stamp所表示的属性为“MarkProcess”的事实一起传递给解码控制模块214。
在步骤S301,解码控制模块214确定当前时间是否与从播放器控制模块212中如上文所描述而供给的“Mark Process”属性的时间(mark_time_stamp)的任何一个一致。
如果在步骤S301确定当前时间不与“Mark Process”属性的时间的任何一个一致,则处理返回到步骤S301,并重复类似的处理。
可选择地,如果在步骤S301确定当前时间与“Mark Process”属性的时间的任何一个一致,则解码控制模块214将指示当前时间为“Mark Process”属性的时间的一个并为与当前时间一致的“Mark Process”属性的时间的消息供给播放器控制模块212,并前进到步骤S302。
在步骤S302,播放器控制模块212从解码控制模块214接收指示当前时间为“Mark Process”属性的时间的一个和作为与当前时间一致的“MarkProcess”属性的时间的消息,并辨识mark_time_stamp与当前时间一致的Mark()为经历标记处理的Mark()(如果需要,以下称为处理目标标记)。
换句话说,播放器控制模块212辨识目前正重放的PlayList()中的PlayItem()。相应地,基于PlayList()的PlayItem()和与当前时间一致的“Mark Process”属性的时间,播放器控制模块212通过参考“PLAYLIST.DAT”(图5)中的PlayListMark()(图5),辨识处理目标标记。
特殊地,例如,如果正重放图25中所示的第一PlayList#0中的第一PlayItem#0,则该事实促使播放器控制模块212辨识标记时间为在图28中的上区中所示的PlayListMark()中所包括的七个Mark()项之中从第一至第四的四个Mark()项中的一个的mark_time_stamp。
另外,假设从解码控制模块214供给播放器控制模块212的标记时间为,例如,16,380,090,播放器控制模块212辨识在图28中的上区中所示的PlayListMark()中所包括的从第一至第四的四个Mark()项之中,与为16,380,090的标记时间一致的第四个Mark()为处理目标标记。
如所描述的,在辨识处理目标标记之后从步骤S302前进到步骤S303,播放器控制模块212确定在处理目标标记中,是否描述了用于指定基本流的entry_ES_stream_id和entry_ES_private_stream_id(图7)。
如果在步骤S303确定在处理目标标记中,未描述用于指定基本流的entry_ES_stream_id和entry_ES_private_stream_id(图7),即,如果entry_ES_stream_id和entry_ES_private_stream_id两者都为0x00,则过程跳过步骤S304并前进到步骤S305,且随后执行与处理目标标记相匹配的处理。
可选择地,如果在步骤S303确定在处理目标标记中,描述了用于指定基本流的entry_ES_stream_id和entry_ES_private_stream_id(图7),则播放器控制模块212前进到步骤S304,并确定在正重放的基本流中是否包括由entry_ES_stream_id以及entry_ES_private_stream_id(如果需要)所指定的基本流。
如果在步骤S304确定在正重放的基本流中,不包括由处理目标标记的entry_ES_stream_id和entry_ES_private_stream_id所指定的基本流,则处理前进到步骤S301。换句话说,当未重放由处理目标标记的entry_ES_stream_id和entry_ES_private_stream_id所指定的基本流时,忽略该处理目标标记。
可选择地,如果在步骤S304确定在正重放的基本流中,包括由处理目标标记的entry_ES_stream_id和entry_ES_private_stream_id所指定的基本流,即,如果重放了由处理目标标记的entry_ES_stream_id和entry_ES_private_stream_id所指定的基本流,则处理目标标记被看作为有效的,且处理前进到步骤S305。随后,执行与该处理目标标记相匹配的处理。
换句话说,在步骤S305,播放器控制模块212通过参考处理目标标记的mark_type(图7),识别该处理目标标记。
如果在步骤S305确定处理目标标记为章标记或索引标记,即,当处理目标标记的mark_type为“Chapter”或“Index”时,播放器控制模块212前进到步骤S306并命令图形处理模块219将章或索引的显示号码更新成作为由为处理目标标记的章标记或索引标记所表示的章或索引号。处理返回到步骤S301。
如果在步骤S305确定处理目标标记为事件标记,即,当处理目标标记的mark_type为“Event”时,播放器控制模块212前进到步骤S307并将表示事件的发生的事件消息和该处理目标标记的mark_data报告(供给)给脚本控制模块211。处理前进到步骤S308。
在步骤S308,脚本控制模块211从播放器控制模块212接收事件消息和mark_data,通过将该事件消息用作中断请求,执行当将mark_data用作自变量时在“SCRIPT.DAT”文件中预先描述的连续处理,并返回到步骤S301。
换句话说,在脚本控制模块211中,执行与mark_data相匹配的处理。
特殊地,例如,在图28中的下区中所示的PlayList#1中的PlayListMark()中,第二Mark()(Mark#1)和第三Mark()(Mark#2)每个都具有为“Event”的mark_type。然而,它们由于它们的mark_data项为1(Mark#1)和2(Mark#2)而不同。
在接收相应于第二Mark()的事件消息的情形和接收相应于第三Mark()的事件消息的情形的每一个中,脚本控制模块211都通过使用相同的事件处理器(中断处理程序)执行响应事件消息的处理。在事件处理器中,通过检查与事件消息一起而供给的mark_data,脚本控制模块211关于每个mark_data,执行不同的处理。
特殊地,例如,当mark_data为1时,脚本控制模块211控制图形处理模块219显示第一类型的图标。另外,例如,当mark_data为2时,脚本控制模块211控制图形处理模块219显示第二类型的图标。
mark_data并不局限于1和2。另外,如上文所描述的,相应于mark_data的处理并不局限于简单的图标显示。
换句话说,例如,当mark_data为在3至18范围内的值时,脚本控制模块211控制图形处理模块219以相应于通过从mark_data减去2而获得的值(1至16的数字值)的亮度显示第一类型的图标。另外,例如,当mark_data为在19至34范围内的值时,脚本控制模块211控制图形处理模块219以相应于通过从mark_data减去18而获得的值(1至16的数字值)的亮度显示第二类型的图标。
而且,例如,在其中由用户所操作的控制器连接到输入接口115(图1),且该控制器具有在其中在DC(直流)电动机轴上安装了偏心重量且当开动该DC电动机时产生振动的内嵌振动电动机的情形中,当mark_data为在35至42范围内的值时,能够在根据通过从该mark_data减去34而获得的值(1至8的数字值)的操作时间期间开动该振动电动机。
mark_data为数字值,且能够通过由脚本控制模块211所执行的脚本程序而描述其用法和算法。因此,依预先确定的规则而使用mark_data,且另外能够依由盘101的制造商,供给盘101上所记录的数据的内容供给者或诸如此类独立地设定的规则而使用它。
如上文所描述的,在标记处理中,当当前时间与“Mark Process”属性的时间一致时,从作为“Mark Process”属性的时间的标记时间辨识处理目标标记。此外,当在处理目标标记中未描述用于指定基本流的entry_ES_stream_id和entry~ES_private_stream_id时,执行与处理标记的mark_type相匹配的处理。另外,即使在处理目标标记中描述了用于指定基本流的entry_ES_stream_id和entry_ES_private_stream_id,如果正在重放由entry_ES_stream_id和entry_ES_private_stream_id所指定的基本流,则执行与该mark_type相匹配的处理。
因此,例如,假设正在重放图25中所示的第二PlayList#1,执行下列标记处理。
换句话说,如在图28中的下区中所示,在第二PlayList#1中的PlayListMark()中,描述了分别指定其mark_time_stamp项为90,000、27,090,000、和27,540,000的第一Mark()(Mark#0)、第二Mark()(Mark#1)和第三Mark()(Mark#2)。
此外,因为在图28中的下区中的PlayListMark()中,在第二Mark()和第三Mark()的entry_ES_stream_id项中分别描述为0xE0和0xE1,分别由0xE0和0xE1所指定的基本流分别与第二Mark()和第三Mark()相关联。
这里,如图25中所描述的,在第二PlayList#1中,仅描述了一个PlayItem()(PlayItem#0),且根据PlayItem#0,重放片断流文件“00003.PS”。在片断流文件“00003.PS”中,如关于相应于该片断流文件“00003.PS”的图26中的片断信息文件“00003.CLP”所描述的,将三个基本流,即,由为0xE0的stream_id所指定的视频流stream#0、由为0xE1的stream_id所指定的视频流stream#1、和由为0xBD的stream_id和为0x00的private_stream_id所指定的音频流stream#3多路复用。
相应地,具有为0xE0的stream_id且在片断流文件“00003.PS”中多路复用的视频流stream#0与在图28中的下区中的PlayListMark()中的第二Mark()相关联,以及具有为0xE1的stream_id且在片断流文件“00003.PS”中多路复用的视频流stream#1与第三Mark()相关联。
当启动第二PlayList#1中PlayItem#0的重放时,如在图30中的步骤S124中所描述的,播放器控制模块212辨识在图28中的下区中所示的PlayListMark()中所包括的三个Mark()项属于PlayList#1中的PlayItem#0,并将该三个Mark()项的为{90,000}、{27,090,000}、和{27,540,000}的mark_time_stamp_items与由它们所表示的时间的属性为“MarkProcess”的事实一起传递给解码控制模块214。
在标记处理中,当正重放PlayList#1中的PlayItem#0时,解码控制模块214不断地确认由定时器单元214A所度量的当前时间是否与其属性为“Mark Process”的时间{90,000}、{27,090,000}、和{27,540,000}中的一个一致(步骤S301)。当当前时间与其属性作为“Mark Process”的一个时间一致时,解码控制模块214将为具有属性“Mark Process”的时间的标记时间和指示当前时间作为具有属性“Mark Process”的时间的消息供给播放器控制模块212。
换句话说,例如,如果当前时间与具有“Mark Process”属性的时间{90,000}、{27,090,000}、和{27,540,000}之中的27,090,000一致,则解码控制模块214将为具有“Mark Process”属性的时间的标记时间27,090,000和指示当前时间为具有“Mark Process”属性的时间的消息供给播放器控制模块212。
播放器控制模块212辨识目前正重放PlayList#1中的PlayItem#0。相应地,通过将作为在图28中的下区中所示的PlayList#1的PlayListMark()中所描述的Mark()项之中属于PlayItem#0的三个Mark()项的mark_time_stamp_items的{90,000}、{27,090,000}、和{27,540,000}中的每一个和来自解码控制模块214的标记时间27,090,000作比较,播放器控制模块212辨识mark_time_stamp与标记时间27,090,000一致的Mark(),即,在图28中的下区中的PlayListMark()中所描述的第二Mark()(Mark#1)为处理目标标记(步骤S302)。
在作为处理目标标记的,图28中的下区中的PlayListMark()中所描述的第二Mark()中,设定0xE0为entry_ES_stream_id。如上文所描述的,为0xE0的entry_ES_stream_id表示具有为0xE0的stream_id且在片断流文件“00003.PS”中多路复用的视频流stream#0(图26)。相应地,播放器控制模块212确定在正重放的基本流中是否包括视频流stream#0(步骤S303、S304)。
另外,如果在正重放的基本流中,不包括视频流stream#0,则忽略该处理目标标记(步骤S304)。
可选择地,如果在正重放的基本流中,包括视频流stream#0,则该处理目标标记被看作为有效,且执行与该处理目标标记相匹配的处理(步骤S305至S308)。
换句话说,在这种情形中,在图28中的下区中的PlayListMark()中所描述的第二Mark()为事件标记,因为mark_type为“Event”。相应地,播放器控制模块212将表示事件的发生的事件消息和处理目标标记的mark_data供给脚本控制模块211(步骤S305、S307)。通过将来自播放器控制模块212的事件消息用作中断请求,当将与事件消息一起而供给的mark_data用作自变量时,脚本控制模块211执行在“SCRIPT.DAT”文件中预先描述的连续处理(步骤S308)。
如上文所描述的,根据标记处理,确定当前时间是否与mark_time_stamp一致,该当前时间为根据PlayList()(图5)而重放的片断流文件的重放时间,该PlayList()包括具有包括表示在PlayList()的时间基础上的一个重放时间的mark_time_stamp、表示Mark()的类型的mark_type、和充当事件标记的自变量的mark_data的零个或多个Mark()项的PlayListMark()(图7)。当当前时间与mark_time_stamp一致时,辨识由于与mark_time_stamp一致的当前时间而具有等于标记时间的mark_time_stamp的Mark()作为处理目标标记。另外,当处理目标标记的mark_type表示产生事件的类型时,即,当处理目标标记为事件标记时,报告处理目标标记的mark_data和事件消息,并执行与mark_data相匹配的处理。因此,根据片断流文件的重放时间,能够执行与mark_data相匹配的处理。
“输出属性控制处理”
接下来,参考图41中的流程图描述在步骤S126,等等中所执行的输出属性控制处理的详细情况。
如在图30中的步骤S126中所描述的,首先,关于将要重放的一个或多个基本流,即,将要重放的在图30中的步骤S125中所确定的一个或多个基本流的每一个,播放器控制模块212检查表示描述输出属性的DynamicInfo()项(图13)的数目的number_of_DynamicInfo(图10)。
当关于所有的将要重放的一个或多个基本流,number_of_DynamicInfo都为0时,播放器控制模块212并不具体地执行处理。
可选择地,当关于将要重放的基本流,number_of_DynamicInfo不为0时,根据图41的流程图,播放器控制模块212执行输出属性控制处理。
相应地,在盘101上所记录的三个片断信息文件“00001.CLP”、“00002.CLP”、和“00003.CLP”为,例如,如图26中所示的情形中,当重放相应于片断信息文件“00001.CLP”的片断流文件“00001.PS”(用于重放的第一列表PlayList#0中的第一项PlayItem#0)时,在片断信息文件“00001.CLP”(图26)中,关于片断流文件“00001.PS”中多路复用的所有的四个基本流stream#0至stream#3,number_of_DynamicInfo为0,以便不执行输出属性控制处理。
类似地,同样在重放相应于片断信息文件“00002.CLP”的片断流文件“00002.PS”(用于重放的第一列表PlayList#0中的第二项PlayItem#1)的情形中,在片断信息文件“00002.CLP”(图26)中,关于片断流文件“00002.PS”中多路复用的所有的四个基本流stream#0至stream#3,number_of_DynamicInfo为0,以便不执行输出属性控制处理。
另外,在重放相应于片断信息文件“00003.CLP”的片断流文件“ 00003.PS”(用于重放的第二列表PlayList#1中的PlayItem#0)的情形中,在片断信息文件“00003.CLP”(图26)中,在片断流文件“00003.PS”中多路复用的三个基本流stream#0至stream#2之中,关于作为第一基本流的视频流stream#0,和作为第三基本流的音频流stream#2,它们的number_of_DynamicInfo项分别为2和3,以便执行输出属性控制处理。
换句话说,在输出属性控制处理中,首先,在步骤S320,播放器控制模块212将在相应于将要重放的片断流文件的片断信息文件Clip()中所描述的pts_change_point与该pts_change_point为具有“DynamicInfo()Process”的属性的时间的事实一起传递给解码控制模块214。解码控制模块214从播放器控制模块212接收作为具有“DynamicInfo()Proeess”的属性的时间的pts_change_point,并前进到步骤S321。
在步骤S321,解码控制模块214确定由定时器单元214A所度量的当前时间是否与作为具有“DynamicInfo()Process”的属性的时间的(一个)pts_change_point一致。如果确定当前时间与pts_change_point不一致,则处理返回到步骤S321。
可选择地,如果在步骤S321确定当前时间与具有“DynamicInfo()Process”的属性的(一个)时间一致,则解码控制模块214将指示当前时间为具有“DynamicInfo()Process”的属性的时间的消息和与当前时间一致的具有“DynamicInfo()Process”的属性的时间,供给播放器控制模块212,并前进到步骤S322。
在步骤S322,播放器控制模块212从解码控制模块214接收指示当前时间为具有“DynamicInfo()Process”的属性的时间的消息和DynamicInfo时间,并辨识DynamicInfo()作为将经历处理的处理目标DynamicInfo(),该DynamicInfo()和与DynamicInfo时间一致的pts_change_point(图10)构成一组。处理前进到步骤S323。
在步骤S323,播放器控制模块212将在视为处理目标DynamicInfo()的DynamicInfo()(图13)中所描述的输出属性供给图形处理模块219或音频输出模块221,并前进到步骤S324。
在步骤S324,根据在上一个步骤S323中从播放器控制模块212所供给的输出属性,图形处理模块219或音频输出模块221启动输出视频数据或音频数据的控制,并返回到步骤S321。
根据例如描述为输出属性(显示形式)的屏幕高宽比,输出视频数据。可选择地,根据例如描述为输出属性的立体声或双声道(两声道)模式,输出音频数据。
接下来,参考图42进一步描述输出属性控制处理的详细情况。
换句话说,图42示出在片断信息文件“00003.CLP”中所描述的pts_change_point和DynamicInfo()项的组(图10)。
这里,如上文所描述的,在片断流文件“00003.PS”中多路复用的三个基本流stream#0至stream#2之中,在图26中的片断信息文件“00003.CLP”中,关于作为第一基本流的视频流stream#0和作为第三基本流的音频流stream#2,number_of_DynamicInfo项分别为2和3。因此,在片断信息文件“00003.CLP”中,关于片断流文件“00003.PS”中的第一视频流stream#0,描述了两组pts_change_point和DynamicInfo()项,且关于第三音频流stream#2,描述了三组pts_change_point和DynamicInfo()项。
在图42的上区示出关于片断流文件“00003.PS”中的第一视频流stream#0而描述的两组pts_change_point和DynamicInfo()项,以及在图42的下区示出关于片断流文件“00003.PS”中的第三音频流stream#2而描述的三组pts_change_point和DynamicInfo()项。
在图42的上区,除关于第一视频流stream#0而描述的两组pts_change_point和DynamicInfo()项之外,也示出了在片断信息文件“00003.CLP”中所描述的关于视频流stream#0的stream_id(=0xE0)、private_stream_id(=0x00)、和number_of_DynamicInfo(=2)。类似地,同样在图42的下区,除关于第三音频流stream#2而描述的三组pts_change_point和DynamicInfo()项之外,也示出了在图26的片断信息文件“00003.CLP”中所描述的关于音频流stream#2的stream_id(=0xBD)、private_stream_id(=0x00)、和number_of_DynamicInfo(=3)。
在图42的上区,在关于视频流stream#0而描述的两组pts_change_point和DynamicInfo()项的第一组中,pts_change_point为90,000,以及DynamicInfo()中的display_aspect_ratio(图13)为“4∶3”。另外,在第二组中,pts_change_point为54,090,000,DynamicInfo()中的display_aspect_ratio为“16∶9”。
另外,在图42的下区,在关于音频流stream#2而描述的三组pts_change_point和DynamicInfo()项之中,在第一组中,pts_change_point为90,000,以及DynamicInfo()中的channel_assignment为“Dual”。在第二组中,pts_change_point为27,090,000,以及DynamicInfo()中的channel_assignment为“Stereo”。在第三组中,pts_change_point为32,490,000,以及DynamicInfo()中的channel_assignment为“Dual”。
例如,假设在图30中的步骤S125,在片断流文件“00003.PS”中,将由为0xE0的stream_id所指定的第一视频流stream#0,和由为0xBD的stream_id和为0x00的private_stream_id所指定的第三音频流stream#2确定为将要重放的流。
在这种情形,播放器控制模块212检查在图42的上区的关于由为0xE0的stream_id所指定的视频流stream#0而描述的两组pts_change_point和DynamicInfo()项、在图42的下区的关于由为0xBD的stream_id和为0x00的private_stream_id所指定的视频流stream#2而描述的三组pts_change_point和DynamicInfo()项、以及DynamicInfo()中的pts_change_point,并辨识初始值。
换句话说,在图42的上区的关于由为0xE0的stream_id所指定的视频流stream#0而描述的两组pts_change_point和DynamicInfo()项的第一组中,pts_change_point为90,000。为90,000的这个时间与在图26的片断信息文件“00003.CLP”中、表示片断流文件“00003.PS”中的开始时间的presentation_start_time中所描述的时间90,000一致,其相应于其中将视频流stream#0多路复用的片断流文件“00003.PS”。
类似地,在图42的下区的关于由为0xBD的stream_id和为0x00的private_stream_id所指定的视频流stream#2而描述的三组pts_change_point和DynamicInfo()项之中,在第一组中,pts_change_point为90,000。为90,000的这个时间与在片断信息文件“00003.CLP”中、表示片断流文件“00003.PS”中的开始时间的presentation_start_time中所描述的时间90,000一致,片断流文件“00003.PS”相应于其中将音频流stream#2多路复用的剪辑流文件“00003.PS。
播放器控制模块212辨识与在表示片断流文件“00003.PS”中的开始时间的presentation_start_time中所描述的时间90,000一致的pts_change_point作为初始值。相应地,辨识在图42的上区的两组pts_change_point和DynamicInfo()项的第一组中的pts_change_point,和在图42的下区的三组pts_change_point和DynamicInfo()项之中的第一组中的pts_change_point为初始值。
在启动片断流文件“00003.PS”的重放(在图30的步骤S126)之前,根据以辨识为初始值的pts_change_point构成一个组的DynamicInfo(),播放器控制模块212指定相应的基本流的输出属性。
换句话说,关于由为0xE0的stream_id所指定的视频流stream#0,在以作为初始值90,000的pts_change_point构成一个组的DynamicInfo()中,display_aspect_ratio为“4∶3”。在这种情形,播放器控制模块212通过使用display_aspect_ratio为“4∶3”的事实,即,指示视频流stream#0为具有4∶3的屏幕高宽比的视频数据的输出属性信息,来控制图形处理模块219。
另外,关于由为0xBD的stream_id和为0x00的private_stream_id所指定的音频流stream#2,在以作为初始值90,000的pts_change_point构成一个组的DynamicInfo()中,channel_assignment为“Dual”。在这种情形,播放器控制模块212将channel_assignment为“Dual”的事实,即,指示音频流stream#2为双声道音频数据的输出属性信息供给音频输出模块221。
这里,在图30中的步骤S126,执行如上文所描述的关于作为初始值的pts_change_point的输出属性控制。
在此之后,播放器控制模块212将,在图42的上区的关于视频流stream#0的两个pts_change_point项90,000和54,090,000,以及在图42的下区的关于音频流stream#2的三个pts_change_point项90,000、27,090,000、和32,490,000之中,除初始值90,000之外的时间{27,090,000}、{32,490,000}、和{54,090,000},与具有属性“DynamicInfo()Processing”的时间一起传递给解码控制模块214。
在解码控制模块214从播放器控制模块212接收了具有“DynamicInfo()Processing”的时间{27,090,000}、{32,490,000}、和{54,090,000},并启动了重放(重放用于重放片断流文件“00003.PS”的第二列表PlayList#1中的PlayItem#0)视频流stream#0和音频数据stream#2之后,解码控制模块214启动监控由定时器单元214A所度量的当前时间。
另外,当当前时间与具有“DynamicInfo()Processing”的时间{27,090,000}、{32,490,000}、和{54,090,000}的一个一致时,解码控制模块214将作为具有“DynamicInfo()Processing”属性并与当前时间一致的时间的DynamicInfo时间供给播放器控制模块212。(步骤S321)。
换句话说,例如,如果当前时间为27,090,000,则解码控制模块214将在具有“DynamicInfo()Processing”属性的时间之中与当前时间一致的27,090,000作为DynamicInfo时间供给播放器控制模块212。
播放器控制模块212从解码控制模块214接收作为DynamicInfo时间的27,090,000,从在图42的上区的关于视频流stream#0的两个pts_change_point项和在图42的下区的关于音频流stream#2的三个pts_change_point项之中检查与DynamicInfo时间27,090,000一致的pts_change_point,并辨识以与27,090,000一致的pts_change_point构成一个组的DynamicInfo(),即,在图42的下区的关于音频流stream#2的第二DynamicInfo(),作为处理目标DynamicInfo()(步骤S322)。
当处理目标DynamicInfo()为关于视频流时,播放器控制模块212将处理目标DynamicInfo()中所描述的输出属性供给图形处理模块219(步骤S323)。另外,处理目标DynamicInfo()为关于音频流时,播放器控制模块212将处理目标DynamicInfo()中所描述的输出属性供给音频输出模块221(步骤S323)。
当已从播放器控制模块212供给了输出属性时,根据所供给的输出属性,图形处理模块219启动控制视频数据输出(步骤S324)。
换句话说,例如,基于由来自播放器控制模块212的输出属性所表示的视频数据屏幕高宽比指令(display_aspect_ratio(图13)),以及连接到图1中的视频输出终端120的视频输出装置的屏幕高宽比,图形处理模块219转换输出到视频输出模块220的视频数据的屏幕高宽比。
特殊地,例如,当视频输出装置的屏幕高宽比为16∶9时,如果作为输出属性的视频数据屏幕高宽比的指令表示4∶3的屏幕高宽比,则通过对输出到视频输出模块220的视频数据执行水平挤压,图形处理模块219输出右和左部分变暗的经处理过的视频数据。另外,例如,当视频输出装置的屏幕高宽比为4∶3时,如果作为输出属性的视频数据屏幕高宽比的指令表示16∶9的屏幕高宽比,则通过对输出到视频输出模块220的视频数据执行垂直挤压,图形处理模块219输出顶和底部分变暗的经处理过的视频数据。此外,例如,当视频输出装置的屏幕高宽比和由作为输出属性的视频数据的屏幕高宽比的指令所表示的屏幕高宽比具有4∶3或16∶9的相同的值时,图形处理模块219直接输出输出到视频输出模块220的视频数据,而不执行挤压。
这里,根据关于由为0xE0的stream_id所指定的视频流stream#0而描述的两组pts_change_point和DynamicInfo()项,从作为视频流stream#0的重放开始时间的时间90,000,直到紧邻时间54,090,000之前,从视频流stream#0获取具有4∶3的屏幕高宽比的视频数据。在时间54,090,000之后,从视频流stream#0获取具有16∶9的屏幕高宽比的视频数据。
因此,例如,如果连接到图1中的视频输出终端120的视频输出装置的屏幕高宽比为4∶3,从时间90,000直到紧邻时间54,090,000之前,图形处理模块219直接将从视频流stream#0所获得的,具有4∶3的屏幕高宽比的视频数据供给具有4∶3的屏幕高宽比的视频输出装置。
另外,在时间54,090,000之后,垂直地挤压具有16∶9的屏幕高宽比且从视频流stream#0所获得的视频数据,并将其转换为具有4∶3的屏幕高宽比且在顶和底部变暗的视频信号。该视频数据供给并显示在具有4∶3的屏幕高宽比的视频输出装置上。
当已从播放器控制模块212供给了输出属性时,根据该输出属性,音频输出模块221启动控制音频数据的输出(步骤S324)。
换句话说,例如,基于由来自播放器控制模块212的输出属性所表示的音频数据声道分配指令(channel_assignment(图13)),以及由用户操作遥控器通过输入接口从播放器控制模块212所供给的音频输出模式,音频输出模块221处理来自音频解码器控制模块217的音频数据并将经处理的数据输出到音频输出终端121(图1)。
特殊地,例如,当由输出属性所表示的音频数据声道分配指令表示其中左声道相应于“主音频”的音频数据以及右声道相应于“次音频”的音频数据的双声道(两声道)模式时,根据从播放器控制模块212所供给的音频输出模式,音频输出模块221处理来自音频解码器控制模块217的音频数据,并将经处理的数据输出至音频输出终端121。
换句话说,当例如指定“主音频”为音频输出模式时,音频输出模块221复制来自音频解码器控制模块217的音频数据中的左声道音频数据作为右声道音频数据,并将左声道和右声道音频数据(“主音频”的音频数据)输出至音频输出终端121。另外,当指定“次音频”为音频输出模式时,音频输出模块221复制来自音频解码器控制模块217的音频数据中的右声道音频数据作为左声道音频数据,并将左声道和右声道音频数据(“次音频”的音频数据)输出至音频输出终端121。当指定“主和次音频”为音频输出模式时,音频输出模块221直接将来自音频解码器控制模块217的音频数据输出至音频输出终端121。
另外,例如当音频数据声道分配指令表示立体声模式时,音频输出模块221直接将来自音频解码器控制模块217的音频数据输出至音频输出终端121,而不管从播放器控制模块212所供给的音频输出模式。
这里,根据在图42的下区的关于由为0xBD的stream_id和为0x00的private_stream_id所指定的音频流stream#2而描述的三组pts_change_point和DynamicInfo()项,从作为音频流stream#2的重放开始时间的90,000,直到紧邻时间27,090,000之前,从音频流stream#2获得双声道音频数据。另外,从时间27,090,000直到紧邻时间32,490,000之前,从音频流stream#2获得立体声音频数据。在时间32,490,000之后,从音频流stream#2获得双声道音频数据。
因此,例如,如果指定“主音频”为音频输出模式时,则从时间90,000直到紧邻时间27,090,000之前,音频输出模块221复制从音频流stream#2所获得的双声道音频数据中的左声道音频数据作为右声道音频数据,并将左声道和右声道音频数据输出至音频输出终端121。
另外,从时间27,090,000直到紧邻时间32,490,000之前,直接将从音频流stream#2所获得立体声音频数据输出至音频输出终端121。
在时间32,490,000之后,复制从音频流stream#2所获得的双声道音频数据中的左声道音频数据作为右声道音频数据,并将左声道和右声道音频数据输出至音频输出终端121。
如上文所描述的,在输出属性控制处理中,关于在片断流文件中多路复用的基本流的每一个,基于包括表示基本流的重放时间的零或多组pts_change_point项和包括基本流的输出属性的DynamicInfo()项的片断信息文件Clip()(图10),确定正重放的一个基本流的重放时间是否与pts_change_point一致。如果正重放的一个基本流的重放时间与pts_change_point一致,则辨识以该pts_change_point构成一个组的DynamicInfo(),并根据在所辨识的DynamicInfo()中所包括的输出属性,控制正重放的基本流的输出。因此,能够根据基本流的重放时间和输出属性控制正重放的基本流的输出。
字幕显示控制处理
接下来,参考图43中的流程图描述控制相应于字幕流的字幕数据的显示的字幕显示控制处理。
当启动PlayList()(图5)(中的PlayItem())的重放时,在步骤S341,播放器控制模块212为图形处理模块219初始化字幕数据显示形式指令。换句话说,播放器控制模块212控制图形处理模块219,以便设定字幕数据显示形式为默认的。在步骤S341所执行的显示形式的初始化相应于在图30中的步骤S127中所描述的显示形式指令的初始化。
在步骤S341的处理之后前进到步骤S342,播放器控制模块212确定是否已经接收到由用户操作遥控器从输入接口115而发送的关于字幕数据显示的新的显示形式指令。
如果,在步骤S342确定接收到新的显示形式的指令,则播放器控制模块212前进到步骤S343,并确定目前是否正重放字幕流(相应于该字幕流的字幕数据)。
如果在步骤S343确定未重放字幕流,则播放器控制模块212返回到步骤S342。
可选择地,如果在步骤S343确定正在重放字幕流,则播放器控制模块212前进到步骤S345,并确定新的显示形式指令是否为默认显示形式指令。如果在步骤S345确定新的显示形式指令为默认显示形式指令,则播放器控制模块212返回到步骤S341,并控制图形处理模块219,以便设定字幕数据显示形式为默认的,如上文所描述。
如果在步骤S345确定新的显示形式指令不为默认显示形式指令,即,当新的显示形式指令为像以放大或缩小的形式显示字幕数据、或为了清楚的画面而改变亮度那样的非默认显示形式指令时,处理前进到步骤S346。播放器控制模块212从在相应于将目前正重放的字幕流多路复用的片断流文件的片断信息文件Clip()(图10)中的StaticInfo()项(图12)之中,获得关于目前正重放的字幕流的StaticInfo(),并前进到步骤S347。
在步骤S347,播放器控制模块212识别在步骤S346中所获得的StaticInfo()的configurable_flag。
如果在步骤S347确定configurable_flag为0,其指示不允许字幕数据显示形式的改变,则播放器控制模块212前进到步骤S348,并控制图形处理模块219,由此指示不能改变字幕数据显示形式的错误消息覆盖在输出视频数据上。处理返回到步骤S342。这显示错误消息。
可选择地,如果在步骤S347确定configurable_flag为1,其指示允许字幕数据显示形式的改变,则播放器控制模块212前进到步骤S349,并将由用户操作遥控器从输入接口115所供给的新的显示形式指令供给图形处理模块219。处理前进到步骤S350。
在步骤S350,图形处理模块219启动根据在上一个步骤S349从播放器控制模块212所供给的显示形式指令,放大或缩小从字幕解码器控制模块218所供给的字幕数据,改变其亮度,或诸如此类的处理,并返回到步骤S342。以根据由用户操作遥控器所指定的显示形式的显示大小、显示位置、显示色彩、等等显示字幕数据。
可选择地,如果在步骤S342确定未接收到新的显示形式的指令,则播放器控制模块212前进到步骤S351,并确定是否已经执行图31中所描述的PlayItem()改变。如果确定还未执行PlayItem()改变,则处理返回到步骤S342。
另外,如果在步骤S351确定已经执行PlayItem()改变,则播放器控制模块212返回到步骤S341,并控制图形处理模块219,以便如上文所描述的,设定字幕数据显示形式为默认的。换句话说,在这种情形,如果已经执行PlayItem()改变,则字幕数据显示形式返回到默认显示形式。
如上文所描述的,在字幕显示控制处理中,仅字幕流中的configurable_flag为1,其指示允许显示形式的改变的情形中,例如响应由用户操作遥控器而输入的显示形式指令,改变关于相应于字幕流的字幕数据的显示形式。
相应地,根据,例如,图26中所示的片断信息文件“00001.CLP”,在相应的片断流文件“00001.PS”中多路复用的四个基本流之中,关于作为第三基本流的字幕流stream#2,configurable_flag为0,其指示不允许显示形式的改变。因而,即使当显示字幕流stream#2时用户操作遥控器改变字幕,它们的显示也不改变。
例如,在相应的片断流文件“00001.PS”中多路复用的四个基本流之中,关于作为第四基本流的字幕流stream#3,configurable_flag为1,其指示允许显示形式的改变。因而,当显示字幕流stream#3时用户操作遥控器改变字幕时,响应该操作,改变字幕显示大小,等等。
换句话说,例如,假设根据图25中的第一PlayList#0中的第一PlayItem#0,正重放片断流文件“00001.PS”。另外,如关于图26中的片断信息文件“00001.CLP”所描述的,在相应的片断流文件“00001.PS”中多路复用的四个基本流之中,第三和第四基本流为字幕流。假设在第三字幕流stream#2和第四字幕流stream#3之间,例如,目前正重放第三字幕流stream#2。
通过由用户操作遥控器输入字幕显示形式指令(步骤S342),从输入接口115(图1)将显示形式指令供给播放器控制模块212。当供给了显示形式指令时,播放器控制模块212在片断信息文件中搜索相应于目前正重放的字幕流的StaticInfo()(图10)(步骤S346)。
换句话说,在这种情形,目前正重放的字幕流为第三字幕流stream#2,其在片断流文件“00001.PS”中多路复用。相应地,播放器控制模块212在相应的片断信息文件“00001.CLP”中搜索关于第三字幕流stream#2的StaticInfo()。
此外,播放器控制模块212识别为0的,在图26中关于第三字幕流stream#2的StaticInfo()中所描述的configurable_flag(步骤S347),由此辨识关于第三字幕流stream#2,不允许显示形式的改变。
在这种情形,通过确定目前正重放的字幕流(相应于该字幕流的字幕数据)不适合于放大、缩小,等等,以及控制图形处理模块219,播放器控制模块212产生表示所述确定的错误消息(步骤S348),并以覆盖在视频数据上的形式输出该消息。
另外,在相应的片断流文件“00001.PS”中多路复用的四个基本流之中,在第三字幕流stream#2和第四字幕流stream#3之间,目前重放的不是第三字幕流stream#2,而是第四字幕流stream#3。响应遥控器的用户的操作而供给有显示形式指令的播放器控制模块212在相应的片断信息文件“00001.CLP”中搜索关于第四字幕流stream#3的StaticInfo()。
此外,播放器控制模块212识别为1且在关于图26中的第四字幕流stream#3的StaticInfo()中所描述的configurable_flag(步骤S347),由此辨识关于第四字幕流stream#3,允许显示形式的改变。
在这种情形,通过确定目前正重放的字幕流(相应于该字幕流的字幕数据)适合于放大、缩小,等等,播放器控制模块212将由用户操作遥控器而供给的显示形式指令供给图形处理模块219(步骤S349)。
相应地,在那之后,响应来自播放器控制模块212的显示形式指令,图形处理模块219对来自字幕解码器控制模块218的字幕数据执行放大、缩小,或诸如此类,并以覆盖在来自视频解码器控制模块216的视频数据的形式输出所获得的数据。
在PlayList()中的第一PlayItem()的重放的开始,播放器控制模块212为图形处理模块219初始化字幕数据显示形式指令(步骤S341)。换句话说,播放器控制模块212控制图形处理模块219,以便设定字幕数据显示形式为默认的。
此外,同样在PlayItem()改变时间,播放器控制模块212为图形处理模块219初始化字幕数据显示形式指令(步骤S341、S351)。
然而,在PlayItem()改变时间,检查关于根据随后重放的新的PlayItem()而重放的新的字幕流的configurable_flag。当configurable_flag为0时,能够为图形处理模块219初始化字幕数据显示形式指令。当configurable_flag为1时,能够为图形处理模块219将字幕数据显示形式指令维持为在PlayItem()改变之前的状态。
在图43中的字幕显示控制处理中,当由用户操作遥控器而输入新的显示形式指令时,将该新的显示形式指令供给图形处理模块219(步骤S349)。然而,能够将该显示形式指令存储在例如构成存储器113(图1)的非易失性存储器中,且能够将该非易失性存储器中所存储的显示形式指令供给图形处理模块219。
换句话说,在关于图1中的盘装置的初始设置中,通过在非易失性存储器中存储用户设定的显示形式指令,当由用户操作遥控器而输入新的显示形式指令时,更新在非易失性存储器中所存储的显示形式指令。另外,能够将非易失性存储器中所存储的显示形式指令供给图形处理模块219。在这种情形,在非易失性存储器中存储在上一个重放结束时间的显示形式指令。因而,通过由用户在下一个PlayList()重放时间操作遥控器,以该显示形式启动字幕数据的显示,而不必在上一个重放结束时间输入显示形式指令。
在这种情形,在非易失性存储器中所存储的显示形式指令包括,例如,放大率或缩小率,以在放大或缩小字幕数据中使用。
如上文所描述的,根据字幕显示控制处理,对于片断信息文件Clip()(图10)中所包括的基本流,在基本流的重放期间不改变的StaticInfo()项之中,获取字幕数据的StaticInfo(),并基于StaticInfo()中所包括的且指示是否允许从默认显示形式的字幕数据显示的改变的configurable_flag,确定是否允许从默认显示形式的字幕数据显示的改变。另外,如果允许从默认显示形式的字幕数据显示的改变,根据改变字幕数据显示形式的指令,执行字幕数据显示过程,即,例如,放大或缩小字幕数据或改变显示色彩的显示处理。因此,能够控制字幕数据显示形式的改变。
捕获控制处理
接下来,参考图44中的流程图描述控制相应于视频流的视频数据的捕获的捕获控制处理。除阐明捕获控制处理的流程图之外,图44也包括阐明作为执行由捕获控制处理所捕获的视频数据的二次使用的处理的例子的背景/屏幕保护处理的流程图。
开始捕获控制处理,以便例如通过由用户操作遥控器,将作为视频数据捕获指令的捕获指令通过输入接口115(图1)供给播放器控制模块212。
换句话说,在捕获控制处理中,首先,在步骤S371,确定播放器控制模块212是否正重放视频流。如果确定播放器控制模块212未重放视频流,则捕获控制处理结束。
可选择地,在步骤S371,如果确定播放器控制模块212正重放视频流,则播放器控制模块212前进到步骤S372,从相应于正重放的视频流的PlayList()(图5)中获取capture_enable_flag_PlayList,并从相应于正重放的视频流的片断信息文件Clip()(图10)中获取capture_enable_flag_Clip。
如图5中所描述的,PlayList()中的capture_enable_flag_PlayList指示是否允许相应于基于该PlayList()而重放的视频流的视频数据(属于PlayList()的视频数据)的二次使用。另外,如图10中所描述的,片断信息文件Clip()中的capture_enable_flag_Clip指示是否允许相应于在相应于该片断信息文件Clip()的片断流文件中所存储的视频流的视频数据的二次使用。
在步骤S372的处理之后前进到步骤S373,基于在上一个步骤S373所获取的capture_enable_flag_PlayList和capture_enable_flag_Clip,播放器控制模块212确定当从输入接口115输入捕获指令时是否能够执行重放的视频数据的画面的捕获。
如果在步骤S373确定当从输入接口115输入捕获指令时不能执行重放的视频数据的画面的捕获,即,当在上一个步骤S373所获取的capture_enable_flag_PlayList和capture_enable_flag_Clip的至少一个为0,其指示不允许视频数据的二次使用时,处理前进到步骤S374。通过控制图形处理模块219,播放器控制模块212覆盖一个指示不能执行视频数据捕获的错误消息,且捕获控制处理结束。这显示错误消息。
可选择地,如果在步骤S373确定当从输入接口115输入捕获指令时能够执行重放的视频数据的画面的捕获,即,当在上一个步骤S373所获取的capture_enable_flag_PlayList和capture_enable_flag_Clip两者都为1,其指示允许视频数据的二次使用时,处理前进到步骤S375。播放器控制模块212将捕获当从输入接口115输入捕获指令时而重放的视频数据的画面的指令供给控制图形处理模块219,并前进到步骤S376。
在步骤S376,根据来自播放器控制模块212的捕获指令,在图形处理模块219中,捕获来自视频解码器控制模块216的视频数据的画面并存储在存储器113(图1)中。捕获控制处理结束。capture_enable_flag由多个位组成,因此,当使用条件受限制时,在这个时间执行响应。换句话说,当所捕获的图像的大小有限制时,捕获在这个时间缩小的图像。另外,当使用的应用程序有约束时,同步记录报告该约束的标志。
如上文所描述的,捕获控制处理找到相应于当捕获指令时的视频流重放数据的PlayList()(图5)和片断信息文件Clip()(图10)的每一个中的capture_enable_flag_PlayList和capture_enable_flag_Clip的逻辑积。当逻辑积为1,即,仅当capture_enable_flag_PlayList和capture_enable_flag_Clip两者都为一其允许二次使用时,过程确定能够执行视频数据的二次使用,以便执行捕获。
因此,例如,当执行根据图25中的第一PlayList()#0中的第一PlayItem#0的视频流重放,即,在执行片断流文件“00001.PS”中多路复用的视频流的重放时,如果接收到来自用户的捕获指令,则第一PlayList#0中的capture_enable_flag_PlayList为1,且相应于基于该第一PlayItem#0而重放的片断流文件“00001.PS”的片断信息文件“00001.CLP”中的capture_enable_flag_Clip为1。因而,确定能够执行正重放的视频数据(相应于在片断流文件“00001.PS”中多路复用的视频流的视频数据)的二次使用,以便执行捕获。
另外,例如,当执行根据图25中的第一PlayList#0中的第二PlayItem#1的视频流重放,即,在执行片断流文件“00002.PS”中多路复用的视频流的重放时,如果接收到来自用户的捕获指令,则第一PlayList()#0中的capture_enable_flag_PlayList为1,且相应于基于该第二PlayItem#1而重放的片断流文件“00002.PS”的图26中的片断信息文件“00002.CLP”中的capture_enable_flag_Clip为0。因而,确定不能执行正重放的视频数据(相应于在片断流文件“00002.PS”中多路复用的视频流的视频数据)的二次使用,以便不执行捕获。
此外,例如,当执行根据图25中的第二PlayList#1中的PlayItem#0的视频流重放,即,在执行片断流文件“00003.PS”中多路复用的视频流的重放时,如果接收到来自用户的捕获指令,则第二PlayList#1中的capture_enable_flag_PlayList为0,相应于基于该第二PlayList#1中的PlayItem#0而重放的片断流文件“00003.PS”的图26中的片断信息文件“00003.CLP”中的capture_enable_flag_Clip为1。因而,确定不能执行正重放的视频数据(相应于在片断流文件“00003.PS”中多路复用的视频流的视频数据)的二次使用,以便不执行捕获。
在这种情形,在确认第二PlayList#1中的capture_enable_flag_PlayList为0的时间,能够确定不能执行视频数据的二次使用。因而,能够忽略相应于基于该第二PlayList#1中的PlayItem#0而重放的片断流文件“00003.PS”的图26中的片断信息文件“00003.CLP”中的capture_enable_flag_Clip的确认。
能够将在捕获控制处理中捕获之后在存储器113中所存储的画面在背景/屏幕保护处理中二次地使用。
在如下状态中,执行背景/屏幕保护处理:例如,尽管播放器控制模块212操作,但不执行基本流重放的状态,即,盘101未加载到盘驱动器102(图1)中的状态,或基本流重放已经结束的状态。
换句话说,在背景/屏幕保护处理中,在步骤S381,播放器控制模块212控制图形处理模块219显示在捕获控制处理中在存储器113中所存储的画面。在播放器控制模块212的控制下,图形处理模块219显示在捕获控制处理中在存储器113中所存储的画面。
这里,在图形处理模块219中,如果在存储器113中所存储的画面显示为静止画面,则实现所谓的墙纸(背景),且如果其在放大、缩小、以及以固定的频率移动时显示,则实现屏幕保护。另外,不仅能够通过播放器控制模块212,而且能够通过另一个独立的应用程序,执行显示通过捕获控制处理在存储器113中所存储的画面的背景/屏幕保护处理。
当在这个时间将表示用户约束的标志添加到存储器113中所存储的画面时,该画面遵从该约束。
如上文所描述的,以大于视频存取单元的单元获取关于正重放的视频数据的capture_enable_flag_PlayList和capture_enable_flag_Clip,其每个都指示例如允许相应于PlayList()或PlayItem()的视频数据的二次使用,且基于capture_enable_flag_PlayList和capture_enable_flag_Clip,确定是否允许正重放的视频数据的二次使用。如果确定允许正重放的视频数据的二次使用,则捕获正重放的视频数据,并执行使用所捕获的视频数据的背景/屏幕保护处理。相应地,视频数据的二次使用的控制成为可能。
在图44中的捕获控制处理中,通过供给PlayList中的capture_enable_flag_PlayList(图5),供给相应于基于PlayItem()而重放的片断流文件的片断信息文件Clip()中的capture_enable_flag_Clip(图10),并使用capture_enable_flag_PlayList和capture_enable_flag_Clip两者,确定是否允许二次使用。然而,通过仅供给仅只PlayList()(图5)中的capture_enable_flag_PlayList,或仅供给相应于基于PlayItem()而重放的片断流文件的片断信息文件Clip()(图10)中的capture_enable_flag_Clip,并使用任何一个,能够确定是否允许二次使用。
另外,在图44中的捕获控制处理中,在步骤S376,根据来自播放器控制模块212的捕获指令,图形处理模块219从视频解码器控制模块216捕获视频数据的画面,即,仅一个画面。然而,除此之外,能够捕获多个画面。换句话说,能够捕获由视频解码器控制模块216所输出的多个时间序列画面(作为活动画面的多个画面序列)。在这种情形,能够例如预先确定每次捕获的画面的数目。可选择地,通过扩展capture_enable_flag_PlayList和capture_enable_flag_Clip的位,可以在capture_enable_flag_PlayList和capture_enable_flag_Clip中包括每次能够捕获的画面的数目的信息。
此外,在上述情形中,在PlayList()和片断信息文件Clip()中描述指示是否允许视频数据的二次使用的用户许可信息(capture_enable_flag_PlayList、capture_enable_flag_Clip),并基于该用户许可信息,确定是否允许基于PlayList()而重放的视频数据的全体和相应于在相应于片断信息文件Clip()的片断流文件中多路复用的视频流的视频数据的全体的二次使用。用户许可信息能够以任意的单元描述其它视频数据,并基于这个用户许可信息,能够确定是否允许任意单元的视频数据的二次使用。
换句话说,图45示出private_stream2_PES_payload()的语法,且图46示出在其中设置用户许可信息的au_information()的语法。
除紧邻video_stream_id之前设置了作为用户许可信息的capture_enable_flag_ps2之外,图45中的private_stream2_PES_payload()在配置上与图23的情形类似。同样,除紧邻pic_struct_copy之前设置了作为用户许可信息的capture_enable_flag_AU之外,图46中的au_information()在配置上与图24的情形类似。
图45中的private_stream2_PES_payload()中所设置的capture_enable_flag_ps2指示是否允许相应于位于从包括private_stream2_PES_payload()的private_stream_2的PES_packet()至紧邻下一个private_stream_2的PES_packet()之前的位置的视频流的视频数据的二次使用。因此,根据图45中的private_stream2_PES_payload()中所设置的capture_enable_flag_ps2,能够确定是否允许从解码可开始点至下一个解码可开始点的视频数据的二次使用。
图46中的au_information()中所设置的capture_enable_flag_AU指示是否允许相应于该capture_enable_flag_AU的视频存取单元中的视频数据的二次使用。因此,根据图46中的au_information()中所设置的capture_enable_flag_AU,能够确定是否允许一个视频存取单元或一个画面单元中的视频数据的二次使用。
这里,关于作为PlayList()(图5)中的用户许可信息的capture_enable_flag_PlayList、作为片断信息文件Clip()(图10)中的用户许可信息的capture_enable_flag_Clip、作为private_stream2_PES_payload()中的用户许可信息的capture_enable_flag_ps2、和作为au_information()(图46)中的用户许可信息的capture_enable_flag_AU,在它们之中,能够重复地采用两个或多个项。在这种情形,基于重复采用的两或多个用户许可信息的逻辑积,或诸如此类,能够确定是否允许某些视频数据的二次使用。
另外,关于包括设置au_information()的图23或图45中的private_stream2_PES_payload()的private_stream_2的PES_packet(),如图36中的步骤S211中所描述的,缓冲器控制模块215(图3)中的视频读取功能单元233从缓冲器215A中所存储的节目流中搜索信息包。因此,在采用在其中设置capture_enable_flag_ps2的图45中的private_stream2_PES_payload()和在其中设置capture_enable_flag_AU的图46中的au_information()的情形中,在确定是否允许视频数据的二次使用中,播放器控制模块212需要询问视频读取功能单元233有关capture_enable_flag_ps2和capture_enable_flag_AU的情况。
尽管,在这个实施例中,通过软件执行上文所描述的连续处理,但能够通过专用硬件执行上文所描述的连续处理。
另外,尽管,在这个实施例中,采用硬件解码器作为视频解码器116(图1),但能够采用软件解码器作为视频解码器116。这同样适用于音频解码器117(图1)。
而且,尽管,在这个实施例中,采用软件解码器作为字幕解码器,但能够采用硬件解码器作为字幕解码器。

Claims (8)

1.一种用于处理经编码的数据的数据处理设备,其中:
所述经编码的数据包括:
通过以预定的单元编码视频数据而获得的、在存取单元中的编码视频数据;和
紧邻在所述存取单元中的所述经编码的视频数据中的一个或多个解码可开始点的每一个之前的使用信息,所述使用信息在解码所述经编码的视频数据中使用;
所述使用信息包括表示所述存取单元的每一个的大小的大小信息,所述存取单元的数目为一或更大,所述存取单元位于所述使用信息和下一个使用信息之间;以及
所述数据处理设备包括:
搜索部件,用于从所述经编码的数据中搜索所述使用信息;和
提供部件,用于响应来自用于控制解码所述经编码的视频数据的视频解码器的视频解码器控制部件的请求,基于所述使用信息中所包括的所述大小信息,从所述经编码的数据中读取在所述存取单元中的所述经编码的视频数据,并将所读取的数据提供给所述视频解码器。
2.如权利要求1所述的数据处理设备,其中:
所述使用信息进一步包括表示所述存取单元的数目的数目信息,所述存取单元位于所述使用信息和所述下一个使用信息之间;以及
所述提供部件以与所述使用信息中所包括的所述数目信息所表示的所述数目一样多的次数、基于所述使用信息中所包括的所述大小信息从所述经编码的数据中重复读取在所述存取单元中的所述经编码的视频数据,并且将所读取的数据提供给视频解码器。
3.如权利要求1所述的数据处理设备,其中通过以预定的单元将所述视频数据编码而获得的在所述存取单元中的所述经编码的视频数据为可变长度数据。
4.一种用于处理经编码的数据的数据处理方法,其中:
所述经编码的数据包括:
通过以预定的单元编码视频数据而获得的、在存取单元中的编码视频数据;和
紧邻在所述存取单元中的所述经编码的视频数据中的一个或多个解码可开始点的每一个之前的使用信息,所述使用信息在解码所述经编码的视频数据中使用;
所述使用信息包括表示所述存取单元的每一个的大小的大小信息;所述存取单元的数目为一或更大,所述存取单元位于所述使用信息和下一个使用信息之间;以及
所述数据处理方法包括:
搜索步骤,用于从所述经编码的数据中搜索所述使用信息;和
提供步骤,用于响应来自用于控制解码所述经编码的视频数据的视频解码器的视频解码器控制部件的请求,基于所述使用信息中所包括的所述大小信息,从所述经编码的数据中读取在所述存取单元中的所述经编码的视频数据,并将所读取的数据提供给所述视频解码器。
5.一种用于允许计算机执行用于处理经编码的数据的数据处理的程序,其中:
所述经编码的数据包括:
通过以预定的单元编码视频数据而获得的、在存取单元中的编码视频数据;和
紧邻在所述存取单元中的所述经编码的视频数据中的一个或多个解码可开始点的每一个之前的使用信息,所述使用信息在解码所述经编码的视频数据中使用;
所述使用信息包括表示所述存取单元的每一个的大小的大小信息,所述存取单元的数目为一或更大,所述存取单元位于所述使用信息和下一个使用信息之间;以及
所述程序包括:
搜索步骤,用于从所述经编码的数据中搜索所述使用信息;和
提供步骤,用于响应来自用于控制解码所述经编码的视频数据的视频解码器的视频解码器控制部件的请求,基于所述使用信息中所包括的所述大小信息,从所述经编码的数据中读取在所述存取单元中的所述经编码的视频数据,并将所读取的数据提供给所述视频解码器。
6.一种具有在其上记录程序的程序记录介质,所述程序允许计算机执行用于处理经编码的数据的数据处理,其中:
所述经编码的数据包括:
通过以预定的单元编码视频数据而获得的、在存取单元中的编码视频数据;和
紧邻在所述存取单元中的所述经编码的视频数据中的一个或多个解码可开始点的每一个之前的使用信息,所述使用信息在解码所述经编码的视频数据中使用;
所述使用信息包括表示所述存取单元的每一个的大小的大小信息,所述存取单元的数目为一或更大,所述存取单元位于所述使用信息和下一个使用信息之间;以及
所述程序包括:
搜索步骤,用于从所述经编码的数据中搜索所述使用信息;和
提供步骤,用于响应来自用于控制解码所述经编码的视频数据的视频解码器的视频解码器控制部件的请求,基于所述使用信息中所包括的所述大小信息,从所述经编码的数据中读取在所述存取单元中的所述经编码的视频数据,并将所读取的数据提供给所述视频解码器。
7.一种具有在其上记录经编码的数据的数据记录介质,其中:
所述经编码的数据包括:
通过以预定的单元编码视频数据而获得的、在存取单元中的编码视频数据;和
紧邻在所述存取单元中的所述经编码的视频数据中的一个或多个解码可开始点的每一个之前的使用信息,所述使用信息在解码所述经编码的视频数据中使用;
所述使用信息包括表示所述存取单元的每一个的大小的大小信息,所述存取单元的数目为一或更大,所述存取单元位于所述使用信息和下一个使用信息之间。
8.一种经编码的数据的数据结构,所述数据结构包括:
通过以预定的单元编码视频数据而获得的、在存取单元中的编码视频数据;和
紧邻在所述存取单元中的所述经编码的视频数据中的一个或多个解码可开始点的每一个之前的使用信息,所述使用信息在解码所述经编码的视频数据中使用;
其中,所述使用信息包括表示所述存取单元的每一个的大小的大小信息,所述存取单元的数目为一或更大,所述存取单元位于所述使用信息和下一个使用信息之间。
CN2005800272857A 2004-06-11 2005-05-24 数据处理设备和方法 Expired - Fee Related CN101002467B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004174548A JP4586429B2 (ja) 2004-06-11 2004-06-11 データ処理装置およびデータ処理方法、並びに、プログラムおよびプログラム記録媒体
JP174548/2004 2004-06-11
PCT/JP2005/009435 WO2005122570A1 (ja) 2004-06-11 2005-05-24 データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造

Publications (2)

Publication Number Publication Date
CN101002467A true CN101002467A (zh) 2007-07-18
CN101002467B CN101002467B (zh) 2010-05-26

Family

ID=35503507

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800272857A Expired - Fee Related CN101002467B (zh) 2004-06-11 2005-05-24 数据处理设备和方法

Country Status (8)

Country Link
US (1) US8213781B2 (zh)
EP (1) EP1768403A4 (zh)
JP (1) JP4586429B2 (zh)
CN (1) CN101002467B (zh)
BR (1) BRPI0511918A (zh)
HK (2) HK1112778A1 (zh)
TW (1) TW200606827A (zh)
WO (1) WO2005122570A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110246467A (zh) * 2019-06-19 2019-09-17 深圳市康冠商用科技有限公司 一种液晶显示器屏幕保护方法及装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2051254A4 (en) * 2007-06-06 2012-10-03 Panasonic Corp PLAYING DEVICE, PLAY PROCESS AND CORRESPONDING PROGRAM
TW201032597A (en) * 2009-01-28 2010-09-01 Nokia Corp Method and apparatus for video coding and decoding
CN102222077A (zh) * 2010-04-14 2011-10-19 中兴通讯股份有限公司 一种语音频数据的存储方法和装置
US10019395B2 (en) * 2013-11-08 2018-07-10 Nxp Usa, Inc. Processing system with stack management and method for stack management
JP6855348B2 (ja) * 2017-07-31 2021-04-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびダウンロード処理方法
US11206244B2 (en) * 2018-12-21 2021-12-21 ARRIS Enterprise LLC Method to preserve video data obfuscation for video frames

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0176134B1 (ko) * 1995-10-25 1999-05-01 김광호 압축 부호화 비디오 데이타 재생방법
JP3060919B2 (ja) * 1995-11-16 2000-07-10 松下電器産業株式会社 圧縮動画像復号・表示装置および圧縮動画像簡易編集装置
KR0185932B1 (ko) * 1995-12-11 1999-04-15 김광호 고속재생을 위한 비디오데이타 복호방법 및 그 장치
JPH10322665A (ja) * 1997-05-07 1998-12-04 Lsi Logic Corp Gopデータの反復読出し制御方法および装置
KR100247978B1 (ko) * 1997-08-08 2000-03-15 윤종용 픽쳐 디코딩 동기화 회로 및 그 방법
JP4150083B2 (ja) * 1997-09-25 2008-09-17 ソニー株式会社 符号化ストリーム生成装置及び方法、ならびに編集システム及び方法
KR100308034B1 (ko) * 1998-12-31 2001-11-02 구자홍 포맷변환장치
US6771196B2 (en) * 1999-12-14 2004-08-03 Broadcom Corporation Programmable variable-length decoder
ITTO20010525A1 (it) * 2001-06-01 2002-12-01 Telecom Italia Lab Spa Procedimento di trasmissione, ad esempio per la trasmissione ripartita di flussi audiovisivi o multimediali, sistema di trasmissione, trasme
MXPA05000674A (es) 2002-07-16 2005-03-31 Thomson Licensing Sa Intercalacion de capas, base de aumento, para hd-dvd utilizando identificacion de corriente alterna para capa de aumento.
CN100369481C (zh) * 2003-02-04 2008-02-13 松下电器产业株式会社 代码变换方法及其装置
WO2005043915A1 (ja) * 2003-10-31 2005-05-12 Kddi Media Will Corporation 映像解析装置及び映像障害検出装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110246467A (zh) * 2019-06-19 2019-09-17 深圳市康冠商用科技有限公司 一种液晶显示器屏幕保护方法及装置

Also Published As

Publication number Publication date
HK1112778A1 (en) 2008-09-12
EP1768403A1 (en) 2007-03-28
TW200606827A (en) 2006-02-16
JP2005354520A (ja) 2005-12-22
US20080292285A1 (en) 2008-11-27
TWI330357B (zh) 2010-09-11
WO2005122570A1 (ja) 2005-12-22
HK1101950A1 (en) 2007-11-02
JP4586429B2 (ja) 2010-11-24
EP1768403A4 (en) 2010-04-28
US8213781B2 (en) 2012-07-03
CN101002467B (zh) 2010-05-26
BRPI0511918A (pt) 2008-01-15

Similar Documents

Publication Publication Date Title
CN1965365B (zh) 数据处理设备和数据处理方法
EP1818933B1 (en) DVD Recording device for recording for each scene change a priority level as metadata for both subtitles streams and data stream.
CN101112086B (zh) 数据记录设备、数据记录方法、数据处理设备和数据处理方法
CN100556116C (zh) 数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质和数据结构
CN100518277C (zh) 数据处理装置及数据处理方法
CN101002467B (zh) 数据处理设备和方法
CN101111897B (zh) 数据处理装置和数据处理方法
CN101002268B (zh) 数据处理设备和数据处理方法
CN101002264A (zh) 数据处理装置和数据处理方法、程序和程序记录介质、数据记录介质和数据结构
CN100563320C (zh) 数据处理设备和数据处理方法
KR101169488B1 (ko) 데이터 처리 장치, 데이터 처리 방법, 프로그램 기록 매체 및 데이터 기록 매체
KR20070020503A (ko) 데이터 처리 장치 및 데이터 처리 방법, 프로그램 및프로그램 기록 매체, 데이터 기록 매체, 및, 데이터 구조

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1101950

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1101950

Country of ref document: HK

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100526

Termination date: 20130524