High-Throughput Parallel Architecture for H.265/HEVC Deblocking Filter *

Similar documents
High-Performance VLSI Architecture of H.264/AVC CAVLD by Parallel Run_before Estimation Algorithm *

Parallel Processing Deblocking Filter Hardware for High Efficiency Video Coding

Reducing/eliminating visual artifacts in HEVC by the deblocking filter.

N RISCE 2K18 ISSN International Journal of Advance Research and Innovation

A VLSI Architecture for H.264/AVC Variable Block Size Motion Estimation

A Dedicated Hardware Solution for the HEVC Interpolation Unit

Deblocking Filter Algorithm with Low Complexity for H.264 Video Coding

A Novel Deblocking Filter Algorithm In H.264 for Real Time Implementation

Fast frame memory access method for H.264/AVC

Sample Adaptive Offset Optimization in HEVC

FPGA based High Performance CAVLC Implementation for H.264 Video Coding

High Performance VLSI Architecture of Fractional Motion Estimation for H.264/AVC

A COMPARISON OF CABAC THROUGHPUT FOR HEVC/H.265 VS. AVC/H.264. Massachusetts Institute of Technology Texas Instruments

White paper: Video Coding A Timeline

An HEVC Fractional Interpolation Hardware Using Memory Based Constant Multiplication

Architecture of High-throughput Context Adaptive Variable Length Coding Decoder in AVC/H.264

Reduced 4x4 Block Intra Prediction Modes using Directional Similarity in H.264/AVC

High Efficiency Data Access System Architecture for Deblocking Filter Supporting Multiple Video Coding Standards

A SCALABLE COMPUTING AND MEMORY ARCHITECTURE FOR VARIABLE BLOCK SIZE MOTION ESTIMATION ON FIELD-PROGRAMMABLE GATE ARRAYS. Theepan Moorthy and Andy Ye

A 4-way parallel CAVLC design for H.264/AVC 4 Kx2 K 60 fps encoder

High Efficiency Video Coding (HEVC) test model HM vs. HM- 16.6: objective and subjective performance analysis

ISSCC 2006 / SESSION 22 / LOW POWER MULTIMEDIA / 22.1

COMPARISON OF HIGH EFFICIENCY VIDEO CODING (HEVC) PERFORMANCE WITH H.264 ADVANCED VIDEO CODING (AVC)

A full-pipelined 2-D IDCT/ IDST VLSI architecture with adaptive block-size for HEVC standard

A COST-EFFICIENT RESIDUAL PREDICTION VLSI ARCHITECTURE FOR H.264/AVC SCALABLE EXTENSION

A comparison of CABAC throughput for HEVC/H.265 VS. AVC/H.264

Multimedia Decoder Using the Nios II Processor

A LOW-COMPLEXITY AND LOSSLESS REFERENCE FRAME ENCODER ALGORITHM FOR VIDEO CODING

Sparse Coding based Frequency Adaptive Loop Filtering for Video Coding

High Efficiency Video Decoding on Multicore Processor

High Efficiency Video Coding. Li Li 2016/10/18

Optimized architectures of CABAC codec for IA-32-, DSP- and FPGAbased

OVERVIEW OF IEEE 1857 VIDEO CODING STANDARD

Optimizing the Deblocking Algorithm for. H.264 Decoder Implementation

Design and Implementation of 3-D DWT for Video Processing Applications

Transcoding from H.264/AVC to High Efficiency Video Coding (HEVC)

An Efficient Mode Selection Algorithm for H.264

Fast Decision of Block size, Prediction Mode and Intra Block for H.264 Intra Prediction EE Gaurav Hansda

STUDY AND IMPLEMENTATION OF VIDEO COMPRESSION STANDARDS (H.264/AVC, DIRAC)

Bi-directional optical flow for future video codec

Real-time and smooth scalable video streaming system with bitstream extractor intellectual property implementation

Professor, CSE Department, Nirma University, Ahmedabad, India

[30] Dong J., Lou j. and Yu L. (2003), Improved entropy coding method, Doc. AVS Working Group (M1214), Beijing, Chaina. CHAPTER 4

Lossless Frame Memory Compression with Low Complexity using PCT and AGR for Efficient High Resolution Video Processing

Fast HEVC Intra Mode Decision Based on Edge Detection and SATD Costs Classification

IMPLEMENTATION OF DISTRIBUTED CANNY EDGE DETECTOR ON FPGA

Aiyar, Mani Laxman. Keywords: MPEG4, H.264, HEVC, HDTV, DVB, FIR.

IMPLEMENTATION OF DEBLOCKING FILTER ALGORITHM USING RECONFIGURABLE ARCHITECTURE

EFFICIENT DEISGN OF LOW AREA BASED H.264 COMPRESSOR AND DECOMPRESSOR WITH H.264 INTEGER TRANSFORM

Analysis of Information Hiding Techniques in HEVC.

A NOVEL SCANNING SCHEME FOR DIRECTIONAL SPATIAL PREDICTION OF AVS INTRA CODING

A 120 fps High Frame Rate Real-time Video Encoder

NEW CAVLC ENCODING ALGORITHM FOR LOSSLESS INTRA CODING IN H.264/AVC. Jin Heo, Seung-Hwan Kim, and Yo-Sung Ho

A Motion Vector Predictor Architecture for AVS and MPEG-2 HDTV Decoder

