17
MOTION ESTIMATION ההההה ההההה

MOTION ESTIMATION שערוך תנועה

Embed Size (px)

DESCRIPTION

MOTION ESTIMATION שערוך תנועה. מבוא השימוש העיקרי של שערוך תנועה מתבצע עבור קידוד לדחיסת מידע של וידאו. העיקרון הבסיסי הוא לנצל את יכולת איבוד המידע ושימוש במידע קודם. - PowerPoint PPT Presentation

Citation preview

Page 1: MOTION ESTIMATION שערוך תנועה

MOTION ESTIMATIONשערוך תנועה

Page 2: MOTION ESTIMATION שערוך תנועה

מבוא

השימוש העיקרי של שערוך תנועה מתבצע עבור קידוד לדחיסת מידע של וידאו.

העיקרון הבסיסי הוא לנצל את יכולת איבוד המידע ושימוש במידע קודם.

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

יותר, תוך כדי איבוד חלק מהמידע אך ללא פגיעה ממשית בתוצאה הסופית.

פעמים רבות קיימים בתמונה חלקים אשר אינם נעים או אשר נעים יחד בצורה ניתנת לשערוך, כך שניתן לשלוח רק את המידע לגבי שינוי המיקום.

מודל התנועה

תחומים עיקריים:2ניתן לסווג שינוי תנועה ל-

תזוזה צידית - שינוי מקום בלבד

שינוי צורה - סיבוב, שינוי קני מידה )זום(, עיוותים בצורה

Page 3: MOTION ESTIMATION שערוך תנועה

צוואר הבקבוק

בתהליך של קידוד ופענוח התמונה/ וידאו המשודרים, שערוך התנועה מזמן החישוב(, ולכן 60-80%הוא צרכן המשאבים הגדול ביותר )כ- הוא המגביל העיקרי למהירות הקידוד.

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

קצת מספרים:

ניתן לקבל יחס דחיסה JPEGבדחיסת תמונה בודדת ע"י אלגוריתם . 1:10אופייני של

לעומת זאת, בדחיסה של סדרת תמונות )=וידאו( ניתן לקבל יחסי בסטנדרטים 1:50 ואפילו MPEG ב- 1:30דחיסה אופייניים של

H.261/H.263.

Page 4: MOTION ESTIMATION שערוך תנועה

איזורי תמיכה:דיוק שערוך התנועה מושפע גם על ידי "אזור התמיכה", כלומר האזור בתמונה שבו מודל

התנועה מופעל על מנת לתאר את התנועה.

גלובלי

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

, כיוון שאלו פעולות שמשפיעות על תנועת כל הפיקסלים של התמונה בו-זמנית.zoomו-

נקודתי

כל נקודה בתמונה היא אזור תנועה. כלומר, המודל בוחן את התנועה של כל נקודה בנפרד. בהתאם לכך, ניתן לתאר כל תנועה שמתרחשת בתמונה. הקושי הנוצר מכך הוא כמות

הפרמטרים העצומה הנדרשת לתיאור התנועה.

Page 5: MOTION ESTIMATION שערוך תנועה

איזורי תמיכה:

תנועת איזורים

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

פה פשרה בין רמת דיוק תאור התנועה, וכמות המידע שיש לשדר )כלומר יחס הדחיסה(.

. חלוקה לבלוקיםהחלוקה הפשוטה ביותר לאזורים היא חלוקת התמונה לאזורים ריבועים = בצורה זו לכל בלוק בתמונה מבוצע שערוך תנועה.

הבעיה בחלוקה זו היא שאינה תואמת באופן מלא את צורת התנועה של העצמים בתמונה. במציאות עצמים אלו אינם מתחלקים לבלוקים ריבועיים שווים. לעיתים חלקים בתמונה,

שממדיהם גדולים בהרבה מבלוק אחד, ינועו בתנועה זהה.

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

אזורים, אבל את האזורים יש להגדיר קודם לכן על פי תנועתם, ולהפך! הדרך לבצע זאת היא ע"י שילוב של שני השלבים בצורה איטראטיבית - כאשר בכל שלב מבצעים שערוך תנועה

וסגמנטציה מחדש, עד התייצבות האזורים.

Page 6: MOTION ESTIMATION שערוך תנועה

פיצוי תנועה:

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

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

למשל(.MPEGהשכנים שלו )ממומש ב-

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

כאשר נעבור פריים, נחפש את הבלוק הרצוי בטווח מסוים, ואם נמצא אותו נוכל לבטא את מיקומו בעזרת וקטור תנועה ביחס לאותו הבלוק בפריים הקודם

Page 7: MOTION ESTIMATION שערוך תנועה

מודל התאמת בלוקים:על פי מודל זה, התמונה מחולקת לבלוקים, ונבדקת התנועה של כל בלוק מתמונה לתמונה ע"י חיפוש

הבלוק . )Block Matching )BMהמתאים ביותר לבלוק הנבדק -

