Dolby
  • Up and Running
  • Amazon Web Services
  • Sources
  • Hybrik JSON
  • Video Filters
  • Audio Filters
  • Working with Audio
  • Task Modifiers
  • Package Task
  • Analysis & Quality Control
  • Analysis Task Overview
  • Dolby Atmos Mezzanine Analysis
  • Analysis Reports
  • Video VMAF
  • Black Video Analysis
  • Video Interlacing Analysis
  • Video Complexity Analysis
  • Video Blockiness Analysis
  • Video Compressed Stats Analysis
  • Video PSNR Analysis
  • Video SSIM Analysis
  • Video Photo-Sensitive Epilepsy Analysis
  • Audio Deep Properties Analysis
  • Audio PSNR
  • Audio Silence Analysis
  • Dolby Technologies
  • Additional Tasks
  • Hybrik Versions
  • QC Player
  • Machine Performance Analysis

    Video Peak Signal to Noise Ratio (PSNR) Analysis

    Hybrik has a variety of video analysis types to algorithmically approximate a video’s subjective quality in comparison to a compare_asset. A common pattern is to connect a transcode task to an analyze task, using the original source file as the compare_asset to compare the quality of your transcoded output to the original source.

    PSNR approximates quality of the video by looking at the signal difference of the compare_asset to the source and looking at the noise, or errors, introduced in compression.

    The score ranges depending on bit-depth. For 8-bit video, a typical range for scores is 25-50dB with higher values being a better result. 45dB or higher is considered to be excellent.

    Sample Usage

    Because PSNR compares the difference between two videos, we pass a compare_asset to be used.

    The sample json below is set to analyze the SSIM difference between the video fed into the analyze task (from the upstream task, such as a source or transcode task) and the compare_asset, in this case the source video.

    { 
        "uid": "psnr_analyze_task",
        "kind": "analyze",
        "task": {
            "retry_method": "fail"
        },
        "payload": {
            "general_properties": {
                "enabled": true
            },
            "compare_asset": {
                "kind": "asset_url",
                "payload": {
                    "storage_provider": "s3",
                    "url": "{{source_path}}/{{source_filename}}"
                }
            },
            "deep_properties": {
                "video": {
                    "psnr": {
                        "enabled": true
                    }
                }
            }
        }
    }
    

    Analyzer Results

    In the results you get information such as frame count, PSNR mean, standard deviation and the location in the media of the highest and lowest scores.

    Results from running this analysis will be reported in the Hybrik console, as well as in the job summary json, in the “analyzer / deep_properties” section of the job result json.

    In the Hybrik console:

    1. Select the completed job from the list in the upper pane
    2. In the lower pane click the “Task Details” tab
    3. Click the “Analyzer Results” box
    4. Expand the view

    psnr_results

    Job Summary JSON Excerpt

    "deep_properties": {
      "video": {
        "psnr": {
          "frames": 2879,
          "total_db": 25.92,
          "total_y_db": 43.21,
          "mean_db": 35.1,
          "mean_y_db": 52.66,
          "stddev": 35.86,
          "stddev_y": 37.16,
          "min_db": 20.28,
          "min_pos_frame": 1151,
          "min_pos_sec": 46,
          "max_db": 255,
          "max_pos_frame": 0,
          "max_pos_sec": 0,
          "min_y_db": 35.44,
          "min_pos_frame_y": 340,
          "min_pos_sec_y": 13.6,
          "max_y_db": 255,
          "max_pos_frame_y": 0,
          "max_pos_sec_y": 0,
          "charts": [
            ...
    

    Example Job

    • PSNR Analysis Example Job
    • Example PSNR Result JSON