IP Library Granted Patent US 8,902,973
Granted Patent B2
US 8,902,973 · App. 13/079,955 · Granted Dec 2, 2014

Perceptual processing techniques for video transcoding

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,902,973
App. No.
13/079,955
Granted
Dec 2, 2014
Kind
B2
Abstract

Systems and methods of video transcoding that employ perceptual processing techniques for enhancing the perceptual quality of transcoded video information, communications, entertainment, and other video content. Such systems and methods of video transcoding are operative to perform perceptual processing of an input video bitstream using predetermined information carried by the input bitstream. Having performed such perceptual processing of the input bitstream, the perceptual quality of transcoded video delivered to an end user is significantly improved.

Claims (90)

1. A method of transcoding a coded video bitstream in a video transcoding system, comprising the steps of:

receiving, at the video transcoding system from an external video encoder, a coded video bitstream including a plurality of video frames, each video frame including a plurality of macroblocks (MBs), the coded video bitstream being encoded in a first coding format, at least some of the plurality of MBs being encoded in accordance with a predetermined coding mode;

decoding the plurality of video frames in the coded video bitstream;

extracting predetermined information from the coded video bitstream;

calculating, using at least some of the predetermined information, a likelihood value indicative of a likelihood that the coded video bitstream has been previously processed at the external video encoder to account for one or more perceptual insensitivity characteristics of a human visual system;

performing a comparison of the likelihood value and a predetermined threshold value;

in response to the comparison indicating the likelihood of the coded video bitstream being previously processed at the external video encoder, for each of at least some of the plurality of video frames in the coded video bitstream:

calculating, using at least some of the predetermined information, a distortion imperceptibility value for each of at least some of the plurality of MBs in the video frame as a function of at least a difference between an actual quantization parameter (QP) used by the external video encoder to encode the macroblock (MB), and an average QP used by the external video encoder to encode the respective MBs, the distortion imperceptibility value representing the imperceptibility of a presence of distortion in the MB with respect to the human visual system;

determining one or more quantization parameters (QPs) for the respective MBs encoded in accordance with the predetermined coding mode;

adjusting the distortion imperceptibility value for each of at least some of the plurality of MBs in the video frame based at least on one or more of the determined QPs for the respective MBs encoded in accordance with the predetermined coding mode;

calculating a QP for each of at least some of the plurality of MBs in the video frame using the adjusted distortion imperceptibility values for the respective MBs in the video frame; and

encoding the video frame in a second coding format using the calculated QPs for the respective MBs in the video frame; and

providing the plurality of video frames in an output video bitstream.

2. The method of claim 1 further comprising:

for each of at least some of the plurality of video frames in the coded video bitstream, calculating a spatial variation for the MB in the video frame.

3. The method of claim 2 wherein the predetermined information includes QP information for the respective macroblocks in the video frame, and wherein the method further comprises, for each of at least some of the plurality of video frames in the coded video bitstream:

adjusting the spatial variation for the MB in the video frame based on at least some of the QP information for the respective macroblocks.

4. The method of claim 3 wherein the calculating of the distortion imperceptibility value for the MB in the video frame includes calculating the distortion imperceptibility value for the MB in the video frame based on at least the spatial variation for the respective MB.

5. The method of claim 4 further comprising, for each of at least some of the plurality of video frames in the coded video bitstream, calculating a brightness of the MB in the video frame, and wherein the calculating of the distortion imperceptibility value for the MB in the video frame includes calculating the distortion imperceptibility value for the MB in the video frame based on at least (a) the spatial variation for the respective MB, and (b) the brightness of the respective MB.

6. The method of claim 1 wherein the predetermined information includes at least (a) QP information for the respective macroblocks in the video frame, and (b) MB information for the respective macroblocks in the video frame, and wherein the method further comprises:

determining the likelihood of the coded video bitstream being previously processed at the external video encoder based on at least some of the QP information and the MB information for the respective macroblocks.

