Компрессия полутонового изображения - Программирование, компьютеры и кибернетика курсовая работа

Компрессия полутонового изображения - Программирование, компьютеры и кибернетика курсовая работа



































Разработка программы, предназначенной для сжатия или компрессии полутонового изображения международным стандартом JPEG. Описание метода JPEG, выдача результатов в виде декодированного изображения. Обзор методов компрессии полутонового изображения.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
В данном документе описывается программа, написанная в соответствии с постановкой задачи на курсовое проектирование по теме "Компрессия полутонового изображения" по дисциплине "Кодирование и защита информации". Данная программа предназначена для сжатия или компрессии полутонового изображения международным стандартом JPEG. Входными данными является изображение типа BMP. Для проверки работы программы разработан тестовый пример. Результаты тестирования доказывают, что программа правильно выполняет все операции по сжатию полутонового изображения и выдачи результатов в виде декодированного изображения.
Требованием к аппаратному и программному обеспечению является наличие любого IBM-совместимого компьютера с наличием накопителя на гибких и (или) жестких магнитных дисках и наличием достаточного количества оперативной памяти (достаточно 640к). На компьютере должна быть установлена операционная система Windows98 (или выше) или любая другая, совместимая с ней.
Кодирование изображений с частичной потерей информации.
Изображения, в которых яркость изменяется непрерывно от уровня белого к черному, называется полутоновыми или много -градационными. Сигналы полутоновых изображений, в отличие от черно-белых факсимиле, являются аналоговыми. Поэтому для последующей их обработки с помощью ЭВМ они подвергаются дискретизации и квантованию. Сигналы полутонового неподвижного изображения представляют собой двухмерную функцию распределения яркости В(х, у) на плоскости с координатами х и у.
Сжимаемые изображения предназначаются для восприятия их человеком, либо для обработки автоматическими устройствами. Если изображение кодируется для передачи зрителю, то уменьшить объем передаваемой информации можно, используя особенности восприятия зрительного анализатора. Поскольку точность восприятия зрительного анализатора человека ограничена, то это позволяет считать некоторые искажения изображения незаметными или незначительными. Эта особенность дает возможность сжимать исходное изображение за счет потери части малозначительной информации, т.е. вносить определенные искажения. При декодировании, естественно, исключенная информация не может быть восстановлена и изображение воспроизводится с некоторой погрешностью. Различные методы кодирования вносят искажения разной степени. Поэтому при разработке системы компрессии изображения необходимо выбрать такой метод преобразования, который вносит наименее заметные искажения. В настоящее время большинство систем сжатия черно-белых и цветных неподвижных и подвижных изображений являются системы с потерей части. В то же время имеются области применения обработки изображений с использованием автоматических анализаторов, где потери какой-либо части изображений не допускаются.
При проектировании и оценке эффективности методов сжатия изображений необходимо иметь достоверную количественную меру качества изображения. К сожалению, не существует аналитической объективно адекватной меры качества изображения для различных систем сжатия изображений. Поэтому для характеристики качества применяются шкалы субъективной оценки качества изображения, испытательные изображения, численные зависимости качества от искажений. Любая «хорошая» мера качества изображения должна быть коррелированна с субъективными оценками качества изображения, представленными в виде шкалы. Существует две шкалы субъективной оценки: шкала качества и шкала ухудшения изображения. Обычно используется пятибалльная система оценок. Каждая ступень качества шкалы характеризует качество рассматриваемого изображения с учетом некоторого множества испытательных изображений. По шкале ухудшения можно оценить степень искажения кодируемого изображения по отношению к некоторому сходному изображению. В таблице приведены шкалы качества и ухудшения, принятые в технике передачи изображений.
Шкала качества и ухудшения изображения
Процедура оценки качества изображения осуществляется методом экспертной оценки. До эксперимента экспертам предъявляется неискаженное испытательное изображение . В течение эксперимента периодически показывают неискаженное изображение, сменяющееся с оцениваемым или рядом с ним.
Числовые оценки качества изображения делятся на два класса: одномерные и двумерные. Одномерные используются только для одного изображения и измерительная шкала калибруется с помощью сравнения оцениваемого изображения с исходным. Двумерные являются дифференциальными показателями качества изображения до обработки и после. Одномерные методы, как правило, основываются на пространственном спектре изображения. Типичные меры качества изображения включают общую или среднюю энергию сигнала на всех частотах. Другой класс одномерных числовых мер основан на использовании статистических характеристик изображения, в частности, математического ожидания. Одномерная гистограмма показывает распределение в изображении пикселей с определенным уровнем яркости. Такую гистограмму можно рассматривать как аппроксимацию одномерной плоскости распределения вероятностей изображения. По ее форме можно судить о контрастности изображения. Аналогично двумерная гистограмма - это аппроксимация двумерной плотности распределения вероятностей изображения. Ширина такой гистограммы в диагональном направлении указывает на пространственную корреляцию изображения.
Двумерные методы качества изображения применяют наиболее часто при оценке качества сжатого изображения, поскольку они указывают на относительные искажения закодированного изображения по сравнению с исходным. Самой распространенной мерой является среднеквадратическая ошибка, представляющая собой разность между значениями соответствующих пикселей исходного и искаженного изображения. К сожалению, среднеквадратическая ошибка часто слабо коррелированна с субъективными оценками качества изображения.
1 . Постановка задачи по разработке программы
Требуется написать программу, наглядно демонстрирующую работоспособность международного стандарта JPEG, т.е. необходимо сжать и закодировать информацию, представленную в виде полутонового неподвижного изображения, а затем ее декодировать и наглядно предоставить в виде полутонового изображения.
Входными данными являются файлы типа BMP
Выходными данными является неподвижное цветное изображение, находящееся на форме программы, которое демонстрирует метод JPEG, а также закодированный файл, который формируется в ходе выполнения программы.
Описание формата BMP для Window 3.0 (DIB)
Основным отличием файлов нового формата (DIB) - Device Independent Bitmap (аппаратно-независимый битовый образ) является то, что в них используется кодировка цветов с одной битовой плоскостью.
Файлы битовых образов нового формата начинаются со структуры BITMAPFILEHEADER:
typedef struct tagBITMAPFILEHEADER {
word bfType; //тип файла (для битового образа - BM)
dword bfSize; //размер файла в dword
word bfReserved1; //не используется
word bfReserved2; //не используется
dword bfOffbits; //смещение данных битового образа от заголовка в байтах
Непосредственно за ней располагается структура BITMAPINFO, содержащая всю информацию о битовом образе. Она делится на две части: структуру BITMAPINFOHEADER, описывающей размеры и цветовой формат битового образа, и массив структур RGBQUAD, определяющей цветовую палитру:
typedef struct tagBITMAPINFOHEADER {
dword biSize; //число байт, занимаемых структурой BITMAPINFOHEADER
dword biWidth; //ширина битового образа в пикселах
dword biHeight; //высота битового образа в пикселах
word biPlanes; //число битовых плоскостей устройства
word biBitCount; //число битов на пиксель
dword biSizeImage; //размер картинки в байтах
dword biXPelsPerMeter;//горизонтальное разрешение устройства, пиксел/м
dword biYPelPerMeter; //вертикальное разрешение устройства, пиксел/м
dword biClrUsed; //число используемых цветов
dword biClrImportant; //число "важных" цветов
biSize - обычно используется для облегчения доступа к таблице цветов.
biPlanes - определяет число битовых плоскостей; однако, поскольку цвет кодируется последовательными битами, это число всегда равно 1.
biBitCount - этим полем определяется число цветов, используемых битовым образом. В зависимости от способа кодирования, может принимать значения:
1 - битовый образ монохромный, и таблица цветов должна содержать два элемента. Каждый бит в массиве данных кодирует один пиксель. Если значение бита - 0, то пиксель становится первым цветом таблицы; если - 1, пиксель становится вторым цветом таблицы.
4 - битовый образ имеет максимум 16 цветов, и массив bmiColors (таблица цветов) имеет до 16 элементов. Цвет каждого пикселя определяется по таблице цветов при помощи четырехбитного индекса. Например, если первый байт данных имеет значение 3Ah, то при отображении битового образа цвет первого пикселя определяет четвертый элемент таблицы цветов, а цвет второго - одиннадцатый.
8 - битовый образ имеет максимум 256 цветов, и таблица цветов имеет до 256 элементов. Каждый байт массива данных определяет цвет одного пикселя.
24 - битовый образ имеет максимум 2 в 24-й степени цветов. Таблица цветов пуста, а цвет пикселей определяется пакетами из трех байтов, описывающими цветовые интенсивности красного, зеленого и голубого цветов.
biCompression - тип сжатия. Может принимать значения:
BI_RLE8 - сжатие для формата 8 бит на пиксель;
BI_RLE4 - сжатие для формата 4 бита на пиксель.
biXPelsPerMeter и biYPelsPerMeter - могут использоваться для выбора из списка ресурсов пиктограммы, наиболее подходящей для данного устройства.
biClrUsed - число цветов, используемых данным битовым образом. Если 0, то используются все цвета палитры (указанные в массиве bmiColors).
biClrImportant - используется для управления алгоритмом отображения цветов. Так, если четыре различных приложения отображают на экране по одному битовому образу с 75 цветами каждый, то адаптер, выводящий 256 цветов одновременно, не сможет полностью аутентично отобразить на экране все 4 картинки. В этом случае используется механизм замены цветов - ищется битовый образ с наименьшим приоритетом и его "лишние" цвета заменяются наиболее подходящими.
byte rgbRed; //интенсивность красного
byte rgbGreen; //интенсивность зеленого
byte rgbBlue; //интенсивность голубого
После того, как все параметры битового образа определены, в файле идут сами скан-строки битовой плоскости, причем первой скан-строкой в формате DIB считается нижняя скан-строка (т.е. начало координат находится в левом нижнем углу изображения).
Алгоритм JPEG можно разделить на несколько этапов
1. ДКП (Дискретно Косинусоидальное Преобразование).
Цветное изображение обычно представляет собой комбинацию трех цветов: красного зеленного и синего. Каждый из них обрабатывается независимо от других и для кодирования каждого из них выделяется от 6 до8 битов на отсчет. При кодировании полутонового изображения, в отличие от цветного, не происходит разбиение отсчетов на три составляющих и для кодирования каждого из отсчетов затрачивается от 6 до 8 бит.
В соответствии с алгоритмом ДКП последовательность отсчетов яркости пикселей преобразуется из трехмерного пространства (координаты изображения X,Y и яркость B) в идентичное представление в частотной области. Другими словами, посредством косинусного преобразования осуществляется преобразование пространственной информации в частотную (спектральную).
Дискретное косинусное преобразование является обратимым, то есть, посредством обратного косинусного преобразования осуществляется перенос сигнала из частотной области в пространственное представление. Косинусное преобразование оперирует с квадратной матрицей отсчетов яркости элементов изображения B(x,y) размером N*N пикселов. Результатом преобразования является квадратная матрица N*N частотных коэффициентов (трансформант) F(i,j).
Формулы для прямого и обратного ДКП представлены соответственно выражениями:
F(i,j)=(1/sqr(2N))*C(i)C(j)У У B(x,y)* cos((2x+1)iП/2N)* cos((2y+1)jП/2N);
B(x,y)= (1/sqr(2N))* У У C(i)C(j)F(i,j)* cos((2x+1)iП/2N)* cos((2y+1)jП/2N);
Здесь C(i) и C(j) равны 1/sqr(2) для i,j=0 и C(i), C(j)=1 при i,j>0;
B(x,y) - значение отсчета яркости пиксела фрагмента изображения с координатами x и y.
Для начала следует создать ДКП матрицу, используя формулу:
DCT = sqr(2/N)*cos[(2j+1)*i*3.14/2N], если i > 0
|.353553.353553.353553.353553.353553.353553.353553.353553|
|.490393.415818.277992.097887 -.097106 -.277329 -.415375 -.490246|
|.461978.191618 -.190882 -.461673 -.462282 -.192353.190145.461366|
DCT = |.414818 -.097106 -.490246 -.278653.276667.490710.099448 -.414486|
|.353694 -.353131 -.354256.352567.354819 -.352001 -.355378.351435|
|.277992 -.490246.096324.416700 -.414486 -.100228.491013 -.274673|
|.191618 -.462282.461366 -.189409 -.193822.463187 -.460440.187195|
|.097887 -.278653.416700 -.490862.489771 -.413593.274008 -.092414|
например, нам нужно сжать следующий фрагмент изображения:
IMG = |143 144 133 130 143 153 159 175|
вот формула, по которой производится ДКП: RES*IMG*DCT
для начала нужно посчитать промежуточную матрицу: TMP = IMG*DCT
затем умножаем ее на ДКП матрицу: RES = TMP*DCT
На этом этапе мы посчитаем матрицу квантования, используя этот псевдокод:
где q - это коэффициент качества, задаваемый пользователем, от него зависит степень потери качества сжатого изображения. Величину этого коэффициента рекомендуется выбирать в диапазоне от1 до 25. большие значения коэффициента качества также возможны, однако при качество воспроизводимого изображения резко ухудшается.
Так для q = 2 имеем матрицу квантования:
теперь нужно каждое число в матрице квантования разделить на число в соответствующей позиции в матрице RES, в результате получим:
как вы видите, здесь имеется довольно много нулей, мы получим наиболее длинную последовательность нулей, если будем использовать следующий алгоритм:
+----+----+----+----+----+----+----+----+
| 1 | 2 | 6 | 7 | 15 | 16 | 28 | 29 |
+----+----+----+----+----+----+----+----+
| 3 | 5 | 8 | 14 | 17 | 27 | 30 | 43 |
+----+----+----+----+----+----+----+----+
| 4 | 9 | 13 | 18 | 26 | 31 | 42 | 44 |
+----+----+----+----+----+----+----+----+
| 10 | 12 | 19 | 25 | 32 | 41 | 45 | 54 |
+----+----+----+----+----+----+----+----+
| 11 | 20 | 24 | 33 | 40 | 46 | 53 | 55 |
+----+----+----+----+----+----+----+----+
| 21 | 23 | 34 | 39 | 47 | 52 | 56 | 61 |
+----+----+----+----+----+----+----+----+
| 22 | 35 | 38 | 48 | 51 | 57 | 60 | 62 |
+----+----+----+----+----+----+----+----+
| 36 | 37 | 49 | 50 | 58 | 59 | 63 | 64 |
+----+----+----+----+----+----+----+----+
итак, у нас получилась последовательность:
30 0 -7 -11 8 0 0 1 6 -5 -7 -3 0 1 0 0 0 1 0 -3 -4 -1 4 2 0 0 0 0
0 0 0 0 0 0 0 -3 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
для большего сжатия можно перед первым этапом JPEG можно провести субдискретизацию, или другими словами уменьшить частоту изображения,идея очень проста: к примеру у нас есть следующая последовательность
11 42 200 123 56 32 125 234 12 24 34 78 145 134 245 101
если будем использовать субдискретизацию 4:1:1 результирующая последовательность будет: 11 123 125 24 145 101
а если использовать 4:2:2 - 11 234 245
а для восстановления последовательности нужно интерполироать
На этом этапе можно применить следующий алгоритм 7bit RLE.Этот алгоритм очень прост. Если у нас есть последовательность одинаковых байтов, то нужно установить последний бит в 0, посчитать количество байт и записать в оставшиеся биты. Если у нас последовательность различных байтов, то нужно установить последний быт в 1, посчитать количество байт и записать его в оставшиеся биты. Для нашей последовательности получится:
133 30 0 -7 -11 8 | 2 0 | 135 1 6 -5 -7 -3 0 1 | 3 0 | 135 1 0 -3 -4 -1 4 2
Для обобщения опыта разработки и использования методов сжатия неподвижных полутоновых и цветных изображений и разработки международного стандарта МККТТ и МОС в 1991 году была создана организация, состоящая из группы экспертов, которая получила название JPEG (Join Photographic Expert Group). Разработанный ими стандарт алгоритма обработки изображений получил название JPEG, который определяет правила сжатия многоградационных как черно-белых, так и цветных и полутоновых изображений. Стандарт состоит из ряда частей, включающих как сжатие без потерь, так и с частичными искажениями преобразуемой информации. Компрессия без потерь базируется на основе ДИКМ с предсказанием, адаптивных алгоритмов Хаффмена или арифметического кодирования. Компрессия изображений с потерей использует метод косинусного преобразования с последующим квантованием.
Вносимые искажения информации при ее компрессии в соответствии в алгоритмом JPEG не должны приводить к заметному ухудшению качества восстанавливаемого изображения, в частности, качество изображения по сравнению с оригиналов должно оцениваться на «отлично» или «хорошо». Кроме этого метод должен быть достаточно простым в реализации.
Структура компрессора и декомпрессора видеоинформации по стандарту JPEG показана на рисунке 1:
Рисунок 1 - Структурная схема компрессора и декомпрессора по JPEG
Рассмотрим подробнее некоторые особенности процедуры обработки изображений JPREG. Кодируемое изображение разбивается на блоки размером 8*8 элементов (пикселей). Каждый блок представляет собой 64-точечный дискркетный сигнал, состоящий из последовательности целых чисел в диапазоне [0.. 2^k - 1], которые затем преобразовываются в знаковые числа диапазона [-2^k, 2^(k-1) - 1]. Так, при256 градациях яркости количество разрядов для кодирования отсчета изображения k=8. Яркость пикселя путем масштабирования переносится из интервала 0 - 255 в диапазон от -127 до 127.
Выходной сигнал блока FDCT представляет собой 64-элементный массив, организованный в матрицу 8*8. Амплитуды трансформант однозначно определяются исходным блоком отчетов видеосигнала, и представляет собой коэффициенты при дискретных частотах. Коэффициент при нулевой частоте определяет амплитуду постоянной составляющей (DC), а остальные коэффициенты - амплитуды переменных составляющих (AC). В связи с тем, что элементы изображения во входном блоке изменяются слабо, то за счет косинусного преобразования удается сгруппировать трансформанты в области нижних пространственных частот. Следует еще раз подчеркнуть, что косинусное преобразование является обратимым и не приводит к сжатия сообщения. Оно осуществляет только подготовку данных к процедуре сжатия, которая осуществляется в квантователе.
Целью квантования является компрессия изображения путем задания точности не большей, чем это необходимо для получения желаемого качества воспроизведения изображения. При сжатии трансформант можно снижать и точность квантования, причем тем больше, чем дальше расположена трансформанта от постоянной составляющей DC, находящейся в матрице с индексами (0,0). Снижение точности отображения трансформант уменьшает количество требуемых для их представления битов. Элементы, которые расположены ближе к постоянной составляющей, кодируются большим числом битов, а более удаленные - меньшим.
В алгоритме JPEG операция квантования реализуется с помощью матрицы квантования. Для каждого элемента матрицы трансформант имеется соответствующие ему значения кванта Q(i,j), расположенные в матрице квантования. Квантование осуществляется делением каждой трансформанты F(i,j) на соответствующий ей квант Q(i, j) и выделением целой части.
Значения трансформант перед квантованием
Значения трансформант после деквантования
Значения трансформант после квантования
Последовательность значений трансформант:
86 -5 12 -1 -3 3 0 0 17 0 0 0 0 0 0 2 0 0 -1 0 21 0 0 0 0 0 0 0 0 -1 0 -2 0 0 0 0 0 0 -7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.
Используя описанный выше способ кодирования и данные таблицы, получим последовательность символов СИМ1 и СИМ2:
(7)(86) (0,3)(-5) (0,4)(12) (0,1)(-1) (0,2)(-3) (2,5)(17) (6,2)(2) (2,1)(-1) (0,5)(21) (8,1)(-1) (1,2)(-2) (6,3)(-7) (0,0)
jpeg полутоновое изображение сжатие компрессия
Рассмотренный JPEG-алгоритм относится к монохромным изображениям. Цветные изображения обычно состоят из трех компонент: красного, зеленого и синего цветов (RGB-формат сигнала). В этом случае JPEG-алгоритм рассматривает изображение так, как будто оно состоит из трех отдельных изображений. При RGB-изображении сначала сжимается красная, затем зеленая и в конце синяя компонента. Для каждой компоненты могут использоваться различные таблицы квантования и энтропийного кодирования, которые определяются статистическими характеристиками составляющих изображения. В процессе компрессии и декомпрессии осуществляется синхронное переключение таблиц в соответствии с обрабатываемой компонентой.
Данная программа разработана в соответствии с постановкой задачи на курсовое проектирование по теме "Компрессия полутонового изображения" по дисциплине "Кодирование и защита информации" («КиЗИ»). При написании программы использованы методические указания по курсовому проектированию по дисциплине "КиЗИ". Интерфейс программы удобен для использования. Выходные данные представлены в виде полутонового неподвижного изображения на одном из окон программы. По своей структуре программа хорошо организована, что позволяет в случае необходимости легко ее модифицировать. Для проверки работоспособности программы и правильности обработки входных данных разработан тестовый пример. Тестирование программы подтвердило, что программа правильно выполняет обработку данных и выдаёт верные результаты.
Всё это свидетельствует о работоспособности программы и позволяет сделать вывод о пригодности программы к компрессии полутонового изображения и является наглядным примером программной реализации метода JPEG.
Разработка приложения, целью которого ставится преобразование черно-белых полутоновых изображений в цветные. Обзор методики обработки изображения, способов преобразования изображения с помощью нейронной сети. Описания кластеризации цветового пространства. дипломная работа [6,3 M], добавлен 17.06.2012
Информация о графических форматах. Хранение изображения в программе. Очередь как вспомогательная структура данных. Загрузка изображения из двоичного файла. Операции с изображением. Уменьшение разрешающей способности. Увеличение размера изображения. курсовая работа [1,1 M], добавлен 29.06.2013
Методы кодирования изображения: кодированием длины серии, частотно-зависимое кодирование, метод Лемпеля-Зива. Размер строки при 16-битном цвете. Расчет размера всего исходного изображения. Примеры качественного и некачественного сжатия изображения. презентация [2,0 M], добавлен 22.10.2013
Описание алгоритма поворота изображения. Вычисление синуса и косинуса угла поворота изображения. Алгоритм и реализация функции поворота изображения вокруг центра на заданный пользователем угол. Проверка на соответствие диапазону допустимых значений. курсовая работа [1,3 M], добавлен 23.01.2015
Описание этапов создания анимированного GIF изображения мультипликационного героя "Винни-Пуха" в программе Adobe Photoshop CS6. Создание дубликата слоя изображения и подготовка кадров для GIF анимации. Настройка эффектов анимации и результат GIF-файла. лабораторная работа [1,2 M], добавлен 05.03.2015
Интерфейс программы Adobe Photoshop. Внесение изменений в изображение. Инструменты изменения оттенка и искажения изображения. Последовательность формирования изображения. Тоновая и цветовая коррекция изображения, работа с фильтрами и функциями. курсовая работа [2,8 M], добавлен 14.12.2011
Задачи цифровой обработки изображений. Методы пороговой сегментации. Создание программы представления рисунка в виде матрицы и применения к нему пороговой обработки. Разработка интерфейса программы загрузки и фильтрации изображения с выбранным порогом. курсовая работа [2,0 M], добавлен 12.11.2012
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Компрессия полутонового изображения курсовая работа. Программирование, компьютеры и кибернетика.
Реферат: Калина звичайна капуста городня
Реферат: Гестозы. Скачать бесплатно и без регистрации
Таможенный Контроль За Перемещением Лицензируемых Товаров Курсовая
Отель Моей Мечты Сочинение
Дипломная работа по теме Внедрение решения '1С Управление предприятием ЖКХ' для ООО 'ИРКЦ' в соответствии с современными требованиями и пожеланиями руководителя
Годовая Контрольная Работа По Английскому Языку
Экспериментальная Часть Дипломной Работы
Реферат: Расчет и анализ показателей объема работы и использования подвижного состава Ж/Д
Курсовая Работа На Тему Налог На Прибыль Организации
Реферат На Тему История Систем Счисления
Реферат: Основные направления внешней политики республики Беларусь
Доклад по теме Факторы жилой среды в формировании условий жизнедеятельности человека
Геометрия 8 Класс Контрольные Работы Ершова
Как Война Отражается На Человеческих Судьбах Сочинение
Контрольная работа: Теория потребительского поведения 10
Особенности Подготовки Дипломного Проекта
Мое Первое Путешествие Сочинение
Загрязнение Океана Эссе
Реферат по теме Разоблачение инсценировок при расследовании грабежей и разбойных нападений.
Реферат по теме Влияние кислорода на воду, безалкогольные напитки
Общая характеристика Чуйской области Республики Киргизия - География и экономическая география доклад
Особливості розвитку навичок професійно-орієнтованого читання - Педагогика статья
Россия на рубеже XVI-XVII веков. Смутное время - История и исторические личности реферат


Report Page