Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: H.264 Hardware Encoder in VHDL
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Языки проектирования на ПЛИС (FPGA)
Страницы: 1, 2
Maverick
нашел тут, попробовал моделировать видеоплеер открывает...
Правда он не полный, например нет межкадрового сжатия...

Есть предложение перезалить в закарма
Wic
сколько кушает логики на том разрешение, что пробовали?
Maverick
Цитата(Wic @ Oct 11 2012, 11:58) *
сколько кушает логики на том разрешение, что пробовали?

Xilinx Spartan 3 family - 3174 Slices
blackfin
Цитата(Maverick @ Oct 11 2012, 12:47) *
нашел тут, попробовал моделировать видеоплеер открывает
Правда он не полный, например нет межкадрового сжатия...

Пора уже осваивать H.265 (он же - HEVC), а Вы всё с H.264 упражняетесь.. wink.gif
Maverick
Цитата(blackfin @ Oct 11 2012, 12:07) *
Пора уже осваивать H.265 (он же - HEVC), а Вы всё с H.264 упражняетесь.. wink.gif

так может поделитесь реализацией wink.gif
blackfin
Цитата(Maverick @ Oct 11 2012, 13:14) *
так может поделитесь реализацией rolleyes.gif

Их нет у меня.. biggrin.gif
alexPec
Цитата(Maverick @ Oct 11 2012, 12:47) *
нашел тут, попробовал моделировать видеоплеер открывает...
Правда он не полный, например нет межкадрового сжатия...

Есть предложение перезалить в закарма


А можете на куда-нить выложить кодированный кусок? Интересно посмотреть на качество и размер...
Maverick
Цитата(alexPec @ Oct 11 2012, 22:18) *
А можете на куда-нить выложить кодированный кусок? Интересно посмотреть на качество и размер...

много не моделировал...
Во вложении
ArtemDement
Maverick, каким проигрывателем открывали файл ? VLC не открывает.
alexPec
Цитата(ArtemDement @ Oct 13 2012, 10:20) *
Maverick, каким проигрывателем открывали файл ? VLC не открывает.

Аналогично, не могу открыть...
des00
Цитата(blackfin @ Oct 11 2012, 03:07) *
Пора уже осваивать H.265 (он же - HEVC), а Вы всё с H.264 упражняетесь.. wink.gif

дык эта, может энкодер за опенсорсим ? wink.gif
Maverick
Цитата(des00 @ Oct 13 2012, 19:35) *
дык эта, может энкодер за опенсорсим ? wink.gif

пожалуйста, как хотите... sm.gif

Цитата(Maverick @ Oct 11 2012, 11:47) *
Есть предложение перезалить в закарма
Maverick
Цитата(ArtemDement @ Oct 13 2012, 09:20) *
Maverick, каким проигрывателем открывали файл ? VLC не открывает.

Цитата(alexPec @ Oct 13 2012, 17:40) *
Аналогично, не могу открыть...

в понедельник скажу... сейчас не помню название прграммы...
DemonP
Цитата(des00 @ Oct 13 2012, 20:35) *
дык эта, может энкодер за опенсорсим ? wink.gif


А принять участие возможно? biggrin.gif
DevL
Цитата(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) *
А принять участие возможно? biggrin.gif



еще есть только draft specs и многое еще может поменяться....

но основные вещи даже на wiki уже закинули http://en.wikipedia.org/wiki/High_Efficiency_Video_Coding
не все еще понятно с вычислительной потребностью при кодировании sm.gif
Maverick
Цитата(Maverick @ Oct 13 2012, 23:39) *
в понедельник скажу... сейчас не помню название прграммы...

DevL уже ответил...
Я открывал ffmpeg
des00
Цитата(DemonP @ Oct 14 2012, 13:34) *
А принять участие возможно? biggrin.gif

да почему бы и нет, но с решением еще не понятно. дело занятное, но нужен Team Leader со временем, что бы скоординировать проект....

