|
|
  |
H.264 Hardware Encoder in VHDL |
|
|
|
Oct 11 2012, 19:18
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(Maverick @ Oct 11 2012, 12:47)  нашел тут, попробовал моделировать видеоплеер открывает... Правда он не полный, например нет межкадрового сжатия... Есть предложение перезалить в закарма А можете на куда-нить выложить кодированный кусок? Интересно посмотреть на качество и размер...
|
|
|
|
|
Oct 12 2012, 13:12
|

я только учусь...
     
Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839

|
Цитата(alexPec @ Oct 11 2012, 22:18)  А можете на куда-нить выложить кодированный кусок? Интересно посмотреть на качество и размер... много не моделировал... Во вложении
Прикрепленные файлы
test.rar ( 81.48 килобайт )
Кол-во скачиваний: 242
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
Oct 14 2012, 19:34
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 13-07-10
Из: Гатчина
Пользователь №: 58 415

|
Цитата(des00 @ Oct 13 2012, 20:35)  дык эта, может энкодер за опенсорсим ?  А принять участие возможно?
|
|
|
|
|
Oct 15 2012, 06:58
|
Местный
  
Группа: Свой
Сообщений: 254
Регистрация: 23-10-10
Из: астрал
Пользователь №: 60 371

|
Цитата(alexPec @ Oct 13 2012, 16:40)  Аналогично, не могу открыть... это сырой h264 битстрим, еще не в контейнере - поэтому плееры и не могут обычно такое открыть в принципе работает Код General Complete name : D:\temp\test.264 Format : AVC Format/Info : Advanced Video Codec File size : 97.3 KiB
Video Format : AVC Format/Info : Advanced Video Codec Format profile : Baseline@L4.0 Format settings, CABAC : No Format settings, ReFrames : 1 frame Width : 640 pixels Height : 480 pixels Display aspect ratio : 4:3 Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive это если пощупать mediainfo, http://mediainfo.sourceforge.net/enчто бы играло в плейерах , надо сделать mux to container, для .mp4 контейнера/файла , например вот этим http://www.videohelp.com/tools/MP4Muxerнасколько хороший результат от этого кодека - надо еще смотреть, как говорится - тут уже много ньюансов.... Цитата(DemonP @ Oct 14 2012, 21:34)  А принять участие возможно?  еще есть только draft specs и многое еще может поменяться.... но основные вещи даже на wiki уже закинули http://en.wikipedia.org/wiki/High_Efficiency_Video_Codingне все еще понятно с вычислительной потребностью при кодировании
|
|
|
|
|
Oct 15 2012, 15:21
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(DemonP @ Oct 14 2012, 13:34)  А принять участие возможно?  да почему бы и нет, но с решением еще не понятно. дело занятное, но нужен Team Leader со временем, что бы скоординировать проект.... Цитата(DevL @ Oct 15 2012, 00:58)  еще есть только draft specs и многое еще может поменяться.... но основные вещи даже на wiki уже закинули http://en.wikipedia.org/wiki/High_Efficiency_Video_Codingне все еще понятно с вычислительной потребностью при кодировании  при наличии какого каркаса, локальные изменения побоку, прикрутить не долго. обсуждал со знающими людьми, гуторят что I frame Low delay HEVC тема.......
--------------------
|
|
|
|
|
Oct 16 2012, 06:57
|

я только учусь...
     
Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839

|
Цитата(nikolascha @ Oct 16 2012, 09:13)  А с какими ключиками запускать ffmpeg ? я при запуске пользовался вот этим и этим + этим (работал в Windows XP)
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
Oct 16 2012, 07:30
|
Местный
  
Группа: Свой
Сообщений: 376
Регистрация: 20-06-09
Из: BY
Пользователь №: 50 480

