Method and system for forming entropy coding groups in display interface compression

By using the prefix encoding method in the display interface compression and selecting the appropriate prefix codebook to encode the prefix value of the entropy encoding group, the complexity and low decoding throughput brought by high compression ratio in the prior art are solved, and the problem of high compression ratio and low decoding throughput is realized. Efficient display interface compression and decoding operations.

CN110784715BActive Publication Date: 2025-02-07SAMSUNG DISPLAY CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN201910672112.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-10-03
Filing Date
2019-07-24
Publication Date
2025-02-07
Estimated Expiration
2039-07-24

AI Technical Summary

Technical Problem

The existing display interface compression standards achieve high compression ratios while increasing the complexity of the codec and making it difficult to effectively improve the throughput of the decoding operation.

Method used

The prefix encoding method is used to form an entropy encoding group in the entropy encoder, and the prefix value of the entropy encoding group is encoded by selecting an appropriate prefix codebook to improve the throughput of the decoding operation.

Benefits of technology

实现了在保持视觉无损质量的同时,提高显示接口压缩的压缩效率和解码吞吐量,降低了编解码器的复杂性。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN110784715B_ABST
    Figure CN110784715B_ABST
Patent Text Reader

Abstract

The present invention relates to a method and system for forming entropy coding groups in display interface compression. The system and method for forming entropy coding groups in an entropy encoder include: providing multiple prefix codebooks, each prefix codebook is associated with a bit-based representation; receiving a block of sample values ​​as a current block of sample values; forming multiple entropy coding groups; converting the sample values ​​in each entropy coding group to a selected bit-based representation; determining a bit-based representation for each corresponding entropy coding group; in response to the determination, selecting a first prefix codebook or a second prefix codebook for the corresponding entropy coding group; applying the selected prefix codebook to encode the prefix value of the corresponding entropy coding group; forming a bit-based representation of the entropy coding group, wherein the bit-based representation of each entropy coding group includes a prefix and one or more sample values ​​encoded using the selected prefix codebook; and providing the bit-based representation of the entropy coding group as an output.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to U.S. Provisional Patent Application No. 62 / 702,788, filed on July 24, 2018, entitled “SYSTEM AND METHODS OF PREFIX CODING FOR HIGH-THROUGHPUTROPY CODER IN DISPLAY COMPRESSION,” which is incorporated herein by reference for all purposes. Technical Field

[0003] The present disclosure relates to methods and systems for forming entropy coding groups in display interface compression, and in particular, to prefix coding methods. Background Art

[0004] VESA (Video Electronics Standards Association) has developed a new display interface compression standard called VESA Display Compression-Mobile or VDC-M for mobile or smartphone displays or handheld devices. VDC-M targets a higher compression ratio than Display Stream Compression (DSC) while maintaining visually lossless quality like DSC at the cost of increased complexity. VDC-M is suitable for mobile devices using a display link such as the MIPI Display Serial Interface (DSI).

[0005] Specifically, the VDC-M compression standard is a fixed rate codec (coder-decoder) and supports compression rates down to 6 bits per pixel for RGB 4:4:4 signal sources with 8 bits per color component. VDC-M is a block-based codec with a block size of 8×2 pixels. In operation, the VDC-M codec operates by applying or testing multiple coding modes for each block and selecting the best coding mode for the block based on the rate-distortion cost. Different coding modes can be selected for each block. With the selected coding mode, the data samples are encoded using an entropy encoder to generate a compressed bitstream. Substream multiplexing is implemented to enable parallel parsing of the compressed bitstream, thereby achieving high decoder throughput. Summary of the invention

[0006] The present disclosure discloses a system and method for forming entropy coding groups in an entropy encoder, substantially as shown and / or as described below (e.g., in conjunction with at least one of the accompanying drawings), as more fully set forth in the claims.

[0007] These and other advantages, aspects and novel features of the present disclosure will be more fully understood from the following description and drawings, as well as details of illustrated embodiments of the present disclosure.

[0008] In one embodiment, a method of forming an entropy coding group in an entropy encoder includes: providing a plurality of prefix codebooks, each prefix codebook being associated with a bit-based representation; receiving a block of a first number of sample values ​​generated by a selected coding mode process as a current block of sample values; forming a plurality of entropy coding groups by distributing the first number of sample values ​​into the entropy coding groups; converting the sample values ​​in each entropy coding group into the selected bit-based representation; determining a bit-based representation for each corresponding entropy coding group; in response to determining that the corresponding entropy coding group is encoded using the first bit-based representation, selecting a first prefix codebook from a plurality of prefix codebooks; in response to determining that the corresponding entropy coding group is encoded using the second bit-based representation, selecting a second prefix codebook from a plurality of prefix codebooks, the second prefix codebook being different from the first prefix codebook; applying the selected prefix codebook to encode the prefix value of the corresponding entropy coding group; forming a bit-based representation of each corresponding entropy coding group, wherein the bit-based representation of each corresponding entropy coding group includes a prefix encoded using the selected prefix codebook and one or more sample values ​​encoded in the selected bit-based representation; and providing the bit-based representation of the entropy coding group as an output.

[0009] In another embodiment, a system for forming entropy coding groups in an entropy encoder includes: a processor; and a memory coupled to the processor, wherein the memory is configured to provide instructions to the processor that, when executed, cause the processor to perform the following operations: provide a plurality of prefix codebooks, each prefix codebook being associated with a bit-based representation; receive a block of a first number of sample values ​​generated by a selected coding mode process as a current block of sample values; form a plurality of entropy coding groups by distributing the first number of sample values ​​into the entropy coding groups; convert the sample values ​​in each entropy coding group into the selected bit-based representation; determine the bit-based representation for each corresponding entropy coding group; in response to determining to use the first The method comprises: encoding the corresponding entropy coding group using a bit-based representation, selecting a first prefix codebook from a plurality of prefix codebooks; in response to determining to encode the corresponding entropy coding group using a second bit-based representation, selecting a second prefix codebook from a plurality of prefix codebooks, the second prefix codebook being different from the first prefix codebook; encoding the prefix value of the corresponding entropy coding group using the selected prefix codebook; forming a bit-based representation of each corresponding entropy coding group, wherein the bit-based representation of each corresponding entropy coding group includes a prefix encoded using the selected prefix codebook and one or more sample values ​​encoded with the selected bit-based representation; and providing the bit-based representation of the entropy coding group as an output.

[0010] In yet another embodiment, a method for decoding a compressed bitstream includes: receiving a compressed bitstream encoded in an entropy encoder using a plurality of prefix codebooks to encode a prefix of each entropy coding group in the compressed bitstream; processing a current block of sample values ​​in the received compressed bitstream; determining a bit-based representation for each entropy coding group in the current block of sample values; selecting a prefix codebook from the plurality of prefix codebooks based on the determined bit-based representation; decoding the current block using the selected prefix codebook; and generating as output a sample value for each component of the current block. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] Various embodiments of the present disclosure are disclosed in the following detailed description and accompanying drawings.

