Repository navigation
Inspector fixes: luma-based maps, edge blocks, true error units - #4
Merged
Merged
Conversation
- Edge Distortion and Blocking maps read channel 0 of a BGR image, i.e. blue only; a red/green-only distortion barely registered. They now use BT.601 luma (or the single channel of 1-channel input). - Block inspector: partial right/bottom edge blocks are reachable (ceil instead of floor for the last block index) and padded by edge replication in both inspectBlock and the RGB block reader, matching how the codec now codes them. Previously they were unreachable and inspectBlock zero-filled them. - Artifact tooltip shows the real value in pixel levels (map value divided by its gain) instead of the gained 0-255 map value, flags saturation, and reads the largest channel of the colour error map rather than red only (the heatmap now uses the same intensity). The WASM gain is re-synced on mount: it outlived the component while the slider reset to 5x, so map and slider could disagree. - inspection.ts read the reconstruction from a #processedCanvas that no longer exists (renamed, and unmounted while inspecting). It now copies the RGB view from WASM via getProcessedRgba(). This path is only hit in RGB mode, which the inspector currently normalises away, so it had no visible symptom. suggested-blocks used the same canvas for an error score no category consumed; that dead path is removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5 tasks done
thundermage117
changed the base branch from
feature/codec-ux-improvements
to
main
October 10, 2026 15:13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Bug fixes for the block inspector and artifact inspector.
floorinstead ofceilfor the last block index.inspectBlockzero-filled the missing pixels. It now pads by edge replication, matching how the codec codes them since Wavelet fixes (CDF 9/7, fair bit estimates), DCT edge fixes, and viewer UX #3.inspection.tsread the reconstruction from a#processedCanvasthat no longer exists. It now copies the RGB view from WASM viagetProcessedRgba(). This path only runs in RGB mode, which the inspector switches away from on entry, so the bug had no visible symptom.suggested-blocksused the same canvas for an error score that no category used. That dead path is removed.Test plan
make test: 56/56. New tests cover non-blue edge/blocking sensitivity, 1-channel input, and edge-replicatedinspectBlock; the edge and blocking tests fail against the old code.npm run test: 192. RGB reconstruction is read from WASM, and partial-block RGB padding is covered.npm run test:browser: 44, including a real-WASM check thatgetProcessedRgbamatches the RGB view.🤖 Generated with Claude Code