一种用于多核并行视频编码和解码的共享内存接口的制作方法

文档序号:9567467阅读:656来源:国知局
一种用于多核并行视频编码和解码的共享内存接口的制作方法
【技术领域】
[0001] 本发明设及视频编码技术领域,特别设及运用多核数字信号处理器DSP忍片完成 高清视频编解码及传输的多核并行视频编码和解码方法W及多核并行时高速缓存的优化 措施。
【背景技术】
[0002] 上世纪 80 年代 3C(Computers,Communications,ConsumerElectronics)的相互 渗透与融合催生了多媒体技术并且推动多媒体技术飞速发展与普及。视频编码是多媒体技 术中的关键技术。近年传输视频清晰度不断提升,同时视频编码标准频繁更新换代,还不 断涌现新内容。2002年CIFH. 263在会议电视设备中尚占据主流。2005年就出现了 720P H. 264。到2009年1080P会议电视设备已为市场主推产品。运个时刻离1080P随SonyPS2 游戏机和蓝光产品上市的时刻并不遥远。存储介质和双向实时网络传输两类应用对视频编 码提出的压缩比和实时性要求相差甚远,仅单纯实时解码和实时编解码就相差2倍W上运 算量。运么短时间一下迈上运么高台阶,完全得益于处理器忍片技术的飞跃!目前实时传 输双向的S路1080P@60化比264达到SonyPS3高清晰度的会议电视终端上市后,接下来 的内容自然是4K、8K超高清视频和最新视频编码标准肥VC/H. 265。
[0003] 一路 1080P@30Hz视频的图像数据量达到 746, 496,OOObit/s。WmJ-RBT. 1120 格式传输时速率达I. 485Gbit/s。压缩为I~8Mbit/s的H. 264码流,编码、解码各需要2 片、1片32位定点处理能力96亿次/秒的TIC6455@l. 2GHz数字信号处理器DSP忍片。视 频编码技术对于处理器忍片性能要求不断跃进。IntelPentium4@4GHz处理器忍片上市 失败后,传统的提升处理器忍片性能的手段遇到阻滞,多核结构包括同构多核和异构多核 已经成为提升处理器忍片性能的最主要手段。在DSP忍片领域数麻省理工学院MIT教授 AnantAgarwal创立的Tilera公司推出的64核屯、DSP忍片Tile64最引人注目。其中最显 著优势为iMesh片内核间高速互连网络,呈8x8网格状,网格节点为64个相同的64位定点 处理器核屯、,包含5套独立物理线路,包交换,支持数据包组播和广播。TI公司则在C6455 忍片达到传统单核屯、DSP性能顶峰后推出3核屯、TCI6487/6488和6核屯、TCI6486忍片,片 内分别包含3个、6个C6455核屯、,虽然没有Tile64那么引人注目,但是牢牢占据高端DSP 忍片市场。TI最新最强的DSP为C6678,包含8个浮点处理器核屯、W及TeraNet片内高速 互连网络。
[0004] 在娃片上复制n份处理器核屯、简单易行。难度和关键在于如何让n个核屯、在应 用中表现出期待的n倍性能!除了依靠核间通信技术,最主要还是依赖软件包括操作系统 OS和应用软件。现时DSP所用实时操作系统RTOS包括Linux嵌入式发行版本和TIDSP/ BIOS。版本号高于2. 6. 10的Linux支持对称多处理器SMP,具有调度多核间负荷分布的能 力。鉴于目前计算机应用领域内标量过程的单一任务在多处理上均衡的技术解决状况,运 用RTOS提供的多进程和多线程设置多任务是RTOS有效均衡多核负荷的情景和前提条件。 也就是现有RTOS对标量过程的单一任务运行于多核的自动调度负荷分布的作用很微弱。
[0005] 本发明设及领域恰恰正是运种情况:一路高清视频数据量巨大,编码和解码运算 量巨大,双向实时网络传输时更甚,需要拿出多个核屯、去应付;视频编码和解码都是顺序执 行的上下文的标量过程,前一步未完就走不到后一步;在时间、空间上也存在很强的运算与 数据的关联与依赖。缘于视频编码本身就是计算时间、空间相关性W去除表达冗余减少数 据量。视频编码技术的压缩比越高,时间、空间相关的范围和程度也越大,相应运算量据增。 此时RTOS已无意义,唯有依靠应用软件。n个核屯、表现出n倍性能即要求并行加速比达到 n。在软件上提高并行加速比的途径、措施是调整负荷在多核的分布达到均衡、减少并行等 待和相互阻塞、优化高速缓存。
[0006] 在Tile64 上首先尝试用文献一巧rikB.vanderTol,etal.MappingofH. 264 decodingonamultiprocessorarchitecture.ProceedingsofSPIEConference onImageandVideoCommuincations,Vol. 5022,PP. 707 一 718,Jan. 2003)的水边线 Waterhont多核并行解码方法实现H. 264解码,见于文献二(管辉.基于同构多核处理器 的H. 264并行解码算法研究.哈尔滨工业大学硕±学位论文.2009.下裁于中国知网www. cnki.net)。步骤简述如下:
[0007] (1)安排Tile64的1个核屯、#0处理一帖图像码流解析,5个核屯、#1~5处理一 帖图像重建W及去方块环路滤波。
[000引 (2)核屯、#0在共享内存中为全部共享图像数据、图像重建队列和去方块滤波队列 的结构体变量开辟空间malloc,对运些队列和处理状态数组所带的互斥锁Mutex做初始 化,把位于左上顶点坐标(0,0)的第一个宏块排入图像重建队列。
[0009] (3)用双缓冲区方法(也称兵鸟缓冲方法)使核屯、#0的码流解析与核屯、#1~5 的图像重建W及去方块环路滤波并行执行。即从核屯、#0操作缓冲区#0开始。核屯、#0完 成后把缓冲区#0交给核屯、#1~5操作,接着操作缓冲区#1 ;缓冲区#0和#1的操作都完成 后,通过指针轮换交换缓冲区,核屯、#0操作缓冲区#0同时核屯、#1~5操作缓冲区#1 ;…。
[0010] (4)核屯、#1~5每个核屯、执行W下步骤:
[0011] (41)循环读先进先出FIFO的队列queue直到从中取出一个宏块(mb_y,mb_x)为 止,每次循环先读带互斥锁的图像重建队列,如果遇空再读带互斥锁的去方块环路滤波队 列;
[0012] (42)宏块(mb_y,mb_x)图像重建或者去方块环路滤波,完成后写带互斥锁的宏块 (mb_y,mb_x)的处理状态为已完成图像重建或者已完成去方块环路滤波;
[0013] (43)读带互斥锁的下一行相邻的左下宏块(mb_y+l,mb_x-l)和下方宏块(mb_ y+l,mb_x)的处理状态,判断能否执行图像重建或者去方块环路滤波;
[0014] (44)更新带互斥锁的图像重建队列和去方块环路滤波队列,把可处理的0/1/2个 宏块排入队列;
[0015] (45)处理完一帖图像全部宏块的图像重建W及去方块环路滤波,退出循环;否 贝1J,跳到(41)继续循环执行。
[0016] (5)核屯、#0码流解析完成与核屯、#1~5的图像重建W及去方块环路滤波完成的 同步。
[0017] (6)跳到(4)继续循环执行下一帖图像码流的解码,直到码流终止。
[0018] W上方法和程序的效果十分糟糕:对于化reman序列CIFH. 264码流,Tile64单 核运行PC机算法验证模型的H. 264解码软件C代码(未经任何针对Tile64平台的优化), 解码平均帖频20多ms/f;分摊到6个核后慢得非常多;最后完成代码优化工作,主要包括 32位单指令多数据操作SIMD、循环拆解、条件分支替代等措施,也仅达到23ms^。也就是 说优化后在6个核上跑,比未优化在一个核上跑还慢。曾经将解码软件的可执行文件交给 Tilera公司分析,答复是片内高速缓存cache缓存的数据绝大部分为非母核数据,数据存 取效率过低。
[0019]Ti1e64片内高速缓存C址Ce分散到64个核屯、内部,每个核屯、配备全速的8K 字节一级数据缓存LlD和8K字节一级指令缓存L1P,还有半速的64K字节二级缓存L2 化che。LlD和L2Cache只缓存由本核屯、开辟空间malloc的片外主内存数据,称为母核 Cache-homing,不缓存其它核屯、开辟空间的片外主内存数据。当核屯、A访问非母核数据时, 首先由该数据的母核B缓存至L2化che,再由核屯、A通过iM
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1