[0012] Figure 1 is a schematic diagram illustrating a system configuration for implementing a display interface codec in some examples.

[0013] Figure 2 is a process diagram illustrating the operation of a display stream encoder in some examples.

[0014] Figure 3 is a process diagram illustrating the operation of an entropy encoder in some examples.

[0015] include Figure 4 (a) to Figure 4 (d) Figure 4 Illustrated are the entropy coding group structure and the output of common prefix entropy coding (CPEC) in some examples.

[0016] include Figure 5 (a) and Figure 5 (b) Figure 5 An exemplary grouping method for forming an entropy coding group for one component in a block of sample values ​​in some examples is illustrated.

[0017] include Figure 6 (a) and Figure 6 (b) Figure 6 An exemplary grouping method for forming an entropy coding group for one component in a block of 8 sample values ​​in some examples is illustrated.

[0018] include Figure 7 (a) and Figure 7 (b) Figure 7 Illustrated are entropy coding group structures using a bit-based representation of two's complement and a bit-based representation of sign-magnitude in some examples.

[0019] Figure 8 Illustrated are entropy coding groups for blocks of samples in some examples.

[0020] Fig. 9 The prefix codebooks in some examples are illustrated.

[0021] Fig.10 Example entropy coded groups in sign-magnitude representation and two's complement representation are illustrated.

[0022] include Fig.11 (a) and Fig.11 (b) Fig.11 Probability mass functions (pmf) for sign-magnitude representation and two's complement representation in some examples are illustrated.

[0023] include Fig.12 (a) and Fig.12 (b) Fig.12 The illustration shows prefix codebooks for different bit-based representations that can be implemented in the prefix encoding method in an embodiment of the present disclosure.

[0024] Fig.13 is a flow chart illustrating an entropy encoding method implemented in an entropy encoder in some embodiments.

[0025] Fig.14 is a flow chart illustrating a decoding method implemented in a display stream decoder in some embodiments. DETAILED DESCRIPTION

[0026] According to an embodiment of the present disclosure, a display interface codec that performs video signal compression using one or more coding modes to encode blocks of pixel values ​​includes an entropy encoder that implements a prefix coding method to improve the throughput of a decoding operation. In some embodiments, the display interface codec includes a display stream encoder that implements a prefix coding method to select a prefix codebook based on a bit-based representation for encoding sample values ​​in an entropy coding group to encode a prefix of the entropy coding group. The prefix coding method can be applied to an entropy coding group generated using any coding mode in the coding mode implemented in the entropy encoder. In some examples, the sample values ​​of the entropy coding group are encoded using a bit-based representation including a binary complement (2C) and a sign-magnitude (SM). The prefix coding method provides a first prefix codebook for sign-magnitude representation and a second prefix codebook for binary complement representation.

[0027] In an embodiment of the present disclosure, a display interface codec includes a display stream decoder that implements a prefix decoding method for decoding a prefix. Specifically, the display stream decoder receives a compressed bit stream generated at an encoder using a prefix encoding method. The display stream decoder determines a prefix codebook for the prefix of each entropy coding group. The display stream decoder then decodes each block based on the prefix codebook used by the selected display stream encoder.

[0028] In an embodiment of the present disclosure, the display interface codec performs video signal compression based on a display interface compression standard for mobile or smart phone displays called VESA Display Compression Mobile (or VDC-M). The VDC-M display interface compression standard is described in Jacobson et al., "A new display stream compression standard under development in VESA," Proc. SPIE 10396, Applications of Digital Image Processing XL, 103960U (September 19, 2017). Specifically, VDC-M is a fixed rate codec (coder-decoder) and supports compression rates down to 6 bits / pixel for RGB 4:4:4 sources. Figure 1 is a schematic diagram illustrating a system configuration for implementing a display interface codec in some examples. Figure 1 , the electronic device 10 includes an application processor 12 that communicates with a display driver integrated circuit 16 via a display link 13. The application processor 12 includes a display engine 14 that receives video content and implements a display stream encoder 15, such as a display stream encoder based on the VDC-M display interface compression standard. The encoded bit stream is sent from the display stream encoder 15 to the display driver integrated circuit 16 via the display link 13. The display link 13 can be a physical link or a wireless link. The display driver integrated circuit 16 includes a frame buffer 17, which is used to store the input bit stream and provide the received bit stream to a display stream decoder 18, such as a display stream decoder based on the VDC-M display interface compression standard.

[0029] In some embodiments, both the display stream encoder 15 and the display stream decoder 18 are implemented as hardware components, such as semiconductor integrated circuits. In some embodiments, the display stream encoder 15 and the display stream decoder 18 are implemented as application specific integrated circuits (ASICs). In other embodiments, the display stream decoder 18 is implemented in hardware, while the display stream encoder 15 is implemented in software or firmware in the application processor 12 on the host system.

[0030] Figure 2 is a process diagram illustrating the operation of a display stream encoder in some examples. The VDC-M display interface compression standard is a block-based codec with a block size of 8×2 pixels. Therefore, the display stream encoder 15 operates on video data in blocks of 8×2 pixels (e.g., in 8 columns and 2 rows). Figure 2, the display stream encoder 15 receives the pixel values ​​of the current block (20) of 8×2 pixels. Each pixel block includes pixel values ​​for one or more color components. For example, each pixel block typically includes pixel values ​​for three color components. The display stream encoder 15 performs flatness detection and rate control state update (21). Then, the display stream encoder 15 tests the encoding modes of all groups in parallel for the pixel values ​​of the current pixel block (22). In this example, encoding modes 23-27 are applied. For each encoding mode, the display stream encoder 15 determines the rate R (which is the sum of all syntax bits required for the mode) and the distortion D of the mode. The display stream encoder 15 determines the RD cost of each encoding mode. The display stream encoder 15 selects the encoding mode with the minimum RD cost subject to the rate control constraint (28). Then, the display stream encoder 15 encodes the selected encoding mode using the entropy encoder 30. The entropy encoder 30 generates a compressed bitstream that can be sent to the display link 13. Then, the display stream encoder 15 moves to the next pixel block. In operation, a different encoding mode can be selected for each pixel block in a frame of the video content.

[0031] In this specification, "component" or "color component" refers to a color component used to represent a video signal, and the "component" or "color component" may be RGB or YCbCr or YUV.

[0032] Each encoding mode in the display stream encoder 15 has properties tailored for a specific type of video content. In this example, the display stream encoder 15 implements the following encoding modes:

[0033] (1) Transform Mode (23) - Transform modes are useful for capturing natural content in the input video source. An example of a transform mode is the discrete cosine transform.

