解码、编码音视频数据的方法及装置的制作方法

文档序号:7766426阅读:247来源:国知局
专利名称:解码、编码音视频数据的方法及装置的制作方法
技术领域
本发明涉及数据解码、编码领域,尤其涉及一种音视频数据的解码、编码方法及装置。
背景技术
由于技术的不断更新与发展,目前一般都采用了 64位程序来编解码音视频数据, 这样能够提高数据处理效率。但是目前还有很多数据需要使用32位程序进行编解码音视 频数据,那么如何解决64位程序与在64位操作系统下兼容运行32位程序之间的通信成为 技术难题。因为音视频编解码涉及到的数据量较大,对内存等要求较高,以及不同进程间大 数据块的通信是比较困难的。例如如何在解码完成后通知其他程序读取数据,或者如何在 编码时在共享区获取数据也成为一大难题。在现有技术中,由于编解码数据大,目前解决此方法采用的是一种文件中转技术, 不同的进程将需要共享的数据写入一个文件,由另外一个进程将需要编码或者解码出来的 数据读出。而负责读取的线程需要不停的去获取文件的大小,导致访问IO的次数增多,导 致效率下降。为了解决IO访问次数多的问题,目前的解决方法是使用全局时间同步,可以不用 多次读取10。但是写入磁盘时,磁盘刷新延迟,导致数据在读的时候数据尚未完全写入,容 易读取错误的数据,导致编码或者解码异常出现。因此,目前迫切需要一种64位操作系统下64位程序与32位程序兼容运行并够保 证数据读取不出错的编解码数据的方法。

