Next Article in Journal
A Novel Integrated Electronic Lighting Driver Circuit for Supplying an LED Projection Lamp with High Power Factor and Soft Switching Characteristics
Previous Article in Journal
Research on Lightweight-Based Algorithm for Detecting Distracted Driving Behaviour
Previous Article in Special Issue
A Novel Standardized Collaborative Online Model for Processing and Analyzing Remotely Sensed Images in Geographic Problems
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Optimization of the Generative Multi-Symbol Architecture of the Binary Arithmetic Coder for UHDTV Video Encoders

by
Grzegorz Pastuszak
Faculty of Electronics and Information Technology, Warsaw University of Technology, 00-665 Warsaw, Poland
Electronics 2023, 12(22), 4643; https://doi.org/10.3390/electronics12224643
Submission received: 6 October 2023 / Revised: 9 November 2023 / Accepted: 10 November 2023 / Published: 14 November 2023
(This article belongs to the Special Issue New Technology of Image & Video Processing)

Abstract

:
Previous studies have shown that the application of the M-coder in the H.264/AVC and H.265/HEVC video coding standards allows for highly parallel implementations without decreasing maximal frequencies. Although the primary limitation on throughput, originating from the range register update, can be eliminated, other limitations are associated with low register processing. Their negative impact is revealed at higher degrees of parallelism, leading to a gradual throughput saturation. This paper presents optimizations introduced to the generative hardware architecture to increase throughputs and hardware efficiencies. Firstly, it can process more than one bypass-mode subseries in one clock cycle. Secondly, aggregated contributions to the codestream are buffered before the low register update. Thirdly, the number of contributions used to update the low register in one clock cycle is decreased to save resources. Fourthly, the maximal one-clock-cycle renormalization shift of the low register is increased from 32 to 64 bit positions. As a result of these optimizations, the binary arithmetic coder, configured for series lengths of 27 and 2 symbols, increases the throughput from 18.37 to 37.42 symbols per clock cycle for high-quality H.265/HEVC compression. The logic consumption increases from 205.6k to 246.1k gates when synthesized on 90 nm TSMC technology. The design can operate at 570 MHz.

1. Introduction

Context Adaptive Binary Arithmetic Coding (CABAC) is used in the H.265/HEVC [1] and H.264/AVC [2] standards as a key module of the entropy encoder. It provides bit rates close to the entropy limit, assuming that symbol probabilities are estimated accurately. The processing complexity of CABAC is high, which is of great importance when requirements on the throughput increase. In particular, since CABAC sequentially processes binary symbols (bins), it can become a bottleneck of video encoders for high bit rates (high qualities) and high-resolution videos (e.g., Ultra High Definition Television UHDTV).
The H.265/HEVC standard at level 6.2 High tier specifies a bit-rate limit of 800 Mbit/s for 8K resolution. This limit corresponds with a bin/symbol rate of about 1 Gbin/s. Such a bin rate can be achieved by architectures capable of processing a series of several bins/symbols in each clock cycle (e.g., 3–4). However, in practice, the required maximal throughput can be significantly higher. Firstly, the number of bins can vary depending on the complexity of coding tree units (CTUs) and frames. Secondly, some specialized applications (e.g., film production and high-quality video storage) can exceed limits on bit rates. Thirdly, Field Programmable Gated Array (FPGA) implementations are usually clocked at lower frequencies than Application-Specific Integrated Circuits (ASICs). Fourthly, some video services need processing at speeds faster than real time to simultaneously generate different quality/resolution streams.
In [3], evaluations of the current state-of-the-art entropy coder architecture show that it becomes a bottleneck of the system for high-quality videos. Therefore, high-throughput CABAC implementations are needed. These can be realized by incorporating several slower parallel units assigned to separate video parts (e.g., wavefronts, frames, or slices). On the other hand, this approach makes the design more complex, involves system latencies, and requires external memories to buffer streams. Thus, single CABAC units are more useful.
High-performance Binary Arithmetic Coding (BAC) can be used in non-normative compression applications apart from standardized video coding. For example, vast amounts of data from physics experiments must be archived on disks, which drives the need for fast data compression.
The CABAC algorithm is challenging to pipeline/parallelize since each input bin can modify the range and low/offset registers, affecting the following modifications. High-speed updates of these variables are performed on separate pipeline stages since the range update affects, but does not depend on, the low update. The throughput can be increased if stages enable more than one bin/symbol to be processed in a clock cycle. For instance, in the M-coder used in H.264/AVC, an architecture was developed to code two bins in each clock cycle, as described in [4]. In [5,6], the throughput was increased by the parallel processing of context-coded (adaptive probabilities) and bypass-mode (probabilities equal to 0.5) bins. Some architectures have been optimized to efficiently encode one context-coded symbol per clock cycle by increasing hardware efficiency [7], processing continuity [8], and operation frequency [9]. Multi-symbol architectures allow for the highest throughputs [10,11,12,13,14,15,16]. They achieve bin/symbol parallelism through the cascade of combinational-logic units within pipeline stages that update the range and low registers. These cascaded units create critical paths that can negatively affect maximal operation frequencies. Consequently, performance tends to saturate when increasing the number of symbols coded in one clock cycle [12]. In [17,18], CABAC modeling is used to obtain high-throughput rate estimations in rate-distortion optimization. However, the approximation techniques used in this study cannot be applied to bit-stream generation in BAC.
In our previous study [19], we proposed the generative multi-symbol architecture for the Binary Arithmetic Coder (BAC) to further increase the number of bins coded in one clock cycle without decreasing maximal frequencies. Although this led to higher throughputs compared to other works, its efficiency was decreased by limitations originating from the low update. In particular, the range processing had to be halted in some clock cycles to add multiple bypass-mode contributions to the low register (and codestream) or to perform upshifts by more than 32 bit positions during renormalizations.
In this study, the BAC architecture is optimized to balance throughputs of the range- and low-register stages. Firstly, more than one bypass-mode subseries can be coded in a clock cycle. Secondly, contributions to the codestream are buffered before the low register update, decreasing the occurrence of hold cycles in the range register processing. Thirdly, contributions are aggregated to increase buffer utilization. Fourthly, the occurrence of hold cycles is minimized by increasing the maximal one-clock-cycle renormalization shift of the low register from 32 to 64 bit positions. Moreover, the number of contributions computed to update the low register in one clock cycle is decreased to save resources. These optimized architectures have established a new state-of-the-art in high-throughput arithmetic coding.
The rest of the paper is organized as follows: Section 2 provides an overview of the BAC algorithm. The state-of-the-art architecture proposed in our previous work is described in Section 3. Section 4 presents the optimization methods. The design and implementation results of the architecture are described in Section 5 and Section 6, respectively. Finally, the study is concluded in Section 7.

2. Arithmetic Coding in Video Standards

