Transcoding of audio data
First Claim
1. In a proxy computer having a connection to a client computer, a method of reducing latency that would otherwise occur as the proxy computer transmits audio data to the client computer, the method comprising the steps of:
- obtaining audio data from a remote server on behalf of a client computer;
determining whether transcoding of the obtained audio data is appropriate;
if it has been determined that transcoding of the obtained audio data is appropriate, transcoding the obtained audio data using one or more transcoding methods as the obtained audio data is being received from the remote server, the one or more transcoding methods being selected from;
a first transcoding method that reduces the number of channels in the obtained audio data;
a second transcoding method that reduces a sample rate associated with the obtained audio data; and
a third transcoding method that compresses the obtained audio data; and
transmitting the transcoded audio data to the client computer.
2 Assignments
0 Petitions
Accused Products
Abstract
A proxy server has a connection to a client computer and to a remote server over the Internet. The proxy server receives a request for an audio file from the client computer and, in response, transmits a requests for the audio file to the remote server. Upon receiving the audio file, the proxy server determines whether transcoding of the audio file is appropriate. If appropriate, the proxy server transcodes the audio file received from the remote server and then transmits the transcoded audio file to the client. Transcoding may include changing the audio file type, compressing the audio file, reducing the number of audio channels, or reducing the sampling rate of the data. The proxy server determines the extent and type of transcoding to be performed on the audio file as the audio file is downloaded from the remote server. The extent and type of transcoding are based on the file formats which the client is capable of handling, the size of the requested audio file, the memory capacity of the client, the bandwidth of the connection between the local server and the client, and the desired level of audio quality. Transcoding may be performed on-the-fly while the requested audio file is being downloaded to the proxy server from the remote server and while the modified audio file is being downloaded from the proxy server to the client.
-
Citations
39 Claims
-
1. In a proxy computer having a connection to a client computer, a method of reducing latency that would otherwise occur as the proxy computer transmits audio data to the client computer, the method comprising the steps of:
-
obtaining audio data from a remote server on behalf of a client computer;
determining whether transcoding of the obtained audio data is appropriate;
if it has been determined that transcoding of the obtained audio data is appropriate, transcoding the obtained audio data using one or more transcoding methods as the obtained audio data is being received from the remote server, the one or more transcoding methods being selected from;
a first transcoding method that reduces the number of channels in the obtained audio data;
a second transcoding method that reduces a sample rate associated with the obtained audio data; and
a third transcoding method that compresses the obtained audio data; and
transmitting the transcoded audio data to the client computer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
the obtained audio data comprises dual-channel stereo audio data; and
the step of transcoding the obtained audio data comprises the step of converting the dual-channel stereo audio data to single-channel mono audio data, wherein the single-channel mono audio data becomes the transcoded audio data.
-
-
6. A method according to claim 5, wherein the step of converting the dual-channel stereo audio data comprises the step of averaging corresponding data samples from each of the two channels included in the dual-channel stereo audio data to generate single resultant samples.
-
7. A method according to claim 1, wherein:
-
the obtained audio data includes a plurality of first samples; and
the step of transcoding the obtained audio data comprises the step of interpolating between selected ones of the plurality of first samples to generate second samples, the second samples being included in the transcoded audio data, wherein the number of the second samples included in the transcoded audio data is smaller than the number of the first samples included in the obtained audio data.
-
-
8. A method according to claim 1, wherein:
-
the one or more transcoding methods comprise both the first transcoding method and the second transcoding method; and
the step of transcoding the obtained audio data comprises the step of generating transcoded audio data having both a reduced number of channels and a reduced sample rate with respect to the obtained audio data.
-
-
9. A method according to claim 1, further comprising the step of informing the client computer of the one or more transcoding methods according to which the step of transcoding the obtained audio data has been conducted, so as to permit the client computer to process the transcoded audio data.
-
10. A method according to claim 1, wherein the transcoded audio data inherently includes information whereby the client computer can infer the one or more transcoding methods according to which the step of transcoding the obtained audio data has been conducted.
-
11. A method according to claim 1, wherein the selection of the one or more transcoding methods is based at least in part on a size of the obtained audio data.
-
12. A method according to claim 1, wherein the selection of the one or more transcoding methods is based at least in part on a measure of audio quality that is desired at the client computer.
-
13. A method according to claim 1, wherein the selection of the one or more transcoding methods is based at least in part on a bandwidth of the connection between the proxy computer and the client computer.
-
14. A method according to claim 1, further comprising the steps of:
-
receiving a request for an audio file from the client computer, wherein the audio file includes the audio data, wherein the step of obtaining the audio data comprises the steps of;
requesting the audio file from the remote server in response to the request from the client; and
receiving the requested audio file from the remote server in response to the requesting step; and
informing the client computer of the one or more transcoding methods so that the client computer can process the transcoded audio file, wherein there is less latency while transmitting the transcoded audio file than would otherwise occur if the audio file were instead to be transmitted to the client computer without having been transcoded.
-
-
15. A method according to claim 14, wherein the step of transcoding the obtained audio data further comprises the step of converting the audio file from a first file type associated with the requested audio file to a different, second file type that is associated with the transcoded audio file and that the client computer can accommodate.
-
16. A method according to claim 14, wherein:
-
the one or more transcoding methods include both the first transcoding method and the second transcoding method; and
the step of transcoding the obtained audio data is conducted according to both the first transcoding method and the second transcoding method to generate the transcoded audio file having both a reduced number of channels and a reduced sample rate with respect to the obtained audio data.
-
-
17. A method according to claim 14, wherein:
-
the one or more transcoding methods include the first transcoding method;
the obtained audio data comprises dual-channel stereo audio data; and
the step of transcoding the obtained audio data comprises the steps of;
averaging corresponding data samples from each of the two channels included in the dual-channel stereo audio data to generate single resultant samples representing single-channel mono audio data; and
placing the single resultant samples in the transcoded audio file.
-
-
18. A method according to claim 14, wherein:
-
the one or more transcoding methods include the second transcoding method;
the obtained audio data includes a plurality of first samples; and
the step of transcoding the obtained audio date comprises the step of interpolating between selected ones of the plurality of first samples to generate second samples, the second samples being placed in the transcoded audio file, wherein the number of the second samples included in the transcoded audio file is smaller than the number of the first samples included the first audio data.
-
-
19. A method according to claim 14, wherein the one or more transcoding methods are selected based on at least one criterion from the list of criteria consisting of:
-
audio quality that is desired at the client computer;
a size of the obtained audio file;
a bandwidth of the connection between the proxy computer and the client computer; and
a memory capacity of the client computer.
-
-
20. A proxy computer capable of establishing a connection to a client computer over a network, the proxy computer comprising:
-
means for obtaining audio data from the remote server on behalf of the client computer;
means for determining whether transcoding of the obtained audio data is appropriate;
means for transcoding the audio data using one or more transcoding methods as the obtained audio data is received from the remote server, the one or more transcoding methods being selected from;
a first transcoding method that reduces the number of channels in the obtained audio data;
a second transcoding method that reduces a sample rate associated with the obtained audio data; and
a third transcoding method that compresses the obtained audio data;
means for transmitting the transcoded audio data to the client computer over the network. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
the one or more transcoding methods include the first transcoding method;
the obtained audio data comprises dual-channel stereo audio data; and
the means for transcoding the obtained audio data comprises means for converting the dual-channel stereo audio data to single-channel mono audio data, wherein the single-channel mono audio data becomes the transcoded audio data.
-
-
24. A proxy computer according to claim 23, wherein the means for converting the dual-channel stereo audio data comprises means for averaging corresponding data samples from each of the two channels included in the dual-channel stereo audio data to generate single resultant samples.
-
25. A proxy computer according to claim 20, wherein:
-
the one or more transcoding methods include the second transcoding method;
the obtained audio data includes a plurality of first samples; and
the means for transcoding the obtained audio data comprises means for interpolating between selected ones of the plurality of first samples to generate second samples, the second samples being included in the transcoded audio data, wherein the number of the second samples included in the transcoded audio data is smaller than the number of the first samples included in the obtained audio data.
-
-
26. A proxy computer according to claim 25, wherein:
-
the one or more transcoding methods includes the first transcoding method and the second transcoding method; and
the means for transcoding the obtained audio data performs transcoding according to both the first transcoding method and the second transcoding method to generate transcoded audio data having both a reduced number of channels and a reduced sample rate with respect to the obtained audio data.
-
-
27. A proxy computer according to claim 20, further comprising means for informing the client computer of the selected level of transcoding according to which the means for transcoding has transcoded the obtained audio data, so as to permit the client computer to process the transcoded audio data.
-
28. A proxy computer according to claim 27, wherein the one or more transcoding methods are selected based on at least one criterion from the list of criteria consisting of:
-
audio quality that is desired at the client computer;
a size of the obtained audio file;
a bandwidth of the connection between the proxy computer and the client computer; and
a memory capacity of the client computer.
-
-
29. A machine-readable program storage medium for implementing, in a proxy computer having a connection to a client computer, a method of reducing latency that would otherwise occur as the proxy computer transmits audio data to the client computer, the machine-readable program storage medium comprising:
-
executable instructions for transcoding audio data, including;
first transcoding means for transcoding audio data by reducing the number of channels in the audio data;
second transcoding means for transcoding audio data by reducing a sample rate associated with the audio data; and
third transcoding means for transcoding audio data by compressing the audio data; and
executable instructions for performing the method, including the steps of;
obtaining the audio data from a remote server on behalf of the client computer;
determining whether transcoding of the obtained audio data is appropriate;
if it has been determined that transcoding of the obtained audio data is appropriate, transcoding the obtained audio data using at least one or the first transcoding means, the second transcoding means, and the third transcoding means;
transmitting the transcoded audio data to the client computer. - View Dependent Claims (30, 31, 32, 33, 34)
the obtained audio data comprises dual-channel stereo audio data; and
the step of transcoding the obtained audio data comprises the step of using the first transcoding means to convert the dual-channel stereo audio data to single-channel mono audio data, wherein the single-channel mono audio data becomes the transcoded audio data.
-
-
33. A machine-readable program storage medium according to claim 29, wherein:
-
the obtained audio data includes a plurality of first samples; and
the step of transcoding the obtained audio data comprises the step of using the second transcoding means to interpolate between selected ones of the plurality of first samples to generate second samples, the second samples being included in the transcoded audio data, wherein the number of the second samples included in the transcoded audio data is smaller than the number of the first samples included in the obtained audio data.
-
-
34. A machine-readable program storage medium according to claim 29, wherein the executable instructions for performing the method further comprise executable instructions for performing the step of informing the client computer of which of the first transcoding means, second transcoding means, and third transcoding means has been used to transcode, so as to permit the client computer to process the transcoded audio data.
-
35. A proxy computer capable of forming a connection to a client computer over a network, the proxy computer comprising:
-
a processor; and
at least one storage device coupled to the processor, the at least one storage device having stored therein;
executable instructions for transcoding audio data, including;
first transcoding means for transcoding audio data by reducing the number of channels in the audio data;
second transcoding means for transcoding audio data by reducing a sample rate associated with the audio data; and
third transcoding means for transcoding audio data by compressing the audio data; and
executable instructions which configure the proxy computer to;
obtain the audio data from a remote server on behalf of the client computer;
determine whether transcoding of the audio data is appropriate;
if it has been determined that transcoding of the obtained audio data is appropriate, transcoding the obtained audio data using at least one of the first transcoding means, the second transcoding means, and the third transcoding means;
transmitting the transcoded audio data to the client computer. - View Dependent Claims (36, 37, 38, 39)
the obtained audio data comprises dual-channel stereo audio data; and
the executable instructions which configure the proxy computer to transcode the obtained audio data comprise executable instructions which configure the proxy computer to use the first transcoding means to convert the dual-channel stereo audio data to single-channel mono audio data, wherein the single-channel mono audio data becomes the transcoded audio data.
-
-
38. A first computer system according to claim 37, wherein the executable instructions which configure the proxy computer to convert the dual-channel stereo audio data comprises executable instructions which configure the proxy computer to average corresponding data samples from each of the two channels included in the dual-channel stereo audio data to generate single resultant samples.
-
39. A first computer system according to claim 35, wherein:
-
the obtained audio data includes a plurality of first samples; and
the executable instructions which configure the proxy computer to transcode the obtained audio data comprise executable instructions which configure the proxy computer to use the second transcoding means to interpolate between selected ones of the plurality of first samples to generate second samples, the second samples being included in the transcoded audio data, wherein the number of the second samples included in the transcoded audio data is smaller than the number of the first samples included in the obtained audio data.
-
Specification