diff --git a/sstv/decode.py b/sstv/decode.py index f825fbf..8d7304b 100644 --- a/sstv/decode.py +++ b/sstv/decode.py @@ -13,7 +13,7 @@ def calc_lum(freq): """Converts SSTV pixel frequency range into 0-255 luminance byte""" lum = int(round((freq - 1500) / 3.1372549)) - return 255 if lum > 255 else 0 if lum < 0 else lum + return min(max(lum, 0), 255) def barycentric_peak_interp(bins, x): @@ -23,15 +23,8 @@ def barycentric_peak_interp(bins, x): # x value of the peak using neighbours in the bins array # Make sure data is in bounds - if x <= 0: - y1 = bins[x] - else: - y1 = bins[x-1] - - if x + 1 >= len(bins): - y3 = bins[x] - else: - y3 = bins[x+1] + y1 = bins[x] if x <= 0 else bins[x-1] + y3 = bins[x] if x + 1 >= len(bins) else bins[x+1] denom = y3 + bins[x] + y1 if denom == 0: diff --git a/sstv/encode.py b/sstv/encode.py index 1f3b1be..73234e1 100644 --- a/sstv/encode.py +++ b/sstv/encode.py @@ -10,7 +10,7 @@ def calc_freq(lum): """Converts 0-255 luminance byte into SSTV pixel frequency range""" freq = (lum * 3.1372549) + 1500 - return 2300 if freq > 2300 else 1500 if freq < 1500 else freq + return min(max(freq, 1500), 2300) class SSTVEncoder(object):