UA126919C2 - Уточнення вектора руху для мультиреференсного прогнозування - Google Patents

Уточнення вектора руху для мультиреференсного прогнозування Download PDF

Info

Publication number
UA126919C2
UA126919C2 UAA201912286A UAA201912286A UA126919C2 UA 126919 C2 UA126919 C2 UA 126919C2 UA A201912286 A UAA201912286 A UA A201912286A UA A201912286 A UAA201912286 A UA A201912286A UA 126919 C2 UA126919 C2 UA 126919C2
Authority
UA
Ukraine
Prior art keywords
motion vector
image
reference image
estimate
prediction
Prior art date
Application number
UAA201912286A
Other languages
English (en)
Inventor
Семіг Есенлік
Семих ЭСЕНЛИК
Ананд Мегер Котра
Чжіцзе Чжао
Чжицзе ЧЖАО
Original Assignee
Хуавей Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавей Текнолоджиз Ко., Лтд. filed Critical Хуавей Текнолоджиз Ко., Лтд.
Publication of UA126919C2 publication Critical patent/UA126919C2/uk

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)

Abstract

Винахід стосується виконання уточнення вектора руху в пошуковому просторі для мультиреференсного міжкадрового прогнозування. Вибирають два або більше опорних зображень, одне з яких використовується для уточнення вектора руху. Ґрунтуючись на початковій оцінці вектора руху відносно опорного зображення для уточнення вектора руху, в даному опорному зображенні створюється пошуковий простір. Використовуючи узгодження шаблонів, уточнюють перший вектор руху. Другий вектор руху відносно іншого опорного зображення обчислюється з використанням його початкової оцінки, початкової оцінки першого вектора руху і уточненого першого вектора руху.

Description

