You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CMSIS-DSP/main/group__DCT4Q15.html

291 lines
16 KiB
HTML

<!-- HTML header for doxygen 1.9.2-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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=11"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>CMSIS-DSP: DCT4 Q15</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>
<script type="text/javascript" src="footer.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>
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="$extra_stylesheet" rel="stylesheet" type="text/css" />
<link href="extra_stylesheet.css" rel="stylesheet" type="text/css"/>
<link href="version.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../version.js"></script>
</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: 55px;">
<td id="projectlogo" style="padding: 1.5em;"><img alt="Logo" src="cmsis_logo_white_small.png"/></td>
<td style="padding-left: 1em; padding-bottom: 1em;padding-top: 1em;">
<div id="projectname">CMSIS-DSP
&#160;<span id="projectnumber"><script type="text/javascript">
<!--
writeHeader.call(this);
writeVersionDropdown(this);
//-->
</script>
</span>
</div>
<div id="projectbrief">CMSIS DSP Software Library</div>
</td>
<!--END !PROJECT_NAME-->
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
<li class="current"><a href="modules.html"><span>&#160;API&#160;Reference</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.svg"
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.svg" alt=""/></a>
</span>
</div>
</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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('group__DCT4Q15.html',''); initResizable(); });
/* @license-end */
</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">DCT4 Q15<div class="ingroups"><a class="el" href="group__groupTransforms.html">Transform Functions</a> &raquo; <a class="el" href="group__DCT4__IDCT4.html">DCT Type IV Functions</a></div></div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga966fd1b66a80873964533703ab5dc054"><td class="memItemLeft" align="right" valign="top"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DCT4Q15.html#ga966fd1b66a80873964533703ab5dc054">arm_dct4_init_q15</a> (<a class="el" href="structarm__dct4__instance__q15.html">arm_dct4_instance_q15</a> *S, <a class="el" href="structarm__rfft__instance__q15.html">arm_rfft_instance_q15</a> *S_RFFT, <a class="el" href="structarm__cfft__radix4__instance__q15.html">arm_cfft_radix4_instance_q15</a> *S_CFFT, uint16_t N, uint16_t Nby2, <a class="el" href="arm__math__types_8h.html#ab5a8fb21a5b3b983d5f54f31614052ea">q15_t</a> normalize)</td></tr>
<tr class="memdesc:ga966fd1b66a80873964533703ab5dc054"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization function for the Q15 DCT4/IDCT4. <a href="group__DCT4Q15.html#ga966fd1b66a80873964533703ab5dc054">More...</a><br /></td></tr>
<tr class="separator:ga966fd1b66a80873964533703ab5dc054"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga114cb9635059f678df291fcc887aaf2b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DCT4Q15.html#ga114cb9635059f678df291fcc887aaf2b">arm_dct4_q15</a> (const <a class="el" href="structarm__dct4__instance__q15.html">arm_dct4_instance_q15</a> *S, <a class="el" href="arm__math__types_8h.html#ab5a8fb21a5b3b983d5f54f31614052ea">q15_t</a> *pState, <a class="el" href="arm__math__types_8h.html#ab5a8fb21a5b3b983d5f54f31614052ea">q15_t</a> *pInlineBuffer)</td></tr>
<tr class="memdesc:ga114cb9635059f678df291fcc887aaf2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Processing function for the Q15 DCT4/IDCT4. <a href="group__DCT4Q15.html#ga114cb9635059f678df291fcc887aaf2b">More...</a><br /></td></tr>
<tr class="separator:ga114cb9635059f678df291fcc887aaf2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga966fd1b66a80873964533703ab5dc054" name="ga966fd1b66a80873964533703ab5dc054"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga966fd1b66a80873964533703ab5dc054">&#9670;&nbsp;</a></span>arm_dct4_init_q15()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a> arm_dct4_init_q15 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__dct4__instance__q15.html">arm_dct4_instance_q15</a> *&#160;</td>
<td class="paramname"><em>S</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structarm__rfft__instance__q15.html">arm_rfft_instance_q15</a> *&#160;</td>
<td class="paramname"><em>S_RFFT</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structarm__cfft__radix4__instance__q15.html">arm_cfft_radix4_instance_q15</a> *&#160;</td>
<td class="paramname"><em>S_CFFT</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>N</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>Nby2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="arm__math__types_8h.html#ab5a8fb21a5b3b983d5f54f31614052ea">q15_t</a>&#160;</td>
<td class="paramname"><em>normalize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000022">Deprecated:</a></b></dt><dd>Do not use this function. It will be removed in future versions. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">S</td><td>points to an instance of Q15 DCT4/IDCT4 structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">S_RFFT</td><td>points to an instance of Q15 RFFT/RIFFT structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">S_CFFT</td><td>points to an instance of Q15 CFFT/CIFFT structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">N</td><td>length of the DCT4 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">Nby2</td><td>half of the length of the DCT4 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">normalize</td><td>normalizing factor </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>execution status<ul>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a9f8b2a10bd827fb4600e77d455902eb0">ARM_MATH_SUCCESS</a> : Operation successful</li>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a74897e18d4b8f62b12a7d8a01dd2bb35">ARM_MATH_ARGUMENT_ERROR</a> : <code>N</code> is not a supported transform length</li>
</ul>
</dd></dl>
<dl class="section user"><dt>Normalizing factor</dt><dd>The normalizing factor is <code>sqrt(2/N)</code>, which depends on the size of transform <code>N</code>. Normalizing factors in 1.15 format are mentioned in the table below for different DCT sizes:</dd></dl>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadRight">DCT Size </th><th class="markdownTableHeadRight">Normalizing factor value (hexadecimal) </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyRight">2048 </td><td class="markdownTableBodyRight">0x400 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyRight">512 </td><td class="markdownTableBodyRight">0x800 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyRight">128 </td><td class="markdownTableBodyRight">0x1000 </td></tr>
</table>
</div>
</div>
<a id="ga114cb9635059f678df291fcc887aaf2b" name="ga114cb9635059f678df291fcc887aaf2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga114cb9635059f678df291fcc887aaf2b">&#9670;&nbsp;</a></span>arm_dct4_q15()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void arm_dct4_q15 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structarm__dct4__instance__q15.html">arm_dct4_instance_q15</a> *&#160;</td>
<td class="paramname"><em>S</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="arm__math__types_8h.html#ab5a8fb21a5b3b983d5f54f31614052ea">q15_t</a> *&#160;</td>
<td class="paramname"><em>pState</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="arm__math__types_8h.html#ab5a8fb21a5b3b983d5f54f31614052ea">q15_t</a> *&#160;</td>
<td class="paramname"><em>pInlineBuffer</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000024">Deprecated:</a></b></dt><dd>Do not use this function. It will be removed in future versions. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">S</td><td>points to an instance of the Q15 DCT4 structure. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pState</td><td>points to state buffer. </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">pInlineBuffer</td><td>points to the in-place input and output buffer. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none</dd></dl>
<dl class="section user"><dt>Input an output formats</dt><dd>Internally inputs are downscaled in the RFFT process function to avoid overflows. Number of bits downscaled, depends on the size of the transform. The input and output formats for different DCT sizes and number of bits to upscale are mentioned in the table below:</dd></dl>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadRight">DCT Size </th><th class="markdownTableHeadRight">Input format </th><th class="markdownTableHeadRight">Output format </th><th class="markdownTableHeadRight">Number of bits to upscale </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyRight">2048 </td><td class="markdownTableBodyRight">1.15 </td><td class="markdownTableBodyRight">11.5 </td><td class="markdownTableBodyRight">10 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyRight">512 </td><td class="markdownTableBodyRight">1.15 </td><td class="markdownTableBodyRight">9.7 </td><td class="markdownTableBodyRight">8 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyRight">128 </td><td class="markdownTableBodyRight">1.15 </td><td class="markdownTableBodyRight">7.9 </td><td class="markdownTableBodyRight">6 </td></tr>
</table>
</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="footer">
<script type="text/javascript">
<!--
writeFooter.call(this);
//-->
</script>
</li>
</ul>
</div>
</body>
</html>