The entropy coder serves as the last processing stage in video encoders. At first, syntax elements such as prediction modes, partition modes, quantized coefficients, etc., directed to the entropy coder are binarized according to dedicated coding schemes. Next, context models are assigned to some bins, along with the selection of corresponding probability models. Each probability model consists of two elements. The first one is the index paired with the probability of the least probable symbol (LPS). The second one is the indicator for the most probable symbol (MPS). The selected probability model is submitted into the binary arithmetic coder (BAC) and then updated. The MPS indicator XORed with the input bin provides a symbol distinguishing between LPS and MPS coding.
Figure 1 shows the BAC flowchart. The BAC has two crucial registers for range and offset/low variables. These registers model the subdivided interval after encoding successive input symbols, as illustrated in Figure 2. In the M-coder employed by H.264/AVC and H.265/HEVC, four variants of the probability estimate are determined from the index directed to the BAC through look-up tables (LUTs). These variants correspond to four subranges distinguished by two (6th and 7th) of nine bits of the range register. The selected LPS estimate (rLPS) is used in the interval subdivision, becoming the new range value (interval length) when coding LPS. The subtraction of the rLPS from the range register provides the MPS estimate (rMPS), which becomes the new range value if the MPS is coded. The rMPS is added to the low register for LPSs. When a bypass-mode symbol is coded, the interval is divided into two equal-length subintervals. The low register increases if the bypass-mode symbol is equal to 1.
The range and low registers are shifted up whenever the range register value falls below 256, signified by the most significant bit becoming 0. This renormalization procedure is repeated until the bit becomes 1. The output bit-stream is formed using bits removed from the most significant position of the low register during each renormalization. Following a bypass-mode symbol, renormalization restores the range value before the subdivision. BAC implementations can be simplified since the range register remains unchanged for such symbols. In such cases, the range register value is only used to compute contributions to the low register.

3. Generative Multi-Symbol Architecture

The generative multi-symbol architecture [19] allows for a long series of symbols in each clock cycle. This architecture is generative, meaning that HDL-level parameters specify the maximal number of bins/symbols to be coded in one clock cycle. In particular, the maximal lengths of LPS- (long, NLPS) and MPS-leading (short, NMPS) series are described with the configuration and notation NLPS/NMPS. The division of symbol sequences into long and short series is depicted in Figure 3. Adaptative decreasing (dec) of series lengths makes the frequency of short series lower, increasing throughputs. Generally, the higher throughput increases the consumption of logic resources, and the scaling has no strict limits.
The block diagram of the architecture is shown in Figure 4. Unlike conventional architectures, the generative architecture introduces an additional subblock for range evaluation. The subblock finds range values at points/moments that finish one series and start the next series of symbols. To this end, the architecture takes advantage of the four-variant range processing that is possible when a series starts with LPS. For a given index/context assigned to the LPS, these starting points can assume only four range values, computed with LUTs as the renormalized rLPS. Therefore, the range is simultaneously evaluated for four starting points and symbols, following the first LPS in a series. This evaluation is performed in the pipeline to keep a high clock frequency, where each range unit can include registers at its output, as depicted in Figure 5. The assignment of symbols from successive series to range units and pipeline stages is shown in Figure 6. Since the evaluation starts from known range values, feedback from the last range stage to the first one is avoided. The feedback occurs at the last pipeline stage, where one of four paths is selected to obtain the new range value. Two bits of the range register obtained for the preceding series are used for this selection.
If it is not possible to start a series with the LPS, the series beginning with MPS must be evaluated. In this case, the previous range value is unknown in advance. Thus, processing is performed in the last stage, which limits the length of the MPS-leading series. In particular, such short series can be constrained to just one symbol when the architecture is configured to the highest clock frequency. In this case, registers are inserted between all range units (as seen in Figure 5) along the path. If the design intends to operate at a lower frequency, two or three successive range units are assigned to one stage (see Figure 6d). These configurations allow for short series of two or three symbols, respectively.
Range values determined at the last evaluation stage are the starting points for each symbol series. This removes the need for feedback between the series, a feature found in conventional multi-symbol BAC implementations. Therefore, subsequent regular range processing is pipelined similar to the range evaluation submodule. On the other hand, range units in the regular processing are more complex as they provide context-coded contributions to the low register. These contributions consist of increases (rMPSs) and renormalization shifts, which are assembled and transferred through the pipeline stages to the following subblocks. The increases are directed to the low processing, whereas the shifts are cumulated and directed to the bypass-symbol merging. The accumulation assumes that the shift number for each symbol is the sum of those for previous symbols within the same series.
The bypass-symbol merging aims to insert contributions of bypass-mode symbols among contributions of context-coded symbols. To this end, cumulated shifts (CSs) for context-coded symbols are increased by the lengths of preceding bypass-mode subseries. Simultaneously, the CS of preceding context-coded contributions (CS before bypass—CSBB) is selected for bypass-mode contributions. The architecture assumes that only one subseries of up to 16 bypass-mode symbols/bins can be merged in one clock cycle. The shift update is repeated if there are more bypass-mode subseries in a series of context-coded symbols/contributions. The preceding pipeline stages (range evaluation and regular processing) are kept on hold in such cases.
Updated CSs for all contributions are forwarded to the low-processing submodule to downshift the corresponding increases (rMPSs), as shown in Figure 7 and Figure 8. The number of shifted bit positions is limited to 32 in one clock cycle to avoid critical paths in following operations. If more significant shifts are required for a series, more clock cycles are taken, and hold states are introduced to preceding pipeline stages. After the downshifting, the contributions are summed in the adder tree to form the joint contribution. This is downshifted before its addition to the low register. This operation is controlled by the five least significant bits of the rate counter, which accumulate all shifts. If the rate exceeds a multiple of 32, four bytes are taken from the most significant part of the low register and written to the carry buffer. Simultaneously, the contents of the register are shifted up by 32 bit positions, and the previous value of the carry buffer is directed to the output register. If a carry is identified in the low register, the previous value of the buffer is incremented.

4. Optimizations

In [3,18], the BAC architecture can be configured for series of up to 15 context-coded symbols. Support for longer series is achieved by extending the adder tree with more contributions to the low register (see Figure 7). This modification allows for higher throughputs, as summarized in Table 1 for H.265/HEVC Low Delay Configuration. The results were obtained for five video sequences (BasketballDrive, BQTerrace, Kimono, Traffic, PeopleOnTheStreet). One might expect the throughput to be proportional to the maximal length of long (LPS-leading) series. However, the gain is significantly smaller when the maximal length exceeds 15. The reason lies in increased frequencies of hold states, as shown in Table 1. Hold states are more frequent in longer series since there are more bypass-mode subseries and more total renormalization shifts greater than 32.
The following subsections describe modifications introduced to the architecture to maximize the throughput while keeping resource costs as low as possible. Since the throughput is related to the frequency of hold states, the successive modifications are reported/evaluated only in terms of the latter. Additionally, only three configurations have been selected to obtain concise summaries. A more detailed evaluation of the optimized architecture is included in Section 6.

4.1. Parallel Bypass-Mode Subseries

The first optimization introduced to the architecture is bypass subseries parallelism (BP), which is the ability to accept two or three bypass-mode subseries in one clock cycle. The input interface has been modified to support a configurable number of subseries. The main modifications are introduced to the bypass-symbol merging submodule, as shown in Figure 9. Each subseries contains processing elements, providing separate contributions. These contributions serve as inputs to the adder tree in the low-processing submodule. The number of the subseries is configured at the HDL level. Each subseries consists of up to 16 bins, and they directly follow the previous subseries or some context-coded symbols.
Table 2 shows the reduction in the frequency/percentage of hold states when processing one (BP1), two (BP2), or three (BP3) bypass-symbol subseries in one clock cycle. It is evident that this parallelism allows for a significant reduction in the occurrence of hold states. On the other hand, the reduction is limited by other factors, as seen in the improvement between BP2 and BP3 configurations, especially for lower QPs. The main limitation stems from the constraint on the total renormalization shift within one clock cycle.

