【发布时间】:2016-04-09 02:22:44
【问题描述】:
在我的场景中,我从设备获取屏幕(它只生成 tiff 图像)并将其传输到 jpeg 并通过网络发送到客户端(客户端仅支持 jpeg 编码)
java code
public byte[] getscreen(){
/*
logic for fetching tiff image from the device
*/
if(tiffimage == null )
return null;
byteOutput = new ByteArrayOutputStream();
ImageIO.write(tiffImage, "jpeg", byteOutput);
return byteOutput;
}
设备生成图像需要 10 毫秒 - 1 秒,具体取决于设备的分辨率(请注意,在这一侧无法进行任何更改,它只会生成 tiff 图像),大小为 3 MB -12 MB 取决于分辨率。
现在将图像转换为 JPEG 需要一些时间。我的问题是,我们能否使用 GPU 功能将图像从 tiff 转换为 JPEG,以便在客户端获得改进的 FPS?
P.S: 该应用程序正在各种具有显卡的机器上运行,例如(NVDIA、AMD、英特尔高清显卡) 我想知道这是否可以做到,如果可以,如何解决。
【问题讨论】:
-
不确定 GPU 在转换图像编解码器方面是否比 CPU 工作得更好 这里是一个类似问题的链接stackoverflow.com/questions/7662773/…
-
这里也一样:使用 gpu 比 cpu 更好:stackoverflow.com/questions/22866901/…
-
@MartinFrank 它不是必然更好,但它可能更好。并且根据任务(如您链接到的答案中所述),GPU 可能会带来 显着 加速(但我不知道这是否适用于 JPG 压缩)。无论如何,NVIDIA NPP 包含一些用于 JPG 压缩的子程序,因此这可能是一个现实的应用案例。
-
您的应用程序是否在并行线程中工作(一个用于拍摄图像,一个用于转换图像)我希望您解决了正确的问题...