1. Field
Methods and apparatuses consistent with exemplary embodiments relate to reproduction of a Blu-ray disc (BD)-based playlist, and more particularly, to a method and apparatus for reproducing a clip audio/video (AV) stream with an appropriate capacity or image quality based on a network environment between a server and a reproduction apparatus, and an information recording medium storing computer executable instructions for performing the method.
2. Description of the Related Art
In order to reproduce a Blu-ray disc (BD)-based playlist, three types of files are needed That is, a movie playlist file (xxxxx.mpls), a clip information file (zzzzz.clpi), and a clip AV stream file (zzzzz.m2ts) are needed. In general, the three types of files are stored in a read-only information storage medium such as a BD or in a readable/recordable non-volatile memory. However, for example, a progressive playlist may be reproduced by downloading a clip AV stream file from a contents providing server even if the clip AV stream file is not stored in an information storage medium. Also, even if all clip AV stream files corresponding to the entire section of the playlist have not been downloaded, it is still possible to reproduce the playlist.
In order to reproduce content on a network, the following process is performed. First, an application in a disk or memory (e.g., Blu-ray disc Java (BD-J) application) communicates with a server that stores content to download files of the above-mentioned three types (e.g., a movie playlist file, a clip information file, and a clip AV stream file). Among the files of the three types, some may be stored in a disk or a memory in advance. In general, the playlist file and the clip information file, which both have a relatively small capacity are downloaded first, and then the clip AV stream file which has a relatively large capacity is downloaded thereafter. While the playlist is being reproduced, the clip AV stream file which has not yet been completely downloaded, is continuously downloaded until it has been downloaded in its entirety.
According to the conventional art, a clip AV stream file described in a clip information file cannot be modified during reproduction of a playlist. If a network becomes unstable during reproduction of the playlist and a download speed of the clip AV stream file is degraded, a reproduction apparatus continuously downloads a clip AV stream file that is designated in the clip information file. If there is no data to be reproduced, a data starved event is generated, and there is no alternative to prevent the data starved event. Specifically, a data starved even occurs when the data is not ready to be reproduced.
The possibility of a data starved event is also increased due to multi-speed reproduction of the playlist. Even in a network in which reproduction of a playlist is supported for a normal speed, a download speed of a clip AV stream file in the network may not be sufficient for reproduction at double the normal speed.
A data starved event may be generated when a user modifies a reproduction position to a clip AV stream file that has not yet been received.
When a BD-J application receives a data starved event, a reproduction status of a playlist is paused to interrupt the reproduction. The data starved event may be addressed in various manners according to applications. For example, reproduction commands may be interrupted to return to a time point before they were given, or the reproduction may be resumed after a predetermined amount of data has been downloaded. However, in either case, if a data starved event is generated, the user's seamless watching of a video may be interrupted.
An exemplary embodiment provides a method and apparatus for reproducing network-based contents in a Blu-ray disc (BD)-based reproduction environment by using streaming instead of reproducing contents when the contents are completely downloaded, and an information storage medium storing computer executable instructions for performing the method.
According to an aspect of an exemplary embodiment, there is provided a method of reproducing a playlist by using a reproduction apparatus for an information storage medium, the method comprising: determining whether the playlist is a streaming playlist; when it is determined that the playlist is a streaming playlist: receiving stream data from a server; generating, based on preset standards, a clip AV stream file from the received stream data, and storing the generated clip AV stream file; and reproducing the stored clip AV stream file, wherein the stored clip AV stream file is reproduced based on a network status between the server and the reproduction apparatus.
The preset standards may comprise at least one of a size of the generated clip AV stream file, a maximum number of generated clip AV stream files, and a file naming rule that is shared in the reproduction apparatus.
The playlist may comprise at least one play item, and the play item may include information about a directory where the generated clip AV stream file is to be stored, and the generated clip AV stream file may be stored in the directory based on the information.
The reproducing may comprise reproducing the stored clip AV stream file according to a reproduction sequence.
A stored clip AV stream file which is completely reproduced may be removed from the directory. The directory may be located in a volatile memory.
The method may further comprise: pausing reproduction of the playlist when a data starved event is generated, wherein the data starved event indicates that a clip AV stream file to be reproduced has not yet been prepared in the directory; and resuming the reproduction of the playlist after the clip AV stream file to be reproduced is prepared in the directory.
The method may further comprise: receiving an input to modify a reproduction position of the playlist; when a clip AV stream file corresponding to the modified reproduction position is stored in the directory, reproducing a clip AV stream file corresponding to the modified reproduction position; and removing clip AV stream files corresponding to temporal positions before the modified reproduction position, from the directory.
The method may further comprise: receiving a command for a multi-speed reproduction of the playlist; when the command for the multispeed reproduction of the playlist is received, pausing reproduction of the playlist; receiving stream data for multi-speed reproduction from the server; and sequentially reproducing clip AV stream files for multi-speed reproduction which are generated from the received stream data for multi-speed reproduction.
The method may further comprise: receiving a command for multi-speed reproduction of the playlist; when the command for multi-speed reproduction is received, performing multi-speed reproduction of the clip AV stream file stored in the directory; receiving from the server stream data for multi-speed reproduction of a second clip AV stream file corresponding to a temporal position after the clip AV stream file stored in the directory; generating a multi-speed reproduction clip AV stream file from the received stream data for the multi-speed reproduction of the stored clip AV stream file and storing the generated multi-speed reproduction clip AV stream file in the directory; and when multi-speed reproduction of the multi-speed reproduction clip AV stream file stored in the directory is completed at a temporal point when the command for multi-speed reproduction is received, seamlessly reproducing the stored clip AV stream file for multi-speed reproduction.
According to an aspect of another exemplary embodiment, there is provided an apparatus for reproducing a playlist, comprising: a reader which reads a title of an index file for executing an application, from an information storage medium; a controller which controls the application and determines whether the playlist is a streaming playlist; a communicator which receives stream data from a server in response to determining that the playlist is a streaming playlist; a storage which stores a clip AV stream file that is generated from the received stream data based on preset standards, via the executed application; and a reproducer which reproduces the stored clip AV stream file, wherein the stored clip AV stream file is reproduced according to a network status between the server and the apparatus for reproducing the playlist.
The playlist reproduction apparatus may further comprise an inputter which receives a command related to reproduction of the playlist, wherein when the inputter receives a command that modifies a reproduction position of the playlist, the application determines whether a clip AV stream file corresponding to the modified reproduction position of the playlist is prepared in the directory in order to change a reproduction state of the playlist.
According to an aspect of another exemplary embodiment, there is provided an information storage medium for reproducing audio/video (AV) data, comprising: a title of an index file which executes an application; and a playlist including at least one play item and information indicating whether the playlist is a streaming playlist, wherein the play item includes information about a directory where a clip AV stream file is to be stored, and the application controls reproduction of a clip AV stream file stored in the directory.
The above and/or other aspects will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings in which:
Hereinafter, exemplary embodiments will be described in detail with reference to the attached drawings.
As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items. Expressions such as “at least one of,” when preceding a list of elements, modify the entire list of elements and do not modify the individual elements of the list.
The reproduction apparatus 600 reads a playlist from the information storage medium 400 and receives a file needed to reproduce the playlist from the server 500 at the same time. In general, the file is a clip AV stream file. However, the playlist may not be necessarily included in the information storage medium 400, but may be received from the server 500. Data read from the information storage medium 400 will be described later. The reproduction apparatus 600 reproduces the playlist, and a decoded clip AV stream file is displayed on the display apparatus 300. The display apparatus 300 can be for example, any kind of television monitor or computer monitor capable of displaying a clip AV stream file.
The index file such as Index.bdmv 411 includes at least one title. Each title designates one object, and each object is designed to perform a predetermined command. When an object corresponds to a BD-J object, a corresponding title may be a BD-J title. Also, a title may be classified as both a movie title and an interactive title. When a title that designates a BD-J object is executed, at least one application related to the title may be automatically executed. Even if a playlist to be reproduced is not stored in the information storage medium 400, the playlist may be downloaded from a server via an application. Also, while one application is automatically executed in relation to a title, another application for reproduction of a playlist may also be downloaded from a server. In sum, a playlist to be reproduced may be included in the information storage medium 400 or in the server, while an application for controlling reproduction of the playlist is included in the information storage medium 400. Alternatively, both the playlist and the application for controlling reproduction thereof may be located in the server. The information storage medium 400 may be sufficient for storage when it is applied in an application for controlling reproduction of contents of a playlist, a title that is accessible to the playlist, and an application related to the title. Below, a playlist included in the information storage medium 400 will be described as an example.
When a playlist to be reproduced is designated based on the information storage medium 400 or via another path, streamed data corresponding to the playlist is downloaded from the server 500. According to an exemplary embodiment, in order to reduce the probability of a data starved event, image quality or capacity of a stream that is downloaded is modified according to a network environment between the server 500 and the reproduction apparatus 600. For example, if a download speed is lowered to be less than a predetermined reference speed, stream data of low image quality is received. When it is determined that the download speed is sufficient enough so that high quality stream data may be received while simultaneously reproducing a playlist, stream data of a high image quality may be received. Relationships between a download speed and stream data to be received may be varied.
Referring back to
However, according to an exemplary embodiment, if a network status is degraded to a level at or below a predetermined reference value, stream data to be downloaded from the server 500 is modified. For example, clip AV stream file 01005.m2ts 135 is provided by downloading a data stream having its original content, but at a lower image quality. In this manner, a data starved event may be reduced. In addition, even if there is no change in a network environment, if the amount of time to reproduce all of the clip AV stream files that are completely downloaded has ended, and a currently reproduced reproduction position runs out before all of clip AV stream files have been downloaded, that is, if a data starved event is anticipated, a small capacity version of the clip AV stream file which is about to be downloaded is selected for download to thereby prevent generation of a data starved event. This is useful if a multi-speed reproduction command is input so that a reproduction speed of a playlist is increased above that of a normal (basic) reproduction speed. However, stream data for multi-speed reproduction of the playlist may also be received from the server 500. According to the exemplary embodiment, a user may seamlessly watch an image although there may be a slight change in image quality while watching.
Referring back to
In the first method, when reproduction of the playlist is started, stream data of a lowermost image quality or a lowermost capacity is first downloaded from the content providing server 500 over the entire reproduction section. When downloading has been completed, stream data having a relatively high image quality or high capacity from a later position than the current reproduction position is downloaded, and used to replace data of a low image quality or low capacity that has been downloaded in advance. According to this method, the probability of having to pause reproduction may be effectively reduced even in situations when a reproduction position is changed during the reproduction.
However, even according to this first method, if a user changes a reproduction position not long after starting the reproduction, a data starved event may still occur. Furthermore, the same may occur under a poor network environment. In case of the second method, if a command for modifying a reproduction position is received, first, stream data of the lowermost image quality or capacity is received regardless of the network environment in order to resume reproduction, and after the reproduction has been conducted for a predetermined reference time, stream data of an appropriate image quality or capacity may be received based on the network environment.
The server 500 receives a request for data from the reproduction apparatus 600 via the communicator 530. The communicator 530 may continuously monitor a network status by, for example, an application that is driven in the reproduction apparatus 600. The central processor 520 may determine data to be transmitted to the reproduction apparatus 600 based on the network status to determine which of the stream data stored in the storage 510 is to be transmitted to the reproduction apparatus 600. The determined stream data is transmitted to the reproduction apparatus 600 via the communicator 530. However, the central processor 520 may also transmit requested data to the reproduction apparatus 600 regardless of the network status, should either stream data of a predetermined image quality or capacity or stream data regarding multi-speed reproduction be requested by the reproduction apparatus 600.
The communicator 620 performs data transmission and reception with respect to the server 500. In detail, the communicator 620 transmits a request for data needed by the reproduction apparatus 600 or information regarding a network environment. Also, the communicator 620 receives stream data from the server 500. The communicator 620 may be divided according to functions. For example, the communicator 620 may be formed of a transmitter and a receiver (not shown).
The controller 630 controls an application for reproducing a playlist. In addition, the controller 630 may control other hardware elements of the reproduction apparatus 600. The controller 630 controls an application to measure characteristics of a network environment such as a download speed between the server 500 and the reproduction apparatus 600 or directly transmits an input for controlling playlist reproduction during a user input received by the reproducer from the inputter 660, or transmits an input to the application so that a predefined operation in the application may be transmitted to the reproducer 650. Also, data received from the server 500 may be generated as a clip AV stream file that is suitable for reproduction of a playlist and stored in the storage 640.
The storage 640 is not limited to any particular memory type. Memories such as a hard disk drive (HDD), a solid-state drive (SDD), and a dynamic random access memory (DRAM) may be used as the storage 640. However, according to the exemplary embodiments, a volatile memory such as a DRAM may be used to store clip AV stream files, and clip AV stream files which are completely reproduced may be removed from the volatile memory as necessary to efficiently use data space and system resources.
The reproducer 650 reproduces content in a playlist. A playback control engine that modifies a reproduction status and/or a decoder that decodes a clip AV stream file and displays the contents may be included in the reproducer 650.
The inputter 660 receives a user input. In general, a user input in a BD-based reproduction apparatus is input via a remote control, and a command for modifying a predetermined reproduction status may be interpreted differently according to whether the command is directly transferred to a playback control engine or if the command is indirectly transferred via an application. For example, upon receiving a forward skip (Fwd skip) key, the playback control engine executes a command for moving to a next chapter and reproducing contents on a playlist. However, if a forward skip input is transmitted to an application that is executed in a BD-J interactive title, a command for moving from a current menu item to a next menu item may be executed. Also, when the playback control engine receives a chapter search command, in general, a reproduction position is moved to start reproduction at a designated chapter. When reproduction is conducted in this manner, probability of a data starved event is high. However, when a chapter search command is transmitted to an application, a data starved event may be prevented if the application does not move the reproduction position to a designated chapter immediately after receiving a command but instead first prepares a clip AV stream file by downloading stream data at a corresponding reproduction position (i.e. generates a buffer), followed by movement of the reproduction position to the designated chapter and then starting reproduction.
That is, when reproducing a playlist, in order to handle an input related to reproduction or generation of an event indirectly by using the controller 630 or an application that is controlled by using the controller 630 (i.e. not directly by the playback control engine or the reproducer 650), a corresponding playlist is to be distinguished from other playlists that are reproduced in general.
However, according to the conventional art, a clip AV stream file has to be a file designated in a clip information file, and thus even if clip AV stream files of different image qualities are provided based on a network environment according to the above-described methods, the reproducer 650 may still not be able to reproduce a playlist. Accordingly, a new method of reproducing a clip AV stream file is provided. According to the exemplary embodiment, the reproducer 650 may store the stream data received from the server 500 as reproducible files in the storage 640. The size, maximum number, and name of clip AV stream files that are to be stored may be determined by a BD-J application. However, since it is sufficient when the reproducer 650 is able to reproduce a clip AV stream file that is generated and stored by an application, then predetermined standards such as the naming rule of file names are also sufficient if they can be shared between the reproducer 650 and the controller 630 or between the playback control engine and the application.
Data transmitted from the server 500 may be in a form of a clip AV stream file, that is, a file having an extension in the form of m2ts. That is, only a file name or a storage location of stream data transmitted from the server 500 is adjusted by an application but the stream data itself may be reproduced by using the reproducer 650. However, the form of the clip AV stream file is not limited thereto, and the form of stream data stored in the server 500 is also not limited. The form of the stream data is sufficient when stream data is in a form that may be generated as a clip AV stream file of a form that is reproducible by the reproduction apparatus 600 and may be shared with the playback control engine 920 and stored in the storage 640.
The application 910 generates the received stream data as a clip AV stream file according to predetermined standards and stores the same in a directory of the storage 640. The directory 640 refers to the directory designated by the play item according to
In operation 1040, the reproduction apparatus 600 generates a clip AV stream file from the received stream data according to predetermined standards and stores the clip AV stream file in a predetermined directory. The stored clip AV stream file is reproduced according to a user input or an operation of the application in operation 1050.
According to an exemplary embodiment, by receiving data of an appropriate capacity based on a network environment, probability of a data starved event may be effectively reduced.
Also, according to an exemplary embodiment, even when a reproduction position of a playlist is changed so that reproduction is paused, reproduction may be quickly resumed.
Also, according to an exemplary embodiment, disadvantages in terms of reproduction of a conventional progressive playlist may be compensated. That is, not only clip AV stream files that are designated in advance are reproduced but clip AV stream files may be modified according to a network environment or a user input so as to reproduce the clip AV stream files. Also, portions of a clip AV stream file that are not downloaded may also be reproduced by using a BD-J application.
The block diagrams disclosed in an exemplary embodiments may be construed by a person of ordinary skill in the art in a form for conceptually expressing circuits for implementing the principles of an exemplary embodiment. Further, it is obvious to a person of ordinary skill in the art that a flowchart, a status transition view, a pseudo-code, or the like, may be substantially expressed in a computer-readable medium to denote various processes which can be executed by a computer or a processor whether the computer or the processor is clarified. Thus, the foregoing exemplary embodiments may be created as programs which can be executed by computers and may be implemented in a general digital computer operating the programs by using a computer-readable recording medium. The computer-readable medium may include storage mediums such as a magnetic storage medium (e.g., a ROM, a floppy disk, a hard disk, or the like), an optical reading medium (e.g., a CD-ROM, a DVD, or the like).
Functions of various elements illustrated in the drawings may be provided by the use of dedicated hardware as well as by hardware which is related to appropriate software and can execute the software. When provided by a processor, such functions may be provided by a single dedicated processor, a single shared processor, or a plurality of individual processors which can share some of the functions. Also, the stated use of terms “processor” or “controller” should not be construed to exclusively designate hardware which can execute software and may include digital signal processor (DSP) hardware, a ROM for storing software, a RAM, and a non-volatile storage device, without any limitation.
In the claims, the elements for performing particular functions may cover a certain method performing a particular function, and such elements may include a combination of circuit elements performing particular functions, or software in a certain form including firmware, microcodes, or the like, combined with appropriate circuits to perform software for performing particular functions.
Designation of ‘an exemplary embodiment’ and various modifications of such an expression may mean that particular features, structures, characteristics, and the like, in relation to this exemplary embodiment are included in at least one exemplary embodiment. Thus, the expression ‘an exemplary embodiment’ and any other modifications disclosed throughout the entirety of the disclosure may not necessarily designate the same exemplary embodiment.
In the specification, in a case of ‘at least one of A and B’, the expression of ‘at least one among ˜’ is used to cover only a selection of a first option (A), only a selection of a second option (B), or a selection of both options (A and B). In another example, in a case of ‘at least one of A, B, and C’, the expression of ‘at least one among ˜’ is used to cover only a selection of a first option (A), only a selection of a second option (B), only a selection of a third option (C), only a selection of the first and second options (A and B), only a selection of the second and third options (B and C), or a selection of all of the three options (A, B, and C). When even more items are enumerated, it will be obvious to a person of ordinary skill in the art that those items can be definitely extended.
While exemplary embodiments have been particularly shown and described, it will be understood by one of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the inventive concept as defined by the following claims. The exemplary embodiments should be considered in a descriptive sense only and not for purposes of limitation. Therefore, the scope of the inventive concept are defined not by the detailed description but by the following claims, and all differences within the scope will be construed as being included in the inventive concept.
Number | Date | Country | Kind |
---|---|---|---|
10-2012-0098854 | Sep 2012 | KR | national |
This application claims priority from Korean Patent Application No. 10-2012-0098854, filed on Sep. 6, 2012 in the Korean Intellectual Property Office, and U.S. Provisional Application No. 61/657,112, filed on Jun. 8, 2012 in United States Patent and Trademark Office, the disclosures of which are incorporated herein in their entirety by reference.
Number | Date | Country | |
---|---|---|---|
61657112 | Jun 2012 | US |