Surface Compression Using Dynamic Color Palettes

Total Page:16

File Type:pdf, Size:1020Kb

Surface Compression Using Dynamic Color Palettes Surface Compression Using Dynamic Color Palettes Ayub A. Gubran Felix Huang Tor M. Aamodt University of British Columbia Carnegie Mellon University University of British Columbia Vancouver, BC, Canada Pittsburgh, PA, United States Vancouver, BC, Canada [email protected] [email protected] [email protected] ABSTRACT framebuffer surfaces, which are composited to a single Off-chip memory traffic is a major source of power and surface for screen display. Also GPUs can use frame- energy consumption on mobile platforms. A large amount buffer surfaces as inputs to additional rendering stages, of this off-chip traffic is used to manipulate graphics e.g., render to texture and deferred shading; as a result, framebuffer surfaces. To cut down the cost of accessing any given application may utilize one or more frame- off-chip memory, framebuffer surfaces are compressed buffer surfaces. to reduce the bandwidth consumed on surface manipu- This work studies a large set of Android workloads to lation when rendering or displaying. infer the compression properties of framebuffer surfaces In this work, we study the compression properties generated by mobile UI, 2D and 3D applications. Our of framebuffer surfaces and highlight the fact that sur- study found that framebuffers from different classes of faces from different applications have different compres- workloads have different compression properties. We sion characteristics. We use the results of our analysis exploit these properties to propose an effective palette- to propose a scheme, Dynamic Color Palettes (DCP), based framebuffer compression scheme that focuses on which achieves higher compression rates with UI and common UI and 2D applications. In addition, we ex- 2D surfaces. ploit temporal coherence in graphics, where applications DCP is a hardware mechanism for exploiting inter- exhibit minor changes between frames that can be ex- frame coherence in lossless surface compression; it im- ploited for compression. plements a scheme that dynamically constructs color Using temporal coherence, and by focusing on com- palettes, which are then used to efficiently compress mon uses cases, we propose and evaluate our Dynamic framebuffer surfaces. To evaluate DCP, we created an Color Palettes (DCP) technique. DCP uses palette based extensive set of OpenGL workload traces from 124 An- compression and focuses on reducing the traffic caused droid applications. We found that DCP improves com- by framebuffer operations in UI and 2D applications. pression rates by 91% for UI and 20% for 2D applica- To evaluate our compression scheme, we created an ex- tions compared to previous proposals [1, 2]. We also tensive set of workloads from 124 Android applications. evaluate a hybrid scheme that combines DCP with a We show that by combining DCP with other compres- generic compression scheme [1], and found that com- sion techniques [1], DCP is able to improve compression pression rates improve over previous proposals [1, 2] by rates between 83% and 161% across UI, 2D and 3D ap- 161%, 124% and 83% for UI, 2D and 3D applications, plications. respectively. This paper makes the following contributions: 1. Characterizes compression properties of framebuffer arXiv:1903.06658v1 [cs.GR] 19 Jan 2019 1. INTRODUCTION surfaces from user-interface (UI) as well as non-UI Off-chip memory traffic, including that of framebuffer 2D and 3D applications; surfaces, is one of the major sources of power consump- tion on mobile systems-on-chip (SoCs). In some cases, 2. Uses characterization results to propose and eval- the energy consumption to access data on the off-chip uate dynamic color palettes (DCP), a compression memory can dominate that from computations [3]. In technique that offers higher compression rates for this work, we study the properties of framebuffer sur- common UI and non-UI 2D applications; faces and propose a set of unique compression tech- niques to reduce the bandwidth consumed by frame- 3. Proposes two DCP variations that dynamically choose buffer operations. an optimal palette size based on the frequencies of In graphics rendering, a framebuffer surface is an off- the values in color palettes; chip memory space that contains pixels generated by the graphics processing unit (GPU) and then used by 4. Evaluate our compression schemes using an exten- the display controller to read pixels to the screen. In sive set of workloads created from the OpenGL some cases, the display controller operates on multiple traces of 124 Android applications. Legends Refresh rates vary by App Level Application 1 Application 2 Application 3 application and user OS Level activity OS Graphics Libraries / Graphic API calls HW Level CPU (Software Rendering) / GPU (Hardware Rendering) Device Screen Compression! Compression! @ screen refresh 1 rate (i.e., 60 FPS) Render Framebuffer 1 Render Framebuffer 2 Render Framebuffer 3 Compression! Called upon Display updating any 2 Controller of the System Compositor (e.g., GPU or CPU Display framebuffer 3 framebuffers Android’s SurfaceFlinger) Composition Figure 1: The life-cycle of a surface from rendering to display. In 1 , applications render to their corresponding framebuffers. In 2 , a compositor combines the surfaces generated by different applications. In 3 , the composited surface is used and displayed on the screen by the display controller. 2. BACKGROUND AND RELATED WORK Surface compression differs from texture compression in that both encoding, as well as decoding, are per- 2.1 The life-cycle of a framebuffer surface formed in real-time. Also opposite to surface compres- Figure 1 summarizes the life-cycle of a frame surface sion schemes, most texture compression algorithms are in contemporary mobile systems (Android Ice Cream lossy [6, 11, 12]. Sandwich 4.0 and later [4]). Another crucial aspect of surface compression is ran- Figure 1 shows a typical scenario of drawing mul- dom accessibility. Techniques like Run-Length Encod- tiple surfaces simultaneously from multiple processes: ing (RLE) are unable to provide such accessibility. How- the status bar, Facebook, and the navigation bar. Each ever, it important to be able to randomly access a sur- process independently renders to its own surface ( 1 ); face when used for sampling (e.g., used as a texture), for example, Facebook renders a new surface when the resizing, or composition. Compression algorithms have user scrolls or clicks, while the navigation bar updates used block-based schemes to enable random access for the corresponding surface when the user clicks on one their simplicity and practicality. Block-based compres- of its buttons. sion mechanisms define preconfigured compression sizes For display, a system compositor, such as Surface- that allow random access to compressed surfaces. Block- Flinger [4] in Android, combines surfaces from multiple based mechanisms have been used for compressing inte- applications before sending them to the screen ( 2 ). ger (e.g., RGBA) surfaces [1], floating-point surfaces [13, The compositor actively monitors the surfaces of all ap- 14] and depth buffers [9, 14]. plications and when a process updates a surface, the The work by Rasmusson et al. [1] (which we refer compositor subsequently updates the composited sur- to by RAS) evaluated several surface compression pro- face. Simultaneously, the display controller hardware posals [15, 16, 17] and compared them against their continuously reads the composited surface to the screen technique. RAS is a lossless block-based compression at 60 frames per second (FPS) or higher ( 3 ). Note that technique for integer buffers that encodes the difference because using the same surface for updates and screen between adjacent pixel values. RGB pixels are con- refresh operations can cause artifacts, such as flickering verted to the Y cocg (luminance-chrominance) format, and tearing, double (or triple) buffering is used [5]. to increase compression efficiency. We compare against The example in Figure 1 shows how a surface can be RAS in this paper since it reports better compression used and re-used multiple times and this is why it is results versus prior work. important to reduce the overhead of framebuffer ma- We also evaluate our scheme against the compression nipulation through compression. scheme proposed by Nvidia [2]. In this scheme, for each block going to memory, the algorithm checks if 4×2 2.2 Surface compression techniques pixels in sub-blocks within a block are identical. If so, Surface compression is used to reduce off-chip mem- the block is compressed 1:8. When that is not possible, ory traffic, which can improve performance and/or re- the algorithm then checks if 2×2 regions have identical duce energy consumption. Graphics pipeline implemen- colors, if so the block is compressed 1:4, otherwise the tations utilize compression for textures [6], surfaces [1, block remains uncompressed. This algorithm works well 7, 8], depth [9] and vertex data [10]. with regions of identical color values, as the case with Many of the compression techniques use lossy com- UI surfaces. pression as well on lossless compression. For framebuffer Other compression work includes the work by Daniel- surfaces, lossless compression is used to avoid error ac- son [18], which proposes using a dictionary-based com- cumulation upon reading then re-writing surfaces (as is pression in which the operating system and/or program the case with composition). specify the colors to configure a dictionary. In contrast to Danielson's work, our work exploits temporal co- In this work, we focus on developing an effective scheme herence to dynamically construct dictionaries (palettes) for compressing UI and 2D framebuffer surfaces. The avoiding the need for software changes. reason for this choice is that studies found users to Another work by Shim et al. [19] use a dictionary- spend 70% of their time running UI applications [21, based compression mechanism targeted at display buffer 22], where over half of the time is spent on web brows- compression. Shim et al.'s approach compresses sur- ing, messaging and social media alone.
Recommended publications
  • High End Visualization with Scalable Display System
    HIGH END VISUALIZATION WITH SCALABLE DISPLAY SYSTEM Dinesh M. Sarode*, Bose S.K.*, Dhekne P.S.*, Venkata P.P.K.*, Computer Division, Bhabha Atomic Research Centre, Mumbai, India Abstract display, then the large number of pixels shows the picture Today we can have huge datasets resulting from in greater details and interaction with it enables the computer simulations (CFD, physics, chemistry etc) and greater insight in understanding the data. However, the sensor measurements (medical, seismic and satellite). memory constraints, lack of the rendering power and the There is exponential growth in computational display resolution offered by even the most powerful requirements in scientific research. Modern parallel graphics workstation makes the visualization of this computers and Grid are providing the required magnitude difficult or impossible. computational power for the simulation runs. The rich While the cost-performance ratio for the component visualization is essential in interpreting the large, dynamic based on semiconductor technologies doubling in every data generated from these simulation runs. The 18 months or beyond that for graphics accelerator cards, visualization process maps these datasets onto graphical the display resolution is lagging far behind. The representations and then generates the pixel resolutions of the displays have been increasing at an representation. The large number of pixels shows the annual rate of 5% for the last two decades. The ability to picture in greater details and interaction with it enables scale the components: graphics accelerator and display by the greater insight on the part of user in understanding the combining them is the most cost-effective way to meet data more quickly, picking out small anomalies that could the ever-increasing demands for high resolution.
    [Show full text]
  • Opengl Distilled / Paul Martz
    Page left blank intently OpenGL® Distilled By Paul Martz ............................................... Publisher: Addison Wesley Professional Pub Date: February 27, 2006 Print ISBN-10: 0-321-33679-8 Print ISBN-13: 978-0-321-33679-8 Pages: 304 Table of Contents | Inde OpenGL opens the door to the world of high-quality, high-performance 3D computer graphics. The preferred application programming interface for developing 3D applications, OpenGL is widely used in video game development, visuali,ation and simulation, CAD, virtual reality, modeling, and computer-generated animation. OpenGL® Distilled provides the fundamental information you need to start programming 3D graphics, from setting up an OpenGL development environment to creating realistic te tures and shadows. .ritten in an engaging, easy-to-follow style, this boo/ ma/es it easy to find the information you0re loo/ing for. 1ou0ll quic/ly learn the essential and most-often-used features of OpenGL 2.0, along with the best coding practices and troubleshooting tips. Topics include Drawing and rendering geometric data such as points, lines, and polygons Controlling color and lighting to create elegant graphics Creating and orienting views Increasing image realism with te ture mapping and shadows Improving rendering performance Preserving graphics integrity across platforms A companion .eb site includes complete source code e amples, color versions of special effects described in the boo/, and additional resources. Page left blank intently Table of contents: Chapter 6. Texture Mapping Copyright ............................................................... 4 Section 6.1. Using Texture Maps ........................... 138 Foreword ............................................................... 6 Section 6.2. Lighting and Shadows with Texture .. 155 Preface ................................................................... 7 Section 6.3. Debugging .......................................... 169 About the Book ....................................................
    [Show full text]
  • Indexed Color
    Indexed Color A browser may support only a certain number of specific colors, creating a palette from which to choose Figure 3.11 The Netscape color palette 1 QUIZ How many bits are needed to represent this palette? Show your work. 2 How to digitize a picture • Sample it → Represent it as a collection of individual dots called pixels • Quantize it → Represent each pixel as one of 224 possible colors (TrueColor) Resolution = The # of pixels used to represent a picture 3 Digitized Images and Graphics Whole picture Figure 3.12 A digitized picture composed of many individual pixels 4 Digitized Images and Graphics Magnified portion of the picture See the pixels? Hands-on: paste the high-res image from the previous slide in Paint, then choose ZOOM = 800 Figure 3.12 A digitized picture composed of many individual pixels 5 QUIZ: Images A low-res image has 200 rows and 300 columns of pixels. • What is the resolution? • If the pixels are represented in True-Color, what is the size of the file? • Same question in High-Color 6 Two types of image formats • Raster Graphics = Storage on a pixel-by-pixel basis • Vector Graphics = Storage in vector (i.e. mathematical) form 7 Raster Graphics GIF format • Each image is made up of only 256 colors (indexed color – similar to palette!) • But they can be a different 256 for each image! • Supports animation! Example • Optimal for line art PNG format (“ping” = Portable Network Graphics) Like GIF but achieves greater compression with wider range of color depth No animations 8 Bitmap format Contains the pixel color
    [Show full text]
  • A New Steganographic Method for Palette-Based Images
    IS&T's 1999 PICS Conference A New Steganographic Method for Palette-Based Images Jiri Fridrich Center for Intelligent Systems, SUNY Binghamton, Binghamton, New York Abstract messages. The gaps in human visual and audio systems can be used for information hiding. In the case of images, the In this paper, we present a new steganographic technique human eye is relatively insensitive to high frequencies. This for embedding messages in palette-based images, such as fact has been utilized in many steganographic algorithms, GIF files. The new technique embeds one message bit into which modify the least significant bits of gray levels in one pixel (its pointer to the palette). The pixels for message digital images or digital sound tracks. Additional bits of embedding are chosen randomly using a pseudo-random information can also be inserted into coefficients of image number generator seeded with a secret key. For each pixel transforms, such as discrete cosine transform, Fourier at which one message bit is to be embedded, the palette is transform, etc. Transform techniques are typically more searched for closest colors. The closest color with the same robust with respect to common image processing operations parity as the message bit is then used instead of the original and lossy compression. color. This has the advantage that both the overall change The steganographer’s job is to make the secretly hidden due to message embedding and the maximal change in information difficult to detect given the complete colors of pixels is smaller than in methods that perturb the knowledge of the algorithm used to embed the information least significant bit of indices to a luminance-sorted palette, except the secret embedding key.* This so called such as EZ Stego.1 Indeed, numerical experiments indicate Kerckhoff’s principle is the golden rule of cryptography and that the new technique introduces approximately four times is often accepted for steganography as well.
    [Show full text]
  • Understanding Image Formats and When to Use Them
    Understanding Image Formats And When to Use Them Are you familiar with the extensions after your images? There are so many image formats that it’s so easy to get confused! File extensions like .jpeg, .bmp, .gif, and more can be seen after an image’s file name. Most of us disregard it, thinking there is no significance regarding these image formats. These are all different and not cross‐ compatible. These image formats have their own pros and cons. They were created for specific, yet different purposes. What’s the difference, and when is each format appropriate to use? Every graphic you see online is an image file. Most everything you see printed on paper, plastic or a t‐shirt came from an image file. These files come in a variety of formats, and each is optimized for a specific use. Using the right type for the right job means your design will come out picture perfect and just how you intended. The wrong format could mean a bad print or a poor web image, a giant download or a missing graphic in an email Most image files fit into one of two general categories—raster files and vector files—and each category has its own specific uses. This breakdown isn’t perfect. For example, certain formats can actually contain elements of both types. But this is a good place to start when thinking about which format to use for your projects. Raster Images Raster images are made up of a set grid of dots called pixels where each pixel is assigned a color.
    [Show full text]
  • Deconstructing Hardware Usage for General Purpose Computation on Gpus
    Deconstructing Hardware Usage for General Purpose Computation on GPUs Budyanto Himawan Manish Vachharajani Dept. of Computer Science Dept. of Electrical and Computer Engineering University of Colorado University of Colorado Boulder, CO 80309 Boulder, CO 80309 E-mail: {Budyanto.Himawan,manishv}@colorado.edu Abstract performance, in 2001, NVidia revolutionized the GPU by making it highly programmable [3]. Since then, the programmability of The high-programmability and numerous compute resources GPUs has steadily increased, although they are still not fully gen- on Graphics Processing Units (GPUs) have allowed researchers eral purpose. Since this time, there has been much research and ef- to dramatically accelerate many non-graphics applications. This fort in porting both graphics and non-graphics applications to use initial success has generated great interest in mapping applica- the parallelism inherent in GPUs. Much of this work has focused tions to GPUs. Accordingly, several works have focused on help- on presenting application developers with information on how to ing application developers rewrite their application kernels for the perform the non-trivial mapping of general purpose concepts to explicitly parallel but restricted GPU programming model. How- GPU hardware so that there is a good fit between the algorithm ever, there has been far less work that examines how these appli- and the GPU pipeline. cations actually utilize the underlying hardware. Less attention has been given to deconstructing how these gen- This paper focuses on deconstructing how General Purpose ap- eral purpose application use the graphics hardware itself. Nor has plications on GPUs (GPGPU applications) utilize the underlying much attention been given to examining how GPUs (or GPU-like GPU pipeline.
    [Show full text]
  • Content Aware Texture Compression
    Content Aware Texture Compression Yu-Cheng Chiu Yu-Shuen Wang Department of Computer Science Department of Computer Science National Chiao Tung University National Chiao Tung University HsinChu, Taiwan HsinChu Taiwan [email protected] [email protected] Abstract—Efficient and high quality texture compression is order to save memory and bandwidth consumption of texture important because computational powers are always limited, access. To implement this idea, we partition each texture especially for embedded systems such as mobile phones. To chart using a triangular mesh and warp the mesh to relocate access random texels instantly, down sampling and S3TC are the most commonly used methods due to the fixed compres- texels. Specifically, an importance value of each triangle sion ratio at every local region. However, the methods are is first computed by averaging the gradient magnitudes content oblivious, which uniformly discard texel information. of interior texels. Each triangle is then prevented from Therefore, we present content aware warp to reduce a texture squeezing according to its importance value when the texture resolution, where homogeneous regions are squeezed more to resolution is reduced. Since regions with high gradient texels retain more structural information. We then relocate texture coordinates of the 3D model as the way of relocating texels, such are less squeezed, more samples will be stored in the reduced that rendering the model with our compressed texture requires texture and more details will be retained. In contrast, texels no additional decompression cost. Our texture compression in homogeneous regions are discarded to reduce memory technique can cooperate with existing methods such as S3TC consumption.
    [Show full text]
  • AMD Radeon E8860
    Components for AMD’s Embedded Radeon™ E8860 GPU INTRODUCTION The E8860 Embedded Radeon GPU available from CoreAVI is comprised of temperature screened GPUs, safety certi- fiable OpenGL®-based drivers, and safety certifiable GPU tools which have been pre-integrated and validated together to significantly de-risk the challenges typically faced when integrating hardware and software components. The plat- form is an off-the-shelf foundation upon which safety certifiable applications can be built with confidence. Figure 1: CoreAVI Support for E8860 GPU EXTENDED TEMPERATURE RANGE CoreAVI provides extended temperature versions of the E8860 GPU to facilitate its use in rugged embedded applications. CoreAVI functionally tests the E8860 over -40C Tj to +105 Tj, increasing the manufacturing yield for hardware suppliers while reducing supply delays to end customers. coreavi.com [email protected] Revision - 13Nov2020 1 E8860 GPU LONG TERM SUPPLY AND SUPPORT CoreAVI has provided consistent and dedicated support for the supply and use of the AMD embedded GPUs within the rugged Mil/Aero/Avionics market segment for over a decade. With the E8860, CoreAVI will continue that focused support to ensure that the software, hardware and long-life support are provided to meet the needs of customers’ system life cy- cles. CoreAVI has extensive environmentally controlled storage facilities which are used to store the GPUs supplied to the Mil/ Aero/Avionics marketplace, ensuring that a ready supply is available for the duration of any program. CoreAVI also provides the post Last Time Buy storage of GPUs and is often able to provide additional quantities of com- ponents when COTS hardware partners receive increased volume for existing products / systems requiring additional inventory.
    [Show full text]
  • The Opengl Framebuffer Object Extension
    TheThe OpenGLOpenGL FramebufferFramebuffer ObjectObject ExtensionExtension SimonSimon GreenGreen NVIDIANVIDIA CorporationCorporation OverviewOverview •• WhyWhy renderrender toto texture?texture? •• PP--bufferbuffer // ARBARB renderrender texturetexture reviewreview •• FramebufferFramebuffer objectobject extensionextension •• ExamplesExamples •• FutureFuture directionsdirections WhyWhy RenderRender ToTo Texture?Texture? • Allows results of rendering to framebuffer to be directly read as texture • Better performance – avoids copy from framebuffer to texture (glCopyTexSubImage2D) – uses less memory – only one copy of image – but driver may sometimes have to do copy internally • some hardware has separate texture and FB memory • different internal representations • Applications – dynamic textures – procedurals, reflections – multi-pass techniques – anti-aliasing, motion blur, depth of field – image processing effects (blurs etc.) – GPGPU – provides feedback loop WGL_ARB_pbufferWGL_ARB_pbuffer •• PixelPixel buffersbuffers •• DesignedDesigned forfor offoff--screenscreen renderingrendering – Similar to windows, but non-visible •• WindowWindow systemsystem specificspecific extensionextension •• SelectSelect fromfrom anan enumeratedenumerated listlist ofof availableavailable pixelpixel formatsformats usingusing – ChoosePixelFormat() – DescribePixelFormat() ProblemsProblems withwith PBuffersPBuffers • Each pbuffer usually has its own OpenGL context – (Assuming they have different pixel formats) – Can share texture objects, display lists between
    [Show full text]
  • Order Independent Transparency in Opengl 4.X Christoph Kubisch – [email protected] TRANSPARENT EFFECTS
    Order Independent Transparency In OpenGL 4.x Christoph Kubisch – [email protected] TRANSPARENT EFFECTS . Photorealism: – Glass, transmissive materials – Participating media (smoke...) – Simplification of hair rendering . Scientific Visualization – Reveal obscured objects – Show data in layers 2 THE CHALLENGE . Blending Operator is not commutative . Front to Back . Back to Front – Sorting objects not sufficient – Sorting triangles not sufficient . Very costly, also many state changes . Need to sort „fragments“ 3 RENDERING APPROACHES . OpenGL 4.x allows various one- or two-pass variants . Previous high quality approaches – Stochastic Transparency [Enderton et al.] – Depth Peeling [Everitt] 3 peel layers – Caveat: Multiple scene passes model courtesy of PTC required Peak ~84 layers 4 RECORD & SORT 4 2 3 1 . Render Opaque – Depth-buffer rejects occluded layout (early_fragment_tests) in; fragments 1 2 3 . Render Transparent 4 – Record color + depth uvec2(packUnorm4x8 (color), floatBitsToUint (gl_FragCoord.z) ); . Resolve Transparent 1 2 3 4 – Fullscreen sort & blend per pixel 4 2 3 1 5 RESOLVE . Fullscreen pass uvec2 fragments[K]; // encodes color and depth – Not efficient to globally sort all fragments per pixel n = load (fragments); sort (fragments,n); – Sort K nearest correctly via vec4 color = vec4(0); register array for (i < n) { blend (color, fragments[i]); – Blend fullscreen on top of } framebuffer gl_FragColor = color; 6 TAIL HANDLING . Tail Handling: – Discard Fragments > K – Blend below sorted and hope error is not obvious [Salvi et al.] . Many close low alpha values are problematic . May not be frame- coherent (flicker) if blend is not primitive- ordered K = 4 K = 4 K = 16 Tailblend 7 RECORD TECHNIQUES . Unbounded: – Record all fragments that fit in scratch buffer – Find & Sort K closest later + fast record - slow resolve - out of memory issues 8 HOW TO STORE .
    [Show full text]
  • CES 2016 Exhibitor Listing As of 1/19/16
    CES 2016 Exhibitor Listing as of 1/19/16 Name Booth * Cosmopolitan Vdara Hospitality Suites 1 Esource Technology Co., Ltd. 26724 10 Vins 80642 12 Labs 73846 1Byone Products Inc. 21953 2 the Max Asia Pacific Ltd. 72163 2017 Exhibit Space Selection 81259 3 Legged Thing Ltd 12045 360fly 10417 360-G GmbH 81250 360Heros Inc 26417 3D Fuel 73113 3D Printlife 72323 3D Sound Labs 80442 3D Systems 72721 3D Vision Technologies Limited 6718 3DiVi Company 81532 3Dprintler.com 80655 3DRudder 81631 3Iware Co.,Ltd. 45005 3M 31411 3rd Dimension Industrial 3D Printing 73108 4DCulture Inc. 58005 4DDynamics 35483 4iiii Innovations, Inc. 73623 5V - All In One HC 81151 6SensorLabs BT31 Page 1 of 135 6sensorlabs / Nima 81339 7 Medical 81040 8 Locations Co., Ltd. 70572 8A Inc. 82831 A&A Merchandising Inc. 70567 A&D Medical 73939 A+E Networks Aria 36, Aria 53 AAC Technologies Holdings Inc. Suite 2910 AAMP Global 2809 Aaron Design 82839 Aaudio Imports Suite 30-116 AAUXX 73757 Abalta Technologies Suite 2460 ABC Trading Solution 74939 Abeeway 80463 Absolare USA LLC Suite 29-131 Absolue Creations Suite 30-312 Acadia Technology Inc. 20365 Acapella Audio Arts Suite 30-215 Accedo Palazzo 50707 Accele Electronics 1110 Accell 20322 Accenture Toscana 3804 Accugraphic Sales 82423 Accuphase Laboratory Suite 29-139 ACE CAD Enterprise Co., Ltd 55023 Ace Computers/Ace Digital Home 20318 ACE Marketing Inc. 59025 ACE Marketing Inc. 31622 ACECAD Digital Corp./Hongteli, DBA Solidtek 31814 USA Acelink Technology Co., Ltd. Suite 2660 Acen Co.,Ltd. 44015 Page 2 of 135 Acesonic USA 22039 A-Champs 74967 ACIGI, Fujiiryoki USA/Dr.
    [Show full text]
  • Amiga Graphics Reference Card 2Nd Edition
    Quick reference information for graphics, video, 2nd Edition desktop publishing, Covers new Amiga animation, and image 3000 graphics processing on the modes, 24-bit color Commodore Amiga hardware, DOS 2.0 personal computer. Reference Card overscan, and PAL. ) COLOR MODELS Additive Color Mixing Subtractive Color Mixing Red-Green-Blue Cube Hue-Saturation-Value Cone Cyan Value White Blue Blue] Axis Yellow Black ~reen Axis When mixi'hgpigments, cyan, yellow, Red When mixing light, red, green, and blue and magenta are primaries. Example: are primaries. Yell ow is formed by To get blue, mix cyan and magenta. Shades of gray are on the long Cyan pigment absorbs red, magenta adding red and green, for example. diagonal between black and white. pigment absorbs green, so the only component of white light that gets re­ The Visible Electromagnetic Spectrum flected is blue. 380 420 470 495 535 575 wavelength (nanometers) 770 Hue: Color; spectral position. Often measured in degrees; red=0°, yellow=60°, magenta=300°, etc. Hue is undefined for shades of gray. (ultraviolet) Purple Violet yellowish Red (infrared) Saturation: Color purity. A highly-saturated color is nearly Blue Orange monochromatic, i.e., contains only one color from the spectrum. White, black, and shades of gray have zero saturation. Value: The darkness of a color. How much black it contain's. DELUXE PAINT Ill KEYBOARD COMMANDS White has a value of one, black has a value of zero. Brush Painting Modes Page and Screen Commands While an animation is playing: ; ana, move brush along fixed axis
    [Show full text]