发明内容
本发明提供了一种解码、编码音视频数据的方法及装置。为解决64位操作系统下 64位程序与32位程序兼容运行并够保证数据读取错误率高的问题,本发明实施例是通过 以下技术方案实现的—种解码音视频数据的方法,该方法包括第一程序通知第二程序初始化;第二程序初始化完成后通过第一程序获取一帧待解码数据并进行解码,将解码后 的一帧数据存入第一内存,并发送第一指令;第一程序通过第一指令至第一内存读取所述解码后的一帧数据,并将所述第一指 令清空。其中,所述的第一程序通知第二程序初始化具体为第一程序将解码数据所需要的参数存储于第一内存,通知第二程序读取;第二程序至第一内存读取所述的参数进行初始化,并通知第一程序初始化完成。其中,所述的第二程序通过第一程序获取一帧待解码数据具体为第二程序初始化完成的信息后,第一程序将一帧待解码数据写入第一内存;通知第二程序读取;第二程序至第一内存读取所述的一帧待解码数据。其中,所述的第二程序通过第一程序获取一帧待解码数据具体为第一程序进一步将待解码数据的存储路径存储于第一内存;第二程序通过所述的存储路径获取一帧待解码数据。其中,所述的第二程序进一步将解码后的一帧数据循环存储至第一内存和第二内 存;所述的第二程序将解码后的一帧数据存储至第二内存具体为所述的第二程序发送第一指令后继续获取一帧待解码数据并进行解码,并将解码 后的一帧数据存入第二内存,并发送第二指令;第一程序通过第二指令至第二内存读取所述的解码后的一帧数据,并将所述第二 指令清空。对应于本发明提供的解码音视频数据的方法,本发明还提供了一种编码音视频数 据的方法,该方法包括第三程序通知第四程序初始化;第四程序初始化完成后通知第三程序,第三程序将一帧待编码数据存储至第三内 存,并发送第三指令;第四程序通过第三指令读取所述的一帧待编码数据进行编码,并将第三指令清空。其中,所述的第三程序通知第四程序初始化具体为第三程序将编码数据所需要的参数存储于第三内存,通知第四程序读取;第四程序至第三内存读取所述的参数进行初始化,并通知第三程序初始化完成。其中,所述的第三程序进一步将一帧待编码数据循环存储至第三内存和第四内 存;所述的第三程序将一帧待解码数据存储至第四内存具体为所述的第四程序初始化完成后,第三程序进一步将一帧待编码数据存储至第四内 存,并发送第四指令;第四程序通过第四指令至第四内存读取所述的一帧待编码数据进行编码,并将第 四指令清空。对应于本发明提供的解码音视频数据的方法,本发明还提供了一种解码音视频数 据的装置,所述的装置包括第一程序单元,用于通知第二程序初始化;通过第二程序单元发送的第一指令至 第一内存读取所述解码后的一帧数据,并将第一指令清空。第二程序单元,用于初始化完成后通过第一程序单元获取一帧待解码数据并进行 解码,将解码后的一帧数据存入第一内存单元,并发送第一指令;第一内存单元,用于存储所述的一帧待解码数据和解码后的一帧数据。其中,所述的第一程序单元包括第一通知单元,用于将解码数据所需要的参数存储于第一内存单元,通知第二程 序单元读取;第一控制单元,用于通过第二程序单元发送的第一指令至第一内存单元读取所述的解码后的一帧数据,并将第一指令清空;所述的第二程序单元具体包括第一初始化单元,用于接收第一程序单元的通知,至第一内存单元读取所述的参 数进行初始化,通知第一程序单元初始化完成;第一解码单元,用于初始化完成后通过第一程序单元获取一帧待解码数据并进行 解码,将解码后的一帧数据存入第一内存单元,并发送第一指令;第一内存单元,用于进一步用于存储所述的待解码数据参数。其中,所述第一程序单元的第一控制单元具体包括第一写码单元,接收第二程序单元初始化完成的信息后,将一帧待解码数据写入 第一内存单元,通知第二程序单元读取所述的一帧待解码数据;第一读取单元,用于通过第二程序单元发送的第一指令至第一内存单元读取所述 的解码后的一帧数据,并将第一指令清空;所述第二程序单元的第一解码单元具体包括第二读取单元,用于接收所述的读取一帧待解码数据通知,至第一内存单元读取 所述的一帧待解码数据并进行解码;第二写码单元,用于将解码后的一帧数据存入第一内存单元,并发送第一指令。其中,所述的第一写码单元进一步用于将待解码数据的存储路径存储于第一内 存单元;所述的第二读取单元进一步用于,通过所述的存储路径获取一帧待解码数据。其中,所述的装置进一步包括第二内存单元;所述的第二写码单元进一步用于将解码后的一帧数据循环存储至第一内存单元 和第二内存单元;将解码后的一帧数据存储至第二内存具体为在发送第一指令后继续 获取一帧待解码数据并进行解码,将解码后的一帧数据存入第二内存单元,并发送第二指 令;所述的第一读取单元进一步用于通过第二指令至第二内存单元读取所述的解码 后的一帧数据,并将所述第二指令清空;所述的第二内存单元用于存储解码后的一帧数据。对应于本发明提供的编码音视频数据的方法,本发明还提供了一种编码音视频数 据的装置,所述的装置包括第三程序单元,用于通知第二程序单元初始化,接收初始化完成信息后将一帧待 编码数据存储至第三内存单元,并发送第三指令;第四程序单元,用于初始化完成后通知第三程序单元;通过第三指令读取所述的 一帧待编码数据进行编码,并将第三指令清空;第三内存单元,用于存储所述的一帧待编码数据。其中,所述的第三程序单元具体包括第二通知单元,用于将编码数据所需要的参数存储于第三内存单元,通知第二程 序读取;第二控制单元,用于将一帧待编码数据存储至第三内存单元,并发送第三指令;所述的第四程序单元具体包括
第二初始化单元,用于接收第三程序单元的通知,至第三内存单元读取所述的参 数进行初始化,通知第三程序单元初始化完成;第二解码单元,通过第三指令读取所述的一帧待编码数据进行编码,并将第三指 令清空。第三存储单元,进一步用于存储编码数据所需要的参数。其中,所述的装置进一步包括第四内存单元;所述的第二控制单元进一步用于将一帧待编码数据循环存储至第三内存单元和 第四内存单元;将一帧待解码数据存储至第四内存具体为接收到第二程序单元初始化完 成通知后进一步将一帧待编码数据存储至第四内存单元,并发送第四指令;所述的第二解码单元,进一步用于通过第四指令至第四内存单元读取所述的一帧 待编码数据进行编码,并将第四指令清空。本发明通过标志位第一 / 二 /三/四指令来控制读取数据,只有当解码完写入一 帧数据后/当待编码数据写入完成后才会发送标志位,相应的也只会在收到标识位后才回 去读取解码后一帧数据或待编码的一帧数据,那么就避免了读取数据时没有将一帧数据写 入完成而导致读取数据错误的情况,并且同时解决了 IO访问次数多的问题。