קריטריון השגיאה:

כיוון שאנו מחפשים את הבלוק הכי דומה, נחפש מינימום שגיאה, הקריטריון שנעשה בו שימוש הינו

Mean Absolute Differenceקריטריון , אך הוא פחות רגיש לרעש שהוזכר.MSEקריטריון דומה ל-

והיא פשטות חישובית.MSEלקריטריון זה יתרון נוסף על ה- .Mean Absolute Error, Mean Absolute Distortionקריטריון זה נקרא לפעמים גם בשמות -

Page 8: MOTION ESTIMATION שערוך תנועה

Full Searchמודל התאמת בלוקים – FS הוא מודל החיפוש הפשוט ביותר, בו החיפוש מבוצע על כל הבלוקים שבתמונה יחסית

לבלוק הרצוי. חיפוש זה ימצא לנו את המינימום הגלובלי של שגיאת שערוך התנועה.זהו אלגוריתם לא יעיל, ומאד ארוך מבחינה חישובית. מצד שני הוא נותן שגיאת שערוך התנועה

. גלובליתמינימלית

אלגוריתמים איטרטיביים

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

בצעדים משתנים בגודל, כאשר מתחילים בצעד ראשון גדול, יכול לגרום למציאת מינימום שגיאה מקומי ולא גלובלי, דבר שמוריד מאיכות שערוך התנועה. מצד שני - הרווח המתקבל

מבחינת פשטות חישוב הוא גדול מאד.

Page 9: MOTION ESTIMATION שערוך תנועה

Step search-4מודל התאמת בלוקים – מתבסס על חיפוש בעל ארבעה צעדים. עקב צעד התחלתי קטן, קיים צורך בארבעה צעדים 4SSאלגוריתם

נקודות בדיקה בחלון 9 בודק בצעד הראשון 4SS פיקסלים. אלגוריתם 7±על מנת לכסות אזור חיפוש של .4x4חיפוש בגודל

צעדים:

9 מחושב עבור BDM(. 4x4 - מלבן ממוקם במרכז חלון חיפוש )1צעד , אחרת 4 מינימלי נמצא במרכז דלג לשלב BDMנקודות הבדיקה. אם

.2עבור לשלב מינימלי נמצא באחד מארבעה קדקודים, יש להזיז BDM - אם 2צעד 

5 מינימלי, כלומר קיימות BDMחלון חיפוש כך שמרכזו יהיה בלוק עם מינימלי נמצא באחד מארבעה אמצעי BDMנקודות בדיקה חדשות. אם

BDMהצלעות של מלבן יש להזיז חלון חיפוש כך שמרכזו יהיה בלוק עם עבור נקודות BDM נקודות בדיקה חדשות. אם 3מינימלי, כלומר קיימות

של מרכז החלון יש לעבור BDMבדיקה חדשות התקבל גדול יותר מ- .3, אחרת לצעד 4לצעד .4, אך מוביל סופית לצעד 2 - אופן החיפוש כמו בצעד 3צעד נקודות בדיקה פנימיות של מלבן 4 מינימלי עבור BDM - מציאת 4צעד

(2x2 כמתואר באיור. בלוק עם )BDM.מינימלי יבחר כבלוק המתאים

Page 10: MOTION ESTIMATION שערוך תנועה

Hexagonמודל התאמת בלוקים – search אשר מבצע את אותם שלבים, כאשר החיפוש מתבצע על HS, קיים אלגוריתם 4SSבדומה לאלגוריתם

(8 לעומת 6תחום בצורת משושה. כלומר, ישנן פחות נקודות חיפוש במסגרת )

