图像压缩
int length(int x) {
int len = 0;
while (x) {
len++;
x /= 2;
}
return len;
}
void Compress(int n, int p[], int s[], int l[], int b[]) {
int Lmax = 256, header = 11;
s[0] = 0;
for (int i = 1; i <= n; i++) {
b[i] = length(p[i]);
int bmax = b[i];
s[i] = s[i - 1] + bmax;
l[i] = 1;
for (int j = 2; j <= i && j <= Lmax; j++) {
if (bmax < b[i - j + 1]) {
bmax = b[i - j + 1];
}
if (s[i] > s[i - j] + j * bmax) {
s[i] = s[i - j] + j * bmax;
l[i] = j;
}
}
s[i] += header;
}
}
最后更新:
2024年1月2日 21:37:12
创建日期: 2024年1月2日 19:47:42
创建日期: 2024年1月2日 19:47:42