**1. Introduction**

Recently, three-dimensional video (3DV) has become increasingly popular, because it provides real depth perception, immersive vision, and novel visual enjoyment for multimedia application. With the development and application of information technology, traditional two-dimensional video technology cannot meet the user's visual demands, and high-definition (HD), three-dimensional (3D), and wireless mobile have become the mainstream trends in video application. However, the compression efficiency of existing coding standards remains insufficient to address HD and ultra HD video applications, and more efficient coding compression schemes are still needed. The Telecommunication Standardization Sector and Moving Picture Experts Group established the Video Coding Joint group (Joint Collaborative Team on Video Coding, or JCT-VC) to solve this problem. In 2013, the first generation of the high-efficiency video coding (HEVC) standard was completed [1]. In 2015, multi-view high-efficiency video coding (MV-HEVC), as one of the new 3D standards based on HEVC, was introduced; it had a strong sense of stereoscopic and flexible interaction, which can vividly present a video scene, and showed promise of having wide application in the areas of 3DTV, video conferencing, and so on [2,3]. It has become one research focus in the field of international video coding [4,5].

Rate control plays an important role in video application, particularly in real-time communication applications. Bit rate control makes the generated bitstream conform with the needs of different channel bit rates, by controlling the encoding parameters and achieving a high quality of coding. It is one of the very important technologies for video coding. When any video compression standard lack rate control, its application will be limited. Previous video compression standards, such as MPEG-2, MPEG-4, H.263, H.264, and multi-view video coding (MVC), have provided a bit rate control model. Currently, the internationally published test model of MV-HEVC has not yet provided an effective code rate control algorithm [6].

### **2. Discussion of the Pros and Cons of the Various Approaches**

Recently, researchers have been working on the MV-HEVC code rate control, both locally and abroad; most researchers are engaged in research on the MVC code rate control. Woo et al. studied the optimal bit allocation problem in 3D video coding, based on rate distortion theory [7]. They proposed a reasonable bit allocation algorithm, but the coding complexity is high, the computation is large, and it is difficult to meet the application requirements. Lim et al. proposed a code rate control algorithm based on the multi-view video bit rate control of the binomial model [8]. The algorithm, using motion prediction and parallax forecast spatial structure relations, places all the images into a variety of coding types. Then, it models various types of images and calculates the target bit number and frame level quantization parameters of each type of frame, according to the parameters of the model. However, in video coding of a multi-view point, the parallax prediction feature of each viewpoint has a large difference; thus, the encoding image with the same prediction relation may have different encoding characteristics. At this time, the target bit number obtained using the same model parameter will be biased. South Korea's Seanae Park and others have considered MVC using the effect of a hierarchical B frame. It performs bit allocation on MVC based on H.264 and maintains efficient coding efficiency [9]. However, its bit rate control error is relatively large, and the average bit rate control error is greater than 1%, which is not operable in practical applications. At the German Karlsruhe Institute of Technology, Bruno Boessio Vizzotto used a uniform buffer for both the right and left views in the bit rate control algorithm of stereo video coding, and then used MPEG-2- s code rate control model, termed TM5, to control the code flow rate [10]. However, the accuracy of the target bit allocation based on TM5 worsens with an increase in the encoding image type in the MVC.

The aforementioned code rate control models for MVC were based on H.264. Currently, there is limited research on video coding bit rate control based on HEVC. In 2013, Shao et al. established the distortion equation of texture bit and virtual viewpoint, and the distortion equation of depth bit and virtual viewpoint [11]. They combined a texture and depth virtual viewpoint distortion function to solve the texture and depth code rate, and minimize distortion of the viewpoint. However, this method does not consider the efficiency of the bit rate of the texture and depth. The virtual viewpoint distortion caused by the texture, and the virtual viewpoint distortion caused by the depth map, are regarded as the same weight. In 2014, Pan et al. proposed a deep 3D-HEVC code rate control algorithm, with a fixed color and depth bit rate ratio of 4:1 [12], but it could not obtain the optimal rendering quality of virtual viewpoints. In 2015, Zhao Zhenjun and others proposed a joint bit allocation algorithm based on 3D-HEVC multi-view texture and depth, which is based on the statistical properties of video series [13]. This algorithm establishes a model of texture bit rate and depth map bit rate, and virtual viewpoint distortion to control the bit rate. Xiao et al. proposed the depth and texture grading bit rate control algorithm [14]. Wang et al. proposed the 3D-HEVC bit rate control algorithm based on the binomial R-D model [15]. The accuracy of the code rate control is low because of the direct use of the H.264 rate control model. In 2016, Yang et al. solved the bit rate of texture and depth, by combining the texture and depth virtual view distortion functions [16]. However, this method does not consider the efficiency of the bit rate of texture and depth, and the error of the bit rate control accuracy is lower than the average bit rate of 2.4%. Li et al. proposed the rate control algorithm for high efficiency video coding [17], but it is necessary to further study the optimal model of 3D-HEVC bit rate control. Lei J et al. proposed a novel rate control algorithm based on the region adaptive R-λ model, which can achieve considerable bjøntegaard delta peak signal-to-noise rate (BD-PSNR) gains [18].

