Contents

VQ Analyzer 2021

Overview

The VQ Analyzer is a graphical coded video bitstream analysis tool, supporting the following coding standards:

  • AVS3, SHA-1 (phase-2 branch of HPM source, tag HPM-12.0): b7587520e87be91bbd4a4bd29b2e77c943eaba6d
  • VVC, SHA-1 (VTM 13.0 tag): 274e8fc7705e567b9c9adbc69469d95bb8a70745
  • AV1, SHA-1 (av1-normative branch of AOM source): acc3f97753f67e0ce7290b98b7bb71152fe5e264
  • HEVC: (ISO/IEC 23008-2 MPEG-H Part 2 or ITU-T H.265) , 8/10-bit
  • HEVC: RExt extension, 8/10/12-bit, 4:0:0/4:2:0/4:2:2/4:4:4
  • HEVC: SCC extension, conform to HM + SCM 8.6 in reference code
  • HEVC Scalable/Multiview Extension
  • Google’s VP9, profiles 0,1,2,3, 4:2:0/4:2:2/4:4:0/4:4:4, 8/10/12-bit
  • AVC: (H.264/AVC, ISO/IEC 14496-10, MPEG-4 Part 10), except SVC/MVC
  • MPEG2 (ISO/IEC 13818-2 Part 2), 4:2:0/4:2:2, 8-bit
  • MKV, MP4, MMT(ARIB STD-B60 1.0), MPEG2 TS/PS, AVI, ASF, FLV, IVF containers

Once a bitstream is loaded, the tool allows the user to inspect each major step of the decode process visually and numerically, and the structure of the coded image can be explored. This data can be used as a visual reference when learning about HEVC/VP9/AVC/MPEG2/AV1/VVC/AVS3 or when debugging a particular encoder or decoder.

Release Notes ver 6.3

New Features

  • VVC Versatile Video Coding (MPEG-I Part 3) is a video compression standard

    • added vizualization of interpolation process fos inter block samples
    • added formulas and parameters for calculating each sample in Details for all inter modes
    • added display of Virtual Boundaries in Details for all modes
    • added DPB info panel
    • added HRD VBV buffer curve
    • added Palette details
    • changed splitting into square blocks instead of CUs in the Adaptive Filter mode
    • added delta QP formula in transform Details
  • ALL

    • added hotkeys for yuv view switching and in Info Overlays mode
  • AVS3

    • updated to HPM-12.1
    • added support of phase1 profiles
    • added library stream’ feature
    • added picture statistic (qp/bits/bin on picture level)
    • improve performance

Bug Fixes

  • VVC Versatile Video Coding (MPEG-I Part 3) is a video compression standard

    • robustness fixes in handling Picture Header, Slice Header, and Filler Data corruptions
    • speed optimization in palette block decoding
    • runtime selection optimized functions according to CPUID
    • added pixel coordinates for motion buffer submode (the top left pixel for all 4*4 subblock)
    • removed the tick of separated chroma for Adaptive Filter and SAO modes
    • intra_subpartition_flags use values 0/1 instead of 1/2
    • reduced memory usage at VVC streams processing
  • YUV

    • improved work with RGB files
    • added ability to open dependent file for YUV files

Release Notes ver 6.2

New Features

  • VVC Versatile Video Coding (MPEG-I Part 3) is a video compression standard

    • updated to VTM 13.0
    • added spec variables tree type and mode type to selection info
    • improved candidates list in Details
    • added DMVR details
    • added BDOF details
    • added handling of skipped and undisplayed frames
    • added Virtual Boundaries drawing for all modes
  • AVS3

    • updated to HPM-12.0

Bug Fixes

  • VVC Versatile Video Coding (MPEG-I Part 3) is a video compression standard

    • fixed tile position for selected block (selection info panel)
    • fixed statistic collection and visualization
    • syntax element names alignment with specification
    • added correct processing of streams with several PPS/SPS
    • corrected reset scale and position for detailed view
  • YUV

    • fixed chroma subsampling
  • AV1

    • use actual start position for hierarchy blocks (instead of using leaf block start position)
  • All

    • general stability enhancement
    • general GUI improvements
    • improved dependent stream synchronization
  • GUI Dual View

    • synchronize info panel offsets during “Go” to block or switching between modes

Release Notes ver 6.1

New Features

  • VVC Versatile Video Coding (MPEG-I Part 3) is a video compression standard

    • syntax elements with errors are indicated in red in NAL tab
    • added SAO calculation details
    • CABAC range and value of syntax elements are added to Syntax info CU tab
    • in Loop Filter mode block boundaries are marked for different edge types
    • enhancements for additional info in Loop Filter details by clicking on edge and modified pixel
    • added the ability not to display dropped frames
    • added CU/TU chroma sizes in GUI statistics and bins in picture statistics
    • improved display mode of detailed Adaptive Filter
    • improved display mode of detailed Prediction
    • added CTB info in Coding Flow mode
    • added MaxCTB size in selection info
    • added candidate map to Prediction details
  • AVS3

    • added preliminary support based on HPM phase-2 branch, tag HPM-11.0, SHA-1 75a6aca35cf0eb54790c8d33760b151fa2fb00d9

