हार्डवेयर-एच 264-एन्कोडिंग से मैं किस गति की उम्मीद कर सकता हूं?


29

मैंने विकिपीडिया-लेख पर ठोकर खाई कि ब्रॉडकॉम जीपीयू में एच .264 / एवीसी को एन्कोडिंग के लिए हार्डवेयर समर्थन है , न कि केवल डी- कोडिंग।

मुझे एक लेख भी मिला जहां किसी ने ffmpegh264 / mp4 वीडियो फ़ाइलों को बनाने के लिए एक उदाहरण दिया । ठीक है, एक विशेष GPU के साथ एक सामान्य प्रयोजन सीपीयू, इसलिए यह वास्तव में आश्चर्य की बात नहीं है।

लेकिन एक औसत ग्राफिक्स-कार्ड के साथ एक मानक डेस्कटॉप पीसी की तुलना में, क्या रास्पबेरी पाई संभवतः एच .264 / एवीसी को भी तेजी से एन्कोड कर सकती है ? यदि एक डेस्कटॉप उपयोगकर्ता $ 150 Ati / Nvidia ग्राफिक्स कार्ड के साथ ffmpegअपने Core-i5xxx के लिए अनुकूलित करने के लिए था ... तो क्या वह संयोजन "हार्डवेयर H.264 एन्कोडिंग समर्थन" के तरीकों में कुछ भी प्रदान करता है? यदि नहीं, तो क्या विशेष रूप से अपनाया गया रास्पबेरी-पाई-एफएफएमपीपी भी तेज होगा? यदि हाँ, तो क्या गति की तुलना पहले से ही है?


मुझे नहीं लगता कि रास्पबेरी पाई एक डेस्कटॉप पीसी से तेज होगी।
जीवांश

5
किसी को स्पष्ट रूप से एक बेंचमार्क करना चाहिए और कुछ परिणाम दिखाना चाहिए।
एक्सटीएल

@XTL क्या आप ऐसा कर सकते हैं ? ;-)
ट्वी

यह बहुत अच्छा परिणाम है .. क्या आप कृपया उदाहरण के आदेश में ऑडियो ट्रांसकोडिंग जोड़ सकते हैं?

जवाबों:


5

फिलहाल, ऐसा लगता है कि हार्डवेयर का उपयोग करके h264 वीडियो को एन्कोड करने के लिए अभी भी कोई स्थिर सॉफ़्टवेयर नहीं है, भले ही यह आधिकारिक तौर पर घोषणा की गई हो कि रास्पबेरी पाई h264 हार्डवेयर-एन्कोडिंग का समर्थन करती है। इसलिए, हम एक नियमित पीसी के प्रदर्शन की तुलना करने के लिए एक बेंचमार्क नहीं कर सकते

मुझे नहीं पता कि कोई व्यक्ति इस विषय पर काम कर रहा है, लेकिन मौजूदा परियोजना में इस तरह के एक मॉड्यूल को एकीकृत करने के बारे में निराशावादीlibav लगता है कि एक डेवलपर (2 दिसंबर, 09:23 को उसका उत्तर देखें)।libav

जब कोई लाइब्रेरी या सॉफ्टवेयर इसे अनुमति देता है तो मुझे बेंचमार्क करने में खुशी होगी।


मुझे नहीं पता कि कहां से शुरू करना है, लेकिन मैं इसे आजमाने के लिए तैयार हो सकता हूं। मैं हमेशा मुझे libavcodec src में खुदाई करने के लिए, या - सटीक होने के लिए एक कारण की तलाश करता था - x264।
टौवी

2
GStreamer पुस्तकालय ब्रॉडकॉम चिप्स OpenMax एपीआई में hooking के लिए सक्षम है, और कहा कि हार्डवेयर एन्कोडिंग करने के लिए एक सक्षम होने के लिए प्रतीत होता है: gstreamer.freedesktop.org/releases/gst-omx/1.0.0.html
speedplane

25

अप्रैल 2015 तक GStreamer 1.2 को Raspbian में शामिल किया गया था, OpenMAX हार्डवेयर को omxh264enc के माध्यम से H.264 एन्कोडिंग को गति देता है।

मैंने कुछ बेंचमार्किंग की तुलना की है:

  1. मैकबुक प्रो (प्रारंभिक 2011) दोहरे कोर i7-2620M 2.7GHz (सैंडी ब्रिज) - 4 जीबी रैम
  2. रास्पबेरी पी 2 मॉडल बी 900MHz क्वाड-कोर एआरएम कॉर्टेक्स-ए 7 सीपीयू - 1 जीबी रैम

