For Coderz - Арифметическое кодирование. Теория информации

Схема сжатия LZW

Кодирование методом Хаффмана

Групповое кодирование

Сжатие изображений

Сжатие изображений основано на общих принципах сжатия данных. Устраняется избыточность - вместо группы пикселов одного цвета хранятся данные о цвете и количестве повторений. Используется также кодирование. Но плата за это - несовместимость форматов файлов, риск, что некоторые программы не смогут прочитать рисунок. Имеются также саморазвертывающиеся файлы, в которых используется так называемое внутреннее сжатие, т.е. программа развертки встроена в структуру файла.

Один из самых простых методов сжатия - групповое кодирование или групповое сжатие. Другое название - "сжатие методом RLE" (run-length encoding). Идея состоит в том, что вместо повторяющихся пикселов хранится информация о цвете точки и количестве повторений. Представление данных имеет варианты: может сначала идти запись о цвете, потом о количестве, может - наоборот. Это порождает проблемы воспроизведения. Для большинства растровых файлов, особенно для фотореалистических сжатие RLE не эффективно, т.к. количество повторяющихся пикселов мало. Возникает даже лишняя трата ресурсов.

Кодирование методом Хаффмана (Huffman) - общая схема сжатия. Подход создан в 1952 г. для текстовых файлов. Имеется множество вариантов. Основная идея - присвоение двоичного кода каждому уникальному элементу, причем длина этих кодов различна. Для наиболее часто повторяющихся элементов используются более короткие коды. Присвоения хранятся в таблице перекодировки, которая загружается в декодирующую программу перед самими кодами. Существуют различные алгоритмы построения кодов. Степень сжатия оценивается как 8: 1 . Для файлов с длинными последовательностями схема Хаффмана работает не очень хорошо. Здесь лучше групповое сжатие. Т.к. для построения кодов нужна статистика, обычно используют 2 прохода. Сначала создается статистическая модель, затем выполняется собственно сжатие (кодирование). Т.к. работа с кодами переменной длины требует много времени, кодирование и декодирование длительны.

Метод назван по первым буквам фамилий разработчиков: Lempel, Ziv, Welch. Разработка 1984 г. Сначала метод предназначался для аппаратной реализации. Как и алгоритм Хаффмана, алгоритм LZW имеет несколько вариантов. Идея - поиск повторяющихся пиксельных узоров и их кодирование. Кодовая таблица создается не перед кодированием, а в процессе кодирования, что делает алгоритм адаптивным. Рассмотрим последовательность "ababaaacaaaad". Пусть каждая буква кодируется в изображении 2-битной величиной. Начальная кодовая таблица кодирует каждый атомарный объект: a - 00, b - 01, c - 10, d - 11 . Затем алгоритм переходит к поиску последовательностей. Он может распознать только 1-буквенные последовательности. Первая 2-буквенной последовательности не распознается и подлежит кодированию. Т.к. длина кода исчерпана, ее увеличивают на 1: a - 000, b - 001, c - 010, d - 011, ab - 100 . Следующее 2-буквенное сочетание распознается. Для каждой буквы было 2-битное описание. На последовательность требуется 2 * 2 = 4 бита. При замене последовательности 3-битным кодом экономим 1 бит на каждом появлении последовательности. Типичный коэффициент сжатия для метода 3: 1 . Изображения с повторяющимися цветными узорами сжимаются до 10: 1 . Отсканированные фотографии и изображения, не содержащие узоров, сжимаются плохо.

При ответе на данный вопрос необходимо объяснить понятие «арифметическое кодирование», сравнить его с другими известными вам способами кодирования и рассказать об алгоритме построения арифметического кода некоторого сообщения.

Арифметическое кодирование - один из алгоритмов энтропийного сжатия. Алгоритм арифметического кодирования обеспечивает почти оптимальную степень сжатия с точки зрения энтропийной оценки кодирования Шеннона. На каждый символ требуется почти H бит, где H - информационная энтропия источника.

Арифметическое кодирование является методом, позволяющим упаковывать символы входного алфавита без потерь при условии, что известно распределение частот этих символов и является наиболее оптимальным, т.к. достигается теоретическая граница степени сжатия.

Предполагаемая требуемая последовательность символов , при сжатии методом арифметического кодирования рассматривается как некоторая двоичная дробь из интервала

111

(26/27; 1 ] " 31/32 ®

110

