Complete either of the two following Tasks as part of your GSoC 2021 application if you are applying for any Amaranth related task.
First, read & understand the stream abstractions of the axiom Amaranth gateware. For both tasks you are allowed (& required) to use existing code from the axiom Amaranth-gateware.
Task1:
Build a core in Amaranth in the context of https://github.com/apertus-open-source-cinema/naps that generates SMPTE color bars in a (build time) configurable resolution. The output should be an ImageStream. Simulate that core & write a Testbench that stores the image. Submit a Pull request against the Amaranth-gateware repo.
resources:
- https://en.m.wikipedia.org/wiki/SMPTE_color_bars
- https://github.com/apertus-open-source-cinema/naps/blob/main/naps/cores/video/image_stream.py
- https://github.com/apertus-open-source-cinema/naps/blob/main/naps/cores/video/demo_source.py
Task2:
Build a core in Amaranth in the context of https://github.com/apertus-open-source-cinema/naps that changes a gamma of a monochrome Image by a compile time selectable amount. Use a Memory to implement that.
The input & output should be an ImageStream. Simulate that core & write a Testbench that can read & write an image. Submit a Pull request against the Amaranth-gateware repo.
resources:
- https://www.cambridgeincolour.com/tutorials/gamma-correction.htm
- https://github.com/apertus-open-source-cinema/naps/blob/main/naps/stream/stream.py
- https://github.com/apertus-open-source-cinema/naps/blob/main/naps/cores/compression/huffman_encoder.py (an example of a stream core that uses a memory)
To get in touch with any mentor check the Mentor Contact List.