7. The method of claim 1 further comprising, for each of at least some of the plurality of video frames in the coded video bitstream:

determining a distortion imperceptibility level for the MB in the video frame based on at least the distortion imperceptibility value for the respective MB.

8. The method of claim 7 further comprising, for each of at least some of the plurality of video frames in the coded video bitstream:

generating a distortion imperceptibility map for the video frame, the distortion imperceptibility map containing information based on at least the distortion imperceptibility level for the MB in the video frame.

9. The method of claim 8 further comprising, for each of at least some of the plurality of video frames in the coded video bitstream:

generating a QP for the MB in the video frame, and a target number of bits to be allocated for the video frame, using a predetermined rate control function.

10. The method of claim 9 further comprising, for each of at least some of the plurality of video frames in the coded video bitstream:

modulating the QP for the MB in the video frame using one or more of the information contained in the distortion imperceptibility map for the video frame, the QP for the respective MB, and the target number of bits to be allocated for the video frame.

11. The method of claim 7 wherein the predetermined information includes video frame information, wherein the distortion imperceptibility level for the MB in the video frame has an associated threshold value, each associated threshold value being dependent upon a resolution of the video frame, and wherein the method further comprises, for each of at least some of the plurality of video frames in the coded video bitstream:

determining the resolution of the video frame based on at least some of the video frame information.

12. The method of claim 1 further comprising, for each of at least some of the plurality of video frames in the coded video bitstream:

calculating motion compensated prediction errors (MCP errors) for the video frame.

13. The method of claim 12 further comprising, for each of at least some of the plurality of video frames in the coded video bitstream:

transforming the MCP errors to generate transform coefficients for the MCP errors for the video frame.

14. The method of claim 13 further comprising, for each of at least some of the plurality of video frames in the coded video bitstream:

quantizing the transform coefficients using one or more of the QPs for the respective macroblocks in the video frame.

15. The method of claim 1 wherein the providing of the plurality of video frames in the output video bitstream includes providing the plurality of video frames in the output video bitstream for subsequent display to an end user.

16. The method of claim 1 wherein the predetermined coding mode is a skip coding mode, and wherein the determining of the one or more QPs includes estimating one or more QPs for the respective MBs encoded in accordance with the skip coding mode.

17. The method of claim 16 wherein the adjusting of the distortion imperceptibility value includes adjusting the distortion imperceptibility value for each of at least some of the plurality of MBs in the video frame based at least on the estimated QPs for the respective MBs encoded in accordance with the skip coding mode.

18. A video transcoding system, comprising:

a video decoder operative (a) to receive a coded video bitstream from an external video encoder, (b) to decode a plurality of video frames in the coded video bitstream, and (b) to extract predetermined information from the coded video bitstream, each video frame including a plurality of macroblocks (MBs), the coded video bitstream being encoded in a first coding format, at least some of the plurality of MBs being encoded in accordance with a predetermined coding mode; and

a video encoder operative, for each of at least some of the plurality of video frames in the coded video bitstream:

to calculate, using at least some of the predetermined information, a likelihood value indicative of a likelihood that the coded video bitstream has been previously processed at the external video encoder to account for one or more perceptual insensitivity characteristics of a human visual system;

to perform a comparison of the likelihood value and a predetermined threshold value;

in response to the comparison indicating the likelihood of the coded video bitstream being previously processed at the external video encoder, for each of at least some of the plurality of video frames in the coded video bitstream:

to calculate, using at least some of the predetermined information, a distortion imperceptibility value for each of at least some of the plurality of MBs in the video frame as a function of at least a difference between an actual quantization parameter (QP) used by the external video encoder to encode the macroblock (MB), and an average QP used by the external video encoder to encode the respective MBs, the distortion imperceptibility value representing the imperceptibility of a presence of distortion in the MB with respect to the human visual system;

to determine one or more quantization parameters (QPs) for the respective MBs encoded in accordance with the predetermined coding mode;