шаблонів, уточнюють перший вектор руху. Другий вектор руху відносно іншого опорного зображення обчислюється з використанням його початкової оцінки, початкової оцінки першого вектора руху і уточненого першого вектора руху.
НУ 108 зва та 19 мо о БЕлеквішенс ї й о- БЮ 0 ффодуть | 1 Кблуть З Й пенртнннннннтнндттн фест кююек КК фот орктттн, я дет пиДдетЕОре МЕБЛЕВА КНяв г, !
Її Бршкищу 10 : Жлак БЕЧНЕЕЯНІ
БОР РО Мждя інропногування ВалМиОВ; ї | І пи от | ВЖК : ПКовдуванюх | : ОЇ фор обеюднЬ лож Й і Я тої жадря) | ї Деодовяник ; : : НН ішовтУрногО її 8 ОК оворотнетої пзвозмноМ: | : : В інлцова ЗЛЕ УЕЕА І виб рераетворю івваетванн:, Ще : ОСЕЖЕЕНЕО І ОО0ОВЕ Е ян І ЗЕ пКолодлнни:
ЦЕ Мк І івх 1
Фіг.
Даний винахід стосується галузі відеокодування і, зокрема, оцінки вектора руху, яка застосовується у мультиреференсному міжкадровому прогнозуванні. Дана заявка заявляє пріорітет за заявкою РСТ/ЕР2017/066342, поданою 30 червня 2017 року, зміст якої включено в цьому документі за допомогою посилання.
Сучасні гібридні відеокодеки застосовують кодування з прогнозуванням. Зображення відео- послідовності розподіляється на блоки пікселів і ці блоки потім кодуються. Замість попіксельного кодування блока передбачається увесь блок, використовуючи вже кодовані пікселі в просторовій або часовій близькості до блока. Також, кодер обробляє тільки розбіжності між блоком і його прогнозуванням. Подальша обробка звичайно включає перетворення пікселів блока у коефіцієнти в ділянці перетворення. В подальшому коефіцієнти можна стискати за допомогою квантування і додатково ущільнювати за допомогою ентропійного кодування, щоб сформувати бітовий потік. Бітовий потік додатково включає будь-яку сигнальну інформацію, яка дозволяє декодеру декодувати кодоване відео. Наприклад, сигнальна інформація може включати параметри, які відносяться до параметрів кодера, таких, як розмір вхідного зображення, частота кадрів, відображення етапу квантування, застосовуване до блоків зображень прогнозування або подібні.
Часове прогнозування застосовує часову кореляцію між зображеннями з відео, які також називають кадрами. Часове прогнозування також називають міжкадровим прогнозуванням, оскільки це є прогнозування з використанням залежності між (серед) відмінними відеокадрами.
Відповідно, блок, що кодується, також званий поточним блоком, передбачається з декількох (або одного) попередньо кодованих зображень (зображення), названих опорними зображеннями. Опорне зображення не обов'язково являє собою зображення, що передує поточному зображенню, в якому поточний блок розміщений у порядку відтворення відеопослідовності. Кодер може кодувати зображення у порядку кодування, який відрізняється від порядку відтворення. У якості прогнозування поточного блока, в опорному зображенні можна визначити сумісно розміщений блок. Сумісно розташований блок являє собою блок, який розміщений в опорному зображенні в тій самій позиції, що і поточний блок в поточному зображенні. Таке прогнозування є точним для нерухомих ділянок зображення, а саме ділянок зображення, в котрих відсутній рух деталей при переході від одного до іншого зображення.
Зо З метою отримати засіб прогнозування, який бере до уваги рух, а саме засіб прогнозування з компенсацією руху, звичайно застосовують оцінку руху під час визначення прогнозування поточного блока. Відповідно, поточний блок передбачають за допомогою блока в опорному зображенні, який розміщений на заданій вектором руху відстані від позиції сумісно-розміщеного блока. З метою сприяння декодеру у визначенні ідентичного прогнозування поточного блока, вектору руху у бітовому потоці можна надавати сигнали. З метою додатково знизити ресурсомісткість сигналів, викликану наданням сигналу вектору руху для кожного з блоків, можна оцінити сам вектор руху. Оцінку вектора руху можна виконувати, грунтуючись на векторах руху сусідніх блоків у просторовій і/або часовій ділянці.
Прогнозування поточного блока можна вирахувати, використавши одне опорне зображення або проаналізувавши прогнозування, отримані від двох або декількох опорних зображень.
Опорним зображенням може бути дотичне зображення, а саме зображення, що безпосередньо передує і/або зображення, що безпосередньо наступне за поточним зображенням у порядку відтворення, оскільки дотичні зображення є найвірогідніше аналогічні поточному зображенню.
Однак, взагалі, опорним зображенням може бути також будь-яке інше зображення, що передує або наступне за поточним зображенням у порядку відтворення і передує поточному зображенню у бітовому потоці (порядок декодування). Цим можна забезпечити переваги, наприклад, у випадку оклюзії і/або нелінійного руху у відео-контенті. Таким чином, опорному зображенню також можна надати сигнал у бітовому потоці.
Особливий режим міжкадрового прогнозування - це так зване двонаправлене прогнозування, в якому два опорних зображення використовуються при формуванні прогнозування поточного блока. Зокрема, два прогнозування, визначені у відповідних двох опорних зображеннях, об'єднуються в сигнали прогнозування поточного блока. Двонаправлене прогнозування може призвести до більш точного прогнозування поточного блока, ніж одностороннє прогнозування, тобто прогнозування з використанням лише одного опорного зображення. Більш точне прогнозування призводить до менших відмінностей (так званих "залишків") між пікселями поточного блока і блока, що передбачається, який можна кодувати ефективніше, тобто стискати до коротшого бітового потоку. Взагалі, можна використовувати більше, ніж два опорних зображення, щоб знайти відповідні, більше, ніж два, опорні блоки для прогнозування поточного блока, тобто можна застосовувати мультиреференсне міжкадрове бо прогнозування. Таким чином, термін "мультиреференсне прогнозування" включає двонаправлене прогнозування, як і ті прогнозування, що використовують більше, ніж два опорних зображення.
З метою забезпечення більш точної оцінки руху, роздільну здатність опорного зображення можна покращити за допомогою інтерпольованих зразків між пікселями. Інтерполяцію дробових пікселів можна виконувати шляхом зваженого усереднення найближчих пікселів. У випадку напівпіксельної роздільної здатності використовують, зокрема, білінійну інтерполяцію. Інші дробові пікселі обчислюють як середнє значення серед найближчих пікселів, вирахуваних за допомогою інверсії відстані між відповідними найближчими пікселями, і пікселю, що вже передбачений.
Оцінка вектору руху являє собою складну обчислювальну задачу, у якій обчислюють подібність між поточним блоком і відповідними блоками прогнозування, на які посилаються кандидатні вектори руху в опорному зображенні. З метою зменшити складність, кількість кандидатних векторів руху зменшують, обмежуючи кандидатні вектори руху певним пошуковим простором. Пошуковий простір можна, наприклад, задавати кількістю і/або позиціями пікселів, які оточують позицію в опорному зображенні, що відповідають позиції поточного блока в поточному зображенні. З іншого боку, кандидатні вектори руху можна задавати за переліком кандидатних векторів руху, складеним з векторів руху сусідніх блоків.
Вектори руху зазвичай, щонайменше частково, визначаються на стороні кодера і надсилають сигнал декодеру через кодований бітовий потік. Однак, вектори руху можна також отримувати в декодері. У такому випадку поточний блок у декодері не доступний і не може бути використаний для обчислення подібності до блоків, на які націлені кандидатні вектори руху в опорному зображенні. Тому замість поточного блока використовують шаблон, який зформовано з пікселів раніше декодованих блоків. Наприклад, можна використовувати раніше декодовані пікселі, сусідні до поточного блока (у поточному зображенні або у опорному зображенні). Така оцінка руху забезпечує перевагу в зменшенні кількості сигналів: вектор руху отримується однаковим шляхом що в кодері, що в декодері і таким чином, сигналізувати не потрібно. З іншого боку, точність такої оцінки руху може бути нижчою.
З метою збалансувати точність і ресурсомісткість сигналів, оцінку вектору руху можна розділити на два етапи: отримання вектора руху і уточнення вектора руху. Наприклад,
Зо отримання вектору руху може включати вибір вектору руху з переліку кандидатів. Такий обраний вектор руху додатково може бути уточнений, наприклад шляхом пошуку в пошуковому просторі. Пошук в пошуковому просторі грунтується на обчисленні функції втрат для кожного кандидатного вектору руху, тобто для кожної кандидатної позиції блока, на який націлюється вірогідний вектор руху.
Документ УМЕТ-00029 "Уточнення вектора руху на стороні декодера грунтуючись на двосторонньому узгодженні шаблонів", Х. Спеп, у. Ап, 9. 2пепд (посилання на інтернет-сторінку з документом: пер://рпепіх. й-5царагіз.ец/ме) пояснює процес уточнення вектора руху, в якому перший вектор руху виявляють в роздільній здатності цілого пікселю і додатково уточнюють шляхом пошуку з роздільною здатністю напів-пікселю в пошуковому просторі навколо першого вектору руху.
При застосуванні мультиреференсного прогнозування потрібно визначати вектори руху в множині опорних зображень. Навіть якщо вектори руху отримали сигнал на першому етапі і тому декодер не потребує виконання будь-якого додаткового пошуку, уточнення вектору руху все ще потребує додаткового пошуку серед векторів руху відповідного пошукового простору. Це може бути складним завданням, яке потребує як обчислювальних ресурсів, так і місткості пам'яті.
Даний винахід передбачає спосіб, в якому визначають перший вектор руху в першому опорному зображенні і другий вектор руху в другому опорному зображенні. Таким чином можливо зменшити складність. Спочатку орієнтовно оцінюють перший вектор руху і другий вектор руху. Потім перший вектор руху уточнюють шляхом виконання пошуку в пошуковому просторі, обумовленому орієнтовною оцінкою першого вектора руху. Другий вектор руху визначають шляхом обчислення, яке грунтується на його орієнтовній оцінці і так само грунтується на уточненому першому векторі руху. Перший і другий вектори руху можна застосовувати в міжкадровому прогнозуванні поточного блока в поточному зображенні, яке використовують в декодері на стороні кодера і/або декодера.
Згідно з першою ознакою, винахід стосується приладу для визначення першого вектору руху в першому опорному зображенні і другого вектору руху в другому опорному зображенні; першого і другого векторів руху, які потрібно застосовувати в міжкадровому прогнозуванні блока зображення в поточному зображенні; приладу, який містить модуль уточнення вектора руху і 60 модуль обчислення вектора руху. Модуль уточнення вектору руху виконано з можливістю отримувати оцінку першого вектору руху. Пошуковий простір визначають, грунтуючись на оцінці першого вектору руху. В межах пошукового простору модуль уточнення вектора руху виконує пошук для визначення першого вектору руху. Модуль обчислення вектору руху отримує оцінку другого вектора руху. Грунтуючись на оцінці другого вектора руху і першого вектора руху, модуль обчислення вектора руху обчислює другий вектор руху.
Таким чином, визначення вектора руху можна виконувати з меншою складністю, при одночасному збереженні точності, заданої уточненням першого вектора руху і відповідно грунтуючись на оцінці уточненого результату для другого вектора руху.
У можливому варіанті впровадження пристрою, згідно з першою ознакою, другий вектор руху обчислюють шляхом доповнення оцінки другого вектора руху функцією відмінностей між першим вектором руху і оцінкою першого вектора руху. Ця функція може включати масштабування і/або обрізання. Коли визначають параметр масштабування, його значення може залежати від відношення відповідних відстаней першого опорного зображення і другого опорного зображення до поточного зображення.
Обчислення другого вектора руху в якості функції уточнення, виконуваної на першому векторі руху, являє собою оцінку з низькою складністю. Більше того, шляхом додаткового модифікування (наприклад, шляхом масштабування в залежності від відстані між відповідними опорними зображеннями), оцінка може стати ще більш точною.
Переважно, пристрій додатково містить модуль вибору опорного зображення для отримання опорних зображень і вибору серед них першого опорного зображення і другого опорного зображення. Після цього вибору він визначає, чи використовувати перше опорне зображення, чи друге опорне зображення для уточнення вектора руху. Перелік опорних зображень пов'язує індекс, який потрібно включити до бітового потоку, з позицією опорного зображення відносно поточного зображення. Модуль вибору опорного зображення виконано з можливістю вибирати перше опорне зображення і друге опорне зображення, грунтуючись на тому, чи посилається на нього у бітовому потоці індекс з попереднього переліку опорних зображень.
Іншими словами, модуль вибору опорного зображення виконано з можливістю вибору першого зображення, або другого зображення, грунтуючись на тому, чи посилається на відповідне перше або друге зображення в бітовому потоці, який також включає блок відео із кодованим зображенням, індекс, пов'язаний з попереднім переліком опорних зображень серед, щонайменше, двох переліків опорних зображень, причому перелік опорних зображень пов'язує індекс з позицією опорного зображення відносно поточного зображення.
Якщо на два опорних зображення в бітовому потоці посилається індекс з одного і того ж попереднього переліку опорних зображень, то модуль вибору опорного зображення може вибирати опорне зображення, використане для уточнення вектора руху, яке має найвищий порядковий номер в зазначеному переліку опорних зображень.
Альтернативно, опорним зображенням для використання при уточненні вектора руху, можна обрати зображення, яке має найнижчий часовий рівень серед двох зображень.
Опорним зображенням для використання при уточненні вектора руху можна обрати зображення, яке має найнижче базове значення квантування, або, рівним чином, зображення, яке має найменшу відстань до поточного зображення.
В якості додаткового підходу, можна обрати опорне зображення для використання при уточненні вектора руху те, при якому величина оцінки вектора руху, яка вказує на опорне зображення, яке потрібно використовувати для уточнення вектора руху, менша, ніж величина оцінки іншого вектора руху.
Пристрій може додатково містити модуль визначення вектора руху для визначення оцінки першого вектора руху і оцінки другого вектора руху. Це визначення виконується шляхом їх вибору з набору кандидатів векторів руху на основі подібності шаблону до частини відповідного зображення, на яке посилається кандидат вектора руху.
Відеокодер для кодування множини зображень в бітовий потік містить модуль міжкадрового прогнозування, формувач бітового потоку і модуль відновлення. Модуль міжкадрового прогнозування включає пристрій для визначення першого вектора руху і другого вектора руху, а також модуль прогнозування. Модуль прогнозування визначає блок прогнозування залежно від частини першого опорного зображення, на яке посилається перший вектор руху, і частини другого опорного зображення, на яке посилається другий вектор руху. Формувач бітового потоку включає в бітовий потік оцінку першого вектора руху і оцінку другого вектора руху. Модуль відновлення відновлює поточний блок залежно від блока прогнозування і зберігає відновлений блок в пам'яті.
Відеокодер для кодування множини зображень в бітовий потік містить модуль міжкадрового бо прогнозування, формувач бітового потоку і модуль відновлення. Модуль міжкадрового прогнозування включає пристрій для визначення першого вектора руху і другого вектора руху, а також модуль прогнозування. Модуль прогнозування визначає блок прогнозування залежно від частини першого опорного зображення, на яке посилається перший вектор руху, і частини другого опорного зображення, на яке посилається другий вектор руху. Синтаксичний аналізатор бітового потоку отримує з бітового потоку оцінку першого вектора руху і оцінку другого вектора руху. Модуль відновлення відновлює поточний блок залежно від блока прогнозування.
Спосіб включає уточнення вектора руху і обчислення вектора руху. Отримують оцінку першого вектора руху. Пошуковий простір визначають, грунтуючись на оцінці першого вектора руху. В межах пошукового простору виконується пошук для визначення першого вектора руху.
Отримують оцінку другого вектора руху. На основі оцінки другого вектора руху і першого вектора руху обчислюється другий вектор руху. Другий вектор руху обчислюється шляхом додавання до оцінки другого вектора руху функції відмінностей між першим вектором руху і оцінкою першого вектора руху. Ця функція може включати масштабування і/або обрізання.
Значення масштабованого параметра залежить від співвідношення між відповідними відстанями першого опорного зображення і другого опорного зображення до поточного зображення.
Спосіб додатково включає вибір опорного зображення для отримання опорних зображень, а також обирання серед них першого опорного зображення і другого опорного зображення. Після цього обирання він визначає, чи використовувати перше опорне зображення, чи друге опорне зображення для уточнення вектора руху. Перелік опорних зображень пов'язує індекс, який потрібно включити до бітового потоку, з позицією опорного зображення відносно поточного зображення. Модуль вибору опорного зображення виконано з можливістю вибирати перше опорне зображення і друге опорне зображення, грунтуючись на тому, чи посилається на нього у бітовому потоці індекс з попереднього переліку опорних зображень. Якщо на два опорних зображення в бітовому потоці посилається індекс з одного і того ж попереднього переліку опорних зображень, то модуль вибору опорного зображення може вибирати опорне зображення, використане для уточнення вектора руху, яке має найвищий порядковий номер в зазначеному переліку опорних зображень. Альтернативно, опорним зображенням для використання при уточненні вектора руху, можна обрати зображення, яке має найнижчий
Зо часовий рівень серед двох зображень. Опорним зображенням для використання при уточненні вектора руху можна обрати зображення, яке має найнижче базове значення квантування, або, рівним чином, зображення, яке має найменшу відстань до поточного зображення. У якості додаткового підходу, можна вибрати таке опорне зображення для використання при уточненні вектора руху, при якому величина оцінки вектора руху, що вказує на опорне зображення для використання при уточненні вектора руху, менша, ніж величина оцінки іншого вектора руху.
Спосіб додатково може визначати оцінку першого вектора руху і оцінку другого вектора руху.
Це визначення виконується шляхом їх вибору з набору кандидатів векторів руху на основі подібності шаблону до частини відповідного зображення, на яке посилається кандидат вектора руху.
Спосіб кодування відео для кодування множини зображень в бітовий потік включає виконання міжкадрового прогнозування, формування бітового потоку і відновлення блока.
Міжкадрове прогнозування включає визначення першого вектора руху і другого вектора руху, а також блокове прогнозування. Прогнозування включає визначення блокового прогнозування залежно від частини першого опорного зображення, на яке посилається перший вектор руху і частини другого опорного зображення, на яке посилається другий вектор руху. Формування бітового потоку включає в бітовий потік оцінку першого вектора руху і оцінку другого вектора руху. Відновлення включає відновлення поточного блока залежно від блока прогнозування і збереження відновленого блока в пам'яті.
Спосіб декодування відео для декодування множини зображень з бітового потоку включає виконання міжкадрового прогнозування, синтаксичний аналіз бітового потоку бітів відновлення блоків. Міжкадрове прогнозування включає визначення першого вектора руху і другого вектора руху, а також блокове прогнозування. Прогнозування визначає блок прогнозування залежно від частини першого опорного зображення, на яке посилається перший вектор руху і частини другого опорного зображення, на яке посилається другий вектор руху.
Синтаксичний аналіз бітового потоку отримує від бітового потоку оцінку першого вектора руху і оцінку другого вектора руху. Відновлення включає відновлення поточного блока залежно від блока прогнозування.
Даний винахід може зменшити кількість пошукових кандидатів в процесі уточнення вектора руху без будь-якого впливу на ефективність кодування при забезпеченні аналогічної якості 60 зображення. Це досягається виконанням пошуку для уточнення вектора руху тільки по одному опорному зображенню для поточного блока, в той час як інший вектор руху для іншого опорного зображення того ж поточного блока обчислюється, грунтуючись на уточненому векторі руху.
В нижченаведеному більш детально описані зразкові варіанти здійснення винаходу з посиланням на фігури і креслення, що додаються, на яких:
Фігура 1 є блок-схемою, яка показує зразкову структуру кодера, в якому можна застосовувати отримання і уточнення вектора руху;
Фігура 2 є блок-схемою, яка показує зразкову структуру декодера, в якому можна застосовувати отримання і уточнення вектора руху;
Фігура З є схематичним кресленням, яке ілюструє уточнення вектора руху по першому вектору руху;
Фігура 4 є схематичним кресленням, яке ілюструє уточнення вектора руху по другому вектору руху, грунтуючись на уточненому першому векторі руху;
Фігура 5 є блок-схемою, яка ілюструє пристрій для уточнення вектора руху;
Фігура 6 є схематичним кресленням, яке ілюструє різноманітні конфігурації пошукових просторів;
Фігура 7 є схематичним кресленням, яке ілюструє спосіб для визначення векторів руху відповідно до варіанту винаходу; і
Фігура 8 є блок-схемою, яка ілюструє модуль міжкадрового прогнозування для визначення векторів руху і виконання внутрішньо-кадрового прогнозування відповідно до варіанту здійснення винаходу.
ОПИС ВАРІАНТІВ ЗДІЙСНЕННЯ ВИНАХОДУ
Дане розкриття стосується визначення векторів руху для мультиреференсного прогнозування. Його можна застосовувати у випадку оцінки руху, що виконується під час кодування і декодування відео. У нижченаведеному, відповідно до даного розкриття, описані зразкові кодер і декодер, які можуть впроваджувати оцінку руху, яка застосовує формування пошукового простору.
Фіг. 1 показує кодер 100, який містить пристрій введення для отримання ввідних блоків кадрів або зображень відеопотоку і вихідний пристрій для формування кодованого бітового відеопотоку. Термін "кадр" в даному розкритті використовується як синонім терміну
Зо "зображення". Однак потрібно зазначити, що дане розкриття також придатне до використання на полях, коли використовується черезрядкова розгортка. Загалом, зображення включає т разів по п пікселів. Воно відповідає зразкам зображення і може містити один або більше колірних компонентів. Заради спрощення подальший опис стосується пікселів у значенні "зразки сигналів яскравості". Однак потрібно зазначити, що пошук вектора руху відповідно до винаходу може бути застосований до будь-якого колірного компоненту, у тому числі включає сигнал кольоровості або компоненти пошукового простору, такі як КОВ (Кей, Ссгееп, Віце, - адитивна колірна модель "червоний, зелений, синій"), тощо. З іншого боку, може бути корисно виконувати лише оцінку вектора руху для одного компонента і застосовувати визначений вектор руху до більшої кількості (або до усіх) компонентів.
Вхідні блоки, що підлягають кодуванню, не обов'язково мають однаковий розмір. Одне зображення може включати блоки різних розмірів, а блоковий растр різних зображень може також відрізнятися.
У пояснювальному зразку кодер 100 виконаний з можливістю застосування прогнозування, перетворення, квантування і ентропійного кодування до відеопотоку. Перетворення, квантування і ентропійне кодування виконуються відповідно модулем 101 перетворення, модулем 102 квантування і модулем 103 ентропійного кодування з метою формування у якості вихідного сигналу кодованого відеопотоку.
Відеопотік може включати множину кадрів, причому кожен кадр розділений на блоки певного розміру, які кодовані або внутрішньо-, або міжкадровим чином. Блоки, наприклад, першого кадру відеопотоку, є внутрішньо-кюодованими за допомогою модулю 109 внутрішньо-кадрового прогнозування. Внутрішньо-кодований кадр кодується з використанням тільки інформації в межах одного і того ж кадру, тому він може бути незалежно декодований і він може надавати точку входу в бітовий потік для довільного доступу. Блоки інших кадрів відеопотоку можуть кодуватися міжкадровим чином за допомогою модулю 110 міжкадрового прогнозування: інформація з попередньо кодованих кадрів (опорних кадрів) використовується для зменшення часової надмірності, тому кожен блок між-кодованого кадру передбачається від блока в опорному кадрі. Модуль 108 вибору режиму виконаний з можливістю вибору того, чи буде блок кадру оброблений модулем 109 внутрішньо-кадрового прогнозування, чи модулем 110 міжкадрового прогнозування. Цей блок також керує параметрами внутрішньо- або міжкадрового бо прогнозування. Для того щоб забезпечити можливість оновлення інформації зображення, в середині між-кодованих кадрів можна передбачити внутрішньо-кодований блок. Більше того, внутрішньо-кодовані кадри, які містять тільки внутрішньо-кодовані блоки, можна періодично вставляти у відеопослідовність для того, щоб надати точки входу для декодування, тобто точки, в яких декодер може почати декодування без наявної інформації від попередньо кодованих кадрів.
Модуль 109 внутрішньо-кадрового прогнозування є модулем прогнозування блока. Для виконання просторового або часового прогнозування кодовані блоки можуть бути додатково оброблені модулем 104 зворотнього квантування і модулем 105 зворотнього перетворення.
Після відновлення блока застосовується модуль 106 контурної фільтрації для додаткового поліпшення якості декодованого зображення. Потім відфільтровані блоки утворюють опорні кадри, які потім зберігаються в кадровому буфері 107. Такий контур декодування (декодер) на стороні кодера забезпечує перевагу отримання опорних кадрів, які є тими ж самими, що і опорні зображення, відновлені на стороні декодера. Відповідно, сторона кодера і декодера працюють аналогічним чином. Термін "відновлення" тут стосується отримання відновленого блока шляхом додавання блока прогнозування до залишкового блока декодера.
Модуль 110 міжкадрового прогнозування, в якості вхідних даних, приймає блок поточного кадру або зображення, який підлягає кодуванню, і один або декілька опорних кадрів або зображень від кадрового буфера 107. Оцінка руху і компенсація руху застосовуються модулем 110 міжкадрового прогнозування. Оцінка руху використовується для отримання вектора руху і опорного кадру на основі певної функції втрат. Потім компенсація руху описує поточний блок поточного кадру з огляду на перетворення опорного блока опорного кадру в поточний кадр, тобто за допомогою вектору руху. Модуль 110 міжкадрового прогнозування виводить блок прогнозування для поточного блока, причому згаданий блок прогнозування мінімізує функцію втрат. Наприклад, функція втрат може являти собою різницю між поточним блоком, який підлягає кодуванню, і його блоком прогнозування, тобто функція втрат мінімізує залишковий блок. Мінімізація залишкового блока грунтується, наприклад, на обчисленні суми абсолютних різниць (зит ої арзоїше ашегепсе5, 5АЮ) між усіма пікселями (зразками) поточного блока і кандидатним блоком у кандидатному опорному зображенні. Однак, взагалі, можна застосовувати будь-який інший критерій подібності, як наприклад, середня квадратична
Зо помилка (теап 5дпцаге еїтог, М5Е) або критерій структурної подібності (5ігисічгаї! бітійагну теїгіс,
ЗОІМ).
Однак, функцією втрат може також бути кількість бітів, необхідна для кодування такого між- блока і/або дисторсії що виникає в результаті такого кодування. Таким чином, можна використовувати процедуру оптимізації масштабу-дисторсії, щоб прийняти рішення про вибір вектора руху і/або в цілому про параметри кодування, такі як використання між- або внутрішньо- кадрового прогнозування для блока, а також, за допомогою яких параметрів налаштування.
Модуль 109 внутрішньо-кадрового прогнозування приймає в якості вхідних даних блок поточного кадру або зображення, що підлягає внутрішньому кодуванню і один або декілька опорних зразків з уже відновленої ділянки поточного кадру. Потім внутрішнє прогнозування описує пікселі поточного блока поточного кадру виходячи з функції опорних зразків поточного кадру. Модуль 109 внутрішньо-кадрового прогнозування видає на виході блок прогнозування для поточного блока, причому згаданий блок прогнозування переважно мінімізує різницю між поточним блоком, що підлягає кодуванню, і його блоком прогнозування, тобто він мінімізує залишковий блок. Мінімізація залишкового блока може грунтуватися, наприклад, на процедурі оптимізації масштабу-дисторсії. Зокрема, блок прогнозування отримують у вигляді спрямованої інтерполяції опорних зразків. Напрямок може бути визначено за допомогою оптимізації масштабу-дисторсії і/або шляхом обчислення ступеня подібності, як згадано вище стосовно міжкадрового прогнозування.
Різниця між поточним блоком і його прогнозуванням, тобто залишковий блок, потім перетворюється за допомогою модуля 101 перетворення. Коефіцієнти перетворення квантуються модулем 102 квантування і ентропійно кодуються модулем 103 ентропійного кодування. Сформований таким чином кодований відеопотік містить внутрішньо-кодовані блоки і між-кодовані блоки, а також відповідні сигнали (такі, як відображення режиму, відображення вектора руху і/або напрямок внутрішнього прогнозування). Модуль 101 перетворення може застосовувати лінійне перетворення, таке як Перетворення Фур'є (Бошгіег Тгапетогтайоп,
ОЕТ/ЕЕТ) або Дискретне косинусне перетворення (Оібхсгеїе Совіпе Тгапе5їоптпайоп, ОСТ). Таке перетворення в ділянку просторової частоти забезпечує ту перевагу, що остаточні коефіцієнти зазвичай мають більш високі значення на більш низьких частотах. Таким чином, після ефективного сканування коефіцієнтів (такого як зиг-заг) і квантування, остаточна послідовність 60 значень зазвичай має кілька більш високих значень на початку, а закінчується послідовністю нулів. Це забезпечує подальше ефективне кодування. Модуль 102 квантування виконує фактичне стискання з втратами за допомогою зменшення роздільності значень коефіцієнтів.
Потім модуль 103 ентропійного кодування присвоює значенням коефіцієнтів бінарні кодові комбінації для створення бітового потоку. Модуль 103 ентропійного кодування також кодує сигнальну інформацію (не відображено на фіг. 1).
Фіг. 2 показує відеодекодер 200. Відеодекодер 200 містить, зокрема, буфер 207 опорного зображення і модуль 209 внутрішнього прогнозування, який є модулем прогнозування блока.
Буфер 207 опорного зображення виконано з можливістю зберігання, щонайменше, одного опорного кадру, відновленого з кодованого бітового потоку відеоданих, причому зазначений опорний кадр відрізняється від поточного кадру (кадру, декодованого в поточний момент) кодованого відеопотоку. Модуль 209 внутрішнього прогнозування виконаний з можливістю формування блока прогнозування, який є оцінкою блока, що підлягає декодуванню. Модуль 209 внутрішнього прогнозування виконаний з можливістю формування цього прогнозування грунтуючись на опорних зразках, які отримані з буфера 207 опорного зображення.
Декодер 200 виконаний з можливістю декодування кодованого відеопотоку, сформованого відео-кодером 100, і переважно як декодер 200, так і кодер 100 формують ідентичні прогнозування для відповідного блока, що підлягає кодуванню / декодуванню. Ознаки буфера 207 опорного зображення і модуля 209 внутрішнього прогнозування є аналогічні ознакам буфера 107 опорного зображення і модуля 109 внутрішнього прогнозування, як вказано на фіг. 1.
Відеодекодер 200 містить додаткові блоки, які також присутні в відеокодері 100, як наприклад, модуль 204 зворотного квантування, модуль 205 зворотного перетворення і модуль 206 контурного фільтрування, які, відповідним чином, відповідають модулю 104 зворотного квантування, модулю 105 зворотного перетворення і модулю 106 контурного фільтрування відеокодера 100.
Модуль 203 ентропійного декодування виконаний з можливістю декодувати прийнятий кодований бітовий потік і, відповідно, отримувати квантовані залишкові коефіцієнти перетворення і сигнальну інформацію. Квантовані коефіцієнти залишкового перетворення подаються в модуль 204 зворотного квантування і модуль 205 зворотного перетворення для
Зо формування залишкового блока. Остаточний блок об'єднується з блоком прогнозування і це об'єднання подається в модуль 206 контурної фільтрації для отримання декодованого відео.
Кадри декодованого відео можуть зберігатися в буфері 207 опорних зображень і служать в якості опорного кадру для міжкадрового прогнозування.
Як правило, модулі 109 ії 209 внутрішньо-кадрового прогнозування на фіг. 1 і 2 можуть використовувати опорні зразки з уже кодованої ділянки для формування сигналів прогнозування для блоків, які повинні бути кодовані або повинні бути декодовані.
Модуль 203 ентропійного декодування приймає як свої вхідні дані кодований бітовий потік. У загальному випадку, бітовий потік спочатку аналізується, тобто з бітового потоку дістаються сигнальні параметри і залишки. Як правило, синтаксис і семантика бітового потоку задаються стандартом, згідно з яким кодери і декодери можуть працювати взаємозамінним чином. Як описано в вищезгаданому розділі "Рівень Техніки", кодований бітовий потік не тільки включає залишки прогнозування. У випадку прогнозування з компенсацією руху, відображення вектора руху також кодується в бітовому потоці і аналізується після нього в декодері. Відображення вектора руху може бути задане за допомогою опорного зображення, в якому передбачено вектор руху, і за допомогою координат вектора руху. До нинішнього моменту обговорювалося кодування повних векторів руху. Однак, можна також кодувати тільки відмінність між поточним вектором руху і попереднім вектором руху в бітовому потоці. Цей підхід дозволяє використовувати надмірність між векторами руху сусідніх блоків.
Для того, щоб ефективно кодувати опорний кадр, кодек Н.265 (ІТО-Т, Н265, Серія Н:
Аудіовізуальні і мультимедійні системи: Високоефективне відеокодування, Зегіє5 Н: Ацйцаїомізчаї апа тикітеаїйа зузіетв5: Нідп Енісіепі мідео Содіпд) забезпечує прив'язування переліку опорних зображень до індексів у переліку відповідних опорних кадрів. Потім опорному кадру надсилають сигнал у бітовому потоці за допомогою включення в нього відповідного прив'язаного індексу у переліку. Такий перелік може бути заданий стандартно або отримати сигнал на початку відео чи у сукупності з декількох кадрів. Зазначається, що в Н.265 задано два переліки опорних зображень, названих 10 і 11. У подальшому опорний кадр отримує сигнал в бітовому потоці за допомогою відображення переліку (0 або 11) і відображення індексу в цьому переліку, пов'язаного з бажаним опорним кадром. Забезпечення двох або більше переліків може мати переваги для кращого стиснення. Наприклад, 10 може використовуватися як для бо односпрямованих зрізів міжкадрового прогнозування, так і для двоспрямованих зрізів міжкадрового прогнозування, тоді як ЇЇ може використовуватися тільки для двоспрямованих зрізів міжкадрового прогнозування. Однак, взагалі, дане розкриття не обмежене будь-яким вмістом переліків! Обі 11. переліки 10 і 11 можуть бути задані у стандарті і зафіксовані. Проте, більш високої гнучкості щодо кодування / декодування можна досягти шляхом надання їм сигналів їх на початку відеопослідовності. Відповідно, кодер може компонувати переліки ГО і 1 з конкретними опорними зображеннями, впорядкованими відповідно до індексу. Переліки Г 0 і 1 можуть мати однаковий фіксований розмір. Взагалі, може існувати більше двох переліків. Вектору руху можна надавати сигнал безпосередньо за допомогою координат в опорному кадрі.
Альтернативно, що також зазначено в Н.265, можна створити перелік кандидатних векторів руху і можна передати індекс, пов'язаний за переліком із конкретним вектором руху.
Вектори руху поточного блока зазвичай корелюються з векторами руху сусідніх блоків в поточному кадрі або в раніше кодованих зображеннях. Це пояснюється тим, що сусідні блоки, ймовірно, відповідають одному і тому ж рухливому об'єкту з подібним рухом, і рух об'єкта, ймовірно, не змінюється раптово з плином часу. Отже, використання векторів руху в сусідніх блоках в якості засобів прогнозування зменшує розмір різниці сигналізованих векторів руху.
МУР (прогнозування векторів руху, тоїйоп месіог ргедіснйоп5) зазвичай отримують від уже декодованих векторів руху з сусідніх у просторі блоків або з сусідніх у часі блоків в спільно розташованому зображенні. В стандарті Н.264 / АМС (Адмапсей Мідео Содіпд, удосконалене відеокодування) це здійснюється шляхом виконання покомпонентної медіани трьох просторово сусідніх векторів руху. При використанні цього підходу засобу прогнозування не потрібні сигнали. Тимчасові ММР зі спільно розташованого зображення розглядаються тільки у так званому часовому прямому режимі Н.264 / АМС. Прямі режими Н.264 / АМС використовуються також для отримання даних руху інших, ніж дані векторів руху. Отже, вони більше відносяться до концепції об'єднання блоків в стандарті НЕМС (Нідп Енйісіепсу Мідео Содіпуд, високоефективне кодування відео). У НЕМС підхід неявного виведення МУР був замінений методом, відомим як конкуренція вектора руху, який явно сигналізує, яке прогнозування МУР з переліку передбачень
ММУР використовується для отримання вектора руху. Квадродеревна блокова структура перемінного кодування у стандарті НЕМС може привести до того, що один блок матиме кілька
Зо сусідніх блоків з векторами руху в якості потенційних кандидатів МУР. Рахуючи лівого сусіда як приклад, в найгіршому випадку, блок 64х64 прогнозування яскравості може мати 16 блоків 4х4 прогнозування яскравості зліва, коли деревний блок 64х64 кодування яскравості у подальшому не дробиться, а лівий блок дробиться до максимальної глибини.
Вдосконалене прогнозування вектора руху (Адмапсей Моїйоп Месіог Ргедісіоп, АММР) наводилося, щоб модифікувати конкуренцію вектора руху для обліку такої гнучкої блокової структури. Під час розробки стандарту НЕМС початкова конструкція АММР була значно спрощена для забезпечення гарного компромісу між ефективністю кодування і реалізацією зручної конструкції. Первісна конструкція АМУР включала п'ять засобів МУР від трьох різних класів прогнозування: три вектора руху від просторових сусідніх, медіана від трьох деревних просторових засобів прогнозування і масштабований вектор руху зі суміщеного тимчасово сусіднього блока. Крім того, перелік засобів прогнозування був модифікований шляхом переупорядковування, щоб розмістити найбільш ймовірне прогнозування руху в першому положенні і шляхом видалення надлишкових кандидатів для забезпечення мінімальних сигнальних витрат. Кінцева конструкція створення переліку кандидатів АМУР включає у себе наступні два кандидата ММР: а) до двох просторових кандидатів МУР, які виводяться з п'яти просторових сусідніх блоків; б) один часовий кандидат МУР, отриманий з двох часових, спільно розташованих блоків, коли обидва просторових кандидата МУР не доступні, або вони є ідентичними; і с) нульові вектори руху, коли просторовий, часовий або обидва кандидати не доступні. Подробиці визначення вектора руху можна знайти у книзі "Високоефективне відеокодування НЕМС: алгоритми і архітектури", за авторством М.572е6 і інших авторів, видавництво Спрінгер (Зргіпдег), 2014 рік, зокрема, в розділі 5, включеному в даний опис як посилання.
Щоб додатково поліпшити оцінку вектора руху без додаткового збільшення сигнальних втрат, може бути корисним додатково уточнювати вектор руху, отриманий на стороні кодера, і наданий в бітовий потік. Уточнення вектора руху може виконуватися в декодері без допомоги кодера. Кодер в своєму декодерному контурі може використовувати таке ж уточнення для отримання відповідних опорних зображень. Уточнення виконується за допомогою визначення шаблону, визначення пошукового простору та знаходження в пошуковому просторі частини опорного зображення, що найліпше збігається з шаблоном. Найліпше положення частини визначає найкращий вектор руху, який потім використовується для отримання засобу прогнозування поточного блока, тобто відновлюваного поточного блока.
Фігура З ілюструє пошуковий простір (ділянка пошуку) 310, який включає позиції цілих пікселів (повні точки) і позиції дрібних пікселів (порожні точки) опорного зображення. У цьому прикладі позиції дрібних пікселів є позиціями напів-пікселя. Як описано вище, позиції дрібних пікселів можуть бути отримані з позицій цілих пікселів (повнопіксельних) за допомогою інтерполяції, такої як дволінійна інтерполяція.
При двонаправленому прогнозуванні поточного блока два передбачуваних блоки, отримані з використанням відповідного першого вектора руху з переліку 0 і другого вектора руху з переліку Ї1, об'єднуються в єдиний сигнал прогнозування, який може забезпечити кращу адаптацію до похідного сигналу, ніж одно-направлене прогнозування, що призводить до зменшення залишкової інформації і, можливо, більш ефективного стиснення. Фігура З додатково ілюструє поточний блок 320 із поточного зображення. Оскільки в декодері поточний блок не доступний, так як він вже декодований, з метою уточнення вектора руху використовується шаблон, який є оцінкою поточного блока і який конструюється, грунтуючись на вже оброблених (тобто кодованих на стороні кодера і декодованих на стороні декодера) частинах зображення.
Шаблон може бути сконструйований, наприклад, грунтуючись на зразках, що належать поточному кадру, які вже декодовані, тобто які декодуються перед поточним блоком. Додатково або альтернативно, ці зразки можуть належати до будь-якого з раніше декодованих опорних зображень. Як приклад, зразки, які потрібно використовувати для конструювання шаблону, можуть належати до опорного кадру, який декодується перед поточним кадром і передує поточному кадру в порядку відображення. Альтернативно, зразки можуть належати опорному кадру, який декодується перед поточним кадром і який слідує за поточним кадром в порядку відображення. І нарешті, шаблон може бути сконструйований, грунтуючись на комбінації зразків із двох різних опорних зображень. Фахівцеві в даній ділянці техніки очевидно, що шаблон можна отримувати, користуючись різними способами, такими, щоб поточний блок можна було оцінити з використанням сконструйованого шаблону.
Спочатку отримують оцінку першого вектора руху ММО їі оцінку другого вектора руху ММІ, у якості вхідних даних в декодері 200, як показано на фіг. 3. На стороні кодера 100 оцінки вектора руху ММО і ММ1 можуть бути отримані шляхом узгодження блоків і/або пошуку в переліку кандидатів (такому, як об'єднаний перелік), утвореному векторами руху блоків, сусідніх до поточного блока (в одному і тому ж зображенні або в прилеглих зображеннях). Потім ММО і ММ1 переважно отримують сигнал на стороні декодера у бітовому потоці. Однак, потрібно зазначити, що загалом, першу стадія визначення в кодері також можна виконувати за допомогою узгодження шаблонів, що забезпечить перевагу зменшення втрат з надання сигналів.
На стороні декодера 200 отримують вектори руху ММО і ММ! переважно на основі інформації у бітовому потоці. ММО і ММ отримують сигнал або безпосередньо, або диференційно і/або сигнал отримує індекс в переліку вектора руху (об'єднаний перелік). Однак, дане розкриття не обмежене сигнальними векторами руху в бітовому потоці. Навпаки, вектор руху може бути визначений за допомогою узгодження шаблону безпосередньо на першій стадії, відповідно до процесу у кодері. Узгодження шаблонів першої стадії (деривація вектора руху) може виконуватися, грунтуючись на пошуковому просторі, відмінному від пошукового простору другої стадії уточнення. Зокрема, уточнення може виконуватися в пошуковому просторі з більш високою роздільною здатністю (тобто нижчою відстанню між пошуковими позиціями).
Відображення двох опорних зображень, до яких відносяться відповідні точки ММО ії ММ1, також надходить в декодер. Опорні зображення зберігаються в буфері опорних зображень на стороні кодера і декодера в результаті попередньої обробки, тобто відповідного кодування і декодування. Одне з цих опорних зображень вибирається для уточнення вектора руху за допомогою пошуку. Модуль вибору опорного зображення пристрою для визначення векторів руху виконаний з можливістю вибору першого опорного зображення, на яке направлений ММО і другого опорний зображення, на яке направлений Мм1. По закінченню вибору, модуль вибору опорного зображення визначає, чи використовується перше опорне зображення, чи друге опорне зображення для виконання уточнення вектора руху. На фіг. З перший опорний кадр, на який направлений вектор руху ММО, вибирається для пошуку. Для виконання уточнення вектора руху пошукова ділянка 310 в першому опорному зображенні задається вздовж всієї позиції кандидата, до якого направлений вектор руху ММО. Позиції пошукового простору кандидату в пошуковій ділянці 310 аналізуються з метою знаходження блока, найбільш подібного до шаблонного блока, шляхом виконання узгодження шаблону в межах пошукового простору і бо визначення критерію подібності такого, як сумарна величина абсолютних різниць (з5йит ої арзоїше айегепсе5, ЗАД). Як згадано вище, в одному варіанті здійснення, шаблон конструюється, грунтуючись на комбінації зразків з двох різних опорних зображень з відповідним вектором руху ММО і ММ1. Узгодження шаблонів виконується для знаходження блока на основі точки в пошуковій ділянці 310, яка найбільш схожа на шаблон. Альтернативно, в іншій реалізації шаблон конструюється для знаходження подібності між блоком прогнозування
РО, сформованим на основі ММО в 10 і блоком прогнозування Р1, сформованим на основі ММІ1 в
Ї1. Для виконання уточнення ММО, узгодження шаблону містить процес пошуку блока на основі точки в пошуковій ділянці 310, яка визначається критерієм подібності (таким, як наприклад,
ЗАВ) між РО і Р1. Позиції пошукового простору 310 узгоджують позиції, в яких співпадає верхній лівий кут шаблону 320. Як уже згадувалося вище, верхній лівий кут є єдиним умовним позначенням, і будь-яка точка пошукового простору, як центральна точка 330, може, взагалі, використовуватися для позначення співпадаючого положення.
Позиція кандидата з найнижчим значенням 5АО визначається як вектор руху ММО. На фіг. З позиція, до якій направляється ММО є позицією напівпікселя, і вона відрізняється від початкової оцінки ММО на 1,5 позиції пікселя у вертикальному напрямку, в той час як горизонтальний напрямок залишається незмінним.
Згідно з даним винаходом, для двонаправленого прогнозування або мультиреференсного прогнозування, уточнюється, щонайменше, один вектор руху поточного блока, за допомогою обчислення, грунтуючись на іншому уточненому векторі руху поточного блока, а не за допомогою виконання узгодження шаблону. На фіг. 4 показано таке уточнення. Зокрема, вектор руху ММ1" обчислюється на основі оцінки вектора руху ММІ1 і функції ММО" - ММО замість виконання другого узгодження шаблону. У прикладі на фіг. 4 визначення та уточнення першого вектора руху ММО" виконується, як описано вище з посиланням на фіг. 3. Більше того, вектор руху ММ1" обчислюється шляхом вирахування з другої оцінки ММ1" вектора руху різниці між
ММ" ії ММО.
Цей підхід використовує той факт, що більша частина руху в відеопослідовності потрапляє в категорію "поступальний руху". При поступальному русі об'єкт рухається з постійною швидкістю (принаймні, між кадрами, які розміщені близько один до одного за часом зразка). Це означає, що об'єкт переміщається в послідовних кадрах на однакову відстань пікселів в напрямках х і у
Зо (якщо часовий зразковий період не змінюється з плином часу). Винахід, в деякій мірі, використовує принцип поступального руху.
У наведеному вище прикладі перший вектор руху ММО" був уточнений за допомогою узгодження шаблонів, в той час як другий вектор руху був уточнений за допомогою обчислення.
Однак, відповідно до даного винаходу, процес вибору може бути додатково виконаний для встановлення, які вектори руху повинні бути уточнені за допомогою узгодження шаблонів, а які повинні бути визначені за допомогою обчислення. На фіг. 5 показана блок-схема прикладу засобу 500 уточнення вектора руху.
Засіб 500 уточнення вектора руху може бути включений в пристрій для визначення векторів 810 руху, як показано на фіг. 8. Пристрій може бути включено в модуль 800 міжкадрового прогнозування, який може замінювати модуль 110 міжкадрового прогнозування, показаний на фіг. 1, і/або в модуль 210 міжкадрового прогнозування, показаний на фіг. 2.
Більш конкретно, передбачається пристрій 810 для визначення першого вектора руху в першому опорному зображенні і другого вектора руху в другому опорному зображенні. Перший і другий вектори руху можуть бути застосовані в міжкадрового прогнозуванні блока зображення в поточному зображенні.
Пристрій 810 містить засіб 500 уточнення вектора руху, який, як детально показано на фіг. 5, додатково містить модуль 530 уточнення вектора руху, виконаний з можливістю отримання оцінки ММО першого вектора ММО руху і визначення першого вектора ММО" руху шляхом виконання пошуку в межах пошукового простору, визначеного на основі оцінки ММО. Пристрій додатково містить модуль 550 обчислення вектора руху, виконаний з можливістю отримання оцінки ММІ1 другого вектора ММ1" руху і обчислення другого вектора ММ1" руху на основі оцінки
ММІ1 другого вектора ММ1" руху і на основі першого вектора ММО" руху.
В даному прикладі пристрій містить першу гілку, яка містить модуль 530 обчислення вектора руху і модуль 550 обчислення вектора руху, а також другу гілку, яка містить модуль 540 обчислення вектора руху і модуль 560 обчислення вектора руху, і перемикач 520 для вмикання однієї з двох гілок і вимикання іншої. Друга гілка подібна до першої гілки і відрізняється від неї, головним чином, тим, що вона видає перший вектор ММ1" руху і другий вектор руху ММО", за допомогою обробки ММ1 у якості оцінки першого вектора руху і ММО в якості оцінки другого вектора руху.
Більш конкретно, модуль 540 уточнення вектора руху виконаний з можливістю отримання оцінку ММ першого вектора ММ1" руху і визначення першого вектора руху ММ1" шляхом виконання пошуку в межах пошукового простору, визначеного на основі оцінки ММ1. Пристрій додатково містить модуль 560 обчислення вектора руху, виконаний з можливістю отримання оцінки ММО другого вектора ММО" руху і обчислення другого вектора ММО" руху на основі оцінки
ММО другого вектора ММО" руху і на основі першого вектора ММ1" руху.
Фіг. 5 показує програму винаходу для двонаправленого прогнозування, в якому визначають два вектори руху в двох відповідних опорних зображеннях, а саме вектори ММО" ії ММ1" руху.
Відповідно, додатково виконується вибір зображення для уточнення шляхом узгодження шаблонів, звичайно шляхом використання одного з ММО і ММ1 для узгодження шаблону і утримання ще іншого ММІ1 або ММО, відповідно, для обчислення.
Цей процес уточнення вектора руху декодером (десодег тоїйоп месіог гейпетепі, ОМММК) виконується пристроєм 500. Модуль 530 або 540 уточнення вектора руху (в залежності від того, по якій з відповідних оцінок вектора ММО і ММ1 руху, повинен виконуватися шаблонний пошук) приймає на вході 505 відповідну оцінку ММО або ММ1 вектора руху від алгоритму 820 оцінки вектора руху і встановлює ділянку 310 пошуку навколо ММО або ММ1. Розмір ділянці пошуку на фігурах З і 4 становить Зх3 цілих пікселів, інтерпольований до 7х7 напівпіксель, отже, 49 позицій в цілому. Взагалі, форма і/або розмір ділянці пошуку можуть бути різними, і даний винахід працює незалежно від розміру і форми ділянці пошуку. Ділянка пошуку може мати заздалегідь визначений або попередньо заданий розмір. Іншими словами, форма і розмір пошукового простору можуть бути фіксованими і обумовленими в стандарті. Альтернативно, одна з декількох можливих форм і розмірів може бути обраний вручну користувачем серед параметрів налаштування кодера і/або автоматично, грунтуючись на контенті відео.
Деякі приклади розмірів і форм пошукового простору показані на фігурі 6. Заповненим трикутником позначено центральний піксель пошукового простору, тоді як заповнені кола позначають позиції пошукового простору, що залишились. Зауважимо, що пошуковий простір може бути додатково розширено шляхом дробової (напів-піксельної, чверть-піксельної або аналогічної) інтерполяції. Дане розкриття, в загальному, не обмежене будь-якою конкретною конфігурацією пікселів.
Зо Для кожної з позицій або дрібних позицій в межах ділянці пошуку виконується узгодження шаблону з використанням шаблону, який приблизно дорівнює поточному блока, забезпечуючи значення ЗАО для кожної координати пошукового простору. Потрібно зазначити, що роздільна здатність з цілочисловим пікселем і роздільна здатність з напів-пікселем описує роздільну здатність пошукового простору, тобто переміщення знайдених позицій в неуточнений вектор руху, який вводиться в процес. В результаті, координати пошуку не обов'язково збігаються з фактичними координатами пікселю на площині зображення. Іншими словами, роздільна здатність цілочислового пікселя (зразка) пошукового простору не обов'язково означає, що позиції пошукового простору розташовані на цілочислових пікселях опорного зображення.
Цілочислові позиції пошукового простору можуть збігатися з дробовими пікселями опорного зображення, особливо якщо початковий вектор руху ММО, ММ1 посилається на дробовий піксель в межах опорного зображення.
Виконується порівняння значень АЮ по позиціях в ділянці пошуку, визначаючи позицію з мінімальним значенням 5АЮ. Позиція з мінімальним значенням 5АЮ визначається як вектор руху ММО". Як вказано в розділі "Рівень техніки", ЗАО є тільки прикладом, і взагалі, будь-який інший показник, такий як М5Е, З5ІМ, коефіцієнт кореляції чи подібне, може використовуватися.
Визначений перший вектор ММО" руху разом з оцінкою другого вектора ММ1 руху передаються в модуль 550 обчислення вектора руху, де виконується визначення (уточнення) вектора ММ1" руху за допомогою обчислення.
В якості першого зразкового підходу, як вже було описано вище з посиланням на фігуру 4, модуль 550 обчислення вектора руху виконаний з можливістю обчислювати другий вектор руху шляхом додавання до оцінки другого вектора руху різниці між першим вектором руху і оцінкою першого вектора руху або функцією різниці між першим вектором руху і оцінкою першого вектора руху.
Додавання різниці може бути обчислено наступним чином:
ММ1" - ММ1 ж (ММО-ММО ") (рівняння 1)
Це рівняння 1 (3 додаванням негативної різниці ММО" - ММО) працює для випадку, показаного на фігурі 4, коли з двох опорних зображень одне знаходиться до поточного зображення, а інше - після поточного зображення. Як можна бачити на фігурі 4, з метою провести екстраполяцію регулярного руху, різниця між поточним вектором руху і першим вектором руху в попередньому зображенні проектується на зображення, наступне за поточним зображенням зі зворотним знаком.
Якщо обидва опорних кадри для ММО і ММ1 розташовані або після, або до поточного зображення, то різниця безпосередньо додається без зміни знака, приводячи до:
ММ17- ММ1 -- (ММО" -ММО) (рівняння 2)
Мається на увазі, що розташування до / після того, згадане вище, перебуває в порядку відображення. Порядок відображення зображень у відео може відрізнятися від порядку кодування / декодування, тобто від порядку, в якому кодовані зображення вміщені в бітовий потік. Порядок відображення зображень може бути заданий підрахунком порядку зображень (Рісіиге Огаег Сошпі, РІС). Зокрема, РІС в Н.265/НЕМС отримує сигнал в заголовку зрізу кожного зрізу, який є зображенням або його частиною.
Використовуючи параметр РОС, як показано нижче, можна реалізувати умовне рівняння для визначення, чи стверджується, що з двох опорних зображень одне є наступним, а інше передує поточному зображенню: (РОСІ-РОСО) " (РОСІ-РОСТ) « 0 (рівняння 3) в якій де РОСІі - це порядок відображення (порядковий номер) поточного кадру, РОСО - це порядок відображення першого опорного зображення, а РОС1 - це порядок відображення другого опорного зображення. Якщо умова в рівнянні З істинна, то або перше опорне зображення є попереднім, а друге опорне зображення прямує за поточним зображенням, або навпаки. Якщо, з іншого боку, умова рівняння З не вірна, то або обидва опорних кадру передують, або обидва прямують за поточним зображенням. Однак, потрібно зазначити, що умову можна реалізувати будь-яким способом, який дозволяє перевіряти, чи є знаки двох різницевих виразів (РОСІ-РОСО) і (РОСІ-РОСТ1) однаковими. Наведене вище рівняння З є лише прикладом, що використовує знак множення """ для своєї відносно простої реалізації.
Додавання функції різниці може бути обчислено нижченаведеним чином в разі двонаправленого прогнозування, в якому одне з опорних зображень передує, а інше прямує за поточним зображенням (умова в рівнянні З є істинною):
ММ1 7- ММ1-ї (ММО" -ММО) (рівняння 4)
Ї знову, якщо два опорних зображення знаходилися обидва як попереду, так обидва і після
Зо поточного зображення в порядку відображення (умова в рівнянні З є невірною), то обчислення може додати відмінність без обернення знаку:
ММ1 7- ММ1-ї (ММО" -ММО) (рівняння 5)
Наприклад, ця функція може включати масштабування і/або обрізання.
Якщо функцією виступає масштабування, обчислення вектора руху може бути наступним:
ММ1 7- ММ1-К 7 (ММО" - ММО) - ММ1--К 7 (ММО-ММО ") (рівняння 6) де" служить для множення (масштабування), а К є параметр масштабування. Якщо К-1, то отримують рівняння 1. З фіксованим (попередньо заданим) значенням К рівняння б можна застосувати до випадків, коли одне з опорних зображень передує, а інше прямує за поточним зображенням. Для випадку, коли обидва опорних зображення є попередніми або обидва є наступними за поточним зображенням, знак потрібно обернути:
ММ1 7- ММ1-К 7 (ММО" - ММО) - ММ1-К 7 (ММО-ММО ") (рівняння 7)
Згідно з варіантом здійснення винаходу, значення параметру масштабування залежить від відношення між відповідними відстанями першого зображення і другого зображення до поточного зображення. Таким чином, значення К не є наперед заданим і не є фіксованим, але може змінюватися в залежності від опорних зображень, в яких задані вектори руху. Наприклад, коефіцієнт К масштабування може бути заданий за допомогою:
К - «-РОСІ-РОСТ)ДРОСІ-РОСО) (рівняння 8)
Потрібно зазначити, що наведене вище рівняння 8 вже враховує зміну знаку, оскільки параметр масштабування змінює знак в залежності від того, чи знаходяться обидва опорних зображення на одній і тій же стороні (попередній або наступній) поточного зображення, чи на різних сторонах поточного зображення в порядку відображення.
Навіть якщо може бути корисним враховувати відстань між відповідними першим і другим опорними зображеннями для поточного зображення, навіть якщо ці відстані взаємне відрізняються, то все ж можна застосовувати значення К-ї, у рівняннях 1 і 2. Це нескладно, і якість уточненого вектора руху може все ще бути істотно вищою, ніж застосування уточнення.
Після процесу масштабування можуть бути застосовані операції округлення або обрізання.
При цьому округлення стосується забезпечення цілого або дійсного числа з попередньо заданою точністю, якнайближче до вхідного значення. Обрізання стосується видалення цифр з точністю вище точності, заданої вхідним значенням. Це може бути особливо корисним в наслідок арифметичних операцій з фіксованою точкою, які застосовуються в типових обчислювальних системах.
Оскільки уточнення вектора руху виконується тільки на одному з двох опорних зображень, пошуковий простір для виконання узгодження шаблону зменшується на 50 95.
Після описаної вище обробки поточного блока в поточному кадрі два опорних кадри і пов'язані з ними відповідні вектори руху ММО" ї ММ1" подаються на виході 580. Ці вектори руху використовуються для визначення засобу прогнозування для поточного блока, наприклад, шляхом усереднення двох відповідних засобів прогнозування, отриманих відбором відповідних частин опорних зображень, аналогічних за розміром і формою до поточного блока, на які посилаються вектори руху ММО " ї ММ1". Це виконується модулем 890 прогнозування.
Звичайними словами, модуль 890 прогнозування визначає блок прогнозування шляхом поєднання частини першого опорного зображення, на яке посилається перший вектор руху
МУО" ї частини другого опорного зображення, на яке посилається другий вектор руху ММ1.
Об'єднаний сигнал прогнозування може забезпечити кращу адаптацію до похідного сигналу, ніж одно-направлене прогнозування, що призводить до меншої кількості залишкової інформації і, можливо, більш ефективному стисканню.
Як пояснено в попередньому абзаці, вихідні вектори ММО" ії ММ1" руху у пристрої 500 можуть привести до більш низької залишкової інформації. Отже, їх використання може поліпшити ефективність прогнозування в порівнянні з вихідними векторами ММО і ММ1 руху. Потрібно зазначити, що пристрій 500 може використовуватися багато разів для того, щоб додатково поліпшити ефективність прогнозування. У цьому випадку вихідні дані першої програми пристрою 500 розглядаються як вхідні дані для другої програми, а рівність між векторами руху (рівняння з 1 по 8) зберігається після кожної програми. В цьому випадку, оскільки вектори руху
ММ" ї ММ1" забезпечують кращу оцінку поточного блока після першого використання пристрою 500, то шаблон, який використовується в модулі 530 уточнення МУ, конструюється на основі зразків, на які посилається ММО" або зразків, на які посилається ММ1" у другому використанні.
Відповідно до зразкового варіанту здійснення винаходу, пристрій 500 додатково містить модуль 510 вибору опорного зображення, сконфігурований для отримання двох опорних зображень і вибору, яке з них є першим опорним кадром і другим опорним кадром.
Зо Іншими словами, модуль 510 вибору опорного зображення контролює поточний блоком, стосовного того, який з його векторів руху потрібно уточнювати за допомогою узгодження шаблонів, а який потрібно уточнювати за допомогою обчислення на основі уточнення іншого уточненого вектора руху. Нижче наведено кілька прикладів того, як процес вибору може виконуватися модулем 510 вибору опорного зображення.
На фігурі 7 показана схема, що ілюструє спосіб 700 для визначення першого вектора руху в першому опорному зображенні і другого вектора руху в другому опорному зображенні відповідно до варіанту здійснення винаходу. Наприклад, цифровий відео-кодер 100 або декодер 200, описані вище, зокрема, модуль 110 або 210 міжкадрового прогнозування, можуть використовувати процес 700 для отримання першого і другого векторів руху для застосування їх в міжкадровому прогнозуванні блока зображення в поточному зображенні. Спосіб 700 містить етап 701 отримання оцінки першого вектора руху, етап 703 визначення першого вектора руху шляхом виконання пошуку в межах пошукового простору, визначеного на основі оцінки першого вектора руху, етап 705 отримання оцінки другого вектора руху і етап 707 обчислення другого вектора руху на основі оцінки другого вектора руху і грунтуючись на першому векторі руху.
Приклад 1
У першому прикладі модуль 510 вибору опорного зображення приймає рішення про те, який з векторів руху потрібно визначати шляхом пошуку в пошуковому просторі, керуючись переліком, з якого походить опорне зображення, що належить відповідному вектору руху.
Зокрема, щоб сигналізувати інформацію засобу прогнозування, яка використовується декодером для відновлення того ж засобу прогнозування, що використовується в кодері в межах бітового потоку, деякі кодеки сигналізують опорне зображення шляхом включення в бітовий потік індексу, який пов'язаний з конкретним опорним зображенням в переліку опорних зображень. Наприклад, перелік опорних зображень (опорного зображення перелік) може являти собою таблицю, доступну як в кодері, так і в декодері, яка пов'язує індекс з відповідною позицією відповідного опорного зображення, беручи до уваги поточне зображення.
Може бути більше, ніж один перелік опорних зображень. Наприклад, перелік ГО опорних зображень і опорне зображення 11, як правило, використовуються в Н.265 / НЕМС. Для того, щоб надати сигнал опорному зображенню в бітовому потоці, спочатку надають сигнал переліку опорних зображень, що йде за індексом з переліку сигнальних опорних зображень.
Модуль вибору опорного зображення виконано з можливістю вибирати перше опорне зображення і друге опорне зображення, грунтуючись на тому, чи посилається на нього у бітовому потоці індекс з попереднього переліку опорних зображень. У цьому контексті термін "попередньо заданий" означає "остаточно заданий", наприклад, в стандарті або заданий для всього відео в сигналах. Як приклад, попередньо заданим переліком може бути перелік1 0. У подальшому, якщо з переліку 0 опорних зображень було посилання на перше опорне зображення в той час, як з переліку 1 опорних зображень було посилання на другий перелік, то перший вектор руху, який вказує на перше опорне зображення, буде уточнено за допомогою узгодження шаблонів, оскільки на нього було посилання з 10, тоді як другий вектор руху буде обчислено, оскільки на нього не було посилання з І 0. Однак потрібно зазначити, що попередньо заданий перелік не обмежується переліком І 0. Замість нього можна попередньо задавати будь- який з використовуваних переліків опорних зображень. Зазвичай 0 міг би містити опорні зображення в більш близькому сусідстві, ніж 1. Альтернативно, 0 може включати більше опорних зображень, що передують поточному зображенню в порядку відображення, тоді як 11 може включати більше зображень, які слідують за поточним зображенням в порядку відображення. Однак, даний винахід працює незалежно від того, чи існує певна відмінність між двома або більше переліками опорних зображень.
Потрібно зазначити, що може виникати ситуація, в якій один і той самий перелік опорних зображень посилається і на перше опорне зображення, і на друге опорне зображення, на які вказують відповідні перший і другий вектори руху. Наприклад, як на перше опорне зображення, так і на друге опорне зображення може посилатися зображення з попередньо заданого переліку
ГО. Альтернативно, якщо поточний блок кодування застосовує подвійне прогнозування, то повинно відображатися одне опорне зображення з переліку 0 і одне опорне зображення з переліку 1, причому обидва опорних зображення можуть бути включені разом в один (або обидва) з довідкових переліків. Причина в тому, що опорне зображення може існувати в обох переліках (перелік 10 і перелік І 1).
Якщо перше опорне зображення і друге опорне зображення обидва включені в попередньо заданий перелік (наприклад, 0), то зображення з найвищою позицією в переліку (10) вибирається в якості опорного зображення, використовуваного для уточнення вектора руху за допомогою узгодження шаблону відповідного вказуваного вектора руху.
Аналогічний вибір може бути виконаний, якщо обидва опорних зображення включені до переліку опорних зображень, який попередньо не заданий (наприклад, Ї71, якщо 10 є попередньо заданий). Іншими словами, якщо на опорні зображення посилається перелік опорних зображень, відмінний від попередньо заданого переліку опорних зображень, то обирається опорний кадр з найвищою позицією в переліку, для уточнення вектора руху на основі узгодження шаблону.
Таким чином, модуль 510 вибору опорного зображення налаштований так, щоб, якщо на два опорних зображення в бітовому потоці посилається індекс в одному і тому ж попередньо заданому переліку опорних зображень, вибирати перше опорне зображення в якості зображення з найвищою позицією в зазначеному переліку опорних зображень.
Цей приклад забезпечує просту реалізацію без будь-якого додаткового інтелектуального процесу вибору. Зокрема, модуль 510 вибору опорного зображення керує перемикачем 520 і 570 для вибору верхньої або нижньої гілки на блок-схемі по фігурі 5, коли проаналізований перелік опорних зображень являє собою попередньо заданий перелік (такий як 10), ії якщо обидва зображення знаходяться в одному і тому ж переліку і до того ж грунтується на індексному значенні опорного зображення.
Приклад 2
Відповідно до другого прикладу, модуль 510 вибору опорного зображення виконано з можливістю вибору в якості першого опорного зображення (яке потрібно уточнити за допомогою узгодження шаблону) зображення, яке має найнижчий часовий рівень серед двох (або більше) опорних кадрів для поточного блока. Іншими словами, модуль 510 вибору опорного зображення керує перемикачами 520 і 580 для вибору верхньої гілки (530, 550) або нижньої гілки (540, 560) згідно з часовим рівнем опорних зображень, до яких відносяться вектори руху ММО і ММ1.
Потрібно зазначити, що на фігурі 5 верхня і нижня гілки необов'язково повинні бути виконані подвійним способом. Загалом, в будь-якому з варіантів здійснення винаходу і прикладах даного розкриття, передбачені єдиний модуль 530 уточнення вектора руху і єдиний модуль 550 обчислення вектора руху, і звичайно, вхід в єдину гілку перемикається відповідно до управління модулем 210 вибору опорного зображення.
Зокрема, визначають часові рівні двох (або більше) опорних зображень. Часовий рівень 60 опорного зображення вказує кількість зображень, які повинні бути декодовані до того, як може бути декодоване опорне зображення. Часовий рівень зазвичай встановлюють в декодері, який кодує зображення відео-руху в різних часових рівнях. Він може бути включений в бітовий потік.
Таким чином, декодер може, грунтуючись на сигнальній інформації з бітового потоку, визначати, які опорні зображення належать до яко часового рівню. Потім, відповідно, обирається перший опорний кадр або другий опорний кадр з нижнім часовим рівнем в якості опорного зображення, використовуваного для уточнення вектора руху за допомогою узгодження шаблонів. Цей підхід може забезпечити перевагу вибору, для узгодження шаблону, опорного кадру, який залежить незначно від попередньо декодованих зображень і, таким чином, з більш низькою ймовірністю помилок і артефактів. Відповідно, процедура уточнення вектора руху стає більш стійкою.
Приклад З
У третьому прикладі модуль 510 вибору опорного зображення виконано з можливістю вибору в якості першого опорного кадру (який потрібно уточнити шляхом узгодження шаблонів) зображення, яке має найнижче базове значення квантування. Іншими словами, модуль 510 вибору опорного зображення керує перемикачами 520 і 580 для вибору верхньої гілки (530, 550) або нижньої гілки (540, 560) згідно з параметром квантування опорних зображень, до яких відносяться вектори руху ММО і ММ1.
Значення квантування або параметр квантування в цьому контексті є інформацією, наданою в бітовому потоці, яка дозволяє визначати етап квантування. У добре відомих кодеків, таких як
Н.264/АМС ї Н.65/НЕМС, параметр квантування дозволяє визначати значення, за допомогою якого потрібно ділити коефіцієнти, що підлягають квантуванню. Що більше значення квантування, то грубіше квантування, яке зазвичай призводить до зображення гіршої якості після відновлення. Таким чином, більш низьке значення квантування означає, що може бути забезпечено більш високу якість відновленого зображення. Вибір опорного зображення з більш низьким параметром квантування означає, що опорне зображення з кращою якістю використовується для уточнення вектора руху, що також призводить до кращих результатів уточнення.
Термін "базове" значення квантування стосується значення квантування, яке є загальним для зрізу зображення і використовується в якості бази для всіх блоків. Зазвичай таке значення сигналізується, наприклад, в заголовку зрізу. Потім, як правило, різниця від базового значення
Зо сигналізується на блок або на базу модулю обробки.
Однак, даний винахід не обмежується будь-яким конкретним сигналізуванням або навіть існуванням такого значення. Аналогічний ефект може бути досягнутий шляхом визначення базового значення квантування для зображення відповідно до значень квантування елементів в зображенні, для якого сигналізується значення квантування. Іншими словами, термін "базове значення квантування" означає загальне значення квантування для зображення.
Приклад 4
Відповідно до четвертого прикладу модуль 510 вибору опорного зображення виконано з можливістю вибору в якості першого опорного зображення з найменшою відстанню до поточного зображення. Іншими словами, модуль 510 вибору опорного зображення керує перемикачами 520 і 580 для вибору верхньої гілки (530, 550) або нижньої гілки (540, 560) згідно з відстанню опорних зображень, яка визначається між відповідними векторами ММО і ММ1 руху і поточним зображенням.
Наприклад, визначаються різниці між значеннями РОСО їі РОСІ1 порядку відліку зображень (РОС) відповідних опорних зображень, пов'язаних з відповідними векторами ММО і ММ1 руху, і значенням РОСі поточного зображення. Значення РОС визначає порядок відображення зображень, а не кодування / декодування. Отже, зображення з РОС - 2 відображається перед зображенням з РОС - 8. Однак потрібно зазначити, що оскільки винахід не обмежується застосуванням в добре відомих кодеках, таких як Н.264/АМС і Н.265/НЕМС, різницю між опорним зображенням і поточним зображенням можна визначити будь-яким іншим способом, не залежно від конкретного параметра РОС.
Перше опорне зображення, що посилається на вектор руху ММО або друге опорне зображення, що посилається на вектор руху ММІ1, яке має меншу абсолютну різницю РОС (між опорним зображенням і поточним зображенням), вибирається в якості опорного зображення, яке потрібно використовувати для уточнення вектора руху, оскільки очікується, що вектори руху ближчих опорних кадрів є більш точними і/або опорний блок, на який посилаються вектори руху, є більш подібним до поточного блока. Це може привести до кращої якості уточнення.
Приклад 5
Згідно з п'ятим прикладом, модуль вибору опорного зображення виконано з можливістю вибору першого опорного зображення і другого опорного зображення таких, щоб модуль оцінки 60 першого вектора був меншим, ніж модуль оцінки другого вектора руху. Іншими словами, модуль
510 вибору опорного зображення управляє перемикачами 520 і 580 для вибору верхньої гілки (530, 550) або нижньої гілки (540, 560) відповідно до довжини (модулю) векторів ММО і ММІ1 руху, що посилаються на відповідні опорні кадри.
Абсолютні модулі векторів ММО ії ММ1 руху, що вказують на перше опорне зображення і друге опорна зображення, визначаються з використанням стандартних процедур для визначення абсолютного значення вектора. Наприклад, зведені в квадрат значення кожної векторної складової вектора руху підсумовуються. Або цю суму, або її квадратний корінь можна використовувати в якості модуля вектора руху, але обчислення квадратного кореня має більш високі обчислювальні втрати. Обирання вектора руху з меншим модулем для уточнення забезпечує перевагу в більш високій ймовірності правильного визначення, за умови, що рух між зображеннями, як правило, малий.
Деяку інформацію про оцінку першого вектора руху ММО, оцінку другого вектора руху ММ1 і індекси опорних зображень, на які посилаються ММО ії ММІ1, можна отримати в декодері в якості вхідних даних. Інформація вектора руху зазвичай отримує сигнал на базі блока, причому блоки можуть мати різні розміри. Те ж саме справедливо для індикації опорного зображення.
Синтаксичний аналізатор бітового потоку, реалізований як частина модуля 203 ентропійного декодування, отримує інформацію вектора руху з бітового потоку. Інформація про рух може безпосередньо виступати координатами вектора руху (координати відносно точки (0, 0), заданими місцем розташування блока в опорному зображенні, такими ж як місце розташування поточного блока в поточному зображенні). Альтернативно, можна надавати сигнал до відмінності у векторі руху блока, що передує поточному блока в порядку декодування. Це може бути переважно одним з просторових або часових сусідів поточного блока.
Відповідно до іншого прикладу, пристрій для визначення вектора руху, який також включає засіб уточнення 500 вектора руху, додатково включає алгоритм 820 оцінки вектора руху, виконаний з можливістю визначення оцінки першого вектора руху і оцінки другого вектора руху шляхом вибору їх з набору кандидатів вектора руху на основі подібності шаблону з частиною відповідного зображення, на яке посилається кандидат вектора руху. Іншими словами, визначення вектора руху (ММО і ММ1І) не обов'язково засноване на узгодженні шаблону в пошуковому просторі, визначеному в опорному зображенні. Пошуковий простір може бути
Зо задано (об'єднаним) переліком, який лічить індекси у поєднанні з відповідними векторами руху просторово- або часово-суміжних блоків або блоків поблизу поточного блока. Це означає, що даний винахід не обмежується способом, в якому оцінки вектора руху ММО і ММ1 виводяться до того, як вони будуть надані для уточнення.
У підсумку, процес двонаправленого прогнозування одного блока кодування, двох блоків прогнозування, відповідно, з векторів (ММ) руху зі списку ГО і ММ зі списку 1 поєднуються в єдиний сигнал прогнозування, яка може забезпечити краще пристосування до похідного сигналу, ніж однонаправлене прогнозування, приводячи до меншої залишкової інформації і, можливо, більш ефективному стисканню. Обробка декодування з подвійним прогнозуванням для поточного блока в поточному зображенні містить наступні етапи обробки.
Спочатку одержують оцінку першого вектора ММО руху і оцінку другого вектора ММІ1 руху в якості вхідних даних на стороні декодера. Два опорних зображення, до яких направлені ММО і
ММІ1, знаходяться в буфері зображень декодера, оскільки вони вже декодовані перед обробкою поточного зображення. Одне з цих опорних зображень вибирається для уточнення вектора руху за допомогою узгодження шаблонів для пояснення опорного зображення, до якого направлений
МУ. Для виконання уточнення вектора руху, ділянку пошуку в опорному зображенні, до якого направлений ММО, вибирають навколо точки-кандидата, до якої направлений вибраний ММО.
Кандидатні позиції пошукового простору в межах ділянці пошуку аналізуються за допомогою виконання узгодження шаблону з простором поточного блока і визначення ступеня подібності.
Кандидатна позиція пошукового простору з найнижчим значенням неподібності визначається, як вектор ММО" руху. Вектор ММІ" руху обчислюється, грунтуючись на ММІ1 і функції ММО" -МУО замість виконання другого узгодження шаблонів.
Відповідно до одного з варіантів здійснення винаходу, порівняння подібності виконується шляхом порівняння зразків, на які посилається ММО" і зразків, на які посилається ММІ". Як показано на фігурі 4, будь-яка точка, на яку посилається ММО" в пошуковому просторі 310, має відповідний вектор ММ руху, заданий одним, або більше, рівнянням з 1 по 8. З метою порівняння подібності між блоками зразків під час узгодження шаблонів, блок зразків, на який посилається ММО" і блок зразків, на який посилається ММ1", можуть використовуватися у такій функції, як функція БАЮ. В цьому випадку шаблон складається лише з вибірок, що належать опорному зображенню, на яке посилається ММІ, і операція уточнення вектора руху виконується бо по ММО. Більше того, шаблон дещо змінюється для кожної точки в пошуковому просторі 310.
Більш конкретно, згідно з варіантом здійснення винаходу, застосовуються наступні етапи:
Етап 1: Обчислюється подібність між зразками, на які вказує вхідний вектор ММО руху і зразками, на які вказує вхідний вектор ММ1 руху. Вхідний вектор ММО руху вказує на точку 330 в пошуковому просторі.
Етап 2: Вибирається друга точка в пошуковому просторі 310, яка відрізняється від точки 330.
Друга точка позначається ММО".
Етап 3: Обчислюється вектор ММІ1" руху, з використанням одного або декількох рівнянь з 1 по 8, грунтуючись на ММО", ММО ї ММ1.
Етап 4: Обчислюється подібність між зразками, на які вказує вхідний вектор ММО" руху і зразками, на які вказує вхідний вектор ММ1" руху. Якщо подібність вище, ніж значення, обчислене на етапі 1, то обирається пара ММО" і ММ1" в якості уточнених векторів руху. В іншому випадку обирається пара ММО ії ММ1 (тобто початкова пара векторів руху) в якості уточнених векторів руху.
Етапи 2, 3 ії 4 можуть повторюватися для оцінки більше можливих точок в пошуковому просторі 310. Якщо в пошуковому просторі не залишається точок пошуку, то уточнені вектори руху виводяться в якості остаточних уточнених векторів руху.
На етапі 4 стає зрозуміло, чи міг би показник подібності (як наприклад, ЗАЮ, З5ІМ і подібні) привести до найбільшої подібності в початковій точці 330, на яку вказує початковий вектор ММО руху, аналогом якого є початковий вектор ММІ1 руху, відповідно до одного або більше рівнянь з 1 по 8. Якщо уточнені вектори руху слідують цій версії, то на виході процесу уточнення вектора руху з'являться ММО і ММ1.
Будь-яка пара векторів ММО" ії ММ1" руху, яка є виходом пристрою 500, повинна підкорятися правилам, описаним в одному або більше рівнянні з 1 по 8. Конкретні особливості конструкції шаблону і показник подібності, які використовуються в операції узгодження шаблонів, можуть змінюватися без впливу на винахід та його переваги, що є зменшенням точок пошуку, які потрібно перевірити, складаючи пару з двох векторів руху.
Згідно з варіантом здійснення даного винаходу, крім обробки двонаправленого прогнозування, виконуваної в модулі міжкадрового прогнозування, як описано вище, інші етапи обробки для кодування і декодування відповідають стандарту Н.265/НЕМС.
Однак, взагалі, даний винахід може бути застосовано до будь-якого відеодекодера для декодування множини зображень з бітового потоку. Такий декодер, до того ж, може містити модуль міжкадрового прогнозування, що включає пристрій за будь-яким із пп. 1 по 11 і модуль прогнозування для визначення блока прогнозування відповідно до частини першого опорного зображення, на яке посилається перший вектор руху, і частини другого опорного зображення, на яке посилається другий вектор руху. Декодер може додатково містити синтаксичний аналізатор бітового потоку. Синтаксичний аналізатор бітового потоку може бути реалізований, наприклад, як частина модуля 203 ентропійного декодування і налаштований для отримання з бітового потоку оцінки першого вектора руху і оцінки другого вектора руху. Відеодекодер може додатково містити модуль 211 відновлення, виконаний з можливістю відновлювати поточний блока відповідно до блока прогнозування.
З іншого боку, відеокодер для кодування множини зображень в бітовий потік може містити модуль міжкадрового прогнозування, що включає пристрій за будь-яким із пп. 1 по 12 і модуль прогнозування для визначення блока прогнозування відповідно до частини першого опорного зображення, на яке посилається перший вектор руху і частини другого опорного зображення, на яке посилається другий вектор руху, формувач бітового потоку, який реалізований як частина модуля 103 ентропійного кодування і виконаний з можливістю включати в бітовий потік оцінку першого вектора руху їі оцінку другого вектора руху, і модуль 111 відновлення, виконаний з можливістю відновлювати поточний блок відповідно до блока прогнозування та зберігання відновленого блока в пам'яті.
Обробка декодування з міжкадровим прогнозуванням, описана вище, не обмежена використанням двох опорних зображень. Альтернативно, можна розглянути більше двох опорних зображень і пов'язаних векторів руху. У цьому випадку, модуль вибору опорного зображення вибирає більше двох опорних зображень, з яких одне опорне зображення використовується для уточнення вектора руху. Вибір опорного зображення, яке використовується для уточнення вектора руху, полягає в використанні одного з підходів, описаних в прикладах 1-5, обговорених вище. Решта векторів руху регулюються з використанням оцінки відповідного вектора руху і вектора руху, що виникає в результаті уточнення вектора руху. Іншими словами, даний винахід, як описано вище, може також працювати, якщо виконується мультиреференсне прогнозування. Наприклад, якщо є три бо опорних зображення і три відповідних вектора руху, один з трьох векторів руху може бути визначений шляхом уточнення за допомогою узгодження шаблонів, а два інших вектора будуть обчислюватися. Це забезпечує зниження складності. Альтернативно, два з векторів руху визначаються за допомогою уточнення з узгодженням шаблонів, а один обчислюється, грунтуючись на одному або обох уточнених векторах руху. Як відомо фахівцям в даній ділянці техніки, даний винахід може бути розширено до будь-якої кількості опорних зображень і відповідних векторів руху, які використовуються для побудови засобу прогнозування для поточного блока.
Винахід має ефект, що дозволяє виконувати двонаправлене прогнозування в декодері зі зменшеними навантаженням на обробку та вимогами до пам'яті. Він може бути застосований в будь-якому декодері, може бути включений в пристрій кодування і/або в пристрій декодування, тобто на стороні кодера або на стороні декодера.
Уточнення вектора руху, як описано вище, може бути реалізовано як частина кодування і/або декодування відеосигналу (рухомого зображення). Однак, уточнення вектора руху може також використовуватися для інших цілей при обробці зображень, таких як виявлення руху, аналіз руху і подібних.
Уточнення вектора руху можна реалізувати у вигляді пристрою. Такий пристрій може поєднувати програмне забезпечення і апаратні засоби. Наприклад, уточнення вектора руху може бути виконано за допомогою мікросхеми, такої як процесор загального призначення або цифровий сигнальний процесор (аідйа! відпа! ргосеззог, ОБР), або програмована користувачем вентильна матриця (їеїй ргодгаттанбіе дае агау, ЕРСА), або подібних. Однак, даний винахід не обмежується реалізацією на програмованому апаратному забезпеченні. Він може бути реалізований на інтегральній схемі спеціального застосування (арріїсайоп-5ресіїіс іпієдгаїеа сігсий, АБІС) або шляхом поєднання вищезгаданих апаратних компонентів.
Уточнення вектора руху може також бути реалізовано програмними командами, що зберігаються на машинозчитуваному носії. Програма при виконанні спонукає комп'ютер виконувати етапи отримання оцінок векторів руху, визначення першого опорного зображення і другого опорного зображення на основі оцінок, виконання уточнення вектора руху по першому вектору руху, обчислення другого вектора руху на основі оцінок векторів руху і першого вектора руху після уточнення. Машинозчитуваний носій може бути будь-яким носієм, на якому
Зо зберігається програма, таким як ОМО, СО, накопичувач ОВ (флеш), жорсткий диск, серверне сховище, доступне через мережу, і подібне.
Кодер і/або декодер можуть бути реалізовані в різних пристроях, включаючи телевізор, телевізійну приставку, персональний комп'ютер ПК, планшетний комп'ютер, смартфон, тощо.
Він може бути програмним забезпеченням, додатком, що реалізує етапи способу.

Claims (15)

ФОРМУЛА ВИНАХОДУ
1. Пристрій для визначення першого вектора руху (ММО"), пов'язаного з першим опорним зображенням відео, і другого вектора руху (ММ1"), пов'язаного з другим опорним зображенням відео, перший і другий вектори руху повинні бути застосовані в міжкадровому прогнозуванні блока зображення відео в поточному зображенні, причому пристрій містить: модуль (530) уточнення вектора руху, виконаний з можливістю отримувати оцінку (ММО) першого вектора руху і визначати перший вектор руху (ММО") шляхом виконання пошуку в межах пошукового простору (310), визначеного на основі оцінки (ММО) першого вектора руху, і модуль (550) обчислення вектора руху, виконаний з можливістю отримувати оцінку (ММ) другого вектора руху і обчислювати, після виконання пошуку для визначення першого вектора руху (ММО"), другий вектор руху (ММ1") на основі оцінки (ММ1) другого вектора руху і на основі різниці між першим вектором руху (ММО") і оцінкою (ММО) першого вектора руху.
2. Пристрій за п. 1, який відрізняється тим, що модуль (550, 560) обчислення вектора руху виконаний з можливістю обчислювати другий вектор руху (ММ1") шляхом додавання до оцінки (ММ) другого вектора руху різниці між першим вектором руху (ММО") і оцінкою (ММО) першого вектора руху або функцією різниці між першим вектором руху (ММО") і оцінкою (ММО) першого вектора руху.
3. Пристрій за п. 2, який відрізняється тим, що функція включає масштабування за допомогою коефіцієнта масштабування і/або обрізання.
4. Пристрій за п. 3, який відрізняється тим, що значення коефіцієнта масштабування залежить від співвідношення між відповідними відстанями від першого опорного зображення і другого опорного зображення до поточного зображення.
5. Пристрій за будь-яким із пп. 1-4, який відрізняється тим, що додатково містить модуль (510) 60 вибору опорного зображення, виконаний з можливістю отримувати два опорних зображення і вибирати перше опорне зображення серед двох опорних зображень, і вибирати друге опорне зображення серед двох опорних зображень.
6. Пристрій за п. 5, який відрізняється тим, що модуль (510) вибору опорного зображення виконаний з можливістю вибирати або перше зображення, або друге зображення, грунтуючись на тому, чи посилається на відповідне перше або друге зображення в бітовому потоці, який також включає блок відео із кодованим зображенням, індекс, пов'язаний з попередньо заданим переліком опорних зображень серед щонайменше двох переліків опорних зображень, де перелік опорних зображень пов'язує індекс з позицією опорного зображення відносно поточного зображення.
7. Пристрій за п. 6, який відрізняється тим, що модуль (510) вибору опорного зображення виконаний таким чином, щоб, якщо на два опорних зображення в бітовому потоці посилається індекс в одному і тому ж попередньо заданому переліку опорних зображень, вибирати перше опорне зображення як зображення з найвищою позицією в зазначеному переліку опорних зображень.
8. Пристрій за п. 5, який відрізняється тим, що модуль (510) вибору опорного зображення виконаний з можливістю вибирати як перше опорне зображення те зображення, яке має найнижчий часовий рівень серед двох зображень.
9. Пристрій за п. 5, який відрізняється тим, що модуль (510) вибору опорного зображення виконаний з можливістю вибирати як перше опорне зображення те зображення, яке має найнижче базове значення квантування.
10. Пристрій за п. 5, який відрізняється тим, що модуль (510) вибору опорного зображення виконаний з можливістю вибирати як перше опорне зображення те зображення, яке має найнижчу відстань до поточного зображення.
11. Пристрій за п. 5, який відрізняється тим, що модуль (510) вибору опорного зображення виконаний з можливістю вибирати перше опорне зображення і друге опорне зображення таким чином, що оцінка першого вектора руху є меншою за модулем, ніж оцінка другого вектора руху.
12. Пристрій за будь-яким із пп. 1-11, який додатково містить алгоритм оцінки (820) вектора руху, виконаний з можливістю визначати оцінку першого вектора руху і оцінку другого вектора руху шляхом вибирання їх з набору кандидатів вектора руху на основі подібності шаблона до частини зображення, на яку посилається відповідний кандидат вектора руху.
13. Відеодекодер (200) для декодування множини зображень з бітового потоку, який містить: модуль (210) міжкадрового прогнозування, що включає пристрій за будь-яким із пп. 1-12 і модуль прогнозування, виконаний з можливістю визначати блок прогнозування відповідно до частини першого опорного зображення, на яку посилається перший вектор руху, і частини другого опорного зображення, на яку посилається другий вектор руху, синтаксичний аналізатор (203) бітового потоку, виконаний з можливістю отримувати від бітового потоку оцінку першого вектора руху і оцінку другого вектора руху, і модуль (211) відновлення, виконаний з можливістю відновлювати поточний блок відповідно до блока прогнозування.
14. Відеодекодер (100) для кодування множини зображень в бітовий потік, який містить: модуль (110) міжкадрового прогнозування, що включає пристрій за будь-яким із пп. 1-12 і модуль прогнозування, виконаний з можливістю визначати блок прогнозування відповідно до частини першого опорного зображення, на яку посилається перший вектор руху, і частини другого опорного зображення, на яку посилається другий вектор руху, формувач (103) бітового потоку, виконаний з можливістю вміщувати в бітовий потік оцінку першого вектора руху і оцінку другого вектора руху, модуль відновлення (111), виконаний з можливістю відновлювати поточний блок відповідно до блока прогнозування і зберігати відновлений блок в пам'яті.
15. Спосіб (700) визначення першого вектора руху (ММО"), пов'язаного з першим опорним зображенням відео, і другого вектора руху (ММ1"), пов'язаного з другим опорним зображенням відео, перший і другий вектори руху повинні бути застосовані в міжкадровому прогнозуванні блока зображення в поточному зображенні відео, причому спосіб включає: отримання (701) оцінки (ММО) першого вектора руху, визначення (703) першого вектора руху (ММО") шляхом виконання пошуку всередині пошукового простору (310), заданого на основі оцінки (ММО) першого вектора руху, отримання (705) оцінки (ММІ1) другого вектора руху, і обчислення (707), після виконання пошуку для визначення першого вектора руху (ММО"), другого вектора руху (ММ1") на основі оцінки (ММ) другого вектора руху і на основі різниці між першим вектором руху (ММО") і оцінкою (ММО) першого вектора руху.
МВ п ізо еа 105 її: То її ца (АХ У : й й ї Зливу Ні я дик дів 2 7 дарк Ст Кеди М ї абквівю ії ї й оош-- ПК ОР овббауть 001 Мід жь о: Її : і : ст іперегворе -квантуваанятт : З Емшь ря З : і : ро рлолуть ВН вва рт : : хі ті : : г -ї : ірежиму пуд і Блях ХеивнтевлнЕ : і кові ЛЬ ї іпропногвжння залюхлюні : 1 скол зоеФшннІк І їі 1 1 пропне- : ї те, Її ї 1 ї їз керіног» ї х х ї фобії І ВЕВКЕ : : Ї ї ї ення ї ї окр 3 : і і ОН : ! і Ода Роден ! не ЦЯ її іКвде вн І КВІТ УВЯН: : ї Її Ж Н х : жк : ї т ой ! Біднцаления Шичнннунннинй Ї 1оОВ бод | шт і ї її М Ятк : : ОМ ї 0 рДекодовяних ! : ї ма о Вмпль ЇХ. зживт сему Кк : ї : Ті Гийлють оф ЯКлЬьо Бібдеь 00 ЛОВ і ї ї В інтен фев вано і, суток еорсіноге, оавовеею | : 3 о етерованоїї ве Ї м нреретвома- із ававтуван і ї бок я 7 жна Б ОО | веж 1 Кадован: їі тЕШОВЛЕННК ще и зееюдтт Моєї ВНИЗ Кн КО ї гі 2 поко НЕ Ж ; : . ВХ в ах пе зла зе хо : я ; ще : Н Є Є г ї Коловаі Мідь: іоМодрь оКоБиМ: декодув сті І ЖВМТУВИМ. : пен ежЕНутТВН у. : Ї : : прог. В. : і : І Отихрк.. го : ! хз : І яаж Мод: п Ї : Хм осені. 1 Швжо ЗНИЖЬ; К : « і КЕ по ж НВЮКЮ о Барт : еп приво! І Гор едуюв: оо дв : : Не інн : і звароп Ма Є г. : понині ї іт ск: Р Мбодушьо! т Її пверетвор: РОГ одорнога : От джен: ОО БНЯ БЖ І Чялюе ! 11 : І сн : Робннеднння пусснозуванния: ОМОВЕЖ : і : я . Я те - І ! : ї Меолуль я ОО: : Біг ВИТ УДНВТЯ род : Ї : фл оон ї : щі пальт ування Х Н а : вижо : от ї а т В т13
Ззгальна пошукова тулЕнкя - опорне мобоппження у перева : їй Її Е і ! зва)осоов,євпа)ооО ! ооо о. / овоб0оо00:о ! свт, їн Ж ово єв о! о 7 тот ; є І я . бе і т ооо о. о / ж т ще ї де ї ' о-і ше я ово жов ті, Том Е Ж і З Те ї в Ї св) о ІщЕу о- і я Її» ра
Б. ддодееднкоавкоюолюоянкожккоанотколнколккочнкоджояюю люк люкокк А яра с ше юку К
Фіг. Зжезльна пошекова ділянки апорне зобуаження у переліку ІЙ ї їх" схжостж жже ж ЖЖ КК УЖ ХЖА КА А. Сх Сл Ж св жо кА ял. ту т : 15 ; зво,ов)овмаосооОооОо Ї де я: і ооеоваоо в вс І шння 118 я : дет М ре : : , . з : - во у, і с оовоовоого ОН ; пд . лі ї о ; о «оо -о о ! КІ й т І і ті и ооо ово! я . т 7 СИ з з : і Но ж ово жое ох кни м ; й м и ше с тт тв їх хх теку ЕТО вера нні
Фіг.4 я З Щ шк «04 4 «зв о жі: я і і ва вия х г Ї 2 М і? зай с Я щ : і ве й ЗЕ : і і й г М Е 7 Процес ДМГУ В, і : Е К мент: ння |, му: | Застосуван. Яків я і 7 піоееесегесссссіюв зтусуєттевовю Детееенннетннннннкй ММА" ЗКУ я НК ян 7 з : щі с - Іжа вед 1 ї і на мл; пись Ро с : 1 і ЗИ. ТЕошес вибо , шк ! ПТ ю магми - т іВХ ЗХастесуван. фенЕНні БЕ ї МТУ - т. ЕЕ: ? пенні УВК ВО ВЕЕЕІ |уееелтлтннннсня ВАК і фі : вима, щЕмї овайлВ К водк ме чую а / і й Кі «й і Н о ЗБ
Фіг.5 а . Б Ей и г Е. і З й а » й . в. ій ій р а « а р й є А Ей ї К а а і. ісррен (р хвестнкутнне
Фіг.б бо М 7 отримання співи першого вектара вуху Я а і і визначення першого вектора руху шляхом зпіненення повіку у "- ли іпошувовій ділян. визначеній на основі першого вектора руху ш- : 7 5 отримання співи другого вектора пуху Ї о Кк яке тання " РТ ж обчислення другого вектора руху на основі зцінкиЕ другого вектора Гу рукуі на осков першого вектора руку Р
Фіг.7 Засіб уточнення вектора руку ЗО я Вдодтль ПИ в шрогнозування о зе : Іосссьсою ЗОриТМ ОЦІНКИ вектора рух : В ра руху Пристрв для визначення векторів руху 510 Модуль міжкалрового прогнозування 500
Фіг.8
UAA201912286A 2017-06-30 2018-03-29 Уточнення вектора руху для мультиреференсного прогнозування UA126919C2 (uk)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/EP2017/066342 WO2019001741A1 (en) 2017-06-30 2017-06-30 MOTION VECTOR REFINEMENT FOR MULTI-REFERENCE PREDICTION
PCT/EP2018/058203 WO2019001786A1 (en) 2017-06-30 2018-03-29 MOTION VECTOR REFINEMENT FOR MULTI-REFERENCE PREDICTION

Publications (1)

Publication Number Publication Date
UA126919C2 true UA126919C2 (uk) 2023-02-22

Family

ID=59258246

Family Applications (1)

Application Number Title Priority Date Filing Date
UAA201912286A UA126919C2 (uk) 2017-06-30 2018-03-29 Уточнення вектора руху для мультиреференсного прогнозування

Country Status (19)

Country Link
US (4) US11463726B2 (uk)
EP (3) EP3635956A1 (uk)
JP (3) JP6977068B2 (uk)
KR (4) KR102344430B1 (uk)
CN (3) CN110809887B (uk)
AU (1) AU2018294206B2 (uk)
BR (1) BR112019027261A2 (uk)
CA (1) CA3068332C (uk)
CL (1) CL2019003880A1 (uk)
ES (1) ES2963978T3 (uk)
FI (1) FI3632104T3 (uk)
HU (1) HUE064054T2 (uk)
IL (1) IL271762B2 (uk)
MX (1) MX2019015871A (uk)
PL (1) PL3632104T3 (uk)
PT (1) PT3632104T (uk)
SG (1) SG11201911978TA (uk)
UA (1) UA126919C2 (uk)
WO (3) WO2019001741A1 (uk)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019001741A1 (en) * 2017-06-30 2019-01-03 Huawei Technologies Co., Ltd. MOTION VECTOR REFINEMENT FOR MULTI-REFERENCE PREDICTION
CN117615154A (zh) * 2017-08-29 2024-02-27 株式会社Kt 视频解码和编码方法及用于存储压缩视频数据的装置
CN109996081B (zh) * 2017-12-31 2023-09-12 华为技术有限公司 图像预测方法、装置以及编解码器
WO2019191717A1 (en) 2018-03-30 2019-10-03 Hulu, LLC Template refined bi-prediction for video coding
KR20230161539A (ko) * 2018-06-07 2023-11-27 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 부분 코스트 계산
TWI719519B (zh) 2018-07-02 2021-02-21 大陸商北京字節跳動網絡技術有限公司 對於dmvr的塊尺寸限制
CN111083489B (zh) 2018-10-22 2024-05-14 北京字节跳动网络技术有限公司 多次迭代运动矢量细化
WO2020084476A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Sub-block based prediction
CN111436228B (zh) 2018-11-12 2024-06-21 北京字节跳动网络技术有限公司 组合帧间-帧内预测的简化
CN113170097B (zh) * 2018-11-20 2024-04-09 北京字节跳动网络技术有限公司 视频编解码模式的编解码和解码
WO2020103852A1 (en) 2018-11-20 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Difference calculation based on patial position
US11095900B2 (en) * 2018-12-19 2021-08-17 Sony Group Corporation Point cloud coding structure
KR20210094664A (ko) * 2019-01-02 2021-07-29 텔레폰악티에볼라겟엘엠에릭슨(펍) 비디오 인코딩/디코딩 시스템의 사이드 모션 정교화
DK3912352T3 (da) * 2019-02-22 2023-11-20 Huawei Tech Co Ltd Tidlig afslutning til forfinelse af optisk strøm
WO2020177755A1 (en) 2019-03-06 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Usage of converted uni-prediction candidate
EP3912354A4 (en) * 2019-03-08 2022-03-16 Huawei Technologies Co., Ltd. SEARCH REGION FOR MOTION VECTOR REFINEMENT
US11206425B2 (en) 2019-03-11 2021-12-21 Alibaba Group Holding Limited Inter prediction methods for coding video data
CN112468813A (zh) 2019-03-11 2021-03-09 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
EP3939310A4 (en) * 2019-03-11 2022-07-27 Telefonaktiebolaget LM Ericsson (publ) MOTION REFINING AND WEIGHTED PREDICTION
KR20230169434A (ko) 2019-04-02 2023-12-15 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 디코더 측 움직임 벡터 유도
US11736720B2 (en) * 2019-09-03 2023-08-22 Tencent America LLC Motion vector refinement methods for video encoding
EP4118835A4 (en) * 2020-03-31 2023-05-10 Beijing Dajia Internet Information Technology Co., Ltd. HIGH LEVEL SYNTAX METHODS AND DEVICES IN VIDEO CODING
CN115715467A (zh) * 2020-04-03 2023-02-24 北京达佳互联信息技术有限公司 用于视频编解码中的高级语法的方法和设备
US11671616B2 (en) 2021-03-12 2023-06-06 Lemon Inc. Motion candidate derivation
US20220295090A1 (en) * 2021-03-12 2022-09-15 Lemon Inc. Motion candidate derivation
US11936899B2 (en) 2021-03-12 2024-03-19 Lemon Inc. Methods and systems for motion candidate derivation
US20240196002A1 (en) * 2021-04-21 2024-06-13 Beijing Bytedance Network Technology Co., Ltd. Method, device, and medium for video processing
US11895302B2 (en) * 2021-06-29 2024-02-06 Qualcomm Incorporated Adaptive bilateral matching for decoder side motion vector refinement
US20230079743A1 (en) * 2021-09-16 2023-03-16 Qualcomm Incorporated Multiple inter predictors with decoder side motion vector derivation for video coding
US20230093043A1 (en) * 2021-09-22 2023-03-23 Tencent America LLC Method and apparatus for adaptive reordering for reference frames
CN114161197B (zh) * 2021-12-22 2023-09-15 中国科学技术大学 一种偏心工件自动校正方法、***、设备及存储介质
WO2023136655A1 (ko) * 2022-01-13 2023-07-20 엘지전자 주식회사 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체
WO2024076220A1 (ko) * 2022-10-07 2024-04-11 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2024117694A1 (ko) * 2022-12-01 2024-06-06 현대자동차주식회사 템플릿 매칭 기반 인터 예측을 이용하는 비디오 코딩을 위한 방법 및 장치

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1489848A4 (en) * 2002-03-14 2006-05-03 Matsushita Electric Ind Co Ltd MOTION VECTOR DETECTION METHOD
KR101377660B1 (ko) * 2008-09-30 2014-03-26 에스케이텔레콤 주식회사 복수 개의 움직임 벡터 추정을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR20110022133A (ko) * 2009-08-27 2011-03-07 삼성전자주식회사 영상의 움직임 추정방법 및 영상처리장치
JP5248632B2 (ja) * 2010-01-14 2013-07-31 インテル コーポレイション 動き推定のための技術
US20120281759A1 (en) * 2010-03-31 2012-11-08 Lidong Xu Power efficient motion estimation techniques for video encoding
US9398308B2 (en) * 2010-07-28 2016-07-19 Qualcomm Incorporated Coding motion prediction direction in video coding
JP5786498B2 (ja) * 2011-06-30 2015-09-30 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム
WO2014083491A2 (en) * 2012-11-27 2014-06-05 Squid Design Systems Pvt Ltd System and method of mapping multiple reference frame motion estimation on multi-core dsp architecture
JP5983430B2 (ja) * 2013-01-25 2016-08-31 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像復号装置ならびに動画像復号方法
JP6271888B2 (ja) * 2013-07-12 2018-01-31 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US10097851B2 (en) * 2014-03-10 2018-10-09 Euclid Discoveries, Llc Perceptual optimization for model-based video encoding
US20170289566A1 (en) * 2014-09-26 2017-10-05 Vid Scale, Inc. Intra block copy coding with temporal block vector prediction
US11330284B2 (en) 2015-03-27 2022-05-10 Qualcomm Incorporated Deriving motion information for sub-blocks in video coding
WO2017036414A1 (en) * 2015-09-02 2017-03-09 Mediatek Inc. Method and apparatus of decoder side motion derivation for video coding
EP3611925A4 (en) * 2017-04-13 2020-03-25 Panasonic Intellectual Property Corporation of America ENCODING DEVICE, DECODING DEVICE, ENCODING METHOD, AND DECODING METHOD
US20190007699A1 (en) * 2017-06-28 2019-01-03 Futurewei Technologies, Inc. Decoder Side Motion Vector Derivation in Video Coding
WO2019001741A1 (en) 2017-06-30 2019-01-03 Huawei Technologies Co., Ltd. MOTION VECTOR REFINEMENT FOR MULTI-REFERENCE PREDICTION

Also Published As

Publication number Publication date
WO2019001785A1 (en) 2019-01-03
US11463726B2 (en) 2022-10-04
KR102344430B1 (ko) 2021-12-27
KR20220000917A (ko) 2022-01-04
SG11201911978TA (en) 2020-01-30
WO2019001741A1 (en) 2019-01-03
JP2023174703A (ja) 2023-12-08
BR112019027261A2 (pt) 2020-07-14
PT3632104T (pt) 2023-12-07
KR20200015734A (ko) 2020-02-12
WO2019001786A1 (en) 2019-01-03
MX2019015871A (es) 2020-08-06
CN116233463A (zh) 2023-06-06
AU2018294206A1 (en) 2020-01-23
US10856006B2 (en) 2020-12-01
EP4319154A2 (en) 2024-02-07
AU2018294206A8 (en) 2020-01-30
CN116248898A (zh) 2023-06-09
PL3632104T3 (pl) 2024-02-12
IL271762A (en) 2020-02-27
EP4319154A3 (en) 2024-02-28
CA3068332C (en) 2023-10-03
CA3068332A1 (en) 2019-01-03
FI3632104T3 (fi) 2023-11-09
US20220046274A1 (en) 2022-02-10
ES2963978T3 (es) 2024-04-03
US20230353778A1 (en) 2023-11-02
US20200137414A1 (en) 2020-04-30
KR20230125348A (ko) 2023-08-29
NZ780051A (en) 2023-09-29
CN110809887B (zh) 2022-12-27
KR102570488B1 (ko) 2023-08-23
KR102450443B1 (ko) 2022-09-30
IL271762B2 (en) 2023-11-01
IL271762B1 (en) 2023-07-01
EP3635956A1 (en) 2020-04-15
US11683520B2 (en) 2023-06-20
AU2018294206B2 (en) 2022-12-01
EP3632104A1 (en) 2020-04-08
CN110809887A (zh) 2020-02-18
JP2020526109A (ja) 2020-08-27
JP7358436B2 (ja) 2023-10-10
JP6977068B2 (ja) 2021-12-08
EP3632104B1 (en) 2023-10-04
HUE064054T2 (hu) 2024-02-28
NZ760521A (en) 2021-09-24
US20200137416A1 (en) 2020-04-30
CL2019003880A1 (es) 2020-10-02
JP2022022228A (ja) 2022-02-03
KR20220136509A (ko) 2022-10-07

Similar Documents

Publication Publication Date Title
UA126919C2 (uk) Уточнення вектора руху для мультиреференсного прогнозування
JP7525178B2 (ja) 適応的動きベクトル解像度を用いるビデオ信号処理方法及び装置
RU2683591C1 (ru) Способ и устройство для компенсации движения с предсказанием
KR102038243B1 (ko) 인코딩 방법 및 장치, 디코딩 방법 및 장치, 및 컴퓨터 판독가능 저장 매체
US20200404326A1 (en) Method and device for intra-prediction
JP2011029863A (ja) 復号化処理方法
JP2018182435A (ja) 動きベクトル予測装置及びコンピュータプログラム
KR20170095671A (ko) 영상 처리 방법, 프레임 율 변환 방법 및 그 장치
NZ760521B2 (en) Motion vector refinement for multi-reference prediction
NZ780051B2 (en) Motion vector refinement for multi-reference prediction