blob: 41c972536208592f60b74139e1ab60d5221b7eb2 [file] [log] [blame]
<!-- HTML header for doxygen 1.8.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
<title>Compute Library: src/core/CL/cl_kernels/channel_combine.cl File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">Compute Library
&#160;<span id="projectnumber">v17.06</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.xhtml"><span>Main&#160;Page</span></a></li>
<li><a href="pages.xhtml"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.xhtml"><span>Namespaces</span></a></li>
<li><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.xhtml"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.xhtml"><span>File&#160;List</span></a></li>
<li><a href="globals.xhtml"><span>Globals</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('channel__combine_8cl.xhtml','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">channel_combine.cl File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="helpers_8h_source.xhtml">helpers.h</a>&quot;</code><br />
</div>
<p><a href="channel__combine_8cl_source.xhtml">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a4059c118efa918cf5248381185411d59"><td class="memItemLeft" align="right" valign="top">__kernel void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="channel__combine_8cl.xhtml#a4059c118efa918cf5248381185411d59">channel_combine_RGB888</a> (__global uchar *plane0_ptr, uint plane0_stride_x, uint plane0_step_x, uint plane0_stride_y, uint plane0_step_y, uint plane0_offset_first_element_in_bytes, __global uchar *plane1_ptr, uint plane1_stride_x, uint plane1_step_x, uint plane1_stride_y, uint plane1_step_y, uint plane1_offset_first_element_in_bytes, __global uchar *plane2_ptr, uint plane2_stride_x, uint plane2_step_x, uint plane2_stride_y, uint plane2_step_y, uint plane2_offset_first_element_in_bytes, __global uchar *dst_ptr, uint dst_stride_x, uint dst_step_x, uint dst_stride_y, uint dst_step_y, uint dst_offset_first_element_in_bytes)</td></tr>
<tr class="memdesc:a4059c118efa918cf5248381185411d59"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function combines three planes to a single RGB image. <a href="#a4059c118efa918cf5248381185411d59">More...</a><br /></td></tr>
<tr class="separator:a4059c118efa918cf5248381185411d59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98e381fa0dce5bd838990d03d8779246"><td class="memItemLeft" align="right" valign="top">__kernel void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="channel__combine_8cl.xhtml#a98e381fa0dce5bd838990d03d8779246">channel_combine_RGBA8888</a> (__global uchar *plane0_ptr, uint plane0_stride_x, uint plane0_step_x, uint plane0_stride_y, uint plane0_step_y, uint plane0_offset_first_element_in_bytes, __global uchar *plane1_ptr, uint plane1_stride_x, uint plane1_step_x, uint plane1_stride_y, uint plane1_step_y, uint plane1_offset_first_element_in_bytes, __global uchar *plane2_ptr, uint plane2_stride_x, uint plane2_step_x, uint plane2_stride_y, uint plane2_step_y, uint plane2_offset_first_element_in_bytes, __global uchar *plane3_ptr, uint plane3_stride_x, uint plane3_step_x, uint plane3_stride_y, uint plane3_step_y, uint plane3_offset_first_element_in_bytes, __global uchar *dst_ptr, uint dst_stride_x, uint dst_step_x, uint dst_stride_y, uint dst_step_y, uint dst_offset_first_element_in_bytes)</td></tr>
<tr class="memdesc:a98e381fa0dce5bd838990d03d8779246"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function combines three planes to a single RGBA image. <a href="#a98e381fa0dce5bd838990d03d8779246">More...</a><br /></td></tr>
<tr class="separator:a98e381fa0dce5bd838990d03d8779246"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a410770921ba530aaf00498478ff7f475"><td class="memItemLeft" align="right" valign="top">__kernel void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="channel__combine_8cl.xhtml#a410770921ba530aaf00498478ff7f475">channel_combine_YUYV422</a> (__global uchar *plane0_ptr, uint plane0_stride_x, uint plane0_step_x, uint plane0_stride_y, uint plane0_step_y, uint plane0_offset_first_element_in_bytes, __global uchar *plane1_ptr, uint plane1_stride_x, uint plane1_step_x, uint plane1_stride_y, uint plane1_step_y, uint plane1_offset_first_element_in_bytes, __global uchar *plane2_ptr, uint plane2_stride_x, uint plane2_step_x, uint plane2_stride_y, uint plane2_step_y, uint plane2_offset_first_element_in_bytes, __global uchar *dst_ptr, uint dst_stride_x, uint dst_step_x, uint dst_stride_y, uint dst_step_y, uint dst_offset_first_element_in_bytes)</td></tr>
<tr class="memdesc:a410770921ba530aaf00498478ff7f475"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function combines three planes to a single YUYV image. <a href="#a410770921ba530aaf00498478ff7f475">More...</a><br /></td></tr>
<tr class="separator:a410770921ba530aaf00498478ff7f475"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72eb5d0161bfc3bca9ceb770ce7ef1ad"><td class="memItemLeft" align="right" valign="top">__kernel void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="channel__combine_8cl.xhtml#a72eb5d0161bfc3bca9ceb770ce7ef1ad">channel_combine_UYVY422</a> (__global uchar *plane0_ptr, uint plane0_stride_x, uint plane0_step_x, uint plane0_stride_y, uint plane0_step_y, uint plane0_offset_first_element_in_bytes, __global uchar *plane1_ptr, uint plane1_stride_x, uint plane1_step_x, uint plane1_stride_y, uint plane1_step_y, uint plane1_offset_first_element_in_bytes, __global uchar *plane2_ptr, uint plane2_stride_x, uint plane2_step_x, uint plane2_stride_y, uint plane2_step_y, uint plane2_offset_first_element_in_bytes, __global uchar *dst_ptr, uint dst_stride_x, uint dst_step_x, uint dst_stride_y, uint dst_step_y, uint dst_offset_first_element_in_bytes)</td></tr>
<tr class="memdesc:a72eb5d0161bfc3bca9ceb770ce7ef1ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function combines three planes to a single UYUV image. <a href="#a72eb5d0161bfc3bca9ceb770ce7ef1ad">More...</a><br /></td></tr>
<tr class="separator:a72eb5d0161bfc3bca9ceb770ce7ef1ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6eb00cba13d0cb12229e5ac18a1ef3c3"><td class="memItemLeft" align="right" valign="top">__kernel void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="channel__combine_8cl.xhtml#a6eb00cba13d0cb12229e5ac18a1ef3c3">channel_combine_NV</a> (__global uchar *src_plane0_ptr, uint src_plane0_stride_x, uint src_plane0_step_x, uint src_plane0_stride_y, uint src_plane0_step_y, uint src_plane0_offset_first_element_in_bytes, __global uchar *src_plane1_ptr, uint src_plane1_stride_x, uint src_plane1_step_x, uint src_plane1_stride_y, uint src_plane1_step_y, uint src_plane1_offset_first_element_in_bytes, __global uchar *src_plane2_ptr, uint src_plane2_stride_x, uint src_plane2_step_x, uint src_plane2_stride_y, uint src_plane2_step_y, uint src_plane2_offset_first_element_in_bytes, __global uchar *dst_plane0_ptr, uint dst_plane0_stride_x, uint dst_plane0_step_x, uint dst_plane0_stride_y, uint dst_plane0_step_y, uint dst_plane0_offset_first_element_in_bytes, __global uchar *dst_plane1_ptr, uint dst_plane1_stride_x, uint dst_plane1_step_x, uint dst_plane1_stride_y, uint dst_plane1_step_y, uint dst_plane1_offset_first_element_in_bytes, uint height)</td></tr>
<tr class="memdesc:a6eb00cba13d0cb12229e5ac18a1ef3c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function combines three planes to a single NV12/NV21 image. <a href="#a6eb00cba13d0cb12229e5ac18a1ef3c3">More...</a><br /></td></tr>
<tr class="separator:a6eb00cba13d0cb12229e5ac18a1ef3c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ecdd5708954da1196aa12856e78a462"><td class="memItemLeft" align="right" valign="top">__kernel void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="channel__combine_8cl.xhtml#a2ecdd5708954da1196aa12856e78a462">copy_planes_3p</a> (__global uchar *src_plane0_ptr, uint src_plane0_stride_x, uint src_plane0_step_x, uint src_plane0_stride_y, uint src_plane0_step_y, uint src_plane0_offset_first_element_in_bytes, __global uchar *src_plane1_ptr, uint src_plane1_stride_x, uint src_plane1_step_x, uint src_plane1_stride_y, uint src_plane1_step_y, uint src_plane1_offset_first_element_in_bytes, __global uchar *src_plane2_ptr, uint src_plane2_stride_x, uint src_plane2_step_x, uint src_plane2_stride_y, uint src_plane2_step_y, uint src_plane2_offset_first_element_in_bytes, __global uchar *dst_plane0_ptr, uint dst_plane0_stride_x, uint dst_plane0_step_x, uint dst_plane0_stride_y, uint dst_plane0_step_y, uint dst_plane0_offset_first_element_in_bytes, __global uchar *dst_plane1_ptr, uint dst_plane1_stride_x, uint dst_plane1_step_x, uint dst_plane1_stride_y, uint dst_plane1_step_y, uint dst_plane1_offset_first_element_in_bytes, __global uchar *dst_plane2_ptr, uint dst_plane2_stride_x, uint dst_plane2_step_x, uint dst_plane2_stride_y, uint dst_plane2_step_y, uint dst_plane2_offset_first_element_in_bytes, uint height)</td></tr>
<tr class="memdesc:a2ecdd5708954da1196aa12856e78a462"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function combines three planes to a single YUV444 or IYUV image. <a href="#a2ecdd5708954da1196aa12856e78a462">More...</a><br /></td></tr>
<tr class="separator:a2ecdd5708954da1196aa12856e78a462"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a6eb00cba13d0cb12229e5ac18a1ef3c3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__kernel void channel_combine_NV </td>
<td>(</td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>src_plane0_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane0_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane0_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane0_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane0_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane0_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>src_plane1_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane1_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane1_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane1_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane1_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane1_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>src_plane2_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane2_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane2_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane2_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane2_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane2_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>dst_plane0_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane0_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane0_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane0_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane0_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane0_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>dst_plane1_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane1_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane1_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane1_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane1_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane1_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>height</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function combines three planes to a single NV12/NV21 image. </p>
<dl class="section note"><dt>Note</dt><dd>NV12 or NV21 has to be specified through preprocessor macro. eg. -DNV12 performs NV12 channel combine.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_stride_x</td><td>Stride of the first plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_step_x</td><td>src_plane0_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_stride_y</td><td>Stride of the first plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_step_y</td><td>src_plane0_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_offset_first_element_in_bytes</td><td>The offset of the first element in the first plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_stride_x</td><td>Stride of the second plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_step_x</td><td>src_plane1_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_stride_y</td><td>Stride of the second plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_step_y</td><td>src_plane1_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_offset_first_element_in_bytes</td><td>The offset of the first element in the second plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_stride_x</td><td>Stride of the third plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_step_x</td><td>src_plane2_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_stride_y</td><td>Stride of the third plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_step_y</td><td>src_plane2_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_offset_first_element_in_bytes</td><td>The offset of the first element in the third plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_ptr</td><td>Pointer to the first plane of the destination image. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_stride_x</td><td>Stride of the first plane of the destination image in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_step_x</td><td>dst_plane0_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_stride_y</td><td>Stride of the first plane of the destination image in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_step_y</td><td>dst_plane0_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_offset_first_element_in_bytes</td><td>The offset of the first element in the first plane of the destination image </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_ptr</td><td>Pointer to the second plane of the destination image. Supported Format: UV88 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_stride_x</td><td>Stride of the second plane of the destination image in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_step_x</td><td>dst_plane1_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_stride_y</td><td>Stride of the second plane of the destination image in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_step_y</td><td>dst_plane1_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_offset_first_element_in_bytes</td><td>The offset of the first element in the second plane of the destination image </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>Sub-sampled height </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="channel__combine_8cl_source.xhtml#l00317">317</a> of file <a class="el" href="channel__combine_8cl_source.xhtml">channel_combine.cl</a>.</p>
<p>References <a class="el" href="helpers_8h_source.xhtml#l00073">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="helpers_8h_source.xhtml#l00201">offset()</a>, and <a class="el" href="helpers_8h_source.xhtml#l00097">Image::ptr</a>.</p>
<div class="fragment"><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;{</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> src_plane0 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane0);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> src_plane1 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane1);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> src_plane2 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane2);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> dst_plane0 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst_plane0);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> dst_plane1 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst_plane1);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="comment">// Copy plane data</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; vstore16(vload16(0, src_plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>), 0, dst_plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; vstore16(vload16(0, <a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src_plane0, 0, height)), 0, (__global uchar *)<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;dst_plane0, 0, height));</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="comment">// Create UV place</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; uchar8 data1 = vload8(0, src_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; uchar8 data2 = vload8(0, src_plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor">#if defined NV12</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; vstore16(shuffle2(data1, data2, (uchar16)(0, 2, 4, 6, 8, 10, 12, 14, 1, 3, 5, 7, 9, 11, 13, 15)), 0, dst_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor">#elif defined NV21</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; vstore16(shuffle2(data2, data1, (uchar16)(0, 2, 4, 6, 8, 10, 12, 14, 1, 3, 5, 7, 9, 11, 13, 15)), 0, dst_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;}</div><div class="ttc" id="helpers_8h_xhtml_a009469e4d9b8fce3b6d5e97d2077827d"><div class="ttname"><a href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a></div><div class="ttdeci">__global uchar * offset(const Image *img, int x, int y)</div><div class="ttdoc">Get the pointer position of a Image. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00201">helpers.h:201</a></div></div>
<div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00073">helpers.h:73</a></div></div>
<div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00095">helpers.h:95</a></div></div>
<div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00097">helpers.h:97</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a4059c118efa918cf5248381185411d59"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__kernel void channel_combine_RGB888 </td>
<td>(</td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>plane0_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>plane1_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>plane2_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>dst_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_offset_first_element_in_bytes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function combines three planes to a single RGB image. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_stride_x</td><td>Stride of the first plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_step_x</td><td>plane0_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_stride_y</td><td>Stride of the first plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_step_y</td><td>plane0_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_offset_first_element_in_bytes</td><td>The offset of the first element in the first plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_stride_x</td><td>Stride of the second plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_step_x</td><td>plane1_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_stride_y</td><td>Stride of the second plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_step_y</td><td>plane1_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_offset_first_element_in_bytes</td><td>The offset of the first element in the second plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_stride_x</td><td>Stride of the third plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_step_x</td><td>plane2_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_stride_y</td><td>Stride of the third plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_step_y</td><td>plane2_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_offset_first_element_in_bytes</td><td>The offset of the first element in the third plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: RGB </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_x</td><td>Stride of the destination image in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_step_x</td><td>dst_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_y</td><td>Stride of the destination image in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_step_y</td><td>dst_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_offset_first_element_in_bytes</td><td>The offset of the first element in the destination image </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="channel__combine_8cl_source.xhtml#l00053">53</a> of file <a class="el" href="channel__combine_8cl_source.xhtml">channel_combine.cl</a>.</p>
<p>References <a class="el" href="helpers_8h_source.xhtml#l00073">CONVERT_TO_IMAGE_STRUCT</a>, and <a class="el" href="helpers_8h_source.xhtml#l00097">Image::ptr</a>.</p>
<div class="fragment"><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane0 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane0);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane1 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane1);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane2 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane2);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> dst = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; uchar16 data0 = vload16(0, plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; uchar16 data1 = vload16(0, plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; uchar16 data2 = vload16(0, plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; uchar16 out0 = (uchar16)(data0.s0, data1.s0, data2.s0,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; data0.s1, data1.s1, data2.s1,</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; data0.s2, data1.s2, data2.s2,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; data0.s3, data1.s3, data2.s3,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; data0.s4, data1.s4, data2.s4,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; data0.s5);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; vstore16(out0, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; uchar16 out1 = (uchar16)(data1.s5, data2.s5, data0.s6,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; data1.s6, data2.s6, data0.s7,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; data1.s7, data2.s7, data0.s8,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; data1.s8, data2.s8, data0.s9,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; data1.s9, data2.s9, data0.sA,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; data1.sA);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; vstore16(out1, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 16);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; uchar16 out2 = (uchar16)(data2.sA, data0.sB, data1.sB,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; data2.sB, data0.sC, data1.sC,</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; data2.sC, data0.sD, data1.sD,</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; data2.sD, data0.sE, data1.sE,</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; data2.sE, data0.sF, data1.sF,</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; data2.sF);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; vstore16(out2, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 32);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00073">helpers.h:73</a></div></div>
<div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00095">helpers.h:95</a></div></div>
<div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00097">helpers.h:97</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a98e381fa0dce5bd838990d03d8779246"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__kernel void channel_combine_RGBA8888 </td>
<td>(</td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>plane0_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>plane1_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>plane2_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>plane3_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane3_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane3_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane3_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane3_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane3_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>dst_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_offset_first_element_in_bytes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function combines three planes to a single RGBA image. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_stride_x</td><td>Stride of the first plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_step_x</td><td>plane0_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_stride_y</td><td>Stride of the first plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_step_y</td><td>plane0_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_offset_first_element_in_bytes</td><td>The offset of the first element in the first plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_stride_x</td><td>Stride of the second plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_step_x</td><td>plane1_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_stride_y</td><td>Stride of the second plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_step_y</td><td>plane1_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_offset_first_element_in_bytes</td><td>The offset of the first element in the second plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_stride_x</td><td>Stride of the third plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_step_x</td><td>plane2_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_stride_y</td><td>Stride of the third plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_step_y</td><td>plane2_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_offset_first_element_in_bytes</td><td>The offset of the first element in the third plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane3_ptr</td><td>Pointer to the fourth plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane3_stride_x</td><td>Stride of the fourth plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane3_step_x</td><td>plane3_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane3_stride_y</td><td>Stride of the fourth plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane3_step_y</td><td>plane3_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane3_offset_first_element_in_bytes</td><td>The offset of the first element in the fourth plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: RGBA </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_x</td><td>Stride of the destination image in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_step_x</td><td>dst_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_y</td><td>Stride of the destination image in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_step_y</td><td>dst_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_offset_first_element_in_bytes</td><td>The offset of the first element in the destination image </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="channel__combine_8cl_source.xhtml#l00127">127</a> of file <a class="el" href="channel__combine_8cl_source.xhtml">channel_combine.cl</a>.</p>
<p>References <a class="el" href="helpers_8h_source.xhtml#l00073">CONVERT_TO_IMAGE_STRUCT</a>, and <a class="el" href="helpers_8h_source.xhtml#l00097">Image::ptr</a>.</p>
<div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane0 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane0);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane1 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane1);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane2 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane2);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane3 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane3);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> dst = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; uchar16 data0 = vload16(0, plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; uchar16 data1 = vload16(0, plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; uchar16 data2 = vload16(0, plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; uchar16 data3 = vload16(0, plane3.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; uchar16 out0 = (uchar16)(data0.s0, data1.s0, data2.s0, data3.s0,</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; data0.s1, data1.s1, data2.s1, data3.s1,</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; data0.s2, data1.s2, data2.s2, data3.s2,</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; data0.s3, data1.s3, data2.s3, data3.s3);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; vstore16(out0, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; uchar16 out1 = (uchar16)(data0.s4, data1.s4, data2.s4, data3.s4,</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; data0.s5, data1.s5, data2.s5, data3.s5,</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; data0.s6, data1.s6, data2.s6, data3.s6,</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; data0.s7, data1.s7, data2.s7, data3.s7);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; vstore16(out1, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 16);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; uchar16 out2 = (uchar16)(data0.s8, data1.s8, data2.s8, data3.s8,</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; data0.s9, data1.s9, data2.s9, data3.s9,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; data0.sA, data1.sA, data2.sA, data3.sA,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; data0.sB, data1.sB, data2.sB, data3.sB);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; vstore16(out2, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 32);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; uchar16 out3 = (uchar16)(data0.sC, data1.sC, data2.sC, data3.sC,</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; data0.sD, data1.sD, data2.sD, data3.sD,</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; data0.sE, data1.sE, data2.sE, data3.sE,</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; data0.sF, data1.sF, data2.sF, data3.sF);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; vstore16(out3, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 48);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div><div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00073">helpers.h:73</a></div></div>
<div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00095">helpers.h:95</a></div></div>
<div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00097">helpers.h:97</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a72eb5d0161bfc3bca9ceb770ce7ef1ad"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__kernel void channel_combine_UYVY422 </td>
<td>(</td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>plane0_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>plane1_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>plane2_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>dst_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_offset_first_element_in_bytes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function combines three planes to a single UYUV image. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_stride_x</td><td>Stride of the first plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_step_x</td><td>plane0_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_stride_y</td><td>Stride of the first plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_step_y</td><td>plane0_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_offset_first_element_in_bytes</td><td>The offset of the first element in the first plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_stride_x</td><td>Stride of the second plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_step_x</td><td>plane1_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_stride_y</td><td>Stride of the second plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_step_y</td><td>plane1_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_offset_first_element_in_bytes</td><td>The offset of the first element in the second plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_stride_x</td><td>Stride of the third plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_step_x</td><td>plane2_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_stride_y</td><td>Stride of the third plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_step_y</td><td>plane2_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_offset_first_element_in_bytes</td><td>The offset of the first element in the third plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: UYUV </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_x</td><td>Stride of the destination image in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_step_x</td><td>dst_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_y</td><td>Stride of the destination image in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_step_y</td><td>dst_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_offset_first_element_in_bytes</td><td>The offset of the first element in the destination image </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="channel__combine_8cl_source.xhtml#l00253">253</a> of file <a class="el" href="channel__combine_8cl_source.xhtml">channel_combine.cl</a>.</p>
<p>References <a class="el" href="helpers_8h_source.xhtml#l00073">CONVERT_TO_IMAGE_STRUCT</a>, and <a class="el" href="helpers_8h_source.xhtml#l00097">Image::ptr</a>.</p>
<div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;{</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane0 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane0);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane1 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane1);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane2 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane2);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> dst = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; uchar16 data0 = vload16(0, plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; uchar8 data1 = vload8(0, plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; uchar8 data2 = vload8(0, plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; uchar16 out0 = (uchar16)(data1.s0, data0.s0, data2.s0, data0.s1,</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; data1.s1, data0.s2, data2.s1, data0.s3,</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; data1.s2, data0.s4, data2.s2, data0.s5,</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; data1.s3, data0.s6, data2.s3, data0.s7);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; vstore16(out0, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; uchar16 out1 = (uchar16)(data1.s4, data0.s8, data2.s4, data0.s9,</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; data1.s5, data0.sA, data2.s5, data0.sB,</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; data1.s6, data0.sC, data2.s6, data0.sD,</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; data1.s7, data0.sE, data2.s7, data0.sF);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; vstore16(out1, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 16);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;}</div><div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00073">helpers.h:73</a></div></div>
<div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00095">helpers.h:95</a></div></div>
<div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00097">helpers.h:97</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a410770921ba530aaf00498478ff7f475"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__kernel void channel_combine_YUYV422 </td>
<td>(</td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>plane0_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane0_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>plane1_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane1_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>plane2_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>plane2_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>dst_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_offset_first_element_in_bytes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function combines three planes to a single YUYV image. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_stride_x</td><td>Stride of the first plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_step_x</td><td>plane0_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_stride_y</td><td>Stride of the first plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_step_y</td><td>plane0_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane0_offset_first_element_in_bytes</td><td>The offset of the first element in the first plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_stride_x</td><td>Stride of the second plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_step_x</td><td>plane1_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_stride_y</td><td>Stride of the second plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_step_y</td><td>plane1_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane1_offset_first_element_in_bytes</td><td>The offset of the first element in the second plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_stride_x</td><td>Stride of the third plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_step_x</td><td>plane2_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_stride_y</td><td>Stride of the third plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_step_y</td><td>plane2_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">plane2_offset_first_element_in_bytes</td><td>The offset of the first element in the third plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination image. Supported Format: YUYV </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_x</td><td>Stride of the destination image in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_step_x</td><td>dst_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_y</td><td>Stride of the destination image in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_step_y</td><td>dst_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_offset_first_element_in_bytes</td><td>The offset of the first element in the destination image </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="channel__combine_8cl_source.xhtml#l00198">198</a> of file <a class="el" href="channel__combine_8cl_source.xhtml">channel_combine.cl</a>.</p>
<p>References <a class="el" href="helpers_8h_source.xhtml#l00073">CONVERT_TO_IMAGE_STRUCT</a>, and <a class="el" href="helpers_8h_source.xhtml#l00097">Image::ptr</a>.</p>
<div class="fragment"><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;{</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane0 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane0);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane1 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane1);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> plane2 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(plane2);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> dst = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; uchar16 data0 = vload16(0, plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; uchar8 data1 = vload8(0, plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; uchar8 data2 = vload8(0, plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; uchar16 out0 = (uchar16)(data0.s0, data1.s0, data0.s1, data2.s0,</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; data0.s2, data1.s1, data0.s3, data2.s1,</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; data0.s4, data1.s2, data0.s5, data2.s2,</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; data0.s6, data1.s3, data0.s7, data2.s3);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; vstore16(out0, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; uchar16 out1 = (uchar16)(data0.s8, data1.s4, data0.s9, data2.s4,</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; data0.sA, data1.s5, data0.sB, data2.s5,</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; data0.sC, data1.s6, data0.sD, data2.s6,</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; data0.sE, data1.s7, data0.sF, data2.s7);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; vstore16(out1, 0, dst.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> + 16);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;}</div><div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00073">helpers.h:73</a></div></div>
<div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00095">helpers.h:95</a></div></div>
<div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00097">helpers.h:97</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a2ecdd5708954da1196aa12856e78a462"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__kernel void copy_planes_3p </td>
<td>(</td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>src_plane0_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane0_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane0_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane0_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane0_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane0_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>src_plane1_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane1_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane1_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane1_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane1_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane1_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>src_plane2_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane2_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane2_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane2_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane2_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>src_plane2_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>dst_plane0_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane0_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane0_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane0_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane0_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane0_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>dst_plane1_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane1_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane1_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane1_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane1_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane1_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__global uchar *&#160;</td>
<td class="paramname"><em>dst_plane2_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane2_stride_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane2_step_x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane2_stride_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane2_step_y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dst_plane2_offset_first_element_in_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>height</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function combines three planes to a single YUV444 or IYUV image. </p>
<dl class="section note"><dt>Note</dt><dd>YUV444 or IYUV has to be specified through preprocessor macro. eg. -DIYUV performs IYUV channel combine.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_ptr</td><td>Pointer to the first plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_stride_x</td><td>Stride of the first plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_step_x</td><td>src_plane0_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_stride_y</td><td>Stride of the first plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_step_y</td><td>src_plane0_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane0_offset_first_element_in_bytes</td><td>The offset of the first element in the first plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_ptr</td><td>Pointer to the second plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_stride_x</td><td>Stride of the second plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_step_x</td><td>src_plane1_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_stride_y</td><td>Stride of the second plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_step_y</td><td>src_plane1_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane1_offset_first_element_in_bytes</td><td>The offset of the first element in the second plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_ptr</td><td>Pointer to the third plane. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_stride_x</td><td>Stride of the third plane in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_step_x</td><td>src_plane2_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_stride_y</td><td>Stride of the third plane in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_step_y</td><td>src_plane2_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src_plane2_offset_first_element_in_bytes</td><td>The offset of the first element in the third plane </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_ptr</td><td>Pointer to the first plane of the destination image. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_stride_x</td><td>Stride of the first plane of the destination image in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_step_x</td><td>dst_plane0_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_stride_y</td><td>Stride of the first plane of the destination image in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_step_y</td><td>dst_plane0_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane0_offset_first_element_in_bytes</td><td>The offset of the first element in the first plane of the destination image </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_ptr</td><td>Pointer to the second plane of the destination image. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_stride_x</td><td>Stride of the second plane of the destination image in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_step_x</td><td>dst_plane1_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_stride_y</td><td>Stride of the second plane of the destination image in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_step_y</td><td>dst_plane1_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane1_offset_first_element_in_bytes</td><td>The offset of the first element in the second plane of the destination image </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane2_ptr</td><td>Pointer to the third plane of the destination image. Supported Format: U8 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane2_stride_x</td><td>Stride of the third plane of the destination image in X dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane2_step_x</td><td>dst_plane2_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane2_stride_y</td><td>Stride of the third plane of the destination image in Y dimension (in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane2_step_y</td><td>dst_plane2_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dst_plane2_offset_first_element_in_bytes</td><td>The offset of the first element in the third plane of the destination image </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>Sub-sampled height </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="channel__combine_8cl_source.xhtml#l00389">389</a> of file <a class="el" href="channel__combine_8cl_source.xhtml">channel_combine.cl</a>.</p>
<p>References <a class="el" href="helpers_8h_source.xhtml#l00073">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="helpers_8h_source.xhtml#l00201">offset()</a>, and <a class="el" href="helpers_8h_source.xhtml#l00097">Image::ptr</a>.</p>
<div class="fragment"><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;{</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="comment">// Get pixels pointer</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> src_plane0 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane0);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> src_plane1 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane1);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> src_plane2 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src_plane2);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> dst_plane0 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst_plane0);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> dst_plane1 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst_plane1);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <a class="code" href="struct_image.xhtml">Image</a> dst_plane2 = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(dst_plane2);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="comment">// Copy plane data</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; vstore16(vload16(0, src_plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>), 0, dst_plane0.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor">#if defined YUV444</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; vstore16(vload16(0, src_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>), 0, dst_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; vstore16(vload16(0, src_plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>), 0, dst_plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor">#elif defined IYUV</span></div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; vstore16(vload16(0, <a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src_plane0, 0, height)), 0, (__global uchar *)<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;dst_plane0, 0, height));</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; vstore8(vload8(0, src_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>), 0, dst_plane1.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; vstore8(vload8(0, src_plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>), 0, dst_plane2.<a class="code" href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;}</div><div class="ttc" id="helpers_8h_xhtml_a009469e4d9b8fce3b6d5e97d2077827d"><div class="ttname"><a href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a></div><div class="ttdeci">__global uchar * offset(const Image *img, int x, int y)</div><div class="ttdoc">Get the pointer position of a Image. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00201">helpers.h:201</a></div></div>
<div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00073">helpers.h:73</a></div></div>
<div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00095">helpers.h:95</a></div></div>
<div class="ttc" id="struct_image_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_image.xhtml#acf52c23cbd7424606c10a606524e3e32">Image::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00097">helpers.h:97</a></div></div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.xhtml">src</a></li><li class="navelem"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.xhtml">core</a></li><li class="navelem"><a class="el" href="dir_8c278f79c760e5c5fbd911f9870614c1.xhtml">CL</a></li><li class="navelem"><a class="el" href="dir_25885286e9dad4fa105b7b25a8031bbf.xhtml">cl_kernels</a></li><li class="navelem"><a class="el" href="channel__combine_8cl.xhtml">channel_combine.cl</a></li>
<li class="footer">Generated on Fri Jun 23 2017 15:44:34 for Compute Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
</ul>
</div>
</body>
</html>