Ah yeah the comment interface can be a little weird!
What I meant was like. Since you have patterns of on and off, and you’ll have way more off than on, instead of storing every storage cell, you’d store the distances between cells which are on and off. So for example, storing the pattern 000010000001 would be stored as the sequence {5,1,6,1}, or realistically since most of the time you won’t have two adjacent 1 cells, you could store it as 5,6, and use a 0 to indicate adjacent 1s (so for example 0000011000001 would be {5,0,5}). And there’s almost certainly a statistical distribution which could cut down further on the number of bits needed to store each of the numbers; it’d be a great application of Huffman codes, which I think I’d mentioned in the other comment.
gzip+base64 could also be pretty efficient but it’s not really optimized for bitwise storage like that; I mostly brought it up as being fairly easy to implement.