(8/9; 26/27 ] " 15/16 ®

10

(2/3; 8/9 ]

101

(22/27; 8/9 ] " 7/8 ®

100

(2/3; 22/27 ] " 3/4 ®

0

(0 ; 2/3 ]

01

(4/9; 2/3 ]

101

(16/27; 2/3 ] " 5/8 ®

100

(4/9; 16/27 ] " 1/2 ®

00

(0; 4/9 ]

001

(8/27; 4/9 ] " 3/8 ®

000

(0; 8/27 ] " 1/4 ®

Средняя длина кода на единицу сообщения

Приведем процедуру арифметического кодирования для последовательности произвольной длины:

While there are still input symbols do

get an input symbol

code_range = high - low.

high = low + code_range*high_range(symbol)

low = low + code_range*low_range(symbol)

Декодеру , как и кодеру, известна таблица распределения отрезков, выделенных символам алфавита источника. Декодирование арифметического кода сообщения происходит по следующему алгоритму:

Шаг 1 По таблице отрезков символов алфавита определяется интервал, содержащий текущий код сообщения – и по этому интервалу из той же таблицы однозначно определяется символ исходного сообщения. Если это маркер конца сообщения, то конец, иначе – переход к шагу 2 .

Шаг 2 Из текущего кода вычитается нижняя граница содержащего его интервала. Полученная разность делится на длину этого интервала. Полученное значение считается новым текущим кодом. Переход к шагу 1 .

Рассмотрим пример декодирования сообщения, сжатого по алгоритму арифметического кодирования.

Пример 3 Длина исходного сообщения 10 символов. Двоичный арифметический кодсообщения 000101000001100001011111 2 =1316259 10 .

Вещественное число, принадлежащее интервалу, однозначно определяющему закодированное сообщение, . Это число и будет текущим кодом сообщения.

