DE69917489T2 - Anzeigesystem zur mischung von graphischen daten und videodaten - Google Patents

Anzeigesystem zur mischung von graphischen daten und videodaten Download PDF

Info

Publication number
DE69917489T2
DE69917489T2 DE69917489T DE69917489T DE69917489T2 DE 69917489 T2 DE69917489 T2 DE 69917489T2 DE 69917489 T DE69917489 T DE 69917489T DE 69917489 T DE69917489 T DE 69917489T DE 69917489 T2 DE69917489 T2 DE 69917489T2
Authority
DE
Germany
Prior art keywords
graphics
video
window
memory
display
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69917489T
Other languages
English (en)
Other versions
DE69917489D1 (de
Inventor
G. Alexander MAC INNIS
Jeffrey Chengfuh TANG
Xiaodong Xie
T. James PATTERSON
A. Greg KRANAWETTER
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Broadcom Corp
Original Assignee
Broadcom Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22318929&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69917489(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Broadcom Corp filed Critical Broadcom Corp
Application granted granted Critical
Publication of DE69917489D1 publication Critical patent/DE69917489D1/de
Publication of DE69917489T2 publication Critical patent/DE69917489T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/001Arbitration of resources in a display system, e.g. control of access to frame buffer by video controller and/or main processor
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/06Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed using colour palettes, e.g. look-up tables
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/12Synchronisation between the display unit and other units, e.g. other display units, video-disc players
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • G09G5/28Generation of individual character patterns for enhancement of character form, e.g. smoothing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/34Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling
    • G09G5/346Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling for systems having a bit-mapped display memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42204User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42653Internal components of the client ; Characteristics thereof for processing graphics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440263Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4438Window management, e.g. event handling following interaction with the user interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/04Synchronising
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • H04N5/445Receiver circuitry for the reception of television signals according to analogue transmission standards for displaying additional information
    • H04N5/44504Circuit details of the additional information generator, e.g. details of the character or graphics signal generator, overlay mixing circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • H04N5/445Receiver circuitry for the reception of television signals according to analogue transmission standards for displaying additional information
    • H04N5/45Picture in picture, e.g. displaying simultaneously another television channel in a region of the screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0117Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving conversion of the spatial resolution of the incoming video signal
    • H04N7/0122Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving conversion of the spatial resolution of the incoming video signal the input and the output signals having different aspect ratios
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0135Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/44Colour synchronisation
    • H04N9/45Generation or recovery of colour sub-carriers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/641Multi-purpose receivers, e.g. for auxiliary information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/642Multi-standard receivers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/02Addressing, scanning or driving the display screen or processing steps related thereto
    • G09G2310/0224Details of interlacing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0247Flicker reduction other than flicker reduction circuits used for single beam cathode-ray tubes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/10Mixing of images, i.e. displayed pixel being the result of an operation, e.g. adding, on the corresponding input pixels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
    • G09G2340/125Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels wherein one of the images is motion video
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/02Graphics controller able to handle multiple formats, e.g. input or output formats
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/125Frame memory handling using unified memory architecture [UMA]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/126The frame memory having additional data ports, not inclusive of standard details of the output serial port of a VRAM
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/128Frame memory using a Synchronous Dynamic RAM [SDRAM]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/024Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed using colour registers, e.g. to control background, foreground, surface filling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/026Control of mixing and/or overlay of colours in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/06Transmission systems characterised by the manner in which the individual colour picture signal components are combined
    • H04N11/12Transmission systems characterised by the manner in which the individual colour picture signal components are combined using simultaneous signals only
    • H04N11/14Transmission systems characterised by the manner in which the individual colour picture signal components are combined using simultaneous signals only in which one signal, modulated in phase and amplitude, conveys colour information and a second signal conveys brightness information, e.g. NTSC-system
    • H04N11/143Encoding means therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/06Transmission systems characterised by the manner in which the individual colour picture signal components are combined
    • H04N11/20Conversion of the manner in which the individual colour picture signal components are combined, e.g. conversion of colour television standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/04Synchronising
    • H04N5/12Devices in which the synchronising signals are only operative if a phase difference occurs between synchronising and synchronised scanning devices, e.g. flywheel synchronising
    • H04N5/126Devices in which the synchronising signals are only operative if a phase difference occurs between synchronising and synchronised scanning devices, e.g. flywheel synchronising whereby the synchronisation signal indirectly commands a frequency generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • H04N5/46Receiver circuitry for the reception of television signals according to analogue transmission standards for receiving on more than one standard at will

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich allgemein auf integrierte Schaltungen und insbesondere auf eine integrierte Schaltung und ein Verfahren zur Verarbeitung und Anzeige von Video und Grafik.
  • ALLGEMEINER STAND DER TECHNIK
  • Grafik-Anzeigesysteme werden für gewöhnlich in der Fernseh-Steuerungselektronik, wie bei Set-Top-Boxen, in integrierten Digitalfernsehgeräten und in privaten Netzwerk-Heimcomputern verwendet. Grafik-Anzeigesysteme umfassen für gewöhnlich eine Anzeige-Einheit, die Anzeigefunktionen ausführen kann. Die Anzeige-Einheit ist der Teil des Grafik-Anzeigesystems, der Anzeige-Pixeldaten von einer beliebigen Kombination lokal angebrachter Video- und Grafikeingabe-Eingängen empfängt, die Daten auf eine Weise verarbeitet und abschließend Anzeigepixel als Ausgabe erstellt.
  • Diese Anwendung bezieht sich sowohl auf Grafik, als auch auf Video, was auf gewisse Weise die Struktur der Hardware selbst wider spiegelt. Die Teilung bedeutet jedoch nicht das Vorhandensein irgendwelcher grundlegender Unterschiede zwischen Grafik und Video, und tatsächlich weisen beide viele gleiche Funktionalitäten auf. Die Bezeichnung „Grafik", wie sie in diesem Dokument verwendet wird, kann Grafik, Text und Video umfassen.
  • Eines solcher Video- und Grafiksysteme, die in der Fernseh-Steuerungselektronik verwendet werden, ist ein Eagle Media Compositor, der von PowerTV, Inc., in Cupertino, Kalifornien, Vereinigte Staaten von Amerika, entwickelt worden ist. Der Eagle Media Compositor wird in seiner Datenblatt-Fassung 1.7 als hoch integriertes Gerät offenbart, das insbesondere für Audio-Video „Set-Top-Box" (STB)-Anwendungen mit hoch entwickelten Grafik- und Audio-Fähigkeiten ausgelegt ist. Gemäß dem Datenblatt umfassen die Merkmale des Eagle Media Compositors: Die Grafikanzeige und -handhabung, die Zusammensetzung von Grafik mit Video, das Skalieren von digitalisiertem bewegtem Video, das leistungsstarke Zusammensetzen von Grafiken, sowie Alpha-Blending und Anti-Aliasing von Grafik-Video.
  • EP 0 840 505 bezieht sich auf ein System zum Multiplexen und Überblenden von Grafik-Bildschirmanzeigen und bewegten Videobildern für digitales Fernsehen. Bereit gestellt wird ein System zum Multiplexen von Grafik und bewegten Videobildern für eine Digitalfernseh-Set-Top-Box. Das bewegte Bild wird durch einen MPEG-Video-Decoder erzeugt, und die Grafikfenster werden durch einen Bildschirmanzeige-Koprozessor erzeugt. Jedes Grafikfenster ist durch einen Satz von Attributen gekennzeichnet, welcher den Anzeigemodus, die Lage auf dem Bildschirm, die Priorität und den Überblendfaktor definiert. Beim Überblenden eines Fensters werden die Farbbestandteile des bewegten Videos und der Bildschirmanzeige zusammengefügt, wobei ein Anteil der beiden durch die Fensterattribute definiert wird. Dezimierte bewegte Videobilder können auch innerhalb eines Bildschirmanzeigefensters angezeigt werden; der Bildschirmanzeige-Koprozessor erzeugt ein leeres Fenster, das von dem Video-Decoder mit dem dezimierten bewegten Video gefüllt wird.
  • EP 0 840 276 bezieht sich auf ein System, das die gleichzeitige Darstellung von Bitmap, Grafik, Video-Standbild, bewegtem Videobild oder Hintergrund auf einem Bildschirm ermöglicht. Es wird ein System beschrieben, das die gleichzeitige Anzeige von Bitmap, Grafik, Video-Standbild, bewegtem Videobild oder Hintergrund auf einem Bildschirm ermöglicht. Ein Bildspeicher, der die anzuzeigende Seite enthält, ist im SDRAM untergebracht. Eine Anzeigesteuerung liest den Bildspeicher Block für Block und überträgt die Daten an einen FIFO. Für jedes Pixel liest der Bildschirmanzeige-Decoder die Bits, die zur Darstellung des gegenwärtigen Bildpunkts vom FIFO erforderlich sind. Die Anzahl der Bits pro Pixel ändert sich während der Anzeige, abhängig vom Modus. Der Pixelwähler und seine Steuerung wählen die Datenbits vom FIFO aus, um das gegenwärtige Pixel zu bilden.
  • Patentschrift US 5,621,869 bezieht sich auf ein Grafiksystem eines Computers mit mehreren Ebenen mit Überblendung der Anzeige-Ebenen. Darin werden Bilddaten erzeugt und für vorrangig zu behandelnde Bildebenen einer zusammengesetzten Grafikanzeige, zusammen mit gewissen Steuerungs- und Überblenddaten gespeichert. Um Datenebenen für eine Anzeige zusammen zu setzen, werden einzelne Bildelemente (Pixel) gemäß der Ebenenpriorität, der Aktivierungs-Steuersignalanzeigen, der Farb-Steuersignalanzeige und der Alpha-Steuersignale (Objektlage und Durchsichtigkeit) erzeugt. Entsprechend werden die Objektdaten von mehreren Ebenen Pixel für Pixel ausgewählt oder übergeblendet, um eine gewünschte zusammengesetzte Darstellung zu erreichen.
  • EP 0 840 277 bezieht sich auf ein Bildschirm (OSD)-System für eine Set-Top-Box für digitales Fernsehen. Die Bildschirmanzeige kann gleichzeitig verschiedene Arten von Bildern darstellen (z. B. ein Bitmap, eine Grafik, ein Standbildvideo, ein bewegtes Videobild oder eine Hintergrundfarbe).
  • WO 94/10641 bezieht sich auf ein benutzerinteraktives Multimediasystem, in dem eine Zentraleinheit lose an einen Systemspeicher gekoppelt ist, und ein Grafikhandhabungsprozessor im Wesentlichen alle Funktionen zur Grafikaufbereitung und -handhabung ausführt.
  • GB 2 287 627 bezieht sich auf ein Anzeigesystem für gefenstertes Grafikvideo, das zumindest eine Grafikebene umfasst, die größenverstellbare, positionierbare und möglicherweise überlappende Fenster besitzt, wobei programmierbare Prioritätswerte, Teile von Grafikebenen-Fenstern, die (entsprechend den Prioritäten) in der gegenwärtig abgetasteten waagerechten Zeile der Anzeige überlappen, in einen Zeilenpufferspeicher geschrieben werden. Überlappende Objekte werden aufgelöst, indem sie nach ihrer Priorität in den Pufferspeicher geschrieben werden. Die Verwendung eines Zeilen- statt eines Bildpufferspeichers spart Speicherplatz. Sprites werden auf gleiche Weise angezeigt.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Die Erfindung wird in den Ansprüchen 1, beziehungsweise 10 bestimmt. Überdies sind Ausführungsformen der Erfindung in den Unteransprüchen bestimmt.
  • Ein Grafikanzeigesystem empfängt Grafik und Video und bietet eine Ausgabe, die übergeblendete Grafik und Video zur Anzeige umfasst. Das System umfasst eine Anzeige-Einheit, welche die Grafikdaten verarbeitet und einen Video-Kompositor, welcher die Grafikdaten und Videodaten zusammensetzt, um die übergeblendete Ausgabe zu erzeugen. Das System kann die Grafikdaten unabhängig von den Videodaten vor dem Überblenden räumlich verarbeiten.
  • In anderen Ausführungsformen kann das System eines oder mehrere der folgenden Merkmale umfassen:
  • Das System kann Datenstrukturen, die als „Fenster-Deskriptoren" bezeichnet werden, zur Kennzeichnung logischer Flächen oder Fenster mit Grafikinhalten zur Anzeige auf einem Bildschirm verwenden. Jeder Fenster-Deskriptor kann einen oder mehrere Parameter umfassen, der/die ein entsprechendes Fenster beschreiben. Die Fenster-Deskriptoren ermöglichen, dass Grafikfenster überlagert werden und mit anderen Grafikfenstern unter Verwendung eines Alphawerts pro Fenster oder eines Alphawerts pro Pixel oder beidem übergeblendet werden.
  • Ein Grafikfenstersteuerungs-Datenweiterleitungsmechanismus verwaltet vorzugsweise die Grafikanzeige und die Zusammensetzungsfunktionen. Der Mechanismus kann die Bündelung von Fensteranzeigeparametern in Header-Pakete und Grafikdaten in Datenpakete und die Übertragung der Header-Pakete und Datenpakete an eine Anzeige-Einheit abstimmen.
  • Eine Lademechanismus für eine Farbmischtabelle (Color Look-Up Table – CLUT) ermöglicht vorzugsweise die Übertragung von Echtzeit CLUT-Daten während der Grafikzusammensetzung. Der Lademechanismus kann durch einen Fenster-Deskriptor ausgelöst werden, der einen Farbmischtabellen-Ladebefehl enthält.
  • Das System kann ein Steuerungsschema für einen Grafik-Zeilenpufferspeicher umfassen, welches die Zusammensetzung einer Zeile von Grafikdaten zur Zeit unter Verwendung von Zeilenpufferspeichern in unterschiedlichen Taktdomänen handhabt. Die Zeilenpufferspeicher können dazu beitragen, Speicherplatz zu sparen, da das System in dieser Ausführungsform keinen Bildpufferspeicher zum Speichern der Anzeige-Informationen erfordert, die als Ergebnis des Zusammenwirkens unterschiedlicher Grafikfenster erzeugt werden.
  • Ein weicher waagerechter Rollmechanismus ermöglicht vorzugsweise das Setzen der Inhalte von Grafikfenstern an beliebige Stellen auf einer Anzeigezeile. Durch Ausblenden eines oder mehrerer Pixel/s, das/die an der Startadresse ausgerichtet ist/sind, kann der Inhalt eines Grafikfensters nach links verschoben werden. Durch Zugreifen auf Grafikdaten einer Adresse direkt vor der Startadresse und Ausblenden eines oder mehrerer Pixel/s, das/die an dieser Adresse ausgerichtet ist/sind, kann der Inhalt eines Grafikfensters nach rechts verschoben werden.
  • Das System kann durch Anti-Aliasing geglättete/n Text und Grafik verwenden, um eine qualitativ hochwertige Anzeige von Grafikelementen oder Glyphen bereit zu stellen, die das Bild eines Zeichens von Text oder Grafik auf Fernseh- oder anderen Bildschirmen darstellen. Die grafischen Elemente können über Live-Video oder beliebigen Grafikbildern eingeblendet werden.
  • Das System kann auch den Zeilensprung-Flattereffekt beseitigen oder herab setzen, ohne dass ein Anti-Flatter-Filter im Anzeigevorgang notwendig ist, wodurch vorzugsweise die erforderliche Hardware- und Speicherbandbreite herab gesetzt wird.
  • Das System kann einen Video-Decoder umfassen, der einen Farbsignal-synchronisierten Abtastraten-Umsetzer besitzt. Der Farbsignal-synchronisierte Abtastraten-Umsetzer setzt vorzugsweise die Abtastwerte in Werte um, die bei einer Abtastrate genommen werden, die ein Vielfaches der Farbsignal-Hilfsträgerfrequenz ist und die in einer Regelschleife mit den Farbsynchronsignalen des analogen Videosignals synchronisiert ist. Anders kann die Abtast-Umsetzungsrate gleich bleiben, während die Abtastrate in der Regelschleife angepasst wird.
  • Der Video-Decoder umfasst vorzugsweise auch einen Zeilen-synchronisierten Abtastraten-Umsetzer, der Abtastwerte in einem Vielfachen der Farbsignal-Hilfsträgerfrequenz empfängt und die Abtastwerte in Abtastwerte umsetzt, die ein Vielfaches der horizontalen Zeilenfrequenz des Video-Eingangs betragen. Der Zeilen-synchronisierte Abtastraten-Umsetzer misst vorzugsweise die horizontale Zeilenfrequenz bis auf den Bruchteil eines Pixels genau und passt die Abtastrate und Phase des Zeilen-synchronisierten Abtastraten-Umsetzers an, um genaue Zeilen-synchronisierte Abtastwerte zu erzeugen. Der Zeitfehlerausgleicher kann Abtastwerte am Ausgang des Zeilen-synchronisierten Abtastraten-Umsetzers empfangen und kann Abtastwerte erzeugen, die mit dem Anzeigetakt synchronisiert sind, um unerwünschte Bildfehler, wie Zittern, herabzusetzen.
  • Ein Video-Skalierungssystem erhält vorzugsweise Speicher, indem es Video vor dem Erfassen des Videos im Speicher verkleinert und Video vergrößert, nachdem das Video aus dem Speicher abgerufen worden ist.
  • Die Anzeige-Einheit blendet vorzugsweise Grafikbilder über, die im Grafikfenster angeordnet sind, indem sie Alphawerte für die Fenster, Alphawerte pro Pixel oder beides verwendet. Das System berechnet vorzugsweise einen zusammengesetzten Alphawert auf der Grundlage des Alphawerts des Fensters und des Alphawerts pro Pixel. Übergeblendete Grafik kann dann unter Verwendung des Alphawerts mit Video zusammengesetzt werden.
  • Das System umfasst vorzugsweise einen einzelnen Mehrphasenfilter, der vorzugsweise sowohl Anti-Flatter-Filtern, als auch das Skalieren von Grafik bereitstellt. Anti-Flatter-Filtern kann aufgrund des Zeilensprungverhaltens von Fernsehbildschirmen dazu beitragen, das Bildschirmflattern herabzusetzen. Das Skalieren von Grafik kann angewendet werden, um das normaler Weise quadratische Pixelaussehen von Grafik in das normaler Weise rechteckige Pixelaussehen von Video umzusetzen.
  • Das System kann eine vereinheitlichte Speicherarchitektur aufweisen, die von dem Grafikanzeigesystem, einer Zentraleinheit und anderen peripheren Einheiten geteilt wird. Die vereinheitlichte Speicherarchitektur wendet zum Erledigen von Aufgaben vorzugsweise Echtzeitplanung an. Eine kritische Sofortanalyse kann durchgeführt werden, um einen Plan zur Speicherverwendung zu ermitteln, der die Speicheranforderungen von Echtzeitaufgaben nicht beeinträchtigt, während gleichzeitig Nicht-Echtzeitaufgaben nach Bedarf erledigt werden.
  • Das System kann einen Grafikbeschleuniger einsetzen, der Speicher für Grafikdaten umfasst. Der Beschleuniger umfasst vorzugsweise einen Koprozessor zum Ausführen vektorartiger Operationen an einer Vielzahl von Bestandteilen eines Pixels der Grafikdaten. Der Beschleuniger kann auch einen erweiterten Anweisungssatz zum Speichern und Laden von Daten besitzen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm eines Grafikanzeigesystem mit integrierter Schaltung gemäß einer derzeit bevorzugten Ausführungsform der Erfindung.
  • 2 ist ein Blockdiagramm eines gewissen Funktionsblocks des Systems;
  • 3 ist ein Blockdiagramm einer anderen Ausführungsform des Systems von 2, das einen auf dem Chip befindlichen E/A-Bus umfasst;
  • 4 ist ein Funktionsblockdiagramm von beispielhaften Video- und Grafikanzeige-Pipelines;
  • 5 ist ein ausführliches Blockdiagramm der Grafik- und Video-Pipelines des Systems;
  • 6 ist ein Plan eines beispielhaften Fenster-Deskriptors zum Beschreiben von Grafikfenstern und Vollflächen;
  • 7 ist ein Flussdiagram eines beispielhaften Vorgangs zum Sortieren von Fenster-Deskriptoren in einer Fenstersteuerung;
  • 8 ist ein Flussdiagramm eines Grafikfenster-Steuerungsdaten-Weiterleitungsmechanismus' und eines Farbmischtabellen-Lademechanismus'.
  • 9 ist ein Zustandsdiagramm einer Zustandsmaschine in einem Grafikumsetzer, der während der Verarbeitung von Header-Paketen verwendet werden kann;
  • 10 ist ein Blockdiagramm einer Ausführungsform einer Anzeige-Einheit;
  • 11 ist ein Blockdiagramm einer Ausführungsform einer Farbmischtabelle (CLUT);
  • 12 ist ein Impulsdiagramm von Signalen, die zum Laden einer CLUT verwendet werden können;
  • 13 ist ein Blockdiagramm, das beispielhafte Grafik-Zeilenpufferspeicher darstellt;
  • 14 ist ein Flussdiagramm eines Systems zum Steuern der Grafik-Zeilenpufferspeicher von 13;
  • 15 ist eine Darstellung des Linksrollens unter Verwendung eines weichen horizontalen Fensterrollmechanismus';
  • 16 ist eine Darstellung des Rechtsrollens unter Verwendung eines weichen horizontalen Fensterrollmechanismus';
  • 17 ist ein Flussdiagramm, das ein System darstellt, welches Grafikelemente oder Glyphen für durch Anti-Aliasing geglätteten Text- und Grafikanwendungen verwendet;
  • 18 ist ein Blockdiagramm gewisser Funktionsblöcke eines Video-Decoders zum Ausführen von Videosynchronisation;
  • 19 ist ein Blockdiagramm einer Ausführungsform eines Farbsignal-synchronisierten Abtastraten-Umsetzers (Sample Rate Converter – SRC);
  • 20 ist ein Blockdiagramm einer anderen Ausführungsform des Farbsignal-synchronisierten Abtastraten-Umsetzers SRC von 19;
  • 21 ist ein Blockdiagramm eines beispielhaften Zeilen-synchronisierten SRC;
  • 22 ist ein Blockdiagramm eines beispielhaften Zeitfehlerausgleichers (Time Base Corrector – TBC);
  • 23 ist ein Flussdiagramm eines Vorgangs, der einen TBC einsetzt, um ein Eingangsvideo mit einem Anzeigetakt zu synchronisieren;
  • 24 ist ein Flussdiagramm eines Vorgangs zum Skalieren von Video, in dem vor dem Einlesen des Videos im Speicher eine Verkleinerung und nach dem Auslesen der Videodaten aus dem Speicher eine Vergrößerung ausgeführt wird;
  • 25 ist ein ausführliches Blockdiagramm von Bestandteilen, die während des Skalierens von Video verwendet werden, wobei ihre Signalpfade am Verkleinern beteiligt sind;
  • 26 ist ein ausführliches Blockdiagramm von Bestandteilen, die während des Skalierens von Video verwendet werden, wobei ihre Signalpfade am Vergrößern beteiligt sind;
  • 27 ist ein ausführliches Blockdiagramm von Bestandteilen, die während des Skalierens von Video verwendet werden, wobei ihre Signalpfade sowohl am Vergrößern, als auch am Verkleinern beteiligt sind;
  • 28 ist ein Flussdiagramm eines beispielhaften Vorgangs zum Überblenden von Grafik- und Videoflächen;
  • 29 ist ein Flussdiagramm eines beispielhaften Vorgangs zum Überblenden von Grafikfenstern in eine kombinierte übergeblendete Grafikausgabe;
  • 30 ist ein Flussdiagramm eines beispielhaften Vorgangs zum Überblenden von Grafik-, Video und Hintergrundfarbe;
  • 31 ist ein Blockdiagramm eines Mehrphasenfilters, der sowohl Anti-Flatter-Filtern, als auch senkrechtes Skalieren von Grafikfenstern ausführt;
  • 32 ist ein Funktionsblockdiagramm eines beispielhaften Speicher-Abarbeitungsanforderungs- und Handhabungssystems mit doppelter Speichersteuerung;
  • 33 ist ein Funktionsblockdiagramm einer Ausführung eines Echtzeitplanungssystems;
  • 34 ist ein Zeitdiagramm eines beispielhaften Zentraleinheit-Abarbeitungsmechanismus', der unter Verwendung von Echtzeitplanung umgesetzt worden ist;
  • 35 ist ein Zeitdiagramm, das gewisse Grundsätze der Analyse des kritischen Moments für eine Umsetzung von Echtzeitplanung darstellt;
  • 36 ist ein Flussdiagramm, das die Abwicklung von Anforderungen gemäß der Priorität der Aufgabe darstellt; und
  • 37 ist ein Blockdiagramm eines Grafikbeschleunigers, der an eine Zentraleinheit und an eine Speichersteuerung gekoppelt sein kann.
  • AUSFÜHRLICHE BESCHREIBUNG EINER DERZEIT BEVORZUGTEN AUSFÜHRUNGSFORM
  • I. GRAFIKANZEIGESYSTEM-ARCHITEKTUR
  • Mit Bezug auf 1 befindet sich das Grafikanzeigesystem gemäß der vorliegenden Erfindung vorzugsweise in einer integrierten Schaltung 10. Die integrierte Schaltung kann Eingänge 12 zum Empfangen von Videosignalen 14, einen Bus 20 zum Anschließen an eine Zentraleinheit (CPU) 22, einen Bus 24 zum Übertragen von Daten zu und von einem Speicher 28 und einen Ausgang 30 zum Bereitstellen eines Video-Ausgangssignals 32 umfassen. Das System kann überdies einen Eingang 26 zum Empfangen von Audio-Eingaben 34 und einen Ausgang 27 zum Bereitstellen von Audio-Ausgaben 36 umfassen.
  • Das Grafikanzeigesystem nimmt Video-Eingangssignal an, die analoge Videosignale, digitale Videosignale oder beides umfassen können. Die analogen Signale können zum Beispiel NTSC-, PAL- und SECAM-Signale oder beliebige andere herkömmliche Arten analoger Signale sein. Die digitalen Signale können in Form von dekodierten MPEG-Signalen oder anderen Formaten von digitalem Video vorliegen. In einer anderen Ausführungsform umfasst das System einen auf dem Chip befindlichen Decoder zum Decodieren des MPEG oder anderer digitaler Videosignale, die in das System eingegeben werden. Grafikdaten zum Anzeige werden von einer beliebigen geeigneten Grafikbibliothek-Software, wie Direct Draw von Microsoft Corporation, erzeugt und von der Zentraleinheit 22 in den Speicher 28 gelesen. Die Video-Ausgangssignale 32 können analoge Signale sein, wie zusammengesetzte NTSC-, PAL-, Y/C- (S-Video), SECAM- oder andere Signale, die Video- und Grafikinformationen umfassen. In einer anderen Ausführungsform stellt das System einem auf dem Chip oder außerhalb des Chips befindlichen Parallel-Seriell-Umsetzer, der die Ausgabe verschlüsseln kann, serielle digitale Video-Ausgaben bereit.
  • Der Grafikanzeige-Systemspeicher 28 ist vorzugsweise ein vereinheitlichter synchroner dynamischer Direktzugriffsspeicher (SDRAM), der von dem System, der Zentraleinheit 22 und anderen peripheren Bestandteilen geteilt wird. In der bevorzugten Ausführungsform verwendet die Zentraleinheit den vereinheitlichten Speicher für ihren Code und ihre Daten, während das Grafikanzeigesystem alle Grafik-, Video- und Audiofunktionen ausführt, die ihr von der Software zugewiesen werden. Die Menge des Speichers und die Leistung der Zentraleinheit sind vorzugsweise vom Systemplaner auf die gewünschte Mischung aus Leistung und Speicherkosten einstellbar. In der bevorzugten Ausführungsform wird eine Set-Top-Box mit SDRAM ausgeführt, die sowohl die Zentraleinheit, als auch Grafik unterstützt.
  • Mit Bezug auf 2 umfasst das Grafikanzeigesystem vorzugsweise einen Video-Decoder 50, einen Video-Skalierer 52, eine Speichersteuerung 54, eine Fenstersteuerung 56, eine Anzeige-Einheit 58, einen Video-Kompositor 60 und einen Video-Codierer 62. Das System kann wahlweise einen Grafikbeschleuniger 64 und eine Audio-Einheit 66 umfassen. Das System kann Grafik, Passthrough-Video, skaliertes Video oder eine Kombination der unterschiedlichen Arten von Video und Grafik anzeigen. Passthrough-Video umfasst digitales oder analoges Video, das nicht in den Speicher eingelesen wird. Das Passthrough-Video kann vom analogen Video oder dem digitalen Video durch einen Multiplexer ausgewählt werden. Bypass-Video, das auf einem getrennten Eingang in den Chip gelangen kann, umfasst analoges Video, das außerhalb des Chips in herkömmlichem YUV (Heilligkeits-Farbsignal)-Format von einem beliebigen geeigneten Decoder, wie dem BT829-Decoder von Brooktree Corporation in San Diego, Kalifornien, digitalisiert wird. Das YUV-Format kann auch als YCrCb-Format bezeichnet werden, wobei Cr und Cb den Werten U, beziehungsweise V entsprechen.
  • Der Video-Decoder (VDEC) 50 digitalisiert und verarbeitet vorzugsweise analoges Eingangsvideo, um interne YUV-Bestandteilsignale mit getrennten Helligkeits- und Farbsignal-Bestandteilen zu erzeugen. In einer anderen Ausführungsform können die digitalisierten Signale in einem anderen Format, wie RGB, verarbeitet werden. Der VDEC 50 umfasst vorzugsweise einen Abtastraten-Umsetzer 70 und einen Zeitfehlerausgleicher 72, die zusammen ermöglichen, dass das System nicht standardmäßige Videosignale, wie Signale von einem Videorekorder, empfängt. Der Zeitfehlerausgleicher 72 ermöglicht, dass der Video-Codierer im Passthrough-Modus arbeitet und digitalisiertes analoges Video in der Zeitdomäne korrigiert, um Zittern herabzusetzen oder zu verhindern.
  • Der Video-Skalierer 52 kann digitales Video und analoges Video je nach Bedarf sowohl verkleinern, als auch vergrößern. In der bevorzugten Ausführungsform können Skalierungsfaktoren stufenlos von einem Skalierungsfaktor von viel weniger als eins auf einen Skalierungsfaktor von vier angepasst werden. Liegt sowohl eine analoge, als auch eine digitale Videoeingabe vor, kann jede der beiden skaliert werden, während die andere gleichzeitig in voller Größe als Passthrough-Video angezeigt wird. Jeder Teil der Eingabe kann die Quelle für Videoskalierung sein. Um Speicher und Bandbreite zu erhalten, führt der Video-Skalierer vor dem Erfassen von Videobildern im Speicher vorzugsweise Verkleinerungen und nach dem Lesen aus dem Speicher Vergrößerungen aus, führt aber vorzugsweise nicht Vergrößerungen und Verkleinerungen gleichzeitig aus.
  • Die Speichersteuerung 54 liest und schreibt vorzugsweise Video- und Grafikdaten in den und aus dem Speicher, unter Verwendung von Farbsynchronsignal-Zugriffen mit Farbsynchronsignal-Längen, die jeder Aufgabe zugewiesen werden können. Der Speicher ist ein beliebiger geeigneter Speicher, wie ein SDRAM. In der bevorzugten Ausführungsform umfasst die Speichersteuerung zwei im Wesentlichen ähnliche SDRAM-Steuerungen, die eine in erster Linie für die Zentraleinheit und die andere in erster Linie für das Grafikanzeigesystem, während jede der Steuerungen für eine beliebige und für alle dieser Funktionen verwendet werden kann.
  • Das Grafikanzeigesystem verarbeitet vorzugsweise Grafikdaten unter Verwendung logischer Fenster, die auch als Darstellungsfelder, Flächen, Sprites oder Zeichenflächen bezeichnet werden, die sich überlappen oder einander in beliebigen räumlichen Beziehungen abdecken können. Jedes Fenster ist vorzugsweise von den anderen unabhängig. Die Fenster können aus einer beliebigen Kombination von Bildinhalt, einschließlich aus durch Anti-Aliasing geglättetem Text und Grafik, Muster, GIF-Bilder, JPEG-Bilder, Live-Video von MPEG oder Analogvideo, dreidimensionale Grafiken, Schreibmarken oder Zeiger, Steuerelemente, Menüs, Ticker oder beliebigen anderen Inhalt bestehen, von denen alle oder einige animiert sein können.
  • Grafikfenster sind vorzugsweise durch Fenster-Deskriptoren gekennzeichnet. Fenster-Deskriptoren sind Datenstrukturen, die einen oder mehrere Parameter des Grafikfensters beschreiben. Fenster-Deskriptoren können beispielsweise das Bildpixelformat, den Pixelfarbtyp, den Alpha-Blending-Faktor, die Lage auf dem Bildschirm, die Adresse im Speicher, die Tiefenreihenfolge auf dem Bildschirm oder andere Parameter umfassen. Das System unterstützt vorzugsweise eine große Vielzahl von Pixelformaten, umfassend RG 16, RGB 15, YUV 4 : 2 : 2 (ITU-R 601), CLUT2, CLUT4, CLUT8 oder andere. Zusätzlich zu jedem Fenster, das seinen eigenen Alpha-Blending-Faktor besitzt, besitzt jedes Pixel in der bevorzugten Ausführungsform seinen eigenen Alphawert. In der bevorzugten Ausführungsform werden Fenster-Deskriptoren nicht für Videofenster verwendet. Statt dessen werden Parameter für Videofenster, wie die Start-Speicheradresse und die Fenstergröße, in Registern gespeichert, die zum Video-Kompositor gehören.
  • Im Betrieb handhabt die Fenstersteuerung 56 vorzugsweise sowohl die Video, als auch die Grafikanzeige-Pipeline. Die Fenstersteuerung greift vorzugsweise auf Grafikfenster-Deskriptoren im Speicher über eine Direktspeicherzugriff (DMR)-Einheit 76 zu. Die Fenstersteuerung kann die Fenster-Deskriptoren gemäß der verhältnismäßigen Tiefe ihres entsprechenden Fensters auf der Anzeige sortieren. Für Grafikfenster sendet die Fenstersteuerung vorzugsweise zu Beginn jedes Fensters auf jeder Abtastzeile Header-Informationen an die Anzeige-Einheit und sendet Fenster-Header-Pakete nach Bedarf an die Anzeige-Einheit, um ein Fenster anzuzeigen. Für Video stimmt die Fenstersteuerung vorzugsweise das Einlesen von Nicht-Passthrough-Video im Speicher und die Übertragung von Video zwischen dem Speicher und dem Video-Kompositor ab.
  • Die Anzeige-Einheit 58 entnimmt vorzugsweise Grafikinformationen aus dem Speicher und verarbeitet sie zur Anzeige. Die Anzeige-Einheit wandelt vorzugsweise die verschiedenen Formate von Grafikdaten in den Grafikfenstern in ein YUV-Bestandteil-Format um und blendet die Grafikfenster über, um eine übergeblendete Grafikausgabe zu erzeugen, die einen zusammengesetzten Alphawert besitzt, der auf Alphawerten für einzelne Grafikfenster, Alphawerten pro Pixel oder beidem beruht. In der bevorzugten Ausführungsform überträgt die Anzeige-Einheit die verarbeiteten Grafik-Informationen an Pufferspeicher, die als Zeilenpufferspeicher konfiguriert sind. In einer anderen Ausführungsform kann der Pufferspeicher einen Bildpufferspeicher umfassen. In noch einer anderen Ausführungsform kann die Ausgabe einer Anzeige-Einheit direkt an eine Anzeige oder an einen Ausgabeblock übertragen werden, ohne an die Pufferspeicher übertragen zu werden.
  • Der Video-Kompositor 60 empfängt eine oder mehrere Arten von Daten, wie übergeblendete Grafikdaten, Videofensterdaten, Passthrough-Videodaten und Hintergrund-Farbdaten, und erzeugt eine übergeblendete Video-Ausgabe. Der Video-Codierer 62 kodiert die übergeblendete Video-Ausgabe vom Video-Kompositor in ein geeignetes Anzeigeformat, wie zusammengesetztes NTSC, PAL, Y/C (S-Video), SECAM oder andere Signale, die Video-Informationen, Grafikinformationen oder eine Kombination von Video- und Grafikinformationen umfassen können. In einer anderen Ausführungsform wandelt der Video-Codierer die übergeblendete Video-Ausgabe des Video-Kompositors unter Verwendung eines auf dem Chip oder außerhalb des Chips befindlichen Parallel-Seriell-Umsetzers, der die Ausgabe verschlüsseln kann, in serielle digitale Video-Ausgabe um.
  • Der Grafikbeschleuniger 64 führt vorzugsweise Grafikoperationen aus, die eine intensive Zentraleinheits-Verarbeitung erfordern können, wie Operationen an dreidimensionalen Grafikbildern. Der Grafikbeschleuniger kann programmierbar sein. Die Audio-Einheit 66 unterstützt vorzugsweise Anwendungen, die Audio lokal innerhalb einer Set-Top-Box erzeugen und spielen und das Mischen des lokal erzeugten Audios mit Audio von einer digitalen Audioquelle, wie MPEG oder Dolby, und mit digitalisiertem analogen Audio ermöglichen. Die Audio-Einheit unterstützt außerdem vorzugsweise Anwendungen, die digitalisiertes Basisbandaudio über einen Audio-Einlese-Eingang einlesen und Töne im Speicher zur späteren Verwendung speichern oder die Audio im Speicher für zeitweilige Pufferspeicherung speichern, um das Audio für genaue Lippensynchronisation zu verzögern, wenn Vollbild-basierte Video-Zeitkorrektur aktiviert ist.
  • Mit Bezug auf 3 umfasst das Grafikanzeigesystem in einer anderen Ausführungsform der vorliegenden Erfindung überdies einen E/A-Bus 74, der zwischen der Zentraleinheit 22, dem Speicher 28 und einem oder mehreren einer großen Vielzahl von Peripheriegeräten, wie Flash-Speicher, Festwertspeicher, MPEG-Decoder, Kabelmodems oder andere Geräten, angeschlossen ist. Der auf dem Chip befindliche E/A-bus 74 der vorliegenden Erfindung beseitigt vorzugsweise die Notwendigkeit eines getrennten Schnittstellenanschlusses, der im Fachgebiet manchmal als „Nordbrücke" bezeichnet wird. Der E/A-Bus bietet vorzugsweise Hochgeschwindigkeitszugriff und Datenübertragungen zwischen der Zentraleinheit, dem Speicher und den Peripheriegeräten und kann verwendet werden, um die volle Anzahl von Geräten zu unterstützen, die in einer mit allen Merkmalen ausgestatteten Set-Top-Box oder einem digitalen Fernsehgerät verwendet werden können. In der bevorzugten Ausführungsform ist der E/A-Bus mit der 68000er-Busdefinition kompatibel, einschließlich sowohl aktivem DSACK und passivem DSACK (z. B. Festwertspeicher/Flash-Geräte) und unterstützt externe Bus-Master und Wiederholungs-Operationen, wie sowohl Master als auch Slave. Der Bus unterstützt vorzugsweise jeden beliebigen Mix von 32-Bit, 16-Bit und 8- Bit-Geräten und arbeitet bei einer Taktfrequenz von 33 MHz. Die Taktfrequenz ist vorzugsweise asynchron mit dem Takt der Zentraleinheit (nicht mit ihr in zeitlicher Übereinstimmung), um eine unabhängige Optimierung dieser Untersysteme zu ermöglichen.
  • Mit Bezug auf 4 umfasst das Grafikanzeigesystem im Allgemeinen eine Grafikanzeige-Pipeline 80 und eine Video-Anzeige-Pipeline 82. Die Grafikanzeige-Pipeline umfasst vorzugsweise Funktionsblöcke, umfassend Fenstersteuerungsblöcke 84, einen DMA (Direktspeicherzugriff)-Block 86, einen FIFO (First-In-First-Out-Speicher)-Block 88, einen Grafikumsetzer-Block 90, einen Farbmischtabellen (CLUT)-Block 92, einen Grafiküberblend-Block 94, einen SRAM (Statischen Schreib-Lese-Speicher)-Block und einen Filter-Block 98. Das System verarbeitet vor dem Überblenden vorzugsweise die Grafikdaten räumlich, unabhängig von den Videodaten.
  • Im Betrieb erhält und speichert der Fenstersteuerungs-Block 84 Grafikfenster-Deskriptoren vom Speicher und verwendet die Fenster-Deskriptoren, um den Betrieb der anderen Blöcke in der Grafikanzeige-Pipeline zu steuern. Die Fenster können in beliebiger Reihenfolge verarbeitet werden. In der bevorzugten Ausführungsform verarbeitet das System an jeder Abtastzeile Fenster nacheinander von hinten nach vorn und von der linken Kante zur rechten Kante des Fensters, bevor es zum nächsten Fenster über geht. In einer anderen Ausführungsform können zwei oder mehr Grafikfenster parallel verarbeitet werden. In der parallelen Ausführung ist es möglich, dass alle der zu verarbeitenden Fenster gleichzeitig verarbeitet werden, wobei die gesamte Abtastzeile von links nach rechts verarbeitet wird. Es kann auch eine beliebige Zahl anderer Kombinationen durchgeführt werden, wie die parallele Verarbeitung eines Satzes von Fenstern auf einer niedrigeren Ebene, von links nach rechts, gefolgt von der parallelen Verarbeitung eines anderen Satzes von Fenstern auf einer höheren Ebenen.
  • Der DMA-Block 86 ruft Daten von einem Speicher 110 nach Bedarf ab, um die verschiedenen Grafikfenster gemäß den Adress-Informationen zu bauen, die vom Fenstersteuerungs-Block bereit gestellt werden. Wenn die Anzeige eines Fensters beginnt, behält der DMA-Block vorzugsweise beliebige Parameter, die benötigt werden können, um mit dem Lesen erforderlicher Daten vom Speicher fort zu fahren. Solche Parameter können beispielsweise die derzeit gelesene Adresse, die Adresse des Starts der nächsten Zeilen, die Anzahl der pro Zeile zu lesenden Bytes und den Abstand umfassen. Da die Pipeline vorzugsweise einen vertikalen Filterblock für Anti-Flatter- und Skalierungszwecke umfasst, greift der DMA-Block vorzugsweise in beiden Halbbildern auf einen Satz benachbarter Anzeigezeilen im gleichen Vollbild zu. Wenn die Ausgabe des Systems NTSC oder eine andere Form von Videohalbbildern ist, greift der DMA unter gewissen Bedingungen vorzugsweise auf beide Halbbilder der endgültigen Halbbildanzeige zu, beispielsweise wenn vertikales Filtern und Skalieren aktiviert sind. In solch einem Fall werden alle Zeilen, nicht nur die vom gegenwärtigen Anzeigefeld, vorzugsweise vom Speicher gelesen und während jedes Anzeigefelds verarbeitet. In dieser Ausführungsform entspricht die wirksame Geschwindigkeit des Lesens und Verarbeitens von Grafik der einer nicht im Halbbildverfahren arbeitenden Anzeige mit einer Vollbildrate, die der Halbbildrate der im Halbbildverfahren arbeitenden Anzeige gleich ist.
  • Der FIFO-Block 88 speichert zeitweilig Daten, die vom DMA-Block 86 aus dem Speicher 110 gelesen werden und stellt die Daten auf Anforderung dem Grafikumsetzer-Block 90 bereit. Der FIFO kann auch dazu dienen, eine Grenze zwischen unterschiedlichen Taktdomänen für den Fall zu überbrücken, dass der Speicher und der DMA mit einer Taktfrequenz oder Phase arbeiten, die vom Grafikumsetzer-Block 90 und dem Grafiküberblend-Block 94 abweicht. In einer anderen Ausführungsform wird der FIFO-Block nicht benötigt. Der FIFO-Block kann beispielsweise unnötig sein, wenn der Grafikumsetzer-Block Daten vom Speicher in der Frequenz verarbeitet, in der sie aus dem Speicher gelesen werden und sich der Speicher und die Umsetzungsfunktionen in der gleichen Taktdomäne befinden.
  • In der bevorzugten Ausführungsform nimmt der Grafikumsetzer-Block 90 Ursprungs-Grafikdaten vom FIFO-Block und setzt sie um ins YUValpha (YUVa)-Format. Ursprungs-Grafikdaten können Grafikdaten vom Speicher umfassen, die noch nicht von der Anzeige-Einheit verarbeitet worden sind. Eine Art des YUVa-Formats, welches das System verwenden kann, umfasst YUV 4 : 2 : 2 (d. h. zwei U und V-Abtastwerte für jeweils vier Y-Abtastwerte) und einem 8-Bit-Alphawert für jedes Pixel, was insgesamt 24 Bits pro Pixel belegt. Eine andere geeignete Art des YUVa-Formats umfasst YUV 4 : 4 : 4 und den 8-Bit-Alphawert pro Pixel, wodurch 32 Bits pro Pixel belegt werden. In einer anderen Ausführungsform kann der Grafikumsetzer die Ursprungs-Grafikdaten in ein anderes Format, wie RGBalpha, umsetzen.
  • Der Alphawert, der in der YUVa-Ausgabe enthalten ist, kann von einer Anzahl von Faktoren abhängen, einschließlich Alpha vom Chroma-Key-Verfahren, in dem ein durchsichtiges Pixel ein Alpha gleich null, ein Alpha pro CLUT-Eingabe, ein Alpha von Y (Helligkeitssignal) oder ein Alpha pro Fenster besitzt, wobei ein Alphawert alle Inhalte eines gegebenen Fensters kennzeichnet.
  • Der Grafikumsetzer-Block 90 greift vorzugsweise während der Umsetzung von CLUT-formatierten Ursprungs-Grafikdaten auf die CLUT 92 zu. In einer Ausführungsform der vorliegenden Erfindung gibt es nur eine CLUT. In einer anderen Ausführungsform werden mehrere CLUTs verwendet, um unterschiedliche Grafikfenster zu verarbeiten, die Grafikdaten mit unterschiedlichen CLUT-Formaten besitzen. Die CLUT kann neu geschrieben werden, indem die neuen CLUT-Daten über den DMA-Block abgerufen werden, wenn erforderlich. In der Praxis dauert es für gewöhnlich länger, die CLUT neu zu schreiben, als Zeit in einer horizontalen Austastlücke zur Verfügung steht, daher ermöglicht das System vorzugsweise eine horizontale Zeilenzeit zum Ändern der CLUT. Nicht-CLUT-Bilder können angezeigt werden, während die CLUT geändert wird. Der Farbraum der Einträge in der CLUT ist vorzugsweise in YUV, kann aber auch in RGB ausgeführt werden.
  • Der Grafiküberblend-Block 94 empfängt Ausgaben vom Grafikumsetzer-Block 90 und blendet vorzugsweise ein Fenster zur Zeit entlang der gesamten Breite einer Abtastzeile über, wobei das hinterste Grafikfenster zuerst verarbeitet wird. Der Überblend-Block verwendet die Ausgabe vom Umsetzer-Block, um die Inhalte des SRAM 96 zu verändern. Das Ergebnis jeder Pixel-Überblendoperation ist ein Pixel im SRAM, das aus der gewichteten Summe der verschiedenen Grafikebenen bis zu und einschließlich der gegenwärtigen besteht und dem geeigneten Alpha-Blending-Wert für die Video-Ebenen, wobei die Grafikebenen bis zu und einschließlich der gegenwärtigen berücksichtigt werden.
  • Der SRAM 96 ist vorzugsweise als Satz von Grafikzeilen-Pufferspeicher konfiguriert, wobei jeder Zeilenpufferspeicher einer einzelnen Anzeigezeile entspricht. Das Überblenden von Grafikfenstern erfolgt vorzugsweise mit einem Grafikfenster zur Zeit auf der Anzeigezeile, die gegenwärtig in einen Zeilenpufferspeicher hinein zusammengesetzt wird. Wenn die Anzeigezeile in einem Zeilenpufferspeicher vollständig zusammengesetzt worden ist, so dass alle Grafikfenster auf der Anzeigezeile übergeblendet worden sind, wird der Zeilenpufferspeicher dem Filter-Block 98 zur Verfügung gestellt.
  • Der Filter-Block 98 führt vorzugsweise sowohl Anti-Flatter-Filtern (AFF), als auch vertikale Abtastraten-Umsetzung (SRC) unter Verwendung des gleichen Filters aus. Dieser Block nimmt Eingaben von den Zeilenpufferspeichern und führt endliches Impulsantwort-Mehrphasenfiltern an den Daten durch. Während Anti-Flatter-Filtern und Vertikalachsen-SRC auf der vertikalen Achse erfolgen, kann es unterschiedliche Funktionen, wie Horizontal-SRC oder Skalieren geben, die auf der horizontalen Achse ausgeführt werden. In der bevorzugten Ausführungsform nimmt das Filter Eingaben nur von senkrecht neben einander liegenden Pixeln zur Zeit auf. Es multipliziert jedes eingegebene Pixel mit einem angegebenen Koeffizienten und summiert das Ergebnis, um die Ausgabe zu erzeugen. Der Mehrphasen-Vorgang bedeutet, dass die Koeffizienten, die Abtastwerte einer annähernd durchgängigen Impulsantwort sind, von einer unterschiedlichen Teilpixelphase der Impulsantwort jedes Pixels ausgewählt werden können. In einer anderen Ausführungsform, in der das Filter horizontale Skalierung ausführt, werden geeignete Koeffizienten für ein endliches Impulsantwort-Mehrphasenfilter ausgewählt, um die horizontale Skalierung auszuführen. In einer anderen Ausführungsform können sowohl horizontales, als auch vertikales Filtern und Skalieren ausgeführt werden.
  • Die Video-Anzeige-Pipeline 82 kann einen FIFO-Block 100, einen SRAM-Block 102 und einen Video-Skalierer 104 umfassen. Der Teil der Video-Anzeige-Pipeline der Architektur ist dem der Grafikanzeige-Pipeline ähnlich und teilt einige Elemente mit ihm. In der bevorzugten Ausführungsform unterstützt die Video-Pipeline bis zu ein skaliertes Videofenster pro Abtastzeile, ein Passthrough-Videofenster und einer Hintergrundfarbe, von denen sich alle logisch hinter dem Satz von Grafikfenstern befinden. Die Reihenfolge dieser Fenster ist von hinten nach vorn vorzugsweise festgelegt als Hintergrundfarbe, dann Passthrough-Video, dann skaliertes Video.
  • Die Videofenster besitzen vorzugsweise ein YUV-Format, obgleich sie entweder in 4 : 2 : 2 oder 4 : 2 : 0-Abwandlungen oder anderen Abwandlungen von YUV vorliegen können oder auch in anderen Formaten, wie RGB. Das skalierte Videofenster kann in beide Richtungen von der Anzeige-Einheit vergrößert werden, mit einem Faktor bis zu vier in der bevorzugten Ausführungsform. Anders als bei Grafiken, muss das System bei Video im Allgemeinen nicht auf quadratisches Pixelverhältnis korrigieren. Das skalierte Videofenster kann in Passthrough-Video und eine Hintergrundfarbe Alpha-übergeblendet sein, vorzugsweise unter Verwendung eines konstanten Alpha-Werts für jedes Videosignal.
  • Der FIFO-Block 100 speichert vorübergehend eingelesene Videofenster zur Übertragung an den Video-Skalierer 104. Der Video-Skalierer umfasst vorzugsweise einen Filter, der sowohl Vergrößern, als auch Verkleinern ausführt. Die Skalierer-Funktion kann ein Satz von zwei Mehrphasen-SRC-Funktionen sein, eine für jedes Maß. Der vertikale SRC kann ein 4-Tap-Filter mit programmierbaren Koeffizienten sein, ähnlich, wie der vertikale Filter in der Grafik-Pipeline, und der horizontale Filter kann einen 8-Tap-SRC verwenden, auch mit programmierbaren Koeffizienten. In einer anderen Ausführungsform wird ein kürzerer horizontaler Filter verwendet, wie einen horizontalen 4-Tap-SRC für den Video-Vergrößerer. Da der gleiche Filter vorzugsweise zum Verkleinern verwendet wird, kann es wünschenswert sein, mehr Abgriffe zu verwenden, als genaugenommen zum Vergrößern benötigt werden, um für ein hochwertigeres Verkleinern Tiefpassfiltern unter zu bringen.
  • In der bevorzugten Ausführungsform verwendet die Video-Pipeline eine getrennte Fenstersteuerung und einen getrennten DMA. In einer anderen Ausführungsform können diese Elemente geteilt werden. Die FIFOs sind logisch getrennt, können aber in einem gemeinsamen SRAM ausgeführt sein.
  • Der Video-Kompositor-Block 108 blendet die Ausgabe der Grafik-Anzeige-Pipeline, der Video-Anzeige-Pipeline und des Passthrough-Videos über. Die Hintergrundfarbe wird vorzugsweise als niedrigste Ebene auf der Anzeige übergeblendet, gefolgt vom Passthrough-Video, dem Video-Fenster und übergeblendeten Grafiken. In der bevorzugten Ausführungsform setzt der Video-Kompositor Fenster direkt Zeile für Zeile auf dem Bildschirm zusammen, zu der Zeit, wenn der Bildschirm angezeigt wird und erhält dabei Speicher und Bandbreite. Der Video-Kompositor kann umfassen, umfasst jedoch nicht vorzugsweise Anzeige-Bildpufferspeicher, Anzeigen mit double-buffered Anzeigen, off-screen Bitmaps oder Blitter.
  • Mit Bezug auf 5 umfasst die Anzeige-Einheit 58 vorzugsweise einen Grafik-FIFO 132, einen Grafik-Umsetzer 134, einen RGB-YUV-Umsetzer 136, einen YUV444-YUV422-Umsetzer 138 und einen Grafik-Überblender 140. Der Grafik-FIFO 132 empfängt Ursprungs-Grafikdaten vom Speicher über einen Grafik-DMA 124 und leitet sie an den Grafik-Umsetzer 134 weiter, der vorzugsweise die Ursprungs-Grafikdaten in das Format YUV 4 : 4 : 4 oder in ein anderes geeignetes Format umsetzt. Eine Fenstersteuerung 122 steuert die Übertagung von Ursprungs-Grafikdaten vom Speicher zum Grafik-Umsetzer 132. Der Grafik-Umsetzer greift vorzugsweise auf den RGB-YUV-Umsetzer 136 während der Umsetzung von RGB-formatierten Daten und die Grafik-CLUT 146 während der Umsetzung von CLUT-formatierten Daten zu. Der RGB-YUV-Umsetzer ist vorzugsweise ein Farbraum-Umsetzer, der Ursprungs-Grafikdaten im RGB-Raum in Grafikdaten im YUV-Raum umsetzt. Die Grafik-CLUT 146 umfasst vorzugsweise eine CLUT 150, die Pixelwerte für CLUT-formatierte Grafikdaten speichert, und eine CLUT-Steuerung 152, die den Betrieb der CLUT steuert.
  • Der YUV444-YUV422-Umsetzer 138 setzt Grafikdaten vom Format YUV 4 : 4 : 4 in das Format YUV 4 : 2 : 2 um. Die Bezeichnung „YUV 4 : 4 : 4" bedeutet im herkömmlichen Sinne, dass es jeweils für vier horizontale benachbarte Abtastwerte vier Y-Werte, vier U-Werte und vier V-Werte gibt; die Bezeichnung „YUV 4 : 2 : 2" bedeutet im herkömmlichen Sinne, dass es jeweils für vier Abtastwerte vier Y-Werte, zwei U-Werte und zwei V-Werte gibt. Der YUV444-YUV422-Umsetzer 138 ist vorzugsweise ein UV-Dezimator, der U und V von vier Abtastwerten pro jeweils vier Abtastwerten von Y in zwei Abtastwerte pro jeweils vier Abtastwerten von Y unterabtastet.
  • Grafikdaten im Format YUV 4 : 4 : 4 und im Format YUV 4 : 2 : 2 umfassen vorzugsweise auch vier Alphawerte pro vier Abtastwerte. Grafikdaten im Format YUV 4 : 4 : 4 mit vier Alphawerten pro vier Abtastwerte können so behandelt werden, als lägen sie im Format aYUV 4 : 4 : 4 : 4 vor; Grafikdaten im Format YUV 4 : 2 : 2 mit vier Alphawerten pro vier Abtastwerte können so behandelt werden, als lägen sie im Format aYUV 4 : 4 : 2 : 2 vor.
  • Der YUV444-YUV422-Umsetzer kann auch Tiefpassfilterung von UV und Alpha ausführen. Wenn zum Beispiel die Grafikdaten mit dem Format YUV 4 : 4 : 4 einen höheren als den gewünschten Frequenzinhalt haben, kann ein Tiefpassfilter in dem YUV444-YUV422-Umsetzer eingeschaltet werden, um Hochfrequenz-Bestandteile in den U- und V-Signalen auszufiltern und um angepasstes Filtern der Alphawerte auszuführen.
  • Der Grafik-Überblender 140 überblendet die YUV 4 : 2 : 2-Signale, vorzugsweise eine Zeile zur Zeit, unter Verwendung von Alpha-Blending zusammen, um eine einzelne Zeile von Grafik vom gesamten Grafikfenster auf der derzeitigen Anzeigezeile zu erzeugen. Der Filter 170 umfasst vorzugsweise einen einzelnen vertikalen 4-Tap-Mehrphasen- Grafikfilter 172 und einen vertikalen Koeffizientenspeicher 174. Der Grafikfilter kann sowohl Anti-Flatter-Filtern, als auch vertikales Skalieren ausführen. Der Filter empfängt vorzugsweise Grafikdaten von der Anzeige-Einheit durch einen Satz von sieben Zeilenpufferspeichern 59, wobei vier der sieben Zeilenpufferspeicher vorzugsweise die Abgriffe des Grafikfilters zu jeder gegebenen Zeit mit Daten versorgen.
  • In der bevorzugten Ausführungsform kann das System Videoeingaben empfangen, die ein dekodiertes MPEG-Video im Format ITU-R 656 und ein analoges Videosignal umfassen. Der ITU-R 656-Decoder 160 verarbeitet das decodierte MPEG-Video, um Takt- und Dateninformationen auszublenden. In einer Ausführungsform setzt ein auf dem Chip befindlicher Video-Decoder (VDEC) 50 das analoge Videosignal in ein digitalisiertes Videosignal um. In einer anderen Ausführungsform setzt ein externer VDEC, wie der Decoder Brooktree BT829, das analoge Video in digitalisiertes analoges Video um und stellt dem System das digitalisierte Video als Bypass-Video 130 bereit.
  • Analoges Video oder MPEG-Video kann dem Video-Kompositor als Passthrough-Video bereit gestellt werden. Anders können beide Arten von Video in den Speicher eingelesen und dem Video-Kompositor als ein skaliertes Videofenster bereit gestellt werden. Die digitalisierten analogen Videosignale haben vorzugsweise eine Pixel-Abtastrate von 13,5 MHz, enthalten einen 16-Bit-Datenstrom im Format YUV 4 : 2 : 2 und umfassen Taktsignale, wie das obere Halbbild, und vertikale Synchronisationssignale.
  • Der VDEC 50 umfasst einen Zeitfehlerausgleicher (TBC) 72, umfassend eine TBC-Steuerung 164 und einen FIFO 166. Um Passthrough-Video bereit zu stellen, das mit einem Anzeigetakt synchronisiert wird, vorzugsweise ohne Verwendung eines Bildpufferspeichers, wird das digitalisierte analoge Video in der Zeitdomäne im TBC 72 korrigiert, bevor es mit anderen Grafik- und Videoquellen übergeblendet wird. Während der Zeitfehlerausgleichung wird der Videoeingang, der mit einer Nennfrequenz von 13,5 MHz läuft, mit dem Anzeigetakt synchronisiert, der mit einer Nennfrequenz von 13,5 MHz am Ausgang läuft; diese beiden Frequenzen, deren beider Nennwert 13,5 MHz beträgt, sind nicht notwendigerweise genau die gleiche Frequenz. Im TBC wird das Video vorzugsweise vom Videoeingang durch eine halbe Abtastzeile pro Halbbild versetzt.
  • Ein Einlese-FIFO 158 und ein Einlese-DMA 154 lesen vorzugsweise digitalisierte analoge Videosignal und MPEG-Video ein. Die SDRAM-Steuerung 126 stellt dem externen SDRAM eingelesene Video-Vollbilder bereit. Ein Video-DMA 144 überträgt die eingelesenen Video-Vollbilder an einen Video-FIFO 148 vom externen SDRAM.
  • Die digitalisierten analogen Videosignale und das MPEG-Video werden vorzugsweise vor dem Einlesen auf weniger als 100% verkleinert und nach dem Einlesen auf mehr auf 100% vergrößert. Der Video-Skalierer 52 wird sowohl von Vergrößerungs-, als auch von Verkleinerungs-Operationen geteilt. Der Video-Skalierer umfasst vorzugsweise einen Multiplexer 176, einen Satz von Zeilenpufferspeichern 178, einen horizontalen und vertikalen Koeffizientenspeicher 180 und eine Skalierungs-Einheit 182. Die Skalierungs-Einheit 182 umfasst vorzugsweise einen Satz von zwei Mehrphasenfiltern, einen jeweils für das horizontale und einen für das vertikale Maß.
  • Der vertikale Filter umfasst vorzugsweise einen 4-Tap-Filter mit programmierbaren Filterkoeffizienten. Der horizontale Filter umfasst vorzugsweise einen 8-Tap-Filter mit programmierbaren Filterkoeffizienten. In der bevorzugten Ausführungsform versorgen drei Zeilenpufferspeicher 178 die Skalierungs-Einheit 182 mit Videosignalen. Die drei Zeilenpufferspeicher 178 sind vorzugsweise 720 × 16 Zweiport-SRAMs. Zum vertikalen Filtern können die drei Zeilenpufferspeicher 178 Videosignale an drei der vier Abgriffe des vertikalen 4-Tap-Filters bereitstellen, während der Videoeingang das Videosignal direkt am vierten Abgriff bereitstellt. Zum horizontalen Filtern kann ein Schieberegister mit acht Zellen in Reihe verwendet werden, um den acht Abgriffen des horizontalen Mehrphasenfilters Eingaben bereit zu stellen, wobei jede Zelle eine Eingabe für einen der acht Abgriffe bereitstellt.
  • Zum Verkleinern stellt der Multiplexer 168 dem Video-Skalierer vor dem Einlesen vorzugsweise ein Videosignal bereit. Zum Vergrößern stellt der Video-FIFO 148 dem Video-Skalierer vorzugsweise nach dem Einlesen ein Videosignal bereit. Da der Video-Skalierer 52 zwischen dem Verkleinerungs- und Vergrößerungs-Filtern geteilt wird, werden Verkleinerungs- und Vergrößerungs-Operationen in dieser besonderen Ausführungsform nicht gleichzeitig ausgeführt.
  • In der bevorzugten Ausführungsform überblendet der Video-Kompositor 60 Signale von bis zu vier unterschiedlichen Quellen über, die übergeblendete Grafik vom Filter 170, Video von einem Video-FIFO 148, Passthrough-Video von einem Multiplexer 168 und Hintergrundfarbe von einem Hintergrundfarbmodul 184 umfassen können. Anders kann eine Vielzahl von Signalen zusammengesetzt werden, umfassend beispielsweise zwei oder mehrerer Videofenster. Der Video-Kompositor stellt vorzugsweise das endgültige Ausgabesignal dem Datengröße-Umsetzer 190 bereit, der den 16-Bit Wortabtastwert in ein 8-Bit-Wordabtastwert bei zweifacher Taktfrequenz serialisiert und den 8-Bit-Wortabtastwert dem Video-Codierer 62 bereitstellt.
  • Der Video-Codierer 62 codiert die bereit gestellten YUV 4 : 2 : 2 Videodaten und gibt sie als eine Ausgabe des Grafikanzeigesystems in einem beliebigen gewünschten analogen oder digitalen Format aus.
  • II. Fenster-Deskriptor und Vollflächen-Deskriptor
  • Bei der Erstellung von Grafikanzeigen muss der Künstler oder Anwendungsentwickler häufig rechteckige Objekte auf dem Bildschirm einfügen, wobei die Objekte einen Vollton und einen einheitlichen Alpha-Blending-Faktor (Alphawert) besitzen. Diese Bereiche (oder Objekte) können mit anderen Anzeige-Objekten über oder neben ihnen wiedergegeben werden. In herkömmlichen Grafikvorrichtungen, werden solche Volltonobjekte unter Verwendung der Anzahl verschiedener Pixel wiedergegeben, die zum Füllen des Bereichs erforderlich sind. Es kann hinsichtlich der Speichergröße und der Speicherbandbreite vorteilhaft sein, solche Objekte direkt an der Anzeige wieder zu geben, ohne die Speichergröße oder Bandbreite zu verbrauchen, die in herkömmlichen Ansätzen erforderlich ist.
  • In der bevorzugten Ausführungsform werden Video und Grafik in Bereichen angezeigt, die als „Fenster" bezeichnet werden. Jedes Fenster ist vorzugsweise ein rechteckiger Bereich des Bildschirms, der durch den Beginn und das Ende von Anzeigezeilen und den Beginn und das Ende von Pixeln auf jeder Anzeigezeile begrenzt ist. Ursprungs-Grafikdaten, die auf einem Bildschirm zu verarbeiten und anzuzeigen sind, sind vorzugsweise im externen Speicher gespeichert. In der bevorzugten Ausführungsform setzt eine Anzeige-Einheit Ursprungsdaten in ein Pixelmuster in einem Format um, das zur Anzeige geeignet ist.
  • In einer Ausführungsform der vorliegenden Erfindung führt die Anzeige-Einheit Grafikfenster vieler Arten direkt in Hardware aus. Jedes der Grafikfenster auf dem Bildschirm besitzt seinen eigenen Wert verschiedener Parameter, wie die Lage auf dem Bildschirm, die Startadresse im Speicher, die Tiefenreihenfolge auf dem Bildschirm, den Pixelfarbtyp, etc. Die Grafikfenster können so angezeigt werden, dass sie einander in beliebigen räumlichen Beziehungen überlappen oder überdecken können.
  • In der bevorzugten Ausführungsform umfasst eine Datenstruktur, die als „Fenster-Deskriptor" bezeichnet wird, Parameter, die jedes Grafikfenster beschreiben und steuern. Die Fenster-Deskriptoren sind vorzugsweise Datenstrukturen zur Darstellung von Grafikbildern, die in logischen Flächen oder Fenstern zur Anzeige angeordnet sind. Jede Datenstruktur umfasst vorzugsweise ein Feld, das die relative Tiefe der logischen Fläche auf der Anzeige angibt, ein Feld, das den Alphawert für die Grafiken in der Fläche angibt, ein Feld, das die Lage der logischen Fläche auf der Anzeige angibt, und ein Feld, das die Stelle im Speicher angibt, wo Grafikdaten für die logische Fläche gespeichert sind.
  • Alle Elemente, aus denen ein beliebiger Grafikanzeige-Bildschirm besteht, werden vorzugsweise bestimmt, indem alle Fenster-Deskriptoren der Grafikfenster, aus denen der Bildschirm besteht, in einer Fenster-Deskriptor-Liste kombiniert werden. Bei jeder Anzeige-Halbbildzeit oder einer Vollbildzeit baut die Anzeige-Einheit das Anzeigebild von der gegenwärtigen Fenster-Deskriptor-Liste. Die Anzeige-Einheit setzt alle Grafikfenster in der derzeitigen Fenster-Deskriptor-Liste gemäß den Parametern in den Fenster-Deskriptoren und den Ursprungs-Grafikdaten, die zu den Grafikfenstern gehören, zu einem vollständigen Bildschirmbild zusammen.
  • Mit der Einführung von Fenster-Deskriptoren und der Echtzeit-Zusammensetzung von Grafikfenstern kann ein Grafikfenster mit einem Vollton und fester Lichtdurchlässigkeit vollständig in einem Fenster-Deskriptor, der die geeigneten Parameter besitzt, beschrieben werden. Diese Parameter beschreiben die Farbe und die Lichtdurchlässigkeit (Alpha), als wäre es ein normales Grafikfenster. Der einzige Unterschied ist, dass zu diesem Fenster-Deskriptor kein Pixelmuster gehört. Die Anzeige-Einheit erzeugt ein entsprechendes Pixelmuster und führt das Überblenden in Echtzeit aus, wenn das Grafikfenster anzuzeigen ist.
  • Zum Beispiel kann ein Fenster, das aus einem rechteckigen Objekt besteht und eine gleichbleibende Farbe und einen gleichbleibenden Alphawert besitzt, auf einem Bildschirm erzeugt werden, indem ein Fenster-Deskriptor in die Fenster-Deskriptor-Liste aufgenommen wird. In diesem Fall gibt der Fenster-Deskriptor die Farbe und den Alphawert des Fensters und ein Null-Pixelformat an, d. h. keine Pixelwerte sind aus dem Speicher zu lesen. Andere Parameter geben die Fenstergröße und die Lage auf dem Bildschirm an, wodurch das Erzeugen von Vollton-Fenstern beliebiger Größe und Lage ermöglicht wird. Somit ist in der vorliegenden Erfindung kein Pixelmuster erforderlich, die Anforderungen an die Speicherbandbreite werden herab gesetzt und ein Fenster beliebiger Größe kann angezeigt werden.
  • Eine andere Art Grafikfenster, welche die Fenster-Deskriptoren vorzugsweise beschreiben, ist ein Nur-Alpha-Fenster. Nur-Alpha-Fenster verwenden vorzugsweise eine gleichbleibende Farbe und besitzen vorzugsweise Grafikdaten mit 2, 4 oder 8 Bits pro Pixel. Zum Beispiel kann ein Alpha-4-Format ein Nur-Alpha-Format sein, das in einer der Nur-Alpha-Fenster verwendet wird. Das Alpha-4-Format gibt das Nur-Alpha-Fenster mit Alpha-Blending-Werten an, die vier Bits pro Pixel haben. Das Nur-Alpha-Fenster kann insbesondere nützlich zum Anzeigen von Text sein, der durch Anti-Aliasing geglättet wurde.
  • Eine Fenstersteuerung steuert vorzugsweise die Übertragung von Grafikanzeige-Informationen in den Fenster-Deskriptoren zur Anzeige-Einheit. In einer Ausführungsform hat die Fenstersteuerung einen internen Speicher zum Speichern von acht Fenster-Deskriptoren. In einer anderen Ausführungsform kann die Fenstersteuerung einen Speicher besitzen, der zugeordnet ist, um mehr oder weniger Fenster-Deskriptoren zu speichern. Die Fenstersteuerung liest vorzugsweise die Fenster-Deskriptoren vom externen Speicher über ein Direktspeicherzugriff (DMA)-Modul.
  • Das DMA-Modul kann von beiden Pfaden der Anzeige-Pipeline geteilt werden, so wie von einem Teil der Steuerlogik, wie der Fenstersteuerung und der CLUT. Um die Anzeige-Pipeline zu unterstützen, hat das DMA-Modul vorzugsweise drei Kanäle, in denen die Grafik-Pipeline und die Video-Pipeline getrennte DMA-Module verwenden. Diese können das Fenster-Deskriptor-Lesemodul, das Grafikdaten-Lesemodul und das CLUT-Lesemodul umfassen. Jeder Kanal hat extern zugreifbare Register zum Steuern der Startadresse und der Anzahl zu lesender Wörter.
  • Nachdem das DMA-Modul eine Übertragung beendet hat, wie von seinen Start- und Längenregistern angegeben, aktiviert es vorzugsweise ein Signal, welches angibt, dass die Übertragung vollständig ist. Dies ermöglicht dem DMA-Modul, das Operationen für den Kanal aufbaut, den Aufbau einer anderen Übertragung zu beginnen. Im Falle von Grafikdaten-Lesevorgängen, baut die Fenstersteuerung vorzugsweise eine Übertragung einer Zeile von Grafikpixeln auf und wartet dann darauf, dass die DMA-Steuerung angibt, dass die Übertragung dieser Zeile vollständig ist, bevor sie die Übertragung der nächsten Zeile oder einer Zeile eines anderen Fensters aufbaut.
  • Mit Bezug auf 6 umfasst jeder Fenster-Deskriptor vorzugsweise vier 32-Bit-Wörter (bezeichnet mit „Wort 0" bis „Wort 3"), die Grafikfensteranzeige-Informationen umfassen. Wort 0 umfasst vorzugsweise einen Fenster-Operationsparameter, einen Fenster-Formatparameter und eine Fensterspeicher-Startadresse. Der Fenster-Operationsparameter ist vorzugsweise ein 2-Bit-Feld, das angibt, welche Operation mit dem Fenster-Deskriptor auszuführen ist. Wenn der Fenster-Operationsparameter 00b ist, führt der Fenster-Deskriptor eine normale Anzeige-Operation aus, und wenn er 01b ist, führt der Fenster-Deskriptor das Neuladen der Grafik-Farbmischtabelle („CLUT") aus. Der Fenster-Operationsparameter von 10b wird vorzugsweise nicht verwendet. Der Fenster-Operationsparameter von 11b gibt vorzugsweise an, dass der Fenster-Deskriptor der letzte einer Reihe von Fenster-Deskriptoren im Speicher ist.
  • Der Fenster-Formatparameter ist vorzugsweise ein 4-Bit-Feld, das ein Datenformat der Grafikdaten angibt, das in dem Grafikfenster anzuzeigen ist. Die Datenformate, die dem Fenster-Formatparameter entsprechen, sind in der nachfolgenden Tabelle 1 beschrieben.
  • Figure 00350001
    TABELLE 1: Grafikdatenformate
  • Die Fenster-Speicherstartadresse ist vorzugsweise ein 26-Bit-Datenfeld, das eine Speicherstartadresse der Grafikdaten des auf dem Bildschirm anzuzeigenden Grafikfensters angibt. Die Fenster-Speicherstartadresse zeigt auf die erste Adresse im entsprechenden externen SDRAM, auf die zugegriffen wird, um Daten auf dem Grafikfenster anzuzeigen, die vom Fenster-Deskriptor definiert werden. Wenn der Fenster-Operationsparameter die Neulade-Operation der Grafik-CLUT angibt, gibt die Fenster-Speicherstartadresse eine beginnende Speicheradresse von Daten an, die in die Grafik-CLUT zu laden sind.
  • Wort 1 im Fenster-Deskriptor umfasst vorzugsweise einen Fenster-Ebenenparameter, einen Fenster-Speicherabstandswert und einen Fenster-Farbwert. Der Fenster-Ebenenparameter liegt vorzugsweise als 4-Bit- Datenwert vor, welcher die Reihenfolge der Ebenen der Grafikfenster angibt. Einige der Grafikfenster können teilweise oder vollständig über einander gestapelt sein, wobei der Fenster-Ebenenparameter die Stapelreihenfolge angibt. Der Fenster-Ebenenparameter gibt vorzugsweise an, wo im Stapel das vom Fenster-Deskriptor definierte Grafikfenster platziert werden sollte.
  • In der bevorzugten Ausführungsform wird ein Grafikfenster mit einem Fenster-Ebenenparameter von 0000b als unterste Ebene definiert, und ein Grafikfenster mit einem Fenster-Ebenenparameter von 1111b wird als oberste Ebene definiert. Vorzugsweise können bis zu acht Grafikfenster in jeder Abtastzeile verarbeitet werden. Der Fenster-Speicherabstandswert ist vorzugsweise ein 12-Bit-Datenfeld, das den Abstand der Fenster-Speicheradressierung angibt. „Abstand" bezieht sich auf den Unterschied in der Speicheradresse zwischen zwei Pixeln, die innerhalb eines Fensters senkrecht neben einander liegen.
  • Der Fenster-Farbwert ist vorzugsweise eine 16-Bit RGB-Farbe, die als eine einzelne Farbe auf das gesamte Grafikfenster aufgebracht wird, wenn der Fenster-Formatparameter 1000b, 1001b, 1010b oder 1011b ist. Jedes Pixel im Fenster hat vorzugsweise die gleiche Farbe, die vom Fenster-Farbwert angegeben wird, während der Alphawert pro Pixel und pro Fenster bestimmt wird, wie im Fenster-Deskriptor und dem Pixelformat angegeben. Die Einheit verwendet vorzugsweise den Fenster-Farbwert, um eine Vollfläche aufzubauen.
  • Wort 2 im Fenster-Deskriptor umfasst vorzugsweise einen Alphatyp, einen Fenster-Alphawert, einen Fenster-Y-Endwert und einen Fenster-Y-Startwert. Das Wort 2 umfasst vorzugsweise auch zwei Bits, die zur zukünftigen Definition reserviert sind, wie hochauflösende Fernseh(HDTV)-Anwendungen. Der Alphatyp ist vorzugsweise ein 2-Bit-Datenfeld, welches das Verfahren zur Auswahl eines Alphawerts für das Grafikfenster angibt. Der Alphatyp von 00b gibt an, dass der Alphawert vom Chroma-Keying auszuwählen ist. Chroma-Keying bestimmt auf der Grundlage der Farbe jedes Pixels, ob jedes Pixel undurchsichtig oder durchsichtig ist. Undurchsichtige Pixel werden vorzugsweise erachtet, einen Alphawert von 1,0 zu haben und durchsichtige Pixel einen Alphawert von 0, beide auf einer Skala von 0 bis 1. Chroma-Keying vergleicht die Farbe jedes Pixels mit einer Bezugsfarbe oder mit einer Reihe möglicher Farben; wenn das Pixel mit der Bezugsfarbe übereinstimmt oder wenn seine Farbe innerhalb des angegebenen Farbbereichs fällt, dann wird das Pixel als durchsichtig bestimmt. Ansonsten wird es als undurchsichtig bestimmt.
  • Der Alphatyp von 01b gibt an, dass der Alphawert von der Grafik-CLUT abgeleitet werden sollte, unter Verwendung des Alphawerts in jedem Eintrag der CLUT. Der Alphatyp von 10b gibt an, dass der Alphawert von der Helligkeit Y abzuleiten ist. Der Y-Wert, der sich aus der Umwandlung der Pixelfarbe in den YUV-Farbraum ergibt, wenn die Pixelfarbe nicht bereits in der YUV-Farbe ist, wird als Alphawert für das Pixel verwendet. Der Alphatyp von 11b gibt an, dass nur ein einzelner Alphawert auf das gesamte Grafikfenster anzuwenden ist. Der einzelne Alphawert wird vorzugsweise als nächstes als Fenster-Alphawert umfasst.
  • Der Fenster-Alphawert ist vorzugsweise ein 8-Bit-Alphawert, der auf das gesamte Grafikfenster angewendet wird. Der effektive Alphawert für jedes Pixel im Fenster ist das Produkt des Fenster-Alphas und des Alphawerts, der für jedes Pixel bestimmt wird. Wenn zum Beispiel der Fenster-Alphawert 0,5 ist, auf einer Skala von 0 bis 1, codiert als 0x80, dann beträgt der effektive Alphawert jedes Pixels im Fenster die Hälfte des Werts, der im oder für das Pixel selbst codiert ist. Wenn der Fenster-Formatparameter 1000b ist, d. h. ein einzelner Alphawert ist auf das Grafikfenster anzuwenden, dann wird der Alphawert pro Pixel behandelt, als wäre er 1,0 und der effektive Alphawert ist gleich dem Fenster-Alphawert.
  • Der Fenster-Y-Endwert ist vorzugsweise ein 10-Bit-Datenfeld, das die endende Anzeigezeile des Grafikfensters auf dem Bildschirm angibt. Das Grafikfenster, das vom Fenster-Deskriptor definiert wird, endet an der Anzeigezeile, angegeben vom Fenster-Y-Endwert. Der Fenster-Y-Startwert ist vorzugsweise ein 10-Bit-Datenfeld, das eine beginnende Anzeigezeile des Grafikfensters auf dem Bildschirm angibt. Das Grafikfenster, das vom Fenster-Deskriptor definiert wird, beginnt an der Anzeigezeile, angegeben vom Fenster-Y-Startwert. Somit kann eine Anzeige eines Grafikfenster auf Grundlage des Fenster-Y-Startwerts auf einer beliebigen Anzeigezeile auf dem Bildschirm beginnen.
  • Wort 3 im Fenster-Deskriptor umfasst vorzugsweise einen Fenster-Filteraktivierungs-Parameter, einen leeren Startpixelwert, einen Fenster-X-Größenwert und einen Fenster-X-Startwert. Außerdem umfasst das Wort 3 zwei Bits, die zur zukünftigen Bestimmung, wie für HDTV-Anwendungen, vorbehalten sind. Fünf Bits des 32-Bit-Worts 3 werden nicht verwendet. Der Fenster-Filteraktivierungs-Parameter ist ein 1-Bit-Feld, das angibt, ob Tiefpassfiltern während der Umwandlung von YUV 4 : 4 : 4 nach YUV 4 : 2 : 2 zu aktivieren ist.
  • Der leere Startpixelwert ist vorzugsweise ein 4-Bit-Parameter, der eine Anzahl leerer Pixel zu Beginn jeder Anzeigezeile angibt. Der leere Startpixelwert bedeutet vorzugsweise, dass die Anzahl Pixel des ersten Worts, das aus dem Speicher gelesen wird, zu Beginn des entsprechenden Grafikfensters außer Acht zu lassen ist. Dieses Feld gibt die Anzahl Pixel im ersten Wort von Daten an, das aus dem Speicher gelesen wird, die nicht angezeigt werden. Wenn zum Beispiel die Speicherworte 32 Bits breit und die Pixel jeweils 4 Bits sind, gibt es acht mögliche erste Pixel im ersten Wort. Unter Verwendung dieses Felds können 0 bis 7 Pixel übersprungen werden, was das erste bis achte Pixel im Wort jeweils als erstes Pixel erscheinen lässt. Der leere Startpixelwert ermöglicht, dass Grafikfenster eine beliebige waagerechte Ausgangslage auf dem Bildschirm haben und kann während des weichen waagerechten Rollens eines Grafikfensters verwendet werden.
  • Der Fenster-X-Größenwert ist vorzugsweise ein 10-Bit-Datenfeld, das die Größe eines Grafikfensters in der X-Richtung angibt, d. h. in waagerechter Richtung. Der Fenster-X-Größenwert gibt vorzugsweise die Anzahl Pixel eines Grafikfensters in einer Anzeigezeile an.
  • Der Fenster-X-Startwert ist vorzugsweise ein 10-Bit-Datenfeld, das ein Startpixel des Grafikfensters auf einer Anzeigezeile angibt. Das Grafikfenster, das vom Fenster-Deskriptor definiert wird, beginnt vorzugsweise an dem Pixel, das von dem Fenster-X-Startwert jeder Anzeigezeile angegeben wird. Bei dem Fenster-X-Startwert kann ein beliebiges Pixel einer gegebenen Anzeigezeile gewählt werden, um mit dem Ausmalen des Grafikfensters zu beginnen. Daher ist es nicht erforderlich, Pixel vor dem Beginn des Grafik-Anzeigebereichs mit Schwarz auf den Bildschirm zu laden.
  • III. Grafikfenster-Steuerungsdaten-Weiterleitungsmechanismus
  • In einer Ausführungsform der vorliegenden Erfindung nimmt ein FIFO im Grafikanzeigepfad die Ursprungs-Grafikdaten als die Ursprungs-Grafikdaten an, wenn die Ursprungs-Grafikdaten aus dem Speicher gelesen werden, bei voller Speicherdatenrate, unter Verwendung eines Takts der Speichersteuerung. In dieser Ausführungsform stellt der FIFO diese Daten, die ursprünglich in einem externen Speicher gespeichert sind, an nachfolgende Blöcke in der Grafik-Pipeline bereit.
  • In Systemen, wie Grafikanzeigesystemen, in denen viele Arten von Daten von einem Modul, wie einem Speichersteuerungs-Untersystem, ausgegeben und in einem anderen Untersystem, wie einem Grafik-Verarbeitungs-Untersystem, verwendet werden können, wird es typischer Weise zunehmend schwieriger, eine Kombination sich dynamisch ändernder Datenarten und Datenübertragungsraten und FIFO-Pufferspeicher zwischen den ausgebenden und verbrauchenden Modulen zu unterstützen. Der herkömmliche Weg, solche Probleme anzugehen, ist, einen logischen Block zu entwerfen, der die sich verändernden Parameter der Datentypen im ersten Modul versteht und alle relevanten Variablen im zweiten Modul steuert. Dies kann aufgrund von Variablen-Verzögerungen zwischen den beiden Modulen schwierig sein, aufgrund der Verwendung von FIFOs zwischen ihnen und der sich ändernden Datenrate und aufgrund der Vielschichtigkeit, eine Vielzahl von Datenarten zu unterstützen.
  • Das System verarbeitet vorzugsweise Grafikbilder zur Anzeige, indem es die Grafikbilder in Fenstern anordnet, in denen die Grafikbilder auf dem Bildschirm erscheinen, wobei es Daten erhält, welche die Fenster beschreiben, die Daten gemäß der Tiefe des Fensters auf der Anzeige sortiert, Grafikbilder vom Speicher überträgt und die Grafikbilder unter Verwendung von Alphawerten überblendet, die zu den Grafikbildern gehören.
  • In der bevorzugten Ausführungsform, wird ein Paket von Steuer-Informationen, das als „Header-Paket" bezeichnet wird, von der Fenstersteuerung zur Anzeige-Einheit weiter geleitet. Alle erforderlichen Steuer-Informationen von der Fenstersteuerung werden vorzugsweise zur Anzeige-Einheit befördert, so dass alle sachdienlichen Variablen von der Fenstersteuerung rechtzeitig richtig gesteuert werden und so dass die Steuerung nicht von sich ändernden Verzögerungen oder Datenraten zwischen der Fenster-Steuerung und der Anzeige-Einheit abhängt.
  • Ein Header-Paket gibt vorzugsweise den Anfang von Grafikdaten für ein Grafikfenster an. Die Grafikdaten für das Grafikfenster dauern an, bis sie vollständig sind, ohne dass eine Übertragung eines anderen Header-Pakets erforderlich ist. Ein neues Header-Paket wird vorzugsweise im FIFO platziert, wenn ein anderes Fenster anfangen soll. Die Header-Pakete können gemäß der Reihenfolge der entsprechenden Fenster-Deskriptoren in der Fenster-Deskriptor-Liste übertragen werden.
  • In einer Anzeige-Einheit, die nach Listen von Fenster-Deskriptoren arbeitet, kann angegeben sein, dass Fenster einander überlappen. Gleichzeitig können Fenster auf einer beliebigen Zeile anfangen und enden, und es kann viele Fenster geben, die auf einer beliebigen Zeile sichtbar sind. Es gibt eine große Anzahl möglicher Kombinationen von Anfangs- und Endlagen entlang senkrechter und waagerechter Achsen und Tiefenreihenfolgelagen. Das System gibt vorzugsweise die Tiefenreihenfolge aller Fenster in der Fenster-Beschreibungs-Liste an und führt die Tiefenreihenfolge richtig aus, während es alle Fenster berücksichtigt.
  • Jeder Fenster-Deskriptor umfasst vorzugsweise einen Parameter, der die Tiefenlage des zugehörigen Fensters angibt. Der Bereich, der für diesen Parameter zulässig ist, kann als fast jeder nützliche Wert definiert sein. In der bevorzugten Ausführungsform gibt es 16 mögliche Tiefenwerte im Bereich von 0 bis 15, wobei 0 der hinterste (tiefste oder am meisten vom Betrachter weg) ist und 15 der oberste oder vorderste Tiefenwert ist. Die Fenster-Deskriptoren sind in der Fenster-Deskriptor-Liste nach der ersten Anzeige-Abtastzeile geordnet, in der das Fenster erscheint. Wenn beispielsweise Fenster A die Zeilen 10 bis 20 umfasst, Fenster B die Zeilen 12 bis 18 und Fenster C die Zeilen 5 bis 20, wäre die Reihenfolge dieser Deskriptoren in der Liste (C, A, B).
  • In der Hardware, die vorzugsweise eine VLSI-Vorrichtung ist, gibt es vorzugsweise einen auf dem Chip befindlichen Speicher, der in der Lage ist, eine Reihe von Fenster-Deskriptoren zu speichern. In der bevorzugten Ausführung kann dieser Speicher bis zu 8 Fenster-Deskriptoren auf dem Chip speichern, wobei die Größe dieses Speichers jedoch ohne Verlust von Allgemeingültigkeit größer oder kleiner gemacht werden kann. Fenster-Deskriptoren werden vom Hauptspeicher in den auf dem Chip befindlichen Deskriptor-Speicher gelesen, der Reihe nach vom Beginn der Liste, wobei gestoppt wird, wenn der auf dem Chip befindliche Speicher voll ist oder wenn der zuletzt gelesene Deskriptor ein Fenster beschreibt, das noch nicht sichtbar ist, d. h. dessen Startzeile sich auf einer Zeile befindet, die eine größere Anzahl hat, als die zur Zeit aufgebaute Zeile. Nachdem ein Fenster angezeigt worden und nicht länger sichtbar ist, kann es aus dem auf dem Chip befindlichen Speicher ausgemustert werden, und der nächste Deskriptor in der Liste kann aus dem Hauptspeicher lesen. An jeder gegebenen Anzeigezeile steht die Reihenfolge der Fenster-Deskriptoren in dem auf dem Chip befindlichen Speicher in keinem besonderen Verhältnis zur Tiefenanordnung der Fenster auf dem Bildschirm.
  • Die Hardware, welche die Zusammensetzung des Fensters steuert, baut die Anzeige in Ebenen auf, beginnend von der hintersten Ebene. In der bevorzugten Ausführungsform ist die hinterste Ebene die Ebene C. Die Hardware führt eine Schnellsuche nach dem hintersten Fenster-Deskriptor aus, der noch nicht zusammengesetzt worden ist, ungeachtet seiner Lage in dem auf dem Chip befindlichen Deskriptor-Speicher. In der bevorzugten Ausführungsform wird diese Suche folgendermaßen ausgeführt: Alle 8 Fenster-Deskriptoren werden auf dem Chip so gespeichert, dass von allen die Tiefenreihenfolgezahlen gleichzeitig verfügbar sind. Während die Tiefenzahlen in den Fenster-Deskriptoren 4-Bit-Zahlen sind, die 0 bis 15 darstellen, hat der auf dem Chip befindliche Speicher Speicherplatz für 5 Bits für die Tiefenzahl. Ursprünglich werden die 5 Bits für jeden Deskriptor auf 0 gesetzt. Die Tiefenreihenfolgewerte werden in einer Hierarchie paarweiser Vergleiche verglichen, wobei die untere der beiden Tiefenzahlen in jedem Vergleich den Vergleich gewinnt. Das heißt, in der ersten Stufe des Tests werden die Deskriptorpaare {0, 1), {2, 3), {4, 5) und {6, 7) verglichen, wobei {0–7) die acht Deskriptoren darstellen, die in dem auf dem Chip befindlichen Speicher gespeichert sind. Dies führt zu vier Tiefenzahlen mit zugehörigen Deskriptorzahlen. In der nächsten Stufe vergleichen zwei paarweise Vergleiche {(0, 1), (2, 3)} und {(4, 5), (6, 7)}.
  • Jeder führt zu einer Tiefenzahl der unteren Tiefenreihenfolgezahl und der zugehörigen Deskriptorzahl. Auf der dritten Stufe ermittelt ein paarweiser Vergleich die kleinste Tiefenzahl von allen und ihre zugehörige Deskriptorzahl. Diese Zahl deutet auf den Deskriptor in dem auf dem Chip befindlichen Speicher mit der geringsten Tiefenzahl und daher der größten Tiefe, und dieser Deskriptor wird zuerst verwendet, um das zugehörige Fenster auf dem Bildschirm wieder zu geben. Nachdem dieses Fenster für die derzeitige Abtastzeile auf dem Bildschirm wieder gegeben worden ist, wird das fünfte Bit der Tiefenzahl in dem auf dem Chip befindlichen Speicher auf 1 gesetzt, wodurch gewährleistet wird, dass die Tiefenwertzahl größer als 15 ist, und folglich wird diese Tiefenzahl vorzugsweise so lange nicht mehr das hinterste Fenster sein, bis alle Fenster auf dieser Abtastzeile wieder gegeben worden sind, wobei verhindert wird, dass dieses Fenster zweimal wieder gegeben wird.
  • Nachdem alle Fenster für eine gegebene Abtastzeile wieder gegeben worden sind, werden die fünften Bits aller auf dem Chip befindlichen Tiefenzahlen wieder auf 0 gesetzt; Deskriptoren, die Fenster beschreiben, die nicht mehr auf dem Bildschirm sichtbar sind, werden aus dem auf dem Chip befindlichen Speicher ausgemustert; neue Deskriptoren werden nach Bedarf aus dem Speicher gelesen (das heißt, wenn alle Fenster im auf dem Chip befindlichen Speicher sichtbar sind, wird der nächste Deskriptor vom Speicher gelesen, und dies wiederholt sich, bis der zuletzt gelesene Deskriptor nicht mehr auf dem Bildschirm sichtbar ist), und der Vorgang, den hintersten Deskriptor zu finden und Fenster auf dem Bildschirm wieder zu geben, wiederholt sich.
  • Mit Bezug auf 7 werden Fenster-Deskriptoren vorzugsweise von der Fenstersteuerung sortiert und verwendet, um Grafikdaten- zur Anzeige-Einheit zu übertragen. Jeder der Fenster-Deskriptoren, einschließlich der Fenster-Deskriptoren 0 bis zum Fenster-Deskriptor 7 300ah, umfasst vorzugsweise einen Fenster-Ebenenparameter. Außerdem ist jedem Fenster-Deskriptor vorzugsweise ein Fensterzeilen-„Erledigt"-Kennzeichen zugehörig, das angibt, dass der Fenster-Deskriptor auf einer gegenwärtigen Anzeigezeile verarbeitet worden ist.
  • Die Fenstersteuerung führt vorzugsweise an jeder Anzeigezeile unter Verwendung der Fenster-Ebenenparameter und der Fensterzeilen-„Erledigt"-Kennzeichen Fenster-Sortierung aus. Die Fenstersteuerung platziert vorzugsweise das Grafikfenster unten, welches dem Fenster-Deskriptor mit dem kleinsten Fenster-Ebenenparameter entspricht, während sie das Grafikfenster, welches dem Fenster-Deskriptor mit dem größten Fenster-Ebenenparameter entspricht, oben platziert.
  • Die Fenstersteuerung überträgt vorzugsweise die Grafikdaten für das unterste Grafikfenster, das zuerst zu verarbeiten ist. Die Fenster-Parameter des untersten Fensters sind zu einem Header-Paket zusammengesetzt und in den Grafik-FIFO geschrieben. Die DMA-Einheit sendet vorzugsweise eine Anforderung an die Speichersteuerung, um die entsprechenden Grafikdaten für dieses Fenster zu lesen und die Grafikdaten an den Grafik-FIFO zu senden. Der Grafik-FIFO wird dann von der Anzeige-Einheit gelesen, um eine Anzeigezeile zusammen zu setzen, die dann in die Grafik-Zeilenpufferspeicher geschrieben wird.
  • Das Fensterzeilen-„Erledigt"-Kennzeichen wird vorzugsweise auf „wahr" gesetzt, wann immer die Fensterfläche auf der gegenwärtigen Anzeigezeile verarbeitet worden ist. Das Fensterzeilen-„Erledigt"-Kennzeichen und der Fenster-Ebenenparameter können zum Sortieren verkettet werden. Das Fensterzeilen-„Erledigt"-Kennzeichen wird dem Fenster-Ebenenparameter als bedeutendstes Bit während des Sortierens hinzugefügt, so dass {Fensterzeilen-„Erledigt"-Kennzeichen[4], Fenster-Ebenenparameter [3:0]} eine Fünfbit-Binärzahl ist, ein Fenster-Ebenenwert, mit dem Fensterzeilen-„Erledigt"-Kennzeichen als bedeutendstes Bit.
  • Die Fenstersteuerung wählt vorzugsweise einen Fenster-Deskriptor mit dem kleinsten Fenster-Ebenenwert, der zu verarbeiten ist. Da das Fensterzeilen-„Erledigt"-Kennzeichen vorzugsweise das bedeutendste Bit des Fenster-Ebenenwerts ist, wird jeder Fenster-Deskriptor mit diesem Kennzeichensatz, d. h. jedes Fenster, das auf der gegenwärtigen Anzeigezeile verarbeitet worden ist, einen höheren Fenster-Ebenenwert haben, als ein beliebiger der anderen Fenster-Deskriptoren, die noch nicht auf der derzeitigen Anzeigezeile verarbeitet worden sind. Wenn ein bestimmter Fenster-Deskriptor verarbeitet worden ist, wird das Fensterzeilen-„Erledigt"- Kennzeichen, das dem bestimmten Fenster-Deskriptor zugeordnet ist, vorzugsweise hoch gesetzt, was bedeutet, dass der besondere Fenster-Deskriptor für die gegenwärtige Anzeigezeile verarbeitet worden ist.
  • Ein Sortierer 304 sortiert vorzugsweise alle acht Fenster-Deskriptoren, nachdem ein beliebiger Fenster-Deskriptor verarbeitet worden ist. Das Sortieren kann unter Verwendung von Binärbaum-Sortieren oder jedem anderen geeigneten Sortier-Algorithmus ausgeführt werden. Beim Binärbaum-Sortieren für acht Fenster-Deskriptoren werden die Fenster-Ebenenwerte für vier Paare von Fenster-Deskriptoren auf einer ersten Ebene verglichen, unter Verwendung von vier Vergleichern, um den Fenster-Deskriptor auszuwählen, welcher einem unteren Fenster in jedem Paar entspricht. Auf der zweiten Ebene werden zwei Vergleicher verwendet, um den Fenster-Deskriptor auszuwählen, welcher dem untersten Grafikfenster in jedem der beiden Paare entspricht. Auf der dritten und der letzten Ebene werden die untersten Grafikfenster von jedem der beiden Paare mit einander verglichen, wobei vorzugsweise nur ein Vergleicher verwendet wird, um das untere Fenster auszuwählen.
  • Ein Multiplexer 302 nutzt vorzugsweise Parameter von den Fenster-Deskriptoren mehrfach aus. Die Ausgabe des Sortierers, d. h. das Fenster, das als unterstes ausgewählt wird, wird verwendet, um die Fensterparameter auszuwählen, die an ein Direktspeicherzugriff („DMA")-Modul 306 zu senden sind, um in ein Header-Paket gepackt und an einen Grafik-FIFO 308 geschickt zu werden. Die Anzeige-Einheit liest vorzugsweise das Header-Paket im Grafik-FIFO und verarbeitet die Ursprungs-Grafikdaten auf der Grundlage von Informationen, die im Header-Paket enthalten sind. Das Header-Paket beinhaltet vorzugsweise ein erstes Header-Wort und ein zweites Header-Wort. Entsprechende Grafikdaten werden vorzugsweise als Grafikdaten-Wörter übertragen. Das erste Header-Wort, das zweite Header-Wort und die Grafikdaten-Wörter beinhalten jeweils vorzugsweise 32 Bits an Informationen, zuzüglich ein Datentyp-Bit. Das erste Header-Wort umfasst vorzugsweise einen 1-Bit-Datentyp, einen 4-Bit-Grafiktyp, einen ersten 1-Bit-Fensterparameter, einen 1-Bit-Ober-/Unterparameter, einen 2-Bit-Alphatyp, einen 8-Bit-Fenster-Alphawert und einen 16-Bit-Fenster-Farbwert. Tabelle 2 sind Inhalte des ersten Header-Worts zu entnehmen.
  • Figure 00470001
    TABELLE 2: Erstes Header-Wort
  • Der 1-Bit-Datentyp gibt vorzugsweise an, ob ein 33-Bit-Wort im FIFO ein Header-Wort oder ein Grafikwort ist. Ein Datentyp von 1 gibt an, dass das zugehörige 33-Bit-Wort ein Header-Wort ist, während der Datentyp von 0 angibt, dass das zugehörige 33-Bit-Wort ein Grafikdaten-Wort ist. Der Grafiktyp gibt das Datenformat der im Grafikfenster anzuzeigenden Grafikdaten an, ähnlich dem Fenster-Formatparameter im Wort 0 des Fenster-Deskriptors, der in der zuvor aufgeführten Tabelle 1 beschrieben wird. In der bevorzugten Ausführungsform, wenn der Grafiktyp 1111 ist, gibt es kein Fenster auf der gegenwärtigen Anzeigezeile, was angibt, dass die gegenwärtige Anzeigezeile leer ist.
  • Der erste Fensterparameter des ersten Header-Worts gibt vorzugsweise an, ob das Fenster, das dem ersten Header-Wort zugehörig ist, ein erstes Fenster auf einer neuen Anzeigezeile ist. Der obere/untere Parameter gibt vorzugsweise an, ob die gegenwärtige Anzeigezeile, die im ersten Header-Wort angegeben ist, an den Ober- oder an der Unterkanten des Fensters liegt. Der Alphatyp gibt vorzugsweise ein Verfahren zum Auswählen eines Alphawerts einzeln für jedes Pixel im Fenster an, ähnlich, dem Alphatyp im Word 2 des Fenster-Deskriptors.
  • Der Fenster-Alphawert ist vorzugsweise ein Alphawert, der auf das Fenster als Ganzes anzuwenden ist, und ähnelt dem Fenster-Alphawert im Wort 2 des Fenster-Deskriptors. Der Fenster-Farbwert ist vorzugsweise die Farbe des Fensters im 16-Bit-RGB-Format und ist dem Fenster-Farbwert im Wort 1 des Fenster-Deskriptors ähnlich.
  • Das zweite Header-Wort umfasst vorzugsweise den 1-Bit-Datentyp, eine 4-Bit-Leerpixelzählung, einen 10-Bit-Linkskantenwert, einen 1-Bit-Filter-Aktivierungsparameter und einen 10-Bit-Fenstergrößenwert. Tabelle 3 zeigt Inhalte des zweiten Header-Worts in der bevorzugten Ausführungsform.
  • Figure 00480001
    TABELLE 3: Zweites Header-Wort
  • Ähnlich dem. ersten Header-Wort, beginnt das zweite Header-Wort vorzugsweise mit dem Datentyp, wobei angegeben wird, ob das zweite Header-Wort ein Header-Wort oder ein Grafik-Datenwort ist. Die Leerpixelzählung gibt vorzugsweise eine Anzahl von Leerpixeln an einer linken Kante des Fensters an und ist dem Leer-Startpixelwert im Wort 3 des Fenster-Deskriptors ähnlich. Die Linkskante gibt vorzugsweise eine Startadresse des Fensters auf einer Abtastzeile an und ist dem Fenster-X-Startwert im Wort 3 des Fenster-Deskriptors ähnlich. Der Filter-Aktivierungsparameter aktiviert vorzugsweise einen Filter während einer Umwandlung von Grafikdaten von einem YUV 4 : 4 : 4-Format in ein YUV 4 : 2 : 2-Format und ist dem Fenster-Filter-Aktivierungsparameter in Wort 3 des Fenster-Deskriptors ähnlich. Einige YUV 4 : 4 : 4-Daten können einen höheren Frequenzinhalt enthalten, als andere, die durch Aktivieren eines Tiefpassfilters während einer Umwandlung in das YUV 4 : 2 : 2-Format gefiltert werden können. Der Fenster-Größenwert gibt vorzugsweise die gegenwärtige horizontale Größe des Fensters an und ist dem Fenster-X-Startwert in Wort 3 des Fenster-Deskriptors ähnlich.
  • Wenn die Zusammensetzung des letzten Fensters der letzten Anzeigezeile beendet ist, wird vorzugsweise ein Leerzeilen-Header in den FIFO gesetzt, so dass die Anzeige-Einheit die Anzeigezeile zur Anzeige freigeben kann.
  • Paketierte Datenstrukturen sind bisher in erster Linie in der Nachrichtenübermittlungswelt verwendet worden, in der große Mengen von Daten zwischen Hardware unter Verwendung einer wirklichen Datenverbindung (z. B. Drähten) übertragen werden müssen. Es ist nicht bekannt, dass die Idee in der Grafikwelt angewandt worden ist, wo lokalisierte und kleine Datensteuerstrukturen zwischen unterschiedlich ausgelegten Einheiten übertragen werden müssen, ohne, dass ein großer nicht auf dem Chip befindlicher Speicher als Pufferspeicher erforderlich ist. In einer Ausführungsform des vorliegenden Systems werden Header-Pakete verwendet, und ein Allgemein-Zweck-FIFO wird für das Routing verwendet. Routing kann auf eine verhältnismäßig einfache Weise in der bevorzugten Ausführungsform erfüllt werden, weil der Schreib-Port des FIFOs die einzige Schnittstelle ist.
  • In der bevorzugten Ausführungsform ist der Grafik-FIFO ein synchroner 32 × 33 FIFO, der mit einem statischen Zweiport-RAM mit einem Lese-Port und einem Schreib-Port gebaut ist. Der Schreib-Port ist vorzugsweise synchron mit einem 81 MHz- Speichertakt, während der Lese-Port asynchron (nicht synchronisiert) zum Speichertakt sein kann. Der Lese-Port ist vorzugsweise synchron mit einem Grafik-Verarbeitungstakt, der vorzugsweise bei 81 MHz, aber nicht notwendigerweise mit dem Speichertakt synchronisiert läuft. Zwei Grafik-FIFO-Zeiger werden vorzugsweise erzeugt, einer für den Lese-Port und einer für den Schreib-Port. In dieser Ausführungsform ist jeder Grafik-FIFO-Zeiger ein 6-Bit-Binärzähler, der von 000000b bis 111111b reicht, d. h. von 0 bis 63. Der Grafik-FIFO ist nur 32 Wörter tief und erfordert nur 5 Bits, um jedes 33-Bit-Wort im Grafik-FIFO darzustellen. Ein Zusatz-Bit wird vorzugsweise verwendet, um zwischen den Zuständen „FIFO voll" und „FIFO leer" zu unterscheiden.
  • Die Grafikdaten-Wörter umfassen vorzugsweise den 1-Bit-Datentyp und 32-Bit-Grafikdaten-Bits. Der Datentyp ist 0 für die Grafikdaten-Wörter. Um an einer allgemeinen Ausführungs-Vorgehensweise festzuhalten, die im Allgemeinen die Größe eines DMA-Farbsynchronsignals in einen FIFO auf die halbe Größe des FIFOs begrenzt, überschreitet die Anzahl der Grafikdaten-Wörter in einem DMA-Farbsynchronsignal vorzugsweise nicht 16.
  • In einer anderen Ausführungsform wird kein Grafik-Anzeige-FIFO verwendet. In dieser Ausführungsform verarbeitet der Grafik-Umsetzer Daten vom Speicher in der Geschwindigkeit, in der sie aus dem Speicher gelesen werden. Die Speicher- und Umsetzungsfunktionen sind in einer gleichen Taktdomäne. Andere geeignete FIFO-Ausführungen können verwendet werden.
  • Mit Bezug auf 8 stellt ein Flussdiagramm einen Vorgang zum Laden und Verarbeiten von Fenster-Deskriptoren dar. Zuerst wird das System vorzugsweise in Schritt 310 zurückgesetzt. Dann prüft das System in Schritt 312 vorzugsweise, ob ein vertikales Synchronisationssignal („VSYNC") vorliegt. Wenn das VSYNC empfangen wird, geht das System in Schritt 314 vorzugsweise dazu über, Fenster-Deskriptoren vom externen SDRAM oder einem anderen geeigneten Speicher über den DMA-Kanal für Fenster-Deskriptoren in die Fenstersteuerung zu laden. Die Fenster-Steuerung kann bis zu acht Fenster-Deskriptoren in einer Ausführungsform der vorliegenden Erfindung speichern.
  • Der Schritt in Schritt 316 sendet vorzugsweise einen neuen Zeilen-Header, der den Start einer neuen Anzeigezeile angibt. Das System in Schritt 320 sortiert vorzugsweise die Fenster-Deskriptoren gemäß dem Vorgang, der mit Bezug auf 7 beschrieben wird. Obgleich Sortieren als ein Schritt in diesem Flussdiagramm beschrieben wird, kann Sortieren tatsächlich ein fortlaufender Vorgang des Auswählens des untersten Fensters, d. h. des zu verarbeitenden Fensters, sein. Das System in Schritt 322 führt vorzugsweise eine Prüfung aus, um zu bestimmen, ob eine Start-Anzeigezeile des Fensters größer ist, als die Zeilenzählung der gegenwärtigen Anzeigezeile. Wenn die Start-Anzeigezeile des Fensters größer ist, als die Zeilenzählung, d. h. wenn die gegenwärtige Anzeigezeile über der Start-Anzeigezeile des untersten Fensters liegt, ist die gegenwärtige Anzeigezeile eine Leerzeile. Somit erhöht das System in Schritt 318 vorzugsweise die Zeilenzählung und sendet einen weiteren neuen Zeilen-Header in Schritt 316. Der Vorgang des Sendens eines neuen Zeilen-Headers und des Sortierens eines Fenster-Deskriptors dauert so lange an, wie sich die Start-Anzeigezeile des untersten (in der Ebenenreihenfolge) Fensters unterhalb der gegenwärtigen Anzeigezeile befindet.
  • Die Anzeige-Einheit und der zugehörige Grafikfilter arbeiten vorzugsweise in einer von zwei Betriebsarten, dem Halbbildbetrieb und dem Vollbildbetrieb. In beiden Betriebsarten werden die Ursprungs-Grafikdaten, die den Grafikfenstern zugehörig sind, vorzugsweise im Vollbildformat gespeichert, einschließlich Zeilen von beiden Halbbildern im Falle einer Halbbildanzeige. Im Halbbildbetrieb springt die Anzeige-Einheit während der Verarbeitung vorzugsweise zur jeweils übernächsten Anzeigezeile. Im Halbbildbetrieb erhöht daher das System in Schritt 318 vorzugsweise die Zeilenzählung jeweils um zwei, um jede andere Zeile zu überspringen. Im Vollbildbetrieb verarbeitet die Anzeige-Einheit jede Anzeigezeile nacheinander. Im Vollbildbetrieb erhöht daher das System in Schritt 318 vorzugsweise die Zeilenzählung jeweils um eins.
  • Wenn das System in Schritt 322 bestimmt, dass die Startanzeige des Fensters größer ist als die Zeilenzählung, bestimmt das System in Schritt 324 vorzugsweise mittels des Header-Pakets, ob der Fenster-Deskriptor zum Anzeigen eines Fensters oder zum Neuladen der CLUT zu verwenden ist. Wenn der Fenster-Header angibt, dass der Fenster-Deskriptor zum Neuladen der CLUT ist, sendet das System in Schritt 328 vorzugsweise die CLUT-Daten an die CLUT und schaltet das CLUT-Schreib-Freigabesigal zum Laden der CLUT ein.
  • Wenn das System in Schritt 324 bestimmt, dass der Fenster-Deskriptor zum Anzeigen eines Fensters zu verwenden ist, sendet das System in Schritt 326 vorzugsweise einen neuen Fenster-Header, um anzuzeigen, dass Grafikdaten-Wörter für ein neues Fenster auf der Anzeigezeile in den Grafik-FIFO übertragen werden. Dann fordert das System in Schritt 330 vorzugsweise das DMA-Modul auf, Grafikdaten an den Grafik-FIFO über den DMA-Kanal für Grafikdaten zu senden. Sollte der FIFO nicht ausreichend Platz zum Speichern von Grafikdaten in einem neuen Datenpaket haben, wartet das System vorzugsweise, bis solcher Platz verfügbar ist.
  • Wenn Grafikdaten für eine Anzeigezeile eines gegenwärtigen Fenster an den FIFO übertragen werden, bestimmt das System in Schritt 332 vorzugsweise, ob die letzte Zeile des gegenwärtigen Fensters übertragen worden ist. Wenn die letzte Zeile übertragen worden ist, wird vorzugsweise ein Fenster-Deskriptor-„Erledigt"-Kennzeichen gesetzt, das dem gegenwärtigen Fenster zugehörig ist. Das Fenster-Deskriptor- „Erledigt"-Kennzeichen gibt an, dass die Grafikdaten, die dem gegenwärtigen Fenster-Deskriptor zugehörig sind, vollständig übertragen worden sind. Wenn das Fenster-Deskriptor-„Erledigt"-Kennzeichen gesetzt wird, d. h. wenn der gegenwärtige Fenster-Deskriptor vollständig verarbeitet worden ist, setzt das System ein Fenster-Deskriptor-„Erledigt"-Kennzeichen in Schritt 334. Dann setzt das System in Schritt 336 vorzugsweise ein neues Fenster-Deskriptor-Aktualisierungs-Kennzeichen und erhöht einen Fenster-Deskriptor-Aktualisierungs-Zähler, um anzuzeigen, dass ein neuer Fenster-Deskriptor vom externen Speicher zu kopieren ist.
  • Ungeachtet, ob die letzte Zeile des gegenwärtigen Fensters verarbeitet worden ist, setzt das System in Schritt 338 vorzugsweise das Fensterzeilen-„Erledigt"-Kennzeichen für den gegenwärtigen Fenster-Deskriptor, um zu bedeuten, dass die Verarbeitung dieses Fenster-Deskriptors auf der gegenwärtigen Anzeigezeile beendet worden ist. Das System in Schritt 340 prüft vorzugsweise die Fensterzeilen-„Erledigt"-Kennzeichen, die allen acht Fenster-Deskriptoren zugehörig sind, um zu bestimmen, ob sie alle gesetzt sind, was angeben würde, dass alle Fenster der gegenwärtigen Anzeigezeile verarbeitet worden sind. Wenn nicht alle Fensterzeilen-„Erledigt"-Kennzeichen gesetzt worden sind, geht das System vorzugsweise zu Schritt 320 über, um die Fenster-Deskriptoren zu sortieren und die Verarbeitung des neuen untersten Fenster-Deskriptors zu wiederholen.
  • Wenn bestimmt worden ist, dass alle acht Fensterzeilen-„Erledigt"-Kennzeichen in Schritt 340 zu setzen sind; sind alle Fenster-Deskriptoren auf der gegenwärtigen Anzeigezeile verarbeitet worden. In diesem Fall prüft das System in Schritt 342 vorzugsweise, ob ein „Erledigt"-Kennzeichen für alle Fenster-Deskriptoren gesetzt worden ist, um zu bestimmen, ob alle Fenster-Deskriptoren vollständig verarbeitet worden sind.
  • Das „Erledigt"-Kennzeichen für alle Fenster-Deskriptoren wird gesetzt, wenn alle Fenster-Deskriptoren im gegenwärtigen Vollbild oder Halbbild vollständig verarbeitet worden sind. Wenn das „Erledigt"-Kennzeichen für alle Fenster-Deskriptoren gesetzt ist, kehrt das System vorzugsweise zu Schritt 310 zum Zurücksetzen zurück und erwartet ein anderes VSYNC-Signal in Schritt 312. Wenn nicht alle Fenster-Deskriptoren verarbeitet worden sind, bestimmt das System in Schritt 344 vorzugsweise, ob das neue Fenster-Deskriptor-Aktualisierungs-Kennzeichen gesetzt worden ist. In der bevorzugten Ausführungsform würde dieses Kennzeichen in Schritt 334 gesetzt worden sein, wenn der gegenwärtige Fenster-Deskriptor vollständig verarbeitet worden ist.
  • Wenn das neue Fenster-Deskriptor-Aktualisierungs-Kennzeichen gesetzt ist, richtet das System in Schritt 352 vorzugsweise den DMA ein, um einen neuen Fenster-Deskriptor vom externen Speicher zu übertragen. Dann löscht das System in Schritt 350 vorzugsweise das neue Fenster-Deskriptor-Aktualisierungs-Kennzeichen. Nachdem das System das neue Fenster-Deskriptor-Aktualisierungs-Kennzeichen gelöscht hat oder wenn das neue Fenster-Deskriptor-Aktualisierungs-Kennzeichen nicht an erster Stelle gesetzt worden ist, erhöht das System in Schritt 348 vorzugsweise einen Zeilenzähler, um anzugeben, dass die Fenster-Deskriptoren für eine nächste Anzeigezeile verarbeitet werden sollten. Das System in Schritt 346 löscht vorzugsweise alle acht Fensterzeilen-„Erledigt"-Kennzeichen, um anzugeben, dass keiner der Fenster-Deskriptoren für die nächste Anzeigezeile verarbeitet worden ist. Dann beginnt das System in Schritt 316 vorzugsweise mit der Verarbeitung der neuen Anzeigezeile, indem es einen neuen Zeilen-Header an den FIFO sendet.
  • In der bevorzugten Ausführungsform setzt der Grafik-Umsetzer in der Anzeige-Einheit die Ursprungs-Grafikdaten, die verschiedene unterschiedliche Formate besitzen, in ein allgemeines Format zur nachfolgenden Zusammensetzung mit Video und zur Anzeige um. Der Grafik-Umsetzer umfasst vorzugsweise eine Zustandsmaschine, welche Zustände auf der Grundlage des Inhalts des Fenster-Datenpakets ändert. Mit Bezug auf 9 steuert die Zustandsmaschine im Grafik-Umsetzer vorzugsweise das Entpacken und die Verarbeitung der Header-Pakete. Ein erster Header-Wort-Verarbeitungszustand 354 wird vorzugsweise eingegeben, wobei ein erster Fensterparameter des ersten Header-Worts geprüft wird (Schritt 356), um zu bestimmen, ob das Fenster-Datenpaket für ein erstes Grafikfenster einer neuen Zeile ist. Wenn das Header-Paket nicht für ein erstes Fenster einer neuen Zeile ist, nachdem das erste Header-Wort verarbeitet worden ist, ändert sich der Zustand vorzugsweise in einen zweiten Header-Wort-Verarbeitungszustand 362.
  • Wenn das Header-Paket für ein erstes Grafikfenster einer neuen Zeile ist, wechselt die Zustandsmaschine vorzugsweise in einen Taktschalt-Zustand 358. Im Taktschalt-Zustand schaltet der Takt für einen Grafik-Zeilenpufferspeicher, der die neue Zeile speichert, von einem Anzeigetakt in einen Speichertakt, beispielsweise von einem 13,5 MHz-Takt in einen 81 MHz-Takt. Vom Taktschalt-Zustand wird vorzugsweise ein Grafiktyp im ersten Header-Wort geprüft (Schritt 360), um zu bestimmen, ob das Header-Paket eine leere Zeile darstellt. Ein Grafiktyp von 1111b bezieht sich vorzugsweise auf eine leere Zeile.
  • Wenn der Grafiktyp 1111b ist, wechselt die Zustandsmaschine den ersten Header-Wort-Verarbeitungszustand 354, in dem das erste Header-Wort des nächsten Header-Pakets verarbeitet wird. Wenn der Grafiktyp nicht 1111 ist, d. h. die Anzeigezeile nicht leer ist, wird das zweite Header-Wort verarbeitet. Dann wechselt die Zustandsmaschine vorzugsweise in einen Grafikinhalt-Zustand 364, in dem Wörter vom FIFO geprüft werden (Schritt 366), eines zur Zeit, um zu überprüfen, dass sie Datenwörter sind. Die Zustandsmaschine bleibt vorzugsweise so lange im Grafikinhalt-Zustand, bis jedes gelesene Wort ein Datenwort ist. Während sie sich im Grafikinhalt-Zustand befindet, wechselt die Zustandsmaschine, wenn ein empfangenes Wort kein Datenwort ist, d. h. es ein erstes oder zweites Header-Wort ist, vorzugsweise in einen Pipeline-Beendigungszustand 368 und dann in den ersten Header-Verarbeitungszustand 354, in dem das Lesen und Verarbeiten des nächsten Fenster-Datenpakets begonnen wird.
  • Mit Bezug auf 10 wird die Anzeige-Einheit 58 vorzugsweise über eine Speicherschnittstelle 370 an einen Speicher und über eine CLUT-Schnittstelle 372 an eine CLUT gekoppelt. Die Anzeige-Einheit umfasst vorzugsweise den Grafik-FIFO 132, der die Header-Pakete und die Grafikdaten von der Speichersteuerung über die Speicherschnittstelle empfängt. Der Grafik-FIFO stellt vorzugsweise empfangene Ursprungs-Grafikdaten dem Grafik-Umsetzer 134 bereit, der die Ursprungs-Grafikdaten in das gemeine Zusammensetzungsformat umsetzt. Während der Umwandlung des Grafikformats werden der RGB-YUV-Umsetzer 136 und die Daten von der CLUT über die CLUT-Schnittstelle 372 verwendet, um RGB-formatierte Daten, beziehungsweise CLUT-formatierte Daten umzusetzen.
  • Der Grafik-Umsetzer verarbeitet vorzugsweise alle Fensterebenen jeder Abtastzeile in der Hälfte der Zeit oder weniger einer Halbbild-Anzeigezeile, aufgrund der Notwendigkeit, Zeilen von beiden Halbbildern zur Verwendung vom Grafikfilter im SRAM verfügbar zu haben, wenn Vollbildmodus-Filtern aktiviert ist. Der Grafik-Umsetzer arbeitet bei 81 MHz in einer Ausführungsform der vorliegenden Erfindung, und der Grafik-Umsetzer ist in der Lage, bis zu acht Fenster auf jeder Abtastzeile zu verarbeiten und bis zu drei Fenster in voller Breite.
  • Wenn beispielsweise der Grafik-Umsetzer bei einem 13,5 MHz-Anzeigetakt 81 Megapixel pro Sekunde verarbeitet, kann er drei Fenster umsetzen, wobei jedes die Breite der Anzeige abdeckt, in der Hälfte der aktiven Anzeigezeit einer Halbbild-Abtastzeile. In einer Ausführungsform der vorliegenden Erfindung verarbeitet der Grafik-Umsetzer alle Fensterebenen jeder Abtastzeile in der Hälfte der Zeit einer Halbbild-Anzeigezeile, aufgrund der Notwendigkeit, Zeilen von beiden Halbbildern im SRAM zur Verwendung durch den Grafikfilter verfügbar zu haben. In der Anwendung kann mehr Zeit zur Verfügung stehen, da die aktive Anzeigezeit die Austastzeit auslässt, während der Grafik-Umsetzer durchgängig arbeiten kann.
  • Grafikpixel werden vorzugsweise vom FIFO im Ursprungs-Grafikformat gelesen, unter Verwendung einer der vielen Formate, die in der vorliegenden Erfindung zulässig sind und im Fenster-Deskriptor bestimmt werden. Jedes Pixel kann so wenig wie zwei Bits oder so viel wie 16 Bits in der bevorzugten Ausführungsform belegen. Jedes Pixel wird in ein YUVa24-Format umgesetzt (auch als aYUV 4 : 4 : 2 : 2 bezeichnet), wie zwei benachbarte Pixel, die ein UV-Paar teilen und einzigartige Y- und Alphawerte besitzen, wobei jeder der Y, U, V und Alpha-Bestandteile acht Bits belegt. Der Umsetzungsvorgang ist im Allgemeinen abhängig vom Pixelformattyp und dem Alpha-Beschreibungsverfahren, die beide vom Fenster-Deskriptor für das gegenwärtig aktive Fenster angegeben sind. Vorzugsweise verwendet der Grafik-Umsetzer den CLUT-Speicher, um CLUT-Formatpixel in RGB- oder YUV-Pixel umzusetzen.
  • Umsetzungen von RGB-Pixeln können die Umsetzung in YUV erfordern, und daher umfasst der Grafik-Umsetzer vorzugsweise einen Farbraum-Umsetzer. Der Farbraum-Umsetzer ist vorzugsweise für alle Koeffizienten genau. Wenn der Umsetzer auf acht oder neun Bits genau ist, kann er verwendet werden, um acht Bits pro Bestandteilgrafik umzusetzen, wie CLUT-Eingaben mit dieser Messunsicherheit oder RGB24-Bilder.
  • Der Grafik-Umsetzer erzeugt vorzugsweise ein umgesetztes Pixel pro Taktzyklus, selbst, wenn mehrere Grafikpixel vom FIFO in ein Datenwort gepackt sind. Vorzugsweise wird der Grafik-Verarbeitungstaktgeber, der vorzugsweise bei 81 MHz läuft, während der Grafikumsetzung verwendet. Der Grafik-Umsetzer liest vorzugsweise Daten vom FIFO, wann immer beide Zustände erfüllt sind, einschließlich, dass der Umsetzer bereit ist, mehr Daten zu empfangen und der FIFO die Daten bereit hält. Der Grafik-Umsetzer empfängt vorzugsweise eine Eingabe von einem Grafik-Überblender, welcher der nächste Block in der Pipeline ist, der angibt, wann der Grafik-Überblender bereit ist, mehr umgesetzte Grafikdaten zu empfangen. Der Grafik-Umsetzer kann überbeansprucht werden, wenn der Grafik-Überblender nicht bereit ist, und folglich kann der Grafik-Umsetzer nicht bereit sein, um Grafikdaten vom FIFO zu erhalten.
  • Der Grafik-Umsetzer setzt vorzugsweise die Grafikdaten in ein YUValpha („YUVa")-Format um. Dieses YUVa-Format umfasst YUV 4 : 2 : 2-Werte und einen 8-Bit-Alphawert für jedes Pixel und belegt als solches 24 Bits pro Pixel; dieses Format wird auch als aYUV 4 : 4 : 2 : 2 bezeichnet. Der YUV444-YUV422-Umsetzer 138 setzt Grafikdaten mit dem aYUV 4 : 4 : 4 : 4-Format von dem Grafik-Umsetzer in Grafikdaten mit dem aYUV 4 : 4 : 2 : 2-Format um und stellt die Daten dem Grafik-Überblender 140 bereit. Der YUV444-YUV422-Umsetzer hat vorzugsweise die Befähigung, Tiefpassfiltern auszuführen, um bei Bedarf Hochfrequenz-Bestandteile heraus zu filtern. Der Grafik-Umsetzer sendet und empfängt auch Taktsynchronisations-Informationen zu und von den Grafik-Zeilenpufferspeichern über eine Taktsteuerungs-Schnittstelle 376.
  • Wenn er mit den umgesetzten Grafikdaten versorgt wird, setzt der Grafik-Überblender 140 vorzugsweise Grafikfenster in Grafik-Zeilenpufferspeicher über eine Grafik-Zeilenpufferspeicher-Schnittstelle 374 um. Die Grafikfenster werden mittels Alpha-Blending in übergeblendete Grafiken umgesetzt und vorzugsweise in Grafik-Zeilenpufferspeichern gespeichert.
  • IV. Farbmischtabellen-Lademechanismus
  • Eine Farbmischtabelle („CLUT") wird vorzugsweise verwendet, um Farb- und Alphawerte den Ursprungs-Daten bereit zu stellen, die formatiert sind, um Informationsinhalte der CLUT zu berücksichtigen. Für eine Fensterflächen-basierte Anzeige kann es mehrere Grafikfenster auf dem gleichen Anzeigebildschirm mit unterschiedlichen Grafikformaten geben. Für Grafikfenster, die ein Farbmischtabellen (CLUT)-Format verwenden, kann es notwendig sein, bestimmte Farbmischtabellen-Einträge vom externen Speicher in einen auf dem Chip befindlichen Speicher zu laden, bevor das Grafikfenster angezeigt wird.
  • Das System umfasst vorzugsweise eine Anzeige-Einheit, die Grafikbilder verarbeitet, die in einer Vielheit von Formaten formatiert sind, einschließlich einem Farbmischtabellen (CLUT)-Format. Das System stellt eine Datenstruktur bereit, welche die Grafik in einem Fenster beschreibt, stellt eine Datenstruktur bereit, welche ein Anzeigeelement zum Laden einer CLUT bereitstellt, sortiert die Datenstrukturen in einer Liste gemäß der Lage des Fensters auf der Anzeige und lädt Umsetzungsdaten in eine CLUT zum Umsetzen der CLUT-formatierten Daten in ein anderes Datenformat gemäß der Reihenfolge von Datenstrukturen in der Liste.
  • In der bevorzugten Ausführungsform wird jedes Fenster auf dem Anzeigebildschirm mit einem Fenster-Deskriptor beschrieben. Der gleiche Fenster-Deskriptor wird zum Steuern des CLUT-Ladens als der Fenster-Deskriptor verwendet, der zur Anzeige von Grafik auf dem Bildschirm verwendet wird. Der Fenster-Deskriptor definiert vorzugsweise die Speicherstartadresse des Grafikinhalts, die X-Position auf dem Anzeigebildschirm, die Breite des Fensters, die vertikale Start-Anzeigezeile und die vertikale End-Anzeigezeile, die Fensterebene, etc. Die gleichen Fenster-Strukturparameter und entsprechenden Halbbilder können verwendet werden, um das Laden der CLUT zu definieren. Beispielsweise kann die Grafikinhalt-Speicherstartadresse die CLUT-Speicherstartadresse definieren; die Breite des Grafikfenster-Parameters kann die Anzahl der zu ladenden CLUT-Einträge definieren; die Parameter für die vertikale Start-Anzeigezeile und die vertikale End-Anzeigezeile können verwendet werden, um zu definieren, wann die CLUT zu laden ist; und der Fenster-Ebenenparameter kann verwendet werden, um die Priorität des CLUT-Ladens zu definieren, wenn verschiedene Fenster gleichzeitig angezeigt werden, d. h. auf der gleichen Anzeigezeile.
  • In der bevorzugten Ausführungsform wird nur die CLUT verwendet. Als solche werden die Inhalte der CLUT vorzugsweise aktualisiert, um Grafikfenster mit CLUT-formatierten Daten anzuzeigen, die nicht vom gegenwärtigen Inhalt der CLUT unterstützt werden. Ein Durchschnittsfachmann würde schätzen, dass es problemlos ist, mehr als eine CLUT zu verwenden und zwischen ihnen zu unterschiedlichen Grafikfenstern vor- und zurück zu schalten.
  • In der bevorzugten Ausführungsform ist die CLUT eng dem Grafik-Umsetzer zugehörig. In einer Ausführungsform der vorliegenden Erfindung besteht die CLUT aus einem SRAM mit 256 Einträgen und 32 Bits pro Eintrag. In anderen Ausführungsformen kann sich die Anzahl der Einträge und Bits pro Eintrag ändern. Jeder Einträg enthält drei Farbbestandteile; entweder RGB- oder YUV-Format, und einen Alpha-Bestandteil. Für jedes umgesetzte CLUT-Format-Pixel können die Pixeldaten als Adresse für die CLUT verwendet werden, und der sich ergebende Wert kann vom Umsetzer verwendet werden, um den YUVa (oder auch den RGBa)-Pixelwert zu erzeugen.
  • Die CLUT kann bei Bedarf durch Abrufen neuer CLUT-Daten über das Direktspeicherzugriff-Modul neu geladen werden. Es dauert im Allgemeinen länger, die CLUT neu zu laden, als Zeit in einer horizontalen Austastlücke zur Verfügung steht. Entsprechend ist in der bevorzugten Ausführungsform eine gesamte Abtastzeilenzeit zum Neuladen der CLUT zulässig. Während die CLUT neu geladen wird, können Grafikbilder in Nicht-CLUT-Formaten angezeigt werden. Das CLUT-Neuladen wird vorzugsweise durch einen Fenster-Deskriptor ausgelöst, der eher Informationen hinsichtlich des CLUT-Neuladens, als Grafikfenster-Anzeige-Informationen enthält.
  • Mit Bezug auf 11 umfasst die Grafik-CLUT 146 vorzugsweise eine Grafik-CLUT-Steuerung 400 und einen statischen Zweiport-RAM (SRAM) 402. Der SRAM hat vorzugsweise de Größe von 256 × 32, was 256 Einträgen in der Grafik-CLUT entspricht. Jeder Eintrag in der Grafik-CLUT hat vorzugsweise 32 Bits, die aus Y + U + V + Alpha, vom bedeutendsten Bit zum am wenigsten bedeutenden Bit, zusammengesetzt sind. Die Größe jedes Felds, umfassend Y, U, V und Alpha, beträgt vorzugsweise acht Bits.
  • Die Grafik-CLUT hat vorzugsweise einen Schreib-Port, der mit einem 81-MHz-Takt synchronisiert ist, und einen Lese-Port, der asynchron zum Speichertakt sein kann. Der Lese-Port ist vorzugsweise synchron zum Grafik-Verarbeitungstakt, der vorzugsweise bei 81 MHz läuft, aber nicht notwendigerweise mit dem Speichertakt synchronisiert ist. Während einer Lese-Operation wird der statische Zweiport-RAM („SRAM") vorzugsweise von einer Lese-Adresse angesteuert, die von den Grafikdaten in den CLUT-Bildern bereit gestellt wird. Während der Lese-Operation werden die Grafikdaten vorzugsweise als Lesedaten 414 ausgegeben, wenn eine Speicheradresse in der CLUT, die diese Grafikdaten enthält, von einer Lese-Adresse 412 angesteuert wird.
  • Während Schreiboperationen steuert die Fenstersteuerung vorzugsweise den Schreib-Port mit einem CLUT-Speicher-Anforderungssignal 404 und einem CLUT-Speicher-Schreibsignal 408. Die CLUT-Speicherdaten 410 werden der Grafik-CLUT auch vorzugsweise über ein Direktspeicherzugriff-Modul vom externen Speicher bereit gestellt. Die Grafik-CLUT-Steuerung empfängt vorzugsweise die CLUT-Speicherdaten und stellt die empfangenen CLUT-Speicherdaten dem SRAM zum Schreiben bereit.
  • Mit Bezug auf 12 sind in einem beispielhaften Zeitdiagramm unterschiedliche Signale dargestellt, die während einer Schreiboperation der CLUT beteiligt sind. Das CLUT-Speicher-Anforderungssignal 418 wird gesendet, wenn die CLUT neu zu laden ist. Eine Anstiegsflanke des CLUT-Speicher-Anforderungssignals 418 wird verwendet, um einen Schreibzeiger, der dem Schreib-Port zugehörig ist, zurück zu setzen. Dann wird das CLUT-Speicher-Schreibsignal 420 gesendet, um den Beginn einer CLUT-Neulade-Operation anzugeben. Die CLUT-Speicherdaten 422 werden synchron zum 81-MHz-Speichertakt 416 bereit gestellt, um in den SRAM geschrieben zu werden. Der Schreibzeiger, der dem Schreib-Port zugehörig ist, wird jedes Mal aktualisiert, wenn die CLUT mit den CLUT-Speicherdaten geladen wird.
  • In der bevorzugten Ausführungsform ist der Vorgang des Neuladens einer CLUT dem Vorgang des Verarbeitens von Fenster-Deskriptoren zugehörig, der in 8 dargestellt ist, da das CLUT-Neuladen von einem Fenster-Deskriptor ausgelöst wird. Wie in den Schritten 324 und 328 von 8 dargestellt, sendet das System in Schritt 328 die CLUT-Daten an die CLUT, wenn der Fenster-Deskriptor dazu bestimmt ist, die CLUT in Schritt 324 neu zu laden. Der Fenster-Deskriptor zum CLUT-Neuladen kann irgendwo in der Fenster-Deskriptor-Liste auftauchen. Entsprechend kann das CLUT-Neuladen jederzeit statt finden, wann immer die CLUT-Daten zu aktualisieren sind.
  • Unter Verwendung des CLUT-Lademechanismus' in einer Ausführungsform der vorliegenden Erfindung, kann mehr als ein Fenster mit unterschiedlichen CLUT-Tabellen auf der gleichen Anzeigezeile angezeigt werden. In dieser Ausführungsform werden vorzugsweise nur die erforderlichen Mindesteinträge in die CLUT geladen, anstatt jedes Mal alle Einträge zu laden. Das Laden nur der erforderlichen Mindesteinträge kann Speicherbandbreite sparen und ermöglicht mehr Funktionalität. Der CLUT-Lademechanismus ist vorzugsweise verhältnismäßig flexibel und einfach zu steuern, was ihn für verschiedene Anwendungen geeignet macht. Der CLUT-Lademechanismus der vorliegenden Erfindung kann auch die Hardware-Ausführung vereinfachen, da die gleiche Zustandsmaschine für die Fenstersteuerung zum CLUT-Laden verwendet werden kann. Die CLUT teilt vorzugsweise auch die gleiche DMA-Logik und Ebenen-/Prioritäts-Steuerlogik, wie die Fenstersteuerung.
  • 5. Grafik-Zeilenpufferspeicher-Steuerschema
  • In der bevorzugten Ausführungsform der vorliegenden Erfindung überblendet das System vorzugsweise eine Vielheit von Grafikbildern unter Verwendung von Zeilenpufferspeichern. Das System initialisiert einen Zeilenpufferspeicher, indem es den Zeilenpufferspeicher mit Daten lädt, welche durchsichtiges Schwarz darstellen, erlangt die Steuerung eines Zeilenpufferspeichers für eine Zusammensetzungs-Operation, setzt Grafikinhalte im Zeilenpufferspeicher zusammen, indem es den Grafikinhalt mit den vorhandenen Inhalten des Zeilenpufferspeichers überblendet und wiederholt den Schritt des Zusammensetzens von Grafikinhalten in den Zeilenpufferspeicher, bis alle Grafikflächen für die besondere Zeile zusammengesetzt worden sind.
  • Der Grafik-Zeilenpufferspeicher speichert vorübergehend zusammengesetzte Grafikbilder (übergeblendete Grafik). Ein Grafikfilter verwendet vorzugsweise übergeblendete Grafik in Zeilenpufferspeichern, um vertikales Filtern und Skalier-Operationen auszuführen, um Ausgabe-Grafikbilder zu erzeugen. In der bevorzugten Ausführungsform setzt die Anzeige-Einheit Grafikbilder Zeile für Zeile unter Verwendung einer Taktfrequenz zusammen, die schneller ist, als die Pixel-Anzeigefrequenz, wobei Grafikfilter mit der Pixel-Anzeigefrequenz laufen. In anderen Ausführungsformen können mehrere Zeilen von Grafikbildern parallel zusammengesetzt werden. In noch anderen Ausführungsformen sind die Zeilenpufferspeicher möglicherweise nicht notwendig. Wo Zeilenpufferspeicher verwendet werden, kann das System ein innovatives Steuerschema enthalten, um die Zeilenpufferspeicher, die übergeblendete Grafik enthalten; dem Grafikfilter bereit zu stellen und die Zeilenpufferspeicher, die von den Grafikfiltern aufgebraucht werden, frei zu geben.
  • Die Zeilenpufferspeicher sind vorzugsweise mit synchronen statischen Zweiport-Schreib-Lese-Speichern („SRAM") gebaut und schalten ihre Takte dynamisch zwischen einem Speichertakt und einem Anzeigetakt um. Jeder Zeilenpufferspeicher wird vorzugsweise unter Verwendung des Speichertakts mit Grafikdaten geladen, und die Inhalte des Zeilenpufferspeichers werden vorzugsweise dem Grafikfilter synchron zum Anzeigetakt bereit gestellt. In einer Ausführungsform der vorliegenden Erfindung ist der Speichertakt ein 81 MHz-Takt, der von dem Grafik-Umsetzer verwendet wird, um Grafikdaten zu verarbeiten, während der Anzeigetakt ein 13,5 MHz-Takt ist, der verwendet wird, um Grafik- und Videosignale auf einem Fernsehbildschirm anzuzeigen. Andere Ausführungsformen können andere Taktgeschwindigkeiten verwenden.
  • Mit Bezug auf 13 umfasst der Grafik-Zeilenpufferspeicher vorzugsweise eine Grafik-Zeilenpufferspeicher-Steuerung 500 und Zeilenpufferspeicher 504. Die Grafik-Zeilenpufferspeicher-Steuerung 500 empfängt vorzugsweise Speichertakt-Pufferspeicher-Steuersignale 508, sowie Anzeigetakt-Pufferspeicher-Steuersignale 510. Die Speichertakt-Steuersignale und die Anzeigetakt-Steuersignale werden verwendet, um die Grafik-Zeilenpufferspeicher mit dem Speichertakt bzw. mit dem Anzeigetakt zu synchronisieren. Die Grafik-Zeilenpufferspeicher-Steuerung empfängt einen Taktauswahl-Vektor 514 von der Anzeige-Einheit, um zu steuern, welche Grafik-Zeilenpufferspeicher in welcher Taktdomäne zu betreiben sind. Die Grafik-Zeilenpufferspeicher-Steuerung gibt einen Taktaktivierungs-Vektor an die Anzeige-Einheit zurück, um Taktsynchronisations-Einstellungen entsprechend dem Taktauswahl-Vektor anzugeben.
  • In der bevorzugten Ausführungsform umfassen die Zeilenpufferspeicher 504 sieben Zeilenpufferspeicher 506ag. Die Zeilenpufferspeicher speichern vorübergehend Zeilen von YUVa24 Grafikpixeln, die von einem nachfolgenden Grafikfilter verwendet werden. Dies ermöglicht, vier Zeilenpufferspeicher zum Filtern und Skalieren zu verwenden, wobei zwei zum Fortschreiten um eine oder zwei Zeile/n am Ende jeder Zeile zur Verfügung stehen und einer für die gegenwärtige Zusammensetzungs-Operation. Jeder Zeilenpufferspeicher kann eine gesamte Anzeigezeile speichern. Daher ist in dieser Ausführungsform die Gesamtgröße der Zeilenpufferspeicher (720 Pixel/Anzeigezeile)*(3 Bytes/Pixel)*(7 Zeilen) = 15.120 Bytes.
  • Jeder der Ports zum SRAM, umfassend Zeilenpufferspeicher ist 24 Bits breit, um Grafikdaten in YUVa24-Format in dieser Ausführungsform der Erfindung unter zu bringen. Der SRAM hat einen Lese-Port und einen Schreib-Port. Ein Lese-Port und ein Schreib-Port werden für die Grafik-Überblender-Schnittstelle verwendet, welche Lesen mit modifiziertem Rückschreiben typischer Weise einmal pro Taktzyklus ausführt. In einer anderen Ausführungsform der vorliegenden Erfindung wird ein SRAM mit nur einem Port verwendet. In noch einer anderen Ausführungsform können die Daten, die in den Zeilenpufferspeichern gespeichert werden, YUVa32 (4 : 4 : 4 : 4), RGBa32 oder andere Formate sein. Fachleute würden es schätzen, dass es problemlos ist, die Anzahl der Grafik-Zeilenpufferspeicher zu verändern, beispielsweise um eine unterschiedliche Anzahl Abgriffe für Filter, das Format von Grafikdaten oder die Anzahl von Lese- und Schreib-Ports für den SRAM zu verändern.
  • Die Zeilenpufferspeicher werden vorzugsweise von der Grafik-Zeilenpufferspeicher-Steuerung über eine Zeilenpufferspeicher-Steuerschnittstelle 502 gesteuert. Über diese Schnittstelle überträgt die Grafik-Zeilenpufferspeicher-Steuerung Grafikdaten, die in die Zeilenpufferspeicher zu laden sind. Der Grafikfilter liest Inhalte aus den Zeilenpufferspeichern über eine Grafik-Zeilenpufferspeicher-Schnittstelle 516 und löscht die Zeilenpufferspeicher, indem er sie mit durchsichtigen schwarzen Pixeln lädt, bevor er sie freigibt, damit sie mit mehr Grafikdaten zur Anzeige geladen werden.
  • Mit Bezug auf 14 wird ein Flussdiagramm eines Verfahrens zur Verwendung von Zeilenpufferspeichern zum Bereitstellen zusammengesetzter Grafikdaten von einer Anzeige-Einheit an einen Grafikfilter dargestellt. Nachdem das Grafik-Anzeigesystem in Schritt 520 zurückgesetzt worden ist, empfängt das System in Schritt 522 ein vertikales Synchronisationssignal (VSYNC), das den Beginn eines Halbbilds angibt. Zunächst arbeiten alle Zeilenpufferspeicher vorzugsweise in der Speicher-Taktdomäne. Entsprechend werden die Zeilenpufferspeicher mit dem 81 MHz-Speichertakt in einer Ausführungsform der vorliegenden Erfindung synchronisiert. In anderen Ausführungsformen kann die Geschwindigkeit des Speichertakts von 81 MHz abweichen oder die Zeilenpufferspeicher arbeiten möglicherweise nicht in der Taktdomäne des Hauptspeichers. Das System in Schritt 524 setzt vorzugsweise alle Zeilenpufferspeicher zurück, indem es sie mit durchsichtigen schwarzen Pixeln lädt.
  • Das System in Schritt 526 speichert vorzugsweise zusammengesetzte Grafikdaten in den Zeilenpufferspeichern. Da alle Pufferspeicher bei jedem Halbbildbeginn von der Anzeige-Einheit im Gegenwert von durchsichtigen schwarzen Pixeln gelöscht werden, können die Grafikdaten auf gleiche Weise für ein beliebiges Grafikfenster übergeblendet werden, einschließlich des ersten über zu blendenden Grafikfensters. Ungeachtet dessen, wie viele Fenster in einem Zeilenpufferspeicher zusammengesetzt werden, umfassend null Fenster, gibt das Ergebnis vorzugsweise immer die richtigen Pixeldaten wieder.
  • Das System in Schritt 528 erkennt vorzugsweise ein horizontales Synchronisationssignal (HSYNC), das eine neue Anzeigezeile bedeutet. Zu Beginn jeder Anzeigezeile empfängt der Grafik-Überblender vorzugsweise ein Zeilenpufferspeicher-Freigabesignal vom Grafikfilter, wenn ein oder mehrere Zeilenpufferspeicher nicht länger vom Grafikfilter benötigt werden. Da vier Zeilenpufferspeicher mit dem 4-Tap-Grafikfilter zu einer beliebigen Zeit verwendet werden, werden ein bis drei Zeilenpufferspeicher vorzugsweise vom Grafik-Überblender zur Verwendung zur Verfügung gestellt, um damit zu beginnen, neue Anzeigezeilen in ihnen aufzubauen. Nachdem ein Zeilenpufferspeicher-Freigabesignal erkannt worden ist, wird ein internes Pufferspeicherverwendungs-Register aktualisiert und dann Taktschaltung ausgeführt, um zu ermöglichen, dass die Anzeige-Einheit an den neu frei gegebenen (532) ein bis drei Zeilenpufferspeichern arbeitet. In anderen Ausführungsformen kann die Anzahl Zeilenpufferspeicher mehr oder weniger als sieben betragen, und mehr oder weniger als drei Zeilenpufferspeicher können gleichzeitig frei gegeben werden.
  • Das System in Schritt 534 führt vorzugsweise Taktschalten aus. Taktschalten wird vorzugsweise in der Speichertaktdomäne von der Anzeige-Einheit unter Verwendung eines Taktauswahl-Vektors ausgeführt. Jedes Bit des Taktauswahl-Vektors entspricht vorzugsweise einem der Grafik-Zeilenpufferspeicher. Daher gibt es in einer Ausführungsform der vorliegenden Erfindung mit sieben Grafik-Zeilenpufferspeichern sieben Bits im Taktauswahl-Vektor. Beispielsweise gibt ein entsprechendes Bit von logisch 1 im Taktauswahl-Vektor an, dass der Zeilenpufferspeicher in der Speichertaktdomäne arbeitet, während ein entsprechendes Bit von logisch 0 angibt, dass der Zeilenpufferspeicher in der Anzeigetaktdomäne arbeitet.
  • Andere Ausführungsformen können unterschiedliche Anzahlen von Zeilenpufferspeichern haben, und die Anzahl Bits im Taktauswahl-Vektor kann sich entsprechend ändern. Eine Taktschaltlogik schaltet vorzugsweise zwischen dem Speichertakt und dem Anzeigetakt in Übereinstimmung mit dem Taktauswahl-Vektor um. Der Taktauswahl-Vektor wird vorzugsweise auch verwendet, um die Speichertakt- Pufferspeicher-Steuersignale zu multiplexen, und die Anzeigetakt-Pufferspeicher-Steuersignale anzuzeigen.
  • Da es vorzugsweise keine aktiven Grafikdaten zu Halbbildbeginn und an Zeilenanfängen gibt, wird Taktschalten vorzugsweise zum Halbbildbeginn und am Zeilenanfang ausgeführt, um den Grafikfilter unter zu bringen, um auf Grafikdaten in Echtzeit zuzugreifen. Zu Beginn der Halbbilder und am Anfang der Zeilen kann Taktschalten durchgeführt werden, ohne Störimpulse an der Anzeigeseite hervor zu rufen. Taktschalten erfordert typischer Weise eine Totzeit. Ein Taktaktivierungs-Vektor gibt an, dass die Grafik-Zeilenpufferspeicher bereit zum erneuten Synchronisieren mit den Takten sind. Der Taktaktivierungs-Vektor hat vorzugsweise die gleiche Größe, wie der Taktauswahl-Vektor. Der Taktaktivierungs-Vektor wird zurück an die Anzeige-Einheit gegeben, um mit dem Taktauswahl-Vektor verglichen zu werden.
  • Während des Taktschaltens wird der Taktauswahl-Vektor von der Anzeige-Einheit an den Grafik-Zeilenpufferblock gesendet. Die Takte werden vorzugsweise deaktiviert, um ein Störimpulsfreies Taktschalten zu gewährleisten. Der Grafik-Zeilenpufferspeicher sendet den Taktaktivierungs-Vektor an die Anzeige-Einheit mit den Taktsynchronisations-Einstellungen, die im Taktauswahl-Vektor angefordert werden. Die Anzeige-Einheit vergleicht Inhalte des Taktauswahl-Vektors und des Taktaktivierungs-Vektors. Wenn die Inhalte zusammenpassen, wird die Taktsynchronisation vorzugsweise wieder eingeschaltet.
  • Nach Beendigung des Taktschaltens, stellt das System in Schritt 536 während des unangesteuerten Bereichs des Videos vorzugsweise die Grafikdaten in den Zeilenpufferspeichern dem Grafikfilter für Anti-Flatter-Filtern, Abtastraten-Umsetzung (SRC) und Anzeige bereit. Am Ende der gegenwärtigen Anzeigezeile sucht das System in Schritt 538 nach einem VSYNC. Wenn das VSYNC erkannt worden ist, ist das gegenwärtige Halbbild vollendet worden, und daher schaltet das System in Schritt 530 vorzugsweise Takte für alle Zeilenpufferspeicher in den Speichertakt und setzt die Zeilenpufferspeicher in Schritt 524 zur Anzeige eines anderen Halbbilds zurück. Wenn das VSYNC nicht in Schritt 538 erkannt wird, ist die gegenwärtige Anzeigezeile nicht die letzte Anzeigezeile des gegenwärtigen Halbbilds. Das System fährt mit Schritt 528 fort, um ein anderes HSYNC zur Verarbeitung und Anzeige der nächsten Anzeigezeile des gegenwärtigen Halbbilds zu erkennen.
  • 6. Weicher waagerechter Fenster-Rollmechanismus
  • Manchmal ist es wünschenswert, ein Grafikfenster weich zu rollen, beispielsweise einen Text anzuzeigen, der sich von links nach rechts oder von rechts nach links langsam auf einem Fernsehbildschirm bewegt. Es gibt einige Schwierigkeiten, die in herkömmlichen Verfahren auftreten können, die versuchen, waagerechtes weiches Rollen auszuführen.
  • Grafik-Pufferspeicher werden herkömmlicher Weise ausgeführt, indem kostengünstige DRAMs, SDRAMs verwendet werden. Solche Speichervorrichtungen sind typischer Weise langsam und können erfordern, dass jede Farbsynchronsignal-Übertragung innerhalb einer Seite statt findet. Stufenloses (oder weiches) waagerechtes Rollen ermöglicht jedoch vorzugsweise, dass die Startadresse auf ein beliebiges Pixel gesetzt wird. Dies kann mit der Übertragung von Daten in Farbsynchronsignalen innerhalb der gut definierten Seiten des DRAM in Widerspruch stehen. Außerdem kann eine aufwendige Steuerlogik erforderlich sein, um zu überwachen, ob die Seitengrenzen während der Übertragung von Pixelmustern für jeden Schritt während des weichen waagerechten Rollens zu überschreiten sind.
  • In der bevorzugten Ausführungsform wird die Ausführung eines weichen waagerechten Rollmechanismus' erreicht, indem der Inhalt eines Fenster-Deskriptors für ein besonderes Grafikfenster schrittweise abgeändert wird. Der weiche waagerechte Rollmechanismus des Fensters ermöglicht vorzugsweise die Platzierung des Inhalts von Grafikfenstern auf beliebigen Stellen auf der Anzeigezeile.
  • In einer Ausführungsform der vorliegenden Erfindung wird das weiche waagerechte Rollen von Grafikfenstern auf der Grundlage einer Architektur ausgeführt, in der jedes Grafikfenster unabhängig in einer normalen Grafik-Pufferspeichervorrichtung (SDRAM, EDO-DRAM, DRAM) als einzelnes Objekt gespeichert wird. Fenster werden nach Bedarf in Echtzeit über einander zusammengesetzt. Um ein Fenster von links nach rechts zu rollen, wird ein Sonderfeld im Fenster-Deskriptor definiert, das angibt, wie viele Pixel von links oder rechts zu schieben sind.
  • Das System gemäß der vorliegenden Erfindung bietet ein Verfahren zum waagerechten Rollen eines Anzeigefensters nach links, was die Schritte des Ausblendens eines oder mehrerer Pixel/s am Anfang einer Teils von Grafikdaten umfasst, wobei der Teil mit der Startadresse ausgerichtet ist; und das Anzeigen der Grafikdaten, die am ersten nicht ausgeblendeten Pixel im Teil der Grafikdaten anfangen, der mit der Startadresse ausgerichtet ist.
  • Das System gemäß der vorliegenden Erfindung bietet auch ein Verfahren zum waagerechten Rollen eines Anzeigefensters nach rechts, was die Schritte des Bewegens eines Lesezeigers zu einer neuen Startadresse umfasst, die unmittelbar vor einer gegenwärtigen Startadresse steht, das Ausblenden eines oder mehrerer Pixel/s zu Beginn eines Teils von Grafikdaten, wobei der Teil mit der neuen Startadresse ausgerichtet ist, und das Anzeigen der Grafikdaten, die am ersten nicht ausgeblendeten Pixel im Teil der Grafikdaten anfangen, der mit der neuen Startadresse ausgerichtet ist.
  • In der Anwendung wird jedes Grafikfenster vorzugsweise unter Verwendung einer ganzen Wortadresse angesteuert. Wenn beispielsweise das Speichersystem 32-Bit-Wörter verwendet, dann wird die Startadresse eines Fensters so definiert, dass sie mit einer Vielheit von 32 Bits ausgerichtet ist, selbst, wenn das erste Pixel, das angezeigt werden soll, nicht so ausgerichtet ist. Zu jedem Grafikfenster gehört auch vorzugsweise ein waagerechter Versatzparameter, in Einheiten von Pixeln, der eine Anzahl von Pixeln angibt, die außer Acht zu lassen sind, beginnend bei der angegebenen Startadresse, bevor die aktive Anzeige des Fensters anfängt. In der bevorzugten Ausführungsform ist der waagerechte Versatzparameter der leere Startpixelwert in dem Wort 3 des Fenster-Deskriptors. Wenn beispielsweise das Speichersystem 32-Bit-Wörter verwendet, und das Grafikformat eines Fensters 8 Bits pro Pixel verwendet, enthält jedes 32-Bit-Wort vier Pixel. In diesem Fall kann die Anzeige des Fensters ein, zwei oder drei Pixel (8, 16 oder 24 Bits) außer Acht lassen, was eine effektive linke Verschiebung von eins, zwei oder drei Pixeln hervorruft.
  • In der Ausführungsform, die durch das obige Beispiel dargestellt wird, verwendet das Speichersystem 32-Bit-Wörter. In anderen Ausführungsformen kann das Speichersystem eine größere oder geringe Bitzahl pro Wort haben, wie 16 Bits pro Wort oder 64 Bits pro Wort. Außerdem haben Pixel in anderen Ausführungsformen möglicherweise verschiedene Anzahlen von Bits pro Pixel, wie 1, 2, 4, 8, 16, 24 und 32.
  • Mit Bezug auf 15 wird in der bevorzugten Ausführungsform ein erstes Pixel (z. B. die ersten 8 Bits) 604 eines 32-Bit-Worts 600, das mit der Startadresse ausgerichtet ist, ausgeblendet. Die verbleibenden drei 8-Bit-Pixel, abgesehen von dem ausgeblendeten ersten Pixel, werden effektiv um ein Pixel nach links verschoben. Vor dem Ausblenden zeigt ein Lesezeiger 602 auf das erste Bit des 32-Bit-Worts. Nach dem Ausblenden zeigt ein Lesezeiger 602 auf das neunte Bit des 32-Bit-Worts.
  • Überdies wird ein Verschieben von vier Pixeln ausgeführt, indem die Startadresse um eins auf das nächste 32-Bit-Wort geändert wird. Verschiebungen einer beliebigen Anzahl Pixel werden dabei durch eine Kombination aus Anpassen der Startwortadresse und Anpassen der Pixelverschiebemenge ausgeführt. Der gleiche Mechanismus kann für eine beliebige Anzahl von Bits pro Pixel (1, 2, 4, etc.) und eine beliebige Speicherwortgröße verwendet werden.
  • Um ein Pixel oder Pixel nach rechts zu verschieben, kann das Verschieben nicht einfach durch Ausblenden einiger Bits an der Startadresse erreicht werden, da jedes Ausblenden am Anfang einfach die Wirkung hat, dass Pixel nach links verschoben werden. Überdies kann das Verschieben nach rechts nicht durch Ausblenden einiger Bits am Ende des letzten Datenworts einer Anzeigezeile erreicht werden, da die Anzeige eines Fenster an der Startadresse anfängt, ungeachtet der Lage des letzen anzuzeigenden Pixels.
  • Daher wird in einer Ausführungsform der vorliegenden Erfindung, wenn die Grafikanzeige nach rechts zu verschieben ist, vorzugsweise ein Lesezeiger, der auf die Startadresse zeigt, zu einer Adresse bewegt, die direkt vor der Startadresse liegt, wodurch diese Adresse die neue Startadresse wird. Dann wird ein Teil des Datenworts, das mit der neuen Startadresse ausgerichtet ist, ausgeblendet. Dies bietet die Wirkung, die Grafikanzeige nach rechts zu verschieben.
  • Beispielsweise kann ein Speichersystem 32-Bit-Wörter verwenden, und das Grafikformat eines Fensters kann 2 Bits pro Pixel verwenden, z. B. ein CLUT 2-Format. Wenn die Grafikanzeige um ein Pixel nach rechts zu verschieben ist, wird der Lesezeiger zu einer Adresse bewegt, die direkt vor der Startadresse liegt, und die Adresse wird eine neue Startadresse. Dann werden die ersten 30 Bits des 32-Bit-Worts, das mit der neuen Startadresse ausgerichtet ist, ausgeblendet. In diesem Fall hat das Ausblenden eines Teils des 32-Bit-Worts, das mit der neuen Startadresse ausgerichtet ist, die Wirkung, die Grafikanzeige nach rechts zu verschieben.
  • Mit Bezug auf 16 wird ein 32-Bit-Wort 610, das mit der Startadresse ausgerichtet ist, um ein Pixel nach rechts verschoben. Das 32-Bit-Wort 610 hat ein CLUT 2-Format und enthält daher 16 Pixel. Ein Lesezeiger 612 zeigt auf den Anfang des 32-Bit-Worts 610. Um die Pixel im 32-Bit-Wort 610 nach rechts zu verschieben, wird eine Adresse, die direkt vor der Startadresse liegt, zur neuen Startadresse gemacht. Ein 32-Bit-Datenwort 618 wird mit der neuen Startadresse ausgerichtet. Dann werden die ersten 30 Bits (15 Pixel) 616 des 32-Bit-Worts 618, das mit der neuen Startadresse ausgerichtet ist, ausgeblendet. Der Lesezeiger 612 zeigt auf eine neue Stelle, welche das 31. Bit der neuen Startadresse ist. Das 31. Bit und das 32. Bit der neuen Startadresse können ein Pixel 618 darstellen. Das Einfügen des Pixels 618 vor 16 Pixeln des 32-Bit-Datenworts 610 verschiebt diese 16 Pixel effektiv um ein Pixel nach rechts.
  • 7. Durch Anti-Aliasing geglättete/r Text und Grafik
  • Auf Fernsehen beruhende Anwendungen, wie interaktive Programmführer, Enhanced TV, TV-Navigatoren und Web-Browsing im Fernsehen erfordern häufig die Anzeige von Text und Zeilenausgerichteten Grafiken auf der Anzeige. Ein grafisches Element oder ein Glyph stellt im Allgemeinen ein Bild von Text oder Grafik dar. Ein grafisches Element kann sich auf Textglyphen oder Grafik beziehen. In herkömmlichen Verfahren zum Anzeigen von Text auf Fernseh- oder Computer-Anzeigen werden grafische Elemente als Anordnungen von Pixeln (Bildelementen) mit zwei Zuständen für jedes Pixel, d. h. die Vordergrund- und Hintergrundfarben, wieder gegeben.
  • In einigen Fällen ist die Hintergrundfarbe durchsichtig, was Video oder anderer Grafiken ermöglicht, durch zu scheinen. Aufgrund der verhältnismäßig geringen Auflösung der meisten heutigen Fernsehgeräte, weisen schräge und runde Kanten grafischer Elemente im Allgemeinen ein treppenförmiges Erscheinungsbild auf, was unwünschenswert sein kann; und feine Einzelheiten sind darauf beschränkt, als ein oder mehrere vollständige/s Pixel (Punkte) zu erscheinen, was dem gewünschten Erscheinungsbild möglicherweise nicht gut entspricht. Die Halbbild-Eigenschaft von Fernsehanzeigen verursacht, dass waagerechte Kanten grafischer Elemente oder ein beliebiger Teil grafischer Elemente mit einem bedeutenden vertikalen Gradienten bei herkömmlichen Verfahren ein „flatterndes" Erscheinungsbild aufweisen.
  • Einige herkömmliche Verfahren überblenden die Kanten grafischer Elemente mit Hintergrundfarben in einem Bildpufferspeicher, indem zuerst die Farbe im Bildpufferspeicher an jedem Pixel gelesen wird, wo das grafische Element geschrieben wird, wobei der Wert mit der Vordergrundfarbe des grafischen Elements kombiniert und das Ergebnis zurück in den Bildpufferspeicher geschrieben wird. Dieses Verfahren erfordert, dass ein Bildpufferspeicher vorhanden ist; es erfordert, dass der Bildpufferspeicher ein Farbformat verwendet, welches solche Überblend-Operationen unterstützt, wie RGB24 oder RGB16, und es unterstützt im Allgemeinen nicht die Kombination grafischer Elemente über Bewegtbild-Video, da solche Funktionalität erfordern kann, das Lesen zu wiederholen, die Funktion aller Pixel aller grafischen Elemente für jedes Vollbild oder Halbbild des Videos rechtzeitig zu kombinieren und zurück zu schreiben.
  • Das System zeigt vorzugsweise ein grafisches Element durch Filtern des grafischen Elements mit einem Tiefpassfilter an, um einen mehrstufigen Wert pro Pixel bei einer beabsichtigten endgültigen Anzeigeauflösung zu erzeugen, und verwendet die mehrstufigen Werte als Alpha-Überblendwerte für das grafische Element in der nachfolgenden Zusammensetzungsstufe.
  • In einer Ausführungsform der vorliegenden Erfindung wird ein Verfahren zum Anzeigen grafischer Elemente auf Fernsehern und anderen Anzeigen verwendet. Ein Bildspeicher für dunkle Farben mit beispielsweise 16, 24 oder 32 Bits pro Pixel ist zur Ausführung dieses Verfahrens nicht erforderlich, da dieses Verfahren mit nur zwei Bits pro Pixel wirksam ist. Somit kann dieses Verfahren zu einer wesentlichen Verringerung sowohl des Speicherplatzes, als auch der Speicherbandbreite führen, die zur Anzeige von Text und Grafik erforderlich sind. Das Verfahren bietet vorzugsweise im Vergleich zu herkömmlichen Verfahren, die Text unterstützen, der durch Anti-Aliasing geglättet wurde, hohe Qualität und erzeugt eine höhere Anzeigequalität, als bei herkömmlichen Verfahren zur Verfügung steht, die keinen Text unterstützen, der durch Anti-Aliasing geglättet wurde.
  • Mit Bezug auf 17 verdeutlicht ein Flussdiagramm in einer Ausführungsform der vorliegenden Erfindung einen Vorgang zum Bereitstellen einer qualitativ sehr hochwertigen Anzeige grafischer Elemente. Zuerst werden die binären grafischen Elemente in Schritt 652 vom System gefiltert. Die grafischen Elemente werden vorzugsweise zunächst in Schritt 650 vom System in einer wesentlich höheren Auflösung als der beabsichtigten endgültigen Anzeige-Auflösung wieder gegeben, beispielsweise in der vierfachen endgültigen Auflösung, sowohl auf der waagerechten, als auch in senkrechten Achse. Der Filter kann ein geeigneter Tiefpassfilter, wie ein „Boxfilter", sein. Das Ergebnis der Filteroperation ist ein mehrstufiger Wert pro Pixel bei der beabsichtigten Anzeige-Auflösung.
  • Die Anzahl von Ebenen kann herab gesetzt werden, damit sie zur Anzahl Bits passt, die in den nachfolgenden Schritten verwendet werden. Das System in Schritt 654 bestimmt, ob die Anzahl Stufen herab gesetzt werden muss, indem die Anzahl der verwendeten Bits herabgesetzt wird. Wenn das System bestimmt, dass die Anzahl Stufen herabzusetzen ist, setzt das System in Schritt 656 vorzugsweise die Anzahl Bits herab. Zum Beispiel führt das Boxfiltern 4 × 4 überabgetasteter grafischer Elemente normalerweise zu 17 möglichen Stufen; diese können durch Abbruch oder andere Mittel auf 16 Stufen umgesetzt werden, damit sie zu einer 4-Bit-Darstellung passen oder auf acht Stufen, damit sie zu einer 3-Bit-Darstellung passen oder auf vier Stufen, damit sie zu einer 2-Bit-Darstellung passen. Der Filter kann eine erforderliche Senkrecht-Achsen-Tiefpassfilterfunktion bereitstellen, um eine Anti-Flatter-Filterwirkung für Anzeigen zu bieten, die im Halbbildverfahren arbeiten.
  • In Schritt 658 verwendet das System, entweder mit oder ohne Herabsetzen der Anzahl Bits, vorzugsweise die sich ergebenden mehrstufigen Werte, wie Alpha-Blending-Werte, die vorzugsweise Pixel-Alpha-Bestandteilwerte sind, für die grafischen Elemente in einer nachfolgenden Zusammensetzungs-Stufe. Die mehrstufigen Grafikelement-Pixel werden vorzugsweise in einen Grafik-Anzeige-Pufferspeicher geschrieben, in dem die Werte als Alpha-Blending-Werte verwendet werden, wenn der Anzeige-Pufferspeicher aus anderen Grafik- und Videobildern zusammengesetzt ist.
  • In einer anderen Ausführungsform ist der Anzeige-Pufferspeicher so bestimmt, dass er eine durchgängige Vordergrundfarbe besitzt, die mit der gewünschten Vordergrundfarbe des Texts oder der Grafik vereinbar ist, wobei der Wert jedes Pixels im Anzeige-Pufferspeicher so bestimmt ist, dass er der Alpha-Blending-Wert für das Pixel ist. Beispielsweise gibt ein Alpha-4-Format vier Bits pro Pixel des Alpha-Blending-Werts in einem Grafikfenster an, wobei die 4 Bits Alpha-Blending-Werte von 0/16, 1/16, 2/16, ... 13/16, 14/16 und 16/16 bestimmen. Der Wert 15/16 wird in diesem Beispiel übersprungen, um die Endpunktwerte von 0 und 16/16 (1) zu erhalten, ohne, dass die Verwendung eines zusätzlichen Bits erforderlich ist. In diesem Beispielformat hat das Anzeigefenster eine durchgängige Vordergrundfarbe, die im Fenster-Deskriptor angegeben wird.
  • In einer anderen Ausführungsform wird der Alpha-Blending-Wert pro Pixel für jedes Pixel im grafischen Element angegeben, indem ein CLUT-Index für jedes Pixel ausgewählt wird, wobei die CLUT-Eingabe, die zu jedem Index gehört, die gewünschten Alpha-Blending-Werte als Teil der CLUT-Inhalte umfasst. Beispielsweise kann ein grafisches Element mit einer gleichbleibenden Vordergrundfarbe und 4 Bits Alpha pro Pixel in einem CLUT-4-Format codiert werden, so dass jedes Pixel des Anzeige-Pufferspeichers als 4-Bit-CLUT-Index bestimmt wird und jeder der zugehörigen 16-CLUT-Einträge den geeigneten Alpha- Blending-Wert (0/16, 1/16, 2/16 ..., 14/16, 16/16) aufweist, sowie die (gleiche) gleichbleibende Vordergrundfarbe im Farbteil der CLUT-Einträge.
  • In noch einer weiteren anderen Ausführungsform werden die Alpha-pro-Pixel-Werte verwendet, um den Alphateil der Farb- + Alphapixel im Anzeige-Pufferspeicher zu bilden, wie alphaRGB (4, 4, 4, 4) mit 4 Bits für jedes Alpha, Rot, Grün und Blau oder alphaRGB32 mit 8 Bits für jeden Bestandteil. Dieses Format erfordert nicht die Verwendung einer CLUT.
  • In noch einer anderen weiteren Ausführungsform kann das grafische Element eine gleichbleibende Vordergrundfarbe haben oder nicht. Die verschiedenen Vordergrundfarben werden unter Verwendung eines Tiefpassfilters verarbeitet, wie zuvor beschrieben, und der Umriss des gesamten grafischen Elements (umfassend alle anderen Farben, abgesehen. vom Hintergrund) werden getrennt gefiltert, auch unter Verwendung eines Tiefpassfilters, wie beschrieben. Die gefilterte Vordergrundfarbe wird entweder als direkter Farbwert in z. B. einem alphaRGB-Format (oder einem anderen Farbraum, wie alphaYUV) oder als Farbwahl in einem CLUT-Format verwendet, und das Ergebnis des Filterns des Umrisses wird als Alpha pro Pixelwert in entweder einem direkten Farbformat, wie alphaRGB oder als Wahl des Alphawerts pro CLUT-Eintrag in einem CLUT-Format verwendet.
  • Die grafischen Elemente werden auf dem Fernsehbildschirm durch Zusammensetzen des Anzeige-Pufferspeichers angezeigt, der die grafischen Elemente mit wahlweise anderen Grafik- und Videoinhalten enthält, während der Objekt-Anzeige-Pufferspeicher mit allen Ebenen dahinter unter Verwendung des Alpha-pro-Pixel-Werts, der in den vorhergehenden Schritten erzeugt wurde, übergeblendet wird.
  • Zusätzlich kann die Durchsichtigkeit oder Undurchsichtigkeit des gesamten grafischen Elements verändert werden, indem der Alphawert des Anzeige-Pufferspeichers über solche Mittel, wie den Fenster-Alpha-Wert angegeben wird, die in einem Fenster-Deskriptor angegeben werden können.
  • 8. Video-Synchronisation
  • Wenn ein zusammengesetztes Videosignal (analoges Video) im System empfangen wird, wird es vorzugsweise digitalisiert und in YUV-Bestandteile (Helligkeits- und Farbsignal) zur Verarbeitung getrennt. Abtastwerte, die für YUV genommen werden, werden vorzugsweise zum Zusammensetzen mit Grafikdaten am Video-Kompositor mit einem Anzeigetakt synchronisiert. Das Mischen oder Überlagern von Grafik mit decodiertem analogen Video kann das genaue Synchronisieren der beiden Bildquellen erfordern. Unerwünschte Bildfehler, wie Zittern, können auf der Anzeige sichtbar sein, sofern nicht ein Synchronisationsmechanismus ausgeführt wird, um die Abtastwerte vom analogen Video mit dem Anzeigetakt richtig zu synchronisieren. Außerdem hält ein analoges Video häufig nicht genau die Fernsehnormen, wie NTSC und PAL, ein. Beispielsweise kann analoges Video, das aus Videorekordern stammt, Synchronisationssignale aufweisen, die nicht mit Farbsignal-Referenzsignalen ausgerichtet sind und außerdem unvereinbare Zeilenzeiten aufweisen. Daher sollte der Synchronisationsmechanismus vorzugsweise auch Abtastwerte von analogen, nicht normgerechten Videos richtig synchronisieren.
  • Das System umfasst daher vorzugsweise einen Video-Synchronisationsmechanismus, der einen ersten Abtastraten-Umsetzer zum Umsetzen einer Abtastrate eines Stroms von Video-Abtastwerten in eine erste umgesetzte Rate, einen Filter zum Verarbeiten mindestens einiger der Video-Abtastwerte mit der ersten umgesetzten Rate und einen zweiten Abtastraten-Umsetzer zum Umsetzen der ersten umgesetzten Rate in eine zweite umgesetzte Rate umfasst.
  • Mit Bezug auf 18 tastet der Video-Decoder 50 vorzugsweise die analoge Video-Eingabe ab und synchronisiert sie. Der Video-Empfänger empfängt vorzugsweise ein analoges Videosignal 706 in einem Analog-Digital-Umsetzer (ADU) 700, wo das analoge Video digitalisiert wird.
  • Das digitalisierte analoge Video 708 wird vorzugsweise von einem Farbsignal-synchronisierten Abtastraten-Umsetzer (SRC) 708 unterabgetastet. Ein abgetastetes Videosignal 710 wird an einen adaptiven 2H-Kammfilter/Farbsignal-Demodulator/Helligkeits-Prozessor 702 bereit gestellt, um in YUV (Helligkeits- und Farbsignal)-Bestandteile getrennt zu werden. Im 2H-Kammfilter/Farbsignal-Demodulator/Helligkeitssignal-Prozessor 702 werden die Farbsignal-Bestandteile demoduliert. Außerdem wird der Helligkeits-Bestandteil vorzugsweise durch Rauschunterdrückung, Kernbildung und Detail-Verbesserungs-Operationen verarbeitet. Der adaptive 2H-Kammfilter stellt das abgetastete Video 712, das in Helligkeits- und Farbsignal-Bestandteile getrennt und verarbeitet worden ist, einem Zeilen-synchronisierten SRC 704 bereit. Die Helligkeits- und Farbsignal-Bestandteile des abgetasteten Videos werden vorzugsweise erneut von dem Zeilen-synchronisierten SRC unterabgetastet, und das unterabgetastete Video 714 wird einem Zeitfehlerausgleicher (TBC) 72 bereit gestellt. Der Zeitfehlerausgleicher stellt vorzugsweise ein Ausgangs-Videosignal 716 bereit, das mit einem Anzeigetakt des Grafik-Anzeigesystems synchronisiert ist. In einer Ausführungsform der vorliegenden Erfindung läuft der Anzeigetakt bei einer Nennfrequenz von 13,5 MHz.
  • Der Synchronisationsmechanismus umfasst vorzugsweise den Farbsignal-synchronisierten SRC 70, den Zeilen-synchronisierten SRC 704 und den TBC 72. Der Farbsignal-synchronisierte SRC gibt Abtastwerte aus, die mit dem Farbsignal-Hilfsträger und seinen Referenz-Farbsynchronsignalen synchronisiert sind, während der Zeilen-synchronisierte SRC Abtastwerte ausgibt, die mit den horizontalen Synchronsignalen synchronisiert sind. In der bevorzugten Ausführungsform werden Abtastwerte von analogem Video vom ADU 700 überabgetastet und dann vom Farbsignal-synchronisierten SRC auf die vierfache Farbsignal-Hilfsträgerfrequenz (Fsc) heruntergetastet. Die heruntergetasteten Abtastwerte werden erneut vom Zeilen-synchronisierten SRC auf Zeilen-synchronisierte Abtastwerte mit einer effektiven Abtastraten-Nennfrequenz von 13,5 MHz heruntergetastet. Der Zeitfehlerausgleicher wird verwendet, um diese Abtastwerte mit dem Anzeigetakt auszurichten, der bei einer Nennfrequenz von 13,5 MHz läuft.
  • Analoges zusammengesetztes Video hat eine Farbsignalfrequenz, deren Frequenz mit der Frequenz des Helligkeitssignals verschachtelt ist. In einem normgerechten NTSC-Video wird dieses Farbsignal auf die Farbsignal-Hilfsträgerfrequenz von ungefähr 3.579545 MHz moduliert oder genau auf das 227,5-fache der horizontalen Zeilenfrequenz. Das Helligkeitssignal deckt eine Frequenzspanne von null bis ungefähr 4,2 MHz ab. Ein Verfahren zum Trennen des Helligkeitssignals vom Farbsignal besteht darin, das Video bei einer Frequenz abzutasten, die ein Vielfaches der Farbsignal-Hilfsträgerfrequenz ist und einen Kammfilter auf den abgetasteten Daten zu verwenden. Dieses Verfahren ist im Allgemeinen dadurch begrenzt, dass die Abtastfrequenz ein Vielfaches der Farbsignal-Hilfsträgerfrequenz (Fsc) ist.
  • Die Verwendung einer solchen Farbsignal-synchronisierten Abtastfrequenz bringt im Allgemeinen bedeutende Kosten und Schwierigkeiten in Bezug auf die Ausführung mit sich, da sie die Erstellung eines Abtasttakts der richtigen Frequenz erfordern kann, was wiederum einen stabilen, rauscharm steuerbaren Oszillator (z. B. einen VCXO) in einer Regelschleife erfordern kann, welche den VCXO mit der Farbsignal-Farbsynchronsignalfrequenz synchronisiert. Unterschiedliche Abtastfrequenzen sind typischerweise für unterschiedliche Video-Normen mit unterschiedlichen Farbsignal-Hilfsträgerfrequenzen erforderlich. Das vierfache Abtasten der Hilfsträgerfrequenz, d. h. 14,318 MHz für die NTSC-Norm und 17,72 MHz für die PAL-Norm, erfordert im Allgemeinen vor der Digitalisierung mehr Anti-Alias-Filterung, als erforderlich ist, wenn bei höheren Frequenzen, wie 27 MHz, abgetastet wird. Außerdem steht solch eine Farbsignal-synchronisierte Taktfrequenz häufig in keinem Verhältnis zu den anderen Frequenzen in einer großen digitalen Vorrichtung, die mehrere Taktdomänen und asynchrone interne Schnittstellen erfordern.
  • In der bevorzugten Ausführungsform werden die Abtastwerte jedoch nicht bei einer Frequenz genommen, die ein Vielfaches der Farbsignal-Hilfsträgerfrequenz ist. Vielmehr nimmt in der bevorzugten Ausführungsform eine integrierte Schaltung Abtastwerte des analogen Videos bei einer Frequenz, die im Wesentlichen beliebig ist und die mehr als das Vierfache der Farbsignal-Hilfsträgerfrequenz beträgt (4 Fsc = 14,318 MHz). Die Abtastfrequenz beträgt vorzugsweise 27 MHz und ist vorzugsweise nicht hinsichtlich der Phase oder Frequenz mit dem Eingangs-Videosignal synchronisiert. Die abgetasteten Videodaten gehen dann durch den Farbsignal-synchronisierten SRC, der die Daten. auf eine effektive Abtastfrequenz von 4 Fsc heruntertastet. Diese und alle nachfolgenden Operationen werden vorzugsweise bei der digitalen Verarbeitung in einer einzelnen integrierten Schaltung ausgeführt.
  • Die effektive Abtastfrequenz von 4 Fsc erfordert keine Taktfrequenz, die tatsächlich bei 4 Fsc liegt, vielmehr kann die Taktfrequenz fast jede beliebige höhere Frequenz sein, wie 27 MHz, und gültige Abtastwerte treten bei einigen Taktzyklen auf, während die Gesamtfrequenz gültiger Abtastwerte gleich 4 Fsc ist. Die Heruntertast (Dezimierungs)-Frequenz des SRC wird vorzugsweise von einem Farbsignalphasen- und Frequenzverfolgungs-Modul gesteuert. Das Farbsignalphasen- und Frequenzverfolgungs-Modul sucht am Ausgang des SRC während des Farbsynchronsignal-Zeitintervalls und passt die Dezimationsfrequenz durchgängig an, um die Phase und die Frequenz des Farbsynchronsignals anzupassen. Das Farbsignalphasen- und Frequenzverfolgungs-Modul wird als logische Entsprechung einer Phasenregelschleife (PLL) ausgeführt, wobei die Phase und die Frequenz des Farbsynchronsignals in einem Phasendetektor mit der effektiven Abtastfrequenz verglichen werden, die 4 Fsc sein soll, und die Phasen- und Frequenzfehlervariablen werden verwendet, um die SRC-Dezimationsfrequenz zu steuern.
  • Die Dezimationsfunktion wird auf das eingehende abgetastete Video angewandt, und daher steuert die Dezimationsfunktion die Phase und die Frequenz des Farbsynchronsignals, die auf den Phasendetektor angewandt werden. Dieses System ist eine geschlossene. Rückkopplungsschleife (Regelschleife), die auf sehr ähnliche Weise, wie ein herkömmlicher PLL arbeitet, und ihre Operationsparameter sind ohne weiteres auf gleiche Weise ausgelegt, wie die der PLLs.
  • Mit Bezug auf 19 umfasst das Farbsignal-synchronisierte SRC 70 vorzugsweise einen Abtastraten-Umsetzer (SRC) 730, einen Farbsignal-Verfolger 732 und einen Tiefpassfilter (TPF). Der SRC 730 ist vorzugsweise ein Mehrphasenfilter, der zeitveränderliche Koeffizienten besitzt. Der SRC wird vorzugsweise mit 35 Phasen und dem Umsetzungsverhältnis von 35/66 ausgeführt. Der SRC 730 interpoliert vorzugsweise bei genau 35 und dezimiert um (66 + Epsilon), d. h. die Dezimationsfrequenz ist vorzugsweise innerhalb eines Bereichs anpassbar, der von den Mindest- und Maximalwerten von Epsilon, im Allgemeinen ein kleiner Bereich, bestimmt wird. Epsilon ist ein erster Anpassungswert, der verwendet wird, um die Dezimationsfrequenz eines ersten Abtastraten-Umsetzers, d. h. des Farbsignal-synchronisierten Abtastraten-Umsetzers, anzupassen.
  • Epsilon wird vorzugsweise von der Regelschleife erzeugt, umfassend den Farbsignal-Verfolger 732 und den TPF 734 und kann negativ, positiv oder null sein. Wenn die Ausgabe-Abtastwerte des SRC 730 genau hinsichtlich der Frequenz und der Phase mit dem Farb-Hilfsträger synchronisiert sind, ist Epsilon null. Der Farbsignal-Verfolger verfolgt die Phase und die Frequenz der Farbsignal-Synchronsignale und vergleicht sie mit einem erwarteten Muster.
  • In einer Ausführungsform der vorliegenden Erfindung wird die Umsetzungsrate des Farb-synchronisierten SRC angepasst, so dass tatsächlich der SRC das Farbsignal-Synchronsignal genau vier Mal pro Farbsignal-Hilfsträgerzyklus abtastet. Der SRC nimmt die Abtastwerte bei den Phasen 0 Grad, 90 Grad, 180 Grad und 270 Grad des Farbsignal-Hilfsträgerzyklus'. Das heißt, dass ein Abtastwert bei jedem Zyklus des Farb-Hilfsträgers bei einem Nulldurchgang, einer positiven Spitze, Nulldurchgang und einer negativen Spitze (0, +1, 0, –1) genommen wird. Wenn das Muster, das von den Abtastwerten erhalten wird, von (0, +1, 0, –1) abweicht, wird diese Abweichung erkannt, und das Umsetzungsverhältnis muss in der Regelschleife angepasst werden.
  • Wenn die Ausgabe-Abtastwerte des Farbsignal-synchronisierten SRCs eine geringere Frequenz aufweisen oder in der Phase nachlaufen, z. B. das Muster aussieht wie (–1, 0, +1, 0), dann wird der Farbsignal-Verfolger 732 Epsilon negativ machen. Wenn Epsilon negativ ist, ist das Abtastraten-Umsetzungsverhältnis größer, als der Nennwert 35/66, und dies hat die Auswirkung, dass die Frequenz erhöht oder die Phase der Abtastwerte bei der Ausgabe des Farbsignal-synchronisierten SRCs vorverschoben wird. Wenn die Ausgabe-Abtastwerte des Farbsignal-synchronisierten SRCs eine höhere Frequenz aufweisen oder in der Phase vorlaufen, z. B. das Muster aussieht wie (+1, 0, –1, 0), dann wird der Farbsignal-Verfolger 732 Epsilon positiv machen. Wenn Epsilon positiv ist, ist das Abtastraten-Umsetzungsverhältnis geringer, als der Nennwert 35/66, und dies hat die Auswirkung, dass die Frequenz verringert oder die Phase der Abtastwerte aus dem Farbsignal-synchronisierten SRC rückverschoben wird. Der Farbsignal-Verfolger stellt dem TPF 734, der das Fehlersignal filtert, ein Fehlersignal 736 bereit, um Hochfrequenz-Bestandteile heraus zu filtern und stellt das gefilterte Fehlersignal dem SRC bereit, um die Regelschleife zu vervollständigen.
  • Der Abtasttakt kann bei der Systemtaktfrequenz oder bei der Taktfrequenz des Ziels des decodierten digitalen Videos laufen. Wenn der Abtasttakt im Systemtakt läuft, können die Kosten der integrierten Schaltung geringer sein, als bei einer, die einen Systemtakt und einen Hilfsträgersynchronisierten Video-Decoder-Takt hat. Eine integrierte Eintakt-Schaltung kann auf dem Analog-Digital-Umsetzer auf dem IC auch weniger Rauschen oder Störungen verursachen. Das System ist vorzugsweise ganz digital und erfordert keinen externen Kristall oder einen Spannungs-gesteuerten Oszillator.
  • Mit Bezug auf 20 verändert eine andere Ausführungsform des Farbsignal-synchronisierten SRCs 70 vorzugsweise die Abtastrate, während die Umsetzungsrate gleich gehalten wird. Ein Spannungs-gesteuerter Oszillator (z. B. VCXO) 760 verändert die Abtastrate, indem er ein Abtastraten-Frequenzsignal 718 an den ADU 700 bereitstellt. Die Umsetzungsrate in dieser Ausführungsform ist im SRC 750 auf 35/66 festgelegt, was das Verhältnis zwischen der vierfachen Farbsignal-Hilfsträgerfrequenz und 27 MHz ist.
  • In dieser Ausführungsform wird das Farbsignal-Synchronsignal am Ausgang des Farbsignal-synchronisierten SRCs mit dem erwarteten Farbsignal-Synchronsignal in einem Farbsignal-Verfolger 752 verglichen. Die Fehlersignale 756 vom Vergleich zwischen dem umgesetzten Farbsignal-Synchronsignal und dem erwartete Farbsignal-Synchronsignal werden durch einen Tiefpassfilter 754 weiter geleitet, und dann werden gefilterte Fehlersignale 758 an den VCXO 760 bereit gestellt, um die Oszillationsfrequenz des VCXOs zu steuern. Die Oszillationsfrequenz des VCXO ändert sich als Ansprechverhalten auf den Spannungspegel der bereit gestellten Fehlersignale. Die Verwendung von Eingangsspannung zum Steuern der Oszillatorfrequenz eines VCXO ist im Fachgebiet gut bekannt. Das hier beschriebene System ist eine Form einer Phasenregelschleife (PLL), deren Ausführung und Verwendung im Fachgebiet gut bekannt ist.
  • Nach der Beendigung der Trennung von Farbsignal und Helligkeitssignal und der anderen Verarbeitung in die Farbsignal- und Helligkeitssignal-Bestandteile werden die Abtastwerte mit der effektiven Abtastrate von 4 Fsc (d. h. das Vierfache der Farbsignal-Hilfsträgerfrequenz) vorzugsweise auf Abtastwerte mit einer Abtastraten-Nennfrequenz von 13,5 MHz durch die Verwendung eines zweiten Abtastraten-Umsetzers dezimiert. Da diese Abtastrate geringer ist, als die elektrische Taktfrequenz der digitalen integrierten Schaltung in der bevorzugten Ausführungsform, tragen nur einige Taktzyklen gültige Daten. In dieser Ausführungsform wird die Abtastrate vorzugsweise auf 13,5 MHz umgesetzt und mit der horizontalen Zeilenrate durch die Verwendung eines horizontalen Synchronisationssignals synchronisiert. Somit ist der zweite Abtastraten-Umsetzer ein Zeilen-synchronisierter Abtastraten-Umsetzer (SRC).
  • Der Zeilen-synchronisierte Abtastraten-Umsetzer setzt die gegenwärtige Videozeile in eine gleichbleibende (Paus) Anzahl Pixel um. Diese gleichbleibende Anzahl Pixel Paus ist normalerweise 858 für Anwendungen nach ITU-R BT.601 und 780 für NTSC-Anwendungen mit quadratischen Pixeln. Die gegenwärtige Videozeile kann eine veränderliche Anzahl Pixel (Pein) besitzen. Um diese Umsetzung von einer Farbsignal-synchronisierten Abtastrate zu vollziehen, werden die folgenden Schritte ausgeführt. Die Anzahl von Eingabe-Abtastwerten Pein der gegenwärtigen Videozeile wird genau gemessen. Diese Zeilenmessung wird verwendet, um das Abtastraten-Umsetzungsverhältnis zu messen, das erforderlich ist, um die Zeile auf genaue Paus-Abtastwerte umzusetzen. Ein Anpassungswert auf das Abtastraten-Umsetzungsverhältnis wird an ein Abtastraten-Umsetzungsmodul im Zeilen-synchronisierten SRC weiter geleitet, um das berechnete Abtastraten-Umsetzungsverhältnis für die gegenwärtige Zeile auszuführen. Das Abtastraten-Umsetzungsverhältnis wird nur einmal für jede Zeile berechnet. Vorzugsweise skaliert der Zeilen-synchronisierte SRC auch YUV-Bestandteile auf die richtigen Amplituden, die nach ITU-R BT.601 benötigt werden.
  • Die Anzahl erfasster Abtastwerte in einer horizontalen Zeile kann größer oder kleiner sein, wenn das Eingabe-Video ein nicht normgerechtes Video ist. Wenn beispielsweise das eingehende Video von einem Videorekorder kommt und die Abtastrate das Vierfache der Farb-Hilfsträgerfrequenz (4 Fsc) ist, dann kann die Anzahl von Abtastwerten, die zwischen zwei horizontalen Synchronsignalen genommen wird, größer oder kleiner sein als 910, wobei 910 die Anzahl von Abtastwerten pro Zeile ist, die beim Abtasten von NTSC-Standardvideo bei einer Abtastfrequenz von 4 Fsc erhalten wird. Beispielsweise kann sich die horizontale Zeilenzeit von einem Videorekorder ändern, wenn das Videoband gedehnt worden ist.
  • Die horizontale Zeilenzeit kann genau gemessen werden, indem zwei aufeinander folgende horizontale Synchronsignale erfasst werden. Jedes horizontale Synchronsignal wird vorzugsweise an der Vorderflanke des horizontalen Synchronsignals erfasst. In anderen Ausführungsformen können die horizontalen Synchronsignale durch andere Mittel erfasst werden. Beispielsweise kann die Form des gesamten horizontalen Synchronsignals zur Erfassung betrachtet werden. In der bevorzugten Ausführungsform ist die Abtastrate für jede Videozeile vom Farbsignal-synchronisierten Abtastraten-Umsetzer auf das Vierfache der Farb-Hilfsträgerfrequenz (4 Fsc) umgesetzt worden. Die Messung der horizontalen Zeilenzeit erfolgt vorzugsweise in zwei Genauigkeitsstufen, einer ganzzahligen Pixel-Genauigkeit und einer Unterabtast-Genauigkeit.
  • Die ganzzahlige Pixel-Genauigkeit wird vorzugsweise durch Zählen der ganzzahligen Pixel ermittelt, die zwischen zwei aufeinander folgenden Synchronsignalflanken auftreten. Die Synchronsignalflanke wird voraussichtlich erkannt, wenn die Daten einen Schwellenwert überschreiten. Beispielsweise ist in einer Ausführungsform der vorliegenden Erfindung der Analog-Digital-Umsetzer (ADU) ein 10-Bit-ADU, d. h. er setzt ein analoges Eingangssignal in ein digitales Signal mit (210 – 1 = 1023) Skalenschritten um. In dieser Ausführungsform wird der Schwellenwert ausgewählt, so dass er einen geeigneten Pegel zur Aufteilung horizontaler Synchronsignale in kleinere Teile im 10-Bit-Zahlensystem des ADUs darstellt; ein typischer Wert für diesen Schwellenwert ist 128. Die negative Spitze (oder eine Synchronsignalspitze) des digitalisierten Videosignals tritt normalerweise während der Synchronsignalpulse auf. Der Schwellenwert würde normalerweise so eingestellt werden, dass er bei ungefähr dem Mittelpunkt der Synchronsignalpulse auftritt. Der Schwellenwert kann automatisch vom Video-Decoder angepasst werden, oder er kann ausdrücklich über ein Register oder andere Mittel eingestellt werden.
  • Der horizontale Synchronsignal-Verfolger erkennt vorzugsweise die horizontale Synchronsignalflanke mit einer Unterabtast-Genauigkeit von bis zu (1/16) eines Pixels, um die Abtastraten-Umsetzung genauer berechnen zu können. Die eingehenden Abtastwerte umfassen im Allgemeinen keinen Abtastwert, der genau am Schwellenwert zum Erfassen horizontaler Synchronsignalflanken genommen worden ist. Der horizontale Synchronsignal-Verfolger erkennt vorzugsweise zwei aufeinander folgende Abtastwerte, von denen einer einen Wert hat, der geringer als der Schwellenwert ist, und der andere einen Wert hat, der größer als der Schwellenwert ist.
  • Nachdem die ganzzahlige Pixel-Genauigkeit bestimmt worden ist (Synchronsignalflanke ist erkannt worden), wird die Unter-Pixelberechnung vorzugsweise begonnen. Die Synchronsignalflanke eines horizontalen Synchronsignals ist im Allgemeinen keine senkrechte Linie, sondern weist eine Steigung auf. Um Rauschen zu beseitigen, wird das Videosignal durch einen Tiefpassfilter geleitet. Der Tiefpassfilter verringert im Allgemeinen die Schärfe des Übergangs, d. h. der Tiefpassfilter kann dafür sorgen, dass der Übergang von einer niedrigen Ebene zu einer hohen Ebene länger dauert.
  • Der horizontale Synchronsignal-Verfolger verwendet vorzugsweise eine Unterabtast-Interpolationstechnik, um eine genaue Messung der Lage der Synchronsignalflanke zu erhalten, indem eine gerade Linie zwischen den beiden aufeinander folgenden Abtastwerten des horizontalen Synchronsignals direkt über und direkt unter dem angenommenen Schwellenwert gezogen wird, um zu bestimmen, wo der Schwellenwert überschritten worden ist.
  • Drei Werte werden vorzugsweise zur Bestimmung der Unterabtast-Genauigkeit verwendet. Die drei Werte sind der Schwellenpegel (T), der Wert des Abtastwerts, der den Schwellenpegel überschritten hat (V2) und der Wert des vorherigen Abtastwerts, der den Schwellenpegel nicht überschritten hat (V1). Der Unterabtastwert ist das Verhältnis von (T – V1)/(V2 – V1). In der vorliegenden Ausführungsform wird keine Teilung ausgeführt. Die Differenz (V2 – Vl) wird durch 16 geteilt, um eine Variable mit dem Namen DELTA zu ergeben. V1 wird dann um DELTA erhöht, bis es den Schwellenwert T überschreitet. Die Anzahl der Male, die DELTA zu V1 hinzu gefügt wird, damit es den Schwellenwert (T) überschreitet, ist die Unter-Pixel-Genauigkeit von 1/16 eines Pixels.
  • Wenn beispielsweise angenommen wird, dass der Schwellenwert T 146 Skalenstufen hat, und wenn die Werte V1 und V2 der beiden aufeinander folgenden Abtastwerte 140, beziehungsweise 156 sind, wird das DELTA als 1 berechnet und durch Interpolation bestimmt, dass das Überschreiten des Schwellenwerts sechs DELTAs vom ersten der beiden aufeinander folgenden Schwellenwerte entfernt ist. Somit würde, wenn der Abtastwert mit dem Wert 140 der n-te Abtastwert und der Abtastwert mit dem Wert 156 der (n + 1)-te Abtastwert ist, der (n + (6/16))-te Abtastwert den Schwellenwert gehabt haben. Da vorzugsweise angenommen wird, dass das horizontale Synchronsignal am Schwellenwert der Synchronsignalflanke erkannt wird, wird ein Bruchteile des Abtastwerts, d. h. 6/16 des Abtastwerts, der Anzahl von Abtastwerten hinzugefügt, die zwischen zwei aufeinander folgenden horizontalen Synchronsignalen gezählt werden.
  • Um die Abtastrate der gegenwärtigen Anzahl von Eingabe-Pixeln Pein in die gewünschten Ausgabe-Pixel Paus umzusetzen, besitzt das Abtastraten-Umsetzermodul ein Abtastraten-Umsetzungsverhältnis von Pein/Paus Das Abtastraten- Umsetzermodul in der bevorzugten Ausführungsform des Zeilen-synchronisierten Abtastraten-Umsetzers ist ein Mehrphasenfilter mit zeitveränderlichen Koeffizienten. Es gibt eine feste Anzahl von Phasen (I) im Mehrphasenfilter. In der bevorzugten Ausführungsform ist die Anzahl der Phasen (I) 33. Die Steuerung für den Mehrphasenfilter erfolgt durch die Dezimationsrate (d_akt) und ein Zurücksetzungs-Phasensignal. Die Zeilenmessung Pein wird an ein Modul gesendet, das sie in eine Dezimationsrate d_akt umsetzt, so dass I/d_akt (33/d_akt) gleich Pein/Paus ist. Die Dezimationsrate d_akt wird wie folgt berechnet: d_akt = (I/Paus)*Pein.
  • Wenn die Eingabe-Videoziele die normgerechte Länge der Zeit ist und das Vierfache des Farb-Hilfsträgers die normgerechte Frequenz ist, dann wird Pein genau 910 Abtastwerte betragen. Dies ergibt ein Abtastraten-Umsetzungsverhältnis von (858/910). In der vorliegenden Ausführungsform beträgt die Anzahl der Phasen (die Interpolationsrate) 33. Daher ist die Dezimations-Nennrate für NTSC 35 (= (33/858)*910). Diese Dezimationsrate d_akt kann dann an das Abtastraten-Umsetzermodul geschickt werden. Ein Zurücksetzungs-Phasensignal wird an das Abtastraten-Umsetzermodul geschickt, nachdem die Unterabtast-Berechnung erfolgt ist, und das Abtastraten-Umsetzermodul beginnt mit der Verarbeitung der gegenwärtigen Videozeile. In der bevorzugten Ausführungsform wird nur der aktive Teil des Videos verarbeitet und an einen Zeitfehlerausgleicher weiter geleitet. Dies führt zu Einsparungen beim benötigten Speicherplatz. Nur 720 Abtastwerte des aktiven Videos werden als Ausgabe-Abtastraten nach ITU-R BT.601 erzeugt. In anderen Ausführungsformen kann die gesamte waagerechte Zeile verarbeitet und als Ausgabe erzeugt werden.
  • In der bevorzugten Ausführungsform erfolgt die Berechnung der Dezimationsrate d_akt etwas anders als die Gleichung d_akt = (I/Paus)*Pein. Die Ergebnisse sind gleich, aber es gibt Einsparungen hinsichtlich der Hardware. Die gegenwärtige Zeilenlänge, Pein, wird eine verhältnismäßig kleine Veränderung hinsichtlich der Zeilen-Nennlänge aufweisen. Pein beträgt nominal 910. Es verändert sich typischerweise um weniger als 62. Für NTSC ist diese Veränderung weniger als 5 Mikrosekunden. Die folgende Berechnung wird durchgeführt: d_akt = (I/Paus)*Pein(Pein – Pein_Nenn)) + d_act_Nenn
  • Dies führt vorzugsweise zu einer Hardware-Einsparung für die gleiche Genauigkeitsstufe. Die Differenz (Pein – Pein_Nenn) kann durch weniger Bits dargestellt werden, als erforderlich sind, um Pein darzustellen, daher kann ein kleinerer Multiplikator verwendet werden. Für NTSC ist d_akt_Nenn 35 und Pein_Nenn 910. Der Wert (I/Paus)*(Pein – Pein_Nenn) kann nun als delta_dez (Delta-Dezimationsrate) oder als zweiter Anpassungswert bezeichnet werden.
  • Um die Ausgabe-Abtastrate von 858 Abtastwerten pro waagerechter Zeile zu erhalten, ist daher die angewandte Umsetzungsrate vorzugsweise 33/(35 + delta_dez), wobei die Abtastwerte um 33 interpoliert und um (35 + delta_dez) dezimiert werden. Ein horizontaler Synchronsignal-Verfolger erkennt vorzugsweise horizontale Synchronsignale, zählt die Anzahl von Abtastwerten zwischen zwei aufeinander folgenden horizontalen Synchronsignalen genau und erzeugt delta_dez.
  • Wenn die Anzahl von Abtastwerten zwischen zwei aufeinander folgenden horizontalen Synchronsignalen größer als 910 ist, erzeugt der horizontale Synchronsignal-Verfolger ein positives delta_dez, um die Ausgabe-Abtastrate bei 858 Abtastwerten pro waagerechter Zeile zu halten. Wenn die Anzahl von Abtastwerten zwischen zwei aufeinander folgenden horizontalen Synchronsignalen kleiner als 910 ist, erzeugt der horizontale Synchronsignal-Verfolger andererseits ein negatives delta_dez, um die Ausgabe-Abtastrate bei 858 Abtastwerten pro waagerechter Zeile zu halten.
  • Für PAL-Standardvideo erzeugt der horizontale Synchronsignal-Verfolger das delta_dez, um die Ausgabe-Abtastrate bei 864 Abtastwerten pro waagerechter Zeile zu halten.
  • Zusammengefasst wird die Position jedes horizontalen Synchronsignalpulses durch Interpolation zwischen zwei aufeinander folgenden Abtastwerten auf Unter-Pixel-Genauigkeit bestimmt, wobei einer von beiden unmittelbar unter dem Schwellenwert und der andere unmittelbar über dem Schwellenwert liegt. Die Anzahl von Abtastwerten zwischen den beiden aufeinander folgenden horizontalen Synchronsignalpulsen wird vorzugsweise auf Unterabtastwert-Genauigkeit berechnet, indem die Positionen beider aufeinander folgender horizontaler Synchronsignalpulse auf Unter-Pixel-Genauigeit bestimmt wird. Beim Berechnen von delta_dez verwendet der horizontale Synchronsignal-Verfolger vorzugsweise die Differenz zwischen 910 und der Anzahl von Abtastwerten zwischen zwei aufeinander folgenden horizontalen Synchronsignalen, um die Menge der benötigten Hardware herabzusetzen.
  • In einer anderen Ausführungsform wird der Dezimationsraten-Anpassungswert, delta_dez, der für jede Zeile berechnet wird, vorzugsweise durch einen Tiefpassfilter geleitet, bevor er in das Abtastraten-Umsetzermodul gelangt. Einer der Vorzüge dieses Verfahrens ist das Filtern von Veränderungen der Zeilenlänge benachbarter Zeilen, in denen die Veränderungen durch Rauschen verursacht werden können, das die Messgenauigkeit der Synchronsignal-Pulspositionen beeinträchtigt.
  • In einer weiteren anderen Ausführungsform läuft der Eingangs-Abtasttakt nicht frei, sondern ist stattdessen mit dem analogen Eingabe-Video Zeilen-synchronisiert, vorzugsweise auf 27 MHz. Der Farbsignal-synchronisierte Abtastraten-Umsetzer setzt die abgetasteten 27 MHz-Daten auf eine Abtastrate der vierfachen Farbsignal-Hilfsträgerfrequenz um. Das analoge Videosignal wird vorzugsweise unter Verwendung eines Kammfilters in Videosignale aus Helligkeitssignal- und Farbsignalbestandteilen demoduliert. Die Videosignale aus Helligkeitssignal- und Farbsignalbestandteilen werden dann an den Zeilen-synchronisierten Abtastraten-Umsetzer gesendet, wo sie vorzugsweise in eine Abtastrate von 13,5 MHz umgesetzt werden. In dieser Ausführungsform kann die 13,5 MHz-Abtastrate am Ausgang genau die Hälfte der 27 MHz-Abtastrate am Eingang betragen. Das Umsetzungsverhältnis des Zeilen-synchronisierten Abtastraten-Umsetzers ist vorzugsweise genau die Hälfte der Umkehrung des Umsetzungsverhältnisses, das vom Farbsignal-synchronisierten Abtastraten-Umsetzer ausgeführt wird.
  • Mit Bezug auf 21 umfasst der Zeilen-synchronisierte SRC 704 vorzugsweise einen SRC 770, der vorzugsweise ein Mehrphasenfilter mit zeitveränderlichen Koeffizienten ist. Die Anzahl der Phasen ist vorzugsweise auf 33 fest gelegt, während die Dezimations-Nennrate 35 beträgt. Mit anderen Worten ist das verwendete Umsetzungsverhältnis vorzugsweise 33/(35 + delta_dez), wobei delta_dez positiv oder negativ sein kann. Das delta_dez ist ein zweiter Anpassungswert, der zum Anpassen der Dezimationsrate des zweiten Abtastraten-Umsetzers verwendet wird. Vorzugsweise werden die tatsächliche Dezimationsrate und -phase automatisch für jede waagerechte Zeile angepasst, so dass die Anzahl der Abtastwerte pro waagerechter Zeile 858 beträgt (720 aktive Y-Abtastwerte und 360 aktive U- und V-Abtastwerte) und die Phase der aktiven Video-Abtastwerte richtig mit den horizontalen Synchronsignalen ausgerichtet wird.
  • In der bevorzugten Ausführungsform wird die Dezimations (Heruntertast)-Rate des SRCs vorzugsweise von einem horizontalen Synchronsignal-Verfolger 772 gesteuert. Vorzugsweise passt der horizontale Synchronsignal-Verfolger die Dezimationsrate einmal pro waagerechter Zeile an, um zu einer richtigen Anzahl und Phase von Abtastwerten in dem Intervall zwischen horizontalen Synchronsignalen zu führen. Der horizontale Synchronsignal-Verfolger stellt die angepasste Dezimationsrate vorzugsweise dem SRC 770 bereit, um das Umsetzungsverhältnis anzupassen. Die Dezimationsrate wird vorzugsweise berechnet, um eine Unterabtast-Genauigkeit von 1/16 zu erhalten. Vorzugsweise umfasst der Zeilen-synchronisierte SRC 704 auch einen YUV-Skalierer 780, um YUV-Bestandteile auf die richtigen Amplituden zu skalieren, die nach ITU-R BT.601 erforderlich sind.
  • Der Zeitfehlerausgleicher (TBC) synchronisiert vorzugsweise die Abtastwerte, welche die Zeilen-synchronisierte Abtastrate mit einer Nennfrequenz von 13,5 MHz haben, mit dem Anzeigetakt, der bei einer Nennfrequenz von 13,5 MHz läuft. Da die Abtastwerte am Ausgang des TBC mit dem Anzeigetakt synchronisiert sind, kann dem Video-Kompositor Passthrough-Video bereit gestellt werden, ohne dass es zuerst eingelesen werden muss.
  • Um Abtastwerte in der Abtastraten-Nennfrequenz von 13,5 MHz zu erzeugen, kann das zusammengesetzte Video auf jede beliebige Weise mit einer Taktfrequenz abgetastet werden, die im Allgemeinen im Fachgebiet verwendet wird. Vorzugsweise wird das zusammengesetzte Video zuerst bei 27 MHz-abgetastet, vom Farbsignal-synchronisierten SRC herunter getastet auf die Abtastrate von 14,318 MHz und dann vom Zeilen-synchronisierten SRC herunter getastet auf die Abtastraten-Nennfrequenz von 13,5 MHz. Während der Umsetzung der Abtastraten verwendet der Video-Decoder für die zeitliche Abstimmung den 27 MHz-Takt, der für die Abtastung der Eingabe verwendet wurde. Der 27 MHz-Takt, der frei läuft, wird weder mit der Zeilenrate, noch mit der Farbsignal-Frequenz des eingehenden Videos synchronisiert.
  • In der bevorzugten Ausführungsform werden die decodierten Video-Abtastwerte in einem FIFO der Größe einer Anzeigezeile des aktiven Videos bei 13,5 MHz gespeichert, d. h. 720 Abtastwerte mit 16 Bits pro Abtastwert oder 1440 Bytes. Somit ist die maximale Verzögerungsmenge dieses FIFOs eine Anzeige-Zeilenzeit mit einer normalen nominalen Verzögerung einer halben Anzeigen-Zeilenzeit. In der bevorzugten Ausführungsform werden die Video-Abtastwerte vom FIFO zu der Anzeige-Taktrate ausgegeben, deren Nennfrequenz 13,5 MHz beträgt. Ausgenommen für vertikale Synchronisationssignale des Eingabe-Videos, steht die Anzeige-Taktrate zur zeitlichen Abstimmung des Eingabe-Videos in keinem Verhältnis. In anderen Ausführungsformen können größere oder kleinere FIFOs verwendet werden.
  • Obgleich die effektive Abtastrate und die Anzeige-Taktrate beide eine Nennfrequenz von 13,5 MHz aufweisen, sind die Rate des abgetasteten Videos, das in den FIFO gelangt, und die Anzeigerake im Allgemeinen unterschiedlich. Diese Abweichung ist auf Unterschiede zwischen den tatsächlichen Frequenzen der effektiven Eingabe-Abtastrate und dem Anzeigetakt zurück zu führen. Beispielsweise besitzt die effektive Eingabe-Abtastrate eine Nennfrequenz von 13,5 MHz, ist aber so synchronisiert, dass sie bei 858-facher Zeilenrate der Video-Eingabe arbeitet, während der Anzeigetakt bei einer Nennfrequenz von 13,5 MHz, unabhängig von der Zeilenrate des Video-Eingangs arbeitet.
  • Da die Raten von Daten, die in den FIFO eingehen und ausgehen, typischer Weise unterschiedlich sind, wird der FIFO dazu neigen, sich entweder aufzufüllen oder zu leeren, abhängig von verhältnismäßigen Raten der eingehenden und ausgehenden Daten. In einer Ausführungsform der vorliegenden Erfindung wird Video mit einer ursprünglichen Verzögerung von der Hälfte einer horizontalen Zeilenzeit zu Beginn jedes Halbbilds angezeigt. Dies ermöglicht, dass sich die Eingabe- und Ausgaberaten bis zu dem Punkt unterscheiden, an dem sich die horizontalen Eingabe- und Ausgabephasen um bis zur Hälfte einer horizontalen Zeilenzeit ändern können, ohne irgendwelche Störimpulse an der Anzeige hervorzurufen.
  • Der FIFO wird vorzugsweise während der ersten aktiven Videozeile jedes Halbbilds ungefähr halb voll aufgefüllt, bevor irgendein Ausgabe-Video genommen wird. Somit folgt der Beginn jedes Anzeige-Halbbilds dem Beginn jedes Eingabe-Video-Halbbilds um eine feste Verzögerung, die ungefähr gleich der Hälfte der Zeit zum Füllen des gesamten FIFOs ist. Als solche ist die ursprüngliche Verzögerung zu Beginn jedes Halbbilds in dieser Ausführungsform eine halbe horizontale Zeilenzeit, wobei die ursprüngliche Verzögerung in anderen Ausführungsformen unterschiedlich sein kann.
  • Mit Bezug auf 22 umfasst der Zeitfehlerausgleicher (TBC) 72 eine TBC-Steuerung 164 und einen FIFO 166. Der FIFO 166 empfängt ein Eingabe-Video 714 bei einer Nennfrequenz von 13,5 MHz, die mit der horizontalen Zeilenrate des Eingabe-Videos synchronisiert ist, und gibt ein verzögertes Eingabe-Video als Ausgabe-Video 716 aus, das mit dem Anzeigetakt synchronisiert ist, der bei einer Nennfrequenz von 13,5 MHz läuft. Die ursprüngliche Verzögerung zwischen dem Eingabe-Video und dem verzögerten Eingabe-Video beträgt die Hälfte einer horizontalen Zeilenzeit von aktivem Video, z. B. 53,5 μs pro aktivem Video in einer horizontalen Zeile/2 = 26,75 μs für NTSC-Standard-Video.
  • Die TBC-Steuerung 164 erzeugt vorzugsweise ein vertikales Synchronisationssignal (VSYNC) zur Anzeige, das um die Hälfte einer waagerechte Zeile von einem Eingabe-VSYNC verzögert ist. Die TBC-Steuerung 164 erzeugt vorzugsweise auch Taktsignale, wie normgerechte Taktsignale für NTSC oder PAL. Die Taktsignale werden vorzugsweise vom VSYNC abgeleitet, das von der TBC-Steuerung erzeugt wird, und umfassen vorzugsweise horizontale Synchronisationssignale. Die Taktsignale werden nicht vom Eingabe-Video beeinträchtigt, und der FIFO wird synchron mit den Taktsignalen ausgelesen. Daten werden aus dem FIFO gemäß der zeitlichen Abstimmung an der Anzeigeseite gelesen, während die Daten in den FIFO gemäß der zeitlichen Eingabe-Abstimmung geschrieben werden. Ein Zeilenrücksetzer setzt den FIFO-Schreibzeiger zum Melden einer Zeile zurück. Ein Lesezeiger, der von der Anzeigeseite gesteuert wird, wird durch die zeitliche Abstimmung der Anzeige aktualisiert.
  • So lange die angesammelte Veränderung der FIFO-Auslastung in einer beliebigen Richtung weniger, als die Hälfte einer Videozeile ist, wird der FIFO im Allgemeinen während des Video-Halbbilds weder unterlaufen, noch überlaufen. Dies gewährleistet den richtigen Betrieb, wenn sich die Anzeige-Taktfrequenz irgendwo innerhalb einer ziemlich breiten Nenn-Mittenfrequenz befindet. Da der Vorgang bei jedem Halbbild wiederholt wird, sammeln sich die Änderungen der FIFO-Auslastung nicht über die Halbbildzeit hinaus an.
  • Mit Bezug auf 23 wird ein Flussdiagramm eines Vorgangs dargestellt, in dem der TBC 72 verwendet wird. Der Vorgang wird in Schritt 782 beim Hochfahren des Systems zurückgesetzt. Das System prüft vorzugsweise in Schritt 784, ob ein vertikales Synchronisationssignal (VSYNC) vorliegt. Nach dem Empfangen des Eingabe-VSYNCs beginnt das System in Schritt 786 vorzugsweise, die Anzahl der eingehenden Video-Abtastwerte zu zählen. Das System lädt den FIFO vorzugsweise in Schritt 788 durchgängig mit den eingehenden Video-Abtastwerten. Während der FIFO geladen wird, prüft das System in Schritt 790, ob ausreichend Abtastwerte empfangen worden sind, um den FIFO bis zu einem halb vollen Zustand zu füllen.
  • Wenn ausreichend Abtastwerte empfangen worden sind, um den FIFO bis zum halb vollen Zustand zu füllen, erzeugt das System in Schritt 792 vorzugsweise Taktsignale, umfassend horizontale Synchronisationssignale, um die Ausgabe des TBCs mit dem Anzeigetakt zu synchronisieren. Das System gibt in Schritt 794 vorzugsweise den Inhalt des FIFOs durchgängig synchronisiert mit dem Anzeigetakt aus. Das System prüft in Schritt 796 vorzugsweise, ob ein anderes Eingabe-VSYNC vorliegt. Wenn ein anderes vertikales Eingabe-Synchronsignal erkannt wird, beginnt das System, erneut die Anzahl von Video-Abtastwerten zu zählen und beginnt, Video-Abtastwerte auszugeben, wenn ausreichend Eingabe-Video-Abtastwerte empfangen worden sind, um den FIFO halb zu füllen.
  • In anderen Ausführungsformen der vorliegenden Erfindung kann die FIFO-Größe kleiner oder größer sein. Die annehmbare Mindestgröße wird durch die maximale erwartete Abweichung zwischen der Videoquellen-Abtastrate und der Anzeige-Abtastrate bestimmt. Größere FIFOs erlauben größere Veränderungen der zeitlichen Abstimmung der Abtastrate, jedoch zu größeren Kosten. Für eine beliebige ausgewählte FIFO-Größe sollte die Logik, welche das Synchronisationssignal erzeugt, das die Anzeigevideo-Halbbilder auslöst, einer Verzögerung von der zeitlichen Abstimmung des Eingabe-Videos ausgesetzt sein, die der Hälfte der Verzögerung des gesamten FIFOS entspricht, wie zuvor beschrieben. Es ist jedoch nicht erforderlich, dass die Verzögerung der Hälfte der Verzögerung des gesamten FIFOS entspricht.
  • 9. Video-Skalierer
  • In gewissen Anwendungen von Grafik- und Video-Anzeige-Hardware kann es notwendig oder wünschenswert sein, die Größe eines Bewegtbilds entweder zu verkleinern oder zu vergrößern. Es kann auch wünschenswert sein, die Anforderungen an die Speichernutzung und die Speicherbandbreite so weit wie möglich herabzusetzen. Daher ist es wünschenswert, vor dem Schreiben in den Speicher zu verkleinern und nach dem Lesen aus dem Speicher zu vergrößern, anstatt in einem der Fälle anders herum vorzugehen. Herkömmlicherweise ist vor dem Schreiben in den Speicher entweder getrennte Hardware zu verkleinern und nach dem Lesen aus dem Speicher zu vergrößern, oder ansonsten erfolgt die gesamte Skalierung an einer Stelle oder der anderen, wie vor dem Schreiben in den Speicher, selbst, wenn hochskaliert wird.
  • In der bevorzugten Ausführungsform führt ein Video-Skalierer sowohl Vergrößern, als auch Verkleinern entweder von digitalem Video oder digitalisiertem analogen Video aus. Der Video-Skalierer wird vorzugsweise so konfiguriert, dass er entweder zum Verkleinern der Größe von Videobildern verwendet werden kann, bevor diese in den Speicher geschrieben werden, oder zum Vergrößern der Größe von Videobildern, nachdem sie aus dem Speicher gelesen worden sind. Die Größe der Videobilder wird vorzugsweise verkleinert, bevor diese in den Speicher geschrieben werden, so dass die Anforderungen an die Speicherverwendung und an die Speicherbandbreite so weit wie möglich herab gesetzt werden. Aus ähnlichen Gründen wird die Größe der Videobilder vorzugsweise vergrößert, nachdem diese aus dem Speicher gelesen worden sind.
  • Im zuerst genannten Fall befindet sich der Video-Skalierer vorzugsweise im Signalpfad zwischen einem Video-Eingang und einem Schreibanschluss einer Speichersteuerung. Im zuletzt genannten Fall befindet sich der Video-Skalierer vorzugsweise im Signalpfad zwischen einem Leseanschluss der Speichersteuerung und einem Video-Kompositor. Daher kann man es so sehen, dass der Video-Skalierer an zwei unterschiedlichen logischen Plätzen in der Ausführung vorhanden ist, während er tatsächlich nur eine physikalische Ausführung belegt.
  • Diese Funktion wird vorzugsweise erreicht, indem eine Multiplexer-Funktion am Eingang der Skalierungs-Einheit angeordnet wird, wobei ein Eingang zum Multiplexer an den Video-Eingangsanschluss und der andere an den Speicher-Leseanschluss angeschlossen wird. Der Speicher-Schreibanschluss wird mit einem Multiplexer an seinem Eingang angeordnet, wobei ein Eingang zum Multiplexer an den Ausgang der Skalierungs-Einheit und der andere an den Video-Eingangsanschluss angeschlossen wird. Der Anzeige-Ausgangsanschluss wird mit einem Multiplexer an seinem Eingang angeordnet, wobei ein Eingang an den Ausgang der Skalierungs-Einheit und der andere Eingang an den Ausgang des Speicher-Leseanschlusses angeschlossen wird.
  • In der bevorzugten Ausführungsform sind unterschiedliche Taktdomänen den Funktionen des Video-Eingangs und des Anzeige-Ausgangs des Chips zugehörig. Die Video-Skalierungs-Einheit verwendet einen Takt, der zwischen dem Video-Eingangstakt und dem Anzeige-Ausgangstakt (Anzeigetakt) ausgewählt wird. Die Taktauswahl verwendet eine Störimpuls-freie Taktwahllogik, d. h. eine Schaltung, welche der Erzeugung sehr enger Taktpulse vorbeugt, wenn die Taktauswahl geändert wird. Die Lese- und Schreib-Schnittstellen zum Speicher verwenden beide asynchrone Schnittstellen unter Verwendung von FIFOs, so dass sich die Speicher-Taktdomäne sowohl von der Video-Eingangstakt-Domäne, als auch von der Anzeige-Ausgangstakt-Domäne unterscheiden kann.
  • Mit Bezug auf 24 stellt ein Flussdiagramm einen Vorgang anderer möglicher Vergrößerung oder Verkleinerung der Video-Eingabe 800 dar. Das System in Schritt 802 wählt vorzugsweise zwischen einer Verkleinerungs-Operation und einer Vergrößerungs-Operation aus. Wenn die Verkleinerungs-Operation gewählt wird, verkleinert das System in Schritt 804 vorzugsweise das Eingabe-Video, bevor das Eingabe-Video in Schritt 806 im Speicher eingelesen wird. Wenn die Vergrößerungs-Operation in Schritt 802 gewählt wird, liest das System in Schritt 806 vorzugsweise das Eingabe-Video in den Speicher ein, ohne es zu skalieren.
  • Dann gibt das System in Schritt 808 das verkleinerte Video als verkleinerte Ausgabe 810 aus. Das System sendet jedoch in Schritt 808 nicht-skaliertes Video in den Vergrößerungspfad, damit es in Schritt 812 vergrößert wird. Das System vergrößert in Schritt 812 das nicht-skalierte Video und gibt es als vergrößerte Video-Ausgabe 814 aus.
  • Die Video-Pipeline unterstützt vorzugsweise bis zu ein skaliertes Videofenster und ein Passthrough-Videofenster und eine Hintergrundfarbe, von denen sich alle logisch hinter dem Satz von Grafikfenstern befinden. Die Reihenfolge dieser Fenster ist von hinten nach vorn festgelegt als Hintergrund, dann Passthrough, dann skaliertes Video. Die Video-Fenster liegen vorzugsweise immer im YUV-Format vor, obgleich sie entweder 4 : 2 : 2 oder 4 : 2 : 0-Varianten von YUV sein können. Sie können aber auch in RGB oder anderen Formaten vorliegen.
  • Wenn digitales Video, z. B. MPEG, dem Grafik-Anzeigesystem bereit gestellt wird oder wenn analoges Video digitalisiert wird, wird das digitale Video oder das digitalisierte analoge Video einem Video-Kompositor unter Verwendung von drei Signalpfaden, abhängig von den Verarbeitungsanforderungen, bereit gestellt. Das digitale Video und das digitalisierte analoge Video werden dem Video-Kompositor als Passthrough-Video über einen Passthrough-Pfad, als vergrößertes Video über einen Vergrößerungspfad und als verkleinertes Video über einen Verkleinerungspfad bereit gestellt.
  • Ein beliebiges der digitalen Videos oder der analogen Videos kann dem Video-Kompositor als das Passthrough-Video bereit gestellt werden, während die anderen digitalen Videos oder analogen Videos als ein vergrößertes Video oder ein verkleinertes Video bereit gestellt werden. Zum Beispiel kann das digitale Video dem Video-Kompositor über den Passthrough- Pfad bereit gestellt werden, während gleichzeitig das digitalisierte analoge Video verkleinert und dem Video-Kompositor über den Verkleinerungspfad als Videofenster bereit gestellt wird. In einer Ausführungsform der vorliegenden Erfindung, in welcher die Skalierungs-Einheit vom Vergrößerungspfad und dem Verkleinerungspfad geteilt wird, kann die Skalierungs-Einheit Video entweder entlang der senkrechten oder der waagerechten Achse vergrößern, während Video in Richtung der anderen Achse verkleinert wird. In dieser Ausführungsform werden jedoch keine Vergrößerungs-Operation und Verkleinerungs-Operation auf der gleichen Achse gleichzeitig ausgeführt, da nur ein Filter verwendet wird, um sowohl Vergrößern, als auch Verkleinern für jede Achse auszuführen.
  • Mit Bezug auf 25 führt ein einzelner Video-Skalierer 52 vorzugsweise sowohl die Verkleinerungs-, als auch die Vergrößerungs-Operationen aus. Insbesondere werden nur Signale des Verkleinerungspfads dargestellt. Der Video-Skalierer 52 umfasst eine Skalierungs-Einheit 182, einen Satz Zeilenpufferspeicher 178, einen vertikalen Koeffizientenspeicher 180A und einen horizontalen Koeffizientenspeicher 180B. Die Skalierungs-Einheit 182 wird als Satz von zwei Mehrphasenfiltern ausgeführt, jeweils einer für die waagerechte und einer für die senkrechte Größenordnung.
  • In einer Ausführungsform der vorliegenden Erfindung ist der vertikale Mehrphasenfilter ein 4-Tap-Filter mit programmierbaren Koeffizienten vom senkrechten Koeffizientenspeicher 180A. In anderen Ausführungsformen kann sich die Anzahl von Abgriffen in dem vertikalen Mehrphasenfilter ändern. In einer Ausführungsform der vorliegenden Erfindung ist der horizontale Mehrphasenfilter ein 8-Tap-Filter mit programmierbaren Koeffizienten vom horizontalen Koeffizientenspeicher 180B. In anderen Ausführungsformen kann sich die Anzahl von Abgriffen in dem horizontalen Mehrphasenfilter ändern.
  • Die vertikalen und horizontalen Koeffizientenspeicher können in SRAM oder einem beliebigen anderen geeigneten Speicher ausgeführt werden. Abhängig von der auszuführenden Operation, beispielsweise einer senkrechten oder waagerechten Achse, und vom Vergrößern oder Verkleinern, werden von den vertikalen und horizontalen Koeffizientenspeichern jeweils geeignete Filterkoeffizienten verwendet. Die Auswahl von Filterkoeffizienten für Vergrößerungs- und Verkleinerungs-Operationen ist im Fachgebiet gut bekannt.
  • Der Satz von Zeilenpufferspeichern 178 wird verwendet, um den horizontalen und vertikalen Mehrphasenfiltern die Eingabe von Videodaten bereit zu stellen. In dieser Ausführungsform werden drei Zeilenpufferspeicher verwendet, aber die Anzahl der Zeilenpufferspeicher kann sich in anderen Ausführungsformen ändern. In dieser Ausführungsform wird jeder der drei Zeilenpufferspeicher verwendet, um einem der Abgriffe des vertikalen Mehrphasenfilters mit vier Abgriffen eine Eingabe bereit zu stellen. Das Eingabe-Video wird dem vierten Abgriff des vertikalen Mehrphasenfilters bereit gestellt. Ein Schieberegister mit acht Zellen in Reihe wird verwendet, um den acht Abgriffen des horizontalen Mehrphasenfilters Eingaben bereit zu stellen, wobei jede Zelle eine Eingabe für einen der acht Abgriffe bereitstellt.
  • In dieser Ausführungsform werden ein digitales Videosignal 820 und ein digitalisiertes analoges Signalvideo 822 einem ersten Multiplexer 168 als erste und zweite Eingabe bereit gestellt. Der erste Multiplexer 168 hat zwei Ausgänge. Ein erster Ausgang des ersten Multiplexers wird dem Video-Kompositor als ein Passthrough-Video 186 bereit gestellt. Ein zweiter Ausgang des ersten Multiplexers wird einem ersten Eingang eines zweiten Multiplexers 176 im Verkleinerungspfad bereit gestellt.
  • Im Verkleinerungspfad stellt der zweite Multiplexer 176 entweder das digitale Video oder das digitalisierte analoge Video am ersten Eingang des zweiten Multiplexers dem Video-Skalierer 52 bereit. Der Video-Skalierer stellt ein verkleinertes Videosignal einem zweiten Eingang eines dritten Multiplexers 162 bereit. Der dritte Multiplexer stellt das verkleinerte Video einem Einlese-FIFO 158 bereit, welcher das eingelesene verkleinerte Video speichert. Die Speichersteuerung 126 nimmt das eingelesene verkleinerte Video und speichert es als eingelesenes verkleinertes Videobild in einem Video-FIFO 148. Ein Ausgang des Video-FIFOs ist an einen ersten Eingang eines vierten Multiplexers 188 gekoppelt. Der vierte Multiplexer stellt die Ausgabe des Video-FIFOs, welche das eingelesene verkleinerte Videobild ist, als Ausgabe 824 dem Grafik-Kompositor bereit, und dies vervollständigt den Verkleinerungspfad. Somit wird im Verkleinerungspfad entweder das digitale Video oder das digitalisierte analoge Video zuerst verkleinert und dann eingelesen.
  • 26 ist 25 ähnlich, aber in 26 sind Signale des Vergrößerungspfads dargestellt. Im Vergrößerungspfad stellt der dritte Multiplexer 162 entweder das digitale Video 820 oder das digitalisierte analoge Video 822 dem Einlese-FIFO 158 bereit, welcher eine Eingabe als ein eingelesenes Videobild einliest. Dieses eingelesene Videobild wird der Speichersteuerung 126 bereit gestellt, welche es nimmt und dem Video-FIFO 148 bereitstellt, der das eingelesene Videobild speichert.
  • Ein Ausgang des Video-FIFOs 148 wird einem zweiten Eingang des zweiten Multiplexers 176 bereit gestellt. Der zweite Multiplexer stellt das eingelesene Videobild dem Video-Skalierer 52 bereit. Der Video-Skalierer vergrößert das eingelesene Videobild und stellt es einem zweiten Eingang des vierten Multiplexers 188 als vergrößertes eingelesenes Videobild bereit. Der vierte Multiplexer stellt das vergrößerte eingelesene Videobild als Ausgabe 824 dem Video-Kompositor bereit. Somit wird im Vergrößerungspfad entweder das digitale Video oder das digitalisierte analoge Video zuerst eingelesen und dann vergrößert.
  • Mit Bezug auf 27, ähnelt 27 der 25 und der 26, aber in 27 sind sowohl Signale des Vergrößerungspfads, als auch des Verkleinerungspfads dargestellt.
  • 10. Überblenden von Grafik- und Videoflächen
  • Das Grafik-Anzeigesystem der vorliegenden Erfindung ist in der Lage, ein analoges Videosignal, ein digitales Videosignal und Grafikdaten gleichzeitig zu verarbeiten. Im Grafik-Anzeigesystem werden die analogen und digitalen Videosignale in der Video-Pipeline verarbeitet, während die Grafikdaten in der Grafik-Anzeige-Pipeline verarbeitet werden. Nachdem die Verarbeitung der Videosignale und der Grafikdaten beendet worden ist, werden sie zusammen an einem Video-Kompositor übergeblendet. Der Video-Kompositor empfängt Video- und Grafikdaten von der Video-Anzeige-Pipeline, beziehungsweise von der Grafik-Anzeige-Pipeline, und gibt sie an den Video-Codierer („VEC") aus.
  • Das System kann ein Verfahren zum Zusammensetzen einer Vielheit von Grafikbildern und Video anwenden, was das Überblenden der Vielheit von Grafikbilder in ein übergeblendetes Grafikbild umfasst, wobei eine Vielheit von Alphawerten zu einer Vielheit zusammengesetzter Alphawerte verknüpft wird und die übergeblendeten Grafikbilder und das Video unter Verwendung der Vielheit zusammengesetzter Alphawerte übergeblendet werden.
  • Mit Bezug auf 28 wird ein Flussdiagramm eines Vorgangs zum Überblenden von Video und Grafikflächen dargestellt. Das Grafik-Anzeigesystem wird in Schritt 902 zurückgesetzt. In Schritt 904 blendet der Video-Kompositor das Passthrough-Video und die Hintergrundfarbe mit dem skalierten Videofenster unter Verwendung des Alphawerts über, der dem skalierten Videofenster zugehörig ist. Das Ergebnis dieser Überblend-Operation wird dann mit der Ausgabe der Grafik-Anzeige-Pipeline übergeblendet. Die Grafikausgabe ist im Grafik-Überblender in Schritt 904 vor-übergeblendet und in Schritt 906 gefiltert worden, und übergeblendete Grafik enthält den richtigen Alphawert für die Multiplikation mit der Videoausgabe. Die Ausgabe der Video-Überblend-Funktion wird mit dem Video-Alpha multipliziert, der von der Grafik-Pipeline erhalten wird, und die sich daraus ergebenden Video- und Grafik-Pixeldatenströme werden zusammengezogen, um das endgültige übergeblendete Ergebnis zu erzeugen.
  • Im Allgemeinen wird während des Überblendens unterschiedlicher Ebenen von Grafik und/oder Video, jede Ebene {L1, L2, L3 ... Ln}, wobei L1 die hinterste Ebene ist, mit der Zusammensetzung aller Ebenen dahinter übergeblendet, beginnend mit L2, die auf L1 übergeblendet wird. Das Zwischenergebnis R(i) vom Überblenden von Pixeln P(i) der Ebene L(i) über die Pixel P(i – 1) von Ebene L(i – 1) unter Verwendung des Alphawerts A(i) ist: R(i) = A(i)*P(i) + (1 – A(i))* P(i – 1).
  • Die Alphawerte {A(i)} sind im Allgemeinen für jede Ebene und für jedes Pixel jeder Ebene unterschiedlich. In einigen wichtigen Anwendungen ist es jedoch nicht durchführbar, diese Formel direkt anzuwenden, da einige Ebenen möglicherweise in räumlichen Ausdehnungen verarbeitet werden müssen (z. B. zweidimensionales Filtern oder Skalieren), bevor sie mit der Ebene oder den Ebenen dahinter übergeblendet werden können. Während es im Allgemeinen möglich ist, die Ebenen zuerst über zu blenden und dann die räumliche Verarbeitung auszuführen, würde dies zur Verarbeitung der Ebenen führen, die nicht verarbeitet werden sollten, wenn diese Ebenen hinter der betreffenden Ebene liegen, die zu verarbeiten ist. Die Verarbeitung der Ebenen, die nicht zu verarbeiten sind, kann unerwünscht sein.
  • Die betreffende Ebene zuerst zu verarbeiten, würde im Allgemeinen eine erhebliche Menge Lokalspeicher der Pixel in der betreffenden Ebene erfordern, was unerschwinglich kostspielig sein kann. Dieses Problem wird wesentlich verstärkt, wenn es vor einer oder mehreren Ebenen, die zu verarbeiten sind, mehrere Ebenen gibt, die nicht zu verarbeiten sind. Um die oben aufgeführte Formel direkt anzuwenden, würde jede der Ebenen zuerst zu verarbeiten sein, d. h. unter Verwendung ihres eigenen Lokalspeichers und der jeweiligen Verarbeitung, bevor sie mit der Ebene dahinter übergeblendet werden könnte.
  • Anstatt alle Ebenen von hinten nach vorn über zu blenden, werden in der bevorzugten Ausführungsform alle Ebenen, die zu verarbeiten (z. B. zu filtern) sind zuerst zusammengeschichtet, selbst wenn es eine oder mehrere Ebene/n hinter ihnen gibt, über der/denen sie übergeblendet werden sollten, und die verknüpften oberen Ebenen werden dann mit den anderen Ebenen über geblendet, die nicht zu verarbeiten sind. Zum Beispiel können die Ebenen {1, 2 and 3} Ebenen sein, die nicht zu verarbeiten sind, während Ebenen {4, 5, 6, 7, und 8} Ebenen sein können, die einer Verarbeitung unterzogen werden müssen, während alle acht Ebenen zusammen über zu blenden sind, unter Verwendung von {A(i)}-Werten, die für jede Ebene und jedes Pixel unabhängig sind. Die Ebenen, die zu filtern sind, obere Ebenen, können die Grafikfenster sein. Die unteren Ebenen können das Videofenster und das Passthrough-Video umfassen.
  • In der bevorzugten Ausführungsform werden alle Ebenen, die zu filtern sind (bezeichnet als „obere" Ebenen) unter Verwendung einer Teil-Überblend-Operation von hinten nach vorn zusammen übergeblendet. In einer anderen Ausführungsform können zwei oder mehrere der oberen Ebenen zusammen parallel übergeblendet werden. Die hinterste der oberen Ebenen ist im Allgemeinen nicht die hinterste Ebene der gesamten Operation.
  • In der bevorzugten Ausführungsform wird bei jeder Stufe des Überblendens ein Zwischen-Alphawert zur späteren Verwendung zum Überblenden mit den Ebenen erhalten, die nicht zu filtern sind (bezeichnet als „unterste" Ebenen).
  • Die Formel, welche das bevorzugte Überblendschema darstellt lautet: R(i) = A(i)*P(i) + (1 – A(i))*P(i – 1)und AR(i) = AR(i – 1)*(1 – A(i)),wobei R(i) den Farbwert des sich ergebenden übergeblendeten Pixels darstellt, P(i) den Farbwert des gegenwärtigen Pixels darstellt, A(i) den Alphawert des gegenwärtigen Pixels darstellt, P(i – 1) den Wert an der Stelle des gegenwärtigen Pixels der Zusammensetzung aller oberen Ebenen hinter dem gegenwärtigen Pixel darstellt, wobei dies ursprünglich schwarz darstellt, bevor irgend welche Ebenen übergeblendet werden, AR(i) der Alphawert ist, der sich aus jeder Stufe dieser Operation ergibt, und AR(i – 1) den Zwischen-Alphawert an der Stelle des gegenwärtigen Pixels darstellt, das von allen oberen Ebenen hinter dem Pixel bestimmt wird, wobei dies ursprünglich Durchsichtigkeit darstellt, bevor irgend welche Ebenen über geblendet werden. AR stellt den Alphawert dar, der nachfolgend mit den unteren Ebenen, wie zuvor angegeben, multipliziert wird, und so gibt ein AR-Wert von 1 (angenommen Alpha liegt zwischen 0 und 1), an, dass das gegenwärtige Pixel durchsichtig ist und die unteren Ebenen voll sichtbar werden, wenn sie mit 1 multipliziert werden.
  • Mit anderen Worten werden in der bevorzugten Ausführungsform bei jeder Stufe des Überblendens der oberen Ebenen die Pixel der gegenwärtigen Ebenen unter Verwendung des gegenwärtigen Alphawerts über geblendet, und es wird auch ein Zwischen-Alphawert als Produkt (1 – A(i))*(AR(i – 1)) berechnet. Die Hauptunterschiede zwischen dieser und der direkten Auswertung der herkömmlichen Formel sind: (1) die Berechnung des Produkts des Satzes von {(1 – A(i))} für die oberen Ebenen und (2) eine scheinbar durchsichtige schwarze Ebene wird verwendet, um den Vorgang zum Überblenden der oberen Ebenen auszulösen, da die oberen Ebenen, die normalerweise mit den unteren Ebenen übergeblendet würden, an dieser Stelle des Vorgangs nicht verwendet werden.
  • Die Berechnung des Produkts des Satzes von {(1 – A(i)} für die oberen Ebenen wird in der bevorzugten Ausführungsform durchgeführt, indem AR(i) = AR(i – 1)*(1 – A(i)) an jeder Ebene wiederholt berechnet wird, so dass, wenn alle Ebenen {i} verarbeitet worden sind, das Ergebnis ist, dass AR = das Produkt aller (1 – A(i))-Werte für alle oberen Ebenen ist. In anderen Ausführungsformen kann auch der zusammengesetzte Alphawert für jedes Pixel der übergeblendeten Grafik direkt als Produkt aller (1-Alphawert des entsprechenden Pixels des Grafikbilds auf jeder Ebene) berechnet werden, ohne auf jeder Stufe ein Zwischen-Alpha zu erzeugen.
  • Um den Überblendvorgang der gesamten Reihe von Ebenen zu vervollständigen, umfassend die oberen und unteren Ebenen, können die oberen Ebenen, nachdem sie, wie zuvor beschrieben, wie gewünscht übergeblendet worden sind, wunschgemäß verarbeitet werden und dann wird das Ergebnis dieser Verarbeitung, ein zusammengesetztes Zwischenbild, mit der unteren Ebene oder den unteren Ebenen übergeblendet. Außerdem werden die sich ergebenen Alphawerte vorzugsweise auch im Wesentlichen auf die gleiche Weise verarbeitet, wie die Bildbestandteile. Die unteren Ebenen können auf herkömmliche Weise übergeblendet werden, so dass sich an einem Punkt ein einzelnes Bild befinden kann, das die unteren Ebenen darstellt. Daher können zwei Bilder, eines, das die oberen Ebenen darstellt, und eines, das die unteren Ebenen darstellt, zusammen übergeblendet werden. In dieser Operation wird der AR(n)-Wert an jedem Pixel, der sich aus dem Überblenden der oberen Ebenen ergibt und jede beliebigen nachfolgende Verarbeitung verwendet, um mit der zusammengesetzten unteren Ebene multipliziert zu werden.
  • Mathematisch lautet die zuletzt genannte Operation wie folgt: L(u) sei die zusammengesetzte obere Ebene, die sich aus dem zuvor beschriebenen Vorgang ergibt, und nach einer beliebigen Verarbeitung sei AR(u) der zusammengesetzte Alphawert der oberen Ebenen, der sich aus dem Vorgang zuvor ergibt, und nach einer beliebigen Verarbeitung sei L(l) die zusammengesetzte untere Ebene, die sich aus dem Überlenden aller unterer Ebenen auf herkömmliche Weise und nach einer beliebigen Verarbeitung ergibt, wobei das Ergebnis das endgültige Ergebnis des Überblendens aller oberen und unteren Ebenen, nach einer beliebigen Verarbeitung sei. Dann lautet das Ergebnis = L(u) + AR(u)*L(l). L(u) muss nicht mit irgend welchen zusätzlichen Alphawerten multipliziert werden, da alle diese Multiplikationsvorgänge bereits auf einer früheren Stufe ausgeführt wurden.
  • In der bevorzugten Ausführungsform bestehen die oberen Ebenen aus einer Reihe von Bildern. Diese werden erzeugt, indem Pixel vom Speicher gelesen werden, wie in einer herkömmlichen Grafik-Anzeigevorrichtung. Jedes Pixel wird in ein gemeinsames Format umgesetzt, wenn es nicht bereits in dem Format vorliegt; in diesem Beispiel wird das YUV-Format verwendet. Jedem Pixel ist außerdem ein Wert zugehörig. Die Alphawerte können von einer Vielzahl von Quellen stammen und (1) Teil des aus dem Speicher gelesenen Pixelwerts sein, (2) ein Element in einer Farbmischtabelle (CLUT) sein, in Fällen, in denen das Pixelformat eine CLUT verwendet, (3) aus dem Pixelfarbwert berechnet sein, z. B. Alpha als Funktion von Y, (4) unter Verwendung einer Key-Funktion berechnet sein, d. h. einige Pixelwerte sind durchsichtig (d. h. Alpha = 0) und andere sind undurchsichtig (Alpha = 1), basierend auf einem Vergleich des Pixelwerts mit einem Satz Referenzwerten, (5) ein Alphawert kann, wie außen beschrieben, einem Bereich des Bilds zugehörig sein, wie einem rechteckigen Bereich, beschrieben von den vier Ecken des Rechtecks, ihm kann ein einzelner Alphawert zugehörig sein oder (6) eine Kombination daraus sein.
  • Die oberen Ebenen werden vorzugsweise in Speicherpuffern zusammengesetzt, die „Zeilenpufferspeicher" heißen. Jeder Zeilenpufferspeicher ist vorzugsweise so bemessen, dass er Pixel einer Abtastzeile enthält. Jeder Zeilenpufferspeicher hat ein Element für jedes Pixel auf einer Zeile, und jedes Pixel in dem Zeilenpufferspeicher hat Elemente für die Farbkomponenten, in diesem Fall Y, U und V, und eines für den Zwischen-Alphawert AR. Bevor das Zusammensetzen jeder Zeile beginnt, wird der richtige Zeilenpufferspeicher vorbereitet, um ein durchsichtiges Schwarz darzustellen, das bereits im Pufferspeicher zusammengesetzt wurde; das heißt, der YUV-Wert wird auf den Wert gesetzt, der Schwarz darstellt (d. h. Y = 0, U = V = 128), und der Alphawert AR wird so eingestellt, dass er (1 – durchsichtig) = (1 – 0) = 1 darstellt.
  • Jedes Pixel der gegenwärtigen Ebene auf der gegenwärtigen Zeile wird mit dem Wert kombiniert, der zuvor im Zeilenpufferspeicher vorhanden ist, unter Verwendung der bereits beschriebenen Formeln, d. h. R(i) = A(i)*P(i) + (1 – A(i))*P(i – 1).und AR(i) = AR(i – 1)*(1 – A(i)).
  • Mit anderen Worten, wird der Farbwert des gegenwärtigen Pixels P(i) mit seinem Alphawert A(i) multipliziert und das Pixel im Zeilenpufferspeicher, das die gleiche Stelle auf der Zeile P(i – 1) darstellt, wird aus dem Zeilenpufferspeicher gelesen, multipliziert mit (1 – A(i)) und dem vorherigen Ergebnis hinzu gezählt, wodurch der sich ergebende Pixelwert R(i) erzeugt wird. Auch wird der Alphawert an der gleichen Stelle im Zeilenpufferspeicher (AR(I – 1)) aus dem Zeilenpufferspeicher gelesen und mit (1 – A(i)) multipliziert, wodurch AR(i) erzeugt wird. Die Ergebnisse R(i) und AR(i) werden dann zurück in den Zeilenpufferspeicher an der gleichen Stelle geschrieben.
  • Wird ein YUV-Wert mit einem Alphawert zwischen 0 und 1 multipliziert, sollte die Versatz-Eigenschaft der U- und V-Werte vorzugsweise berücksichtigt werden. Mit anderen Worten, stellt U = V = 128 das Fehlen von Farbe dar und ist der Wert, der sich aus einem YUV-Farbwert ergeben sollte, der mit 0 multipliziert wird. Dies kann auf mindestens zwei Wegen erfolgen. In einer Ausführungsform der vorliegenden Erfindung wird 128 von den U- und V-Werten abgezogen, bevor mit Alpha multipliziert wird, und dann wird dem Ergebnis 128 hinzu gezählt. In einer anderen Ausführungsform werden die U- und V-Werte direkt mit Alpha multipliziert, und es wird gewährleistet, dass am Ende des gesamten Zusammensetzungsvorgangs alle Koeffizienten, die mit U und V multipliziert worden sind, zusammengezählt 1 ergeben, so dass der 128-Versatzwert nicht wesentlich verzerrt wird.
  • Jede der Ebenen in der Gruppe oberer Ebenen wird vorzugsweise in einem Zeilenpufferspeicher zusammengesetzt, beginnend mit der hintersten der oberen Ebenen und fortschreitend nach vorn, bis die vorderste der oberen Ebenen im Zeilenpufferspeicher zusammengesetzt worden ist. Auf diese Weise kann ein einzelner Hardware-Block, d. h. die Anzeige-Einheit, verwendet werden, um die zuvor aufgeführte Formel für alle oberen Ebenen anzuwenden. In dieser Anordnung arbeitet die Grafik-Kompositor-Einheit vorzugsweise bei einer Taktfrequenz, die im Wesentlichen höher ist, als die Pixel-Anzeigerate. In einer Ausführungsform der vorliegenden Erfindung arbeitet die Grafik-Kompositor-Einheit bei 81 MHz, während die Pixel-Anzeigerate 13,5 MHz beträgt.
  • Dieser Vorgang wiederholt sich für alle Zeilen im gesamten Bild, beginnend an der oberen Abtastzeile und fortschreitend bis nach unten. Nachdem das Zusammensetzen jeder Abtastzeile in einen Zeilenpufferspeicher beendet worden ist, wird die Abtastzeile zur Verwendung in der Verarbeitung, wie zum Filtern oder Skalieren, verfügbar. Eine solche Verarbeitung kann ausgeführt werden, während nachfolgende Abtastzeilen in anderen Zeilenpufferspeichern zusammengesetzt werden. Verschiedene Verarbeitungs-Operationen können ausgewählt werden, wie Anti-Flatter-Filtern und senkrechtes Skalieren.
  • In anderen Ausführungsformen können mehr als eine Grafikebene gleichzeitig zusammengesetzt werden, und in einigen solcher Ausführungsformen ist es nicht notwendig, Zeilenpufferspeicher als Teil des Zusammensetzungsvorgangs zu verwenden. Wenn alle oberen Ebenen gleichzeitig zusammengesetzt werden, kann die Kombination aller oberen Ebenen sofort verfügbar sein, ohne dass Zwischenspeicher verwendet werden.
  • Mit Bezug auf 29 wird ein Flussdiagramm eines Vorgangs zum Überblenden von Grafikfenstern dargestellt. Das System wird vorzugsweise in Schritt 920 zurückgesetzt. In Schritt 922 prüft das System vorzugsweise, ob ein vertikales Synchronsignal (VSYNC) vorliegt. Wenn ein VSYNC empfangen worden ist, lädt das System in Schritt 924 vorzugsweise eine Zeile aus dem untersten Grafikfenster in einen Grafik-Zeilenpufferspeicher. Dann blendet das System in Schritt 926 vorzugsweise eine Zeile aus dem nächsten Grafikfenster in den Zeilenpufferspeicher über. Dann bestimmt das System in Schritt 928 vorzugsweise, ob das letzte Grafikfenster, das auf einer gegenwärtigen Anzeigezeile sichtbar ist, übergeblendet worden ist. Wenn das letzte Grafikfenster nicht übergeblendet worden ist, fährt das System mit dem Überblendvorgang in Schritt 926 fort.
  • Wenn das letzte Fenster der gegenwärtigen Anzeigezeile erreicht worden ist, führt das System vorzugsweise in Schritt 930 eine Prüfung durch, um zu bestimmen, ob die letzte Grafikzeile eines gegenwärtigen Anzeige-Halbbilds übergeblendet worden ist. Wenn die letzte Grafikzeile übergeblendet worden ist, erwartet das System in Schritt 922 ein anderes VSYNC. Wenn die letzte Grafikzeile nicht übergeblendet worden ist, geht das System zur nächsten Anzeigezeile in Schritt 932 und wiederholt den Überblendvorgang.
  • Mit Bezug auf 30 ein Flussdiagramm eines Vorgangs zum Empfangen übergeblendeter Grafik 950, ein Videofenster 952 und ein Passthrough-Video 954 und blendet sie über. Eine Hintergrundfarbe wird vorzugsweise auch in einer Ausführungsform der vorliegenden Erfindung übergeblendet. Wie Schritt 956 angibt, zeigt der Video-Kompositor vorzugsweise jedes Pixel an, da die Pixel zusammengesetzt werden, ohne dass sie in einem Vollbild-Pufferspeicher oder einem anderen Speicher gespeichert werden.
  • Wenn die Videosignale und Grafikdaten im Video-Kompositor übergeblendet werden, zeigt das System in Schritt 958 vorzugsweise das Passthrough-Video 954 außerhalb des aktiven Fensterbereichs zuerst an. Nach ITU-R Bt.601 gibt es 525 Abtastzeilen in jedem Vollbild und 858 Pixel in jeder Abtastzeile normgerechter NTSC-Fernsehsignale, wenn eine Abtastrate von 13,5 MHz verwendet wird. Ein aktiver Fensterbereich des normgerechten NTSC-Fernsehens befindet sich in einem NTSC-Vollbild. Es gibt 625 Abtastzeilen pro Vollbild und 864 Pixel in jeder Abtastzeile von normgerechten PAL-Fernsehen, wenn die normgerechte Abtastrate von 13,5 MHz nach ITU-R Bt. 601 verwendet wird. Ein aktiver Fensterbereich des normgerechten PAL-Fernsehens befindet sich in einem PAL-Vollbild.
  • Innerhalb des aktiven Fensterbereichs überblendet das System in Schritt 960 vorzugsweise zuerst die Hintergrundfarbe. Auf die Hintergrundfarbe überblendet das System in Schritt 962 vorzugsweise den Teil des Passthrough-Videos, der in den aktiven Fensterbereich fällt. Auf das Passthrough-Fenster blendet das System in Schritt 964 vorzugsweise das Videofenster über. Schließlich blendet das System in Schritt 968 das Grafikfenster auf das zusammengesetzte Videofenster über und gibt zusammengesetztes Video 970 zur Anzeige aus.
  • Im Halbbildbetrieb arbeitende Anzeigen, wie Fernseher, neigen dazu, eine scheinbar senkrechte Bewegung an den waagerechten Kanten der angezeigten Objekte, mit waagerechten Zeilen und an anderen Stellen der Anzeige, wo es einen scharfen Kontrastgradienten entlang der senkrechten Achse gibt, anzuzeigen. Diese scheinbar senkrechte Bewegung wird unterschiedlich als Flattern, Flickern oder Verwackeln bezeichnet.
  • Während einige Bildelemente vor ihrer Anzeige besonders zur Anzeige auf Fernsehgeräten, die im Halbbildverfahren arbeiten, ausgelegt oder gefiltert werden können, wenn viele solcher Bildobjekte auf einem Bildschirm kombiniert sind, gibt es noch immer sichtbare Flatter-Bildfehler an den waagerechten Ober- und Unterkanten dieser Objekte. Während es auch möglich ist, Filter in Hardware einzubinden, um sichtbares Flattern der Anzeige so gering wie möglich zu halten, sind solche Filter kostspielig in der Hinsicht, dass sie eine höhere Speicherbandbreite vom Anzeigespeicher erfordern, da sowohl gerade, als auch ungerade Halbbilder vorzugsweise aus dem Speicher für jedes Anzeige-Halbbild gelesen werden sollten, und sie dazu neigen, zusätzliche Logik und Speicherplatz auf dem Chip zu erfordern.
  • Eine Ausführungsform der vorliegenden Erfindung umfasst ein Verfahren zum Herabsetzen von Flattern im Halbbildverfahren durch automatisches Überblenden. Dieses Verfahren ist zur Verwendung in einer Grafik-Anzeigevorrichtung ausgelegt worden, die sichtbare Objekte direkt auf dem Bildschirm zusammensetzt; zum Beispiel kann die Vorrichtung Fenster, Fenster-Deskriptoren und Fenster-Deskriptorlisten oder ähnliche Mechanismen verwenden. Die Ober- und Unterkanten (erste und letzte Abtastzeile) jedes Objekts (oder Fensters) werden angezeigt, so dass der Alpha-Blending-Wert (Alpha-Blending-Faktor) dieser Kanten auf die Hälfte angepasst wird, die er betragen würde, wenn die gleichen Zeilen nicht die obere und die untere Zeile des Fensters wären.
  • Zum Beispiel kann ein Fenster eine rechteckige Form aufweisen, und das Fenster kann undurchsichtig sein, d. h. sein Alpha-Blending-Faktor ist 1 auf einer Skala von 0 bis 1. Alle Zeilen auf diesem Fenster, außer der ersten und der letzten, sind undurchsichtig, wenn das Fenster wieder gegeben wird. Die oberen und unteren Zeilen werden angepasst, so dass in diesem Fall der Alpha-Blending-Wert 0,5 wird, wobei verursacht wird, dass diese Zeilen 50% mit den Bildern gemischt werden, die hinter ihnen liegen. Diese Funktion tritt in der bevorzugten Ausführung automatisch auf. Da in der bevorzugten Ausführung Fenster rechteckige Objekte sind, die direkt auf dem Bildschirm wieder gegeben werden, sind die Lagen der oberen und unteren Zeilen jedes Fensters bereits bekannt.
  • In einer Ausführungsform wird die Funktion zum Teilen der Alpha-Blending-Werte für die Ober- und Unterzeilen durch zwei nur für die oberen Halbbilder der im Halbbildverfahren arbeitenden Anzeige ausgeführt. In einer Ausführungsform wird die Funktion zum Teilen der Alpha-Blending-Werte für die Ober- und Unterzeilen durch zwei nur für die oberen Halbbilder der im Halbbildverfahren arbeitenden Anzeige ausgeführt.
  • In der bevorzugten Ausführungsform gibt es auch die Fähigkeit, jedes Fenster mit den hinter ihm liegenden Fenstern durch Alpha-Blending über zu blenden, wobei dieser Alpha-Wert für jedes Pixel und daher für jede Abtastzeile angepasst werden kann. Diese Eigenschaften der Anwendungsausführung werden vorteilhaft genutzt, da die Flatter-Herabsetzungswirkung durch Steuerung der Alpha-Blending-Funktion unter Verwendung von Informationen herab gesetzt wird, die ohne weiteres von der Fenster-Steuerlogik aus verfügbar sind.
  • In einem besonders anschaulichen Beispiel ist das Fenster ein undurchsichtiges Vollton-Weiß und das Bild dahinter ist ein undurchsichtiges Vollton-Schwarz. Wird das offenbarte Verfahren nicht angewandt, würde es an der Ober- und Unterkante des Fensters einen scharfen Kontrast zwischen Schwarz und Weiß geben und bei Anzeige auf einem im Halbbildverfahren arbeitenden Fernsehgerät würde erhebliches Flattern sichtbar sein. Unter Verwendung des offenbarten Verfahrens werden die Ober- und Unterzeilen 50% mit dem Hintergrund überblendet, was zu einer Farbe führt, die zwischen Schwarz und Weiß liegt oder als Grau bezeichnet wird. Bei Anzeige auf einem im Halbbildverfahren arbeitenden Fernsehgerät ist die scheinbare sichtbare Lage der Ober- und Unterkante des Objekts gleichbleibend, und Flattern ist nicht offensichtlich. Die gleiche Wirkung tritt genauso gut bei anderen Bildbeispielen auf.
  • Das Verfahren zum Herabsetzen von Halbbild-Flattern dieser Ausführungsform erfordert keine Erhöhung der Speicherbandbreite, da das Wechsel-Halbbild (das gegenwärtig nicht angezeigt wird) nicht vom Speicher gelesen wird, und es besteht nicht die Notwendigkeit zum senkrechten Filtern, was eine Logik und auf dem Chip befindlichen Speicher erfordert hätte.
  • Die gleiche Funktion kann auch in unterschiedlichen Grafik-Hardware-Ausführungen ausgeführt werden. Zum Beispiel können in Ausführungen, die einen Vollbild-Pufferspeicher verwenden (herkömmliche Ausführung) Grafikobjekte im Vollbild-Pufferspeicher mit einem Alpha-Blending-Wert, der auf die Hälfte seines normalen Werts angepasst ist, an der Ober- und Unterkante jedes Objekts zusammengesetzt werden. Ein solches Überblenden kann in Software oder in einem Blitter ausgeführt werden, der eine Überblendfähigkeit besitzt.
  • 11. Anti-Flatter-Filtern/Vertikales Skalieren
  • In der bevorzugten Ausführungsform werden das vertikale Filtern und Anti-Flatter-Filtern an übergeblendeten Grafiken von einem Grafikfilter ausgeführt. Eine Funktion des Grafikfilters ist Tiefpassfiltern in der senkrechten Ausdehnung. Das Tiefpassfiltern kann ausgeführt werden, um den „Flatter"-Effekt von Anzeigen, die im Halbbildverfahren arbeiten, wie von Fernsehgeräten, so gering wie möglich zu halten. Die senkrechten Verkleinerungs- oder Vergrößerungs-Operationen können ausgeführt werden, um das Pixelaussehen von quadratischen Pixeln, die für Computer-, Internet- und Word Wide Web-Inhalte normal sind, in ein beliebiges der verschiedenen länglichen Aussehen zu ändern, die der Norm für Fernsehgeräte nach ITU-R 601B entsprechen. Um in der Lage zu sein, senkrechtes Skalieren der oberen Ebenen auszuführen, umfasst das System vorzugsweise sieben Zeilen-Pufferspeicher. Dies ermöglicht, vier Zeilenpufferspeicher zum Filtern und Skalieren zu verwenden, zwei stehen zum Fortschreiten um eine oder zwei Zeile/n am Ende jeder Zeile zur Verfügung und einer für die gegenwärtige Zusammensetzungs-Operation.
  • Wenn das Skalieren oder Filtern ausgeführt worden ist, werden die Alphawerte in den Zeilenpufferspeichern auf gleiche Weise gefiltert oder skaliert, wie die YUV-Werte, wobei gewährleistet wird, dass die sich ergebenen Alphawerte die gewünschten Alphawerte an der geeigneten Stelle richtig darstellen. Entweder beide dieser Operationen oder keine oder eine andere Verarbeitung kann mit den Inhalten der Zeilenpufferspeicher ausgeführt werden.
  • Nachdem die wahlweise Verarbeitung der Inhalte der Zeilenpufferspeicher beendet worden ist, ergibt sich der vervollständigte Satz oberer Ebenen mit dem zugehörigen Alphawert (Produkt von (1 – A(i)). Diese Ergebnisse werden direkt zum Zusammensetzen der oberen Ebenen mit den unteren Ebenen verwendet, unter Verwendung der folgenden Formel: Ergebnis = L(u) – AR(u)*L(l), wie ausführlich in Bezug auf das Überblenden von Grafik und Video erklärt wird. Wenn die unteren Ebenen eine beliebige Verarbeitung unabhängig von der Verarbeitung erfordern, die für die oberen Ebenen oder für das sich ergebende Bild erforderlich sind, werden die unteren Ebenen verarbeitet, bevor sie mit den oberen Ebenen kombiniert werden; in einer Ausführung der vorliegenden Erfindung ist eine solche Verarbeitung jedoch nicht erforderlich.
  • Jede der zuvor beschriebenen Operationen wird vorzugsweise digital ausgeführt, unter Verwendung herkömmlicher ASIC-Technologie. Als Teil der normalen ASIC-Technologie werden die logischen Operationen in Pipeline-Stufen segmentiert, welche die vorübergehende Speicherung logischer Werte von einem Taktzyklus zum nächsten erfordern können. Die Wahl, wie viele Pipeline-Stufen in jeder der zuvor beschriebenen Operationen verwendet werden, ist abhängig von der besonderen verwendeten ASIC-Technologie, der gewählten Taktgeschwindigkeit, der verwendeten Ausführungswerkzeuge und der Vorliebe des Konstrukteurs und kann sich ändern, ohne Allgemeingültigkeit zu verlieren. In der bevorzugten Ausführungsform werden die Zeilen-Pufferspeicher als Zweiport-Speicher ausgeführt und ermöglichen, dass ein Lese- und ein Schreibzyklus gleichzeitig stattfinden, wodurch die zuvor beschriebenen Lese- und Schreiboperationen ermöglicht werden, während eine Taktfrequenz von 81 MHz beibehalten wird. In dieser Ausführungsform ist die Zusammensetzungsfunktion in verschiedene Pipeline-Stufen geteilt, und daher unterscheidet sich die Adresse, die aus dem Speicher gelesen wird, von der Adresse, die in den gleichen Speicher während des gleichen Taktzyklus' geschrieben wird.
  • Jede der zuvor beschriebenen arithmetischen Operationen in der bevorzugten Ausführungsform verwendet 8-Bit-Genauigkeit für jeden Operanden; dies ist im Allgemeinen ausreichend, um ein genaues Endergebnis zu liefern. Produkte werden auf 8 Bits aufgerundet, bevor das Ergebnis in nachfolgenden Additionen verwendet wird.
  • Mit Bezug auf 31 stellt ein Blockdiagramm eine Wechselwirkung zwischen den Zeilen-Pufferspeichern 504 und einem Grafikfilter 172 dar. Die Zeilen-Pufferspeicher umfassen einen Satz Zeilen-Pufferspeicher 1–7 506ag. Die Zeilen-Pufferspeicher werden von einer Grafik-Zeilenpuffer-Steuerung über eine Zeilen-Pufferspeicher-Steuerungsschnittstelle 502 gesteuert. In einer Ausführung der vorliegenden Erfindung ist der Grafikfilter ein 4-Tap-Mehrphasenfilter, so dass vier Zeilen Grafikdaten 516ad dem Grafikfilter gleichzeitig bereit gestellt werden. Der Grafikfilter 172 sendet ein Zeilenpuffer-Freigabesignal 516e an die Zeilenpufferspeicher, um mitzuteilen, dass ein bis drei Zeilenpufferspeicher verfügbar ist/sind, um zusätzliche Grafik-Anzeigezeilen zusammen zu setzen.
  • In einer anderen Ausführungsform werden keine Zeilenpufferspeicher verwendet, sondern eher alle oberen Ebenen gleichzeitig zusammengesetzt. In diesem Fall gibt es einen Grafik-Überblender für jede der oberen Ebenen, der an einem beliebigen Pixel aktiv ist, wobei die Taktfrequenz des Grafik-Überblenders ungefähr der Pixel-Anzeigefrequenz gleich sein kann. Die Taktfrequenz der Grafik-Überblender kann etwas langsamer oder schneller sein, wenn FIFO-Pufferspeicher am Ausgang der Grafik-Überblender verwendet werden.
  • Die angewandten mathematischen Formeln sind die gleichen, wie in der ersten Ausführungsform, die beschrieben wurde. Der größte Unterschied besteht darin, dass, anstatt dass die Zusammensetzungsfunktion durch Lesen und Schreiben eines Zeilen-Pufferspeichers wiederholend ausgeführt wird, alle Ebenen gleichzeitig zusammengesetzt werden, und das Ergebnis der Reihe von Kompositor-Blöcken bei Bedarf sofort zur Verarbeitung und zum Überblenden mit den unteren Ebenen verfügbar ist, und Zeilen-Pufferspeicher nicht zwecks Zusammensetzens verwendet werden.
  • Möglicherweise sind noch immer Zeilen-Pufferspeicher notwendig, um vertikales Filtern oder vertikales Skalieren auszuführen, da solche Operationen typischer Weise erfordern, dass mehr als eine Zeile der Gruppe oberer Ebenen gleichzeitig verfügbar ist, obgleich im Allgemeinen hier weniger Zeilen-Pufferspeicher erforderlich sind, als in der bevorzugten Ausführungsform. Die Verwendung mehrerer Grafik-Überblender, die ungefähr mit der Pixelfrequenz arbeiten, erleichtert die Ausführung in Anwendungen, in denen die Pixelfrequenz verhältnismäßig schnell für die verwendete ASIC-Technologie ist, beispielsweise in HDTV-Video- und Grafiksystemen, in denen die Pixelfrequenz 74,25 MHz beträgt.
  • 12. Vereinheitlichte Speicherarchitektur/Echtzeitplanung
  • In jüngster Zeit haben technologische Verbesserungen in der Speicherherstellung zu dichteren Speicherchips geführt. Die Speicherchip-Bandbreite hat jedoch nicht so schnell zugenommen. Die Bandbreite eines Speicherchips ist ein Maß dafür, wie schnell auf Inhalte des Speicherchips zum Lesen oder Schreiben zugegriffen werden kann. Als Ergebnis erhöhter Speicherdichte ohne notwendigerweise eine entsprechende Zunahme der Bandbreite werden in vielen herkömmlichen Systemausführungen viele Speichervorrichtungen für unterschiedliche Funktionen verwendet, und der Speicherplatz in einigen Speichermodulen kann unbenutzt bleiben oder verschwendet werden. In der bevorzugten Ausführungsform wird eine vereinheitlichte Speicherarchitektur verwendet. In der vereinheitlichten Speicherarchitektur teilen alle Aufgaben (auch „Clients" genannt), umfassend die Zentraleinheit, Anzeige-Einheit und Vorrichtungen, den gleichen Speicher.
  • Die vereinheitlichte Speicherarchitektur umfasst vorzugsweise einen Speicher, der von vielen Vorrichtungen geteilt wird, und eine Speicheranforderungs-Entscheidungseinheit, die an den Speicher gekoppelt ist, wobei die Speicheranforderungs-Entscheidungseinheit Echtzeitplanung der Speicheranforderungen von unterschiedlichen Vorrichtungen ausführt, die unterschiedliche Prioritäten besitzen. Das vereinheitlichte Speichersystem stellt Echtzeitplanung von Aufgaben sicher, von denen einige nicht von sich aus vorbestimmtes regelmäßiges Verhalten aufweisen, und bietet Zugriff auf den Speicher über Requester, die empfindlich gegenüber Wartezeit sind und kein bestimmbares regelmäßiges Verhalten aufweisen.
  • In einer anderen Ausführungsform werden zwei Speichersteuerungen in einem dualen Speichersteuerungssystem verwendet. Die Speichersteuerungen können 16-Bit-Speichersteuerungen oder 32-Bit-Speichersteuerungen sein. Jede Speichersteuerung kann eine unterschiedliche Konfiguration von SDRAM-Vorrichtungsarten und Banken oder andere Formen von Speichern, abgesehen von SDRAM, unterstützen. Ein erster Speicherplatz, der von einer ersten Speichersteuerung angesteuert wird, ist vorzugsweise benachbart und zusammenhängend mit einem zweiten Speicherplatz, der von einer zweiten Speichersteuerung angesteuert wird, so dass Software-Anwendungen den ersten und zweiten Speicherplatz als einen zusammenhängenden Speicherplatz sehen. Auf die erste und die zweite Steuerung kann gleichzeitig von unterschiedlichen Clients zugegriffen werden. Die Software-Anwendungen können optimiert werden, um die Leistung zu verbessern.
  • Beispielsweise kann ein Grafikspeicher über die erste Speichersteuerung zugeordnet werden, während ein Zentraleinheits-Speicher über die zweite Speichersteuerung zugeordnet wird. Während eine Anzeige-Einheit auf die erste Speichersteuerung zugreift, kann eine Zentraleinheit zur gleichen Zeit auf die zweite Speichersteuerung zugreifen. Daher wird eine Speicherzugriffs-Wartezeit der Zentraleinheit umgekehrt in diesem Moment nicht dahin gehend beeinträchtigt, dass auf den Speicher von der Anzeige-Einheit zugegriffen wird und umgekehrt. In diesem Beispiel kann die Zentraleinheit auch zu ungefähr der gleichen Zeit auf die erste Speichersteuerung zugreifen, zu der die Anzeige-Einheit auf die erste Speichersteuerung zugreift, und die Anzeige-Steuerung kann von der zweiten Speichersteuerung auf den Speicher zugreifen und dabei das Teilen von Speicher über unterschiedliche Funktionen hinweg ermöglichen und viele Kopiervorgänge vermeiden, die ansonsten in herkömmlichen Ausführungen erforderlich sein können.
  • Mit Bezug auf 32 arbeitet ein duales Speichersteuerungssystem Speicheranforderungen ab, die von einer Anzeige-Einheit 1118, einer Zentraleinheit 1120, einem Grafikbeschleuniger 1124 und einem Eingabe-/Ausgabemodul 1126 erzeugt und einem Speicher-Auswahlblock 1100 bereit gestellt werden. Der Speicherauswahlblock 1100 leitet vorzugsweise die Speicheranforderungen an eine erste Entscheidungseinheit 1102 oder an eine zweite Entscheidungseinheit 1106, beruhend auf der Adresse des angeforderten Speichers. Die erste Entscheidungseinheit 1102 sendet Speicheranforderungen an eine erste Speichersteuerung 1104, während die zweite Entscheidungseinheit 1106 Speicheranforderungen an eine zweite Speichersteuerung 1108 senden. Die Ausführung der Entscheidungseinheiten zum Handhaben von Anforderungen von Aufgaben mit unterschiedlicher Priorität ist im Fachgebiet gut bekannt.
  • Die erste Speichersteuerung sendet vorzugsweise Adressen- und Steuersignale an einen ersten externen SDRAM und empfängt erste Daten vom ersten externen SDRAM. Die zweite Speichersteuerung sendet vorzugsweise Adressen- und Steuersignale an einen zweiten externen SDRAM und empfängt zweite Daten vom zweiten externen SDRAM.
  • Die erste und die zweite Speichersteuerung stellen vorzugsweise erste, beziehungsweise zweite empfangene Daten von dem ersten und zweiten externen SDRAM an eine Vorrichtung bereit, welche die empfangenen Daten angefordert hat.
  • Die ersten und zweiten Daten von der ersten und zweiten Speichersteuerung sind vorzugsweise jeweils von einem ersten Multiplexer 1110 an einem Eingang der Anzeige-Einheit, von einem zweiten Multiplexer 1112 an einem Eingang der Zentraleinheit, von einem dritten Multiplexer 1114 an einem Eingang des Grafikbeschleunigers und von einem vierten Multiplexer 1116 an einem Eingang des E/A-Moduls gemultiplext. Die Multiplexer liefern entweder die ersten oder die zweiten Daten an eine entsprechende Vorrichtung, die Speicher angefordert hat, wie von den Speicherauswahlsignalen ausgewählt, die vom Speicherauswahlblock bereit gestellt werden.
  • Eine Entscheidungseinheit verwendet vorzugsweise eine verbesserte Form von Echtzeitplanung, um Echtzeit-Wartezeit-Anforderungen zu erfüllen, während die Leistung für Wartezeitempfindliche Aufgaben verbessert wird. Erste und zweite Entscheidungseinheiten können mit der flexiblen Echtzeitplanung verwendet werden. Die Echtzeitplanung wird vorzugsweise unabhängig sowohl an der ersten Entscheidungseinheit, als auch der zweiten Entscheidungseinheit ausgeführt.
  • Bei Verwendung eines vereinheitlichten Speichers sollten vorzugsweise Speicherwartezeiten berücksichtigt werden, die durch konkurrierende Speicheranforderungen durch unterschiedliche Aufgaben verursacht werden. In der bevorzugten Ausführungsform wird ein Echtzeitplanungs- und Entscheidungsschema für vereinheitlichten Speicher ausgeführt, so dass alle Aufgaben, die den vereinheitlichten Speicher verwenden, ihre Echtzeitanforderungen erfüllen. Mit dieser fortschrittlichen Verwendung der vereinheitlichten Speicherarchitektur und Echtzeitplanung wird der Zentraleinheit und anderen Vorrichtungen des Grafik-Anzeigesystems ein einzelner vereinheitlichter Speicher bereit gestellt, ohne die Qualität von Grafik oder anderen Operationen zu beeinträchtigen, wobei gleichzeitig die Wartezeit der Zentraleinheit so gering wie möglich gehalten wird.
  • Die verwendete Methodenlehre führt vorzugsweise Echtzeitplanung unter Verwendung von Ratenmonotoner Planung (Ratenmonotonem Scheduling – RMS) aus. Es ist ein mathematischer Ansatz, der die Auslegung vermutlich richtiger Pläne beliebiger Anzahl von Echtzeit-Aufgaben mit beliebigen Zeiträumen für jede der Aufgaben ermöglicht. Diese Methodenlehre bietet ein problemloses Nachweismittel durch Simulation des ungünstigsten Falls, wobei diese Simulation einfach genug ist, dass sie von Hand ausgeführt werden kann. RMS, wie es normalerweise angewandt wird, führt zu einer Anzahl vereinfachender Annahmen in der Erstellung einer Prioritätsliste.
  • In den normalen RMS-Annahmen wird angenommen, dass alle Aufgaben eine gleichbleibende Dauer aufweisen, so dass eine Anforderung zum Abarbeiten von der Aufgabe mit angegebener Dauer gemacht wird, wobei alle Aufgaben eine Wartezeit-Toleranz haben, die gleich der Aufgabendauer ist. Die Wartezeittoleranz wird definiert als größtmöglicher Zeitraum, der von dem Moment an vergehen kann, in dem die Aufgabe eine Abarbeitung anfordert, bis die Anforderung der Aufgabe vollständig erfüllt worden ist. Während der Umsetzung einer Ausführung der vorliegenden Erfindung sind die zuvor genannten Annahmen abgewandelt worden, wie nachfolgend beschrieben wird.
  • Im RMS-Verfahren werden im Allgemeinen alle Aufgaben zusammen mit ihrer Dauer aufgelistet. Sie werden dann nach der Dauer geordnet, von der kürzesten zur längsten, und die Prioritäten werden in dieser Reihenfolge zugewiesen. Viele Aufgaben gleicher Dauer können in einer beliebigen Reihenfolge zu einander vorliegen. Mit anderen Worten, die verhältnismäßige Reihenfolge zwischen ihnen kann beispielsweise durch Werfen einer Münze entschieden werden.
  • Der Nachweis der Richtigkeit, d. h. die Garantie, dass alle Aufgaben innerhalb ihres Termins erledigt werden, erfolgt durch Analyse des Verhaltens des Systems, wenn alle Aufgaben zu genau der gleichen Zeit ihre Abarbeitung anfordern; diese Zeit wird der „kritische Moment" genannt. Dies ist der angenommene ungünstigste Fall, der möglicherweise nicht einmal in einem sehr großen Satz von Simulationen des normalen Betriebs auftritt, oder der vielleicht niemals im normalen Betrieb auftritt, wobei jedoch angenommen wird, dass er möglich ist. Wenn jede Aufgabe abgearbeitet wird, verwendet das System die geteilten Betriebsmittel, in der vorliegenden Erfindung Speichertaktzyklen, in dem von der Aufgabe angegebenen Maße. Wenn alle Aufgaben innerhalb ihres Termins erledigt werden, wird dem System garantiert, dass die Termine aller Aufgaben unter allen Bedingungen erfüllt werden, da die Analyse des kritischen Moments den ungünstigsten Fall simuliert.
  • Wenn die Echtzeitaufgabe geringster Priorität innerhalb des Termins ausgeführt wird, ohne dass die Termine irgendwelcher Aufgaben höherer Priorität nicht eingehalten werden, ist nachgewiesen, dass alle Aufgaben innerhalb ihres Termins erledigt wurden. Sobald irgendeine Aufgabe in dieser Simulation nicht innerhalb des Termins erledigt werden kann, ist der Test fehlgeschlagen, und der Aufgabensatz kann nicht garantiert werden, und daher sollte die Ausführung vorzugsweise geändert werden, um den richtigen Betrieb im ungünstigsten Fall zu garantieren.
  • In der RMS-Methodenlehre wird angenommen, dass Echtzeitaufgaben regelmäßige Anforderungen haben, und es wird angenommen, dass die Dauer und die Wartezeittoleranz den gleichen Wert haben. Da die Anforderungen tatsächlich nicht regelmäßig sein können, ist es eindeutiger, anstatt von der „Dauer", eher von dem „kleinstmöglichen Intervall" zu sprechen. Das heißt, es wird angenommen, dass jede beliebige Aufgabe garantiert nicht zwei aufeinander folgende Anfragen mit einem Intervall zwischen ihnen vornimmt, das irgend wie kürzer ist, als das kleinstmögliche Intervall.
  • Der Termin oder die Wartezeittoleranz ist die größtmögliche Zeitdauer, die zwischen dem Moment vergehen kann, in dem eine Aufgabe eine Anforderung zur Abarbeitung vornimmt und dem Zeitpunkt, zu dem das Abarbeiten beendet ist, ohne dass die Funktion der Aufgabe beeinträchtigt wird. Zum Beispiel kann die Anforderung in einem Datenpfad mit einer gleichbleibenden Frequenzquelle (oder Senke), einem FIFO und Speicherzugriff vom FIFO statt finden, sobald genug Daten in dem FIFO sind, so dass, wenn die Abarbeitung sofort gewährt wird, der FIFO nicht unterläuft (oder überläuft, im Falle einer Lese-Operation, die eine Datensenke unterstützt). Wenn das Abarbeiten nicht beendet wird, bevor der FIFO überfließt (oder unterfließt, im Falle einer Datensenke), wird die Aufgabe beeinträchtigt.
  • In der RMS-Methodenlehre werden solche Aufgaben, die keine bestimmten Echtzeitbeschränkungen haben, vorzugsweise zusammengruppiert und mit einer einzelnen Masteraufgabe abgearbeitet, die als „sporadischer Server" bezeichnet wird, welche selbst die geringste Priorität im System besitzt. Eine Entscheidung innerhalb des Satzes von Aufgaben, die von dem sporadischen Server abgearbeitet werden, wird von der RMS-Methodenlehre nicht berücksichtigt, da dies keine Echtzeit-Angelegenheit ist. Somit werden alle Nicht-Echtzeit-Aufgaben abgearbeitet, wann immer Betriebsmittel verfügbar sind, die Wartezeit zum Abarbeiten einer von ihnen ist jedoch nicht garantiert.
  • Um Echtzeitplanung auf der Grundlage der RMS-Methodenlehre auszuführen, werden vorzugsweise zuerst alle Aufgaben oder Clients aufgelistet, die auf den Speicher zugreifen müssen, nicht notwendigerweise in einer besonderen Reihenfolge. Als nächstes wird vorzugsweise die Dauer jeder Aufgabe bestimmt. Für die mit besonderen Bandbreitenanforderungen (in Bytes pro Sekunde Speicherzugriff) wird die Dauer vorzugsweise von der Bandbreite und der Farbsynchronsignalgröße berechnet. Wenn sich der Termin von dem Zeitraum für eine gegebene Aufgabe unterscheidet, wird dies auch aufgelistet. Die Betriebsmittelanforderung, wenn eine Aufgabe abgearbeitet wird, wird zusammen mit der Aufgabe aufgelistet. In diesem Fall ist die Betriebsmittelanforderung die Anzahl Speichertaktzyklen, die erforderlich sind, um die Speicherzugriffsanforderung abzuarbeiten. Die Aufgaben werden nach der zunehmenden Dauer sortiert, und das Ergebnis ist der Satz Prioritäten, von der größten zur geringsten. Wenn es verschiedene Aufgaben mit der gleichen Dauer gibt, können ihnen unterschiedliche, benachbarte Prioritäten in einer beliebigen verhältnismäßigen Reihenfolge innerhalb der Gruppe gegeben werden; oder sie können zusammengruppiert und mit einer einzelnen Priorität abgearbeitet werden, mit Round-Robin-Entscheidung zwischen den Aufgaben der gleichen Priorität.
  • In der Anwendung weisen die Aufgaben, die den vereinheitlichten Speicher teilen, nicht alle wahres regelmäßiges Verhalten auf. In einer Ausführungsform der vorliegenden Erfindung wird ein Ausblendungs-Zeitgeber verwendet, der einer Aufgabe zugehörig ist, die normalerweise keine Dauer besitzt, um für die Aufgabe ein begrenztes Mindestintervall, ähnlich einer Dauer, zu erzwingen. Beispielsweise ist in dieser Ausführungsform ein Ausblendungs-Zeitgeber, welcher der Zentraleinheit zugehörig ist, ausgeführt worden. Wird sie ungesteuert gelassen, kann die Zentraleinheit alle vorhandenen Speicherzyklen belegen, beispielsweise durch Verursachen eines nie endenden Stroms von Fehlspeicherungen und Speicheranforderungen. Gleichzeitig wird die Leistung der Zentraleinheit weitgehend von der „durchschnittlichen Wartezeit für Speicherzugriff" bestimmt, und so würde die Leistung der Zentraleinheit geringer als bestmöglich sein, wenn alle Speicher der Zentraleinheit, auf die zugegriffen wird, einem sporadischen Server übersendet würden, d. h. bei der geringsten Priorität.
  • In dieser Ausführungsform ist die Zentraleinheits-Aufgabe in zwei logische Aufgaben umgesetzt worden. Eine erste Zentraleinheit hat eine sehr hohe Priorität für geringe Wartezeit und sie hat auch einen Ausblender-Zeitgeber, der ihr zugehörig ist, so dass, nachdem eine Anforderung von der Zentraleinheit gemacht wird, sie nicht erneut eine Anforderung übermitteln kann, bis der Ausblender-Zeitgeber die Zeitgrenze überschritten hat. In dieser Ausführungsform hat die Zentraleinheits-Aufgabe die höchste Priorität. In anderen Ausführungsformen kann die Zentraleinheits-Aufgabe eine sehr hohe Priorität, aber nicht die höchste Priorität besitzen. Die Zeitgeberdauer ist zur Systemoptimierung programmierbar gestaltet worden, um unterschiedliche Systemanordnungen mit unterschiedlichen Speicherbreiten oder anderen Möglichkeiten unterzubringen.
  • In einer Ausführungsform der vorliegenden Erfindung wird der Ausblendungs-Zeitgeber gestartet, wenn die Zentraleinheit eine Anforderung hoher Priorität macht. In einer anderen Ausführungsform wird der Ausblendungs-Zeitgeber gestartet, wenn die Anforderung hoher Priorität von der Zentraleinheit abgearbeitet wird. In anderen Ausführungsformen kann der Ausblendungs-Zeitgeber zu einem beliebigen Zeitpunkt in dem Intervall zwischen dem Zeitpunkt erfolgen, an dem die Anforderung erfolgt, und dem Zeitpunkt, an dem die Anforderung hoher Priorität abgearbeitet wird.
  • Eine zweite Zentraleinheits-Aufgabe wird vorzugsweise von einem sporadischen Server im Round-Robin-Verfahren abgearbeitet. Wenn die Zentraleinheit eine lange Kette von Speicheranforderungen erstellt, wird daher die erste als Aufgabe hoher Priorität abgearbeitet und nachfolgende Anforderungen werden von dem sporadischen Server geringer Priorität abgearbeitet, wann immer keine der Echtzeit-Aufgaben ausstehende Anforderungen hat, bis der Ausblendungs-Zeitgeber der Zentraleinheit abläuft. In einer Ausführungsform der vorliegenden Erfindung sind der Grafikbeschleuniger und die Anzeige-Einheit auch fähig, mehr Speicherzyklen anzufordern, als verfügbar sind, und somit verwenden sie beide ähnliche Ausblendungs-Zeitgeber.
  • Beispielsweise werden die Lese- und Schreibfunktionen der Zentraleinheit zusammen gruppiert und als zwei Aufgaben behandelt. Eine erste Aufgabe hat eine theoretische Wartezeitbegrenzung von 0 und eine Dauer, die über einen Ausblendungs-Zeitgeber programmierbar ist, wie zuvor beschrieben. Es wird angenommen, eine zweite Aufgabe habe keine Dauer und keinen Termin, und sie wird in den Satz von Aufgaben gruppiert, der von dem sporadischen Server über ein Round-Robin-Verfahren an der geringsten Priorität abgearbeitet wird. Die Zentraleinheit in dieser Ausführungsform verwendet einen programmierbaren Ausblendungs-Zeitgeber zwischen Anforderungen hoher Priorität.
  • Für ein anderes Beispiel wird angenommen, eine Grafik-Anzeigeaufgabe besäße eine gleichbleibende Bandbreite von 27 MB/s, d. h. 16 Bits pro Pixel bei 13,5 MHz. Die Grafik-Bandbreite in einer Ausführungsform der vorliegenden Erfindung kann sich jedoch von wesentlich weniger als 27 MB/s auf eine wesentlich größere Zahl verändern, wobei 27 MB/s eine angemessene Zahl ist, um die Unterstützung eines Anwendungsbereichs zu gewährleisten. Beispielsweise verwendet in einer Ausführungsform der vorliegenden Erfindung die Grafik-Anzeige-Aufgabe einen Ausblendungs-Zeitgeber, der eine Dauer von 2,37 μs zwischen Anforderungen hoher Priorität erzwingt, während zusätzliche Anforderungen geringer Priorität auf „Best-Effort"-Grundlage von dem sporadischen Server in einem Round-Robin-Verfahren abgearbeitet werden.
  • Mit Bezug auf 33 stellt ein Blockdiagramm eine Ausführung von Echtzeit-Planung unter Verwendung einer RMS-Methodenlehre dar. Eine Zentraleinheits-Abarbeitungsanforderung 1138 wird vorzugsweise an einen Eingang eines Ausblendungs-Zeitgebers 1130 und einen sporadischen Server 1136 gekoppelt. Ein Ausgang des Ausblendungs-Zeitgebers 1130 wird vorzugsweise an eine Entscheidungseinheit 1132 als Abarbeitungsanforderung hoher Priorität gekoppelt. Die Aufgaben 1–5 1134ae können auch an die Entscheidungseinheit als Eingänge gekoppelt werden. Ein Ausgang der Entscheidungseinheit ist eine Anforderung für Abarbeitung einer Aufgabe, welche die höchste Priorität unter allen Aufgaben hat, welche eine ausstehende Speicheranforderung haben.
  • In 33 wird nur die Zentraleinheits-Abarbeitungsanforderung 1138 an einen Ausblendungs-Zeitgeber gekoppelt. In anderen Ausführungsformen können Abarbeitungsanforderungen von anderen Aufgaben an ihre jeweiligen Ausblendungs-Zeitgeber gekoppelt werden. Die Ausblendungs-Zeitgeber werden verwendet, um ein Mindestintervall zwischen zwei aufeinander folgenden Zugriffen durch eine beliebige Aufgabe hoher Priorität zu erzwingen, die nicht regelmäßig ist, aber eine beschleunigte Abarbeitung erfordern kann. Zwei oder mehr solcher Aufgaben hoher Priorität können in einer Ausführungsform der vorliegenden Erfindung an ihre jeweiligen Ausblendungs-Zeitgeber gekoppelt sein. Vorrichtungen, die an ihre jeweiligen Ausblendungs-Zeitgeber als Aufgaben hoher Priorität gekoppelt werden, können einen Grafikbeschleuniger, eine Anzeige-Einheit und andere Vorrichtungen umfassen.
  • Zusätzlich zur Zentraleinheits-Anforderung 1138 können Aufgaben geringer Priorität 1140ad an den sporadischen Server 1136 gekoppelt sein. Im sporadischen Server werden diese Aufgaben geringer Priorität in einem Round-Robin-Verfahren gehandhabt. Der sporadische Server sendet eine Speicheranforderung 1142 an die Entscheidungseinheit, damit die nächste Aufgabe geringer Priorität abgearbeitet wird.
  • Mit Bezug auf 34 stellt ein Zeitdiagramm Zentraleinheits-Abarbeitungsanforderungen und Abarbeitungen 1152 im Falle einer durchgängigen Zentraleinheits-Anforderung 1146 dar. In der Anwendung ist die Zentraleinheits-Anforderungen im Allgemeinen nicht durchgängig, aber 34 soll zur Veranschaulichung dienen. In dem Beispiel, das in 34 dargestellt ist, wird ein Ausblendungs-Zeitgeber 1148 bei einer Abarbeitungsanforderung 1149 hoher Priorität von der Zentraleinheit gestartet. Zum Zeitpunkt t0 beginnt die Zentraleinheit, die durchgängige Abarbeitungsanforderung 1146 vorzunehmen und eine Abarbeitungsanforderung hoher Priorität 1149 wird zuerst vorgenommen, vorausgesetzt, dass der Ausblendungs-Zeitgeber 1148 nicht zum Zeitpunkt t0 läuft. Wenn die Abarbeitungsanforderung hoher Priorität erfolgt, wird der Ausblendungs-Zeitgeber 1148 gestartet. Zwischen dem Zeitpunkt t0 und dem Zeitpunkt ti beendet die Speichersteuerung das Abarbeiten der Speicheranforderung einer anderen Aufgabe. Die Zentraleinheit wird zuerst zum Zeitpunkt ti abgearbeitet. In der bevorzugten Ausführungsform ist die Dauer des Ausblendungs-Zeitgebers programmierbar. Beispielsweise kann die Dauer des Ausblendungs-Zeitgebers auf 3 μs programmiert werden.
  • Eine beliebige zusätzliche Zentraleinheits-Anforderung hoher Priorität 1149 wird ausgeblendet, bis der. Ausblendungs-Zeitgeber zum Zeitpunkt t2 ausblendet. Stattdessen wird die Zentraleinheits-Anforderung geringer Priorität 1150 von einem sporadischen Server in einem Round-Robin-Verfahren zwischen Zeitpunkt t0 und Zeitpunkt t2 gehandhabt. Die Anforderung geringer Priorität 1150 ist aktiv, so lange die Zentraleinheits-Abarbeitungsanforderung aktiv ist. Da die Zentraleinheits-Abarbeitungsanforderung 1146 durchgängig ist, wird eine andere Anforderung hoher Priorität 1149 von der Zentraleinheit gemacht, und der Ausblendungs-Zeitgeber wird erneut gestartet, sobald der Ausblendungs-Zeitgeber zum Zeitpunkt t2 abläuft. Die Abarbeitungsanforderung hoher Priorität, die von der Zentraleinheit zum Zeitpunkt t2 gemacht wird, wird zum Zeitpunkt t3 abgearbeitet, wenn die Speichersteuerung die Abarbeitung einer anderen Aufgabe fertig stellt. Bis der Ausblendungs-Zeitgeber zum Zeitpunkt t4 abläuft, wird die Zentraleinheits-Anforderung geringer Priorität 1150 vom sporadischen Server gehandhabt, während die Zentraleinheits-Anforderung hoher Priorität 1149 ausgeblendet wird.
  • Eine andere Abarbeitungsanforderung hoher Priorität wird gemacht, und der Ausblendungs-Zeitgeber 1148 wird erneut gestartet, wenn der Ausblendungs-Zeitgeber 1148 zum Zeitpunkt t4 abläuft. Zum Zeitpunkt t5 wird die Abarbeitungsanforderung hoher Priorität 1149 abgearbeitet, die von der Zentraleinheit zum Zeitpunkt t4 gemacht wird. Der Ausblendungs-Zeitgeber läuft erst zum Zeitpunkt t7 ab. Der Ausblendungs-Zeitgeber befindet sich jedoch nicht im Pfad der Abarbeitungsanforderung geringer Priorität der Zentraleinheit und blendet daher die Abarbeitungsanforderung geringer Priorität der Zentraleinheit nicht aus. Während der Ausblendungs-Zeitgeber noch immer läuft, wird daher eine Abarbeitungsanforderung geringer Priorität, die von der Zentraleinheit gemacht wird, vom sporadischen Server gehandhabt und zum Zeitpunkt t6 abgearbeitet.
  • Wenn der Ausblendungs-Zeitgeber 1148 zum Zeitpunkt t7 abläuft, wird er erneut gestartet, und noch eine andere Abarbeitungsanforderung hoher Priorität wird von der Zentraleinheit gemacht, da die Abarbeitungsanforderung der Zentraleinheit durchgängig ist. Die Abarbeitungsanforderung hoher Priorität 1149, die von der Zentraleinheit zum Zeitpunkt t7 gemacht wird, wird zum Zeitpunkt t8 abgearbeitet. Wenn der Ausblendungs-Zeitgeber zum Zeitpunkt t9 abläuft, wird die Abarbeitungsanforderung hoher Priorität erneut von der Zentraleinheit gemacht, und der Ausblendungs-Zeitgeber wird erneut gestartet.
  • Der Plan, der sich aus dem Aufgabensatz und den zuvor erwähnten Prioritäten ergibt, wird durch Simulieren der Systemleistung überprüft, beginnend vom „kritischen Moment", wenn alle Aufgaben-Anforderungen zur gleichen Zeit abgearbeitet werden, und eine zuvor gestartete Aufgabe geringer Priorität bereits unterwegs ist. Es ist nachgewiesen, dass das System alle Echtzeit-Termine einhält, wenn alle Aufgaben mit Echtzeit-Terminen ihre Termine einhalten. Um die Simulation genau auszuführen, machen natürlich alle Aufgaben neue Anforderungen bei jeder Wiederholung ihrer Dauern, ob vorherigen Anforderungen nachgekommen worden ist oder nicht.
  • Mit Bezug auf 35 stellt ein Zeitdiagramm ein Beispiel der Analyse eines kritischen Moments dar. Zum Zeitpunkt t0 fordern eine Aufgabe 1 1156, eine Aufgabe 2 1158, eine Aufgabe 3 1160 und eine Aufgabe 4 1162 Abarbeitung zur gleichen Zeit an. Außerdem wird zum Zeitpunkt t0 eine Aufgabe geringer Priorität 1154 abgearbeitet. Daher kann die Aufgabe höchster Priorität, die Aufgabe 1, nicht abgearbeitet werden, bis die Abarbeitung der Aufgabe geringster Priorität beendet worden ist.
  • Wenn die Aufgabe geringer Priorität zum Zeitpunkt t1 beendet worden ist, wird die Aufgabe 1 abgearbeitet. Nach Beendigung der Aufgabe 1 zum Zeitpunkt t2, wird die Aufgabe 2 abgearbeitet. Nach Beendigung der Aufgabe 2 zum Zeitpunkt t3, wird die Aufgabe 3 abgearbeitet. Nach Beendigung der Aufgabe 3 zum Zeitpunkt t4, wird die Aufgabe 4 abgearbeitet. Die Aufgabe 4 endet zum Zeitpunkt t5, der vor dem Start eines nächsten Satzes von Aufgaben liegt: Die Aufgabe 1 zum Zeitpunkt t6, die Aufgabe 2 bei t7, die Aufgabe 3 bei t8 und die Aufgabe 4 bei t9.
  • Mit Bezug auf 36 stellt beispielsweise ein Flussdiagramm einen Vorgang des Abarbeitens von Speicheranforderungen mit unterschiedlichen Prioritäten dar, von der höchsten bis zur geringsten. Das System in Schritt 1170 tätigt eine Zentraleinheits-Leseanforderung mit der höchsten Priorität. Da ein Ausblendungs-Zeitgeber mit der Zentraleinheits-Leseanforderung in diesem Beispiel verwendet wird, wird der Ausblendungs-Zeitgeber gestartet, nachdem die Zentraleinheits-Leseanforderung höchster Priorität getätigt worden ist. Dann tätigt das System in Schritt 1172 eine Grafik-Leseanforderung. Ein Ausblendungs-Zeitgeber wird auch mit der Grafik-Leseanforderung verwendet, und der Ausblendungs-Zeitgeber wird gestartet, nachdem die Grafik-Leseanforderung getätigt worden ist.
  • Eine Videofenster-Leseanforderung in Schritt 1174 und eine Video-Einlese-Schreibanforderung in Schritt 1176 haben gleiche Prioritäten. Daher werden die Videofenster-Leseanforderung und die Video-Einlese-Schreibanforderung in eine Round-Robin-Entscheidung für zwei Aufgaben (Clients) platziert. Das System in Schritt 1178 und Schritt 1180 arbeitet eine Auffrisch-Anforderung, beziehungsweise eine Audio-Leseanforderung ab.
  • Während die jeweiligen Ausblendungs-Zeitgeber für die Zentraleinheits-Leseanforderung und die Grafik-Leseanforderung aktiv sind, platziert das System die Zentraleinheits-Leseanforderung und die Grafik-Leseanforderung jeweils in Schritt 1182 und Schritt 1186 in eine Round-Robin-Entscheidung für fünf Aufgaben (Clients). Das System in den Schritten 1184, 1188 und 1190 platziert in diese Round-Robin-Entscheidung mit fünf Clients andere Aufgaben geringster Priorität, wie eine Grafikbeschleuniger-Lese/Schreibanforderung, eine DMA-Lese/Schreib-Anforderung, beziehungsweise eine Zentraleinheits-Schreibanforderung.
  • 13. Grafikbeschleuniger
  • Das Anzeigen von Grafik erfordert im Allgemeinen eine umfangreiche Verarbeitung. Wenn die gesamte Verarbeitung von Grafik von einer Zentraleinheit ausgeführt wird, können die Verarbeitungsanforderungen die Zentraleinheit übermäßig belasten, da die Zentraleinheit im Allgemeinen auch viele andere Aufgaben ausführt. Daher verwenden viele Systeme, die Grafikverarbeitung ausführen, einen zweckbestimmten Prozessor, der typischerweise als „Grafikbeschleuniger" bezeichnet wird.
  • Das System gemäß der vorliegenden Erfindung kann einen Grafikbeschleuniger verwenden, der Speicher für Grafikdaten umfasst, wobei die Grafikdaten Pixel umfassen, sowie einen Co- Prozessor zum Ausführen vektorartiger Operationen an mehreren Bestandteilen eines Pixels der Grafikdaten.
  • Die bevorzugte Ausführungsform des Grafik-Anzeigesystems verwendet einen Grafikbeschleuniger, der optimiert ist für die Ausführung von 3D- und 2D-Effekten in Echtzeit an Grafik- und Videoflächen. Der Grafikbeschleuniger umfasst vorzugsweise spezialisierte arithmetische Grafik-Vektorfunktionen für eine bestmögliche Leistung mit Video und Echtzeitgrafik. Der Grafikbeschleuniger führt einen Bereich wesentlicher Grafik- und Video-Operationen mit einer Leistung aus, die mit der Leistung festverdrahteter Anwendungen vergleichbar ist, wobei er programmierbar ist, so dass er neue und aufkommende Anwendungsanforderungen mit Standardprogramm-Downloads im Fachgebiet erfüllen kann. Der Grafikbeschleuniger ist vorzugsweise befähigt für 3D-Effekte, wie Warping und Flipping für Echtzeit-Video, Textur-Zuordnung, Gourand-Schattierung und Phong-Polygonschattierung, sowie 2D- und Bildeffekte, wie Überblenden, Skalieren, Blitten und Füllen. Der Grafikbeschleuniger und seine Zwischenspeicher sind vorzugsweise vollständig in einem Chip mit integrierter Schaltung enthalten.
  • Der Grafikbeschleuniger der vorliegenden Erfindung beruht vorzugsweise auf einer herkömmlichen RISC-Mikroprozessor-Architektur. Der Grafikbeschleuniger umfasst vorzugsweise auch zusätzliche Merkmale und einige Sonderanweisungen im Anweisungssatz. In der bevorzugten Ausführungsform beruht der Grafikbeschleuniger auf einem Prozessor der Klasse MIPS R3000. In anderen Ausführungsformen kann der Grafikbeschleuniger auf fast jeder anderen Art von Prozessoren beruhen.
  • Mit Bezug auf 37 empfängt ein Grafikbeschleuniger 64 Befehle von einer Zentraleinheit 22 und empfängt Grafikdaten vom Hauptspeicher 28 über eine Speichersteuerung 54. Der Grafikbeschleuniger umfasst vorzugsweise einen Coprozessor (Vektor-Coprozessor) 1300, der vektorartige Operationen an Pixeln ausführt. In vektorartigen Operationen werden die Bestandteile R, G und B oder die Bestandteile Y, U und V eines Pixels parallel als die drei Elemente eines „Vektors" verarbeitet. In anderen Ausführungsformen umfasst der Grafikbeschleuniger möglicherweise nicht den Vektor-Coprozessor, und der Vektor-Coprozessor kann stattdessen an den Grafikbeschleuniger gekoppelt sein. Der Vektor-Coprozessor 1300 erhält Pixel (3-Tupel-Vektoren) über eine spezialisierte LADE-Anweisung.
  • Die LADE-Anweisung koppelt vorzugsweise Bits von einem 32-Bit-Wort, das die erforderlichen Bits enthält, in den Speicher aus. Die LADE-Anweisung verpackt und setzt vorzugsweise die Bits in das Eingabe-Vektor-Format des Coprozessors um. Der Vektor-Coprozessor 1300 schreibt Pixel (3-Tupel-Vektoren) über eine spezialisierte SPEICHER-Anweisung in den Speicher. Die SPEICHER-Anweisung koppelt vorzugsweise die erforderlichen Bits aus dem Akkumulator (Ausgabe)-Register des Coprozessors aus, setzt sie um, wenn erforderlich, und packt sie in ein 32-Bit-Wort im Speicher in einem Format, das für andere Anwendungen innerhalb des ICs geeignet ist, wie nachfolgend beschrieben.
  • Formate des 32-Bit-Worts im Speicher umfassen vorzugsweise ein RGB16-Format und ein YUV-Format. Wenn die Pixel im RGB-Format formatiert werden, hat R 5 Bits, G hat 6 Bits und B hat 5 Bits. Somit gibt es in jedem RGB16-Pixel 16 Bits, und es gibt zwei RGB16-Halbwörter in jedem 32-Bit-Wort im Speicher. Die beiden RGB16-Halbwörter werden jeweils über die Anweisung „VectorLoadRGB16Left" und „VectorLoadRGB16Right" ausgewählt. Die 5- oder 6-Bit-Elemente werden durch Null-Erweiterung in 8-Bit-Bestandteile erweitert, wenn sie in das Eingaberegister des Coprozessors 1308 geladen werden.
  • Das YUV-Format umfasst vorzugsweise YUV 4 : 2 : 2-Format, das vier Bytes besitzt, die zwei Pixel darstellen, die in jedem 32-Bit-Wort im Speicher gepackt sind. Die U- und V-Elemente werden vorzugsweise von den beiden Pixeln geteilt. Ein typisches Packformat, das zum Laden von zwei Pixeln, die das YUV 4 : 2 : 2-Format besitzen, in einen 32-Bit-Speicher verwendet wird, ist YUYV, wobei jedes der ersten und zweiten Ys, U und V acht Bits besitzt. Das linke Pixel wird vorzugsweise vom ersten Y und dem U und V umfasst, und das rechte Pixel wird vorzugsweise vom zweiten Y und dem U und V umfasst. Besondere LADE-Anweisungen, „LoadYUVLeft" und „LoadYUVRight", werden vorzugsweise verwendet, um die YUV-Werte für das linke Pixel, beziehungsweise für das rechte Pixel, auszukoppeln und sie in das Coprozessor-Eingaberegister 1308 zu packen.
  • Besondere SPEICHER-Anweisungen, „StoreVectorAccumluatorRGB16", „StoreVectorAccumulatorRGB24", „StoreVectorAccumulatorYUVLeft" und „StoreVectorAccumulatorYUVRight" setzen vorzugsweise die Inhalte des Akkumulators, die ansonsten auf das Ausgaberegister des Coprozessors bezogen werden, in ein ausgewähltes Format zum Speichern im Speicher um. Im Falle von „StoreVectorAccumulatorRGB16" haben die drei Bestandteile (R, G und B) im Akkumulator typischerweise jeweils 8, 10 oder mehr bedeutende Bits; diese werden gerundet oder mit einem Zittersignal überlagert, um R, G und B-Werte mit 5, 6, beziehungsweise 5 Bits zu erzeugen und in einen 16-Bit-Wert gepackt. Dieser 16-Bit-Wert ist im Speicher gespeichert, wobei das geeignet 16-Bit-Halbwort im Speicher über die Speicheradresse ausgewählt wird.
  • Im Falle von „StoreVectorAccumulatorRGB24" werden die Bestandteile R, G und B im Akkumulator gerundet oder durch ein Zittersignal überlagert, um 8-Bit-Werte für jeden der Bestandteile R, G und B zu erzeugen, und diese werden in einen 24-Bit-Wert gepackt. Der 24-Bit-RGB-Wert wird an der Speicheradresse in den Speicher geschrieben, die über die Speicheradresse angegeben wird. Im Falle von „StoreVectorAccumulatorYUVLeft" und „StoreVectorAccumulatorYUVRight", werden die Bestandteile Y, U und V im Akkumulator mit einem Zittersignal überlagert oder gerundet, um 8-Bit-Werte für jeden der Bestandteile zu erzeugen.
  • In der bevorzugten Ausführungsform schreibt die Anweisung „StoreVectorAccumulatorYUVLeft" die Y-, U- und V-Werte an die Speicherstellen im adressierten Speicherwort, entsprechend dem linken YUV-Pixel, d. h. das Wort wird als YUYV angeordnet und der erste Y-Wert und die U- und V-Werte werden überschrieben. In der bevorzugten Ausführungsform schreibt die Anweisung „StoreVectorAccumulatorYUVRight" den Y-Wert in die Speicherstelle, entsprechend dem Y-Bestandteil des rechten YUV-Pixels, d. h. des zweiten Y-Werts im vorhergehenden Beispiel. In anderen Ausführungsformen können die U- und V-Werte mit den U- und V-Werten kombiniert werden, die bereits im Speicher sind, wobei eine gewichtete Summe der vorhandenen und gespeicherten Werte erzeugt und das Ergebnis gespeichert wird.
  • Der Coprozessor-Anweisungssatz umfasst vorzugsweise auch eine Anweisung „GreaterThanOREqualTo" (GE). Die GE-Anweisung führt einen Vergleich „Größer-Als-Oder-Gleich" zwischen jedem Element eines Paares von 3-Element-Vektoren aus. Jedes Element in jedem der 3-Element-Vektoren hat eine Größe von einem Byte. Die Ergebnisse aller drei Vergleiche, ein Bit pro Ergebnis, werden in einem Ergebnisregister 1310 platziert, das nachfolgend für eine einzelne bedingte Verzweigungs-Operation verwendet wird. Dies spart eine Menge Anweisungen (Taktzyklen), wenn Vergleiche zwischen allen Elementen der beiden Pixel ausgeführt werden.
  • Der Grafikbeschleuniger umfasst vorzugsweise einen Daten-SRAM 1302, der auch als „Notizblockspeicher" bezeichnet wird, und keinen herkömmlichen Zwischenspeicher. In anderen Ausführungsformen umfasst der Grafikbeschleuniger möglicherweise nicht den Daten-SRAM, und der Daten-SRAM kann stattdessen an den Grafikbeschleuniger gekoppelt sein. Der Daten-SRAM 1302 ähnelt einem Zwischenspeicher, der in Software verwaltet wird. Der Grafikbeschleuniger umfasst vorzugsweise auch eine DMA-Einheit 1304 mit Befehlen, die in Warteschlange stehen. In anderen Ausführungsformen umfasst der Grafikbeschleuniger möglicherweise nicht die DMA-Einheit, und die DMA-Einheit kann stattdessen an den Grafikbeschleuniger gekoppelt sein. Die DMA-Einheit 1304 ist dem Daten-SRAM 1302 zugehörig und bewegt vorzugsweise Daten zwischen dem Daten-SRAM 1302 und dem Hauptspeicher 28, zur gleichen Zeit, zu der der Grafikbeschleuniger 64 den Daten-SRAM 1302 für seine Lade- und Speicheroperationen verwendet. In der bevorzugten Ausführungsform ist der Hauptspeicher 28 der vereinheitlichte Speicher, der vom Grafik-Anzeigesystem, der Zentraleinheit 22 und anderen Peripheriegeräten geteilt wird.
  • Die DMA-Einheit 1304 überträgt vorzugsweise Daten zwischen dem Speicher 28 und dem Daten-SDRAM 1302, um Lade- und Speicheranweisungen auszuführen. In anderen Ausführungsformen kann die DMA-Einheit 1304 Daten zwischen dem Speicher 28 und anderen Bestandteilen des Grafikbeschleunigers übertragen, ohne den Daten-SRAM 1302 zu verwenden. Die Verwendung des Daten-SRAMs führt jedoch im Allgemeine zu schnelleren Lade- und Speichervorgängen.
  • Die DMA-Einheit 1304 hat vorzugsweise eine Warteschlange 1306, um viele DMA-Befehle zu halten, die nacheinander in der Reihenfolge ausgeführt werden, in der sie empfangen werden. In der bevorzugten Ausführungsform ist die Warteschlange 1306 vier Anweisungen tief. Dies kann wertvoll sein, weil die Software (Standardprogramme) strukturiert sein kann, so dass die Schleife über der verschachtelten Schleife die DMA-Einheit 1304 anweisen kann, eine Reihe von Übertragungen auszuführen, z. B. zwei Sätze von Operanden einzuholen und einen Satz von Ergebnissen zurück zu schreiben, und dann kann die verschachtelte Schleife für eine Weile ausführen; wenn die verschachtelte Schleife fertig ist, kann der Grafikbeschleuniger 64 die Warteschlange 1306 in der DMA-Einheit 1304 prüfen, um zu sehen, ob alle DMA-Befehle beendet worden sind. Die Warteschlange umfasst einen Mechanismus, der dem Grafikbeschleuniger ermöglicht, zu bestimmen, wann alle DMA-Befehle beendet worden sind. Wenn alle DMA-Befehle beendet worden sind, geht der Grafikbeschleuniger 64 vorzugsweise sofort dazu über, mehr Arbeit zu verrichten, wie Befehle zum Ausführen zusätzlicher DMA-Operationen zu erteilen und die neuen Operanden zu verarbeiten. Wenn nicht, wartet der Grafikbeschleuniger 64 vorzugsweise auf die Beendigung der DMA-Befehle oder führt für eine Weile einige andere Aufgaben aus.
  • Typischerweise arbeitet der Grafikbeschleuniger 64 an Operanden und erzeugt Ausgaben für einen Satz Pixel, während die DMA-Einheit 1304 Operanden für den nächsten (zukünftigen) Satz Pixeloperationen einbringt, wobei auch die DMA-Einheit 1304 die Ergebnisse vom vorherigen Satz Pixeloperationen zurück in den Speicher schreibt. Auf diese Weise muss der Grafikbeschleuniger 64 niemals auf DMA-Übertragungen warten (wenn der Code gut ausgelegt ist), anders als ein herkömmlicher Daten-Zwischenspeicher, in dem der herkömmliche Daten-Zwischenspeicher nur neue Operanden erhält, wenn es eine Fehlspeicherung gibt, und er schreibt Ergebnisse nur zurück, wenn entweder der Zwischenspeicher sie automatisch zurückschreibt, weil er die Zwischenspeicher-Zeile für neue Operanden benötigt oder wenn eine ausdrückliche Cash-Line- Flush-Operation ausgeführt wird. Daher setzt der Grafikbeschleuniger 64 der vorliegenden Erfindung die Dauer des Wartens auf Daten vorzugsweise herab oder beseitigt sie, anders als herkömmliche Grafikbeschleuniger, die einen großen Teil ihrer Zeit damit verbringen können, auf Datenübertragungsvorgänge zwischen dem Zwischenspeicher und dem Hauptspeicher zu warten.
  • Obgleich diese Erfindung in gewissen besonderen Ausführungsformen beschrieben worden ist, wären Fachleuten viele zusätzliche Abwandlungen und Änderungen offensichtlich. Es versteht sich daher, dass diese Erfindung auf andere Weise ausgeführt werden kann, als ausdrücklich beschrieben. Somit sollten die vorliegenden Ausführungsformen der Erfindung in jeder Hinsicht als veranschaulichend und nicht als einschränkend gesehen werden, wobei der Umfang der Erfindung von den anhängenden Ansprüchen zu bestimmen ist.
    des englischen Texts

Claims (10)

  1. Integrierter Schaltkreis (10), umfassend: Einen Eingang (12) zum Empfangen von Videodaten, umfassend ein Videobild; einen Eingang zum Empfangen von Grafikdaten, umfassend eine Vielheit von Grafikbildern, angeordnet in einer Vielheit logischer Flächen, wobei jedes Grafikbild in einer entsprechenden logischen Fläche angeordnet ist; eine Anzeige-Einheit (58) zum Überblenden der Vielheit von Grafikbildern, die in der Vielheit logischer Flächen angeordnet sind, unter Verwendung von Alphawerten zum Erzeugen eines übergeblendeten Grafikbilds; einen Video-Kompositor (60), gekoppelt an die Anzeige-Einheit (58) zum Überblenden des übergeblendeten Grafikbilds und des Videobilds unter Verwendung von Alphawerten und zur Bereitstellung einer übergeblendeten Ausgabe von Video und Grafik; einen Filter (170), angepasst zum räumlichen Filtern des übergeblendeten Grafikbilds, unabhängig vom Videobild, vor dem Überblenden des übergeblendeten Grafikbilds mit dem Videobild durch den Video-Kompositor (60), wobei die Anzeige-Einheit (58) angepasst ist, um zwei oder mehr Grafikbilder zur gleichen Zeit parallel überzublenden.
  2. Integrierter Schaltkreis (10) nach Anspruch 1, wobei die Anzeige-Einheit (58) angepasst ist, um die Vielheit von Grafikbildern in ein allgemeines Format umzuwandeln, wobei das allgemeine Format ein YUV-Format umfasst.
  3. Integrierter Schaltkreis (10) nach Anspruch 1 oder 2, überdies umfassend eine Skalierungs-Einheit (182) zum Hochskalieren und Herunterskalieren des Videobilds.
  4. Integrierter Schaltkreis (10) nach Anspruch 3, wobei die Skalierungs-Einheit (182) einen vertikalen Filter mit programmierbaren Koeffizienten (180) zum vertikalen Hochskalieren und Herunterskalieren des Videobilds umfasst.
  5. Integrierter Schaltkreis (10) nach Anspruch 3, wobei die Skalierungs-Einheit (182) einen horizontalen Filter mit programmierbaren Koeffizienten (180) zum horizontalen Hochskalieren und Herunterskalieren des Videobilds umfasst.
  6. Integrierter Schaltkreis (10) nach Anspruch 1, überdies umfassend einen Grafikbeschleuniger (64) zur Ausführung von Grafikoperationen an den Bildern.
  7. Integrierter Schaltkreis (10) nach Anspruch 1, überdies umfassend eine E/A-Bus-Brücke (74) zum Koppeln einer externen Zentraleinheit mit einem oder mehreren peripheren Gerät/en.
  8. Integrierter Schaltkreis (10) nach Anspruch 1, überdies umfassend eine Audio-Einheit (66) zum Verarbeiten einer Audio-Eingabe zum Erzeugen einer Audio-Ausgabe.
  9. Integrierter Schaltkreis (10) nach Anspruch 1, wobei der integrierte Schaltkreis ein vereinheitlichtes Speichersystem zum Speichern der Vielheit von Grafikbildern verwendet.
  10. Verfahren zum Überblenden von Grafikdaten und Videodaten in einem integrierten Schaltkreis (10), umfassend folgende Schritte: Das Empfangen der Grafikdaten im integrierten Schaltkreis (10), wobei die Grafikdaten eine Vielheit von Grafikbildern umfassen, die in einer Vielheit logischer Flächen angeordnet sind, wobei jedes Grafikbild in einer entsprechenden logischen Fläche angeordnet ist; das Empfangen der Videodaten im integrierten Schaltkreis, wobei die Videodaten ein Videobild umfassen; das Überblenden der Vielheit von Grafikbildern in der Vielheit logischer Flächen im integrierten Schaltkreis (10) durch Überblenden der Vielheit von Grafikbildern unter Verwendung von Alphawerten zum Erzeugen eines übergeblendeten Grafikbilds; das räumliche Filtern des übergeblendeten Grafikbilds, bevor es mit dem Videobild übergeblendet wird; das Überblenden des übergeblendeten Grafikbilds und des Videobilds im integrierten Schaltkreis unter Verwendung von Alphawerten, wobei der Schritt des Überblendens der Vielheit von Grafikbildern in der Vielheit logischer Flächen im integrierten Schaltkreis (10) das Überblenden zwei oder mehrerer Grafikbilder zur gleichen Zeit parallel umfasst.
DE69917489T 1998-11-09 1999-11-09 Anzeigesystem zur mischung von graphischen daten und videodaten Expired - Lifetime DE69917489T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10787598P 1998-11-09 1998-11-09
US107875P 1998-11-09
PCT/US1999/026484 WO2000028518A2 (en) 1998-11-09 1999-11-09 Graphics display system

Publications (2)

Publication Number Publication Date
DE69917489D1 DE69917489D1 (de) 2004-06-24
DE69917489T2 true DE69917489T2 (de) 2005-06-02

Family

ID=22318929

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69917489T Expired - Lifetime DE69917489T2 (de) 1998-11-09 1999-11-09 Anzeigesystem zur mischung von graphischen daten und videodaten

Country Status (6)

Country Link
US (47) US7911483B1 (de)
EP (2) EP1145218B1 (de)
AT (1) ATE267439T1 (de)
AU (1) AU1910800A (de)
DE (1) DE69917489T2 (de)
WO (1) WO2000028518A2 (de)

Families Citing this family (619)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6886055B2 (en) 1997-12-15 2005-04-26 Clearcube Technology, Inc. Computer on a card with a remote human interface
JP4392992B2 (ja) * 1998-06-30 2010-01-06 エヌエックスピー ビー ヴィ メモリ内のデータストリーム処理
US6853385B1 (en) * 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
US6573905B1 (en) * 1999-11-09 2003-06-03 Broadcom Corporation Video and graphics system with parallel processing of graphics windows
US7982740B2 (en) 1998-11-09 2011-07-19 Broadcom Corporation Low resolution graphics mode support using window descriptors
US6768774B1 (en) 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
US6636222B1 (en) 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
US8165155B2 (en) * 2004-07-01 2012-04-24 Broadcom Corporation Method and system for a thin client and blade architecture
US6798420B1 (en) 1998-11-09 2004-09-28 Broadcom Corporation Video and graphics system with a single-port RAM
US6661422B1 (en) 1998-11-09 2003-12-09 Broadcom Corporation Video and graphics system with MPEG specific data transfer commands
US7911483B1 (en) 1998-11-09 2011-03-22 Broadcom Corporation Graphics display system with window soft horizontal scrolling mechanism
US8863134B2 (en) * 1998-11-09 2014-10-14 Broadcom Corporation Real time scheduling system for operating system
US7446774B1 (en) * 1998-11-09 2008-11-04 Broadcom Corporation Video and graphics system with an integrated system bridge controller
US7916795B2 (en) * 1998-11-09 2011-03-29 Broadcom Corporation Method and system for vertical filtering using window descriptors
US7365757B1 (en) * 1998-12-17 2008-04-29 Ati International Srl Method and apparatus for independent video and graphics scaling in a video graphics system
US6329996B1 (en) * 1999-01-08 2001-12-11 Silicon Graphics, Inc. Method and apparatus for synchronizing graphics pipelines
US20030185455A1 (en) * 1999-02-04 2003-10-02 Goertzen Kenbe D. Digital image processor
US6823129B1 (en) * 2000-02-04 2004-11-23 Quvis, Inc. Scaleable resolution motion image recording and storage system
US20030142875A1 (en) * 1999-02-04 2003-07-31 Goertzen Kenbe D. Quality priority
US8698840B2 (en) * 1999-03-05 2014-04-15 Csr Technology Inc. Method and apparatus for processing video and graphics data to create a composite output image having independent and separate layers of video and graphics display planes
US7623140B1 (en) * 1999-03-05 2009-11-24 Zoran Corporation Method and apparatus for processing video and graphics data to create a composite output image having independent and separate layers of video and graphics
JP2000276127A (ja) * 1999-03-23 2000-10-06 Hitachi Ltd 情報処理装置及び表示制御装置
JP3725368B2 (ja) * 1999-05-17 2005-12-07 インターナショナル・ビジネス・マシーンズ・コーポレーション 画像の表示択方法、コンピュータ・システムおよび記録媒体
US6559859B1 (en) * 1999-06-25 2003-05-06 Ati International Srl Method and apparatus for providing video signals
US11682027B2 (en) * 1999-07-19 2023-06-20 Expedited Dual Commerce Llc System and method for expediting fulfillments of online ordered deliverables by expedited-service area pickups in specified time-windows and by delivery to specific locations
FR2797979B1 (fr) * 1999-08-24 2002-05-24 St Microelectronics Sa Procede et systeme de filtrage anti-scintillement
US7028096B1 (en) * 1999-09-14 2006-04-11 Streaming21, Inc. Method and apparatus for caching for streaming data
US6975324B1 (en) * 1999-11-09 2005-12-13 Broadcom Corporation Video and graphics system with a video transport processor
US9668011B2 (en) * 2001-02-05 2017-05-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Single chip set-top box system
US6538656B1 (en) 1999-11-09 2003-03-25 Broadcom Corporation Video and graphics system with a data transport processor
US8913667B2 (en) * 1999-11-09 2014-12-16 Broadcom Corporation Video decoding system having a programmable variable-length decoder
JP3950926B2 (ja) * 1999-11-30 2007-08-01 エーユー オプトロニクス コーポレイション 画像表示方法、ホスト装置、画像表示装置、およびディスプレイ用インターフェイス
AU2260601A (en) * 1999-12-14 2001-06-25 Broadcom Corporation Video, audio and graphics decode, composite and display system
JP2003517797A (ja) * 1999-12-14 2003-05-27 サイエンティフィック−アトランタ, インコーポレイテッド 調和されたリソースの割当てを有するビデオ信号を適応的に復号化するシステムおよび方法
US20020026642A1 (en) * 1999-12-15 2002-02-28 Augenbraun Joseph E. System and method for broadcasting web pages and other information
JP3262772B2 (ja) * 1999-12-17 2002-03-04 株式会社ナムコ 画像生成システム及び情報記憶媒体
GB9930306D0 (en) * 1999-12-22 2000-02-09 Koninkl Philips Electronics Nv Broadcast enhancement system and method
US7483042B1 (en) * 2000-01-13 2009-01-27 Ati International, Srl Video graphics module capable of blending multiple image layers
WO2001054400A1 (en) * 2000-01-24 2001-07-26 Matsushita Electric Industrial Co., Ltd. Image synthesizing device, recorded medium, and program
US20010016010A1 (en) * 2000-01-27 2001-08-23 Lg Electronics Inc. Apparatus for receiving digital moving picture
US6654835B1 (en) * 2000-03-23 2003-11-25 International Business Machines Corporation High bandwidth data transfer employing a multi-mode, shared line buffer
US6891533B1 (en) * 2000-04-11 2005-05-10 Hewlett-Packard Development Company, L.P. Compositing separately-generated three-dimensional images
US6903748B1 (en) * 2000-04-11 2005-06-07 Apple Computer, Inc. Mechanism for color-space neutral (video) effects scripting engine
US7450114B2 (en) * 2000-04-14 2008-11-11 Picsel (Research) Limited User interface systems and methods for manipulating and viewing digital documents
US7576730B2 (en) 2000-04-14 2009-08-18 Picsel (Research) Limited User interface systems and methods for viewing and manipulating digital documents
US6781600B2 (en) * 2000-04-14 2004-08-24 Picsel Technologies Limited Shape processor
US6518970B1 (en) * 2000-04-20 2003-02-11 Ati International Srl Graphics processing device with integrated programmable synchronization signal generation
US6940912B2 (en) * 2000-04-21 2005-09-06 Microsoft Corporation Dynamically adaptive multimedia application program interface and related methods
US7634011B2 (en) * 2000-04-21 2009-12-15 Microsoft Corporation Application program interface (API) facilitating decoder control of accelerator resources
US7649943B2 (en) * 2000-04-21 2010-01-19 Microsoft Corporation Interface and related methods facilitating motion compensation in media processing
US6891893B2 (en) * 2000-04-21 2005-05-10 Microsoft Corp. Extensible multimedia application program interface and related methods
US6828983B1 (en) * 2000-05-12 2004-12-07 S3 Graphics Co., Ltd. Selective super-sampling/adaptive anti-aliasing of complex 3D data
US6766281B1 (en) * 2000-05-12 2004-07-20 S3 Graphics Co., Ltd. Matched texture filter design for rendering multi-rate data samples
US6825852B1 (en) * 2000-05-16 2004-11-30 Adobe Systems Incorporated Combining images including transparency by selecting color components
US6798418B1 (en) * 2000-05-24 2004-09-28 Advanced Micro Devices, Inc. Graphics subsystem including a RAMDAC IC with digital video storage interface for connection to a graphics bus
US6968305B1 (en) * 2000-06-02 2005-11-22 Averant, Inc. Circuit-level memory and combinational block modeling
US7210099B2 (en) 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
US7405734B2 (en) * 2000-07-18 2008-07-29 Silicon Graphics, Inc. Method and system for presenting three-dimensional computer graphics images using multiple graphics processing units
US6573946B1 (en) * 2000-08-31 2003-06-03 Intel Corporation Synchronizing video streams with different pixel clock rates
EP1199888B1 (de) * 2000-10-19 2006-09-13 Sanyo Electric Co., Ltd. Bilddatenausgabevorrichtung und Empfangsvorrichtung
US6903753B1 (en) * 2000-10-31 2005-06-07 Microsoft Corporation Compositing images from multiple sources
WO2002037857A2 (en) * 2000-10-31 2002-05-10 Koninklijke Philips Electronics N.V. Method and device for video scene composition including graphic elements
US7119815B1 (en) * 2000-10-31 2006-10-10 Intel Corporation Analyzing alpha values for flicker filtering
US6725446B1 (en) * 2000-11-01 2004-04-20 Digital Integrator, Inc. Information distribution method and system
US6870539B1 (en) * 2000-11-17 2005-03-22 Hewlett-Packard Development Company, L.P. Systems for compositing graphical data
US6680739B1 (en) * 2000-11-17 2004-01-20 Hewlett-Packard Development Company, L.P. Systems and methods for compositing graphical data
US6791553B1 (en) * 2000-11-17 2004-09-14 Hewlett-Packard Development Company, L.P. System and method for efficiently rendering a jitter enhanced graphical image
US6864894B1 (en) * 2000-11-17 2005-03-08 Hewlett-Packard Development Company, L.P. Single logical screen system and method for rendering graphical data
US6985162B1 (en) * 2000-11-17 2006-01-10 Hewlett-Packard Development Company, L.P. Systems and methods for rendering active stereo graphical data as passive stereo
US6882346B1 (en) * 2000-11-17 2005-04-19 Hewlett-Packard Development Company, L.P. System and method for efficiently rendering graphical data
US7358974B2 (en) * 2001-01-29 2008-04-15 Silicon Graphics, Inc. Method and system for minimizing an amount of data needed to test data against subarea boundaries in spatially composited digital video
US20020105592A1 (en) * 2001-02-05 2002-08-08 Conexant Systems, Inc. System and method for processing HDTV format video signals
US6909836B2 (en) * 2001-02-07 2005-06-21 Autodesk Canada Inc. Multi-rate real-time players
US7123307B1 (en) * 2001-02-23 2006-10-17 Silicon Image, Inc. Clock jitter limiting scheme in video transmission through multiple stages
US7057627B2 (en) * 2001-03-05 2006-06-06 Broadcom Corporation Video and graphics system with square graphics pixels
JP3903721B2 (ja) 2001-03-12 2007-04-11 ソニー株式会社 情報送信装置および方法、情報受信装置および方法、情報送受信システムおよび方法、記録媒体およびプログラム
JP3610915B2 (ja) * 2001-03-19 2005-01-19 株式会社デンソー 処理実行装置及びプログラム
US7038690B2 (en) * 2001-03-23 2006-05-02 Microsoft Corporation Methods and systems for displaying animated graphics on a computing device
US7239324B2 (en) * 2001-03-23 2007-07-03 Microsoft Corporation Methods and systems for merging graphics for display on a computing device
US6919900B2 (en) * 2001-03-23 2005-07-19 Microsoft Corporation Methods and systems for preparing graphics for display on a computing device
US6774952B1 (en) * 2001-04-19 2004-08-10 Lsi Logic Corporation Bandwidth management
US20020188424A1 (en) * 2001-04-20 2002-12-12 Grinstein Georges G. Method and system for data analysis
WO2002095601A1 (en) * 2001-05-22 2002-11-28 Koninklijke Philips Electronics N.V. Method and system for accelerated access to a memory
US20090031419A1 (en) * 2001-05-24 2009-01-29 Indra Laksono Multimedia system and server and methods for use therewith
DE60232840D1 (de) * 2001-06-06 2009-08-20 Thomson Licensing Videosignalverarbeitungssystem mit der Fähigkeit zur Verarbeitung von Zusatzinformation
US6943844B2 (en) * 2001-06-13 2005-09-13 Intel Corporation Adjusting pixel clock
US20040010652A1 (en) * 2001-06-26 2004-01-15 Palmchip Corporation System-on-chip (SOC) architecture with arbitrary pipeline depth
US7092035B1 (en) * 2001-07-09 2006-08-15 Lsi Logic Corporation Block move engine with scaling and/or filtering for video or graphics
US7224404B2 (en) * 2001-07-30 2007-05-29 Samsung Electronics Co., Ltd. Remote display control of video/graphics data
US6828987B2 (en) * 2001-08-07 2004-12-07 Ati Technologies, Inc. Method and apparatus for processing video and graphics data
US7016418B2 (en) * 2001-08-07 2006-03-21 Ati Technologies, Inc. Tiled memory configuration for mapping video data and method thereof
US7253818B2 (en) * 2001-08-07 2007-08-07 Ati Technologies, Inc. System for testing multiple devices on a single system and method thereof
US7909696B2 (en) 2001-08-09 2011-03-22 Igt Game interaction in 3-D gaming environments
US8002623B2 (en) * 2001-08-09 2011-08-23 Igt Methods and devices for displaying multiple game elements
US7901289B2 (en) * 2001-08-09 2011-03-08 Igt Transparent objects on a gaming machine
US8267767B2 (en) 2001-08-09 2012-09-18 Igt 3-D reels and 3-D wheels in a gaming machine
US6887157B2 (en) * 2001-08-09 2005-05-03 Igt Virtual cameras and 3-D gaming environments in a gaming machine
US7367885B2 (en) * 2001-08-09 2008-05-06 Igt 3-D text in a gaming machine
US6989840B1 (en) * 2001-08-31 2006-01-24 Nvidia Corporation Order-independent transparency rendering system and method
US20030068038A1 (en) * 2001-09-28 2003-04-10 Bedros Hanounik Method and apparatus for encrypting data
JP2003116004A (ja) * 2001-10-04 2003-04-18 Seiko Epson Corp 透明部分を含む画像ファイル
GB0124630D0 (en) * 2001-10-13 2001-12-05 Picsel Res Ltd "Systems and methods for generating visual representations of graphical data and digital document processing"
EP1442450A2 (de) * 2001-10-19 2004-08-04 Koninklijke Philips Electronics N.V. Farbbild-anzeigeverfahren und verarbeitungsvorrichtung und eine anzeigevorrichtung mit einer solchen farbbildverarbeitungsvorrichtung
NL1019365C2 (nl) * 2001-11-14 2003-05-15 Tno Bepaling van een beweging van een achtergrond in een reeks beelden.
US20030095447A1 (en) * 2001-11-20 2003-05-22 Koninklijke Philips Electronics N.V. Shared memory controller for display processor
US6857033B1 (en) * 2001-12-27 2005-02-15 Advanced Micro Devices, Inc. I/O node for a computer system including an integrated graphics engine and an integrated I/O hub
DE10164337A1 (de) * 2001-12-28 2003-07-17 Broadcasttelevision Systems Me Verfahren zum Erzeugen eines aus zwei gespeicherten Bildern zusammengesetzten Bildes
US6587390B1 (en) * 2001-12-31 2003-07-01 Lsi Logic Corporation Memory controller for handling data transfers which exceed the page width of DDR SDRAM devices
US7274857B2 (en) * 2001-12-31 2007-09-25 Scientific-Atlanta, Inc. Trick modes for compressed video streams
US6996277B2 (en) * 2002-01-07 2006-02-07 Xerox Corporation Image type classification using color discreteness features
US6856358B1 (en) * 2002-01-16 2005-02-15 Etron Technology, Inc. Phase-increase induced backporch decrease (PIBD) phase recovery method for video signal processing
US20030137523A1 (en) * 2002-01-22 2003-07-24 International Business Machines Corporation Enhanced blending unit performance in graphics system
US6876369B2 (en) * 2002-01-22 2005-04-05 International Business Machines Corp. Applying translucent filters according to visual disability needs in a network environment
US6803922B2 (en) 2002-02-14 2004-10-12 International Business Machines Corporation Pixel formatter for two-dimensional graphics engine of set-top box system
US6996186B2 (en) * 2002-02-22 2006-02-07 International Business Machines Corporation Programmable horizontal filter with noise reduction and image scaling for video encoding system
US6909432B2 (en) * 2002-02-27 2005-06-21 Hewlett-Packard Development Company, L.P. Centralized scalable resource architecture and system
US6924799B2 (en) 2002-02-28 2005-08-02 Hewlett-Packard Development Company, L.P. Method, node, and network for compositing a three-dimensional stereo image from a non-stereo application
US7080177B2 (en) * 2002-03-01 2006-07-18 Broadcom Corporation System and method for arbitrating clients in a hierarchical real-time DRAM system
US7849172B2 (en) * 2002-03-01 2010-12-07 Broadcom Corporation Method of analyzing non-preemptive DRAM transactions in real-time unified memory architectures
US6819331B2 (en) * 2002-03-01 2004-11-16 Broadcom Corporation Method and apparatus for updating a color look-up table
US20030164842A1 (en) * 2002-03-04 2003-09-04 Oberoi Ranjit S. Slice blend extension for accumulation buffering
JP2003280982A (ja) * 2002-03-20 2003-10-03 Seiko Epson Corp 多次元メモリのデータ転送装置及び多次元メモリのデータ転送プログラム、並びに多次元メモリのデータ転送方法
US7050113B2 (en) * 2002-03-26 2006-05-23 International Business Machines Corporation Digital video data scaler and method
US7302503B2 (en) * 2002-04-01 2007-11-27 Broadcom Corporation Memory access engine having multi-level command structure
US8284844B2 (en) 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
US7034897B2 (en) 2002-04-01 2006-04-25 Broadcom Corporation Method of operating a video decoding system
US8401084B2 (en) 2002-04-01 2013-03-19 Broadcom Corporation System and method for multi-row decoding of video with dependent rows
US7918730B2 (en) * 2002-06-27 2011-04-05 Igt Trajectory-based 3-D games of chance for video gaming machines
US6870542B2 (en) * 2002-06-28 2005-03-22 Nvidia Corporation System and method for filtering graphics data on scanout to a monitor
US20040015551A1 (en) * 2002-07-18 2004-01-22 Thornton Barry W. System of co-located computers with content and/or communications distribution
KR100472464B1 (ko) * 2002-07-20 2005-03-10 삼성전자주식회사 직렬로 스케일링하는 장치 및 방법
US6982727B2 (en) 2002-07-23 2006-01-03 Broadcom Corporation System and method for providing graphics using graphical engine
FR2842977A1 (fr) * 2002-07-24 2004-01-30 Total Immersion Procede et systeme permettant a un utilisateur de melanger en temps reel des images de synthese avec des images video
KR100451554B1 (ko) * 2002-08-30 2004-10-08 삼성전자주식회사 멀티미디어용 시스템온칩 프로세서
US7480010B2 (en) * 2002-09-04 2009-01-20 Denace Enterprise Co., L.L.C. Customizable ASIC with substantially non-customizable portion that supplies pixel data to a mask-programmable portion in multiple color space formats
US7202908B2 (en) * 2002-09-04 2007-04-10 Darien K. Wallace Deinterlacer using both low angle and high angle spatial interpolation
US7782398B2 (en) * 2002-09-04 2010-08-24 Chan Thomas M Display processor integrated circuit with on-chip programmable logic for implementing custom enhancement functions
US7533402B2 (en) 2002-09-30 2009-05-12 Broadcom Corporation Satellite set-top box decoder for simultaneously servicing multiple independent programs for display on independent display device
US7230987B2 (en) * 2002-09-30 2007-06-12 Broadcom Corporation Multiple time-base clock for processing multiple satellite signals
US7002595B2 (en) * 2002-10-04 2006-02-21 Broadcom Corporation Processing of color graphics data
US6826301B2 (en) * 2002-10-07 2004-11-30 Infocus Corporation Data transmission system and method
CN100339842C (zh) * 2002-10-09 2007-09-26 松下电器产业株式会社 信息处理器
US8259121B2 (en) * 2002-10-22 2012-09-04 Broadcom Corporation System and method for processing data using a network
US7990390B2 (en) 2002-10-22 2011-08-02 Broadcom Corporation Multi-pass system and method supporting multiple streams of video
US9377987B2 (en) * 2002-10-22 2016-06-28 Broadcom Corporation Hardware assisted format change mechanism in a display controller
US7336283B2 (en) * 2002-10-24 2008-02-26 Hewlett-Packard Development Company, L.P. Efficient hardware A-buffer using three-dimensional allocation of fragment memory
US7477205B1 (en) 2002-11-05 2009-01-13 Nvidia Corporation Method and apparatus for displaying data from multiple frame buffers on one or more display devices
DE10251463A1 (de) * 2002-11-05 2004-05-19 BSH Bosch und Siemens Hausgeräte GmbH Elektrisch angetriebene Pumpe
US8737810B2 (en) * 2002-11-15 2014-05-27 Thomson Licensing Method and apparatus for cropping of subtitle elements
ES2289339T3 (es) 2002-11-15 2008-02-01 Thomson Licensing Metodo y aparato para componer subtitulos.
US7796133B1 (en) 2002-11-18 2010-09-14 Ati Technologies Ulc Unified shader
US7061495B1 (en) * 2002-11-18 2006-06-13 Ati Technologies, Inc. Method and apparatus for rasterizer interpolation
US7633506B1 (en) * 2002-11-27 2009-12-15 Ati Technologies Ulc Parallel pipeline graphics system
US8933945B2 (en) * 2002-11-27 2015-01-13 Ati Technologies Ulc Dividing work among multiple graphics pipelines using a super-tiling technique
US7330195B2 (en) * 2002-12-18 2008-02-12 Hewlett-Packard Development Company, L.P. Graphic pieces for a border image
US7840905B1 (en) 2003-01-06 2010-11-23 Apple Inc. Creating a theme used by an authoring application to produce a multimedia presentation
US7546544B1 (en) * 2003-01-06 2009-06-09 Apple Inc. Method and apparatus for creating multimedia presentations
KR101015412B1 (ko) * 2003-01-17 2011-02-22 톰슨 라이센싱 비디오 신호를 생성하는 방법 및 전자장치
DE602004003564T2 (de) 2003-02-11 2007-09-20 Research In Motion Ltd., Waterloo Anzeigeverarbeitungssystem und verfahren
WO2004073300A1 (ja) * 2003-02-14 2004-08-26 Mitsubishi Denki Kabuskiki Kaisha 動画像合成装置、動画像合成方法、及び動画像合成機能付き情報端末装置
US7986358B1 (en) * 2003-02-25 2011-07-26 Matrox Electronic Systems, Ltd. Bayer image conversion using a graphics processing unit
US7489362B2 (en) * 2003-03-04 2009-02-10 Broadcom Corporation Television functionality on a chip
US7679629B2 (en) * 2003-08-15 2010-03-16 Broadcom Corporation Methods and systems for constraining a video signal
US7313764B1 (en) * 2003-03-06 2007-12-25 Apple Inc. Method and apparatus to accelerate scrolling for buffered windows
GB2400513B (en) * 2003-03-14 2005-10-05 British Broadcasting Corp Video processing
US7969451B2 (en) * 2003-03-27 2011-06-28 International Business Machines Corporation Method and apparatus for dynamically sizing color tables
US7554608B2 (en) * 2003-04-01 2009-06-30 Panasonic Corporation Video composition circuit for performing vertical filtering to α-blended video data and successively input video data
CA2463228C (en) 2003-04-04 2012-06-26 Evertz Microsystems Ltd. Apparatus, systems and methods for packet based transmission of multiple data signals
US9330060B1 (en) * 2003-04-15 2016-05-03 Nvidia Corporation Method and device for encoding and decoding video image data
US7800699B2 (en) 2003-04-16 2010-09-21 Nvidia Corporation 3:2 Pulldown detection
US7667710B2 (en) 2003-04-25 2010-02-23 Broadcom Corporation Graphics display system with line buffer control scheme
EP2369590B1 (de) * 2003-04-28 2015-02-25 Panasonic Corporation Wiedergabegerät, Wiedergabeverfahren, Aufzeichnungsmedium, Aufzeichnungsgerät, Aufzeichnungsverfahren zur Aufzeichnung von Videodaten und Grafiken mit Fensterinformation über eine Grafiksanzeige
TW200425024A (en) * 2003-05-08 2004-11-16 Ind Tech Res Inst Driver system of display
US7304688B1 (en) 2003-05-20 2007-12-04 Pixelworks, Inc. Adaptive Y/C separator
US7532254B1 (en) 2003-05-20 2009-05-12 Pixelworks, Inc. Comb filter system and method
US7365796B1 (en) 2003-05-20 2008-04-29 Pixelworks, Inc. System and method for video signal decoding using digital signal processing
US7420625B1 (en) 2003-05-20 2008-09-02 Pixelworks, Inc. Fuzzy logic based adaptive Y/C separation system and method
US7605867B1 (en) * 2003-05-20 2009-10-20 Pixelworks, Inc. Method and apparatus for correction of time base errors
US7701512B1 (en) 2003-05-20 2010-04-20 Pixelworks, Inc. System and method for improved horizontal and vertical sync pulse detection and processing
US7667717B2 (en) * 2003-06-12 2010-02-23 Microsoft Corporation System and method for displaying images utilizing multi-blending
JP5026785B2 (ja) * 2003-06-19 2012-09-19 ソニーモバイルコミュニケーションズ, エービー メディアストリームの混合
US7307667B1 (en) * 2003-06-27 2007-12-11 Zoran Corporation Method and apparatus for an integrated high definition television controller
US7120814B2 (en) * 2003-06-30 2006-10-10 Raytheon Company System and method for aligning signals in multiple clock systems
TWI373150B (en) * 2003-07-09 2012-09-21 Shinetsu Chemical Co Silicone rubber composition, light-emitting semiconductor embedding/protecting material and light-emitting semiconductor device
JP2005039794A (ja) 2003-07-18 2005-02-10 Matsushita Electric Ind Co Ltd 表示処理方法及び表示処理装置
US7584321B1 (en) * 2003-08-28 2009-09-01 Nvidia Corporation Memory address and datapath multiplexing
JP2005077501A (ja) * 2003-08-28 2005-03-24 Toshiba Corp 情報処理装置、表示制御用半導体装置およびビデオストリームデータの表示制御方法
US7321965B2 (en) * 2003-08-28 2008-01-22 Mips Technologies, Inc. Integrated mechanism for suspension and deallocation of computational threads of execution in a processor
JP2005080134A (ja) * 2003-09-02 2005-03-24 Sanyo Electric Co Ltd 画像信号処理回路
FR2859591A1 (fr) * 2003-09-08 2005-03-11 St Microelectronics Sa Dispositif et procede de traitement de donnees video et graphiques
US7966642B2 (en) * 2003-09-15 2011-06-21 Nair Ajith N Resource-adaptive management of video storage
US20050062755A1 (en) * 2003-09-18 2005-03-24 Phil Van Dyke YUV display buffer
KR100580177B1 (ko) * 2003-09-22 2006-05-15 삼성전자주식회사 디지털 방송 수신 시스템에서 디스플레이 동기 신호 생성 장치 및 디코더와 그 방법
KR100510550B1 (ko) * 2003-09-29 2005-08-26 삼성전자주식회사 수평 및 수직 방향으로 영상을 스케일링하는 방법 및 장치
US8063916B2 (en) * 2003-10-22 2011-11-22 Broadcom Corporation Graphics layer reduction for video composition
WO2005039157A1 (ja) * 2003-10-22 2005-04-28 Sanyo Electric Co., Ltd. 携帯電話機、表示方法、及びプログラム
EP1528512A3 (de) * 2003-10-28 2006-02-15 Samsung Electronics Co., Ltd. Graphischer Decoder, Bildwiedergabevorrichtung und Verfahren zur Beschleunigung der graphischen Bildschirmanzeige basierend auf Befehlen
US7525526B2 (en) * 2003-10-28 2009-04-28 Samsung Electronics Co., Ltd. System and method for performing image reconstruction and subpixel rendering to effect scaling for multi-mode display
US7262782B1 (en) * 2003-11-07 2007-08-28 Adobe Systems Incorporated Selectively transforming overlapping illustration artwork
US7511714B1 (en) * 2003-11-10 2009-03-31 Nvidia Corporation Video format conversion using 3D graphics pipeline of a GPU
KR100519776B1 (ko) * 2003-11-24 2005-10-07 삼성전자주식회사 영상 신호의 해상도 변환 방법 및 장치
US7486337B2 (en) * 2003-12-22 2009-02-03 Intel Corporation Controlling the overlay of multiple video signals
US7535478B2 (en) * 2003-12-24 2009-05-19 Intel Corporation Method and apparatus to communicate graphics overlay information to display modules
US7477140B1 (en) 2003-12-26 2009-01-13 Booth Kenneth C See-through lighted information display
US7461037B2 (en) * 2003-12-31 2008-12-02 Nokia Siemens Networks Oy Clustering technique for cyclic phenomena
US8144156B1 (en) 2003-12-31 2012-03-27 Zii Labs Inc. Ltd. Sequencer with async SIMD array
US7262818B2 (en) * 2004-01-02 2007-08-28 Trumpion Microelectronic Inc. Video system with de-motion-blur processing
US7769198B2 (en) * 2004-01-09 2010-08-03 Broadcom Corporation System, method, apparatus for repeating last line to scalar
US7308159B2 (en) * 2004-01-16 2007-12-11 Enuclia Semiconductor, Inc. Image processing system and method with dynamically controlled pixel processing
US9292904B2 (en) * 2004-01-16 2016-03-22 Nvidia Corporation Video image processing with parallel processing
US7653265B2 (en) * 2004-01-16 2010-01-26 Nvidia Corporation Video image processing with utility processing stage
US7760968B2 (en) * 2004-01-16 2010-07-20 Nvidia Corporation Video image processing with processing time allocation
KR20060128982A (ko) * 2004-01-28 2006-12-14 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 디스플레이 방법 및 디스플레이 시스템
JP2005217971A (ja) * 2004-01-30 2005-08-11 Toshiba Corp オンスクリーン重畳装置
BRPI0507542A (pt) 2004-02-10 2007-07-03 Lg Electronics Inc meio fìsico de gravação para reprodução de fluxos de subtìtulo de texto, método e aparelho para decodificar um fluxo de subtìtulo de texto
DE602004010777T2 (de) * 2004-02-18 2008-12-04 Harman Becker Automotive Systems Gmbh Alphamischung auf Basis einer Nachschlagtabelle
US20050195200A1 (en) * 2004-03-03 2005-09-08 Chuang Dan M. Embedded system with 3D graphics core and local pixel buffer
DE102004012516A1 (de) * 2004-03-15 2005-10-13 Infineon Technologies Ag Computersystem zur elektronischen Datenverarbeitung
JP3852452B2 (ja) * 2004-03-16 2006-11-29 ソニー株式会社 画像データ保存方法及び画像処理装置
WO2005096162A1 (ja) * 2004-03-18 2005-10-13 Matsushita Electric Industrial Co., Ltd. アービトレーション方法及び装置
BRPI0509231A (pt) * 2004-03-26 2007-09-04 Lg Electronics Inc meio de gravação, método e aparelho para reproduzir fluxos de subtìtulo de texto
KR101067778B1 (ko) 2004-03-26 2011-09-28 엘지전자 주식회사 기록매체 및 텍스트 서브타이틀 스트림 재생 방법과 장치
US20050219252A1 (en) * 2004-03-30 2005-10-06 Buxton Mark J Two-dimensional buffer, texture and frame buffer decompression
FR2868865B1 (fr) * 2004-04-08 2007-01-19 Philippe Hauttecoeur Procede et systeme de construction volatile d'une image a afficher sur un systeme d'affichage a partir d'une pluralite d'objets
US6940517B1 (en) * 2004-04-26 2005-09-06 Ati Technologies Inc. Apparatus and method for pixel conversion using multiple buffers
US20050248586A1 (en) * 2004-05-06 2005-11-10 Atousa Soroushi Memory efficient method and apparatus for compression encoding large overlaid camera images
US20080309817A1 (en) * 2004-05-07 2008-12-18 Micronas Usa, Inc. Combined scaling, filtering, and scan conversion
US7411628B2 (en) * 2004-05-07 2008-08-12 Micronas Usa, Inc. Method and system for scaling, filtering, scan conversion, panoramic scaling, YC adjustment, and color conversion in a display controller
US7259796B2 (en) * 2004-05-07 2007-08-21 Micronas Usa, Inc. System and method for rapidly scaling and filtering video data
US7408590B2 (en) * 2004-05-07 2008-08-05 Micronas Usa, Inc. Combined scaling, filtering, and scan conversion
US7545389B2 (en) * 2004-05-11 2009-06-09 Microsoft Corporation Encoding ClearType text for use on alpha blended textures
JP4624715B2 (ja) * 2004-05-13 2011-02-02 ルネサスエレクトロニクス株式会社 システムlsi
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US7688337B2 (en) * 2004-05-21 2010-03-30 Broadcom Corporation System and method for reducing image scaling complexity with flexible scaling factors
US7469068B2 (en) * 2004-05-27 2008-12-23 Seiko Epson Corporation Method and apparatus for dimensionally transforming an image without a line buffer
US7567670B2 (en) * 2004-05-28 2009-07-28 Intel Corporation Verification information for digital video signal
JP4306536B2 (ja) * 2004-05-31 2009-08-05 パナソニック電工株式会社 スキャンコンバータ
US20050270297A1 (en) * 2004-06-08 2005-12-08 Sony Corporation And Sony Electronics Inc. Time sliced architecture for graphics display system
US20050280659A1 (en) * 2004-06-16 2005-12-22 Paver Nigel C Display controller bandwidth and power reduction
US8861600B2 (en) * 2004-06-18 2014-10-14 Broadcom Corporation Method and system for dynamically configurable DCT/IDCT module in a wireless handset
US8515741B2 (en) * 2004-06-18 2013-08-20 Broadcom Corporation System (s), method (s) and apparatus for reducing on-chip memory requirements for audio decoding
JP2006011074A (ja) * 2004-06-25 2006-01-12 Seiko Epson Corp 表示コントローラ、電子機器及び画像データ供給方法
US8600217B2 (en) * 2004-07-14 2013-12-03 Arturo A. Rodriguez System and method for improving quality of displayed picture during trick modes
KR100716982B1 (ko) * 2004-07-15 2007-05-10 삼성전자주식회사 다차원 영상 포맷의 변환장치 및 방법
US20060012714A1 (en) * 2004-07-16 2006-01-19 Greenforest Consulting, Inc Dual-scaler architecture for reducing video processing requirements
JP4880884B2 (ja) * 2004-07-21 2012-02-22 株式会社東芝 情報処理装置および表示制御方法
TWI244333B (en) * 2004-07-23 2005-11-21 Realtek Semiconductor Corp Video composing circuit and method thereof
TWI246326B (en) * 2004-08-16 2005-12-21 Realtek Semiconductor Corp Image processing circuit of digital TV
KR100624311B1 (ko) * 2004-08-30 2006-09-19 삼성에스디아이 주식회사 프레임 메모리 제어 방법 및 그것을 이용한 표시 장치
TWI248764B (en) * 2004-09-01 2006-02-01 Realtek Semiconductor Corp Method and apparatus for generating visual effect
US20060050089A1 (en) * 2004-09-09 2006-03-09 Atousa Soroushi Method and apparatus for selecting pixels to write to a buffer when creating an enlarged image
TWI256022B (en) * 2004-09-24 2006-06-01 Realtek Semiconductor Corp Method and apparatus for scaling image block
US8624906B2 (en) * 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
JP4367307B2 (ja) * 2004-09-30 2009-11-18 株式会社日立製作所 著作権管理方法及び再生装置
US7426594B1 (en) 2004-10-08 2008-09-16 Nvidia Corporation Apparatus, system, and method for arbitrating between memory requests
CN1860778B (zh) * 2004-10-14 2010-10-13 松下电器产业株式会社 视频信号处理装置
US20060092320A1 (en) * 2004-10-29 2006-05-04 Nickerson Brian R Transferring a video frame from memory into an on-chip buffer for video processing
US7532221B2 (en) * 2004-11-02 2009-05-12 Microsoft Corporation Texture-based packing, such as for packing 16-bit pixels into four bits
US7643032B2 (en) * 2004-11-02 2010-01-05 Microsoft Corporation Texture-based packing, such as for packing 8-bit pixels into two bits
US8738891B1 (en) 2004-11-15 2014-05-27 Nvidia Corporation Methods and systems for command acceleration in a video processor via translation of scalar instructions into vector instructions
TWI256036B (en) * 2004-11-25 2006-06-01 Realtek Semiconductor Corp Method for blending digital images
US7380036B2 (en) * 2004-12-10 2008-05-27 Micronas Usa, Inc. Combined engine for video and graphics processing
US20060125835A1 (en) * 2004-12-10 2006-06-15 Li Sha DMA latency compensation with scaling line buffer
US7432981B1 (en) 2004-12-13 2008-10-07 Nvidia Corporation Apparatus, system, and method for processing digital audio/video signals
KR100743520B1 (ko) * 2005-01-04 2007-07-27 삼성전자주식회사 비디오 스케일러 및 스케일링 방법
US20060152627A1 (en) * 2005-01-13 2006-07-13 Ruggiero Carl J Video processing system and method with dynamic tag architecture
US7853044B2 (en) * 2005-01-13 2010-12-14 Nvidia Corporation Video processing system and method with dynamic tag architecture
US7738740B2 (en) * 2005-01-13 2010-06-15 Nvidia Corporation Video processing system and method with dynamic tag architecture
US7869666B2 (en) * 2005-01-13 2011-01-11 Nvidia Corporation Video processing system and method with dynamic tag architecture
US8576924B2 (en) * 2005-01-25 2013-11-05 Advanced Micro Devices, Inc. Piecewise processing of overlap smoothing and in-loop deblocking
US7792385B2 (en) * 2005-01-25 2010-09-07 Globalfoundries Inc. Scratch pad for storing intermediate loop filter data
US8773328B2 (en) * 2005-02-12 2014-07-08 Broadcom Corporation Intelligent DMA in a mobile multimedia processor supporting multiple display formats
US20060184893A1 (en) * 2005-02-17 2006-08-17 Raymond Chow Graphics controller providing for enhanced control of window animation
US8036873B2 (en) * 2005-02-28 2011-10-11 Synopsys, Inc. Efficient clock models and their use in simulation
US8285037B2 (en) * 2005-02-28 2012-10-09 Nxp B.V. Compression format and apparatus using the new compression format for temporarily storing image data in a frame memory
TWI272006B (en) * 2005-03-08 2007-01-21 Realtek Semiconductor Corp Method of recording a plurality of graphic objects and processing apparatus thereof
US7382376B2 (en) * 2005-04-01 2008-06-03 Seiko Epson Corporation System and method for effectively utilizing a memory device in a compressed domain
US7978204B2 (en) * 2005-04-29 2011-07-12 Nvidia Corporation Transparency-conserving system, method and computer program product to generate and blend images
US20060282855A1 (en) * 2005-05-05 2006-12-14 Digital Display Innovations, Llc Multiple remote display system
US11733958B2 (en) 2005-05-05 2023-08-22 Iii Holdings 1, Llc Wireless mesh-enabled system, host device, and method for use therewith
US7667707B1 (en) 2005-05-05 2010-02-23 Digital Display Innovations, Llc Computer system for supporting multiple remote displays
US8019883B1 (en) 2005-05-05 2011-09-13 Digital Display Innovations, Llc WiFi peripheral mode display system
US8200796B1 (en) 2005-05-05 2012-06-12 Digital Display Innovations, Llc Graphics display system for multiple remote terminals
US7769274B2 (en) * 2005-05-06 2010-08-03 Mediatek, Inc. Video processing and optical recording using a shared memory
US7847755B1 (en) * 2005-05-23 2010-12-07 Glance Networks Method and apparatus for the identification and selective encoding of changed host display information
US20060274088A1 (en) * 2005-06-04 2006-12-07 Network I/O, Inc. Method for drawing graphics in a web browser or web application
WO2006132069A1 (ja) * 2005-06-09 2006-12-14 Sharp Kabushiki Kaisha 映像信号処理方法、映像信号処理装置、および表示装置
US8208564B2 (en) * 2005-06-24 2012-06-26 Ntt Docomo, Inc. Method and apparatus for video encoding and decoding using adaptive interpolation
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US7716630B2 (en) * 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US7965773B1 (en) 2005-06-30 2011-06-21 Advanced Micro Devices, Inc. Macroblock cache
US7721308B2 (en) 2005-07-01 2010-05-18 Microsoft Corproation Synchronization aspects of interactive multimedia presentation management
US8020084B2 (en) 2005-07-01 2011-09-13 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US8305398B2 (en) * 2005-07-01 2012-11-06 Microsoft Corporation Rendering and compositing multiple applications in an interactive media environment
US20070006065A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Conditional event timing for interactive multimedia presentations
US8656268B2 (en) 2005-07-01 2014-02-18 Microsoft Corporation Queueing events in an interactive media environment
US8108787B2 (en) * 2005-07-01 2012-01-31 Microsoft Corporation Distributing input events to multiple applications in an interactive media environment
US7941522B2 (en) * 2005-07-01 2011-05-10 Microsoft Corporation Application security in an interactive media environment
US8799757B2 (en) * 2005-07-01 2014-08-05 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US20070006062A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
EP1911278A2 (de) * 2005-08-04 2008-04-16 Nds Limited Fortschrittliches digital-tv-system
US8189908B2 (en) * 2005-09-02 2012-05-29 Adobe Systems, Inc. System and method for compressing video data and alpha channel data using a single stream
US8218655B2 (en) * 2005-09-19 2012-07-10 Maxim Integrated Products, Inc. Method, system and device for improving video quality through in-loop temporal pre-filtering
US7456904B2 (en) * 2005-09-22 2008-11-25 Pelco, Inc. Method and apparatus for superimposing characters on video
US8000423B2 (en) * 2005-10-07 2011-08-16 Zoran Corporation Adaptive sample rate converter
US8223798B2 (en) 2005-10-07 2012-07-17 Csr Technology Inc. Adaptive receiver
US7893944B2 (en) 2005-10-14 2011-02-22 Samsung Electronics Co., Ltd. Gamut mapping and subpixel rendering systems and methods
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
JP2007124090A (ja) * 2005-10-26 2007-05-17 Renesas Technology Corp 情報機器
JP4974508B2 (ja) * 2005-10-28 2012-07-11 キヤノン株式会社 バスマスタ装置、バス調停装置及びバス調停方法
JP5119587B2 (ja) * 2005-10-31 2013-01-16 株式会社デンソー 車両用表示装置
US7899864B2 (en) * 2005-11-01 2011-03-01 Microsoft Corporation Multi-user terminal services accelerator
KR101152064B1 (ko) * 2005-11-02 2012-06-11 엘지디스플레이 주식회사 화상 구현 장치 및 그 구동방법
GB0524804D0 (en) * 2005-12-05 2006-01-11 Falanx Microsystems As Method of and apparatus for processing graphics
JP2007156525A (ja) * 2005-11-30 2007-06-21 Matsushita Electric Ind Co Ltd 描画処理装置及び画像処理方法
US8112513B2 (en) * 2005-11-30 2012-02-07 Microsoft Corporation Multi-user display proxy server
US7492371B2 (en) * 2005-12-02 2009-02-17 Seiko Epson Corporation Hardware animation of a bouncing image
US20070132786A1 (en) * 2005-12-05 2007-06-14 Prolific Technology Inc. Segment-based video and graphics system with video window
KR100968452B1 (ko) * 2005-12-12 2010-07-07 삼성전자주식회사 영상처리장치 및 그 제어방법
US8284209B2 (en) * 2005-12-15 2012-10-09 Broadcom Corporation System and method for optimizing display bandwidth
US7636497B1 (en) 2005-12-27 2009-12-22 Advanced Micro Devices, Inc. Video rotation in a media acceleration engine
US7564466B2 (en) * 2006-01-10 2009-07-21 Kabushiki Kaisha Toshiba System and method for managing memory for color transforms
DE102006001681B4 (de) * 2006-01-12 2008-07-10 Wismüller, Axel, Dipl.-Phys. Dr.med. Verfahren und Vorrichtung zur Darstellung mehrkanaliger Bilddaten
US8130317B2 (en) * 2006-02-14 2012-03-06 Broadcom Corporation Method and system for performing interleaved to planar transformation operations in a mobile terminal having a video display
US20070201833A1 (en) * 2006-02-17 2007-08-30 Apple Inc. Interface for defining aperture
US20070216685A1 (en) * 2006-03-15 2007-09-20 Microsoft Corporation Scene write-once vector and triangle rasterization
WO2007104330A1 (en) * 2006-03-15 2007-09-20 Freescale Semiconductor, Inc. Task scheduling method and apparatus
US8599841B1 (en) 2006-03-28 2013-12-03 Nvidia Corporation Multi-format bitstream decoding engine
US8593469B2 (en) * 2006-03-29 2013-11-26 Nvidia Corporation Method and circuit for efficient caching of reference video data
DE102007014590A1 (de) * 2006-04-11 2007-11-15 Mediatek Inc. Verfahren und System zur Bildüberlagerungsbearbeitung
US8314806B2 (en) * 2006-04-13 2012-11-20 Intel Corporation Low power display mode
US8264610B2 (en) 2006-04-18 2012-09-11 Marvell World Trade Ltd. Shared memory multi video channel display apparatus and methods
US8218091B2 (en) * 2006-04-18 2012-07-10 Marvell World Trade Ltd. Shared memory multi video channel display apparatus and methods
US8284322B2 (en) 2006-04-18 2012-10-09 Marvell World Trade Ltd. Shared memory multi video channel display apparatus and methods
KR101246293B1 (ko) * 2006-04-24 2013-03-21 삼성전자주식회사 홈 네트워크에서 사용자 인터페이스 방법 및 장치와 그전자기기 및 저장 매체
JP2007299191A (ja) * 2006-04-28 2007-11-15 Yamaha Corp 画像処理装置
US8379735B2 (en) * 2006-05-15 2013-02-19 Microsoft Corporation Automatic video glitch detection and audio-video synchronization assessment
JP4191206B2 (ja) * 2006-06-08 2008-12-03 エーユー オプトロニクス コーポレイション 画像表示システム、および画像表示装置
JP2008011085A (ja) * 2006-06-28 2008-01-17 Toshiba Corp デジタルtvキャプチャユニット、情報処理装置、および信号伝送方法
US8009903B2 (en) * 2006-06-29 2011-08-30 Panasonic Corporation Image processor, image processing method, storage medium, and integrated circuit that can adjust a degree of depth feeling of a displayed high-quality image
US7660486B2 (en) * 2006-07-10 2010-02-09 Aten International Co., Ltd. Method and apparatus of removing opaque area as rescaling an image
US8095745B1 (en) * 2006-08-07 2012-01-10 Marvell International Ltd. Non-sequential transfer of data from a memory
CN103729330B (zh) 2006-08-10 2017-04-19 起元科技有限公司 在基于图的计算中分配服务
JP4827659B2 (ja) * 2006-08-25 2011-11-30 キヤノン株式会社 画像処理装置、画像処理方法、及びコンピュータプログラム
US20080062304A1 (en) * 2006-09-07 2008-03-13 Claude Villeneuve Method and apparatus for displaying at least one video signal on at least one display
US20080062312A1 (en) * 2006-09-13 2008-03-13 Jiliang Song Methods and Devices of Using a 26 MHz Clock to Encode Videos
US8013869B2 (en) * 2006-09-13 2011-09-06 Adobe Systems Incorporated Color selection interface
US20080062311A1 (en) * 2006-09-13 2008-03-13 Jiliang Song Methods and Devices to Use Two Different Clocks in a Television Digital Encoder
US7692647B2 (en) * 2006-09-14 2010-04-06 Microsoft Corporation Real-time rendering of realistic rain
TWI320158B (en) * 2006-09-25 2010-02-01 Image scaling circuit and method thereof
US7460725B2 (en) * 2006-11-09 2008-12-02 Calista Technologies, Inc. System and method for effectively encoding and decoding electronic information
US7813425B2 (en) 2006-11-29 2010-10-12 Ipera Technology, Inc. System and method for processing videos and images to a determined quality level
US9965886B2 (en) * 2006-12-04 2018-05-08 Arm Norway As Method of and apparatus for processing graphics
US7720300B1 (en) 2006-12-05 2010-05-18 Calister Technologies System and method for effectively performing an adaptive quantization procedure
US8736627B2 (en) * 2006-12-19 2014-05-27 Via Technologies, Inc. Systems and methods for providing a shared buffer in a multiple FIFO environment
US7712047B2 (en) * 2007-01-03 2010-05-04 Microsoft Corporation Motion desktop
KR20080064607A (ko) * 2007-01-05 2008-07-09 삼성전자주식회사 재구성 가능한 프로세서를 위한 통합 메모리 장치 및 이의사용 방법
KR100823169B1 (ko) 2007-01-25 2008-04-18 삼성전자주식회사 향상된 동작 특성을 갖는 플래시 메모리 시스템 및 그것의액세스 방법
CN100512373C (zh) * 2007-02-13 2009-07-08 华为技术有限公司 一种隔行显示防闪烁方法及装置
JP4748077B2 (ja) * 2007-02-14 2011-08-17 セイコーエプソン株式会社 画素データ転送制御装置及び画素データ転送制御方法
US8154561B1 (en) 2007-03-22 2012-04-10 Adobe Systems Incorporated Dynamic display of a harmony rule list
US8537890B2 (en) * 2007-03-23 2013-09-17 Ati Technologies Ulc Video decoder with adaptive outputs
US8144170B2 (en) * 2007-03-28 2012-03-27 Himax Technologies Limited Apparatus for scaling image and line buffer thereof
US8462141B2 (en) * 2007-04-26 2013-06-11 Freescale Semiconductor, Inc. Unified memory architecture and display controller to prevent data feed under-run
TW200843523A (en) * 2007-04-27 2008-11-01 Cheertek Inc System and method for adjusting monitor chrominance using multiple window
US8233527B2 (en) * 2007-05-11 2012-07-31 Advanced Micro Devices, Inc. Software video transcoder with GPU acceleration
US8861591B2 (en) * 2007-05-11 2014-10-14 Advanced Micro Devices, Inc. Software video encoder with GPU acceleration
US8384710B2 (en) * 2007-06-07 2013-02-26 Igt Displaying and using 3D graphics on multiple displays provided for gaming environments
US7821524B2 (en) * 2007-06-26 2010-10-26 Microsoft Corporation Adaptive contextual filtering
US7978195B2 (en) * 2007-07-02 2011-07-12 Hyperformix, Inc. Method for superimposing statistical information on tabular data
JP2009027552A (ja) * 2007-07-20 2009-02-05 Funai Electric Co Ltd 光ディスク再生装置
US8073282B2 (en) * 2007-07-23 2011-12-06 Qualcomm Incorporated Scaling filter for video sharpening
US8599315B2 (en) * 2007-07-25 2013-12-03 Silicon Image, Inc. On screen displays associated with remote video source devices
WO2009015342A1 (en) 2007-07-26 2009-01-29 Ab Initio Technology Llc Transactional graph-based computation with error handling
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US20090033791A1 (en) * 2007-07-31 2009-02-05 Scientific-Atlanta, Inc. Video processing systems and methods
US9209792B1 (en) 2007-08-15 2015-12-08 Nvidia Corporation Clock selection system and method
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US20090282199A1 (en) * 2007-08-15 2009-11-12 Cox Michael B Memory control system and method
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US9024966B2 (en) * 2007-09-07 2015-05-05 Qualcomm Incorporated Video blending using time-averaged color keys
JP4950834B2 (ja) * 2007-10-19 2012-06-13 キヤノン株式会社 画像処理装置、画像処理方法
US8698756B2 (en) * 2007-11-06 2014-04-15 Stmicroelectronics Asia Pacific Pte Ltd. Interrupt reduction method in touch screen controller
US8397207B2 (en) * 2007-11-26 2013-03-12 Microsoft Corporation Logical structure design surface
US8650238B2 (en) * 2007-11-28 2014-02-11 Qualcomm Incorporated Resolving buffer underflow/overflow in a digital system
SG152952A1 (en) * 2007-12-05 2009-06-29 Gemini Info Pte Ltd Method for automatically producing video cartoon with superimposed faces from cartoon template
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
SG153692A1 (en) * 2007-12-19 2009-07-29 St Microelectronics Asia Method of scanning an array of sensors
CN101472179A (zh) * 2007-12-29 2009-07-01 辉达公司 多个视频标准下的运动补偿的二维内插结构
KR100941029B1 (ko) * 2008-02-27 2010-02-05 에이치기술(주) 그래픽 가속기 및 그래픽 가속 방법
JP4528843B2 (ja) * 2008-03-28 2010-08-25 シャープ株式会社 ラインバッファ回路、画像処理装置、および画像形成装置
US9438844B2 (en) * 2008-04-08 2016-09-06 Imagine Communications Corp. Video multiviewer system using direct memory access (DMA) registers and block RAM
US9716854B2 (en) * 2008-04-09 2017-07-25 Imagine Communications Corp. Video multiviewer system with distributed scaling and related methods
US8773469B2 (en) * 2008-04-09 2014-07-08 Imagine Communications Corp. Video multiviewer system with serial digital interface and related methods
US9172900B2 (en) * 2008-04-09 2015-10-27 Imagine Communications Corp. Video multiviewer system with switcher and distributed scaling and related methods
US9124847B2 (en) 2008-04-10 2015-09-01 Imagine Communications Corp. Video multiviewer system for generating video data based upon multiple video inputs with added graphic content and related methods
US8811499B2 (en) * 2008-04-10 2014-08-19 Imagine Communications Corp. Video multiviewer system permitting scrolling of multiple video windows and related methods
US8525837B2 (en) * 2008-04-29 2013-09-03 Teledyne Lecroy, Inc. Method and apparatus for data preview
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US11792538B2 (en) 2008-05-20 2023-10-17 Adeia Imaging Llc Capturing and processing of images including occlusions focused on an image sensor by a lens stack array
US8866920B2 (en) 2008-05-20 2014-10-21 Pelican Imaging Corporation Capturing and processing of images using monolithic camera array with heterogeneous imagers
US8213728B2 (en) * 2008-06-16 2012-07-03 Taiwan Imagingtek Corporation Method and apparatus of image compression with output control
US20090310947A1 (en) * 2008-06-17 2009-12-17 Scaleo Chip Apparatus and Method for Processing and Blending Multiple Heterogeneous Video Sources for Video Output
CN101606848A (zh) * 2008-06-20 2009-12-23 Ge医疗系统环球技术有限公司 数据输入方法和超声成像装置
US8422783B2 (en) * 2008-06-25 2013-04-16 Sharp Laboratories Of America, Inc. Methods and systems for region-based up-scaling
US8300696B2 (en) * 2008-07-25 2012-10-30 Cisco Technology, Inc. Transcoding for systems operating under plural video coding specifications
US8898716B2 (en) * 2008-07-28 2014-11-25 Stmicroelectronics International N.V. Method and apparatus for designing a communication mechanism between embedded cable modem and embedded set-top box
US7982723B2 (en) * 2008-09-18 2011-07-19 Stmicroelectronics Asia Pacific Pte. Ltd. Multiple touch location in a three dimensional touch screen sensor
US8279240B2 (en) * 2008-09-29 2012-10-02 Intel Corporation Video scaling techniques
JP5195250B2 (ja) * 2008-10-03 2013-05-08 ソニー株式会社 画像表示システム及び画像表示装置
KR101546022B1 (ko) * 2008-12-09 2015-08-20 삼성전자주식회사 데이터 처리 장치 및 방법
US9218792B2 (en) 2008-12-11 2015-12-22 Nvidia Corporation Variable scaling of image data for aspect ratio conversion
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
US20100156934A1 (en) * 2008-12-23 2010-06-24 Wujian Zhang Video Display Controller
WO2010078277A1 (en) * 2008-12-29 2010-07-08 Celio Technology Corporation Graphics processor
US8619083B2 (en) * 2009-01-06 2013-12-31 Microsoft Corporation Multi-layer image composition with intermediate blending resolutions
WO2010093879A1 (en) 2009-02-13 2010-08-19 Ab Initio Technology Llc Managing task execution
US9135002B1 (en) * 2009-03-06 2015-09-15 Symantec Corporation Systems and methods for recovering an application on a computing device
US20100245675A1 (en) * 2009-03-25 2010-09-30 Nausser Fathollahi Method and system for video parameter analysis and transmission
US8860745B2 (en) * 2009-06-01 2014-10-14 Stmicroelectronics, Inc. System and method for color gamut mapping
GB2470611B (en) 2009-06-25 2011-06-29 Tv One Ltd Apparatus and method for processing data
US8634023B2 (en) * 2009-07-21 2014-01-21 Qualcomm Incorporated System for video frame synchronization using sub-frame memories
US8667329B2 (en) 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
US9665969B1 (en) * 2009-09-29 2017-05-30 Nvidia Corporation Data path and instruction set for packed pixel operations for video processing
US20110084982A1 (en) * 2009-10-12 2011-04-14 Sony Corporation Apparatus and Method for Displaying Image Data With Memory Reduction
US20110119454A1 (en) * 2009-11-17 2011-05-19 Hsiang-Tsung Kung Display system for simultaneous displaying of windows generated by multiple window systems belonging to the same computer platform
TWI482483B (zh) * 2009-12-03 2015-04-21 Univ Nat Yang Ming 一種具立體視覺之頭盔式視訊顯示裝置
CN102474632A (zh) * 2009-12-08 2012-05-23 美国博通公司 处理多个3-d视频格式的方法和系统
EP2355472B1 (de) * 2010-01-22 2020-03-04 Samsung Electronics Co., Ltd. Vorrichtung und Verfahren zum Übertragen und Senden von animierten handschriftlichen Nachrichten
JP2011160075A (ja) * 2010-01-29 2011-08-18 Sony Corp 画像処理装置および方法
US9235452B2 (en) * 2010-02-05 2016-01-12 Microsoft Technology Licensing, Llc Graphics remoting using augmentation data
US9292161B2 (en) * 2010-03-24 2016-03-22 Microsoft Technology Licensing, Llc Pointer tool with touch-enabled precise placement
US8704783B2 (en) 2010-03-24 2014-04-22 Microsoft Corporation Easy word selection and selection ahead of finger
US8503534B2 (en) * 2010-04-22 2013-08-06 Maxim Integrated Products, Inc. Multi-bus architecture for a video codec
WO2011149558A2 (en) 2010-05-28 2011-12-01 Abelow Daniel H Reality alternate
US8730251B2 (en) * 2010-06-07 2014-05-20 Apple Inc. Switching video streams for a display without a visible interruption
WO2011159759A1 (en) 2010-06-15 2011-12-22 Ab Initio Technology Llc Dynamically loading graph-based computations
GB2481857B (en) * 2010-07-09 2017-02-08 Snell Ltd Methods and apparatus for resampling a spatially sampled attribute of an image
GB2488396A (en) * 2010-08-17 2012-08-29 Streamworks Internat S A Video signal processing
US8493404B2 (en) 2010-08-24 2013-07-23 Qualcomm Incorporated Pixel rendering on display
KR20120066305A (ko) * 2010-12-14 2012-06-22 한국전자통신연구원 비디오 움직임 예측 및 보상용 캐싱 장치 및 방법
US8878950B2 (en) 2010-12-14 2014-11-04 Pelican Imaging Corporation Systems and methods for synthesizing high resolution images using super-resolution processes
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US8786673B2 (en) 2011-01-07 2014-07-22 Cyberlink Corp. Systems and methods for performing video conversion based on non-linear stretch information
US8639053B2 (en) 2011-01-18 2014-01-28 Dimension, Inc. Methods and systems for up-scaling a standard definition (SD) video to high definition (HD) quality
US8723889B2 (en) 2011-01-25 2014-05-13 Freescale Semiconductor, Inc. Method and apparatus for processing temporal and spatial overlapping updates for an electronic display
US8848731B2 (en) 2011-01-31 2014-09-30 Qualcomm Incorporated System and method for facilitating data transfer using a shared non-deterministic bus
GB2488516A (en) * 2011-02-15 2012-09-05 Advanced Risc Mach Ltd Using priority dependent delays to ensure that the average delay between accesses to a memory remains below a threshold
US8896610B2 (en) * 2011-02-18 2014-11-25 Texas Instruments Incorporated Error recovery operations for a hardware accelerator
KR20120105615A (ko) * 2011-03-16 2012-09-26 삼성전자주식회사 색영역 판단 장치 및 이를 포함하는 영상 표시 장치
KR20120108136A (ko) * 2011-03-23 2012-10-05 삼성전자주식회사 이미지 처리 방법 및 상기 방법을 수행할 수 있는 장치들
TWI517667B (zh) * 2011-03-31 2016-01-11 瑞昱半導體股份有限公司 將2d影像轉換為3d影像之裝置與方法
US8891854B2 (en) * 2011-03-31 2014-11-18 Realtek Semiconductor Corp. Device and method for transforming 2D images into 3D images
US20130128120A1 (en) * 2011-04-06 2013-05-23 Rupen Chanda Graphics Pipeline Power Consumption Reduction
CN103828343B (zh) * 2011-06-10 2017-07-11 菲力尔系统公司 基于行的图像处理和柔性存储系统
US9317196B2 (en) 2011-08-10 2016-04-19 Microsoft Technology Licensing, Llc Automatic zooming for text selection/cursor placement
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8818171B2 (en) * 2011-08-30 2014-08-26 Kourosh Soroushian Systems and methods for encoding alternative streams of video for playback on playback devices having predetermined display aspect ratios and network connection maximum data rates
US9955195B2 (en) 2011-08-30 2018-04-24 Divx, Llc Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels
JP5611917B2 (ja) * 2011-09-20 2014-10-22 株式会社東芝 プロジェクタ、及び画像処理装置
IN2014CN02708A (de) * 2011-09-28 2015-08-07 Pelican Imaging Corp
GB2495553B (en) * 2011-10-14 2018-01-03 Snell Advanced Media Ltd Re-sampling method and apparatus
US9148670B2 (en) * 2011-11-30 2015-09-29 Freescale Semiconductor, Inc. Multi-core decompression of block coded video data
US9589540B2 (en) * 2011-12-05 2017-03-07 Microsoft Technology Licensing, Llc Adaptive control of display refresh rate based on video frame rate and power efficiency
EP2798629A4 (de) * 2011-12-29 2015-08-05 Intel Corp Verringerung der anzahl von skalierungsmotoren bei einer anzeigesteuerung zur anzeige von mehreren bildern auf einem bildschirm
EP2801032B1 (de) * 2012-01-04 2020-01-01 Intel Corporation Bimodale funktionalität zwischen kohärenten links und speichererweiterung
US8928677B2 (en) * 2012-01-24 2015-01-06 Nvidia Corporation Low latency concurrent computation
US20130207981A1 (en) * 2012-02-09 2013-08-15 Honeywell International Inc. Apparatus and methods for cursor animation
US9087409B2 (en) 2012-03-01 2015-07-21 Qualcomm Incorporated Techniques for reducing memory access bandwidth in a graphics processing system based on destination alpha values
US9619912B2 (en) * 2012-03-02 2017-04-11 Verizon Patent And Licensing Inc. Animated transition from an application window to another application window
CN102664937B (zh) * 2012-04-09 2016-02-03 威盛电子股份有限公司 云端运算图形服务器及云端运算图形服务方法
US8847970B2 (en) 2012-04-18 2014-09-30 2236008 Ontario Inc. Updating graphical content based on dirty display buffers
WO2013156810A1 (en) 2012-04-20 2013-10-24 Freescale Semiconductor, Inc. Display controller with blending stage
US9148699B2 (en) * 2012-06-01 2015-09-29 Texas Instruments Incorporated Optimized algorithm for construction of composite video from a set of discrete video sources
US9251555B2 (en) 2012-06-08 2016-02-02 2236008 Ontario, Inc. Tiled viewport composition
US8547480B1 (en) 2012-06-25 2013-10-01 Google Inc. Coordinating distributed graphics rendering in a multi-window display
CN102833507A (zh) * 2012-07-20 2012-12-19 圆刚科技股份有限公司 录影装置
US9535722B2 (en) * 2012-09-12 2017-01-03 The Directv Group, Inc. Method and system for communicating between a host device and a user device through an intermediate device using a composite graphics signal
US10521250B2 (en) 2012-09-12 2019-12-31 The Directv Group, Inc. Method and system for communicating between a host device and user device through an intermediate device using a composite video signal
US9979960B2 (en) 2012-10-01 2018-05-22 Microsoft Technology Licensing, Llc Frame packing and unpacking between frames of chroma sampling formats with different chroma resolutions
US9661340B2 (en) 2012-10-22 2017-05-23 Microsoft Technology Licensing, Llc Band separation filtering / inverse filtering for frame packing / unpacking higher resolution chroma sampling formats
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
CN102968395B (zh) * 2012-11-28 2015-04-15 中国人民解放军国防科学技术大学 用于微处理器的内存拷贝加速方法及装置
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
CN103037257B (zh) * 2012-12-31 2016-12-28 北京赛科世纪数码科技有限公司 一种启动方法
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
EP2763401A1 (de) * 2013-02-02 2014-08-06 Novomatic AG Eingebettetes System zur Videoverarbeitung mit Hardware-Mitteln
TWI497960B (zh) * 2013-03-04 2015-08-21 Hon Hai Prec Ind Co Ltd 顯示視頻圖像的電視機及顯示視頻圖像的方法
US8866912B2 (en) 2013-03-10 2014-10-21 Pelican Imaging Corporation System and methods for calibration of an array camera using a single captured image
US9053768B2 (en) 2013-03-14 2015-06-09 Gsi Technology, Inc. Systems and methods of pipelined output latching involving synchronous memory arrays
US9998750B2 (en) 2013-03-15 2018-06-12 Cisco Technology, Inc. Systems and methods for guided conversion of video from a first to a second compression format
US9473807B2 (en) * 2013-05-31 2016-10-18 Echostar Technologies L.L.C. Methods and apparatus for moving video content to integrated virtual environment devices
US11228769B2 (en) * 2013-06-03 2022-01-18 Texas Instruments Incorporated Multi-threading in a video hardware engine
KR20140142863A (ko) * 2013-06-05 2014-12-15 한국전자통신연구원 그래픽 편집기 제공 장치 및 그 방법
CN103313096A (zh) * 2013-06-14 2013-09-18 成都思迈科技发展有限责任公司 一种网络码流转换器
CN104346308B (zh) * 2013-07-29 2018-11-20 鸿富锦精密工业(深圳)有限公司 电子装置
CN104348889B (zh) * 2013-08-09 2019-04-16 鸿富锦精密工业(深圳)有限公司 切换开关及电子装置
US9805478B2 (en) * 2013-08-14 2017-10-31 Arm Limited Compositing plural layer of image data for display
US9292285B2 (en) 2013-08-19 2016-03-22 Apple Inc. Interpolation implementation
US20150062134A1 (en) * 2013-09-04 2015-03-05 Apple Inc. Parameter fifo for configuring video related settings
US9231993B2 (en) * 2013-09-06 2016-01-05 Lg Display Co., Ltd. Apparatus for transmitting encoded video stream and method for transmitting the same
US9471639B2 (en) 2013-09-19 2016-10-18 International Business Machines Corporation Managing a grouping window on an operator graph
BR112016006293A2 (pt) * 2013-09-27 2017-08-01 Koninklijke Philips Nv sistema para exibir simultaneamente em uma tela dados de vídeo de múltiplas fontes, estação de trabalho ou equipamento de imageamento, método para mostrar simultaneamente em uma tela dados de vídeo de múltiplas fontes, e produto de programa de computador
CA2866073C (en) 2013-10-02 2021-11-30 Evertz Microsystems Ltd. Video router
US10119808B2 (en) 2013-11-18 2018-11-06 Fotonation Limited Systems and methods for estimating depth from projected texture using camera arrays
US20150143450A1 (en) * 2013-11-21 2015-05-21 Broadcom Corporation Compositing images in a compressed bitstream
JP6626823B2 (ja) 2013-12-05 2019-12-25 アビニシオ テクノロジー エルエルシー サブグラフから構成されるデータフローグラフ用のインターフェースの管理
WO2015090217A1 (en) 2013-12-18 2015-06-25 Mediatek Inc. Method and apparatus for palette table prediction
US20150181393A1 (en) * 2013-12-20 2015-06-25 Plannet Associate Co., Ltd. Distribution device for transmission packets
US9723216B2 (en) 2014-02-13 2017-08-01 Nvidia Corporation Method and system for generating an image including optically zoomed and digitally zoomed regions
US9472168B2 (en) * 2014-03-07 2016-10-18 Apple Inc. Display pipe statistics calculation for video encoder
KR102117075B1 (ko) 2014-03-11 2020-05-29 삼성전자주식회사 재구성 가능한 이미지 스케일링 회로
US9275434B2 (en) 2014-03-11 2016-03-01 Qualcomm Incorporated Phase control multi-tap downscale filter
US10708328B2 (en) * 2014-03-17 2020-07-07 Intel Corporation Hardware assisted media playback and capture synchronization
US9973754B2 (en) * 2014-03-18 2018-05-15 Texas Instruments Incorporated Low power ultra-HD video hardware engine
GB2525666B (en) * 2014-05-02 2020-12-23 Advanced Risc Mach Ltd Graphics processing systems
TWI675371B (zh) * 2014-06-05 2019-10-21 美商積佳半導體股份有限公司 涉及多排組記憶體電路之系統及方法
TWI675372B (zh) * 2014-06-05 2019-10-21 美商積佳半導體股份有限公司 涉及多排組雙管道記憶體電路之系統及方法
US20150379679A1 (en) * 2014-06-25 2015-12-31 Changliang Wang Single Read Composer with Outputs
US20160014417A1 (en) * 2014-07-08 2016-01-14 Magnum Semiconductor, Inc. Methods and apparatuses for stripe-based temporal and spatial video processing
JP6437096B2 (ja) * 2014-08-20 2018-12-12 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン ビデオ合成
KR102155479B1 (ko) * 2014-09-01 2020-09-14 삼성전자 주식회사 반도체 장치
CN105389776B (zh) 2014-09-02 2019-05-03 辉达公司 图像缩放技术
KR102246105B1 (ko) * 2014-09-25 2021-04-29 삼성전자주식회사 디스플레이 장치, 이의 제어 방법 및 이의 데이터 전송 방법
US9729801B2 (en) 2014-10-02 2017-08-08 Dolby Laboratories Licensing Corporation Blending images using mismatched source and display electro-optical transfer functions
FR3029660B1 (fr) * 2014-12-05 2017-12-22 Stmicroelectronics (Grenoble 2) Sas Procede et dispositif de composition d'une image video multi-plans
US9854201B2 (en) 2015-01-16 2017-12-26 Microsoft Technology Licensing, Llc Dynamically updating quality to higher chroma sampling rate
US9749646B2 (en) 2015-01-16 2017-08-29 Microsoft Technology Licensing, Llc Encoding/decoding of high chroma resolution details
US9558528B2 (en) * 2015-03-25 2017-01-31 Xilinx, Inc. Adaptive video direct memory access module
EP3073479A1 (de) * 2015-03-27 2016-09-28 BAE Systems PLC Digitale anzeige
CN107209663B (zh) * 2015-04-23 2020-03-10 华为技术有限公司 数据格式转换装置、缓冲芯片及方法
US10217187B2 (en) * 2015-06-05 2019-02-26 Qatar Foundation For Education, Science And Immunity Development Method for dynamic video magnification
US9571265B2 (en) * 2015-07-10 2017-02-14 Tempo Semicondutor, Inc. Sample rate converter with sample and hold
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
US10506257B2 (en) 2015-09-28 2019-12-10 Cybrook Inc. Method and system of video processing with back channel message management
US10516892B2 (en) 2015-09-28 2019-12-24 Cybrook Inc. Initial bandwidth estimation for real-time video transmission
US10756997B2 (en) 2015-09-28 2020-08-25 Cybrook Inc. Bandwidth adjustment for real-time video transmission
US10770009B2 (en) * 2015-11-09 2020-09-08 Sharp Kabushiki Kaisha Display device
US10506283B2 (en) * 2015-11-18 2019-12-10 Cybrook Inc. Video decoding and rendering using combined jitter and frame buffer
US10506245B2 (en) 2015-11-18 2019-12-10 Cybrook Inc. Video data processing using a ring buffer
JP6584672B2 (ja) 2015-12-21 2019-10-02 アビニシオ テクノロジー エルエルシー サブグラフインターフェースの生成
CN106131565B (zh) * 2015-12-29 2020-05-01 苏州踪视通信息技术有限公司 使用联合抖动-帧缓冲区的视频解码及渲染
US10140066B2 (en) * 2016-02-01 2018-11-27 International Business Machines Corporation Smart partitioning of storage access paths in shared storage services
CN107025100A (zh) * 2016-02-01 2017-08-08 阿里巴巴集团控股有限公司 播放多媒体数据的方法、界面渲染方法及装置、设备
US9948927B2 (en) * 2016-03-10 2018-04-17 Intel Corporation Using an optical interface between a device under test and a test apparatus
US9997232B2 (en) 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
US10430244B2 (en) * 2016-03-28 2019-10-01 Micron Technology, Inc. Apparatuses and methods to determine timing of operations
GB2553744B (en) 2016-04-29 2018-09-05 Advanced Risc Mach Ltd Graphics processing systems
US20180284735A1 (en) * 2016-05-09 2018-10-04 StrongForce IoT Portfolio 2016, LLC Methods and systems for industrial internet of things data collection in a network sensitive upstream oil and gas environment
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
US10504409B2 (en) * 2016-08-31 2019-12-10 Intel Corporation Display synchronization
US10242644B2 (en) * 2016-09-30 2019-03-26 Intel Corporation Transmitting display data
US10368080B2 (en) 2016-10-21 2019-07-30 Microsoft Technology Licensing, Llc Selective upsampling or refresh of chroma sample values
US20180122038A1 (en) * 2016-10-28 2018-05-03 Qualcomm Incorporated Multi-layer fetch during composition
US20180121213A1 (en) * 2016-10-31 2018-05-03 Anthony WL Koo Method apparatus for dynamically reducing application render-to-on screen time in a desktop environment
KR102507383B1 (ko) * 2016-11-08 2023-03-08 한국전자통신연구원 직사각형 윈도우를 이용한 스테레오 정합 방법 및 스테레오 정합 시스템
US10725777B2 (en) 2016-12-06 2020-07-28 Gsi Technology, Inc. Computational memory cell and processing array device using memory cells
US10847212B1 (en) 2016-12-06 2020-11-24 Gsi Technology, Inc. Read and write data processing circuits and methods associated with computational memory cells using two read multiplexers
US11227653B1 (en) 2016-12-06 2022-01-18 Gsi Technology, Inc. Storage array circuits and methods for computational memory cells
US10777262B1 (en) 2016-12-06 2020-09-15 Gsi Technology, Inc. Read data processing circuits and methods associated memory cells
US10860320B1 (en) 2016-12-06 2020-12-08 Gsi Technology, Inc. Orthogonal data transposition system and method during data transfers to/from a processing array
US10998040B2 (en) 2016-12-06 2021-05-04 Gsi Technology, Inc. Computational memory cell and processing array device using the memory cells for XOR and XNOR computations
US10943648B1 (en) 2016-12-06 2021-03-09 Gsi Technology, Inc. Ultra low VDD memory cell with ratioless write port
US10770133B1 (en) 2016-12-06 2020-09-08 Gsi Technology, Inc. Read and write data processing circuits and methods associated with computational memory cells that provides write inhibits and read bit line pre-charge inhibits
US10854284B1 (en) 2016-12-06 2020-12-01 Gsi Technology, Inc. Computational memory cell and processing array device with ratioless write port
US10891076B1 (en) 2016-12-06 2021-01-12 Gsi Technology, Inc. Results processing circuits and methods associated with computational memory cells
US10847213B1 (en) 2016-12-06 2020-11-24 Gsi Technology, Inc. Write data processing circuits and methods associated with computational memory cells
US10832735B2 (en) * 2017-01-03 2020-11-10 Ayre Acoustics, Inc. System and method for improved transmission of digital data
EP3438936B1 (de) * 2017-08-04 2022-03-30 NXP USA, Inc. Verfahren und vorrichtung zur verwaltung von grafikschichten innerhalb eines datenverarbeitungssystems
CN107770472B (zh) * 2017-10-31 2020-07-28 中国电子科技集团公司第二十九研究所 一种secam制式模拟电视信号数字化解调方法及数字信号图像恢复方法
US10856040B2 (en) * 2017-10-31 2020-12-01 Avago Technologies International Sales Pte. Limited Video rendering system
JP2019109353A (ja) * 2017-12-18 2019-07-04 シャープ株式会社 表示制御装置および該表示制御装置を備えた液晶表示装置
CN108322722B (zh) * 2018-01-24 2020-01-21 阿里巴巴集团控股有限公司 基于增强现实的图像处理方法、装置及电子设备
US11942103B2 (en) * 2018-05-23 2024-03-26 Sony Corporation Transmission apparatus, transmission method, reception apparatus, and reception method for transmitting and receiving an audio signal including a mixed signal simultaneously transmitted by mixing a compressed audio signal and a linear pulse code modulation signal
WO2019239396A1 (en) 2018-06-12 2019-12-19 Kliots Shapira Ela Method and system for automatic real-time frame segmentation of high resolution video streams into constituent features and modifications of features in each frame to simultaneously create multiple different linear views from same video source
EP3598315B1 (de) * 2018-07-19 2022-12-28 STMicroelectronics (Grenoble 2) SAS Direkter speicherzugang
CN109146814B (zh) * 2018-08-20 2021-02-23 Oppo广东移动通信有限公司 图像处理方法、装置、存储介质及电子设备
CN109379628B (zh) * 2018-11-27 2021-02-02 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备及计算机可读介质
US10902825B2 (en) * 2018-12-21 2021-01-26 Arris Enterprises Llc System and method for pre-filtering crawling overlay elements for display with reduced real-time processing demands
CN109756728B (zh) * 2019-01-02 2021-12-07 京东方科技集团股份有限公司 图像显示方法及装置,电子设备,计算机可读存储介质
US20220059109A1 (en) * 2019-02-27 2022-02-24 Sony Group Corporation Transmission apparatus, transmission method, reception apparatus, and reception method
CN109801586B (zh) * 2019-03-26 2021-01-26 京东方科技集团股份有限公司 显示控制器、显示控制方法及系统、显示装置
CN111754387B (zh) * 2019-03-28 2023-08-04 杭州海康威视数字技术股份有限公司 一种图像处理方法及设备
US10958272B2 (en) 2019-06-18 2021-03-23 Gsi Technology, Inc. Computational memory cell and processing array device using complementary exclusive or memory cells
US10930341B1 (en) 2019-06-18 2021-02-23 Gsi Technology, Inc. Processing array device that performs one cycle full adder operation and bit line read/write logic features
US10877731B1 (en) 2019-06-18 2020-12-29 Gsi Technology, Inc. Processing array device that performs one cycle full adder operation and bit line read/write logic features
WO2020259507A1 (en) * 2019-06-24 2020-12-30 Huawei Technologies Co., Ltd. Method for computing position of integer grid reference sample for block level boundary sample gradient computation in bi-predictive optical flow computation and bi-predictive correction
US11488349B2 (en) 2019-06-28 2022-11-01 Ati Technologies Ulc Method and apparatus for alpha blending images from different color formats
US11080055B2 (en) 2019-08-22 2021-08-03 Apple Inc. Register file arbitration
WO2021039189A1 (ja) * 2019-08-30 2021-03-04 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
KR102354918B1 (ko) * 2019-09-05 2022-01-21 라인플러스 주식회사 합성 영상 생성 방법, 사용자 디바이스, 서버 및 기록 매체
US20210081353A1 (en) * 2019-09-17 2021-03-18 Micron Technology, Inc. Accelerator chip connecting a system on a chip and a memory chip
US11270110B2 (en) 2019-09-17 2022-03-08 Boston Polarimetrics, Inc. Systems and methods for surface modeling using polarization cues
US11110349B2 (en) * 2019-10-01 2021-09-07 Sony Interactive Entertainment Inc. Dynamic client buffering and usage of received video frames for cloud gaming
MX2022004163A (es) 2019-10-07 2022-07-19 Boston Polarimetrics Inc Sistemas y metodos para la deteccion de estandares de superficie con polarizacion.
US11430141B2 (en) 2019-11-04 2022-08-30 Facebook Technologies, Llc Artificial reality system using a multisurface display protocol to communicate surface data
US11145107B2 (en) 2019-11-04 2021-10-12 Facebook Technologies, Llc Artificial reality system using superframes to communicate surface data
JP7329143B2 (ja) 2019-11-30 2023-08-17 ボストン ポーラリメトリックス,インコーポレイティド 偏光キューを用いた透明な物体のセグメンテーションのためのシステム及び方法
WO2021154386A1 (en) 2020-01-29 2021-08-05 Boston Polarimetrics, Inc. Systems and methods for characterizing object pose detection and measurement systems
EP4085424A4 (de) 2020-01-30 2024-03-27 Intrinsic Innovation Llc Systeme und verfahren zum synthetisieren von daten für das trainieren von statistischen modellen auf verschiedenen bildgebenden modalitäten, einschliesslich polarisierter bilder
CN111669648B (zh) * 2020-06-19 2022-03-25 艾索信息股份有限公司 一种视频倍频的方法
CN111710300B (zh) * 2020-06-30 2021-11-23 厦门天马微电子有限公司 一种显示面板、驱动方法及显示装置
WO2022014885A1 (en) * 2020-07-17 2022-01-20 Samsung Electronics Co., Ltd. Method and electronic device for determining dynamic resolution for application of electronic device
US11948000B2 (en) * 2020-10-27 2024-04-02 Advanced Micro Devices, Inc. Gang scheduling for low-latency task synchronization
KR20220056404A (ko) * 2020-10-28 2022-05-06 삼성전자주식회사 디스플레이장치 및 그 제어방법
US11290658B1 (en) 2021-04-15 2022-03-29 Boston Polarimetrics, Inc. Systems and methods for camera exposure control
US11546612B2 (en) 2021-06-02 2023-01-03 Western Digital Technologies, Inc. Data storage device and method for application-defined data retrieval in surveillance systems
KR20240018582A (ko) * 2021-06-04 2024-02-13 텍투스 코포레이션 통합 파이프라인이 있는 디스플레이 픽셀
WO2022256553A1 (en) * 2021-06-04 2022-12-08 Tectus Corporation Display pixels with integrated pipeline
US11562460B1 (en) 2021-06-25 2023-01-24 Meta Platforms, Inc. High performance hardware scaler
US11689813B2 (en) 2021-07-01 2023-06-27 Intrinsic Innovation Llc Systems and methods for high dynamic range imaging using crossed polarizers
US11769464B2 (en) * 2021-09-02 2023-09-26 Arm Limited Image processing
US11392163B1 (en) * 2021-09-23 2022-07-19 Apple Inc. On-chip supply ripple tolerant clock distribution
JP2023119512A (ja) * 2022-02-16 2023-08-28 トヨタ自動車株式会社 制御装置、制御方法、制御プログラム、及び車両

Family Cites Families (454)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US582383A (en) * 1897-05-11 And elisha p
US4020332A (en) * 1975-09-24 1977-04-26 Bell Telephone Laboratories, Incorporated Interpolation-decimation circuit for increasing or decreasing digital sampling frequency
US4205341A (en) * 1978-01-24 1980-05-27 Nippon Telegraph And Telephone Public Corporation Picture signal coding apparatus
US4264808A (en) * 1978-10-06 1981-04-28 Ncr Corporation Method and apparatus for electronic image processing of documents for accounting purposes
US4326258A (en) * 1980-01-31 1982-04-20 Ncr Canada Ltd - Ncr Canada Ltee Method and apparatus for reducing the gray scale resolution of a digitized image
JPS5711390A (en) 1980-06-24 1982-01-21 Nintendo Co Ltd Scanning display indication controller
US4412294A (en) * 1981-02-23 1983-10-25 Texas Instruments Incorporated Display system with multiple scrolling regions
US4481594A (en) 1982-01-18 1984-11-06 Honeywell Information Systems Inc. Method and apparatus for filling polygons displayed by a raster graphic system
US4532547A (en) 1982-03-31 1985-07-30 Ampex Corporation Video device synchronization system
US4959718A (en) * 1982-03-31 1990-09-25 Ampex Corporation Video device synchronization system
US4533910A (en) * 1982-11-02 1985-08-06 Cadtrak Corporation Graphics display system with viewports of arbitrary location and content
US4603418A (en) * 1983-07-07 1986-07-29 Motorola, Inc. Multiple access data communications controller for a time-division multiplex bus
IL72685A (en) 1983-08-30 1988-08-31 Gen Electric Advanced video object generator
EP0383367B1 (de) 1983-12-26 1999-03-17 Hitachi, Ltd. Graphisches Musterverarbeitungsgerät und Verfahren
US4679040A (en) 1984-04-30 1987-07-07 The Singer Company Computer-generated image system to display translucent features with anti-aliasing
US4688033A (en) * 1984-10-25 1987-08-18 International Business Machines Corporation Merged data storage panel display
US4710761A (en) * 1985-07-09 1987-12-01 American Telephone And Telegraph Company, At&T Bell Laboratories Window border generation in a bitmapped graphics workstation
US4682225A (en) * 1985-09-13 1987-07-21 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Method and apparatus for telemetry adaptive bandwidth compression
US4751446A (en) 1985-12-06 1988-06-14 Apollo Computer, Inc. Lookup table initialization
US4782462A (en) * 1985-12-30 1988-11-01 Signetics Corporation Raster scan video controller with programmable prioritized sharing of display memory between update and display processes and programmable memory access termination
US4799053A (en) 1986-04-28 1989-01-17 Texas Instruments Incorporated Color palette having multiplexed color look up table loading
US5043714A (en) 1986-06-04 1991-08-27 Apple Computer, Inc. Video display apparatus
JPH0731662B2 (ja) * 1986-07-15 1995-04-10 富士通株式会社 マルチプロセッサシステム
JP2592810B2 (ja) * 1986-09-30 1997-03-19 株式会社東芝 サンプルレート変換回路
US5146592A (en) 1987-09-14 1992-09-08 Visual Information Technologies, Inc. High speed image processing computer with overlapping windows-div
US4785349A (en) * 1987-10-05 1988-11-15 Technology Inc. 64 Digital video decompression system
US4918523A (en) * 1987-10-05 1990-04-17 Intel Corporation Digital video formatting and transmission system and method
US4811115A (en) * 1987-10-16 1989-03-07 Xerox Corporation Image processing apparatus using approximate auto correlation function to detect the frequency of half-tone image data
US5384912A (en) 1987-10-30 1995-01-24 New Microtime Inc. Real time video image processing system
KR900008518Y1 (ko) 1987-12-24 1990-09-22 주식회사 금성사 텍스트 모드 색상 선택 장치
JPH0264875A (ja) * 1988-08-31 1990-03-05 Toshiba Corp カラー画像の高速彩度変換装置
US4954970A (en) 1988-04-08 1990-09-04 Walker James T Video overlay image processing apparatus
US5003299A (en) 1988-05-17 1991-03-26 Apple Computer, Inc. Method for building a color look-up table
US4967392A (en) 1988-07-27 1990-10-30 Alliant Computer Systems Corporation Drawing processor for computer graphic system using a plurality of parallel processors which each handle a group of display screen scanlines
US5065231A (en) 1988-09-26 1991-11-12 Apple Computer, Inc. Apparatus and method for merging input RGB and composite video signals to provide both RGB and composite merged video outputs
US4908780A (en) * 1988-10-14 1990-03-13 Sun Microsystems, Inc. Anti-aliasing raster operations utilizing sub-pixel crossing information to control pixel shading
US5155816A (en) * 1989-02-10 1992-10-13 Intel Corporation Pipelined apparatus and method for controlled loading of floating point data in a microprocessor
US6299550B1 (en) 1989-03-10 2001-10-09 Spalding Sports Worldwide, Inc. Golf ball with multiple shell layers
US5060144A (en) * 1989-03-16 1991-10-22 Unisys Corporation Locking control with validity status indication for a multi-host processor system that utilizes a record lock processor and a cache memory for each host processor
US5038138A (en) * 1989-04-17 1991-08-06 International Business Machines Corporation Display with enhanced scrolling capabilities
JPH033165A (ja) 1989-05-31 1991-01-09 Sony Corp 光ディスク再生装置
US5254981A (en) 1989-09-15 1993-10-19 Copytele, Inc. Electrophoretic display employing gray scale capability utilizing area modulation
US5539891A (en) 1989-10-13 1996-07-23 Texas Instruments Incorporated Data transfer control circuit with a sequencer circuit and control subcircuits and data control method for successively entering data into a memory
US5765010A (en) 1989-10-13 1998-06-09 Texas Instruments Incorporated Timing and control circuit and method for a synchronous vector processor
US5598545A (en) 1989-10-13 1997-01-28 Texas Instruments Incorporated Circuitry and method for performing two operating instructions during a single clock in a processing device
JPH03219291A (ja) * 1989-11-09 1991-09-26 Matsushita Electric Ind Co Ltd 大画面画像表示法
US5594467A (en) * 1989-12-06 1997-01-14 Video Logic Ltd. Computer based display system allowing mixing and windowing of graphics and video
US5097257A (en) 1989-12-26 1992-03-17 Apple Computer, Inc. Apparatus for providing output filtering from a frame buffer storing both video and graphics signals
JP3056514B2 (ja) 1990-08-27 2000-06-26 任天堂株式会社 画像表示装置およびそれに用いる外部記憶装置
US5142273A (en) 1990-09-20 1992-08-25 Ampex Corporation System for generating color blended video signal
JPH04152717A (ja) 1990-10-17 1992-05-26 Hitachi Ltd A/d変換器
EP0557310B1 (de) 1990-11-16 1997-06-04 Siemens Aktiengesellschaft Verfahren zur adaptiven quantisierung zwecks datenreduktion bei der übertragung von digitalen bildern
JPH04185172A (ja) 1990-11-20 1992-07-02 Matsushita Electric Ind Co Ltd ディジタル画像信号の高能率符号化装置
US5402181A (en) 1991-04-01 1995-03-28 Jenison; Timothy P. Method and apparatus utilizing look-up tables for color graphics in the digital composite video domain
JP2707864B2 (ja) 1991-04-18 1998-02-04 松下電器産業株式会社 記録及び再生装置
GB9108389D0 (en) * 1991-04-19 1991-06-05 3 Space Software Ltd Treatment of video images
JPH07101916B2 (ja) 1991-05-14 1995-11-01 富士ゼロックス株式会社 カラー画像編集装置
US5344048A (en) 1991-05-24 1994-09-06 Bonerb Timothy C Flexible bulk container apparatus and discharge method
US6088045A (en) 1991-07-22 2000-07-11 International Business Machines Corporation High definition multimedia display
KR100319768B1 (ko) * 1991-08-13 2002-04-22 마거리트 와그너-달 영상화및그래픽처리시스템내에서의다차원주소발생방법
US5315698A (en) * 1991-08-21 1994-05-24 Digital Equipment Corporation Method and apparatus for varying command length in a computer graphics system
AU2509192A (en) * 1991-08-21 1993-03-16 Digital Equipment Corporation Address method for computer graphics system
US6124865A (en) 1991-08-21 2000-09-26 Digital Equipment Corporation Duplicate cache tag store for computer graphics system
DE69223489T2 (de) 1991-09-09 1998-07-16 Sun Microsystems Inc Einrichtung und Verfahren zur Verwaltung der Zuweisung von Identifizierungswerten von Anzeigeattributen und von mehreren Hardware-Farbtabellen
US5258747A (en) 1991-09-30 1993-11-02 Hitachi, Ltd. Color image displaying system and method thereof
JPH05108043A (ja) 1991-10-16 1993-04-30 Pioneer Video Corp グラフイツクスデコーダ
US5742779A (en) 1991-11-14 1998-04-21 Tolfa Corporation Method of communication using sized icons, text, and audio
US5345541A (en) * 1991-12-20 1994-09-06 Apple Computer, Inc. Method and apparatus for approximating a value between two endpoint values in a three-dimensional image rendering device
US5706415A (en) 1991-12-20 1998-01-06 Apple Computer, Inc. Method and apparatus for distributed interpolation of pixel shading parameter values
GB2263038B (en) 1991-12-30 1996-01-31 Apple Computer Apparatus for manipulating streams of data
US5371877A (en) 1991-12-31 1994-12-06 Apple Computer, Inc. Apparatus for alternatively accessing single port random access memories to implement dual port first-in first-out memory
GB9200281D0 (en) 1992-01-08 1992-02-26 Thomson Consumer Electronics A pip horizontal panning circuit for wide screen television
JPH07120434B2 (ja) * 1992-01-29 1995-12-20 インターナショナル・ビジネス・マシーンズ・コーポレイション ボリュームレンダリングを行う方法及び装置
US5262854A (en) 1992-02-21 1993-11-16 Rca Thomson Licensing Corporation Lower resolution HDTV receivers
US5345313A (en) 1992-02-25 1994-09-06 Imageware Software, Inc Image editing system for taking a background and inserting part of an image therein
JPH05242232A (ja) 1992-02-28 1993-09-21 Hitachi Ltd 情報処理装置及び映像表示装置
US5526024A (en) 1992-03-12 1996-06-11 At&T Corp. Apparatus for synchronization and display of plurality of digital video data streams
JP2892898B2 (ja) * 1992-04-17 1999-05-17 インターナショナル・ビジネス・マシーンズ・コーポレイション ウインドウ管理方法及びラスタ表示ウインドウ管理システム
US5963201A (en) 1992-05-11 1999-10-05 Apple Computer, Inc. Color processing system
US5253059A (en) * 1992-05-15 1993-10-12 Bell Communications Research, Inc. Method and circuit for adjusting the size of a video frame
JPH05336441A (ja) 1992-06-03 1993-12-17 Pioneer Electron Corp 映像合成エフェクト装置
DE4218615C1 (de) 1992-06-05 1993-07-15 Nukem Gmbh, 8755 Alzenau, De
US5243447A (en) 1992-06-19 1993-09-07 Intel Corporation Enhanced single frame buffer display system
US5289276A (en) 1992-06-19 1994-02-22 General Electric Company Method and apparatus for conveying compressed video data over a noisy communication channel
US5640543A (en) 1992-06-19 1997-06-17 Intel Corporation Scalable multimedia platform architecture
US5432900A (en) 1992-06-19 1995-07-11 Intel Corporation Integrated graphics and video computer display system
US5287178A (en) 1992-07-06 1994-02-15 General Electric Company Reset control network for a video signal encoder
JP3032382B2 (ja) 1992-07-13 2000-04-17 シャープ株式会社 デジタル信号のサンプリング周波数変換装置
JP2582999B2 (ja) 1992-07-22 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション カラーパレット発生方法、装置及びデータ処理システム並びにルックアップテーブル入力発生方法
US5319742A (en) 1992-08-04 1994-06-07 International Business Machines Corporation Image enhancement with mask having fuzzy edges
JP2583003B2 (ja) * 1992-09-11 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション グラフィックス表示システムにおけるイメージ表示方法、フレーム・バッファ及びグラフィックス表示システム
US5475628A (en) 1992-09-30 1995-12-12 Analog Devices, Inc. Asynchronous digital sample rate converter
TW371340B (en) 1992-10-09 1999-10-01 Hudson Soft Co Ltd Image processing system
US5404538A (en) * 1992-10-28 1995-04-04 International Business Machines Corporation Method and apparatus for multilevel bus arbitration
WO1994010641A1 (en) 1992-11-02 1994-05-11 The 3Do Company Audio/video computer architecture
US5838389A (en) 1992-11-02 1998-11-17 The 3Do Company Apparatus and method for updating a CLUT during horizontal blanking
IT1258631B (it) 1992-11-02 1996-02-27 Taplast Srl Dispositivo dosatore-erogatore perfezionato per prodotti granulari o in polvere
JP3939366B2 (ja) 1992-12-09 2007-07-04 松下電器産業株式会社 キーボード入力装置
US5600364A (en) 1992-12-09 1997-02-04 Discovery Communications, Inc. Network controller for cable television delivery systems
EP0605945B1 (de) 1992-12-15 1997-12-29 Sun Microsystems, Inc. Darstellung von Informationen in einem Anzeigesystem mit transparenten Fenstern
US5533182A (en) 1992-12-22 1996-07-02 International Business Machines Corporation Aural position indicating mechanism for viewable objects
US5301332A (en) 1992-12-23 1994-04-05 Ncr Corporation Method and apparatus for a dynamic, timed-loop arbitration
EP0833338B1 (de) 1993-01-06 2006-04-05 Sony Corporation Aufzeichnungsmethode für Aufzeichnungsmedium
US5614952A (en) * 1994-10-11 1997-03-25 Hitachi America, Ltd. Digital video decoder for decoding digital high definition and/or digital standard definition television signals
DE69421103T2 (de) * 1993-01-22 2000-06-08 Matsushita Electric Ind Co Ltd Programmgesteuertes Prozessor
US5335074A (en) 1993-02-08 1994-08-02 Panasonic Technologies, Inc. Phase locked loop synchronizer for a resampling system having incompatible input and output sample rates
CA2109681C (en) 1993-03-10 1998-08-25 Donald Edgar Blahut Method and apparatus for the coding and display of overlapping windows with transparency
US5625764A (en) 1993-03-16 1997-04-29 Matsushita Electric Industrial Co., Ltd. Weighted average circuit using digit shifting
US5754186A (en) 1993-05-10 1998-05-19 Apple Computer, Inc. Method and apparatus for blending images
US5638501A (en) 1993-05-10 1997-06-10 Apple Computer, Inc. Method and apparatus for displaying an overlay image
US5877754A (en) 1993-06-16 1999-03-02 Intel Corporation Process, apparatus, and system for color conversion of image signals
JP4018159B2 (ja) 1993-06-28 2007-12-05 株式会社ルネサステクノロジ 半導体集積回路
US5831592A (en) * 1993-07-01 1998-11-03 Intel Corporation Scaling image signals using horizontal pre scaling, vertical scaling, and horizontal scaling
US5583575A (en) 1993-07-08 1996-12-10 Mitsubishi Denki Kabushiki Kaisha Image reproduction apparatus performing interfield or interframe interpolation
US5479606A (en) 1993-07-21 1995-12-26 Pgm Systems, Inc. Data display apparatus for displaying patterns using samples of signal data
US5550594A (en) 1993-07-26 1996-08-27 Pixel Instruments Corp. Apparatus and method for synchronizing asynchronous signals
US5581280A (en) 1993-07-29 1996-12-03 Cirrus Logic, Inc. Video processing apparatus, systems and methods
US5546103A (en) 1993-08-06 1996-08-13 Intel Corporation Method and apparatus for displaying an image in a windowed environment
US5486929A (en) * 1993-09-03 1996-01-23 Apple Computer, Inc. Time division multiplexed video recording and playback system
US5764238A (en) 1993-09-10 1998-06-09 Ati Technologies Inc. Method and apparatus for scaling and blending an image to be displayed
JP3237975B2 (ja) * 1993-09-20 2001-12-10 富士通株式会社 画像処理装置
CA2113600C (en) 1993-09-30 1999-09-14 Sanford S. Lum Video processing unit
US5669013A (en) 1993-10-05 1997-09-16 Fujitsu Limited System for transferring M elements X times and transferring N elements one time for an array that is X*M+N long responsive to vector type instructions
KR0126658B1 (ko) 1993-10-05 1997-12-29 구자홍 비표준 텔레비젼 신호처리를 위한 샘플률 변환장치
US5469223A (en) 1993-10-13 1995-11-21 Auravision Corporation Shared line buffer architecture for a video processing circuit
US5594487A (en) * 1993-10-13 1997-01-14 Kabushiki Kaisha Tec Thermal head supporting device
US5398211A (en) 1993-10-14 1995-03-14 Integrated Device Technology, Inc. Structure and method for providing prioritized arbitration in a dual port memory
US5418535A (en) 1993-10-25 1995-05-23 Cardion, Inc. Mixed radar/graphics indicator
US5452235A (en) * 1993-11-01 1995-09-19 Intel Corp. Planar/packed video data FIFO memory device
US6361526B1 (en) * 1993-11-01 2002-03-26 Medtronic Xomed, Inc. Antimicrobial tympanostomy tube
US5475400A (en) 1993-11-15 1995-12-12 Media Vision Inc. Graphic card with two color look up tables
EP0658871B1 (de) 1993-12-09 2002-07-17 Sun Microsystems, Inc. Verschachtelung von Bildelementdaten für eine Darstellungspeicherschnittstelle
US5487170A (en) * 1993-12-16 1996-01-23 International Business Machines Corporation Data processing system having dynamic priority task scheduling capabilities
US5604514A (en) * 1994-01-03 1997-02-18 International Business Machines Corporation Personal computer with combined graphics/image display system having pixel mode frame buffer interpretation
US5774110A (en) 1994-01-04 1998-06-30 Edelson; Steven D. Filter RAMDAC with hardware 11/2-D zoom function
US6434319B1 (en) 1994-01-19 2002-08-13 Thomson Licensing S.A. Digital video tape recorder for digital HDTV
US5812210A (en) 1994-02-01 1998-09-22 Hitachi, Ltd. Display apparatus
TW268980B (de) 1994-02-02 1996-01-21 Novo Nordisk As
GB2287627B (en) 1994-03-01 1998-07-15 Vtech Electronics Ltd Graphic video display system including graphic layers with sizable,positionable windows and programmable priority
US5488385A (en) 1994-03-03 1996-01-30 Trident Microsystems, Inc. Multiple concurrent display system
US5570296A (en) 1994-03-30 1996-10-29 Apple Computer, Inc. System and method for synchronized presentation of video and audio signals
EP0952735B2 (de) * 1994-04-08 2007-12-26 United Video Properties, Inc. Interaktive abrollbare Progammanzeige
US5808627A (en) 1994-04-22 1998-09-15 Apple Computer, Inc. Method and apparatus for increasing the speed of rendering of objects in a display system
EP1174792A3 (de) * 1994-05-16 2007-07-25 Apple Computer, Inc. Eine graphische Benutzerschnittstelle und Verfahren
AU2594595A (en) * 1994-05-16 1995-12-05 Apple Computer, Inc. Pattern and color abstraction in a graphical user interface
US5577187A (en) * 1994-05-20 1996-11-19 Microsoft Corporation Method and system for tiling windows based on previous position and size
US5664162A (en) 1994-05-23 1997-09-02 Cirrus Logic, Inc. Graphics accelerator with dual memory controllers
US5706478A (en) 1994-05-23 1998-01-06 Cirrus Logic, Inc. Display list processor for operating in processor and coprocessor modes
US5638499A (en) 1994-05-27 1997-06-10 O'connor; Michael Image composition method and apparatus for developing, storing and reproducing image data using absorption, reflection and transmission properties of images to be combined
US5694143A (en) 1994-06-02 1997-12-02 Accelerix Limited Single chip frame buffer and graphics accelerator
US5621869A (en) * 1994-06-29 1997-04-15 Drews; Michael D. Multiple level computer graphics system with display level blending
DE4423224C2 (de) 1994-07-01 1998-02-26 Harris Corp Videosignal-Dekoder und Verfahren zur Dekodierung von Videosignalen
DE4423214C2 (de) 1994-07-01 1998-02-12 Harris Corp Multinorm-Dekoder für Videosignale und Verfahren zum Dekodieren von Videosignalen
JP3076201B2 (ja) 1994-07-28 2000-08-14 日本電気株式会社 画像データ伸張方式
US5615376A (en) 1994-08-03 1997-03-25 Neomagic Corp. Clock management for power reduction in a video display sub-system
US5574572A (en) 1994-09-07 1996-11-12 Harris Corporation Video scaling method and device
US5831615A (en) * 1994-09-30 1998-11-03 Intel Corporation Method and apparatus for redrawing transparent windows
US5610983A (en) 1994-09-30 1997-03-11 Thomson Consumer Electronics, Inc. Apparatus for detecting a synchronization component in a satellite transmission system receiver
US5920842A (en) 1994-10-12 1999-07-06 Pixel Instruments Signal synchronization
US5600379A (en) 1994-10-13 1997-02-04 Yves C. Faroudia Television digital signal processing apparatus employing time-base correction
US5815137A (en) 1994-10-19 1998-09-29 Sun Microsystems, Inc. High speed display system having cursor multiplexing scheme
US6301299B1 (en) 1994-10-28 2001-10-09 Matsushita Electric Industrial Co., Ltd. Memory controller for an ATSC video decoder
US5623311A (en) 1994-10-28 1997-04-22 Matsushita Electric Corporation Of America MPEG video decoder having a high bandwidth memory
US6067098A (en) * 1994-11-16 2000-05-23 Interactive Silicon, Inc. Video/graphics controller which performs pointer-based display list video refresh operation
US6002411A (en) 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
US5838334A (en) 1994-11-16 1998-11-17 Dye; Thomas A. Memory and graphics controller which performs pointer-based display list video refresh operations
US5696527A (en) 1994-12-12 1997-12-09 Aurvision Corporation Multimedia overlay system for graphics and video
US5737455A (en) 1994-12-12 1998-04-07 Xerox Corporation Antialiasing with grey masking techniques
JP3818662B2 (ja) 1994-12-23 2006-09-06 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 単一のフレームバッファを有する画像処理システム
US5598525A (en) 1995-01-23 1997-01-28 Cirrus Logic, Inc. Apparatus, systems and methods for controlling graphics and video data in multimedia data processing and display systems
US5619337A (en) 1995-01-27 1997-04-08 Matsushita Electric Corporation Of America MPEG transport encoding/decoding system for recording transport streams
JP3716441B2 (ja) 1995-02-09 2005-11-16 ヤマハ株式会社 画像デコーダ
US5621906A (en) 1995-02-13 1997-04-15 The Trustees Of Columbia University In The City Of New York Perspective-based interface using an extended masthead
US5659631A (en) * 1995-02-21 1997-08-19 Ricoh Company, Ltd. Data compression for indexed color image data
US5649173A (en) 1995-03-06 1997-07-15 Seiko Epson Corporation Hardware architecture for image generation and manipulation
US5610942A (en) * 1995-03-07 1997-03-11 Chen; Keping Digital signal transcoder and method of transcoding a digital signal
US5764243A (en) 1995-03-24 1998-06-09 3Dlabs Inc. Ltd. Rendering architecture with selectable processing of multi-pixel spans
US5727192A (en) 1995-03-24 1998-03-10 3Dlabs Inc. Ltd. Serial rendering system with auto-synchronization on frame blanking
US5777629A (en) 1995-03-24 1998-07-07 3Dlabs Inc. Ltd. Graphics subsystem with smart direct-memory-access operation
JPH08287288A (ja) 1995-03-24 1996-11-01 Internatl Business Mach Corp <Ibm> 対話式三次元グラフィックスにおける複数側面アノテーション及びホットリンク
US5742796A (en) 1995-03-24 1998-04-21 3Dlabs Inc. Ltd. Graphics system with color space double buffering
US5594854A (en) 1995-03-24 1997-01-14 3Dlabs Inc. Ltd. Graphics subsystem with coarse subpixel correction
US5526054A (en) 1995-03-27 1996-06-11 International Business Machines Corporation Apparatus for header generation
WO1996031844A1 (fr) 1995-04-05 1996-10-10 Hitachi, Ltd. Systeme graphique
US5825360A (en) * 1995-04-07 1998-10-20 Apple Computer, Inc. Method for arranging windows in a computer workspace
US5831637A (en) 1995-05-01 1998-11-03 Intergraph Corporation Video stream data mixing for 3D graphics systems
US5787264A (en) * 1995-05-08 1998-07-28 Apple Computer, Inc. Method and apparatus for arbitrating access to a shared bus
JPH08331472A (ja) 1995-05-24 1996-12-13 Internatl Business Mach Corp <Ibm> 共有フレーム・バッファを含むマルチメディア表示装置においてビデオ・データとグラフィック・データの同期をとる方法及び装置
US5751979A (en) 1995-05-31 1998-05-12 Unisys Corporation Video hardware for protected, multiprocessing systems
US5982459A (en) 1995-05-31 1999-11-09 8×8, Inc. Integrated multimedia communications processor and codec
JPH08328941A (ja) 1995-05-31 1996-12-13 Nec Corp メモリアクセス制御回路
JPH08328599A (ja) 1995-06-01 1996-12-13 Mitsubishi Electric Corp Mpegオーディオ復号器
JP3355596B2 (ja) 1995-06-06 2002-12-09 インターナショナル・ビジネス・マシーンズ・コーポレーション グラフィックス装置および表示方法
US5557759A (en) 1995-06-07 1996-09-17 International Business Machines Corporation Video processor with non-stalling interrupt service
US5870622A (en) 1995-06-07 1999-02-09 Advanced Micro Devices, Inc. Computer system and method for transferring commands and data to a dedicated multimedia engine
US5748983A (en) 1995-06-07 1998-05-05 Advanced Micro Devices, Inc. Computer system having a dedicated multimedia engine and multimedia memory having arbitration logic which grants main memory access to either the CPU or multimedia engine
FR2735253B1 (fr) 1995-06-08 1999-10-22 Hewlett Packard Co Synchronisation de donnees entre plusieurs dispositifs de restitution asynchrones de donnees
US5757377A (en) 1995-06-16 1998-05-26 Hewlett-Packard Company Expediting blending and interpolation via multiplication
JP2914226B2 (ja) * 1995-06-16 1999-06-28 日本電気株式会社 可逆変換を可能にするディジタル信号の変換符号化方式
US5959637A (en) 1995-06-23 1999-09-28 Cirrus Logic, Inc. Method and apparatus for executing a raster operation in a graphics controller circuit
US5828383A (en) 1995-06-23 1998-10-27 S3 Incorporated Controller for processing different pixel data types stored in the same display memory by use of tag bits
US5727084A (en) 1995-06-27 1998-03-10 Motorola, Inc. Method and system for compressing a pixel map signal using block overlap
US5673321A (en) 1995-06-29 1997-09-30 Hewlett-Packard Company Efficient selection and mixing of multiple sub-word items packed into two or more computer words
US5920572A (en) 1995-06-30 1999-07-06 Divicom Inc. Transport stream decoder/demultiplexer for hierarchically organized audio-video streams
US5896140A (en) 1995-07-05 1999-04-20 Sun Microsystems, Inc. Method and apparatus for simultaneously displaying graphics and video data on a computer display
US5748178A (en) 1995-07-18 1998-05-05 Sybase, Inc. Digital video system and methods for efficient rendering of superimposed vector graphics
DE69610548T2 (de) * 1995-07-21 2001-06-07 Koninkl Philips Electronics Nv Multi-media-prozessorarchitektur mit hoher leistungsdichte
US6702736B2 (en) * 1995-07-24 2004-03-09 David T. Chen Anatomical visualization system
US5673401A (en) 1995-07-31 1997-09-30 Microsoft Corporation Systems and methods for a customizable sprite-based graphical user interface
US5867166A (en) 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
US6008820A (en) * 1995-08-04 1999-12-28 Microsoft Corporation Processor for controlling the display of rendered image layers and method for controlling same
US5870097A (en) 1995-08-04 1999-02-09 Microsoft Corporation Method and system for improving shadowing in a graphics rendering system
DE19530483A1 (de) 1995-08-18 1997-02-20 Siemens Ag Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks
US5838296A (en) 1995-08-31 1998-11-17 General Instrument Corporation Apparatus for changing the magnification of video graphics prior to display therefor on a TV screen
US5812144A (en) * 1995-09-08 1998-09-22 International Business Machines Corporation System for performing real-time video resizing in a data processing system having multimedia capability
US5758177A (en) * 1995-09-11 1998-05-26 Advanced Microsystems, Inc. Computer system having separate digital and analog system chips for improved performance
US5692211A (en) 1995-09-11 1997-11-25 Advanced Micro Devices, Inc. Computer system and method having a dedicated multimedia engine and including separate command and data paths
JP2770801B2 (ja) * 1995-09-27 1998-07-02 日本電気株式会社 映像表示システム
JP2861890B2 (ja) 1995-09-28 1999-02-24 日本電気株式会社 カラー画像表示装置
EP0847199B1 (de) * 1995-09-29 1999-04-28 Matsushita Electric Industrial Co., Ltd. Verfahren, vorrichtung und speicherplatte zur kodierung einer nahtlosen verbindung für in fernsehfilm übersetzte videodaten
US5638533A (en) * 1995-10-12 1997-06-10 Lsi Logic Corporation Method and apparatus for providing data to a parallel processing array
US5940089A (en) * 1995-11-13 1999-08-17 Ati Technologies Method and apparatus for displaying multiple windows on a display monitor
US5835941A (en) 1995-11-17 1998-11-10 Micron Technology Inc. Internally cached static random access memory architecture
US5754807A (en) 1995-11-20 1998-05-19 Advanced Micro Devices, Inc. Computer system including a multimedia bus which utilizes a separate local expansion bus for addressing and control cycles
US5682484A (en) 1995-11-20 1997-10-28 Advanced Micro Devices, Inc. System and method for transferring data streams simultaneously on multiple buses in a computer system
US6331856B1 (en) * 1995-11-22 2001-12-18 Nintendo Co., Ltd. Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
US6169843B1 (en) 1995-12-01 2001-01-02 Harmonic, Inc. Recording and playback of audio-video transport streams
EP0867016A1 (de) 1995-12-06 1998-09-30 Intergraph Corporation Grafikbschleuniger zur gleichrangigen parallelen verarbeitung
US5745095A (en) 1995-12-13 1998-04-28 Microsoft Corporation Compositing digital information on a display screen based on screen descriptor
KR100194802B1 (ko) 1995-12-19 1999-06-15 이계철 디지탈 티비 및 고선명 티비의 분할 화면 영상 처리를위한엠펙2인코더전처리장치
US5977933A (en) 1996-01-11 1999-11-02 S3, Incorporated Dual image computer display controller
JPH09212146A (ja) 1996-02-06 1997-08-15 Sony Computer Entertainment:Kk アドレス発生装置及び画像表示装置
US5754185A (en) 1996-02-08 1998-05-19 Industrial Technology Research Institute Apparatus for blending pixels of a source object and destination plane
JPH09224265A (ja) * 1996-02-14 1997-08-26 Shinmei Denki Kk 立体視画像記録方法並びに装置
US5914725A (en) 1996-03-07 1999-06-22 Powertv, Inc. Interpolation of pixel values and alpha values in a computer graphics display device
US5903281A (en) 1996-03-07 1999-05-11 Powertv, Inc. List controlled video operations
US6023302A (en) 1996-03-07 2000-02-08 Powertv, Inc. Blending of video images in a home communications terminal
JP3183155B2 (ja) 1996-03-18 2001-07-03 株式会社日立製作所 画像復号化装置、及び、画像復号化方法
US6005546A (en) 1996-03-21 1999-12-21 S3 Incorporated Hardware assist for YUV data format conversion to software MPEG decoder
US5727455A (en) * 1996-04-01 1998-03-17 Yerman; Arthur J. Automatic syringe destruction system and process
US5903277A (en) * 1996-04-09 1999-05-11 Truespectra Inc. Method of rendering an image
US5961603A (en) 1996-04-10 1999-10-05 Worldgate Communications, Inc. Access system and method for providing interactive access to an information source through a networked distribution system
US5726415A (en) * 1996-04-16 1998-03-10 The Lincoln Electric Company Gas cooled plasma torch
US5850232A (en) * 1996-04-25 1998-12-15 Microsoft Corporation Method and system for flipping images in a window using overlays
JP3876392B2 (ja) 1996-04-26 2007-01-31 富士通株式会社 動きベクトル探索方法
US6006286A (en) 1996-04-26 1999-12-21 Texas Instruments Incorporated System for controlling data packet transfers by associating plurality of data packet transfer control instructions in packet control list including plurality of related logical functions
US5802330A (en) * 1996-05-01 1998-09-01 Advanced Micro Devices, Inc. Computer system including a plurality of real time peripheral devices having arbitration control feedback mechanisms
US5761516A (en) 1996-05-03 1998-06-02 Lsi Logic Corporation Single chip multiprocessor architecture with internal task switching synchronization bus
US5802579A (en) 1996-05-16 1998-09-01 Hughes Electronics Corporation System and method for simultaneously reading and writing data in a random access memory
KR970078629A (ko) 1996-05-28 1997-12-12 이형도 다채널 동시검색기능을 구비한 디지탈위성영상수신기
US5864345A (en) * 1996-05-28 1999-01-26 Intel Corporation Table-based color conversion to different RGB16 formats
US5793385A (en) * 1996-06-12 1998-08-11 Chips And Technologies, Inc. Address translator for a shared memory computing system
US5903261A (en) 1996-06-20 1999-05-11 Data Translation, Inc. Computer based video system
US5701365A (en) 1996-06-21 1997-12-23 Xerox Corporation Subpixel character positioning with antialiasing with grey masking techniques
US5821949A (en) * 1996-07-01 1998-10-13 Sun Microsystems, Inc. Three-dimensional graphics accelerator with direct data channels for improved performance
US5790795A (en) 1996-07-01 1998-08-04 Sun Microsystems, Inc. Media server system which employs a SCSI bus and which utilizes SCSI logical units to differentiate between transfer modes
JPH1040063A (ja) 1996-07-26 1998-02-13 Canon Inc 画像情報処理方法とその装置
US5883670A (en) 1996-08-02 1999-03-16 Avid Technology, Inc. Motion video processing circuit for capture playback and manipulation of digital motion video information on a computer
US5818533A (en) 1996-08-08 1998-10-06 Lsi Logic Corporation Method and apparatus for decoding B frames in video codecs with minimal memory
US5949439A (en) * 1996-08-15 1999-09-07 Chromatic Research, Inc. Computing apparatus and operating method using software queues to improve graphics performance
US6233634B1 (en) 1996-08-17 2001-05-15 Compaq Computer Corporation Server controller configured to snoop and receive a duplicative copy of display data presented to a video controller
KR100280285B1 (ko) * 1996-08-19 2001-02-01 윤종용 멀티미디어 신호에 적합한 멀티미디어 프로세서
US5960464A (en) 1996-08-23 1999-09-28 Stmicroelectronics, Inc. Memory sharing architecture for a decoding in a computer system
JP3472667B2 (ja) * 1996-08-30 2003-12-02 株式会社日立製作所 ビデオデータ処理装置およびビデオデータ表示装置
US6256348B1 (en) 1996-08-30 2001-07-03 Texas Instruments Incorporated Reduced memory MPEG video decoder circuits and methods
JPH1174868A (ja) * 1996-09-02 1999-03-16 Toshiba Corp 情報伝送方法およびその方法が適用される情報伝送システムにおける符号化装置/復号化装置、並びに符号化・多重化装置/復号化・逆多重化装置
JP3268980B2 (ja) 1996-09-02 2002-03-25 インターナショナル・ビジネス・マシーンズ・コーポレーション データ・バッファリング・システム
GB2317292B (en) * 1996-09-12 2000-04-19 Discreet Logic Inc Processing image data
US5940080A (en) * 1996-09-12 1999-08-17 Macromedia, Inc. Method and apparatus for displaying anti-aliased text
US6226794B1 (en) 1996-09-17 2001-05-01 Sarnoff Corporation Set top terminal for an interactive information distribution system
US5986718A (en) * 1996-09-19 1999-11-16 Video Magic, Inc. Photographic method using chroma-key and a photobooth employing the same
US5920682A (en) 1996-09-20 1999-07-06 Seiko Epson Corporation Multiple layer cluster dither matrix for reducing artifacts in printed images
KR100218318B1 (ko) * 1996-10-01 1999-09-01 문정환 주파수 변환장치
US5923385A (en) 1996-10-11 1999-07-13 C-Cube Microsystems Inc. Processing system with single-buffered display capture
US6088355A (en) 1996-10-11 2000-07-11 C-Cube Microsystems, Inc. Processing system with pointer-based ATM segmentation and reassembly
US5889949A (en) 1996-10-11 1999-03-30 C-Cube Microsystems Processing system with memory arbitrating between memory access requests in a set top box
US6311204B1 (en) 1996-10-11 2001-10-30 C-Cube Semiconductor Ii Inc. Processing system with register-based process sharing
US5926647A (en) 1996-10-11 1999-07-20 Divicom Inc. Processing system with dynamic alteration of a color look-up table
US5953691A (en) 1996-10-11 1999-09-14 Divicom, Inc. Processing system with graphics data prescaling
US5790842A (en) 1996-10-11 1998-08-04 Divicom, Inc. Processing system with simultaneous utilization of multiple clock signals
US5923316A (en) 1996-10-15 1999-07-13 Ati Technologies Incorporated Optimized color space conversion
US5978509A (en) 1996-10-23 1999-11-02 Texas Instruments Incorporated Low power video decoder system with block-based motion compensation
US5896136A (en) 1996-10-30 1999-04-20 Hewlett Packard Company Computer graphics system with improved blending
KR19980042025A (ko) 1996-11-01 1998-08-17 윌리엄비.켐플러 실시간 윈도우 어드레스 계산을 이용한 온 스크린 디스플레이시스템
US6369855B1 (en) 1996-11-01 2002-04-09 Texas Instruments Incorporated Audio and video decoder circuit and system
KR19980042024A (ko) 1996-11-01 1998-08-17 윌리엄비.켐플러 디지털 텔레비젼을 위한 그래픽 osd 및 모션 비디오 화상을멀티플렉스하고 블랜드하기 위한 시스템
KR19980042031A (ko) 1996-11-01 1998-08-17 윌리엄 비. 켐플러 가변 해상도 스크린 디스플레이 시스템
JP3037161B2 (ja) 1996-11-08 2000-04-24 日本電気アイシーマイコンシステム株式会社 図形画像表示装置及び図形画像表示方法
US6141373A (en) * 1996-11-15 2000-10-31 Omnipoint Corporation Preamble code structure and detection method and apparatus
ES2249796T3 (es) 1996-12-06 2006-04-01 Koninklijke Philips Electronics N.V. Mezclador de una señal grafica y una señal de video.
US5844608A (en) 1996-12-12 1998-12-01 Thomson Consumer Electronics, Inc. Picture element processor for a memory management system
US5887166A (en) * 1996-12-16 1999-03-23 International Business Machines Corporation Method and system for constructing a program including a navigation instruction
US6018803A (en) 1996-12-17 2000-01-25 Intel Corporation Method and apparatus for detecting bus utilization in a computer system based on a number of bus events per sample period
JP3742167B2 (ja) * 1996-12-18 2006-02-01 株式会社東芝 画像表示制御装置
US6373497B1 (en) 1999-05-14 2002-04-16 Zight Corporation Time sequential lookup table arrangement for a display
US6124878A (en) 1996-12-20 2000-09-26 Time Warner Cable, A Division Of Time Warner Enterainment Company, L.P. Optimum bandwidth utilization in a shared cable system data channel
US5982425A (en) 1996-12-23 1999-11-09 Intel Corporation Method and apparatus for draining video data from a planarized video buffer
US5951644A (en) 1996-12-24 1999-09-14 Apple Computer, Inc. System for predicting and managing network performance by managing and monitoring resourse utilization and connection of network
WO1998029834A1 (en) 1996-12-30 1998-07-09 Sharp Kabushiki Kaisha Sprite-based video coding system
JPH10207446A (ja) * 1997-01-23 1998-08-07 Sharp Corp プログラマブル表示装置
US5961628A (en) * 1997-01-28 1999-10-05 Samsung Electronics Co., Ltd. Load and store unit for a vector processor
KR100232164B1 (ko) 1997-02-05 1999-12-01 구자홍 트랜스포트 스트림의 다중.분리장치
US6046740A (en) 1997-02-07 2000-04-04 Seque Software, Inc. Application testing with virtual object recognition
US6108342A (en) 1997-02-14 2000-08-22 Advanced Micro Devices, Inc. Management information base (MIB) accumulation processor
US6208693B1 (en) * 1997-02-14 2001-03-27 At&T Corp Chroma-key for efficient and low complexity shape representation of coded arbitrary video objects
US5790199A (en) * 1997-03-06 1998-08-04 International Business Machines Corporation Method and apparatus to accommodate partial picture input to an MPEG-compliant encoder
US5929872A (en) 1997-03-21 1999-07-27 Alliance Semiconductor Corporation Method and apparatus for multiple compositing of source data in a graphics display processor
JPH10269706A (ja) * 1997-03-27 1998-10-09 Sony Corp 情報再生装置及び情報再生方法
US5982436A (en) 1997-03-28 1999-11-09 Philips Electronics North America Corp. Method for seamless splicing in a video encoder
US6357045B1 (en) 1997-03-31 2002-03-12 Matsushita Electric Industrial Co., Ltd. Apparatus and method for generating a time-multiplexed channel surfing signal at television head-end sites
US6077084A (en) 1997-04-01 2000-06-20 Daiichi Kosho, Co., Ltd. Karaoke system and contents storage medium therefor
US6100826A (en) 1997-04-04 2000-08-08 Samsung Electronics Co., Ltd. Symbol decoding method and apparatus
US5909559A (en) 1997-04-04 1999-06-01 Texas Instruments Incorporated Bus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data width
US6134378A (en) 1997-04-06 2000-10-17 Sony Corporation Video signal processing device that facilitates editing by producing control information from detected video signal information
US5996051A (en) 1997-04-14 1999-11-30 Advanced Micro Devices, Inc. Communication system which in a first mode supports concurrent memory acceses of a partitioned memory array and in a second mode supports non-concurrent memory accesses to the entire memory array
US5941968A (en) 1997-04-14 1999-08-24 Advanced Micro Devices, Inc. Computer system for concurrent data transferring between graphic controller and unified system memory and between CPU and expansion bus device
US5920495A (en) * 1997-05-14 1999-07-06 Cirrus Logic, Inc. Programmable four-tap texture filter
US5959626A (en) * 1997-05-22 1999-09-28 International Business Machines Corporation Method and apparatus for manipulating very long lists of data displayed in a graphical user interface using a layered list mechanism
US6032232A (en) * 1997-05-29 2000-02-29 3Com Corporation Multiported memory access system with arbitration and a source burst limiter for blocking a memory access request
US6496228B1 (en) 1997-06-02 2002-12-17 Koninklijke Philips Electronics N.V. Significant scene detection and frame filtering for a visual indexing system using dynamic thresholds
US5937199A (en) * 1997-06-03 1999-08-10 International Business Machines Corporation User programmable interrupt mask with timeout for enhanced resource locking efficiency
US5875342A (en) * 1997-06-03 1999-02-23 International Business Machines Corporation User programmable interrupt mask with timeout
US6067322A (en) 1997-06-04 2000-05-23 Microsoft Corporation Half pixel motion estimation in motion video signal encoding
US6236727B1 (en) 1997-06-24 2001-05-22 International Business Machines Corporation Apparatus, method and computer program product for protecting copyright data within a computer system
US5854761A (en) 1997-06-26 1998-12-29 Sun Microsystems, Inc. Cache memory array which stores two-way set associative data
US5963262A (en) 1997-06-30 1999-10-05 Cirrus Logic, Inc. System and method for scaling images and reducing flicker in interlaced television images converted from non-interlaced computer graphics data
US5982381A (en) 1997-07-03 1999-11-09 Microsoft Corporation Method and apparatus for modifying a cutout image for compositing
JP3607463B2 (ja) * 1997-07-04 2005-01-05 株式会社リコー 出力回路
US6266753B1 (en) 1997-07-10 2001-07-24 Cirrus Logic, Inc. Memory manager for multi-media apparatus and method therefor
US6057850A (en) * 1997-07-15 2000-05-02 Silicon Graphics, Inc. Blended texture illumination mapping
US6038031A (en) 1997-07-28 2000-03-14 3Dlabs, Ltd 3D graphics object copying with reduced edge artifacts
DE19733527A1 (de) * 1997-08-02 1999-02-04 Philips Patentverwaltung Kommunikationssystem mit einer DMA-Einheit
US5907295A (en) 1997-08-04 1999-05-25 Neomagic Corp. Audio sample-rate conversion using a linear-interpolation stage with a multi-tap low-pass filter requiring reduced coefficient storage
KR100249229B1 (ko) 1997-08-13 2000-03-15 구자홍 에이치디티브이의 다운 컨버젼 디코딩 장치
JPH1165989A (ja) * 1997-08-22 1999-03-09 Sony Computer Entertainment:Kk 情報処理装置
US6006303A (en) 1997-08-28 1999-12-21 Oki Electric Industry Co., Inc. Priority encoding and decoding for memory architecture
US5936677A (en) * 1997-09-12 1999-08-10 Microsoft Corporation Microbuffer used in synchronization of image data
US5982305A (en) 1997-09-17 1999-11-09 Microsoft Corporation Sample rate converter
US6549577B2 (en) 1997-09-26 2003-04-15 Sarnoff Corporation Computational resource allocation in an information stream decoder
US6115422A (en) 1997-09-26 2000-09-05 International Business Machines Corporation Protocol and procedure for time base change in an MPEG-2 compliant datastream
US6275507B1 (en) 1997-09-26 2001-08-14 International Business Machines Corporation Transport demultiplexor for an MPEG-2 compliant data stream
US6151074A (en) * 1997-09-30 2000-11-21 Texas Instruments Incorporated Integrated MPEG decoder and image resizer for SLM-based digital display system
US6353460B1 (en) 1997-09-30 2002-03-05 Matsushita Electric Industrial Co., Ltd. Television receiver, video signal processing device, image processing device and image processing method
GB2329984B (en) 1997-10-01 2002-07-17 Thomson Training & Simulation A Multi-Processor Computer System
US6088046A (en) 1997-10-02 2000-07-11 Cirrus Logic, Inc. Host DMA through subsystem XY processing
US6167498A (en) 1997-10-02 2000-12-26 Cirrus Logic, Inc. Circuits systems and methods for managing data requests between memory subsystems operating in response to multiple address formats
US6100899A (en) 1997-10-02 2000-08-08 Silicon Graphics, Inc. System and method for performing high-precision, multi-channel blending using multiple blending passes
RU2000111530A (ru) 1997-10-02 2002-05-27 Каналь+Сосьетэ Аноним Способ и устройство для шифрованной трансляции потока данных
US6057084A (en) * 1997-10-03 2000-05-02 Fusion Systems Corporation Controlled amine poisoning for reduced shrinkage of features formed in photoresist
US6281873B1 (en) * 1997-10-09 2001-08-28 Fairchild Semiconductor Corporation Video line rate vertical scaler
US6204859B1 (en) 1997-10-15 2001-03-20 Digital Equipment Corporation Method and apparatus for compositing colors of images with memory constraints for storing pixel data
KR100222994B1 (ko) * 1997-10-23 1999-10-01 윤종용 디지털 방송 수신기의 아날로그 방송 수신방법 및 장치
US5963222A (en) 1997-10-27 1999-10-05 International Business Machines Corporation Multi-format reduced memory MPEG decoder with hybrid memory address generation
US6108047A (en) * 1997-10-28 2000-08-22 Stream Machine Company Variable-size spatial and temporal video scaler
US6002882A (en) 1997-11-03 1999-12-14 Analog Devices, Inc. Bidirectional communication port for digital signal processor
US6208350B1 (en) * 1997-11-04 2001-03-27 Philips Electronics North America Corporation Methods and apparatus for processing DVD video
US6061094A (en) 1997-11-12 2000-05-09 U.S. Philips Corporation Method and apparatus for scaling and reducing flicker with dynamic coefficient weighting
US6046676A (en) 1997-11-14 2000-04-04 International Business Machines Corporation Self powered electronic memory identification tag with dual communication ports
US5943064A (en) 1997-11-15 1999-08-24 Trident Microsystems, Inc. Apparatus for processing multiple types of graphics data for display
US6148033A (en) * 1997-11-20 2000-11-14 Hitachi America, Ltd. Methods and apparatus for improving picture quality in reduced resolution video decoders
US6339434B1 (en) * 1997-11-24 2002-01-15 Pixelworks Image scaling circuit for fixed pixed resolution display
KR100232144B1 (ko) 1997-11-28 1999-12-01 구자홍 디지탈 티브이의 룩업 테이블 처리장치 및 그 방법
US6070231A (en) * 1997-12-02 2000-05-30 Intel Corporation Method and apparatus for processing memory requests that require coherency transactions
DE19753952C2 (de) * 1997-12-05 2003-06-26 Stahlwerk Ergste Westig Gmbh Sägeband oder -blatt
US6320619B1 (en) 1997-12-11 2001-11-20 Intel Corporation Flicker filter circuit
US6466210B1 (en) * 1997-12-22 2002-10-15 Adobe Systems Incorporated Blending image data using layers
JP3681528B2 (ja) 1997-12-22 2005-08-10 株式会社ルネサステクノロジ グラフィックプロセッサ及びデータ処理システム
US6212590B1 (en) 1997-12-22 2001-04-03 Compaq Computer Corporation Computer system having integrated bus bridge design with delayed transaction arbitration mechanism employed within laptop computer docked to expansion base
US5987555A (en) 1997-12-22 1999-11-16 Compaq Computer Corporation Dynamic delayed transaction discard counter in a bus bridge of a computer system
US6199131B1 (en) 1997-12-22 2001-03-06 Compaq Computer Corporation Computer system employing optimized delayed transaction arbitration technique
US6199127B1 (en) * 1997-12-24 2001-03-06 Intel Corporation Method and apparatus for throttling high priority memory accesses
US6356569B1 (en) * 1997-12-31 2002-03-12 At&T Corp Digital channelizer with arbitrary output sampling frequency
US6121978A (en) 1998-01-07 2000-09-19 Ati Technologies, Inc. Method and apparatus for graphics scaling
US6088027A (en) 1998-01-08 2000-07-11 Macromedia, Inc. Method and apparatus for screen object manipulation
US6111896A (en) 1998-01-14 2000-08-29 Skystream Corporation Remultiplexer for video program bearing transport streams with program clock reference time stamp adjustment
US6351474B1 (en) 1998-01-14 2002-02-26 Skystream Networks Inc. Network distributed remultiplexer for video program bearing transport streams
US6064676A (en) 1998-01-14 2000-05-16 Skystream Corporation Remultipelxer cache architecture and memory organization for storing video program bearing transport packets and descriptors
US6351471B1 (en) 1998-01-14 2002-02-26 Skystream Networks Inc. Brandwidth optimization of video program bearing transport streams
US6028583A (en) 1998-01-16 2000-02-22 Adobe Systems, Inc. Compound layers for composited image manipulation
US6208671B1 (en) 1998-01-20 2001-03-27 Cirrus Logic, Inc. Asynchronous sample rate converter
US6326963B1 (en) 1998-01-22 2001-12-04 Nintendo Co., Ltd. Method and apparatus for efficient animation and collision detection using local coordinate systems
JPH11215647A (ja) * 1998-01-28 1999-08-06 Furukawa Electric Co Ltd:The 電気接続箱
US6199149B1 (en) * 1998-01-30 2001-03-06 Intel Corporation Overlay counter for accelerated graphics port
US5973955A (en) 1998-02-02 1999-10-26 Motorola, Inc. Comparison circuit utilizing a differential amplifier
JPH11225292A (ja) 1998-02-04 1999-08-17 Sony Corp デジタル放送受信装置および受信方法
US6496186B1 (en) 1998-02-17 2002-12-17 Sun Microsystems, Inc. Graphics system having a super-sampled sample buffer with generation of output pixels using selective adjustment of filtering for reduced artifacts
WO1999041706A1 (en) * 1998-02-17 1999-08-19 Sun Microsystems, Inc. Graphics system with variable resolution super-sampling
US6178486B1 (en) 1998-02-19 2001-01-23 Quantum Corporation Time allocation shared memory arbitration for disk drive controller
JP3684525B2 (ja) 1998-02-19 2005-08-17 富士通株式会社 多画面合成方法及び多画面合成装置
US6081854A (en) * 1998-03-26 2000-06-27 Nvidia Corporation System for providing fast transfers to input/output device by assuring commands from only one application program reside in FIFO
US6313822B1 (en) 1998-03-27 2001-11-06 Sony Corporation Method and apparatus for modifying screen resolution based on available memory
US6023738A (en) * 1998-03-30 2000-02-08 Nvidia Corporation Method and apparatus for accelerating the transfer of graphical images
US6133901A (en) 1998-03-31 2000-10-17 Silicon Graphics, Inc. Method and system for width independent antialiasing
US6374244B1 (en) 1998-04-01 2002-04-16 Matsushita Electric Industrial Co., Ltd. Data transfer device
US6092124A (en) 1998-04-17 2000-07-18 Nvidia Corporation Method and apparatus for accelerating the rendering of images
JP3300280B2 (ja) 1998-04-23 2002-07-08 インターナショナル・ビジネス・マシーンズ・コーポレーション 画像合成処理装置およびその方法
US6510554B1 (en) 1998-04-27 2003-01-21 Diva Systems Corporation Method for generating information sub-streams for FF/REW applications
WO1999056249A1 (en) 1998-04-27 1999-11-04 Interactive Silicon, Inc. Graphics system and method for rendering independent 2d and 3d objects
US6184908B1 (en) 1998-04-27 2001-02-06 Ati Technologies, Inc. Method and apparatus for co-processing video graphics data
DE19919412B4 (de) * 1998-04-29 2006-02-23 Lg Electronics Inc. Decoder für einen digitalen Fernsehempfänger
US6144392A (en) 1998-04-30 2000-11-07 Ati Technologies, Inc. Method and apparatus for formatting a texture in a frame buffer
US6186064B1 (en) * 1998-05-22 2001-02-13 Heidelberger Druckmaschinen Ag Web fed rotary printing press with movable printing units
US6151030A (en) 1998-05-27 2000-11-21 Intel Corporation Method of creating transparent graphics
US6542162B1 (en) * 1998-06-15 2003-04-01 International Business Machines Corporation Color mapped and direct color OSD region processor with support for 4:2:2 profile decode function
JP3057055B2 (ja) 1998-07-21 2000-06-26 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ、オーバーレイ処理装置、及びオーバーレイ処理実施方法
US6466581B1 (en) 1998-08-03 2002-10-15 Ati Technologies, Inc. Multistream data packet transfer apparatus and method
US6529284B1 (en) 1998-08-07 2003-03-04 Texas Instruments Incorporated Efficient rendering of masks to a screened buffer using a lookup table
US6342982B1 (en) 1998-08-31 2002-01-29 Matsushita Electric Industrial Co., Ltd. Card reader
US6266100B1 (en) * 1998-09-04 2001-07-24 Sportvision, Inc. System for enhancing a video presentation of a live event
US6229550B1 (en) 1998-09-04 2001-05-08 Sportvision, Inc. Blending a graphic
JP4399910B2 (ja) 1998-09-10 2010-01-20 株式会社セガ ブレンディング処理を含む画像処理装置及びその方法
US6157978A (en) 1998-09-16 2000-12-05 Neomagic Corp. Multimedia round-robin arbitration with phantom slots for super-priority real-time agent
US6295048B1 (en) * 1998-09-18 2001-09-25 Compaq Computer Corporation Low bandwidth display mode centering for flat panel display controller
US6894706B1 (en) * 1998-09-18 2005-05-17 Hewlett-Packard Development Company, L.P. Automatic resolution detection
US6271847B1 (en) 1998-09-25 2001-08-07 Microsoft Corporation Inverse texture mapping using weighted pyramid blending and view-dependent weight maps
US6263019B1 (en) 1998-10-09 2001-07-17 Matsushita Electric Industrial Co., Ltd. Variable rate MPEG-2 video syntax processor
US6263023B1 (en) 1998-10-15 2001-07-17 International Business Machines Corporation High definition television decoder
KR100363159B1 (ko) 1998-10-17 2003-01-24 삼성전자 주식회사 다수채널을동시에수신하는디지털수신기와디스플레이제어방법
US6466624B1 (en) 1998-10-28 2002-10-15 Pixonics, Llc Video decoder with bit stream based enhancements
US6263369B1 (en) 1998-10-30 2001-07-17 Cisco Technology, Inc. Distributed architecture allowing local user authentication and authorization
US6327002B1 (en) 1998-10-30 2001-12-04 Ati International, Inc. Method and apparatus for video signal processing in a video system
US6326984B1 (en) 1998-11-03 2001-12-04 Ati International Srl Method and apparatus for storing and displaying video image data in a video graphics system
US6208354B1 (en) 1998-11-03 2001-03-27 Ati International Srl Method and apparatus for displaying multiple graphics images in a mixed video graphics display
US6798420B1 (en) * 1998-11-09 2004-09-28 Broadcom Corporation Video and graphics system with a single-port RAM
US6573905B1 (en) * 1999-11-09 2003-06-03 Broadcom Corporation Video and graphics system with parallel processing of graphics windows
US7911483B1 (en) * 1998-11-09 2011-03-22 Broadcom Corporation Graphics display system with window soft horizontal scrolling mechanism
US6853385B1 (en) 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
US6661422B1 (en) * 1998-11-09 2003-12-09 Broadcom Corporation Video and graphics system with MPEG specific data transfer commands
US6636222B1 (en) * 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
US6570922B1 (en) 1998-11-24 2003-05-27 General Instrument Corporation Rate control for an MPEG transcoder without a priori knowledge of picture type
US6215703B1 (en) 1998-12-04 2001-04-10 Intel Corporation In order queue inactivity timer to improve DRAM arbiter operation
US6157415A (en) 1998-12-15 2000-12-05 Ati International Srl Method and apparatus for dynamically blending image input layers
JP4391610B2 (ja) 1998-12-25 2009-12-24 パナソニック株式会社 トランスポートストリーム処理装置
US6747642B1 (en) * 1999-01-29 2004-06-08 Nintendo Co., Ltd. Method and apparatus for providing non-photorealistic cartoon outlining within a 3D videographics system
US6466220B1 (en) 1999-03-05 2002-10-15 Teralogic, Inc. Graphics engine architecture
US6408436B1 (en) 1999-03-18 2002-06-18 Next Level Communications Method and apparatus for cross-connection of video signals
US6411333B1 (en) 1999-04-02 2002-06-25 Teralogic, Inc. Format conversion using patch-based filtering
US6327000B1 (en) 1999-04-02 2001-12-04 Teralogic, Inc. Efficient image scaling for scan rate conversion
US6421460B1 (en) 1999-05-06 2002-07-16 Adobe Systems Incorporated Blending colors in the presence of transparency
US6924806B1 (en) * 1999-08-06 2005-08-02 Microsoft Corporation Video card with interchangeable connector module
US6538656B1 (en) * 1999-11-09 2003-03-25 Broadcom Corporation Video and graphics system with a data transport processor
JP3591635B2 (ja) * 1999-12-08 2004-11-24 富士電機機器制御株式会社 直流−直流変換装置
US6372002B1 (en) * 2000-03-13 2002-04-16 General Electric Company Functionalized diamond, methods for producing same, abrasive composites and abrasive tools comprising functionalized diamonds
EP1134698A1 (de) * 2000-03-13 2001-09-19 Koninklijke Philips Electronics N.V. Videogerät mit Mitteln zur Histogrammveränderung
US6662329B1 (en) 2000-03-23 2003-12-09 International Business Machines Corporation Processing errors in MPEG data as it is sent to a fixed storage device
US6426755B1 (en) 2000-05-16 2002-07-30 Sun Microsystems, Inc. Graphics system using sample tags for blur
US6956617B2 (en) * 2000-11-17 2005-10-18 Texas Instruments Incorporated Image scaling and sample rate conversion by interpolation with non-linear positioning vector
US6390502B1 (en) 2001-03-26 2002-05-21 Delphi Technologies, Inc. Supplemental restraint assembly for an automotive vehicle
US6525608B2 (en) * 2001-03-27 2003-02-25 Intel Corporation High gain, high bandwidth, fully differential amplifier
US6519965B1 (en) * 2002-02-01 2003-02-18 Daniel R. Blanchard, Sr. Externally illuminated cooler box
US6944746B2 (en) * 2002-04-01 2005-09-13 Broadcom Corporation RISC processor supporting one or more uninterruptible co-processors
US20050288114A1 (en) 2002-05-07 2005-12-29 Meadows Joseph S System and apparatus for propelling and carrying a user within a confined interior
US20040234340A1 (en) 2003-05-20 2004-11-25 Cho Yong Min Mobile levee system
US8907987B2 (en) * 2010-10-20 2014-12-09 Ncomputing Inc. System and method for downsizing video data for memory bandwidth optimization

Also Published As

Publication number Publication date
US7538783B2 (en) 2009-05-26
US7310104B2 (en) 2007-12-18
US6501480B1 (en) 2002-12-31
US20040207644A1 (en) 2004-10-21
US20120093215A1 (en) 2012-04-19
US20100171761A1 (en) 2010-07-08
US6819330B2 (en) 2004-11-16
US20030206174A1 (en) 2003-11-06
US20040177191A1 (en) 2004-09-09
US6927783B1 (en) 2005-08-09
US7554553B2 (en) 2009-06-30
US20150317085A1 (en) 2015-11-05
US7598962B2 (en) 2009-10-06
US20040056874A1 (en) 2004-03-25
US20110193868A1 (en) 2011-08-11
US20070103489A1 (en) 2007-05-10
US20090295815A1 (en) 2009-12-03
US6189064B1 (en) 2001-02-13
US20100171762A1 (en) 2010-07-08
US20080094416A1 (en) 2008-04-24
US6700588B1 (en) 2004-03-02
US20040169660A1 (en) 2004-09-02
US6661427B1 (en) 2003-12-09
US7098930B2 (en) 2006-08-29
WO2000028518A8 (en) 2001-11-01
US20080094506A1 (en) 2008-04-24
US6380945B1 (en) 2002-04-30
US7184058B2 (en) 2007-02-27
US20070285440A1 (en) 2007-12-13
US6630945B1 (en) 2003-10-07
US6529935B1 (en) 2003-03-04
US20110292082A1 (en) 2011-12-01
US8493415B2 (en) 2013-07-23
US20030158987A1 (en) 2003-08-21
US6731295B1 (en) 2004-05-04
US8848792B2 (en) 2014-09-30
US20030117406A1 (en) 2003-06-26
US20040212734A1 (en) 2004-10-28
US20060290708A1 (en) 2006-12-28
US20040130558A1 (en) 2004-07-08
US6879330B2 (en) 2005-04-12
US9111369B2 (en) 2015-08-18
US20110280307A1 (en) 2011-11-17
US6762762B2 (en) 2004-07-13
US20040150652A1 (en) 2004-08-05
US6744472B1 (en) 2004-06-01
US20050231526A1 (en) 2005-10-20
US6721837B2 (en) 2004-04-13
US20050168480A1 (en) 2005-08-04
US8390635B2 (en) 2013-03-05
US7746354B2 (en) 2010-06-29
US20040246257A1 (en) 2004-12-09
US7530027B2 (en) 2009-05-05
US9077997B2 (en) 2015-07-07
US7209992B2 (en) 2007-04-24
US7911483B1 (en) 2011-03-22
US7227582B2 (en) 2007-06-05
DE69917489D1 (de) 2004-06-24
EP1365385B1 (de) 2012-06-13
US7057622B2 (en) 2006-06-06
US20040177190A1 (en) 2004-09-09
US7554562B2 (en) 2009-06-30
US6738072B1 (en) 2004-05-18
US20040017398A1 (en) 2004-01-29
US20090295834A1 (en) 2009-12-03
US8078981B2 (en) 2011-12-13
WO2000028518A2 (en) 2000-05-18
US20020145613A1 (en) 2002-10-10
US9575665B2 (en) 2017-02-21
US20110292074A1 (en) 2011-12-01
US20090066724A1 (en) 2009-03-12
AU1910800A (en) 2000-05-29
EP1365385A3 (de) 2008-07-30
EP1145218B1 (de) 2004-05-19
US7002602B2 (en) 2006-02-21
US6570579B1 (en) 2003-05-27
EP1145218A2 (de) 2001-10-17
US20140078155A1 (en) 2014-03-20
US6608630B1 (en) 2003-08-19
US8164601B2 (en) 2012-04-24
ATE267439T1 (de) 2004-06-15
EP1365385A2 (de) 2003-11-26
US7545438B2 (en) 2009-06-09
US7015928B2 (en) 2006-03-21
US7920151B2 (en) 2011-04-05

Similar Documents

Publication Publication Date Title
DE69917489T2 (de) Anzeigesystem zur mischung von graphischen daten und videodaten
US20120268655A1 (en) Graphics Display System with Anti-Flutter Filtering and Vertical Scaling Feature
DE60009140T2 (de) Verfahren und system zur dekodierung von videosequenzen und grafiken

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M