כיצד אלגוריתמי דחיסת וידאו מודרניים באמת עובדים

Wie moderne Videokomprimierungsalgorithmen tatsächlich funktionieren
⏱️ 1 min read

אלגוריתמים מודרניים של דחיסת וידאו אינם זהים לאלגוריתם של דחיסת תמונות שאתה עשוי להכיר. המימד והזמן הנוספים גורמים לכך ששיטות מתמטיות והגיוניות שונות מיושמות על קובץ הווידאו כדי להקטין את הגודל תוך שמירה על איכות הווידאו.

בפוסט זה, אנו משתמשים ב-H.264 כתקן הדחיסה הארכיטיפי. למרות שזה כבר לא פורמט דחיסת הווידאו החדש ביותר, הוא עדיין מספק דוגמה מפורטת מספיק כדי להסביר מושגים כלליים לגבי דחיסת וידאו.

יער אילנות (הארבורט...
יער אילנות (הארבורטום הלאומי)

מהי דחיסת וידאו?

אלגוריתמי דחיסת וידאו מחפשים יתירות מרחבית וזמנית. על ידי קידוד נתונים מיותרים מספר מינימלי של פעמים, ניתן להקטין את גודל הקובץ. תארו לעצמכם, למשל, תמונה של דקה אחת של פניה של דמות המשנים לאט לאט הבעה. זה לא הגיוני לקודד את תמונת הרקע עבור כל פריים: במקום זאת, אתה יכול לקודד אותה פעם אחת ואז לחזור אליה עד שאתה יודע את השינויים בסרטון. קידוד חיזוי בין-פריים זה אחראי לחפצים המטרידים של דחיסת וידאו דיגיטלית: חלקים מתמונה ישנה נעים בצורה שגויה כי משהו בקידוד השתבש.

I-frames, P-frames ו-B-frames

I-frames הן תמונות מקודדות במלואן. כל I-frame מכיל את כל הנתונים הדרושים כדי לייצג תמונה. P-frames הם פנערך על סמך האופן שבו התמונה משתנה מאז ה-I-frame האחרון. B-frames הם בחזוי באופן i-directional, תוך שימוש בנתונים מה-P-frame האחרון ומה-I-frame הבא. ה-P-frames צריך רק לאחסן את המידע החזותי הייחודי ל-P-frame. בדוגמה למעלה, הוא צריך לעקוב אחר איך הנקודות נעות מסביב לפריים, אבל Pac-Man יכול להישאר היכן שהוא נמצא.

מסגרת B מסתכלת על מסגרת P ועל המסגרת הבאה I ו”מבצעת ממוצע” של התנועה בין הפריימים הללו. לאלגוריתם יש מושג היכן התמונה “מתחיל” (ה-I-frame הראשון) והיכן התמונה “מסתיימת” (ה-I-frame השני), ומשתמש בנתונים חלקיים כדי לקודד ניחוש טוב, תוך השארת כל פיקסלים סטטיים שאינם נחוצים ליצירת התמונה.

קידוד תוך-פריים (I-frames)

כיצד פועלים מסגרות IP ו-B דחיסת וידאו

I-frames נדחסים באופן עצמאי באותו אופן שבו נשמרות תמונות סטילס. מכיוון ש-I-frames לא משתמש בנתונים חזויים, התמונה הדחוסה מכילה את כל הנתונים המשמשים להצגת ה-I-frame. הם עדיין דחוסים על ידי אלגוריתם דחיסת תמונה כמו JPEG. קידוד זה מתרחש בדרך כלל במרחב הצבעים YCbCr, המפריד בין נתוני בהירות לנתוני צבע, ומאפשר לקודד תנועה ושינויי צבע בנפרד.

עבור רכיבי קודקים לא חזויים כמו DV ו-Motion JPEG, כאן אנחנו עוצרים. מכיוון שאין פריימים חזויים, הדחיסה היחידה שניתן להשיג היא על ידי דחיסת התמונה לפריים בודד. זה פחות יעיל, אבל מייצר קובץ תמונה גולמי באיכות גבוהה יותר.

ב-codec המשתמשים במסגרות חזויות כגון H.264, I-frames מוצגות מעת לעת כדי “לרענן” את זרם הנתונים, תוך הגדרת מסגרת ייחוס חדשה. ככל שה-I-frames מרוחקים יותר, כך קובץ הווידאו יכול להיות קטן יותר. עם זאת, אם ה-I-frames רחוקים מדי זה מזה, הדיוק של פריימים החזויים של הסרטון יתדרדר לאט לאי-מובן. יישום מותאם לרוחב פס יכניס I-frames לעתים קרובות ככל האפשר מבלי להפריע לזרימת הווידאו. עבור צרכנים, התדירות של I-frames נקבעת לעתים קרובות בעקיפין על ידי הגדרת “איכות” בתוכנת הקידוד. תוכנת דחיסת וידאו ברמה מקצועית כגון ffmpeg מאפשרת שליטה מפורשת.

חיזוי בין פריימים (פריימים P ו-B פריימים)

מקודדי וידאו מנסים “לחזות” את השינוי בין פריים אחד למשנהו. ככל שהתחזיות קרובות יותר, כך אלגוריתם הדחיסה יעיל יותר. זה מה שיוצר P-frames ו-B-frames. הכמות המדויקת, התדירות והסדר של הפריימים החזויים, כמו גם האלגוריתם הספציפי המשמש לקידוד ולנגינתם, נקבעים לפי האלגוריתם הספציפי שבו אתה משתמש.

כיצד פועלת דחיסת וידאו של מחיצות חסימות

הבה נבחן כיצד פועל H.264, כדוגמה כללית. המסגרת מחולקת למקטעים הנקראים מאקרו בלוקים, המורכבים בדרך כלל מ-16 על 16 דוגמאות. האלגוריתם אינו מקודד את ערכי הפיקסלים הגולמיים עבור כל בלוק. במקום זאת, המקודד מחפש בלוק דומה במסגרת ישנה יותר, הנקראת מסגרת התייחסות. אם נמצאה מסגרת התייחסות חוקית, הבלוק מקודד על ידי ביטוי מתמטי הנקרא וקטור תנועה, המתאר את האופי המדויק של השינוי מבלוק ההתייחסות לבלוק הנוכחי. כאשר הסרטון מתנגן, נגן הווידאו יפרש את וקטורי התנועה הללו בצורה נכונה כדי “לתרגם מחדש” את הסרטון. אם הבלוק לא משתנה, אין צורך בוקטור.

מסקנה: דחיסת נתונים

לאחר מיון הנתונים למסגרות שלו, הם מקודדים לביטוי מתמטי באמצעות מקודד הטרנספורמציה. H.264 משתמש ב-DCT (טרנספורמציה דיסקרטית של קוסינוס) כדי להפוך נתונים חזותיים לביטוי מתמטי (באופן ספציפי, סכום פונקציות הקוסינוס המתנודדות בתדרים שונים). אלגוריתם הדחיסה שנבחר קובע את מקודד ההמרה. לאחר מכן הנתונים “מעוגלים” על ידי המכונן. לבסוף, הביטים מופעלים באמצעות אלגוריתם דחיסה ללא אובדן כדי להקטין את גודל הקובץ שוב. זה לא משנה את הנתונים: זה רק מארגן אותם בצורה קומפקטית ככל האפשר. לאחר מכן הסרטון דחוס, קטן יותר מבעבר ומוכן לצפייה.

קרדיט תמונה: VC Demo, itu delft

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar of Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

You may also like...

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x