146 lines
5.8 KiB
Text
146 lines
5.8 KiB
Text
|
Introduction:
|
||
|
-------------
|
||
|
|
||
|
This file is a part of bsc and/or libbsc, a program and a library for
|
||
|
lossless, block-sorting data compression.
|
||
|
|
||
|
bsc is a high performance file compressor based on lossless,
|
||
|
block-sorting data compression algorithms.
|
||
|
|
||
|
libbsc is a library based on bsc, it uses the same algorithms
|
||
|
as bsc and enables you to compress memory blocks.
|
||
|
|
||
|
Copyright (c) 2009-2012 Ilya Grebnov <ilya.grebnov@gmail.com>
|
||
|
|
||
|
See file AUTHORS for a full list of contributors.
|
||
|
|
||
|
See the bsc and libbsc web site:
|
||
|
http://libbsc.com/ for more information.
|
||
|
|
||
|
Software License:
|
||
|
-----------------
|
||
|
|
||
|
The bsc and libbsc is free software; you can redistribute it and/or modify
|
||
|
it under the terms of the GNU Lesser General Public License as published by
|
||
|
the Free Software Foundation; either version 3 of the License, or (at your
|
||
|
option) any later version.
|
||
|
|
||
|
The bsc and libbsc 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 Lesser General Public
|
||
|
License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU Lesser General Public License
|
||
|
along with the bsc and libbsc. If not, see http://www.gnu.org/licenses/.
|
||
|
|
||
|
Please see the files COPYING and COPYING.LIB for full copyright information.
|
||
|
|
||
|
|
||
|
Memory usage:
|
||
|
-------------
|
||
|
|
||
|
bsc compresses large files in blocks. Multiple blocks can be processed in
|
||
|
parallel on multiple-core CPU. At decompression time, the block size used
|
||
|
for compression is read from the header of the compressed file. The block
|
||
|
size and number of blocks processed in parallel affects both the compression
|
||
|
ratio achieved, and the amount of memory needed for compression and decompression.
|
||
|
Compression and decompression requirements are the same and in bytes, can
|
||
|
be estimated as 16Mb + 5 x block size x number of blocks processed in parallel.
|
||
|
|
||
|
GPU memory usage for NVIDIA CUDA technology is different from CPU memory usage
|
||
|
and can be estimated as 20 x block size.
|
||
|
|
||
|
|
||
|
NVIDIA GPU acceleration:
|
||
|
------------------------
|
||
|
|
||
|
1. libbsc uses NVIDIA CUDA technology, resulting in a performance boost on computers
|
||
|
with NVIDIA GPU of compute capability 1.1 or higher. Lists of supported GPUs
|
||
|
can be found on the NVIDIA website http://developer.nvidia.com/cuda-gpus.
|
||
|
You also need to install latest graphics drivers that support CUDA.
|
||
|
|
||
|
2. Individual kernels are limited to a 2-second runtime by Windows. Kernels that run for
|
||
|
longer than 2 seconds will trigger the Timeout Detection and Recovery (TDR) mechanism.
|
||
|
Detailed information on disabling the Windows TDR is available at:
|
||
|
http://msdn.microsoft.com/en-us/windows/hardware/gg487368.aspx#E2
|
||
|
|
||
|
|
||
|
Sort Transform:
|
||
|
---------------
|
||
|
|
||
|
Sort Transform is patented by Michael Schindler under US patent 6,199,064.
|
||
|
However for research purposes this algorithm is included in this software.
|
||
|
So if you are of the type who should worry about this (making money) worry away.
|
||
|
The author shall have no liability with respect to the infringement of
|
||
|
copyrights, trade secrets or any patents by this software. In no event will
|
||
|
the author be liable for any lost revenue or profits or other special,
|
||
|
indirect and consequential damages.
|
||
|
|
||
|
Sort Transform is disabled by default and can be enabled by defining the
|
||
|
preprocessor macro LIBBSC_SORT_TRANSFORM_SUPPORT at compile time.
|
||
|
|
||
|
|
||
|
Back 40 Computing:
|
||
|
------------------
|
||
|
|
||
|
The Back 40 Computing project is a collection of fast, efficient GPU
|
||
|
primitives. This project implements a very fast, efficient radix sorting
|
||
|
method for CUDA-capable devices. libbsc uses the Back 40 Computing
|
||
|
primitives for constructing Sort Transform for CUDA-capable devices.
|
||
|
|
||
|
The Back 40 Computing copyright is as follows:
|
||
|
|
||
|
Copyright 2010-2011 Duane Merrill
|
||
|
|
||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
you may not use this file except in compliance with the License.
|
||
|
You may obtain a copy of the License at
|
||
|
|
||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||
|
|
||
|
Unless required by applicable law or agreed to in writing, software
|
||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
See the License for the specific language governing permissions and
|
||
|
limitations under the License.
|
||
|
|
||
|
See also the Back 40 Computing web site:
|
||
|
http://code.google.com/p/back40computing/ for more information.
|
||
|
|
||
|
|
||
|
libdivsufsort:
|
||
|
--------------
|
||
|
|
||
|
The libdivsufsort project provides a fast, lightweight, and robust
|
||
|
C API library to construct the suffix array and the Burrows-Wheeler
|
||
|
transformed string for any input string of a constant-size alphabet.
|
||
|
libbsc uses libdivsufsort for constructing Burrows-Wheeler transform.
|
||
|
|
||
|
The libdivsufsort copyright is as follows:
|
||
|
|
||
|
Copyright (c) 2003-2008 Yuta Mori All Rights Reserved.
|
||
|
|
||
|
Permission is hereby granted, free of charge, to any person
|
||
|
obtaining a copy of this software and associated documentation
|
||
|
files (the "Software"), to deal in the Software without
|
||
|
restriction, including without limitation the rights to use,
|
||
|
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||
|
copies of the Software, and to permit persons to whom the
|
||
|
Software is furnished to do so, subject to the following
|
||
|
conditions:
|
||
|
|
||
|
The above copyright notice and this permission notice shall be
|
||
|
included in all copies or substantial portions of the Software.
|
||
|
|
||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||
|
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||
|
OTHER DEALINGS IN THE SOFTWARE.
|
||
|
|
||
|
See also the libdivsufsort web site:
|
||
|
http://libdivsufsort.googlecode.com/ for more information.
|