WO1994024633A1 - Displaying a subsampled video image on a computer display - Google Patents

Displaying a subsampled video image on a computer display Download PDF

Info

Publication number
WO1994024633A1
WO1994024633A1 PCT/US1994/002591 US9402591W WO9424633A1 WO 1994024633 A1 WO1994024633 A1 WO 1994024633A1 US 9402591 W US9402591 W US 9402591W WO 9424633 A1 WO9424633 A1 WO 9424633A1
Authority
WO
WIPO (PCT)
Prior art keywords
display
window
image data
subsampled
data
Prior art date
Application number
PCT/US1994/002591
Other languages
French (fr)
Inventor
Timothy R. Lightbody
Daniel F. Cutter
Brian M. Nowokunski
Original Assignee
Data Translaton, Inc.
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
Application filed by Data Translaton, Inc. filed Critical Data Translaton, Inc.
Priority to JP6523169A priority Critical patent/JPH08512439A/en
Priority to AU65180/94A priority patent/AU683254B2/en
Priority to EP94912766A priority patent/EP0694189A4/en
Publication of WO1994024633A1 publication Critical patent/WO1994024633A1/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements 
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • 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/0229De-interlacing
    • 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/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

Definitions

  • the invention relates to displaying image data on the display of a computer.
  • video post production displaying and editing video images using the display of the computer as the monitor during the editing process.
  • a video source typically a video tape recorder
  • the video may be played back, edited, and written back to a video device.
  • subsampling One method for reducing the computation required for monitoring the video data is called subsampling.
  • each full frame (640x480 pixels per frame in the NTSC standard form factor used in U.S., 768x576 pixels per frame in the PAL standard used in Europe and Japan) is reduced to a smaller number of pixels, for instance 160x120 pixels, which is then displayed in a window on the display screen, permitting other areas of the display to be used for interactive display and control.
  • the CPU of the host computer had responsibility for keeping the video monitor updated at the same time that it kept up with other concurrent tasks, e.g., executing user commands and supervising other system activities.
  • the invention features, in general, apparatus for displaying a real-time subsample from a video source onto the display of a host computer by transferring the data to a display controller's memory.
  • the invention features apparatus for displaying a reduced- size image in a window of the display of a host computer, the reduced-size image being based upon subsampled digital image data.
  • the apparatus includes a host computer and a peripheral controller.
  • the peripheral controller includes a subsampler that receives digital source image data and outputs subsampled image data, and window display means.
  • the window display means receives a directive from the host computer indicating a window location on the host's display, and the subsampled image data.
  • the window display means autonomously
  • the apparatus (independently of the host CPU) writes the subsampled data through the host's system bus into display memory at addresses corresponding to the specified window.
  • the apparatus allows video to be displayed on the display screen while avoiding intensive involvement or supervision by the host CPU during display of the video image data.
  • the subsampler may programmable to display a subsample with a desired size and position.
  • the programming may be under the direction of the host computer.
  • the window display means may include means for de-interlacing scan lines of fields of interlaced image data, for instance by storing successive scan lines of the video data (from each of two fields) into alternating scan lines of the display memory.
  • the apparatus may further comprise a FIFO for storing the subsampled data before the subsampled data are written to the display memory.
  • the apparatus may transfer the subsampled data to the display memory without requiring intervention of the host CPU, or supervision less often than once per frame.
  • the apparatus may comprise a scheduler to temporarily suspend the window display means in order to allow the timely completion of higher priority tasks.
  • the scheduler may monitor the fill levels of the FIFO.
  • the apparatus may further comprise a compression coder or a decompression decoder.
  • the apparatus may further comprise a color space converter.
  • the window display means may block the subsampled image data into blocks for efficient transfer across the system bus into the display memory.
  • a device embodying the invention displays image data, e.g., video data, on the display of a host computer, while reducing the demand for intervention and supervision by the central processor of that host computer.
  • the subsampling and display can be preempted by higher priority tasks in the system.
  • Fig. 1 is a diagrammatic perspective view of components used in a video editing system operating according to the invention.
  • Fig. 2 is a block diagram of a host computer and a video peripheral board used in the system of Fig. 1.
  • Fig. 3 is a block diagram of an alternate organization of the host computer.
  • Fig. 4 is a screen display of a video editing session.
  • Fig. 5 is a diagram illustrating de-interlacing, an operation performed by the peripheral board of Fig. 2.
  • Fig. 6 is a block diagram detailing some of the features of the video peripheral board of Fig. 2.
  • Fig. 7 is a block diagram of the bus control circuit of Fig. 2.
  • Fig. 8 shows the data structure for messages from the host CPU to the peripheral board.
  • Fig. 9 is flow chart showing the operation of the system.
  • video editing system 11 includes peripheral board 10 that plugs into host computer 12.
  • Other components include video tape recorder (VTR) 16, monitor 18, keyboard 20, mouse 22, and mass storage disk 24.
  • VTR video tape recorder
  • the software providing video editing functionality is divided into two portions, one portion 26 that executes on the host computer's central processing unit (CPU) 28, generally providing a user interface and supervision, and one portion 14 that executes on the peripheral board, generally controlling the peripheral board, data transfer within the peripheral board, and data transfer between the host computer and the peripheral.
  • CPU central processing unit
  • video editing system 11 video is read through video input port 30, and audio is input through audio input port 32. As they are read, the video is digitized and compressed, and the audio is digitized. The video and audio are stored on the disk 24. The compressed video/audio data may be decompressed and played back onto display 18 and speakers (not shown) .
  • Video editing software 26 allows a user to assemble portions of the compressed video and audio into a video/audio program. As the user edits the program, he can play it and rearrange it in small increments, as small as a single frame, or in assembled combination. Once the user is satisfied with the resulting program, it can be output at full frame rates through video output port 34 and audio output port 36 to a video capture device, e.g., VTR 16, or to a broadcast device.
  • the peripheral board has video and audio ports 30-36 (to connect VTR 16 or other video device) , bus control circuit 42 (to interface with host computer 12) , various signal processing paths, and supervisory microprocessor 48.
  • the paths include a two- way path through a compression/decompression coder/decoder (CODEC) 60 to transfer digitized video to or from host computer disk 24, and a one-way color-space conversion (CSC) and subsample path to display digitized video on host computer display 18.
  • Video I/O port circuit 35 converts the video data from the VTR's analog form, e.g., NTSC or PAL, to a digital form, e.g., YUV
  • Video bus 38 can also be written by CODEC 60 during video decompression.
  • the YUV data are read from video bus 38, converted to the format required by the display system and subsampled to fit the subsample window of the display at subsampler/CSC 80, and written onto peripheral data bus 40.
  • Bus control circuit 42 writes data to the display memory (also called a "frame buffer") 44 of host computer 12 through system bus 46 of host computer 12. The display system displays the data written into display memory 44.
  • Microprocessor 48 controls the components of the peripheral board. Alternately, as shown in Fig.
  • host computer's CPU 28, display memory 44, main memory 50, and/or disk control 52 components may transfer data through a bus 54 private to host computer 12, with bus control interface 56 between the private bus 54 and system bus 46.
  • bus control interface 56 between the private bus 54 and system bus 46.
  • the peripheral's bus control circuit 42 transfers data to/from the system bus 46
  • the host's bus control interface 56 further directs the data to/from the devices on the host computer's private bus 54.
  • peripheral board 10 has a number of alternate paths in addition to the subsample path.
  • the video data may be read from the video bus 38 by CODEC 60; the encoded data may be read from the peripheral data bus 40 and written to the host computer's main storage 50 for transfer to disk controller 52.
  • An audio channel transfers data from/to the VTR (or other audio source) to/from the peripheral's data bus 46 through an audio controller 62 and an audio I/O ports 3, 36.
  • Color space conversion is the process of converting from one encoding representing the chrominance and luminance (color and brightness value) of a pixel to another.
  • Most computer color display devices use red/green/blue (RGB) encoding: that is, the display memory 44 has a memory cell corresponding to each pixel of the display screen 18, and this memory cell has three subcomponents representing the brightness intensity of each of red, green, and blue.
  • RGB red/green/blue
  • Any program or device that wants to display a figure on the display must do so by writing red, green, and blue values into the display memory, and must use the RGB encoding predetermined by the manufacturer of the display system.
  • most video processing electronics represent chrominance and luminance by varying the values of a YUV encoding.
  • YUV represents color video information by dividing it into a luminance component Y, and color components U and V. This separation of luminance and chrominance enables more faithful handling of the video signals which results in higher quality final images.
  • the color space conversion of the preferred embodiment converts from YUV encoding on video bus 38 to RGB encoding for storage into display memory 44.
  • Subsampling is the process of reducing a full-size image to a reduced size image.
  • Full-size video may be reduced to fit an arbitrary-size subsample window, for instance 160x120 pixels (160x120 is preferred for displaying NTSC video because it is an integer submultiple of the NTSC form factor) .
  • Subsampling may be accomplished by any of several methods: several adjoining pixels can be averaged together, or a representative subset of the pixels can be filtered out — for instance, selecting only the odd-numbered pixels of odd-numbered scan lines. Or the two techniques can be combined.
  • subsampler 80 may only display only every fourth scan line, thereby cutting the number of vertical pixels by 3/4. In each horizontal scan line, the subsampler may skip two pixels, then average two, then skip two, then average two, etc. (thereby cutting the number of horizontal pixels by 3/4) .
  • some video formats interlace the scan lines of a frame. That is, rather than scanning a frame continuously left-to-right top-to-bottom, a frame is divided into two fields 70, 72.
  • the first field 70 includes all of the odd-numbered scan lines
  • the second field 72 transmitted after the entire first field is complete, includes all the even- numbered scan lines.
  • the fields of the assembled frame are scanned alternately.
  • display screen 200 of the host computer displays, in addition to subsample window 202, figures 206 to allow the user to control the editing session.
  • the control figures may include representative frames from video clips, slide switches control knobs, pointers, etc.
  • Video data bus 38 carries video data generated by any of several components, e.g., the video input port or the decoder portion of the CODEC 60.
  • Color space converter and subsampler 80 has control registers 84 that control its operation. These control registers are read and written by peripheral microprocessor 48.
  • the converted, subsampled pixel values 88 are buffered in a subsample FIFO (first-in first-out queueing store) 90.
  • Bus control circuit 42 reads the subsampled video out of FIFO 90 and bundles the pixel values into blocks that can be efficiently transferred to the display memory 44 via the system bus 46. (Either the organization of Fig. 2, in which the display memory is connected to the system bus, or the organization of Fig. 3, where the host has a private bus, is applicable.)
  • Subsampler and color space converter 80 may be provided together in a single chip, for instance the CL- PX0070 Video Window Generator from Pixel Semiconductor.
  • This part provides conversion from a variety of standard digital video input formats to a variety of RGB encoding outputs; the RGB format chosen will match that required by display system 18 of the host computer.
  • the part has internal control registers 84 that specify color conversion, scaling, pixel resolution processing, and window clipping parameters.
  • Input pins provide the clocking and data for the input video, and read requests for converted pixel output.
  • Output pins provide the converted, subsampled output pixel values and other status information, for instance the state of the chip's internal output FIFO.
  • Microprocessor 48 controlling the peripheral board 10 is a Motorola MC68030.
  • the components of the peripheral board 10 requiring control include subsample FIFO 90, compression and decompression FIFOs 92, 94, audio FIFOs (not shown) , and the various subsampling, color space conversion, and compression components of the peripheral board.
  • a relatively fast microprocessor is chosen to satisfy the latency demands for real-time service.
  • Subsample FIFO 90 uses 25ns parts, is 32 bits wide and 16K words deep, with each entry encoding the RGB value of one pixel. 32 bits is wide enough to accommodate the largest common RGB encoding: 8 bits each of red, green, and blue. A 24-bit pixel encoding is padded out to fill a 32-bit word.
  • Video data bus 38 and color space converter and subsampler 80 are constrained to operate at the rate of the video I/O system. But host computer 12, with its responsibility for servicing interrupts from various peripherals and user programs, cannot provide real-time service.
  • FIFOs 90, 92, 94 decouple the real-time operation and requirements of synchronous video data bus 38 from the inherently asynchronous operation of host computer 12 and peripheral data bus 40. The coordination of flow control between the various FIFOs will be discussed below.
  • bus control circuit 42 interfaces system bus 46 to peripheral board 10.
  • Buffer 220 buffers the bus data and address lines of system bus 46.
  • Data buffer 224 buffers data to be sent to and received from system bus 46, and slave address latch 226 latches the addresses.
  • Peripheral board 10 may act as bus master; when in this mode, bus master address generator 236 (in conjunction with microprocessor 48) generates the addresses for these bus transactions.
  • Bus master/slave control logic 228 generates and receives bus control signals 230 to/from the bus and passes the signals 232, 234 from/to microprocessor 48 and other components of the peripheral board.
  • bus control circuit 42 under the supervision of microprocessor 48, unloads the RGB subsampled pixel values from subsample FIFO 90 and writes them over system bus 46 to the proper locations in display memory 44.
  • Horizontal scan lines are in interlaced order through the color-space converter, subsampler, and subsample FIFO; bus control circuit 42 de-interlaces the scan lines as it stores them into the display memory.
  • microprocessor 48 performs the address arithmetic to calculate the correct address in the display memory 44 for the next scan line of pixels.
  • the new scan line's address is calculated so as to de- interlace the fields of a frame by directing each scan line of subsampled data to the correct line in display memory 44.
  • Microprocessor 48 gives this address and the number of pixels in the scan line to bus control circuit 42.
  • bus control circuit 42 bundles pixel values up into blocks for efficient bus transfers. The gap between blocks allows other operations, for instance CODEC copy operations, audio channel copy operations, or dynamic RAM refresh cycles, to preempt the stream of subsampled video data.
  • Bus control circuit 42 requests the 32-bit wide data words that encode the pixel values one-by-one from subsample FIFO 90 until it has a bus transfer block, typically 16 32-bit words per block, and then transfers the pixel values in a block.
  • Bus control circuit 42 counts the number of pixels written to each scan line, and may complete the transfer with a "short block" to fill out the end of a scan line.
  • the bus control circuit performs its own address arithmetic to find the address in display memory 44 for each successive block of a scan line. At the end of a scan line, the bus control circuit interrupts microprocessor 48; microprocessor 48 then provides bus control circuit 42 with the next address in display memory 44. Microprocessor 48 does the address arithmetic to de-interlace the scan lines and to move the bus control circuit 42 back to the top of the subsample window at the end of each field. Once the pixel values are stored in display memory
  • the peripheral board may also have a second video output port to which a TV monitor may be attached; this TV monitor will display the video in full format.
  • the preferred host computer is an Apple Macintosh, model Quadra 950 or faster.
  • the video editing session is under the control of software 26 that runs on CPU 28 of the host computer.
  • This software provides a graphical user interface to the human user for control of the video editing session, and supervises the operation of peripheral board 10.
  • the supervision required of host CPU 28, however, is limited: CPU 28 provides one message to the peripheral board to begin displaying video in a window at a specified screen position. Future messages may direct the peripheral board to move the video window to a different window of the screen, or to stop the display, but no further messages or computation are required from the Macintosh CPU to simply sustain the video display.
  • host CPU 28 controls the peripheral's microprocessor 48 via messages written from host computer to the peripheral's command and status queue 64.
  • the queue occupies a single address on the system bus; to write a multi-word message to the peripheral, the host writes each word to this address in turn.
  • Microprocessor 48 drains these messages from queue 64 and acts on each in turn.
  • the format for the messages to control the subsampler is shown in the C data structures shown in Fig. 8.
  • "enum Subsample_mode_t” is the stop/start command vocabulary with which the host can control the subsampler.
  • the subsampler can be directed to halt at the next frame boundary or immediately.
  • the subsampler can be directed to subsample and display one frame and halt (k_One_Frame) , subsample every frame (k_Full_Speed) , or subsample every other frame (k_Half_Speed) .
  • the half- speed setting causes the Pixel Semiconductor subsampler part to ignore every other frame.
  • the message packet itself contains a header with a packet length and source and destination addresses.
  • the "type” member discriminates among the variants of the union (the only variant relevant to subsampler operation is shown) .
  • the peripheral negates the sequence number when it has processed the packet; this allows the host to correlate reply packets with the packets it issued to the peripheral.
  • the window_location variant of the union specifies the address in the host's display memory for the upper left pixel of the subsample window.
  • the member “row_bytes” tells the address offset between successive scan lines of the display memory.
  • the members “height” and “width” tell the dimensions of the subsample window.
  • the message_packet struct has other members not shown in Fig. 8, for instance those used by the host to manage a pool of message packets in its memory, but these members are not transmitted to the peripheral.
  • Fig. 9 shows the operation of microprocessor 48.
  • the system operates as follows. As the host computer is turned on and executes its bootstrap procedure, it queries the display system to find out whether an external display device resides on the system bus (as shown in Fig. 2) , or whether the display is on the host private bus (as shown in Fig. 3) , and at what addresses the display memory is mapped. The host also queries each of the peripheral boards in the expansion slots, and establishes memory addresses for each of them.
  • peripheral board 10 runs a self-test diagnostic (stored in ROM on peripheral board 10) and then waits for software 14 to be downloaded from host computer 12 to microprocessor 48.
  • video editing software 26 starts on host computer 12, it takes the host out of virtual memory mode so that peripheral 10 will have access to the address space of host 12.
  • Host software 26 then downloads peripheral software 14 to the peripheral board.
  • the downloaded software 14 institutes hand-shaking within peripheral board 10, and then hand-shaking with host CPU 28.
  • this start-up routine is completed, the peripheral board sets itself into a default mode wherein image data on the video bus are displayed in the window specified by the host, and the peripheral is ready to record or playback video or audio through ports 30-36.
  • the subsampling path through the peripheral is essentially always active, transforming whatever video data are on video data bus 38 into displayable RGB form, subsampling to a reduced size image, and storing the pixel values in display memory 44.
  • the user can always monitor the incoming or outgoing video data in the subsample window 202 of the host's display.
  • the color space conversion, subsampling, and writing into FIFO 90 continue synchronously, essentially in real time at the rate of the video device.
  • bus control circuit 42 transfers data from subsample FIFO 90 to display memory 44 asynchronously. The scheduling interactions of the various paths in resolving these contentions is discussed below.
  • host computer CPU 28 is not involved, thus freeing CPU 28 for other tasks.
  • the software 26 running on the host CPU offers the user a number of choices. Typically the user will first load source video data from VTR 16 or another source onto disk 24 so that the video can thereafter be edited. After editing has been completed, the compressed video can be copied from the disk to VTR 16. On user command, the host computer may direct the peripheral to stop the subsampling path, either to freeze a frame or to allow the host computer to reclaim the display memory for other purposes.
  • Host CPU 28 and software 26 also perform system supervisory tasks; for instance, the host can detect faults in peripheral board 10, and can in turn reset peripheral board 10 to clear any incomplete or inconsistent state.
  • subsampler and color space converter 80 When loading the video onto disk 24, subsampler and color space converter 80 will continue to display whatever image data are on video bus 38.
  • CODEC 60 simultaneously compresses the video data, and bus control circuit 42 transmits the compressed image data to the host's RAM 50, from which the data are copied to disk 24.
  • the peripheral will continue to display whatever image data are presented to video bus 38 by VTR 16.
  • the user may view data stored on disk 24 in compressed form.
  • the compressed video data are transmitted from disk 24 through CODEC 60 to video bus 38 and simultaneously pass through subsampler 80 to the display memory 44, all at rates fast enough to permit an image in the window that changes at close to video rates.
  • the user may direct the system to move or re-size the video window. (Though the hardware is capable of driving any size window up to the full screen of the host display 18 or the full size of the video, the video editing software 26 limits the user's choice of window size and position on the display screen.)
  • the host may specify a window location to the peripheral in a number of ways, for instance by specifying the pixel address of the upper-left corner and a horizontal and vertical size for the window.
  • the host directs the peripheral to halt display of the video image.
  • the user may now move or re ⁇ size the video window, for instance by dragging a corner of the subsample window.
  • the host computer computes new form factor information for the re-sized window, and directs the peripheral board to commence display of the subsampled video data in the re-sized window.
  • This window size information is stored by peripheral's bus control circuit 42; it will be used to direct the subsampled data stream to display memory 44.
  • the window size/location specification is passed on to the peripheral's microprocessor 48, which in turn computes control values and writes the control values into the subsampler's control registers 84 to direct the subsampler to extract the correct subsample from the full-size video.
  • Microprocessor 48 then primes the subsampler to commence converting and subsampling the video data into the subsample FIFO.
  • the peripheral's microprocessor 48 is responsible for maintaining the integrity of the copy stream by enforcing this priority. To this end, microprocessor 48 controls the rate at which FIFOs 90, 92, 94 are unloaded, up to the saturation rate of system bus 46 of the host computer.
  • the system can selectively choose the rate at which the video data are sent to the display memory, thereby changing the frame rate of the subsampled video presented on the display.
  • This flow control is effected by the peripheral microprocessor 48: it monitors the fill level of the CODEC'S FIFOs 92, 94, FIFOs on the audio path, and subsample FIFO 90, and uses this information to control the peripheral's bus transactions. For instance, if either of CODEC FIFOs 92, 94 is approaching full, microprocessor 48 suspends the bus control circuit's draining the subsample FIFO 90 and gives immediate attention to draining CODEC FIFOs 92, 94.
  • the subsample window is updated nearly in real time (i.e., at near the video rate), with delays limited to two to four frames.
  • the peripheral's microprocessor 48 monitors the FIFOs and directs data transfers. Microprocessor 48 allows the FIFOs to fill sufficiently to efficiently transfer data in blocks, before signalling the bus control circuit 42 to begin data transfer. Once microprocessor 48 commands bus control circuit 42 to begin a transfer, it blocks the data from subsample FIFO 90 into blocks of 16 32-bit-wide words for transfer across system bus 46. The blocking logic of bus control circuit 42 is not shown in Fig. 9.
  • the result of the parallelism between microprocessor 48, subsample FIFO 90, bus control circuit 42, and host CPU 28 is that the display stream is completely asynchronous — the display in the subsample window will often be split between showing parts of two frames for a fraction of a second, usually a time too short to be distinguished by the human eye.
  • bus control circuit 42 suspends unloading subsample FIFO 90 for several frames until the data volume over the copy stream subsides. Subsample FIFO 90 may overflow during this time.
  • the peripheral's microprocessor 48 will then flush subsample FIFO 90, wait for the next frame or field boundary, and then restart the subsample video stream.

Abstract

Apparatus for displaying a reduced-size image in a window of the display (18) of a host computer (12), the reduced-size image based upon subsampled digital image data. The apparatus includes a host computer (12) and a peripheral controller (10). The peripheral controller (10) includes a subsampler (80) that receives digital source image data and outputs subsampled image data, and window display means (42). The window display means (42) receives a directive from the host computer (12) indicating a window location on the host's display (18), and the subsampled image data. The window display means (42) autonomously (independently of the host CPU (28)) writes the subsampled data through the host's system bus (46) into the display memory (44) at addresses corresponding to the specified window. The apparatus allows video to be displayed on the display screen (18) while avoiding intensive involvement or supervision by the host CPU (28) during display of the video image data.

Description

DISPLAYING A SUBSAMPLED VIDEO IMAGE ON A COMPUTER DISPLAY Cross Reference To Related Applications Patent applications entitled "Adaptive Video Compression," "Adaptive Video Decompression,"
"Synchronizing Digital Audio to Digital Video," and "Video Peripheral for a Computer," filed herewith, are incorporated herein by reference.
Background of the Invention The invention relates to displaying image data on the display of a computer.
As the costs of high-resolution color computer displays and processing power come down, one of the emerging applications for microcomputers is video post production — displaying and editing video images using the display of the computer as the monitor during the editing process. In a computer video editing system, a video source, typically a video tape recorder, is read and stored in digital form on the disk of a computer. The video may be played back, edited, and written back to a video device.
During the tape-to-disk, editing, and disk-to-tape processes, it is desireable to display the video in real time in a display window so that the user can monitor the operation. Keeping the display updated can pose a large computational demand, easily seen in the sheer data volume of a video program — 30 frames per second, over 300,000 pixels per frame, and several bits per pixel.
One method for reducing the computation required for monitoring the video data is called subsampling. In subsampled video, each full frame (640x480 pixels per frame in the NTSC standard form factor used in U.S., 768x576 pixels per frame in the PAL standard used in Europe and Japan) is reduced to a smaller number of pixels, for instance 160x120 pixels, which is then displayed in a window on the display screen, permitting other areas of the display to be used for interactive display and control. In known video editing systems, the CPU of the host computer had responsibility for keeping the video monitor updated at the same time that it kept up with other concurrent tasks, e.g., executing user commands and supervising other system activities.
Summary of the Invention
The invention features, in general, apparatus for displaying a real-time subsample from a video source onto the display of a host computer by transferring the data to a display controller's memory. In one aspect, the invention features apparatus for displaying a reduced- size image in a window of the display of a host computer, the reduced-size image being based upon subsampled digital image data. The apparatus includes a host computer and a peripheral controller. The peripheral controller includes a subsampler that receives digital source image data and outputs subsampled image data, and window display means. The window display means receives a directive from the host computer indicating a window location on the host's display, and the subsampled image data. The window display means autonomously
(independently of the host CPU) writes the subsampled data through the host's system bus into display memory at addresses corresponding to the specified window. The apparatus allows video to be displayed on the display screen while avoiding intensive involvement or supervision by the host CPU during display of the video image data.
Preferred embodiments may include the following features. The subsampler may programmable to display a subsample with a desired size and position. The programming may be under the direction of the host computer. The window display means may include means for de-interlacing scan lines of fields of interlaced image data, for instance by storing successive scan lines of the video data (from each of two fields) into alternating scan lines of the display memory. The apparatus may further comprise a FIFO for storing the subsampled data before the subsampled data are written to the display memory. The apparatus may transfer the subsampled data to the display memory without requiring intervention of the host CPU, or supervision less often than once per frame. The apparatus may comprise a scheduler to temporarily suspend the window display means in order to allow the timely completion of higher priority tasks. The scheduler may monitor the fill levels of the FIFO. The apparatus may further comprise a compression coder or a decompression decoder. The apparatus may further comprise a color space converter. The window display means may block the subsampled image data into blocks for efficient transfer across the system bus into the display memory.
Among the advantages of the invention are the following. A device embodying the invention displays image data, e.g., video data, on the display of a host computer, while reducing the demand for intervention and supervision by the central processor of that host computer. The subsampling and display can be preempted by higher priority tasks in the system. Other advantages and features of the invention will become apparent from the following description of a preferred embodiment, and from the claims. Description of Preferred Embodiments Drawings
Fig. 1 is a diagrammatic perspective view of components used in a video editing system operating according to the invention.
Fig. 2 is a block diagram of a host computer and a video peripheral board used in the system of Fig. 1.
Fig. 3 is a block diagram of an alternate organization of the host computer. Fig. 4 is a screen display of a video editing session.
Fig. 5 is a diagram illustrating de-interlacing, an operation performed by the peripheral board of Fig. 2. Fig. 6 is a block diagram detailing some of the features of the video peripheral board of Fig. 2.
Fig. 7 is a block diagram of the bus control circuit of Fig. 2.
Fig. 8 shows the data structure for messages from the host CPU to the peripheral board. Fig. 9 is flow chart showing the operation of the system.
Overview
Referring to Figs. 1 and 2, video editing system 11 includes peripheral board 10 that plugs into host computer 12. Other components include video tape recorder (VTR) 16, monitor 18, keyboard 20, mouse 22, and mass storage disk 24. The software providing video editing functionality is divided into two portions, one portion 26 that executes on the host computer's central processing unit (CPU) 28, generally providing a user interface and supervision, and one portion 14 that executes on the peripheral board, generally controlling the peripheral board, data transfer within the peripheral board, and data transfer between the host computer and the peripheral.
In video editing system 11, video is read through video input port 30, and audio is input through audio input port 32. As they are read, the video is digitized and compressed, and the audio is digitized. The video and audio are stored on the disk 24. The compressed video/audio data may be decompressed and played back onto display 18 and speakers (not shown) . Video editing software 26 allows a user to assemble portions of the compressed video and audio into a video/audio program. As the user edits the program, he can play it and rearrange it in small increments, as small as a single frame, or in assembled combination. Once the user is satisfied with the resulting program, it can be output at full frame rates through video output port 34 and audio output port 36 to a video capture device, e.g., VTR 16, or to a broadcast device.
Referring to Fig. 2, the peripheral board has video and audio ports 30-36 (to connect VTR 16 or other video device) , bus control circuit 42 (to interface with host computer 12) , various signal processing paths, and supervisory microprocessor 48. The paths include a two- way path through a compression/decompression coder/decoder (CODEC) 60 to transfer digitized video to or from host computer disk 24, and a one-way color-space conversion (CSC) and subsample path to display digitized video on host computer display 18. Video I/O port circuit 35 converts the video data from the VTR's analog form, e.g., NTSC or PAL, to a digital form, e.g., YUV
4:2:2 format, and puts the digital video on video bus 38. (Video bus 38 can also be written by CODEC 60 during video decompression.) Tracing the path of a video signal from video bus 38 to the display screen on the subsample path, the YUV data are read from video bus 38, converted to the format required by the display system and subsampled to fit the subsample window of the display at subsampler/CSC 80, and written onto peripheral data bus 40. Bus control circuit 42 writes data to the display memory (also called a "frame buffer") 44 of host computer 12 through system bus 46 of host computer 12. The display system displays the data written into display memory 44. Microprocessor 48 controls the components of the peripheral board. Alternately, as shown in Fig. 3, host computer's CPU 28, display memory 44, main memory 50, and/or disk control 52 components may transfer data through a bus 54 private to host computer 12, with bus control interface 56 between the private bus 54 and system bus 46. In this case, the peripheral's bus control circuit 42 transfers data to/from the system bus 46, and the host's bus control interface 56 further directs the data to/from the devices on the host computer's private bus 54.
Referring again to Fig. 2, peripheral board 10 has a number of alternate paths in addition to the subsample path. For instance, the video data may be read from the video bus 38 by CODEC 60; the encoded data may be read from the peripheral data bus 40 and written to the host computer's main storage 50 for transfer to disk controller 52. An audio channel transfers data from/to the VTR (or other audio source) to/from the peripheral's data bus 46 through an audio controller 62 and an audio I/O ports 3, 36.
Color space conversion is the process of converting from one encoding representing the chrominance and luminance (color and brightness value) of a pixel to another. Most computer color display devices use red/green/blue (RGB) encoding: that is, the display memory 44 has a memory cell corresponding to each pixel of the display screen 18, and this memory cell has three subcomponents representing the brightness intensity of each of red, green, and blue. By varying the numerical value of each of these three subcomponents, the color of the pixel can be varied to produce a specific color, much as any color paint can be mixed from varying proportions of red, yellow, blue, black, and white paint. Any program or device that wants to display a figure on the display must do so by writing red, green, and blue values into the display memory, and must use the RGB encoding predetermined by the manufacturer of the display system. On the other hand, most video processing electronics represent chrominance and luminance by varying the values of a YUV encoding. YUV represents color video information by dividing it into a luminance component Y, and color components U and V. This separation of luminance and chrominance enables more faithful handling of the video signals which results in higher quality final images. The color space conversion of the preferred embodiment converts from YUV encoding on video bus 38 to RGB encoding for storage into display memory 44.
Subsampling is the process of reducing a full-size image to a reduced size image. Full-size video may be reduced to fit an arbitrary-size subsample window, for instance 160x120 pixels (160x120 is preferred for displaying NTSC video because it is an integer submultiple of the NTSC form factor) . Subsampling may be accomplished by any of several methods: several adjoining pixels can be averaged together, or a representative subset of the pixels can be filtered out — for instance, selecting only the odd-numbered pixels of odd-numbered scan lines. Or the two techniques can be combined. For instance, subsampler 80 may only display only every fourth scan line, thereby cutting the number of vertical pixels by 3/4. In each horizontal scan line, the subsampler may skip two pixels, then average two, then skip two, then average two, etc. (thereby cutting the number of horizontal pixels by 3/4) .
Referring to Fig. 5, some video formats, e.g. NTSC, interlace the scan lines of a frame. That is, rather than scanning a frame continuously left-to-right top-to-bottom, a frame is divided into two fields 70, 72. The first field 70 includes all of the odd-numbered scan lines, and the second field 72, transmitted after the entire first field is complete, includes all the even- numbered scan lines. The fields of the assembled frame are scanned alternately.
Referring to Fig. 4, display screen 200 of the host computer displays, in addition to subsample window 202, figures 206 to allow the user to control the editing session. The control figures may include representative frames from video clips, slide switches control knobs, pointers, etc.
Structure Fig. 6 shows the subsampling path and the compression/decompression path through the peripheral board 10 in more detail. Video data bus 38 carries video data generated by any of several components, e.g., the video input port or the decoder portion of the CODEC 60. Color space converter and subsampler 80 has control registers 84 that control its operation. These control registers are read and written by peripheral microprocessor 48. The converted, subsampled pixel values 88 are buffered in a subsample FIFO (first-in first-out queueing store) 90. Bus control circuit 42 reads the subsampled video out of FIFO 90 and bundles the pixel values into blocks that can be efficiently transferred to the display memory 44 via the system bus 46. (Either the organization of Fig. 2, in which the display memory is connected to the system bus, or the organization of Fig. 3, where the host has a private bus, is applicable.)
Subsampler and color space converter 80 may be provided together in a single chip, for instance the CL- PX0070 Video Window Generator from Pixel Semiconductor. This part provides conversion from a variety of standard digital video input formats to a variety of RGB encoding outputs; the RGB format chosen will match that required by display system 18 of the host computer. The part has internal control registers 84 that specify color conversion, scaling, pixel resolution processing, and window clipping parameters. Input pins provide the clocking and data for the input video, and read requests for converted pixel output. Output pins provide the converted, subsampled output pixel values and other status information, for instance the state of the chip's internal output FIFO.
Microprocessor 48 controlling the peripheral board 10 is a Motorola MC68030. The components of the peripheral board 10 requiring control include subsample FIFO 90, compression and decompression FIFOs 92, 94, audio FIFOs (not shown) , and the various subsampling, color space conversion, and compression components of the peripheral board. A relatively fast microprocessor is chosen to satisfy the latency demands for real-time service.
Subsample FIFO 90 uses 25ns parts, is 32 bits wide and 16K words deep, with each entry encoding the RGB value of one pixel. 32 bits is wide enough to accommodate the largest common RGB encoding: 8 bits each of red, green, and blue. A 24-bit pixel encoding is padded out to fill a 32-bit word.
Video data bus 38 and color space converter and subsampler 80 are constrained to operate at the rate of the video I/O system. But host computer 12, with its responsibility for servicing interrupts from various peripherals and user programs, cannot provide real-time service. FIFOs 90, 92, 94 decouple the real-time operation and requirements of synchronous video data bus 38 from the inherently asynchronous operation of host computer 12 and peripheral data bus 40. The coordination of flow control between the various FIFOs will be discussed below. Referring to Fig. 7, bus control circuit 42 interfaces system bus 46 to peripheral board 10. Buffer 220 buffers the bus data and address lines of system bus 46. Data buffer 224 buffers data to be sent to and received from system bus 46, and slave address latch 226 latches the addresses. Peripheral board 10 may act as bus master; when in this mode, bus master address generator 236 (in conjunction with microprocessor 48) generates the addresses for these bus transactions. Bus master/slave control logic 228 generates and receives bus control signals 230 to/from the bus and passes the signals 232, 234 from/to microprocessor 48 and other components of the peripheral board.
Referring again to Fig. 6, as mentioned earlier in connection with Fig. 5, bus control circuit 42, under the supervision of microprocessor 48, unloads the RGB subsampled pixel values from subsample FIFO 90 and writes them over system bus 46 to the proper locations in display memory 44. Horizontal scan lines are in interlaced order through the color-space converter, subsampler, and subsample FIFO; bus control circuit 42 de-interlaces the scan lines as it stores them into the display memory. At the end of a scan line or the end of a field, microprocessor 48 performs the address arithmetic to calculate the correct address in the display memory 44 for the next scan line of pixels. The new scan line's address is calculated so as to de- interlace the fields of a frame by directing each scan line of subsampled data to the correct line in display memory 44. Microprocessor 48 gives this address and the number of pixels in the scan line to bus control circuit 42.
To reduce bus traffic, bus control circuit 42 bundles pixel values up into blocks for efficient bus transfers. The gap between blocks allows other operations, for instance CODEC copy operations, audio channel copy operations, or dynamic RAM refresh cycles, to preempt the stream of subsampled video data. Bus control circuit 42 requests the 32-bit wide data words that encode the pixel values one-by-one from subsample FIFO 90 until it has a bus transfer block, typically 16 32-bit words per block, and then transfers the pixel values in a block. Bus control circuit 42 counts the number of pixels written to each scan line, and may complete the transfer with a "short block" to fill out the end of a scan line. The bus control circuit performs its own address arithmetic to find the address in display memory 44 for each successive block of a scan line. At the end of a scan line, the bus control circuit interrupts microprocessor 48; microprocessor 48 then provides bus control circuit 42 with the next address in display memory 44. Microprocessor 48 does the address arithmetic to de-interlace the scan lines and to move the bus control circuit 42 back to the top of the subsample window at the end of each field. Once the pixel values are stored in display memory
44, they will be displayed on display 18 until they are overwritten by new values.
The peripheral board may also have a second video output port to which a TV monitor may be attached; this TV monitor will display the video in full format. The preferred host computer is an Apple Macintosh, model Quadra 950 or faster.
The video editing session is under the control of software 26 that runs on CPU 28 of the host computer. This software provides a graphical user interface to the human user for control of the video editing session, and supervises the operation of peripheral board 10. The supervision required of host CPU 28, however, is limited: CPU 28 provides one message to the peripheral board to begin displaying video in a window at a specified screen position. Future messages may direct the peripheral board to move the video window to a different window of the screen, or to stop the display, but no further messages or computation are required from the Macintosh CPU to simply sustain the video display.
Referring to Figs. 6 and 8, host CPU 28 controls the peripheral's microprocessor 48 via messages written from host computer to the peripheral's command and status queue 64. The queue occupies a single address on the system bus; to write a multi-word message to the peripheral, the host writes each word to this address in turn. Microprocessor 48 drains these messages from queue 64 and acts on each in turn.
The format for the messages to control the subsampler is shown in the C data structures shown in Fig. 8. "enum Subsample_mode_t" is the stop/start command vocabulary with which the host can control the subsampler. The subsampler can be directed to halt at the next frame boundary or immediately. The subsampler can be directed to subsample and display one frame and halt (k_One_Frame) , subsample every frame (k_Full_Speed) , or subsample every other frame (k_Half_Speed) . The half- speed setting causes the Pixel Semiconductor subsampler part to ignore every other frame. The message packet itself contains a header with a packet length and source and destination addresses. The "type" member discriminates among the variants of the union (the only variant relevant to subsampler operation is shown) . The peripheral negates the sequence number when it has processed the packet; this allows the host to correlate reply packets with the packets it issued to the peripheral. The window_location variant of the union specifies the address in the host's display memory for the upper left pixel of the subsample window. The member "row_bytes" tells the address offset between successive scan lines of the display memory. The members "height" and "width" tell the dimensions of the subsample window. The message_packet struct has other members not shown in Fig. 8, for instance those used by the host to manage a pool of message packets in its memory, but these members are not transmitted to the peripheral.
Operation
Fig. 9 shows the operation of microprocessor 48. The system operates as follows. As the host computer is turned on and executes its bootstrap procedure, it queries the display system to find out whether an external display device resides on the system bus (as shown in Fig. 2) , or whether the display is on the host private bus (as shown in Fig. 3) , and at what addresses the display memory is mapped. The host also queries each of the peripheral boards in the expansion slots, and establishes memory addresses for each of them.
A part of its power-up routine, peripheral board 10 runs a self-test diagnostic (stored in ROM on peripheral board 10) and then waits for software 14 to be downloaded from host computer 12 to microprocessor 48. When video editing software 26 starts on host computer 12, it takes the host out of virtual memory mode so that peripheral 10 will have access to the address space of host 12. Host software 26 then downloads peripheral software 14 to the peripheral board. The downloaded software 14 institutes hand-shaking within peripheral board 10, and then hand-shaking with host CPU 28. When this start-up routine is completed, the peripheral board sets itself into a default mode wherein image data on the video bus are displayed in the window specified by the host, and the peripheral is ready to record or playback video or audio through ports 30-36. Once the system is in operation, the subsampling path through the peripheral is essentially always active, transforming whatever video data are on video data bus 38 into displayable RGB form, subsampling to a reduced size image, and storing the pixel values in display memory 44. Thus, the user can always monitor the incoming or outgoing video data in the subsample window 202 of the host's display. The color space conversion, subsampling, and writing into FIFO 90 continue synchronously, essentially in real time at the rate of the video device. However, because the subsampling path must compete for system resources — for instance system bus 46 — with other paths through the peripheral, bus control circuit 42 transfers data from subsample FIFO 90 to display memory 44 asynchronously. The scheduling interactions of the various paths in resolving these contentions is discussed below.
Note that during the data movement process, host computer CPU 28 is not involved, thus freeing CPU 28 for other tasks. The software 26 running on the host CPU offers the user a number of choices. Typically the user will first load source video data from VTR 16 or another source onto disk 24 so that the video can thereafter be edited. After editing has been completed, the compressed video can be copied from the disk to VTR 16. On user command, the host computer may direct the peripheral to stop the subsampling path, either to freeze a frame or to allow the host computer to reclaim the display memory for other purposes. Host CPU 28 and software 26 also perform system supervisory tasks; for instance, the host can detect faults in peripheral board 10, and can in turn reset peripheral board 10 to clear any incomplete or inconsistent state.
When loading the video onto disk 24, subsampler and color space converter 80 will continue to display whatever image data are on video bus 38. CODEC 60 simultaneously compresses the video data, and bus control circuit 42 transmits the compressed image data to the host's RAM 50, from which the data are copied to disk 24. The peripheral will continue to display whatever image data are presented to video bus 38 by VTR 16.
During editing, the user may view data stored on disk 24 in compressed form. In this case the compressed video data are transmitted from disk 24 through CODEC 60 to video bus 38 and simultaneously pass through subsampler 80 to the display memory 44, all at rates fast enough to permit an image in the window that changes at close to video rates.
The user may direct the system to move or re-size the video window. (Though the hardware is capable of driving any size window up to the full screen of the host display 18 or the full size of the video, the video editing software 26 limits the user's choice of window size and position on the display screen.) The host may specify a window location to the peripheral in a number of ways, for instance by specifying the pixel address of the upper-left corner and a horizontal and vertical size for the window. The host directs the peripheral to halt display of the video image. The user may now move or re¬ size the video window, for instance by dragging a corner of the subsample window. Once the video window has been dropped, the host computer computes new form factor information for the re-sized window, and directs the peripheral board to commence display of the subsampled video data in the re-sized window. This window size information is stored by peripheral's bus control circuit 42; it will be used to direct the subsampled data stream to display memory 44. The window size/location specification is passed on to the peripheral's microprocessor 48, which in turn computes control values and writes the control values into the subsampler's control registers 84 to direct the subsampler to extract the correct subsample from the full-size video. Microprocessor 48 then primes the subsampler to commence converting and subsampling the video data into the subsample FIFO.
Though the subsample path is always active, other data copying operations, for instance those copying video and audio to/from the VTR from/to the host's disk, may take precedence over the viewing operation: data loss during the tape-to-disk copying operation is effectively irreversible and should be prevented if at all possible. On the other hand, allowing the subsample path to lag the CODEC path — or omitting frames from the video display - - is a failure with no lasting impact. The peripheral's microprocessor 48 is responsible for maintaining the integrity of the copy stream by enforcing this priority. To this end, microprocessor 48 controls the rate at which FIFOs 90, 92, 94 are unloaded, up to the saturation rate of system bus 46 of the host computer. Thus, the system can selectively choose the rate at which the video data are sent to the display memory, thereby changing the frame rate of the subsampled video presented on the display. This flow control is effected by the peripheral microprocessor 48: it monitors the fill level of the CODEC'S FIFOs 92, 94, FIFOs on the audio path, and subsample FIFO 90, and uses this information to control the peripheral's bus transactions. For instance, if either of CODEC FIFOs 92, 94 is approaching full, microprocessor 48 suspends the bus control circuit's draining the subsample FIFO 90 and gives immediate attention to draining CODEC FIFOs 92, 94. In practice, the subsample window is updated nearly in real time (i.e., at near the video rate), with delays limited to two to four frames. Referring to the central loop shown in Fig. 9, the peripheral's microprocessor 48 monitors the FIFOs and directs data transfers. Microprocessor 48 allows the FIFOs to fill sufficiently to efficiently transfer data in blocks, before signalling the bus control circuit 42 to begin data transfer. Once microprocessor 48 commands bus control circuit 42 to begin a transfer, it blocks the data from subsample FIFO 90 into blocks of 16 32-bit-wide words for transfer across system bus 46. The blocking logic of bus control circuit 42 is not shown in Fig. 9. The result of the parallelism between microprocessor 48, subsample FIFO 90, bus control circuit 42, and host CPU 28 is that the display stream is completely asynchronous — the display in the subsample window will often be split between showing parts of two frames for a fraction of a second, usually a time too short to be distinguished by the human eye. During times when the CODEC stream is very full, for instance immediately after a scene change from easy-to-compress material to hard-to-compress material (for instance to a new scene with many more sharp edges) , bus control circuit 42 suspends unloading subsample FIFO 90 for several frames until the data volume over the copy stream subsides. Subsample FIFO 90 may overflow during this time. The peripheral's microprocessor 48 will then flush subsample FIFO 90, wait for the next frame or field boundary, and then restart the subsample video stream.
Other embodiments of the invention are within the scope of the claims.
What is claimed is:

Claims

1. Apparatus for displaying a reduced-size image in a window of a display of a host computer, the image being based upon subsampled digital image data, the host computer including a central processing unit (CPU) , a display, a display memory connected to said display, and a system bus connected to said central processing unit and said display memory, said apparatus comprising: a peripheral controller including a subsampler that receives digital source image data and outputs subsampled image data, and window display means for receiving said subsampled image data and a directive from said host computer indicating the location on said display for said window and for autonomously writing said subsampled data through said system bus into said display memory at addresses corresponding to said window, said writing being carried out independently of said host CPU.
2. The apparatus of claim 1 wherein said subsampler is programmable to extract a subsampled subset of said digital image data such that the subsampled image data create an image in said window on said display having a desired image size.
3. The apparatus of claim 2 wherein said programming of the image size of said window is under the direction of said host computer.
4. The apparatus of claim 1 wherein said digital source image data are in an interlaced form, and said window display means comprises de-interlacing means for de-interlacing scan lines of fields of interlaced image data.
5. The apparatus of claim 4 wherein said display memory comprises memory cells at a plurality of addresses, and said de-interlacing means comprises address generation means for generating addresses in said display memory, said generated display memory addresses being partitioned into sequential groups corresponding to said scan lines, and ordered to effect said de- interlacing of said interlaced scan lines.
6. The apparatus of claim 4 wherein said subsampler outputs said subsampled image data in an interlaced order, and the apparatus further comprises a queueing store in which said interlaced subsampled image data are stored, and said de-interlacing means comprises a de-interlacer for unloading said interlaced subsampled image data from said queueing store and storing successive scan lines of said subsampled image data into alternate scan lines of said display memory.
7. The apparatus of claim 1 further comprising a FIFO for storing said subsampled data before said subsampled data are written to said display memory.
8. The apparatus of claim 1 wherein said window display means comprises control means to establish a screen location and size of said window and memory locations in said display memory corresponding to said screen location, and means to transfer said subsampled data to said display memory without requiring intervention of said host CPU.
9. The apparatus of claim 1 wherein said peripheral controller further comprises other data transfer paths, and a priority scheduler to temporarily suspend said window display means in order to allow the timely completion of transfer of data of priority higher than said subsampled data.
10. The apparatus of claim 9 wherein said other data transfer paths comprise FIFOs for temporarily storing data on those paths, each said FIFO having monitoring means for determining the amount of data in said FIFO, and said priority scheduler monitors said monitoring means to suspend said window display means.
11. The apparatus of claim 9 further comprising means for restarting said window display means when said higher-priority transfer is complete, said restarting being effected without the supervision of said host CPU.
12. The apparatus of claim 9 wherein said other data transfer paths comprise a compression coder or a decompression decoder.
13. The apparatus of claim 1 further comprising window specification means that receives from an application program running on said host computer a screen location and image size of said window, and controls said window display means to write said subsampled data into said display memory at memory locations corresponding to the screen location of said window so that said image data can thereafter be transferred to said host display memory without requiring the involvement or intervention of the host CPU.
14. The apparatus of claim 13 wherein said window specification means comprises means for re-sizing and re¬ positioning said window at another screen location as specified by a user of said host computer, and for controlling said window display means to write said subsampled data into said display memory at memory locations corresponding to said re-sized or re-positioned screen location.
15. The apparatus of claim 1 wherein said subsampled data are written into said display memory to provide an image on said display that changes as a function of time.
16. The apparatus of claim 1 wherein said subsampled image data are displayed on said display with intervention required from the host processor less often than once per frame.
17. The apparatus of claim 1 wherein said display memory has a predetermined protocol for representing the color and brightness value of a pixel on the display, and said peripheral controller further comprises a color space converter for converting said digital image data to image data in said predetermined protocol required by the display.
18. The apparatus of claim 17 wherein said converter converts said digital image data to said predetermined protocol before said subsampler subsamples said image data.
19. The apparatus of claim 1 wherein said host computer is a personal computer, and said peripheral controller is configured as one or more boards to plug into an expansion slot of a personal computer.
20. The apparatus of claim 1 wherein said CPU and said display memory of said host computer are connected by a private bus, and said peripheral bus control circuit is connected to said display memory through both said system bus and said private bus.
21. The apparatus of claim 1 wherein said CPU, display memory, and peripheral bus are connected directly to said system bus.
22. The apparatus of claim 1 wherein said window display means blocks said subsampled image data into blocks for efficient transfer across said system bus into said display memory.
23. Apparatus for displaying digital image data on the display of a host computer, the display having a memory-mapped display memory with a predetermined protocol for representing the color and brightness value of a pixel on the display, the apparatus comprising: a peripheral processor that, at the direction of the host processor, autonomously takes as input the digital image data and stores it into a target display area of the host's display, the target display area specified by the host processor, by writing into the display memory; wherein as part of displaying, the peripheral processor decodes the digital image data from one encoding to the predetermined protocol required by the display; such that active real-time video is displayed on the host's display with intervention required from the host processor less often than once per frame.
24. The apparatus of claim 23 wherein said decoding comprises color space conversion.
25. The apparatus of claim 23 wherein said decoding comprises de-interlacing.
26. The apparatus of claim 23 further comprising a FIFO for storing said decoded image data before said decoded image data are stored into said target display area.
27. A method for displaying a reduced-size video image in a window of a display of a host computer, the reduced-size image displaying subsampled digital image data, the host computer including a central processing unit (CPU) , a display, a display memory connected to said display, and a system bus connected to said central processing unit and said display memory, the method comprising the steps of: issuing a command from said host CPU to a peripheral controller, said command indicating the location on said display for said window; receiving said image data at said peripheral controller, and autonomously subsampling said image data and writing said subsampled data through said system bus into said display memory at addresses corresponding to said window, said receiving, subsampling, and writing being carried out without substantial intervention by said host CPU.
PCT/US1994/002591 1993-04-16 1994-03-11 Displaying a subsampled video image on a computer display WO1994024633A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP6523169A JPH08512439A (en) 1993-04-16 1994-03-11 Display of subsampled video image on computer display
AU65180/94A AU683254B2 (en) 1993-04-16 1994-03-11 Displaying a subsampled video image on a computer display
EP94912766A EP0694189A4 (en) 1993-04-16 1994-03-11 Displaying a subsampled video image on a computer display

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US4910093A 1993-04-16 1993-04-16
US08/049,100 1993-04-16

Publications (1)

Publication Number Publication Date
WO1994024633A1 true WO1994024633A1 (en) 1994-10-27

Family

ID=21958050

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1994/002591 WO1994024633A1 (en) 1993-04-16 1994-03-11 Displaying a subsampled video image on a computer display

Country Status (7)

Country Link
US (2) US5471577A (en)
EP (1) EP0694189A4 (en)
JP (1) JPH08512439A (en)
CN (1) CN1124531A (en)
AU (1) AU683254B2 (en)
CA (1) CA2160563A1 (en)
WO (1) WO1994024633A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996006395A1 (en) * 1994-08-25 1996-02-29 Wright Technologies Pty. Ltd. Data representation and access method
AU689633B2 (en) * 1994-08-25 1998-04-02 Wright Technologies NV Data representation and access method
EP0884900A1 (en) * 1996-12-09 1998-12-16 Sony Corporation Editing device and data transmission method

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0235456B1 (en) * 1985-12-13 1999-03-24 Canon Kabushiki Kaisha Image processing apparatus and method with blocks of compressed data
US5588106A (en) * 1993-08-16 1996-12-24 Nec Corporation Hardware arrangement for controlling multiple overlapping windows in a computer graphic system
US5710895A (en) * 1994-03-22 1998-01-20 Intel Corporation Method and apparatus for capturing and compressing video data in real time
US5768626A (en) * 1994-06-24 1998-06-16 Intel Corporation Method and apparatus for servicing a plurality of FIFO's in a capture gate array
EP0700205A3 (en) * 1994-08-31 1997-04-02 Toshiba Kk Multimedia television receiver and method of booting the same
KR980700633A (en) * 1994-12-06 1998-03-30 로버트 에프. 도너후 CIRCUITS, SYSTEMS AND METHODS FOR CONTROLLING THE DISPLAY OF BLOCKS OF DATA ON A DISPLAY SCREEN
US5638535A (en) * 1995-05-15 1997-06-10 Nvidia Corporation Method and apparatus for providing flow control with lying for input/output operations in a computer system
JP3352288B2 (en) * 1995-07-24 2002-12-03 キヤノン株式会社 Imaging unit and imaging signal processing device
JP3216864B2 (en) * 1995-07-24 2001-10-09 キヤノン株式会社 Imaging system and imaging signal processing device
US5781664A (en) * 1995-09-11 1998-07-14 National Semiconductor Corporation Highly efficient method and structure for motion compensation in a video decompression system
JP3378710B2 (en) * 1995-10-16 2003-02-17 三洋電機株式会社 Reduced image writing / reading method and reduced image processing circuit
JPH09307861A (en) * 1996-05-17 1997-11-28 Sony Corp Signal processing method and signal process
JPH09326958A (en) * 1996-06-05 1997-12-16 Sony Corp Image processing unit and processing method
US5903261A (en) * 1996-06-20 1999-05-11 Data Translation, Inc. Computer based video system
US5874986A (en) * 1996-06-26 1999-02-23 At&T Corp Method for communicating audiovisual programs over a communications network
US6222589B1 (en) * 1996-08-08 2001-04-24 Yves C. Faroudja Displaying video on high-resolution computer-type monitors substantially without motion discontinuities
US6091414A (en) * 1996-10-31 2000-07-18 International Business Machines Corporation System and method for cross-environment interaction in a computerized graphical interface environment
US5867160A (en) * 1996-10-31 1999-02-02 International Business Machines Corporation System and method for task prioritization in computerized graphic interface environments
US6604242B1 (en) * 1998-05-18 2003-08-05 Liberate Technologies Combining television broadcast and personalized/interactive information
AU718798B2 (en) * 1997-01-09 2000-04-20 Canon Kabushiki Kaisha Thumbnail manipulation using fast and aspect ratio zooming, compressing and scaling
US6300980B1 (en) * 1997-02-19 2001-10-09 Compaq Computer Corporation Computer system design for distance viewing of information and media and extensions to display data channel for control panel interface
US6285406B1 (en) * 1997-03-28 2001-09-04 Compaq Computer Corporation Power management schemes for apparatus with converged functionalities
US5986714A (en) * 1997-06-10 1999-11-16 International Business Machines Corporation Method, apparatus and computer program product for selectively reducing bandwidth of real-time video data
JP2002528931A (en) 1997-10-06 2002-09-03 ディーブイディーオー インコーポレーテッド Digital video system and method of providing the same
JPH11203837A (en) * 1998-01-16 1999-07-30 Sony Corp Editing system and method therefor
US6351765B1 (en) 1998-03-09 2002-02-26 Media 100, Inc. Nonlinear video editing system
US6542692B1 (en) 1998-03-19 2003-04-01 Media 100 Inc. Nonlinear video editor
US6409602B1 (en) * 1998-11-06 2002-06-25 New Millenium Gaming Limited Slim terminal gaming system
US7158140B1 (en) * 1999-03-15 2007-01-02 Ati International Srl Method and apparatus for rendering an image in a video graphics adapter
WO2000077974A1 (en) 1999-06-11 2000-12-21 Liberate Technologies Hierarchical open security information delegation and acquisition
US6795863B1 (en) 1999-08-10 2004-09-21 Intline.Com, Inc. System, device and method for combining streaming video with e-mail
US6909469B2 (en) * 1999-08-11 2005-06-21 Silicon Image, Inc. Interlace motion artifact detection using vertical frequency detection and analysis
WO2001080559A2 (en) * 2000-04-18 2001-10-25 Silicon Image Method, system and apparatus for identifying the source type and quality level of a video sequence
JP2001346173A (en) * 2000-05-31 2001-12-14 Sony Corp Image data communication system and method, and image pickup device and image data processing method
US6652378B2 (en) 2001-06-01 2003-11-25 Igt Gaming machines and systems offering simultaneous play of multiple games and methods of gaming
US8267767B2 (en) 2001-08-09 2012-09-18 Igt 3-D reels and 3-D wheels in a gaming machine
US7119811B2 (en) * 2001-08-10 2006-10-10 Pixia Corp. Image display system
WO2003023757A1 (en) * 2001-09-13 2003-03-20 Pixia Corp. Image display system
US6912695B2 (en) 2001-09-13 2005-06-28 Pixia Corp. Data storage and retrieval system and method
US7154514B2 (en) * 2002-09-23 2006-12-26 Sharp Laboratories Of America, Inc. Systems and methods for downscaling an image
US8400568B2 (en) * 2003-09-22 2013-03-19 Broadcom Corporation Multiple device access windowing display
US20080131088A1 (en) * 2006-11-30 2008-06-05 Mitac Technology Corp. Image capture method and audio-video recording method of multi-media electronic device
US8444473B2 (en) 2007-11-09 2013-05-21 Igt Gaming system, gaming device, and gaming method for shifting symbols from a staging area to a symbol matrix
JP2011518522A (en) * 2008-04-18 2011-06-23 ヴィジブル ワールド インコーポレイテッド System and method for compressed display of long video sequences
US8290346B2 (en) * 2008-09-25 2012-10-16 Pixia Corp. Large format video archival, storage, and retrieval system and method
KR101661574B1 (en) * 2009-11-10 2016-10-14 삼성전자주식회사 Camera module for reducing sutter-delay
US8411970B2 (en) 2010-03-16 2013-04-02 Pixia Corp. Method and system for determining statistical data for image pixels having a higher bit depth per band
US9407876B1 (en) 2010-09-14 2016-08-02 Pixia Corp. Method and system for encoding and decoding multiple wide-area surveillance area-of-interest video codestreams
US8949913B1 (en) 2010-09-16 2015-02-03 Pixia Corp. Method of making a video stream from a plurality of viewports within large format imagery
US9460587B2 (en) 2013-09-17 2016-10-04 Igt Gaming system and method for providing a cascading symbol game with shifting symbols in different directions between multiple symbol display position matrices
US9355528B2 (en) 2013-09-17 2016-05-31 Igt Gaming system and method for providing a cascading symbol game with shifting symbols between multiple symbol display position matrices
US9390587B2 (en) 2013-09-17 2016-07-12 Igt Gaming system and method for providing a cascading symbol game with multiple symbol display position symbols
US9418518B2 (en) 2013-09-17 2016-08-16 Igt Gaming system and method for providing a cascading symbol game with interacting symbols
US9472065B2 (en) 2013-09-17 2016-10-18 Igt Gaming system and method for providing a cascading symbol game with interacting symbols
US10068415B2 (en) 2014-04-08 2018-09-04 Igt Gaming system and method providing a multiplayer secondary game having an outcome determined based on play of a primary game of at least one, but not all, of the multiplayer secondary game players
US9875618B2 (en) 2014-07-24 2018-01-23 Igt Gaming system and method employing multi-directional interaction between multiple concurrently played games
US9560366B2 (en) * 2014-10-22 2017-01-31 Broadcom Corporation Video encoding for social media
US10055930B2 (en) 2015-08-11 2018-08-21 Igt Gaming system and method for placing and redeeming sports bets
US10379772B2 (en) 2016-03-16 2019-08-13 Micron Technology, Inc. Apparatuses and methods for operations using compressed and decompressed data
CN114501024B (en) * 2022-04-02 2022-07-19 苏州浪潮智能科技有限公司 Video compression system, method, computer readable storage medium and server
CN114443513B (en) * 2022-04-08 2022-07-05 苏州浪潮智能科技有限公司 Video data reading and writing method and related device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4970663A (en) * 1989-04-28 1990-11-13 Avid Technology, Inc. Method and apparatus for manipulating digital video data
US5109482A (en) * 1989-01-11 1992-04-28 David Bohrman Interactive video control system for displaying user-selectable clips
US5191645A (en) * 1991-02-28 1993-03-02 Sony Corporation Of America Digital signal processing system employing icon displays
US5206929A (en) * 1990-01-19 1993-04-27 Sony Corporation Of America Offline editing system
US5276437A (en) * 1992-04-22 1994-01-04 International Business Machines Corporation Multi-media window manager

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4947257A (en) * 1988-10-04 1990-08-07 Bell Communications Research, Inc. Raster assembly processor
JPH02193265A (en) * 1989-01-23 1990-07-30 Hitachi Ltd Information processing system
US5283561A (en) * 1989-02-24 1994-02-01 International Business Machines Corporation Color television window for a video display unit
EP0384419B1 (en) * 1989-02-24 1995-07-12 International Business Machines Corporation Color-television window for a video-display unit
US5229852A (en) * 1989-12-05 1993-07-20 Rasterops Corporation Real time video converter providing special effects
US5045940A (en) * 1989-12-22 1991-09-03 Avid Technology, Inc. Video/audio transmission systsem and method
US5109465A (en) * 1990-01-16 1992-04-28 Summit Technology, Inc. Beam homogenizer
US5257348A (en) * 1990-05-24 1993-10-26 Apple Computer, Inc. Apparatus for storing data both video and graphics signals in a single frame buffer
US5249164A (en) * 1990-06-27 1993-09-28 Koz Mark C Digital color tv for personal computers
US5437464A (en) * 1991-08-30 1995-08-01 Kabushiki Kaisha Sega Enterprises Data reading and image processing system for CD-ROM
US5355450A (en) * 1992-04-10 1994-10-11 Avid Technology, Inc. Media composer with adjustable source material compression
US5432900A (en) * 1992-06-19 1995-07-11 Intel Corporation Integrated graphics and video computer display system
US5402147A (en) * 1992-10-30 1995-03-28 International Business Machines Corporation Integrated single frame buffer memory for storing graphics and video data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5109482A (en) * 1989-01-11 1992-04-28 David Bohrman Interactive video control system for displaying user-selectable clips
US4970663A (en) * 1989-04-28 1990-11-13 Avid Technology, Inc. Method and apparatus for manipulating digital video data
US5206929A (en) * 1990-01-19 1993-04-27 Sony Corporation Of America Offline editing system
US5191645A (en) * 1991-02-28 1993-03-02 Sony Corporation Of America Digital signal processing system employing icon displays
US5276437A (en) * 1992-04-22 1994-01-04 International Business Machines Corporation Multi-media window manager

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Data Translation Multimedia Group, Press Release, February 1992, "Multimedia Group Strategy and Media 100 Backgrounder", pages 9, 10, 7, 13. *
See also references of EP0694189A4 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996006395A1 (en) * 1994-08-25 1996-02-29 Wright Technologies Pty. Ltd. Data representation and access method
AU689633B2 (en) * 1994-08-25 1998-04-02 Wright Technologies NV Data representation and access method
EP0884900A1 (en) * 1996-12-09 1998-12-16 Sony Corporation Editing device and data transmission method
EP0884900A4 (en) * 1996-12-09 2002-02-13 Sony Corp Editing device and data transmission method
US6591057B2 (en) 1996-12-09 2003-07-08 Sony Corporation Editing device and data transmission method

Also Published As

Publication number Publication date
EP0694189A1 (en) 1996-01-31
AU683254B2 (en) 1997-11-06
JPH08512439A (en) 1996-12-24
EP0694189A4 (en) 1997-01-15
AU6518094A (en) 1994-11-08
CA2160563A1 (en) 1994-10-27
US5706451A (en) 1998-01-06
CN1124531A (en) 1996-06-12
US5471577A (en) 1995-11-28

Similar Documents

Publication Publication Date Title
US5471577A (en) Displaying a subsampled video image on a computer display
AU685098B2 (en) Video peripheral for a computer
US5909250A (en) Adaptive video compression using variable quantization
US6141709A (en) Peripheral circuitry for providing video I/O capabilities to a general purpose host computer
US6263396B1 (en) Programmable interrupt controller with interrupt set/reset register and dynamically alterable interrupt mask for a single interrupt processor
US6512552B1 (en) Subpicture stream change control
US5903261A (en) Computer based video system
US5926223A (en) Adaptive video decompression
US8203649B2 (en) Image processing apparatus and image processing method
JPH07191660A (en) Apparatus, method and circuit constitution for processing of video information
EP0558208A2 (en) Digital video editing processing unit
US5929911A (en) Multiformat reduced memory MPEG-2 compliant decoder
US6587635B1 (en) Subpicture master control
US6335764B1 (en) Video output apparatus
JP2005086822A (en) Apparatus to process video data and graphic data
JPH04273677A (en) Picture display device
JP2001268527A (en) Picture signal processor

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 94192267.7

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AT AU BB BG BR BY CA CH CN CZ DE DK ES FI GB HU JP KP KR KZ LK LU MG MN MW NL NO NZ PL PT RO RU SD SE SK UA VN

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2160563

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 1994912766

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1994912766

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWW Wipo information: withdrawn in national office

Ref document number: 1994912766

Country of ref document: EP