[0034] (2) Block Prediction (BP) Mode (24) - Block prediction mode is useful for capturing graphics and texture content in the input video source.

[0035] (3) Midpoint Prediction (MPP) Mode (25) - Midpoint prediction mode is useful when capturing non-correlated noise content in the input video source.

[0036] (4) Fallback Modes (26, 27) - One or more fallback modes are provided to ensure fixed rate compression when other modes are not affordable. In this example, a midpoint prediction fallback (MPPF) mode (26) and a block prediction skip (BP-Skip) mode (27) are provided.

[0037] Entropy Encoder

[0038] Still refer to Figure 2, with the selected encoding mode, the display stream encoder 15 encodes the samples using the entropy encoder 30. The operation of the entropy encoder 30 will now be described. Figure 3 is a process diagram illustrating the operation of an entropy encoder in some examples. The entropy encoder 40 is designed to facilitate high throughput at the decoder by dividing the samples in each color component of a block into separate groups. Figure 3 , the entropy encoder 40 receives a current block of 16 data values ​​for each color component generated by the selected encoding mode. In this specification, the data values ​​for the current block of each color component are also referred to as samples or sample values, and the entropy encoder 40 can be described as receiving a block of 16 samples for each color component. For each block of data values ​​associated with the corresponding color component, the entropy encoder 40 groups one or more samples into an entropy coding group (ECG) (42). Specifically, the samples in the current block for each component are distributed in a predetermined number of entropy coding groups. For example, for 4:4:4 video content, the blocks of 16 samples for a component can be distributed in 4 entropy coding groups. Then, the entropy encoder 40 converts the sample values ​​in each group into a predetermined bit-based representation (44). For example, the entropy encoder 40 can convert each sample value into a two's complement representation. Alternatively, the entropy encoder 40 can convert each sample value into a sign-magnitude representation.

[0039] The entropy encoder 40 then determines a prefix value for each group of the block (46). More specifically, the prefix value represents the number of bits per sample required to encode the sample values ​​in the entropy coding group. In one example, each entropy coding group includes a variable length prefix and N fixed length suffixes as sample values. The prefix value is the number of bits required to represent each sample value or each suffix in a bit-based representation. Using the prefix and suffix thus formed for each group, the entropy encoder 40 packages the entropy coding groups into a compressed bit stream to be transmitted (48). In this way, the encoded data for each color component of the video content will be transmitted as a group of entropy coding groups in the compressed bit stream.

[0040] The data values ​​encoded by the entropy encoder 40 are a function of the selected encoding mode. In one example, when transform mode 23 is selected, the entropy encoder 40 encodes quantized transform coefficients. That is, the data values ​​are quantized transform coefficients. In another example, when block prediction mode 24 is selected, the entropy encoder 40 encodes quantized prediction residuals.

[0041] In the above description, it is assumed that the video content is 4:4:4 video content. In that case, there are 16 samples per block for each color component. For example, for an RGB video signal, each R, G, and B color component includes 16 samples per block. In other examples, the video content may be 4:2:2 video content. For 4:2:2 video content, the luminance component contains blocks of 16 samples, and the two chrominance components contain only 8 samples or a block size of 4×2. In yet another example, the video content may be 4:2:0 video content. For 4:2:0 video content, the luminance component contains blocks of 16 samples, and the two chrominance components contain only 4 samples or a block size of 2×2.

[0042] The entropy encoder 40 receives 16 samples for each color component in the current data value block and divides the samples into entropy coded groups. The sample values ​​in each entropy coded group are then encoded into a bit-based representation. In this specification, a common prefix entropy code (CPEC) is used to convert the entropy coded group into a bit-based representation. Figure 4 (a) to 4(d) Figure 4 Figure 1 shows the entropy coding group structure and the output of the common prefix entropy code (CPEC) in some examples. Figure 4 (a), the entropy encoder 40 divides the samples into entropy coding groups, where each entropy coding group consists of a variable-length prefix and one or more fixed-length suffixes. Figure 4 In the example shown in (a), the entropy coding group includes 4 suffixes associated with 4 samples of the block.

[0043] For each entropy coding group, CPEC is applied to convert the sample value into a bit-based representation. Specifically, an entropy coding group with a group size of N or N samples includes a prefix of variable length, followed by N fixed-length suffixes, where N is an integer greater than 0. Using CPEC, the prefix is ​​encoded using a variable-length code (e.g., a unary code) and represents the number of bits used to encode each suffix. The actual sample value in the group is represented in the suffix, and there is a suffix for each sample in the group. All N suffixes in the group are assigned the same number of bits, i.e., a fixed-length code. For example, a sample can be represented in the form of a binary complement representation or a sign-amplitude representation. Specifically, each suffix in the entropy coding group using CPEC corresponds to a sample value encoded as a given bit-based representation.

[0044] Figure 4(b) illustrates an example CPEC output for an entropy coded group of 4 samples with sample values ​​{1, -2, -1, 0}. In this example, a two's complement representation is used to generate the bits of the sample values ​​in the entropy coded group. The number of bits required to faithfully reconstruct the group is 2. Specifically, in a two's complement representation, n bits are required to represent a value in the range [-2 (n-1) ,2 (n-1) -1]. Figure 4 In the example of (b), each sample value is represented by 2 bits in the two's complement representation. Therefore, the prefix will indicate the value 2. For the sample value group {1,-2,-1,0}, the bits output by the CPEC operation will be the prefix 110 (unary code for 2) and 4 suffixes, where each sample is encoded using 2 bits (e.g., "01 10 11 00"), as shown in Figure 1. Figure 4 (b) as shown. Figure 4 The output of the CPEC operation in the example of (b) is illustrative only, and the actual output of the CPEC operation may vary depending on the actual implementation.

[0045] Figure 4 The example shown in (b) uses a two's complement representation. Other representations such as sign-magnitude may also be used in the CPEC operation to generate bits for each entropy coded group. When the sign-magnitude representation is used, n bits are required for each sample, where the absolute values ​​(i.e., magnitudes) of all samples in the group are in the range [0,2 n -1]. In sign-magnitude representation, the sign bit indicates only non-zero values. An example of the output of a CPEC operation using sign-magnitude representation is Figure 4 (c) For an input set of sample values ​​{1, -2, -1, 0}, the output of the CPEC operation in sign-magnitude representation will be a prefix of 110 (unary code for 2), followed by a suffix that uses 2 bits (e.g., 01 10 01 00) to encode the absolute value of each sample, and a final sign bit of 1 0 0, assuming 1 for positive signs and 0 for negative signs. Note that the sign value of the last symbol 0 is not indicated.

[0046] When all samples in a group have a zero value, only one bit is indicated for the entire group, which is referred to in this disclosure as “group skipping.” Group skipping is applicable to CPEC using sign-magnitude representation and two's complement representation.

