aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-03-09 22:48:33 +0100
committermetamuffin <metamuffin@disroot.org>2023-03-09 22:48:33 +0100
commit680b08e6b9d64284b7992fb52a23e5f891291406 (patch)
treeabe30a9f18be09ef931b4b6357d216f6ba982095
parentc45f80a14ecd00914eb1d4e8f628b74a713667ba (diff)
downloadvideo-codec-experiments-680b08e6b9d64284b7992fb52a23e5f891291406.tar
video-codec-experiments-680b08e6b9d64284b7992fb52a23e5f891291406.tar.bz2
video-codec-experiments-680b08e6b9d64284b7992fb52a23e5f891291406.tar.zst
rename + readme
-rw-r--r--COPYING4
-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-xbv1/tools/d-disp (renamed from lvc/tools/d-disp)0
-rwxr-xr-xbv1/tools/d-dispd (renamed from lvc/tools/d-dispd)0
-rwxr-xr-xbv1/tools/d-save (renamed from lvc/tools/d-save)0
-rwxr-xr-xbv1/tools/d-saved (renamed from lvc/tools/d-saved)0
-rwxr-xr-xbv1/tools/e (renamed from lvc/tools/e)0
-rw-r--r--readme.md15
30 files changed, 20 insertions, 3 deletions
diff --git a/COPYING b/COPYING
index bb3c8b6..4ad19f2 100644
--- a/COPYING
+++ b/COPYING
@@ -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
diff --git a/readme.md b/readme.md
index 9461af4..79ae13a 100644
--- a/readme.md
+++ b/readme.md
@@ -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)