Багатокаскадний iir-фільтр і розпаралелена фільтрація даних таким
Формула / Реферат
1. Багатокаскадний фільтр, що містить: буферну пам'ять;
щонайменше два каскади біквадратних фільтрів, що містять перший каскад біквадратного фільтра та наступний каскад біквадратного фільтра; і
контролер, пов'язаний з каскадами біквадратних фільтрів і сконфігурований для затвердження єдиного потоку команд як у перший каскад біквадратного фільтра, так і в наступний каскад біквадратного фільтра, при цьому зазначений перший каскад біквадратного фільтра та зазначений наступний каскад біквадратного фільтра діють незалежно та паралельно у відповідь на потік команд,
при цьому перший каскад біквадратного фільтра пов'язаний з пам'яттю та сконфігурований для виконання біквадратної фільтрації на блоці з N вхідних дискретних значень у відповідь на потік команд з метою генерування проміжних значень і для затвердження проміжних значень у пам'яті, при цьому проміжні значення включають піддану фільтрації версію кожного з щонайменше підмножини вхідних дискретних значень, і
при цьому наступний каскад біквадратного фільтра пов'язаний з пам'яттю та сконфігурований для виконання біквадратної фільтрації на буферизованих значеннях, що витягаються з пам'яті у відповідь на потік команд, з метою генерування блока вихідних значень, при цьому вихідні значення містять вихідне значення, що відповідає кожному з вхідних дискретних значень у блоці з N вхідних дискретних значень, і буферизовані значення містять щонайменше деякі з проміжних значень, згенерованих у першому каскаді біквадратного фільтра у відповідь на блок з N вхідних дискретних значень.
2. Багатокаскадний фільтр за п. 1, який відрізняється тим, що зазначений багатокаскадний фільтр сконфігуровано для виконання багатокаскадної фільтрації на блоці з N вхідних дискретних значень у єдиному циклі оброблення даних з повторенням за індексом дискретних значень, але без повторення за індексом каскадів біквадратних фільтрів.
3. Багатокаскадний фільтр за п. 1, який відрізняється тим, що багатокаскадний фільтр містить Μ каскадів біквадратних фільтрів, при цьому наступний каскад біквадратного фільтра сконфігуровано для генерування вихідного значення, що відповідає "j"-му з вхідних дискретних значень, у відповідь на підмножину буферизованих значень, витягнутих з пам'яті, де j - індекс в інтервалі від М-1 до Ν-1, при цьому зазначена підмножина містить піддану фільтрації версію "j"-го з вхідних дискретних значень, піддану фільтрації версію "j-1"-го з вхідних дискретних значень і піддану фільтрації версію "j-2"-го з вхідних дискретних значень.
4. Багатокаскадний фільтр за п. 1, який відрізняється тим, що багатокаскадний фільтр містить Μ каскадів біквадратних фільтрів, при цьому наступний каскад біквадратного фільтра сконфігуровано для генерування вихідного значення, що відповідає "j"-му з вхідних дискретних значень, у відповідь на підмножину буферизованих значень, витягнутих з пам'яті, де j - індекс в інтервалі від М-1 до Ν-1, при цьому зазначена підмножина містить піддану фільтрації версію "j"-го з вхідних дискретних значень, згенеровану першим каскадом біквадратного фільтра, і значення, згенероване наступним каскадом біквадратного фільтра у відповідь на "j-1"-е з вхідних дискретних значень, а також значення, згенероване наступним каскадом біквадратного фільтра у відповідь на "j-2"-е з вхідних дискретних значень.
5. Багатокаскадний фільтр за п. 1, який відрізняється тим, що наступний каскад біквадратного фільтра сконфігуровано для генерування вихідного значення, що відповідає кожному з вхідних дискретних значень у відповідь на іншу підмножину буферизованих значень, витягнутих з пам'яті, при цьому кожна зазначена підмножина містить щонайменше три з проміжних значень, згенерованих у першому каскаді біквадратного фільтра та витягнутих з пам'яті після перебування в зазначеній пам'яті протягом різного часу очікування.
6. Спосіб виконання багатокаскадної фільтрації на блоці з N вхідних дискретних значень, при цьому зазначений спосіб включає етапи:
(a) виконання першої операції біквадратної фільтрації на блоці з N вхідних дискретних значень з метою генерування проміжних значень і затвердження проміжних значень у буферній пам'яті, при цьому проміжні значення містять піддану фільтрації версію кожного з щонайменше підмножини вхідних дискретних значень; і
(b) виконання другої операції біквадратної фільтрації на буферизованих значеннях, витягнутих з пам'яті, з метою генерування блока вихідних значень, при цьому вихідні значення містять вихідне значення, що відповідає кожному з вхідних дискретних значень у блоці з N вхідних дискретних значень, іншу підмножину буферизованих значень витягають і фільтрують з метою генерування вихідного значення, що відповідає кожному з вхідних дискретних значень у блоці, і кожна зазначена підмножина буферизованих значень містить щонайменше два з проміжних значень, згенерованих у ході виконання етапу (а), які витягають з пам'яті після перебування в зазначеній пам'яті протягом різного часу очікування,
при цьому етапи (а) і (b) виконують у відповідь на єдиний потік команд так, що етапи (а) і (b) виконують незалежно та паралельно у відповідь на єдиний потік команд.
7. Спосіб за п. 6, який відрізняється тим, що багатокаскадну фільтрацію блока вхідних дискретних значень виконують у єдиному циклі з повторенням за індексом дискретних значень, але без повторення за індексом каскадів біквадратних фільтрів.
8. Спосіб за п. 6, який відрізняється тим, що багатокаскадну фільтрацію виконують у багатокаскадному фільтрі, що містить Μ каскадів, буферизовані значення, що витягують на етапі (b) для генерування вихідного значення, що відповідає "j"-му з вхідних дискретних значень, де "j" - індекс в інтервалі від М-1 до Ν-1, містять піддану фільтрації версію "j"-го з вхідних дискретних значень, згенеровану на етапі (а), піддану фільтрації версію "j-1"-го з вхідних дискретних значень, згенеровану на етапі (а), і піддану фільтрації версію "j-2"-го з вхідних дискретних значень, згенеровану на етапі (а).
9. Аудіокодер, сконфігурований для генерування кодованих аудіоданих у відповідь на вхідні аудіодані, при цьому зазначений кодер містить щонайменше один багатокаскадний фільтр, підключений і сконфігурований для фільтрації аудіоданих, при цьому багатокаскадний фільтр містить:
буферну пам'ять;
щонайменше два каскади біквадратних фільтрів, що містять перший каскад біквадратного фільтра й наступний каскад біквадратного фільтра; і
контролер, пов'язаний з каскадами біквадратних фільтрів і сконфігурований для затвердження єдиного потоку команд як у перший каскад біквадратного фільтра, так і в наступний каскад біквадратного фільтра, при цьому зазначений перший каскад біквадратного фільтра й зазначений наступний каскад біквадратного фільтра діють незалежно та паралельно у відповідь на потік команд,
при цьому перший каскад біквадратного фільтра пов'язаний з пам'яттю та сконфігурований для виконання біквадратної фільтрації на блоці з N вхідних дискретних значень у відповідь на потік команд з метою генерування проміжних значень і для затвердження проміжних значень у пам'яті, при цьому проміжні значення містять піддану фільтрації версію кожного з щонайменше підмножини вхідних дискретних значень, і
при цьому наступний каскад біквадратного фільтра пов'язаний з пам'яттю та сконфігурований для виконання біквадратної фільтрації на буферизованих значеннях, що витягаються з пам'яті у відповідь на потік команд, з метою генерування блока вихідних значень, при цьому вихідні значення містять вихідне значення, що відповідає кожному з вхідних дискретних значень у блоці з N вхідних дискретних значень, і буферизовані значення містять щонайменше деякі з проміжних значень, згенерованих у першому каскаді біквадратного фільтра у відповідь на блок з N вхідних дискретних значень.
10. Кодер за п. 9, який відрізняється тим, що багатокаскадний фільтр сконфігурований для виконання багатокаскадної фільтрації на блоці з N вхідних дискретних значень у єдиному циклі оброблення даних з повторенням за індексом дискретних значень, але без повторення за індексом каскадів біквадратних фільтрів.
11. Кодер за п. 9, який відрізняється тим, що багатокаскадний фільтр містить Μ каскадів біквадратних фільтрів, при цьому наступний каскад біквадратного фільтра сконфігурований для генерування вихідного значення, що відповідає "j"-му з вхідних дискретних значень, у відповідь на підмножину буферизованих значень, витягнутих з пам'яті, де j - індекс в інтервалі від М-1 до Ν-1, при цьому зазначена підмножина містить піддану фільтрації версію "j"-го з вхідних дискретних значень, піддану фільтрації версію "j-1"-го з вхідних дискретних значень і піддану фільтрації версію "j-2"-го з вхідних дискретних значень.
12. Кодер за п. 9, який відрізняється тим, що багатокаскадний фільтр містить Μ каскадів біквадратних фільтрів, при цьому наступний каскад біквадратного фільтра сконфігурований для генерування вихідного значення, що відповідає "j"-му з вхідних дискретних значень, у відповідь на підмножину буферизованих значень, витягнутих з пам'яті, де j - індекс в інтервалі від М-1 до Ν-1, при цьому зазначена підмножина містить піддану фільтрації версію "j"-го з вхідних дискретних значень, згенеровану першим каскадом біквадратного фільтра, і значення, згенероване наступним каскадом біквадратного фільтра у відповідь на "j-1"-е з вхідних дискретних значень, а також значення, згенероване наступним каскадом біквадратного фільтра у відповідь на "j-2"-е з вхідних дискретних значень.
13. Кодер за п. 9, який відрізняється тим, що наступний каскад біквадратного фільтра сконфігурований для генерування вихідного значення, що відповідає кожному з вхідних дискретних значень у відповідь на іншу підмножину буферизованих значень, витягнутих з пам'яті; при цьому кожна зазначена підмножина містить щонайменше три із проміжних значень, згенерованих у першому каскаді біквадратного фільтра та витягнутих з пам'яті після перебування в зазначеній пам'яті протягом різного часу очікування.
14. Кодер за п. 9, який відрізняється тим, що зазначений кодер являє собою процесор, що містить щонайменше один блок "один потік команд - багато потоків даних", запрограмований для реалізації багатокаскадного фільтра.
15. Кодер за п. 9, який відрізняється тим, що зазначений кодер являє собою процесор, що містить кілька арифметичних логічних блоків, запрограмованих для реалізації каскадів біквадратних фільтрів.
16. Кодер за п. 9, який відрізняється тим, що зазначений кодер являє собою процесор, що містить кілька блоків арифметичного оброблення, запрограмованих для реалізації каскадів біквадратних фільтрів.
17. Спосіб кодування аудіоданих для генерування кодованих аудіоданих, що включає виконання багатокаскадної фільтрації на блоці з N дискретних значень аудіоданих, при цьому багатокаскадна фільтрація включає етапи:
(a) виконання першої операції біквадратної фільтрації на блоці з N дискретних значень з метою генерування проміжних значень і твердження цих проміжних значень у буферній пам'яті, при цьому проміжні значення містять піддану фільтрації версію кожного з щонайменше підмножини N дискретних значень; і
(b) виконання другої операції біквадратної фільтрації на буферизованих значеннях, витягнутих з пам'яті, з метою генерування блока вихідних значень, при цьому вихідні значення містять вихідне значення, що відповідає кожному з вхідних дискретних значень у блоці з N дискретних значень, іншу підмножину буферизованих значень витягають і фільтрують з метою генерування вихідного значення, що відповідає кожному з дискретних значень у блоці, і кожна зазначена підмножина буферизованих значень містить щонайменше два з проміжних значень, згенерованих у ході виконання етапу (а), які витягають з пам'яті після перебування в зазначеній пам'яті протягом різного часу очікування,
при цьому етапи (а) і (b) виконують у відповідь на єдиний потік команд так, що етапи (а) і (b) виконують незалежно та паралельно у відповідь на цей єдиний потік команд.
18. Спосіб за п. 17, який відрізняється тим, що багатокаскадну фільтрацію блока дискретних значень виконують у єдиному циклі з повторенням за індексом дискретних значень, але без повторення за індексом каскадів біквадратних фільтрів.
19. Спосіб за п. 17, який відрізняється тим, що багатокаскадна фільтрація виконується в багатокаскадному фільтрі, що містить Μ каскадів, при цьому буферизовані значення, що витягуються на етапі (b) для генерування вихідного значення, що відповідає "j"-му з дискретних значень, де j - індекс в інтервалі від М-1 до Ν-1, містять піддану фільтрації версію "j"-го з дискретних значень, згенеровану на етапі (а), піддану фільтрації версію "j-1"-го з дискретних значень, згенеровану на етапі (а), і піддану фільтрації версію "j-2"-го з дискретних значень, згенеровану на етапі (а).
20. Аудіодекодер, сконфігурований для генерування декодованих аудіоданих у відповідь на кодовані аудіодані, при цьому зазначений декодер містить щонайменше один багатокаскадний фільтр, підключений і сконфігурований для фільтрації кодованих аудіоданих, при цьому багатокаскадний фільтр містить:
буферну пам'ять;
щонайменше два каскади біквадратних фільтрів, що містять перший каскад біквадратного фільтра та наступний каскад біквадратного фільтра; і
контролер, пов'язаний з каскадами біквадратних фільтрів і сконфігурований для затвердження єдиного потоку команд як у перший каскад біквадратного фільтра, так і в наступний каскад біквадратного фільтра, при цьому зазначений перший каскад біквадратного фільтра та зазначений наступний каскад біквадратного фільтра діють незалежно та паралельно у відповідь на потік команд,
при цьому перший каскад біквадратного фільтра пов'язаний з пам'яттю та сконфігурований для виконання біквадратної фільтрації на блоці з N вхідних дискретних значень у відповідь на потік команд з метою генерування проміжних значень і для затвердження проміжних значень у пам'яті, при цьому проміжні значення містять піддану фільтрації версію кожного з щонайменше підмножини вхідних дискретних значень, і
при цьому наступний каскад біквадратного фільтра пов'язаний з пам'яттю та сконфігурований для виконання біквадратної фільтрації на буферизованих значеннях, що витягаються з пам'яті у відповідь на потік команд, з метою генерування блока вихідних значень, при цьому вихідні значення містять вихідне значення, що відповідає кожному з вхідних дискретних значень у блоці з N вхідних дискретних значень, і буферизовані значення містять щонайменше деякі з проміжних значень, згенерованих у першому каскаді біквадратного фільтра у відповідь на блок з N вхідних дискретних значень.
21. Декодер за п. 20, який відрізняється тим, що багатокаскадний фільтр сконфігурований для виконання багатокаскадної фільтрації на блоці з N вхідних дискретних значень у єдиному циклі оброблення даних з повторенням за індексом дискретних значень, але без повторення за індексом каскадів біквадратних фільтрів.
22. Декодер за п. 20, який відрізняється тим, що багатокаскадний фільтр містить Μ каскадів біквадратних фільтрів, при цьому наступний каскад біквадратного фільтра сконфігурований для генерування вихідного значення, що відповідає "j"-му з вхідних дискретних значень, у відповідь на підмножину буферизованих значень, витягнутих з пам'яті, де j - індекс в інтервалі від М-1 до Ν-1, при цьому зазначена підмножина містить піддану фільтрації версію "j"-го з вхідних дискретних значень, піддану фільтрації версію "j-1"-го з вхідних дискретних значень і піддану фільтрації версію "j-2"-го з вхідних дискретних значень.
23. Декодер за п. 20, який відрізняється тим, що багатокаскадний фільтр містить Μ каскадів біквадратних фільтрів, при цьому наступний каскад біквадратного фільтра сконфігурований для генерування вихідного значення, що відповідає "j"-му з вхідних дискретних значень, у відповідь на підмножину буферизованих значень, витягнутих з пам'яті, де j - індекс в інтервалі від М-1 до Ν-1, при цьому зазначена підмножина містить піддану фільтрації версію "j"-го з вхідних дискретних значень, згенеровану першим каскадом біквадратного фільтра, і значення, згенероване наступним каскадом біквадратного фільтра у відповідь на "j-1"-е з вхідних дискретних значень, і значення, згенероване наступним каскадом біквадратного фільтра у відповідь на "j-2"-е з вхідних дискретних значень.
24. Декодер за п. 20, який відрізняється тим, що наступний каскад біквадратного фільтра сконфігурований для генерування вихідного значення, що відповідає кожному з вхідних дискретних значень у відповідь на іншу підмножину буферизованих значень, витягнутих з пам'яті, при цьому кожна зазначена підмножина містить щонайменше три з проміжних значень, згенерованих у першому каскаді біквадратного фільтра та витягнутих з пам'яті після перебування в зазначеній пам'яті протягом різного часу очікування.
25. Декодер за п. 20, який відрізняється тим, що зазначений декодер являє собою процесор, що містить щонайменше один блок "один потік команд - багато потоків даних", запрограмований для реалізації багатокаскадного фільтра.
26. Декодер за п. 20, який відрізняється тим, що зазначений декодер являє собою процесор, що містить кілька арифметичних логічних блоків, запрограмованих для реалізації каскадів біквадратних фільтрів.
27. Декодер за п. 20, який відрізняється тим, що зазначений декодер являє собою процесор, що містить кілька блоків арифметичного оброблення, запрограмованих для реалізації каскадів біквадратних фільтрів.
28. Спосіб декодування кодованих аудіоданих з метою генерування декодованих аудіоданих, що включає виконання багатокаскадної фільтрації на блоці з N дискретних значень аудіоданих, при цьому багатокаскадна фільтрація включає етапи:
(a) виконання першої операції біквадратної фільтрації на блоці з N дискретних значень з метою генерування проміжних значень і затвердження проміжних значень у буферній пам'яті, при цьому проміжні значення містять піддану фільтрації версію кожного з щонайменше підмножини N дискретних значень; і
(b) виконання другої операції біквадратної фільтрації на буферизованих значеннях, витягнутих з пам'яті, з метою генерування блока вихідних значень, при цьому вихідні значення містять вихідне значення, що відповідає кожному з дискретних значень у блоці з N дискретних значень, іншу підмножину буферизованих значень витягають і фільтрують з метою генерування вихідного значення, що відповідає кожному з дискретних значень у блоці, і при цьому кожна зазначена підмножина буферизованих значень містить щонайменше два з проміжних значень, згенерованих у ході виконання етапу (а), які витягають з пам'яті після перебування в зазначеній пам'яті протягом різного часу очікування,
при цьому етапи (а) і (b) виконують у відповідь на єдиний потік команд так, що етапи (а) і (b) виконують незалежно та паралельно у відповідь на єдиний потік команд.
29. Спосіб за п. 28, який відрізняється тим, що багатокаскадну фільтрацію блока дискретних значень виконують у єдиному циклі з повторенням за індексом дискретних значень, але без повторення за індексом каскадів біквадратних фільтрів.
30. Спосіб за п. 28, який відрізняється тим, що багатокаскадну фільтрацію виконують у багатокаскадному фільтрі, що містить Μ каскадів, при цьому буферизовані значення, що витягуються на етапі (b) для генерування вихідного значення, що відповідає "j"-му з дискретних значень, де j - індекс в інтервалі від М-1 до N-1, включають піддану фільтрації версію "j"-го з дискретних значень, згенеровану на етапі (а), піддану фільтрації версію "j-1"-го з дискретних значень, згенеровану на етапі (а), і піддану фільтрації версію "j-2"-го з дискретних значень, згенеровану на етапі (а).
31. Спосіб оброблення кодованого бітового потоку, що включає:
приймання кодованого бітового потоку та витягання з нього кодованих даних, що представляють один або кілька каналів звукової інформації, обробленої багатокаскадним фільтром; і
декодування кодованих даних з метою створення декодованих представлень одного або декількох каналів звукової інформації, обробленої багатокаскадним фільтром, при цьому багатокаскадний фільтр діє для незалежного та паралельного виконання у відповідь на єдиний потік команд:
(a) першої операції біквадратної фільтрації на блоці з N дискретних значень з метою генерування проміжних значень для затвердження в буферній пам'яті, при цьому проміжні значення містять піддану фільтрації версію кожного з щонайменше підмножини з N дискретних значень; і
(b) другої операції біквадратної фільтрації на буферизованих значеннях, що витягаються з пам'яті, з метою генерування блока вихідних значень, при цьому вихідні значення містять вихідне значення, що відповідає кожному з дискретних значень у блоці з N дискретних значень, іншу підмножину буферизованих значень витягають і буферизують з метою генерування вихідного значення, що відповідає кожному з дискретних значень у блоці, і при цьому кожна зазначена підмножина буферизованих значень містить щонайменше два з проміжних значень, згенерованих в ході виконання етапу (а), які витягають з пам'яті після перебування в зазначеній пам'яті протягом різного часу очікування.
32. Спосіб за п. 31, який відрізняється тим, що багатокаскадний фільтр являє собою трикаскадний біквадратний фільтр, призначений для фільтрації пропущення нижніх частот з обмеженням смуги пропущення.
33. Спосіб за п. 31, який відрізняється тим, що один з одного або декількох каналів являє собою канал LFE і багатокаскадний фільтр являє собою чотирикаскадний біквадратний фільтр, призначений для виконання фільтрації пропущення нижніх частот на каналі LFE.
34. Пристрій, призначений для оброблення даних кодованого бітового потоку, що містить:
ввід, підключений для приймання кодованого бітового потоку; і
декодер, пов'язаний з вводом і сконфігурований для витягання з кодованого бітового потоку кодованих даних, що представляють один або кілька каналів звукової інформації, обробленої багатокаскадним фільтром, і для декодування кодованих даних з метою створення декодованих виражень одного або декількох каналів звукової інформації, обробленої багатокаскадним фільтром, при цьому багатокаскадний фільтр діє для незалежного та паралельного виконання у відповідь на єдиний потік команд:
(a) першої операції біквадратної фільтрації на блоці з N дискретних значень з метою генерування проміжних значень для затвердження в буферній пам'яті, при цьому проміжні значення містять піддану фільтрації версію кожного з щонайменше підмножини з N дискретних значень; і
(b) другої операції біквадратної фільтрації на буферизованих значеннях, витягнутих з пам'яті, з метою генерування блока вихідних значень, при цьому вихідні значення містять вихідне значення, що відповідає кожному з дискретних значень у блоці з N дискретних значень, іншу підмножину буферизованих значень витягають і фільтрують з метою генерування вихідного значення, що відповідає кожному з дискретних значень у блоці, і при цьому кожна зазначена підмножина буферизованих значень містить щонайменше два з проміжних значень, згенерованих в ході виконання етапу (а), які витягають із пам'яті після перебування в зазначеній пам'яті протягом різного часу очікування.
35. Пристрій за п. 34, який відрізняється тим, що багатокаскадний фільтр являє собою трикаскадний біквадратний фільтр, призначений для фільтрації пропущення нижніх частот з обмеженням смуги пропущення.
36. Пристрій за п. 34, який відрізняється тим, що один з одного або декількох каналів являє собою канал LFE і багатокаскадний фільтр являє собою чотирикаскадний біквадратний фільтр, призначений для виконання фільтрації пропущення нижніх частот на каналі LFE.
Текст
Реферат: У деяких варіантах здійснення винаходу багатокаскадний фільтр, каскади біквадратних фільтрів якого об'єднані з затримкою між каскадами, система (наприклад, аудіокодер або декодер), що включає такий фільтр, і способи багатокаскадної біквадратної фільтрації. У типових варіантах здійснення винаходу всі каскади біквадратних фільтрів фільтра діють незалежно з метою виконання повністю розпаралеленого оброблення даних. У деяких варіантах здійснення винаходу багатокаскадний фільтр згідно з винаходом містить буферну пам'ять, щонайменше два каскади біквадратних фільтрів і контролер, підключений і сконфігурований для затвердження єдиного потоку команд у каскадах фільтрів. Як правило, багатокаскадний фільтр є сконфігурованим для виконання багатокаскадної фільтрації на блоці вхідних дискретних значень у єдиному циклі оброблення даних з повторенням за індексом дискретних значень, але без повторення за індексом каскадів біквадратних фільтрів. UA 112001 C2 (12) UA 112001 C2 UA 112001 C2 5 10 15 20 25 30 35 40 45 50 55 ПЕРЕДУМОВИ ВИНАХОДУ Перехресне посилання на родинні заявки Дана заявка заявляє пріоритет попередньої заявки на патент США №61/645291, поданої 10 травня 2012 р., яка посиланням повністю включається в це розкриття. 1. Область винаходу Винахід відноситься до багатокаскадних фільтрів, що включають каскади біквадратних фільтрів, і до розпаралеленої фільтрації даних (наприклад, аудіоданих) з використанням таких фільтрів. Деякі варіанти здійснення винаходу являють собою способи, системи та процесори для фільтрації аудіоданих (з використанням багатокаскадного фільтра, що включає каскади біквадратних фільтрів) у ході кодування або декодування даних відповідно до одного з форматів, відомих як Dolby Digital (AC-3), Dolby Digital Plus (E-AC-3) і Dolby E, або відповідно до іншого формату кодування. Dolby, Dolby Digital, Dolby Digital Plus і Dolby E є торговельними знаками Dolby Laboratories Licensing Corporation. 2. Передумови винаходу Усюди в цьому розкритті, у тому числі у формулі винаходу, вираз виконання операції "на" сигналах або даних (наприклад, фільтрація або масштабування сигналів або даних) використовується в широкому змісті для позначення операції безпосередньо на сигналах або даних, або на оброблених версіях сигналів або даних (наприклад, на версіях сигналів, які піддали попередній фільтрації або іншій обробці перед виконанням на них зазначеної операції). У області оброблення сигналів цифровий біквадратний фільтр являє собою рекурсивний лінійний фільтр другого порядку, що містить два полюси та два нулі. Скорочення "biquad" буде використовуватися в цьому розкритті для позначення цифрового біквадратного фільтра. У області Z передатна функція біквадратного фільтра являє собою відношення двох квадратичних функцій: b b1z 1 b 2 z 2 H( z ) 0 1 a1z 1 a 2 z 2 . Рекурсивні фільтри високого порядку (фільтри з нескінченною імпульсною характеристикою, або "IIR-фільтри", з порядком вище другого порядку) можуть мати високу чутливість до квантування їх коефіцієнтів і легко можуть ставати нестійкими. Рекурсивні фільтри першого та другого порядку також можуть мати труднощі, пов'язані з нестійкістю цього типу, але ці пов'язані з нестійкістю труднощі є менш серйозними. Тому рекурсивні фільтри високого порядку, як правило, реалізуються як послідовно з'єднані в каскад фільтри, що включають послідовний каскад з біквадратних ланок (і, необов'язково, також фільтр першого порядку). Такі послідовно з'єднані в каскад фільтри іноді іменуються в цьому розкритті багатокаскадними біквадратними фільтрами та включають послідовність біквадратних фільтрів (іноді іменованих у цьому розкритті біквадратними каскадами або біквадратними ланками). Наприклад, традиційні кодери, сконфігуровані для кодування аудіоданих відповідно до добре відомого формату AC-3 (Dolby Digital) або добре відомих форматів Dolby Digital Plus і Dolby E, реалізують декілька багатокаскадних біквадратних фільтрів. Наприклад, у кодері Dolby Digital Plus, як правило, для реалізації фільтрації пропущення верхніх частот у підсистемі детектора короткочасних сигналів використовується двокаскадний біквадратний фільтр (тобто фільтр, що включає два з'єднані в каскад біквадратні фільтри), чотирьохкаскадний біквадратний фільтр (тобто фільтр, що включає чотири з'єднані в каскад біквадратні фільтри) для реалізації фільтрації пропущення нижніх частот у підсистемі низькочастотних ефектів ("LFE"); і трьохкаскадний біквадратний фільтр для реалізації фільтрації пропущення нижніх частот з обмеженням смуги пропущення. У кодері Dolby E, як правило, використовується двокаскадний біквадратний фільтр (тобто фільтр, що включає два з'єднані в каскад біквадратні фільтри) для реалізації фільтрації пропущення верхніх частот у підсистемі детектора короткочасних сигналів, і чотирьохкаскадний біквадратний фільтр (тобто фільтр, що включає чотири з'єднані в каскад біквадратні фільтри) для реалізації фільтрації пропущення нижніх частот у підсистемі низькочастотних ефектів ("LFE"). У кодері Dolby E, як правило, використовується трьохкаскадний біквадратний фільтр (тобто фільтр, що включає три з'єднані в каскад біквадратні фільтри) для реалізації фільтрації пропущення нижніх частот у підсистемі низькочастотних ефектів ("LFE"). Наприклад, фіг. 1 являє собою схему біквадратного фільтра (що відноситься до типу, іноді іменованого "конструкція Direct Form II - Transposed"), що включає елементи 1, 2, 3, 4, 5, b0, b1, b2, -a1 і -a2, з'єднані так, як це показане. Елементи 1, 2 і 3 являють собою елементи додавання, елементи 4 і 5 являють собою елементи затримки, і кожний з елементів посилення b 0, b1, b2, -a1 і -a2 застосовує до сигналу, затвердженого в його введенні, відповідний один з коефіцієнтів 1 UA 112001 C2 5 10 15 20 25 30 35 40 45 50 55 60 підсилення b0, b1, b2, -a1 і -a2. І хоча цього не показано та не описано в цьому розкритті, фахівцям у даній області техніки добре відомо, що існують і інші, еквівалентні конструкції біквадратних фільтрів, наприклад "Direct Form I", "Direct Form I - Transposed" і "Direct Form II". Будь-які такі еквівалентні конструкції біквадратних фільтрів перебувають у межах обсягу винаходу. Як показано на фіг. 1А, якщо біквадратний фільтр за фіг. 1 (позначений на фіг. 1А як Biquad 1) з'єднано в каскад з біквадратним фільтром, що мають таку ж конструкцію (позначеним на фіг. 1А як Biquad 2), але елементи посилення якого можуть застосовувати інші коефіцієнти підсилення, ніж елементи за фіг. 1, то результуючий багатокаскадний біквадратний фільтр буде являти собою один з прикладів двокаскадного біквадратного фільтра, який може бути задіяний (наприклад, для реалізації фільтрації пропущення верхніх частот у підсистемі детектора короткочасних сигналів одного з вищезгаданих аудіокодерів). У багатокаскадному біквадратному фільтрі за фіг. 1А вихідний сигнал, x1(n), першого каскаду є вхідним сигналом у другий каскад. Для багатокаскадних біквадратних фільтрів (і деяких інших багатокаскадних IIR-фільтрів) обчислення в кожному каскаді вихідного дискретного значення в момент часу "n" (тобто вихідного сигналу y(n) каскаду) у відповідь на значення сигналу x(n) у тимчасовій області (вхідного сигналу або сигналу, згенерованого в іншому каскаді багатокаскадного фільтра) у момент часу "n" і попередні моменти часу, має залежність від попередніх виводів (тобто виводів y(n-1) і y(n-2) у моменти часу n-1 і n-2). Також, для кожних двох послідовних каскадів (біквадратних фільтрів) у багатокаскадному біквадратному фільтрі вивід кожного більш раннього каскаду є вводом у наступний каскад, тому вивід наступного каскаду не можна визначити доти, доки не буде визначений вивід більш раннього каскаду. Ці причини є основними причинами того, чому для реалізації багатокаскадного біквадратного фільтра (до цього винаходу) не було задіяно повністю розпаралелене оброблення даних. У багатьох сучасних архітектурах процесорного ядра (наприклад, в архітектурах процесорів цифрового оброблення сигналів) є блоки SIMD ("один потік команд - багато потоків даних") і/або кілька блоків ALU (арифметичних логічних блоків) або блоків AMU (блоків арифметичного оброблення), які можуть бути використані для розпаралелювання багатьох алгоритмів і підвищення продуктивності. Однак традиційні алгоритми для програмування процесорів з метою реалізації багатокаскадних біквадратних фільтрів не використовують команди SIMD і не є розпаралеленими. Наприклад, кодери Dolby Digital Plus (які кодують аудіодані відповідно до формату Dolby Digital Plus) були реалізовані як програмувальні процесори ARM neon (кожний з яких являє собою процесор ARM Cortex з механізмом Neon SIMD, що допускаюють паралельне оброблення даних) і як програмувальні процесори цифрового оброблення сигналів Texas Instruments C64. Багато кодерів аудіоданих (наприклад, кодери, які кодують аудіодані відповідно до AC-3, Dolby Digital Plus, Dolby E і/або іншими форматами кодування) були реалізовані або могли б бути реалізовані як програмувальні процесори, що мають кожну з великої різноманітності архітектур, що містять блоки SIMD ("один потік команд - багато потоків даних") і/або кілька блоків ALU (арифметичних логічних блоків) або блоків AMU (блоків арифметичного оброблення). Такі процесори могли б програмуватися для реалізації різних алгоритмів (включених у кодування аудіоданих) з використанням паралельного оброблення даних. Однак традиційним програмуванням, яке було задіяно для реалізації багатокаскадних біквадратних фільтрів у таких процесорах, не було реалізоване паралельне оброблення даних. Типові варіанти здійснення цього винаходу задіюють паралельне оброблення даних для реалізації багатокаскадного біквадратного фільтра. Деякі варіанти здійснення винаходу задіюють паралельне оброблення даних для реалізації багатокаскадного біквадратного фільтра, що відноситься до типу, використовуваного при кодуванні аудіоданих відповідно до формату AC-3 (Dolby Digital), формату Dolby Digital Plus або формату Dolby E. І хоча винахід не обмежується використанням при кодуванні аудіоданих відповідно до формату AC-3, Dolby Digital Plus або Dolby E, деякі варіанти здійснення винаходу являють собою способи, системи та процесори для кодування аудіоданих (наприклад, для кодування аудіоданих відповідно до формату AC-3, Dolby Digital Plus або Dolby E), які задіюють щонайменше один багатокаскадний біквадратний фільтр, що реалізує один з варіантів здійснення винаходу (або спроєктований відповідно до нього). Кодований бітовий потік AC-3 включає від одного до шести каналів звукового вмісту та метадані, що служать ознакою щонайменше однієї характерної особливості цього звукового вмісту. Звуковий вміст являє собою аудіодані, які були стиснуті з використанням перцепційного кодування звуку. 2 UA 112001 C2 5 10 15 20 25 30 35 40 45 50 55 60 Подробиці кодування AC-3 (також відомого як Dolby Digital) добре відомі та викладені в багатьох опублікованих джерелах, включаючи наступні: стандарт ATSC A52/A: Digital Audio Compression Standard (AC-3), Revision A, Advanced Television Systems Committee, 20 серпня 2001; th "Flexible Perceptual Coding for Audio Transmission and Storage", авторів Craig C. Todd і ін., 96 Convention of the Audio Engineering Society, 26 лютого, 1994, Preprint 3796; "Design and Implementation of AC-3 Coders", автора Steve Vernon, IEEE Trans. Consumer Electronics, Vol. 41, No. 3, серпень 1995; глава "Dolby Digital Audio Coding Standards" авторів Robert L. Andersen і Grant A. Davidson, у довіднику The Digital Signal Processing Handbook, Second Edition, Vijay K. Madisetti, Editor-inChief, CRC Press, 2009; "High Quality, Low-Rate Audio Transform Coding for Transmission and Multimedia Applications" авторів Bosi і ін., Audio Engineering Society Preprint 3365, 93rd AES Convention, жовтень 1992; і патенти США №№5583962; 5632005; 5633981; 5727119 і 6021386. Подробиці кодування Dolby Digital (AC-3) і Dolby Digital Plus (іноді іменованого Enhanced AC3 або "E-AC-3") викладені в статті "Introduction to Dolby Digital Plus, an Enhancement to the Dolby th Digital Coding System", AES Convention Paper 6196, 117 AES Convention, 28 жовтня, 2004, і в технічних умовах Dolby Digital/Dolby Digital Plus (ATSC A/52:2010), доступних за адресою: http://www.atsc.org/cms/index.php/standards/published-standards. КОРОТКИЙ ОПИС ВИНАХОДУ У одному з класів варіантів здійснення винаходу винахід являє собою багатокаскадний фільтр, що включає щонайменше два каскади (кожний з яких являє собою біквадратний фільтр), де каскади об'єднані з затримкою між зазначеними каскадами так, що всі каскади є діючими незалежно у відповідь на єдиний, загальний потік команд з метою виконання повністю розпаралеленого оброблення даних на зазначених каскадах. Як правило, багатокаскадний фільтр також включає контролер, підключений для затвердження загального потоку команд у всіх каскадах, і пам'ять даних, з'єднану з усіма каскадами, де всі каскади є діючими паралельно з метою фільтрації блоку вхідних значень даних у відповідь на загальний потік команд, але де кожний з каскадів діє на різні значення даних, і де щонайменше один з каскадів діє на значеннях даних, які включають буферизовані значення, згенеровані іншим з каскадів у відповідь на підмножину вхідних значень даних і збережені в пам'яті з одмінними затримками перед витяганням для оброблення в зазначеному одному з каскадів. Таким чином, багатокаскадний фільтр у цих варіантах здійснення винаходу має архітектуру SIMD ("один потік команд - багато потоків даних"), у якій окремі каскади біквадратних фільтрів діють незалежно та паралельно у відповідь на єдиний потік команд. Наприклад, багатокаскадний фільтр може включати N каскадів (де N - число більше одиниці), і один з каскадів ("M+1»-й каскад у послідовності) може діяти на значеннях даних, генерованих попереднім одним з каскадів ("М»-м каскадом у послідовності) у різний час (наприклад, у відповідь на послідовність різних вхідних значень даних блоку), збережених в буферну пам'ять (у різний час) і зчитуваних ("М+1»-м каскадом) з буферної пам'яті після перебування в буферній пам'яті протягом різного часу очікування. У деяких варіантах здійснення винаходу винахід являє собою багатокаскадний фільтр, що включає: буферну пам'ять; щонайменше два каскади біквадратних фільтрів, у тому числі перший каскад біквадратного фільтра та наступний каскад біквадратногофільтра; і контролер, з'єднаний з каскадами біквадратних фільтрів і сконфігурований для затвердження єдиного потоку команд як у першому каскаді біквадратного фільтра, так і в наступному каскаді біквадратного фільтра, де зазначений перший каскад біквадратного фільтра та зазначений наступний каскад біквадратного фільтра діють незалежно та паралельно у відповідь на потік команд, де перший каскад біквадратного фільтра з'єднаний з пам'яттю та сконфігурований для виконання біквадратної фільтрації на блоці з N вхідних дискретних значень у відповідь на потік команд з метою генерування проміжних значень і для затвердження цих проміжних значень у пам'яті (для зберігання в зазначеній пам'яті), де проміжні значення включають піддану фільтрації версію кожного з щонайменше підмножини вхідних дискретних значень, і де наступний каскад біквадратного фільтра пов'язаний з пам'яттю й сконфігурований для виконання біквадратної фільтрації на буферизованих значеннях, витягнутих з пам'яті, у відповідь на потік команд із метою генерування блоку вихідних значень, де вихідні значення включають вихідне значення, що відповідає кожному з вхідних дискретних значень у блоці з N вхідних дискретних значень, і буферизовані значення включають щонайменше деякі з 3 UA 112001 C2 5 10 15 20 25 30 35 40 45 50 55 60 проміжних значень, згенерованих у першому каскаді біквадратного фільтра у відповідь на блок з N вхідних дискретних значень. У типових варіантах здійснення винаходу багатокаскадний фільтр є сконфігурованим для виконання багатокаскадної фільтрації на блоці з N вхідних значень у єдиному циклі оброблення даних з повторенням за індексом дискретних значень, але без повторення за індексом каскадів біквадратних фільтрів. У деяких варіантах здійснення багатокаскадного фільтра згідно з винаходом, у якому багатокаскадний фільтр містить М каскадів, наступний каскад біквадратного фільтра є сконфігурованим для генерування вихідного значення, що відповідає "j»-му із вхідних дискретних значень, у відповідь на підмножину буферизованих значень, витягнутих з пам'яті, де j - індекс в інтервалі від M-1 до N-1, при цьому зазначена підмножина включає піддану фільтрації версію "j»-го із вхідних дискретних значень, піддану фільтрації версію "j-1»-го із вхідних дискретних значень і піддану фільтрації версію "j-2»-го із вхідних дискретних значень. У деяких варіантах здійснення багатокаскадного фільтра згідно з винаходом наступний каскад біквадратного фільтра є сконфігурованим для генерування вихідного значення, що відповідає кожному з вхідних дискретних значень, у відповідь на іншу підмножину буферизованих значень, витягнутих з пам'яті, де кожна така підмножина включає щонайменше три із проміжних значень, згенерованих у першому каскаді біквадратного фільтра та витягнутих з пам'яті після перебування в зазначеній пам'яті протягом різного часу очікування. Наприклад, у одному з типових варіантів здійснення винаходу, де багатокаскадний фільтр містить М каскадів біквадратних фільтрів, підмножина буферизованих значень, що витягається для генерування вихідного значення, що відповідає "j»-му з вхідних дискретних значень, де j - індекс в інтервалі від M-1 до N-1, включає щонайменше одне значення, згенероване в першому каскаді біквадратного фільтра у відповідь на "j»-е з вхідних дискретних значень, щонайменше одне значення, згенероване в першому каскаді біквадратного фільтра у відповідь на "j-1»-е з вхідних дискретних значень, і щонайменше одне значення, згенероване в першому каскаді біквадратного фільтра у відповідь на "j-2»-е з вхідних дискретних значень У іншому класі варіантів здійснення винаходу винахід являє собою спосіб виконання багатокаскадної фільтрації на блоці з N вхідних дискретних значень, при цьому зазначений спосіб включає етапи: (а) виконання першої операції біквадратної фільтрації на блоці з N вхідних дискретних значень з метою генерування проміжних значень і затвердження проміжних значень у буферній пам'яті (для зберігання в зазначеній пам'яті), де проміжні значення включають піддану фільтрації версію кожного з щонайменше підмножини вхідних дискретних значень; і (b) виконання другої операції біквадратної фільтрації на буферизованих значеннях, витягнутих з пам'яті, з метою генерування блоку вихідних значень, де вихідні значення включають вихідне значення, що відповідає кожному з вхідних дискретних значень у блоці з N вхідних дискретних значень, інша підмножина буферизованих значень витягується та фільтрується для генерування вихідногозначення, що відповідає кожному з вхідних дискретних значень у блоці, і кожна така підмножина буферизованих значень включає щонайменше два (наприклад, три) з проміжних значень, згенерованих у ході виконання етапу (а), які витягуються з пам'яті після перебування в зазначеній пам'яті протягом різного часу очікування, де етапи (а) і (b) виконуються у відповідь на єдиний потік команд так, що етапи (а) і (b) виконуються незалежно та паралельно у відповідь на єдиний потік команд. У типових варіантах здійснення винаходу багатокаскадна фільтрація блоку вхідних дискретних значень виконується в єдиному циклі з повторенням за індексом дискретних значень, але без повторення за індексом каскадів біквадратних фільтрів. У деяких варіантах здійснення способу згідно з винаходом, де фільтрація виконується в багатокаскадному фільтрі, що містить М каскадів, буферизовані значення, що витягуються на етапі (b) для генерування вихідного значення, що відповідає "j»-му з вхідних дискретних значень, де j - індекс в інтервалі від M-1 до N-1, включають піддану фільтрації версію "j»-го з вхідних дискретних значень, згенеровану на етапі (а), піддану фільтрації версію "j-1»-го з вхідних дискретних значень, згенеровану на етапі (а), і піддану фільтрації версію "j-2»-го з вхідних дискретних значень, згенеровану на етапі (а). У іншому класі варіантів здійснення винаходу винахід являє собою аудіокодер, сконфігурований для генерування кодованих аудіоданих у відповідь на вхідні аудіодані, при цьому зазначений кодер включає щонайменше один багатокаскадний фільтр (який являє собою будь-який з варіантів здійснення багатокаскадного фільтра згідно з винаходом), підключений і сконфігурований для фільтрації аудіоданих (наприклад, для фільтрації попередньо обробленої версії аудіоданих). У іншому класі варіантів здійснення винаходу винахід являє собою спосіб 4 UA 112001 C2 5 10 15 20 25 30 35 40 45 50 55 60 кодування аудіоданих з метою генерування кодованих аудіоданих, що полягає у виконанні будьякого з варіантів здійснення способу згідно з винаходом багатокаскадної біквадратної фільтрації на аудіоданих (наприклад, на попередньо обробленій версії аудіоданих). Наприклад, один з варіантів здійснення винаходу являє собою аудіокодер, що включає каскад попереднього оброблення даних (призначений для попереднього оброблення вхідних аудіоданих, що підлягають кодуванню кодером), де каскад попереднього оброблення даних включає щонайменше один багатокаскадний фільтр (який являє собою будь-який з варіантів здійснення багатокаскадного фільтра згідно з винаходом), підключений і сконфігурований для фільтрації аудіоданих (наприклад, вхідних даних або попередньо обробленої версії вхідних даних). Інший варіант здійснення винаходу являє собою передпроцесор (призначений для виконання попереднього оброблення аудіоданих, що підлягають кодуванню кодером), де передпроцесор включає щонайменше один багатокаскадний фільтр (який являє собою будь-який з варіантів здійснення багатокаскадного фільтра згідно з винаходом), підключений і сконфігурований для фільтрації аудіоданих (наприклад, даних, які є вхідними в передпроцесор, або попередньо обробленої версії таких вхідних даних). У іншому класі варіантів здійснення винаходу винахід являє собою аудіодекодер, сконфігурований для генерування декодованих аудіоданих у відповідь на кодовані аудіодані. У деяких варіантах здійснення винаходу в цьому класі декодер включає щонайменше один багатокаскадний фільтр (який являє собою будь-який з варіантів здійснення багатокаскадного фільтра згідно з винаходом), підключений і сконфігурований для фільтрації кодованих аудіоданих (наприклад, для фільтрації попередньо обробленої версії кодованих аудіоданих). У іншому класі варіантів здійснення винаходу винахід являє собою спосіб декодування кодованих аудіоданих з метою генерування декодованих аудіоданих. У деяких таких варіантах здійснення винаходу декодування включає виконання будь-якого з варіантів здійснення способу згідно з винаходом багатокаскадної біквадратної фільтрації на кодованих аудіоданих (наприклад, на попередньо обробленій версії кодованих аудіоданих). Наприклад, один з варіантів здійснення винаходу являє собою аудіодекодер, що включає каскад постоброблення (призначений для постоброблення декодованих аудіоданих, які були декодовані декодером), де каскад постоброблення включає щонайменше один багатокаскадний фільтр (який являє собою будьякий з варіантів здійснення багатокаскадного фільтра згідно з винаходом), підключений і сконфігурований для фільтрації аудіоданих (наприклад, декодованих даних або обробленої версії декодованих даних). Інший варіант здійснення винаходу являє собою постпроцесор (наприклад, призначений для виконання постоброблення декодованих аудіоданих, які були декодовані декодером), де постпроцесор включає щонайменше один багатокаскадний фільтр (який являє собою будь-який з варіантів здійснення багатокаскадного фільтра згідно з винаходом), підключений і сконфігурований для фільтрації аудіоданих (наприклад, декодованих даних, які є вхідними в постпроцесор, або обробленої версії таких вхідних даних). Відповідно до типових варіантів здійснення цього винаходу для виконання багатокаскадного фільтра з метою програмування процесора (наприклад, процесора цифрового оброблення сигналів або процесора загального призначення) використовуються команди SIMD (або команди для паралельного оброблення даних декількома блоками ALU або AMU). Багатокаскадний фільтр може реалізовувати смугову фільтрацію, фільтрацію пропущення нижніх частот (наприклад, у підсистемі LFE аудіокодера), фільтрацію пропущення верхніх частот (наприклад, у підсистемі детектора короткочасних сигналів аудіокодера) або іншу фільтрацію. Інші особливості винаходу включають систему або пристрій (наприклад, кодер, декодер або процесор), сконфігуровані (наприклад, запрограмовані) для виконання будь-якого із варіантів здійснення способу згідно з винаходом, і машинопрочитуваний носій даних (наприклад, диск), на якому зберігається код, призначений для реалізації будь-якого з варіантів здійснення способу згідно з винаходом або його етапів. Наприклад, система згідно з винаходом може являти собою або містити в собі програмувальний процесор загального призначення, процесор цифрового оброблення сигналів або мікропроцесор, запрограмовані програмним забезпеченням або апаратно-програмним забезпеченням і/або інакше сконфігуровані для виконання будь-якої із безлічі операцій на даних, що включають один з варіантів здійснення способу згідно з винаходом або його етапів. Такий процесор загального призначення може являти собою або містити в собі комп'ютерну систему, що включає пристрій введення, пам'ять і схему оброблення даних, запрограмовану (і/або інакше сконфігуровану) для виконання одного з варіантів здійснення способу згідно з винаходом (або його етапів) у відповідь на затверджені в ній дані. Деякі варіанти здійснення винаходу являють собою кодери (наприклад, кодери, які кодують аудіодані відповідно до формату Dolby Digital Plus, AC-3 або Dolby E) або декодери, реалізовані 5 UA 112001 C2 5 10 15 20 25 30 35 40 45 50 55 60 як програмувальні процесори (наприклад, процесори ARM neon, кожний з яких являє собою процесор ARM Cortex з механізмом Neon SIMD, що допускає паралельне оброблення даних, або інші процесори, що містять блоки SIMD ("один потік команд - багато потоків даних") і/або кілька блоків ALU (арифметичних логічних блоків) або AMU (блоків арифметичного оброблення)) або програмувальні (і/або такі, що конфігуруються інакше) процесори цифрового оброблення сигналів (наприклад, процесори DSP, що містять блоки SIMD і/або кілька блоків ALU або AMU). КОРОТКИЙ ОПИС ГРАФІЧНИХ МАТЕРІАЛІВ Фіг. 1 - блок-схема традиційного біквадратного фільтра. Фіг. 1А - блок-схема традиційного багатокаскадного біквадратного фільтра. Фіг. 2 - схема послідовності операцій традиційного способу виконання фільтрації у фільтрі, реалізованому як послідовно з'єднані в каскад біквадратні фільтри ("з'єднані в каскад біквадратні ланки"). Фіг. 3 - схема послідовності операцій одного з варіантів здійснення способу згідно з винаходом виконання фільтрації в багатокаскадному біквадратному фільтрі, що включає з'єднані в каскад біквадратні фільтри ("з'єднані в каскад біквадратні ланки"), які діють паралельно у відповідь на єдиний потік команд. Фіг. 4 - блок-схема багатокаскадного фільтра (наприклад, реалізованого програмувальним DSP або іншим процесором відповідно до одного з варіантів здійснення винаходу), який включає з'єднані в каскад біквадратні фільтри і який може виконувати спосіб, що відноситься до типу, описаного з посиланням на фіг. 3. На фіг. 4 пам'ять 10 включає комірки пам'яті, у яких зберігається кожний блок вхідних даних x(n), і гнізда буферної пам'яті, у яких зберігаються всі необхідні значення з числа проміжних значень x 1(n),…, xn-1(n), згенерованих біквадратними фільтрами. Фіг. 5 - блок-схема системи, що включає кодер (що включає один з варіантів здійснення багатокаскадного фільтра згідно з винаходом) і декодер (що також включає один з варіантів здійснення багатокаскадного фільтра згідно з винаходом). Фіг. 6 - схема послідовності операцій іншого варіанта здійснення способу згідно з винаходом виконання фільтрації в багатокаскадному біквадратному фільтрі, що включає з'єднані в каскад біквадратні фільтри ("з'єднані в каскад біквадратні ланки"), які діють паралельно у відповідь на єдиний потік команд. Фіг. 7 - схема послідовності операцій одного з варіантів здійснення етапів 40, 41 і 42 варіанта здійснення способу згідно з винаходом за фіг. 6. Фіг. 8 - схема послідовності операцій одного з варіантів здійснення етапів 47, 48 і 49 варіанта здійснення способу згідно з винаходом за фіг. 6. Фіг. 9 - схема значень, що генеруються у реалізації системи за фіг. 4, де обчислення виконуються на місці. Фіг. 10 - блок-схема системи, що включає кодер (що включає один з варіантів здійснення багатокаскадного фільтра згідно з винаходом) і декодер, який являє собою один з варіантів здійснення декодера згідно з винаходом. ДОКЛАДНИЙ ОПИС ВАРІАНТІВ ЗДІЙСНЕННЯ ВИНАХОДУ Варіанти здійснення способу згідно з винаходом і систем (наприклад, кодерів і декодерів), сконфігурованих для реалізації способу згідно з винаходом, будуть описані з посиланням на фіг. 3, 4, 5, 6, 7 і 8. Спочатку, з посиланням на фіг. 2, описано традиційний спосіб фільтрації дискретних значень даних (наприклад, блоків дискретних значень аудіоданих) багатокаскадним фільтром, що включають каскад з М біквадратних фільтрів (де М - число, яке нижче й на фіг. 2 іменується "nsections"). Одним з прикладів такого традиційного багатокаскадного біквадратного фільтра є фільтр за вищеописаною фіг. 1А. У способі за фіг. 2 кожний новий блок з N дискретних значень, що підлягають фільтрації, спочатку буферизується (на етапі 20). Кожне дискретне значення в блоці орієнтується за індексом j, де 0≤ j ≤N-1. Кожний каскад (ланка) у багатокаскадному фільтрі орієнтується за індексом i, де 0≤i ≤M-1. На етапі 21 індексу i привласнюється нульове початкове значення, і на етапі 22 індексу j привласнюється нульове початкове значення. На етапі 23 "j»-е вхідне дискретне значення фільтрується в "i»-му біквадратному фільтрі, а потім на етапі 24 індекс j прирощується. Етап 25 визначає, чи є прирощений індекс j (що дорівнює j+1) меншим, ніж N. Якщо на етапі 25 визначене, що прирощений індекс j менший, ніж N, етап 23 виконується знову з метою фільтрації наступного («(j+1)-го") дискретного значення в "i»-му біквадратному фільтрі. 6 UA 112001 C2 5 10 15 20 25 30 35 40 45 50 55 60 Якщо на етапі 25 визначено, що прирощений індекс j що дорівнює N (так що всі дискретні значення в поточному блоці були піддані фільтрації в поточному біквадратному фільтрі), то на етапі 26 прирощується індекс i. Етап 27 визначає, чи є найостанніший прирощений індекс i (що дорівнює i+1) менший, ніж число "nsections" (яке дорівнює М). Якщо на етапі 27 визначено, що найостанніший прирощений індекс i менший за М, то з метою фільтрації найостаннішого блоку проміжних значень (виводів попереднього ("i»-го) біквадратного фільтра, згенерованих у попередньому біквадратному фільтрі на попередньому повторенні етапів 22-25) виконується наступне повторення етапів 2226 у наступному ("i+1»-м) біквадратному фільтрі. Якщо на етапі 27 визначено, що найостанніший прирощений індекс i дорівнює М, тобто оброблення всіх дискретних значень поточного блоку у всіх біквадратних фільтрах завершено, то виконується етап 28. На етапі 28 виводиться N підданих фільтрації дискретних значень, згенерованих шляхом фільтрації поточного блоку вхідних дискретних значень у багатокаскадному фільтрі. У цей момент буферизується (при виконанні етапу 20 заново) будьякий додатковий блок з N дискретних значень, що підлягають фільтрації, і спосіб за фіг. 2 повторюється для фільтрації цього нового блоку дискретних значень у багатокаскадному фільтрі. Для процесу за фіг. 2 у випадку, коли М=2 (тобто у випадку, коли багатокаскадний фільтр включає лише два з'єднані в каскад біквадратні фільтри), оброблення даних, виконуване в кожному каскаді багатокаскадного фільтра, також описується нижченаведеним псевдокодом, у якому N дорівнює кількості вихідних дискретних значень, що підлягають генеруванню шляхом фільтрації блоку з N дискретних значень у багатокаскадному фільтрі: для (i=0; i
ДивитисяДодаткова інформація
Назва патенту англійськоюMultistage iir filter and parallelized filtering of data with same
Автори англійськоюRathi, Khushbu P.
Автори російськоюРатхи Кхушбу П.
МПК / Мітки
МПК: H03H 17/04
Мітки: фільтрація, iir-фільтр, даних, розпаралелена, багатокаскадний, таким
Код посилання
<a href="https://ua.patents.su/29-112001-bagatokaskadnijj-iir-filtr-i-rozparalelena-filtraciya-danikh-takim.html" target="_blank" rel="follow" title="База патентів України">Багатокаскадний iir-фільтр і розпаралелена фільтрація даних таким</a>
Попередній патент: Вагон-цистерна для затвердівальних продуктів
Наступний патент: Детонаційний ракетний двигун з торцевим зарядом твердого палива
Випадковий патент: Упаковка, що закривається, та пакувальна заготівка для неї