BCJ (algorytm)
W kompresji danych BCJ , skrót od Branch/Call/Jump , odnosi się do techniki poprawiającej kompresję kodu maszynowego poprzez zastąpienie względnych adresów gałęzi adresami bezwzględnymi. Dzięki temu Lempel-Ziv może identyfikować zduplikowane cele i wydajniej je kodować. Podczas dekompresji filtr odwrotny przywraca oryginalne kodowanie. Różne filtry BCJ są używane dla różnych zestawów instrukcji , ponieważ każdy używa różnych opcodów do rozgałęziania.
Forma BCJ jest widoczna w formacie pliku Cabinet firmy Microsoft z 1996 roku, który filtruje instrukcje CALL x86 dla kompresora LZX . Formaty plików 7z i xz implementują BCJ dla wielu architektur. ZPAQ nazywa swój x86 BCJ jako „E8E9”, po wartościach opcode.
bsdiff , narzędzie do aktualizacji delta , omija potrzebę pisania narzędzi BCJ specyficznych dla architektury poprzez kodowanie różnic bajtowych. Dzięki temu jest znacznie lepszy niż narzędzia typu „dopasuj i kopiuj”, takie jak VCDIFF. Jednak cukinia Google, która dodaje warstwę wyraźnego demontażu, jest w stanie wytworzyć jeszcze mniejsze różnice.