to adjust the distortion imperceptibility value for each of at least some of the plurality of MBs in the video frame based at least on one or more of the determined QPs for the respective MBs encoded in accordance with the predetermined coding mode;

to calculate a QP for each of at least some of the plurality of MBs in the video frame using the adjusted distortion imperceptibility values for the respective MBs in the video frame; and

to encode the video frame in a second coding format using the calculated QPs for the respective MBs in the video frame; and

to provide the plurality of video frames in an output video bitstream.

19. The system of claim 18 wherein the encoder is further operative to provide the plurality of video frames in the output video bitstream for subsequent display to an end user.

20. A method of transcoding a coded video bitstream in a video transcoding system, comprising the steps of:

receiving, at the video transcoding system from an external video encoder, a coded video bitstream including a plurality of video frames, each video frame including a plurality of macroblocks (MBs), the coded video bitstream being encoded in a first coding format, at least some of the plurality of MBs being encoded in accordance with a predetermined coding mode;

decoding the plurality of video frames in the coded video bitstream;

extracting predetermined information from the coded video bitstream, the predetermined information including at least quantization parameter (QP) information for the respective MBs in the video frame, and macroblock (MB) information for the respective MBs in the video frame;

calculating, using at least the QP information and the MB information, a likelihood value indicative of a likelihood that the coded video bitstream has been previously processed at the external video encoder to account for one or more perceptual insensitivity characteristics of a human visual system;

performing a comparison of the likelihood value and a predetermined threshold value;

in response to the comparison indicating the likelihood of the coded video bitstream being previously processed at the external video encoder, for each of at least some of the plurality of video frames in the coded video bitstream:

calculating a spatial variation for each of at least some of the plurality of MBs in the video frame;

adjusting the spatial variation for the MB in the video frame based on at least some of the QP information for the respective MBs;

calculating a brightness of the MB in the video frame;

calculating a distortion imperceptibility value for the MB in the video frame based on at least (a) the spatial variation for the respective MB, and (b) the brightness of the respective MB, the distortion imperceptibility value representing the imperceptibility of a presence of distortion in the respective MB with respect to the human visual system;

determining one or more quantization parameters (QPs) for the respective MBs encoded in accordance with the predetermined coding mode;

adjusting the distortion imperceptibility value for the MB in the video frame based at least on one or more of the determined QPs for the respective MBs encoded in accordance with the predetermined coding mode;

calculating a QP for the MB in the video frame using the adjusted distortion imperceptibility values for the respective MBs in the video frame; and

encoding the video frame in a second coding format using the calculated QPs for the respective MBs in the video frame; and

providing the plurality of video frames in an output video bitstream.

21. A method of transcoding a coded video bitstream in a video transcoding system, comprising the steps of:

receiving, at the video transcoding system from an external video encoder, a coded video bitstream including a plurality of video frames, each video frame including a plurality of macroblocks (MBs), the coded video bitstream being encoded in a first coding format, at least some of the plurality of MBs being encoded in accordance with a predetermined coding mode;

decoding the plurality of video frames in the coded video bitstream;

extracting predetermined information from the coded video bitstream, the predetermined information including at least quantization parameter (QP) information, macroblock (MB) information, and video frame information;

calculating, using at least the QP information and the MB information, a likelihood value indicative of a likelihood that the coded video bitstream has been previously processed at the external video encoder to account for one or more perceptual insensitivity characteristics of a human visual system;

performing a comparison of the likelihood value and a predetermined threshold value;

in response to the comparison indicating the likelihood of the coded video bitstream being previously processed at the external video encoder, for each of at least some of the plurality of video frames in the coded video bitstream:

calculating, using at least the QP information, a distortion imperceptibility value for each of at least some of the plurality of MBs in the video frame as a function of at least a difference between an actual QP used by the external video encoder to encode the MB, and an average QP used by the external video encoder to encode the respective MBs, the distortion imperceptibility value representing the imperceptibility of a presence of distortion in the macroblock (MB) with respect to the human visual system;

