2017-05-09 2 views
1

J'essaye de capturer une image en utilisant AVFoundation et de l'enregistrer en JPEG avec une qualité maximale. Je connais AVVideoCodecJPEG et AVVideoQualityKey pour la capture AVFoundation, mais cela ne produit pas la sortie que je recherche. A savoir, j'ai besoin du JPEG final pour utiliser le sous-échantillonnage de chrominance 4: 4: 4. A la place, AVFoundation, même avec une qualité définie sur 1,0 (max), produit l'image avec un sous-échantillonnage de chrominance 4: 2: 0. J'ai essayé de capturer une image au format BGRA32 et plus tard compresser avec VideoToolbox - même résultat. La seule façon d'obtenir la sortie désirée est d'utiliser la méthode CGImageDestinationCreateWithData, mais elle est trop lente - 0,4 s pour une image de 12 MPx (si la qualité est inférieure à 1,0, l'image peut être compressée en 0,1 s pour la même taille, mais que je reçois à nouveau 4: 2: 0 sous-échantillonnage de chrominance). Est-ce que quelqu'un a réussi à produire un JPEG avec un sous-échantillonnage de chrominance 4: 4: 4 en utilisant AVFoundation ou VideoToolBox? Ou peut-être y at-il un moyen d'accélérer la méthode CGImageDestinationCreateWithData? Merci d'avanceAVFoundation ou VideoToolbox compression JPEG

Répondre

1

Ok, il semble qu'il n'y ait pas de support pour le sous-échantillonnage de la chrominance 4: 4: 4 en utilisant la compression JPG accélérée matériellement.