> The current solution works 99% of the time and only rarely encounters errors in practice. It works 100% of the time under ideal conditions (i.e. when not round-tripped through Youtube).
> When encoding some data, each byte is converted to a "tile", which is a rectangle of arbitrary size filled with one of 256 colors. The "palette" used for these colors was specifically tuned to maximize resistance to Youtube's compression.
Sounds like you'd want to add an error correcting code on top?
YouTube's lossy compression algorithm is playing the role and f a lossy channel over which one wants to "communicate". What then one needs is to use channel coding. This is a pretty nontrivial channel though.
It should, in the same way you can embed compression-resistant watermarks. But the bit density would be ridiculously low, depending on the amount of noise you can accept.
> The current solution works 99% of the time and only rarely encounters errors in practice. It works 100% of the time under ideal conditions (i.e. when not round-tripped through Youtube).
> When encoding some data, each byte is converted to a "tile", which is a rectangle of arbitrary size filled with one of 256 colors. The "palette" used for these colors was specifically tuned to maximize resistance to Youtube's compression.
Sounds like you'd want to add an error correcting code on top?
See https://en.wikipedia.org/wiki/Error_correction_code
Absolutely!
YouTube's lossy compression algorithm is playing the role and f a lossy channel over which one wants to "communicate". What then one needs is to use channel coding. This is a pretty nontrivial channel though.
Yes, the error model for this channel is pretty crazy.
I wonder if it could be added to an existing video file in a way that appears to be just noise.
It should, in the same way you can embed compression-resistant watermarks. But the bit density would be ridiculously low, depending on the amount of noise you can accept.
Seems vulnerable to barely perceptible palette shifting. Would be more interesting to use visual features that video codecs are optimized to preserve.
[flagged]