资源简介
基于FPGA的压缩算法 压缩比1:2里有全套资料,资料里有C代码的压缩代码
代码片段和文件信息
/*
* liblzs.c
*
* Copyright (C) Beijing Soul.
*
* Hu gang
*
* A compatible LZX base compress/uncompress
*
*/
#ifndef __KERNEL__
#include
#include
#include
#include
typedef uint8_t u8;
typedef uint16_t u16;
typedef uint32_t u32;
#else
#include
#include
#include
#undef DEBUG
#endif
#include “liblzs.h“
struct sk_buff {
int len;
int data_len;
unsigned char *head;
unsigned char *data;
unsigned char *tail;
unsigned char *end;
};
#ifdef DEBUG
static FILE *fp_debug;
#define dprintf(format arg...) \
do {\
fprintf(fp_debug “%s:%d:“ format __FUNCTION__ \
__LINE__ ## arg); \
} while (0)
#else
#define dprintf(format arg...) \
do {} while (0)
#endif
static void skb_put(struct sk_buff *skb unsigned int len unsigned char byte)
{
dprintf(“%02x %02x\n“ skb->len byte);
*skb->data = byte;
skb->data ++;
skb->len ++;
}
typedef struct _lzs_state {
u32 word;
int left;
u8 *inbuf;
int inlen;
u8 zstuff;
u16 ccnt;
} LZSState;
static int
putBits(LZSState *s struct sk_buff *skbout u32 bits int len)
{
u8 byte;
dprintf(“%04x %x\n“ bits len);
s->word <<= len;
s->word |= bits;
s->left += len;
while(s->left >= 8) {
s->left -= 8;
byte = s->word >> (s->left);
skb_put(skbout 1 byte);
}
if (skbout->len >= skbout->data_len)
return -1;
return 0;
}
static int
putLiteralByte(LZSState *s struct sk_buff *skbout u8 byte)
{
if (putBits(s skbout 0 1) != 0)
return -1;
if (putBits(s skbout byte 8) != 0)
return -1;
return 0;
}
static int
putOffset(LZSState *s struct sk_buff *skbout u32 offs)
{
int off;
if(offs < 128) {
off = 3 << 7 | offs;
dprintf(“%x\n“ off);
if (putBits(s skbout 3 2) != 0)
return -1;
if (putBits(s skbout offs 7) != 0)
return -1;
} else {
off = 2 << 11 | offs;
dprintf(“%x\n“ off);
if (putBits(s skbout 2 2) != 0)
return -1;
if (putBits(s skbout offs 11) != 0)
return -1;
}
return 0;
}
static int
putLen(LZSState *s struct sk_buff *skbout u32 index int len)
{
int res;
switch(len) {
case 2:
res = putBits(s skbout 0 2);
break;
case 3:
res = putBits(s skbout 1 2);
break;
case 4:
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-02-13 08:13 lzs-master\
文件 18011 2013-02-13 08:13 lzs-master\LICENSE.GPL
文件 140 2013-02-13 08:13 lzs-master\Makefile
目录 0 2013-02-13 08:13 lzs-master\common\
文件 12829 2013-02-13 08:13 lzs-master\common\fifo_control.v
文件 5230 2013-02-13 08:13 lzs-master\common\synchronizer_flop.v
文件 12738 2013-02-13 08:13 lzs-master\common\tpram.v
目录 0 2013-02-13 08:13 lzs-master\decode\
目录 0 2013-02-13 08:13 lzs-master\decode\bench\
目录 0 2013-02-13 08:13 lzs-master\decode\bench\verilog\
文件 629 2013-02-13 08:13 lzs-master\decode\bench\verilog\Makefile
文件 1403 2013-02-13 08:13 lzs-master\decode\bench\verilog\tb.dino
文件 5172 2013-02-13 08:13 lzs-master\decode\bench\verilog\tb.v
文件 3786 2013-02-13 08:13 lzs-master\decode\bench\verilog\tb_data.v
目录 0 2013-02-13 08:13 lzs-master\decode\rtl\
目录 0 2013-02-13 08:13 lzs-master\decode\rtl\verilog\
文件 3429 2013-02-13 08:13 lzs-master\decode\rtl\verilog\decode.v
文件 6085 2013-02-13 08:13 lzs-master\decode\rtl\verilog\decode_ctl.v
文件 2728 2013-02-13 08:13 lzs-master\decode\rtl\verilog\decode_in.v
文件 1418 2013-02-13 08:13 lzs-master\decode\rtl\verilog\decode_out.v
文件 9125 2013-02-13 08:13 lzs-master\decode\rtl\verilog\generic_tpram.v
目录 0 2013-02-13 08:13 lzs-master\docs\
文件 149479 2013-02-13 08:13 lzs-master\docs\decode.pdf
文件 2823 2013-02-13 08:13 lzs-master\docs\decode.tex
文件 149588 2013-02-13 08:13 lzs-master\docs\encode.pdf
文件 3712 2013-02-13 08:13 lzs-master\docs\encode.tex
文件 24952 2013-02-13 08:13 lzs-master\docs\lzs.pdf
文件 19573 2013-02-13 08:13 lzs-master\docs\pdl_std.html
文件 45267 2013-02-13 08:13 lzs-master\docs\rfc1974.txt
目录 0 2013-02-13 08:13 lzs-master\edk\
目录 0 2013-02-13 08:13 lzs-master\edk\pcores\
............此处省略87个文件信息
- 上一篇:timer verilog
- 下一篇:stm32DSP 库FFT
相关资源
- avantage使用教程
- pb权限控制(tag法)
- txt文件和DataGridView控件的操作等.rar
- DataGridView过滤及
- DataGridView中数据存入数据库方法
- JTAG原理图+固件
- OPENJTAG驱动包
- labview 演示读取电压子程序
- 切换系统稳定性仿真
- OpenJTAG驱动,USBRS232驱动
- FPGA配置芯片EPCS16及AS_JTAG接口电路图
- DataGridView 显示数组中的元素
-
DataGrid动态绑定xm
l文件 - JTAG IP CORE
- Dell_SLIC工厂模式工具SVCTAG
- sublime插件tag
- easyui的datagrid生成合并行合计计算价格
- Black Belt ACI Deployment - Stage1 题库
- taglibs-standard-1.2.5
- Datagrid实现双击行事件
- 微信 自定义标签代码
- 读取Excel文件到DataGridView
- 简单个人书管理系统的设计与实现
- TI Power Mgt Voltage Regulator.IntLib
- CTags及tags58插件
- 自己写的一个分页控件,可以实现d
- datagridview增加汇总行 源码
- jtag的verilog代码
- 实现TreeView和ListView合体效果的控件
- flowtaglayout相关源码 直接copy到项目中
评论
共有 条评论