هل تقوم مساحة الألوان Swscale بتحويل الإطارات المتداخلة؟

StackOverflow https://stackoverflow.com//questions/9681059

  •  13-12-2019
  •  | 
  •  

سؤال

أنا أكتب تطبيقًا يقوم بتصدير الفيديو الذي قمت بالتقاطه (PAL SDI).مساحة اللون الأصلية هي uyvy (4:2:2).عندما أقوم بتحويل الإطارات باستخدام swscale إلى 4:2:0 وترميزها باستخدام avcodec، أحصل على نزيف الألوان بين الحقول.أظن أن هذا بسبب عدم علم swscale بتداخل الإطار.فيما يلي مثال لجزء من إطار متشابك من مقطع الفيديو الذي تم تصديره والذي يعرض أحد الحقول:

color bleeding between fields

كما ترون، اللون ينزف من الحقل الآخر.كيف أمنع هذا من الحدوث؟لقد بحثت في المكتبة وحاولت العثور على أي شيء في swscale يخبرها باحترام الحقول، لكنني لم أجد أي شيء.

أقوم بتخزين كل حقل في مخازن مؤقتة منفصلة، ​​حتى أتمكن من معالجة الحقول بشكل فردي مسبقًا إذا كان ذلك سيساعد.

شاكرين لأية مساعدة في هذا الشأن!

Regards Carl

يحرر:في الأساس، ما أريده هو إخراج PAL DV.أظن أن swscale قادر على إنتاج هذا النوع من 420 المتشابك بطريقة أو بأخرى، حيث أن ffmpeg (التطبيق) يمكنه التعامل مع هذا (على ما أعتقد).

هل كانت مفيدة؟

المحلول

الجواب هو إجراء عمليتين swscale، واحدة لكل حقل.يمكنك خداع swscale لاستخدام نفس المخزن المؤقت عن طريق تحديد نصف الارتفاع بمضاعفة الخطوة، ثم إزاحة العملية الثانية بخط واحد.

أخيرًا حصلت على الإجابة من قائمة مستخدمي libav.يمكن العثور على رمز المثال في MPlayer/libmpcodecs/vf_scale.c و libavfilter/vf_scale.c

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top