private void writeBlockData ( ByteBuf out ) { final Bzip2BitWriter writer = this . writer ; final int [ ] [ ] huffmanMergedCodeSymbols = this . huffmanMergedCodeSymbols ; final byte [ ] selectors = this . selectors ; final char [ ] mtf = mtfBlock ; final int mtfLength = this . mtfLength ; int selectorIndex = 0 ; for ( int mtfIndex = 0 ; mtfIndex < mtfLength ; ) { final int groupEnd = Math . min ( mtfIndex + HUFFMAN_GROUP_RUN_LENGTH , mtfLength ) - 1 ; final int [ ] tableMergedCodeSymbols = huffmanMergedCodeSymbols [ selectors [ selectorIndex ++ ] ] ; while ( mtfIndex <= groupEnd ) { final int mergedCodeSymbol = tableMergedCodeSymbols [ mtf [ mtfIndex ++ ] ] ; writer . writeBits ( out , mergedCodeSymbol >>> 24 , mergedCodeSymbol ) ; } } }
Writes out the encoded block data .