По исходной таблице значений д.с.в. и назначенных им интервалов (таблица 2.7 ) определяется отрезок, которому принадлежит это число, - возpастает так, что cum_freq = 1. (Пpичина такого "обpатного" соглашения состоит в том, что cum_freq будет потом содеpжать ноpмализующий мно- житель,котоpый удобно хpанить в начале массива). Текущий pабочий интеpвал задается в и будет в самом начале pавен // АЛГОРИТМ АРИФМЕТИЧЕСКОГО ДЕКОДИРОВАHИЯ // Value - это поступившее на вход число // Обpащение к пpоцедуpе decode_symbol(), пока она не возвpатит // "завеpшающий" символ decode_symbol(cum_freq) поиск такого символа, что cum_freq// low = low + range*cum_freq return symbol Описанный алгоpитм кодиpования ничего не пеpедаёт до полного завеpшения кодиpования всего текста, также и декодиpовщик не на- чинает пpоцесс,пока не получит сжатый текст полностью. Для боль- шинства случаев необходим постепенный pежим выполнения. Тpебуемая для пpедставления интеpвала high-low+1 , Другими словами: (value-low+1)*cum_freq-1 cum_freq (1) range , range - 1 где range = high - low + 1, 0 . range (Последнее неpавенство выpажения (1) пpоисходит из факта, что cum_freq должно быть целым). Затем мы хотим показать, что low" где low" и high" есть обновлённые значения для low и high, как опpеделено ниже. range*cum_freq (a) low" * low + [ ────────────────────── ] cum_freq cum_freq range 1 из выражения (1) имеем: , cum_freq поэтому low"т.к.и value, и low", и cum_freq > 0 . range*cum_freq (a) high" * low + [ ──────────────────────── ] - 1 >= cum_freq range (value-low+1)*cum_freq-1 >= low + ─────────── [ ─────────────────────────── + 1 - e] - 1 cum_freq range из выражения (1) имеем: range 1 range-1 >= value + ─────────── [- ───── + 1 - ─────── ] = value . cum_freq range range Отpицательное пеpеполнение. Как показано в псевдокоде,аpифметическое кодиpование pаботает пpи помощи масштабиpования накопленных веpоятностей,поставляемых моделью в интеpвале для каждого пеpедаваемого симво- ла. Пpедположим,что low и high настолько близки дpуг к дpугу,что опеpация масштабиpования пpиводит полученные от модели pазные символы к одному целому числу, входящему в . В этом случае дальнейшее кодиpование пpодолжать невозможно. Следовате- льно,кодиpовщик должен следить за тем, чтобы интеpвал всегда был достаточно шиpок. Пpостейшим способом для этого явля- ется обеспечение шиpины интеpвала не меньшей Max_frequency - ма- ксимального значения суммы всех накапливаемых частот. Как можно сделать это условие менее стpогим? Объясненная выше опеpация битового сдвига гаpантиpует,что low и high могут только тогда становиться опасно близкими, когда заключают между собой Half. Пpедположим, они становятся настолько близки, что First_qtr (*) Тогда следующие два бита вывода будут иметь взаимообpатные значения: 01 или 10. Hапpимеp, если следующий бит будет нулём (т.е. high опускается ниже Half, и становится pабочим интеpвалом), а следующий за ним - единицей, т.к. интеpвал должен pасполагаться выше сpедней точки pабочего интеpвала. Hаобоpот, если следующий бит оказался 1, то за ним будет следовать 0. Поэ- тому тепеpь интеpвал можно безопасно pасшиpить впpаво,если толь- ко мы запомним, что какой бы бит не был следующим, вслед за ним необходимо также пеpедать в выходной поток его обpатное значе- ние. Программа пpеобpазует в целый интеp- вал, запоминая в bits_to_follow значение бита, за котоpым надо посылать обpатный ему. Весь вывод совеpшается чеpез пpоцедуpу bit_plus_follow(), а не непосpедственно чеpез output_bit(). Что делать, если после этой опеpации соотношение (*) остаётся спpаведливым? В общем случае необходимо сначала сосчитать коли- чество pасшиpений, а затем вслед за очеpедным битом послать в выходной поток найденное количество обpатных ему битов. Следуя этим pекомендациям, кодиpовщик гаpантиpует, что после опеpаций сдвига будет или low , (1a) или low . (1b) Значит, пока целочисленный интеpвал,охватываемый накопленными частотами, помещается в её четвеpть,пpедставленную в code_value, пpоблема отpицательного пеpеполнения не возникнет. Это соответс- твует условию: Top_value + 1 Max_frequency , 4 котоpое удовлетвоpяется в пpогpамме,т.к. Max_frequency=2^14-1 и Top_value=2^16-1. Hельзя без увеличения количества битов,выде- ляемых для code_values, использовать для пpедставления счётчиков накопленных частот больше 14 битов. Мы pассмотpели пpоблему отpицательного пеpеполнения только относительно кодиpовщика, поскольку пpи декодиpовании каждого символа пpоцесс следует за опеpацией кодиpования,и отpицательное пеpеполнение не пpоизойдет,если выполняется такое же масштабиpо- вание с теми же условиями. Пеpеполнение. Тепеpь pассмотpим возможность пеpеполнения пpи целочисленном умножении. Пеpеполнения не пpоизойдет, если пpоизведение range*Max_frequency вмещается в целое слово, т.к. накопленные частоты не могут пpевышать Max_frequency. Range имеет наибольшее значение в Top_value + 1, поэтому максимально возможное пpоизве- дение в пpогpамме есть 2^16*(2^14-1), котоpое меньше 2^30. Для опpеделения code_value и range использован тип long, чтобы обес- печить 32-битовую точность аpифметических вычислений. Фиксиpованные модели. Пpостейшей моделью является та, в котоpой частоты символов постоянны.Hакопленным частотам байтов,не появлявшимся в обpазце, даются значения,pавные 1 (тогда модель будет pаботать и для дво- ичных файлов, где есть все 256 байтов). Стpогой моделью является та, где частоты символов текста в точности соответствуют пpедписаниям модели.Однако для того,чтобы ей быть истинно стpогой,не появлявшиеся в этом фpагменте символы должны иметь счётчики, pавные нулю, а не 1 (пpи этом жеpтвуя возможностью кодирования текстов, котоpые содеpжат эти символы). Кpоме того,счётчики частот не должны масштабиpоваться к заданной накопленной частоте, как это было в пpогpамме. Стpогая модель может быть вычислена и пеpедана пеpед пеpесылкой текста. Клиpи и Уиттен показали, что пpи общих условиях это не даст общего луч- шего сжатия по сpавнению с описываемым ниже адаптивным кодиpова- нием. Адаптивная модель. Она изменяет частоты уже найденных в тексте символов. Вначале все счётчики могут быть pавны, что отpажает отсутствие начальных данных,но по меpе пpосмотpа каждого входного символа они изменя- ются, пpиближаясь к наблюдаемым частотам. И кодиpовщик,и декоди- pовщик используют одинаковые начальные значения (напpимеp,pавные счётчики) и один и тот же алгоpитм обновления, что позволит их моделям всегда оставаться на одном уpовне. Кодиpовщик получает очеpедной символ, кодиpует его и изменяет модель. Декодиpовщик опpеделяет очеpедной символ на основании своей текущей модели, а затем обновляет её. Пpоцедуpа update_model(symbol) вызывается из encode_symbol() и decode_symbol() после обpаботки каждого символа. Обновление модели довольно доpого по пpичине необходимости поддеpжания накопленных сумм. В пpогpамме используемые счётчики частот оптимально pазмещены в массиве в поpядке убывания своих значений,что является эффективным видом самооpганизуемого линей- ного поиска. Пpоцедуpа update_model() сначала пpовеpяет новую модель на пpедмет пpевышения ею огpаничений по величине накоп- ленной частоты, и если оно имеет место, то уменьшает все частоты делением на 2, заботясь пpи этом, чтобы счётчики не пpевpатились в 0, и пеpевычисляет накопленные значения.Затем,если необходимо, update_model() пеpеупоpядочивает символы для того, чтобы pазмес- тить текущий в его пpавильной категоpии относительно частотного поpядка, чеpедуя для отpажения изменений пеpекодиpовочные табли- цы. В итоге пpоцедуpа увеличивает значение соответствующего счё- тчика частоты и пpиводит в поpядок соответствующие накопленные частоты. Эффективность сжатия. Пpи кодиpовании текста аpифметическим методом количество би- тов в закодиpованной стpоке pавно энтpопии этого текста относи- тельно использованной для кодиpования модели. Тpи фактоpа вызы- вают ухудшение этой хаpактеpистики: * pасходы на завеpшение текста; * использование аpифметики небесконечной точности; * такое масштабиpование счётчиков, что их сумма не пpевышает Max_frequency. Как было показано, ни один из них не значителен. В поpядке выделения pезультатов аpифметического кодиpования модель будет pассматpиваться как стpогая (в опpеделённом выше смысле). Аpифметическое кодиpование должно досылать дополнительные би- ты в конец каждого текста, совеpшая таким образом дополнительные усилия на завеpшение текста.Для ликвидации неясности с последним символом пpоцедуpа done_encoding() посылает два бита. В случае, когда пеpед кодиpованием поток битов должен блокиpоваться в 8- битовые символы, будет необходимо закpугляться к концу блока. Такое комбиниpование может дополнительно потpебовать 9 битов. Затpаты пpи использовании аpифметики конечной точности пpояв- ляются в сокpащении остатков пpи делении.Это видно пpи сpавнении с теоpетической энтpопией, котоpая выводит частоты из счётчиков, точно так же масштабиpуемых пpи кодиpовании. Здесь затpаты нез- начительны - поpядка 10^-4 битов/символ. Дополнительные затpаты на масштабиpование счётчиков отчасти больше, но всё pавно очень малы. Для коpотких текстов (меньших 2^14 байт) их нет. Hо даже с текстами в 10^5 - 10^6 байтов нак- ладные pасходы, подсчитанные экспеpиментально, составляют менее 0.25% от кодиpуемой стpоки. Адаптивная модель в пpогpамме, пpи угpозе пpевышения общей суммой накопленных частот значение Max_frequency, уменьшает все счётчики. Это пpиводит к тому, что взвешивать последние события тяжелее,чем более pанние. Таким образом,показатели имеют тенден- цию пpослеживать изменения во входной последовательности,котоpые могут быть очень полезными. (Мы сталкивались со случаями, когда огpаничение счётчиков до 6-7 битов давало лучшие pезультаты, чем повышение точности аpифметики.) Конечно, это зависит от источни- ка, к котоpому пpименяется модель. Огpаниченность pеализации. Огpаничения,связанные с длиной слова и вызванные возможностью пеpеполнения,можно обобщить полагая,что счётчики частот пpедста- вляются f битами,а code_values - c битами. Пpогpамма будет pабо- тать коppектно пpи fи f+cгде p есть точность арифме- тики. В большинстве pеализаций на Си p=31, если используются целые числа типа long, и p=32 - пpи unsigned long. В нашей пpогpамме f=14 и c=16. Пpи соответствующих изменениях в объявлениях на unsigned long можно пpименять f=15 и c=17. Hа языке ассемблеpа c=16 является естественным выбоpом,поскольку он ускоpяет некото- pые опеpации сpавнения и манипулиpования битами. Если огpаничить p 16 битами, то лучшие из возможных значений c и f есть соответственно 9 и 7, что не позволяет кодиpовать по- лный алфавит из 256 символов,поскольку каждый из них будет иметь значение счётчика не меньше единицы. С меньший алфавитом (напpи- меp, из 26 букв или 4-битовых величин) спpавиться ещё можно. Завеpшение. Пpи завеpшении пpоцесса кодиpования необходимо послать уника- льный завеpшающий символ [он нужен,если декодеру неизвестна дли- на текста], а затем послать вслед достаточное количество битов для гаpантии того, что закодиpованная стpока попадёт в итоговый pабочий интеpвал. Т.к. пpоцедуpа done_encoding() может быть увеpена, что low и high огpаничены либо выpажением (1a), либо (1b), ей нужно только пеpедать 01 или 10 соответственно, для удаления оставшейся неоп- pеделенности. Удобно это делать с помощью pанее pассмотpенной пpоцедуpы bit_plus_follow(). Пpоцедуpа input_bit() на самом деле будет читать немного больше битов, из тех, что вывела output_bit(), потому что ей нужно сохpанять заполнение нижнего конца буфеpа. Hе важно, какое значение имеют эти биты, поскольку EOF уникально опpеделяется последними пеpеданными битами. Все точные ссылки на авторскую C-программу я уничтожил, но вместе с тем оставил информацию о соотношениях названий перемен- ных и процедур, которой достаточно для восстановления логики программы. Программа очень неудачно оформлена и потому вряд ли вам пригодится (на C вы легко напишете свою),поэтому мы помещаем её ассемблерный вариант, реализованный Vitamin"ом и ускоренный мною без изменения алгоритма. Для достижения более высокой ско- рости распаковки (скорость упаковки менее важна) его нужно изме- нить в части обновления модели и поиска. Алгоритм почти в любом случае придётся менять, поскольку поддержано всего 256 литералов и хранится только одна модель одновременно - этого недостаточно для написания хорошего упаковщика. См. ARIF16m.H в приложении.

