Covariance Matrix C2 for Sentinel-1 - Algorithm details

Apologies if the question might seem obvious, I looked in the help of the filters but could not find the exact algorithm used to compute the C2 matrix, for Sentinel1 for example, hence a dual pol SAR.

Theory says we need to compute
Screen Shot 2023-08-05 at 21.53.41

but the ensemble is done spatially on a local window? Could this ensemble be done also in time if for example we have few maps on the same season in which we do not expect big variability? and if yes, is there any support for this currently?
If I understand correctly S_vv = q_vv + j * i_vv (analogously for the other term S_hv),
where q and i are exactly what we get from the raw maps of Sentinel1 SLC.

I saw that exists also a filter Radar → Polarimetric → Polarimetric Speckle Filter, which does both speckle filter and subsequent computation of C2.
Is it a good idea to make the speckle filter before C2 computation? I read on other posts in this forum that speckle filters might change the phases, but I see this as a big deal if is done before the computation of the S2 matrix, is my interpretation wrong?

Can someone point me to the right reference for the C2 computation algorithm used in SNAP?