NAME
Data::BitStream::Code::Gamma - A Role implementing Elias Gamma codes
VERSION
version 0.01
DESCRIPTION
A role written for Data::BitStream that provides get and set methods for the Elias Gamma codes. The role applies to a stream object.
This is a very common and very useful code, and is used to create some other codes (e.g. Elias Delta, Gamma-Golomb, and Exponential-Golomb).
METHODS
Provided Object Methods
- put_gamma($value)
- put_gamma(@values)
-
Insert one or more values as Gamma codes. Returns 1.
- get_gamma()
- get_gamma($count)
-
Decode one or more Gamma codes from the stream. If count is omitted, one value will be read. If count is negative, values will be read until the end of the stream is reached. In scalar context it returns the last code read; in array context it returns an array of all codes read.
Required Methods
- maxbits
- read
- write
- put_unary
- get_unary
-
These methods are required for the role.
SEE ALSO
- Peter Elias, "Universal codeword sets and representations of the integers", IEEE Trans. Information Theory 21(2), pp. 194-203, Mar 1975.
- Peter Fenwick, "Punctured Elias Codes for variable-length coding of the integers", Technical Report 137, Department of Computer Science, University of Auckland, December 1996
AUTHORS
Dana Jacobsen <dana@acm.org>
COPYRIGHT
Copyright 2011 by Dana Jacobsen <dana@acm.org>
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.