WO2020215193A1 - Codeur, système de codage, et procédé de codage - Google Patents

Codeur, système de codage, et procédé de codage Download PDF

Info

Publication number
WO2020215193A1
WO2020215193A1 PCT/CN2019/083781 CN2019083781W WO2020215193A1 WO 2020215193 A1 WO2020215193 A1 WO 2020215193A1 CN 2019083781 W CN2019083781 W CN 2019083781W WO 2020215193 A1 WO2020215193 A1 WO 2020215193A1
Authority
WO
WIPO (PCT)
Prior art keywords
channel
encoding
bit
coding
encoder
Prior art date
Application number
PCT/CN2019/083781
Other languages
English (en)
Chinese (zh)
Inventor
张健华
韩彬
赵文军
任子木
Original Assignee
深圳市大疆创新科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深圳市大疆创新科技有限公司 filed Critical 深圳市大疆创新科技有限公司
Priority to CN201980005065.6A priority Critical patent/CN111316645A/zh
Priority to PCT/CN2019/083781 priority patent/WO2020215193A1/fr
Publication of WO2020215193A1 publication Critical patent/WO2020215193A1/fr

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • This application relates to the field of image decoding, and more specifically, to an encoder, an encoding system, and an encoding method.
  • JPEG Joint Photographic Experts Group
  • JPEG 2000 Joint Photographic Experts Group 2000 are commonly used image coding standards.
  • JPEG 2000 uses wavelet transform and performs entropy coding based on optimized interception of embedded block coding (embedded block coding with optimized truncation, EBCOT), which has a higher compression ratio than JPEG, and supports progressive download and display.
  • EBCOT embedded block coding with optimized truncation
  • the traditional JPEG 2000 encoder is not compatible with compression rate and encoding rate.
  • This application provides an encoder, an encoding system, and an encoding method, which can effectively be compatible with the compression rate and the encoding rate.
  • an encoder including:
  • the Tier-1 coding unit performs tier-1 coding on the code block of the image block of the image to be coded to obtain the code stream of the code block;
  • the Tier-1 coding unit includes:
  • a bit-plane encoding unit includes a first channel and a second channel, the first channel and the second channel are used to perform bit-plane encoding on multiple bit-planes of the code block in parallel, Obtain the code stream of the code block;
  • the arithmetic coding unit is used to perform arithmetic coding on the code stream of the code block to obtain the target code stream.
  • an encoding system including:
  • an encoding method including:
  • Bit-plane encoding is performed in parallel on multiple bit-planes of the code block of the image block of the image to be coded through the first channel and the second channel to obtain the code stream of the code block;
  • the encoder, the encoding system, and the encoding method of the embodiments of the present application perform bit-plane encoding on the multiple bit-planes of the code block in parallel through the first channel and the second channel, so as to obtain the A code stream composed of the encoding result output by one channel and the encoding result output by the second channel, whereby the arithmetic encoding unit can use the encoding result output by the first channel and the encoding result output by the second channel
  • Arithmetic coding methods with different compression rates and coding speeds can also take into account the compression rate and coding speed of the code block at the same time.
  • Figure 1 is a coding framework diagram of JPEG 2000.
  • Fig. 2 is a schematic structural diagram of an encoding system provided by an embodiment of the present application.
  • Fig. 3 is a schematic structural diagram of the coding unit shown in Fig. 2.
  • Fig. 4 is a schematic structural diagram of the relationship between the bit plane and the coding channel of the present application.
  • Fig. 5 is a schematic diagram of the scanning sequence of SPP, MRP and CUP in the bit-plane coding process of the present application.
  • FIG. 6 is a schematic diagram of the neighborhood of the pixel of the bit plane of the present application.
  • Fig. 7 is an example of scanning windows of SPP, MRP and CUP of the present application.
  • Fig. 8 is another example of scanning windows of SPP, MRP and CUP of the present application.
  • Fig. 9 is a schematic structural diagram of a decoder provided by an embodiment of the present application.
  • This application can be applied to the field of image coding and decoding, video coding and decoding, hardware video coding and decoding, dedicated circuit video coding and decoding, and real-time video coding and decoding.
  • the encoder provided in this application can be used to perform lossy compression (lossy compression) on images, and can also be used to perform lossless compression (lossless compression) on images.
  • the lossless compression can be a visually lossless compression (visually lossless compression) or a mathematically lossless compression (mathematically lossless compression).
  • the coding framework of JPEG 2000 may include a preprocessing module 12, a transformation module 14, a quantization module 16, and an EBCOT module 18.
  • the preprocessing module 12 may include a component transformation (component transformation) module 122 and a direct current level shift module 124.
  • the component transformation module 122 may perform a certain transformation on the components of the image to reduce the correlation between the components. For example, the component transformation module 122 may convert each component of the image from the current color domain (for example, red, blue and green (RGB)) to another color domain.
  • the current color domain for example, red, blue and green (RGB)
  • the component transformation module 122 may support multiple color transformation modes. Therefore, the component transformation module 122 may sometimes be referred to as a multi-mode color transform (MCT) module.
  • MCT multi-mode color transform
  • the component transform module 122 may support irreversible color transform (ICT) or reversible color transform (RCT). It should be noted that the component transformation module 122 is optional. In the actual encoding process, it is also possible to directly perform subsequent processing without performing component transformation on the image.
  • the DC level shift module 124 can be used to perform a center shift (also referred to as a DC level shift) on the component values, so that the component values are symmetrically distributed with respect to 0, so as to facilitate subsequent transformation operations of the transformation module 14.
  • a center shift also referred to as a DC level shift
  • the transform module 14 uses wavelet transform to transform each tile in the image to obtain sub-band wavelet coefficients of different resolution levels. After n-level wavelet transform, there are n+1 resolutions. Level, each resolution level has 3 subbands (except for the lowest resolution, only 1 subband).
  • the embodiment of the present application does not specifically limit the size of the image block, for example, it may be 512 ⁇ 512 (unit is pixel).
  • the entire image can be regarded as an image block.
  • the quantization module 16 may be used to quantize the wavelet coefficients of the subbands to obtain the quantized wavelet coefficients of the subbands.
  • the EBCOT module 18 is the entropy coding module of JEPG 2000, and belongs to the core module of JEPG 2000.
  • the EBCOT module 18 may include a tier-1 encoding module 182, a tier-2 encoding module 184, and a rate control module 186.
  • the tier-1 encoding module 182 can be used to perform tier-1 encoding on a code block (the subband can be further divided into multiple independent code blocks).
  • Tier-1 coding can include bit-plane coding and arithmetic coding.
  • the tier-2 encoding module 184 is mainly responsible for the organization of the code stream. For example, the code stream of the code block can be truncated according to the target code rate provided by the code rate control module 186.
  • the encoder 7 may include a first interface circuit 71, a transform circuit 72, a quantization circuit 73, a first encoding circuit 74, a rate control circuit 75, a second encoding circuit 76 and a code stream writing circuit 77.
  • the encoder 7 may be a hardware encoder supporting the JPEG 2000 standard.
  • the first interface circuit 71 may be used to obtain an image to be coded, and after obtaining the image to be coded, divide the image to be coded into multiple image blocks. Of course, the first interface circuit 71 can also be used to directly obtain the divided image blocks.
  • the image to be encoded may be an image subjected to component transformation.
  • the format of the image to be encoded may be any image format with 4 or 3 components. Among them, the image format with 4 components includes but is not limited to Bayer pattern RAW format or YUVGb format or YDgCoCg format converted from Bayer pattern RAW format. Image formats with 3 components include but are not limited to RGB format and YUV format.
  • the first interface circuit 71 can be used to receive the image to be encoded collected by the sensor, can also be used to read the image to be encoded or the image block of the image to be encoded from the memory, and can also use image signal processing (ISP)
  • ISP image signal processing
  • the system acquires an image that has undergone component transformation.
  • the ISP includes but is not limited to a digital signal processor (DSP) and a graphics processing unit (GPU).
  • the image to be encoded can be stored in the memory in row order or column order.
  • the first interface circuit 71 can be based on the position of the image to be encoded in the memory. , Calculate the storage location of each image block, and then read the corresponding image block according to the jump addressing mode.
  • the image to be encoded can also be stored in the memory in units of image blocks, and the first interface circuit 71 can read the image blocks according to the storage order of the image blocks.
  • the first interface circuit 71 can use a specific addressing mode to read the image blocks of the image to be coded stored in the memory without segmenting the image to be coded.
  • the first interface circuit 71 may also directly read image blocks from the memory in a direct memory access (DMA) manner, so as to improve the access efficiency and speed.
  • DMA direct memory access
  • the first interface circuit 71 may include a calculation circuit.
  • the calculation circuit can be used to calculate the statistical information of the image to be encoded.
  • the calculation circuit can also be provided separately from the first interface circuit 71 or the encoder 7.
  • the calculation circuit may also be set in an image signal processing (image signal processing, ISP) system.
  • the statistical information of the image to be encoded may be information that can be used to control the rate of the tile in the image to be encoded. Therefore, in some embodiments, the statistical information of the image to be encoded may also be referred to as the image to be encoded. Block rate control information.
  • the statistical information of the image to be encoded may include one or more of the following information of the image blocks in the image to be encoded: complexity, activity, and texture.
  • the calculation circuit may define or calculate the complexity of the image block based on the amplitude of the high frequency components of the pixels in the image block.
  • the complexity of the image block may be the cumulative sum of the high frequency information of the location of each pixel in the image block area.
  • the coded code stream (or the number of bits consumed for coding) corresponding to the image block area with higher complexity will be correspondingly larger.
  • the calculation circuit may obtain high frequency components through filtering operations based on the pixel values of the pixels in the image block area, and then calculate the complexity of the image block.
  • the calculation circuit may also define or calculate the complexity of the image block based on the mean-square error (MSE) of the pixel value of the image block.
  • MSE mean-square error
  • the first interface circuit 71 can also be used to read the pre-generated statistical information of the image to be encoded from an external memory. This application does not impose specific restrictions on this.
  • the first interface circuit 71 may transmit the statistical information of the image to be encoded as rate control information to the rate control circuit 75 for the rate control circuit 75 to perform rate control on the encoding process.
  • the transform circuit 72 can be used to perform the operation performed by the transform module 14 above, that is, perform wavelet transform on the image block. After the image block undergoes wavelet transformation, many subbands can be obtained. After wavelet transformation, the wavelet coefficients of the image block can be obtained, and the wavelet coefficients of the image block can refer to the wavelet coefficients of these sub-bands.
  • the quantization circuit 73 may be used to quantize the wavelet coefficients to obtain quantized wavelet coefficients or quantized wavelet coefficients of subbands.
  • the first encoding circuit 74 may include one or more EBCOT encoding modules 742.
  • the EBCOT encoding module 742 may be used to perform tier-1 encoding on the code blocks of the image block (the subband can be further divided into multiple independent code blocks) to obtain the code The code stream of the block.
  • the code streams of all code blocks of the image block constitute the code stream of the image block.
  • the transform circuit 72 receives the image block, and the transform circuit 72 transforms and the quantization circuit 73 quantizes the subbands with wavelet coefficients.
  • a subband can be divided into independently coded one or Multiple code blocks, that is, code blocks of image blocks, may refer to code blocks of subbands of the image block.
  • the EBCOT encoding module 742 may be used to perform operations performed by the tier-1 encoding module 182 in FIG. 1, such as bit-plane encoding and arithmetic encoding on the code block.
  • the code block may also be preprocessed, for example, the sign bit and the absolute value of the wavelet coefficient are separated.
  • the first encoding circuit 74 encodes the code block into a code stream, it can also perform post-processing on the code block. For example, the code stream can be spliced together for use by the second encoding circuit 76.
  • the code rate control circuit 75 may be used to determine the target code rate (target size) of the image block in the image to be encoded according to the statistical information of the image to be encoded.
  • the rate control circuit 75 may assign weights to each image block according to the complexity of each image block. The higher the complexity of the image block, the greater the weight.
  • the code rate control circuit 75 may calculate the target code rate of each image block according to the weight of each image block and current network conditions (such as network bandwidth), so that the larger the weight of the image block, the higher the target code rate.
  • the statistical information of the image to be encoded output by the calculation circuit may include the weight of each image block, and the code rate control circuit 75 may directly use the weight of the image block to calculate the target code rate.
  • the second encoding circuit 76 can be used to implement the function of the tier-2 encoding module 184 mentioned above.
  • the second encoding circuit 76 may be used to perform tier-2 encoding on the bit stream of the image block according to the target bit rate, so as to cut the bit stream of the image block.
  • the second encoding circuit 76 receives the code stream of each code block sent by the first encoding circuit 74, it can combine the code streams of each code block according to the output code rate requirements (for example, the output target code rate). , Carry out optimization truncation sorting, packing and other processing on the code stream of all code blocks to obtain the JPEG2000 code stream.
  • the second encoding circuit 76 may include a rate-distortion calculation circuit 762 (or slopemaker) and a truncation circuit 764 (or truncator).
  • the rate-distortion calculation circuit 762 can be used to calculate the rate-distortion slope of the code stream output by the first encoding circuit 74.
  • the rate-distortion calculation circuit 762 may calculate the rate-distortion slope (distortion) based on the rate and distortion of each code stream (that is, the code stream (pass) of each code block) output by the first encoding circuit 74. slope).
  • the rate-distortion slope can be used to evaluate the contribution of each segment of the current code block to the entire image block.
  • the rate-distortion slope can be used for subsequent code stream organization, such as code stream layering and truncation.
  • the current code block will be divided into several bit planes, and each bit plane will generate 3 bit streams after encoding (3-pass encoding, except for the highest bit plane, only 1 bit stream will be generated. Outside), where each segment of the code stream corresponds to a slope value.
  • the rate-distortion slope corresponding to the current code block may include the slope value corresponding to each segment of the code stream generated after the current code block is bit-plane encoded.
  • the truncation circuit 764 can be used to process the bit stream of the image block according to the target bit rate and the rate-distortion slope. For example, the truncation circuit 764 can be used to cut the bit stream of the image block according to the target bit rate and the rate-distortion slope. Further, the truncation circuit 764 can also be used to reorganize the code stream, layer the code stream, and so on. In addition, in some embodiments, the truncation circuit 764 may also be used to generate header information of the code stream, and transmit the header information together with the code stream to the subsequent code stream write circuit 77.
  • the code stream write circuit 77 can be used to receive the organized code stream output by the truncation circuit 764 and write the code stream to an external memory. For example, it can be written to an external memory via the bus.
  • the bus may be, for example, an advanced extensive interface (AXI) bus.
  • the code stream writing circuit 77 may also add information such as a tile header to the code stream.
  • the rate control circuit 75 may also be used to generate the state information of the rate control buffer (or buffer size) according to the statistical information of the image block.
  • the first encoding circuit 74 can also be used to control the tier-1 encoding according to the state information of the code rate control buffer.
  • the status information of the buffer can be used by the first encoding circuit 74 to pre-truncate the code stream. For example, the first encoding circuit 74 may delete code streams that exceed a predetermined size according to the status information of the buffer, or delete code streams that do not meet the requirements. Therefore, the status information of the buffer can also be called pre-truncation information.
  • the rate control circuit 75 may also receive feedback of the size of the code stream actually encoded by the first encoding circuit 74, and update the pre-truncation information of the image block corresponding to the wavelet subband.
  • the encoder 7 may also include an interface circuit (not shown in the figure) for software configuration, through which the information in the register inside the encoder 7 can be configured or changed, thereby controlling the encoder 7 Encoding method.
  • the embodiment of the present application calculates the statistical information of the image blocks in the image to be encoded, and cuts the code stream of the image blocks according to the statistical information, thereby performing relatively independent bit rate control on each image block without taking the code block of each image block as
  • the unit is optimized to avoid generating a large amount of intermediate data. Therefore, the embodiment of the present application can reduce the requirement of the encoder on the system bandwidth. The entire encoding process of the image to be encoded can even be carried out completely on the chip.
  • a buffer (on-chip buffer) may be set inside the conversion circuit 72 or at the output terminal, for buffering the intermediate results output by the conversion circuit 72.
  • a buffer (on-chip buffer) may be set inside or at the output end of the truncation circuit 764 for buffering the intermediate results output by the truncation circuit 764.
  • rate matching can be performed on adjacent two-stage circuits in the encoder 7 to improve the encoding efficiency of the encoder 7.
  • circuits with slower processing speeds in adjacent two-stage circuits can be set to a multi-channel parallel structure; then, a certain mechanism can be used to control the data transmission between the two, so that the two-stage circuits are fully streamlined.
  • the rates of the quantization circuit 73 and the first encoding circuit 74 may be matched.
  • the multiple EBCOT encoding modules 742 can be used to perform tier-1 encoding on each code block output by the quantization circuit 73 in parallel, that is,
  • the first encoding circuit 74 may adopt a multi-path parallel structure to perform tier-1 encoding.
  • the code blocks output by the quantization circuit 73 to the first encoding circuit 74 may be code streams corresponding to multiple frequency components (for example, code blocks corresponding to LL, HL, LH, and HH), the quantization circuit 73 and multiple EBCOT encoding modules Group arbitration or free arbitration can be adopted between 742 to determine the EBCOT encoding module 742 corresponding to the intermediate result output by the quantization circuit 73.
  • group arbitration refers to always assigning the code block corresponding to a certain frequency component output by the quantization circuit 73 to a fixed group of coding units (each group of coding units can be composed of several coding units), while free arbitration refers to quantization
  • Each code block output by the circuit 73 may be received by one of the multiple parallel encoding units.
  • the advantage of the packet arbitration method is that the circuit connection is relatively simple in hardware implementation, while the free arbitration method can improve the utilization efficiency of the coding unit in some cases.
  • the rates of the first encoding circuit 74 and the rate-distortion slope calculation circuit 762 may be matched.
  • the rate-distortion calculation circuit 762 may include a plurality of rate-distortion slope calculation units.
  • the multiple rate-distortion slope calculation units can be used to calculate the rate-distortion slope of the code stream output by the first encoding circuit 74 in parallel.
  • the first encoding circuit 74 and the rate-distortion calculation circuit 762 may also adopt a group arbitration or free arbitration method to determine the rate-distortion slope calculation unit corresponding to the intermediate result output by the first encoding circuit 74.
  • one rate-distortion slope calculation unit can correspond to a group of coding units in the first coding circuit 74.
  • a rate-distortion slope calculation unit corresponding to a group of encoding units can make the design of the entire circuit easier.
  • FIG. 3 is a schematic structural diagram of the EBCOT encoding module 742 shown in FIG. 2.
  • the EBCOT encoding module 742 may include a preprocessing unit 64, a tier-1 encoding unit 6, and a post-processing unit 65.
  • the preprocessing unit 64 may be used to preprocess the code block, for example, to separate the sign bit and the absolute value of the wavelet coefficient.
  • the post-processing unit 65 can be used to perform post-processing on the code stream of the code block.
  • the code streams can be spliced together for use by the second encoding circuit 76.
  • the preprocessing module 64 may include a first memory 641 and a second memory 642, and the tier-1 encoding unit 6 can read the code blocks preprocessed by the preprocessing unit 64 through the first memory 641 and the second memory 642.
  • the post-processing module 65 may include an access instruction generation unit 651, a third memory 652, and a fourth memory 653.
  • the post-processing module 65 may be used to receive the code stream output by the tier-1 encoding unit 6, and generate a memory based on the received code stream.
  • the instruction is fetched, and then the code stream output by the tier-1 encoding unit 6 is stored based on the access instruction.
  • the access instruction generating unit 651 is specifically configured to receive the code streams output by the first arithmetic encoder 621 and the code stream organizing unit 63, and store these code streams in the third memory 652 and/or the fourth memory 653. Corresponding address.
  • the tier-1 coding unit 6 may include a bit-plane coding unit 61, an arithmetic coding unit 62, and a code stream organizing unit 63, which are used for specific compression of data.
  • the bit-plane coding unit 61 may perform multi-channel bit-plane coding on each code block to generate context information and a decision result.
  • the decision result is used to generate a code stream
  • the context information is used for the arithmetic coding unit 62 to establish a probability model.
  • arithmetic coding is performed on the code stream output by the bit-plane coding unit 61.
  • the preprocessing module 64 decomposes the wavelet coefficients of the code block into bit planes (also called bit planes), reorganizes the decomposed bit planes and sends them to the bit plane encoding unit 61, and the bit plane encoding unit 61 receives the preprocessing module 64 transmitted organized bit planes are bit plane encoded. Stored on the bit plane is the bit value of the binary corresponding bit of the coefficient.
  • the bit-plane encoding unit 61 scans and encodes the bits on each bit-plane, and then sends the generated context information and code stream to the arithmetic encoding unit 62 or the code stream organizing unit 63, so that the arithmetic encoding unit 62 performs arithmetic encoding and coding.
  • the stream organization unit 63 performs code stream organization.
  • the bit-plane encoding unit 61 scans and encodes the bits on part of the bit-plane (the upper-level plane and the 3 planes below the upper-level plane), and then sends the generated context information and code stream to the distribution unit 613.
  • the first arithmetic encoder 621 performs arithmetic encoding by the first arithmetic encoder 621, and the first arithmetic encoder 621 sends the encoded bit stream to the post-processing module 65.
  • the distribution unit 613 sends the generated context information and code stream to the second arithmetic encoder 622, and the second arithmetic encoder 622 performs arithmetic coding, and the second arithmetic encoder 622 sends the encoded bitstream to the bitstream organizing unit 63, which is reorganized by the bitstream organizing unit 63 and then sent to the post-processing module 65.
  • the post-processing module 65 stores the code streams output by the first arithmetic encoder 621 and the code stream organizing unit 63 to the corresponding addresses of the third memory 652 and/or the fourth memory 653.
  • the bit-plane coding unit 61 can perform multi-channel bit-plane coding for each code block, and the multi-channel bit-plane coding can include significance propagation pass (significance propagation pass, SPP or SP) coding, amplitude refinement pass (magnitude refinement pass, MRP) Or MR) encoding and clean up pass (CUP or SP) encoding.
  • significance propagation pass signal propagation pass
  • MRP magnitude refinement pass
  • MRP itude refinement pass
  • MR clean up pass
  • the saliency propagation channel is the first encoding channel of each bit plane (except for the highest bit plane, in the highest bit plane, there is only one encoding channel, that is, the clear encoding channel), which is used to encode currently not significant coefficients, but
  • the 8 neighborhoods have been marked as significant coefficients.
  • the data X to be encoded will be encoded in this channel.
  • Each coefficient in the bit plane can correspond to a binary state variable s[j] used to represent a "significant state", where j represents the coefficient scan coordinate.
  • the saliency state is initialized to 0, and the s state value will be updated in each bit plane.
  • the amplitude refinement channel is the second encoding channel of each bit plane (except for the highest bit plane, in the highest bit plane, there is only one encoding channel, that is, the clear encoding channel), which is used for encoding when the previous bit plane has been marked Is a significant coefficient.
  • the clear channel is the third encoding channel of each bit plane (except for the highest bit plane, in the highest bit plane, there is only one encoding channel, that is, the clear encoding channel), which is used to encode the remaining coefficients.
  • run-length coding and zero coding can be added. Specifically, the four bits in a row can be judged simultaneously in this channel. For example, when four bits have no adjacent data that has been marked as significant, run-length coding is used for them, otherwise zero coding is used for each bit.
  • the bit-plane encoding unit 61 may use different encoding methods to perform bit-plane encoding on the bit-plane in different encoding channels.
  • the coding methods used in the coding channel include but are not limited to: Significance Coding (ZC), Symbol Coding (SC), Magnitude Refinement Coding (MRC) and run length coding ( Run Length Encoding, RLC).
  • ZC encoding and SC encoding can be performed on the bits on the bit plane; in the amplitude refinement channel, the bits on the bit plane can be MRC encoded; in the clear channel, the bit plane The above bits can be ZC coded, SC coded and RLC coded. After the bits on the bit plane are coded by the above-mentioned multi-channel bit plane, the arithmetic coding unit 62 performs arithmetic coding on its output.
  • bit-plane encoding unit 61 After the bit-plane encoding unit 61 performs bit-plane encoding on the bit-plane, it can obtain three sets of binary sequences for each bit-plane, that is, each channel corresponds to a set of binary sequences.
  • the bit-plane encoding unit 61 may include a first channel 611 and a second channel 612.
  • the arithmetic encoding unit 62 may include a first arithmetic encoder 621 and a second arithmetic encoder 622.
  • the first arithmetic encoder 621 and the second arithmetic encoder 622 may be the same type of arithmetic encoder or different types of arithmetic encoders.
  • the first channel 611 and the second channel 612 may correspond to the first arithmetic encoder 621 and the second arithmetic encoder 622, respectively.
  • the arithmetic coding unit 62 may also include only one arithmetic encoder or other number of arithmetic encoders, which is not specifically limited in this application.
  • the first arithmetic encoder 621 and the second arithmetic encoder 622 may be multiple quantization (MQ) arithmetic encoders.
  • MQ arithmetic encoders include, but are not limited to, context-based adaptive arithmetic coding and traditional arithmetic encoders.
  • Arithmetic coding is to map a source symbol sequence into a code sequence (also called a codeword).
  • the traditional arithmetic encoder maps a source information sequence to a sub-interval in the [0, 1) interval. This mapping is a one-to-one correspondence to ensure unique decoding, and then take a point in this sub-interval The value represented is used as a codeword.
  • the interval [0, 1] can be divided into 4 sub Interval: [0, 0.1) for symbol A, [0.1, 0.5) for symbol B, [0.5, 0.7) for symbol C, and [0.7, 1] for symbol D.
  • the input of the binary message sequence is: CADACDB.
  • the first input symbol is C, and the encoding range it belongs to is [0.5, 0.7]. Since the coding range of the second symbol A in the message is [0, 0.1], its interval takes the first tenth of [0.5, 0.7] as the new interval [0.5, 0.52].
  • the new interval is [0.514, 0.52] when encoding the third symbol D
  • the new interval is [0.514, 0.5146] when encoding the fourth symbol A, and so on.
  • the encoded output of the message can be any number in the last interval.
  • the arithmetic coding process of the traditional arithmetic encoder is based on the known probability of each symbol. Only when the probability of each symbol is known can the probability interval be divided according to it.
  • Adaptive arithmetic coding can complete two processes in one scan, namely the probability model establishment process and the scan coding process. Adaptive arithmetic coding does not know the statistical probability of each symbol before scanning the symbol sequence. At this time, it is assumed that the probability of each symbol is equal, and the interval [0, 1] is evenly allocated. Then continuously adjust the probability of each symbol in the process of scanning the symbol sequence.
  • Adaptive arithmetic coding first needs to know the probability of each symbol sent by the source, and then scan the symbol sequence, divide the corresponding interval in turn, and finally obtain the codeword corresponding to the symbol sequence.
  • the input of the arithmetic encoder may include the to-be-encoded bit D and the context vector (CX) generated by the bit-plane encoding unit 61.
  • CX is a probability statistical model summarized by the bit-plane coding unit 61 based on neighborhood correlation, and there are 19 types in total. That is, for different CX, the symbol probability is not the same.
  • both the first arithmetic encoder 621 and the second arithmetic encoder 621 can be adaptive arithmetic encoders, that is, both the first arithmetic encoder 621 and the second arithmetic encoder 621 can use CX to determine the symbol probability.
  • the first channel 611 and the second channel 612 may each include SPP, MRP, and CUP, and SPP, MRP, and CUP all correspond to at least one encoder.
  • the probability of the first 4-layer bit plane and the subsequent bit plane is interrupted. Therefore, consider extracting the saliency state of the 4-level bit-plane in advance, so that the subsequent bit-plane can start scanning and encoding.
  • the first 4 bit planes are set to be encoded on the first channel 611
  • the subsequent bit planes are set to be encoded on the second channel 612. That is, the bit plane encoding unit 61 includes the first channel 611 and the second channel 612, and the first channel 611 and the second channel 612 divide the multiple bit planes of the code block into two groups of bit planes. And perform bit-plane coding on the two sets of bit-planes in parallel to obtain the code stream of the code block.
  • the present application can set the computing power of the second channel 312 to the three scan channels of SPP, MRP, and CUP in parallel.
  • the three scan channels scan for the same bit plane in parallel, and the first channel 611 It can only be SPP and MRP two scanning channels in parallel or CUP single scanning channel.
  • the ratio of the processing rate of the first channel 611 to the processing rate of the second channel 612 is 1:2 (except that the highest bit plane only performs CUP scanning), thus, the two channels can be balanced.
  • Processing rate and reducing the parallelism of the first channel 611 also help to reduce the hardware resources and peak power consumption of the implementation.
  • the first time is configured to scan the highest bit plane using CUP
  • the second time is configured to scan the second bit plane using SPP+MRP
  • the third time is configured to scan the second bit plane with CUP
  • the fourth time is configured to Use SPP+MRP to scan the third bit plane
  • the fifth time is configured to use CUP to scan the third bit plane, and so on.
  • the "one moment" mentioned above can refer to the time for a scan channel to complete the scanning process of a bit plane. Taking the bit plane scan rate of 4bit/cycle as an example, taking the bit plane size of 32x32bit as an example, one moment is 256 cycle (actually It is also necessary to consider data scheduling and several cycles of pipeline).
  • the second channel 612 is configured to process subsequent bit planes, where the first time is configured to scan the fifth bit plane using SPP+MRP+CUP (wherein due to the update and transfer of the significant information s, SPP and MRP +CUP needs to be staggered by several clock cycles, such as 2 clock cycles), the second time is configured to scan the 6th bit plane with SPP+MRP+CUP, and the third time is configured to scan with SPP+MRP+CUP The seventh bit plane, and so on until the lowest bit plane that needs to be scanned and coded.
  • SPP+MRP+CUP wherein due to the update and transfer of the significant information s, SPP and MRP +CUP needs to be staggered by several clock cycles, such as 2 clock cycles
  • the second time is configured to scan the 6th bit plane with SPP+MRP+CUP
  • the third time is configured to scan with SPP+MRP+CUP The seventh bit plane, and so on until the lowest bit plane that needs to be scanned and coded.
  • the first channel 611 may be configured as SPP, MRP, or CUP. That is, the first channel 611 may also be called an x-pass (pass), where x represents SPP, MRP, or CUP.
  • the first channel 611 may include or be configured with 1 RLC encoder, 4 MRC encoders, 4 ZC encoders, and 4 SC encoders.
  • the first channel 611 may include SPP, MRP, and CUP.
  • SPP and CUP are configured with 4 ZC encoders and 4 SC encoders in common
  • MRP is configured with 4 MRC encoders
  • CUP is also configured with an RLC encoder.
  • SPP and CUP share 4 ZC encoders and 4 SC encoders, which can simplify the hardware structure of the EBCOT encoding module 742, and further, can ensure the utilization of each encoder in the EBCOT encoding module 742.
  • the second channel 612 can also be called lazy pass, which can include SPP, MRP, and CUP, where SPP can include or be configured with 4 ZC encoders and 4 SC encoders, and MRP can include or be configured with 4 MRC encoders.
  • SPP can include or be configured with 4 ZC encoders and 4 SC encoders
  • MRP can include or be configured with 4 MRC encoders.
  • CUP can include or be configured with 1 RLC encoder, 4 ZC encoders, and 4 SC encoders.
  • the EBCOT encoding module 742 encodes the bit plane of the code block through the first channel 611 and the second channel 612
  • the first channel 611 can simultaneously perform SPP, MRP scan encoding, or bit alignment on a bit plane
  • the plane performs CUP scan coding
  • the second channel 612 can simultaneously perform SPP, MRP, and CUP scan coding on a bit plane.
  • the code block bit plane is processed in parallel through the first channel 611 and the second channel 612, which can effectively improve the coding efficiency.
  • the first channel 611 and the second channel 612 may also include or be configured with other numbers of ZC encoders, SC encoders, and MRC encoders, which are not specifically limited in this application. .
  • the bit plane carry plane of the code block can be coded in parallel through the first channel 611 and the second channel 612, which can effectively improve the coding efficiency.
  • separately configuring the encoder in the first channel 611 and the encoder in the second channel 612 can simplify the hardware structure of the EBCOT encoding module 742, and further, can ensure the performance of each encoder in the EBCOT encoding module 742. Utilization rate.
  • bit-plane encoding unit 61 may further include a distributing unit 613.
  • the distributing unit 613 may be used to distribute the output result of the encoding channel to the corresponding arithmetic encoder and other unit modules.
  • the distribution unit 613 may be used to distribute the context information and code stream of the first channel 611 to the first arithmetic encoder 621, and distribute the context information and code stream of the second channel 612 to the second arithmetic encoder 622, and /Or directly distribute the output context information and code stream of the second channel 612 to the code stream organizing unit 63.
  • the code stream organizing unit 63 may be used to organize the code stream output by the arithmetic coding unit 62, and output the organized code stream to the storage instruction generating unit 651, so that the storage instruction generating unit 651 generates a storage instruction based on the storage instruction
  • the code stream output by the code stream organizing unit 63 is stored in the third memory 652 and the fourth memory 653.
  • the highest bit plane and the k planes below the highest bit plane can be bit-plane encoded through the first channel 611, and the remaining bit planes can be bit-plane encoded through the second channel 622.
  • k can be any positive integer less than n, and n is the total number of bit planes corresponding to the code block.
  • the highest bit plane may be the first non-zero bit plane composed of all coefficients in the code block.
  • the probability of the first 4 bit planes used for arithmetic coding will be transferred to the following bit planes, and the probability of the latter bit planes used for arithmetic coding will not be transferred.
  • This application can Use this feature to deploy a set of hardware for the first 4 bit planes and subsequent bit planes to process the bit planes of the code block in parallel to increase the coding rate. That is, the above k is equal to 3. Of course, this application is not limited to this. In other embodiments, the k may also be other positive integers.
  • Fig. 4 is a schematic structural diagram of the relationship between the bit plane and the coding channel of the present application.
  • the n-4th bit plane to the n-1th bit plane are subjected to bit plane coding through the first channel 611, and the n-5th bit plane to the 0th bit plane are performed through the second channel 612.
  • Bit plane coding Since the first channel 611 and the second channel 612 respectively correspond to different encoders in the arithmetic coding unit 62, different arithmetic coding can be performed on different bit planes.
  • the probability of the first arithmetic encoder 621 corresponding to the first channel 611 is transmitted bit plane by channel (pass), and its coding efficiency is good;
  • the probability of the second arithmetic encoder 622 corresponding to the second channel 612 is
  • Each bit plane and each pass are independent of each other, that is, by deploying multiple parallel bit plane encoders + arithmetic encoders to greatly improve the encoding speed, the encoding efficiency is poor (because the probability is not transmitted, the second arithmetic encoder
  • the compression rate of the code stream of 622 is lower than that of the first arithmetic encoder 621).
  • the probability of important (for example, the first 4) bit-planes for arithmetic coding is transmitted bit-plane and channel-by-channel, and the unimportant bit-planes (for example, the latter bit-plane) are not transmitted for arithmetic coding.
  • the probability of arithmetic coding can take into account both coding speed and coding efficiency.
  • the first channel 611 can be used to encode a preset number of bit-planes
  • the second channel 612 can be used to encode planes other than the preset number of bit-planes.
  • the probability of arithmetic coding is sent and passed, and the probability of arithmetic coding between other bit planes is not passed.
  • the arithmetic encoding unit 62 may include a first arithmetic encoder 621 and a second arithmetic encoder 622.
  • the first arithmetic encoder 621 may be configured to transmit the probability of arithmetic coding bit-plane-by-channel (for example, in the order of SPP, MRP, and CUP).
  • the coding efficiency is high, but the coding speed is too high. slow.
  • the second encoder 622 can be configured such that the probability for arithmetic coding is independent of each bit plane and each channel (for example, SPP, MRP, and CUP), so that multiple parallel channels can be deployed.
  • bit-plane encoder+arithmetic encoder improves its encoding speed, but its encoding efficiency is poor (because the probability is not transmitted, the compression rate of the code stream is not as large as that of the first arithmetic encoder 612).
  • the first arithmetic encoder 621 is configured to transfer probabilities for arithmetic coding between the multiple bit planes encoded by the first channel 611, and transfer the probabilities between channels in the first channel 611.
  • the probability used for arithmetic coding; the second arithmetic encoder 622 is configured such that the probabilities used for arithmetic coding among the multiple bit planes encoded by the second channel 612 are independent of each other, and the The probabilities used for arithmetic coding between channels are independent of each other.
  • the first arithmetic encoder 621 is configured to use the first 4 bit-planes of the first channel 611 to perform bit-plane coding for probability transfer of arithmetic coding;
  • the second arithmetic encoder 622 is configured to be used by the The second channel 612 performs bit-plane coding with a probability that the subsequent bit-plane is used for arithmetic coding is not transmitted.
  • a parallel encoder structure that is, the arithmetic encoder 62 is formed, so as to take into account both encoding speed and encoding efficiency.
  • the tier-1 encoding unit 6 may also be provided with one or more buffers (on-chip buffers) for storing the encoding results output by each unit module.
  • the first channel 611 and the second channel 612 are respectively provided with buffers (on-chip buffers) for storing code streams encoded by the first channel 611 and the second channel 612.
  • the distribution unit 613 may also be provided with an xP first input first output (FIFO) memory corresponding to the first channel 611 inside or at the output end, and the xPFIFO memory may be the SPP code in the first channel 611
  • the buffer corresponding to the SPP encoder may also be the buffer corresponding to the CUP encoder in the first channel 611 for buffering the encoding results of the SPP encoder and the CUP encoder, that is, the context and decision information output by the SPP encoder and the CUP encoder.
  • the SPP encoder and the CUP encoder can share a buffer, which not only can effectively simplify the structure of the tier-1 encoding unit 6, but also improve The utilization of the cache is improved.
  • the distribution unit 613 may also be provided with an MR random access memory (RAM) corresponding to the MRP encoder in the first channel 611 inside or at the output terminal, for buffering the encoding result of the MRP encoder.
  • RAM MR random access memory
  • a corresponding MR RAM for the MRP encoder can effectively control the volume of the distribution unit 613 and avoid the distribution unit 613 from being too large.
  • the embodiment of the present application is not limited to this.
  • a corresponding FIFO may also be set for the MRP encoder, so as to read and write the encoding result of the MRP encoder at the same time.
  • the type of cache can be determined according to actual needs.
  • FIFO mentioned above or below can be replaced with RAM, or the RAM mentioned above or below can also be replaced with FIFO, which is not specifically limited in this application.
  • an MP RAM corresponding to the MRP encoder in the second channel 612 may also be provided in the distribution unit 613 or at the output end, for buffering the encoding result of the MRP encoder. Further, the MP RAM can also be used to buffer the encoding result of the SPP encoder in the second channel 612.
  • the distribution unit 613 may also be provided with a CP FIFO corresponding to the CUP encoder in the second channel 612 inside or at the output end, for buffering the encoding result of the CUP encoder.
  • the distribution unit 613 may also include an original encoder 6131, which is connected to the SPP encoder in the second channel 612, and is used to receive the code stream output by the SPP encoder in the second channel 612, and perform the The code stream output by the SPP encoder in 612 is raw coded and output to the code stream organization unit 63.
  • the original encoder 6131 supplements and/or packs the code stream output by the SPP encoder in the second channel 612, and then sends it to the code stream organizing unit 63, so that the code stream organizing unit 63 calculates the number of codes corresponding to one code block. Each code stream is organized into code streams.
  • Bit-plane coding refers to SPP/MRP/CUP coding.
  • the result of bit-plane scanning and coding is context and decision information.
  • the bit-plane encoding unit 61 sends the encoding result to the arithmetic encoding unit 62 or the raw encoder 6131, and the arithmetic encoding unit 62 or the raw encoder 6131 performs encoding.
  • the bit plane encoding unit 61 can divide it into a stripe every 4 rows, and scan the stripe in the order from top to bottom, from left to right. The order of scanning the bits in each strip, starting from the highest bit plane, and then coding to the lowest bit plane.
  • SPP scanning and coding are performed first, then MRP scanning and coding are performed, and finally CUP scanning and coding are performed.
  • MRP scanning and coding are performed first, then MRP scanning and coding are performed, and finally CUP scanning and coding are performed.
  • three channels SPP, MRP and CUP can be deployed in parallel scanning and coding.
  • SPP, MRP, and CUP When SPP, MRP, and CUP are scanned and coded in parallel, they can be coded based on the coding state of the bit-plane's saliency information, and the state of the neighboring coefficients of the coefficient to be scanned.
  • the coding result obtained after scanning and coding the coefficient to be scanned That is, the context and decision information output by the SPP encoder, MRP encoder and CUP encoder.
  • the coefficient to be scanned can be used to determine the status of the neighborhood coefficient of the coefficient through the 8 neighborhoods around it. Among them, these 8 neighborhoods can be divided into 3 categories: horizontal (h), vertical (v) and diagonal (d). For example, as shown in FIG. 6, assuming that the coefficient P is the coefficient to be scanned, the eight neighborhoods of the coefficient P are D0, V0, D1, H0, H1, D2, V1, and D3.
  • Fig. 7 is an example of scanning windows of SPP, MRP and CUP of the present application.
  • the scanning and coding sequence is p0, p1, p2, p3, p4, p5, p6, p7,....
  • the coding of p1 needs to know the importance information of p0 (p0 is the top neighbor of p1), and the coding of p2 needs to know the importance information of p1.
  • bit-plane coding at a rate of 4bit/cycle can be realized with the longest logic
  • the path is p0-p3.
  • SPP, MRP, and CUP all use one column of a stripe as a scanning window, and the scanning and encoding of 4 coefficients (also called bits) can be realized in one scanning window.
  • the neighbors of p4 can already be determined, so p4 can start scanning and coding at the same time as p2; similarly, at the end of p2 scanning, the neighbors of p5 can be determined, and p5 can start scanning and coding at the same time as p3. .
  • bit-plane coding rate (6bit/cycle) can be further increased without changing the logical longest path.
  • Fig. 8 is another example of scanning windows of SPP, MRP and CUP of the present application.
  • the structure of the encoder 7 provided in the embodiment of the present application has been exemplified above in conjunction with FIGS. 3 to 8.
  • the structure of the decoder 8 provided by the embodiment of the present application will be illustrated below with reference to FIG. 9.
  • the decoder 8 may include one or more of the following circuits: code stream reading circuit 81, code stream analysis circuit 82, decoding circuit 83, inverse quantization circuit 84, inverse transform circuit 85, output circuit 86.
  • the code stream reading circuit 81 can be used to read the code stream to be decoded.
  • the code stream reading circuit 81 can, for example, use an advanced extensible interface (AXI) to read the code stream to be decoded from an external memory (such as a memory).
  • AXI advanced extensible interface
  • the code stream parsing circuit 82 may also be referred to as a code stream header parser circuit (header parser).
  • the code stream analysis circuit 82 can parse various types of header information in the code stream, and separate parameters and code stream data related to decoding therefrom for use by the decoding circuit 83 at a later stage.
  • the decoding circuit 83 may include one decoding unit or parallel multiple decoding units (the specific number can be configured according to actual needs, for example, 8 parallel decoding units can be configured). Each decoding unit in the decoding circuit 83 can independently decode a code block.
  • a preprocessing circuit before the decoding circuit 83, a preprocessing circuit may also be provided.
  • the preprocessing circuit can be used to distribute the decoding parameters, code stream data, etc. output by the code stream analysis circuit 82 to parallel multiple decoding units.
  • a post-processing circuit may also be provided.
  • the post-processing circuit can be used to reorganize the decoded data output by the decoding circuit 83 and output the organized data to the subsequent circuit.
  • the inverse quantization circuit 84 can be used to inverse quantize the data decoded by the decoding circuit 83.
  • the inverse transform circuit 85 can be used to inversely transform the data output by the inverse quantization circuit 84.
  • the inverse transform can be discrete wavelet inverse transform.
  • the output circuit 86 can be used to write the data output by the inverse conversion circuit 85 into an external memory.
  • the data output from the inverse conversion circuit 85 can be written into an external memory through AXI.
  • the decoder 8 may also include a software configuration interface.
  • the software configuration interface can configure or change the information in the internal registers of the decoder 8 to control the decoding mode of the decoder 8.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website, computer, server, or data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or a data center integrated with one or more available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a digital video disc (DVD)), or a semiconductor medium (for example, a solid state disk (SSD)), etc.
  • the disclosed system, device, and method may be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components can be combined or It can be integrated into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • each unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

