1460894852-0e2014bb-1628-4334-bd4c-257ea3deb443

1. A helmet with a defogging visor, wherein the helmet comprises:
a shell, wherein the shell defines at least a first opening;
a visor, wherein:
the visor is coupled with the shell; and
the visor is at least partially disposed over the first opening;

a defogging element, wherein the defogging element is configured to defog the visor; and
a power source, wherein:
the power source is directly coupled with the shell;
the power source is operably coupled with the defogging element; and
the power source comprises a first component power source and a second component power source, and the power source being coupled with the shell comprises:
the first component power source being coupled with a first side of the shell; and
the second component power source being coupled with a second side of the shell, wherein the second side of the shell is substantially opposite the first side of the shell.
2. The helmet with a defogging visor of claim 1, wherein the shell comprises a selection from a group consisting of:
a one-quarter coverage helmet;
a one-half coverage helmet;
a three-quarters coverage helmet; and
a full coverage helmet.
3. The helmet with a defogging visor of claim 1, wherein the visor is rotatably coupled with the shell.
4. The helmet with a defogging visor of claim 1, wherein the defogging element comprises a heating element.
5. The helmet with a defogging visor of claim 1, wherein the defogging element comprises a micro-convection device.
6. The helmet with a defogging visor of claim 1, wherein the power source being coupled with the shell comprises the power source being permanently coupled with the shell.
7. The helmet with a defogging visor of claim 1, wherein the power source being coupled with the shell comprises the power source being detachably coupled with the shell.
8. The helmet with a defogging visor of claim 1, wherein the power source comprises a rechargeable battery.
9. The helmet with a defogging visor of claim 1, wherein the power source comprises a solar power device.
10. The helmet with a defogging visor of claim 1, wherein the power source comprises a kinetic energy harnessing device.
11. The helmet with a defogging visor of claim 1, wherein the helmet further comprises a coupling point, wherein the coupling point is configured to detachably and operably couple a recharging device with the power source.
12. The helmet with a defogging visor of claim 1, wherein the power source being coupled with the shell comprises the power source being coupled with a side of the shell.
13. The helmet with a defogging visor of claim 1, wherein the helmet further comprises a beacon coupled with the shell.
14. The helmet with a defogging visor of claim 1, wherein the helmet further comprises one or more speakers or earphones.
15. The helmet with a defogging visor of claim 1, wherein the helmet further comprises a radio communications device.
16. The helmet with a defogging visor of claim 1, wherein the helmet further comprises a satellite communications device.
17. The helmet with a defogging visor of claim 1, wherein the helmet further comprises a Global Positioning System (\u201cGPS\u201d) receiver.
18. The helmet with a defogging visor of claim 1, wherein the helmet further comprises a heating element to warm the interior of the helmet.
19. The helmet with a defogging visor of claim 1, wherein the helmet further comprises a short-range inter-device communication device.
20. The helmet with a defogging visor of claim 19, wherein the short-range inter-device communication device comprises a selection from a group consisting of:
a Near Field Communication (\u201cNFC\u201d) device;
a IEEE 802.11 device; and
a Bluetooth device.
21. The helmet with a defogging visor of claim 19, wherein the short-range inter-device communication device is configured to facilitate short-range remote activation and deactivation of the defogging element.
22. The helmet with a defogging visor of claim 19, wherein the short-range inter-device communication device is configured to facilitate short-range remote activation and deactivation of an accessory device of the helmet.
23. The helmet with a defogging visor of claim 1, wherein the helmet further comprises a power switch to control the defogging element.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. An apparatus comprising an integrated circuit for decompressing a compressed input, the integrated circuit comprising:
a first storage configured to hold a plurality of records, each record including a portion for at least one of a literal value and a length value and a portion for a type value indicative of whether the record is for a literal or a length;
a first offset calculation module configured to accept a variable length Huffman codeword detected in the compressed input, and determine, according to a first ordering of allowable Huffman codewords, an offset for accessing a record in the first storage that corresponds to the detected Huffman codeword; and
a first data path for passing a literal value from a record of the first storage at an offset output from the first offset calculation module to an output of the circuit.
2. The apparatus of claim 1, wherein each record for a length further includes a portion for a number of extra bits.
3. The apparatus of claim 1, further comprising:
a length computation module for combining a length value in a record of the first storage at an offset output from the first offset calculation module with a value represented in the compressed input by a number of extra bits in said record.
4. The apparatus of claim 1, further comprising:
a second storage configured to hold a plurality of records, each record including a portion for a distance value and a portion for a number of extra bits;
a second offset calculation module configured to accept a variable length codeword detecting in the input, and determine, according to a second ordering of allowable codewords, an offset for accessing a record in the first storage;
a distance computation module for combining a distance value in a record of the second storage and a value represented in the compressed input by a number of extra bits in said record; and
a second data path for passing a repeated string selected according to an output of the length computation module and the distance computation module to the output of the circuit.
5. A machine-implemented method for decompressing a compressed input comprising:
determining, according to an ordering of allowable Huffman codewords, an offset for a variable length Huffman codeword detected in the input;
accessing a record at the determined offset in a data structure having one record for each of the allowable Huffman codewords, each record including a portion for at least one of a literal value and a length value and a portion for a type value indicative of whether the record is for a literal or a length; and
determining a decompressed output based at least in part on the accessed record.
6. The machine-implemented method of claim 5, wherein determining a decompressed output comprises:
including the literal value in the decompressed output if the type value of the accessed record is indicative of a literal value; and
including a sequence of literal values in the decompressed output if the type value of the accessed record is indicative of a length value, the sequence being determined at least in part by the length value.
7. The machine-implemented method of claim 6, wherein:
each record for a length further includes a portion for a number of extra bits; and
the sequence of literal values in the decompressed output has a length equal to the length value plus a value represented in the compressed input by the number of extra bits.
8. The machine-implemented method of claim 5, wherein each record for a length further includes a portion for a number of extra bits.
9. The machine-implemented method of claim 8, wherein the portion for a number of extra bits and the portion for the type value comprise a same portion.
10. The machine-implemented method of claim 5, wherein the record is for control data and the type value indicates a control option.
11. The machine-implemented method of claim 5, wherein accessing the stored data structure includes accessing a stored array.
12. The machine-implemented method of claim 5, further comprising outputting the determined decompressed output.
13. The machine-implemented method of claim 5, wherein determining a decompressed output comprises:
determining, according to an ordering of allowable distance codewords, a second offset for a second variable length codeword detected in the input;
accessing a record at the determined second offset in a data structure having one record for each of the allowable distance codewords, each record including a portion for a distance value and a portion for a number of extra bits;
calculating a distance using the distance value and a value represented in the compressed input by the number of extra bits; and
determining a decompressed output comprising a sequence of literal values based at least in part on the calculated distance.
14. An apparatus comprising an integrated circuit for decompressing a compressed input, the integrated circuit configured to:
determine, according to an ordering of allowable Huffman codewords, an offset for a variable length Huffman codeword detected in the input;
access a record at the determined offset in a data structure having one record for each of the allowable Huffman codewords, each record including a portion for at least one of a literal value and a length value and a portion for a type value indicative of whether the record is for a literal or a length; and
determine a decompressed output based at least in part on the accessed record.
15. The apparatus of claim 14, further comprising an addressable memory used to contain the data structure.
16. The apparatus of claim 14, wherein the data structure is a configurable dynamic data structure used to contain records determined dynamically from the compressed input.
17. The apparatus of claim 14, wherein the data structure accessed is one of multiple data structures and the data structure accessed is selected based at least in part on the compressed input.
18. Computer-readable media encoded with software for:
determining, according to an ordering of allowable Huffman codewords, an offset for a variable length Huffman codeword detected in the input;
accessing a record at the determined offset in a data structure having one record for each of the allowable Huffman codewords, each record including a portion for at least one of a literal value and a length value and a portion for a type value indicative of whether the record is for a literal or a length; and
determining a decompressed output based at least in part on the accessed record.
19. The computer-readable media of claim 18, further encoded with software for dynamically populating the data structure with records.
20. The computer-readable media of claim 18, further encoded with software for:
determining, according to an ordering of allowable distance codewords, a second offset for a second variable length codeword detected in the input;
accessing a record at the determined second offset in a data structure having one record for each of the allowable distance codewords, each record including a portion for a distance value and a portion for a number of extra bits;
calculating a distance using the distance value and a value represented in the compressed input by the number of extra bits; and
determining a decompressed output comprising a sequence of literal values based at least in part on the calculated distance.
21. A data processing system comprising:
a source of compressed data, including at least one of disk storage device and a data network link; and
a decompression unit coupled to the source of compressed data, wherein the decompression unit includes
a first storage configured to hold a plurality of records, each record including a portion for at least one of a literal value and a length value and a portion for a type value indicative of whether the record is for a literal or a length,
a first offset calculation module configured to accept a variable length Huffman codeword detected in the input of the decompression unit, and determine, according to a first ordering of allowable Huffman codewords, an offset for accessing a record in the first storage that corresponds to the detected Huffman codeword, and
a first data path for passing a literal value from a record of the first storage at an offset output from the first offset calculation module to the output of decompression unit.