├── .envrc ├── .eslintignore ├── .eslintrc.js ├── .github └── workflows │ └── main.yml ├── .gitignore ├── .prettierrc.yaml ├── LICENSE ├── README.md ├── dependabot.yml ├── nix ├── sources.json └── sources.nix ├── package.json ├── public ├── example-images │ ├── cats_medium.jpg │ ├── cats_small.jpg │ ├── girih_pattern_medium.jpg │ ├── girih_pattern_small.jpg │ ├── girl_medium.jpg │ ├── girl_small.jpg │ ├── keep-calm-and-use-svd_medium.png │ ├── keep-calm-and-use-svd_small.png │ ├── mondrian_medium.jpg │ ├── mondrian_small.jpg │ ├── mountains_sea.jpg │ ├── mountains_sea_5svs.jpg │ ├── nyc_medium.jpg │ ├── nyc_small.jpg │ ├── quiz1_medium.jpg │ ├── quiz2_medium.jpg │ ├── quiz3_medium.jpg │ ├── quiz4_medium.jpg │ ├── quiz5_medium.jpg │ ├── randbitmap-rdo_medium.png │ ├── randbitmap-rdo_small.png │ ├── royal_stewart_medium.jpg │ ├── royal_stewart_small.jpg │ ├── skater_boy_medium.jpg │ ├── skater_boy_small.jpg │ ├── tree_medium.jpg │ └── tree_small.jpg ├── favicon.png ├── index.html ├── matrix_grid.png ├── question_mark_small.jpg ├── spinner.gif └── style.css ├── shell.nix ├── src ├── generic-tsconfig.json ├── main-app │ ├── App.tsx │ ├── FileInputField.tsx │ ├── Gallery.tsx │ ├── HoverCanvasView.tsx │ ├── ImagePlaceholder.tsx │ ├── SingularValuesDiagram.tsx │ ├── SingularValuesSlider.tsx │ ├── SvdApproximation.tsx │ ├── image-svd.ts │ ├── index.tsx │ ├── rgb.ts │ ├── svdComputationManager.ts │ ├── tsconfig.json │ └── typings │ │ └── worker-loader.d.ts ├── shared │ ├── svd-worker-protocol.ts │ └── tsconfig.json └── web-worker │ ├── svd-worker.ts │ └── tsconfig.json ├── svd-benchmark.js ├── svd-image-compression-worker ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── README.md ├── src │ ├── lib.rs │ └── utils.rs └── tests │ └── web.rs └── webpack.config.js /.envrc: -------------------------------------------------------------------------------- 1 | eval "$(lorri direnv)" 2 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | build 3 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/.eslintrc.js -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/.github/workflows/main.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | .vscode 4 | dist -------------------------------------------------------------------------------- /.prettierrc.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/.prettierrc.yaml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/README.md -------------------------------------------------------------------------------- /dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/dependabot.yml -------------------------------------------------------------------------------- /nix/sources.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/nix/sources.json -------------------------------------------------------------------------------- /nix/sources.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/nix/sources.nix -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/package.json -------------------------------------------------------------------------------- /public/example-images/cats_medium.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/cats_medium.jpg -------------------------------------------------------------------------------- /public/example-images/cats_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/cats_small.jpg -------------------------------------------------------------------------------- /public/example-images/girih_pattern_medium.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/girih_pattern_medium.jpg -------------------------------------------------------------------------------- /public/example-images/girih_pattern_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/girih_pattern_small.jpg -------------------------------------------------------------------------------- /public/example-images/girl_medium.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/girl_medium.jpg -------------------------------------------------------------------------------- /public/example-images/girl_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/girl_small.jpg -------------------------------------------------------------------------------- /public/example-images/keep-calm-and-use-svd_medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/keep-calm-and-use-svd_medium.png -------------------------------------------------------------------------------- /public/example-images/keep-calm-and-use-svd_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/keep-calm-and-use-svd_small.png -------------------------------------------------------------------------------- /public/example-images/mondrian_medium.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/mondrian_medium.jpg -------------------------------------------------------------------------------- /public/example-images/mondrian_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/mondrian_small.jpg -------------------------------------------------------------------------------- /public/example-images/mountains_sea.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/mountains_sea.jpg -------------------------------------------------------------------------------- /public/example-images/mountains_sea_5svs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/mountains_sea_5svs.jpg -------------------------------------------------------------------------------- /public/example-images/nyc_medium.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/nyc_medium.jpg -------------------------------------------------------------------------------- /public/example-images/nyc_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/nyc_small.jpg -------------------------------------------------------------------------------- /public/example-images/quiz1_medium.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/quiz1_medium.jpg -------------------------------------------------------------------------------- /public/example-images/quiz2_medium.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/quiz2_medium.jpg -------------------------------------------------------------------------------- /public/example-images/quiz3_medium.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/quiz3_medium.jpg -------------------------------------------------------------------------------- /public/example-images/quiz4_medium.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/quiz4_medium.jpg -------------------------------------------------------------------------------- /public/example-images/quiz5_medium.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/quiz5_medium.jpg -------------------------------------------------------------------------------- /public/example-images/randbitmap-rdo_medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/randbitmap-rdo_medium.png -------------------------------------------------------------------------------- /public/example-images/randbitmap-rdo_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/randbitmap-rdo_small.png -------------------------------------------------------------------------------- /public/example-images/royal_stewart_medium.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/royal_stewart_medium.jpg -------------------------------------------------------------------------------- /public/example-images/royal_stewart_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/royal_stewart_small.jpg -------------------------------------------------------------------------------- /public/example-images/skater_boy_medium.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/skater_boy_medium.jpg -------------------------------------------------------------------------------- /public/example-images/skater_boy_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/skater_boy_small.jpg -------------------------------------------------------------------------------- /public/example-images/tree_medium.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/tree_medium.jpg -------------------------------------------------------------------------------- /public/example-images/tree_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/example-images/tree_small.jpg -------------------------------------------------------------------------------- /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/favicon.png -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/index.html -------------------------------------------------------------------------------- /public/matrix_grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/matrix_grid.png -------------------------------------------------------------------------------- /public/question_mark_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/question_mark_small.jpg -------------------------------------------------------------------------------- /public/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/spinner.gif -------------------------------------------------------------------------------- /public/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/public/style.css -------------------------------------------------------------------------------- /shell.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/shell.nix -------------------------------------------------------------------------------- /src/generic-tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/generic-tsconfig.json -------------------------------------------------------------------------------- /src/main-app/App.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/main-app/App.tsx -------------------------------------------------------------------------------- /src/main-app/FileInputField.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/main-app/FileInputField.tsx -------------------------------------------------------------------------------- /src/main-app/Gallery.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/main-app/Gallery.tsx -------------------------------------------------------------------------------- /src/main-app/HoverCanvasView.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/main-app/HoverCanvasView.tsx -------------------------------------------------------------------------------- /src/main-app/ImagePlaceholder.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/main-app/ImagePlaceholder.tsx -------------------------------------------------------------------------------- /src/main-app/SingularValuesDiagram.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/main-app/SingularValuesDiagram.tsx -------------------------------------------------------------------------------- /src/main-app/SingularValuesSlider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/main-app/SingularValuesSlider.tsx -------------------------------------------------------------------------------- /src/main-app/SvdApproximation.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/main-app/SvdApproximation.tsx -------------------------------------------------------------------------------- /src/main-app/image-svd.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/main-app/image-svd.ts -------------------------------------------------------------------------------- /src/main-app/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/main-app/index.tsx -------------------------------------------------------------------------------- /src/main-app/rgb.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/main-app/rgb.ts -------------------------------------------------------------------------------- /src/main-app/svdComputationManager.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/main-app/svdComputationManager.ts -------------------------------------------------------------------------------- /src/main-app/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/main-app/tsconfig.json -------------------------------------------------------------------------------- /src/main-app/typings/worker-loader.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/main-app/typings/worker-loader.d.ts -------------------------------------------------------------------------------- /src/shared/svd-worker-protocol.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/shared/svd-worker-protocol.ts -------------------------------------------------------------------------------- /src/shared/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/shared/tsconfig.json -------------------------------------------------------------------------------- /src/web-worker/svd-worker.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/web-worker/svd-worker.ts -------------------------------------------------------------------------------- /src/web-worker/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/src/web-worker/tsconfig.json -------------------------------------------------------------------------------- /svd-benchmark.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/svd-benchmark.js -------------------------------------------------------------------------------- /svd-image-compression-worker/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | **/*.rs.bk 3 | bin/ 4 | pkg/ 5 | wasm-pack.log 6 | .cargo-ok 7 | -------------------------------------------------------------------------------- /svd-image-compression-worker/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/svd-image-compression-worker/Cargo.lock -------------------------------------------------------------------------------- /svd-image-compression-worker/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/svd-image-compression-worker/Cargo.toml -------------------------------------------------------------------------------- /svd-image-compression-worker/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/svd-image-compression-worker/README.md -------------------------------------------------------------------------------- /svd-image-compression-worker/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/svd-image-compression-worker/src/lib.rs -------------------------------------------------------------------------------- /svd-image-compression-worker/src/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/svd-image-compression-worker/src/utils.rs -------------------------------------------------------------------------------- /svd-image-compression-worker/tests/web.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/svd-image-compression-worker/tests/web.rs -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timjb/svd-image-compression-demo/HEAD/webpack.config.js --------------------------------------------------------------------------------