Files stored in computers can be encoded into various formats. When in use, transcoding can be applied to a file to convert between different encodings. Files subject to encoding can include audio files, video files, image files or other types of files. One example type of transcoding that can be performed involves transcoding a file according to the DVD (Digital Video Disc) format to a file according to the MP4 (Moving Picture Experts Group-4) format. Another example of transcoding involves transcoding a video or image file between different resolutions, such as between a 720×480 resolution and a 360×240 resolution.
If a source file is relatively large, transcoding applied on the source file can take a relatively large amount of time. In a system that has to perform a relatively large number of transcodings for multiple source files, system performance may suffer.
Some embodiments of the invention are described with respect to the following figures;
In accordance with some embodiments, a mechanism or technique is provided to improve the efficiency of performing transcodings from a source file. The mechanism or technique identifies the transcodings that are to be performed, and determines an order in which the transcodings are to be performed for enhanced efficiency. The determined order involves at least a first transcoding that is applied on the source file to produce a first transcoded file, and a second transcoding applied on the first transcoded file (rather than the source file) to produce a second transcoded file. The first and second transcoded files are part of a collection of output files. By applying the second transcoding on the first transcoded file rather than the source file, efficiency can be improved since the processing involved in transcoding the first transcoded file to produce the second transcoded file would be less than the processing involved in transcoding the source file to produce the second transcoded file (assuming the first transcoded file contains less information than the source file).
The approach of applying at least one transcoding from a transcoded file rather than the source file may be more efficient and can reduce the burden on a computer when performing multiple transcodings from a source file. Conventionally, if multiple output files of varying formats are desired, then multiple transcodings would be applied directly to the source file, which can be computationally expensive and inefficient.
In accordance with some embodiments, if multiple transcodings are to be performed from a source file, a determination is made regarding the corresponding fidelities of output files to be produced by the corresponding transcodings. A “fidelity” of a file refers to the amount of information that is contained in the file. A file with higher fidelity means that the tile contains more information than a file with lower fidelity. As one example, a video file having a 720×480 display resolution has a higher fidelity than a video file having a 360×240 display resolution.
Generally, the source file is considered to have the highest fidelity, and transcodings applied from the source file can reduce the amount of information that is available in the transcoded files, if the desired output files to be produced (by application of transcodings) from the source file include a first output file that has a higher fidelity than a second output file, then the proper order for performing the transcodings is to apply a first transcoding on the source file to produce the first output file, and subsequently, to apply a second transcoding to the first output file to produce the second output file.
The source file from which transcodings are to be applied can be a “media file,” which is any file that contains a relatively rich amount of information, such as an audio file, video file, image file, multimedia file (a file that contains multiple types of media such as text and image, text and video, audio and video, and so forth), or other types of files. In some examples, transcodings applied with respect to a video or image file can produce output video or image files of different display resolutions (e.g., 1920×1080, 1280×720, 1024×768, 720×480, etc), The display resolution of an image or video file refers to the number of distinct pixels that can be displayed. As another example, transcodings applied with respect to an audio file can also produce output audio files of different audio resolutions.
in further examples, transcodings applied with respect to a media file can produce output files having different compression or container formats, such as one or more of the following compression formats: MPEG (Moving Picture Experts Group) formats (e.g., MPEG-4, MPEG-2, MPEG-1); Audio Video Interleave (AVI) format; Digital Video Disc (DVD) format; Device Independent (DVI) format; and so forth.
In sonic cases, a source media file may be a multimedia file that contains multiple media parts (e.g., audio and video, audio and image, etc.). The transcodings may convert the encodings applied to the multiple media parts of the multimedia file.
In an example shown in
The order of transcodings (110, 112, 114) to be applied is determined by first identifying the transcodings that are to be performed. From the identified transcodings, an efficient order of transcodings can be determined, where a higher fidelity transcoding is applied directly to the source video file, while lower fidelity transcodings are applied to an intermediate transcoded file rather than to the source video file.
The server computer 200 also includes a transcoding module 208 that can apply transcodings. Transcodings can be applied directly to the source media files 218 to produce transcoded media files 220 (also stored in the storage media 216). Also, other transcodings can be applied to sonic of the transcoded media files 220 to produce other transcoded media files 220.
The server computer 200 further includes an operating system 210. The transcoding module 208 and operating system 210 are software that can be executable on a processor 212 of the server computer 200. The processor 212 is connected to the storage media 216 and a network interface 214 that is coupled to the data network 204. The server computer 200 communicates with network devices through the network interface 214 over the data network 204.
One example of the operating system 210 in the server computer 200 can be the WINDOWS® Home Server operating system from Microsoft Corporation. The WINDOWS® Home Server operating system allows various services to be provided, by the server computer 200. For example, the server computer 200 can provide centralized backup of data contained in the client computers 202 connected to the data network 204. The Home Server operating system 210 also allows for the server computer 200 to act as a centralized print server to handle print jobs for the client computers 202. Moreover, the server computer 200 can perform media streaming in which media is streamed to one or inure remote output devices 207 that are connected to the data network 204. The streaming media can include streaming audio and/or video data, “Streaming” data from the server computer 200 to the output devices 207 refers to providing the data for presentation at the output devices 207 as a substantially continuous stream of data.
In addition, the Home Server operating system 210 can allow the server computer 200 to provide data redundancy to protect against data loss due to failure of storage devices in the server computer 200.
in accordance with some embodiments, the transcoding module 208 is able to determine an order of transcodings to be applied for producing multiple output files from a particular source media file. The order of transcodings to be applied can be based on a transcoding hierarchy as represented by a representation 222 stored in the storage media 218.
An exemplary representation 222 of the transcoding hierarchy is depicted in
Stated differently, the transcoded files produced by the transcodings at level 1 in the transcoding hierarchy have higher fidelity(ies) than the transcoded files produced by the transcodings at level 2. Thus, the transcodings at level 1 are considered to be higher fidelity transcodings than the transcodings at level 2.
When the transcoding module 208 receives an indication of what output files are desired, the transcoding module 208 consults the representation 222 of the transcoding hierarchy to determine an order of transcodings to apply to achieve optimal efficiency. It is noted that if multiple transcodings at a particular level of the transcoding hierarchy shown in
In some cases, transcodings cannot always be strictly ordered. One transcoding may specify high resolution video and low resolution audio, while a second transcoding may specify low resolution video and high resolution audio. Alternatively, one transcoding may specify high resolution video or audio, but lossy transcoding, while a second transcoding may specify low resolution audio or video but lossless transcoding. In these scenarios, it may not be possible to apply transcodings in a hierarchical manner, such that the transcodings would have to be applied directly to the source media file.
The output devices 207 may be different types of output devices associated with a user, One output device may be a handheld personal digital assistant (PDA) or smartphone. Another output device may be a handheld music/video player. Yet another output device may he a notebook computer. A further output device may be a high-definition television. These output devices that have different display resolutions (due to different display sizes) are connectable to the server computer 200 to enable the server computer 200 to stream output data for presentation at the output devices.
The server computer 200 determines the formats (at 508) that are presentable at the output devices. Note that some output devices are able to present only certain types of formats. For example, a handheld PDA, smartphone, or handheld music/video player has a relatively small screen and thus can only present video or image data at a relatively low resolution. However, if the output device is a high-definition monitor or television, then the format that can be presented can be at a higher resolution.
Based on the determined formats, the
Instructions of software described above (including the transcoding module 208 and operating system 210 of
Data and instructions (of the software) are stored in respective storage devices, which are implemented as one or more computer-readable or computer-usable storage media. The storage media include different forms of memory including semiconductor memory devices such as dynamic or static random access memories (DRAMs or SRAMs), erasable and programmable read-only memories (EPROMs), electrically erasable and programmable read-only memories (EEPROMs) and flash memories; magnetic disks such as fixed, floppy and removable disks; other magnetic media including tape; and optical media such as compact disks (CDs) or digital video disks (DVDs). Note that the instructions of the software discussed above can be provided on one computer-readable or computer-usable storage medium, or alternatively, can be provided on multiple computer-readable or computer-usable storage media distributed in a large system having possibly plural nodes. Such computer-readable or computer-usable storage medium or media is (are) considered to be part of an article (or article of manufacture). An article or article of manufacture can refer to any manufactured single component or multiple components.
In the foregoing description, numerous details are set forth to provide an understanding of the present invention. However, it will be understood by those skilled the art that the present invention may be practiced without these details. While the invention has been disclosed with respect to a limited number of embodiments, those skilled in the art wilt appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover such modifications and variations as fall within the true spirit and scope of the invention.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US09/46355 | 6/5/2009 | WO | 00 | 9/24/2011 |