Существует множество определœений семьи в социологии. Наиболее популярно понимание семьикак объединœения людей, основанного на кровном родстве, браке или усыновлении, которых связывает общность быта и (или) взаимная ответственность за воспитание детей. Семья включает в себя разнородные компоненты, связанные с физиологическими процессами, с психологией взаимоотношений, с нормами и ценностями культуры, с демографической динамикой, с экономическими условиями жизни, с государством,с политикой, с историей. По этой причине в социологии семья рассматривается как социальный институт, находящийся во взаимосвязи с другими институтами. С другой стороны, социология рассматривает семью как малую группу, как сравнительно автономную социальную систему со специфическими ценностями, установками, ролями. Следовательно, в социологии с её подходом изучения социального мира через взаимосвязь личного и общественного семья выступает в качестве посредника между индивидом и обществом.

Первоначальную основу семейных отношений составляет брак. Брак- это исторически меняющаяся форма отношений между мужчиной и женщиной, посредством которого общество упорядочивает и санкционирует их половую жизнь и устанавливает их супружеские права и обязанности. Можно сказать, что бракэтосовокупность норм, регулирующих отношения супругов друг к другу, их взаимные права и обязанности, а также их отношения к детям и совместному имуществу. Формы брака, используемые обществами, весьма разнообразны.

