U.S. patent application number 10/319096 was filed with the patent office on 2004-03-11 for selective encryption to enable trick play.
Invention is credited to Candelore, Brant L., Poslinski, Thomas.
Application Number | 20040049690 10/319096 |
Document ID | / |
Family ID | 31978769 |
Filed Date | 2004-03-11 |
United States Patent
Application |
20040049690 |
Kind Code |
A1 |
Candelore, Brant L. ; et
al. |
March 11, 2004 |
Selective encryption to enable trick play
Abstract
Certain embodiments consistent with the present invention
involve a method of selectively encrypting and decoding digital
video content. Certain of the packets are selected for encryption
according to a selection criterion, wherein the selected packets
exclude packets containing start of file (SOF) headers. The
selected packets are encrypted while retaining the packets
containing the SOF headers unencrypted to form selectively
encrypted digital video content. In decoding selectively encrypted
digital video content, offsets are calculated for at least one of I
frames and P frames from the SOF headers and the calculated offsets
are stored as an offset table. The offset table can then be
accessed to enable trick play of the selectively encrypted digital
video content.
Inventors: |
Candelore, Brant L.;
(Escondido, CA) ; Poslinski, Thomas; (San Diego,
CA) |
Correspondence
Address: |
MILLER PATENT SERVICES
2500 DOCKERY LANE
RALEIGH
NC
27606
US
|
Family ID: |
31978769 |
Appl. No.: |
10/319096 |
Filed: |
December 13, 2002 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60409675 |
Sep 9, 2002 |
|
|
|
Current U.S.
Class: |
713/193 ;
348/E7.056; 348/E7.061; 348/E7.063; 375/E7.02; 375/E7.024;
375/E7.267; 386/E5.004; 386/E5.052; 386/E9.01 |
Current CPC
Class: |
H04N 21/235 20130101;
H04N 7/52 20130101; H04N 21/434 20130101; H04N 21/236 20130101;
H04N 21/43607 20130101; H04N 7/163 20130101; H04N 21/23476
20130101; H04N 21/440245 20130101; H04N 21/812 20130101; H04N 5/913
20130101; H04N 21/4331 20130101; H04N 21/435 20130101; H04N 21/4623
20130101; H04N 21/234345 20130101; H04N 21/2668 20130101; H04N
21/835 20130101; H04N 7/165 20130101; H04N 21/26606 20130101; H04N
21/2347 20130101; H04N 7/1675 20130101; H04N 21/23439 20130101;
H04N 21/238 20130101; H04N 2005/91364 20130101; H04N 21/25435
20130101; H04N 21/63345 20130101; H04N 21/4333 20130101; H04N 5/783
20130101; H04N 21/47202 20130101; H04N 9/7925 20130101; H04N 21/458
20130101; H04N 21/44055 20130101; H04N 21/8455 20130101; H04N
21/440281 20130101; H04N 21/25833 20130101 |
Class at
Publication: |
713/193 |
International
Class: |
G06F 012/14 |
Claims
What is claimed is:
1. A method of selectively encrypting digital video content,
comprising; receiving a plurality of packets containing the digital
video content; selecting certain of the packets for encryption
according to a selection criterion, wherein the selected packets
exclude packets containing start of file (SOF) headers; encrypting
the selected packets; and retaining the packets containing the SOF
headers unencrypted to form selectively encrypted digital video
content.
2. The method according to claim 1, further comprising storing the
selectively encrypted digital video content on an electronic
storage medium.
3. The method according to claim 1, further comprising transmitting
the selectively encrypted digital video content to a receiver.
4. The method according to claim 1, wherein the selection criterion
comprises selection of all packets except those containing the SOF
header.
5. The method according to claim 1, wherein the selection criterion
comprises selection of certain packets except those containing the
SOF header where the certain packets represent less than all of the
remaining packets excluding those containing the SOF header.
6. The method according to claim 1, carried out on a programmed
processor.
7. An electronic storage medium storing instructions that, when
executed on a programmed processor, carry out the method of
selectively encrypting digital video content according to claim
1.
8. A method of decoding selectively encrypted digital video
content, comprising: receiving the selectively encrypted digital
video content, wherein the selectively encrypted digital video
content has unencrypted packets containing start of file (SOF)
headers; calculating offsets for at least one of I frames and P
frames from the SOF headers; and storing the calculated offsets as
an offset table.
9. The method according to claim 8, further comprising accessing
the offset table to enable trick play of the selectively encrypted
digital video content.
10. The method according to claim 8, wherein the selectively
encrypted digital video content is stored on an electronic storage
medium.
11. The method according to claim 8, wherein the selectively
encrypted digital video content is transmitted from a content
provider to a receiver.
12. The method according to claim 8, wherein the encrypted digital
video content is fully encrypted except for packets containing the
SOF header.
13. The method according to claim 8, wherein packets containing the
SOF header as well as certain other packets are unencrypted while
certain additional packets are encrypted.
14. The method according to claim 8, carried out on a programmed
processor.
15. An electronic storage medium storing instructions that, when
executed on a programmed processor, carry out the method of
decoding selectively encrypted digital video content according to
claim 8.
16. A decoder for decoding selectively encrypted digital video
content, comprising: a receiver that receives the selectively
encrypted digital video content, wherein the selectively encrypted
digital video content has unencrypted packets containing start of
file (SOF) headers; an offset calculator that calculates offsets
for at least one of I frames and P frames from the SOF headers; and
means for storing the calculated offsets as an offset table.
17. The decoder according to claim 16, further comprising means for
accessing the offset table to enable trick play of the selectively
encrypted digital video content.
18. The decoder according to claim 16, wherein the selectively
encrypted digital video content is stored on an electronic storage
medium.
19. The decoder according to claim 16, wherein the selectively
encrypted digital video content is transmitted from a content
provider to a receiver.
20. The decoder according to claim 16, wherein the encrypted
digital video content is fully encrypted except for packets
containing the SOF header.
21. The decoder according to claim 16, wherein packets containing
the SOF header as well as certain other packets are unencrypted
while certain additional packets are encrypted.
22. The decoder according to claim 16, wherein the offset
calculator is implemented by a programmed processor.
23. The decoder according to claim 16, wherein the offset table is
stored in an electronic storage medium.
24. A selective encryption encoder for selective encryption of
digital video content, comprising; means for receiving a plurality
of packets containing the digital video content; a programmed
processor that selects certain of the packets for encryption
according to a selection criterion, wherein the selected packets
exclude packets containing start of file (SOF) headers; and an
encrypter for encrypting the selected packets while retaining the
packets containing the SOF headers unencrypted to form selectively
encrypted digital video content.
25. The encoder according to claim 24, further comprising an
electronic storage medium for storing the selectively encrypted
digital video content.
26. The encoder according to claim 24, further comprising a
transmitter for transmitting the selectively encrypted digital
video content to a receiver.
27. The encoder according to claim 24, wherein the selection
criterion comprises selection of all packets except those
containing the SOF header.
28. The encoder according to claim 24, wherein the selection
criterion comprises selection of certain packets except those
containing the SOF header where the certain packets represent less
than all of the remaining packets excluding those containing the
SOF header.
Description
CROSS REFERENCE TO RELATED DOCUMENTS
[0001] This application is related to patent applications docket
number SNY-R4646.01 entitled "Critical Packet Partial Encryption"
to Unger et al., Ser. No. 10/038,217; patent applications docket
number SNY-R4646.02 entitled "Time Division Partial Encryption" to
Candelore et al., Ser. No. 10/038,032; docket number SNY-R4646.03
entitled "Elementary Stream Partial Encryption" to Candelore, Ser.
No. 10/037,914; docket number SNY-R4646.04 entitled "Partial
Encryption and PID Mapping" to Unger et al., Ser. No. 10/037,499;
and docket number SNY-R4646.05 entitled "Decoding and Decrypting of
Partially Encrypted Information" to Unger et al., Ser. No.
10/037,498 all of which were filed on Jan. 2, 2002 and are hereby
incorporated by reference herein.
[0002] This application is also related to U.S. patent applications
Ser. No. 10/273,905, filed Oct. 18, 2002 to Candelore et al.,
entitled "Video Slice and Active Region Based Dual Partial
Encryption", docket number SNY-R4854.01; Ser. No. 10/273,903, filed
Oct. 18, 2002 to Candelore et al., entitled "Star Pattern Partial
Encryption", docket number SNY-S5064.01; Ser. No. 10/274,084, filed
Oct. 18, 2002 to Candelore et al., entitled "Slice Mask and Moat
Pattern Partial Encryption", and docket number SNY-S5065.01; Ser.
No. 10/274,019, filed Oct. 18, 2002 to Candelore et al., entitled
"Video Scene Change Detection", docket number SNY-S5162.01, which
are hereby incorporated by reference.
[0003] This application is also related to and claims priority
benefit of U.S. Provisional patent application Serial No.
60/409,675, filed Sep. 9, 2002, docket number 50S5152, entitled
"Generic PID Remapping for Content Replacement", to Candelore.
These applications are also hereby incorporated by reference
herein.
COPYRIGHT NOTICE
[0004] A portion of the disclosure of this patent document contains
material which is subject to copyright protection. The copyright
owner has no objection to the facsimile reproduction of the patent
document or the patent disclosure, as it appears in the Patent and
Trademark Office patent file or records, but otherwise reserves all
copyright rights whatsoever.
FIELD OF THE INVENTION
[0005] This invention relates generally to the field of encryption
of digital video content. More particularly, this invention relates
to use of selective encryption to permit trick play with digital
video content.
BACKGROUND OF THE INVENTION
[0006] When digital video such as MPEG (Moving Pictures Expert
Group) digital video is played back in various trick play modes,
access to I frames or P frames is generally required. I frames and
P frames contain information that can be used to directly represent
an image, whereas images are created with B frames by referencing
and modifying preceding and/or subsequent I frames and P frames. As
an example, when playback is carried out at 2.times. or 4.times.
speed, the playback algorithm jumps from I frame to I frame or P
frame to P frame to speed up the presentation of the video frames
while skipping certain frames.
[0007] Unfortunately, when content is encrypted using traditional
encryption techniques, trick play becomes difficult or impossible
since content has to be decrypted in order to find the I frames
and/or P frames. In the case of unencrypted content, these frames
are accessed by calculating an offset from the start of file
(SOF).
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The features of the invention believed to be novel are set
forth with particularity in the appended claims. The invention
itself however, both as to organization and method of operation,
together with objects and advantages thereof, may be best
understood by reference to the following detailed description of
the invention, which describes certain exemplary embodiments of the
invention, taken in conjunction with the accompanying drawings in
which:
[0009] FIG. 1 is a flow chart showing a selective encryption
process and decoding process consistent with certain embodiments of
the present invention.
[0010] FIG. 2 illustrates one embodiment of a selective encryption
and decoding process consistent with certain embodiments of the
present invention.
[0011] FIG. 3 illustrates another embodiment of a selective
encryption and decoding process consistent with certain embodiments
of the present invention.
[0012] FIG. 4 is a programmed processor which can represent either
an encryption processor or a decoder consistent with certain
embodiments of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
[0013] While this invention is susceptible of embodiment in many
different forms, there is shown in the drawings and will herein be
described in detail specific embodiments, with the understanding
that the present disclosure is to be considered as an example of
the principles of the invention and not intended to limit the
invention to the specific embodiments shown and described. In the
description below, like reference numerals are used to describe the
same, similar or corresponding parts in the several views of the
drawings.
[0014] The terms "scramble" and "encrypt" and variations thereof
are used synonymously herein. The term "video" may be used herein
to embrace not only true visual information, but also in the
conversational sense (e.g., "video tape recorder") to embrace not
only video signals but associated audio and data. The present
document generally uses the example of a "dual selective
encryption" embodiment, but those skilled in the art will recognize
that the present invention can be utilized to realize multiple
partial encryption without departing from the invention. The terms
"partial encryption" and "selective encryption" are used
synonymously herein. Also, the terms "program" and "television
program" and similar terms can be interpreted in the normal
conversational sense, as well as a meaning wherein the term means
any segment of A/V content that can be displayed on a television
set or similar monitor device. The term "legacy" as used herein
refers to existing technology used for existing cable and satellite
systems. The exemplary embodiments disclosed herein are decoded by
a television Set-Top Box (STB), but it is contemplated that such
technology will soon be incorporated within television receivers of
all types whether housed in a separate enclosure alone or in
conjunction with recording and/or playback equipment or Conditional
Access (CA) decryption module or within a television set itself.
The present document generally uses the example of a "dual partial
encryption" embodiment, but those skilled in the art will recognize
that the present invention can be utilized to realize multiple
partial encryption without departing from the invention.
[0015] The above-referenced commonly owned patent applications
describe inventions relating to various aspects of methods
generally referred to herein as partial encryption or selective
encryption. More particularly, systems are described wherein
selected portions of a particular selection of digital content are
encrypted using two (or more) encryption techniques while other
portions of the content are left unencrypted. By properly selecting
the portions to be encrypted, the content can effectively be
encrypted for use under multiple decryption systems without the
necessity of encryption of the entire selection of content. In some
embodiments, only a few percent of data overhead is needed to
effectively encrypt the content using multiple encryption systems.
This results in a cable or satellite system being able to utilize
Set-top boxes or other implementations of conditional access (CA)
receivers from multiple manufacturers in a single system--thus
freeing the cable or satellite company to competitively shop for
providers of Set-top boxes.
[0016] The present invention applies similar selective encryption
techniques to the problem of enabling trick play with encrypted
digital video content. The partial encryption processes described
in the above patent applications utilize any suitable encryption
method. However, these encryption techniques are selectively
applied to the data stream, rather than encrypting the entire data
stream, using techniques described in the above-referenced patent
applications. In general, but without the intent to be limiting,
the selective encryption process utilizes intelligent selection of
information to encrypt so that the entire program does not have to
undergo dual encryption. By appropriate selection of data to
encrypt, the program material can be effectively scrambled and
hidden from those who desire to hack into the system and illegally
recover commercial content without paying. MPEG (or similar format)
data that are used to represent the audio and video data does so
using a high degree of reliance on the redundancy of information
from frame to frame. Certain data can be transmitted as "anchor"
data representing chrominance and luminance data. That data is then
often simply moved about the screen to generate subsequent frames
by sending motion vectors that describe the movement of the block.
Changes in the chrominance and luminance data are also encoded as
changes rather than a recoding of absolute anchor data. Thus,
encryption of this anchor data, for example, or other key data can
effectively render the video unviewable.
[0017] In accordance with certain embodiments consistent with the
present invention, the selected video data to be encrypted may be
any individual one or combination of the following (described in
greater detail in the above applications): video slice headers
appearing in an active region of a video frame, data representing
an active region of a video frame, data in a star pattern within
the video frame, data representing scene changes, I Frame packets,
packets containing motion vectors in a first P frame following an I
Frame, packets having an intra_slice_flag indicator set, packets
having an intra_slice indicator set, packets containing an
intra_coded macroblock, data for a slice containing an intra_coded
macroblock, data from a first macroblock following the video slice
header,packets containing video slice headers, anchor data, and P
Frame data for progressively refreshed video data, data arranged in
vertical and or horizontal moat patterns on the video frame, and
any other selected data that renders the video and/or audio
difficult to utilize. Several such techniques as well as others are
disclosed in the above-referenced patent applications, any of which
(or other techniques) can be utilized with the present invention to
encrypt only a portion of the content, so long as the packets
containing the SOF header is not encrypted, as will be explained
later.
[0018] Currently there is a problem with delivering content to a
personal-video-recorder (PVR) enabled set-top box is that to enable
trick play it must be first descrambled. If the content is
downloaded "opportunistically" from a carrousel at night, then
descrambling (and locally re-scrambling) the content can cause a
security problem. Keys used to locally re-scramble the content will
not be as secure as those from the conditional access (CA) element.
The content on the hard drive might be accessed without paying the
appropriate viewing fees. Ideally, content delivered
"opportunistically" or speculatively to a local drive of a set-top
box would remain CA scrambled on the hard drive.
[0019] In accordance with certain embodiments consistent with the
present invention, selective encryption is utilized to encrypt
selective portions of content, but leaves the packets containing
the SOF header in the clear (unencrypted). By leaving the SOF
header unencrypted, trick play circuits and algorithms can operate
properly. The remainder of the content can be encrypted fully or
selectively according to any of the selective encryption schemes
described in the copending applications, or any other suitable
selective encryption content selection criterion.
[0020] FIG. 1 describes a process 100, in accord with certain
embodiments consistent with the present invention, starting at 104.
A packet selection criterion is established at 108 for determining
which packets are to be encrypted. Such selection criterion can,
for example, be established in accord with any of the
above-referenced selective encryption selection criteria (including
full encryption of all content except SOF header packets). Once the
selection criterion is established, packets can be received at 112.
If the packet does not meet the selection criterion at 116, then
the packet is not encrypted at 120. If the packet does meet the
selection criterion at 116, then control passes to 126 where the
packet is examined to determine if it contains the SOF header. If
so, the packet is not encrypted at 120. If not, the packet is
encrypted at 130. Control passe from 120 or 130 to 134. At 134, if
the last packet has not been encountered, the next packet is
received at 112. If the last packet has been received at 134, the
process stops at 138.
[0021] Thus, in accord with one embodiment consistent with the
invention, a method of selectively encrypting digital video
content, involves receiving a plurality of packets containing the
digital video content; selecting certain of the packets for
encryption according to a selection criterion, wherein the selected
packets exclude packets containing start of file (SOF) headers;
encrypting the selected packets; and retaining the packets
containing the SOF headers unencrypted to form selectively
encrypted digital video content. A method of decoding selectively
encrypted digital video content, consistent with certain
embodiments, involves receiving the selectively encrypted digital
video content, wherein the selectively encrypted digital video
content has unencrypted packets containing start of file (SOF)
headers; calculating offsets for at least one of I frames and P
frames from the SOF headers; and storing the calculated offsets as
an offset table. The offset table can be accessed to enable trick
play of the selectively encrypted digital video content by
identifying the location of I and/or P frames.
[0022] A selective encryption encoder for selective encryption of
digital video content, consistent with certain embodiments of the
present invention receives a plurality of packets containing the
digital video content. A programmed processor selects certain of
the packets for encryption according to a selection criterion,
wherein the selected packets exclude packets containing start of
file (SOF) headers. An encrypter encrypts the selected packets
while retaining the packets containing the SOF headers unencrypted
to form selectively encrypted digital video content. The
selectively encrypted content can then be stored on an electronic
storage medium and/or transmitted to a receiver such as a
television Set-top box.
[0023] FIG. 2 depicts an embodiment of this process wherein a clear
stream of data 204 is converted to a selectively encrypted stream
of data 208. Clear stream 204 contains a sequence of packets each
having program identifier (PID) A. Packets 212 and 214 contain SOF
headers, while packets 218, 220, 222, 224 and 226 contain other
information that forms a part of the video data stream. As a part
of the encryption process of this example, all packets except those
containing SOF headers are encrypted. Thus, packets 212 and 214 are
transferred directly to the selectively encrypted stream 208.
Packets 218, 220, 222, 224 and 226 are encrypted to produce
encrypted packets 238, 240, 242, 244 and 246, respectively. At the
decoder (e.g., in a television Set-top box (STB)), the fact that
the SOF headers are unencrypted enables calculation of offsets for
trick play at 240. These offsets can then be stored in a local
trick play offset table at 254 to enable rapid access to the proper
I and/or P frames, and thus produce trick play.
[0024] FIG. 3 depicts an embodiment of this process wherein a clear
stream of data 304 is converted to a selectively encrypted stream
of data 308. In this example, the selective encryption selection
criterion is one that only partially encrypts packets not
containing SOF headers. Clear stream 304 contains a sequence of
packets each having program identifier (PID) A. Packets 312 and 314
contain SOF headers, while packets 318, 320, 322, 324 and 326
contain other information forming part of the stream of video. As a
part of the encryption process of this example, only certain of the
packets containing information other than the SOF header are
encrypted. As illustrated, packets 312 and 314 are transferred
directly to the selectively encrypted stream 308. Packets 318, 322
and 326 are encrypted to produce encrypted packets 338, 342 and
346, respectively. At the decoder (e.g., in a television STB), the
fact that the SOF headers are unencrypted enables calculation of
offsets for trick play at 340. These offsets can then be stored in
a local trick play offset table at 354 to enable rapid access to
the proper I and/or P frames, and thus produce trick play.
[0025] When selectively encrypted digital video content is created
as streams 208 or 308, the selectively encrypted digital video
content can then be stored on an electronic storage medium or
transmitted to one or more recipients (e.g., by downloading,
streaming or broadcast by a cable or satellite content provider to
subscriber's Set-top boxes serving as receivers and decoders.
[0026] Thus, certain embodiments of the present invention keep the
SOF header packets in the clear. This allows commercially available
decoder chips such as the model number 7030 manufactured and sold
by Broadcom Corporation to calculate the byte offset to I, P and B
frames. For trick play operation, the offset allows a decoder
(e.g., a Set-top box) to display, for example, every second I Frame
or fourth I frame without decoding other content. While the SOF
headers are not encrypted, the rest of the content does not need to
be completely encrypted, as described above.
[0027] The processes above can be carried out on any suitable
programmed general purpose processor operating as a server/encoder
such as that depicted as computer 400 of FIG. 4. Computer 400 can
represent either an encryption processor or a decoder depending
upon programming. Computer 400 has one or more central processor
units (CPU) 410 with one or more associated buses 414 used to
connect the central processor unit 410 to Random Access Memory 418
and Non-Volatile Memory 422 in a known manner. Output devices 426,
such as a display and printer, may be provided in order to display
and/or print output for the use of the MSO or user as well as to
provide a user interface such as a Graphical User Interface (GUI).
Similarly, input devices such as keyboard, mouse and removable
media readers 430 may be provided for the input of information by
the operator. Computer 400 also may incorporate internal and/or
external attached disc or other mass storage 434 (e.g., disc and/or
optical storage) for storing large amounts of information
including, but not limited to, the operating system, encryption
processes (for the encryption encoder), or offset calculation and
local offset table if computer 400 is used as a decoder (e.g.,
forming a part of a television STB). The Computer system 400 also
has an interface 438 for connection to the cable system if present
at the MSO. While depicted as a single computer, the digital
content provider may utilize multiple linked computers to carry out
the functions described herein.
[0028] Those skilled in the art will recognize that the present
invention has been described in terms of exemplary embodiments
based upon use of a programmed processor (e.g., computer 400).
However, the invention should not be so limited, since the present
invention could be implemented using hardware component equivalents
such as special purpose hardware and/or dedicated processors which
are equivalents to the invention as described and claimed.
Similarly, general purpose computers, microprocessor based
computers, micro-controllers, optical computers, analog computers,
dedicated processors and/or dedicated hard wired logic may be used
to construct alternative equivalent embodiments of the present
invention. Moreover, although the present invention has been
described in terms of a general purpose personal computer providing
a playback mechanism, the playback can be carried on a dedicated
machine without departing from the present invention.
[0029] Those skilled in the art will appreciate that the program
steps and associated data used to implement the embodiments
described above can be implemented using disc storage as well as
other forms of storage such as for example Read Only Memory (ROM)
devices, Random Access Memory (RAM) devices; optical storage
elements, magnetic storage elements, magneto-optical storage
elements, flash memory, core memory and/or other equivalent storage
technologies without departing from the present invention. Such
alternative storage devices should be considered equivalents.
[0030] The present invention, as described in embodiments herein,
is implemented using a programmed processor executing programming
instructions that are broadly described above form that can be
stored on any suitable electronic storage medium or transmitted
over any suitable electronic communication medium or otherwise be
present in any computer readable or propagation medium. However,
those skilled in the art will appreciate that the processes
described above can be implemented in any number of variations and
in many suitable programming languages without departing from the
present invention. For example, the order of certain operations
carried out can often be varied, additional operations can be added
or operations can be deleted without departing from the invention.
Error trapping can be added and/or enhanced and variations can be
made in user interface and information presentation without
departing from the present invention. Such variations are
contemplated and considered equivalent.
[0031] Software code and/or data embodying certain aspects of the
present invention may be present in any computer readable medium,
transmission medium, storage medium or propagation medium
including, but not limited to, electronic storage devices such as
those described above, as well as carrier waves, electronic
signals, data structures (e.g., trees, linked lists, tables,
packets, frames, etc.) optical signals, propagated signals,
broadcast signals, transmission media (e.g., circuit connection,
cable, twisted pair, fiber optic cables, waveguides, antennas,
etc.) and other media that stores, carries or passes the code
and/or data. Such media may either store the software code and/or
data or serve to transport the code and/or data from one location
to another. In the present exemplary embodiments, MPEG compliant
packets, slices, tables and other data structures are used, but
this should not be considered limiting since other data structures
can similarly be used without departing from the present
invention.
[0032] While the invention has been described in conjunction with
specific embodiments, it is evident that many alternatives,
modifications, permutations and variations will become apparent to
those skilled in the art in light of the foregoing description.
Accordingly, it is intended that the present invention embrace all
such alternatives, modifications and variations as fall within the
scope of the appended claims.
* * * * *