Предупреждение: у нас нет цензуры и предварительного отбора публикуемых материалов. Анекдоты здесь бывают... какие угодно. Если вам это не нравится, пожалуйста, покиньте сайт. 18+

Ваше мнение

На этой странице свободно обсуждаются любые темы. Просьба избегать матерных выражений и грубых личных "наездов". Модератор может удалить реплику без предупреждения и объяснений. Намеренное хулиганство будет пресекаться. "Неторопливое общение" - в "Дискуссионном клубе".
Измышления из ВМ


1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019
2015: Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь
Август        2015
Пн Вт Ср Чт Пт Сб Вс
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 

Комментарии (6): Сначала новые  |  Сначала старые

бюрг11.08.2015 23:09:37

Африканец,

вот, тестовую заглушки попробовал, 50 мс супротив 100-120ms уже сжатую до 10-20 кб на C#. Как-то не очень?
===
#include "stdafx.h"
#include <windows.h>
#include <iostream>

void GetScreenShot(void);

int main()
{

//Variablen
LONGLONG g_Frequency, g_CurentCount, g_LastCount;

//Frequenz holen
if (!QueryPerformanceFrequency((LARGE_INTEGER*)&g_Frequency))
std::cout << "Performance Counter nicht vorhanden" << std::endl;

byte* map = new byte[2000 * 1500 * 3];
byte* mapOrg = new byte[2000 * 1500 * 3];
byte* map2 = new byte[2000 * 1500 * 4];

byte swap[3];
byte *p, *pO, *p2;
bool change;

//1. Messung
QueryPerformanceCounter((LARGE_INTEGER*)&g_CurentCount);

GetScreenShot();

for (int i = 0; i < 1500; i++)
{
p = map + i * 2000*3;
pO = mapOrg + i * 2000*3;
p2 = map2 + i * 2000 * 4;
for (int j = 0; j < 2000; j++)
{
change = false;
swap[0] = *pO;
if (*pO != *p) change = true;
p++;
pO++;
swap[1] = *pO;
if (*pO != *p) change = true;
p++;
pO++;
swap[2] = *pO;
if (*pO != *p) change = true;
p++;
pO++;
if (change)
{
*p2 = 1;
p2++;
*p2 = swap[0];
p2++;
*p2 = swap[1];
p2++;
*p2 = swap[2];
p2++;
}
else
{
p2 += 4;
}
}

}

//2. Messung
QueryPerformanceCounter((LARGE_INTEGER*)&g_LastCount);

double dTimeDiff = (((double)(g_LastCount - g_CurentCount)) / ((double)g_Frequency));

std::cout << "Zeit: " << dTimeDiff << std::endl;

std::cin.get();

return 0;
}

void GetScreenShot(void)
{
int x1, y1, x2, y2, w, h;

// get screen dimensions
x1 = GetSystemMetrics(SM_XVIRTUALSCREEN);
y1 = GetSystemMetrics(SM_YVIRTUALSCREEN);
x2 = GetSystemMetrics(SM_CXVIRTUALSCREEN);
y2 = GetSystemMetrics(SM_CYVIRTUALSCREEN);
w = x2 - x1;
h = y2 - y1;

// copy screen to bitmap
HDC hScreen = GetDC(NULL);
HDC hDC = CreateCompatibleDC(hScreen);
HBITMAP hBitmap = CreateCompatibleBitmap(hScreen, w, h);
HGDIOBJ old_obj = SelectObject(hDC, hBitmap);
BOOL bRet = BitBlt(hDC, 0, 0, w, h, hScreen, x1, y1, SRCCOPY);

// save bitmap to clipboard
OpenClipboard(NULL);
EmptyClipboard();
SetClipboardData(CF_BITMAP, hBitmap);
CloseClipboard();

// clean up
SelectObject(hDC, old_obj);
DeleteDC(hDC);
ReleaseDC(NULL, hScreen);
DeleteObject(hBitmap);
}


бюрг11.08.2015 22:27:58

Африканец,

смотри, делаю удалёнку. Полгода её наш студент делал, но чего-то там такого намудрил. Я взял по рабоче-крестиянски, делаю скриншот, от него беру 24-битный масссив, тупо пробегаю его, создаю своеобразный 32-битный массив, 4-байт альфа канал, есть изменение или нет. Потом тупо сжимаю и пересылаю. На другом компе разжимаю, пробегаю, есть изменения, вношу, потом битмап в картинка-контроль.

На компе с 2000 пикселей ширины экрана, пробегается и сжимается на c# unsafe за в среднем 200 ms, полная картинка 300 кб, изменения в среднем 20кб. То есть 4-5 раза в секунду обновляется (по зашифрованому каналу). Не супер, но вроде ничё.

Есть смысл зашиваться паковать на С++? То есть обойти массив 2000х3х1500, создать массив на 2000х4х1500, запаковать? Или хрен с ним? +пара раз интереса не представляет, вот в 10-20 раз это конечно ОООО.


Африканец11.08.2015 22:13:13

бюрг

так давай свой вопрос. Буду трезвым - отвечу


бюрг11.08.2015 22:09:38

Африканец, эх, в Новосибирске востание подготавлиевт, пьянствует поди и баб мацает. А у меня к нему вопрос есть.


Янги11.08.2015 20:25:21

Прилагательное «социальное» <…> вероятно, стало самым бестолковым выражением во всей нашей моральной и политической лексике. … оно все чаще выступает в роли слова «благое» при обозначении всего высоконравственного.
Всякий призыв быть «социальными» <…> есть подталкивание нас к еще одному шагу в сторону «социальной справедливости» социализма. В итоге употребление термина «социальный» становится практически тем же самым, что и призыв к «распределительной справедливости». А между тем это несовместимо с конкурентным рыночным порядком, а также с ростом и даже поддержанием существующей численности населения и достигнутого уровня богатства. В общем, из-за подобного рода ошибок люди стали называть «социальным» («общественным») то, что является главной помехой для самого поддержания жизни «общества». В сущности, «социальное» следовало бы именовать «антисоциальным».
Хайек считает невозможным субъективное распределение результатов труда на основе затраченных работником усилий[11]:

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


бюрг11.08.2015 13:37:40

А на самом деле ушлые немцы не платят грекам, а наоборот, устраивая шумиху в прессе в стиле "хана, скоро Греция выйдет из еврозоны, и мы все умрем", зарабатывают миллиарды на гособлигациях. Знаете, как это делается? Элементарно, Ватсон:

После начала греческого кризиса Германия заплатила в качестве процентов по гособлигациям почти на €100 млрд меньше, чем если бы инвестиционный климат оставался стабильным. Приток инвесторов в германские гособлигации после 2010 года привел к их удешевлению, и Берлину пришлось платить по процентам меньше. Сэкономленная сумма превышает возможные убытки, которые бы понесла Германия в случае греческого дефолта.

Исследователи оценили совокупный потенциальный ущерб для Берлина в случае невозможности Афин платить по долгам в €90 млрд, включая кредиты в рамках предполагаемого третьего пакета финансовой помощи. Экономия была рассчитана через вычисление «гипотетической доходности немецких гособлигаций» при условии, что финансовый кризис в Греции не повлиял бы на уровень процентных ставок в Германии.
====



Комментарии (6): Сначала новые  |  Сначала старые

Рейтинг@Mail.ru