Patent Publication Number: US-2023154074-A1

Title: System and method for providing more readable font characters in size adjusting avionics charts

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     The present application claims the benefit under 35 U.S.C. § 119(e) of U.S. Provisional Application Ser. No. 63/278,576 filed Nov. 12, 2021, entitled SYSTEMS AND METHODS FOR GENERATION, SELECTION, AND DISPLAY OF MAP-BASED CHART DATABASES FOR USE WITH CERTIFIED AVIONICS SYSTEMS, naming Jeff M. Henry, Kyle R. Peters, Todd E. Miller, Jason L. Wong, Reed A. Kovach, and Srinath Nandakumar as inventors, which is incorporated herein by reference in the entirety. 
    
    
     BACKGROUND 
     Digital flight charts (i.e., aeronautical charts) are usually provided by third-party vendors in a format such as PDF. Text characters in the flight charts are commonly presented as filled characters (e.g., characters drawn using a plurality of filled triangles) which grow in thickness at higher zoom levels (zoomed in) but are hard to read at lower zoom levels (zoomed out). In contrast, stroked characters (e.g., characters drawn using a plurality of line segments) remain at a constant thickness at higher zoom levels but are easier to read at lower zoom levels. Flight charts presented on flight displays require both stroked characters and filled characters depending on the zoom level (sometimes for the same letter). Furthermore, flight charts may be generated off-line when the zoom level is not known. A method that solves the above problems by presenting either filled or stroked characters at the appropriate zoom level is desirable. 
     SUMMARY 
     A system for flight chart font character scaling is disclosed in accordance with one or more illustrative embodiments of the present disclosure. In one illustrative embodiment, the system comprises a host computing device including one or more processers configured to execute program instructions causing the one or more processors to: detect a respective font character size of one or more font characters in a flight chart file; associate a respective threshold zoom level with each of the font character(s) based on the respective font character size; replace the font character(s) with one or more font character references, wherein each of the font character reference(s) is associated with the respective threshold zoom level; and convert the flight chart file, including the font character reference(s) and the respective threshold zoom level associated with each of the font character reference(s), to a flight chart defined in aircraft display hardware directives. 
     In another illustrative embodiment, the system comprises an aircraft display configured to display the flight chart using the aircraft display hardware directives. 
     In another illustrative embodiment, the system comprises an aircraft computing device including one or more processers configured to execute program instructions causing the one or more processors to: detect a current zoom level of the aircraft display; responsive to the current zoom level being greater than the respective threshold zoom level of one of the font character reference(s), set a drawing mode of the one of the font character reference(s) as a filled character mode, or, responsive to the current zoom level being less than the respective threshold zoom level of the one of the font character reference(s), set the drawing mode of the one of the font character reference(s) as a stroked character mode; and responsive to the drawing mode being set as the filled character mode, present a referenced character of the one of the font character reference(s) as a filled character on the aircraft display, or, responsive to the drawing mode being set as the stroked character mode, present the referenced character of the one of the font character reference(s) as a stroked character on the aircraft display. 
     A method for flight chart font character scaling is disclosed in accordance with one or more illustrative embodiments of the present disclosure. In one illustrative embodiment, the method comprises, using a host computing device, detecting a respective font character size of one or more font characters in a flight chart file, associating a respective threshold zoom level with each of the font character(s) based on the respective font character size, replacing the font character(s) with one or more font character references, wherein each of the font character reference(s) is associated with the respective threshold zoom level, converting the flight chart file, including the font character reference(s) and the respective threshold zoom level associated with each of the font character reference(s), to a flight chart defined in aircraft display hardware directives, wherein an aircraft display is configured to display the flight chart using the aircraft display hardware directives. 
     In another illustrative embodiment, the method comprises, using an aircraft computing device, detecting a current zoom level of the aircraft display, responsive to the current zoom level being greater than the respective threshold zoom level of one of the font character reference(s), setting a drawing mode of the one of the font character reference(s) as a filled character mode, or, responsive to the current zoom level being less than the respective threshold zoom level of the one of the font character reference(s), setting the drawing mode of the one of the font character reference(s) as a stroked character mode; and responsive to the drawing mode being set as the filled character mode, presenting a referenced character of the one of the font character reference(s) as a filled character on the aircraft display, or, responsive to the drawing mode being set as the stroked character mode, presenting the referenced character of the one of the font character reference(s) as a stroked character on the aircraft display. 
     It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not necessarily restrictive of the invention as claimed. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and together with the general description, serve to explain the principles of the invention. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       The numerous advantages of the disclosure may be better understood by those skilled in the art by reference to the accompanying figures in which: 
         FIG.  1    is a conceptual image illustrating sizes of filled characters and stroked characters at different zoom levels. 
         FIG.  2    is a block diagram illustrating a system for flight chart font character scaling, in accordance with one or more embodiments of the present disclosure 
         FIG.  3    is a conceptual diagram illustrating the program flow of modules configured to draw a font character as filled or stroked, in accordance with one or more embodiments of the present disclosure. 
         FIG.  4    is a flowchart illustrating a method for flight chart font character scaling, in accordance with one or more embodiments of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     Before explaining at least one embodiment of the inventive concepts disclosed herein in detail, it is to be understood that the inventive concepts are not limited in their application to the details of construction and the arrangement of the components or steps or methodologies set forth in the following description or illustrated in the drawings. In the following detailed description of embodiments of the present disclosure, numerous specific details are set forth in order to provide a more thorough understanding of the inventive concepts. However, it will be apparent to one of ordinary skill in the art having the benefit of the present disclosure that the inventive concepts disclosed herein may be practiced without these specific details. In other instances, well-known features may not be described in detail to avoid unnecessarily complicating the present disclosure. The inventive concepts disclosed herein are capable of other embodiments or of being practiced or carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein is for the purpose of description and should not be regarded as limiting. 
     As used herein a letter following a reference numeral is intended to reference an embodiment of the feature or element that may be similar, but not necessarily identical, to a previously described element or feature bearing the same reference numeral (e.g.,  1 ,  1   a ,  1   b ). Such shorthand notations are used for purposes of convenience only, and should not be construed to limit the inventive concepts disclosed herein in any way unless expressly stated to the contrary. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present). In addition, use of the “a” or “an” are employed to describe elements and components of embodiments of the present inventive concepts. This is done merely for convenience and to give a general sense of the inventive concepts, and “a” and “an” are intended to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise. 
     Finally, as used herein any reference to “one embodiment” or “some embodiments” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the inventive concepts disclosed herein. The appearances of the phrase “in some embodiments” in various places in the specification are not necessarily all referring to the same embodiment, and embodiments of the inventive concepts disclosed may include one or more of the features expressly described or inherently present herein, or any combination or sub-combination of two or more such features, along with any other features which may not necessarily be expressly described or inherently present in the present disclosure. 
     Aeronautical charts (flight charts) are used by pilots to navigate aircraft during departing and landing phases (e.g., using terminal flight charts) and during en-route phases (e.g., using en-route flight charts). Using flight charts and other tools, pilots are able to determine position of the aircraft, safe altitudes for the aircraft, best route to a destination, navigation aids, alternative landing areas in case of an in-flight emergency, and other useful information such as radio frequencies and airspace boundaries. Specific charts are used for each phase of a flight and may vary from a map of a particular airport facility to an overview of the instrument routes covering an entire continent (e.g., global navigation charts). 
     Digital flight charts are usually provided by third-party vendors in a format such as PDF. Text characters in the flight charts are commonly presented as filled characters (e.g., characters drawn using a plurality of filled triangles) which increase in thickness at higher zoom levels (zoomed in) but are hard to read at lower zoom levels (zoomed out). In contrast, stroked characters (e.g., characters drawn using a plurality of line segments) remain at a constant thickness at higher zoom levels but are easier to read at lower zoom levels. Flight charts shown on aircraft displays require both stroked characters and filled characters depending on the zoom level (sometimes for the same letter). However, due to limited memory resources on an aircraft computing device, referencing different fonts for both stroked and filled characters is disadvantageous. Furthermore, flight charts may be generated off-line when the zoom level is not known. Thus, it is desirable to solve the above problems by presenting the appropriate character (filled or stroked) at different zoom levels on an aircraft display while conserving aircraft hardware resources. 
     Embodiments of the present disclosure are directed to a system and method for flight chart font character scaling. The present system and method detects the size of a font character in a flight chart, and associates a threshold zoom level based on the font character size. Smaller characters (e.g., 12 point characters) may be set to stroked when the zoom level of an aircraft display is lower than a relatively low threshold zoom level (e.g., 1.25 times the baseline zoom level), whereas larger characters (e.g., 48 point characters) may be set to stroked when the zoom level of the aircraft display is lower than a relatively high zoom level (e.g., 2.0 times the baseline zoom level). The association of the threshold zoom level for each size of font character may be performed off-line during the processing of the flight chart on a host computing device, and before the zoom level of the aircraft display is known. The font characters may then be set as filled or stroked at run-time (using an aircraft computing device) based on a comparison of the associated threshold zoom level and a current zoom level of an aircraft display. 
       FIG.  1    is a conceptual image illustrating font character sizes of filled font characters and stroked font characters. The image shows four different font character sizes (large, medium, small and very small) of the letter “A.” The image shows a large filled character  110   a , a large stroked character  110   b , a medium filled character  120   a , a medium stroked character  120   b , a small filled character  130   a , a small stroked character  130   b , a very small filled character  140   a  and a very small stroked character  140   b . At the zoom level shown in  FIG.  1   , the large filled character  110   a  is more easily discernable (i.e., readable) than the large stroked character  110   b . Likewise, the medium filled character  120   a  is more easily discernable than the medium stroked character  120   b  and the small filled character  130   a  is more discernable than the small stroked character  130   b . In contrast, the very small stroked character  140   b  is more discernable than the very small filled character  140   a  at the same zoom level. Thus, for the zoom level shown in  FIG.  1   , it may be advantageous to present the large characters  110 , the medium characters  120 , and the small characters  130  as filled characters, and present the very small characters  140  as stroked characters. 
       FIG.  2    is a block diagram illustrating a system  200  for flight chart font character scaling, in accordance with one or more embodiments of the present disclosure. The system includes a host computing device  202 , and aircraft computing device  218 , and an aircraft display  228 . 
     The host computing device  202  and the aircraft computing device  218  may be controllers (e.g., computers), each respectively including one or more processors  204 ,  220  and a memory  206 ,  222 . For the purposes of the present disclosure, the term “processor” or “processing element” may be broadly defined to encompass any device having one or more processing or logic elements, for example, one or more central processing units (CPUs), one or more graphics processing units (GPUs), one or more micro-processor devices, one or more application specific integrated circuit (ASIC) devices, one or more field programmable gate arrays (FPGAs), or one or more digital signal processors (DSPs), etc. In this sense, the one or more processors  204 ,  220  may include any device configured to execute algorithms and/or instructions (e.g., program instructions or modules stored in memory), and may be configured to perform the method steps described in the present disclosure. For example, the processors  204  may execute the modules  210 ,  212 ,  212 ,  214  and  216 , and the processors  220  may be configured to execute the modules  224  and  226 . The memories  206 ,  222  may include any storage medium known in the art suitable for storing program instructions executable by the associated processors  204 ,  220 . For example, the memories  206 ,  222  may include, but are not limited to, a read-only memory (ROM), a random-access memory (RAM), a magnetic or optical memory device (e.g., hard disk), a magnetic tape, a solid-state drive, and the like. 
     The host computing device  202  may be, for example, a personal computer (PC), a laptop, a smartphone, a tablet, a server, a mainframe, etc. In some embodiments, the host computing device may operate using a Microsoft® Windows® operating system, an Apple® macOS® operating system, a Linux-based operating system, etc. In some embodiments, the host computing device may comprise a plurality of computing devices (e.g., a cloud-based system). It is noted that the host computing device  202  may be a ground-based computing device (e.g., not a part of an aircraft). The aircraft computing device(s)  218  may comprise one or more avionics embedded systems (e.g., an avionics suite), and may include a flight management system (FMS) computing device, a communications computing device, a navigation computing device, a flight display computing device, a flight control computing device, a fuel management computing device, a collision-avoidance computing device, a weather computing device, etc. The aircraft display  228  may be an LCD or CRT monitor, for example, a primary flight display (PFD), a multifunction display (MFD), and may be configured to present a flight chart (e.g., defined in aircraft display hardware directives) to a user of an aircraft. 
     A flight chart file  208  may be stored on the memory  206  of the host computing device. The flight chart file  208  may be a portable data format (PDF) flight chart file, however the present disclosure is not limited thereto, and it is contemplated that the flight chart file  208  may be any industry standard flight chart file that includes text. In some embodiments, a scalable vector graphics (SVG) file defined in extensible mark-up language (XML) or a comma-separated values (CSV) flight chart file may be converted to generate the flight chart file  208 . The flight chart file  208  may be an image representing terminal flight charts, en-route flight charts, nautical charts, world aeronautical charts, sectional charts, etc. The image may show topographical features such as terrain elevations, ground features identifiable from altitude (rivers, dams, bridges, buildings, airports, beacons, landmarks, etc.), and information related to airspace classes, ground-based navigation aids, radio frequencies, longitude and latitude, navigation waypoints, navigation routes, etc. The flight chart file  208  may be associated with metadata such as flight chart name (e.g., “Omaha Eppley Airfield”), flight chart type (e.g., terminal, en-route, world aeronautical, etc.), flight chart location, etc. 
     A plurality of modules (e.g., program instructions)  210 ,  212 ,  214 , and  216  stored on the memory  206  may process the flight chart file  208 . The modules  210 ,  212 ,  214 , and  216  may be submodules of a flight chart processing module. The flight chart processing module may be substantially similar or substantially identical to the Electronic Charts Application Tool Suite developed by Collins Aerospace (Cedar Rapids, Iowa), and may be configured to convert an original flight chart file (in PDF, CSV, SVG, etc.) to a converted flight chart file (e.g., in PDF or SVG), process and simplify the flight chart file, convert the flight chart file to aircraft display hardware directives, and compress the aircraft display hardware directives. 
     The module  210  may be configured to detect a font character size of one or more font characters (e.g., after the detection of the font character using an image recognition algorithm configured to identify flight chart elements) in the flight chart file  208 . For example, the font character size of each font character may be detected as 12 point, 24 point, 48 point, 72 point, etc. The detected font character size may be of from 1 point to 1638 pixels or more. 
     The module  212  may be configured to associate a threshold zoom level with each font character based on the respective font character size. For example, for a 12 point font character, the associated threshold zoom level may be set to 1.25 times the baseline zoom level (125% magnification, where the baseline zoom level is 100% magnification). In contrast, for larger characters such as a 48 point font character, the associated threshold zoom level may be set to 2.0 times the baseline zoom level (200% magnification). The threshold zoom level associated with each font character (determined off-line on the host computing device  202 ) may be used to set the respective font character as filled or stroked (determined at run-time on the aircraft computing device  218 ). 
     The term “zoom level” may be regarded as the scaling applied to render the flight chart on the aircraft display  228 . At the baseline zoom level (100% magnification) each pixel of the flight chart is represented as 100% of a pixel on the display  228 . At 2.0 times the baseline zoom level (200%), each pixel of the image is represented as 200% of a pixel on the display  228  (2 pixels vertically and 2 pixels horizontally), and therefore is displayed as 4 pixels on the aircraft display  228 . At 0.5 times the baseline zoom level (50%), each pixel of the image is represented as 50% of a screen pixel on the display  228 , such that a single pixel of the aircraft display  228  represents 4 pixels in the image (since the image pixels are scaled 50% horizontally and vertically). 
     The module  214  may be configured to replace the font character(s) with one or more font character references in the flight chart file  208 . Each of the font character reference(s) may be a name or container that calls font character values (e.g., pixel locations and pixel values) stored in the flight chart file  208 . In this way, the font character reference(s) may be pointers that store memory addresses, and the memory addresses in turn may store the actual font character values (i.e., indirection). The font character reference(s) reduce the size of the flight chart file  208  and conserve the resources of the memory  222  of the aircraft computing device  218  (e.g., after the flight chart file  208  is converted to aircraft display hardware directives). The font character reference(s) may also be associated with the respective threshold zoom level determined by the module  212 . 
     The module  216  may convert the flight chart file  208  to a flight chart defined in aircraft display hardware directives. Each of the aircraft display hardware directives may have a 32 bit form with 8 bits allocated to an opcode (e.g., that specifies a graphic operation to be performed, such as DRAW, MOVE, SETCOLOR) and 24 bits allocated to pixel data and pixel address (e.g., color of pixel(s), location of pixel(s), etc.). The aircraft display hardware directives may be quickly and easily displayed to a pilot on the aircraft display  228 . The aircraft display hardware directives may decrease loading times and conserve processing and memory resources of the aircraft computing device  218  (since PDF or SVG flight chart files are too large to store on the memory  222  of the aircraft computing device  218 , and may require long loading times to display on the aircraft display  228 ). 
     The flight chart file defined in aircraft display hardware directives may then be loaded on the memory  222  of the aircraft computing device  218 . The module  224  may be configured to detect a current zoom level of the aircraft display  228 . The current zoom level of the aircraft display  228  may be set by a user of the aircraft (for example, using a button, a knob, a mouse, a keyboard, etc.). 
     The module  224  may be configured to compare the respective threshold zoom level of a font character reference to the current zoom level, and based on the comparison, set a drawing mode (of the font character reference) as a filled character mode or a stroked character mode. For example, if the current zoom level is greater than the respective threshold zoom level, the drawing mode of the respective font character reference may be set as a filled character mode. Otherwise, if the current zoom level is less than the respective threshold zoom level, the drawing mode of the respective font character reference may be set as a stroked character mode. 
     The module  226  may be configured to draw a referenced character of a font character reference based on the drawing mode. The referenced character may comprise font character values stored in a memory address on the memory  222  (stored separately from the flight chart). If the drawing mode is set as the filled character mode, the referenced character is presented as a filled character on the aircraft display  228 . Otherwise, if the drawing mode is set as the stroked character mode, the referenced character is presented as a stroked character on the aircraft display  228 . It is noted that the filled character may be drawn on the flight display  228  using a plurality of filled triangles, and the stroked character may be drawn on the flight display  228  using a plurality of line segments. Additionally or alternatively, the filled character may be drawn using a plurality of lines (for example, wide lines may be used for smaller fill regions instead of the plurality of triangles). 
       FIG.  3    is a conceptual diagram illustrating the program flow of modules  223 ,  224 , and  226  that draw a font character as filled or stroked based on a detected font character size, in accordance with one or more embodiments of the present disclosure. The module  223  may first call the module  224  to set the drawing mode of the font character reference. Then, the module  223  may call the module  226  to draw the referenced character as stroked or filled based on the drawing mode of the font character reference. Checking the drawing mode within the module  226  saves memory space since multiple Boolean checks, relocation of stylus position, and matrix manipulation only occurs once per font character size (for example, once for all of the 12 point font characters) instead of once per font character (instead of once per 12 point “A,” once per 12 point “B,” and so on, which is computationally costly). Additionally, for sequences of identically sized font characters, the module  224  does not have to be called repeatedly since the drawing mode remains set (as a Boolean value). 
       FIG.  4    is a flowchart illustrating a method  300  for flight chart font character scaling, in accordance with one or more embodiments of the present disclosure. The method  300  may be implemented by the system  200  as described with respect to  FIGS.  2  and  3   . Steps  310 ,  320 ,  330 , and  340  may be performed using a host computing device (e.g., host computing device  202  described with respect to  FIG.  2   ), and steps  350 ,  260  and  370  may be performed using an aircraft computing device (e.g., aircraft computing device  218  described with respect to  FIG.  2   ) 
     At step  310 , a font character size of one or more font characters may be detected in a flight chart file. For example, the font character size of each font character may be detected as 12 point, 24 point, 48 point, 72 point, etc. The detected font character size may be of from 1 point to 1638 pixels or more. 
     At step  320 , a threshold zoom level may be associated with each font character based on the respective font character size. For example, for a 12 point font character, the associated threshold zoom level may be set to 1.25 times the baseline zoom level (125% magnification, where the baseline zoom level is 100% magnification). In contrast, for larger characters such as a 48 point font character, the associated threshold zoom level may be set to 2.0 times the baseline zoom level (200% magnification). The threshold zoom level associated with each font character (determined off-line on the host computing device) may be used to set the respective font character as filled or stroked (determined at run-time on the aircraft computing device). 
     At step  330 , the one or more font characters may be replaced with one or more font character references in the flight chart file. Each of the font character references may be a name or container that calls font character values (e.g., pixel locations and pixel values) stored in the flight chart file. In this way, the font character references may be pointers that store memory addresses (in other words, a form of indirection), and the memory addresses in turn may store the actual font character values. The font character reference(s) may also be associated with the respective threshold zoom level determined by the module  212 . 
     At step  340 , the flight chart file may be converted to a flight chart defined in aircraft display hardware directives. Each of the aircraft display hardware directives may have a 32 bit form with 8 bits allocated to an opcode (e.g., that specifies a graphic operation to be performed, such as DRAW, MOVE, SETCOLOR) and 24 bits allocated to pixel data and pixel address (e.g., color of pixel(s), location of pixel(s), etc.). 
     At step  350 , the flight chart file defined in aircraft display hardware directives may then be loaded on the memory of the aircraft computing device. A current zoom level of an aircraft display may be detected. The current zoom level of the aircraft display may be set by a user of the aircraft (for example, using a button, a knob, a mouse, a keyboard, etc.). 
     At step  360 , the respective threshold zoom level of a font character reference may be compared to the current zoom level, and based on the comparison, a drawing mode (of the font character reference) may be set as a filled character mode or a stroked character mode. For example, if the current zoom level is greater than the respective threshold zoom level, the drawing mode of the respective font character reference may be set as a filled character mode. Otherwise, if the current zoom level is less than the respective threshold zoom level, the drawing mode of the respective font character reference may be set as a stroked character mode. 
     At step  370 , a referenced character of the font character reference may be drawn based on the drawing mode. The referenced character may comprise font character values stored in a memory address on the memory of the aircraft computing device (stored separately from the flight chart). If the drawing mode is set as the filled character mode, the referenced character is presented as a filled character on the aircraft display. Otherwise, if the drawing mode is set as the stroked character mode, the referenced character is presented as a stroked character on the aircraft display. The filled character may be drawn on the flight display using a plurality of filled triangles and/or a plurality of lines (for example, wide lines may be used for smaller filled regions, while filled triangles may be used for larger filled regions). The stroked character may be drawn on the flight display using a plurality of line segments. 
     It is believed that the present disclosure and many of its attendant advantages will be understood by the foregoing description, and it will be apparent that various changes may be made in the form, construction and arrangement of the components without departing from the disclosed subject matter or without sacrificing all of its material advantages. The form described is merely explanatory, and it is the intention of the following claims to encompass and include such changes. Furthermore, it is to be understood that the invention is defined by the appended claims.