## 3 Proposed Dehazing Method
### Atmospheric Light Estimation  
In previous dehazing works, most researchers [20; 26; 28] set the atmospheric light value empirically (a constant value) or estimate it under the assumption of bright pixels within a local patch. However, the brightest pixel can represent a white object, a gray object in the scene, or an extra-light source, which leads to serious estimation errors. Despite the improvements done in several proposed works [35; 36], the estimation of the atmospheric light still has significant errors in specific cases (hazy nighttime images). To further increase the accuracy of atmospheric light value estimation, we propose a new effective algorithm labeled 'A-Est', to avoid the limitations of most previously proposed dehazing methods. This algorithm employs image blur to estimate the atmospheric light value \(A\) accurately. This idea is inspired by the fact that haze is one of the main reasons for producing blurred images. Generally, the atmospheric light value of hazy images is selected as the distant scene points with high intensity. In contrast, far scene points belong to the most blurred image region because the blur amount that occurs on the hazy image increases with scene depth. More clearly, whenever the scene depth increases, the blur amount increases as well. Hence, it is necessary to consider the blur amount in the atmospheric light estimation. Algorithm 1 explains the running of proposed approach in detail. We utilize a recursive quadtree decomposition (Figure 3 gives an overview) according to the blur amount measured on each quadtree to reduce the solution space of estimated \(AL\) value. First, we find the most blurry region in the hazy  
Figure 2: Diagram of the proposed dehazing method. image by averaging the blur map calculated, and then pick 0.1% of pixels from this region. Note that Avg operator indicates the average operator. ```
1:Input: Hazy image \(I(x)\), Measured Blur map \(B\). 2:Output: \(AL\). 3:Function\(Cal.AL\) (\(I(x),B\))
4:\(a_{1}\leftarrow\)Avg [\(Max.Blur.Detect\) (\(I(x)\),\(B\))];
5:\(a_{2}\leftarrow\frac{1}{[R_{0}]^{*}}\ \sum_{x\in P_{0},*}a_{1}^{c}(x)\);
6:Estimated \(A\gets a_{2}\);
7:Return \(A\);
8:End Function
9:
10:Function\(Max.Blur.Detect\) (\(I(x),B\))
11:\(I(x)_{gray}\leftarrow\)rgb2 gray(\(I(x)\));
12:\(I_{quad}\gets I(x)_{gray}\)
13:while\(size(I_{quad})\geq 4\)do
14: Devide \(I_{quad}\) into four equal-sized patches (\(P_{1},P_{2},P_{3},P_{4}\));
15: Calculate blurriness map by using equation (3);
16: Select \(P_{n}\) with largest Blur amount;
17:\(I_{quad}\gets P_{n}\);
18:endwhile
19:Return\(I(x)(position(P_{n}))\);
20:End Function
```  
**Algorithm 1** A-Est  
For measuring blur amount on an image, various techniques have been proposed in the literature. [PERSON] et al. [37] discussed and evaluated more than thirty blur measure operators. They showed that \"Gradient Energy\" is one of the best operators in terms of measure and precision; thus, we choose it to estimate the initial blur map. The Gradient Energy-based blur map can be expressed as:  
\[GE(x,y)=\sum_{(i,j)\in\Omega(x,y)}\left((I_{x}(i,j))^{2}+(I_{y}(i,j))^{2}\right) \tag{3}\]  
where \(I_{x}(i,j)=I(i+1,j)-I(i,j)\) and \(I_{y}(i,j)=I(i,j+1)-I(i,j)\). Note that the blur amount can be estimated for the whole hazy image or a sliding window or single pixels. For hazy images, the atmospheric light \(AL\) is defined as a mixture of haze with incident light, and its value \(A\) ranges between 0 and 1. According to Equation (1), by setting (A = 0) and (A = 1), the restored scene radiance can be deduced as:  
\[\max(\frac{I(x)-1+t(x)}{t(x)},0)\leq J(x)\leq\min(\frac{I(x)}{t(x)},1) \tag{4}\]  
Equation (4) and Figure 4 indicates that recovering a hazy image with poor light \(A\) would produce a bright scene radiance (see Figure 6c), while obtaining the opposite result in the case of a bright light \(A\) (as shown in Figure 6b). Thus, the accuracy of atmospheric light value estimation is an  
Figure 3: Overview of quadtree decomposition. essential sub-task in image dehazing operation.