<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:"Calibri Light";
        panose-1:2 15 3 2 2 2 4 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
h3
        {mso-style-priority:9;
        mso-style-link:"Heading 3 Char";
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:13.5pt;
        font-family:"Times New Roman",serif;
        font-weight:bold;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.Heading3Char
        {mso-style-name:"Heading 3 Char";
        mso-style-priority:9;
        mso-style-link:"Heading 3";
        font-family:"Calibri Light",sans-serif;
        color:#1F4D78;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.gmail-gi
        {mso-style-name:gmail-gi;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Arial",sans-serif;
        color:#44546A;
        font-weight:normal;
        font-style:normal;
        text-decoration:none none;}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Arial",sans-serif;
        color:#44546A;
        font-weight:normal;
        font-style:normal;
        text-decoration:none none;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<h3><span style="font-size:11.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#44546A;font-weight:normal">Hello All,<o:p></o:p></span></h3>
<h3><span style="font-size:11.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#44546A;font-weight:normal">&nbsp;&nbsp; Marcin Kolesinski</span><span style="font-size:11.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#44546A;font-weight:normal">, Rockwell Collins,
</span><span style="font-size:11.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#44546A;font-weight:normal">has developed the following 2D run-length encoding
</span><span style="font-size:11.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#44546A;font-weight:normal">algorithm</span><span style="font-size:11.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#44546A;font-weight:normal"> for Project Paper 813.&nbsp; This is #99 on the
 Action Item List.&nbsp; &nbsp;</span><span style="font-size:11.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#44546A;font-weight:normal">Please
</span><span style="font-size:11.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#44546A;font-weight:normal">review this
</span><span style="font-size:11.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#44546A;font-weight:normal">so we can discuss it
</span><span style="font-size:11.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#44546A;font-weight:normal">on Wednesday’s call.<o:p></o:p></span></h3>
<h3><span style="font-size:11.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#44546A;font-weight:normal">Best Regards,<o:p></o:p></span></h3>
<h3><span style="font-size:11.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#44546A;font-weight:normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Peter<o:p></o:p></span></h3>
<h3>To minimize size of the encoded data, suggest putting this directly into A813 as a custom alrogrithm, and the array dimensions will actually be attribute values (numpostspertileaxis from corresponding Grid element)...scale factor will be hardcoded.<o:p></o:p></h3>
<p>NOTE RE A814: Other RLE functions perhaps incorrectly describe arrays as 1D, 2D, or 3D....really, they are Nx1, Nx2, or Nx3, where N is the array length. The example below is a true 2D array (MxN). The other RLE functions might be better described as 1D
 array of values, 1D array of value pairs, 1D array of value triplets, etc.<o:p></o:p></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="94%" style="width:94.0%">
<thead>
<tr>
<td width="7%" valign="top" style="width:7.0%;border:solid #00000A 1.5pt;border-right:solid #00000A 1.0pt;padding:0in 5.75pt 0in 5.75pt">
<p style="margin-top:2.9pt"><b><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Code</span></b><o:p></o:p></p>
</td>
<td width="23%" valign="top" style="width:23.0%;border-top:1.5pt;border-left:1.0pt;border-bottom:1.5pt;border-right:1.0pt;border-color:#00000A;border-style:solid;padding:0in 5.75pt 0in 5.75pt">
<p style="margin-top:2.9pt"><b><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Description</span></b><o:p></o:p></p>
</td>
<td width="14%" valign="top" style="width:14.0%;border-top:1.5pt;border-left:1.0pt;border-bottom:1.5pt;border-right:1.0pt;border-color:#00000A;border-style:solid;padding:0in 5.75pt 0in 5.75pt">
<p style="margin-top:2.9pt"><b><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Number Of Arguments</span></b><o:p></o:p></p>
</td>
<td width="14%" valign="top" style="width:14.0%;border-top:1.5pt;border-left:1.0pt;border-bottom:1.5pt;border-right:1.0pt;border-color:#00000A;border-style:solid;padding:0in 5.75pt 0in 5.75pt">
<p style="margin-top:2.9pt"><b><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Argument Data Type</span></b><o:p></o:p></p>
</td>
<td width="14%" valign="top" style="width:14.0%;border-top:1.5pt;border-left:1.0pt;border-bottom:1.5pt;border-right:1.0pt;border-color:#00000A;border-style:solid;padding:0in 5.75pt 0in 5.75pt">
<p style="margin-top:2.9pt"><b><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Content Data Type</span></b><o:p></o:p></p>
</td>
<td width="14%" valign="top" style="width:14.0%;border-top:1.5pt;border-left:1.0pt;border-bottom:1.5pt;border-right:1.0pt;border-color:#00000A;border-style:solid;padding:0in 5.75pt 0in 5.75pt">
<p style="margin-top:2.9pt"><b><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Output Data Type</span></b><o:p></o:p></p>
</td>
<td width="14%" valign="top" style="width:14.0%;border:solid #00000A 1.5pt;border-left:solid #00000A 1.0pt;padding:0in 5.75pt 0in 5.75pt">
<p style="margin-top:2.9pt"><b><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Function definition</span></b><o:p></o:p></p>
</td>
</tr>
</thead>
</table>
<p class="MsoNormal"><span style="display:none"><o:p>&nbsp;</o:p></span></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="94%" style="width:94.0%">
<thead>
<tr>
<td width="7%" valign="top" style="width:7.0%;border:solid #00000A 1.0pt;border-left:solid #00000A 1.5pt;padding:0in 5.75pt 0in 5.75pt">
<p style="margin-top:2.9pt"><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">0x80?</span><o:p></o:p></p>
</td>
<td width="23%" valign="top" style="width:23.0%;border:solid #00000A 1.0pt;padding:0in 5.75pt 0in 5.75pt">
<p style="margin-top:2.9pt"><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Run-length encoding of (relative to previous value in row) of 2 dimensional Count Array of scaled integer values</span><o:p></o:p></p>
</td>
<td width="14%" valign="top" style="width:14.0%;border:solid #00000A 1.0pt;padding:0in 5.75pt 0in 5.75pt">
<p style="margin-top:2.9pt"><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">1</span><o:p></o:p></p>
</td>
<td width="14%" valign="top" style="width:14.0%;border:solid #00000A 1.0pt;padding:0in 5.75pt 0in 5.75pt">
<p style="margin-top:2.9pt"><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Count</span><o:p></o:p></p>
</td>
<td width="14%" valign="top" style="width:14.0%;border:solid #00000A 1.0pt;padding:0in 5.75pt 0in 5.75pt">
<p style="margin-top:2.9pt"><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Count</span><o:p></o:p></p>
</td>
<td width="14%" valign="top" style="width:14.0%;border:solid #00000A 1.0pt;padding:0in 5.75pt 0in 5.75pt">
<p style="margin-top:2.9pt"><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">DoubleNum</span><o:p></o:p></p>
</td>
<td width="14%" valign="top" style="width:14.0%;border:solid #00000A 1.0pt;border-right:solid #00000A 1.5pt;padding:0in 5.75pt 0in 5.75pt">
<p style="margin-top:2.9pt"><span style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Section TBD</span><o:p></o:p></p>
</td>
</tr>
</thead>
</table>
<p style="margin-bottom:0in;margin-bottom:.0001pt"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><b>&lt;SECTION&gt; Run-length encoding function: 2 dimensional array of terrain elevations</b><o:p></o:p></p>
<p>ScaleFactor = TBD<o:p></o:p></p>
<p>args[0] is a reference value; it can be any valid integer, which when used with the encoding/decoding algorithm below, does not cause the data type of &lt;content&gt; to overflow. For data the does not contain any Default values, this could be the scaled representation
 of the first value (e.g. Value[0] / ScaleFactor), which would allow the first encoded array entry (&lt;content[0][0]&gt;) to simply be zero.<o:p></o:p></p>
<p>Encoding function:<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:.5in;margin-bottom:.0001pt">
for j = 0, j &lt; <b>numpostspertileaxis</b>, j = j &#43; 1<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:65.75pt;margin-bottom:.0001pt">
if(Value[j][0] is Default)<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:95.45pt;margin-bottom:.0001pt">
&lt;content[j][0]&gt; = Default (corresponding integer representation)<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:65.75pt;margin-bottom:.0001pt">
else if ((j == 0) or (Value[j - 1][0] is Default))<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:95.45pt;margin-bottom:.0001pt">
&lt;content[j][0]&gt; = (Value[j][0] / ScaleFactor) - args[0]<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:65.75pt;margin-bottom:.0001pt">
else<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:95.45pt;margin-bottom:.0001pt">
&lt;content[j][0]&gt; = (Value[j][0] / ScaleFactor) - &lt;content[j-1][0]&gt;<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:.5in;margin-bottom:.0001pt">
<o:p>&nbsp;</o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:65.75pt;margin-bottom:.0001pt">
for i = 1, i &lt; <b>numpostspertileaxis</b>, i = i &#43; 1<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:95.45pt;margin-bottom:.0001pt">
if(Value[j][i] is Default)<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:125.3pt;margin-bottom:.0001pt">
&lt;content[j][i]&gt; = Default (corresponding integer representation)<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:95.45pt;margin-bottom:.0001pt">
else if (Value[j][i-1] is Default)<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:125.3pt;margin-bottom:.0001pt">
&lt;content[j][i]&gt; = (Value[j][i] / ScaleFactor) - args[0]<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:95.45pt;margin-bottom:.0001pt">
else<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:125.3pt;margin-bottom:.0001pt">
&lt;content[j][i]&gt; = (Value[j][i] / ScaleFactor) - &lt;content[j][i-1]&gt;<o:p></o:p></p>
<p style="margin-bottom:12.0pt"><o:p>&nbsp;</o:p></p>
<p>Decoding function:<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:.5in;margin-bottom:.0001pt">
for j = 0, j &lt; <b>numpostspertileaxis</b>, j = j &#43; 1<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:65.75pt;margin-bottom:.0001pt">
if(&lt;content[j][0]&gt; is Default)<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:95.45pt;margin-bottom:.0001pt">
Value[j][0] = Default<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:65.75pt;margin-bottom:.0001pt">
else if ((j == 0) or (&lt;content[j – 1][0]&gt; is Default))<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:95.45pt;margin-bottom:.0001pt">
Value[j][0] = (&lt;content[j][0]&gt; &#43; args[0]) * ScaleFactor<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:65.75pt;margin-bottom:.0001pt">
else<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:65.75pt;margin-bottom:.0001pt">
Value[j][0] = (&lt;content[j][0]&gt; &#43; &lt;content[j-1][0]) * ScaleFactor<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:.5in;margin-bottom:.0001pt">
<o:p>&nbsp;</o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:65.75pt;margin-bottom:.0001pt">
for i = 1, i &lt; <b>numpostspertileaxis</b>, i = i &#43;1<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:95.45pt;margin-bottom:.0001pt">
if(&lt;content[j][i]&gt; is Default)<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:125.3pt;margin-bottom:.0001pt">
Value[j][i] = Default<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:95.45pt;margin-bottom:.0001pt">
else if (&lt;content[j][i-1]&gt; is Default)<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:125.3pt;margin-bottom:.0001pt">
&lt;Value[j][i]&gt; = (&lt;content[j][i]&gt; &#43; args[0]) * ScaleFactor<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:95.45pt;margin-bottom:.0001pt">
else<o:p></o:p></p>
<p style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:125.3pt;margin-bottom:.0001pt">
&lt;Value[j][i]&gt; = (&lt;content[j][i]&gt; &#43; &lt;content[j][i-1]) * ScaleFactor<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
<br>
<br>
========================================<o:p></o:p></p>
<div>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<div>
<div>
<div>
<p class="MsoNormal">Marcin Kolesinski<o:p></o:p></p>
</div>
<p class="MsoNormal">SA Apps Software Architect<o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
<br>
<br>
Nothing in this message is intended to constitute an electronic signature unless a specific statement to the contrary is included in this message. Confidentiality Note: This message is intended only for the person or entity to which it is addressed. It may
 contain confidential and/or proprietary material. Any review, transmission, dissemination or other use, or taking of any action in reliance upon this message by persons or entities other than the intended recipient is prohibited. If you received this message
 in error, please contact the sender and delete it from your computer.
</body>
</html>