|
Цитата(Maverick @ Oct 16 2012, 08:57)  я при запуске пользовался вот этим и этим + этим (работал в Windows XP) Примеры запуска ffmpeg я увидел только в википедии. По команде ffmpeg -h выдаётся туча ключиков и сложно сходу сообразить как его правильно запускать, чтобы посмотреть ваш файл test.264. Может приведёте конкретную строку запуска?
|
|
|
|
|
Oct 16 2012, 08:12
|
Местный
  
Группа: Свой
Сообщений: 254
Регистрация: 23-10-10
Из: астрал
Пользователь №: 60 371

|
Цитата(des00 @ Oct 16 2012, 09:13)  дык нужно иметь опыт делать энкодеры, поделку на уровне кучи проводов/модулей, кое как соединенных не хотелось бы рожать  . Тему стоит обдумать, вырисовываются кое какие коммерческие перспективы %))) главное - желание и время куча проводов и соединений получиться и так, там будут еще и бОльшие заморочки чем только это, качество и скорость гораздо более емкие темы для подумать...
|
|
|
|
|
Oct 17 2012, 06:30
|
Местный
  
Группа: Свой
Сообщений: 376
Регистрация: 20-06-09
Из: BY
Пользователь №: 50 480

|
Цитата(des00 @ Oct 17 2012, 06:55)  надо прикинуть что к чему, как я понял народ не против поучаствовать. Правда я в веб технологиях полный ноль, на какой площадке предполагается разместить проект? нужно wiki + система контроля версий. На первом этапе можно воспользоваться местной вики, хотя функционал там базовый (даже картинку не вставить). Если её не будет хватать, то можно поднять свою, только хостинг выбрать и наверное бесплатный... С системой контроля версий, возможно, проще обстоят дела. Можно SourceForge, Google Code, github, Launchpad, Freepository, Bitbucket, CodePlex, assembla, GNU Savannah, Tigris.org. Сравнение хостингов. Кто с какими уже сталкивался?
|
|
|
|
|
Oct 17 2012, 07:26
|
Местный
  
Группа: Свой
Сообщений: 254
Регистрация: 23-10-10
Из: астрал
Пользователь №: 60 371

|
Цитата(nikolascha @ Oct 17 2012, 08:30)  На первом этапе можно воспользоваться местной вики, хотя функционал там базовый (даже картинку не вставить). Если её не будет хватать, то можно поднять свою, только хостинг выбрать и наверное бесплатный... С системой контроля версий, возможно, проще обстоят дела. Можно SourceForge, Google Code, github, Launchpad, Freepository, Bitbucket, CodePlex, assembla, GNU Savannah, Tigris.org. Сравнение хостингов. Кто с какими уже сталкивался? если определимся куда выхлоп, в смысле лицензии - выбирать будет проще, предложу BSD лицензию, для начала, или dual licensed - если с намеком на продажу  например: Google Code Код Google Code runs a project hosting service[9] that provides revision control offering Subversion, Mercurial[10] and Git[11] (transparently implemented using BigTable as storage), an issue tracker, a wiki for documentation, and a file download feature. The service is available and free for all OSI-approved Open Source projects (as of 2010, it is strongly recommended but no longer required to use one of the nine well-known open source licenses: Apache, Artistic, BSD, GPLv2, GPLv3, LGPL, MIT, MPL and EPL). The site limits the number of projects one person can have to 25.[12] Additionally, there is a limit as to the number of projects that may be created in one day, a 200MB default upload file size limit, which can be raised, and a 5GB per project total size limit[13]. но GIT, GIT и еще раз GIT так же предлагаю https://www.assembla.com/ или http://sourceforge.net/берусь проспонсировать hosting
|
|
|
|
|
Oct 17 2012, 09:05
|
Местный
  
Группа: Свой
Сообщений: 254
Регистрация: 23-10-10
Из: астрал
Пользователь №: 60 371

|
Цитата(des00 @ Oct 17 2012, 10:06)  я бы сделал MIT ну и мне ближе SVN, но думаю что сабвершион это не самая главная проблема. MIT тоже годиться, как я уже и говорил - если для фана делать все это , то вообще всеравно. SVN был неплох, сам долго уходил от него но удаленно и быстро - это уже не он...
|
|
|
|
|
Oct 17 2012, 09:18
|
Местный
  
