黄莹的回答:硬件解码生效的时候,系统是怎么运转的呢?现在我们有两个处理器,CPU和GPU。他们通过PCI/AGP/PCIE总线交换数据。 1。CPU从文件系统里读出原始数据(DirectSHow的源滤镜),分离出压缩的视频数据(分离器)。放在系统内存中。GPU发呆 2。CPU把压缩视频数据交给GPU,这时总线上开始忙了,压缩数据从系统内存拷贝到显卡上的显存里。 3.CPU要求GPU开始硬件解码,现在CPU进入发呆期,GPU开始忙。当然CPU会定期查询一下GPU忙的怎么样了。 4。GPU开始用自己的电路解码视频数据(已经在显存里了),解压后的数据还是放在显存里面。CPU继续发呆。 5.视频数据刚解码完成以后还不能立刻拿去显示,因为还需要后期处理,如deinterlace,3:2pulldown,等等。GPU再用自己的后期处理电路来进行处理。CPU还是发呆 6。后期处理以后的未压缩数据拿去显示到屏幕上,GPU再开始忙视频的缩放,亮度,gamma等事情。CPU还是闲 7.GPU终于忙完了,下面的视频数据在哪里?通知CPU,GPU先歇会。CPU又开始忙了,回到第1步。 马赛克现象没有了,贴图更细致,连衣服的褶皱和皮肤的细部都表现完美。这些都是拜3D硬件加速所赐 欣百诺的回答:硬件解码生效的时候,系统是怎么运转的呢?现在我们有两个处理器,CPU和GPU。他们通过PCI/AGP/PCIE总线交换数据。 1。CPU从文件系统里读出原始数据(DirectSHow的源滤镜),分离出压缩的视频数据(分离器)。放在系统内存中。GPU发呆 2。CPU把压缩视频数据交给GPU,这时总线上开始忙了,压缩数据从系统内存拷贝到显卡上的显存里。 3.CPU要求GPU开始硬件解码,现在CPU进入发呆期,GPU开始忙。当然CPU会定期查询一下GPU忙的怎么样了。 4。GPU开始用自己的电路解码视频数据(已经在显存里了),解压后的数据还是放在显存里面。CPU继续发呆。 5.视频数据刚解码完成以后还不能立刻拿去显示,因为还需要后期处理,如deinterlace,3:2pulldown,等等。GPU再用自己的后期处理电路来进行处理。CPU还是发呆 6。后期处理以后的未压缩数据拿去显示到屏幕上,GPU再开始忙视频的缩放,亮度,gamma等事情。CPU还是闲 7.GPU终于忙完了,下面的视频数据在哪里?通知CPU,GPU先歇会。CPU又开始忙了,回到第1步。 马赛克现象没有了,贴图更细致,连衣服的褶皱和皮肤的细部都表现完美。这些都是拜3D硬件加速所赐 |