L'invention concerne un codeur, un système de codage, et un procédé de codage. Le codeur comprend une unité de codage de niveau 1 pour effectuer un codage de niveau 1 sur un bloc de code d'un bloc d'image d'une image à coder afin d'obtenir un flux de code du bloc de code. L'unité de codage de niveau 1 comprend : une unité de codage par plans de bits, l'unité de codage par plans de bits comprenant un premier canal et un second canal, et le premier canal et le second canal étant utilisés pour effectuer un codage par plans de bits sur de multiples plans de bits du bloc de code en parallèle afin d'obtenir le flux de code du bloc de code ; et une unité de codage arithmétique utilisée pour effectuer un codage arithmétique sur le flux de code du bloc de code afin d'obtenir un flux de code cible. Dans la présente invention, au moyen du premier canal et du second canal, un flux de code constitué d'un résultat de codage délivré en sortie par le premier canal et d'un résultat de codage délivré en sortie par le second canal peut être obtenu, de sorte que l'unité de codage arithmétique puisse adopter des modes de codage arithmétique présentant différents taux de compression et vitesses de codage pour les résultats de codage par plans de bits, et ainsi, à la fois le taux de compression et la vitesse de codage du bloc de code peuvent être pris en considération.
PCT/CN2019/083781 2019-04-23 2019-04-23 Codeur, système de codage, et procédé de codage WO2020215193A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201980005065.6A CN111316645A (zh) 2019-04-23 2019-04-23 编码器、编码系统和编码方法
PCT/CN2019/083781 WO2020215193A1 (fr) 2019-04-23 2019-04-23 Codeur, système de codage, et procédé de codage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/083781 WO2020215193A1 (fr) 2019-04-23 2019-04-23 Codeur, système de codage, et procédé de codage

