1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-08-31 10:29:32 +00:00

Tweaks some numbers.

I'm largely treading water here. Probably time to think about the race.
This commit is contained in:
Thomas Harte 2020-09-02 08:17:01 -04:00
parent c7ce65ea4c
commit 0f0c3e616d
2 changed files with 7 additions and 5 deletions

View File

@ -567,10 +567,10 @@ using BufferingScanTarget = Outputs::Display::BufferingScanTarget;
// Generate the chrominance filter. // Generate the chrominance filter.
{ {
auto *const chromaCoefficients = uniforms()->chromaCoefficients; auto *const chromaCoefficients = uniforms()->chromaCoefficients;
SignalProcessing::FIRFilter chrominancefilter(15, float(_lineBufferPixelsPerLine), 0.0f, colourCyclesPerLine * (isSVideoOutput ? 1.0f : 1.0f)); SignalProcessing::FIRFilter chrominancefilter(15, float(_lineBufferPixelsPerLine), 0.0f, colourCyclesPerLine); // * (isSVideoOutput ? 1.0f : 0.25f)
const auto calculatedCoefficients = chrominancefilter.get_coefficients(); const auto calculatedCoefficients = chrominancefilter.get_coefficients();
for(size_t c = 0; c < 8; ++c) { for(size_t c = 0; c < 8; ++c) {
chromaCoefficients[c].y = chromaCoefficients[c].z = calculatedCoefficients[c] * (isSVideoOutput ? 4.0f : 8.0f); chromaCoefficients[c].y = chromaCoefficients[c].z = calculatedCoefficients[c] * (isSVideoOutput ? 4.0f : 4.0f);
chromaCoefficients[c].x = 0.0f; chromaCoefficients[c].x = 0.0f;
} }
chromaCoefficients[7].x = 1.0f; chromaCoefficients[7].x = 1.0f;
@ -579,7 +579,7 @@ using BufferingScanTarget = Outputs::Display::BufferingScanTarget;
// Generate the luminance filter. // Generate the luminance filter.
{ {
auto *const luminanceCoefficients = uniforms()->lumaCoefficients; auto *const luminanceCoefficients = uniforms()->lumaCoefficients;
SignalProcessing::FIRFilter luminancefilter(15, float(_lineBufferPixelsPerLine), 0.0f, colourCyclesPerLine * 0.5f); SignalProcessing::FIRFilter luminancefilter(15, float(_lineBufferPixelsPerLine), 0.0f, colourCyclesPerLine * 0.85f);
const auto calculatedCoefficients = luminancefilter.get_coefficients(); const auto calculatedCoefficients = luminancefilter.get_coefficients();
memcpy(luminanceCoefficients, calculatedCoefficients.data(), sizeof(float)*8); memcpy(luminanceCoefficients, calculatedCoefficients.data(), sizeof(float)*8);
} }

View File

@ -441,9 +441,11 @@ kernel void separateLumaKernel( texture2d<float, access::read> inTexture [[textu
Sample(8, 6) + Sample(9, 5) + Sample(10, 4) + Sample(11, 3) + Sample(12, 2) + Sample(13, 1) + Sample(14, 0); Sample(8, 6) + Sample(9, 5) + Sample(10, 4) + Sample(11, 3) + Sample(12, 2) + Sample(13, 1) + Sample(14, 0);
#undef Sample #undef Sample
// TODO: determine why centreSample.a doesn't seem to be giving the real composite amplitude, and stop
// hard-coding 0.3f below.
outTexture.write(float4( outTexture.write(float4(
luminance, luminance / (1.0f - 0.3f),
(centreSample.gb - float2(0.5f)) * (centreSample.r - luminance) + float2(0.5f), (centreSample.gb - float2(0.5f)) * (centreSample.r - luminance) * 1.0f / 0.3f + float2(0.5f),
1.0f 1.0f
), ),
gid + uint2(7, offset)); gid + uint2(7, offset));