Note: Descriptions are shown in the official language in which they were submitted.
CA 02530887 2002-09-27
METHOD FOR PRELOADING AND RECORDING PRELOAD INFORMATION IN
AN INFORMATION STORAGE MEDIUM
BACKGROUND OF THE INVENTION
This is a divisional application of Canadian Patent Application No. 2,405,647,
filed on September 27, 2002, and entitled "Information Storage Medium
Containing
Preload Information, Apparatus and Method for Reproducing Therefor".
Field of the Invention
The present invention relates to an information storage medium which
contains preload information, a reproducing apparatus and a reproducing
method,
and more particularly, to an information storage medium which contains AV data
and
multiple markup language documents that are displayed by a markup document
viewer, and an apparatus and a method for playing the information storage
medium.
2. Description of the Related Art
An interactive DVD(Digital Versatile Disc) medium may be reproduced in an
interactive mode based on a personal computer (PC). The interactive DVD medium
contains markup language documents with AV data. The content stored in the
interactive DVD medium can be reproduced in two ways, that is, in a video mode
or
an interactive mode. In the video mode, the content is displayed in the same
way as
playback on a regular DVD player is displayed, whereas in the interactive
mode, the
content is displayed in a display window defined by a markup language
document. If
the interactive mode is selected by a user, a web browser built in a personal
computer (PC) displays the markup language document recorded in the
interactive
DVD medium and the content selected by the user in the display window defined
by
the markup language document.
For example, in a movie whose content is AV data, video of the movie is
played in the display window defined by the markup language document, and in
the
remaining part of the display screen, a variety of supplementary information
including
scripts, stories, photos of actors and actresses, etc., can be displayed. The
supplementary information can include an image file or a text file.
FIG. 1 is an outline diagram of an interactive DVD medium where AV data are
recorded.
With reference to FIG. 1, on the tracks of the interactive DVD medium, AV
data is recorded as a form of MPEG bit stream, and multiple markup language
documents are also recorded. A markup language document can mean a markup
resource including various graphic image files inserted into the markup
language
CA 02530887 2002-09-27
document.
FIG. 2 is a reference diagram showing an interrupfiion that may occur while
the interactive DVD medium of FIG. 1 is being played.
FIG. 2 shows the occupancy of a buffer memory that buffers the AV data and
the occupancy of a cache memory that caches the markup resources. With regard
to FIGS. 1 and 2, for loading of the AV data to the memory and the displaying
of the
AV data, a pick-up device seeks and reads a file STARTUP.HTM and loads it into
the cache memory. The loaded file STARTUP.HTM is activated. Actually, the AV
data O selected by the AV data presentation sequence is loaded into the buffer
memory and starts to be displayed. Then, the AV data 20 is loaded and
displayed.
After the AV data QQ is completely buffered, the pick-up device of reproducing
apparatus jumps to the position where the AV data 0O is recorded and starts to
buffer the AV data ~. If the user requests a file A.HTM ~, the pick-up device
stops buffering the AV data ~ and seeks the file A.HTM ~ and reads it to the
cache memory. Meanwhile, since the AV data ~ continues to be displayed, the
amount of the data to be loaded is consumed drastically. The file A. HTM ~ is
activated. After the AV data ~ is completely buffered, the pick-up device
buffers
the AV data 5p. If the AV data ~ is completely buffered, the pick-up device
jumps
to the position where the AV data ~ is recorded. In that case, exhaustion of
the
buffered data may happen. That is, in case of the existing interactive DVD, if
the
moving pictures of DVD video and the markup language documents need to be
displayed synchronously (for example, when an actor is on stage, his brief
history is
displayed together with his moving picture), the pick-up device should stop
buffering
2
CA 02530887 2002-09-27
the AV data and seek and cache the related markup language documents.
Therefore, the moving pictures reproducing may be interrupted temporarily.
SUMMARY OF THE INVENTION
To solve the above problem, it is a first object of the present invention to
provide an information storage medium that enables content to be reproduced
seamlessly in a display window defined by a markup language document, and an
apparatus and a method for playing the information storage medium.
It is a second object of the present invention to provide an information
storage medium containing a markup language document that needs to be
reproduced in synchronization with the content and that is loaded to/discarded
from
a cache memory so that content can be reproduced seamlessly in a display
window
defined by a markup language document, and an apparatus and a method for
playing the information storage medium.
It is a third object of the present invention to provide an information
storage
medium that allows a file to be more efficiently preloaded by providing
information on
the type of the file to be preloaded so that content can be reproduced
seamlessly in
a display window defined by a markup language document, and an apparatus and a
method for playing the optical medium. ,
It is a fourth object of the present invention to provide a method for
guaranteeing that sufficient data remains in a memory even though a preloading
is
performed during reproduction of a content.
It is a fifth object of the present invention to provide a method for managing
a
memory so that preloading and discarding can be performed in a strict manner.
In one aspect, there is provided an information storage medium comprising
audio/video (AV) data, and markup language documents including a preload
information that orders a reproducing apparatus to read a file to be preloaded
for
seamless reproduction AV data and to store the read file in a memory, for
displaying
the AV data which is decoded and reproduced.
It is preferable that the information storage medium further includes
reproducing control information on the AV data and the AV data is decoded in
an AV
data stream with reference to the reproducing control information.
It is preferable that the information storage medium further includes a
preload
list file which includes the files to be preloaded, and at least one of the
file to be
3
CA 02530887 2002-09-27
preloaded.
It is preferable that the preload information is implemented by a link tag
where the location information of the preload fist file is recorded, or an
Application
Program Interface (API) which has the location information of the preload list
file as a
parameter. The preload list file includes the location information and the
type of the
file to be preloaded.
Alternatively, the present invention provides an information storage medium
comprising AV data, and a markup language document including a preload
information that orders a reproducing apparatus to read a file to be preloaded
for
seamless reproduction AV data and to store it into a memory, for displaying
the AV
data which is decoded and reproduced in an AV data stream.
It is preferable that the preload information is implemented by an API which
has the location information of the preload list file as a parameter. It is
preferable
that the location information comprises the path of the preload list file and
a resource
locator, which indicates one of the memory, the information storage medium,
and an
Internet server, which is attached to the path of the preload list file.
It is preferable that the markup language document includes a discard list
file
which contain a discard files list, and discard information which indicates
that files,
which are recorded in the discard list file should be discarded from the
memory.
In another aspect, the present invention provides a method for reproducing
AV data recorded in an information storage medium by invoking the AV data
through
a markup language document, the method comprising (a) interpreting preload
information included in the read markup language document, (b) retrieving
files to be
preloaded for seamless reproduction AV data based on the preload information
and
storing the files to a cache memory, (c) reading the AV data and storing it in
a buffer
memory, and (d) reproducing the AV data and the files to be preloaded from the
buffer memory and the cache memory, respectively, and displaying them based on
the markup language document.
It is preferable that step (a) comprises (a1 ) identifying the path and the
type
of the file to be preloaded, and in step (a1 ), the path of a preload lisf
file that is
recorded in a link tag inserted in a region bounded by head tag is identified.
It is preferable that step (b) comprises (b1 ) reading the file to be
preloaded
from the identified path and (b2) processing and storing the file to be
preloaded
depending on the identified type.
4
CA 02530887 2002-09-27
In another aspect, the present invention provides an apparatus for
reproducing AV data recorded in an information storage medium with markup
language documents, the apparatus comprising a reader for reading markup
language documents or AV data, a memory for storing files to be preloaded or
AV
data, an AV decoder for decoding the AV data stored in the memory, and a
presentation engine for requesting that files to be preloaded for seamless
reproduction AV data be stored in the memory based on the interpreted preload
information after interpreting a preload information included in the read
markup
language document, for requesting that the read AV data to be stored in the
memory,
and for retrieving the files to be preloaded from the memory and displaying
the file
together with the AV data outputted by the AV decoder.
It is preferable that the memory comprises a buffer memory for storing the AV
data, and a cache memory for storing the files to be preloaded.
It is preferable that the presentation engine identifies the path and the type
of
the file to be preloaded based on the preload information, retrieves the files
to be
preloaded from the identified path, and stores the files according to the type
of the
files in the cache memory.
It is preferable that the presentation engine requests the reader to read the
file to be preloaded or an Internet server to send the file to be preloaded,
compares
the amount of the space remaining in the cache memory with the amount size of
the
files to be preloaded and generates an error signal if the amount of the space
remaining in the cache memory is less than the amount size of the files to be
preloaded, and refers the cache memory to read the files to be preloaded if
the
resource locator attached to the path of the preload list file indicates the
cache
memory, or generates an error signal if there is no file to be refered in the
cache
memory.
In another aspect, the present invention provides a method for pertorming a
preloading, the method comprising (a) identifying the speed at which a file to
be
preloaded is read, (b) identifying the condition that enables the buffering to
be
performed in such a way that relevant AV data can be reproduced seamlessly,
and
(c) performing the preloading at the time identified to be the optimized
condition.
The present invention also provides a method for recording the preload
information in an information storage medium, comprising (a) generating the
list of
files to be preloaded, (b) identifying the speed at which the recorded files
to be
5
CA 02530887 2002-09-27
preloaded are read, (c) identifying the condition that enables the buffering
to be
performed in such a way that relevant AV data can be reproduced seamlessly,
and
(d) recording script program codes for performing the preloading at the time
which is
identii'led to be the optimized condition.
The present invention also provides a method for managing a memory for
preloading, the method comprising (a) creating and modifying a memory
management table information containing the status information of files to be
preloaded, and for (b) discarding the file to be preloaded based on its status
information.
It is preferable that the method for managing a memory for preloading further
comprises (c) performing garbage collection on the files to be preloaded based
on its
status information.
It is preferable that step (b) is performed when the status of the cached file
is the status as "not in use" and "discardable". It is that means the
usability of the
fifes to be preloaded is ended.
It is preferable that step (c) comprises (c1 ) discarding the preloaded files
to in
the cache memory physically if it is not in use and is discardable, (c2)
indicating the
fact that the files to be preloaded no longer exists in the cache memory, and
(c3)
realigning the files to remain in the cache memory.
BRIEF DESCRIPTION OF THE DRAWINGS
The above objects and advantages of the present invention will become
more apparent by describing in detail preferred embodiments thereof with
reference
to the attached drawings in which:
FIG. 1 is an outline diagram of an interactive DVD medium which AV data is
recorded in;
FIG. 2 is a reference diagram showing an interruption that may occur while
the interactive DVD medium of FIG. 1 is being played;
FIG. 3 is a block diagram of a reproducing apparatus according to a
preferred embodiment of the present invention;
FIG. 4A is a reference diagram showing an embodiment of the directory
structure of files in a DVD medium according to the present invention;
FIG. 4B is a reference diagram showing another embodiment of the
directory structure of files in the DVD medium according to the present
invention;
CA 02530887 2002-09-27
FIG. 5A is an outline diagram showing an embodiment of the volume space
of the DVD medium according to the present invention;
FIG. 5B is an outline diagram showing another embodiment of the volume
space of the DVD medium according to the present invention;
FIG. 6 illustrates a preloading method according to the present invention in
an interactive mode;
FIG. 7 is a flowchart explaining a reproducing method according to a
preferred embodiment of the present invention;
FIG. 8 is an embodiment of step 702 of FIG. 7, where the preload
information is interpreted;
FIG. 9 is a first embodiment of step 703 of FIG. 7, where the files to be
preloaded are preloaded;
FIG. 10A is a second embodiment of step 703 of FIG. 7, where the files to
be preloaded are preloaded;
FIG. 10B is a third embodiment of step 703 of FIG. 7, where the files to be
preloaded are preloaded;
FIG. 11 is a flowchart explaining a method for preloading the files to be
preloaded when a preload list file includes the amount size of the file to be
preloaded;
FIG. 12 is a flowchart explaining a method for discarding at least one of the
files to be preloaded that are stored in the memory;
FIG. 13 is an embodiment of step 1202 of FIG. 12, where the discarding is
performed;
FIG. 14 is a reference diagram explaining the effect of the preloading
performed according to the present invention when the AV data and a markup
language documents are recorded in the same order as shown in FIG. 1;
FIG. 15 is a detailed diagram of a part of the reproducing apparatus of FIG.
3;
FIGS. 16 and 17A through 17F are memory maps explaining a method of
managing a memory management table information and data by performing
preloading, discarding and garbage collection;
FIG. 18 is a reference diagram showing a case where the AV data is loaded
into and exhausted in a first memory;
7
CA 02530887 2002-09-27
FIG. 19 is a diagram showing the data alignment of the preload list file and
the files to be preloaded on the information storage medium;
FIG. 20A is an outline diagram of a disc, and 20B is a detailed diagram of a
part of FIG. 20A;
FIG. 21 is a reference diagram showing the status of a first memory and a
second memory according to embodiments of the present invention; and
FIG. 22 is a flowchart showing a recording method according to a preferred
embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
The present invention now will be described more fully with reference to the
accompanying drawings, in which preferred embodiments of the invention are
shown.
The markup document defined in the specification means not only a markup
language document itself but also markup sources which are inserted into or
linked
with the HTML document. ~~.HTM ~ means not only the HTML itself but also the
documents described in a markup language such as XML and SGML, which can be
displayed via a presentation engine described later.
FIG. 3 is a block diagram of a reproducing apparatus according to a preferred
embodiment of the present invention.
With reference to FIG. 3, the reproducing apparatus decodes audio/video
(AV) data recorded in a DVD 300 and reproduces the AV data as an AV data
stream.
Then, the reproducing apparatus displays the AV data in a display window
defined by
a markup language document in an interactive mode and includes a reader 1, a
first
memory 2, a second memory 3, an AV decoder 4, and a presentation engine 5. In
an interactive mode, interactive frames are displayed on a screen. In one
interactive
frame, an AV picture is embedded in a markup frame. The markup frame is
displayed based on a markup document, and the AV picture is reproduced from AV
data.
As described later, the presentation engine 5 supports an extension of a link
tag, JavaScript, and Java applet so that preload information which is
implemented by
the link tag, a JavaScript Application Program Interface (API), or a Java
appIetAPI,
or discard information, which is implemented by a JavaScript API or a Java
applet
API, can be interpreted and executed.
s
CA 02530887 2002-09-27
The reader 1 reads the markup language documents or the AV data from
the DVD 300. The first memory 2 is a buffer memory that buffers the AV data
read
by the reader 1. The second memory 3 is a cache memory that caches the
retrieved markup language document file. The AV decoder 4 decodes the AV data
stored in the first memory 2 and outputs the AV data stream. The presentation
engine 5 interprets the preload information included in the markup language
document, and requests the reader 1 to read the files to be preloaded or an
Internet
server (not shown) to send the files to be preloaded so that the files can be
preloaded into the second memory 3 based on the interpreted preload
information.
When the files to be preloaded needs to be displayed together with the AV data
simultaneously, the presentation engine 5 invokes the file to be preloaded
from the
second memory 3 and displays the read file together with the AV data stream
outputted by the AV decoder 4. In addition, the presentation engine 5
interprets
the discard information and discards the files to be discarded from the second
memory 3.
The DVD 300 according to the embodiment includes not only the AV data
containing audio data or video data but also the markup language document
containing the preload information and the discard information. Furthermore, a
preload list file and a discard list file may be recorded in the DVD 300.
The preload list file lists the names of the files to be preloaded and
information about the amount size of memory necessary for storing each file to
be
preloaded. The files to be preloaded is the markup language document which
may need to be reproduced in synchronization with the relevant AV data and is
recorded in the DVD 300 according to the embodiment. The files to be preloaded
can be stored in the Internet server that can be accessed over the Internet.
The preload information according to the present invention is
information which instructs that the files to be preloaded are read and stored
in the
cache memory. For example, the preload information can be implemented as the
link tag where the path of the preload list file is inserted. The link tag is
inserted
into a region bounded by the head tag. In another example, the preload
information can be implemented as a JavaScript API or a Java applet APi which
has the path and the type of the preload list file as parameters and invokes
the
preload list file. In a third example, the preload information can be
implemented
s
CA 02530887 2002-09-27
as a JavaScript API or a Java applet API which has the path and the type of
the file
to be preloaded as parameters and invokes the file to be preloaded without the
preload list file.
A type is information that plays the similar role as the definition of a Multi-
Purpose Internet Mail Extensions (MIME) header. That is, the file type
information
indicates the data property of the file to be preloaded. Understanding the
data
property helps to process the file more effectively. For example, if the type
of the
file is interpreted before a markup language document file is preloaded, the
markup
language document file can be processed without a type of the file analysis
procedure. If a graphic image file is preloaded, the graphic image file can be
processed to be stored as the form without the unnecessary header information
in
the cache memory. As a result, the memory space can be utilized effectively
and
the file can be reproduced at faster speeds. If an audio file is preloaded,
the audio
file can be re-sampled at much higher rates which are enable to be played by
the
reproducing apparatus and stored. If a font file is preloaded, only the
necessary
information for font rasterizing will be extracted and stored. That is,
understanding
the type of the file to be preloaded helps to perform the preloading more
effectively
and flexibly.
A path indicates the location where the relevant file is recorded. A resource
locator can be attached to the path of the preload list file and the file to
be preloaded.
In fact, the markup resources may be recorded in the DVD 300, cached in the
second memory 3, or exist in the server that can be accessed over the
Internet.
Therefore, the resource locator of markup language documents is classified as
a
DVD resource locator indicating the DVD 300, a cache resource locator
indicating
the second memory 3, and an Internet resource locator indicating the Internet
server.
The resource locators can be indicated as follows in the order they were
specified
above.
disk0:// or dvd://
lid://
http://
Therefore, when the file A.HTM recorded in the DVD 300 is retrieved as the
file to be preloaded, the path is indicated as disk0://DVD_ENAV/A.HTM. When
the
file A.HTM cached in the second memory 3 is invoked as the file to be
preloaded,
the path is indicated as lid://DVD_ENAV/A.HTM. When the file A.HTM stored in
the
CA 02530887 2002-09-27
the Internet server is received as the file to be preloaded, the path is
indicated as
http://www.samsung.com/DVD_ENAV/A.HTM. If multiple DVDmedia loader 300
are equipped in the reproducing apparatus, the resource locators of each DVD
medium can be indicated as disk0://(or dvd://), disk1://, disk2://, disk3://,
....
Even though the resource locator is attached to the path indicating the
location of the file to be preloaded, the presentation engine 5 generates an
error
signal and ends the preloading if there is no file to be preloaded in the
location
indicated by the resource locator. However, if the resource locator usage
scheme
is implicit scheme, the reproducing apparatus searches the markup language
document according to this sequence. The second memory 3 is searched first.
Then, if the file to be preloaded does not exist in the second memory 3, the
DVD
300 is searched next.
The discard list file lists the information (name and path of the file) on the
location of the file to be discarded. The discard information is the
information that
instructs that the files to be discarded are discarded from the second memory
3.
For example, the discard information can be implemented as a JavaScript API or
a
Java applet API which has the location information of the discard list file as
a
parameter and discards the ales to be discarded that is included in the
discard list
file. In another example, the discard information can be implemented as a
JavaScript API or a Java applet API which has the path and the type of the
file to be
discarded as parameters and discards the file to be discarded without the
discard
list file.
FIGS. 4A and 4B are reference diagrams showing the directory structure of
files in the DVD 300.
With reference to FIG. 4A, a root directory includes subdirectories
V1DE0 TS and DVD_ENAV VIDEO TS is a DVD video directory that includes
the AV data. DVD_ENAV is a DVD interactive directory for recording the data
including the markup language document that supports the interactive function.
The DVD video directory VIDEO TS includes files VIDEO TS.IFO,
VTS 01 O.IFO, VTS 01 O.VOB and VTS 01_1.VOB.....
In the file VIDEO TS.IFO, the reproducing control information on the entire
video title sets is recorded. In the file VTS 01 O.IFO, the reproducing
control
information on the first video title set is recorded. In VTS 01 O.VOB and
11
CA 02530887 2002-09-27
VTS 01_1.VOB, the AV data that makes up the video title sets are recorded.
More detailed configuration information is included in the DVD-Video Standard
~ DVD-Video for Read Only Memory Disc 1.0~ .
The DVD interactive directory DVD_ENAV includes files DVD_ENAV IFO,
STARTUP.HTM, STARTUP.PLD, A.HTM, A.PNG, other files to be preloaded, and
various types of files that are inserted into the files to be preloaded and
displayed.
In the file DVD_ENAVIFO, the reproducing control information on the entire
interactive information is recorded. The file STARTUP HTM is designated as a
start document. The file STARTUP.PLD is the preload list file according to the
embodiment. The file A.HTM is the file to be preloaded. The file A.PNG is the
graphic image file that is inserted into the file A.HTM and displayed with the
file
A.HTM. The directory DVD_ENAV can include other files to be prefoaded and
various types of files that are inserted into the files to be preloaded and
displayed.
However, in FIG. 4B, if the preload information included in the markup
language document is implemented as the API which has the path and the type of
the file to be preloaded as parameters, retrieves the file to be preloaded
without the
preload list file
FIGS. 5A and 5B are outline diagrams showing embodiments of the volume
space of the DVD 300.
With reference to FIG. 5A, the volume space of the DVD 300 includes a
control information section containing the control information on the volume
and the
file, a DVD video data section containing a relevant video title data and a
DVD
interactive data section which enables reproduction in the interactive mode.
The DVD-video data section includes the files VIDEO TS.IFO,
VTS 01 O.IFO, VTS 01 O.VOB, VTS_01_1.VOB,.. stored in the DVD video
directory DVD TS shown in FIG. 4A. The DVD interactive data section includes
the files STARTUP.HTM, STARTUP.PLD, A.HTM, andA.PNG stored in the DVD
interactive directory DVD_ENAV shown in FIG. 4A.
As described above, with reference to FIG. 5B, if the preload information
included in the markup language document is implemented as an API which has
the path and the type of the file to be preloaded as parameters and retrieves
the file
to be preloaded without the preload list file.
12
CA 02530887 2002-09-27
FIG. 6 illustrates a preloading method according to the present invention in
an interactive frame (including an AV picture in a markup frame). Referring to
FIG.
6, AV pictures reproduced from AV data are shown. When AV pictures are
reproduced in an interactive mode, interactive frames where AV pictures are
embedded are displayed. One interactive frame consists of an AV picture and
one
markup frame.
AV data can be classified into data that can be seamlessly reproduced
(hereinafter, "seamless reproduction AV data") and the other data. For
example,
concerning a war movie title consisting of Parts 1, 2, and 3, wherein Part 1
is the
default part of the title, and Parts 2 and 3 are optional parts whose stories
can be
arranged by a user, when the AV data of Part 1 is reproduced, the AV data of
Part 1
are seamless reproduction AV data, whereas the AV data of Parts 3 and 3 are
non-
seamless reproduction AV data. When Part 2 or Part 3 is selected by a user,
the AV
data of Part 2 or Part 3 must be seamlessly reproduced. When Part 2 is
selected
and reproduced, the AV data of Part 2 is seamless reproduction AV data while
the
AV data of Part 1 and Part 3 are not seamless reproduction AV data. When Part
3
is selected and reproduced, the AV data of Part 3 is seamless reproduction AV
data
while the AV data of Part 1 and Part 2 are not seamless reproduction AV data.
According to the present invention, a file to be preloaded using preload
information corresponds to a markup document required for reproducing seamless
reproduction AV data in the interactive mode.
Assuming that STARTUP.HTM and A.HTM are markup documents required
for reproducing Part 1 in an interactive mode, and OTHER1.HTM and
OTHER2.HTM are markup documents required for reproducing Part 2 and 3 in the
interactive mode, respectively, as shown in FIG. 6, STARTUP.HTM and A.HTM are
preloaded for reproduction of Part 1, OTHER1.HTM is preloaded for reproduction
of
Part 2, and OTHER2.HTM is preloaded for reproduction of Part 3.
The present invention performs reproduction as follows.
FIG. 7 is a flowchart explaining a reproduction method according to a
preferred embodiment of the present invention.
With reference to FIG. 7, if the interactive mode is selected, the reader 1
13
CA 02530887 2002-09-27
reads the HTML document recorded in the DVD 300 in step 701. The
presentation engine 5 interprets the preload information included in the HTML
document and requests the reader 1 to read the file to be preloaded or the
Internet
server to send the file to be preloaded for pertorming preloading in step 702.
In
step 703, the files to be preloaded are stored in the second memory 3, which
is the
cache memory.
The reader 1 reads the relevant AV data from the DVD 300 and stores the
read AV data in the first memory 2, which is the buffer memory, in step 704.
The
AV decoder 4 decodes the AV data stored in the first memory 1 in step 705. The
presentation engine 5 invokes from the second memory 3 the files to be
preloaded
and displays the AV data stream decoded by the AV decoder 4 in the display
window defined by the markup language document in step 706.
FIG. 8 is an embodiment of step 702 of FIG. 7, where the preload
information is interpreted.
With reference to FIG. 8, the presentation engine 5 identifies the path of the
preload list file recorded in the markup language document in step 801 and
reads
the preload list file from the identified path in step 802. Then, the
presentation
engine 5 identifies the files to be preloaded, which is recorded in the
preload list file,
in step 803. Here, identifying the files to be preloaded means identifying the
path
and the type of the files to be preloaded.
FIG. 9 is a first embodiment of step 703 of FIG. 7, where the file to be
preloaded is preloaded. Referring to FIG. 9, the presentation engine 5
identifies
the path of the preload list file recorded in the link tag inserted in the
region
bounded by head tag of the HTML document, and retrieves the preload list file
in
step 901. In step 902, the presentation engine 5 interprets the preload list
file,
including the preload tag which has the path and the type of the file to be
preloaded
as parameters, and performs preloading.
FIG. 10A is a second embodiment of step 703 of FIG. 7, where the files to
be preloaded are preloaded. With reference to FIG. 10A, the presentation
engine
5 invokes by the API, which is inserted into the region bounded by script tag
and
has the path of the preload list file as the parameter, and retrieves the
preload list
file in step 1001 a. In step 1001 b, the presentation engine 5 interprets the
preload
list file, including the preload tag having the path and the type of the file
to be
preloaded as attributes, and performs preloading.
14
CA 02530887 2002-09-27
FIG. 10B is a third embodiment of step 703 of FIG. 7, where the file to be
preloaded is preloaded. With reference to FIG. 10B, the presentation engine 5
invokes the API, which is inserted into the region bounded by script tag and
has the
path and the type of the file to be preloaded as parameters, and stores the
file to be
preloaded in the memory in step 1001 b. In this step, since the presentation
engine 5 can identify the type of the file to be preloaded, it can process the
file
based on the type and store it in the memory.
FIG. 11 is a flowchart explaining a method for preloading the files to be
preloaded when the preload list file includes the amount size of the files to
be
preloaded.
With regard to FIG. 11, when the interactive mode is selected, the reader 1
reads the HTML document according to the embodiment in the DVD 300. The
presentation engine 5 interprets the preload information included in the HTML
document, and the reader 1 reads the preload list file in step 1101. In step
1102,
the presentation engine 5 interprets the preload list file. The presentation
engine 5
identifies the amount size of the files to be preloaded and compares the
identified
size with the remaining capacity of the cache memory in step 1103. If the
amount
size of the files to be preloaded is smaller than the remaining capacity of
the cache
memory, the presentation engine performs preloading in step 1104. If the
amount
size of the files to be preloaded is bigger than the remaining capacity of the
cache
memory, the presentation engine 5 generates an error signal and ends the
preloading in step 1105.
FIG. 12 is a flowchart explaining a method for discarding at least one of the
files that are stored in the memory.
With reference to FIG. 12, the presentation engine 5 interprets the discard
information included in the HTML document in step 1201 and discards the files
to
be discarded that is listed in the discard list file from the second memory 3,
which is
the cache memory, in step 1202. As identified by the script program code
explained below, the preload list file and the discard list file according to
the
embodiment is implemented as the same file, that is, STARUP.PLD. The preload
list file and the discard list file may also be implemented as two or more
separate
files.
FIG. 13 is an embodiment of step 1202 of FIG. 12, where the discarding is
performed.
CA 02530887 2002-09-27
With reference to FIG. 13, the API, which has the path of the discard list
file
as a parameter, discards the files to be discard that is listed in the discard
list file
from the second memory 3 which is the cache memory in step 1301. Here,
~discarding~ means not performing garbage collection which discards the data
physically, but notifying the status that the data is discardable by using a
flag or that
other data can be over recorded while the data physically still remains.
The text data of the above-described file STARTUP.HTM and
STARTUP.PLD may be configured as follows.
X Example 1 of STARTUP.HTM
16
CA 02530887 2002-09-27
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC -//DVD/DTD XHTML DVD-HTML1.0//EN"
"http://www.dvdforum.orq/enav/dvdhtml-1-O.dtd">
<html>
<head>
<title>STARTUP PAGE</title>
clink rel="preload" src="dvd://dvd enav/startup.pld"
OnError="err preloadQ"
OnAbort="err_preloadQ"> <!--if preloading is failed, call err preload -->
<script language="ecmascript">
< i_-
function html discard()
navigator. Discard("dvd://dvd enav/startup.htm",0);
function err preloadQ
f
navigator. Discard(" ",2);
if (Inavigator.Preload("dvd://dvd enav/startup.pld",1))
alert("insufficient memory. it will change interactive mode to video mode.")
DvdVideo.SetVideoMode()
</script>
</head>
<body bgcolor=#ffffff OnUnload="html discard()"> <!--if document unload, call
html discard -->
<object height="50%" width="60%" data="dvd:">
<script language="ecmascript">
<i--
DvdVideo.PIayQ -->
</script>
<a href="lid://dvd enav/a.htm">click to preloaded A.HTM</a>
</body>
</html>
17
CA 02530887 2002-09-27
The above text data includes the preload information implemented as the link
tag inserted into the region bounded by the head tag. In addition, the discard
information implemented as JavaScript API is inserted.
X Example 2 of STARTUP.HTM
18
CA 02530887 2002-09-27
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC -//DVD/DTD XHTML DVD-HTML1.0//EN"
"http://www. dvdforum. ora/enav/dvd htm l-1-O. dtd">
<html>
<head>
<title>STARTUP PAGE</title>
<script language="ecmascript">
<t__
function html discard()
f
navigator. Discard("dvd://dvd enav/startup.htm","text/xml");
function err preload()
f
navigator. Discard(" "," ");
if (!navigator.Preload("dvd://dvd enav/startup.pld","text/preload"))
alert("insufficient memory. it will change interactive mode to video
mode.");
DvdVideo.SetVideoModeQ;
__>
</script>
</head>
<body bgcolor=#ffffff OnUnload="html discard()"> <!--if document unload, call
html discard -->
<object height="50%" width="60%" data="dvd:">
<script language="ecmascript">
< i-_
if (!navigator.Preload("dvd://dvd enav/startup.pld","text/preload"))
err_preload();
)
DvdVideo. Play();-->
</script>
<a href="lid://dvd_enav/a.htm">click to preloaded A.HTM</a>
</body>
</html>
19
CA 02530887 2002-09-27
The above text data includes the discard information and the preload
information implemented as the JavaScript API
X Example 1 of STARTUP.PLD
<?xml version="1.0" encoding="UTF-8"?>
<IDOCTYPE PRELOAD PUBLIC "-//DVD/DTD DVD Preload List 1.0//EN"
"http://www.dvdforum.or4/enay/dvd-preload-list.dtd"-->
<preload cachesize="128KB">
<filedef type="text/xml" src="dvd://dvd enav/a.htm" />
<filedef type="image/png" src="dvd://dvd enav/a.png" />
</preload>
The above text data is an XML document and includes the amount size, the
paths, and the types of the files to be preloaded.
The API for preloading/discarding used in the above script program code
can be explained in detail as follows.
1. navigator.Preload (URL, flag)
It is the API that reads the specified file to be preloaded to the second
memory 3. The used parameters specify the location information of the preload
list
file or the file to be preloaded.
URL : Path of the preload list file or the path of the file to be preloaded.
flag : when URL indicates the preload list file, flag is 1
When URL indicates the file to be preloaded., flag is 0.
return value: If the preload performing is successful, "true" is returned. If
the
preload performing fails, "false" is returned.
For example:
navigator.Preload ("http://www.holeywood.com/tom.pld",1) According to this,
the preload list file, which has the path of http://www.holeywood.com/tom.pld,
is
received and read out the files to be listed in the preload list file to the
cache memory
in advance of reproducing the files.
2. navigator.Preload (URL, resType)
CA 02530887 2002-09-27
It is the API that reads the indicated file to be preloaded to the second
memory 3. The used parameters specify the location information of the preload
list
file or the file to be preloaded, and further may indicate the type of the
file to be
preloaded.
URL : Path of the preload list file or the path of the file to be preloaded.
resType : A type of the file to be preloaded.
return value: If the preload performing is successful, "true" is returned. If
the
preload performing fails, "false" is returned.
For example:
navigator.Preload ("dvd://dvd enav/a.htm", "text/xml") According to this, the
file to be preloaded that is stored in theDVD 300, which has the path of
"dvd://dvd enav/a.htm", is read. The file is a text-based xml file.
navigator.Preload ("http://www.holeywood.com/tom.htm", "text/html")
According to this, a file that exists on the Internet at the locator of
http://www.holeywood.com/tom.html isretrieved. The file is a text-based HTML
file.
3. navigator. Discard (URL, flag)
It is the API that discards the indicated file to be discarded from the second
memory 3. The used parameters specify the location information of the discard
list
file or the file to be discarded.
URL : Path of the discard list file or the path of the file to be discarded.
flag : when URL indicates the preload list file, flag is 1
When URL indicates the file to be preloaded., flag is 0.. If flag is 2,it
instruct that all
the content loaded in the cache memory is discarded from the cache memory
return value: If the discard performing is successful, "true" is returned. If
the
discard performing fails, "false" is returned.
For example:
navigator. Discard ('http://www.holeywood.com/tom.htm',0) If the file to be
preloaded, which was retrieved from the Internet as addressing specified by
"http://www.holeywood.com/tom.htm", exists in the cache memory, discard the
file
from the cache memory.
4. navigator. Discard (URL, resType)
It is the API that discards the indicated file to be discarded from the second
21
CA 02530887 2002-09-27
memory 3. The used parameters specify the location information of the discard
list
file or the file to be discarded.
URL : Path of the discard list ale or the path of the file to be discarded.
resType = A type of the file to be discarded
return value: If the discard performing is successful, "true" is returned. If
the
discard performing fails, "false" is returned.
For example:
navigator. Discard ("dvd://dvd enav/a.htm", "text/xml") According to this, if
the
file which was read from the DVD 300 as addressing by "dvd://dvd enav/a.htm",
exists in the cache memory, discard the fife from the cache memory. The file
is a
text-based xml file.
navigator. Discard ("dvd://dvd enav/a.pld", "application/preload") According
to
this, if the files which is included d in the preload list file "dvd://dvd
enav/a.pld", exist
in the cache memory, discard the files. The file is the discard list file.
navigator.Discard ("http://www.holeywood.com/tom.htm","text/xml")
According to this, if the file which was retrieved from the Internet as
addressing by
"http://www.holeywood.com/tom.htm", exists in the cache memory, discard the
file
from the cache memory. The file is a text-based xml file.
The above-described embodiments explain the API implemented by
JavaScript. The same result can be obtained when the API is implemented by a
Java applet.
FIG. 14 is a reference diagram explaining the effect of the preloading
performed according to the present invention when the AV data and the markup
language document are recorded in the same order as that of FIG. 1.
FIG. 14 shows the occupancy of the first memory 2 that buffers the MPEG-
coded AV data and the occupancy of the second memory 3 that caches the markup
languagedocuments. With reference to FIGS. 1 and 14, with regard to loading
and
displaying of the AV data, the reader 1 seeks and reads the file STARTUP.htm,
and
the presentation engine 5 interprets the preload information included in the
fife
STARTUP.HTM and preloads the file A.HTM ~. Then, the file A.HTM ~ is
preloaded into the second memory 3. The loaded file STARTUP.HTM becomes
activated. Simultaneously, the AV data O selected by the presentation sequence
22
CA 02530887 2002-09-27
is loaded into the first memory 2 and starts to be displayed . Then, the AV
data QQ
is loaded and displayed. After the AV data p is buffered completely, the
reader 1
jumps to the position where the AV data ~ is recorded and starts to buffer the
AV
data ~. If the user requests the file A.HTM ~, the presentation engine 5
retrieves
and displays the file A.HTM ~ preloaded in the second memory 3. That is, the
reader 1 does not need to stop buffering the AV data ~ to seek the file A.HTM
from the DVD 300 and load it to the second memory 3. Therefore, the reader 1
can
perform the buffering seamlessly. When the reader 1 completes the buffering of
the
AV data O and jumps to the AV data ~, the amount of the data buffered in the
first
memory 2 may be consumed. However, since the amount of the data already
buffered is sufficient, buffered data insufficiency does not happen. That is,
in case
of the DVD which supports the interactive mode, if the DVD video and the
markup
language document need to be displayed synchronously (for example, when an
actor is on stage, his brief history is displayed together with the hismoving
pictures),
the reader 1 does not need to stop buffering the AV data to seek and read the
relevant markup language document since the markup language document is
already preloaded in the second memory 3.
The next drawings will describe the method for managing the second
memory 3 to perform preloading/discarding in a strict manner and the method
for
performing preloading in such a way that the content remaining in the first
memory 2
cannot be exhausted.
FIG. 15 is a detailed diagram of a part of the reproducing apparatus of FIG.
3.
With reference to FIG. 15, the second memory 3 includes a memory
management table 31 and a data 32. The memory management table 31 has the
information necessary to manage the data recorded in the data 32. In the data
32,
the markup language document which is preloaded is recorded. The presentation
engine 5 includes a JavaScript interpretation engine 51 and an execution
module 52.
23
CA 02530887 2002-09-27
The execution module 52 includes a preloadingldiscarding module 521 and a
garbage collection module 522. The garbage collection module 522 will be
explained later.
The JavaScript interpretation engine 51 according to the embodiment
invokes the API prepared in JavaScript. The preload/discard module 521 and the
garbage collection module 522 perform preloadingldiscarding garbage collection
respectively.
FIG. 16 and FIGS. 17A through 17F are memory maps explaining the
method of managing a memory management table 31 and a data 32 by performing
preloading, discarding, and garbage collection.
With reference to FIG. 16, the memory management table 31 includes the
status information of the file to be preloaded, the path of the stored file to
be
preloaded, the information on the data pointer, and the data size. "In use"
indicates
whether the data is used or not used. "Discardable" indicates whether the data
can
be discarded or not. "URL" indicates the path information, "data pointer"
indicates
the starting address of the data in cache memory space, and "size" indicates
the
data size. Currently, in the data 32, files A.HTM, C.HTM, and C.HTM are
loaded.
With reference to FIG. 17A, the file a.htm is in use. If the fifes B.HTM,
C.HTM , and D.HTM are preloaded, since the file A.HTM is in use, the "in use"
value
for the file A.HTM is 1. Because the other files are not open, their "in use"
values
are 0.
With reference to FIG. 17B, use of the file A.HTM is completed, and the tile
B.HTM becomes in use. Therefore, the "in use" values for the files A.HTM and
the
B. HTM are 0 and 1 respectively.
With reference to FIG. 17C, garbage collection of the file A.HTM is performed.
If garbage collection is pertormed, the file a.htm is discarded from the data
32, and
the file B.HTM, C.HTM, and D.HTMare realigned for memory compaction. The
"data pointer" value of the file a.htm is marked as -1, which means that the
relevant
file does not exist in the data 32.
With reference to FiG. 17D, the file F.HTMis in use. The file F.HTM is
stored in some position the file a.htm shown in FIG. 16C was stored in the
memory
management table 31. The "data pointer" value indicates the starting address
where the file F.HTM is recorded.
With reference to FIG. 17E, the file B.HTM, C.HTMand D.HTMare discarded.
24
CA 02530887 2002-09-27
Therefore, the "discardable" values for the filesB.HTM, C.HTM, and D.HTM are
changed to 1.
With reference to FIG. 17F, garbage collection of the file B.HTM, C.HTM, and
D.HTM are performed. Therefore, the "data pointer" values for filesB.HTM,
C.HTM
and D.HTMare -1. The files B.HTM,C.HTMand D.HTMthat are recorded in the data
32 are discarded and the remaining file F.HTMis realigned.
As above described, the second memory 3 can be managed effectively
through preloading/discarding and garbage collection.
FIG. 18 is a reference diagram showing a case where the AV data is loaded
into and exhausted in the first memory 2.
With reference to FIG. 18, for interval Tai or Ta2 of section "a" where a jump
to an angle block occurs, the AV data is only consumed without filling.
Therefore,
the AV data is reduced at the speed of Vo. The angle block includes the data
ofia
same scene that is shot from different angles. Once the data that is shot from
an
angle is selected, the data is reproduced, and one shot from the remaining
angles is
skipped. As a result, it is inevitable that a jump occurs in the angle block.
If the
jump is completed and the AV data is read, other data is buffered. As shown in
section "b", if the AV data is read and consumed at speeds of Vr and Vo
respectively,
the AV data is buffered at a speed of Vr-Vo. For section "c", if the markup
language
document is preloaded, the reader 1 stops reading the AV data, and the data is
consumed at the speed of Vo since the markup language document is preloaded.
For section "d", because AV data is buffered again, the AV data is buffered at
the
speed of Vr-Vo, just as in section "b". The horizontal dotted line indicates
the
minimum amount of AV data that is supposed to be buffered.
For successful buffering of the first memory 2 and preloading according to
the present invention (to prevent data insufficiency in the first memory), the
amount
of data remaining should be larger than that of the data which is reduced due
to the
preloading for section "c".
To guarantee a seamless reproduction, the reader 1 should read the file to
be preloaded as continuously as possible. Therefore, in the file system of the
reproducing medium, the data should be aligned in such a way that one PLD file
(file
to be preloaded) nests other PLD files as shown in FIG. 19 so that the content
of the
PLD file can be read seamlessly.
FIGS. 20A and 20B are outline diagrams of the DVD 300 containing the PLD
CA 02530887 2002-09-27
file of F1G. 19.
With reference to FIGS. 20A and 20B, the reader 1 buffers video file
VTSO_1.VOB in the second memory 3, and preloads the files A.HTM, A1.JPG, and
A2.JPG listed in the preload list file A.PLD and further prefoads the file
B.PLD, which
is the preload fist file, and buffers the video file VTSO_1.VOB.
Tj means the time of the access to the PLD file. That is, in Tj = Tj1 + Tj2,
Tj1 is the time taken to jump the video file from VTSO_1.VOB to the file
A1.JPG, and
Tj2 is the time taken to jump to the video file VTSO_1.VOB again after the
file B.PLD
is read. De indicates the size of the data of the PLD file. That is, for De =
De1 +
De2 + De3, De1, De2, and De3 indicate the sizes of the files A.HTM, A1.JPG and
A2.JPG, respectively. Tk indicates the internal jump time when the PLD file is
read.
That is, for Tk = Tk1 + Tk2, Tk1 indicates the time taken to jump from the
file A1.JPG
to the file A2.JPG, and Tk2 indicates the time taken to jump from the file
A2.JPG to
the file B.PLD.
The relationship between the access distance and the access time with
regard to AV data recorded in the disc can be set as follows. Here, N is the
number
of sectors.
Access 0 to to 5000to 10,000to 15,000to 20,000over 20,000
210
distance
Access 1.4xN 310 360 390 410 1500
time
(msec)
According to the present invention, the condition for preventing data
insufficiency in the first memory 2 can be indicated as follows.
[Formula 1]
Vo x Tp < (Vr-Vo) x (tN ecc x 2048 x 8 x 16/Vr) - (Vo x Ta) - Bs
Vo: The speed at which the AV data is consumed from the first memory 2 or
from the AV decoder 4.
Tp: The time taken to perform preloading in section "c".
Vr: The speed at which the data is read from the disc 300.
tN ecc: The number of ECC blocks that should be read before the PLD file is
read.
Ta: The total time taken to perform a jump in the angle block.
Bs: The minimum data size that should be secured in the first memory 2
26
CA 02530887 2002-09-27
(Here, a memory has 221 sectors as designated by the DVD-Video Spec. 1.0)
With reference to Formula 1, Vo x Tp indicates the amount of data that is
consumed due to preloading being pertormed in section "c". tN ecc x 2048 x 8 x
16
is the length (the number of sectors) of the data that is read in section "b".
Vr is the
speed at which the data is read. Therefore, tN_ecc x 2048 x 8 x 16/Vr is the
time of
section "b". That is, (Vr-Vo) x (tN ecc x 2048 x 8 x 16/Vr) indicates the
amount of
data that has increased in section "b". Vo x Ta indicates the amount of data
that is
consumed due to the angle block jump in section "a". Bs indicates the minimum
amount of data that should bebuffered. Tp indicates 2 x Tj + De/Vr + Tk. The
definitions of Tj, De, Vr, and Tk are described above.
Tp, which is the time taken to preload the PLD files designated in files
A.PLD,
B.PLD, and C.PLD of FIG. 19, can be calculated as follows.
Vr = 22Mbps,
Files (De=1611 KB) in A. PLD ; Tp=3600msec (=1500msec x 2+1611 KB x
8/22000000+0)
Files (De=2685KB) in B.PLD : Tp=4000msec (=1500msec x 2+2685KB x
8/22000000+0)
Files (De=269KB) in C.PLD : Tp=3100msec (=1500msec x 2+269KB x
8122000000+0)
If the files in A.PLD, B.PLD, and C.PLD should be used in order during the
reproduction of the video file VTS 01_1.VOB, the following values should be
calculated.
Let the Vo value in the buffering section of the video file VTS 01_1.VOB
before the files of A.PLD are read be Va.
Let the Vo value in the buffering section of the video file VTS 01_1.VOB
before the files of B.PLD are read be Vb.
Let the Vo value in the buffering section of VTS 01_1.VOB before the files of
C. PLD are read be Vc.
On the assumption that there is no jump such as the angle block jump in
each section and Bs has 221 sectors ('14 ECC blocks), if the relationship
between
the number of ECC blocks in each section and Va, Vb, and Vc is calculated, the
location where the files in A.PLD, B.PLD and C.PLD are read without
interruption of
the AV data can be found.
27
CA 02530887 2002-09-27
For example, on the assumption that Va is 8Mbps, Vb is 6Mbps, and Vc is
4Mbps, tN ecc can be calculated from Formula 1 as follows.
At least 187 ECC blocks should be read before files in A.PLD are read,
at least 140 ECC blocks should be read before files in B.PLD are read, and
at least 72 ECC blocks should be read before files in C. PLD are read.
FIG. 21 shows the status of the first memory 2 and the second memory 3
according to the above-described embodiments.
With reference to FIG. 21, when the file STARTUP.HTM is active, the amount
of data in the first memory 2 is increased at the speed of Vr-Va. If the files
of A.PLD
are preloaded, the amount of data in the first memory 2 is consumed at the
speed of
Va. If the files of A.PLD are preloaded completely and the file A.HTM is
active, the
amount of data is buffered increasingly at the speed of Vr-Vb. If the files of
B.PLD
are preloaded, the amount of data in the first memory 2 is consumed at the
speed of
Vb. If the files of B.PLD are preloaded completely and the file B.HTM is
activated,
the amount of the data is buffered increasingly at the speed of Vr-Vc. Here,
the
amount of the data is reduced drastically at the point where the preloading of
the
second memory 3 is completed because the PLD file is requested to be discarded
and garbage collection is performed.
FIG. 22 is a flowchart showing a recording method according to a preferred
embodiment of the present invention.
With reference to FIG. 22, a content creator identifies the speed at which the
PLD file is read in step 2201. In step 2202, the content creator finds out the
condition that enables the first memory 2 to perform relevant AV data
seamlessly.
The condition is described in detail above. The content creator records the
script
program code for preloading at the point meeting the identified condition in
step 2203.
That is, a relevant API is invoked to record the script program code in such a
way
that the AV data is preloaded seamlessly after minimum AV data is buffered in
the
first memory 2.
As described above, in a case where the AV data recorded in the information
storage medium such as DVD is reproduced and displayed through the markup
language document, the present invention relates to the information storage
medium
that includes the markup language document and prevents the interruption of
reproducing the moving pictures, and a reproducing apparatus and a reproducing
method. In addition, since the present invention can identify the type of the
files to
28
CA 02530887 2002-09-27
be preloaded and discarded, more effective preloading and discarding can be
performed.
29