determining one or more quantization parameters (QPs) for the respective MBs encoded in accordance with the predetermined coding mode;

adjusting the distortion imperceptibility value for each of at least some of the plurality of MBs in the video frame based at least on one or more of the determined QPs for the respective MBs encoded in accordance with the predetermined coding mode;

determining a distortion imperceptibility level for the MB in the video frame based on at least the adjusted distortion imperceptibility value for the respective MB, the distortion imperceptibility level for the MB in the video frame having an associated threshold value, each associated threshold value being dependent upon a resolution of the video frame;

determining the resolution of the video frame based on at least some of the video frame information;

generating a distortion imperceptibility map for the video frame, the distortion imperceptibility map containing information based on at least the distortion imperceptibility level for the MB in the video frame;

calculating a first QP for the MB in the video frame, and a target number of bits to be allocated for the video frame, using a predetermined rate control function;

modulating the first QP for the MB in the video frame using one or more of the information contained in the distortion imperceptibility map for the video frame, and the target number of bits to be allocated for the video frame;

calculating a second QP for the MB in the video frame using the distortion imperceptibility values for the respective MBs in the video frame;

calculating motion compensated prediction errors (MCP errors) for the video frame;

transforming the MCP errors to generate transform coefficients for the MCP errors for the video frame;

quantizing the transform coefficients for the MCP errors using one or more of the calculated quantization parameters (QPs) for the respective MBs in the video frame; and

encoding the video frame in a second coding format using the calculated quantization parameters for the respective MBs in the video frame; and

providing the plurality of video frames in an output video bitstream.

Assignments (5)
SECURITY AGREEMENT Recorded Jun 30, 2015
From: DIALOGIC (US) INC.; DIALOGIC INC.; DIALOGIC US HOLDINGS INC.; DIALOGIC DISTRIBUTION LIMITED; DIALOGIC MANUFACTURING LIMITED; DIALOGIC CORPORATION; DIALOGIC GROUP INC.
To: SILICON VALLEY BANK
Reel/Frame 036037/0165 →
RELEASE OF SECURITY INTEREST Recorded Nov 25, 2014
From: OBSIDIAN, LLC
To: DIALOGIC CORPORATION, F/K/A EICON NETWORKS CORPORATION; DIALOGIC INC.; DIALOGIC (US) INC., F/K/A DIALOGIC INC. AND F/K/A EICON NETWORKS INC.; DIALOGIC DISTRIBUTION LIMITED, F/K/A EICON NETWORKS DISTRIBUTION LIMITED; DIALOGIC MANUFACTURING LIMITED, F/K/A EICON NETWORKS MANUFACTURING LIMITED; DIALOGIC US HOLDINGS INC.; DIALOGIC RESEARCH INC., F/K/A EICON NETWORKS RESEARCH INC.; DIALOGIC JAPAN, INC., F/K/A CANTATA JAPAN, INC.; CANTATA TECHNOLOGY, INC.; EAS GROUP, INC.; SHIVA (US) NETWORK CORPORATION; EXCEL SWITCHING CORPORATION; EXCEL SECURITIES CORPORATION; CANTATA TECHNOLOGY INTERNATIONAL, INC.; BROOKTROUT NETWORKS GROUP, INC.; BROOKTROUT TECHNOLOGY, INC.; SNOWSHORE NETWORKS, INC.; BROOKTROUT SECURITIES CORPORATION
Reel/Frame 034468/0654 →
SUPPLEMENTAL INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Mar 26, 2012
From: DIALOGIC INC.; DIALOGIC CORPORATION; DIALOGIC NETWORKS (ISRAEL) LTD.
To: OBSIDIAN, LLC, AS COLLATERAL AGENT
Reel/Frame 027931/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2012
From: DIALOGIC (US) INC.
To: DIALOGIC CORPORATION
Reel/Frame 027655/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2011
From: YANG, KYEONG H.; PARK, SANGSEOK
To: DIALOGIC (US) INC.
Reel/Frame 026077/0641 →