Font Size: a A A

Study And Implementation Of JPEG Secondary Compression Image Decoding Based On Multilevel Parallel

Posted on:2024-04-03Degree:MasterType:Thesis
Country:ChinaCandidate:H X ShengFull Text:PDF
GTID:2568307103472284Subject:Electronic information
Abstract/Summary:PDF Full Text Request
The Joint Photographic Experts Group(JPEG)coding standard has become one of the most commonly used image coding standards.In 2018,Google launched an open-source project called Brunsli,which performs a second lossless compression on images based on JPEG coding.The resulting Brunsli files save about 22% of storage space compared to the original JPEG files,effectively reducing the storage and transmission costs of JPEG files through secondary compression.However,the Brunsli project currently faces a significant challenge in practical applications,especially in low computing power scenarios such as mobile terminals,due to the slow decoding speed after secondary compression.The decoding process of secondary compression mainly involves two steps: ANS decoding and entropy coding.This article focuses on parallelization research of the entropy coding step.The entropy coding algorithm is parallelized optimized from three levels: thread parallelization,data parallelization,and instruction parallelization to achieve decoding speed improvement.The main optimization contents of this article include:(1)Proposed a multi-threaded parallel entropy coding scheme in the decoder,which extracts the parameter information required for the decoding process in the secondary compression coding process by introducing "Huffman mark words," achieving subgraph equalization and non-bytealigned data writing during multi-threaded entropy coding.Experimental results show that using two threads can improve the entropy coding speed by more than 1.6 times compared to single-threaded entropy coding,significantly improving the encoding speed.(2)Designed and implemented corresponding SIMD data parallelization entropy coding schemes on X86 and ARM architectures,respectively.By using the SSE2 instruction set and ARM NEON intrinsic instruction set,the entropy coding algorithm code is data parallelized reconstructed for the corresponding architecture,completing the data parallelization optimization of entropy coding.Comparative experimental results show that the SIMD instruction can improve the entropy coding speed by about 55% and 40% respectively on the X86 and ARM architectures.(3)Studied the acceleration design of the entropy coding algorithm using Instruction Level Parallelism(ILP),fully utilizing the hardware characteristics of modern CPU’s Out-of-Order Execution(OOOE)and Super Scalar(SS)architectures.By modifying the encoding algorithm to increase the probability of instruction parallelization during the entropy coding process,the entropy coding speed is ultimately improved.Comparative experiments show that the algorithm transformed by instruction parallelism can improve the encoding speed by about 10% compared to the original algorithm.This paper conducts targeted design by researching the use of thread parallelization,data parallelization,and instruction parallelization technologies,combined with the entropy coding algorithm,and explores the optimization performance of different parallel technologies on the operation performance of the entropy coding module.The optimization schemes at different levels can be combined for encoding parallelization requirements in different application scenarios.Finally,through comparative experiments,the above improvement schemes are verified to provide a reference basis for the use of this technology in practical applications under different CPU architectures and different JPEG modes.
Keywords/Search Tags:JPEG codec, entropy coding, multithreading, SIMD, instruction level parallel
PDF Full Text Request
Related items