# High-Fidelity OC-Seislet Stacking Method for Low-SNR Seismic Data
## 2 Materials and Methods  
### Theory of Seislet Stacking  
The seislet transform is a specialized wavelet transform method consisting of seismic data patterns and DWT. It is an improved sparse transform method developed from a second-generation lifting scheme of wavelet transform, tailored to the characteristics of seismic data and exhibiting good data compression properties. The seislet transform leverages the correlations within seismic data, using prediction and update operators from the lifting scheme to compress data sequences and obtain results across different scales [35]. For two-dimensional seismic data, the time-space-scale domain data pattern can be represented as the time-distance relationship along the same event, which can be described as a local slope. In the frequency-wavenumber-scale domain, the data pattern can be represented as the transformation relationships at different offset positions, which can be expressed as OC operators. When applied to CMP or common imaging point (CIG) gathers, the seislet transform has significant implications for data stacking. Based on the lifting construction, the zero-order seislet coefficients are calculated recursively by stacking data from neighboring traces along the same event, effectively achieving seislet stacking [35]. This approach avoids the NMO stretching issues associated with conventional stacking [37] and also mitigates nonhyperbolic moveout problems [38]. The steps for seislet stacking are as follows:  
1. Split the input seismic traces into odd and even trace sequences, denoted as \(o\) and \(e\), respectively, with each pair forming a group.
2. Based on the predictability of the seismic event, calculate the difference traces \(r\) between the odd traces and the predicted even traces. \[r=o-P[e].\] (1)  
The role of the prediction operator \(P\) in the lifting scheme is to approximate the even traces \(e\) with the odd traces \(o\) after prediction. According to the definition of the two-dimensional seislet transform, the prediction operator \(P\) based on the Haar basis is given by  
\[P[e]_{k}=S_{k}^{-(e\to o)}(e_{k}), \tag{2}\]  
where \(S^{(e\to o)}\) is the prediction operator for converting even traces to odd traces, with the positive and negative signs indicating the forward and backward directions. Fomel [39] provides the specific expression of the trace prediction operator in the time-space-scale domain under the Z-transform. This operator depends on the prediction direction along the seismic event, and \(k\) represents the data grouping index.
3. The difference trace \(r\) is updated using the update operator \(U\) from the lifting scheme. The updated trace is then added to the even trace to compute the approximate value \(c\) of the even trace. \[c=e+U[r],\] (3) where the update operator \(U\) based on the Haar basis is given by \[U[r]_{k}=S_{k}^{+(o\to e)}(r_{k})/2,\] (4) where \(S^{o\to e}\) is the prediction operator for converting odd traces to even traces. By substituting Equations (1), (2), and (4) into Equation (3), we obtain \[c_{k}=\frac{\left[2e_{k}-S_{k}^{+(o\to e)}S_{k}^{-(e\to o)}(e_{k})+S_{k}^{+(o \to e)}(o_{k})\right]}{2}.\] (5)  
Let \(o^{\prime}{}_{i}\) and \(e^{\prime}{}_{i}\) be the predicted odd and even traces. The approximate trace \(c\) can be considered as adjusting the data at the same horizontal position and then stacking along the same event direction according to  
\[c_{k}=\big{(}e^{\prime}{}_{k}+o^{\prime}{}_{k}\big{)}/2, \tag{6}\]  
After performing the averaging, the number of traces \(c\) will be half of the original number of seismic traces.
4. Rearrange the scale coefficients to odd positions on oneself scale, and repeat steps 1-3 for the approximate sequence \(c\) to effectively achieve NMO stacking. After repeating this process \(log_{2}N\) times (where \(N\) is the number of traces), we obtain the seisletstacking result. We can also observe that, at this stage, seislet stacking is equal to traditional equal-weight stacking, except it uses partial moveout through iterative computations.