
Added initial support Xilinx Embedded Software. Signed-off-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
248 lines
11 KiB
HTML
Executable file
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 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 List</span></a></li>
|
|
<li><a href="globals.html"><span>File 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 "rgb2ycrcb.h"</code><br>
|
|
<code>#include "xenv.h"</code><br>
|
|
<code>#include "stdio.h"</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 </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 </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 </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 </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">( </td>
|
|
<td class="md" nowrap valign="top">struct rgb_coef_inputs * </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 * </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 </td>
|
|
<td class="mdname" nowrap> <em>data_width</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="md"></td>
|
|
<td class="md">) </td>
|
|
<td class="md" colspan="2"></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table cellspacing="5" cellpadding="0" border="0">
|
|
<tr>
|
|
<td>
|
|
|
|
</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> </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> </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 > 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">( </td>
|
|
<td class="md" nowrap valign="top">u32 </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 * </td>
|
|
<td class="mdname" nowrap> <em>coef_out</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="md"></td>
|
|
<td class="md">) </td>
|
|
<td class="md" colspan="2"></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table cellspacing="5" cellpadding="0" border="0">
|
|
<tr>
|
|
<td>
|
|
|
|
</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> </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> </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">( </td>
|
|
<td class="md" nowrap valign="top">u32 </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 </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 </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 * </td>
|
|
<td class="mdname" nowrap> <em>coef_in</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="md"></td>
|
|
<td class="md">) </td>
|
|
<td class="md" colspan="2"></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table cellspacing="5" cellpadding="0" border="0">
|
|
<tr>
|
|
<td>
|
|
|
|
</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> </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> </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> </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> </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">( </td>
|
|
<td class="md" nowrap valign="top">u32 </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 * </td>
|
|
<td class="mdname" nowrap> <em>coef_out</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="md"></td>
|
|
<td class="md">) </td>
|
|
<td class="md" colspan="2"></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table cellspacing="5" cellpadding="0" border="0">
|
|
<tr>
|
|
<td>
|
|
|
|
</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> </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> </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.
|