词条 | yuv覆盖 |
释义 | YUV 覆盖(Overlay) 多媒体领域中,尤其在涉及到 MPEG 播放时,通常使用 YUV 颜色空间来表示颜色,如果要在屏幕上显示一副 MPEG 解压之后的图片,则需要进行 YUV 颜色空间到 RGB 颜色空间的转换。YUV 覆盖最初来自一些显示芯片的加速功能。这种显示芯片能够在硬件基础上完成 YUV 到 RGB 的转换,免去软件转换带来的性能损失。在这种显示芯片上建立了 YUV 覆盖之后,可以直接将 YUV 信息写入缓冲区,硬件能够自动完成 YUV 到 RGB 的转换,从而在 RGB 显示器上显示出来。在不支持 YUV 覆盖的显示芯片上,MiniGUI 也能够通过软件实现 YUV 覆盖,这时,需要调用 DisplayYUVOverlay 函数将 YUV 信息转换并缩放显示在建立 YUV 覆盖的 DC 设备上。 MiniGUI 提供的 YUV 覆盖操作函数原型如下: /***************************** YUV overlay support ***************************/ /* 最常见的视频覆盖格式. */ #define GAL_YV12_OVERLAY 0x32315659 /* Planar mode: Y + V + U (3 planes) */ #define GAL_IYUV_OVERLAY 0x56555949 /* Planar mode: Y + U + V (3 planes) */ #define GAL_YUY2_OVERLAY 0x32595559 /* Packed mode: Y0+U0+Y1+V0 (1 plane) */ #define GAL_UYVY_OVERLAY 0x59565955 /* Packed mode: U0+Y0+V0+Y1 (1 plane) */ #define GAL_YVYU_OVERLAY 0x55595659 /* Packed mode: Y0+V0+Y1+U0 (1 plane) */ /* 该函数创建一个视频输出覆盖 */ GAL_Overlay* GUIAPI CreateYUVOverlay (int width, int height, Uint32 format, HDC hdc); /* 锁定覆盖进行直接的缓冲区读写,结束后解锁 */ int GAL_LockYUVOverlay (GAL_Overlay *overlay); void GAL_UnlockYUVOverlay (GAL_Overlay *overlay); #define LockYUVOverlay GAL_LockYUVOverlay #define UnlockYUVOverlay GAL_UnlockYUVOverlay /* 释放视频覆盖 */ void GAL_FreeYUVOverlay (GAL_Overlay *overlay); #define FreeYUVOverlay GAL_FreeYUVOverlay /* 将视频覆盖传送到指定 DC 设备上。该函数能够进行 2 维缩放 */ void GUIAPI DisplayYUVOverlay (GAL_Overlay* overlay, const RECT* dstrect); |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。