update README

This commit is contained in:
Armin 2026-08-09 22:17:18 +02:00
commit 7f38674c9d

View file

@ -1,4 +1,4 @@
tcdweb Transcode Detector (Web Version) tcdweb - Transcode Detector (Web Version)
========================================= =========================================
![Screenshot](tcdwebshot.png) ![Screenshot](tcdwebshot.png)
@ -11,7 +11,7 @@ bitrate by the same lossy codec, e.g. 128 → 320 kbps MP3).
This is the **web version** of [tcd](https://codeberg.org/armin/tcd), the This is the **web version** of [tcd](https://codeberg.org/armin/tcd), the
original CLI tool. At this point **tcdweb is a complete, independent fork** with original CLI tool. At this point **tcdweb is a complete, independent fork** with
its own codebase, its own analysis engine, and its own UI. It runs entirely in its own codebase, its own analysis engine, and its own UI. It runs entirely in
the browser via the **Web Audio API** no server-side processing, no file the browser via the **Web Audio API** - no server-side processing, no file
uploads, no FFmpeg dependency, and no command line needed. uploads, no FFmpeg dependency, and no command line needed.
--- ---
@ -21,12 +21,10 @@ Live-Demo
There is a live demo of tcdweb available at: [bsd.pm/tcdweb](https://bsd.pm/tcdweb). There is a live demo of tcdweb available at: [bsd.pm/tcdweb](https://bsd.pm/tcdweb).
Obligatory AI-slop disclaimer Obligatory AI notice
----------------------------- --------------------
tcdweb is 98% vibe-coded (a.k.a. "ai slop"). If that's a problem for you, please tcdweb was developed with the assistance of AI.
kindly just use a different tool. There is also absolutely *NO* guarantee this
will work reliably, be useful in any way, or even make any sense whatsoever.
--- ---
@ -52,7 +50,7 @@ Key metrics
----------- -----------
- **Cutoff**: highest frequency with measurable energy (as Hz and % of Nyquist). - **Cutoff**: highest frequency with measurable energy (as Hz and % of Nyquist).
Lossy codecs chop off high frequencies the lower the cutoff, the more Lossy codecs chop off high frequencies - the lower the cutoff, the more
aggressive the compression. aggressive the compression.
- **Steepness (Transition Bandwidth)**: how abruptly the spectrum drops at the - **Steepness (Transition Bandwidth)**: how abruptly the spectrum drops at the
cutoff point. Lossy encoders produce sharp brick-wall filters (low steepness). cutoff point. Lossy encoders produce sharp brick-wall filters (low steepness).
@ -89,7 +87,7 @@ Verdicts
| Verdict | Input codec | Meaning | | Verdict | Input codec | Meaning |
|---|---|---| |---|---|---|
| **NATIVE** | lossy | Single encode at the stated bitrate genuine | | **NATIVE** | lossy | Single encode at the stated bitrate - genuine |
| **UPSCALED** | lossy | Re-encoded from a lower bitrate (e.g. 128 → 320 kbps) | | **UPSCALED** | lossy | Re-encoded from a lower bitrate (e.g. 128 → 320 kbps) |
| **GENUINE** | lossless | No evidence of lossy origin | | **GENUINE** | lossless | No evidence of lossy origin |
| **TRANSCODE** | lossless | Originated from a lossy source, decoded to lossless | | **TRANSCODE** | lossless | Originated from a lossy source, decoded to lossless |
@ -102,10 +100,10 @@ Detection logic
The verdict is determined in two layers: The verdict is determined in two layers:
**Layer 1 (Primary)** Cutoff + Steepness. A low cutoff combined with a sharp **Layer 1 (Primary)** - Cutoff + Steepness. A low cutoff combined with a sharp
drop (low steepness) is a definitive sign of a lossy encoder's lowpass filter. drop (low steepness) is a definitive sign of a lossy encoder's lowpass filter.
**Layer 2 (Secondary)** Roughness + Band Ratio. Applied when the cutoff is **Layer 2 (Secondary)** - Roughness + Band Ratio. Applied when the cutoff is
high enough to pass Layer 1. Catches transcodes where the cutoff is near high enough to pass Layer 1. Catches transcodes where the cutoff is near
Nyquist but the spectrum still shows quantization artifacts. Nyquist but the spectrum still shows quantization artifacts.
@ -154,12 +152,12 @@ Limitations
References References
---------- ----------
- NyquistShannon sampling theorem Wikipedia - NyquistShannon sampling theorem - Wikipedia
https://en.wikipedia.org/wiki/NyquistShannon_sampling_theorem https://en.wikipedia.org/wiki/NyquistShannon_sampling_theorem
- Equal-loudness contour (FletcherMunson curves) Wikipedia - Equal-loudness contour (FletcherMunson curves) - Wikipedia
https://en.wikipedia.org/wiki/Equal-loudness_contour https://en.wikipedia.org/wiki/Equal-loudness_contour
- LAME MP3 encoder psychoacoustic model Hydrogenaudio Knowledge Base - LAME MP3 encoder psychoacoustic model - Hydrogenaudio Knowledge Base
https://wiki.hydrogenaudio.org/index.php?title=LAME https://wiki.hydrogenaudio.org/index.php?title=LAME
- "Audio Authentication Using Spectral Analysis" University of Michigan - "Audio Authentication Using Spectral Analysis" - University of Michigan
open-access thesis, 2025 open-access thesis, 2025
https://doi.org/10.7302/28306 https://doi.org/10.7302/28306