问题标签 [lossless-compression]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7603 浏览

rgb - 无损 RGB 到 Y'CbCr 转换

我正在尝试无损压缩图像,并且为了利用规律性,我想将图像从 RGB 转换为 Y'CbCr。(我所说的 RGB 和 Y'CbCr 的确切细节在这里并不重要;RGB 数据由三个字节组成,我有三个字节来存储结果。)

转换过程本身非常简单,但有一个问题:虽然转换在数学上是可逆的,但实际上会存在舍入误差。当然,这些错误很小并且几乎不明显,但这确实意味着该过程不再是无损的。

我的问题是:是否存在转换,将三个八位整数(代表红色、绿色和蓝色分量)转换为三个其他八位整数(代表类似于 Y'CbCr 的颜色空间,其中两个分量仅随相对于位置,或者至少小于 RGB 颜色空间),并且可以在不丢失信息的情况下反转?

0 投票
2 回答
1292 浏览

lossless-compression - 超大数据的无损数据压缩——行星人工智能

我想为人工智能创造一个行星大小的环境。它将模拟一个非常大的世界的地下生活。根据维基百科,地球的表面积为 510,072,000 Km^2,我想创建一个相似比例的正方形,也许更大。我将在每个位上存储一米,其中 0 表示污垢,1 表示污垢墙。

我们先计算一下如何存储这个正方形的单行。一条线是510072000000m,每个字节可以存储8米,所以一条线是59.38GB,整个世界是3.44PB。而且我想在每平方米中至少添加水和熔岩,这将使结果乘以 2。

我需要使用无损数据压缩算法压缩这些信息。我首先使用 7zip 尝试了一种非常直接的方法,然后我尝试了一个较小的世界,其中一行是 6375B。理论上世界应该是6375^2B = 38.76MB,但是当我尝试它时我得到一个155MB的文件,我不知道为什么会有这种差异。但是当我用 7Zip 压缩它时,我得到一个 40.1MB 的文件。这是一个巨大的差异,按照这个比例,我会将 3.44PB 的世界文件转换为 912.21GB 的文件。

我的第一个想法是,为什么我有这么大的文件,而数学告诉我它应该更小?也许问题是代码,也许问题是我在数学上有错误。代码如下:(C#)

数学是如此基础,以至于如果我做错了什么,我就看不到它。

你能给我什么建议吗?只关注数据压缩,人工智能不是问题,因为我有进化算法的经验,世界不需要是实时的,它可以占用它需要的所有时间。

谢谢大家的时间。

0 投票
3 回答
1941 浏览

opencv - 拜耳数据的无损编解码器

我正在使用大量以 BG 拜耳模式拍摄的相机。

现在,每次我记录一些数据时,我都会以原始拜耳模式将其保存到磁盘的 avi 容器中。问题是,这确实会在一段时间后加起来。经过一年的研究,我有接近 4TB 的数据...

所以我正在寻找一种无损编解码器来压缩这些数据。我知道我可以使用 libx264(带 --qp 0)或 huffYUV、dirac 或 jpeg2000,但他们都假设你有 RGB 或 YUV 数据。将 Bayered 数据转换为 RGB,然后对其进行压缩很容易,但如果您首先将数据增加三倍,则有点违背了压缩的目的。这也意味着 debayering 引入的去马赛克人工制品也将在我的源数据中,这也不是太大。有一个可以直接处理拜耳数据的编解码器会很好。

更好的是,该解决方案将涉及 gstreamer(或 ffmpeg)已经支持的编解码器,因为那是我已经在使用的。

0 投票
3 回答
3033 浏览

ios - 有没有办法对生成的 GIF 进行无损压缩?

我们正在使用以下代码从一组 JPEG 图像生成 GIF 文件,对于进行无损压缩的设置,它似乎根本不会生成更小的文件。我们在这里做正确的事吗?

0 投票
1 回答
3978 浏览

c# - C#中无损图像压缩的最佳格式

我需要单独保存视频帧并无损压缩它们。我正在寻找 c# 中的最佳方法和格式——最好的意思是实现简单性、良好压缩和合理处理要求的最佳平衡。

我知道 PNG 是无损的,但它的压缩对于照片风格的图像来说并不是很好。

我知道有无损 Jpeg 格式,但是这是用 C# 实现的吗?

还有其他我不知道的选择吗?

0 投票
1 回答
1622 浏览

delphi - 事后使用 Delphi 压缩 PDF

我有一些应用程序使用例程来生成 PDF,这些应用程序使用了一种叫做 PDF-in-the-box 的东西。PDF 没有被压缩,而且似乎没有办法通过这个组件来实现。Rave 组件实现了一个压缩事件处理程序,我已经在使用 Rave 从头开始​​设计的其他应用程序中成功地使用了它。我宁愿不重新编码 PDF-in-the-box 的东西。Delphi 有什么方法可以在生成 PDF 后对其进行压缩。

(这不是图像压缩 - 这是 PDF 内容的无损压缩。通常会导致 PDF 大小减小 3 倍)。

我可以通过在 Adob​​e Reader 中打开使用 PDF-in-the-box 生成的 PDF 并再次保存来模拟我想要的效果。重新保存的 PDF 文件要小得多。我只想在代码中做同样的事情。

0 投票
1 回答
6829 浏览

ffmpeg - 用 FFmpeg 优化图像?

Google PageSpeed 建议可以优化我网页上的图像。无损压缩将平均节省 11%,但是我的图像是使用以下 FFmpeg 命令创建的:

有没有办法优化这些图像?

0 投票
1 回答
1234 浏览

android - 跨平台(C++/Android)无损/低噪声视频压缩/解压缩库

我需要压缩视频流以通过网络将其从 C++ 库传输到 Java 平台 (Android) 并在那里解压缩。要求如下:

  • 该库必须可用于 Android 平台和 C++(或者,使用通用格式的 2 个单独的库)
  • 压缩必须是无损或有损且伪影最少
  • 库(-ies)必须是免费/开源的

该任务的具体细节是视频流将是飞机 MFD 类型,因此会有大量像素在多个帧中保持相同。这应该对压缩有很大帮助。

以上是否有任何“捷径”?

0 投票
1 回答
260 浏览

compression - 协助压缩大型自定义数据文件的方法

我正在寻求有关如何更好地帮助压缩工具获得更好的无损压缩的建议。

我有许多大文件(>100meg),其中包含来自各种传感器的传感器读数。来自各种传感器的样本具有不同的位大小(16 位、24 位、32 位)和不同的频率(70Hz 到 250Hz)。使用我知道的常用压缩器(zip、gzip、bzip2),我可以获得大约 70% 的原始文件大小的压缩文件。在我看来,如果我可以告诉压缩工具这些字节是这种类型的样本,而这些字节是另一种样本类型,可能会有压缩增益,但我不知道有什么可以让我这样做。

0 投票
1 回答
2298 浏览

python - 在 Python 中检查图像格式是否无损?

我正在开发一个要求提交给它的图像是无损的应用程序。目前我正在使用 PIL 打开图像并检查“格式”属性是否为无损格式。这需要我手动保留格式列表,并且我不知道,例如,提交的 jpeg 是否恰好应用了无损变体。

有没有更好的方法来检查图像文件是否无损?