सैंपल फाइल: फिल्म एलाट्रिस्ट (2006) से 60 के दशक का नमूना। मूल फ़ाइल 1080p है और 30MB लेता है। मैंने फ़ाइल को 720p में ट्रांसकोड किया। वीडियो ट्रांसकोडिंग पर अध्ययन को केंद्रित करने के लिए सभी ऑडियो ट्रैकों की अनदेखी की गई।

परिणाम:

ऑन (1), हैंडब्रेक (x264 कोडेक) का उपयोग करते हुए मैंने x264-सेटिंग्स veryslow और औसत बिटरेट 1145kbps (1-पास) के साथ ट्रांसकोड किया, जिसके परिणामस्वरूप 7.7MB फ़ाइल थी। प्रोफ़ाइल उच्च, स्तर 4.0। एन्कोडिंग 4 थ्रेड्स का उपयोग करके 3min 36s लिया। हैंडब्रेक की कुल संचयी सीपीयू चार्ज ~ 380%। वीडियो की गुणवत्ता बहुत अच्छी थी। छोटी कलाकृतियों का अवलोकन किया जा सकता है और विस्तार का नुकसान आसानी से नहीं देखा जा सकता है। अभी भी नीचे देखें।

पर (2), GStreamer और omxh264enc (हार्डवेयर त्वरित) का उपयोग करके मैंने लक्ष्य-बिटरेट = 1145000 (1145kbps), नियंत्रण-दर = 1 (चर बिटरेट नियंत्रण विधि) के साथ ट्रांसकोड किया, जिसके परिणामस्वरूप 6.9MB फ़ाइल थी। एन्कोडिंग 1 धागा का उपयोग कर 7min 4s लिया। Gst-launch-1.0 ~ 100% का कुल संचयी सीपीयू शुल्क। वीडियो की गुणवत्ता स्पष्ट रूप से स्पष्ट रूप से दिखाई देने वाली कलाकृतियों के साथ अपमानित हुई और आसानी से विस्तार से देखने योग्य नुकसान हुई। अभी भी नीचे देखें।

gst-launch-1.0 -v filesrc location=sample-1080p.mp4 ! decodebin ! videoconvert ! \
videoscale ! video/x-raw,width=1280,height=688 ! omxh264enc control-rate=1 \
target-bitrate=1145000 ! h264parse ! mp4mux ! \
filesink location=sample-720p-OMX-1145kbps.mp4

एन्कोडर के रूप में x264enc के साथ GStreamer का उपयोग करते समय, gst-launch-1.0 का कुल संचयी सीपीयू चार्ज लगभग 380% हो जाता है, जो इस तथ्य का समर्थन करता है कि omxh264enc वास्तव में GPU का उपयोग करता है। इसके अलावा, (2) में x264enc के साथ, समय 15min से आगे निकल जाता है।

निष्कर्ष:

एक समान फ़ाइल आकार के लिए, हार्डवेयर-त्वरित रास्पबेरी पी 2 जीपीयू एनकोडर द्वारा बिताया गया समय दोहरे कोर i7-2620M पर सॉफ्टवेयर x264 एनकोडर के लगभग दोगुना था। इस परीक्षण के दौरान बड़े पैमाने पर अप्रयुक्त सीपीयू के कारण ऑडियो ट्रांसकोडिंग और मल्टीप्लेक्सिंग को जोड़ने से यह अंतर थोड़ा कम हो सकता है। सॉफ़्टवेयर-एन्कोडेड फ़ाइल पर वीडियो की गुणवत्ता स्पष्ट रूप से बेहतर थी। नीचे चित्र देखें।

Omxh264enc के लिए उपलब्ध कॉन्फ़िगरेशन विकल्प (gst-inspect-1.0 द्वारा उजागर) x264 एनकोडर की तुलना में सीमित हैं लेकिन आगे प्रयोग बेहतर गुणवत्ता प्रदान कर सकता है।

अनुलग्नक:

रास्पियन रिपोजिटरी से GStreamer और OpenMax की स्थापना:

$ apt-get install libgstreamer1.0-0 libgstreamer1.0-0-dbg libgstreamer1.0-dev liborc-0.4-0 liborc-0.4-0-dbg liborc-0.4-dev liborc-0.4-doc gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gstreamer1.0-alsa gstreamer1.0-doc gstreamer1.0-omx gstreamer1.0-plugins-bad gstreamer1.0-plugins-bad-dbg gstreamer1.0-plugins-bad-doc gstreamer1.0-plugins-base gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-base-dbg gstreamer1.0-plugins-base-doc gstreamer1.0-plugins-good gstreamer1.0-plugins-good-dbg gstreamer1.0-plugins-good-doc gstreamer1.0-plugins-ugly gstreamer1.0-plugins-ugly-dbg gstreamer1.0-plugins-ugly-doc gstreamer1.0-pulseaudio gstreamer1.0-tools gstreamer1.0-x libgstreamer-plugins-bad1.0-0 libgstreamer-plugins-bad1.0-dev libgstreamer-plugins-base1.0-0 libgstreamer-plugins-base1.0-dev
$ gst-launch-1.0 --version
gst-launch-1.0 version 1.2.0
GStreamer 1.2.0