[0047] As such, the entropy encoder 40 divides the samples of each component of the block to generate a set of entropy coded groups, which are then transmitted in the compressed bitstream. At the entropy encoder 40, the variable length prefix of the current group is parsed, and then the remaining number of suffix bits in the current group is known. Therefore, the entropy encoder 40 can jump and start parsing the prefix of the next group, while the decoder decodes the suffix of the previous group, such as Figure 4 As shown in (d), due to the limited number of variable length codes (maximum 4 for one color component in a block of size 8×2), the decoder can achieve high throughput.

[0048] The entropy encoder 40 determines the grouping of samples into entropy coding groups for each component in the sample block. The size of each ECG (i.e., the number of samples to be included in each ECG) will depend on the coding mode, color component, and chroma sampling format. The distribution of samples within the entropy coding group also depends on the coding mode.

[0049] include Figure 5 (a) and Figure 5 (b) Figure 5 An exemplary grouping method for forming an entropy coding group for a component in a block of sample values ​​in some examples is illustrated. Figure 5 (a), a block of each sample value for a component contains 8×2 or 16 samples S0 to S15. In this example, the entropy encoder distributes the 16 samples into four entropy coding groups ECG0 to ECG3, where each group is encoded using the CPEC structure, such as Figure 5 (b) In this example, a non-uniform grouping method is used, where the size or number of samples for each entropy coding group is different. For example, a non-uniform sample distribution is used for the transform mode so that samples with similar frequencies in the transform domain are grouped together. Figure 5 (b), the grouping method forms entropy coding groups of size 1, 3, 5 and 7. The DC value S0 is considered as a separate group ECG0. Group ECG1 contains three samples S1, S2 and S8. Group ECG2 contains five samples S3, S4, S9, S10 and S11. Group ECG3 contains seven samples S5, S6, S7, S12, S13, S14 and S15. Specifically, the samples assigned to each group can be selected in a zigzag pattern within an 8×2 block.

[0050] In the case of 4:4:4 video content, each color component (e.g. RGB) contains the same number of samples, i.e. 16 samples per block. Therefore, Figure 5 The grouping method in can be used for all color components. In the case of 4:2:2 video content, the luma component contains blocks of 16 samples, and thus can use Figure 5However, the chroma components contain only 8 samples or a block size of 4×2. In that case, a different grouping method is applied. This includes Figure 6 (a) and 6(b) Figure 6 An exemplary grouping method in some examples is illustrated, which is used to form an entropy coding group for a component in a block of 8 sample values. Figure 6 (a), for 4:2:2 video content, the chrominance components are represented by a block size of 4×2 or 8 samples. In that case, the grouping method can form two entropy coding groups ECG0 and ECG1 with 1 sample and 7 samples respectively, as shown in Figure 6 (b) as shown.

[0051] The non-uniform sample allocation described above is advantageous for use with transform coding modes, so that samples with similar frequencies in the transform domain are grouped together. In the case of block prediction mode, a uniform grouping method is used, in which each entropy coding group contains the same number of quantized residual samples. For example, the grouping method can place 4 samples per group for 8×2 blocks of sample values ​​for each component. In one example, the first group ECG0 can contain the following samples: {S0, S1, S8, S9}. The second group ECG1 can contain the following samples: {S2, S3, S10, S11}, and so on.

[0052] Using the samples of a given block distributed across the entropy coded groups, the sample values ​​in each entropy coded group are converted to a given bit-based representation. Common Prefix Entropy Coding (CPEC) is applied to the entropy coded groups to form a prefix, suffix, and sign bit (where applicable) for each group. Figure 7 (a) and Figure 7 (b) Figure 7 Illustrated are entropy coding group structures using a bit-based representation of two's complement and a bit-based representation of sign-magnitude in some examples. Figure 7 (a) shows an entropy coding group 60 encoded using a two's complement code (2C). Figure 7 (a), entropy coding group 60 includes a bit for indicating group skipping. As described above, when all sample values ​​(suffixes) are zero, the group skip bit is indicated so that the decoder can skip the remainder of the parsed group. The entropy coding group 60 then includes a prefix as a variable length code and one or more suffixes forming a fixed length code. In this example, the entropy coding group 60 includes four suffixes: suffix 0, suffix 1, suffix 2, and suffix 3. Each suffix in the group has the same number of bits, that is, each suffix in the group is represented by n bits. The prefix indicates the number of bits used to represent each suffix. Therefore, the prefix indicates the value n.

[0053] Figure 7(b) illustrates an entropy coded group 65 encoded using a sign magnitude (SM) representation. Common prefix entropy coding (CPEC) is applied to the entropy coded group 65 to form a prefix, suffix, and sign bit for the group. Figure 7 (b), entropy coding group 65 includes a bit for indicating group skipping. Entropy coding group 60 then includes a prefix as a variable length code and one or more suffixes forming a fixed length code. In this example, entropy coding group 65 includes four suffixes: suffix 0, suffix 1, suffix 2 and suffix 3. In the sign-magnitude representation, each suffix encodes the absolute value of the corresponding sample value. Each suffix in the group has n bits, and the prefix represents the value n. Entropy coding group 65 then includes a sign bit as a variable length code. In the sign-magnitude representation, the sign bit only indicates a non-zero value.

[0054] As described above, the entropy encoder divides the samples of each component of the block to generate a set of entropy coding groups, and the sample values ​​in each entropy coding group are then converted to the selected bit-based representation. For each block of samples, a different bit-based representation can be selected for each group. In some examples, both the bit-based representation of the sign magnitude (SM) and the bit-based representation of the two's complement (2C) are used to encode the entropy coding group for the block of sample values.

[0055] Figure 8 Figure 2 shows entropy coding groups for blocks of samples in some examples. Figure 8 , the samples in each component of the current block 70 of samples are distributed into two or more entropy coding groups. In this example, the samples are distributed into four groups GP0, GP1, GP2 and GP3. In this example, the first three entropy coding groups GP0 to GP2 are encoded using the representation of sign magnitude (SM), and the last group GP3 is encoded using the representation of binary complement (2C). In the representation of SM, the absolute value of each sample value is encoded to form a suffix. Then, the corresponding sign bit only indicates sample values ​​greater than zero. From the perspective of the decoder, before parsing the sign bit, the bits corresponding to the absolute value of the sample value (suffix) are first parsed and decoded. Therefore, in the sign magnitude representation, there is a dependency between the parser and the decoder logic that decodes the absolute value of the sample value.

[0056] To improve decoder throughput, the last group of GP3 is encoded using two's complement representation. In the two's complement (2C) representation, each sample value (including the sign) is encoded directly as a suffix. As a result, there is no dependency between the parser and decoder logic.