Bug Fixes

  • VVC Versatile Video Coding (MPEG-I Part 3) is a video compression standard

    • added LFNST coefficients in Transform details
    • fixed difference option in dependent stream mode for motion vectors GEO and SBTVMP
    • fixed incorrect values in CIIP details
    • fixed GUI statistics and format of CLI statistic file
    • fixed color for L1 arrow in thumbnails
    • fixed display of motion vectors in main and detail views for affine blocks
    • fixed display of pixel coordinates in selection info for detail view
    • fixed transform scan coefficients in case sh_ts_residual_coding_disabled_flag = 1
  • YUV

    • in debug YUV stream bitdepth is used by default
  • All

    • general stability enhancement
    • general GUI improvements
    • fixed issue with scaling of GUI elements on MacOs
  • License

    • the proxy issue is fixed while working with FS (license floating server)

Release Notes ver 6.0

New Features

  • VVC Versatile Video Coding (MPEG-I Part 3) is a video compression standard

    • updated to VTM 12.0
    • transform detail view
    • syntax elements statistics
    • error resilience improvement (flexibility)
  • YUV

    • added metrics in stream view

Bug Fixes

  • VVC Versatile Video Coding (MPEG-I Part 3) is a video compression standard

    • fixed display borders in loop filter mode
    • fixed hex/decimal switching for pixels in detail view
  • AV1

    • fixed conformance check for level_6.3
  • HEVC

    • fixed incorrect PPS QM in case pps_scaling_list_data_present_flag = 0
  • MPEG2

    • fixed blocks selecting
    • fixed chroma details
  • All

    • fixed crashes in dependent bitstream mode
    • general GUI improvements

Release Notes ver 5.6

New Features

  • VVC Versatile Video Coding (MPEG-I Part 3) is a video compression standard

    • updated to VTM 10.2
    • intra MPM details
    • MIP detail view for intra blocks
    • CCLM detail view for intra chroma
    • Adaptive filter extended detail view
    • added motion buffer mode
  • All

    • added simple color space converter

Release Notes ver 5.5

New Features

  • VVC Versatile Video Coding (MPEG-I Part 3) is a video compression standard

    • ISP detail view for intra blocks
    • Motion vectors candidates for Merge modes
    • GEO detail view for inter blocks
    • Field mode support
  • All

    • Added bit depth control when loading debug YUV

Bug Fixes

  • VVC

    • Fixed crashes on random navigation
    • Decrease memory usage
    • Fixed incorrect motion vectors candidates for nonMerge modes
    • Correct chroma IBC details
    • Fixed separated chroma blocks for intra frames in Syntax info CU
  • AV1

    • Fixed calculation of several level restrictions
    • Fixed transition to AV1 SuperRes Filter Details mode, in case of SuperRes is Off

Release Notes ver 5.4

New Features

  • VVC Versatile Video Coding (MPEG-I Part 3) is a video compression standard

    • Full conformance to VVC VTM 10.0 (see Known limitations)
    • MRL detail view for intra blocks
    • Additional info for Merge modes
    • Motion vectors differences for Affine and IBC details
    • Block vector to IBC details

Bug Fixes

  • VVC

    • Printing BDPCM for separated chroma in reconstruction mode
    • Сrash in RefIdx mode when zooming was fixed
  • Other

    • General GUI improvements

Known limitation:

  • VVC fields layout is not fully implemented
  • Transition to AV1 SuperRes Filter Details mode(F7), in case of SuperRes is Off in a bitstream, makes invisible control buttons (Pic, Info etc). Changing a Mode of a Frame position restores back

Release Notes ver 5.3

New Features

  • VVC Versatile Video Coding (MPEG-I Part 3) is a video compression standard

    • subPicture boundaries drawing
    • add number of subPicture in selection info
    • detaled info for CIIP blocks
    • IBC main and details
    • BDPCM blocks marking
    • visualisation for affine motion model
    • add motion vectors differences for AMVP details
    • add motion vectors candidates for IBC, AMVP and affine details
    • separated chroma blocks in Info Overlays CU Types

Bug Fixes

  • VVC

    • intra chroma details for separated chroma blocks in inter frames
  • AVC

    • fix displaying of luma QP for high bit depth (>8) in Selection Info
  • All:

    • R button in Info Overlays Statistic

Release Notes ver 5.2

New Features

  • VVC Versatile Video Coding (MPEG-I Part 3) is a video compression standard

    • dual tree for Info Overlays (Heat map, QP)

Bug Fixes

  • VVC

    • max size ctu changes with respect to parameter set
    • loop filter details fixes
    • confirmation of compliance to ITU VTM 9.0 conformance streams
  • AV1

    • add one extra pixel for odd frame size in film grain mode
    • fix references visualization for displayed frames in thumbnails
  • YUV

    • add support for odd frame sizes
    • fix navigation to previous frame
  • OTHER:

    • general stability improvements for VP9 and hevc
    • general GUI improvements

Release Notes ver 5.1

