mirror of
https://github.com/KrisKennaway/ii-vision.git
synced 2024-11-05 09:05:38 +00:00
Streaming video and audio for Apple II
976e26f159
of all possible weights. We encode the two 8-bit inputs into a single 16 bit value instead of dealing with an array of tuples. Fix an important bug in _compute_delta: old and is_odd were transposed so we weren't actually subtracting the old deltas! Surprisingly, when I accidentally fixed this bug in the vectorized version, the video encoding was much worse! This turned out to be because the edit distance metric allowed reducing diffs by turning on pixels, which meant it would tend to do this when "minimizing error" in a way that was visually unappealing. To remedy this, introduce a separate notion of substitution cost for errors, and weight pixel colour changes more highly to discourage them unless absolutely necessary. This gives very good quality results! Also vectorize the selection of page offsets and priorities having a negative error delta, instead of heapifying the entire page. Also it turns out to be a bit faster to compute (and memoize) the delta between a proposed content byte and the entire target screen at once, since we'll end up recomputing the same content diffs multiple times. (Committing messy version in case I want to revisit some of those interim versions) |
||
---|---|---|
audiotest/audiotest | ||
ethernet/ethernet | ||
simulator | ||
audio.py | ||
frame_grabber.py | ||
main.py | ||
memory_map.py | ||
movie.py | ||
opcodes_test.py | ||
opcodes.py | ||
scheduler.py | ||
screen.py | ||
server.py | ||
symbol_table_test.py | ||
symbol_table.py | ||
video_test.py | ||
video.py |