




'''simple docstring'''






from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


_lowerCAmelCase				     = {
    '''configuration_videomae''': ['''VIDEOMAE_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''VideoMAEConfig'''],
}

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowerCAmelCase				     = [
				    '''VIDEOMAE_PRETRAINED_MODEL_ARCHIVE_LIST''',
				    '''VideoMAEForPreTraining''',
				    '''VideoMAEModel''',
				    '''VideoMAEPreTrainedModel''',
				    '''VideoMAEForVideoClassification''',
				]

try:
				if not is_vision_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowerCAmelCase				     = ['''VideoMAEFeatureExtractor''']
				_lowerCAmelCase				     = ['''VideoMAEImageProcessor''']

if TYPE_CHECKING:
				from .configuration_videomae import VIDEOMAE_PRETRAINED_CONFIG_ARCHIVE_MAP, VideoMAEConfig

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_videomae import (
								    VIDEOMAE_PRETRAINED_MODEL_ARCHIVE_LIST,
								    VideoMAEForPreTraining,
								    VideoMAEForVideoClassification,
								    VideoMAEModel,
								    VideoMAEPreTrainedModel,
								)

				try:
								if not is_vision_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .feature_extraction_videomae import VideoMAEFeatureExtractor
								from .image_processing_videomae import VideoMAEImageProcessor

else:
				import sys

				_lowerCAmelCase				     = _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)









'''simple docstring'''






import math
import os

import cva
import numpy as np

_lowerCAmelCase				     = 255.0

def       __lowerCAmelCase (   snake_case__ ,				snake_case__						):
			__UpperCamelCase				:      Dict									=       np.mean((original - contrast) ** 2						)
			if mse == 0:
						return 100

			return 20 * math.logaa(PIXEL_MAX / math.sqrt(snake_case__						)						)

def       __lowerCAmelCase (   ):
			__UpperCamelCase				:      Tuple									=       os.path.dirname(os.path.realpath(snake_case__						)						)
			# Loading images (original image and compressed image)
			__UpperCamelCase				:      Tuple									=       cva.imread(os.path.join(snake_case__ ,				"image_data/original_image.png"						)						)
			__UpperCamelCase				:      List[Any]									=       cva.imread(os.path.join(snake_case__ ,				"image_data/compressed_image.png"						) ,				1						)

			__UpperCamelCase				:      Dict									=       cva.imread(os.path.join(snake_case__ ,				"image_data/PSNR-example-base.png"						)						)
			__UpperCamelCase				:      Optional[Any]									=       cva.imread(
			    os.path.join(snake_case__ ,				"image_data/PSNR-example-comp-10.jpg"						) ,				1						)

			# Value expected: 29.73dB
			print("-- First Test --"						)
			print(F"PSNR value is {peak_signal_to_noise_ratio(snake_case__ ,				snake_case__						)} dB"						)

			# # Value expected: 31.53dB (Wikipedia Example)
			print("\n-- Second Test --"						)
			print(F"PSNR value is {peak_signal_to_noise_ratio(snake_case__ ,				snake_case__						)} dB"						)


if __name__ == "__main__":
				main()



