CBREN
This is the Pytorch implementation for our IEEE TCSVT paper : CBREN: Convolutional Neural Networks for Constant Bit Rate Video Quality Enhancement.
Note: different from the paper, this code adds residual blocks to the pixel-domain branch of DRM module, but it has little impact on the effect of the network.
Because the DCN compilation in Windows environment may cause problems, this code may only run in Linux environment.
Requirements
Python 3.8
PyTorch 1.6.0
Numpy 1.19.2
Pillow 7.2.0
OpenCV 4.4.0.44
Prepare
Build
Deformable convolution is used in this code from: https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch
Run sh make.sh
to compile the deformable convolution. If there are compilation errors, delete the 'build/' directory before recompiling.
Datasets
The directories used in the project need to be created manually.
Download HEVC standard test sequence: https://pan.baidu.com/s/1m0jZfkhX_cjaoFrHlMp0Xg Extraction code: 88n9
Hm16.0 is used to compress the standard test sequence.
The original video and compressed video in YUV format are converted to MP4 format by ffmpeg.
We provided the BasketballPass video in MP4 format as a demonstration in this project.
Run tools/video_get_frames.py
to obtain the image sequence in PNG format from the video.
Pretrained models
Pretrained models are available: https://pan.baidu.com/s/1sszHgZ1tYVEu8toyUkFaUw Extraction code: i0zs
Run
Runrun.py
, and the generated images are saved in results/
.
If the size of GPU memory is not large enough to run the sequences A and B, please run run_group_A&B.py
.