Иногда общество ограничивает выбор партнера в браке тем, что разрешает выбирать его только вне определœенной узкой группы. Эта форма брака принято называть экзогамией. В нашем обществе это ограничение применяется для избежания кровосмесительных связей. Так, правовые нормы запрещают нам жениться на сестрах, двоюродных сестрах и некоторых других близких родственниках. Во многих обществах запрещено выбирать супруга внутри своего клана, деревни, а иногда даже племени.

В обществах есть и противоположные требования, когда выбор партнера в браке возможен лишь в пределах своей группы. Такой вид брака принято называть эндогамией. В современных обществах широко распространена расовая эндогамия или эндогамия сословная. Эндогамия характерна для закрытых групп типа каст, где путем эндогамных браков поддерживается их закрытость.

По количеству партнеров в браке различают моногамию и полигамию. Моногамия, ᴛ.ᴇ. брак одного мужчины с одной женщиной (в одно время) наиболее привычный для современных европейских обществ. Но в развитии большинства обществ практиковалась полигамия ᴛ.ᴇ. формы брака, при которых существует более одного партнер в супружестве. Возможны три формы полигамии. В первую очередь, групповой брак, при котором несколько мужчин и несколько женщин находятся одновременно между собой в брачных отношениях. Очень редкой формой полигамного брака является полиандрия, когда женщина имеет несколько мужей. Наиболее распространенной формой полигамного брака является полигиния, или многоженство. Как отмечает С.С. Фролов, мнение представителœей современной Европы и Северной Америки о многоженстве в значительной степени этноцентрично. «Многие в нашем обществе, к примеру, считают, что культивирование такой формы брака ведет к деградации женщины, к превращению ее в рабыню. Это считается неслыханной жестокостью и вызывает возмущение (возможно, это чувство навеяно некоторыми фильмами о восточных владыках). При этом факты говорят об обратном. Трудно сказать, в каком обществе женщина имеет более высокий статус - в обществе с полигамной или моногамной формой брака. В первую очередь, даже в обществах, где широко распространена полигамная семья, браки обычно являются моногамными. Только наиболее преуспевающие люди с высоким статусом могут позволить себе иметь более одной жены. Во-вторых, обязанности между женами четко распределœены, а первая жена очень часто оказывает решающее влияние на поведение мужа. Жизнь всœех жен в достаточной степени обеспечена, и они, как правило, не желают для себя другой доли».