4.2. Buffer for Contributions

The BAC architecture features variable symbol rates, which differ between the range and low processing stages. This difference introduces hold states and decreases the utilization of logic resources. To further reduce the negative impact of hold states, the optimized architecture incorporates a buffer for contributions corresponding to context-coded symbols. This modification imposes the buffering of range values selected for bypass-symbol subseries. These buffers must be implemented using registers, due to the variable length of series and subseries received from the range evaluation and regular processing. In the optimized architecture, the hold signal is activated when either of the two buffers is full, meaning the number of empty cells is smaller than the amount of new data.
The buffering changes the division into series, as the temporal symbol rates at the input and output are different and decoupled. Since CSs are related to series start points, the cumulation for new series must be carried out after reading from the buffer. The complexity of this operation involves an additional pipeline stage at the buffer output.
Two buffer sizes with capacities of 31 (BU31) and 63 (BU63) context-coded contributions are evaluated for the BP2 configuration. Corresponding sizes of the range buffer are 15 and 31. The evaluation results are summarized in Table 3 (columns without the aggregation). The analysis also considers the case when no buffering is used (BU0). The buffer improves the symbol rate (reduces the number of hold states) to a certain extent when its size is larger. However, the symbol rate is lower for the capacity of 31 contributions and longer-series configurations when compared to the architecture without the buffer. This inefficiency originates from the separation of hold signals at the input and output of the buffer, which is required to avoid critical paths. On the other hand, this separation prevents writing into the buffer when there is sufficient space to write a new series due to simultaneous reading from the almost full buffer releases. In such cases, the series is written in the next clock cycle.

4.3. Aggregated Contributions

Each symbol within a series can provide a non-empty contribution to the low register. Thus, the architecture must incorporate one adder and one shifter for each symbol (see Figure 7), regardless of whether MPSs have zero-valued increases (low register is not increased) and shift numbers of zero or one bit. This means that the utilization of hardware resources is inefficient. In particular, the buffer cells often keep zeros, and these empty contributions can be removed from the series without impacting the low register. Moreover, shift numbers assigned to successive MPSs can be aggregated and added to the one assigned to the preceding LPS. However, certain limits constrain aggregation between context-coded contributions, due to bypass-symbol subseries and MPS-leading series. In the first case, shift numbers preceding the subseries must be preserved to allow for the renormalization of the corresponding bypass-symbols contributions. In the second case, aggregation across series boundaries can be disabled to simplify the hardware data flow. Thus, series that start with MPS and/or include the MPS followed by the bypass-symbol subseries provide at least one contribution with zero increase.
The impact of aggregation on the symbol rate (the number of bin/symbols per clock cycle) is shown in Table 3 (under ‘aggregation for greater NL’). As seen, aggregation significantly reduces the frequency of hold states. The improvement is much more significant for a buffer size of 31, where the problem of simultaneous writing and reading becomes marginal. Moreover, the small difference between configurations with buffer sizes of 31 and 63 cells suggests that the first option (BU31) may be selected.

4.4. Shorter Contribution Series for Low Processing

The register buffer enables flexibility in specifying the series lengths supported by the input and output ports. Although aggregation decreases the number of contributions written to the buffer on average, the range processing must support rare series with maximal lengths (e.g., all LPSs and/or MPSs followed by bypass symbols). Therefore, the buffer’s input port should be ready to accept these series. On the other hand, the number of contributions included in series released from the buffer can be smaller, while still preserving a balanced throughput between the range and low submodules.
Shorter series at the low processing submodule reduce hardware resource usage, as reported in Section 6.1. On the other hand, shortening negatively affects BAC throughput. However, the extent of this impact depends on the mutual relationship between the maximal lengths of both buffer ports. The maximal series lengths (NLs) set on the output port and in the low processing are selected experimentally to achieve a slight deterioration in throughput and considerable resource savings. In particular, configurations with LPS-leading series lengths of 15, 21, and 27 have their NL reduced to 7, 11, and 15, respectively. The losses in symbol rate are shown in Table 3 when comparing results for longer (NL-15/21/27) and shorter (NL-7/11/15) series.

4.5. Wider Renormalization Subrange

The basic BAC architecture assumes that the total bit shift positions for renormalization in one clock cycle cannot exceed 32. Thus, the number of bit positions to which contributions can be upshifted is limited to 31. This limitation has a marginal impact on throughput in configurations with shorter LPS-leading series (smaller than 15). However, higher numbers of CSs for configurations that support longer series relatively frequently often exceed the limit of 32 bit positions, requiring more clock cycles to process all contributions in a series.
The problem is solved by extending the allowed renormalization subrange to 64-bit positions in one clock cycle. This modification entails higher utilization of hardware resources and longer signal paths. Firstly, CSs applied to contributions can range from 0 to 63. Secondly, upshifted contributions, the low register, and the following registers need more bits in their representation. Thirdly, the bit width of the output interface is increased to 64.
The impact of the wider renormalization subrange on the symbol rate is summarized in Table 4. In particular, the architecture is evaluated for two maximal renormalization subranges of 32 and 64 bits, denoted as R32 and R64, respectively. Additionally, the wider subrange is shown for two configurations of bypass-symbol parallelism. As can be seen, increasing the renormalization subrange from 32 to 64 bits leads to a significant reduction in the frequency/percentage of hold states. Moreover, the wider subrange allows for a higher gain between BP2 and BP3 configurations of the bypass-symbol parallelism, compared to the results in Table 2. Consequently, hold states become a small fraction of coding time, even for the configuration with long series including up to 27 symbols.

5. Architecture

The optimizations described in Section 4 are applied to the basic BAC architecture [19]. The modified architecture has a similar structure to that shown in Figure 3. However, there are differences due to the incorporation of buffers for context-coded contributions and range values. The main changes are introduced at the lower level. More specifically, the range evaluation submodule remains unchanged, whereas the remaining three submodules are optimized.

5.1. Range Processing

The description of the range evaluation submodule is skipped since it is the same as in the basic BAC architecture; details can be found in [19]. The regular range processing is done through a chain of units, each of which is assigned to successive symbols in the series. The architecture embeds NLPS units, whose numbers match the maximal series length. Although the regular range processing preserves the configuration-dependent division of the chain into pipeline stages, the units of the chain are modified to support the aggregation of contributions to the low register.
The architecture of a single unit is shown in Figure 10. The unit is internally divided into three stages to minimize critical paths. In the first stage, the input index is mapped into four LPS probability estimate (rLPS) variants and their renormalized values. These values are used in the second stage to update the range variable. The updated range value is forwarded to the same stage of the following unit. Both stages are the same as in the basic architecture. The third stage involves collecting context-coded contributions (rMPSs, shifts, and bypass flags) and range values used to compute bypass-mode contributions. These are appended to the data transferred in the arrays between the range processing units. The data arrays are initialized with zeros at the input to the first unit. In consecutive units, the selective insertion gradually fills the arrays with non-zero values. Consequently, the units at the beginning of the chain have lower complexity than those at the end.
If aggregation is disabled, the selective insertion of contributions is fixed and depends on the unit’s position in the chain. Otherwise, insertion is controlled by the series length variable. It is incremented whenever a contribution in a given unit is appended to the array. The conditional appending is performed by a multiplexer, which discards contributions corresponding to most MPSs. Although such contributions have rMPSs equal to 0, their shift numbers can be 0 or 1. Therefore, the shift numbers for the discarded and preceding contributions must be added. This addition involves the shift chain initialized to 0 whenever LPS or bypass indicators are encountered in a series.
The shift numbers in the series of contributions should be cumulated to facilitate the simultaneous renormalization of increases added to the low register. Since the buffering of contributions changes the division into series, the cumulation must follow the reading. Therefore, the full cumulation performed in the basic architecture range units is not present in the modified ones. Although the aggregation involves similar operations in the shift chain as the full cumulation, there are two crucial differences. Firstly, shift numbers are cumulated only for contributions aggregated into one. Secondly, not all but only selected values taken from the shift chain are forwarded to the low processing. The selected values are the same as the aggregated ones.

5.2. Buffers

The modified architecture incorporates two buffers for context-coded contributions (main buffer) and range values used to compute bypass-symbol contributions. The block diagram of the buffers is shown in Figure 11. Data written to the buffers are received from the regular range processing submodule. The data read from the buffer are forwarded to the bypass-symbol merging submodule. The main goal of the buffering is to minimize hold states at write ports since they propagate to range processing stages and decrease the average throughput. Hold states occur when any of the two buffers is full, i.e., writing new data would cause an overflow. To avoid an overflow, the number of input items at the write port of a buffer is added to the current buffer fullness. Then, the result is compared to the maximal capacity (overflow element in Figure 11). If the addition result for the two buffers is not greater than the corresponding maximal capacities, the data are written, as indicated by the inactive buffer full signal. The active signal prevents writing even when reading simultaneously releases sufficient space. This suboptimality is the price of separating time-critical signals, i.e., buffer full and hold. On the other hand, this inefficiency is negligible, as concluded from Table 3 when considering buffer sizes of 31 and 63.
Series of contributions read from the main buffer are NL in length unless the number of valid items in the buffer is smaller. The range buffer is read at a variable rate, and the number of utilized range values depends on the LAST signal received from the bypass-symbol merging submodule. For both buffers, the number of cells released during the reading is subtracted from the buffer fullness register, whereas the number of input data items is added. Input data are upshifted by the number of positions resulting from the current buffer fullness. The upshifting adjusts data to empty cells in each buffer.

5.3. Bypass-Symbol Merging

The merging submodule combines context-coded and bypass-mode contributions. In the modified architecture, the main changes relate to the parallel processing of bypass-symbol subseries as described in Section 4.1. However, shorter contribution series for low processing and the wider renormalization subrange also impact the size of data arrays. The submodule is depicted in Figure 9 and Figure 12 for general and detail views, respectively. In Figure 12, three parts of the submodule are distinguished. They are responsible for bypass-mode contributions, the cumulation of shift numbers, and the phase control. The first part includes the buffer for bypass-mode data consisting of 16-bin subseries, their lengths, and LAST flags indicating if the subseries are finished or continued in the following one. Input bypass-mode data are appended to the valid ones in the buffer using the demultiplexer. Before writing to the buffer register, such a concatenated array is downshifted using a multiplexer. This operation is controlled by the BU (Bypass Utilized) signal. Written bin subseries are multiplied by values taken from the range buffer to compute bypass-symbol increases to the low register. The number of multiplication units matches that of bypass-mode contributions the BAC can code in one clock cycle.
The most complex and time-critical part of the bypass-symbol merging submodule is the cumulation of shift numbers corresponding to successive symbols in each series. The input shift numbers for context-coded symbols are cumulated in a separate stage to avoid critical paths. At the same input stage, flags indicating the location of bypass subseries are mapped to numbers of preceding context-coded symbols (number before bypass in Figure 12). The numbers are used to select CSs for bypass-symbol contributions in the second stage. The third stage includes two paths for context-coded and bypass-mode contributions, where lengths of bypass-symbol subseries are selectively added to CSs of the following contributions. The result (arrays CS[NL:0] and CSBB[BP:0]) is directed to the low processing and the phase control part. Hold states are activated if there are more bypass-symbol subseries in the current series or the renormalization shift exceeds the allowable subrange (R32 or R64). When it happens, CSs kept in registers are updated with additional results related to the utilized bypass-symbol subseries. The update forms feedback loops with multiplexers driven by the BU signal.
The submodule computes the number of preceding bypass subseries for each context-coded symbol and converts it to the unary representation to facilitate the control. The simultaneous bitwise downshifting of unary variables allows for detection when the update of CSs for corresponding context-coded symbols is completed (RDY—Shift Ready). The downshifting by one bit corresponds to utilizing one bypass subseries with the active LAST flag. The LST signal indicates this condition.
The phase control part of the bypass-symbol merging submodule determines the scheduling for each series. In particular, it generates signals indicating hold states and the utilization of bypass subseries. The signals depend on CSs and the shift-phase register pointing to an active renormalization subrange. For the R64 configuration, 0, 1, 2, and 3 values correspond to [0, 64], [65, 128], [129, 192], and [193, 256] subranges, respectively. Most significant bits of CSs are compared to the phase. The equality indicates that the shifts fall in the assigned subrange, which enables forwarding associated contributions to the low processing. The shift-phase register is incremented if all such contributions have been forwarded and there are other contributions related to the next subrange. The hold signal is active until all contributions in the current series are not utilized/forwarded.

5.4. Low Processing and Bit-Stream Generation

The low processing and codestream generation submodule follows the same data flow as shown in Figure 7. However, the shorter contribution series, the bypass series parallelism, and the wider renormalization subrange (R64) affect the design at the low level. In particular, the first optimization decreases the number of input contributions (rMPS and CS). Consequently, it involves fewer downshifters, adders, and associated registers. On the other hand, bypass subseries parallelism requires one (BP2) or two (BP3) more paths for contributions. The R64 configuration makes the design more complex. Firstly, downshifters have an additional multiplexer layer. Secondly, the bit widths of downshifted increases/contributions and buffers are doubled. In the case of the low register, the bit width is increased from 88 to 132 bits.

6. Implementation Results

The optimized BAC architecture is specified in VHDL and parameterized to change hardware configurations easily. The maximal lengths of symbol series processed in one clock cycle are specified by two constants. The third one determines the maximal length of the contribution series. Apart from the two constants assigned to short and long series in the range processing, the additional third one limits the series length for the low processing. Each optimization described in Section 4 can be independently enabled or disabled at the HDL level, with one exception. Shorter contribution series are dependent on the presence of the buffer. The design is verified against data produced by the HM (version 13.0) and JM (version 11.0) reference models [20,21] for all configurations.

6.1. Synthesis Results

The architecture is synthesized for selected ASIC and FPGA technologies. In the first case, the design is synthesized with Synopsys Design Compiler using TSMC 90 nm standard cell library under worst-case conditions. In the second case, the target device is Arria II GX, and Altera Quartus II software is used as a synthesis tool. Generally, the architecture can be easily synthesized for different ASIC and FPGA technologies since the HDL specification does not refer to technology-dependent cells. It is up to the synthesis tool to apply technology-level optimizations in addition to architectural ones described in previous sections.
The clock rate limit depends on the maximal length of MPS-leading (short) series and the number of bypass subseries the architecture can code in one clock cycle. The main limitation originates from the maximal length of short series. However, if the bypass subseries parallelism is set to three, the design with short series set to one symbol has a much lower frequency. In the case of FPGA devices, maximal frequencies are 200, 154, and 105 MHz for one-, two-, and three-symbol short series, respectively. The TSMC 90 nm technology allows for higher frequencies with 650, 570, and 400 MHz limits, respectively. The limitation is usually due to the number of time-critical range update units assigned to one pipeline stage of the evaluation and the regular processing submodules. However, updating CSs with bypass symbol contributions introduces critical paths for configurations that reduce short series to one symbol. In particular, the ability to process two (BP2) and three (BP3) bypass symbol subseries decreases the maximal frequencies to 620 and 570 MHz, respectively. More advanced technologies (e.g., 65 nm, 28 nm, Stratix 10, ultraScale+) allow for higher clock frequencies and performance. In practice, this requires more effort in placement and routing to balance clock paths and meet setup/hold time requirements.
Table 5 and Table 6 summarize the resource consumption for TSMC 90nm and FPGA Arria II GX, respectively. Selected configurations are shown in the table headers. The FPGA implementation additionally utilizes one, two, or three DSP units to multiply bypass subseries and ranges. DSP units are much more efficient (critical paths and area) than general logic cells, and their use is decided by the synthesis tool.
Generally, longer series and more bypass subseries increase resource consumption. The relation between the amount of logic resources and the number of symbols in the series is nearly proportional. Resource consumption is decreased for configurations able to code more symbols in MPS-leading series as the design requires fewer pipeline stages (fewer registers). However, this ability negatively affects clock frequencies, as described above.

6.2. Throughput

Different BAC configurations are evaluated for the average throughput, measured as the number of symbols processed in one clock cycle. These configurations are determined by long/short series lengths and enabled optimizations. Results are summarized in Table 7, Table 8 and Table 9. They are obtained for five video sequences (same as in Section 4) and four quantization parameters (4, 12, 22, and 37). For each sequence, 30 frames are coded with the HM H.265/HEVC using the low-delay (LD) and all-intra (AI) configurations. Common Test Conditions [22] are applied for the remaining settings. Additionally, the design is evaluated for LD H.264/AVC. Evaluations summarized in Table 7 and Table 8 assume that throughputs are limited only by the BAC, i.e., the binarization and the context/probability modeling provide sufficient data at the BAC input.
The most important results are for small QPs (e.g., 4 or 12), where the number of symbols to code is the largest, and video quality is high. For these QPs, higher throughputs are achieved due to longer bypass-mode subseries and the more frequent appearance of LPSs. The latter facilitates the formation of longer input series. Generally, configurations capable of coding longer series achieve better results. Successive columns in Table 7 show the impact of introduced optimizations. As shown, they increase the throughput, and the improvement is more significant for configurations capable of coding longer series. However, buffering without aggregation is not beneficial, as discussed in Section 4.3.
The left part of Table 8 provides evaluation results for the H.265/HEVC AI Profile. The impact of hardware configurations and QPs on the throughput is generally similar to the LD Profile case (Table 7). On the other hand, the achieved throughputs are higher compared to the LD Profile. The differences are mainly due to the distribution of bypass-mode symbols.
Symbol rates for LD H.264/AVC are summarized in the last four columns of Table 8. In general, throughputs for H.265/HEVC are significantly higher than those for H.264/AVC due to the difference in symbol distributions. In the second case, long sequences of MPSs often force short series at the BAC input. Moreover, bypass subseries in H.264/AVC often consist of one symbol, and their number in a series is often higher. Such distributions often introduce hold states. The buffering and the parallel processing of more than one bypass subseries (BP2 and BP3) significantly improve the throughput by reducing the frequency of hold states. On the other hand, the wider renormalization subrange (R64) has a small impact, as hold states caused by the scattering of bypass symbols divide series into parts with smaller CSs (less than 32).
The BAC architecture is evaluated along with the other modules of the entropy coder proposed in [3] for H.265/HEVC LD and AI Profiles. The achieved symbol rates are summarized in Table 9. Compared to the results shown in Table 7 and Table 8, they are significantly lower for larger QPs and configurations with longer LPS-leading series. The architecture of the entropy coder is balanced when the maximal series length is set to 15. The BAC optimizations for this length provide considerable improvements when the QP is lower. However, other modules that compose the entropy coder should be optimized to utilize the higher BAC throughputs for extended series lengths.

6.3. Comparison

Table 10 compares the optimized architecture with other architectures described in the literature. The fastest hardware configuration of the optimized architecture is considered. Compared to prior work, it achieves the highest symbol rate and throughput. For the high-quality H.265/HEVC compression, the advantage is greater since more bypass-mode symbols can be coded in each clock cycle. For a QP equal to 4, the 27/2 optimized architecture achieves a symbol rate of 37.42, which is 9.39 bins per clock cycle better compared to the case for a QP equal to 22. The design described in [11] shows no improvement for small QPs, as the symbol rate does not depend on the QP. The other works [12,13,14,15] do not report throughputs for small QPs. However, improvements are expected to be much smaller, as these other designs can code fewer bypass-mode symbols compared to the generative architectures. Moreover, in these designs, rates of context-coded symbols are close to their upper bounds for a QP equal to 22.
The power consumption of the generative architectures depends on the selected configuration. Table 11 includes results for two configurations. Power is estimated using Synopsys Design Compiler based on the switching activity of the simulated design (post-synthesis) for TSMC 65 nm and 90 nm, with the same clock frequency of 570 MHz. The design described in [16] is optimized for power and synthesized for CMOS 65 nm ST PDK. Power estimation results are obtained using Cadence RTL Compiler with tool-inferred stimuli. This design has lower power consumption and significantly lower throughputs compared to the generative architectures.
The basic [19] and optimized architectures have throughputs exceeding the limits of previous implementations. This gain comes at increased hardware costs caused by the higher number of coded symbols and deeper pipelining. On the other hand, the generative architectures allow for different configurations to adjust the required throughput and hardware costs. The significantly higher throughputs of the optimized architecture make it attractive for high-resolution and high-quality video compression, especially when the clock frequency is limited by the technology (e.g., FPGA).

7. Conclusions

The optimized generative BAC architecture outperforms prior arts. Optimization methods applied to the basic generative architecture allow for significant throughput improvements at relatively small hardware costs. Firstly, the methods reduce the frequencies of hold states generated by the bypass-symbol merging submodule. Secondly, the buffering decreases the impact of hold states on range processing. Thirdly, series lengths at the low processing are reduced to save resources. The optimizations can be selectively applied to the architecture, considering required throughputs and costs; they are beneficial for achieving higher throughputs.
Although the proposed optimizations significantly increase throughputs, the other modules of the entropy coder also affect speed performance. Evaluations with the modules proposed in [3] reveal that their throughput should be significantly increased to balance the optimized BAC architecture. Their optimization will be the subject of research in future work.

Funding

This research received no external funding.

Data Availability Statement

Video data are available on request: ftp://ftp.ient.rwth-aachen.de/ctc/ (accessed on 1 July 2020).

Conflicts of Interest

The author declares no conflict of interest.

References

  1. ISO/IEC 23008-2:2013; High Efficiency Video Coding (HEVC), ITU-T H.265 and ISO/IEC Standard 23008-2 (MPEG-H Part 2). ISO/IEC: Washington, DC, USA, 2013.
  2. ISO/IEC 14496-10:2003; Advanced Video Coding (AVC), ITU-T H.264 and ISO/IEC Standard 14496-10 (MPEG-4 Part 10). ISO/IEC: Washington, DC, USA, 2005.
  3. Pastuszak, G. Multisymbol Architecture of the Entropy Coder for H.265/HEVC Video Encoders. IEEE Trans. Very Large Scale Integr. (VLSI) Syst. 2020, 28, 2573–2583. [Google Scholar] [CrossRef]
  4. Pastuszak, G. High-Efficient Architectures of the Context Adaptive Binary Arithmetic Coder for H.264/AVC. In Proceedings of the International Workshops on Systems, Signals and Image Processing (IWSSIP’04), Poznań, Poland, 13–15 September 2004; pp. 167–170. [Google Scholar]
  5. Osorio, R.R.; Bruguera, J.D. A New Architecture for fast Arithmetic Coding in H.264 Advanced Video Coder. In Proceedings of the 2005 8th Euromicro Conference on Digital System Design (DSD’05), Porto, Portugal, 30 August 2005; pp. 298–305. [Google Scholar]
  6. Osorio, R.R.; Bruguera, J.D. High-throughput architecture for H.264/AVC CABAC compression system. IEEE Trans. Circuits Syst. Video Technol. 2006, 16, 1376–1384. [Google Scholar] [CrossRef]
  7. Peng, B.; Ding, D.; Zhu, X.; Yu, L. A hardware CABAC encoder for HEVC. In Proceedings of the IEEE International Symposium on Circuits and Systems (ISCAS), Bangkok, Thailand, 25–28 May 2013; pp. 1372–1375. [Google Scholar]
  8. Chen, J.-W.; Wu, L.-C.; Liu, P.-S.; Lin, Y.-L. A high-throughput fully hardwired CABAC encoder for QFHD H.264/AVC main profile video. IEEE Trans. Consum. Electron. 2010, 56, 2529–2536. [Google Scholar] [CrossRef]
  9. Tian, X.; Le, T.M.; Jiang, X.; Lian, Y. Full RDO-support power-aware CABAC encoder with efficient context access. IEEE Trans. Circuits Syst. Video Technol. 2009, 19, 1262–1273. [Google Scholar] [CrossRef]
  10. Fei, W.; Zhou, D.; Goto, S. A 1 Gbin/s CABAC encoder for H.264/AVC. In Proceedings of the European Signal Processing Conference, EUSIPCO 2011, Barcelona, Spain, 29 August–2 September 2011; pp. 1524–1528. [Google Scholar]
  11. Tsai, C.-H.; Tang, C.-S.; Chen, L.-G. A flexible fully hardwired CABAC encoder for UHDTV H.264/AVC high profile video. IEEE Trans. Consum. Electron. 2012, 58, 1329–1337. [Google Scholar] [CrossRef]
  12. Zhou, D.; Zhou, J.; Fei, W.; Goto, S. Ultra-High-Throughput VLSI Architecture of H.265/HEVC CABAC. Encoder for UHDTV Applications. IEEE Trans. Circuits Syst. Video Technol. 2015, 25, 497–507. [Google Scholar] [CrossRef]
  13. Chen, C.; Liu, K.; Chen, S. High-throughput Binary Arithmetic Encoder architecture for CABAC in H.265/HEVC. In Proceedings of the IEEE International Conference on Solid-State and Integrated Circuit Technology (ICSICT), Hangzhou, China, 25–28 October 2016. [Google Scholar]
  14. Ramos, F.L.L.; Zatt, B.; Porto, M.; Bampi, S. High-Throughput Binary Arithmetic Encoder using Multiple-Bypass Bins Processing for HEVC CABAC. In Proceedings of the IEEE International Symposium on Circuits and Systems (ISCAS), Florence, Italy, 27–30 May 2018. [Google Scholar]
  15. Li, W.; Yin, X.; Zeng, X.; Yu, X.; Wang, W.; Fan, Y. A VLSI Implement of CABAC Encoder for H.265/HEVC. In Proceedings of the IEEE International Conference on Solid-State and Integrated Circuit Technology (ICSICT), Qingdao, China, 31 October–3 November 2018. [Google Scholar]
  16. Ramos, F.L.L.; Zatt, B.; Porto, M.; Bampi, S. Energy-Throughput Configurable Design for Video Processing Binary Arithmetic Encoder. IEEE Trans. Circuits Syst. Video Technol. 2021, 31, 1163–1177. [Google Scholar] [CrossRef]
  17. Zhang, Y.; Lu, C. A highly parallel hardware architecture of table-based CABAC bit rate estimator in an HEVC intra encoder. IEEE Trans. Circuits Syst. Video Technol. 2018, 29, 1544–1558. [Google Scholar] [CrossRef]
  18. Cai, Y.; Fan, Y.; Huang, L.; Zeng, X.; Yin, H.; Zeng, B. A Fast CABAC Hardware Design for Accelerating the Rate Estimation in HEVC. IEEE Trans. Circuits Syst. Video Technol. 2021, 32, 2385–2395. [Google Scholar] [CrossRef]
  19. Pastuszak, G. Generative Multi-Symbol Architecture of the Binary Arithmetic Coder for UHDTV Video Encoders. IEEE Trans. Circuits Syst.-I Regul. Pap. 2020, 67, 891–902. [Google Scholar] [CrossRef]
  20. HEVC Software Repository—HM-16.0 Reference Model. Available online: https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/HM-16.0/ (accessed on 1 May 2018).
  21. H.264/AVC Reference Software JM17.2. Available online: http://iphome.hhi.de/suehring/tml/download/ (accessed on 1 May 2018).
  22. Bossen, F. Common test conditions and software reference configurations. In Proceedings of the Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, Doc. JCTVC-J1100, Stockholm, Sweden, 11–20 July 2012. [Google Scholar]
