CN106791861A - 一种基于CUDA架构的DNxHD VLC编码方法 - Google Patents

一种基于CUDA架构的DNxHD VLC编码方法 Download PDF

Info

Publication number
CN106791861A
CN106791861A CN201611202130.9A CN201611202130A CN106791861A CN 106791861 A CN106791861 A CN 106791861A CN 201611202130 A CN201611202130 A CN 201611202130A CN 106791861 A CN106791861 A CN 106791861A
Authority
CN
China
Prior art keywords
coefficient
encoded
thread
threadidx
dnxhd
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201611202130.9A
Other languages
English (en)
Other versions
CN106791861B (zh
Inventor
王伟
黄进
廖义
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Arcvideo Technology Co ltd
Original Assignee
Hangzhou Arcvideo Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Arcvideo Technology Co ltd filed Critical Hangzhou Arcvideo Technology Co ltd
Priority to CN201611202130.9A priority Critical patent/CN106791861B/zh
Publication of CN106791861A publication Critical patent/CN106791861A/zh
Application granted granted Critical
Publication of CN106791861B publication Critical patent/CN106791861B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种基于CUDA架构的DNxHD VLC编码方法,对原有算法进行分解优化,细化并行计算的粒度,采用系数级并行方式进行编码,每64个线程编码一个宏块,每个线程每次编码一个直流系数,使得GPU可以满负荷运行,提升了GPU使用效率,从而提高VLC编码速度。

Description

一种基于CUDA架构的DNxHD VLC编码方法
技术领域
本发明涉及一种基于CUDA架构的DNxHD VLC编码方法。
背景技术
在VC-3/DNxHD标准中,输入视频数据格式为YUV 4:2:2,每个块(block)大小固定为8x8,每个宏块(macroblock,简称MB)分为两部分:由亮度分量的四个块组成的16x16部分和由相应色差分量的四个块组成的16x16部分,也就是每个宏块包含8个8x8的block。
对于分辨率为1920x1080的视频序列的帧编码,每帧有120x68个宏块。虽然标准中没有明确提出Slice的概念,但实际编码中以每行120个宏块构成一个Slice。本发明中所称VLC编码主要指对于8x8块的DCT系数进行编码。
通常情况下用CPU编码实现时会采用slice并行的方式(每个slice中分别对每个宏块中的每个block的8x8个DCT系数依次进行编码,如图1所示),而如果以同样的方式进行CUDA实现,每个CUDA线程处理一个slice,那么这样的方式并行度会非常低。
对于分辨率1920x1080的视频序列,采用slice并行方式,也就是只能使用68个线程并行,而对于一块Tesla K10显卡,每个GPU上最多可并行16384个线程,这样GPU利用率只有0.42%。并且每个线程的运算量非常大,最多需要编码8x8x8x120=61440个系数。
发明内容
本发明的目的在于克服现有技术中的不足而提供一种基于CUDA架构的DNxHD VLC编码方法。
为实现上述目的,一方面,本发明提供的一种基于CUDA架构的DNxHD VLC编码方法,包括如下步骤:
将8x8block的DCT系数进行量化后,加载到共享存储器;
64个线程同步处理一个宏块;
当threadIdx=0,则第0个线程用差分脉冲编码调制对直流系数进行编码;
当threadIdx>0,则第threadIdx个线程计算第threadIdx个交流系数进行VLC编码;
64个线程同步处理一个经编码宏块;
当一个经编码宏块中的8个block计算完成后,保存编码结果,并开始编码下一个宏块。
优选地,第0个线程用差分脉冲编码调制对直流系数进行编码的步骤中,具体为计算当前block与前一个block的直流系数之差,并根据预定义直流系数码表进行编码。
优选地,第threadIdx个线程计算第threadIdx个交流系数进行VLC编码的步骤中,具体为,
当当前交流系数为0,则不计算;
当当前交流系数非零,则检索该交流系数与前一个非零交流系数之间的0的个数,并根据预定义交流系数码表进行编码。
根据本发明提供的一种基于CUDA架构的DNxHD VLC编码方法,对原有算法进行分解优化,细化并行计算的粒度,采用系数级并行方式进行编码,每64个线程编码一个宏块,每个线程每次编码一个直流系数,对于分辨率为1920x1080视频序列而言,需要120x68x64=522240个线程并行,对于一块Tesla K10显卡,这远大于其GPU能够并行的线程数,使得GPU可以满负荷运行,提升了GPU使用效率,从而提高VLC编码速度。
附图说明
图1是Slice级并行编码原理流程示意图;
图2为本发明一实施例的一种基于CUDA架构的DNxHD VLC编码方法的原理示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面详细描述本发明的实施例。
本发明一实施例提供了一种基于CUDA架构的DNxHD VLC编码方法,请参阅图2,具体地,包括如下步骤:
将8x8block的DCT系数进行量化后,加载到共享存储器;
64个线程同步处理一个宏块;
当threadIdx=0,则第0个线程用差分脉冲编码调制(DPCM)对直流系数(DC系数)进行编码;
当threadIdx>0,则第threadIdx个线程计算第threadIdx个交流系数(AC系数)进行VLC编码;
64个线程同步处理一个经编码宏块;
当一个经编码宏块中的8个block计算完成后,保存编码结果,并开始编码下一个宏块。
优选地,第0个线程用差分脉冲编码调制对直流系数进行编码的步骤中,具体为计算当前block与前一个block的直流系数之差,并根据预定义直流系数码表进行编码。
优选地,第threadIdx个线程计算第threadIdx个交流系数进行VLC编码的步骤中,具体为,
当当前交流系数为0,则不计算;
当当前交流系数非零,则检索该交流系数与前一个非零交流系数之间的0的个数,并根据预定义交流系数码表进行编码。
本发明方法充分考虑了CUDA存储器的限制,采用细粒度并行计算,能够充分利用CUDA架构的大规模并行性和高度可扩展性。使用本发明的方法,每64个线程处理一个宏块,每个线程每次编码一个DCT系数,对于分辨率为1920x1080视频序列而言,需要120x68x64=522240个线程并行。这对于一块Tesla K10显卡,已经远远大于其GPU能够并行的线程数,使得GPU可以满负荷运行。以编码DNxHD 1080p 185Mbps文件为例,传统方法只有0.9倍速,而本发明方法能够达到6.3倍速。
综上,根据本发明提供的一种基于CUDA架构的DNxHD VLC编码方法,对原有算法进行分解优化,细化并行计算的粒度,采用系数级并行方式进行编码,提升了GPU使用效率,从而提高VLC编码速度。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (3)

1.一种基于CUDA架构的DNxHD VLC编码方法,其特征在于,包括如下步骤:
将8x8 block的DCT系数进行量化后,加载到共享存储器;
64个线程同步处理一个宏块;
当threadIdx=0,则第0个线程用差分脉冲编码调制对直流系数进行编码;
当threadIdx>0,则第threadIdx个线程计算第threadIdx个交流系数进行VLC编码;
64个线程同步处理一个经编码宏块;
当一个所述经编码宏块中的8个block计算完成后,保存编码结果,并开始编码下一个宏块。
2.根据权利要求1所述的一种基于CUDA架构的DNxHD VLC编码方法,其特征在于,所述第0个线程用差分脉冲编码调制对直流系数进行编码的步骤中,具体为计算当前block与前一个block的直流系数之差,并根据预定义直流系数码表进行编码。
3.根据权利要求1所述的一种基于CUDA架构的DNxHD VLC编码方法,其特征在于,所述第threadIdx个线程计算第threadIdx个交流系数进行VLC编码的步骤中,具体为,
当当前交流系数为0,则不计算;
当当前交流系数非零,则检索该所述交流系数与前一个非零交流系数之间的0的个数,并根据预定义交流系数码表进行编码。
CN201611202130.9A 2016-12-20 2016-12-20 一种基于CUDA架构的DNxHD VLC编码方法 Active CN106791861B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611202130.9A CN106791861B (zh) 2016-12-20 2016-12-20 一种基于CUDA架构的DNxHD VLC编码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611202130.9A CN106791861B (zh) 2016-12-20 2016-12-20 一种基于CUDA架构的DNxHD VLC编码方法

Publications (2)

Publication Number Publication Date
CN106791861A true CN106791861A (zh) 2017-05-31
CN106791861B CN106791861B (zh) 2020-04-07

Family

ID=58899837

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611202130.9A Active CN106791861B (zh) 2016-12-20 2016-12-20 一种基于CUDA架构的DNxHD VLC编码方法

Country Status (1)

Country Link
CN (1) CN106791861B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108012156A (zh) * 2017-11-17 2018-05-08 深圳市华尊科技股份有限公司 一种视频处理方法及控制平台

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101176089A (zh) * 2005-05-16 2008-05-07 英特尔公司 使用多线程单指令多数据处理并行执行媒体编码
EP2192780A1 (en) * 2008-11-28 2010-06-02 Thomson Licensing Method for video decoding supported by Graphics Processing Unit
CN102143365A (zh) * 2011-05-13 2011-08-03 万辉视讯(北京)科技有限公司 一种运动估计方法
CN102404561A (zh) * 2010-09-14 2012-04-04 盛乐信息技术(上海)有限公司 在cuda上实现mpeg4i帧编码的方法
CN103747250A (zh) * 2013-12-28 2014-04-23 华中科技大学 一种H.264/AVC中4x4子宏块的并行帧内预测方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101176089A (zh) * 2005-05-16 2008-05-07 英特尔公司 使用多线程单指令多数据处理并行执行媒体编码
EP2192780A1 (en) * 2008-11-28 2010-06-02 Thomson Licensing Method for video decoding supported by Graphics Processing Unit
CN101754013A (zh) * 2008-11-28 2010-06-23 汤姆森许可贸易公司 由图形处理单元支持的视频解码方法
CN102404561A (zh) * 2010-09-14 2012-04-04 盛乐信息技术(上海)有限公司 在cuda上实现mpeg4i帧编码的方法
CN102143365A (zh) * 2011-05-13 2011-08-03 万辉视讯(北京)科技有限公司 一种运动估计方法
CN103747250A (zh) * 2013-12-28 2014-04-23 华中科技大学 一种H.264/AVC中4x4子宏块的并行帧内预测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄兴: "《基于GPU 的视频转码技术研究》", 《电视技术》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108012156A (zh) * 2017-11-17 2018-05-08 深圳市华尊科技股份有限公司 一种视频处理方法及控制平台
CN108012156B (zh) * 2017-11-17 2020-09-25 深圳市华尊科技股份有限公司 一种视频处理方法及控制平台

Also Published As

Publication number Publication date
CN106791861B (zh) 2020-04-07

Similar Documents

Publication Publication Date Title
CN104041035B (zh) 用于复合视频的无损编码及相关信号表示方法
CN104469365B (zh) 一种视频编码装置和方法
CN101690226B (zh) 统计性图像改善方法、图像编码方法以及图像解码方法
CN104581159B (zh) 视频编解码中的块分割方式确定方法及相关装置
CN105812804B (zh) 一种确定rdoq过程中最优量化值的方法及装置
CN107027029A (zh) 基于帧率变换的高性能视频编码改进方法
KR101261676B1 (ko) 이미지를 인코딩하는 방법 및 그 방법을 구현하는 장치
CN1516848A (zh) 基于小波变换的图像编解码器中获得编码增益的方法和系统
CN107396116A (zh) 视频编码和解码设备及非暂时性计算机可读存储介质
CN105898300B (zh) 一种基于恢复变换系数的改进变换系数符号位隐藏方法
WO2015078131A1 (zh) 图像压缩方法和装置
CN107222748B (zh) 图像数据码率的处理方法和装置
CN104869398A (zh) 一种基于cpu+gpu异构平台实现hevc中的cabac的并行方法
CN103702122B (zh) 编码模式选择方法、装置及编码器
CN104704826B (zh) 两步量化和编码方法和装置
CN101969560B (zh) 一种多核平台下MPEG2高清编码器的Slice码率分配方法
CN106303521B (zh) 一种基于感知敏感度的hevc率失真优化方法
CN100502507C (zh) 视频数据压缩编码方法
CN100551072C (zh) 一种编码中量化矩阵选择方法、装置及编解码方法及系统
CN106791861A (zh) 一种基于CUDA架构的DNxHD VLC编码方法
CN103747272A (zh) 用于hevc的残余四叉树编码的快速变换方法
CN109391816A (zh) 基于cpu+gpu异构平台实现hevc中熵编码环节的并行处理方法
CN101841726A (zh) 一种立体视频非对称编码方法
CN105812824B (zh) 一种视频图像编码方法及装置
CN104363454A (zh) 一种高码率图像的视频编、解码方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 310000 E, 16 floor, A block, Paradise software garden, 3 West Gate Road, Xihu District, Hangzhou, Zhejiang.

Applicant after: Hangzhou Dang Hong Polytron Technologies Inc

Address before: 310000 E, 16 floor, A block, Paradise software garden, 3 West Gate Road, Xihu District, Hangzhou, Zhejiang.

Applicant before: HANGZHOU DANGHONG TECHNOLOGY CO., LTD.

GR01 Patent grant
GR01 Patent grant
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Wang Jianwei

Inventor after: Huang Jin

Inventor after: Liao Yi

Inventor before: Wang Wei

Inventor before: Huang Jin

Inventor before: Liao Yi