An Efficient Table Prediction Scheme for CAVLC

Smart Bus Arbiter for QoS control in H.264 decoders

EFFICIENT PU MODE DECISION AND MOTION ESTIMATION FOR H.264/AVC TO HEVC TRANSCODER

Edge Detector Based Fast Level Decision Algorithm for Intra Prediction of HEVC

A Computation and Energy Reduction Technique for HEVC Discrete Cosine Transform

Chapter 10. Basic Video Compression Techniques Introduction to Video Compression 10.2 Video Compression with Motion Compensation

HEVC. Complexity Reduction Algorithm for Quality Scalability in Scalable. 1. Introduction. Abstract

BANDWIDTH-EFFICIENT ENCODER FRAMEWORK FOR H.264/AVC SCALABLE EXTENSION. Yi-Hau Chen, Tzu-Der Chuang, Yu-Jen Chen, and Liang-Gee Chen

Pattern based Residual Coding for H.264 Encoder *

H.264/AVC BASED NEAR LOSSLESS INTRA CODEC USING LINE-BASED PREDICTION AND MODIFIED CABAC. Jung-Ah Choi, Jin Heo, and Yo-Sung Ho

CONTENT ADAPTIVE COMPLEXITY REDUCTION SCHEME FOR QUALITY/FIDELITY SCALABLE HEVC

Area and Power efficient MST core supported video codec using CSDA

Parallel graph traversal for FPGA

Research Article A High-Throughput Hardware Architecture for the H.264/AVC Half-Pixel Motion Estimation Targeting High-Definition Videos

10.2 Video Compression with Motion Compensation 10.4 H H.263

Memory-Efficient and High-Speed Line-Based Architecture for 2-D Discrete Wavelet Transform with Lifting Scheme

Habermann, Philipp Design and Implementation of a High- Throughput CABAC Hardware Accelerator for the HEVC Decoder

Department of Electrical Engineering

(JBE Vol. 23, No. 6, November 2018) Detection of Frame Deletion Using Convolutional Neural Network. Abstract

An Efficient Hardware Architecture for H.264 Transform and Quantization Algorithms

DUE to the high computational complexity and real-time

Low power context adaptive variable length encoder in H.264

MPEG-2. ISO/IEC (or ITU-T H.262)

Homogeneous Transcoding of HEVC for bit rate reduction

One-pass bitrate control for MPEG-4 Scalable Video Coding using ρ-domain

Analysis of Motion Estimation Algorithm in HEVC

Upcoming Video Standards. Madhukar Budagavi, Ph.D. DSPS R&D Center, Dallas Texas Instruments Inc.

H.264/AVC Baseline Profile to MPEG-4 Visual Simple Profile Transcoding to Reduce the Spatial Resolution

Adaptive Up-Sampling Method Using DCT for Spatial Scalability of Scalable Video Coding IlHong Shin and Hyun Wook Park, Senior Member, IEEE

HEVC The Next Generation Video Coding. 1 ELEG5502 Video Coding Technology

Analysis and Architecture Design of Variable Block Size Motion Estimation for H.264/AVC

H.264 to MPEG-4 Transcoding Using Block Type Information

Multi-View Image Coding in 3-D Space Based on 3-D Reconstruction

Frequency Band Coding Mode Selection for Key Frames of Wyner-Ziv Video Coding

ENCODER COMPLEXITY REDUCTION WITH SELECTIVE MOTION MERGE IN HEVC ABHISHEK HASSAN THUNGARAJ. Presented to the Faculty of the Graduate School of

Objective: Introduction: To: Dr. K. R. Rao. From: Kaustubh V. Dhonsale (UTA id: ) Date: 04/24/2012

MediaTek High Efficiency Video Coding

Low-cost Multi-hypothesis Motion Compensation for Video Coding

Design of a High Speed CAVLC Encoder and Decoder with Parallel Data Path

Video compression with 1-D directional transforms in H.264/AVC

Implementation and analysis of Directional DCT in H.264

Lecture 13 Video Coding H.264 / MPEG4 AVC

Analysis of 3D and Multiview Extensions of the Emerging HEVC Standard

An Infrastructural IP for Interactive MPEG-4 SoC Functional Verification

A Quantized Transform-Domain Motion Estimation Technique for H.264 Secondary SP-frames

Welcome Back to Fundamentals of Multimedia (MR412) Fall, 2012 Chapter 10 ZHU Yongxin, Winson

Transcription:

JOURNAL OF INFORMATION SCIENCE AND ENGINEERING 30, 281-294 (2014) High-Throughput Parallel Architecture for H.265/HEVC Deblocking Filter * HOAI-HUONG NGUYEN LE AND JONGWOO BAE 1 Department of Information and Communication Engineering Myongji University Gyeonggi-Do, 449-728 Korea A novel parallel VLSI architecture is proposed in order to improve the performance of the H.265/HEVC deblocking filter. The overall computation is pipelined, and a new parallel-zigzag processing order is introduced to achieve high throughput. The processing order of the filter is efficiently rearranged to process the horizontal edges and vertical edges at the same time. The proposed H.265/HEVC deblocking filter architecture improves the parallelism by dissolving the data dependency between the adjacent filtering operations. Our design is also compatible with H.264/AVC. Experimental results demonstrate that our architecture shows the best performance compared with other architectures known so far at the expense of the slightly increased gate count. We improve the performance by 52.3%, while the area is increased by 25.8% compared with the previously known best architecture for H.264/AVC. The operating clock frequency of our design is 226 MHz in TSMC LVT 65 process. The proposed design delivers the performance to process 1080p HD at 60 fps. Keywords: video compression, H.265/HEVC, deblocking filter, VLSI design, parallel processing 1. INTRODUCTION International Telecommunication Union (ITU) introduced a new H.265 video compression standard for high definition and ultra-high definition applications [1]. H.265, known as High Efficiency Video Coding (HEVC), is expected to be more efficient than its predecessor H.264/AVC. The compression performance of H.265/HEVC is twice as high as that of H.264/AVC at the expense of increased computational complexity. Moreover, H.265/HEVC improves the algorithm to support parallel processing more easily. The deblocking filter of H.265/HEVC or H.264/AVC plays an important role in the video coding system. Fig. 1 shows the operation of H.265/HEVC encoder. The deblocking filter reduces the blocking artifacts occurring from the quantization of transform coefficients and the block-based motion compensation. The data dependency in H.264/ AVC limits the parallelism of the design [2-4]. H.265/HEVC improves the parallelism by removing the data dependency between the adjacent filtering operations [5]. The crucial point when designing the deblocking filter is to decide whether to filter or not, in addition to the strength of the filter to be applied. If the filtering is decided, it is applied to each edge of the blocks. The detailed algorithm of the deblocking filter is presented in the H.265/HEVC standard specification [6]. Several deblocking filter architectures have Received March 26, 2013; accepted May 29, 2013. Communicated by Cho-Li Wang. * This research was supported by Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Education, Science and Technology (2012-0007468). 1 Dr. Bae is the corresponding author. 281

282 HOAI-HUONG NGUYEN LE AND JONGWOO BAE Fig. 1. Block diagram of H.265/HEVC video encoder. been tried to break the sequential order in H.264/AVC [7-9]. However, these architectures are still limited by the data dependency, and the degree of parallelism is very low. The issues for parallel processing have always been challenges in the deblocking filter design in recent years. Herein, we propose a high-throughput parallel architecture for the H.265/HEVC deblocking filter based on a parallel-zigzag processing order. The proposed architecture also supports the H.264/AVC deblocking filter. The parallel filter architecture simultaneously performs both horizontal and vertical filter operations. We focus on the improvement of the processing time and operating clock frequency. Since the deblocking filter is one of the most computationally demanding parts of the video codec, our work affects the improvement of the performance of the entire video codec. This paper is organized as follows. In Section 2, the related works are introduced. In Section 3, the proposed algorithm and architecture are explained in detail. In Section 4, experimental results are provided. Finally, Section 5 concludes the paper. 2. RELATED WORKS In H.265/HEVC, each frame is divided into Coding Tree Units (CTUs). Each CTU usually consists of three blocks, namely luminance block (Y) and two chrominance blocks (Cr and Cb), and associated syntax elements. Each block is called Coding Tree Block (CTB). The CTB can be split into multiple coding blocks and the size of coding blocks may be various, for example 8 8, 16 16, 32 32 or 64 64 [10]. In this paper, we consider the case of a 32 32 luminance coding block and two 16 16 chrominance coding blocks for illustration. In H.265/HEVC, the deblocking filter is applied on the 8 8 coding blocks instead of 4 4 blocks as in H.264/AVC. Fig. 2 shows the horizontal edges and the vertical edges between adjacent 8 8 blocks of the 32 32 coding block.

PARALLEL ARCHITECTURE FOR H.265/HEVC DEBLOCKING FILTER 283 Fig. 2. Horizontal and vertical edges between adjacent 8 8 blocks of the 32 32 luminance coding block. The deblocking filter performs the filtering operation on the horizontal and vertical edges between the adjacent 8 8 blocks. The deblocking filter in H.265/HEVC is applied on the four-pixel length of each 8 8 block boundary. In Fig. 2, for instance, two block edges need to be filtered. The pixels p3, p2, p1, and p0 of block B5 and the pixels q7, q6, q5, and q4 of block B6 are filtered for the vertical block edge 1. The pixels q3, q2, q1, and q0 of block B6 and the pixels r7, r6, r5, and r4 of block B7 are filtered for the vertical block edge 2. There is no data dependency between the horizontal filtering of the block edge 1 and 2. Therefore, the filtering of the block edge 1 and 2 can be performed in parallel to reduce the processing time. Note that sequential dependency exists between the filterings of the block edge 1 and the block edge 2 for H.264/AVC since the block size is 4 4 and the filter length is eight. This is the major difference between the deblocking filters of H.264/AVC and H.265/HEVC. More parallelism can be achieved for H.265/HEVC deblocking filter. The filtering operation in H.264/AVC is always done from left to right and from top to bottom. Chrominance blocks are filtered in a similar order of the luminance block. According to the above rule, several processing orders are proposed as shown in Fig. 3. The basic deblocking filter processing order is presented in Fig. 3 (a) [7]. There are 48 edges, including luminance and chrominance blocks, filtered in the order shown in Fig. 3 (a). The filtering operation begins at the vertical edge 1 which is between two adjacent 4 4 luminance blocks E1 and B1. Because the filtered pixels on which the vertical filter operation is performed are used for the horizontal filtering later, these values can be stored in the on-chip SRAM. Hence, the size of the on-chip SRAM and the access time increase substantially. In order to save the size of the on-chip SRAM, more advanced filter processing order has been tried as shown in Fig. 3 (b) [11]. The filtering order is rearranged in a way that the 4 4 block is directly fed into the horizontal edges after filtering the vertical edges (horizontal filters 1, 2 and vertical filter 3) without being stored

