Development
This section is intended for code contributors.
First ensure that you have pnpm and Node.js installed in your development environment.
Next, install the project’s dependencies:
pnpm installTo run the demo (for local development) with documentation:
pnpm dev# demo site should now be available from `http://localhost:4321/unbikit/`To run linting/formatting/type-checking and run tests:
pnpm checkTo run tests in “watch mode” with the Vitest UI:
pnpm test# demo site should now be available from `http://localhost:51712/__vitest__/`To run tests and generate a code coverage report:
pnpm test:coverageTo run the benchmarks:
pnpm benchTo build for production:
pnpm buildTo build the demo and documentation for production and then view it:
pnpm build:apppnpm preview:app# demo site should now be available from `http://localhost:4321/unbikit/`Verification is performed by the CI flow for all pull requests before they can be merged to the main branch. Commit logs are checked for Conventional Commits compliance as part of this flow.
References
Section titled “References”Sources of reference material about decoding the .bik format:
- MultimediaWiki pages on the file format
- Kostya’s Boring Codec World
- libav (see the FFmpeg website)
- Wikipedia for overviews of the mathematical transformations involved with video decoding
- research papers on efficient algorithm implementations (searchable online):
- Arai-Agui-Nakajima (AAN) IDCT algorithm
- Cooley-Tukey FFT algorithm for IRDFT
- Byeong Gi Lee (1984) IDCT algorithm