B-DRRN: A Block Information Constrained Deep Recursive Residual Network for Video Compression Artifacts Reduction (PCS’19)

Paper, arXiv

Trinh Man Hoang, Jinjia Zhou

Picture Coding Symposium, Ningbo, China, PCS 2019

Table of Contents

  1. Introduction
  2. Citation
  3. Requirements and Dependencies
  4. Testing Pre-trained Models
  5. Training New Models


We developed a B-DRRN with an additional branch that used the Recursive Residual structure for limiting the size of the network. This branch then is used to learn the features from the block information which is represented for the source of block-based video coding artifact. Furthermore, our B-DRRN uses the sharing weight technique for all branches to keep the number of parameters remains the same with the main branch.


If you find the code and datasets useful in your research, please cite:

     title={B-DRRN: A Block Information Constrained Deep Recursive Residual Network for Video Compression Artifacts Reduction},
     author={Trinh Man Hoang, Jinjia Zhou},
     journal={Picture Coding Symposium},

Requirements and Dependencies

Testing Pre-trained Models

Make model weights dir and Middlebury dataset dir:

$ cd B_DRRN
$ mkdir model_weights
$ mkdir test_data

Download pretrained models for QP = 37 from https://drive.google.com/open?id=1HT1169L2U8VUJjCAjxTx0BYwaCVsJa8o and put it into ./model_weights/ folder.

Download and uncompressed the test set:

Decoded frames: https://drive.google.com/open?id=1PKRHDBPjY685oVBtkATUpzEVPpbh1FOs

$ unzip decoded_frames.zip

Mean Mask frames: https://drive.google.com/open?id=1Z4hwD5o7myFDNiM5pyHZq9SZ9mMEcfS-

$ unzip mean_mask_frames.zip

Ground Truth: https://drive.google.com/open?id=1etkaj9q38QyeiOQAI_06fW2Mv6a1-voj

$ unzip ground_truth.zip

We are good to go by:

$ python source/test/test.py --arch 'BDRRN' --weights_path 'path/to/your/weight.pth' --images_dir '/path/to/decoded_frame/folder/' --parts_dir '/path/to/mean_mask/folder/' --outputs_dir 'path/to/your/results_folder/' --gts_dir '/path/to/the/groundtruth/folder/' --num_channels 1 --cuda_device 0

Training New Models

Run the training script:

$ python source/train/train.py --arch 'BDRRN' --images_dir '/path/to/decoded_frame/folder/' --parts_dir '/path/to/mean_mask/folder/'  --labels_dir '/path/to/the/groundtruth/folder/' --outputs_dir 'path/to/weights/folder/' --num_epoch 150 --num_channels 1 --cuda_device 0 --batch_size 256 --format '.png'


Trinh Man Hoang


This repository (as well as its materials) is for non-commercial uses and research purposes only.