Figure 1. Flowchart of the binary arithmetic coder used in H.264/AVC and H.265/HEVC.
Figure 1. Flowchart of the binary arithmetic coder used in H.264/AVC and H.265/HEVC.
Electronics 12 04643 g001
Figure 2. Interval subdivision in the binary arithmetic coder used in H.264/AVC and H.265/HEVC.
Figure 2. Interval subdivision in the binary arithmetic coder used in H.264/AVC and H.265/HEVC.
Electronics 12 04643 g002
Figure 3. Example of the division of the symbol sequence into MPS-leading (short) and LPS-leading (long) series with straightforward (a) and adaptive (b) approaches. M and L correspond to MPS and LPS, respectively. Upper descriptions assume NLPS = 15 and NMPS = 3, whereas the bottom ones assume NLPS = 9 and NMPS = 1.
Figure 3. Example of the division of the symbol sequence into MPS-leading (short) and LPS-leading (long) series with straightforward (a) and adaptive (b) approaches. M and L correspond to MPS and LPS, respectively. Upper descriptions assume NLPS = 15 and NMPS = 3, whereas the bottom ones assume NLPS = 9 and NMPS = 1.
Electronics 12 04643 g003
Figure 4. Block diagram of the BAC architecture [19].
Figure 4. Block diagram of the BAC architecture [19].
Electronics 12 04643 g004
Figure 5. Evaluation of range values. Units distinguished in blue are used for the MPS coding.
Figure 5. Evaluation of range values. Units distinguished in blue are used for the MPS coding.
Electronics 12 04643 g005
Figure 6. Examples of symbol series and their assignment to units. (a,b) depict inputs to the range evaluation for 9/1 and 15/3 configurations, respectively. (c,d) depict the time assignment to units in the pipeline for 9/1 and 15/3 configurations, respectively. L and M correspond to LPS and MPS, respectively. Dots indicate the following series. Dashes indicate unused units.
Figure 6. Examples of symbol series and their assignment to units. (a,b) depict inputs to the range evaluation for 9/1 and 15/3 configurations, respectively. (c,d) depict the time assignment to units in the pipeline for 9/1 and 15/3 configurations, respectively. L and M correspond to LPS and MPS, respectively. Dots indicate the following series. Dashes indicate unused units.
Electronics 12 04643 g006
Figure 7. Simplified diagram of low-register processing and codestream generation. Pipelining is not shown.
Figure 7. Simplified diagram of low-register processing and codestream generation. Pipelining is not shown.
Electronics 12 04643 g007
Figure 8. Example of code-stream generation from increases in three clock cycles. The horizontal dimension corresponds to bit positions in the code stream. Indices i, j, k, l, m, p, and r correspond to LPS positions. Dark areas indicate valid bits. The right parts show an extended view of the left ones.
Figure 8. Example of code-stream generation from increases in three clock cycles. The horizontal dimension corresponds to bit positions in the code stream. Indices i, j, k, l, m, p, and r correspond to LPS positions. Dark areas indicate valid bits. The right parts show an extended view of the left ones.
Electronics 12 04643 g008
Figure 9. General view of the bypass-symbol merging submodule with parallel coding of three bypass-mode subseries.
Figure 9. General view of the bypass-symbol merging submodule with parallel coding of three bypass-mode subseries.
Electronics 12 04643 g009
Figure 10. Range units for regular processing.
Figure 10. Range units for regular processing.
Electronics 12 04643 g010
Figure 11. Detail view of buffers for contributions (main) and ranges.
Figure 11. Detail view of buffers for contributions (main) and ranges.
Electronics 12 04643 g011
Figure 12. Detailed view of the bypass-symbol merging submodule with parallel coding of two bypass-mode subseries.
Figure 12. Detailed view of the bypass-symbol merging submodule with parallel coding of two bypass-mode subseries.
Electronics 12 04643 g012
Table 1. Average symbol rates and percentages of hold states for H.265/HEVC and the Low Delay configuration.
Table 1. Average symbol rates and percentages of hold states for H.265/HEVC and the Low Delay configuration.
QPSymbol RateFrequency of Hold States [%]
9/115/321/327/39/115/321/3 27/3
46.9113.8117.1518.4212.2127.7140.9953.22
125.9112.5015.9517.046.3218.8832.2346.26
225.2811.2714.1115.105.5119.2333.5847.46
375.2410.1711.6912.017.4426.1342.2054.85
Table 2. Percentages of hold states for three configurations of bypass subseries parallelism.
Table 2. Percentages of hold states for three configurations of bypass subseries parallelism.
QP15/321/327/3
BP1BP2BP3BP1BP2BP3BP1BP2BP3
427.7113.2011.8140.9924.9722.6653.2238.3336.21
1218.886.314.4132.2314.8810.7646.2627.1921.54
2219.235.062.6833.5813.49.5547.4625.7817.11
3726.136.912.0742.2018.848.3354.8533.0620.86
Table 3. Percentages of hold states for different buffering, aggregation, and low series length (NL) configurations.
Table 3. Percentages of hold states for different buffering, aggregation, and low series length (NL) configurations.
QP15/3 BP221/3 BP227/3 BP2
BU0BU31BU63Aggregation onBU0BU31BU63Aggregation onBU0BU31BU63Aggregation on
NL-15NL-7NL-21NL-11NL-27NL-15
BU31BU63BU31BU63BU31BU63BU31BU63BU31BU63BU31BU63
413.2010.122.780.030.000.280.0124.9745.419.167.454.6413.1411.8038.3351.1936.5725.7823.7230.0529.80
126.315.070.790.030.000.120.0014.8844.459.834.111.927.365.6327.1950.1525.9818.6615.3923.0222.04
225.064.240.590.10.010.140.0113.4042.739.025.293.478.046.4025.7849.5124.3518.5416.3522.0420.93
376.915.871.310.590.100.620.1318.8441.9314.7711.510.1914.9813.1133.0648.0531.9727.3926.130.6429.95
Table 4. Percentages of hold states for three configurations with different renormalization subranges and bypass subseries parallelism.
Table 4. Percentages of hold states for three configurations with different renormalization subranges and bypass subseries parallelism.
QP15/3 BU31 NL721/3 BU31 NL1127/3 BU31 NL15
R32
BP2
R64R32
BP2
R64R32
BP2
R64
BP2BP3BP2BP3BP2BP3
40.280.040.0113.142.790.6430.0514.765.55
120.120.030.017.361.190.2323.028.642.28
220.140.070.018.042.030.2222.0411.292.69
370.620.370.0814.986.730.6330.6420.876.31
Table 5. Resource consumption [kgates] for TSMC 90 nm.
Table 5. Resource consumption [kgates] for TSMC 90 nm.
Long/Short SeriesBU0BU31
BP2Aggregation on
BP2NL Reduced
BP1BP2BP3R32
BP2
R32
BP3
R64
BP2
R64
BP3
15/1116.8128.1137.1124.6142.6124.6130.6133.6140.7
15/2101.5109.4124.4118.2122.1108.1118.1118.1127.0
15/390.195.6102.6103.5108.095.999.93101.6106.1
21/1181.8194.2205.4204.5214.3191.7198.5204.1212.4
21/2149.1160.7168.3170.2178.0158.7171.2172.7181.4
21/3134.1141.1148.6148.9156.1138.2143.1145.9151.2
27/1259.6274.4289.0284.9299.2269.8279.6284.9293.4
27/2205.6220.7227.8231.3241.8215.3230.3233.3246.1
27/3184.7193.0202.5202.3213.6188.1193.4196.8203.6
Table 6. Resource consumption [ALUTs] for Arria II GX.
Table 6. Resource consumption [ALUTs] for Arria II GX.
Long/Short SeriesBU0BU31
BP2Aggregation on
BP2NL Reduced
BP1BP2BP3R32
BP2
R32
BP3
R64
BP2
R64
BP3
15/113,45314,37215,64616,12216,54714,53515,19715,40616,052
15/3991510,84311,94612,30712,80811,04711,72711,83212,666
21/121,78423,00024,39324,72525,69522,82423,51423,95424,522
21/315,08816,21417,59617,59618,45115,96316,64616,95017,686
27/131,83833,43735,31735,38136,64532,87233,42134,25834,819
27/320,86022,31524,22123,68124,87421,51022,34522,68623,616
Table 7. Average symbol rates for H.265/HEVC LD Profile.
Table 7. Average symbol rates for H.265/HEVC LD Profile.
QPLong/Short SeriesBU0BU31
BP2Aggregation on
BP2NL Reduced
BP1BP2BP3R32
BP2
R32
BP3
R64
BP2
R64
BP3
415/112.4414.8215.0415.3716,8216.7916.8016.8216.82
15/213.4316.2616.5316.9018.7618.7118.7318.7518.76
15/313.8116.8417.1217.4819.5519.5019.5219.5419.55
21/116.5520.9521.5915.4325.8724.4425.0926.9927.48
21/216.9921.6922.3715.8526.9325.3126.0728.2428.84
21/317.1521.9622.6615.9927.2625.5526.3528.6829.35
27/118.2124.0424.8619.1629.1127.4628.5333.3036.76
27/218.3724.3325.1719.3529.4227.7328.8333.7437.42
27/318.4224.4325.2819.4029.4827.7828.9033.8537.63
1215/111.1012.7312.9612.9013.5213.5113.5213.5213.52
15/212.1114.0614.3414.2615.0215.0115.0215.0215.03
15/312.5014.5814.8914.7915.6215.6015.6115.6215.62
21/115.2619.0619.9512.6121.4420.7521.4622.0622.27
21/215.7719.8420.8012.9422.4021.6422.4323.0923.32
21/315.9520.1221.1013.0622.7421.9422.7723.4623.70
27/116.8122.7224.4415.6625.4324.0926.0928.5230.49
27/216.9823.0324.9015.8025.7824.4026.4728.9831.03
27/317.0423.1324.9215.8425.8924.4826.6029.1431.21
2215/19.6511.2611.5311.3611.8311.8211.8311.8311.83
15/210.8012.7813.1112.9013.4813.4713.4913.4813.49
15/311.2713.4213.7813.5514.1814.1814.2014.1914.20
21/113.1117.0118.1311.4318.5718.0319.0919.2219.58
21/213.8318.1519.4011.9619.8919.2920.4720.6121.01
21/314.1118.5919.8912.1520.4019.7721.0021.1521.56
27/114.6220.5922.9714.1922.5521.5723.9424.5627.02
27/214.9721.2523.8514.4823.3322.2924.8125.7828.03
27/315.1021.4824.0614.5823.6022.5525.1225.7828.41
3715/18.4610.4110.8910.5211.0411.0411.1011.0711.10
15/29.6612.1812.8212.3213.0113.0213.0813.0413.08
15/310.1712.9813.6913.1313.9113.9013.9813.9413.99
21/110.2513.9715.6010.3315.0814.5416.1515.8316.83
21/211.2815.8017.8311.3517.1916.5218.5318.1219.34
21/311.6916.5918.6111.7618.1017.3619.5919.1320.46
27/110.8315.5718.1212.3816.7716.0918.5918.1121.15
27/211.6817.2620.3613.4518.7117.8720.9320.3524.07
27/312.0117.9721.3213.8719.5118.6221.9321.3025.36
Table 8. Average symbol rates for H.265/HEVC AI and H.264/AVC LD.
Table 8. Average symbol rates for H.265/HEVC AI and H.264/AVC LD.
QPLong/Short SeriesBU31, Aggregation on, NL Reduced
H.265/HEVC AIH.264/AVC LD
BU0
R32
BP1
BU31
R32
BP2
BU31
R64
BP2
BU31
R64
BP3
BU0
R32
BP1
BU31
R32
BP2
BU31
R32
BP3
BU31
R64
BP2
BU31
R64
BP3
415/212.6320.1020.1220.135.399.4110.629.4110.62
15/313.2321.6821.7121.715.6510.0911.5910.1311.59
21/215.8027.9630.5931.466.0511.1413.7711.2613.90
21/316.1328.6831.7032.856.2311.5614.6411.7214.79
27/217.7830.5434.8841.186.3911.2814.2612.1615.88
27/317.9630.6835.2241.896.5111.3114.7612.3916.55
1215/213.0018.1618.2018.215.359.6711.399.6811.39
15/313.3718.8918.9318.945.489.9811.9810.0611.98
21/216.2924.4327.4228.145.8910.9914.1011.1914.35
21/316.4424.6327.8128.605.9711.1514.5311.3514.80
27/217.5426.5231.4835.946.1310.7214.0411.8115.76
27/317.5926.5531.6036.116.1810.9114.2711.8416.07
2215/211.9716.9316.9817.005.499.089.969.089.96
15/312.3217.6317.6917.715.839.9711.1410.0111.14
21/214.7722.2425.2526.426.1810.7512.7110.9612.93
21/314.9022.4725.5926.856.4711.4813.9511.7314.23
27/215.7824.4628.3833.476.5611.1013.3612.0314.83
27/315.8324.5528.5733.666.8011.6114.3612.6416.08
3715/29.7214.1314.1714.194.755.425.495.425.49
15/310.1014.9314.9815.005.836.876.996.876.99
21/211.4917.9120.1622.055.786.887.046.907.06
21/311.6818.3020.7122.736.968.548.828.578.85
27/212.0319.3521.8727.716.658.208.488.388.65
27/312.1319.7422.3728.217.879.9110.3910.1810.65
Table 9. Average symbol rates for the H.265/HEVC entropy coder.
Table 9. Average symbol rates for the H.265/HEVC entropy coder.
QPLDAI
BU0 BP1 15/2
[19]
BU31 R64 BP3BU0 BP1
15/2
[19]
BU31 R64 BP3
15/221/227/215/221/227/2
413.2816.6816.8916.9012.6317.6117.4417.44
1210.9411.7711.9311.9312.3614.3914.4814.49
227.517.657.807.8110.6811.7011.8511.86
373.533.543.553.556.636.746.786.78
Table 10. Comparison of different BAC architectures.
Table 10. Comparison of different BAC architectures.
Tsai
[11]
Zhou
[12]
Li
[15]
Ramos [14]15/2, BU0, BP1, R32
[19]
27/2, BU31, BP3, R64
[This Work]
StandardAVCAVC/HEVCHEVCHEVCAVC/HEVCAVC/HEVC
Technology [nm]1309065659090
Symbol rate QP = 2254.36/4.384.634.945.48/10.814.83/28.03
max. frequency [MHz]254420516537570570
max. throughput [Mbin/s]12701831/1839239026533124/61568453/15,977
Gate count [k]10.364.1 1106.5 133101.4246.1
1 CABAC without memory.
Table 11. Comparison of power consumption for H.265/HEVC LD; QP equal to 22.
Table 11. Comparison of power consumption for H.265/HEVC LD; QP equal to 22.
Ramos [16]15/2, BU31,
BP2, R32
27/2, BU31,
BP3, R64
AltET-conf.2
Power [mW]23.1411.7743.9672.51105.10171.10
Technlogy [nm]656565906590
Symbol rate4.312.9913.4713.4728.0328.03
throughput [Mbin/s]226315167678767815,97715,977
Gate count [k]20.7621.2291.22122.1206.8246.1
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Pastuszak, G. Optimization of the Generative Multi-Symbol Architecture of the Binary Arithmetic Coder for UHDTV Video Encoders. Electronics 2023, 12, 4643. https://doi.org/10.3390/electronics12224643

AMA Style

Pastuszak G. Optimization of the Generative Multi-Symbol Architecture of the Binary Arithmetic Coder for UHDTV Video Encoders. Electronics. 2023; 12(22):4643. https://doi.org/10.3390/electronics12224643

Chicago/Turabian Style

Pastuszak, Grzegorz. 2023. "Optimization of the Generative Multi-Symbol Architecture of the Binary Arithmetic Coder for UHDTV Video Encoders" Electronics 12, no. 22: 4643. https://doi.org/10.3390/electronics12224643

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop