ó
    qyüi   ã                   óª   • S r SSKrSSKJr  SSKJr  SSKJr  SSK	J
r
Jr  SSKJrJrJrJrJrJr  SS	KJrJr  SS
KJrJr  \ " S S\5      5       rS/rg)z#Image processor class for VideoMAE.é    N)Ú
functionalé   )ÚTorchvisionBackend)ÚBatchFeature)Úgroup_images_by_shapeÚreorder_images)ÚIMAGENET_STANDARD_MEANÚIMAGENET_STANDARD_STDÚ
ImageInputÚPILImageResamplingÚSizeDictÚmake_nested_list_of_images)ÚImagesKwargsÚUnpack)Ú
TensorTypeÚauto_docstringc                   óF  ^ • \ rS rSr\R
                  r\r\	r
SS0rSrSSS.rSrSrSrSrS\\   4U 4S jjrS S	\S
\S\4S jjr\S\S\\   S\4U 4S jj5       rS	\\S      S\S\SSS\S\S\S\S\S\\\   -  S-  S\\\   -  S-  S\S-  S\\ -  S-  S\4S jr!Sr"U =r#$ )!ÚVideoMAEImageProcessoré"   Úshortest_edgeéà   F)ÚheightÚwidthTÚkwargsc                 ó&   >• [         TU ]  " S0 UD6  g )N© )ÚsuperÚ__init__)Úselfr   Ú	__class__s     €Ús/home/mande/repo/quber/.venv/lib/python3.13/site-packages/transformers/models/videomae/image_processing_videomae.pyr   ÚVideoMAEImageProcessor.__init__/   s   ø€ Ü‰ÒÑ"˜6Ó"ó    ÚimagesÚexpected_ndimsÚreturnc                 ó   • [        XS9$ )N)r%   )r   )r   r$   r%   s      r!   Ú_prepare_images_structureÚ0VideoMAEImageProcessor._prepare_images_structure2   s   € Ü)¨&ÑPÐPr#   Úvideosc                 ó&   >• [         TU ]  " U40 UD6$ )aX  
videos (`ImageInput`):
    Video or batch of videos to preprocess. Expects a single video (list of frames) or a batch of videos
    (list of list of frames). Each frame can be a PIL image, numpy array, or torch tensor with pixel values
    ranging from 0 to 255. If passing in frames with pixel values between 0 and 1, set `do_rescale=False`.
)r   Ú
preprocess)r   r*   r   r    s      €r!   r,   Ú!VideoMAEImageProcessor.preprocess5   s   ø€ ô ‰wÒ! &Ñ3¨FÑ3Ð3r#   ztorch.TensorÚ	do_resizeÚsizeÚresamplez7PILImageResampling | tvF.InterpolationMode | int | NoneÚdo_center_cropÚ	crop_sizeÚ
do_rescaleÚrescale_factorÚdo_normalizeÚ
image_meanNÚ	image_stdÚdisable_groupingÚreturn_tensorsc           	      óä  • [        USUS9u  nn0 nUR                  5        H$  u  nnU(       a  U R                  UX45      nUUU'   M&     [        UUSS9n[        USUS9u  nn0 nUR                  5        H8  u  nnU(       a  U R	                  UU5      nU R                  UXxXšU5      nUUU'   M:     [        UUSS9nU Vs/ s H  n[        R                  " U5      PM     nn[        SU0US9$ s  snf )NT)Ú	is_nestedr8   )r;   Úpixel_values)ÚdataÚtensor_type)	r   ÚitemsÚresizer   Úcenter_cropÚrescale_and_normalizeÚtorchÚstackr   )r   r$   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r   Úgrouped_imagesÚgrouped_images_indexÚresized_images_groupedÚshapeÚstacked_imagesÚresized_imagesÚprocessed_images_groupedÚprocessed_imagesÚvideo_framesr<   s                            r!   Ú_preprocessÚ"VideoMAEImageProcessor._preprocess?   s1  € ô" 0EØ˜dÐ5Eñ0
Ñ,ˆÐ,ð "$ÐØ%3×%9Ñ%9Ö%;Ñ!ˆE�>ÞØ!%§¡¨^¸TÓ!L�Ø,:Ð" 5Ó)ñ &<ô (Ð(>Ð@TÐ`dÑeˆä/DØ dÐ=Mñ0
Ñ,ˆÐ,ð $&Ð Ø%3×%9Ñ%9Ö%;Ñ!ˆE�>ÞØ!%×!1Ñ!1°.À)Ó!L�Ø!×7Ñ7Ø 
¸LÐV_óˆNð /=Ð$ UÓ+ñ &<ô *Ð*BÐDXÐdhÑiÐñ GWÓWÒFV°lœŸš LÖ1ÑFVˆÐWÜ .°,Ð!?È^Ñ\Ð\ùò Xs   Â? C-r   )r   )$Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   ÚBILINEARr0   r	   r6   r
   r7   r/   Údefault_to_squarer2   r.   r1   r3   r5   r   r   r   r   Úintr(   r   r   r,   ÚlistÚboolr   ÚfloatÚstrr   rN   Ú__static_attributes__Ú__classcell__)r    s   @r!   r   r   "   s~  ø† à!×*Ñ*€HØ'€JØ%€IØ˜SÐ!€DØÐØ¨Ñ-€IØ€IØ€NØ€JØ€Lð# ¨Ñ!5÷ #ñQ°
ð QÈCð QÐXbõ Qð ð4 ð 4°v¸lÑ7Kð 4ÐP\ö 4ó ð4ð*]à�T˜.Ñ)Ñ*ð*]ð ð*]ð ð	*]ð
 Lð*]ð ð*]ð ð*]ð ð*]ð ð*]ð ð*]ð ˜D ™KÑ'¨$Ñ.ð*]ð ˜4 ™;Ñ&¨Ñ-ð*]ð  ™+ð*]ð ˜jÑ(¨4Ñ/ð*]ð  
÷!*]ò *]r#   r   )Ú__doc__rC   Útorchvision.transforms.v2r   ÚtvFÚimage_processing_backendsr   Úimage_processing_utilsr   Úimage_transformsr   r   Úimage_utilsr	   r
   r   r   r   r   Úprocessing_utilsr   r   Úutilsr   r   r   Ú__all__r   r#   r!   Ú<module>rg      sX   ðñ *ã Ý 7å ;Ý 2ß E÷÷ ÷ 5ß /ð ôF]Ð/ó F]ó ðF]ðR $Ð
$�r#   