New Features

  • VVC Versatile Video Coding (MPEG-I Part 3) is a video compression standard

    • updated to VTM 9.0
    • separate coding tree
    • intra detaled info
    • inter reference blocks
  • AVC/HEVC

    • HRD mode with arrival times
  • YUV

    • add sample.yuv

Bug Fixes

  • VVC

    • dependent view synchronization
    • intra chroma statistics
    • inter vectors drawing (correct arrows length)

System Requirements

Hardware

  • 1GB RAM minimum, 4GB recommended when loading 4K pictures.

Software - Microsoft* Windows* 7, Microsoft* Windows* 8, Microsoft* Windows* 8.1, Microsoft* Windows* 10, 32-bit/64-bit. - Ubuntu* Linux* 16.04 and higher, SLES* 12 and higher, CentOS* 7.4 and higher - MacOS* 10.12 and higher

Package Contents

content: VQ Analyzer Release Notes (this file), VQ Analyzer User Guide, licenses, binary executables, tool’s internal and third-party binaries.

Installation

To begin installation: - Double-click on the executable file to begin installation.

Activation during installation You must activate the product to finish installation. Use one of these methods: - Activation using serial number. Internet connection is required; - Remote activation using serial number. Used when your computer is not connected to the internet. You can use another computer with internet access; - Activation using license file; - Activation using license server. - You can also evaluate the product for trial period. If you have problems with installation under MacOS*, please, check System Preferences -> Security & Privacy options under “Allow apps downloaded from:”. The option “Mac App Store and identified developers” should be checked.

Known Limitations

The VQ Analyzer has the following known limitations: - AVC/HEVC HRD buffer fullness uses only Type II bitstream for visualization. - Archive yuv files (.zip, gz) fully unpacked in memory currently, huge files could require a lot of memory. - For zip files only first file in archive is considered to be used as compressed yuv file. Only deflate and store compression methods are supported. - Archived y4m files are not supported yet. - AVC decoding does not support gaps in frame_num and slice groups currently.

AV1 limitations: - Memory consumption can be high on 4K resolutions.

HEVC Conformance checks: - Bitstream conformance to active profile, tier and level representation and HRD parameters is tested on general representation only. (PTL syntax elements with prefix ’general_’) - Bitstream conformance to HRD parameters is tested using VUI parameters specified in active SPS only. - For Intra only profiles picture reordering is not tested. - Common Multilayer HEVC: external base layer configurations are not supported. - HEVC Slice data errors: bitstream restrictions specified SPS VUI or VPS VUI parameters are not supported.

HEVC Decoder behavior: - For Range extensions, High throughput and Screen-Extended (SCC) profiles in order to detect sub-profile (e.g. Monochrome, Main 444 12bit, …) bitstream constraint flags, coded in PTL, must be set according to the tables specified in clause A.3 of the spec. - For Still Picture profiles test for number of pictures present in bitstream is applied to whole bitstream file. - For Screen-Extended (SCC) profiles in order to detect these profiles, general_profile_idc must be set to 31 or general_compatibility_flag[31] must be set to 1. (same as of HM16.16+SCC8.5) (Will be changed to 9 (according to spec) in future releases) - Multilayer bitstreams are decoded with highest available index of Layer Set (TargetOlsIdx is set to NumOutputLayerSets – 1). All available layers will be output. - Different layers in Multiview HEVC stream must have the same resolution and chroma format for inter-layer prediction. (Configurations with different chroma format or resolution are still decodable, but resampling process for inter-layer prediction will be invoked in that cases) - SCC extensions presence in bitstream is tested on both position 3 and 6 of sps_extension_bit and pps_extension_bit.

Qt

Qt licensed under the GNU Lesser General Public License (LGPL) version 3. It is appropriate for the development of Qt applications provided you can comply with the terms and conditions of the GNU LGPL version 23. For details, please refer to http://qt-project.org/doc/qt-5/licensing.html for specific details.

Zlib

zlib.h – interface of the ‘zlib’ general purpose compression library version 1.2.8, April 28th, 2013

Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler

This software is provided ‘as-is’, without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
  3. This notice may not be removed or altered from any source distribution.

Jean-loup Gailly jloup@gzip.org Mark Adler madler@alumni.caltech.edu

Qwt

Qwt License Version 1.0, January 1, 2003 The Qwt library and included programs are provided under the terms of the GNU LESSER GENERAL PUBLIC LICENSE (LGPL) with the following exceptions: 1. Widgets that are subclassed from Qwt widgets do not constitute a derivative work. 2. Static linking of applications and widgets to the Qwt library does not constitute a derivative work and does not require the author to provide source code for the application or widget, use the shared Qwt libraries, or link their applications or widgets against a user-supplied version of Qwt. If you link the application or widget to a modified version of Qwt, then the changes to Qwt must be provided under the terms of the LGPL in sections 1, 2, and 4. 3. You do not have to provide a copy of the Qwt license with programs that are linked to the Qwt library, nor do you have to identify the Qwt license in your program or documentation as required by section 6 of the LGPL. However, programs must still identify their use of Qwt. The following example statement can be included in user documentation to satisfy this requirement: [program/widget] is based in part on the work of the Qwt project http://qwt.sf.net