






"""simple docstring"""


import math
import os

import cva
import numpy as np

_lowercase											=			255.0






def  _snake_case			(						snake_case__				:       float		, snake_case__				:       float       ):
	A  				=				np.mean((original - contrast) ** 2       )
	if mse == 0:
		return 100

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






def  _snake_case			(						):
	A  				=				os.path.dirname(os.path.realpath(snake_case__       )       )
	# Loading images (original image and compressed image)
	A  				=				cva.imread(os.path.join(snake_case__		, 'image_data/original_image.png'       )       )
	A  				=				cva.imread(os.path.join(snake_case__		, 'image_data/compressed_image.png'       )		, 1       )

	A  				=				cva.imread(os.path.join(snake_case__		, 'image_data/PSNR-example-base.png'       )       )
	A  				=				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()

"""simple docstring"""


from typing import TYPE_CHECKING

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


_lowercase											=			{'''configuration_vilt''': ['''VILT_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''ViltConfig''']}

try:
		if not is_vision_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		_lowercase											=			['''ViltFeatureExtractor''']
		_lowercase											=			['''ViltImageProcessor''']
		_lowercase											=			['''ViltProcessor''']

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		_lowercase											=			[
		    '''VILT_PRETRAINED_MODEL_ARCHIVE_LIST''',
		    '''ViltForImageAndTextRetrieval''',
		    '''ViltForImagesAndTextClassification''',
		    '''ViltForTokenClassification''',
		    '''ViltForMaskedLM''',
		    '''ViltForQuestionAnswering''',
		    '''ViltLayer''',
		    '''ViltModel''',
		    '''ViltPreTrainedModel''',
		]


if TYPE_CHECKING:
		from .configuration_vilt import VILT_PRETRAINED_CONFIG_ARCHIVE_MAP, ViltConfig

		try:
				if not is_vision_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .feature_extraction_vilt import ViltFeatureExtractor
				from .image_processing_vilt import ViltImageProcessor
				from .processing_vilt import ViltProcessor

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_vilt import (
				    VILT_PRETRAINED_MODEL_ARCHIVE_LIST,
				    ViltForImageAndTextRetrieval,
				    ViltForImagesAndTextClassification,
				    ViltForMaskedLM,
				    ViltForQuestionAnswering,
				    ViltForTokenClassification,
				    ViltLayer,
				    ViltModel,
				    ViltPreTrainedModel,
				)


else:
		import sys

		_lowercase											=			_LazyModule(__name__, globals()['''__file__'''], _import_structure)