IP Library › Granted Patent US 10,104,401
Granted Patent B2
US 10,104,401 · App. 14/663,218 · Granted Oct 16, 2018

Efficient software for transcoding to HEVC on multi-core processors

Inventors: Jiangtao Wen (La Jolla, CA); Yucong Chen (Beijing, CN); Ziyu Wen (Beijing, CN); Tong Shen (Beijing, CN)
Assignee: NANJING YUYAN INFORMATION TECHNOLOGY LTD.
H04N19/96H04N19/103H04N19/157H04N19/176H04N19/196H04N19/40H04N19/436H04N19/52H04N19/593H04N19/625
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 10,104,401
App. No.
14/663,218
Granted
Oct 16, 2018
Kind
B2
Abstract

The latest High Efficiency Video Coding (HEVC) standard achieves significant compression efficiency improvement over the H.264 standard, at a much higher cost of computational complexity. A framework for software-based H.264 to HEVC transcoding on multicore processors and distributed systems is provided. By utilizing information extracted from the input H.264 bitstream, the transcoding process can be accelerated at a high ratio with modest visual quality loss. Wavefront Parallel Processing (WPP) and SIMD acceleration are also implemented to improve the trans coding efficiency on multi-core processors with SIMD instruction set extensions. Based on the HEVC HM 12.0 reference software and using standard HEVC test bitstreams, the proposed transcoder can achieve around 120× speed up over decoding and re-encoding based on ffmpeg and the HM software without significant R-D performance loss.

Claims (48)

1. A method of generating an H.265/HEVC bitstream comprising:

parsing a previously encoded bitstream into a plurality of independently decodable Group of Pictures (GOPs) via a delivery node for processing in parallel, wherein the parsed GOPs are processed by separate multi-core processors;

sending each of the GOPs to one of worker nodes via a delivery node;

for each of the GOPs, processing a plurality of coding tree units (CTUs) via one of the worker nodes by:

determining encoding parameters of respective CTUs using encoding information extracted from the previously encoded bitstream; and

encoding the CTUs of the respective GOPs into respective GOP-H.265/HVEC bitstreams using the determined encoding parameters;

collecting the respective GOP-H.265/HVEC bitstreams for respective from the worker node via the delivery node; and

combining the respective GOP-H.265/HVEC bitstream for respective GOPs into the H.265/HEVC bitstream via the delivery node.

2. The method of claim 1 , wherein the encoding parameters comprise partition sizes, prediction modes, reference pictures and motion vectors.

3. The method of claim 1 , wherein encoding parameters predicted based on the partition sizes, prediction modes, reference pictures and motion vectors extracted from the previously encoded bitstream are used to expedite mode decision and motion estimation processing when encoding the respective GOP-H.265 bitstreams.

4. The method of claim 1 , wherein coding units (CUs) of the plurality of CTUs are processed using Wavefront Parallel Processing (WPP).

5. The method of claim 4 , wherein thread priority of threads processing upper row CUs is higher than threads processing lower row CUs.

6. The method of claim 1 , wherein each of the plurality of CTUs comprise a plurality of coding units (CU) each identified as one of:

a legacy CU having a corresponding macro-block (MB) or sub-MB partition in the previously encoded bitstream; and

an extended CU corresponding to multiple MBs in the previously encoded bitstream.

7. The method of claim 6 , wherein the CUs are checked to determine partition size and prediction mode.

8. The method of claim 7 , wherein for legacy CUs, a partition size is checked corresponding to a partition size used in the previously encoded bitstream and if the partition size is in a current division depth the partitioning will stop splitting into smaller partitions.

9. The method of claim 7 , wherein for extended CUs, partitions and modes are checked based on the MBs covered by the extended CU.

10. The method of claim 9 , wherein the partitions and modes checked are:

Merge2N×2N mode is always checked;

Inter2N×2N mode is checked when there exists more than 2 MBs using the Inter16×16 mode;

InterN×2N mode is checked when a left two MBs both use the Inter16×16 mode or right two MBs both use the Inter16×16 mode;

Inter2N×N mode is checked when both the upper two or both the lower two MBs use the Inter16×16 mode; and Intra2N×2N mode is checked when there exists more than 2 MBs using Intra modes.

11. The method of claim 7 , wherein after determining the partition size and prediction mode, reference pictures are selected.

12. The method of claim 11 , wherein: for Prediction Units (PUs) in legacy CUs, reference pictures for corresponding MB or sub-MB partitions in the previously encoded bitstream are checked; and

for PUs in extended CUs all reference pictures for the inter MBs covered by the prediction units are checked.

13. The method of claim 11 , wherein motion vectors for extended CUs are estimated using a mean of motion vectors of the inter MBs covered by the extended CU and a motion vector predictor determined according to H.265/HVEC.

14. A system for generating an H.265/HEVC bitstream comprising:

at least one processing unit for executing instructions; and

at least one memory unit storing instructions, which when executed by the at least one processor unit configure the system to:

parse a previously encoded bitstream into a plurality of independently decodable Group of Pictures (GOPs) via a delivery node for processing in parallel, wherein the parsed GOPs are processed by separate multi-core processors;

send each of the GOPs to one of worker nodes via a delivery node;

for each of the GOPs, processing a plurality of coding tree units (CTUs) via one of the worker nodes by:

determine encoding parameters of respective CTUs using encoding information extracted from the previously encoded bitstream;

encode the CTUs of the respective GOPs into respective GOP-H.265/HVEC bitstreams using the determined encoding parameters;

collect the respective GOP-H.265/HVEC bitstreams for respective from the worker node via the delivery node; and

combine the respective GOP-H.265/HVEC bitstream for respective GOPs into the H.265/HEVC bitstream via the delivery node.

15. The system of claim 14 , comprising a plurality of computer systems coupled together by a gigabit or faster communication network, each comprising respective processing units and memory units, wherein:

a first computer system of the plurality of computer systems is configured to parse the previously encoded bitstream into the plurality of GOPs and combine the respective GOP-H.265/HVEC bitstream for respective GOPs into the H.265/HEVC bitstream; and

a second computer system of the plurality of computer systems is configured to process the plurality of CTUs for at least one of the GOPs.

16. The system of claim 15 , wherein the first computer system is further configured to process the plurality of CTUs for at least one of the GOPs.

17. The system of claim 14 , wherein the encoding parameters comprise partition sizes, prediction modes, reference pictures and motion vectors.

18. The system of claim 14 , wherein each of the plurality of CTUs comprise a plurality of coding units (CU) each identified as one of:

a legacy CU having a corresponding macro-block (MB) or sub-MB partition in the previously encoded bitstream; and

an extended CU corresponding to multiple MBs in the previously encoded bitstream,

wherein the CUs are checked to determine partition size and prediction mode and for legacy CUs, a partition size is checked corresponding to a partition size used in the previously encoded bitstream and if the partition size is in a current division depth the partitioning will stop splitting into smaller partitions, while for extended CUs, partitions and modes are checked based on the MBs covered by the extended CU.

19. The system of claim 18 , wherein after determining the partition size and prediction mode, reference pictures are selected by:

for Prediction Units (PUs) in legacy CUs, reference pictures for corresponding MB or sub-MB partitions in the previously encoded bitstream are checked; and for PUs in extended CUs all reference pictures for the inter MBs covered by the prediction units are checked.

Continuity (2)
Provisional Application 61955932 · Mar 20, 2014
Related Publication 20150271531A1 · Sep 24, 2015