Professional Documents
Culture Documents
net/publication/289490072
CITATIONS READS
12 556
2 authors, including:
Ercan Kalali
Delft University of Technology
31 PUBLICATIONS 296 CITATIONS
SEE PROFILE
All content following this page was uploaded by Ercan Kalali on 06 January 2016.
Abstract— High Efficiency Video Coding (HEVC), the tools take C or C++ codes as input, and generate Verilog or
recently developed international video compression standard, has VHDL codes. MATLAB Simulink HDL Coder takes
50% better video compression efficiency than H.264 video MATLAB Simulink models as input, and generates Verilog or
compression standard at the expense of significantly increased VHDL codes.
computational complexity. HEVC Inverse Discrete Cosine
Transform (IDCT) algorithm accounts for 11% of the Since HEVC 2D IDCT performs matrix multiplication
computational complexity of an HEVC video encoder. Recently, operations, it is suitable for HLS implementation. Therefore,
commercial and academic high-level synthesis (HLS) tools are in this paper, the first FPGA implementations of HEVC 2D
started to be successfully used for FPGA implementations of IDCT algorithm using HLS tools in the literature are
digital signal processing algorithms. Therefore, in this paper, the
first FPGA implementations of HEVC 2D IDCT algorithm using
proposed. The proposed HEVC 2D IDCT hardware are
HLS tools in the literature are proposed. The proposed HEVC implemented on Xilinx FPGAs using three HLS tools; Xilinx
IDCT hardware are implemented on Xilinx FPGAs using three Vivado HLS, LegUp, MATLAB Simulink HDL Coder.
HLS tools; Xilinx Vivado HLS, LegUp, MATLAB Simulink HDL
The inputs given to these HLS tools, C codes for Xilinx
Coder. Using HLS tools significantly reduced the FPGA
development time, and the resulting FPGA implementations
Vivado HLS and LegUp and MATLAB Simulink model for
achieved real-time performance. Therefore, HLS tools can be MATLAB Simulink HDL Coder, are developed based on the
used for FPGA implementation of HEVC video encoder. HEVC 2D IDCT software implementation in the HEVC
reference software encoder (HM) version 15 [7]. Two HEVC
Keywords—HEVC, IDCT, FPGA Implementation, HLS. 2D IDCT HLS implementations are done. In one of them, in
the C codes and MATLAB Simulink model multiplications
I. INTRODUCTION with constants are implemented using multiplication
ITU and ISO joint collaborative team on video coding operation. In the other one, they are implemented using
(JCT-VC) recently developed a new international video addition and shift operations.
compression standard called High Efficiency Video Coding
Some of the optimization options of these HLS tools are
(HEVC) [1]-[2]. HEVC has 50% better video compression
used in order to increase performances of the FPGA
efficiency than H.264 video compression standard.
implementations such as pipelining and loop unrolling.
HEVC standard uses Discrete Cosine Transform (DCT) and Verilog RTL codes generated by these three HLS tools for the
Inverse Discrete Cosine Transform (IDCT) same as H.264 two HEVC 2D IDCT HLS implementations are verified to
standard. However, H.264 standard uses only 4x4 and 8x8 work in a Xilinx Virtex 6 FPGA.
Transform Unit (TU) sizes for DCT/IDCT. HEVC standard
Using HLS tools significantly reduced the FPGA
uses 4x4, 8x8, 16x16, and 32x32 TU sizes for DCT/IDCT.
development time. The implementation results show that the
Larger TU sizes achieve better energy compaction. However,
proposed HEVC 2D IDCT FPGA implementations using HLS
they increase the computational complexity exponentially.
achieved real-time performance with acceptable hardware
DCT and IDCT are heavily used in an HEVC encoder [3]- area. Therefore, HLS tools can be used for FPGA
[5]. IDCT has high computational complexity. It accounts for implementation of HEVC video encoder.
11% of the computational complexity of an HEVC video
A few HLS implementations for H.264 video compression
encoder. DCT and IDCT account for 25% of the
standard are proposed in the literature [8]-[11]. There are a
computational complexity of an all intra HEVC video
few HLS implementations based on MPEG reconfigurable
encoder.
video coding [12]-[13]. There are several HLS
Recently, commercial and academic high-level synthesis implementations for image and video processing algorithms
(HLS) tools are started to be successfully used for FPGA such as sorting in the median filter [14]-[17]. Several
implementations of digital signal processing algorithms. The handwritten Verilog RTL implementations for HEVC video
high level synthesis tools accept their inputs in different compression standard are also proposed in the literature [18]-
formats [6]. For example, Xilinx Vivado HLS and LegUp [23].
Because of the multiplications with large coefficients,
truncation and clipping operations are added to HEVC IDCT
after the horizontal 1D transform and the vertical 1D
transform. The truncation operations are shown in (2) and (3).
Ͷ Ͷ Ͷ Ͷ
ͺ͵ ͵ െ͵ െͺ͵
ܶܥܦܫସ௫ସ ൌ൦ ൪ (1)
Ͷ െͶ െͶ Ͷ
͵ െͺ͵ ͺ͵ െ͵