On Wednesday 12 April 2006 09:57 am, Robert Schlabbach wrote: > From: "Rusty Scott" <rustys@xxxxxxxx> > > > 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. V4L2_TUNER_CAP_SIG_DB and V4L2_TUNER_CAP_SIG_PCT are mutually exclusive. V4L2_TUNER_CAP_SIG_X1 and V4L2_TUNER_CAP_SIG_X10 and 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@xxxxxxx > Berlin, Germany _______________________________________________ linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb