×

Method and apparatus for improved compression and recording of color video data in a personal computer using a plurality of lookup tables

  • US 5,319,793 A
  • Filed: 10/21/1992
  • Issued: 06/07/1994
  • Est. Priority Date: 10/21/1992
  • Status: Expired due to Fees
First Claim
Patent Images

1. A method of operating a personal computer system having a main memory for storing data and programs including a multitasking operating system, a general purpose microprocessor for executing programs stored in said main memory, a source of uncompressed frames of motion video data comprising a series of digitized pixel values, and an output device for recording compressed frames, wherein said method comprises the steps of:

  • (a) storing, in said main memory, a plurality of lookup tables for use in analyzing pixel color values expressed in a luminance-chrominance format YCrCb (where Y is a value representing luminance of a pixel color, Cr is a value representing red chrominance of a pixel color, Cb is a value representing blue chrominance of a pixel color), said tables including(a1) a first lookup table containing a plurality of pixel luminance profiles stored at locations accessible by a first index containing a Y value concatenated with an AVG-- Y value wherein AVG-- Y is an average of Y values in a block, each luminance profile containing a homogenous bit that is set to a not-homogenous state when (Y-AVG-- Y) exceeds a predetermined homogenous threshold and is set to a homogenous state when (Y-AVG-- Y) is equal to or less than said homogenous threshold,(a2) a second lookup table containing a plurality of threshold indicators stored at locations accessible by an index including a current AVG-- YCrCb value concatenated with an AVG-- YCrCb-- AT-- LAST-- UPDATE value for a block, each threshold indicator being set to a first state when (AVG YCrCb-AVG-- YCrCb-- AT-- LAST-- UPDATE) exceeds a predetermined threshold and to a second state when (AVG-- YCrCb-AVG-- YCrCb-- AT-- LAST-- UPDATE) does not exceed such threshold, and(a3) a third table containing a plurality of AVG-- YCrCb-- AT-- LAST-- UPDATE values stored at locations accessible by a third index including a block number identifying location of a block in a frame, each AVG-- Y-- AT-- LAST-- UPDATE value being a AVG-- Y value when a block was last changed;

    (b) storing an uncompressed frame from said source in said main memory, said uncompressed frame having a predetermined number of groups of blocks of pixel values, each group containing a predetermined number of blocks, each block containing a predetermined number of pixel values;

    (c) defining each pixel values by a YCrCb value;

    (d) operating said microprocessor to process a group, one block at a time and create an output entry for a group being processed, wherein said output entry comprises a header for a group being processed, said header having a plurality of bit fields for each block in said group being processed which bit fields indicate block status as being unchanged, changed-homogenous, and changed-not-homogenous, by steps comprising(d1) determining average YCrCb values AVG Y, AVG Cr and AVG Cb from all pixel values in a block,(d2) creating a block luminance profile by reading from said first lookup table a plurality of pixel luminance profiles for each pixel in a block, each pixel luminance profile being read using a first index comprising Y for such pixel and AVG Y of its block,(d3) reading from said third lookup table an AVG-- YCrCb-- AT-- LAST-- UPDATE value for said block being processed,(d4) reading a threshold indicator from said second lookup table using a second index of said AVG-- YCrCb-- AT-- LAST-- UPDATE value from step (d3) concatenated with current AVG-- YCrCb for said block being processed,(d5) examining, when said threshold indicator read in step (d4) is in said second state thereof, whether any pixel luminance profile in said block luminance profile is set to a not-homogeneous state, and placing a plurality of pixel color values in said output entry when a pixel luminance profile is set to a not-homogenous state or placing a single pixel color value when all of said pixel profile values are set to homogenous states;

    (d6) setting said block group header to indicate said block being processed has a homogenous status or a not-homogenous status in accordance with results of (d5),(d7) updating said third table wit current AVG-- YCrCb and returning to step (d1) to process a next block,(d8) when said threshold indicator read in step (d4) is in said first state thereof, setting said block group header to indicate said block being processed has an unchanged status, and returning to step (d1) to process a next block,and (d9) transmitting to said recording means a single pixel color value for a homogenous block and a plurality of pixel color values for a not-homogenous block; and

    (e) transmitting output entries from said groups in a frame to said recording device for recording said output entries as a compressed frame.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×