0

我正在为自定义视频格式 ( QTC ) 编写解码器和编码器。解码过程由多个阶段组成,每个阶段的输出被传递到下一个阶段:

  1. 反序列化输入流
  2. 使用范围编码器生成符号序列
  3. 从符号流生成图像流
  4. 将图像流序列化为输出格式

第三步和第四步几乎占据了所有的处理时间,第三步大约占 35%,第四步大约占 60%,第一步和最后一步相当琐碎。

并行运行四个步骤的推荐和理想方式是什么?我最感兴趣的是如何处理部件之间的通信。我计划在第二步和第三步使用一个 Goroutine,这些例程通过缓冲通道连接。这是正确的方法吗?

4

2 回答 2

3

对于某些具有通过仔细使用互斥锁来“保护”的“共享”数据结构的任务来说更容易,但是缓冲通道将是在 Go 中执行此操作的“标准”方式,对于您的任务来说,这听起来也是正确的解决方案。

既然您在这里问,您是否遇到任何问题?

于 2013-04-06T20:51:19.147 回答
0

别想太多。只写一些代码。Go 代码很容易更改 - 编译器握着你的手。编写一些测试/基准以保持诚实。

亚历克斯

于 2013-04-07T02:45:45.867 回答