АУДИОДЕКОДЕР, УСТРОЙСТВО ФОРМИРОВАНИЯ ВЫХОДНЫХ КОДИРОВАННЫХ АУДИОДАННЫХ И СПОСОБЫ, ПОЗВОЛЯЮЩИЕ ИНИЦИАЛИЗАЦИЮ ДЕКОДЕРА
AUDIO DECODER, DEVICE FOR FORMING OUTPUT ENCODED AUDIO DATA AND METHODS ALLOWING THE INITIALIZATION OF DECODER

Настоящее изобретение относится к аудиокодированию/ декодированию и, в частности, к подходу к кодированию и декодированию данных, позволяющему инициализацию декодера, которая может потребоваться при переключениях между различными конфигурациями кодека.
Варианты осуществления изобретения могут применяться к сценариям, в которых свойства каналов передачи могут значительно различаться в зависимости от технологии доступа, такой как DSL, Wi-Fi, 3G, LTE и т.п. Принимаемый сигнал мобильного телефона может испытывать замирания в закрытых помещениях или в удаленных районах. Качество соединений беспроводного интернета сильно зависит от расстояния до базовой станции и технологии доступа, приводя к флюктуациям битовой скорости передачи. Доступная битовая скорость передачи у каждого пользователя может также изменяться в зависимости от количества клиентов, соединенных с одной базовой станцией.
Задача изобретения состоит в обеспечении концепции, позволяющей доставку аудиоконтента гибким способом.
В соответствии с изобретением, эта задача решается аудиодекодером, соответствующим формуле изобретения, устройством формирования выходных кодированных аудиоданных, соответствующим п. 9 формулы изобретения, способом декодирования входных аудиоданных, соответствующим п. 18 формулы изобретения, способом формирования кодированных аудиоданные, соответствующим п. 22 формулы изобретения, и компьютерной программой, соответствующей п. 25 формулы изобретения.
Варианты осуществления изобретения обеспечивают аудиодекодер для декодирования битового потока кодированных аудиоданных, причем битовый поток битов кодированных аудиоданных представляет собой последовательность значений аудиовыборки и содержит множество кадров, при этом каждый кадр содержит ассоциированные кодированные значения аудиовыборки, причем упомянутый аудиодекодер содержит:
устройство определения, выполненное с возможностью определения, является ли кадр кодированных аудиоданных специальным кадром, содержащим кодированные значения аудиовыборки, ассоциированные со специальным кадром, и дополнительную информацию, при этом дополнительная информация содержит кодированные значения аудиовыборки множества кадров, предшествующих специальному кадру, в котором кодированные значения аудиовыборки предшествующих кадров кодируются, используя ту же самую конфигурацию кодека, что и при кодировании специального кадра, причем количество предшествующих кадров достаточно, чтобы инициализировать декодер для возможности декодирования значений аудиовыборки, ассоциированных со специальным кадром, если специальный кадр является первым кадром после запуска декодера; и
устройство инициализации, выполненное с возможностью инициализации декодера, если устройство определения решает, что кадр является специальным кадром, причем инициализация декодера содержит декодирование кодированных значений аудиовыборки, введенных в дополнительную информацию перед декодированием кодированных значений аудиовыборки, ассоциированных со специальным кадром.
Варианты осуществления изобретения обеспечивают устройство формирования битового потока кодированных аудиоданных, представляющих собой последовательность значений аудиовыборки аудиосигнала, причем битовый поток кодированных аудиоданных содержит множество кадров, при этом каждый кадр содержит ассоциированные кодированные значения аудиовыборки, и упомянутое устройство содержит:
устройство обеспечения специального кадра, выполненное с возможностью обеспечения по меньшей мере одного из кадров в качестве специального кадра, причем специальный кадр содержит кодированные значения аудиовыборки, ассоциированные со специальным кадром, и дополнительную информацию, при этом дополнительная информация содержит кодированные значения аудиовыборки множества кадров, предшествующих специальному кадру, причем кодированные значения аудиовыборки предшествующих кадров кодируются, используя ту же самую конфигурацию кодека, что и при кодировании специального кадра, и при этом количество предшествующих кадров достаточно, чтобы инициализировать декодер для возможности декодирования значений аудиовыборки, ассоциированных со специальным кадром, если специальный кадр является первым кадром после запуска декодера; и
устройство вывода, выполненное с возможностью вывода битового потока кодированных аудиоданных.
Варианты осуществления изобретения обеспечивают способ декодирования битового потока кодированных аудиоданных, в котором битовый поток кодированных аудиоданных представляет собой последовательность значений аудиовыборки и содержит множество кадров, причем каждый кадр содержит ассоциированные кодированные значения аудиовыборки, и в которых упомянутый способ содержит этапы, на которых:
определяют, является ли кадр кодированных аудиоданных специальным кадром, содержащим кодированные значения аудиовыборки, ассоциированные со специальным кадром, и дополнительную информацию, причем дополнительная информация содержит кодированные значения аудиовыборки множества кадров, предшествующих специальному кадру, при этом кодированные значения аудиовыборки предшествующих кадров кодируются, используя ту же самую конфигурацию кодека, что и при кодировании специального кадра, при этом количество предшествующих кадров достаточно,что инициализировать декодер для возможности декодирования значений аудиовыборки, ассоциированных со специальным кадром, если специальный кадр является первым кадром после запуска декодера; и
инициализируют декодер, если определено, что кадр является специальным кадром, причем инициализация содержит декодирование кодированных значений аудиовыборки, содержащихся в дополнительной информации перед декодированием кодированных значений аудиовыборки, ассоциированных со специальным кадром.
Варианты осуществления изобретения обеспечивают способ формирования битового потока кодированных аудиоданных, представляющего собой последовательность значений аудиовыборки аудиосигнала, причем битовый поток кодированных аудиоданных содержит множество кадров, при этом каждый кадр содержит ассоциированные кодированные значения аудиовыборки, и упомянутый способ содержит этапы, на которых:
обеспечивают по меньшей мере один из кадров в качестве специального кадра, причем специальный кадр содержит кодированные значения аудиовыборки, ассоциированные со специальным кадром, и дополнительную информацию, при этом дополнительная информация содержит кодированные значения аудиовыборки множества кадров, предшествующих специальному кадру, при этом кодированные значения аудиовыборки предшествующих кадров кодируются, используя ту же самую конфигурацию кодека, что и при кодировании специального кадра, и при этом количество предшествующих кадров достаточно, чтобы инициализировать декодер для возможности декодирования значений аудиовыборки, ассоциированных со специальным кадром, если специальный кадр является первым кадром после запуска декодера; и
формируют битовый поток, связывая специальный кадр с другими кадрами из множества кадров.
Варианты осуществления изобретения основаны на обнаружении, что немедленное воспроизведение битового потока кодированных аудиоданных, представляющих собой последовательность значений аудиовыборки аудиосигнала и содержащих множество кадров, может быть достигнуто, если один из кадров обеспечивается в качестве специального кадра, содержащего кодированные значения аудиовыборки, ассоциированные с предыдущими кадрами, необходимыми, чтобы инициировать декодер для возможности декодирования кодированных значений аудиовыборки, ассоциированных со специальным кадром. Количество кадров, необходимое для инициирования декодера, соответственно, зависит от используемой конфигурации кодека и известно конфигурациям кодека. Варианты осуществления изобретения основаны на обнаружении того, что переключение между различными конфигурациями кодека может быть достигнуто предпочтительным способом, если такой специальный кадр располагается в положении, при этом должно иметь место переключение между конфигурациями кодирования. Специальный кадр может не только содержать кодированные значения аудиовыборки, ассоциированные со специальным кадром, но и дополнительную информацию, позволяющую переключение между конфигурациями кодека и немедленное воспроизведение после переключения. В вариантах осуществления изобретения устройство и способ формирования кодированных выходных аудиоданных и аудиокодер выполнены с возможностью подготовки кодированных аудиоданных таким способом, чтобы на стороне декодера могло иметь место немедленное воспроизведение после переключения между конфигурациями кодека. В вариантах осуществления изобретения такие аудиоданные, сформированные и выведенные на стороне кодера, принимаются в качестве входных аудиоданных на стороне декодера и позволяют немедленное воспроизведение на стороне декодера. В вариантах осуществления изобретения немедленное воспроизведение разрешается на стороне декодера после переключения между различными конфигурациями кодека на стороне декодера.
В вариантах осуществления изобретения устройство инициирования выполнено с возможностью переключения аудиодекодера из текущей конфигурации кодека в другую конфигурацию кодека, если устройство определения решает, что кадр является специальным кадром, и если значения аудиовыборки специального кадра были кодированы, используя другую конфигурацию кодека.
В вариантах осуществления изобретения декодер выполнен с возможностью декодирования специального кадра, используя текущую конфигурацию кодека, и отбрасывания дополнительной информации, если устройство определения решает, что кадр является специальным кадром, и если значения аудиовыборки специального кадра были кодированы, используя текущую конфигурацию кодирования.
В вариантах осуществления изобретения дополнительная информация содержит информацию о конфигурации кодека, используемой для кодирования значений аудиовыборки, ассоциированных со специальным кадром, причем устройство определения выполнено с возможностью определения, отличается ли конфигурация кодека для дополнительной информации от текущей конфигурации кодека.
В вариантах осуществления изобретения аудиодекодер содержит устройство плавного наложения, выполненное с возможностью осуществления плавного наложения между множеством выходных значений выборки, полученных, используя текущую конфигурацию кодека, и множеством выходных значений выборки, полученных, декодируя кодированные значения аудиовыборки, ассоциированные со специальным кадром. В вариантах осуществления изобретения устройство плавного наложения выполнено с возможностью осуществления плавного наложения выходных значений выборки, полученных путем сброса декодера в текущей конфигурации кодека, и выходных значений выборки, полученных декодированием кодированных значения аудиовыборки, ассоциированных со специальным кадром.
В вариантах осуществления изобретения самый ранний кадр из числа кадров, содержащихся в дополнительной информации, не является дифференциально кодированным по времени или энтропийно кодированным относительно любого кадра, предшествующего самому раннему кадру, причем специальный кадр не является дифференциально кодированным по времени или энтропийно кодированным относительно любого кадра, предшествующего самому раннему кадру из числа кадров, предшествующих специальному кадру, или относительно любого кадра, предыдущего специальному кадру.
В вариантах осуществления изобретения специальный кадр содержит дополнительную информацию, такую как расширенная полезная нагрузка, причем устройство определения выполнено с возможностью оценки расширенной полезной нагрузки специального кадра. В вариантах осуществления изобретения дополнительная информация содержит информацию о конфигурации кодека, используемой для кодирования значений аудиовыборки, ассоциированных со специальным кадром.
В вариантах осуществления изобретения кодированные аудиоданные содержат множество сегментов, причем каждый сегмент ассоциируется с одной из множества частей последовательности значений аудиовыборки и содержит множество кадров, при этом сумматор специального кадра выполнен с возможностью добавления специального кадра в начало каждого сегмента.
В варианте осуществления изобретения кодированные аудиоданные содержат множество сегментов, причем каждый сегмент ассоциируется с одной из множества частей последовательности значений аудиовыборки и содержит множество кадров, причем устройство для формирования битового потока кодированных аудиоданных содержит устройство обеспечения сегментов, выполненное с возможностью предоставления сегментов, ассоциированных с различными части последовательности значений аудиовыборки и кодированных посредством различных конфигураций кодека, при этом устройство обеспечения специальных кадров выполнено с возможностью обеспечения первого кадра по меньшей мере одного из сегментов в качестве специального кадра; и формирователь, выполненный с возможностью формирования выходных аудиоданных, располагая сегменты по меньшей мере один за другим. В вариантах осуществления изобретения устройство обеспечения сегментов выполнено с возможностью выбора конфигурации кодека для каждого сегмента, основываясь на управляющем сигнале. В вариантах осуществления изобретения устройство обеспечения сегментов выполнено с возможностью обеспечения m кодированных версий последовательности значений аудиовыборки, причем m≥2, где m кодированных версий кодируются, используя различные конфигурации кодека, причем каждая кодированная версия содержит множество сегментов, представляющих множество частей последовательности значений аудиовыборки, и при этом устройство обеспечения специальных кадров выполнено с возможностью обеспечения специального кадра в начале каждого из сегментов.
В вариантах осуществления изобретения устройство обеспечения сегментов содержит множество кодеров, каждый из которых выполнен с возможностью кодирования, по меньшей мере частично, аудиосигнала в соответствии с одной из множества различных конфигураций кодека. В вариантах осуществления изобретения устройство обеспечения сегментов содержит память, хранящую m кодированных версий последовательности значений аудиовыборки.
В вариантах осуществления изобретения дополнительная информация имеет форму расширенной полезной нагрузки специального кадра.
В вариантах осуществления изобретения способ декодирования содержит переключение аудиодекодера из текущей конфигурации кодека в другую конфигурацию кодека, если определено, что кадр является специальным кадром, и если значения аудиовыборки специального кадра были кодированы, используя другую конфигурацию кодека.
В вариантах осуществления изобретения битовый поток кодированных аудиоданных содержит первую группу кадров, кодированных, используя первую конфигурацию кодека, и вторую группу кадров, следующую после первой группы кадров и кодированную, используя вторую конфигурацию кодека, при этом первый кадр второй группы кадров является специальным кадром.
В вариантах осуществления изобретения дополнительная информация содержит информацию о конфигурации кодека, используемой для кодирований значений аудиовыборки, ассоциированных со специальным кадром, и способ содержит определение, отличается ли конфигурация кодека, содержащаяся в дополнительной информации, от текущей конфигурации кодека, используя которую кодируются кодированные значения аудиовыборки кадров битового потока, предшествующих специальному кадру.
В вариантах осуществления изобретения способ формирования битового потока кодированных аудиоданных содержит обеспечение сегментов, ассоциированных с различными частями последовательности значений аудиовыборки и кодированных различными конфигурациями кодека, при этом первый кадр по меньшей мере одного из сегментов обеспечивается в качестве специального кадра.
Таким образом, в вариантах осуществления изобретения плавное наложение выполняется, чтобы позволить осуществлять плавное переключение между различными конфигурациями кодека. В вариантах осуществления изобретения дополнительная информация специального кадра содержит предварительные кадры, необходимые, чтобы инициализировать декодер для возможности декодирования специального кадра. Другими словами, в вариантах осуществления изобретения дополнительная информация содержит копию этих кадров кодированных значений аудиовыборки, предшествующих специальному кадру и кодированных, используя ту же самую конфигурацию кодека, что и кодированные значения аудиовыборки, представленные специальным кадром, необходимым для инициализации декодера, чтобы иметь возможность декодирования значений аудиовыборки, ассоциированных со специальным кадром.
В вариантах осуществления изобретения специальные кадры вводятся в кодированные аудиоданные с регулярными временными интервалами, то есть, периодически. В вариантах осуществления изобретения первый кадр каждого сегмента кодированных аудиоданных является специальным кадром. В вариантах осуществления аудиодекодер выполнен с возможностью декодирования специальных кадров и последующих кадров, используя конфигурацию кодека, указанную в специальном кадре, пока не появится следующий специальный кадр, указывающий другую конфигурацию кодека.
В вариантах осуществления изобретения декодер и способ декодирования выполнены с возможностью осуществления плавного наложения при переключении из одной конфигурации кодека в другую конфигурацию кодека, чтобы позволить плавное переключение между многочисленными сжатыми аудиопрезентациями.
В вариантах осуществления изобретения различные конфигурации кодека являются различными конфигурациями кодека согласно стандарту AAC (Advanced Audio Coding), то есть, различными конфигурациями кодека из семейства кодеков AAC. Варианты осуществления изобретения могут быть направлены на переключение между конфигурациями кодека из семейства кодеков AAC и конфигурациями кодека из семейства кодеков AMR (Adaptive Multiple Rate).
Таким образом, варианты осуществления изобретения позволяют немедленное воспроизведение на стороне декодера и переключение между различными конфигурациями кодека, так чтобы способ, которым предоставляется аудиоконтент, мог быть адаптирован к условиям окружающей среды, таким как канал передачи с переменной битовой скоростью. Таким образом, варианты осуществления изобретения позволяют предоставлять потребителю самое лучшее качество звука для данного состояния сети.
Варианты осуществления изобретения в дальнейшем обсуждаются со ссылкой на сопроводительные чертежи, на которых:
Фиг. 1 – изображает схематичное представление варианта осуществления устройства формирования выходных кодированных аудиоданных;
Фиг. 2 – изображает схематичное представление для объяснения варианта осуществления специального кадра;
Фиг. 3 – изображает схематичный вид различных презентаций аудиосигнала;
Фиг. 4A и Фиг. 4B – изображают схематические представления устройств формирования выходных кодированных аудиоданных;
Фиг. 5 – изображает схематичное представление аудиодекодера;
Фиг. 6 – изображает блок-схему последовательности выполнения операций варианта осуществления аудиодекодера и способа декодирования;
Фиг. 7 – изображает блок-схему последовательности выполнения операций переключения аудиодекодера между различными конфигурациями кодека;
Фиг. 8 – схему поведения декодера по стандарту AAC (Advanced Audio Coding);
Фиг. 9 – изображает переключение с первого потока 1 на второй поток 2; и
Фиг. 10 – изображает примерный элемент синтаксиса, обеспечивающий дополнительную информацию.
Обычно варианты осуществления изобретения направлены на доставку аудиоконтента, возможно, объединенную с видеодоставкой, по каналу передачи с переменной битовой скоростью передачи. Задачей может быть предоставление потребителю наилучшего качества звука для данного состояния сети. Варианты осуществления изобретения сосредоточены на внедрении семейства кодеков AAC в адаптивную среду потоковой передачи.
В вариантах осуществления изобретения, как они используются здесь, значения аудиовыборки, которые не являются значениями кодированных аудиовыборок, представленными во временной области, такими как PCM-выборки (импульсно-кодово модулированные). В вариантах осуществления изобретения термин "кодированное значение аудиовыборки" относится к значениям выборки в частотной области, полученным после кодирования значений аудиовыборок во временной области. В вариантах осуществления изобретения кодированными значениями аудиовыборки или выборками являются значения или выборки, полученные преобразованием выборок во временной области в спектральное представление, таким как MDCT (модифицированное дискретное косинусное преобразование), и кодированием результата, таким как квантование и кодирование Хаффмана. Соответственно, в варианте осуществления изобретения кодирование означает получение выборок в частотной области из выборок во временной области, а декодирование означает получение выборок во временной области из выборок в частотной области. Значения выборок (выборки), полученные декодированием кодированных аудиоданных, иногда упоминаются здесь как выходные значения выборок (выборки).
На фиг. 1 показан вариант осуществления устройства формирования выходных кодированных аудиоданных. Фиг. 1 представляет типичный сценарий адаптивной передачи аудиопотока, к которому могут быть применены варианты осуществления изобретения. Входной аудиосигнал 10 кодируется различными аудиокодерами 12, 14, 16 и 18, то есть, 1-m кодерами. 1-m кодеров могут быть выполнены с возможностью одновременного кодирования входного аудиосигнала 10. Как правило, 1-m кодеров могут быть выполнены таким образом, что может быть получен широкий диапазон битовых скоростей передачи. Кодеры формируют различные презентации, то есть, кодированные версии 22, 24, 26 и 28 входного аудиосигнала, то есть 1-m презентаций. Каждое презентация содержит множество 1-k сегментов, при этом второму сегменту первого презентации только для примера назначен ссылочный номер 30. Каждый сегмент содержит множество кадров (блоков доступа), обозначенных буквами AU и соответствующим индексом 1–n, указывающим положение кадра в соответствующем представлении. Восьмому кадру первого презентации только для примера назначен ссылочный номер 40.
Кодеры 12, 14, 16 и 18 выполнены с возможностью вставки точек 42 доступа к потоку (stream access point, SAP) в регулярные временные интервалы, которые определяют размеры сегментов. Таким образом, сегмент, такой как сегмент 30, состоит из многочисленных кадров, таких как AU5, AU6, AU7 и AU8, где первый кадр AU5 представляет SAP 42. На фиг. 1 SAP обозначаются штриховкой. Каждая из 1-m презентаций представляет сжатую аудиопрезентацию (compressed audio representation, CAR) входного аудиосигнала 10 и состоит из k таких сегментов. Переключение между различными CAR может иметь место на границах сегмента.
На стороне декодера клиент может запросить одну из презентаций, которая наилучшим образом подходит для данной ситуации, например, для данного состояния сети. Если по каким-то причинам состояние меняется, клиент должен быть способен запросить другую CAR, устройство для формирования кодированных выходных данных должно быть способно переключаться между различными CAR на каждой границе сегмента и декодер должен быть способен переключаться для декодирования другой CAR на каждой границе сегмента. Следовательно, клиент должен иметь возможность адаптировать битовую скорость передачи носителя к доступной битовой скорости передачи канала, чтобы максимизировать качество, минимизируя буфер в процессе работы ("повторная буферизация"). Если для загрузки сегментов используется протокол HTTP (Hyper Text Transfer Protocol, протокол передачи гипертекста), такая архитектура потоковой передачи может упоминаться как адаптивная потоковая передача по протоколу HTTP.
<http://dashif.org/w/2013/08/DASH-AVC-264-v2.00-hd-mca.pdf>
Текущие реализации содержат Apple HTTP Live Streaming (HLS), Microsoft Smooth Streaming, and Adobe Dynamic Streaming, которые все следуют основному принципу. Недавно, группа MPEG выпустила открытый стандарт Dynamic Adaptive Streaming over HTTP (MPEG DASH) (динамическая адаптивная потоковая передача по протоколу HTTP), смотрите "Руководства по реализации: DASH-AVC/264 Interoperability Points", . HTTP обычно использует TCP/IP (протокол управления передачей/интернет-протокол) в качестве базового сетевого протокола. Варианты осуществления изобретения могут быть применимы ко всем этим текущим разработкам.
Переключение между презентациями (кодированными версиями) должен быть насколько возможно плавным. Другими словами, во время переключения не должно быть никакого звукового искажения или щелчка. Без дополнительных мер, предусмотренных вариантами осуществления изобретения, это требование может быть выполнено только при определенных ограничениях и когда во время процесса кодирования принимаются особые меры.
На фиг. 1 соответствующий кодер, с которого начинается сегмент, обозначается соответствующей меткой, помещенной внутри круга. Дополнительно на фиг. 1 показан механизм 50 принятия решения, определяющий, какая презентация должна загружаться для каждого сегмента. Формирователь 52 формирует выходные кодированные аудиоданные 54 из выбранных сегментов, которым на фиг. 1, связывая выбранные сегменты, назначены ссылочные позиции 44, 46 и 48. Выходные кодированные аудиоданные 54 могут быть поданы на декодер 60 выполненными с возможностью декодирования выходных кодированных аудиоданных в выходной аудиосигнал 62, содержащий выходные аудиовыборки.
В варианте осуществления, показанном на фиг. 1, сегменты и, следовательно, кадры, полученные от разных кодеров, подаются на один и тот же декодер, например, декодер 60, например, AU4 от кодера 2 и AU5 от кодера 3 в примере на фиг. 1. В случае, когда для декодирования этих AU используется один и тот же экземпляр декодера, необходимо, чтобы оба кодера были совместимыми друг с другом. В частности, без каких-либо дополнительных мер этот подход не может работать, если эти два кодера относятся к совершенно разным семействам кодеков, например, AMR для кодера 2 и G.711 для кодера 3. Однако, даже когда для всех презентаций используется один и тот же кодек, особое внимание должно быть уделено ограничению процесса кодирования. Поэтому современные аудиокодеки, такие как Advanced Audio Coding (AAC) обладают гибкими алгоритмами, которые могут работать в нескольких конфигурациях, используя различные инструменты и режимы кодирования. Примерами таких инструментов кодирования в AAC являются Spectral Band Replication (SBR) (дублирование спектральной полосы) или Short Blocks (SB) (короткие блоки). Другими важными параметрами конфигурации являются частота выборки (fs, например, 48 кГц) или конфигурация канала (моно, стерео, многоканальная). Чтобы правильно декодировать кадры (AU), декодер должен знать, какие инструменты используются и как они конфигурированы (например, fs или переходная частота SBR). Поэтому обычно требуемая информация кодируется в короткой строке конфигурации и становится доступной декодеру перед декодированием. Эти параметры конфигурации могут упоминаться как конфигурация кодека. В случае AAC, эта конфигурация известна как Audio Specific Config (ASC) (специфическая аудиоконфигурация).
До сих пор, чтобы выполнить плавное переключение, было необходимо ограничить конфигурацию кодека, чтобы он был совместимым для презентаций (кодированных версий). Например, частота выборки или инструменты кодирования обычно должны быть идентичными для всех презентаций. Если между презентациями используются несовместимые конфигурации кодека, то декодер должен быть переконфигурирован. Это, в основном, означает, что старый декодер должен быть отключен, а новый декодер должен быть запущен в новой конфигурации. Однако, этот процесс переконфигурации при всех обстоятельствах не является плавным и может вызывать кратковременное искажение. Одна из причин этого состоит в том, что новый декодер не может сразу же производить правильные выборки, а требует несколько предварительных AU, чтобы постепенно создать сигнал полной силы. Это поведение при запуске типично для кодеков, имеющих состояние декодера, то есть, при этом декодирование текущего AU не является полностью независимым от декодирования предшествующих AU.
В результате такого поведения, от конфигурации кодека обычно требовалось быть постоянной для всех презентаций и единственным изменяемым параметром была битовая скорость передачи. Это например, имеет место для профиля DASH-AVC/264, как определено отраслевым форумом по DASH.
Это ограничение действительно ограничивало гибкость кодека и, соответственно, эффективность кодирования во всем диапазоне битовых скоростей передачи. Например, SBR является ценным инструментом кодирования для очень низких битовых скоростей передачи, но ограничивает качество звука при высоких битовых скоростях передачи. Следовательно, если требуется, чтобы кодированная конфигурация была постоянной, то есть, с SBR или без SBR, нужно было пойти на компромисс и иметь высокую или низкую битовую скорость передачи. Точно также, эффективность кодирования могла выиграть от изменения частоты выборки для презентаций, но для плавного переключения она должна была поддерживаться постоянной из-за вышеупомянутых ограничений.
Варианты осуществления настоящего изобретения направлены на новый подход, позволяющий плавное аудиопереключение в адаптивной среде потоковой передачи и, в частности, позволяющий плавное аудиопереключение для аудиокодеков семейства AAC в адаптивной среде потоковой передачи. В изобретении разрабатывается подход, позволяющий обозначить все недостатки, вытекающие из ограничений на конфигурацию кодека, описанных выше. Общая цель заключается в том, чтобы иметь больше гибкости в конфигурации среди презентаций (кодированных версий) в отношении инструментов кодирования или частоты выборки, так чтобы плавное переключение все еще оставалось возможным или обеспечиваемым.
Варианты осуществления изобретения основаны на обнаружении, что ограничения, объясненные выше, могут быть преодолены и может быть достигнута более высокая гибкость, если между другими кадрами кодированных аудиоданных, такими как сжатая аудиопрезентация (CAR), добавить специальный кадр, несущий дополнительную информацию в дополнение к кодированным значениям аудиовыборки, ассоциированным со специальным кадром. Сжатая аудиопрезентация может рассматриваться как часть аудиоматериала (музыки, речи, ...) после сжатия аудиокодером без потерь или с потерями, например, аудиокодером семейства AAC (AAC, HE-AAC, MPEG-D USAC...) с постоянной общей битовой скоростью передачи. В частности, в специальном кадре разрабатывается дополнительная информация, чтобы позволить немедленное воспроизведение на стороне декодера, даже в случае переключения между различными конфигурациями кодека. Таким образом, специальный кадр может рассматриваться как кадр немедленного воспроизведения (instantaneous play-out frame, IPF). IPF выполняется с возможностью компенсации задержки при запуске декодера и используется для передачи аудиоинформации о предшествующих кадрах вместе с данными существующего кадра.
Пример такого IPF 80 показан на фиг. 2. На фиг. 2 представлено большое количество кадров (блоков доступа) 40, пронумерованных от n-4 до n+3. Каждый кадр содержит ассоциированные кодированные значения аудиовыборки, то есть, кодированные значения аудиовыборки для конкретного количества значений аудиовыборки во временной области последовательности значений аудиовыборки во временном интервале, представляющих аудиосигнал, такой как входной аудиосигнал 10. Например, каждый кадр может содержать кодированные значения аудиовыборки, представляющие 1024 значений аудиовыборки во временной области, то есть, значений аудиовыборки некодированного аудиосигнала. На фиг. 2 кадр n, расположенный между предыдущим кадром n-1 и после кадра n+1, представляет собой специальный кадр или IPF 80. Специальный кадр 80 содержит дополнительную информацию 82. Дополнительная информация 82 содержит информацию 84 о конфигурации кодека, то есть, информацию о конфигурации кодека, используемого при кодировании потока данных, содержащего кадры n-4 - n+3, и, следовательно, информацию о конфигурации кодека, используемой для кодирования значений аудиовыборки, ассоциированных со специальным кадром.
В варианте осуществления, показанном на фиг. 2, задержка, вносимая аудиодекодером, предполагается равной трем кадрам, то есть, предполагается, что необходимы три так называемых предварительных кадра, чтобы создать полный сигнал во время запуска аудиодекодера. Следовательно, предполагая, что конфигурация потока (конфигурация кодека) известна декодеру, декодер может обычно начинать декодировать с кадра n-3, чтобы создать правильные выборки на кадре n. Таким образом, чтобы сделать доступной декодеру необходимую информацию, дополнительная информация 82 содержит множество кадров кодированных значений аудиовыборки, предшествующих специальному кадру 80 и кодированных, используя конфигурацию 84 кодека, указанную в дополнительной информации 82. Эта группа кадров на фиг. 2 обозначается ссылочной позицией 86. Эта группа кадров 86 необходима, чтобы инициализировать декодер до состояния, дающего возможность декодирования значений аудиовыборки, ассоциированных со специальным кадром n. Соответственно, информация кадра 86 дублируется и переносится как часть специального кадра 80. Таким образом, эта информация доступна декодеру непосредственно после переключения на поток данных, показанный на фиг. 2 в кадре n. Без этой дополнительной информации в кадре n, ни конфигурация 84 кодека, ни кадры n-3 - n-1 не могут быть доступны декодеру после переключения. Добавление этой информации к специальному кадру 80 позволяет незамедлительно инициализировать декодер и поэтому незамедлительное воспроизведение после переключения на поток данных, содержащий специальный кадр. Декодер выполнен таким образом, что такая инициализация и декодирование кадра n могут быть выполнены в пределах временного окна времени, доступного, пока выходные выборки, полученные декодированием кадра n, не будут выведены.
Во время обычного декодирования, то есть, без переключения на другую конфигурацию кодека, декодируется только кадр n, а кадры, содержащиеся в дополнительной информации, n-3 - n-1, игнорируются. Однако, после переключения на другую конфигурацию кодека, вся информация, содержащаяся в специальном кадре 80, извлекается и декодер инициализируется, основываясь на введенной конфигурации кодека и основываясь на декодировании предварительных кадров (n-3 - n-1) перед окончательным декодированием и воспроизведением текущего кадра n. Декодирование предварительных кадров происходит перед тем, как декодируется и воспроизводится текущий кадр. Предварительные кадры не воспроизводятся, но декодер выполнен с возможностью декодирования предварительных кадров в пределах временного окна, доступного перед воспроизведением текущего кадра n.
Термин "конфигурация кодека" относится к конфигурации кодека, используемой в кодировании аудиоданных или кадров аудиоданных. Таким образом, конфигурация кодирования может указывать различные используемые инструменты кодирования и режимы, причем примерными инструментами кодирования, используемыми в AAC, являются дублирование спектральной полосы (SBR) или короткие блоки (SB). Одним из параметров конфигурации может быть частота SBR плавного наложения. Другими параметрами конфигурации могут быть частота выборки или конфигурация канала. Различные конфигурации кодека отличаются одним или более из этих параметров конфигурации. В вариантах осуществления изобретения различные конфигурации кодека могут также содержать абсолютно разные кодеки, такие как AAC, AMR или G.711.
Соответственно, в примере, показанном на фиг. 2, чтобы компенсировать задержку при запуске декодера, необходимы три кадра, то есть, n-3 - n-1. Дополнительные данные кадра могут быть переданы посредством механизма расширенной полезной нагрузки внутри битового аудиопотока. Например, механизм расширенной полезной нагрузки USAC (UsacExtElement) может использоваться для переноса дополнительной информации. Кроме того, поле "config" может использоваться для передачи конфигурации 94 потока. Это может быть полезно в случае переключения битового потока битов или адаптации битовой скорости передачи. Как первый предварительный AU (n-3), так и непосредственно IPF (n) могут быть независимо декодируемым кадром. В контексте USAC, кодеры могут устанавливать для этих кадров флаг (usaclndependencyFlag) "1". Реализуя структуру кадра, как показано на фиг. 2, можно произвольно получать доступ к битовому потоку в каждом IPF и незамедлительно воспроизводить правильные PCM-выборки. Процесс декодирования IPF может содержать следующие этапы. Декодируют все "предварительные" (pre-roll) AU (n-3, ..., n-1) и отбрасывают результирующие выходные PCM-выборки. Внутренние состояния декодера и буферы после этого этапа полностью инициализируются. Декодируют кадр n и запускают регулярное воспроизведение. Продолжают декодирование как обычно, с кадра n+1. IPF может использоваться в качестве точки доступа к аудиопотоку (SAP). Непосредственное воспроизведение правильных PCM-выборок возможно в каждом IPF.
Специальные кадры, как определено здесь, могут быть реализованы в любом кодеке, который позволяет мультиплексирование и передачу вспомогательных данных или расширенных данных или элементов потока данных или подобные механизмы для передачи внешних данных аудиокодека. Варианты осуществления изобретения относятся к реализации платформы кодека USAC. Варианты осуществления изобретения могут быть реализованы в сочетании с аудиокодерами и декодерами USAC. USAC означает унифицированные речевое и аудиокодирование со ссылкой на стандарт ISO/IEC 23003-3:2012. В вариантах осуществления изобретения дополнительная информация содержится в расширенной полезной нагрузке соответствующего кадра, такого как кадр n на фиг. 2. Например, стандарт USAC позволяет добавление произвольной расширенной полезной нагрузки к кодированным аудиоданным. Присутствие расширенной полезной нагрузки может переключаться на основе от кадра к кадру. Соответственно, дополнительная информация может быть реализована как новый тип расширенной полезной нагрузки, определенный для переноса дополнительной аудиоинформации предшествующих кадров.
Как объяснялось выше, кадр 80 немедленного воспроизведения разрабатывается так, что действительные выходные выборки, ассоциированные с определенной отметкой времени (кадр n), могут формироваться немедленно, то есть, без необходимости ожидания определенного количества кадров в соответствии с задержкой аудиокодека. Другими словами, задержка аудиокодека может компенсироваться. В варианте осуществления, показанном на фиг. 2, задержка аудиокодека составляет три кадра. Кроме того, IPF разрабатывается таким образом, что он может декодироваться полностью и независимо, то есть, без дополнительного знания предыдущего аудиопотока, в этом отношении, самый ранний из числа кадров, добавляемых к специальному кадру (то есть, к кадру n-3 на фиг. 2), не является дифференцированно кодированным во времени или энтропийно кодированным относительно любого предшествующего кадра. Кроме того, специальный кадр не является дифференциально кодированным во времени или энтропийно кодированным относительно любого кадра, предшествующего самому раннему из числа кадров, содержащихся в дополнительной информации или, вообще, в любом предыдущем кадре. Другими словами, для кадров n-3 и n на фиг. 2 все зависимости от предшествующих кадров могут быть удалены, например, дифференциальное во времени кодирование определенных параметров или установка исходного состояния энтропийного кодирования. Таким образом, эти независимые кадры позволяют корректное декодирование и парсинг всех символов, но сами по себе они не достаточны, чтобы немедленно получать действительные PCM-выборки. Хотя такие независимые кадры уже доступны в обычных аудиокодеках, таких как AAC или USAC, такие аудиокодеки не обеспечивают специальные кадры, такие как кадр 80 IPF.
В вариантах осуществления изобретения специальный кадр обеспечивается в каждой точке доступа к потоку для презентаций, показанных на фиг. 1. На фиг. 1 точками доступа к потоку являются первые кадры в каждом сегменте, которые заштрихованы. Соответственно, на фиг. 1 показан конкретный вариант осуществления устройства формирования выходных кодированных аудиоданных, соответствующих настоящему изобретению. Кроме того, каждый из 1-m кодеров, показанных на фиг. 1, представляет вариант осуществления аудиокодера, соответствующего изобретению. Согласно фиг. 1, кодеры 12-18 представляют устройства обеспечения, выполненные с возможностью предоставления сегментов, ассоциированных с различными частями входного аудиосигнала 10 и кодированных кодеками различной конфигурации. В этом отношении, каждый из кодеров 12-18 использует отличающуюся конфигурацию кодека. Блок 50 принятия решений выполнен с возможностью определения для каждого сегмента, какую презентацию загружать. Таким образом, блок 50 принятия решений выполнен с возможностью выбора конфигурации кодека (ассоциированной с соответствующей презентацией) для каждого сегмента, основываясь на управляющем сигнале. Например, управляющий сигнал может быть принят от клиента, запрашивающего презентацию, которая наилучшим образом подходит для данной ситуации.
Основываясь на решении блока 50 принятия решений, блок 52 формирует выходные аудиоданные 54, располагая сегменты один за другим, так что сегмент 46 (сегмент 2 презентации 3) следует после сегмента 44 (сегмент 1 презентации 2). Таким образом, специальный кадр AU5 в начале сегмента 2 позволяет переключение на презентацию 3 и немедленное воспроизведение на границе между сегментами 44 и 46 на стороне декодера.
Таким образом, в варианте осуществления, показанном на фиг. 1, устройство обеспечения (содержащее 1-m кодеров) выполнено с возможностью обеспечения m кодированных версий аудиовхода 10, где m>2, причем m кодированных версий (презентаций) кодируются, используя различные конфигурации кодека, при этом каждая кодированная версия содержит множество сегментов, представляющих множество частей последовательности значений аудиовыборки, и при этом каждый из сегментов содержит специальный кадр в его начале.
В других вариантах осуществления изобретения различные презентации одного и того же аудиовхода, такие как презентации 22-28 на фиг. 1, могут храниться в памяти и к ним может быть получен доступ, если пользователь запрашивает соответствующий медийный контент.
Экземпляры 1-m кодера, показанные на фиг. 1, могут создавать различную задержку кодера в зависимости от конфигурации кодера и/или активации инструментов в экземплярах кодера. В таком случае могут быть приняты меры, чтобы гарантировать, что задержки кодера компенсируются для достижения выравнивания по времени m выходных потоков, то есть, m презентаций. Это может быть реализовано, например, добавляя некоторое количество запаздывающих нулевых выборок к входному сигналу кодера, чтобы компенсировать различные задержки кодера. Другими словами, сегменты в различных презентациях должны иметь одну и ту же длительность, чтобы позволить плавное переключение между презентациями на границах сегмента. Теоретические длительности сегментов зависят от используемых частот выборки и размеров кадров. На фиг. 3 показан пример возможной вставки IPF в презентации с различным кадрированием, может быть, за счет различных частот выборки и/или размеров кадров. Нулевые выборки могут добавляться к более коротким сегментам в соответствующем положении, так что все специальные кадры выравниваются во времени, как можно видеть на фиг. 3.
На фиг. 4A схематично представлено устройство 90 формирования выходных кодированных аудиоданных 102. Устройство 90 содержит устройство 92 обеспечения, выполненное с возможностью обеспечения по меньшей мере одного кадра 80 из множества кадров 40 в качестве специального кадра, как он определяется здесь. В вариантах осуществления изобретения устройство 92 обеспечения может быть реализовано как часть кодера для кодирования значений аудиовыборки, которое обеспечивает кадры 40 и добавляет дополнительную информацию по меньшей мере к одному из кадров, чтобы сформировать специальный кадр. Например, устройство 92 обеспечения может быть выполнено с возможностью добавления дополнительной информации в качестве расширенной полезной нагрузки одного из кадров 40, чтобы сформировать специальный кадр 80. Кадры 40, 80, представляющие битовый поток кодированных аудиоданных 102, выводятся через устройство 112 вывода.
На фиг. 4B схематично показано устройство 100 формирования выходных кодированных аудиоданных 102. Устройство содержит устройство 104 обеспечения, выполненное с возможностью обеспечения сегментов 106, 108, ассоциированных с различными частями последовательности значений аудиовыборки. Первый кадр по меньшей мере одного из сегментов является специальным кадром, как объяснено выше. Формирователь 110 выполнен с возможностью формирования выходных аудиоданных, располагая по меньшей мере один из сегментов 106, 108 после других сегментов 106, 108. Формирователь 110 подает выходные аудиоданные на устройство 112 вывода, выполненное с возможностью вывода кодированных аудиоданных 102.
На фиг. 5 схематично показан вариант осуществления аудиодекодера 60 для декодирования входных аудиоданных 122. Входные аудиоданные могут быть выходным сигналом блока 52, показанного на фиг. 1. Аудиодекодер 60 содержит устройство 130 определения, устройство 132 инициализации и ядро 134 декодера. Устройство 130 определения выполнено с возможностью определения, является ли кадр входных аудиоданных 122 специальным кадром. Устройство 132 инициализации выполнено с возможностью инициализации ядра 134 декодера, если кадр является специальным кадром и инициализация необходима или желательна. Инициализация содержит декодирование предшествующих кадров, содержащихся в дополнительной информации. Ядро 134 декодера выполнено с возможностью декодирования кадров кодированных значений аудиовыборки, используя конфигурацию кодека, с помощью которого происходит инициализация.
В случае, когда кадр не является специальным кадром, он подается непосредственно на ядро 134 декодера, что показано стрелкой 136. В случае, когда кадр является специальным кадром и инициализация ядра 134 декодера не требуется, устройство 130 определения может отбросить дополнительную информацию и подать на ядро 134 декодера только кодированные значения аудиовыборки специального кадра (без кадров в дополнительной информации). Устройство 130 определения может быть выполнено с возможностью определения, является ли необходимой инициализация ядра 134 декодера, основываясь на информации, содержащейся в дополнительной информации или основываясь на внешней информации. Информация, содержащаяся в дополнительной информации, может быть информацией о конфигурации кодека, используемой для кодирования специального кадра, при этом устройство определения может определить, что инициализация необходима, если эта информация указывает, что предыдущие кадры кодированы, используя другую конфигурацию кодека, чем специальный кадр. Внешняя информация может указать, что ядро 134 декодера должно быть инициализировано или повторно инициализировано после приема следующего специального кадра.
В вариантах осуществления изобретения декодер 60 выполнен с возможностью инициирования ядра декодера 134 в одной из различных конфигураций кодека. Например, различные экземпляры программного ядра декодера могут инициироваться, используя различные конфигурации кодека, то есть, различные параметры конфигурации кодека, как объяснялось выше для вариантов осуществления изобретения, инициализация декодера (ядра) может содержать закрывание текущего экземпляра декодера и открывание нового экземпляра декодера, используя параметры конфигурации кодека, содержащиеся в дополнительной информации (то есть, внутри принятого битового потока) или подаваемые извне, то есть, внешние по отношению к принятому битовому потоку. Декодер 60 может переключаться на различные конфигурации кодека в зависимости от конфигураций кодека, используемых для кодирования соответствующих сегментов принятых кодированных аудиоданных.
Декодер 60 может быть выполнен с возможностью переключения из текущей конфигурации кодека, то есть, конфигурации кодека аудиодекодера, предшествующей обнаружению специального кадра, на другую конфигурацию кодека, если дополнительная информация указывает конфигурацию кодека, отличающуюся от текущей конфигурации кодека.
Дополнительные подробности поведения варианта осуществления аудиодекодера типа декодера AAC, объясняются со ссылкой на фиг. 6-8. На фиг. 8 схематично показано поведение декодера AAC. Ссылка делается на стандарт DTR ISO/IEC 14496-24, "Audio and Systems Interaction".
На фиг. 8 показано поведение декодера для множества состояний, первого состояния 200, соответствующего одному или более предварительным кадрам, одного состояния, ассоциированного с каждым из кадров AU1, AU2 и AU3, и состояния 202 "сброса".
Чтобы сформировать действующие выходные выборки для AU1, один или более предварительных кадров и кадр AU1 должны быть вместе декодированы. Выборки, сформированные предварительным кадром(-ами), отбрасываются, то есть, используются только для инициализации декодера и не воспроизводятся. Однако, декодирование предварительного кадра(-ов) является обязательным, чтобы установить внутренние состояния декодера. В вариантах осуществления изобретения дополнительная информация специальных кадров содержит предварительный кадр(-ы). Таким образом, декодер имеет возможность декодировать предварительный кадр(-ы), чтобы установить внутренние состояния декодера так, чтобы специальный кадр мог декодироваться и могло иметь место немедленное воспроизведение действующих выходных выборок специального кадра. Фактическое количество "предварительных" AU (кадров) зависит от задержки запуска декодера, в примере, показанном на фиг. 8, это один AU.
Обычно для воспроизведения файла, немедленное воспроизведение, как оно описано со ссылкой на фиг. 8, реализуется на системном уровне. На сегодня это имеет место только при запуске декодера. Специальный кадр (IPF), однако, всегда несет достаточно информации, чтобы полностью инициализировать внутренние состояния декодера и заполнить внутренние буферы. Таким образом, вставка специальных кадров позволяет немедленное воспроизведение в случайных положениях потока.
Состояние 202 сброса на фиг. 8 показывает поведение декодера, когда сброс выполняется после декодирования последнего кадра AU3. Сброс означает подачу на декодер гипотетического нулевого кадра, то есть, гипотетического кадра, состоящего из всех "цифровых нулевых" входных выборок. Благодаря сложению при перекрытии семейства AAC, сброс приводит в результате к действительному выходному результату, который достигается, не захватывая новый входной кадр. Это возможно, поскольку последний кадр AU3 содержит информацию о прогнозе для выходных значений выборки, которые могут быть получены, декодируя следующий кадр после кадра AU3, так как кадры накладываются на большое количество значений выборки во временной области. Обычно первая половина кадра накладывается на предыдущий кадр, а вторая половина кадра накладывается на следующий кадр. Таким образом, вторая половина выходных значений выборки, полученных при декодировании первого кадра, содержит информацию о первой половине выходных значений выборки, полученных при декодировании второго кадра после первого кадра. Эта характеристика может использоваться при реализации плавного наложения, как будет объяснено здесь далее.
Дополнительные подробности варианта осуществления аудиодекодера и способа декодирования входных аудиоданных теперь описываются со ссылкой на фиг. 6, где аудиодекодер выполнен с возможность осуществления способа, как описано со ссылкой на фиг. 6 и 7. Процесс начинается на этапе 300. На этапе 302 декодер сканирует входящие кадры (AU) на наличие IPF и определяет, является ли входящий кадр кадром IPF. Если входящий кадр не является кадром IPF, на этапе 304 кадр декодируется и на этапе 306 процесс переходит к следующему кадру. Если нет никакого следующего кадра, процесс заканчивается. Как указано на этапе 308, декодированные PCM-выборки выводятся и их может предоставлять выходной буфер. Если на этапе 302 определено, что кадр является кадром IPF, на этапе 310 оценивается конфигурация кодека. Например, оценивается поле "config", показанное на фиг. 2. На этапе 312 делается определение в отношении того, изменилась ли конфигурация кодека (конфигурация потока). Если конфигурация кодека не изменилась, то есть, если дополнительная информация указывает конфигурацию кодека, идентичную текущей конфигурации кодека, дополнительная информация, такая как расширенная полезная нагрузка, пропускается и процесс переходит к этапу 304, где декодирование продолжается обычным образом.
Если конфигурация кодека изменилась, применяются следующие этапы. На этапе 314 декодер сбрасывается. На этапе 316 выходные выборки, полученные в результате сброса декодера, сохраняются в буфере сброса. Эти выходные выборки (или по меньшей мере, часть этих выходных выборок) являются первым входным сигналом в процесс плавного наложения, этап 318. Декодер затем повторно инициализируется, используя новую конфигурацию кодека, указанную дополнительной информацией, такой как поле "config" на фиг. 2, и используя предшествующие кадры, содержащиеся в специальном кадре. После повторной инициализации декодер способен декодировать специальный кадр, то есть, кодированные значения аудиовыборки, ассоциированные со специальным кадром. На этапе 322 специальный кадр декодируется. Выходные выборки (PCM-выборки) полученные декодированием специального кадра, сохраняются как второй входной сигнал в процесс 318 плавного наложения. Например, соответствующие выходные PCM-выборки могут быть сохранены в буфере на этапе 324, который может упоминаться как буфер IPF. В процессе 318 плавного наложения плавное наложение вычисляется, основываясь на этих двух входных сигналах от буфера сброса и от буфера IPF. Результат плавного наложения выводится в качестве выходных PCM-выборок на этапе 308. После этого, процесс переходит к следующему этапу 306 и процесс повторяется для следующего кадра. В случае, если существующий кадр является последним кадром, процесс заканчивается.
Дополнительные подробности этих этапов, выполняемых после изменения конфигурации, которое было обнаружено на этапе 312, теперь объясняются со ссылкой на фиг. 7. Конфигурация кодека извлекается из дополнительной информации IPF на этапе 330 и предоставляется для повторной инициализации декодера на этапе 332. Перед повторной инициализацией декодера на этапе 314 декодер сбрасывается и результирующие выходные выборки сохраняются в буфере сброса на этапе 316. Повторная инициализация декодера может содержать закрытие текущего экземпляра декодера и открытие нового экземпляра декодера с новой конфигурацией. При повторном открытии нового экземпляра декодера используется информация о конфигурации кодека, содержащаяся в кадре IPF. После открытия нового экземпляра декодера он инициализируется, декодируя предварительные кадры, содержащиеся в IPF. Количество предварительных кадров, содержащихся в IPF, предполагается равным m, как указано на этапе 334. определяется является ли m>0,336. Если m>0, предварительный кадр n-m декодируется на этапе 338, где n указывает IPF. Полученные выходные PCM-выборки отбрасываются на этапе 340. m уменьшается на единицу и процесс переходит к этапу 336. Повторяя этапы 336-342 для всех предварительных кадров, содержащихся в IPF, процесс заполнения состояний декодера выполняется на этапе 344 для декодера после повторного открытия этого декодера. Если все предварительные кадры декодированы, процесс переходит к этапу 332, где IPF декодируется. Результирующие PCM-выборки на этапе 342 подаются в PCM-буфер. Плавное наложение на этапе 318 выполняется, основываясь на выходных сигналах PCM-буферов 316 и 324 и выходной результат процесса плавного наложения на этапе 318 подается для вывода из PCM-буфера на этапе 308.
В варианте осуществления, описанном выше, повторная инициализация декодера содержит закрытие текущего экземпляра декодера и открытие нового экземпляра декодера. В альтернативных вариантах осуществления декодер может содержать множество экземпляров декодера, действующих параллельно, так чтобы повторная инициализация декодера могла содержать переключение между различными экземплярами декодера. Кроме того, повторная инициализация декодера содержит заполнение состояний декодера, декодируя предварительные кадры, содержащиеся в дополнительной информации специального кадра.
Как объяснялось выше, используя преимущества состояний внутренней памяти и буферов (сложение с наложением, состояния фильтра) на декодере AAC, можно получить выходные выборки без пропускания нового входного сигнала процесса сброса. Выходной сигнал сброса близко напоминает "исходный сигнал", по меньшей мере, для части выходных значений выборки, в частности, первой его части, смотрите этап 202 на фиг. 8. Выходные значения выборки, полученные посредством процесса сбрасывания, используются для процесса плавного наложения, подробно описанного ниже.
Как можно видеть на этапе 202 на фиг. 8, энергия в результирующем буфере сброса будет уменьшаться во времени в зависимости от окна преобразования и действующих инструментов текущей конфигурации кодека. Таким образом, плавное наложение может применяться в первой части буфера сброса, где выходной сигнал может рассматриваться как обладающий почти полной энергией. Использование того факта, что современные аудиокодеки могут сбрасываться, чтобы получить действительные выборки для последовательного плавного наложения, значительно помогает при получении значений плавного переключения. Соответственно, в вариантах осуществления изобретения, устройство плавного наложения выполняется с возможностью плавного наложения между выходными значениями, полученными в процессе сброса текущей конфигурации кодека, и выходными значениями выборки, полученными декодированием специального кадра, используя конфигурацию кодека, указанную в дополнительной информации.
Далее описывается конкретный вариант осуществления процесса плавного наложения. Плавное наложение применяется к аудиосигналам как описано выше, чтобы избежать звуковых артефактов во время переключения CAR. Типичным артефактом является падение энергии выходного сигнала. Как объяснялось выше, энергия сброшенного сигнала будет уменьшаться в зависимости от конфигурации. Таким образом, длительность плавного наложения должна выбираться с осторожностью в зависимости от конфигурации, чтобы избежать артефактов. Если окно плавного наложения слишком короткое, то процесс переключения может вызывать звуковые артефакты за счет разницы в форме аудиосигнала. Если окно плавного наложения слишком длинное, то сброшенные аудиовыборки уже потеряли энергию и будут вызывать спад энергии выходного сигнала. Для конфигурации кодека AAC, используя короткие окна преобразования из 256 выборок, может применяться линейное плавное наложение с длительностью n=128 выборок (на канал). В других вариантах осуществления может применяться линейное плавное наложение с длительностью, например, 64 выборки (на канал).
Ниже описывается пример процесса линейного плавного наложения, использующего 128 выборок:
f
f0
f127
d
d0
,
127
dn
Процесс плавного наложения может использовать первые 128 выборок буфера сброса. Буфер сброса организован оконным, умножая первые 128 выборок буфера сброса S = S..., S на , где i - индекс текущей выборки. Результат может быть сохранен во внутреннем буфере устройства плавного наложения, то есть, . Кроме того, буфер IPF для Sd является оконным, где первые 128 выходных декодированных выборок IPF умножаются на коэффициент , где i - индекс текущей выборки. Результат может быть сохранен во внутреннем буфере устройства плавного наложения, то есть, S, = S ..., S⋅1, ..., S.
0
d'0
f'0
d'127
f'
d'128
d'n
Первые 128 выборок внутренних буферов складываются: S = S + S, ... , S + SS,. . ., S и результирующие значения выводятся на выходной PCM-буфер выборок на этапе 308.
Таким образом достигается линейное плавное микширование для первых 128 выходных значений выборки буфера сброса и первых 128 значениях выборки буфера IPF.
Обычно устройство плавного наложения может быть выполнено с возможностью осуществления плавного наложения между множеством выходных значений выборки, полученных, используя текущую конфигурацию кодека, и множеством выходных значений выборки, полученных декодированием кодированных значений аудиовыборки, ассоциированных со специальным кадром. Обычно, в аудиокодеках, таких как кодеки семейства AAC и кодеки семейства AMR, кодированные значения аудиовыборки предыдущего кадра неявно содержат информацию об аудиосигнале, кодированную в следующем кадре. Это свойство может быть использовано при реализации плавного наложения, когда выполняется переключение между различными конфигурациями кодека. Например, если текущая конфигурация кодека является конфигурацией кодека AMR, выходные значения выборки, используемые при плавном наложении, могут быть получены, основываясь на нулевой импульсной характеристике, то есть, основываясь на характеристике, полученной при применении нулевого кадра к ядру декодера после последнего кадра текущей конфигурации кодека. В вариантах осуществления изобретения дополнительные механизмы, используемые при аудиокодировании и декодировании, могут использоваться при плавном наложении. Например, внутренние фильтры, используемые в SBR (Spectral Band Replication), содержат задержки и, следовательно, длительные времена установления, которые могут быть использованы при плавном наложении. Таким образом, варианты осуществления изобретения не ограничиваются каким-либо конкретным плавным наложением, чтобы достигнуть плавного переключения между конфигурациями кодека. Например, устройство плавного наложения может быть выполнено с возможностью применения увеличивающихся весов к первой группе выходных значений выборки специального кадра и применения уменьшающихся весов ко множеству выходным значений выборки, полученных, основываясь на декодировании, использующем текущую конфигурацию кодека, причем веса могут увеличиваться и уменьшаться линейно или могут увеличиваться и уменьшаться нелинейным способом.
В вариантах осуществления изобретения инициализация декодера содержит инициализацию внутренних состояния декодера и буферов, используя дополнительную информацию специального кадра(-ов). В вариантах осуществления изобретения инициализация декодера имеет место при изменении конфигурации кодека. В других вариантах осуществления изобретения специальный кадр может использоваться для инициализации декодера без изменения конфигурации кодека. Например, в вариантах осуществления изобретения, декодер может быть выполнен с возможностью немедленного воспроизведения, причем внутренние состояния и буферы декодера заполняются без изменения конфигурации кодека, где может быть выполнено плавное наложение с нулевыми выборками. Таким образом, возможно немедленное воспроизведение действительных выборок. В других вариантах осуществления может быть реализована функция ускоренной перемотки, причем специальный кадр может декодироваться в заданных интервалах в зависимости от желаемой скорости ускоренной перемотки. В вариантах осуществления изобретения решение в отношении того, обязательна ли или желательна инициализация, используя специальный кадр, может быть принято, основываясь на внешнем управляющем сигнале, подаваемом на аудиодекодер.
Как объяснялось выше, специальный кадр (такой как IPF 80, показанный на фиг. 2) может использоваться для адаптации битовой скорости передачи и, соответственно, переключения битового потока. При этом могут применяться следующие ограничения: все презентации (например, различные битовые скорости, различное использование инструментов кодирования) являются выровненными по времени, IPF вставляются в каждую презентацию, IPF синхронизируются и поле IPF "config" на фиг. 2 содержит конфигурацию потока, то есть, активацию инструментов и т. д. На фиг. 9 показан пример адаптации битовой скорости передачи посредством переключения битового потока в адаптивной среде потоковой передачи. Логика управления (такая как система, показанная на фиг. 1), которую иногда вызывают платформой, делит аудиоданные на сегменты. Сегмент содержит многочисленные AU. Конфигурация аудиопотока может меняться на каждой границе сегмента. Аудиодекодер не знает о сегментации, логика управления предоставляет ему только очевидные AU. Чтобы разрешить переключение битового аудиопотока на каждой границе сегмента, первый AU каждого сегмента может быть кадром IPF, как объяснялось выше. На фиг. 9 граница 400 сегмента обозначена пунктирной линией. В сценарии, показанном на фиг. 9, на аудиодекодер подаются AU 40 (AU1-AU3) "потока 1". Логика управления принимает решение переключиться на "поток 2" на следующей границе сегмента, то есть, на границе 400. После декодирования AU3 "потока 1" логика управления может передать AU4 "потока 2" аудиодекодеру без дополнительного уведомления. AU4 является специальным кадром (IPF) и поэтому после переключения на поток 2 может иметь место немедленное воспроизведение.
Обращаясь к сценарию, показанному на фиг. 9, переключение может происходить следующим образом: для AU1-AU3 потока 1 никакой IPF не обнаруживается и процесс декодирования выполняется как обычно. IPF обнаруживается для AU4 потока 2. Дополнительно обнаруживается изменение конфигурации потока. Аудиодекодер на этапе 402 на фиг. 9 инициализирует процесс сброса. Результирующие выходные PCM-выборки сохраняются во временном буфере (буфере сброса) для последующего использования. Аудиодекодер повторно инициализируется с конфигурацией потока, предоставленной кадром IPF. Полезная нагрузка IPF ("предварительная") декодируется. Результирующие выходные PCM-выборки отбрасываются. В этот момент полностью инициализируются внутренние состояния декодера и буферов. AU4 декодируется. Чтобы избежать артефактов переключения, применяется плавное наложение. PCM-выборки, хранящиеся в буфере сброса, постепенно удаляются, тогда как PCM-выборки, полученные в результате декодирования AU4 и хранящиеся в выходном PCM-буфере, плавно появляются. Результат плавного наложения воспроизводится.
Соответственно, IPF может использоваться, чтобы позволить переключение сжатых аудиопрезентаций. Декодер может принимать простые AU в качестве входных кадров и, таким образом, никакая дополнительная логика управления не требуется.
Далее описываются подробности конкретного варианта осуществления в контексте MPEG-D USA, где синтаксис битового потока может быть следующим:
Элемент синтаксиса AudioPreRoll() используется для передачи аудиоинформации предшествующих кадров вместе с данными настоящего кадра. Дополнительные аудиоданные могут использоваться для компенсации задержки запуска декодера (предварительной), позволяя, таким образом, произвольный доступ в точках доступа к потоку, которые позволяют использовать AudioPreRoll(). UsacExtElement() может использоваться для передачи AudioPreRoll(). С этой целью должен использоваться новый идентификатор полезной нагрузки:
Таблица 1
Идентификатор полезной нагрузки для AudioPreRoll()
Название
Значение
ID_EXTJELE_AUDIOPREROLL
4
Синтаксис AudioPreRoll() показан на фиг. 10 и объясняется ниже:
configLen
Размер элемента синтаксиса конфигурации в байтах.
Config()
Элемент синтаксиса конфигурации декодера. В контексте MPEG-D USAC, это UsacConfig(), как определено в ISO/IEC 23003-3:2012. Поле Config() может передаваться, чтобы иметь возможность реагировать на изменения в аудио конфигурации (переключение потоков)
numPreRollFrames
Количество предварительных блоков доступа (AU), переданных в качестве предварительных аудиоданных. Разумное количество AU зависит от задержки при запуске декодера.
auLen
Длина AU в байтах.
AccessUnit()
Предварительный кадр(-ы) AU.
Предварительные данные, переносимые в расширенном элементе, могут передаваться "вне полосы", то есть, требования к буферу могут не удовлетворяться.
Чтобы использовать AudioPreRoll() как для произвольного доступа, так и для адаптации битовой скорости передачи, применяются следующие ограничения:
- Первый элемент каждого кадра является расширенным элементом (UsacExtElement) типа ID_EXT_ELE_AUDIOPREROLL.
- Соответствующий UsacExtElement() должен устанавливаться в соответствии с таблицей 2.
- Следовательно, если предварительные данные присутствуют, то этот UsacFrame() должен начинаться со следующей битовой последовательности:
"1": usaclndependencyFlag.
"1": usacExtElementPresent (относится к предварительному расширенному аудиоэлементу).
"0": usacExtElementUseDefaultLength (относится к предварительному расширенному аудиоэлементу).
Если никакие предварительные данные не передаются, то расширенная полезная нагрузка присутствовать не будет (usacExtElementPresent = 0).
Предварительные кадры с индексом "0" и "numPreRollFrames-1" должны быть независимо декодируемыми, то есть, usacindependencyFlag должен быть установлен на "1".
Таблица 2
Установка UsacExtElement() для AudioPreRoll()
usacExtElementType
ID_EXT_ELE_AUDIOPREROLL
usacExtElementConfigLength
0
usacExtElementDefaultLengthPresent
0
usacExtElementPayloadFrag
0
Произвольный доступ и немедленное воспроизведение возможны в каждом кадре, который использует описанную структуру AudioPreRoll(). Нижеследующий псевдокод описывает процесс декодирования:
Адаптация битовой скорости передачи может быть использована при переключении между различными кодированными презентациями одного и того же аудиоконтента. С этой целью может использоваться описанная структура AudioPreRoll(). Процесс декодирования в случае адаптации битовой скорости передачи описывается следующим псевдокодом:
Хотя некоторые варианты были описаны в контексте устройства, ясно, что эти аспекты также представляют описание соответствующего способа, где блок или устройство соответствуют этапу способа или признаку этапа способа. Аналогично, варианты, описанные в контексте этапа способа, также представляют описание соответствующего блока или элемента или признака соответствующего устройства. Некоторые или все этапы способа могут быть выполнены (или использовать) аппаратное обеспечение, как например, микропроцессор, программируемый компьютер или электронную схему. В некоторых вариантах осуществления один или более самых важных этапов способа могут выполняться таким устройством. В вариантах осуществления изобретения описанные здесь способы реализуются процессором или компьютером.
В зависимости от определенных требований к реализации, варианты осуществления изобретения могут быть реализованы как аппаратное обеспечение или как программное обеспечение. Реализация может выполняться, используя долговременный носитель для хранения данных, такой как цифровой носитель данных, например гибкий диск, DVD, Blu-Ray, CD, ROM, PROM и EPROM, EEPROM или флэш-память, на которых хранятся электронно считываемые управляющие сигналы, которые действуют совместно (или способны действовать совместно) с программируемой компьютерной системой так, что соответствующий способ выполняется. Поэтому цифровой носитель данных может считываться компьютером.
Некоторые варианты осуществления, соответствующие изобретению, содержат носитель данных, имеющий электронно считываемый управляющие сигналы, которые способны сотрудничать с программируемой компьютерной системой, так что один из описанных здесь способов выполняется.
Обычно варианты осуществления данного изобретения могут быть реализованы как компьютерный программный продукт с управляющей программой, причем управляющая программа управляет выполнением одного из способов, когда компьютерный программный работает на компьютере. Управляющая программа может, например, храниться на машиночитаемом носителе.
Другие варианты осуществления содержат компьютерную программу для выполнения одного из описанных здесь способов, хранящихся на машиночитаемом носителе.
Другими словами, вариант осуществления способа изобретения является поэтому компьютерной программой, имеющей управляющую программу для выполнения одного из описанных здесь способов, когда компьютерная программа работает на компьютере.
Дополнительный вариант осуществления способа изобретения является поэтому носителем данных (или цифровым носителем данных или компьютерно-читаемым носителем), содержащим записанную на нем компьютерную программу для выполнения одного из описанных здесь способов. Носитель данных, цифровой носитель данных или записанный носитель являются обычно физическими и/или долговременными.
Дополнительный вариант осуществления способа изобретения является, следовательно, потоком данных или последовательностью сигналов, представляющих компьютерную программу для выполнения одного из описанных здесь способов. Поток данных или последовательность сигналов могут, например, быть выполнены с возможностью передачи через соединение для передачи данных, например, через Интернет.
Дополнительный вариант осуществления содержит средство обработки, например, компьютер или программируемое логическое устройство, запрограммированное с возможностью выполнения или адаптированное для выполнения одного из описанных здесь способов.
Дополнительный вариант осуществления содержит компьютер с установленной на нем компьютерной программой для выполнения одного из описанных здесь способов.
Дополнительный вариант осуществления, соответствующий изобретению, содержит устройство или систему, выполненную с возможностью передачи приемнику (например, электронно или оптически) компьютерной программы для выполнения одного из описанных здесь способов. Приемник может быть, например, компьютером, мобильным устройством, устройством памяти и т.п. Устройство или система могут, например, содержать файловый сервер для передачи приемнику компьютерной программы.
В некоторых вариантах осуществления может использоваться программируемое логическое устройство (например, программируемая логическая интегральная схема), чтобы выполнять некоторые или все функциональные возможности описанных здесь способов. В некоторых вариантах осуществления программируемая логическая интегральная схема может действовать совместно с микропроцессором, чтобы выполнять один из описанных здесь способов. Обычно способы предпочтительно выполняются любым аппаратным устройством.
Описанные выше варианты осуществления являются просто иллюстрацией принципов настоящего изобретения. Следует понимать, что модификации и вариации построений и подробности, описанные здесь, должны быть очевидны для других специалистов в данной области техники. Это, следовательно, является целью, которая должна ограничиваться только объемом последующей патентной формулы изобретения, а не конкретными деталями, представленными здесь в описании вариантов осуществления.