发明名称 |
一种注入解码器数据的管理方法 |
摘要 |
本发明公开了一种注入解码器数据的管理方法,包括以下步骤:在内存中划分一块先进先出缓冲区fifobuffer,待解码的数据首先写入fifobuffer;在高速缓冲寄存器cache中划分一块缓冲区cachebuffer,用于从fifobuffer中读取数据,以及将数据写入至解码器缓冲区。本注入解码器数据的管理方法,通过在内存中划分出一块缓冲区,将注入解码器的数据首先注入进缓冲区,进行管理,有效防止了数据丢失、以及音视频的播放不流畅、马赛克、丢帧等现象。 |
申请公布号 |
CN102495810B |
申请公布日期 |
2014.12.17 |
申请号 |
CN201110446657.7 |
申请日期 |
2011.12.28 |
申请人 |
青岛海信宽带多媒体技术有限公司 |
发明人 |
张维 |
分类号 |
G06F12/08(2006.01)I;H04N19/00(2014.01)I |
主分类号 |
G06F12/08(2006.01)I |
代理机构 |
青岛联智专利商标事务所有限公司 37101 |
代理人 |
李升娟 |
主权项 |
一种注入解码器数据的管理方法,其特征在于,包括以下步骤:在内存中划分一块先进先出缓冲区fifobuffer,待解码的数据首先写入fifobuffer;待解码的数据从fifobuffer取出时,包括以下步骤:(21)、接收到取出数据量为c的命令;(22)、比较fifobuffer中数据量d与c的大小关系,确定读取数据量为e的数据,其中e为d和c中的较小者;(23)、修改读出指针out;在高速缓冲寄存器cache中划分一块缓冲区cachebuffer,用于从fifobuffer中读取数据,以及将数据写入至解码器缓冲区, cachebuffer从fifobuffer中读取数据时,包括以下步骤:(31)、判断现有数据控制状态是开始状态、sleep状态、还是stop状态,若是开始状态,则执行步骤(32),若是sleep状态,则执行步骤(41),若是stop状态,则执行步骤(42);(32)、计算cachebuffer剩余空间;(33)、如果cachebuffer剩余空间大小为0,则返回步骤(32);否则继续步骤(34);(34)、查看当前fifobuffer中数据大小;(35)、如果cachebuffer剩余空间小于fifobuffer数据大小,继续步骤(36);否则继续步骤(37);(36)、在fifobuffer里面取cachebuffer剩余空间大小的数据,放到cachebuffer里面;(37)、在fifobuffer里面取现有所有的fifobuffer数据,放在cachebuffer里面;(38)、修改cachebuffer的写入指针producer;(39)、从cachebuffer中取出数据注入解码器中;(40)、修改cachebuffer的读出指针comsumer;(41)、延时一定时间后,返回步骤(31);(42)、停止解码器注入任务。 |
地址 |
266100 山东省青岛市崂山区株洲路151号 |