CN104683806B - MQ arithmetic encoder high speed FPGA implementation methods based on depth flowing water - Google Patents

MQ arithmetic encoder high speed FPGA implementation methods based on depth flowing water Download PDF

Info

Publication number
CN104683806B
CN104683806B CN201510091224.2A CN201510091224A CN104683806B CN 104683806 B CN104683806 B CN 104683806B CN 201510091224 A CN201510091224 A CN 201510091224A CN 104683806 B CN104683806 B CN 104683806B
Authority
CN
China
Prior art keywords
register
level
production line
output
streamline
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
CN201510091224.2A
Other languages
Chinese (zh)
Other versions
CN104683806A (en
Inventor
陶宏江
张柯
金龙旭
张然峰
郝贤鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changchun Institute of Optics Fine Mechanics and Physics of CAS
Original Assignee
Changchun Institute of Optics Fine Mechanics and Physics of CAS
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 Changchun Institute of Optics Fine Mechanics and Physics of CAS filed Critical Changchun Institute of Optics Fine Mechanics and Physics of CAS
Priority to CN201510091224.2A priority Critical patent/CN104683806B/en
Publication of CN104683806A publication Critical patent/CN104683806A/en
Application granted granted Critical
Publication of CN104683806B publication Critical patent/CN104683806B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

MQ arithmetic encoder high speed FPGA implementation methods based on depth flowing water, belong to computer, digital image processing field, speed is performed in order to improve MQ encryption algorithms, on the basis of original four stage pipeline structure, pass through load and the expansion streamline of more reasonably sharing out the work, propose a kind of new block speed MQ based on six level production lines to count coding implementation, by the load that reasonably shares out the work, reduce necessary work in series amount in same level production line;By increasing pipeline series, the maximum Transition work load in each level production line is reduced;By the analysis of the control signal to the correlative link between the renewal of CX tables and arithmetic coding interval A renewals, the implementation for the new three-level decomposition that selection technique is analyzed by advanced prediction access technology and more index values, i.e., preceding three class pipeline have been drawn;Addition speed and the speed of multi-path choice are improved with the new register method of salary distribution simultaneously, so as to improve the overall execution speed of MQ encoders.

Description

MQ arithmetic encoder high speed FPGA implementation methods based on depth flowing water
Technical field
The present invention proposes a kind of height of the MQ arithmetic encoders applied to FPGA system based on multistage deep pipeline Fast implementation method, coding rate when MQ encryption algorithms in JPEG2000 are realized using FPGA can be effectively improved, belongs to meter Calculation machine, digital image processing field.
Background technology
JPEG2000 image compression algorithms are the Static Picture Compression standards of a new generation, and it does not only have excellent compressibility Can, while support optional mode and the very strong anti-bit error performances such as lossy compression method, Lossless Compression, designated area compression.Due to With these excellent characteristics, JPEG2000 algorithms have been applied in increasing field.
Although JPEG200O possesses above-mentioned numerous superiority, because JPEG2O00 has higher algorithm complexity, Especially the control structure of the special MQ Arithmetic Coding algorithms of JPEG2000 algorithms and arithmetic element are all more complicated, and with very Strong serial property and front and rear correlation, so as to cause JPEG2000 encryption algorithms speed very slow.
In order to improve the execution speed of MQ arithmetic codings, and then the overall work speed of JPEG2000 encryption algorithms is improved, It is existing that the working forms that streamline is all employ in the scheme of MQ encoders are realized using FPGA or VLSI.Existing frequently-used stream Waterline implementation is four stage pipeline structures, and the structure is in paper Michael Dyer, David Taubman, Saeid Nooshabadi,and Amit Kumar Gupta.Concurrency Techniques for Arithmetic Coding Carried out in JPEG2000.IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS [J] .2006,53 (6) in detail Thin elaboration.But the structure performs two front and rear strong correlation rings (renewal of CX tables and arithmetic volumes of speed to restricting MQ encoders Correlative link between code interval A renewals, as shown in Figure 1;Coded data export correlative link, as shown in Figure 2) decomposition depth not Enough, cause to exist in the first level production line and 18 additions and 21 in two-stage table lookup operation, the fourth stage be present:1 MUX is real Existing shifting function, these operations are time-consuming longer, so as to reduce the operating rate of MQ encoders.
The content of the invention
Speed is performed in order to improve MQ encryption algorithms, MQ arithmetic encoder high speed FPGA of the present invention based on depth flowing water is real Existing method, it comprises the following steps:
Step 1, in the first level production line, corresponding MQ encoder probability tableses are found to tabling look-up to (CX, the D) data of input Index and MPS values, realize in the course of work to renewal and maintenance of the CX data to look-up table, when realizing that multiple same CX values input Preliminary renewal-conflict of tabling look-up processing;
Step 2, in the second level production line, realize probability table index value tabling look-up to probable value, first by whether continuous two Individual or three same CX values of input judge that the index value of probable value chooses to the input from the first level production line, third level flowing water The inputting of line, the NLPS of the NMPS of last checking result or last checking results;
Step 3, in third level streamline, according to the probable value of the second level production line output, to current arithmetic coding area Between A repartitioned, A-Qe or Qe is equal to by input data D and the whether identical selection A of MPS, and perform normalization operation;
Step 4, in fourth stage streamline, output register C value is determined by the output result of third level streamline, if It is MPS states, A<Then C does not update Qe, and otherwise C is equal to C+Qe;If LPS states, A<Then C is equal to C+Qe to Qe, and otherwise C is not more Newly;
Step 5, in level V streamline, realize and a register C high position is managed, according to JPEG2000 agreements, CH is in number According to output procedure in be adjustable length, the data bits in CH is counted by CT, while by CT and from the fourth stage The displacement number of streamline determines CH updated value and B0, B1 output valve;
Step 6, in the 6th level production line, the management to the last output byte B in JPEG2000 agreements is realized, if B Equal to 0xff, then it be B directly to export BOut0, and otherwise BOut0 is that B adds the carry from level V streamline, while foundation the The byte number of five-stage pipeline output, updates BOut1 and B.
The inventive concept of the present invention can be summarized as:
1st, by the load that reasonably shares out the work, necessary work in series amount in same level production line is reduced;
2nd, by increasing pipeline series, the maximum Transition work load in each level production line is reduced;
3rd, by the analysis of the control signal to the correlative link between the renewal of CX tables and arithmetic coding interval A renewals, draw Technology is fetched by advanced prediction and more index values analyze the implementation that the new three-level of selection technique is decomposed, i.e., preceding three-level Streamline;
4th, for existing level Four pipelining algorithm data output level due to 18 additions and 21:1 MUX And the problem of causing coding rate low, it is proposed that the new register method of salary distribution improves addition speed and multi-path choice simultaneously Speed, so as to improve the overall execution speed of MQ encoders.
The beneficial effects of the invention are as follows:This programme is taken by the analysis to existing MQ encoders bottleneck using advanced prediction Number technology, more index values analysis selection technique and new byte data output scheme, add pipeline series, reduce every grade The maximum execution time of streamline, improve the overall execution speed of MQ encoders.This programme improve perform speed while, Ensure that resource utilization does not change, the coded system realized suitable for strict FPGA is required performance, resource occupation.
Brief description of the drawings
Fig. 1 CX tables update the related link flow chart between arithmetic coding interval A renewals.
Fig. 2 coded datas export related link flow.
The level production line implementation method structured flowcharts of Fig. 3 six.
Fig. 4 streamline first order workflow diagrams.
Fig. 5 streamlines second level workflow diagram.
Fig. 6 streamline third level workflow diagrams.
Fig. 7 streamline fourth stage workflow diagrams.
Fig. 8 streamline level V workflow diagrams.
The level work flow chart of Fig. 9 streamlines the 6th.
Embodiment
The present invention is described in further details below in conjunction with the accompanying drawings.
As shown in figure 3, the MQ arithmetic encoder high speed FPGA implementation methods of the invention based on depth flowing water, using six grades of streams Waterline MQ encoder implementations, comprise the following steps:
Step 1, in the first level production line, it is responsible for compiling to finding corresponding MQ in CX tables by (CX, the D) data inputted Code device probability table index and MPS values, and generate the data collision control signal continuously inputted 2 times or during 3 same CX values.
In the level production line, the lookup of CX to MQ encoder probability table index values and MPS values is realized using distributed RAM Table;Input CX values during a upper clock cycle were preserved using register Cx1;Using register Cx2 preserve clock cycle it Preceding input CX values;The input CX values before two clock cycle are preserved using register Cx3;Preserved and inputted using register D1 Data D;The probability table index value for output of tabling look-up is preserved using register Ni1;The MPS for output of tabling look-up is preserved using register Mps Value;Input data values D and the output MPS that currently tables look-up comparative result are preserved using register MpsEq;Preserved and worked as using Cx12E The comparative result of save value in preceding input CX and Cx1;The comparison knot of save value in current input CX and Cx2 is preserved using Cx13E Fruit.
In first level production line, corresponding probability table index value and MPS values are obtained by tabling look-up to the CX of each input, And CX data are saved in Cx1, Cx2, Cx3;The CX table updated value from third level streamline is selected when CX values are equal to Cx3 It is stored in as output in Ni and Mps, the table look-up CX table updated value of output of selection is stored in as output when CX values are not equal to Cx3 In Ni and Mps;Input data D and Mps are carried out logical AND operation, are as a result stored in MpsEq;Preserve CX and Cx1 comparison As a result Cx12E is arrived;CX and Cx2 comparative result is preserved to Cx13E;The level production line implements flow, as shown in Figure 4.
Step 2, the second level production line realizes probability table index value tabling look-up to probable value.
In the level production line, probability tables PET is realized using ROM, wherein preserving JPEG2000 normal probability value informations;Make Output probability value is preserved with register Pb;The index value tabled look-up and used is preserved using register Ni2;Preserved using register Ni pre- Survey index value;Preserved using register Lz and move to left digit;The Mps values of prediction are preserved using register Mps2;Use register MpsMatch2 preserves the updated value of Mps comparative results;Mps values selection control information is preserved using register MpsSelect2;Make MpsEq values during a upper clock cycle were preserved with register MED;Before register MED2 one clock cycle of preservation MpsEq values.
The groundwork of second level production line is prediction probability table lookup table index value, and passes through output probability value and the rope of tabling look-up Draw next index value of table;The Cx12E and Cx13E corresponding signal value of content selection is first depending on as ME results, then foundation Cx12E, Cx13E and ME wait until the selective value of probability tables lookup table index value, and select corresponding index value by MUX Tabled look-up to obtain probable value;The level production line implements flow, as shown in Figure 5.
Step 3, third level streamline realizes coding section A calculating.
In the level production line, coding section A normalized signals are preserved using register ARN;Use register CxUpdate preserves the fresh information for updating CX tables in the first level production line;Preserved and be used for using register MpsUpdate Update the fresh information of mps signals in the first order and the second level production line;Preserved using register Lz3 and move to left digit;Using posting Storage Pb3 preserves output probability value;Output selection is preserved using register CAS.
First according to current pipeline state, judgement is using the output probability value of the second level production line or using upper Probable value once, then subtract probable value using coding section A and current arithmetic coding section A is drawn again to realize Point, A-Qe or Qe is finally equal to by input data D and the whether identical selection A of MPS, and normalization operation is performed, this grade of flowing water Line implementation process, as shown in Figure 6.
Step 4, in fourth stage streamline, output register C value is determined by the output result of third level streamline.
Temporary result is exported using register C;Output carry position is preserved using register BPC;Protected using register BPO0 Deposit carry-out upper byte;Carry-out low byte is preserved using register BPO1;It is right right to be preserved using register CCRA Neat output data;Preserved using Lz4 and move to left digit.
Different using 16 bit register C from 4 stage pipeline structures of MQ algorithms, this patent structure uses 19 bit register C, Because using 28 bit register C in MQ algorithms, its low 16 are fixed for being added working length with probable value Pb, Its high 9 are variable for exporting the length of operation, and so middle to also have 3 data, actually this three data represent It is the A in algorithm if being in MPS states<Then C does not update during Pb, and otherwise C is equal to C+Pb;If it is in LPS states, algorithm Middle A<Then C is equal to C+Pb during Pb, and otherwise C does not update, the level production line implementation process, as shown in Figure 7.
Step 5, in level V streamline, the high-order CH [7 to register C is realized:0] management.
Output result is preserved using register Bc;Output length is preserved using register Len;C is preserved using register CH High position data;The digit of significance bit in CH is preserved using register CT.
According to JPEG2000 agreements, CH is that length is variable between 0~7 in the output procedure of data, by CT to CH In data bits counted, while by CT and the displacement number from fourth stage streamline determine CH updated value and Bc it is defeated Go out value, update CT counters using the bit value that retains in CH, the level production line implementation process, as shown in Figure 8.
Step 6, in the 6th level production line, the management to the last output byte B in JPEG2000 agreements is realized.
Temporal data is preserved using register B;High-order output is preserved using register BOut0;Protected using register BOut1 Deposit low level output.
If B is equal to 0xff, it is B directly to export BOut0, and otherwise BOut0 is that B adds entering from level V streamline Position position, while according to the byte number of level V streamline output, update BOut1 and B, the level production line implementation process, such as Fig. 9 institutes Show.
Speed, the resource that of the invention and based on level Four pipelining same model FPGA is realized relatively are shown in Table 1.
Table 1:

Claims (1)

1. the MQ arithmetic encoder high speed FPGA implementation methods based on depth flowing water, it is characterized in that, it comprises the following steps:
Step 1, in the first level production line, corresponding MQ encoder probability table indexs are found to tabling look-up to (CX, the D) data of input With MPS values, realize in the course of work to renewal and maintenance of the CX data to look-up table, realize first when multiple same CX values input Step updates-tabled look-up the processing of conflict;
Step 2, in the second level production line, realize probability table index value tabling look-up to probable value, first by whether continuous two or Three same CX values of input judge that the index value of probable value chooses to the input from the first level production line, third level streamline Input, the NLPS of the NMPS or last checking results of last checking result;
Step 3, in third level streamline, according to the probable value of the second level production line output, current arithmetic coding section A is entered Row is repartitioned, and is equal to A-Qe or Qe by input data D and the whether identical selection A of MPS, and perform normalization operation;
Step 4, in fourth stage streamline, output register C value is determined by the output result of third level streamline, if MPS states, A<Then C does not update Qe, and otherwise C is equal to C+Qe;If LPS states, A<Then C is equal to C+Qe to Qe, and otherwise C is not more Newly;
Step 5, in level V streamline, the management to register C high-order CH is realized, according to JPEG2000 agreements, CH is in number According to output procedure in be adjustable length, the data bits in register C high-order CH is counted by register CT, together When by register CT and the displacement number from fourth stage streamline determines CH updated value and register Bc output valve;
Step 6, in the 6th level production line, the management to the last output byte B in JPEG2000 agreements is realized, uses register B preserves temporal data;High-order output is preserved using register BOut0;Low level is preserved using register BOut1 to export;If B etc. In 0xff, then it is B directly to export BOut0, and otherwise BOut0 is that B adds the carry from level V streamline, while according to the 5th The byte number of level production line output, updates BOut1 and B.
CN201510091224.2A 2015-02-28 2015-02-28 MQ arithmetic encoder high speed FPGA implementation methods based on depth flowing water Expired - Fee Related CN104683806B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510091224.2A CN104683806B (en) 2015-02-28 2015-02-28 MQ arithmetic encoder high speed FPGA implementation methods based on depth flowing water

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510091224.2A CN104683806B (en) 2015-02-28 2015-02-28 MQ arithmetic encoder high speed FPGA implementation methods based on depth flowing water

Publications (2)

Publication Number Publication Date
CN104683806A CN104683806A (en) 2015-06-03
CN104683806B true CN104683806B (en) 2017-12-26

Family

ID=53318291

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510091224.2A Expired - Fee Related CN104683806B (en) 2015-02-28 2015-02-28 MQ arithmetic encoder high speed FPGA implementation methods based on depth flowing water

Country Status (1)

Country Link
CN (1) CN104683806B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108900840A (en) * 2018-07-10 2018-11-27 珠海亿智电子科技有限公司 For hard-wired H264 macro-block level bit rate control method
CN110365346B (en) 2019-07-22 2021-07-06 浙江大华技术股份有限公司 Arithmetic entropy coding method and system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1477879A (en) * 2003-07-03 2004-02-25 复旦大学 High-speed low power consumption MQ encoder applicable dto JPEG2000 standard
CN1564196A (en) * 2004-04-07 2005-01-12 西安交通大学 VLSI realizing method of synchronous flowing arithmetic coder
CN101820549A (en) * 2010-03-19 2010-09-01 西安电子科技大学 High-speed real-time processing arithmetic entropy coding system based on JPEG2000
CN102088607A (en) * 2011-02-28 2011-06-08 西安电子科技大学 Memory quotient (MQ) coding method and circuit based on JPEG (joint photographic experts group) 2000 standard
CN103248896A (en) * 2013-05-15 2013-08-14 中国科学院光电技术研究所 MQ (memory quotient) arithmetic coder

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1477879A (en) * 2003-07-03 2004-02-25 复旦大学 High-speed low power consumption MQ encoder applicable dto JPEG2000 standard
CN1564196A (en) * 2004-04-07 2005-01-12 西安交通大学 VLSI realizing method of synchronous flowing arithmetic coder
CN101820549A (en) * 2010-03-19 2010-09-01 西安电子科技大学 High-speed real-time processing arithmetic entropy coding system based on JPEG2000
CN102088607A (en) * 2011-02-28 2011-06-08 西安电子科技大学 Memory quotient (MQ) coding method and circuit based on JPEG (joint photographic experts group) 2000 standard
CN103248896A (en) * 2013-05-15 2013-08-14 中国科学院光电技术研究所 MQ (memory quotient) arithmetic coder

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
A NEW PIPELINED ARCHITECTURE FOR JPEG2000 MQ-CODER;M.AHMADVAND ET.AL;《PROCEEDING OF THE WORLD CONGRESS ON ENGINEERING AND COMPUTER SCIENCE》;20121026(第2期);第1至第7页 *
CONCURRENCY TECHNIQUES FOR ARITHMETIC CODING IN JPEG2000;MICHAEL DYER;《IEEE TRANSACTIONS ON CIRCUITS ANS SYSTEMS》;20060630;第6卷(第53期);第1203至1212页 *
JEPG2000中的MQ编码模块的研究与FPGA实现;刘彬;《中国优秀硕士学位论文全文数据库》;20100415(第4期);第25页至34页 *
JPEG2000MQ编码器的设计与实现;雷磊;《图形、图像与多媒体》;20090817(第24期);第56至63页 *
JPEG2000MQ编码算法的优化和FPGA实现;何国栋等;《技术纵横》;20140901(第9期);第35至37页 *

Also Published As

Publication number Publication date
CN104683806A (en) 2015-06-03

Similar Documents

Publication Publication Date Title
CN110276450B (en) Deep neural network structured sparse system and method based on multiple granularities
CN105468335B (en) Pipeline-level operation device, data processing method and network-on-chip chip
CN104112053B (en) A kind of reconstruction structure platform designing method towards image procossing
CN103514201B (en) Method and device for querying data in non-relational database
CN100405361C (en) Method and system for performing calculation operations and a device
CN110457317B (en) Hilbert curve coding and decoding method based on state view
CN105791828B (en) Binary arithmetic coder and its coding method
CN110765709A (en) FPGA-based 2-2 fast Fourier transform hardware design method
CN104090737B (en) A kind of modified model part parallel framework multiplier and its processing method
CN102356554B (en) Turbo code data interweaving process method and interweaving device used for interweaving turbo code data
CN104683806B (en) MQ arithmetic encoder high speed FPGA implementation methods based on depth flowing water
CN101136070B (en) Multiple protocol radio frequency label read-write machine baseband processor based on reconstruction structure
CN107544942A (en) A kind of VLSI design methods of Fast Fourier Transform (FFT)
CN106817106A (en) A kind of parallel FIR filtering methods and FIR filter
CN107479856A (en) Arctan function data structure and method for building up, function value-acquiring method and device
CN107547201B (en) Method for improving scalar multiplication calculation efficiency in elliptic curve cryptosystem
CN105359142A (en) Hash join method, device and database management system
CN105553646B (en) Reconfigurable S-box circuit structure towards block cipher parallel computation
CN103955585B (en) FIR (finite impulse response) filter structure for low-power fault-tolerant circuit
CN113837365A (en) Model for realizing sigmoid function approximation, FPGA circuit and working method
CN1324456C (en) Digital signal processor using mixed compression two stage flow multiplicaton addition unit
Wu et al. Combat: A new bitmap index coding algorithm for big data
CN115526131A (en) Method and device for approximately calculating Tanh function by multi-level coding
CN109684761B (en) Wide exclusive nor circuit optimization method
Zhang et al. Cube‐Based Synthesis of ESOPs for Large Functions

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171226

Termination date: 20200228

CF01 Termination of patent right due to non-payment of annual fee