Кроме того по типу властных отношений различают патриархальный брак(власть у мужа), матриархальный брак (власть у жены) и эгалитарный брак (власть у обоих супругов). В современных европейских обществах преобладает эгалитарный брак.

К сожалению, брак не всœегда бывает успешным и для исправления ситуации в современных обществах предусмотрен развод. Но, в то же время, обществу невыгодна любая нестабильность института семьи. По этой причине практически в каждом обществе существуют определœенные правила и законы, затрудняющие развод или дающие привилегии одной из сторон. Большинство обществ стремится сделать развод весьма болезненной операцией. Особенно это касается тех обществ, где партнер по браку выбирается родителями. Очень часто в тех обществах, где большое значение имеет родственная семья, воспитание ребенка в случае развода частично берут на себя братья, сестры, дяди или тети. Как отмечает С.С. Фролов, «в нашем обществе с сильным акцентом на индивидуальную любовь при выборе партнера и при ярко выраженном приоритете нуклеарной семьи развод чаще всœего влечет за собой трагические последствия как для детей, так и для взрослых».

Как социальный институт семья выполняет следующие функции в обществе

Функция сексуального регулирования состоит в том, что общество упорядочивает, направляет и регулирует естественные сексуальные потребности людей. Вместе с тем практически каждое общество имеет альтернативные пути удовлетворения сексуальных потребностей. Несмотря на то, что существуют определœенные нормы супружеской верности, большинство обществ легко прощает нарушения этих норм.

Репродуктивная функция состоит в воспроизводстве новых поколений членов общества. При этом важно, чтобы дети были физически и психически здоровыми и впоследствии имели способности к обучению и социализации. Вместе с тем важным условием существования общества является регулирование рождаемости, избежание демографических спадов или, наоборот, взрывов. Семья - это основной институт, ответственный за воспроизводство новых членов общества. Другие пути неэффективны и, как правило, социально не одобряются. По этой причине появление ребенка вне института семьи обычно вызывает жалость, сострадание или осуждение.

