Pixel Value Differencing Hider
Hide text or files in a PNG/BMP using Pixel Value Differencing (Wu & Tsai, 2003) — edge pixels carry more bits, smooth pixels carry fewer. Edge capacity map, PDH histogram, PSNR/SSIM, AES-256-GCM.
Try the demo instantly
Loads a 200×200 textured PNG — shows the edge capacity map immediately
Drop PNG or BMP here, or click to browse
JPEG not supported — lossy compression destroys embedded bits
100% Client-Side Processing
Your image is processed entirely in this browser tab. Nothing is uploaded to any server.
How to Hide Data Using Pixel Value Differencing (5 steps)
- Upload a PNG or BMP image as the carrier
- Type your secret message or upload a file to hide
- Add a passphrase for AES-256-GCM encryption (recommended)
- Optional: open Advanced to adjust range table, scan mode, and channel
- Click Embed — download your stego PNG with quality metrics
Pixel Value Differencing — 3 Variants Compared
| Variant | Mechanism | Capacity | Best For |
|---|---|---|---|
| Standard PVD | Horizontal pixel pairs, Wu & Tsai (2003) range table | High — edge pairs carry up to 7 bits | General-purpose adaptive hiding |
| Zigzag PVD | Diagonal scan order — same range table, different pair order | Similar to Standard | Slightly reduced PDH detection signature |
| Hybrid PVD+LSB | PVD for edge pairs, 1-bit LSB fallback for smooth pairs | Higher — smooth regions still carry data | Maximum capacity; combines both detection profiles |
Frequently Asked Questions
What is Pixel Value Differencing steganography?
PVD (Wu & Tsai, 2003) is an adaptive steganography method that uses the difference between adjacent pixel values to determine embedding capacity. Pixels in edge regions (large differences) can absorb more hidden bits than smooth regions (small differences) without visible distortion — exploiting the human visual system's reduced sensitivity to changes in high-variation areas.
How does PVD compare to LSB steganography?
LSB modifies the same number of bits in every pixel regardless of image content. PVD is adaptive — edge pixels carry more bits (up to 7), smooth pixels carry fewer (as few as 3). PVD typically achieves higher visual quality (PSNR) at the same payload size, and resists chi-square/RS steganalysis that specifically targets LSB patterns. PVD has its own detection signature instead — Pixel Difference Histogram (PDH) analysis.
Why not JPEG?
JPEG's lossy re-compression changes pixel values in ways that destroy the precise differences PVD embeds. Use PNG or BMP — both lossless, preserving every pixel value exactly.
What's the falling-off boundary problem (FOBP)?
When PVD adjusts a pixel pair to embed data, the resulting values can theoretically exceed [0, 255]. This tool checks, before embedding into any pair, whether the range's worst case would clip — if so, that pair is skipped entirely (left unmodified) rather than blindly clamped, which is what the original naive approach does and what can silently corrupt the decoded bitstream. The Extractor reproduces the exact same skip decision automatically.
What does the range table selector do?
The range table maps a pixel pair's difference to how many bits it can carry. Wu & Tsai's original 6-range table is the standard. The 3-Range and 4-Range alternatives trade some capacity for higher image quality (PSNR) — Advanced mode shows live capacity and PSNR estimates for each.
What's the PVDSTEG v1 header for?
Every encoded image includes a 20-byte PVDSTEG v1 header (variant, range table, channel, encryption flag, compression flag, RS level, payload length, CRC32) embedded via pure PVD on the Blue channel. The Pixel Value Differencing Extractor auto-detects this header — zero configuration needed to decode.
Can PVD steganography be detected?
Yes — Pixel Difference Histogram (PDH) analysis reveals the characteristic stepped pattern the range table creates in the distribution of pixel differences (Zhang & Wang, 2004). Zigzag scanning slightly reduces this signature. AES-256-GCM encryption ensures content stays unreadable even if the embedding itself is detected.