code: def frosted_glass_blur(x, severity=1):
    
    # sigma, max_delta, iterations
    c = [(0.7, 1, 2), (0.9, 2, 1), (1, 2, 3), (1.1, 3, 2), (1.5, 4,
                                                            2)][severity - 1]
    x = np.uint8(
        tfds.core.lazy_imports.skimage.filters.gaussian(
            np.array(x) / 255., sigma=c[0], multichannel=True) * 255)
  
    # locally shuffle pixels
    for _ in range(c[2]):
      for h in range(x.shape[0] - c[1], c[1], -1):
        for w in range(x.shape[1] - c[1], c[1], -1):
          dx, dy = np.random.randint(-c[1], c[1], size=(2,))
          h_prime, w_prime = h + dy, w + dx
          # swap
          x[h, w], x[h_prime, w_prime] = x[h_prime, w_prime], x[h, w]
    x_clip = np.clip(
        tfds.core.lazy_imports.skimage.filters.gaussian(
            x / 255., sigma=c[0], multichannel=True), 0, 1)
    x_clip *= 255
    return around_and_astype(x_clip)
docs: Frosted glass blurring to images.
  
    Apply frosted glass blurring to images by shuffling pixels locally.
  
    Args:
      x: numpy array, uncorrupted image, assumed to have uint8 pixel in [0,255].
      severity: integer, severity of corruption.
  
    Returns:
      numpy array, image with uint8 pixels in [0,255]. Applied frosted glass blur.