Кіріспе
қателерді түзету кодтары
Компьютерлік ғылымда Raptor кодтары (жылдам торнадо; Торнадо кодтарын қараңыз) – сызықтық уақытта кодтау және декодтау мүмкіндігі бар алғашқы белгілі фонтан кодтары класы. Оларды 2000/2001 жылдары Әмин Шохроллахи ойлап тапты және алғаш рет 2004 жылы кеңейтілген тезис ретінде жариялады. Raptor кодтары – бұл алғашқы практикалық фонтан кодтары болған LT кодтарынан теориялық және практикалық тұрғыдан маңызды жақсарту. Raptor кодтары, жалпы фонтан кодтары сияқты, k бірдей өлшемдегі бастапқы символдардан тұратын деректердің берілген бастапқы блогын кодтау символдарының потенциалды шексіз тізбегіне кодтайды, сондықтан кез келген k немесе одан көп кодтау символдарын қабылдау бастапқы блокты нөлден өзгеше ықтималдықпен қалпына келтіруге мүмкіндік береді. Алынған кодтау символдарының саны k-ден асып түскенде бастапқы блокты қалпына келтіру ықтималдығы артады және алынған кодтау символдарының саны k-ден сәл ғана көп болғанда 1-ге жақын мәнге жетеді. Мысалы, Raptor кодтарының соңғы буыны – RaptorQ кодтарында k кодтау символы алынғанда декодтау сәтсіздігінің ықтималдығы 1%-дан кем, ал k+2 кодтау символы алынғанда декодтау сәтсіздігінің ықтималдығы миллионнан кем. (Бұл туралы толығырақ ақпарат алу үшін төмендегі «Қалпына келтіру ықтималдығы және қосымша жүктеме» бөлімін қараңыз.) Символдың көлемі бір байттан жүздеген немесе мыңдаған байтқа дейін болуы мүмкін. Raptor кодтары жүйелі немесе жүйелі емес болуы мүмкін. Жүйелі жағдайда бастапқы дерек блогының символдары, яғни бастапқы символдар, кодтау символдары жиынтығына кіреді. Жүйелі Raptor кодының мысалдары – 3-ші буын серіктестік жобасының мобильді ұялы байланыс желісіндегі хабар тарату және мультиплекстеудегі қолданылуы, сондай-ақ қолға ұсталатын құрылғыларға IP деректерді тарату үшін DVB-H стандарттары (сыртқы сілтемелерді қараңыз). Осы стандарттарда қолданылатын Raptor кодтары IETF RFC 5053 құжатында да анықталған. Онлайн кодтар жүйелі емес фонтан кодтарының мысалы болып табылады.
In computer science, Raptor codes (rapid tornado; see Tornado codes) are the first known class of fountain codes with linear time encoding and decoding. They were invented by Amin Shokrollahi in 2000/2001 and were first published in 2004 as an extended abstract. Raptor codes are a significant theoretical and practical improvement over LT codes, which were the first practical class of fountain codes. Raptor codes, as with fountain codes in general, encode a given source block of data consisting of a number k of equal size source symbols into a potentially limitless sequence of encoding symbols such that reception of any k or more encoding symbols allows the source block to be recovered with some non zero probability. The probability that the source block can be recovered increases with the number of encoding symbols received above k becoming very close to 1, once the number of received encoding symbols is only very slightly larger than k. For example, with the latest generation of Raptor codes, the RaptorQ codes, the chance of decoding failure when k encoding symbols have been received is less than 1%, and the chance of decoding failure when k+2 encoding symbols have been received is less than one in a million. (See Recovery probability and overhead section below for more discussion on this.) A symbol can be any size, from a single byte to hundreds or thousands of bytes. Raptor codes may be systematic or non systematic. In the systematic case, the symbols of the original source block, i. e. the source symbols, are included within the set of encoding symbols. Some examples of a systematic Raptor code is the use by the 3rd Generation Partnership Project in mobile cellular wireless broadcasting and multicasting, and also by DVB H standards for IP datacast to handheld devices (see external links). The Raptor codes used in these standards is also defined in IETF RFC 5053. Online codes are an example of a non systematic fountain code.
RaptorQ коды
Raptor-дың ең жетілген нұсқасы – IETF RFC 6330-да анықталған RaptorQ коды. RaptorQ коды – жүйелі код, оны сызықтық уақытта кодтау және декодтау үшін іске асыруға болады, жақын оңтайлы қалпына келтіру қасиеттеріне ие (толықрақ мәліметтер үшін төмендегі «Қалпына келтіру ықтималдығы және қосымша жүктеме» бөлімін қараңыз), 56 403 бастапқы символға дейін қолдайды және дерлік шексіз кодтау символдарымен жұмыс істей алады. IETF RFC 6330-да анықталған RaptorQ коды жоғары сапалы бейне ағынын тарату (мобильді теледидардың сенімді жұмыс істеуі) және тиімді әрі сенімді файлдарды тарату (деректерді тарату) үшін Next Gen TV (ATSC 3.0) стандартының бір бөлігі ретінде белгіленген. Атап айтқанда, RaptorQ коды ATSC 3.0 стандартының A/331 бөлімінде: сигнал беру, жеткізу, синхрондау және қателерден қорғау (ATSC 3.0 стандарттарының толық тізімі үшін ATSC стандарттарының тізілімін қараңыз) деп көрсетілген. Next Gen TV (ATSC 3.0) дәстүрлі теледидардан әлдеқайда асып, жалпы деректерді жеткізу қызметтерін ұсынатын Broadcast интернетті қамтамасыз етеді.
Шолу
Раптор кодтары екі кодтың бірігуі арқылы құрылады. Белгілі бір жылдамдықпен өшіру коды, әдетте жоғары жылдамдықта, «алдын ала код» немесе «сыртқы код» ретінде қолданылады. Бұл алдын ала код өзі бірнеше кодтардың біріктірілуі болуы мүмкін, мысалы, 3GPP стандартында бинарлық Грей тізбегінен туындаған жоғары тығыздық тепе-теңдік тексеру коды, қарапайым тұрақты төмен тығыздық тепе-теңдік тексеру кодымен біріктіріледі. Тағы бір мүмкіндік – Хамминг кодының төмен тығыздық тепе-теңдік тексеру кодымен бірігуі. Ішкі код алдын ала кодтау операциясының нәтижесін қабылдайды және кодтау символдарының тізбесін жасайды. Ішкі код – LT кодтарының бір түрі. Әрбір кодтау символы – алдын ала кодтың шығысынан псевдо-кездейсоқ түрде таңдалған символдар жиынтығының XOR-ы. Шығыс символын құру үшін бірге XOR операциясына қатысатын символдар саны, әрбір шығыс символы үшін нақты ықтималдық таралымына сәйкес псевдо-кездейсоқ түрде таңдалады. Бұл таралым, сондай-ақ осы таралымды іріктеу үшін псевдо-кездейсоқ сандарды жасау және XOR операциясына қатысатын символдарды таңдау механизмі, жіберушіге де, қабылдаушыға да белгілі болуы тиіс. Бір тәсіл бойынша, әрбір символ осы ақпаратты жасау үшін псевдо-кездейсоқ сан генераторының бастамасы ретінде қолданылатын идентификатормен бірге келеді, және жіберуші де, қабылдаушы да осы процесті орындайды. Жүйелік емес Raptor кодтарының жағдайында, кодталуға тиіс бастапқы деректер алдын ала кодтау сатысына кіріс ретінде қолданылады. Жүйелік Raptor кодтарының жағдайында, алдын ала кодтау сатысына енгізілген деректер бастапқы деректерге алғашқы k шығыс символдарын жасайтын кодтау операциясының кері операциясын қолдану арқылы алынады. Осылайша, алынған символдарға қалыпты кодтау операциясын қолдану бастапқы деректерді кодтың алғашқы k шығыс символы ретінде қайта жасайды. Алғашқы k шығыс символдарын жасайтын псевдо-кездейсоқ процестердің кері операцияны жасауын қамтамасыз ету қажет.
processes which generate the first k output symbols generate an operation which is invertible.
Декодтау
Раптор кодтарын декодтаудың екі тәсілі бар. Конкатенацияланған тәсілде, ішкі код алдымен, LT кодтарында қолданылған сенім тарату алгоритмі арқылы декодталады. Егер бұл операция жеткілікті мөлшерде символдарды қалпына келтірсе, сыртқы код қалған символдарды сол кодқа сәйкес келетін декодтау алгоритмін қолданып қалпына келтіре алады, онда декодтау сәтті болады. Біріктірілген тәсілде, ішкі және сыртқы кодтармен анықталған символдар арасындағы байланыстар бір мезгілдегі теңдеулердің біртұтас жиынтығы ретінде қарастырылады және олар әдеттегі тәсілмен, мысалы, Гаусс жою арқылы шешіледі.
Есептеу күрделілігі
Raptor кодтары бір кодтау символын бастапқы блоктан жасау үшін O(символ мөлшері) уақытты, ал кем дегенде k кодтау символынан бастапқы блоқты қалпына келтіру үшін O(бастапқы блок мөлшері) уақытты қажет етеді.
Құқықтық мәртебе
Qualcomm, Inc. IETF RFC 5053 ережесінде сипатталған Raptor коды және IETF RFC 6330 ережесінде сипатталған RaptorQ коды үшін авторлық құқықтар туралы мәлімдеме жариялады. Бұл мәлімдемелер Qualcomm, Inc. компаниясының MPEG DASH стандартына қатысты берген лицензиялық міндеттемелерімен үйлеседі. MPEG DASH стандартын көптеген компаниялар, оның ішінде DASH Industry Forum мүшелері кеңінен қолданады.
MPEG DASH standard. The MPEG DASH standard has been deployed by a wide variety of companies, including DASH Industry Forum member companies.