LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Find Resources
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cores > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: Richard Herveille<richard@h...>
    Date: Fri Apr 15 20:17:10 CEST 2005
    Subject: [oc] open lossless data compression core
    Top

    Here's the problem, and the reason why I designed a static huffman
    encoder/decoder:
    For a compressor/decompressor to be generic it needs to be loaded with
    tables. The core then needs to traverse through these tables and (de)code
    the data depending on the results it found.
    So the first issue is that you need to traverse large tables. This could be
    simplified by using multiple small tables and some guidance into selecting
    one of these (e.g. hash tables).
    Second problem is that the data isn't neatly alligned. In case of the
    huffman (de)coder, for example, the mostly used blocks are assigned a small
    value (2bits), less used blocks are assigned a large value (many bits). This
    is in fact they way a huffman coder/decoder works. Unfortunately this
    doesn't lend itself neatly for implementing into HDL. Where fixed data sizes
    are prefered.

    All in all it is simply easier (and sometimes faster!) to implement these
    algorithms with a CPU or a simple statemachine.

    Cheers,
    Richard

    > -----Original Message-----
    > From: cores-bounces@o...
    > [mailto:cores-bounces@o...] On Behalf Of abgoyal@g...
    > Sent: Friday, April 15, 2005 3:12 PM
    > To: cores@o...
    > Subject: [oc] open lossless data compression core
    >
    >
    > Hi,
    >
    > I have been trying to see if i can implement a lossless data
    > compression core (like gzip, etc) in HDL. I searched a lot
    > for some simple compression cores already in HDL that I could
    > use. The only one i found was the static huffman
    > encoder/decoder in jpeg core from opencores. That is not
    > really usable for general data as its a static encoder. I am
    > interested in a general purpose data compression core.
    >
    > Has anyone here ever written any kind of data compression
    > cores in HDL? From my study of the "deflate" algorithm, i
    > think it will be extremely tough to code it in verilog but,
    > any other simpler compressor implementation, that I can learn from?
    >
    > I am surprised that no such simple cores exist. Is it very
    > tough to develop such a core?
    >
    > Any opinion on this would be welcome. If by any luck, i get a
    > large number of replies, I also volunteer to edit and submit
    > to OC as a FAQ/HOWTO (depending on the results).
    >
    > Thanks,
    >
    > Abgoyal.
    > _______________________________________________
    > http://www.opencores.org/mailman/listinfo/cores
    >


    ReferenceAuthor
    [oc] open lossless data compression coreAbgoyal

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.