Ejemplo n.º 1
0
    def __init__(self, id):
        IR2A.__init__(self, id)
        self.average_type = "exponential_average"
        #"exponential_average" #tipo de média dos filtros
        #"sliding_window_average"
        #"harmonic_mean"

        self.throughputs = []
        self.request_time = 0
        self.qi = []
        self.smooth = []  #average estimated and smooth band
        self.estimateband = []  #estimativa de banda

        self.k = 0.14
        self.w = 50000  #ganho constante de aproximadamente o valor minimo de segmentação do vídeo
        self.m = 10  #tamanho da minha janela

        self.beta = 0.15  #ganho do feedback de controle do buffer
        self.alfa = 0.1
        self.e = 0.10  #ganho da zona neutra de quantização

        self.buffer = []  #lista para o buffer
        self.buffer_min = 40

        self.Tf = 1  #período de espera do próximo segmento

        self.t = 0
        self.deltaup = 0
        self.deltadown = 0

        self.quality = [0]
Ejemplo n.º 2
0
    def __init__(self, id):
        IR2A.__init__(self, id)
        self.parsed_mpd = ''
        self.qi = []

        self.nameLog = 'r2a.log'

        self.maxBufferSize = 0

        self.lastRequestTime = 0
        self.lastDecreaseNetworkReliability = 0
        self.bpsHistory = []
        self.QiHistory = []
        self.initWindowSize = 10
        self.windowSize = self.initWindowSize
        self.windowSizeQi = 5
        self.maxDownload = 0
        self.avgDownload = 0
        self.minDownload = 0
        self.networkReliability = 100
        self.timeReturnNetworkReliability = 5
        self.timeVariationMultiplier = 1

        self.maximumRisePercentageQi = 5
        self.networkReliabilityLimit = 5
Ejemplo n.º 3
0
    def __init__(self, id):
        IR2A.__init__(self, id)
        self.parsed_mpd = ''
        self.qi = []

        self.throughputs = []        # Array containing the throughputs available across the execution
        self.request_time = None    # Last request timestamp
Ejemplo n.º 4
0
    def __init__(self, id, probe_inc=50000, probe_conv=1.9):  # {{{2
        """Init for R2APANDA class. {{{

        @param probe_inc Probing additive increase bitrate (ω)
        @param probe_conv Probing convergence rate (κ)
        }}}"""
        IR2A.__init__(self, id)

        self.probe_inc = probe_inc  # (ω)
        self.probe_conv = probe_conv  # (κ)

        self.request_time = None  # Last request timestamp
        self.interreq_time = []  # Actual time between requests (Τ)
        self.target_interreq_time = [0]
        self.target_bandshare = []  # Target average data rate (x̂)
        self.smooth_bandshare = []  # Smoothed version of x̂ (ŷ)
        self.throughputs = []  # TCP throughput measured (x̃)

        self.buffer_duration = [0]
        self.buffer_convergence = 0.5
        self.buffer_min = self.whiteboard.get_max_buffer_size() * 0.25
        self.buffer_min *= R2APANDA.seg_duration

        self.parsed_mpd = None
        self.qi = []  # List of available bitrates (quality) from manifest
        self.q = []  # List of chosen bitrates (r)
Ejemplo n.º 5
0
 def _init_(self, id):
     IR2A._init_(self, id)
     self.qi = []
     self.throughput = []
     self.time_request = 0
     self.parsed_mpd = 0
     self.vm = 0.0
Ejemplo n.º 6
0
 def __init__(self, id):  #inicializa as variaveis
     IR2A.__init__(self, id)
     self.request_time = 0
     self.qi = []
     self.tempos = []
     self.bestperf = 0
     self.besttime = 10000000000000
     self.lastpause = -1
Ejemplo n.º 7
0
 def __init__(self, id):
     IR2A.__init__(self, id)
     self.qi = []
     self.throughput = 0
     self.request_time = 0
     self.vM = 0
     self.timer = Timer.get_instance()
     self.pause_started_at = None
Ejemplo n.º 8
0
 def __init__(self, id):
     IR2A.__init__(self, id)
     self.parsed_mpd = ''
     self.qi = []
     self.time_of_request = []
     self.bit_len = []
     self.connection_speed = []
     self.quality_id = []
Ejemplo n.º 9
0
 def __init__(self, id):
     IR2A.__init__(self, id)
     self.throughputs = []
     self.request_time = 0
     self.qi = []
     self.bandwidthShare = []
     self.downloadTime = []
     self.targetInterRequestTime = [1]