[0057] Figure 8The entropy coded groups GP0 to GP3 are packed for transmission on the bitstream. In practice, for each component in the current block, the entropy coded groups are packed so that the prefix and suffix of each group are placed first, followed by the sign bits of the first three groups. That is, the sign bits of the three groups encoded using the sign-magnitude representation are placed at the end of the bitstream for each component of the block. Note that in Figure 8 In , the group skip bit is omitted from the entropy coding group to simplify the discussion. It should be understood that the prefix of each entropy coding group is preceded by the group skip bit, as in Figure 7 As shown and explained.

[0058] Due to such construction, each entropy coding group includes a group with a sign-amplitude representation and at least one group with a binary complement representation. As described above, each entropy coding group is preceded by a prefix encoded using a variable length code (e.g., a unary code). The prefix value corresponds to the minimum number of bits required for the faithful reconstruction of all samples (or sample values) in the group. In this example, the prefix value is sometimes referred to as "bitsReq". The number of bits "bitsReq" required to encode each sample value is a function of the representation based on bits. That is, using a sign-amplitude representation or a binary complement representation can result in different prefix values, and therefore result in different numbers of bits in the prefix of each entropy coding group.

[0059] In the entropy encoder, the prefix is ​​encoded into a variable length code using a prefix codebook. Fig. 9 The prefix codebooks in some examples are illustrated. Fig. 9 The prefix codebook shown encodes the prefix value (bitsReq) using a unary code. In the present disclosure, a codebook refers to a dictionary that maps symbols (or values) to binary codewords. Since group skipping bits are used when all coefficients are zero, the case where the prefix value is 0 is not shown in the codebook. For prefix values ​​equal to or greater than 6, the binary codeword based on the unary code is (bitsReq-1) 1s, followed by 0s. Fig. 9 The example prefix codebook shown provides different codebooks for different components of the pixel value (luminance and chrominance). Therefore, for a prefix value of 4 for the luminance component, the unary code for the prefix is ​​"110". At the same time, for a prefix value of 4 for the chrominance component, the unary code for the prefix is ​​"1110".

[0060] In a conventional entropy encoder, the same codebook is used regardless of the bit-based representation used for the suffix. For example, both the two's complement representation and the sign-magnitude representation use Fig. 9 The prefix value is encoded in the same unary codebook as in . However, this is not the best solution due to the different ranges of data values ​​in the two's complement representation and the sign-magnitude representation. Specifically, the range for the two's complement and the range for the sign-magnitude are given as follows:

[0061] range 2C (n bits)-[-2 n-1 , 2 n-1 -1]

[0062] range SM (n bits) = [0, 2 n-1 -1]

[0063] Note that in two's complement representation, more samples can be represented for a given n bits. Specifically, negative samples can be represented for a given n bits.

[0064] Fig.10 Figure 1 shows an example entropy coded group in sign-magnitude representation and two's complement representation. Fig.10 , the entropy coding group includes four samples, and the values ​​of the four samples are [-1, 13, 1, 6]. The prefix value (bitsReq) used for sign-magnitude representation is 4, that is, 4 bits are required to encode the sample value [-1, 13, 1, 6] using sign-magnitude representation. At the same time, the prefix value (bitsReq) used for two's complement representation is 5, that is, 5 bits are required to encode the sample value [-1, 13, 1, 6] using two's complement representation.

[0065] As a result, within the same entropy coding group, the prefix values ​​calculated in two's complement and sign-magnitude representations are different. Therefore, the same codebook cannot be used for two's complement and sign-magnitude representations to achieve optimal performance.

[0066] In an embodiment of the present disclosure, an entropy coding method in a display interface codec implements a prefix coding method to select a prefix codebook from a plurality of prefix codebooks based on a bit-based representation for encoding a suffix or sample in an entropy coding group, wherein a prefix codebook is provided for each bit-based representation. Each prefix codebook implements a given coding scheme and a given assignment of codewords to prefix values. In addition, in some embodiments, a prefix codebook for a given representation may provide different codeword assignments for different components of a pixel value. In some examples, a first prefix codebook is provided for a sign-amplitude representation, and a second prefix codebook is provided for a binary complement representation. Thus, prefix values ​​associated with different bit-based representations may be encoded using different prefix codebooks. In this way, the encoding of prefix values ​​may be optimized for each bit-based representation, resulting in improved performance of the display interface codec. In contrast, conventional entropy coding schemes use the same prefix codebook regardless of the bit-based representation used to encode sample values, which results in suboptimal performance.

[0067] In an embodiment of the present disclosure, each prefix codebook may be designed using one or more of the following coding schemes: a unary code, a Huffman code, an Exponential-Golomb code, a Golomb-Rice code, or a combination of a Golomb-Rice and an Exponential-Golomb code. Each prefix codebook may use a different coding scheme. For example, a first codebook may use a unary code, and a second codebook may use a Huffman code.

[0068] In the case where the same coding scheme is used for all prefix codebooks, for example, all codebooks use unary codes, the mapping of codewords in the codebooks may be different. That is, the same prefix value may be assigned or mapped to different unary codes in different prefix codebooks.

[0069] In addition, for a given representation, different prefix codebooks can be provided for each component of pixel value. That is to say, for each component of pixel value, coding scheme and / or codeword distribution can be the same or different. In certain embodiments, different color components can use different coding schemes. For example, the R component in the RGB pixel data can use a unary code, and the G component can use a Huffman code. When the same coding scheme is used, each component can have its own codeword distribution. That is to say, the same prefix value can be assigned to the different unary codes of each component in the component.

[0070] For a given sample value in a group, the prefix value can be different due to range differences in the sign-magnitude representation and the two's complement representation. The difference in the prefix value as a function of the bit-based representation of the sample means that the probability mass function (pmf) between the two representations is different. Fig.11 (a) and Fig.11 (b) Fig.11 The probability mass function (pmf) for sign magnitude representation and two's complement representation in some examples is shown. The pmf is plotted with the prefix value (bitsReq) on the "x" axis and the probability value of a given prefix value represented as probability (bitsReq) on the "y" axis. Fig.11 (a), for the sign-magnitude representation, the prefix value 1 has the highest probability of occurrence, followed by the prefix value 2. Fig.11 (b) For the two's complement representation, the prefix value 2 has the highest probability of occurrence, followed by the prefix value 3.

[0071] In an embodiment of the present disclosure, a prefix codebook is constructed using information from a basic probability mass function (pmf) associated with a bit-based representation so that the most likely prefix value is assigned a shorter codeword (or a codeword with a shorter bit length). In one embodiment, the prefix codebook is constructed so that prefix values ​​with reduced probability of occurrence are assigned to codewords with an increased number of bits. Therefore, the prefix value with the highest probability of occurrence will be assigned the shortest codeword, and the prefix value with the lowest probability of occurrence will be assigned the longest codeword. In other embodiments, the prefix codebook can generally be constructed using the probability of a codeword length relationship, but the mapping is not limited to the linear relationship between the prefix value and the codeword length. That is, several prefix values ​​with a high probability of occurrence can be assigned to codewords with a shorter bit length, and several prefix values ​​with a low probability of occurrence can be assigned to codewords with a longer bit length. The prefix value with the highest probability may not be assigned to the shortest codeword, but will be assigned to one of several shorter codewords.

[0072] include Fig.12 (a) and Fig.12 (b) Fig.12 The figure illustrates prefix codebooks for different bit-based representations that can be implemented in the prefix encoding method in an embodiment of the present disclosure. Fig.12 , providing a first prefix codebook 80 for the symbol magnitude representation ( Fig.12 (a)), and providing a second prefix codebook 90 for the two's complement representation ( Fig.12 (b)). In this example, two prefix codebooks are constructed using the same coding scheme (unary code). However, based on the probability mass function associated with the bit-based representation, the assignment of prefix values ​​to codewords in each prefix codebook is set specifically for the bit-based representation, such that more likely prefix values ​​are assigned to codewords with shorter bit lengths.

[0073] refer to Fig.12 (a), the prefix codebook 80 uses a unary code as the encoding scheme. Because the group skip bit is used to indicate a group with all zero sample values, a prefix value of 0 is not included. The prefix codebook 80 maps each prefix value (1 or greater) to a prefix code that is a unary code based on a probability mass function of the prefix value in the sign-magnitude representation. For example, using Fig.11Example probability mass function for the sign magnitude representation in (a), the most likely prefix value for the sign magnitude representation is 1, and the prefix codebook 80 assigns the shortest unary code 0 to the prefix value 1. The next most likely prefix value for the sign magnitude representation is 2, and the prefix codebook 80 assigns the next shortest unary code 10 to the prefix value of 2. The prefix codebook 80 is constructed so that prefix values ​​with reduced probability of occurrence are assigned to unary codewords with increased bit lengths. In this example, for prefix values ​​equal to or greater than 7, the binary codeword based on the unary code is (bitsReq-1) 1s, followed by 0s. In addition, in this example, the same prefix codebook is used for the luminance component and the chrominance component in the sign magnitude representation.

[0074] refer to Fig.12 (b), the prefix codebook 90 uses a unary code as a coding scheme. Because the group skip bit is used to indicate a group with all zero sample values, the prefix value of 0 is not included. The prefix codebook 90 maps each prefix value (1 or greater) to a prefix code as a unary code based on the probability mass function of the prefix value in the two's complement representation. In addition, in this example, two different prefix codebooks 90A and 90B are provided for the luminance component and the chrominance component in the two's complement representation.

[0075] For example, using Fig.11 Example probability mass function for two's complement representation in (b), the most likely prefix value for the two's complement representation is 2, and prefix codebook 90 assigns the shortest unary code 0 to a prefix value of 2. The next most likely prefix value for the two's complement representation is 3, and prefix codebook 90A assigns the next shortest unary code 10 to a prefix value of 3, while prefix codebook 90B assigns the next shortest unary code 110 to a prefix value of 3. Prefix codebook 90 is constructed so that prefix values ​​with decreasing probability of occurrence are assigned unary codewords with increasing bit lengths. In this example, for prefix values ​​equal to or greater than 7, the binary codeword based on the unary code is (bitsReq-1) 1s, followed by 0s.

[0076] For the prefix codebook 90 for two's complement representation, different codeword assignments are used for the luminance component and the chrominance component of the pixel value. For example, for a prefix value of 5 in the luminance component, the prefix codebook 90A assigns a unary codeword "1110". Meanwhile, for a prefix value of 5 in the chrominance component, the prefix codebook 90B assigns a unary codeword "11110".

[0077] By providing different prefix codebooks for different bit-based representations, each prefix codebook can be optimized for the corresponding bit-based representation. In this way, the display interface codec performance can be significantly improved. Specifically, the prefix encoding method of the present disclosure improves compression performance while maintaining the same throughput at the decoder without increasing complexity.

[0078] The prefix encoding method and prefix codebook described above are merely illustrative and are not intended to be limiting. Other prefix codebooks may be used in other embodiments of the present disclosure. In the above embodiments, the entropy coding grouping method is applied to a block size of 8×2 or 4×2 pixels. In other embodiments, the prefix encoding method may be applied to any block size and any grouping method for forming any number of entropy coding groups for each component of the block. In some embodiments, the prefix encoding method may be applied to any chroma sampling format, including 4:4:4, 4:2:2, and 4:2:0. The prefix encoding method may also be applied to any encoding mode using CPEC. For example, the prefix encoding method may be applied only to a transform mode, or only to a block prediction mode, or to both a transform mode and a block prediction mode.

[0079] Fig.13 is a flowchart illustrating an entropy encoding method implemented in an entropy encoder in some embodiments. In some embodiments, the entropy encoding method may be Figure 2 The entropy encoder 30 in the display stream encoder 15 is implemented. Based on the selected encoding mode (eg, transform mode, block prediction mode, etc.), a block of sample values ​​is generated for each component of the block of pixel values. Fig.13 , the entropy coding method 1300 receives a block of S number of sample values ​​generated by processing a selected coding mode for each component of a current block of pixel values ​​(1302). The entropy coding method 1300 forms entropy coding groups by allocating the sample values ​​into two or more entropy coding groups for each component in the block (1304). The entropy coding method 1300 then converts one or more sample values ​​in each entropy coding group into a selected bit-based representation using CPEC (1306). For example, the entropy coding method 1300 can convert the first three groups using a sign-magnitude representation and the last group using a two's complement representation.

[0080] The method 1300 then determines, for each entropy coded group formed for each component, a bit-based representation for the group (1308).That is, the method 1300 selects one of the groups as a current group and determines a bit-based representation for the current group.

[0081] In the case where the current group is converted to a sign-magnitude representation, the method 1300 applies a first prefix codebook to encode a prefix value of the current group (1310). In the case where the current group is converted to a two's complement representation, the method 1300 applies a second prefix codebook to encode a prefix value of the current group (1312). The first prefix codebook or the second prefix codebook, or both, may contain separate prefix codebooks for different components of the pixel value. In this case, the method 1300 applies the appropriate prefix codebook associated with the particular component of the sample value in the selected first prefix codebook or second prefix codebook to encode the prefix value.

[0082] The method 1300 then proceeds to the next entropy coded group for the current block (1314). The method 1300 selects the next group as the current group and repeats at 1308 to determine the bit-based representation being used and apply the corresponding prefix codebook to encode the prefix value of the group.