Page 11: MOTION ESTIMATION שערוך תנועה

מקבול:באמצעות חלוקת התמונה לתתי-תמונות נוכל לבצע מקבול.

יעבוד על תת-תמונה באופן עצמאי תוך שימוש באחד מהאלגוריתמים THREADכל שהוצגו קודם.

בכדי THREADבסיום, נבצע השוואה של השגיאה המינימלית שהתקבלה מכל לקבל תוצאה סופית.

בעמודים הבאים נציג גרפים עבור מקבול האלגוריתמים שהצגנוFS – Full Search

4SS – 4 Steps SearchHS – Hexagon Search

Page 12: MOTION ESTIMATION שערוך תנועה

גרפים: למציאת מספר FSהסימולציה הראשונה היתה על אלגוריתם ה-

האופטימליTHREADSה-

256 threads/blockהביאו לזמן הריצה המינימלי

16X16

32X32

64X64

128X

128

256X

256

512X

512

1024

X1024

2048

X2048

4096

X4096

0

1

2

3

4

5

6Runtime of full search on various

threads/block

3264128256512

Image Size

Ru

nti

me (

secon

ds)

Page 13: MOTION ESTIMATION שערוך תנועה

מקבילי לעומת סיריאלי:

16X16

32X32

64X64

128X

128

256X

256

512X

512

1024

X1024

2048

X2048

4096

X4096

0

0.5

1

1.5

2

2.5

3

3.5Hexagon Search serial vs.

parallel

Hexagon_SerialHexagon_parallel

Image Size

Runti

me (

seconds)

16X16

32X32

64X64

128X

128

256X

256

512X

512

1024

X1024

2048

X2048

4096

X4096

0

5

10

15

20

25

30 Full Search serial vs. parallel

FSS_Serial

FSS_Parallel

Image Size

Runti

me (

seconds)

16X16

32X32

64X64

128X

128

256X

256

512X

512

1024

X1024

2048

X2048

4096

X4096

00.5

11.5

22.5

33.5

4Four Step Search serial vs.

parallel

4SS_Serial4SS_Parallel

Image Size

Runti

me (

seconds)

Page 14: MOTION ESTIMATION שערוך תנועה

Speed Up

יותר מהיר, אך FSניתן לראות כי עבור תמונות קטנות הוא המהיר 4SSמגודל תמונה מסויים אלגוריתם ה-

ביותר.

16X16

32X32

64X64

128X

128

256X

256

512X

512

1024

X1024

2048

X2048

4096

X4096

0

5

10

15

20

25

30

35

Parallel vs. serial versions speedup

Speed_UP_FSSpeed_UP_4SSSpeed_UP_Hexagon

Image size

Speed u

p

Page 15: MOTION ESTIMATION שערוך תנועה

זמני ריצה:

Page 16: MOTION ESTIMATION שערוך תנועה

סיכום התוצאות:

מקבול שערוך התנועה משפר את הביצועים רק עבור 1.256x256תמונות הגדולות מ-

נמצא כאלגוריתם הכי איטיFSאלגוריתם ה-2.

הביא לתוצאות מעט טובות יותר 4SSמקבול ה-3.HSממקבול ה-

מעבדים בלבד על 256חישוב הזמנים התבצע על 4.מנת להשוות בין האלגוריתמים ולא עבור מציאת

האופטימלי.THREADSמספר ה

Page 17: MOTION ESTIMATION שערוך תנועה

ReferencesDeepak Turaga , Mohamed Alkanhal . "Search Algorithms

for Block-Matching in Motion Estimation". ECE - CMU. March 06, 2010

<http://www.ece.cmu.edu/~ee899/project/deepak_mid.htm .>

Lai-Man Po, Wing-Chung Ma. A Novel Four-Step Search Algorithm for Fast Block Motion Estimation. JUNE 1996

Xuan Jing, Lap-Pui Chau. "An Efficient Three-Step Search Algorithm for Block Motion Estimation". IEEE

TRANSACTIONS ON MULTIMEDIA JUNE 2004: 435-437.Chen Lu, Wang. "Diamond Search Algorithm". ECE, U of

Texas. March 06, 2010 <http://users.ece.utexas.edu/~bevans/courses/ee381k/proj

ects/fall98/chen-lu-wang/presentation/sld012.htm.>