Chengbin
19th July 2008, 22:22
The current lossless encoders are able to compress most WAV files to about 70% of the original file size with no degrade in quality. This translates into about 25-30MB per file. It is still pretty big compared to mp3. I wonder if future encoders can do the things i'm suggesting below.
I've noticed that in many hip hop songs the chorus are exactly the same. For example I'm going to use the song Low by Flo-Rida because this song is very popular (therefore well known), and it is an excellent example.
The song Low is 3 minutes and 53 seconds long and is divided into 8 parts. 15s intro, 30s chorus, 30s rap, 30s chorus, 30s rap, 30s chorus, 30s rap, 30s chorus, 8 second ending.
Since the chorus is exactly the same, we can take the chorus out, therefore only recording the chorus once out of the four times it is played through the song. When you decode it, you insert the chorus back to the time the song plays it. This process I'm explaining is very much like factorization in math.
I+CR1+CR2+CR3+C+E.
After factorizing it becomes
C(I+R1+R2+R3+1+E)
See how much less space the factorized polynomial took? This can be used in audio encoding as well. Suppose the song in normal WAV takes 40MB, if we only encode the chorus once, 90 seconds will be saved, that translates into an approximate 15.5MB of audio not needed to be encoded. The theoretical original file size will be down to about 24.5MB.
I think with two pass encoding the encoders should be able to recognize which part of the song are exactly the same.
The next method of reducing file size is trickier, and I think it would be too complicated for software writers to write. But I'll explain it anyway.
Many songs, especially hip hop songs have a constant beat in played throughout the song. Usually the beat is about 5 seconds played 20-30 times throughout the song. If the encoder is able to extract that beat out and only encode it once, that could mean a space saving of anywhere from 4-7MB per song. If that's possible, the theoretically WAV file of Low can be just 20MB.
Low is a song where the left and right channel are almost exactly the same (except for three 2 second clap panning in the song). If you just encode one channel, and encode the clap panning in stereo only, the theoretical WAV file size is only 10MB.
Now we encode this file with FLAC. If FLAC is able to shrink the WAV file to 80% (I guessed 80% because FLAC does do some of joint stereo encoding, and it was the third method on my list) of the original file size, it would only be 8MB compared to 4-5MB using MP3.
So what do you think about my ideas? Do you think it is possible? (Personally I think the first method is totally possible but the second one is not). Please tell me what you think.
I've noticed that in many hip hop songs the chorus are exactly the same. For example I'm going to use the song Low by Flo-Rida because this song is very popular (therefore well known), and it is an excellent example.
The song Low is 3 minutes and 53 seconds long and is divided into 8 parts. 15s intro, 30s chorus, 30s rap, 30s chorus, 30s rap, 30s chorus, 30s rap, 30s chorus, 8 second ending.
Since the chorus is exactly the same, we can take the chorus out, therefore only recording the chorus once out of the four times it is played through the song. When you decode it, you insert the chorus back to the time the song plays it. This process I'm explaining is very much like factorization in math.
I+CR1+CR2+CR3+C+E.
After factorizing it becomes
C(I+R1+R2+R3+1+E)
See how much less space the factorized polynomial took? This can be used in audio encoding as well. Suppose the song in normal WAV takes 40MB, if we only encode the chorus once, 90 seconds will be saved, that translates into an approximate 15.5MB of audio not needed to be encoded. The theoretical original file size will be down to about 24.5MB.
I think with two pass encoding the encoders should be able to recognize which part of the song are exactly the same.
The next method of reducing file size is trickier, and I think it would be too complicated for software writers to write. But I'll explain it anyway.
Many songs, especially hip hop songs have a constant beat in played throughout the song. Usually the beat is about 5 seconds played 20-30 times throughout the song. If the encoder is able to extract that beat out and only encode it once, that could mean a space saving of anywhere from 4-7MB per song. If that's possible, the theoretically WAV file of Low can be just 20MB.
Low is a song where the left and right channel are almost exactly the same (except for three 2 second clap panning in the song). If you just encode one channel, and encode the clap panning in stereo only, the theoretical WAV file size is only 10MB.
Now we encode this file with FLAC. If FLAC is able to shrink the WAV file to 80% (I guessed 80% because FLAC does do some of joint stereo encoding, and it was the third method on my list) of the original file size, it would only be 8MB compared to 4-5MB using MP3.
So what do you think about my ideas? Do you think it is possible? (Personally I think the first method is totally possible but the second one is not). Please tell me what you think.