Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaFX中呈现YUV_Javafx_Yuv_Pixelformat - Fatal编程技术网

在JavaFX中呈现YUV

在JavaFX中呈现YUV,javafx,yuv,pixelformat,Javafx,Yuv,Pixelformat,我需要在JavaFX中以最小延迟呈现yuyv422流。如果我将其转换为RGB,我可以使用带有PixelFormat实例的可写图像的ImageView,它可以工作,但RGB转换会消耗大量CPU,特别是高分辨率。我看到了这个确切的功能要求 但它似乎不会在Java9中实现。如果是这样,我想知道它是否会引入延迟或需要太多CPU。还有其他使用JavaFX的方法吗?一般来说: 图像处理总是很昂贵,这就是为什么矢量化或硬件加速用于这些任务。用一个线程简单地循环一个映像已经非常慢了,特别是在java中。除此之

我需要在JavaFX中以最小延迟呈现yuyv422流。如果我将其转换为RGB,我可以使用带有PixelFormat实例的可写图像的ImageView,它可以工作,但RGB转换会消耗大量CPU,特别是高分辨率。我看到了这个确切的功能要求


但它似乎不会在Java9中实现。如果是这样,我想知道它是否会引入延迟或需要太多CPU。还有其他使用JavaFX的方法吗?

一般来说:
图像处理总是很昂贵,这就是为什么矢量化或硬件加速用于这些任务。用一个线程简单地循环一个映像已经非常慢了,特别是在java中。除此之外,人们倾向于使用
颜色
对象来修改颜色,这非常缓慢

纯Java:
如果您想用纯Java保存代码。您应该通过调用以下命令来检查
可写图像使用的内部格式:

myImage.getPixelWriter().getPixelFormat().getType() 
如果内部格式不是RGB,请将颜色转换调整为给定格式,以避免双重转换。 另外,请确保您的代码尽可能优化:
-不要使用数组以外的任何对象
-尽量减少局部变量的使用
您还可以尝试通过并行循环对转换过程进行多线程处理

JNI:
离开Java带来了很多可能性。有几个独立于平台的库可用于将YUV转换为RGB和RGB:


易于使用且已随java API提供:

byte[] myYuvImage = null; //your image here
byte[] myRgbImage = new byte[width * height * 3]; //the output image
Mat yuvMat = new Mat(height, width, CvType.CV_8UC2); //YUV422 should be 2 channel
Mat rgbMat = new Mat(height, width, CvType.CV_8UC3);
yuvMat.put(0,0, myYuvImage);
Imgproc.cvtColor(yuvMat, rgbMat, Imgproc.COLOR_YUV2RGB_Y422);
rgbMat.get(0, 0, myRgbImage);

仅通过JNI提供。您可以使用
ippiRGBToYUV422\u 8u\u C3C2R
查看以了解更多信息


仅通过JNI提供。看到这一点,调整示例


我个人的经验是,即使在AMD机器上,IPP也能提供迄今为止最好的性能。但是,它附带的许可证可能是免费的,但它禁止反编译,这可能是与LGPL库不兼容的问题。

也许vlcj会有所帮助(我不知道)。您可以尝试通过谷歌搜索vlcj JavaFX。检查您当前的植入是否存在这些性能问题:谢谢,我会检查vlci,但我的应用程序没有这些链接中提到的性能问题。非常感谢您的回答,这非常有帮助