我有一张512x512的图像,我试着重新压缩它。以下是将图像重新压缩为jpeg文件的步骤
1) convert rgb to YCrCb
2) perform down sampling on Cr and Cb
2) convert YCrCb to DCT and Quantized according to chosen Quality
3) perform Huffman Encoding on Quantized DCT
但在霍夫曼编码之前,我计算了一下DCT系数的数量,结果是393216。除以64会得到DCT块的数量(8x8),即6144。
现在我试
我想确保我正确地理解了这一点:这来自section 5.2 of RFC7451 Header field names and header field values can be represented as
string literals. A string literal is encoded as a sequence of
octets, either by directly encoding the string literal's octets or by
using a Huffman code (see [HUFFMAN]).
假设我们有以下规范的霍夫曼代码表。
Symbol Code-length Codeword
A 2 00
B 2 01
C 2 10
D 2 11
现在,我们从一个输入文件中读取符号,并通过查看上表对其进行编码。然而,许多资源表明,在规范霍夫曼的情况下,我们不应该发送码字。相反,每个符号的代码长度就足够了。
如果文本文件包含ACCDB,我应该将00 01 10 11或10 10 10 (相当于相应码长的二进制)作为编码
我一直在网上搜索,但是找不到我需要的东西。
我必须使用霍夫曼编码来压缩大文件。我的想法是读取文件的前1-2MB
(为了避免首先读取整个文件来构建树,然后再次读取它以对其进行编码,避免O(2n) ),
构建霍夫曼树。如果256个字母字节中的任何一个丢失了,我会自己添加它,以防它稍后出现在文件中(而不是在第一个1-2 MB中)。但是尝试使用以下代码来测试结果:
int * totalFr = new int[256];
unsigned char * symArr= new unsigned char[256];
for (int i = 0; i < 256; i++)
{
t
我不得不说,我对文件格式的工作原理了解不多。我的问题是,假设我有一个200px x 200px的jpeg文件,如何计算该文件的最大大小(以兆字节/字节为单位)?
我认为,导致这个问题的推理将帮助一些人回答我。我有一个Java小程序,上传图像,人们用它来绘制到我的服务器。我需要知道这个文件可以达到的最大大小。它将始终是200x200。
这听起来很愚蠢,但是有没有比其他颜色占用更多字节大小的颜色,如果是的话,最昂贵的颜色是什么?