Home / Function/ generateHuffmanOptimisationSeeds() — netty Function Reference

generateHuffmanOptimisationSeeds() — netty Function Reference

Architecture documentation for the generateHuffmanOptimisationSeeds() function in Bzip2HuffmanStageEncoder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  2f7e4bf0_cbf0_8d52_74b2_e1e1992afc34["generateHuffmanOptimisationSeeds()"]
  9201fec0_464b_c827_7f9e_b36517971a73["Bzip2HuffmanStageEncoder"]
  2f7e4bf0_cbf0_8d52_74b2_e1e1992afc34 -->|defined in| 9201fec0_464b_c827_7f9e_b36517971a73
  6e4766a4_37c9_7b63_401b_81d6c95ccc03["encode()"]
  6e4766a4_37c9_7b63_401b_81d6c95ccc03 -->|calls| 2f7e4bf0_cbf0_8d52_74b2_e1e1992afc34
  style 2f7e4bf0_cbf0_8d52_74b2_e1e1992afc34 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2HuffmanStageEncoder.java lines 162–195

    private void generateHuffmanOptimisationSeeds() {
        final int[][] huffmanCodeLengths = this.huffmanCodeLengths;
        final int[] mtfSymbolFrequencies = this.mtfSymbolFrequencies;
        final int mtfAlphabetSize = this.mtfAlphabetSize;

        final int totalTables = huffmanCodeLengths.length;

        int remainingLength = mtfLength;
        int lowCostEnd = -1;

        for (int i = 0; i < totalTables; i++) {

            final int targetCumulativeFrequency = remainingLength / (totalTables - i);
            final int lowCostStart = lowCostEnd + 1;
            int actualCumulativeFrequency = 0;

            while (actualCumulativeFrequency < targetCumulativeFrequency && lowCostEnd < mtfAlphabetSize - 1) {
                actualCumulativeFrequency += mtfSymbolFrequencies[++lowCostEnd];
            }

            if (lowCostEnd > lowCostStart && i != 0 && i != totalTables - 1 && (totalTables - i & 1) == 0) {
                actualCumulativeFrequency -= mtfSymbolFrequencies[lowCostEnd--];
            }

            final int[] tableCodeLengths = huffmanCodeLengths[i];
            for (int j = 0; j < mtfAlphabetSize; j++) {
                if (j < lowCostStart || j > lowCostEnd) {
                    tableCodeLengths[j] = HUFFMAN_HIGH_SYMBOL_COST;
                }
            }

            remainingLength -= actualCumulativeFrequency;
        }
    }

Domain

Subdomains

Called By

Frequently Asked Questions

What does generateHuffmanOptimisationSeeds() do?
generateHuffmanOptimisationSeeds() is a function in the netty codebase, defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2HuffmanStageEncoder.java.
Where is generateHuffmanOptimisationSeeds() defined?
generateHuffmanOptimisationSeeds() is defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2HuffmanStageEncoder.java at line 162.
What calls generateHuffmanOptimisationSeeds()?
generateHuffmanOptimisationSeeds() is called by 1 function(s): encode.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free