This paper presents an image compression algorithm based on neural network with almost real-time response, to address the difficulty of real-time video transmission and compression. After giving the structure of the neural network based video compression system, the self-learning algorithm of neural network is presented. Then, the neuron activation function is optimised using a linear approximation and the designs of the typical modules based on FPGA are proposed. Finally, the overall performance of the image compression algorithm was verified on DSPbuilder and Matlab. Introduction The main problems faced by digital image processing are the huge data to be processed, especially for video images. In practical applications, such video images are needed to be transmitted and exchanged among different users, for which large files should be compressed in order to reduce the cost of network resources [1]. Neural network is composed of a large number of simple neuron models to simulate the function of the human brain, e.g., the function of associative memory and reasoning thinking. It is a nonlinear adaptive power system, but also a signal and information processing system, in order to solve the problems which are difficult or impossible for conventional information processing methods to solve. The research on the theory and method of image compression based on neural network is of great significance to both academic value and practical application [2,3]. With more and more widespread applications of video transmission, most of the industries require higher real-time quality of video transmission. However the bandwidth of mediums of video transmission is limited, which places great restrictions on the realtime quality of video transmission. So choosing a better real-time processing platform for video compression and regeneration is imperative. [4,5] This paper presents an image compression algorithm based on neural network, and the system based on this algorithm is implemented on FPGA. Video images are sent to the transmitting terminal and compressed in FPGA. Then, the processed video images are transmitted via internet. Finally, the processed video images are regenerated on the FPGA of receiving terminal. The weighting coefficients of neural network on transmission terminal are updated periodically and the weighting coefficients on receiving terminal are updated simultaneously. The Neural Network Based Video Compressing Algorithm In this paper, BP (Back Propagation) neural network is used, which includes input layer, hidden layer and output layer. BP neural network is one of the most widely used neural network model, which provides data compression capability directly. This section introduces video compression system structure first and then introduces self-learning algorithm of neural network. Usually, neural network compression system consists of compression layer (input layer first intermediate layer), transmission layer (first intermediate layer second intermediate layer) and regeneration layer (second intermediate layer output layer). The basic principle of this system is that the input layer and output layer of the neural network are composed of the same number of units. In the learning process of the network, the learning model of input layer and the teaching model of output layer use the same digital image signal. Since the number of units of the 2016 6th International Conference on Applied Science, Engineering and Technology (ICASET 2016) © 2016. The authors Published by Atlantis Press 0130 intermediate layer is much less than the input layer and output layer, after learning, the network will effectively presents the image model through intermediate layer units and by the model transmit signals. Because the network output layer and the network input layer have the same image model, the network output layer can easily represent the input image model. In this process, conversion between the input layer and the intermediate layer can be viewed as the process of encoding of compression, and conversion between the intermediate layer and the output layer can be viewed as the decoding process [6,7]. In this paper, the system is different from the conventional compression system. It adds a weighting coefficient module which is self-updated at the transmission terminal based on the conventional compression system. The specific structure shows in Fig. 1. The whole updated module has a sub-module similar to the regeneration structure and also has a self-learning weighting coefficient algorithm module. Regeneration structure-like module can simulate the regeneration of video at the transmission terminal to provide reliable data for self-learning module. The weighting coefficient in the regeneration structure-like module keeps updated with weighting coefficients of the other networks to ensure that the receiving terminal can reflect the actual situation. In this way, we can construct a complete self-learning neural network at the transmission terminal. Figure 1. The network structure of video transmission system In this network architecture, the image compression steps are as follows: 1) Once the hardware is built, the system need to be initiated. The concrete process is: gain some video image from the input terminal and correct the weighting coefficient of neural network combining the weighting coefficient of self-renewal module. If we get content result, we can renewal the weighting coefficient of receiving terminal and begin the video transmission. 2) In the process of video, transmission the network of transmit terminal compresses the video image and submit to the network transmission module. After receiving terminal gains the compressed data from transmit terminal, it will regenerate the compressed data and then display and store it. 3)At the same time of image compression, transmission and regeneration, the weighting coefficient self-renewal module of transmit terminal will periodically renew the weighting coefficient of network. The module will replace its weighting coefficient with the renewed one and synchronously update the one of receiving terminal via internet to make sure the consistence of two terminals. While performing the above steps, segmentation and pixel’s gray value of each frame must be standardized. Here in this paper, the gray value of the pixel is set to [-1, +1] and the image is 2016 6th International Conference on Applied Science, Engineering and Technology (ICASET 2016) © 2016. The authors Published by Atlantis Press 0131 divided into small segments, each containing 16 pixels. The intermediate layers has 4 pixels and image compression ratio is 16/4 = 4. We mark the self-learning neural network with three flag: j, i, l .The network’ activation function is common-used, which is: 1 ( ) 1 y x x e = − + (1) The purpose of self-learning is to minimize the mean square error of input and output of network, so we can take the performance function: ( ) 2 4 4 ( , ) '( , ) 1 1 E f x y f x y k x y = − ∑ ∑ = = (2) Function f(x,y) is the gray value of pixels sampling from image before compressed. Function f’(x,y) shows the gray value of pixels sampling from compressed image. Ek is the mean square error between images compressed or not. The corrected weighting coefficient according to gradient descent methods, which seek and adjust the negative gradient of weighting coefficient in line with E(k) and attach a inertia item to ensure rapid convergence to a global minimum. ( ) ( 1) ( ) Ek w k w k li li w k li η α ∂ = − + − ∂ (3) In the formula,η is the learning ratio;α is inertia coefficient。 When we consider something like that performance function isn’t the explicit function to the weighting coefficient, we will find that it is hard to calculate partial derivative. So we prepare to use the chain rule from calculus to get partial derivative. As for the chain rule of output layer:
[1]
Kay Chen Tan,et al.
Hybrid Multiobjective Evolutionary Design for Artificial Neural Networks
,
2008,
IEEE Transactions on Neural Networks.
[2]
Nelson Acosta,et al.
Custom architectures for fuzzy and neural networks controllers
,
2002
.
[3]
Kay Chen Tan,et al.
Estimating the Number of Hidden Neurons in a Feedforward Network Using the Singular Value Decomposition
,
2006,
IEEE Trans. Neural Networks.
[4]
A. Agah,et al.
Evolving Neural Network Topologies for Object Recognition
,
2006,
2006 World Automation Congress.
[5]
L. Escalin Tresa,et al.
Comparative analysis of different wavelets in DWT for video compression
,
2014,
2014 International Conference on Circuits, Power and Computing Technologies [ICCPCT-2014].
[6]
Magdy M. A. Salama,et al.
Determination of neural-network topology for partial discharge pulse pattern recognition
,
2002,
IEEE Trans. Neural Networks.
[7]
Avinash Nayak,et al.
Evaluation and Comparison of Motion Estimation Algorithms for Video Compression
,
2013
.
[8]
Gary J. Sullivan,et al.
High efficiency video coding: the next frontier in video compression [Standards in a Nutshell]
,
2013,
IEEE Signal Processing Magazine.