Asymmetric Phase Coding Video Watermarking
Authors: Guang Yang @ Phi Lab Foundation · Fengchen Liu @ University of California, Berkeley
Paper: arXiv:2608.29212 (cs.CR, cs.CV, cs.GR, August 2026) · Code: GitHub · License: BSD 2-Clause
Open the browser demonstration → Source code on GitHub Read the paper
Overview
Existing video watermarking systems are symmetric. The party that can verify a mark holds the extractor weights or the generator secret, and can therefore also embed one. Benchmarks confirm the consequence: white-box forgery defeats every evaluated method.
This project removes the shared secret. The signer embeds a complete Ed25519 signature into the phase spectrum of the chroma plane. Any party holding the 32-byte public key and the public per-video metadata verifies offline, with no model, no registry, and no network. The method is training-free.
What carries the signature
The payload is 1024 bits: the message, its length, the 64-byte signature, and Reed-Solomon parity. Three design elements carry a payload an order of magnitude above common learned payloads:
- A run-length temporal layout. The bits split into four groups. Each group occupies 30 consecutive frames and the cycle repeats. The decoder assigns a frame to its group by correlation and never reads a frame index, so frame drops and rate changes do not break the mapping.
- A payload-free geometric search. Scale, rotation, and translation are recovered from the carrier itself before any bit is read.
- Closed-loop signing. The signer tests its own output through the unchanged public verifier at a ladder of embedding strengths and ships the first strength that verifies. Every released file has passed the same verifier the public uses.
Results in the paper
On 1000 uncurated real-world clips the system ships a verifying signature for 99.3% of the corpus and accepts a wrong public key zero times in 1000 attempts. An attack-aware acceptance gate yields embeddings that survive H.264 re-encoding at 100% and 50% rescaling at 97.4% on gated clips. The signature also verifies through a real display and capture loop, an axis absent from published evaluations.
Open-source library and browser demonstration
The JavaScript library apcvw-js, released under the BSD 2-Clause License at github.com/GY19A/asymmetric-phase-coding-video-watermarking, implements the protocol for the browser: Ed25519 identity, payload framing with Reed-Solomon parity, the chroma phase carrier, evidence extraction, and public-key verification. It has no server component. The demonstration signs a short message, embeds it in a four-second excerpt, encodes the result to a video file, decodes that file again, and verifies it with the public key alone. Two negative controls (a wrong key and the unmarked source) run the real verifier so a visitor can see what rejection looks like.

The detailed controls run each step by hand, accept your own video, and verify a downloaded file against a public key.
The browser version implements the identity-geometry subset of the protocol and encodes with the browser's own codec (typically WebM VP9). The rates quoted above were measured with the reference implementation and H.264; the browser demonstration inherits none of them and reports only what it measures on the file in front of it.
Citation
If you use the method or the software, please cite the paper.
@article{yang2026asymmetric,
title = {Asymmetric Phase Coding Video Watermarking},
author = {Yang, Guang and Liu, Fengchen},
journal = {arXiv preprint arXiv:2608.29212},
year = {2026},
doi = {10.48550/arXiv.2608.29212},
url = {https://arxiv.org/abs/2608.29212}
}
Copyright and license
Copyright (c) 2024, Guang Yang ([email protected]). The software is released under the BSD 2-Clause License. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the copyright notice, the list of conditions, and the disclaimer are retained. The full text is in the repository's LICENSE file. The paper is distributed under CC BY 4.0 on arXiv. The demonstration uses an excerpt of Sintel (Blender Foundation, CC BY 3.0).
Open the browser demonstration → Source code on GitHub Read the paper Back to Research Portfolio