CN116389740A - 一种基于risc-v指令集的hevc视频编码器重构模块变换方法 - Google Patents

一种基于risc-v指令集的hevc视频编码器重构模块变换方法 Download PDF

Info

Publication number
CN116389740A
CN116389740A CN202310365552.1A CN202310365552A CN116389740A CN 116389740 A CN116389740 A CN 116389740A CN 202310365552 A CN202310365552 A CN 202310365552A CN 116389740 A CN116389740 A CN 116389740A
Authority
CN
China
Prior art keywords
data
instruction
risc
video encoder
transformation
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.)
Pending
Application number
CN202310365552.1A
Other languages
English (en)
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.)
CETC 58 Research Institute
Original Assignee
CETC 58 Research Institute
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 CETC 58 Research Institute filed Critical CETC 58 Research Institute
Priority to CN202310365552.1A priority Critical patent/CN116389740A/zh
Publication of CN116389740A publication Critical patent/CN116389740A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明公开一种基于RISC‑V指令集的HEVC视频编码器重构模块变换方法,属于视频编码领域。本发明针对HEVC视频编码器重构模块变换过程中的数据输入、分块处理数据、蝶形运算处理、转置过程设计四条媒体扩展指令,其硬件实现结构包括一个32比特的缓冲寄存器、读中间转置的地址寄存器、TU尺寸寄存器与两个任意位移位器;其中所述扩展指令包括指令读初始数据、分块处理指令、蝶形运算指令、当前转置输出指令。本发明的方法能在通用RISC的指令集上添加专门针对变换计算过程的指令,能够有效的提高变换过程计算的速度,进而提高处理器对HEVC编码器视频编码处理的性能。

Description

