各位专家老师,最近在弄DM365的视频解码decode demo,我发现如果我解CIF的图像,则图像只显示在显示屏的左上角,即四分之一的地方。图像是显示完全了,没有丢,但我想把它全屏显示,不知修改程序的什么地方?
请各位指教,谢谢!
Eason Wang:
你看一下显示这边的输出时序是不是对的,是不是就是这样大的分辨率,导致解码的图像只占了这一角
JUN ZHU1:
回复 Eason Wang:
时序没有问题的,D1的图像就能全屏显示,而CIF的图像也是完全显示,但只占了显示屏的四分之一,另外四分之三都没有图像。不知道decode或是DMAI里有没有什么参数需要设置什么的。我就是想让无论啥分辨率格式的图像,最终都能在显示屏上完全显示。
Christian Shen:
回复 JUN ZHU1:
显示驱动里面有没有一些关于宽高的设置还是按照D1的来设了?
kooking:
回复 JUN ZHU1:
这个是正常现象啊。
你的D1可以全屏显示,估计是因为你的屏的分辨率也是D1的吧,现有的dm365 dvsdk的显示就是这样的,编码的数据是多少,显示分辨率就是多少,不过可以把左上角的视频搬移到屏幕正中央。
“无论啥分辨率格式的图像,最终都能在显示屏上完全显示”,现在有dvsdk decode时无法做到,超过屏的分辨率,是无法正常显示的,如果要实现所有分辨率全屏,需要自己添加后端resize了。
但是encode采集的时候前端做两路resize则相对简单。
JUN ZHU1:
回复 kooking:
谢谢您的回复,我的屏是普通的模拟视频输入的监视器,PAL输入。现在我只想把CIF的视频全屏输出到显示屏上,搬到屏幕正中间也没什么多大的意义。现在这个样子太难看了,明明是一个大屏幕,可是图像却只在左上角一块显示。如果要显示全屏,需要改什么地方,是解码部分还是显示部分?
JUN ZHU1:
回复 Christian Shen:
谢谢您的回复。显示驱动我没有动,是动内核的驱动还是DMAI部分?
如果屏是一个D1大小的画纸,我的CIF确实只能显示在左上角。有没有一种缩放拉伸的方法,或者干脆把画纸改成CIF大小,让它的全屏就是CIF大小?
JUN ZHU1:
回复 JUN ZHU1:
我现在考虑用DM365的resizer,我编译了DMAI中APP中的video_loopback_resize例子做实验。
我把uboot的参数改为1,SS模式。
发现如果./video_loopback_resize_dm365.x470MV -I composite -O composite -y 2
这样能正常输出D1大小的图像,但是我只要
./video_loopback_resize_dm365.x470MV -I composite -O composite -y 2 -r 352×288 –input_resolution 704×576
就完全是条纹了,而且就在屏幕的一块。
这是怎么回事,这是TI的例子程序,为什么不能成功的resize?
kooking:
回复 JUN ZHU1:
我印象中,这个resize好像不是所有的分辨率都可以的,就几个可以正常使用,编码为CIF的视频铺满D1的屏,我觉得不是特别有意义,就算实现了,也会有马赛克现象,反而把D1的正常显示在CIF屏上更有意义。dm365显示部分resize可能要做比较多的工作,这两个是前端的resize,希望对你有启发和帮助。
http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/100/t/7777.aspx
http://www.deyisupport.com/question_answer/dsp_arm/davinci_digital_media_processors/f/39/p/29644/90363.aspx#90363
JUN ZHU1:
回复 kooking:
谢谢楼上朋友,我修改了dmai中的一个resize例子,现在能正常的放大缩小了。下一步想把decode修改一下,使能CIF的图像能放大。
是这样的,因为带宽有限,只能传输CIF格式的视频,但传输到后端显示,总不能在屏上只显示一个角吧,这样客户接受不了啊。所以只能这样做了。
kooking:
回复 JUN ZHU1:
好的,如果成功实现了display resize,别忘了分享一下啊,哈哈