BCJ (algorithm)
   HOME

TheInfoList



OR:

In data compression, BCJ, short for Branch/Call/Jump, refers to a technique that improves the compression of machine code by replacing relative branch addresses with absolute ones. This allows a
Lempel–Ziv LZ77 and LZ78 are the two lossless data compression algorithms published in papers by Abraham Lempel and Jacob Ziv in 1977 and 1978. They are also known as LZ1 and LZ2 respectively. These two algorithms form the basis for many variations includin ...
compressor to identify duplicate targets and more efficiently encode them. On decompression, the inverse filter restores the original encoding. Different BCJ filters are used for different
instruction set In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, such as a central processing unit (CPU), is called an ' ...
s, as each use different opcodes for branching. A form of BCJ is seen in Microsoft's
cabinet Cabinet or The Cabinet may refer to: Furniture * Cabinetry, a box-shaped piece of furniture with doors and/or drawers * Display cabinet, a piece of furniture with one or more transparent glass sheets or transparent polycarbonate sheets * Filing ...
file format from 1996, which filters x86 CALL instructions for the
LZX LZX is an LZ77 family compression algorithm, a slightly improved version of DEFLATE. imlib: the open source Windows Imaging (WIM) library - Compression algorit hmhttps://wimlib.net/compression.html/ref> It is also the name of a file archiver wit ...
compressor. The 7z and xz file formats implement BCJ for multiple architectures. Delta update techniques like bsdiff and courgette also include a form of BCJ.
Colin Percival Colin A. Percival (born 1980) is a Canadian computer scientist and computer security researcher. He completed his undergraduate education at Simon Fraser University and a doctorate at the University of Oxford. While at university he joined the F ...
, Naive differences of executable code, http://www.daemonology.net/bsdiff/, 2003.


References

Data compression software Algorithms on strings {{algorithm-stub