284 HOAI-HUONG NGUYEN LE AND JONGWOO BAE in the on-chip SRAM. Thus, the memory is reduced to one third of that required for the basic deblocking filter processing order shown in Fig. 3 (a). (a) (b) Fig. 3. Various H.264/AVC filter processing orders. Based on the processing order, several different H.264/AVC deblocking filter architectures have been presented. Huang [7] used a shift array to support both the horizontal filter and vertical filter on a same circuit. However, this method is basically sequential, and the proposed parallel method was not demonstrated clearly. Vijay [8] showed how the algorithm could be modified to process multiple consecutive edges at the same time. Nevertheless, the detailed architecture and the experimental results were not clearly provided. Chen [9] proposed a new processing order with area-efficient VLSI architecture which simultaneously processed the horizontal filtering of vertical edges and the vertical filtering of horizontal edges. Their major idea is to reduce the number of memory accesses. However, the processing time of the design is still relatively high. Therefore, it is not suitable for the large resolution video applications such as HD or UHD. In this paper, we propose a parallel deblocking filter architecture to overcome these disadvantages. In the next section, our proposed architecture is explained in detail. 3. THE PROPOSED ARCHITECTURE 3.1 Proposed Parallel-Zigzag Processing Order In H.265/HEVC, the vertical edges are filtered first, followed by the horizontal edges. Fig. 4 shows the detailed processing order. For the luminance block, the deblocking filter performs the parallel processing to simultaneously execute two parallel horizontal filterings and two parallel vertical filterings. The order of the horizontal filter is from left to right and top to bottom. In step 1, the horizontal filter operations between blocks E1 and B1 are performed first. The horizontal filter operations between blocks B1 and B2 are also performed simultaneously. Then the horizontal filter operations between blocks B2 and B3 are performed in step 2. The horizontal filter operations between blocks B3 and B4 are also performed simultaneously. The processes of the next rows are similar to that of the first row. In order to reduce the external memory accesses, the coding blocks

PARALLEL ARCHITECTURE FOR H.265/HEVC DEBLOCKING FILTER 285 Fig. 4. The proposed parallel-zigzag processing order. can be stored in the on-chip memory, and then reused for the next vertical filters. A RAM transposer is used to transpose the stored data from row to column for the vertical filter. Beginning at step 4, the vertical filter operations between blocks F1 and B1 are performed first. The vertical filter operations between blocks B1 and B5 are also performed simultaneously. Then the vertical filter operations between blocks F2 and B2 are performed in step 5. The vertical filter operations between blocks B2 and B6 are also performed simultaneously. The processes of the next columns are similar to that of the first column. The process of each data flow in two chrominance blocks is similar to that in the luminance block. According to this computation order, the deblocking filter of the coding block can be finished within only eleven steps. Fig. 5. The block diagram of the proposed parallel deblocking filter architecture. 3.2 The Proposed Parallel Deblocking Filter Architecture In this paper, a high-throughput parallel architecture employing a parallel-zigzag processing order is proposed. Fig. 5 shows the proposed deblocking filter architecture. There are five main components in this architecture. The first component is the two block memories to store the data received from an external memory. Each memory is a 32 32 bit dual-port SRAM. Block Memory 1 is used to store the left neighbor blocks (E1-E8) for Filter Unit 1. Block Memory 2 is used to store the top neighbor blocks (F1-F8) for Filter Unit 3. The second component is Filter Units including two horizontal filters and