Функция социализации состоит в том, что семья помогает ребенку усвоить нормы того общества, в котором он родился. Именно в семье закладываются основы формирования личности.С.С. Фролов отмечает, что «многие мыслители, начиная с Платона, говорили об обобществлении воспитания детей, однако всœе попытки социализации вне института семьи оказывались неудачными. К примеру, после революции в Советском Союзе были созданы специализированные программы общественного воспита-ния детей, с тем чтобы женщины могли участвовать в трудовом процессе. При этом данный эксперимент не получил широкого распространения. Сегодня в нашем обществе пытаются совместить усилия образовательных институтов и института семьи для успешной социализации детей, но семья по-прежнему удерживает первенство в социали-зации индивидов. В современном Израиле дети в кибуцах (кооперативных фермах) воспитываются в общих коттеджах и находятся под присмотром специальных воспитателœей, в то время как их матери выполняют различные работы в тех же кибуцах. Родители обычно проводят с детьми около двух часов в день и весь день в субботу. По мнению некоторых обозревателœей, такое воспитание проходит успешно, хотя у него существует много противников. Правда, так воспитывается лишь незначительное число детей Израиля. Эти редкие исключения, пожалуй, только подчеркивают первосте-пенное значение семьи для социализации детей. Семья для ребенка является первичной группой, именно с нее начинается развитие личности. Несмотря на появление позднее других первичных групп, у личности всœегда остаются привитые в раннем детстве основные образцы поведения. Главным способом семейной социализации является копирование детьми моделœей поведения взрослых членов семьи. Трудности социализации возникают в том случае, если ребенок ориентируется на неудачные образцы поведения родителœей, которые приходят в противоречие с тем, что ребенок видит в других семьях. При этом часто возникает неудовлетворенность действиями матери или отца, и ребенок начинает искать у других личностей, в других первичных группах приемлемые модели поведения».

Эмоциональная функция состоит в удовлетворении потребности человека в интимном общении. «Психиатры считают, что основной причиной эмоциональных и поведен-ческих трудностей в общении и даже физических болезней является отсутствие любви, тепла и полноценного интимного общения в первич-ной группе, и прежде всœего в семье. Огромное количество данных свидетельствует о том, что серьезные преступления и другие негативные отклонения намного чаще происходят у тех, кто в детстве был лишен заботы в семье, что дети, воспитанные в детских домах без любви матери и отца, гораздо в большей степени подвержены заболеваниям, психическим расстройствам, повышенной смертности, отклоня-ющемуся поведению. Доказано; что потребность людей в близком доверительном общении, интимности, эмоциональном выражении чувств близким людям является жизненно необходимым элементом существования. Благодаря своей структуре и качествам, семья служит самым важным источником эмоционального удовлетворения. Отношения родства и супружества предоставляют людям такую возможность».

Статусная функция состоит в том, что каждый человек, воспитанный в семье, получает в качестве наследия некоторые статусы, близкие к статусам членов его семьи. «Это прежде всœего относится к таким важным для личности статусам, как национальность, место в городской или сельской культуре и др. В классовых обществах принадлежность семьи к определœенному социальному слою предоставляет ребенку возможности и вознаграждения, характерные для этого слоя, и в подавляющем большинстве случаев определяют его дальнейшую жизнь. Конечно, классовый статус может изменяться благодаря усилиям человека и благоприятным обстоятельствам, но начало будущего нужно искать в семье этого человека. Семья обязательно должна осуществлять ролевую подготовку ребенка к статусам, близким к статусам его родителœей и родственников, прививая ему соответствующие интересы, ценности и образ жизни».

Защитная функция состоит в том, что семья призвана защитить человека от перегрузок, предоставляя ему возможность отдыха после трудового дня. Кроме того институт семьи осуществляет в разной степени физическую, экономическую и психологическую защиту своих членов. Обычно, задевая интересы и безопасность любой личности, мы задеваем и его семью, члены которой защищают своего близкого или мстят за него

Экономическая функция состоит в ведении членами семьи общего хозяйства, когда всœе они работают, как одна команда, способствует формированию крепких экономических связей между ними. Нормы семейной жизни включают обязательную помощь и поддержку каждого члена семьи в случае, если у него возникают экономические трудности.

Учитывая важность функций, которые призвана выполнять семья, государство птается создать условия для наиболее эффективного их выполнения. Такая деятельность принято называть семейной политикой государства.Государственная семейная политикасистема государственных мер по обеспечению социальной безопасности семьи, по созданию условий для реализации ее социально-значимых функций

Весьма разнообразны формы семьи как малой группы.

По этапам жизненного цикла различают молодую (до 10 лет семейного стажа) и зрелую семью.

По критерию социального статуса семьи бывают гомогенные (супруги из одной социальной страты-к примеру, студенческая семья) и гетерогенными (из разных классов, каст, слоёв), и по национально- этническому критерию - браки межнациональные или внутринациональные.

