gpt4 book ai didi

c++ - 优化图像缓冲区

转载 作者:行者123 更新时间:2023-11-28 04:02:42 24 4
gpt4 key购买 nike

这是解码 WebM 帧并将它们放入缓冲区的代码

image->planes[p] = pointer to the top left pixel 

image->linesize[p] = strides betwen rows

framesArray = vector of unsigned char*

while ( videoDec->getImage(*image) == VPXDecoder::NO_ERROR)
{



const int w = image->getWidth(p);
const int h = image->getHeight(p);

int offset = 0;
for (int y = 0; y < h; y++)
{
// fwrite(image->planes[p] + offset, 1, w, pFile);
for(int i=0;i<w;i++){
framesArray.at(count)[i+(w*y)] = *(image->planes[p]+offset+ i) ;

}

offset += image->linesize[p];



}
}
.............................

如何逐行而不是逐像素写入介绍缓冲区或优化帧介绍缓冲区的写入?

最佳答案

如果源图像和目标缓冲区共享相同的宽度、高度和每像素位数,您可以使用 std::copy 将整个图像复制到其中。

std::copy(image->planes[p] + offset, image->planes[p] + (image->getHeight(p) * image->linesize[p], framesArray.begin()) ;

如果每个像素的位相同但宽度和高度不同,则可以使用 std::copy by line。

关于c++ - 优化图像缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59246761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com