frame rate vs sample rate
Asked Answered
O

3

19

What is the difference between sample rate and frame rate? I tried to check a song and found sample rate and frame rate using java.They have same value, It makes me confuse.

doesn't frame consist of many sample?

thank you

Odetteodeum answered 25/10, 2013 at 12:9 Comment(0)
S
25

read the documentation

Sample rate = number of samples / second

Frame = 1 sample from each channel (PCM)

Frame Size = Sample size * Channels

Frame Rate = frames / second.

For PCM the sample rate and the frame rate are the same since a frame consists of a a sample from each channel

Steinberg answered 25/10, 2013 at 12:27 Comment(4)
The sample rate is always the same as the frame rate for PCM. @greg-449 posted the correct answerJuliennejuliet
gregs answer is the correct one. It is independent of channels for PCM Source code: book2s.com/java/src/package/javax/sound/sampled/…Disrate
@Disrate Both answers are the correct. The link you posted describes exactly what I wrote above: For encodings like PCM, a frame consists of the set of samples for all channels at a given point in time, and so the size of a frame (in bytes) is always equal to the size of a sample (in bytes) times the number of channels...with some other sorts of encodings...the sample rate and sample size refer to the data after it is decoded into PCM, and so they are completely different from the frame rate and frame sizeSteinberg
greg-449 is quoting documentation regarding the frame RATE while @Steinberg is quoting the Java docs about the frame SIZE.Neurilemma
E
17

From: http://www.jsresources.org/faq_audio.html#frame_rate

For PCM, A-law and μ-law data, a frame is all data that belongs to one sampling intervall. This means that the frame rate is the same as the sample rate.

For compressed formats like Ogg Vorbis, mp3 and GSM 06.10, the situation is different. A frame is a block of data as it is output by the encoder. Often, these blocks contain the information for several sampling intervalls. For instance, a mp3 frame represents about 24 ms. So the frame rate is about 40 Hz. However, the sample rate of the original is preserved even inside the frames and is correctly restored after decoding.

Embrangle answered 25/10, 2013 at 12:23 Comment(0)
A
1

Viewing the Java Code javax.sound.sampled.AudioFormat.java line 252:

frameSize 

    ((sampleSizeInBits + 7) / 8) * channels

When is Different to http://soundfile.sapp.org/doc/WaveFormat/

BlockAlign == NumChannels * BitsPerSample/8

I can't understand Why use + 7.

Afton answered 20/9, 2019 at 3:4 Comment(1)
Frame size is in bytes. Let's say channels=2. So, for sampleSizeInBits=8 or 16 we still will have frameSize=2 or 4 bytes, as it should be. +7 is neglected as we have integer division here. +7 starts playing role when sampleSizeInBits is not multiple to 8. E.g. sampleSizeInBits=10. So, for sampleSizeInBits=10 and channels=2 frameSize=((12+7)/8)*2=(19/8)*2=4. Briefly, +7 takes into account cases when sampleSizeInBits is not multiple to 8 to have correct number of bytes for frameSizeWorship

© 2022 - 2024 — McMap. All rights reserved.