问题标签 [bpg]

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 回答
1606 浏览

javascript - 加载bpg图片:兼容、简单、高效的技术

最近有一些关于 Fabrice Bellard 的 BPG 图像格式 ( http://bellard.org/bpg/ ) 的喧嚣,它(基于他网站上提供的演示)提供比 jpeg、webp 和其他一些更好的压缩。图像解码是在浏览器中用JS完成的,这意味着它可以立即使用,无需等待浏览器采用。总的来说,这似乎是一个好主意,用一些 CPU 时间换取更快的下载速度通常是一个可行的折衷方案。

此处用于交换图像的技术是,在 window.load 上,遍历 document.images,找到 src 属性包含以“.bpg”结尾的 URL 的任何位置,并将其替换为画布。

然而,这绝对不是解决这个问题的唯一方法,我看到了这种技术的一些缺点,其中包括:a) 画布没有与图像完全相同的布局规则 - 例如,在其上设置宽度属性意味着不同的东西在 img 与画布上,b) 似乎至少在 Chrome 中,如何对缩小的图像与画布进行缩放是不同的。

一个更好的解决方案将理想地满足这些要求:

  • 尽量不要在内存中复制不必要的图像数据(也不要不必要地使用比必要更多的 CPU - 与原生图像处理相比,JS 中的解码已经需要很多)
  • 尽可能多地兼容浏览器
  • 使用 <img> 标签而不是 <canvas> (不是必需的,但似乎更好)
  • 提供一种简单的方法,不仅可以处理文档加载时的图像,还可以处理稍后添加到文档中的图像(例如,响应用户活动)
  • 仍然易于使用(bellard.org 上的现有技术当然很容易集成)
  • 编辑:使用网络工作者在不阻塞页面的情况下解码图像也可能是一个好方法。

想到的一些相关工具包括 data: 和 blob: url。

任何人都有使用这种“更好”技术加载 BPG 的工作代码示例?(Fabrice 在他的示例中使用它的方式还不错,当然方法也有取舍,但我认为可能有更好的通用方法。)

0 投票
2 回答
2146 浏览

image-processing - 如何将 JPG 图片库批量转换为 BPG 图片格式

如何将整个图库或家庭相册从 JPG 转换为 BPG 图像格式?
我正在寻找一些 Windows 平台上的批量转换工具、应用程序或脚本。
输入目录必须递归处理,并应保留图像质量。

0 投票
1 回答
1698 浏览

javascript - 如何在后台设置 BPG

我可以使用BPG图像作为背景吗<div>?不起作用。<body>background: url('bg.bpg');

有一个 Javascript 解码器允许在<img>标签中显示 .bpg 图像,但我想使用一个作为<body>背景。

0 投票
2 回答
1242 浏览

image - 如何将jpg图像转换为bpg

有谁知道如何在MAC上将jpg图像转换为bpg ?我正在尝试比较几种图像格式,并且想将原始图像与 BPG 进行比较,但我还没有找到如何将图像转换为这种格式。

谢谢

0 投票
1 回答
198 浏览

javascript - BPG Emscripten 编译错误

我正在尝试编译BPG解码器以获得等效的 Javascript(是的,我知道作者已经提供了一个);这是通过 Emscripten 完成的。不幸的是,我收到以下错误:

关于如何解决它的任何想法?

0 投票
1 回答
60 浏览

owncloud - 如何在 ownCloud 中启用 BPG 解码?

ownCloud 默认不显示BPG图像,而是提供下载它们。

如何使用解码 JavaScript向 ownCloud 添加 BPG 支持?

0 投票
1 回答
141 浏览

c - bpgview.c的main函数不是gcc编译的

BPG 是一种比 jpeg 压缩效率更高的数字图像格式。我想在 OS X 10.10.5 (14F1509)上编译libbpg-0.9.6 。我的 Xcode 版本是7.2.1 (7C1002)。

我已经安装了所有必要的库(参见:github.com/mirrorer/libbpg)。当我运行 make 我有以下错误:

我确实检查了 bpgview.o 中的符号。不仅int main没有出现,而且bpgview.c中的static void helpstatic void set_caption也没有出现

完整的 make 输出在pastebin 上。

我觉得这很奇怪,但可能有一些我不知道的 gcc 选项让编译器忽略函数。感谢您的时间。

0 投票
2 回答
1485 浏览

imagemagick - 如何让 imagemagick 支持 .flif 和 .bpg 格式?

很长一段时间以来,已经有几种图像编解码器提供了对 PNG 和 JPG 的显着改进,但后者仍然占主导地位。

我特别希望看到更多采用的两种格式是FLIFBPG。它们似乎在所有可能的方面都优于 JPG 和 PNG(除了缺乏市场接受度)。尤其是 FLIF 似乎非常有前途。

TL;DR = 除了在我自己的软件中支持它们之外,还有没有办法在 imagemagick 中获得 FLIF 和 BPG 支持?

0 投票
0 回答
333 浏览

c++ - 在 hevc x265 中实现新的帧内预测模式

我是一名研究生,目前致力于扩展现代图像和视频压缩编解码器以实现更好的性能。我目前正在修改BPG(更好的便携式图形)和 x265(HEVC/H.265 实现)。

我目前的方法涉及添加额外的帧内预测模式,这些模式可以利用比上方 CTU(编码树单元)的 1 个像素行和左侧 CTU 的 1 个像素列更多的信息量。

我已经实现了我的方法并将我的内部预测模式命名为“35”(BPG 和 hevc 使用模式从 0-34)。我目前的方法要求我每次使用帧内预测模式时都存储两个额外的数字(12 位)。我在将这两个数字嵌入比特流(编码)和从比特流中检索它们(解码)时遇到了问题。

我从 BPG 提供的 x265 包中修改了 entropy.cpp 中的函数codeIntraDirLumaAng以便它在遇到我的新帧内预测模式 35 时写入两个附加数字。

我的一组问题如下。

1)鉴于我有更多的预测模式,并且我希望它们增加更多,我应该修改以下代码行

成为

2)当我运行解码器时,它第一次遇到它应该存储模式 35 的实例。它无法读取它,而是读取模式 26。我相信这是因为 hevc 中 Intra-Luma Pred-Dir 的派生程序?(有关如何将我的新帧内预测模式正确嵌入比特流以便正确读取的任何输入)?

3) 我应该对我编码的两个附加数字的 CABAC 状态做些什么吗?我创建了一个额外的上下文来处理这种新的信息。我将不胜感激有关如何设置我另外定义的 NUM_STATES_CTX 变量的值以及如何使用 CABAC 对这两个数字进行最佳编码的指针?

0 投票
1 回答
331 浏览

javascript - 为什么我无法在浏览器中解码太重的 bpg 图像?

使用 Fabrice Bellard here提供的 bpg 编码器,我的 Debian 8链接上的以下说明,我已经完成了一些压缩测试并在我的浏览器(firefox chrome)上显示了结果,并提供了 .js(或者你可以使用这个网站) .

当我想显示一个重量大于(大约)800 KB(原始重量:2.6 MB,大小为 3600x2700)的 bpg 图像时,控制台中出现以下错误消息:

有谁知道这个错误来自哪里?