[linux-dvb] [Proposal] Meaningful reporting of SNR

Mac Michaels wmichaels1 at earthlink.net
Wed Apr 12 19:08:31 CEST 2006

I see I am off on a tangent here. This is obviously a 
proposal to fix v4l2 when I should instead be addressing 
DVB. My bad!

On Wednesday 12 April 2006 12:01 pm, Mac Michaels wrote:
> On Wednesday 12 April 2006 09:57 am, Robert Schlabbach
> wrote:
> > From: "Rusty Scott" <rustys at ieee.org>
> >
> > > 1)  That it be encouraged to report SNR in dB
> > > whenever possible.
> >
> > I'm afraid most hardware is incapable of producing such
> > measurements. Instead, I'd propose scaling all signal
> > measurements to _percentages_.
> SNR (Signal to Noise Ratio) and Signal Strength are
> different measurements of the RF signal.
> Signal Strength is difficult to compute for a particular
> card. It is the actual level (quantity) of the signal
> appearing on the RF input connector of the tuner for a
> particular TV Channel. There are both internal (RF
> frontend, AGC design, etc.) and external (antenna gain,
> booster amplifiers) that may affect this value. In theory
> a weak signal with a lot of noise will have the same
> strength as a weak signal with little noise. In the first
> case the signal may not be useable whereas it may be
> acceptable in the second case.
> SNR is probably more useful as it is more indicative of
> the quality of the signal received rather than just the
> quantity. SNR is a ratio in dB. Increasing positive
> values indicate that the signal is stronger than the
> noise. Negative values indicate that the noise is
> stronger than the signal. SNR is less affected by
> internal and external influences because additional
> amplification/attenuation usually affect the signal and
> the noise equally.
> I am not familiar with DVB chips. They may provide signal
> strength directly. The chips supported by the lgdt330x
> driver provide SNR directly. The specification gives the
> exact formula to compute SNR in dB for any value read
> from the chip.
> SNR is not in the "Video for Linux Two API Specification
> Draft 0.13". I have no problem reporting SNR in dB or as
> a percentage of full scale. Either way the value returned
> is useful for aiming an antenna or indicating cable
> connection problems. I propose adding some more details
> to the "Video for Linux Two API Specification":
> 1) Change the "signal" field in struct v4l2_tuner from
> unsigned 32bit int to signed 32bit int.
> 2) Describe each of the different values that may be
> returned in the "signal" field in struct v4l2_tuner.
> 3) Define new "capability" flags for struct v4l2_tuner :
>   V4L2_TUNER_CAP_SS driver returns signal strength as
> signal value.
>   V4L2_TUNER_CAP_SNR driver returns SNR as signal value.
>   V4L2_TUNER_CAP_SIG_DB driver returns signal value in
> dB. V4L2_TUNER_CAP_SIG_PCT driver returns signal value as
> a percent of full scale.
>   V4L2_TUNER_CAP_SIG_X1 driver returns signal value as an
> integer. (-xdB to +xdB or 0% to 100%)
>   V4L2_TUNER_CAP_SIG_X10 driver returns signal value as
> tenths of a unit. (-x.xdB to +x.xdB or 0.0% to 100.0%)
>   V4L2_TUNER_CAP_SIG_X100 driver returns signal value as
> hundredths of a unit. (-x.xxdB to +x.xxdB or 0.00% to
> 100.00%)
> Where:
> V4L2_TUNER_CAP_SS and V4L2_TUNER_CAP_SNR are mutually
> exclusive.
> mutually exclusive.
> V4L2_TUNER_CAP_SIG_X100 are mutually exclusive.
> Each driver would set the "capability" according to what
> value is returned in "signal" by the driver.
> > Regards,
> > --
> > Robert Schlabbach
> > e-mail: robert_s at gmx.net
> > Berlin, Germany
> _______________________________________________
> linux-dvb mailing list
> linux-dvb at linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

More information about the linux-dvb mailing list