286 HOAI-HUONG NGUYEN LE AND JONGWOO BAE two vertical filters. Filter Unit 1 and Filter Unit 2 are two horizontal filter modules, HF 1 and HF 2. Filter Unit 3 and Filter Unit 4 are two vertical filter modules, VF 3 and VF 4. In addition, the luminance and chrominance deblocking filter architectures are separated and executed at the same time. The third component is Derivation of Threshold Variables generating the threshold variables and t C from the input quantization parameter (QP). In addition, a RAM Transposer, which is used to transpose the data flow of 8 8 blocks from row to column in order to help reuse the data of the horizontal filter for the vertical filter without storing back to the memory. The details of Filter Unit, Derivation of Threshold Variables, and RAM Transposer will be explained in the following subsections. The other two components in the proposed architecture are Splitter and Combine. The coding block is divided into two parts by Splitter to be transferred to two filter modules. After splitting the coding block, Combine will merge them into the original coding block to be transferred to Block Buffer. We assume that 8 pixels are the input into Splitter at every clock cycle. It takes 8 clock cycles to load an 8 8 block. Finally, to control the operations of the above-mentioned components, Administration is used to generate the control signals. In addition, to increase the throughput, our design can achieve more parallelism if the increased hardware size and I/O bandwidth are acceptable. There is no data dependency between the adjacent blocks in the same row and between the adjacent blocks in the same column. Therefore, all the blocks B1-B16 shown in Fig. 4 can be performed in parallel both for the horizontal filtering first, and then the vertical filtering. We can increase the degree of parallelism up to sixteen. To explain the proposed parallel-zigzag processing order and the parallel deblocking filter architecture more easily, the parallel data flow is shown in Table 1. After eight clock cycles, the coding block and its neighbor block are transferred to Filter Unit and the two horizontal filters operate first. For the first Filter Unit HF 1, the data of block E1 is read from Block Memory 1. Then the first-part data of block B1 as shown in Fig. 6 is received from the external memory through Splitter 1. At the same time, the second Filter Unit HF 2 receives the second-part data of block B1 and the first-part data of block B2 from the external memory through Splitter 1 shown in Fig. 6. Two vertical edges of the blocks E1 and B1, and the blocks B1 and B2 are filtered simultaneously. Then, the data of block B1 is combined together and stored in RAM Transposer to be transposed from row to column for the Vertical Filter. At the next eight clock cycles, the second-part data of block B2 and the first-part data of block B3 as shown in Fig. 6 are read from Splitter 1 and transferred to HF 1. Similarly, the second-part data of block B3 and the first-part data of block B4 as shown in Fig. 6 are read from Splitter 1 and transferred to HF 2. Two vertical edges of the blocks B2 and B3, and the blocks B3 and B4 are filtered simultaneously. The blocks E2, B5, and B6 are filtered in the same manner. At step 4 (the twenty-fifth clock cycle), the Vertical Filters start to filter the pixels in the horizontal edges while the Horizontal Filters continue to filter the pixels in the vertical edges. The data of block F1 are read from Block Memory 2 and transferred to VF 1. The third-part data of block B1 is received from RAM Transposer, and transferred to VF 1. At the same time, Vertical Filter VF 2 receives the fourth-part data of block B1 and the third-part data of block B5 from RAM Transposer through Splitter 2. Two horizontal edges of the blocks F1 and B1, and the blocks B1 and B5 are filtered simultaneously. The block B1 has now finished the filtering with the adjacent blocks four times. Then the block B1 is transferred to the output bus through Combine 2. In the next steps,

PARALLEL ARCHITECTURE FOR H.265/HEVC DEBLOCKING FILTER 287 the data flow is processed in a similar fashion. The proposed parallel deblocking filter architecture can be used for H.264/AVC video codec. Since the deblocking filter in H.264/AVC is only applied on the 4 4 blocks, the data flow of the H.264/AVC deblocking filter is slightly different to that of the H.265/HEVC deblocking filter. The deblocking process also begins with two horizontal filters. After the first and second rows in the coding block are performed, the two vertical filters start to filter the pixels. For illustration, consider the blocks in Fig. 4. The horizontal filter operations between block E1 and B1 are performed first at step 1. The horizontal filter operations between blocks E2 and B5 are also performed simultaneously. Then the horizontal filter operations between blocks B1 and B2 are performed in step 2. The horizontal filter operations between blocks B5 and B6 are also performed simultaneously. The horizontal filter operations between blocks B3 and B4 are performed in step 3. The horizontal filter operations between blocks B7 and B8 are also performed simultaneously. The horizontal filter processes of the next rows are similar to that of the first and the second rows. The filtered pixels are stored in the on-chip memory, and then reused for the next vertical filters. Beginning at step 4, the vertical filter operations between blocks F1 and B1 are performed first. The vertical filter operations between blocks F2 and B2 are also performed simultaneously. Then the vertical filter operations between blocks F3 and B3 are performed in step 5. The vertical filter operations between blocks F4 and B4 are also performed simultaneously. The vertical filter processes of the next rows are similar to that of the first row. According to this computation order, the H.264/AVC deblocking filter efficiently operates when compared to other H.264/AVC deblocking filters. In this situation, Splitter and Combine modules are not used, and the processing time becomes faster than that of H.265/HEVC. Therefore, our proposed parallel deblocking filter architecture can be used not only for H.265/HEVC but also for H.264/AVC. However, our design in H.264/AVC deblocking filter cannot achieve such high parallelism as that in H.265/HEVC deblocking filter since the limitation of the sequential dependency. Since the data dependency between the adjacent H.264/AVC blocks in the same row, the parallelism can just be achieved between the adjacent blocks in the same column. For instance, the horizontal filter operations between blocks E1 and B1, blocks E2 and B5, blocks E3 and B9, and blocks E4 and B13 can be performed simultaneously. As mentioned above, for H.265/HEVC, all the blocks B1-B16 can be filtered in parallel for the horizontal or vertical filtering. Therefore, high parallelism can be accomplished in H.265/HEVC. Table 1. The data flow of the proposed parallel deblocking filter architecture. Step Filter 1 2 3 4 5 6 7 8 9 10 11 HF 1_L E1 ½ B2 (2) E2 ½ B6 (2) E3 ½ B10 (2) E4 ½ B14 (2) HF 1_R ½ B1 (1) ½ B3 (1) ½ B5 (1) ½ B7 (1) ½ B9 (1) ½ B11 (1) ½ B13 (1) ½ B15 (1) HF 2_L ½ B1 (2) ½ B3 (2) ½ B5 (2) ½ B7 (2) ½ B9 (2) ½ B11 (2) ½ B13 (2) ½ B15 (2) HF 2_R ½ B2 (1) ½ B4 (1) ½ B6 (1) ½ B8 (1) ½ B10 (1) ½ B12 (1) ½ B14 (1) ½ B16 (1) VF 1_U F1 F2 F3 F4 ½ B5 (4) ½ B6 (4) ½ B7 (4) ½ B8 (4) VF 1_D ½ B1 (3) ½ B2 (3) ½ B3 (3) ½ B4 (3) ½ B9 (3) ½ B10 (3) ½ B11 (3) ½ B12 (3) VF 2_U ½ B1 (4) ½ B2 (4) ½ B3 (4) ½ B4 (4) ½ B9 (4) ½ B10 (4) ½ B11 (4) ½ B12 (4) VF 2_D ½ B5 (3) ½ B6 (3) ½ B7 (3) ½ B8 (3) ½ B13 (3) ½ B14 (3) ½ B15 (3) ½ B16 (3)

