ДЕКОДЕР LDPC-КОДОВ ДЛЯ ЦИФРОВОГО ТЕЛЕВИДЕНИЯ
54
УДК 621.391.15
С. И. ЕГОРОВ, В. О. АВДЕЕВ, Э. И. ВАТУТИН, В. С. ПАНИЩЕВ
ДЕКОДЕР LDPC-КОДОВ ДЛЯ ЦИФРОВОГО ТЕЛЕВИДЕНИЯ
Предложена структурно-функциональная организация декодера LDPC-кодов для приемников цифрового телевидения второго поколения, обеспечивающая малые реализационные потери исправляющей способности и уменьшенную аппаратную сложность реализации. Ключевые слова: DVB-S2, LDPC-код, итеративное декодирование, декодер.
Качество и стоимость телевизионных приемников систем цифрового телевидения второго поколения (DVB-S2 и DVB-T2 [1]) во многом зависят от важного компонента: декодера помехоустойчивых LDPC-кодов. Это делает актуальной задачу разработки декодеров длинных LDPC-кодов с невысокой сложностью аппаратной реализации и высокой исправляющей способностью. Вариант такого декодера предлагается в настоящей работе.
ИЗВ. ВУЗОВ. ПРИБОРОСТРОЕНИЕ. 2013. Т. 56, № 6
Декодер LDPC-кодов для цифрового телевидения
55
LDPC-код — это линейный блоковый код длины n с k информационными и m проверочными символами, задаваемый проверочной матрицей H=[hij]mxn, определяющей вид двудольного графа Таннера [2].
Граф Таннера (рис. 1) имеет два множества вершин. Одно состоит из m проверочных
вершин {с1,с2,..., сm}, соответствующих m строкам матрицы H, второе — из n кодовых вер-
шин {b1,b2,...,bn} , соответствующих n столбцам матрицы H. Кодовая вершина bj соединяется
ребром с проверочной вершиной ci в том случае, если в ячейке hij матрицы H находится единица.
c1 c2 c3 c4 c5 c6
++++++
Степень r
Фаза 2
Степень d
Фаза 1
b1 b2 b3 b4
b5 b6 b7 b8 b9
Рис. 1
В стандарте DVD-S2 (DVB-T2) [1] используются два множества структурированных
LDPC-кодов: „длинные“ коды (normal) с длиной слова 64 800 бит и „короткие“ коды (short) с
длиной слова 16 200 бит. Эти множества содержат коды с различными значениями r: {1/4,
1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10 (9/10 — только для длинных кодов)}.
Предлагаемый декодер реализует итеративный алгоритм декодирования Message Passing
(MP) [3], согласно ему, верные значения битов кодового слова определяются в результате
многократного обмена сообщениями между вершинами графа Таннера. Всего выполняется n
итераций (см. рис. 2, а). Каждая итерация алгоритма включает две фазы: в первой обновля-
ются сообщения проверочных вершин на основе анализа сообщений кодовых вершин; во вто-
рой — сообщения кодовых вершин на основе анализа сообщений проверочных вершин.
Сообщения кодовых вершин вычисляются по формуле:
∑vn→ki = un + w j→n , j≠i
где vn→ki — сообщение от n-й кодовой к ki-й проверочной вершине; wj→n — сообщение от
j-й проверочной вершины к n-й кодовой; un — логарифмическое отношение правдоподобия (LLR) n-го бита, принятого из канала кодового слова.
Генерация сообщений проверочных вершин выполняется согласно формуле
wk→ni = g(vn1→k , vn2→k ,..., vni−1→k , vni+1→k ,..., vndc →k ) ,
где
{ } ( ) ( )g (a,b) = sign (a)sign (b) min ( a , b ) + LUTg (a,b) , LUTg (a,b) = ln 1+ e− a+b − ln 1+ e− a−b .
Предлагаемый декодер LDPC-кодов обрабатывает сообщения параллельно группами (строками) с использованием техники двух проходов: в 1-м сообщения из памяти поступают в процессорные блоки, где рассчитываются и накапливаются промежуточные значения; во время 2-го одновременно рассчитываются и записываются в память встречные (относительно соответствующих ребер графа Таннера) выходные сообщения.
Организация обработки сообщений декодером представлена на рис. 2, б [4]: Z — степень распараллеливания процедуры обработки сообщений (число процессорных блоков, число столбцов памяти сообщений), для LDPC-кодов, используемых в стандарте DVB-S2,
ИЗВ. ВУЗОВ. ПРИБОРОСТРОЕНИЕ. 2013. Т. 56, № 6
56 С. И. Егоров, В. О. Авдеев, Э. И. Ватутин, В. С. Панищев
Z = 360; q — параметр кода, q=m/Z; u[i] — логарифмические отношения правдоподобия
(LLR) битов принятого из канала кодового слова, LDPC_out[i] — твердые решения относи-
тельно битов кодового слова.
а)
Начало
б)
Память сообщений (RAM)
Z
Кол -во итераций
n_iter
0
...
Очистка памяти RAM
0
1
q-1 2q-1 q 2q
(Z-1)q-1 (Z-1)q
i_iter=0
Нет i_iter
УДК 621.391.15
С. И. ЕГОРОВ, В. О. АВДЕЕВ, Э. И. ВАТУТИН, В. С. ПАНИЩЕВ
ДЕКОДЕР LDPC-КОДОВ ДЛЯ ЦИФРОВОГО ТЕЛЕВИДЕНИЯ
Предложена структурно-функциональная организация декодера LDPC-кодов для приемников цифрового телевидения второго поколения, обеспечивающая малые реализационные потери исправляющей способности и уменьшенную аппаратную сложность реализации. Ключевые слова: DVB-S2, LDPC-код, итеративное декодирование, декодер.
Качество и стоимость телевизионных приемников систем цифрового телевидения второго поколения (DVB-S2 и DVB-T2 [1]) во многом зависят от важного компонента: декодера помехоустойчивых LDPC-кодов. Это делает актуальной задачу разработки декодеров длинных LDPC-кодов с невысокой сложностью аппаратной реализации и высокой исправляющей способностью. Вариант такого декодера предлагается в настоящей работе.
ИЗВ. ВУЗОВ. ПРИБОРОСТРОЕНИЕ. 2013. Т. 56, № 6
Декодер LDPC-кодов для цифрового телевидения
55
LDPC-код — это линейный блоковый код длины n с k информационными и m проверочными символами, задаваемый проверочной матрицей H=[hij]mxn, определяющей вид двудольного графа Таннера [2].
Граф Таннера (рис. 1) имеет два множества вершин. Одно состоит из m проверочных
вершин {с1,с2,..., сm}, соответствующих m строкам матрицы H, второе — из n кодовых вер-
шин {b1,b2,...,bn} , соответствующих n столбцам матрицы H. Кодовая вершина bj соединяется
ребром с проверочной вершиной ci в том случае, если в ячейке hij матрицы H находится единица.
c1 c2 c3 c4 c5 c6
++++++
Степень r
Фаза 2
Степень d
Фаза 1
b1 b2 b3 b4
b5 b6 b7 b8 b9
Рис. 1
В стандарте DVD-S2 (DVB-T2) [1] используются два множества структурированных
LDPC-кодов: „длинные“ коды (normal) с длиной слова 64 800 бит и „короткие“ коды (short) с
длиной слова 16 200 бит. Эти множества содержат коды с различными значениями r: {1/4,
1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10 (9/10 — только для длинных кодов)}.
Предлагаемый декодер реализует итеративный алгоритм декодирования Message Passing
(MP) [3], согласно ему, верные значения битов кодового слова определяются в результате
многократного обмена сообщениями между вершинами графа Таннера. Всего выполняется n
итераций (см. рис. 2, а). Каждая итерация алгоритма включает две фазы: в первой обновля-
ются сообщения проверочных вершин на основе анализа сообщений кодовых вершин; во вто-
рой — сообщения кодовых вершин на основе анализа сообщений проверочных вершин.
Сообщения кодовых вершин вычисляются по формуле:
∑vn→ki = un + w j→n , j≠i
где vn→ki — сообщение от n-й кодовой к ki-й проверочной вершине; wj→n — сообщение от
j-й проверочной вершины к n-й кодовой; un — логарифмическое отношение правдоподобия (LLR) n-го бита, принятого из канала кодового слова.
Генерация сообщений проверочных вершин выполняется согласно формуле
wk→ni = g(vn1→k , vn2→k ,..., vni−1→k , vni+1→k ,..., vndc →k ) ,
где
{ } ( ) ( )g (a,b) = sign (a)sign (b) min ( a , b ) + LUTg (a,b) , LUTg (a,b) = ln 1+ e− a+b − ln 1+ e− a−b .
Предлагаемый декодер LDPC-кодов обрабатывает сообщения параллельно группами (строками) с использованием техники двух проходов: в 1-м сообщения из памяти поступают в процессорные блоки, где рассчитываются и накапливаются промежуточные значения; во время 2-го одновременно рассчитываются и записываются в память встречные (относительно соответствующих ребер графа Таннера) выходные сообщения.
Организация обработки сообщений декодером представлена на рис. 2, б [4]: Z — степень распараллеливания процедуры обработки сообщений (число процессорных блоков, число столбцов памяти сообщений), для LDPC-кодов, используемых в стандарте DVB-S2,
ИЗВ. ВУЗОВ. ПРИБОРОСТРОЕНИЕ. 2013. Т. 56, № 6
56 С. И. Егоров, В. О. Авдеев, Э. И. Ватутин, В. С. Панищев
Z = 360; q — параметр кода, q=m/Z; u[i] — логарифмические отношения правдоподобия
(LLR) битов принятого из канала кодового слова, LDPC_out[i] — твердые решения относи-
тельно битов кодового слова.
а)
Начало
б)
Память сообщений (RAM)
Z
Кол -во итераций
n_iter
0
...
Очистка памяти RAM
0
1
q-1 2q-1 q 2q
(Z-1)q-1 (Z-1)q
i_iter=0
Нет i_iter