所以,我給了一個程序在C++中,我必須使用TBB並行化(使其更快)。當我查看代碼時,我認爲使用管道是有道理的。問題是我沒有什麼經驗,我在網上發現的任何東西都讓我更加困惑。這裏是代碼的主要部分:並行視頻轉換程序tbb
uint64_t cbRaw=uint64_t(w)*h*bits/8;
std::vector<uint64_t> raw(cbRaw/8);
std::vector<uint32_t> pixels(w*h);
while(1){
if(!read_blob(STDIN_FILENO, cbRaw, &raw[0]))
break; // No more images
unpack_blob(w, h, bits, &raw[0], &pixels[0]);
process(levels, w, h, bits, pixels);
//invert(levels, w, h, bits, pixels);
pack_blob(w, h, bits, &pixels[0], &raw[0]);
write_blob(STDOUT_FILENO, cbRaw, &raw[0]);
}
它實際上讀取視頻文件,拆包,適用改造,包裝,然後將它寫入到輸出。這看起來很簡單,所以如果你有任何想法或資源可能有用,請分享。
Thanx提前,
D.基督。
從概念上說,我明白了。問題在於它在教程中使用了TextSlice *類型以便在流水線階段之間傳輸數據。它看起來非常複雜 – user3371706
我已經更新了答案,以解釋您可能需要做的數據傳輸。希望有所幫助。 –