УСТРОЙСТВО И СПОСОБ ДЕКОДИРОВАНИЯ И СИСТЕМА ПЕРЕДАЧИ СИГНАЛОВ
DECODING DEVICE AND METHOD AND SIGNAL TRANSMISSION SYSTEM

ИЗМЕНЕННОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
2420-539830RU/55
УСТРОЙСТВО И СПОСОБ ДЕКОДИРОВАНИЯ И СИСТЕМА ПЕРЕДАЧИ СИГНАЛОВ
ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее изобретение относится к области технологий обработки данных и, в частности, к устройству декодирования и способу декодирования, которые применимы к LDPC-коду, и к системе передачи сигналов и системе хранения данных, которые используют LDPC-код.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
[0002] Код с низкой плотностью проверок на четность (полное наименование на английском языке: Low Density Parity Check; сокращенно LDPC) был впервые предложен Галлагером (Gallager) в 1963 г. и представляет собой линейный блочный код, включающий в себя информационный бит и бит четности. В предположении, что LDPC-код имеет длину кода n, и размер (длина) информационного бита равна k, размер бита четности равен n-k, и отношение R=k/n называется кодовой скоростью. Устройство кодирования LDPC-кода обрабатывает подлежащий передаче сигнал в соответствии с порождающей матрицей (также упоминается как G-матрица), чтобы генерировать кодовое слово. В общем, некоторые кодовые элементы этого кодового слова включают в себя подлежащий передаче сигнал и также упоминаются как информационные биты, а некоторые кодовые элементы включают в себя биты четности, используемые для проверки. Затем устройство кодирования LDPC-кода посылает кодовое слово к устройству декодирования LDPC-кода по каналу связи. Затем устройство декодирования LDPC-кода декодирует кодовое слово, то есть, проверяет, проходит ли кодовое слово проверочное решение. Если кодовое слово не проходит проверочное решение, что указывает, что возникла ошибка, потому что кодовое слово искажается шумом в процессе передачи по каналу связи, устройство декодирования LDPC-кода должно выполнять итерационное обновление на кодовом слове с использованием проверочной матрицы H, до тех пор, пока обновленное кодовое слово не пройдет проверочное решение.
[0003] В контроллере памяти, в общем случае, используется логика/чип или т.п. для реализации устройства декодирования LDPC-кода. Поэтому, в конкретном процессе реализации, данные, обрабатываемые внутренним образом устройством декодирования, квантуются, вычисляются и сохраняются, и процесс квантования вызывает уменьшение возможности исправления ошибок устройства декодирования LDPC-кода.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0004] Настоящая заявка обеспечивает устройство декодирования, причем устройство декодирования может выполнять обработку в случае, когда диапазон квантования кодового элемента превышен в процессе обновления кодового элемента, и улучшать возможность исправления ошибок LDPC-кода устройства декодирования.
[0005] В соответствии с одним аспектом, вариант осуществления настоящей заявки обеспечивает устройство декодирования, причем устройство декодирования сконфигурировано, чтобы декодировать LDPC-код, и включает в себя: блок получения, сконфигурированный с возможностью получать первое кодовое слово, например, -9, +7, -12, +4, +7, +10, -11, где первое кодовое слово генерируется устройством кодирования LDPC-кода в соответствии с порождающей матрицей и включает в себя M первых кодовых элементов, M является положительным целым числом, и M в предыдущем примере равно 7; блок обработки, сконфигурированный с возможностью получать P первых кодовых элементов, соответствующих n-ой строке проверочной матрицы, где, например, если n установлено в 1, три элемента в первой строке проверочной матрицы равны 1, и поэтому P равно 3; получать P первых значений обновления, соответствующих P первым кодовым элементам; получать, в соответствии с P первыми значениями обновления, P вторых значений обновления, соответствующих P первым кодовым элементам; определять, превышает ли каждое второе значение обновления из P вторых значений обновления диапазон квантования кодового элемента; сохранять a-ый первый кодовый элемент не обновленным, если определено, что a-ое второе значение обновления из P вторых значений обновления превышает диапазон квантования кодового элемента; обновлять b-ый первый кодовый элемент с использованием b-го второго значения обновления, если определено, что b-ое второе значение обновления из P вторых значений обновления не превышает диапазон квантования кодового элемента; получать, в соответствии с вышеуказанной операцией обновления, P вторых кодовых элементов, соответствующих n-ой строке проверочной матрицы; и генерировать второе кодовое слово в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, где проверочная матрица соответствует порождающей матрице и включает в себя N строк, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P, и каждое второе значение обновления является суммой каждого первого значения обновления и соответствующего первого кодового элемента; и блок определения, сконфигурированный с возможностью получать второе кодовое слово и определять, декодировано ли второе кодовое слово успешно. После получения подлежащего декодированию первого кодового слова, устройство декодирования должно выполнять, над первым кодовым словом, обработку, соответствующую n-ой строке проверочной матрицы, может обновить кодовый элемент в первом кодовом слове в процессе обработки, и если обновленный кодовый элемент превышает диапазон квантования кодового элемента, должно отменить это обновление. То есть, в этом аспекте, если обновление, соответствующее кодовому элементу, превышает диапазон квантования кодового элемента, обновление, соответствующее кодовому элементу, отменяется.
[0006] Опционально, в данном аспекте, определение, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента, может быть одновременно определением, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента, или может быть определением последовательно, слева направо в соответствии с последовательностью из Р первых кодовых элементов, соответствующих n-ой строке проверочной матрицы, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента.
[0007] Опционально, устройство декодирования в данном аспекте реализовано схемой, и блок получения, блок обработки и блок определения, которые включены в устройство декодирования, также реализованы схемой.
[0008] Опционально, в данном аспекте, генерация второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, включает в себя: генерацию второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, и другого первого кодового элемента, который находится в первом кодовом слове и не связан с n-ой строкой проверочной матрицы.
[0009] Опционально, в данном аспекте, генерация второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, включает в себя: генерацию второго кодового слова в соответствии с P вторыми кодовыми элементами соответствующими каждой строке проверочной матрицы.
[0010] В возможном варианте, блок обработки, упомянутый выше, включает в себя модуль хранения; модуль хранения сконфигурирован, чтобы хранить Р первых кодовых элементов, и дополнительно сконфигурирован, чтобы хранить P вторых значений обновления; блок обработки считывает, при определении, что a-ое второе значение обновления из Р вторых значений обновления превышает диапазон квантования кодового элемента, a-ый первый кодовый элемент, сохраненный в модуле хранения; и блок обработки считывает, при определении, что b-ое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента, b-ое второе значение обновления, сохраненное в модуле хранения, чтобы обновлять b-ый первый кодовый элемент. Если возникает вышеуказанный случай, в котором обновленный кодовый элемент превышает диапазон квантования кодового элемента, кодовый элемент перед обновлением должен быть считан, чтобы отменить это обновление. Поэтому, модуль хранения сконфигурирован, чтобы хранить P вторых значений обновления и Р первых кодовых элементов, чтобы реализовать то, что необходимое значение может быть получено из модуля хранения, независимо от того, превышает ли обновленный кодовый элемент диапазон квантования кодового элемента, и гарантировать, что устройство декодирования может гибко реагировать на случай, в котором второе значение обновления превышает или не превышает диапазон квантования кодового элемента в процессе декодирования.
[0011] В соответствии с другим аспектом, вариант осуществления настоящей заявки обеспечивает устройство декодирования, причем устройство декодирования сконфигурировано, чтобы декодировать LDPC-код, и включает в себя: блок получения, сконфигурированный с возможностью получать первое кодовое слово, например, -9, +7, -12, +4, +7, +10, -11, где первое кодовое слово генерируется устройством кодирования LDPC-кода в соответствии с порождающей матрицей и включает в себя M первых кодовых элементов, M является положительным целым числом, и M в предыдущем примере равно 7; блок обработки, сконфигурированный с возможностью получать Р первых кодовых элементов, соответствующих n-ой строке проверочной матрицы, где, например, если три элемента в первой строке проверочной матрицы равны 1, P равно 3; получать P первых значений обновления, соответствующих Р первым кодовым элементам; получать, в соответствии с P первыми значениями обновления, P вторых значений обновления, соответствующих Р первым кодовым элементам; определять, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента; сохранять Р первых кодовых элементов не обновленными, если определено, что a-ое второе значение обновления из Р вторых значений обновления превышает диапазон квантования кодового элемента; обновлять Р первых кодовых элементов с использованием P вторых значений обновления, если определено, что каждое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента; получать, в соответствии с вышеуказанной операцией обновления, P вторых кодовых элементов, соответствующих n-ой строке проверочной матрицы; и генерировать второе кодовое слово в соответствии с P вторыми кодовыми элементами, где проверочная матрица соответствует порождающей матрице и включает в себя N строк, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P, каждое второе значение обновления является суммой каждого первого значения обновления и соответствующего первого кодового элемента, и P вторых кодовых элементов включают в себя по меньшей мере один из Р первых кодовых элементов; и блок определения, сконфигурированный с возможностью получать второе кодовое слово и определять, декодировано ли второе кодовое слово успешно. После получения подлежащего декодированию первого кодового слова, устройство декодирования должно выполнять, над кодовым словом, обработку, соответствующую n-ой строке проверочной матрицы, и может обновлять кодовый элемент в первом кодовом слове в процессе обработки. То есть, в данном аспекте, если обновление, соответствующее кодовому элементу, превышает диапазон квантования кодового элемента, то обновления, соответствующие Р первым кодовым элементам с использованием всех P вторых значений обновления, соответствующих этой строке проверочной матрицы, отменяются.
[0012] Опционально, в данном аспекте, определение, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента, может быть одновременно определением, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента, или может быть определением последовательно, слева направо в соответствии с последовательностью Р первых кодовых элементов, соответствующих n-ой строке проверочной матрицы, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента.
[0013] Опционально, устройство декодирования в данном аспекте реализовано схемой, и блок получения, блок обработки и блок определения, которые включены в устройство декодирования, также реализованы схемой.
[0014] Опционально, в данном аспекте, генерация второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, включает в себя: генерацию второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, и другим первым кодовым элементом, который находится в первом кодовом слове и не связан с n-ой строкой проверочной матрицы.
[0015] Опционально, в данном аспекте, генерация второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, включает в себя: генерацию второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими каждой строке проверочной матрицы.
[0016] В возможном варианте, блок обработки, упомянутый выше, включает в себя модуль хранения; модуль хранения сконфигурирован, чтобы хранить Р первых кодовых элементов, и дополнительно сконфигурирован, чтобы хранить P вторых значений обновления; блок обработки считывает, при определении, что a-ое второе значение обновления из Р вторых значений обновления превышает диапазон квантования кодового элемента, Р первых кодовых элементов, сохраненных в модуле хранения; и блок обработки считывает, при определении, что каждое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента, P вторых значений обновления, сохраненных в модуле хранения, чтобы обновить Р первых кодовых элементов. Если возникает вышеупомянутый случай, в котором обновленный кодовый элемент превышает диапазон квантования кодового элемента, все Р первых кодовых элементов перед обновлением должны быть считаны, чтобы отменить это обновление. Поэтому модуль хранения сконфигурирован, чтобы хранить P вторых значений обновления и Р первых кодовых элементов, чтобы реализовывать то, что необходимое значение может быть получено из модуля хранения, независимо от того, превышает ли обновленный кодовый элемент диапазон квантования кодового элемента, и гарантировать, что устройство декодирования может гибко реагировать на случай, в котором второе значение обновления превышает или не превышает диапазон квантования кодового элемента в процессе декодирования.
[0017] В соответствии с другим аспектом, вариант осуществления настоящей заявки обеспечивает способ декодирования, причем способ декодирования используется для декодирования LDPC-кода и включает в себя: получение первого кодового слова, например, -9, +7, -12, +4, +7, +10, -11, где первое кодовое слово генерируется устройством кодирования LDPC-кода в соответствии с порождающей матрицей и включает в себя M первых кодовых элементов, M является положительным целым числом, и М в предыдущем примере равно 3; получение Р первых кодовых элементов, соответствующих n-ой строке проверочной матрицы, где, например, когда три элемента в первой строке проверочной матрицы соответствуют 1, P равно 3; получение Р первых значений обновления, соответствующих Р первым кодовым элементам; получение, в соответствии с Р первыми значениями обновления, P вторых значений обновления, соответствующих Р первым кодовым элементам; определение, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента; сохранение a-го первого кодового элемента не обновленным, если определено, что a-ое второе значение обновления из Р вторых значений обновления превышает диапазон квантования кодового элемента; обновление b-го первого кодового элемента с использованием b-го второго значения обновления, если определено, что b-ое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента; получение, в соответствии с вышеуказанной операцией обновления, P вторых кодовых элементов, соответствующих n-ой строке проверочной матрицы; и генерацию второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, где проверочная матрица соответствует порождающей матрице и включает в себя N строк, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P, и каждое второе значение обновления является суммой каждого первого значения обновления и соответствующего первого кодового элемента; и определение, декодировано ли второе кодовое слово успешно. В процессе декодирования, после получения подлежащего декодированию первого кодового слова, обработка, соответствующая n-ой строке проверочной матрицы, должна быть выполнена над первым кодовым словом, кодовый элемент в первом кодовом слове может быть обновлен в процессе обработки, и если обновленный кодовый элемент превышает диапазон квантования кодового элемента, это обновление должно быть отменено. То есть, в данном аспекте, если обновление, соответствующее кодовому элементу, превышает диапазон квантования кодового элемента, обновление, соответствующее кодовому элементу, должно быть отменено.
[0018] Опционально, в данном аспекте, определение, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента, может быть одновременно определением, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента, или может быть определением последовательно, слева направо в соответствии с последовательностью Р первых кодовых элементов, соответствующих n-ой строке проверочной матрицы, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента.
[0019] Опционально, в данном аспекте, генерация второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, включает в себя: генерацию второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, и другим первым кодовым элементом, который находится в первом кодовом слове и не связан с n-ой строкой проверочной матрицы.
[0020] Опционально, в данном аспекте, генерация второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, включает в себя: генерацию второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими каждой строке проверочной матрицы.
[0021] В соответствии с другим аспектом, вариант осуществления настоящей заявки обеспечивает способ декодирования, причем способ декодирования используется для декодирования LDPC-кода и включает в себя: получение первого кодового слова, например, -9, +7, -12, +4, +7, +10, -11, где первое кодовое слово генерируется устройством кодирования LDPC-кода в соответствии с порождающей матрицей и включает в себя M первых кодовых элементов, M является положительным целым числом, и M в предыдущем примере равно 7; получение Р первых кодовых элементов, соответствующих n-ой строке проверочной матрицы, где, например, если три элемента в первой строке проверочной матрицы соответствуют 1, P равно 3; получение Р первых значений обновления, соответствующих Р первым кодовым элементам; получение, в соответствии с Р первыми значениями обновления, P вторых значений обновления, соответствующих Р первым кодовым элементам; определение, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента; сохранение Р первых кодовых элементов не обновленными, если определено, что a-ое второе значение обновления из Р вторых значений обновления превышает диапазон квантования кодового элемента; обновление Р первых кодовых элементов с использованием P вторых значений обновления, если определено, что каждое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента; получение, в соответствии с вышеуказанной операцией обновления, P вторых кодовых элементов, соответствующих n-ой строке проверочной матрицы; и генерацию второго кодового слова в соответствии с P вторыми кодовыми элементами, где проверочная матрица соответствует порождающей матрице и включает в себя N строк, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P, и каждое второе значение обновления является суммой каждого первого значения обновления и соответствующего первого кодового элемента; и определение, декодировано ли второе кодовое слово успешно. В процессе декодирования, после получения подлежащего декодированию первого кодового слова, обработка, соответствующая n-ой строке проверочной матрицы, должна быть выполнена над кодовым словом, кодовый элемент в первом кодовом слове может быть обновлен в процессе обработки. То есть, в данном аспекте, если обновление, соответствующее кодовому элементу, превышает диапазон квантования кодового элемента, то обновления, соответствующие Р первым кодовым элементам, с использованием всех P вторых значений обновления, соответствующих этой строке проверочной матрицы, отменяются.
[0022] Опционально, в данном аспекте, определение, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента может быть одновременно определением, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента, или может быть определением последовательно, слева направо в соответствии с последовательностью Р первых кодовых элементов, соответствующих n-ой строке проверочной матрицы, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента.
[0023] Опционально, в данном аспекте, генерация второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, включает в себя: генерацию второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, и другим первым кодовым элементов, который находится в первом кодовом слове и не связан с n-ой строкой проверочной матрицы.
[0024] Опционально, в данном аспекте, генерация второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, включает в себя: генерацию второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими каждой строке проверочной матрицы.
[0025] В соответствии с другим аспектом, вариант осуществления настоящей заявки обеспечивает систему передачи сигналов, включающую в себя устройство кодирования LDPC-кода и устройство декодирования, упомянутое в любом из вышеуказанных аспектов, причем устройство кодирования LDPC-кода сконфигурировано, чтобы генерировать первое кодовое слово в соответствии с порождающей матрицей и передавать первое кодовое слово к устройству декодирования по каналу связи. В процессе использования системы передачи сигналов, влияние шума на подлежащий передаче сигнал при передаче в канале связи принимается во внимание, и поэтому устройство кодирования LDPC-кода используется для кодирования подлежащего передаче сигнала в LDPC-код, и LDPC-код декодируется на стороне устройства декодирования, чтобы гарантировать, что результат декодирования устройства декодирования включает в себя исходный подлежащий передаче сигнал. В этой системе передачи сигналов, используется устройство декодирования, упомянутое в любом одном из вышеуказанных аспектов, что повышает точность устройства декодирования в декодировании LDPC-кода, а также улучшает надежность сигнала, передаваемого в системе передачи сигналов.
[0026] В соответствии с другим аспектом, вариант осуществления настоящей заявки обеспечивает систему хранения данных, включающую в себя устройство кодирования LDPC-кода, устройство декодирования, упомянутое в любом из вышеуказанных аспектов, и носитель хранения данных, причем устройство кодирования LDPC-кода сконфигурировано, чтобы генерировать первое кодовое слово в соответствии с порождающей матрицей и сохранять первое кодовое слово на носителе хранения данных, и устройство декодирования сконфигурировано, чтобы получать первое кодовое слово из носителя хранения данных. В процессе использования системы хранения данных, изменение сигнала, вызванное, когда подлежащий сохранению сигнал сохраняется на носителе хранения данных в течение избыточно длинного периода или испытывает воздействие другого фактора, принимается во внимание, и поэтому устройство кодирования LDPC-кода используется для кодирования подлежащего хранению сигнала в LDPC-код и затем сохранения LDPC-кода на носителе хранения данных, LDPC-код считывается и декодируется на стороне устройства декодирования, чтобы гарантировать, что результат декодирования устройства декодирования включает в себя исходный подлежащий сохранению сигнал. В этой системе хранения данных, используется устройство декодирования, упомянутое в любом из вышеуказанных аспектов, что улучшает точность устройства декодирования в декодировании LDPC-кода, а также улучшает надежность сигнала, сохраненного в системе хранения данных.
[0027] По сравнению с предшествующим уровнем техники, в процессе обновления кодового слова в решениях, обеспеченных в настоящей заявке, устройство декодирования выполняет обработку в случае, в котором значение обновленного кодового элемента превышает диапазон квантования кодового элемента, что препятствует устройству декодирования непосредственно квантовать обновленный кодовый элемент, который превышает диапазон квантования кодового элемента, и улучшает возможность коррекции ошибок устройства декодирования в процессе декодирования.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0028] Для более ясного описания технических решений в вариантах осуществления настоящего изобретения или в предшествующем уровне техники, ниже приведено краткое описание приложенных чертежей, требуемых для описания вариантов осуществления. Очевидно, что приложенные чертежи в последующем описании показывают некоторые варианты осуществления настоящего изобретения, и специалисты в данной области техники могут получить другие чертежи, исходя из этих приложенных чертежей, без приложения творческих усилий.
[0029] Фиг. 1 является схематичным представлением архитектуры кодирования и декодирования LDPC-кода в соответствии с вариантом осуществления настоящего изобретения;
[0030] Фиг. 2 является схематичным представлением другой архитектуры кодирования и декодирования LDPC-кода в соответствии с вариантом осуществления настоящего изобретения;
[0031] Фиг. 3 является схематичным представлением структуры устройства декодирования в соответствии вариантом осуществления 1 устройства согласно настоящему изобретению;
[0032] Фиг. 4 является схематичным представлением структуры устройства декодирования в соответствии вариантом осуществления 2 устройства согласно настоящему изобретению;
[0033] Фиг. 5 является схематичным представлением структуры устройства декодирования в соответствии вариантом осуществления 3 устройства согласно настоящему изобретению;
[0034] Фиг. 6 является диаграммой Таннера (Tanner), соответствующей проверочной матрице, применяемой в устройствах декодирования в соответствии с вариантом осуществления 3 устройства и вариантом осуществления 4 устройства согласно настоящему изобретению;
[0035] Фиг. 7 является схематичным представлением структуры устройства декодирования в соответствии с вариантом осуществления 4 устройства согласно настоящему изобретению;
[0036] Фиг. 8 является блок-схемой последовательности операций способа декодирования в соответствии с вариантом осуществления 1 способа согласно настоящему изобретению;
[0037] Фиг. 9 является блок-схемой последовательности операций способа декодирования в соответствии с вариантом осуществления 2 способа согласно настоящему изобретению;
[0038] Фиг. 10 является блок-схемой последовательности операций способа декодирования в соответствии с вариантом осуществления 3 способа согласно настоящему изобретению; и
[0039] Фиг. 11 иллюстрирует результаты эмуляции устройства декодирования в соответствии с настоящим изобретением и обычного устройства декодирования.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0040] Для пояснения целей, технических решений и преимуществ вариантов осуществления настоящего изобретения, нижеследующее описание ясно и полно описывает технические решения в вариантах осуществления настоящего изобретения со ссылками на приложенные чертежи в вариантах осуществления настоящего изобретения. Очевидно, описанные варианты осуществления являются некоторыми, но не всеми вариантами осуществления настоящего изобретения. Все другие варианты осуществления, полученные специалистами в данной области техники на основе упомянутых вариантов осуществления настоящего изобретения без приложения творческих усилий, должны входить в объем защиты настоящего изобретения.
[0041] В настоящей спецификации, термин ʺкод с низкой плотностью проверок на четностьʺ (полное наименование на английском языке: Low Density Parity Check Code) относится к типу линейного кода с исправлением ошибок и обычно используется в области связи для передачи сигнала по каналу связи или для хранения данных на носителе хранения данных.
[0042] В настоящей спецификации, термин ʺкодовое словоʺ (полное наименование на английском языке: Code Word) относится к сигналу, включающему в себя группу кодовых элементов (полное наименование на английском языке: Code Element), передаваемых по каналу связи или для хранения в устройстве хранения данных. Например, в случае, когда кодовое слово LDPC-кода имеет длину 7, кодовое слово включает в себя 7 кодовых элементов.
[0043] В настоящей спецификации, термин ʺдиапазон квантования кодового элементаʺ может также упоминаться как диапазон квантования переменного узла (Variable Node). В процессе декодирования LDPC-кода, каждый кодовый элемент подлежащего декодированию кода соответствует одному переменному узлу, и каждая строка проверочной матрицы соответствует одному проверочному узлу (Check Node). Относительно дополнительных деталей, можно сослаться на диаграмму Таннера на фиг. 6. Диапазон квантования кодового элемента, таким образом, представляет собой размер адресного пространства, выделенного устройством декодирования LDPC-кода каждому кодовому элементу. Например, если адресное пространство, выделенное каждому кодовому элементу, составляет 6 битов, диапазон квантования кодового элемента соответствует от -31 до +31 (здесь после включения -31 и +31).
Архитектура кодирования и декодирования LDPC-кода в вариантах осуществления настоящего изобретения
[0044] Фиг. 1 изображает архитектуру кодирования и декодирования LDPC-кода в соответствии с вариантом осуществления настоящего изобретения. В общем случае, для группы подлежащих передаче сигналов (переносящих текущую информацию, также упоминаемых как информационный бит), устройство кодирования LDPC-кода сначала генерирует одно кодовое слово для подлежащих передаче сигналов в соответствии с порождающей матрицей, также упоминаемой как G-матрица, и затем устройством кодирования LDPC-кода посылает кодовое слово к устройству декодирования LDPC-кода по каналу связи. Обычно, кодовое слово испытывает воздействие шума в процессе передаче по каналу связи, и поэтому в процессе передачи по каналу связи может возникать ошибка в кодовом слове. Поэтому устройство декодирования LDPC-кода имеет возможности проверки и исправления ошибок для кодового слова, передаваемого по каналу связи. Например, группа подлежащих передаче сигналов представляет собой 1, 0, 1, 1. Кодовое слово, генерируемое устройством кодирования LDPC-кода в соответствии с подлежащими передаче сигналами и порождающей матрицей, представляет собой 1, 0, 1, 1, 0, 0, 1. Затем устройство кодирования LDPC-кода передает кодовое слово к устройству декодирования LDPC-кода с использованием сигнала электрического потенциала, сигналы электрического потенциала, принимаемые устройством декодирования LDPC-кода, равны -9 вольт, +7 вольт, -12 вольт, +4 вольта, +7 вольт, +10 вольт, -11 вольт. В настоящем изобретении, сигнал электрического потенциала, посылаемый к устройству декодирования LDPC-кода по каналу связи, также упоминается как кодовое слово, где положительный потенциал соответствует 0, а отрицательный потенциал соответствует 1. Поэтому, после передачи по каналу связи, четвертый кодовый элемент 1 превращается в +4 вольта, что соответствует 0, то есть, возникает ошибка в процессе передачи четвертого кодового элемента кодового слова по каналу связи, и устройство декодирования LDPC-кода должно исправлять ошибку в соответствии с проверочной матрицей, соответствующей порождающей матрице, используемой устройством кодирования LDPC-кода, чтобы получить корректное кодовое слово 1, 0, 1, 1, 0, 0, 1.
[0045] Фиг. 2 изображает сценарий использования другой архитектуры кодирования и декодирования LDPC-кода в соответствии с вариантом осуществления настоящего изобретения. В соответствии вышеупомянутым примером, после приема подлежащих сохранению сигналов 1, 0, 1, 1, устройство кодирования LDPC-кода генерирует кодовое слово 1, 0, 1, 1, 0, 0, 1 в соответствии с подлежащими сохранению сигналами и порождающей матрицей и сохраняет кодовое слово на носителе хранения данных. Когда устройство декодирования LDPC-кода получает доступ к носителю хранения данных, носитель хранения данных обычно записывает данные с использованием сигнала электрического потенциала. Например, сигналы электрического потенциала, полученные из носителя хранения данных устройством декодирования LDPC-кода представляют собой -9 вольт, +7 вольт, -12 вольт, +4 вольта, +7 вольт, +10 вольт, -11 вольт. Вследствие старения или другого фактора для носителя хранения данных, возникает ошибка в четвертом кодовом элементе в процессе хранения, и устройство декодирования LDPC-кода должно исправить ошибку в соответствии с проверочной матрицей, соответствующей порождающей матрице, используемой устройством кодирования LDPC-кода, чтобы получить корректное кодовое слово 1, 0, 1, 1, 0, 0, 1.
[0046] На практике, в общем случае, устройство кодирования LDPC-кода и устройство декодирования LDPC-кода осуществляют выполнение функций с использованием специализированного аппаратного устройства, например, специализированной интегральной схемы (полное наименование на английском языке: Application Specific Integrated Circuit; сокращенно: ASIC), программируемой вентильной матрицы (полное наименование на английском языке: Field Programmable Gate Array; сокращенно: FPGA) и т.п. Сигнал электрического потенциала, передаваемый на устройство декодирования LDPC-кода по каналу связи, обычно представляет собой число с плавающей запятой. Кроме того, ввиду существования шумов, диапазон значений сигнала электрического потенциала не может быть определен. Поэтому, в общем случае, устройство декодирования LDPC-кода квантует значения потенциала кодового слова, которое получено устройством декодирования LDPC-кода или используется в процессе исправления ошибок. Например, когда 6 битов используются для квантования, диапазон значений составляет от -31 до +31, значение, превышающее +31, устанавливается на +31, и значение, меньшее, чем -31, устанавливается на -31. На практике имеется множество методов квантования, и результат квантования не обязательно является целым числом, но также может включать в себя целую часть и дробную часть. Однако, в соответствии с количеством битов выделенного значения квантования при проектировании, результат квантования имеет фиксированный диапазон значений, также упоминаемый как диапазон квантования. В общем случае, переменный узел и проверочный узел имеют, каждый, их соответствующие диапазоны квантования. В настоящей заявке, диапазон квантования кодового элемента является также диапазоном квантования переменного узла.
Вариант осуществления 1 устройства
[0047] Вариант осуществления 1 устройства обеспечивает устройство 200 декодирования, причем устройство 200 декодирования сконфигурировано, чтобы декодировать LDPC-код. Фиг. 3 показывает схематичное представление структуры устройства 200 декодирования. Устройство 200 включает в себя: блок 202 получения, блок 204 обработки и блок 206 определения.
[0048] Блок 202 получения сконфигурирован, чтобы получать первое кодовое слово, где первое кодовое слово генерируется устройством кодирования LDPC-кода в соответствии с порождающей матрицей и включает в себя M первых кодовых элементов, и M является положительным целым числом. Детальные сведения содержатся в приведенном выше описании архитектуры кодирования и декодирования LDPC-кода. Кодовое слово, полученное блоком 202 получения, может передаваться через канал связи или может считываться из носителя хранения данных. Здесь первый кодовый элемент представляет собой любой кодовый элемент в первом кодовом слове.
[0049] Блок 204 обработки сконфигурирован, чтобы получать Р первых кодовых элементов, соответствующих n-ой строке проверочной матрицы; получать Р первых значений обновления, соответствующих Р первым кодовым элементам; получать, в соответствии с Р первыми значениями обновления, P вторых значений обновления, соответствующих Р первым кодовым элементам; последовательно определять, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента; сохранять a-ый первый кодовый элемент не обновленным, если определено, что a-ое второе значение обновления из Р вторых значений обновления превышает диапазон квантования кодового элемента; обновлять b-ый первый кодовый элемент с использованием b-го второго значения обновления, когда определено, что b-ое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента; получать, в соответствии с вышеуказанной операцией обновления, P вторых кодовых элементов, соответствующих n-ой строке проверочной матрицы; и генерировать второе кодовое слово в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, где проверочная матрица соответствует порождающей матрице и включает в себя N строк, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P, и каждое второе значение обновления является суммой каждого первого значения обновления и соответствующего первого кодового элемента.
[0050] Блок 206 определения сконфигурирован, чтобы получать второе кодовое слово, сгенерированное блоком 204 обработки определения, и определять, декодировано ли второе кодовое слово успешно.
[0051] В этом варианте осуществления, например, вышеуказанная проверочная матрица используется устройством декодирования, то есть, N равно 3, и первое кодовое слово, полученное блоком 202 получения, соответствует: -9, +7, -12, +4, +7, +10, -11, т.е., M равно 7. Блок 204 обработки генерирует, в соответствии с кодовым элементом, который находится в первом кодовом слове и связан с первой строкой проверочной матрицы, значение обновления, которое соответствует кодовому элементу, который находится в кодовом слове и связан с первой строкой проверочной матрицы, т.е., n равно 1. Следует отметить, что, во время реальной работы, блок 204 обработки может выполнять обработку в соответствии с последовательностью из первой строки, второй строки, до третьей строки проверочной матрицы или может выполнять обработку в соответствии с другой последовательностью, где значение n может быть любым положительным целым числом, меньшим или равным количеству строк проверочной матрицы. После получения кодовых элементов, связанных с первой строкой проверочной матрицы, а именно, 1-го кодового элемента -9, 2-го кодового элемента +7 и 4-го кодового элемента +4, где первые кодовые элементы включают в себя -9, +7 и +4, блок 204 обработки генерирует значение обновления +4, соответствующее 1-му кодовому элементу в первом кодовом слове, значение обновления -4, соответствующее 2-му кодовому элементу, и значение обновления -7, соответствующее 4-му кодовому элементу, то есть, P равно 3, и первые значения обновления включают в себя +4, -4 и -7. Символ первого значения обновления, соответствующего каждому первому кодовому элементу из Р первых кодовых элементов, является произведением символов других первых кодовых элементов за исключением этого первого кодового элемента, и абсолютное значение первого значения обновления, соответствующего каждому первому кодовому элементу из Р первых кодовых элементов, является абсолютным значением первого кодового элемента с наименьшим абсолютным значением (если этот первый кодовый элемент сам является первым кодовым элементом с наименьшим абсолютным значением, то абсолютное значение первого значения обновления, соответствующего этому первому кодовому элементу, устанавливается на абсолютное значение первого кодового элемента с вторым наименьшим абсолютным значением). Например, если первые кодовые элементы включают в себя кодовый элемент A, кодовый элемент B и кодовый элемент C, символ значения обновления, соответствующего кодовому элементу A, является произведением символов кодового элемента B и кодового элемента C, и абсолютное значение значения обновления, соответствующего кодовому элементу A, является меньшим абсолютным значением из абсолютных значений кодового элемента B и кодового элемента C.
[0052] После получения значений обновления, соответствующих кодовым элементам, которые находятся в первом кодовом слове и связаны с первой строкой проверочной матрицы, блок 204 обработки суммирует каждое первое значение обновления с его соответствующим первым кодовым элементом, чтобы получить второе значение обновления, то есть, вторые значения обновления включают в себя -5 (сумма +4 и -9), +3 (сумма +7 и -4) и -3 (сумма +4 и -7).
[0053] После получения вторых значений обновления, блок 204 обработки последовательно определяет, превышает ли каждое второе значение обновления диапазон квантования кодового элемента; если блок 204 обработки определяет, что а-ое второе значение обновления превышает диапазон квантования кодового элемента, блок 204 обработки не обновляет a-ый первый кодовый элемент с использованием a-го второго значения обновления, то есть, оставляет a-ый первый кодовый элемент не обновленным; а если блок 204 обработки определяет, что b-ое второе значение обновления не превышает диапазон квантования кодового элемента, блок 204 обработки обновляет b-ый первый кодовый элемент с использованием b-го второго значения обновления.
[0054] В соответствии с вышеуказанным примером, поскольку P равно 3 в этом примере, значение a может быть 1, 2 или 3 и соответствует второму значению обновления -5, +3 или -3, соответственно. Например, a установлено в 1, и блок 204 обработки определяет, превышает ли второе значение обновления -5 диапазон квантования кодового элемента; если второе значение обновления -5 превышает диапазон квантования кодового элемента, -9 не обновляется с использованием -5, то есть, кодовый элемент -9 остается неизменным; если второе значение обновления -5 не превышает диапазон квантования кодового элемента, -9 обновляется с использованием -5, то есть, кодовый элемент -9 обновляется на -5. Блок 204 обработки последовательно обрабатывает первые кодовые элементы -9, +7 и +4 в соответствии с данным способом. Например, диапазон квантования кодового элемента в этом варианте осуществления соответствует от -15 до +15 (здесь после включения -15 и +15). Тогда ни одно из вторых значений обновления не превышает диапазон квантования кодового элемента. Блок 204 обработки генерирует вторые кодовые элементы после завершения обработки, соответствующей первой строке проверочной матрицы. Вторые кодовые элементы включают в себя -5, +3 и -3. Генерация каждого кодового элемента из вторых кодовых элементов состоит в сохранении неизменным соответствующего первого кодового элемента (если соответствующее второе значение обновления превышает диапазон квантования кодового элемента) или обновление соответствующего первого кодового элемента с использованием соответствующего второго значения обновления (если соответствующее второе значение обновления не превышает диапазон квантования кодового элемента).
[0055] Блок 204 обработки генерирует второе кодовое слово в соответствии с вторыми кодовыми элементами. В основном, два способа генерации второго кодового слова представлены следующим образом:
[0056] Способ 1: Второе кодовое слово генерируется путем обновления, на второй кодовый элемент, кодового элемента (то есть, первого кодового элемента), который находится в первом кодовом слове -9, +7, -12, +4, +7, +10, -11 и связан с n-ой (n равно 1 в данном примере) строкой проверочной матрицы, и первый кодовый элемент, который находится в первом кодовом слове и не связан с n-ой строкой проверочной матрицы, резервируется, то есть, второе кодовое слово соответствует -5, +3, -12, -3, +7, +10, -11.
[0057] Способ 2: Первое временное кодовое слово генерируется путем обновления, на второй кодовый элемент, первого кодового элемента, который находится в первом кодовом слове и связан с n-ой (n равно 1 в этом примере) строкой проверочной матрицы, и первый кодовый элемент, который находится в первом кодовом слове и не связан с первой строкой проверочной матрицы, резервируется, то есть, первое временное кодовое слово соответствует -5, +3, -12, -3, +7, +10, -11.
[0058] Второе временное кодовое слово генерируется путем обновления кодовых элементов, которые находятся в первом временном кодовом слове и связаны с второй строкой проверочной матрицы. Сначала получают кодовые элементы -12, +4 и +7, которые находятся в первом кодовом слове и связаны с второй строкой проверочной матрицы. Генерируются третьи значения обновления, включающие в себя +4, -7 и -4, которые соответствуют кодовым элементам, которые находятся в первом кодовом слове и связаны с второй строкой проверочной матрицы. Четвертые значения обновления генерируются путем суммирования +4, -7 и -4 с кодовыми элементами -12, -3 и +7, которые находятся в первом временном кодовое слово и связаны с второй строкой проверочной матрицы, где четвертые значения обновления включают в себя -8, -10 и +3. Определяется, превышает ли любой одно из -8, -10 и +3 диапазон квантования кодового элемента. Если любое одно из четвертых значений обновления превышает диапазон квантования кодового элемента, то соответствующий кодовый элемент в первом временном кодовое слово не обновляется с использованием четвертого значения обновления. Если ни один из четвертых значений обновления не превышает диапазон квантования кодового элемента, то первое временное кодовое слово -5, +3, -12, -3, +7, +10, -11 обновляется с использованием четвертых значений обновления -8, -10 и +3, чтобы получить второе временное кодовое слово -5, +3, -8, -10, +3, +10, -11.
[0059] Второе кодовое слово генерируется путем обновления кодовых элементов, которые находятся во втором временном кодовом слове и связаны с третьей строкой проверочной матрицы. Сначала получают кодовые элементы +4, +10 и -11, которые находятся в первом кодовом слове и связаны с третьей строкой проверочной матрицы. Генерируются пятые значения обновления, включающие в себя -10, -4 и +4, которые соответствуют кодовым элементам, которые находятся в первом кодовом слове и связаны с третьей строкой проверочной матрицы. Шестые значения обновления, включающие в себя -20, +6 и -7, генерируются путем суммирования -10, -4 и +4 с кодовыми элементами -10, +10 и -11, которые находятся во втором временном кодовом слове и связаны с третьей строкой проверочной матрицы. Определяется, превышает ли любое одно из -20, +6 и -7 диапазон квантования кодового элемента. Если любое одно из шестых значений обновления превышает диапазон квантования кодового элемента, то соответствующий кодовый элемент во втором временном кодовом слове не обновляется с использованием шестого значения обновления. Если ни одно из шестых значений обновления не превышает диапазон квантования кодового элемента, то второе временное кодовое слово -5, +3, -8, -10, +3, +10, -11 обновляется с использованием шестых значений обновления -20, +6 и -7. Второе кодовое слово -5, +3, -8, -10, +3, +6, -7 получается в этом примере, поскольку -20 превышает диапазон квантования кодового элемента.
[0060] Следует отметить, что в способе 2, второе кодовое слово получают путем обработки первого кодового слова в соответствии с последовательностью из первой строки, второй строки, до третьей строки проверочной матрицы, но в реальном использовании процесса согласно способу 2, первое кодовое слово может обрабатываться в соответствии с другой последовательностью проверочной матрицы. Например, первая строка может обрабатываться первой, чтобы получить первое временное кодовое слово, затем обрабатывается третья строка для получения второго временного кодового слова, и затем обрабатывается вторая строка для получения второго кодового слова. Может иметься множество последовательностей обработки. Требуется только, что, в процессе генерации второго кодового слова с использованием первого кодового слова, каждая строка проверочной матрицы обрабатывается соответственно, и обработка, соответствующая каждой строке проверочной матрицы, выполняется только однократно.
[0061] Опционально, блок 204 обработки включает в себя модуль хранения, сконфигурированный с возможностью хранить Р первых кодовых элементов, и дополнительно сконфигурирован, чтобы хранить P вторых значений обновления. При определении, что a-ое второе значение обновления из Р вторых значений обновления превышает диапазон квантования кодового элемента, блок 204 обработки считывает a-ый первый кодовый элемент, сохраненный в модуле хранения; то есть, если второе значение обновления превышает диапазон квантования кодового элемента, блок 204 обработки не обновляет соответствующий первый кодовый элемент с использованием второго значения обновления и поэтому считывает, из модуля хранения, первый кодовый элемент, соответствующий второму значению обновления, чтобы получить вторые кодовые элементы. При определении, что b-ое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента, блок 204 обработки считывает b-ое второе значение обновления, сохраненное в модуле хранения, чтобы обновлять b-ый первый кодовый элемент; то есть, если второе значение обновления не превышает диапазон квантования кодового элемента, блок 204 обработки обновляет соответствующий первый кодовый элемент с использованием второго значения обновления и поэтому считывает второе значение обновления из модуля хранения и заменяет соответствующий первый кодовый элемент, чтобы получить вторые кодовые элементы.
[0062] В соответствии с вышеуказанным примером, модуль хранения хранит первые кодовые элементы -9, +7 и +4, и модуль хранения дополнительно хранит вторые значения обновления -5, +3 и -3. Если блок 204 обработки определяет, что второе значение обновления провещает диапазон квантования кодового элемента, блок 204 обработки считывает соответствующий первый кодовый элемент; если блок 204 обработки определяет, что второе значение обновления не превышает диапазон квантования кодового элемента, блок 204 обработки считывает соответствующее второе значение обновления. В примере, в котором блок 204 обработки генерирует второе кодовое слово с использованием способа 1, блок 204 обработки определяет, что ни одно из вторых значений обновления -5, +3 и -3 не превышает диапазон квантования кодового элемента, и поэтому считывает вторые значения обновления для обновления первого кодового слова и генерации второго кодового слова -5, +3, -12, -3, +7, +10, -11.
[0063] Блок 204 обработки посылает второе кодовое слово в блок 206 определения, где блок 206 определения сконфигурирован, чтобы определять, декодировано ли второе кодовое слово успешно.
[0064] В случае, когда блок 204 обработки генерирует второе кодовое слово с использованием способа 1, упомянутого выше, если блок 206 определения определяет, что второе кодовое слово -5, +3, -12, -3, +7, +10, -11 декодировано успешно, устройство 200 декодирования продолжает выполнять обновление, соответствующее другой строке проверочной матрицы, и генерировать второе кодовое слово, соответствующее строке проверочной матрицы. Здесь, вторая строка используется в качестве примера. После того как обновление, соответствующее второй строке проверочной матрицы, завершено, полученное второе кодовое слово соответствует -5, +3, -8, -10, +3, +10, -11. Если блок 206 определения определяет, что второе кодовое слово -5, +3, -8, -10, +3, +10, -11 декодировано успешно, устройство 200 декодирования продолжает выполнять обновление, соответствующее другой строке проверочной матрицы, и генерировать второе кодовое слово, соответствующее строке проверочной матрицы. Здесь, третья строка используется в качестве примера. После того как обновление, соответствующее третьей строке проверочной матрицы, завершено, полученное второе кодовое слово соответствует -5, +3, -8, -10, +3, +6, -7. Если блок 206 определения определяет, что второе кодовое слово -5, +3, -8, -10, +3, +6, -7 декодировано успешно, устройство 200 декодирования использует, в качестве результата декодирования, результат 1, 0, 1, 1, 0, 0, 1 отображения -5, +3, -8, -10, +3, +6, -7. В общем, в случае, когда блок 204 обработки генерирует второе кодовое слово с использованием способа 1, упомянутого выше, устройство 200 декодирования должно определять, что второе кодовое слово может пройти проверочное решение, соответствующее количеству последовательных строк в проверочной матрице, и затем результат отображения второго кодового слова, соответствующего последней строке проверочной матрицы, является результатом декодирования. Например, устройство 200 декодирования выполняет обработку в соответствии с последовательностью из первой строки, второй строки, до третьей строки проверочной матрицы и должно пройти проверочное решение для трех последовательных строк проверочной матрицы. Если решение для второго кодового слова, которое выведено посредством второй строки проверочной матрицы, безуспешно, второе кодовое слово, которое выведено посредством третьей строки, декодируется успешно, и вторые кодовые слова, которые выведены посредством первой строки и второй строки в следующем цикле обновления, успешно декодируются, результат отображения второго кодового слова, соответствующего второй строке проверочной матрицы, в следующем цикле обновления является результатом декодирования. Каждый цикл обновления включает в себя обработку, соответствующую каждой строке проверочной матрицы, и перед обработкой, соответствующей строке проверочной матрицы в цикле обновления, возбуждение для кодового элемента, соответствующего строке в процессе обработки строки проверочной матрицы в предыдущем цикле обновления, должно быть удалено.
[0065] В случае, когда блок 204 обработки генерирует второе кодовое слово с использованием способа 2, упомянутого выше, если блок 206 определения определяет, что второе кодовое слово -5, +3, -8, -10, +3, +6, -7 декодировано успешно, результат 1, 0, 1, 1, 0, 0, 1 отображения второго кодового слова является результатом декодирования. Если второе кодовое слово терпит неудачу в декодировании, выполняется следующий цикл обновления.
[0066] Данный вариант осуществления обеспечивает устройство декодирования. Устройство декодирования выполняет обработку в случае, который возникает в процессе обновления кодового слова и в котором значение обновленного кодового элемента превышает диапазон квантования кодового элемента, что препятствует устройству декодирования непосредственно квантовать обновленное кодовое слово, которое превышает диапазон квантования, и улучшает возможность исправления ошибок устройства декодирования в процессе декодирования LDPC-кода.
Вариант осуществления 2 устройства
[0067] Вариант осуществления 2 устройства обеспечивает устройство 400 декодирования, причем устройство декодирования сконфигурировано, чтобы декодировать LDPC-код. Фиг. 4 показывает схематичное представление структуры устройства 400 декодирования. Устройство 400 включает в себя: блок 402 получения, блок 404 обработки и блок 406 определения.
[0068] Блок 402 получения сконфигурирован, чтобы получать первое кодовое слово, причем первое кодовое слово сгенерировано устройством кодирования LDPC-кода в соответствии с порождающей матрицей и включает в себя M первых кодовых элементов, и M является положительным целым числом. Детальные сведения содержатся в приведенном выше описании архитектуры кодирования и декодирования LDPC-кода. Кодовое слово, полученное блоком 402 получения, может передаваться через канал связи или может считываться из носителя хранения данных. Здесь первый кодовый элемент представляет собой любой кодовый элемент в первом кодовом слове.
[0069] Блок 404 обработки сконфигурирован, чтобы получать Р первых кодовых элементов, соответствующих n-ой строке проверочной матрицы; получать Р первых значений обновления, соответствующих Р первым кодовым элементам; получать, в соответствии с Р первыми значениями обновления, P вторых значений обновления, соответствующих Р первым кодовым элементам; последовательно определять, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента; сохранять Р первых кодовых элементов не обновленными, если определено, что a-ое второе значение обновления из Р вторых значений обновления превышает диапазон квантования кодового элемента; обновлять Р первых кодовых элементов с использованием P вторых значений обновления, если определено, что каждое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента; получать, в соответствии с вышеуказанной операцией обновления, P вторых кодовых элементов, соответствующих n-ой строке проверочной матрицы; и генерировать второе кодовое слово в соответствии с P вторыми кодовыми элементами, где проверочная матрица соответствует порождающей матрице и включает в себя N строк, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P, и каждое второе значение обновления является суммой каждого первого значения обновления и соответствующего первого кодового элемента.
[0070] Блок 406 определения сконфигурирован, чтобы получать второе кодовое слово, сгенерированное блоком 404 обработки определения, и определять, декодировано ли второе кодовое слово успешно.
[0071] В этом варианте осуществления, например, вышеуказанная проверочная матрица используется устройством декодирования, то есть, N равно 3, и первое кодовое слово, полученное блоком 402 получения, соответствует: -9, +7, -12, +4, +7, +10, -11, то есть, M равно 7. Блок 404 обработки генерирует, в соответствии с кодовым элементом, который находится в первом кодовом слове и связан с первой строкой проверочной матрицы, значение обновления, которое соответствует кодовому элементу, который находится в кодовом слове и связан с первой строкой проверочной матрицы, то есть, n равно 1. Следует отметить, что, во время реальной работы, блок 404 обработки может выполнять обработку в соответствии с последовательностью из первой строки, второй строки, до третьей строки проверочной матрицы или может выполнять обработку в соответствии с другой последовательностью, где значение n может быть любым положительным целым числом, меньшим или равным количеству строк проверочной матрицы. После получения кодовых элементов, связанных с первой строкой проверочной матрицы, а именно, 1-го кодового элемента -9, 2-го кодового элемента +7 и 4-го кодового элемента +4, где первые кодовые элементы включают в себя -9, +7 и +4, блок 404 обработки генерирует значение обновления +4, соответствующее первому кодовому элементу в первом кодовом слове, значение обновления -4, соответствующее второму кодовому элементу, и значение обновления -7, соответствующее четвертому кодовому элементу, то есть, P равно 3, и первые значения обновления включают в себя +4, -4 и -7. Символ первого значения обновления, соответствующего каждому первому кодовому элементу из Р первых кодовых элементов, является произведением символов других первых кодовых элементов за исключением этого первого кодового элемента, и абсолютное значение первого значения обновления, соответствующего каждому первому кодовому элементу из Р первых кодовых элементов, является абсолютным значением первого кодового элемента с наименьшим абсолютным значением (если этот первый кодовый элемент сам является первым кодовым элементом с наименьшим абсолютным значением, абсолютное значение первого значения обновления, соответствующего этому первому кодовому элементу, устанавливается на абсолютное значение первого кодового элемента с вторым наименьшим абсолютным значением). Например, если первые кодовые элементы включают в себя кодовый элемент A, кодовый элемент B и кодовый элемент C, символ значения обновления, соответствующего кодовому элементу A, является произведением символов кодового элемента B и кодового элемента C, и абсолютное значение значения обновления, соответствующего кодовому элементу A, является меньшим абсолютным значением из абсолютных значений кодового элемента B и кодового элемента C.
[0072] После получения значений обновления, соответствующих кодовым элементам, которые находятся в первом кодовом слове и связаны с первой строкой проверочной матрицы, блок 404 обработки суммирует каждое первое значение обновления с его соответствующим первым кодовым элементом, чтобы получить второе значение обновления, то есть, вторые значения обновления включают в себя -5 (сумма +4 и -9), +3 (сумма +7 и -4) и -3 (сумма +4 и -7).
[0073] После получения вторых значений обновления, блок 404 обработки последовательно определяет, превышает ли каждое второе значение обновления диапазон квантования кодового элемента; если блок 404 обработки определяет, что а-ое второе значение обновления превышает диапазон квантования кодового элемента, то блок 404 обработки не обновляет Р первых кодовых элементов с использованием Р вторых значений обновления, то есть, сохраняет Р первых кодовых элементов не обновленными; а если блок 404 обработки определяет, что каждое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента, то блок 404 обработки обновляет Р первых кодовых элементов с использованием Р вторых значений обновления.
[0074] В соответствии с вышеуказанным примером, поскольку P равно 3 в этом примере, значение a может быть 1, 2 или 3 и соответствует второму значению обновления -5, +3 или -3, соответственно. Например, a установлено в 1, и блок 404 обработки определяет, превышает ли второе значение обновления -5 диапазон квантования кодового элемента; если второе значение обновления -5 превышает диапазон квантования кодового элемента, -9 не обновляется с использованием -5, -4 не обновляется с использованием +3, и -7 не обновляется с использованием -3; аналогично, если другое второе значение обновления превышает диапазон квантования кодового элемента, обновление первых кодовых элементов с использованием любого из вторых значений обновления отменяется; если ни одно из вторых значений обновления -5, +3 и -3 не превышает диапазон квантования кодового элемента, -9 обновляется с использованием -5, -4 обновляется с использованием +3, и -7 обновляется с использованием -3. Например, диапазон квантования кодового элемента в этом варианте осуществления соответствует от -15 до +15. Тогда, ни одно из вторых значений обновления не превышает диапазон квантования кодового элемента. Блок 404 обработки генерирует вторые кодовые элементы после завершения обработки, соответствующей первой строке проверочной матрицы. Вторые кодовые элементы включают в себя -5, +3 и -3. Генерация каждого кодового элемента из вторых кодовых элементов заключается в сохранении неизменным соответствующего первого кодового элемента (если любое одно из вторых значений обновления превышает диапазон квантования кодового элемента) или в обновлении соответствующего первого кодового элемента с использованием соответствующего второго значения обновления (если ни одно из вторых значений обновления не превышает диапазон квантования кодового элемента).
[0075] Блок 404 обработки генерирует второе кодовое слово в соответствии с вторыми кодовыми элементами. В основном, представлены два способа генерации второго кодового слова следующим образом.
[0076] Способ 1: Второе кодовое слово генерируется путем обновления, на второй кодовый элемент, кодового элемента (то есть, первого кодового элемента), который находится в первом кодовом слове -9, +7, -12, +4, +7, +10, -11 и связан с n-ой (n равно 1 в этом примере) строкой проверочной матрицы, и первый кодовый элемент, который находится в первом кодовом слове и не связан с n-ой строкой проверочной матрицы, резервируется, то есть, второе кодовое слово соответствует -5, +3, -12, -3, +7, +10, -11.
[0077] Способ 2: Первое временное кодовое слово генерируется путем обновления, на второй кодовый элемент, первого кодового элемента, который находится в первом кодовом слове и связан с n-ой (n равно 1 в этом примере) строкой проверочной матрицы, и первый кодовый элемент, который находится в первом кодовом слове и не связан с первой строкой проверочной матрицы, резервируется, то есть, первое временное кодовое слово соответствует -5, +3, -12, -3, +7, +10, -11.
[0078] Второе временное кодовое слово генерируется путем обновления кодовых элементов, которые находятся в первом временном кодовом слове и связаны с второй строкой проверочной матрицы. Сначала получают кодовые элементы -12, +4 и +7, которые находятся в первом кодовом слове и связаны с второй строкой проверочной матрицы. Генерируются третьи значения обновления, включающие в себя +4, -7 и -4, которые соответствуют кодовым элементам, которые находятся в первом кодовом слове и связаны с второй строкой проверочной матрицы. Четвертые значения обновления генерируются путем суммирования +4, -7 и -4 с кодовыми элементами -12, -3 и +7, которые находятся в первом временном кодовое слово и связаны с второй строкой проверочной матрицы, где четвертые значения обновления включают в себя -8, -10 и +3. Определяется, превышает ли любое одно из -8, -10 и +3 диапазон квантования кодового элемента. Если любое одно из четвертых значений обновления превышает диапазон квантования кодового элемента, то первое временное кодовое слово не обновляется с использованием четвертых значений обновления. Если ни одно из четвертых значений обновления не превышает диапазон квантования кодового элемента, то первое временное кодовое слово -5, +3, -12, -3, +7, +10, -11 обновляется с использованием четвертых значений обновления -8, -10 и +3, чтобы получить второе временное кодовое слово -5, +3, -8, -10, +3, +10, -11.
[0079] Второе кодовое слово генерируется путем обновления кодовых элементов, которые находятся во втором временном кодовом слове и связаны с третьей строкой проверочной матрицы. Сначала получают кодовые элементы +4, +10 и -11, которые находятся в первом кодовом слове и связаны с третьей строкой проверочной матрицы. Генерируются пятые значения обновления, включающие в себя -10, -4 и +4, которые соответствуют кодовым элементам, которые находятся в первом кодовом слове и связаны с третьей строкой проверочной матрицы. Шестые значения обновления, включающие в себя -20, +6 и -7, генерируются путем суммирования -10, -4 и +4 с кодовыми элементами -10, +10 и -11, которые находятся во втором временном кодовом слове и связаны с третьей строкой проверочной матрицы. Определяется, превышает ли любое одно из -20, +6 и -7 диапазон квантования кодового элемента. Если любое одно из шестых значений обновления превышает диапазон квантования кодового элемента, то второе временное кодовое слово не обновляется с использованием шестых значений обновления. Если ни одно из шестых значений обновления не превышает диапазон квантования кодового элемента, то второе временное кодовое слово -5, +3, -8, -10, +3, +10, -11 обновляется с использованием шестых значений обновления -20, +6 и -7. В этом примере получается второе кодовое слово -5, +3, -8, -10, +3, +10, -11, потому что шестое значение обновления -20 превышает диапазон квантования кодового элемента.
[0080] Следует отметить, что в способе 2, второе кодовое слово получается путем обработки первого кодового слова в соответствии с последовательностью от первой строки, второй строки, до третьей строки проверочной матрицы, но в реальном использовании процесса согласно способу 2, первое кодовое слово может обрабатываться в соответствии с другой последовательности проверочной матрицы. Например, первая строка может сначала обрабатываться для получения первого временного кодового слова, затем третья строка обрабатывается для получения второго временного кодового слова, и затем вторая строка обрабатывается для получения второго кодового слова. Может иметься множество последовательностей обработки. Требуется только, что, в процессе генерации второго кодового слова с использованием первого кодового слова, каждая строка проверочной матрицы обрабатывается соответственно, и обработка, соответствующая каждой строке проверочной матрицы, выполняется только однократно.
[0081] Опционально, блок 404 обработки включает в себя модуль хранения, сконфигурированный с возможностью хранить Р первых кодовых элементов, и дополнительно сконфигурирован, чтобы хранить P вторых значений обновления. При определении, что a-ое второе значение обновления из Р вторых значений обновления превышает диапазон квантования кодового элемента, блок 404 обработки считывает Р первых кодовых элементов, сохраненных в модуле хранения; то есть, если второе значение обновления превышает диапазон квантования кодового элемента, блок 404 обработки не обновляет первые кодовые элементы с использованием вторых значений обновления и поэтому считывает Р первых кодовых элементов из модуля хранения, чтобы получить вторые кодовые элементы. При определении, что каждое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента, блок 404 обработки считывает P вторых значений обновления, сохраненных в модуле хранения; то есть, если ни одно из вторых значений обновления не превышает диапазон квантования кодового элемента, то блок 404 обработки обновляет соответствующие Р первых кодовых элементов с использованием P вторых значений обновления и поэтому считывает P вторых значений обновления из модуля хранения и заменяет Р первых кодовых элементов, чтобы получить вторые кодовые элементы.
[0082] В соответствии с вышеуказанным примером, модуль хранения хранит первые кодовые элементы -9, +7 и +4, и модуль хранения дополнительно хранит вторые значения обновления -5, +3 и -3. Если блок 404 обработки определяет, что второе значение обновления превышает диапазон квантования кодового элемента, то блок 404 обработки считывает первые кодовые элементы -9, +7 и +4 и отменяет обновление первых кодовых элементов с использованием любого одного из вторых значений обновления. Если блок 404 обработки определяет, что ни одно из вторых значений обновления не превышает диапазон квантования кодового элемента, то блок 404 обработки считывает P вторых значений обновления. Например, блок 404 обработки генерирует второе кодовое слово с использованием способа 1. Блок 404 обработки определяет, что ни одно из вторых значений обновления -5, +3 и -3 не превышает диапазон квантования кодового элемента, блок 404 обработки считывает вторые значения обновления -5, +3 и -3, чтобы обновить первое кодовое слово и генерировать второе кодовое слово -5, +3, -12, -3, +7, +10, -11.
[0083] Блок 404 обработки посылает второе кодовое слово на блок 406 определения, причем блок 406 определения сконфигурирован, чтобы определять, декодировано ли второе кодовое слово успешно.
[0084] В случае, когда блок 404 обработки генерирует второе кодовое слово с использованием способа 1, упомянутого выше, если блок 406 определения определяет, что второе кодовое слово -5, +3, -12, -3, +7, +10, -11 декодировано успешно, устройство 400 декодирования продолжает выполнять обновление, соответствующее другой строке проверочной матрицы, и генерировать второе кодовое слово, соответствующее этой строке проверочной матрицы. Здесь, вторая строка используется в качестве примера. После того как обновление, соответствующее второй строке проверочной матрицы, завершено, полученное второе кодовое слово соответствует -5, +3, -8, -10, +3, +10, -11. Если блок 406 определения определяет, что второе кодовое слово -5, +3, -8, -10, +3, +10, -11 декодировано успешно, то устройство 400 декодирования продолжает выполнять обновление, соответствующее другой строке проверочной матрицы, и генерировать второе кодовое слово, соответствующее этой строке проверочной матрицы. Здесь, третья строка используется в качестве примера. После того как обновление, соответствующее третьей строке проверочной матрицы, завершено, поскольку значение обновления, соответствующее кодовому элементу -10, превышает диапазон квантования кодового элемента, обновление, соответствующее третьей строке проверочной матрицы, является недействительным, и получается второе кодовое слово -5, +3, -8, -10, +3, +10, -11. Если блок 406 определения определяет, что второе кодовое слово -5, +3, -8, -10, +3, +10, -11 декодировано успешно, устройство декодирования 400 использует, в качестве результата декодирования, результат 1, 0, 1, 1, 0, 0, 1 отображения -5, +3, -8, -10, +3, +10, -11. Обычно, в случае, когда блок 404 обработки генерирует второе кодовое слово с использованием способа 1, упомянутого выше, устройство декодирования 400 должно определять, что второе кодовое слово может пройти проверочное решение, соответствующее количеству последовательных строк в проверочной матрице, и тогда результат отображения второго кодового слова, соответствующего последней строке проверочной матрицы, является результатом декодирования. Например, устройство 400 декодирования выполняет обработку в соответствии с последовательностью из первой строки, второй строки, до третьей строки проверочной матрицы и должно проходить проверочное решение для трех последовательных строк проверочной матрицы. Если решение для второго кодового слова, которое выводится посредством второй строки проверочной матрицы, безуспешно, второе кодовое слово, которое выводится посредством третьей строки, декодируется успешно, и вторые кодовые слова, которые выводятся посредством первой строки и второй строки в следующем цикле обновления, приводят к успеху в декодировании, результат отображения второго кодового слова, соответствующего второй строке проверочной матрицы в следующем цикле обновления, является результатом декодирования. Каждый цикл обновления включает в себя обработку, соответствующую каждой строке проверочной матрицы, и перед обработкой, соответствующей строке проверочной матрицы в цикле обновления, возбуждение для кодового элемента, соответствующего строке в процессе обработки строки проверочной матрицы в предыдущем цикле обновления, должно быть удалено.
[0085] В случае, когда блок 404 обработки генерирует второе кодовое слово с использованием способа 2, упомянутого выше, если блок 406 определения определяет, что второе кодовое слово -5, +3, -8, -10, +3, +10, -11 декодировано успешно, результат 1, 0, 1, 1, 0, 0, 1 отображения второго кодового слова является результатом декодирования. Если второе кодовое слово терпит неудачу в декодировании, выполняется следующий цикл обновления.
[0086] Этот вариант осуществления обеспечивает устройство декодирования. Устройство декодирования выполняет обработку в случае, который возникает в процессе обновления кодового слова и в котором значение обновленного кодового элемента превышает диапазон квантования кодового элемента, что препятствует устройству декодирования непосредственно квантовать обновленное кодовое слово, которое превышает диапазон квантования, и улучшает возможности исправления ошибок устройства декодирования в процессе декодирования LDPC-кода.
Вариант осуществления 3 устройства
[0087] Вариант осуществления 3 устройства обеспечивает устройство декодирования 600. Фиг. 5 показывает схематичное представление структуры устройства 600 декодирования. В этом варианте осуществления, внутренняя структура блока 204 обработки варианта осуществления 1 устройства детализирована как блок 604 обработки. Общая функция блока 604 обработки в этом варианте осуществления является той же самой, что и функция блока 204 обработки в варианте осуществления 1 устройства.
[0088] Ниже детально описан принцип работы устройства 600 декодирования в варианте осуществления 3 устройства с использованием примера, в котором кодовое слово, полученное устройством 600 декодирования, соответствует -9, -+7, -12, -+4, +7, +10, -11, диапазон квантования кодового элемента составляет от -15 до +15, и следующая проверочная матрица используется устройством 600 декодирования.
[0089] После получения кодового слова -9, +7, -12, +4, +7, +10, -11, блок 602 получения сначала посылает кодовое слово на блок 606 определения, и блок 606 определения отображает отрицательные значения в кодовом слове на 1 и отображает положительные значения на 0, чтобы получить отображенное кодовое слово 1, 0, 1, 0, 0, 0, 1, и выполняет операцию исключающее ИЛИ, также упоминаемую как операция суммы по модулю 2 или суммирования по модулю 2, над каждым кодовым элементом в отображенном кодовом слове в соответствии с уравнением проверки. В соответствии с операцией над первой строкой проверочной матрицы, (1+0+0)mod(2)=1, и кодовое слово терпит неудачу в декодировании. Если кодовое слово, полученное устройством 600 декодирования, проходит проверочное решение блока 606 определения, прежде чем кодовое слово обрабатывается блоком 604 обработки, кодовое слово не нуждается в последующей обработке, и устройство 600 декодирования непосредственно использует результат отображения кодового слова как результат декодирования. Кодовое слово 1, 0, 1, 0, 0, 0, 1 должно пройти проверку, соответствующую всем трем строкам проверочной матрицы, прежде чем блок 606 определения определит, что кодовое слово декодировано успешно.
[0090] Блок 6042 обработки переменного узла принимает кодовое слово -9, +7, -12, +4, +7, +10, -11 и сохраняет -9, +7, -12, +4, +7, +10, -11 в модуле 6043 хранения. Можно понять из первой строки проверочной матрицы, что первый, второй и четвертый переменные узлы связаны с первой строкой проверочной матрицы, то есть, три кодовых элемента -9, +7 и +4 связаны с первой строкой проверочной матрицы. Блок 6042 обработки переменного узла посылает -9, +7 и +4 к блоку 6044 обработки проверочного узла. На практике, обработка может начинать с любой строки проверочной матрицы. Следует отметить, что если обновление, соответствующее строке проверочной матрицы, или обновления, соответствующие всем строкам проверочной матрицы, уже выполнены, блок 6042 обработки переменного узла дополнительно должен удалить влияние предшествующего цикла значений обновления на кодовое слово перед выполнением этого цикла обновления.
[0091] После приема -9, +7 и +4, блок 6044 обработки проверочного узла генерирует, в соответствии с первой строкой проверочной матрицы, значение обновления +4 для возврата к первому переменному узлу, значение обновления -4 для возврата к второму переменному узлу и значение обновления -7 для возврата к четвертому переменному узлу и посылает три значения обновления к блоку 6042 обработки переменного узла.
[0092] Блок 6042 обработки переменного узла может затем выполнять любое из следующих двух решений.
[0093] Решение 1: После приема значений обновления, блок 6042 обработки переменного узла суммирует кодовые элементы первого, второго и четвертого переменных узлов с их соответствующими значениями обновления и поэтому кодовый элемент, соответствующий первому переменному узлу, обновляется на -5, кодовый элемент, соответствующий второму переменному узлу, обновляется на +3, и кодовый элемент, соответствующий четвертому переменному узлу, обновляется на -3; сохраняет обновленные кодовые элементы первого, второго и четвертого переменных узлов в модуле 6043 хранения; если значение обновления кодового элемента, соответствующего любому переменному узлу, в процессе обновления превышает диапазон квантования кодового элемента, то есть, от -15 до +15, то отменяет обновление кодового элемента, соответствующего переменному узлу, считывает, из модуля 6043 хранения, кодовый элемент перед обновлением, продолжает обновлять кодовый элемент, соответствующий следующего переменному узлу, и повторяет действия определения для обновления кодового элемента, соответствующего следующему переменному узлу, пока обработка всех кодовых элементов, соответствующих первому переменному узлу, второму переменному узлу и четвертому переменному узлу, не будет завершена.
[0094] Решение 2: После приема значений обновления, блок 6042 обработки переменного узла хранит все значения обновления; суммирует кодовые элементы первого, второго и четвертого переменных узлов с их соответствующими значениями обновления; если значение обновления кодового элемента, соответствующего любому переменному узлу, в процессе обновления превышает диапазон квантования кодового элемента, то есть, от -15 до +15, то отменяет обновление кодового элемента, соответствующего переменному узлу, считывает, из модуля 6043 хранения, кодовый элемент перед обновлением и продолжает обновлять кодовый элемент, соответствующий следующему переменному узлу; после того как обновления первой строки проверочной матрицы завершены, продолжает обновлять вторую строку проверочной матрицы, то есть, выполнять обработку обновления, соответствующую проверочному узлу 2 на диаграмме Таннера, показанной на фиг. 6. На фиг. 6, переменные узлы от 1 до 7 соответствуют семи кодовым элементам, принятым блоком 6042 обработки переменного узла, соответственно, и переменные узлы от 1 до 3 соответствуют строкам от первой до третьей проверочной матрицы, соответственно. На фиг. 6, действие обработки, выполняемое переменными узлами от 1 до 7, также выполняется блоком 6042 обработки переменного узла на фиг. 5, и действие обработки, выполняемое проверочными узлами от 1 до 3, также выполняется блоком 6044 обработки проверочного узла на фиг. 5.
[0095] После того как проверочный узел 1 возвращает значения обновления к переменному узлу 1, переменному узлу 2 и переменному узлу 4, если ни один из обновленных кодовых элементов, соответствующих переменному узлу 1, переменному узлу 2 и переменному узлу 4, не превышает диапазон квантования кодового элемента, переменный узел 3, переменный узел 4 и переменный узел 5 продолжают посылать соответствующие кодовые элементы к проверочному узлу 2, и проверочный узел 2 генерирует соответствующие значения обновления и затем возвращает значения обновления к соответствующим переменным узлам, и если диапазон квантования кодового элемента все еще не превышен, обновление, соответствующее проверочному узлу 3, продолжается. В этом случае, поскольку кодовый элемент, соответствующий переменному узлу 4, принимает участие в обработке, соответствующей проверочному узлу 1, и также принимает участие в обработке, соответствующей проверочному узлу 2, и обработке, соответствующей проверочному узлу 3, на фиг. 6, если сумма кодового элемента +4, соответствующего переменному узлу 4, и значения обновления -7, возвращенного проверочным узлом 1, не превышает диапазон квантования кодового элемента, сумма кодового элемента, соответствующего переменному узлу, и значения обновления, возвращенного другим проверочным узлом, может превысить диапазон квантования кодового элемента. В примере, показанном на фиг. 6, обновления, возвращенные проверочным узлом 1, проверочным узлом 2 и проверочным узлом 3, к переменному узлу 4, равны -7, -7 и -10, соответственно. После того, как три значения обновления просуммированы с кодовым элементом +4, полученное значение -20 превышает диапазон квантования кодового элемента. Поскольку все значения обновления уже сохранены, три значения обновления сортируются для получения значения обновления, которое имеет наибольшее влияние на превышение диапазона квантования кодового элемента. Поскольку кодовый элемент в этом примере превышает минимальное значение диапазона квантования кодового элемента, значение обновления с наибольшим влиянием является значением обновления с наименьшим значением, то есть, -10, переменный узел 4 отменяет значение обновления -10, возвращенное проверочным узлом 3, то есть, после этого цикла обновления, кодовый элемент, соответствующий переменному узлу 4, равен +4+(-7)+(-7) и равен -10. В решении 2, после того как сумма кодового элемента любого переменного узла и значений обновления, возвращенных множеством проверочных узлов, превышает диапазон квантования кодового элемента, значения обновления, принятые переменным узлом, сортируются; если сумма кодового элемента переменного узла и значений обновления превышает максимальное значение диапазона квантования кодового элемента, переменный узел сначала отменяет наибольшее значение из значений обновления; и если сумма кодового элемента переменного узла и значений обновления превышает минимальное значение диапазона квантования кодового элемента, то переменный узел сначала отменяет наименьшее значение из значений обновления, что гарантирует, что отмененное значение обновления имеет наименьшее влияние на процесс декодирования.
[0096] Каждый раз, когда блок 6042 обработки переменного узла завершает обновление кодовых элементов, соответствующих одной строке проверочной матрицы, то есть, обработку значения обновления, посланного одним проверочным узлом, блок 6042 обработки переменного узла посылает обновленное кодовое слово в блок 606 определения, и блок 606 определения отображает обновленное кодовое слово и определяет, проходит ли эта строка кодового слова проверочное решение. В предыдущем примере, после того как обновления кодовых элементов, соответствующих переменным узлам, соответствующим первой строке проверочной матрицы, завершены, обновленное кодовое слово соответствует -5, +3, -12, -3, +7, +10, -11, и блок 606 определения выполняет решение над обновленным кодовым словом. Относительно деталей, можно сослаться на описание того, как блок 204 обработки генерирует второе кодовое слово с использованием способа 1 в варианте осуществления 1 устройства. После обновления кодовых элементов, соответствующих одной строке проверочной матрицы, и получения обновленного кодового слова, блок 6042 обработки переменного узла может продолжать генерировать второе кодовое слово с использованием способа 2, используемого блоком 204 обработки в варианте осуществления 1 устройства, и посылать второе кодовое слово в блок 606 определения. Следует отметить, что перед выполнением отображения и решением над кодовым словом, блок 606 определения может дополнительно выполнить обработку алгоритма минимального смещения над кодовым словом или может дополнительно выполнить обработку алгоритма нормализованной минимальной суммы над кодовым словом.
[0097] Этот вариант осуществления обеспечивает устройство декодирования. Устройство декодирования выполняет обработку в случае, который возникает в процессе обновления кодового слова и в котором значение обновленного кодового элемента превышает диапазон квантования кодового элемента, что препятствует устройству декодирования непосредственно квантовать обновленное кодовое слово, которое превышает диапазон квантования кодового элемента, и улучшает возможности исправления ошибок устройства декодирования в процессе декодирования.
Вариант осуществления 4 устройства
[0098] Вариант осуществления 4 устройства обеспечивает устройство декодирования 800. Фиг. 7 показывает схематичное представление структуры устройства 800 декодирования. В этом варианте осуществления, внутренняя структура блока 404 обработки в варианте осуществления 2 устройства детализирована как блок 804 обработки. Общая функция блока 804 обработки в этом варианте осуществления является той же самой, что и функция блока 404 обработки в варианте осуществления 2 устройства.
[0099] Ниже подробно описан принцип работы устройства 800 декодирования, предложенного в варианте осуществления 4 устройства, с использованием примера, в котором кодовое слово, полученное устройством 800 декодирования, соответствует -9, -+7, -12, -+4, +7, +10, -11, и диапазон квантования кодового элемента составляет от -15 до +15, и следующая проверочная матрица используется устройством 800 декодирования.
[0100] После получения кодового слова -9, +7, -12, +4, +7, +10, -11, блок 802 получения сначала посылает кодовое слово на блок 806 определения, и блок 806 определения отображает отрицательные значения в кодовом слове на 1 и отображает положительные значения на 0, чтобы получить отображенное кодовое слово 1, 0, 1, 0, 0, 0, 1, и выполняет операцию исключающее ИЛИ, также упоминаемую как операция суммы по модулю 2 или суммирования по модулю 2, над каждым кодовым элементом в отображенном кодовом слове в соответствии с уравнением проверки. В соответствии с операцией над первой строкой проверочной матрицы, (1+0+0)mod(2)=1, и кодовое слово терпит неудачу в декодировании. Если кодовое слово, полученное устройством 800 декодирования, проходит решение блока 806 определения, прежде чем кодовое слово обрабатывается блоком 804 обработки, кодовое слово не нуждается в последующей обработке, и устройство 800 декодирования непосредственно использует результат отображения кодового слова как результат декодирования. Кодовое слово 1, 0, 1, 0, 0, 0, 1 должно пройти проверку, соответствующую всем трем строкам проверочной матрицы, прежде чем блок 806 определения определяет, что кодовое слово декодировано успешно.
[0101] Блок 8042 обработки переменного узла принимает кодовое слово -9, +7, -12, +4, +7, +10, -11 и сохраняет -9, +7, -12, +4, +7, +10, -11 в модуле 8043 хранения. Можно понять из первой строки проверочной матрицы, что первый, второй и четвертый переменные узлы связаны с первой строкой проверочной матрицы, то есть, три кодовых элемента -9, +7 и +4 связаны с первой строкой проверочной матрицы. Блок 8042 обработки переменного узла посылает -9, +7 и +4 в блок 8044 обработки проверочного узла. На практике, обработка может начинаться с любой строки проверочной матрицы. Следует отметить, что если обновление, соответствующее строке проверочной матрицы, или обновления, соответствующие всем строкам проверочной матрицы, уже выполнены, блок 8042 обработки переменного узла дополнительно должен удалить влияние предшествующего цикла значений обновления на кодовое слово перед выполнением этого цикла обновления.
[0102] После приема -9, +7 и +4, блок 8044 обработки проверочного узла генерирует, в соответствии с первой строкой проверочной матрицы, значение обновления +4 для возврата к первому переменному узлу, значение обновления -4 для возврата к второму переменному узлу и значение обновления -7 для возврата к четвертому переменному узлу и посылает три значения обновления к блоку 8042 обработки переменного узла.
[0103] Блок 8042 обработки переменного узла может затем выполнять следующее решение: после приема значений обновления, суммирование кодовых элементов первого, второго и четвертого переменных узлов с их соответствующими значениями обновления, где кодовый элемент, соответствующий первому переменному узлу, обновляется на -5, кодовый элемент, соответствующий второму переменному узлу, обновляется на +3, и кодовый элемент, соответствующий четвертому переменному узлу, обновляется на -3; сохранение обновленных кодовых элементов первого, второго и четвертого переменных узлов в модуле 8043 хранения; если значение обновления кодового элемента, соответствующего любому переменному узлу, превышает диапазон квантования кодового элемента в процессе обновления, отмену этого цикла обновления кодовых элементов, соответствующих первому, второму и четвертому переменным узлам, и считывание, из модуля 8043 хранения, кодовых элементов, соответствующих первому, второму и четвертому переменным узлам, перед обновлением.
[0104] Каждый раз, когда блок 8042 обработки переменного узла завершает обновление кодовых элементов, соответствующих одной строке проверочной матрицы, то есть, обработку значения обновления, посланного одним проверочным узлом, блок 8042 обработки переменного узла посылает обновленное кодовое слово в блок 806 определения, и блок 806 определения отображает обновленное кодовое слово и определяет, проходит ли эта строка кодового слова проверочное решение. В предыдущем примере, после того как обновления кодовых элементов, соответствующих переменным узлам, соответствующим первой строке проверочной матрицы, завершены, обновленное кодовое слово соответствует -5, +3, -12, -3, +7, +10, -11, и блок 806 определения выполняет принятие решения над обновленным кодовым словом. Относительно деталей, можно сослаться на описание того, как блок 404 обработки генерирует второе кодовое слово с использованием способа 1 в варианте осуществления 2 устройства. После обновления кодовых элементов, соответствующих одной строке проверочной матрицы, и получения обновленного кодового слова, блок 8042 обработки переменного узла может продолжать генерировать второе кодовое слово с использованием способа 2, используемого блоком 404 обработки в варианте осуществления 2 устройства, и посылать второе кодовое слово в блок 806 определения. Следует отметить, что, перед выполнением отображения и решением над кодовым словом, блок 806 определения может дополнительно выполнить обработку алгоритма минимального смещения над кодовым словом или может дополнительно выполнить обработку алгоритма нормализованной минимальной суммы над кодовым словом.
[0105] Этот вариант осуществления обеспечивает устройство декодирования. Устройство декодирования выполняет обработку в случае, который возникает в процессе обновления кодового слова и в котором значение обновленного кодового элемента превышает диапазон квантования кодового элемента, что препятствует устройству декодирования непосредственно квантовать обновленное кодовое слово, которое превышает диапазон квантования кодового элемента, и улучшает возможности исправления ошибок устройства декодирования в процессе декодирования.
Вариант осуществления 1 способа
[0106] Этот вариант осуществления способа обеспечивает способ декодирования, причем способ декодирования используется для декодирования LDPC-кода. Этот способ может выполняться устройством 200 декодирования в соответствии с вариантом осуществления 1 устройства или выполняться устройством 600 декодирования в соответствии с вариантом осуществления 3 устройства. Фиг. 8 показывает блок-схему последовательности операций способа декодирования. Способ включает в себя:
[0107] Этап 1002: Получение первого кодового слова, причем первое кодовое слово генерируется устройством кодирования LDPC-кода в соответствии с порождающей матрицей и включает в себя M первых кодовых элементов, и M является положительным целым числом. Относительно детальной информации об исполнении этапа 1002 можно сослаться на блок 202 получения в варианте осуществления 1 устройства или блок 602 получения в варианте осуществления 3 устройства.
[0108] Этап 1004: Получение Р первых кодовых элементов, соответствующих n-ой строке проверочной матрицы; получение Р первых значений обновления, соответствующих Р первым кодовым элементам; получение, в соответствии с Р первыми значениями обновления, P вторых значений обновления, соответствующих Р первым кодовым элементам; последовательное определение, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента; сохранение a-го первого кодового элемента не обновленным, если определено, что a-ое второе значение обновления из Р вторых значений обновления превышает диапазон квантования кодового элемента; обновление b-го первого кодового элемента с использованием b-го второго значения обновления, если определено, что b-ое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента; получение, в соответствии с вышеуказанной операцией обновления, P вторых кодовых элементов, соответствующих n-ой строке проверочной матрицы; и генерацию второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, где проверочная матрица соответствует порождающей матрице и включает в себя N строк, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P, и каждое второе значение обновления является суммой каждого первого значения обновления и соответствующего первого кодового элемента. Относительно детальной информации о выполнении этапа 1004, можно сослаться на блок 204 обработки в варианте осуществления 1 устройства или блок 604 обработки и все подблоки блока 604 обработки в варианте осуществления 3 устройства.
[0109] Этап 1006: Определение, декодировано ли второе кодовое слово, сгенерированное на этапе 1004, успешно. Относительно детальной информации о выполнении этапа 1006, можно сослаться на блок 206 определения в варианте осуществления 1 устройства или блок 606 определения в варианте осуществления 3 устройства.
[0110] В соответствии со способом декодирования, обеспеченным в этом варианте осуществления, обработка выполняется в случае, который возникает в процессе обновления кодового слова и в котором значение обновленного кодового элемента превышает диапазон квантования кодового элемента, что препятствует непосредственному квантованию обновленного кодового слова, которое превышает диапазон квантования кодового элемента в процессе декодирования и улучшает возможности исправления ошибок LDPC-кода.
Вариант осуществления 2 способа
[0111] Этот вариант осуществления способа обеспечивает способ декодирования, причем способ декодирования используется для декодирования LDPC-кода. Этот способ может выполняться устройством 400 декодирования в соответствии с вариантом осуществления 2 устройства или выполняться устройством 800 декодирования в соответствии с вариантом осуществления 4 устройства. Фиг. 9 показывает блок-схему последовательности операций способа декодирования. Способ включает в себя:
[0112] Этап 1202: Получение первого кодового слова, причем первое кодовое слово генерируется устройством кодирования LDPC-кода в соответствии с порождающей матрицей и включает в себя M первых кодовых элементов, и M является положительным целым числом. Относительно детальной информации о выполнении этапа 1202, можно сослаться на блок 402 получения в варианте осуществления 2 устройства или блок 802 получения в варианте осуществления 4 устройства.
[0113] Этап 1204: Получение Р первых кодовых элементов, соответствующих n-ой строке проверочной матрицы; получение Р первых значений обновления, соответствующих Р первым кодовым элементам; получение, в соответствии с Р первыми значениями обновления, P вторых значений обновления, соответствующих Р первым кодовым элементам; последовательное определение, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента; сохранение Р первых кодовых элементов не обновленными, если определено, что a-ое второе значение обновления из Р вторых значений обновления превышает диапазон квантования кодового элемента; обновление Р первых кодовых элементов с использованием P вторых значений обновления, если определено, что каждое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента; получение, в соответствии с вышеуказанной операцией обновления, P вторых кодовых элементов, соответствующих n-ой строке проверочной матрицы; и генерацию второго кодового слова в соответствии с P вторыми кодовыми элементами, где проверочная матрица соответствует порождающей матрице и включает в себя N строк, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P, и каждое второе значение обновления является суммой каждого первого значения обновления и соответствующего первого кодового элемента. Относительно детальной информации о выполнении этапа 1204, можно сослаться на блок 404 обработки в варианте осуществления 2 устройства или блок 804 обработки и все подблоки блока 804 обработки в варианте осуществления 4 устройства.
[0109] Этап 1206: Определение, декодировано ли второе кодовое слово, сгенерированное на этапе 1204, успешно. Относительно детальной информации о выполнении этапа 1206, можно сослаться на блок 406 определения в варианте осуществления 2 устройства или блок 806 определения в варианте осуществления 4 устройства.
[0115] В соответствии со способом декодирования, обеспеченном в этом варианте осуществления, обработка выполняется в случае, который возникает в процессе обновления кодового слова и в котором значение обновленного кодового элемента превышает диапазон квантования кодового элемента, что препятствует непосредственному квантованию обновленного кодового слова, которое превышает диапазон квантования кодового элемента в процессе декодирования и улучшает возможности исправления ошибок LDPC-кода.
Вариант осуществления 3 способа
[0116] Этот вариант осуществления способа обеспечивает способ декодирования. Поскольку декодируется LDPC-код, этот способ может выполняться любым одним из устройств декодирования в соответствии с вариантом осуществления 1 устройства или вариантом осуществления 2 устройства, или вариантом осуществления 3 устройства, или вариантом осуществления 4 устройства. Этот вариант осуществления в основном описывает то, каким образом получается окончательный результат декодирования в процессе, в котором блок 204 обработки, блок 404 обработки, блок 604 обработки и блок 804 обработки получают второе кодовое слово с использованием способа 1 и выполняют решение над вторым кодовым словом. Фиг. 10 показывает блок-схему последовательности операций способа декодирования. Способ включает в себя:
[0117] Этап 1402: Получение кодового слова, обработанного устройством кодирования LDPC-кода. В этом варианте осуществления способа, например, полученное кодовое слово соответствует -9, +7, -12, +4, +7, +10, -11, и используется следующая проверочная матрица. На практике, если один цикл или несколько циклов обновлений уже выполнены над кодовым словом перед выполнением этапа 1402, на этапе 1402, влияние, вносимое предыдущим циклом обновления кодового слова дополнительно должно быть удалено, то есть, предыдущий цикл значений обновления вычитается.
[0118] Этап 1404: Определение, декодировано ли кодовое слово -9, +7, -12, +4, +7, +10, -11 успешно. Отрицательные значения в кодовых элементах отображаются на 1 и положительные значения отображаются на 0, чтобы получить отображенное кодовое слово 1, 0, 1, 0, 0, 0, 1, и выполняется операция исключающее ИЛИ, также упоминаемая как операция суммы по модулю 2 или суммирования по модулю 2, над каждым кодовым элементом в отображенном кодовом слове в соответствии с уравнением проверки. В соответствии с операцией над K-ой строкой проверочной матрицы, (1+0+0)mod(2)=1, и кодовое слово терпит неудачу в декодировании. Если декодирование успешно на этапе 1404, результат декодирования выводится.
[0119] Этап 1406: Генерация, в соответствии с кодовыми элементами, соответствующими K-ой строке проверочной матрицы, значений обновления, соответствующих кодовым элементам, соответствующим K-ой строке. То есть, для первого кодового элемента -9, второго кодового элемента +7 и четвертого кодового элемента +4, генерируются значения обновления, соответствующие трем кодовым элементам, а именно, значение обновления +4 первого кодового элемента, значение обновления -4 второго кодового элемента и значение обновления -7 четвертого кодового элемента. Здесь, K может начинаться с 1.
[0120] После этапа 1406 может выполняться этап 1408 или этап 1410.
[0121] Этап 1408: Обновление, в соответствии со значениями обновления кодовых элементов, соответствующих K-ой строке проверочной матрицы, кодовых элементов, соответствующих K-ой строке проверочной матрицы; и, если значение обновления любого кодового элемента превышает диапазон квантования кодового элемента, отмену обновления кодового элемента. В этом варианте осуществления способа, диапазон квантования кодового элемента установлен от -15 до +15, и кодовое слово -9, +7, -12, +4, +7, +10, -11 обновляется на кодовое слово -5, +3, -12, -3, +7, +10, -11.
[0122] Этап 1410: Обновление, в соответствии со значениями обновления кодовых элементов, соответствующих K-ой строке проверочной матрицы, кодовых элементов, соответствующих K-ой строке проверочной матрицы; и, если значение обновления любого кодового элемента превышает диапазон квантования кодового элемента, отмену обновления всех кодовых элементов, соответствующих K-ой строке проверочной матрицы. Аналогично, поскольку ни один обновленный кодовый элемент не превышает диапазон квантования кодового элемента, кодовое слово -9, +7, -12, +4, +7, +10, -11 обновляется на кодовое слово -5, +3, -12, -3, +7, +10, -11.
[0123] Этап 1412: Определение, декодировано ли кодовое слово, обновленное на этапе 1408 или этапе 1410, успешно. Если декодирование успешно, счетчик получает приращение на 1 (каждый раз, когда устройство декодирования получает новое подлежащее декодированию кодовое слово, начальное значение счетчика равно 0; или каждый раз, когда устройство декодирования обнаруживает, что кодовое слово, полученное на этапе 1412, потерпело неудачу в декодировании, значение счетчика возвращается в 0); если декодирование безуспешно, этапы 1402-1412 выполняются снова над другой строкой проверочной матрицы с использованием обновленного кодового слова в качестве кодового слова, полученного на этапе 1402.
[0124] Этап 1414: Определение, достиг ли счетчик предварительно установленного порога; если предварительно установленный порог не достигнут, выполнение этапов 1402-1412 снова над другой строкой проверочной матрицы с использованием обновленного кодового слова в качестве кодового слова, полученного на этапе 1402; если предварительно установленный порог достигнут, использование, в качестве результата декодирования кодового слова, результата отображения окончательно полученного обновленного кодового слова и вывод результата декодирования.
[0125] Следует отметить, что этап 1404 не требуется в последующем процессе обновления, за исключением первого процесса обновления кодового слова. После того как этап 1402 выполнен, непосредственно выполняется этап 1406.
[0126] В соответствии со способом декодирования, обеспеченном в этом варианте осуществления, обработка выполняется в случае, который возникает в процессе обновления кодового слова процесса декодирования LDPC-кода и в котором значение обновленного кодового элемента превышает диапазон квантования кодового элемента, что препятствует непосредственному квантованию обновленного кодового слова, которое превышает диапазон квантования кодового элемента в процессе декодирования LDPC-кода и улучшает возможности исправления ошибок LDPC-кода.
Вариант осуществления 1 системы
[0127] Этот вариант осуществления системы обеспечивает систему передачи сигналов, включающую в себя устройство декодирования, устройство LDPC-кодирования и канал связи. Устройство декодирования может быть устройством 200 декодирования в соответствии с вариантом осуществления 1 устройства или устройством 600 декодирования в соответствии с вариантом осуществления 3 устройства.
[0128] Устройством кодирования LDPC-кода сконфигурировано, чтобы генерировать первое кодовое слово в соответствии с порождающей матрицей и передавать первое кодовое слово на устройство декодирования по каналу связи. Относительно последующего процесса, в котором устройство декодирования обрабатывает первое кодовое слово, можно сослаться на детали реализации устройства 200 декодирования в соответствии с вариантом осуществления 1 устройства или детали реализации устройства 600 декодирования в соответствии с вариантом осуществления 3 устройства.
[0129] Этот вариант осуществления обеспечивает систему передачи сигналов. Устройство декодирования в системе передачи сигналов выполняет обработку в случае, который возникает в процессе обновления кодового слова процесса декодирования LDPC-кода и в котором значение обновленного кодового элемента превышает диапазон квантования кодового элемента, что препятствует непосредственному квантованию обновленного кодового слова, которое превышает диапазон квантования кодового элемента в процессе декодирования LDPC-кода, улучшает возможности исправления ошибок в LDPC-коде, передаваемом в системе передачи сигналов, а также улучшает надежность сигнала, передаваемого в системе передачи сигналов.
Вариант осуществления 2 системы
[0130] Этот вариант осуществления системы обеспечивает систему передачи сигналов, включающую в себя устройство декодирования, устройство LDPC-кодирования и канал связи. Устройство декодирования может быть устройством 400 декодирования в соответствии вариантом осуществления 2 устройства или устройством 800 декодирования в соответствии с вариантом осуществления 4 устройства.
[0131] Устройство кодирования LDPC-кода сконфигурировано, чтобы генерировать первое кодовое слово в соответствии с порождающей матрицей и передавать первое кодовое слово на устройство декодирования по каналу связи. Относительно последующего процесса, в котором устройство декодирования обрабатывает первое кодовое слово, можно сослаться на детали реализации устройства 400 декодирования в соответствии с вариантом осуществления 2 устройства или детали реализации устройства 800 декодирования в соответствии с вариантом осуществления 4 устройства.
[0132] Этот вариант осуществления обеспечивает систему передачи сигналов. Устройство декодирования в системе передачи сигналов выполняет обработку в случае, который возникает в процессе обновления кодового слова процесса декодирования LDPC-кода и в котором значение обновленного кодового элемента превышает диапазон квантования кодового элемента, что препятствует непосредственному квантованию обновленного кодового слова, которое превышает диапазон квантования кодового элемента в процессе декодирования LDPC-кода, улучшает возможности исправления ошибок в LDPC-коде, передаваемом в системе передачи сигналов, а также улучшает надежность сигнала, передаваемого в системе передачи сигналов.
Вариант осуществления 3 системы
[0133] Этот вариант осуществления системы обеспечивает систему хранения данных, включающую в себя устройство декодирования, устройство LDPC-кодирования и носитель хранения данных. Устройство декодирования может быть устройством 200 декодирования в соответствии вариантом осуществления 1 устройства или устройством 600 декодирования в соответствии с вариантом осуществления 3 устройства.
[0134] Устройство кодирования LDPC-кода сконфигурировано, чтобы генерировать первое кодовое слово в соответствии с порождающей матрицей и сохранять первое кодовое слово на носителе хранения данных, и устройство декодирования сконфигурировано, чтобы получать первое кодовое слово от носителя хранения данных. Относительно последующего процесса, в котором устройство декодирования обрабатывает первое кодовое слово, можно сослаться на детали реализации устройства 200 декодирования в соответствии с вариантом осуществления 1 устройства или детали реализации устройства 600 декодирования в соответствии с вариантом осуществления 3 устройства.
[0135] Этот вариант осуществления обеспечивает систему хранения данных. Устройство декодирования в системе хранения данных выполняет обработку в случае, который возникает в процессе обновления кодового слова процесса декодирования LDPC-кода и в котором значение обновленного кодового элемента превышает диапазон квантования кодового элемента, что препятствует непосредственному квантованию обновленного кодового слова, которое превышает диапазон квантования кодового элемента в процессе декодирования LDPC-кода, улучшает возможности исправления ошибок LDPC-кода устройства декодирования в системе хранения данных, а также улучшает надежность данных, сохраненных в системе хранения данных.
Вариант осуществления 4 системы
[0136] Этот вариант осуществления системы обеспечивает систему хранения данных, включающую в себя устройство декодирования, устройство LDPC-кодирования и носитель хранения данных. Устройство декодирования может быть устройством 400 декодирования в соответствии вариантом осуществления 2 устройства или устройством 800 декодирования в соответствии с вариантом осуществления 4 устройства.
[0137] Устройство кодирования LDPC-кода сконфигурировано, чтобы генерировать первое кодовое слово в соответствии с порождающей матрицей и сохранять первое кодовое слово на носителе хранения данных, и устройство декодирования сконфигурировано, чтобы получать первое кодовое слово от носителя хранения данных. Относительно последующего процесса, в котором устройство декодирования обрабатывает первое кодовое слово, можно сослаться на детали реализации устройства 400 декодирования в соответствии с вариантом осуществления 2 устройства или детали реализации устройства 800 декодирования в соответствии с вариантом осуществления 4 устройства.
[0138] Этот вариант осуществления обеспечивает систему хранения данных. Устройство декодирования в системе хранения данных выполняет обработку в случае, который возникает в процессе обновления кодового слова процесса декодирования LDPC-кода и в котором значение обновленного кодового элемента превышает диапазон квантования кодового элемента, что препятствует непосредственному квантованию обновленного кодового слова, которое превышает диапазон квантования кодового элемента в процессе декодирования LDPC-кода, улучшает возможности исправления ошибок LDPC-кода устройства декодирования в системе хранения данных, а также улучшает надежность данных, сохраненных в системе хранения данных.
[0139] Фиг. 11 является диаграммой сравнения результатов эмуляции обычного устройства декодирования и устройства декодирования, предложенного в настоящей заявке. Эмуляция предусматривает генерацию, на основе LDPC FPGA платформы эмуляции, случайной последовательности (то есть, подлежащего передаче сигнала, упомянутого выше) с использованием FPGA, затем выполнение LDPC-кодирования и модуляции и добавление случайного белого гауссова шума, чтобы генерировать кодовое слово (то есть, первое кодовое слово, упомянутое выше), и, наконец, выполнение LDPC-декодирования кодового слова. FPGA платформа эмуляции выполняет сбор статистики по RAWBER и UBER. Полное наименование UBER - Uncorrected Bit Error Rate (нескорректированная частота битовых ошибок), то есть, частота битовых ошибок, которая не может быть скорректирована. Полное наименование RAWBER - Raw Bit Error Rate (необработанная (исходная) частота битовых ошибок, то есть, частота битовых ошибок кодового слова, сгенерированного путем выполнения кодирования и добавления белого шума. Поэтому, меньшее значение RAWBER указывает более низкую частоту битовых ошибок подлежащего декодированию кодового слова в теории, и поэтому, частота UBER также должна снижаться соответственно. Можно видеть из фиг. 11, что, в обычном решении, когда RAWBER меньше, чем 0,0021, UBER больше не снижается соответственно, и возможность исправления ошибок LDPC-кода достигает ограничения. Однако, когда используется устройство декодирования LDPC-кода, обеспеченное в настоящей заявке, и RAWBER меньше, чем 0,0021, UBER продолжает снижаться соответственно, что устраняет ограничение рабочих характеристик обычного устройства декодирования LDPC-кода и эффективно улучшает возможность исправления ошибок LDPC-кода.
[0140] В варианте осуществления 1 устройства, блок 204 обработки сконфигурирован, чтобы получать Р первых кодовых элементов, соответствующих n-ой строке проверочной матрицы; получать Р первых значений обновления, соответствующих Р первым кодовым элементам; получать, в соответствии с Р первыми значениями обновления, P вторых значений обновления, соответствующих Р первым кодовым элементам; определять, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента; сохранять a-ый первый кодовый элемент не обновленным, если определено, что a-ое второе значение обновления из Р вторых значений обновления превышает диапазон квантования кодового элемента; обновлять b-ый первый кодовый элемент с использованием b-го второго значения обновления, если определено, что b-ое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента; получать, в соответствии с вышеуказанной операцией обновления, P вторых кодовых элементов, соответствующих n-ой строке проверочной матрицы; и генерировать второе кодовое слово в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, где проверочная матрица соответствует порождающей матрице и включает в себя N строк, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P, и каждое второе значение обновления является суммой каждого первого значения обновления и соответствующего первого кодового элемента.
[0141] Опционально, определение, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента, может быть одновременно определением, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента, то есть, после получения каждого второго значения обновления из Р вторых значений обновления, блок 204 обработки одновременно определяет, превышают ли P вторых значений обновления диапазон квантования кодового элемента; или может быть определением последовательно, слева направо в соответствии с последовательностью P кодовых элементов, соответствующих n-ой строке проверочной матрицы, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента.
[0142] Опционально, блок 202 получения, блок 204 обработки и блок 206 определения, которые включены в устройство 200 декодирования, реализованы, каждый, с использованием схемы.
[0143] После получения вторых значений обновления, блок 204 обработки определяет, превышает ли каждое второе значение обновления диапазон квантования кодового элемента; если блок 204 обработки определяет, что а-ое второе значение обновления превышает диапазон квантования кодового элемента, блок 204 обработки не обновляет a-ый первый кодовый элемент с использованием а-го второго значения обновления, то есть, сохраняет a-ый первый кодовый элемент не обновленным; если блок 204 обработки определяет, что b-ое второе значение обновления не превышает диапазон квантования кодового элемента, блок 204 обработки обновляет b-ый первый кодовый элемент с использованием b-го второго значения обновления.
[0144] В соответствии с примером в варианте осуществления 1 устройства, поскольку P равно 3 в этом примере, значение a может быть 1, 2 или 3 и соответствует второму значению обновления -5, +3 или -3, соответственно. Например, a установлено в 1; блок 204 обработки определяет, превышает ли второе значение обновления -5 диапазон квантования кодового элемента; если второе значение обновления -5 превышает диапазон квантования кодового элемента, -9 не обновляется с использованием -5, то есть, кодовый элемент -9 остается неизмененным; если второе значение обновления -5 не превышает диапазон квантования кодового элемента, -9 обновляется с использованием -5, то есть, кодовый элемент -9 обновляется на -5. Блок 204 обработки может одновременно определять, превышают ли вторые значения обновления -5, +3 и -3 диапазон квантования кодового элемента, или может определять, превышают ли вторые значения обновления -5, +3 и -3 диапазон квантования кодового элемента в соответствии с последовательностью первых кодовых элементов, соответствующих биту 1 на первой строке проверочной матрицы, то есть, сначала -5, затем +3 и затем -3.
[0145] В варианте осуществления 2 устройства, блок 404 обработки сконфигурирован, чтобы получать Р первых кодовых элементов, соответствующих n-ой строке проверочной матрицы; получать Р первых значений обновления, соответствующих Р первым кодовым элементам; получать, в соответствии с Р первыми значениями обновления, P вторых значений обновления, соответствующих Р первым кодовым элементам; определять, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента; сохранять Р первых кодовых элементов не обновленными, если определено, что а-ое второе значение обновления из Р вторых значений обновления превышает диапазон квантования кодового элемента; обновлять Р первых кодовых элементов с использованием P вторых значений обновления, если определено, что каждое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента; получать, в соответствии с вышеуказанной операцией обновления, P вторых кодовых элементов, соответствующих n-ой строке проверочной матрицы; и генерировать второе кодовое слово в соответствии с P вторыми кодовыми элементами, где проверочная матрица соответствует порождающей матрице и включает в себя N строк, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P, и каждое второе значение обновления является суммой каждого первого значения обновления и соответствующего первого кодового элемента.
[0146] Опционально, определение, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента может быть одновременно определением, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента, то есть, после получения каждого второго значения обновления из Р вторых значений обновления, блок 404 обработки одновременно определяет, превышают ли P вторых значений обновления диапазон квантования кодового элемента; или может быть определением последовательно, слева направо в соответствии с последовательностью P кодовых элементов, соответствующих n-ой строке проверочной матрицы, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента.
[0147] Опционально, блок 402 получения, блок 404 обработки и блок 406 определения, которые включены в устройство 400 декодирования, реализованы, каждый, с использованием схемы.
[0148] После получения вторых значений обновления, блок 404 обработки определяет, превышает ли каждое второе значение обновления диапазон квантования кодового элемента; если блок 404 обработки определяет, что a-ое второе значение обновления превышает диапазон квантования кодового элемента, блок 404 обработки не обновляет Р первых кодовых элементов с использованием P вторых значений обновления, то есть, сохраняет Р первых кодовых элементов не обновленными; если блок 404 обработки определяет, что каждое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента, блок 404 обработки обновляет Р первых кодовых элементов с использованием P вторых значений обновления.
[0149] В соответствии примером в варианте осуществления 1 устройства, поскольку P равно 3 в этом примере, значение a может быть 1, 2 или 3 и соответствует второму значению обновления -5, +3 или -3, соответственно. Например, a установлено в 1; блок 404 обработки определяет, превышает ли второе значение обновления -5 диапазон квантования кодового элемента; если второе значение обновления -5 превышает диапазон квантования кодового элемента, -9 не обновляется с использованием -5, -4 не обновляется с использованием +3, и -7 не обновляется с использованием -3; аналогично, если другое второе значение обновления превышает диапазон квантования кодового элемента, обновление первых кодовых элементов с использованием любого одного из вторых значений обновления отменяется; если ни одно из вторых значений обновления -5, +3 и -3 не превышает диапазон квантования кодового элемента, -9 обновляется с использованием -5, -4 обновляется с использованием +3, и -7 обновляется с использованием -3. Блок 404 обработки может одновременно определять, превышают ли вторые значения обновления -5, +3 и -3 диапазон квантования кодового элемента, или может определять вторые значения обновления -5, +3 и -3 в соответствии с последовательностью первых кодовых элементов, соответствующих биту 1 на первой строке проверочной матрицы, то есть, сначала -5, затем +3 и затем -3, и если любой один из первых кодовых элементов превышает диапазон квантования кодового элемента, не требуется определение для остальных первых кодовых элементов.
[0150] В варианте осуществления 3 устройства, блок 6042 обработки переменного узла реализован с использованием схемы, и блок 6044 обработки проверочного узла реализован с использованием схемы.
[0151] В варианте осуществления 4 устройства, блок 8042 обработки переменного узла реализован с использованием схемы, и блок 8044 обработки проверочного узла реализован с использованием схемы.
[0152] В варианте осуществления 1 способа, этап 1004: получение Р первых кодовых элементов, соответствующих n-ой строке проверочной матрицы; получение Р первых значений обновления, соответствующих Р первым кодовым элементам; получение, в соответствии с Р первыми значениями обновления, P вторых значений обновления, соответствующих Р первым кодовым элементам; определение, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента; сохранение a-го первого кодового элемента не обновленным, если определено, что a-ое второе значение обновления из Р вторых значений обновления превышает диапазон квантования кодового элемента; обновление b-го первого кодового элемента с использованием b-го второго значения обновления, если определено, что b-ое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента; получение, в соответствии с вышеуказанной операцией обновления, P вторых кодовых элементов, соответствующих n-ой строке проверочной матрицы; и генерация второго кодового слова в соответствии с P вторыми кодовыми элементами, соответствующими n-ой строке проверочной матрицы, где проверочная матрица соответствует порождающей матрице и включает в себя N строк, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P, и каждое второе значение обновления является суммой каждого первого значения обновления и соответствующего первого кодового элемента. Относительно деталей выполнения этапа 1004, можно сослаться на блок 204 обработки в варианте осуществления 1 устройства или блок 604 обработки и все подблоки блока 604 обработки в варианте осуществления 3 устройства.
[0153] Опционально, определение, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента, может быть одновременно определением, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента, то есть, после получения каждого второго значения обновления из Р вторых значений обновления, одновременно определение, превышают ли P вторых значений обновления диапазон квантования кодового элемента; или может быть определением последовательно, слева направо в соответствии с последовательностью P кодовых элементов, соответствующих n-ой строке проверочной матрицы, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента.
[0154] В варианте осуществления 2 способа, этап 1204: получение Р первых кодовых элементов, соответствующих n-ой строке проверочной матрицы; получение Р первых значений обновления, соответствующих Р первым кодовым элементам; получение, в соответствии с Р первыми значениями обновления, P вторых значений обновления, соответствующих Р первым кодовым элементам; определение, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента; сохранение Р первых кодовых элементов не обновленными, если определено, что a-ое второе значение обновления из Р вторых значений обновления превышает диапазон квантования кодового элемента; обновление Р первых кодовых элементов с использованием P вторых значений обновления, если определено, что каждое второе значение обновления из Р вторых значений обновления не превышает диапазон квантования кодового элемента; получение, в соответствии с вышеуказанной операцией обновления, P вторых кодовых элементов, соответствующих n-ой строке проверочной матрицы; и генерация второго кодового слова в соответствии с P вторыми кодовыми элементами, где проверочная матрица соответствует порождающей матрице и включает в себя N строк, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P, и каждое второе значение обновления является суммой каждого первого значения обновления и соответствующего первого кодового элемента. Относительно деталей выполнения этапа 1204, можно сослаться на блок 404 обработки в варианте осуществления 2 устройства или блок 804 обработки и все подблоки блока 804 обработки в варианте осуществления 4 устройства.
[0155] Опционально, определение, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента, может быть одновременно определением, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента, то есть, после получения каждого второго значения обновления из Р вторых значений обновления, одновременно определение, превышают ли P вторых значений обновления диапазон квантования кодового элемента; или может быть определением последовательно, слева направо в соответствии с последовательностью P кодовых элементов, соответствующих n-ой строке проверочной матрицы, превышает ли каждое второе значение обновления из Р вторых значений обновления диапазон квантования кодового элемента.
[0156] В отношении частей без детального описания в варианте осуществления настоящей заявки, можно сослаться на соответствующее описание другого варианта осуществления. Наконец, следует отметить, что вышеуказанные варианты осуществления предназначены только для описания технических решений согласно настоящему изобретению, но не для ограничения настоящего изобретения. Хотя настоящее изобретение описано детально со ссылками на вышеуказанные варианты осуществления, специалистам в данной области техники должно быть понятно, что они могут выполнять модификации технических решений, описанных в вышеуказанных вариантах осуществления, или выполнять эквивалентные замены некоторых технических признаков без отклонения от объема технических решений вариантов осуществления настоящего изобретения.