WO2012168373A1 - Method and apparatus for optimizing media streams - Google Patents

Method and apparatus for optimizing media streams Download PDF

Info

Publication number
WO2012168373A1
WO2012168373A1 PCT/EP2012/060812 EP2012060812W WO2012168373A1 WO 2012168373 A1 WO2012168373 A1 WO 2012168373A1 EP 2012060812 W EP2012060812 W EP 2012060812W WO 2012168373 A1 WO2012168373 A1 WO 2012168373A1
Authority
WO
WIPO (PCT)
Prior art keywords
media stream
encoding
video
original media
stream
Prior art date
Application number
PCT/EP2012/060812
Other languages
French (fr)
Inventor
Declan Harrison
Christopher Brown
Original Assignee
Openwave Mobility, Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Openwave Mobility, Inc filed Critical Openwave Mobility, Inc
Publication of WO2012168373A1 publication Critical patent/WO2012168373A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream

Definitions

  • the present invention relates to a method and apparatus for optimizing media streams, in particular, but not exclusively, video streams.
  • Media content such as video content
  • end-user devices such as desktop computers, laptop computers, a pad computers, or smartphones.
  • a typical video optimization solution involves compressing the video content by re-encoding the original video content at a lower bit rate.
  • Content providers that serve the video content are usually aware of the end-user devices and send specific videos targeted for the end-user devices. Thus, the videos are encoded to compliant with the device specifications so that the end-user devices can properly playback the video content.
  • the content providers must accommodate all of these different end-user devices, which may involve encoding the same video content using different encoding techniques.
  • each user-device only supports a subset of all the features that H264 on its hardware. For example, a particular smartphone may only support baseline profile and 1 reference frame, and may not support "b" frames. If a video is re-encoded with any unsupported H264 features for a particular end-user device during optimization, then the video will not play on the that end-user device. Since maintaining a database of all possible encoding parameters for all possible end-user devices is not viable, the encoding parameters required by a subset of end-user devices are researched and added to a database, which must be updated as new end-user devices become available.
  • Fig. 1 is a schematic block diagram of a content delivery system in accordance with an embodiment of the invention.
  • Fig. 2 is a block diagram of the optimization proxy of the content delivery system in accordance with an embodiment of the invention.
  • Fig. 3 illustrates data exchanges between components of the optimization proxy in accordance with an embodiment of the invention.
  • Fig. 4 depicts a computer that includes a processor, memory, and a communications interface.
  • Fig. 5 is a process flow diagram of a method for transcoding a media stream that is delivered to an end-user device over a communications network in accordance with an embodiment of the invention.
  • Fig. 1 depicts a schematic block diagram of a content delivery system 100 in accordance with an embodiment of the invention.
  • the content delivery system includes a wireless device 102, a radio access network 104, a data gateway 106, an optimization proxy 108, an Internet gateway 110, the Internet 112, and a content source 114.
  • the content delivery system is depicted and described with certain components and functionality, other embodiments of the content delivery system may include fewer or more components to implement less or more functionality.
  • the content delivery system may include more than one wireless device, more than one radio access network, more than one data gateway, more than one optimization proxy, more than one Internet gateway, and/or more than one content source.
  • the content delivery system 100 may include any type of end-user device(s) configured to request content from the content source 114 on behalf of at least one end-user and to render received content for presentation to the end-user.
  • the content may be any type of media content.
  • the content is a media stream, which is time- sensitive media content that is continuously received by and presented to an end-user while being delivered by the content source.
  • the media stream may be a video stream and/or a non-video stream such as an audio stream, or any combination thereof.
  • the media stream may be a live broadcast of an event over the Internet 112.
  • the media stream is an Internet radio broadcast.
  • the media stream is an on- demand music stream.
  • the end-user may be a single person, multiple persons, other entity or entities.
  • the content delivery system includes an end-user device that is implemented as the wireless device 102.
  • the content delivery system is shown in Fig. 1 as including one wireless device, in other embodiments, the content delivery system may include multiple wireless devices.
  • the wireless device 102 of the content delivery system 100 is typically a handheld wireless device, such as a cell phone, a mobile phone, a smartphone, a pad computer, a Personal Digital Assistant (PDA), a handheld gaming device etc, which can wirelessly communicate using radio frequency (RF) communications signals.
  • the wireless device can support various different RF communications protocols, including without limitation, Global System for Mobile communications (GSM), Universal Mobile Telecommunications System (UMTS), Code Division Multiple Access (CDMA), Worldwide Interoperability for Microwave Access (WiMax) and communications protocols as defined by the 3 rd Generation Partnership Project (3 GPP) or the 3 rd Generation Partnership Project 2 (3GPP2), 4G Long Term Evolution (LTE) and IEEE 802.16 standards bodies.
  • GSM Global System for Mobile communications
  • UMTS Universal Mobile Telecommunications System
  • CDMA Code Division Multiple Access
  • WiMax Worldwide Interoperability for Microwave Access
  • 3 GPP 3 rd Generation Partnership Project
  • 3GPP2 3 rd Generation Partnership Project 2
  • LTE Long Term
  • the radio access network 104 of the content delivery system 100 is configured to facilitate radio communications between the wireless device 102 and a core network that includes the data gateway 106, the optimization proxy 108, the Internet gateway 110, the Internet 112, and the content source 114.
  • the radio access network includes one or more base stations to facilitate communications among wireless devices that are within a communications range of the base stations. Each base station has at least one RF transceiver and the base stations communicate with the wireless devices using RF communications signals.
  • the radio access network facilitates network communications among multiple wireless devices within the same radio access network and between wireless devices in other radio access networks and provides interfaces to facilitate communications with other entities, such as a Public Switched Telephone Network (PSTN), a Wide Area Network (WAN), the Internet, Internet servers, hosts, etc., which are outside of the radio access network.
  • PSTN Public Switched Telephone Network
  • WAN Wide Area Network
  • the Internet Internet servers, hosts, etc.
  • the network elements depicted in Fig. 1 are part of a wireless network that is operated by a single wireless service provider.
  • Data signals communicated between the wireless device 102 and the radio access network 104 include, but are not limited to, analog and/or digital RF signals (i.e., radio waves) for any type of communications mode, including text messaging, multimedia messaging, voice calling, and Internet browsing.
  • the radio access network can support various different RF communications protocols, including without limitation, GSM, UMTS, CDMA, WiMax and communications protocols as defined by 3GPP, 3GPP2, or IEEE 802.16. Although some wireless communications protocols are identified herein, it should be understood that present disclosure is not limited to the cited wireless communications protocols.
  • the content delivery system 100 depicted in Fig. 1 includes the wireless device 102 and the radio access network 104, in other embodiments, the content delivery system includes at least one wired device instead of the wireless device and at least one wired communications network instead of the radio access network.
  • the wired device may be a wired communications device that is configured to request content from the content source 1 14 on behalf of an end-user and to render received content for presenting to the end-user.
  • the wired communications network may be a wired access network such as a dial-up, digital subscriber line (DSL), or cable modem based Internet service provider (ISP) network or a private enterprise network.
  • DSL digital subscriber line
  • ISP Internet service provider
  • the wired communications network facilitates communications between the wired communications device and the core network that includes the data gateway 106, the transcoding proxy 108, the Internet gateway 110, the Internet 112, and the content source 114.
  • the wired device may be, for example, a computer equipped with an Ethernet card and the wired communications network may be an Ethernet local area network (LAN).
  • the content delivery system includes a combination of at least one wireless device, at least one radio access network, at least one wired device, and at least one wired communications network.
  • the data gateway 106 of the content delivery system 100 configures outgoing data access requests for use with one or more networks and configures incoming data for use by or display on the wireless device 102.
  • the data gateway interfaces directly with the radio access network 104 and the optimization proxy 108.
  • the data gateway uses GPRS Tunneling Protocol (GTP) to communicate with the radio access network.
  • GTP GPRS Tunneling Protocol
  • the data gateway may use other communications protocols.
  • the data gateway performs other conventional operations, which are known and thus not described herein. For example, the data gateway enables users of wireless devices to roam between cells, for example, to move between different locations within the radio access network, by tracking the wireless device's identity across the network.
  • the data gateway may also provide authentication and data formatting functions.
  • the optimization proxy 108 of the content delivery system 100 is configured to optimize a media stream that is delivered to the wireless device 102 through the access network.
  • the optimization proxy is configured to extract a decoder configuration record from a received media stream to retrieve encoding complexity features from the decoder configuration record.
  • encoding complexity features include encoding information and media format information of a media stream.
  • a decoder configuration record is a record embedded in a media stream or file parameters used to encode the media stream. This decoder configuration record is used by a decoder in a receiving device to decode the media stream so that the media stream can be played back properly.
  • the decoder configuration record is referred to as Advanced Video Coding (AVC) Decoder Configuration Record (AVCDCR), which is normally the first video packet in the video stream.
  • AVC Advanced Video Coding
  • AVCDCR contains at least an AVC/H.264 profile indication value, an AVC/H.264 level indication value and flags that indicate profile compatibility, as well as other encoding complexity feature information, as described in more detail below.
  • the data contained in a decoder configuration record provide information regarding how that media stream was encoded and what features are enabled in the media stream, which depend on format of the media stream.
  • the optimization proxy uses the encoding and format enabled feature information in the decoder record to determine the encoding parameters that must be used to optimize the video stream so that the video stream can be played on the end-user device to which the original video stream was being transmitted. This is based on an assumption that the original video stream provided by the content provider would have properly played on the end-user device.
  • the optimization proxy 108 is shown in Fig. 1 as being located between the data gateway 106 and the Internet gateway 110, the optimization proxy can be located anywhere within the content delivery system 100.
  • the optimization proxy can be located in a single device or distributed amongst multiple devices.
  • the optimization proxy may be implemented in a HTTP proxy server or in another network device.
  • the optimization proxy may be implemented as a standalone network device.
  • the optimization proxy is located anywhere in the data path between the wireless device 102 and the content source 114.
  • the optimization proxy may be located between the wireless device and the radio access network, between the radio access network and the data gateway, between the Internet gateway and the Internet 112, and/or between the Internet and the content source.
  • the optimization proxy may be integrated within or located within at least one component of the content delivery system.
  • the optimization proxy may be integrated within the radio access network 104, the data gateway, the Internet gateway, and/or the content source 114, or located within the Internet.
  • the optimization proxy may be located in a base station or a data center in the radio access network of a wireless carrier, such as, a cellular communications carrier.
  • the optimization proxy may be integrated within the Internet gateway of a wireless ISP or a wired ISP.
  • the optimization proxy may be located in the Internet as well as in a private network connected to the Internet. For example, some component of the optimization proxy may be located in the Internet while the rest of the optimization proxy may be located in the private network.
  • the Internet gateway 110 of the content delivery system 100 provides a gateway for communications between the wireless device 102 and Internet-connected hosts and/or servers in the Internet 112, which can also be referred to as the "cloud.”
  • the Internet gateway may include a Serving General Packet Radio Service (GPRS) Support Node (SGSN) and a Gateway GPRS Support Node (GGSN).
  • GPRS General Packet Radio Service
  • GGSN Gateway GPRS Support Node
  • the Internet gateway can be a Wireless Application Protocol (WAP) gateway that converts the WAP protocol used by the radio access network to the HTTP protocol used by the Internet.
  • WAP Wireless Application Protocol
  • the Internet gateway enables wireless devices to access multimedia content, which may include, but not limited to, HTTP media stream, Real Time Messaging Protocol (RTMP) media stream, Internet Protocol (IP) / User Datagram Protocol (UDP) Multicasts and Real Time Stream Protocol (RTSP) media streams, from Internet-connected hosts and/or servers.
  • multimedia content may include, but not limited to, HTTP media stream, Real Time Messaging Protocol (RTMP) media stream, Internet Protocol (IP) / User Datagram Protocol (UDP) Multicasts and Real Time Stream Protocol (RTSP) media streams, from Internet-connected hosts and/or servers.
  • RTMP Real Time Messaging Protocol
  • IP Internet Protocol
  • UDP User Datagram Protocol
  • RTSP Real Time Stream Protocol
  • the radio access network 104, the data gateway 106, the optimization proxy 108, and the Internet gateway are located in an access network 1 11.
  • the access network provides access to the Internet.
  • Typical access networks include wireless service provider networks (e.g.
  • a private enterprise network can also serve as an access network if client devices within the private enterprise network can access the Internet through the private enterprise network.
  • the access network may be administered by a single entity or different entities.
  • the access network may be managed by a single ISP, a single wireless service provider, or a private enterprise.
  • the content source 114 of the content delivery system 100 is configured to store media content, to process requests for media content from the wireless device 102, and to stream requested media content to the wireless device over at least one streaming protocol.
  • the content source may store video content and/or non-video content such as text files, webpage files, image files, audio files, or any combination thereof.
  • the media content stored in the content source is encoded, which includes compression.
  • the content source may include a content encoder (not shown) to encode original video content or include a content database (not shown) that stores pre-encoded media content.
  • the content source may serve media content over a single transport protocol or more than one transport protocol.
  • the content source serves video content over HTTP such as HTTP-Adaptive Streaming (HTTP -AS) and/or real time streaming protocol (RTSP) or other similar protocols.
  • HTTP -AS HTTP-Adaptive Streaming
  • RTSP real time streaming protocol
  • the content source may be an HTTP server.
  • the content source may be part of a video web site.
  • the content delivery system is shown in Fig. 1 as including a single content source, the content delivery system may include multiple content sources in some embodiments. The multiple content sources may be distributed among different devices in a network.
  • the optimization proxy includes an encoding controller 202, a record capture module 204, a record parser 206, a decoder 208 and an optimized encoder 210.
  • These components of the optimization proxy represent functional blocks, and can be implemented in any combination of software, hardware and firmware.
  • one or both of the decoder and the encoder may be implemented as software.
  • one or both of the decoder and the encoder may be implemented as hardware.
  • the encoding controller 202 of the optimization proxy 108 is configured receive and process media streams received by the optimization proxy.
  • the encoding controller is configured to pass the original media stream to the record capture module 204 so that the decoder configuration record can be extracted.
  • the encoding controller is also configured to pass the contents of the original media stream, e.g., frames of a video stream, to the decoder 208 so that the contents of the original media stream can be decoded, which may involve decompression.
  • the encoding controller is also configured to analyze the information retrieved from the extracted decoder configuration record to determine encoding parameters that would result in an encoded media stream having the same encoding complexity features as the original media stream.
  • the analysis of the decoder configuration record may involve examining various encoding complexity features of the original media stream, such as, for example, the media profile, the media level associated with the media profile, number and type of reference frames used in the media stream and encoding method used for the original media stream. Once the encoding parameters are determined, these encoding parameters are then used to setup the optimized encoder 210.
  • these encoding complexity features may include the AVC/H.264 profile (e.g., Baseline, Main, Extended and High), the AVC/H.264 level associated with the profile (e.g., 1, lb, 1.1 , 1.2, 1.3, 2, 2.1 , 2.2, 3, 3.1 , 3.2, 4, 4.1, 4.2, 5 and 5.1) and the number and type of reference frames used in the original H.264 video stream (e.g., up to 16 reference frames are used and b frames are supported), the encoding method used for the original H.264 video stream, such as Context-Based Adaptive Binary Arithmetic Coding (CABAC) or Context-Adaptive Variable-Length Coding (CAVLC), the group of picture (GOP) structure, and any other encoding complexity features listed in AVC/H.264 specification.
  • CABAC Context-Based Adaptive Binary Arithmetic Coding
  • CAVLC Context-Adaptive Variable-Length Coding
  • the encoding controller
  • the record capture module 204 of the optimization proxy 108 is configured extract the decoder configuration record from the original media stream that is passed to the record capture module from the encoding controller 202.
  • the decoder configuration record i.e., the AVCDCR
  • the record capture module will typically retrieve the first video packets from the original video streams.
  • the record capture module transmits the extracted decoder configuration record to the encoding controller so that the information contained in the extracted decoder configuration record can be used for optimized encoding.
  • the record parser 206 of the optimization proxy 108 is configured to parse the decoder configuration record that is passed to the record parser from the encoding controller 202 to retrieve the information contained in the decoder configuration record.
  • at least some of the encoding complexity features indicated in the decoder configuration record are retrieved.
  • these encoding complexity features may include the media profile, the media level and the number and type of reference frames used.
  • theses video encoding complexity features may include the AVC/H.264 profile, the AVC/H.264 level associated with the profile and the number and type of reference frames used in the original H.264 video stream, and the encoding method used for the original H.264 vides stream.
  • At least some of the video encoding complexity features may be retrieved from sequence parameter set (SPS) and/or picture parameter set (PPS) records contained in the decoder configuration record.
  • SPS sequence parameter set
  • PPS picture parameter set
  • the record parser then transmits the retrieved encoding complexity features to the encoding controller so that these encoding complexity features can be used for optimized encoding.
  • the decoder 208 of the optimization proxy 108 is configured to decode the contents of the original media stream received from the encoding controller.
  • the contents may be compressed video frames of the original media stream.
  • the decoding process executed by the decoder typically involves decompression since most media streams are compressed during the original encoding process for transmission.
  • the decoding process executed by the decoder is a well know process, and thus, is not described herein in detail.
  • the decoder may be a conventional media decoder, such as an H.264 decoder, which is a common component for media receiving systems.
  • the optimized encoder 210 of the optimization proxy 108 is configured to encode the decoded contents of the media stream from the decoder 208, e.g., uncompressed video frames for a video stream, using the encoding parameters, which are provided by the encoding controller 202 from the encoding complexity features retrieved from the extracted decoder configuration record.
  • the encoding process executed by the optimized encoder typically involves compression since most media streams are compressed before being transmitted over one or more networks.
  • the optimized encoder is configured to encode the received contents of the media stream so that the resulting media stream is optimized for the end-user device to which the original media stream was transmitted.
  • the received decoded contents of the media stream are encoded by the optimized encoder using a lower bit rate than the bit rate used to encode the original media stream. In other embodiments, the received decoded contents of the media stream are encoded by the optimized encoder using the same or higher bit rate than the bit rate used to encode the original media stream. Regardless of the bit rate used, the optimized encoder encodes the received decoded contents of the media stream using the encoding parameters from the encoding controller so that the resulting encoded media stream has at least one encoding complexity features common with the original media stream. In an embodiment, the optimized encoder encodes the received media stream using the encoding parameters from the encoding controller so that the resulting encoded media stream has the same encoding complexity features as the original media stream. The encoded contents are transmitted to the encoding controller to be transmitted to the target end-user device to which the original media steam was being sent.
  • the media stream being operated on by the optimization proxy is a H.264 video stream.
  • the media stream processed by the optimization proxy can be other type of media streams.
  • the encoding controller passes the received original H.264 video stream to the record capture module 204, as indicated by the arrow 302.
  • the record capture module then extracts the AVCDCR from the original H.264 video stream, which may be the first video packet of the stream.
  • the record capture module sends the extracted AVCDCR to the encoding controller, as indicated by the arrow 304.
  • the encoding controller then passes the received AVCDCR to the record parser 206, as indicated by the arrow 306.
  • the record parser parses the AVCDCR to retrieve one or more H.264 encoding complexity features.
  • the record parser sends the retrieved H.264 encoding complexity feature to the encoding controller, as indicated by the arrow 308.
  • the encoding controller then processes the received H.264 encoding complexity features to determine encoding parameters that will result in an H.264 video stream with the same H.264 encoding complexity features as the original H.264 video stream.
  • the process of determining the encoding parameters from the H.264 encoding complexity features extracted from the AVCDCR is dependent on the encoder type of the optimized encoder 210.
  • the encoding controller transmits the encoding parameters to the optimized encoder 210 to setup the optimized encoder so that the original H.264 video stream can be re-encoded such that the same H.264 encoding complexity features as the original H.264 video stream are maintained in the re- encoded video stream, as indicated by the arrow 310.
  • the optimized encoder 210 may be configured so that the re-encoded video stream has the same AVC/H.264 profile, the same AVC/H.264 level associated with the profile, the same number and type of reference frames and the same GOP structure as the original H.264 video stream.
  • the encoding controller 202 passes compressed video frames from the original H.264 video stream to the decoder 208 for decoding, which involves decompression, as indicated by the arrow 312.
  • the decoder then sends the decoded/uncompressed video frames to the encoding controller, as indicated by the arrow 314.
  • the encoding controller passes the decoded/uncompressed video frames from the decoder to the optimized encoder 210 for re-encoding, as indicated by the arrow 316.
  • the optimized encoder encodes the decoded/uncompressed video frames using the encoding parameters provided by the encoding controller so that the resulting H.264 video stream will have the same H.264 encoding complexity features as the original H.264 video stream.
  • the video frames may be optimized, e.g., by encoding the video frames using a different frame rate, e.g., a lower frame rate, than the frame rate used in the original H.264 video stream.
  • the optimized encoder passes the encoded/compressed video frames to the encoding controller, as indicated by the arrow 318.
  • the encoding controller then multiplexes the encoded/compressed video frames to produce an output H.264 video stream, which is transmitted to the requesting end-user.
  • Fig. 4 depicts a computer 400 that includes a processor 402, memory 404, and a communications interface 406 that are connected to each other via a bus 408.
  • the processor may include a multifunction processor and/or an application-specific processor. Examples of processors include the PowerPCTM family of processors by IBM and the x86 family of processors by Intel.
  • the memory within the computer may include, for example, storage medium such as read only memory (ROM), flash memory, RAM, and a large capacity permanent storage device such as a hard disk drive.
  • the communications interface enables communications with other computers via, for example, the Internet Protocol (IP).
  • IP Internet Protocol
  • the computer executes computer readable instructions stored in the storage medium to implement various tasks as described above.
  • Fig. 5 is a process flow diagram of a method for optimizing media streams to be delivered to end-user devices over a communications network in accordance with an embodiment of the invention.
  • an original media stream from a content source is received at an optimization proxy.
  • a decoder configuration record is extracted from the original media stream.
  • the decoder configuration record is parsed to retrieve at least one encoding complexity feature of the original media stream.
  • encoding parameters are determined using the at least one encoding complexity feature.
  • contents of the original media stream are decoded to produce decoded contents of the original media stream.
  • the decoded contents of the original media stream are encoded using the encoding parameters to produce an output media stream, the output media stream having at least one media encoding complexity feature common with the original media stream.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

An optimization proxy and method for optimizing media streams to be delivered to end-user devices over a communications network utilizes a decoder configuration record in an original media stream to retrieve at least one encoding complexity feature of the original media stream. The encoding complexity feature is used to determine encoding parameters to be used to re- encode the contents of the original media stream to produce an output media stream having at least one encoding complexity feature with the original media stream.

Description

Method and Apparatus for Optimizing Media Streams
Technical Field
The present invention relates to a method and apparatus for optimizing media streams, in particular, but not exclusively, video streams.
Background
Media content, such as video content, is often times optimized before being delivered to end-user devices, such as desktop computers, laptop computers, a pad computers, or smartphones. A typical video optimization solution involves compressing the video content by re-encoding the original video content at a lower bit rate. Content providers that serve the video content are usually aware of the end-user devices and send specific videos targeted for the end-user devices. Thus, the videos are encoded to compliant with the device specifications so that the end-user devices can properly playback the video content. However, since there are numerous different end-user devices with each end-user device having its own specific technical specification and limitations on the codec and container format that the device supports, the content providers must accommodate all of these different end-user devices, which may involve encoding the same video content using different encoding techniques.
For H264 videos, this is further complicated because each user-device only supports a subset of all the features that H264 on its hardware. For example, a particular smartphone may only support baseline profile and 1 reference frame, and may not support "b" frames. If a video is re-encoded with any unsupported H264 features for a particular end-user device during optimization, then the video will not play on the that end-user device. Since maintaining a database of all possible encoding parameters for all possible end-user devices is not viable, the encoding parameters required by a subset of end-user devices are researched and added to a database, which must be updated as new end-user devices become available.
Summary
According to the invention there is provided the method of claim 1; According to the invention, there is also provided the optimization proxy of claim 9.
Other aspects and advantages of embodiments of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrated by way of example of the principles of the invention.
Brief Description of the Drawings
Fig. 1 is a schematic block diagram of a content delivery system in accordance with an embodiment of the invention.
Fig. 2 is a block diagram of the optimization proxy of the content delivery system in accordance with an embodiment of the invention.
Fig. 3 illustrates data exchanges between components of the optimization proxy in accordance with an embodiment of the invention.
Fig. 4 depicts a computer that includes a processor, memory, and a communications interface.
Fig. 5 is a process flow diagram of a method for transcoding a media stream that is delivered to an end-user device over a communications network in accordance with an embodiment of the invention.
Throughout the description, similar reference numbers may be used to identify similar elements.
Detailed Description
It will be readily understood that the components of the embodiments as generally described herein and illustrated in the appended figures could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of various embodiments, as represented in the figures, is not intended to limit the scope of the present disclosure, but is merely representative of various embodiments. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by this detailed description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Reference throughout this specification to features, advantages, or similar language does not imply that all of the features and advantages that may be realized with the present invention should be or are in any single embodiment. Rather, language referring to the features and advantages is understood to mean that a specific feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment. Thus, discussions of the features and advantages, and similar language, throughout this specification may, but do not necessarily, refer to the same embodiment.
Furthermore, the described features, advantages, and characteristics of the invention may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, in light of the description herein, that the invention can be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the invention.
Reference throughout this specification to "one embodiment," "an embodiment," or similar language means that a particular feature, structure, or characteristic described in connection with the indicated embodiment is included in at least one embodiment. Thus, the phrases "in one embodiment," "in an embodiment," and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
Fig. 1 depicts a schematic block diagram of a content delivery system 100 in accordance with an embodiment of the invention. The content delivery system includes a wireless device 102, a radio access network 104, a data gateway 106, an optimization proxy 108, an Internet gateway 110, the Internet 112, and a content source 114. Although the content delivery system is depicted and described with certain components and functionality, other embodiments of the content delivery system may include fewer or more components to implement less or more functionality. For example, the content delivery system may include more than one wireless device, more than one radio access network, more than one data gateway, more than one optimization proxy, more than one Internet gateway, and/or more than one content source.
The content delivery system 100 may include any type of end-user device(s) configured to request content from the content source 114 on behalf of at least one end-user and to render received content for presentation to the end-user. The content may be any type of media content. In the embodiment depicted in Fig. 1, the content is a media stream, which is time- sensitive media content that is continuously received by and presented to an end-user while being delivered by the content source. The media stream may be a video stream and/or a non-video stream such as an audio stream, or any combination thereof. For example, the media stream may be a live broadcast of an event over the Internet 112. In another example, the media stream is an Internet radio broadcast. In yet another example, the media stream is an on- demand music stream. The end-user may be a single person, multiple persons, other entity or entities. In the embodiment depicted in Fig. 1, the content delivery system includes an end-user device that is implemented as the wireless device 102. Although the content delivery system is shown in Fig. 1 as including one wireless device, in other embodiments, the content delivery system may include multiple wireless devices.
The wireless device 102 of the content delivery system 100 is typically a handheld wireless device, such as a cell phone, a mobile phone, a smartphone, a pad computer, a Personal Digital Assistant (PDA), a handheld gaming device etc, which can wirelessly communicate using radio frequency (RF) communications signals. The wireless device can support various different RF communications protocols, including without limitation, Global System for Mobile communications (GSM), Universal Mobile Telecommunications System (UMTS), Code Division Multiple Access (CDMA), Worldwide Interoperability for Microwave Access (WiMax) and communications protocols as defined by the 3rd Generation Partnership Project (3 GPP) or the 3rd Generation Partnership Project 2 (3GPP2), 4G Long Term Evolution (LTE) and IEEE 802.16 standards bodies. Although some wireless communications protocols are identified herein, it should be understood that the present disclosure is not limited to the cited wireless communications protocols.
The radio access network 104 of the content delivery system 100 is configured to facilitate radio communications between the wireless device 102 and a core network that includes the data gateway 106, the optimization proxy 108, the Internet gateway 110, the Internet 112, and the content source 114. In an embodiment, the radio access network includes one or more base stations to facilitate communications among wireless devices that are within a communications range of the base stations. Each base station has at least one RF transceiver and the base stations communicate with the wireless devices using RF communications signals. The radio access network facilitates network communications among multiple wireless devices within the same radio access network and between wireless devices in other radio access networks and provides interfaces to facilitate communications with other entities, such as a Public Switched Telephone Network (PSTN), a Wide Area Network (WAN), the Internet, Internet servers, hosts, etc., which are outside of the radio access network. In an embodiment, the network elements depicted in Fig. 1 are part of a wireless network that is operated by a single wireless service provider.
Data signals communicated between the wireless device 102 and the radio access network 104 include, but are not limited to, analog and/or digital RF signals (i.e., radio waves) for any type of communications mode, including text messaging, multimedia messaging, voice calling, and Internet browsing. The radio access network can support various different RF communications protocols, including without limitation, GSM, UMTS, CDMA, WiMax and communications protocols as defined by 3GPP, 3GPP2, or IEEE 802.16. Although some wireless communications protocols are identified herein, it should be understood that present disclosure is not limited to the cited wireless communications protocols.
Although the content delivery system 100 depicted in Fig. 1 includes the wireless device 102 and the radio access network 104, in other embodiments, the content delivery system includes at least one wired device instead of the wireless device and at least one wired communications network instead of the radio access network. The wired device may be a wired communications device that is configured to request content from the content source 1 14 on behalf of an end-user and to render received content for presenting to the end-user. The wired communications network may be a wired access network such as a dial-up, digital subscriber line (DSL), or cable modem based Internet service provider (ISP) network or a private enterprise network. The wired communications network facilitates communications between the wired communications device and the core network that includes the data gateway 106, the transcoding proxy 108, the Internet gateway 110, the Internet 112, and the content source 114. The wired device may be, for example, a computer equipped with an Ethernet card and the wired communications network may be an Ethernet local area network (LAN). In some embodiments, the content delivery system includes a combination of at least one wireless device, at least one radio access network, at least one wired device, and at least one wired communications network.
The data gateway 106 of the content delivery system 100 configures outgoing data access requests for use with one or more networks and configures incoming data for use by or display on the wireless device 102. As shown, the data gateway interfaces directly with the radio access network 104 and the optimization proxy 108. However, in other embodiments, there may be other intermediate functional elements between the data gateway, the radio access network and the optimization proxy. In an embodiment, the data gateway uses GPRS Tunneling Protocol (GTP) to communicate with the radio access network. In other embodiments, the data gateway may use other communications protocols. The data gateway performs other conventional operations, which are known and thus not described herein. For example, the data gateway enables users of wireless devices to roam between cells, for example, to move between different locations within the radio access network, by tracking the wireless device's identity across the network. The data gateway may also provide authentication and data formatting functions.
The optimization proxy 108 of the content delivery system 100 is configured to optimize a media stream that is delivered to the wireless device 102 through the access network. In particular, the optimization proxy is configured to extract a decoder configuration record from a received media stream to retrieve encoding complexity features from the decoder configuration record. As used herein, encoding complexity features include encoding information and media format information of a media stream. A decoder configuration record is a record embedded in a media stream or file parameters used to encode the media stream. This decoder configuration record is used by a decoder in a receiving device to decode the media stream so that the media stream can be played back properly. For a H.264 video stream or file, the decoder configuration record is referred to as Advanced Video Coding (AVC) Decoder Configuration Record (AVCDCR), which is normally the first video packet in the video stream. In an embodiment, the AVCDCR contains at least an AVC/H.264 profile indication value, an AVC/H.264 level indication value and flags that indicate profile compatibility, as well as other encoding complexity feature information, as described in more detail below. The data contained in a decoder configuration record provide information regarding how that media stream was encoded and what features are enabled in the media stream, which depend on format of the media stream. The optimization proxy uses the encoding and format enabled feature information in the decoder record to determine the encoding parameters that must be used to optimize the video stream so that the video stream can be played on the end-user device to which the original video stream was being transmitted. This is based on an assumption that the original video stream provided by the content provider would have properly played on the end-user device.
Although the optimization proxy 108 is shown in Fig. 1 as being located between the data gateway 106 and the Internet gateway 110, the optimization proxy can be located anywhere within the content delivery system 100. In addition, the optimization proxy can be located in a single device or distributed amongst multiple devices. For example, the optimization proxy may be implemented in a HTTP proxy server or in another network device. Alternatively, the optimization proxy may be implemented as a standalone network device. In an embodiment, the optimization proxy is located anywhere in the data path between the wireless device 102 and the content source 114. For example, the optimization proxy may be located between the wireless device and the radio access network, between the radio access network and the data gateway, between the Internet gateway and the Internet 112, and/or between the Internet and the content source. In another embodiment, the optimization proxy may be integrated within or located within at least one component of the content delivery system. The optimization proxy may be integrated within the radio access network 104, the data gateway, the Internet gateway, and/or the content source 114, or located within the Internet. For example, the optimization proxy may be located in a base station or a data center in the radio access network of a wireless carrier, such as, a cellular communications carrier. As another example, the optimization proxy may be integrated within the Internet gateway of a wireless ISP or a wired ISP. In yet another embodiment, the optimization proxy may be located in the Internet as well as in a private network connected to the Internet. For example, some component of the optimization proxy may be located in the Internet while the rest of the optimization proxy may be located in the private network.
The Internet gateway 110 of the content delivery system 100 provides a gateway for communications between the wireless device 102 and Internet-connected hosts and/or servers in the Internet 112, which can also be referred to as the "cloud." The Internet gateway may include a Serving General Packet Radio Service (GPRS) Support Node (SGSN) and a Gateway GPRS Support Node (GGSN). For example, the Internet gateway can be a Wireless Application Protocol (WAP) gateway that converts the WAP protocol used by the radio access network to the HTTP protocol used by the Internet. In an embodiment, the Internet gateway enables wireless devices to access multimedia content, which may include, but not limited to, HTTP media stream, Real Time Messaging Protocol (RTMP) media stream, Internet Protocol (IP) / User Datagram Protocol (UDP) Multicasts and Real Time Stream Protocol (RTSP) media streams, from Internet-connected hosts and/or servers. In the embodiment depicted in Fig. 1, the radio access network 104, the data gateway 106, the optimization proxy 108, and the Internet gateway are located in an access network 1 11. In the embodiment depicted in Fig. 1, the access network provides access to the Internet. Typical access networks include wireless service provider networks (e.g. that offer 3G, 4G and/or WiFi access) and ISPs (e.g., that offer dial-up, DSL, and/or cable modem access). A private enterprise network can also serve as an access network if client devices within the private enterprise network can access the Internet through the private enterprise network. The access network may be administered by a single entity or different entities. For example, the access network may be managed by a single ISP, a single wireless service provider, or a private enterprise.
The content source 114 of the content delivery system 100 is configured to store media content, to process requests for media content from the wireless device 102, and to stream requested media content to the wireless device over at least one streaming protocol. The content source may store video content and/or non-video content such as text files, webpage files, image files, audio files, or any combination thereof. In an embodiment, the media content stored in the content source is encoded, which includes compression. For example, the content source may include a content encoder (not shown) to encode original video content or include a content database (not shown) that stores pre-encoded media content. The content source may serve media content over a single transport protocol or more than one transport protocol. In an embodiment, the content source serves video content over HTTP such as HTTP-Adaptive Streaming (HTTP -AS) and/or real time streaming protocol (RTSP) or other similar protocols. The content source may be an HTTP server. In an embodiment, the content source may be part of a video web site. Although the content delivery system is shown in Fig. 1 as including a single content source, the content delivery system may include multiple content sources in some embodiments. The multiple content sources may be distributed among different devices in a network.
Turning now to Fig. 2, components of the optimization proxy 108 in accordance with an embodiment of the invention are illustrated. As shown in Fig. 2, the optimization proxy includes an encoding controller 202, a record capture module 204, a record parser 206, a decoder 208 and an optimized encoder 210. These components of the optimization proxy represent functional blocks, and can be implemented in any combination of software, hardware and firmware. As an example, in one embodiment, one or both of the decoder and the encoder may be implemented as software. In another embodiment, one or both of the decoder and the encoder may be implemented as hardware.
The encoding controller 202 of the optimization proxy 108 is configured receive and process media streams received by the optimization proxy. The encoding controller is configured to pass the original media stream to the record capture module 204 so that the decoder configuration record can be extracted. The encoding controller is also configured to pass the contents of the original media stream, e.g., frames of a video stream, to the decoder 208 so that the contents of the original media stream can be decoded, which may involve decompression. The encoding controller is also configured to analyze the information retrieved from the extracted decoder configuration record to determine encoding parameters that would result in an encoded media stream having the same encoding complexity features as the original media stream. The analysis of the decoder configuration record may involve examining various encoding complexity features of the original media stream, such as, for example, the media profile, the media level associated with the media profile, number and type of reference frames used in the media stream and encoding method used for the original media stream. Once the encoding parameters are determined, these encoding parameters are then used to setup the optimized encoder 210. For H.264 video streams, these encoding complexity features may include the AVC/H.264 profile (e.g., Baseline, Main, Extended and High), the AVC/H.264 level associated with the profile (e.g., 1, lb, 1.1 , 1.2, 1.3, 2, 2.1 , 2.2, 3, 3.1 , 3.2, 4, 4.1, 4.2, 5 and 5.1) and the number and type of reference frames used in the original H.264 video stream (e.g., up to 16 reference frames are used and b frames are supported), the encoding method used for the original H.264 video stream, such as Context-Based Adaptive Binary Arithmetic Coding (CABAC) or Context-Adaptive Variable-Length Coding (CAVLC), the group of picture (GOP) structure, and any other encoding complexity features listed in AVC/H.264 specification. In an embodiment, the encoding controller may configure the optimized encoder directly using the encoding parameters, for example, by setting certain bit in one or more registers used by the optimized encoder or by updating a table used by the optimized encoder.
The record capture module 204 of the optimization proxy 108 is configured extract the decoder configuration record from the original media stream that is passed to the record capture module from the encoding controller 202. For an H.264 video stream, the decoder configuration record, i.e., the AVCDCR, is normally the first video packet. Thus, for H.264 video streams, the record capture module will typically retrieve the first video packets from the original video streams. The record capture module then transmits the extracted decoder configuration record to the encoding controller so that the information contained in the extracted decoder configuration record can be used for optimized encoding.
The record parser 206 of the optimization proxy 108 is configured to parse the decoder configuration record that is passed to the record parser from the encoding controller 202 to retrieve the information contained in the decoder configuration record. In particular, at least some of the encoding complexity features indicated in the decoder configuration record are retrieved. As previously mentioned, these encoding complexity features may include the media profile, the media level and the number and type of reference frames used. For H.264 video streams, theses video encoding complexity features may include the AVC/H.264 profile, the AVC/H.264 level associated with the profile and the number and type of reference frames used in the original H.264 video stream, and the encoding method used for the original H.264 vides stream. In an embodiment, at least some of the video encoding complexity features may be retrieved from sequence parameter set (SPS) and/or picture parameter set (PPS) records contained in the decoder configuration record. The record parser then transmits the retrieved encoding complexity features to the encoding controller so that these encoding complexity features can be used for optimized encoding.
The decoder 208 of the optimization proxy 108 is configured to decode the contents of the original media stream received from the encoding controller. For video streams, the contents may be compressed video frames of the original media stream. The decoding process executed by the decoder typically involves decompression since most media streams are compressed during the original encoding process for transmission. The decoding process executed by the decoder is a well know process, and thus, is not described herein in detail. The decoder may be a conventional media decoder, such as an H.264 decoder, which is a common component for media receiving systems.
The optimized encoder 210 of the optimization proxy 108 is configured to encode the decoded contents of the media stream from the decoder 208, e.g., uncompressed video frames for a video stream, using the encoding parameters, which are provided by the encoding controller 202 from the encoding complexity features retrieved from the extracted decoder configuration record. The encoding process executed by the optimized encoder typically involves compression since most media streams are compressed before being transmitted over one or more networks. The optimized encoder is configured to encode the received contents of the media stream so that the resulting media stream is optimized for the end-user device to which the original media stream was transmitted. In an embodiment, the received decoded contents of the media stream are encoded by the optimized encoder using a lower bit rate than the bit rate used to encode the original media stream. In other embodiments, the received decoded contents of the media stream are encoded by the optimized encoder using the same or higher bit rate than the bit rate used to encode the original media stream. Regardless of the bit rate used, the optimized encoder encodes the received decoded contents of the media stream using the encoding parameters from the encoding controller so that the resulting encoded media stream has at least one encoding complexity features common with the original media stream. In an embodiment, the optimized encoder encodes the received media stream using the encoding parameters from the encoding controller so that the resulting encoded media stream has the same encoding complexity features as the original media stream. The encoded contents are transmitted to the encoding controller to be transmitted to the target end-user device to which the original media steam was being sent.
The operation of the optimization proxy 108 in accordance with an embodiment of the invention is now described with reference to Fig. 3, which illustrates data exchanges between components of the optimization proxy. In this embodiment, the media stream being operated on by the optimization proxy is a H.264 video stream. However, as noted above, the media stream processed by the optimization proxy can be other type of media streams.
As shown in Fig. 3, when the encoding controller 202 receives an original
H.264 video stream from the content source 114 (not shown in Fig. 3), the encoding controller passes the received original H.264 video stream to the record capture module 204, as indicated by the arrow 302. The record capture module then extracts the AVCDCR from the original H.264 video stream, which may be the first video packet of the stream. Next, the record capture module sends the extracted AVCDCR to the encoding controller, as indicated by the arrow 304. The encoding controller then passes the received AVCDCR to the record parser 206, as indicated by the arrow 306. The record parser then parses the AVCDCR to retrieve one or more H.264 encoding complexity features. Next, the record parser sends the retrieved H.264 encoding complexity feature to the encoding controller, as indicated by the arrow 308. The encoding controller then processes the received H.264 encoding complexity features to determine encoding parameters that will result in an H.264 video stream with the same H.264 encoding complexity features as the original H.264 video stream. The process of determining the encoding parameters from the H.264 encoding complexity features extracted from the AVCDCR is dependent on the encoder type of the optimized encoder 210. Next, the encoding controller transmits the encoding parameters to the optimized encoder 210 to setup the optimized encoder so that the original H.264 video stream can be re-encoded such that the same H.264 encoding complexity features as the original H.264 video stream are maintained in the re- encoded video stream, as indicated by the arrow 310. In some embodiments, the optimized encoder 210 may be configured so that the re-encoded video stream has the same AVC/H.264 profile, the same AVC/H.264 level associated with the profile, the same number and type of reference frames and the same GOP structure as the original H.264 video stream.
Next, the encoding controller 202 passes compressed video frames from the original H.264 video stream to the decoder 208 for decoding, which involves decompression, as indicated by the arrow 312. The decoder then sends the decoded/uncompressed video frames to the encoding controller, as indicated by the arrow 314. The encoding controller passes the decoded/uncompressed video frames from the decoder to the optimized encoder 210 for re-encoding, as indicated by the arrow 316. The optimized encoder encodes the decoded/uncompressed video frames using the encoding parameters provided by the encoding controller so that the resulting H.264 video stream will have the same H.264 encoding complexity features as the original H.264 video stream. However, in the encoding processes, the video frames may be optimized, e.g., by encoding the video frames using a different frame rate, e.g., a lower frame rate, than the frame rate used in the original H.264 video stream. Next, the optimized encoder passes the encoded/compressed video frames to the encoding controller, as indicated by the arrow 318. The encoding controller then multiplexes the encoded/compressed video frames to produce an output H.264 video stream, which is transmitted to the requesting end-user.
In an embodiment, at least one of the functionalities of components of the content delivery system 100, such as the optimization proxy 108 of Fig. 1, is performed by a computer that executes computer readable instructions. Fig. 4 depicts a computer 400 that includes a processor 402, memory 404, and a communications interface 406 that are connected to each other via a bus 408. The processor may include a multifunction processor and/or an application-specific processor. Examples of processors include the PowerPC™ family of processors by IBM and the x86 family of processors by Intel. The memory within the computer may include, for example, storage medium such as read only memory (ROM), flash memory, RAM, and a large capacity permanent storage device such as a hard disk drive. The communications interface enables communications with other computers via, for example, the Internet Protocol (IP). The computer executes computer readable instructions stored in the storage medium to implement various tasks as described above.
Fig. 5 is a process flow diagram of a method for optimizing media streams to be delivered to end-user devices over a communications network in accordance with an embodiment of the invention. At block 502, an original media stream from a content source is received at an optimization proxy. At block 504, a decoder configuration record is extracted from the original media stream. At block 506, the decoder configuration record is parsed to retrieve at least one encoding complexity feature of the original media stream. At block 508, encoding parameters are determined using the at least one encoding complexity feature. At block 510, contents of the original media stream are decoded to produce decoded contents of the original media stream. At block 512, the decoded contents of the original media stream are encoded using the encoding parameters to produce an output media stream, the output media stream having at least one media encoding complexity feature common with the original media stream.
In the above description, specific details of various embodiments are provided. However, some embodiments may be practiced with less than all of these specific details. In other instances, certain methods, procedures, components, structures, and/or functions are described in no more detail than to enable the various embodiments of the invention, for the sake of brevity and clarity.
Although specific embodiments of the invention have been described and illustrated, the invention is not to be limited to the specific forms or arrangements of parts so described and illustrated. The scope of the invention is to be defined by the claims appended hereto.

Claims

Claims
1. A method for optimizing media streams to be delivered to end-user devices over a communications network, the method comprising:
receiving an original media stream from a content source at an optimization proxy;
extracting a decoder configuration record from the original media stream;
parsing the decoder configuration record to retrieve at least one encoding complexity feature of the original media stream;
determining encoding parameters using the at least one encoding complexity feature;
decoding contents of the original media stream to produce decoded contents of the original media stream;
encoding the decoded contents of the original media stream using the encoding parameters to produce an output media stream, the output media stream having at least one encoding complexity feature common with the original media stream.
2. The method of claim 1, wherein the original media stream is a video stream, and wherein the extracting includes extracting the decoder configuration record from the video stream.
3. The method of claim 2, wherein the parsing includes parsing the decoder configuration record to retrieve at least one video encoding complexity feature of the video stream, the at least one video encoding complexity feature including at least one of a video profile, a video level, an encoding method used to encode the video frame and reference frame information of the video stream.
4. The method of claim 2 or claim 3, wherein the extracting includes extracting an Advanced Video Coding Decoder Configuration Record from the video stream.
5. The method of any of claims 2 to 4, wherein the parsing includes parsing the Advanced Video Coding decoder configuration record to retrieve at least one video encoding complexity feature of the video stream, the at least one encoding complexity feature including at least one of an AVC profile, an AVC level associated with the AVC profile, an encoding method used to encode the video frame and a reference frame information of the video stream.
6. The method of claim 5, wherein the encoding includes encoding the decoded contents of the video stream using the encoding parameters to produce the output media stream with the same video encoding complexity features as the original media stream to ensure that the output media stream can be played by the end-user device.
7. The method of any preceding claim, wherein the encoding includes encoding the decoded contents of the original media stream using a bit rate that is different than the bit rate used to encode the original media stream.
8. The method of claim 7, wherein the encoding includes encoding the decoded contents of the original media stream using a lower bit rate than the bit rate used to encode the original media stream.
9. An optimization proxy comprising:
a record capture module configured to extract a decoder configuration record from an original media stream from a content source;
a record parser coupled to the record capture module to receive the decoder configuration record, the record parser being configured to parse the decoder configuration record to retrieve at least one encoding complexity feature of the original media stream; an encoding controller coupled to the record parser to receive the at least one encoding complexity feature of the original media stream, the encoding controller being configured to determine encoding parameters using the at least one encoding complexity feature;
a decoder coupled to the encoding controller to decode contents of the original media stream to produce decoded contents of the original media stream; and
an encoder coupled to the encoding controller and the decoder, the encoder being configured to encode the decoded contents of the original media stream using the encoding parameters to produce an output media stream, the output media stream having at least one encoding complexity feature common with the original media stream.
10. The optimization proxy of claim 9, wherein the original media stream is a video stream, and wherein the record capture module is configured to extract the decoder configuration record from the video stream.
11. The optimization proxy of claim 10, wherein the record parser is configured to parse the decoder configuration record to retrieve at least one video encoding complexity feature of the video stream, the at least one video encoding complexity feature including at least one of a video profile, a video level, an encoding method used to encode the video frame and reference frame information of the video stream.
12. The optimization proxy of claim 10 or claim 11, wherein the record capture module is configured to extract an Advanced Video Coding Decoder Configuration Record from the video stream.
13. The optimization proxy of claim 12, wherein the record parser is configured to parse the Advanced Video Coding decoder configuration record to retrieve at least one encoding complexity feature of the video stream, the at least one encoding complexity feature including at least one of an AVC profile, an AVC level associated with the AVC profile, an encoding method used to encode the video frame and a reference frame information of the video stream.
14. The optimization proxy of any of claims 1 1 to 13, wherein the encoder is configured to encode the decoded contents of the video stream using the encoding parameters to produce the output media stream with the same video encoding complexity features as the original media stream to ensure that the output media stream can be played by the end-user device.
15. The optimization proxy of any of claim 9 to 14, wherein the encoder is configured to encode the decoded contents of the original media stream using a bit rate that is different than the bit rate used to encode the original media stream.
16. The optimization proxy of claim 15, wherein the encoding includes encoding the decoded contents of the original media stream using a lower bit rate than the bit rate used to encode the original media stream.
17. An optimization proxy according to any of claims 9 to 16 wherein the the decoder is configured to decode compressed frames of the original media stream to produce uncompressed frames of the original media stream; and the encoder is configured to encode the uncompressed frames of the original media stream using the encoding parameters to produce the output media stream.
18. A computer programme comprising instructions for implementing the method of any of claims 1 to 8 when executed by a computing system.
PCT/EP2012/060812 2011-06-07 2012-06-07 Method and apparatus for optimizing media streams WO2012168373A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161494313P 2011-06-07 2011-06-07
US61/494,313 2011-06-07

Publications (1)

Publication Number Publication Date
WO2012168373A1 true WO2012168373A1 (en) 2012-12-13

Family

ID=46262101

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2012/060812 WO2012168373A1 (en) 2011-06-07 2012-06-07 Method and apparatus for optimizing media streams

Country Status (1)

Country Link
WO (1) WO2012168373A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150163271A1 (en) * 2011-12-22 2015-06-11 Telefonaktiebolaget L M Ericsson (Publ) Apparatus and method for monitoring performance in a communications network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008098249A1 (en) * 2007-02-09 2008-08-14 Dilithium Networks Pty Ltd. Method and apparatus for the adaptation of multimedia content in telecommunications networks
WO2011046618A2 (en) * 2009-10-15 2011-04-21 Bytemobile, Inc. Budget encoding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008098249A1 (en) * 2007-02-09 2008-08-14 Dilithium Networks Pty Ltd. Method and apparatus for the adaptation of multimedia content in telecommunications networks
WO2011046618A2 (en) * 2009-10-15 2011-04-21 Bytemobile, Inc. Budget encoding

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"INTERNATIONAL STANDARD ISO/IEC 14496-12 Information technology Coding of audio-visual objects Part 12: ISO base media file format", INTERNET CITATION, 1 January 2005 (2005-01-01), pages 1 - 84, XP007914375, Retrieved from the Internet <URL:http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=41828> [retrieved on 20100811] *
"ISO/IEC 14496-14:2003 Information technology -- Coding of audio-visual objects -- Part 14: MP4 file format", INTERNATIONAL STANDARD ISO/IEC, XX, XX, vol. ISO/IEC 14496-14, 15 November 2003 (2003-11-15), pages 1 - 11, XP009157818 *
"ISO/IEC 14496-15:2004 Information technology -- Coding of audio-visual objects -- Part 15: Advanced Video Coding (AVC) file format", INTERNATIONAL STANDARD ISO/IEC, XX, XX, vol. 14496-15, 15 April 2004 (2004-04-15), pages 1 - 23, XP009157819 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150163271A1 (en) * 2011-12-22 2015-06-11 Telefonaktiebolaget L M Ericsson (Publ) Apparatus and method for monitoring performance in a communications network

Similar Documents

Publication Publication Date Title
US8782165B2 (en) Method and transcoding proxy for transcoding a media stream that is delivered to an end-user device over a communications network
US10264093B2 (en) Systems and methods for partial video caching
RU2658642C1 (en) Video quality improvement
JP6378260B2 (en) Method and apparatus for smooth stream switching in MPEG / 3GPP-DASH
TWI714602B (en) Middleware delivery of dash client qoe metrics
CN108712654B (en) Audio and video stream transcoding method and device
RU2606064C2 (en) Quality management streaming
US9042449B2 (en) Systems and methods for dynamic transcoding of indexed media file formats
US20140372624A1 (en) Mediating content delivery via one or more services
EP2453617A1 (en) Delivering system, method, gateway apparatus and program
JP2015524235A (en) Device and method for multimedia communication with picture orientation information
CN103329521A (en) Methods, apparatuses and computer program products for pausing video streaming content
US20140109153A1 (en) Expansion of a Stream Set and Transcoding of HTTP Adaptive Streaming Videos in a Mobile Network
CN111656791B (en) Signaling and reporting interactivity usage in streaming services
US20130111528A1 (en) Dynamic provisioning of closed captioning to user devices
US20120124633A1 (en) Wireless Video Streaming Quality Management for Bandwidth Constrained Cellular Network
US20120017249A1 (en) Delivery system, delivery method, conversion apparatus, and program
WO2012168373A1 (en) Method and apparatus for optimizing media streams
US20220239601A1 (en) Background data traffic distribution of media data
WO2014058431A1 (en) Expansion of a stream set and transcoding of http adaptive streaming videos in a mobile network
KR20220157957A (en) Determination of Availability of Chunks of Data for Network Streaming of Media Data
US20240196024A1 (en) Live Video Playback
JP2018534857A (en) Method and apparatus for transmitting and receiving multimedia data
WO2022164862A1 (en) Background data traffic distribution of media data
KR20130029235A (en) Method for transcoding streaming vedio file into streaming vedio file in real-time

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12727140

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12727140

Country of ref document: EP

Kind code of ref document: A1