请输入您要查询的百科知识:

 

词条 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/1/27 20:35:24