Ejemplo n.º 10
0
 def __init__(self, id):
     IR2A.__init__(self, id)
     self.lastRequest = 0
     self.lastBufferSz = 0
     self.tabom = 0
     self.parsed_mpd = ''
     self.qi = []
     self.whiteboard = whiteboard.Whiteboard.get_instance()
     self.ini = time.time()
Ejemplo n.º 11
0
    def __init__(self, id):
        IR2A.__init__(self, id)
        self.parsed_mpd = ''
        self.qi = []

        self.segment_throughput = []
        self.estimated_throughput = []
        self.request_time = 0
        self.p = 0
Ejemplo n.º 12
0
 def __init__(self, id):
     IR2A.__init__(self, id)
     self.parsed_mpd = ''
     self.qi = []
     self.d = 2  # seconds
     self.throughputs = []  # np array
     self.target_buff_t = 15  # seconds
     self.start_idx_br = -10
     self.curr_idx = 0
Ejemplo n.º 13
0
 def __init__(self, id):
     IR2A.__init__(self, id)
     self.request_time = 0
     self.qi = []
     self.bandwidths = []
     self.parsed_mpd = ''
     self.current_qi = 0
     self.current_buffer = 0
     self.last_buffer = 0
Ejemplo n.º 14
0
    def __init__(self, id):
        IR2A.__init__(self, id)
        self.timeToDownload = 0
        self.segmentSize = 0
        self.riList = []
        self.qi = []

        self.maxBufferSize = self.whiteboard.get_max_buffer_size()
        self.d = 30  # tal
Ejemplo n.º 15
0
 def __init__(self, id):
     IR2A.__init__(self, id)
     self.parsed_mpd = ''
     self.qi = []
     (self.bufferTime, self.diffBufferTime, self.output) = fuzzyfy()
     self.rules = createRules(self.bufferTime, self.diffBufferTime,
                              self.output)
     self.quality_ctrl = ctrl.ControlSystem(self.rules)
     self.throughputs = []
     self.request_time = 0.0
Ejemplo n.º 16
0
    def __init__(self, id):
        IR2A.__init__(self, id)
        self.whiteboard = Whiteboard.get_instance()

        self.parsed_mpd = ''
        self.qi = []

        # qi[1] = 91917bps
        self.throughputs = [91917]
        self.selected_qi = [91917]
        self.request_time = 0.0
Ejemplo n.º 17
0
 def __init__(self, id):
     IR2A.__init__(self, id)
     self.parsed_mpd = ''
     self.qi = []
     self.time_of_request = []
     self.bit_len = []
     self.throughput_arr = []
     self.config_parameters = {}
     self.medium_buffer = 40
     self.qualities_len = 20
     self.duration = 0
Ejemplo n.º 18
0
    def __init__(self, id):
        IR2A.__init__(self, id)
        # Real throughput of the segments
        self.tpSegment_list = []

        # Estimated throughput of the segments
        self.tpEstimated_list = []
        self.request_time = 0
        self.qi_list = []
        self.segment_idx = 0
        self.ideal_buffer = 20
Ejemplo n.º 19
0
 def __init__(self, id):
     IR2A.__init__(self, id)
     self.throughputs = [] # corresponde a uma lista com os valores reais do throughput
     self.calc_throughputs = [] # corresponde a uma lista com os valores alvo para o throughput usando o PANDA
     self.smooth_throughputs = [] # corresponde a uma lista com os throughputs alvos filtrados
     self.request_time = 0
     self.inter_request_time = [] # tempo entre cada requisição de um novo segmento
     self.qi = []
     self.seg_duration = 1 # duração de um segmento
     self.selected_qi = [] # lista com a qualidade selecionada para cada segmento
     self.buffer_min = 20 # tamanho mínimo para o buffer, deve ser inferior ao máximo definido no json
Ejemplo n.º 20
0
 def __init__(self, id):
     IR2A.__init__(self, id)
     self.parsed_mpd = ''
     self.qi = []
     self.whiteboard = Whiteboard.get_instance()
     self.T = 8  #Valor do artigo T = 35
     self.d = 2  #                d = 60
     self.ultimo = 0.0
     self.penultimo = 0.0
     self.firsTimeOcurrence = True
     self.timeParameter = 0.0