一种基于RISC-V指令集的HEVC视频编码器重构模块变换方法
技术领域
本发明涉及视频编码技术领域,特别涉及一种基于RISC-V指令集的HEVC视频编码器重构模块变换方法。
背景技术
目前针对视频编码标准,最普遍应用的是在2013年发布的HEVC(HighEfficiencyVideoCoding,高效视频编码)编码标准,又称为H.265编码标准。为了能够在低带宽条件下快速编码和传输视频,HEVC重点权衡优化了压缩质量、码流、编码时延以及计算复杂度之间的关系。
HEVC中引入了DCT(DiscreteCosineTransform,离散余弦变换),在处理视频信号时,DCT变换性能接近于去相关性能最优的变换。HEVC编码器的重构过程是对预测后的结果进行变换与量化,对残差信号进行进一步的压缩,提高视频的编码效率;此外,重构模块还需对量化后的系数进行反量化与反变换运算,实现对视频数据的重构,重构图像将作为下一块或下一帧的参考。因此,变换是编码和解码过程中一个非常重要的环节,编码端进行预测之后与原始像素相减得到的残差像素经过变换量化后,进一步压缩了信源符号的相关性和冗余;并且反变换的结果在编解码端必须是完全一致的,这样才能保证编码后的码流能够正确的解码。因此,对该部分模块的算法研究和硬件电路设计需要严格符合编码标准,给设计带来一定的困难。依靠通用处理器平台,很难实现实时超高清视频的编码。
如何降低HEVC编码的计算复杂度,使用尽量小的硬件规模实现一个实时视频编码系统,以及提高处理器平台的处理速度,具有非常大的研究价值。
发明内容
本发明的目的在于提供一种基于RISC-V指令集的HEVC视频编码器重构模块变换方法,以解决背景技术中的问题。
为解决上述技术问题,本发明提供了一种基于RISC-V指令集的HEVC视频编码器重构模块变换方法,包括:
针对HEVC视频编码器重构模块的变换过程中的数据输入、分块处理数据、蝶形运算处理、转置过程设计四条媒体扩展指令,其硬件实现结构包括一个32比特的缓冲寄存器、读中间转置的地址寄存器、TU尺寸寄存器与两个任意位移位器;
其中所述扩展指令包括指令读初始数据、分块处理指令、蝶形运算指令、当前转置输出指令。
在一种实施方式中,所述分块处理指令包括:在硬件处理过程中,2D-DCT计算具体为将二维运算拆解为两次一维计算,具体按照一维行整数DCT、中间转置过程、一维列整数DCT三个步骤进行。
在一种实施方式中,硬件处理过程中,无法对矩阵直接进行转置,因此将中间结果按行存入再按列取出来完成转置的过程。
在一种实施方式中,所述蝶形运算指令基于DCT变换矩阵的元素具有对称性和反对称性,能减少乘法次数;硬件实现通过移位相加的操作替代对常数的乘法,以减少乘法器的使用。
在一种实施方式中,多组合输入DCT的变换过程每次能输入一行32点数据,需要根据深度信息对输入的数据逐级分解;首先判断输入的32点数据是否为32*32的TU块,若是则和单一TU块输入的情况相同,按照蝶形运算处理进行运算,运算完的结果输入转置模块,当32行数据全部计算完成并输入到转置模块后进行转置,之后再进行列变换运算。
在一种实施方式中,所述转置过程包括:多组合输入DCT结构选择使用RAM来实现对一维结果的转置;使用32个RAM实现转置功能,即RAM0、RAM1、RAM2、...、RAM30、RAM31,每个RAM深度为64个单元;由于计算过程中使用到TU深度信息,因此也需要将TU深度信息保存,同时也需要对深度信息进行转置运算。
在一种实施方式中,当第一组32个时钟周期时,第一组一维行变换输出结果的第0行的32个数据按照0,1,2,…,31的顺序同时保存在32个RAM地址为0的单元,输出结果第1行的32个数据按照31,0,1,…,30的顺序同时保存在32个RAM地址为1的单元,以此类推,第i行数据按照32-i,33-i,…,31,0,1,…,31-i的顺序同时保存在32个RAM地址为i的单元;
当第二组32个时钟周期时,将RAM0地址为0的单元中的数据、RAM1地址为1的单元中的数据...RAM31地址为31的单元中的数据同时取出,组成中间数据的第0列,进行第二次1D-DCT的列变换。
本发明提供一种基于RISC-V指令集的HEVC视频编码器重构模块变换方法,对于处理器平台,RISC-V架构的指令集系统相对简单,只需要实现有限的常用且比较简单的指令,其他的复杂操作通过编译技术由多条指令组合完成。本发明的方法能在通用RISC的指令集上添加专门针对变换计算过程的指令,能够有效的提高变换过程计算的速度,进而提高处理器对HEVC编码器视频编码处理的性能。
附图说明
图1是二维DCT变换折叠结构示意图;
图2是32点多组合输入1D-DCT的架构图;
图3是基于RAM的存储转置模块示意图。
具体实施方式
以下结合附图和具体实施例对本发明提出的一种基于RISC-V指令集的HEVC视频编码器重构模块变换方法作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
本发明提供一种基于RISC-V指令集的HEVC视频编码器重构模块变换方法,针对HEVC视频编码器重构模块的变换过程中的数据输入、分块处理数据、蝶形运算处理、转置过程设计了4条媒体扩展指令;其硬件实现结构包括一个32比特的缓冲寄存器、读中间转置的地址寄存器、TU尺寸寄存器与两个任意位移位器;该4条媒体扩展指令包括指令读初始数据(Rdata)、分块处理指令(Bdeal)、蝶形运算指令(Bop)、当前转置输出指令(Trans)。
硬件处理过程中无法直接实现两个N×N的矩阵相乘,因此,一般情况下,2D-DCT(二维-DCT)计算过程将二维运算拆解为两次一维计算,具体按照一维行整数DCT、中间转置过程、一维列整数DCT三个步骤进行。由于硬件处理过程中无法对矩阵直接进行转置,可将中间结果按行存入再按列取出来完成转置的过程。如图1所示为2D-DCT实现的折叠结构。
DCT变换矩阵的元素具有对称性和反对称性,利用这种对称的性质设计出了蝶形运算处理,这种算法可以大大减少乘法次数,节省硬件中的乘法器资源;同时,由于DCT变换矩阵的变换系数都是固定的,硬件实现可以通过移位相加的操作替代对常数的乘法,减少乘法器的使用,也可以节约硬件资源。
每次读取的数据为32个,因此需要一个32比特的缓冲寄存器BufTer0,TU尺寸寄存器中为TU尺寸的信息,TU值为0则表示4*4的TU块,TU值为1则表示8*8的TU块,TU值为2则表示16*16的TU块,TU值为3则表示32*32的TU块,通过读取TU尺寸的信息,对32点数据进行分批处理,再通过移位器对输入的数据产生对应的变换矩阵的系数;再进行相应的蝶形运算处理。
如图2所示为32点多组合输入1D-DCT架构图,多组合输入DCT的变换过程可每次输入一行32点数据,需要根据深度信息对输入的数据逐级分解。首先判断输入的32点数据是否为32*32的TU块,若是则和单一TU块输入的情况相同,按照所述蝶形运算处理进行运算,与上述结构类似,运算完的结果输入转置模块,当32行数据全部计算完成并输入到转置模块后进行转置,之后再进行列变换运算。
当TU块大小不为32时,此时TU块大小为4*4、8*8、16*16的各种组合形式输入,此时数据需花费1个周期直通到下一级;在下一级处,高16个数据输入16*16矩阵乘法单元,依据其组合方式完成相应的DCT变换;而低16个数据需要判断是否为16*16的TU块,若是则进行16点蝶形运算处理,若不是则花费一个周期直通到下一级;后两级的数据依此类推。为了保持32点输入数据运算完后结果同时输出,即数据流动在周期上保持一致,4*4矩阵乘法单元耗费3个周期完成4个点的DCT变换,与4*4的蝶形保持一致。8*8矩阵乘法单元耗费4个周期完成8个点的DCT变换,与8*8的蝶形保持一致。16*16矩阵乘法单元耗费5个周期完成16个点的DCT变换,与16*16的蝶形保持一致。一行32点数据运算完耗费一个时钟周期存入到转置模块,32个时钟周期结束后,完整的32行数据都已经存入到转置模块,经转置后再从转置模块中读出数据进行列变换。
多组合输入DCT结构选择使用RAM来实现对一维结果的转置存储。用RAM存储器实现时,RAM使用到的硬件面积比寄存器小一些,因此本设计使用32个RAM实现转置功能,即RAM0、RAM1、RAM2、...、RAM30、RAM31,每个RAM深度为64个单元。由于计算过程中使用到TU深度信息,因此也需要将TU深度信息保存,同时也需要对深度信息进行转置运算,存取方式仍然如图3所示。
当第一组32个时钟周期时,第一组一维行变换输出结果的第0行的32个数据按照0,1,2,…,31的顺序同时保存在32个RAM地址为0的单元,即图3中的Y0,0、Y0,1、Y0,2、...、Y0,31的位置,输出结果第1行的32个数据按照31,0,1,…,30的顺序同时保存在32个RAM地址为1的单元,以此类推,第i行数据按照32-i,33-i,…,31,0,1,…,31-i的顺序同时保存在32个RAM地址为i的单元。当第二组32个时钟周期时,将RAM0地址为0的单元中的数据、RAM1地址为1的单元中的数据、...、RAM31地址为31的单元中的数据同时取出,如图3中Y0,0、Y1,0、Y2,0、...、Y31,0、Y32,0,组成中间数据的第0列,进行第二次1D-DCT的列变换。
上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。

