首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libjpeg jpeg_write_coefficients

libjpeg jpeg_write_coefficients
EN

Stack Overflow用户
提问于 2011-10-31 11:04:45
回答 3查看 1.8K关注 0票数 4

我已经创建了自己的DCT计算。

如何使用jpeg_write_coefficients (需要jvirt_barray_ptr * coef_arrays)使用jpeg_write_coefficients将我的64DCT值写入JPEG文件?

我该如何创建它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-02 08:19:46

查找(在jmemmgr.c中) request_virt_barray函数。

还可以看看这个question。它读取DCT系数,而不是写入它们,但它应该让您了解系数数组的存储方式。除了系数之外,您还需要传入量化表(通过j_compress_ptr cinfo结构)。这是因为在libjpeg库中,正向DCT和量化是在一个步骤中执行的。如果你想自己做前向DCT,你也必须自己做量化。

阅读libjpeg文档也是值得的。它很长,但实际上可读性很好,这将极大地提高您对该库的理解。最有用的文件是structure.txt。它有关于内存管理和编码器结构的章节,可能会对你有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2015-01-17 21:20:07

您需要系数数组作为输入,才能将文件写为变量类型jvirt_barray_ptr。您可以通过从图像中读取它来填充它

jvirt_barray_ptr *coeffs_array = jpeg_read_coefficients(&cinfo);

或者自己填满它。然后你必须像这样写你的dct输入数据。在下面的函数中,我使用jpeg_decompress_struct作为输入,将我的第一个图像头用作输出图像头

代码语言:javascript
复制
int write_jpeg_file_dct(std::string outname,jpeg_decompress_struct in_cinfo, jvirt_barray_ptr *coeffs_array ){

    struct jpeg_compress_struct cinfo;
    struct jpeg_error_mgr jerr;
    FILE * infile;

    if ((infile = fopen(outname.c_str(), "wb")) == NULL) {
      fprintf(stderr, "can't open %s\n", outname.c_str());
      return 0;
    }

    cinfo.err = jpeg_std_error(&jerr);
    jpeg_create_compress(&cinfo);
    jpeg_stdio_dest(&cinfo, infile);

    j_compress_ptr cinfo_ptr = &cinfo;
    jpeg_copy_critical_parameters((j_decompress_ptr)&in_cinfo,cinfo_ptr);
    jpeg_write_coefficients(cinfo_ptr, coeffs_array);

    jpeg_finish_compress( &cinfo );
    jpeg_destroy_compress( &cinfo );
    fclose( infile );

    return 1;
}
票数 0
EN

Stack Overflow用户

发布于 2014-10-30 16:51:14

您可以按照jpeg_read_coefficients创建dct系数管理器的结构,例如

:dstInfo->mem->alloc_small,dstInfo->mem->request_virt_barray,dstInfo->mem->realize_virt_arrays

并使用virt_barray_list获取dst目标,将新的dct系数/quantyTableQ放入其中。然后调用jpeg_write_coefficients生成JPEG文件。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7949630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档