288 HOAI-HUONG NGUYEN LE AND JONGWOO BAE where ½Bx (1) : the first-part data of block Bx, ½Bx (2) : the second-part data of block Bx, ½Bx (3) : the third-part data of block Bx, ½Bx (4) : the fourth-part data of block Bx as shown in Fig. 6. Fig. 6. Illustration of the data partition in a block. Fig. 7. The proposed filter unit. 3.2.1 Filter unit The architecture of Filter Unit is shown in Fig. 7. The most important design in Filter Unit is Filter Operator, which makes several decisions on filtering of each edge and the mode of operation. The proposed Filter Unit has four modules as follows: A. Computation of Boundary Strength (Bs) The strength of deblocking filter in H.265/HEVC is controlled by the value of several syntax elements similar to that of H.264/AVC except that only three strengths from 0 to 2 are used rather than five. There are two filter modes: strong and weak for the deblocking filter. For the luminance component, only block boundaries with Bs values equal to 1 or 2 are filtered. The filter modes are defined and selected based on the Bs value. The Computation of Boundary Strength is used to determine the Bs value. Fig. 8 shows the flowchart of the boundary strength determination. B. The decision of ds

PARALLEL ARCHITECTURE FOR H.265/HEVC DEBLOCKING FILTER 289 If Bs is greater than zero, the decision of ds is applied on the deblocking of each edge. It decides whether to filter or not and the filter mode operation. Fig. 9 shows the flowchart of the decision of ds. Fig. 8. The flowchart of the boundary strength determination. Fig. 9. The flowchart of decision of ds. For each edge, the decision of ds and the filtering operation are performed as explained as follows. In the first step, the following condition is checked to decide whether the deblocking filter is applied or not: d = d 0 + d 3 = p2 0 2p1 0 + p0 0 + p2 3 2p1 3 + p0 3 + q2 0 2q1 0 + q0 0 + q2 3 2q1 3 + q0 3 <. (1) where the threshold depends on QP. Only the first and the fourth lines in a block boundary of length 4 are evaluated to avoid unnecessary complexity. If d is smaller than, the filter is applied to the edge, otherwise not. Whether to apply a strong or weak de-

