PNG编码器-添加自己的过滤器实现

| 我目前正在研究自己的PNG过滤器实现。我正在使用神经网络来尝试创建比当前现有的PNG过滤器更好的预测: 0-无 1-子 2-上 3-平均 4-佩斯 5-我的实现(带有神经网络预测) 有关更多信息:http://www.w3.org/TR/PNG/#9Filters 我已经看过几个图书馆: pngcrush(在c中实现。) 重点-PngEncoder(是我目前的最爱) ObjectPlanet-PngEncoder(我必须支付src的1000 ..:P) 还有更多。但是现在我的问题是,您是否知道其他一些PNG编码器(用Java编写)可以很容易地添加自己的过滤器实现,或者还有其他使用我自己的过滤器的可能性吗? 非常感谢您的回答!     
已邀请:
前一阵子我做了一个小的纯Java PNG库(编码器-解码器) http://code.google.com/p/pngj/ 它很小,很完整(不完全),不依赖第三方库,并且代码可用(并且,我希望很容易理解)。如果要实现自定义过滤器,则可以在此处进行挖掘。如果需要帮助,可以问我。 但是请记住,(如其他答案所指出),PNG标准不支持自定义过滤器,只有您才能读取编码的图像。     
这不是问题的答案,而是更多的“它不能以这种方式工作”。 您链接的PNG规范部分定义了Filter方法0,以及此方法的过滤器类型(功能)列表。此列表是固定的:   过滤器方法0精确地指定了这五个过滤器类型的集合,并且不应为   扩展。这确保了解码器无需解压缩数据即可确定是否   它包含不受支持的过滤器类型:检查IHDR中的过滤器方法就足够了。 因此,您不能仅在此处添加神经网络预测。 您可以做的是创建一个新的Filter方法(方法1或类似方法-但请参见4.9节),然后可以包含您的神经网络滤波器类型。 但是问题是,那么每个想要读取您的软件生产的PNG的软件也需要支持这种新的过滤器方法。因此,如果您不想仅为内部图像存储执行此操作,则此操作无济于事。 实际上,您可以使用神经网络的地方是为每条扫描线选择正确的过滤器类型(给定的五个),以使压缩后的数据流尽可能小(或有效或...)。     

要回复问题请先登录注册