Television – Image signal processing circuitry specific to television – With details of static storage device
Reexamination Certificate
1999-09-27
2003-02-04
Miller, John (Department: 2714)
Television
Image signal processing circuitry specific to television
With details of static storage device
C348S716000, C348S717000, C386S349000, C369S059250
Reexamination Certificate
active
06515715
ABSTRACT:
BACKGROUND OF THE INVENTION
The present invention relates generally to code packing in a digital video system and more particularly to the arrangement of compressed video segment data in a storage device.
Over the past few years, digital technology has been used with cellular telephones, cameras, and video recorders. In particular, handheld video recorders store a number of frames in a particular sequence for playback at a later time. The sequence of frames collectively form a video signal. The video signal is generally converted from analog to digital using an analog to digital converter to produce a digital video signal. Digital video signals can be divided into a number of video segments. A video segment may be made up of a number of pixel values.
FIG. 1
illustrates the arrangement of compressed video segment data in a storage device using the Digital Video Standard. Storage device
100
describes a memory space that is used to store the compressed video segment data. Storage device
100
has five macro-blocks indicated as MB
101
, MB
102
, MB
103
, MB
104
, and MB
105
. Each macro-block has six blocks designated as block
101
a
, block
101
b
, block
101
c
, block
101
d
, block
101
e
, and block
101
f
. Blocks
101
a
,
101
b
,
101
c
, and
101
d
each have a memory storage capacity of 14 bytes. Each 14 byte block represents an eight by eight matrix that stores sixty-four pixel values (see FIG.
2
). Arrows in
FIG. 2
illustrate an order for reading pixel values. Those with ordinary skill in the art would understand that pixels can be read in different orders. Blocks
101
e
and
101
f
each have a memory storage capacity of 10 bytes. Each 10 byte block represents an eight by eight matrix storing sixty-four pixel values. Each pixel value may be represented using a number of bits (e.g., 8 bits).
The Digital Video (“DV”) specification, defined by the “DV Standard” or “Blue Book” Standard, describes the arrangement algorithm for a video segment into a storage device. The DV Standard is included herein by reference in its entirety and for all purposes. The DV specification has documented the arrangement algorithm of a video segment into a storage device which requires three passes. Arranging a video segment using three passes indicates that three loops are required to pack each video segment into a designated location (e.g., memory, buffer). Typically, the video data is compressed and then packed into the designated location.
During pass one, compressed data is packed into a macro-block, e.g., MB
101
. The packing is accomplished by filling the first block, e.g., block
101
a
, with compressed data. Two results may arise when filling a single block. First, the compressed data may completely fit into the block. That is, all the compressed data can be stored in the first block and the block is terminated with an end of block (“EOB”) token
106
. A block that can hold all the compressed data is referred to as a finished block. Second, the compressed data may not completely fit into a block. Hence, there is some overflow data from the same block. In this situation, the compressed data may completely fill the block and the remaining overflow data could not be stored in the block. The overflow data will be stored in a separate memory and will not be stored into the memory block until pass two or pass three. Each block having overflow data is referred to as an unfinished block. After block
101
a
is packed, block
101
b
, block
101
c
, block
101
d
, block
101
e
, and block
101
f
are packed successively. After the first macro-block MB
101
is filled, that is blocks
101
a
through
101
f
are either filled with an EOB token
106
or completely filled and having additional overflow data stored in separate memory, macro-block
102
, macro-block
103
, macro-block
104
, and macro-block
105
, are filled in the same manner as macro-block
101
. For each block, all the compressed overflow data is stored in the separate memory until pass two or pass three.
In pass two, the overflow data from macro-block
101
is retrieved from the separate memory. The overflow data from macro-block
101
is filled into a finished block in the same macro-block, that is macro-block
101
. All the overflow data from macro-block
101
is filled into the finished blocks in macro-block
101
. For example, consider the first macro-block
101
. Blocks
101
a
,
101
c
,
101
d
, and
101
e
are unfinished blocks and blocks
101
b
and
101
f
are finished blocks with extra storage space available to hold additional overflow data. During pass two, the overflow data from block
101
a
is first used to fill block
101
b
and then used to fill block
101
f
. If there is still additional overflow data from block
101
a
after blocks
101
b
and
101
f
are completely filled, the overflow data remains in the separate memory until pass three. Pass two is limited to a single macro-block, e.g., macro-block
101
. Hence, the overflow data from unfinished blocks of macro-blocks
101
,
102
,
103
,
104
, and
105
are filled into the finished block of macro-block
101
,
102
,
103
,
104
, and
105
, respectively.
For pass three, the remaining overflow data stored in memory, that is the overflow data that was not removed from the separate memory during pass two, will be filled into the first available block. That is, during pass three, the overflow data is stored into a block even if the block is in a different macro-block. For example, overflow data from block
104
d
is filled into the first available block, which can be block
105
d.
Arranging compressed video segment data using three passes requires extra memory for overflow data resulting from pass one and pass two so that the overflow data can be filled in a later pass, such as pass two and pass three.
SUMMARY OF THE INVENTION
The present invention relates to new and improved methods and apparatus for code packing in a digital video system. Among others, a method of transferring a data block to a storage device is disclosed. The storage device can include a plurality of compartments. The method includes receiving a plurality of length values. Each length value can correspond to a data block from a plurality of data blocks. The method further includes filling a first compartment of the storage device with a portion of data from a first data block, searching the length values to identify one of the plurality of data blocks having a length value less than a threshold value, and filling a second compartment with a remaining portion of the data from the first data block. In one embodiment, the second compartment can correspond to the identified data block.
In separate alternate embodiments, the method can further comprise filling a second compartment of the storage device with either a portion or an entire portion of data from a second data block. In another embodiment, the threshold value defines the storage capacity of at least one of the plurality of compartments.
In yet another embodiment, a compression module compresses video segment data and transfers the compressed video segment data to a code packing module. The code packing module arranges the compressed video segment data in a storage device such as a memory. The code packing module can arrange and store the compressed video segment data into a number of compartments in the storage device. In one embodiment, the compressed video segment data can be divided into five macro-blocks. Each macro-blocks can be divided into a number of blocks, e.g., six blocks. An encoder determines and transmits a length value for each of the blocks to the code packing module. The length value can represent the amount of compressed video segment data that can be stored in a particular block. Alternatively, the length value can represent the amount of compressed video segment data that is stored in a particular block. The code packing module fills a first compartment of the storage device with at least a portion of the data from a first block. If all the data from the first block can be stored in the first compartment the
Essen Sophie
Wang Ren-Yuh
Divio, Inc.
Miller John
Shang Annan
LandOfFree
Method and system for code packing in a digital video system does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and system for code packing in a digital video system, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and system for code packing in a digital video system will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3137961