gDPSetConvert [macro]
Sets the matrix coefficients for converting from YUV pixels to RGB.
Syntax
#include <ultra64.h> /* gbi.h */
gDPSetConvert(Gfx *gdl, s32 k0, s32 k1, s32 k2, s32 k3, s32 k4, s32 k5)
gsDPSetConvert(s32 k0, s32 k1, s32 k2, s32 k3, s32 k4, s32 k5)
Arguments
- gdl is the display list pointer.
- k0 is the K0 term of the YUV-RGB conversion matrix (9-bit precision, -256~255).
- k1 is the K1 term of the YUV-RGB conversion matrix (9-bit precision, -256~255).
- k2 is the K2 term of the YUV-RGB conversion matrix (9-bit precision, -256~255).
- k3 is the K3 term of the YUV-RGB conversion matrix (9-bit precision, -256~255).
- k4 is the K4 term of the YUV-RGB conversion matrix (9-bit precision, -256~255).
- k5 is the K5 term of the YUV-RGB conversion matrix (9-bit precision, -256~255).
Explanation
Sets the matrix coefficients used to convert YUV pixels into RGB. Conceptually, the equations are as shown below:
R = C0 * (Y-16) + C1 * V
G = C0 * (Y-16) + C2 * U - C3 * V
B = C0 * (Y-16) + C4 * U
Color conversion in the RDP is performed via the texture filter (TF) and the color combiner (CC).
The following calculations are executed in the TF:
R' = Y + K0 * V
G' = Y + K1 * U + K2 * V
B' = Y + K3 * U
The following calculations are executed in the CC:
R = (R' - K4) * K5 + R'
G = (G' - K4) * K5 + G'
B = (B' - K4) * K5 + B'
The relationships between Cn and Kn are shown below:
K0 = C1/C0
K1 = C2/C0
K2 = C3/C0
K3 = C4/C0
K4 = 16 + 16/(C0 - 1.0)
K5 = C0 - 1.0
The values normally used for the conversion from YUV to RGB are shown below:
K0 = 175
K1 = -43
K2 = -89
K3 = 222
K4 = 114
K5 = 42
Notes
The CC and TF must be appropriately set when executing a color conversion. To learn more about these settings, see gDPSetCombineMode and gDPSetTextureConvert.
For further details, see Section 12.5.2, "Color Space Conversion," and Section 12.6, "CC: Color Combiner," in the N64 Programming Manual.
See Also
gDPSetCombineMode
gDPSetTextureConvert
Revision History
2/1/99 Completely rewritten.
|
Nintendo® Confidential
Warning: all information in this document is confidential and covered by a non-disclosure agreement. You are responsible for keeping this information confidential and protected. Nintendo will vigorously enforce this responsibility.
Copyright © 1998-1999
Nintendo of America Inc. All rights reserved Nintendo and N64 are registered trademarks of Nintendo
Last Updated April, 1999
|