Abstract:
A system and method as described herein involve materially improving the quality of encoded content generated on systems or platforms such as remote or CPE (Customer Premises Equipment) platforms. An aspect of the described system and method comprises profiling the source content, for example, on a per title basis, and generating profile information as a set of metadata that reflects the optimal transcoding parameters. This metadata is transmitted along with the content to be transcoded to the remote device which can then perform a superior process on the content, compared to a generic non-hinted transcode. Other aspects of the described system and method comprise separation of profiling analysis from the actual transcoding at a remote location, and encapsulation of profile information with the program content for delivery to the remote premises.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims the benefit, under 35 U.S.C. §365 of International Application PCT/US2012/021959, filed Jan. 20, 2012, which was published in accordance with PCT Article 21(2) on Jul. 26, 2012 in English and which claims the benefit of U.S. provisional patent application No. 61/434,977, filed Jan. 21, 2011. 
    
    
     FIELD OF THE INVENTION 
     The present principles relate to a system and method for improving the quality of program content transcoded on remote or Customer Premises Equipment platforms. 
     BACKGROUND OF THE INVENTION 
     Program content, for example, video/audio program material, originates at a source location, typically in a single format. The content can be delivered in one format to a remote or customer premises location where it needs to be transformed into other formats suitable for viewing on a variety of devices. These typically include television sets, computers, tablet devices and smartphones. The technical, visual and aural capabilities of these devices vary dramatically, and often the original content is not well adapted for consumption by these alternate devices. 
     The recent introduction of relatively low cost, high powered platforms in Customer Premises Equipment (CPE), on which transcoding from one format to another format can occur, has presented the industry with the new challenge of ensuring simultaneous high quality delivery of content to multiple divergent devices. An aspect of the system and method described herein addresses the problem of improving the quality of program content transcoded on remote systems or CPE platforms. 
     SUMMARY OF THE INVENTION 
     The principles described herein relate to remote transcoding using content profiling. By profiling the source content and pre-defining a set of parameters, the “enhanced” or “hinted” content can be transcoded by a remote application at a far higher quality than could be obtained using generic and static profiles. The set of parameters can include, but is not limited to, aspect ratio, crop, scale, encoding bit rate, color gamut, noise reduction, and pre-filtering. 
     In addition, the capability of a remote transcoding application to measure, for example, the available bandwidth and quality of connection between the transcoder and the endpoint device provides the ability for an adaptable transcode. The bandwidth and other transcoding parameters can be adjusted in real time to better match the instantaneous capabilities of the connection to the endpoint display, providing the best possible viewing quality at any moment in time. This generates the opportunity for multiple simultaneous transcodes to take place thereby providing high quality experience for different devices at the same time. 
     According to one aspect of the present principles, there is provided a method for transcoding program content. The method comprises a step for selecting a set of parameters defining display characteristics of video program content, a step of populating a transcoding profile with the parameters, a step of transmitting the populated transcoding profile to a second display device, and a step for transcoding the video program content based on the profile parameters to be appropriately viewed on a second device. 
     According to another aspect of the present principles, there is provided a further method for processing video program content. The method comprises the steps of receiving a transcoding profile, a step of extracting a set of parameters from the transcoding profile, a step of transcoding the program content based on the parameters to be appropriate for display on a second device, and a step of displaying the program content in accordance with the parameters. 
     According to another aspect of the present principles, there is provided a further method for processing video program content. The method comprises the steps of selecting a set of parameters defining the display characteristics of video content, a step of transmitting the parameters to a second display device, a step of transcoding the video content by using the parameters, and a step of displaying the video program content in accordance with the parameters. 
     According to another aspect of the present principles, there is provided an apparatus for processing video program content. The apparatus is comprised of a parameter selection unit for selecting parameters that define the display characteristics of video content. The apparatus is further comprised of a profile generator to populate a transcoding profile with at least one parameter. The apparatus is further comprised of a transmission unit for transmitting the populated transcoding profile to a second display device, and a transcoder for operating on the video program content based on at least one parameter for appropriate display on a second device. 
     According to another aspect of the present principles, there is provided an apparatus for displaying video program content. The apparatus is comprised of a receiver for receiving a transcoding profile including a set of parameters for transcoding video program content to be appropriate for use with a second display device. The apparatus is further comprised of an extractor for obtaining the parameters from the transcoding profile. The apparatus is further comprised of a transcoder that operates on the video program content based on the parameters from the transcoding profile. The apparatus is further comprised of a display device the displaying the transcoded video content. 
     According to another aspect of the present principles, there is provided a further apparatus for displaying program content. The apparatus is comprised of a parameter selection unit to select a set of parameters defining the display characteristics of video program content. The apparatus is further comprised of a transmission unit for transmitting the parameters to a display device. The apparatus is further comprised of a transcoder operating on the program content based on the set of parameters. The apparatus is further comprised of a display device for displaying the video program content, transcoded in accordance with the parameters. 
     A need exists for program content, generated at a source location in one format, to be transcoded to alternate formats for use on remote devices. These devices include, for example, televisions, computers, smartphones, and tablets. These and other aspects, features and advantages of the present principles will become apparent from the following detailed description of exemplary embodiments, which are to be read in connection with the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  shows a block diagram of a profiling portion, in accordance with the present principles. 
         FIG. 2  shows the sequence of a profiling application, in accordance with the present principles. 
         FIG. 3  shows a block diagram example illustrative of the present principles. 
         FIGS. 4 a, b , and  c    show exemplary embodiments of a method for processing video program content, in accordance with the present principles. 
         FIGS. 5 a, b , and  c    show exemplary embodiments of a method for displaying video program content, including packaging of program content and profile information in accordance with the present principles. 
         FIGS. 6 a, b , and  c    show embodiments of an apparatus for processing video program content in accordance with the present principles. 
         FIGS. 7 a, b , and  c    show embodiments of an apparatus for displaying video program content in accordance with the present principles. 
     
    
    
     DETAILED DESCRIPTION 
     The principles described herein satisfy the need and solve the fundamental problems associated with a system and method for improving the quality of program content transcoded on remote or Customer Premises Equipment (CPE) platforms. 
     The described systems and methods presented herein comprise a Profiling portion and an Enhanced Transcoding portion. 
     Profiling is performed by a series of analytical operations on each piece of content (video and audio) that will be sent to a remote device for Enhanced Transcoding. Profiling can be a combination of human and machine operations, with the bulk of the analysis performed by automated computer applications, for example. 
     Profiling can include, but is not limited to, the following set of parameters: 
     Class of Material—Drama, Sport, Action, etc. (the class of source material affects general transcoding parameters such as bit rate, motion estimation, etc.) 
     Aspect Ratio—ratio of horizontal to vertical dimensions of the source material 
     Resolution—size in pixels of the source frame 
     Frame Rate—frames per second of the source material 
     Frame Sequence—“3:2 pulldown” and other such frame/field sequences 
     Progressive/Interlace—frame structure of the source content 
     Color Gamut—color space of the source material (such as RGB, YCrCb, Rec709, XYZ, 601, etc.) 
     Noise—amount of video noise or film grain present in the source material 
     Bit Depth—whether the source content is 8-bit or 10-bit 
     Animation or Live Action—this choice can affect transcoding settings 
     Prefiltering Requirements—analysis of the source material, by human and/or machine processes, will reveal the type of pre-filtering that can be used to enhance the transcoding process 
     As shown in  FIG. 1 , once the Profiling process is complete, all of the Profiling decisions can be encoded into a metadata set that reflects the necessary adjustments to be made by the target transcoding platform (remote or CPE platform). The metadata schema is collectively understood by both the Profiling application and the Enhanced Transcoding application. For example, the metadata can be in XML format, using an XML Schema for validation. 
     Also, as shown in  FIG. 1 , the metadata can be packaged and transported along with the source content to the remote or CPE platform using a variety of methods, depending on the requirements of the NSP (Network Service Provider) or other network to be traversed. Typical methods include Private Stream within an MPEG-2 Transport Stream, Private Metadata within an MP4 container, Dark Metadata within MXF (Material Exchange Format), but other container formats for multiplexing digital audio, video and/or data content are considered within the scope of the present principles. 
     When this metadata is received along with the transmitted source content, the static/generic transcode profile(s) in the remote or CPE platform is (are) overwritten by the title-specific metadata comprising the profile information. This configures the transcoder or repurposing engine to make the highest quality set of outputs for local divergent platforms. 
     As shown in  FIG. 2 , an aspect of the described system and method concerns the sequence and methodology of application of the profiling metadata by the target transcoding platform. For instance, dynamic reframing can be applied before the actual video transcode to remove portions of the source picture frame that will not be required in the output frame. This process ensures a higher quality by not wasting bits in the transcode that would ultimately be discarded. While the actual processing sequence can vary due to technical constraints of the transcoding platform, an example of the general sequence of the Profiling application can be as follows: 
     Dynamic Reframing—Removal of bits not required in an output frame 
     Sequence Adaptation—“Inverse telecine” or “3:2 pulldown removal”, etc. 
     Pre-filtering—Gaussian edge shaping, noise reduction, bandwidth shaping, etc. 
     Transcoding—Decoding and re-encoding the video and audio content for delivery to the endpoint devices. 
     Adaptable Transcoding—Based on dynamic measurement of the endpoint device connections, bandwidth, etc. and adjustment, as required, of the transcode in order to deliver the highest quality signal over the available bandwidth and quality of connection for that particular endpoint device. 
       FIG. 3  shows a block diagram illustrating an example of the principles described herein. Source content is generated at Location A in a 16×9, 1920(H)×1080(V) progressive format. The content is profiled and sent along with the profile information to Location B, where the content is transcoded using the profile information for each different format needed by a different endpoint device. Such devices can be tablets, laptop computers, or smartphones, for example. 
     One embodiment of the present principles is shown in  FIG. 4( a ) , which is a method  400  for processing video program content. The method comprises the step  410  of selecting a set of parameters defining the display characteristics of the video program content. The method is also comprised of the step  420  of populating a transcoding profile with at least one selected parameter in the set of parameters and a step  430  of transmitting the populated transcoding profile to a second display device. The method is also comprised of a step  440  of transcoding the program content based on at least one of the selected parameters so that the video program content is appropriate for a second display device. 
     An exemplary embodiment of a method  410  which further comprises the method of  FIG. 4( a ) ,  400 , is shown in detail in  FIG. 4( b ) . The method includes a step  412  of analyzing the program content and a step  414  of selecting the set of parameters responsive to the analyzing step. 
       FIG. 4( c )  shows one embodiment of a method  440  for transcoding program content. This method is one possible embodiment of the transcoding step  440  of  FIG. 4( a ) . The method is comprised of a step  442  for removing portions of the program content that will not be required after transcoding. The method is further comprised of a step  444  for performing an inverse telecine operation on the program content and a step  446  for filtering the program content. The method is further comprised of a step  448  of decoding and re-encoding said program content based on said profile information to optimize quality for use on an endpoint device. 
     Another exemplary embodiment of a method  500  for displaying video program content in accordance with the present principles is shown in  FIG. 5( a ) . The method comprises a step  510  for receiving a transcoding profile. The method is further comprised of a step  520  of extracting a set of parameters from the transcoding profile. The method is also comprised of a step  530  of transcoding the program content based on the parameters from the transcoding profile to be appropriate for use with a second display device. The method is further comprised of a step  540  of displaying the video program content on a second display device in accordance with the parameters from the transcoding profile. 
       FIG. 5( b )  shows an exemplary embodiment of a method  550  for displaying program content in accordance with the present principles. The method is comprised of the step  552  of selecting a set of parameters defining the display characteristics of video program content. The method is further comprised of a step  554  of transmitting said parameters to a second display device and a step  556  of transcoding the video program content based on the selected parameters. The method is further comprised of a step  558  of displaying the video program content on a second display device in accordance with the parameters. 
     Another embodiment of the present principles is illustrated in  FIG. 5( c )  which shows a method  560  further comprising the method of  FIG. 5( b )  in accordance with the present principles. The method is comprised of the aforementioned steps, but is further comprised of a step  562  of populating a transcoding profile with a set of parameters, a step  564  of encapsulating the profile and the video program content, a step  566  of transmitting the profile to a second display device, and a step  568  of unpackaging the encapsulated profile and video program content. 
     One embodiment of an apparatus  640  for processing video program content in accordance with the present principles is illustrated in  FIG. 6( a ) . The apparatus comprises a parameter selection unit  610  for selecting a set of parameters defining the display characteristics of video program content. The apparatus is also comprised of a profile generator  620 . The output of parameter selection unit  610  is in signal communication with the input to profile generator  620 . The apparatus is further comprised of a transmission unit  630  for transmitting the populated transcoding profile to a second display device. The output of profile generator  620  is in signal communication with the input to transmission unit  630 . The apparatus is further comprised of a transcoder  640 , whose input is in signal communication with the output of transmission unit  630 , either wirelessly or with a wired connection. Transcoder  640  operates on the video program content based on at least one of the parameters so that the content is appropriate for use on a second display device. 
     Another exemplary embodiment of an apparatus  640  for processing video program content in accordance with the present principles further comprising the transcoder of  FIG. 6( a )  is illustrated in  FIG. 6( b ) . The apparatus is comprised of circuitry  642  to remove program portions that will not be required following transcoding. The output of circuitry  420  is in signal communication with the input to an inverse telecine operator  644 , which further comprises apparatus  640 . The output of inverse telecine operator  644  is in signal communication with the input to filter  646 , which further comprises apparatus  640 , and that filters the video program content. The apparatus is further comprised of a decoder and re-encoder  648  that operates on said program content based on the profile information to optimize quality of the video content for display on the second display device. The output of filter  646  is in signal communication with the input of decoder and re-encoder  648 . 
     A further embodiment of an apparatus  650  for processing video program content in accordance with the present principles further comprising the apparatus of  FIG. 6( a )  is shown in  FIG. 6( c ) . The apparatus is comprised of the aforementioned devices of  FIG. 6( a )  but is also comprised of a measurement unit  660  for measuring characteristics of an endpoint device for the program content and sending the measured characteristics to the transcoder  640  of  FIG. 6( a )   
     A further embodiment of an apparatus  700  for displaying program content in accordance with the present principles is shown in  FIG. 7( a ) . The apparatus is comprised of a receiver  710  that receives a transcoding profile including a set of parameters for transcoding program content to be appropriate for use on a second display device. The apparatus is further comprised of an extractor  720 , whose input is in signal communication with the output of receiver  710 . The extractor obtains a set of parameters from the transcoding profile. The apparatus is further comprised of a transcoder  730 , whose first input is in signal communication with the output of extractor  720 . The transcoder also receives program content on a second input. The transcoder operates on the program content based on the set of parameters extracted from the profile. The apparatus is further comprised of a second display device  740 , whose input is in signal communication with the output of transcoder  730 . 
     Another embodiment of an apparatus  750  for displaying program content in accordance with the present principles is shown in  FIG. 7( b ) . Apparatus  750  is comprised of parameter selection unit  752 , transmission unit  754 , transcoder  756 , and a display device  758 . Parameter selection unit  752  receives video content and selects a set of parameters defining the display characteristics of the video content. The output of parameter selection unit  752  is in signal communication with one input to transmission unit  754 . A second input to transmission unit  754  receives the video content, shown in  FIG. 7( b )  as coming from parameter selection unit  752 , but also capable of being sent from another source. The output of transmission unit  754  is in signal communication with transcoder  756 . Transcoder  756  operates on the video program content using the transcoding profile parameters. The output of transcoder  756  is sent to the input to display device  758  for viewing. 
     Another embodiment of an apparatus  760  for displaying program content in accordance of the present principles is shown in  FIG. 7( c ) , which further comprises the apparatus of  FIG. 7( b ) . Apparatus  760  comprises profile generator  762 , encapsulator  764 , transmitting unit  766 , unpackaging unit  768 , transcoder  756 , and display device  758 . Profile generator  762  receives content at its input and populates a transcoding profile with a set of parameters. A first output of profile generator  762  represents the profile and is sent to a first input of encapsulator  764 . Encapsulator  764  receives a second input from the second output of profile generator  762 , representing the video program content. The output of encapsulator  764  is sent to transmitting unit  766 . The output of transmitting unit  766  is in signal communication to the input of unpackaging unit  768 , which performs the inverse operation of encapsulator  764 . A first output of unpackaging unit  768  represents the video content and is sent to a first input of transcoder  756 . A second output of unpackaging unit  768  represents the profile and is sent to a second input of transcoder  756 . Transcoder  756  operates on the video content, for example, by decoding the content and re-encoding it using the parameters in the profile. The output of transcoder  756  is sent to the input to display device  758  for viewing. 
     One or more implementations having particular features and aspects of the presently preferred embodiments of the invention have been provided. However, features and aspects of described implementations can also be adapted for other implementations. For example, these implementations and features can be used in the context of other video devices or systems. The implementations and features need not be used in a standard. 
     Reference in the specification to “one embodiment” or “an embodiment” or “one implementation” or “an implementation” of the present principles, as well as other variations thereof, means that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment of the present principles. Thus, the appearances of the phrase “in one embodiment” or “in an embodiment” or “in one implementation” or “in an implementation”, as well any other variations, appearing in various places throughout the specification are not necessarily all referring to the same embodiment. 
     The implementations described herein can be implemented in, for example, a method or a process, an apparatus, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method), the implementation of features discussed can also be implemented in other forms (for example, an apparatus or computer software program). An apparatus can be implemented in, for example, appropriate hardware, software, and firmware. The methods can be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, cell phones, portable/personal digital assistants (“PDAs”), and other devices that facilitate communication of information between end-users. 
     Implementations of the various processes and features described herein can be embodied in a variety of different equipment or applications. Examples of such equipment include a web server, a laptop, a personal computer, a cell phone, a PDA, and other communication devices. As should be clear, the equipment can be mobile and even installed in a mobile vehicle. 
     Additionally, the methods can be implemented by instructions being performed by a processor, and such instructions (and/or data values produced by an implementation) can be stored on a processor-readable medium such as, for example, an integrated circuit, a software carrier or other storage device such as, for example, a hard disk, a compact disc, a random access memory (“RAM”), or a read-only memory (“ROM”). The instructions can form an application program tangibly embodied on a processor-readable medium. Instructions can be, for example, in hardware, firmware, software, or a combination. Instructions can be found in, for example, an operating system, a separate application, or a combination of the two. A processor can be characterized, therefore, as, for example, both a device configured to carry out a process and a device that includes a processor-readable medium (such as a storage device) having instructions for carrying out a process. Further, a processor-readable medium can store, in addition to or in lieu of instructions, data values produced by an implementation. 
     As will be evident to one of skill in the art, implementations can use all or part of the approaches described herein. The implementations can include, for example, instructions for performing a method, or data produced by one of the described embodiments. 
     A number of implementations have been described. Nevertheless, it will be understood that various modifications can be made. For example, elements of different implementations can be combined, supplemented, modified, or removed to produce other implementations. Additionally, one of ordinary skill will understand that other structures and processes can be substituted for those disclosed and the resulting implementations will perform at least substantially the same function(s), in at least substantially the same way(s), to achieve at least substantially the same result(s) as the implementations disclosed. Accordingly, these and other implementations are contemplated by this disclosure and are within the scope of these principles.