CGI has two different meanings: 1) Common Gateway Interface, and 2) Computer Generated Imagery.
1) Common Gateway Interface
The Common Gateway Interface (CGI) is a set of rules for running scripts and programs on a Web server. It specifies what information is communicated between the Web server and clients’ Web browsers and how the information is transmitted.
Most Web servers include a cgi-bin directory in the root folder of each website on the server. Any scripts placed in this directory must follow the rules of the Common Gateway Interface. For example, scripts located in the cgi-bin directory may be given executable permissions, while files outside the directory may not be allowed to be executed. A CGI script may also request CGI environment variables, such as SERVER_PROTOCOL and REMOTE_HOST, which may be used as input variables for the script.
Since CGI is a standard interface, it can be used on multiple types of hardware platforms and is supported by several types Web server software, such as Apache and Windows Server. CGI scripts and programs can also be written in several different languages, such as C++, Java, and Perl. While many websites continue to use CGI for running programs and scripts, developers now often include scripts directly within Web pages. These scripts, which are written in languages such as PHP and ASP, are processed on the server before the page is loaded, and the resulting data is sent to the user’s browser.
2) Computer Generated Imagery
In the computer graphics world, CGI typically refers to Computer Generated Imagery. This type of CGI refers to 3D graphics used in film, TV, and other types of visual media. Most modern action films include at least some CGI for special effects, while other movies, such as a Pixar animated films, are built completely from computer generated graphics.
Image Scaling Definition
Image scaling is the process of resizing a digital image. Scaling down an image makes it smaller while scaling up an image makes it larger. Both raster graphics and vector graphics can be scaled, but they produce different results.
Raster Image Scaling
A raster graphic is a bitmap image comprised of individual pixels. Examples include JPEG and PNG files. The process of scaling raster graphics is also called “resampling,” in which pixels are mapped to a new grid, which may be smaller or larger than the original matrix.
Scaling down a raster graphic may cause a slight decrease in image quality since the pixels are squeezed into a smaller grid. Colors must be blended and edges are often smoothed out using a process called anti-aliasing. A good image scaling algorithm or “scaler” will keep most of the image detail when scaling down an image. The further an image is scaled down, the less detail can be maintained.
Scaling up a raster graphic also decreases the image quality. Generally, increasing the size of a digital image will cause it to look blurry. The larger the image is scaled, the fuzzier it will appear. Anti-aliasing can be used to smooth out the edges, but a scaled-up image will not look as clear as the original image.
Vector Image Scaling
Vector graphics, such as an .SVG or .AI file, are comprised of points and lines, also called paths. These paths can be scaled up or down with no loss of quality. Instead of mapping pixels to another grid, vector image scaling simply moves the points within the image.
Since vector graphics are not defined by pixels, they appear sharp at both small and large sizes. For this reason, company logos and application icons are often designed as vector graphics. When published in a software application or website, the images can be scaled to a specific size and then saved as a raster graphic.
NOTE: “Video Upscaling” is the process of scaling video for a higher-resolution display. The goal is to make a lower-resolution video look sharp at a higher resolution. For example, an HD video might be upscaled to 4K. A good upscaling algorithm will keep as much detail as possible at the higher resolution, but cannot make the video look as sharp as a video originally recorded in 4K.
Snapchat is a mobile app and service for sharing photos, videos, and messages with other people. Once you view a message received via Snapchat, it is automatically deleted. This makes the service ideal for sharing quick updates with friends without accumulating media or messages on your mobile device.
The Snapchat app is available for iOS and Android devices. Once you download and install the app, you can create an account and add friends. You can then take a “snap” and send it to one or more of the people in your friends list. You can also use Snapchat to send quick text messages that disappear once the recipient reads them.
To take a photo in Snapchat, simply tap the capture button while the camera is active. To take a video, hold down the button for a few seconds to record a short clip. Once you’ve captured your photo or video, you can swipe right or left to apply filters or add other effects. You can tap the “T” icon in the upper right to add text and tap the pencil icon to select a color and draw on your snap before sending it. If you’re taking a selfie, you can press and hold on your face before capturing the shot. This will allow the app to detect your face and you can apply fun effects to your selfie before sending it.
Snapchat allows you to send snaps directly to specific friends or share them with all your friends by adding them to your “Story.” After you capture a photo or video, you can tap the “+” icon near the bottom of the screen to add the snap to your story. Your friends can view the images and videos you’ve added for 24 hours after you publish them. You can also view your friends’ stories by swiping to the Stories screen within the app.
An algorithm is a set of instructions designed to perform a specific task. This can be a simple process, such as multiplying two numbers, or a complex operation, such as playing a compressed video file. Search engines use proprietary algorithms to display the most relevant results from their search index for specific queries.
In computer programming, algorithms are often created as functions. These functions serve as small programs that can be referenced by a larger program. For example, an image viewing application may include a library of functions that each use a custom algorithm to render different image file formats. An image editing program may contain algorithms designed to process image data. Examples of image processing algorithms include cropping, resizing, sharpening, blurring, red-eye reduction, and color enhancement.
In many cases, there are multiple ways to perform a specific operation within a software program. Therefore, programmers usually seek to create the most efficient algorithms possible. By using highly-efficient algorithms, developers can ensure their programs run as fast as possible and use minimal system resources. Of course, not all algorithms are created perfectly the first time. Therefore, developers often improve existing algorithms and include them in future software updates. When you see a new version of a software program that has been “optimized” or has “faster performance,” it most means the new version includes more efficient algorithms.
App is short for “application,” which is the same thing as a software program. While an app may refer to a program for any hardware platform, it is most often used to describe programs for mobile devices, such as smartphones and tablets.
The term “app” was popularized by Apple when the company created the “App Store” in 2008, a year after the first iPhone was released. As the iPhone and App Store grew in popularity, the term “app” became the standard way to refer to mobile applications. Programs for Android and Windows Phone are now called “apps” as well.
Unlike applications for traditional PCs (often called “desktop applications”), mobile apps can only be obtained by downloading them from an online app store. Most devices automatically install apps when downloaded, which creates a seamless installation process for the user. Some apps are free, while others must be purchased. However, mobile apps are typically much cheaper than PC applications, and many are available for only 99 cents. In fact, most paid apps are less than $10.
Part of the reason mobile apps are cheaper than desktop applications is because they are often less advanced and take less resources to develop. Apps are limited to the capabilities of the mobile operating system (such as iOS or Android) and therefore may not offer as much functionality as a desktop program. For example, a word processor for Android will most likely have significantly less features than a word processing application for Windows. Most apps are designed to be small, fast, and easy-to-use. Unlike desktop applications, apps are intended to be used on-the-go and are developed to advantage of a small touchscreen interface.
NOTE: Apple released the Mac App Store in January, 2011, which offers downloadable applications for Mac OS X. In this case, the term “app” refers to desktop applications.
Raw Data Definition
Raw data is unprocessed computer data. This information may be stored in a file, or may just be a collection of numbers and characters stored on somewhere in the computer’s hard disk. For example, information entered into a database is often called raw data. The data can either be entered by a user or generated by the computer itself. Because it has not been processed by the computer in any way, it is considered to be “raw data.” To continue the culinary analogy, data that has been processed by the computer is sometimes referred to as “cooked data.”
A sprite is a bitmap graphic that is designed to be part of a larger scene. It can either be a static image or an animated graphic. Examples of sprites include objects in 2D video games, icons that are part of an application user interface, and small images published on websites.
In the 1980s and for most of the 1990s, sprites were the standard way to integrate graphics into video games. Graphic artists created small 2D images that were used to represent characters and other objects. Developers referenced these sprites in the source code and assigned properties such as when the sprites were displayed and how they interacted with other sprites. For example, in a side-scroller, such as Super Mario Bros, the sprite of an enemy Koopa would turn into a flattened Koopa when Super Mario jumped on it. Today, some video games still use 2D sprites, but most mainstream games use 3D polygons instead. Since computers and gaming consoles now have dedicated 3D video cards, they can actually render 3D objects more efficiently than 2D sprites.
While sprites have become less common in modern video games, they are still used by software developers for other purposes. For example, sprites are often used to add buttons, symbols, and other user interface elements to software programs. Developers can attach actions to sprites within the user interface, such as playing an animation or changing the current view of the window when the sprite is clicked. Sprites are especially useful for adding custom graphics that are not natively supported by the operating system’s API.
Sprites are also used on the Web for navigation buttons and for adding visual appeal to webpages. In recent years, sprite sheets have become a popular way for web developers to load website graphics. By combining a large number of sprites into a single image, all the sprites can be downloaded and cached by a user’s browser with a single request to the server. The images are then displayed using CSS properties that define the locations of individual sprites within the image.
Stands for “Frames Per Second.” FPS is used to measure frame rate – the number of consecutive full-screen images that are displayed each second. It is a common specification used in video capture and playback and is also used to measure video game performance.
On average, the human eye can process 12 separate images per second. This means a frame rate of 12 FPS can display motion, but will appear choppy. Once the frame rate exceeds 12 FPS, the frames appear less discrete and start to blur together. A frame rate of 24 FPS is commonly used for film since it creates a smooth appearance. Many video cameras record in 30 or 60 FPS, which provides even smoother motion.
The 60i (60 FPS, interlaced) format was used for NTSC broadcasts and was replaced by the 60p (60 FPS, progressive scan) with HDTV. This means HDTV not only provides a higher resolution than NTSC, but also yields smoother playback. In order to take advantage of higher frame rates, the display on which the video is output must support a refresh rate that is at least as high as the frame rate. That is why most televisions and monitors support refresh rates of at least 60 hertz.
FPS is also used to measure the frame rate of video games. The maximum frame rate is generally determined by a combination of the graphics settings and the GPU. For example, if you are running a new game on an old computer, you may have to reduce the quality of the graphics to maintain a high frame rate. If you have a new computer with a powerful video card, you may be able to increase the graphics settings without reducing the FPS.
While some games limit the maximum frame rate, it is not uncommon for a powerful GPU to generate over 100 FPS. For a game to be playable without any lag, it helps to make sure the game maintains over 60 FPS even when a lot is happening on the screen. Therefore, it is wise to configure your graphics settings conservatively to avoid choppy gameplay.
NOTE: FPS is also a common abbreviation for “First Person Shooter,” a type of 3D video game that gives you the perspective of the main character.
Clip Art Definition
Clip art is a collection of pictures or images that can be imported into a document or another program. The images may be either raster graphics or vector graphics. Clip art galleries many contain anywhere from a few images to hundreds of thousands of images.
Clip art is typically organized into categories, such as people, objects, nature, etc., which is especially helpful when browsing through thousands of images. Most clip art images also have keywords associated with them. For example, a picture of a female teacher in a classroom may have the keywords “school,” “teacher,” “woman,” “classroom,” and “students” associated with it. Most clip art programs allow you to search for images based on these keywords.
When you find a clip art image you want to use, you can copy it to your computer’s clipboard and paste it into another program, such as Photoshop or Microsoft Word. You may also be able to export the image to the Desktop or another folder on your hard disk. Most clip art is royalty free, meaning you can use the images without paying royalties to the creators of the images. So if you buy a clip art package with 50,000 images for $50.00, you are only paying 1/10 of one cent for each image. That’s a pretty good deal.