Группа: Свой
Сообщений: 376
Регистрация: 20-06-09
Из: BY
Пользователь №: 50 480

|
Цитата(DevL @ Oct 17 2012, 09:26)  берусь проспонсировать hosting Если будет хостинг, то для вики хорошая сборка движка mediawiki4intranetА вопрос с лицензией неужели такой важный? Нельзя "как есть" сделать? По контролю версий, возможно, лучше SVN, а кто хочет у себя может локально GIT ставить, он с удалённым репозиторием SVN умеет работать. Ещё обычно багтрекер используют, но не знаю на сколько это тут нужно...
|
|
|
|
|
Oct 17 2012, 15:16
|
Местный
  
Группа: Свой
Сообщений: 254
Регистрация: 23-10-10
Из: астрал
Пользователь №: 60 371

|
Цитата(nikolascha @ Oct 17 2012, 11:18)  Если будет хостинг, то для вики хорошая сборка движка mediawiki4intranetА вопрос с лицензией неужели такой важный? Нельзя "как есть" сделать? По контролю версий, возможно, лучше SVN, а кто хочет у себя может локально GIT ставить, он с удалённым репозиторием SVN умеет работать. Ещё обычно багтрекер используют, но не знаю на сколько это тут нужно... http://www.drdobbs.com/tools/the-git-revol...-here/240009161
|
|
|
|
|
Dec 5 2012, 11:06
|

Частый гость
 
Группа: Свой
Сообщений: 130
Регистрация: 19-12-05
Пользователь №: 12 399

|
Цитата(des00 @ Oct 15 2012, 22:21)  да почему бы и нет, но с решением еще не понятно. дело занятное, но нужен Team Leader со временем, что бы скоординировать проект....
при наличии какого каркаса, локальные изменения побоку, прикрутить не долго. обсуждал со знающими людьми, гуторят что I frame Low delay HEVC тема....... ..ты эта...серетные карты генштаба то не раскрывай  ... Не знаю есть ли смысл в опенсорсиньи авц.. Может тогда уж хевц?
|
|
|
|
|
Jun 10 2013, 08:11
|
Гуру
     
Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493

|
Цитата(Kuzmi4 @ Nov 12 2012, 13:48)  2 Maverick то, что исходники конкретно данного энкодера на VHDL не означает что нужно всё остальное делать на нём 2 all а тема действительно заглохла.. Есть какие нибудь продвижения? Попробую на Actel SmartFusion2 реализовать. Тема интересная и нужная.
|
|
|
|
|
Jun 26 2013, 08:11
|
Группа: Новичок
Сообщений: 1
Регистрация: 26-06-13
Пользователь №: 77 283