Цитата(DevL @ Oct 15 2012, 00:58) *
еще есть только draft specs и многое еще может поменяться....

но основные вещи даже на wiki уже закинули http://en.wikipedia.org/wiki/High_Efficiency_Video_Coding
не все еще понятно с вычислительной потребностью при кодировании sm.gif

при наличии какого каркаса, локальные изменения побоку, прикрутить не долго. обсуждал со знающими людьми, гуторят что I frame Low delay HEVC тема.......
Maverick
Цитата(des00 @ Oct 15 2012, 18:21) *
но нужен Team Leader со временем, что бы скоординировать проект....

Предлагаю Вас в роли Team Leader, как человека знающего и опытного... (это не лесть, а правда wink.gif)
Я готов участвовать в проекте, тем более мне это скоро может понадобиться по работе...
nikolascha
Цитата(Maverick @ Oct 15 2012, 11:15) *
Я открывал ffmpeg
А с какими ключиками запускать ffmpeg ?
Maverick
Цитата(nikolascha @ Oct 16 2012, 09:13) *
А с какими ключиками запускать ffmpeg ?

я при запуске пользовался вот этим и этим + этим (работал в Windows XP)

alexPec
Цитата(Maverick @ Oct 15 2012, 22:26) *
Предлагаю Вас в роли Team Leader, как человека знающего и опытного... (это не лесть, а правда wink.gif)
Я готов участвовать в проекте, тем более мне это скоро может понадобиться по работе...

Полностью согласен, тоже готов поучаствовать...
des00
Цитата(Maverick @ Oct 15 2012, 12:26) *
Предлагаю Вас в роли Team Leader, как человека знающего и опытного... (это не лесть, а правда wink.gif)

дык нужно иметь опыт делать энкодеры, поделку на уровне кучи проводов/модулей, кое как соединенных не хотелось бы рожать wink.gif. Тему стоит обдумать, вырисовываются кое какие коммерческие перспективы %)))
nikolascha
Цитата(Maverick @ Oct 16 2012, 08:57) *
я при запуске пользовался вот этим и этим + этим (работал в Windows XP)
Примеры запуска ffmpeg я увидел только в википедии. По команде ffmpeg -h выдаётся туча ключиков и сложно сходу сообразить как его правильно запускать, чтобы посмотреть ваш файл test.264. Может приведёте конкретную строку запуска?
DevL
Цитата(des00 @ Oct 16 2012, 09:13) *
дык нужно иметь опыт делать энкодеры, поделку на уровне кучи проводов/модулей, кое как соединенных не хотелось бы рожать wink.gif. Тему стоит обдумать, вырисовываются кое какие коммерческие перспективы %)))


главное - желание и время sm.gif

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

Maverick
Цитата(nikolascha @ Oct 16 2012, 10:30) *
Примеры запуска ffmpeg я увидел только в википедии. По команде ffmpeg -h выдаётся туча ключиков и сложно сходу сообразить как его правильно запускать, чтобы посмотреть ваш файл test.264. Может приведёте конкретную строку запуска?

можно по простому:
кликните 2 раза на файл test.264. Винда спросит чем открыть - указываете на скачанный ffplay.exe

скачивал тут
des00
Цитата(DevL @ Oct 16 2012, 03:12) *
главное - желание и время sm.gif