Claims (7)

1.一种基于RISC-V指令集的HEVC视频编码器重构模块变换方法,其特征在于,包括:
针对HEVC视频编码器重构模块的变换过程中的数据输入、分块处理数据、蝶形运算处理、转置过程设计四条媒体扩展指令,其硬件实现结构包括一个32比特的缓冲寄存器、读中间转置的地址寄存器、TU尺寸寄存器与两个任意位移位器;
其中所述扩展指令包括指令读初始数据、分块处理指令、蝶形运算指令、当前转置输出指令。
2.如权利要求1所述的基于RISC-V指令集的HEVC视频编码器重构模块变换方法,其特征在于,所述分块处理指令包括:在硬件处理过程中,2D-DCT计算具体为将二维运算拆解为两次一维计算,具体按照一维行整数DCT、中间转置过程、一维列整数DCT三个步骤进行。
3.如权利要求2所述的基于RISC-V指令集的HEVC视频编码器重构模块变换方法,其特征在于,硬件处理过程中,无法对矩阵直接进行转置,因此将中间结果按行存入再按列取出来完成转置的过程。
4.如权利要求1所述的基于RISC-V指令集的HEVC视频编码器重构模块变换方法,其特征在于,所述蝶形运算指令基于DCT变换矩阵的元素具有对称性和反对称性,能减少乘法次数;硬件实现通过移位相加的操作替代对常数的乘法,以减少乘法器的使用。
5.如权利要求4所述的基于RISC-V指令集的HEVC视频编码器重构模块变换方法,其特征在于,多组合输入DCT的变换过程每次能输入一行32点数据,需要根据深度信息对输入的数据逐级分解;首先判断输入的32点数据是否为32*32的TU块,若是则和单一TU块输入的情况相同,按照蝶形运算处理进行运算,运算完的结果输入转置模块,当32行数据全部计算完成并输入到转置模块后进行转置,之后再进行列变换运算。
6.如权利要求5所述的基于RISC-V指令集的HEVC视频编码器重构模块变换方法,其特征在于,所述转置过程包括:多组合输入DCT结构选择使用RAM来实现对一维结果的转置;使用32个RAM实现转置功能,即RAM0、RAM1、RAM2、...、RAM30、RAM31,每个RAM深度为64个单元;由于计算过程中使用到TU深度信息,因此也需要将TU深度信息保存,同时也需要对深度信息进行转置运算。
7.如权利要求6所述的基于RISC-V指令集的HEVC视频编码器重构模块变换方法,其特征在于,当第一组32个时钟周期时,第一组一维行变换输出结果的第0行的32个数据按照0,1,2,…,31的顺序同时保存在32个RAM地址为0的单元,输出结果第1行的32个数据按照31,0,1,…,30的顺序同时保存在32个RAM地址为1的单元,以此类推,第i行数据按照32-i,33-i,…,31,0,1,…,31-i的顺序同时保存在32个RAM地址为i的单元;
当第二组32个时钟周期时,将RAM0地址为0的单元中的数据、RAM1地址为1的单元中的数据...RAM31地址为31的单元中的数据同时取出,组成中间数据的第0列,进行第二次1D-DCT的列变换。
CN202310365552.1A 2023-04-07 2023-04-07 一种基于risc-v指令集的hevc视频编码器重构模块变换方法 Pending CN116389740A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310365552.1A CN116389740A (zh) 2023-04-07 2023-04-07 一种基于risc-v指令集的hevc视频编码器重构模块变换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310365552.1A CN116389740A (zh) 2023-04-07 2023-04-07 一种基于risc-v指令集的hevc视频编码器重构模块变换方法

