embeddedsw/XilinxProcessorIPLib/drivers/rgb2ycrcb/doc/html/api/rgb2ycrcb_8c.html
Jagannadha Sutradharudu Teki 2c8f92039d embeddesw: Add initial code support
Added initial support Xilinx Embedded Software.

Signed-off-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
2014-06-24 16:45:01 +05:30

248 lines
11 KiB
HTML
Executable file

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
rgb2ycrcb.c File Reference
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.5 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<h1>rgb2ycrcb.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
This is main code of Xilinx RGB to YCrCb Color Space Converter (RGB2YCRCB) device driver. Please see rgb2ycrcb.h for more details of the driver.<p>
MODIFICATION HISTORY:<p>
Ver Who Date Changes ----- ---- -------- ------------------------------------------------------- 5.00a tb 02/27/12 Updated for RGB2YCRCB v5.00.a
<p>
<code>#include &quot;rgb2ycrcb.h&quot;</code><br>
<code>#include &quot;xenv.h&quot;</code><br>
<code>#include &quot;stdio.h&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="rgb2ycrcb_8c.html#25c48a303a6f7a1104f4cded877a4583">RGB_select_standard</a> (u32 standard_sel, u32 input_range, u32 data_width, struct rgb_coef_inputs *coef_in)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="rgb2ycrcb_8c.html#0d7b7a35650828fcd0fb66d5dffa916e">RGB_coefficient_translation</a> (struct rgb_coef_inputs *coef_in, struct rgb_coef_outputs *coef_out, u32 data_width)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="rgb2ycrcb_8c.html#1c43c123e1eed5398b407482ac35ae03">RGB_set_coefficients</a> (u32 BaseAddress, struct rgb_coef_outputs *coef_out)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="rgb2ycrcb_8c.html#3d71c1b045854d33919ceaf20ac7340c">RGB_get_coefficients</a> (u32 BaseAddress, struct rgb_coef_outputs *coef_out)</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="0d7b7a35650828fcd0fb66d5dffa916e"></a><!-- doxytag: member="rgb2ycrcb.c::RGB_coefficient_translation" ref="0d7b7a35650828fcd0fb66d5dffa916e" args="(struct rgb_coef_inputs *coef_in, struct rgb_coef_outputs *coef_out, u32 data_width)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">u32 RGB_coefficient_translation </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">struct rgb_coef_inputs *&nbsp;</td>
<td class="mdname" nowrap> <em>coef_in</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>struct rgb_coef_outputs *&nbsp;</td>
<td class="mdname" nowrap> <em>coef_out</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>u32&nbsp;</td>
<td class="mdname" nowrap> <em>data_width</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Translate input coefficients into coefficients that can be programmed into the RGB2YCrCb core.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>coef_in</em>&nbsp;</td><td>is a pointer to a rgb_coef_inputs data structure. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>coef_out</em>&nbsp;</td><td>is a pointer to a rgb_coef_output data structure.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The 32-bit value: bit(0)= Acoef + Bcoef &gt; 1.0 bit(1)= Y Offset outside data width range [-2^data_width, (2^data_width)-1] bit(2)= Cb Offset outside data width range [-2^data_width, (2^data_width)-1] bit(3)= Cr Offset outside data width range [-2^data_width, (2^data_width)-1] bit(4)= Y Max outside data width range [0, (2^data_width)-1] bit(5)= Y Min outside data width range [0, (2^data_width)-1] bit(6)= Cb Max outside data width range [0, (2^data_width)-1] bit(7)= Cb Min outside data width range [0, (2^data_width)-1] bit(8)= Cr Max outside data width range [0, (2^data_width)-1] bit(9)= Cr Min outside data width range [0, (2^data_width)-1]</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd></dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="3d71c1b045854d33919ceaf20ac7340c"></a><!-- doxytag: member="rgb2ycrcb.c::RGB_get_coefficients" ref="3d71c1b045854d33919ceaf20ac7340c" args="(u32 BaseAddress, struct rgb_coef_outputs *coef_out)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">void RGB_get_coefficients </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">u32&nbsp;</td>
<td class="mdname" nowrap> <em>BaseAddress</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>struct rgb_coef_outputs *&nbsp;</td>
<td class="mdname" nowrap> <em>coef_out</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Read the RGB2YCrCb coefficient/offset registers.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>BaseAddress</em>&nbsp;</td><td>is the Xilinx EDK base address of the RGB2YCrCb core (from xparameters.h) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>coef_out</em>&nbsp;</td><td>is a pointer to a rgb_coef_output data structure.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd></dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="25c48a303a6f7a1104f4cded877a4583"></a><!-- doxytag: member="rgb2ycrcb.c::RGB_select_standard" ref="25c48a303a6f7a1104f4cded877a4583" args="(u32 standard_sel, u32 input_range, u32 data_width, struct rgb_coef_inputs *coef_in)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">void RGB_select_standard </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">u32&nbsp;</td>
<td class="mdname" nowrap> <em>standard_sel</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>u32&nbsp;</td>
<td class="mdname" nowrap> <em>input_range</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>u32&nbsp;</td>
<td class="mdname" nowrap> <em>data_width</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>struct rgb_coef_inputs *&nbsp;</td>
<td class="mdname" nowrap> <em>coef_in</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Select input coefficients for 4 supported Standards and 3 Input Ranges.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>standard_sel</em>&nbsp;</td><td>is the standards selection: 0 = SD_ITU_601 1 = HD_ITU_709__1125_NTSC 2 = HD_ITU_709__1250_PAL 3 = YUV </td></tr>
<tr><td valign="top"></td><td valign="top"><em>input_range</em>&nbsp;</td><td>is the limit on the range of the data: 0 = 16_to_240_for_TV, 1 = 16_to_235_for_Studio_Equipment, 3 = 0_to_255_for_Computer_Graphics </td></tr>
<tr><td valign="top"></td><td valign="top"><em>data_width</em>&nbsp;</td><td>has a valid range of [8,10,12,16] </td></tr>
<tr><td valign="top"></td><td valign="top"><em>coef_in</em>&nbsp;</td><td>is a pointer to a rgb_coef_inputs data structure.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd></dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="1c43c123e1eed5398b407482ac35ae03"></a><!-- doxytag: member="rgb2ycrcb.c::RGB_set_coefficients" ref="1c43c123e1eed5398b407482ac35ae03" args="(u32 BaseAddress, struct rgb_coef_outputs *coef_out)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">void RGB_set_coefficients </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">u32&nbsp;</td>
<td class="mdname" nowrap> <em>BaseAddress</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>struct rgb_coef_outputs *&nbsp;</td>
<td class="mdname" nowrap> <em>coef_out</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Program the RGB2YCrCb coefficient/offset registers.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>BaseAddress</em>&nbsp;</td><td>is the Xilinx EDK base address of the RGB2YCrCb core (from xparameters.h) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>coef_out</em>&nbsp;</td><td>is a pointer to a rgb_coef_output data structure.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd></dd></dl>
</td>
</tr>
</table>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.