Until now, data-intensive content such as full-length movies has been stored on DVD discs and displayed on devices such as laptop computers, but it has not been stored and displayed with high quality (e.g., DVD quality or better) on miniature hand-held devices such as mobile phones and personal data assistants (PDAs). One of the problems has been to develop a presentation format that provides a fast and efficient system for accessing the content of an optical disc and playing the audio and video content of the disc back at a high level of reproduction quality, without placing undue demands on the microprocessor in the device.
This invention overcomes these problems.
In accordance with this invention, an optical disc contains a Description File—preferably in XML (Extensible Markup Language), a Control Package File and one or more Presentation Package Files. The XML Description File contains general information about the content of the optical disc, menu information and playlist information. The playlist information contains the names and locations of playback items-Presentation Package Files and the Control Package File. A Presentation Package File contains content (e.g., a movie) that is to be played back. The Control Package File contains a group of graphical, audio or video objects that are used in compositing a menu screen that allows the user to select another menu or a Presentation for playback. The menu screen typically contains buttons that the user may select to trigger actions such as beginning the playback of a presentation or moving on to other screens.
A player application, which may be in the form of software or hardware or both, initially reads the general information and then proceeds to the playlist information, which may point the player application to a Presentation Package File. If the player application is directed to a Presentation Package File, the player application plays back the content of the file or a selected portion thereof. If the player application is not directed to a Presentation Package File, the player application parses the menu information section of the XML Description File and in response uses the objects in the Control Package File to composite a menu screen. The user may interact with the menu or a series of menus to select a Presentation Package File.
The logical data structure defines the data zone of the optical disc in such a way that the data that describes the content of the disc is located near the beginning of the data zone whereas larger files, such as Presentation Package Files, are located closer to the end of the data zone. This increases the efficiency of data access by the player application.
The XML Description File uses a Uniform Resource Identifier (URI) to make sure that the player application references data only in the Control Package File in compositing menus, ensuring that the player application does not search for files in other locations when compositing menus. This minimizes seek times, load times and network connectivity failures.
The player application is responsible for providing only a limited set of application program interface (API) commands, increasing efficiency and reducing the chances of incompatibilities between commands.
The menu information section of the XML Description File is subdivided into data for different display sizes and aspect ratios to ensure that the menus shown on a display are appropriate for the size and aspect ratio of the display.
The video, audio and subtitle data in a Presentation Package File are interleaved into blocks corresponding to a predetermined time interval (e.g., one second). During playback, the audio and subtitle data (if any) are synchronized to the video track, which functions as the master timing track. The player application is capable of playing back multiple audio channels.
To ensure that none of the space for vertical data on the disc is wasted when the source aspect ratio is greater than 16:9, a variable horizontal distortion factor is used to record the data on the disc.
Subtitles are rendered using text data in the Presentation Package File along with font format files in the Control Package File. In contrast to using image files, this reduces the amount of data needed to display subtitles and allows the user to vary the features (color, size, etc.) of the subtitles. This is particularly useful for sight-impaired users.
A disc according to this invention is played in a device that contains an optical disc drive and a software player environment which is capable of playing back content stored on the disc. Alternatively, the device may contain an optical disc drive and a hardware playback environment. In one embodiment, disc drive is housed within a mobile phone and the content comprises entertainment content such as a full-length movie. In other embodiments the disc drive may be housed within other types of devices, such as PDAs, and the disc may contain other types of content, such as educational content.
A block diagram of an optical drive 70, a battery 75 and a CPU/memory 80 inside mobile phone 10 are shown in
The optical controller section 602 also contains a voltage regulator 608, a flash memory 610, a static random-access memory (SRAM) 612, a motor driver IC 614 and a laser driver IC 616. Motor driver IC 614 and laser driver IC 616 receive control signals from the optical controller IC 606. Voltage regulator 608 is powered by a direct connection 618 to battery 75 and is controlled by an on/off control line that is connected to CPU/memory 80 via bus 600.
The other major component of optical drive 70 is pick-up module 604. Pick-up module 604 includes a media detect switch 620, an opto-electric IC and forward photodiode IC (OEIC/FPIC) 622, coarse tracking control circuitry 624, fine tracking control circuitry 626, focus control circuitry 628 and spindle motor control circuitry 630.
The digital controller IC within optical controller IC 606 includes the servo digital signal processor (DSP) required to implement the servo/seek functions of the optical disc drive, the microprocessor required to control the disc drive and the interface between the disc drive and mobile phone 10, the analog-to-digital (A/D) and digital-to-analog (D/A) converters required to interface with optical pick-up module 604, the read-back channel, the encoder-decoder (EnDec), the error correction circuitry (ECC), the media detect switch, and the physical format circuitry.
The front-end processor within optical controller IC 606 includes the analog circuitry required to interface the electronics within the pick-up module 604, such as the OEIC/FPIC 622, with the digital controller IC. The front-end processor also contains the analog electronics required to control motor driver IC 614 and laser driver IC 616 in addition to analog equalizers for the data channel.
Flash memory 610 contains the operating software (firmware) for the microprocessor within optical controller IC 606. SRAM memory 612 can be used to buffer the data being read from optical disc 400.
Motor driver IC 614 is required to drive the carriage drive (coarse tracking) motor 370, the fine servo motor 500, and the motor in spindle assembly 50.
The user begins the process by opening the door 20 and inserting cartridge 34 into mobile phone 10. This is reflected in box 302 of
The optical disc within cartridge 34 contains a basic Description File, which in this embodiment is in Extensible Markup Language (XML). Mobile phone 10 attempts to read the XML Description File (box 310). If the XML Description File is not present (box 311), the player application does not process the content (box 312).
In another embodiment the optical drive reports the type of content stored on the optical disc as identified by flags in the lead-in portion of the disc. If the disc is marked to contain the type of content specified, the optical drive reports this information to the host device.
In the embodiment described in
The player application then begins to parse the XML Description File (box 318). The XML Description File contains a number of “Presentations.” Upon parsing the XML Description File, the player application determines whether any of the Presentations has been marked as the default Presentation (box 320). If one of the Presentations has been marked as the default Presentation, the player application requests the Package File associated with the default Presentation (box 322). If no Presentation is marked as default, the first Presentation listed in the XML Description File is considered the default, and the player application requests a Package File associated with the first Presentation (box 324). In either case, the optical drive 70 responds to the request by sending the requested Package File, which is stored on the disc (box 326).
Next, the player application determines whether the Package File is a Presentation Package File or a Control Package File, as identified by the file name extension (boxes 328, 330). If the package file is a Presentation Package File, the player application analyzes the structure of the file to determine whether it can be read (boxes 332, 334). If the file is encrypted or otherwise unreadable, the player application initiates a decryption procedure (e.g., a Copy Protection for Pre-recorded Media (CPPM) decryption process, as described by the 4C Entity, LLC.) (box 336). The player application then determines whether the decryption was successfully initiated (box 338) and, if so, the player application proceeds to decrypt the data in the file (box 340). If the decryption was not successful, the player application causes an error signal to be displayed (box 342) and stops (box 344).
Once enough of the file has been decrypted the player application analyzes the file to determine its structure (box 332). With the data decrypted, the player application confirms that the file is comprehensible (box 334) and then determines whether subtitle data are present in the file and if the player application has been instructed by the user to activate a subtitle (box 346). Depending on the answer to this question, the player application either demultiplexes blocks containing one second of audio and video data (box 348) or demultiplexes blocks containing one second of audio, video and subtitle data (box 350) and in either case decodes and synchronizes the data (boxes 353, 354) and presents them to the user (box 356).
When the one-second blocks of data have been played back, the player application determines whether there are any remaining interleaved data in the Presentation Package File (box 358) and, if so, whether the time on the XML Description Playback Timer (described below) has elapsed (box 360). If the time on the XML Description Playback Timer has not elapsed, the above-described analysis, decoding and synchronization processes (boxes 332, 334, 346, 348, 350, 352, 354 and 356) are repeated on additional one-second blocks of audio, video and (optionally) subtitle data.
This cycle continues to repeat until either there is no remaining data in the Presentation Package File (box 358) or the time on the XML Description Playback Timer has elapsed (box 360). When either of these conditions is satisfied, the player application determines whether the XML Description File contains an On Completion Command (box 362). Typically, the On Completion instruction specifies another Presentation that is to be accessed (box 364). If so, the player application requests the Package File of the identified Presentation. The optical drive sends the requested Package File to the player application and the player application repeats the process, beginning with the determination of the Package File type (box 328). If there is no On Completion Command, the player application determines whether the XML Description File contains additional Presentations and if so, the player application requests the Package File of the next Presentation listed. The optical drive sends the requested Package File to the player application and the player application repeats the process, beginning with the determination of the Package File type (box 328). If there are no additional Presentations listed in the XML Description File, the player application repeats playback of the current Package File, beginning with the analysis of the structure of the Presentation Package File (box 332). This process continues uninterrupted until the user stops playback.
Referring back to box 330 in
The player application identifies the default Screen of the Menu Information section (box 370). A screen may contain graphic, video and audio objects. These objects are referenced by the XML Description File, and the file associated with each object is stored in the Control Package File. Upon parsing the default Screen, the player application analyzes the structure of the Control Package File (boxes 372, 374). If the Control Package File is encrypted or otherwise unreadable, the player application initiates a decryption process (box 376). If the decryption process is successfully initiated (box 378), the player application begins to decrypt the data (box 380) and analyzes the structure of the Control Package File (box 372). If the data in the Control Package File cannot be decrypted, the player application generates an error message and stops (boxes 381, 383).
The player application analyzes the structure of the file to determine whether it can be read (box 372). If the file is encrypted or otherwise unreadable, the player application initiates a decryption procedure (e.g., a Copy Protection for Pre-recorded Media (CPPM) decryption process, as described by the 4C Entity, LLC.) (box 376). The player application then determines whether the decryption was successfully initiated (box 378). If the decryption was not successful, the player application causes an error signal to be displayed (box 381) and stops (box 383). If the decryption was successful, the structure of the Control Package File is analyzed to allow the player application to locate the files referenced by the Screen and stored in the Control Package File (box 382). The player application then requests the first file referenced by the current Screen (box 384), and optical drive 70 responds by sending the file to the player application (box 386). For each additional file referenced by the Screen (box 387), the player application requests the appropriate file from the optical drive (box 388). Once each file of the Screen has been received, the player application decrypts (if applicable) and decodes the files referenced by the Screen (based on their file name extensions) (box 389). Once the files in the Screen are comprehensible, the player application uses the Screen layout description to composite the Screen for presentation to the user (boxes 392, 393).
A Screen typically provides a graphical interface that allows the user to obtain access to at least one Presentation Package File, activation of alternate audio and/or subtitle tracks for a Presentation Package File and potentially to additional Screens. Objects defined in a screen may have actions associated with them that instruct the player application. The user has the option of instigating these actions by means of navigating through the objects of the Screen and selecting one. These objects are referenced by the XML Description File, and the file associated with each object is stored on the disc. The player application requests the files referenced by the screen. Once each file of the screen has been received by the player application, the player application decrypts (if applicable) and decodes the file and begins to use the screen layout description to composite the screen for presentation to the user on display 14 or on an external display with the video signal transmitted through an analog or digital video output port. Thus screens are built from the definition listed in the XML Description File and the graphic, audio and video objects stored in the Control Package File on the disc.
Ultimately, the user initiates playback of the main presentation by means of instigating that action via the graphical interface provided by the Menu Information Screen description (box 394). In response, the player application requests the Presentation Package File associated with the user's request (box 395), and the playback process beginning with box 332 in
To summarize, the Screens of a Menu provide the user with control over the playback of Presentation Package Files. Screens are built from the definition listed in the XML Description File and the graphic, audio and video objects stored in the Control Package File. Presentation Package Files contain audio, video and (optionally) subtitle data that is presented to the user sequentially.
With that overview, the aspects of the invention will now be described in greater detail.
The XML Description File contains general information, file locations, menu layout and functionality and video/audio presentation information for the content stored on the disc. The basic XML Description File contains three types of information:
The General Information section is provided to allow a content owner to easily identify the content associated with a given XML Description File, for example, the title of the main content and a copyright notice.
The Playlist Information section is provided to allow the player application to locate the Control Package File and any Presentation Package Files. Additionally, time code information can be supplied to allow the player application to locate specific sections within a Presentation Package File for playback, and subtitle information can be supplied to associate a set of subtitle text data contained within the Presentation with a font format file contained within the Control Package File.
The Menu Information section is provided to allow the player application to present an organized system of access control to the user in the form of a graphical interface. This graphical interface, for example, allows a user to select a presentation to view, to specify whether an alternative audio track should be used and which one, to specify whether a subtitle track should be used and which one, and to access a sub-menu.
When the optical disc 42 is inserted into a disc drive, the player application first reads the General Information section 402 which, as described above, contains generally descriptive information of the content stored on the disc, such as the full title and a copyright notice. The player application then proceeds to the Playlist Information section 404. If no Presentation is designated as the default, the player application proceeds to the first Presentation, in this case Presentation A shown in
Alternatively, Presentation B could be designated as the default, in which case the player application would proceed first to Presentation B. As shown in
At some point the player application could receive a command to go to Presentation C. As a result, the player application would proceed to Presentation C which, as shown in
The Logical Data Structure of disc 42 is illustrated in
A backup copy 46 of the XML Description File 40 is stored in a sub-zone that is at least one error correction code (ECC) block removed from the original XML Description File 40. This increases the likelihood that either XML Description File 40 or the backup copy 46 will be accessible by the player application with no read errors.
If the content of disc 42 is encrypted, a sub-zone containing the decryption file(s) (e.g., CPPM) may be included between the backup copy 46 and the Presentation Package Files 48 and 49.
As described above, access to the data on the disc is controlled and defined by the XML Description File. The XML Description File is normally generated by the owner of the content on the disc, which is stored in the Presentation Package Files. To ensure that discs designed by different content owners are compatible with a single player application, the structure of the XML Description File is limited to a specific series of elements and attributes. The elements and attributes in the XML Description File must be in accordance with and valid to a master XML schema. This ensures that the parsing engine of the player application for the XML Description File will have full comprehension of the elements and attributes of the XML Description File. A content owner can therefore create an XML Description File and validate it to the master XML schema prior to committing the XML file to the replicated discs while ensuring that there are no errors due to the invalid use of any elements or attributes.
A single XML document, named CL1description.xml, is located at the root of the disc file system. The CL1description.xml document is created during content authoring and may be required to be validated against a schema document. Preferably, the schema document is valid to the W3C XML Schema, which can be found at http://www.w3.org/2001/XMLSchema.
A document tree of the elements and attributes in the XML master schema is illustrated in
As described above, the graphic, audio and video data files that are resources of a menu (Menu Resource Files) are stored in the Control Package File. To enable the player application to access these data files independently from any other data files stored in the Control Package File, a Uniform Resource Identifier (URI), as defined in URI, RFC3986, is used in the XML Description File. These files are referenced according to the URI syntax and the identification syntax as defined in section 8.44.7 of the ISO 14496:2005 ISO Base Media File Format specification. The function of the URI is to exclusively reference data contained in the Control Package File. This limitation ensures that the player application will not need to search for data files in variable locations, such as locations on a network. This minimizes seek times, load times and network connectivity failures.
An example of a URI referencing a Portable Network Graphic (PNG) file located in the Control Package File is as follows:
file:///disc/CPACK/CL1.cpack#item_name=sunshine.png
This URI refers to the sunshine.png file that is stored within the CL1.cpack file in the CPACK directory on the disc.
A limited set of application program interface (API) commands is defined for use in an XML Description File. By limiting the set of available commands, the player application is responsible for providing a limited set of functionality, and the possibility of incompatibilities between commands is lowered. The commands are play, playReturn, show and setTrack:
play( )
The play( ) command is used to start playback from the beginning of a Presentation or at the start of a Segment of a Presentation. The play( ) command applied to a Presentation will continuously playback the Presentation from the 00:00:00 timecode position until the timecode position reaches the Presentation duration value or until the end of available source content for the Presentation. The play( ) command applied to a Segment will continuously playback the Presentation from the startTime timecode value of the Segment until the timecode position reaches the Presentation duration timecode value or until the end of available source content for the Presentation. Once the playback is complete, the player application will begin playback of the next Presentation, using the first Presentation in the Playlist if no further Presentations exist.
a) If the specified Presentation id does not match an existing Presentation the player application is not required to do anything.
b) If the specified Segment id does not match an existing Segment of the specified Presentation, playback of the Presentation shall commence as if the play( ) command had been applied to the Presentation.
c) If a player application returns to the Menu during playback, the next play( ) command of the same Segment of a Presentation (or Presentation if no Segment was previously specified) prior to playback of any other Segment, playback of any other Presentation, disc ejection, player application stop directive or player application power cycle will resume playback from the point at which the player application returned to the Menu. When applicable, this will override playback from the 00:00:00 timecode or the startTime timecode.
Presentation id Required. The id attribute value of the Presentation which is the target of the play( ) command.
Segment [Segment id] Optional. The id attribute value of the Segment within the Presentation which is the target of the play( ) command.
Disc.Playlist.Presentation[‘Main Video’].play( );
Begins playback of the ‘Main Video’ Presentation from the 00:00:00 timecode position (unless resuming). Playback continues until the timecode position reaches the Presentation duration value or the end of the available Presentation source content. The player application then goes to the default Screen of the Menu which was active when playback was initiated.
playReturn( )
The playReturn( ) command is used to start playback from the beginning of a Presentation or at the start of a Segment of a Presentation. The playReturn( ) command applied to a Presentation will continuously playback the Presentation from the 00:00:00 timecode position until the timecode position reaches the Presentation duration value or the end of the Presentation source content. The playReturn( ) command applied to a Segment will continuously playback the Segment from the startTime timecode value of the Segment until the timecode position reaches the endTime timecode value of the Segment. Once the playback is complete, the player application will return to the Screen which activated playback of the Menu which was active when playback was initiated.
a) If the specified Presentation id does not match an existing Presentation the player application is not required to do anything.
b) If the specified Segment id does not match an existing Segment of the specified Presentation, playback of the Presentation shall commence as if the playReturn( ) command had been applied to the Presentation.
c) If a player application returns to the Menu during playback, the next playReturn( ) command of the same Segment of a Presentation (or Presentation if no Segment was previously specified) prior to playback of any other Segment, Presentation, disc eject or player application power cycle will resume playback from the point at which the player application returned to the Menu. When applicable, this will override playback from the 00:00:00 timecode.
Syntax:
Presentation id Required. The id attribute value of the Presentation which is the target of the playReturn( ) command.
Segment [Segment id] Optional. The id attribute value of the Segment within the Presentation which is the target of the playReturn( ) command.
Disc.Playlist.Presentation[‘Main Video’].playReturn( );
Begins playback of the ‘Main Video’ Presentation from the 00:00:00 timecode position (unless resuming). Playback continues until the timecode position reaches the Presentation duration value or the end of the available Presentation source content. The player application then returns to the Screen which activated playback of the Menu which was active when playback was initiated.
Begins playback of the ‘Deleted Scenes’ Presentation from the startTime timecode value attributed to the Segment identified as ‘Deleted Scene 1’ (unless resuming). Playback continues until the timecode position reaches the endTime timecode value attributed to the Segment. The player application then returns to the Screen which activated playback of the Menu which was active when playback was initiated.
show( )
The show( ) command is used to change the active Menu or the active Menu Screen.
a) If the indicated Menu id is non-existent in the XML Description File, the player application shall ignore the show( ) command.
b) If the indicated Screen id is non-existent in the current Menu, the player application shall make the default Screen of the current Menu the active Menu Screen.
Syntax:
Menu id Required when targeting a Menu. The id attribute value of the Menu which is to become the active Menu.
Screen id Required when targeting a Screen. The id attribute value of the Screen within the currently active Menu which is to become the active Menu Screen.
setTrack( )
The setTrack( ) command is used to specify which track is the active track within a specific Presentation. It can be used to specify the track id for audio playback or the track id for subtitle playback.
a) If the indicated track id is non-existent or of the wrong type, the player application shall decrement the value of id until it matches an existing track id of the same type (audio or subtitle). If the track id is decremented to 0, no track of the specified type will be active.
b) A subtitle track set to 0 will turn off any active subtitles. If the optional Button id parameter is present in the setTrack( ) command and the value corresponds to the id attribute of a button graphic or video object in the current Screen type, that specified graphic or video object will receive focus after the setTrack( ) command has been processed.
Syntax
Presentation id Required. The id attribute value of the Presentation for which the setTrack( ) command is to be performed.
type Required. A value of either audio or subtitle.
id Required. A positive integer value specifying the track that shall be selected. Must correspond to a track id of the same type as specified in the type parameter.
Button id Optional. The id attribute value of a graphic or video object which includes a Button element and is within the same Screen type as the Button element which activated the setTrack( ) command.
To summarize, there are only four API commands, and two of these commands have variants that may be addressed to either a Presentation Package File or a segment within a Presentation Package File. The commands include the ability to begin playback of a presentation, begin playback of a presentation at a specific time in the presentation as cross-referenced to an element contained in the XML Description File, begin playback of a presentation and return to the graphical interface screen that contained the command to initiate playback, begin playback of a presentation at a specific time in the presentation as cross-referenced to an element contained in the XML Description File and return to the graphical interface screen that contained the command to initiate playback, change graphical interface screens from the current screen to another screen defined in the XML Description File, set the audio or subtitle track that will be used during playback of a presentation.
By limiting the set of available commands that the player application is responsible for exhibiting, the possibility of incompatibilities between commands is lowered.
The dimensions and positions of various graphical features of a menu screen need to be altered depending on the size and aspect ratio of the display on which the screen is shown. For example, a button that is properly sized to be visible on a mobile phone display may be much too large if displayed on a 42″ flat panel television. Conversely, the button displayed appropriately on a 42″ flat panel television may be nearly invisible when displayed on the display of a mobile phone. Additionally, a layout optimized for a 16:9 display would be suboptimal when rendered on a 4:3 display, and vice versa.
To overcome this problem, the elements and attributes of the XML Description File that control the layout, display size, cropping and visibility of each object are grouped into four types:
By enabling four distinct groups of elements and attributes for the two most common display aspect ratios and for large and small displays, the designer of the disc can reuse graphic and video objects and adjust layout for any screen of the access control graphical interface while ensuring that the presentation to the end user will be appropriate to the display device. The player application can have an option that allows the end user to specify the display aspect ratio and size and/or the player application can be set for a specific known display aspect ratio and size. When compositing the access control system graphical interface, the player application uses the elements and attributes associated with the specified display aspect ratio and size.
For example,
As shown in
This invention is not limited to four categories defined by two screen sizes and two aspect ratios but includes embodiments in which three or more screen sizes and/or aspect ratios are used. For example, six categories may be defined using small, medium and large screens and 4:3 and 16:9 aspect ratios.
The display frame of the screens which constitute the access control system is quantified in pixels to match the common sizing methodology of graphical content creation applications and output displays.
Since the human eye resolves more detail on the vertical axis than on the horizontal axis, it is known in the prior art to distort or compress the content of a frame horizontally in order to provide a higher degree of information valuable to the human eye in the displayed frame. For example, as shown in
When the disc is played, the player uses the distortion factor to reverse the compression and to display a frame 96A-96D having the same aspect ratio as the source frame 91. While some of the horizontal information is lost in this process, the viewer experience is optimized by maintaining a greater proportion of the vertical information.
In a DVD disc, the maximum number of pixels along the horizontal axis of a standard definition frame is 720 and the maximum number of pixels along the vertical axis of a standard definition frame is 576. DVD-Video technology includes a method of the kind described above for increasing vertical information at the sake of horizontal information. That method is limited to a single distortion factor regardless of source aspect ratio. Therefore, vertical information cannot be maximized in all cases, specifically, in cases where the source aspect ratio is wider than 16:9. An informal review of distributed DVD-Video discs indicates that approximately 40% may be recorded from content provided at greater than a 16:9 source aspect ratio.
A standard 16:9 aspect ratio frame has 1024 pixels on the horizontal axis and 576 pixels on the vertical axis. When the source aspect ratio is wider than 16:9, DVD technology first scales the information down along both axes so that it fits within 1024 pixels on the horizontal axis and then compresses the horizontal axis to fit within 720 pixels to record the data on a standard definition 720×576 pixel frame on the disc.
For example, assume that the source frame measures 1920×800 pixels, which represents a source aspect ratio of 2.4:1 (wider than 16:9). In this situation, the DVD technology scales both axes such that the horizontal axis occupies 1024 pixels without changing the aspect ratio. Thus, the 1920 pixels on the horizontal axis are first compressed to fit within 1024 pixels. This equates to a scaling factor of 1.875 to 1. To maintain the same aspect ratio, the vertical axis is also scaled down by the same factor of 1.875 to 1 to yield 426.6 pixels (i.e., 800 divided by 1.875 equals 426.6). To store the frame on the disc, the horizontal axis is then distorted by a factor of 1.422 (1024 divided by 720) while the vertical axis remains at 426.6 pixels. As a result, approximately 150 vertical pixels, or about 35% of the total of 576 vertical pixels, are not used to store picture information.
Using the method of this invention, the maximum vertical resolution of this source content is limited only by the maximum vertical resolution of a standard definition frame, 576 pixels. In order to determine the distortion factor required the source frame width is divided by the maximum encoded frame width of 720 pixels and the source frame height is divided by the maximum encoded frame height of 576 pixels. In the example, 1920 divided by 720 is approximately 2.667 and 800 divided by 576 is approximately 1.389. These two results comprise the distortion factor as the ratio of 2.667 to 1.389. Evaluating that ratio results in 1.92. Verifying that 1.92 is the accurate distortion factor is accomplished by determining the source frame aspect ratio (1920 width divided by 800 height, equals 2.4) and multiplying the encoded frame width by the distortion factor (720 width multiplied by 1.92, equals 1384.2) and then dividing that result by the encoded frame height (1384.2 divided by 576 height, equals 2.4). The source frame aspect ratio matches the aspect ratio of the encoded frame after the distortion factor has been applied to restore the frame to an undistorted state.
Using the method described herein as compared with the method employed by DVD-Video, an increase of approximately 150 pixels (nearly 35%) of vertical information is gained. Any display device with a resolution greater than 1024 pixels in the horizontal axis and 426 pixels in the vertical axis will be capable of taking advantage of the increased vertical information.
In short, the prior art technique uses a single horizontal distortion factor which in many cases will result in a significant portion of a standard definition frame not being used to store picture information. In contrast, in accordance with this invention the horizontal distortion factor may be varied by the disc designer based on the source aspect ratio to permit the storage of picture information within a full standard definition frame on an optical disc.
Since a pixel is a non-divisible unit, rounding errors are expected. In some cases the aspect ratio of the evaluated frame to be rendered may differ very slightly from the source aspect ratio. This is expected and understood to be of such small discrepancy as to not adversely affect the displayed video frame. The difference is minor enough that the human eye would not be capable of discerning it. The author of the content on the disc may calculate the distortion factor using the algorithm described below. The known values, which are the inputs to the algorithm, are the following:
TEw, or the Target Encoded Frame Width, is the up or down scaling target that the content author will use for the Encoded Frame Width. The value of TEw is technically limited by the maximum number of macroblocks per second (pixels rendered per second) allowed by the video encoding technology. In this method the limit is commonly known as “Standard Definition” with a maximum value of 720.
TEh, or the Target Encoded Frame Height, is the up or down scaling target that the content author will use for the Encoded Frame Height. The value of TEh is technically limited by the maximum number of macroblocks per second (pixels rendered per second) allowed by the video encoding technology. In this method, the limit is commonly known as “Standard Definition” with a maximum value of 576 for 25 FPS content and 480 for 30 FPS content.
PARw, or the Pixel Aspect Ratio, Width value, is the width value of the width to height distortion factor ratio.
PARW=Sw/TEw
PARh, or the Pixel Aspect Ratio, Height value, is the height value of the width to height distortion factor ratio.
PARh=Sh/TEh
Using the known input values, a content author calculates the Target Encoded Width, Target Encoded Height and distortion factor (ratio of PARw to PARh) of the encoded video content for storage on the disc, scaling the Source Frame to the Target Encoded Frame values. This method enables the preservation of the source aspect ratio while maximizing vertical information.
The majority of source content will have one of the industry standard frame rates: 23.976, 24, 25, 29.97 or 30 frames per second. Some unique content may have other values. The Target Encoded Height is constrained by the total number of macroblocks per second (pixels rendered per second). For Standard Definition content this value is calculated to 10,368,000 pixels per second.
720*480*30=10,368,000
720*576*25=10,368,000
Content with more than 25 FPS but less than 30 FPS may be optimized during content authoring to leverage more vertical information. For example, 29 FPS content may have a maximum height of 496.
10,368,000/720/29=496.55
Using advanced upscaling methods it may be possible for the content author to use a Target Encoded Width and/or Target Encoded Height value that is larger than the Source Width and/or Source Height value in order to produce a more detailed rendered picture during playback. Since upscaling in the content authoring stage is not dependent on real time processing as it is in the playback stage, more complex scaling algorithms could be used to increase quality over the scaling algorithms used during playback. In this case, the Target Encoded Width value would be fixed at 720 pixels and the Target Encoded Height value would be fixed at the maximum number of pixels allowed in Standard Definition content at the source frame rate, regardless of whether the Source Frame Width and/or Height are less than those values.
Once the Target Encoded Width, Target Encoded Height and distortion factor have been calculated, the Target Rendered Width and Target Rendered Height for playback are calculated. The known input values are:
The values to be calculated are the following:
Dar, the Display Aspect Ratio, is the aspect ratio of the display frame.
Dar=Dw*Dpar/Dh
Sar, the Source Aspect Ratio, is the aspect ratio of the source frame.
Sar=Ew*Epar/Eh
TRh, the Target Rendered Frame Height is the up or down scaling target that the player application will use for the rendered video frame height, applied to the Encoded Frame Height.
TRw, the Target Rendered Frame Width, is the up or down scaling target that the player application will use for the rendered video frame width, applied to the Encoded Frame Width.
Using the known input values, a player application will calculate the Target Rendered Width and Target Rendered Height of the video content for playback, scaling the Encoded Frame to the Target Rendered Frame values. This method preserves the source aspect ratio while using the distortion factor to maximize vertical information.
It is recognized that some hardware environments may constrain the degree of down scaling of the encoded frame to the target rendered frame. In these cases, it may be necessary to implement methods such as discarding every other line from top to bottom and/or frame cropping in order to achieve a rendered frame that most closely approaches the full source frame on the display.
The audio, video and (optionally) subtitle tracks stored in a Presentation Package File are interleaved into blocks (samples) of 1000 milliseconds of content. Each block of content in a Presentation Package File is comprised of a synchronized one-second sample of each audio, video and subtitle track. This allows the player application to extract a synchronized one-second sample of each track required during playback and decode each of those samples at the same time. Playback of the samples is then synchronized to the video track, which is the master timing track.
This is illustrated in
The subtitle blocks in the interleaved video/audio/subtitle data track in a Presentation Package File, contain text data—such as ASCII data—identifying the words to be shown in the subtitles. Text data require relatively small amounts of storage space; ASCII data representing a single English language character, for example, contains only one byte of data.
The Control Package File contains a font format file such as an OpenType Font format file. During playback and compositing of the subtitle information onto the display frame, the player application uses both the text data stored in a Presentation Package File and the OpenType Font format files stored in the Control Package File to composite the subtitles to be shown on the display. This ensures that the typographic information necessary to display the proper character shapes of any given language used by the subtitle track is available to the player application, regardless of the player application's built-in or lack of built-in character shape rendering capability. It also allows the user to alter the features of the subtitles as reproduced on the display (color, size, etc.). For example, sight-impaired users may increase the size of the subtitles. It requires less data storage than prior art systems such as DVD which store subtitles as image files.
This technique is illustrated in
While specific embodiments of this invention have been described, it is to be understood that these embodiments are illustrative and not limiting. Many alternative or additional embodiments in accordance with the broad scope of this invention will be apparent to persons of skill in the art.
The <Disc> element is the root element of the Description XML File document tree
<Disc> xmlns Attribute
The xmlns attribute shall always be present and defined with the value: http://www.vmedia.net/XML/Video/CL1
The <ID> element describes the general identification of the Disc
Specifies the Title of the content of the disc
Specifies the Owner of the content of the disc
Specifies the Copyright of the content of the disc
Specifies the Date of the content of the disc
The <Playlist> Element specifies Presentations and their specific features
The <Presentation> element contains a description of a Presentation.
The unique identification of the <Presentation>.
The fully qualified URI to the file on the Disc which shall be used as the content data source file for this <Presentation>.
The duration attribute informs the player application of the period of time that the <Presentation> shall play.
Defines whether the <Presentation> is able to be bypassed by any User activity other than powering off the player application, shutting down the player application, Stopping disc playback or ejecting the Disc.
<Presentation> onComplete Attribute
The value of <onComplete> is an XML File API Command that shall be performed when the duration attribute timer has elapsed or until there is no more content data associated with the <Presentation>.
<Presentation> onComplete Attribute Syntax
The <Segment> is used to specify a portion of a <Presentation> which can be used as a starting point of continuous playback or a starting point and ending point of a self contained unit of playback.
The unique identification of a <Segment>.
<Segment> startTime Attribute
The startTime attribute of the <Segment> element is used to specify the timecode entry point associated with a <Segment> of a <Presentation>.
a) If startTime is greater than endTime, the Segment will playback with a duration of 00:00:00 if initiated through the playReturn( ) command.
<Segment> startTime Attribute Syntax
<Segment> endTime Attribute
The endTime attribute of the <Segment> element is used to specify the timecode ending point associated with a <Segment> of a <Presentation>.
The <Subtitle> element is used to specify information associated with a subtitle track for the Parent Element <Presentation>.
<Subtitle> trackNumber Attribute
The track number of the subtitle within the Presentation Package File of the Parent Element <Presentation>.
<Subtitle> trackNumber Attribute Syntax
By default a subtitle track within a Presentation Package File is only activated when selected via setTrack( ) from the menu. If a subtitle is intended to be activated automatically and in association with the language of the active audio track, the forced attribute shall be set to true.
For <Subtitle> elements with a forced attribute value of true, a default attribute of true specifies that this <Subtitle> element is applied to the default audio track (track 2). If no other audio track is active, the default audio track is active and the <Subtitle> marked as default will apply.
<Subtitle> srcFont Attribute
The path to the source font file to be used to render this subtitle track.
<Subtitle> srcFont Attribute Syntax
The <Menu> is used to specify menu screens and their specific features associated with the <Presentation> that references the Control Package File.
The id attribute of the <Menu> element is used to uniquely identify a <Menu> within a <Disc>
The default Attribute of the <Menu> is used by the player application to identify the <Menu> that shall be considered the default <Menu>.
A <Menu> shall contain at least 1 and at most 99<Screen> elements. Each <Screen> contains elements that make up that <Screen> instance. A player application may display 1<Screen> element at any given moment.
The id attribute of the <Screen> element is used to uniquely identify a <Screen> within a <Menu>
The default Attribute of the <Screen> is used by the player application to identify the <Screen> that shall be considered the default <Screen>.
The duration Attribute specifies the timecode period of display for the <Screen>.
The loop Attribute specifies whether the <Screen> should re-render at the end of the duration timecode.
<Screen> bgcolor Attribute
The bgcolor Attribute of a <Screen> defines the background color of the render plane.
The <Large—43> element defines the video, graphic, audio and transition objects used for the layout and interactive properties of the parent <Screen> when the player application is displaying the <Screen> on a “large” 4:3 aspect ratio display device.
The <Large—169> element defines the video, graphic, audio and transition objects used for the layout and interactive properties of the parent <Screen> when the player application is displaying the <Screen> on a “large” 16:9 aspect ratio display device.
The <Small—43> element defines the video, graphic, audio and transition objects used for the layout and interactive properties of the parent <Screen> when the player application is displaying the <Screen> on a “small” 4:3 aspect ratio display device.
The <Small—169> element defines the video, graphic, audio and transition objects used for the layout and interactive properties of the parent <Screen> when the player application is displaying the <Screen> on a “small” 16:9 aspect ratio display device.
The <Foreground> is used to define the layout of <Graphic> and <Video> elements and use of <Audio> elements for the parent <Screen> type (<Large—169>, <Large—43>, <Small—169>,
A <Graphic> element is used to define parameters of a graphic object in the <Foreground>.
The id attribute of the <Graphic> is used to uniquely identify a <Graphic> within a <Foreground>
The path to the source object for the <Graphic>
When the src Attribute of a <Graphic> element has been changed to a video object, this attribute can optionally be used to instruct the player application to repeat the video once the source file has reached the end.
<Graphic> originX Attribute
Specifies the x-coordinate position (horizontal) of the upper-left most pixel of the <Graphic>
<Graphic> originY Attribute
Specifies the y-coordinate position (vertical) of the upper-left most pixel of the <Graphic>
A <Video> element is used to define parameters of a video object in the <Foreground>.
The id attribute of the <Video> is used to uniquely identify a <Video> within the <Foreground>
The path to the source object for the <Video>
This attribute can optionally be used to instruct the player application to repeat the video once the <Video> source file has reached the end.
<Video> originX Attribute
Specifies the x-coordinate position (horizontal) of the upper-left most pixel of the <Video>
<Video> originY Attribute
Specifies the y-coordinate position (vertical) of the upper-left most pixel of the <Video>.
<Audio> elements in the <Foreground> are used to define audio content that is triggered by focusAudio attributes of <Button> elements in the same <Foreground>.
The id attribute of the <Audio> is used to uniquely identify an <Audio> element within a <Foreground>
The path to the source object for the <Audio>
The <Button> element is used to define the parameters of a <Graphic> or <Video> element in the <Foreground> that provides interactive functionality to the user.
<Button> hasFocus Attribute
This attribute if set to true instructs the player application to set focus on this <Graphic> or <Video> when the menu screen is loaded.
<Button> srcFocus Attribute
The path to the source object for the <Graphic> or <Video> when the object has focus.
<Button> srcFocus Attribute Syntax
<Button> srcSelected Attribute
The path to the source object for the <Graphic> or <Video> when the object has been selected.
<Button> focusUp Attribute
When the current <Button> has focus, this attribute defines which <Button> shall receive focus when Navigation Up has been performed by the User.
<Button> focusDown Attribute
When the current <Button> has focus, this attribute defines which <Button> shall receive focus when Navigation Down has been performed by the User.
<Button> focusLeft Attribute
When the current <Button> has focus, this attribute defines which <Button> shall receive focus when Navigation Left has been performed by the User.
<Button> focusRight Attribute
When the current <Button> has focus, this attribute defines which <Button> shall receive focus when Navigation Right has been performed by the User.
The group attribute is used to define a group of buttons. Any one <Button> within a group may be selected (using the srcSelected attribute of the <Button>). Selection of a <Button> occurs when a <Button> has focus and the onActive attribute is triggered.
<Button> onFocus Attribute
This attribute defines the XML API Command to be performed when this <Button> receives Focus
<Button> onFocus Attribute Syntax
<Button> onActive Attribute
This attribute defines the XML File API Command to be performed when this <Button> is activated
<Button> onActive Attribute Syntax
<Button> onTimer Attribute
This attribute defines the XML File API Command to be performed when the timer Attribute of this <Button> has elapsed.
The timer Attribute specifies the timecode period that must elapse before the onTimer Attribute is triggered.
<Button> focusAudio Attribute
When this <Button> receives focus, this attribute defines which <Audio> element of the <Foreground> shall be played.
The <Background> is used to define the layout of <Graphic> and <Video> elements and playback of <Audio> elements for the parent <Screen> type (<Large—169>, <Large—43>, <Small—169>, <Small—43>)
A <Graphic> element is used to define parameters of a graphic object in the <Background>.
The id attribute of the <Graphic> is used to uniquely identify a <Graphic> within the <Background>.
The path to the source object for the <Graphic>
When the src Attribute of a <Graphic> element has been changed to a video object, this attribute can optionally be used to instruct the player application to repeat the video once the source file has reached the end.
<Graphic> originX Attribute
Specifies the x-coordinate position (horizontal) of the upper-left most pixel of the <Graphic>
<Graphic> originY Attribute
Specifies the y-coordinate position (vertical) of the upper-left most pixel of the <Graphic>.
A <Video> element is used to define parameters of a video object in the <Background>.
The id attribute of the <Video> is used to uniquely identify a <Video> within a <Background>.
The path to the source object for the <Video>
This attribute can optionally be used to instruct the player application to repeat the video once the <Video> source file has reached the end.
<Video> originX Attribute
Specifies the x-coordinate position (horizontal) of the upper-left most pixel of the <Video>
<Video> originY Attribute
Specifies the y-coordinate position (vertical) of the upper-left most pixel of the <Video>.
An <Audio> element is used to define playback parameters of an audio object in the <Background>.
The id attribute of the <Audio> element is used to uniquely identify a <Audio> within a <Background>
The path to the source object for the <Audio>
This attribute can optionally be used to instruct the player application to loop playback of the <Audio> source object.
A <Transition> is used to define a video or graphic stored on the disc that the player application shall display when changing to another <Screen>.
The path to the source object for the <Transition>
The duration Attribute specifies the timecode period that must elapse before the <Transition> source content will be replaced by the destination Attribute menu screen.
<Transition> originX Attribute
Specifies the x-coordinate position (horizontal) of the upper-left most pixel of the <Transition>
<Transition> originY Attribute
Specifies the y-coordinate position (vertical) of the upper-left most pixel of the <Transition>.
<Transition> destinationID Attribute
The id of the destination <Presentation>, <Menu> or <Screen> of the <Transition>.
<Transition> destinationID Attribute Syntax
<Transition> destinationType Attribute
The type of XML structure of the destination. The <Transition> destinationID attribute value must correspond to the id attribute value of an element of destinationType.
This application is a continuation-in-part of U.S. application Ser. No. 11/891,892, filed Aug. 14, 2007, which in turn claims the priority of Provisional Application No. 60/837,530, filed Aug. 14, 2006, each of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
60837530 | Aug 2006 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11891892 | Aug 2007 | US |
Child | 12316191 | US |