5 ms·
Honestly, I would find it extremely limiting if someone was able to copyright 1664 bits of information. Bitmap 8x8 fonts are absolutely trivial. In one aftern
by willis936 7y ago
Honestly, I would find it extremely limiting if someone was able to copyright 1664 bits of information. Bitmap 8x8 fonts are absolutely trivial. In one afternoon anyone could make every human readable variation.
- willis936 7y agoThinking on it: 1664 bits is 26 * 8 * 8, which is a little low. ASCII uses indices 32 to 127 for visible characters, so this would be 95 * 8 * 8, or 6080 bits. It's still a trivially small amount of information and there are very few ways to make unique English fonts out of it, so I still don't think it should be possible to copyright it. Looking at the actual IBM_VGA_8x8.bin file: the file size is 1024 bytes (8192 bits). I calculated the entropy of the data to be only 638 bits of information. MATLAB code: fid = fopen('IBM_PC_BIOS_1981-04-24_HALF_8x8.bin','r'); ibmVga = fread(fid); fclose(fid); p = histogram(double(ibmVga),255); E = -sum(log2(p.Values(p.Values > 0)).*log2(p.Values(p.Values > 0)));
- perl4ever 7y agoCounterpoint, 2^638 is a large number. So a particular 638 bits is very particular.
- willis936 7y agoThis is meaningless. Information is information. Specifying a size has virtually no information. The number "638" stored in uint16 has two bits of information using any word size between 8 and 15 bits.
- willis936 7y agoSo I went on a bit of a rabbit hole on this one. The above code is wrong. I have since fixed it. It's the same idea with some added terms to normalize for data size. Word size matters when calculating entropy. Calculating entropy on this file using 2 to 64 bits nets a minimum information of 860 bits using a 64 bit word size. Moving past a 64 bit word size requires rethinking some things. MATLAB doesn't have great support for data sizes greater than 64 bits (and I'm certain the performance impact would be great). words = double(unique(X))'; binEdges = [words-0.5; words+0.5]; binEdges = unique(binEdges(:)); P = histcounts(X, binEdges) / M; P(P == 0) = []; M = numel(X); H = -sum(P .* log(P) ./ log(max([nBits, 2]))) / nBits * log2(max([nBits, 2])); E = H * M * nBits;
- kube-system 7y agoThe size of the work doesn't matter. What matters is what it is. This comment is protected by copyright and is 1048 bits of UTF-8.
- dTal 7y ago128 bits a reasonable bound for "nontrivial information" (information you'd never arrive at by guessing). 1664 bits is enough to write a short poem. However I don't think a 1664 bits is an accurate count. You must subtract the information provided by knowing it represents the alphabet, which constrains the number of possibilities to only a few choices per letter - say 2 or 3 bits at most. So a 64-character alphabet is right on the edge of "reasonably nontrivial", due entirely down to the combinatorial complexity of choosing which glyph to use in each case. A single glyph should not be copyrightable.