图1为本发明实施例1提供的一种解码音视频数据方法流程图;图2为本发明实施例1提供的解码MP3数据方法流程图;图3为本发明实施例2提供的一种解码音视频解码数据方法流程图;图4为本发明实施例3提供的一种解码音视频解码数据方法流程图;图5为本发明实施例4提供的一种编码音视频数据的方法流程图;图6为本发明实施例4提供的编码MP3数据方法流程图;图7为本发明实施例5提供的一种解码音视频数据的装置结构图;图8位本发明实施例6提供的一种编码音视频数据的装置结构图。
具体实施例方式本发明实施例提供了一种解码、编码音视频数据的方法及装置,有效的解决了 64 位程序与在64位操作系统下兼容运行32位程序的够保证数据读取正确率低的问题。实施例1,参见图1,一种解码音视频数据方法具体为步骤10 第一程序通知第二程序初始化;其中步骤10具体实现方法为步骤101,第一程序将解码数据所需要的参数存储于第一内存,通知第二程序读 取;步骤102 第二程序至第一内存读取所述的参数进行初始化,并通知第一程序初 始化完成。步骤11 第二程序初始化完成后通过第一程序获取一帧待解码数据并进行解码, 将解码后的一帧数据存入第一内存,并发送第一指令;其中步骤11的具体实现方法为
步骤111 第一程序接收第二程序初始化完成的信息后,将一帧待解码数据写入 第一内存,通知第二程序读取;步骤112 第二程序至第一内存读取所述的一帧待解码数据,并发送第一指令;步骤12 第一程序通过第一指令至第一内存读取所述的解码后的一帧数据,并将 所述第一指令清空。下面以需要解码的数据MP3为例来进行说明,参见图2。例如第一程序为64位程 序,第二程序为32位程序。步骤201 64位程序将解码的MP3文件所需要的参数存储于第一内存,并发送 start通知32位程序读取;步骤202 32位程序接收start后到第一内存读取解码MP3所需要的参数,并进行 初始化,初始化完成后发送ready指令通知64位程序初始化完成;步骤203 64位程序接收32程序发送的ready初始化完成的信息后,将一帧MP3 数据写入第一内存,发送decode通知32位程序读取;步骤204 32位程序至第一内存读取所述的一帧待解码MP3数据并解码,将解码后 的一帧数据存入第一内存;读取完成后发送readl ;步骤205 :64位程序通过第一指令至第一内存读取所述的解码后的一帧MP3数据, 并将readl清空。以上实施例中,本发明通过标志位第一指令,也就是readl来控制读取数据,只有 当32位程序解码完写入一帧数据后才后发送标志位readl,64位程序也只会在收到标识位 readl后才回去内存读取解码后一帧数据,那么就避免了 64位程序去第一内存读数据时32 位还没有将一帧数据解码完成而导致读取数据错误的情况,并且同时解决了 IO访问次数 多的问题。实施例2,参见图3,一种解码音视频数据方法具体为步骤30 第一程序通知第二程序初始化;其中步骤30具体实现方法为步骤301,第一程序将解码数据所需要的参数存储于第一内存,通知第二程序读 取;步骤302 第二程序至第一内存读取所述的参数进行初始化,并通知第一程序初 始化完成。步骤31 第二程序初始化完成后通过第一程序获取一帧待解码数据并进行解码, 将解码后的一帧数据存入第一内存,并发送第一指令;其中步骤31的具体实现方法为步骤311 第一程序进一步将待解码数据的存储路径存储于第一内存;步骤312 第二程序通过所述的存储路径获取一帧待解码数据并进行解码,将解 码后的一帧数据存入第一内存并发送第一指令;步骤32 第一程序通过第一指令至第一内存读取所述的解码后的一帧数据,并将 所述第一指令清空。实施例1与实施例2相似,区别在于实施例2是通过待解码文件存储路径来获取 一帧待解码数据。实施例2也是通过标志位第一指令,也就是readl来控制读取数据,只有当32位程序解码完一帧数据并存入第一内存后才后发送标志位readl,64位程序也只会在 收到标识位readl后才回去内存读取解码后一帧数据,那么就避免了 64位程序去第一内存 读数据时32位还没有将一帧数据解码完成而导致读取数据错误的情况,并同时解决了 IO 访问次数过多的问题。实施例3,参见图4,在实施例1的基础上增加了第二程序循环存储解码后一帧数 据至第一内存和第二内存,一种解码音视频数据方法具体为步骤40 第一程序通知第二程序初始化;其中步骤40具体实现方法为步骤401,第一程序将待解码数据所需要的参数存储于第一内存,通知第二程序读 取;步骤402 第二程序至第一内存读取所述的参数进行初始化,并通知第一程序初 始化完成。步骤41 第二程序初始化完成后通过第一程序获取一帧待解码数据并进行解码, 将解码后的一帧数据存入第一内存,并发送第一指令;其中步骤41的具体实现方法为步骤411 第一程序接收第二程序初始化完成的信息后,将一帧待解码数据写入 第一内存,通知第二程序读取;步骤412 第二程序至第一内存读取所述的一帧待解码数据并解码,将解码后的 一帧数据存储至第一内存,并发送第一指令;步骤42 第一程序通过第一指令至第一内存读取所述的解码后的一帧数据,并将 所述第一指令清空;步骤43 第二程序在解码完一帧数据后继续解码下一帧数据,并将解码后的数据 存储至第二内存,发送第二指令;步骤44 第一程序通过所述第二指令至第二内存读取所述的解码后的一帧数据, 并将第二指令清空。以上步骤41至44是循环的过程,第一程序循环将待解码一帧数据存入第一内存 和第二内存,那么相应的第二程序也就相应的至第一内存和第二内存读取并解码,并将解 码后的一帧数据存入相应的第一内存与第二内存。该实施例在实施例1的基础上进一步增加了将数据循环写入第一内存与第二内 存的过程,这样就提高了程序写入与读取数据的速度,提高了解码的效率。实施3提供的将数据循环写入第一内存与第二内存的过程也可以用于实施例2, 在此不再累述。实施例4,参见图5本发明提供了一种编码音视频数据的方法步骤50 第三程序通知第四程序初始化;其中步骤50具体实现方法为步骤501,第三程序将待解码数据所需要的参数存储于第三内存,通知第四程序读 取;步骤502 第四程序至第三内存读取所述的参数进行初始化,并通知第三程序初 始化完成;
步骤51 第四程序初始化完成后通知第三程序,第三程序将一帧待编码数据存储 至第三内存,并发送第三指令;步骤52 第四程序通过第三指令读取所述的一帧待编码数据进行编码,并将第三 指令清空。下面以需要编码的数据MP3为例来进行说明,参见图6。例如第三程序为64位程 序,第四程序为32位程序。步骤601 :64位程序将编码的MP3文件所需要的参数存储于第三内存,并发送 start通知32位程序读取;步骤602 32位程序接收start后到第三内存读取解码MP3所需要的参数,并进行 初始化,初始化完成后发送ready指令通知64位程序初始化完成;步骤603 64位程序接收32程序发送的ready初始化完成的信息后,将一帧MP3 数据写入第三内存,发送readl通知32位程序读取;步骤604 32位程序至第三内存读取所述的一帧待编码MP3数据并进行编码;编 码完成后将readl清空。以上实施例中,本发明通过标志位第三指令,也就是readl来控制读取数据,只有 当64位程序写入一帧待编码数据后才发送标志位readl,那么32位程序也只会在收到标识 位readl后才会去内存读取一帧待编码数据,那么就避免了 32位程序去第一内存读数据时 64位程序还没有将一帧待解码数据写入完成而导致读取数据错误的情况。对应于实施例3,在实施例4的基础上,第三程序还可以进一步将一帧待编码数据 循环存储至第三内存和第四内存,那么接步骤53继续为步骤53 第三程序接收到第四程序发送的完成通知后,进一步将待编码数据存储 至第四内存,并发送第四指令;步骤54 第四程序通过第四指令至第四内存读取所述的一帧待编码数据进行编 码,并将第四指令清空。在第四程序解码完成发送第三或第四指令后,可以进一步将解码后的一帧数据存 储,方便更多用户读取。以上步骤52至55是循环的过程,第一程序循环将待编码一帧数据存入第一内存 和第二内存,那么相应的第二程序也就相应的至第一内存和第二内存读取并编码。通过这 样的循环进一步提高了程序写入与读取数据的速度,进而提高了解码的效率,并同时解决 了 IO访问次数过多的问题。实施例5,参见图7,本发明提供了一种解码音视频数据的装置,该装置包括第一程序单元70,用于通知第二程序初始化;通过第二程序单元发送的第一指令 至第一内存读取所述解码后的一帧数据,并将第一指令清空。第二程序单元71,用于初始化完成后通过第一程序单元获取一帧待解码数据并进 行解码,将解码后的一帧数据存入第一内存单元,并发送第一指令;第一内存单元72,用于存储所述的一帧待解码数据和解码后的一帧数据。其中第一程序单元70具体包括第一通知单元700,用于将解码数据所需要的参数存储于第一内存单元,通知第二 程序读取;
第一控制单元701,用于通过第二程序单元发送的第一指令至第一内存单元读取 所述的解码后的一帧数据,并将第一指令清空;其中第二程序单元71具体包括第一初始化单元710,用于接收第一程序单元的通知,至第一内存单元读取所述的 参数进行初始化,通知第一程序单元初始化完成; 第一解码单元711,用于初始化完成后通过第一程序单元获取一帧待解码数据并 进行解码,将解码后的一帧数据存入第一内存单元,并发送第一指令;第一内存单元72,进一步用于存储所述的待解码数据参数。其中第一程序单元70的第一控制单元701具体包括第一写码单元7010,接收第二程序单元初始化完成的信息后,将一帧待解码数据 写入第一内存单元,通知第二程序单元读取所述的一帧待解码数据;第一读取单元7011,用于通过第二程序单元发送的第一指令至第一内存单元读取 所述的解码后的一帧数据,并将第一指令清空;第二程序单元71的第一解码单元711具体包括第二读取单元7110,用于接收所述的读取一帧待解码数据通知,至第一内存单元 读取所述的一帧待解码数据并进行解码;第二写码单元7111,用于将解码后的一帧数据存入第一内存单元,并发送第一指 令。对应于实施例2提供的第二程序初始化完成后通过第一程序获取一帧待解码数 据的方法,本实施例的第一写码单元7010进一步用于将待解码数据的存储路径存储于第 一内存单元;所述的第二读取单元7110进一步用于,通过所述的存储路径获取一帧待解码数 据。对应于实施例3提供的第二程序循环存储解码后一帧数据至第一内存和第二内 存的方法,本发明提供的解码音视频数据的装置进一步包括第二内存单元73 ;所述的第二写码单元7111进一步用于将解码后的一帧数据循环存储至第一内存 单元72和第二内存单元73 ;将一帧待解码数据存储至第四内存73具体为在发送第一指令后继续获取一帧 待解码数据并进行解码,将解码后的一帧数据存入第二内存单元73,并发送第二指令;所述的第一读取单元7011进一步用于通过第二指令至第二内存单元读取所述的 解码后的一帧数据,并将所述第二指令清空;所述的第二内存单元73用于存储解码后的一帧数据。实施例6,参见图8,对应于实施例4,本发明提供了一种编码音视频数据的装置, 该装置包括第三程序单元80,用于通知第四程序单元81初始化,接收初始化完成信息后将一 帧待编码数据存储至第三内存单元82,并发送第三指令;第四程序单元81,用于初始化完成后通知第三程序单元80 ;通过第三指令读取所 述的一帧待编码数据进行编码,并将第三指令清空;第三内存单元82,用于存储所述的一帧待编码数据。
其中第三程序单元80具体包括第二通知单元800,用于将待编码数据所需要的参数存储于第三内存单元82,通 知第四程序单元81读取;第二控制单元801,用于将一帧待编码数据存储至第三内存单元82,并发送第三 指令;其中第四程序单元81具体包括第二初始化单元810,用于接收第三程序单元80的通知,至第三内存单元读取所 述的参数进行初始化,通知第三程序单元80初始化完成;第二解码单元811,通过第三指令读取所述的一帧待编码数据进行编码,并将第三 指令清空。对应于实施例4提供的第三程序还可以进一步将一帧待编码数据循环存储至第 三内存和第四内存的方法,该装置进一步包括第四内存单元83 ;所述的第二控制单元801进一步用于将一帧待编码数据循环存储至第三内存单 元82和第四内存单元83 ;将一帧待解码数据存储至第四内存具体为接收到第二程序单元 81初始化完成通知后进一步将一帧待编码数据存储至第四内存单元83,并发送第四指令;所述的第二解码单元811,进一步用于通过第四指令至第四内存单元83读取所述 的一帧待编码数据进行编码,并将第四指令清空。以上对本发明对一种解码、编码音视频数据的方法及装置进行了详细介绍,对于 本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式
及应用范围上均会有 改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种解码音视频数据的方法,其特征在于,该方法包括 第一程序通知第二程序初始化;第二程序初始化完成后通过第一程序获取一帧待解码数据并进行解码,将解码后的一 帧数据存入第一内存,并发送第一指令;第一程序通过第一指令至第一内存读取所述解码后的一帧数据,并将所述第一指令清空。
2.根据权利要求1所述的一种解码音视频数据的方法,其特征在于,所述的第一程序 通知第二程序初始化具体为第一程序将解码数据所需要的参数存储于第一内存,通知第二程序读取; 第二程序至第一内存读取所述的参数进行初始化,并通知第一程序初始化完成。
3.根据权利要求1所述的一种解码音视频数据的方法,其特征在于,所述的第二程序 通过第一程序获取一帧待解码数据具体为第二程序初始化完成的信息后,第一程序将一帧待解码数据写入第一内存;通知第二 程序读取;第二程序至第一内存读取所述的一帧待解码数据。
4.根据权利要求1所述的一种解码音视频数据的方法,其特征在于,所述的第二程序 通过第一程序获取一帧待解码数据具体为第一程序进一步将待解码数据的存储路径存储于第一内存; 第二程序通过所述的存储路径获取一帧待解码数据。
5.根据权利要求1所述的一种解码音视频数据的方法,其特征在于,所述的第二程序 进一步将解码后的一帧数据循环存储至第一内存和第二内存;所述的第二程序将解码后的一帧数据存储至第二内存具体为 所述的第二程序发送第一指令后继续获取一帧待解码数据并进行解码,并将解码后的 一帧数据存入第二内存,并发送第二指令;第一程序通过第二指令至第二内存读取所述的解码后的一帧数据,并将所述第二指令 清空。
6.一种编码音视频数据的方法,其特征在于,该方法包括 第三程序通知第四程序初始化;第四程序初始化完成后通知第三程序,第三程序将一帧待编码数据存储至第三内存, 并发送第三指令;第四程序通过第三指令读取所述的一帧待编码数据进行编码,并将第三指令清空。
7.根据权利要求6所述的一种编码音视频数据的方法,其特征在于,所述的第三程序 通知第四程序初始化具体为第三程序将编码数据所需要的参数存储于第三内存,通知第四程序读取; 第四程序至第三内存读取所述的参数进行初始化,并通知第三程序初始化完成。
8.根据权利要求6所述的一种编码音视频数据的方法,其特征在于,所述的第三程序 进一步将一帧待编码数据循环存储至第三内存和第四内存;所述的第三程序将一帧待解码数据存储至第四内存具体为所述的第四程序初始化完成后,第三程序进一步将一帧待编码数据存储至第四内存, 并发送第四指令;第四程序通过第四指令至第四内存读取所述的一帧待编码数据进行编码,并将第四指令清空。
9.一种解码音视频数据的装置,其特征在于,所述的装置包括第一程序单元,用于通知第二程序初始化;通过第二程序单元发送的第一指令至第一 内存读取所述解码后的一帧数据,并将第一指令清空。第二程序单元,用于初始化完成后通过第一程序单元获取一帧待解码数据并进行解 码,将解码后的一帧数据存入第一内存单元,并发送第一指令;第一内存单元,用于存储所述的一帧待解码数据和解码后的一帧数据。
10.根据权利要求9所述的解码音视频数据的装置,其特征在于,所述的第一程序单元 包括第一通知单元,用于将解码数据所需要的参数存储于第一内存单元,通知第二程序单 元读取;第一控制单元,用于通过第二程序单元发送的第一指令至第一内存单元读取所述的解 码后的一帧数据,并将第一指令清空; 所述的第二程序单元具体包括第一初始化单元,用于接收第一程序单元的通知,至第一内存单元读取所述的参数进 行初始化,通知第一程序单元初始化完成;第一解码单元,用于初始化完成后通过第一程序单元获取一帧待解码数据并进行解 码,将解码后的一帧数据存入第一内存单元,并发送第一指令; 第一内存单元,用于进一步用于存储所述的待解码数据参数。
11.根据权利要求10所述的解码音视频数据的装置,其特征在于,所述第一程序单元 的第一控制单元具体包括第一写码单元,接收第二程序单元初始化完成的信息后,将一帧待解码数据写入第一 内存单元,通知第二程序单元读取所述的一帧待解码数据;第一读取单元,用于通过第二程序单元发送的第一指令至第一内存单元读取所述的解 码后的一帧数据,并将第一指令清空;所述第二程序单元的第一解码单元具体包括第二读取单元,用于接收所述的读取一帧待解码数据通知,至第一内存单元读取所述 的一帧待解码数据并进行解码;第二写码单元,用于将解码后的一帧数据存入第一内存单元,并发送第一指令。
12.根据权利要求11所述的解码音视频数据的装置,其特征在于,所述的第一写码单 元进一步用于将待解码数据的存储路径存储于第一内存单元;所述的第二读取单元进一步用于,通过所述的存储路径获取一帧待解码数据。
13.根据权利要求11所述的解码音视频数据的装置,其特征在于,所述的装置进一步 包括第二内存单元;所述的第二写码单元进一步用于将解码后的一帧数据循环存储至第一内存单元和第 二内存单元;将解码后的一帧数据存储至第二内存具体为在发送第一指令后继续获取一 帧待解码数据并进行解码,将解码后的一帧数据存入第二内存单元,并发送第二指令; 所述的第一读取单元进一步用于通过第二指令至第二内存单元读取所述的解码后的一帧数据,并将所述第二指令清空;所述的第二内存单元用于存储解码后的一帧数据。
14.一种编码音视频数据的装置,其特征在于,所述的装置包括第三程序单元,用于通知第二程序单元初始化,接收初始化完成信息后将一帧待编码 数据存储至第三内存单元,并发送第三指令;第四程序单元,用于初始化完成后通知第三程序单元;通过第三指令读取所述的一帧 待编码数据进行编码,并将第三指令清空;第三内存单元,用于存储所述的一帧待编码数据。
15.根据权利要求14所述的编码音视频数据的装置,其特征在于,所述的第三程序单 元具体包括第二通知单元,用于将编码数据所需要的参数存储于第三内存单元,通知第二程序读取;第二控制单元,用于将一帧待编码数据存储至第三内存单元,并发送第三指令; 所述的第四程序单元具体包括第二初始化单元,用于接收第三程序单元的通知,至第三内存单元读取所述的参数进 行初始化,通知第三程序单元初始化完成;第二解码单元,通过第三指令读取所述的一帧待编码数据进行编码,并将第三指令清空;第三存储单元,进一步用于存储编码数据所需要的参数。
16.根据权利要求14所述的编码音视频数据的装置,其特征在于,所述的装置进一步 包括第四内存单元;所述的第二控制单元进一步用于将一帧待编码数据循环存储至第三内存单元和第四 内存单元;将一帧待解码数据存储至第四内存具体为接收到第二程序单元初始化完成通 知后进一步将一帧待编码数据存储至第四内存单元,并发送第四指令;所述的第二解码单元,进一步用于通过第四指令至第四内存单元读取所述的一帧待编 码数据进行编码,并将第四指令清空。
全文摘要
本发明公开了一种解码音视频数据的方法,该方法包括第一程序通知第二程序初始化;第二程序初始化完成后通过第一程序获取一帧待解码数据并进行解码,将解码后的一帧数据存入第一内存,并发送第一指令;第一程序通过第一指令至第一内存读取所述解码后的一帧数据,并将所述第一指令清空。本发明通过标志位指令来控制读取数据,只有当解码完写入一帧数据后/当待编码数据写入完成后才会发送标志位,相应的也只会在收到标识位后才回去读取解码后一帧数据或待编码的一帧数据,那么就避免了读取数据时没有将一帧数据写入完成而导致读取数据错误的情况,并且同时解决了IO访问次数多的问题。
文档编号H04N7/26GK102098510SQ20101055973
公开日2011年6月15日 申请日期2010年11月25日 优先权日2010年11月25日
发明者张鹏 申请人:深圳市融创天下科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1