|
привет!кто работал с макетом DE2-115 И камерой к нему TRDB-D5M?ПОДСКАЖИТЕ как исправить код программы, если изменить разрешение кадра на 1280*1024 т.е. 1,3MPixel, а было в примере 640*480.мне интересна любая информация и опыты с этим макетом. CODE module VGA_Controller( // Host Side iRed, iGreen, iBlue, oRequest, // VGA Side oVGA_R, oVGA_G, oVGA_B, oVGA_H_SYNC, oVGA_V_SYNC, oVGA_SYNC, oVGA_BLANK,
// Control Signal iCLK, iRST_N, iZOOM_MODE_SW ); `include "VGA_Param.h"
`ifdef VGA_640x480p60 // Horizontal Parameter ( Pixel ) parameter H_SYNC_CYC = 96; parameter H_SYNC_BACK = 48; parameter H_SYNC_ACT = 640; parameter H_SYNC_FRONT= 16; parameter H_SYNC_TOTAL= 800;
// Virtical Parameter ( Line ) parameter V_SYNC_CYC = 2; parameter V_SYNC_BACK = 33; parameter V_SYNC_ACT = 480; parameter V_SYNC_FRONT= 10; parameter V_SYNC_TOTAL= 525;
`else // SVGA_800x600p60 //// Horizontal Parameter ( Pixel ) parameter H_SYNC_CYC = 128; //Peli parameter H_SYNC_BACK = 88; parameter H_SYNC_ACT = 800; parameter H_SYNC_FRONT= 40; parameter H_SYNC_TOTAL= 1056; // Virtical Parameter ( Line ) parameter V_SYNC_CYC = 4; parameter V_SYNC_BACK = 23; parameter V_SYNC_ACT = 600; parameter V_SYNC_FRONT= 1; parameter V_SYNC_TOTAL= 628;
`endif // Start Offset parameter X_START = H_SYNC_CYC+H_SYNC_BACK; parameter Y_START = V_SYNC_CYC+V_SYNC_BACK; // Host Side input [9:0] iRed; input [9:0] iGreen; input [9:0] iBlue; output reg oRequest; // VGA Side output reg [9:0] oVGA_R; output reg [9:0] oVGA_G; output reg [9:0] oVGA_B; output reg oVGA_H_SYNC; output reg oVGA_V_SYNC; output reg oVGA_SYNC; output reg oVGA_BLANK;
wire [9:0] mVGA_R; wire [9:0] mVGA_G; wire [9:0] mVGA_B; reg mVGA_H_SYNC; reg mVGA_V_SYNC; wire mVGA_SYNC; wire mVGA_BLANK;
// Control Signal input iCLK; input iRST_N; input iZOOM_MODE_SW;
// Internal Registers and Wires reg [12:0] H_Cont; reg [12:0] V_Cont;
wire [12:0] v_mask;
assign v_mask = 13'd0 ;//iZOOM_MODE_SW ? 13'd0 : 13'd26;
////////////////////////////////////////////////////////
assign mVGA_BLANK = mVGA_H_SYNC & mVGA_V_SYNC; assign mVGA_SYNC = 1'b0;
assign mVGA_R = ( H_Cont>=X_START && H_Cont<X_START+H_SYNC_ACT && V_Cont>=Y_START+v_mask && V_Cont<Y_START+V_SYNC_ACT ) ? iRed : 0; assign mVGA_G = ( H_Cont>=X_START && H_Cont<X_START+H_SYNC_ACT && V_Cont>=Y_START+v_mask && V_Cont<Y_START+V_SYNC_ACT ) ? iGreen : 0; assign mVGA_B = ( H_Cont>=X_START && H_Cont<X_START+H_SYNC_ACT && V_Cont>=Y_START+v_mask && V_Cont<Y_START+V_SYNC_ACT ) ? iBlue : 0;
always@(posedge iCLK or negedge iRST_N) begin if (!iRST_N) begin oVGA_R <= 0; oVGA_G <= 0; oVGA_B <= 0; oVGA_BLANK <= 0; oVGA_SYNC <= 0; oVGA_H_SYNC <= 0; oVGA_V_SYNC <= 0; end else begin oVGA_R <= mVGA_R; oVGA_G <= mVGA_G; oVGA_B <= mVGA_B; oVGA_BLANK <= mVGA_BLANK; oVGA_SYNC <= mVGA_SYNC; oVGA_H_SYNC <= mVGA_H_SYNC; oVGA_V_SYNC <= mVGA_V_SYNC; end end
// Pixel LUT Address Generator always@(posedge iCLK or negedge iRST_N) begin if(!iRST_N) oRequest <= 0; else begin if( H_Cont>=X_START-2 && H_Cont<X_START+H_SYNC_ACT-2 && V_Cont>=Y_START && V_Cont<Y_START+V_SYNC_ACT ) oRequest <= 1; else oRequest <= 0; end end
// H_Sync Generator, Ref. 40 MHz Clock always@(posedge iCLK or negedge iRST_N) begin if(!iRST_N) begin H_Cont <= 0; mVGA_H_SYNC <= 0; end else begin // H_Sync Counter if( H_Cont < H_SYNC_TOTAL ) H_Cont <= H_Cont+1; else H_Cont <= 0; // H_Sync Generator if( H_Cont < H_SYNC_CYC ) mVGA_H_SYNC <= 0; else mVGA_H_SYNC <= 1; end end
// V_Sync Generator, Ref. H_Sync always@(posedge iCLK or negedge iRST_N) begin if(!iRST_N) begin V_Cont <= 0; mVGA_V_SYNC <= 0; end else begin // When H_Sync Re-start if(H_Cont==0) begin // V_Sync Counter if( V_Cont < V_SYNC_TOTAL ) V_Cont <= V_Cont+1; else V_Cont <= 0; // V_Sync Generator if( V_Cont < V_SYNC_CYC ) mVGA_V_SYNC <= 0; else mVGA_V_SYNC <= 1; end end end
endmodule
|
|
|
|
|
Jun 26 2013, 08:44
|

я только учусь...
     
Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839

|
Цитата(Олег в @ Jun 26 2013, 11:11)  привет!кто работал с макетом DE2-115 И камерой к нему TRDB-D5M?ПОДСКАЖИТЕ как исправить код программы, если изменить разрешение кадра на 1280*1024 т.е. 1,3MPixel, а было в примере 640*480.мне интересна любая информация и опыты с этим макетом. пользуйтесь тегами - легче читать. Вам необходимо поменять значения Код parameter
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
Jul 11 2013, 06:56
|
Гуру
     
Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493

|
Только только с либеро разобрался под Smartfusion 2, подключил OV5642, байер с матицы пошел... но.. время блин, пытаюсь успеть все. да еще и лицензия на Либеро у меня позволяет писать либо на VHDL, либо на Verilog, я только последний понимаю. Но ребята на работе нашли решение.Так что в выходные думаю продолжать. Цитата(Sergey_Bekrenyov @ Jul 10 2013, 21:13)  я попробовал поменять разрешение - все упирается в логические ресурсы, так как RAM для буферизации описана как регистры и не переводится компиляторами автоматом на Block Ram Не, так не пойдет. Работать с кадром в блочной памяти половое извращение. Надо в ДДР. Будем переписывать значит, менее чем фулл эйчди он неинтересен.
|
|
|
|
|
Jul 13 2013, 19:56
|

Местный
  
Группа: Свой
Сообщений: 323
Регистрация: 14-12-10
Из: Королёв
Пользователь №: 61 599

|
Цитата(DASM @ Jul 11 2013, 10:56)  Только только с либеро разобрался под Smartfusion 2, подключил OV5642, байер с матицы пошел... но.. время блин, пытаюсь успеть все. да еще и лицензия на Либеро у меня позволяет писать либо на VHDL, либо на Verilog, я только последний понимаю. Но ребята на работе нашли решение.Так что в выходные думаю продолжать.
Не, так не пойдет. Работать с кадром в блочной памяти половое извращение. Надо в ДДР. Будем переписывать значит, менее чем фулл эйчди он неинтересен. Насколько я понимаю все равно будет нужно окошко 4х4 - то есть буфер на 4 строки однозначно понадобится с подкачкой из ДДР. Для меня самая главная загадка как в Ethernet уложить NAL
|
|
|
|
|
Jul 21 2017, 20:23
|
Группа: Новичок
Сообщений: 3
Регистрация: 26-05-13
Пользователь №: 76 987

|
Народ, помогите, пожалуйста, разобраться с моделью приведенного в топике кодировщика, в VHDL не сильно силен. Моделировал в ISE и Vivado встроенных симуляторах. ругается на конструкции: write(sout,"Reusing framenum: ");write(sout,framenum); write(sout,". Using QP: ");write(sout,conv_integer(QP));
Сообщение отредактировал Qimbo_Bob - Jul 21 2017, 20:24
|
|
|
|
|
Jul 22 2017, 21:07
|
Группа: Новичок
Сообщений: 3
Регистрация: 26-05-13
Пользователь №: 76 987

|
Он параметризуемый, не имеет предела по разрешению, 3 к слайсов для разрешения которое по дефолту вбито. Разводил для 4400*2250 тогда уже 9000 лутов кушает на спартане 6(слайсов хз). Пиксельная скорость что- то порядка 110 MHZ для спартана получилась, больше не хочет никак. Кадров предсказания движения у него нету. ни B ни P, есть только I, но для камер я так понял этого вполне достаточно. Тем более с такой занимаемой площадью.
Сообщение отредактировал Qimbo_Bob - Jul 22 2017, 21:08
|
|
|
|
|
Jul 22 2017, 21:12
|
Группа: Новичок
Сообщений: 3
Регистрация: 26-05-13
Пользователь №: 76 987

|
Цитата(AVR @ Jul 22 2017, 18:06)  Всего 3Кслайсов??? Фантастика! А разрешение 640x480? А что по части памяти оно требует? P.S. Как я мог это пропустить? Оно по памяти в том виде, в котором есть, ничего почти не требует, есть только I кадры, которые почти на лету обрабатываются, памяти пару Block Ram кушает. Но заложена возможность добавления P и B кадров предсказания. Автор данного кода пишет, что коэффициент сжатия 1:10, с кадрами B было бы порядка 1:50, естественно в зависимости от типа входного видеосигнала (насколько там много всего движется).
Сообщение отредактировал Qimbo_Bob - Jul 22 2017, 21:14
|
|
|
|
|
Aug 1 2017, 13:54
|
Частый гость
 
Группа: Свой
Сообщений: 118
Регистрация: 25-06-04
Пользователь №: 186

|
Цитата(Qimbo_Bob @ Jul 23 2017, 00:12)  Оно по памяти в том виде, в котором есть, ничего почти не требует, есть только I кадры, которые почти на лету обрабатываются, памяти пару Block Ram кушает. Но заложена возможность добавления P и B кадров предсказания. Автор данного кода пишет, что коэффициент сжатия 1:10, с кадрами B было бы порядка 1:50, естественно в зависимости от типа входного видеосигнала (насколько там много всего движется). От I picture особого смысла нет, там только половина по железу, причем не самое сложное.
|
|
|
|
|
Aug 2 2017, 02:06
|
Профессионал
    
Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942

|
Цитата(lexx @ Aug 1 2017, 16:54)  От I picture особого смысла нет, там только половина по железу, причем не самое сложное. Единственный смысл, который вижу, это если файл или стрим используется каким-нибудь стандартным декодером (например аппаратным в смартфоне). И для удобства ему можно скормить стандартный h.264. Тут ключевое слово стандартный. Пусть и без использования всей мощи стандарта видеосжатия. Если учесть, что он кушает очень немного ресурсов от ПЛИС, то это неплохая альтернатива MJPEG.
Сообщение отредактировал x736C - Aug 2 2017, 02:07
|
|
|
|
|
Aug 2 2017, 23:08
|
Частый гость
 
Группа: Свой
Сообщений: 118
Регистрация: 25-06-04
Пользователь №: 186

|
Цитата(x736C @ Aug 2 2017, 21:37)  Все верно. Именно поэтому более простой стрим он спокойно пережует, т.к. он создан в полном соответствии со стандартом, который в свою очередь допускает не использовать межкадровое сжатие и компенсацию движения. Именно об этом пытался сказать. Насчет серьезного и несерьезного — это мне всегда было непонятно. Как измерить это серьезно или это не серьезно? Кто и как это определяет? Когда в декодере есть куча разных вариантов, энкодер в свою очередь можно попросту имплементировать как I picture only, предсказание по одному угловому пикселю, блоки только 8х8. В итоге когда первый раз на это смотришь, то задумываешься - а что, так тоже можно было. Плюс даже минимальое отсутствие управлением квантователя и rate control. На выходе энкодер, с точки зрения тестирования, на порядок проще чем декодер (порядок - из собственного опыта).
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|