надо прикинуть что к чему, как я понял народ не против поучаствовать. Правда я в веб технологиях полный ноль, на какой площадке предполагается разместить проект? нужно wiki + система контроля версий.
nikolascha
Цитата(des00 @ Oct 17 2012, 06:55) *
надо прикинуть что к чему, как я понял народ не против поучаствовать. Правда я в веб технологиях полный ноль, на какой площадке предполагается разместить проект? нужно wiki + система контроля версий.
На первом этапе можно воспользоваться местной вики, хотя функционал там базовый (даже картинку не вставить). Если её не будет хватать, то можно поднять свою, только хостинг выбрать и наверное бесплатный... С системой контроля версий, возможно, проще обстоят дела. Можно SourceForge, Google Code, github, Launchpad, Freepository, Bitbucket, CodePlex, assembla, GNU Savannah, Tigris.org. Сравнение хостингов. Кто с какими уже сталкивался?
DevL
Цитата(nikolascha @ Oct 17 2012, 08:30) *
На первом этапе можно воспользоваться местной вики, хотя функционал там базовый (даже картинку не вставить). Если её не будет хватать, то можно поднять свою, только хостинг выбрать и наверное бесплатный... С системой контроля версий, возможно, проще обстоят дела. Можно SourceForge, Google Code, github, Launchpad, Freepository, Bitbucket, CodePlex, assembla, GNU Savannah, Tigris.org. Сравнение хостингов. Кто с какими уже сталкивался?


если определимся куда выхлоп, в смысле лицензии - выбирать будет проще,
предложу BSD лицензию, для начала,
или dual licensed - если с намеком на продажу sm.gif

например:
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
des00
Цитата(DevL @ Oct 17 2012, 02:26) *
если определимся куда выхлоп, в смысле лицензии - выбирать будет проще,
предложу BSD лицензию, для начала,
или dual licensed - если с намеком на продажу sm.gif

я бы сделал MIT wink.gif

ну и мне ближе SVN, но думаю что сабвершион это не самая главная проблема.
DevL
Цитата(des00 @ Oct 17 2012, 10:06) *
я бы сделал MIT wink.gif

ну и мне ближе SVN, но думаю что сабвершион это не самая главная проблема.



MIT тоже годиться, как я уже и говорил - если для фана делать все это , то вообще всеравно.

SVN был неплох, сам долго уходил от него
но удаленно и быстро - это уже не он...
nikolascha
Цитата(DevL @ Oct 17 2012, 09:26) *
берусь проспонсировать hosting
Если будет хостинг, то для вики хорошая сборка движка mediawiki4intranet
А вопрос с лицензией неужели такой важный? Нельзя "как есть" сделать?
По контролю версий, возможно, лучше SVN, а кто хочет у себя может локально GIT ставить, он с удалённым репозиторием SVN умеет работать.
Ещё обычно багтрекер используют, но не знаю на сколько это тут нужно...
DevL
Цитата(nikolascha @ Oct 17 2012, 11:18) *
Если будет хостинг, то для вики хорошая сборка движка mediawiki4intranet
А вопрос с лицензией неужели такой важный? Нельзя "как есть" сделать?
По контролю версий, возможно, лучше SVN, а кто хочет у себя может локально GIT ставить, он с удалённым репозиторием SVN умеет работать.
Ещё обычно багтрекер используют, но не знаю на сколько это тут нужно...


http://www.drdobbs.com/tools/the-git-revol...-here/240009161
DevL
подымем тему - если еще интересно продвигать тему ...
Kuzmi4
А откуда такое желание сделать его именно на VHDL?
Maverick
Цитата(Kuzmi4 @ Nov 11 2012, 10:01) *
А откуда такое желание сделать его именно на VHDL?

исходники именно на VHDL... как дальше будет неизвестно...
Kuzmi4
2 Maverick
то, что исходники конкретно данного энкодера на VHDL не означает что нужно всё остальное делать на нём laughing.gif

2 all
а тема действительно заглохла.. Есть какие нибудь продвижения?
Maverick
Цитата(Kuzmi4 @ Nov 12 2012, 11:48) *
2 Maverick
то, что исходники конкретно данного энкодера на VHDL не означает что нужно всё остальное делать на нём laughing.gif


Язык описания выбирает команда или ее лидер (мое мнение)...
Здесь я нигде не настаивал и не рекомендовал ни какой язык описания для продолжения (если оно будет)...
monty
Цитата(des00 @ Oct 15 2012, 22:21) *
да почему бы и нет, но с решением еще не понятно. дело занятное, но нужен Team Leader со временем, что бы скоординировать проект....


