Graphics Reference
In-Depth Information
The corresponding architecture is shown in Fig. 11.17 . It does not need true
CABAC architecture. Instead, it only needs binarization and context part. Additional
lookup table is placed for bin-to-bits conversion. The corresponding number of bits
for 1's and 0's depend on the CTU-based states, which are shared in the global state
memory. Since the state memory is not changed in the CFBAC, the content of each
instances of CFBAC is the same. So we do not need to keep a separate copy for each
CFBAC instances. Multiple CFBAC may share the same state memory.
With this architecture, most of the cost from state memory are saved with only
1:25 % BD rate increase compared to HM, and has higher throughput. The context
memory for CFBAC can be further saved by sharing the state memory with entropy
encoder if the entropy encoder and mode decision engine operate on the same frame.
11.6.4.3
Final Mode Decision and State Update
After the bit count is estimated, mode decision is performed. However, we still need
to update the context memory according to the chosen mode for the bit estimation
of the next CU. This is done by traversing the final mode bits. Since we only need
to know the final states and do not need to do arithmetic coding, we can simplify the
original CABAC process. We may use an nM1L architecture for fast state transition
as follows. For every MPS, the state is always increased by one until the top state
.63/ is reached, we only need to count the number of MPS for state prediction.
For LPS, a 64 entry table lookup is required. As such, we may process n MPS
and one LPS at one time by one table lookup. The speedup is n times compared to
CABAC state architecture, where n depends on the bitstream. This process is fast
and can also be cascaded for higher performance.
11.7
In-Loop Filters
For in-loop filters, there are two filters in HEVC, deblocking filter and sample
adaptive offset (SAO) filter. Compared to H.264/AVC, deblocking filter in HEVC is
simplified. Deblocking may be divided into two passes. Each direction (horizontal or
vertical) is done in one pass. On the other hand, the SAO filter is a new coding tool in
HEVC. It collects statistics of pixel distortion and minimizes the difference between
input samples and reconstructed samples by adding an adaptive offset. SAO filter
types can be chosen from Edge Offset (EO), Band Offset (BO), or unchanged (OFF).
EO performs pixel classification based on edge direction/shape. BO is based on
pixel level. If the pixel is not suitable for SAO, it can be marked as unchanged. SAO
encoding is more complex than deblocking. It consists of offset derivation stage,
and filtering stage. Offset derivation stage collects required statistics information
from original and reconstructed CTU. After that, offsets and types are decided
with the statistics information. Then, the filtering stage will perform offset filtering
according to the offsets and types. In HM, the two in-loop filters are processed
in serial. However, this will cause pipeline to be even longer. Since SAO requires
Search WWH ::




Custom Search