Publications (1)

Publication Number Publication Date
WO2020215193A1 true WO2020215193A1 (fr) 2020-10-29

Family

ID=71159516

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/083781 WO2020215193A1 (fr) 2019-04-23 2019-04-23 Codeur, système de codage, et procédé de codage

Country Status (2)

Country Link
CN (1) CN111316645A (fr)
WO (1) WO2020215193A1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111953990A (zh) * 2020-07-07 2020-11-17 西安万像电子科技有限公司 编码方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1398116A (zh) * 2001-07-12 2003-02-19 三洋电机株式会社 图像编码设备与图像编码方法
CN1564200A (zh) * 2004-04-07 2005-01-12 西安交通大学 一种0冗余编码时钟的位平面编码器的vlsi实现方法
CN1564580A (zh) * 2004-04-07 2005-01-12 西安交通大学 Jpeg2000列关联模式下位平面编码器的通道并行实现方法
US7352903B2 (en) * 2004-08-17 2008-04-01 Pegasus Imaging Corporation Methods and apparatus for implementing JPEG 2000 encoding operations
US7760948B1 (en) * 2006-10-13 2010-07-20 Xilinx, Inc. Parallel coefficient bit modeling
CN101848311A (zh) * 2010-02-21 2010-09-29 哈尔滨工业大学 基于Avalon总线JPEG2000的EBCOT编码器
CN102790882A (zh) * 2012-07-25 2012-11-21 南京信息工程大学 一种遥感图像的编码方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1671177A (zh) * 2004-03-19 2005-09-21 北京大学 Jpeg2000分数位平面编码方法及电路
US20110052087A1 (en) * 2009-08-27 2011-03-03 Debargha Mukherjee Method and system for coding images

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1398116A (zh) * 2001-07-12 2003-02-19 三洋电机株式会社 图像编码设备与图像编码方法
CN1564200A (zh) * 2004-04-07 2005-01-12 西安交通大学 一种0冗余编码时钟的位平面编码器的vlsi实现方法
CN1564580A (zh) * 2004-04-07 2005-01-12 西安交通大学 Jpeg2000列关联模式下位平面编码器的通道并行实现方法
US7352903B2 (en) * 2004-08-17 2008-04-01 Pegasus Imaging Corporation Methods and apparatus for implementing JPEG 2000 encoding operations
US7760948B1 (en) * 2006-10-13 2010-07-20 Xilinx, Inc. Parallel coefficient bit modeling
CN101848311A (zh) * 2010-02-21 2010-09-29 哈尔滨工业大学 基于Avalon总线JPEG2000的EBCOT编码器
CN102790882A (zh) * 2012-07-25 2012-11-21 南京信息工程大学 一种遥感图像的编码方法

Also Published As

Publication number Publication date
CN111316645A (zh) 2020-06-19

Similar Documents

Publication Publication Date Title
US11470322B2 (en) Method and apparatus for image compression
CN101569170B (zh) 编码设备和编码方法以及解码设备和解码方法
US7289677B2 (en) Reversible embedded wavelet system implementation
US7016545B1 (en) Reversible embedded wavelet system implementation
US20210211728A1 (en) Image Compression Method and Apparatus
AU2019356526B2 (en) A method and apparatus for image compression
KR100317792B1 (ko) 가역임베디드웨이블릿을이용한데이터압축/복원장치및방법
Mei et al. VLSI design of a high-speed and area-efficient JPEG2000 encoder
US20150156517A1 (en) Image encoding system and method thereof
WO2020215193A1 (fr) Codeur, système de codage, et procédé de codage
CN111316644B (zh) 图像的编码方法、解码方法及所适用的设备、系统
Hoon Son et al. An embedded compression algorithm integrated with Motion JPEG2000 system for reduction of off-chip video memory bandwidth
WO2020168520A1 (fr) Codeur, systeme de codage et procédé de codage
JP2001045482A (ja) 画像処理装置及び方法
Tsai et al. A Low Complexity Scalable Video Compressor for Multiple Source Digit Home Set-Top Box
Zheng et al. Fast algorithm for remote sensing image progressive compression
Lossless Compress System couple crowd lax lena man woman1 woman2
JP2004056575A (ja) 動画像符号化装置及び動画像復号装置並びにそれらの方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19926646

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19926646

Country of ref document: EP

Kind code of ref document: A1