Como calcular bytes necessários para um vídeo em escala de cinza

0

What is the minimum memory (in bytes) for saving five seconds gray scale video with a frame rate of 14 fps in which the dimension of each frame is 480x320? Each pixel in this video requires to be able to store at least 6 different statuses

Olhando para questões semelhantes no quadro, presumi que o cálculo seria algo assim:

480 * 320 * 8 bits * 14 fps * 5 segundos = 8601600

8601600/8 = 10752000 bytes

A resposta correta é: 4032000, mas eu não entendo como isso foi calculado, nem o que significa 6 status?

    
por Oliver Larsen 23.01.2017 / 14:07

1 resposta

0

Ok, vamos fazer isso passo a passo. Você já identificou as informações mais importantes que são:

  • Resolução de 480 x 320
  • 14 quadros por segundo
  • 5 segundos de tempo de gravação
  • 6 status diferentes

Tudo é apenas uma simples multiplicação desses números. O único problema é que você não pode simplesmente usar o 6 para o número de estátuas, mas você precisa fazer algo com ele. O texto informa que este 6 responde a todos os pixels em um único quadro para essa gravação. Como tal, é (mais provável) a profundidade de cor. A profundidade de cor de uma imagem é geralmente dada como o número de bits usado para "codificar" a cor. Seria um pouco complicado escrever os nomes das cores de cada pixel (e ocuparia muito mais espaço).

Então, o que você precisa fazer é converter esse número decimal 6 em seu equivalente binário. Existem várias abordagens sobre como fazê-lo, mas o resultado final deve ser sempre a representação binária. Com essa informação, você sabe que a quantidade mínima de bits para representar o número decimal 6 em binário é 3.

Se fosse um exemplo de IRL, você teria que considerar estruturas e definições de dados. Então, por exemplo, para um bitmap , parece que você precisaria de pelo menos 4 bits. Como seu exercício não especifica nenhuma informação adicional, a pessoa que sugeriu essa pergunta provavelmente quer que você use 3 bits como profundidade de cor.

Agora que temos todos os detalhes, é só:

color depth * resolution * frames per second * seconds
3 bit * (480 pixels * 320 pixels) * 14 * 5 = 32 256 000 bit
32 256 000 bit / 8 bit = 4 032 000 bytes

O que esse exercício está fazendo é verificar sempre que você tiver uma compreensão dos termos técnicos e for capaz de converter números decimais em números binários.

Por diversão, você poderia assumir que precisaria de 105 tipos diferentes de cinza. Nesse caso, você teria 9187 Kilobytes.

    
por 24.01.2017 / 07:57