Home / Function/ assignHuffmanCodeSymbols() — netty Function Reference

assignHuffmanCodeSymbols() — netty Function Reference

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

Entity Profile

Dependency Diagram

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

Relationship Graph

Source Code

codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2HuffmanStageEncoder.java lines 264–297

    private void assignHuffmanCodeSymbols() {
        final int[][] huffmanMergedCodeSymbols = this.huffmanMergedCodeSymbols;
        final int[][] huffmanCodeLengths = this.huffmanCodeLengths;
        final int mtfAlphabetSize = this.mtfAlphabetSize;

        final int totalTables = huffmanCodeLengths.length;

        for (int i = 0; i < totalTables; i++) {
            final int[] tableLengths = huffmanCodeLengths[i];

            int minimumLength = 32;
            int maximumLength = 0;
            for (int j = 0; j < mtfAlphabetSize; j++) {
                final int length = tableLengths[j];
                if (length > maximumLength) {
                    maximumLength = length;
                }
                if (length < minimumLength) {
                    minimumLength = length;
                }
            }

            int code = 0;
            for (int j = minimumLength; j <= maximumLength; j++) {
                for (int k = 0; k < mtfAlphabetSize; k++) {
                    if ((huffmanCodeLengths[i][k] & 0xff) == j) {
                        huffmanMergedCodeSymbols[i][k] = (j << 24) | code;
                        code++;
                    }
                }
                code <<= 1;
            }
        }
    }

Domain

Subdomains

Called By

Frequently Asked Questions

What does assignHuffmanCodeSymbols() do?
assignHuffmanCodeSymbols() is a function in the netty codebase, defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2HuffmanStageEncoder.java.
Where is assignHuffmanCodeSymbols() defined?
assignHuffmanCodeSymbols() is defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2HuffmanStageEncoder.java at line 264.
What calls assignHuffmanCodeSymbols()?
assignHuffmanCodeSymbols() 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