при наличии какого каркаса, локальные изменения побоку, прикрутить не долго. обсуждал со знающими людьми, гуторят что I frame Low delay HEVC тема.......


..ты эта...серетные карты генштаба то не раскрывай sm.gif...

Не знаю есть ли смысл в опенсорсиньи авц.. Может тогда уж хевц?
blackfin
Recommendation: H.265
DASM
Цитата(Kuzmi4 @ Nov 12 2012, 13:48) *
2 Maverick
то, что исходники конкретно данного энкодера на VHDL не означает что нужно всё остальное делать на нём laughing.gif

2 all
а тема действительно заглохла.. Есть какие нибудь продвижения?

Попробую на Actel SmartFusion2 реализовать. Тема интересная и нужная.
DASM
В Microsemi SmartFusion2 заняло 20 % от M2S050. Очень неплохо, правда я этот VHDL второй раз в жизни вижу, только на Верилог немного пишу по чайной ложке пока. Да еще и лицензия бесплатная не дает смешивать VHDL с Verilog в одном проекте. Может есть у кого лекарство ? А так как раз получил с ebay сегодня камеру OV5642 http://www.ebay.com/itm/271130719953?ssPag...984.m1497.l2649 , а кит Фузен2 http://www.microsemi.com/fpga-soc/design-r...on2-starter-kit тоже на столе. Запустить бы вместе.. rolleyes.gif rolleyes.gif
Олег в
привет!кто работал с макетом 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
Maverick
Цитата(Олег в @ Jun 26 2013, 11:11) *
привет!кто работал с макетом DE2-115 И камерой к нему TRDB-D5M?ПОДСКАЖИТЕ как исправить код программы, если изменить разрешение кадра на 1280*1024 т.е. 1,3MPixel, а было в примере 640*480.мне интересна любая информация и опыты с этим макетом.

пользуйтесь тегами - легче читать.
Вам необходимо поменять значения
Код
parameter
andrew_b
Цитата(Maverick @ Jun 26 2013, 12:44) *
пользуйтесь тегами - легче читать.
Не допускайте оверквотинга -- легче читать.
Kuzmi4
2 DASM
А уже пробовали всё вместе слепить в кучу, чтобы поток гнался ?
Sergey_Bekrenyov
я попробовал поменять разрешение - все упирается в логические ресурсы, так как RAM для буферизации описана как регистры и не переводится компиляторами автоматом на Block Ram
DASM
Только только с либеро разобрался под Smartfusion 2, подключил OV5642, байер с матицы пошел... но.. время блин, пытаюсь успеть все. да еще и лицензия на Либеро у меня позволяет писать либо на VHDL, либо на Verilog, я только последний понимаю. Но ребята на работе нашли решение.Так что в выходные думаю продолжать.

Цитата(Sergey_Bekrenyov @ Jul 10 2013, 21:13) *
я попробовал поменять разрешение - все упирается в логические ресурсы, так как RAM для буферизации описана как регистры и не переводится компиляторами автоматом на Block Ram

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


Не, так не пойдет. Работать с кадром в блочной памяти половое извращение. Надо в ДДР. Будем переписывать значит, менее чем фулл эйчди он неинтересен.

Насколько я понимаю все равно будет нужно окошко 4х4 - то есть буфер на 4 строки однозначно понадобится с подкачкой из ДДР.

Для меня самая главная загадка как в Ethernet уложить NAL
blackfin
Цитата(Sergey_Bekrenyov @ Jul 13 2013, 23:56) *
Для меня самая главная загадка как в Ethernet уложить NAL

RFC6184?
Sergey_Bekrenyov
Цитата(blackfin @ Jul 14 2013, 08:33) *

спасибо, буду учить матчасть
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.