290 HOAI-HUONG NGUYEN LE AND JONGWOO BAE blocking is also determined based on the first and the fourth lines across the block boundary of four samples. In the second step to determine the filter mode operation, the following condition is investigated: ds = d < ( 2)^( p3 i p0 i + q3 i q0 i < ( 3))^( p0 i q0 i < ((5t c 1)) (2) where i = 0, 3. If these sequences of deblocking filtering decision are true, the strong filter is selected. Otherwise, a weak filter is selected. The threshold variables and t C are derived from input QP. C. Decoder Based on the information of Computation of Boundary Strength and Decision of ds, Decoder decides which pixel should be filtered. When Bs is equal to 0, no filtering is applied. When Bs is not equal to 0 and d is not smaller than, no filtering is applied either. When Bs and ds are not equal to 0, the strong filter is applied while the number of filtered samples nd is set equal to 3. Otherwise, if ds is equal to 0, the weak filter is applied while the number of filtered samples nd is set equal to 2. In addition, the control signal to distinguish between the luminance and chrominance components is also sent to Decoder. Decoder will generate the final decisions to Filter Operator. D. Filter Operator Filter Operator is the most important module in Filter Unit. After receiving the value of Bs and checking several conditions, Filter Operator starts to filter pixels and executes two filter modes: strong and weak. For Bs = 1 or 2, if the condition (1) is satisfied, the values p0, p1, q0, and q1 are the filtered pixels in the weak filter. The weak filter operations are as follows: = (9*(q0 i p0 i ) 3*(q1 i p1 i ) + 8) >> 4 = Clip3( t C, t C, ) p0 i = Clip1 Y (p0 i + ) and q0 i = Clip1 Y (q0 i ) p = Clip3( (t C >> 1), t C >> 1, (((p2 i + p 0 + 1) >> 1) p1 i + ) >> 1) q = Clip3( (t C >> 1), t C >> 1, (((q2 i + q0 i + 1) >> 1) q1 i ) >> 1) p1 i = Clip1 Y (p1 i + p) and q1 i = Clip1 Y (q1 i + q) where i = 0 7. For Bs = 1 or 2, if the conditions (1) and (2) are satisfied, the strong filter is applied. Then, p0 to p2 and q0 to q2 are the filtered pixels, and the filter operations are as follows: p0 i = Clip3 (p0 i 2*t C, p0 i + 2*t C, (p 2 + 2*p1 i + 2*p0 i + 2*q0 i + q1 i + 4) >> 3) p1 i = Clip3 (p1 i 2*t C, p1 i + 2*t C, (p2 i + p1 i + p0 i + q0 i + 2) >> 2) p2 i = Clip3 (p2 i 2*t C, p2 i + 2*t C, (2*p3 i + 3*p2 i + p1 i + p0 i + q0 i + 4) >> 3) q0 i = Clip3 (q0 i 2*t C, q0 i + 2*t C, (p1 i + 2*p0 i + 2*q0 i + 2*q1 i + q2 i + 4) >> 3) q1 i = Clip3 (q1 i 2*t C, q1 i + 2*t C, (p0 i + q0 i + q1 i + q2 i + 2) >> 2) q2 i = Clip3 (q2 i 2*t C, q2 i + 2*t C, (p0 i + q0 i + q1 i + 3*q2 i + 2*q3 i + 4) >> 3) where i = 0 7.

PARALLEL ARCHITECTURE FOR H.265/HEVC DEBLOCKING FILTER 291 3.2.2 RAM Transposer Since the deblocking filter is used for filtering the vertical edges as well as the horizontal edges, the 8 8 blocks need to be transposed before filtering the vertical edges. An 8 8 RAM Transposer architecture is shown in Fig. 10. Each block of a transposed array is eight flip-flops that store eight 8-bit pixels. The dataflow of the 8 8 transposed arrays are controlled by multiplexors. The outputs of the eight flip-flops are connected to the multiplexors which arrange the data from row to column for filtering the horizontal edges. Fig. 10. The 8 8 RAM Transposer architecture. 4. EXPERIMENTAL RESULTS To assess the performance of the proposed algorithm and VLSI architecture, we implemented it in Verilog HDL and synthesized it in TSMC LVT 65 process. However, there was no published work for H.265/HEVC deblocking filter yet, so we could not compare the design results with any other H.265/HEVC deblocking filter. However, our design supports H.264/AVC too. We compared the design results with H.264/AVC deblocking filters. Seven previous design results for H.264/AVC were classified as follows: a basic + single-port, dual arrays + single-port SRAM, 2D deblocking filter, dual-port SRAM, SPA parallel with 8EFO, Win44 dual-port SRAM, and Win44 parallel dual-port SRAM. The clock cycle count and the gate count were the major comparison factors as shown in Table 2. The array architecture of [7] used interleaved memory organization and a pixel array with reconfigurable data path to support one parallel-in parallel-out reconfigurable 1D filter. The area of this design was the smallest in Table 2. However, the clock cycle count was very large. Making good use of the data dependency, a new processing order could reduce the requirement of on-chip SRAM bandwidth and increased the throughput

292 HOAI-HUONG NGUYEN LE AND JONGWOO BAE of the filter processing. According to the order, the 2-D deblocking filter of [12] was proposed. The number of clock cycles taken by this method was only the half of the previous design [7]. However, the processing time still took too long to handle the large resolution video applications such as HD and UHD. The processing capability of the deblocking filter architectures in [14] was very appropriate for real-time deblocking of HD video. However, these architectures led to a large gate count. The number of clock cycles of our proposed architecture was the smallest in Table 2. Considering the clock cycle count and the gate count of the architectures in Table 2, our proposed architecture was the best choice in terms of the clock cycle count. Table 2 summarizes the comparison of the seven architectures in term of clock cycle count and the gate count. The gate account of our proposed deblocking filter architecture is 41.77 Kgates which is slightly larger than the average gate count of 31.66 Kgates in Table 2. The cycle count is investigated for the basic video QCIF and the large resolution video applications HDTV. Applying the proposed parallel-zigzag processing order, our design takes eleven steps for the first coding block and eight steps for the next ones in the pipelined fashion. Every step is eight clock cycles. Therefore, our design takes 1,624 clock cycles for one QCIF frame and 129,624 clock cycles for one HDTV frame. Table 2. Comparison with the previous architectures. Design Architecture Cycle count for QCIF Per Frame Gate count Huang [7] Basic+Single-port SRAM 504 99=49896 (1) 18.91K (1) Huang [7] Dual Arrays+Single-port SRAM 408 99=40392 (0.81) 20.66K (1.1) Sheng [12] 2D Deblocking filter 286 99=28314 (0.57) 24K (1.27) Chen [13] Dual-port SRAM 240 99=23760 (0.48) 22K (1.16) Chen [14] SPA parallel with 8EFO 3313 (0.07) 58.64 (3.1) Chen [14] Win44 Dual-port SRAM 9892 (0.2) 14.75K (0.78) Chen [14] Win44 parallel Dual-port SRAM 2473 (0.05) 52.55K (2.78) Proposed work Parallel Deblocking filter (11+8 24) 8=1624 (0.03) 41.77K (2.2) Table 3 shows the comparison of the maximum data size and the operating clock frequency between different architectures. Our pipelined architecture can reach a high operating clock frequency of 226 MHz which can perform a real-time deblocking filter of large resolution video of 1080p HD at 60fps. Table 3. Performance Comparison with previous architectures. Design Architecture Resolution fps Max clock frequency Huang [7] Basic+Single-port SRAM 1280 720 31.6 100 MHz Huang [7] Dual Arrays+Single-port SRAM 1280 720 45.2 100 MHz Sheng [12] 2D Deblocking filter 1280 720 62.3 100 MHz Chen [14] Win44 parallel Dual-port SRAM 1920 1080 60 60 MHz Proposed work Parallel Deblocking filter 1920 1080 60 226 MHz

PARALLEL ARCHITECTURE FOR H.265/HEVC DEBLOCKING FILTER 293 5. CONCLUSION In this paper, we presented a novel high-performance VLSI architecture of deblocking filter for H.265/HEVC video coding. The proposed parallel deblocking filter architecture is based on a new parallel-zigzag processing order. There is no published work of H.265/HEVC deblocking filter to compare with. Besides, our architecture is backward compatible for H.264/AVC. As shown in the experimental results, our design achieved high processing performance at the expense of slightly increased size even when compared with the designs for H.264/AVC. We improved the clock cycles by 52.3%, and the area is increased by 25.8% when compared with the design of the best known architecture of Chen [14]. Various designs were compared with the proposed one. The experimental results showed that our design was the best choice considering the performance and the size. Our architecture can be used for high performance HD video applications up to 1080p at 60fps. REFERENCES 1. G. J. Sullivan, J. R. Ohm, W. J. Han, and T. Wiegand, Overview of the high efficiency video coding (HEVC) standard, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 22, 2012, pp. 1649-1668. 2. Y. W. Huang, T. W. Chen, B. Y. Hsieh, T. C. Wang, T. H. Chang, and L. G. Chen, Architecture design for de-blocking filter in H.264/JVT/AVC, in Proceedings of IEEE International Conference On Multimedia and Expo, Vol. 1, 2003, pp. 693-696. 3. C. C. Cheng and T. S. Chang, An hardware efficient deblocking filter for H.264/ AVC, IEEE Consumer Electronics, 2005, pp. 235-236. 4. B. Seng, W. Gao, and D. Wu, An implemented architecture of deblocking filter for H.264/AVC, in Proceedings of International Conference on Image Processing, 2004, pp. 665-668. 5. A. Norkin, G. Bjøntegaard, A. Fuldseth, M. Narroschke, M. Ikeda, K. Andersson, M. Zhou, and G. V. Auwera, HEVC deblocking filter, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 22, 2012, pp. 1746-1754. 6. Joint Collaborative Team on Video Coding (JCT-VC), High Efficiency Video Coding (HEVC) Range Extensions text specification, ITU-T SG16WP3 and ISO/IEC JTC1/SC29/WG11, 12 th Meeting: Geneva, CH, 2013. 7. Y. W. Huang, T. W. Chen, B. Y. Hsieh, T. C. Wang, T. H. Chang, and L. G. Chen, Architecture design for deblocking filter in H.264/JVT/AVC, in Proceedings of International Conference on Multimedia and Expo, Vol. 1, 2003, pp. 693-696. 8. S. Vijay, C. Chakrabarti, and L. J. Karam, Parallel deblocking filter for H.264 AVC/ SVC, in Proceedings of IEEE Workshop On Signal Processing Systems, 2010, pp. 116-121. 9. C. M. Chen and C. H. Chen, An efficient pipeline architecture for deblocking filter in H.264/AVC, IEICE Transactions on Information and Systems, Vol. E90-D, 2007, pp. 99-107. 10. C. M. Fu, E. Alshina, A. Alshin, Y. W. Huang, C. Y. Chen, C. Y. Tsai, C. W. Hsu, S. M. Lei, J. H. Park, and W. J. Han, Sample adaptive offset in the HEVC standard,

294 HOAI-HUONG NGUYEN LE AND JONGWOO BAE IEEE Transactions on Circuits and Systems for Video Technology, Vol. 22, 2012, pp. 1755-1764. 11. B. Sheng, W. Gao, and D. Wu, An implemented architecture of deblocking filter for H.264/AVC, in Proceedings of International Conference on Image Processing, 2004, pp. 665-668. 12. B. Sheng, W. Gao, and D. Wu, An implemented architecture of deblocking filter for H.264/AVC, in Proceedings of IEEE International Conference on Image Processing, Vol. 1, 2004, pp. 665-668. 13. C. M. Chen and C. H. Chen, An efficient architecture for deblocking filter in H.264/ AVC video coding, in Proceedings of IASTED International Conference on Computer Graphics and Imaging, 2005, pp. 177-181. 14. C. M. Chen and C. H. Chen, Configurable VLSI architecture for deblocking filter in H.264/AVC, IEEE Transactions on Very Large Scale Integration Systems, Vol. 16, 2008, pp. 1072-1082. Hoai-Huong Nguyen Le received B.S. degree in Electronic and Telecommunication Engineering in 2010 from the Da Nang University, Viet Nam. From 2010 to 2011, she was an Assistant Lecturer at Department of Electronic and Telecommunication Engineering, Vietnam Korea Friendship Information Technology College. Currently, she is a graduate student at Department of Information and Communications Engineering, Myongji University, South Korea. Her research interests include VLSI design, hardware architecture, and processors. Jongwoo Bae received a B.S. degree in Control and Instrumentation from Seoul National University, Korea, in 1988, and M.S. degree and Ph.D. in Computer Engineering from the University of Southern California in 1989 and 1996, respectively. Dr. Bae worked as a hardware and software engineer for Actel, Avanti, and Pulsent Co. in San Jose, CA, from 1996 to 2002. He worked as a principal engineer in the Samsung Electronics System LSI Division from 2003 to 2007. He is currently an Associate Professor in the Department of Information and Communications Engineering, College of Engineering at Myongji University, Korea. His research interests include VLSI design, image/video processing, digital TV, and processors.