1. A method for processing seismic data, the method comprising: a. obtaining a plurality of initial subsurface images, wherein each of the initial subsurface images is generated using a unique random set of encoding functions; b. decomposing each of the initial subsurface images into components; c. identifying a set of components comprising one of (i) components having at least one substantially similar characteristic across the plurality of initial subsurface images, and (ii) components having substantially dissimilar characteristics across the plurality of initial subsurface images; and d. generating an enhanced subsurface image using the set of components identified in step c; wherein at least one of steps a-d is performed using a computer.