如何保证LCD显示的数据来源是同一帧

oncancel 2015-12-11 06:07:17
由于LCD控制器从显存取数据与我们往显存写数据是完全异步的,总是有一定概率取到第n+1帧的前半部分和第n帧的后半部分。
如果显示的是一个几乎静止的UI,这不会有什么问题。如果显示的是一帧匀速平移的图片,则会在图片中央看到一条明显的分界线,如附图。

播放电影时是如何保证不出现两帧图像拼接的?

注:我们用的是S5PV210,已经用了双缓冲画图,但最终的数据往显存写(Bitblt)总是要一些时间,写完一帧的典型时间略大于1ms。
...全文
691 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
91program 2016-05-16
  • 打赏
  • 举报
回复
嵌入式上播放视频的软件,有专门的视频解码部分:能保证解出来的视频是一个完整的帧,所以不会出现你所说的现象。
oncancel 2016-05-15
  • 打赏
  • 举报
回复
引用 3 楼 accessysq 的回复:
LZ是播发视频的帧直接写显存加快速度?
不是 我先把图像画到memory dc, 再bitblt到pDC上的。PC机的显卡有个“垂直同步”选项,可以避免这种现象。但嵌入式下好像没有,所以我不知道为什么在嵌入式上播放视频的软件是怎么解决这个问题的。
  • 打赏
  • 举报
回复
LZ是播发视频的帧直接写显存加快速度?
91program 2015-12-12
  • 打赏
  • 举报
回复
用 Bitblt?好像不是好的方法,建议研究一下视频的显示过程。Bitblt 是 GDI 绘制界面时用的。 如果 LZ 一定要用,只能通过同步机制来保证数据不出现上述现象。
oncancel 2015-12-12
  • 打赏
  • 举报
回复
是的,我就是想知道视频是怎么显示的。 好像LCD控制器从现存取数据是专用DMA(VDMA),我们控制不了,所以同步机制不太可行或比较困难。
引用 1 楼 91program 的回复:
用 Bitblt?好像不是好的方法,建议研究一下视频的显示过程。Bitblt 是 GDI 绘制界面时用的。 如果 LZ 一定要用,只能通过同步机制来保证数据不出现上述现象。
引用 1 楼 91program 的回复:
用 Bitblt?好像不是好的方法,建议研究一下视频的显示过程。Bitblt 是 GDI 绘制界面时用的。 如果 LZ 一定要用,只能通过同步机制来保证数据不出现上述现象。

19,498

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