मैकबुक प्रो पर हैंडब्रेक (x264) का उपयोग करते हुए अभी भी 720p वीडियो का एक्सट्रैक्टेड एक्सट्रो एक्स (पूर्ण विवरण के लिए खुला या डाउनलोड इमेज):

मैकबुक प्रो पर हैंडब्रेक (x264) का उपयोग कर 720p वीडियो का क्विक एक्स अभी भी ट्रांसकोड किया गया

अभी भी एक रास्पबेरी पाई 2 पर GStreamer (OpenMAX के माध्यम से हार्डवेयर एन्कोडिंग) का उपयोग करके 720p वीडियो का क्विक एक्स ट्रांसकोड किया गया है (पूर्ण विवरण के लिए छवि डाउनलोड या डाउनलोड करें):

एक वीडियो रास्पबेरी पाई 2 पर GStreamer (OpenMAX के माध्यम से हार्डवेयर एन्कोडिंग) का उपयोग करके 720p वीडियो का QuickTime X अभी भी ट्रांसकोड किया गया है

अद्यतन करें:

बाद ecc29 के सुझाव विधि स्केलिंग Lanczos का उपयोग कर के मैं एक परीक्षण जोड़ने प्रदर्शन method=lanczosकरने के लिए videoscale। एन्कोडिंग प्रक्रिया समय में दोगुनी हो गई, लगभग 7min से 14min 37s तक कूद गई। परिणाम गुणवत्ता में लगभग समान है (विधि बिलिनियर के बिना)। दरअसल, दोष मुख्य रूप से हार्डवेयर में एन्कोडिंग प्रक्रिया से आते हैं। वे स्पष्ट रूप से संपीड़न कलाकृतियों हैं।


GStreamer ट्रांसकोडिंग के बाद की छवि गुणवत्ता के लिए, एक अन्य कारक पर विचार किया जाना चाहिए। वीडियोसैल के लिए विभिन्न मापदंडों का छवि पर प्रभाव होगा, इससे पहले कि gstreamer इसे omxh264enc पर भेज दे। वीडियोकास्ट बिलिनियर को डिफ़ॉल्ट विकल्प के रूप में उपयोग करता है। लैंक्ज़ोस बेहतर है लेकिन यह बहुत धीमा है। Gstreamer के डेवलपर्स वीडियोसैल के लिए अधिक विकल्पों पर काम कर रहे हैं, लेकिन वे अभी तक स्थिर रिलीज में नहीं हैं। कुछ उत्पन्न पैटर्न विभिन्न विकल्पों की तुलना करने में मददगार हो सकते हैं:
ecc29

gst-launch-1.0 -e videotestsrc pattern=zone-plate kx2=80 ky2=45 num-buffers=1 ! video/x-raw, width=1920, height=1080 ! videoconvert ! videoscale method=lanczos ! video/x-raw, width=1280, height=720 ! avimux ! filesink location=lanczos_1280.avi
ecc29

मैंने lanczosस्केलिंग पद्धति के परिणामों के साथ पोस्ट को अपडेट किया है ।
एम। रुबियो-रॉय

3 बी + खरीदने के बारे में सोच रहा था। साढ़े 3 साल बाद कोई अपडेट? अब वास्तविक समय एन्कोडिंग संभव है?
अकोस्टैडिनोव

1

आरपीआई में GPU बहुत गोमांस है। मैंने पढ़ा है कि एन्कोडिंग के संदर्भ में आप 1080p @ 30fps को एन्कोड कर सकते हैं। इसके अलावा कई धाराओं को एन्कोडिंग भी संभव है। यह भी माना जाता है कि आप आरपीआई का उपयोग करके मक्खी पर vidoes सांकेतिक शब्दों में बदलना कर सकते हैं।

परंतु। आधुनिक दिन के ग्राफिक्स कार्ड में GPU पर पूरे एनकोड को चलाने की क्षमता होती है, जो कि एक GPU वास्तव में अच्छा है।

अगर मुझे व्यक्तिगत राय लेनी होती। यह होगा कि आरपीआई एक मध्यम कल्पना ग्राफिक्स कार्ड से तेज नहीं होगा। लेकिन मुझे लगता है कि यह आपके विचार से बहुत तेज होगा। शायद 75% गति के पास भी।

मुझे कहीं भी उपलब्ध तुलना नहीं मिली।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.