Encoding CVPixelBufferRef to base64

Hi everyone,


I'm trying to send over the network the captured image of the frame using ARKit and I'm having performance issues with the following code:

CVPixelBufferRef pixelBuffer = frame.capturedImage;
   
    CIImage *ciImage = [CIImage imageWithCVPixelBuffer:pixelBuffer];
   
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        CIContext *temporaryContext = [CIContext contextWithOptions:nil];
        CGImageRef videoImage = [temporaryContext
                                 createCGImage:ciImage fromRect:CGRectMake(0, 0, CVPixelBufferGetWidth(pixelBuffer), CVPixelBufferGetHeight(pixelBuffer))];
        UIImage *image = [UIImage imageWithCGImage:videoImage];
        CGImageRelease(videoImage);
       
        imageBase64 = [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
        /
    });


This is the way I convert from CVPixelBufferRef to a base64 string and it drops down the performance.


Does anyone know a way for doing this better?


Thanks in advance

same here, did anyone improve this implementation?
Encoding CVPixelBufferRef to base64
 
 
Q