Ejemplo n.º 21
0
 def __init__(self, id):
     IR2A.__init__(self, id)
     self.parsed_mpd = ''
     self.qi = []
     self.whiteboard = whiteboard.Whiteboard.get_instance()
     self.index = 0
     self.t_estimated = 0
     self.t_estimated_1 = 0
     self.delta = 0
     self.throughput = 1
     self.ini = time.time()
Ejemplo n.º 22
0
 def __init__(self, id):
     IR2A.__init__(self, id)
     self.quality_score_array = []
     self.rebuf_avoid_level = 5
     self.request_time = 0
     self.qi_array = []
     self.video_total_playtime = 0
     self.video_current_playtime = 0
     self.segment_time = 0
     self.max_buffer_size = player.max_buffer_size
     self.bandwith_anterior = 0
     self.qi_anterior = 0
Ejemplo n.º 23
0
 def __init__(self, id):
     IR2A.__init__(self, id)
     self.parsed_mpd = ''
     self.qi = []
     self.qi_index = 0
     self.now_buffer_size = 0
     self.before_buffer_size = 0
     self.first_package = True
     self.buffer_time = 0
     self.ri = []
     self.request_time = 0
     self.previous_quality_index = 0
Ejemplo n.º 24
0
    def __init__(self, id):
        IR2A.__init__(self, id)
        self.parsed_mpd = ''
        self.throughputs = []
        self.request_time = 0
        self.qi = []

        # starts with the worst quality
        self.index_selected_qi = 0

        # range of throughputs analyzed
        self.M = 5
Ejemplo n.º 25
0
 def __init__(self, id):
     IR2A.__init__(self, id)
     self.parsed_mpd = ''
     self.qi_list = []
     self.request_time = 0
     self.real_throughput_list = []
     self.estimated_throughput_list = []
     self.constraint_list = []
     self.mu = 0.2
     self.k = 21
     self.p0 = 0.25
     self.whiteboard = Whiteboard.get_instance()
Ejemplo n.º 26
0
    def __init__(self, id):
        IR2A.__init__(self, id)

        self.throughputs = []
        self.request_time = 0
        self.qi = []  # lista de qualidades
        self.buffer = []  # lista de buffer
        self.flag = False  # auxilia na seleção da primeira qualidade
        self.selected_qi = 46980  # qualidade em QI padrao
        self.media = 0  # media para testes, print
        self.lista_qi_selects = []
        self.limite_bff_baixo = 0  # para testes, para saber se o buffer chegou perto de zero
Ejemplo n.º 27
0
 def __init__(self, id):
     IR2A.__init__(self, id)
     self.parsed_mpd = ''
     self.qi = []
     self.momento_resposta = 0
     self.momento_requisicao = 0
     self.taxas_transferencia = [
         1
     ]  # o primeiro segmento terá sempre a menor qualidade possivel e por isso não é contabilizado
     self.limite_taxa_bits = []
     self.delta = 0.1
     self.mu = 0.05
Ejemplo n.º 28
0
 def __init__(self, id):
     IR2A.__init__(self, id)
     self.parsed_mpd = ''
     self.qi = []
     # Usamos o tempo para cálculo de vazão, usando o método descrito no documento de especificação.
     self.timer = Timer.get_instance()
     self.request_time = self.timer.get_started_time()
     # Mantém-se uma lista das qualidades escolhidas durante a execução do programa.
     # Ela é utilizada no algoritmo de decisão.
     self.chosen_qi = [0]
     # Também é mantida uma lista de valores de vazão medidos em cada ponto de escolha, para uso no algoritmo.
     self.throughput = [0]
Ejemplo n.º 29
0
    def __init__(self, id):
        IR2A.__init__(self, id)
        self.parsed_mpd = ''
        self.qi = []
        self.avgDataRate = []
        self.targetAvgDataRate = []
        self.measuredDataRate = []
        self.segmentDownloadDuration = [0.01, 0.01]

        self.bufferDuration = [0.0, 0.0]
        self.segmentTime = 0.0017
        self.bufferMinDuration = 26
        self.clientBufferConvergenceRate = 0.2
Ejemplo n.º 30
0
    def __init__(self, id):
        IR2A.__init__(self, id)
        self.parsed_mpd = ''
        self.qi = []

        self.lastRequestTime = 0

        self.bpsList = []
        self.downloadTaxas = (0, 0, 0)
        self.qtdPactosAnalisados = 10
        self.bufferSizesLimits = [40, 30, 25, 20]
        self.confiabilidade = 1
        self.setLestDecrementoConfiabilidade = 0