1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2025-01-05 02:30:56 +00:00

More inclusive low pass filter for color match look ahead

This commit is contained in:
David Schmenk 2024-12-07 11:57:59 -08:00
parent 2a9e506fa2
commit 99bbca0264

View File

@ -118,34 +118,35 @@ def rgbPix(rgbptr, errptr, cx)#1
dist(r0, g0, b0, r1, g1, b1) dist(r0, g0, b0, r1, g1, b1)
if isgti16(rgbThreshold) if isgti16(rgbThreshold)
d1:[0], d1:[1] = pd:[0], pd:[1] d1:[0], d1:[1] = pd:[0], pd:[1]
d2:[0], d2:[1] = pd:[0], pd:[1]
else else
// Calc match if next pixel is one // Calc match if next pixel is one
d1:[0], d1:[1] = dist(r1, g1, b1, lr1, lg1, lb1) d1:[0], d1:[1] = dist(r1, g1, b1, lr1, lg1, lb1)
fin if lookahead > 1
if lookahead > 1 // Look ahead in chroma cycle for possible better match for after next RGB pixel
// Look ahead in chroma cycle for possible better match for after next RGB pixel i = ((cx + 2) & 3) * 3
i = ((cx + 2) & 3) * 3 lr2 = pr1 + ntscChroma[i+RED]
lr2 = pr1 + ntscChroma[i+RED] lg2 = pg1 + ntscChroma[i+GRN]
lg2 = pg1 + ntscChroma[i+GRN] lb2 = pb1 + ntscChroma[i+BLU]
lb2 = pb1 + ntscChroma[i+BLU] r2 = gamma[rgbptr->[6+RED]]
r2 = gamma[rgbptr->[6+RED]] g2 = gamma[rgbptr->[6+GRN]]
g2 = gamma[rgbptr->[6+GRN]] b2 = gamma[rgbptr->[6+BLU]]
b2 = gamma[rgbptr->[6+BLU]] if errDiv
if errDiv r2 = r2 + (errptr=>[6+RED] + r1 - lr2) / errDiv
r2 = r2 + (errptr=>[6+RED] + r1 - lr2) / errDiv g2 = g2 + (errptr=>[6+GRN] + g1 - lg2) / errDiv
g2 = g2 + (errptr=>[6+GRN] + g1 - lg2) / errDiv b2 = b2 + (errptr=>[6+BLU] + b1 - lb2) / errDiv
b2 = b2 + (errptr=>[6+BLU] + b1 - lb2) / errDiv fin
fin // Check for hi frequency transition
// Check for hi frequency transition dist(r0, g0, b0, r2, g2, b2)
dist(r0, g0, b0, r2, g2, b2) if isgti16(rgbThreshold)
if isgti16(rgbThreshold) d2:[0], d2:[1] = pd:[0], pd:[1]
d2:[0], d2:[1] = pd:[0], pd:[1] else
// Calc match if after next pixel is one
d2:[0], d2:[1] = dist(r2, g2, b2, lr2, lg2, lb2)
fin
else else
// Calc match if after next pixel is one d2:[0], d2:[1] = pd:[0], pd:[1]
d2:[0], d2:[1] = dist(r2, g2, b2, lr2, lg2, lb2)
fin fin
else
d2:[0], d2:[1] = pd:[0], pd:[1]
fin fin
else else
d1:[0], d1:[1] = pd:[0], pd:[1] d1:[0], d1:[1] = pd:[0], pd:[1]