From 5c18e26bc291766b0de22223abcf340bc48e3157 Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 5 Feb 2016 13:55:38 +0100 Subject: Add T4 bit map compression routines Add bit map encoder and decoder functions: decoder is fully functional while encoder is good enough for testing - no backtracking to find the best possible compression is implemented. If somebody is willing to implement MS side of EDGE than this has to be expanded. Add corresponding tests. N. B: the encoding is implemented according to ETSI TS 44.060 which is slightly different from T4 used for fax according to CCITT G31D (RFC 804). Ticket: OW#2407 Sponsored-by: On-Waves ehf Signed-off-by: Max --- include/osmocom/core/bitcomp.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 include/osmocom/core/bitcomp.h (limited to 'include/osmocom/core/bitcomp.h') diff --git a/include/osmocom/core/bitcomp.h b/include/osmocom/core/bitcomp.h new file mode 100644 index 00000000..89eccbce --- /dev/null +++ b/include/osmocom/core/bitcomp.h @@ -0,0 +1,42 @@ +#pragma once + +/* bit compression routines */ + +/* (C) 2016 sysmocom s.f.m.c. GmbH by Max Suraev + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +/*! \defgroup bitcomp Bit compression + * @{ + */ + +/*! \file bitcomp.h + * \brief Osmocom bit compression routines + */ + +#include +#include + +#include + + +int osmo_t4_encode(struct bitvec *bv); +int osmo_t4_decode(const struct bitvec *in, bool cc, struct bitvec *out); + +/*! @} */ -- cgit v1.2.3