Information
-
Patent Grant
-
6320594
-
Patent Number
6,320,594
-
Date Filed
Tuesday, July 21, 199826 years ago
-
Date Issued
Tuesday, November 20, 200123 years ago
-
Inventors
-
Original Assignees
-
Examiners
- Jankus; Almis R.
- Cunningham; G. F.
Agents
- Schwegman Lundberg Woessner & Kluth
-
CPC
-
US Classifications
Field of Search
US
- 345 153
- 345 154
- 345 155
- 345 199
- 345 603
- 345 604
- 345 605
- 348 390
- 348 396
- 348 384
- 348 674
- 348 675
- 358 16
- 358 32
-
International Classifications
-
Abstract
A non-linear digital video compression circuit and method. The video compression circuit includes a source of digital video data signal, wherein the digital video data has M-bits of information for each of a Y, U, and V value per pixel. Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component. The circuit also includes a compression lookup table having an M-bit input coupled to the source of digital video data, and an N-bit compressed digital video data output, where N is less than M. The compression lookup table includes a non-linear compression transformation for at least one of Y, U and V. In one embodiment, the compression lookup table includes a non-linear compression transformation that provides a different conversion for Y than for U or that provides a different conversion for Y than for V. In one such embodiment, the digital video compression circuit further includes a Y-U-V state circuit coupled to the compression lookup table that controls which one of the conversions for Y and U and V is performed. In one such embodiment, M is ten and N is eight (thus providing a 10-bit to 8-bit compression), and the state circuit has an output coupled to the compression lookup table that specifies which one of the conversions is performed.
Description
FIELD OF THE INVENTION
The present invention is related to video compression and in particular to a circuit and method for compressing 10-bit video streams for display through an 8-bit VGA video port of a computer.
BACKGROUND OF THE INVENTION
A standardized YUV video system represents video information using a luminance component (Y) and a two-dimensional chromaticity component (UV). Such representations are sometimes called chromaticity spaces. The YUV system was designed to allow measurement of color differences, and exhibits a correlation between, “distance” computed from coordinate differences and subjective color differences reported by observers.
In some computer systems, digital video signals are provided as streams of ten-bit YUV values: a ten-bit value for Y. the luminance component; a ten-bit value for the U portion of the two-dimensional chromaticity component, and a ten-bit value for the V portion of the two-dimensional chromaticity component.
In many computer video-graphics adaptors, eight-bit values are used for representing colors. Such systems often use three color values for a total of 24 bits representing the color of each pixel.
For speed, cost, and convenience it would be desirable to present digital video in eight-bit quantities, but at the same time preserve subjective qualities of the video signal. Therefore, there is a need for a circuit and method for compressing 10-bit video streams for display through an 8-bit VGA video port of a computer.
SUMMARY OF THE INVENTION
The present invention provides a nonlinear digital video compression circuit and method. The circuit includes a source of digital video data signal, wherein the digital video data has M-bits of information for each of a Y, U, and V value per pixel. Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component. The circuit also includes a compression lookup table having an M-bit input coupled to the source of digital video data, and an N-bit compressed digital video data output, where N is less than M. The compression lookup table includes a non-linear compression transformation for at least one of Y, U and V.
In one embodiment, the compression lookup table of the non-linear digital video compression circuit includes a non-linear compression transformation that provides a different conversion for Y than for U or that provides a different conversion for Y than for V. In one such embodiment, the digital video compression circuit further includes a state circuit coupled to the compression lookup table that controls which one of the conversions for Y and U and V is performed. In one such embodiment, M is ten and N is eight (thus providing a 10-bit to 8-bit compression), and the state circuit has an output coupled to the compression lookup table that specifies which one of the conversions is performed.
In another embodiment, the compression transformation of the non-linear digital video compression circuit further includes a conversion for blanking portions of the digital video data signal. In one such embodiment, the digital video compression circuit further includes a state circuit coupled to the compression lookup table that controls which one of the conversions for Y and U and V and blanking is performed. In one such embodiment, M is ten and N is eight.
Another aspect of the present invention provides a digital video compression circuit and method. This compression circuit includes a source of digital video data signal, the digital video data having M-bits of information for each of a Y, U, and V value per pixel, where Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component. A compression lookup table having an M-bit address input is coupled to the source of digital video data. This compression lookup table has an N-bit compressed digital video data output, where N is less than M. The compression lookup table includes a compression transformation that provides three different conversions for Y and U and V.
In one embodiment, the digital video compression circuit has a compression transformation that further includes a fourth conversion for blanking portions of the digital video data signal. In one such embodiment, the digital video compression circuits further includes a state circuit coupled to the compression lookup table that controls which one of the conversions for Y and U and V and blanking is performed.
In another embodiment, the digital video compression circuit further includes a state circuit coupled to the compression lookup table that controls which one of the three different conversions for Y and U and V is performed. In one such embodiment, M is ten, N is eight, and the state circuit has an output coupled to the compression lookup table that specifies which one of the three conversions is performed.
Yet another aspect of the present invention provides a method for compressing digital video. This method includes the steps of:
providing a digital video data signal, the digital video data having M-bits of information for each of a Y, U, and V value per pixel, where Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component;
performing an M-bit to N-bit compression transformation that is non-linear for at least one of Y, U and V; and
outputting N-bit compressed digital video data output having N-bits of information for each of a compressed Y, U, and V value per pixel, where N is less than M.
In one embodiment, the method includes a compression transformation that provides a different conversion for Y than for U or that provides a different conversion for Y than for V.
In another embodiment, the method includes a compression transformation that further includes a conversion for blanking portions of the digital video data signal.
In yet another embodiments, the method further includes the step of determining a state of at least Y, U, or V, wherein the state controls which one of the conversions for Y and U and V and blanking is performed, or the step of determining a state of at least Y, U, or Y. wherein the state controls which one of the conversions for Y and U and V is performed.
In some embodiments of the methods described above, M is ten and N is eight.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1
is a block diagram of a computer system according to the present invention.
FIG. 2A
shows a representation of a YUV data stream
200
.
FIG. 2B
is a idealized timing diagram of YUV video data and associated clocks and address signals.
FIG. 3
is an exaggerated graph showing one non-linear transformation from 10-bit input address to 8-bit output value.
FIG. 4A
is a block diagram of one circuit to compress YUV digital video data according to the present invention.
FIG. 4B
is a block diagram of another circuit to compress YUV digital video data according to the present invention.
FIG. 5
is a block diagram of lookup table
540
.
FIG. 6
shows a computer system
100
that employs the video compression of the present invention.
DESCRIPTION OF THE EMBODIMENTS
In the following detailed description of the embodiments, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that structural, logical and electrical changes may be made without departing from the spirit and scope of the present inventions. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present inventions is defined only by the appended claims.
The leading digits of reference numbers appearing in the Figures generally correspond to the Figure number, with the exception that the same reference number is used throughout to refer to an identical component which appears in multiple Figures. Signals and connections may be referred to by the same reference number or label, and the actual meaning will be clear from its use in the context of the description.
FIG. 1
shows a block diagram of a computer system
100
according to the present invention. In this embodiment, processor
102
, system controller
112
, cache
114
, and data-path chip
118
are each coupled to host bus
11
O. Processor
102
is a microprocessor such as a 486-type chip, a Pentium®, Pentium II® or other suitable microprocessor. Cache
114
provides high-speed local-memory data (in one embodiment, for example, 512 KB of data) for processor
102
, and is controlled by system controller
112
, which loads cache
114
with data that is expected to be used soon after the data is placed in cache
112
(i.e., in the near future). Main memory
116
is coupled between system controller
114
and data-path chip
118
, and in one embodiment, provides random-access memory of between 16 MB and 128 MB of data. In one embodiment, main memory
116
is provided on SIMs (Single In-line Memory Modules), while in another embodiment, main memory
116
is provided on DIMMs (Dual In-line Memory Modules), each of which plugs into suitable sockets provided on a motherboard holding many of the other components shown in FIG.
1
. Main memory
116
includes standard DRAM (Dynamic Random-Access Memory), EDO (Extended Data Out) DRAM, SDRAM (Synchronous DRAM), or other suitable memory technology. System controller
112
controls PCI (Peripheral Component Interconnect) bus
120
, a local bus for system
100
that provides a high-speed data path between processor
102
and various peripheral devices, such as video, disk, network, etc. Data-path chip
118
is also controlled by system controller
112
to assist in routing data between main memory I
16
, host bus
110
, and PCI bus
120
.
In one embodiment, PCI bus
120
provides a 32-bit-wide data path that runs at 33 MHZ. In another embodiment, PCI bus
120
provides a 64-bit-wide data path that runs at 33 MHZ. In yet other embodiments, PCI bus
120
provides 32-bit-wide or 64 -bit-wide data paths that runs at higher speeds. In one embodiment, PCI bus
120
provides connectivity to
1
/O bridge
122
, graphics controller
127
, and one or more PCI connectors
121
, each of which accepts a standard PCI card. In one embodiment, I/O bridge
122
and graphics controller
127
are each integrated on the motherboard along with system controller
112
, in order to avoid a board-connector-board signal-crossing interface and thus provide better speed and reliability. In the embodiment shown, graphics controller
127
is coupled to a video memory
128
(that includes memory such as DRAM, EDO DRAM, SDRAM, or VRAM (Video Random-Access Memory)), and drives VGA (Video Graphics Adaptor) port
129
. VGA port
129
can connect to VGA-type or SVCA (Super VGA)-type displays. Other input/output (I/O) cards having a PCI interface can be plugged into PCI connectors
121
.
FIG. 1
shows a block diagram of a computer system
100
according to the present invention. In this embodiment, processor
102
, system controller
112
, cache
114
, and data-path chip
118
are each coupled to host bus
110
. Processor
102
is a microprocessor such as a 486-type chip, a Pentium®, Pentium II® or other suitable microprocessor. Cache
114
provides high-speed local-memory data (in one embodiment, for example, 512 KB of data) for processor
102
, and is controlled by system controller
112
, which loads cache
114
with data that is expected to be used soon after the data is placed in cache
112
(i.e., in the near future). Main memory
116
is coupled between system controller
114
and datapath chip
118
, and in one embodiment, provides random-access memory of between 16 MB and 128 MB of data. In one embodiment, main memory
116
is provided on SIMMs (Single In-line Memory Modules), while in. another embodiment, main memory
116
is provided on DZMs (Dual In-line Memory Modules), each of which plugs into suitable sockets provided on a motherboard holding many of the other components shown in FIG.
1
. Main memory
116
includes standard DRAM (Dynamic Random-Access Memory), EDO (Extended Data Out) DRAM, SDRAM (Synchronous DRAM), or other suitable memory technology. System controller
112
controls PCI (Peripheral Component Interconnect) bus
120
, a local bus for system
100
that provides a high-speed data path between processor
102
and various peripheral devices, such as graphics devices, storage drives, network cabling, etc. Data-path chip
118
is also controlled by system controller
112
to assist in routing data between main memory
116
, host bus
11
O, and PCI bus
120
.
In one embodiment, PCI bus
120
provides a 32-bit-wide data path that runs at 33 MHZ. In another embodiment, PCI bus
120
provides a 64-bit-wide data path that runs at 33 MHZ. In yet other embodiments, PCI bus
120
provides 32-bit-wide or 64-bit-wide data paths that runs at higher speeds. In one embodiment, PCI bus
120
provides connectivity to I/O bridge
122
, graphics controller
127
, and one or more PCI connectors
121
(i.e., sockets into which a card edge may be inserted), each of which accepts a standard PCI card. In one embodiment, I/O bridge
122
and graphics controller
127
are each integrated on the motherboard along with system controller
112
, in order to avoid a board-connector-board signal-crossing interface and thus provide better speed and reliability. In the embodiment shown, graphics controller
127
is coupled to a video memory
128
(that includes memory such as DRAM, EDO DRAM, SDRAM, or VRAM (Video Random-Access Memory)), and drives VGA (Video Graphics Adaptor) port
129
. VGA port
129
can connect to industry-standard monitors such as VGA-type, SVGA (Super VGA)-type, XGA-type (extended Graphics Adaptor) or SXGA-type (Super XGA) display devices. Other input/output (I/O) cards having a PCI interface can be plugged into PCI connectors
121
.
In one embodiment, I/O bridge
122
is a chip that provides connection and control to one or more independent IDE connectors
124
, one or more SCSI (small computer systems interface) connectors
125
, to a USB (Universal Serial Bus) port
126
, and to ISA (Industry Standard Architecture) bus
130
. In this embodiment, IDE connector
124
provides connectivity for up to two standard IDE-type devices such as hard disk drives, CDROM (Compact Disk-Read-Only Memory) drives, DVD (Digital Video Disk) drives, or TBU (Tape-Backup Unit) devices. In one similar embodiment, two IDE connectors
124
are provided, and each provide the EIDE (Enhanced IDE) architecture. In the embodiment shown, SCSI (Small Computer System Interface) connector
125
provides connectivity for up to seven or fifteen SCSI-type devices (depending on the version of SCSI supported by the embodiment). In one embodiment, I/O bridge
122
provides ISA bus
130
having one or more ISA connectors
131
(in one embodiment, three connectors are provided). In one, embodiment, ISA bus
130
is coupled to
110
controller
152
, which in turn provides connections to two serial ports
154
and
155
, parallel port
156
, and FDD (Floppy-Disk Drive) connector
157
. In one embodiment, ISA bus
130
is connected to buffer
132
, which is connected to X bus
140
, which provides connections to real-time clock
142
, keyboard/mouse controller
144
and keyboard BIOS ROM (Basic Input/Output System Read-Only Memory)
145
, and to system BIOS ROM
146
.
FIG. 1
shows one exemplary embodiment of the present invention, however other bus structures and memory arrangements are specifically contemplated.
In one embodiment, I/O bridge
122
is a chip that provides connection and control to one or more independent IDE connectors
124
-
125
, to a USB (Universal Serial Bus) port
126
, and to ISA (Industry Standard Architecture) bus
130
. In this embodiment, IDE connector
124
provides connectivity for up to two standard IDE-type devices such as hard disk drives or CDROM (Compact Disk-Read-Only Memory) drives, and similarly IDE connector
125
provides connectivity for up to two IDE-type-devices. In one such embodiment, IDE connectors
124
and
125
each provide the EIDE (Enhanced IDE) architecture. In one embodiment, I/O bridge
122
provides ISA bus
130
having one or more ISA connectors
131
(in one embodiment, three connectors are provided). In one embodiment, ISA bus
130
is coupled to I/O controller
152
, which in turn provides connections to two serial ports
154
and
155
, parallel port
156
, and FDD (Floppy-Disk Drive) connector
157
. In one embodiment, ISA bus
130
is connected to buffer
132
, which is connected to X bus
140
, which provides connections to real-time clock
142
, keyboard/mouse controller
144
and keyboard BIOS ROM (Basic Input/Output System Read-Only Memory)
145
, and to system BIOS ROM
146
.
Ten-bit resolution is typically required in order for a video stream to be considered “broadcast-quality” video. Current video-graphics adaptor (VGA) controllers in common use support only eight-bit resolution. The present invention provides a non-linear conversion on the video stream, compressing the ten-bit values to eight-bit values while preserving as much as possible of the dynamic range and the color as perceived by a user. Further, a gamma correction is provided in some embodiments. Still further, the display characteristics of a particular VGA display subsystem are compensated for in some embodiments. In contrast, a “compression” scheme that merely truncated or rounded each ten-bit value to an eight-bit value are linear and would lose dynamic range or color fidelity, and give too little freedom in preserving or changing the dynamic range of the video stream. Often, pixel representations whose values differ only in the lower two bits of their ten-bit YUV values should be represented by different colors, something not possible if the lower two bits are merely truncated by the compression scheme.
The present invention, thus, uses a non-linear compression transformation on at least one of Y, U and V, and preferably on all three values of every pixel.
FIG. 2A
shows a representation of a YUV data stream
200
. One or more frame-blanking values
210
provide a synchronization reference for the start of a video image frame. One or more line-blanking values
220
provide a synchronization reference for the start of a video image line. Following the line blanking, a plurality of pixels
230
are presented, each pixel represented by a Y value
232
, a U value
234
, and a V value
236
.
In one embodiment, the frame blanking and line blanking portions of the signal are separated, and an “active” signal is provided only during the time that A, U, and V values are presented, and thus only the Y, U, and V values are transformed by the lookup table transformation.
FIG. 2B
is a timing diagram
201
of YUV video data and associated clocks and address signals. Video clock
202
provides a timing reference for the YUV data. Video data
204
provides y, u, and V data on successive clocks of video clock
202
. “Active” signal
206
provides an indication of when the YUV data is active. A11 signal
208
and A10 signal
210
provide state information to the storage used for the table lookup function used for the non-linear compression function.
FIG. 3
is an exaggerated graph showing one non-linear transformation from 10-bit input address to 8-bit output value for one embodiment of the present invention. The transformation of
FIG. 3
can be used to provide gamma correction to the Y component of the signal. In one embodiment, different transformations are provided for Y than for U, and than for V. In one embodiment, the exact transformation to be used is derived empirically by varying the curve of the transfer function and determining which of the various transfer functions provides the most aesthetically pleasing result. Further variations are then performed, and the best result is iteratively obtained. Once obtained, the transformation can be either permanently written into a read-only memory lookup table, or can be placed into a read-write memory for use.
FIG. 4A
is a block diagram of a circuit to compress YUV digital video data according to the present invention. In this embodiment , a high-quality video source
410
presents a YUV video data stream
414
having 10-bit values for Y, U, and V presented for each successive image pixel (picture element). The video stream also includes blanking/synchronization signals for each frame and for each line within a frame. In this embodiment, video synchronization (VSYNC), horizontal synchronization (HSYNC), and blanking (BLANK) are separated and provided to control circuit
420
. In one embodiment, video data stream
414
is implemented as a 10-bit-wide parallel bus. State machine
420
is controlled by data stream
414
, and outputs a 2-bit state, value
424
indicative of one of four states: blanking, Y, U, or V, corresponding to the ten-bit value on data stream
414
.
In one embodiment as shown in
FIG. 4B
, since there is some amount of delay in generating 2-bit state value
424
, a delay circuit
413
adjusts the timing of the ten-bit data stream
414
, and thus outputs delayed data stream
423
in order to match the timing of 2-bit state value
424
. In this embodiment, state machine (control circuit)
420
also derives the VSYNC, HSYNC, and blanking timing signals, as well as the Y, U, and V state from the ten-bit wide signal
414
. In this embodiment, two-bit state value
424
and ten-bit delayed data stream
423
together form a twelve-bit address used as an input to lookup table (LUT)
430
. LUT
430
then generates 8-bit converted data stream
432
.
Control circuit
420
keeps track of whether the current 10-bit value from the video source
410
is a luminance value (Y), or Cr (U) or Cb (V) value, or if the video is in a blanking period. In one embodiment, during the blanking period, straight truncation is used, wherein the upper-order eight bits of the ten-bit input are used for the eight-bit output. In one such embodiment, this preserves CCIR656 standard codes which are embedded in the blanking portion of the video stream.
In some embodiments, such as shown in
FIG. 4A
, the video source
410
provides certain control signals such as VSYNC and HSYNC which are easily used to determine the start of the YUV sequences and to enable the “active” signal for each line. Many video sources, such as certain video digitizers and MPEG decoders, provide such separate timing and control signals. The embodiment shown in
FIG. 4A
is also “synchronous” in that video clock
402
is used to synchronize tinning in the circuit. In other embodiments such as shown in
FIG. 4B
, codes embedded in the video stream need to be interpreted in order to determine the video timing. The embodiment shown in
FIG. 4B
is “partially asynchronous” in no video clock is used to synchronize timing in the circuit, but rather, fast enough logic (and appropriate delay logic as needed) is used to meet address set-up times. In some synchronous embodiments such as FIG.
4
A, corresponding delay logic is used to ensure that control/clock signals arrive in sync with the data/address signals.
Effectively, 2-bit state value
424
identifies one of four look-up subtables, the four subtables corresponding to blanking, Y, U, and V.
FIG. 5
shows LUT
540
including blanking subtable
543
, Y subtable
544
, U subtable
545
, and V subtable
546
. In one embodiment, each subtable includes 1024 eight-bit values, wherein the two-bit state value
424
selects one of the subtables, and the corresponding ten-bit value from delayed data stream
423
selects one of the eight-bit data values to output. Since each subtable is independent of the others, different compression/conversion transformations can be used for each of the four components of data stream
414
.
In one embodiment, since its contents need not change, LUT
540
is implemented as a read-only memory (ROM) of any suitable technology (e.g., normal ROM, electrically programmable ROM (EPROM), or electrically erasable and programmable ROM (EEPROM)). In other embodiments, LUT
540
is implemented in. loadable readable and writeable random-access memory (RAM), and in these embodiments, the contents of LUT
540
can be changed from time to time as needed or desired by the user. For example, a software-controlled brightness and contrast control can be implemented by changing the transformation curve for the luminescence by changing the contents of the Y subtable
544
. Similarly, the color of the display output. can be changed by software from time to time by changing the transformation curves in the U and/or V subtables
545
and
546
. Similarly, the characteristics of particular display subsystems can be compensated for by loading subtables optimized for those display subsystems.
Thus, the blanking subtable
543
can be used to remove noise or other unwanted data or artifacts from the blanking portions of the video data stream
414
. Since state machine determines that the values during the blanking period are to be converted according to the blanking subtable, a wider range of values can be accommodated during the blanking period, and still output blanking values into 8-bit converted data stream
432
that are compatible with the 8-bit VGA display subsystem.
The Y subtable performs a non-linear transformation from 10-bit Y values to 8-bit Y values. In one embodiment, the exact transformations to be used (i.e., the contents of the Y subtable
544
) is empirically derived.
In one embodiment, the blanking transformation (in one such embodiment, a pass-through transformation) is stored in locations
0
-
1023
in LUT
530
(implemented in memory
430
); the Y compression data is stored in locations
1024
-
2047
in LUT
530
; the U compression data is stored in locations
2048
-
3071
in LUT
530
; and the V compression data is stored in locations
3072
-
4095
in LUT
530
. As described above, in one embodiment, the non-linear transformations embodied in the Y, U, and V compression data are empirically derived. In one such embodiment, the Y compression, data also include a gamma correction factor such as represented in FIG.
3
.
In one embodiment of the present invention as shown in
FIG. 6
, computer
100
is a complete system that employs the video compression of the present invention. In one such embodiment, system
100
includes removable-media drive
612
(such as a floppy-disk drive, and/or a ZIP-type or a JAZ-type high-capacity drive available from IOMEGA Corporation of Roy, Utah). In one embodiment, removable-media drive
612
is used to read program code
150
from program media
650
. Media
650
(such as a floppy disk, a ZIP-type cartridge or a JAZ-type high-capacity cartridge) is suitable for a corresponding removable media drive
612
. In that embodiment, program media
650
is used to distribute program code
150
to customers. In another embodiment, computer
100
is connected to computer network
660
(such as a local-area network (LAN), or a wide-area network such as the internet). In such a network environment, program code
150
is read from or written to computer network
660
. In one such embodiment, computer network
660
is the media used to distribute program code
150
to customers.
In one embodiment, program code
150
includes code to load the appropriate Y, U, V, and/or blanking transfer function values into LUT
430
. In one such embodiment, media
650
also has stored on it data values corresponding to the values to be loaded into LUT
430
, such that various transfer functions can be placed onto computer readable media (such as media
650
or network
660
) and can be distributed to users in that convenient form. In one such embodiment, more than one variant of the YUV transfer function is included on a single media, so that a user can pick and choose a transfer function best suited for their type of display adaptor, display, or aesthetic sense.
It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other embodiments Will be apparent to those of skill in the art upon reviewing the above description. The scope of the invention should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
Claims
- 1. A non-linear digital video compression circuit comprising:a source of digital video data signal, the digital video data having M-bits of information for each of a Y, U, and V value per pixel, where Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component; and a compression lookup table having a M-bit input coupled to the source of digital video data, and an N-bit compressed digital video data output, where N is less than M, wherein the compression lookup table includes a non-linear compression transformation for at least one of the Y, U and V values, wherein the compression transformation further includes a conversion for blanking portions of the digital video data signal.
- 2. The non-linear digital video compression circuit according to claim 1, further comprising:a state circuit coupled to the compression lookup table that controls which one of the conversions for Y and U and V and blanking is performed.
- 3. A non-linear digital video compression circuit comprising:a source of digital video data signal, the digital video data having M-bits of information for each of a Y, U, and V value per pixel, where Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component; a compression lookup table having an M-bit input coupled to the source of digital video data and an N-bit compressed digital video data output, where N is less than M, wherein the compression lookup table includes a non-linear compression transformation for at least one of Y, U and V that provides a different conversion for Y than for U or that provides a different conversion for Y than for V; and a state circuit coupled to the compression lookup table that controls which one of the conversions for Y and U and V is performed.
- 4. The non-linear digital video compression circuit according to claim 3, wherein M is ten, N is eight, and the state circuit has an output coupled to the compression lookup table that specifies which one of the conversions is performed.
- 5. A digital video compression circuit comprising:a source of digital video data signal, the digital video data having M-bits of information for each of a Y, U, and V value per pixel, where Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component; and a compression lookup table having an M-bit address input coupled to the source of digital video data, and an N-bit compressed digital video data output, where N is less than M, wherein the compression lookup table includes a compression transformation that provides three different conversions for Y and U and V, and wherein the compression transformation further includes a fourth conversion for blanking portions of the digital video data signal.
- 6. The digital video compression circuit according to claim 5, further comprising:a state circuit coupled to the compression lookup table that controls which one of the conversions for Y and U and V and blanking is performed.
- 7. A digital video compression circuit comprising:a source of digital video data signal, the digital video data having M-bits of information for each of a Y, U, and V value per pixel, where Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component; a compression lookup table having an M-bit address input coupled to the source of digital video data, and an N-bit compressed digital video data output, where N is less than M, wherein the compressions lookup table includes a compression transformation that provides three different conversions for Y and U and V; and a state circuit coupled to the compression lookup table that controls which one of the three different conversions for Y and U and V is performed.
- 8. The digital video compression circuit according to claim 7, wherein M is ten, N is eight, and the state circuit has an output coupled to the compression lookup table that specifies which one of the three conversions is performed.
- 9. A method for compressing digital video comprising the steps of:providing a digital video data signal, the digital video data having M-bits of information for each of a Y, U, and V value per pixel, where Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component; performing an M-bit to N-bit compression transformation that is non-linear for at least one of Y, U and V; and outputting N-bit compressed digital video data output having N-bits of information for each of a compressed Y, U, and V value per pixel, where N is less than M, wherein the compression transformation further includes a conversion for blanking portions of the digital video data signal.
- 10. The method according to claim 9, further comprising the step of:determining a state of at least Y, U, or V, wherein the state controls which one of the conversions for Y and U and V and blanking is performed.
- 11. A method for compressing digital video comprising the steps of:providing a digital video data signal, the digital video data having M-bits of information for each of a Y, U, and V value per pixel, where Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component; performing an M-bit to N-bit compression transformation that is non-linear for at least one of Y, U and V; and outputting N-bit compressed digital video data output having N-bits of information for each of a compressed Y, U, and V value per pixel, where N is less than M; and determining a state of at least Y, U, or V, wherein the state controls which one of the conversions for Y and U and V is performed.
- 12. The method according to claim 10, wherein M is ten and N is eight.
- 13. A storage medium having a computer program stored thereon for causing a suitably programmed system to compress digital video by performing the following steps when such program is executed on the system:providing a digital video data signal, the digital video data having M-bits of information for each of a Y, U, and V value per pixel, where Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component; performing an M-bit to N-bit compression transformation that is non-linear for at least one of Y, U and V; and outputting N-bit compressed digital video data output having N-bits of information for each of a compressed Y, U, and V value per pixel, where N is less than M, wherein the storage medium further has a data structure stored thereon, wherein the data structure includes values for a lookup table that provides a non-linear compression transformation.
- 14. A storage medium having a computer program stored thereon for causing a suitably programmed system to compress digital video by performing the following steps when such program is executed on the system:providing a digital video data signal, the digital video data having M-bits of information for each of a Y, U, and V value per pixel, where Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component; performing an M-bit to N-bit compression transformation that is non-linear for at least one of Y, U and V; and outputting N-bit compressed digital video data output having N-bits of information for each of a compressed Y, U, and V value per pixel, where N is less than M, wherein the computer program comprises programming for further causing the system, when such program is executed on the system, to perform the following additional step: determining a state of at least Y, U, or V, wherein the state controls which one of the conversions for Y and U and V and blanking is performed.
- 15. The non-linear digital video compression circuit according to claim 1, wherein M is ten and N is eight.
- 16. The digital video compression circuit according to claim 7, wherein the compression transformation further includes a fourth conversion for blanking portions of the digital video data signal.
- 17. The method according to claim 9, wherein M is ten and N is eight.
- 18. The method according to claim 9, wherein the steps are performed in an order other than that shown.
- 19. The method according to claim 11, wherein M is ten and N is eight.
- 20. The method according to claim 11, wherein the steps are performed in an order other than that shown.
- 21. The storage medium according to claim 14 wherein the steps are performed in an order other than that shown.
- 22. An information-processing system comprising:a digital video compression circuit including: a source of digital video data signal, the digital video data having M-bits of information for a blanking portion of the signal, and M-bits of information for each of a Y, U, and V value per pixel, where Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component; and a compression lookup table having an M-bit input coupled to the source of digital video data, and an N-bit compressed digital video data output, where N is less than M, wherein the compression lookup table provides a non-linear compression of at least one of the Y, U, V and blanking portions of the digital video data signal.
- 23. The information-processing system of claim 22, further comprising:a bus; a main memory; an input/output subsystem operatively coupled transfer data to and from the bus; a system processor operatively coupled transfer data to and from the main memory and to and from the bus; and a graphics processor operatively coupled receive data from the bus and from the digital video compression circuit.
- 24. The information-processing system of claim 22, wherein the compression lookup table includes a compression transformation that provides four different conversions for Y and U and V and blanking portions of the digital video data signal.
- 25. The information-processing system of claim 24, further comprising:a bus; a main memory; an input/output subsystem operatively coupled transfer data to and from the bus; a system processor operatively coupled transfer data to and from the main memory and to and from the bus; and a graphics processor operatively coupled receive data from the bus and from the digital video compression circuit.
- 26. The digital video compression circuit according to claim 24, further comprising:a state circuit coupled to the compression lookup table that controls which one of the conversions for Y and U and V and blanking is performed.
- 27. The information-processing system of claim 26, further comprising:a bus; a main memory; an input/output subsystem operatively coupled transfer data to and from the bus; a system processor operatively coupled transfer data to and from the main memory and to and from the bus; and a graphics processor operatively coupled receive data from the bus and from the digital video compression circuit.
- 28. An information-processing system comprising:a digital video compression circuit including: a source of digital video data signal, the digital video data having M-bits of information for each of a Y, U, and V value per pixel, where Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component; a compression lookup table having an M-bit address input coupled to the source of digital video data, and an N-bit compressed digital video data output, where N is less than M, wherein the compression lookup table includes a compression transformation that provides three different conversions of Y and U and V; and a state circuit coupled to the compression lookup table that controls which one of the three different conversions for Y and U and V is performed.
- 29. The information-processing system of claim 28, further comprising:a bus; a main memory; an input/output subsystem operatively coupled transfer data to and from the bus; a system processor operatively coupled transfer data to and from the main memory and to and from the bus; and a graphics processor operatively coupled receive data from the bus and from the digital video compression circuit.
- 30. The digital video compression circuit according to claim 28, wherein the compression lookup table includes a non-linear compression transformation for at least one of Y, U and V.
- 31. The information-processing system of claim 30, further comprising:a bus; a main memory; an input/output subsystem operatively coupled transfer data to and from the bus; a system processor operatively coupled transfer data to and from the main memory and to and from the bus; and a graphics processor operatively coupled receive data from the bus and from the digital video compression circuit.
- 32. A method for compressing digital video comprising:providing a digital video data signal, the digital video data having M-bits of information for a each of a Y portion, a U portion, a V portion, and a blanking portion of the signal, where Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component; performing an M-bit to N-bit compression transformation that is non-linear for at least one of the Y, U, V, and blanking portions; and outputting N-bit compressed digital video data output having N-bits of information for each of a compressed Y, U, V, and blanking portion, where N is less than M.
- 33. The method according to claim 32, further comprising:determining a state of at least Y, U, or V, wherein the state controls which one of the conversions for Y and U and V and blanking is performed.
- 34. A storage medium having a computer program stored thereon for causing a suitably programmed system to compress digital video by performing the method according to claim 33.
- 35. A storage medium having a computer program stored thereon for causing a suitably programmed system to compress digital video by performing the method according to claim 32.
- 36. A method for compressing digital video comprising:providing a digital video data signal, the digital video data having M-bits of information for each of a Y, U, and V value per pixel, where Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component. determining a state of at least Y, U, and V; performing an M-bit to N-bit compression transformation that is non-linear for at least one of Y, U and V, wherein the state controls which one of the conversions for Y and U and V is performed; and outputting N-bit compressed digital video data output having N-bits of information for each of a compressed Y, U, and V value per pixel, where N is less than M.
- 37. A storage medium having a computer program stored thereon for causing a suitably programmed system to compress digital video by performing the method according to claim 36.
- 38. A storage medium comprising:a computer program stored on the storage medium for causing a suitably programmed system to compress digital video by performing the following method when such program is executed on the system: providing a digital video data signal, the digital video data having M-bits of information for each of a Y, U, and V value per pixel, where Y represents a luminance component, and U and V each represent portions of a two-dimensional chromaticity component; performing a M-bit to N-bit compression transformation that is non-linear for at least one of Y, U and V; and outputting N-bit compressed digital video data output having N-bits of information for each of a compressed Y, U, and V value per pixel, where N is less than M; and a data structure stored thereon, wherein the data structure includes values for a lookup table that provides a non-linear compression transformation, and wherein the digital video data also includes M-bits of information for a blanking portion of the signal, wherein the method further comprises determining a state of at least Y, U, V or blanking, and wherein the compression transformation is performed based on the state.
- 39. The non-linear digital video compression circuit according to claim 1, wherein the compression lookup table includes a non-linear compression transformation that provides a different conversion for Y than for U.
- 40. The non-linear digital video compression circuit according to claim 1, wherein the compression lookup table includes a non-linear compression transformation that provides a different conversion for Y than for V.
- 41. The non-linear digital video compression circuit according to claim 2, wherein the compression lookup table includes a non-linear compression transformation that provides a different conversion for Y than for U.
- 42. The non-linear digital video compression circuit according to claim 2, wherein the compression lookup table includes a non-linear compression transformation that provides a different conversion for Y than for V.
- 43. The non-linear digital video compression circuit according to claim 3, wherein the compression lookup table includes a non-linear compression transformation that provides a different conversion for Y than for U.
- 44. The non-linear digital video compression circuit according to claim 3, wherein the compression lookup table includes a non-linear compression transformation that provides a different conversion for Y than for V.
- 45. The method according to claim 11, wherein the compression lookup table includes a non-linear compression transformation that provides a different conversion for Y than for U.
- 46. The method according to claim 11, wherein the compression lookup table includes a non-linear compression transformation that provides a different conversion for Y than for V.
- 47. The method according to claim 23, wherein the compression lookup table includes a non-linear compression transformation that provides a different conversion for Y than for U.
- 48. The method according to claim 23, wherein the compression lookup table includes a non-linear compression transformation that provides a different conversion for Y than for V.
- 49. The information-processing system of claim 22, further comprising:a state circuit coupled to the compression lookup table that controls which one of the conversions for Y and U and V and blanking is performed; a bus; a main memory; an input/output subsystem operatively coupled transfer data to and from the bus; a system processor operatively coupled transfer data to and from the main memory and to and from the bus; and a graphics processor operatively coupled receive data from the bus and from the digital video compression circuit.
- 50. The method according to claim 49, wherein the compression lookup table includes a non-linear compression transformation that provides a different conversion for Y than for U.
US Referenced Citations (4)