[0083] Using the prefix and suffix thus formed for each group, the entropy encoding method packages the entropy coded groups and provides the group of entropy coded groups as output (1318). The method 1300 then selects the next block (1320). The method repeats at 1302, where the method 1300 receives a next block of sample values, the next block of sample values ​​comprising a block of S number of sample values ​​for each component of the next block of pixel values.

[0084] return Figure 1 In the case of a compressed bit stream thus formed by the display stream encoder 15, the compressed bit stream is transmitted to the display driver integrated circuit 16 through the display link 13. At the display driver integrated circuit 16, the display stream decoder 18 performs decoding of the compressed bit stream. In an embodiment of the present disclosure, the display stream decoder 18 is configured to implement the entropy encoding method used by the display stream encoder 15 in order to decode the received compressed bit stream. Fig.14 is a flowchart illustrating a decoding method implemented in a display stream decoder in some embodiments. Fig.14 The decoding method 1400 receives a compressed bit stream (1402). The decoding method 1400 is configured to decode a compressed bit stream encoded using the entropy encoding method using multiple prefix codebooks.

[0085] The decoding method 1400 processes each block of sample values ​​from a compressed bitstream (1404). For a current block of sample values ​​being processed, the decoding method 1400 determines a bit-based representation for each entropy coding group in the current block (1406). For example, the decoding method 1400 determines whether a particular entropy coding group is converted using a sign-magnitude representation or a two's complement representation.

[0086] Based on the determination of the bit-based representation used, the decoding method 1400 selects an appropriate prefix codebook for each entropy coding group in the current block (1408). In addition, in the event that the prefix codebook includes different prefix codebooks for different components of the pixel value, the decoding method 1400 selects the prefix codebook for the component associated with the sample value.

[0087] With the prefix codebook determined, the decoding method 1400 proceeds to decoding the current block using the determined prefix codebook (1410). Specifically, the decoding method 1400 parses the bits in the compressed bitstream to identify the prefix and suffix of each group. The decoding method 1400 decodes the prefix of each group using the selected prefix codebook. The decoding method 1400 decodes the sample values ​​of each group. The decoded sample values ​​for each group are used to construct 8×2 block-wise sample values ​​for each component. For example, it can be performed Figure 5 or Figure 6 The inverse operation of the grouping operation of is performed to restore the sample values ​​of the entropy coded group to an 8×2 block-by-block order. As a result, a block of 8×2 sample values ​​for the components of the current block is obtained.

[0088] The decoding method 1400 then processes the 8×2 sample values ​​to obtain pixel values ​​for the current block ( 1412 ). For example, the decoding method 1400 applies Figure 3 The decoding method 1400 performs the inverse operation of the operation in to obtain a block of pixel values ​​from a block of sample values. For example, the decoding method 1400 provides pixel data as video data output, where the pixel data can be provided to a display for video playback. The decoding method 1400 then selects the next block (1414), and the method repeats at 1404, where the selected block is processed.

[0089] The present disclosure can be implemented in many ways, including as a process, an apparatus, a system, a composition of matter, a computer program product embodied on a computer-readable storage medium, and / or a processor, such as a hardware processor or processor device configured to execute instructions stored on a memory coupled to a processor and / or provided by a memory coupled to a processor. In this specification, these implementations or any other form that the present disclosure may take may be referred to as technology. Generally, the order of the steps of the disclosed processing can be changed within the scope of the present disclosure. Unless otherwise specified, components such as processors or memories described as being configured to perform tasks may be implemented as general components that are temporarily configured to perform tasks at a given time or are manufactured as specific components to perform tasks. As used herein, the term "processor" refers to one or more devices, circuits, and / or processing cores configured to process data (e.g., computer program instructions).

[0090] A detailed description of one or more embodiments of the present disclosure and drawings illustrating the principles of the present disclosure are provided above. The present disclosure is described in conjunction with these embodiments, but the present disclosure is not limited to any embodiment. The scope of the present disclosure is limited only by the claims, and the present disclosure includes many alternatives, modifications and equivalents. Many specific details are set forth in the above description in order to provide a thorough understanding of the present disclosure. These details are provided for illustrative purposes, and the present disclosure can be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical materials known in the technical field related to the present disclosure are not described in detail so that the present disclosure will not be unnecessarily confused.

[0091] The above detailed description is provided to illustrate specific embodiments of the present disclosure and is not intended to be limiting. Many modifications and variations within the scope of the present disclosure are possible. The present disclosure is defined by the appended claims.

Claims

1. A method for forming an entropy coding group in an entropy encoder, the method comprising: providing a plurality of prefix codebooks, each prefix codebook being associated with a bit-based representation; receiving a block of a first number of sample values ​​generated by the selected coding mode process as a current block of sample values; forming the plurality of entropy coding groups by distributing the first number of sample values ​​into the plurality of entropy coding groups; converting the sample values ​​in each entropy coded group to the selected bit-based representation; determining the bit-based representation for each corresponding entropy coded group; selecting, for each corresponding entropy coding group, a prefix codebook from the plurality of prefix codebooks in response to determining the bit-based representation; Applying the selected prefix codebook to encode the prefix value of the corresponding entropy coding group; forming a bit-based representation of each respective entropy coded group, wherein the bit-based representation of each respective entropy coded group comprises a prefix encoded using the selected prefix codebook and one or more sample values ​​encoded in the selected bit-based representation; and providing as output the bit-based representation of the plurality of entropy coded groups, in, The plurality of prefix codebooks include a first prefix codebook associated with a first bit-based representation and a second prefix codebook associated with a second bit-based representation and different from the first prefix codebook, and Selecting a prefix codebook from the plurality of prefix codebooks for each corresponding entropy coding group in response to determining the bit-based representation includes: In response to determining that the corresponding entropy coded group is encoded using the first bit-based representation, selecting the first prefix codebook; and In response to determining that the corresponding entropy coded group is encoded using the second bit-based representation, the second prefix codebook is selected.

2. The method according to claim 1, wherein: The first bit-based representation comprises a bit-based representation of a sign-magnitude and the second bit-based representation comprises a bit-based representation of a two's complement code.

3. The method according to claim 2, wherein: Providing the plurality of prefix codebooks comprises: providing the first prefix codebook associated with the bit-based representation of the symbol magnitude; and The second prefix codebook associated with the bit-based representation of the two's complement code is provided.

4. The method according to claim 1, wherein: Converting the sample values ​​in each entropy coded group to a bit-based representation comprises: The sample values ​​in a first entropy coded group are converted to the first bit-based representation, and the sample values ​​in a second entropy coded group are converted to the second bit-based representation.

5. The method according to claim 1, wherein: Providing the plurality of prefix codebooks comprises: The first prefix codebook and the second prefix codebook using a coding scheme are provided, the first prefix codebook having a first mapping of codewords to prefix values, and the second prefix codebook having a second mapping of codewords to prefix values, the first mapping being different from the second mapping.

