o
    NiV                     @   sh  d Z ddlmZ ddlmZ ddlmZ ddlZddlm  m	Z
 ddlmZ dZdZdZi d	ed
 ded ded ded ded ded ded ded ded ded ded ded  d!ed" d#ed$ d%ed& d'ed( d)ed* ed+ ed, ed- ed. ed/ d0Zg d1ZG d2d3 d3ejjZd4d5 ZG d6d7 d7ejjZdS )8zDIV2K dataset: DIVerse 2K resolution high quality images.

As used for the challenges @ NTIRE (CVPR 2017 and CVPR 2018)
and @ PIRM (ECCV 2018)
    )absolute_import)division)print_functionNa  
@InProceedings{Agustsson_2017_CVPR_Workshops,
	author = {Agustsson, Eirikur and Timofte, Radu},
	title = {NTIRE 2017 Challenge on Single Image Super-Resolution: Dataset and Study},
	booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
    url = "http://www.vision.ee.ethz.ch/~timofter/publications/Agustsson-CVPRW-2017.pdf",
	month = {July},
	year = {2017}
} 
z
DIV2K dataset: DIVerse 2K resolution high quality images as used for the challenges @ NTIRE (CVPR 2017 and CVPR 2018) and @ PIRM (ECCV 2018)
z)https://data.vision.ee.ethz.ch/cvl/DIV2K/train_hrzDIV2K_train_HR.zipvalid_hrzDIV2K_valid_HR.ziptrain_bicubic_x2zDIV2K_train_LR_bicubic_X2.ziptrain_unknown_x2zDIV2K_train_LR_unknown_X2.zipvalid_bicubic_x2zDIV2K_valid_LR_bicubic_X2.zipvalid_unknown_x2zDIV2K_valid_LR_unknown_X2.ziptrain_bicubic_x3zDIV2K_train_LR_bicubic_X3.ziptrain_unknown_x3zDIV2K_train_LR_unknown_X3.zipvalid_bicubic_x3zDIV2K_valid_LR_bicubic_X3.zipvalid_unknown_x3zDIV2K_valid_LR_unknown_X3.ziptrain_bicubic_x4zDIV2K_train_LR_bicubic_X4.ziptrain_unknown_x4zDIV2K_train_LR_unknown_X4.zipvalid_bicubic_x4zDIV2K_valid_LR_bicubic_X4.zipvalid_unknown_x4zDIV2K_valid_LR_unknown_X4.ziptrain_bicubic_x8zDIV2K_train_LR_x8.zipvalid_bicubic_x8zDIV2K_valid_LR_x8.ziptrain_realistic_mild_x4zDIV2K_train_LR_mild.zipzDIV2K_valid_LR_mild.zipzDIV2K_train_LR_difficult.zipzDIV2K_valid_LR_difficult.zipzDIV2K_train_LR_wild.zipzDIV2K_valid_LR_wild.zip)valid_realistic_mild_x4train_realistic_difficult_x4valid_realistic_difficult_x4train_realistic_wild_x4valid_realistic_wild_x4)

bicubic_x2
bicubic_x3
bicubic_x4
bicubic_x8
unknown_x2
unknown_x3
unknown_x4realistic_mild_x4realistic_difficult_x4realistic_wild_x4c                       s    e Zd ZdZ fddZ  ZS )Div2kConfigzBuilderConfig for Div2k.c                    s|   |t vr
tdt  |dd| }||d< tt| jdd|i| || _td| j  td| j  td td d	| _d
S )zConstructs a Div2kConfig.zdata must be one of %sdescriptionzUses %s data.nametrain_valid_r   r   )train_lr_urlvalid_lr_urltrain_hr_urlvalid_hr_urlN )	_DATA_OPTIONS
ValueErrorgetsuperr%   __init__data_DL_URLSdownload_urls)selfr'   kwargsr&   	__class__r.   S/home/ubuntu/.local/lib/python3.10/site-packages/tensorflow_datasets/image/div2k.pyr3   T   s   zDiv2kConfig.__init__)__name__
__module____qualname____doc__r3   __classcell__r.   r.   r9   r;   r%   Q   s    r%   c                  C   s,   g } t D ]}| ttjd|d q| S )Nz2.0.0)versionr'   )r/   appendr%   tfdscoreVersion)configsr4   r.   r.   r;   _make_builder_configsf   s   rG   c                   @   s.   e Zd ZdZe Zdd Zdd Zdd ZdS )	Div2kz9DIV2K dataset: DIVerse 2K resolution high quality images.c                 C   s2   t jj| tt jt j t j ddttdS )Nlrhr)builderr&   featuressupervised_keyshomepagecitation)	rC   rD   DatasetInfo_DESCRIPTIONrM   FeaturesDictImage_DL_URL	_CITATION)r7   r.   r.   r;   _infor   s   zDiv2k._infoc                 C   st   t d| jj || jj}tjjtjj|d t	j
|d dddtjjtjj|d t	j
|d d	ddgS )
zReturns SplitGenerators.
EXTRACTINGr*   r,   DIV2K_train_HR)lr_pathhr_path)r'   
gen_kwargsr+   r-   DIV2K_valid_HR)printbuilder_configr6   download_and_extractrC   rD   SplitGeneratorSplitTRAINospathjoin
VALIDATION)r7   
dl_managerextracted_pathsr.   r.   r;   _split_generators   s*   zDiv2k._split_generatorsc              
   c   sd    t jj|D ]'\}}}|D ]}|dr.|tj||tj||dd d dfV  qqdS )zYields examples.z.pngN   rI   )tfiogfilewalkendswithrd   re   rf   )r7   rZ   r[   root_files	file_pathr.   r.   r;   _generate_examples   s   

zDiv2k._generate_examplesN)	r<   r=   r>   r?   rG   BUILDER_CONFIGSrW   rj   ru   r.   r.   r.   r;   rH   m   s    rH   )r?   
__future__r   r   r   os.pathrd   tensorflow.compat.v2compatv2rl   tensorflow_datasets.public_api
public_apirC   rV   rR   rU   r5   r/   rD   BuilderConfigr%   rG   GeneratorBasedBuilderrH   r.   r.   r.   r;   <module>   sn   	
