QUALITY METRICS ACCELERATOR WITH INLINE SCALERS
A scalable hardware accelerator configured to compute video quality metrics is disclosed. In some embodiments, an accelerator for video quality metrics comprises an application-specific integrated circuit that includes a first scaling unit configured to scale a resolution of at least a portion of a reference frame of a video, a second scaling unit configured to scale a resolution of at least a portion of a distorted frame of a transcoded version of the video, and a kernel configured to compute a video quality metric for the distorted frame with respect to the reference frame using at least a first scaled output of the first scaling unit or a second scaled output of the second scaling unit.
1 . A system, comprising:
a first scaling unit of an application-specific integrated circuit configured to scale a resolution of at least a portion of a reference frame of a video;
a second scaling unit of the application-specific integrated circuit configured to scale a resolution of at least a portion of a distorted frame of a transcoded version of the video; and
a kernel of the application-specific integrated circuit configured to compute a video quality metric for the distorted frame with respect to the reference frame using at least a first scaled output of the first scaling unit or a second scaled output of the second scaling unit.
2 . The system of claim 1 , wherein the kernel is configured to compute the video quality metric using both the first scaled output of the first scaling unit and the second scaled output of the second scaling unit.
3 . The system of claim 1 , wherein the first scaled output of the first scaling unit and the second scaled output of the second scaling unit are input into the kernel.
4 . The system of claim 1 , wherein the first scaled output of the first scaling unit and the second scaled output of the second scaling unit are not written to or read from memory.
5 . The system of claim 1 , wherein the first scaling unit and the second scaling unit scale to a prescribed viewport resolution.
6 . The system of claim 1 , wherein the first scaling unit and the second scaling unit are configured in an upscale mode, a downscale mode, or a bypass mode.
7 . The system of claim 1 , wherein the video quality metric comprises a Peak Signal-to-Noise Ratio (PSNR) metric.
8 . The system of claim 1 , wherein the video quality metric comprises a perception-based video quality metric.
9 . The system of claim 8 , wherein the perception-based video quality metric comprises one or more of: Structural Similarity Index Measure (SSIM), Multi-Scale SSIM, Visual Information Fidelity (VIF), Video Multimethod Assessment Fusion (VMAF), and Detail Loss Metric (DLM).
10 . The system of claim 1 , wherein the kernel comprises a first kernel and further comprising a second kernel of the application-specific integrated circuit configured to compute a no reference video quality metric.
11 . The system of claim 1 , wherein the application-specific integrated circuit comprises a plurality of kernels including the kernel.
12 . The system of claim 1 , wherein the first scaling unit, the second scaling unit, and the kernel comprise a first thread of the application-specific integrated circuit to compute the video quality metric for a first viewport resolution and wherein the application-specific integrated circuit comprises one or more additional threads to compute video quality metrics for one or more other viewport resolutions in parallel.
13 . The system of claim 1 , further comprising a controller of the application-specific integrated circuit configured to obtain reference frame data and distorted frame data from a main memory that is external to the system.
14 . The system of claim 1 , further comprising a buffer memory of the application-specific is integrated circuit configured to store the at least portion of the reference frame and the at least portion of the distorted frame.
15 . A method, comprising:
configuring a first scaling unit of an application-specific integrated circuit to scale a resolution of at least a portion of a reference frame of a video;
configuring a second scaling unit of the application-specific integrated circuit to scale a resolution of at least a portion of a distorted frame of a transcoded version of the video; and
configuring a kernel of the application-specific integrated circuit to compute a video quality metric for the distorted frame with respect to the reference frame using at least a first scaled output of the first scaling unit or a second scaled output of the second scaling unit.
16 . The method of claim 15 , wherein the kernel is configured to compute the video quality metric using both the first scaled output of the first scaling unit and the second scaled output of the second scaling unit.
17 . The method of claim 15 , wherein the video quality metric comprises a perception-based video quality metric.
18 . A computer program product embodied in a non-transitory computer readable medium and comprising computer instructions for:
configuring a first scaling unit of an application-specific integrated circuit to scale a resolution of at least a portion of a reference frame of a video;
configuring a second scaling unit of the application-specific integrated circuit to scale a resolution of at least a portion of a distorted frame of a transcoded version of the video; and
configuring a kernel of the application-specific integrated circuit to compute a video quality metric for the distorted frame with respect to the reference frame using at least a first scaled output of the first scaling unit or a second scaled output of the second scaling unit.
19 . The computer program product of claim 18 , wherein the kernel is configured to compute the video quality metric using both the first scaled output of the first scaling unit and the second scaled output of the second scaling unit.
20 . The computer program product of claim 18 , wherein the video quality metric comprises a perception-based video quality metric.