Publications (1)

Publication Number Publication Date
CN116389740A true CN116389740A (zh) 2023-07-04

Family

ID=86970652

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310365552.1A Pending CN116389740A (zh) 2023-04-07 2023-04-07 一种基于risc-v指令集的hevc视频编码器重构模块变换方法

Country Status (1)

Country Link
CN (1) CN116389740A (zh)

Similar Documents

Publication Publication Date Title
KR0130772B1 (ko) 고속디지탈신호처리프로세서
CN102158694B (zh) 一种基于gpu的遥感图像解压缩方法
CN1825964B (zh) 片上处理视频数据的方法和系统
CN106254883B (zh) 一种视频解码中的反变换方法和装置
CN104244010B (zh) 提高数字信号变换性能的方法及数字信号变换方法和装置
US5854757A (en) Super-compact hardware architecture for IDCT computation
US7099390B2 (en) Prediction apparatus, encoding apparatus, inverse prediction apparatus, decoding apparatus, and computing apparatus
CN101426134A (zh) 用于视频编解码的硬件装置及方法
JPH09212484A (ja) 離散コサイン変換方法
CN116389740A (zh) 一种基于risc-v指令集的hevc视频编码器重构模块变换方法
De Souza et al. OpenCL parallelization of the HEVC de-quantization and inverse transform for heterogeneous platforms
CN101640791A (zh) 一种解码方法、装置和解码器
KR20030057425A (ko) 역 변환 디바이스 및 역 변환 방법 및 변환 디바이스 및변환 방법
CN104185030A (zh) 基于gpu的jpeg2000图像解压缩实现方法
Viitamäki et al. High-level synthesized 2-D IDCT/IDST implementation for HEVC codecs on FPGA
CN1642280B (zh) 图像和视频信号的变换装置及其方法
CN102006478A (zh) 一种视频解码的反变换方法及装置
KR100248082B1 (ko) 이차원이산여현변환장치
Balam et al. Associative processors for video coding applications
Kwan et al. Implementation of DSP-RAM: an architecture for parallel digital signal processing in memory
Coutinho et al. Hardware-Based Acceleration of an Approximate 2D DCT for a System-on-Chip
CN101742298B (zh) 用于嵌入式实时解码器的虚拟小数逆离散余弦变换方法
Gore et al. Implementation of Image Compression algorithm on FPGA
Song et al. High-throughput systolic array-based accelerator for hybrid transformer-CNN networks
Nguyen et al. Designing and Implementing a 2D Integer DCT Hardware Accelerator Fully Compatible with Versatile Video Coding

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