ii-vision/transcoder
kris ab29b01d0f Finish implementing HGRBitmap support.
- For HGRBitmap introduce a packed representation in the form
  hhHaaaaaaaABbbbbbbbFff where capitals indicate the location of the
  palette bit.  i.e. for header and footer we include the neighbouring
  2 data bits as in DHGR but also the palette bit from that byte, which
  is necessary to understand how these data bits unpack into dots.

  The nonstandard ordering of the palette bit for the odd data byte (B)
  is so that the masking by byte offset produces a contiguous sequence
  of bits, i.e. the 14-bit masked representation is still dense.

- Introduce a to_dots() classmethod that converts from the masked bit
  representation of dots influenced by a screen byte to the actual
  sequence of screen dots.  For DHGR this is the identity map since
  there are no shenanigans with palette bits causing dots to shift
  around.

- Add a bunch more unit tests, and add back the Sather tests for HGR
  artifact colours from palette bit interference, which now all pass!

- Reduce the size of the precomputed edit distance matrix by half by
  exploiting the fact that it is symmetrical under
  i << N + j <-> j << N + i where N is the size of the masked bit
  representation (i.e. transposing the original (i, j) -> dist
  metric matrix).
2019-07-07 21:22:44 +01:00
..
data Parametrize the RGB palette to encode with, and support both NTSC and 2019-06-19 22:06:54 +01:00
audio.py Simplify the accounting of audio ticks in video framing, and fix an off-by-one that was causing audio and video to become desynchronized. 2019-06-19 21:47:49 +01:00
colours_test.py Support decoding arbitrary number of dots as nominal colour sequence. 2019-07-07 21:13:28 +01:00
colours.py Support decoding arbitrary number of dots as nominal colour sequence. 2019-07-07 21:13:28 +01:00
frame_grabber_test.py Store video frames in {basename}/{mode}/{palette}/ directory to 2019-06-20 21:15:52 +01:00
frame_grabber.py Minor code cleanups 2019-06-21 22:08:22 +01:00
machine.py Minor code cleanups 2019-06-21 22:08:22 +01:00
main.py Parametrize the RGB palette to encode with, and support both NTSC and 2019-06-19 22:06:54 +01:00
make_data_tables_test.py Separate the details of the bitmap packing from operations on the 2019-07-04 15:21:20 +01:00
make_data_tables.py Checkpoint WIP for easier comparison to dhgr branch: 2019-07-02 22:40:50 +01:00
movie.py Minor code cleanups 2019-06-21 22:08:22 +01:00
opcodes_test.py Fix unit test 2019-06-19 21:45:58 +01:00
opcodes.py Rename FrameSequencer to FrameGrabber and break out into separate file. 2019-06-19 22:04:02 +01:00
palette.py Checkpoint WIP for easier comparison to dhgr branch: 2019-07-02 22:40:50 +01:00
screen_test.py Finish implementing HGRBitmap support. 2019-07-07 21:22:44 +01:00
screen.py Finish implementing HGRBitmap support. 2019-07-07 21:22:44 +01:00
symbol_table_test.py Add module docstrings 2019-03-21 16:42:47 +00:00
symbol_table.py Start to flesh out function docstrings, add some more type annotations. 2019-03-21 22:41:05 +00:00
video_mode.py Rename FrameSequencer to FrameGrabber and break out into separate file. 2019-06-19 22:04:02 +01:00
video_test.py Separate the details of the bitmap packing from operations on the 2019-07-04 15:21:20 +01:00
video.py Support HGR mode again 2019-07-07 21:12:10 +01:00