6. The method according to claim 1, wherein: Providing the plurality of prefix codebooks comprises: The first prefix codebook is provided using a first coding scheme and the second prefix codebook is provided using a second coding scheme, the first coding scheme being different from the second coding scheme.

7. The method according to claim 1, wherein: The block of sample values ​​originates from a block of pixel values ​​having a plurality of components, the block of sample values ​​being associated with one component of the block of pixel values, and wherein providing the plurality of prefix codebooks comprises: The first prefix codebook is provided and includes a plurality of component prefix codebooks, each component prefix codebook of the plurality of component prefix codebooks being associated with a component of the pixel value.

8. The method according to claim 7, wherein: Selecting a prefix codebook from the plurality of prefix codebooks for each corresponding entropy coding group in response to determining the bit-based representation includes: In response to determining that a first entropy coded group is encoded using the first bit-based representation and in response to determining that the first entropy coded group is associated with a corresponding component of the pixel value, selecting a component prefix codebook from the plurality of component prefix codebooks of the first prefix codebook for the first entropy coded group.

9. The method according to claim 1, wherein: Providing the plurality of prefix codebooks comprises: A third prefix codebook is provided using the encoding scheme and a mapping of codewords to prefix values, the mapping of codewords to prefix values ​​comprising a mapping of prefix values ​​having a decreasing probability of occurrence to codewords having an increasing number of bit lengths.

10. The method according to claim 1, wherein: Providing the plurality of prefix codebooks comprises: A third prefix codebook is provided that uses an encoding scheme and a mapping of codewords to prefix values, the mapping of codewords to prefix values ​​comprising mapping a first group of prefix values ​​to a first group of codewords and mapping a second group of prefix values ​​to a second group of codewords, the first group of prefix values ​​having a higher probability of occurrence than a probability of occurrence of the second group of prefix values, and the first group of codewords having a shorter number of bit lengths than a number of bit lengths of the second group of codewords.

11. A system for forming an entropy coding group in an entropy encoder, comprising: processor; as well as A memory coupled to the processor, wherein the memory is configured to provide instructions to the processor that, when executed, cause the processor to: providing a plurality of prefix codebooks, each prefix codebook being associated with a bit-based representation; receiving a block of a first number of sample values ​​generated by the selected coding mode process as a current block of sample values; forming the plurality of entropy coding groups by distributing the first number of sample values ​​into the plurality of entropy coding groups; converting the sample values ​​in each entropy coded group to the selected bit-based representation; determining the bit-based representation for each corresponding entropy coded group; selecting, for each corresponding entropy coding group, a prefix codebook from the plurality of prefix codebooks in response to determining the bit-based representation; Applying the selected prefix codebook to encode the prefix value of the corresponding entropy coding group; forming a bit-based representation of each respective entropy coded group, wherein the bit-based representation of each respective entropy coded group comprises a prefix encoded using the selected prefix codebook and one or more sample values ​​encoded in the selected bit-based representation; and providing as output the bit-based representation of the plurality of entropy coded groups, in, The plurality of prefix codebooks include a first prefix codebook associated with a first bit-based representation and a second prefix codebook associated with a second bit-based representation and different from the first prefix codebook, and The memory is configured to provide instructions to the processor that, when executed, cause the processor to: In response to determining that the corresponding entropy coded group is encoded using the first bit-based representation, selecting the first prefix codebook; and In response to determining that the corresponding entropy coded group is encoded using the second bit-based representation, the second prefix codebook is selected.

12. The system according to claim 11, wherein: The first bit-based representation comprises a bit-based representation of a sign-magnitude and the second bit-based representation comprises a bit-based representation of a two's complement code.

13. The system according to claim 12, wherein: The memory is further configured to provide instructions to the processor that, when executed, cause the processor to: providing the first prefix codebook associated with the bit-based representation of the symbol magnitude; and The second prefix codebook associated with the bit-based representation of the two's complement code is provided.

14. The system according to claim 11, wherein: The memory is further configured to provide instructions to the processor that, when executed, cause the processor to: The sample values ​​in a first entropy coded group are converted to the first bit-based representation, and the sample values ​​in a second entropy coded group are converted to the second bit-based representation.

15. The system according to claim 11, wherein: The memory is further configured to provide instructions to the processor that, when executed, cause the processor to: The first prefix codebook and the second prefix codebook using a coding scheme are provided, the first prefix codebook having a first mapping of codewords to prefix values, and the second prefix codebook having a second mapping of codewords to prefix values, the first mapping being different from the second mapping.

16. The system according to claim 11, wherein: The memory is further configured to provide instructions to the processor that, when executed, cause the processor to: The first prefix codebook is provided using a first coding scheme and the second prefix codebook is provided using a second coding scheme, the first coding scheme being different from the second coding scheme.

17. The system of claim 11, wherein: The memory is further configured to provide instructions to the processor that, when executed, cause the processor to: A third prefix codebook is provided using the encoding scheme and a mapping of codewords to prefix values, the mapping of codewords to prefix values ​​comprising a mapping of prefix values ​​having a decreasing probability of occurrence to codewords having an increasing number of bit lengths.

18. The system of claim 11, wherein: The block of sample values ​​is derived from a block of pixel values ​​having a plurality of components, the block of sample values ​​being associated with one component of the block of pixel values, and the memory is further configured to provide instructions to the processor which when executed cause the processor to: providing the first prefix codebook comprising a plurality of component prefix codebooks, each component prefix codebook in the plurality of component prefix codebooks being associated with a component of the pixel value; and In response to determining that a first entropy coded group is encoded using the first bit-based representation and in response to determining that the first entropy coded group is associated with corresponding components of the pixel value, selecting a component prefix codebook from the plurality of component prefix codebooks of the first prefix codebook for the first entropy coded group.

19. A method for decoding a compressed bit stream, the method comprising: Receiving a compressed bitstream encoded using a plurality of prefix codebooks in an entropy encoder, the plurality of prefix codebooks being used to encode a prefix of each entropy coding group in the compressed bitstream; processing a current block of sample values ​​in a received compressed bitstream; determining a bit-based representation for each entropy coded group in the current block of sample values; selecting a prefix codebook from the plurality of prefix codebooks based on the determined bit-based representation; Decoding the current block using the selected prefix codebook; and generating as output a sample value of each component of the current block, The plurality of prefix codebooks include a first prefix codebook associated with a first bit-based representation and a second prefix codebook associated with a second bit-based representation and different from the first prefix codebook.

20. The method according to claim 19, wherein: The first bit-based representation comprises a bit-based representation of a sign-magnitude and the second bit-based representation comprises a bit-based representation of a two's complement code.

Citation Information

Patent Citations

  • LTE system using time domain precoder and precoding method thereof

    CN101867553A

  • OFDM optical fiber wireless communication method and system based on IRA codes

    CN103259598A