WO2001024530A2 - Streaming media encoding agent for temporal modifications - Google Patents

Streaming media encoding agent for temporal modifications Download PDF

Info

Publication number
WO2001024530A2
WO2001024530A2 PCT/US2000/026832 US0026832W WO0124530A2 WO 2001024530 A2 WO2001024530 A2 WO 2001024530A2 US 0026832 W US0026832 W US 0026832W WO 0124530 A2 WO0124530 A2 WO 0124530A2
Authority
WO
WIPO (PCT)
Prior art keywords
media
temporal
client
streaming media
media content
Prior art date
Application number
PCT/US2000/026832
Other languages
French (fr)
Other versions
WO2001024530A3 (en
Inventor
Martin Tobias
Beverly Kite
Mat Mathews
Original Assignee
Loudeye Technologies, 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 Loudeye Technologies, Inc. filed Critical Loudeye Technologies, Inc.
Priority to AU77353/00A priority Critical patent/AU7735300A/en
Priority to EP00967103A priority patent/EP1221238A2/en
Publication of WO2001024530A2 publication Critical patent/WO2001024530A2/en
Publication of WO2001024530A3 publication Critical patent/WO2001024530A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/53Centralised arrangements for recording incoming messages, i.e. mailbox systems
    • H04M3/5307Centralised arrangements for recording incoming messages, i.e. mailbox systems for recording messages comprising any combination of audio and non-audio components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/27Server based end-user applications
    • H04N21/274Storing end-user multimedia data in response to end-user request, e.g. network recorder
    • H04N21/2743Video hosting of uploaded data from client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/60Medium conversion

Definitions

  • the present invention relates to the encoding of streaming media files and more specifically to a mechanism that provides for the speeding up and slowing down of streaming media files.
  • the viewers of digital video desire the same functionality from the providers of digital video as they now enjoy while watching analog video tapes on video cassette recorders. For example, viewers want to be able to make the video jump ahead, jump back, fast forward, fast rewind, slow forward, slow rewind and freeze frame.
  • digital video delivered to a particular destination (the "client") is encoded to allow for playback at a specific rate.
  • the user is typically required to play the entire video at one static rate as they generally have no mechanism for altering the playback speed of the video.
  • the amplitude of the video signal is altered such that the video sound will be undesirably distorted.
  • a method for playing digital content at a client is disclosed.
  • a plurality of versions of the digital content is generated.
  • Each version of the plurality of versions is generated with the same amplitude but a different wavelength relative to the other plurality of versions.
  • a selected version of the plurality of versions is used for playing back the content.
  • a change is made as to which of the plurality of versions to be used as the selected version.
  • a method for incorporating temporal modifications in streaming media content is performed by generating one or more temporal media files by applying a temporal encoding process to media content. Streaming media data based on the one or more temporal media files is then generated. The streaming media data is delivered to a client and can be played at the client at multiple play rates.
  • the invention also encompasses a computer-readable medium, a computer data signal embodied in a carrier wave, and an apparatus configured to carry out the foregoing steps.
  • FIG. 1A is a block diagram of a temporal media encoding system in which certain embodiments of the invention may be used;
  • FIG. IB is another block diagram of a temporal media encoding system in which certain embodiments of the invention may be used;
  • FIG. 2 illustrates example of how applying the temporal encoding process allows streaming media data to be sent from the server side at one rate and played on the client side at a dynamically changing second rate;
  • FIG. 3 is a flow diagram that illustrates a method for incorporating temporal modifications in streaming media content in accordance with certain embodiments of the invention
  • FIG. 4 is a block diagram of a computer system on which embodiments may be implemented.
  • FIG. 5 is a block diagram that illustrates an example of another temporal media encoding system configuration in which certain embodiments of the invention may be used.
  • live feed information refers to information that may be received from analog or digital cameras, satellite or cable feeds or any other mechanism that is capable of providing live feed information.
  • media content includes one or more of a variety of different types of pre-recorded information, and/or live feed information.
  • the "wavelength" of a media content signal refers to the horizontal length of one cycle of the wave and can be calculated by measuring the distance between any two successive equivalent points on the wave.
  • the "amplitude" of a media content signal refers to the distance between a crest or a trough on the wave and its undisturbed position.
  • the "period" of a media content signal refers to the time required to complete one full cycle of motion.
  • the "frequency" of a wave is merely the reciprocal of the period, or the number of cycles completed in one second. Both the period and the frequency are dependent on the wavelength of the wave. If the media content signal has a long wavelength then its frequency would be lower than if had a short wavelength.
  • the "speed" of a media content signal refers to the rate of presentation of audio or video in the media file, based on changes in frequency of the wave for audio, or number of frames presented for video.
  • a “temporal” modification refers to a change in the frequency of a wave without a corresponding change in the amplitude of a wave.
  • a “temporal media file” refers to a media file which, using temporal modification, the speed of the audio and video is changed through modification of the frequency of the waveform and frame rate of the video.
  • variable speed media file refers to a media file that contains data from multiple temporal media files, where the data from the multiple temporal media files within the variable speed media file can be played selectively based on the user's preferences for presentation of the file.
  • a streaming media encoding mechanism is configured as a modular collection of methods or processes to manipulate the temporal nature of time-based media, and to encode streaming media data for Internet and broadband playback.
  • the process of manipulating the temporal nature of time-based media involves modifying the frequency of the wave by reducing the wavelength of the wave without modifying the amplitude of the wave. If necessary, the process also involves dropping corresponding frames in the media signal to synchronize audio and video.
  • the streaming media encoding mechanism employs a temporal encoding process that alters the frequency of the media content signal independent of the amplitude, and removes frames, to generate one or more temporal media files.
  • the one or more temporal media files are then bound together and encoded into streaming media packets to emulate variable speed streaming media data.
  • Each packet includes a portion of each of the one or more temporal media files.
  • Header information is attached to each of the packets describing the packets contents.
  • a user may dynamically adjust the playback speed of the streaming media data to emulate different playback rates, such as the "fast- forward" or "slow" functions of a media player.
  • FIG. 1A is a block diagram of a temporal media encoding system 100 in which certain embodiments of the invention may be used.
  • temporal media encoding system 100 includes a server 102, a client 110, and one or more network systems 118.
  • server 102 and client 110 are connected through one or more network systems 118.
  • These one or more network systems may include, but are not limited to, Local Area Networks (LAN), and Wide Area Networks (WAN), including the Internet and/or other wireless communication mechanisms and/or communication mediums.
  • LAN Local Area Networks
  • WAN Wide Area Networks
  • embodiments of the invention are not limited to any particular type of communication mechanism, medium or protocol.
  • Server 102 is a combination of hardware and/or software components that are configured for encoding media content with temporal modifications to create one or more temporal media files.
  • the one or more temporal media files are combined and encoded in streaming media format to produce variable speed streaming media data.
  • server 102 includes a phase encoding unit 104, a streaming encoding unit 106 and a delivery unit 108.
  • the phase encoding unit 104 is configured for generating temporal media files by applying a temporal encoding process to media content.
  • phase encoding unit 104 is used to manipulate the temporal nature of time-based content media to generate a set of temporal media files.
  • the streaming encoding unit 106 is configured to encode the one or more temporal media files into streaming media format ("streaming media data").
  • Streaming encoding unit 106 may represent a variety of different types of encoders that are capable of encoding data in a particular encoding format.
  • streaming encoding unit 106 may be configured as a Real, Windows Media, Liquid Audio, MPEG, A2B, Audiobase, MP3, Blade, Xing, QuickTime or any other similar type of encoder.
  • streaming encoding unit 106 may be either an "off-the-self ' encoding unit or a proprietary encoding unit, as embodiments of the invention are not limited to any particular type of encoder.
  • streaming encoding unit 106 stores the streaming media data as one or more media files in a storage unit 120.
  • Storage unit 120 may represent a nonvolatile storage device that is part of server 102 or instead may be a separate storage unit that is accessible to server 102, for example over a network with delivery unit 108 to provide the streaming media data, thus potentially reducing the overhead of storing and retrieving the media data from storage unit 120.
  • Delivery unit 108 is configured for delivering streaming media data to client 110 over network 1 18.
  • delivery unit 108 retrieves streaming media data from storage unit 120 and delivers the streaming media data to client 1 10 via network system 118.
  • delivery unit 108 may communicate directly with streaming encoding unit 106 to obtain streaming media data for delivery to client 1 10.
  • Client 110 represents a device, such as a personal computer, workstation, or other like device that is capable of communicating with server 104.
  • Client 110 may include a browser application, such as Microsoft Internet Explorer® or Netscape Navigator®, that can request, receive and display electronic documents over a network connect.
  • a browser application such as Microsoft Internet Explorer® or Netscape Navigator®
  • client 110 includes a display unit 112 and a media player 122, such as a Real, or Windows Media player.
  • media player 122 includes a phase decoder unit 114 and a streaming decoding unit 116.
  • phase decoder unit 114 is configured as a plug- in component that can be dynamically linked into media player 122.
  • Streaming decoding unit 116 is configured to receive streaming media from server 102 and to communicate the streaming media data to the phase decoder unit 114. The streaming media data is then decoded by the phase decoder unit 114 and played on client 110.
  • the streaming media data (which includes the variable speed media file information) contains a number of temporal media file portions that each contain the same section of the media content for playback at a different speed (i.e., playback at the original speed, 2x the original, playback at 3x the original etc.)
  • FIG. 2 illustrates an example of a section of a streaming media file 200 that includes multiple packets 202, 204, 206 which each contain a particular portion of the media content (214, 216, 218).
  • packets 202, 204, 206 each respectively include a header 208, 210, 212 that describes the information contained in media content portions 214, 216, 218.
  • the playback speed of the media content can be dynamically changed by switching between the different media content portions 214, 216, 218 that are present within each packet. For example, by switching from content portion 214 of packet 202 to content portion 216 of packet 202, the playback speed of the media content can be increased from IX (original speed) to 2X (twice the speed of normal).
  • phase decoder unit 1 14 maintains indexes into the content portions 214, 216, 218 of each packet as it is played to allow for dynamically switching between the content portions 214, 216, 218 of a particular packet.
  • phase decoder unit 114 is configured to switch between the content portions 214, 216, 218 between the playing of two packets. For example, if phase decoder unit 114 receives a request to increase the playback speed (for example to 2X) while in the middle of processing the content portion 214 in packet 202, phase decoder unit 1 14 may wait for the processing of content portion 214 complete and initiate the playback speed change by selecting content portion 216 in packet 204.
  • the media player 122 includes a player control component, for example a plug-in component, that provides a set of selectable VCR-like controls on display unit 112.
  • a player control component may cause two speed control buttons to be displayed on display unit 112; a speed up button and a slow down button.
  • phase decoder 114 In response to selecting the speed up button, phase decoder 114 automatically switches to a different ("faster playing") temporal media file in the variable speed media file. In switching to the different ("faster playing”) temporal media file, the media content begins to play at a faster speed on display unit 112.
  • phase decoder 122 is configured to automatically switch between the different temporal media files based on a set of playback conditions. For example, if it is determined that a commercial is currently being played on display unit 112, phase decoder 122 may automatically switch to a different ("faster playing") temporal media file to "fast- forward" through the commercial.
  • server 112 may include additional information in the streaming media content that signals phase decoder unit 1 14 to switch to a different temporal media file to either "fast-forward" or “slow-down" the playing of the media content.
  • the temporal encoding process allows the playback speed of the encoded streaming media data to dynamically alter the audio and/or image frame rate independent of the streaming media data amplitude.
  • FIG. 3 is a flow diagram 300 that illustrates a method for incorporating temporal modifications in streaming media content in accordance with certain embodiments of the invention.
  • the blocks of FIG. 3 are described in reference to the components of FIG. 1 A and FIG. 2.
  • embodiments of the methods disclosed herein are not limited to the example embodiments that are shown in FIG. 1A and FIG. 2.
  • the temporal encoding process is applied to media content to generate one or more temporal media files.
  • the media content may take a variety of forms, including but not limited to movies, music, and television shows.
  • the temporal encoding may be applied to a movie to generate one or more temporal media files based on the particular movie.
  • the one or more temporal media files are encoded to generate streaming media data.
  • the one or more temporal media files may be encoded in multiple media formats using a variety of different encoders.
  • the one or more temporal media files may be encoded to generate streaming media data in both Real and Windows Media format.
  • the streaming media data is delivered to a client.
  • the streaming media data may be transmitted from server 102 to client 110 over network 118.
  • the streaming media data is received by client 110 and played at a rate that may be dynamically altered, either by the client automatically or in response to the user interacting with the client interface controls.
  • the temporal encoding process can be applied to a raw media content waveform, before the streaming encoding process, thus allowing multiple output streaming media formats to be supported.
  • a "Phase Vocoding” algorithm may be used to alter the frequency of an audio waveform independent of the amplitude.
  • This "stretching” and “squashing" of the audio signal can also be applied in conjunction with image frame rate modifications, for example the dropping or duplicating frames, to keep the audio and video information synchronized to change the playback speed of encoded streaming media video files.
  • temporal encoding process uses a Fast Fourier Transform (FFT) to represent a signal as a set of sinusoids. These sinusoids can be manipulated independently to produce different results.
  • FFT Fast Fourier Transform
  • DTFT Discrete Time Fourier Transform
  • the Discrete Fourier Transform (DFT) is then the DTFT evaluated at a number of equally spaced digital frequency values from 0 to pi.
  • the FFT is a tool used to evaluate numerous DFTs with fewer steps than are required by the defining equation.
  • each "variable speed" media file packet is wrapped with a header that describes the contents of the file.
  • the header of each file contains metadata that includes information about the temporal media data that is contained in each packet.
  • phase decoder 114 uses the metadata to switch between the different media content portions to dynamically change the playback speed of media content.
  • server 102 is configured to switch between the temporal media files that are contained within a variable speed media file.
  • FIG. IB is a block diagram of a temporal media encoding system 150 in which certain embodiments of the invention may be used.
  • FIG. IB includes many of the same components as shown in FIG.
  • delivery unit 152 includes a selection unit 154 that receives user playback requests from client 1 10.
  • delivery unit 152 maintains index information into each of the temporal media files that allows the delivery unit to dynamically switch between the temporal media files in a consistent manner. For example, in response to receiving a user playback request to increase the playback speed from 2X to 5X, selection unit 154 identifies a location in the 5X temporal media file that corresponds to the portion currently being played in the 2X temporal media file. Delivery unit 152 then begins streaming the media data from the identified location in the 5X temporal media file to client 116. In response to receiving the streaming media data, streaming decoding unit 116 continues to play the media data, generally unaware that the playback speed of the media data has changed.
  • media player 122 depicted in FIG 1 A is itself configured to modify the frequency of the waveform of the streaming media content and to drop image frames as necessary to keep the images synchronized with the audio portion.
  • media player 122 includes a phase encoding unit 104, possibly as a plug-in component, which dynamically generates multiple temporal media files and corresponding metadata based on conventional streaming media content. These files are then used by phase decoder unit 114 to dynamically provide variable speed media content for display on display unit 112.
  • Computer system 400 includes a bus 402 or other communication mechanism for communicating information, and a processor 404 coupled with bus 402 for processing information.
  • Computer system 400 also includes a main memory 406, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 402 for storing information and instructions to be executed by processor 404.
  • Main memory 406 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 404.
  • Computer system 400 further includes a read only memory (ROM) 408 or other static storage device coupled to bus 402 for storing static information and instructions for processor 404.
  • ROM read only memory
  • a storage device 410 such as a magnetic disk or optical disk, is provided and coupled to bus 402 for storing information and instructions.
  • Computer system 400 may be coupled via bus 402 to a display 412, such as a cathode ray tube (CRT), for displaying information to a computer user.
  • a display 412 such as a cathode ray tube (CRT)
  • An input device 414 is coupled to bus 402 for communicating information and command selections to processor 404.
  • cursor control 416 is Another type of user input device
  • cursor control 416 such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 404 and for controlling cursor movement on display 412.
  • This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
  • the invention is related to the use of computer system 400 for incorporating temporal modifications in streaming media.
  • the insertion of temporal modifications in streaming media is provided by computer system 400 in response to processor 404 executing one or more sequences of one or more instructions contained in main memory 406.
  • Such instructions may be read into main memory 406 from another computer-readable medium, such as storage device 410.
  • Execution of the sequences of instructions contained in main memory 406 causes processor 404 to perform the process steps described herein.
  • processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in main memory 406.
  • hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention.
  • embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
  • Non-volatile media includes, for example, optical or magnetic disks, such as storage device 410.
  • Volatile media includes dynamic memory, such as main memory 406.
  • Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 402. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
  • Computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
  • Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 404 for execution.
  • the instructions may initially be carried on a magnetic disk of a remote computer.
  • the remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem.
  • a modem local to computer system 400 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal.
  • An infrared detector coupled to bus 402 can receive the data carried in the infrared signal and place the data on bus 402.
  • Bus 402 carries the data to main memory 406, from which processor 404 retrieves and executes the instructions.
  • Computer system 400 also includes a communication interface 418 coupled to bus 402.
  • Communication interface 418 provides a two-way data communication coupling to a network link 420 that is connected to a local network 422.
  • communication interface 418 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line.
  • ISDN integrated services digital network
  • communication interface 418 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN.
  • LAN local area network
  • Wireless links may also be implemented.
  • communication interface 418 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
  • Network link 420 typically provides data communication through one or more networks to other data devices.
  • network link 420 may provide a connection through local network 422 to a host computer 424 or to data equipment operated by an Internet Service Provider (ISP) 426.
  • ISP 426 in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the "Internet" 428.
  • Internet 428 uses electrical, electromagnetic or optical signals that carry digital data streams.
  • the signals through the various networks and the signals on network link 420 and through communication interface 418, which carry the digital data to and from computer system 400, are exemplary forms of carrier waves transporting the information.
  • Computer system 400 can send messages and receive data, including program code, through the network(s), network link 420 and communication interface 418.
  • a server 430 might transmit a requested code for an application program through Internet 428, ISP 426, local network 422 and communication interface 418.
  • one such downloaded application provides for the insertion of temporal modifications in streaming media as described herein.
  • the received code may be executed by processor 404 as it is received, and/or stored in storage device 410, or other non- volatile storage for later execution. In this manner, computer system 400 may obtain application code in the form of a carrier wave.
  • the mechanism described herein provides several advantages over prior approaches for providing streaming media content.
  • the described techniques provide an improved method for delivering streaming media data that allows the playback speed of the media data to be dynamically changed as it is played at a client without affecting the amplitude of the data.
  • adjustments to the playback rate may be made based on the current bandwidth that is available between a server and a client.
  • a user is having trouble understanding the voice-over at a particular video speed, they can slow down the playing of the media in an attempt to better understand the content.
  • a user wishes to speed through a speech yet still understand the contents of the speech, they can increase the playing speed of the media content.
  • a server 502 may be configured with a plurality of phase encoding units 510,512, streaming encoding unit 516, 518 and delivery units 520, 522, 524 and which may be configured to communicate streaming media data to a plurality of clients 504, 506, 508. Additional configurations for encoding media data are described in co-pending U.S. Patent Application No.

Abstract

A method and apparatus for playing digital content at a client is disclosed. In one aspect, a plurality of versions of the digital content is generated. Each version of the plurality of versions is generated with the same amplitude but a different wavelength relative to the other plurality of versions. During playback of thedigital content at said client, a selected version of the plurality of versions is used for playing back the content. In response to user input received at said client, a change is made as to which of the plurality of versions to be used as the selected version.

Description

STREAMING MEDIA ENCODING AGENT FOR TEMPORAL
MODIFICATIONS
CLAIM OF PRIORITY This patent application claims priority from, U.S. Provisional Patent Application No. 60/156,817, filed on September 29, 1999, entitled STREAMING MEDIA ENCODING AGENT FOR TEMPORAL MODIFICATIONS, the content of which is hereby incorporated by reference in its entirety.
FIELD OF THE INVENTION The present invention relates to the encoding of streaming media files and more specifically to a mechanism that provides for the speeding up and slowing down of streaming media files.
BACKGROUND OF THE INVENTION In recent years, the media industry has expanded its horizons beyond traditional analog technologies. Numerous systems have been developed for transmitting video information digitally from one location to be viewed in real time at another location.
As would be expected, the viewers of digital video desire the same functionality from the providers of digital video as they now enjoy while watching analog video tapes on video cassette recorders. For example, viewers want to be able to make the video jump ahead, jump back, fast forward, fast rewind, slow forward, slow rewind and freeze frame.
Conventionally, digital video delivered to a particular destination (the "client") is encoded to allow for playback at a specific rate. Thus, the user is typically required to play the entire video at one static rate as they generally have no mechanism for altering the playback speed of the video. In addition, with today's technology, even if a mechanism is provided for changing the playback speed of the digital video, the amplitude of the video signal is altered such that the video sound will be undesirably distorted.
Based upon the foregoing, there is a clear need for an improved method for providing media content that allows for multiple playback speed control at a client.
SUMMARY OF THE INVENTION
According to one aspect of the invention, a method is provided for playing digital content at a client is disclosed. In one aspect, a plurality of versions of the digital content is generated. Each version of the plurality of versions is generated with the same amplitude but a different wavelength relative to the other plurality of versions. During playback of the digital content at said client, a selected version of the plurality of versions is used for playing back the content. In response to user input received at said client, a change is made as to which of the plurality of versions to be used as the selected version.
According to another feature, a method for incorporating temporal modifications in streaming media content is performed by generating one or more temporal media files by applying a temporal encoding process to media content. Streaming media data based on the one or more temporal media files is then generated. The streaming media data is delivered to a client and can be played at the client at multiple play rates.
The invention also encompasses a computer-readable medium, a computer data signal embodied in a carrier wave, and an apparatus configured to carry out the foregoing steps. Other features and aspects will become apparent from the following description and the appended claims.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements and in which: FIG. 1A is a block diagram of a temporal media encoding system in which certain embodiments of the invention may be used;
FIG. IB is another block diagram of a temporal media encoding system in which certain embodiments of the invention may be used;
FIG. 2 illustrates example of how applying the temporal encoding process allows streaming media data to be sent from the server side at one rate and played on the client side at a dynamically changing second rate;
FIG. 3 is a flow diagram that illustrates a method for incorporating temporal modifications in streaming media content in accordance with certain embodiments of the invention;
FIG. 4 is a block diagram of a computer system on which embodiments may be implemented; and
FIG. 5 is a block diagram that illustrates an example of another temporal media encoding system configuration in which certain embodiments of the invention may be used.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
A method and apparatus for incorporating temporal modifications in streaming media content is described. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
TERMS AND TERMINOLOGY Various terms are used herein to describe embodiments of the invention. In following description: The term "live feed information" refers to information that may be received from analog or digital cameras, satellite or cable feeds or any other mechanism that is capable of providing live feed information.
The term "media content" includes one or more of a variety of different types of pre-recorded information, and/or live feed information.
The "wavelength" of a media content signal refers to the horizontal length of one cycle of the wave and can be calculated by measuring the distance between any two successive equivalent points on the wave.
The "amplitude" of a media content signal refers to the distance between a crest or a trough on the wave and its undisturbed position.
The "period" of a media content signal refers to the time required to complete one full cycle of motion.
The "frequency" of a wave is merely the reciprocal of the period, or the number of cycles completed in one second. Both the period and the frequency are dependent on the wavelength of the wave. If the media content signal has a long wavelength then its frequency would be lower than if had a short wavelength.
The "speed" of a media content signal refers to the rate of presentation of audio or video in the media file, based on changes in frequency of the wave for audio, or number of frames presented for video.
A "temporal" modification refers to a change in the frequency of a wave without a corresponding change in the amplitude of a wave. A "temporal media file" refers to a media file which, using temporal modification, the speed of the audio and video is changed through modification of the frequency of the waveform and frame rate of the video.
A "variable speed media file" refers to a media file that contains data from multiple temporal media files, where the data from the multiple temporal media files within the variable speed media file can be played selectively based on the user's preferences for presentation of the file. FUNCTIONAL OVERVIEW
Techniques are disclosed for enabling a user to increase or decrease the speed in viewing a streaming media file during playback. In one embodiment, the techniques involve encoding streaming media files with wave frequency ("temporal") modifications. Specifically, a streaming media encoding mechanism is configured as a modular collection of methods or processes to manipulate the temporal nature of time-based media, and to encode streaming media data for Internet and broadband playback.
The process of manipulating the temporal nature of time-based media involves modifying the frequency of the wave by reducing the wavelength of the wave without modifying the amplitude of the wave. If necessary, the process also involves dropping corresponding frames in the media signal to synchronize audio and video.
In certain embodiments, the streaming media encoding mechanism employs a temporal encoding process that alters the frequency of the media content signal independent of the amplitude, and removes frames, to generate one or more temporal media files. In one embodiment, the one or more temporal media files are then bound together and encoded into streaming media packets to emulate variable speed streaming media data. Each packet includes a portion of each of the one or more temporal media files. Header information is attached to each of the packets describing the packets contents. Using a streaming media player, a user may dynamically adjust the playback speed of the streaming media data to emulate different playback rates, such as the "fast- forward" or "slow" functions of a media player.
SYSTEM OVERVIEW
FIG. 1A is a block diagram of a temporal media encoding system 100 in which certain embodiments of the invention may be used. Generally, temporal media encoding system 100 includes a server 102, a client 110, and one or more network systems 118.
As is depicted in FIG. 1A, server 102 and client 110 are connected through one or more network systems 118. These one or more network systems may include, but are not limited to, Local Area Networks (LAN), and Wide Area Networks (WAN), including the Internet and/or other wireless communication mechanisms and/or communication mediums. Thus, embodiments of the invention are not limited to any particular type of communication mechanism, medium or protocol.
Server 102 is a combination of hardware and/or software components that are configured for encoding media content with temporal modifications to create one or more temporal media files. The one or more temporal media files are combined and encoded in streaming media format to produce variable speed streaming media data.
In this example, server 102 includes a phase encoding unit 104, a streaming encoding unit 106 and a delivery unit 108. The phase encoding unit 104 is configured for generating temporal media files by applying a temporal encoding process to media content.
In one embodiment, phase encoding unit 104 is used to manipulate the temporal nature of time-based content media to generate a set of temporal media files.
The streaming encoding unit 106 is configured to encode the one or more temporal media files into streaming media format ("streaming media data"). Streaming encoding unit 106 may represent a variety of different types of encoders that are capable of encoding data in a particular encoding format. For example, streaming encoding unit 106 may be configured as a Real, Windows Media, Liquid Audio, MPEG, A2B, Audiobase, MP3, Blade, Xing, QuickTime or any other similar type of encoder. In addition, streaming encoding unit 106 may be either an "off-the-self ' encoding unit or a proprietary encoding unit, as embodiments of the invention are not limited to any particular type of encoder.
In one embodiment, streaming encoding unit 106 stores the streaming media data as one or more media files in a storage unit 120. Storage unit 120 may represent a nonvolatile storage device that is part of server 102 or instead may be a separate storage unit that is accessible to server 102, for example over a network with delivery unit 108 to provide the streaming media data, thus potentially reducing the overhead of storing and retrieving the media data from storage unit 120. Delivery unit 108 is configured for delivering streaming media data to client 110 over network 1 18. In one embodiment, in response to a user request from client 1 10, delivery unit 108 retrieves streaming media data from storage unit 120 and delivers the streaming media data to client 1 10 via network system 118. Alternatively, delivery unit 108 may communicate directly with streaming encoding unit 106 to obtain streaming media data for delivery to client 1 10.
Client 110 represents a device, such as a personal computer, workstation, or other like device that is capable of communicating with server 104. Client 110 may include a browser application, such as Microsoft Internet Explorer® or Netscape Navigator®, that can request, receive and display electronic documents over a network connect.
In one embodiment, client 110 includes a display unit 112 and a media player 122, such as a Real, or Windows Media player. In certain embodiments, media player 122 includes a phase decoder unit 114 and a streaming decoding unit 116. In one embodiment, phase decoder unit 114 is configured as a plug- in component that can be dynamically linked into media player 122. Streaming decoding unit 116 is configured to receive streaming media from server 102 and to communicate the streaming media data to the phase decoder unit 114. The streaming media data is then decoded by the phase decoder unit 114 and played on client 110.
Because the media data includes the temporal media information, a user may dynamically select the desired playback speed for playing the streaming media data on client 110. For example, in one embodiment the streaming media data (which includes the variable speed media file information) contains a number of temporal media file portions that each contain the same section of the media content for playback at a different speed (i.e., playback at the original speed, 2x the original, playback at 3x the original etc.) FIG. 2 illustrates an example of a section of a streaming media file 200 that includes multiple packets 202, 204, 206 which each contain a particular portion of the media content (214, 216, 218). As depicted, packets 202, 204, 206 each respectively include a header 208, 210, 212 that describes the information contained in media content portions 214, 216, 218. In one embodiment, the playback speed of the media content can be dynamically changed by switching between the different media content portions 214, 216, 218 that are present within each packet. For example, by switching from content portion 214 of packet 202 to content portion 216 of packet 202, the playback speed of the media content can be increased from IX (original speed) to 2X (twice the speed of normal).
In one embodiment, phase decoder unit 1 14 maintains indexes into the content portions 214, 216, 218 of each packet as it is played to allow for dynamically switching between the content portions 214, 216, 218 of a particular packet. In another embodiment, phase decoder unit 114 is configured to switch between the content portions 214, 216, 218 between the playing of two packets. For example, if phase decoder unit 114 receives a request to increase the playback speed (for example to 2X) while in the middle of processing the content portion 214 in packet 202, phase decoder unit 1 14 may wait for the processing of content portion 214 complete and initiate the playback speed change by selecting content portion 216 in packet 204.
In certain embodiments, the media player 122 includes a player control component, for example a plug-in component, that provides a set of selectable VCR-like controls on display unit 112. By interacting with the controls, a user can select different options for dynamically controlling the speed at which the streaming media data is played. For example, the player control component may cause two speed control buttons to be displayed on display unit 112; a speed up button and a slow down button. In response to selecting the speed up button, phase decoder 114 automatically switches to a different ("faster playing") temporal media file in the variable speed media file. In switching to the different ("faster playing") temporal media file, the media content begins to play at a faster speed on display unit 112.
In one embodiment, phase decoder 122 is configured to automatically switch between the different temporal media files based on a set of playback conditions. For example, if it is determined that a commercial is currently being played on display unit 112, phase decoder 122 may automatically switch to a different ("faster playing") temporal media file to "fast- forward" through the commercial. In addition, server 112 may include additional information in the streaming media content that signals phase decoder unit 1 14 to switch to a different temporal media file to either "fast-forward" or "slow-down" the playing of the media content.
OPERATIONAL OVERVIEW
As depicted, the temporal encoding process allows the playback speed of the encoded streaming media data to dynamically alter the audio and/or image frame rate independent of the streaming media data amplitude.
FIG. 3 is a flow diagram 300 that illustrates a method for incorporating temporal modifications in streaming media content in accordance with certain embodiments of the invention. For explanation purposes, the blocks of FIG. 3 are described in reference to the components of FIG. 1 A and FIG. 2. However, embodiments of the methods disclosed herein are not limited to the example embodiments that are shown in FIG. 1A and FIG. 2.
At block 302, the temporal encoding process is applied to media content to generate one or more temporal media files. The media content may take a variety of forms, including but not limited to movies, music, and television shows. For example, the temporal encoding may be applied to a movie to generate one or more temporal media files based on the particular movie.
At block 304, the one or more temporal media files are encoded to generate streaming media data. In certain embodiments, the one or more temporal media files may be encoded in multiple media formats using a variety of different encoders. For example, the one or more temporal media files may be encoded to generate streaming media data in both Real and Windows Media format.
At block 306, the streaming media data is delivered to a client. For example, using delivery unit 108, the streaming media data may be transmitted from server 102 to client 110 over network 118.
At block 308, the streaming media data is received by client 110 and played at a rate that may be dynamically altered, either by the client automatically or in response to the user interacting with the client interface controls. CREATING TEMPORAL MEDIA FILES
As previously indicated, a mechanism for incorporating temporal modifications in streaming media content is provided. The temporal encoding process can be applied to a raw media content waveform, before the streaming encoding process, thus allowing multiple output streaming media formats to be supported.
Various techniques may be used to generate temporal media files. For example, to generate one or more temporal media files, a "Phase Vocoding" algorithm, generally referred to as a phase vocoder process, may be used to alter the frequency of an audio waveform independent of the amplitude. This "stretching" and "squashing" of the audio signal can also be applied in conjunction with image frame rate modifications, for example the dropping or duplicating frames, to keep the audio and video information synchronized to change the playback speed of encoded streaming media video files.
In one embodiment, temporal encoding process uses a Fast Fourier Transform (FFT) to represent a signal as a set of sinusoids. These sinusoids can be manipulated independently to produce different results. In certain embodiments, the Discrete Time Fourier Transform (DTFT) is used to transform a function of the independent variable n (a function of time in this case) to a function of the independent variable omega (digital frequency). The Discrete Fourier Transform (DFT) is then the DTFT evaluated at a number of equally spaced digital frequency values from 0 to pi. The FFT is a tool used to evaluate numerous DFTs with fewer steps than are required by the defining equation.
DECODING VARIABLE SPEED STREAMING MEDIA As previously indicated, each "variable speed" media file packet is wrapped with a header that describes the contents of the file. In one embodiment, the header of each file contains metadata that includes information about the temporal media data that is contained in each packet. In response to the user interacting with the speed control buttons at client 110, phase decoder 114 uses the metadata to switch between the different media content portions to dynamically change the playback speed of media content. In one embodiment, server 102 is configured to switch between the temporal media files that are contained within a variable speed media file. For example FIG. IB is a block diagram of a temporal media encoding system 150 in which certain embodiments of the invention may be used. FIG. IB includes many of the same components as shown in FIG. 1 A, and as such like components have been numbered alike. As depicted in FIG. IB, delivery unit 152 includes a selection unit 154 that receives user playback requests from client 1 10. In one embodiment, delivery unit 152 maintains index information into each of the temporal media files that allows the delivery unit to dynamically switch between the temporal media files in a consistent manner. For example, in response to receiving a user playback request to increase the playback speed from 2X to 5X, selection unit 154 identifies a location in the 5X temporal media file that corresponds to the portion currently being played in the 2X temporal media file. Delivery unit 152 then begins streaming the media data from the identified location in the 5X temporal media file to client 116. In response to receiving the streaming media data, streaming decoding unit 116 continues to play the media data, generally unaware that the playback speed of the media data has changed.
Still, in certain other embodiments, media player 122 depicted in FIG 1 A is itself configured to modify the frequency of the waveform of the streaming media content and to drop image frames as necessary to keep the images synchronized with the audio portion. For example, in one embodiment, media player 122 includes a phase encoding unit 104, possibly as a plug-in component, which dynamically generates multiple temporal media files and corresponding metadata based on conventional streaming media content. These files are then used by phase decoder unit 114 to dynamically provide variable speed media content for display on display unit 112.
HARDWARE OVERVIEW Figure 4 is a block diagram that illustrates a computer system 400 upon which an embodiment of the invention may be implemented. Computer system 400 includes a bus 402 or other communication mechanism for communicating information, and a processor 404 coupled with bus 402 for processing information. Computer system 400 also includes a main memory 406, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 402 for storing information and instructions to be executed by processor 404. Main memory 406 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 404. Computer system 400 further includes a read only memory (ROM) 408 or other static storage device coupled to bus 402 for storing static information and instructions for processor 404. A storage device 410, such as a magnetic disk or optical disk, is provided and coupled to bus 402 for storing information and instructions.
Computer system 400 may be coupled via bus 402 to a display 412, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 414, including alphanumeric and other keys, is coupled to bus 402 for communicating information and command selections to processor 404. Another type of user input device is cursor control 416, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 404 and for controlling cursor movement on display 412. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
The invention is related to the use of computer system 400 for incorporating temporal modifications in streaming media. According to one embodiment of the invention, the insertion of temporal modifications in streaming media is provided by computer system 400 in response to processor 404 executing one or more sequences of one or more instructions contained in main memory 406. Such instructions may be read into main memory 406 from another computer-readable medium, such as storage device 410. Execution of the sequences of instructions contained in main memory 406 causes processor 404 to perform the process steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in main memory 406. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
The term "computer-readable medium" as used herein refers to any medium that participates in providing instructions to processor 404 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 410. Volatile media includes dynamic memory, such as main memory 406. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 402. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 404 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 400 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector coupled to bus 402 can receive the data carried in the infrared signal and place the data on bus 402. Bus 402 carries the data to main memory 406, from which processor 404 retrieves and executes the instructions. The instructions received by main memory 406 may optionally be stored on storage device 410 either before or after execution by processor 404. Computer system 400 also includes a communication interface 418 coupled to bus 402. Communication interface 418 provides a two-way data communication coupling to a network link 420 that is connected to a local network 422. For example, communication interface 418 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 418 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 418 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 420 typically provides data communication through one or more networks to other data devices. For example, network link 420 may provide a connection through local network 422 to a host computer 424 or to data equipment operated by an Internet Service Provider (ISP) 426. ISP 426 in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the "Internet" 428. Local network 422 and Internet 428 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 420 and through communication interface 418, which carry the digital data to and from computer system 400, are exemplary forms of carrier waves transporting the information.
Computer system 400 can send messages and receive data, including program code, through the network(s), network link 420 and communication interface 418. In the Internet example, a server 430 might transmit a requested code for an application program through Internet 428, ISP 426, local network 422 and communication interface 418. In accordance with the invention, one such downloaded application provides for the insertion of temporal modifications in streaming media as described herein.
The received code may be executed by processor 404 as it is received, and/or stored in storage device 410, or other non- volatile storage for later execution. In this manner, computer system 400 may obtain application code in the form of a carrier wave. ALTERNATIVES, EXTENSIONS
The mechanism described herein provides several advantages over prior approaches for providing streaming media content. In particular, the described techniques provide an improved method for delivering streaming media data that allows the playback speed of the media data to be dynamically changed as it is played at a client without affecting the amplitude of the data. By allowing the speed of the media data to be dynamically altered, adjustments to the playback rate may be made based on the current bandwidth that is available between a server and a client. Thus, if a user is having trouble understanding the voice-over at a particular video speed, they can slow down the playing of the media in an attempt to better understand the content. In addition, if a user wishes to speed through a speech yet still understand the contents of the speech, they can increase the playing speed of the media content.
In describing certain embodiments of the invention, several drawing figures have been used for explanation purposes. However, the invention is not limited to any particular context as shown in drawing figures, and the spirit and scope of the invention include other contexts and applications. For example, although embodiments of the invention have illustrated a server delivering streaming media data to a single client, in certain embodiments, as depicted in FIG. 5, a server 502 may be configured with a plurality of phase encoding units 510,512, streaming encoding unit 516, 518 and delivery units 520, 522, 524 and which may be configured to communicate streaming media data to a plurality of clients 504, 506, 508. Additional configurations for encoding media data are described in co-pending U.S. Patent Application No. 09/499,961, filed on February 8, 2000, entitled DISTRIBUTED PRODUCTION SYSTEM FOR DIGITALLY ENCODING INFORMATION, the content of which is hereby incorporated by reference in its entirety. Thus, the specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
In addition, in this disclosure, including in the claims, certain process steps are set forth in a particular order, and alphabetic and alphanumeric labels are used to identify certain steps. Unless specifically stated in the disclosure, embodiments of the invention are not limited to any particular order of carrying out such steps. In particular, the labels are used merely for convenient identification of steps, and are not intended to imply, specify or require a particular order of carrying out such steps.

Claims

CLAIMSWhat is claimed is:
1. A method for incorporating temporal modifications in streaming media content, the method comprising the computer-implemented steps of: generating one or more temporal media files by applying a temporal encoding process to media content; generate streaming media data based on the one or more temporal media files; and delivering the streaming media data to a client, wherein the streaming media data can be played at the client at multiple play rates.
2. The method as recited in Claim 1 , further comprising the steps of: combining the one or more temporal media files to generate a variable speed media file; generating media content packets based on the variable speed media file, wherein each packet includes media content portions for playing the media content at multiple playback speeds; and wherein the step of delivering the streaming media data comprises the step of delivering media content packets to said client to provide for variable speed playback rates of the media content.
3. The method as recited in Claim 1 , wherein the step of generating one or more temporal media files includes the step of applying a phase vocoder process to the media content to generate the one or more temporal media files.
4. The method as recited in Claim 1, further comprising the steps of: playing the streaming media data at a first playback speed at the client; receiving user input at the client that requests that the streaming media data be played at a second playback speed at the client; and in response to receiving the user input at the client, playing the streaming media data at said second playback speed at said client.
5. A computer-readable medium carrying one or more sequences of instructions for incorporating temporal modifications in streaming media content, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of: generating one or more temporal media files by applying a temporal encoding process to media content; encoding the one or more temporal media files to generate streaming media data; and delivering the streaming media data to a client, wherein the streaming media data can be played at the client at multiple play rates.
6. The computer-readable medium as recited in Claim 5, further comprising instructions for performing the steps of: combining the one or more temporal media files to generate a variable speed media file; generating media content packets based on the variable speed media file, wherein each packet includes media content portions for playing the media content at multiple playback speeds; and wherein the step of delivering the streaming media data comprises the step of delivering media content packets to said client to provide for variable speed playback rates of the media content.
7. The computer-readable medium as recited in Claim 5, wherein the step of generating one or more temporal media files includes the step of applying a phase vocoder process to the media content to generate the one or more temporal media files.
8. The computer-readable medium as recited in Claim 5, further comprising instructions for performing the steps of: playing the streaming media data at a first playback speed at the client; receiving user input at the client that requests that the streaming media data be played at a second playback speed at the client; and in response to receiving the user input at the client, playing the streaming media data at said second playback speed at said client.
9. A server apparatus configured for incorporating temporal modifications in streaming media content, comprising: means for generating one or more temporal media files by applying a temporal encoding process to media content; means for encoding the one or more temporal media files to generate streaming media data; and means for delivering the streaming media data to a client, wherein the streaming media data can be played at the client at multiple play rates.
10. The server apparatus as recited in Claim 9, further comprising: means for combining the one or more temporal media files to generate a variable speed media file; means for generating media content packets based on the variable speed media file, wherein each packet includes media content portions for playing the media content at multiple playback speeds; and wherein the means for delivering the streaming media data comprises means for delivering media content packets to said client to provide for variable speed playback rates of the media content.
11. The server apparatus as recited in Claim 9, wherein the means for generating the one or more temporal media files includes means for applying a phase vocoder process to the media content to generate the one or more temporal media files.
12. A method playing digital content at a client, the method comprising the computer- implemented steps of: generating a plurality of versions of said digital content, wherein each version of said plurality of versions has a same amplitude and a different wavelength relative to the other versions of said plurality of versions; and during playback of said digital content at said client, performing the steps of using a selected version of said plurality of versions for the playback of said content; and changing which version of said plurality of versions to use as said selected version based on user input received at said client.
PCT/US2000/026832 1999-09-29 2000-09-29 Streaming media encoding agent for temporal modifications WO2001024530A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU77353/00A AU7735300A (en) 1999-09-29 2000-09-29 Streaming media encoding agent for temporal modifications
EP00967103A EP1221238A2 (en) 1999-09-29 2000-09-29 Streaming media encoding agent for temporal modifications

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15681799P 1999-09-29 1999-09-29
US60/156,817 1999-09-29

Publications (2)

Publication Number Publication Date
WO2001024530A2 true WO2001024530A2 (en) 2001-04-05
WO2001024530A3 WO2001024530A3 (en) 2001-12-20

Family

ID=22561215

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/026832 WO2001024530A2 (en) 1999-09-29 2000-09-29 Streaming media encoding agent for temporal modifications

Country Status (3)

Country Link
EP (1) EP1221238A2 (en)
AU (1) AU7735300A (en)
WO (1) WO2001024530A2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1346307A2 (en) * 2001-05-31 2003-09-24 ContentGuard Holdings, Inc. Method and apparatus for dynamically assigning usage rights to digital works
EP1676213A1 (en) * 2003-08-01 2006-07-05 Microsoft Corporation Sparse caching for streaming media
US7774279B2 (en) 2001-05-31 2010-08-10 Contentguard Holdings, Inc. Rights offering and granting
US8001053B2 (en) 2001-05-31 2011-08-16 Contentguard Holdings, Inc. System and method for rights offering and granting using shared state variables
US8923512B2 (en) 2003-09-30 2014-12-30 Microsoft Corporation Circumvention of dynamic, robust, embedded-signal detection

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DEY, J.K; SEN, S.; KUROSE, J.F.; TOWSLEY, D.; SALEHI, J.D.: "Playback restart in interactive streaming video applications" MULTIMEDIA COMPUTING AND SYSTEMS '97, [Online] 3 - 6 June 1997, pages 458-465, XP002179183 Massachusetts Univ., Amherst, MA, USA ISBN: 0-8186-7819-4 Retrieved from the Internet: <URL:http.//ieeexplore.ieee.org> [retrieved on 2001-10-03] *
SUMARI, P.; MERABTI, M.; PEREIRA, R.: "Video-on-demand server: strategies for imrpoving performance" SOFTWARE, IEE PROCEEDINGS, [Online] 9 - 10 July 1998, pages 33-37, XP002179184 Liverpoll John Moores Univ., UK ISSN: 1462-5970 Retrieved from the Internet: <URL:http://ieeexplore.ieee.org> [retrieved on 2001-10-03] *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1346307A2 (en) * 2001-05-31 2003-09-24 ContentGuard Holdings, Inc. Method and apparatus for dynamically assigning usage rights to digital works
EP1346307A4 (en) * 2001-05-31 2004-07-28 Contentguard Holdings Inc Method and apparatus for dynamically assigning usage rights to digital works
US7774279B2 (en) 2001-05-31 2010-08-10 Contentguard Holdings, Inc. Rights offering and granting
US8001053B2 (en) 2001-05-31 2011-08-16 Contentguard Holdings, Inc. System and method for rights offering and granting using shared state variables
EP1676213A1 (en) * 2003-08-01 2006-07-05 Microsoft Corporation Sparse caching for streaming media
EP1676213A4 (en) * 2003-08-01 2009-12-30 Microsoft Corp Sparse caching for streaming media
US7941554B2 (en) 2003-08-01 2011-05-10 Microsoft Corporation Sparse caching for streaming media
US8923512B2 (en) 2003-09-30 2014-12-30 Microsoft Corporation Circumvention of dynamic, robust, embedded-signal detection

Also Published As

Publication number Publication date
WO2001024530A3 (en) 2001-12-20
EP1221238A2 (en) 2002-07-10
AU7735300A (en) 2001-04-30

Similar Documents

Publication Publication Date Title
US20200019290A1 (en) Digital Media Player Behavioral Parameter Modification
EP1233591B1 (en) Progressive streaming media rendering
KR100866908B1 (en) Method of processing media services from a plurality of content aggregators, and apparatus for unifying media services available from a plurality of content aggregatiors
US6449653B2 (en) Interleaved multiple multimedia stream for synchronized transmission over a computer network
US5737552A (en) Machine, method and medium for linear programming with interactive conversational interface
US7237254B1 (en) Seamless switching between different playback speeds of time-scale modified data streams
US6816909B1 (en) Streaming media player with synchronous events from multiple sources
CA2623835C (en) Content delivery system and method, and server apparatus and receiving apparatus used in this content delivery system
US20060195884A1 (en) Interactive multichannel data distribution system
US20060215562A1 (en) Interactive data transmission system having staged servers
US20130124748A1 (en) Media streaming with enhanced seek operation
JP2003510734A (en) File splitting for emulating streaming
JP2004531184A (en) Efficient transmission and reproduction of digital information
JPH1196098A (en) Method and device for recording data transmitted on internet
JP2001527709A (en) VCR-like function for rendering video on demand
EP1797716A2 (en) Method for minimizing buffer delay effects in streaming digital content
CN109348251A (en) For the method, apparatus of video playing, computer-readable medium and electronic equipment
US20100034515A1 (en) Information processing apparatus and method, and program
US20080276289A1 (en) System for video presentations with adjustable display elements
WO2001024530A2 (en) Streaming media encoding agent for temporal modifications
WO2001018658A1 (en) Method and apparatus for sending slow motion video-clips from video presentations to end viewers upon request
JP7256173B2 (en) Information processing device, information processing device and program
WO2000010329A1 (en) Client-side digital television authoring system
WO2002005117A1 (en) Interactive data transmission system
US20230362461A1 (en) Interactive Media Events

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CZ DE DK DM DZ EE ES FI GB GE GH GM HR HU ID IL IN IS JP KE KG KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CZ DE DK DM DZ EE ES FI GB GE GH GM HR HU ID IL IN IS JP KE KG KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

WWE Wipo information: entry into national phase

Ref document number: 2000967103

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2000967103

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWW Wipo information: withdrawn in national office

Ref document number: 2000967103

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP