Data compression
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 20/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- data, performance
Línea de trabajo
Comience leyendo la discusión sobre la compresión TRX y las issues referenciadas dipy/dipy#2229 y nipy/nibabel#942. Compare las opciones enumeradas, incluido el almacenamiento en float16, el downsampling, la compresión de directorios en archivos ZIP y las estrategias dentro del formato; el trabajo solo estará completo cuando se acuerde una dirección de compresión precisa, ya que esta issue no define un objetivo de implementación ni de pruebas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Given recent comments in dipy/dipy#2229, and further back in nipy/nibabel#942, I think it is worth dedicating a discussion thread to the issue of data compression.
I think it is fair to say that this particular format proposal has prioritised extensibility and simplicity over compression. But for some users / developers the latter may be the higher priority. So here we can discuss whether the gains in this department from the current TRX proposal are adequate, whether it is possible to bootstrap any kind of explicit data compression into this format proposal, or whether a drastically different proposal would be necessary in order to satisfy such demands.
Please amend or correct as necessary, and comment as you see fit.
Where compression may be possible in TRX:
- Use of float16's for vertex locations -> halves storage over float32
- No need for delimiters -> one less vertex per streamline compared to delimiter-based formats, though explicitly storing offsets reduces that gain slightly
- Compatible with downsampling, i.e. storing less vertices per streamline than what was used in generation of the streamline; this can be a naive integer factor reduction in vertex count, or based on estimation of error accumulation (e.g. https://www.sciencedirect.com/science/article/pii/S1053811914010635); in either case for algorithms with small step size this can be the primary source of storage reduction
- Zipping of full directory structure (albeit depending on implementation this may impact IO substantially), though yields with this tend to be minimal due to the nature of the data
- Support for more dedicated compression strategies as in-place alternatives for vertex position (or indeed DPP / DPS / DPG) data within TRX.
Point 5 may be interesting to explore: there's been a number of manuscripts published explicitly on storage reduction of streamline vertex information, so simply having the option to utilise within TRX one such format for vertex position information would theoretically be possible. It would make the technical specification considerably more complex, but technically one could defer to external specifications for datasets doing such. I'm not a fan of this personally, I'm simply stating that it's a prospect.
In the converse case, i.e. a format from the ground up that would prioritise compression: A couple of these already exist, but don't have the extensibility of TRX. Trying to extend the capabilities of compressed streamline data storage could look something like bootstrapping compression into the .trk format, or it could be something entirely novel. It probably falls upon someone who prioritises such to propose something that still has a chance of satisfying the desires of those prioritising extensibility. But this is likely one of multiple dimensions of difference that caused the original discussion in nipy/nibabel#942 to go slightly astray, so warrants greater precision here.
- Lenguaje dominante
- Python
- Estrellas
- 27
- Forks
- 20
- Merge medio
- 2 d 25 min
- PR fusionados (30 d)
- 1
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de tee-ar-ex/trx-python
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
tee-ar-ex/trx-python#85 · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
tee-ar-ex/trx-python#77 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
tee-ar-ex/trx-python#72 · 3 comentarios ·
-
Circular Dependency for DIPY ?Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
tee-ar-ex/trx-python#51 · 23 comentarios ·
-
Allow other types into `append`Abiertogood first issue
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
tee-ar-ex/trx-python#39 · 1 comentario ·
Todos los issues de tee-ar-ex/trx-python
Issues similares
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
openwisp/openwisp-utils#777 ·
-
Boolean statistics (Covered, Confident, JaccardDistant) aggregate to 1.0 without float weightsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
google-research/weatherbenchX#310 ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
huggingface/peft#3955 ·
Los mantenedores suelen responder en 1 día
-
author-page correction
Dificultad 2/5 1-3 horas Aptitud para principiantes 60/100
acl-org/acl-anthology#10313 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
AOSSIE-Org/Gitcord-GithubDiscordBot#147 · 1 comentario ·
Los mantenedores suelen responder en 1 día