The above studies have not taken into consideration the relationship between the MV-HEVC bit rate control model and related coding performance. Most of the studies are engaged in research on rate control for HEVC or MVC [19–27]. There have been many studies on rate control for HEVC based on scene switching [28,29], but most of the rate control algorithms for HEVC are concentrated in the single-channel video coding standard, which is not applicable to multiview video coding. Li et al. proposed the rate control algorithm for HEVC, but it is necessary to further study the optimal model of MV-HEVC bit rate control [30]. We also preliminarily explored the MVC bit rate control model, and proposed an MVC bit rate control optimization algorithm based on the binomial R-D model [31]. We believe the MV-HEVC bit rate control model in the design can also be seen as a multi-objective optimization problem. It needs to adaptively adjust the parameters of the rate control model, according to the characteristics of the video content and the requirements of the specific application, so that the accuracy of the bit rate control and the subjective quality cannot fluctuate significantly and the best balance between the two is achieved. The experimental simulation results show that the average error between the actual bit rate and the target bit rate of this rate control algorithm is only 0.90%. At the same time, efficient coding efficiency has theoretically reached the basic requirements for practical application.

This paper is structured as follows: In Section 2, we review the previous work on rate control. Section 3 addresses the ρ domain rate control model, and describes the rate control for MV-HEVC based on this model in detail. In Section 4, extensive experiments are conducted to evaluate the performance of the proposed method. Finally, conclusions are drawn in Section 5.

### **3.** ρ **Model for MV-HEVC**

The reference code of the latest video coding standard, HEVC, usually adopts the rate-Lambda (R-Lambda) model for bit rate control, but the R-Lambda model allocates too many target bit rates for I-frames, causing subsequent video frames to have insufficient target bit rates. The quality of reconstruction has deteriorated severely. In High Efficient Video Coding (HEVC), the bit rate control algorithm achieves good results for both the accuracy and efficiency of the bit rate output, but the algorithm does not take into account the complexity of the actual video encoding content.

The rate control algorithm based on the ρ domain is proposed by He Zhihai [32,33], where ρ represents the percentage of the zero coefficients, after the quantization of the transform coefficients to all the coefficients. Through a large number of experiments and theoretical proofs, the paper reached the following conclusion: For video signals, ρ has a linear relationship with the texture bit encoding rate *T* (ρ). The linear model is:

$$T(\rho) = \theta(1-\rho) \tag{1}$$

In order to introduce the ρ model into rate control algorithm for MV-HEVC, we have done a lot of experiments to study the relationship between ρ and the encoding bit rate of textured parts. The platform used in the experiment is the MV-HEVC test model published internationally in 2016 [6]. Using the "Exit" test sequence, the frame rate is 25 frames/second, and the quantization parameter (QP) ranges from 0 to 51. Figure 1 shows the *R*(ρ) curve. It can be seen from the figure that *R*(ρ) is approximately a quadratic curve passing through the (1, 0) point. Our previous research has shown that ρ has the following quadratic relationship with the texture bit encoding bit rate *R*(ρ):

$$R(\rho) = \chi \cdot \left(1 - \rho\right)^2 + \psi \cdot \left(1 - \rho\right) \tag{2}$$

where, χ, ψ can be provided by the following statistical analysis method. Let (ρ1,*R*1(ρ),(ρ2,*R*2(ρ)), ··· ,(ρ*n*,*Rn*(ρ)) be the existing *<sup>n</sup>* sample values, thus

*Electronics* **2020**, *9*, 166

$$\begin{cases} \mathcal{R}\_1(\rho) = \mathbb{x} \cdot (1 - \rho\_1)^2 + \mathbb{y} \cdot (1 - \rho\_1) \\ \mathcal{R}\_2(\rho) = \mathbb{x} \cdot (1 - \rho\_2)^2 + \mathbb{y} \cdot (1 - \rho\_2) \\ \vdots \\ \mathcal{R}\_n(\rho) = \mathbb{x} \cdot (1 - \rho\_n)^2 + \mathbb{y} \cdot (1 - \rho\_n) \end{cases} \tag{3}$$

Suppose that ρ- 1*i* (ρ)=(<sup>1</sup> <sup>−</sup> <sup>ρ</sup>*i*) 2 , ρ- <sup>2</sup>*<sup>i</sup>* <sup>=</sup> <sup>1</sup> <sup>−</sup> <sup>ρ</sup>*i*, and

$$\boldsymbol{\rho}' = \begin{pmatrix} \boldsymbol{\rho}'\_{11} & \boldsymbol{\rho}'\_{21} \\ \boldsymbol{\rho}'\_{12} & \boldsymbol{\rho}'\_{22} \\ \vdots & \vdots \\ \boldsymbol{\rho}'\_{1n} & \boldsymbol{\rho}'\_{2n} \end{pmatrix} \quad \boldsymbol{R} = \begin{pmatrix} \boldsymbol{R}\_{1} \\ \boldsymbol{R}\_{2} \\ \vdots \\ \boldsymbol{R}\_{n} \end{pmatrix} \qquad \boldsymbol{X} = \begin{pmatrix} \boldsymbol{X} \\ \boldsymbol{\Psi} \end{pmatrix} \tag{4}$$

Using multiple regression techniques, the model parameter, *N*, can be calculated as follows:

$$\chi = (\left(\boldsymbol{\rho}'^T \cdot \boldsymbol{\rho}'\right)^{-1} \cdot \boldsymbol{\rho}'^T \cdot \mathbb{R})\_{11} \tag{5}$$

$$\Psi = (\left(\boldsymbol{\rho}^{\prime T} \cdot \boldsymbol{\rho}^{\prime}\right)^{-1} \cdot \boldsymbol{\rho}^{\prime T} \cdot \boldsymbol{R})\_{21} \tag{6}$$

where ρ-*<sup>T</sup>* is the transpose matrix of ρ- , and (ρ-*<sup>T</sup>*ρ- ) <sup>−</sup><sup>1</sup> is the inverse matrix of <sup>ρ</sup>-*<sup>T</sup>*ρ- .

**Figure 1.** Experimental results for R(ρ) curve.

### **4. Rate Control Algorithm for MV-HEVC**

To be compatible with the latest video coding standard HEVC, the bit allocation and bit rate control proposed in this study is based on the HEVC bit rate control algorithm. In order to further improve the efficiency of MV-HEVC, this paper uses our previous research algorithm to optimize the MV-HEVC prediction structure, before performing rate control for MV-HEVC [34]. The main problem of the rate control algorithm for MV-HEVC is how to perform bit allocation among viewpoints and how to use the correlation among viewpoints to perform bit allocation. The key steps of the MV-HEVC bit rate control algorithm are as follows:

### *4.1. View Layer Rate Control*

In this study, reasonable allocation of bits to different viewpoints were based on viewpoint similarity and encoded information. The weight, *wk*, was used to indicate the degree of importance of the viewpoint, *k*. The larger *wk* was, the more important the viewpoint was. The total number of bits allocated to the *K*th viewpoint, *GOPK*, within each coded *GGOP* picture group, is provided by Equation (7).

$$T\_{GOP}(n\_{k,0}) = T\_{GGP}(sn\_{i,0}) \cdot w\_k \tag{7}$$

The initial value of *wk*(*<sup>k</sup>* <sup>=</sup> 0, 1, 2, *<sup>L</sup>*, *Nview* <sup>−</sup> <sup>1</sup>) is provided by Equation (8).

$$w\_k = \frac{\frac{1}{N} \cdot \sum\_{j=0, j \neq k}^{N-1} S(V\_{j\prime}, V\_k)}{\sum\_{k=0}^{N-1} \frac{1}{N-1} \cdot \sum\_{j=0, j \neq k}^{N-1} S(V\_{j\prime}, V\_k)}\tag{8}$$

where *<sup>N</sup>* is the number of encoded viewpoints, and *<sup>S</sup>*(*Vj*, *Vk*) is the similarity between viewpoints *Vj* and *Vk*. The bilinear similarity measurement algorithm was adopted. This algorithm has been successfully used in the field of image retrieval. The algorithm is superior to traditional distance metrics, and there are no restrictions Among them, *S<sup>d</sup> <sup>j</sup>* and *<sup>S</sup><sup>d</sup> <sup>k</sup>* are the feature vectors of the two images, respectively.

$$S(V\_{\vec{j},}V\_k) = \frac{S\_{\vec{j}}^k \cdot S\_k^d}{\left| S\_{\vec{j}}^d \right| \cdot \left| S\_k^d \right|} \tag{9}$$

### *4.2. Frame Layer Rate Control*

In the HEVC frame layer rate allocation, the bit allocation per frame is determined by the frame rate, target buffer capacity, actual buffer size, etc. The residual energy of the coded frame is not considered, which is likely to cause image quality degradation and a jump phenomenon in the frame. Previous research results in [15] have proposed the following optimal frame target bit allocation method, according to the residual energy of the coded frame:

$$T(j) = \frac{MAD\_j}{MAD\_4} \cdot \frac{(T - \sum\_{m=1}^{M} \mathbb{C}\_m)}{M} + \mathbb{C}\_j \tag{10}$$

In the aforementioned equation, *T* is the sum of the number of bits consumed for encoding an *M* frame; *MADa* represents the average of all frame *MAD* (mean absolute deviation difference); *MADj* represents *MAD* at frame *j*; *Cj* and *Cm* occupy bits of the header information of the *j*-th frame and the *m*-th frame, respectively. In Equation (10), it can be seen that the larger *a* and *b* were, the more target bits were allocated to image frames.

In the multi-view video code, the target bit of the *j* frame assignment is as follows:

$$T\_r'(j-1) = \left[\frac{MAD\_{j-1}}{MAD\_a} \cdot (\frac{T\_{GOP}(n\_{x,0})}{N(i)} - \mathbb{C}\_a) + \mathbb{C}\_{j-1}\right] \tag{11}$$

In Equation (10), *Ca* represents the average value of the bits consumed for encoding the header information of the encoded frame in the current *GOP*.

In general, the smaller the active time domain of the frame, the fewer bits are needed; conversely, the larger the active time domain of the frame, the more bits are needed. To make the MVC rate control more accurate, the code rate control method in Equation (11) was further improved. The current frame target bit is calculated using Equation (12):

$$T\_r(j) = T\_r'(j-1) \cdot \frac{\sum\_{l=1}^{L} \mathcal{W}(l) \cdot 2^n}{\sum\_{l=1}^{L} \frac{\text{MAD}\_{l-1}}{\text{MAD}\_x} \cdot \frac{\text{FD}(l-1)^2}{\frac{1}{L-1} \sum\_{l=1}^{L} \text{FD}(k)^2} \cdot \mathcal{W}(l) + \sum\_{l=1}^{L} \mathcal{W}\_B(l) \cdot (2^n - 1)}{} + T\_j \tag{12}$$

In Equation (12), *Tj* is the bit consumed by the frame header information of the frame, and *j* and *n* represent the current time level. *FD*(*j*) is the temporal activity for *j*th frame. *W*(*l*) represents the weight of each frame complexity. *WB*(*l*) represents the weight of the *<sup>B</sup>* frame.

### *4.3. Macroblock Layer Rate Control*

According to macroblock layer rate control algorithm for HEVC, it is known that the bits allocated in each frame are evenly distributed to each basic unit layer of the frame, so that different macroblocks in the same basic unit layer are encoded using a uniform quantization parameter (QP). However, even the macroblocks in the same basic unit have great differences in the complexity of image content, texture, and active time domain. Therefore, in order to control the MV-HEVC bit rate more accurately, different quantization values are used, according to the complexity of its image content, texture, and active time domain. ρ can be obtained from the ρ model. Our previous research has obtained the relationship between ρ and the quantization parameter (QP) [31]. Therefore, we can calculate the quantization parameter (QP) of the basic unit layer. The specific algorithm flow is shown in Figure 2.

**Figure 2.** Rate control algorithm based on ρ model for MV-HEVC.

The main steps of the rate control algorithm based on the ρ model for MV-HEVC are as follows:

**Step 1:** Firstly, establish a framework for continuous encoding of multiple viewpoints, and realize continuous encoding for multiple viewpoints. Multi-view sequence is then decomposed into several *GGOPs* (the group of group of pictures), and the programming parameters are initialized.

**Step 2:** *GGOP* (the group of group of pictures) layer bit allocation and code rate control—Get the current target number of *GGOP* bits according to the frame rate, bandwidth, buffer, etc.

**Step 3:** *GOP* (group of pictures) layer bit allocation and code rate control—Firstly, calculate the weight factor (*Wk*) of the *GOP* of each viewpoint according to the correlation between viewpoints. Then obtain the target number of bits of a *GOP* for the current viewpoint.

**Step 4:** Frame layer bit allocation and code rate control—Obtain the number of bits allocated to the current encoding frame, according to the frame complexity.

**Step 5:** Macroblock layer bit allocation and code rate control—According to the number of frame bits obtained in Step 4, the number of bits allocated by the current coding basic unit is then obtained according to the complexity of the basic unit; then, ρ is calculated according to the code rate control model (ρ model), and finally the quantization parameters of the current macroblock are determined.

**Step 6:** Encode the current macroblock according to the quantization parameter calculated in Step 5. **Step 7:** Determine whether all macroblocks in the current frame are encoded. If they are all encoded, go to Step 8; if they are not all encoded, repeat Steps 5 to 6 until they are all encoded, then go to Step 8. **Step 8:** Determine whether all the frames in the current *GOP* are encoded. If they are all encoded, go to Step 9; if they are not all encoded, repeat Steps 4 to 7 until all the frames of the current *GOP* are edited. **Step 9:** Determine whether all *GOPs* in the current *GGOP* are encoded. If they are all encoded, go to Step 10; if they are not all encoded, repeat Steps 3 to 8 until all *GOPs* in the current *GGOP* are edited. **Step 10:** Determine whether the current *GGOP* is the last *GGOP*. If it is the last *GGOP*, the entire code rate control process ends; otherwise, repeat Steps 2 to 9.

### **5. Experimental Classification Results and Analysis**

In order to verify the algorithm of this paper, on the platform of the MV-HEVC system provided by The Joint Collaborative Team on 3D Video Coding Extension Development (JCT-3V), this paper compares the coding performance of this bit rate control algorithm with the multi-view point bit rate control algorithm proposed in [17,18]. Due to experimental platforms and technical limitations, some algorithms in the references are just simulated data. This paper uses five standard 3DV test sequences from Poznanstreet, Akko & Kayo, Rena, Breakdancers, Uli, and Balloons. The resolution of the sequence includes 1920 × 1088 pixels, 1024 × 768 pixels and 640 × 480 pixels.

Compared with [17,18], Figure 3 shows that the rate control algorithm proposed in our paper can distribute more bits consumed in the dramatic motion scene frame to several subsequent frames, thus avoiding the large fluctuation in video quality. From Figure 3, it show that the frame quality of the algorithm proposed in this paper fluctuates most smoothly after the video scene is switched.

The performance measures include the *x* and the *x* variation (σ*x*), which is calculated as

$$\sigma\_{\mathbf{x}} = \frac{1}{N} \sum\_{i=1}^{N} (\mathbf{x}\_{i} - \frac{1}{N} \sum\_{i=1}^{N} \mathbf{x}\_{i})^{2} \tag{13}$$

where *N* denotes the number of total encoded frames.

Figure 4 shows the PSNR fluctuation for the sequences "Balloons" and "Poznanstreet." The results show that the bit rate control algorithm used in this study significantly reduces the PSNR fluctuations and improves the subjective effect.

(**a**)

**Figure 3.** Experimental results of sequences: (**a**) "Balloons", and (**b**) "Poznanstreet".

(**a**)

(**b**)

**Figure 4.** Experimental results of sequences: (**a**) "Balloons", and (**b**) "Poznanstreet".

Table 1 shows the simulation results of MV-HEVC rate control. Our method can accurately control the output bit rate of MV-HEVC. The synthesized virtual views algorithm is similar to [18]. In most cases, the actual bit rate and target bit rate error can be controlled to approximately 1.0% or less. Compared to [17] and [18], Table 1 shows that the rate control algorithm proposed in this study has a more accurate bit rate, smaller bit rate deviation, and a small average error rate of 1%, which can meet practical application requirements. The main reason for this is that not only is there reasonable bit rate control between viewpoints, but also that the bit rate control performs well at both the frame layer and the base unit layer. When the target bit of "Poznanstreet" sequence is 1350 kbps, the bit rate control error in [17] is relatively large (2.85%). This is mainly because "Balloons" had a relatively intense sequence of motion, and it was difficult to perform accurate bit allocation. The rate control error proposed in our study is controlled to 0.9%. The main reason is that the similarity between viewpoints deviates, resulting in inaccurate bit allocation between viewpoints. Table 1 shows that the code rate control algorithm proposed in this study also improved, compared to that of [17,18]. The experimental simulation results show that the algorithm can maintain high coding efficiency, and that the average error between the actual bit rate and the target bit rate is only 0.90%.


**Table 1.** Simulation results of our method.

Figure 5 shows the experimental results of the sequences "Newspaper" and "Poznan Hall2". Compared with [17,18], the algorithm in this paper can effectively control the bit rate of MV-HEVC and maintain a high coding efficiency at the same time. Mathematical quantity analysis of the Figures 3 and 4 is shown in Table 2. For data unification, the data in Table 2 is obtained after further processing.


*Electronics* **2020**, *9*, 166

In summary, the proposed rate control algorithm is more accurate than that of [17,18]. The simulation results show that the proposed algorithm achieves up to 0.23–0.78 dB in improvement in PSNR. Meanwhile, it can efficiently control the bit rate with an average rate control error of 0.90%. The main reason is that this paper not only uses our previous research algorithm to optimize the MV-HEVC prediction structure, but also performs rate control algorithm based on ρ model for MV-HEVC.

**Figure 5.** PSNR results. (**a**) Experimental results for the sequence "Poznanstreet", and (**b**) Experimental results for the sequence "Balloons".

### **6. Conclusions**

The current research on multi-view video coding rate control based on the MV-HEVC has not been expanded thoroughly. In this paper, by analyzing the deficiency of the bit rate distortion model and the characteristics of multi-view video coding in current video bit rate control, a bit code rate control algorithm based on MV-HEVC multi-view video coding was proposed. The algorithm involves the entire bit rate control process, from the bit rate model design to each model's bit allocation and bit rate control, to ensure the accuracy of the bit rate control algorithm. The experimental results show that the proposed MV-HEVC bit allocation and bit rate control algorithm can effectively control the bit rate, based on the given coding parameters. It will further study the correlation between viewpoints and improve the bit rate control algorithm. In addition, this paper has not considered multi-view scene switching, which is the focus of future work research.

**Author Contributions:** Conceptualization, T.Y. and I.-H.R.; methodology, T.Y.; software, T.Y.; validation, T.Y., I.-H.R., and Q.Z.; formal analysis, H.X.; investigation, L.H.; data curation, T.Y. and Q.Z.; writing—original draft preparation, T.Y. and I.-H.R.; writing—review and editing, H.X. and I.-H.R.; project administration, I.-H.R.; funding acquisition, I.-H.R. and T.Y. All authors have read and agreed to the published version of the manuscript.

**Funding:** This research was funded by the Natural Science Foundation of China (No. 61741111). This work was Supported by the Program for New Century Excellent Talents in Fujian Province University (Tao Yan); 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 (2016R1A2B4013002) and in part by Natural Science Foundation of Fujian (No. 2019J01816), the Natural Science Foundation of Jiangxi (20181BAB202011), and the Putian University's Initiation Fee Project for Importing Talents for Scientific Research (2019003).

**Acknowledgments:** We thank the Interactive Visual Media group of Mitsubishi Electric Research Laboratories and Nagoya University/Tanimoto Lab for the data we used. The authors would like to thank the editors and the reviewers for their professional suggestions.

**Conflicts of Interest:** The authors declare no conflict of interest.

### **References**


© 2020 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
