diff options
author | metamuffin <metamuffin@disroot.org> | 2023-03-09 22:48:33 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-03-09 22:48:33 +0100 |
commit | 680b08e6b9d64284b7992fb52a23e5f891291406 (patch) | |
tree | abe30a9f18be09ef931b4b6357d216f6ba982095 | |
parent | c45f80a14ecd00914eb1d4e8f628b74a713667ba (diff) | |
download | video-codec-experiments-680b08e6b9d64284b7992fb52a23e5f891291406.tar video-codec-experiments-680b08e6b9d64284b7992fb52a23e5f891291406.tar.bz2 video-codec-experiments-680b08e6b9d64284b7992fb52a23e5f891291406.tar.zst |
rename + readme
-rw-r--r-- | COPYING | 4 | ||||
-rw-r--r-- | bv1/.gitignore (renamed from lvc/.gitignore) | 0 | ||||
-rw-r--r-- | bv1/Cargo.lock (renamed from lvc/Cargo.lock) | 0 | ||||
-rw-r--r-- | bv1/Cargo.toml (renamed from lvc/Cargo.toml) | 0 | ||||
-rw-r--r-- | bv1/app/Cargo.toml (renamed from lvc/app/Cargo.toml) | 0 | ||||
-rw-r--r-- | bv1/app/src/bin/bench.rs (renamed from lvc/app/src/bin/bench.rs) | 0 | ||||
-rw-r--r-- | bv1/app/src/bin/main.rs (renamed from lvc/app/src/bin/main.rs) | 0 | ||||
-rw-r--r-- | bv1/app/src/bin/test.rs (renamed from lvc/app/src/bin/test.rs) | 0 | ||||
-rw-r--r-- | bv1/codec-web/Cargo.toml (renamed from lvc/codec-web/Cargo.toml) | 0 | ||||
-rw-r--r-- | bv1/codec-web/src/lib.rs (renamed from lvc/codec-web/src/lib.rs) | 0 | ||||
-rw-r--r-- | bv1/codec-web/web/.gitignore (renamed from lvc/codec-web/web/.gitignore) | 0 | ||||
-rw-r--r-- | bv1/codec-web/web/index.html (renamed from lvc/codec-web/web/index.html) | 0 | ||||
-rw-r--r-- | bv1/codec-web/web/main.ts (renamed from lvc/codec-web/web/main.ts) | 4 | ||||
-rw-r--r-- | bv1/codec/Cargo.toml (renamed from lvc/codec/Cargo.toml) | 0 | ||||
-rw-r--r-- | bv1/codec/src/debug.rs (renamed from lvc/codec/src/debug.rs) | 0 | ||||
-rw-r--r-- | bv1/codec/src/decode.rs (renamed from lvc/codec/src/decode.rs) | 0 | ||||
-rw-r--r-- | bv1/codec/src/diff.rs (renamed from lvc/codec/src/diff.rs) | 0 | ||||
-rw-r--r-- | bv1/codec/src/encode.rs (renamed from lvc/codec/src/encode.rs) | 0 | ||||
-rw-r--r-- | bv1/codec/src/frameio.rs (renamed from lvc/codec/src/frameio.rs) | 0 | ||||
-rw-r--r-- | bv1/codec/src/huff.rs (renamed from lvc/codec/src/huff.rs) | 0 | ||||
-rw-r--r-- | bv1/codec/src/impls.rs (renamed from lvc/codec/src/impls.rs) | 0 | ||||
-rw-r--r-- | bv1/codec/src/lib.rs (renamed from lvc/codec/src/lib.rs) | 0 | ||||
-rw-r--r-- | bv1/codec/src/serialize.rs (renamed from lvc/codec/src/serialize.rs) | 0 | ||||
-rw-r--r-- | bv1/codec/src/split.rs (renamed from lvc/codec/src/split.rs) | 0 | ||||
-rwxr-xr-x | bv1/tools/d-disp (renamed from lvc/tools/d-disp) | 0 | ||||
-rwxr-xr-x | bv1/tools/d-dispd (renamed from lvc/tools/d-dispd) | 0 | ||||
-rwxr-xr-x | bv1/tools/d-save (renamed from lvc/tools/d-save) | 0 | ||||
-rwxr-xr-x | bv1/tools/d-saved (renamed from lvc/tools/d-saved) | 0 | ||||
-rwxr-xr-x | bv1/tools/e (renamed from lvc/tools/e) | 0 | ||||
-rw-r--r-- | readme.md | 15 |
30 files changed, 20 insertions, 3 deletions
@@ -1,5 +1,5 @@ -bad-avcodec (dhwt-codec, vgcodec) -Copyright (C) 2022 metamuffin +bv1 (and others) - video compression experiments +Copyright (C) 2023 metamuffin This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/lvc/.gitignore b/bv1/.gitignore index 2f22d72..2f22d72 100644 --- a/lvc/.gitignore +++ b/bv1/.gitignore diff --git a/lvc/Cargo.lock b/bv1/Cargo.lock index cd51668..cd51668 100644 --- a/lvc/Cargo.lock +++ b/bv1/Cargo.lock diff --git a/lvc/Cargo.toml b/bv1/Cargo.toml index 489eec7..489eec7 100644 --- a/lvc/Cargo.toml +++ b/bv1/Cargo.toml diff --git a/lvc/app/Cargo.toml b/bv1/app/Cargo.toml index e433e4f..e433e4f 100644 --- a/lvc/app/Cargo.toml +++ b/bv1/app/Cargo.toml diff --git a/lvc/app/src/bin/bench.rs b/bv1/app/src/bin/bench.rs index b9c6464..b9c6464 100644 --- a/lvc/app/src/bin/bench.rs +++ b/bv1/app/src/bin/bench.rs diff --git a/lvc/app/src/bin/main.rs b/bv1/app/src/bin/main.rs index 0b3596e..0b3596e 100644 --- a/lvc/app/src/bin/main.rs +++ b/bv1/app/src/bin/main.rs diff --git a/lvc/app/src/bin/test.rs b/bv1/app/src/bin/test.rs index 4071ff1..4071ff1 100644 --- a/lvc/app/src/bin/test.rs +++ b/bv1/app/src/bin/test.rs diff --git a/lvc/codec-web/Cargo.toml b/bv1/codec-web/Cargo.toml index f1a3f6a..f1a3f6a 100644 --- a/lvc/codec-web/Cargo.toml +++ b/bv1/codec-web/Cargo.toml diff --git a/lvc/codec-web/src/lib.rs b/bv1/codec-web/src/lib.rs index cb2ad3c..cb2ad3c 100644 --- a/lvc/codec-web/src/lib.rs +++ b/bv1/codec-web/src/lib.rs diff --git a/lvc/codec-web/web/.gitignore b/bv1/codec-web/web/.gitignore index 93d7118..93d7118 100644 --- a/lvc/codec-web/web/.gitignore +++ b/bv1/codec-web/web/.gitignore diff --git a/lvc/codec-web/web/index.html b/bv1/codec-web/web/index.html index b572671..b572671 100644 --- a/lvc/codec-web/web/index.html +++ b/bv1/codec-web/web/index.html diff --git a/lvc/codec-web/web/main.ts b/bv1/codec-web/web/main.ts index bdaa1f6..b1b1df7 100644 --- a/lvc/codec-web/web/main.ts +++ b/bv1/codec-web/web/main.ts @@ -18,6 +18,7 @@ async function index(url: string) { const u = url + "/" + e.textContent e.onclick = ev => { ev.preventDefault() + if (!u.endsWith(".bv1")) return alert("thats not bv1!") document.body.innerHTML = "" play(u.toString()) } @@ -26,10 +27,11 @@ async function index(url: string) { async function play(url: string) { decode_init(1920, 1080) - + document.body.innerText = "downloading…" const res = await fetch(url) if (!res.ok) throw new Error("not ok"); let buf: Uint8Array | undefined = new Uint8Array(await res.arrayBuffer()) + document.body.innerText = "" const canvas = document.createElement("canvas") canvas.width = 1920 diff --git a/lvc/codec/Cargo.toml b/bv1/codec/Cargo.toml index 0c52ad2..0c52ad2 100644 --- a/lvc/codec/Cargo.toml +++ b/bv1/codec/Cargo.toml diff --git a/lvc/codec/src/debug.rs b/bv1/codec/src/debug.rs index d6c37c2..d6c37c2 100644 --- a/lvc/codec/src/debug.rs +++ b/bv1/codec/src/debug.rs diff --git a/lvc/codec/src/decode.rs b/bv1/codec/src/decode.rs index 616b7af..616b7af 100644 --- a/lvc/codec/src/decode.rs +++ b/bv1/codec/src/decode.rs diff --git a/lvc/codec/src/diff.rs b/bv1/codec/src/diff.rs index 4d1a805..4d1a805 100644 --- a/lvc/codec/src/diff.rs +++ b/bv1/codec/src/diff.rs diff --git a/lvc/codec/src/encode.rs b/bv1/codec/src/encode.rs index 564b0b3..564b0b3 100644 --- a/lvc/codec/src/encode.rs +++ b/bv1/codec/src/encode.rs diff --git a/lvc/codec/src/frameio.rs b/bv1/codec/src/frameio.rs index f6cbcbf..f6cbcbf 100644 --- a/lvc/codec/src/frameio.rs +++ b/bv1/codec/src/frameio.rs diff --git a/lvc/codec/src/huff.rs b/bv1/codec/src/huff.rs index 6d74c42..6d74c42 100644 --- a/lvc/codec/src/huff.rs +++ b/bv1/codec/src/huff.rs diff --git a/lvc/codec/src/impls.rs b/bv1/codec/src/impls.rs index b4cc119..b4cc119 100644 --- a/lvc/codec/src/impls.rs +++ b/bv1/codec/src/impls.rs diff --git a/lvc/codec/src/lib.rs b/bv1/codec/src/lib.rs index c764211..c764211 100644 --- a/lvc/codec/src/lib.rs +++ b/bv1/codec/src/lib.rs diff --git a/lvc/codec/src/serialize.rs b/bv1/codec/src/serialize.rs index 960aa1b..960aa1b 100644 --- a/lvc/codec/src/serialize.rs +++ b/bv1/codec/src/serialize.rs diff --git a/lvc/codec/src/split.rs b/bv1/codec/src/split.rs index c17179e..c17179e 100644 --- a/lvc/codec/src/split.rs +++ b/bv1/codec/src/split.rs diff --git a/lvc/tools/d-disp b/bv1/tools/d-disp index d7b8feb..d7b8feb 100755 --- a/lvc/tools/d-disp +++ b/bv1/tools/d-disp diff --git a/lvc/tools/d-dispd b/bv1/tools/d-dispd index 97a2b90..97a2b90 100755 --- a/lvc/tools/d-dispd +++ b/bv1/tools/d-dispd diff --git a/lvc/tools/d-save b/bv1/tools/d-save index 1f19994..1f19994 100755 --- a/lvc/tools/d-save +++ b/bv1/tools/d-save diff --git a/lvc/tools/d-saved b/bv1/tools/d-saved index 16de45a..16de45a 100755 --- a/lvc/tools/d-saved +++ b/bv1/tools/d-saved diff --git a/lvc/tools/e b/bv1/tools/e index a85a767..a85a767 100755 --- a/lvc/tools/e +++ b/bv1/tools/e @@ -1 +1,16 @@ # Experiments on video codecs + +My experiments on lossy video compression. + +## `bv1` + +A somewhat minimal video codec that is able to achieve quality comparable to +H.264. + +## Other codecs + +- `evc` is my first proper attempt at video compression. features motion + compensation and broken dct. +- `vgcodec` approximates images by drawing circles (on the GPU). +- (`dhwt-codec` tries to compress using a discrete haar wavelet across all three + dimensions. that doesnt work well) |