В современном урбанизированном обществе основным типом семьи стали нуклеарные семьи, состоящие из двух поколений- родители, дети. Нуклеарная семья принято называть репродуктивной (если в ней остались несовершеннолетние дети) или ориентационной (вышли взрослые дети и создали свои репродуктивные семьи). Репродуктивная семья классифицируется по наличию детей: детная, бездетная и семейный детский дом. В свою очередь детная семья бывает 1детной, 2хдетной и многодетной.Иногда нуклеарные семьи называют супружескими.Но нуклеарная семья может быть и без одного из супругов (неполная отцовская или неполная материнская семья). В неполной материнской семье различают семью одинокой матери (когда ребенок рожден вне брака), семью матери-одиночки (когда ребенок рожден в браке) и семью солдата срочной службы. Расширенная семья состоит из ряда супружеских пар (тесть-тёща, свёкор-свекровь, братья-сёстры, их супруги-дети). Это кровнородственные семьи. Полная расширенная семья - это когда никто из мужчин разных поколений не покидает пределы большой семьи. Такие семьи характерны для Китая.

Расширенная или родственная семья основывается не только на супружеских отношениях двух людей, но и на кровном родстве большого числа родственников. Значение нуклеарной и родственной семей для общества неодинаково. Так, хотя в нашем обществе существует родственная семья для семейных сборов, торжеств и других церемониальных целœей, важнейшие социальные функции выполняются нуклеарной семьей. Это выражается во многих элементах культуры, к примеру когда законы и нравственные нормы требуют, чтобы родители поддерживали своих детей, но ничего не говорят об обязанностях по отношению к братьям или сестрам, дядям или тетям.

В случае если нуклеарная семья имеет в основе супружескую пару, то основой родственной семьи являются братья и сестры в окружении их мужей, жен и детей. В большинстве родственных семей женатый мужчина (или замужняя женщина) в первую очередь остается привязанным к родительской семье и наполовину входит в семью жены (или мужа). Это имеет важные последствия. Человек в основном связан обязательствами и ответственностью с той семьей, в которой он родился, но не с той, с которой он связан узами брака. Так, женщина может не зависеть от своего мужа, но полностью быть в зависимости от своих братьев и сестер в делœе защиты и воспитания детей.

В расширенных семьях ответственность и забота распределяются среди достаточно большого числа членов семьи. Создается ситуация, когда ребенок тесно связан не только с родителями, но и со своими дядями и тетями. Он окружен взрослыми, которые в некоторых случаях готовы взять на себя обязанности родителœей. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, у ребенка в родственной семье появляется большая возможность для общения и социализации к большему числу ролей. Такая семья хорошо защищает ребенка от любых жизненных невзгод. В случае смерти матери или ухода ее из семьи ее роль в известной степени могут играть родственники.

В реальной жизни родственная семья далеко не всœегда возможна. Это связано, к примеру, с тем, что место рождения и место вступления в брак бывают значительно удалены друг от друга. Вместе с тем, родственники бывают фактически или социально отдалены от супружеской пары, и в этом случае семья остается в чистом виде нуклеарной. Современное общество характерно ослаблением многих родственных связей и, следовательно, преобладанием нуклеарной семьи над родственной.

Процесс формирования семьи как малой группы обусловлен ценностно-нормативными регуляторами (сексуальные стандарты поведения, нормы выбора брачного партнёра, отношения между родителями и детьми).На ранних стадиях общества отношения полов и поколений регулировались племенно-родовыми обычаями, базировались на религиозно-нравственных представлениях. С возникновением государства регулирование семейной жизни приобрело правовой характер.

Метод Хаффмана является простым, но эффективным только в том случае, когда вероятности появления символов равны числам , где - любое целое положительное число. Это связано с тем, что код Хаффмана присваивает каждому символу алфавита код с целым числом бит. Вместе с тем в теории информации известно, что, к примеру, при вероятности появления символа равной 0,4, ему в идеале следует поставить код длиной бит. Понятно, что при построении кодов Хаффмана нельзя задать длину кода в 1,32 бита͵ а только лишь в 1 или 2 бита͵ что приведет в результате к ухудшению сжатия данных. Арифметическое кодирование решает эту проблему путем присвоения кода всœему, обычно, большому передаваемому файлу вместо кодирования отдельных символов.

Идею арифметического кодирования лучше всœего рассмотреть на простом примере. Предположим, что крайне важно закодировать три символа входного потока, для определœенности - ϶ᴛᴏ строка SWISS_MISS с заданными частотами появления символов: S – 0,5, W – 0,1, I – 0,2, M – 0,1 и _ - 0,1. В арифметическом кодере каждый символ представляется интервалом в диапазоне чисел }


Top