Server-Side Font Rendering via Pre-Rendered Image Caching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Web-based applications face significant processing time issues when rendering outline fonts on the server side, as each character of the font must be generated from vector data, which is a computer-intensive process, especially when users access from client operating systems lacking desirable fonts.
Innovation Solution
A system and method for storing pre-rendered font image data in a history-based order on the server side, involving acquiring vector data, rendering font images, and storing them on networked memory, allowing for efficient communication and use of fonts across different operating systems and browsers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If font data is stored and retrieved on the server side, then users can access different typefaces, sizes, and languages across different operating systems, but processing time increases significantly
Solution Approach 1:
The patent pre-renders font images for common characters and stores them on the server before they are needed. When a font request arrives, the server checks if the required font images are already in memory and serves them directly, avoiding time-consuming vector-to-image conversion at request time. This preliminary preparation resolves the contradiction by trading initial processing time for significantly faster subsequent font delivery across diverse operating systems.
2Manufacturing precision
If outline fonts are rendered from vector data on demand, then font scalability and quality are maintained, but the process becomes computer intensive and slow
Solution Approach 1:
The patent creates bitmap copies of vector font data by pre-rendering font images at various sizes and resolutions. These pre-generated image copies are stored in memory and served directly to clients, eliminating the need for real-time vector rendering. This copying approach maintains font quality by using high-resolution pre-rendered images while dramatically improving rendering speed by avoiding computationally intensive vector-to-bitmap conversion during request processing.
Solution Approach 2:
The system performs font rendering in advance and stores the rendered images in a cache memory on the server. When font requests arrive, the pre-rendered images are retrieved and transmitted without requiring real-time vector processing. This preliminary action resolves the contradiction between rendering quality and speed by shifting the computational burden from request time to idle server time.
3Loss of time
If font images are pre-rendered and stored on the server, then processing time for font requests decreases, but server memory requirements increase
Solution Approach 1:
The patent implements a caching mechanism that dynamically manages font image storage based on usage frequency and recency (LRU - Least Recently Used algorithm). The system monitors which font images are actually requested and keeps only those in memory, evicting less frequently used images when memory capacity is reached. This parameter-based management resolves the contradiction by adapting memory allocation to actual usage patterns, reducing unnecessary memory consumption while maintaining fast access for commonly used fonts.
Data Source
AI summary
This invention is directed to a system and method for storing font image data, which is already rendered, in a history-based order on the server side. This avoids the server side processing time to render the font every time a request is received. This allows users to use many server side fonts that users may not have on their client workstations. In the method, the user uses a web browser to choose a font type, size, and style from a list of available fonts installed on the server. The system then determines if the selected font exists in the font repository. If the font exists, the system retrieves the font images from the font repository. If the font does not exist, the system creates the font images and stores the font images to the font repository.


